@ebrains/react 2.4.1 → 3.1.0
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/color-primary-palette_6.entry.esm.js +106 -106
- package/components-section.entry.esm.js +1 -1
- package/correct-use-of-colors.entry.esm.js +33 -33
- package/docs-palettes.entry.esm.js +1 -1
- package/docs-tokens.entry.esm.js +1 -1
- package/eds-accordion_53.entry.esm.js +1966 -0
- package/eds-app-root.entry.esm.js +4 -4
- package/eds-cookies-preference.entry.esm.js +3 -3
- package/eds-feedback.entry.esm.js +5 -5
- package/eds-frame.entry.esm.js +7 -7
- package/eds-gauge.entry.esm.js +8 -9
- package/eds-gitlab-contributors.entry.esm.js +287 -0
- package/eds-icon-bluesky.entry.esm.js +1 -1
- package/eds-icon-eu.entry.esm.js +2 -2
- package/eds-icon-facebook.entry.esm.js +1 -1
- package/eds-icon-gitlab.entry.esm.js +1 -1
- package/eds-icon-linkedin.entry.esm.js +1 -1
- package/eds-icon-mastodon.entry.esm.js +1 -1
- package/eds-icon-twitter.entry.esm.js +1 -1
- package/eds-icon-youtube.entry.esm.js +1 -1
- package/eds-input-search.entry.esm.js +96 -0
- package/eds-modal.entry.esm.js +88 -31
- package/eds-pie.entry.esm.js +38 -4
- package/eds-section-core_2.entry.esm.js +5 -5
- package/eds-splash-screen.entry.esm.js +4 -12
- package/eds-timeline.entry.esm.js +8 -14
- package/eds-toast-manager.entry.esm.js +1 -1
- package/eds-trl-badge.entry.esm.js +186 -0
- package/eu-8ac3e99c.esm.js +7 -0
- package/incorrect-use-of-colors.entry.esm.js +8 -8
- package/index.esm.js +1 -1
- package/index.esm2.js +22 -142
- package/logo-space.entry.esm.js +138 -17
- package/logo-variations-horizontal_2.entry.esm.js +28 -54
- package/logo-variations-tabs.entry.esm.js +1 -1
- package/logo-wrong-usage.entry.esm.js +33 -33
- package/negative-84eec72e.esm.js +104 -0
- package/package.json +1 -1
- package/positive-cc986d7c.esm.js +65 -0
- package/src/components.d.ts +11 -2
- package/src/generated/components.d.ts +0 -1
- package/svg-repository.entry.esm.js +7 -254
- package/token-list_3.entry.esm.js +79 -51
- package/token-ratios.entry.esm.js +3 -3
- package/token-spacing.entry.esm.js +26 -26
- package/token-typography.entry.esm.js +88 -79
- package/arrow-diagonal-black-8f0494c3.esm.js +0 -3
- package/arrow-right-9322ba8a.esm.js +0 -5
- package/bin-37cad2f0.esm.js +0 -3
- package/bookmark-c200037c.esm.js +0 -16
- package/chevron-down-6144c823.esm.js +0 -12
- package/chevron-left-ca6c66e1.esm.js +0 -11
- package/chevron-right-b88ed2d4.esm.js +0 -5
- package/chevron-up-c66bd477.esm.js +0 -12
- package/clone-dab56639.esm.js +0 -3
- package/close-87fc0d63.esm.js +0 -5
- package/copy-03b72cb6.esm.js +0 -5
- package/download-47746956.esm.js +0 -18
- package/draft-dd5dada2.esm.js +0 -3
- package/edit-3893a517.esm.js +0 -3
- package/eds-accordion_37.entry.esm.js +0 -1201
- package/eds-card-desc_2.entry.esm.js +0 -85
- package/eds-card-generic.entry.esm.js +0 -116
- package/eds-card-project.entry.esm.js +0 -209
- package/eds-card-section.entry.esm.js +0 -56
- package/eds-card-tags.entry.esm.js +0 -27
- package/eds-card-tool.entry.esm.js +0 -105
- package/eds-footer.entry.esm.js +0 -145
- package/eds-fullscreen-menu.entry.esm.js +0 -143
- package/eds-icon-arrow-diagonal.entry.esm.js +0 -21
- package/eds-icon-arrow-right.entry.esm.js +0 -21
- package/eds-icon-bin.entry.esm.js +0 -21
- package/eds-icon-bookmark.entry.esm.js +0 -21
- package/eds-icon-chevron-down.entry.esm.js +0 -21
- package/eds-icon-chevron-left.entry.esm.js +0 -21
- package/eds-icon-chevron-right.entry.esm.js +0 -21
- package/eds-icon-chevron-up.entry.esm.js +0 -21
- package/eds-icon-clone.entry.esm.js +0 -21
- package/eds-icon-close.entry.esm.js +0 -21
- package/eds-icon-copy.entry.esm.js +0 -21
- package/eds-icon-download.entry.esm.js +0 -21
- package/eds-icon-draft.entry.esm.js +0 -21
- package/eds-icon-edit.entry.esm.js +0 -21
- package/eds-icon-external.entry.esm.js +0 -21
- package/eds-icon-loader.entry.esm.js +0 -21
- package/eds-icon-menu.entry.esm.js +0 -21
- package/eds-icon-minus.entry.esm.js +0 -21
- package/eds-icon-more.entry.esm.js +0 -21
- package/eds-icon-paper.entry.esm.js +0 -21
- package/eds-icon-plus.entry.esm.js +0 -21
- package/eds-icon-portal.entry.esm.js +0 -21
- package/eds-icon-private.entry.esm.js +0 -21
- package/eds-icon-public.entry.esm.js +0 -21
- package/eds-icon-search.entry.esm.js +0 -21
- package/eds-icon-star.entry.esm.js +0 -21
- package/eds-icon-start.entry.esm.js +0 -21
- package/eds-icon-success.entry.esm.js +0 -21
- package/eds-icon-thumbs-down.entry.esm.js +0 -21
- package/eds-icon-thumbs-up.entry.esm.js +0 -21
- package/eds-icon-tutorial.entry.esm.js +0 -21
- package/eds-icon-unknown.entry.esm.js +0 -21
- package/eds-icon-updown.entry.esm.js +0 -21
- package/eds-icon-user.entry.esm.js +0 -21
- package/eds-icon-view.entry.esm.js +0 -21
- package/eds-progress-bar.entry.esm.js +0 -52
- package/eds-social-networks.entry.esm.js +0 -73
- package/eds-trl.entry.esm.js +0 -68
- package/eu-9ddde93a.esm.js +0 -30
- package/index-39c58238.esm.js +0 -58
- package/loader-c9628637.esm.js +0 -30
- package/logo-color-7f1fd803.esm.js +0 -115
- package/logo-color-margins-ff8ce71b.esm.js +0 -118
- package/logo-white-no-bg-f382f86f.esm.js +0 -1021
- package/menu-340ea948.esm.js +0 -11
- package/minus-b30a7c71.esm.js +0 -11
- package/more-4449d549.esm.js +0 -13
- package/paper-8e74ea31.esm.js +0 -15
- package/plus-89c07be2.esm.js +0 -12
- package/portal-d6c8ce56.esm.js +0 -18
- package/private-1c25ff8e.esm.js +0 -25
- package/public-d4d8c585.esm.js +0 -16
- package/search-fbcd79c2.esm.js +0 -12
- package/star-0da9b5e9.esm.js +0 -5
- package/start-65126a4f.esm.js +0 -3
- package/success-443809da.esm.js +0 -18
- package/thumbs-down-a18fd049.esm.js +0 -5
- package/thumbs-up-c19a71bc.esm.js +0 -6
- package/tutotial-150ee1fd.esm.js +0 -27
- package/unknown-ed01a24c.esm.js +0 -22
- package/up-and-down-8b69ca97.esm.js +0 -12
- package/user-71ebdc15.esm.js +0 -16
- package/view-e900f2d4.esm.js +0 -3
|
@@ -0,0 +1,1966 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index.esm2.js';
|
|
2
|
+
import { s as sendAnalytics, m as matomoOptIn, a as matomoOptOut } from './analytics-d99780e3.esm.js';
|
|
3
|
+
import { p as parseData } from './sharedUtils-a550989c.esm.js';
|
|
4
|
+
import { l as logoNegative } from './negative-84eec72e.esm.js';
|
|
5
|
+
import { l as logoPositive } from './positive-cc986d7c.esm.js';
|
|
6
|
+
import 'react';
|
|
7
|
+
import 'react/jsx-runtime';
|
|
8
|
+
import 'react-dom';
|
|
9
|
+
|
|
10
|
+
const edsAccordionCss=":host{display:block;width:100%}.accordion-card{border-radius:16px;padding:1.5rem;transition:all 0.4s ease;position:relative;overflow:hidden;border:1px solid rgba(0, 0, 0, 0.1)}.accordion-card-default{background:var(--brand-black);color:var(--white)}.accordion-card-default:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-default .accordion-title{color:var(--white)}.accordion-card-default .accordion-description{color:var(--grey-light)}.accordion-card-default .accordion-chevron{color:var(--white)}.accordion-card-default .accordion-content{color:var(--grey-light)}.accordion-card-inverse{background:var(--white);color:var(--brand-black)}.accordion-card-inverse:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-inverse .accordion-title{color:var(--brand-black)}.accordion-card-inverse .accordion-description{color:var(--grey-700)}.accordion-card-inverse .accordion-chevron{color:var(--brand-black)}.accordion-card-inverse .accordion-content{color:var(--grey-700)}.accordion-header{display:flex;align-items:center;gap:1rem;cursor:pointer;width:100%;background:none;border:none;padding:0;text-align:left;-webkit-user-select:none;user-select:none}.accordion-header:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px;border-radius:8px}.accordion-icon{width:48px;height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;background:rgba(0, 255, 157, 0.1);border-radius:12px;color:var(--brand-green);flex-shrink:0}.accordion-card-inverse .accordion-icon{background:rgba(0, 0, 0, 0.05);color:var(--brand-black)}.accordion-header-text{flex-grow:1;min-width:0}.accordion-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:1.25rem;line-height:1.4;margin:0}.accordion-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6;margin-top:0.25rem;margin-bottom:0}.accordion-chevron{flex-shrink:0;transition:transform 0.3s ease}.accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.4s ease}.accordion-panel.expanded{grid-template-rows:1fr}.accordion-panel-inner{overflow:hidden}.accordion-content{padding-top:1rem;font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media (max-width: 768px){.accordion-card{padding:1.25rem}.accordion-icon{width:40px;height:40px;min-width:40px}.accordion-title{font-size:1.125rem}.accordion-header{gap:0.75rem}}h3,p{margin:0}";const EdsAccordionStyle0=edsAccordionCss;const EdsAccordion=class{constructor(hostRef){registerInstance(this,hostRef);this.accordion=createEvent(this,"accordion",7);/**
|
|
11
|
+
* Handles the click event on the accordion header to toggle expansion.
|
|
12
|
+
* Toggles the `isExpanded` state and emits the `accordion` event.
|
|
13
|
+
*/this.handleClick=()=>{var _a;this.isExpanded=!this.isExpanded;this.toggleIcon=this.isExpanded?'chevron-down':'chevron-right';this.accordion.emit(this.isExpanded);sendAnalytics({category:'ui-component',parentContext:null,tag:this.el.tagName.toLowerCase(),name:((_a=this.heading)===null||_a===void 0?void 0:_a.toLowerCase())||'',action:this.isExpanded?'expanded':'collapsed'});};/**
|
|
14
|
+
* Handles keyboard activation on the header (Enter and Space keys).
|
|
15
|
+
*/this.handleKeyDown=e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleClick();}};this.heading=undefined;this.description=undefined;this.variant='inverse';this.icon=undefined;this.switchBg=true;this.expanded=false;this.clampText=true;this.isExpanded=this.expanded;this.toggleIcon=this.expanded?'chevron-down':'chevron-right';}render(){const cardClasses=['accordion-card',`accordion-card-${this.variant}`].join(' ');return h("div",{key:'08061b87dfd54b49f8aa782f29e2a9c5c8bcd2ef',class:cardClasses},h("div",{key:'728033232d8e6aa348bc98d028a5bd62d32fd934',class:"accordion-header",onClick:this.handleClick,onKeyDown:this.handleKeyDown,role:"button",tabindex:0,"aria-expanded":String(this.isExpanded),"aria-controls":"accordionSection"},this.icon&&h("div",{key:'eeb4260c955a2d4394bc3663dc749afc45b6f87f',class:"accordion-icon"},h("eds-icon-wrapper",{key:'0896625a235bda97a098ac7b9a4ebec00e5fa587',name:this.icon,size:24})),h("div",{key:'3e6b85780bc597a84dc0eb5d2526f9e54c16148d',class:"accordion-header-text"},h("h3",{key:'b5c5c0023bc23dc225183736f02683134a40da93',class:"accordion-title"},this.heading),this.description&&h("p",{key:'eb04c90cef03a838a4f852b988f3a9984e593120',class:`accordion-description ${!this.isExpanded&&this.clampText?'line-clamp-1':''}`},this.description)),h("eds-icon-wrapper",{key:'583d0bcc82a178c2a47eef586aede9c87e8ea456',name:this.toggleIcon,size:20,class:"accordion-chevron"})),h("section",{key:'8f820377d639ced2d0a4fe505452b6b408640400',id:"accordionSection","aria-hidden":String(!this.isExpanded),class:`accordion-panel ${this.isExpanded?'expanded':''}`},h("div",{key:'d41dc9c3ef21f14df3ca25138440356703fa35ed',class:"accordion-panel-inner"},h("div",{key:'156c3c9b139efcb964525147338ecdeeca538123',class:"accordion-content"},h("slot",{key:'b19b54c279cca1a32b4ed0f5b0a319d87b7bf937'})))));}get el(){return getElement(this);}};EdsAccordion.style=EdsAccordionStyle0;const edsAlertCss=":host{display:block;width:100%}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}p{margin:0}.alert-card{position:relative;border-radius:16px;padding:1rem 1.25rem;display:flex;gap:0.75rem;width:100%;border:1px solid rgba(0, 0, 0, 0.1);overflow:hidden;font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.alert-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}.alert-default{background-color:var(--grey-light);color:var(--brand-black)}.alert-default::before{background-color:var(--grey-dark)}.alert-default .alert-icon{color:var(--grey-dark)}.alert-warning{background-color:var(--yellow-200);color:var(--brand-black)}.alert-warning::before{background-color:var(--yellow-600)}.alert-warning .alert-icon{color:var(--yellow-600)}.alert-error{background-color:var(--red-200);color:var(--brand-black)}.alert-error::before{background-color:var(--red-600)}.alert-error .alert-icon{color:var(--red-600)}.alert-success{background-color:var(--brand-green);color:var(--brand-black)}.alert-success::before{background-color:var(--green-700)}.alert-success .alert-icon{color:var(--green-700)}.alert-brand{background-color:var(--brand-black);color:var(--brand-green)}.alert-brand::before{background-color:var(--brand-green)}.alert-brand .alert-icon{color:var(--brand-green)}.alert-brand .alert-dismiss{color:var(--brand-green)}.alert-horizontal{flex-direction:row;align-items:center}.alert-vertical{flex-direction:column;align-items:flex-start}.alert-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.alert-body{flex:1;min-width:0}.alert-message{margin:0}.alert-action{flex-shrink:0}.alert-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0.25rem;border-radius:8px;color:inherit;opacity:0.7;transition:opacity 0.2s ease}.alert-dismiss:hover{opacity:1}.alert-dismiss:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px}@media (max-width: 768px){.alert-card{padding:0.75rem 1rem;gap:0.5rem}.alert-horizontal{flex-direction:column;align-items:flex-start}}";const EdsAlertStyle0=edsAlertCss;const EdsAlert=class{constructor(hostRef){registerInstance(this,hostRef);this.edsalert=createEvent(this,"edsalert",7);this.edsDismiss=createEvent(this,"edsDismiss",7);this.message=undefined;this.pressableLabel=undefined;this.pressableUrl=undefined;this.direction='horizontal';this.intent='default';this.icon=undefined;this.dismissible=false;this.withBtn=false;this.dismissed=false;}componentWillLoad(){this.withBtn=Boolean(this.pressableLabel);}onPressableLabelChange(newVal){this.withBtn=Boolean(newVal);}/** Normalize 'info' → 'default' */get normalizedIntent(){return this.intent==='info'?'default':this.intent;}/** Get the icon to display, or null if none provided */get intentIcon(){return this.icon||null;}handleAction(){this.edsalert.emit();}handleDismiss(){this.dismissed=true;this.edsDismiss.emit();}render(){if(this.dismissed)return null;const intent=this.normalizedIntent;const ariaLabel=intent!=='default'?`${intent} alert`:'alert';return h("div",{class:`alert-card alert-${intent} alert-${this.direction}`,role:"alert","aria-label":ariaLabel,"aria-live":intent==='error'||intent==='warning'?'assertive':'polite'},this.intentIcon&&h("div",{class:"alert-icon"},h("eds-icon-wrapper",{name:this.intentIcon,size:20})),h("div",{class:"alert-body"},this.message?h("p",{class:"alert-message"},this.message):h("div",{class:"alert-message"},h("slot",null))),this.withBtn&&h("div",{class:"alert-action"},this.pressableUrl?h("eds-link",{label:this.pressableLabel,url:this.pressableUrl,intent:"strong"}):h("eds-button",{label:this.pressableLabel,intent:"ghost",onClick:()=>this.handleAction()})),this.dismissible&&h("button",{class:"alert-dismiss",onClick:()=>this.handleDismiss(),"aria-label":"Dismiss alert"},h("eds-icon-wrapper",{name:"close",size:20})));}get el(){return getElement(this);}static get watchers(){return {"pressableLabel":["onPressableLabelChange"]};}};EdsAlert.style=EdsAlertStyle0;const edsAvatarCss="::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: currentColor;\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n }\n\n &::after {\n position: absolute;\n }\n\n &::after {\n inset: 0rem;\n }\n\n &::after {\n z-index: 1;\n }\n\n &::after {\n border-radius: 8px;\n }\n\n &::after {\n border-width: 1px;\n }\n\n &::after {\n border-width: 2px;\n }\n\n &::after {\n border: 2px solid rgba(0, 0, 0, .1);\n }\n\n &::after {\n content: '';\n }\n}\n\n.border-inside-pill {\n &::after {\n border-radius: 100px;\n }\n\n &::after {\n content: '';\n }\n}\n\n.border-inside-inverse {\n &::after {\n border: 2px solid rgba(255, 255, 255, 0.3);\n }\n\n &::after {\n content: '';\n }\n}\n\n.aspect-1x1 {\n aspect-ratio: 1/1;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.px-4 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.rounded-pill {\n border-radius: 100px;\n}\n\n.rounded-sm {\n border-radius: 8px;\n}\n\n.rounded-xs {\n border-radius: 4px;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.bg-dark {\n background-color: var(--grey-light);\n}\n\n.bg-darker {\n background-color: var(--grey-light);\n}\n\n.bg-stronger {\n background-color: var(--grey-dark);\n}\n\n.bg-strongest {\n background-color: var(--brand-black);\n}\n\n.text-accent {\n color: var(--brand-green);\n}\n\n.text-default {\n color: var(--brand-black);\n}\n\n.\\!no-underline {\n text-decoration-line: none !important;\n}\n\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n\n.w-32 {\n width: 2rem;\n}\n\n.w-44 {\n width: 2.75rem;\n}\n\n.w-\\[54px\\] {\n width: 54px;\n}\n\n.bg-gradient-01-top {\n background: linear-gradient(to bottom, #00E766, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-01-bottom {\n background: linear-gradient(to top, #00E766, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-02-top {\n background: linear-gradient(to bottom, #F3F30A, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-02-bottom {\n background: linear-gradient(to top, #F3F30A, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-03-top {\n background: linear-gradient(to bottom, #C461FF, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-03-bottom {\n background: linear-gradient(to top, #C461FF, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-04-top {\n background: linear-gradient(to bottom, #2B69FC, ease-in-out, #E6E6E6);\n}\n\n.bg-gradient-04-bottom {\n background: linear-gradient(to top, #2B69FC, ease-in-out, #E6E6E6);\n}";const EdsAvatarStyle0=edsAvatarCss;const EdsAvatar=class{constructor(hostRef){registerInstance(this,hostRef);this.firstName='User';this.lastName='Avatar';this.picture=undefined;this.initials=undefined;this.color='grey';}/**
|
|
16
|
+
* Flag to render the avatar with rounded (pill) shape if `true`.
|
|
17
|
+
*///@Prop() rounded: boolean = false;
|
|
18
|
+
/**
|
|
19
|
+
* Determines if the initials should use a stronger (larger) font style.
|
|
20
|
+
*///@Prop() initialsStrong: boolean = false;
|
|
21
|
+
/**
|
|
22
|
+
* Computed initials based on the provided `initials` prop or derived from `firstName` and `lastName`.
|
|
23
|
+
* @returns {string | undefined} Initials for display in the avatar.
|
|
24
|
+
*/get computedInitials(){if(this.initials){return (this.initials.match(/.{1,3}/g)||[])[0]||'';}else if(this.firstName&&this.lastName){return `${this.firstName.charAt(0)}${this.lastName.charAt(0)}`.toUpperCase();}return undefined;}/**
|
|
25
|
+
* Computes the CSS classes for the avatar container based on provided props like `rounded`, `color`, and `picture`.
|
|
26
|
+
* @returns {string} List of CSS classes to apply to the avatar container.
|
|
27
|
+
*/get containerClasses(){return ['border-inside','aspect-1x1','flex','items-center','justify-center','overflow-hidden',this.picture?'':'px-4','w-[54px] rounded-sm',//this.rounded ? 'rounded-full border-inside-pill w-32' : 'w-[54px] rounded-sm',
|
|
28
|
+
this.color?'border-inside-inverse':'',this.picture?'':this.color==='grey'?'bg-dark':'bg-strongest text-accent'].join(' ');}/**
|
|
29
|
+
* Renders the avatar component. Displays either an image using `eds-img` or initials depending on whether `picture` or `computedInitials` is set.
|
|
30
|
+
* @returns {JSX.Element} The rendered avatar component.
|
|
31
|
+
*/render(){return h("div",{key:'36f8cb598e0e53793ce8a49e9e2419f41ba8f160',class:this.containerClasses},this.picture?h("eds-img",{src:this.picture,width:54,height:54,sizes:"120px",alt:`${this.firstName} ${this.lastName}`,lazyload:true,withBg:true}):h("abbr",{title:this.computedInitials||`${this.firstName} ${this.lastName}`,class:"!no-underline f-ui-01"},this.computedInitials));}};EdsAvatar.style=EdsAvatarStyle0;const edsBlockBreakCss=".border-softer{border-color:rgba(0, 0, 0, .1)}.border-default{border-color:var(--brand-black)}.my-16{margin-top:1rem;margin-bottom:1rem}.block{display:block}.w-full{width:100%}.border-t-2{border-top-width:2px}";const EdsBlockBreakStyle0=edsBlockBreakCss;const EdsBlockBreak=class{constructor(hostRef){registerInstance(this,hostRef);this.inverse=false;}render(){return h("hr",{key:'2531c44fa20745f7860e4647f77ffa038a56d832',class:`${this.inverse?'border-default':'border-softer'} my-16 inline-block w-full border-t-2`});}};EdsBlockBreak.style=EdsBlockBreakStyle0;const edsBreadcrumbCss="blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.125rem * var(--tw-space-x-reverse));margin-left:calc(0.125rem * calc(1 - var(--tw-space-x-reverse)))}.px-2{padding-left:0.125rem;padding-right:0.125rem}.w-20{width:1.25rem}.w-28{width:1.75rem}.w-32{width:2rem}.w-44{width:2.75rem}.h-20{height:1.25rem}.h-24{height:1.5rem}.h-28{height:1.75rem}.h-32{height:2rem}@media (min-width: 750px){.md\\:block{display:block}}";const EdsBreadcrumbStyle0=edsBreadcrumbCss;const EdsBreadcrumb=class{constructor(hostRef){registerInstance(this,hostRef);/**
|
|
32
|
+
* Updates the maximum number of visible items and tracks if the screen is small.
|
|
33
|
+
*/this.updateScreenSize=()=>{const width=window.innerWidth;if(width<769){this.maxVisibleItems=3;}else if(width<=1024){this.maxVisibleItems=3;}else if(width<=1280){this.maxVisibleItems=3;}else if(width<=2200){this.maxVisibleItems=4;}else {this.maxVisibleItems=6;}};this.items=[];this.intent='ghost';this.parsedItems=[];this.isSmallScreen=false;this.maxVisibleItems=6;}/**
|
|
34
|
+
* Watches for changes to the `items` prop and parses it.
|
|
35
|
+
*/parseItems(newValue){this.parsedItems=parseData(newValue);}/**
|
|
36
|
+
* Lifecycle method that runs when the component is about to be loaded.
|
|
37
|
+
* It parses the initial `items` prop value.
|
|
38
|
+
*/componentWillLoad(){this.parseItems(this.items);this.updateScreenSize();window.addEventListener('resize',this.updateScreenSize);}disconnectedCallback(){window.removeEventListener('resize',this.updateScreenSize);}/**
|
|
39
|
+
* Lifecycle method that runs when the component has fully loaded.
|
|
40
|
+
* It emits a custom event for each `eds-link` element contained within the breadcrumb.
|
|
41
|
+
*/componentDidLoad(){var _a;const links=(_a=this.el.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll('eds-link');links===null||links===void 0?void 0:links.forEach(link=>{this.emitContext(link);});}/**
|
|
42
|
+
* Emits a custom event called `parentContext` for a given link element.
|
|
43
|
+
* This event provides context information about the breadcrumb component.
|
|
44
|
+
*
|
|
45
|
+
* @param linkElement - The link element to which the event will be dispatched.
|
|
46
|
+
*/emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:null}});linkElement.dispatchEvent(event);}/**
|
|
47
|
+
* Returns breadcrumb items with potential truncation if there are too many.
|
|
48
|
+
* It inserts an ellipsis item where necessary.
|
|
49
|
+
*/getTruncatedItems(){const totalItems=this.parsedItems.length;const ellipsis={label:'...',url:'',isHidden:true};if(totalItems>this.maxVisibleItems){const firstItem=this.parsedItems[0];const lastItems=this.parsedItems.slice(-2);if(this.maxVisibleItems===3){return [firstItem,ellipsis,...lastItems];}else if(this.maxVisibleItems===4){const middleItem=this.parsedItems[Math.floor(totalItems/2)];return [firstItem,middleItem,ellipsis,...lastItems];}}return this.parsedItems;}/**
|
|
50
|
+
* Helper to determine the display label and full label.
|
|
51
|
+
* If the label is longer than 15 characters and the item is not the current (last) item,
|
|
52
|
+
* we display a truncated version but use the full label for aria attributes.
|
|
53
|
+
*/getLabels(item,isCurrent){if(!isCurrent&&item.label.length>15){return {displayLabel:`${item.label.slice(0,15)}...`,fullLabel:item.label};}return {displayLabel:item.label,fullLabel:item.label};}/**
|
|
54
|
+
* Render method for the breadcrumb component.
|
|
55
|
+
* It creates a navigation element with an ordered list of breadcrumb links.
|
|
56
|
+
* The last link is marked as the current page.
|
|
57
|
+
*/render(){const itemsToRender=this.getTruncatedItems();return h("nav",{key:'95c13ac07de20bc04fb57ee990e5d21f928f3a86',"aria-label":"Breadcrumb"},h("ol",{key:'2a03ff53ac27eaa5e37ddfef32e9a4fe322755dd',class:"flex items-center space-x-2"},itemsToRender.map((item,index)=>{const isLast=index===itemsToRender.length-1;return h("li",{class:"flex items-center"},!item.isHidden?(()=>{const{fullLabel}=this.getLabels(item,isLast);const linkIntent=isLast?this.intent==='strong'?'weak':this.intent==='weak'?'strong':this.intent:this.intent;return h("eds-link",Object.assign({label:fullLabel,url:item.url,intent:linkIntent,disabled:isLast,current:isLast,"aria-label":fullLabel,size:"small","icon-small":"false"},isLast?{'aria-current':'page'}:{}));})():h("eds-link",{label:"...",url:"#",intent:"strong",current:false,"aria-label":"...",size:"small","icon-small":"false",icon:"chevron-right"}),!isLast&&!item.isHidden&&h("eds-icon-wrapper",{name:"chevron-right",class:"w-20 h-20"}));})));}get el(){return getElement(this);}static get watchers(){return {"items":["parseItems"]};}};EdsBreadcrumb.style=EdsBreadcrumbStyle0;function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n;}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n;}const falsyToString=value=>typeof value==="boolean"?"".concat(value):value===0?"0":value;const cx=clsx;const cva=(base,config)=>{return props=>{var ref;if((config===null||config===void 0?void 0:config.variants)==null)return cx(base,props===null||props===void 0?void 0:props.class,props===null||props===void 0?void 0:props.className);const{variants,defaultVariants}=config;const getVariantClassNames=Object.keys(variants).map(variant=>{const variantProp=props===null||props===void 0?void 0:props[variant];const defaultVariantProp=defaultVariants===null||defaultVariants===void 0?void 0:defaultVariants[variant];if(variantProp===null)return null;const variantKey=falsyToString(variantProp)||falsyToString(defaultVariantProp);return variants[variant][variantKey];});const propsWithoutUndefined=props&&Object.entries(props).reduce((acc,param)=>{let[key,value]=param;if(value===undefined){return acc;}acc[key]=value;return acc;},{});const getCompoundVariantClassNames=config===null||config===void 0?void 0:(ref=config.compoundVariants)===null||ref===void 0?void 0:ref.reduce((acc,param1)=>{let{class:cvClass,className:cvClassName,...compoundVariantOptions}=param1;return Object.entries(compoundVariantOptions).every(param=>{let[key,value]=param;return Array.isArray(value)?value.includes({...defaultVariants,...propsWithoutUndefined}[key]):{...defaultVariants,...propsWithoutUndefined}[key]===value;})?[...acc,cvClass,cvClassName]:acc;},[]);return cx(base,getVariantClassNames,getCompoundVariantClassNames,props===null||props===void 0?void 0:props.class,props===null||props===void 0?void 0:props.className);};};const edsButtonCss="/* ============================================\n EDS BUTTON - NEW EBRAINS VISUAL SYSTEM\n ============================================ */\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: currentColor;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\n 1. Change the font styles in all browsers.\n 2. Remove the margin in Firefox and Safari.\n 3. Remove default padding in all browsers.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\n/*\n Remove the inheritance of text transform in Edge and Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n 1. Correct the inability to style clickable types in iOS and Safari.\n 2. Remove default button styles.\n */\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\np {\n margin: 0;\n}\n\n/*\n Set the default cursor for buttons.\n */\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\n Make sure disabled buttons don't get the pointer cursor.\n */\n:disabled {\n cursor: default;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n/* ============================================\n TYPOGRAPHY CLASSES\n ============================================ */\n\n.f-body-01 {\n font-family: var(--f-body-01-fontFamily);\n font-weight: var(--f-body-01-fontWeight);\n font-size: var(--f-body-01-fontSize);\n line-height: var(--f-body-01-lineHeight);\n letter-spacing: var(--f-body-01-letterSpacing);\n}\n\n.f-body-02 {\n font-family: var(--f-body-02-fontFamily);\n font-weight: var(--f-body-02-fontWeight);\n font-size: var(--f-body-02-fontSize);\n line-height: var(--f-body-02-lineHeight);\n letter-spacing: var(--f-body-02-letterSpacing);\n}\n\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n\n.f-ui-02 {\n font-family: var(--f-ui-02-fontFamily);\n font-weight: var(--f-ui-02-fontWeight);\n font-size: var(--f-ui-02-fontSize);\n line-height: var(--f-ui-02-lineHeight);\n letter-spacing: var(--f-ui-02-letterSpacing);\n}\n\n/* ============================================\n BUTTON BORDER EFFECTS - NEW SYSTEM\n ============================================ */\n\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(7, 20, 13, 1); /* brand-black with opacity */\n content: '';\n }\n}\n\n.border-inside-inverse {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 1); /* white border */\n content: '';\n }\n}\n\n.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape */\n content: '';\n }\n}\n\n.border-inside-inverse.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape for inverse border */\n }\n}\n\n/* ============================================\n LOADER SPINNER\n ============================================ */\n\n.loader {\n box-sizing: border-box;\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.loader {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border: 3px solid rgba(7, 20, 13, 0.3); /* brand-black */\n border-bottom-color: #07140D; /* brand-black */\n}\n\n/* ============================================\n TRANSITIONS & EFFECTS\n ============================================ */\n\n.effect-color {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.effect-focus {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus:focus-visible {\n outline-style: solid;\n}\n\n.effect-focus-within {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus-within:focus-within {\n outline-style: solid;\n}\n\n/* ============================================\n BRAND HOVER TRANSFORM EFFECT\n ============================================ */\n.brand-hover-transform {\n transition-property: transform, box-shadow, color, background-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.brand-hover-transform:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 20px rgba(0, 255, 157, 0.3);\n}\n\n.brand-hover-transform[aria-disabled=\"true\"]:hover,\n.brand-hover-transform:disabled:hover {\n transform: none;\n box-shadow: none;\n}\n\n/* Secondary Inverse Transform Effect */\n.secondary-inverse-transform {\n transition-property: transform, background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.secondary-inverse-transform:hover {\n transform: translateY(-2px);\n}\n\n.secondary-inverse-transform[aria-disabled=\"true\"]:hover,\n.secondary-inverse-transform:disabled:hover {\n transform: none;\n}\n\n/* ============================================\n UTILITY CLASSES\n ============================================ */\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.static {\n position: static;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.inset-0 {\n inset: 0rem;\n}\n\n.inset-x-16 {\n left: 1rem;\n right: 1rem;\n}\n\n/* ============================================\n POSITIONING\n ============================================ */\n\n.-top-8 {\n top: -0.5rem;\n}\n\n.left-0 {\n left: 0rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-4 {\n left: 0.25rem;\n}\n\n.left-\\[4px\\] {\n left: 4px;\n}\n\n.right-0 {\n right: 0rem;\n}\n\n.right-4 {\n right: 0.25rem;\n}\n\n.right-8 {\n right: 0.5rem;\n}\n\n.right-\\[6px\\] {\n right: 6px;\n}\n\n.top-0 {\n top: 0rem;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n/* ============================================\n SPACING\n ============================================ */\n\n.m-0 {\n margin: 0rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-16 {\n margin-left: -1rem;\n}\n\n.-mr-16 {\n margin-right: -1rem;\n}\n\n.ml-0 {\n margin-left: 0rem;\n}\n\n.ml-4 {\n margin-left: 0.25rem;\n}\n\n.ml-64 {\n margin-left: 4rem;\n}\n\n.ml-8 {\n margin-left: 0.5rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.mr-4 {\n margin-right: 0.25rem;\n}\n\n.mr-8 {\n margin-right: 0.5rem;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n/* ============================================\n DISPLAY\n ============================================ */\n\n.block {\n display: block;\n}\n\n.\\!block {\n display: block !important;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.hidden {\n display: none;\n}\n\n/* ============================================\n DIMENSIONS\n ============================================ */\n\n.h-20 {\n height: 1.25rem;\n}\n\n.h-24 {\n height: 1.5rem;\n}\n\n.h-36 {\n height: 2.25rem;\n}\n\n.h-40 {\n height: 2.5rem;\n}\n\n.h-44 {\n height: 2.75rem;\n}\n\n/* Min-height variants — used for button sizing so a label that wraps to\n two lines grows (with its py-12 padding) instead of being clipped at a\n fixed height. Single-line buttons keep the same height. */\n.min-h-36 {\n min-height: 2.25rem;\n}\n\n.min-h-44 {\n min-height: 2.75rem;\n}\n\n.h-48 {\n height: 3rem;\n}\n\n.h-auto {\n height: auto;\n}\n\n.h-full {\n height: 100%;\n}\n\n.\\!min-h-20 {\n min-height: 1.25rem !important;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-20 {\n width: 1.25rem;\n}\n\n.w-24 {\n width: 1.5rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-auto {\n width: auto;\n}\n\n/* ============================================\n FLEXBOX\n ============================================ */\n\n.flex-none {\n flex: none;\n}\n\n.grow {\n flex-grow: 1;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-4 {\n gap: 0.25rem;\n}\n\n.gap-8 {\n gap: 0.5rem;\n}\n\n.space-x-2> :not([hidden])~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.125rem * var(--tw-space-x-reverse));\n margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));\n}\n\n/* ============================================\n OVERFLOW\n ============================================ */\n\n.overflow-hidden {\n overflow: hidden;\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-scroll {\n overflow-y: scroll;\n}\n\n/* ============================================\n TEXT\n ============================================ */\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.break-words {\n overflow-wrap: break-word;\n}\n\n/* ============================================\n BORDERS & RADIUS - NEW SYSTEM\n ============================================ */\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 16px;\n}\n\n.rounded-md {\n border-radius: 12px;\n}\n\n.rounded-pill {\n border-radius: 100px; /* NEW: pill shape */\n}\n\n.rounded-sm {\n border-radius: 8px;\n}\n\n.rounded-xxs {\n border-radius: 2px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border-color: rgb(0 52 203 / var(--tw-border-opacity));\n}\n\n.border-\\[\\#d2d2d2\\] {\n --tw-border-opacity: 1;\n border-color: rgb(210 210 210 / var(--tw-border-opacity));\n}\n\n.border-softest {\n border-color: var(--grey-light);\n}\n\n.border-b-softer {\n border-bottom-color: rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n}\n\n/* ============================================\n BACKGROUNDS - NEW EBRAINS COLORS\n ============================================ */\n\n/* Accent backgrounds - NEW green */\n.\\!bg-accent-dark {\n background-color: var(--brand-green-dark) !important; /* NEW: #00C87B */\n}\n\n.bg-accent {\n background-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.bg-brand-light {\n background-color: var(--green-200); /* light brand tint #d3ffdc — brandLight intent */\n}\n\n.bg-accent-dark {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n/* Neutral backgrounds - NEW simplified greys */\n.\\!bg-darker {\n background-color: var(--grey-dark) !important; /* NEW: #7A7B7A */\n}\n\n.bg-dark {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.bg-darker {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* Strong backgrounds - NEW brand-black */\n.\\!bg-strong-dark {\n background-color: var(--brand-black) !important; /* NEW: #07140D */\n}\n\n.bg-strong {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.bg-strong-dark {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-stronger {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-strongest {\n background-color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n/* Overlay */\n.bg-overlay {\n background-color: rgba(7, 20, 13, 0.25); /* NEW: brand-black overlay */\n}\n\n/* ============================================\n PADDING\n ============================================ */\n\n.p-12 {\n padding: 0.75rem;\n}\n\n.p-6 {\n padding: 0.375rem;\n}\n\n.p-8 {\n padding: 0.5rem;\n}\n\n.\\!px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n\n.px-12 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-16 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-32 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.py-8 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-12 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\n.pl-2 {\n padding-left: 0.125rem;\n}\n\n.pl-4 {\n padding-left: 0.25rem;\n}\n\n.pl-8 {\n padding-left: 0.5rem;\n}\n\n.pr-2 {\n padding-right: 0.125rem;\n}\n\n.pr-4 {\n padding-right: 0.25rem;\n}\n\n.pr-8 {\n padding-right: 0.5rem;\n}\n\n/* ============================================\n TEXT COLORS - NEW SYSTEM\n ============================================ */\n\n.\\!text-current {\n color: currentColor !important;\n}\n\n.text-accent {\n color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-default {\n color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n.text-inverse {\n color: var(--white);\n}\n\n.text-light {\n color: var(--grey-dark); /* NEW: simplified to grey-dark */\n}\n\n\n.text-lightest {\n color: var(--grey-light); /* NEW: simplified to grey-dark */\n}\n\n/* ============================================\n OPACITY\n ============================================ */\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-20 {\n opacity: 20;\n}\n\n/* ============================================\n SHADOWS - NEW SYSTEM\n ============================================ */\n\n.shadow {\n --tw-shadow: 0 1px 3px rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-accent {\n --tw-shadow: 0 0 16px rgba(0, 255, 157, 0.5); /* NEW: brand-green glow */\n --tw-shadow-colored: 0 0 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.underline-offset-4 {\n text-underline-offset: 0.2em;\n}\n\n.\\@container {\n container-type: inline-size;\n}\n\n/* ============================================\n PSEUDO-ELEMENT EFFECTS\n ============================================ */\n\n.after\\:effect-opacity::after {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.even\\:bg-inverse-softer:nth-child(even) {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.invalid\\:text-lightest:invalid {\n color: var(--grey-dark); /* NEW: simplified */\n}\n\n/* ============================================\n INTERACTIVE STATES - NEW COLORS\n ============================================ */\n\n.focus-within\\:bg-transparent:focus-within {\n background-color: transparent;\n}\n\n/* Hover states with NEW colors */\n\n.hover\\:border-0::hover {\n border-width: 0px;\n}\n\n.hover\\:border-accent::hover {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black);\n}\n\n.hover\\:text-light:hover {\n color: var(--grey-dark);\n}\n\n.hover\\:text-inverse:hover {\n color: var(--white);\n}\n\n\n.hover\\:bg-accent:hover {\n background-color: var(--brand-green); /* NEW: #00C87B */\n}\n\n.hover\\:bg-accent-dark:hover {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n.hover\\:bg-dark:hover {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.hover\\:bg-darker:hover {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:bg-default:hover {\n background-color: var(--grey-light);\n}\n\n.hover\\:bg-inverse:hover {\n background-color: var(--white);\n}\n\n.hover\\:bg-strong-dark:hover {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:bg-strongest:hover {\n background-color: var(--brand-black);\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:text-lighter:hover {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:\\!underline:hover {\n text-decoration-line: underline !important;\n}\n\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n\n.hover\\:shadow-hover:hover {\n --tw-shadow: 0 8px 24px rgba(7, 20, 13, 0.2); /* NEW: brand-black */\n --tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:shadow-none:focus {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n/* ============================================\n DISABLED STATES - NEW COLORS\n ============================================ */\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:bg-dark:disabled {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.disabled\\:text-lightest:disabled {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:cursor-not-allowed[aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n.aria-disabled\\:\\!border-transparent[aria-disabled=\"true\"] {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:bg-dark[aria-disabled=\"true\"] {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.aria-disabled\\:bg-transparent[aria-disabled=\"true\"] {\n background-color: transparent;\n}\n\n.aria-disabled\\:text-light[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:text-lightest[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:line-through[aria-disabled=\"true\"] {\n text-decoration-line: line-through;\n}\n\n.aria-disabled\\:shadow-none[aria-disabled=\"true\"] {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.aria-current-page\\:bg-darker[aria-current=\"page\"] {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* ============================================\n AFTER PSEUDO-ELEMENTS\n ============================================ */\n\n.after\\:absolute::after {\n position: absolute;\n}\n\n.after\\:inset-0::after {\n inset: 0rem;\n}\n\n.after\\:inset-x-0::after {\n left: 0rem;\n right: 0rem;\n}\n\n.after\\:bottom-0::after {\n bottom: 0rem;\n}\n\n.after\\:left-16::after {\n left: 1rem;\n}\n\n.after\\:right-16::after {\n right: 1rem;\n}\n\n.after\\:z-10::after {\n z-index: 10;\n}\n\n.after\\:rounded-lg::after {\n border-radius: 16px;\n}\n\n.after\\:rounded-t-lg::after {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n\n.after\\:border-3::after {\n border-width: 3px;\n}\n\n.after\\:border-b-2::after {\n border-bottom-width: 2px;\n}\n\n.after\\:\\!border-transparent::after {\n border-color: transparent !important;\n}\n\n.after\\:border-accent::after {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.after\\:border-accent-dark::after {\n border-color: var(--brand-green-dark); /* NEW: #00FF9D */\n}\n\n.after\\:border-soft::after {\n border-color: var(--grey-dark);\n}\n\n.after\\:border-softest::after {\n border-color: var(--grey-light);\n}\n\n.after\\:opacity-0::after {\n opacity: 0;\n}\n\n.after\\:content-\\[\\'\\'\\]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.hover\\:text-accent:hover {\n color: var(--brand-green);\n}\n\n.hover\\:after\\:\\border-accent:hover::after {\n border-color: var(--brand-green);\n}\n\n.hover\\:after\\:\\!border-transparent:hover::after {\n border-color: transparent !important;\n}\n\n.hover\\:after\\:opacity-100:hover::after {\n opacity: 1;\n}\n\n.focus-visible\\:after\\:opacity-100:focus-visible::after {\n opacity: 1;\n}\n\n.aria-disabled\\:after\\:\\!border-transparent[aria-disabled=\"true\"]::after {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:after\\:\\!border-0[aria-disabled=\"true\"]::after {\n border-width: 0 !important;\n}\n\n.hover\\:before\\:opacity-100:hover::before {\n opacity: 1;\n}\n\n/* ============================================\n CTA BUTTON STYLES\n ============================================ */\n\n/* CTA link style */\n.cta-link {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-01-fontSize);\n color: var(--grey-dark);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.cta-link:hover {\n color: var(--brand-green);\n}\n\n/* CTA brand link style - always green */\n.cta-link-brand {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-02-fontSize);\n color: var(--brand-green);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.cta-link-brand:hover {\n color: var(--brand-green-dark);\n}\n\n@media (min-width: 750px) {\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:flex {\n display: flex;\n }\n}";const EdsButtonStyle0=edsButtonCss;const EdsButton=class{constructor(hostRef){registerInstance(this,hostRef);this.button=cva(['relative items-center cursor-pointer',// Brand-green focus-visible outline (rules live in eds-button.css);
|
|
58
|
+
// without this class keyboard focus falls back to the browser ring.
|
|
59
|
+
'effect-focus','aria-disabled:text-lightest aria-disabled:bg-dark aria-disabled:cursor-not-allowed','disabled:text-lightest disabled:bg-dark disabled:cursor-not-allowed'],{variants:{intent:{primary:'bg-strongest text-inverse hover:bg-accent hover:text-default focus:shadow-none aria-disabled:shadow-none',secondary:'border-inside text-default bg-transparent hover:bg-strong-dark hover:text-inverse aria-disabled:after:!border-0',secondaryInverse:'border-inside-inverse text-inverse bg-transparent hover:bg-inverse hover:text-default aria-disabled:after:!border-0',ghost:'',ghostInverse:'text-inverse',brand:'bg-accent text-default hover:bg-strongest hover:text-inverse aria-disabled:shadow-none',// Light-green tint with brand-black text — an on-brand "unselected"
|
|
60
|
+
// state (e.g. eds-rating / eds-nps) that brightens to solid brand on
|
|
61
|
+
// hover/selection. Lives start-to-finish in the brand palette.
|
|
62
|
+
brandLight:'bg-brand-light text-default hover:bg-accent hover:text-default aria-disabled:shadow-none',brandInverse:'bg-accent text-default hover:bg-inverse hover:text-default aria-disabled:shadow-none',neutral:'bg-darker after:border-softest bg-inverse hover:bg-dark hover:text-light text-inverse aria-disabled:shadow-none',cta:['cta-link !px-0 !py-0 !min-h-0 !h-auto'],'cta-brand':['cta-link-brand !px-0 !py-0 !min-h-0 !h-auto']},loading:{true:'pointer-events-none',false:''},iconSmall:{false:'',true:''},size:{small:'min-h-36 f-ui-02 py-8',large:'min-h-44 f-ui-01 py-12'},hasIcon:{true:'',false:''},iconPos:{left:'flex-row-reverse',right:''},iconOnly:{false:'',true:''},pill:{true:'rounded-full border-inside-pill',false:'rounded-sm'},fullWidth:{true:'w-full flex',false:'inline-flex w-auto'}},compoundVariants:[{size:'small',iconOnly:true,class:'p-8'},{size:'large',iconOnly:true,class:'p-12'},{size:'small',iconOnly:false,class:'px-12'},{size:'large',iconOnly:false,class:'px-16'},{iconSmall:true,iconPos:'left',class:'pl-4',iconOnly:false},{iconSmall:true,iconPos:'right',class:'pr-4',iconOnly:false},{iconSmall:true,iconPos:'left',size:'large',class:'pl-8',iconOnly:false},{iconSmall:true,iconPos:'right',size:'large',class:'pr-8',iconOnly:false},// CTA variants with icons get gap-8
|
|
63
|
+
{intent:'cta',hasIcon:true,class:'gap-8'},{intent:'cta-brand',hasIcon:true,class:'gap-8'},{intent:'cta',size:'small',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta',size:'large',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta-brand',size:'small',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta-brand',size:'large',class:'!px-0 !py-0 !min-h-0 !h-auto'}],defaultVariants:{intent:'primary',loading:false,iconSmall:false,iconPos:'right',iconOnly:false,pill:false,size:'small'}});this.parentContext=null;this.label=undefined;this.ariaLabel='Button';this.elementType='button';this.intent='primary';this.loading=false;this.disabled=false;this.pill=false;this.icon=undefined;this.size='small';this.iconPos='right';this.iconSmall=false;this.triggerClick=undefined;this.fullWidth=false;}handleParentContext(event){if(event.target!==this.el){return;}this.parentContext=event.detail;event.stopPropagation();}handleClick(event){var _a,_b;if(this.disabled||this.loading){event.preventDefault();return;}sendAnalytics({category:'ui-component',parentContext:this.parentContext,tag:this.el.tagName.toLowerCase(),name:((_a=this.label)===null||_a===void 0?void 0:_a.toLowerCase())||((_b=this.ariaLabel)===null||_b===void 0?void 0:_b.toLowerCase())||'',action:'click'});if(typeof this.triggerClick==='function'){this.triggerClick();}}handleKeyDown(event){if(this.disabled||this.loading){return;}if(event.key==='Enter'||this.elementType==='a'&&event.key===' '){event.preventDefault();this.handleClick(event);}}render(){const classes=this.button({intent:this.intent,loading:this.loading,hasIcon:!!this.icon,iconPos:this.iconPos,size:this.size,pill:this.pill,iconOnly:!this.label,iconSmall:this.iconSmall,fullWidth:this.fullWidth});const ElementType=this.elementType;const isInteractive=!this.disabled&&!this.loading;// NEW: Loader colors based on intent (brand-black based system)
|
|
64
|
+
const loaderBorderColor=this.intent==='primary'||this.intent==='secondaryInverse'?'rgba(255, 255, 255, 0.3)'// White with opacity for dark backgrounds
|
|
65
|
+
:'rgba(7, 20, 13, 0.3)';// Brand-black with opacity for light backgrounds
|
|
66
|
+
const loaderBottomColor=this.intent==='primary'||this.intent==='secondaryInverse'?'#FFFFFF'// White for dark backgrounds
|
|
67
|
+
:'#07140D';// Brand-black for light backgrounds (secondary, brand, etc.)
|
|
68
|
+
return h(Host,{key:'263f3fd25c17d5f9d8ddcfcc57848d6c8e729994'},h(ElementType,{key:'9c9f68e332ca6fe14387fc239e880069596b0072',tabindex:isInteractive?'0':'-1',"aria-label":this.label?undefined:this.ariaLabel,"aria-disabled":this.disabled||this.loading?'true':undefined,"aria-busy":this.loading?'true':undefined,disabled:this.elementType==='button'?this.disabled||this.loading:undefined,role:this.elementType==='a'?'button':undefined,class:`${classes||''}`,onClick:event=>this.handleClick(event),onKeyDown:event=>this.handleKeyDown(event)},this.label&&h("span",{key:'285a0b07089eb7ebab3bd439000ea89c454164d0',class:`${this.loading?'opacity-0':''} ${this.icon&&this.intent!=='cta'&&this.intent!=='cta-brand'?this.iconPos==='right'?this.size==='large'?'pr-4':'pr-2':this.size==='large'?'pl-4':'pl-2':''}`,"aria-hidden":this.loading?'true':undefined},this.label),this.loading&&h("span",{key:'36da873de3be79f2cfc3e4851dadd953e17109dc',class:"absolute inset-0 flex items-center justify-center","aria-hidden":"true"},h("span",{key:'961913b2c22e6bd803c6639e617129843c877bfe',class:"loader",style:{border:`3px solid ${loaderBorderColor}`,borderBottomColor:loaderBottomColor}})),this.icon?h("eds-icon-wrapper",{name:this.icon,size:20,"aria-hidden":"true"}):null));}static get delegatesFocus(){return true;}get el(){return getElement(this);}};EdsButton.style=EdsButtonStyle0;const edsCardAppCss=":host{display:flex;height:100%}.app-card{height:auto;border-radius:16px;padding:1.5rem;transition:all 0.4s ease;display:flex;flex-direction:column;flex-grow:1}.app-card-default{background:var(--brand-black);border:1px solid rgba(0, 0, 0, 0.1)}.app-card-default:hover{background:var(--brand-black);border-color:rgba(0, 255, 157, 0.4);transform:translateY(-4px);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.app-card-default .app-title{color:var(--white)}.app-card-default .app-description{color:var(--grey-light)}.app-card-default .app-tag{background:rgba(255, 255, 255, 0.1);color:var(--white)}.app-card-inverse{background:var(--white);border:1px solid rgba(0, 0, 0, 0.1)}.app-card-inverse:hover{background:var(--white);border-color:rgba(0, 255, 157, 0.4);transform:translateY(-4px);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.app-card-inverse .app-title{color:var(--brand-black)}.app-card-inverse .app-description{color:var(--grey-dark)}.app-card-inverse .app-tag{background:rgba(0, 0, 0, 0.08);color:var(--brand-black)}eds-tag{margin-bottom:1rem}.app-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:1.75rem;margin-top:0;margin-bottom:1rem;line-height:1.3}.app-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6;margin-bottom:1.5rem;flex-grow:1}.app-tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.app-tag{padding:0.375rem 0.75rem;border-radius:4px;font-size:0.75rem;font-weight:400}@media (max-width: 768px){.app-card{padding:2rem}.app-title{font-size:1.5rem}}";const EdsCardAppStyle0=edsCardAppCss;const EdsCardApp=class{constructor(hostRef){registerInstance(this,hostRef);this.category=undefined;this.title=undefined;this.description=undefined;this.tags=[];this.url=undefined;this.linkText='Explore Components';this.variant='default';}/**
|
|
69
|
+
* Parse the tags prop into an array
|
|
70
|
+
*/get parsedTags(){return parseData(this.tags);}render(){const cardClasses=['app-card',`app-card-${this.variant}`].join(' ');// Determine link and category tag intents based on variant
|
|
71
|
+
const linkIntent=this.variant==='default'?'cta-brand':'cta';const categoryTagIntent=this.variant==='default'?'brand':'dark';return h("div",{key:'e90fec25a02a9635247da04ca23a932be9cd7ea5',class:cardClasses},this.category&&h("eds-tag",{key:'a001a815aa32a96beac3d4af08766479030fe8d4',label:this.category,intent:categoryTagIntent,size:"medium"}),h("h3",{key:'10d4532b4fe9b9a92ad24b09634028c583166bb3',class:"app-title"},this.title),h("p",{key:'de1559913d227ff6b023ecdbc5fea29f66cb01a0',class:"app-description"},this.description),this.parsedTags&&this.parsedTags.length>0&&h("div",{key:'386a2e72a92ea03c13a4410983b8b5320e83b810',class:"app-tags"},this.parsedTags.map((tag,index)=>h("span",{key:index,class:"app-tag"},tag.label))),this.url&&h("eds-link",{key:'2c1a3d133a6f04b6a3359a3c8d2f47eb19c75202',label:this.linkText,url:this.url,intent:linkIntent,icon:"arrow-right","icon-pos":"right"}));}get el(){return getElement(this);}};EdsCardApp.style=EdsCardAppStyle0;const edsCardCtaCss=":host{display:flex;height:100%}.cta-container{height:auto;text-align:center;border-radius:16px;padding:1.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-grow:1;justify-content:flex-start}.cta-container-default{background-color:var(--brand-black);border:1px solid rgba(0, 255, 157, 0.25)}.cta-container-default .cta-title{color:var(--white)}.cta-container-default .cta-description{color:var(--grey-light)}.cta-container-default .cta-link{color:var(--grey-dark)}.cta-container-inverse{background-color:var(--white);border:1px solid rgba(0, 255, 157, 0.15)}.cta-container-inverse .cta-title{color:var(--brand-black)}.cta-container-inverse .cta-description{color:var(--grey-dark)}.cta-container-inverse .cta-link{color:var(--grey-dark)}.cta-container::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at center, rgba(0, 255, 157, 0.1) 0%, transparent 50%);animation:rotate 20s linear infinite;pointer-events:none}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.cta-content{position:relative;z-index:1;width:100%;flex-grow:1;display:flex;flex-direction:column}.cta-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:clamp(1.5rem, 4vw, 2rem);letter-spacing:-0.02em;margin-bottom:1rem;line-height:1.2}.cta-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:1rem;margin:0 0 1.5rem;line-height:1.6}.cta-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap;margin-top:auto}.cta-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.cta-container{padding:1.5rem}.cta-title{font-size:1.25rem}.cta-description{font-size:0.875rem;margin-bottom:1rem}.cta-actions{gap:0.75rem;margin-bottom:1rem}.cta-links{gap:0.75rem}}";const EdsCardCtaStyle0=edsCardCtaCss;const EdsCardCta=class{constructor(hostRef){registerInstance(this,hostRef);this.handlePrimaryClick=()=>{if(this.primaryButtonUrl){window.location.href=this.primaryButtonUrl;}};this.handleSecondaryClick=()=>{if(this.secondaryButtonUrl){window.location.href=this.secondaryButtonUrl;}};this.title=undefined;this.description=undefined;this.primaryButtonText='Get Started';this.primaryButtonUrl=undefined;this.secondaryButtonText=undefined;this.secondaryButtonUrl=undefined;this.links=[];this.variant='default';}/**
|
|
72
|
+
* Parse the links prop into an array
|
|
73
|
+
*/get parsedLinks(){return parseData(this.links);}render(){const containerClasses=['cta-container',`cta-container-${this.variant}`].join(' ');// Determine button and link intents based on variant
|
|
74
|
+
const primaryButtonIntent=this.variant==='default'?'brandInverse':'brand';const secondaryButtonIntent=this.variant==='default'?'secondaryInverse':'secondary';const linkIntent=this.variant==='default'?'cta':'underline';return h("div",{key:'ee2163e6096ad05dc55ac40c6626236723a23b72',class:containerClasses},h("div",{key:'f51481133015ef5eafce48bab525cf166c000e3a',class:"cta-content"},h("h2",{key:'577441d8bc7cb4c906408faf995e106ef2779e8b',class:"cta-title",innerHTML:this.title}),h("p",{key:'b8cbcf891b95f82c3dd57f1db9335f55c1d7162c',class:"cta-description"},this.description),h("div",{key:'f167262a521b9e15176a4fc65e3e45a8cf24feb1',class:"cta-actions"},h("slot",{key:'c114de9b72bf56a2bda67d21aab0a1a24efba2e4',name:"actions"},h("eds-button",{key:'75c4508fad3377ae1788bca7cda5f8315c8301a3',label:this.primaryButtonText,intent:primaryButtonIntent,icon:"arrow-right","icon-pos":"right",size:"large",triggerClick:this.handlePrimaryClick}),this.secondaryButtonText&&h("eds-button",{key:'2c6de6b1032c62619b7225d3f7cbc04617fca465',label:this.secondaryButtonText,intent:secondaryButtonIntent,size:"large",triggerClick:this.handleSecondaryClick}))),this.parsedLinks&&this.parsedLinks.length>0&&h("div",{key:'a78f81632c85cb729d738b0bb533d260bc7e3727',class:"cta-links"},this.parsedLinks.map((link,index)=>h("eds-link",{key:index,label:link.label,url:link.url,intent:linkIntent})))));}get el(){return getElement(this);}};EdsCardCta.style=EdsCardCtaStyle0;const edsCardDescCss=".f-body-02{font-family:var(--f-body-02-fontFamily);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.text-light{color:var(--grey-700)}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.text-default{color:var(--brand-black)}.text-inverse{color:var(--white)}";const EdsCardDescStyle0=edsCardDescCss;const EdsCardDesc=class{constructor(hostRef){registerInstance(this,hostRef);this.description=undefined;this.truncate=true;this.truncateLines='3';this.intent='secondary';}getTruncateClass(){return this.truncate&&this.truncateLines?`line-clamp-${this.truncateLines}`:'';}render(){return h("p",{key:'d7d9f5d40d82700388753a165a998574bd69e674',class:`f-body-02 ${this.intent==='secondary'?'text-inverse':'text-default'}`},h("span",{key:'bff2551896e726ce02a78b448a0e3f2a3df0c697',class:this.getTruncateClass()},this.description));}};EdsCardDesc.style=EdsCardDescStyle0;const edsCardFeatureCss=":host{display:flex;height:100%}.feature-card{height:auto;border-radius:16px;padding:1.5rem;transition:all 0.4s ease;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-grow:1}.feature-card-default{background:var(--brand-black);border:1px solid rgba(0, 0, 0, 0.1)}.feature-card-default:hover{background:var(--brand-black);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.feature-card-default .feature-title{color:var(--white)}.feature-card-default .feature-description{color:var(--grey-light)}.feature-card-inverse{background:var(--white);border:1px solid rgba(0, 0, 0, 0.1)}.feature-card-inverse:hover{background:var(--white);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.feature-card-inverse .feature-title{color:var(--brand-black)}.feature-card-inverse .feature-description{color:var(--grey-dark)}.feature-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(0, 255, 157, 0.1);border-radius:12px;color:var(--brand-green);flex-shrink:0}.feature-card-inverse .feature-icon{background:rgba(0, 0, 0, 0.05);color:var(--brand-black)}.feature-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:1.25rem;margin-bottom:0.75rem;line-height:1.4}.feature-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6;flex-grow:1}@media (max-width: 768px){.feature-card{padding:2rem}.feature-icon{width:40px;height:40px;margin-bottom:1.25rem}.feature-title{font-size:1.125rem}}";const EdsCardFeatureStyle0=edsCardFeatureCss;const EdsCardFeature=class{constructor(hostRef){registerInstance(this,hostRef);this.icon=undefined;this.title=undefined;this.description=undefined;this.url=undefined;this.linkText='Learn more';this.variant='default';}render(){const cardClasses=['feature-card',`feature-card-${this.variant}`].join(' ');return h("div",{key:'f76c056bbca7b38892cdecf56291fe3882c9e3bb',class:cardClasses},this.icon&&h("div",{key:'9e22a5f6c5e30b55c4bac84f5f11f773b1b37ab9',class:"feature-icon"},h("eds-icon-wrapper",{key:'64154c38f3655cb55f14c2963a62ead699d8a533',name:this.icon,size:24})),h("h3",{key:'99ed95a90796dbb6baa3f73cb2830fcd0954328c',class:"feature-title"},this.title),h("p",{key:'f91109a10f62a58d8b650987fbbf1a5a4f68beaa',class:"feature-description"},this.description),this.url&&h("eds-link",{key:'b94b57e5385da9db54a3767d0413349000add755',label:this.linkText,url:this.url,intent:"cta",icon:"arrow-right","icon-pos":"right"}));}get el(){return getElement(this);}};EdsCardFeature.style=EdsCardFeatureStyle0;const edsCardGenericCss=".h-300{height:300px}.h-auto{height:auto}:host{display:flex;height:100%}.h-full{height:100%}.\\!min-h-20{min-height:1.25rem !important}.min-h-120{min-height:120px}.min-h-156{min-height:156px}.bg-dark{background-color:var(--grey-light)}.bg-default{background-color:var(--grey-light)}.bg-inverse{background-color:var(--white)}.bg-accent{background-color:var(--brand-green)}.bg-strongest{background-color:var(--brand-black)}.effect-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.hover\\:shadow-hover:hover{--tw-shadow:0px 0px 16px rgba(0, 0, 0, 0.2);--tw-shadow-colored:0px 0px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.border-soft{border-color:rgba(0, 0, 0, .15)}.border-softer{border:1px solid rgba(0, 0, 0, 0.08)}.effect-focus-within{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.effect-focus-within:focus-within{outline-style:solid}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inline{display:inline}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.inline-flex{display:inline-flex}.grow{flex-grow:1}.flex-col{flex-direction:column}.rounded-sm{border-radius:8px}.rounded-lg{border-radius:16px}.border-2{border-width:1px}.p-12{padding:0.75rem}.p-16{padding:1rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}.gap-x-1{-moz-column-gap:0.0625rem;column-gap:0.0625rem}.gap-x-4{-moz-column-gap:0.25rem;column-gap:0.25rem}.gap-y-4{row-gap:0.25rem}.gap-y-8{row-gap:0.5rem}.order-first{order:-9999}.mb-8{margin-bottom:0.5rem}.mb-10{margin-bottom:0.625rem}.mb-12{margin-bottom:0.75rem}.mx-auto{margin-left:auto;margin-right:auto}.block{display:block}.w-full{width:100%}.rounded-t-lg{border-top-left-radius:16px;border-top-right-radius:16px}.overflow-hidden{overflow:hidden}.items-center{align-items:center}.justify-between{justify-content:space-between}.mt-auto{margin-top:auto}.pt-16{padding-top:1rem}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.card-icon-wrapper{display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem 0.5rem 1rem}.text-inverse{color:var(--white)}.text-default{color:var(--brand-black)}";const EdsCardGenericStyle0=edsCardGenericCss;const EdsCardGeneric=class{constructor(hostRef){registerInstance(this,hostRef);this.parentContext=null;// Accepts the entire event detail or null
|
|
75
|
+
this.title=undefined;this.url=undefined;this.description=undefined;this.tags=[];this.intent='secondary';this.icon=undefined;this.titleSize='large';this.isHovered=false;}componentWillLoad(){}handleParentContext(event){if(event.target!==this.el){// Ignore the event if it's not targeted at this specific instance
|
|
76
|
+
return;}this.parentContext=event.detail;event.stopPropagation();}/**
|
|
77
|
+
* Parses the `tags` prop into an array of link objects.
|
|
78
|
+
* Returns an empty array if parsing fails or if `tags` is not a valid JSON string or object.
|
|
79
|
+
*
|
|
80
|
+
* @returns {any[]} Array of parsed link objects
|
|
81
|
+
*/get parsedTags(){return parseData(this.tags);}articleClasses(){let bgClass='bg-strongest';if(this.intent==='primary'){bgClass='bg-accent';}else if(this.intent==='inverse'){bgClass='bg-inverse';}else if(this.intent==='dark'){bgClass='bg-dark';}const interactionClasses=this.url?'cursor-pointer effect-shadow hover:shadow-hover':'cursor-default';return ['h-auto',bgClass,interactionClasses,'border-softer effect-focus-within relative flex grow flex-col rounded-sm border-2'].join(' ');}getLearnMoreColor(){if(this.intent==='secondary'){return 'text-inverse';}return 'text-default';}handleClick(){var _a;sendAnalytics({category:'ui-component',parentContext:this.parentContext,tag:this.el.tagName.toLowerCase(),name:((_a=this.title)===null||_a===void 0?void 0:_a.toLowerCase())||'',action:'click'});}handleMouseEnter(){this.isHovered=true;}handleMouseLeave(){this.isHovered=false;}render(){return h("article",{key:'6efb0c2c0c3d196b9759307bb98f4bf1e12504d5',class:this.articleClasses(),onClick:this.url?()=>this.handleClick():undefined,onMouseEnter:this.url?()=>this.handleMouseEnter():undefined,onMouseLeave:this.url?()=>this.handleMouseLeave():undefined},this.icon&&h("div",{key:'9c29cae822923b524668da65f3e341f9626d7e95',class:"card-icon-wrapper"},h("eds-icon-wrapper",{key:'104a3551d3d8b910528dd43e8a12494faf4764a0',name:this.icon,size:32})),h("div",{key:'cc9d326aa6e55d1ed26b73f46d5fbb8087d55bf0',class:"p-12 flex flex-col grow"},this.parsedTags&&this.parsedTags.length>0&&h("div",{key:'f740e184ec400d6083d04e4fa99259aa061c5dbf',class:"flex mb-12 gap-x-4"},this.parsedTags.map((tag,index)=>h("eds-tag",{key:index,intent:tag.intent,label:tag.label,size:tag.size}))),h("eds-card-title",{key:'e263ce9bd116857648439bf9f356fc110e048547',title:this.title,url:this.url,intent:this.intent,size:this.titleSize}),this.description&&h("div",{key:'aa6687dc61c548dd52e2d2f3eb9598f85c2af0a5',class:"mt-8"},this.description&&h("eds-card-desc",{key:'8b82f70b5dc513396d08affc4958d9c1040583d6',"truncate-lines":"3",description:this.description,intent:this.intent})),h("slot",{key:'ff4d0ba6184b01b80e44c78a7cccec124f2b1706',name:"card"}),this.url&&h("div",{key:'889b5fbaf026df0e826626020ff201d06f047cc8',class:`flex items-center justify-between mt-auto pt-16 ${this.getLearnMoreColor()}`},h("span",{key:'3a5b5d603a7f3d852b5e92ba57f7214f7b9754ec',class:"f-ui-01"},"Learn more"),h("eds-icon-wrapper",{key:'de15571bd4892f72646c205b14105f328d5a596d',name:this.isHovered?'arrow-right':'arrow-up-right',size:32}))));}get el(){return getElement(this);}};EdsCardGeneric.style=EdsCardGenericStyle0;const edsCardHeroCss=":host{display:flex;height:100%}.hero-card{height:auto;position:relative;border-radius:16px;backdrop-filter:blur(20px);padding:1.5rem;display:flex;flex-direction:column;flex-grow:1;transition:all 0.5s cubic-bezier(0.4, 0, 0.2, 1)}.hero-card-default{background:var(--brand-black);border:1px solid rgba(0, 0, 0, 0.1)}.hero-card-default:hover{transform:translateY(-8px);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 20px 60px rgba(0, 0, 0, 0.15)}.hero-card-default .card-category{color:var(--grey-dark)}.hero-card-default .card-title{color:var(--white)}.hero-card-default .card-description{color:var(--grey-dark)}.hero-card-default .card-tag{background:rgba(0, 255, 157, 0.15);color:var(--brand-green)}.hero-card-inverse{background:var(--white);border:1px solid rgba(0, 0, 0, 0.1)}.hero-card-inverse:hover{transform:translateY(-8px);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 20px 60px rgba(0, 0, 0, 0.15)}.hero-card-inverse .card-category{color:var(--grey-dark)}.hero-card-inverse .card-title{color:var(--brand-black)}.hero-card-inverse .card-description{color:var(--grey-dark)}.hero-card-inverse .card-tag{background:rgba(0, 255, 157, 0.2);color:var(--brand-black)}.hero-card-clickable{cursor:pointer}.card-category{font-size:0.625rem;text-transform:uppercase;letter-spacing:0.15em;margin-bottom:0.75rem;font-weight:500}.card-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:1.25rem;margin-bottom:0.5rem;line-height:1.3}.card-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.8125rem;line-height:1.5;margin-bottom:1rem}.card-tags{display:flex;gap:0.5rem;flex-wrap:wrap}.card-tag{padding:0.25rem 0.625rem;border-radius:4px;font-family:'IBM Plex Mono', monospace;font-size:0.6875rem;font-weight:500}@media (max-width: 768px){.hero-card{padding:1.25rem}.card-title{font-size:1.125rem}}";const EdsCardHeroStyle0=edsCardHeroCss;const EdsCardHero=class{constructor(hostRef){registerInstance(this,hostRef);this.parentContext=null;this.category=undefined;this.title=undefined;this.description=undefined;this.tags=[];this.url=undefined;this.variant='default';}/**
|
|
82
|
+
* Parse the tags prop into an array
|
|
83
|
+
*/get parsedTags(){return parseData(this.tags);}handleClick(){var _a;if(!this.url)return;sendAnalytics({category:'ui-component',parentContext:this.parentContext,tag:this.el.tagName.toLowerCase(),name:((_a=this.title)===null||_a===void 0?void 0:_a.toLowerCase())||'',action:'click'});window.location.href=this.url;}render(){const cardClasses=['hero-card',`hero-card-${this.variant}`,this.url?'hero-card-clickable':''].filter(Boolean).join(' ');return h("div",{key:'c92f2acc8065b4142b28ca213abbb646e61f44fc',class:cardClasses,onClick:()=>this.handleClick()},h("div",{key:'38b8ec832d05a4891646ac31f24d32f62c5ac2e1',class:"card-category"},this.category),h("div",{key:'d356e4651ed9d136c72c519ecb9b484570c9b3be',class:"card-title"},this.title),this.description&&h("div",{key:'52afdf7988667f73d8725e6a5f5b7816d4b38b30',class:"card-description"},this.description),this.parsedTags&&this.parsedTags.length>0&&h("div",{key:'a50fb41278d3b98da7054e0bee52d2a98ab5d8f3',class:"card-tags"},this.parsedTags.map((tag,index)=>h("span",{key:index,class:"card-tag"},tag.label))));}get el(){return getElement(this);}};EdsCardHero.style=EdsCardHeroStyle0;const edsCardStatCss=":host{display:flex;height:100%}.stat-card{height:auto;border-radius:16px;padding:1.75rem;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-grow:1;transition:all 0.4s ease}.stat-card-default{background:var(--brand-black);border:1px solid rgba(0, 0, 0, 0.1)}.stat-card-default:hover{background:var(--brand-black);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.stat-card-default .stat-number{background:linear-gradient(135deg, var(--brand-green) 0%, var(--white) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card-default .stat-label{color:var(--white)}.stat-card-default .stat-description{color:var(--grey-dark)}.stat-card-inverse{background:var(--white);border:1px solid rgba(0, 0, 0, 0.1)}.stat-card-inverse:hover{background:var(--white);border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.stat-card-inverse .stat-number{background:linear-gradient(135deg, var(--brand-black) 0%, var(--grey-dark) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card-inverse .stat-label{color:var(--brand-black)}.stat-card-inverse .stat-description{color:var(--grey-dark)}.stat-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg, transparent, var(--brand-green), transparent);opacity:0;transition:opacity 0.4s ease}.stat-card:hover::before{opacity:1}.stat-card:hover{transform:translateY(-4px)}.stat-card-clickable{cursor:pointer}.stat-number{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:4rem;line-height:1;margin-bottom:0.5rem}.stat-label{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:1rem;margin-bottom:0.5rem;font-weight:400}.stat-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.8125rem;line-height:1.5}@media (max-width: 768px){.stat-card{padding:1.5rem}.stat-number{font-size:2.5rem}}";const EdsCardStatStyle0=edsCardStatCss;const EdsCardStat=class{constructor(hostRef){registerInstance(this,hostRef);this.parentContext=null;this.number=undefined;this.label=undefined;this.description=undefined;this.url=undefined;this.variant='default';}handleClick(){var _a;if(!this.url)return;sendAnalytics({category:'ui-component',parentContext:this.parentContext,tag:this.el.tagName.toLowerCase(),name:((_a=this.label)===null||_a===void 0?void 0:_a.toLowerCase())||'',action:'click'});window.location.href=this.url;}render(){const cardClasses=['stat-card',`stat-card-${this.variant}`,this.url?'stat-card-clickable':''].filter(Boolean).join(' ');const content=h("div",{key:'f1dadeadd1d893b7a33aa92772baf7245954f6e7',class:cardClasses,onClick:()=>this.handleClick()},h("div",{key:'6adb8cc68740cd2dabf0bacf0af446e1499171a8',class:"stat-number"},this.number),h("div",{key:'adc7a8ffd44bceda51fcb98f68cfc8d7e454db5f',class:"stat-label"},this.label),this.description&&h("div",{key:'f70549244277e2c08c7bd94a1d297c00655faff5',class:"stat-description"},this.description));return content;}get el(){return getElement(this);}};EdsCardStat.style=EdsCardStatStyle0;const edsCardTitleCss="a{all:unset;display:inline;color:inherit;text-decoration:none;cursor:pointer}h1,h2,h3,h4,h5,h6{margin:0}.f-display-02{font-family:var(--f-display-02-fontFamily);font-weight:var(--f-display-02-fontWeight);font-size:var(--f-display-02-fontSize);line-height:var(--f-display-02-lineHeight);letter-spacing:var(--f-display-02-letterSpacing)}.f-heading-02{font-family:var(--f-heading-02-fontFamily);font-weight:var(--f-heading-02-fontWeight);font-size:var(--f-heading-02-fontSize);line-height:var(--f-heading-02-lineHeight);letter-spacing:var(--f-heading-02-letterSpacing)}.f-heading-03{font-family:var(--f-heading-03-fontFamily);font-weight:var(--f-heading-03-fontWeight);font-size:var(--f-heading-03-fontSize);line-height:var(--f-heading-03-lineHeight);letter-spacing:var(--f-heading-03-letterSpacing)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:var(--f-heading-04-fontWeight);font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:var(--f-heading-05-fontWeight);font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing)}.f-heading-06{font-family:var(--f-heading-06-fontFamily);font-weight:var(--f-heading-06-fontWeight);font-size:var(--f-heading-06-fontSize);line-height:var(--f-heading-06-lineHeight);letter-spacing:var(--f-heading-06-letterSpacing)}.font-semibold{font-weight:600}.break-words{overflow-wrap:break-word}.after\\:absolute::after{position:absolute}.after\\:inset-0::after{inset:0rem}.after\\:z-10::after{z-index:10}.after\\:content-\\[\\'\\'\\]::after{--tw-content:'';content:var(--tw-content)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.text-default{color:var(--brand-black)}.text-inverse{color:var(--white)}.cursor-pointer{cursor:pointer}";const EdsCardTitleStyle0=edsCardTitleCss;const EdsCardTitle=class{constructor(hostRef){registerInstance(this,hostRef);this.url=undefined;this.externalLink=false;this.title=undefined;this.intent='secondary';this.size='large';}getTitleClass(){switch(this.size){case'small':return 'f-heading-05';case'medium':return 'f-heading-04';case'xlarge':return 'f-heading-02';case'display':return 'f-display-02';case'large':default:return 'f-heading-03';}}render(){const textColorClass=this.intent==='secondary'?'text-inverse':'text-default';const titleClass=this.getTitleClass();// If URL provided, render as clickable link with overlay
|
|
84
|
+
if(this.url){return h("span",{class:titleClass},h("a",{class:`break-words after:absolute after:inset-0 after:z-10 after:content-[''] focus:outline-none ${textColorClass} cursor-pointer`,href:this.url,target:this.externalLink?'_blank':undefined,rel:this.externalLink?'noopener noreferrer':undefined},this.title));}// No URL - render as plain text, no overlay, no pointer cursor
|
|
85
|
+
return h("span",{class:`${titleClass} ${textColorClass} break-words`},this.title);}};EdsCardTitle.style=EdsCardTitleStyle0;var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};var prism={exports:{}};(function(module){/* **********************************************
|
|
86
|
+
Begin prism-core.js
|
|
87
|
+
********************************************** *//// <reference lib="WebWorker"/>
|
|
88
|
+
var _self=typeof window!=='undefined'?window// if in browser
|
|
89
|
+
:typeof WorkerGlobalScope!=='undefined'&&self instanceof WorkerGlobalScope?self// if in worker
|
|
90
|
+
:{}// if in node js
|
|
91
|
+
;/**
|
|
92
|
+
* Prism: Lightweight, robust, elegant syntax highlighting
|
|
93
|
+
*
|
|
94
|
+
* @license MIT <https://opensource.org/licenses/MIT>
|
|
95
|
+
* @author Lea Verou <https://lea.verou.me>
|
|
96
|
+
* @namespace
|
|
97
|
+
* @public
|
|
98
|
+
*/var Prism=function(_self){// Private helper vars
|
|
99
|
+
var lang=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i;var uniqueId=0;// The grammar object for plaintext
|
|
100
|
+
var plainTextGrammar={};var _={/**
|
|
101
|
+
* By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the
|
|
102
|
+
* current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load
|
|
103
|
+
* additional languages or plugins yourself.
|
|
104
|
+
*
|
|
105
|
+
* By setting this value to `true`, Prism will not automatically highlight all code elements on the page.
|
|
106
|
+
*
|
|
107
|
+
* You obviously have to change this value before the automatic highlighting started. To do this, you can add an
|
|
108
|
+
* empty Prism object into the global scope before loading the Prism script like this:
|
|
109
|
+
*
|
|
110
|
+
* ```js
|
|
111
|
+
* window.Prism = window.Prism || {};
|
|
112
|
+
* Prism.manual = true;
|
|
113
|
+
* // add a new <script> to load Prism's script
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @default false
|
|
117
|
+
* @type {boolean}
|
|
118
|
+
* @memberof Prism
|
|
119
|
+
* @public
|
|
120
|
+
*/manual:_self.Prism&&_self.Prism.manual,/**
|
|
121
|
+
* By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses
|
|
122
|
+
* `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your
|
|
123
|
+
* own worker, you don't want it to do this.
|
|
124
|
+
*
|
|
125
|
+
* By setting this value to `true`, Prism will not add its own listeners to the worker.
|
|
126
|
+
*
|
|
127
|
+
* You obviously have to change this value before Prism executes. To do this, you can add an
|
|
128
|
+
* empty Prism object into the global scope before loading the Prism script like this:
|
|
129
|
+
*
|
|
130
|
+
* ```js
|
|
131
|
+
* window.Prism = window.Prism || {};
|
|
132
|
+
* Prism.disableWorkerMessageHandler = true;
|
|
133
|
+
* // Load Prism's script
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @default false
|
|
137
|
+
* @type {boolean}
|
|
138
|
+
* @memberof Prism
|
|
139
|
+
* @public
|
|
140
|
+
*/disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,/**
|
|
141
|
+
* A namespace for utility methods.
|
|
142
|
+
*
|
|
143
|
+
* All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may
|
|
144
|
+
* change or disappear at any time.
|
|
145
|
+
*
|
|
146
|
+
* @namespace
|
|
147
|
+
* @memberof Prism
|
|
148
|
+
*/util:{encode:function encode(tokens){if(tokens instanceof Token){return new Token(tokens.type,encode(tokens.content),tokens.alias);}else if(Array.isArray(tokens)){return tokens.map(encode);}else {return tokens.replace(/&/g,'&').replace(/</g,'<').replace(/\u00a0/g,' ');}},/**
|
|
149
|
+
* Returns the name of the type of the given value.
|
|
150
|
+
*
|
|
151
|
+
* @param {any} o
|
|
152
|
+
* @returns {string}
|
|
153
|
+
* @example
|
|
154
|
+
* type(null) === 'Null'
|
|
155
|
+
* type(undefined) === 'Undefined'
|
|
156
|
+
* type(123) === 'Number'
|
|
157
|
+
* type('foo') === 'String'
|
|
158
|
+
* type(true) === 'Boolean'
|
|
159
|
+
* type([1, 2]) === 'Array'
|
|
160
|
+
* type({}) === 'Object'
|
|
161
|
+
* type(String) === 'Function'
|
|
162
|
+
* type(/abc+/) === 'RegExp'
|
|
163
|
+
*/type:function(o){return Object.prototype.toString.call(o).slice(8,-1);},/**
|
|
164
|
+
* Returns a unique number for the given object. Later calls will still return the same number.
|
|
165
|
+
*
|
|
166
|
+
* @param {Object} obj
|
|
167
|
+
* @returns {number}
|
|
168
|
+
*/objId:function(obj){if(!obj['__id']){Object.defineProperty(obj,'__id',{value:++uniqueId});}return obj['__id'];},/**
|
|
169
|
+
* Creates a deep clone of the given object.
|
|
170
|
+
*
|
|
171
|
+
* The main intended use of this function is to clone language definitions.
|
|
172
|
+
*
|
|
173
|
+
* @param {T} o
|
|
174
|
+
* @param {Record<number, any>} [visited]
|
|
175
|
+
* @returns {T}
|
|
176
|
+
* @template T
|
|
177
|
+
*/clone:function deepClone(o,visited){visited=visited||{};var clone;var id;switch(_.util.type(o)){case'Object':id=_.util.objId(o);if(visited[id]){return visited[id];}clone=/** @type {Record<string, any>} */{};visited[id]=clone;for(var key in o){if(o.hasOwnProperty(key)){clone[key]=deepClone(o[key],visited);}}return/** @type {any} */clone;case'Array':id=_.util.objId(o);if(visited[id]){return visited[id];}clone=[];visited[id]=clone;(/** @type {Array} *//** @type {any} */o).forEach(function(v,i){clone[i]=deepClone(v,visited);});return/** @type {any} */clone;default:return o;}},/**
|
|
178
|
+
* Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.
|
|
179
|
+
*
|
|
180
|
+
* If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.
|
|
181
|
+
*
|
|
182
|
+
* @param {Element} element
|
|
183
|
+
* @returns {string}
|
|
184
|
+
*/getLanguage:function(element){while(element){var m=lang.exec(element.className);if(m){return m[1].toLowerCase();}element=element.parentElement;}return 'none';},/**
|
|
185
|
+
* Sets the Prism `language-xxxx` class of the given element.
|
|
186
|
+
*
|
|
187
|
+
* @param {Element} element
|
|
188
|
+
* @param {string} language
|
|
189
|
+
* @returns {void}
|
|
190
|
+
*/setLanguage:function(element,language){// remove all `language-xxxx` classes
|
|
191
|
+
// (this might leave behind a leading space)
|
|
192
|
+
element.className=element.className.replace(RegExp(lang,'gi'),'');// add the new `language-xxxx` class
|
|
193
|
+
// (using `classList` will automatically clean up spaces for us)
|
|
194
|
+
element.classList.add('language-'+language);},/**
|
|
195
|
+
* Returns the script element that is currently executing.
|
|
196
|
+
*
|
|
197
|
+
* This does __not__ work for line script element.
|
|
198
|
+
*
|
|
199
|
+
* @returns {HTMLScriptElement | null}
|
|
200
|
+
*/currentScript:function(){if(typeof document==='undefined'){return null;}if('currentScript'in document&&1<2/* hack to trip TS' flow analysis */){return/** @type {any} */document.currentScript;}// IE11 workaround
|
|
201
|
+
// we'll get the src of the current script by parsing IE11's error stack trace
|
|
202
|
+
// this will not work for inline scripts
|
|
203
|
+
try{throw new Error();}catch(err){// Get file src url from stack. Specifically works with the format of stack traces in IE.
|
|
204
|
+
// A stack will look like this:
|
|
205
|
+
//
|
|
206
|
+
// Error
|
|
207
|
+
// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)
|
|
208
|
+
// at Global code (http://localhost/components/prism-core.js:606:1)
|
|
209
|
+
var src=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(err.stack)||[])[1];if(src){var scripts=document.getElementsByTagName('script');for(var i in scripts){if(scripts[i].src==src){return scripts[i];}}}return null;}},/**
|
|
210
|
+
* Returns whether a given class is active for `element`.
|
|
211
|
+
*
|
|
212
|
+
* The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated
|
|
213
|
+
* if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the
|
|
214
|
+
* given class is just the given class with a `no-` prefix.
|
|
215
|
+
*
|
|
216
|
+
* Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is
|
|
217
|
+
* closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its
|
|
218
|
+
* ancestors have the given class or the negated version of it, then the default activation will be returned.
|
|
219
|
+
*
|
|
220
|
+
* In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated
|
|
221
|
+
* version of it, the class is considered active.
|
|
222
|
+
*
|
|
223
|
+
* @param {Element} element
|
|
224
|
+
* @param {string} className
|
|
225
|
+
* @param {boolean} [defaultActivation=false]
|
|
226
|
+
* @returns {boolean}
|
|
227
|
+
*/isActive:function(element,className,defaultActivation){var no='no-'+className;while(element){var classList=element.classList;if(classList.contains(className)){return true;}if(classList.contains(no)){return false;}element=element.parentElement;}return !!defaultActivation;}},/**
|
|
228
|
+
* This namespace contains all currently loaded languages and the some helper functions to create and modify languages.
|
|
229
|
+
*
|
|
230
|
+
* @namespace
|
|
231
|
+
* @memberof Prism
|
|
232
|
+
* @public
|
|
233
|
+
*/languages:{/**
|
|
234
|
+
* The grammar for plain, unformatted text.
|
|
235
|
+
*/plain:plainTextGrammar,plaintext:plainTextGrammar,text:plainTextGrammar,txt:plainTextGrammar,/**
|
|
236
|
+
* Creates a deep copy of the language with the given id and appends the given tokens.
|
|
237
|
+
*
|
|
238
|
+
* If a token in `redef` also appears in the copied language, then the existing token in the copied language
|
|
239
|
+
* will be overwritten at its original position.
|
|
240
|
+
*
|
|
241
|
+
* ## Best practices
|
|
242
|
+
*
|
|
243
|
+
* Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)
|
|
244
|
+
* doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to
|
|
245
|
+
* understand the language definition because, normally, the order of tokens matters in Prism grammars.
|
|
246
|
+
*
|
|
247
|
+
* Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.
|
|
248
|
+
* Furthermore, all non-overwriting tokens should be placed after the overwriting ones.
|
|
249
|
+
*
|
|
250
|
+
* @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.
|
|
251
|
+
* @param {Grammar} redef The new tokens to append.
|
|
252
|
+
* @returns {Grammar} The new language created.
|
|
253
|
+
* @public
|
|
254
|
+
* @example
|
|
255
|
+
* Prism.languages['css-with-colors'] = Prism.languages.extend('css', {
|
|
256
|
+
* // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token
|
|
257
|
+
* // at its original position
|
|
258
|
+
* 'comment': { ... },
|
|
259
|
+
* // CSS doesn't have a 'color' token, so this token will be appended
|
|
260
|
+
* 'color': /\b(?:red|green|blue)\b/
|
|
261
|
+
* });
|
|
262
|
+
*/extend:function(id,redef){var lang=_.util.clone(_.languages[id]);for(var key in redef){lang[key]=redef[key];}return lang;},/**
|
|
263
|
+
* Inserts tokens _before_ another token in a language definition or any other grammar.
|
|
264
|
+
*
|
|
265
|
+
* ## Usage
|
|
266
|
+
*
|
|
267
|
+
* This helper method makes it easy to modify existing languages. For example, the CSS language definition
|
|
268
|
+
* not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded
|
|
269
|
+
* in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the
|
|
270
|
+
* appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do
|
|
271
|
+
* this:
|
|
272
|
+
*
|
|
273
|
+
* ```js
|
|
274
|
+
* Prism.languages.markup.style = {
|
|
275
|
+
* // token
|
|
276
|
+
* };
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens
|
|
280
|
+
* before existing tokens. For the CSS example above, you would use it like this:
|
|
281
|
+
*
|
|
282
|
+
* ```js
|
|
283
|
+
* Prism.languages.insertBefore('markup', 'cdata', {
|
|
284
|
+
* 'style': {
|
|
285
|
+
* // token
|
|
286
|
+
* }
|
|
287
|
+
* });
|
|
288
|
+
* ```
|
|
289
|
+
*
|
|
290
|
+
* ## Special cases
|
|
291
|
+
*
|
|
292
|
+
* If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar
|
|
293
|
+
* will be ignored.
|
|
294
|
+
*
|
|
295
|
+
* This behavior can be used to insert tokens after `before`:
|
|
296
|
+
*
|
|
297
|
+
* ```js
|
|
298
|
+
* Prism.languages.insertBefore('markup', 'comment', {
|
|
299
|
+
* 'comment': Prism.languages.markup.comment,
|
|
300
|
+
* // tokens after 'comment'
|
|
301
|
+
* });
|
|
302
|
+
* ```
|
|
303
|
+
*
|
|
304
|
+
* ## Limitations
|
|
305
|
+
*
|
|
306
|
+
* The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object
|
|
307
|
+
* properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave
|
|
308
|
+
* differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily
|
|
309
|
+
* deleting properties which is necessary to insert at arbitrary positions.
|
|
310
|
+
*
|
|
311
|
+
* To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.
|
|
312
|
+
* Instead, it will create a new object and replace all references to the target object with the new one. This
|
|
313
|
+
* can be done without temporarily deleting properties, so the iteration order is well-defined.
|
|
314
|
+
*
|
|
315
|
+
* However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if
|
|
316
|
+
* you hold the target object in a variable, then the value of the variable will not change.
|
|
317
|
+
*
|
|
318
|
+
* ```js
|
|
319
|
+
* var oldMarkup = Prism.languages.markup;
|
|
320
|
+
* var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });
|
|
321
|
+
*
|
|
322
|
+
* assert(oldMarkup !== Prism.languages.markup);
|
|
323
|
+
* assert(newMarkup === Prism.languages.markup);
|
|
324
|
+
* ```
|
|
325
|
+
*
|
|
326
|
+
* @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the
|
|
327
|
+
* object to be modified.
|
|
328
|
+
* @param {string} before The key to insert before.
|
|
329
|
+
* @param {Grammar} insert An object containing the key-value pairs to be inserted.
|
|
330
|
+
* @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the
|
|
331
|
+
* object to be modified.
|
|
332
|
+
*
|
|
333
|
+
* Defaults to `Prism.languages`.
|
|
334
|
+
* @returns {Grammar} The new grammar object.
|
|
335
|
+
* @public
|
|
336
|
+
*/insertBefore:function(inside,before,insert,root){root=root||(/** @type {any} */_.languages);var grammar=root[inside];/** @type {Grammar} */var ret={};for(var token in grammar){if(grammar.hasOwnProperty(token)){if(token==before){for(var newToken in insert){if(insert.hasOwnProperty(newToken)){ret[newToken]=insert[newToken];}}}// Do not insert token which also occur in insert. See #1525
|
|
337
|
+
if(!insert.hasOwnProperty(token)){ret[token]=grammar[token];}}}var old=root[inside];root[inside]=ret;// Update references in other language definitions
|
|
338
|
+
_.languages.DFS(_.languages,function(key,value){if(value===old&&key!=inside){this[key]=ret;}});return ret;},// Traverse a language definition with Depth First Search
|
|
339
|
+
DFS:function DFS(o,callback,type,visited){visited=visited||{};var objId=_.util.objId;for(var i in o){if(o.hasOwnProperty(i)){callback.call(o,i,o[i],type||i);var property=o[i];var propertyType=_.util.type(property);if(propertyType==='Object'&&!visited[objId(property)]){visited[objId(property)]=true;DFS(property,callback,null,visited);}else if(propertyType==='Array'&&!visited[objId(property)]){visited[objId(property)]=true;DFS(property,callback,i,visited);}}}}},plugins:{},/**
|
|
340
|
+
* This is the most high-level function in Prism’s API.
|
|
341
|
+
* It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on
|
|
342
|
+
* each one of them.
|
|
343
|
+
*
|
|
344
|
+
* This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.
|
|
345
|
+
*
|
|
346
|
+
* @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.
|
|
347
|
+
* @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.
|
|
348
|
+
* @memberof Prism
|
|
349
|
+
* @public
|
|
350
|
+
*/highlightAll:function(async,callback){_.highlightAllUnder(document,async,callback);},/**
|
|
351
|
+
* Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls
|
|
352
|
+
* {@link Prism.highlightElement} on each one of them.
|
|
353
|
+
*
|
|
354
|
+
* The following hooks will be run:
|
|
355
|
+
* 1. `before-highlightall`
|
|
356
|
+
* 2. `before-all-elements-highlight`
|
|
357
|
+
* 3. All hooks of {@link Prism.highlightElement} for each element.
|
|
358
|
+
*
|
|
359
|
+
* @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.
|
|
360
|
+
* @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.
|
|
361
|
+
* @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.
|
|
362
|
+
* @memberof Prism
|
|
363
|
+
* @public
|
|
364
|
+
*/highlightAllUnder:function(container,async,callback){var env={callback:callback,container:container,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};_.hooks.run('before-highlightall',env);env.elements=Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));_.hooks.run('before-all-elements-highlight',env);for(var i=0,element;element=env.elements[i++];){_.highlightElement(element,async===true,env.callback);}},/**
|
|
365
|
+
* Highlights the code inside a single element.
|
|
366
|
+
*
|
|
367
|
+
* The following hooks will be run:
|
|
368
|
+
* 1. `before-sanity-check`
|
|
369
|
+
* 2. `before-highlight`
|
|
370
|
+
* 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.
|
|
371
|
+
* 4. `before-insert`
|
|
372
|
+
* 5. `after-highlight`
|
|
373
|
+
* 6. `complete`
|
|
374
|
+
*
|
|
375
|
+
* Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for
|
|
376
|
+
* the element's language.
|
|
377
|
+
*
|
|
378
|
+
* @param {Element} element The element containing the code.
|
|
379
|
+
* It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.
|
|
380
|
+
* @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers
|
|
381
|
+
* to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is
|
|
382
|
+
* [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).
|
|
383
|
+
*
|
|
384
|
+
* Note: All language definitions required to highlight the code must be included in the main `prism.js` file for
|
|
385
|
+
* asynchronous highlighting to work. You can build your own bundle on the
|
|
386
|
+
* [Download page](https://prismjs.com/download.html).
|
|
387
|
+
* @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.
|
|
388
|
+
* Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.
|
|
389
|
+
* @memberof Prism
|
|
390
|
+
* @public
|
|
391
|
+
*/highlightElement:function(element,async,callback){// Find language
|
|
392
|
+
var language=_.util.getLanguage(element);var grammar=_.languages[language];// Set language on the element, if not present
|
|
393
|
+
_.util.setLanguage(element,language);// Set language on the parent, for styling
|
|
394
|
+
var parent=element.parentElement;if(parent&&parent.nodeName.toLowerCase()==='pre'){_.util.setLanguage(parent,language);}var code=element.textContent;var env={element:element,language:language,grammar:grammar,code:code};function insertHighlightedCode(highlightedCode){env.highlightedCode=highlightedCode;_.hooks.run('before-insert',env);env.element.innerHTML=env.highlightedCode;_.hooks.run('after-highlight',env);_.hooks.run('complete',env);callback&&callback.call(env.element);}_.hooks.run('before-sanity-check',env);// plugins may change/add the parent/element
|
|
395
|
+
parent=env.element.parentElement;if(parent&&parent.nodeName.toLowerCase()==='pre'&&!parent.hasAttribute('tabindex')){parent.setAttribute('tabindex','0');}if(!env.code){_.hooks.run('complete',env);callback&&callback.call(env.element);return;}_.hooks.run('before-highlight',env);if(!env.grammar){insertHighlightedCode(_.util.encode(env.code));return;}if(async&&_self.Worker){var worker=new Worker(_.filename);worker.onmessage=function(evt){insertHighlightedCode(evt.data);};worker.postMessage(JSON.stringify({language:env.language,code:env.code,immediateClose:true}));}else {insertHighlightedCode(_.highlight(env.code,env.grammar,env.language));}},/**
|
|
396
|
+
* Low-level function, only use if you know what you’re doing. It accepts a string of text as input
|
|
397
|
+
* and the language definitions to use, and returns a string with the HTML produced.
|
|
398
|
+
*
|
|
399
|
+
* The following hooks will be run:
|
|
400
|
+
* 1. `before-tokenize`
|
|
401
|
+
* 2. `after-tokenize`
|
|
402
|
+
* 3. `wrap`: On each {@link Token}.
|
|
403
|
+
*
|
|
404
|
+
* @param {string} text A string with the code to be highlighted.
|
|
405
|
+
* @param {Grammar} grammar An object containing the tokens to use.
|
|
406
|
+
*
|
|
407
|
+
* Usually a language definition like `Prism.languages.markup`.
|
|
408
|
+
* @param {string} language The name of the language definition passed to `grammar`.
|
|
409
|
+
* @returns {string} The highlighted HTML.
|
|
410
|
+
* @memberof Prism
|
|
411
|
+
* @public
|
|
412
|
+
* @example
|
|
413
|
+
* Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');
|
|
414
|
+
*/highlight:function(text,grammar,language){var env={code:text,grammar:grammar,language:language};_.hooks.run('before-tokenize',env);if(!env.grammar){throw new Error('The language "'+env.language+'" has no grammar.');}env.tokens=_.tokenize(env.code,env.grammar);_.hooks.run('after-tokenize',env);return Token.stringify(_.util.encode(env.tokens),env.language);},/**
|
|
415
|
+
* This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input
|
|
416
|
+
* and the language definitions to use, and returns an array with the tokenized code.
|
|
417
|
+
*
|
|
418
|
+
* When the language definition includes nested tokens, the function is called recursively on each of these tokens.
|
|
419
|
+
*
|
|
420
|
+
* This method could be useful in other contexts as well, as a very crude parser.
|
|
421
|
+
*
|
|
422
|
+
* @param {string} text A string with the code to be highlighted.
|
|
423
|
+
* @param {Grammar} grammar An object containing the tokens to use.
|
|
424
|
+
*
|
|
425
|
+
* Usually a language definition like `Prism.languages.markup`.
|
|
426
|
+
* @returns {TokenStream} An array of strings and tokens, a token stream.
|
|
427
|
+
* @memberof Prism
|
|
428
|
+
* @public
|
|
429
|
+
* @example
|
|
430
|
+
* let code = `var foo = 0;`;
|
|
431
|
+
* let tokens = Prism.tokenize(code, Prism.languages.javascript);
|
|
432
|
+
* tokens.forEach(token => {
|
|
433
|
+
* if (token instanceof Prism.Token && token.type === 'number') {
|
|
434
|
+
* console.log(`Found numeric literal: ${token.content}`);
|
|
435
|
+
* }
|
|
436
|
+
* });
|
|
437
|
+
*/tokenize:function(text,grammar){var rest=grammar.rest;if(rest){for(var token in rest){grammar[token]=rest[token];}delete grammar.rest;}var tokenList=new LinkedList();addAfter(tokenList,tokenList.head,text);matchGrammar(text,tokenList,grammar,tokenList.head,0);return toArray(tokenList);},/**
|
|
438
|
+
* @namespace
|
|
439
|
+
* @memberof Prism
|
|
440
|
+
* @public
|
|
441
|
+
*/hooks:{all:{},/**
|
|
442
|
+
* Adds the given callback to the list of callbacks for the given hook.
|
|
443
|
+
*
|
|
444
|
+
* The callback will be invoked when the hook it is registered for is run.
|
|
445
|
+
* Hooks are usually directly run by a highlight function but you can also run hooks yourself.
|
|
446
|
+
*
|
|
447
|
+
* One callback function can be registered to multiple hooks and the same hook multiple times.
|
|
448
|
+
*
|
|
449
|
+
* @param {string} name The name of the hook.
|
|
450
|
+
* @param {HookCallback} callback The callback function which is given environment variables.
|
|
451
|
+
* @public
|
|
452
|
+
*/add:function(name,callback){var hooks=_.hooks.all;hooks[name]=hooks[name]||[];hooks[name].push(callback);},/**
|
|
453
|
+
* Runs a hook invoking all registered callbacks with the given environment variables.
|
|
454
|
+
*
|
|
455
|
+
* Callbacks will be invoked synchronously and in the order in which they were registered.
|
|
456
|
+
*
|
|
457
|
+
* @param {string} name The name of the hook.
|
|
458
|
+
* @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.
|
|
459
|
+
* @public
|
|
460
|
+
*/run:function(name,env){var callbacks=_.hooks.all[name];if(!callbacks||!callbacks.length){return;}for(var i=0,callback;callback=callbacks[i++];){callback(env);}}},Token:Token};_self.Prism=_;// Typescript note:
|
|
461
|
+
// The following can be used to import the Token type in JSDoc:
|
|
462
|
+
//
|
|
463
|
+
// @typedef {InstanceType<import("./prism-core")["Token"]>} Token
|
|
464
|
+
/**
|
|
465
|
+
* Creates a new token.
|
|
466
|
+
*
|
|
467
|
+
* @param {string} type See {@link Token#type type}
|
|
468
|
+
* @param {string | TokenStream} content See {@link Token#content content}
|
|
469
|
+
* @param {string|string[]} [alias] The alias(es) of the token.
|
|
470
|
+
* @param {string} [matchedStr=""] A copy of the full string this token was created from.
|
|
471
|
+
* @class
|
|
472
|
+
* @global
|
|
473
|
+
* @public
|
|
474
|
+
*/function Token(type,content,alias,matchedStr){/**
|
|
475
|
+
* The type of the token.
|
|
476
|
+
*
|
|
477
|
+
* This is usually the key of a pattern in a {@link Grammar}.
|
|
478
|
+
*
|
|
479
|
+
* @type {string}
|
|
480
|
+
* @see GrammarToken
|
|
481
|
+
* @public
|
|
482
|
+
*/this.type=type;/**
|
|
483
|
+
* The strings or tokens contained by this token.
|
|
484
|
+
*
|
|
485
|
+
* This will be a token stream if the pattern matched also defined an `inside` grammar.
|
|
486
|
+
*
|
|
487
|
+
* @type {string | TokenStream}
|
|
488
|
+
* @public
|
|
489
|
+
*/this.content=content;/**
|
|
490
|
+
* The alias(es) of the token.
|
|
491
|
+
*
|
|
492
|
+
* @type {string|string[]}
|
|
493
|
+
* @see GrammarToken
|
|
494
|
+
* @public
|
|
495
|
+
*/this.alias=alias;// Copy of the full string this token was created from
|
|
496
|
+
this.length=(matchedStr||'').length|0;}/**
|
|
497
|
+
* A token stream is an array of strings and {@link Token Token} objects.
|
|
498
|
+
*
|
|
499
|
+
* Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process
|
|
500
|
+
* them.
|
|
501
|
+
*
|
|
502
|
+
* 1. No adjacent strings.
|
|
503
|
+
* 2. No empty strings.
|
|
504
|
+
*
|
|
505
|
+
* The only exception here is the token stream that only contains the empty string and nothing else.
|
|
506
|
+
*
|
|
507
|
+
* @typedef {Array<string | Token>} TokenStream
|
|
508
|
+
* @global
|
|
509
|
+
* @public
|
|
510
|
+
*//**
|
|
511
|
+
* Converts the given token or token stream to an HTML representation.
|
|
512
|
+
*
|
|
513
|
+
* The following hooks will be run:
|
|
514
|
+
* 1. `wrap`: On each {@link Token}.
|
|
515
|
+
*
|
|
516
|
+
* @param {string | Token | TokenStream} o The token or token stream to be converted.
|
|
517
|
+
* @param {string} language The name of current language.
|
|
518
|
+
* @returns {string} The HTML representation of the token or token stream.
|
|
519
|
+
* @memberof Token
|
|
520
|
+
* @static
|
|
521
|
+
*/Token.stringify=function stringify(o,language){if(typeof o=='string'){return o;}if(Array.isArray(o)){var s='';o.forEach(function(e){s+=stringify(e,language);});return s;}var env={type:o.type,content:stringify(o.content,language),tag:'span',classes:['token',o.type],attributes:{},language:language};var aliases=o.alias;if(aliases){if(Array.isArray(aliases)){Array.prototype.push.apply(env.classes,aliases);}else {env.classes.push(aliases);}}_.hooks.run('wrap',env);var attributes='';for(var name in env.attributes){attributes+=' '+name+'="'+(env.attributes[name]||'').replace(/"/g,'"')+'"';}return '<'+env.tag+' class="'+env.classes.join(' ')+'"'+attributes+'>'+env.content+'</'+env.tag+'>';};/**
|
|
522
|
+
* @param {RegExp} pattern
|
|
523
|
+
* @param {number} pos
|
|
524
|
+
* @param {string} text
|
|
525
|
+
* @param {boolean} lookbehind
|
|
526
|
+
* @returns {RegExpExecArray | null}
|
|
527
|
+
*/function matchPattern(pattern,pos,text,lookbehind){pattern.lastIndex=pos;var match=pattern.exec(text);if(match&&lookbehind&&match[1]){// change the match to remove the text matched by the Prism lookbehind group
|
|
528
|
+
var lookbehindLength=match[1].length;match.index+=lookbehindLength;match[0]=match[0].slice(lookbehindLength);}return match;}/**
|
|
529
|
+
* @param {string} text
|
|
530
|
+
* @param {LinkedList<string | Token>} tokenList
|
|
531
|
+
* @param {any} grammar
|
|
532
|
+
* @param {LinkedListNode<string | Token>} startNode
|
|
533
|
+
* @param {number} startPos
|
|
534
|
+
* @param {RematchOptions} [rematch]
|
|
535
|
+
* @returns {void}
|
|
536
|
+
* @private
|
|
537
|
+
*
|
|
538
|
+
* @typedef RematchOptions
|
|
539
|
+
* @property {string} cause
|
|
540
|
+
* @property {number} reach
|
|
541
|
+
*/function matchGrammar(text,tokenList,grammar,startNode,startPos,rematch){for(var token in grammar){if(!grammar.hasOwnProperty(token)||!grammar[token]){continue;}var patterns=grammar[token];patterns=Array.isArray(patterns)?patterns:[patterns];for(var j=0;j<patterns.length;++j){if(rematch&&rematch.cause==token+','+j){return;}var patternObj=patterns[j];var inside=patternObj.inside;var lookbehind=!!patternObj.lookbehind;var greedy=!!patternObj.greedy;var alias=patternObj.alias;if(greedy&&!patternObj.pattern.global){// Without the global flag, lastIndex won't work
|
|
542
|
+
var flags=patternObj.pattern.toString().match(/[imsuy]*$/)[0];patternObj.pattern=RegExp(patternObj.pattern.source,flags+'g');}/** @type {RegExp} */var pattern=patternObj.pattern||patternObj;for(// iterate the token list and keep track of the current token/string position
|
|
543
|
+
var currentNode=startNode.next,pos=startPos;currentNode!==tokenList.tail;pos+=currentNode.value.length,currentNode=currentNode.next){if(rematch&&pos>=rematch.reach){break;}var str=currentNode.value;if(tokenList.length>text.length){// Something went terribly wrong, ABORT, ABORT!
|
|
544
|
+
return;}if(str instanceof Token){continue;}var removeCount=1;// this is the to parameter of removeBetween
|
|
545
|
+
var match;if(greedy){match=matchPattern(pattern,pos,text,lookbehind);if(!match||match.index>=text.length){break;}var from=match.index;var to=match.index+match[0].length;var p=pos;// find the node that contains the match
|
|
546
|
+
p+=currentNode.value.length;while(from>=p){currentNode=currentNode.next;p+=currentNode.value.length;}// adjust pos (and p)
|
|
547
|
+
p-=currentNode.value.length;pos=p;// the current node is a Token, then the match starts inside another Token, which is invalid
|
|
548
|
+
if(currentNode.value instanceof Token){continue;}// find the last node which is affected by this match
|
|
549
|
+
for(var k=currentNode;k!==tokenList.tail&&(p<to||typeof k.value==='string');k=k.next){removeCount++;p+=k.value.length;}removeCount--;// replace with the new match
|
|
550
|
+
str=text.slice(pos,p);match.index-=pos;}else {match=matchPattern(pattern,0,str,lookbehind);if(!match){continue;}}// eslint-disable-next-line no-redeclare
|
|
551
|
+
var from=match.index;var matchStr=match[0];var before=str.slice(0,from);var after=str.slice(from+matchStr.length);var reach=pos+str.length;if(rematch&&reach>rematch.reach){rematch.reach=reach;}var removeFrom=currentNode.prev;if(before){removeFrom=addAfter(tokenList,removeFrom,before);pos+=before.length;}removeRange(tokenList,removeFrom,removeCount);var wrapped=new Token(token,inside?_.tokenize(matchStr,inside):matchStr,alias,matchStr);currentNode=addAfter(tokenList,removeFrom,wrapped);if(after){addAfter(tokenList,currentNode,after);}if(removeCount>1){// at least one Token object was removed, so we have to do some rematching
|
|
552
|
+
// this can only happen if the current pattern is greedy
|
|
553
|
+
/** @type {RematchOptions} */var nestedRematch={cause:token+','+j,reach:reach};matchGrammar(text,tokenList,grammar,currentNode.prev,pos,nestedRematch);// the reach might have been extended because of the rematching
|
|
554
|
+
if(rematch&&nestedRematch.reach>rematch.reach){rematch.reach=nestedRematch.reach;}}}}}}/**
|
|
555
|
+
* @typedef LinkedListNode
|
|
556
|
+
* @property {T} value
|
|
557
|
+
* @property {LinkedListNode<T> | null} prev The previous node.
|
|
558
|
+
* @property {LinkedListNode<T> | null} next The next node.
|
|
559
|
+
* @template T
|
|
560
|
+
* @private
|
|
561
|
+
*//**
|
|
562
|
+
* @template T
|
|
563
|
+
* @private
|
|
564
|
+
*/function LinkedList(){/** @type {LinkedListNode<T>} */var head={value:null,prev:null,next:null};/** @type {LinkedListNode<T>} */var tail={value:null,prev:head,next:null};head.next=tail;/** @type {LinkedListNode<T>} */this.head=head;/** @type {LinkedListNode<T>} */this.tail=tail;this.length=0;}/**
|
|
565
|
+
* Adds a new node with the given value to the list.
|
|
566
|
+
*
|
|
567
|
+
* @param {LinkedList<T>} list
|
|
568
|
+
* @param {LinkedListNode<T>} node
|
|
569
|
+
* @param {T} value
|
|
570
|
+
* @returns {LinkedListNode<T>} The added node.
|
|
571
|
+
* @template T
|
|
572
|
+
*/function addAfter(list,node,value){// assumes that node != list.tail && values.length >= 0
|
|
573
|
+
var next=node.next;var newNode={value:value,prev:node,next:next};node.next=newNode;next.prev=newNode;list.length++;return newNode;}/**
|
|
574
|
+
* Removes `count` nodes after the given node. The given node will not be removed.
|
|
575
|
+
*
|
|
576
|
+
* @param {LinkedList<T>} list
|
|
577
|
+
* @param {LinkedListNode<T>} node
|
|
578
|
+
* @param {number} count
|
|
579
|
+
* @template T
|
|
580
|
+
*/function removeRange(list,node,count){var next=node.next;for(var i=0;i<count&&next!==list.tail;i++){next=next.next;}node.next=next;next.prev=node;list.length-=i;}/**
|
|
581
|
+
* @param {LinkedList<T>} list
|
|
582
|
+
* @returns {T[]}
|
|
583
|
+
* @template T
|
|
584
|
+
*/function toArray(list){var array=[];var node=list.head.next;while(node!==list.tail){array.push(node.value);node=node.next;}return array;}if(!_self.document){if(!_self.addEventListener){// in Node.js
|
|
585
|
+
return _;}if(!_.disableWorkerMessageHandler){// In worker
|
|
586
|
+
_self.addEventListener('message',function(evt){var message=JSON.parse(evt.data);var lang=message.language;var code=message.code;var immediateClose=message.immediateClose;_self.postMessage(_.highlight(code,_.languages[lang],lang));if(immediateClose){_self.close();}},false);}return _;}// Get current script and highlight
|
|
587
|
+
var script=_.util.currentScript();if(script){_.filename=script.src;if(script.hasAttribute('data-manual')){_.manual=true;}}function highlightAutomaticallyCallback(){if(!_.manual){_.highlightAll();}}if(!_.manual){// If the document state is "loading", then we'll use DOMContentLoaded.
|
|
588
|
+
// If the document state is "interactive" and the prism.js script is deferred, then we'll also use the
|
|
589
|
+
// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they
|
|
590
|
+
// might take longer one animation frame to execute which can create a race condition where only some plugins have
|
|
591
|
+
// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.
|
|
592
|
+
// See https://github.com/PrismJS/prism/issues/2102
|
|
593
|
+
var readyState=document.readyState;if(readyState==='loading'||readyState==='interactive'&&script&&script.defer){document.addEventListener('DOMContentLoaded',highlightAutomaticallyCallback);}else {if(window.requestAnimationFrame){window.requestAnimationFrame(highlightAutomaticallyCallback);}else {window.setTimeout(highlightAutomaticallyCallback,16);}}}return _;}(_self);if(module.exports){module.exports=Prism;}// hack for components to work correctly in node.js
|
|
594
|
+
if(typeof commonjsGlobal!=='undefined'){commonjsGlobal.Prism=Prism;}// some additional documentation/types
|
|
595
|
+
/**
|
|
596
|
+
* The expansion of a simple `RegExp` literal to support additional properties.
|
|
597
|
+
*
|
|
598
|
+
* @typedef GrammarToken
|
|
599
|
+
* @property {RegExp} pattern The regular expression of the token.
|
|
600
|
+
* @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)
|
|
601
|
+
* behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.
|
|
602
|
+
* @property {boolean} [greedy=false] Whether the token is greedy.
|
|
603
|
+
* @property {string|string[]} [alias] An optional alias or list of aliases.
|
|
604
|
+
* @property {Grammar} [inside] The nested grammar of this token.
|
|
605
|
+
*
|
|
606
|
+
* The `inside` grammar will be used to tokenize the text value of each token of this kind.
|
|
607
|
+
*
|
|
608
|
+
* This can be used to make nested and even recursive language definitions.
|
|
609
|
+
*
|
|
610
|
+
* Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into
|
|
611
|
+
* each another.
|
|
612
|
+
* @global
|
|
613
|
+
* @public
|
|
614
|
+
*//**
|
|
615
|
+
* @typedef Grammar
|
|
616
|
+
* @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}
|
|
617
|
+
* @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.
|
|
618
|
+
* @global
|
|
619
|
+
* @public
|
|
620
|
+
*//**
|
|
621
|
+
* A function which will invoked after an element was successfully highlighted.
|
|
622
|
+
*
|
|
623
|
+
* @callback HighlightCallback
|
|
624
|
+
* @param {Element} element The element successfully highlighted.
|
|
625
|
+
* @returns {void}
|
|
626
|
+
* @global
|
|
627
|
+
* @public
|
|
628
|
+
*//**
|
|
629
|
+
* @callback HookCallback
|
|
630
|
+
* @param {Object<string, any>} env The environment variables of the hook.
|
|
631
|
+
* @returns {void}
|
|
632
|
+
* @global
|
|
633
|
+
* @public
|
|
634
|
+
*//* **********************************************
|
|
635
|
+
Begin prism-markup.js
|
|
636
|
+
********************************************** */Prism.languages.markup={'comment':{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:true},'prolog':{pattern:/<\?[\s\S]+?\?>/,greedy:true},'doctype':{// https://www.w3.org/TR/xml/#NT-doctypedecl
|
|
637
|
+
pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:true,inside:{'internal-subset':{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:true,greedy:true,inside:null// see below
|
|
638
|
+
},'string':{pattern:/"[^"]*"|'[^']*'/,greedy:true},'punctuation':/^<!|>$|[[\]]/,'doctype-tag':/^DOCTYPE/i,'name':/[^\s<>'"]+/}},'cdata':{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:true},'tag':{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:true,inside:{'tag':{pattern:/^<\/?[^\s>\/]+/,inside:{'punctuation':/^<\/?/,'namespace':/^[^\s>\/:]+:/}},'special-attr':[],'attr-value':{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{'punctuation':[{pattern:/^=/,alias:'attr-equals'},{pattern:/^(\s*)["']|["']$/,lookbehind:true}]}},'punctuation':/\/?>/,'attr-name':{pattern:/[^\s>\/]+/,inside:{'namespace':/^[^\s>\/:]+:/}}}},'entity':[{pattern:/&[\da-z]{1,8};/i,alias:'named-entity'},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup['tag'].inside['attr-value'].inside['entity']=Prism.languages.markup['entity'];Prism.languages.markup['doctype'].inside['internal-subset'].inside=Prism.languages.markup;// Plugin to make entity title show the real entity, idea by Roman Komarov
|
|
639
|
+
Prism.hooks.add('wrap',function(env){if(env.type==='entity'){env.attributes['title']=env.content.replace(/&/,'&');}});Object.defineProperty(Prism.languages.markup.tag,'addInlined',{/**
|
|
640
|
+
* Adds an inlined language to markup.
|
|
641
|
+
*
|
|
642
|
+
* An example of an inlined language is CSS with `<style>` tags.
|
|
643
|
+
*
|
|
644
|
+
* @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as
|
|
645
|
+
* case insensitive.
|
|
646
|
+
* @param {string} lang The language key.
|
|
647
|
+
* @example
|
|
648
|
+
* addInlined('style', 'css');
|
|
649
|
+
*/value:function addInlined(tagName,lang){var includedCdataInside={};includedCdataInside['language-'+lang]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:true,inside:Prism.languages[lang]};includedCdataInside['cdata']=/^<!\[CDATA\[|\]\]>$/i;var inside={'included-cdata':{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:includedCdataInside}};inside['language-'+lang]={pattern:/[\s\S]+/,inside:Prism.languages[lang]};var def={};def[tagName]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return tagName;}),'i'),lookbehind:true,greedy:true,inside:inside};Prism.languages.insertBefore('markup','cdata',def);}});Object.defineProperty(Prism.languages.markup.tag,'addAttribute',{/**
|
|
650
|
+
* Adds an pattern to highlight languages embedded in HTML attributes.
|
|
651
|
+
*
|
|
652
|
+
* An example of an inlined language is CSS with `style` attributes.
|
|
653
|
+
*
|
|
654
|
+
* @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as
|
|
655
|
+
* case insensitive.
|
|
656
|
+
* @param {string} lang The language key.
|
|
657
|
+
* @example
|
|
658
|
+
* addAttribute('style', 'css');
|
|
659
|
+
*/value:function(attrName,lang){Prism.languages.markup.tag.inside['special-attr'].push({pattern:RegExp(/(^|["'\s])/.source+'(?:'+attrName+')'+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,'i'),lookbehind:true,inside:{'attr-name':/^[^\s=]+/,'attr-value':{pattern:/=[\s\S]+/,inside:{'value':{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:true,alias:[lang,'language-'+lang],inside:Prism.languages[lang]},'punctuation':[{pattern:/^=/,alias:'attr-equals'},/"|'/]}}}});}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend('markup',{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;/* **********************************************
|
|
660
|
+
Begin prism-css.js
|
|
661
|
+
********************************************** */(function(Prism){var string=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={'comment':/\/\*[\s\S]*?\*\//,'atrule':{pattern:RegExp('@[\\w-](?:'+/[^;{\s"']|\s+(?!\s)/.source+'|'+string.source+')*?'+/(?:;|(?=\s*\{))/.source),inside:{'rule':/^@[\w-]+/,'selector-function-argument':{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:true,alias:'selector'},'keyword':{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:true}// See rest below
|
|
662
|
+
}},'url':{// https://drafts.csswg.org/css-values-3/#urls
|
|
663
|
+
pattern:RegExp('\\burl\\((?:'+string.source+'|'+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+')\\)','i'),greedy:true,inside:{'function':/^url/i,'punctuation':/^\(|\)$/,'string':{pattern:RegExp('^'+string.source+'$'),alias:'url'}}},'selector':{pattern:RegExp('(^|[{}\\s])[^{}\\s](?:[^{};"\'\\s]|\\s+(?![\\s{])|'+string.source+')*(?=\\s*\\{)'),lookbehind:true},'string':{pattern:string,greedy:true},'property':{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:true},'important':/!important\b/i,'function':{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:true},'punctuation':/[(){};:,]/};Prism.languages.css['atrule'].inside.rest=Prism.languages.css;var markup=Prism.languages.markup;if(markup){markup.tag.addInlined('style','css');markup.tag.addAttribute('style','css');}})(Prism);/* **********************************************
|
|
664
|
+
Begin prism-clike.js
|
|
665
|
+
********************************************** */Prism.languages.clike={'comment':[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:true,greedy:true},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:true,greedy:true}],'string':{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:true},'class-name':{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:true,inside:{'punctuation':/[.\\]/}},'keyword':/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,'boolean':/\b(?:false|true)\b/,'function':/\b\w+(?=\()/,'number':/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,'operator':/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,'punctuation':/[{}[\];(),.:]/};/* **********************************************
|
|
666
|
+
Begin prism-javascript.js
|
|
667
|
+
********************************************** */Prism.languages.javascript=Prism.languages.extend('clike',{'class-name':[Prism.languages.clike['class-name'],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:true}],'keyword':[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:true},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:true}],// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
|
|
668
|
+
'function':/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,'number':{pattern:RegExp(/(^|[^\w$])/.source+'(?:'+(// constant
|
|
669
|
+
/NaN|Infinity/.source+'|'+// binary integer
|
|
670
|
+
/0[bB][01]+(?:_[01]+)*n?/.source+'|'+// octal integer
|
|
671
|
+
/0[oO][0-7]+(?:_[0-7]+)*n?/.source+'|'+// hexadecimal integer
|
|
672
|
+
/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+'|'+// decimal bigint
|
|
673
|
+
/\d+(?:_\d+)*n/.source+'|'+// decimal number (integer or float) but no bigint
|
|
674
|
+
/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+')'+/(?![\w$])/.source),lookbehind:true},'operator':/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript['class-name'][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore('javascript','keyword',{'regex':{pattern:RegExp(// lookbehind
|
|
675
|
+
// eslint-disable-next-line regexp/no-dupe-characters-character-class
|
|
676
|
+
/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+// Regex pattern:
|
|
677
|
+
// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character
|
|
678
|
+
// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible
|
|
679
|
+
// with the only syntax, so we have to define 2 different regex patterns.
|
|
680
|
+
/\//.source+'(?:'+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+'|'+// `v` flag syntax. This supports 3 levels of nested character classes.
|
|
681
|
+
/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+')'+// lookahead
|
|
682
|
+
/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:true,greedy:true,inside:{'regex-source':{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:true,alias:'language-regex',inside:Prism.languages.regex},'regex-delimiter':/^\/|\/$/,'regex-flags':/^[a-z]+$/}},// This must be declared before keyword because we use "function" inside the look-forward
|
|
683
|
+
'function-variable':{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:'function'},'parameter':[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:true,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:true,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:true,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:true,inside:Prism.languages.javascript}],'constant':/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore('javascript','string',{'hashbang':{pattern:/^#!.*/,greedy:true,alias:'comment'},'template-string':{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:true,inside:{'template-punctuation':{pattern:/^`|`$/,alias:'string'},'interpolation':{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:true,inside:{'interpolation-punctuation':{pattern:/^\$\{|\}$/,alias:'punctuation'},rest:Prism.languages.javascript}},'string':/[\s\S]+/}},'string-property':{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:true,greedy:true,alias:'property'}});Prism.languages.insertBefore('javascript','operator',{'literal-property':{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:true,alias:'property'}});if(Prism.languages.markup){Prism.languages.markup.tag.addInlined('script','javascript');// add attribute support for all DOM events.
|
|
684
|
+
// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events
|
|
685
|
+
Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,'javascript');}Prism.languages.js=Prism.languages.javascript;/* **********************************************
|
|
686
|
+
Begin prism-file-highlight.js
|
|
687
|
+
********************************************** */(function(){if(typeof Prism==='undefined'||typeof document==='undefined'){return;}// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill
|
|
688
|
+
if(!Element.prototype.matches){Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector;}var LOADING_MESSAGE='Loading…';var FAILURE_MESSAGE=function(status,message){return '✖ Error '+status+' while fetching file: '+message;};var FAILURE_EMPTY_MESSAGE='✖ Error: File does not exist or is empty';var EXTENSIONS={'js':'javascript','py':'python','rb':'ruby','ps1':'powershell','psm1':'powershell','sh':'bash','bat':'batch','h':'c','tex':'latex'};var STATUS_ATTR='data-src-status';var STATUS_LOADING='loading';var STATUS_LOADED='loaded';var STATUS_FAILED='failed';var SELECTOR='pre[data-src]:not(['+STATUS_ATTR+'="'+STATUS_LOADED+'"])'+':not(['+STATUS_ATTR+'="'+STATUS_LOADING+'"])';/**
|
|
689
|
+
* Loads the given file.
|
|
690
|
+
*
|
|
691
|
+
* @param {string} src The URL or path of the source file to load.
|
|
692
|
+
* @param {(result: string) => void} success
|
|
693
|
+
* @param {(reason: string) => void} error
|
|
694
|
+
*/function loadFile(src,success,error){var xhr=new XMLHttpRequest();xhr.open('GET',src,true);xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status<400&&xhr.responseText){success(xhr.responseText);}else {if(xhr.status>=400){error(FAILURE_MESSAGE(xhr.status,xhr.statusText));}else {error(FAILURE_EMPTY_MESSAGE);}}}};xhr.send(null);}/**
|
|
695
|
+
* Parses the given range.
|
|
696
|
+
*
|
|
697
|
+
* This returns a range with inclusive ends.
|
|
698
|
+
*
|
|
699
|
+
* @param {string | null | undefined} range
|
|
700
|
+
* @returns {[number, number | undefined] | undefined}
|
|
701
|
+
*/function parseRange(range){var m=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(range||'');if(m){var start=Number(m[1]);var comma=m[2];var end=m[3];if(!comma){return [start,start];}if(!end){return [start,undefined];}return [start,Number(end)];}return undefined;}Prism.hooks.add('before-highlightall',function(env){env.selector+=', '+SELECTOR;});Prism.hooks.add('before-sanity-check',function(env){var pre=/** @type {HTMLPreElement} */env.element;if(pre.matches(SELECTOR)){env.code='';// fast-path the whole thing and go to complete
|
|
702
|
+
pre.setAttribute(STATUS_ATTR,STATUS_LOADING);// mark as loading
|
|
703
|
+
// add code element with loading message
|
|
704
|
+
var code=pre.appendChild(document.createElement('CODE'));code.textContent=LOADING_MESSAGE;var src=pre.getAttribute('data-src');var language=env.language;if(language==='none'){// the language might be 'none' because there is no language set;
|
|
705
|
+
// in this case, we want to use the extension as the language
|
|
706
|
+
var extension=(/\.(\w+)$/.exec(src)||[,'none'])[1];language=EXTENSIONS[extension]||extension;}// set language classes
|
|
707
|
+
Prism.util.setLanguage(code,language);Prism.util.setLanguage(pre,language);// preload the language
|
|
708
|
+
var autoloader=Prism.plugins.autoloader;if(autoloader){autoloader.loadLanguages(language);}// load file
|
|
709
|
+
loadFile(src,function(text){// mark as loaded
|
|
710
|
+
pre.setAttribute(STATUS_ATTR,STATUS_LOADED);// handle data-range
|
|
711
|
+
var range=parseRange(pre.getAttribute('data-range'));if(range){var lines=text.split(/\r\n?|\n/g);// the range is one-based and inclusive on both ends
|
|
712
|
+
var start=range[0];var end=range[1]==null?lines.length:range[1];if(start<0){start+=lines.length;}start=Math.max(0,Math.min(start-1,lines.length));if(end<0){end+=lines.length;}end=Math.max(0,Math.min(end,lines.length));text=lines.slice(start,end).join('\n');// add data-start for line numbers
|
|
713
|
+
if(!pre.hasAttribute('data-start')){pre.setAttribute('data-start',String(start+1));}}// highlight code
|
|
714
|
+
code.textContent=text;Prism.highlightElement(code);},function(error){// mark as failed
|
|
715
|
+
pre.setAttribute(STATUS_ATTR,STATUS_FAILED);code.textContent=error;});}});Prism.plugins.fileHighlight={/**
|
|
716
|
+
* Executes the File Highlight plugin for all matching `pre` elements under the given container.
|
|
717
|
+
*
|
|
718
|
+
* Note: Elements which are already loaded or currently loading will not be touched by this method.
|
|
719
|
+
*
|
|
720
|
+
* @param {ParentNode} [container=document]
|
|
721
|
+
*/highlight:function highlight(container){var elements=(container||document).querySelectorAll(SELECTOR);for(var i=0,element;element=elements[i++];){Prism.highlightElement(element);}}};var logged=false;/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */Prism.fileHighlight=function(){if(!logged){console.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');logged=true;}Prism.plugins.fileHighlight.highlight.apply(this,arguments);};})();})(prism);const Prism$1=prism.exports;Prism.languages.python={'comment':{pattern:/(^|[^\\])#.*/,lookbehind:true,greedy:true},'string-interpolation':{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:true,inside:{'interpolation':{// "{" <expression> <optional "!s", "!r", or "!a"> <optional ":" format specifier> "}"
|
|
722
|
+
pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:true,inside:{'format-spec':{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:true},'conversion-option':{pattern://,alias:'punctuation'},rest:null}},'string':/[\s\S]+/}},'triple-quoted-string':{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:true,alias:'string'},'string':{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:true},'function':{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:true},'class-name':{pattern:/(\bclass\s+)\w+/i,lookbehind:true},'decorator':{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:true,alias:['annotation','punctuation'],inside:{'punctuation':/\./}},'keyword':/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,'builtin':/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,'boolean':/\b(?:False|None|True)\b/,'number':/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,'operator':/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,'punctuation':/[{}[\];(),.:]/};Prism.languages.python['string-interpolation'].inside['interpolation'].inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python;(function(Prism){// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\n' '|'
|
|
723
|
+
// + LC_ALL, RANDOM, REPLY, SECONDS.
|
|
724
|
+
// + make sure PS1..4 are here as they are not always set,
|
|
725
|
+
// - some useless things.
|
|
726
|
+
var envVars='\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b';var commandAfterHeredoc={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:true,alias:'punctuation',// this looks reasonably well in all themes
|
|
727
|
+
inside:null// see below
|
|
728
|
+
};var insideString={'bash':commandAfterHeredoc,'environment':{pattern:RegExp('\\$'+envVars),alias:'constant'},'variable':[// [0]: Arithmetic Environment
|
|
729
|
+
{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:true,inside:{// If there is a $ sign at the beginning highlight $(( and )) as variable
|
|
730
|
+
'variable':[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:true},/^\$\(\(/],'number':/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic
|
|
731
|
+
'operator':/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,// If there is no $ sign at the beginning highlight (( and )) as punctuation
|
|
732
|
+
'punctuation':/\(\(?|\)\)?|,|;/}},// [1]: Command Substitution
|
|
733
|
+
{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:true,inside:{'variable':/^\$\(|^`|\)$|`$/}},// [2]: Brace expansion
|
|
734
|
+
{pattern:/\$\{[^}]+\}/,greedy:true,inside:{'operator':/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,'punctuation':/[\[\]]/,'environment':{pattern:RegExp('(\\{)'+envVars),lookbehind:true,alias:'constant'}}},/\$(?:\w+|[#?*!@$])/],// Escape sequences from echo and printf's manuals, and escaped quotes.
|
|
735
|
+
'entity':/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};Prism.languages.bash={'shebang':{pattern:/^#!\s*\/.*/,alias:'important'},'comment':{pattern:/(^|[^"{\\$])#.*/,lookbehind:true},'function-name':[// a) function foo {
|
|
736
|
+
// b) foo() {
|
|
737
|
+
// c) function foo() {
|
|
738
|
+
// but not “foo {”
|
|
739
|
+
{// a) and c)
|
|
740
|
+
pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:true,alias:'function'},{// b)
|
|
741
|
+
pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:'function'}],// Highlight variable names as variables in for and select beginnings.
|
|
742
|
+
'for-or-select':{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:'variable',lookbehind:true},// Highlight variable names as variables in the left-hand part
|
|
743
|
+
// of assignments (“=” and “+=”).
|
|
744
|
+
'assign-left':{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{'environment':{pattern:RegExp('(^|[\\s;|&]|[<>]\\()'+envVars),lookbehind:true,alias:'constant'}},alias:'variable',lookbehind:true},// Highlight parameter names as variables
|
|
745
|
+
'parameter':{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:'variable',lookbehind:true},'string':[// Support for Here-documents https://en.wikipedia.org/wiki/Here_document
|
|
746
|
+
{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:true,greedy:true,inside:insideString},// Here-document with quotes around the tag
|
|
747
|
+
// → No expansion (so no “inside”).
|
|
748
|
+
{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:true,greedy:true,inside:{'bash':commandAfterHeredoc}},// “Normal” string
|
|
749
|
+
{// https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html
|
|
750
|
+
pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:true,greedy:true,inside:insideString},{// https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html
|
|
751
|
+
pattern:/(^|[^$\\])'[^']*'/,lookbehind:true,greedy:true},{// https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html
|
|
752
|
+
pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:true,inside:{'entity':insideString.entity}}],'environment':{pattern:RegExp('\\$?'+envVars),alias:'constant'},'variable':insideString.variable,'function':{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:true},'keyword':{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:true},// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
|
|
753
|
+
'builtin':{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:true,// Alias added to make those easier to distinguish from strings.
|
|
754
|
+
alias:'class-name'},'boolean':{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:true},'file-descriptor':{pattern:/\B&\d\b/,alias:'important'},'operator':{// Lots of redirections here, but not just that.
|
|
755
|
+
pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{'file-descriptor':{pattern:/^\d/,alias:'important'}}},'punctuation':/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,'number':{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:true}};commandAfterHeredoc.inside=Prism.languages.bash;/* Patterns in command substitution. */var toBeCopied=['comment','function-name','for-or-select','assign-left','parameter','string','environment','function','keyword','builtin','boolean','file-descriptor','operator','punctuation','number'];var inside=insideString.variable[1].inside;for(var i=0;i<toBeCopied.length;i++){inside[toBeCopied[i]]=Prism.languages.bash[toBeCopied[i]];}Prism.languages.sh=Prism.languages.bash;Prism.languages.shell=Prism.languages.bash;})(Prism);(function(Prism){// https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property
|
|
756
|
+
// https://yaml.org/spec/1.2/spec.html#c-ns-alias-node
|
|
757
|
+
var anchorOrAlias=/[*&][^\s[\]{},]+/;// https://yaml.org/spec/1.2/spec.html#c-ns-tag-property
|
|
758
|
+
var tag=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/;// https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)
|
|
759
|
+
var properties='(?:'+tag.source+'(?:[ \t]+'+anchorOrAlias.source+')?|'+anchorOrAlias.source+'(?:[ \t]+'+tag.source+')?)';// https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)
|
|
760
|
+
// This is a simplified version that doesn't support "#" and multiline keys
|
|
761
|
+
// All these long scarry character classes are simplified versions of YAML's characters
|
|
762
|
+
var plainKey=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,function(){return /[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source;});var string=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;/**
|
|
763
|
+
*
|
|
764
|
+
* @param {string} value
|
|
765
|
+
* @param {string} [flags]
|
|
766
|
+
* @returns {RegExp}
|
|
767
|
+
*/function createValuePattern(value,flags){flags=(flags||'').replace(/m/g,'')+'m';// add m flag
|
|
768
|
+
var pattern=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,function(){return properties;}).replace(/<<value>>/g,function(){return value;});return RegExp(pattern,flags);}Prism.languages.yaml={'scalar':{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,function(){return properties;})),lookbehind:true,alias:'string'},'comment':/#.*/,'key':{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,function(){return properties;}).replace(/<<key>>/g,function(){return '(?:'+plainKey+'|'+string+')';})),lookbehind:true,greedy:true,alias:'atrule'},'directive':{pattern:/(^[ \t]*)%.+/m,lookbehind:true,alias:'important'},'datetime':{pattern:createValuePattern(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:true,alias:'number'},'boolean':{pattern:createValuePattern(/false|true/.source,'i'),lookbehind:true,alias:'important'},'null':{pattern:createValuePattern(/null|~/.source,'i'),lookbehind:true,alias:'important'},'string':{pattern:createValuePattern(string),lookbehind:true,greedy:true},'number':{pattern:createValuePattern(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,'i'),lookbehind:true},'tag':tag,'important':anchorOrAlias,'punctuation':/---|[:[\]{}\-,|>?]|\.\.\./};Prism.languages.yml=Prism.languages.yaml;})(Prism);(function(Prism){var string=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;Prism.languages.css={'comment':/\/\*[\s\S]*?\*\//,'atrule':{pattern:RegExp('@[\\w-](?:'+/[^;{\s"']|\s+(?!\s)/.source+'|'+string.source+')*?'+/(?:;|(?=\s*\{))/.source),inside:{'rule':/^@[\w-]+/,'selector-function-argument':{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:true,alias:'selector'},'keyword':{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:true}// See rest below
|
|
769
|
+
}},'url':{// https://drafts.csswg.org/css-values-3/#urls
|
|
770
|
+
pattern:RegExp('\\burl\\((?:'+string.source+'|'+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+')\\)','i'),greedy:true,inside:{'function':/^url/i,'punctuation':/^\(|\)$/,'string':{pattern:RegExp('^'+string.source+'$'),alias:'url'}}},'selector':{pattern:RegExp('(^|[{}\\s])[^{}\\s](?:[^{};"\'\\s]|\\s+(?![\\s{])|'+string.source+')*(?=\\s*\\{)'),lookbehind:true},'string':{pattern:string,greedy:true},'property':{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:true},'important':/!important\b/i,'function':{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:true},'punctuation':/[(){};:,]/};Prism.languages.css['atrule'].inside.rest=Prism.languages.css;var markup=Prism.languages.markup;if(markup){markup.tag.addInlined('style','css');markup.tag.addAttribute('style','css');}})(Prism);const edsCodeBlockCss=":host{display:block}.relative{position:relative}.bg-strongest{background-color:#07140D;border:1px solid rgba(255, 255, 255, 0.1)}.rounded-sm{border-radius:12px;overflow:hidden}.text-inverse{color:#E5E7EB}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.p-8{padding:0.75rem 1rem;background:rgba(255, 255, 255, 0.05);border-bottom:1px solid rgba(255, 255, 255, 0.08)}.f-ui-03{font-family:'IBM Plex Mono', 'Courier New', monospace;font-size:0.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:0.1em;color:#00FF9D;background:rgba(0, 255, 157, 0.1);padding:0.25rem 0.5rem;border-radius:4px;line-height:1.4}.w-20{width:1.25rem}.h-20{height:1.25rem}.mt-8{margin-top:0;cursor:pointer;color:#9CA3AF;transition:color 0.2s ease}.mt-8:hover{color:white}pre{margin:0;color:#D1D5DB;overflow-x:auto}pre[class*=\"language-\"]{white-space:pre-wrap;word-break:break-word}.bg-stronger{background:transparent}.pl-8{padding:1.25rem 1.5rem}.pb-8{padding-bottom:1.25rem}code{font-family:'IBM Plex Mono', 'Courier New', monospace;font-size:0.875rem;line-height:1.7}.token.keyword{color:#ff79c6}.token.string{color:#00FF9D}.token.function{color:#8be9fd}.token.comment{color:#6B7280;font-style:italic}.token.tag{color:#ff79c6}.token.attr-name{color:#8be9fd}.token.attr-value{color:#00FF9D}.token.punctuation{color:#d8d8d8}.token.operator{color:#8be9fd}.token.number{color:#ffb87e}.token.boolean{color:#d18fff}.token.property{color:#8be9fd}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}";const EdsCodeBlockStyle0=edsCodeBlockCss;const EdsCodeBlock=class{constructor(hostRef){registerInstance(this,hostRef);this.code=undefined;this.language=undefined;this.copied=false;}/**
|
|
771
|
+
* Copies the current code content to the clipboard and sets a temporary copied state.
|
|
772
|
+
*
|
|
773
|
+
* @private
|
|
774
|
+
* @returns {void}
|
|
775
|
+
*/copyToClipboard(){navigator.clipboard.writeText(this.code).then(()=>{this.copied=true;/*const analyticsName = this.createHumanFriendlyAnalyticsName(this.code, this.language);
|
|
776
|
+
sendAnalytics({
|
|
777
|
+
category: 'ui-component',
|
|
778
|
+
parentContext: null,
|
|
779
|
+
tag: this.el.tagName.toLowerCase(),
|
|
780
|
+
name: analyticsName || '',
|
|
781
|
+
action: 'copy'
|
|
782
|
+
});*/setTimeout(()=>this.copied=false,2000);});}/**
|
|
783
|
+
* Utility function that creates a human-friendly analytics name based on the code and language.
|
|
784
|
+
* It uses:
|
|
785
|
+
* - The language (in uppercase)
|
|
786
|
+
* - The number of non-empty lines in the code
|
|
787
|
+
* - The first non-empty line of code (truncated to 30 characters, if needed)
|
|
788
|
+
*
|
|
789
|
+
* returns A descriptive analytics name.
|
|
790
|
+
*//*private createHumanFriendlyAnalyticsName(code: string, language: string): string {
|
|
791
|
+
// Count non-empty lines
|
|
792
|
+
const lines = code.split('\n').filter(line => line.trim() !== '').length;
|
|
793
|
+
|
|
794
|
+
// Find the first non-empty line and trim it
|
|
795
|
+
let firstNonEmptyLine = code.split('\n').find(line => line.trim() !== '');
|
|
796
|
+
firstNonEmptyLine = firstNonEmptyLine ? firstNonEmptyLine.trim() : '';
|
|
797
|
+
|
|
798
|
+
// Truncate the snippet if it’s too long
|
|
799
|
+
if (firstNonEmptyLine.length > 30) {
|
|
800
|
+
firstNonEmptyLine = firstNonEmptyLine.substring(0, 30) + '...';
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
return `CodeBlock:${language.toLowerCase()}|${lines}-line(s)|${firstNonEmptyLine.toLowerCase()}`;
|
|
804
|
+
}*//**
|
|
805
|
+
* Returns the syntax-highlighted HTML for the code.
|
|
806
|
+
* If the provided language is supported by Prism, this method returns the highlighted code.
|
|
807
|
+
* Otherwise, it logs a warning and returns the raw code.
|
|
808
|
+
*
|
|
809
|
+
* @private
|
|
810
|
+
* @returns {string} The highlighted HTML string for the code block.
|
|
811
|
+
*/getHighlightedCode(){if(this.language&&Prism$1.languages[this.language]){return Prism$1.highlight(this.code,Prism$1.languages[this.language],this.language);}// eslint-disable-next-line
|
|
812
|
+
//console.warn(`Unsupported or missing language: ${this.language}`);
|
|
813
|
+
return this.code;// Fallback if language is not provided or unsupported
|
|
814
|
+
}render(){return h("div",{key:'4d73fa52c489b6995dd8a6d83c05e323bb1f5431',class:"relative bg-strongest rounded-sm"},h("div",{key:'c0df3237009310833b417f5ede5b7c204f2752bc',class:"text-inverse flex justify-between items-center p-8"},this.language?h("span",{class:"f-ui-03"},this.language.toUpperCase()):h("pre",{class:"bg-stronger pl-8",role:"region","aria-label":"Code block without language"},h("code",{innerHTML:this.getHighlightedCode()})),h("span",{key:'016505a0749baaa52c6e4aa77f00b4da31e7ec45',"aria-hidden":"true",class:"w-20 h-20 mt-8"},h("eds-icon-wrapper",{key:'21474f1b28af95251aca639c349aaac489d8519b',name:this.copied?'checkmark-filled':'copy',onClick:()=>this.copyToClipboard()})),h("span",{key:'64450529ad3cf3dab7e74f8455307cdb3298bbc4',class:"sr-only"},"Copy Code")),this.language&&h("pre",{key:'affcb4719ef29d7ed9ed676eab975c98ceca31fa',class:`language-${this.language} bg-stronger pl-8 pb-8`,role:"region","aria-label":`Code block in ${this.language}`},h("code",{key:'43fa1b80c2e02233076c4da15a5aa04f0b49bfc3',innerHTML:this.getHighlightedCode()})));}get el(){return getElement(this);}};EdsCodeBlock.style=EdsCodeBlockStyle0;const edsDropdownCss=".z-focus{z-index:99}.relative{position:relative}.shadow-small{--tw-shadow:0px 1.5px 2px rgba(0, 0, 0, 0.1);--tw-shadow-colored:0px 1.5px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.bg-inverse{background-color:var(--white)}.border-softest{border:2px solid rgba(0, 0, 0, .05)}.z-10{z-index:10}.z-on-top{z-index:99999}.absolute{position:absolute}.top-full{top:100%}.mt-4{margin-top:0.25rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.gap-y-4{row-gap:0.25rem}.rounded-lg{border-radius:16px}.border-2{border-width:2px}.p-8{padding:0.5rem}.left-0{left:0rem}.left-1\\/2{left:50%}.left-4{left:0.25rem}.left-\\[4px\\]{left:4px}.right-0{right:0rem}.right-4{right:0.25rem}.right-8{right:0.5rem}";const EdsDropdownStyle0=edsDropdownCss;const EdsDropdown=class{constructor(hostRef){registerInstance(this,hostRef);this.dropdown=createEvent(this,"dropdown",7);this.focusableItems=[];/**
|
|
815
|
+
* Toggles the visibility of the dropdown and manages focus.
|
|
816
|
+
*/this.handleClick=()=>{var _a,_b;this.isOpen=!this.isOpen;if(this.isOpen){// refresh focusables each open in case slot changed
|
|
817
|
+
this.focusableItems=Array.from(((_a=this.panelEl)===null||_a===void 0?void 0:_a.querySelectorAll('a, button, [role="menuitem"]'))||[]);// The panel declares role="menu"; slotted links/buttons need
|
|
818
|
+
// role="menuitem" or screen readers announce an empty menu.
|
|
819
|
+
this.focusableItems.forEach(item=>{if(!item.hasAttribute('role')){item.setAttribute('role','menuitem');}});this.focusIndex=this.focusableItems.length?0:-1;this.focusItem();}else {this.closeDropdown();}this.dropdown.emit({expanded:this.isOpen});sendAnalytics({category:'ui-component',parentContext:null,tag:this.host.tagName.toLowerCase(),name:((_b=this.label)===null||_b===void 0?void 0:_b.toLowerCase())||'',action:this.isOpen?'expanded':'collapsed'});};this.icon='chevron-down';this.label=undefined;this.ariaLabel='Open dropdown';this.asNav=true;this.dropdownPos='left';this.dropdownOffset=true;this.intent='ghost';this.autoClose=true;this.noCloseSelector='[data-dropdown-no-close]';this.isOpen=false;this.focusIndex=-1;}async close(){this.closeDropdown();}/**
|
|
820
|
+
* Closes the dropdown when a click occurs outside of it.
|
|
821
|
+
* @param {Event} e - The click event.
|
|
822
|
+
*/handleWindowClick(e){const path=e.composedPath&&e.composedPath()||[];if(!path.includes(this.host)){this.closeDropdown();}}/**
|
|
823
|
+
* Handles keyboard navigation and accessibility within the dropdown.
|
|
824
|
+
* @param {KeyboardEvent} event - The keyboard event.
|
|
825
|
+
*/handleKeyDown(event){var _a;if(this.isOpen){const key=event.key;switch(key){case'Tab':// ARIA menu pattern: Tab does not walk the items — it closes
|
|
826
|
+
// the menu and lets focus continue to the next element on the
|
|
827
|
+
// page (no preventDefault on purpose).
|
|
828
|
+
this.closeDropdown();break;case'Escape':// Close and hand focus back to the trigger so keyboard users
|
|
829
|
+
// can back out without committing to a Tab.
|
|
830
|
+
event.preventDefault();this.closeDropdown();(_a=this.buttonEl)===null||_a===void 0?void 0:_a.focus();break;case'ArrowUp':event.preventDefault();this.focusIndex=(this.focusIndex-1+this.focusableItems.length)%this.focusableItems.length;this.focusItem();break;case'ArrowDown':event.preventDefault();this.focusIndex=(this.focusIndex+1)%this.focusableItems.length;this.focusItem();break;case'Home':event.preventDefault();this.focusIndex=this.focusableItems.length?0:-1;this.focusItem();break;case'End':event.preventDefault();this.focusIndex=this.focusableItems.length-1;this.focusItem();break;}}}/**
|
|
831
|
+
* Closes the dropdown and resets focus.
|
|
832
|
+
*/closeDropdown(){this.isOpen=false;this.focusIndex=-1;this.dropdown.emit({expanded:false});}/**
|
|
833
|
+
* Sets focus on the currently selected item in the dropdown.
|
|
834
|
+
*/focusItem(){var _a;(_a=this.focusableItems[this.focusIndex])===null||_a===void 0?void 0:_a.focus();}/**
|
|
835
|
+
* Lifecycle method that runs after the component has been added to the DOM.
|
|
836
|
+
* Initializes focusable items within the dropdown.
|
|
837
|
+
*/componentDidLoad(){var _a;this.focusableItems=Array.from(((_a=this.dropdownContent)===null||_a===void 0?void 0:_a.querySelectorAll('a, button'))||[]);}handleHostInternalClick(ev){var _a;if(!this.isOpen||!this.panelEl){return;}const path=((_a=ev.composedPath)===null||_a===void 0?void 0:_a.call(ev))||[];const clickedInsidePanel=path.includes(this.panelEl);if(!clickedInsidePanel){return;}// Check if element has explicit close attribute
|
|
838
|
+
const hasCloseAttribute=path.some(t=>{var _a;const n=t;return (_a=n===null||n===void 0?void 0:n.closest)===null||_a===void 0?void 0:_a.call(n,'[data-dropdown-close]');});// If element has data-dropdown-close, always close regardless of autoClose setting
|
|
839
|
+
if(hasCloseAttribute){setTimeout(()=>this.closeDropdown(),0);return;}// If autoClose is disabled and no explicit close attribute, don't close
|
|
840
|
+
if(!this.autoClose){return;}// Auto-close mode: close unless clicked element opts out
|
|
841
|
+
const shouldNotClose=path.some(t=>{var _a;const n=t;return (_a=n===null||n===void 0?void 0:n.closest)===null||_a===void 0?void 0:_a.call(n,this.noCloseSelector);});if(!shouldNotClose){// Defer to allow the item's own click (e.g., router navigation) to run first
|
|
842
|
+
setTimeout(()=>this.closeDropdown(),0);}}/**
|
|
843
|
+
* Renders the dropdown component and displays its content when open.
|
|
844
|
+
* @returns {JSX.Element} The rendered dropdown component.
|
|
845
|
+
*/render(){return h("div",{key:'1ce4926a15ac67d653ef03de877e64be83f61b4e',class:"z-focus relative",ref:el=>this.dropdownContent=el},h("eds-button",{key:'8b45fc57c018dd620701b2b9db5403c30f88a6ed',ref:el=>this.buttonEl=el,label:this.label,"aria-label":this.ariaLabel,icon:this.icon,iconSmall:false,intent:this.intent,onClick:this.handleClick,"aria-expanded":this.isOpen.toString(),"aria-haspopup":"menu",size:"small",pill:true}),h("nav",{key:'35854d55ea595e35513348bf36145794b2c57007',ref:el=>this.panelEl=el,role:"menu",class:{'shadow-small bg-inverse border-softest z-10 z-on-top absolute top-full mt-4 flex flex-col gap-y-4 border-2 p-8':true,'left-4':this.dropdownPos==='left'&&this.dropdownOffset,'left-0':this.dropdownPos==='left'&&!this.dropdownOffset,'right-4':this.dropdownPos==='right'&&this.dropdownOffset,'right-0':this.dropdownPos==='right'&&!this.dropdownOffset},style:{display:this.isOpen?'block':'none'},"aria-label":"Dropdown","aria-hidden":!this.isOpen},h("slot",{key:'d6b153bb5968fa958be4d96d60cce774a9a0713c'})));}get host(){return getElement(this);}};EdsDropdown.style=EdsDropdownStyle0;const edsFooterCss=":host{display:block}p{margin:0}ul{list-style:none;padding:0;margin:0}.eds-footer-root{position:relative;padding:4rem 4rem 2rem;border-top:1px solid rgba(0, 0, 0, 0.06);font-family:var(--f-ui-02-fontFamily)}.eds-footer-root.theme-inverse{background-color:var(--brand-black, #000000);color:var(--grey-light, rgba(255, 255, 255, 0.7));border-top-color:rgba(255, 255, 255, 0.06)}.eds-footer-root.theme-default{background-color:var(--white, #ffffff);color:var(--grey-dark, #4b5563);border-top-color:rgba(0, 0, 0, 0.06)}.footer-container{max-width:1400px;margin:0 auto}.footer-grid{display:grid;grid-template-columns:2fr repeat(3, 1fr);gap:4rem;margin-bottom:4rem}.footer-brand-row{display:flex;align-items:center;gap:1rem}.footer-flag-link{display:inline-block;width:54px;flex-shrink:0;border-radius:4px}.footer-flag-link:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}.footer-flag-svg{height:auto;width:100%;display:block}.footer-funded{font-size:0.875rem;line-height:1.6;max-width:300px}.theme-inverse .footer-funded{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-funded{color:var(--grey-dark, #4b5563)}.footer-copyright{font-size:0.875rem;margin-top:0.75rem}.theme-inverse .footer-copyright{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-copyright{color:var(--grey-dark, #4b5563)}.footer-column-heading{font-size:0.8125rem;font-weight:500;margin:0 0 1.5rem 0}.theme-inverse .footer-column-heading{color:var(--white, #ffffff)}.theme-default .footer-column-heading{color:var(--brand-black, #111827)}.footer-column-list li{margin-bottom:0.75rem}.footer-column-list li:last-child{margin-bottom:0}.footer-link,.footer-text-item{font-size:0.875rem;text-decoration:none;transition:color 0.3s ease}.footer-link{cursor:pointer}.theme-inverse .footer-link,.theme-inverse .footer-text-item{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-link,.theme-default .footer-text-item{color:var(--grey-dark, #4b5563)}.footer-link:hover{color:var(--brand-green)}.footer-link:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px;border-radius:2px}.footer-social{padding-bottom:2rem;margin-bottom:2rem}.theme-inverse .footer-social{border-bottom:1px solid rgba(255, 255, 255, 0.06)}.theme-default .footer-social{border-bottom:1px solid rgba(0, 0, 0, 0.06)}.footer-back-to-top{position:absolute;top:1.5rem;right:2rem;opacity:0;transition:opacity 75ms cubic-bezier(0.4, 0, 0.2, 1)}@media (max-width: 1200px){.footer-grid{grid-template-columns:repeat(2, 1fr);gap:3rem}}@media (max-width: 768px){.eds-footer-root{padding:3rem 2rem 2rem}.footer-grid{grid-template-columns:1fr;gap:2rem;margin-bottom:2rem}.footer-funded{max-width:none}}";const EdsFooterStyle0=edsFooterCss;/**
|
|
846
|
+
* EBRAINS-wide default link columns. Used when a consumer doesn't pass
|
|
847
|
+
* the `columns` prop. URLs are absolute so the same footer renders
|
|
848
|
+
* correctly from any app's domain (handbook.ebrains.eu, forms.ebrains.eu,
|
|
849
|
+
* design.ebrains.eu, …) — the previous eds-docs design used relative
|
|
850
|
+
* paths which only worked from design.ebrains.eu itself.
|
|
851
|
+
*
|
|
852
|
+
* If EBRAINS adds / renames a canonical resource, change it here once
|
|
853
|
+
* and every consumer's footer updates on the next component release.
|
|
854
|
+
*/const DEFAULT_COLUMNS=[{heading:'Resources',links:[{label:'Documentation',href:'https://design.ebrains.eu/get-started/',external:true},{label:'Components',href:'https://design.ebrains.eu/ui-components/',external:true},{label:'Foundations',href:'https://design.ebrains.eu/foundations/',external:true},{label:'Analytics',href:'https://design.ebrains.eu/analytics/',external:true}]},{heading:'Community',links:[{label:'GitLab',href:'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/',external:true},{label:'Storybook',href:'https://storybook.design.ebrains.eu',external:true},{label:'Report Issues',href:'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/-/issues',external:true},{label:'Contribute',href:'https://design.ebrains.eu/get-started/contributing/',external:true}]},{heading:'Legal',links:[{label:'MIT License'},{label:'Cookie Preferences',action:'cookies'}]}];const EdsFooter=class{constructor(hostRef){registerInstance(this,hostRef);this.cookies=createEvent(this,"cookies",7);this.backToTop=()=>{window.scrollTo({top:0,behavior:'smooth'});};this.emitCookies=()=>{this.cookies.emit('toggle');};this.social=false;this.variant='inverse';this.enableScrollTop=false;this.fundedBy='EBRAINS is funded by the Horizon Europe Framework Programme.';this.rightsReserved=`${new Date().getFullYear()} EBRAINS. All rights reserved.`;this.cookiesPreferences='Cookie Preferences';this.enableCookiesSettings=false;this.backToTopAriaLabel='Back to Top';this.columns=undefined;this.resolvedColumns=DEFAULT_COLUMNS;}componentWillLoad(){this.resolvedColumns=this.parseColumns(this.columns);}onColumnsChange(value){this.resolvedColumns=this.parseColumns(value);}/**
|
|
855
|
+
* Resolve the `columns` prop to a usable array.
|
|
856
|
+
* - undefined / null → defaults
|
|
857
|
+
* - JSON-parseable str → parsed array
|
|
858
|
+
* - already an array → used as-is
|
|
859
|
+
* - anything else (malformed JSON, wrong shape) → defaults + console warning
|
|
860
|
+
*
|
|
861
|
+
* Defensive parsing so a typo in a Hugo template's attribute doesn't
|
|
862
|
+
* render an empty footer in production. Failure logs a warning but
|
|
863
|
+
* keeps the footer working with sensible defaults.
|
|
864
|
+
*/parseColumns(value){if(value===undefined||value===null||value==='')return DEFAULT_COLUMNS;if(Array.isArray(value))return value;if(typeof value==='string'){try{const parsed=JSON.parse(value);if(Array.isArray(parsed))return parsed;console.warn('eds-footer: `columns` JSON parsed but is not an array; using defaults');return DEFAULT_COLUMNS;}catch(e){console.warn('eds-footer: failed to parse `columns` JSON, using defaults',e);return DEFAULT_COLUMNS;}}return DEFAULT_COLUMNS;}componentDidLoad(){var _a;this.backBtn=(_a=this.el.shadowRoot)===null||_a===void 0?void 0:_a.querySelector('#toTop');}handleScroll(){if(!this.backBtn)return;const shouldShow=window.scrollY>100&&document.body.scrollHeight>window.innerHeight;this.backBtn.style.opacity=shouldShow?'1':'0';this.backBtn.style.pointerEvents=shouldShow?'auto':'none';const btn=this.backBtn.querySelector('eds-button');if(btn){btn.removeAttribute('aria-hidden');btn.setAttribute('tabindex',shouldShow?'0':'-1');}}/**
|
|
865
|
+
* Render one link inside a column.
|
|
866
|
+
* - `action: 'cookies'` → button-like anchor that fires the cookies event
|
|
867
|
+
* - `href` present → real anchor (target=_blank when `external`)
|
|
868
|
+
* - neither → plain text span (e.g. "MIT License")
|
|
869
|
+
*/renderLink(link,index){if(link.action==='cookies'){if(!this.enableCookiesSettings)return null;return h("li",{key:`cookies-${index}`},h("a",{href:"javascript:void(0)",class:"footer-link",onClick:this.emitCookies,role:"button"},this.cookiesPreferences||link.label));}if(link.href){const external=link.external===true;return h("li",{key:`${link.label}-${index}`},h("a",Object.assign({class:"footer-link",href:link.href},external?{target:'_blank',rel:'noopener noreferrer'}:{}),link.label));}return h("li",{key:`text-${index}`},h("span",{class:"footer-text-item"},link.label));}render(){const year=new Date().getFullYear();const rights=this.rightsReserved||`${year} EBRAINS. All rights reserved.`;const isInverse=this.variant==='inverse';// Class hooks driven by variant — the CSS file styles each
|
|
870
|
+
// selector independently rather than relying on prop-based
|
|
871
|
+
// inline styles, so theme tokens stay overridable from outside
|
|
872
|
+
// via the host's CSS custom properties.
|
|
873
|
+
const rootClasses=['eds-footer-root',isInverse?'theme-inverse':'theme-default'].join(' ');return h("footer",{key:'b09063376e3bd78845302473a96884bd473cea09',class:rootClasses},this.social?h("div",{class:"footer-social"},h("div",{class:"footer-container"},h("eds-social-networks",{variant:this.variant}))):null,h("div",{key:'3aeb8f496bb4c3c73da907ba9b9fbb72841be213',class:"footer-container"},h("div",{key:'e7e33ce7dee8079a9aff17d45963dfaff9576121',class:"footer-grid"},h("div",{key:'e6fc738e086774e114c5ceef1b82fea2e2840990',class:"footer-brand"},h("div",{key:'96f7030269174c122ffe0117897a79b00020dd29',class:"footer-brand-row"},h("a",{key:'5967c33efff435ceee2a45c21cae67749b91b9ba',target:"_blank",rel:"noopener noreferrer",class:"footer-flag-link",href:"https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-europe_en","aria-label":"Learn about Horizon Europe funding"},h("svg",{key:'3de7debe64d431152e47a4daefb7c9facf7bf951',class:"footer-flag-svg",width:"63",height:"50",viewBox:"0 0 640 480",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{key:'50e3f0c5ae41e3e7cc5689ddf01a8944a6c5d2eb',d:"M0 0h640v480H0V0z",fill:"#039"}),h("path",{key:'2c0f61e6de734d7214accd10cefd3a39e31f36a1',d:"M325.032 93.15l17.513-.398-14.401 9.972 5.789 16.53L320 108.639l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.396L320 76.374l5.032 16.775zm0 284.444l17.513-.398-14.401 9.972 5.789 16.53L320 393.083l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.397L320 360.818l5.032 16.776zm-147.25-158.983l5.029 16.761 17.511-.397-14.4 9.969 5.79 16.533-13.933-10.616-13.932 10.616 5.788-16.531-14.401-9.971 17.511.397 5.028-16.761.004-.015.001.003.001-.003.003.015zm77.885-105.334l17.511-.397-14.401 9.971 5.79 16.531-13.932-10.614-13.933 10.615 5.788-16.531-14.4-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.032 16.775zm-52.729 52.729l17.511-.398h.002l-14.402 9.971 5.79 16.531-13.933-10.615-13.932 10.615 5.789-16.532-14.4-9.97 17.51.397 5.033-16.776 5.032 16.777zm-5.001 125.803l5.027 16.759 17.513-.397-14.401 9.971 5.79 16.531-.005-.005.003.006-13.932-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.396 5.029-16.759.004-.016v.003l.002-.003.003.016zm51.445 47.71l5.027 16.76 17.513-.397-14.401 9.97 5.791 16.532-.004-.004.002.004-13.933-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.397 5.029-16.76.004-.016v.003l.002-.003.003.016zm217.873-104.147l17.511-.397-14.401 9.969 5.79 16.533-13.934-10.616-13.931 10.616 5.789-16.533-14.399-9.969 17.509.397 5.034-16.776 5.032 16.776zm-63.958-95.997l-5.786-16.522 14.401-9.972-17.511.398-5.033-16.778-5.034 16.777-17.51-.398 14.4 9.972-5.789 16.53 13.932-10.614 13.934 10.614-.004-.007zm38.797 42.122l13.934 10.614-.004-.007-5.787-16.524 14.401-9.971-17.51.399-5.033-16.778-5.033 16.777-17.51-.398h-.001l14.399 9.972-5.787 16.529 13.931-10.613zm5.007 127.071l17.51-.397-14.4 9.971 5.79 16.531-13.933-10.614-13.932 10.615 5.788-16.531-14.401-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.033 16.775zm-51.446 47.711l17.511-.397-14.4 9.97 5.79 16.532-13.933-10.615-13.933 10.615 5.789-16.531-14.401-9.971h.002l17.51.397 5.033-16.776 5.032 16.776z",fill:"#FC0"}))),h("p",{key:'9ff8e10db0e213754bfc73bcce1b3dd36bc62e30',class:"footer-funded"},this.fundedBy)),h("p",{key:'a24c4fbfe48c4c3c8d076f24da9c84b739a982d8',class:"footer-copyright"},"\u00A9 ",rights)),this.resolvedColumns.map((col,ci)=>h("div",{class:"footer-column",key:`col-${ci}`},h("h4",{class:"footer-column-heading"},col.heading),h("ul",{class:"footer-column-list"},(col.links||[]).map((link,li)=>this.renderLink(link,li))))))),this.enableScrollTop?h("div",{id:"toTop",class:"footer-back-to-top"},h("eds-button",{id:"backToTop","aria-label":this.backToTopAriaLabel,intent:isInverse?'ghostInverse':'ghost',size:"large",icon:"chevron-up",onClick:this.backToTop,tabindex:"-1"})):null);}get el(){return getElement(this);}static get watchers(){return {"columns":["onColumnsChange"]};}};EdsFooter.style=EdsFooterStyle0;// utils/validators.ts
|
|
874
|
+
function validateField(name,value,type,required,maxLength,min,max){const errors=[];if(required&&!value){//errors.push(`${name} is required.`);
|
|
875
|
+
const shortName=name.length>30?`${name.slice(0,27)}…`:name;errors.push(`“${shortName}” is required.`);}if(type==='number'){const parsed=typeof value==='number'?value:parseFloat(value);if(isNaN(parsed)){errors.push(`${name} must be a valid number.`);}else {if(typeof min==='number'&&parsed<min){errors.push(`${name} must be greater than or equal to ${min}.`);}if(typeof max==='number'&&parsed>max){errors.push(`${name} must be less than or equal to ${max}.`);}}}if(maxLength&&typeof value==='string'&&value.length>maxLength){errors.push(`${name} must be at most ${maxLength} characters.`);}// Email validation
|
|
876
|
+
if(type==='email'&&value&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.toString())){errors.push('Invalid email format.');}// URL validation
|
|
877
|
+
if(type==='url'&&value){try{new URL(value.toString());}catch(_a){errors.push('Invalid URL format.');}}// Tel validation - must contain at least one digit and only valid phone characters
|
|
878
|
+
if(type==='tel'&&value){const telValue=value.toString();const hasDigit=/\d/.test(telValue);const onlyValidChars=/^[\d\s\-\+\(\)\.]+$/.test(telValue);if(!hasDigit){errors.push('Phone number must contain at least one digit.');}else if(!onlyValidChars){errors.push('Phone number contains invalid characters. Use only digits, spaces, +, -, (, ), or .');}}return errors;}function validateFieldGroup(name,required,formEl){// Find all eds-input-field components that contain inputs with the given name.
|
|
879
|
+
const groupFields=Array.from(formEl.querySelectorAll('eds-input-field')).filter(edsField=>{var _a,_b;return ((_b=(_a=edsField.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll(`input[name="${name}"]`))===null||_b===void 0?void 0:_b.length)>0;});// Collect all input elements with the matching name inside those components.
|
|
880
|
+
const groupElements=groupFields.flatMap(edsField=>{var _a;return Array.from(((_a=edsField.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll(`input[name="${name}"]`))||[]);});// Check if at least one input is checked.
|
|
881
|
+
const isChecked=groupElements.some(el=>el.checked);const errors=[];if(required&&!isChecked){errors.push(`At least one option in ${name} is required.`);}return errors;}function validateSingleBox(name,required,formEl){var _a;const errors=[];// Find the eds-input-field component containing the input with the given name.
|
|
882
|
+
const edsField=Array.from(formEl.querySelectorAll('eds-input-field')).find(field=>{var _a;return (_a=field.shadowRoot)===null||_a===void 0?void 0:_a.querySelector(`[name="${name}"]`);});// If no such field is found and it's required, return an error.
|
|
883
|
+
if(!edsField){if(required){errors.push(`${name} is required.`);}return errors;}// Query within the component's shadow root.
|
|
884
|
+
const inputEl=(_a=edsField.shadowRoot)===null||_a===void 0?void 0:_a.querySelector(`[name="${name}"]`);if(required&&inputEl&&!inputEl.checked){errors.push(`${name} is required.`);}return errors;}/**
|
|
885
|
+
* Finds the first input element for a given field name inside eds-input-field components.
|
|
886
|
+
*/function findFieldElement(formEl,name){const elements=Array.from(formEl.querySelectorAll('eds-input-field'));for(const element of elements){if(element.shadowRoot){const input=element.shadowRoot.querySelector(`[name="${name}"]`);if(input){return input;}}}return null;}function findRatingElement(formEl){const elements=Array.from(formEl.querySelectorAll('eds-rating'));for(const element of elements){return element;}return null;}function findNpsElement(formEl){const elements=Array.from(formEl.querySelectorAll('eds-nps'));for(const element of elements){return element;}return null;}/**
|
|
887
|
+
* Validates all fields and returns an object containing the errors and a flag indicating any errors.
|
|
888
|
+
*/function validateFormFields(parsedFields,formEl,values,// eslint-disable-next-line
|
|
889
|
+
isFieldVisible){const errors={};let hasError=false;parsedFields.forEach(field=>{// Only validate fields that are visible.
|
|
890
|
+
if(!isFieldVisible(field,values)){// If a field is hidden, clear its error.
|
|
891
|
+
delete errors[field.name];return;}// 'content' is a presentational text block — no input, never validated.
|
|
892
|
+
if(field.type!=='hidden'&&field.type!=='content'){if((field.type==='checkbox'||field.type==='radio')&&!field.options){// Single checkbox or radio without multiple options
|
|
893
|
+
const fieldErrors=validateSingleBox(field.name,field.required,formEl);if(fieldErrors.length>0){errors[field.name]=fieldErrors;hasError=true;}}else if(field.options&&(field.type==='checkbox'||field.type==='radio')){// Checkbox or radio group with options
|
|
894
|
+
const fieldErrors=validateFieldGroup(field.name,field.required,formEl);if(fieldErrors.length>0){errors[field.name]=fieldErrors;hasError=true;}}else if(field.type==='rating'){const inputEl=findRatingElement(formEl);if(inputEl){const raw=inputEl.getAttribute('selected-rating');const value=raw!==null?parseInt(raw,10):0;const fieldErrors=validateField(field.name,value,field.type,field.required);if(fieldErrors.length>0){errors[field.name]=fieldErrors;hasError=true;}}}// NPS type
|
|
895
|
+
else if(field.type==='nps'){const npsEl=findNpsElement(formEl);if(npsEl){const raw=npsEl.getAttribute('selected-value');const value=raw!==null?parseInt(raw,10):null;if(value===null||isNaN(value)){// eslint-disable-next-line
|
|
896
|
+
if(field.required){errors[field.name]=['This field is required.'];hasError=true;}}}else if(field.required){// No NPS component found but required
|
|
897
|
+
errors[field.name]=['This field is required.'];hasError=true;}return;}else {// For all other types, find the first matching element.
|
|
898
|
+
const inputEl=findFieldElement(formEl,field.name);if(inputEl){const value=inputEl.value;const fieldErrors=validateField(field.name,value,field.type,field.required,field.maxlength,field.min,field.max);if(fieldErrors.length>0){errors[field.name]=fieldErrors;hasError=true;}}}}});return {errors,hasError};}/**
|
|
899
|
+
* safeInlineFormat — the single, audited text→HTML formatter used everywhere a
|
|
900
|
+
* form renders author-supplied text via innerHTML (form/step description, Text
|
|
901
|
+
* Blocks, and field messages).
|
|
902
|
+
*
|
|
903
|
+
* SECURITY: escape-first, then a tiny whitelisted inline subset. Because all of
|
|
904
|
+
* &, <, >, " are turned into entities BEFORE any markup is generated, author
|
|
905
|
+
* text can never inject a tag or attribute — the only HTML produced is the
|
|
906
|
+
* <strong>, <a> and <br> emitted here. Links are restricted to http/https/mailto
|
|
907
|
+
* (others fall back to plain text), URLs cannot contain whitespace or a quote,
|
|
908
|
+
* and external links get rel="noopener noreferrer".
|
|
909
|
+
*
|
|
910
|
+
* DO NOT reorder: escaping MUST happen before tag generation, or the guarantee
|
|
911
|
+
* breaks. Keep this in sync with the JS mirror in
|
|
912
|
+
* apps/live/forms-app/src/utils/descriptionFormat.ts.
|
|
913
|
+
*
|
|
914
|
+
* **bold** → <strong>bold</strong>
|
|
915
|
+
* [label](url) → <a href="url" …>label</a> (http/https/mailto only)
|
|
916
|
+
* newline → <br>
|
|
917
|
+
*/function safeInlineFormat(text){if(!text){return '';}let s=String(text).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');// bold
|
|
918
|
+
s=s.replace(/\*\*([^*]+)\*\*/g,'<strong>$1</strong>');// links — safe schemes only; otherwise drop to the plain label
|
|
919
|
+
s=s.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(_m,label,url)=>/^(https?:|mailto:)/i.test(url)?`<a href="${url}" target="_blank" rel="noopener noreferrer" class="eds-desc-link">${label}</a>`:label);// newlines → line breaks
|
|
920
|
+
s=s.replace(/\n/g,'<br>');return s;}/**
|
|
921
|
+
* Validates a field based on its type and returns an array of error messages.
|
|
922
|
+
* @param field - The field configuration object.
|
|
923
|
+
* @param value - The input value (if applicable).
|
|
924
|
+
* @param formEl - The form element used for DOM queries.
|
|
925
|
+
*/function validateInputField(field,value,formEl){if(field.type==='checkbox'||field.type==='radio'){if(field.options){return validateFieldGroup(field.name,field.required,formEl);}return validateSingleBox(field.name,field.required,formEl);}return validateField(field.name,value,field.type,field.required,field.maxlength,field.min,field.max);}/**
|
|
926
|
+
* Updates state values based on draft data and, after a delay, updates the corresponding DOM inputs.
|
|
927
|
+
*/function getFormInitData({initData,parsedFields,currentValues//formEl,
|
|
928
|
+
//isFieldVisible
|
|
929
|
+
}){// Pass 1: Update state for all fields.
|
|
930
|
+
const updatedValues=Object.assign({},currentValues);parsedFields.forEach(field=>{const value=initData[field.name];if(value!==undefined){updatedValues[field.name]=value;}});return {updatedValues};}const edsFormCss=".container{width:calc(var(--container-width, 100%) - (2 * var(--breakout-container-outer-gutter, var(--container-outer-gutter, var(--outer-gutter, 0)))));margin-right:auto;margin-left:auto}.container>*{--container-outer-gutter:0;--breakout-container-outer-gutter:0}.flex{display:flex}.flex-col{flex-direction:column}.f-body-01{font-family:var(--f-body-01-fontFamily);font-weight:var(--f-body-01-fontWeight);font-size:var(--f-body-01-fontSize);line-height:var(--f-body-01-lineHeight);letter-spacing:var(--f-body-01-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-body-01 b,.f-body-01 strong{font-weight:var(--f-body-01---bold-weight, bold)}.f-body-02 b,.f-body-02 strong{font-weight:var(--f-body-02---bold-weight, bold)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:600;font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:600;font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing);overflow:visible}.text-light{color:var(--grey-dark)}.rounded-xs{border-radius:4px}.rounded-sm{border-radius:8px}.border-softer{border-color:rgba(0, 0, 0, .1)}.border-2{border-width:2px}.border-t-2{border-top-width:2px}.mt-20{margin-top:1.25rem}.mt-32{margin-top:2rem}.mt-64{margin-top:4rem}.mb-32{margin-bottom:2rem}.pt-28{padding-top:1.75rem}.pt-32{padding-top:2rem}.pt-64{padding-top:4rem}.pl-8{padding-left:0.5rem}.pl-16{padding-left:1rem}.border-l-2{border-left-width:2px}.gap-y-8{row-gap:0.5rem}.gap-y-16{row-gap:1rem}.gap-y-20{row-gap:1.25rem}.gap-y-24{row-gap:1.5rem}.border-group{border-left:1px solid var(--soft-color, #ddd);padding-left:1rem}.bg-inverse{background-color:var(--white)}.form-brand{box-shadow:0 2px 12px rgba(0, 0, 0, 0.08);border-left:4px solid var(--brand-green);animation:fadeInUp 0.6s ease}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.effect-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.shadow-hover{--tw-shadow:0px 0px 16px rgba(0, 0, 0, 0.2);--tw-shadow-colored:0px 0px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.cursor-pointer{cursor:pointer}.effect-focus-within{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.effect-focus-within:focus-within{outline-style:solid}.relative{position:relative}.rounded-sm{border-radius:8px}.rounded-lg{border-radius:16px}.px-16{padding-left:1rem;padding-right:1rem}.pb-4{padding-bottom:0.25rem}.pb-16{padding-bottom:1rem}.p-32{padding:2rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.w-full{width:100%}.justify-between{justify-content:space-between}.items-center{align-items:center}@media (min-width: 750px){.md\\:flex-row-reverse{flex-direction:row-reverse}.md\\:justify-between{justify-content:space-between}.md\\:gap-y-0{row-gap:0}.md\\:w-auto{width:auto}.md\\:mt-64{margin-top:4rem}.md\\:pt-64{padding-top:4rem}}.eds-desc-link{position:relative;display:inline-block;color:var(--brand-black);text-decoration:none}.eds-desc-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--brand-green);transition:width 0.3s ease}.eds-desc-link:hover::after{width:100%}.eds-desc-link:focus-visible::after{width:0}.eds-content-block{line-height:1.5;color:var(--brand-black, #07140d)}.eds-content-block strong{font-weight:600}.eds-content-block .eds-desc-link{font-weight:600}";const EdsFormStyle0=edsFormCss;const EdsForm=class{constructor(hostRef){registerInstance(this,hostRef);this.form=createEvent(this,"form",7);this.name='eds-form';this.title='Form Title';this.description='Form Description';this.setFormUrl=true;this.formBtn=true;this.formBtnLabel='Submit';this.buttonIntent='primary';this.clearBtn=false;this.clearBtnLabel='Clear';this.errorMessage='Some fields in your form are incorrect.';this.fields=[];this.groups=[];this.initData={};this.formStyle='default';this.values={};this.isSubmitting=false;this.hasError=false;this.errors={};this.parsedFields=[];this.parsedGroups=[];}async setData(newData){this.populateFormWithInitData(newData);}componentWillLoad(){this.parseFields(this.fields);this.parseGroups(this.groups);// Emit context for each eds-link element after the component is fully loaded
|
|
931
|
+
const links=this.el.querySelectorAll('eds-button');links.forEach(link=>{this.emitContext(link);});}componentDidLoad(){if(this.shouldFormProcessInitData){this.populateFormWithInitData(this.initData);}}get shouldFormProcessInitData(){return !!this.initData;}parseFields(newValue){this.parsedFields=parseData(newValue);}parseGroups(newVal){this.parsedGroups=parseData(newVal);}emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:null}});linkElement.dispatchEvent(event);}isFieldVisible(field){if(!field.condition){return true;}const actual=this.values[field.condition.field];const expected=field.condition.value;// Handle undefined/null/empty
|
|
932
|
+
if(actual==null){return expected==null||expected==='';}// Handle arrays (multi-select, checkboxes)
|
|
933
|
+
if(Array.isArray(actual)){return actual.some(val=>this.normalizeValue(val)===this.normalizeValue(expected));}// Handle comma-separated strings (from checkboxes stored as "val1,val2")
|
|
934
|
+
if(typeof actual==='string'&&actual.includes(',')){const values=actual.split(',').map(v=>v.trim());return values.some(val=>this.normalizeValue(val)===this.normalizeValue(expected));}// Standard comparison with normalization
|
|
935
|
+
return this.normalizeValue(actual)===this.normalizeValue(expected);}normalizeValue(value){if(value==null){return '';}if(typeof value==='boolean'){return value?'true':'false';}if(typeof value==='number'){return String(value);}if(typeof value==='string'){return value.trim().toLowerCase();}return String(value).trim().toLowerCase();}validateForm(){const{errors,hasError}=validateFormFields(this.parsedFields,this.formEl,this.values,(field,_values)=>// Use a temporary object with the condition to reuse isFieldVisible logic
|
|
936
|
+
this.isFieldVisible(field));this.errors=errors;this.hasError=hasError;}populateFormWithInitData(initData){const{updatedValues}=getFormInitData({initData,parsedFields:this.parsedFields,currentValues:this.values,formEl:this.formEl,isFieldVisible:(field,values)=>{if(!field.condition){return true;}const actual=values[field.condition.field];const expected=field.condition.value;// Handle undefined/null/empty
|
|
937
|
+
if(actual==null){return expected==null||expected==='';}// Handle arrays
|
|
938
|
+
if(Array.isArray(actual)){return actual.some(val=>this.normalizeValue(val)===this.normalizeValue(expected));}// Handle comma-separated strings
|
|
939
|
+
if(typeof actual==='string'&&actual.includes(',')){const values=actual.split(',').map(v=>v.trim());return values.some(val=>this.normalizeValue(val)===this.normalizeValue(expected));}return this.normalizeValue(actual)===this.normalizeValue(expected);}});this.values=updatedValues;}getFormData(){const formData=new FormData();// Add the form name
|
|
940
|
+
formData.append('form_name',this.name);// Add the form URL
|
|
941
|
+
if(this.setFormUrl&&typeof window!=='undefined'){formData.set('form_url',window.location.href);}// Get all input elements within `eds-input-field`
|
|
942
|
+
const elements=Array.from(this.formEl.querySelectorAll('eds-input-field'));elements.forEach(element=>{if(element.shadowRoot){// Get input/textarea/select from the shadow DOM
|
|
943
|
+
const input=element.shadowRoot.querySelector('input, textarea, select');if(input&&input.name){if(input.type==='checkbox'||input.type==='radio'){// Handle checkboxes and radio buttons
|
|
944
|
+
const checkboxes=Array.from(element.shadowRoot.querySelectorAll(`input[name="${input.name}"]:checked`));const values=checkboxes.map(checkbox=>checkbox.value);formData.append(input.name,values.join(','));// Join multiple values with a comma
|
|
945
|
+
}else if(input.type==='file'){// Handle file uploads.
|
|
946
|
+
const fileInput=input;if(fileInput.files&&fileInput.files.length>0){// If multiple files are allowed, you can append them all.
|
|
947
|
+
Array.from(fileInput.files).forEach(file=>{// You can either append each file under the same name (if your backend expects an array)
|
|
948
|
+
// or you can give them unique names. Here we use the same name.
|
|
949
|
+
formData.append(fileInput.name,file);});}}else {// Handle other input types
|
|
950
|
+
formData.append(input.name,input.value);}}}});return formData;}makeFormData(){var _a;const formData=new FormData();// Add the form name
|
|
951
|
+
formData.append('form_name',this.name);// Add the form URL
|
|
952
|
+
if(this.setFormUrl&&typeof window!=='undefined'){formData.set('form_url',window.location.href);}// Group fields by name so we can drop values for fields hidden by a condition.
|
|
953
|
+
// A name may be reused across mutually-exclusive conditional variants (e.g. a
|
|
954
|
+
// `web_app_url` shown for service_type=web_app AND another for =platform), so a
|
|
955
|
+
// value is dropped ONLY when EVERY field with that name is hidden — if any
|
|
956
|
+
// variant is visible, its value is kept.
|
|
957
|
+
const fieldsByName={};this.parsedFields.forEach(f=>{(fieldsByName[f.name]=fieldsByName[f.name]||[]).push(f);});Object.keys(this.values).forEach(key=>{const fields=fieldsByName[key];if(fields&&fields.length&&!fields.some(f=>this.isFieldVisible(f))){return;// all fields with this name are conditionally hidden — skip
|
|
958
|
+
}const value=this.values[key];// Handle File arrays (from file inputs)
|
|
959
|
+
if(Array.isArray(value)){// Check if it's a File array (could be empty or have files)
|
|
960
|
+
if(value.length===0||value[0]instanceof File){// Append each file, or skip if empty array
|
|
961
|
+
value.forEach(file=>formData.append(key,file));return;}}// Handle single File
|
|
962
|
+
if(value instanceof File){formData.append(key,value);}// Handle all other values (string, number, boolean, etc.)
|
|
963
|
+
else if(value!==undefined&&value!==null){formData.append(key,value);}});// 2) Only do the (slower) DOM scan if we actually have file fields in the config
|
|
964
|
+
const hasFileField=(_a=this.parsedFields)===null||_a===void 0?void 0:_a.some(f=>(f===null||f===void 0?void 0:f.type)==='file');if(hasFileField&&this.formEl){// Find file inputs inside each eds-input-field's shadowRoot
|
|
965
|
+
const hosts=Array.from(this.formEl.querySelectorAll('eds-input-field'));hosts.forEach(host=>{const root=host.shadowRoot;if(!root){return;}const fileInputs=Array.from(root.querySelectorAll('input[type="file"][name]'));fileInputs.forEach(fi=>{const name=fi.name;const files=fi.files?Array.from(fi.files):[];if(files.length>0){// Append each file under the same field name (backend can use request.files.getlist(name))
|
|
966
|
+
files.forEach(file=>formData.append(name,file));}});});// (Optional) mark that this payload includes files (handy in logs / policies)
|
|
967
|
+
// formData.set('_has_files', '1');
|
|
968
|
+
}/*formData.forEach((value, key) => {
|
|
969
|
+
if (value instanceof File) {
|
|
970
|
+
console.log(`File field: ${key}, File name: ${value.name}, File size: ${value.size}`);
|
|
971
|
+
} else {
|
|
972
|
+
console.log(`Field: ${key}, Value: ${value}`);
|
|
973
|
+
}
|
|
974
|
+
});*/return formData;}handleChange(e,field){let newValue;// Check if it's a CustomEvent (from eds-input-field or eds-kg-web-services-select)
|
|
975
|
+
if(e instanceof CustomEvent&&e.detail&&'value'in e.detail){newValue=e.detail.value;}else {// Handle native events
|
|
976
|
+
const target=e.target;newValue=target.value;if(target.type==='checkbox'){// Get the current comma separated string or default to an empty string.
|
|
977
|
+
const currentStr=this.values[field.name]||'';// Convert the string into an array. If the string is empty, we get an empty array.
|
|
978
|
+
let valuesArray=currentStr?currentStr.split(','):[];if(target.checked){// Only add if it's not already in the array.
|
|
979
|
+
if(!valuesArray.includes(target.value)){valuesArray.push(target.value);}}else {// Remove the value from the array if the checkbox is unchecked.
|
|
980
|
+
valuesArray=valuesArray.filter(item=>item!==target.value);}newValue=valuesArray.join(',');}else if(target.type==='radio'){if(!target.checked){return;}// Only react to the selected radio
|
|
981
|
+
newValue=target.value;}}this.values=Object.assign(Object.assign({},this.values),{[field.name]:newValue});// If it's the password field, return here for no event emission
|
|
982
|
+
if(field.name==='password'){return;}// Emit the updated form state.
|
|
983
|
+
this.form.emit({event:'change',field:field.name,value:newValue,message:`${field.name} updated`//data: this.makeFormData()
|
|
984
|
+
});}handleInput(e,field){let newValue;// Check if it's a CustomEvent (from eds-input-field or eds-kg-web-services-select)
|
|
985
|
+
if(e instanceof CustomEvent&&e.detail&&'value'in e.detail){newValue=e.detail.value;}else {// Handle native events
|
|
986
|
+
const target=e.target;if(target.type==='radio'&&!target.checked){return;}newValue=target.value;}// Update the field's value in state.
|
|
987
|
+
//this.values = { ...this.values, [field.name]: newValue };
|
|
988
|
+
// Create a copy of the current errors.
|
|
989
|
+
const newErrors=Object.assign({},this.errors);// Use the utility to validate the field.
|
|
990
|
+
const fieldErrors=validateInputField(field,newValue,this.formEl);if(fieldErrors.length>0){newErrors[field.name]=fieldErrors;}else {delete newErrors[field.name];}// Update the errors state and the hasError flag.
|
|
991
|
+
this.errors=newErrors;this.hasError=Object.keys(newErrors).length>0;// Emit the updated form state.
|
|
992
|
+
this.form.emit({event:'input',field:field.name,value:newValue,message:`${field.name} updated`//data: this.makeFormData()
|
|
993
|
+
});}handleRating(e,field){const rating=e.detail;this.values=Object.assign(Object.assign({},this.values),{[field.name]:rating});const newErrors=Object.assign({},this.errors);if(field.required&&rating===0){newErrors[field.name]=['This field is required'];}else {delete newErrors[field.name];}this.errors=newErrors;this.hasError=Object.keys(newErrors).length>0;this.form.emit({event:'change',field:field.name,value:rating,message:`${field.name} updated`});}handleNPS(e,field){const score=e.detail;this.values=Object.assign(Object.assign({},this.values),{[field.name]:score});const newErrors=Object.assign({},this.errors);if(field.required&&score===null){newErrors[field.name]=['This field is required'];}else {delete newErrors[field.name];}this.errors=newErrors;this.hasError=Object.keys(newErrors).length>0;this.form.emit({event:'change',field:field.name,value:score,message:`${field.name} updated`});}handleSubmit(e){var _a,_b;e===null||e===void 0?void 0:e.preventDefault();if(this.isSubmitting){return;}this.isSubmitting=true;this.validateForm();if(this.hasError){this.isSubmitting=false;this.form.emit({event:'submit',validated:false,success:false,message:this.errorMessage//data: this.makeFormData()
|
|
994
|
+
});// Emit form status submit false validation error
|
|
995
|
+
sendAnalytics({category:'ui-component',parentContext:null,tag:this.el.tagName.toLowerCase(),name:`${(_a=this.formBtnLabel)===null||_a===void 0?void 0:_a.toLowerCase()}/non-validated`||'',action:'click'});return;}// Log each entry in FormData to see file details
|
|
996
|
+
/*formData.forEach((value, key) => {
|
|
997
|
+
if (value instanceof File) {
|
|
998
|
+
console.log(`File field: ${key}, File name: ${value.name}, File size: ${value.size}`);
|
|
999
|
+
} else {
|
|
1000
|
+
console.log(`Field: ${key}, Value: ${value}`);
|
|
1001
|
+
}
|
|
1002
|
+
});*/this.form.emit({event:'submit',success:true,validated:true,message:'Form data validated successfully'//data: this.getFormData()
|
|
1003
|
+
});sendAnalytics({category:'ui-component',parentContext:null,tag:this.el.tagName.toLowerCase(),name:`${(_b=this.formBtnLabel)===null||_b===void 0?void 0:_b.toLowerCase()}/validated`||'',action:'click'});// Reset form states
|
|
1004
|
+
this.errors={};this.formEl.reset();this.isSubmitting=false;return;}handleClear(e){var _a,_b;e===null||e===void 0?void 0:e.preventDefault();// Reset form element
|
|
1005
|
+
this.formEl.reset();// Clear values state - create new object reference to trigger re-render
|
|
1006
|
+
// This will automatically reset rating and nps components through prop changes
|
|
1007
|
+
this.values=Object.assign({});// Clear errors
|
|
1008
|
+
this.errors={};this.hasError=false;// Query all input fields in the shadow DOM and manually reset them
|
|
1009
|
+
// This is needed because shadow DOM isolates the fields from form.reset()
|
|
1010
|
+
const inputFields=(_a=this.el.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll('eds-input-field');inputFields===null||inputFields===void 0?void 0:inputFields.forEach(field=>{var _a;if(field){const inputEl=(_a=field.shadowRoot)===null||_a===void 0?void 0:_a.querySelector('input, select, textarea');if(inputEl){const inputType=inputEl.type;// Handle checkboxes and radios - they need 'checked' property
|
|
1011
|
+
if(inputType==='checkbox'||inputType==='radio'){inputEl.checked=false;}else {// Handle text, select, textarea, date, number, email, etc.
|
|
1012
|
+
inputEl.value='';}}}});// Emit event
|
|
1013
|
+
this.form.emit({event:'change',message:'Form cleared',success:true});sendAnalytics({category:'ui-component',parentContext:null,tag:this.el.tagName.toLowerCase(),name:`${(_b=this.clearBtnLabel)===null||_b===void 0?void 0:_b.toLowerCase()}/clear`||'',action:'click'});}get groupedFields(){const map={};// initialize buckets for each declared group
|
|
1014
|
+
this.parsedGroups.forEach(g=>map[g.id]=[]);// always keep an ungrouped bucket
|
|
1015
|
+
map['__ungrouped']=[];// only bucket fields that are currently visible
|
|
1016
|
+
this.parsedFields.forEach(f=>{if(!this.isFieldVisible(f)){return;}const gid=f.groupId||'__ungrouped';if(!map[gid]){map[gid]=[];}map[gid].push(f);});return map;}renderField(field){var _a,_b,_c,_d,_e,_f,_g;if(!this.isFieldVisible(field)){return null;}// 0) Presentational "Text Block" — static formatted text, NOT an input.
|
|
1017
|
+
// It has no value, is never added to the submission (makeFormData only
|
|
1018
|
+
// iterates this.values) and is never validated (see formValidators). The
|
|
1019
|
+
// text runs through formatDescription, which escapes HTML first, so author
|
|
1020
|
+
// content can never inject markup — only the **bold**/[link]/newline subset.
|
|
1021
|
+
if(field.type==='content'){const raw=(_b=(_a=field.content)!==null&&_a!==void 0?_a:field.label)!==null&&_b!==void 0?_b:'';return h("div",{class:"eds-content-block f-body-02 text-default",key:field.name,innerHTML:this.formatDescription(raw)});}// 1) Handle rating
|
|
1022
|
+
if(field.type==='rating'){// pull the current value (or zero)
|
|
1023
|
+
const val=this.values[field.name]||0;return h("div",{class:"form-group rating-field",key:field.name},h("div",{class:"flex justify-between"},field&&h("eds-input-label",{name:`rating-${field.name}`,label:field.label,disabled:field.disabled,required:field.required})),h("eds-rating",{id:`rating-${field.name}`,"rating-type":field.ratingType,"rating-count":field.ratingCount,"selected-rating":val,onRating:e=>this.handleRating(e,field)}),h("div",{class:"mt-6"},h("eds-input-footer",{id:`${field.name}-footer`,name:field.name,message:field.message,"error-message":(_c=this.errors[field.name])===null||_c===void 0?void 0:_c.join('<br/>'),error:!!this.errors[field.name],link:field.link})));}else if(field.type==='nps'){// pull the current value (or null)
|
|
1024
|
+
const val=this.values[field.name]!==undefined?this.values[field.name]:null;return h("div",{class:"form-group nps-field",key:field.name},h("div",{class:"flex justify-between"},field&&h("eds-input-label",{name:`nps-${field.name}`,label:field.question,disabled:field.disabled,required:field.required})),h("eds-nps",{id:`nps-${field.name}`,"right-label":field.rightLabel,"left-label":field.leftLabel,"selected-value":val,onNps:e=>this.handleNPS(e,field)}),h("div",{class:"mt-6"},h("eds-input-footer",{id:`${field.name}-footer`,name:field.name,"error-message":(_d=this.errors[field.name])===null||_d===void 0?void 0:_d.join('<br/>'),error:!!this.errors[field.name]})));}else if(field.type==='search-select'){return h("eds-search-select",{key:field.name,name:field.name,label:field.label,source:field.source,options:field.options,multiple:!!field.multiple,"api-base":field.apiBase||'/api/v1',placeholder:field.placeholder,required:field.required,disabled:field.disabled,hint:field.hint,message:field.message,error:!!this.errors[field.name],"error-message":(_e=this.errors[field.name])===null||_e===void 0?void 0:_e.join('<br/>'),value:this.values[field.name],onEdsinput:e=>this.handleInput(e,field),onEdschange:e=>this.handleChange(e,field)});}else if(field.type==='kg-web-service'){return h("eds-kg-web-services-select",{key:field.name,name:field.name,label:field.label,"api-endpoint":field.apiEndpoint||'/api/v1/kg/web-services/cached',placeholder:field.placeholder,required:field.required,disabled:field.disabled,hint:field.hint,message:field.message,error:!!this.errors[field.name],"error-message":(_f=this.errors[field.name])===null||_f===void 0?void 0:_f.join('<br/>'),value:this.values[field.name],size:field.size||500,onEdsinput:e=>this.handleInput(e,field),onEdschange:e=>this.handleChange(e,field)});}return h("eds-input-field",{key:field.name,name:field.name,label:field.label,placeholder:field.placeholder,type:field.type,value:this.values[field.name],required:field.required,hint:field.hint,message:field.message,link:field.link,error:!!this.errors[field.name],errorMessage:(_g=this.errors[field.name])===null||_g===void 0?void 0:_g.join('<br/>'),options:field.options,onInput:e=>this.handleInput(e,field),onChangeNative:e=>this.handleChange(e,field)});}async getData(){return this.makeFormData();}/**
|
|
1025
|
+
* Render the form/step description with a small, safe subset of inline
|
|
1026
|
+
* formatting so authors can add links and emphasis:
|
|
1027
|
+
* **bold** → <strong>
|
|
1028
|
+
* [label](url) → <a> (only http/https/mailto; others render as text)
|
|
1029
|
+
* blank line / \n → paragraph / line break
|
|
1030
|
+
* HTML is escaped FIRST, so author text can never inject markup — only the
|
|
1031
|
+
* whitelisted patterns above produce tags.
|
|
1032
|
+
*/formatDescription(text){return safeInlineFormat(text);}render(){const hiddenFields=this.parsedFields.filter(field=>field.type==='hidden');//const otherFields = this.parsedFields.filter((field) => field.type !== 'hidden');
|
|
1033
|
+
const buckets=this.groupedFields;// build the styling classes based on formStyle prop
|
|
1034
|
+
let styleClasses='';if(this.formStyle==='default'){styleClasses='bg-inverse border-softer relative rounded-xs border-2 p-32';}else if(this.formStyle==='shadow'){styleClasses='bg-inverse effect-shadow shadow-hover border-softer relative rounded-xs border-2 p-32';}else if(this.formStyle==='brand'){styleClasses='bg-inverse form-brand relative rounded-xs p-32';}return h("form",{key:'5717a276eb4bcb1b40bb6c3a3d68e2372ccf0b37',class:styleClasses,ref:el=>this.formEl=el,autocomplete:"on",onSubmit:this.handleSubmit},h("div",{key:'8e9fec59b6cafccabbb67381a12541f12201cc48',class:"flex flex-col gap-y-20 overflow-visible"},this.title&&h("span",{key:'f47c68db954de63773257f9c898141be27278a00',role:"heading",class:"f-heading-05 pb-4 block"},this.title),this.description&&h("span",{key:'4287bb5f9c31cf5d3953a032de4a8c269e1feb7e',class:"f-body-02 text-light",innerHTML:this.formatDescription(this.description)}),h("slot",{key:'e9e52696eab6477354ac5ee6cbe08399483b1b37'})),hiddenFields.map((field,index)=>h("eds-input",{key:index,type:"hidden",name:field.name,value:field.value})),this.parsedGroups.filter(g=>Array.isArray(buckets[g.id])&&buckets[g.id].length>0).map(g=>h("div",{class:"mt-32",key:g.id},h("span",{class:"f-body-02"},h("b",null,g.title)),h("div",{class:"border-group mt-32 mb-32 flex flex-col gap-y-24"},buckets[g.id].map(f=>this.renderField(f))))),h("div",{key:'22d248217ea85d68e2be652ddcbfd13ed4775934',class:"flex flex-col mt-32 gap-y-24"},buckets['__ungrouped'].map(f=>this.renderField(f))),(this.formBtn||this.clearBtn)&&h("div",{key:'101f9e275d68f59b762938ff3f7d7102660b80f0',class:"mt-32 md:mt-64 flex flex-col items-center md:flex-row-reverse md:justify-between gap-y-16 md:gap-y-0"},this.formBtn&&h("eds-button",{key:'02d427d951c715634605b6977f61cee67abaa8b0',intent:this.buttonIntent,pill:true,label:this.formBtnLabel,disabled:this.isSubmitting,loading:this.isSubmitting,icon:'arrow-right',size:"large",onClick:()=>this.handleSubmit()}),this.clearBtn&&h("eds-button",{key:'abf330715df3acf2a4bdc8d4f322fc13c70c267f',intent:"neutral",pill:true,size:"large",label:this.clearBtnLabel,disabled:this.isSubmitting||!this.values||Object.keys(this.values).length===0,onClick:e=>this.handleClear(e)})));}get el(){return getElement(this);}static get watchers(){return {"fields":["parseFields"],"groups":["parseGroups"]};}};EdsForm.style=EdsFormStyle0;const edsFullscreenMenuCss=".bg-default{background-color:var(--grey-light)}.bg-darker{background-color:var(--grey-dark)}.bg-inverse{background-color:var(--white)}.bg-strongest{background-color:var(--brand-black)}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0rem}.z-\\[999999\\]{z-index:999999}.overflow-y-scroll{overflow-y:scroll}.flex{display:flex}.inline-flex{display:inline-flex}.min-h-full{min-height:100%}.flex-col{flex-direction:column}.w-full{width:100%}.top-0{top:0rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-auto{margin-top:auto}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.mr-auto{margin-right:auto}.w-\\[250px\\]{width:250px}.h-\\[85px\\]{height:85px}.px-16{padding-left:1rem;padding-right:1rem}.py-16{padding-top:1rem;padding-bottom:1rem}.mt-28{margin-top:1.75rem}.gap-y-8{row-gap:0.5rem}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.effect-focus{outline-width:3px;outline-offset:2px;outline-color:var(--green-500)}.rounded-xs{border-radius:4px}.f-heading-02{font-family:var(--f-heading-02-fontFamily);font-weight:var(--f-heading-02-fontWeight);font-size:var(--f-heading-02-fontSize);line-height:var(--f-heading-02-lineHeight);letter-spacing:var(--f-heading-02-letterSpacing)}.hover\\:text-lighter:hover{color:var(--grey-600)}.w-fit{width:-moz-fit-content;width:fit-content}.p-\\[24px\\]{padding:24px}";const EdsFullscreenMenuStyle0=edsFullscreenMenuCss;const EdsFullscreenMenu=class{constructor(hostRef){registerInstance(this,hostRef);this.menuClose=createEvent(this,"menuClose",7);this.links=undefined;this.menuLinks=undefined;this.homeUrl='/';this.inverseHeader=false;this.isMenuOpen=false;}/**
|
|
1035
|
+
* Listens on `body` for `toggleheadermenu` to open/close the menu.
|
|
1036
|
+
* The event detail should be a boolean (`true` = open, `false` = close).
|
|
1037
|
+
*
|
|
1038
|
+
* @example
|
|
1039
|
+
* ```js
|
|
1040
|
+
* document.body.dispatchEvent(new CustomEvent('toggleheadermenu', { detail: true }));
|
|
1041
|
+
* ```
|
|
1042
|
+
*/handleToggleMenu(event){this.isMenuOpen=!!event.detail;}onKeydown(e){if(e.key==='Escape'&&this.isMenuOpen){this.closeMenu();}}/** Opens the menu */openMenu(){this.isMenuOpen=true;}/** Closes the menu */closeMenu(){this.isMenuOpen=false;this.menuClose.emit();}async open(){this.isMenuOpen=true;}async close(){this.closeMenu();}// Lifecycle method to add the resize event listener when component loads
|
|
1043
|
+
componentDidLoad(){window.addEventListener('resize',this.handleResize.bind(this));}// Lifecycle method to remove the resize event listener when component unloads
|
|
1044
|
+
disconnectedCallback(){window.removeEventListener('resize',this.handleResize.bind(this));}// Function to close the menu if screen width is larger than a defined breakpoint (1024px)
|
|
1045
|
+
handleResize(){if(window.innerWidth>=1024){this.isMenuOpen=false;}}/**
|
|
1046
|
+
* Parses the `links` prop into an array of link objects.
|
|
1047
|
+
* Returns an empty array if parsing fails or if `links` is not a valid JSON string or object.
|
|
1048
|
+
*
|
|
1049
|
+
* @returns {any[]} Array of parsed link objects
|
|
1050
|
+
*/get parsedLinks(){return parseData(this.links);}/**
|
|
1051
|
+
* Parses the `menuLinks` prop into an array of link objects.
|
|
1052
|
+
* Returns an empty array if parsing fails or if `menuLinks` is not a valid JSON string or object.
|
|
1053
|
+
*
|
|
1054
|
+
* @returns {any[]} Array of parsed menu link objects
|
|
1055
|
+
*/get parsedMenuLinks(){return parseData(this.menuLinks);}render(){return this.isMenuOpen?h("div",{role:"dialog","aria-modal":"true","aria-label":"Main menu",class:"eds-full-screen bg-default fixed inset-0 z-[999999] overflow-y-scroll"},h("div",{class:"flex min-h-full flex-col"},h("div",{class:`w-full sticky top-0 ${this.inverseHeader?'bg-strongest':'bg-default'}`},h("div",{class:"mx-auto flex items-center justify-between"},h("div",{class:"mr-auto w-[250px]"},h("div",{class:"p-[24px]"},h("eds-logo",{variant:"positive",href:this.homeUrl}))),h("div",{class:"px-16"},h("eds-button",{"aria-label":"Close menu",intent:"ghost",icon:"close",size:"large",onClick:()=>this.closeMenu()})))),h("div",{class:"py-16 px-16"},h("nav",{class:"mt-28 flex flex-col gap-y-8"},this.parsedLinks.map((link,index)=>h("eds-link",{label:link.label,key:index,url:link.url,intent:"secondary",size:"large",class:"effect-color effect-focus rounded-xs f-heading-02 hover:text-lighter w-fit",onClick:()=>this.closeMenu(),icon:"arrow-right"}))),h("eds-block-break",null),h("nav",{class:"mt-28 flex flex-col gap-y-8"},this.parsedMenuLinks.map((link,index)=>h("eds-link",{label:link.label,key:index,url:link.url,intent:"secondary",size:"large",class:"effect-color effect-focus rounded-xs f-heading-02 hover:text-lighter w-fit",onClick:()=>this.closeMenu(),icon:"chevron-right"}))),h("nav",{class:"mt-28 flex flex-col gap-y-8"},h("slot",null))),h("div",{class:"mt-auto"},h("eds-footer",{social:true,"extra-class":"bg-darker"})))):null;}};EdsFullscreenMenu.style=EdsFullscreenMenuStyle0;const edsGlobalSearchCss=":host{display:block;width:100%}p{margin:0}ol,ul,menu{list-style:none;margin:0;padding:0}.search-wrapper{position:relative;width:100%}.search-pill{display:flex;align-items:center;gap:12px;height:48px;padding:0 18px;border-radius:999px;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);font-size:15px;cursor:text;transition:background 120ms ease, box-shadow 120ms ease, color 120ms ease}.search-pill .search-icon{flex-shrink:0}.search-pill .search-input{flex:1;min-width:0;border:0;background:transparent;outline:none;font:inherit;color:inherit;-webkit-appearance:none;appearance:none}.search-pill .search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-pill .search-kbd{flex-shrink:0;font-family:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;font-size:11px;font-weight:500;line-height:1;padding:3px 6px;border-radius:4px;box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.05);letter-spacing:0.02em}.search-pill:focus-within .search-kbd{display:none}.search-pill .search-clear{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer;opacity:0.7;transition:opacity 120ms ease, background 120ms ease}.search-pill .search-clear:hover{opacity:1;background:rgba(0, 0, 0, 0.06)}.search-pill .search-clear:focus-visible{outline:none;box-shadow:0 0 0 2px var(--brand-green, #00C87B);opacity:1}.search-pill--black .search-clear:hover{background:rgba(255, 255, 255, 0.10)}.search-pill--gray{background:var(--grey-light, #ECECEC);color:var(--grey-dark, #7A7B7A);border:0}.search-pill--gray:hover{background:#E0E0E0}.search-pill--gray .search-input{color:var(--brand-black, #07140D)}.search-pill--gray .search-input::placeholder{color:var(--grey-dark, #7A7B7A)}.search-pill--gray .search-kbd{color:var(--grey-dark, #7A7B7A);background:var(--white, #FFFFFF);border:1px solid #DCDCDC}.search-pill--gray:focus-within{background:var(--white, #FFFFFF);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-pill--white{background:var(--white, #FFFFFF);color:var(--grey-dark, #7A7B7A);border:1px solid var(--grey-light, #ECECEC)}.search-pill--white:hover{background:#FAFAFA}.search-pill--white .search-input{color:var(--brand-black, #07140D)}.search-pill--white .search-input::placeholder{color:var(--grey-dark, #7A7B7A)}.search-pill--white .search-kbd{color:var(--grey-dark, #7A7B7A);background:var(--grey-light, #ECECEC);border:1px solid #DCDCDC}.search-pill--white:focus-within{background:var(--white, #FFFFFF);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-pill--black{background:var(--brand-black, #07140D);color:rgba(255, 255, 255, 0.7);border:1px solid rgba(255, 255, 255, 0.12)}.search-pill--black:hover{background:#11221A}.search-pill--black .search-input{color:var(--white, #FFFFFF)}.search-pill--black .search-input::placeholder{color:rgba(255, 255, 255, 0.55)}.search-pill--black .search-kbd{color:rgba(255, 255, 255, 0.75);background:rgba(255, 255, 255, 0.08);border:1px solid rgba(255, 255, 255, 0.15)}.search-pill--black:focus-within{background:var(--brand-black, #07140D);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:white;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12),\n 0 2px 8px rgba(0, 0, 0, 0.08),\n 0 0 0 1px rgba(0, 255, 157, 0.08);max-height:500px;overflow:hidden;z-index:9999;display:flex;flex-direction:column;animation:dropdownFadeIn 0.25s cubic-bezier(0.4, 0, 0.2, 1)}.dropdown-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#616161;font-size:14px}.dropdown-results{list-style:none;margin:0;overflow-y:auto;overflow-x:hidden;max-height:440px}.result-item{padding:7px 7px;cursor:pointer;border-left:4px solid transparent;margin-bottom:2px;transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden;word-wrap:break-word;word-break:break-word}.result-item:hover,.result-item--selected{background:linear-gradient(\n 90deg,\n rgba(0, 255, 157, 0.08) 0%,\n rgba(0, 255, 157, 0.03) 100%\n );border-left-color:var(--green-600);box-shadow:0 2px 8px rgba(0, 255, 157, 0.15)}.result-item:hover .result-title,.result-item--selected .result-title{color:var(--green-700)}.result-title{color:var(--black);transition:color 0.2s ease}.result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.result-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.result-badge{display:inline-block;padding:3px 8px;background:rgba(0, 255, 157, 0.12);color:var(--green-800);border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s ease}.result-badge--parent{background:rgba(120, 0, 255, 0.08);color:var(--purple-800, #6b21a8)}.result-badge--lr{background:rgba(0, 120, 255, 0.1);color:var(--blue-800, #1565c0)}.result-item:hover .result-badge,.result-item--selected .result-badge{background:rgba(0, 255, 157, 0.2);color:var(--green-900)}.result-item:hover .result-badge--parent,.result-item--selected .result-badge--parent{background:rgba(120, 0, 255, 0.15);color:var(--purple-900, #581c87)}.result-item:hover .result-badge--lr,.result-item--selected .result-badge--lr{background:rgba(0, 120, 255, 0.18);color:var(--blue-900, #0d47a1)}.result-url{font-size:12px;color:var(--grey-600)}.external-icon{display:inline-block;width:14px;height:14px;margin-left:4px;color:var(--green-600)}.result-snippet{font-size:13px;color:#616161;line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color 0.2s ease}.result-item:hover .result-snippet,.result-item--selected .result-snippet{color:#424242}.dropdown-footer{border-top:1px solid rgba(0, 255, 157, 0.15);padding:10px 16px;background:linear-gradient(\n 180deg,\n rgba(0, 255, 157, 0.02) 0%,\n rgba(0, 255, 157, 0.05) 100%\n );flex-shrink:0}.footer-hint{font-size:11px;color:#616161;display:flex;align-items:center;gap:6px;flex-wrap:wrap}kbd{display:inline-block;padding:3px 7px;font-size:11px;font-family:monospace;line-height:1.2;font-weight:500;color:var(--green-700);background:rgba(0, 255, 157, 0.1);border:1px solid rgba(0, 200, 123, 0.3);border-radius:4px;box-shadow:0 2px 0 rgba(0, 255, 157, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 0.5)}.dropdown-results::-webkit-scrollbar{width:8px}.dropdown-results::-webkit-scrollbar-track{background:rgba(0, 255, 157, 0.05);border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb{background:#33FFB8;border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb:hover{background:#00FF9D}.flex{display:flex}.inline-flex{display:inline-flex}.text-center{text-align:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-error{color:var(--red-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.ml-4{margin-left:0.25rem}.ml-8{margin-left:0.5rem}.ml-16{margin-left:1rem}.p-16{padding:1rem}.p-64{padding:4rem}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}";const EdsGlobalSearchStyle0=edsGlobalSearchCss;const EdsGlobalSearch=class{constructor(hostRef){registerInstance(this,hostRef);this.resultSelected=createEvent(this,"resultSelected",7);this.searchClosed=createEvent(this,"searchClosed",7);/** Clear the current query and results; keep focus in the input so the
|
|
1056
|
+
* user can start typing again without an extra click. */this.handleClear=()=>{if(this.debounceTimer){clearTimeout(this.debounceTimer);}this.query='';this.results=[];this.hasSearched=false;this.showDropdown=false;this.selectedIndex=-1;// Re-focus and reflect the empty value on the underlying DOM input.
|
|
1057
|
+
if(this.inputRef){this.inputRef.value='';this.inputRef.focus();}};this.handleInput=event=>{var _a;const target=event.target;this.query=target.value;if(this.debounceTimer){clearTimeout(this.debounceTimer);}if(!this.query.trim()){this.results=[];this.hasSearched=false;this.showDropdown=false;return;}sendAnalytics({category:'shared-ui',parentContext:null,tag:this.el.tagName.toLowerCase(),name:`search-input: ${(_a=this.query)===null||_a===void 0?void 0:_a.toLowerCase()}`||'unknow seach input query',action:'click'});this.debounceTimer=window.setTimeout(()=>{this.runSearch();},this.debounceDelay);};this.apiEndpoint='/api/v1/global-search';this.placeholder='Search Handbook + Design...';this.limit=20;this.debounceDelay=300;this.forceNewTab=false;this.currentOrigin='';this.currentSource='';this.authToken='';this.variant='gray';this.query='';this.results=[];this.loading=false;this.error='';this.hasSearched=false;this.showDropdown=false;this.selectedIndex=-1;}componentDidLoad(){// ⌘K / Ctrl+K focuses the search pill from anywhere on the page.
|
|
1058
|
+
// Bound here (not via @Listen) so it works across shadow boundaries.
|
|
1059
|
+
this.cmdKListener=event=>{var _a;const isMac=navigator.platform.toUpperCase().includes('MAC');const modifier=isMac?event.metaKey:event.ctrlKey;if(modifier&&event.key.toLowerCase()==='k'){event.preventDefault();(_a=this.inputRef)===null||_a===void 0?void 0:_a.focus();}};document.addEventListener('keydown',this.cmdKListener);}disconnectedCallback(){if(this.debounceTimer){clearTimeout(this.debounceTimer);}if(this.cmdKListener){document.removeEventListener('keydown',this.cmdKListener);}}handleDocumentClick(event){const path=event.composedPath();if(!path.includes(this.el)){this.showDropdown=false;this.selectedIndex=-1;}}handleKeydown(event){if(!this.showDropdown||this.results.length===0){if(event.key==='Escape'){this.searchClosed.emit();}return;}switch(event.key){case'ArrowDown':event.preventDefault();this.selectedIndex=Math.min(this.selectedIndex+1,this.results.length-1);this.scrollToSelected();break;case'ArrowUp':event.preventDefault();this.selectedIndex=Math.max(this.selectedIndex-1,-1);this.scrollToSelected();break;case'Enter':event.preventDefault();if(this.selectedIndex>=0&&this.selectedIndex<this.results.length){this.selectResult(this.results[this.selectedIndex]);}break;case'Escape':this.showDropdown=false;this.selectedIndex=-1;this.searchClosed.emit();break;}}async runSearch(){var _a;const query=this.query.trim();if(!query){this.results=[];this.hasSearched=false;this.showDropdown=false;return;}this.loading=true;this.error='';try{// Build headers with optional authorization
|
|
1060
|
+
const headers={};if(this.authToken){headers['Authorization']=`Bearer ${this.authToken}`;}const response=await fetch(`${this.apiEndpoint}?q=${encodeURIComponent(query)}&limit=${this.limit}`,{headers});if(!response.ok){throw new Error('Search failed');}const data=await response.json();this.results=(_a=data.items)!==null&&_a!==void 0?_a:[];this.hasSearched=true;this.showDropdown=true;this.selectedIndex=-1;}catch(err){//console.error('Search error:', err);
|
|
1061
|
+
this.error='Search failed. Please try again.';this.results=[];this.showDropdown=true;}finally{this.loading=false;}}selectResult(result){this.resultSelected.emit(result);this.searchClosed.emit();sendAnalytics({category:'shared-ui',parentContext:null,tag:this.el.tagName.toLowerCase(),name:`search-select: ${result.url}`||'unknown search result selection',action:'click'});// Determine if link is external
|
|
1062
|
+
let isExternal=false;let navigateUrl=result.url;try{const resultUrl=new URL(result.url,window.location.href);// If currentSource is set and matches result source, treat as internal
|
|
1063
|
+
if(this.currentSource&&result.source===this.currentSource){// Extract relative path from the URL
|
|
1064
|
+
navigateUrl=resultUrl.pathname+resultUrl.search+resultUrl.hash;isExternal=false;}else {// Different source - check actual origin
|
|
1065
|
+
const currentOrigin=this.currentOrigin||window.location.origin;isExternal=resultUrl.origin!==currentOrigin;}/*console.log('[eds-global-search] Navigation check:', {
|
|
1066
|
+
resultUrl: result.url,
|
|
1067
|
+
resultSource: result.source,
|
|
1068
|
+
currentSource: this.currentSource,
|
|
1069
|
+
isMatchingSource: result.source === this.currentSource,
|
|
1070
|
+
isExternal: isExternal,
|
|
1071
|
+
navigateUrl: navigateUrl,
|
|
1072
|
+
forceNewTab: this.forceNewTab
|
|
1073
|
+
});*/}catch(e){console.error('[eds-global-search] URL parsing error:',e);isExternal=false;}// Open in new tab if: forced OR external link
|
|
1074
|
+
if(this.forceNewTab||isExternal){//console.log('[eds-global-search] Opening in new tab');
|
|
1075
|
+
window.open(result.url,'_blank','noopener,noreferrer');}else {//console.log('[eds-global-search] Navigating in same tab to:', navigateUrl);
|
|
1076
|
+
window.location.href=navigateUrl;}}scrollToSelected(){if(this.selectedIndex>=0&&this.dropdownRef){const selectedItem=this.dropdownRef.querySelector(`[data-index="${this.selectedIndex}"]`);if(selectedItem){selectedItem.scrollIntoView({block:'nearest',behavior:'smooth'});}}}stripHtml(html){const div=document.createElement('div');div.innerHTML=html;return div.textContent||div.innerText||'';}get hasResults(){return this.results.length>0;}get showEmpty(){return this.hasSearched&&!this.loading&&!this.hasResults&&this.query.trim();}render(){return h("div",{key:'841c9a013a1c4cee9697f3465759bf638b28475e',class:"search-wrapper"},h("label",{key:'ff1b37fff6e94019d2da63060aba77d82ee1bafb',class:`search-pill search-pill--${this.variant}`,htmlFor:"search-global"},h("svg",{key:'150aff8a31a68195e7b333b9bcfccbc3affb3901',class:"search-icon",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},h("circle",{key:'cb424f39cd5f6316056dbcc6b80d11ce8ade1410',cx:"11",cy:"11",r:"7"}),h("line",{key:'004bce39d3a9ee7a53ef0e942cf986e38b76b921',x1:"20",y1:"20",x2:"16.5",y2:"16.5"})),h("input",{key:'97f4c012d7152f29fac9723ced4f06207b8a2453',id:"search-global",class:"search-input",type:"search",name:"search-box-global",placeholder:this.placeholder,value:this.query,autoComplete:"off",onInput:this.handleInput,ref:el=>this.inputRef=el}),this.query&&this.query.length>0?h("button",{type:"button",class:"search-clear","aria-label":"Clear search",onMouseDown:e=>e.preventDefault()/* keep focus in input */,onClick:()=>this.handleClear()},h("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},h("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),h("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))):h("kbd",{class:"search-kbd","aria-hidden":"true"},"\u2318K")),this.showDropdown&&h("div",{key:'3354848b17ba065a64919defd74de0616a29c25c',class:"search-dropdown",ref:el=>this.dropdownRef=el},this.loading&&h("div",{key:'5c5f731e969f60c8c3d2ce21683fec35302a2954',class:"flex text-center justify-center p-64"},h("eds-spinner",{key:'6d0b5223f03bb0ed2f83f2ab3c77cf4e116d87e7',variant:"primary",size:"sm"})),this.error&&!this.loading&&h("div",{key:'9cbca9b3f62c2969478e34a654a973196a5e9187',class:"flex text-center justify-center p-16"},h("span",{key:'ce2bd2f6c6b05fb5fdfec4da67460b72445970bc',class:"text-error f-body-02"},this.error)),this.showEmpty&&h("div",{key:'b7d446aa72732c9932c90bb5ef08a2f27c357ae4',class:"dropdown-state"},h("eds-icon-wrapper",{key:'ac5377b3efa4f26e10781f369843a69c3409ec83',name:"search"}),h("div",{key:'774784c1dbe4c6e6eda9e8d70833d0a2a6821b4f'},h("p",{key:'bbce9a267889eee40b54fd471f203b530de42a86',class:"f-body-02"},"No results found"),h("p",{key:'d440e4e0ff4f59ea14eef7aa5db0692c4a2352fa',class:"f-ui-04 text-lightest"},"Try different keywords"))),this.hasResults&&!this.loading&&h("ul",{key:'b89e31f5931705e750f0f19fb159f93a05324e6d',class:"dropdown-results"},this.results.map((result,index)=>h("li",{key:result.id,"data-index":index,class:{'result-item':true,'result-item--selected':index===this.selectedIndex},onClick:()=>this.selectResult(result),onMouseEnter:()=>this.selectedIndex=index},h("div",{class:"result-header"},h("span",{class:"result-title f-body-02"},result.title)),h("div",{class:"result-meta"},result.parent_software?[h("span",{class:"result-badge result-badge--parent"},result.parent_software),result.section&&h("span",{class:"result-badge result-badge--lr"},result.section)]:result.source==='kg-services'?[h("span",{class:"result-badge"},"EBRAINS KG"),result.section&&h("span",{class:"result-badge"},result.section)]:[h("span",{class:"result-badge"},result.source),result.section&&h("span",{class:"result-badge"},result.section)],h("span",{class:"result-url"},result.url)),result.snippet&&h("p",{class:"result-snippet"},this.stripHtml(result.snippet))))),this.hasResults&&!this.loading&&h("div",{key:'fd07f17d78ba2d95c30d95b35d89151b27e3a957',class:"dropdown-footer"},h("span",{key:'20a6bc436e135e29b89a94b150c505bab6281d6f',class:"footer-hint"},h("kbd",{key:'08e43dd318b0dde7d67f74731055e2bbc00bdc78'},"\u2191")," ",h("kbd",{key:'676535d717d5fb4b98cbf09050883630dbecaf6e'},"\u2193")," navigate \u2022 ",h("kbd",{key:'cd9ac17223ae195b0508c7ea37ad2a9459341b8b'},"\u21B5")," select \u2022 ",h("kbd",{key:'dbaa3eacc337eee81404518e9bd4c9b9fbc44205'},"esc")," close"))));}get el(){return getElement(this);}};EdsGlobalSearch.style=EdsGlobalSearchStyle0;const edsHeaderCss=".block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.z-10{z-index:10}.text-default{color:var(--black)}.text-inverse{color:var(--white)}.bg-inverse{background-color:var(--white)}.bg-dark{background-color:var(--grey-light)}.bg-strongest{background-color:var(--brand-black)}.mr-auto{margin-right:auto}.w-\\[250px\\]{width:250px}.h-\\[85px\\]{height:85px}.p-\\[24px\\]{padding:24px}.left-1\\/2{left:50%}.top-1\\/2{top:50%}.grow{flex-grow:1}.flex-1{flex:1 1 0%}.justify-end{justify-content:flex-end}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hidden{display:none}.gap-x-2{-moz-column-gap:0.125rem;column-gap:0.125rem}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.gap-8{gap:0.5rem}.after\\:effect-opacity::after{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.whitespace-nowrap{white-space:nowrap}.\\!text-current{color:currentColor !important}.overflow-hidden{overflow:hidden}.after\\:\\!border-transparent::after{border-color:var(--transparent) !important}.hover\\:after\\:\\!border-transparent:hover::after{border-color:var(--transparent) !important}.after\\:opacity-0::after{opacity:0}.hover\\:after\\:opacity-100:hover::after{opacity:1}.px-16{padding-left:1rem;padding-right:1rem}@media (min-width: 750px){.md\\:flex{display:flex}.md\\:hidden{display:none}}";const EdsHeaderStyle0=edsHeaderCss;const EdsHeader=class{constructor(hostRef){registerInstance(this,hostRef);this.toggleheadermenu=createEvent(this,"toggleheadermenu",7);this.url='/';this.links=undefined;this.variant='default';this.menu=false;this.isMenuOpen=false;this.isUserMenuOpen=false;}componentDidLoad(){var _a,_b;const links=(_b=(_a=this.hostEl.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll('eds-link'))!==null&&_b!==void 0?_b:[];links.forEach(link=>this.emitContext(link));}emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.hostEl.tagName.toLowerCase(),identifier:null}});linkElement.dispatchEvent(event);}handleToggleMenu(){this.toggleheadermenu.emit(!this.isMenuOpen);}toggleUserMenu(){this.isUserMenuOpen=!this.isUserMenuOpen;}get parsedLinks(){return parseData(this.links);}render(){// Define classes based on variant
|
|
1077
|
+
const variantClasses={strong:'text-inverse bg-strongest',inverse:'text-default bg-inverse',default:'text-default bg-dark'};const classes=variantClasses[this.variant]||variantClasses.default;// Logo color variant: default and inverse use 'color', strong uses 'color-white'
|
|
1078
|
+
const logoType=this.variant==='strong'?'negative':'positive';// Link intent based on header variant
|
|
1079
|
+
const linkIntent=this.variant==='strong'?'underlineInverse':'underline';return h("header",{key:'fd95f6b0126d620ab1d4f58240d471301d607fa5',role:"banner",class:`flex items-center justify-between relative z-10 ${classes}`},h("div",{key:'e7b1bd9a146543107d87ff6f4c8575ad63fc3889',class:"w-[250px]"},h("div",{key:'257a8bf3d0efea39bd0e7f5c92d2a6bcbaa66d48',class:"p-[24px]"},h("eds-logo",{key:'71365268524d0db6999dc6ff4a9227e388d53cdf',variant:logoType,href:this.url}))),this.parsedLinks&&h("nav",{key:'085b2bd5f667ea7e0be4de77cb4bd3d1a2bb6e3c',role:"navigation","aria-label":"Primary",class:"flex-1 flex justify-center items-center hidden md:flex"},h("ul",{key:'b5c015e6e1fb376f6b48805cc5d0db436234a5fc',class:"flex gap-x-16"},this.parsedLinks.map(link=>h("eds-link",{label:link.label,"aria-label":link.label,url:link.url,intent:linkIntent,size:"large",icon:link.icon,external:link.external})))),h("div",{key:'9bca10c081cd1b8157579fa587615538dc624817',class:"w-[250px] flex justify-end items-center"},h("slot",{key:'360fb5fe76b41b2513cba2f8705ea5ea91cae9a9',name:"actions"})),this.menu&&h("div",{key:'7feaa2b97062e7ceb94bacc35e61a12edc0b2e54',class:"md:hidden flex overflow-hidden px-16"},h("eds-button",{key:'706c1668e3b04517cfe0cb92da5b459980986df0',"aria-label":"Menu",intent:this.variant==='strong'?'ghostInverse':'ghost',icon:"menu",size:"small",onClick:()=>this.handleToggleMenu()})));}get hostEl(){return getElement(this);}};EdsHeader.style=EdsHeaderStyle0;function _defineProperty(e,r,t){return (r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true}):e[r]=t,e;}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),true).forEach(function(r){_defineProperty(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _objectWithoutProperties(e,t){if(null==e)return {};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);}return i;}function _objectWithoutPropertiesLoose(r,e){if(null==r)return {};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n];}return t;}function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return ("string"===r?String:Number)(t);}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return "symbol"==typeof i?i:i+"";}var _excluded=["width","height","viewBox"],_excluded2=["tabindex"];/**
|
|
1080
|
+
* Copyright IBM Corp. 2018, 2024
|
|
1081
|
+
*
|
|
1082
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1083
|
+
* LICENSE file in the root directory of this source tree.
|
|
1084
|
+
*/var defaultAttributes={// Reference:
|
|
1085
|
+
// https://github.com/IBM/carbon-components-react/issues/1392
|
|
1086
|
+
// https://github.com/PolymerElements/iron-iconset-svg/pull/47
|
|
1087
|
+
// `focusable` is a string attribute which is why we do not use a boolean here
|
|
1088
|
+
focusable:'false',preserveAspectRatio:'xMidYMid meet'};/**
|
|
1089
|
+
* Get supplementary HTML attributes for a given <svg> element based on existing
|
|
1090
|
+
* attributes.
|
|
1091
|
+
*/function getAttributes(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},width=_ref.width,height=_ref.height,_ref$viewBox=_ref.viewBox,viewBox=_ref$viewBox===void 0?"0 0 ".concat(width," ").concat(height):_ref$viewBox,attributes=_objectWithoutProperties(_ref,_excluded);var tabindex=attributes.tabindex,rest=_objectWithoutProperties(attributes,_excluded2);var iconAttributes=_objectSpread2(_objectSpread2(_objectSpread2({},defaultAttributes),rest),{},{width:width,height:height,viewBox:viewBox});// TODO: attributes.title assumes that the consumer will implement <title> and
|
|
1092
|
+
// correctly set `aria-labelledby`.
|
|
1093
|
+
if(iconAttributes['aria-label']||iconAttributes['aria-labelledby']||iconAttributes.title){iconAttributes.role='img';// Reference:
|
|
1094
|
+
// https://allyjs.io/tutorials/focusing-in-svg.html
|
|
1095
|
+
if(tabindex!==undefined&&tabindex!==null){iconAttributes.focusable='true';iconAttributes.tabindex=tabindex;}}else {iconAttributes['aria-hidden']=true;}return iconAttributes;}/**
|
|
1096
|
+
* Copyright IBM Corp. 2018, 2024
|
|
1097
|
+
*
|
|
1098
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1099
|
+
* LICENSE file in the root directory of this source tree.
|
|
1100
|
+
*//**
|
|
1101
|
+
* Convert an icon descriptor to a String
|
|
1102
|
+
*/function toString(descriptor){var _descriptor$elem=descriptor.elem,elem=_descriptor$elem===void 0?'svg':_descriptor$elem,_descriptor$attrs=descriptor.attrs,attrs=_descriptor$attrs===void 0?{}:_descriptor$attrs,_descriptor$content=descriptor.content,content=_descriptor$content===void 0?[]:_descriptor$content;var children=content.map(toString).join('');if(elem!=='svg'){return "<".concat(elem," ").concat(formatAttributes(attrs),">").concat(children,"</").concat(elem,">");}return "<".concat(elem," ").concat(formatAttributes(getAttributes(attrs)),">").concat(children,"</").concat(elem,">");}function formatAttributes(attrs){return Object.keys(attrs).reduce(function(acc,key,index){var attribute="".concat(key,"=\"").concat(attrs[key],"\"");if(index===0){return attribute;}return acc+' '+attribute;},'');}/**
|
|
1103
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1104
|
+
*
|
|
1105
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1106
|
+
* LICENSE file in the root directory of this source tree.
|
|
1107
|
+
*
|
|
1108
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1109
|
+
*/var _20$1a={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M22 16L12 26 10.6 24.6 19.2 16 10.6 7.4 12 6z"}}],"name":"chevron--right","size":20};/**
|
|
1110
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1111
|
+
*
|
|
1112
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1113
|
+
* LICENSE file in the root directory of this source tree.
|
|
1114
|
+
*
|
|
1115
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1116
|
+
*/var _20$19={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M10 16L20 6 21.4 7.4 12.8 16 21.4 24.6 20 26z"}}],"name":"chevron--left","size":20};/**
|
|
1117
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1118
|
+
*
|
|
1119
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1120
|
+
* LICENSE file in the root directory of this source tree.
|
|
1121
|
+
*
|
|
1122
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1123
|
+
*/var _20$18={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16 22L6 12 7.4 10.6 16 19.2 24.6 10.6 26 12z"}}],"name":"chevron--down","size":20};/**
|
|
1124
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1125
|
+
*
|
|
1126
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1127
|
+
* LICENSE file in the root directory of this source tree.
|
|
1128
|
+
*
|
|
1129
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1130
|
+
*/var _20$17={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16 10L26 20 24.6 21.4 16 12.8 7.4 21.4 6 20z"}}],"name":"chevron--up","size":20};/**
|
|
1131
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1132
|
+
*
|
|
1133
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1134
|
+
* LICENSE file in the root directory of this source tree.
|
|
1135
|
+
*
|
|
1136
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1137
|
+
*/var _20$16={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M11.8 2.8L10.8 3.8 16.2 9.3 1 9.3 1 10.7 16.2 10.7 10.8 16.2 11.8 17.2 19 10z"}}],"name":"arrow--right","size":20};/**
|
|
1138
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1139
|
+
*
|
|
1140
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1141
|
+
* LICENSE file in the root directory of this source tree.
|
|
1142
|
+
*
|
|
1143
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1144
|
+
*/var _20$15={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M14 26L15.41 24.59 7.83 17 28 17 28 15 7.83 15 15.41 7.41 14 6 4 16 14 26z"}}],"name":"arrow--left","size":20};/**
|
|
1145
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1146
|
+
*
|
|
1147
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1148
|
+
* LICENSE file in the root directory of this source tree.
|
|
1149
|
+
*
|
|
1150
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1151
|
+
*/var _20$14={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M10 6L10 8 22.59 8 6 24.59 7.41 26 24 9.41 24 22 26 22 26 6 10 6z"}}],"name":"arrow--up-right","size":20};/**
|
|
1152
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1153
|
+
*
|
|
1154
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1155
|
+
* LICENSE file in the root directory of this source tree.
|
|
1156
|
+
*
|
|
1157
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1158
|
+
*/var _20$13={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z"}}],"name":"close","size":20};/**
|
|
1159
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1160
|
+
*
|
|
1161
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1162
|
+
* LICENSE file in the root directory of this source tree.
|
|
1163
|
+
*
|
|
1164
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1165
|
+
*/var _20$12={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M17 15L17 8 15 8 15 15 8 15 8 17 15 17 15 24 17 24 17 17 24 17 24 15z"}}],"name":"add","size":20};/**
|
|
1166
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1167
|
+
*
|
|
1168
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1169
|
+
* LICENSE file in the root directory of this source tree.
|
|
1170
|
+
*
|
|
1171
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1172
|
+
*/var _20$11={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M2 26H30V28H2zM25.4 9c.8-.8.8-2 0-2.8 0 0 0 0 0 0l-3.6-3.6c-.8-.8-2-.8-2.8 0 0 0 0 0 0 0l-15 15V24h6.4L25.4 9zM20.4 4L24 7.6l-3 3L17.4 7 20.4 4zM6 22v-3.6l10-10 3.6 3.6-10 10H6z"}}],"name":"edit","size":20};/**
|
|
1173
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1174
|
+
*
|
|
1175
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1176
|
+
* LICENSE file in the root directory of this source tree.
|
|
1177
|
+
*
|
|
1178
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1179
|
+
*/var _20$10={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M8 13.2L3.6 8.8 2.7 9.7 7.1 14.1 8 15 16.5 6.5 15.6 5.6z"}},{"elem":"path","attrs":{"d":"M15.6 5.6L8 13.2 3.6 8.8 2.7 9.7 7.1 14.1 8 15 16.5 6.5 15.6 5.6z"}}],"name":"checkmark","size":20};/**
|
|
1180
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1181
|
+
*
|
|
1182
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1183
|
+
* LICENSE file in the root directory of this source tree.
|
|
1184
|
+
*
|
|
1185
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1186
|
+
*/var _20$$={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26 24v4H6V24H4v4H4a2 2 0 002 2H26a2 2 0 002-2h0V24zM26 14L24.59 12.59 17 20.17 17 2 15 2 15 20.17 7.41 12.59 6 14 16 24 26 14z"}}],"name":"download","size":20};/**
|
|
1187
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1188
|
+
*
|
|
1189
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1190
|
+
* LICENSE file in the root directory of this source tree.
|
|
1191
|
+
*
|
|
1192
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1193
|
+
*/var _20$_={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M6 18L7.41 19.41 15 11.83 15 30 17 30 17 11.83 24.59 19.41 26 18 16 8 6 18zM6 8V4H26V8h2V4a2 2 0 00-2-2H6A2 2 0 004 4V8z"}}],"name":"upload","size":20};/**
|
|
1194
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1195
|
+
*
|
|
1196
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1197
|
+
* LICENSE file in the root directory of this source tree.
|
|
1198
|
+
*
|
|
1199
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1200
|
+
*/var _20$Z={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M30.94,15.66A16.69,16.69,0,0,0,16,5,16.69,16.69,0,0,0,1.06,15.66a1,1,0,0,0,0,.68A16.69,16.69,0,0,0,16,27,16.69,16.69,0,0,0,30.94,16.34,1,1,0,0,0,30.94,15.66ZM16,25c-5.3,0-10.9-3.93-12.93-9C5.1,10.93,10.7,7,16,7s10.9,3.93,12.93,9C26.9,21.07,21.3,25,16,25Z"}},{"elem":"path","attrs":{"d":"M16,10a6,6,0,1,0,6,6A6,6,0,0,0,16,10Zm0,10a4,4,0,1,1,4-4A4,4,0,0,1,16,20Z"}}],"name":"view","size":20};/**
|
|
1201
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1202
|
+
*
|
|
1203
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1204
|
+
* LICENSE file in the root directory of this source tree.
|
|
1205
|
+
*
|
|
1206
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1207
|
+
*/var _20$Y={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M7,8v3h-2v-3h-3v-2h3v-3h2v3h3v2h-3ZM22.42,26.01l6.03-6.03h0c2.06-2.06,2.06-5.39,0-7.44s-5.39-2.06-7.44,0l1.41,1.41h0c1.27-1.27,3.34-1.27,4.62,0,1.27,1.27,1.27,3.34,0,4.62l-6.03,6.03h0c-1.27,1.27-3.34,1.27-4.62,0-1.27-1.27-1.27-3.34,0-4.62l-1.41-1.41c-.99.99-1.54,2.33-1.54,3.73,0,2.91,2.36,5.26,5.27,5.26,1.4,0,2.74-.55,3.72-1.54h0l-.01-.01ZM13.99,28.46l-1.41-1.41c-1.27,1.26-3.32,1.26-4.6,0-1.28-1.27-1.29-3.34-.02-4.62l6.03-6.03.02-.02c1.28-1.27,3.35-1.26,4.62.02s1.26,3.35-.02,4.62l1.41,1.41.03-.03c2.05-2.06,2.03-5.4-.03-7.44-2.06-2.05-5.4-2.03-7.44.03l-6.03,6.03c-.99.99-1.55,2.33-1.55,3.72,0,2.91,2.37,5.26,5.27,5.26,1.4,0,2.74-.55,3.72-1.54Z"}}],"name":"create-link","size":20};/**
|
|
1208
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1209
|
+
*
|
|
1210
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1211
|
+
* LICENSE file in the root directory of this source tree.
|
|
1212
|
+
*
|
|
1213
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1214
|
+
*/var _20$X={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M24 24L16 32 8 24zM8 8L16 0 24 8z"}}],"name":"caret--sort","size":20};/**
|
|
1215
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1216
|
+
*
|
|
1217
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1218
|
+
* LICENSE file in the root directory of this source tree.
|
|
1219
|
+
*
|
|
1220
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1221
|
+
*/var _20$W={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28 6H30V26H28zM17 6L15.57 7.393 23.15 15 2 15 2 17 23.15 17 15.57 24.573 17 26 27 16 17 6z"}}],"name":"choose-item","size":20};/**
|
|
1222
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1223
|
+
*
|
|
1224
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1225
|
+
* LICENSE file in the root directory of this source tree.
|
|
1226
|
+
*
|
|
1227
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1228
|
+
*/var _20$V={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M11.9474,19a4.9476,4.9476,0,0,1-3.4991-8.4465l5.1053-5.1043a4.9482,4.9482,0,0,1,6.9981,6.9976l-.5523.5526-1.4158-1.4129.5577-.5579a2.95,2.95,0,0,0-.0039-4.1653,3.02,3.02,0,0,0-4.17,0l-5.1047,5.104a2.9474,2.9474,0,0,0,0,4.1692,3.02,3.02,0,0,0,4.17,0l1.4143,1.4145A4.9176,4.9176,0,0,1,11.9474,19Z"}},{"elem":"path","attrs":{"d":"M19.9474,17a4.9476,4.9476,0,0,1-3.4991-8.4465l.5526-.5526,1.4143,1.4146-.5526.5523a2.9476,2.9476,0,0,0,0,4.1689,3.02,3.02,0,0,0,4.17,0c.26-.26,4.7293-4.7293,5.1053-5.1045a2.951,2.951,0,0,0,0-4.1687,3.02,3.02,0,0,0-4.17,0L21.5536,3.449a4.9483,4.9483,0,0,1,6.9981,6.9978c-.3765.376-4.844,4.8428-5.1038,5.1035A4.9193,4.9193,0,0,1,19.9474,17Z"}},{"elem":"path","attrs":{"d":"M24,30H4a2.0021,2.0021,0,0,1-2-2V8A2.0021,2.0021,0,0,1,4,6H8V8H4V28H24V18h2V28A2.0021,2.0021,0,0,1,24,30Z"}}],"name":"copy--link","size":20};/**
|
|
1229
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1230
|
+
*
|
|
1231
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1232
|
+
* LICENSE file in the root directory of this source tree.
|
|
1233
|
+
*
|
|
1234
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1235
|
+
*/var _20$U={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M12 4L12 15 5.83 15 8.41 12.41 7 11 2 16 7 21 8.41 19.59 5.83 17 12 17 12 28 14 28 14 4 12 4zM25 11L23.59 12.41 26.17 15 20 15 20 4 18 4 18 28 20 28 20 17 26.17 17 23.59 19.59 25 21 30 16 25 11z"}}],"name":"drag--horizontal","size":20};/**
|
|
1236
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1237
|
+
*
|
|
1238
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1239
|
+
* LICENSE file in the root directory of this source tree.
|
|
1240
|
+
*
|
|
1241
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1242
|
+
*/var _20$T={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M4 20L15 20 15 26.17 12.41 23.59 11 25 16 30 21 25 19.59 23.59 17 26.17 17 20 28 20 28 18 4 18 4 20zM11 7L12.41 8.41 15 5.83 15 12 4 12 4 14 28 14 28 12 17 12 17 5.83 19.59 8.41 21 7 16 2 11 7z"}}],"name":"drag--vertical","size":20};/**
|
|
1243
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1244
|
+
*
|
|
1245
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1246
|
+
* LICENSE file in the root directory of this source tree.
|
|
1247
|
+
*
|
|
1248
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1249
|
+
*/var _20$S={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M25 11L23.59 12.41 26.17 15 17 15 17 5.83 19.59 8.41 21 7 16 2 11 7 12.41 8.41 15 5.83 15 15 5.83 15 8.41 12.41 7 11 2 16 7 21 8.41 19.59 5.83 17 15 17 15 26.17 12.41 23.59 11 25 16 30 21 25 19.59 23.59 17 26.17 17 17 26.17 17 23.59 19.59 25 21 30 16 25 11z"}}],"name":"move","size":20};/**
|
|
1250
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1251
|
+
*
|
|
1252
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1253
|
+
* LICENSE file in the root directory of this source tree.
|
|
1254
|
+
*
|
|
1255
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1256
|
+
*/var _20$R={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28 8h2V4a2.0021 2.0021 0 00-2-2H24V4h4zM17 2H21V4H17zM28 11H30V15H28zM28 18v4H24V10a2.0023 2.0023 0 00-2-2H10V4h4V2H10A2.0023 2.0023 0 008 4V8H4a2.0023 2.0023 0 00-2 2V28a2.0023 2.0023 0 002 2H22a2.0023 2.0023 0 002-2V24h4a2.0023 2.0023 0 002-2V18zM22 28H4V10H22z"}}],"name":"replicate","size":20};/**
|
|
1257
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1258
|
+
*
|
|
1259
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1260
|
+
* LICENSE file in the root directory of this source tree.
|
|
1261
|
+
*
|
|
1262
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1263
|
+
*/var _20$Q={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M18 22L19.414 20.586 23 24.172 23 4 25 4 25 24.172 28.586 20.586 30 22 24 28 18 22zM2 18H16V20H2zM6 12H16V14H6zM10 6H16V8H10z"}}],"name":"sort--ascending","size":20};/**
|
|
1264
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1265
|
+
*
|
|
1266
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1267
|
+
* LICENSE file in the root directory of this source tree.
|
|
1268
|
+
*
|
|
1269
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1270
|
+
*/var _20$P={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M18 22L19.414 20.586 23 24.172 23 4 25 4 25 24.172 28.586 20.586 30 22 24 28 18 22zM2 6H16V8H2zM6 12H16V14H6zM10 18H16V20H10z"}}],"name":"sort--descending","size":20};/**
|
|
1271
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1272
|
+
*
|
|
1273
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1274
|
+
* LICENSE file in the root directory of this source tree.
|
|
1275
|
+
*
|
|
1276
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1277
|
+
*/var _20$O={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M22,22v6H6V4H16V2H6A2,2,0,0,0,4,4V28a2,2,0,0,0,2,2H22a2,2,0,0,0,2-2V22Z"}},{"elem":"path","attrs":{"d":"M29.54,5.76l-3.3-3.3a1.6,1.6,0,0,0-2.24,0l-14,14V22h5.53l14-14a1.6,1.6,0,0,0,0-2.24ZM14.7,20H12V17.3l9.44-9.45,2.71,2.71ZM25.56,9.15,22.85,6.44l2.27-2.27,2.71,2.71Z"}}],"name":"request-quote","size":20};/**
|
|
1278
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1279
|
+
*
|
|
1280
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1281
|
+
* LICENSE file in the root directory of this source tree.
|
|
1282
|
+
*
|
|
1283
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1284
|
+
*/var _20$N={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M18,28A12,12,0,1,0,6,16v6.2L2.4,18.6,1,20l6,6,6-6-1.4-1.4L8,22.2V16H8A10,10,0,1,1,18,26Z"}}],"name":"reset","size":20};/**
|
|
1285
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1286
|
+
*
|
|
1287
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1288
|
+
* LICENSE file in the root directory of this source tree.
|
|
1289
|
+
*
|
|
1290
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1291
|
+
*/var _20$M={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M29.7 19.3l-3-3c-.4-.4-1-.4-1.4 0L16 25.6V30h4.4l9.3-9.3C30.1 20.3 30.1 19.7 29.7 19.3zM19.6 28H18v-1.6l5-5 1.6 1.6L19.6 28zM26 21.6L24.4 20l1.6-1.6 1.6 1.6L26 21.6zM10 23H12V25H10zM14 18H18V20H14zM10 18H12V20H10zM14 13H22V15H14zM10 13H12V15H10z"}},{"elem":"path","attrs":{"d":"M7,28V7h3v3h12V7h3v6h2V7c0-1.1-0.9-2-2-2h-3V4c0-1.1-0.9-2-2-2h-8c-1.1,0-2,0.9-2,2v1H7C5.9,5,5,5.9,5,7v21\tc0,1.1,0.9,2,2,2h5v-2H7z M12,4h8v4h-8V4z"}}],"name":"result--draft","size":20};/**
|
|
1292
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1293
|
+
*
|
|
1294
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1295
|
+
* LICENSE file in the root directory of this source tree.
|
|
1296
|
+
*
|
|
1297
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1298
|
+
*/var _20$L={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M23,20a5,5,0,0,0-3.89,1.89L11.8,17.32a4.46,4.46,0,0,0,0-2.64l7.31-4.57A5,5,0,1,0,18,7a4.79,4.79,0,0,0,.2,1.32l-7.31,4.57a5,5,0,1,0,0,6.22l7.31,4.57A4.79,4.79,0,0,0,18,25a5,5,0,1,0,5-5ZM23,4a3,3,0,1,1-3,3A3,3,0,0,1,23,4ZM7,19a3,3,0,1,1,3-3A3,3,0,0,1,7,19Zm16,9a3,3,0,1,1,3-3A3,3,0,0,1,23,28Z"}}],"name":"share","size":20};/**
|
|
1299
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1300
|
+
*
|
|
1301
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1302
|
+
* LICENSE file in the root directory of this source tree.
|
|
1303
|
+
*
|
|
1304
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1305
|
+
*/var _20$K={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M7,28a1,1,0,0,1-1-1V5a1,1,0,0,1,1.4819-.8763l20,11a1,1,0,0,1,0,1.7525l-20,11A1.0005,1.0005,0,0,1,7,28ZM8,6.6909V25.3088L24.9248,16Z"}}],"name":"play","size":20};/**
|
|
1306
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1307
|
+
*
|
|
1308
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1309
|
+
* LICENSE file in the root directory of this source tree.
|
|
1310
|
+
*
|
|
1311
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1312
|
+
*/var _20$J={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M19 10H26V12H19zM19 15H26V17H19zM19 20H26V22H19zM6 10H13V12H6zM6 15H13V17H6zM6 20H13V22H6z"}},{"elem":"path","attrs":{"d":"M28,5H4A2.002,2.002,0,0,0,2,7V25a2.002,2.002,0,0,0,2,2H28a2.002,2.002,0,0,0,2-2V7A2.002,2.002,0,0,0,28,5ZM4,7H15V25H4ZM17,25V7H28V25Z"}}],"name":"book","size":20};/**
|
|
1313
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1314
|
+
*
|
|
1315
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1316
|
+
* LICENSE file in the root directory of this source tree.
|
|
1317
|
+
*
|
|
1318
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1319
|
+
*/var _20$I={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28 8V21h2V8a3.9986 3.9986 0 00-4-4H8.2429l2 2H26A1.9965 1.9965 0 0128 8zM30 28.5859L3.4141 2 2 3.4141 3.5039 4.918A3.9181 3.9181 0 002 8V20a3.9992 3.9992 0 004 4h6V22H6a1.9965 1.9965 0 01-2-2V8a1.9814 1.9814 0 01.9194-1.6665L20.5859 22H17l-4 7 1.7358 1 3.4288-6h4.4213l6 6z"}}],"name":"chat--off","size":20};/**
|
|
1320
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1321
|
+
*
|
|
1322
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1323
|
+
* LICENSE file in the root directory of this source tree.
|
|
1324
|
+
*
|
|
1325
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1326
|
+
*/var _20$H={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28,6H8C6.8,6,6,6.8,6,8v14c0,1.2,0.8,2,2,2h8v-2H8V8h20v14h-7.2L16,28.8l1.6,1.2l4.2-6H28c1.2,0,2-0.8,2-2V8\tC30,6.8,29.2,6,28,6z"}},{"elem":"path","attrs":{"d":"M4,18H2V5c0-1.7,1.3-3,3-3h13v2H5C4.4,4,4,4.4,4,5V18z"}}],"name":"forum","size":20};/**
|
|
1327
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1328
|
+
*
|
|
1329
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1330
|
+
* LICENSE file in the root directory of this source tree.
|
|
1331
|
+
*
|
|
1332
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1333
|
+
*/var _20$G={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M27 25H21a3 3 0 00-3 3v2h2V28a1 1 0 011-1h6a1 1 0 011 1v2h2V28A3 3 0 0027 25zM20 20a4 4 0 104-4A4 4 0 0020 20zm6 0a2 2 0 11-2-2A2 2 0 0126 20zM6 21V20H4v1a7 7 0 007 7h3V26H11A5 5 0 016 21zM19 10H26V12H19zM19 6H29V8H19zM19 2H29V4H19zM11 11H5a3 3 0 00-3 3v2H4V14a1 1 0 011-1h6a1 1 0 011 1v2h2V14A3 3 0 0011 11zM8 10A4 4 0 104 6 4 4 0 008 10zM8 4A2 2 0 116 6 2 2 0 018 4z"}}],"name":"share-knowledge","size":20};/**
|
|
1334
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1335
|
+
*
|
|
1336
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1337
|
+
* LICENSE file in the root directory of this source tree.
|
|
1338
|
+
*
|
|
1339
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1340
|
+
*/var _20$F={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"}},{"elem":"circle","attrs":{"cx":"16","cy":"23.5","r":"1.5"}},{"elem":"path","attrs":{"d":"M17,8H15.5A4.49,4.49,0,0,0,11,12.5V13h2v-.5A2.5,2.5,0,0,1,15.5,10H17a2.5,2.5,0,0,1,0,5H15v4.5h2V17a4.5,4.5,0,0,0,0-9Z"}}],"name":"help","size":20};/**
|
|
1341
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1342
|
+
*
|
|
1343
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1344
|
+
* LICENSE file in the root directory of this source tree.
|
|
1345
|
+
*
|
|
1346
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1347
|
+
*/var _20$E={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26 30h-2v-5c-.0033-2.7601-2.2399-4.9967-5-5h-6c-2.7601.0033-4.9967 2.2399-5 5v5h-2v-5c.0045-3.8641 3.1359-6.9955 7-7h6c3.8641.0045 6.9955 3.1359 7 7v5zM22 6v4c0 1.1025-.8972 2-2 2h-1c-.5522 0-1 .4478-1 1s.4478 1 1 1h1c2.2056 0 4-1.7944 4-4v-4h-2zM16 16c-3.8599 0-7-3.1401-7-7S12.1401 2 16 2c1.9885 0 3.8901.8503 5.2173 2.3329l-1.4902 1.334c-.9482-1.0593-2.3066-1.6669-3.7271-1.6669-2.7571 0-5 2.243-5 5s2.2429 5 5 5v2z"}}],"name":"customer-service","size":20};/**
|
|
1348
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1349
|
+
*
|
|
1350
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1351
|
+
* LICENSE file in the root directory of this source tree.
|
|
1352
|
+
*
|
|
1353
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1354
|
+
*/var _20$D={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M31 16L24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16zM1 16L8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16z"}},{"elem":"path","attrs":{"d":"M5.91 15H26.080000000000002V17H5.91z","transform":"rotate(-75 15.996 16)"}}],"name":"code","size":20};/**
|
|
1355
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1356
|
+
*
|
|
1357
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1358
|
+
* LICENSE file in the root directory of this source tree.
|
|
1359
|
+
*
|
|
1360
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1361
|
+
*/var _20$C={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M6.34 19H17.65V21H6.34z","transform":"rotate(-45 11.995 20.002)"}},{"elem":"path","attrs":{"d":"M17,30a1,1,0,0,1-.37-.07,1,1,0,0,1-.62-.79l-1-7,2-.28.75,5.27L21,24.52V17a1,1,0,0,1,.29-.71l4.07-4.07A8.94,8.94,0,0,0,28,5.86V4H26.14a8.94,8.94,0,0,0-6.36,2.64l-4.07,4.07A1,1,0,0,1,15,11H7.48L4.87,14.26l5.27.75-.28,2-7-1a1,1,0,0,1-.79-.62,1,1,0,0,1,.15-1l4-5A1,1,0,0,1,7,9h7.59l3.77-3.78A10.92,10.92,0,0,1,26.14,2H28a2,2,0,0,1,2,2V5.86a10.92,10.92,0,0,1-3.22,7.78L23,17.41V25a1,1,0,0,1-.38.78l-5,4A1,1,0,0,1,17,30Z"}}],"name":"rocket","size":20};/**
|
|
1362
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1363
|
+
*
|
|
1364
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1365
|
+
* LICENSE file in the root directory of this source tree.
|
|
1366
|
+
*
|
|
1367
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1368
|
+
*/var _20$B={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16,4A12,12,0,1,1,4,16,12,12,0,0,1,16,4m0-2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Z"}},{"elem":"path","attrs":{"d":"M23,10.41,21.59,9l-4.3,4.3a3,3,0,0,0-4,4L9,21.59,10.41,23l4.3-4.3a3,3,0,0,0,4-4ZM17,16a1,1,0,1,1-1-1A1,1,0,0,1,17,16Z"}},{"elem":"circle","attrs":{"cx":"16","cy":"7.5","r":"1.5"}}],"name":"compass","size":20};/**
|
|
1369
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1370
|
+
*
|
|
1371
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1372
|
+
* LICENSE file in the root directory of this source tree.
|
|
1373
|
+
*
|
|
1374
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1375
|
+
*/var _20$A={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M2 14.8H18V16H2zM2 11.2H18V12.399999999999999H2zM2 7.6H18V8.799999999999999H2zM2 4H18V5.2H2z"}}],"name":"menu","size":20};/**
|
|
1376
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1377
|
+
*
|
|
1378
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1379
|
+
* LICENSE file in the root directory of this source tree.
|
|
1380
|
+
*
|
|
1381
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1382
|
+
*/var _20$z={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M29,27.5859l-7.5521-7.5521a11.0177,11.0177,0,1,0-1.4141,1.4141L27.5859,29ZM4,13a9,9,0,1,1,9,9A9.01,9.01,0,0,1,4,13Z"}}],"name":"search","size":20};/**
|
|
1383
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1384
|
+
*
|
|
1385
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1386
|
+
* LICENSE file in the root directory of this source tree.
|
|
1387
|
+
*
|
|
1388
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1389
|
+
*/var _20$y={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M27,16.76c0-.25,0-.5,0-.76s0-.51,0-.77l1.92-1.68A2,2,0,0,0,29.3,11L26.94,7a2,2,0,0,0-1.73-1,2,2,0,0,0-.64.1l-2.43.82a11.35,11.35,0,0,0-1.31-.75l-.51-2.52a2,2,0,0,0-2-1.61H13.64a2,2,0,0,0-2,1.61l-.51,2.52a11.48,11.48,0,0,0-1.32.75L7.43,6.06A2,2,0,0,0,6.79,6,2,2,0,0,0,5.06,7L2.7,11a2,2,0,0,0,.41,2.51L5,15.24c0,.25,0,.5,0,.76s0,.51,0,.77L3.11,18.45A2,2,0,0,0,2.7,21L5.06,25a2,2,0,0,0,1.73,1,2,2,0,0,0,.64-.1l2.43-.82a11.35,11.35,0,0,0,1.31.75l.51,2.52a2,2,0,0,0,2,1.61h4.72a2,2,0,0,0,2-1.61l.51-2.52a11.48,11.48,0,0,0,1.32-.75l2.42.82a2,2,0,0,0,.64.1,2,2,0,0,0,1.73-1L29.3,21a2,2,0,0,0-.41-2.51ZM25.21,24l-3.43-1.16a8.86,8.86,0,0,1-2.71,1.57L18.36,28H13.64l-.71-3.55a9.36,9.36,0,0,1-2.7-1.57L6.79,24,4.43,20l2.72-2.4a8.9,8.9,0,0,1,0-3.13L4.43,12,6.79,8l3.43,1.16a8.86,8.86,0,0,1,2.71-1.57L13.64,4h4.72l.71,3.55a9.36,9.36,0,0,1,2.7,1.57L25.21,8,27.57,12l-2.72,2.4a8.9,8.9,0,0,1,0,3.13L27.57,20Z"}},{"elem":"path","attrs":{"d":"M16,22a6,6,0,1,1,6-6A5.94,5.94,0,0,1,16,22Zm0-10a3.91,3.91,0,0,0-4,4,3.91,3.91,0,0,0,4,4,3.91,3.91,0,0,0,4-4A3.91,3.91,0,0,0,16,12Z"}}],"name":"settings","size":20};/**
|
|
1390
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1391
|
+
*
|
|
1392
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1393
|
+
* LICENSE file in the root directory of this source tree.
|
|
1394
|
+
*
|
|
1395
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1396
|
+
*/var _20$x={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28.7071,19.293,26,16.5859V13a10.0136,10.0136,0,0,0-9-9.9492V1H15V3.0508A10.0136,10.0136,0,0,0,6,13v3.5859L3.2929,19.293A1,1,0,0,0,3,20v3a1,1,0,0,0,1,1h7v.7768a5.152,5.152,0,0,0,4.5,5.1987A5.0057,5.0057,0,0,0,21,25V24h7a1,1,0,0,0,1-1V20A1,1,0,0,0,28.7071,19.293ZM19,25a3,3,0,0,1-6,0V24h6Zm8-3H5V20.4141L7.707,17.707A1,1,0,0,0,8,17V13a8,8,0,0,1,16,0v4a1,1,0,0,0,.293.707L27,20.4141Z"}}],"name":"notification","size":20};/**
|
|
1397
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1398
|
+
*
|
|
1399
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1400
|
+
* LICENSE file in the root directory of this source tree.
|
|
1401
|
+
*
|
|
1402
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1403
|
+
*/var _20$w={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16 4a5 5 0 11-5 5 5 5 0 015-5m0-2a7 7 0 107 7A7 7 0 0016 2zM26 30H24V25a5 5 0 00-5-5H13a5 5 0 00-5 5v5H6V25a7 7 0 017-7h6a7 7 0 017 7z"}}],"name":"user","size":20};/**
|
|
1404
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1405
|
+
*
|
|
1406
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1407
|
+
* LICENSE file in the root directory of this source tree.
|
|
1408
|
+
*
|
|
1409
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1410
|
+
*/var _20$v={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M8,14H19v2H8Zm0,5H21v2H8Z"}},{"elem":"path","attrs":{"d":"M28,4H4A2,2,0,0,0,2,6V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V6A2,2,0,0,0,28,4Zm0,2V8H4V6ZM4,26V10H28V26Z"}}],"name":"account","size":20};/**
|
|
1411
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1412
|
+
*
|
|
1413
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1414
|
+
* LICENSE file in the root directory of this source tree.
|
|
1415
|
+
*
|
|
1416
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1417
|
+
*/var _20$u={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M12,29a1,1,0,0,1-.92-.62L6.33,17H2V15H7a1,1,0,0,1,.92.62L12,25.28,20.06,3.65A1,1,0,0,1,21,3a1,1,0,0,1,.93.68L25.72,15H30v2H25a1,1,0,0,1-.95-.68L21,7,12.94,28.35A1,1,0,0,1,12,29Z"}}],"name":"activity","size":20};/**
|
|
1418
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1419
|
+
*
|
|
1420
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1421
|
+
* LICENSE file in the root directory of this source tree.
|
|
1422
|
+
*
|
|
1423
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1424
|
+
*/var _20$t={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M4,2H2V28a2,2,0,0,0,2,2H30V28H4Z"}},{"elem":"path","attrs":{"d":"M30,9H23v2h3.59L19,18.59l-4.29-4.3a1,1,0,0,0-1.42,0L6,21.59,7.41,23,14,16.41l4.29,4.3a1,1,0,0,0,1.42,0L28,12.41V16h2Z"}}],"name":"analytics","size":20};/**
|
|
1425
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1426
|
+
*
|
|
1427
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1428
|
+
* LICENSE file in the root directory of this source tree.
|
|
1429
|
+
*
|
|
1430
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1431
|
+
*/var _20$s={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26,30H14a2,2,0,0,1-2-2V25h2v3H26V4H14V7H12V4a2,2,0,0,1,2-2H26a2,2,0,0,1,2,2V28A2,2,0,0,1,26,30Z"}},{"elem":"path","attrs":{"d":"M14.59 20.59L18.17 17 4 17 4 15 18.17 15 14.59 11.41 16 10 22 16 16 22 14.59 20.59z"}}],"name":"login","size":20};/**
|
|
1432
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1433
|
+
*
|
|
1434
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1435
|
+
* LICENSE file in the root directory of this source tree.
|
|
1436
|
+
*
|
|
1437
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1438
|
+
*/var _20$r={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M6,30H18a2.0023,2.0023,0,0,0,2-2V25H18v3H6V4H18V7h2V4a2.0023,2.0023,0,0,0-2-2H6A2.0023,2.0023,0,0,0,4,4V28A2.0023,2.0023,0,0,0,6,30Z"}},{"elem":"path","attrs":{"d":"M20.586 20.586L24.172 17 10 17 10 15 24.172 15 20.586 11.414 22 10 28 16 22 22 20.586 20.586z"}}],"name":"logout","size":20};/**
|
|
1439
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1440
|
+
*
|
|
1441
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1442
|
+
* LICENSE file in the root directory of this source tree.
|
|
1443
|
+
*
|
|
1444
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1445
|
+
*/var _20$q={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M31 30H29V27a3 3 0 00-3-3H22a3 3 0 00-3 3v3H17V27a5 5 0 015-5h4a5 5 0 015 5zM24 12a3 3 0 11-3 3 3 3 0 013-3m0-2a5 5 0 105 5A5 5 0 0024 10zM15 22H13V19a3 3 0 00-3-3H6a3 3 0 00-3 3v3H1V19a5 5 0 015-5h4a5 5 0 015 5zM8 4A3 3 0 115 7 3 3 0 018 4M8 2a5 5 0 105 5A5 5 0 008 2z"}}],"name":"group","size":20};/**
|
|
1446
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1447
|
+
*
|
|
1448
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1449
|
+
* LICENSE file in the root directory of this source tree.
|
|
1450
|
+
*
|
|
1451
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1452
|
+
*/var _20$p={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M17.8,5.5l-3.3-3.3C14.3,2.1,14.2,2,14,2H3.3C2.6,2,2,2.6,2,3.3v13.3C2,17.4,2.6,18,3.3,18h13.3c0.7,0,1.4-0.5,1.4-1.2V6.1\tC18,5.7,17.9,5.7,17.8,5.5z M7.3,3.3h5.3v3.3H7.3V3.3z M12.7,16.7H7.3v-5.3h5.3L12.7,16.7L12.7,16.7z M14,16.7v-5.3\tc0-0.7-0.6-1.3-1.3-1.3H7.3C6.6,10,6,10.6,6,11.3v5.3H3.3V3.3H6v3.3C6,7.4,6.6,8,7.3,8h5.3C13.4,8,14,7.4,14,6.7v-3l2.7,2.7v10.4\tL14,16.7L14,16.7z"}}],"name":"save","size":20};/**
|
|
1453
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1454
|
+
*
|
|
1455
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1456
|
+
* LICENSE file in the root directory of this source tree.
|
|
1457
|
+
*
|
|
1458
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1459
|
+
*/var _20$o={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26 6v4H6V6H26m0-2H6A2 2 0 004 6v4a2 2 0 002 2H26a2 2 0 002-2V6a2 2 0 00-2-2zM10 16V26H6V16h4m0-2H6a2 2 0 00-2 2V26a2 2 0 002 2h4a2 2 0 002-2V16a2 2 0 00-2-2zM26 16V26H16V16H26m0-2H16a2 2 0 00-2 2V26a2 2 0 002 2H26a2 2 0 002-2V16a2 2 0 00-2-2z"}}],"name":"template","size":20};/**
|
|
1460
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1461
|
+
*
|
|
1462
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1463
|
+
* LICENSE file in the root directory of this source tree.
|
|
1464
|
+
*
|
|
1465
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1466
|
+
*/var _20$n={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3\tz M18,4.4l5.6,5.6H18V4.4z M24,28H8V4h8v6c0,1.1,0.9,2,2,2h6V28z"}},{"elem":"path","attrs":{"d":"M10 22H22V24H10zM10 16H22V18H10z"}}],"name":"document","size":20};/**
|
|
1467
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1468
|
+
*
|
|
1469
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1470
|
+
* LICENSE file in the root directory of this source tree.
|
|
1471
|
+
*
|
|
1472
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1473
|
+
*/var _20$m={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M13 21L26.17 21 23.59 23.59 25 25 30 20 25 15 23.59 16.41 26.17 19 13 19 13 21z"}},{"elem":"path","attrs":{"d":"M22,14V10a1,1,0,0,0-.29-.71l-7-7A1,1,0,0,0,14,2H4A2,2,0,0,0,2,4V28a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V26H20v2H4V4h8v6a2,2,0,0,0,2,2h6v2Zm-8-4V4.41L19.59,10Z"}}],"name":"document--export","size":20};/**
|
|
1474
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1475
|
+
*
|
|
1476
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1477
|
+
* LICENSE file in the root directory of this source tree.
|
|
1478
|
+
*
|
|
1479
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1480
|
+
*/var _20$l={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M30 25L28.586 23.586 26 26.172 26 18 24 18 24 26.172 21.414 23.586 20 25 25 30 30 25z"}},{"elem":"path","attrs":{"d":"M18,28H8V4h8v6a2.0058,2.0058,0,0,0,2,2h6v3l2,0V10a.9092.9092,0,0,0-.3-.7l-7-7A.9087.9087,0,0,0,18,2H8A2.0058,2.0058,0,0,0,6,4V28a2.0058,2.0058,0,0,0,2,2H18ZM18,4.4,23.6,10H18Z"}}],"name":"document--download","size":20};/**
|
|
1481
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1482
|
+
*
|
|
1483
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1484
|
+
* LICENSE file in the root directory of this source tree.
|
|
1485
|
+
*
|
|
1486
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1487
|
+
*/var _20$k={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M11.17,6l3.42,3.41.58.59H28V26H4V6h7.17m0-2H4A2,2,0,0,0,2,6V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2H16L12.59,4.59A2,2,0,0,0,11.17,4Z"}}],"name":"folder","size":20};/**
|
|
1488
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1489
|
+
*
|
|
1490
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1491
|
+
* LICENSE file in the root directory of this source tree.
|
|
1492
|
+
*
|
|
1493
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1494
|
+
*/var _20$j={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M19,14a3,3,0,1,0-3-3A3,3,0,0,0,19,14Zm0-4a1,1,0,1,1-1,1A1,1,0,0,1,19,10Z"}},{"elem":"path","attrs":{"d":"M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4Zm0,22H6V20l5-5,5.59,5.59a2,2,0,0,0,2.82,0L21,19l5,5Zm0-4.83-3.59-3.59a2,2,0,0,0-2.82,0L18,19.17l-5.59-5.59a2,2,0,0,0-2.82,0L6,17.17V6H26Z"}}],"name":"image","size":20};/**
|
|
1495
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1496
|
+
*
|
|
1497
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1498
|
+
* LICENSE file in the root directory of this source tree.
|
|
1499
|
+
*
|
|
1500
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1501
|
+
*/var _20$i={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20\tV26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"}}],"name":"calendar","size":20};/**
|
|
1502
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1503
|
+
*
|
|
1504
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1505
|
+
* LICENSE file in the root directory of this source tree.
|
|
1506
|
+
*
|
|
1507
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1508
|
+
*/var _20$h={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M10,19c-5,0-9-4-9-9s4-9,9-9s9,4,9,9S15,19,10,19z M10,2.3c-4.3,0-7.7,3.5-7.7,7.7s3.5,7.7,7.7,7.7s7.7-3.5,7.7-7.7\tS14.3,2.3,10,2.3z"}},{"elem":"path","attrs":{"d":"M13 13.9L9.4 10.3 9.4 4 10.6 4 10.6 9.7 13.9 13z"}}],"name":"time","size":20};/**
|
|
1509
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1510
|
+
*
|
|
1511
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1512
|
+
* LICENSE file in the root directory of this source tree.
|
|
1513
|
+
*
|
|
1514
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1515
|
+
*/var _20$g={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M17 22L17 14 13 14 13 16 15 16 15 22 12 22 12 24 20 24 20 22 17 22zM16 8a1.5 1.5 0 101.5 1.5A1.5 1.5 0 0016 8z"}},{"elem":"path","attrs":{"d":"M16,30A14,14,0,1,1,30,16,14,14,0,0,1,16,30ZM16,4A12,12,0,1,0,28,16,12,12,0,0,0,16,4Z"}}],"name":"information","size":20};/**
|
|
1516
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1517
|
+
*
|
|
1518
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1519
|
+
* LICENSE file in the root directory of this source tree.
|
|
1520
|
+
*
|
|
1521
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1522
|
+
*/var _20$f={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"}},{"elem":"path","attrs":{"d":"M15 8H17V19H15zM16 22a1.5 1.5 0 101.5 1.5A1.5 1.5 0 0016 22z"}}],"name":"warning","size":20};/**
|
|
1523
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1524
|
+
*
|
|
1525
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1526
|
+
* LICENSE file in the root directory of this source tree.
|
|
1527
|
+
*
|
|
1528
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1529
|
+
*/var _20$e={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M2,16H2A14,14,0,1,0,16,2,14,14,0,0,0,2,16Zm23.15,7.75L8.25,6.85a12,12,0,0,1,16.9,16.9ZM8.24,25.16A12,12,0,0,1,6.84,8.27L23.73,25.16a12,12,0,0,1-15.49,0Z"}}],"name":"error","size":20};/**
|
|
1530
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1531
|
+
*
|
|
1532
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1533
|
+
* LICENSE file in the root directory of this source tree.
|
|
1534
|
+
*
|
|
1535
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1536
|
+
*/var _20$d={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4,9-9S15,1,10,1z M8.7,13.5l-3.2-3.2l1-1l2.2,2.2l4.8-4.8l1,1L8.7,13.5z"}},{"elem":"path","attrs":{"fill":"none","d":"M8.7,13.5l-3.2-3.2l1-1l2.2,2.2l4.8-4.8l1,1L8.7,13.5z","data-icon-path":"inner-path","opacity":"0"}}],"name":"checkmark--filled","size":20};/**
|
|
1537
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1538
|
+
*
|
|
1539
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1540
|
+
* LICENSE file in the root directory of this source tree.
|
|
1541
|
+
*
|
|
1542
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1543
|
+
*/var _20$c={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z"}},{"elem":"path","attrs":{"d":"M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z"}}],"name":"copy","size":20};/**
|
|
1544
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1545
|
+
*
|
|
1546
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1547
|
+
* LICENSE file in the root directory of this source tree.
|
|
1548
|
+
*
|
|
1549
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1550
|
+
*/var _20$b={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M16,2l-4.55,9.22L1.28,12.69l7.36,7.18L6.9,30,16,25.22,25.1,30,23.36,19.87l7.36-7.17L20.55,11.22Z"}}],"name":"star--filled","size":20};/**
|
|
1551
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1552
|
+
*
|
|
1553
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1554
|
+
* LICENSE file in the root directory of this source tree.
|
|
1555
|
+
*
|
|
1556
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1557
|
+
*/var _20$a={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M2 16H7V30H2zM23 30H9V15.1973l3.0422-4.5635.8453-5.9165A2.0094 2.0094 0 0114.8672 3H15a3.0033 3.0033 0 013 3v6h8a4.0045 4.0045 0 014 4v7A7.0078 7.0078 0 0123 30z"}}],"name":"thumbs-up--filled","size":20};/**
|
|
1558
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1559
|
+
*
|
|
1560
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1561
|
+
* LICENSE file in the root directory of this source tree.
|
|
1562
|
+
*
|
|
1563
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1564
|
+
*/var _20$9={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M2 2H7V16H2zM23 2H9V16.8027l3.0422 4.5635.8453 5.9165A2.0094 2.0094 0 0014.8672 29H15a3.0033 3.0033 0 003-3V20h8a4.0045 4.0045 0 004-4V9A7.0078 7.0078 0 0023 2z"}}],"name":"thumbs-down--filled","size":20};/**
|
|
1565
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1566
|
+
*
|
|
1567
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1568
|
+
* LICENSE file in the root directory of this source tree.
|
|
1569
|
+
*
|
|
1570
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1571
|
+
*/var _20$8={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26 4H28V28H26zM11.414 20.586L7.828 17 22 17 22 15 7.828 15 11.414 11.414 10 10 4 16 10 22 11.414 20.586z"}}],"name":"exit","size":20};/**
|
|
1572
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1573
|
+
*
|
|
1574
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1575
|
+
* LICENSE file in the root directory of this source tree.
|
|
1576
|
+
*
|
|
1577
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1578
|
+
*/var _20$7={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M12 12H14V24H12zM18 12H20V24H18z"}},{"elem":"path","attrs":{"d":"M4 6V8H6V28a2 2 0 002 2H24a2 2 0 002-2V8h2V6zM8 28V8H24V28zM12 2H20V4H12z"}}],"name":"trash-can","size":20};/**
|
|
1579
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1580
|
+
*
|
|
1581
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1582
|
+
* LICENSE file in the root directory of this source tree.
|
|
1583
|
+
*
|
|
1584
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1585
|
+
*/var _20$6={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M24,4V26.75l-7.1-3.59-.9-.45-.9.45L8,26.75V4H24m0-2H8A2,2,0,0,0,6,4V30L16,25,26,30V4A2,2,0,0,0,24,2Z"}}],"name":"bookmark","size":20};/**
|
|
1586
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1587
|
+
*
|
|
1588
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1589
|
+
* LICENSE file in the root directory of this source tree.
|
|
1590
|
+
*
|
|
1591
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1592
|
+
*/var _20$5={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M11.5475,25.7523c9.0566,0,14.0102-7.5034,14.0102-14.0102,0-.2131,0-.4253-.0144-.6365,.9637-.697,1.7955-1.5601,2.4566-2.5488-.8987,.3982-1.852,.6594-2.8282,.7747,1.0279-.6154,1.7972-1.5833,2.1648-2.7235-.9666,.5736-2.024,.9778-3.1267,1.1952-1.8648-1.9829-4.984-2.0786-6.9669-.2138-1.2788,1.2026-1.8214,2.9947-1.4245,4.7047-3.9591-.1985-7.6479-2.0685-10.1482-5.1446-1.3069,2.2499-.6394,5.1282,1.5245,6.5731-.7836-.0232-1.5501-.2346-2.2349-.6163v.0624c.0006,2.3439,1.6529,4.3628,3.9504,4.8269-.7249,.1977-1.4855,.2266-2.2234,.0845,.6451,2.0058,2.4937,3.38,4.6003,3.4195-1.7436,1.3703-3.8975,2.1142-6.1152,2.112-.3918-.0008-.7832-.0245-1.1722-.071,2.2518,1.4451,4.8719,2.2116,7.5475,2.208"}}],"name":"logo--twitter","size":20};/**
|
|
1593
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1594
|
+
*
|
|
1595
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1596
|
+
* LICENSE file in the root directory of this source tree.
|
|
1597
|
+
*
|
|
1598
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1599
|
+
*/var _20$4={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26.2,4H5.8C4.8,4,4,4.8,4,5.7v20.5c0,0.9,0.8,1.7,1.8,1.7h20.4c1,0,1.8-0.8,1.8-1.7V5.7C28,4.8,27.2,4,26.2,4z M11.1,24.4\tH7.6V13h3.5V24.4z M9.4,11.4c-1.1,0-2.1-0.9-2.1-2.1c0-1.2,0.9-2.1,2.1-2.1c1.1,0,2.1,0.9,2.1,2.1S10.5,11.4,9.4,11.4z M24.5,24.3\tH21v-5.6c0-1.3,0-3.1-1.9-3.1c-1.9,0-2.1,1.5-2.1,2.9v5.7h-3.5V13h3.3v1.5h0.1c0.5-0.9,1.7-1.9,3.4-1.9c3.6,0,4.3,2.4,4.3,5.5V24.3z"}}],"name":"logo--linkedin","size":20};/**
|
|
1600
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1601
|
+
*
|
|
1602
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1603
|
+
* LICENSE file in the root directory of this source tree.
|
|
1604
|
+
*
|
|
1605
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1606
|
+
*/var _20$3={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M26.67,4H5.33A1.34,1.34,0,0,0,4,5.33V26.67A1.34,1.34,0,0,0,5.33,28H16.82V18.72H13.7V15.09h3.12V12.42c0-3.1,1.89-4.79,4.67-4.79.93,0,1.86,0,2.79.14V11H22.37c-1.51,0-1.8.72-1.8,1.77v2.31h3.6l-.47,3.63H20.57V28h6.1A1.34,1.34,0,0,0,28,26.67V5.33A1.34,1.34,0,0,0,26.67,4Z"}}],"name":"logo--facebook","size":20};/**
|
|
1607
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1608
|
+
*
|
|
1609
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1610
|
+
* LICENSE file in the root directory of this source tree.
|
|
1611
|
+
*
|
|
1612
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1613
|
+
*/var _20$2={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M29.41,9.26a3.5,3.5,0,0,0-2.47-2.47C24.76,6.2,16,6.2,16,6.2s-8.76,0-10.94.59A3.5,3.5,0,0,0,2.59,9.26,36.13,36.13,0,0,0,2,16a36.13,36.13,0,0,0,.59,6.74,3.5,3.5,0,0,0,2.47,2.47C7.24,25.8,16,25.8,16,25.8s8.76,0,10.94-.59a3.5,3.5,0,0,0,2.47-2.47A36.13,36.13,0,0,0,30,16,36.13,36.13,0,0,0,29.41,9.26ZM13.2,20.2V11.8L20.47,16Z"}}],"name":"logo--youtube","size":20};/**
|
|
1614
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1615
|
+
*
|
|
1616
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1617
|
+
* LICENSE file in the root directory of this source tree.
|
|
1618
|
+
*
|
|
1619
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1620
|
+
*/var _20$1={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"m29.0581,11.1929c0-6.0742-3.9797-7.8545-3.9797-7.8545-2.0066-.9214-5.4522-1.3091-9.0318-1.3384h-.0879c-3.5798.0293-7.023.417-9.0296,1.3384,0,0-3.98,1.7803-3.98,7.8545,0,1.3911-.0271,3.0537.0171,4.8174.1445,5.9404,1.0889,11.7945,6.5811,13.2481,2.5322.6704,4.7063.8105,6.4573.7144,3.1755-.1758,4.958-1.1333,4.958-1.1333l-.1047-2.3037s-2.269.7153-4.8176.6284c-2.5249-.0869-5.1902-.2725-5.5986-3.3726-.0378-.272-.0566-.563-.0566-.8691,0,0,2.4785.606,5.6196.75,1.9207.0879,3.7219-.1128,5.5515-.3311,3.5083-.4189,6.563-2.5806,6.9468-4.5557.605-3.1113.5552-7.5928.5552-7.5928Zm-4.6943,7.8257h-2.9138v-7.1382c0-1.5049-.6331-2.2686-1.8997-2.2686-1.4002,0-2.1018.9058-2.1018,2.6973v3.9077h-2.8967v-3.9077c0-1.7915-.7019-2.6973-2.1021-2.6973-1.2666,0-1.8997.7637-1.8997,2.2686v7.1382h-2.9138v-7.3545c0-1.5029.3828-2.6978,1.1516-3.5811.7927-.8838,1.8308-1.3369,3.1196-1.3369,1.491,0,2.6204.5732,3.367,1.7192l.7256,1.2168.7261-1.2168c.7463-1.146,1.8755-1.7192,3.3667-1.7192,1.2886,0,2.3267.4531,3.1196,1.3369.7686.8833,1.1514,2.0781,1.1514,3.5811v7.3545Z"}}],"name":"logo--mastodon","size":20};/**
|
|
1621
|
+
* Copyright IBM Corp. 2016, 2023
|
|
1622
|
+
*
|
|
1623
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
1624
|
+
* LICENSE file in the root directory of this source tree.
|
|
1625
|
+
*
|
|
1626
|
+
* Code generated by @carbon/icon-build-helpers. DO NOT EDIT.
|
|
1627
|
+
*/var _20={"elem":"svg","attrs":{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 32 32","fill":"currentColor","width":20,"height":20},"content":[{"elem":"path","attrs":{"d":"M9.2,6.9c2.7,2.1,5.7,6.3,6.8,8.5,1.1-2.2,4-6.4,6.8-8.5,2-1.5,5.2-2.6,5.2,1s-.4,6.2-.7,7c-.9,3.1-4,3.8-6.8,3.4,4.8.8,6.1,3.6,3.4,6.3-5.1,5.2-7.3-1.3-7.8-3,0-.3-.1-.5-.1-.3,0-.1,0,0-.1.3-.6,1.7-2.8,8.2-7.8,3-2.7-2.7-1.4-5.5,3.4-6.3-2.8.5-5.9-.3-6.8-3.4-.2-.9-.7-6.3-.7-7,0-3.7,3.2-2.5,5.2-1,0,0,0,0,0,0Z"}}],"name":"logo--bluesky","size":20};// src/utils/icons.ts
|
|
1628
|
+
function carbonToString(icon){return toString(Object.assign(Object.assign({},icon),{attrs:getAttributes(icon.attrs)}));}const ICONS={// Navigation
|
|
1629
|
+
'chevron-right':carbonToString(_20$1a),'chevron-left':carbonToString(_20$19),'chevron-down':carbonToString(_20$18),'chevron-up':carbonToString(_20$17),'arrow-right':carbonToString(_20$16),'arrow-left':carbonToString(_20$15),'arrow-up-right':carbonToString(_20$14),// Actions
|
|
1630
|
+
close:carbonToString(_20$13),add:carbonToString(_20$12),edit:carbonToString(_20$11),checkmark:carbonToString(_20$10),download:carbonToString(_20$$),upload:carbonToString(_20$_),view:carbonToString(_20$Z),exit:carbonToString(_20$8),caretSort:carbonToString(_20$X),bookmark:carbonToString(_20$6),createLink:carbonToString(_20$Y),activity:carbonToString(_20$u),account:carbonToString(_20$v),analytics:carbonToString(_20$t),template:carbonToString(_20$o),documentExport:carbonToString(_20$m),documentDownload:carbonToString(_20$l),trashCan:carbonToString(_20$7),chooseItem:carbonToString(_20$W),copyLink:carbonToString(_20$V),dragHorizontal:carbonToString(_20$U),dragVertical:carbonToString(_20$T),login:carbonToString(_20$s),logout:carbonToString(_20$r),move:carbonToString(_20$S),replicate:carbonToString(_20$R),sortAscending:carbonToString(_20$Q),sortDescending:carbonToString(_20$P),requestQuote:carbonToString(_20$O),reset:carbonToString(_20$N),resultDraft:carbonToString(_20$M),share:carbonToString(_20$L),play:carbonToString(_20$K),book:carbonToString(_20$J),chatOff:carbonToString(_20$I),forum:carbonToString(_20$H),shareKnowledge:carbonToString(_20$G),time:carbonToString(_20$h),help:carbonToString(_20$F),customerService:carbonToString(_20$E),code:carbonToString(_20$D),rocket:carbonToString(_20$C),compass:carbonToString(_20$B),// Interface
|
|
1631
|
+
menu:carbonToString(_20$A),search:carbonToString(_20$z),settings:carbonToString(_20$y),notification:carbonToString(_20$x),user:carbonToString(_20$w),group:carbonToString(_20$q),save:carbonToString(_20$p),// Content
|
|
1632
|
+
document:carbonToString(_20$n),folder:carbonToString(_20$k),image:carbonToString(_20$j),calendar:carbonToString(_20$i),// Status
|
|
1633
|
+
information:carbonToString(_20$g),warning:carbonToString(_20$f),error:carbonToString(_20$e),'checkmark-filled':carbonToString(_20$d),copy:carbonToString(_20$c),star:carbonToString(_20$b),'thumbs-up':carbonToString(_20$a),'thumbs-down':carbonToString(_20$9),//Social
|
|
1634
|
+
twitter:carbonToString(_20$5),linkedin:carbonToString(_20$4),facebook:carbonToString(_20$3),youtube:carbonToString(_20$2),mastodon:carbonToString(_20$1),bluesky:carbonToString(_20)};const edsIconWrapperCss=":host{display:inline-flex;align-items:center;justify-content:center}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon svg{display:block;fill:currentColor;color:inherit}.icon--16{width:16px;height:16px}.icon--16 svg{width:16px;height:16px}.icon--20{width:20px;height:20px}.icon--20 svg{width:20px;height:20px}.icon--24{width:24px;height:24px}.icon--24 svg{width:24px;height:24px}.icon--32{width:32px;height:32px}.icon--32 svg{width:32px;height:32px}";const EdsIconWrapperStyle0=edsIconWrapperCss;const EdsIconWrapper=class{constructor(hostRef){registerInstance(this,hostRef);this.name=undefined;this.size=20;this.label=undefined;}render(){const iconSvg=ICONS[this.name];if(!iconSvg){console.warn(`Icon "${this.name}" not found in ICONS`);return null;}const decorative=!this.label;return h(Host,{role:decorative?null:'img',"aria-label":decorative?null:this.label,"aria-hidden":decorative?'true':null},h("span",{class:`icon icon--${this.size}`,innerHTML:iconSvg}));}};EdsIconWrapper.style=EdsIconWrapperStyle0;const edsImgCss="/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n/* endregion */\n/* region BG */\n.effect-bg-pattern {\n position: relative;\n z-index: 1;\n\n &::before {\n position: absolute;\n content: '';\n z-index: -1;\n inset: 0;\n background-color: rgba(208, 208, 208, 0.75);\n opacity: 0.75;\n background-image: repeating-linear-gradient(45deg, #F5F5F5 25%, transparent 25%, transparent 75%, #F5F5F5 75%, #F5F5F5), repeating-linear-gradient(45deg, #F5F5F5 25%, #D0D0D0 25%, #D0D0D0 75%, #F5F5F5 75%, #F5F5F5);\n background-position: 0 0, 8px 8px;\n background-size: 16px 16px;\n }\n}\n\n.effect-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n\n.object-center {\n -o-object-position: center;\n object-position: center;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}";const EdsImgStyle0=edsImgCss;const EdsImg=class{constructor(hostRef){registerInstance(this,hostRef);this.img=null;this.handleLoad=()=>{this.loaded=true;this.showBg=false;};// On error, remove the background effect so users know the image failed to load.
|
|
1635
|
+
this.handleError=()=>{this.loaded=true;this.showBg=false;};this.handleTransitionEnd=()=>{this.showBg=false;};this.src=undefined;this.alt='';this.width=undefined;this.height=undefined;this.srcset=undefined;this.sizes=undefined;this.formats=[];this.lazyload=true;this.withBg=true;this.loaded=!this.lazyload;this.showBg=this.withBg;}componentDidLoad(){if(this.img&&this.img.complete){this.loaded=true;this.showBg=false;}}render(){const imgOpts={};if(this.lazyload){imgOpts['loading']='lazy';imgOpts['decoding']='async';}return h("div",{key:'122ae0673a7a2c9afd88cdcf8a83b52c11f0643e',class:{'items-center justify-center':true,'effect-bg-pattern':this.lazyload&&this.showBg}},h("picture",{key:'b0bb1af0c95375db18bd45453016ee2fd78a6e2a'},this.formats.map(format=>h("source",{type:format.type,srcSet:format.srcset,media:format.media,sizes:this.sizes})),h("img",Object.assign({key:'2a8500ea92db1a846f0f6dbb41fa664c3d514f19',ref:el=>this.img=el,class:{'effect-opacity object-cover object-center':true,'opacity-100':this.loaded,'opacity-0':!this.loaded},width:this.width,height:this.height,sizes:this.sizes,src:this.src,srcSet:this.srcset,alt:this.alt},imgOpts,{onLoad:this.handleLoad,onError:this.handleError,onTransitionEnd:this.handleTransitionEnd}))));}get imgElement(){return getElement(this);}};EdsImg.style=EdsImgStyle0;const EdsInput=class{constructor(hostRef){registerInstance(this,hostRef);this.handleInput=e=>{const target=e.target;this.innerVal=target.value;if(this.maxLength&&this.type==='textarea'){this.maxLengthReached=target.value.length>=this.maxLength;}};this.name=undefined;this.inputId=undefined;this.placeholder=undefined;this.disabled=false;this.hasMessage=false;this.error=false;this.checked=undefined;this.type='text';this.required=false;this.value=undefined;this.icon=undefined;this.maxLength=undefined;this.options=[];this.extraClass=undefined;this.min=undefined;this.max=undefined;this.step=undefined;this.inputTabIndex=undefined;this.innerVal='';this.maxLengthReached=false;}onValueChanged(newValue){this.innerVal=newValue;}componentWillLoad(){// Initialize innerVal with the value prop if it's set
|
|
1636
|
+
if(this.value){this.innerVal=this.value;}else if(this.type==='select'&&this.options.length>0){// If the type is select and there are options, set the initial value to the first option
|
|
1637
|
+
this.innerVal=this.options[0].value;}}getInputElement(){return this.el.querySelector('input');}render(){const withIcon=!!this.icon;const describedBy=this.hasMessage||this.error?`${this.name}-error`:'';return h("div",{key:'0261b14034860a2f59dde8de72d6729ec411d2cf',class:"relative flex items-center"},this.type==='textarea'?h("textarea",{id:this.inputId||this.name,name:this.name,placeholder:this.placeholder,value:this.innerVal.toString(),required:this.required,disabled:this.disabled,class:`min-h-80 input input-textarea ${withIcon?'input-with-icon':''} ${this.error?'input-error':''} ${this.extraClass}`,"aria-invalid":this.error?'true':'false',"aria-describedby":describedBy,maxlength:this.maxLength,onInput:this.handleInput,onChange:this.handleInput}):this.type==='select'?h("select",{id:this.inputId||this.name,name:this.name,required:this.required,disabled:this.disabled,class:`input input-select ${this.error?'input-error':''} ${this.extraClass}`,"aria-invalid":this.error?'true':'false',"aria-describedby":describedBy,onInput:this.handleInput,onChange:this.handleInput},this.options.map(option=>h("option",{value:option.value,selected:option.value===this.innerVal,key:option.value},option.label))):h("input",Object.assign({id:this.inputId||this.name,name:this.name,placeholder:this.placeholder,value:this.innerVal.toString(),required:this.required,disabled:this.disabled,type:this.type,tabindex:this.inputTabIndex,checked:['radio','checkbox'].includes(this.type)?this.checked:undefined},this.type==='number'?{min:this.min,max:this.max,step:this.step}:{},{class:`
|
|
1638
|
+
${this.extraClass||''}
|
|
1639
|
+
input ${this.type==='radio'?'input-radio':this.type==='checkbox'?'input-checkbox':''}
|
|
1640
|
+
${withIcon&&this.type!=='radio'&&this.type!=='checkbox'?'input-icon pl-36':''}
|
|
1641
|
+
${this.error?'input-error':''}
|
|
1642
|
+
`,"aria-invalid":this.error?'true':'false',"aria-describedby":describedBy,maxlength:this.maxLength,onInput:this.handleInput,onChange:this.handleInput})),this.maxLength&&this.type==='textarea'&&h("span",{key:'f2a7b410ee586d3266d05d422f3376488392fc6b',class:`input-counter f-ui-05 absolute bottom-8 right-8 ${this.maxLengthReached?'input-counter-error':''}`},this.maxLength),this.icon&&h("eds-icon-wrapper",{key:'37581bbd64652b25a00a401ab359736169814b1f',class:`absolute top-1/2 left-[12px] -translate-y-1/2 ${this.disabled?'text-lightest':'text-lightest'}`,name:this.icon}));}get el(){return getElement(this);}static get watchers(){return {"value":["onValueChanged"]};}};const edsInputDropzoneCss=".eds-input-dropzone-container{display:flex;flex-direction:column;align-items:flex-start;gap:0.75rem;max-width:100%}.eds-input-dropzone-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.eds-input-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;width:100%;min-height:200px;padding:2rem;border:2px dashed var(--color-border-soft, #d0d0d0);border-radius:8px;background-color:var(--color-bg-inverse, #ffffff);cursor:pointer;transition:all 0.2s ease;outline:none;box-sizing:border-box}.eds-input-dropzone:hover:not(.disabled){border-color:var(--color-border-strong, #07140D);background-color:var(--color-bg-softer, #ECECEC)}.eds-input-dropzone.dragging:not(.disabled){border-color:var(--color-accent, #00FF9D);background-color:var(--color-bg-softest, #F8F8F8);border-width:3px}.eds-input-dropzone.disabled{opacity:0.5;cursor:not-allowed;background-color:var(--color-bg-disabled, #f5f5f5)}.eds-input-dropzone:focus-visible{outline:2px solid var(--color-accent, #00FF9D);outline-offset:2px}.dropzone-icon{width:48px;height:48px;color:var(--color-text-light, #7A7B7A);flex-shrink:0}.eds-input-dropzone.dragging .dropzone-icon{color:var(--color-accent, #00FF9D)}.dropzone-text{display:flex;flex-direction:column;align-items:center;gap:0.25rem;text-align:center}.dropzone-primary{font-family:var(--font-family, 'IBM Plex Sans', sans-serif);font-size:1rem;font-weight:500;color:var(--color-text-default, #07140D);margin:0}.dropzone-secondary{font-family:var(--font-family, 'IBM Plex Sans', sans-serif);font-size:0.875rem;font-weight:400;color:var(--color-text-light, #7A7B7A);margin:0}.eds-input-dropzone-chips{display:flex;flex-wrap:wrap;gap:0.5rem;width:100%}.eds-input-dropzone-chip{display:inline-flex;align-items:center;gap:0.5rem;padding:0.4rem 0.75rem;background-color:var(--color-bg-softer, #ECECEC);border-radius:100px;font-size:0.75rem;color:var(--color-text-default, #07140D)}.file-chip-icon{width:14px;height:14px;color:var(--color-text-light, #7A7B7A);flex-shrink:0}.eds-input-dropzone-chip-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.eds-input-dropzone-chip-size{font-family:var(--font-family-mono, 'IBM Plex Mono', monospace);font-size:0.625rem;color:var(--color-text-light, #7A7B7A);flex-shrink:0}.eds-input-dropzone-chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;border:none;background:transparent;color:var(--color-text-light, #7A7B7A);cursor:pointer;transition:color 0.2s ease;flex-shrink:0}.eds-input-dropzone-chip-remove:hover:not(:disabled){color:var(--color-error, #e53935)}.eds-input-dropzone-chip-remove:disabled{opacity:0.5;cursor:not-allowed}.eds-input-dropzone-chip-remove svg{width:14px;height:14px}@media (max-width: 640px){.eds-input-dropzone{min-height:160px;padding:1.5rem}.dropzone-icon{width:40px;height:40px}.dropzone-primary{font-size:0.875rem}.dropzone-secondary{font-size:0.75rem}.eds-input-dropzone-chip-name{max-width:120px}}";const EdsInputDropzoneStyle0=edsInputDropzoneCss;const EdsInputDropzone=class{constructor(hostRef){registerInstance(this,hostRef);this.edsfile=createEvent(this,"edsfile",7);this.handleDropzoneClick=()=>{var _a;if(!this.disabled){(_a=this.fileInputRef)===null||_a===void 0?void 0:_a.click();}};this.handleFileSelect=event=>{const input=event.target;if(!input.files)return;this.addFiles(Array.from(input.files));};this.handleDragOver=event=>{event.preventDefault();event.stopPropagation();if(!this.disabled){this.isDragging=true;}};this.handleDragLeave=event=>{event.preventDefault();event.stopPropagation();this.isDragging=false;};this.handleDrop=event=>{var _a;event.preventDefault();event.stopPropagation();this.isDragging=false;if(this.disabled)return;const files=(_a=event.dataTransfer)===null||_a===void 0?void 0:_a.files;if(files&&files.length>0){this.addFiles(Array.from(files));}};this.handleRemoveFile=id=>{this.selectedFiles=this.selectedFiles.filter(item=>item.id!==id);this.emitFileChange();};this.name=undefined;this.inputId=undefined;this.disabled=false;this.required=false;this.multiple=true;this.accept=undefined;this.maxFileSize=undefined;this.primaryText='Drag and drop files here';this.secondaryText='or click to browse';this.selectedFiles=[];this.isDragging=false;}addFiles(newFiles){const fileItems=newFiles.map(file=>({file,id:`${file.name}-${Date.now()}-${Math.random()}`}));if(this.multiple){this.selectedFiles=[...this.selectedFiles,...fileItems];}else {this.selectedFiles=fileItems.slice(0,1);}this.emitFileChange();}emitFileChange(){const files=this.selectedFiles.map(item=>item.file);this.edsfile.emit({files});}formatFileSize(bytes){if(bytes===0)return '0 B';const k=1024;const sizes=['B','KB','MB','GB'];const i=Math.floor(Math.log(bytes)/Math.log(k));return `${(bytes/Math.pow(k,i)).toFixed(1)} ${sizes[i]}`;}getFileIcon(filename){var _a;const ext=(_a=filename.split('.').pop())===null||_a===void 0?void 0:_a.toLowerCase();const imageExts=['png','jpg','jpeg','gif','svg','webp'];if(imageExts.includes(ext||'')){// Image icon
|
|
1643
|
+
return h("svg",{class:"file-chip-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),h("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),h("polyline",{points:"21 15 16 10 5 21"}));}// Document icon (default)
|
|
1644
|
+
return h("svg",{class:"file-chip-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),h("polyline",{points:"14 2 14 8 20 8"}));}render(){const dropzoneClass=`eds-input-dropzone ${this.isDragging?'dragging':''} ${this.disabled?'disabled':''}`;return h("div",{key:'8c6d9cdd919e72f5e85a7b01a2db3cb6fadface0',class:"eds-input-dropzone-container"},h("input",{key:'fb643c39fa588971f825a01b20e8da6ac2da7d36',ref:el=>this.fileInputRef=el,type:"file",id:this.inputId||this.name,name:this.name,class:"eds-input-dropzone-hidden",disabled:this.disabled,required:this.required,multiple:this.multiple,accept:this.accept,onChange:this.handleFileSelect}),h("div",{key:'fd000cfb95b10eb54798ea5575810692c8cce65d',class:dropzoneClass,onClick:this.handleDropzoneClick,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},h("svg",{key:'ed7588f87e4182351f5301992ae582df1f21be5e',class:"dropzone-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},h("path",{key:'9977271ac6bb26c6d642708eb6a7d2f2ca242dcc',d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),h("polyline",{key:'f32b1ff2bea2718e075d78985837ba71acf23ce9',points:"17 8 12 3 7 8"}),h("line",{key:'326bc6f0e24c191a26859567653f807c81745a77',x1:"12",y1:"3",x2:"12",y2:"15"})),h("div",{key:'f880855ecf537d527663101a5348591f975e7074',class:"dropzone-text"},h("p",{key:'4747da3e157c6b1c3e56774867fc0258e2e77059',class:"dropzone-primary"},this.primaryText),h("p",{key:'7852be7ecdcdfabf5fed632065b14128941461ee',class:"dropzone-secondary"},this.secondaryText))),this.selectedFiles.length>0&&h("div",{key:'36347980293d2ea800a845a4ab5bb9c28fedc485',class:"eds-input-dropzone-chips"},this.selectedFiles.map(item=>h("div",{key:item.id,class:"eds-input-dropzone-chip"},this.getFileIcon(item.file.name),h("span",{class:"eds-input-dropzone-chip-name"},item.file.name),h("span",{class:"eds-input-dropzone-chip-size"},this.formatFileSize(item.file.size)),h("button",{type:"button",class:"eds-input-dropzone-chip-remove",onClick:()=>this.handleRemoveFile(item.id),disabled:this.disabled,"aria-label":`Remove ${item.file.name}`},h("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),h("line",{x1:"6",y1:"6",x2:"18",y2:"18"})))))));}get hostEl(){return getElement(this);}};EdsInputDropzone.style=EdsInputDropzoneStyle0;const edsInputFieldCss=":root {\n font-optical-sizing: auto;\n}\nhtml,\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/*\n:focus[data-focus-method=\"mouse\"],\n:focus[data-focus-method=\"touch\"] {\n outline: none !important;\n}\n*/\n/*FADE*/\n.fade-enter-active,\n.fade-leave-active {\n transition-duration: 300ms;\n transition-timing-function: linear;\n transition-property: opacity;\n}\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n/*FADE TRANSLATE Y*/\n.fade-down-enter-active,\n.fade-down-leave-active {\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n\n transition-property: opacity, transform;\n}\n.fade-down-enter-from,\n.fade-down-leave-to {\n opacity: 0;\n transform: translateY(12px);\n}\n/*SLIDE LEFT*/\n.slide-left-enter-active,\n.slide-left-leave-active {\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\n transition-property: opacity, transform;\n}\n.slide-left-enter-from,\n.slide-left-leave-to {\n transform: translateX(-110%);\n}\n/*SLIDE BOTTOM*/\n.slide-bottom-enter-active,\n.slide-bottom-leave-active {\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);\n transition-property: opacity, transform;\n}\n.slide-bottom-enter-from,\n.slide-bottom-leave-to {\n transform: translateY(100%);\n}\n.slide-bottom-list-move,\n.slide-bottom-list-enter-active,\n.slide-bottom-list-leave-active {\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: opacity, transform;\n}\n.slide-bottom-list-enter-from,\n.slide-bottom-list-leave-to {\n opacity: 0;\n transform: translateY(100%);\n}\n.slide-bottom-list-leave-active {\n position: absolute;\n}\n/*COLLAPSE Y*/\n.collapseY-enter-active,\n.collapseY-leave-active {\n transition-duration: 300ms;\n transition-timing-function: linear;\n overflow: hidden;\n max-height: 500px;\n transition-property: max-height;\n}\n.collapseY-enter-from,\n.collapseY-leave-to {\n max-height: 0;\n}\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(147 197 253 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(147 197 253 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n/*\n! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com\n*/\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: currentColor; /* 2 */\n}\n::before,\n::after {\n --tw-content: '';\n}\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n/*\nRemove the default font size and weight for headings.\n*/\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\na {\n color: inherit;\n text-decoration: inherit;\n}\n/*\nAdd the correct font weight in Edge and Safari.\n*/\nb,\nstrong {\n font-weight: bolder;\n}\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n/*\nAdd the correct font size in all browsers.\n*/\nsmall {\n font-size: 80%;\n}\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\nbutton,\nselect {\n text-transform: none;\n}\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n:-moz-focusring {\n outline: auto;\n}\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n:-moz-ui-invalid {\n box-shadow: none;\n}\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\nprogress {\n vertical-align: baseline;\n}\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n/*\nAdd the correct display in Chrome and Safari.\n*/\nsummary {\n display: list-item;\n}\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nlegend {\n padding: 0;\n}\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n/*\nPrevent resizing textareas horizontally by default.\n*/\ntextarea {\n resize: vertical;\n}\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n/*\nSet the default cursor for buttons.\n*/\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n:root {\n --breakpoint: \"sm\";\n --container-width: unset;\n --inner-gutter: 8px;\n --outer-gutter: 16px;\n --grid-columns: 12;\n --env: \"dev\";\n --grid-column-bg: rgba(127, 255, 255, 0.25);\n}\n@media (min-width: 750px) {\n :root {\n --breakpoint: \"md\";\n --container-width: unset;\n --inner-gutter: 12px;\n --outer-gutter: 20px;\n --grid-columns: 12;\n }\n}\n@media (min-width: 900px) {\n :root {\n --breakpoint: \"lg\";\n --container-width: unset;\n --inner-gutter: 16px;\n --outer-gutter: 28px;\n --grid-columns: 12;\n }\n}\n@media (min-width: 1024px) {\n :root {\n --breakpoint: \"xl\";\n --container-width: unset;\n --inner-gutter: 16px;\n --outer-gutter: 28px;\n --grid-columns: 12;\n }\n}\n@media (min-width: 1280px) {\n :root {\n --breakpoint: \"xxl\";\n --container-width: unset;\n --inner-gutter: 16px;\n --outer-gutter: 28px;\n --grid-columns: 12;\n }\n}\n@media (min-width: 2200px) {\n :root {\n --breakpoint: \"xxxl\";\n --container-width: unset;\n --inner-gutter: 16px;\n --outer-gutter: 28px;\n --grid-columns: 12;\n }\n}\n.container {\n width: calc(var(--container-width, 100%) - (2 * var(--breakout-container-outer-gutter, var(--container-outer-gutter, var(--outer-gutter, 0)))));\n margin-right: auto;\n margin-left: auto;\n}\n.container > * {\n --container-outer-gutter: 0;\n --breakout-container-outer-gutter: 0;\n}\n[class*='scrollbar-track-'], [class*='scrollbar-thumb-'] {\n --scrollbar-bg: #fafafa;\n --scrollbar-fg: #c1c1c1;\n --scrollbar-border: #e8e8e8;\n scrollbar-color: var(--scrollbar-fg) var(--scrollbar-bg);\n}\n[class*='scrollbar-track-']::-webkit-scrollbar, [class*='scrollbar-thumb-']::-webkit-scrollbar {\n width: var(--scrollbar-width, 15px);\n height: var(--scrollbar-width, 15px);\n}\n[class*='scrollbar-track-']::-webkit-scrollbar-track, [class*='scrollbar-thumb-']::-webkit-scrollbar-track {\n background: var(--scrollbar-bg);\n}\n[class*='scrollbar-track-']::-webkit-scrollbar-track:horizontal, [class*='scrollbar-thumb-']::-webkit-scrollbar-track:horizontal {\n border-top: 1px solid var(--scrollbar-border);\n border-bottom: 1px solid var(--scrollbar-border);\n}\n[class*='scrollbar-track-']::-webkit-scrollbar-track:vertical, [class*='scrollbar-thumb-']::-webkit-scrollbar-track:vertical {\n border-inline-start: 1px solid var(--scrollbar-border);\n border-inline-end: 1px solid var(--scrollbar-border);\n}\n[class*='scrollbar-track-']::-webkit-scrollbar-thumb, [class*='scrollbar-thumb-']::-webkit-scrollbar-thumb {\n background: var(--scrollbar-fg);\n border-radius: 20px;\n border: var(--scrollbar-padding, 4px) solid transparent;\n background-clip: content-box;\n}\n:root {\n --spacing-space-01: 5rem;\n --spacing-space-02: 3.75rem;\n --spacing-space-03: 6.25rem;\n --spacing-space-04: 1.75rem;\n}\n@media (min-width: 900px) {\n :root {\n --spacing-space-01: 7.5rem;\n --spacing-space-02: 5rem;\n --spacing-space-03: 7.5rem;\n }\n}\n:root {\n --sans: Inter, Helvetica, Arial, sans-serif;\n --f-heading-01-fontFamily: var(--sans);\n --f-heading-01-fontWeight: 800;\n --f-heading-01-fontSize: 42px;\n --f-heading-01-lineHeight: 100%;\n --f-heading-01-letterSpacing: -0.01em;\n --f-heading-02-fontFamily: var(--sans);\n --f-heading-02-fontWeight: 800;\n --f-heading-02-fontSize: 36px;\n --f-heading-02-lineHeight: 100%;\n --f-heading-02-letterSpacing: -0.01em;\n --f-heading-03-fontFamily: var(--sans);\n --f-heading-03-fontWeight: 800;\n --f-heading-03-fontSize: 36px;\n --f-heading-03-lineHeight: 100%;\n --f-heading-03-letterSpacing: -0.01em;\n --f-heading-04-fontFamily: var(--sans);\n --f-heading-04-fontWeight: 800;\n --f-heading-04-fontSize: 28px;\n --f-heading-04-lineHeight: 100%;\n --f-heading-04-letterSpacing: -0.01em;\n --f-heading-05-fontFamily: var(--sans);\n --f-heading-05-fontWeight: 800;\n --f-heading-05-fontSize: 28px;\n --f-heading-05-lineHeight: 110%;\n --f-heading-05-letterSpacing: -0.01em;\n --f-heading-06-fontFamily: var(--sans);\n --f-heading-06-fontWeight: 800;\n --f-heading-06-fontSize: 22px;\n --f-heading-06-lineHeight: 120%;\n --f-body-01-fontFamily: var(--sans);\n --f-body-01-fontWeight: 600;\n --f-body-01-fontSize: 20px;\n --f-body-01-lineHeight: 140%;\n --f-body-01-letterSpacing: -0.01em;\n --f-body-02-fontFamily: var(--sans);\n --f-body-02-fontWeight: 600;\n --f-body-02-fontSize: 17px;\n --f-body-02-lineHeight: 150%;\n --f-ui-01-fontFamily: var(--sans);\n --f-ui-01-fontWeight: 800;\n --f-ui-01-fontSize: 18px;\n --f-ui-01-lineHeight: 110%;\n --f-ui-01-letterSpacing: -0.01em;\n --f-ui-02-fontFamily: var(--sans);\n --f-ui-02-fontWeight: 800;\n --f-ui-02-fontSize: 16px;\n --f-ui-02-lineHeight: 110%;\n --f-ui-02-letterSpacing: -0.01em;\n --f-ui-02-light-fontFamily: var(--sans);\n --f-ui-02-light-fontWeight: 600;\n --f-ui-02-light-fontSize: 16px;\n --f-ui-02-light-lineHeight: 110%;\n --f-ui-02-light-letterSpacing: -0.01em;\n --f-ui-03-fontFamily: var(--sans);\n --f-ui-03-fontWeight: 800;\n --f-ui-03-fontSize: 14px;\n --f-ui-03-lineHeight: 110%;\n --f-ui-03-letterSpacing: -0.01em;\n --f-ui-03-light-fontFamily: var(--sans);\n --f-ui-03-light-fontWeight: 600;\n --f-ui-03-light-fontSize: 14px;\n --f-ui-03-light-lineHeight: 130%;\n --f-ui-03-light-letterSpacing: -0.01em;\n --f-ui-04-fontFamily: var(--sans);\n --f-ui-04-fontWeight: 800;\n --f-ui-04-fontSize: 12px;\n --f-ui-04-lineHeight: 100%;\n --f-ui-04-letterSpacing: -0.01em;\n --f-ui-05-fontFamily: var(--sans);\n --f-ui-05-fontWeight: 800;\n --f-ui-05-fontSize: 10px;\n --f-ui-05-lineHeight: 110%;\n --f-ui-05-letterSpacing: -0.01em;\n --f-caption-fontFamily: var(--sans);\n --f-caption-fontWeight: 800;\n --f-caption-fontSize: 12px;\n --f-caption-lineHeight: 120%;\n --f-display-01-fontFamily: var(--sans);\n --f-display-01-fontWeight: 800;\n --f-display-01-fontSize: 120px;\n --f-display-01-lineHeight: 100%;\n --f-display-01-letterSpacing: -0.01em;\n}\n.f-heading-01 {\n font-family: var(--f-heading-01-fontFamily);\n font-weight: var(--f-heading-01-fontWeight);\n font-size: var(--f-heading-01-fontSize);\n line-height: var(--f-heading-01-lineHeight);\n letter-spacing: var(--f-heading-01-letterSpacing);\n}\n.f-heading-02 {\n font-family: var(--f-heading-02-fontFamily);\n font-weight: var(--f-heading-02-fontWeight);\n font-size: var(--f-heading-02-fontSize);\n line-height: var(--f-heading-02-lineHeight);\n letter-spacing: var(--f-heading-02-letterSpacing);\n}\n.f-heading-03 {\n font-family: var(--f-heading-03-fontFamily);\n font-weight: var(--f-heading-03-fontWeight);\n font-size: var(--f-heading-03-fontSize);\n line-height: var(--f-heading-03-lineHeight);\n letter-spacing: var(--f-heading-03-letterSpacing);\n}\n.f-heading-04 {\n font-family: var(--f-heading-04-fontFamily);\n font-weight: var(--f-heading-04-fontWeight);\n font-size: var(--f-heading-04-fontSize);\n line-height: var(--f-heading-04-lineHeight);\n letter-spacing: var(--f-heading-04-letterSpacing);\n}\n.f-heading-05 {\n font-family: var(--f-heading-05-fontFamily);\n font-weight: var(--f-heading-05-fontWeight);\n font-size: var(--f-heading-05-fontSize);\n line-height: var(--f-heading-05-lineHeight);\n letter-spacing: var(--f-heading-05-letterSpacing);\n}\n.f-heading-06 {\n font-family: var(--f-heading-06-fontFamily);\n font-weight: var(--f-heading-06-fontWeight);\n font-size: var(--f-heading-06-fontSize);\n line-height: var(--f-heading-06-lineHeight);\n letter-spacing: var(--f-heading-06-letterSpacing);\n}\n.f-body-01 {\n font-family: var(--f-body-01-fontFamily);\n font-weight: var(--f-body-01-fontWeight);\n font-size: var(--f-body-01-fontSize);\n line-height: var(--f-body-01-lineHeight);\n letter-spacing: var(--f-body-01-letterSpacing);\n}\n.f-body-02 {\n font-family: var(--f-body-02-fontFamily);\n font-weight: var(--f-body-02-fontWeight);\n font-size: var(--f-body-02-fontSize);\n line-height: var(--f-body-02-lineHeight);\n letter-spacing: var(--f-body-02-letterSpacing);\n}\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n.f-ui-02 {\n font-family: var(--f-ui-02-fontFamily);\n font-weight: var(--f-ui-02-fontWeight);\n font-size: var(--f-ui-02-fontSize);\n line-height: var(--f-ui-02-lineHeight);\n letter-spacing: var(--f-ui-02-letterSpacing);\n}\n.f-ui-02-light {\n font-family: var(--f-ui-02-light-fontFamily);\n font-weight: var(--f-ui-02-light-fontWeight);\n font-size: var(--f-ui-02-light-fontSize);\n line-height: var(--f-ui-02-light-lineHeight);\n letter-spacing: var(--f-ui-02-light-letterSpacing);\n}\n.f-ui-03 {\n font-family: var(--f-ui-03-fontFamily);\n font-weight: var(--f-ui-03-fontWeight);\n font-size: var(--f-ui-03-fontSize);\n line-height: var(--f-ui-03-lineHeight);\n letter-spacing: var(--f-ui-03-letterSpacing);\n}\n.f-ui-03-light {\n font-family: var(--f-ui-03-light-fontFamily);\n font-weight: var(--f-ui-03-light-fontWeight);\n font-size: var(--f-ui-03-light-fontSize);\n line-height: var(--f-ui-03-light-lineHeight);\n letter-spacing: var(--f-ui-03-light-letterSpacing);\n}\n.f-ui-04 {\n font-family: var(--f-ui-04-fontFamily);\n font-weight: var(--f-ui-04-fontWeight);\n font-size: var(--f-ui-04-fontSize);\n line-height: var(--f-ui-04-lineHeight);\n letter-spacing: var(--f-ui-04-letterSpacing);\n}\n.f-ui-05 {\n font-family: var(--f-ui-05-fontFamily);\n font-weight: var(--f-ui-05-fontWeight);\n font-size: var(--f-ui-05-fontSize);\n line-height: var(--f-ui-05-lineHeight);\n letter-spacing: var(--f-ui-05-letterSpacing);\n}\n.f-caption {\n font-family: var(--f-caption-fontFamily);\n font-weight: var(--f-caption-fontWeight);\n font-size: var(--f-caption-fontSize);\n line-height: var(--f-caption-lineHeight);\n letter-spacing: var(--f-caption-letterSpacing);\n}\n.f-display-01 {\n font-family: var(--f-display-01-fontFamily);\n font-weight: var(--f-display-01-fontWeight);\n font-size: var(--f-display-01-fontSize);\n line-height: var(--f-display-01-lineHeight);\n letter-spacing: var(--f-display-01-letterSpacing);\n}\n@media (min-width: 750px) {\n :root {\n --f-heading-01-fontSize: 48px;\n }\n}\n@media (min-width: 900px) {\n :root {\n --f-heading-01-fontSize: 72px;\n --f-heading-02-fontSize: 48px;\n --f-display-01-fontSize: 150px;\n }\n}\n@media (min-width: 1024px) {\n :root {\n --f-heading-01-fontSize: 83px;\n --f-heading-02-fontSize: 60px;\n --f-heading-03-fontSize: 42px;\n --f-heading-04-fontSize: 36px;\n }\n}\n.f-heading-01 b, .f-heading-01 strong {\n font-weight: var(--f-heading-01---bold-weight, bold);\n}\n.f-heading-02 b, .f-heading-02 strong {\n font-weight: var(--f-heading-02---bold-weight, bold);\n}\n.f-heading-03 b, .f-heading-03 strong {\n font-weight: var(--f-heading-03---bold-weight, bold);\n}\n.f-heading-04 b, .f-heading-04 strong {\n font-weight: var(--f-heading-04---bold-weight, bold);\n}\n.f-heading-05 b, .f-heading-05 strong {\n font-weight: var(--f-heading-05---bold-weight, bold);\n}\n.f-heading-06 b, .f-heading-06 strong {\n font-weight: var(--f-heading-06---bold-weight, bold);\n}\n.f-body-01 b, .f-body-01 strong {\n font-weight: var(--f-body-01---bold-weight, bold);\n}\n.f-body-02 b, .f-body-02 strong {\n font-weight: var(--f-body-02---bold-weight, bold);\n}\n.f-ui-01 b, .f-ui-01 strong {\n font-weight: var(--f-ui-01---bold-weight, bold);\n}\n.f-ui-02 b, .f-ui-02 strong {\n font-weight: var(--f-ui-02---bold-weight, bold);\n}\n.f-ui-02-light b, .f-ui-02-light strong {\n font-weight: var(--f-ui-02-light---bold-weight, bold);\n}\n.f-ui-03 b, .f-ui-03 strong {\n font-weight: var(--f-ui-03---bold-weight, bold);\n}\n.f-ui-03-light b, .f-ui-03-light strong {\n font-weight: var(--f-ui-03-light---bold-weight, bold);\n}\n.f-ui-04 b, .f-ui-04 strong {\n font-weight: var(--f-ui-04---bold-weight, bold);\n}\n.f-ui-05 b, .f-ui-05 strong {\n font-weight: var(--f-ui-05---bold-weight, bold);\n}\n.f-caption b, .f-caption strong {\n font-weight: var(--f-caption---bold-weight, bold);\n}\n.f-display-01 b, .f-display-01 strong {\n font-weight: var(--f-display-01---bold-weight, bold);\n}\n:root {\n --grey-100: #f8f8f8;\n --grey-200: #f2f2f2;\n --grey-300: #e6e6e6;\n --grey-400: #d8d8d8;\n --grey-500: #8c8c8c;\n --grey-600: #6e6e6e;\n --grey-700: #666666;\n --grey-800: #4d4d4d;\n --grey-900: #242424;\n --green-100: #eaffee;\n --green-200: #d3ffdc;\n --green-300: #9dffb4;\n --green-400: #63fb92;\n --green-500: #00e766;\n --green-600: #00c959;\n --green-700: #009d45;\n --green-800: #007734;\n --green-900: #004f23;\n --yellow-100: #fefee5;\n --yellow-200: #ffffcb;\n --yellow-300: #fdfdaa;\n --yellow-400: #ffff8b;\n --yellow-500: #ffff51;\n --yellow-600: #f3f30a;\n --yellow-700: #d7d72b;\n --yellow-800: #9a9a1e;\n --yellow-900: #636313;\n --orange-100: #fff4ee;\n --orange-200: #ffeade;\n --orange-300: #ffdcc5;\n --orange-400: #ffcca9;\n --orange-500: #ffb87e;\n --orange-600: #ffa543;\n --orange-700: #cb7f28;\n --orange-800: #995f1e;\n --orange-900: #653f14;\n --red-100: #feefef;\n --red-200: #ffe0e1;\n --red-300: #ffc7c9;\n --red-400: #ff9ea2;\n --red-500: #ff7a7f;\n --red-600: #ff4d68;\n --red-700: #d01111;\n --red-800: #a3001a;\n --red-900: #6f0011;\n --purple-100: #f9f3ff;\n --purple-200: #f4e8ff;\n --purple-300: #e9ceff;\n --purple-400: #ddb1ff;\n --purple-500: #d18fff;\n --purple-600: #c461ff;\n --purple-700: #af56e4;\n --purple-800: #8337b1;\n --purple-900: #3d1e4f;\n --blue-100: #eff0ff;\n --blue-200: #dee0ff;\n --blue-300: #caceff;\n --blue-400: #b2b8ff;\n --blue-500: #7a89f5;\n --blue-600: #2b69fc;\n --blue-700: #0034cb;\n --blue-800: #002799;\n --blue-900: #001a65;\n --cyan-100: #E0EEFF;\n --cyan-200: #D3E6FF;\n --cyan-300: #B5D8FF;\n --cyan-400: #92C8FF;\n --cyan-500: #6CBFFE;\n --cyan-600: #3FA9F5;\n --cyan-700: #267FBE;\n --cyan-800: #1F689B;\n --cyan-900: #15496D;\n --black: #000000;\n --white: #ffffff;\n --transparent: transparent;\n --current: currentColor;\n}\n.grid-layout {\n display: grid;\n grid-template-columns: repeat(var(--container-grid-columns, var(--grid-columns)), 1fr);\n grid-gap: var(--inner-gutter);\n}\n.grid-col-span-2 {\n --container-grid-columns: 2;\n grid-column: span 2 / span 2;\n}\n.grid-col-span-3 {\n --container-grid-columns: 3;\n grid-column: span 3 / span 3;\n}\n.grid-col-span-4 {\n --container-grid-columns: 4;\n grid-column: span 4 / span 4;\n}\n.grid-col-span-6 {\n --container-grid-columns: 6;\n grid-column: span 6 / span 6;\n}\n.grid-col-span-8 {\n --container-grid-columns: 8;\n grid-column: span 8 / span 8;\n}\n.grid-col-span-10 {\n --container-grid-columns: 10;\n grid-column: span 10 / span 10;\n}\n.grid-col-span-12 {\n --container-grid-columns: 12;\n grid-column: span 12 / span 12;\n}\n.grid-col-start-1 {\n grid-column-start: 1;\n}\n.grid-col-start-2 {\n grid-column-start: 2;\n}\n.grid-col-start-3 {\n grid-column-start: 3;\n}\n.grid-col-start-4 {\n grid-column-start: 4;\n}\n.grid-col-start-5 {\n grid-column-start: 5;\n}\n.grid-col-start-6 {\n grid-column-start: 6;\n}\n.grid-col-start-7 {\n grid-column-start: 7;\n}\n.grid-col-start-8 {\n grid-column-start: 8;\n}\n.grid-col-start-9 {\n grid-column-start: 9;\n}\n.grid-col-start-10 {\n grid-column-start: 10;\n}\n.grid-col-start-11 {\n grid-column-start: 11;\n}\n.grid-col-start-12 {\n grid-column-start: 12;\n}\n[class*=\"grid-line-\"] > * {\n position: relative;\n}\n[class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n}\n.grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n}\n.grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n}\n.grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n}\n.grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n}\n.grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n}\n.grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n}\n.grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n}\n.grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n}\n.grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n}\n.grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n}\n.grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n}\n.grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n}\n.grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n}\n.grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n}\n.grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n}\n.grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n}\n.grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n}\n.grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n}\n.grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n}\n.grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n}\n.grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n}\n.grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n}\n.grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n}\n.grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n}\n.grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n}\n.grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n}\n.grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n}\n.grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n}\n.grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n}\n.grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n}\n.grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n}\n.grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n}\n.grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n}\n.grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n}\n.grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n}\n.grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n}\n.grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n}\n.grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n}\n.grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n}\n.grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n}\n.grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n}\n.grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n}\n.grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n}\n.grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n}\n.grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n}\n.grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n}\n.grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n}\n.grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n}\n.grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n}\n.grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n}\n.grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n}\n.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n}\n.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n}\n.grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n}\n.grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n}\n.grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n}\n.grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n}\n.grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n}\n.grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n}\n.grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n}\n.grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n}\n.grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n}\n.grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n}\n.grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n}\n@media (min-width: 750px) {\n [class*=\"grid-line-\"] > * {\n position: relative;\n }\n [class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n }\n .md\\:grid-line-x > *::before {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: 0;\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .md\\:grid-line-xfull > *::before {\n content: attr(👻);\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .md\\:grid-line-x-0 > *::before {\n content: none;\n }\n .md\\:grid-line-y > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .md\\:grid-line-yfull > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -1);\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .md\\:grid-line-yfull[class*=\"grid-line-x\"] > *::after {\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -2);\n bottom: calc(var(--inner-gutter) / -2);\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .md\\:grid-line-y-0 > *::after {\n content: none;\n }\n .md\\:grid-line-x-0[class*=\"grid-line-x-\"] > *::before {\n bottom: -0rem;\n }\n .md\\:grid-line-x-0[class*=\"grid-line-yfull\"] > *::after {\n top: -0rem;\n bottom: -0rem;\n }\n .md\\:grid-line-x-1[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.0625rem;\n }\n .md\\:grid-line-x-1[class*=\"grid-line-yfull\"] > *::after {\n top: -0.0625rem;\n bottom: -0.0625rem;\n }\n .md\\:grid-line-x-2[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.125rem;\n }\n .md\\:grid-line-x-2[class*=\"grid-line-yfull\"] > *::after {\n top: -0.125rem;\n bottom: -0.125rem;\n }\n .md\\:grid-line-x-3[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.1875rem;\n }\n .md\\:grid-line-x-3[class*=\"grid-line-yfull\"] > *::after {\n top: -0.1875rem;\n bottom: -0.1875rem;\n }\n .md\\:grid-line-x-4[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.25rem;\n }\n .md\\:grid-line-x-4[class*=\"grid-line-yfull\"] > *::after {\n top: -0.25rem;\n bottom: -0.25rem;\n }\n .md\\:grid-line-x-5[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.3125rem;\n }\n .md\\:grid-line-x-5[class*=\"grid-line-yfull\"] > *::after {\n top: -0.3125rem;\n bottom: -0.3125rem;\n }\n .md\\:grid-line-x-6[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.375rem;\n }\n .md\\:grid-line-x-6[class*=\"grid-line-yfull\"] > *::after {\n top: -0.375rem;\n bottom: -0.375rem;\n }\n .md\\:grid-line-x-7[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.4375rem;\n }\n .md\\:grid-line-x-7[class*=\"grid-line-yfull\"] > *::after {\n top: -0.4375rem;\n bottom: -0.4375rem;\n }\n .md\\:grid-line-x-8[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5rem;\n }\n .md\\:grid-line-x-8[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5rem;\n bottom: -0.5rem;\n }\n .md\\:grid-line-x-9[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5625rem;\n }\n .md\\:grid-line-x-9[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5625rem;\n bottom: -0.5625rem;\n }\n .md\\:grid-line-x-10[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.625rem;\n }\n .md\\:grid-line-x-10[class*=\"grid-line-yfull\"] > *::after {\n top: -0.625rem;\n bottom: -0.625rem;\n }\n .md\\:grid-line-x-12[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.75rem;\n }\n .md\\:grid-line-x-12[class*=\"grid-line-yfull\"] > *::after {\n top: -0.75rem;\n bottom: -0.75rem;\n }\n .md\\:grid-line-x-16[class*=\"grid-line-x-\"] > *::before {\n bottom: -1rem;\n }\n .md\\:grid-line-x-16[class*=\"grid-line-yfull\"] > *::after {\n top: -1rem;\n bottom: -1rem;\n }\n .md\\:grid-line-x-20[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.25rem;\n }\n .md\\:grid-line-x-20[class*=\"grid-line-yfull\"] > *::after {\n top: -1.25rem;\n bottom: -1.25rem;\n }\n .md\\:grid-line-x-24[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.5rem;\n }\n .md\\:grid-line-x-24[class*=\"grid-line-yfull\"] > *::after {\n top: -1.5rem;\n bottom: -1.5rem;\n }\n .md\\:grid-line-x-28[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.75rem;\n }\n .md\\:grid-line-x-28[class*=\"grid-line-yfull\"] > *::after {\n top: -1.75rem;\n bottom: -1.75rem;\n }\n .md\\:grid-line-x-32[class*=\"grid-line-x-\"] > *::before {\n bottom: -2rem;\n }\n .md\\:grid-line-x-32[class*=\"grid-line-yfull\"] > *::after {\n top: -2rem;\n bottom: -2rem;\n }\n .md\\:grid-line-x-36[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.25rem;\n }\n .md\\:grid-line-x-36[class*=\"grid-line-yfull\"] > *::after {\n top: -2.25rem;\n bottom: -2.25rem;\n }\n .md\\:grid-line-x-40[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.5rem;\n }\n .md\\:grid-line-x-40[class*=\"grid-line-yfull\"] > *::after {\n top: -2.5rem;\n bottom: -2.5rem;\n }\n .md\\:grid-line-x-44[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.75rem;\n }\n .md\\:grid-line-x-44[class*=\"grid-line-yfull\"] > *::after {\n top: -2.75rem;\n bottom: -2.75rem;\n }\n .md\\:grid-line-x-48[class*=\"grid-line-x-\"] > *::before {\n bottom: -3rem;\n }\n .md\\:grid-line-x-48[class*=\"grid-line-yfull\"] > *::after {\n top: -3rem;\n bottom: -3rem;\n }\n .md\\:grid-line-x-52[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.25rem;\n }\n .md\\:grid-line-x-52[class*=\"grid-line-yfull\"] > *::after {\n top: -3.25rem;\n bottom: -3.25rem;\n }\n .md\\:grid-line-x-56[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.5rem;\n }\n .md\\:grid-line-x-56[class*=\"grid-line-yfull\"] > *::after {\n top: -3.5rem;\n bottom: -3.5rem;\n }\n .md\\:grid-line-x-60[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.75rem;\n }\n .md\\:grid-line-x-60[class*=\"grid-line-yfull\"] > *::after {\n top: -3.75rem;\n bottom: -3.75rem;\n }\n .md\\:grid-line-x-64[class*=\"grid-line-x-\"] > *::before {\n bottom: -4rem;\n }\n .md\\:grid-line-x-64[class*=\"grid-line-yfull\"] > *::after {\n top: -4rem;\n bottom: -4rem;\n }\n .md\\:grid-line-x-68[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.25rem;\n }\n .md\\:grid-line-x-68[class*=\"grid-line-yfull\"] > *::after {\n top: -4.25rem;\n bottom: -4.25rem;\n }\n .md\\:grid-line-x-72[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.5rem;\n }\n .md\\:grid-line-x-72[class*=\"grid-line-yfull\"] > *::after {\n top: -4.5rem;\n bottom: -4.5rem;\n }\n .md\\:grid-line-x-76[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.75rem;\n }\n .md\\:grid-line-x-76[class*=\"grid-line-yfull\"] > *::after {\n top: -4.75rem;\n bottom: -4.75rem;\n }\n .md\\:grid-line-x-80[class*=\"grid-line-x-\"] > *::before {\n bottom: -5rem;\n }\n .md\\:grid-line-x-80[class*=\"grid-line-yfull\"] > *::after {\n top: -5rem;\n bottom: -5rem;\n }\n .md\\:grid-line-x-84[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.25rem;\n }\n .md\\:grid-line-x-84[class*=\"grid-line-yfull\"] > *::after {\n top: -5.25rem;\n bottom: -5.25rem;\n }\n .md\\:grid-line-x-88[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.5rem;\n }\n .md\\:grid-line-x-88[class*=\"grid-line-yfull\"] > *::after {\n top: -5.5rem;\n bottom: -5.5rem;\n }\n .md\\:grid-line-x-92[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.75rem;\n }\n .md\\:grid-line-x-92[class*=\"grid-line-yfull\"] > *::after {\n top: -5.75rem;\n bottom: -5.75rem;\n }\n .md\\:grid-line-x-96[class*=\"grid-line-x-\"] > *::before {\n bottom: -6rem;\n }\n .md\\:grid-line-x-96[class*=\"grid-line-yfull\"] > *::after {\n top: -6rem;\n bottom: -6rem;\n }\n .md\\:grid-line-x-100[class*=\"grid-line-x-\"] > *::before {\n bottom: -6.25rem;\n }\n .md\\:grid-line-x-100[class*=\"grid-line-yfull\"] > *::after {\n top: -6.25rem;\n bottom: -6.25rem;\n }\n .md\\:grid-line-x-safe-top[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-top);\n }\n .md\\:grid-line-x-safe-top[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-top);\n bottom: -env(safe-area-inset-top);\n }\n .md\\:grid-line-x-safe-bottom[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-bottom);\n }\n .md\\:grid-line-x-safe-bottom[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-bottom);\n bottom: -env(safe-area-inset-bottom);\n }\n .md\\:grid-line-x-safe-left[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-left);\n }\n .md\\:grid-line-x-safe-left[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-left);\n bottom: -env(safe-area-inset-left);\n }\n .md\\:grid-line-x-safe-right[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-right);\n }\n .md\\:grid-line-x-safe-right[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-right);\n bottom: -env(safe-area-inset-right);\n }\n .md\\:grid-line-x-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--inner-gutter);\n }\n .md\\:grid-line-x-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--inner-gutter);\n bottom: -var(--inner-gutter);\n }\n .md\\:grid-line-x-outer-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--outer-gutter, 0px);\n }\n .md\\:grid-line-x-outer-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--outer-gutter, 0px);\n bottom: -var(--outer-gutter, 0px);\n }\n .md\\:grid-line-x-default[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .md\\:grid-line-y-default[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .md\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .md\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .md\\:grid-line-x-inverse[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .md\\:grid-line-y-inverse[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .md\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .md\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .md\\:grid-line-x-inverse-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .md\\:grid-line-y-inverse-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .md\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .md\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .md\\:grid-line-x-inverse-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .md\\:grid-line-y-inverse-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .md\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .md\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .md\\:grid-line-x-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .md\\:grid-line-y-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .md\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .md\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .md\\:grid-line-x-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .md\\:grid-line-y-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .md\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .md\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .md\\:grid-line-x-softest[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .md\\:grid-line-y-softest[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .md\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .md\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .md\\:grid-line-x-accent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .md\\:grid-line-y-accent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .md\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .md\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .md\\:grid-line-x-error[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .md\\:grid-line-y-error[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .md\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .md\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .md\\:grid-line-x-current[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .md\\:grid-line-y-current[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .md\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .md\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .md\\:grid-line-x-transparent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .md\\:grid-line-y-transparent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .md\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .md\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .md\\:grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n }\n .md\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n }\n .md\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n }\n .md\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n }\n .md\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n }\n .md\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n }\n .md\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n }\n .md\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n }\n .md\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n }\n .md\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n }\n .md\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n }\n .md\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .md\\:grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .md\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .md\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n }\n .md\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n }\n}\n@media (min-width: 900px) {\n [class*=\"grid-line-\"] > * {\n position: relative;\n }\n [class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n }\n .lg\\:grid-line-x > *::before {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: 0;\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .lg\\:grid-line-xfull > *::before {\n content: attr(👻);\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .lg\\:grid-line-x-0 > *::before {\n content: none;\n }\n .lg\\:grid-line-y > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .lg\\:grid-line-yfull > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -1);\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .lg\\:grid-line-yfull[class*=\"grid-line-x\"] > *::after {\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -2);\n bottom: calc(var(--inner-gutter) / -2);\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .lg\\:grid-line-y-0 > *::after {\n content: none;\n }\n .lg\\:grid-line-x-0[class*=\"grid-line-x-\"] > *::before {\n bottom: -0rem;\n }\n .lg\\:grid-line-x-0[class*=\"grid-line-yfull\"] > *::after {\n top: -0rem;\n bottom: -0rem;\n }\n .lg\\:grid-line-x-1[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.0625rem;\n }\n .lg\\:grid-line-x-1[class*=\"grid-line-yfull\"] > *::after {\n top: -0.0625rem;\n bottom: -0.0625rem;\n }\n .lg\\:grid-line-x-2[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.125rem;\n }\n .lg\\:grid-line-x-2[class*=\"grid-line-yfull\"] > *::after {\n top: -0.125rem;\n bottom: -0.125rem;\n }\n .lg\\:grid-line-x-3[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.1875rem;\n }\n .lg\\:grid-line-x-3[class*=\"grid-line-yfull\"] > *::after {\n top: -0.1875rem;\n bottom: -0.1875rem;\n }\n .lg\\:grid-line-x-4[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.25rem;\n }\n .lg\\:grid-line-x-4[class*=\"grid-line-yfull\"] > *::after {\n top: -0.25rem;\n bottom: -0.25rem;\n }\n .lg\\:grid-line-x-5[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.3125rem;\n }\n .lg\\:grid-line-x-5[class*=\"grid-line-yfull\"] > *::after {\n top: -0.3125rem;\n bottom: -0.3125rem;\n }\n .lg\\:grid-line-x-6[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.375rem;\n }\n .lg\\:grid-line-x-6[class*=\"grid-line-yfull\"] > *::after {\n top: -0.375rem;\n bottom: -0.375rem;\n }\n .lg\\:grid-line-x-7[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.4375rem;\n }\n .lg\\:grid-line-x-7[class*=\"grid-line-yfull\"] > *::after {\n top: -0.4375rem;\n bottom: -0.4375rem;\n }\n .lg\\:grid-line-x-8[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5rem;\n }\n .lg\\:grid-line-x-8[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5rem;\n bottom: -0.5rem;\n }\n .lg\\:grid-line-x-9[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5625rem;\n }\n .lg\\:grid-line-x-9[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5625rem;\n bottom: -0.5625rem;\n }\n .lg\\:grid-line-x-10[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.625rem;\n }\n .lg\\:grid-line-x-10[class*=\"grid-line-yfull\"] > *::after {\n top: -0.625rem;\n bottom: -0.625rem;\n }\n .lg\\:grid-line-x-12[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.75rem;\n }\n .lg\\:grid-line-x-12[class*=\"grid-line-yfull\"] > *::after {\n top: -0.75rem;\n bottom: -0.75rem;\n }\n .lg\\:grid-line-x-16[class*=\"grid-line-x-\"] > *::before {\n bottom: -1rem;\n }\n .lg\\:grid-line-x-16[class*=\"grid-line-yfull\"] > *::after {\n top: -1rem;\n bottom: -1rem;\n }\n .lg\\:grid-line-x-20[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.25rem;\n }\n .lg\\:grid-line-x-20[class*=\"grid-line-yfull\"] > *::after {\n top: -1.25rem;\n bottom: -1.25rem;\n }\n .lg\\:grid-line-x-24[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.5rem;\n }\n .lg\\:grid-line-x-24[class*=\"grid-line-yfull\"] > *::after {\n top: -1.5rem;\n bottom: -1.5rem;\n }\n .lg\\:grid-line-x-28[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.75rem;\n }\n .lg\\:grid-line-x-28[class*=\"grid-line-yfull\"] > *::after {\n top: -1.75rem;\n bottom: -1.75rem;\n }\n .lg\\:grid-line-x-32[class*=\"grid-line-x-\"] > *::before {\n bottom: -2rem;\n }\n .lg\\:grid-line-x-32[class*=\"grid-line-yfull\"] > *::after {\n top: -2rem;\n bottom: -2rem;\n }\n .lg\\:grid-line-x-36[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.25rem;\n }\n .lg\\:grid-line-x-36[class*=\"grid-line-yfull\"] > *::after {\n top: -2.25rem;\n bottom: -2.25rem;\n }\n .lg\\:grid-line-x-40[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.5rem;\n }\n .lg\\:grid-line-x-40[class*=\"grid-line-yfull\"] > *::after {\n top: -2.5rem;\n bottom: -2.5rem;\n }\n .lg\\:grid-line-x-44[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.75rem;\n }\n .lg\\:grid-line-x-44[class*=\"grid-line-yfull\"] > *::after {\n top: -2.75rem;\n bottom: -2.75rem;\n }\n .lg\\:grid-line-x-48[class*=\"grid-line-x-\"] > *::before {\n bottom: -3rem;\n }\n .lg\\:grid-line-x-48[class*=\"grid-line-yfull\"] > *::after {\n top: -3rem;\n bottom: -3rem;\n }\n .lg\\:grid-line-x-52[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.25rem;\n }\n .lg\\:grid-line-x-52[class*=\"grid-line-yfull\"] > *::after {\n top: -3.25rem;\n bottom: -3.25rem;\n }\n .lg\\:grid-line-x-56[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.5rem;\n }\n .lg\\:grid-line-x-56[class*=\"grid-line-yfull\"] > *::after {\n top: -3.5rem;\n bottom: -3.5rem;\n }\n .lg\\:grid-line-x-60[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.75rem;\n }\n .lg\\:grid-line-x-60[class*=\"grid-line-yfull\"] > *::after {\n top: -3.75rem;\n bottom: -3.75rem;\n }\n .lg\\:grid-line-x-64[class*=\"grid-line-x-\"] > *::before {\n bottom: -4rem;\n }\n .lg\\:grid-line-x-64[class*=\"grid-line-yfull\"] > *::after {\n top: -4rem;\n bottom: -4rem;\n }\n .lg\\:grid-line-x-68[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.25rem;\n }\n .lg\\:grid-line-x-68[class*=\"grid-line-yfull\"] > *::after {\n top: -4.25rem;\n bottom: -4.25rem;\n }\n .lg\\:grid-line-x-72[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.5rem;\n }\n .lg\\:grid-line-x-72[class*=\"grid-line-yfull\"] > *::after {\n top: -4.5rem;\n bottom: -4.5rem;\n }\n .lg\\:grid-line-x-76[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.75rem;\n }\n .lg\\:grid-line-x-76[class*=\"grid-line-yfull\"] > *::after {\n top: -4.75rem;\n bottom: -4.75rem;\n }\n .lg\\:grid-line-x-80[class*=\"grid-line-x-\"] > *::before {\n bottom: -5rem;\n }\n .lg\\:grid-line-x-80[class*=\"grid-line-yfull\"] > *::after {\n top: -5rem;\n bottom: -5rem;\n }\n .lg\\:grid-line-x-84[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.25rem;\n }\n .lg\\:grid-line-x-84[class*=\"grid-line-yfull\"] > *::after {\n top: -5.25rem;\n bottom: -5.25rem;\n }\n .lg\\:grid-line-x-88[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.5rem;\n }\n .lg\\:grid-line-x-88[class*=\"grid-line-yfull\"] > *::after {\n top: -5.5rem;\n bottom: -5.5rem;\n }\n .lg\\:grid-line-x-92[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.75rem;\n }\n .lg\\:grid-line-x-92[class*=\"grid-line-yfull\"] > *::after {\n top: -5.75rem;\n bottom: -5.75rem;\n }\n .lg\\:grid-line-x-96[class*=\"grid-line-x-\"] > *::before {\n bottom: -6rem;\n }\n .lg\\:grid-line-x-96[class*=\"grid-line-yfull\"] > *::after {\n top: -6rem;\n bottom: -6rem;\n }\n .lg\\:grid-line-x-100[class*=\"grid-line-x-\"] > *::before {\n bottom: -6.25rem;\n }\n .lg\\:grid-line-x-100[class*=\"grid-line-yfull\"] > *::after {\n top: -6.25rem;\n bottom: -6.25rem;\n }\n .lg\\:grid-line-x-safe-top[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-top);\n }\n .lg\\:grid-line-x-safe-top[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-top);\n bottom: -env(safe-area-inset-top);\n }\n .lg\\:grid-line-x-safe-bottom[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-bottom);\n }\n .lg\\:grid-line-x-safe-bottom[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-bottom);\n bottom: -env(safe-area-inset-bottom);\n }\n .lg\\:grid-line-x-safe-left[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-left);\n }\n .lg\\:grid-line-x-safe-left[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-left);\n bottom: -env(safe-area-inset-left);\n }\n .lg\\:grid-line-x-safe-right[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-right);\n }\n .lg\\:grid-line-x-safe-right[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-right);\n bottom: -env(safe-area-inset-right);\n }\n .lg\\:grid-line-x-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--inner-gutter);\n }\n .lg\\:grid-line-x-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--inner-gutter);\n bottom: -var(--inner-gutter);\n }\n .lg\\:grid-line-x-outer-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--outer-gutter, 0px);\n }\n .lg\\:grid-line-x-outer-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--outer-gutter, 0px);\n bottom: -var(--outer-gutter, 0px);\n }\n .lg\\:grid-line-x-default[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .lg\\:grid-line-y-default[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .lg\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .lg\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .lg\\:grid-line-x-inverse[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .lg\\:grid-line-y-inverse[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .lg\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .lg\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .lg\\:grid-line-x-inverse-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .lg\\:grid-line-y-inverse-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .lg\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .lg\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .lg\\:grid-line-x-inverse-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .lg\\:grid-line-y-inverse-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .lg\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .lg\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .lg\\:grid-line-x-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .lg\\:grid-line-y-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .lg\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .lg\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .lg\\:grid-line-x-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .lg\\:grid-line-y-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .lg\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .lg\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .lg\\:grid-line-x-softest[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .lg\\:grid-line-y-softest[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .lg\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .lg\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .lg\\:grid-line-x-accent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .lg\\:grid-line-y-accent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .lg\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .lg\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .lg\\:grid-line-x-error[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .lg\\:grid-line-y-error[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .lg\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .lg\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .lg\\:grid-line-x-current[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .lg\\:grid-line-y-current[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .lg\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .lg\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .lg\\:grid-line-x-transparent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .lg\\:grid-line-y-transparent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .lg\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .lg\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .lg\\:grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .lg\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n }\n .lg\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n }\n}\n@media (min-width: 1024px) {\n [class*=\"grid-line-\"] > * {\n position: relative;\n }\n [class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n }\n .xl\\:grid-line-x > *::before {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: 0;\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xl\\:grid-line-xfull > *::before {\n content: attr(👻);\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xl\\:grid-line-x-0 > *::before {\n content: none;\n }\n .xl\\:grid-line-y > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xl\\:grid-line-yfull > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -1);\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xl\\:grid-line-yfull[class*=\"grid-line-x\"] > *::after {\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -2);\n bottom: calc(var(--inner-gutter) / -2);\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xl\\:grid-line-y-0 > *::after {\n content: none;\n }\n .xl\\:grid-line-x-0[class*=\"grid-line-x-\"] > *::before {\n bottom: -0rem;\n }\n .xl\\:grid-line-x-0[class*=\"grid-line-yfull\"] > *::after {\n top: -0rem;\n bottom: -0rem;\n }\n .xl\\:grid-line-x-1[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.0625rem;\n }\n .xl\\:grid-line-x-1[class*=\"grid-line-yfull\"] > *::after {\n top: -0.0625rem;\n bottom: -0.0625rem;\n }\n .xl\\:grid-line-x-2[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.125rem;\n }\n .xl\\:grid-line-x-2[class*=\"grid-line-yfull\"] > *::after {\n top: -0.125rem;\n bottom: -0.125rem;\n }\n .xl\\:grid-line-x-3[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.1875rem;\n }\n .xl\\:grid-line-x-3[class*=\"grid-line-yfull\"] > *::after {\n top: -0.1875rem;\n bottom: -0.1875rem;\n }\n .xl\\:grid-line-x-4[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.25rem;\n }\n .xl\\:grid-line-x-4[class*=\"grid-line-yfull\"] > *::after {\n top: -0.25rem;\n bottom: -0.25rem;\n }\n .xl\\:grid-line-x-5[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.3125rem;\n }\n .xl\\:grid-line-x-5[class*=\"grid-line-yfull\"] > *::after {\n top: -0.3125rem;\n bottom: -0.3125rem;\n }\n .xl\\:grid-line-x-6[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.375rem;\n }\n .xl\\:grid-line-x-6[class*=\"grid-line-yfull\"] > *::after {\n top: -0.375rem;\n bottom: -0.375rem;\n }\n .xl\\:grid-line-x-7[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.4375rem;\n }\n .xl\\:grid-line-x-7[class*=\"grid-line-yfull\"] > *::after {\n top: -0.4375rem;\n bottom: -0.4375rem;\n }\n .xl\\:grid-line-x-8[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5rem;\n }\n .xl\\:grid-line-x-8[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5rem;\n bottom: -0.5rem;\n }\n .xl\\:grid-line-x-9[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5625rem;\n }\n .xl\\:grid-line-x-9[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5625rem;\n bottom: -0.5625rem;\n }\n .xl\\:grid-line-x-10[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.625rem;\n }\n .xl\\:grid-line-x-10[class*=\"grid-line-yfull\"] > *::after {\n top: -0.625rem;\n bottom: -0.625rem;\n }\n .xl\\:grid-line-x-12[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.75rem;\n }\n .xl\\:grid-line-x-12[class*=\"grid-line-yfull\"] > *::after {\n top: -0.75rem;\n bottom: -0.75rem;\n }\n .xl\\:grid-line-x-16[class*=\"grid-line-x-\"] > *::before {\n bottom: -1rem;\n }\n .xl\\:grid-line-x-16[class*=\"grid-line-yfull\"] > *::after {\n top: -1rem;\n bottom: -1rem;\n }\n .xl\\:grid-line-x-20[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.25rem;\n }\n .xl\\:grid-line-x-20[class*=\"grid-line-yfull\"] > *::after {\n top: -1.25rem;\n bottom: -1.25rem;\n }\n .xl\\:grid-line-x-24[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.5rem;\n }\n .xl\\:grid-line-x-24[class*=\"grid-line-yfull\"] > *::after {\n top: -1.5rem;\n bottom: -1.5rem;\n }\n .xl\\:grid-line-x-28[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.75rem;\n }\n .xl\\:grid-line-x-28[class*=\"grid-line-yfull\"] > *::after {\n top: -1.75rem;\n bottom: -1.75rem;\n }\n .xl\\:grid-line-x-32[class*=\"grid-line-x-\"] > *::before {\n bottom: -2rem;\n }\n .xl\\:grid-line-x-32[class*=\"grid-line-yfull\"] > *::after {\n top: -2rem;\n bottom: -2rem;\n }\n .xl\\:grid-line-x-36[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.25rem;\n }\n .xl\\:grid-line-x-36[class*=\"grid-line-yfull\"] > *::after {\n top: -2.25rem;\n bottom: -2.25rem;\n }\n .xl\\:grid-line-x-40[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.5rem;\n }\n .xl\\:grid-line-x-40[class*=\"grid-line-yfull\"] > *::after {\n top: -2.5rem;\n bottom: -2.5rem;\n }\n .xl\\:grid-line-x-44[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.75rem;\n }\n .xl\\:grid-line-x-44[class*=\"grid-line-yfull\"] > *::after {\n top: -2.75rem;\n bottom: -2.75rem;\n }\n .xl\\:grid-line-x-48[class*=\"grid-line-x-\"] > *::before {\n bottom: -3rem;\n }\n .xl\\:grid-line-x-48[class*=\"grid-line-yfull\"] > *::after {\n top: -3rem;\n bottom: -3rem;\n }\n .xl\\:grid-line-x-52[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.25rem;\n }\n .xl\\:grid-line-x-52[class*=\"grid-line-yfull\"] > *::after {\n top: -3.25rem;\n bottom: -3.25rem;\n }\n .xl\\:grid-line-x-56[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.5rem;\n }\n .xl\\:grid-line-x-56[class*=\"grid-line-yfull\"] > *::after {\n top: -3.5rem;\n bottom: -3.5rem;\n }\n .xl\\:grid-line-x-60[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.75rem;\n }\n .xl\\:grid-line-x-60[class*=\"grid-line-yfull\"] > *::after {\n top: -3.75rem;\n bottom: -3.75rem;\n }\n .xl\\:grid-line-x-64[class*=\"grid-line-x-\"] > *::before {\n bottom: -4rem;\n }\n .xl\\:grid-line-x-64[class*=\"grid-line-yfull\"] > *::after {\n top: -4rem;\n bottom: -4rem;\n }\n .xl\\:grid-line-x-68[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.25rem;\n }\n .xl\\:grid-line-x-68[class*=\"grid-line-yfull\"] > *::after {\n top: -4.25rem;\n bottom: -4.25rem;\n }\n .xl\\:grid-line-x-72[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.5rem;\n }\n .xl\\:grid-line-x-72[class*=\"grid-line-yfull\"] > *::after {\n top: -4.5rem;\n bottom: -4.5rem;\n }\n .xl\\:grid-line-x-76[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.75rem;\n }\n .xl\\:grid-line-x-76[class*=\"grid-line-yfull\"] > *::after {\n top: -4.75rem;\n bottom: -4.75rem;\n }\n .xl\\:grid-line-x-80[class*=\"grid-line-x-\"] > *::before {\n bottom: -5rem;\n }\n .xl\\:grid-line-x-80[class*=\"grid-line-yfull\"] > *::after {\n top: -5rem;\n bottom: -5rem;\n }\n .xl\\:grid-line-x-84[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.25rem;\n }\n .xl\\:grid-line-x-84[class*=\"grid-line-yfull\"] > *::after {\n top: -5.25rem;\n bottom: -5.25rem;\n }\n .xl\\:grid-line-x-88[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.5rem;\n }\n .xl\\:grid-line-x-88[class*=\"grid-line-yfull\"] > *::after {\n top: -5.5rem;\n bottom: -5.5rem;\n }\n .xl\\:grid-line-x-92[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.75rem;\n }\n .xl\\:grid-line-x-92[class*=\"grid-line-yfull\"] > *::after {\n top: -5.75rem;\n bottom: -5.75rem;\n }\n .xl\\:grid-line-x-96[class*=\"grid-line-x-\"] > *::before {\n bottom: -6rem;\n }\n .xl\\:grid-line-x-96[class*=\"grid-line-yfull\"] > *::after {\n top: -6rem;\n bottom: -6rem;\n }\n .xl\\:grid-line-x-100[class*=\"grid-line-x-\"] > *::before {\n bottom: -6.25rem;\n }\n .xl\\:grid-line-x-100[class*=\"grid-line-yfull\"] > *::after {\n top: -6.25rem;\n bottom: -6.25rem;\n }\n .xl\\:grid-line-x-safe-top[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-top);\n }\n .xl\\:grid-line-x-safe-top[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-top);\n bottom: -env(safe-area-inset-top);\n }\n .xl\\:grid-line-x-safe-bottom[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-bottom);\n }\n .xl\\:grid-line-x-safe-bottom[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-bottom);\n bottom: -env(safe-area-inset-bottom);\n }\n .xl\\:grid-line-x-safe-left[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-left);\n }\n .xl\\:grid-line-x-safe-left[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-left);\n bottom: -env(safe-area-inset-left);\n }\n .xl\\:grid-line-x-safe-right[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-right);\n }\n .xl\\:grid-line-x-safe-right[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-right);\n bottom: -env(safe-area-inset-right);\n }\n .xl\\:grid-line-x-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--inner-gutter);\n }\n .xl\\:grid-line-x-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--inner-gutter);\n bottom: -var(--inner-gutter);\n }\n .xl\\:grid-line-x-outer-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--outer-gutter, 0px);\n }\n .xl\\:grid-line-x-outer-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--outer-gutter, 0px);\n bottom: -var(--outer-gutter, 0px);\n }\n .xl\\:grid-line-x-default[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xl\\:grid-line-y-default[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xl\\:grid-line-x-inverse[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xl\\:grid-line-y-inverse[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xl\\:grid-line-x-inverse-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xl\\:grid-line-y-inverse-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xl\\:grid-line-x-inverse-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xl\\:grid-line-y-inverse-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xl\\:grid-line-x-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xl\\:grid-line-y-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xl\\:grid-line-x-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xl\\:grid-line-y-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xl\\:grid-line-x-softest[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xl\\:grid-line-y-softest[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xl\\:grid-line-x-accent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xl\\:grid-line-y-accent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xl\\:grid-line-x-error[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xl\\:grid-line-y-error[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xl\\:grid-line-x-current[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xl\\:grid-line-y-current[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xl\\:grid-line-x-transparent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xl\\:grid-line-y-transparent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xl\\:grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n }\n .xl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n }\n}\n@media (min-width: 1280px) {\n [class*=\"grid-line-\"] > * {\n position: relative;\n }\n [class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n }\n .xxl\\:grid-line-x > *::before {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: 0;\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xxl\\:grid-line-xfull > *::before {\n content: attr(👻);\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xxl\\:grid-line-x-0 > *::before {\n content: none;\n }\n .xxl\\:grid-line-y > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxl\\:grid-line-yfull > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -1);\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxl\\:grid-line-yfull[class*=\"grid-line-x\"] > *::after {\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -2);\n bottom: calc(var(--inner-gutter) / -2);\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxl\\:grid-line-y-0 > *::after {\n content: none;\n }\n .xxl\\:grid-line-x-0[class*=\"grid-line-x-\"] > *::before {\n bottom: -0rem;\n }\n .xxl\\:grid-line-x-0[class*=\"grid-line-yfull\"] > *::after {\n top: -0rem;\n bottom: -0rem;\n }\n .xxl\\:grid-line-x-1[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.0625rem;\n }\n .xxl\\:grid-line-x-1[class*=\"grid-line-yfull\"] > *::after {\n top: -0.0625rem;\n bottom: -0.0625rem;\n }\n .xxl\\:grid-line-x-2[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.125rem;\n }\n .xxl\\:grid-line-x-2[class*=\"grid-line-yfull\"] > *::after {\n top: -0.125rem;\n bottom: -0.125rem;\n }\n .xxl\\:grid-line-x-3[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.1875rem;\n }\n .xxl\\:grid-line-x-3[class*=\"grid-line-yfull\"] > *::after {\n top: -0.1875rem;\n bottom: -0.1875rem;\n }\n .xxl\\:grid-line-x-4[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.25rem;\n }\n .xxl\\:grid-line-x-4[class*=\"grid-line-yfull\"] > *::after {\n top: -0.25rem;\n bottom: -0.25rem;\n }\n .xxl\\:grid-line-x-5[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.3125rem;\n }\n .xxl\\:grid-line-x-5[class*=\"grid-line-yfull\"] > *::after {\n top: -0.3125rem;\n bottom: -0.3125rem;\n }\n .xxl\\:grid-line-x-6[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.375rem;\n }\n .xxl\\:grid-line-x-6[class*=\"grid-line-yfull\"] > *::after {\n top: -0.375rem;\n bottom: -0.375rem;\n }\n .xxl\\:grid-line-x-7[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.4375rem;\n }\n .xxl\\:grid-line-x-7[class*=\"grid-line-yfull\"] > *::after {\n top: -0.4375rem;\n bottom: -0.4375rem;\n }\n .xxl\\:grid-line-x-8[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5rem;\n }\n .xxl\\:grid-line-x-8[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5rem;\n bottom: -0.5rem;\n }\n .xxl\\:grid-line-x-9[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5625rem;\n }\n .xxl\\:grid-line-x-9[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5625rem;\n bottom: -0.5625rem;\n }\n .xxl\\:grid-line-x-10[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.625rem;\n }\n .xxl\\:grid-line-x-10[class*=\"grid-line-yfull\"] > *::after {\n top: -0.625rem;\n bottom: -0.625rem;\n }\n .xxl\\:grid-line-x-12[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.75rem;\n }\n .xxl\\:grid-line-x-12[class*=\"grid-line-yfull\"] > *::after {\n top: -0.75rem;\n bottom: -0.75rem;\n }\n .xxl\\:grid-line-x-16[class*=\"grid-line-x-\"] > *::before {\n bottom: -1rem;\n }\n .xxl\\:grid-line-x-16[class*=\"grid-line-yfull\"] > *::after {\n top: -1rem;\n bottom: -1rem;\n }\n .xxl\\:grid-line-x-20[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.25rem;\n }\n .xxl\\:grid-line-x-20[class*=\"grid-line-yfull\"] > *::after {\n top: -1.25rem;\n bottom: -1.25rem;\n }\n .xxl\\:grid-line-x-24[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.5rem;\n }\n .xxl\\:grid-line-x-24[class*=\"grid-line-yfull\"] > *::after {\n top: -1.5rem;\n bottom: -1.5rem;\n }\n .xxl\\:grid-line-x-28[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.75rem;\n }\n .xxl\\:grid-line-x-28[class*=\"grid-line-yfull\"] > *::after {\n top: -1.75rem;\n bottom: -1.75rem;\n }\n .xxl\\:grid-line-x-32[class*=\"grid-line-x-\"] > *::before {\n bottom: -2rem;\n }\n .xxl\\:grid-line-x-32[class*=\"grid-line-yfull\"] > *::after {\n top: -2rem;\n bottom: -2rem;\n }\n .xxl\\:grid-line-x-36[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.25rem;\n }\n .xxl\\:grid-line-x-36[class*=\"grid-line-yfull\"] > *::after {\n top: -2.25rem;\n bottom: -2.25rem;\n }\n .xxl\\:grid-line-x-40[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.5rem;\n }\n .xxl\\:grid-line-x-40[class*=\"grid-line-yfull\"] > *::after {\n top: -2.5rem;\n bottom: -2.5rem;\n }\n .xxl\\:grid-line-x-44[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.75rem;\n }\n .xxl\\:grid-line-x-44[class*=\"grid-line-yfull\"] > *::after {\n top: -2.75rem;\n bottom: -2.75rem;\n }\n .xxl\\:grid-line-x-48[class*=\"grid-line-x-\"] > *::before {\n bottom: -3rem;\n }\n .xxl\\:grid-line-x-48[class*=\"grid-line-yfull\"] > *::after {\n top: -3rem;\n bottom: -3rem;\n }\n .xxl\\:grid-line-x-52[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.25rem;\n }\n .xxl\\:grid-line-x-52[class*=\"grid-line-yfull\"] > *::after {\n top: -3.25rem;\n bottom: -3.25rem;\n }\n .xxl\\:grid-line-x-56[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.5rem;\n }\n .xxl\\:grid-line-x-56[class*=\"grid-line-yfull\"] > *::after {\n top: -3.5rem;\n bottom: -3.5rem;\n }\n .xxl\\:grid-line-x-60[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.75rem;\n }\n .xxl\\:grid-line-x-60[class*=\"grid-line-yfull\"] > *::after {\n top: -3.75rem;\n bottom: -3.75rem;\n }\n .xxl\\:grid-line-x-64[class*=\"grid-line-x-\"] > *::before {\n bottom: -4rem;\n }\n .xxl\\:grid-line-x-64[class*=\"grid-line-yfull\"] > *::after {\n top: -4rem;\n bottom: -4rem;\n }\n .xxl\\:grid-line-x-68[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.25rem;\n }\n .xxl\\:grid-line-x-68[class*=\"grid-line-yfull\"] > *::after {\n top: -4.25rem;\n bottom: -4.25rem;\n }\n .xxl\\:grid-line-x-72[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.5rem;\n }\n .xxl\\:grid-line-x-72[class*=\"grid-line-yfull\"] > *::after {\n top: -4.5rem;\n bottom: -4.5rem;\n }\n .xxl\\:grid-line-x-76[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.75rem;\n }\n .xxl\\:grid-line-x-76[class*=\"grid-line-yfull\"] > *::after {\n top: -4.75rem;\n bottom: -4.75rem;\n }\n .xxl\\:grid-line-x-80[class*=\"grid-line-x-\"] > *::before {\n bottom: -5rem;\n }\n .xxl\\:grid-line-x-80[class*=\"grid-line-yfull\"] > *::after {\n top: -5rem;\n bottom: -5rem;\n }\n .xxl\\:grid-line-x-84[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.25rem;\n }\n .xxl\\:grid-line-x-84[class*=\"grid-line-yfull\"] > *::after {\n top: -5.25rem;\n bottom: -5.25rem;\n }\n .xxl\\:grid-line-x-88[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.5rem;\n }\n .xxl\\:grid-line-x-88[class*=\"grid-line-yfull\"] > *::after {\n top: -5.5rem;\n bottom: -5.5rem;\n }\n .xxl\\:grid-line-x-92[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.75rem;\n }\n .xxl\\:grid-line-x-92[class*=\"grid-line-yfull\"] > *::after {\n top: -5.75rem;\n bottom: -5.75rem;\n }\n .xxl\\:grid-line-x-96[class*=\"grid-line-x-\"] > *::before {\n bottom: -6rem;\n }\n .xxl\\:grid-line-x-96[class*=\"grid-line-yfull\"] > *::after {\n top: -6rem;\n bottom: -6rem;\n }\n .xxl\\:grid-line-x-100[class*=\"grid-line-x-\"] > *::before {\n bottom: -6.25rem;\n }\n .xxl\\:grid-line-x-100[class*=\"grid-line-yfull\"] > *::after {\n top: -6.25rem;\n bottom: -6.25rem;\n }\n .xxl\\:grid-line-x-safe-top[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-top);\n }\n .xxl\\:grid-line-x-safe-top[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-top);\n bottom: -env(safe-area-inset-top);\n }\n .xxl\\:grid-line-x-safe-bottom[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-bottom);\n }\n .xxl\\:grid-line-x-safe-bottom[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-bottom);\n bottom: -env(safe-area-inset-bottom);\n }\n .xxl\\:grid-line-x-safe-left[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-left);\n }\n .xxl\\:grid-line-x-safe-left[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-left);\n bottom: -env(safe-area-inset-left);\n }\n .xxl\\:grid-line-x-safe-right[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-right);\n }\n .xxl\\:grid-line-x-safe-right[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-right);\n bottom: -env(safe-area-inset-right);\n }\n .xxl\\:grid-line-x-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--inner-gutter);\n }\n .xxl\\:grid-line-x-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--inner-gutter);\n bottom: -var(--inner-gutter);\n }\n .xxl\\:grid-line-x-outer-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--outer-gutter, 0px);\n }\n .xxl\\:grid-line-x-outer-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--outer-gutter, 0px);\n bottom: -var(--outer-gutter, 0px);\n }\n .xxl\\:grid-line-x-default[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xxl\\:grid-line-y-default[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xxl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xxl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xxl\\:grid-line-x-inverse[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xxl\\:grid-line-y-inverse[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xxl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xxl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xxl\\:grid-line-x-inverse-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xxl\\:grid-line-y-inverse-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xxl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xxl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xxl\\:grid-line-x-inverse-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xxl\\:grid-line-y-inverse-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xxl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xxl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xxl\\:grid-line-x-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xxl\\:grid-line-y-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xxl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xxl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xxl\\:grid-line-x-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xxl\\:grid-line-y-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xxl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xxl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xxl\\:grid-line-x-softest[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xxl\\:grid-line-y-softest[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xxl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xxl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xxl\\:grid-line-x-accent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xxl\\:grid-line-y-accent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xxl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xxl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xxl\\:grid-line-x-error[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xxl\\:grid-line-y-error[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xxl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xxl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xxl\\:grid-line-x-current[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xxl\\:grid-line-y-current[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xxl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xxl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xxl\\:grid-line-x-transparent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xxl\\:grid-line-y-transparent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xxl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xxl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xxl\\:grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n }\n .xxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n }\n}\n@media (min-width: 2200px) {\n [class*=\"grid-line-\"] > * {\n position: relative;\n }\n [class*=\"grid-line-\"] > *::before, [class*=\"grid-line-\"] > *::after {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n pointer-events: none;\n }\n .xxxl\\:grid-line-x > *::before {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: 0;\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xxxl\\:grid-line-xfull > *::before {\n content: attr(👻);\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: calc(var(--inner-gutter) / -2);\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n }\n .xxxl\\:grid-line-x-0 > *::before {\n content: none;\n }\n .xxxl\\:grid-line-y > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxxl\\:grid-line-yfull > *::after {\n content: attr(👻);\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -1);\n bottom: 0;\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxxl\\:grid-line-yfull[class*=\"grid-line-x\"] > *::after {\n inset-inline-start: 0;\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: calc(var(--inner-gutter) / -2);\n bottom: calc(var(--inner-gutter) / -2);\n border-inline-start: 0 solid transparent;\n border-inline-end: 0 solid transparent;\n }\n .xxxl\\:grid-line-y-0 > *::after {\n content: none;\n }\n .xxxl\\:grid-line-x-0[class*=\"grid-line-x-\"] > *::before {\n bottom: -0rem;\n }\n .xxxl\\:grid-line-x-0[class*=\"grid-line-yfull\"] > *::after {\n top: -0rem;\n bottom: -0rem;\n }\n .xxxl\\:grid-line-x-1[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.0625rem;\n }\n .xxxl\\:grid-line-x-1[class*=\"grid-line-yfull\"] > *::after {\n top: -0.0625rem;\n bottom: -0.0625rem;\n }\n .xxxl\\:grid-line-x-2[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.125rem;\n }\n .xxxl\\:grid-line-x-2[class*=\"grid-line-yfull\"] > *::after {\n top: -0.125rem;\n bottom: -0.125rem;\n }\n .xxxl\\:grid-line-x-3[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.1875rem;\n }\n .xxxl\\:grid-line-x-3[class*=\"grid-line-yfull\"] > *::after {\n top: -0.1875rem;\n bottom: -0.1875rem;\n }\n .xxxl\\:grid-line-x-4[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.25rem;\n }\n .xxxl\\:grid-line-x-4[class*=\"grid-line-yfull\"] > *::after {\n top: -0.25rem;\n bottom: -0.25rem;\n }\n .xxxl\\:grid-line-x-5[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.3125rem;\n }\n .xxxl\\:grid-line-x-5[class*=\"grid-line-yfull\"] > *::after {\n top: -0.3125rem;\n bottom: -0.3125rem;\n }\n .xxxl\\:grid-line-x-6[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.375rem;\n }\n .xxxl\\:grid-line-x-6[class*=\"grid-line-yfull\"] > *::after {\n top: -0.375rem;\n bottom: -0.375rem;\n }\n .xxxl\\:grid-line-x-7[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.4375rem;\n }\n .xxxl\\:grid-line-x-7[class*=\"grid-line-yfull\"] > *::after {\n top: -0.4375rem;\n bottom: -0.4375rem;\n }\n .xxxl\\:grid-line-x-8[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5rem;\n }\n .xxxl\\:grid-line-x-8[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5rem;\n bottom: -0.5rem;\n }\n .xxxl\\:grid-line-x-9[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.5625rem;\n }\n .xxxl\\:grid-line-x-9[class*=\"grid-line-yfull\"] > *::after {\n top: -0.5625rem;\n bottom: -0.5625rem;\n }\n .xxxl\\:grid-line-x-10[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.625rem;\n }\n .xxxl\\:grid-line-x-10[class*=\"grid-line-yfull\"] > *::after {\n top: -0.625rem;\n bottom: -0.625rem;\n }\n .xxxl\\:grid-line-x-12[class*=\"grid-line-x-\"] > *::before {\n bottom: -0.75rem;\n }\n .xxxl\\:grid-line-x-12[class*=\"grid-line-yfull\"] > *::after {\n top: -0.75rem;\n bottom: -0.75rem;\n }\n .xxxl\\:grid-line-x-16[class*=\"grid-line-x-\"] > *::before {\n bottom: -1rem;\n }\n .xxxl\\:grid-line-x-16[class*=\"grid-line-yfull\"] > *::after {\n top: -1rem;\n bottom: -1rem;\n }\n .xxxl\\:grid-line-x-20[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.25rem;\n }\n .xxxl\\:grid-line-x-20[class*=\"grid-line-yfull\"] > *::after {\n top: -1.25rem;\n bottom: -1.25rem;\n }\n .xxxl\\:grid-line-x-24[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.5rem;\n }\n .xxxl\\:grid-line-x-24[class*=\"grid-line-yfull\"] > *::after {\n top: -1.5rem;\n bottom: -1.5rem;\n }\n .xxxl\\:grid-line-x-28[class*=\"grid-line-x-\"] > *::before {\n bottom: -1.75rem;\n }\n .xxxl\\:grid-line-x-28[class*=\"grid-line-yfull\"] > *::after {\n top: -1.75rem;\n bottom: -1.75rem;\n }\n .xxxl\\:grid-line-x-32[class*=\"grid-line-x-\"] > *::before {\n bottom: -2rem;\n }\n .xxxl\\:grid-line-x-32[class*=\"grid-line-yfull\"] > *::after {\n top: -2rem;\n bottom: -2rem;\n }\n .xxxl\\:grid-line-x-36[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.25rem;\n }\n .xxxl\\:grid-line-x-36[class*=\"grid-line-yfull\"] > *::after {\n top: -2.25rem;\n bottom: -2.25rem;\n }\n .xxxl\\:grid-line-x-40[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.5rem;\n }\n .xxxl\\:grid-line-x-40[class*=\"grid-line-yfull\"] > *::after {\n top: -2.5rem;\n bottom: -2.5rem;\n }\n .xxxl\\:grid-line-x-44[class*=\"grid-line-x-\"] > *::before {\n bottom: -2.75rem;\n }\n .xxxl\\:grid-line-x-44[class*=\"grid-line-yfull\"] > *::after {\n top: -2.75rem;\n bottom: -2.75rem;\n }\n .xxxl\\:grid-line-x-48[class*=\"grid-line-x-\"] > *::before {\n bottom: -3rem;\n }\n .xxxl\\:grid-line-x-48[class*=\"grid-line-yfull\"] > *::after {\n top: -3rem;\n bottom: -3rem;\n }\n .xxxl\\:grid-line-x-52[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.25rem;\n }\n .xxxl\\:grid-line-x-52[class*=\"grid-line-yfull\"] > *::after {\n top: -3.25rem;\n bottom: -3.25rem;\n }\n .xxxl\\:grid-line-x-56[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.5rem;\n }\n .xxxl\\:grid-line-x-56[class*=\"grid-line-yfull\"] > *::after {\n top: -3.5rem;\n bottom: -3.5rem;\n }\n .xxxl\\:grid-line-x-60[class*=\"grid-line-x-\"] > *::before {\n bottom: -3.75rem;\n }\n .xxxl\\:grid-line-x-60[class*=\"grid-line-yfull\"] > *::after {\n top: -3.75rem;\n bottom: -3.75rem;\n }\n .xxxl\\:grid-line-x-64[class*=\"grid-line-x-\"] > *::before {\n bottom: -4rem;\n }\n .xxxl\\:grid-line-x-64[class*=\"grid-line-yfull\"] > *::after {\n top: -4rem;\n bottom: -4rem;\n }\n .xxxl\\:grid-line-x-68[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.25rem;\n }\n .xxxl\\:grid-line-x-68[class*=\"grid-line-yfull\"] > *::after {\n top: -4.25rem;\n bottom: -4.25rem;\n }\n .xxxl\\:grid-line-x-72[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.5rem;\n }\n .xxxl\\:grid-line-x-72[class*=\"grid-line-yfull\"] > *::after {\n top: -4.5rem;\n bottom: -4.5rem;\n }\n .xxxl\\:grid-line-x-76[class*=\"grid-line-x-\"] > *::before {\n bottom: -4.75rem;\n }\n .xxxl\\:grid-line-x-76[class*=\"grid-line-yfull\"] > *::after {\n top: -4.75rem;\n bottom: -4.75rem;\n }\n .xxxl\\:grid-line-x-80[class*=\"grid-line-x-\"] > *::before {\n bottom: -5rem;\n }\n .xxxl\\:grid-line-x-80[class*=\"grid-line-yfull\"] > *::after {\n top: -5rem;\n bottom: -5rem;\n }\n .xxxl\\:grid-line-x-84[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.25rem;\n }\n .xxxl\\:grid-line-x-84[class*=\"grid-line-yfull\"] > *::after {\n top: -5.25rem;\n bottom: -5.25rem;\n }\n .xxxl\\:grid-line-x-88[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.5rem;\n }\n .xxxl\\:grid-line-x-88[class*=\"grid-line-yfull\"] > *::after {\n top: -5.5rem;\n bottom: -5.5rem;\n }\n .xxxl\\:grid-line-x-92[class*=\"grid-line-x-\"] > *::before {\n bottom: -5.75rem;\n }\n .xxxl\\:grid-line-x-92[class*=\"grid-line-yfull\"] > *::after {\n top: -5.75rem;\n bottom: -5.75rem;\n }\n .xxxl\\:grid-line-x-96[class*=\"grid-line-x-\"] > *::before {\n bottom: -6rem;\n }\n .xxxl\\:grid-line-x-96[class*=\"grid-line-yfull\"] > *::after {\n top: -6rem;\n bottom: -6rem;\n }\n .xxxl\\:grid-line-x-100[class*=\"grid-line-x-\"] > *::before {\n bottom: -6.25rem;\n }\n .xxxl\\:grid-line-x-100[class*=\"grid-line-yfull\"] > *::after {\n top: -6.25rem;\n bottom: -6.25rem;\n }\n .xxxl\\:grid-line-x-safe-top[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-top);\n }\n .xxxl\\:grid-line-x-safe-top[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-top);\n bottom: -env(safe-area-inset-top);\n }\n .xxxl\\:grid-line-x-safe-bottom[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-bottom);\n }\n .xxxl\\:grid-line-x-safe-bottom[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-bottom);\n bottom: -env(safe-area-inset-bottom);\n }\n .xxxl\\:grid-line-x-safe-left[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-left);\n }\n .xxxl\\:grid-line-x-safe-left[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-left);\n bottom: -env(safe-area-inset-left);\n }\n .xxxl\\:grid-line-x-safe-right[class*=\"grid-line-x-\"] > *::before {\n bottom: -env(safe-area-inset-right);\n }\n .xxxl\\:grid-line-x-safe-right[class*=\"grid-line-yfull\"] > *::after {\n top: -env(safe-area-inset-right);\n bottom: -env(safe-area-inset-right);\n }\n .xxxl\\:grid-line-x-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--inner-gutter);\n }\n .xxxl\\:grid-line-x-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--inner-gutter);\n bottom: -var(--inner-gutter);\n }\n .xxxl\\:grid-line-x-outer-gutter[class*=\"grid-line-x-\"] > *::before {\n bottom: -var(--outer-gutter, 0px);\n }\n .xxxl\\:grid-line-x-outer-gutter[class*=\"grid-line-yfull\"] > *::after {\n top: -var(--outer-gutter, 0px);\n bottom: -var(--outer-gutter, 0px);\n }\n .xxxl\\:grid-line-x-default[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xxxl\\:grid-line-y-default[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xxxl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-black);\n }\n .xxxl\\:grid-line-xy-default[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-black);\n }\n .xxxl\\:grid-line-x-inverse[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xxxl\\:grid-line-y-inverse[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xxxl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--white);\n }\n .xxxl\\:grid-line-xy-inverse[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--white);\n }\n .xxxl\\:grid-line-x-inverse-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xxxl\\:grid-line-y-inverse-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xxxl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.3);\n }\n .xxxl\\:grid-line-xy-inverse-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.3);\n }\n .xxxl\\:grid-line-x-inverse-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xxxl\\:grid-line-y-inverse-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xxxl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(255, 255, 255, 0.15);\n }\n .xxxl\\:grid-line-xy-inverse-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(255, 255, 255, 0.15);\n }\n .xxxl\\:grid-line-x-soft[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xxxl\\:grid-line-y-soft[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xxxl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .15 );\n }\n .xxxl\\:grid-line-xy-soft[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .15 );\n }\n .xxxl\\:grid-line-x-softer[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xxxl\\:grid-line-y-softer[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xxxl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .1 );\n }\n .xxxl\\:grid-line-xy-softer[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .1 );\n }\n .xxxl\\:grid-line-x-softest[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xxxl\\:grid-line-y-softest[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xxxl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: rgba(0, 0, 0, .05 );\n }\n .xxxl\\:grid-line-xy-softest[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: rgba(0, 0, 0, .05 );\n }\n .xxxl\\:grid-line-x-accent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xxxl\\:grid-line-y-accent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xxxl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--brand-green);\n }\n .xxxl\\:grid-line-xy-accent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--brand-green);\n }\n .xxxl\\:grid-line-x-error[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xxxl\\:grid-line-y-error[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xxxl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--red-700);\n }\n .xxxl\\:grid-line-xy-error[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--red-700);\n }\n .xxxl\\:grid-line-x-current[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xxxl\\:grid-line-y-current[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xxxl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: currentColor;\n }\n .xxxl\\:grid-line-xy-current[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: currentColor;\n }\n .xxxl\\:grid-line-x-transparent[class*=\"grid-line-x-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xxxl\\:grid-line-y-transparent[class*=\"grid-line-y-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xxxl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::before {\n border-bottom-color: var(--transparent);\n }\n .xxxl\\:grid-line-xy-transparent[class*=\"grid-line-xy-\"] > *::after {\n border-inline-end-color: var(--transparent);\n }\n .xxxl\\:grid-cols-1[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-1[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: 0;\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-1[class*=\"grid-line-x\"] > *:nth-child(1n+1):nth-last-child(-n+1) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+2)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-x\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+2)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+2)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-2[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(2n+1):nth-last-child(-n+2) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+3)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-x\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+3)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+3)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-3[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(3n+1):nth-last-child(-n+3) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+4)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-x\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+4)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+4)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-4[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(4n+1):nth-last-child(-n+4) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+5)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-x\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+5)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+5)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-5[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(5n+1):nth-last-child(-n+5) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+6)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-x\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+6)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+6)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-6[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(6n+1):nth-last-child(-n+6) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+7)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-x\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+7)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+7)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-7[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(7n+1):nth-last-child(-n+7) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+8)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-x\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+8)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+8)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-8[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(8n+1):nth-last-child(-n+8) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+9)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-x\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+9)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+9)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-9[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(9n+1):nth-last-child(-n+9) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+10)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-x\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+10)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+10)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-10[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(10n+1):nth-last-child(-n+10) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+11)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-x\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+11)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+11)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(11n+1):nth-last-child(-n+11) ~ li::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-x\"][class*=\"grid-line-x\"] > *:nth-child(n)::before {\n border-bottom-width: 1px;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-xfull\"] > *:nth-child(n)::before {\n inset-inline-start: calc(var(--inner-gutter) / -2);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1)::before {\n inset-inline-start: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+12)::before {\n inset-inline-end: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12)::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-x\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ *::before {\n border-bottom-width: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(n)::after {\n border-inline-end-width: 1px;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+12)::after {\n border-inline-end-width: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(-n+12)::after {\n top: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12)::after {\n bottom: 0;\n }\n .xxxl\\:grid-cols-12[class*=\"grid-line-y\"][class*=\"grid-line-y\"] > *:nth-child(12n+1):nth-last-child(-n+12) ~ li::after {\n bottom: 0;\n }\n}\n.cols-container > .ml-0 {\n margin-left: 0;\n}\n.w-12-cols {\n width: calc(((12 / var(--container-grid-columns, var(--grid-columns))) * 100%) - (var(--inner-gutter) - (12 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n}\n.cols-container > .w-12-cols {\n width: calc(((12 / var(--container-grid-columns, var(--grid-columns))) * (100% - var(--inner-gutter))) - (var(--inner-gutter) - (12 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n}\n.w-12-cols > * {\n --container-grid-columns: 12;\n}\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n }\n\n &::after {\n position: absolute;\n }\n\n &::after {\n inset: 0rem;\n }\n\n &::after {\n z-index: 1;\n }\n\n &::after {\n border-radius: 8px;\n }\n\n &::after {\n border-width: 1px;\n }\n\n &::after {\n border-width: 2px;\n }\n\n &::after {\n border-color: rgba(0, 0, 0, .1 );\n }\n\n &::after {\n content: '';\n }\n}\n.border-inside-inverse {\n &::after {\n border-color: rgba(255, 255, 255, 0.3);\n }\n &::after {\n content: '';\n }\n }\n.border-inside-pill {\n &::after {\n border-radius: 100px;\n }\n &::after {\n content: '';\n }\n }\n.input-label-options {\n font-family: var(--f-ui-03-fontFamily);\n font-size: var(--f-ui-03-fontSize);\n line-height: var(--f-ui-03-lineHeight);\n letter-spacing: var(--f-ui-03-letterSpacing);\n}\n.input-label {\n font-family: var(--f-ui-04-fontFamily);\n font-weight: var(--f-ui-04-fontWeight);\n font-size: var(--f-ui-04-fontSize);\n line-height: var(--f-ui-04-lineHeight);\n letter-spacing: var(--f-ui-04-letterSpacing);\n}\n.input-label b,.input-label strong {\n font-weight: var(--f-ui-04---bold-weight, bold);\n}\n.input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: flex;\n min-height: 2.5rem;\n width: 100%;\n align-items: center;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(0, 0, 0, .1 );\n}\n.input:hover {\n border-color: var(--brand-black);\n}\n.input:active {\n border-color: var(--brand-black);\n}\n.input {\n font-family: var(--f-ui-02-light-fontFamily);\n font-weight: var(--f-ui-02-light-fontWeight);\n font-size: var(--f-ui-02-light-fontSize);\n line-height: var(--f-ui-02-light-lineHeight);\n letter-spacing: var(--f-ui-02-light-letterSpacing);\n}\n.input b,.input strong {\n font-weight: var(--f-ui-02-light---bold-weight, bold);\n}\n.input::-moz-placeholder {\n color: var(--grey-500);\n}\n.input::placeholder {\n color: var(--grey-500);\n}\n.input {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green);\n}\n.input:focus-visible {\n outline-style: solid;\n}\n.input:disabled {\n cursor: not-allowed;\n background-color: var(--grey-300);\n color: var(--grey-500);\n}\n.input:disabled:hover {\n border-color: rgba(0, 0, 0, .1 );\n}\n.input:disabled:active {\n border-color: rgba(0, 0, 0, .1 );\n}\n.input-with-icon {\n padding-right: 34px;\n}\n.input-checkbox {\n position: relative;\n height: 1rem;\n min-height: auto;\n width: 1rem;\n padding: 0rem;\n border-radius: 4px;\n border-color: rgba(0, 0, 0, .15 );\n}\n.input-checkbox::after {\n --tw-content: '';\n content: var(--tw-content);\n position: absolute;\n top: 0rem;\n left: 50%;\n --tw-translate-x: -50%;\n height: 10px;\n width: 6px;\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n border-bottom-width: 2px;\n border-right-width: 2px;\n border-color: var(--transparent);\n}\n.input-checkbox:checked {\n border-color: var(--brand-black);\n background-color: var(--brand-black);\n}\n.input-checkbox:checked::after {\n border-color: var(--white);\n}\n.input-checkbox:checked:disabled {\n border-color: rgba(0, 0, 0, .15 );\n background-color: var(--grey-300);\n}\n.input-checkbox:checked:disabled::after {\n border-color: rgba(0, 0, 0, .15 );\n}\n.input-radio {\n position: relative;\n height: 1rem;\n min-height: auto;\n width: 1rem;\n padding: 0rem;\n border-radius: 9999px;\n border-color: rgba(0, 0, 0, .15 );\n}\n.input-radio::after {\n --tw-content: '';\n content: var(--tw-content);\n position: absolute;\n top: 50%;\n left: 50%;\n --tw-translate-x: -50%;\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n height: 6px;\n width: 6px;\n border-radius: 9999px;\n background-color: var(--transparent);\n}\n.input-radio:checked {\n border-color: var(--brand-black);\n background-color: var(--brand-black);\n}\n.input-radio:checked::after {\n background-color: var(--white);\n}\n.input-radio:checked:disabled::after {\n background-color: var(--white);\n}\n.input-error {\n border-color: var(--red-700);\n}\n.input-counter {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n color: var(--grey-500);\n\n &.input-counter-error {\n color: var(--red-700);\n }\n}\ninput[type=\"range\"]::-webkit-slider-thumb {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n outline: 2px solid var(--brand-green); /* This adds an outline */\n background-color: var(--brand-green-dark);\n -webkit-appearance: none;\n appearance: none; /* Ensure the thumb can be styled */\n}\n.loader {\n box-sizing: border-box;\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.loader {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border: 3px solid rgba(0, 0, 0, .3);\n border-bottom-color: #000;\n}\n.scroller-x {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.scroller-x::-webkit-scrollbar {\n display: none;\n}\n.scroller-x {\n overflow: auto;\n overscroll-behavior-x: contain;\n}\n/** region TRANSITIONS */\n.effect-color {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.effect-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.effect-background {\n transition-property: background;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.effect-height {\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: height;\n}\n.effect-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n/** endregion */\n/* region FOCUS */\n.effect-focus {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green);\n}\n.effect-focus:focus-visible {\n outline-style: solid;\n}\n.effect-focus-within {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green);\n}\n.effect-focus-within:focus-within {\n outline-style: solid;\n}\n/* endregion */\n/* region BG */\n.effect-bg-pattern {\n position: relative;\n z-index: 1;\n\n &::before {\n position: absolute;\n content: '';\n z-index: -1;\n inset: 0;\n background-color: rgba(208, 208, 208, 0.75);\n opacity: 0.75;\n background-image: repeating-linear-gradient(45deg, #F5F5F5 25%, transparent 25%, transparent 75%, #F5F5F5 75%, #F5F5F5), repeating-linear-gradient(45deg, #F5F5F5 25%, #D0D0D0 25%, #D0D0D0 75%, #F5F5F5 75%, #F5F5F5);\n background-position: 0 0, 8px 8px;\n background-size: 16px 16px;\n }\n }\n.effect-bg-behind {\n position: relative;\n}\n.effect-bg-behind::before {\n position: absolute;\n inset: 0rem;\n z-index: -1;\n --tw-content: '';\n content: var(--tw-content);\n}\n.effect-bg-behind {\n\n &:before {\n background-size: calc(100% + 6px) calc(100% + 6px) !important;\n background-position: -4px -4px !important;\n background-repeat: no-repeat !important;\n }\n }\n.effect-bg-behind-link {\n position: relative;\n}\n.effect-bg-behind-link::before {\n position: absolute;\n top: 0rem;\n bottom: 0rem;\n left: -0.5rem;\n right: 0rem;\n z-index: 0;\n border-radius: 8px;\n background-color: var(--grey-400);\n --tw-content: '';\n content: var(--tw-content);\n}\n.effect-bg-behind-link[aria-disabled=\"true\"]::before {\n background-color: var(--transparent);\n}\n/* endregion */\n/*region shadow*/\n/*endregion*/\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.visible {\n visibility: visible;\n}\n.collapse {\n visibility: collapse;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0rem;\n}\n.inset-x-16 {\n left: 1rem;\n right: 1rem;\n}\n.-top-1 {\n top: -0.0625rem;\n}\n.bottom-0 {\n bottom: 0rem;\n}\n.bottom-20 {\n bottom: 1.25rem;\n}\n.bottom-4 {\n bottom: 0.25rem;\n}\n.bottom-8 {\n bottom: 0.5rem;\n}\n.left-0 {\n left: 0rem;\n}\n.left-1\\/2 {\n left: 50%;\n}\n.left-20 {\n left: 1.25rem;\n}\n.left-4 {\n left: 0.25rem;\n}\n.left-\\[12px\\] {\n left: 12px;\n}\n.right-0 {\n right: 0rem;\n}\n.right-20 {\n right: 1.25rem;\n}\n.right-4 {\n right: 0.25rem;\n}\n.right-8 {\n right: 0.5rem;\n}\n.right-\\[4px\\] {\n right: 4px;\n}\n.right-\\[6px\\] {\n right: 6px;\n}\n.top-0 {\n top: 0rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-16 {\n top: 1rem;\n}\n.top-20 {\n top: 1.25rem;\n}\n.top-full {\n top: 100%;\n}\n.z-0 {\n z-index: 0;\n}\n.z-1 {\n z-index: 1;\n}\n.z-10 {\n z-index: 10;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[1\\] {\n z-index: 1;\n}\n.z-\\[999999\\] {\n z-index: 999999;\n}\n.z-focus {\n z-index: 99;\n}\n.z-on-top {\n z-index: 99999;\n}\n.order-first {\n order: -9999;\n}\n.order-last {\n order: 9999;\n}\n.m-0 {\n margin: 0rem;\n}\n.m-32 {\n margin: 2rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-16 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.my-20 {\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n}\n.my-4 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.my-8 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.-ml-16 {\n margin-left: -1rem;\n}\n.-mr-16 {\n margin-right: -1rem;\n}\n.mb-10 {\n margin-bottom: 0.625rem;\n}\n.mb-12 {\n margin-bottom: 0.75rem;\n}\n.mb-28 {\n margin-bottom: 1.75rem;\n}\n.mb-4 {\n margin-bottom: 0.25rem;\n}\n.ml-0 {\n margin-left: 0rem;\n}\n.ml-4 {\n margin-left: 0.25rem;\n}\n.ml-64 {\n margin-left: 4rem;\n}\n.ml-8 {\n margin-left: 0.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-4 {\n margin-right: 0.25rem;\n}\n.mr-8 {\n margin-right: 0.5rem;\n}\n.mr-auto {\n margin-right: auto;\n}\n.mt-12 {\n margin-top: 0.75rem;\n}\n.mt-16 {\n margin-top: 1rem;\n}\n.mt-2 {\n margin-top: 0.125rem;\n}\n.mt-20 {\n margin-top: 1.25rem;\n}\n.mt-28 {\n margin-top: 1.75rem;\n}\n.mt-32 {\n margin-top: 2rem;\n}\n.mt-4 {\n margin-top: 0.25rem;\n}\n.mt-6 {\n margin-top: 0.375rem;\n}\n.mt-8 {\n margin-top: 0.5rem;\n}\n.mt-auto {\n margin-top: auto;\n}\n.line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n}\n.line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n}\n.line-clamp-4 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 4;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-16x9 {\n aspect-ratio: 16/9;\n}\n.aspect-1x1 {\n aspect-ratio: 1/1;\n}\n.aspect-21x9 {\n aspect-ratio: 21/9;\n}\n.aspect-3x2 {\n aspect-ratio: 3/2;\n}\n.aspect-4x3 {\n aspect-ratio: 4/3;\n}\n.aspect-4x5 {\n aspect-ratio: 4/5;\n}\n.h-0 {\n height: 0rem;\n}\n.h-12 {\n height: 0.75rem;\n}\n.h-16 {\n height: 1rem;\n}\n.h-2 {\n height: 0.125rem;\n}\n.h-20 {\n height: 1.25rem;\n}\n.h-24 {\n height: 1.5rem;\n}\n.h-28 {\n height: 1.75rem;\n}\n.h-32 {\n height: 2rem;\n}\n.h-36 {\n height: 2.25rem;\n}\n.h-4 {\n height: 0.25rem;\n}\n.h-40 {\n height: 2.5rem;\n}\n.h-44 {\n height: 2.75rem;\n}\n.h-48 {\n height: 3rem;\n}\n.h-64 {\n height: 4rem;\n}\n.h-8 {\n height: 0.5rem;\n}\n.h-96 {\n height: 6rem;\n}\n.h-\\[85px\\] {\n height: 85px;\n}\n.h-auto {\n height: auto;\n}\n.h-full {\n height: 100%;\n}\n.\\!min-h-20 {\n min-height: 1.25rem !important;\n}\n.min-h-156 {\n min-height: 156px;\n}\n.min-h-36 {\n min-height: 2.25rem;\n}\n.min-h-44 {\n min-height: 2.75rem;\n}\n.min-h-56 {\n min-height: 3.5rem;\n}\n.min-h-80 {\n min-height: 5rem;\n}\n.min-h-\\[150px\\] {\n min-height: 150px;\n}\n.min-h-\\[225px\\] {\n min-height: 225px;\n}\n.min-h-\\[90px\\] {\n min-height: 90px;\n}\n.min-h-full {\n min-height: 100%;\n}\n.min-h-screen {\n min-height: 100vh;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-20 {\n width: 1.25rem;\n}\n.w-28 {\n width: 1.75rem;\n}\n.w-32 {\n width: 2rem;\n}\n.w-4 {\n width: 0.25rem;\n}\n.w-44 {\n width: 2.75rem;\n}\n.w-\\[200px\\] {\n width: 200px;\n}\n.w-\\[300px\\] {\n width: 300px;\n}\n.w-\\[54px\\] {\n width: 54px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.min-w-\\[200px\\] {\n min-width: 200px;\n}\n.min-w-\\[210px\\] {\n min-width: 210px;\n}\n.min-w-\\[250px\\] {\n min-width: 250px;\n}\n.min-w-\\[280px\\] {\n min-width: 280px;\n}\n.max-w-120 {\n max-width: 120px;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-sidebar {\n max-width: 1224px;\n}\n.max-w-xxxl {\n max-width: 2200px;\n}\n.flex-none {\n flex: none;\n}\n.grow {\n flex-grow: 1;\n}\n.-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.resize {\n resize: both;\n}\n.appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-cols-10 {\n grid-template-columns: repeat(10, minmax(0, 1fr));\n}\n.grid-cols-11 {\n grid-template-columns: repeat(11, minmax(0, 1fr));\n}\n.grid-cols-12 {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n.grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.grid-cols-9 {\n grid-template-columns: repeat(9, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 0.0625rem;\n}\n.gap-12 {\n gap: 0.75rem;\n}\n.gap-20 {\n gap: 1.25rem;\n}\n.gap-4 {\n gap: 0.25rem;\n}\n.gap-x-12 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n.gap-x-16 {\n -moz-column-gap: 1rem;\n column-gap: 1rem;\n}\n.gap-x-2 {\n -moz-column-gap: 0.125rem;\n column-gap: 0.125rem;\n}\n.gap-x-4 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.gap-x-8 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.gap-y-12 {\n row-gap: 0.75rem;\n}\n.gap-y-16 {\n row-gap: 1rem;\n}\n.gap-y-4 {\n row-gap: 0.25rem;\n}\n.gap-y-8 {\n row-gap: 0.5rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.0625rem * var(--tw-space-x-reverse));\n margin-left: calc(0.0625rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.125rem * var(--tw-space-x-reverse));\n margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-12 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-16 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-ellipsis {\n text-overflow: ellipsis;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.break-words {\n overflow-wrap: break-word;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 16px;\n}\n.rounded-md {\n border-radius: 12px;\n}\n.rounded-pill {\n border-radius: 100px;\n}\n.rounded-sm {\n border-radius: 8px;\n}\n.rounded-xs {\n border-radius: 4px;\n}\n.rounded-xxs {\n border-radius: 2px;\n}\n.rounded-t-lg {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n.rounded-tl-lg {\n border-top-left-radius: 16px;\n}\n.rounded-tr-lg {\n border-top-right-radius: 16px;\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-3 {\n border-width: 3px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-t-2 {\n border-top-width: 2px;\n}\n.border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border-color: rgb(0 52 203 / var(--tw-border-opacity));\n}\n.border-\\[\\#d2d2d2\\] {\n --tw-border-opacity: 1;\n border-color: rgb(210 210 210 / var(--tw-border-opacity));\n}\n.border-accent {\n border-color: var(--brand-green);\n}\n.border-current {\n border-color: currentColor;\n}\n.border-default {\n border-color: var(--brand-black);\n}\n.border-error {\n border-color: var(--red-700);\n}\n.border-inverse {\n border-color: var(--white);\n}\n.border-inverse-soft {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.border-inverse-softer {\n border-color: rgba(255, 255, 255, 0.15);\n}\n.border-soft {\n border-color: rgba(0, 0, 0, .15 );\n}\n.border-softer {\n border-color: rgba(0, 0, 0, .1 );\n}\n.border-softest {\n border-color: var(--grey-light);\n}\n.border-transparent {\n border-color: var(--transparent);\n}\n.border-b-softer {\n border-bottom-color: rgba(0, 0, 0, .1 );\n}\n.\\!bg-accent-dark {\n background-color: var(--green-600) !important;\n}\n.\\!bg-darker {\n background-color: var(--grey-400) !important;\n}\n.\\!bg-strong-dark {\n background-color: var(--grey-800) !important;\n}\n.bg-accent {\n background-color: var(--brand-green);\n}\n.bg-accent-dark {\n background-color: var(--green-600);\n}\n.bg-accent-darker {\n background-color: var(--green-800);\n}\n.bg-current {\n background-color: currentColor;\n}\n.bg-dark {\n background-color: var(--grey-300);\n}\n.bg-darker {\n background-color: var(--grey-400);\n}\n.bg-default {\n background-color: var(--grey-light);\n}\n.bg-error {\n background-color: var(--red-200);\n}\n.bg-inverse {\n background-color: var(--white);\n}\n.bg-inverse-soft {\n background-color: rgba(255, 255, 255, .2);\n}\n.bg-inverse-softer {\n background-color: rgba(255, 255, 255, .15);\n}\n.bg-on-dark {\n background-color: rgba(255, 255, 255, 0.2);\n}\n.bg-on-gradient {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.bg-overlay {\n background-color: rgba(0, 0, 0, 0.25);\n}\n.bg-strong {\n background-color: var(--grey-700);\n}\n.bg-strong-dark {\n background-color: var(--grey-800);\n}\n.bg-stronger {\n background-color: var(--grey-900);\n}\n.bg-strongest {\n background-color: var(--brand-black);\n}\n.bg-strongest-soft {\n background-color: rgba(0, 0, 0, .05);\n}\n.bg-success {\n background-color: var(--green-200);\n}\n.bg-transparent {\n background-color: var(--transparent);\n}\n.bg-warning {\n background-color: var(--yellow-200);\n}\n.bg-opacity-90 {\n --tw-bg-opacity: 0.9;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.object-center {\n -o-object-position: center;\n object-position: center;\n}\n.\\!p-8 {\n padding: 0.5rem !important;\n}\n.p-0 {\n padding: 0rem;\n}\n.p-12 {\n padding: 0.75rem;\n}\n.p-16 {\n padding: 1rem;\n}\n.p-2 {\n padding: 0.125rem;\n}\n.p-20 {\n padding: 1.25rem;\n}\n.p-32 {\n padding: 2rem;\n}\n.p-4 {\n padding: 0.25rem;\n}\n.p-6 {\n padding: 0.375rem;\n}\n.p-8 {\n padding: 0.5rem;\n}\n.\\!px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n.\\!py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n}\n.\\!py-4 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n.px-12 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-16 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-2 {\n padding-left: 0.125rem;\n padding-right: 0.125rem;\n}\n.px-20 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-4 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-6 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.py-1 {\n padding-top: 0.0625rem;\n padding-bottom: 0.0625rem;\n}\n.py-12 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-16 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-20 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.py-4 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-6 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-8 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.pb-16 {\n padding-bottom: 1rem;\n}\n.pb-20 {\n padding-bottom: 1.25rem;\n}\n.pb-28 {\n padding-bottom: 1.75rem;\n}\n.pb-60 {\n padding-bottom: 3.75rem;\n}\n.pb-8 {\n padding-bottom: 0.5rem;\n}\n.pl-12 {\n padding-left: 0.75rem;\n}\n.pl-28 {\n padding-left: 1.75rem;\n}\n.pl-32 {\n padding-left: 2rem;\n}\n.pl-36 {\n padding-left: 2.25rem;\n}\n.pl-4 {\n padding-left: 0.25rem;\n}\n.pl-8 {\n padding-left: 0.5rem;\n}\n.pr-12 {\n padding-right: 0.75rem;\n}\n.pr-28 {\n padding-right: 1.75rem;\n}\n.pr-32 {\n padding-right: 2rem;\n}\n.pr-4 {\n padding-right: 0.25rem;\n}\n.pr-8 {\n padding-right: 0.5rem;\n}\n.pt-12 {\n padding-top: 0.75rem;\n}\n.pt-20 {\n padding-top: 1.25rem;\n}\n.pt-28 {\n padding-top: 1.75rem;\n}\n.pt-32 {\n padding-top: 2rem;\n}\n.pt-40 {\n padding-top: 2.5rem;\n}\n.pt-48 {\n padding-top: 3rem;\n}\n.pt-8 {\n padding-top: 0.5rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.lowercase {\n text-transform: lowercase;\n}\n.\\!text-current {\n color: currentColor !important;\n}\n.text-\\[\\#0034CB\\] {\n --tw-text-opacity: 1;\n color: rgb(0 52 203 / var(--tw-text-opacity));\n}\n.text-accent {\n color: var(--brand-green);\n}\n.text-current {\n color: currentColor;\n}\n.text-default {\n color: var(--brand-black);\n}\n.text-error {\n color: var(--red-700);\n}\n.text-extra-light {\n color: var(--grey-300);\n}\n.text-inverse {\n color: var(--white);\n}\n.text-light {\n color: var(--grey-700);\n}\n.text-lighter {\n color: var(--grey-600);\n}\n.text-lightest {\n color: var(--grey-500);\n}\n.text-on-gradient {\n color: rgba(0, 0, 0, 0.55);\n}\n.text-success {\n color: var(--green-800);\n}\n.text-transparent {\n color: var(--transparent);\n}\n.text-warning {\n color: var(--yellow-900);\n}\n.underline {\n text-decoration-line: underline;\n}\n.\\!no-underline {\n text-decoration-line: none !important;\n}\n.decoration-\\[\\#0034CB\\] {\n text-decoration-color: #0034CB;\n}\n.decoration-accent {\n text-decoration-color: var(--brand-green);\n}\n.decoration-2 {\n text-decoration-thickness: 2px;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-accent {\n --tw-shadow: 0px 0px 12px rgba(0, 201, 89, 0.6);\n --tw-shadow-colored: 0px 0px 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-small {\n --tw-shadow: 0px 1.5px 2px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0px 1.5px 2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\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.backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n[class*=\"keyline-\"] {\n position: relative;\n}\n[class*=\"keyline-\"]::before {\n content: attr(👻);\n position: absolute;\n z-index: 0;\n inset-inline-start: calc(var(--inner-gutter) / -2 - 1px);\n inset-inline-end: calc(var(--inner-gutter) / -2);\n top: 0;\n bottom: 0;\n border: 1px solid transparent;\n pointer-events: none;\n}\n[class*=\"keyline-0\"]::before {\n border-inline-end-color: transparent;\n border-inline-start-color: transparent;\n}\n.ratio {\n --ratio: 100%;\n display: block;\n position: relative;\n overflow: hidden;\n}\n.ratio::before {\n content: attr(👻);\n display: block;\n width: 100%;\n height: 0;\n padding-bottom: var(--ratio);\n}\n.ratio > [class*=\"ratio-content\"] {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n}\n[class*=underline-] {\n text-decoration-line: underline;\n}\n.underline-offset-4 {\n text-underline-offset: 0.2em;\n}\n.\\@container {\n container-type: inline-size;\n}\n.bg-gradient-01-top {\n background: linear-gradient(to bottom, #00E766, ease-in-out, #E6E6E6);\n }\n.bg-gradient-01-bottom {\n background: linear-gradient(to top, #00E766, ease-in-out, #E6E6E6);\n }\n.bg-gradient-02-top {\n background: linear-gradient(to bottom, #F3F30A, ease-in-out, #E6E6E6);\n }\n.bg-gradient-02-bottom {\n background: linear-gradient(to top, #F3F30A, ease-in-out, #E6E6E6);\n }\n.bg-gradient-03-top {\n background: linear-gradient(to bottom, #C461FF, ease-in-out, #E6E6E6);\n }\n.bg-gradient-03-bottom {\n background: linear-gradient(to top, #C461FF, ease-in-out, #E6E6E6);\n }\n.bg-gradient-04-top {\n background: linear-gradient(to bottom, #2B69FC, ease-in-out, #E6E6E6);\n }\n.bg-gradient-04-bottom {\n background: linear-gradient(to top, #2B69FC, ease-in-out, #E6E6E6);\n }\n.after\\:effect-opacity::after {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.before\\:effect-opacity::before {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n@media (min-width: 750px) {\n .md\\:grid-col-span-4 {\n --container-grid-columns: 4;\n grid-column: span 4 / span 4;\n }\n .md\\:grid-col-span-6 {\n --container-grid-columns: 6;\n grid-column: span 6 / span 6;\n }\n .md\\:w-10-cols {\n width: calc(((10 / var(--container-grid-columns, var(--grid-columns))) * 100%) - (var(--inner-gutter) - (10 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .cols-container > .md\\:w-10-cols {\n width: calc(((10 / var(--container-grid-columns, var(--grid-columns))) * (100% - var(--inner-gutter))) - (var(--inner-gutter) - (10 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .md\\:w-10-cols > * {\n --container-grid-columns: 10;\n }\n}\n@media (min-width: 900px) {\n .lg\\:grid-col-span-5 {\n --container-grid-columns: 5;\n grid-column: span 5 / span 5;\n }\n .lg\\:grid-col-span-6 {\n --container-grid-columns: 6;\n grid-column: span 6 / span 6;\n }\n .lg\\:grid-col-start-7 {\n grid-column-start: 7;\n }\n .lg\\:w-8-cols {\n width: calc(((8 / var(--container-grid-columns, var(--grid-columns))) * 100%) - (var(--inner-gutter) - (8 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .cols-container > .lg\\:w-8-cols {\n width: calc(((8 / var(--container-grid-columns, var(--grid-columns))) * (100% - var(--inner-gutter))) - (var(--inner-gutter) - (8 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .lg\\:w-8-cols > * {\n --container-grid-columns: 8;\n }\n .lg\\:w-10-cols {\n width: calc(((10 / var(--container-grid-columns, var(--grid-columns))) * 100%) - (var(--inner-gutter) - (10 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .cols-container > .lg\\:w-10-cols {\n width: calc(((10 / var(--container-grid-columns, var(--grid-columns))) * (100% - var(--inner-gutter))) - (var(--inner-gutter) - (10 / var(--container-grid-columns, var(--grid-columns)) * var(--inner-gutter))));\n }\n .lg\\:w-10-cols > * {\n --container-grid-columns: 10;\n }\n}\n.even\\:bg-inverse-softer:nth-child(even) {\n background-color: rgba(255, 255, 255, .15);\n}\n.invalid\\:text-lightest:invalid {\n color: var(--grey-500);\n}\n.focus-within\\:bg-transparent:focus-within {\n background-color: var(--transparent);\n}\n.hover\\:bg-accent-dark:hover {\n background-color: var(--green-600);\n}\n.hover\\:bg-dark:hover {\n background-color: var(--grey-300);\n}\n.hover\\:bg-darker:hover {\n background-color: var(--grey-400);\n}\n.hover\\:bg-default:hover {\n background-color: var(--grey-light);\n}\n.hover\\:bg-inverse:hover {\n background-color: var(--white);\n}\n.hover\\:bg-strong-dark:hover {\n background-color: var(--grey-800);\n}\n.hover\\:bg-transparent:hover {\n background-color: var(--transparent);\n}\n.hover\\:text-default:hover {\n color: var(--brand-black);\n}\n.hover\\:text-lighter:hover {\n color: var(--grey-600);\n}\n.hover\\:\\!underline:hover {\n text-decoration-line: underline !important;\n}\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n.hover\\:shadow-hover:hover {\n --tw-shadow: 0px 0px 16px rgba(0, 0, 0, 0.2);\n --tw-shadow-colored: 0px 0px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.focus\\:shadow-none:focus {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:rounded-xs:focus-visible {\n border-radius: 4px;\n}\n.focus-visible\\:text-default:focus-visible {\n color: var(--brand-black);\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:bg-dark:disabled {\n background-color: var(--grey-300);\n}\n.disabled\\:text-lightest:disabled {\n color: var(--grey-500);\n}\n.aria-disabled\\:cursor-not-allowed[aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n.aria-disabled\\:\\!border-transparent[aria-disabled=\"true\"] {\n border-color: var(--transparent) !important;\n}\n.aria-disabled\\:bg-dark[aria-disabled=\"true\"] {\n background-color: var(--grey-300);\n}\n.aria-disabled\\:bg-transparent[aria-disabled=\"true\"] {\n background-color: var(--transparent);\n}\n.aria-disabled\\:text-light[aria-disabled=\"true\"] {\n color: var(--grey-700);\n}\n.aria-disabled\\:text-lightest[aria-disabled=\"true\"] {\n color: var(--grey-500);\n}\n.aria-disabled\\:line-through[aria-disabled=\"true\"] {\n text-decoration-line: line-through;\n}\n.aria-disabled\\:shadow-none[aria-disabled=\"true\"] {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.aria-current-page\\:bg-darker[aria-current=\"page\"] {\n background-color: var(--grey-400);\n}\n.after\\:absolute::after {\n position: absolute;\n}\n.after\\:inset-0::after {\n inset: 0rem;\n}\n.after\\:inset-x-0::after {\n left: 0rem;\n right: 0rem;\n}\n.after\\:bottom-0::after {\n bottom: 0rem;\n}\n.after\\:left-16::after {\n left: 1rem;\n}\n.after\\:right-16::after {\n right: 1rem;\n}\n.after\\:z-10::after {\n z-index: 10;\n}\n.after\\:rounded-lg::after {\n border-radius: 16px;\n}\n.after\\:rounded-t-lg::after {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n.after\\:border-3::after {\n border-width: 3px;\n}\n.after\\:border-b-2::after {\n border-bottom-width: 2px;\n}\n.after\\:\\!border-transparent::after {\n border-color: var(--transparent) !important;\n}\n.after\\:border-accent::after {\n border-color: var(--brand-green);\n}\n.after\\:border-softest::after {\n border-color: var(--grey-light);\n}\n.after\\:opacity-0::after {\n opacity: 0;\n}\n.after\\:content-\\[\\'\\'\\]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n.hover\\:after\\:\\!border-transparent:hover::after {\n border-color: var(--transparent) !important;\n}\n.hover\\:after\\:opacity-100:hover::after {\n opacity: 1;\n}\n.focus-visible\\:after\\:opacity-100:focus-visible::after {\n opacity: 1;\n}\n.aria-disabled\\:after\\:\\!border-transparent[aria-disabled=\"true\"]::after {\n border-color: var(--transparent) !important;\n}\n.before\\:absolute::before {\n position: absolute;\n}\n.before\\:inset-x-0::before {\n left: 0rem;\n right: 0rem;\n}\n.before\\:-bottom-2::before {\n bottom: -0.125rem;\n}\n.before\\:bottom-0::before {\n bottom: 0rem;\n}\n.before\\:h-12::before {\n height: 0.75rem;\n}\n.before\\:h-3::before {\n height: 0.1875rem;\n}\n.before\\:rounded-lg::before {\n border-radius: 16px;\n}\n.before\\:border-2::before {\n border-width: 2px;\n}\n.before\\:border-softest::before {\n border-color: var(--grey-light);\n}\n.before\\:bg-default::before {\n background-color: var(--grey-light);\n}\n.before\\:bg-inverse-softer::before {\n background-color: rgba(255, 255, 255, .15);\n}\n.before\\:\\!opacity-100::before {\n opacity: 1 !important;\n}\n.before\\:opacity-0::before {\n opacity: 0;\n}\n.before\\:opacity-5::before {\n opacity: 0.05;\n}\n.before\\:content-\\[\\'\\'\\]::before {\n --tw-content: '';\n content: var(--tw-content);\n}\n.before\\:bg-gradient-y::before {\n background: linear-gradient(to bottom, transparent, ease-in-out, black);\n }\n.before\\:bg-gradient-01-top::before {\n background: linear-gradient(to bottom, #00E766, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-01-bottom::before {\n background: linear-gradient(to top, #00E766, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-02-top::before {\n background: linear-gradient(to bottom, #F3F30A, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-02-bottom::before {\n background: linear-gradient(to top, #F3F30A, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-03-top::before {\n background: linear-gradient(to bottom, #C461FF, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-03-bottom::before {\n background: linear-gradient(to top, #C461FF, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-04-top::before {\n background: linear-gradient(to bottom, #2B69FC, ease-in-out, #E6E6E6);\n }\n.before\\:bg-gradient-04-bottom::before {\n background: linear-gradient(to top, #2B69FC, ease-in-out, #E6E6E6);\n }\n.hover\\:before\\:opacity-100:hover::before {\n opacity: 1;\n}\n.focus-visible\\:before\\:\\!opacity-0:focus-visible::before {\n opacity: 0 !important;\n}\n.focus-visible\\:before\\:opacity-0:focus-visible::before {\n opacity: 0;\n}\n@container (min-width: 46.875rem) {\n .\\@md\\:max-w-192 {\n max-width: 192px;\n }\n}\n@media (min-width: 0px) {\n .sm\\:mb-4 {\n margin-bottom: 0.25rem;\n }\n .sm\\:max-w-\\[200px\\] {\n max-width: 200px;\n }\n}\n@media (min-width: 750px) {\n .md\\:left-1\\/2 {\n left: 50%;\n }\n .md\\:flex {\n display: flex;\n }\n .md\\:hidden {\n display: none;\n }\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n .md\\:-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n .md\\:-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n .md\\:gap-y-12 {\n row-gap: 0.75rem;\n }\n .md\\:pt-28 {\n padding-top: 1.75rem;\n }\n}\n@media (min-width: 900px) {\n .lg\\:order-last {\n order: 9999;\n }\n .lg\\:order-none {\n order: 0;\n }\n .lg\\:mt-0 {\n margin-top: 0rem;\n }\n .lg\\:block {\n display: block;\n }\n .lg\\:flex {\n display: flex;\n }\n .lg\\:hidden {\n display: none;\n }\n .lg\\:w-\\[500px\\] {\n width: 500px;\n }\n .lg\\:w-auto {\n width: auto;\n }\n .lg\\:max-w-\\[720px\\] {\n max-width: 720px;\n }\n .lg\\:flex-row {\n flex-direction: row;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap;\n }\n .lg\\:gap-y-16 {\n row-gap: 1rem;\n }\n .lg\\:px-28 {\n padding-left: 1.75rem;\n padding-right: 1.75rem;\n }\n .lg\\:\\!pl-12 {\n padding-left: 0.75rem !important;\n }\n .lg\\:\\!pr-12 {\n padding-right: 0.75rem !important;\n }\n}\n@media (min-width: 1024px) {\n .xl\\:pb-40 {\n padding-bottom: 2.5rem;\n }\n}\n@media (min-width: 2200px) {\n .xxxl\\:px-0 {\n padding-left: 0rem;\n padding-right: 0rem;\n }\n}\n\n";const EdsInputFieldStyle0=edsInputFieldCss;const EdsInputField=class{constructor(hostRef){registerInstance(this,hostRef);this.edsinput=createEvent(this,"edsinput",7);this.edschange=createEvent(this,"edschange",7);this.handleNativeInput=ev=>{var _a,_b;(_a=this.onInput)===null||_a===void 0?void 0:_a.call(this,ev);if(this.shouldEmitValue()){const target=ev.target;let value=target.value;if(this.type==='checkbox'&&((_b=this.parsedOptions)===null||_b===void 0?void 0:_b.length)>0){// checkbox group case
|
|
1645
|
+
const checkboxes=this.hostEl.querySelectorAll(`input[type="checkbox"][name="${this.name}"]`);value=Array.from(checkboxes).filter(cb=>cb.checked).map(cb=>cb.value);}else if(this.type==='checkbox'){value=target.checked;}else if(this.type==='radio'){value=target.value;}else {value=target.value;}this.edsinput.emit({value});}};this.handleNativeChange=ev=>{var _a,_b;(_a=this.onChangeNative)===null||_a===void 0?void 0:_a.call(this,ev);if(this.shouldEmitValue()){const target=ev.target;let value=target.value;if(this.type==='checkbox'&&((_b=this.parsedOptions)===null||_b===void 0?void 0:_b.length)>0){// checkbox group case
|
|
1646
|
+
const checkboxes=this.hostEl.querySelectorAll(`input[type="checkbox"][name="${this.name}"]`);value=Array.from(checkboxes).filter(cb=>cb.checked).map(cb=>cb.value);}else if(this.type==='checkbox'){value=target.checked;}else if(this.type==='radio'){value=target.value;}else {value=target.value;}this.edschange.emit({value});}};this.handleFileChange=ev=>{var _a;// Forward file change event to standard edschange event
|
|
1647
|
+
// Convert File[] to a format that forms can handle
|
|
1648
|
+
const files=ev.detail.files;// Create a new CustomEvent with the correct structure that handleChange expects
|
|
1649
|
+
// handleChange expects e.detail.value, not e.detail.files
|
|
1650
|
+
const valueEvent=new CustomEvent('edschange',{detail:{value:files},bubbles:true});// Call the native callback prop so forms can handle the change
|
|
1651
|
+
(_a=this.onChangeNative)===null||_a===void 0?void 0:_a.call(this,valueEvent);if(this.shouldEmitValue()){// Emit the files array - forms will handle File objects
|
|
1652
|
+
this.edschange.emit({value:files});this.edsinput.emit({value:files});}};this.name=undefined;this.inputId=undefined;this.placeholder=undefined;this.disabled=false;this.required=false;this.label=undefined;this.hint=undefined;this.icon=undefined;this.link=undefined;this.message=undefined;this.error=false;this.checked=undefined;this.errorMessage=undefined;this.value=undefined;this.maxLength=undefined;this.min=undefined;this.max=undefined;this.step=undefined;this.options=undefined;this.type='text';this.onChangeNative=undefined;this.onInput=undefined;this.exposeValueEvents=true;}shouldEmitValue(){return this.exposeValueEvents&&this.type!=='password';}get parsedOptions(){if(Array.isArray(this.options)){return this.options;}if(typeof this.options==='string'){try{return JSON.parse(this.options);}catch(_a){// eslint-disable-next-line
|
|
1653
|
+
console.warn('Invalid options format');return [];}}return [];}render(){const inputOpts=Object.assign({name:this.name,id:this.inputId,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleNativeInput,onChange:this.handleNativeChange,type:this.type,required:this.required,value:this.value,error:this.error,// Icons are only supported on text inputs for now — ignore the prop for
|
|
1654
|
+
// every other type so e.g. number/select/checkbox never render one.
|
|
1655
|
+
icon:this.type==='text'?this.icon:undefined,checked:this.checked},this.type==='number'?{min:this.min,max:this.max,step:this.step}:{});return h("div",{key:'2072cce16b572431b41363beff779d8631de7abc'},this.type==='checkbox'||this.type==='radio'?this.parsedOptions.length>0?h("fieldset",{class:"space-y-4"},(this.label||this.hint)&&h("div",{class:"flex justify-between mb-4"},this.label&&h("eds-input-label",{name:this.inputId||this.name,label:this.label,required:this.required}),this.hint&&h("p",{id:`${this.name}-hint`,class:"f-ui-05 text-lighter mt-8 ml-8"},this.hint)),this.parsedOptions.map(option=>h("div",{class:"flex items-center gap-x-4 gap-y-4",key:option.value},h("eds-input",Object.assign({},inputOpts,{inputId:`${this.inputId||this.name}-${option.value}`,inputTabIndex:0,value:option.value,checked:typeof this.value==='string'&&this.value.split(',').includes(String(option.value))})),h("label",{htmlFor:`${this.inputId||this.name}-${option.value}`,class:`input-label-options ${this.disabled?'text-lighter':''}`},option.label)))):h("div",{class:"flex items-center gap-x-8"},h("eds-input",Object.assign({},inputOpts,{inputTabIndex:0,value:this.value,checked:this.value==='on'||this.checked})),this.label&&h("eds-input-label",{name:this.inputId||this.name,label:this.label,disabled:this.disabled,required:this.required})):h("div",null,(this.label||this.hint)&&h("div",{class:"flex justify-between mb-4"},this.label&&h("eds-input-label",{name:this.inputId||this.name,label:this.label,disabled:this.disabled,required:this.required}),this.hint&&h("p",{id:`${this.name}-hint`,class:"f-ui-05 text-lighter mt-8 ml-8"},this.hint)),this.type==='select'?h("eds-input-select",Object.assign({},inputOpts,{options:this.parsedOptions})):this.type==='file'?h("eds-input-file",{name:this.name,inputId:this.inputId,disabled:this.disabled,required:this.required,multiple:true,onEdsfile:this.handleFileChange}):this.type==='dropzone'?h("eds-input-dropzone",{name:this.name,inputId:this.inputId,disabled:this.disabled,required:this.required,multiple:true,onEdsfile:this.handleFileChange}):this.type==='range'?(()=>{var _a,_b,_c,_d,_e,_f;const rangeProps={name:inputOpts.name,inputId:inputOpts.id||inputOpts.name,disabled:inputOpts.disabled,required:inputOpts.required,onInput:inputOpts.onInput,onChange:inputOpts.onChange};const opt=this.parsedOptions;const numberValue=typeof this.value==='string'?parseFloat(this.value):this.value;// Prefer the explicit min/max/step props (consistent with
|
|
1656
|
+
// type="number"); fall back to options[0..2].value for
|
|
1657
|
+
// backward compatibility with existing range fields.
|
|
1658
|
+
return h("eds-input-range",Object.assign({},rangeProps,{min:(_a=this.min)!==null&&_a!==void 0?_a:(_b=opt[0])===null||_b===void 0?void 0:_b.value,max:(_c=this.max)!==null&&_c!==void 0?_c:(_d=opt[1])===null||_d===void 0?void 0:_d.value,step:(_e=this.step)!==null&&_e!==void 0?_e:(_f=opt[2])===null||_f===void 0?void 0:_f.value,value:numberValue}));})():h("eds-input",Object.assign({},inputOpts))),h("div",{key:'f3ab7ef07c5c35f6d5e5d7a3ec35f98fe133ab5b',class:"mt-6"},h("eds-input-footer",{key:'a72af69114cd3916e9ffa6ca8a65dced572dadf7',id:`${this.name}-footer`,name:this.name,message:this.message,"error-message":this.errorMessage,error:this.error,link:this.link})));}static get delegatesFocus(){return true;}get hostEl(){return getElement(this);}};EdsInputField.style=EdsInputFieldStyle0;const edsInputFileCss=".eds-input-file-container{display:flex;flex-direction:column;align-items:flex-start;gap:0.75rem}.eds-input-file-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.eds-input-file-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.25rem;border:1.5px solid var(--color-border-soft, #d0d0d0);border-radius:100px;background-color:var(--color-bg-inverse, #ffffff);font-family:var(--font-family, 'IBM Plex Sans', sans-serif);font-size:0.875rem;font-weight:500;color:var(--color-text-default, #07140D);cursor:pointer;transition:all 0.2s ease;outline:none}.eds-input-file-btn:hover:not(:disabled){border-color:var(--color-border-strong, #07140D);background-color:var(--color-bg-softer, #ECECEC)}.eds-input-file-btn:active:not(:disabled){background-color:var(--color-bg-soft, #F5F5F5)}.eds-input-file-btn:focus-visible{outline:2px solid var(--color-accent, #00FF9D);outline-offset:2px}.eds-input-file-btn:disabled{opacity:0.5;cursor:not-allowed}.eds-input-file-btn svg{width:16px;height:16px;flex-shrink:0}.eds-input-file-chips{display:flex;flex-wrap:wrap;gap:0.5rem}.eds-input-file-chip{display:inline-flex;align-items:center;gap:0.5rem;padding:0.4rem 0.75rem;background-color:var(--color-bg-softer, #ECECEC);border-radius:100px;font-size:0.75rem;color:var(--color-text-default, #07140D)}.eds-input-file-chip-icon{width:14px;height:14px;color:var(--color-text-light, #7A7B7A);flex-shrink:0}.eds-input-file-chip-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.eds-input-file-chip-size{font-family:var(--font-family-mono, 'IBM Plex Mono', monospace);font-size:0.625rem;color:var(--color-text-light, #7A7B7A);flex-shrink:0}.eds-input-file-chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;border:none;background:transparent;color:var(--color-text-light, #7A7B7A);cursor:pointer;transition:color 0.2s ease;flex-shrink:0}.eds-input-file-chip-remove:hover:not(:disabled){color:var(--color-error, #e53935)}.eds-input-file-chip-remove:disabled{opacity:0.5;cursor:not-allowed}.eds-input-file-chip-remove svg{width:14px;height:14px}@media (max-width: 640px){.eds-input-file-chip-name{max-width:120px}}";const EdsInputFileStyle0=edsInputFileCss;const EdsInputFile=class{constructor(hostRef){registerInstance(this,hostRef);this.edsfile=createEvent(this,"edsfile",7);this.handleButtonClick=()=>{var _a;(_a=this.fileInputRef)===null||_a===void 0?void 0:_a.click();};this.handleFileSelect=event=>{const input=event.target;if(!input.files)return;const newFiles=Array.from(input.files).map(file=>({file,id:`${file.name}-${Date.now()}-${Math.random()}`}));if(this.multiple){this.selectedFiles=[...this.selectedFiles,...newFiles];}else {this.selectedFiles=newFiles.slice(0,1);}this.emitFileChange();};this.handleRemoveFile=id=>{this.selectedFiles=this.selectedFiles.filter(item=>item.id!==id);this.emitFileChange();};this.name=undefined;this.inputId=undefined;this.disabled=false;this.required=false;this.multiple=false;this.accept=undefined;this.maxFileSize=undefined;this.buttonLabel=undefined;this.selectedFiles=[];}emitFileChange(){const files=this.selectedFiles.map(item=>item.file);this.edsfile.emit({files});}formatFileSize(bytes){if(bytes===0)return '0 B';const k=1024;const sizes=['B','KB','MB','GB'];const i=Math.floor(Math.log(bytes)/Math.log(k));return `${(bytes/Math.pow(k,i)).toFixed(1)} ${sizes[i]}`;}getFileIcon(filename){var _a;const ext=(_a=filename.split('.').pop())===null||_a===void 0?void 0:_a.toLowerCase();const imageExts=['png','jpg','jpeg','gif','svg','webp'];if(imageExts.includes(ext||'')){// Image icon
|
|
1659
|
+
return h("svg",{class:"file-chip-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),h("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),h("polyline",{points:"21 15 16 10 5 21"}));}// Document icon (default)
|
|
1660
|
+
return h("svg",{class:"file-chip-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),h("polyline",{points:"14 2 14 8 20 8"}));}render(){const effectiveLabel=this.buttonLabel||(this.multiple?'Choose Files':'Choose File');return h("div",{key:'e02d98fbc01dbe7a89eeb3010f966ed4a373ede6',class:"eds-input-file-container"},h("input",{key:'2013826fda9453aade4528c9f051aac98780662f',ref:el=>this.fileInputRef=el,type:"file",id:this.inputId||this.name,name:this.name,class:"eds-input-file-hidden",disabled:this.disabled,required:this.required,multiple:this.multiple,accept:this.accept,onChange:this.handleFileSelect}),h("button",{key:'f5e5cf91376ccb69b39ef3c9b11095aca8bfb728',type:"button",class:"eds-input-file-btn",onClick:this.handleButtonClick,disabled:this.disabled},h("svg",{key:'563066375b42d0a8c14f14ac9fdfb587539f4e76',viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},h("path",{key:'ebe5549fffa0c2453ab98891da75a464c09e9fa2',d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),h("polyline",{key:'69036b82e15103e481770d0ef2c500b0dcad0399',points:"17 8 12 3 7 8"}),h("line",{key:'e0531be95796ec6dc7f9fe359e4736a15a0e3640',x1:"12",y1:"3",x2:"12",y2:"15"})),effectiveLabel),this.selectedFiles.length>0&&h("div",{key:'62590fb46cee89d2524f1ede71c7af341c3e426a',class:"eds-input-file-chips"},this.selectedFiles.map(item=>h("div",{key:item.id,class:"eds-input-file-chip"},this.getFileIcon(item.file.name),h("span",{class:"eds-input-file-chip-name"},item.file.name),h("span",{class:"eds-input-file-chip-size"},this.formatFileSize(item.file.size)),h("button",{type:"button",class:"eds-input-file-chip-remove",onClick:()=>this.handleRemoveFile(item.id),disabled:this.disabled,"aria-label":`Remove ${item.file.name}`},h("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},h("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),h("line",{x1:"6",y1:"6",x2:"18",y2:"18"})))))));}get hostEl(){return getElement(this);}};EdsInputFile.style=EdsInputFileStyle0;const edsInputFooterCss="p{margin:0}.eds-desc-link{position:relative;display:inline-block;color:var(--brand-black);text-decoration:none}.eds-desc-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--brand-green);transition:width 0.3s ease}.eds-desc-link:hover::after{width:100%}.eds-desc-link:focus-visible::after{width:0}eds-link{--f-ui-02-fontSize:var(--f-ui-04-fontSize)}.text-error{color:var(--red-700)}.flex{display:flex}.items-center{align-items:center}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.ml-4{margin-left:0.25rem}.pt-4{padding-top:0.25rem}.mb-4{margin-bottom:0.25rem}.f-ui-05{font-family:var(--f-ui-05-fontFamily);font-weight:var(--f-ui-05-fontWeight);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);letter-spacing:var(--f-ui-05-letterSpacing)}.text-lighter{color:var(--grey-600)}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.hover\\:text-lighter:hover{color:var(--grey-600)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}";const EdsInputFooterStyle0=edsInputFooterCss;const EdsInputFooter=class{constructor(hostRef){registerInstance(this,hostRef);this.name=undefined;this.errorMessage=undefined;this.message=undefined;this.error=false;this.link=undefined;}render(){return h("div",{key:'866e375b5dd1d9c958f2255537e919a8c1f25dc7'},this.error&&this.errorMessage&&h("div",{key:'95d11c9cbb7746cc727ad9e037d00a28d9475bfc',id:`error_${this.name}`,class:"text-error flex items-center"},h("eds-icon-wrapper",{key:'face7f905ffa7c5f4dc7a7e6825d185e0d6b7901',name:"warning",size:20}),h("p",{key:'2011af93e06df1d91972843a510e843763f53b0b',class:"f-ui-04 ml-4 mb-4 pt-4",innerHTML:this.errorMessage})),this.message&&h("p",{key:'39d6833a30e7b93f75154a14bee1e6b4500575cb',id:`desc_${this.name}`,class:"f-ui-04 text-lighter",innerHTML:safeInlineFormat(this.message)}),this.link&&h("eds-link",{key:'bfbf95e704574ada6f857ca08a90409ab38c1a5e',label:this.link.label,url:this.link.url,intent:"underline",size:"small",external:true}));}};EdsInputFooter.style=EdsInputFooterStyle0;const edsInputLabelCss=".input-label{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.input-label b,.input-label strong{font-weight:var(--f-ui-02---bold-weight, bold)}.text-lighter{color:var(--grey-600)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}";const EdsInputLabelStyle0=edsInputLabelCss;const EdsInputLabel=class{constructor(hostRef){registerInstance(this,hostRef);this.label=undefined;this.name=undefined;this.required=false;this.disabled=false;}render(){return h("label",{key:'40867ae01e94ab7a69b6f82658e4ee1b1e5b87cf',htmlFor:this.name,class:`input-label ${this.disabled?'text-lighter':''}`},this.label,this.required&&h("span",{key:'e3cfc44ea2a7f53f51c544648b3c635557cb8248'},h("span",{key:'ff7559b58cb22ce2a3066ed15e77f6088f299aaa',"aria-hidden":"true"},"*"),h("span",{key:'2c831682aae410ac71589171e2b04981c60052bb',class:"sr-only"},"required")));}};EdsInputLabel.style=EdsInputLabelStyle0;const EdsInputRange=class{constructor(hostRef){registerInstance(this,hostRef);this.edsrange=createEvent(this,"edsrange",7);this.onInput=e=>{const target=e.target;this.sliderVal=parseInt(target.value,10);// Update the slider value dynamically
|
|
1661
|
+
};this.onChange=e=>{const target=e.target;this.sliderVal=parseInt(target.value,10);// Update the slider value dynamically
|
|
1662
|
+
this.edsrange.emit(this.sliderVal);};this.name=undefined;this.inputId='range';this.disabled=false;this.required=false;this.min=0;this.max=100;this.step=1;this.value=undefined;this.sliderVal=undefined;}componentWillLoad(){var _a;this.sliderVal=(_a=this.value)!==null&&_a!==void 0?_a:Math.round(this.min+(this.max-this.min)/2);}// Keep the internal state in sync when the passed value changes.
|
|
1663
|
+
onValueChange(newVal){if(newVal!==undefined){this.sliderVal=newVal;}}componentDidLoad(){// Assign the native input element after the component loads
|
|
1664
|
+
this.inputElement=this.el.querySelector('input');}async getInputElement(){// Return the native input element
|
|
1665
|
+
return this.inputElement;}render(){var _a;const currentValue=(_a=this.sliderVal)!==null&&_a!==void 0?_a:Math.round(this.min+(this.max-this.min)/2);return h("div",{key:'231ae0f34900dfa3b8edeb9745ce07220735c613',class:"relative flex flex-col items-start"},h("input",{key:'2cbfbbb410694a4764f44c26a74f4cbca9b98f3c',id:this.inputId||this.name,name:this.name,min:this.min,max:this.max,step:this.step,value:currentValue,required:this.required,disabled:this.disabled,type:"range",class:"w-full py-6 input",tabindex:"0",role:"slider","aria-describedby":`desc_${this.name}`,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":currentValue,onInput:this.onInput,onChange:this.onChange}),h("p",{key:'8e7036cbaeebb62c6cd4b7f2105d3fa487ad463e',id:`desc_${this.name}`,class:"block f-ui-05 mt-4 text-light"},"Current value: ",currentValue));}get el(){return getElement(this);}static get watchers(){return {"value":["onValueChange"]};}};const EdsInputSelect=class{constructor(hostRef){registerInstance(this,hostRef);this.edsselect=createEvent(this,"edsselect",7);this.handleChange=event=>{const target=event.target;this.edsselect.emit(target.value);};this.inputId=undefined;this.name=undefined;this.placeholder=undefined;this.disabled=false;this.hasMessage=false;this.error=false;this.required=false;this.options=[];this.value=undefined;}render(){const selectId=this.inputId||this.name;const placeholderText=this.placeholder||`Pick from the list`;const describedBy=this.hasMessage||this.error?`${this.name}-error`:undefined;return h("div",{key:'8365ffbc8f6f6386edfc1626d16c9152fd3cce9f',class:"relative"},h("select",{key:'52e712898a3251cea5447a379886449175e7c8b8',id:selectId,name:this.name,class:{input:true,'input-error':this.error,'px-4':true,'py-2':true},"aria-invalid":this.error?'true':'false',"aria-describedby":describedBy,disabled:this.disabled,required:this.required,onChange:this.handleChange},h("option",{key:'d52c376ffb683abc0dec72177dba445273d148f7',value:"",disabled:true,selected:!this.value||this.value===''},placeholderText),this.options.map((opt,index)=>h("option",{key:index,value:opt.value,selected:opt.value===this.value},opt.label))),h("span",{key:'fecbcb47793f8a57de44711b33d3650be5297aa7',class:"bg-dark rounded-xs absolute top-1/2 right-[6px] flex h-28 w-28 -translate-y-1/2 items-center justify-center"},h("eds-icon-wrapper",{key:'4fda1345a62eeb212093057382d877f31bb6112d',class:"w-20 h-20",name:"chevron-right"})));}};const edsKgLearningResourcesCss=":host{display:block;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);color:var(--brand-black, #07140D)}.lr-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;margin-bottom:1.5rem}.lr-heading{font-family:var(--inter, 'Inter', sans-serif);font-weight:300;font-size:1.75rem;line-height:110%;margin:0;color:var(--brand-black, #07140D)}.summary{display:flex;gap:0.5rem}.filters{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0.75rem;margin-bottom:1.5rem;align-items:flex-end}.filter-search{grid-column:span 2}.filter-select{grid-column:span 1}.accordion-list{display:flex;flex-direction:column;gap:0.5rem}.resources-content{padding-top:0.5rem}.kg-link{margin-bottom:1rem}.resources-table{width:100%;border-collapse:collapse;font-size:0.875rem}.resources-table thead th{text-align:left;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);font-weight:500;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--grey-dark, #7A7B7A);padding:0.5rem 0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.1)}.resource-row{transition:background-color 0.2s ease}.resource-row--clickable{cursor:pointer}.resource-row--clickable:hover{background-color:rgba(0, 255, 157, 0.04)}.resource-row td{padding:0.625rem 0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.04);vertical-align:top}.resource-row:last-child td{border-bottom:none}.resource-name{font-weight:500;font-size:1.0625rem;color:var(--brand-black, #07140D);transition:color 0.2s ease}.resource-row--clickable:hover .resource-name{color:var(--brand-green-dark, #00C87B)}.resource-desc{margin:0.25rem 0 0;font-size:0.9375rem;color:var(--grey-dark, #7A7B7A);line-height:145%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.col-name{width:auto}.col-type{width:160px;white-space:nowrap}.col-level{width:110px;white-space:nowrap}.loading{position:relative;min-height:8rem;padding:1rem 1.25rem;color:var(--grey-dark, #7A7B7A);font-size:0.9375rem;border:1px solid rgba(0, 0, 0, 0.08);border-radius:0.25rem;background-color:rgba(0, 0, 0, 0.02)}.no-results{padding:2rem;text-align:center;color:var(--grey-dark, #7A7B7A);font-size:0.875rem}@media (max-width: 750px){.lr-header{flex-direction:column;align-items:flex-start}.filters{grid-template-columns:1fr}.filter-search,.filter-select{grid-column:span 1}.col-type,.col-level{width:auto}.resources-table thead{display:none}.resource-row{display:flex;flex-wrap:wrap;gap:0.375rem;padding:0.625rem 0;border-bottom:1px solid rgba(0, 0, 0, 0.04)}.resource-row td{border:none;padding:0}.col-name{width:100%}}";const EdsKgLearningResourcesStyle0=edsKgLearningResourcesCss;let cachedData=null;let cacheTimestamp=0;const CACHE_TTL=10*60*1000;const EdsKgLearningResources=class{constructor(hostRef){registerInstance(this,hostRef);this.apiEndpoint='/api/v1/kg/learning-resources/cached';this.resolveNames=true;this.size=500;this.heading='';this.variant='inverse';this.loading=false;this.error='';this.software=[];this.meta=null;this.filterType='';this.filterLevel='';this.searchQuery='';}componentWillLoad(){this.fetchData();}async fetchData(){const now=Date.now();if(cachedData&&now-cacheTimestamp<CACHE_TTL){this.software=cachedData;return;}this.loading=true;this.error='';try{const params=new URLSearchParams({size:this.size.toString(),resolve_names:this.resolveNames.toString()});const response=await fetch(`${this.apiEndpoint}?${params}`);if(!response.ok){throw new Error(`Failed to fetch: ${response.statusText}`);}const data=await response.json();this.software=data.data||[];this.meta=data.meta||null;cachedData=this.software;cacheTimestamp=now;}catch(err){this.error=err instanceof Error?err.message:'Failed to load learning resources';}finally{this.loading=false;}}getFilteredSoftware(){let filtered=this.software;if(this.filterType){filtered=filtered.filter(sw=>sw.learning_resources_types.includes(this.filterType));}if(this.filterLevel){filtered=filtered.filter(sw=>sw.learning_resources_levels.includes(this.filterLevel));}if(this.searchQuery){const q=this.searchQuery.toLowerCase();filtered=filtered.filter(sw=>sw.name.toLowerCase().includes(q)||sw.learning_resources.some(lr=>{var _a,_b;return ((_a=lr.name)===null||_a===void 0?void 0:_a.toLowerCase().includes(q))||((_b=lr.abstract)===null||_b===void 0?void 0:_b.toLowerCase().includes(q));}));}return filtered;}getFilteredResources(resources){let filtered=resources;if(this.filterType){filtered=filtered.filter(lr=>lr.type===this.filterType);}if(this.filterLevel){filtered=filtered.filter(lr=>lr.educational_level===this.filterLevel);}return filtered;}/* TODO: Uncomment when filters are enabled
|
|
1666
|
+
private getAllTypes(): string[] {
|
|
1667
|
+
const types = new Set<string>();
|
|
1668
|
+
this.software.forEach(sw =>
|
|
1669
|
+
sw.learning_resources_types.forEach(t => types.add(t))
|
|
1670
|
+
);
|
|
1671
|
+
return Array.from(types).sort();
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
private getAllLevels(): string[] {
|
|
1675
|
+
const levels = new Set<string>();
|
|
1676
|
+
this.software.forEach(sw =>
|
|
1677
|
+
sw.learning_resources_levels.forEach(l => levels.add(l))
|
|
1678
|
+
);
|
|
1679
|
+
return Array.from(levels).sort();
|
|
1680
|
+
}
|
|
1681
|
+
*/getTagIntent(type){const map={'interactive tutorial':'brand','video tutorial':'primary','user documentation':'dark','video presentation':'inverse','slide deck':'strong'};return map[type]||'brand-dark';}getLevelTagIntent(level){const map={'beginner':'brand','intermediate':'dark','advanced':'strong'};return map[level]||'brand-dark';}renderAccordionDescription(sw){const count=sw.learning_resources_count;const types=sw.learning_resources_types.join(', ');return `${count} resource${count!==1?'s':''} — ${types}`;}renderResources(sw){const filtered=this.getFilteredResources(sw.learning_resources);return h("div",{class:"resources-content"},sw.kg_search_url&&h("div",{class:"kg-link"},h("eds-link",{url:sw.kg_search_url,label:"View in EBRAINS Knowledge Graph",intent:"cta",external:true})),h("table",{class:"resources-table"},h("thead",null,h("tr",null,h("th",{class:"col-name"},"Name"),h("th",{class:"col-type"},"Type"),h("th",{class:"col-level"},"Level"))),h("tbody",null,filtered.map(lr=>h("tr",{class:`resource-row ${lr.iri?'resource-row--clickable':''}`,onClick:()=>{if(lr.iri){window.open(lr.iri,'_blank','noopener,noreferrer');}}},h("td",{class:"col-name"},h("span",{class:"resource-name"},lr.name||'Untitled'),lr.abstract&&h("p",{class:"resource-desc"},lr.abstract)),h("td",{class:"col-type"},lr.type&&h("eds-tag",{label:lr.type,intent:this.getTagIntent(lr.type),size:"medium"})),h("td",{class:"col-level"},lr.educational_level&&h("eds-tag",{label:lr.educational_level,intent:this.getLevelTagIntent(lr.educational_level),size:"medium"})))))),filtered.length===0&&h("p",{class:"no-results"},"No resources match the current filters."));}render(){// Always render the same outer scaffold (header + content area) so the
|
|
1682
|
+
// heading sits in identical position across loading / error / loaded
|
|
1683
|
+
// states and the spinner appears where the accordion list will render.
|
|
1684
|
+
const filtered=!this.loading&&!this.error?this.getFilteredSoftware():[];// const allTypes = this.getAllTypes();
|
|
1685
|
+
// const allLevels = this.getAllLevels();
|
|
1686
|
+
return h("div",{key:'154b59a74cb32996f1bee10ee7758d916bebdd43',class:"lr-container"},h("div",{key:'0c5c04b65f0c4e4c032b1b1a7d96e98fd6775563',class:"lr-header"},h("h2",{key:'01ef66537b31a63521f0406cd2ec9976b532d18f',class:"lr-heading"},this.heading)),this.loading&&h("div",{key:'134ca8e5f7349127b40aa1ae0967cd12dc12cc0b',class:"loading",role:"status","aria-live":"polite"},h("eds-spinner",{key:'a3a0621b6ea041f8da4ef6f36c1688974f3c5591',size:"sm",variant:"primary",background:"transparent",message:"Loading learning resources..."})),this.error&&!this.loading&&h("eds-alert",{key:'a0334442c175374daf8ce2be4da60ac004e4d0e2',intent:"error",message:this.error}),!this.loading&&!this.error&&h("div",{key:'f2b8244f1ee5c052cabd5eec8cbfc36d06f4d08d',class:"accordion-list"},filtered.map(sw=>h("eds-accordion",{heading:sw.name,description:this.renderAccordionDescription(sw),variant:this.variant,icon:"book",switchBg:true,clampText:false},this.renderResources(sw))),filtered.length===0&&h("p",{key:'d572c9eb76279c93ba2bd5f0fae20b4e1d9fc816',class:"no-results"},"No software matches the current filters.")));}get el(){return getElement(this);}};EdsKgLearningResources.style=EdsKgLearningResourcesStyle0;const edsKgWebServicesSelectCss=".kg-web-services-select-container{width:100%}.loading-container,.error-container{width:100%}";const EdsKgWebServicesSelectStyle0=edsKgWebServicesSelectCss;const webServicesCache=new Map();const CACHE_DURATION=5*60*1000;// 5 minutes
|
|
1687
|
+
const EdsKgWebServicesSelect=class{constructor(hostRef){registerInstance(this,hostRef);this.edsinput=createEvent(this,"edsinput",7);this.edschange=createEvent(this,"edschange",7);this.apiEndpoint='/api/v1/kg/web-services/cached';this.label='Select Web Service';this.name='web-service';this.placeholder='Choose a web service...';this.required=false;this.disabled=false;this.size=100;this.searchTerm='';this.value=undefined;this.hint=undefined;this.message=undefined;this.error=false;this.errorMessage=undefined;this.loading=false;this.webServices=[];this.fetchError='';this.selectOptions=[];}componentWillLoad(){this.fetchWebServices();}async fetchWebServices(){this.loading=true;this.fetchError='';try{const params=new URLSearchParams(Object.assign({size:this.size.toString()},this.searchTerm&&{search:this.searchTerm}));const cacheKey=`${this.apiEndpoint}?${params.toString()}`;// Check cache first
|
|
1688
|
+
const cachedEntry=webServicesCache.get(cacheKey);const now=Date.now();if(cachedEntry&&now-cachedEntry.timestamp<CACHE_DURATION){// Use cached data
|
|
1689
|
+
this.webServices=cachedEntry.data;}else {// Fetch fresh data
|
|
1690
|
+
const response=await fetch(`${this.apiEndpoint}?${params}`);if(!response.ok){throw new Error(`Failed to fetch web services: ${response.statusText}`);}const data=await response.json();this.webServices=data.data||[];// Store in cache
|
|
1691
|
+
webServicesCache.set(cacheKey,{data:this.webServices,timestamp:now});}// Format options for eds-input-field: "Localizoom (ebrains-localizoom)"
|
|
1692
|
+
this.selectOptions=this.webServices.map(service=>({label:`${service.name} (${service.short_name})`,value:service.short_name}));}catch(error){console.error('[eds-kg-web-services-select] Error fetching web services:',error);this.fetchError=error instanceof Error?error.message:'Failed to load web services';this.selectOptions=[];}finally{this.loading=false;}}render(){if(this.loading){return h("div",{class:"loading-container"},h("eds-input-field",{name:this.name,label:this.label,type:"select",disabled:true,placeholder:"Loading web services...",hint:this.hint,message:this.message,required:this.required}));}if(this.fetchError){return h("div",{class:"error-container"},h("eds-input-field",{name:this.name,label:this.label,type:"select",disabled:true,error:true,"error-message":this.fetchError,hint:this.hint,message:this.message,required:this.required}));}return h("div",{class:"kg-web-services-select-container"},h("eds-input-field",{name:this.name,label:this.label,type:"select",placeholder:this.placeholder,disabled:this.disabled,required:this.required,options:this.selectOptions,value:this.value,hint:this.hint,message:this.message,error:this.error,"error-message":this.errorMessage,onEdsinput:e=>{this.value=e.detail.value;this.edsinput.emit(e.detail);},onEdschange:e=>{this.value=e.detail.value;this.edschange.emit(e.detail);}}));}};EdsKgWebServicesSelect.style=EdsKgWebServicesSelectStyle0;const edsLinkCss="*,\n::before,\n::after {\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: currentColor;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\nblockquote,\ndl,\ndd,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n.f-body-02 {\n font-family: var(--f-body-02-fontFamily);\n font-weight: var(--f-body-02-fontWeight);\n font-size: var(--f-body-02-fontSize);\n line-height: var(--f-body-02-lineHeight);\n letter-spacing: var(--f-body-02-letterSpacing);\n}\n\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n\n.f-ui-02 {\n font-family: var(--f-ui-02-fontFamily);\n font-weight: var(--f-ui-02-fontWeight);\n font-size: var(--f-ui-02-fontSize);\n letter-spacing: var(--f-ui-02-letterSpacing);\n}\n\n.f-ui-04 {\n font-family: var(--f-ui-04-fontFamily);\n font-weight: var(--f-ui-04-fontWeight);\n font-size: var(--f-ui-04-fontSize);\n letter-spacing: var(--f-ui-04-letterSpacing);\n}\n\n.f-body-01 b,\n.f-body-01 strong {\n font-weight: var(--f-body-01---bold-weight, bold);\n}\n\n.f-body-02 b,\n.f-body-02 strong {\n font-weight: var(--f-body-02---bold-weight, bold);\n}\n\n.f-ui-01 b,\n.f-ui-01 strong {\n font-weight: var(--f-ui-01---bold-weight, bold);\n}\n\n.f-ui-02 b,\n.f-ui-02 strong {\n font-weight: var(--f-ui-02---bold-weight, bold);\n}\n\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n }\n\n &::after {\n position: absolute;\n }\n\n &::after {\n inset: 0rem;\n }\n\n &::after {\n z-index: 1;\n }\n\n &::after {\n border-radius: 8px;\n }\n\n &::after {\n border-width: 1px;\n }\n\n &::after {\n border-width: 2px;\n }\n\n &::after {\n border-color: rgba(7, 20, 13, 1);\n }\n\n &::after {\n content: '';\n }\n}\n\n.border-inside-inverse {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 1); /* white border */\n content: '';\n }\n}\n\n.border-inside-pill {\n &::after {\n border-radius: 100px;\n }\n\n &::after {\n content: '';\n }\n}\n\n.border-inside-inverse.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape for inverse border */\n }\n}\n\n.loader {\n box-sizing: border-box;\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.loader {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border: 3px solid rgba(0, 0, 0, .3);\n border-bottom-color: #000;\n}\n\n/** region TRANSITIONS */\n.effect-color {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.effect-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n/** endregion */\n/* region FOCUS */\n.effect-focus {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--green-500);\n}\n\n.effect-focus:focus-visible {\n outline-style: solid;\n}\n\n.effect-focus-within {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--green-500);\n}\n\n.effect-focus-within:focus-within {\n outline-style: solid;\n}\n\n.effect-bg-behind-link {\n position: relative;\n}\n\n.effect-bg-behind-link::before {\n position: absolute;\n top: 0rem;\n bottom: 0rem;\n left: -0.5rem;\n right: 0rem;\n z-index: 0;\n border-radius: 8px;\n background-color: var(--grey-400);\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.effect-bg-behind-link[aria-disabled=\"true\"]::before {\n background-color: var(--transparent);\n}\n\n/* endregion */\n/*region shadow*/\n/*endregion*/\n/*region brand hover effect*/\n.brand-hover-transform {\n transition-property: transform, box-shadow, color, background-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.brand-hover-transform:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 20px rgba(0, 255, 157, 0.3);\n}\n\n.brand-hover-transform[aria-disabled=\"true\"]:hover {\n transform: none;\n box-shadow: none;\n}\n\n/* Secondary Inverse Transform Effect */\n.secondary-inverse-transform {\n transition-property: transform, background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.secondary-inverse-transform:hover {\n transform: translateY(-2px);\n}\n\n.secondary-inverse-transform[aria-disabled=\"true\"]:hover {\n transform: none;\n}\n/*endregion*/\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.visible {\n visibility: visible;\n}\n\n.static {\n position: static;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.-top-1 {\n top: -0.0625rem;\n}\n\n.z-0 {\n z-index: 0;\n}\n\n.z-1 {\n z-index: 1;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-8 {\n margin-left: -0.5rem;\n}\n\n.-ml-16 {\n margin-left: -1rem;\n}\n\n.-mr-4 {\n margin-right: -0.25rem;\n}\n\n.-mr-8 {\n margin-right: -0.5rem;\n}\n\n.-mr-16 {\n margin-right: -1rem;\n}\n\n.ml-0 {\n margin-left: 0rem;\n}\n\n.ml-4 {\n margin-left: 0.25rem;\n}\n\n.ml-64 {\n margin-left: 4rem;\n}\n\n.ml-8 {\n margin-left: 0.5rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.mr-0 {\n margin-right: 0rem;\n}\n\n.mr-2 {\n margin-right: 0.125rem;\n}\n\n.mr-4 {\n margin-right: 0.25rem;\n}\n\n.mr-8 {\n margin-right: 0.5rem;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.hidden {\n display: none;\n}\n\n.h-20 {\n height: 1.25rem;\n}\n\n.h-24 {\n height: 1.5rem;\n}\n\n.h-36 {\n height: 2.25rem;\n}\n\n.h-44 {\n height: 2.75rem;\n}\n\n.\\!min-h-0 {\n min-height: 0rem !important;\n}\n\n.\\!min-h-20 {\n min-height: 1.25rem !important;\n}\n\n.min-h-36 {\n min-height: 2.25rem;\n}\n\n.min-h-44 {\n min-height: 2.75rem;\n}\n\n.min-h-full {\n min-height: 100%;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-1\\/2 {\n width: 50%;\n}\n\n.w-20 {\n width: 1.25rem;\n}\n\n.w-24 {\n width: 1.5rem;\n}\n\n.w-28 {\n width: 1.75rem;\n}\n\n.w-32 {\n width: 2rem;\n}\n\n.w-4 {\n width: 0.25rem;\n}\n\n.w-44 {\n width: 2.75rem;\n}\n\n.w-auto {\n width: auto;\n}\n\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.w-full {\n width: 100%;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.flex-none {\n flex: none;\n}\n\n.grow {\n flex-grow: 1;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-start {\n align-items: flex-start;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.break-words {\n overflow-wrap: break-word;\n}\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-sm {\n border-radius: 8px;\n}\n\n.rounded-xs {\n border-radius: 4px;\n}\n\n.rounded-full {\n border-radius: 100px;\n}\n\n.rounded-pill {\n border-radius: 9999px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border-color: rgb(0 52 203 / var(--tw-border-opacity));\n}\n\n.border-soft {\n border-color: rgba(0, 0, 0, .15);\n}\n\n.border-softer {\n border-color: rgba(0, 0, 0, .1);\n}\n\n.border-softest {\n border-color: rgba(0, 0, 0, .05);\n}\n\n.border-transparent {\n border-color: var(--transparent);\n}\n\n.border-b-softer {\n border-bottom-color: rgba(0, 0, 0, .1);\n}\n\n.\\!bg-accent-dark {\n background-color: var(--brand-green-dark) !important;\n}\n\n.\\!bg-darker {\n background-color: var(--grey-light) !important;\n}\n\n.\\!bg-strong-dark {\n background-color: var(--grey-800) !important;\n}\n\n.bg-accent {\n background-color: var(--brand-green);\n}\n\n.bg-accent-dark {\n background-color: var(--brand-green-dark0);\n}\n\n.bg-accent-darker {\n background-color: var(--brand-green-dark);\n}\n\n.bg-current {\n background-color: currentColor;\n}\n\n.bg-dark {\n background-color: var(--grey-light);\n}\n\n.bg-darker {\n background-color: var(--grey-dark);\n}\n\n.bg-default {\n background-color: var(--grey-light);\n}\n\n.bg-inverse {\n background-color: var(--white);\n}\n\n.bg-inverse-soft {\n background-color: rgba(255, 255, 255, .2);\n}\n\n.bg-inverse-softer {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.bg-overlay {\n background-color: rgba(0, 0, 0, 0.25);\n}\n\n.bg-strong {\n background-color: var(--grey-700);\n}\n\n.bg-strong-dark {\n background-color: var(--grey-800);\n}\n\n.bg-stronger {\n background-color: var(--grey-900);\n}\n\n.bg-strongest {\n background-color: var(--brand-black);\n}\n\n.bg-transparent {\n background-color: var(--transparent);\n}\n\n.\\!p-8 {\n padding: 0.5rem !important;\n}\n\n.\\!px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n\n.\\!py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n}\n\n.\\!py-4 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.px-12 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-16 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-2 {\n padding-left: 0.125rem;\n padding-right: 0.125rem;\n}\n\n.px-20 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n\n.px-4 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.py-4 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.py-6 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n\n.py-8 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.\\!pt-4 {\n padding-top: 0.25rem !important;\n}\n\n.pl-12 {\n padding-left: 0.75rem;\n}\n\n.pl-28 {\n padding-left: 1.75rem;\n}\n\n.pl-32 {\n padding-left: 2rem;\n}\n\n.pl-36 {\n padding-left: 2.25rem;\n}\n\n.pl-2 {\n padding-left: 0.125rem;\n}\n\n.pl-4 {\n padding-left: 0.25rem;\n}\n\n.pl-8 {\n padding-left: 0.5rem;\n}\n\n.pr-12 {\n padding-right: 0.75rem;\n}\n\n.pr-2 {\n padding-right: 0.125rem;\n}\n\n.pr-28 {\n padding-right: 1.75rem;\n}\n\n.pr-32 {\n padding-right: 2rem;\n}\n\n.pr-4 {\n padding-right: 0.25rem;\n}\n\n.pr-8 {\n padding-right: 0.5rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.\\!text-current {\n color: currentColor !important;\n}\n\n.text-\\[\\#0034CB\\] {\n --tw-text-opacity: 1;\n color: rgb(0 52 203 / var(--tw-text-opacity));\n}\n\n.text-accent {\n color: var(--brand-green-dark);\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-default {\n color: var(--brand-black);\n}\n\n.text-error {\n color: var(--red-700);\n}\n\n.text-extra-light {\n color: var(--grey-light);\n}\n\n.text-inverse {\n color: var(--white);\n}\n\n.text-light {\n color: var(--grey-700);\n}\n\n.text-lighter {\n color: var(--grey-600);\n}\n\n.text-lightest {\n color: var(--grey-500);\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.\\!no-underline {\n text-decoration-line: none !important;\n}\n\n.decoration-\\[\\#0034CB\\] {\n text-decoration-color: #0034CB;\n}\n\n.decoration-white {\n text-decoration-color: var(--white);\n}\n\n.decoration-accent {\n text-decoration-color: var(--brand-green-dark);\n}\n\n.decoration-2 {\n text-decoration-thickness: 2px;\n}\n\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n\n.underline-offset-6 {\n text-underline-offset: 6px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-accent {\n --tw-shadow: 0px 0px 12px rgba(0, 201, 89, 0.6);\n --tw-shadow-colored: 0px 0px 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.outline {\n outline-style: solid;\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[class*=underline-] {\n text-decoration-line: underline;\n}\n\n.underline-offset-4 {\n text-underline-offset: 0.2em;\n}\n\n.\\@container {\n container-type: inline-size;\n}\n\n.after\\:effect-opacity::after {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.before\\:effect-opacity::before {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.even\\:bg-inverse-softer:nth-child(even) {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.invalid\\:text-lightest:invalid {\n color: var(--grey-500);\n}\n\n.focus-within\\:bg-transparent:focus-within {\n background-color: var(--transparent);\n}\n\n.hover\\:bg-accent-dark:hover {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n.hover\\:bg-dark:hover {\n background-color: var(--grey-300);\n}\n\n.hover\\:bg-darker:hover {\n background-color: var(--grey-400);\n}\n\n.hover\\:bg-default:hover {\n background-color: var(--grey-200);\n}\n\n.hover\\:bg-inverse:hover {\n background-color: var(--white);\n}\n\n.hover\\:bg-strong-dark:hover {\n background-color: var(--grey-800);\n}\n\n.hover\\:bg-strongest:hover {\n background-color: var(--brand-black);\n}\n\n.hover\\:bg-transparent:hover {\n background-color: var(--transparent);\n}\n\n.hover\\:text-accent:hover {\n color: var(--brand-green-dark);\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black);\n}\n\n.hover\\:text-inverse:hover {\n color: var(--white);\n}\n\n.hover\\:text-lighter:hover {\n color: var(--grey-600);\n}\n\n.hover\\:\\!underline:hover {\n text-decoration-line: underline !important;\n}\n\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n\n\n.hover\\:decoration-accent:hover {\n text-decoration-color: var(--brand-green-dark);\n}\n\n.hover\\:shadow-hover:hover {\n --tw-shadow: 0px 0px 16px rgba(0, 0, 0, 0.2);\n --tw-shadow-colored: 0px 0px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:shadow-none:focus {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus-visible\\:rounded-xs:focus-visible {\n border-radius: 4px;\n}\n\n.focus-visible\\:text-default:focus-visible {\n color: var(--black);\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus-visible\\:ring:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:bg-dark:disabled {\n background-color: var(--grey-300);\n}\n\n.disabled\\:text-lightest:disabled {\n color: var(--grey-500);\n}\n\n.aria-disabled\\:cursor-not-allowed[aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n.aria-disabled\\:\\!border-transparent[aria-disabled=\"true\"] {\n border-color: var(--transparent) !important;\n}\n\n.aria-disabled\\:border-transparent[aria-disabled=\"true\"] {\n border-color: var(--transparent)\n}\n\n.aria-disabled\\:bg-dark[aria-disabled=\"true\"] {\n background-color: var(--grey-300);\n}\n\n.aria-disabled\\:bg-transparent[aria-disabled=\"true\"] {\n background-color: var(--transparent);\n}\n\n.aria-disabled\\:text-light[aria-disabled=\"true\"] {\n color: var(--grey-700);\n}\n\n.aria-disabled\\:text-lightest[aria-disabled=\"true\"] {\n color: var(--grey-500);\n}\n\n.aria-disabled\\:line-through[aria-disabled=\"true\"] {\n text-decoration-line: line-through;\n}\n\n.aria-disabled\\:shadow-none[aria-disabled=\"true\"] {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.aria-disabled\\:decoration-light[aria-disabled=\"true\"] {\n text-decoration-line: var(--grey-light);\n}\n\n.aria-disabled\\:no-underline[aria-disabled=\"true\"] {\n text-decoration-line: none;\n}\n\n.aria-current-page\\:bg-darker[aria-current=\"page\"] {\n background-color: var(--grey-400);\n}\n\n.after\\:absolute::after {\n position: absolute;\n}\n\n.after\\:inset-0::after {\n inset: 0rem;\n}\n\n.after\\:inset-x-0::after {\n left: 0rem;\n right: 0rem;\n}\n\n.after\\:bottom-0::after {\n bottom: 0rem;\n}\n\n.after\\:left-16::after {\n left: 1rem;\n}\n\n.after\\:right-16::after {\n right: 1rem;\n}\n\n.after\\:z-10::after {\n z-index: 10;\n}\n\n.after\\:rounded-lg::after {\n border-radius: 16px;\n}\n\n.after\\:rounded-t-lg::after {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n\n.after\\:border-3::after {\n border-width: 3px;\n}\n\n.after\\:border-b-2::after {\n border-bottom-width: 2px;\n}\n\n.after\\:\\!border-transparent::after {\n border-color: var(--transparent) !important;\n}\n\n.after\\:border-accent::after {\n border-color: var(--green-500);\n}\n\n.after\\:border-softest::after {\n border-color: rgba(0, 0, 0, .05);\n}\n\n.after\\:opacity-0::after {\n opacity: 0;\n}\n\n.after\\:content-\\[\\'\\'\\]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.hover\\:after\\:\\!border-transparent:hover::after {\n border-color: var(--transparent) !important;\n}\n\n.hover\\:after\\:opacity-100:hover::after {\n opacity: 1;\n}\n\n.focus-visible\\:after\\:opacity-100:focus-visible::after {\n opacity: 1;\n}\n\n.aria-disabled\\:after\\:\\!border-transparent[aria-disabled=\"true\"]::after {\n border-color: var(--transparent) !important;\n}\n\n.before\\:absolute::before {\n position: absolute;\n}\n\n.before\\:inset-x-0::before {\n left: 0rem;\n right: 0rem;\n}\n\n.before\\:-bottom-2::before {\n bottom: -0.125rem;\n}\n\n.before\\:bottom-0::before {\n bottom: 0rem;\n}\n\n.before\\:h-12::before {\n height: 0.75rem;\n}\n\n.before\\:h-3::before {\n height: 0.1875rem;\n}\n\n.before\\:rounded-lg::before {\n border-radius: 16px;\n}\n\n.before\\:border-2::before {\n border-width: 2px;\n}\n\n.before\\:border-softest::before {\n border-color: rgba(0, 0, 0, .05);\n}\n\n.before\\:bg-default::before {\n background-color: var(--grey-200);\n}\n\n.before\\:bg-inverse-softer::before {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.before\\:\\!opacity-100::before {\n opacity: 1 !important;\n}\n\n.before\\:opacity-0::before {\n opacity: 0;\n}\n\n.before\\:opacity-5::before {\n opacity: 0.05;\n}\n\n.before\\:content-\\[\\'\\'\\]::before {\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.before\\:bg-gradient-y::before {\n background: linear-gradient(to bottom, transparent, ease-in-out, black);\n}\n\n.before\\:bg-gradient-01-top::before {\n background: linear-gradient(to bottom, #00E766, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-01-bottom::before {\n background: linear-gradient(to top, #00E766, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-02-top::before {\n background: linear-gradient(to bottom, #F3F30A, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-02-bottom::before {\n background: linear-gradient(to top, #F3F30A, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-03-top::before {\n background: linear-gradient(to bottom, #C461FF, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-03-bottom::before {\n background: linear-gradient(to top, #C461FF, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-04-top::before {\n background: linear-gradient(to bottom, #2B69FC, ease-in-out, #E6E6E6);\n}\n\n.before\\:bg-gradient-04-bottom::before {\n background: linear-gradient(to top, #2B69FC, ease-in-out, #E6E6E6);\n}\n\n.hover\\:before\\:opacity-100:hover::before {\n opacity: 1;\n}\n\n.focus-visible\\:before\\:\\!opacity-0:focus-visible::before {\n opacity: 0 !important;\n}\n\n.focus-visible\\:before\\:opacity-0:focus-visible::before {\n opacity: 0;\n}\n\n/* CTA link style */\n.cta-link {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-02-fontSize);\n color: var(--grey-dark);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.cta-link:hover {\n color: var(--brand-green);\n}\n\n/* CTA brand link style - always green */\n.cta-link-brand {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-02-fontSize);\n color: var(--brand-green);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.cta-link-brand:hover {\n color: var(--brand-green-dark);\n}\n\n/* Animated underline effect for underline intent (brand-black text) */\n.animated-underline {\n position: relative;\n display: inline-block;\n color: var(--brand-black);\n text-decoration: none;\n}\n\n.animated-underline::after {\n content: '';\n position: absolute;\n bottom: -2px;\n left: 0;\n width: 0;\n height: 2px;\n background-color: var(--brand-green);\n transition: width 0.3s ease;\n}\n\n.animated-underline:hover::after {\n width: 100%;\n}\n\n.animated-underline:focus-visible::after {\n width: 0;\n}\n\n/* Animated underline effect for underlineInverse intent (white text) */\n.animated-underline-inverse {\n position: relative;\n display: inline-block;\n color: var(--white);\n text-decoration: none;\n}\n\n.animated-underline-inverse::after {\n content: '';\n position: absolute;\n bottom: -2px;\n left: 0;\n width: 0;\n height: 2px;\n background-color: var(--brand-green);\n transition: width 0.3s ease;\n}\n\n.animated-underline-inverse:hover::after {\n width: 100%;\n}\n\n.animated-underline-inverse:focus-visible::after {\n width: 0;\n}\n\n@media (min-width: 900px) {\n .lg\\:flex {\n display: flex;\n }\n}";const EdsLinkStyle0=edsLinkCss;// Define the CVA for link styles
|
|
1693
|
+
const linkStyles=cva(['relative inline-flex justify-center items-center py-8 rounded-sm','effect-color effect-focus aria-disabled:text-lightest','cursor-pointer','aria-disabled:bg-dark aria-disabled:cursor-not-allowed aria-disabled:after:!border-transparent'],{variants:{intent:{primary:'bg-strongest text-inverse hover:bg-accent-dark hover:text-default focus:shadow-none aria-disabled:shadow-none',secondary:'hover:bg-strongest hover:text-inverse border-inside text-default bg-transparent hover:bg-dark',secondaryInverse:'border-inside-inverse text-inverse bg-transparent hover:bg-inverse hover:text-default',ghost:'hover:bg-darker',strong:['!px-0 !py-4 !min-h-20 hover:text-accent','before:opacity-0 effect-opacity','hover:before:opacity-100 focus-visible:before:opacity-0','aria-disabled:bg-transparent aria-disabled:text-light'// aria-disabled:line-through
|
|
1694
|
+
],weak:['!px-0 !py-4 !min-h-20','text-light hover:text-default','before:opacity-0 effect-opacity','hover:before:opacity-100 focus-visible:before:!opacity-0','aria-disabled:bg-transparent aria-disabled:text-light'// aria-disabled:line-through
|
|
1695
|
+
],inverse:['!px-0 !py-4 !min-h-20','text-inverse','effect-bg-behind-link before:bg-inverse-softer before:opacity-0 effect-opacity','hover:before:opacity-100 focus-visible:before:!opacity-0','aria-disabled:bg-transparent'// aria-disabled:line-through
|
|
1696
|
+
],underline:['text-default animated-underline !px-0 !py-0','aria-disabled:bg-transparent aria-disabled:text-light aria-disabled:no-underline effect-focus focus-visible:rounded-xs !min-h-0'],underlineInverse:['text-inverse animated-underline-inverse !px-0 !py-0','aria-disabled:bg-transparent aria-disabled:text-lightest aria-disabled:no-underline effect-focus focus-visible:rounded-xs !min-h-0'],brand:['bg-accent text-default hover:bg-strongest hover:text-inverse','rounded-full','aria-disabled:bg-dark aria-disabled:text-lightest'],brandInverse:['bg-accent text-default hover:bg-inverse hover:text-default','rounded-full','aria-disabled:bg-dark aria-disabled:text-lightest'],cta:['cta-link !px-0 !py-0 !min-h-0 !h-auto'],'cta-brand':['cta-link-brand !px-0 !py-0 !min-h-0 !h-auto']},iconSmall:{true:'',false:''},isActive:{true:'',false:''},hasIcon:{true:'',false:''},size:{small:'min-h-36 f-ui-02 px-12',large:'min-h-44 f-ui-01 px-16'},pill:{true:'rounded-full border-inside-pill',false:'rounded-sm'}},compoundVariants:[{iconSmall:true,size:'small',class:'pr-4'},{iconSmall:true,size:'large',class:'pr-8'},{intent:'underline',hasIcon:true,class:'-mr-4 -top-1'},{intent:'underlineInverse',hasIcon:true,class:'-mr-4 -top-1'},{intent:'cta',hasIcon:true,class:'gap-8'},{intent:'cta-brand',hasIcon:true,class:'gap-8'},// Active state
|
|
1697
|
+
{intent:'primary',isActive:true,class:'!bg-accent-dark'},{intent:'secondary',isActive:true,class:'!bg-strong-dark'},{intent:'secondaryInverse',isActive:true,class:'!bg-inverse !text-default'},{intent:'ghost',isActive:true,class:'!bg-darker'},{intent:'strong',isActive:true,class:'before:!opacity-100'},{intent:'weak',isActive:true,class:'before:!opacity-100'},{intent:'inverse',isActive:true,class:'before:!opacity-100'},{intent:'underline',size:'small',class:'!px-0 !py-0 !min-h-0 f-ui-02'},{intent:'underline',size:'large',class:'!px-0 !py-0 !min-h-0 f-ui-01'},{intent:'underlineInverse',size:'small',class:'!px-0 !py-0 !min-h-0 f-ui-02'},{intent:'underlineInverse',size:'large',class:'!px-0 !py-0 !min-h-0 f-ui-01'},{intent:'cta',size:'small',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta',size:'large',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta-brand',size:'small',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'cta-brand',size:'large',class:'!px-0 !py-0 !min-h-0 !h-auto'},{intent:'brand',isActive:true,class:'!bg-inverse !text-default'}],defaultVariants:{//intent: 'primary',
|
|
1698
|
+
isActive:false,iconSmall:false,size:'small',hasIcon:false,pill:false}});const EdsLink=class{constructor(hostRef){registerInstance(this,hostRef);this.parentContext=null;// Accepts the entire event detail or null
|
|
1699
|
+
this.label=undefined;this.intent='primary';this.icon=undefined;this.iconPos='right';this.iconSmall=false;this.size='small';this.pill=false;this.external=false;this.current=false;this.download=false;this.url=undefined;this.ariaLabel=undefined;this.disabled=false;this.hideLabelOnSmallScreen=false;}handleParentContext(event){if(event.target!==this.el){// Ignore the event if it's not targeted at this specific instance
|
|
1700
|
+
return;}this.parentContext=event.detail;event.stopPropagation();}handleClick(event){var _a,_b;if(this.disabled){// Prevent navigation if the link is disabled
|
|
1701
|
+
event.preventDefault();return;}sendAnalytics({category:'ui-component',parentContext:this.parentContext,tag:this.el.tagName.toLowerCase(),name:((_a=this.label)===null||_a===void 0?void 0:_a.toLowerCase())||((_b=this.ariaLabel)===null||_b===void 0?void 0:_b.toLowerCase())||'',action:'click'});}handleKeyDown(event){if(this.disabled){return;}// Handle Enter and Space keys for activation
|
|
1702
|
+
if(event.key==='Enter'||event.key===' '){event.preventDefault();this.handleClick(event);// For actual navigation, trigger the native link behavior
|
|
1703
|
+
if(this.url&&!this.disabled){if(this.external){window.open(this.url,'_blank','noopener,noreferrer');}else {window.location.href=this.url;}}}}getLinkSize(){return this.size;}renderLeftIcon(){if(this.icon&&this.iconPos==='left'){return h("span",{class:"flex"},h("eds-icon-wrapper",{"aria-hidden":"true",size:20,class:"flex inline-flex items-center justify-center",name:this.icon}));}return null;}renderRightIcon(){if(this.icon&&this.iconPos==='right'){return h("span",{class:"flex"},h("eds-icon-wrapper",{"aria-hidden":"true",size:20,class:"flex inline-flex items-center justify-center",name:this.icon}));}return null;}render(){const classes=linkStyles({intent:this.intent,size:this.getLinkSize(),iconSmall:this.iconSmall,isActive:this.current,hasIcon:!!this.icon,pill:this.pill});const safeUrl=typeof this.url==='string'&&this.url.length?this.url:undefined;const isInteractive=!this.disabled;const isIconOnly=!this.label||this.hideLabelOnSmallScreen&&this.icon;const labelClasses=this.hideLabelOnSmallScreen?'hidden lg:flex'// Tailwind example: hidden on small screens, visible on larger
|
|
1704
|
+
:'';return h("a",{key:'d167c16280b7f0b4c1fcf14f0f0d3468111e715b',class:`${classes||''}`,href:isInteractive?safeUrl:undefined,target:this.external&&isInteractive?'_blank':undefined,rel:this.external&&isInteractive?'noopener noreferrer':undefined,tabIndex:isInteractive?0:-1,"aria-label":isIconOnly?this.ariaLabel||'Link':undefined,"aria-disabled":this.disabled?'true':undefined,"aria-current":this.current?'page':undefined,role:this.disabled?'link':undefined,download:this.download?'':undefined,onClick:event=>this.handleClick(event),onKeyDown:event=>this.handleKeyDown(event)},h("span",{key:'000476a609888f5f848722015ce5e6137f26e371',class:"z-1 relative inline-flex items-center justify-center"},this.renderLeftIcon(),this.label&&h("span",{key:'15232cde31d23c5a466189c69fbdb9db48f08274',class:`${labelClasses} ${this.icon?this.iconPos==='right'?this.size==='large'?'pr-4':'pr-2':this.size==='large'?'pl-4':'pl-2':''}`},this.label),this.renderRightIcon()));}get el(){return getElement(this);}};EdsLink.style=EdsLinkStyle0;const edsLogoCss=".w-\\[130px\\]{width:130px}.mr-auto{margin-right:auto}.text-current{color:currentColor}.text-default{color:var(--black)}.text-inverse{color:var(--white)}.h-full{height:100%}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.p-\\[24px\\]{padding:24px}@media (min-width: 900px){.lg\\:w-\\[150px\\]{width:150px}}";const EdsLogoStyle0=edsLogoCss;const EdsLogo=class{constructor(hostRef){registerInstance(this,hostRef);this.href='/';this.orientation='horizontal';this.variant='positive';this.label='Home';}/**
|
|
1705
|
+
* Handles the click event on the logo link.
|
|
1706
|
+
* Emits a `matomoEvent` for analytics tracking with details about the interaction.
|
|
1707
|
+
* - `category`: Component type (e.g., "ui-component").
|
|
1708
|
+
* - `tag`: The HTML tag name of the component.
|
|
1709
|
+
* - `name`: Event name, set as "logo".
|
|
1710
|
+
* - `action`: The action, set as "click".
|
|
1711
|
+
*/handleClick(){sendAnalytics({category:'ui-component',tag:this.el.tagName.toLowerCase(),name:'logo',action:'click'});}/**
|
|
1712
|
+
* Determines the appropriate SVG content based on the `orientation` and `type` props.
|
|
1713
|
+
*/getLogo(){if(this.variant=='negative'){return logoNegative;}return logoPositive;}render(){const logoContent=this.getLogo();return h("a",{key:'3f8257c9481079f011278b114e13effe9057d823',href:this.href,onClick:()=>this.handleClick(),class:"eds-logo-wrapper","aria-label":this.label},h("div",{key:'4dac45a1a0c38c6e1613995aad2005b41acac775',innerHTML:logoContent}));}get el(){return getElement(this);}};EdsLogo.style=EdsLogoStyle0;const edsMatomoNoticeCss=":host{display:block;background-color:var(--white, #FFFFFF);border-radius:16px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12);overflow:hidden}.flex{display:flex}.items-center{align-items:center}.gap-8{gap:0.5rem}";const EdsMatomoNoticeStyle0=edsMatomoNoticeCss;const EdsMatomoNotice=class{constructor(hostRef){registerInstance(this,hostRef);this.consent=createEvent(this,"consent",7);this.heading='Analytics Consent';this.description="We use anonymous analytics to improve our services. No data is collected unless you give your consent. If you don't wish to send data right now, you can always re-enable analytics later by clicking the Cookies Preference button in the footer. However, by opting in today, you're joining a community that shapes our product's future—all while keeping your data completely anonymous.";this.optOutMessage="You are already part of our community, and your anonymous data helps shape our product's future! Rest assured, your privacy is fully protected.";this.forceShow=false;this.showNotice=true;}/**
|
|
1714
|
+
* Listens for global custom events to open the matomo-consent.
|
|
1715
|
+
*/toggleCookiesConsent(){this.showNotice=!this.showNotice;}/**
|
|
1716
|
+
* Checks if the consent cookie exists.
|
|
1717
|
+
*/hasCookieConsent(){return !!document.cookie.split('; ').find(row=>row.startsWith('mtm_consent='));}/**
|
|
1718
|
+
* Checks if the user has opted out after has opted in.
|
|
1719
|
+
*/optedOut(){return !!document.cookie.split('; ').find(row=>row.startsWith('mtm_consent_removed'));}/**
|
|
1720
|
+
* Generate a unique storage key based on appId or the app's domain.
|
|
1721
|
+
*/getStorageKey(){return `${window.location.host}-matomo-deferred`;}/**
|
|
1722
|
+
* Check cookies and sessionStorage (unless forceShow is true) to decide if the notice should be shown.
|
|
1723
|
+
*/componentWillLoad(){// If a decision has been made previously (opted in or out), don't show the notice.
|
|
1724
|
+
const consentGiven=localStorage.getItem(`${window.location.host}-matomo-consent-given`);if(consentGiven==='out'||this.optedOut()){this.showNotice=false;return;}if(this.forceShow){// If forceShow is true, always show the notice
|
|
1725
|
+
this.showNotice=true;}else {// If user has already consented, hide the notice
|
|
1726
|
+
// eslint-disable-next-line
|
|
1727
|
+
if(this.hasCookieConsent()){this.showNotice=false;}else {// Otherwise check if user deferred in this session
|
|
1728
|
+
const sessionDeferred=sessionStorage.getItem(this.getStorageKey());this.showNotice=!sessionDeferred;}}}componentDidLoad(){const btns=this.el.shadowRoot.querySelectorAll('eds-button');btns.forEach(b=>{this.emitContext(b);});}emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:null}});linkElement.dispatchEvent(event);}optInAnalytics(){matomoOptIn();localStorage.removeItem(`${window.location.host}-matomo-consent-given`);this.hideNotice();this.consent.emit('in');}optOutAnalytics(){matomoOptOut();this.hideNotice();this.consent.emit('out');}noThanks(){matomoOptOut();localStorage.setItem(`${window.location.host}-matomo-consent-given`,'out');this.hideNotice();this.consent.emit('out');}/*private deferDecision() {
|
|
1729
|
+
sessionStorage.setItem(this.getStorageKey(), 'true');
|
|
1730
|
+
this.hideNotice();
|
|
1731
|
+
this.consent.emit('defer');
|
|
1732
|
+
}*/keepMeIn(){this.hideNotice();}hideNotice(){this.showNotice=false;}render(){if(!this.showNotice){return null;}return(// Content-only render — no positioning, no overlay, no sizing.
|
|
1733
|
+
// The host application wraps this component in whatever positioned
|
|
1734
|
+
// container makes sense (fixed bottom banner, modal, sidebar slot,
|
|
1735
|
+
// etc.). See packages/shared-hugo/layouts/_default/baseof.html for
|
|
1736
|
+
// the bottom-centered card wrapper used by handbook/eds-docs.
|
|
1737
|
+
h("div",null,h("eds-accordion",{title:this.heading,description:this.hasCookieConsent()?this.optOutMessage:this.description,switchBg:true,expanded:true},this.hasCookieConsent()?h("div",{class:"flex items-center gap-8"},this.optedOut()?h("eds-button",{intent:"brand",label:"Opt me in again",pill:true,"aria-label":"Opt me in again",onClick:()=>this.optInAnalytics()}):h("eds-button",{intent:"brand",label:"Keep Me In",pill:true,"aria-label":"Keep Me In",onClick:()=>this.keepMeIn()}),h("eds-button",{intent:"ghost",label:"Opt-out",pill:true,"aria-label":"Opt-out from analytics",onClick:()=>this.optOutAnalytics()})):h("div",{class:"flex items-center gap-8"},h("eds-button",{intent:"brand",pill:true,label:"I agree","aria-label":"Opt-in for analytics",onClick:()=>this.optInAnalytics()}),h("eds-button",{intent:"ghost",pill:true,label:"No, thanks","aria-label":"Opt-out from analytics",onClick:()=>this.noThanks()})))));}get el(){return getElement(this);}};EdsMatomoNotice.style=EdsMatomoNoticeStyle0;const edsNpsCss=".eds-nps__labels{padding-top:0.75rem;padding-bottom:0.5rem}.eds-nps__scale{display:block;width:fit-content;max-width:100%;padding-top:0.5rem;}#nps-buttons{gap:0.6rem}.eds-nps__btn{border-radius:9999px;transition:transform 0.15s ease-in-out}.eds-nps__btn.is-selected{transform:scale(1.12)}.flex{display:flex}.justify-between{justify-content:space-between}.mt-4{margin-top:0.25rem}.mt-8{margin-top:0.5rem}.ml-4{margin-left:0.25rem}.mr-4{margin-right:0.25rem}.gap-2{gap:0.125rem}.gap-4{gap:0.25rem}.grid{display:grid}.grid-col-span-1{--container-grid-columns:1;grid-column:span 1 / span 1}.grid-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr))}.grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"]>*:nth-child(n)::before{border-bottom-width:1px}.grid-cols-11[class*=\"grid-line-xfull\"]>*:nth-child(n)::before{inset-inline-start:calc(var(--inner-gutter) / -2);inset-inline-end:calc(var(--inner-gutter) / -2)}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1)::before{inset-inline-start:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+11)::before{inset-inline-end:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)~*::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(n)::after{border-inline-end-width:1px}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+11)::after{border-inline-end-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(-n+11)::after{top:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)::after{bottom:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)~li::after{bottom:0}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.text-light{color:var(--grey-dark)}.flex-wrap{flex-wrap:wrap}";const EdsNpsStyle0=edsNpsCss;const EdsNps=class{constructor(hostRef){registerInstance(this,hostRef);this.nps=createEvent(this,"nps",7);this.min=0;this.max=10;this.btnRefs=[];this.onSelect=value=>{this.internalValue=value;this.nps.emit(value);requestAnimationFrame(()=>{var _a,_b;const idx=value-this.min;(_b=(_a=this.btnRefs[idx])===null||_a===void 0?void 0:_a.focus)===null||_b===void 0?void 0:_b.call(_a);});};this.handleKeyNav=e=>{const{key}=e;const navigational=['ArrowRight','ArrowLeft','Home','End',' ','Enter'];if(!navigational.includes(key)){return;}e.preventDefault();const count=this.max-this.min+1;let currentIdx=this.internalValue==null?0:this.internalValue-this.min;switch(key){case'ArrowRight':currentIdx=Math.min(count-1,currentIdx+1);this.setActiveByIndex(currentIdx,/*commit*/false);break;case'ArrowLeft':currentIdx=Math.max(0,currentIdx-1);this.setActiveByIndex(currentIdx,/*commit*/false);break;case'Home':this.setActiveByIndex(0,/*commit*/false);break;case'End':this.setActiveByIndex(count-1,/*commit*/false);break;case' ':case'Enter':// Commit current focused item
|
|
1738
|
+
this.onSelect(this.min+currentIdx);break;}};this.question=undefined;this.leftLabel=undefined;this.rightLabel=undefined;this.selectedValue=null;this.internalValue=null;}/**
|
|
1739
|
+
* Watch for changes to the selectedValue prop and sync internal state.
|
|
1740
|
+
*/handleSelectedValueChange(newValue){this.internalValue=newValue;}/**
|
|
1741
|
+
* Initialize internal value from prop on component load.
|
|
1742
|
+
*/componentWillLoad(){this.internalValue=this.selectedValue;}/** Move visual highlight & roving tabindex; optionally commit selection */setActiveByIndex(index,commit=false){var _a;const value=this.min+index;this.internalValue=value;const target=this.btnRefs[index];typeof(target===null||target===void 0?void 0:target.focusInner)==='function'?target.focusInner():(_a=target===null||target===void 0?void 0:target.focus)===null||_a===void 0?void 0:_a.call(target);if(commit){this.onSelect(value);}}render(){const count=this.max-this.min+1;return h("div",{key:'412ddeabf0cc97829202063af25f17e3309b0754',class:"eds-nps"},h("eds-input-label",{key:'100a47e710fa75d6a5761a87ca68e8bc8910e248',id:"nps-question",name:"nps-question",label:this.question}),h("div",{key:'9a7a63112e17f4c725005e1ae8e42c98107db7c4',class:"eds-nps__scale"},h("div",{key:'501029dad573cd31d956ae3cae67f2db9f2649f1',id:"nps-buttons",role:"radiogroup","aria-labelledby":"nps-question",onKeyDown:this.handleKeyNav,class:"flex flex-wrap gap-2 my-8"},Array.from({length:count},(_,i)=>{const val=this.min+i;const isSelected=val===this.internalValue;const tabIndex=isSelected||this.internalValue==null&&i===0?0:-1;return h("div",{class:"flex",key:val},h("eds-button",{ref:el=>this.btnRefs[i]=el,size:"large",role:"radio","aria-checked":isSelected?'true':'false',"aria-label":`${val}`,onClick:()=>this.onSelect(val),tabIndex:tabIndex,intent:isSelected?'brand':'brandLight',class:isSelected?'eds-nps__btn is-selected':'eds-nps__btn',"extra-class":"!block !px-0 w-full",label:`${val}`,pill:true,onFocus:()=>{this.internalValue=val;}}));})),h("div",{key:'aa15457591f1edf6e59eed384bcfbb25d49c9fd5',class:"flex justify-between eds-nps__labels"},h("span",{key:'a468b290491e368e3084f17ce40c6aa39e00ad3a',class:"f-ui-04 text-light ml-4"},this.leftLabel),h("span",{key:'146b9eea4bbc360f7765e69e319738c77beae69d',class:"f-ui-04 text-light mr-4"},this.rightLabel))));}get el(){return getElement(this);}static get watchers(){return {"selectedValue":["handleSelectedValueChange"]};}};EdsNps.style=EdsNpsStyle0;const edsPaginationCss="ul,menu{list-style:none;margin:0;padding:0}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.f-ui-02-light{font-family:var(--f-ui-02-light-fontFamily);font-weight:var(--f-ui-02-light-fontWeight);font-size:var(--f-ui-02-light-fontSize);line-height:var(--f-ui-02-light-lineHeight);letter-spacing:var(--f-ui-02-light-letterSpacing)}.text-light{color:var(--grey-700)}.text-lightest{color:var(--grey-500)}.mb-28{margin-bottom:1.75rem}.w-full{width:100%}.w-20{width:1.25rem}.h-20{height:1.25rem}.h-28{height:1.75rem}.h-32{height:2rem}.h-36{height:2.25rem}.text-center{text-align:center}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-x-8{-moz-column-gap:0.5rem;column-gap:0.5rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.\\!p-8{padding:0.5rem !important}.ml-4{margin-left:0.25rem}.mr-4{margin-right:0.25rem}.hidden{display:none}.gap-1{gap:0.0625rem}.py-4{padding-top:0.25rem;padding-bottom:0.25rem}.transition-colors{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media (min-width: 900px){.lg\\:\\!pr-12{padding-right:0.75rem !important}.lg\\:flex{display:flex}}";const EdsPaginationStyle0=edsPaginationCss;const EdsPagination=class{constructor(hostRef){registerInstance(this,hostRef);/**
|
|
1743
|
+
* Handles keyboard navigation within the pagination
|
|
1744
|
+
*/this.handleKeyDown=e=>{if(this.mode!=='default'||!this.useButtons){return;}const navigableItems=this.getNavigableItems();if(e.key==='ArrowRight'||e.key==='ArrowLeft'){e.preventDefault();const increment=e.key==='ArrowRight'?1:-1;let currentIndex=this.focusedIndex;// If no item is focused, start from current page or first item
|
|
1745
|
+
if(currentIndex===-1){const currentPageIndex=navigableItems.findIndex(item=>item.type==='page'&&item.page===this.currentPage);currentIndex=currentPageIndex!==-1?currentPageIndex:0;}let newIndex=currentIndex+increment;// Wrap around navigation
|
|
1746
|
+
if(newIndex>=navigableItems.length){newIndex=0;}else if(newIndex<0){newIndex=navigableItems.length-1;}this.focusedIndex=newIndex;this.focusPaginationItem(newIndex);}else if(e.key==='Home'){e.preventDefault();this.focusedIndex=0;this.focusPaginationItem(0);}else if(e.key==='End'){e.preventDefault();const lastIndex=navigableItems.length-1;this.focusedIndex=lastIndex;this.focusPaginationItem(lastIndex);}};/**
|
|
1747
|
+
* Handles focus events for pagination items
|
|
1748
|
+
*/this.handleItemFocus=index=>{this.focusedIndex=index;};this.currentPage=undefined;this.lastPage=undefined;this.perPage=10;this.total=0;this.url='';this.mode='default';this.useButtons=true;this.prevLabel='Prev';this.nextLabel='Next';this.prevUrl='';this.nextUrl='';this.links=[];this.focusedIndex=-1;}/** Lifecycle hook to generate pagination links on component load */componentWillLoad(){if(this.mode==='default'){this.generateLinks();}}componentDidLoad(){// Only emit context for links, not buttons
|
|
1749
|
+
if(!this.useButtons){const links=this.hostEl.shadowRoot.querySelectorAll('eds-link');links.forEach(lnk=>{this.emitContext(lnk);});}}/**
|
|
1750
|
+
* Emits a custom event called `parentContext` for a given link element.
|
|
1751
|
+
* This event provides context information about the pagination component.
|
|
1752
|
+
*
|
|
1753
|
+
* @param linkElement - The link element to which the event will be dispatched.
|
|
1754
|
+
*/emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.hostEl.tagName.toLowerCase(),identifier:null}});linkElement.dispatchEvent(event);}onPageOrLastPageChange(){if(this.mode==='default'){this.generateLinks();}}/**
|
|
1755
|
+
* Gets all navigable pagination items for keyboard navigation
|
|
1756
|
+
*/getNavigableItems(){const items=[];// Previous button
|
|
1757
|
+
items.push({type:'prev',disabled:this.isFirstPage()});// Page numbers
|
|
1758
|
+
this.links.forEach(link=>{if(typeof link==='object'){items.push({type:'page',page:parseInt(link.label),disabled:false});}});// Next button
|
|
1759
|
+
items.push({type:'next',disabled:this.isLastPage()});return items.filter(item=>!item.disabled);}/**
|
|
1760
|
+
* Focuses a specific pagination item by index
|
|
1761
|
+
*/focusPaginationItem(index){var _a;const buttons=(_a=this.hostEl.shadowRoot)===null||_a===void 0?void 0:_a.querySelectorAll('.pagination-button');const targetButton=buttons===null||buttons===void 0?void 0:buttons[index];if(targetButton){targetButton.focus();}}/**
|
|
1762
|
+
* Checks if the current page is the first page
|
|
1763
|
+
* @returns {boolean} - true if current page is the first page
|
|
1764
|
+
*/isFirstPage(){return this.currentPage===1;}/**
|
|
1765
|
+
* Checks if the current page is the last page
|
|
1766
|
+
* @returns {boolean} - true if current page is the last page
|
|
1767
|
+
*/isLastPage(){return this.currentPage===this.lastPage;}/**
|
|
1768
|
+
* Generates a pagination link object
|
|
1769
|
+
* @param {number} page - Page number for the link
|
|
1770
|
+
* @returns {Link} - Link object with page details
|
|
1771
|
+
*/generateLink(page){const urlHasQuery=this.url.includes('?');return {ariaLabel:`Go to page ${page}`,url:`${this.url}${urlHasQuery?'&':'?'}page=${page}`,label:page.toString(),current:this.currentPage===page,disabled:false};}/** Generates pagination links based on the last page and current page */generateLinks(){if(this.lastPage&&this.lastPage>5){this.links=this.getPaginationGenerator(this.currentPage||1,this.lastPage).map(page=>typeof page==='number'?this.generateLink(page):page);}else if(this.lastPage){this.links=Array.from({length:this.lastPage}).map((_,i)=>this.generateLink(i+1));}}/**
|
|
1772
|
+
* Creates a pagination range based on delta, current, and total pages
|
|
1773
|
+
* @param {number} current - Current page number
|
|
1774
|
+
* @param {number} total - Total number of pages
|
|
1775
|
+
* @returns {(number | string)[]} - Range of page numbers or ellipses
|
|
1776
|
+
*/getPaginationGenerator(current,total){const delta=1;// Show one page before and one after the current page
|
|
1777
|
+
const range=[];if(total<=5){// If total pages are 5 or less, show all pages
|
|
1778
|
+
for(let i=1;i<=total;i++){range.push(i);}}else {// Always show the first page
|
|
1779
|
+
range.push(1);// Add ellipsis if there's a gap between the first page and the current range start
|
|
1780
|
+
if(current-delta>2){range.push('...');}// Determine range for pages around the current page
|
|
1781
|
+
for(let i=Math.max(2,current-delta);i<=Math.min(total-1,current+delta);i++){range.push(i);}// Add ellipsis if there's a gap between the current range end and the last page
|
|
1782
|
+
if(current+delta<total-1){range.push('...');}// Always show the last page
|
|
1783
|
+
range.push(total);}return range;}/**
|
|
1784
|
+
* Formats the current page results information for display
|
|
1785
|
+
* @returns {string} - Formatted page result information
|
|
1786
|
+
*/pageResults(){if(this.total>0){const start=this.perPage*((this.currentPage||1)-1)+1;const end=Math.min(this.perPage*(this.currentPage||1),this.total);return this.total>this.perPage?`Showing ${start} to ${end} of ${this.total} results`:`Showing ${this.total} result${this.total!==1?'s':''}`;}return '';}/**
|
|
1787
|
+
* Handles a page click event, updating the current page and dispatching an event
|
|
1788
|
+
* @param {MouseEvent} event - Click event
|
|
1789
|
+
* @param {number} newPage - New page number
|
|
1790
|
+
*/handlePageClick(event,newPage){if(this.mode==='navigator'){return;// No page clicking logic for navigator mode
|
|
1791
|
+
}if(this.useButtons){event.preventDefault();// Prevent default for buttons
|
|
1792
|
+
}if(newPage!==this.currentPage){this.links=this.links.map(link=>typeof link==='object'?Object.assign(Object.assign({},link),{current:parseInt(link.label)===newPage}):link);const pageChangeEvent=new CustomEvent('page',{detail:{value:newPage},bubbles:true,composed:true});this.hostEl.dispatchEvent(pageChangeEvent);this.currentPage=newPage;}}render(){const navigableIndex=-1;// Track index for keyboard navigation
|
|
1793
|
+
return h("div",{key:'5c11fd306f0ebf47a452e44d633e18b2e3860d78'},this.total>0&&this.mode==='default'&&h("p",{key:'fe8b7f7b6c7785152f1edd90a750f4a9a7e2768b',class:"f-ui-03 text-light mb-28 w-full text-center","aria-live":"polite",id:"pagination-info"},h("span",{key:'5e2c67535dbf765dc662770164404f0de69315a1',class:"text-light sr-only"},"Results:"),this.pageResults()),this.mode==='navigator'||this.lastPage&&this.lastPage>1?h("nav",{"aria-label":"Pagination Navigation","aria-describedby":this.mode==='default'?'pagination-info':undefined,onKeyDown:this.handleKeyDown},h("ul",{class:"flex items-center justify-center gap-x-8",role:"list"},h("li",{class:"mr-auto"},this.useButtons?h("div",{class:"pagination-button-wrapper",onFocus:()=>this.handleItemFocus(navigableIndex)},h("eds-button",{label:this.prevLabel,disabled:this.mode==='navigator'?!this.prevUrl:this.isFirstPage(),"aria-label":"Go to previous page",icon:"chevron-left","icon-pos":"left",size:"small","icon-small":"true",intent:"ghost","extra-class":"!p-8 lg:!pr-12 pagination-button",onClick:event=>{if(this.mode==='default'&&!this.isFirstPage()){this.handlePageClick(event,(this.currentPage||1)-1);}}})):h("eds-link",{label:this.prevLabel,url:this.mode==='navigator'?this.prevUrl||'#':this.isFirstPage()?'#':this.generateLink(this.currentPage-1).url,disabled:this.mode==='navigator'?!this.prevUrl:this.isFirstPage(),"aria-label":"Go to previous page",icon:"chevron-left","icon-pos":"left",size:"small","icon-small":"true",intent:"strong","hide-label-on-small-screen":true,class:"!p-8 lg:!pr-12"})),this.mode==='default'&&this.links.map((link,index)=>h("li",{key:index,class:"f-ui-02 flex h-36 items-center justify-center"},typeof link==='string'?h("span",{class:"flex items-center justify-center","aria-hidden":"true"},link):this.useButtons?h("div",{class:"pagination-button-wrapper",onFocus:()=>this.handleItemFocus(navigableIndex)},h("eds-button",{label:link.label,"aria-label":link.current?`Current page, page ${link.label}`:`Go to page ${link.label}`,"aria-current":link.current?'page':undefined,size:"small","extra-class":"!p-8 pagination-button",intent:link.current?'brand':'ghost',onClick:event=>this.handlePageClick(event,parseInt(link.label))})):h("eds-link",{url:link.url,"aria-label":link.ariaLabel,label:link.label,current:link.current,"aria-current":link.current?'page':undefined,size:"small",class:"!p-8",intent:link.current?'primary':'secondary',onClick:event=>this.handlePageClick(event,parseInt(link.label))}))),h("li",{class:"ml-auto"},this.useButtons?h("div",{class:"pagination-button-wrapper",onFocus:()=>this.handleItemFocus(navigableIndex)},h("eds-button",{label:this.nextLabel,disabled:this.mode==='navigator'?!this.nextUrl:this.isLastPage(),"aria-label":"Go to next page",size:"small","icon-small":"true",icon:"chevron-right",intent:"ghost","extra-class":"!p-8 lg:!pl-12 pagination-button",onClick:event=>{if(this.mode==='default'&&!this.isLastPage()){this.handlePageClick(event,(this.currentPage||1)+1);}}})):h("eds-link",{label:this.nextLabel,url:this.mode==='navigator'?this.nextUrl||'#':this.isLastPage()?'#':this.generateLink(this.currentPage+1).url,disabled:this.mode==='navigator'?!this.nextUrl:this.isLastPage(),"aria-label":"Go to next page",size:"small","icon-small":"true",icon:"chevron-right",intent:"strong","hide-label-on-small-screen":true,class:"!p-8 lg:!pl-12 flex items-center gap-1 py-4 transition-colors"})))):null);}get hostEl(){return getElement(this);}static get watchers(){return {"currentPage":["onPageOrLastPageChange"],"lastPage":["onPageOrLastPageChange"]};}};EdsPagination.style=EdsPaginationStyle0;const edsProgressBarCss=".w-full{width:100%}.h-full{height:100%}.bg-default{background-color:var(--grey-light)}.rounded-lg{border-radius:16px}.h-24{height:1.5rem}.border{border-width:1px}.border-softer{border:2px solid rgba(0, 0, 0, .1)}.overflow-hidden{overflow:hidden}.bg-accent{background-color:var(--brand-green)}.bg-\\[\\#0034CB\\]{--tw-text-opacity:1;background-color:rgb(0 52 203 / var(--tw-text-opacity))}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-300{transition-duration:300ms}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.text-default{color:var(--brand-black)}.text-inverse{color:var(--white)}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.absolute{position:absolute}.relative{position:relative}.z-0{z-index:0}.z-10{z-index:10}.inset-0{inset:0rem}.pointer-events-none{pointer-events:none}.brand-gradient{background:linear-gradient(90deg, var(--brand-green-dark) 0%, var(--brand-green) 100%)}.brand-glow{box-shadow:0 0 8px rgba(0, 255, 157, 0.5)}.transition-width{transition:width 0.5s cubic-bezier(0.4, 0, 0.2, 1)}.h-10{height:10px}.mb-12{margin-bottom:0.75rem}.bg-inverse{background-color:var(--white)}.bg-grey-light{background-color:var(--grey-light)}.bg-brand-black{background-color:var(--brand-black)}.text-brand-green-dark{color:var(--brand-green-dark)}.justify-start{justify-content:flex-start}.px-48{padding-left:3rem;padding-right:3rem}.pt-16{padding-top:1rem}.pb-12{padding-bottom:0.75rem}.items-center{align-items:center}";const EdsProgressBarStyle0=edsProgressBarCss;const EdsProgressBar=class{constructor(hostRef){registerInstance(this,hostRef);this.value=0;this.showLabel=false;this.variant='default';this.labelPaddingX='3rem';}/**
|
|
1794
|
+
* Method to update the progress value externally.
|
|
1795
|
+
* @param newValue The new progress value (0-100).
|
|
1796
|
+
*/async updateValue(newValue){this.value=Math.min(100,Math.max(0,newValue));// Clamp 0–100
|
|
1797
|
+
}render(){const progressValue=Math.min(100,Math.max(0,this.value));const isBrand=this.variant==='brand';if(isBrand){// Build inline styles for label container with custom padding
|
|
1798
|
+
const labelContainerStyle={paddingLeft:this.labelPaddingX,paddingRight:this.labelPaddingX};// Brand style - minimal container with gradient fill and top-aligned text
|
|
1799
|
+
return h("div",{class:"w-full"},this.showLabel&&h("div",{class:"flex items-center pt-16 pb-12 bg-inverse",style:labelContainerStyle},h("span",{class:"f-ui-03 text-brand-green-dark"},"Progress: ",progressValue,"%")),h("div",{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":progressValue,"aria-valuetext":`${progressValue}%`,class:"w-full h-10 bg-grey-light overflow-hidden relative"},h("div",{class:"h-full brand-gradient brand-glow transition-width",style:{width:`${progressValue}%`}})));}// Default style - original implementation
|
|
1800
|
+
const outerClasses=['outer','w-full','h-24','bg-default','border','border-softer','overflow-hidden','relative'].filter(Boolean).join(' ');const fillClasses=['inner','h-full','transition-all','duration-300','bg-accent','z-0'].filter(Boolean).join(' ');return h("div",{role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":progressValue,"aria-valuetext":`${progressValue}%`,class:outerClasses},h("div",{class:fillClasses,style:{width:`${progressValue}%`}}),h("div",{class:"absolute inset-0 flex items-center justify-center pointer-events-none z-10"},h("span",{class:"text-default f-ui-01"},progressValue,"%")));}};EdsProgressBar.style=EdsProgressBarStyle0;const edsRatingCss=":host{display:inline-block}.block{display:block}.stars{display:flex;gap:0.25rem;cursor:pointer}.star{color:var(--star-empty-color, #ccc);transition:color 0.2s ease-in-out}.star.filled{color:var(--brand-green);}.star:hover,.star.filled:hover{transform:scale(1.2)}.eds-rating__btn{transition:transform 0.15s ease-in-out}.eds-rating__btn.is-selected{transform:scale(1.05)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.mt-4{margin-top:0.25rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}.my-4{margin-top:0.25rem;margin-bottom:0.25rem}.my-8{margin-top:0.5rem;margin-bottom:0.5rem}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.0625rem * var(--tw-space-x-reverse));margin-left:calc(0.0625rem * calc(1 - var(--tw-space-x-reverse)))}";const EdsRatingStyle0=edsRatingCss;const EdsRating=class{constructor(hostRef){registerInstance(this,hostRef);this.rating=createEvent(this,"rating",7);this.buttonRefs=[];this.ratingType='star';this.ratingCount=5;this.selectedRating=0;this.internalRating=0;}/**
|
|
1801
|
+
* Watch for changes to the selectedRating prop and sync internal state.
|
|
1802
|
+
*/handleSelectedRatingChange(newValue){this.internalRating=newValue;}/**
|
|
1803
|
+
* Initialize internal rating from prop on component load.
|
|
1804
|
+
*/componentWillLoad(){this.internalRating=this.selectedRating;}/**
|
|
1805
|
+
* Lifecycle method that runs when the component has fully loaded.
|
|
1806
|
+
* It emits a custom event for each `eds-button` element contained within the breadcrumb.
|
|
1807
|
+
*/componentDidLoad(){const btns=this.el.shadowRoot.querySelectorAll('eds-button');btns.forEach(btn=>{this.emitContext(btn);});}/**
|
|
1808
|
+
* Emits a custom event called `parentContext` for a given link element.
|
|
1809
|
+
* This event provides context information about the breadcrumb component.
|
|
1810
|
+
*
|
|
1811
|
+
* @param btnElement - The link element to which the event will be dispatched.
|
|
1812
|
+
*/emitContext(btnElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:this.internalRating}});btnElement.dispatchEvent(event);}/**
|
|
1813
|
+
* Handles the click event on a star.
|
|
1814
|
+
* @param rating - The selected rating value.
|
|
1815
|
+
*/onSelect(rating){this.internalRating=rating;this.rating.emit(rating);setTimeout(()=>{const btn=this.buttonRefs[rating-1];btn===null||btn===void 0?void 0:btn.focus();},0);}handleKeyNav(e){const{key}=e;if(!['ArrowRight','ArrowLeft','ArrowDown','ArrowUp'].includes(key)){return;}e.preventDefault();const increment=key==='ArrowRight'||key==='ArrowDown'?1:-1;let next=(this.internalRating||1)+increment;if(next>this.ratingCount){next=1;}if(next<1){next=this.ratingCount;}this.onSelect(next);}render(){return h("div",{key:'01857f12c63fbe53b95152902ddba594aa736f6f',id:"rating-buttons",role:"group","aria-labelledby":"rating",class:"stars flex space-x-1 my-8",onKeyDown:e=>this.handleKeyNav(e)},Array.from({length:this.ratingCount},(_,index)=>{const starRating=index+1;const isSelected=starRating<=this.internalRating;// Use the mapping text if available; otherwise, fall back to a generic label.
|
|
1816
|
+
const checked=this.internalRating===starRating;return h("eds-button",{ref:el=>this.buttonRefs[index]=el,icon:this.ratingType,"aria-label":`${starRating} ${this.ratingType}${starRating>1?'s':''}`,onClick:()=>this.onSelect(starRating),tabIndex:checked||this.internalRating===0&&index===0?0:-1,intent:isSelected?'brand':'brandLight',class:isSelected?'eds-rating__btn is-selected':'eds-rating__btn',size:"large"});}));}get el(){return getElement(this);}static get watchers(){return {"selectedRating":["handleSelectedRatingChange"]};}};EdsRating.style=EdsRatingStyle0;const edsSearchSelectCss=":host{display:block;width:100%;font-family:var(--f-ui-02-fontFamily, 'IBM Plex Sans', system-ui, sans-serif)}.eds-ss{position:relative;display:block;width:100%}.eds-ss__labelrow{display:flex;justify-content:space-between;margin-bottom:0.25rem}.eds-ss__hint{margin-top:0.5rem;margin-left:0.5rem;font-family:var(--f-ui-05-fontFamily);font-weight:var(--f-ui-05-fontWeight);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);letter-spacing:var(--f-ui-05-letterSpacing);color:var(--grey-600)}.eds-ss__control{position:relative}.eds-ss__box{display:flex;flex-wrap:wrap;align-items:center;gap:0.35rem;width:100%;box-sizing:border-box;min-height:2.5rem;padding:6px 0.75rem;padding-right:3.75rem;border-width:2px;border-style:solid;border-color:rgba(0, 0, 0, 0.1);border-radius:8px;background:var(--white, #fff);transition-property:color, background-color, border-color;transition-timing-function:cubic-bezier(0, 0, 0.2, 1);transition-duration:300ms}.eds-ss__box:hover{border-color:var(--brand-black)}.eds-ss__box:focus-within{border-color:var(--brand-black);outline:3px solid var(--brand-green);outline-offset:2px}.eds-ss__box.is-error{border-color:var(--red-700)}.eds-ss__box.is-disabled{cursor:not-allowed;background-color:var(--grey-300)}.eds-ss__input{flex:1;min-width:6rem;border:none;outline:none;background:transparent;padding:4px 0;color:var(--brand-black);font-family:var(--f-ui-02-light-fontFamily);font-weight:var(--f-ui-02-light-fontWeight);font-size:var(--f-ui-02-light-fontSize);line-height:var(--f-ui-02-light-lineHeight);letter-spacing:var(--f-ui-02-light-letterSpacing)}.eds-ss__input::placeholder{color:var(--grey-500)}.eds-ss__input:disabled{cursor:not-allowed;color:var(--grey-500)}.eds-ss__chip{display:inline-flex;align-items:center;gap:0.35rem;padding:4px 0.4rem 4px 0.7rem;background:rgba(0, 200, 123, 0.12);color:var(--brand-green-dark, #00A867);border-radius:6px;font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);font-weight:600;line-height:1.4;max-width:100%}.eds-ss__chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eds-ss__chip-x{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--brand-green-dark, #00A867);font-size:1.2rem;line-height:1;padding:0 2px}.eds-ss__chip-x:hover{color:var(--brand-black, #07140D)}.eds-ss__clear,.eds-ss__chevron{position:absolute;top:50%;transform:translateY(-50%)}.eds-ss__chevron{right:6px;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;background-color:var(--grey-300);border-radius:4px;color:var(--brand-black);pointer-events:none}.eds-ss__clear{right:2.6rem;color:var(--grey-600, #6e6e6e);background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1}.eds-ss__clear:hover{color:var(--brand-black, #07140D)}.eds-ss__list{position:absolute;z-index:50;left:0;right:0;margin:0.25rem 0 0;padding:0.25rem;list-style:none;max-height:18rem;overflow-y:auto;background:var(--white, #fff);border:2px solid rgba(0, 0, 0, 0.1);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12)}.eds-ss__option{padding:0.5rem 0.6rem;border-radius:6px;cursor:pointer;color:var(--brand-black, #07140D);font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.eds-ss__option.is-active{background:rgba(0, 200, 123, 0.1)}.eds-ss__option.is-selected{font-weight:600;color:var(--brand-green-dark, #00A867)}.eds-ss__status,.eds-ss__more{padding:0.5rem 0.6rem;font-family:var(--f-ui-05-fontFamily);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);color:var(--grey-600, #6e6e6e)}.eds-ss__status.is-error{color:var(--red-700, #d64545)}.eds-ss__more{border-top:1px solid rgba(0, 0, 0, 0.1);margin-top:0.25rem;font-style:italic}";const EdsSearchSelectStyle0=edsSearchSelectCss;const EdsSearchSelect=class{constructor(hostRef){registerInstance(this,hostRef);this.edsinput=createEvent(this,"edsinput",7);this.edschange=createEvent(this,"edschange",7);this.debounceTimer=null;this.inlineOptions=[];this.listboxId=`eds-ss-list-${Math.round(performance.now())}`;// value -> label, so selected tags render readable labels even for remote
|
|
1817
|
+
// values whose label hasn't been fetched in the current page.
|
|
1818
|
+
this.labelCache={};this.onInput=e=>{this.query=e.target.value;this.open=true;this.activeIndex=-1;this.runSearch(this.query);};this.clear=()=>{if(this.multiple){this.value=[];this.emitValue([]);}else {this.value=undefined;this.selectedLabel='';this.emitValue('');}this.query='';};this.onKeyDown=e=>{if(e.key==='ArrowDown'){e.preventDefault();if(!this.open)return this.openMenu();this.activeIndex=Math.min(this.activeIndex+1,this.visibleItems.length-1);}else if(e.key==='ArrowUp'){e.preventDefault();this.activeIndex=Math.max(this.activeIndex-1,0);}else if(e.key==='Enter'){if(this.open&&this.activeIndex>=0){e.preventDefault();this.select(this.visibleItems[this.activeIndex]);}}else if(e.key==='Escape'){this.closeMenu();}else if(e.key==='Backspace'&&this.multiple&&!this.query&&this.selectedValues.length){// Backspace on an empty query removes the last selected tag.
|
|
1819
|
+
this.removeValue(this.selectedValues[this.selectedValues.length-1]);}};// Close when a click lands outside the component. Must be shadow-aware:
|
|
1820
|
+
// this component is nested inside eds-form's shadow root, so a document-level
|
|
1821
|
+
// listener sees the event retargeted to the OUTER host — `host.contains(target)`
|
|
1822
|
+
// would be false even for our own clicks and wrongly close on open. composedPath()
|
|
1823
|
+
// walks through every shadow boundary and contains our host iff the click was ours.
|
|
1824
|
+
this.onDocumentClick=e=>{if(this.open&&!e.composedPath().includes(this.host))this.closeMenu();};this.name=undefined;this.label=undefined;this.placeholder='Search…';this.required=false;this.disabled=false;this.hint=undefined;this.message=undefined;this.error=false;this.errorMessage=undefined;this.value=undefined;this.multiple=false;this.options=undefined;this.source=undefined;this.apiBase='/api/v1';this.searchParam='q';this.limit=50;this.debounceMs=250;this.maxVisible=100;this.open=false;this.query='';this.loading=false;this.fetchError='';this.items=[];this.total=0;this.activeIndex=-1;this.selectedLabel='';}componentWillLoad(){this.parseInlineOptions();this.resolveSelectedLabel();}onOptionsChange(){this.parseInlineOptions();this.resolveSelectedLabel();}onValueChange(){this.resolveSelectedLabel();}parseInlineOptions(){if(!this.options){this.inlineOptions=[];return;}if(typeof this.options==='string'){try{this.inlineOptions=JSON.parse(this.options)||[];}catch(_a){this.inlineOptions=[];}}else {this.inlineOptions=this.options;}this.cacheLabels(this.inlineOptions);}cacheLabels(opts){(opts||[]).forEach(o=>{if(o&&o.value!=null)this.labelCache[String(o.value)]=o.label;});}/** The current selection as a value array (works for single + multi). */get selectedValues(){const v=this.value;if(Array.isArray(v))return v.map(String).filter(s=>s!=='');if(typeof v==='string'&&v!==''){return this.multiple?v.split(',').filter(Boolean):[v];}return [];}labelFor(val){var _a,_b;return this.labelCache[String(val)]||((_a=this.inlineOptions.find(o=>String(o.value)===String(val)))===null||_a===void 0?void 0:_a.label)||((_b=this.items.find(o=>String(o.value)===String(val)))===null||_b===void 0?void 0:_b.label)||String(val);}emitValue(v){this.edsinput.emit({value:v});this.edschange.emit({value:v});}get isRemote(){return !!this.source&&this.inlineOptions.length===0;}resolveSelectedLabel(){if(!this.value){this.selectedLabel='';return;}// Inline: resolve label from the known list. Remote: best-effort — show the
|
|
1825
|
+
// value until/unless it appears in a fetched page.
|
|
1826
|
+
const pool=this.inlineOptions.length?this.inlineOptions:this.items;const found=pool.find(o=>String(o.value)===String(this.value));this.selectedLabel=found?found.label:String(this.value);}// --- Data --------------------------------------------------------------
|
|
1827
|
+
filterInline(q){const needle=q.trim().toLowerCase();if(!needle)return this.inlineOptions;return this.inlineOptions.filter(o=>o.label.toLowerCase().includes(needle)||String(o.value).toLowerCase().includes(needle));}async fetchRemote(q){this.loading=true;this.fetchError='';try{const params=new URLSearchParams({[this.searchParam]:q,limit:String(this.limit)});const url=`${this.apiBase}/datasets/${encodeURIComponent(this.source)}/search?${params}`;const resp=await fetch(url);if(!resp.ok)throw new Error(`Search failed: ${resp.statusText}`);const data=await resp.json();this.items=data.items||[];this.cacheLabels(this.items);this.total=typeof data.total==='number'?data.total:this.items.length;this.resolveSelectedLabel();}catch(e){this.fetchError=e instanceof Error?e.message:'Search failed';this.items=[];this.total=0;}finally{this.loading=false;}}runSearch(q,immediate=false){if(this.isRemote){// Show the loading state synchronously so the debounce window renders
|
|
1828
|
+
// "Searching…" rather than a misleading "No matches" before the fetch.
|
|
1829
|
+
this.loading=true;clearTimeout(this.debounceTimer);if(immediate){this.fetchRemote(q);}else {this.debounceTimer=setTimeout(()=>this.fetchRemote(q),this.debounceMs);}}else {this.items=this.filterInline(q);this.total=this.items.length;}}// --- The capped, render-ready slice ------------------------------------
|
|
1830
|
+
get visibleItems(){return this.items.slice(0,this.maxVisible);}get hiddenCount(){return Math.max(0,this.total-this.visibleItems.length);}// --- Interaction -------------------------------------------------------
|
|
1831
|
+
openMenu(){if(this.disabled)return;this.open=true;this.activeIndex=-1;// Populate on first open (initial page for remote, full list for inline).
|
|
1832
|
+
// Immediate fetch on open — debounce only applies to typing.
|
|
1833
|
+
if(!this.items.length||this.isRemote)this.runSearch(this.query,true);}closeMenu(){this.open=false;this.activeIndex=-1;}select(opt){this.labelCache[String(opt.value)]=opt.label;if(this.multiple){const current=this.selectedValues;const key=String(opt.value);const next=current.includes(key)?current.filter(v=>v!==key)// toggle off if already chosen
|
|
1834
|
+
:[...current,key];this.value=next;this.query='';this.emitValue(next);// Keep the menu open so more can be picked; reset the list to all results.
|
|
1835
|
+
this.runSearch('',true);return;}this.value=opt.value;this.selectedLabel=opt.label;this.query='';this.closeMenu();this.emitValue(opt.value);}removeValue(val,e){e===null||e===void 0?void 0:e.stopPropagation();const next=this.selectedValues.filter(v=>v!==String(val));this.value=next;this.emitValue(next);}connectedCallback(){document.addEventListener('click',this.onDocumentClick,true);}disconnectedCallback(){document.removeEventListener('click',this.onDocumentClick,true);clearTimeout(this.debounceTimer);}render(){const selected=this.selectedValues;const hasSelection=selected.length>0;const inputValue=this.multiple?this.query:this.open?this.query:this.selectedLabel;const placeholder=this.multiple?hasSelection?'':this.placeholder:hasSelection&&!this.open?this.selectedLabel:this.placeholder;return h("div",{key:'f5224332aa395be2a9dd8a1312dcd1b631ad2129',class:"eds-ss"},(this.label||this.hint)&&h("div",{key:'e28da19abdedb4107a7b7be2a59e6444780f8251',class:"eds-ss__labelrow"},this.label&&h("eds-input-label",{key:'81933dbc2d370b8ddbbf8f4286c3420e4f140ca7',name:`${this.name}-input`,label:this.label,required:this.required,disabled:this.disabled}),this.hint&&h("p",{key:'1ff5b7a62cc20bb2ce710ca2e06c728d94aef895',id:`${this.name}-hint`,class:"eds-ss__hint"},this.hint)),h("div",{key:'84fbdccc6326707ac854e06d7209dd149d9c26a7',class:"eds-ss__control relative"},h("div",{key:'ae99c3d9c706fa6619459d8d6c9baa3df610169e',class:{'eds-ss__box':true,'is-error':this.error||!!this.fetchError,'is-disabled':this.disabled}},this.multiple&&selected.map(v=>h("span",{class:"eds-ss__chip",key:v},h("span",{class:"eds-ss__chip-label"},this.labelFor(v)),!this.disabled&&h("button",{type:"button",class:"eds-ss__chip-x","aria-label":`Remove ${this.labelFor(v)}`,onMouseDown:e=>{e.preventDefault();this.removeValue(v,e);}},"\u00D7"))),h("input",{key:'18dcd5787c7636c09be7285fb85b77f5cae334c8',id:`${this.name}-input`,class:"eds-ss__input",type:"text",role:"combobox",autocomplete:"off","aria-expanded":this.open?'true':'false',"aria-controls":this.listboxId,"aria-autocomplete":"list",placeholder:placeholder,value:inputValue,disabled:this.disabled,required:this.required&&!hasSelection,onFocus:()=>this.openMenu(),onInput:this.onInput,onKeyDown:this.onKeyDown})),!this.multiple&&hasSelection&&!this.disabled&&h("button",{key:'c927fa49fb58b7abec13f6d436f1d1452f9644c5',type:"button",class:"eds-ss__clear","aria-label":"Clear selection",onClick:this.clear},"\u00D7"),h("span",{key:'bff4bf41fb388f849ef9c0928f4aa88e065d718d',class:"eds-ss__chevron","aria-hidden":"true"},h("eds-icon-wrapper",{key:'7871955d6fc5626914995d51c1b4b3511b60febe',name:"chevron-right",size:20}))),this.open&&h("ul",{key:'e529fe82576be45a0e99d4a020aa4f721b71686b',class:"eds-ss__list",id:this.listboxId,role:"listbox"},this.loading&&h("li",{key:'fe8d73dfa0d6a5cf7e9bea4220511a22489884f8',class:"eds-ss__status"},"Searching\u2026"),!this.loading&&this.fetchError&&h("li",{key:'b708b1de4eee8e45287fd23f0bf63327032616d6',class:"eds-ss__status is-error"},this.fetchError),!this.loading&&!this.fetchError&&this.visibleItems.length===0&&h("li",{key:'9400ac7a022f38935f05df3705e2a65acb9d4a04',class:"eds-ss__status"},"No matches"),!this.loading&&!this.fetchError&&this.visibleItems.map((opt,i)=>h("li",{key:opt.value,class:{'eds-ss__option':true,'is-active':i===this.activeIndex,'is-selected':selected.includes(String(opt.value))},role:"option","aria-selected":selected.includes(String(opt.value))?'true':'false',onMouseEnter:()=>this.activeIndex=i,onMouseDown:e=>{e.preventDefault();this.select(opt);}},opt.label)),!this.loading&&!this.fetchError&&this.hiddenCount>0&&h("li",{key:'8e82d65e9da3755ad10ffaf0fc4a45f5bc365a48',class:"eds-ss__more"},"+",this.hiddenCount," more \u2014 keep typing to narrow")),h("eds-input-footer",{key:'0564f006a874a3556118ce99441cbfabc230ac57',name:this.name,message:this.message,error:this.error,"error-message":this.errorMessage}));}get host(){return getElement(this);}static get watchers(){return {"options":["onOptionsChange"],"value":["onValueChange"]};}};EdsSearchSelect.style=EdsSearchSelectStyle0;const edsSidebarCss=":host{display:block;width:100%;height:100%;overflow-y:auto;overflow-x:hidden;transition:width 0.3s ease}:host(.collapsed){width:4rem}:host::-webkit-scrollbar{width:8px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:rgba(0, 0, 0, 0.2);border-radius:4px}:host::-webkit-scrollbar-thumb:hover{background:rgba(0, 0, 0, 0.3)}.sidebar-nav{padding:0.5rem 0}.sidebar-header{display:flex;justify-content:flex-end;padding:0.5rem 0.75rem;margin-bottom:0.5rem}:host(.collapsed) .sidebar-header{justify-content:center;padding:0.5rem}.collapse-toggle{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:none;cursor:pointer;padding:0;border-radius:0.375rem;transition:background-color 0.15s ease;color:inherit}.collapse-toggle:hover{background-color:rgba(0, 0, 0, 0.08)}.collapse-toggle:focus-visible{outline:2px solid var(--eds-focus-color, #0066cc);outline-offset:2px}.sidebar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.125rem}.sidebar-item{display:flex;flex-direction:column}.sidebar-item-content{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;cursor:pointer;user-select:none;word-break:break-word;transition:background-color 0.15s ease;border-radius:0.375rem;margin:0 0.5rem;position:relative}:host(.collapsed) .sidebar-item-content{justify-content:center;padding:0.75rem;margin:0 0.5rem}.sidebar-item-content:hover{background-color:rgba(0, 0, 0, 0.04)}.sidebar-item-content:focus-visible{outline:2px solid var(--eds-focus-color, #0066cc);outline-offset:-2px;z-index:1}.sidebar-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem}.sidebar-content-wrapper{display:flex;align-items:center;gap:0.5rem;flex:1;min-width:0}.sidebar-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;padding:0;margin:-0.125rem 0;pointer-events:none}.sidebar-link-wrapper{flex:1;min-width:0;pointer-events:none}.sidebar-link{font-weight:400;pointer-events:none}.sidebar-children{list-style:none;margin:0.25rem 0 0 0;padding:0;display:flex;flex-direction:column;gap:0.125rem;overflow:hidden;animation:slideDown 0.2s ease}@keyframes slideDown{from{opacity:0;transform:translateY(-0.25rem)}to{opacity:1;transform:translateY(0)}}.sidebar-item.level-0 .sidebar-item-content{padding-left:0.75rem}:host(.collapsed) .sidebar-item.level-0 .sidebar-item-content{padding-left:0.75rem}.sidebar-item.level-1 .sidebar-item-content{padding-left:2rem}.sidebar-item.level-2 .sidebar-item-content{padding-left:3.25rem}.sidebar-item.level-3 .sidebar-item-content{padding-left:4.5rem}.sidebar-item.level-4 .sidebar-item-content{padding-left:5.75rem}.sidebar-item.level-5 .sidebar-item-content{padding-left:7rem}:host(.theme-default) .sidebar-item-content{border-radius:0.375rem;margin:0 0.5rem;padding:0.5rem 0.75rem}:host(.theme-default.collapsed) .sidebar-item-content{margin:0 0.5rem;border-radius:0.375rem}:host(.theme-default) .sidebar-item-content:hover{background-color:rgba(0, 0, 0, 0.04)}:host(.theme-default) .sidebar-item.active>.sidebar-item-content{background-color:transparent}:host(.theme-default) .sidebar-item.active>.sidebar-item-content .sidebar-link{font-weight:600}:host(.theme-default) .sidebar-item.level-0 .sidebar-item-content{padding-left:0.75rem}:host(.theme-default) .sidebar-item.level-1 .sidebar-item-content{padding-left:2rem}:host(.theme-default) .sidebar-item.level-2 .sidebar-item-content{padding-left:3.25rem}:host(.theme-default) .sidebar-item.level-3 .sidebar-item-content{padding-left:4.5rem}:host(.theme-default) .sidebar-item.level-4 .sidebar-item-content{padding-left:5.75rem}:host(.theme-minimal) .sidebar-item-content{border-radius:0;margin:0;padding-left:1rem;padding-right:1rem}:host(.theme-minimal.collapsed) .sidebar-item-content{margin:0 0.25rem;border-radius:0.375rem}:host(.theme-minimal) .sidebar-item-content:hover{background-color:rgba(0, 255, 157, 0.05);color:var(--brand-black, #07140D)}:host(.theme-minimal) .sidebar-item.active>.sidebar-item-content{background-color:rgba(0, 255, 157, 0.1);border-left:3px solid var(--brand-green-dark, #00C87B);padding-left:calc(1rem - 3px);color:var(--brand-black, #07140D);font-weight:500}:host(.theme-minimal.collapsed) .sidebar-item.active>.sidebar-item-content{border-left:none;border-radius:0.375rem;padding-left:0.75rem;background-color:rgba(0, 255, 157, 0.1);color:var(--brand-black, #07140D)}:host(.theme-minimal) .sidebar-item.level-1.active>.sidebar-item-content{padding-left:calc(2rem - 3px)}:host(.theme-minimal) .sidebar-item.level-2.active>.sidebar-item-content{padding-left:calc(3.25rem - 3px)}:host(.theme-minimal) .sidebar-item.level-3.active>.sidebar-item-content{padding-left:calc(4.5rem - 3px)}:host(.theme-minimal) .sidebar-item.level-4.active>.sidebar-item-content{padding-left:calc(5.75rem - 3px)}:host(.theme-minimal) .sidebar-item.level-0 .sidebar-item-content{padding-left:1rem}:host(.theme-minimal) .sidebar-item.level-1 .sidebar-item-content{padding-left:2rem}:host(.theme-minimal) .sidebar-item.level-2 .sidebar-item-content{padding-left:3.25rem}:host(.theme-minimal) .sidebar-item.level-3 .sidebar-item-content{padding-left:4.5rem}:host(.theme-minimal) .sidebar-item.level-4 .sidebar-item-content{padding-left:5.75rem}:host(.theme-minimal) .sidebar-children{position:relative}:host(.theme-ebrains) .sidebar-item-content{padding:0.5rem 1rem;border-radius:0.5rem;margin:0 0.5rem}:host(.theme-ebrains.collapsed) .sidebar-item-content{padding:0.75rem}:host(.theme-ebrains) .sidebar-item-content:hover{background-color:rgba(0, 0, 0, 0.05)}:host(.theme-ebrains) .sidebar-item.active>.sidebar-item-content{background-color:var(--brand-green-dark, #22c55e);color:white}:host(.theme-ebrains) .sidebar-item.active>.sidebar-item-content .sidebar-link{--eds-link-color:white;--eds-link-hover-color:white}:host(.theme-ebrains) .sidebar-item.active>.sidebar-item-content .sidebar-toggle{color:white}:host(.theme-ebrains) .sidebar-item.active>.sidebar-item-content .sidebar-icon{color:white}:host(.theme-ebrains) .sidebar-item.level-0 .sidebar-item-content{padding-left:1rem}:host(.theme-ebrains) .sidebar-item.level-1 .sidebar-item-content{padding-left:2.25rem}:host(.theme-ebrains) .sidebar-item.level-2 .sidebar-item-content{padding-left:3.5rem}:host(.theme-ebrains) .sidebar-item.level-3 .sidebar-item-content{padding-left:4.75rem}:host(.theme-ebrains) .sidebar-item.level-4 .sidebar-item-content{padding-left:6rem}@media (prefers-color-scheme: dark){.collapse-toggle:hover{background-color:rgba(255, 255, 255, 0.08)}:host(.theme-default) .sidebar-item-content:hover{background-color:rgba(255, 255, 255, 0.05)}:host(.theme-default) .sidebar-item.active>.sidebar-item-content{background-color:rgba(0, 102, 204, 0.15)}:host(.theme-minimal) .sidebar-item-content:hover{background-color:rgba(255, 255, 255, 0.06)}:host::-webkit-scrollbar-thumb{background:rgba(255, 255, 255, 0.2)}:host::-webkit-scrollbar-thumb:hover{background:rgba(255, 255, 255, 0.3)}}.sidebar-toggle eds-icon-wrapper,.sidebar-icon eds-icon-wrapper,.collapse-toggle eds-icon-wrapper{transition:transform 0.15s ease;display:flex;align-items:center;justify-content:center}.sidebar-item-content:focus-visible .sidebar-link{text-decoration:underline}.sidebar-item.active>.sidebar-item-content .sidebar-link{font-weight:500}:host(.collapsed) .sidebar-item-content::after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:0.5rem;padding:0.5rem 0.75rem;background:rgba(0, 0, 0, 0.9);color:white;border-radius:0.375rem;white-space:nowrap;font-size:0.875rem;opacity:0;pointer-events:none;transition:opacity 0.2s ease;z-index:1000}:host(.collapsed) .sidebar-item-content:hover::after{opacity:1;transition-delay:0.3s}.-ml-4{margin-left:-0.25rem}.mt-2{margin-top:0.125rem}";const EdsSidebarStyle0=edsSidebarCss;const EdsSidebar=class{constructor(hostRef){registerInstance(this,hostRef);this.sidebar=createEvent(this,"sidebar",7);this.toggleItem=(itemId,ev)=>{if(ev){ev.stopPropagation();}const newOpen=new Set(this.openItems);if(newOpen.has(itemId)){newOpen.delete(itemId);}else {newOpen.add(itemId);}this.openItems=newOpen;};this.navigate=(url,ev)=>{if(!this.enableRouting||!url){return;}if(ev){ev.preventDefault();ev.stopPropagation();}// Emit custom event for routing
|
|
1836
|
+
this.sidebar.emit(url);// Update browser history if available
|
|
1837
|
+
if(typeof window!=='undefined'&&window.history){window.history.pushState({},'',url);}};this.handleItemClick=(item,ev)=>{var _a;// If item has children, ONLY toggle (don't navigate)
|
|
1838
|
+
if((_a=item.children)===null||_a===void 0?void 0:_a.length){this.toggleItem(item.id,ev);return;}// Only navigate if no children and has URL
|
|
1839
|
+
if(item.url){this.navigate(item.url,ev);}};this.items='[]';this.theme='default';this.activeUrl='';this.enableRouting=true;this.maxLevel=4;this.openItems=new Set();this.parsedItems=[];}// ---------------------------------------------------------------------------
|
|
1840
|
+
// Lifecycle
|
|
1841
|
+
// ---------------------------------------------------------------------------
|
|
1842
|
+
componentWillLoad(){this.parsedItems=this.parseItems(this.items);this.initializeOpenItems(this.parsedItems);}// ---------------------------------------------------------------------------
|
|
1843
|
+
// Watchers
|
|
1844
|
+
// ---------------------------------------------------------------------------
|
|
1845
|
+
handleItemsChange(newItems){this.parsedItems=this.parseItems(newItems);this.initializeOpenItems(this.parsedItems);}handleActiveUrlChange(){this.initializeOpenItems(this.parsedItems);}// ---------------------------------------------------------------------------
|
|
1846
|
+
// Utils
|
|
1847
|
+
// ---------------------------------------------------------------------------
|
|
1848
|
+
parseItems(items){if(Array.isArray(items)){return items;}if(typeof items==='string'){if(!items||items.trim()===''){return [];}try{const parsed=JSON.parse(items);return Array.isArray(parsed)?parsed:[];}catch(e){console.error('eds-sidebar: Failed to parse items JSON:',e);console.error('Received string:',items);return [];}}return [];}initializeOpenItems(items,level=0){if(level===0){// reset before recomputing
|
|
1849
|
+
this.openItems=new Set();}if(level>=this.maxLevel){return;}items.forEach(item=>{var _a;const isActive=this.activeUrl&&item.url===this.activeUrl;const hasActiveChild=this.hasActiveDescendant(item);if(item.open||isActive||hasActiveChild){this.openItems.add(item.id);}if((_a=item.children)===null||_a===void 0?void 0:_a.length){this.initializeOpenItems(item.children,level+1);}});}hasActiveDescendant(item){var _a;if(item.url===this.activeUrl){return true;}if(!((_a=item.children)===null||_a===void 0?void 0:_a.length)){return false;}return item.children.some(child=>this.hasActiveDescendant(child));}// ---------------------------------------------------------------------------
|
|
1850
|
+
// Render
|
|
1851
|
+
// ---------------------------------------------------------------------------
|
|
1852
|
+
renderItem(item,level=0){if(level>=this.maxLevel){return null;}const isOpen=this.openItems.has(item.id);const isActive=!!item.url&&this.activeUrl===item.url;const hasChildren=!!(item.children&&item.children.length);const itemId=`eds-sidebar-${item.id}`;const childrenId=`${itemId}-children`;return h("li",{class:{'sidebar-item':true,open:isOpen,active:isActive,'has-children':hasChildren,[`level-${level}`]:true}},h("div",{class:"sidebar-item-content",onClick:e=>this.handleItemClick(item,e),role:hasChildren?'button':item.url?'link':'button',tabindex:"0","aria-current":isActive?'page':undefined,"aria-expanded":hasChildren?isOpen?'true':'false':undefined,"aria-controls":hasChildren?childrenId:undefined,onKeyDown:e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleItemClick(item,e);}}},hasChildren&&h("span",{class:"sidebar-toggle -ml-4","aria-hidden":"true"},h("eds-icon-wrapper",{name:isOpen?'chevron-down':'chevron-right'})),h("span",{class:"sidebar-link-wrapper"},h("eds-link",{label:item.title,url:item.url||'#',intent:isActive?'strong':'weak',size:"small","aria-label":item.title,"extra-class":"sidebar-link",tabindex:"-1"}))),hasChildren&&isOpen&&h("ul",{id:childrenId,class:"sidebar-children"},item.children.map(child=>this.renderItem(child,level+1))));}render(){return h(Host,{key:'f5221c19e8148ca62a76fb470a4aa6786c3e41b5',class:{'eds-sidebar':true,[`theme-${this.theme}`]:true}},h("nav",{key:'0a975a10a3892f6eabaf2a1c2be21963f0e76549',class:"sidebar-nav","aria-label":"Sidebar"},h("ul",{key:'498436fa1f4ec7ff2f3feea843fe58b415d20a3f',class:"sidebar-list"},this.parsedItems.map(item=>this.renderItem(item,0)))));}get el(){return getElement(this);}static get watchers(){return {"items":["handleItemsChange"],"activeUrl":["handleActiveUrlChange"]};}};EdsSidebar.style=EdsSidebarStyle0;const edsSocialNetworksCss="blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.mt-12{margin-top:0.75rem}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.gap-4{gap:0.25rem}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.effect-focus{outline-width:3px;outline-offset:2px;outline-color:var(--green-500)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.text-inverse{color:var(--white)}.hover\\:text-default:hover{color:var(--black)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.rounded-sm{border-radius:8px}";const EdsSocialNetworksStyle0=edsSocialNetworksCss;const EdsSocialNetworks=class{constructor(hostRef){registerInstance(this,hostRef);/**
|
|
1853
|
+
* Array of social network objects, each containing label, URL, and icon.
|
|
1854
|
+
* These are used to render the social network links.
|
|
1855
|
+
*
|
|
1856
|
+
* @private
|
|
1857
|
+
* @type {SocialNetworks[]}
|
|
1858
|
+
*/this.socialNetworks=[{label:'Twitter',url:'https://twitter.com/ebrains_eu',icon:'twitter'},{label:'Linkedin',url:'https://www.linkedin.com/company/ebrains-eu/about/',icon:'linkedin'},{label:'Facebook',url:'https://www.facebook.com/people/Ebrains_eu/100046659909324/',icon:'facebook'},{label:'Youtube',url:'https://www.youtube.com/channel/UC6E796cVVR5Xrs2A5jJmleQ',icon:'youtube'},{label:'Mastodon',url:'https://mastodon.social/@ebrains',icon:'mastodon'},{label:'Bluesky',url:'https://bsky.app/profile/ebrains.bsky.social',icon:'bluesky'}];this.heading='Follow EBRAINS to keep up-to-date';this.variant='default';}/**
|
|
1859
|
+
* Renders the component's HTML structure with links to EBRAINS social profiles.
|
|
1860
|
+
* Each social network link uses the `eds-link` component with specific classes and styles.
|
|
1861
|
+
*/render(){const isInverse=this.variant==='inverse';const textClass=isInverse?'text-inverse':'';const linkIntent=isInverse?'inverse':'strong';return h("nav",{key:'924bdf5a32b65cd0968ad92461cb8203f3305fce',"aria-label":"Social media"},h("p",{key:'f406d71ed2d7ff9048e5db05f5ad62566081aa45',class:`f-ui-02 ${textClass}`},this.heading),h("ul",{key:'40d000bc78780d7ec3c0c9bf2e10ec0a26f3b72e',class:"mt-12 flex gap-4"},this.socialNetworks.map((network,index)=>h("li",{key:index},h("eds-link",{external:true,"aria-label":`EBRAINS on ${network.label}`,url:network.url,icon:network.icon,intent:linkIntent})))));}};EdsSocialNetworks.style=EdsSocialNetworksStyle0;const edsSpinnerCss=":host{display:block}.spinner{box-sizing:border-box;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}";const EdsSpinnerStyle0=edsSpinnerCss;const EdsSpinner=class{constructor(hostRef){registerInstance(this,hostRef);this.size='md';this.variant='secondary';this.message=undefined;this.background='var(--grey-light)';this.fullscreen=false;}get spinnerSize(){switch(this.size){case'xs':return '1rem';case'sm':return '4rem';case'lg':return '8rem';case'xl':return '10rem';case'md':default:return '6rem';}}get spinnerThickness(){switch(this.size){case'xs':return '4px';case'sm':return '8px';case'lg':return '16px';case'xl':return '20px';case'md':default:return '12px';}}render(){// derive colors from variant
|
|
1862
|
+
const borderColor=this.variant==='primary'?'var(--brand-black)':'var(--grey-dark)';const bottomColor=this.variant==='primary'?'var(--brand-green)':'var(--brand-black)';const spinnerStyle=Object.assign({width:this.spinnerSize,height:this.spinnerSize,border:`${this.spinnerThickness} solid ${borderColor}`,borderBottomColor:bottomColor},!this.fullscreen&&{display:'inline-block'});// Overlay style: use fixed positioning for fullscreen,
|
|
1863
|
+
// and absolute positioning for inline mode.
|
|
1864
|
+
const overlayStyle=this.fullscreen?{position:'fixed',top:'0',left:'0',width:'100vw',height:'100vh',zIndex:'9999999',backgroundColor:this.background,display:'flex',flexDirection:'column',alignItems:'center',justifyContent:'center'}:{position:'absolute',top:'0',left:'0',width:'100%',height:'100%',//zIndex: '1000',
|
|
1865
|
+
backgroundColor:this.background,display:'flex',flexDirection:'column',alignItems:'center',justifyContent:'center'};return h(Host,{key:'c09fa07856848a03aab44bbb56ecdd66a986bb40'},h("div",{key:'544c653e9e0457d2063eaefc5ff1fe88de89f14e',class:"spinner-overlay",style:overlayStyle},h("span",{key:'e389aa572863a265c9aa68d587ad744f1c8db0a7',class:"spinner",style:spinnerStyle}),this.message&&h("p",{key:'5e554fe1b870e673c5b3da3ec2a227e92dd9863d',class:"f-ui-01"},this.message)));}};EdsSpinner.style=EdsSpinnerStyle0;const edsStepsCss="blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}.steps{position:sticky;margin-left:16px;border-left:1px solid var(--soft-color, #ddd);padding-left:23px;counter-reset:step}.steps h3{counter-increment:step;font-size:var(--f-heading-05-fontSize);font-weight:var(--f-heading-05-fontWeight);line-height:var(--f-heading-05-lineHeight);position:relative}.steps h3::before{content:counter(step);position:absolute;left:-40px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:1rem;border:1px solid #ccc;background:var(--grey-900);color:#fff;border-radius:50%}.steps h4,.steps h5{counter-increment:step;font-size:var(--f-heading-06-fontSize);font-weight:var(--f-heading-06-fontWeight);line-height:var(--f-heading-06-lineHeight);position:relative}.steps h4::before,.steps h5::before{content:counter(step);position:absolute;left:-40px;top:-2px;display:flex;align-items:center;justify-content:center;width:31px;height:31px;font-size:0.875rem;border:1px solid #ccc;background:#333;color:#fff;border-radius:50%}.steps blockquote{margin-top:16px;margin-bottom:16px;font-style:italic;color:#aaa;padding-left:6px}.steps-img-placeholder{width:100%;height:200px;background:linear-gradient(to bottom, #9CE142, #00C959, #00A595);}.bg-\\[\\#00A595\\]{--tw-bg-opacity:1;background-color:rgb(0 165 149 / var(--tw-bg-opacity))}.relative{position:relative}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:var(--f-heading-04-fontWeight);font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.text-center{text-align:center}.text-default{color:var(--brand-black)}.text-inverse{color:var(--white)}.text-light{color:var(--grey-light)}.text-lighter{color:var(--grey-dark)}.w-full{width:100%}.h-52{height:3.25rem}.h-96{height:6rem}.h-\\[200px\\]{height:200px}.justify-between{justify-content:space-between}.mt-16{margin-top:1rem}.mt-32{margin-top:2rem}.mt-64{margin-top:4rem}.my-16{margin-top:1rem;margin-bottom:1rem}.mb-12{margin-bottom:0.75rem}.mb-16{margin-bottom:1rem}.last\\:mb-0:last-child{margin-bottom:0rem}.last\\:mt-16:last-child{margin-top:1rem}.border-softer{border:2px solid rgba(0, 0, 0, .1)}.relative{position:relative}.flex{display:flex}.inline-flex{display:inline-flex}.grow{flex-grow:1}.rounded{border-radius:0.25rem}.rounded-lg{border-radius:16px}.rounded-t-lg{border-top-left-radius:16px;border-top-right-radius:16px}.border-2{border-width:2px}.p-8{padding:0.5rem}.p-24{padding:1.5rem}.bg-default{background-color:var(--grey-light)}.bg-inverse{background-color:var(--white)}.top-2{top:0.125rem}.bottom-2{bottom:0.125rem}.left-2{left:0.125rem}.right-2{right:0.125rem}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.overflow-hidden{overflow:hidden}.space-y-8{--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse))}.space-y-16{--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.ml-8{margin-left:0.5rem}.gap-y-16{row-gap:1rem}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.flex{display:flex}.grid{display:grid}.hidden{display:none}.block{display:block}.items-center{align-items:center}.px-8{padding-left:0.5rem;padding-right:0.5rem}.pb-20{padding-bottom:1.25rem}.eds-steps__title[role=\"button\"]{cursor:pointer}.eds-steps__title.is-disabled{cursor:not-allowed;color:rgba(0, 0, 0, 0.5);}.eds-steps__title.is-disabled::before{opacity:1;filter:none}.steps--horizontal{display:flex;flex-direction:column;gap:2rem}.horizontal-indicators{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0}.horizontal-step{display:flex;flex-direction:column;align-items:center;gap:0.5rem;cursor:pointer;flex:1;position:relative}.horizontal-step:not(:last-child)::after{content:'';position:absolute;top:1.25rem;left:50%;width:100%;height:2px;background-color:#e0e0e0;z-index:-1}.horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green-dark);}.step-indicator{width:2.5rem;height:2.5rem;border-radius:50%;border:2px solid #e0e0e0;display:flex;align-items:center;justify-content:center;background-color:white;transition:all 0.3s ease}.horizontal-step.is-active .step-indicator{border-color:var(--brand-green-dark);background-color:var(--brand-green-dark);color:var(--white)}.horizontal-step.is-completed .step-indicator{border-color:var(--brand-green-dark);background-color:var(--white)}.horizontal-step.is-disabled{opacity:0.5;cursor:not-allowed}.step-number{font-weight:600;font-size:0.875rem}.step-label{font-size:0.875rem;text-align:center;font-weight:500}.horizontal-step.is-active .step-label{color:var(--brand-green-dark)}.step-content{padding:0.5rem 0;margin-left:calc((100% / var(--step-count, 1)) * 0.20 - 1.25rem);margin-right:calc((100% / var(--step-count, 1)) * 0.20 - 1.25rem)}@media (min-width: 700px){.step-content{padding:1.5rem 0;margin-left:calc((100% / var(--step-count, 1)) * 0.45 - 1.25rem);margin-right:calc((100% / var(--step-count, 1)) * 0.45 - 1.25rem)}}.opacity-50{opacity:0.5}.eds-steps__title[role=\"button\"]{cursor:pointer}.theme-brand.steps h3::before,.theme-brand.steps h4::before,.theme-brand.steps h5::before{background:var(--brand-green);color:var(--brand-black);border-color:var(--brand-green);font-weight:600}.theme-brand .step-indicator{background-color:var(--grey-light)}.theme-brand .horizontal-step.is-active .step-indicator{border-color:var(--brand-green);background-color:var(--brand-green);color:var(--brand-black)}.theme-brand .horizontal-step.is-completed .step-indicator{border-color:var(--brand-green);background-color:var(--brand-green);color:var(--brand-black)}.theme-brand .horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green)}.theme-brand .horizontal-step.is-active .step-label{color:var(--brand-black);font-weight:600}.theme-brand .step-number{font-weight:600}.theme-default.steps h3::before,.theme-default.steps h4::before,.theme-default.steps h5::before{background:var(--grey-900);color:#fff;border-color:#ccc}.theme-default .step-indicator{background-color:white;border-color:#e0e0e0}.theme-default .horizontal-step.is-active .step-indicator{border-color:var(--brand-green-dark);background-color:var(--brand-green-dark);color:var(--white)}.theme-default .horizontal-step.is-completed .step-indicator{border-color:var(--brand-green-dark);background-color:var(--white)}.theme-default .horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green-dark)}.theme-default .horizontal-step.is-active .step-label{color:var(--brand-green-dark)}";const EdsStepsStyle0=edsStepsCss;const EdsSteps=class{constructor(hostRef){registerInstance(this,hostRef);this.step=createEvent(this,"step",7);this.finished=createEvent(this,"finished",7);this.next=createEvent(this,"next",7);this.back=createEvent(this,"back",7);this.handleTitleClick=index=>{// In linear mode, do NOT collapse; only navigate if allowed.
|
|
1866
|
+
if(this.type==='linear'){// prevent jumping forward over disabled steps
|
|
1867
|
+
if(index>this.activeStep){for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){return;}}}this.activeStep=index;this.step.emit(this.activeStep);return;}// Non-linear vertical mode: support optional collapse/expand on current title
|
|
1868
|
+
if(this.orientation==='vertical'&&index===this.activeStep&&this.collapsibleTitles){this.activeStep=this.activeStep===index?-1:index;this.step.emit(this.activeStep);return;}// Otherwise, just set
|
|
1869
|
+
this.activeStep=index;this.step.emit(this.activeStep);};this.handleNext=()=>{const lastIndex=this.parsedSteps.length-1;// On last step
|
|
1870
|
+
if(this.activeStep>=lastIndex){this.finished.emit();this.activeStep=-1;// collapse the content
|
|
1871
|
+
this.step.emit(this.activeStep);// notify change (-1 sentinel)
|
|
1872
|
+
return;}const target=this.activeStep+1;this.next.emit(target);if(this.isStepDisabled(this.activeStep)){return;}this.activeStep=target;this.step.emit(this.activeStep);if(!Array.isArray(this.disableNext)){this.disableNext=false;}};this.handleBack=()=>{const lastIndex=this.parsedSteps.length-1;// If somehow collapsed, recover to last visible step first
|
|
1873
|
+
if(this.activeStep<0){this.activeStep=lastIndex;this.step.emit(this.activeStep);return;}if(this.activeStep>0){const target=this.activeStep-1;this.back.emit(target);this.activeStep=target;this.step.emit(this.activeStep);if(!Array.isArray(this.disableNext)){this.disableNext=false;}}};this.steps=[];this.type='static';this.orientation='vertical';this.theme='default';this.nextLabel='Next';this.backLabel='Back';this.finishLabel='Finish';this.showFinish=true;this.disableNext=false;this.headingLevel='h4';this.collapsibleTitles=false;this.activeStep=0;}handleDisableNextChange(newValue){if(typeof newValue==='string'&&newValue.trim().startsWith('[')){try{this.disableNext=JSON.parse(newValue);}catch(e){console.error('Failed to parse disable-next array:',e);}}}componentWillLoad(){this.handleDisableNextChange(this.disableNext);}componentDidLoad(){if(this.type==='linear'){const root=this.el.shadowRoot||this.el;const btns=root.querySelectorAll('eds-button');btns===null||btns===void 0?void 0:btns.forEach(btn=>this.emitContext(btn));}}activeStepChanged(newValue){// Clamp to valid range or collapsed sentinel
|
|
1874
|
+
const max=Math.max(0,this.parsedSteps.length-1);if(newValue>max){this.activeStep=max;return;}if(newValue<-1){this.activeStep=-1;return;}// If collapsed (only possible in non-linear mode), do not emit context
|
|
1875
|
+
if(newValue<0){return;}setTimeout(()=>{const root=this.el.shadowRoot||this.el;const all=root.querySelectorAll('.step');const active=all&&newValue<all.length?all[newValue]:undefined;active===null||active===void 0?void 0:active.querySelectorAll('eds-button').forEach(btn=>this.emitContext(btn));},50);}emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:this.activeStep},bubbles:true,composed:true});linkElement.dispatchEvent(event);}get parsedSteps(){return parseData(this.steps);}isStepDisabled(index){if(Array.isArray(this.disableNext)){return index<this.disableNext.length?!!this.disableNext[index]:false;}return index===this.activeStep&&!!this.disableNext;}isNextDisabledFor(index){return this.isStepDisabled(index);}/** Render the semantic heading element as a clickable control only in linear mode */renderHeading(title,index){const Tag=this.headingLevel;const isOpen=this.activeStep===index;if(this.type==='linear'){let forwardBlocked=false;if(index>this.activeStep){for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){forwardBlocked=true;break;}}}const onKey=e=>{if(forwardBlocked){return;}if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleTitleClick(index);}};return h(Tag,{class:`eds-steps__title ${forwardBlocked?'is-disabled':''}`,role:"button",tabindex:forwardBlocked?-1:0,"aria-disabled":forwardBlocked?'true':'false',"aria-expanded":isOpen,"aria-controls":`eds-step-panel-${index}`,onClick:()=>!forwardBlocked&&this.handleTitleClick(index),onKeyDown:onKey},title);}return h(Tag,{class:`eds-steps__title ${this.collapsibleTitles&&index!==this.activeStep?'':''}`,onClick:()=>this.handleTitleClick(index)},title);}/** Render horizontal step indicator */renderHorizontalIndicator(step,index){const isActive=this.activeStep===index;const isCompleted=this.activeStep>index;let forwardBlocked=false;if(index>this.activeStep){for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){forwardBlocked=true;break;}}}const onKey=e=>{if(forwardBlocked){return;}if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleTitleClick(index);}};return h("div",{class:`horizontal-step ${isActive?'is-active':''} ${isCompleted?'is-completed':''}`,onClick:()=>!forwardBlocked&&this.handleTitleClick(index),onKeyDown:onKey,role:"button",tabindex:forwardBlocked?-1:0,"aria-label":`Step ${index+1}: ${step.title}`,"aria-current":isActive?'step':undefined,"aria-disabled":forwardBlocked?'true':'false'},h("div",{class:"step-indicator"},h("span",{class:"step-number"},index+1)),h("span",{class:`text-center text-default f-ui-03 ${forwardBlocked?'opacity-50':''}`},step.title));}render(){const steps=this.parsedSteps;const themeClass=this.theme==='brand'?'theme-brand':'theme-default';// Horizontal Linear
|
|
1876
|
+
if(this.type==='linear'&&this.orientation==='horizontal'){return h("div",{class:`steps--horizontal ${themeClass}`,style:{'--step-count':steps.length.toString()}},h("div",{class:"horizontal-indicators"},steps.map((step,index)=>this.renderHorizontalIndicator(step,index))),steps.map((step,index)=>{const isLast=index===steps.length-1;if(this.activeStep!==index){return null;}const marginClass=this.orientation==='horizontal'?'mt-64':'mt-32';return h("div",{class:"step-content",key:index,id:`eds-step-panel-${index}`},h("slot",{name:`step-${index}`},h("div",{class:"f-body-02 text-lighter",innerHTML:step.content})),h("div",{class:`flex items-center justify-between ${marginClass}`},h("eds-button",{label:this.backLabel,intent:"secondary",icon:"chevron-left",iconPos:"left",onClick:this.handleBack,disabled:index===0,class:index===0?'hidden':'block',size:"small"}),(!isLast||this.showFinish)&&h("eds-button",{label:isLast?this.finishLabel:this.nextLabel,intent:"primary",icon:"chevron-right",onClick:this.handleNext,disabled:this.isNextDisabledFor(index),size:"small",class:index>0?'ml-8':null})),h("slot",{name:`actions-${index}`}));}));}// Vertical Linear
|
|
1877
|
+
if(this.type==='linear'){return h("div",{class:`steps ${themeClass}`},steps.map((step,index)=>{const isLast=index===steps.length-1;const marginClass=this.orientation==='horizontal'?'mt-64':'mt-32';return h("div",{class:"step mb-16",key:index},this.renderHeading(step.title,index),this.activeStep===index&&h("div",{class:"content grid gap-y-16",id:`eds-step-panel-${index}`},h("slot",{name:`step-${index}`},h("div",{class:"my-16 f-body-02 text-lighter",innerHTML:step.content})),h("div",{class:`flex items-center justify-between ${marginClass}`},h("eds-button",{label:this.backLabel,intent:"secondary",icon:"chevron-left",iconPos:"left",onClick:this.handleBack,disabled:index===0,class:index===0?'hidden':'block',size:"small"}),(!isLast||this.showFinish)&&h("eds-button",{label:isLast?this.finishLabel:this.nextLabel,intent:"primary",icon:"chevron-right",onClick:this.handleNext,disabled:this.isNextDisabledFor(index),size:"small",class:index>0?'ml-8':null})),h("slot",{name:`actions-${index}`})));}));}// Static
|
|
1878
|
+
return h("div",{class:`steps ${themeClass}`},steps.map((step,index)=>h("div",{class:"step mb-16",key:index},this.renderHeading(step.title,index),h("div",{class:"content",id:`eds-step-panel-${index}`},h("slot",{name:`step-${index}`},h("div",{class:"f-body-02 text-lighter my-16",innerHTML:step.content}))))));}get el(){return getElement(this);}static get watchers(){return {"disableNext":["handleDisableNextChange"],"activeStep":["activeStepChanged"]};}};EdsSteps.style=EdsStepsStyle0;const edsStepsV2Css="blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}.steps{position:sticky;margin-left:16px;border-left:1px solid var(--soft-color, #ddd);padding-left:23px;counter-reset:step}.steps h3{counter-increment:step;font-size:var(--f-heading-05-fontSize);font-weight:var(--f-heading-05-fontWeight);line-height:var(--f-heading-05-lineHeight);position:relative}.steps h3::before{content:counter(step);position:absolute;left:-41px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:1rem;border:1px solid #ccc;background:var(--grey-900);color:#fff;border-radius:50%}.steps h4,.steps h5{counter-increment:step;font-size:var(--f-heading-06-fontSize);font-weight:var(--f-heading-06-fontWeight);line-height:var(--f-heading-06-lineHeight);position:relative}.steps h4::before,.steps h5::before{content:counter(step);position:absolute;left:-40px;top:-2px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:0.875rem;border:1px solid #ccc;background:#333;color:#fff;border-radius:50%}.steps blockquote{margin-top:16px;margin-bottom:16px;font-style:italic;color:#aaa;padding-left:6px}.steps-img-placeholder{width:100%;height:200px;background:linear-gradient(to bottom, #9CE142, #00C959, #00A595);}.bg-\\[\\#00A595\\]{--tw-bg-opacity:1;background-color:rgb(0 165 149 / var(--tw-bg-opacity))}.relative{position:relative}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:var(--f-heading-04-fontWeight);font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.text-center{text-align:center}.text-default{color:var(--brand-black)}.text-accent{color:var(--brand-green)}.text-inverse{color:var(--white)}.text-light{color:var(--grey-light)}.text-lighter{color:var(--grey-dark)}.w-full{width:100%}.h-52{height:3.25rem}.h-96{height:6rem}.h-\\[200px\\]{height:200px}.justify-between{justify-content:space-between}.mt-16{margin-top:1rem}.mt-32{margin-top:2rem}.mt-64{margin-top:4rem}.my-16{margin-top:1rem;margin-bottom:1rem}.mb-12{margin-bottom:0.75rem}.last\\:mb-0:last-child{margin-bottom:0rem}.last\\:mt-16:last-child{margin-top:1rem}.border-softer{border:none}.relative{position:relative}.flex{display:flex}.inline-flex{display:inline-flex}.grow{flex-grow:1}.rounded{border-radius:0.25rem}.rounded-lg{border-radius:16px}.rounded-t-lg{border-top-left-radius:16px;border-top-right-radius:16px}.border-2{border-width:0}.p-8{padding:0.5rem}.p-24{padding:1.5rem}.bg-default{background-color:var(--grey-light)}.bg-inverse{background-color:var(--white)}.bg-strongest{background-color:var(--brand-black)}.top-2{top:0.125rem}.bottom-2{bottom:0.125rem}.left-2{left:0.125rem}.right-2{right:0.125rem}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.overflow-hidden{overflow:hidden}.space-y-8{--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse))}.space-y-16{--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.ml-8{margin-left:0.5rem}.gap-y-16{row-gap:1rem}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.flex{display:flex}.grid{display:grid}.hidden{display:none}.block{display:block}.items-center{align-items:center}.px-8{padding-left:0.5rem;padding-right:0.5rem}.pb-20{padding-bottom:1.25rem}.eds-steps__title[role=\"button\"]{cursor:pointer}.eds-steps__title.is-disabled{cursor:not-allowed;color:rgba(0, 0, 0, 0.5);}.eds-steps__title.is-disabled::before{opacity:1;filter:none}.steps--horizontal{display:flex;flex-direction:column;gap:2rem}.horizontal-indicators{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0}.step-content-aligned{padding-left:0;padding-right:0}.horizontal-step{display:flex;flex-direction:column;align-items:center;gap:0.5rem;cursor:pointer;flex:1;position:relative}.horizontal-step:not(:last-child)::after{content:'';position:absolute;top:1.25rem;left:calc(50% + 2rem);width:calc(100% - 3rem);height:2px;background-color:#e0e0e0;z-index:1}.horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green);}.step-indicator{width:2.5rem;height:2.5rem;border-radius:50%;border:2px solid #e0e0e0;display:flex;align-items:center;justify-content:center;background-color:white;transition:all 0.3s ease;z-index:2}.horizontal-step.is-active .step-indicator{border-color:var(--brand-green-dark);background-color:var(--brand-green-dark);color:var(--white)}.horizontal-step.is-completed .step-indicator{border-color:var(--brand-green-dark);background-color:var(--white)}.horizontal-step.is-disabled{opacity:0.5;cursor:not-allowed}.step-number{font-weight:600;font-size:0.875rem}.step-label{font-size:0.875rem;text-align:center;font-weight:500}.horizontal-step.is-active .step-label{color:var(--brand-green-dark)}.step-content{padding:0.5rem 0;margin-left:calc((100% / var(--step-count, 1)) * 0.20 - 1.25rem);margin-right:calc((100% / var(--step-count, 1)) * 0.20 - 1.25rem)}@media (min-width: 700px){.step-content{padding:1.5rem 0;margin-left:calc((100% / var(--step-count, 1)) * 0.45 - 1.25rem);margin-right:calc((100% / var(--step-count, 1)) * 0.45 - 1.25rem)}}.opacity-50{opacity:0.5}.bg-dark{background-color:var(--grey-light)}.bg-darker{background-color:var(--grey-dark)}.theme-brand.steps h3::before,.theme-brand.steps h4::before,.theme-brand.steps h5::before{background:var(--brand-green);color:var(--brand-black);border-color:var(--brand-green);font-weight:600}.theme-brand.steps h3.is-completed::before,.theme-brand.steps h4.is-completed::before,.theme-brand.steps h5.is-completed::before{content:'';}.theme-brand.steps .step-checkmark-icon{position:absolute;left:-39px;top:0px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;z-index:1}.theme-brand.steps h3 .step-checkmark-icon{left:-41px;width:32px;height:32px;top:2px}.theme-brand .step-indicator{background-color:var(--grey-light)}.theme-brand .horizontal-step.is-active .step-indicator{border-color:var(--brand-green);background-color:var(--brand-green);color:var(--brand-black)}.theme-brand .horizontal-step.is-completed .step-indicator{border-color:var(--brand-green);background-color:var(--brand-green);color:var(--brand-black)}.theme-brand .horizontal-step.is-completed .step-number{display:none}.theme-brand .horizontal-step:not(:last-child)::after{background-color:var(--grey-light);}.theme-brand .horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green)}.theme-brand .horizontal-step.is-active .step-label{color:var(--brand-black);font-weight:600}.theme-brand .step-number{font-weight:600}.theme-default.steps h3::before,.theme-default.steps h4::before,.theme-default.steps h5::before{background:var(--grey-900);color:#fff;border-color:#ccc}.theme-default .step-indicator{background-color:white;border-color:#e0e0e0}.theme-default .horizontal-step.is-active .step-indicator{border-color:var(--brand-green-dark);background-color:var(--brand-green-dark);color:var(--white)}.theme-default .horizontal-step.is-completed .step-indicator{border-color:var(--brand-green-dark);background-color:var(--white)}.theme-default .horizontal-step.is-completed:not(:last-child)::after{background-color:var(--brand-green-dark)}.theme-default .horizontal-step.is-active .step-label{color:var(--brand-green-dark)}.effect-focus-within{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.effect-focus-within:focus-within{outline-style:solid}";const EdsStepsV2Style0=edsStepsV2Css;const EdsStepsV2=class{constructor(hostRef){registerInstance(this,hostRef);this.step=createEvent(this,"step",7);this.finished=createEvent(this,"finished",7);this.next=createEvent(this,"next",7);this.back=createEvent(this,"back",7);this.handleTitleClick=index=>{// In linear mode, do NOT collapse; only navigate if allowed.
|
|
1879
|
+
if(this.type==='linear'){if(index>this.activeStep){// Prevent jumping forward over disabled steps
|
|
1880
|
+
for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){return;}}}this.activeStep=index;this.step.emit(this.activeStep);return;}// Non-linear vertical mode can toggle collapse of the current title
|
|
1881
|
+
if(this.orientation==='vertical'&&index===this.activeStep){this.activeStep=this.activeStep===index?-1:index;this.step.emit(this.activeStep);return;}// Otherwise just set
|
|
1882
|
+
this.activeStep=index;this.step.emit(this.activeStep);};this.handleNext=()=>{const lastIndex=this.parsedSteps.length-1;// On last step: do NOT collapse; keep content visible, just emit finished
|
|
1883
|
+
if(this.activeStep>=lastIndex){this.finished.emit();this.activeStep=-1;// collapse the content
|
|
1884
|
+
this.step.emit(this.activeStep);// notify change (-1 sentinel)
|
|
1885
|
+
return;}const target=this.activeStep+1;this.next.emit(target);if(this.isStepDisabled(this.activeStep)){return;}this.activeStep=target;this.step.emit(this.activeStep);// clear boolean form when moving away from a step
|
|
1886
|
+
if(!Array.isArray(this.disableNext)){this.disableNext=false;}};this.handleBack=()=>{const lastIndex=this.parsedSteps.length-1;// Recover from collapsed sentinel if it ever occurs
|
|
1887
|
+
if(this.activeStep<0){this.activeStep=lastIndex;this.step.emit(this.activeStep);return;}if(this.activeStep>0){const target=this.activeStep-1;this.back.emit(target);this.activeStep=target;this.step.emit(this.activeStep);if(!Array.isArray(this.disableNext)){this.disableNext=false;}}};this.steps=[];this.type='static';this.orientation='vertical';this.theme='default';this.imageSrc=undefined;this.imageWidth=undefined;this.message=undefined;this.nextLabel='Next';this.backLabel='Back';this.finishLabel='Finish';this.showFinish=true;this.disableNext=false;this.headingLevel='h4';this.activeStep=0;}handleDisableNextChange(newValue){if(typeof newValue==='string'&&newValue.trim().startsWith('[')){try{this.disableNext=JSON.parse(newValue);}catch(e){console.error('Failed to parse disable-next array:',e);}}}activeStepChanged(newValue){// Clamp and ignore collapsed sentinel
|
|
1888
|
+
const max=Math.max(0,this.parsedSteps.length-1);if(newValue>max){this.activeStep=max;return;}if(newValue<-1){this.activeStep=-1;return;}if(newValue<0){return;}// ignore collapsed state if ever set elsewhere
|
|
1889
|
+
// Emit parentContext to buttons inside the newly active step
|
|
1890
|
+
setTimeout(()=>{const host=this.el.shadowRoot||this.el;const activeStepContainer=host.querySelectorAll('.step')[newValue];activeStepContainer===null||activeStepContainer===void 0?void 0:activeStepContainer.querySelectorAll('eds-button').forEach(btn=>this.emitContext(btn));},50);}componentWillLoad(){this.handleDisableNextChange(this.disableNext);}componentDidLoad(){if(this.type==='linear'){const host=this.el.shadowRoot||this.el;const btns=host.querySelectorAll('eds-button');btns===null||btns===void 0?void 0:btns.forEach(btn=>this.emitContext(btn));}}emitContext(linkElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:this.activeStep},bubbles:true,composed:true});linkElement.dispatchEvent(event);}articleClasses(){return ['border-softer relative rounded-lg border-2'].join(' ');}get parsedSteps(){return parseData(this.steps);}isStepDisabled(index){if(Array.isArray(this.disableNext)){return index<this.disableNext.length?!!this.disableNext[index]:false;}return index===this.activeStep&&!!this.disableNext;}isNextDisabledFor(index){return this.isStepDisabled(index);}renderHeading(title,index){const Tag=this.headingLevel;const isCompleted=this.activeStep>index;if(this.type==='linear'){const isOpen=this.activeStep===index;// Check if jumping to this step crosses a disabled step
|
|
1891
|
+
let forwardBlocked=false;if(index>this.activeStep){for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){forwardBlocked=true;break;}}}const onKey=e=>{if(forwardBlocked){return;}if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleTitleClick(index);}};return h(Tag,{class:`eds-steps__title ${forwardBlocked?'is-disabled':''} ${isCompleted?'is-completed':''}`,role:"button",tabindex:forwardBlocked?-1:0,"aria-disabled":forwardBlocked?'true':'false',"aria-expanded":isOpen,"aria-controls":`eds-step-panel-${index}`,onClick:()=>!forwardBlocked&&this.handleTitleClick(index),onKeyDown:onKey},isCompleted&&h("span",{class:"step-checkmark-icon"},h("eds-icon-wrapper",{name:"checkmark",size:20})),title);}return h(Tag,{class:"eds-steps__title",onClick:()=>this.handleTitleClick(index)},title);}/** Render horizontal indicator item */renderHorizontalIndicator(step,index){const isActive=this.activeStep===index;const isCompleted=this.activeStep>index;let forwardBlocked=false;if(index>this.activeStep){for(let i=this.activeStep;i<index;i++){if(this.isStepDisabled(i)){forwardBlocked=true;break;}}}const onKey=e=>{if(forwardBlocked){return;}if(e.key==='Enter'||e.key===' '){e.preventDefault();this.handleTitleClick(index);}};return h("div",{class:`horizontal-step ${isActive?'is-active':''} ${isCompleted?'is-completed':''}`,onClick:()=>!forwardBlocked&&this.handleTitleClick(index),onKeyDown:onKey,role:"button",tabindex:forwardBlocked?-1:0,"aria-label":`Step ${index+1}: ${step.title}`,"aria-current":isActive?'step':undefined,"aria-disabled":forwardBlocked?'true':'false'},h("div",{class:"step-indicator"},isCompleted?h("eds-icon-wrapper",{name:"checkmark",size:20}):h("span",{class:"step-number"},index+1)),h("span",{class:`text-center text-default f-ui-03 ${forwardBlocked?'opacity-50':''}`},step.title));}render(){const steps=this.parsedSteps;const marginClass=this.orientation==='horizontal'?'mt-64':'mt-32';const themeClass=this.theme==='brand'?'theme-brand':'theme-default';return h("div",{key:'e1d78d18506adb662bbcc100f6f886e33c21a996',class:this.articleClasses()},this.imageSrc?h("div",{class:"w-full mb-12 rounded-t-lg overflow-hidden border-2"},h("eds-img",{src:this.imageSrc,width:this.imageWidth,"with-bg":"true","lazy-load":"true",alt:"Step illustration"})):this.message&&h("div",{class:`w-full ${this.theme==='brand'?'bg-strongest':'bg-darker'} rounded-t-lg border-2`},h("div",{class:"p-24"},h("span",{class:`${this.theme==='brand'?'text-accent':'text-inverse'} f-heading-04`},this.message))),h("div",{key:'5b69e2c641d96025b34377fc647679f94d0e4e44',class:"mt-16 pb-20 px-8"},this.type==='linear'&&this.orientation==='horizontal'?h("div",{class:`steps--horizontal ${themeClass}`,style:{'--step-count':steps.length.toString()}},h("div",{class:"horizontal-indicators"},steps.map((step,index)=>this.renderHorizontalIndicator(step,index))),steps.map((step,index)=>{const isLast=index===steps.length-1;if(this.activeStep!==index){return null;}return h("div",{class:"step-content",key:index,id:`eds-step-panel-${index}`},h("slot",{name:`step-${index}`},h("div",{class:"f-body-02 text-lighter",innerHTML:step.content})),h("div",{class:`flex items-center justify-between ${marginClass}`},h("eds-button",{label:this.backLabel,intent:"primary",icon:"arrow-left",iconPos:"left",onClick:this.handleBack,disabled:index===0,class:index===0?'hidden':'block',size:"small",pill:true}),(!isLast||this.showFinish)&&h("eds-button",{label:isLast?this.finishLabel:this.nextLabel,intent:"primary",icon:"arrow-right",onClick:this.handleNext,disabled:this.isNextDisabledFor(index),size:"small",class:index>0?'ml-8':null,pill:true})),h("slot",{name:`actions-${index}`}));})):this.type==='linear'?h("div",{class:`steps ${themeClass}`},steps.map((step,index)=>{const isCompleted=this.activeStep>index;return h("div",{class:`${index===0?'step':'step mt-16'} ${isCompleted?'is-completed':''}`,key:index},this.renderHeading(step.title,index),this.activeStep===index&&h("div",{class:"content grid gap-y-16",id:`eds-step-panel-${index}`},h("slot",{name:`step-${index}`},h("div",{class:"my-16 f-body-02 text-lighter",innerHTML:step.content})),h("div",{class:`flex items-center justify-between ${marginClass}`},h("eds-button",{label:this.backLabel,intent:"secondary",icon:"chevron-left",iconPos:"left",onClick:this.handleBack,disabled:index===0,class:index===0?'hidden':'block',size:"small",pill:true}),(index<steps.length-1||this.showFinish)&&h("eds-button",{label:index===steps.length-1?this.finishLabel:this.nextLabel,intent:"primary",icon:"chevron-right",onClick:this.handleNext,disabled:this.isNextDisabledFor(index),size:"small",class:index>0?'ml-8':null,pill:true}))));})):h("div",{class:`steps space-y-8 ${themeClass}`},steps.map((step,index)=>h("div",{class:"step",key:index},this.renderHeading(step.title,index),h("div",{class:"content",id:`eds-step-panel-${index}`},h("div",{class:"content-body"},h("slot",{name:`step-${index}`},h("div",{class:"my-16 f-body-02 text-lighter",innerHTML:step.content})))))))));}get el(){return getElement(this);}static get watchers(){return {"disableNext":["handleDisableNextChange"],"activeStep":["activeStepChanged"]};}};EdsStepsV2.style=EdsStepsV2Style0;const edsSwitchCss=":host{display:inline-block}.switch-container{display:inline-flex;align-items:center}.switch-label{font-family:var(--f-ui-02-light-fontFamily);font-weight:var(--f-ui-02-light-fontWeight);font-size:var(--f-ui-02-light-fontSize);line-height:var(--f-ui-02-light-lineHeight);letter-spacing:var(--f-ui-02-light-letterSpacing)}button.switch{position:relative;display:inline-flex;align-items:center;width:50px;height:26px;border:none;border-radius:13px;background-color:var(--grey-dark);padding:0;cursor:pointer;transition:background-color 0.2s}button.switch.switch--checked{background-color:var(--brand-green)}button.switch.switch--disabled{opacity:0.6;cursor:not-allowed}.switch-handle{position:absolute;width:22px;height:22px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:transform 0.2s}button.switch.switch--checked .switch-handle{transform:translateX(24px)}.ml-8{margin-left:0.5rem}.mr-8{margin-right:0.5rem}.switch:focus{outline:2px solid #005fcc;outline-offset:2px}.switch:focus:not(:focus-visible){outline:none}.switch:focus-visible{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.segmented-container{display:inline-flex;gap:0.5rem;background:var(--grey-light);padding:0.5rem;border-radius:2rem}.segmented-btn{padding:0.5rem 1.5rem;background:transparent;border:none;border-radius:1.5rem;font-family:var(--f-ui-02-fontFamily);font-size:0.9rem;font-weight:500;cursor:pointer;transition:all 0.3s;color:var(--grey-dark);white-space:nowrap}.segmented-btn--active{background:var(--brand-green);color:var(--brand-black)}.segmented-btn:hover:not(.segmented-btn--active):not(.segmented-btn--disabled){color:var(--brand-black)}.segmented-btn--disabled{opacity:0.6;cursor:not-allowed}.segmented-btn:focus{outline:2px solid #005fcc;outline-offset:2px}.segmented-btn:focus:not(:focus-visible){outline:none}.segmented-btn:focus-visible{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);letter-spacing:var(--f-ui-03-letterSpacing)}";const EdsSwitchStyle0=edsSwitchCss;const EdsSwitch=class{constructor(hostRef){registerInstance(this,hostRef);this.uiswitch=createEvent(this,"uiswitch",7);this.toggleSwitch=()=>{if(this.disabled){return;}this.checked=!this.checked;this.uiswitch.emit({value:this.checked});sendAnalytics({category:'ui-component',tag:this.el.tagName.toLowerCase(),name:this.checked?this.labelOn:this.labelOff||'',action:'checked'});};this.handleKeyDown=e=>{if(this.disabled){return;}if(e.key==='Enter'||e.key===' '){e.preventDefault();this.toggleSwitch();}};this.checked=false;this.disabled=false;this.labelOn='';this.labelOff='';this.variant='toggle';}render(){if(this.variant==='segmented'){return this.renderSegmented();}return this.renderToggle();}renderToggle(){const switchId=`switch-${Math.random().toString(36).substr(2,9)}`;const labelledBy=[];if(this.labelOff){labelledBy.push(`${switchId}-off`);}if(this.labelOn){labelledBy.push(`${switchId}-on`);}const accessibleLabel=labelledBy.length===0?this.labelOn||this.labelOff?this.checked?this.labelOn:this.labelOff:'Toggle switch':undefined;return h("div",{class:"switch-container"},this.labelOff&&h("span",{id:`${switchId}-off`,class:"switch-label switch-label--off mr-8"},this.labelOff),h("button",{id:switchId,tabindex:this.disabled?'-1':'0',type:"button",role:"switch","aria-checked":this.checked?'true':'false',"aria-disabled":this.disabled?'true':'false',"aria-labelledby":labelledBy.length>0?labelledBy.join(' '):undefined,"aria-label":accessibleLabel,class:{switch:true,'switch--checked':this.checked,'switch--disabled':this.disabled},onClick:this.toggleSwitch,onKeyDown:this.handleKeyDown,disabled:this.disabled},h("span",{class:"switch-handle"})),this.labelOn&&h("span",{id:`${switchId}-on`,class:"switch-label switch-label--on ml-8"},this.labelOn));}renderSegmented(){return h("div",{class:"segmented-container",role:"group","aria-label":"View toggle"},h("button",{type:"button",tabindex:this.disabled?'-1':'0',class:{'segmented-btn':true,'segmented-btn--active':!this.checked,'segmented-btn--disabled':this.disabled},onClick:()=>{if(!this.disabled&&this.checked){this.toggleSwitch();}},onKeyDown:this.handleKeyDown,disabled:this.disabled,"aria-pressed":!this.checked?'true':'false'},h("span",{class:"f-ui-03"},this.labelOff)),h("button",{type:"button",tabindex:this.disabled?'-1':'0',class:{'segmented-btn':true,'segmented-btn--active':this.checked,'segmented-btn--disabled':this.disabled},onClick:()=>{if(!this.disabled&&!this.checked){this.toggleSwitch();}},onKeyDown:this.handleKeyDown,disabled:this.disabled,"aria-pressed":this.checked?'true':'false'},h("span",{class:"f-ui-03"},this.labelOn)));}get el(){return getElement(this);}};EdsSwitch.style=EdsSwitchStyle0;const edsTableCss="table{text-indent:0;border-color:inherit;border-collapse:collapse;}.brand-table-wrapper{margin-top:2rem;width:100%}.brand-table{width:100% !important;border-collapse:separate !important;border-spacing:0 !important;display:table !important;table-layout:fixed !important}.brand-thead{background:var(--grey-light)}.brand-header-row{border:none !important}.brand-header-row th{padding:1rem 1.5rem !important;text-align:center !important;font-weight:600 !important;font-size:0.9rem !important;text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark) !important;border:none !important;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-header-row th:first-child{border-radius:0.5rem 0 0 0;padding-left:2rem !important}.brand-header-row th:last-child{border-radius:0 0.5rem 0 0;padding-right:2rem !important}.brand-row{border-bottom:1px solid var(--grey-light) !important;transition:all 0.3s ease;position:relative;background:transparent !important}.brand-row.has-actions{cursor:pointer}.brand-row:hover{background:rgba(0, 255, 157, 0.05) !important}.brand-row td{padding:1.5rem 1.5rem !important;border:none !important;vertical-align:middle;position:relative;z-index:1;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-row td:first-child{padding-left:2rem !important}.brand-row td:last-child{padding-right:2rem !important}.brand-row .actions-cell{text-align:right !important}.brand-table tr.brand-row{border-left:none;border-right:none;border-top:none}.container{width:calc(var(--container-width, 100%) - (2 * var(--breakout-container-outer-gutter, var(--container-outer-gutter, var(--outer-gutter, 0)))));margin-right:auto;margin-left:auto}.container>*{--container-outer-gutter:0;--breakout-container-outer-gutter:0}.pt-32{padding-top:2rem}.pt-40{padding-top:2.5rem}.pt-48{padding-top:3rem}.pb-28{padding-bottom:1.75rem}.pb-60{padding-bottom:3.75rem}.mt-20{margin-top:1.25rem}.mt-28{margin-top:1.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.overflow-x-auto{overflow-x:auto}.mt-6{margin-top:0.375rem}.p-0{padding:0rem}.p-4{padding:0.25rem}.m-0{margin:0rem}.border{border-width:1px}.border-softer{border:1px solid rgba(0, 0, 0, .1)}.even\\:bg-inverse-softer:nth-child(even){background-color:rgba(255, 255, 255, .15)}.px-8{padding-left:0.5rem;padding-right:0.5rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-8{padding-top:0.5rem;padding-bottom:0.5rem}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.break-words{overflow-wrap:anywhere}.controls-container{display:flex;width:100%}.view-toggle-wrapper{flex-shrink:0}.search-wrapper{min-width:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:1.5rem;margin-top:1.5rem}.data-card{background:var(--white);border:1px solid var(--grey-light);border-radius:0.75rem;padding:1.5rem;transition:all 0.3s ease;display:flex;flex-direction:column;gap:1rem}.data-card:hover{border-color:var(--brand-green);box-shadow:0 4px 12px rgba(0, 255, 157, 0.1);transform:translateY(-2px)}.card-content{display:flex;flex-direction:column;gap:0.75rem;flex:1}.card-field{display:flex;flex-direction:column;gap:0.25rem}.card-label{font-family:var(--f-ui-03-fontFamily);font-size:var(--f-ui-03-fontSize);font-weight:var(--f-ui-03-fontWeight);line-height:var(--f-ui-03-lineHeight);text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark)}.card-value{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);color:var(--brand-black);word-wrap:break-word}.card-field:first-child .card-value{font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight)}.card-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.5rem;padding-top:0.75rem;border-top:1px solid var(--grey-light)}@media (min-width: 640px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(320px, 1fr))}}@media (min-width: 1024px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(350px, 1fr));gap:2rem}}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-start{align-items:flex-start}.items-center{align-items:center}.gap-16{gap:1rem}.mb-16{margin-bottom:1rem}.w-full{width:100%}.w-auto{width:auto}@media (min-width: 750px){.flex-md-row{flex-direction:row}.items-md-center{align-items:center}.w-md-auto{width:auto}.w-md-400{width:400px}}";const EdsTableStyle0=edsTableCss;const EdsTable=class{constructor(hostRef){registerInstance(this,hostRef);this.rowaction=createEvent(this,"rowaction",7);this.viewchange=createEvent(this,"viewchange",7);this.handleResize=()=>{this.updateContainerWidth();};this.onActionKeyDown=e=>{var _a;if(e.key!=='ArrowRight'&&e.key!=='ArrowLeft'){return;}e.preventDefault();const currentButton=e.target;const toolbar=currentButton.closest('[role="toolbar"]');if(!toolbar){return;}// Find all focusable action buttons in this row
|
|
1892
|
+
const actionButtons=Array.from(toolbar.querySelectorAll('eds-button'));const currentIndex=actionButtons.indexOf(currentButton);if(currentIndex===-1){return;}let nextIndex;if(e.key==='ArrowRight'){nextIndex=(currentIndex+1)%actionButtons.length;}else {nextIndex=(currentIndex-1+actionButtons.length)%actionButtons.length;}(_a=actionButtons[nextIndex])===null||_a===void 0?void 0:_a.focus();};this.handleSort=column=>{if(this.sortColumn===column){// Toggle direction if same column
|
|
1893
|
+
this.sortDirection=this.sortDirection==='asc'?'desc':'asc';}else {// New column, default to ascending
|
|
1894
|
+
this.sortColumn=column;this.sortDirection='asc';}sendAnalytics({category:'ui-component',parentContext:null,tag:`${this.hostEl.tagName.toLowerCase()}/sort`,name:column,action:this.sortDirection});};this.handleViewChange=event=>{this.view=event.detail.value?'card':'table';this.viewchange.emit({view:this.view});sendAnalytics({category:'ui-component',parentContext:null,tag:`${this.hostEl.tagName.toLowerCase()}/view-toggle`,name:this.view,action:'view-change'});};this.data=null;this.config={};this.rowsPerPage=10;this.paginationEnabled=true;this.searchEnabled=false;this.hostWidth=undefined;this.actions=[];this.actionTemplate=undefined;this.sortingEnabled=false;this.theme='brand';this.view='table';this.showViewToggle=false;this.parsedActions=[];this.dataColumns=[];this.tbData=[];this.columns=[];this.currentPage=1;this.parsedConfig={};this.totalRows=0;this.searchQuery='';this.containerWidth=0;this.sortColumn=null;this.sortDirection='asc';}handleDataChange(){this.parseData();}handleConfigChange(){this.parseConfig();}handleActionsChange(){try{this.parsedActions=typeof this.actions==='string'?JSON.parse(this.actions):this.actions;}catch(_a){// eslint-disable-next-line
|
|
1895
|
+
console.error('Failed to parse actions JSON');this.parsedActions=[];}}componentWillLoad(){// 'default' / 'color' themes are disabled — always render the brand theme.
|
|
1896
|
+
this.theme='brand';this.parseConfig();this.handleActionsChange();this.parseData();}componentDidLoad(){this.updateContainerWidth();window.addEventListener('resize',this.handleResize);this.setupPaginationListener();}componentDidUpdate(){this.setupPaginationListener();}disconnectedCallback(){window.removeEventListener('resize',this.handleResize);}updateContainerWidth(){// Use hostWidth prop if provided; otherwise, measure parent element
|
|
1897
|
+
if(this.hostWidth&&this.hostWidth.trim()!==''){this.containerWidth=Number(this.hostWidth);}else if(this.hostEl.parentElement instanceof HTMLElement){this.containerWidth=this.hostEl.parentElement.getBoundingClientRect().width;}else {this.containerWidth=400;}}parseData(){try{this.tbData=parseData(this.data);this.totalRows=this.tbData.length;this.updateColumns();this.currentPage=1;}catch(error){// eslint-disable-next-line
|
|
1898
|
+
console.error('Failed to parse data:',error);this.tbData=[];}}parseConfig(){try{this.parsedConfig=typeof this.config==='string'?JSON.parse(this.config):this.config;}catch(error){// eslint-disable-next-line
|
|
1899
|
+
console.error('Failed to parse config:',error);this.parsedConfig={};}}setupPaginationListener(){if(!this.shouldEnablePagination()){return;}const paginationEl=this.hostEl.shadowRoot.querySelector('eds-pagination');if(paginationEl&&!paginationEl.hasAttribute('listener-attached')){paginationEl.addEventListener('page',event=>this.handlePageChange(event.detail.value));paginationEl.setAttribute('listener-attached','true');}}getFilteredRows(){return this.tbData.filter(row=>Object.values(row).some(value=>value.toString().toLowerCase().includes(this.searchQuery.toLowerCase())));}getPaginatedRows(){const sortedRows=this.getSortedRows();this.totalRows=sortedRows.length;const start=(this.currentPage-1)*this.rowsPerPage;return sortedRows.slice(start,start+this.rowsPerPage);}handlePageChange(newPage){this.currentPage=newPage;sendAnalytics({category:'ui-component',parentContext:null,tag:`${this.hostEl.tagName.toLowerCase()}/eds-pagination`,name:`${newPage}`||'',action:'page'});}handleSearch(event){this.searchQuery=event.target.value;this.currentPage=1;}renderCell(value,column){var _a;const format=(_a=this.parsedConfig[column])===null||_a===void 0?void 0:_a.format;return format==='uppercase'?value===null||value===void 0?void 0:value.toString().toUpperCase():format==='html'||format==='svg'?// 'svg' is deprecated, use 'html'
|
|
1900
|
+
h("div",{innerHTML:value}):format==='bold'?h("strong",null,value):format==='code'?h("code",null,value):value;}/**
|
|
1901
|
+
* Renders one action (button or checkbox) for a specific action‐name.
|
|
1902
|
+
* Used by the “Actions” column below.
|
|
1903
|
+
*/renderSingleActionCell(actionName,row){var _a;const act=this.parsedActions.find(a=>a.name===actionName);if(this.actionTemplate){return this.actionTemplate(row);}const type=act.type||'button';if(type==='checkbox'){const boundField=(_a=act.field)!==null&&_a!==void 0?_a:act.name;const checked=!!row[boundField];return h("eds-input-field",{name:`chc-${actionName}`,label:act.label,type:"checkbox",checked:checked,onChange:e=>this.emitAction(act.name,row,e.target.checked)});}// Let all action buttons be focusable naturally
|
|
1904
|
+
const showLabel=act.showLabel===true;const isBrandTheme=this.theme==='brand';// Use custom intent if provided, otherwise fall back to theme-based default
|
|
1905
|
+
const buttonIntent=act.intent||(isBrandTheme?'primary':'ghost');const btn=h("eds-button",{icon:act.icon,label:showLabel?act.label:null,iconPos:act.pos||'left',pill:true,size:"small",intent:buttonIntent,tabIndex:0,onClick:()=>this.emitAction(act.name,row)});return showLabel?btn:h("eds-tooltip",{content:act.label},btn);}emitAction(actionName,row,checked){sendAnalytics({category:'ui-component',parentContext:null,tag:`${this.hostEl.tagName.toLowerCase()}/action`,name:actionName,action:'click'});this.rowaction.emit({action:actionName,row,checked:!!checked});}shouldEnablePagination(){return this.paginationEnabled&&this.totalRows>this.rowsPerPage;}updateColumns(){var _a,_b;// Grab all data‐keys from the first row (if any) as before:
|
|
1906
|
+
this.columns=this.tbData.length>0?Object.keys(this.tbData[0]):[];// Instead of pushing each action.name, add just a single "actions" column
|
|
1907
|
+
if(((_b=(_a=this.parsedActions)===null||_a===void 0?void 0:_a.length)!==null&&_b!==void 0?_b:0)>0&&this.tbData.length>0){this.columns.push('actions');}}capitalize(str){return str.charAt(0).toUpperCase()+str.slice(1).toLowerCase();}getSortedRows(){const filtered=this.getFilteredRows();if(!this.sortColumn){return filtered;}return [...filtered].sort((a,b)=>{const aVal=a[this.sortColumn];const bVal=b[this.sortColumn];// Handle null/undefined
|
|
1908
|
+
if(aVal==null){return 1;}if(bVal==null){return -1;}// Compare values
|
|
1909
|
+
let comparison=0;if(typeof aVal==='number'&&typeof bVal==='number'){comparison=aVal-bVal;}else {comparison=String(aVal).localeCompare(String(bVal));}return this.sortDirection==='asc'?comparison:-comparison;});}renderCardView(rows){// Get data columns (exclude 'actions' column)
|
|
1910
|
+
const dataColumns=this.columns.filter(col=>{var _a;return col!=='actions'&&!((_a=this.parsedConfig[col])===null||_a===void 0?void 0:_a.hidden);});return h("div",{class:"card-grid"},rows.map(row=>h("div",{class:"data-card"},h("div",{class:"card-content"},dataColumns.map(col=>h("div",{class:"card-field"},h("span",{class:"card-label"},this.capitalize(col)),h("span",{class:"card-value"},this.renderCell(row[col],col))))),this.parsedActions.length>0&&h("div",{class:"card-actions"},this.parsedActions.map(act=>h("span",null,this.renderSingleActionCell(act.name,row)))))));}renderTableView(paginatedRows){return h("div",{class:`mt-20 ${this.theme==='brand'?'brand-table-wrapper':''}`},h("table",{class:`${this.theme==='brand'?'':'block overflow-x-auto'} mt-6 p-0 ${this.theme==='brand'?'brand-table':''}`},h("thead",{class:this.theme==='brand'?'brand-thead':''},h("tr",{class:`m-0 p-0 border border-softer table-row-${this.theme} ${this.theme==='brand'?'brand-header-row':''}`},this.columns.filter(col=>{var _a;return col==='actions'||!((_a=this.parsedConfig[col])===null||_a===void 0?void 0:_a.hidden);}).map(col=>{if(col==='actions'){return h("th",{class:"m-0 py-8 border border-softer f-ui-02 break-words"});}return h("th",{class:"m-0 py-8 border border-softer f-ui-02 break-words"},h("div",{style:{display:'flex',alignItems:'center',justifyContent:'center',gap:'0.25rem'}},h("span",null,this.capitalize(col)),this.sortingEnabled&&h("eds-icon-wrapper",{name:this.sortColumn===col?this.sortDirection==='asc'?'chevron-up':'chevron-down':'chevron-down',"aria-label":`Sort by ${col}`,onClick:()=>this.handleSort(col),style:{cursor:'pointer'}})));}))),h("tbody",null,paginatedRows.map(row=>h("tr",{class:`m-0 p-0 border border-softer table-row-${this.theme} ${this.theme==='brand'?'brand-row':''} ${this.parsedActions.length>0?'has-actions':''}`},this.columns.filter(col=>{var _a;return col==='actions'||!((_a=this.parsedConfig[col])===null||_a===void 0?void 0:_a.hidden);}).map(col=>{if(col==='actions'){return h("td",{class:"text-center border border-softer m-0 f-ui-01 break-words actions-cell"},h("div",{role:"toolbar","aria-label":"Row actions",onKeyDown:this.onActionKeyDown,style:{display:'flex',gap:'0.5rem',justifyContent:'center',flexWrap:'wrap'}},this.parsedActions.map(act=>h("span",{style:{whiteSpace:'nowrap'}},this.renderSingleActionCell(act.name,row)))));}// Regular data cell
|
|
1911
|
+
return h("td",{class:"text-center border border-softer m-0 py-8 f-ui-02 break-words"},this.renderCell(row[col],col));}))))));}render(){const paginatedRows=this.getPaginatedRows();const lastPage=Math.ceil(this.totalRows/this.rowsPerPage);const showControls=this.showViewToggle||this.searchEnabled;return h("div",{key:'1e8a2f5f19df240ee3a57951641b60b947342fad'},showControls&&h("div",{key:'778fe091226330448bba089189e9dd6a6aa977a9',class:"controls-container flex-col flex-md-row items-start items-md-center justify-between gap-16 mb-16"},this.showViewToggle&&h("div",{key:'7ef287464bb2fba846be5341f4bb0e71d982be0e',class:"view-toggle-wrapper"},h("eds-switch",{key:'2d3a494a5b354a14c8e882a153633bd5e85a40ab',variant:"segmented",labelOff:"Table View",labelOn:"Card View",checked:this.view==='card',onUiswitch:this.handleViewChange})),this.searchEnabled&&h("div",{key:'dfcf6d0bdc23cb10481121881a7656b02a0599c1',class:`search-wrapper w-full ${this.showViewToggle?'w-md-400':''}`},h("eds-input-field",{key:1,icon:"search",name:"search","aria-label":"Search",type:"text",placeholder:"Search...",onInput:event=>this.handleSearch(event)}))),this.view==='card'?this.renderCardView(paginatedRows):this.renderTableView(paginatedRows),this.shouldEnablePagination()&&h("div",{key:'3f7faafdd6147855cb8812ff6303c335c7fd1f35',class:"mt-20"},h("eds-pagination",{key:'17705ba01a8ca8cc79bacfce34e55f11ce53d70c',currentPage:this.currentPage,lastPage:lastPage,perPage:this.rowsPerPage,total:this.totalRows,mode:"default"})));}get hostEl(){return getElement(this);}static get watchers(){return {"data":["handleDataChange","parseData"],"config":["handleConfigChange"],"actions":["handleActionsChange"]};}};EdsTable.style=EdsTableStyle0;const edsTabsCss=":host{display:block}.tabs-container{display:flex;gap:0.25rem;padding:0.25rem;border-radius:10px;width:fit-content;margin-bottom:3rem}.tabs-container-default{background-color:var(--brand-black, #07140D);border:1px solid rgba(255, 255, 255, 0.06)}.tabs-container-inverse{background:rgba(0, 0, 0, 0.02);border:1px solid rgba(0, 0, 0, 0.06)}.tabs-nav{display:flex;gap:0.25rem}.tab{padding:0.625rem 1.25rem;border-radius:8px;font-size:1.125rem;cursor:pointer;transition:color 0.15s ease;border:none;background:transparent;font-family:'IBM Plex Sans', sans-serif;white-space:nowrap;outline:none}.tab:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}.tab-default{color:var(--grey-700)}.tab-default:hover{color:var(--white)}.tab-default.tab-active{background:rgba(0, 255, 157, 0.1);color:var(--brand-green)}.tab-inverse{color:var(--grey-700)}.tab-inverse:hover{color:var(--brand-black)}.tab-inverse.tab-active{background:rgba(0, 200, 123, 0.1);color:var(--brand-green-dark)}.tab-panels{margin-top:2rem}.tab-panels>div{outline:none}.tab-panels>div:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px;border-radius:4px}@media (max-width: 768px){.tabs-container{width:100%;overflow-x:auto}.tabs-nav{width:100%;min-width:fit-content}}";const EdsTabsStyle0=edsTabsCss;const EdsTabs=class{constructor(hostRef){registerInstance(this,hostRef);this.tab=createEvent(this,"tab",7);this.tabRefs=[];this.setTabRef=(el,index)=>{if(el){this.tabRefs[index]=el;}};this.identifier=undefined;this.navAriaLabel='Tabs';this.tabs=undefined;this.variant='default';this.parsedTabs=[];this.activeIndex=-1;}componentWillLoad(){this.parseTabs();this.setActiveIndex();this.tab.emit({tabId:this.identifier,index:this.activeIndex});}/**
|
|
1912
|
+
* Parses the `tabs` prop into an array of tab objects.
|
|
1913
|
+
*
|
|
1914
|
+
* Note: we deliberately do NOT clear `tabRefs` here. Consumers
|
|
1915
|
+
* often re-pass `tabs` with an updated `active` flag every time
|
|
1916
|
+
* the user switches tabs (Vue/React re-render on event). Wiping
|
|
1917
|
+
* the refs leaves a window in which a queued focus() call sees
|
|
1918
|
+
* `tabRefs[index] === undefined` and silently no-ops — focus
|
|
1919
|
+
* gets stuck on the previous tab even though `aria-selected` and
|
|
1920
|
+
* the background already moved. Stencil re-binds refs on render,
|
|
1921
|
+
* so the array stays in sync without us emptying it; we only
|
|
1922
|
+
* truncate when the new list is shorter to drop stale entries.
|
|
1923
|
+
*/parseTabs(){this.parsedTabs=parseData(this.tabs);if(this.tabRefs.length>this.parsedTabs.length){this.tabRefs.length=this.parsedTabs.length;}}componentDidUpdate(){// Same reasoning as parseTabs: only shrink, never re-allocate
|
|
1924
|
+
// to nulls — that would re-introduce the silent-no-op window.
|
|
1925
|
+
if(this.tabRefs.length>this.parsedTabs.length){this.tabRefs.length=this.parsedTabs.length;}}setActiveIndex(){this.activeIndex=this.parsedTabs.findIndex(tab=>tab.active);if(this.activeIndex===-1&&this.parsedTabs.length>0){this.activeIndex=0;this.parsedTabs[0].active=true;}}handleTabClick(index,tabLabel,shouldFocus=true){var _a;if(index<0||index>=this.parsedTabs.length){return;}this.activeIndex=index;this.parsedTabs=this.parsedTabs.map((tab,tabIndex)=>Object.assign(Object.assign({},tab),{active:tabIndex===index}));this.tab.emit({tabId:this.identifier,index:index,name:tabLabel});if(shouldFocus){sendAnalytics({category:'ui-component',tag:this.el.tagName.toLowerCase(),name:(tabLabel===null||tabLabel===void 0?void 0:tabLabel.toLowerCase())||'',action:'click'});}if(shouldFocus){// Focus must move SYNCHRONOUSLY, while the keydown event
|
|
1926
|
+
// that triggered this call is still on the stack. Otherwise
|
|
1927
|
+
// the browser's `:focus-visible` heuristic doesn't flag the
|
|
1928
|
+
// focus move as keyboard-driven and the outline never paints
|
|
1929
|
+
// — accessibility regression (WCAG 2.4.7).
|
|
1930
|
+
//
|
|
1931
|
+
// We query by static id (`#tab-${index}`) instead of using
|
|
1932
|
+
// `tabRefs[index]` because consumer-driven prop changes can
|
|
1933
|
+
// briefly drop the cached ref. The button id is set in
|
|
1934
|
+
// `render()` and doesn't depend on active state, so it is
|
|
1935
|
+
// always findable.
|
|
1936
|
+
const findBtn=()=>{var _a;return ((_a=this.el.shadowRoot)!==null&&_a!==void 0?_a:this.el).querySelector(`#tab-${index}`);};(_a=findBtn())===null||_a===void 0?void 0:_a.focus();// Belt-and-suspenders: if a consumer reacts to the `tab`
|
|
1937
|
+
// event by re-rendering our buttons (rare, but possible
|
|
1938
|
+
// when the `tabs` prop is recomputed), the sync focus above
|
|
1939
|
+
// landed on a button that is now detached. Re-focus once
|
|
1940
|
+
// the next frame's DOM is in place. We only act if focus
|
|
1941
|
+
// genuinely isn't on the right element, to avoid a redundant
|
|
1942
|
+
// focus call that would reset selection/IME state.
|
|
1943
|
+
requestAnimationFrame(()=>{var _a;const after=findBtn();if(after&&((_a=this.el.shadowRoot)===null||_a===void 0?void 0:_a.activeElement)!==after){after.focus();}});}}onKeyDown(ev,idx){let newIndex=idx;switch(ev.key){case'ArrowRight':newIndex=(idx+1)%this.parsedTabs.length;ev.preventDefault();break;case'ArrowLeft':newIndex=(idx-1+this.parsedTabs.length)%this.parsedTabs.length;ev.preventDefault();break;case'Home':newIndex=0;ev.preventDefault();break;case'End':newIndex=this.parsedTabs.length-1;ev.preventDefault();break;default:return;}if(newIndex!==idx){this.handleTabClick(newIndex,this.parsedTabs[newIndex].label,true);}}render(){const containerClasses=['tabs-container',`tabs-container-${this.variant}`].join(' ');return h("div",{key:'646f43031cde2e0ab84d2830fd9477841b3c757b',id:`${this.identifier}`},h("div",{key:'2eb01c96640c6fc602777f227525066e5970489e',class:containerClasses},h("nav",{key:'b419fc7414574ea70b19433a3c5daa63b5ad6652',role:"tablist",class:"tabs-nav","aria-label":this.navAriaLabel},this.parsedTabs.map((tab,index)=>{const isActive=index===this.activeIndex;const tabClasses=['tab',`tab-${this.variant}`,isActive?'tab-active':''].filter(Boolean).join(' ');return h("button",{class:tabClasses,type:"button",role:"tab","aria-selected":isActive?'true':'false',tabIndex:isActive?0:-1,"aria-label":tab.ariaLabel||tab.label,"aria-controls":`panel-${index}`,id:`tab-${index}`,ref:el=>this.setTabRef(el,index),onClick:()=>this.handleTabClick(index,tab.label,true),onKeyDown:e=>this.onKeyDown(e,index)},tab.label||tab.ariaLabel);}))),h("div",{key:'0ce244b3d2b2120d1bdf127144e9b42e2ad34e52',class:"tab-panels"},this.parsedTabs.map((_,index)=>h("div",{role:"tabpanel",id:`panel-${index}`,"aria-labelledby":`tab-${index}`,hidden:index!==this.activeIndex,tabIndex:index===this.activeIndex?0:-1},h("slot",{name:`panel-${index}`})))));}get el(){return getElement(this);}static get watchers(){return {"tabs":["parseTabs"]};}};EdsTabs.style=EdsTabsStyle0;const edsTagCss=" .f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n }\n\n .f-ui-03 {\n font-family: var(--f-ui-03-fontFamily);\n font-size: var(--f-ui-03-fontSize);\n line-height: var(--f-ui-03-lineHeight);\n letter-spacing: var(--f-ui-03-letterSpacing);\n }\n\n .f-ui-05 {\n font-family: var(--f-ui-05-fontFamily);\n font-size: var(--f-ui-05-fontSize);\n line-height: var(--f-ui-05-lineHeight);\n letter-spacing: var(--f-ui-05-letterSpacing);\n }\n\n .py-2 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n }\n\n .py-3 {\n padding-top: 0.1875rem;\n padding-bottom: 0.1875rem;\n }\n\n .py-4 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n\n .px-4 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n }\n\n .px-5 {\n padding-left: 0.3125rem;\n padding-right: 0.3125rem;\n }\n\n .px-6 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n }\n\n .px-8 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n\n .border-2 {\n border-width: 2px;\n }\n\n .rounded-xs {\n border-radius: 4px;\n }\n\n .rounded-xxs {\n border-radius: 2px;\n }\n\n .rounded-pill {\n border-radius: 100px;\n }\n\n .border-default {\n border-color: var(--brand-black);\n }\n\n .border-grey-dark {\n border-color: var(--grey-dark);\n }\n\n .border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 0;\n border-radius: 8px;\n border-width: 1px;\n border-style: solid;\n content: '';\n }\n\n /* Ensure text content is above the border */\n &>* {\n position: relative;\n z-index: 1;\n }\n }\n\n .border-inside-inverse {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 0;\n border-radius: 8px;\n border-width: 2px;\n border-style: solid;\n border-color: rgba(255, 255, 255, 1);\n /* white border */\n content: '';\n }\n\n /* Ensure text content is above the border */\n &>* {\n position: relative;\n z-index: 1;\n }\n }\n\n .border-inside-pill {\n &::after {\n border-radius: 100px;\n /* pill shape */\n content: '';\n }\n }\n\n .border-inside-inverse.border-inside-pill {\n &::after {\n border-radius: 100px;\n /* pill shape for inverse border */\n }\n }\n\n /* Override border-radius for tags with rounded-xs */\n .rounded-xs.border-inside {\n &::after {\n border-radius: 4px;\n }\n }\n\n .rounded-xs.border-inside-inverse {\n &::after {\n border-radius: 4px;\n }\n }\n\n .border-accent {\n border-color: var(--brand-green);\n /* NEW: #00FF9D */\n }\n\n\n .border-inverse {\n border-color: var(--white);\n /* NEW: #00FF9D */\n }\n\n\n .border-accent-dark {\n border-color: var(--brand-green-dark);\n /* NEW: #00FF9D */\n }\n\n .border-soft {\n border-color: var(--grey-dark);\n }\n\n .border-softest {\n border-color: var(--grey-light);\n }\n\n .bg-transparent {\n background-color: transparent;\n }\n\n .text-inverse {\n color: var(--white);\n }\n\n .text-accent {\n color: var(--brand-green);\n }\n\n .text-accent-dark {\n color: var(--brand-green-dark);\n }\n\n .bg-accent {\n background-color: var(--brand-green);\n }\n\n .bg-accent-dark {\n background-color: var(--brand-green-dark);\n }\n\n .bg-strongest {\n background-color: var(--brand-black);\n }\n\n .text-\\[\\#0034CB\\] {\n --tw-text-opacity: 1;\n color: rgb(0 52 203 / var(--tw-text-opacity));\n }\n\n .border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border: 2px solid rgb(0 52 203 / var(--tw-border-opacity));\n }\n\n .text-light {\n color: var(--grey-dark);\n }\n\n .bg-strongest-soft {\n background-color: rgba(0, 0, 0, .05);\n }\n\n .border-transparent {\n border-color: var(--transparent);\n }\n\n .border-inverse {\n border-color: var(--white);\n }\n\n .bg-inverse {\n background-color: var(--white);\n }\n\n .text-lighter {\n color: var(--grey-dark);\n }\n\n .items-center {\n align-items: center;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .inline-flex {\n display: inline-flex;\n }";const EdsTagStyle0=edsTagCss;// Define the CVA for the tag styles
|
|
1944
|
+
const tagStyles=cva(['relative inline-flex justify-center items-center py-8 rounded-xs'],// Base classes
|
|
1945
|
+
{variants:{intent:{primary:'border-inside bg-inverse text-default',dark:'border-inside border-softest bg-inverse text-light',inverse:'border-inside bg-transparent text-inverse border-inverse',strong:'bg-strongest text-inverse',brand:'border-inside bg-transparent border-accent text-accent','brand-dark':'border-inside bg-transparent border-accent-dark text-accent-dark'},size:{small:'f-ui-05 py-2 px-4',// smaller padding
|
|
1946
|
+
medium:'f-ui-03 py-3 px-6',// moderate padding
|
|
1947
|
+
large:'f-ui-01 py-4 px-8'// larger padding
|
|
1948
|
+
}},defaultVariants:{intent:'primary',size:'small'}});const EdsTag=class{constructor(hostRef){registerInstance(this,hostRef);this.label=undefined;this.intent='brand';this.size='large';}render(){const classes=tagStyles({intent:this.intent,size:this.size});return h("span",{key:'20e1625ac01b0dc1f40356d02622e0649faa7fa7',class:classes},h("span",{key:'313c3f18c0a5df285afe6a40ded9e68035d9648f',style:{position:'relative',zIndex:'1'}},this.label));}};EdsTag.style=EdsTagStyle0;const edsToastCss=".relative{position:relative}.right-4{right:0.25rem}.bottom-4{bottom:0.25rem}.w-auto{width:auto}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:0.25rem}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.ml-8{margin-left:0.5rem}.p-12{padding:0.75rem}.rounded-sm{border-radius:8px}.rounded-xs{border-radius:4px}.rounded-lg{border-radius:16px}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),\n 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.bg-dark{background-color:var(--grey-light)}.bg-success{background-color:var(--brand-green)}.bg-error{background-color:var(--red-200)}.bg-warning{background-color:var(--yellow-200)}.text-light{color:var(--grey-dark)}.text-current{color:currentColor}.text-default{color:var(--brand-black)}.text-accent{color:var(--brand-green)}.bg-inverse{background-color:var(--white)}.bg-strongest{background-color:var(--brand-black)}.border-l-\\[3px\\]{border-left-width:3px}.border-accent{border-color:var(--brand-green)}.py-16{padding-top:1rem;padding-bottom:1rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.rounded-r-4{border-top-right-radius:4px;border-bottom-right-radius:4px}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.opacity-50{opacity:0.5}.hover\\:opacity-100:hover{opacity:1}";const EdsToastStyle0=edsToastCss;const toastStyles=cva(['relative bottom-4 w-auto rounded-xs p-12'],{variants:{intent:{default:'bg-dark text-dark',success:'bg-success text-dark',error:'bg-error text-dark',warning:'bg-warning text-dark',brand:'bg-strongest text-accent',brandInverse:'bg-inverse text-default'}},defaultVariants:{intent:'default'}});const EdsToast=class{constructor(hostRef){registerInstance(this,hostRef);this.toast=createEvent(this,"toast",7);/**
|
|
1949
|
+
* Dismisses the toast.
|
|
1950
|
+
*/this.dismissToast=()=>{this.toast.emit({visible:false,label:'dismissed'});this.visible=false;};this.message=undefined;this.intent='default';this.duration=undefined;this.visible=true;}componentDidLoad(){const btn=this.el.shadowRoot.querySelector('eds-button');this.emitContext(btn);}/**
|
|
1951
|
+
* Emits a custom event called `parentContext` for a given button element.
|
|
1952
|
+
* This event provides context information about the toast component.
|
|
1953
|
+
*
|
|
1954
|
+
* @param btnElement - The link element to which the event will be dispatched.
|
|
1955
|
+
*/emitContext(btnElement){const event=new CustomEvent('parentContext',{detail:{componentName:this.el.tagName.toLowerCase(),identifier:null}});btnElement.dispatchEvent(event);}connectedCallback(){if(this.duration&&this.duration>0){this.dismissTimeout=setTimeout(this.dismissToast,this.duration);}}disconnectedCallback(){// Clear the timeout when the component is removed
|
|
1956
|
+
clearTimeout(this.dismissTimeout);}render(){if(!this.visible){return null;}const classes=toastStyles({intent:this.intent});return h("div",{class:classes,role:"alert","aria-live":"assertive"},h("div",{class:"flex items-center justify-between gap-4"},h("span",{class:"f-ui-02"},this.message),h("eds-button",{intent:"ghost",size:"large",icon:"close","aria-label":"Close Toast",onClick:()=>this.dismissToast(),"extra-class":"ml-8"})));}get el(){return getElement(this);}};EdsToast.style=EdsToastStyle0;const edsTooltipCss=".relative{position:relative}.absolute{position:absolute}.inline-block{display:inline-block}.rounded-xs{border-radius:4px}.bg-strongest{background-color:var(--black)}.text-inverse{color:var(--white)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.pointer-events-none{pointer-events:none}.left-1\\/2{left:50%}.z-10{z-index:10}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.whitespace-nowrap{white-space:nowrap}.p-6{padding:0.375rem}.px-4{padding-left:0.25rem;padding-right:0.25rem}.top-full{top:100%}.bottom-full{bottom:100%}.right-full{right:100%}.left-full{left:100%}.mr-2{margin-right:0.125rem}.ml-2{margin-left:0.125rem}.mt-2{margin-top:0.125rem}.mb-2{margin-bottom:0.125rem}.opacity-0{opacity:0}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-150{transition-duration:150ms}.ease-in-out{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.group:hover .group-hover\\:opacity-100{opacity:1}.max-w-\\[20rem\\]{max-width:20rem}.whitespace-normal{white-space:normal}.break-words{overflow-wrap:break-word}.w-full{width:100%}";const EdsTooltipStyle0=edsTooltipCss;const EdsTooltip=class{constructor(hostRef){registerInstance(this,hostRef);this.content=undefined;this.position='top';}/** fire analytics on every hover */handleHover(){sendAnalytics({category:'ui-component',tag:this.el.tagName.toLowerCase(),name:this.content.toLowerCase(),action:'hover'});}render(){const positionClass=this.position==='bottom'?'top-full mt-2':'bottom-full mb-2';return h("div",{key:'8b4396894b1ec7cc1c2d928ffa5b3d7628f8c4ee',class:"relative w-full inline-block group"},h("slot",{key:'c2547098aacc584960f217edcafeb060ce742adc'}),h("div",{key:'1e6beac7e4294456f7a6130c4b0573cce3e4b548',class:`absolute ${positionClass}
|
|
1957
|
+
rounded-xs bg-strongest text-inverse
|
|
1958
|
+
f-ui-03-light pointer-events-none
|
|
1959
|
+
z-10 px-4 opacity-0 transition-opacity duration-150 ease-in-out
|
|
1960
|
+
group-hover:opacity-100 whitespace-normal break-words`,role:"tooltip"},this.content));}get el(){return getElement(this);}};EdsTooltip.style=EdsTooltipStyle0;const edsUserCss="hr,p{margin:0}.block{display:block}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.text-default{color:var(--black)}.min-w-\\[280px\\]{min-width:280px}.p-8{padding:0.5rem}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.gap-y-8{row-gap:0.5rem}.pb-16{padding-bottom:1rem}.border-b-2{border-bottom-width:2px}.border-softer{border-color:rgba(0, 0, 0, .1 )}.max-w-full{max-width:100%}.w-full{width:100%}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.text-light{color:var(--grey-700)}.mt-4{margin-top:0.25rem}.mt-16{margin-top:1rem}";const EdsUserStyle0=edsUserCss;const EdsUser=class{constructor(hostRef){registerInstance(this,hostRef);this.handleDropdown=e=>{this.expanded=e.detail.expanded;};this.user=undefined;this.intent='ghost';this.dropdownLabel='Account';this.expanded=false;this.shortMode=false;}/**
|
|
1961
|
+
* Helper getter to ensure we work with a User object.
|
|
1962
|
+
*/get parsedUser(){if(typeof this.user==='string'){try{return JSON.parse(this.user);}catch(error){//console.error('Failed to parse user JSON:', error);
|
|
1963
|
+
return {};}}return this.user;}async componentWillLoad(){}get initials(){var _a,_b,_c,_d;const user=this.parsedUser;const initials=`${((_a=user.given_name)===null||_a===void 0?void 0:_a.charAt(0))||''}${((_b=user.family_name)===null||_b===void 0?void 0:_b.charAt(0))||''}`.toUpperCase();return initials||((_d=(_c=user.name)===null||_c===void 0?void 0:_c.charAt(0))===null||_d===void 0?void 0:_d.toUpperCase())||'';}async closeDropdown(){var _a;await((_a=this.dropdownEl)===null||_a===void 0?void 0:_a.close());this.expanded=false;}render(){const user=this.parsedUser;//const iconName = this.expanded ? 'chevron-down' : 'chevron-right';
|
|
1964
|
+
return h("div",{key:'1a9c56a4868b68ea95fdbb19a61435f5fa23b1b5',class:"block"},h("div",{key:'242beb1cf3dc3e545be84003615eaed119be3e20',class:"flex items-center"},h("eds-dropdown",{key:'e75e0305a60936df4deb5b012fa139ca9a6b024f',ref:el=>this.dropdownEl=el,intent:this.intent,"aria-label":"User Menu","dropdown-pos":"right","dropdown-offset":"false",icon:"user",label:this.dropdownLabel,class:"text-default",onDropdown:this.handleDropdown},h("div",{key:'09c74d1320e9637e50f7e0f8482e435db7a3319a',class:"min-w-[280px] p-8"},h("div",{key:'fa70ecc13e477cf2d2ead8e8dbab4fa3c3587149',class:"flex gap-x-16","data-dropdown-no-close":true},h("eds-avatar",{key:'69f059e2002237dd874ba62952c2b014ad94cb8a',"first-name":user.given_name,"last-name":user.family_name,initials:this.initials,color:"black"}),h("div",{key:'c300f3bbe7f57d82913cef614637188babb82818',class:"max-w-full"},user.name&&h("p",{key:'dc1a4a26f6c1da6c6e88e5aae484ca2ada2864e6',class:"f-ui-01 text-default w-full text-ellipsis"},user.name),user.preferred_username&&h("p",{key:'76f94c7b0394125d9a6b547722df5545c6b479fd',class:"f-ui-03-light text-light mt-4"},user.preferred_username),user.email&&h("p",{key:'8be3fe5ba1c302d5ef9bfb6d563070c07ed722ca',class:"f-ui-03-light text-light mt-4"},user.email))),h("div",{key:'191e365fa893122e09c07aa36d1fde5d28b9b3de',class:"text-default flex w-full flex-col gap-y-8"},h("slot",{key:'8d3fbd032340d5c32fd93ab89b034e7de25ef2e3'}))))));}get hostEl(){return getElement(this);}};EdsUser.style=EdsUserStyle0;
|
|
1965
|
+
|
|
1966
|
+
export { EdsAccordion as eds_accordion, EdsAlert as eds_alert, EdsAvatar as eds_avatar, EdsBlockBreak as eds_block_break, EdsBreadcrumb as eds_breadcrumb, EdsButton as eds_button, EdsCardApp as eds_card_app, EdsCardCta as eds_card_cta, EdsCardDesc as eds_card_desc, EdsCardFeature as eds_card_feature, EdsCardGeneric as eds_card_generic, EdsCardHero as eds_card_hero, EdsCardStat as eds_card_stat, EdsCardTitle as eds_card_title, EdsCodeBlock as eds_code_block, EdsDropdown as eds_dropdown, EdsFooter as eds_footer, EdsForm as eds_form, EdsFullscreenMenu as eds_fullscreen_menu, EdsGlobalSearch as eds_global_search, EdsHeader as eds_header, EdsIconWrapper as eds_icon_wrapper, EdsImg as eds_img, EdsInput as eds_input, EdsInputDropzone as eds_input_dropzone, EdsInputField as eds_input_field, EdsInputFile as eds_input_file, EdsInputFooter as eds_input_footer, EdsInputLabel as eds_input_label, EdsInputRange as eds_input_range, EdsInputSelect as eds_input_select, EdsKgLearningResources as eds_kg_learning_resources, EdsKgWebServicesSelect as eds_kg_web_services_select, EdsLink as eds_link, EdsLogo as eds_logo, EdsMatomoNotice as eds_matomo_notice, EdsNps as eds_nps, EdsPagination as eds_pagination, EdsProgressBar as eds_progress_bar, EdsRating as eds_rating, EdsSearchSelect as eds_search_select, EdsSidebar as eds_sidebar, EdsSocialNetworks as eds_social_networks, EdsSpinner as eds_spinner, EdsSteps as eds_steps, EdsStepsV2 as eds_steps_v2, EdsSwitch as eds_switch, EdsTable as eds_table, EdsTabs as eds_tabs, EdsTag as eds_tag, EdsToast as eds_toast, EdsTooltip as eds_tooltip, EdsUser as eds_user };
|