@stenajs-webui/panels 23.3.0 → 23.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -38,4 +38,5 @@ export * from "./components/cards/product-card/SelectedProductCard";
38
38
  export * from "./components/cards/product-summary-card/ProductSummaryCard";
39
39
  export * from "./components/cards/product-summary-card/ProductSummaryCardSkeletor";
40
40
  export * from "./components/image-carousel/ImageCarousel";
41
+ export * from "./components/image-carousel/FullscreenImageCarousel";
41
42
  export * from "./utils/UseDeviceSize";
package/dist/index.es.js CHANGED
@@ -1107,6 +1107,7 @@ export {
1107
1107
  gt as CollapsibleWithCheckbox,
1108
1108
  Cn as ErrorPanel,
1109
1109
  ft as ErrorScreen,
1110
+ qn as FullscreenImageCarousel,
1110
1111
  Ot as ImageCarousel,
1111
1112
  wn as LoadingPanel,
1112
1113
  xt as LoadingScreen,
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode("._navBar_kzibd_1{--swui-navbar-background-color: var(--lhds-color-ui-50);--swui-navbar-item-background-color-hover: var(--lhds-color-blue-700);--swui-navbar-item-background-color-selected: var(--lhds-color-blue-600);--swui-navbar-item-background-color-selected-hover: var( --lhds-color-blue-700 );--swui-nav-bar-height: 48px;background-color:var(--swui-navbar-background-color);height:var(--swui-nav-bar-height);min-height:var(--swui-nav-bar-height)}._navBarButton_b3x3w_1:hover{background:var(--lhds-color-ui-100)}._navBarButton_b3x3w_1:focus-visible{background:var(--lhds-color-ui-200)}._navBarButton_b3x3w_1:active{background:var(--lhds-color-ui-200)}._navBarButton_b3x3w_1._selected_b3x3w_14{background:var(--lhds-color-blue-200)}._navBarButton_b3x3w_1._selected_b3x3w_14:hover{background:var(--lhds-color-blue-100)}._navBarButton_b3x3w_1._selected_b3x3w_14:focus-visible{background:var(--lhds-color-blue-300)}._navBarButton_b3x3w_1._selected_b3x3w_14:active{background:var(--lhds-color-blue-200)}._navBarNotificationButton_1wt3y_1{--current-background-color: var(--lhds-color-ui-400);--current-outline-color: var(--modern-blue);background-color:var(--current-background-color);border-color:transparent;color:var(--lhds-color-ui-50);--swui-nav-bar-notification-shake-count: 3;transition:.5s width}._navBarNotificationButton_1wt3y_1:hover{--current-background-color: var(--lhds-color-red-500);--current-outline-color: var(--lhds-color-red-500)}._navBarNotificationButton_1wt3y_1:active{--current-background-color: var(--lhds-color-red-600);--current-outline-color: var(--lhds-color-red-600)}._navBarNotificationButton_1wt3y_1._unread_1wt3y_23 ._icon_1wt3y_23{transform-origin:top center;animation:_shake_1wt3y_1 1.5s ease-in-out var(--swui-nav-bar-notification-shake-count)}._navBarNotificationButton_1wt3y_1._unread_1wt3y_23{--current-background-color: var(--lhds-color-red-500);--current-outline-color: var(--lhds-color-red-500)}._navBarNotificationButton_1wt3y_1._unread_1wt3y_23:hover{--current-background-color: var(--lhds-color-red-600);--current-outline-color: var(--lhds-color-red-600)}._navBarNotificationButton_1wt3y_1._unread_1wt3y_23:active{--current-background-color: var(--lhds-color-red-700);--current-outline-color: var(--lhds-color-red-700)}._navBarNotificationButton_1wt3y_1:focus-visible{outline:var(--swui-focus-outline);outline-color:var(--current-outline-color);outline-offset:var(--swui-focus-outline-width)}@keyframes _shake_1wt3y_1{0%{transform:rotate(0)}7%{transform:rotate(20deg)}15%{transform:rotate(-20deg)}22%{transform:rotate(16deg)}30%{transform:rotate(-16deg)}38%{transform:rotate(6deg)}42%{transform:rotate(-6deg)}46%{transform:rotate(2deg)}to{transform:rotate(0)}}._navBarSearchFieldInput_1rp8g_1._navBarSearchFieldInput_1rp8g_1{line-height:2.7rem;color:var(--lhds-color-ui-800)}._navBarSearchFieldInput_1rp8g_1._navBarSearchFieldInput_1rp8g_1::placeholder{color:var(--lhds-color-blue-600)}._navBarSearchFieldInput_1rp8g_1._navBarSearchFieldInput_1rp8g_1{padding:0 var(--swui-metrics-indent)}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12{background:var(--lhds-color-ui-200);border-color:transparent}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12:hover{border-color:transparent}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12{padding:0 var(--swui-metrics-indent);border-radius:var(--swui-max-border-radius)}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12._withButton_1rp8g_24{padding-right:1px}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12:focus-within{color:var(--lhds-color-ui-800);background:var(--lhds-color-ui-50)}._navBarSearchFieldWrapper_1rp8g_12._navBarSearchFieldWrapper_1rp8g_12 ._clearButton_1rp8g_33{border-radius:var(--swui-max-border-radius)}._navBarUserButton_10f9z_1:hover{background:var(--lhds-color-ui-100)}._navBarUserButton_10f9z_1:focus-visible{background:var(--lhds-color-ui-200)}._navBarUserButton_10f9z_1:active{background:var(--lhds-color-ui-200)}._sidebarMenuCollapsibleGroupBox_ikek9_1{background:var(--lhds-color-ui-200);border-radius:var(--swui-border-radius);gap:var(--swui-metrics-space);display:flex;flex-direction:column;padding:var(--swui-metrics-space);--current-text-size: var(--swui-font-size-small)}._selectionRow_1njaw_1{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:calc(var(--swui-metrics-space) * 2)}@media (max-width: 370px){._iconColumn_1njaw_9{display:none}}._sidebarMenu_1bx5w_1{--swui-sidebar-menu-separator-color: var(--swui-white);--swui-sidebar-menu-text-color: var(--lhds-color-ui-900);--swui-sidebar-menu-icon-color: var(--lhds-color-ui-900);--swui-sidebar-menu-background-color: transparent;--swui-sidebar-menu-background-color-hover: var(--lhds-color-ui-400);--swui-sidebar-menu-background-color-focus: var(--lhds-color-ui-400);--swui-sidebar-menu-background-color-active: var(--lhds-color-ui-300);--swui-sidebar-menu-background-selected: var(--lhds-color-blue-100);--swui-sidebar-menu-background-selected-hover: var(--lhds-color-blue-200);--swui-sidebar-menu-background-selected-focus: var(--lhds-color-blue-200);--swui-sidebar-menu-background-selected-active: var(--lhds-color-blue-100);--current-background-color: var(--swui-sidebar-menu-background-color);--current-background-color-hover: var( --swui-sidebar-menu-background-color-hover );--current-background-color-focus: var( --swui-sidebar-menu-background-color-focus );--current-background-color-active: var( --swui-sidebar-menu-background-color-active );--current-background-selected: var(--swui-sidebar-menu-background-selected);--current-background-selected-hover: var( --swui-sidebar-menu-background-selected-hover );--current-background-selected-focus: var( --swui-sidebar-menu-background-selected-focus );--current-background-selected-active: var( --swui-sidebar-menu-background-selected-active )}._sidebarMenu_1bx5w_1 ._sidebarItems_1bx5w_38{--current-separator-color: var(--swui-sidebar-menu-separator-color);--current-text-color: var(--swui-sidebar-menu-text-color);--current-icon-color: var(--swui-sidebar-menu-icon-color)}._sidebarMenu_1bx5w_1{background-color:var(--current-background-color);height:100dvh}._sidebarMenu_1bx5w_1 ._scrollContainer_1bx5w_48{background:var(--current-background-color);height:100%;overflow:auto}._stenaFlag_108h7_1{height:32px}._productCard_19x6b_1{max-width:560px}@media (max-width: 768px){._productCard_19x6b_1{max-width:unset}}.yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{inset:0;opacity:0;overflow:hidden;position:fixed;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));inset:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translate(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{display:flex;justify-content:flex-end;inset:0 0 auto auto;padding:var(--yarl__toolbar_padding,8px);position:absolute}[dir=rtl] .yarl__toolbar{inset:0 auto auto 0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}.yarl__counter{bottom:var(--yarl__counter_bottom,unset);color:var(--yarl__counter_color,var(--yarl__color_button,hsla(0,0%,100%,.8)));filter:var(--yarl__counter_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));left:var(--yarl__counter_left,0);line-height:var(--yarl__counter_line_height,var(--yarl__icon_size,32px));margin:var(--yarl__counter_margin,var(--yarl__toolbar_padding,8px));padding:var(--yarl__counter_padding,var(--yarl__button_padding,8px));position:var(--yarl__counter_position,absolute);right:var(--yarl__counter_right,unset);top:var(--yarl__counter_top,0);-webkit-user-select:var(--yarl__counter_user_select,none);user-select:var(--yarl__counter_user_select,none)}.yarl__slide_captions_container{background:var(--yarl__slide_captions_container_background,rgba(0,0,0,.5));left:var(--yarl__slide_captions_container_left,0);padding:var(--yarl__slide_captions_container_padding,16px);position:absolute;right:var(--yarl__slide_captions_container_right,0);-webkit-transform:translateZ(0)}.yarl__slide_title{color:var(--yarl__slide_title_color,#fff);font-size:var(--yarl__slide_title_font_size,125%);font-weight:var(--yarl__slide_title_font_weight,bolder);max-width:calc(100% - var(--yarl__toolbar_width, 0px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yarl__slide_title_container{top:var(--yarl__slide_title_container_top,0)}.yarl__slide_description{display:-webkit-box;-webkit-hyphens:auto;hyphens:auto;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--yarl__slide_description_max_lines,3);color:var(--yarl__slide_description_color,#fff);text-align:var(--yarl__slide_description_text_align,start)}.yarl__slide_description_container{bottom:var(--yarl__slide_description_container_bottom,0)}.yarl__slide_title.yarl__slide_title.yarl__slide_title{font-family:var(--swui-font-primary);font-size:var(--swui-font-size-large);font-weight:var(--swui-font-weight-text)}.yarl__slide_title_container.yarl__slide_title_container.yarl__slide_title_container{height:48px;margin:calc(var(--swui-metrics-space) * 1);padding:0;display:flex;align-items:center;padding-left:calc(var(--swui-metrics-space) * 10)}.yarl__slide_description.yarl__slide_description.yarl__slide_description{font-family:var(--swui-font-primary);font-size:var(--swui-font-size-large);font-weight:var(--swui-font-weight-text)}.yarl__slide_description_container.yarl__slide_description_container.yarl__slide_description_container{display:flex;align-items:center;padding-left:calc(var(--swui-metrics-space) * 3);padding-bottom:calc(var(--swui-metrics-space) * 4)}.yarl__counter.yarl__counter{height:48px;margin:calc(var(--swui-metrics-space) * 1);display:flex;align-items:center;padding:0;padding-left:calc(var(--swui-metrics-space) * 1);font-family:var(--swui-font-primary);font-size:var(--swui-font-size-large);font-weight:var(--swui-font-weight-text)}")),document.head.appendChild(r)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("@stenajs-webui/elements"),x=require("react"),t=require("@stenajs-webui/core"),y=require("@stenajs-webui/tooltip"),N=require("@stenajs-webui/forms"),f=require("classnames"),d=require("@stenajs-webui/theme"),S=require("react-responsive"),L=require("yet-another-react-lightbox"),Z=require("yet-another-react-lightbox/plugins/inline"),X=require("yet-another-react-lightbox/plugins/zoom"),J=require("yet-another-react-lightbox/plugins/counter"),Y=require("yet-another-react-lightbox/plugins/captions");function ee(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(s,o,l.get?l:{enumerable:!0,get:()=>n[o]})}}return s.default=n,Object.freeze(s)}const ne=ee(x),F=({renderItems:n,placement:s="bottom",buttonComponent:o,rightIcon:l=r.stenaAngleDown,menuWidth:i,menuTop:a,onClick:c,disableArrow:u=!1,buttonRef:p,appendTo:j,zIndex:g,disableTrapFocus:C=!1,...b})=>{const[w,B,m,v]=t.useBoolean(!1),h=x.useRef(null),k=p??h,V=x.useMemo(()=>({open:B,close:m}),[B,m]),K=M=>{c?.(M),v()};return e.jsx(e.Fragment,{children:e.jsx(y.ControlledPopover,{renderTrigger:M=>e.jsx(o,{rightIcon:u?void 0:l,...b,ref:k,onClick:K,...M}),hideArrow:!0,disablePadding:!0,open:w,onRequestClose:m,placement:s,appendTo:j,zIndex:g,children:w&&e.jsx(r.ActionMenu,{width:i,top:a,trapFocus:!C,children:e.jsx(r.ActionMenuContext.Provider,{value:V,children:n(m)})})})})},te=n=>e.jsx(F,{buttonComponent:r.PrimaryButton,...n}),se=n=>e.jsx(F,{buttonComponent:r.SecondaryButton,...n}),O=n=>e.jsx(F,{buttonComponent:r.FlatButton,...n}),oe="1px solid var(--lhds-color-ui-300)",re=({renderMenu:n,...s})=>e.jsx(y.Popover,{trigger:"click",renderTrigger:o=>e.jsx(t.Row,{children:e.jsxs(t.Row,{spacing:.5,indent:!0,alignItems:"center",border:oe,borderRadius:"4px",children:[e.jsx(N.Checkbox,{...s}),e.jsx(t.Indent,{num:.5}),e.jsx(r.FlatButton,{size:"small",leftIcon:r.stenaAngleDown,...o})]})}),hideArrow:!0,disablePadding:!0,placement:"bottom-start",children:({onRequestClose:o})=>e.jsx(t.Column,{children:e.jsx(r.ActionMenu,{children:n(o)})})}),le="_navBar_kzibd_1",ie={navBar:le},ae=({className:n,onClick:s})=>e.jsx(r.FlatButton,{leftIcon:r.stenaHamburger,className:n,onClick:s}),ce=({left:n,className:s,showMenuButton:o=!1,children:l,right:i,center:a,onClickMenuButton:c})=>{const u=a?1:void 0;return e.jsxs(t.Row,{justifyContent:"space-between",className:f(ie.navBar,s),children:[e.jsxs(t.Row,{flex:u,justifyContent:"flex-start",alignItems:"center",children:[e.jsxs(t.Row,{width:"86px",alignItems:"center",children:[e.jsx(t.Indent,{}),o&&e.jsx(ae,{onClick:c})]}),n&&e.jsxs(e.Fragment,{children:[n,e.jsx(t.Indent,{num:2})]}),l&&e.jsx(e.Fragment,{children:e.jsx(t.Row,{justifyContent:"center",alignItems:"center",children:ne.Children.map(l,(p,j)=>e.jsxs(e.Fragment,{children:[j>0&&e.jsx(t.Indent,{}),p]}))})})]}),a&&e.jsx(t.Row,{justifyContent:"center",alignItems:"center",children:a}),e.jsxs(t.Row,{justifyContent:"flex-end",alignItems:"center",flex:u,children:[i,e.jsx(t.Indent,{num:2})]})]})},ue="_navBarButton_b3x3w_1",de="_selected_b3x3w_14",T={navBarButton:ue,selected:de},D=x.forwardRef(function({selected:n,className:s,...o},l){return e.jsx(r.FlatButton,{...o,ref:l,className:f(T.navBarButton,n&&T.selected,s)})}),xe=n=>e.jsx(t.Heading,{whiteSpace:"nowrap",variant:"h4",as:"h1",...n}),he=({content:n,children:s,appendTo:o,zIndex:l,...i})=>{const[a,,c,u]=t.useBoolean(!1);return e.jsx(y.ControlledPopover,{renderTrigger:p=>e.jsx(D,{...i,...p,onClick:u}),open:a,onRequestClose:c,zIndex:l,appendTo:o,children:e.jsxs(t.Box,{children:[n&&n({close:c}),s]})})},pe="_navBarNotificationButton_1wt3y_1",je="_unread_1wt3y_23",ge="_icon_1wt3y_23",R={navBarNotificationButton:pe,unread:je,icon:ge},me=x.forwardRef(function({count:n,unread:s=!1,className:o,labelClassName:l,iconClassName:i,icon:a=r.stenaBellFilled,...c},u){const p=n>1;return e.jsx(r.BaseButton,{...c,ref:u,leftIcon:a,className:f(R.navBarNotificationButton,s&&R.unread,p&&R.hasCount,o),label:p?String(n):void 0,labelClassName:f(l,R.label),iconClassName:f(i,R.icon)})}),Ce="_navBarSearchFieldInput_1rp8g_1",be="_navBarSearchFieldWrapper_1rp8g_12",Be="_withButton_1rp8g_24",fe="_clearButton_1rp8g_33",I={navBarSearchFieldInput:Ce,navBarSearchFieldWrapper:be,withButton:Be,clearButton:fe},we=({placeholder:n="Search",className:s,wrapperClassName:o,showClearButton:l,onClickClearButton:i,value:a,...c})=>e.jsx(N.TextInput,{wrapperClassName:f(I.navBarSearchFieldWrapper,l?I.withButton:void 0,o),className:f(I.navBarSearchFieldInput,s),placeholder:n,value:a,buttonRight:a&&l?e.jsx(r.TextInputButton,{className:I.clearButton,icon:r.stenaTimes,variant:"error",onClick:i}):void 0,...c}),ve="_navBarUserButton_10f9z_1",Se={navBarUserButton:ve},ye=({className:n,username:s,initials:o,icon:l=r.stenaUserCircle,responsiveIconOnly:i=o==null,...a})=>e.jsx(O,{...a,className:f(Se.navBarUserButton,n),leftIcon:s!=null?l:void 0,label:o??s,forceRound:o!=null,responsiveIconOnly:i,disableArrow:!0}),E=x.forwardRef(({contentLeft:n,contentRight:s,collapsed:o=!1,...l},i)=>e.jsx(r.MenuButton,{ref:i,expandable:!0,expanded:!o,selected:!o,left:n,right:s,...l})),Re=({children:n})=>e.jsx(t.Column,{gap:1,children:n}),Ie=({value:n,onValueChange:s,onChange:o,indeterminate:l,checkboxDisabled:i,...a})=>e.jsx(E,{contentLeft:e.jsx(N.Checkbox,{value:n,indeterminate:l,onValueChange:s,onChange:o,disabled:i,onClick:c=>c.stopPropagation()}),...a}),_e="_sidebarMenuCollapsibleGroupBox_ikek9_1",ke={sidebarMenuCollapsibleGroupBox:_e},W=({children:n})=>e.jsx("div",{className:ke.sidebarMenuCollapsibleGroupBox,children:n}),Me=({children:n})=>e.jsx(t.Box,{spacing:!0,indent:!0,children:e.jsx(t.Text,{variant:"overline",size:"smaller",children:n})}),Pe=({text:n="No content"})=>e.jsxs(t.Column,{indent:!0,spacing:!0,flex:1,alignItems:"center",children:[e.jsx(r.Icon,{icon:r.stenaMail,color:d.cssColor("--lhds-color-ui-500")}),e.jsx(t.Space,{}),e.jsx(t.Text,{size:"small",color:d.cssColor("--lhds-color-ui-500"),children:n})]}),U=({text:n,heading:s,children:o,buttons:l,icon:i=r.stenaTripFerryXl,headingLevel:a="h3",...c})=>{const u=!n&&!s?"Something unexpected happened.":n;return e.jsx(r.Card,{...c,children:e.jsx(r.CardBody,{children:e.jsxs(t.Column,{spacing:1,gap:3,alignItems:"center",children:[e.jsxs(t.Column,{alignItems:"center",children:[e.jsx(t.Space,{num:1}),e.jsx(r.CircledIcon,{icon:i,size:"xl"})]}),s&&e.jsx(t.Heading,{as:a,children:s}),u&&e.jsx(t.Text,{children:u}),o,l&&e.jsxs(t.Box,{children:[e.jsx(t.Space,{num:2}),l]})]})})})},Ne=n=>e.jsx(t.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:e.jsx(U,{...n})}),$=({text:n="Loading..."})=>e.jsxs(t.Box,{alignItems:"center",children:[e.jsx(r.Spinner,{size:"small"}),e.jsx(t.Space,{num:4}),e.jsx(t.Heading,{variant:"h4",children:n})]}),Fe=n=>e.jsx(t.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:e.jsx($,{...n})}),ze=({renderBreadCrumbs:n,renderPageHeading:s,renderTabs:o,children:l})=>e.jsxs(t.Box,{shadow:"bottom",background:d.cssColor("--lhds-color-ui-50"),gap:2,children:[e.jsxs(t.Box,{indent:3,children:[n&&e.jsxs(t.Row,{spacing:1,alignItems:"center",children:[e.jsx(t.Row,{width:"64px",height:"16px"}),n()]}),s?.(),o&&e.jsx(t.Space,{}),o?.()]}),l]}),Ae=n=>e.jsx(t.Row,{indent:3,spacing:!0,...n}),Te=({icon:n,heading:s,headingLevel:o="h2",contentLeft:l,contentRight:i})=>e.jsxs(t.Row,{alignItems:"center",gap:2,height:"64px",children:[e.jsxs(t.Row,{alignItems:"center",children:[e.jsx(t.Row,{width:"64px",alignItems:"center",children:n&&e.jsx(r.CircledIcon,{icon:n})}),e.jsx(t.Heading,{variant:"h3",as:o,children:s})]}),e.jsx(t.Row,{alignItems:"center",children:l}),e.jsx(t.Row,{style:{marginLeft:"auto"},alignItems:"center",children:i})]}),qe="_selectionRow_1njaw_1",He="_iconColumn_1njaw_9",q={selectionRow:qe,iconColumn:He},Le=({icon:n,heading:s,description:o,contentRight:l,htmlFor:i,circledIconVariant:a,...c})=>e.jsxs("div",{className:q.selectionRow,...t.getDataProps(c),children:[e.jsxs(t.Row,{gap:2,children:[n&&e.jsx(t.Box,{alignItems:"center",justifyContent:"center",width:"40px",className:q.iconColumn,children:e.jsx(r.CircledIcon,{icon:n,variant:a})}),e.jsx("label",{htmlFor:i,children:e.jsxs(t.Column,{gap:.5,children:[e.jsx(t.Text,{variant:"bold",children:s}),typeof o=="string"?e.jsx(t.Text,{color:d.cssColor("--silver-dark"),children:o}):o]})})]}),l]}),Oe="_sidebarMenu_1bx5w_1",De="_sidebarItems_1bx5w_38",Ee="_scrollContainer_1bx5w_48",P={sidebarMenu:Oe,sidebarItems:De,scrollContainer:Ee},We="_stenaFlag_108h7_1",Ue={stenaFlag:We},$e=({onClick:n})=>e.jsxs(t.Column,{background:d.cssColor("--lhds-color-ui-50"),children:[e.jsx(t.Space,{}),e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"center",flex:1,indent:1,minHeight:"48px",children:[e.jsx(r.CloseButton,{onClick:n}),e.jsx(r.StenaFlag,{className:Ue.stenaFlag})]})]}),Ge=({isPinned:n,onClick:s,label:o})=>{const i=o??(n?"Unpin menu":"Pin menu"),a=n?r.stenaAngleLeftDouble:r.stenaPin;return e.jsx(r.MenuButton,{onClick:s,label:i,leftIcon:a})},Qe=({className:n,children:s,onCloseClick:o,pinButtonVisible:l,onClickPinButton:i,bottomItems:a,isPinned:c,...u})=>e.jsxs(t.Box,{...u,className:f(P.sidebarMenu,n),children:[e.jsx($e,{onClick:o}),e.jsx(t.Box,{className:P.scrollContainer,children:e.jsxs(t.Column,{className:P.sidebarItems,justifyContent:"space-between",flex:1,gap:1,indent:1,children:[e.jsx(t.Column,{gap:1,children:s}),(a||l)&&e.jsxs(t.Column,{gap:1,children:[a,l&&e.jsx(Ge,{isPinned:c,onClick:i}),e.jsx(t.Space,{})]})]})})]}),_=x.createContext(!1),z=()=>x.useContext(_),Ve=({label:n,...s})=>e.jsx(y.Tooltip,{label:n,placement:"right",appendTo:document.body,children:e.jsx(r.IconMenuButton,{...s})}),Ke=({closeButtonVisible:n,onClickCloseButton:s,onClickMenuButton:o,children:l,bottomItems:i,closeButtonTitle:a="Unpin menu"})=>e.jsxs(t.Box,{position:"fixed",left:0,top:0,bottom:0,indent:.5,spacing:1,gap:1,shadow:"popover",background:d.cssColor("--lhds-color-ui-50"),children:[e.jsx(r.IconMenuButton,{onClick:o,icon:r.stenaHamburger}),e.jsxs(t.Column,{justifyContent:"space-between",flex:1,gap:1,children:[e.jsx(t.Column,{gap:1,children:e.jsx(_.Provider,{value:!0,children:l})}),e.jsx(t.Column,{gap:1,children:(i||n)&&e.jsxs(_.Provider,{value:!0,children:[i,n&&e.jsx(Ve,{icon:r.stenaAngleLeftDouble,label:a,onClick:s})]})})]})]}),G=({label:n})=>z()?null:e.jsxs(t.Box,{height:"32px",justifyContent:"center",indent:1,children:[e.jsx(t.Space,{}),e.jsx(t.Text,{variant:"overline",size:"smaller",children:n})]}),Ze=({label:n,leftIcon:s,...o})=>s==null?null:e.jsx(y.Tooltip,{label:n,placement:"right",children:e.jsx(r.IconMenuButtonLink,{icon:s,...o})}),Xe=n=>z()?e.jsx(Ze,{...n}):e.jsx(r.MenuButtonLink,{...n}),Je=({children:n,label:s,icon:o,popupMinWidth:l="200px"})=>e.jsx(y.Popover,{renderTrigger:i=>e.jsx(r.IconMenuButton,{icon:o,...i}),placement:"right-start",trigger:["hover","focus"],disablePadding:!0,children:e.jsx(t.Box,{minWidth:l,shadow:"popover",spacing:1,indent:1,gap:2,children:e.jsxs(_.Provider,{value:!1,children:[e.jsx(G,{label:s}),n]})})}),Ye=({children:n,label:s,leftIcon:o,className:l,initialExpand:i=!1})=>{const[a,c]=x.useState(i);return z()?o==null?null:e.jsx(Je,{label:s,icon:o,children:n}):e.jsx(r.MenuButton,{label:s,onClick:()=>c(!a),leftIcon:o,className:l,expandable:!0,expanded:a,selected:a,children:e.jsx(W,{children:n})})},en=n=>e.jsx(t.SeparatorLine,{color:d.cssColor("--lhds-color-ui-400"),...n}),nn=({numItemsSelected:n,label:s,afterLabelContent:o,rightContent:l})=>e.jsxs(t.Row,{indent:3,spacing:!0,gap:3,minHeight:"56px",justifyContent:"space-between",alignItems:"center",background:d.cssColor("--silver-lighter"),flex:1,borderRadius:"var(--swui-border-radius)",children:[e.jsxs(t.Row,{alignItems:"center",gap:2,children:[n!=null||s!=null?e.jsx(t.Row,{alignItems:"center",children:n!=null?e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:n}),e.jsx(t.Space,{}),e.jsxs(t.Text,{children:["item",n===1?"":"s"," selected"]})]}):s!=null?e.jsx(e.Fragment,{children:typeof s=="string"?e.jsx(t.Text,{children:s}):s}):null}):null,o&&e.jsx(t.Row,{children:o})]}),e.jsx(t.Row,{gap:2,children:l})]}),tn=({children:n})=>e.jsx(t.Row,{spacing:.5,indent:.5,flex:1,children:n}),sn="_productCard_19x6b_1",on={productCard:sn},rn=({renderSelectedProductCard:n,renderEditButton:s,children:o,loading:l,shadow:i,...a})=>e.jsxs(t.Column,{"data-comp":"ProductCard",className:on.productCard,shadow:i?"box":void 0,background:d.cssColor("--moln"),borderRadius:"24px",overflow:"hidden",position:l?"relative":void 0,...t.getDataProps(a),children:[n?.(),e.jsx(t.Column,{gap:2,children:o}),s&&e.jsxs(t.Column,{children:[e.jsx(t.Row,{indent:2,justifyContent:"flex-end",children:s()}),e.jsx(t.Spacing,{})]}),l&&e.jsx(t.Box,{top:0,bottom:0,left:0,right:0,position:"absolute",justifyContent:"center",alignItems:"center",background:"rgba(255, 255, 255, 0.7)",children:e.jsx(r.Spinner,{})})]}),ln=({children:n})=>e.jsx(t.Text,{variant:"bold",style:{fontSize:"2.0rem"},children:n}),an=({description:n,subDescription:s,descriptionTags:o,capacityTag:l,offerCodeTag:i,priceText:a,title:c,subTitle:u,renderImage:p,children:j,headingLevel:g})=>{const C=o==null?!1:Array.isArray(o)?o.length>0:!t.isEmptyFragment(o);return e.jsxs(t.Column,{children:[p?.(),e.jsxs(t.Box,{gap:2,spacing:4,indent:4,background:d.cssColor("--moln"),children:[e.jsxs(t.Box,{gap:.5,children:[e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"flex-start",gap:2,children:[e.jsx(t.Heading,{variant:"h3",as:g,children:c}),e.jsxs(t.Row,{gap:2,children:[i&&e.jsx(t.Column,{justifyContent:"center",children:i}),e.jsx(ln,{children:a})]})]}),u&&e.jsx(t.Text,{variant:"bold",color:d.cssColor("--silver-dark"),children:u})]}),(C||l)&&e.jsxs(t.Column,{children:[e.jsxs(t.Row,{gap:1,flexWrap:"wrap",children:[o,l&&e.jsx(r.Tag,{label:l,variant:"passive"})]}),e.jsx(t.Space,{})]}),n&&e.jsxs(t.Column,{children:[e.jsx(t.Text,{children:n}),e.jsx(t.Space,{})]}),s&&e.jsxs(t.Column,{children:[e.jsx(t.Text,{children:s}),e.jsx(t.Space,{})]}),j]})]})},cn=({renderImage:n})=>e.jsxs(t.Column,{children:[n?.(),e.jsxs(t.Box,{gap:3,spacing:4,indent:4,background:d.cssColor("--moln"),children:[e.jsx(t.Box,{gap:.5,children:e.jsx(t.Row,{justifyContent:"space-between",alignItems:"flex-start",gap:2,children:e.jsx(r.ShimmerBox,{width:"50px",height:"2.8rem",borderRadius:"8px"})})}),e.jsx(t.Column,{children:e.jsx(r.ShimmerBox,{width:"180px",height:"2.0rem",borderRadius:"8px"})}),e.jsx(t.Column,{children:e.jsx(r.ShimmerBox,{width:"150px",height:"1.4rem",borderRadius:"8px"})})]})]}),un=({label:n,children:s})=>e.jsxs(t.Box,{background:d.cssColor("--mussla"),indent:2,spacing:2,gap:2,children:[e.jsx(t.Heading,{variant:"h3",as:"h2",color:"white",children:n}),s]}),dn=({title:n,variant:s="normal",loading:o,iconLeft:l,compactIconLeft:i,renderButton:a,renderOfferCodeTag:c,renderMandatoryTag:u,renderContentLeftOfButton:p,children:j,...g})=>{const{fontSizeRatio:C}=t.useAccessibleFontSizeContext(),b=S.useMediaQuery({query:"(max-width: 460px)"}),B=S.useMediaQuery({query:"(max-width: 360px)"})||b&&C>1.2,m=o?"normal":s,v=hn(m),h=d.cssColor("--moln"),k=xn(m);return e.jsxs(t.Box,{"data-comp":"ProductSummaryCard",borderRadius:"16px",shadow:"box",overflow:"hidden",position:o?"relative":void 0,...t.getDataProps(g),children:[e.jsxs(t.Row,{flex:1,children:[!B&&e.jsx(t.Box,{flex:2,justifyContent:"center",background:v,children:l&&e.jsx(r.Icon,{color:k,icon:l,size:73})}),e.jsx(t.Box,{flex:4,indent:2,spacing:2,background:h,children:e.jsxs(t.Column,{gap:2,children:[n&&e.jsxs(t.Row,{justifyContent:"space-between",children:[e.jsxs(t.Row,{gap:2,alignItems:"center",children:[B&&i&&e.jsx(r.CircledIcon,{icon:i,size:"medium"}),e.jsx(t.Text,{variant:"bold",size:"large",children:n})]}),m=="normal"&&c?.()]}),e.jsx(t.Column,{style:{opacity:o?0:void 0},children:j}),u&&e.jsx(t.Row,{style:{opacity:o?0:void 0},children:u()}),e.jsx("div",{}),e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"center",gap:2,flexWrap:"wrap",children:[p?.()??e.jsx("div",{}),a?.()]})]})})]}),o&&e.jsx(t.Box,{top:0,bottom:0,left:0,right:0,position:"absolute",justifyContent:"center",alignItems:"center",background:"rgba(255, 255, 255, 0.7)",children:e.jsx(r.Spinner,{})})]})},xn=n=>{switch(n){case"edit":return d.cssColor("--moln");case"upgrade":return d.cssColor("--moln");case"normal":return d.cssColor("--mussla");default:t.exhaustSwitchCaseElseThrow(n)}},hn=n=>{switch(n){case"edit":return d.cssColor("--mussla");case"upgrade":return d.cssColor("--mussla");case"normal":return d.cssColor("--silver-lighter");default:t.exhaustSwitchCaseElseThrow(n)}},pn=({iconLeft:n,...s})=>e.jsx(t.Box,{borderRadius:"16px",shadow:"box",overflow:"hidden",...t.getDataProps(s),children:e.jsxs(t.Row,{flex:1,children:[e.jsx(t.Box,{flex:2,justifyContent:"center",background:d.cssColor("--silver-lighter"),children:n&&e.jsx(r.Icon,{color:d.cssColor("--mussla"),icon:n,size:73})}),e.jsx(t.Box,{flex:4,indent:2,spacing:2,background:d.cssColor("--moln"),children:e.jsxs(t.Column,{gap:2,children:[e.jsx(r.ShimmerBox,{width:"180px",height:"2.8rem",borderRadius:"8px"}),e.jsx(r.ShimmerBox,{width:"50px",height:"2.0rem",borderRadius:"8px"}),e.jsx(r.ShimmerBox,{width:"150px",height:"1.4rem",borderRadius:"8px"})]})})]})}),H=["small-mobile","mobile","tablet","tablet-wide","desktop"],A=()=>{const n=S.useMediaQuery({query:"(max-width: 768px)"}),s=S.useMediaQuery({query:"(max-width: 395px)"}),o=S.useMediaQuery({query:"(max-width: 1024px)"}),l=S.useMediaQuery({query:"(max-width: 1160px)"});return{deviceSize:s?"small-mobile":n?"mobile":o?"tablet":l?"tablet-wide":"desktop"}},Q=(n,s)=>n===s||H.indexOf(n)>H.indexOf(s),jn=n=>{const{deviceSize:s}=A();return{visible:x.useMemo(()=>Q(s,n),[s,n])}},gn=({isOpen:n,initialIndex:s,onUpdateIndex:o,altLabelPrevious:l,altLabelZoomIn:i,altLabelZoomOut:a,altLabelNext:c,altLabelClose:u,onRequestClose:p,images:j})=>{const g=x.useRef(null),{deviceSize:C}=A(),b=C!=="mobile",[w,B]=x.useState(s??0),m=({index:h})=>{B(h),o?.(h)},v=x.useMemo(()=>j.map(h=>mn(h)),[j]);return e.jsx(L,{open:n,close:p,index:w,plugins:[X,J,Y],slides:v,on:{view:m},animation:{fade:0},controller:{closeOnPullDown:!0,closeOnBackdropClick:!0,ref:g},counter:{container:{style:{filter:"none",color:"white",fontSize:"2.0rem",fontFamily:"var(--swui-font-primary)"}}},render:{buttonZoom:h=>b&&e.jsxs(t.Row,{gap:1,indent:2,children:[e.jsx(r.SecondaryButton,{"aria-label":i,leftIcon:r.stenaSearchPlus,size:"large",onClick:()=>h.zoomIn()}),e.jsx(r.SecondaryButton,{"aria-label":a,leftIcon:r.stenaSearchMinus,size:"large",onClick:()=>h.zoomOut()})]}),buttonPrev:()=>j.length>1&&b&&e.jsx(t.Indent,{num:4,className:"yarl__navigation_prev",children:e.jsx(r.SecondaryButton,{"aria-label":l,leftIcon:r.stenaAngleLeft,size:"large",onClick:()=>g.current?.prev()})}),buttonNext:()=>j.length>1&&b&&e.jsx(t.Indent,{num:4,className:"yarl__navigation_next",children:e.jsx(r.SecondaryButton,{"aria-label":c,leftIcon:r.stenaAngleRight,size:"large",onClick:()=>g.current?.next()})}),buttonClose:()=>e.jsx(t.Indent,{children:e.jsx(r.PrimaryButton,{variant:"danger","aria-label":u,leftIcon:r.stenaTimesThick,size:"large",onClick:()=>g.current?.close()})})}})},mn=n=>({src:n.url,width:n.width,height:n.height,alt:n.alt,title:n.title,description:n.description}),Cn=({images:n,initialIndex:s,altLabelPrevious:o,altLabelZoomIn:l,altLabelZoomOut:i,altLabelNext:a,altLabelClose:c})=>{const u=x.useRef(null),[p,j]=x.useState(!1),[g,C]=x.useState(s??0),b=x.useCallback(()=>{j(!0)},[]),w=x.useCallback(()=>{j(!1)},[]),B=({index:h})=>C(h);x.useEffect(()=>{C(s??0)},[s]);const m=x.useMemo(()=>n.map(bn),[n]),v=x.useMemo(()=>n.map(h=>h.fullscreenImage?{...h,url:h.fullscreenImage.url,width:h.fullscreenImage.width,height:h.fullscreenImage.height}:h),[n]);return e.jsxs(t.BlockKeyboardEvents,{blockedKeys:"Escape",children:[e.jsx(L,{controller:{ref:u},index:g,slides:m,plugins:[Z],on:{view:B,click:b},carousel:{padding:0,spacing:0,imageFit:"cover"},render:{buttonPrev:()=>n.length>1&&e.jsx(t.Indent,{className:"yarl__navigation_prev",children:e.jsx(r.SecondaryButton,{"aria-label":o,leftIcon:r.stenaAngleLeft,onClick:()=>u.current?.prev()})}),buttonNext:()=>n.length>1&&e.jsx(t.Indent,{className:"yarl__navigation_next",children:e.jsx(r.SecondaryButton,{"aria-label":a,leftIcon:r.stenaAngleRight,onClick:()=>u.current?.next()})})},styles:{button:{filter:"none"}},inline:{style:{width:"100%",maxWidth:"900px",aspectRatio:"3 / 2",margin:"0 auto"}}}),p&&e.jsx(gn,{isOpen:!0,onRequestClose:w,initialIndex:g,onUpdateIndex:C,images:v,altLabelPrevious:o,altLabelNext:a,altLabelClose:c,altLabelZoomIn:l,altLabelZoomOut:i})]})},bn=n=>({src:n.url,width:n.width,height:n.height,alt:n.alt,title:n.title,description:n.description});exports.ActionMenuFlatButton=O;exports.ActionMenuPrimaryButton=te;exports.ActionMenuSecondaryButton=se;exports.CheckboxMenu=re;exports.Collapsible=E;exports.CollapsibleEmptyContent=Pe;exports.CollapsibleGroupHeading=Me;exports.CollapsibleList=Re;exports.CollapsibleWithCheckbox=Ie;exports.ErrorPanel=U;exports.ErrorScreen=Ne;exports.ImageCarousel=Cn;exports.LoadingPanel=$;exports.LoadingScreen=Fe;exports.NavBar=ce;exports.NavBarButton=D;exports.NavBarHeading=xe;exports.NavBarNotificationButton=me;exports.NavBarPopoverButton=he;exports.NavBarSearchField=we;exports.NavBarUserButton=ye;exports.PageHeader=ze;exports.PageHeaderRow=Ae;exports.PageHeading=Te;exports.ProductCard=rn;exports.ProductCardContentItem=an;exports.ProductCardContentItemSkeletor=cn;exports.ProductSummaryCard=dn;exports.ProductSummaryCardSkeletor=pn;exports.SelectedItemsActionsPadding=tn;exports.SelectedItemsActionsPanel=nn;exports.SelectedProductCard=un;exports.SelectionRow=Le;exports.SidebarMenu=Qe;exports.SidebarMenuCollapsible=Ye;exports.SidebarMenuCollapsibleGroupBox=W;exports.SidebarMenuHeading=G;exports.SidebarMenuLink=Xe;exports.SidebarMenuSeparator=en;exports.SidebarRailMenu=Ke;exports.isDeviceSameOrLarger=Q;exports.useDeviceSize=A;exports.useLayoutVisibility=jn;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("@stenajs-webui/elements"),x=require("react"),t=require("@stenajs-webui/core"),y=require("@stenajs-webui/tooltip"),N=require("@stenajs-webui/forms"),f=require("classnames"),d=require("@stenajs-webui/theme"),S=require("react-responsive"),L=require("yet-another-react-lightbox"),X=require("yet-another-react-lightbox/plugins/inline"),J=require("yet-another-react-lightbox/plugins/zoom"),Y=require("yet-another-react-lightbox/plugins/counter"),ee=require("yet-another-react-lightbox/plugins/captions");function ne(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(s,o,l.get?l:{enumerable:!0,get:()=>n[o]})}}return s.default=n,Object.freeze(s)}const te=ne(x),F=({renderItems:n,placement:s="bottom",buttonComponent:o,rightIcon:l=r.stenaAngleDown,menuWidth:i,menuTop:a,onClick:c,disableArrow:u=!1,buttonRef:p,appendTo:j,zIndex:g,disableTrapFocus:C=!1,...b})=>{const[w,B,m,v]=t.useBoolean(!1),h=x.useRef(null),k=p??h,K=x.useMemo(()=>({open:B,close:m}),[B,m]),Z=M=>{c?.(M),v()};return e.jsx(e.Fragment,{children:e.jsx(y.ControlledPopover,{renderTrigger:M=>e.jsx(o,{rightIcon:u?void 0:l,...b,ref:k,onClick:Z,...M}),hideArrow:!0,disablePadding:!0,open:w,onRequestClose:m,placement:s,appendTo:j,zIndex:g,children:w&&e.jsx(r.ActionMenu,{width:i,top:a,trapFocus:!C,children:e.jsx(r.ActionMenuContext.Provider,{value:K,children:n(m)})})})})},se=n=>e.jsx(F,{buttonComponent:r.PrimaryButton,...n}),oe=n=>e.jsx(F,{buttonComponent:r.SecondaryButton,...n}),O=n=>e.jsx(F,{buttonComponent:r.FlatButton,...n}),re="1px solid var(--lhds-color-ui-300)",le=({renderMenu:n,...s})=>e.jsx(y.Popover,{trigger:"click",renderTrigger:o=>e.jsx(t.Row,{children:e.jsxs(t.Row,{spacing:.5,indent:!0,alignItems:"center",border:re,borderRadius:"4px",children:[e.jsx(N.Checkbox,{...s}),e.jsx(t.Indent,{num:.5}),e.jsx(r.FlatButton,{size:"small",leftIcon:r.stenaAngleDown,...o})]})}),hideArrow:!0,disablePadding:!0,placement:"bottom-start",children:({onRequestClose:o})=>e.jsx(t.Column,{children:e.jsx(r.ActionMenu,{children:n(o)})})}),ie="_navBar_kzibd_1",ae={navBar:ie},ce=({className:n,onClick:s})=>e.jsx(r.FlatButton,{leftIcon:r.stenaHamburger,className:n,onClick:s}),ue=({left:n,className:s,showMenuButton:o=!1,children:l,right:i,center:a,onClickMenuButton:c})=>{const u=a?1:void 0;return e.jsxs(t.Row,{justifyContent:"space-between",className:f(ae.navBar,s),children:[e.jsxs(t.Row,{flex:u,justifyContent:"flex-start",alignItems:"center",children:[e.jsxs(t.Row,{width:"86px",alignItems:"center",children:[e.jsx(t.Indent,{}),o&&e.jsx(ce,{onClick:c})]}),n&&e.jsxs(e.Fragment,{children:[n,e.jsx(t.Indent,{num:2})]}),l&&e.jsx(e.Fragment,{children:e.jsx(t.Row,{justifyContent:"center",alignItems:"center",children:te.Children.map(l,(p,j)=>e.jsxs(e.Fragment,{children:[j>0&&e.jsx(t.Indent,{}),p]}))})})]}),a&&e.jsx(t.Row,{justifyContent:"center",alignItems:"center",children:a}),e.jsxs(t.Row,{justifyContent:"flex-end",alignItems:"center",flex:u,children:[i,e.jsx(t.Indent,{num:2})]})]})},de="_navBarButton_b3x3w_1",xe="_selected_b3x3w_14",T={navBarButton:de,selected:xe},D=x.forwardRef(function({selected:n,className:s,...o},l){return e.jsx(r.FlatButton,{...o,ref:l,className:f(T.navBarButton,n&&T.selected,s)})}),he=n=>e.jsx(t.Heading,{whiteSpace:"nowrap",variant:"h4",as:"h1",...n}),pe=({content:n,children:s,appendTo:o,zIndex:l,...i})=>{const[a,,c,u]=t.useBoolean(!1);return e.jsx(y.ControlledPopover,{renderTrigger:p=>e.jsx(D,{...i,...p,onClick:u}),open:a,onRequestClose:c,zIndex:l,appendTo:o,children:e.jsxs(t.Box,{children:[n&&n({close:c}),s]})})},je="_navBarNotificationButton_1wt3y_1",ge="_unread_1wt3y_23",me="_icon_1wt3y_23",R={navBarNotificationButton:je,unread:ge,icon:me},Ce=x.forwardRef(function({count:n,unread:s=!1,className:o,labelClassName:l,iconClassName:i,icon:a=r.stenaBellFilled,...c},u){const p=n>1;return e.jsx(r.BaseButton,{...c,ref:u,leftIcon:a,className:f(R.navBarNotificationButton,s&&R.unread,p&&R.hasCount,o),label:p?String(n):void 0,labelClassName:f(l,R.label),iconClassName:f(i,R.icon)})}),be="_navBarSearchFieldInput_1rp8g_1",Be="_navBarSearchFieldWrapper_1rp8g_12",fe="_withButton_1rp8g_24",we="_clearButton_1rp8g_33",I={navBarSearchFieldInput:be,navBarSearchFieldWrapper:Be,withButton:fe,clearButton:we},ve=({placeholder:n="Search",className:s,wrapperClassName:o,showClearButton:l,onClickClearButton:i,value:a,...c})=>e.jsx(N.TextInput,{wrapperClassName:f(I.navBarSearchFieldWrapper,l?I.withButton:void 0,o),className:f(I.navBarSearchFieldInput,s),placeholder:n,value:a,buttonRight:a&&l?e.jsx(r.TextInputButton,{className:I.clearButton,icon:r.stenaTimes,variant:"error",onClick:i}):void 0,...c}),Se="_navBarUserButton_10f9z_1",ye={navBarUserButton:Se},Re=({className:n,username:s,initials:o,icon:l=r.stenaUserCircle,responsiveIconOnly:i=o==null,...a})=>e.jsx(O,{...a,className:f(ye.navBarUserButton,n),leftIcon:s!=null?l:void 0,label:o??s,forceRound:o!=null,responsiveIconOnly:i,disableArrow:!0}),E=x.forwardRef(({contentLeft:n,contentRight:s,collapsed:o=!1,...l},i)=>e.jsx(r.MenuButton,{ref:i,expandable:!0,expanded:!o,selected:!o,left:n,right:s,...l})),Ie=({children:n})=>e.jsx(t.Column,{gap:1,children:n}),_e=({value:n,onValueChange:s,onChange:o,indeterminate:l,checkboxDisabled:i,...a})=>e.jsx(E,{contentLeft:e.jsx(N.Checkbox,{value:n,indeterminate:l,onValueChange:s,onChange:o,disabled:i,onClick:c=>c.stopPropagation()}),...a}),ke="_sidebarMenuCollapsibleGroupBox_ikek9_1",Me={sidebarMenuCollapsibleGroupBox:ke},W=({children:n})=>e.jsx("div",{className:Me.sidebarMenuCollapsibleGroupBox,children:n}),Pe=({children:n})=>e.jsx(t.Box,{spacing:!0,indent:!0,children:e.jsx(t.Text,{variant:"overline",size:"smaller",children:n})}),Ne=({text:n="No content"})=>e.jsxs(t.Column,{indent:!0,spacing:!0,flex:1,alignItems:"center",children:[e.jsx(r.Icon,{icon:r.stenaMail,color:d.cssColor("--lhds-color-ui-500")}),e.jsx(t.Space,{}),e.jsx(t.Text,{size:"small",color:d.cssColor("--lhds-color-ui-500"),children:n})]}),U=({text:n,heading:s,children:o,buttons:l,icon:i=r.stenaTripFerryXl,headingLevel:a="h3",...c})=>{const u=!n&&!s?"Something unexpected happened.":n;return e.jsx(r.Card,{...c,children:e.jsx(r.CardBody,{children:e.jsxs(t.Column,{spacing:1,gap:3,alignItems:"center",children:[e.jsxs(t.Column,{alignItems:"center",children:[e.jsx(t.Space,{num:1}),e.jsx(r.CircledIcon,{icon:i,size:"xl"})]}),s&&e.jsx(t.Heading,{as:a,children:s}),u&&e.jsx(t.Text,{children:u}),o,l&&e.jsxs(t.Box,{children:[e.jsx(t.Space,{num:2}),l]})]})})})},Fe=n=>e.jsx(t.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:e.jsx(U,{...n})}),$=({text:n="Loading..."})=>e.jsxs(t.Box,{alignItems:"center",children:[e.jsx(r.Spinner,{size:"small"}),e.jsx(t.Space,{num:4}),e.jsx(t.Heading,{variant:"h4",children:n})]}),ze=n=>e.jsx(t.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:e.jsx($,{...n})}),Ae=({renderBreadCrumbs:n,renderPageHeading:s,renderTabs:o,children:l})=>e.jsxs(t.Box,{shadow:"bottom",background:d.cssColor("--lhds-color-ui-50"),gap:2,children:[e.jsxs(t.Box,{indent:3,children:[n&&e.jsxs(t.Row,{spacing:1,alignItems:"center",children:[e.jsx(t.Row,{width:"64px",height:"16px"}),n()]}),s?.(),o&&e.jsx(t.Space,{}),o?.()]}),l]}),Te=n=>e.jsx(t.Row,{indent:3,spacing:!0,...n}),qe=({icon:n,heading:s,headingLevel:o="h2",contentLeft:l,contentRight:i})=>e.jsxs(t.Row,{alignItems:"center",gap:2,height:"64px",children:[e.jsxs(t.Row,{alignItems:"center",children:[e.jsx(t.Row,{width:"64px",alignItems:"center",children:n&&e.jsx(r.CircledIcon,{icon:n})}),e.jsx(t.Heading,{variant:"h3",as:o,children:s})]}),e.jsx(t.Row,{alignItems:"center",children:l}),e.jsx(t.Row,{style:{marginLeft:"auto"},alignItems:"center",children:i})]}),He="_selectionRow_1njaw_1",Le="_iconColumn_1njaw_9",q={selectionRow:He,iconColumn:Le},Oe=({icon:n,heading:s,description:o,contentRight:l,htmlFor:i,circledIconVariant:a,...c})=>e.jsxs("div",{className:q.selectionRow,...t.getDataProps(c),children:[e.jsxs(t.Row,{gap:2,children:[n&&e.jsx(t.Box,{alignItems:"center",justifyContent:"center",width:"40px",className:q.iconColumn,children:e.jsx(r.CircledIcon,{icon:n,variant:a})}),e.jsx("label",{htmlFor:i,children:e.jsxs(t.Column,{gap:.5,children:[e.jsx(t.Text,{variant:"bold",children:s}),typeof o=="string"?e.jsx(t.Text,{color:d.cssColor("--silver-dark"),children:o}):o]})})]}),l]}),De="_sidebarMenu_1bx5w_1",Ee="_sidebarItems_1bx5w_38",We="_scrollContainer_1bx5w_48",P={sidebarMenu:De,sidebarItems:Ee,scrollContainer:We},Ue="_stenaFlag_108h7_1",$e={stenaFlag:Ue},Ge=({onClick:n})=>e.jsxs(t.Column,{background:d.cssColor("--lhds-color-ui-50"),children:[e.jsx(t.Space,{}),e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"center",flex:1,indent:1,minHeight:"48px",children:[e.jsx(r.CloseButton,{onClick:n}),e.jsx(r.StenaFlag,{className:$e.stenaFlag})]})]}),Qe=({isPinned:n,onClick:s,label:o})=>{const i=o??(n?"Unpin menu":"Pin menu"),a=n?r.stenaAngleLeftDouble:r.stenaPin;return e.jsx(r.MenuButton,{onClick:s,label:i,leftIcon:a})},Ve=({className:n,children:s,onCloseClick:o,pinButtonVisible:l,onClickPinButton:i,bottomItems:a,isPinned:c,...u})=>e.jsxs(t.Box,{...u,className:f(P.sidebarMenu,n),children:[e.jsx(Ge,{onClick:o}),e.jsx(t.Box,{className:P.scrollContainer,children:e.jsxs(t.Column,{className:P.sidebarItems,justifyContent:"space-between",flex:1,gap:1,indent:1,children:[e.jsx(t.Column,{gap:1,children:s}),(a||l)&&e.jsxs(t.Column,{gap:1,children:[a,l&&e.jsx(Qe,{isPinned:c,onClick:i}),e.jsx(t.Space,{})]})]})})]}),_=x.createContext(!1),z=()=>x.useContext(_),Ke=({label:n,...s})=>e.jsx(y.Tooltip,{label:n,placement:"right",appendTo:document.body,children:e.jsx(r.IconMenuButton,{...s})}),Ze=({closeButtonVisible:n,onClickCloseButton:s,onClickMenuButton:o,children:l,bottomItems:i,closeButtonTitle:a="Unpin menu"})=>e.jsxs(t.Box,{position:"fixed",left:0,top:0,bottom:0,indent:.5,spacing:1,gap:1,shadow:"popover",background:d.cssColor("--lhds-color-ui-50"),children:[e.jsx(r.IconMenuButton,{onClick:o,icon:r.stenaHamburger}),e.jsxs(t.Column,{justifyContent:"space-between",flex:1,gap:1,children:[e.jsx(t.Column,{gap:1,children:e.jsx(_.Provider,{value:!0,children:l})}),e.jsx(t.Column,{gap:1,children:(i||n)&&e.jsxs(_.Provider,{value:!0,children:[i,n&&e.jsx(Ke,{icon:r.stenaAngleLeftDouble,label:a,onClick:s})]})})]})]}),G=({label:n})=>z()?null:e.jsxs(t.Box,{height:"32px",justifyContent:"center",indent:1,children:[e.jsx(t.Space,{}),e.jsx(t.Text,{variant:"overline",size:"smaller",children:n})]}),Xe=({label:n,leftIcon:s,...o})=>s==null?null:e.jsx(y.Tooltip,{label:n,placement:"right",children:e.jsx(r.IconMenuButtonLink,{icon:s,...o})}),Je=n=>z()?e.jsx(Xe,{...n}):e.jsx(r.MenuButtonLink,{...n}),Ye=({children:n,label:s,icon:o,popupMinWidth:l="200px"})=>e.jsx(y.Popover,{renderTrigger:i=>e.jsx(r.IconMenuButton,{icon:o,...i}),placement:"right-start",trigger:["hover","focus"],disablePadding:!0,children:e.jsx(t.Box,{minWidth:l,shadow:"popover",spacing:1,indent:1,gap:2,children:e.jsxs(_.Provider,{value:!1,children:[e.jsx(G,{label:s}),n]})})}),en=({children:n,label:s,leftIcon:o,className:l,initialExpand:i=!1})=>{const[a,c]=x.useState(i);return z()?o==null?null:e.jsx(Ye,{label:s,icon:o,children:n}):e.jsx(r.MenuButton,{label:s,onClick:()=>c(!a),leftIcon:o,className:l,expandable:!0,expanded:a,selected:a,children:e.jsx(W,{children:n})})},nn=n=>e.jsx(t.SeparatorLine,{color:d.cssColor("--lhds-color-ui-400"),...n}),tn=({numItemsSelected:n,label:s,afterLabelContent:o,rightContent:l})=>e.jsxs(t.Row,{indent:3,spacing:!0,gap:3,minHeight:"56px",justifyContent:"space-between",alignItems:"center",background:d.cssColor("--silver-lighter"),flex:1,borderRadius:"var(--swui-border-radius)",children:[e.jsxs(t.Row,{alignItems:"center",gap:2,children:[n!=null||s!=null?e.jsx(t.Row,{alignItems:"center",children:n!=null?e.jsxs(e.Fragment,{children:[e.jsx(t.Text,{children:n}),e.jsx(t.Space,{}),e.jsxs(t.Text,{children:["item",n===1?"":"s"," selected"]})]}):s!=null?e.jsx(e.Fragment,{children:typeof s=="string"?e.jsx(t.Text,{children:s}):s}):null}):null,o&&e.jsx(t.Row,{children:o})]}),e.jsx(t.Row,{gap:2,children:l})]}),sn=({children:n})=>e.jsx(t.Row,{spacing:.5,indent:.5,flex:1,children:n}),on="_productCard_19x6b_1",rn={productCard:on},ln=({renderSelectedProductCard:n,renderEditButton:s,children:o,loading:l,shadow:i,...a})=>e.jsxs(t.Column,{"data-comp":"ProductCard",className:rn.productCard,shadow:i?"box":void 0,background:d.cssColor("--moln"),borderRadius:"24px",overflow:"hidden",position:l?"relative":void 0,...t.getDataProps(a),children:[n?.(),e.jsx(t.Column,{gap:2,children:o}),s&&e.jsxs(t.Column,{children:[e.jsx(t.Row,{indent:2,justifyContent:"flex-end",children:s()}),e.jsx(t.Spacing,{})]}),l&&e.jsx(t.Box,{top:0,bottom:0,left:0,right:0,position:"absolute",justifyContent:"center",alignItems:"center",background:"rgba(255, 255, 255, 0.7)",children:e.jsx(r.Spinner,{})})]}),an=({children:n})=>e.jsx(t.Text,{variant:"bold",style:{fontSize:"2.0rem"},children:n}),cn=({description:n,subDescription:s,descriptionTags:o,capacityTag:l,offerCodeTag:i,priceText:a,title:c,subTitle:u,renderImage:p,children:j,headingLevel:g})=>{const C=o==null?!1:Array.isArray(o)?o.length>0:!t.isEmptyFragment(o);return e.jsxs(t.Column,{children:[p?.(),e.jsxs(t.Box,{gap:2,spacing:4,indent:4,background:d.cssColor("--moln"),children:[e.jsxs(t.Box,{gap:.5,children:[e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"flex-start",gap:2,children:[e.jsx(t.Heading,{variant:"h3",as:g,children:c}),e.jsxs(t.Row,{gap:2,children:[i&&e.jsx(t.Column,{justifyContent:"center",children:i}),e.jsx(an,{children:a})]})]}),u&&e.jsx(t.Text,{variant:"bold",color:d.cssColor("--silver-dark"),children:u})]}),(C||l)&&e.jsxs(t.Column,{children:[e.jsxs(t.Row,{gap:1,flexWrap:"wrap",children:[o,l&&e.jsx(r.Tag,{label:l,variant:"passive"})]}),e.jsx(t.Space,{})]}),n&&e.jsxs(t.Column,{children:[e.jsx(t.Text,{children:n}),e.jsx(t.Space,{})]}),s&&e.jsxs(t.Column,{children:[e.jsx(t.Text,{children:s}),e.jsx(t.Space,{})]}),j]})]})},un=({renderImage:n})=>e.jsxs(t.Column,{children:[n?.(),e.jsxs(t.Box,{gap:3,spacing:4,indent:4,background:d.cssColor("--moln"),children:[e.jsx(t.Box,{gap:.5,children:e.jsx(t.Row,{justifyContent:"space-between",alignItems:"flex-start",gap:2,children:e.jsx(r.ShimmerBox,{width:"50px",height:"2.8rem",borderRadius:"8px"})})}),e.jsx(t.Column,{children:e.jsx(r.ShimmerBox,{width:"180px",height:"2.0rem",borderRadius:"8px"})}),e.jsx(t.Column,{children:e.jsx(r.ShimmerBox,{width:"150px",height:"1.4rem",borderRadius:"8px"})})]})]}),dn=({label:n,children:s})=>e.jsxs(t.Box,{background:d.cssColor("--mussla"),indent:2,spacing:2,gap:2,children:[e.jsx(t.Heading,{variant:"h3",as:"h2",color:"white",children:n}),s]}),xn=({title:n,variant:s="normal",loading:o,iconLeft:l,compactIconLeft:i,renderButton:a,renderOfferCodeTag:c,renderMandatoryTag:u,renderContentLeftOfButton:p,children:j,...g})=>{const{fontSizeRatio:C}=t.useAccessibleFontSizeContext(),b=S.useMediaQuery({query:"(max-width: 460px)"}),B=S.useMediaQuery({query:"(max-width: 360px)"})||b&&C>1.2,m=o?"normal":s,v=pn(m),h=d.cssColor("--moln"),k=hn(m);return e.jsxs(t.Box,{"data-comp":"ProductSummaryCard",borderRadius:"16px",shadow:"box",overflow:"hidden",position:o?"relative":void 0,...t.getDataProps(g),children:[e.jsxs(t.Row,{flex:1,children:[!B&&e.jsx(t.Box,{flex:2,justifyContent:"center",background:v,children:l&&e.jsx(r.Icon,{color:k,icon:l,size:73})}),e.jsx(t.Box,{flex:4,indent:2,spacing:2,background:h,children:e.jsxs(t.Column,{gap:2,children:[n&&e.jsxs(t.Row,{justifyContent:"space-between",children:[e.jsxs(t.Row,{gap:2,alignItems:"center",children:[B&&i&&e.jsx(r.CircledIcon,{icon:i,size:"medium"}),e.jsx(t.Text,{variant:"bold",size:"large",children:n})]}),m=="normal"&&c?.()]}),e.jsx(t.Column,{style:{opacity:o?0:void 0},children:j}),u&&e.jsx(t.Row,{style:{opacity:o?0:void 0},children:u()}),e.jsx("div",{}),e.jsxs(t.Row,{justifyContent:"space-between",alignItems:"center",gap:2,flexWrap:"wrap",children:[p?.()??e.jsx("div",{}),a?.()]})]})})]}),o&&e.jsx(t.Box,{top:0,bottom:0,left:0,right:0,position:"absolute",justifyContent:"center",alignItems:"center",background:"rgba(255, 255, 255, 0.7)",children:e.jsx(r.Spinner,{})})]})},hn=n=>{switch(n){case"edit":return d.cssColor("--moln");case"upgrade":return d.cssColor("--moln");case"normal":return d.cssColor("--mussla");default:t.exhaustSwitchCaseElseThrow(n)}},pn=n=>{switch(n){case"edit":return d.cssColor("--mussla");case"upgrade":return d.cssColor("--mussla");case"normal":return d.cssColor("--silver-lighter");default:t.exhaustSwitchCaseElseThrow(n)}},jn=({iconLeft:n,...s})=>e.jsx(t.Box,{borderRadius:"16px",shadow:"box",overflow:"hidden",...t.getDataProps(s),children:e.jsxs(t.Row,{flex:1,children:[e.jsx(t.Box,{flex:2,justifyContent:"center",background:d.cssColor("--silver-lighter"),children:n&&e.jsx(r.Icon,{color:d.cssColor("--mussla"),icon:n,size:73})}),e.jsx(t.Box,{flex:4,indent:2,spacing:2,background:d.cssColor("--moln"),children:e.jsxs(t.Column,{gap:2,children:[e.jsx(r.ShimmerBox,{width:"180px",height:"2.8rem",borderRadius:"8px"}),e.jsx(r.ShimmerBox,{width:"50px",height:"2.0rem",borderRadius:"8px"}),e.jsx(r.ShimmerBox,{width:"150px",height:"1.4rem",borderRadius:"8px"})]})})]})}),H=["small-mobile","mobile","tablet","tablet-wide","desktop"],A=()=>{const n=S.useMediaQuery({query:"(max-width: 768px)"}),s=S.useMediaQuery({query:"(max-width: 395px)"}),o=S.useMediaQuery({query:"(max-width: 1024px)"}),l=S.useMediaQuery({query:"(max-width: 1160px)"});return{deviceSize:s?"small-mobile":n?"mobile":o?"tablet":l?"tablet-wide":"desktop"}},Q=(n,s)=>n===s||H.indexOf(n)>H.indexOf(s),gn=n=>{const{deviceSize:s}=A();return{visible:x.useMemo(()=>Q(s,n),[s,n])}},V=({isOpen:n,initialIndex:s,onUpdateIndex:o,altLabelPrevious:l,altLabelZoomIn:i,altLabelZoomOut:a,altLabelNext:c,altLabelClose:u,onRequestClose:p,images:j})=>{const g=x.useRef(null),{deviceSize:C}=A(),b=C!=="mobile",[w,B]=x.useState(s??0),m=({index:h})=>{B(h),o?.(h)},v=x.useMemo(()=>j.map(h=>mn(h)),[j]);return e.jsx(L,{open:n,close:p,index:w,plugins:[J,Y,ee],slides:v,on:{view:m},animation:{fade:0},controller:{closeOnPullDown:!0,closeOnBackdropClick:!0,ref:g},counter:{container:{style:{filter:"none",color:"white",fontSize:"2.0rem",fontFamily:"var(--swui-font-primary)"}}},render:{buttonZoom:h=>b&&e.jsxs(t.Row,{gap:1,indent:2,children:[e.jsx(r.SecondaryButton,{"aria-label":i,leftIcon:r.stenaSearchPlus,size:"large",onClick:()=>h.zoomIn()}),e.jsx(r.SecondaryButton,{"aria-label":a,leftIcon:r.stenaSearchMinus,size:"large",onClick:()=>h.zoomOut()})]}),buttonPrev:()=>j.length>1&&b&&e.jsx(t.Indent,{num:4,className:"yarl__navigation_prev",children:e.jsx(r.SecondaryButton,{"aria-label":l,leftIcon:r.stenaAngleLeft,size:"large",onClick:()=>g.current?.prev()})}),buttonNext:()=>j.length>1&&b&&e.jsx(t.Indent,{num:4,className:"yarl__navigation_next",children:e.jsx(r.SecondaryButton,{"aria-label":c,leftIcon:r.stenaAngleRight,size:"large",onClick:()=>g.current?.next()})}),buttonClose:()=>e.jsx(t.Indent,{children:e.jsx(r.PrimaryButton,{variant:"danger","aria-label":u,leftIcon:r.stenaTimesThick,size:"large",onClick:()=>g.current?.close()})})}})},mn=n=>({src:n.url,width:n.width,height:n.height,alt:n.alt,title:n.title,description:n.description}),Cn=({images:n,initialIndex:s,altLabelPrevious:o,altLabelZoomIn:l,altLabelZoomOut:i,altLabelNext:a,altLabelClose:c})=>{const u=x.useRef(null),[p,j]=x.useState(!1),[g,C]=x.useState(s??0),b=x.useCallback(()=>{j(!0)},[]),w=x.useCallback(()=>{j(!1)},[]),B=({index:h})=>C(h);x.useEffect(()=>{C(s??0)},[s]);const m=x.useMemo(()=>n.map(bn),[n]),v=x.useMemo(()=>n.map(h=>h.fullscreenImage?{...h,url:h.fullscreenImage.url,width:h.fullscreenImage.width,height:h.fullscreenImage.height}:h),[n]);return e.jsxs(t.BlockKeyboardEvents,{blockedKeys:"Escape",children:[e.jsx(L,{controller:{ref:u},index:g,slides:m,plugins:[X],on:{view:B,click:b},carousel:{padding:0,spacing:0,imageFit:"cover"},render:{buttonPrev:()=>n.length>1&&e.jsx(t.Indent,{className:"yarl__navigation_prev",children:e.jsx(r.SecondaryButton,{"aria-label":o,leftIcon:r.stenaAngleLeft,onClick:()=>u.current?.prev()})}),buttonNext:()=>n.length>1&&e.jsx(t.Indent,{className:"yarl__navigation_next",children:e.jsx(r.SecondaryButton,{"aria-label":a,leftIcon:r.stenaAngleRight,onClick:()=>u.current?.next()})})},styles:{button:{filter:"none"}},inline:{style:{width:"100%",maxWidth:"900px",aspectRatio:"3 / 2",margin:"0 auto"}}}),p&&e.jsx(V,{isOpen:!0,onRequestClose:w,initialIndex:g,onUpdateIndex:C,images:v,altLabelPrevious:o,altLabelNext:a,altLabelClose:c,altLabelZoomIn:l,altLabelZoomOut:i})]})},bn=n=>({src:n.url,width:n.width,height:n.height,alt:n.alt,title:n.title,description:n.description});exports.ActionMenuFlatButton=O;exports.ActionMenuPrimaryButton=se;exports.ActionMenuSecondaryButton=oe;exports.CheckboxMenu=le;exports.Collapsible=E;exports.CollapsibleEmptyContent=Ne;exports.CollapsibleGroupHeading=Pe;exports.CollapsibleList=Ie;exports.CollapsibleWithCheckbox=_e;exports.ErrorPanel=U;exports.ErrorScreen=Fe;exports.FullscreenImageCarousel=V;exports.ImageCarousel=Cn;exports.LoadingPanel=$;exports.LoadingScreen=ze;exports.NavBar=ue;exports.NavBarButton=D;exports.NavBarHeading=he;exports.NavBarNotificationButton=Ce;exports.NavBarPopoverButton=pe;exports.NavBarSearchField=ve;exports.NavBarUserButton=Re;exports.PageHeader=Ae;exports.PageHeaderRow=Te;exports.PageHeading=qe;exports.ProductCard=ln;exports.ProductCardContentItem=cn;exports.ProductCardContentItemSkeletor=un;exports.ProductSummaryCard=xn;exports.ProductSummaryCardSkeletor=jn;exports.SelectedItemsActionsPadding=sn;exports.SelectedItemsActionsPanel=tn;exports.SelectedProductCard=dn;exports.SelectionRow=Oe;exports.SidebarMenu=Ve;exports.SidebarMenuCollapsible=en;exports.SidebarMenuCollapsibleGroupBox=W;exports.SidebarMenuHeading=G;exports.SidebarMenuLink=Je;exports.SidebarMenuSeparator=nn;exports.SidebarRailMenu=Ze;exports.isDeviceSameOrLarger=Q;exports.useDeviceSize=A;exports.useLayoutVisibility=gn;
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/action-menu-button/ActionMenuButton.tsx","../src/components/action-menu-button/ActionMenuPrimaryButton.tsx","../src/components/action-menu-button/ActionMenuSecondaryButton.tsx","../src/components/action-menu-button/ActionMenuFlatButton.tsx","../src/components/checkbox-menu/CheckboxMenu.tsx","../src/components/nav-bar/NavBarSideMenuButton.tsx","../src/components/nav-bar/NavBar.tsx","../src/components/nav-bar/NavBarButton.tsx","../src/components/nav-bar/NavBarHeading.tsx","../src/components/nav-bar/NavBarPopoverButton.tsx","../src/components/nav-bar/NavBarNotificationButton.tsx","../src/components/nav-bar/NavBarSearchField.tsx","../src/components/nav-bar/NavBarUserButton.tsx","../src/components/collapsible/Collapsible.tsx","../src/components/collapsible/CollapsibleList.tsx","../src/components/collapsible/CollapsibleWithCheckbox.tsx","../src/components/sidebar-menu/items/SidebarMenuCollapsibleGroupBox.tsx","../src/components/collapsible/CollapsibleGroupHeading.tsx","../src/components/collapsible/CollapsibleEmptyContent.tsx","../src/components/error-panel/ErrorPanel.tsx","../src/components/error-panel/ErrorScreen.tsx","../src/components/loading-panel/LoadingPanel.tsx","../src/components/loading-panel/LoadingScreen.tsx","../src/components/page-header/PageHeader.tsx","../src/components/page-header/PageHeaderRow.tsx","../src/components/page-header/PageHeading.tsx","../src/components/selection-row/SelectionRow.tsx","../src/components/sidebar-menu/SidebarMenuCloseButtonRow.tsx","../src/components/sidebar-menu/SidebarMenuPinButton.tsx","../src/components/sidebar-menu/SidebarMenu.tsx","../src/components/sidebar-menu/rail/RailContext.ts","../src/components/sidebar-menu/items/RailMenuButton.tsx","../src/components/sidebar-menu/rail/SidebarRailMenu.tsx","../src/components/sidebar-menu/items/SidebarMenuHeading.tsx","../src/components/sidebar-menu/items/RailMenuLink.tsx","../src/components/sidebar-menu/items/SidebarMenuLink.tsx","../src/components/sidebar-menu/items/RailMenuCollapsible.tsx","../src/components/sidebar-menu/items/SidebarMenuCollapsible.tsx","../src/components/sidebar-menu/items/SidebarMenuSeparator.tsx","../src/components/selected-items-actions-panel/SelectedItemsActionsPanel.tsx","../src/components/selected-items-actions-panel/SelectedItemsActionsPadding.tsx","../src/components/cards/product-card/ProductCard.tsx","../src/components/cards/product-card/LargePrice.tsx","../src/components/cards/product-card/ProductCardContentItem.tsx","../src/components/cards/product-card/ProductCardContentItemSkeletor.tsx","../src/components/cards/product-card/SelectedProductCard.tsx","../src/components/cards/product-summary-card/ProductSummaryCard.tsx","../src/components/cards/product-summary-card/ProductSummaryCardSkeletor.tsx","../src/utils/UseDeviceSize.ts","../src/components/image-carousel/FullscreenImageCarousel.tsx","../src/components/image-carousel/ImageCarousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ReactNode, RefObject, useMemo, useRef } from \"react\";\nimport {\n ActionMenu,\n ActionMenuContext,\n ActionMenuProps,\n FlatButton,\n PrimaryButton,\n PrimaryButtonProps,\n SecondaryButton,\n stenaAngleDown,\n} from \"@stenajs-webui/elements\";\nimport { useBoolean } from \"@stenajs-webui/core\";\nimport {\n ControlledPopover,\n ControlledPopoverProps,\n PopoverProps,\n} from \"@stenajs-webui/tooltip\";\n\nexport interface ActionMenuButtonProps\n extends Omit<\n PrimaryButtonProps,\n \"variant\" | \"loading\" | \"loadingLabel\" | \"success\" | \"successLabel\"\n > {\n /** The content of the Action Menu. */\n renderItems: (close: () => void) => ReactNode;\n /** The placement of the Action Menu. */\n placement?: PopoverProps[\"placement\"];\n /** Z-index of the Action Menu */\n zIndex?: number;\n /** Portal target, HTML element. If not set, portal is not used. */\n appendTo?: ControlledPopoverProps[\"appendTo\"];\n menuWidth?: ActionMenuProps[\"width\"];\n menuTop?: ActionMenuProps[\"top\"];\n buttonComponent:\n | typeof PrimaryButton\n | typeof SecondaryButton\n | typeof FlatButton;\n disableArrow?: boolean;\n buttonRef?: RefObject<HTMLButtonElement | null>;\n /**\n * Use if focus should not be trapped inside the Action Menu.\n * Defaults to false. */\n disableTrapFocus?: boolean;\n}\n\nexport const ActionMenuButton: React.FC<ActionMenuButtonProps> = ({\n renderItems,\n placement = \"bottom\",\n buttonComponent: Button,\n rightIcon = stenaAngleDown,\n menuWidth,\n menuTop,\n onClick,\n disableArrow = false,\n buttonRef,\n appendTo,\n zIndex,\n disableTrapFocus = false,\n ...buttonProps\n}) => {\n const [isOpen, open, close, toggle] = useBoolean(false);\n\n const fallbackRef = useRef<HTMLButtonElement>(null);\n const ref = buttonRef ?? fallbackRef;\n\n const contextValue = useMemo(() => ({ open, close }), [open, close]);\n\n const handleClick = (\n event: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => {\n onClick?.(event);\n toggle();\n };\n\n return (\n <>\n <ControlledPopover\n renderTrigger={(props) => (\n <Button\n rightIcon={disableArrow ? undefined : rightIcon}\n {...buttonProps}\n ref={ref}\n onClick={handleClick}\n {...props}\n />\n )}\n hideArrow\n disablePadding\n open={isOpen}\n onRequestClose={close}\n placement={placement}\n appendTo={appendTo}\n zIndex={zIndex}\n >\n {isOpen && (\n <ActionMenu\n width={menuWidth}\n top={menuTop}\n trapFocus={!disableTrapFocus}\n >\n <ActionMenuContext.Provider value={contextValue}>\n {renderItems(close)}\n </ActionMenuContext.Provider>\n </ActionMenu>\n )}\n </ControlledPopover>\n </>\n );\n};\n","import * as React from \"react\";\nimport { PrimaryButton, PrimaryButtonProps } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuPrimaryButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\">,\n Pick<PrimaryButtonProps, \"variant\"> {}\n\nexport const ActionMenuPrimaryButton: React.FC<ActionMenuPrimaryButtonProps> = (\n props,\n) => {\n return <ActionMenuButton buttonComponent={PrimaryButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuSecondaryButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\"> {}\n\nexport const ActionMenuSecondaryButton: React.FC<\n ActionMenuSecondaryButtonProps\n> = (props) => {\n return <ActionMenuButton buttonComponent={SecondaryButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuFlatButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\"> {}\n\nexport const ActionMenuFlatButton: React.FC<ActionMenuFlatButtonProps> = (\n props,\n) => {\n return <ActionMenuButton buttonComponent={FlatButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Column, Indent, Row } from \"@stenajs-webui/core\";\nimport {\n ActionMenu,\n FlatButton,\n stenaAngleDown,\n} from \"@stenajs-webui/elements\";\nimport { Popover } from \"@stenajs-webui/tooltip\";\nimport { Checkbox, CheckboxProps } from \"@stenajs-webui/forms\";\n\nexport interface CheckboxMenuProps extends CheckboxProps {\n renderMenu: (close: () => void) => ReactNode;\n}\n\nconst border = `1px solid var(--lhds-color-ui-300)`;\n\nexport const CheckboxMenu: React.FC<CheckboxMenuProps> = ({\n renderMenu,\n ...checkboxProps\n}) => {\n return (\n <Popover\n trigger={\"click\"}\n renderTrigger={(props) => (\n <Row>\n <Row\n spacing={0.5}\n indent\n alignItems={\"center\"}\n border={border}\n borderRadius={\"4px\"}\n >\n <Checkbox {...checkboxProps} />\n <Indent num={0.5} />\n <FlatButton size={\"small\"} leftIcon={stenaAngleDown} {...props} />\n </Row>\n </Row>\n )}\n hideArrow\n disablePadding\n placement={\"bottom-start\"}\n >\n {({ onRequestClose }) => (\n <Column>\n <ActionMenu>{renderMenu(onRequestClose)}</ActionMenu>\n </Column>\n )}\n </Popover>\n );\n};\n","import * as React from \"react\";\nimport { DivProps } from \"@stenajs-webui/core\";\nimport { FlatButton, stenaHamburger } from \"@stenajs-webui/elements\";\n\nexport interface SidebarMenuButtonProps extends Pick<DivProps, \"className\"> {\n onClick?: (ev: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const NavBarSideMenuButton: React.FC<SidebarMenuButtonProps> = ({\n className,\n onClick,\n}) => {\n return (\n <FlatButton\n leftIcon={stenaHamburger}\n className={className}\n onClick={onClick}\n />\n );\n};\n","import { Indent, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBar.module.css\";\nimport {\n NavBarSideMenuButton,\n SidebarMenuButtonProps,\n} from \"./NavBarSideMenuButton\";\n\nexport type NavBarVariant = \"compact\" | \"standard\" | \"relaxed\";\n\nexport interface NavBarProps {\n className?: string;\n showMenuButton?: boolean;\n onClickMenuButton?: SidebarMenuButtonProps[\"onClick\"];\n right?: ReactNode;\n center?: ReactNode;\n left?: ReactNode;\n variant?: NavBarVariant;\n children?: ReactNode;\n}\n\nexport const NavBar: React.FC<NavBarProps> = ({\n left,\n className,\n showMenuButton = false,\n children,\n right,\n center,\n onClickMenuButton,\n}) => {\n const currentFlex = center ? 1 : undefined;\n return (\n <Row\n justifyContent={\"space-between\"}\n className={cx(styles.navBar, className)}\n >\n <Row\n flex={currentFlex}\n justifyContent={\"flex-start\"}\n alignItems={\"center\"}\n >\n <Row width={\"86px\"} alignItems={\"center\"}>\n <Indent />\n {showMenuButton && (\n <NavBarSideMenuButton onClick={onClickMenuButton} />\n )}\n </Row>\n\n {left && (\n <>\n {left}\n <Indent num={2} />\n </>\n )}\n {children && (\n <>\n <Row justifyContent={\"center\"} alignItems={\"center\"}>\n {React.Children.map(children, (child, index) => (\n <>\n {index > 0 && <Indent />}\n {child}\n </>\n ))}\n </Row>\n </>\n )}\n </Row>\n {center && (\n <Row justifyContent={\"center\"} alignItems={\"center\"}>\n {center}\n </Row>\n )}\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"} flex={currentFlex}>\n {right}\n <Indent num={2} />\n </Row>\n </Row>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarButton.module.css\";\n\nexport interface NavBarButtonProps extends FlatButtonProps {\n selected?: boolean;\n}\n\nexport const NavBarButton = forwardRef<HTMLButtonElement, NavBarButtonProps>(\n function ({ selected, className, ...buttonProps }, ref) {\n return (\n <FlatButton\n {...buttonProps}\n ref={ref}\n className={cx(\n styles.navBarButton,\n selected && styles.selected,\n className,\n )}\n />\n );\n },\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"@stenajs-webui/core\";\n\ninterface NavBarHeadingProps extends HeadingProps {}\n\nexport const NavBarHeading: React.FC<NavBarHeadingProps> = (headingProps) => {\n return (\n <Heading whiteSpace={\"nowrap\"} variant={\"h4\"} as={\"h1\"} {...headingProps} />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { NavBarButton, NavBarButtonProps } from \"./NavBarButton\";\nimport {\n ControlledPopover,\n ControlledPopoverProps,\n} from \"@stenajs-webui/tooltip\";\nimport { Box, useBoolean } from \"@stenajs-webui/core\";\n\ntype RenderProp = (args: RenderPropArgs) => ReactNode;\n\ninterface RenderPropArgs {\n close: () => void;\n}\n\nexport interface NavBarPopoverButtonProps\n extends Omit<NavBarButtonProps, \"onClick\" | \"content\">,\n Pick<ControlledPopoverProps, \"zIndex\" | \"appendTo\"> {\n content?: RenderProp;\n}\n\nexport const NavBarPopoverButton: React.FC<NavBarPopoverButtonProps> = ({\n content,\n children,\n appendTo,\n zIndex,\n ...navBarButtonProps\n}) => {\n const [isOpen, , close, toggle] = useBoolean(false);\n\n return (\n <ControlledPopover\n renderTrigger={(props) => (\n <NavBarButton {...navBarButtonProps} {...props} onClick={toggle} />\n )}\n open={isOpen}\n onRequestClose={close}\n zIndex={zIndex}\n appendTo={appendTo}\n >\n <Box>\n {content && content({ close })}\n {children}\n </Box>\n </ControlledPopover>\n );\n};\n","import {\n BaseButton,\n FlatButtonProps,\n stenaBellFilled,\n} from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarNotificationButton.module.css\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface NavBarNotificationButtonProps\n extends Omit<FlatButtonProps, \"leftIcon\" | \"rightIcon\" | \"label\"> {\n count: number;\n unread: boolean;\n icon?: IconDefinition;\n}\n\nexport const NavBarNotificationButton = forwardRef<\n HTMLButtonElement,\n NavBarNotificationButtonProps\n>(function (\n {\n count,\n unread = false,\n className,\n labelClassName,\n iconClassName,\n icon = stenaBellFilled,\n ...buttonProps\n },\n ref,\n) {\n const hasCount = count > 1;\n\n return (\n <BaseButton\n {...buttonProps}\n ref={ref}\n leftIcon={icon}\n className={cx(\n styles.navBarNotificationButton,\n unread && styles.unread,\n hasCount && styles.hasCount,\n className,\n )}\n label={hasCount ? String(count) : undefined}\n labelClassName={cx(labelClassName, styles.label)}\n iconClassName={cx(iconClassName, styles.icon)}\n />\n );\n});\n","import * as React from \"react\";\nimport { TextInput, TextInputProps } from \"@stenajs-webui/forms\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarSearchField.module.css\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { stenaTimes, TextInputButton } from \"@stenajs-webui/elements\";\n\nexport interface NavBarSearchFieldProps extends TextInputProps {\n showClearButton?: boolean;\n onClickClearButton?: ButtonElementProps[\"onClick\"];\n}\n\nexport const NavBarSearchField: React.FC<NavBarSearchFieldProps> = ({\n placeholder = \"Search\",\n className,\n wrapperClassName,\n showClearButton,\n onClickClearButton,\n value,\n ...textInputProps\n}) => {\n return (\n <TextInput\n wrapperClassName={cx(\n styles.navBarSearchFieldWrapper,\n showClearButton ? styles.withButton : undefined,\n wrapperClassName,\n )}\n className={cx(styles.navBarSearchFieldInput, className)}\n placeholder={placeholder}\n value={value}\n buttonRight={\n value && showClearButton ? (\n <TextInputButton\n className={styles.clearButton}\n icon={stenaTimes}\n variant={\"error\"}\n onClick={onClickClearButton}\n />\n ) : undefined\n }\n {...textInputProps}\n />\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { stenaUserCircle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport {\n ActionMenuFlatButton,\n ActionMenuFlatButtonProps,\n} from \"../action-menu-button/ActionMenuFlatButton\";\nimport styles from \"./NavBarUserButton.module.css\";\n\nexport interface NavBarUserButtonProps\n extends Omit<ActionMenuFlatButtonProps, \"label\" | \"leftIcon\" | \"rightIcon\"> {\n username?: string;\n initials?: string;\n icon?: IconDefinition;\n}\n\nexport const NavBarUserButton: React.FC<NavBarUserButtonProps> = ({\n className,\n username,\n initials,\n icon = stenaUserCircle,\n responsiveIconOnly = initials == null,\n ...buttonProps\n}) => {\n return (\n <ActionMenuFlatButton\n {...buttonProps}\n className={cx(styles.navBarUserButton, className)}\n leftIcon={username != null ? icon : undefined}\n label={initials ?? username}\n forceRound={initials != null}\n responsiveIconOnly={responsiveIconOnly}\n disableArrow\n />\n );\n};\n","import { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { MenuButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef, ReactNode } from \"react\";\n\nexport type CollapsibleProps =\n | CollapsibleLabelProps\n | CollapsibleRenderLabelProps;\n\nexport interface CollapsibleCommonProps\n extends Omit<ButtonElementProps, \"value\"> {\n contentLeft?: ReactNode;\n contentRight?: ReactNode;\n collapsed?: boolean;\n}\n\nexport interface CollapsibleLabelProps extends CollapsibleCommonProps {\n label: string;\n}\n\nexport interface CollapsibleRenderLabelProps extends CollapsibleCommonProps {\n renderLabel: () => ReactNode;\n}\n\nexport const Collapsible = forwardRef<HTMLButtonElement, CollapsibleProps>(\n ({ contentLeft, contentRight, collapsed = false, ...props }, ref) => (\n <MenuButton\n ref={ref}\n expandable\n expanded={!collapsed}\n selected={!collapsed}\n left={contentLeft}\n right={contentRight}\n {...props}\n />\n ),\n);\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { ReactNode } from \"react\";\n\nexport interface CollapsibleListProps {\n children?: ReactNode;\n}\n\nexport const CollapsibleList: React.FC<CollapsibleListProps> = ({\n children,\n}) => {\n return <Column gap={1}>{children}</Column>;\n};\n","import { Checkbox, CheckboxProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Collapsible, CollapsibleProps } from \"./Collapsible\";\n\nexport type CollapsibleWithCheckboxProps =\n | CollapsibleWithCheckboxLabelProps\n | CollapsibleWithCheckboxRenderLabelProps;\n\nexport interface CollapsibleWithCheckboxCommonProps\n extends Omit<CollapsibleProps, \"contentLeft\" | \"onChange\">,\n Pick<\n CheckboxProps,\n \"value\" | \"onValueChange\" | \"onChange\" | \"indeterminate\"\n > {\n checkboxDisabled?: CheckboxProps[\"disabled\"];\n}\n\nexport interface CollapsibleWithCheckboxLabelProps\n extends CollapsibleWithCheckboxCommonProps {\n label: string;\n}\n\nexport interface CollapsibleWithCheckboxRenderLabelProps\n extends CollapsibleWithCheckboxCommonProps {\n renderLabel: () => ReactNode;\n}\n\nexport const CollapsibleWithCheckbox: React.FC<\n CollapsibleWithCheckboxProps\n> = ({\n value,\n onValueChange,\n onChange,\n indeterminate,\n checkboxDisabled,\n ...collapsibleProps\n}) => {\n return (\n <Collapsible\n contentLeft={\n <Checkbox\n value={value}\n indeterminate={indeterminate}\n onValueChange={onValueChange}\n onChange={onChange}\n disabled={checkboxDisabled}\n onClick={(ev) => ev.stopPropagation()}\n />\n }\n {...collapsibleProps}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SidebarMenuCollapsibleGroupBox.module.css\";\n\nexport interface SidebarMenuCollapsibleGroupBoxProps {\n children?: ReactNode;\n}\n\nexport const SidebarMenuCollapsibleGroupBox: React.FC<\n SidebarMenuCollapsibleGroupBoxProps\n> = ({ children }) => {\n return (\n <div className={styles.sidebarMenuCollapsibleGroupBox}>{children}</div>\n );\n};\n","import { Box, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\n\nexport interface CollapsibleGroupHeadingProps {\n children: string;\n}\n\nexport const CollapsibleGroupHeading: React.FC<\n CollapsibleGroupHeadingProps\n> = ({ children }) => (\n <Box spacing indent>\n <Text variant={\"overline\"} size={\"smaller\"}>\n {children}\n </Text>\n </Box>\n);\n","import { Column, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon, stenaMail } from \"@stenajs-webui/elements\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport * as React from \"react\";\n\nexport interface CollapsibleEmptyContentProps {\n text?: string;\n}\n\nexport const CollapsibleEmptyContent: React.FC<\n CollapsibleEmptyContentProps\n> = ({ text = \"No content\" }) => {\n return (\n <Column indent spacing flex={1} alignItems={\"center\"}>\n <Icon icon={stenaMail} color={cssColor(\"--lhds-color-ui-500\")} />\n <Space />\n <Text size={\"small\"} color={cssColor(\"--lhds-color-ui-500\")}>\n {text}\n </Text>\n </Column>\n );\n};\n","import {\n Box,\n Column,\n Heading,\n HeadingProps,\n Space,\n Text,\n} from \"@stenajs-webui/core\";\nimport {\n Card,\n CardBody,\n CardProps,\n CircledIcon,\n stenaTripFerryXl,\n XlIcon,\n} from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\n\nexport interface ErrorPanelProps extends CardProps, PropsWithChildren {\n text?: string;\n heading?: string;\n buttons?: ReactNode;\n icon?: XlIcon;\n headingLevel?: HeadingProps[\"as\"];\n}\n\nexport const ErrorPanel: React.FC<ErrorPanelProps> = ({\n text,\n heading,\n children,\n buttons,\n icon = stenaTripFerryXl,\n headingLevel = \"h3\",\n ...cardProps\n}) => {\n const activeText =\n !text && !heading ? \"Something unexpected happened.\" : text;\n\n return (\n <Card {...cardProps}>\n <CardBody>\n <Column spacing={1} gap={3} alignItems={\"center\"}>\n <Column alignItems={\"center\"}>\n <Space num={1} />\n <CircledIcon icon={icon} size={\"xl\"} />\n </Column>\n {heading && <Heading as={headingLevel}>{heading}</Heading>}\n {activeText && <Text>{activeText}</Text>}\n {children}\n {buttons && (\n <Box>\n <Space num={2} />\n {buttons}\n </Box>\n )}\n </Column>\n </CardBody>\n </Card>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ErrorPanel, ErrorPanelProps } from \"./ErrorPanel\";\n\nexport const ErrorScreen: React.FC<ErrorPanelProps> = (props) => {\n return (\n <Box\n width={\"100%\"}\n height={\"100%\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <ErrorPanel {...props} />\n </Box>\n );\n};\n","import { Box, Heading, Space } from \"@stenajs-webui/core\";\nimport { Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface LoadingPanelProps {\n text?: string;\n}\n\nexport const LoadingPanel: React.FC<LoadingPanelProps> = ({\n text = \"Loading...\",\n}) => {\n return (\n <Box alignItems={\"center\"}>\n <Spinner size={\"small\"} />\n <Space num={4} />\n <Heading variant={\"h4\"}>{text}</Heading>\n </Box>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { LoadingPanel, LoadingPanelProps } from \"./LoadingPanel\";\n\nexport const LoadingScreen: React.FC<LoadingPanelProps> = (props) => {\n return (\n <Box\n width={\"100%\"}\n height={\"100%\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <LoadingPanel {...props} />\n </Box>\n );\n};\n","import { Box, Row, Space } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface PageHeaderProps {\n renderBreadCrumbs?: () => ReactNode;\n renderPageHeading?: () => ReactNode;\n renderTabs?: () => ReactNode;\n children?: ReactNode;\n}\n\nexport const PageHeader: React.FC<PageHeaderProps> = ({\n renderBreadCrumbs,\n renderPageHeading,\n renderTabs,\n children,\n}) => {\n return (\n <Box shadow={\"bottom\"} background={cssColor(\"--lhds-color-ui-50\")} gap={2}>\n <Box indent={3}>\n {renderBreadCrumbs && (\n <Row spacing={1} alignItems={\"center\"}>\n <Row width={\"64px\"} height={\"16px\"} />\n {renderBreadCrumbs()}\n </Row>\n )}\n {renderPageHeading?.()}\n {renderTabs && <Space />}\n {renderTabs?.()}\n </Box>\n {children}\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Row } from \"@stenajs-webui/core\";\n\nexport interface PageHeaderRowProps extends BoxProps {}\n\nexport const PageHeaderRow: React.FC<PageHeaderRowProps> = (props) => (\n <Row indent={3} spacing {...props} />\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\n\nexport type PageHeadingVariant = \"compact\" | \"standard\" | \"relaxed\";\n\ninterface PageHeadingProps {\n icon?: MediumIcon;\n contentLeft?: ReactNode;\n contentRight?: ReactNode;\n heading: string;\n headingLevel?: HeadingVariant;\n variant?: PageHeadingVariant;\n}\n\nexport const PageHeading: React.FC<PageHeadingProps> = ({\n icon,\n heading,\n headingLevel = \"h2\",\n contentLeft,\n contentRight,\n}) => (\n <Row alignItems={\"center\"} gap={2} height={\"64px\"}>\n <Row alignItems={\"center\"}>\n <Row width={\"64px\"} alignItems={\"center\"}>\n {icon && <CircledIcon icon={icon} />}\n </Row>\n <Heading variant={\"h3\"} as={headingLevel}>\n {heading}\n </Heading>\n </Row>\n <Row alignItems={\"center\"}>{contentLeft}</Row>\n <Row style={{ marginLeft: \"auto\" }} alignItems={\"center\"}>\n {contentRight}\n </Row>\n </Row>\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SelectionRow.module.css\";\nimport { Box, Column, getDataProps, Row, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport {\n CircledIcon,\n CircledIconVariant,\n MediumIcon,\n} from \"@stenajs-webui/elements\";\n\nexport interface SelectionRowProps {\n icon?: MediumIcon;\n heading: string;\n description?: string | ReactNode;\n contentRight: ReactNode;\n htmlFor: string;\n circledIconVariant?: CircledIconVariant;\n}\n\nexport type SelectionRowBgVariant = \"none\" | \"white\";\n\nexport const SelectionRow: React.FC<SelectionRowProps> = ({\n icon,\n heading,\n description,\n contentRight,\n htmlFor,\n circledIconVariant,\n ...rest\n}) => {\n return (\n <div className={styles.selectionRow} {...getDataProps(rest)}>\n <Row gap={2}>\n {icon && (\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"40px\"}\n className={styles.iconColumn}\n >\n <CircledIcon icon={icon} variant={circledIconVariant} />\n </Box>\n )}\n <label htmlFor={htmlFor}>\n <Column gap={0.5}>\n <Text variant={\"bold\"}>{heading}</Text>\n {typeof description === \"string\" ? (\n <Text color={cssColor(\"--silver-dark\")}>{description}</Text>\n ) : (\n description\n )}\n </Column>\n </label>\n </Row>\n {contentRight}\n </div>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./SidebarMenuCloseButtonRow.module.css\";\nimport { ButtonElementProps, Column, Row, Space } from \"@stenajs-webui/core\";\nimport { CloseButton, StenaFlag } from \"@stenajs-webui/elements\";\n\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SidebarMenuCloseButtonRowProps extends ButtonElementProps {}\n\nexport const SidebarMenuCloseButtonRow: React.FC<\n SidebarMenuCloseButtonRowProps\n> = ({ onClick }) => {\n return (\n <Column background={cssColor(\"--lhds-color-ui-50\")}>\n <Space />\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n flex={1}\n indent={1}\n minHeight={\"48px\"}\n >\n <CloseButton onClick={onClick} />\n <StenaFlag className={styles.stenaFlag} />\n </Row>\n </Column>\n );\n};\n","import * as React from \"react\";\nimport {\n MenuButton,\n MenuButtonProps,\n stenaAngleLeftDouble,\n stenaPin,\n} from \"@stenajs-webui/elements\";\n\nexport interface SidebarMenuPinButtonProps {\n isPinned?: boolean;\n label?: string;\n onClick?: MenuButtonProps[\"onClick\"];\n}\n\nexport const SidebarMenuPinButton: React.FC<SidebarMenuPinButtonProps> = ({\n isPinned,\n onClick,\n label,\n}) => {\n const pinLabel = isPinned ? \"Unpin menu\" : \"Pin menu\";\n const activeLabel = label ?? pinLabel;\n const activeIcon = isPinned ? stenaAngleLeftDouble : stenaPin;\n\n return (\n <MenuButton onClick={onClick} label={activeLabel} leftIcon={activeIcon} />\n );\n};\n","import { Box, BoxProps, Column, Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SidebarMenu.module.css\";\nimport {\n SidebarMenuCloseButtonRow,\n SidebarMenuCloseButtonRowProps,\n} from \"./SidebarMenuCloseButtonRow\";\nimport { SidebarMenuPinButton } from \"./SidebarMenuPinButton\";\n\nexport interface SidebarMenuProps extends BoxProps {\n onCloseClick?: SidebarMenuCloseButtonRowProps[\"onClick\"];\n pinButtonVisible?: boolean;\n isPinned?: boolean;\n bottomItems?: ReactNode;\n onClickPinButton?: () => void;\n}\n\nexport const SidebarMenu: React.FC<SidebarMenuProps> = ({\n className,\n children,\n onCloseClick,\n pinButtonVisible,\n onClickPinButton,\n bottomItems,\n isPinned,\n ...boxProps\n}) => {\n return (\n <Box {...boxProps} className={cx(styles.sidebarMenu, className)}>\n <SidebarMenuCloseButtonRow onClick={onCloseClick} />\n <Box className={styles.scrollContainer}>\n <Column\n className={styles.sidebarItems}\n justifyContent={\"space-between\"}\n flex={1}\n gap={1}\n indent={1}\n >\n <Column gap={1}>{children}</Column>\n {(bottomItems || pinButtonVisible) && (\n <Column gap={1}>\n {bottomItems}\n {pinButtonVisible && (\n <SidebarMenuPinButton\n isPinned={isPinned}\n onClick={onClickPinButton}\n />\n )}\n <Space />\n </Column>\n )}\n </Column>\n </Box>\n </Box>\n );\n};\n","import { createContext, useContext } from \"react\";\n\nexport const RailContext = createContext<boolean | undefined>(false);\n\nexport const useRailContext = () => useContext(RailContext);\n","import * as React from \"react\";\nimport { IconMenuButton, IconMenuButtonProps } from \"@stenajs-webui/elements\";\nimport { Tooltip } from \"@stenajs-webui/tooltip\";\n\nexport type RailMenuButtonProps = IconMenuButtonProps & { label: string };\n\nexport const RailMenuButton: React.FC<RailMenuButtonProps> = ({\n label,\n ...menuButtonLinkProps\n}) => {\n return (\n <Tooltip label={label} placement={\"right\"} appendTo={document.body}>\n <IconMenuButton {...menuButtonLinkProps} />\n </Tooltip>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Box, Column } from \"@stenajs-webui/core\";\nimport { RailContext } from \"./RailContext\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport {\n IconMenuButton,\n stenaAngleLeftDouble,\n stenaHamburger,\n} from \"@stenajs-webui/elements\";\nimport { RailMenuButton } from \"../items/RailMenuButton\";\n\ninterface SidebarRailMenuProps {\n closeButtonVisible?: boolean;\n onClickCloseButton?: () => void;\n onClickMenuButton?: () => void;\n children?: ReactNode;\n bottomItems?: ReactNode;\n closeButtonTitle?: string;\n}\n\nexport const SidebarRailMenu: React.FC<SidebarRailMenuProps> = ({\n closeButtonVisible,\n onClickCloseButton,\n onClickMenuButton,\n children,\n bottomItems,\n closeButtonTitle = \"Unpin menu\",\n}) => {\n return (\n <Box\n position={\"fixed\"}\n left={0}\n top={0}\n bottom={0}\n indent={0.5}\n spacing={1}\n gap={1}\n shadow={\"popover\"}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <IconMenuButton onClick={onClickMenuButton} icon={stenaHamburger} />\n <Column justifyContent={\"space-between\"} flex={1} gap={1}>\n <Column gap={1}>\n <RailContext.Provider value={true}>{children}</RailContext.Provider>\n </Column>\n <Column gap={1}>\n {(bottomItems || closeButtonVisible) && (\n <RailContext.Provider value={true}>\n {bottomItems}\n {closeButtonVisible && (\n <RailMenuButton\n icon={stenaAngleLeftDouble}\n label={closeButtonTitle}\n onClick={onClickCloseButton}\n />\n )}\n </RailContext.Provider>\n )}\n </Column>\n </Column>\n </Box>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { useRailContext } from \"../rail/RailContext\";\n\nexport interface SidebarMenuHeadingProps {\n label: string;\n}\n\nexport const SidebarMenuHeading: React.FC<SidebarMenuHeadingProps> = ({\n label,\n}) => {\n const isRail = useRailContext();\n\n if (isRail) {\n return null;\n }\n\n return (\n <Box height={\"32px\"} justifyContent={\"center\"} indent={1}>\n <Space />\n <Text variant={\"overline\"} size={\"smaller\"}>\n {label}\n </Text>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport {\n IconMenuButtonLink,\n MenuButtonLinkNotSelectedProps,\n MenuButtonLinkWithRenderLinkProps,\n MenuButtonLinkWithSelectedProps,\n} from \"@stenajs-webui/elements\";\nimport { Tooltip } from \"@stenajs-webui/tooltip\";\n\nexport type RailMenuLinkProps = (\n | MenuButtonLinkNotSelectedProps\n | MenuButtonLinkWithSelectedProps\n | MenuButtonLinkWithRenderLinkProps\n) & { label: string };\n\nexport const RailMenuLink: React.FC<RailMenuLinkProps> = ({\n label,\n leftIcon,\n ...menuButtonLinkProps\n}) => {\n if (leftIcon == null) {\n return null;\n }\n\n return (\n <Tooltip label={label} placement={\"right\"}>\n <IconMenuButtonLink icon={leftIcon} {...menuButtonLinkProps} />\n </Tooltip>\n );\n};\n","import * as React from \"react\";\nimport {\n MenuButtonLink,\n MenuButtonLinkNotSelectedProps,\n MenuButtonLinkWithRenderLinkProps,\n MenuButtonLinkWithSelectedProps,\n} from \"@stenajs-webui/elements\";\nimport { useRailContext } from \"../rail/RailContext\";\nimport { RailMenuLink } from \"./RailMenuLink\";\n\nexport type SidebarMenuLinkProps = (\n | MenuButtonLinkNotSelectedProps\n | MenuButtonLinkWithSelectedProps\n | MenuButtonLinkWithRenderLinkProps\n) & { label: string };\n\nexport const SidebarMenuLink: React.FC<SidebarMenuLinkProps> = (props) => {\n const isRail = useRailContext();\n\n if (isRail) {\n return <RailMenuLink {...props} />;\n }\n\n return <MenuButtonLink {...props} />;\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Popover } from \"@stenajs-webui/tooltip\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { SidebarMenuHeading } from \"./SidebarMenuHeading\";\nimport { RailContext } from \"../rail/RailContext\";\nimport { IconMenuButton } from \"@stenajs-webui/elements\";\n\nexport interface RailMenuCollapsibleProps {\n label: string;\n collapsed?: boolean;\n icon: IconDefinition;\n children?: ReactNode;\n popupMinWidth?: string;\n}\n\nexport const RailMenuCollapsible: React.FC<RailMenuCollapsibleProps> = ({\n children,\n label,\n icon,\n popupMinWidth = \"200px\",\n}) => {\n return (\n <Popover\n renderTrigger={(props) => <IconMenuButton icon={icon} {...props} />}\n placement={\"right-start\"}\n trigger={[\"hover\", \"focus\"]}\n disablePadding\n >\n <Box\n minWidth={popupMinWidth}\n shadow={\"popover\"}\n spacing={1}\n indent={1}\n gap={2}\n >\n <RailContext.Provider value={false}>\n <SidebarMenuHeading label={label} />\n {children}\n </RailContext.Provider>\n </Box>\n </Popover>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { MenuButton } from \"@stenajs-webui/elements\";\nimport { useRailContext } from \"../rail/RailContext\";\nimport { RailMenuCollapsible } from \"./RailMenuCollapsible\";\nimport { SidebarMenuCollapsibleGroupBox } from \"./SidebarMenuCollapsibleGroupBox\";\n\nexport interface SidebarMenuCollapsibleProps {\n label: string;\n collapsed?: boolean;\n leftIcon?: IconDefinition;\n children?: ReactNode;\n className?: string;\n initialExpand?: boolean;\n}\n\nexport const SidebarMenuCollapsible: React.FC<SidebarMenuCollapsibleProps> = ({\n children,\n label,\n leftIcon,\n className,\n initialExpand = false,\n}) => {\n const [expanded, setExpanded] = useState<boolean>(initialExpand);\n\n const isRail = useRailContext();\n\n if (isRail) {\n if (leftIcon == null) {\n return null;\n }\n\n return (\n <RailMenuCollapsible label={label} icon={leftIcon}>\n {children}\n </RailMenuCollapsible>\n );\n }\n return (\n <MenuButton\n label={label}\n onClick={() => setExpanded(!expanded)}\n leftIcon={leftIcon}\n className={className}\n expandable\n expanded={expanded}\n selected={expanded}\n >\n <SidebarMenuCollapsibleGroupBox>\n {children}\n </SidebarMenuCollapsibleGroupBox>\n </MenuButton>\n );\n};\n","import { SeparatorLine, SeparatorLineProps } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport * as React from \"react\";\n\nexport interface SidebarMenuSeparatorProps extends SeparatorLineProps {}\n\nexport const SidebarMenuSeparator: React.FC<SidebarMenuSeparatorProps> = (\n separatorLineProps,\n) => (\n <SeparatorLine\n color={cssColor(\"--lhds-color-ui-400\")}\n {...separatorLineProps}\n />\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Row, Space, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SelectedItemsActionsPanelProps {\n numItemsSelected?: number;\n label?: ReactNode | string;\n afterLabelContent?: ReactNode;\n rightContent?: ReactNode;\n}\n\nexport const SelectedItemsActionsPanel: React.FC<\n SelectedItemsActionsPanelProps\n> = ({ numItemsSelected, label, afterLabelContent, rightContent }) => (\n <Row\n indent={3}\n spacing\n gap={3}\n minHeight={\"56px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n background={cssColor(\"--silver-lighter\")}\n flex={1}\n borderRadius={\"var(--swui-border-radius)\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n {numItemsSelected != null || label != null ? (\n <Row alignItems={\"center\"}>\n {numItemsSelected != null ? (\n <>\n <Text>{numItemsSelected}</Text>\n <Space />\n <Text>item{numItemsSelected === 1 ? \"\" : \"s\"} selected</Text>\n </>\n ) : label != null ? (\n <>{typeof label === \"string\" ? <Text>{label}</Text> : label}</>\n ) : null}\n </Row>\n ) : null}\n {afterLabelContent && <Row>{afterLabelContent}</Row>}\n </Row>\n <Row gap={2}>{rightContent}</Row>\n </Row>\n);\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\n\nexport interface SelectedItemsActionsPaddingProps extends PropsWithChildren {}\n\nexport const SelectedItemsActionsPadding: React.FC<\n SelectedItemsActionsPaddingProps\n> = ({ children }) => {\n return (\n <Row spacing={0.5} indent={0.5} flex={1}>\n {children}\n </Row>\n );\n};\n","import { Box, Column, getDataProps, Row, Spacing } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./ProductCard.module.css\";\nimport { Spinner } from \"@stenajs-webui/elements\";\n\nexport interface ProductCardProps extends PropsWithChildren {\n renderSelectedProductCard?: () => ReactNode;\n renderEditButton?: () => ReactNode;\n loading?: boolean;\n shadow?: boolean;\n}\n\nexport const ProductCard: React.FC<ProductCardProps> = ({\n renderSelectedProductCard,\n renderEditButton,\n children,\n loading,\n shadow,\n ...props\n}) => {\n return (\n <Column\n data-comp={\"ProductCard\"}\n className={styles.productCard}\n shadow={shadow ? \"box\" : undefined}\n background={cssColor(\"--moln\")}\n borderRadius={\"24px\"}\n overflow={\"hidden\"}\n position={loading ? \"relative\" : undefined}\n {...getDataProps(props)}\n >\n {renderSelectedProductCard?.()}\n <Column gap={2}>{children}</Column>\n {renderEditButton && (\n <Column>\n <Row indent={2} justifyContent={\"flex-end\"}>\n {renderEditButton()}\n </Row>\n <Spacing />\n </Column>\n )}\n {loading && (\n <Box\n top={0}\n bottom={0}\n left={0}\n right={0}\n position={\"absolute\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n background={\"rgba(255, 255, 255, 0.7)\"}\n >\n <Spinner />\n </Box>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\n\nexport interface LargePriceProps extends PropsWithChildren {}\n\nexport const LargePrice: React.FC<LargePriceProps> = ({ children }) => {\n return (\n <Text variant={\"bold\"} style={{ fontSize: \"2.0rem\" }}>\n {children}\n </Text>\n );\n};\n","import {\n Box,\n Column,\n Heading,\n HeadingVariant,\n isEmptyFragment,\n Row,\n Space,\n Text,\n} from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Tag } from \"@stenajs-webui/elements\";\nimport { LargePrice } from \"./LargePrice\";\n\nexport interface ProductCardContentItemProps extends PropsWithChildren {\n title: string;\n headingLevel?: HeadingVariant;\n subTitle?: string;\n description?: string;\n subDescription?: string;\n descriptionTags?: ReactNode;\n capacityTag?: string;\n offerCodeTag?: ReactNode;\n priceText?: string;\n renderImage?: () => ReactNode;\n}\n\nexport const ProductCardContentItem: React.FC<ProductCardContentItemProps> = ({\n description,\n subDescription,\n descriptionTags,\n capacityTag,\n offerCodeTag,\n priceText,\n title,\n subTitle,\n renderImage,\n children,\n headingLevel,\n}) => {\n const hasDescriptionTags =\n descriptionTags == null\n ? false\n : Array.isArray(descriptionTags)\n ? descriptionTags.length > 0\n : !isEmptyFragment(descriptionTags);\n\n return (\n <Column>\n {renderImage?.()}\n <Box gap={2} spacing={4} indent={4} background={cssColor(\"--moln\")}>\n <Box gap={0.5}>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"flex-start\"}\n gap={2}\n >\n <Heading variant={\"h3\"} as={headingLevel}>\n {title}\n </Heading>\n <Row gap={2}>\n {offerCodeTag && (\n <Column justifyContent={\"center\"}>{offerCodeTag}</Column>\n )}\n <LargePrice>{priceText}</LargePrice>\n </Row>\n </Row>\n {subTitle && (\n <Text variant={\"bold\"} color={cssColor(\"--silver-dark\")}>\n {subTitle}\n </Text>\n )}\n </Box>\n {(hasDescriptionTags || capacityTag) && (\n <Column>\n <Row gap={1} flexWrap={\"wrap\"}>\n {descriptionTags}\n {capacityTag && <Tag label={capacityTag} variant={\"passive\"} />}\n </Row>\n <Space />\n </Column>\n )}\n {description && (\n <Column>\n <Text>{description}</Text>\n <Space />\n </Column>\n )}\n {subDescription && (\n <Column>\n <Text>{subDescription}</Text>\n <Space />\n </Column>\n )}\n {children}\n </Box>\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Box, Column, Row } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ShimmerBox } from \"@stenajs-webui/elements\";\n\nexport interface ProductCardContentItemSkeletorProps {\n renderImage?: () => ReactNode;\n}\n\nexport const ProductCardContentItemSkeletor: React.FC<\n ProductCardContentItemSkeletorProps\n> = ({ renderImage }) => {\n return (\n <Column>\n {renderImage?.()}\n <Box gap={3} spacing={4} indent={4} background={cssColor(\"--moln\")}>\n <Box gap={0.5}>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"flex-start\"}\n gap={2}\n >\n {\n <ShimmerBox\n width={\"50px\"}\n height={\"2.8rem\"}\n borderRadius={\"8px\"}\n />\n }\n </Row>\n </Box>\n <Column>\n <ShimmerBox width={\"180px\"} height={\"2.0rem\"} borderRadius={\"8px\"} />\n </Column>\n <Column>\n <ShimmerBox width={\"150px\"} height={\"1.4rem\"} borderRadius={\"8px\"} />\n </Column>\n </Box>\n </Column>\n );\n};\n","import { Box, Heading } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SelectedProductCardProps extends PropsWithChildren {\n label: string;\n}\n\nexport const SelectedProductCard: React.FC<SelectedProductCardProps> = ({\n label,\n children,\n}) => {\n return (\n <Box background={cssColor(\"--mussla\")} indent={2} spacing={2} gap={2}>\n <Heading variant={\"h3\"} as={\"h2\"} color={\"white\"}>\n {label}\n </Heading>\n {children}\n </Box>\n );\n};\n","import {\n Box,\n Column,\n exhaustSwitchCaseElseThrow,\n getDataProps,\n Row,\n Text,\n useAccessibleFontSizeContext,\n} from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport {\n CircledIcon,\n Icon,\n MediumIcon,\n Spinner,\n XlIcon,\n} from \"@stenajs-webui/elements\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { useMediaQuery } from \"react-responsive\";\n\nexport type ProductCategoryCardVariant = \"edit\" | \"upgrade\" | \"normal\";\n\nexport interface ProductSummaryCardProps extends PropsWithChildren {\n title?: string;\n variant?: ProductCategoryCardVariant;\n loading?: boolean;\n iconLeft?: XlIcon;\n compactIconLeft?: MediumIcon;\n renderButton?: () => React.ReactNode;\n renderOfferCodeTag?: () => ReactNode;\n renderMandatoryTag?: () => ReactNode;\n renderContentLeftOfButton?: () => ReactNode;\n}\n\nexport const ProductSummaryCard: React.FC<ProductSummaryCardProps> = ({\n title,\n variant = \"normal\",\n loading,\n iconLeft,\n compactIconLeft,\n renderButton,\n renderOfferCodeTag,\n renderMandatoryTag,\n renderContentLeftOfButton,\n children,\n ...props\n}) => {\n const { fontSizeRatio } = useAccessibleFontSizeContext();\n\n const isMobile = useMediaQuery({\n query: `(max-width: 460px)`,\n });\n const isSmallMobile = useMediaQuery({\n query: `(max-width: 360px)`,\n });\n\n const isCompact = isSmallMobile || (isMobile && fontSizeRatio > 1.2);\n\n const visibleVariant = loading ? \"normal\" : variant;\n\n const leftBackground = getBackground(visibleVariant);\n const rightBackground = cssColor(\"--moln\");\n const iconColor = getIconColor(visibleVariant);\n\n return (\n <Box\n data-comp={\"ProductSummaryCard\"}\n borderRadius={\"16px\"}\n shadow={\"box\"}\n overflow={\"hidden\"}\n position={loading ? \"relative\" : undefined}\n {...getDataProps(props)}\n >\n <Row flex={1}>\n {!isCompact && (\n <Box flex={2} justifyContent={\"center\"} background={leftBackground}>\n {iconLeft && <Icon color={iconColor} icon={iconLeft} size={73} />}\n </Box>\n )}\n <Box flex={4} indent={2} spacing={2} background={rightBackground}>\n <Column gap={2}>\n {title && (\n <Row justifyContent={\"space-between\"}>\n <Row gap={2} alignItems={\"center\"}>\n {isCompact && compactIconLeft && (\n <CircledIcon icon={compactIconLeft} size={\"medium\"} />\n )}\n <Text variant={\"bold\"} size={\"large\"}>\n {title}\n </Text>\n </Row>\n {visibleVariant == \"normal\" && renderOfferCodeTag?.()}\n </Row>\n )}\n <Column style={{ opacity: loading ? 0 : undefined }}>\n {children}\n </Column>\n {renderMandatoryTag && (\n <Row style={{ opacity: loading ? 0 : undefined }}>\n {renderMandatoryTag()}\n </Row>\n )}\n <div />\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n gap={2}\n flexWrap={\"wrap\"}\n >\n {renderContentLeftOfButton?.() ?? <div />}\n {renderButton?.()}\n </Row>\n </Column>\n </Box>\n </Row>\n\n {loading && (\n <Box\n top={0}\n bottom={0}\n left={0}\n right={0}\n position={\"absolute\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n background={\"rgba(255, 255, 255, 0.7)\"}\n >\n <Spinner />\n </Box>\n )}\n </Box>\n );\n};\n\nconst getIconColor = (\n variant: ProductCategoryCardVariant,\n): string | undefined => {\n switch (variant) {\n case \"edit\":\n return cssColor(\"--moln\");\n case \"upgrade\":\n return cssColor(\"--moln\");\n case \"normal\":\n return cssColor(\"--mussla\");\n default:\n exhaustSwitchCaseElseThrow(variant);\n }\n};\n\nconst getBackground = (\n variant: ProductCategoryCardVariant,\n): string | undefined => {\n switch (variant) {\n case \"edit\":\n return cssColor(\"--mussla\");\n case \"upgrade\":\n return cssColor(\"--mussla\");\n case \"normal\":\n return cssColor(\"--silver-lighter\");\n default:\n exhaustSwitchCaseElseThrow(variant);\n }\n};\n","import { Box, Column, getDataProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Icon, ShimmerBox } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface ProductSummaryCardSkeletorProps {\n iconLeft?: IconDefinition;\n}\n\nexport const ProductSummaryCardSkeletor: React.FC<\n ProductSummaryCardSkeletorProps\n> = ({ iconLeft, ...props }) => {\n return (\n <Box\n borderRadius={\"16px\"}\n shadow={\"box\"}\n overflow={\"hidden\"}\n {...getDataProps(props)}\n >\n <Row flex={1}>\n <Box\n flex={2}\n justifyContent={\"center\"}\n background={cssColor(\"--silver-lighter\")}\n >\n {iconLeft && (\n <Icon color={cssColor(\"--mussla\")} icon={iconLeft} size={73} />\n )}\n </Box>\n <Box flex={4} indent={2} spacing={2} background={cssColor(\"--moln\")}>\n <Column gap={2}>\n <ShimmerBox\n width={\"180px\"}\n height={\"2.8rem\"}\n borderRadius={\"8px\"}\n />\n <ShimmerBox width={\"50px\"} height={\"2.0rem\"} borderRadius={\"8px\"} />\n <ShimmerBox\n width={\"150px\"}\n height={\"1.4rem\"}\n borderRadius={\"8px\"}\n />\n </Column>\n </Box>\n </Row>\n </Box>\n );\n};\n","import { useMemo } from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nexport type DeviceSize =\n | \"small-mobile\"\n | \"mobile\"\n | \"tablet\"\n | \"tablet-wide\"\n | \"desktop\";\n\nconst layoutSizeOrdered: Array<DeviceSize> = [\n \"small-mobile\",\n \"mobile\",\n \"tablet\",\n \"tablet-wide\",\n \"desktop\",\n];\n\nexport const useDeviceSize = () => {\n const isMobile = useMediaQuery({\n query: `(max-width: 768px)`,\n });\n\n const isSmallMobile = useMediaQuery({\n query: `(max-width: 395px)`,\n });\n\n const isTablet = useMediaQuery({\n query: `(max-width: 1024px)`,\n });\n\n const isTabletWide = useMediaQuery({\n query: `(max-width: 1160px)`,\n });\n\n const deviceSize: DeviceSize = isSmallMobile\n ? \"small-mobile\"\n : isMobile\n ? \"mobile\"\n : isTablet\n ? \"tablet\"\n : isTabletWide\n ? \"tablet-wide\"\n : \"desktop\";\n\n return { deviceSize };\n};\n\nexport const isDeviceSameOrLarger = (\n deviceLarger: DeviceSize,\n than: DeviceSize,\n): boolean =>\n deviceLarger === than ||\n layoutSizeOrdered.indexOf(deviceLarger) > layoutSizeOrdered.indexOf(than);\n\nexport const useLayoutVisibility = (visibleOnThisAndLarger: DeviceSize) => {\n const { deviceSize } = useDeviceSize();\n\n const visible = useMemo(\n () => isDeviceSameOrLarger(deviceSize, visibleOnThisAndLarger),\n [deviceSize, visibleOnThisAndLarger],\n );\n\n return {\n visible,\n };\n};\n","import * as React from \"react\";\nimport { useMemo, useRef, useState } from \"react\";\nimport Lightbox, { ControllerRef, Slide } from \"yet-another-react-lightbox\";\nimport Zoom from \"yet-another-react-lightbox/plugins/zoom\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Captions from \"yet-another-react-lightbox/plugins/captions\";\nimport { Indent, Row } from \"@stenajs-webui/core\";\nimport {\n PrimaryButton,\n SecondaryButton,\n stenaAngleLeft,\n stenaAngleRight,\n stenaSearchMinus,\n stenaSearchPlus,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\nimport { useDeviceSize } from \"../../utils/UseDeviceSize\";\nimport \"./yarl.css\";\n\nexport interface FullscreenCarouselImage {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}\n\nexport interface FullscreenImageCarouselProps {\n isOpen: boolean;\n onRequestClose: () => void;\n initialIndex?: number;\n onUpdateIndex?: (index: number) => void;\n images: Array<FullscreenCarouselImage>;\n altLabelPrevious: string;\n altLabelNext: string;\n altLabelClose: string;\n altLabelZoomIn: string;\n altLabelZoomOut: string;\n}\n\nexport const FullscreenImageCarousel: React.FC<\n FullscreenImageCarouselProps\n> = ({\n isOpen,\n initialIndex,\n onUpdateIndex,\n altLabelPrevious,\n altLabelZoomIn,\n altLabelZoomOut,\n altLabelNext,\n altLabelClose,\n onRequestClose,\n images,\n}) => {\n const controllerRef = useRef<ControllerRef>(null);\n\n const { deviceSize } = useDeviceSize();\n const navigationButtonsVisible = !(deviceSize === \"mobile\");\n\n const [index, setIndex] = useState(initialIndex ?? 0);\n\n const updateIndex = ({ index: current }: { index: number }) => {\n setIndex(current);\n onUpdateIndex?.(current);\n };\n\n const slides = useMemo(() => images.map((image) => toSlide(image)), [images]);\n\n return (\n <Lightbox\n open={isOpen}\n close={onRequestClose}\n index={index}\n plugins={[Zoom, Counter, Captions]}\n slides={slides}\n on={{ view: updateIndex }}\n animation={{ fade: 0 }}\n controller={{\n closeOnPullDown: true,\n closeOnBackdropClick: true,\n ref: controllerRef,\n }}\n counter={{\n container: {\n style: {\n filter: \"none\",\n color: \"white\",\n fontSize: \"2.0rem\",\n fontFamily: \"var(--swui-font-primary)\",\n },\n },\n }}\n render={{\n buttonZoom: (p) =>\n navigationButtonsVisible && (\n <Row gap={1} indent={2}>\n <SecondaryButton\n aria-label={altLabelZoomIn}\n leftIcon={stenaSearchPlus}\n size={\"large\"}\n onClick={() => p.zoomIn()}\n />\n <SecondaryButton\n aria-label={altLabelZoomOut}\n leftIcon={stenaSearchMinus}\n size={\"large\"}\n onClick={() => p.zoomOut()}\n />\n </Row>\n ),\n buttonPrev: () =>\n images.length > 1 &&\n navigationButtonsVisible && (\n <Indent num={4} className={\"yarl__navigation_prev\"}>\n <SecondaryButton\n aria-label={altLabelPrevious}\n leftIcon={stenaAngleLeft}\n size={\"large\"}\n onClick={() => controllerRef.current?.prev()}\n />\n </Indent>\n ),\n buttonNext: () =>\n images.length > 1 &&\n navigationButtonsVisible && (\n <Indent num={4} className={\"yarl__navigation_next\"}>\n <SecondaryButton\n aria-label={altLabelNext}\n leftIcon={stenaAngleRight}\n size={\"large\"}\n onClick={() => controllerRef.current?.next()}\n />\n </Indent>\n ),\n buttonClose: () => (\n <Indent>\n <PrimaryButton\n variant={\"danger\"}\n aria-label={altLabelClose}\n leftIcon={stenaTimesThick}\n size={\"large\"}\n onClick={() => controllerRef.current?.close()}\n />\n </Indent>\n ),\n }}\n />\n );\n};\n\nconst toSlide = (image: {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}): Slide => ({\n src: image.url,\n width: image.width,\n height: image.height,\n alt: image.alt,\n title: image.title,\n description: image.description,\n});\n","import * as React from \"react\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport Lightbox, { ControllerRef, Slide } from \"yet-another-react-lightbox\";\nimport Inline from \"yet-another-react-lightbox/plugins/inline\";\nimport {\n SecondaryButton,\n stenaAngleLeft,\n stenaAngleRight,\n} from \"@stenajs-webui/elements\";\nimport { BlockKeyboardEvents, Indent } from \"@stenajs-webui/core\";\nimport \"./yarl.css\";\nimport { FullscreenImageCarousel } from \"./FullscreenImageCarousel\";\n\nexport interface CarouselImage {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n fullscreenImage?: {\n url: string;\n width: number;\n height: number;\n };\n}\n\nexport interface ImageCarouselProps {\n images: Array<CarouselImage>;\n initialIndex?: number;\n altLabelPrevious: string;\n altLabelNext: string;\n altLabelClose: string;\n altLabelZoomIn: string;\n altLabelZoomOut: string;\n}\n\nexport const ImageCarousel: React.FC<ImageCarouselProps> = ({\n images,\n initialIndex,\n altLabelPrevious,\n altLabelZoomIn,\n altLabelZoomOut,\n altLabelNext,\n altLabelClose,\n}) => {\n const controllerRef = useRef<ControllerRef>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [index, setIndex] = useState(initialIndex ?? 0);\n\n const setOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const setClosed = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const updateIndex = ({ index: current }: { index: number }) =>\n setIndex(current);\n\n useEffect(() => {\n setIndex(initialIndex ?? 0);\n }, [initialIndex]);\n\n const slides = useMemo(() => images.map(toSlide), [images]);\n\n const fullscreenImages = useMemo(() => {\n return images.map((image) =>\n image.fullscreenImage\n ? {\n ...image,\n url: image.fullscreenImage.url,\n width: image.fullscreenImage.width,\n height: image.fullscreenImage.height,\n }\n : image,\n );\n }, [images]);\n\n return (\n <BlockKeyboardEvents blockedKeys={\"Escape\"}>\n <Lightbox\n controller={{ ref: controllerRef }}\n index={index}\n slides={slides}\n plugins={[Inline]}\n on={{\n view: updateIndex,\n click: setOpen,\n }}\n carousel={{\n padding: 0,\n spacing: 0,\n imageFit: \"cover\",\n }}\n render={{\n buttonPrev: () =>\n images.length > 1 && (\n <Indent className={\"yarl__navigation_prev\"}>\n <SecondaryButton\n aria-label={altLabelPrevious}\n leftIcon={stenaAngleLeft}\n onClick={() => controllerRef.current?.prev()}\n />\n </Indent>\n ),\n buttonNext: () =>\n images.length > 1 && (\n <Indent className={\"yarl__navigation_next\"}>\n <SecondaryButton\n aria-label={altLabelNext}\n leftIcon={stenaAngleRight}\n onClick={() => controllerRef.current?.next()}\n />\n </Indent>\n ),\n }}\n styles={{\n button: {\n filter: \"none\",\n },\n }}\n inline={{\n style: {\n width: \"100%\",\n maxWidth: \"900px\",\n aspectRatio: \"3 / 2\",\n margin: \"0 auto\",\n },\n }}\n />\n\n {isOpen && (\n <FullscreenImageCarousel\n isOpen={true}\n onRequestClose={setClosed}\n initialIndex={index}\n onUpdateIndex={setIndex}\n images={fullscreenImages}\n altLabelPrevious={altLabelPrevious}\n altLabelNext={altLabelNext}\n altLabelClose={altLabelClose}\n altLabelZoomIn={altLabelZoomIn}\n altLabelZoomOut={altLabelZoomOut}\n />\n )}\n </BlockKeyboardEvents>\n );\n};\n\nconst toSlide = (image: {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}): Slide => ({\n src: image.url,\n width: image.width,\n height: image.height,\n alt: image.alt,\n title: image.title,\n description: image.description,\n});\n"],"names":["ActionMenuButton","renderItems","placement","Button","rightIcon","stenaAngleDown","menuWidth","menuTop","onClick","disableArrow","buttonRef","appendTo","zIndex","disableTrapFocus","buttonProps","isOpen","open","close","toggle","useBoolean","fallbackRef","useRef","ref","contextValue","useMemo","handleClick","event","jsx","Fragment","ControlledPopover","props","ActionMenu","ActionMenuContext","ActionMenuPrimaryButton","PrimaryButton","ActionMenuSecondaryButton","SecondaryButton","ActionMenuFlatButton","FlatButton","border","CheckboxMenu","renderMenu","checkboxProps","Popover","Row","jsxs","Checkbox","Indent","onRequestClose","Column","NavBarSideMenuButton","className","stenaHamburger","NavBar","left","showMenuButton","children","right","center","onClickMenuButton","currentFlex","cx","styles","React","child","index","NavBarButton","forwardRef","selected","NavBarHeading","headingProps","Heading","NavBarPopoverButton","content","navBarButtonProps","Box","NavBarNotificationButton","count","unread","labelClassName","iconClassName","icon","stenaBellFilled","hasCount","BaseButton","NavBarSearchField","placeholder","wrapperClassName","showClearButton","onClickClearButton","value","textInputProps","TextInput","TextInputButton","stenaTimes","NavBarUserButton","username","initials","stenaUserCircle","responsiveIconOnly","Collapsible","contentLeft","contentRight","collapsed","MenuButton","CollapsibleList","CollapsibleWithCheckbox","onValueChange","onChange","indeterminate","checkboxDisabled","collapsibleProps","ev","SidebarMenuCollapsibleGroupBox","CollapsibleGroupHeading","Text","CollapsibleEmptyContent","text","Icon","stenaMail","cssColor","Space","ErrorPanel","heading","buttons","stenaTripFerryXl","headingLevel","cardProps","activeText","Card","CardBody","CircledIcon","ErrorScreen","LoadingPanel","Spinner","LoadingScreen","PageHeader","renderBreadCrumbs","renderPageHeading","renderTabs","PageHeaderRow","PageHeading","SelectionRow","description","htmlFor","circledIconVariant","rest","getDataProps","SidebarMenuCloseButtonRow","CloseButton","StenaFlag","SidebarMenuPinButton","isPinned","label","activeLabel","activeIcon","stenaAngleLeftDouble","stenaPin","SidebarMenu","onCloseClick","pinButtonVisible","onClickPinButton","bottomItems","boxProps","RailContext","createContext","useRailContext","useContext","RailMenuButton","menuButtonLinkProps","Tooltip","IconMenuButton","SidebarRailMenu","closeButtonVisible","onClickCloseButton","closeButtonTitle","SidebarMenuHeading","RailMenuLink","leftIcon","IconMenuButtonLink","SidebarMenuLink","MenuButtonLink","RailMenuCollapsible","popupMinWidth","SidebarMenuCollapsible","initialExpand","expanded","setExpanded","useState","SidebarMenuSeparator","separatorLineProps","SeparatorLine","SelectedItemsActionsPanel","numItemsSelected","afterLabelContent","rightContent","SelectedItemsActionsPadding","ProductCard","renderSelectedProductCard","renderEditButton","loading","shadow","Spacing","LargePrice","ProductCardContentItem","subDescription","descriptionTags","capacityTag","offerCodeTag","priceText","title","subTitle","renderImage","hasDescriptionTags","isEmptyFragment","Tag","ProductCardContentItemSkeletor","ShimmerBox","SelectedProductCard","ProductSummaryCard","variant","iconLeft","compactIconLeft","renderButton","renderOfferCodeTag","renderMandatoryTag","renderContentLeftOfButton","fontSizeRatio","useAccessibleFontSizeContext","isMobile","useMediaQuery","isCompact","visibleVariant","leftBackground","getBackground","rightBackground","iconColor","getIconColor","exhaustSwitchCaseElseThrow","ProductSummaryCardSkeletor","layoutSizeOrdered","useDeviceSize","isSmallMobile","isTablet","isTabletWide","isDeviceSameOrLarger","deviceLarger","than","useLayoutVisibility","visibleOnThisAndLarger","deviceSize","FullscreenImageCarousel","initialIndex","onUpdateIndex","altLabelPrevious","altLabelZoomIn","altLabelZoomOut","altLabelNext","altLabelClose","images","controllerRef","navigationButtonsVisible","setIndex","updateIndex","current","slides","image","toSlide","Lightbox","Zoom","Counter","Captions","p","stenaSearchPlus","stenaSearchMinus","stenaAngleLeft","stenaAngleRight","stenaTimesThick","ImageCarousel","setIsOpen","setOpen","useCallback","setClosed","useEffect","fullscreenImages","BlockKeyboardEvents","Inline"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/action-menu-button/ActionMenuButton.tsx","../src/components/action-menu-button/ActionMenuPrimaryButton.tsx","../src/components/action-menu-button/ActionMenuSecondaryButton.tsx","../src/components/action-menu-button/ActionMenuFlatButton.tsx","../src/components/checkbox-menu/CheckboxMenu.tsx","../src/components/nav-bar/NavBarSideMenuButton.tsx","../src/components/nav-bar/NavBar.tsx","../src/components/nav-bar/NavBarButton.tsx","../src/components/nav-bar/NavBarHeading.tsx","../src/components/nav-bar/NavBarPopoverButton.tsx","../src/components/nav-bar/NavBarNotificationButton.tsx","../src/components/nav-bar/NavBarSearchField.tsx","../src/components/nav-bar/NavBarUserButton.tsx","../src/components/collapsible/Collapsible.tsx","../src/components/collapsible/CollapsibleList.tsx","../src/components/collapsible/CollapsibleWithCheckbox.tsx","../src/components/sidebar-menu/items/SidebarMenuCollapsibleGroupBox.tsx","../src/components/collapsible/CollapsibleGroupHeading.tsx","../src/components/collapsible/CollapsibleEmptyContent.tsx","../src/components/error-panel/ErrorPanel.tsx","../src/components/error-panel/ErrorScreen.tsx","../src/components/loading-panel/LoadingPanel.tsx","../src/components/loading-panel/LoadingScreen.tsx","../src/components/page-header/PageHeader.tsx","../src/components/page-header/PageHeaderRow.tsx","../src/components/page-header/PageHeading.tsx","../src/components/selection-row/SelectionRow.tsx","../src/components/sidebar-menu/SidebarMenuCloseButtonRow.tsx","../src/components/sidebar-menu/SidebarMenuPinButton.tsx","../src/components/sidebar-menu/SidebarMenu.tsx","../src/components/sidebar-menu/rail/RailContext.ts","../src/components/sidebar-menu/items/RailMenuButton.tsx","../src/components/sidebar-menu/rail/SidebarRailMenu.tsx","../src/components/sidebar-menu/items/SidebarMenuHeading.tsx","../src/components/sidebar-menu/items/RailMenuLink.tsx","../src/components/sidebar-menu/items/SidebarMenuLink.tsx","../src/components/sidebar-menu/items/RailMenuCollapsible.tsx","../src/components/sidebar-menu/items/SidebarMenuCollapsible.tsx","../src/components/sidebar-menu/items/SidebarMenuSeparator.tsx","../src/components/selected-items-actions-panel/SelectedItemsActionsPanel.tsx","../src/components/selected-items-actions-panel/SelectedItemsActionsPadding.tsx","../src/components/cards/product-card/ProductCard.tsx","../src/components/cards/product-card/LargePrice.tsx","../src/components/cards/product-card/ProductCardContentItem.tsx","../src/components/cards/product-card/ProductCardContentItemSkeletor.tsx","../src/components/cards/product-card/SelectedProductCard.tsx","../src/components/cards/product-summary-card/ProductSummaryCard.tsx","../src/components/cards/product-summary-card/ProductSummaryCardSkeletor.tsx","../src/utils/UseDeviceSize.ts","../src/components/image-carousel/FullscreenImageCarousel.tsx","../src/components/image-carousel/ImageCarousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ReactNode, RefObject, useMemo, useRef } from \"react\";\nimport {\n ActionMenu,\n ActionMenuContext,\n ActionMenuProps,\n FlatButton,\n PrimaryButton,\n PrimaryButtonProps,\n SecondaryButton,\n stenaAngleDown,\n} from \"@stenajs-webui/elements\";\nimport { useBoolean } from \"@stenajs-webui/core\";\nimport {\n ControlledPopover,\n ControlledPopoverProps,\n PopoverProps,\n} from \"@stenajs-webui/tooltip\";\n\nexport interface ActionMenuButtonProps\n extends Omit<\n PrimaryButtonProps,\n \"variant\" | \"loading\" | \"loadingLabel\" | \"success\" | \"successLabel\"\n > {\n /** The content of the Action Menu. */\n renderItems: (close: () => void) => ReactNode;\n /** The placement of the Action Menu. */\n placement?: PopoverProps[\"placement\"];\n /** Z-index of the Action Menu */\n zIndex?: number;\n /** Portal target, HTML element. If not set, portal is not used. */\n appendTo?: ControlledPopoverProps[\"appendTo\"];\n menuWidth?: ActionMenuProps[\"width\"];\n menuTop?: ActionMenuProps[\"top\"];\n buttonComponent:\n | typeof PrimaryButton\n | typeof SecondaryButton\n | typeof FlatButton;\n disableArrow?: boolean;\n buttonRef?: RefObject<HTMLButtonElement | null>;\n /**\n * Use if focus should not be trapped inside the Action Menu.\n * Defaults to false. */\n disableTrapFocus?: boolean;\n}\n\nexport const ActionMenuButton: React.FC<ActionMenuButtonProps> = ({\n renderItems,\n placement = \"bottom\",\n buttonComponent: Button,\n rightIcon = stenaAngleDown,\n menuWidth,\n menuTop,\n onClick,\n disableArrow = false,\n buttonRef,\n appendTo,\n zIndex,\n disableTrapFocus = false,\n ...buttonProps\n}) => {\n const [isOpen, open, close, toggle] = useBoolean(false);\n\n const fallbackRef = useRef<HTMLButtonElement>(null);\n const ref = buttonRef ?? fallbackRef;\n\n const contextValue = useMemo(() => ({ open, close }), [open, close]);\n\n const handleClick = (\n event: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => {\n onClick?.(event);\n toggle();\n };\n\n return (\n <>\n <ControlledPopover\n renderTrigger={(props) => (\n <Button\n rightIcon={disableArrow ? undefined : rightIcon}\n {...buttonProps}\n ref={ref}\n onClick={handleClick}\n {...props}\n />\n )}\n hideArrow\n disablePadding\n open={isOpen}\n onRequestClose={close}\n placement={placement}\n appendTo={appendTo}\n zIndex={zIndex}\n >\n {isOpen && (\n <ActionMenu\n width={menuWidth}\n top={menuTop}\n trapFocus={!disableTrapFocus}\n >\n <ActionMenuContext.Provider value={contextValue}>\n {renderItems(close)}\n </ActionMenuContext.Provider>\n </ActionMenu>\n )}\n </ControlledPopover>\n </>\n );\n};\n","import * as React from \"react\";\nimport { PrimaryButton, PrimaryButtonProps } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuPrimaryButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\">,\n Pick<PrimaryButtonProps, \"variant\"> {}\n\nexport const ActionMenuPrimaryButton: React.FC<ActionMenuPrimaryButtonProps> = (\n props,\n) => {\n return <ActionMenuButton buttonComponent={PrimaryButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuSecondaryButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\"> {}\n\nexport const ActionMenuSecondaryButton: React.FC<\n ActionMenuSecondaryButtonProps\n> = (props) => {\n return <ActionMenuButton buttonComponent={SecondaryButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { ActionMenuButton, ActionMenuButtonProps } from \"./ActionMenuButton\";\n\nexport interface ActionMenuFlatButtonProps\n extends Omit<ActionMenuButtonProps, \"buttonComponent\"> {}\n\nexport const ActionMenuFlatButton: React.FC<ActionMenuFlatButtonProps> = (\n props,\n) => {\n return <ActionMenuButton buttonComponent={FlatButton} {...props} />;\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Column, Indent, Row } from \"@stenajs-webui/core\";\nimport {\n ActionMenu,\n FlatButton,\n stenaAngleDown,\n} from \"@stenajs-webui/elements\";\nimport { Popover } from \"@stenajs-webui/tooltip\";\nimport { Checkbox, CheckboxProps } from \"@stenajs-webui/forms\";\n\nexport interface CheckboxMenuProps extends CheckboxProps {\n renderMenu: (close: () => void) => ReactNode;\n}\n\nconst border = `1px solid var(--lhds-color-ui-300)`;\n\nexport const CheckboxMenu: React.FC<CheckboxMenuProps> = ({\n renderMenu,\n ...checkboxProps\n}) => {\n return (\n <Popover\n trigger={\"click\"}\n renderTrigger={(props) => (\n <Row>\n <Row\n spacing={0.5}\n indent\n alignItems={\"center\"}\n border={border}\n borderRadius={\"4px\"}\n >\n <Checkbox {...checkboxProps} />\n <Indent num={0.5} />\n <FlatButton size={\"small\"} leftIcon={stenaAngleDown} {...props} />\n </Row>\n </Row>\n )}\n hideArrow\n disablePadding\n placement={\"bottom-start\"}\n >\n {({ onRequestClose }) => (\n <Column>\n <ActionMenu>{renderMenu(onRequestClose)}</ActionMenu>\n </Column>\n )}\n </Popover>\n );\n};\n","import * as React from \"react\";\nimport { DivProps } from \"@stenajs-webui/core\";\nimport { FlatButton, stenaHamburger } from \"@stenajs-webui/elements\";\n\nexport interface SidebarMenuButtonProps extends Pick<DivProps, \"className\"> {\n onClick?: (ev: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const NavBarSideMenuButton: React.FC<SidebarMenuButtonProps> = ({\n className,\n onClick,\n}) => {\n return (\n <FlatButton\n leftIcon={stenaHamburger}\n className={className}\n onClick={onClick}\n />\n );\n};\n","import { Indent, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBar.module.css\";\nimport {\n NavBarSideMenuButton,\n SidebarMenuButtonProps,\n} from \"./NavBarSideMenuButton\";\n\nexport type NavBarVariant = \"compact\" | \"standard\" | \"relaxed\";\n\nexport interface NavBarProps {\n className?: string;\n showMenuButton?: boolean;\n onClickMenuButton?: SidebarMenuButtonProps[\"onClick\"];\n right?: ReactNode;\n center?: ReactNode;\n left?: ReactNode;\n variant?: NavBarVariant;\n children?: ReactNode;\n}\n\nexport const NavBar: React.FC<NavBarProps> = ({\n left,\n className,\n showMenuButton = false,\n children,\n right,\n center,\n onClickMenuButton,\n}) => {\n const currentFlex = center ? 1 : undefined;\n return (\n <Row\n justifyContent={\"space-between\"}\n className={cx(styles.navBar, className)}\n >\n <Row\n flex={currentFlex}\n justifyContent={\"flex-start\"}\n alignItems={\"center\"}\n >\n <Row width={\"86px\"} alignItems={\"center\"}>\n <Indent />\n {showMenuButton && (\n <NavBarSideMenuButton onClick={onClickMenuButton} />\n )}\n </Row>\n\n {left && (\n <>\n {left}\n <Indent num={2} />\n </>\n )}\n {children && (\n <>\n <Row justifyContent={\"center\"} alignItems={\"center\"}>\n {React.Children.map(children, (child, index) => (\n <>\n {index > 0 && <Indent />}\n {child}\n </>\n ))}\n </Row>\n </>\n )}\n </Row>\n {center && (\n <Row justifyContent={\"center\"} alignItems={\"center\"}>\n {center}\n </Row>\n )}\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"} flex={currentFlex}>\n {right}\n <Indent num={2} />\n </Row>\n </Row>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarButton.module.css\";\n\nexport interface NavBarButtonProps extends FlatButtonProps {\n selected?: boolean;\n}\n\nexport const NavBarButton = forwardRef<HTMLButtonElement, NavBarButtonProps>(\n function ({ selected, className, ...buttonProps }, ref) {\n return (\n <FlatButton\n {...buttonProps}\n ref={ref}\n className={cx(\n styles.navBarButton,\n selected && styles.selected,\n className,\n )}\n />\n );\n },\n);\n","import * as React from \"react\";\nimport { Heading, HeadingProps } from \"@stenajs-webui/core\";\n\ninterface NavBarHeadingProps extends HeadingProps {}\n\nexport const NavBarHeading: React.FC<NavBarHeadingProps> = (headingProps) => {\n return (\n <Heading whiteSpace={\"nowrap\"} variant={\"h4\"} as={\"h1\"} {...headingProps} />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { NavBarButton, NavBarButtonProps } from \"./NavBarButton\";\nimport {\n ControlledPopover,\n ControlledPopoverProps,\n} from \"@stenajs-webui/tooltip\";\nimport { Box, useBoolean } from \"@stenajs-webui/core\";\n\ntype RenderProp = (args: RenderPropArgs) => ReactNode;\n\ninterface RenderPropArgs {\n close: () => void;\n}\n\nexport interface NavBarPopoverButtonProps\n extends Omit<NavBarButtonProps, \"onClick\" | \"content\">,\n Pick<ControlledPopoverProps, \"zIndex\" | \"appendTo\"> {\n content?: RenderProp;\n}\n\nexport const NavBarPopoverButton: React.FC<NavBarPopoverButtonProps> = ({\n content,\n children,\n appendTo,\n zIndex,\n ...navBarButtonProps\n}) => {\n const [isOpen, , close, toggle] = useBoolean(false);\n\n return (\n <ControlledPopover\n renderTrigger={(props) => (\n <NavBarButton {...navBarButtonProps} {...props} onClick={toggle} />\n )}\n open={isOpen}\n onRequestClose={close}\n zIndex={zIndex}\n appendTo={appendTo}\n >\n <Box>\n {content && content({ close })}\n {children}\n </Box>\n </ControlledPopover>\n );\n};\n","import {\n BaseButton,\n FlatButtonProps,\n stenaBellFilled,\n} from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarNotificationButton.module.css\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface NavBarNotificationButtonProps\n extends Omit<FlatButtonProps, \"leftIcon\" | \"rightIcon\" | \"label\"> {\n count: number;\n unread: boolean;\n icon?: IconDefinition;\n}\n\nexport const NavBarNotificationButton = forwardRef<\n HTMLButtonElement,\n NavBarNotificationButtonProps\n>(function (\n {\n count,\n unread = false,\n className,\n labelClassName,\n iconClassName,\n icon = stenaBellFilled,\n ...buttonProps\n },\n ref,\n) {\n const hasCount = count > 1;\n\n return (\n <BaseButton\n {...buttonProps}\n ref={ref}\n leftIcon={icon}\n className={cx(\n styles.navBarNotificationButton,\n unread && styles.unread,\n hasCount && styles.hasCount,\n className,\n )}\n label={hasCount ? String(count) : undefined}\n labelClassName={cx(labelClassName, styles.label)}\n iconClassName={cx(iconClassName, styles.icon)}\n />\n );\n});\n","import * as React from \"react\";\nimport { TextInput, TextInputProps } from \"@stenajs-webui/forms\";\nimport cx from \"classnames\";\nimport styles from \"./NavBarSearchField.module.css\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { stenaTimes, TextInputButton } from \"@stenajs-webui/elements\";\n\nexport interface NavBarSearchFieldProps extends TextInputProps {\n showClearButton?: boolean;\n onClickClearButton?: ButtonElementProps[\"onClick\"];\n}\n\nexport const NavBarSearchField: React.FC<NavBarSearchFieldProps> = ({\n placeholder = \"Search\",\n className,\n wrapperClassName,\n showClearButton,\n onClickClearButton,\n value,\n ...textInputProps\n}) => {\n return (\n <TextInput\n wrapperClassName={cx(\n styles.navBarSearchFieldWrapper,\n showClearButton ? styles.withButton : undefined,\n wrapperClassName,\n )}\n className={cx(styles.navBarSearchFieldInput, className)}\n placeholder={placeholder}\n value={value}\n buttonRight={\n value && showClearButton ? (\n <TextInputButton\n className={styles.clearButton}\n icon={stenaTimes}\n variant={\"error\"}\n onClick={onClickClearButton}\n />\n ) : undefined\n }\n {...textInputProps}\n />\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { stenaUserCircle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport {\n ActionMenuFlatButton,\n ActionMenuFlatButtonProps,\n} from \"../action-menu-button/ActionMenuFlatButton\";\nimport styles from \"./NavBarUserButton.module.css\";\n\nexport interface NavBarUserButtonProps\n extends Omit<ActionMenuFlatButtonProps, \"label\" | \"leftIcon\" | \"rightIcon\"> {\n username?: string;\n initials?: string;\n icon?: IconDefinition;\n}\n\nexport const NavBarUserButton: React.FC<NavBarUserButtonProps> = ({\n className,\n username,\n initials,\n icon = stenaUserCircle,\n responsiveIconOnly = initials == null,\n ...buttonProps\n}) => {\n return (\n <ActionMenuFlatButton\n {...buttonProps}\n className={cx(styles.navBarUserButton, className)}\n leftIcon={username != null ? icon : undefined}\n label={initials ?? username}\n forceRound={initials != null}\n responsiveIconOnly={responsiveIconOnly}\n disableArrow\n />\n );\n};\n","import { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { MenuButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { forwardRef, ReactNode } from \"react\";\n\nexport type CollapsibleProps =\n | CollapsibleLabelProps\n | CollapsibleRenderLabelProps;\n\nexport interface CollapsibleCommonProps\n extends Omit<ButtonElementProps, \"value\"> {\n contentLeft?: ReactNode;\n contentRight?: ReactNode;\n collapsed?: boolean;\n}\n\nexport interface CollapsibleLabelProps extends CollapsibleCommonProps {\n label: string;\n}\n\nexport interface CollapsibleRenderLabelProps extends CollapsibleCommonProps {\n renderLabel: () => ReactNode;\n}\n\nexport const Collapsible = forwardRef<HTMLButtonElement, CollapsibleProps>(\n ({ contentLeft, contentRight, collapsed = false, ...props }, ref) => (\n <MenuButton\n ref={ref}\n expandable\n expanded={!collapsed}\n selected={!collapsed}\n left={contentLeft}\n right={contentRight}\n {...props}\n />\n ),\n);\n","import * as React from \"react\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { ReactNode } from \"react\";\n\nexport interface CollapsibleListProps {\n children?: ReactNode;\n}\n\nexport const CollapsibleList: React.FC<CollapsibleListProps> = ({\n children,\n}) => {\n return <Column gap={1}>{children}</Column>;\n};\n","import { Checkbox, CheckboxProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Collapsible, CollapsibleProps } from \"./Collapsible\";\n\nexport type CollapsibleWithCheckboxProps =\n | CollapsibleWithCheckboxLabelProps\n | CollapsibleWithCheckboxRenderLabelProps;\n\nexport interface CollapsibleWithCheckboxCommonProps\n extends Omit<CollapsibleProps, \"contentLeft\" | \"onChange\">,\n Pick<\n CheckboxProps,\n \"value\" | \"onValueChange\" | \"onChange\" | \"indeterminate\"\n > {\n checkboxDisabled?: CheckboxProps[\"disabled\"];\n}\n\nexport interface CollapsibleWithCheckboxLabelProps\n extends CollapsibleWithCheckboxCommonProps {\n label: string;\n}\n\nexport interface CollapsibleWithCheckboxRenderLabelProps\n extends CollapsibleWithCheckboxCommonProps {\n renderLabel: () => ReactNode;\n}\n\nexport const CollapsibleWithCheckbox: React.FC<\n CollapsibleWithCheckboxProps\n> = ({\n value,\n onValueChange,\n onChange,\n indeterminate,\n checkboxDisabled,\n ...collapsibleProps\n}) => {\n return (\n <Collapsible\n contentLeft={\n <Checkbox\n value={value}\n indeterminate={indeterminate}\n onValueChange={onValueChange}\n onChange={onChange}\n disabled={checkboxDisabled}\n onClick={(ev) => ev.stopPropagation()}\n />\n }\n {...collapsibleProps}\n />\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SidebarMenuCollapsibleGroupBox.module.css\";\n\nexport interface SidebarMenuCollapsibleGroupBoxProps {\n children?: ReactNode;\n}\n\nexport const SidebarMenuCollapsibleGroupBox: React.FC<\n SidebarMenuCollapsibleGroupBoxProps\n> = ({ children }) => {\n return (\n <div className={styles.sidebarMenuCollapsibleGroupBox}>{children}</div>\n );\n};\n","import { Box, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\n\nexport interface CollapsibleGroupHeadingProps {\n children: string;\n}\n\nexport const CollapsibleGroupHeading: React.FC<\n CollapsibleGroupHeadingProps\n> = ({ children }) => (\n <Box spacing indent>\n <Text variant={\"overline\"} size={\"smaller\"}>\n {children}\n </Text>\n </Box>\n);\n","import { Column, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon, stenaMail } from \"@stenajs-webui/elements\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport * as React from \"react\";\n\nexport interface CollapsibleEmptyContentProps {\n text?: string;\n}\n\nexport const CollapsibleEmptyContent: React.FC<\n CollapsibleEmptyContentProps\n> = ({ text = \"No content\" }) => {\n return (\n <Column indent spacing flex={1} alignItems={\"center\"}>\n <Icon icon={stenaMail} color={cssColor(\"--lhds-color-ui-500\")} />\n <Space />\n <Text size={\"small\"} color={cssColor(\"--lhds-color-ui-500\")}>\n {text}\n </Text>\n </Column>\n );\n};\n","import {\n Box,\n Column,\n Heading,\n HeadingProps,\n Space,\n Text,\n} from \"@stenajs-webui/core\";\nimport {\n Card,\n CardBody,\n CardProps,\n CircledIcon,\n stenaTripFerryXl,\n XlIcon,\n} from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\n\nexport interface ErrorPanelProps extends CardProps, PropsWithChildren {\n text?: string;\n heading?: string;\n buttons?: ReactNode;\n icon?: XlIcon;\n headingLevel?: HeadingProps[\"as\"];\n}\n\nexport const ErrorPanel: React.FC<ErrorPanelProps> = ({\n text,\n heading,\n children,\n buttons,\n icon = stenaTripFerryXl,\n headingLevel = \"h3\",\n ...cardProps\n}) => {\n const activeText =\n !text && !heading ? \"Something unexpected happened.\" : text;\n\n return (\n <Card {...cardProps}>\n <CardBody>\n <Column spacing={1} gap={3} alignItems={\"center\"}>\n <Column alignItems={\"center\"}>\n <Space num={1} />\n <CircledIcon icon={icon} size={\"xl\"} />\n </Column>\n {heading && <Heading as={headingLevel}>{heading}</Heading>}\n {activeText && <Text>{activeText}</Text>}\n {children}\n {buttons && (\n <Box>\n <Space num={2} />\n {buttons}\n </Box>\n )}\n </Column>\n </CardBody>\n </Card>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ErrorPanel, ErrorPanelProps } from \"./ErrorPanel\";\n\nexport const ErrorScreen: React.FC<ErrorPanelProps> = (props) => {\n return (\n <Box\n width={\"100%\"}\n height={\"100%\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <ErrorPanel {...props} />\n </Box>\n );\n};\n","import { Box, Heading, Space } from \"@stenajs-webui/core\";\nimport { Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface LoadingPanelProps {\n text?: string;\n}\n\nexport const LoadingPanel: React.FC<LoadingPanelProps> = ({\n text = \"Loading...\",\n}) => {\n return (\n <Box alignItems={\"center\"}>\n <Spinner size={\"small\"} />\n <Space num={4} />\n <Heading variant={\"h4\"}>{text}</Heading>\n </Box>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { LoadingPanel, LoadingPanelProps } from \"./LoadingPanel\";\n\nexport const LoadingScreen: React.FC<LoadingPanelProps> = (props) => {\n return (\n <Box\n width={\"100%\"}\n height={\"100%\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <LoadingPanel {...props} />\n </Box>\n );\n};\n","import { Box, Row, Space } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface PageHeaderProps {\n renderBreadCrumbs?: () => ReactNode;\n renderPageHeading?: () => ReactNode;\n renderTabs?: () => ReactNode;\n children?: ReactNode;\n}\n\nexport const PageHeader: React.FC<PageHeaderProps> = ({\n renderBreadCrumbs,\n renderPageHeading,\n renderTabs,\n children,\n}) => {\n return (\n <Box shadow={\"bottom\"} background={cssColor(\"--lhds-color-ui-50\")} gap={2}>\n <Box indent={3}>\n {renderBreadCrumbs && (\n <Row spacing={1} alignItems={\"center\"}>\n <Row width={\"64px\"} height={\"16px\"} />\n {renderBreadCrumbs()}\n </Row>\n )}\n {renderPageHeading?.()}\n {renderTabs && <Space />}\n {renderTabs?.()}\n </Box>\n {children}\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Row } from \"@stenajs-webui/core\";\n\nexport interface PageHeaderRowProps extends BoxProps {}\n\nexport const PageHeaderRow: React.FC<PageHeaderRowProps> = (props) => (\n <Row indent={3} spacing {...props} />\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\n\nexport type PageHeadingVariant = \"compact\" | \"standard\" | \"relaxed\";\n\ninterface PageHeadingProps {\n icon?: MediumIcon;\n contentLeft?: ReactNode;\n contentRight?: ReactNode;\n heading: string;\n headingLevel?: HeadingVariant;\n variant?: PageHeadingVariant;\n}\n\nexport const PageHeading: React.FC<PageHeadingProps> = ({\n icon,\n heading,\n headingLevel = \"h2\",\n contentLeft,\n contentRight,\n}) => (\n <Row alignItems={\"center\"} gap={2} height={\"64px\"}>\n <Row alignItems={\"center\"}>\n <Row width={\"64px\"} alignItems={\"center\"}>\n {icon && <CircledIcon icon={icon} />}\n </Row>\n <Heading variant={\"h3\"} as={headingLevel}>\n {heading}\n </Heading>\n </Row>\n <Row alignItems={\"center\"}>{contentLeft}</Row>\n <Row style={{ marginLeft: \"auto\" }} alignItems={\"center\"}>\n {contentRight}\n </Row>\n </Row>\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SelectionRow.module.css\";\nimport { Box, Column, getDataProps, Row, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport {\n CircledIcon,\n CircledIconVariant,\n MediumIcon,\n} from \"@stenajs-webui/elements\";\n\nexport interface SelectionRowProps {\n icon?: MediumIcon;\n heading: string;\n description?: string | ReactNode;\n contentRight: ReactNode;\n htmlFor: string;\n circledIconVariant?: CircledIconVariant;\n}\n\nexport type SelectionRowBgVariant = \"none\" | \"white\";\n\nexport const SelectionRow: React.FC<SelectionRowProps> = ({\n icon,\n heading,\n description,\n contentRight,\n htmlFor,\n circledIconVariant,\n ...rest\n}) => {\n return (\n <div className={styles.selectionRow} {...getDataProps(rest)}>\n <Row gap={2}>\n {icon && (\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"40px\"}\n className={styles.iconColumn}\n >\n <CircledIcon icon={icon} variant={circledIconVariant} />\n </Box>\n )}\n <label htmlFor={htmlFor}>\n <Column gap={0.5}>\n <Text variant={\"bold\"}>{heading}</Text>\n {typeof description === \"string\" ? (\n <Text color={cssColor(\"--silver-dark\")}>{description}</Text>\n ) : (\n description\n )}\n </Column>\n </label>\n </Row>\n {contentRight}\n </div>\n );\n};\n","import * as React from \"react\";\nimport styles from \"./SidebarMenuCloseButtonRow.module.css\";\nimport { ButtonElementProps, Column, Row, Space } from \"@stenajs-webui/core\";\nimport { CloseButton, StenaFlag } from \"@stenajs-webui/elements\";\n\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SidebarMenuCloseButtonRowProps extends ButtonElementProps {}\n\nexport const SidebarMenuCloseButtonRow: React.FC<\n SidebarMenuCloseButtonRowProps\n> = ({ onClick }) => {\n return (\n <Column background={cssColor(\"--lhds-color-ui-50\")}>\n <Space />\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n flex={1}\n indent={1}\n minHeight={\"48px\"}\n >\n <CloseButton onClick={onClick} />\n <StenaFlag className={styles.stenaFlag} />\n </Row>\n </Column>\n );\n};\n","import * as React from \"react\";\nimport {\n MenuButton,\n MenuButtonProps,\n stenaAngleLeftDouble,\n stenaPin,\n} from \"@stenajs-webui/elements\";\n\nexport interface SidebarMenuPinButtonProps {\n isPinned?: boolean;\n label?: string;\n onClick?: MenuButtonProps[\"onClick\"];\n}\n\nexport const SidebarMenuPinButton: React.FC<SidebarMenuPinButtonProps> = ({\n isPinned,\n onClick,\n label,\n}) => {\n const pinLabel = isPinned ? \"Unpin menu\" : \"Pin menu\";\n const activeLabel = label ?? pinLabel;\n const activeIcon = isPinned ? stenaAngleLeftDouble : stenaPin;\n\n return (\n <MenuButton onClick={onClick} label={activeLabel} leftIcon={activeIcon} />\n );\n};\n","import { Box, BoxProps, Column, Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./SidebarMenu.module.css\";\nimport {\n SidebarMenuCloseButtonRow,\n SidebarMenuCloseButtonRowProps,\n} from \"./SidebarMenuCloseButtonRow\";\nimport { SidebarMenuPinButton } from \"./SidebarMenuPinButton\";\n\nexport interface SidebarMenuProps extends BoxProps {\n onCloseClick?: SidebarMenuCloseButtonRowProps[\"onClick\"];\n pinButtonVisible?: boolean;\n isPinned?: boolean;\n bottomItems?: ReactNode;\n onClickPinButton?: () => void;\n}\n\nexport const SidebarMenu: React.FC<SidebarMenuProps> = ({\n className,\n children,\n onCloseClick,\n pinButtonVisible,\n onClickPinButton,\n bottomItems,\n isPinned,\n ...boxProps\n}) => {\n return (\n <Box {...boxProps} className={cx(styles.sidebarMenu, className)}>\n <SidebarMenuCloseButtonRow onClick={onCloseClick} />\n <Box className={styles.scrollContainer}>\n <Column\n className={styles.sidebarItems}\n justifyContent={\"space-between\"}\n flex={1}\n gap={1}\n indent={1}\n >\n <Column gap={1}>{children}</Column>\n {(bottomItems || pinButtonVisible) && (\n <Column gap={1}>\n {bottomItems}\n {pinButtonVisible && (\n <SidebarMenuPinButton\n isPinned={isPinned}\n onClick={onClickPinButton}\n />\n )}\n <Space />\n </Column>\n )}\n </Column>\n </Box>\n </Box>\n );\n};\n","import { createContext, useContext } from \"react\";\n\nexport const RailContext = createContext<boolean | undefined>(false);\n\nexport const useRailContext = () => useContext(RailContext);\n","import * as React from \"react\";\nimport { IconMenuButton, IconMenuButtonProps } from \"@stenajs-webui/elements\";\nimport { Tooltip } from \"@stenajs-webui/tooltip\";\n\nexport type RailMenuButtonProps = IconMenuButtonProps & { label: string };\n\nexport const RailMenuButton: React.FC<RailMenuButtonProps> = ({\n label,\n ...menuButtonLinkProps\n}) => {\n return (\n <Tooltip label={label} placement={\"right\"} appendTo={document.body}>\n <IconMenuButton {...menuButtonLinkProps} />\n </Tooltip>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Box, Column } from \"@stenajs-webui/core\";\nimport { RailContext } from \"./RailContext\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport {\n IconMenuButton,\n stenaAngleLeftDouble,\n stenaHamburger,\n} from \"@stenajs-webui/elements\";\nimport { RailMenuButton } from \"../items/RailMenuButton\";\n\ninterface SidebarRailMenuProps {\n closeButtonVisible?: boolean;\n onClickCloseButton?: () => void;\n onClickMenuButton?: () => void;\n children?: ReactNode;\n bottomItems?: ReactNode;\n closeButtonTitle?: string;\n}\n\nexport const SidebarRailMenu: React.FC<SidebarRailMenuProps> = ({\n closeButtonVisible,\n onClickCloseButton,\n onClickMenuButton,\n children,\n bottomItems,\n closeButtonTitle = \"Unpin menu\",\n}) => {\n return (\n <Box\n position={\"fixed\"}\n left={0}\n top={0}\n bottom={0}\n indent={0.5}\n spacing={1}\n gap={1}\n shadow={\"popover\"}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <IconMenuButton onClick={onClickMenuButton} icon={stenaHamburger} />\n <Column justifyContent={\"space-between\"} flex={1} gap={1}>\n <Column gap={1}>\n <RailContext.Provider value={true}>{children}</RailContext.Provider>\n </Column>\n <Column gap={1}>\n {(bottomItems || closeButtonVisible) && (\n <RailContext.Provider value={true}>\n {bottomItems}\n {closeButtonVisible && (\n <RailMenuButton\n icon={stenaAngleLeftDouble}\n label={closeButtonTitle}\n onClick={onClickCloseButton}\n />\n )}\n </RailContext.Provider>\n )}\n </Column>\n </Column>\n </Box>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { useRailContext } from \"../rail/RailContext\";\n\nexport interface SidebarMenuHeadingProps {\n label: string;\n}\n\nexport const SidebarMenuHeading: React.FC<SidebarMenuHeadingProps> = ({\n label,\n}) => {\n const isRail = useRailContext();\n\n if (isRail) {\n return null;\n }\n\n return (\n <Box height={\"32px\"} justifyContent={\"center\"} indent={1}>\n <Space />\n <Text variant={\"overline\"} size={\"smaller\"}>\n {label}\n </Text>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport {\n IconMenuButtonLink,\n MenuButtonLinkNotSelectedProps,\n MenuButtonLinkWithRenderLinkProps,\n MenuButtonLinkWithSelectedProps,\n} from \"@stenajs-webui/elements\";\nimport { Tooltip } from \"@stenajs-webui/tooltip\";\n\nexport type RailMenuLinkProps = (\n | MenuButtonLinkNotSelectedProps\n | MenuButtonLinkWithSelectedProps\n | MenuButtonLinkWithRenderLinkProps\n) & { label: string };\n\nexport const RailMenuLink: React.FC<RailMenuLinkProps> = ({\n label,\n leftIcon,\n ...menuButtonLinkProps\n}) => {\n if (leftIcon == null) {\n return null;\n }\n\n return (\n <Tooltip label={label} placement={\"right\"}>\n <IconMenuButtonLink icon={leftIcon} {...menuButtonLinkProps} />\n </Tooltip>\n );\n};\n","import * as React from \"react\";\nimport {\n MenuButtonLink,\n MenuButtonLinkNotSelectedProps,\n MenuButtonLinkWithRenderLinkProps,\n MenuButtonLinkWithSelectedProps,\n} from \"@stenajs-webui/elements\";\nimport { useRailContext } from \"../rail/RailContext\";\nimport { RailMenuLink } from \"./RailMenuLink\";\n\nexport type SidebarMenuLinkProps = (\n | MenuButtonLinkNotSelectedProps\n | MenuButtonLinkWithSelectedProps\n | MenuButtonLinkWithRenderLinkProps\n) & { label: string };\n\nexport const SidebarMenuLink: React.FC<SidebarMenuLinkProps> = (props) => {\n const isRail = useRailContext();\n\n if (isRail) {\n return <RailMenuLink {...props} />;\n }\n\n return <MenuButtonLink {...props} />;\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Popover } from \"@stenajs-webui/tooltip\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { SidebarMenuHeading } from \"./SidebarMenuHeading\";\nimport { RailContext } from \"../rail/RailContext\";\nimport { IconMenuButton } from \"@stenajs-webui/elements\";\n\nexport interface RailMenuCollapsibleProps {\n label: string;\n collapsed?: boolean;\n icon: IconDefinition;\n children?: ReactNode;\n popupMinWidth?: string;\n}\n\nexport const RailMenuCollapsible: React.FC<RailMenuCollapsibleProps> = ({\n children,\n label,\n icon,\n popupMinWidth = \"200px\",\n}) => {\n return (\n <Popover\n renderTrigger={(props) => <IconMenuButton icon={icon} {...props} />}\n placement={\"right-start\"}\n trigger={[\"hover\", \"focus\"]}\n disablePadding\n >\n <Box\n minWidth={popupMinWidth}\n shadow={\"popover\"}\n spacing={1}\n indent={1}\n gap={2}\n >\n <RailContext.Provider value={false}>\n <SidebarMenuHeading label={label} />\n {children}\n </RailContext.Provider>\n </Box>\n </Popover>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { MenuButton } from \"@stenajs-webui/elements\";\nimport { useRailContext } from \"../rail/RailContext\";\nimport { RailMenuCollapsible } from \"./RailMenuCollapsible\";\nimport { SidebarMenuCollapsibleGroupBox } from \"./SidebarMenuCollapsibleGroupBox\";\n\nexport interface SidebarMenuCollapsibleProps {\n label: string;\n collapsed?: boolean;\n leftIcon?: IconDefinition;\n children?: ReactNode;\n className?: string;\n initialExpand?: boolean;\n}\n\nexport const SidebarMenuCollapsible: React.FC<SidebarMenuCollapsibleProps> = ({\n children,\n label,\n leftIcon,\n className,\n initialExpand = false,\n}) => {\n const [expanded, setExpanded] = useState<boolean>(initialExpand);\n\n const isRail = useRailContext();\n\n if (isRail) {\n if (leftIcon == null) {\n return null;\n }\n\n return (\n <RailMenuCollapsible label={label} icon={leftIcon}>\n {children}\n </RailMenuCollapsible>\n );\n }\n return (\n <MenuButton\n label={label}\n onClick={() => setExpanded(!expanded)}\n leftIcon={leftIcon}\n className={className}\n expandable\n expanded={expanded}\n selected={expanded}\n >\n <SidebarMenuCollapsibleGroupBox>\n {children}\n </SidebarMenuCollapsibleGroupBox>\n </MenuButton>\n );\n};\n","import { SeparatorLine, SeparatorLineProps } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport * as React from \"react\";\n\nexport interface SidebarMenuSeparatorProps extends SeparatorLineProps {}\n\nexport const SidebarMenuSeparator: React.FC<SidebarMenuSeparatorProps> = (\n separatorLineProps,\n) => (\n <SeparatorLine\n color={cssColor(\"--lhds-color-ui-400\")}\n {...separatorLineProps}\n />\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Row, Space, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SelectedItemsActionsPanelProps {\n numItemsSelected?: number;\n label?: ReactNode | string;\n afterLabelContent?: ReactNode;\n rightContent?: ReactNode;\n}\n\nexport const SelectedItemsActionsPanel: React.FC<\n SelectedItemsActionsPanelProps\n> = ({ numItemsSelected, label, afterLabelContent, rightContent }) => (\n <Row\n indent={3}\n spacing\n gap={3}\n minHeight={\"56px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n background={cssColor(\"--silver-lighter\")}\n flex={1}\n borderRadius={\"var(--swui-border-radius)\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n {numItemsSelected != null || label != null ? (\n <Row alignItems={\"center\"}>\n {numItemsSelected != null ? (\n <>\n <Text>{numItemsSelected}</Text>\n <Space />\n <Text>item{numItemsSelected === 1 ? \"\" : \"s\"} selected</Text>\n </>\n ) : label != null ? (\n <>{typeof label === \"string\" ? <Text>{label}</Text> : label}</>\n ) : null}\n </Row>\n ) : null}\n {afterLabelContent && <Row>{afterLabelContent}</Row>}\n </Row>\n <Row gap={2}>{rightContent}</Row>\n </Row>\n);\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\n\nexport interface SelectedItemsActionsPaddingProps extends PropsWithChildren {}\n\nexport const SelectedItemsActionsPadding: React.FC<\n SelectedItemsActionsPaddingProps\n> = ({ children }) => {\n return (\n <Row spacing={0.5} indent={0.5} flex={1}>\n {children}\n </Row>\n );\n};\n","import { Box, Column, getDataProps, Row, Spacing } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport styles from \"./ProductCard.module.css\";\nimport { Spinner } from \"@stenajs-webui/elements\";\n\nexport interface ProductCardProps extends PropsWithChildren {\n renderSelectedProductCard?: () => ReactNode;\n renderEditButton?: () => ReactNode;\n loading?: boolean;\n shadow?: boolean;\n}\n\nexport const ProductCard: React.FC<ProductCardProps> = ({\n renderSelectedProductCard,\n renderEditButton,\n children,\n loading,\n shadow,\n ...props\n}) => {\n return (\n <Column\n data-comp={\"ProductCard\"}\n className={styles.productCard}\n shadow={shadow ? \"box\" : undefined}\n background={cssColor(\"--moln\")}\n borderRadius={\"24px\"}\n overflow={\"hidden\"}\n position={loading ? \"relative\" : undefined}\n {...getDataProps(props)}\n >\n {renderSelectedProductCard?.()}\n <Column gap={2}>{children}</Column>\n {renderEditButton && (\n <Column>\n <Row indent={2} justifyContent={\"flex-end\"}>\n {renderEditButton()}\n </Row>\n <Spacing />\n </Column>\n )}\n {loading && (\n <Box\n top={0}\n bottom={0}\n left={0}\n right={0}\n position={\"absolute\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n background={\"rgba(255, 255, 255, 0.7)\"}\n >\n <Spinner />\n </Box>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\n\nexport interface LargePriceProps extends PropsWithChildren {}\n\nexport const LargePrice: React.FC<LargePriceProps> = ({ children }) => {\n return (\n <Text variant={\"bold\"} style={{ fontSize: \"2.0rem\" }}>\n {children}\n </Text>\n );\n};\n","import {\n Box,\n Column,\n Heading,\n HeadingVariant,\n isEmptyFragment,\n Row,\n Space,\n Text,\n} from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Tag } from \"@stenajs-webui/elements\";\nimport { LargePrice } from \"./LargePrice\";\n\nexport interface ProductCardContentItemProps extends PropsWithChildren {\n title: string;\n headingLevel?: HeadingVariant;\n subTitle?: string;\n description?: string;\n subDescription?: string;\n descriptionTags?: ReactNode;\n capacityTag?: string;\n offerCodeTag?: ReactNode;\n priceText?: string;\n renderImage?: () => ReactNode;\n}\n\nexport const ProductCardContentItem: React.FC<ProductCardContentItemProps> = ({\n description,\n subDescription,\n descriptionTags,\n capacityTag,\n offerCodeTag,\n priceText,\n title,\n subTitle,\n renderImage,\n children,\n headingLevel,\n}) => {\n const hasDescriptionTags =\n descriptionTags == null\n ? false\n : Array.isArray(descriptionTags)\n ? descriptionTags.length > 0\n : !isEmptyFragment(descriptionTags);\n\n return (\n <Column>\n {renderImage?.()}\n <Box gap={2} spacing={4} indent={4} background={cssColor(\"--moln\")}>\n <Box gap={0.5}>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"flex-start\"}\n gap={2}\n >\n <Heading variant={\"h3\"} as={headingLevel}>\n {title}\n </Heading>\n <Row gap={2}>\n {offerCodeTag && (\n <Column justifyContent={\"center\"}>{offerCodeTag}</Column>\n )}\n <LargePrice>{priceText}</LargePrice>\n </Row>\n </Row>\n {subTitle && (\n <Text variant={\"bold\"} color={cssColor(\"--silver-dark\")}>\n {subTitle}\n </Text>\n )}\n </Box>\n {(hasDescriptionTags || capacityTag) && (\n <Column>\n <Row gap={1} flexWrap={\"wrap\"}>\n {descriptionTags}\n {capacityTag && <Tag label={capacityTag} variant={\"passive\"} />}\n </Row>\n <Space />\n </Column>\n )}\n {description && (\n <Column>\n <Text>{description}</Text>\n <Space />\n </Column>\n )}\n {subDescription && (\n <Column>\n <Text>{subDescription}</Text>\n <Space />\n </Column>\n )}\n {children}\n </Box>\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Box, Column, Row } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ShimmerBox } from \"@stenajs-webui/elements\";\n\nexport interface ProductCardContentItemSkeletorProps {\n renderImage?: () => ReactNode;\n}\n\nexport const ProductCardContentItemSkeletor: React.FC<\n ProductCardContentItemSkeletorProps\n> = ({ renderImage }) => {\n return (\n <Column>\n {renderImage?.()}\n <Box gap={3} spacing={4} indent={4} background={cssColor(\"--moln\")}>\n <Box gap={0.5}>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"flex-start\"}\n gap={2}\n >\n {\n <ShimmerBox\n width={\"50px\"}\n height={\"2.8rem\"}\n borderRadius={\"8px\"}\n />\n }\n </Row>\n </Box>\n <Column>\n <ShimmerBox width={\"180px\"} height={\"2.0rem\"} borderRadius={\"8px\"} />\n </Column>\n <Column>\n <ShimmerBox width={\"150px\"} height={\"1.4rem\"} borderRadius={\"8px\"} />\n </Column>\n </Box>\n </Column>\n );\n};\n","import { Box, Heading } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface SelectedProductCardProps extends PropsWithChildren {\n label: string;\n}\n\nexport const SelectedProductCard: React.FC<SelectedProductCardProps> = ({\n label,\n children,\n}) => {\n return (\n <Box background={cssColor(\"--mussla\")} indent={2} spacing={2} gap={2}>\n <Heading variant={\"h3\"} as={\"h2\"} color={\"white\"}>\n {label}\n </Heading>\n {children}\n </Box>\n );\n};\n","import {\n Box,\n Column,\n exhaustSwitchCaseElseThrow,\n getDataProps,\n Row,\n Text,\n useAccessibleFontSizeContext,\n} from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport {\n CircledIcon,\n Icon,\n MediumIcon,\n Spinner,\n XlIcon,\n} from \"@stenajs-webui/elements\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { useMediaQuery } from \"react-responsive\";\n\nexport type ProductCategoryCardVariant = \"edit\" | \"upgrade\" | \"normal\";\n\nexport interface ProductSummaryCardProps extends PropsWithChildren {\n title?: string;\n variant?: ProductCategoryCardVariant;\n loading?: boolean;\n iconLeft?: XlIcon;\n compactIconLeft?: MediumIcon;\n renderButton?: () => React.ReactNode;\n renderOfferCodeTag?: () => ReactNode;\n renderMandatoryTag?: () => ReactNode;\n renderContentLeftOfButton?: () => ReactNode;\n}\n\nexport const ProductSummaryCard: React.FC<ProductSummaryCardProps> = ({\n title,\n variant = \"normal\",\n loading,\n iconLeft,\n compactIconLeft,\n renderButton,\n renderOfferCodeTag,\n renderMandatoryTag,\n renderContentLeftOfButton,\n children,\n ...props\n}) => {\n const { fontSizeRatio } = useAccessibleFontSizeContext();\n\n const isMobile = useMediaQuery({\n query: `(max-width: 460px)`,\n });\n const isSmallMobile = useMediaQuery({\n query: `(max-width: 360px)`,\n });\n\n const isCompact = isSmallMobile || (isMobile && fontSizeRatio > 1.2);\n\n const visibleVariant = loading ? \"normal\" : variant;\n\n const leftBackground = getBackground(visibleVariant);\n const rightBackground = cssColor(\"--moln\");\n const iconColor = getIconColor(visibleVariant);\n\n return (\n <Box\n data-comp={\"ProductSummaryCard\"}\n borderRadius={\"16px\"}\n shadow={\"box\"}\n overflow={\"hidden\"}\n position={loading ? \"relative\" : undefined}\n {...getDataProps(props)}\n >\n <Row flex={1}>\n {!isCompact && (\n <Box flex={2} justifyContent={\"center\"} background={leftBackground}>\n {iconLeft && <Icon color={iconColor} icon={iconLeft} size={73} />}\n </Box>\n )}\n <Box flex={4} indent={2} spacing={2} background={rightBackground}>\n <Column gap={2}>\n {title && (\n <Row justifyContent={\"space-between\"}>\n <Row gap={2} alignItems={\"center\"}>\n {isCompact && compactIconLeft && (\n <CircledIcon icon={compactIconLeft} size={\"medium\"} />\n )}\n <Text variant={\"bold\"} size={\"large\"}>\n {title}\n </Text>\n </Row>\n {visibleVariant == \"normal\" && renderOfferCodeTag?.()}\n </Row>\n )}\n <Column style={{ opacity: loading ? 0 : undefined }}>\n {children}\n </Column>\n {renderMandatoryTag && (\n <Row style={{ opacity: loading ? 0 : undefined }}>\n {renderMandatoryTag()}\n </Row>\n )}\n <div />\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n gap={2}\n flexWrap={\"wrap\"}\n >\n {renderContentLeftOfButton?.() ?? <div />}\n {renderButton?.()}\n </Row>\n </Column>\n </Box>\n </Row>\n\n {loading && (\n <Box\n top={0}\n bottom={0}\n left={0}\n right={0}\n position={\"absolute\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n background={\"rgba(255, 255, 255, 0.7)\"}\n >\n <Spinner />\n </Box>\n )}\n </Box>\n );\n};\n\nconst getIconColor = (\n variant: ProductCategoryCardVariant,\n): string | undefined => {\n switch (variant) {\n case \"edit\":\n return cssColor(\"--moln\");\n case \"upgrade\":\n return cssColor(\"--moln\");\n case \"normal\":\n return cssColor(\"--mussla\");\n default:\n exhaustSwitchCaseElseThrow(variant);\n }\n};\n\nconst getBackground = (\n variant: ProductCategoryCardVariant,\n): string | undefined => {\n switch (variant) {\n case \"edit\":\n return cssColor(\"--mussla\");\n case \"upgrade\":\n return cssColor(\"--mussla\");\n case \"normal\":\n return cssColor(\"--silver-lighter\");\n default:\n exhaustSwitchCaseElseThrow(variant);\n }\n};\n","import { Box, Column, getDataProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Icon, ShimmerBox } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface ProductSummaryCardSkeletorProps {\n iconLeft?: IconDefinition;\n}\n\nexport const ProductSummaryCardSkeletor: React.FC<\n ProductSummaryCardSkeletorProps\n> = ({ iconLeft, ...props }) => {\n return (\n <Box\n borderRadius={\"16px\"}\n shadow={\"box\"}\n overflow={\"hidden\"}\n {...getDataProps(props)}\n >\n <Row flex={1}>\n <Box\n flex={2}\n justifyContent={\"center\"}\n background={cssColor(\"--silver-lighter\")}\n >\n {iconLeft && (\n <Icon color={cssColor(\"--mussla\")} icon={iconLeft} size={73} />\n )}\n </Box>\n <Box flex={4} indent={2} spacing={2} background={cssColor(\"--moln\")}>\n <Column gap={2}>\n <ShimmerBox\n width={\"180px\"}\n height={\"2.8rem\"}\n borderRadius={\"8px\"}\n />\n <ShimmerBox width={\"50px\"} height={\"2.0rem\"} borderRadius={\"8px\"} />\n <ShimmerBox\n width={\"150px\"}\n height={\"1.4rem\"}\n borderRadius={\"8px\"}\n />\n </Column>\n </Box>\n </Row>\n </Box>\n );\n};\n","import { useMemo } from \"react\";\nimport { useMediaQuery } from \"react-responsive\";\n\nexport type DeviceSize =\n | \"small-mobile\"\n | \"mobile\"\n | \"tablet\"\n | \"tablet-wide\"\n | \"desktop\";\n\nconst layoutSizeOrdered: Array<DeviceSize> = [\n \"small-mobile\",\n \"mobile\",\n \"tablet\",\n \"tablet-wide\",\n \"desktop\",\n];\n\nexport const useDeviceSize = () => {\n const isMobile = useMediaQuery({\n query: `(max-width: 768px)`,\n });\n\n const isSmallMobile = useMediaQuery({\n query: `(max-width: 395px)`,\n });\n\n const isTablet = useMediaQuery({\n query: `(max-width: 1024px)`,\n });\n\n const isTabletWide = useMediaQuery({\n query: `(max-width: 1160px)`,\n });\n\n const deviceSize: DeviceSize = isSmallMobile\n ? \"small-mobile\"\n : isMobile\n ? \"mobile\"\n : isTablet\n ? \"tablet\"\n : isTabletWide\n ? \"tablet-wide\"\n : \"desktop\";\n\n return { deviceSize };\n};\n\nexport const isDeviceSameOrLarger = (\n deviceLarger: DeviceSize,\n than: DeviceSize,\n): boolean =>\n deviceLarger === than ||\n layoutSizeOrdered.indexOf(deviceLarger) > layoutSizeOrdered.indexOf(than);\n\nexport const useLayoutVisibility = (visibleOnThisAndLarger: DeviceSize) => {\n const { deviceSize } = useDeviceSize();\n\n const visible = useMemo(\n () => isDeviceSameOrLarger(deviceSize, visibleOnThisAndLarger),\n [deviceSize, visibleOnThisAndLarger],\n );\n\n return {\n visible,\n };\n};\n","import * as React from \"react\";\nimport { useMemo, useRef, useState } from \"react\";\nimport Lightbox, { ControllerRef, Slide } from \"yet-another-react-lightbox\";\nimport Zoom from \"yet-another-react-lightbox/plugins/zoom\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Captions from \"yet-another-react-lightbox/plugins/captions\";\nimport { Indent, Row } from \"@stenajs-webui/core\";\nimport {\n PrimaryButton,\n SecondaryButton,\n stenaAngleLeft,\n stenaAngleRight,\n stenaSearchMinus,\n stenaSearchPlus,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\nimport { useDeviceSize } from \"../../utils/UseDeviceSize\";\nimport \"./yarl.css\";\n\nexport interface FullscreenCarouselImage {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}\n\nexport interface FullscreenImageCarouselProps {\n isOpen: boolean;\n onRequestClose: () => void;\n initialIndex?: number;\n onUpdateIndex?: (index: number) => void;\n images: Array<FullscreenCarouselImage>;\n altLabelPrevious: string;\n altLabelNext: string;\n altLabelClose: string;\n altLabelZoomIn: string;\n altLabelZoomOut: string;\n}\n\nexport const FullscreenImageCarousel: React.FC<\n FullscreenImageCarouselProps\n> = ({\n isOpen,\n initialIndex,\n onUpdateIndex,\n altLabelPrevious,\n altLabelZoomIn,\n altLabelZoomOut,\n altLabelNext,\n altLabelClose,\n onRequestClose,\n images,\n}) => {\n const controllerRef = useRef<ControllerRef>(null);\n\n const { deviceSize } = useDeviceSize();\n const navigationButtonsVisible = !(deviceSize === \"mobile\");\n\n const [index, setIndex] = useState(initialIndex ?? 0);\n\n const updateIndex = ({ index: current }: { index: number }) => {\n setIndex(current);\n onUpdateIndex?.(current);\n };\n\n const slides = useMemo(() => images.map((image) => toSlide(image)), [images]);\n\n return (\n <Lightbox\n open={isOpen}\n close={onRequestClose}\n index={index}\n plugins={[Zoom, Counter, Captions]}\n slides={slides}\n on={{ view: updateIndex }}\n animation={{ fade: 0 }}\n controller={{\n closeOnPullDown: true,\n closeOnBackdropClick: true,\n ref: controllerRef,\n }}\n counter={{\n container: {\n style: {\n filter: \"none\",\n color: \"white\",\n fontSize: \"2.0rem\",\n fontFamily: \"var(--swui-font-primary)\",\n },\n },\n }}\n render={{\n buttonZoom: (p) =>\n navigationButtonsVisible && (\n <Row gap={1} indent={2}>\n <SecondaryButton\n aria-label={altLabelZoomIn}\n leftIcon={stenaSearchPlus}\n size={\"large\"}\n onClick={() => p.zoomIn()}\n />\n <SecondaryButton\n aria-label={altLabelZoomOut}\n leftIcon={stenaSearchMinus}\n size={\"large\"}\n onClick={() => p.zoomOut()}\n />\n </Row>\n ),\n buttonPrev: () =>\n images.length > 1 &&\n navigationButtonsVisible && (\n <Indent num={4} className={\"yarl__navigation_prev\"}>\n <SecondaryButton\n aria-label={altLabelPrevious}\n leftIcon={stenaAngleLeft}\n size={\"large\"}\n onClick={() => controllerRef.current?.prev()}\n />\n </Indent>\n ),\n buttonNext: () =>\n images.length > 1 &&\n navigationButtonsVisible && (\n <Indent num={4} className={\"yarl__navigation_next\"}>\n <SecondaryButton\n aria-label={altLabelNext}\n leftIcon={stenaAngleRight}\n size={\"large\"}\n onClick={() => controllerRef.current?.next()}\n />\n </Indent>\n ),\n buttonClose: () => (\n <Indent>\n <PrimaryButton\n variant={\"danger\"}\n aria-label={altLabelClose}\n leftIcon={stenaTimesThick}\n size={\"large\"}\n onClick={() => controllerRef.current?.close()}\n />\n </Indent>\n ),\n }}\n />\n );\n};\n\nconst toSlide = (image: {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}): Slide => ({\n src: image.url,\n width: image.width,\n height: image.height,\n alt: image.alt,\n title: image.title,\n description: image.description,\n});\n","import * as React from \"react\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport Lightbox, { ControllerRef, Slide } from \"yet-another-react-lightbox\";\nimport Inline from \"yet-another-react-lightbox/plugins/inline\";\nimport {\n SecondaryButton,\n stenaAngleLeft,\n stenaAngleRight,\n} from \"@stenajs-webui/elements\";\nimport { BlockKeyboardEvents, Indent } from \"@stenajs-webui/core\";\nimport \"./yarl.css\";\nimport { FullscreenImageCarousel } from \"./FullscreenImageCarousel\";\n\nexport interface CarouselImage {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n fullscreenImage?: {\n url: string;\n width: number;\n height: number;\n };\n}\n\nexport interface ImageCarouselProps {\n images: Array<CarouselImage>;\n initialIndex?: number;\n altLabelPrevious: string;\n altLabelNext: string;\n altLabelClose: string;\n altLabelZoomIn: string;\n altLabelZoomOut: string;\n}\n\nexport const ImageCarousel: React.FC<ImageCarouselProps> = ({\n images,\n initialIndex,\n altLabelPrevious,\n altLabelZoomIn,\n altLabelZoomOut,\n altLabelNext,\n altLabelClose,\n}) => {\n const controllerRef = useRef<ControllerRef>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [index, setIndex] = useState(initialIndex ?? 0);\n\n const setOpen = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const setClosed = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const updateIndex = ({ index: current }: { index: number }) =>\n setIndex(current);\n\n useEffect(() => {\n setIndex(initialIndex ?? 0);\n }, [initialIndex]);\n\n const slides = useMemo(() => images.map(toSlide), [images]);\n\n const fullscreenImages = useMemo(() => {\n return images.map((image) =>\n image.fullscreenImage\n ? {\n ...image,\n url: image.fullscreenImage.url,\n width: image.fullscreenImage.width,\n height: image.fullscreenImage.height,\n }\n : image,\n );\n }, [images]);\n\n return (\n <BlockKeyboardEvents blockedKeys={\"Escape\"}>\n <Lightbox\n controller={{ ref: controllerRef }}\n index={index}\n slides={slides}\n plugins={[Inline]}\n on={{\n view: updateIndex,\n click: setOpen,\n }}\n carousel={{\n padding: 0,\n spacing: 0,\n imageFit: \"cover\",\n }}\n render={{\n buttonPrev: () =>\n images.length > 1 && (\n <Indent className={\"yarl__navigation_prev\"}>\n <SecondaryButton\n aria-label={altLabelPrevious}\n leftIcon={stenaAngleLeft}\n onClick={() => controllerRef.current?.prev()}\n />\n </Indent>\n ),\n buttonNext: () =>\n images.length > 1 && (\n <Indent className={\"yarl__navigation_next\"}>\n <SecondaryButton\n aria-label={altLabelNext}\n leftIcon={stenaAngleRight}\n onClick={() => controllerRef.current?.next()}\n />\n </Indent>\n ),\n }}\n styles={{\n button: {\n filter: \"none\",\n },\n }}\n inline={{\n style: {\n width: \"100%\",\n maxWidth: \"900px\",\n aspectRatio: \"3 / 2\",\n margin: \"0 auto\",\n },\n }}\n />\n\n {isOpen && (\n <FullscreenImageCarousel\n isOpen={true}\n onRequestClose={setClosed}\n initialIndex={index}\n onUpdateIndex={setIndex}\n images={fullscreenImages}\n altLabelPrevious={altLabelPrevious}\n altLabelNext={altLabelNext}\n altLabelClose={altLabelClose}\n altLabelZoomIn={altLabelZoomIn}\n altLabelZoomOut={altLabelZoomOut}\n />\n )}\n </BlockKeyboardEvents>\n );\n};\n\nconst toSlide = (image: {\n url: string;\n alt: string;\n width: number;\n height: number;\n title?: string;\n description?: string;\n}): Slide => ({\n src: image.url,\n width: image.width,\n height: image.height,\n alt: image.alt,\n title: image.title,\n description: image.description,\n});\n"],"names":["ActionMenuButton","renderItems","placement","Button","rightIcon","stenaAngleDown","menuWidth","menuTop","onClick","disableArrow","buttonRef","appendTo","zIndex","disableTrapFocus","buttonProps","isOpen","open","close","toggle","useBoolean","fallbackRef","useRef","ref","contextValue","useMemo","handleClick","event","jsx","Fragment","ControlledPopover","props","ActionMenu","ActionMenuContext","ActionMenuPrimaryButton","PrimaryButton","ActionMenuSecondaryButton","SecondaryButton","ActionMenuFlatButton","FlatButton","border","CheckboxMenu","renderMenu","checkboxProps","Popover","Row","jsxs","Checkbox","Indent","onRequestClose","Column","NavBarSideMenuButton","className","stenaHamburger","NavBar","left","showMenuButton","children","right","center","onClickMenuButton","currentFlex","cx","styles","React","child","index","NavBarButton","forwardRef","selected","NavBarHeading","headingProps","Heading","NavBarPopoverButton","content","navBarButtonProps","Box","NavBarNotificationButton","count","unread","labelClassName","iconClassName","icon","stenaBellFilled","hasCount","BaseButton","NavBarSearchField","placeholder","wrapperClassName","showClearButton","onClickClearButton","value","textInputProps","TextInput","TextInputButton","stenaTimes","NavBarUserButton","username","initials","stenaUserCircle","responsiveIconOnly","Collapsible","contentLeft","contentRight","collapsed","MenuButton","CollapsibleList","CollapsibleWithCheckbox","onValueChange","onChange","indeterminate","checkboxDisabled","collapsibleProps","ev","SidebarMenuCollapsibleGroupBox","CollapsibleGroupHeading","Text","CollapsibleEmptyContent","text","Icon","stenaMail","cssColor","Space","ErrorPanel","heading","buttons","stenaTripFerryXl","headingLevel","cardProps","activeText","Card","CardBody","CircledIcon","ErrorScreen","LoadingPanel","Spinner","LoadingScreen","PageHeader","renderBreadCrumbs","renderPageHeading","renderTabs","PageHeaderRow","PageHeading","SelectionRow","description","htmlFor","circledIconVariant","rest","getDataProps","SidebarMenuCloseButtonRow","CloseButton","StenaFlag","SidebarMenuPinButton","isPinned","label","activeLabel","activeIcon","stenaAngleLeftDouble","stenaPin","SidebarMenu","onCloseClick","pinButtonVisible","onClickPinButton","bottomItems","boxProps","RailContext","createContext","useRailContext","useContext","RailMenuButton","menuButtonLinkProps","Tooltip","IconMenuButton","SidebarRailMenu","closeButtonVisible","onClickCloseButton","closeButtonTitle","SidebarMenuHeading","RailMenuLink","leftIcon","IconMenuButtonLink","SidebarMenuLink","MenuButtonLink","RailMenuCollapsible","popupMinWidth","SidebarMenuCollapsible","initialExpand","expanded","setExpanded","useState","SidebarMenuSeparator","separatorLineProps","SeparatorLine","SelectedItemsActionsPanel","numItemsSelected","afterLabelContent","rightContent","SelectedItemsActionsPadding","ProductCard","renderSelectedProductCard","renderEditButton","loading","shadow","Spacing","LargePrice","ProductCardContentItem","subDescription","descriptionTags","capacityTag","offerCodeTag","priceText","title","subTitle","renderImage","hasDescriptionTags","isEmptyFragment","Tag","ProductCardContentItemSkeletor","ShimmerBox","SelectedProductCard","ProductSummaryCard","variant","iconLeft","compactIconLeft","renderButton","renderOfferCodeTag","renderMandatoryTag","renderContentLeftOfButton","fontSizeRatio","useAccessibleFontSizeContext","isMobile","useMediaQuery","isCompact","visibleVariant","leftBackground","getBackground","rightBackground","iconColor","getIconColor","exhaustSwitchCaseElseThrow","ProductSummaryCardSkeletor","layoutSizeOrdered","useDeviceSize","isSmallMobile","isTablet","isTabletWide","isDeviceSameOrLarger","deviceLarger","than","useLayoutVisibility","visibleOnThisAndLarger","deviceSize","FullscreenImageCarousel","initialIndex","onUpdateIndex","altLabelPrevious","altLabelZoomIn","altLabelZoomOut","altLabelNext","altLabelClose","images","controllerRef","navigationButtonsVisible","setIndex","updateIndex","current","slides","image","toSlide","Lightbox","Zoom","Counter","Captions","p","stenaSearchPlus","stenaSearchMinus","stenaAngleLeft","stenaAngleRight","stenaTimesThick","ImageCarousel","setIsOpen","setOpen","useCallback","setClosed","useEffect","fullscreenImages","BlockKeyboardEvents","Inline"],"mappings":"+4BA8CaA,EAAoD,CAAC,CAChE,YAAAC,EACA,UAAAC,EAAY,SACZ,gBAAiBC,EACjB,UAAAC,EAAYC,EAAAA,eACZ,UAAAC,EACA,QAAAC,EACA,QAAAC,EACA,aAAAC,EAAe,GACf,UAAAC,EACA,SAAAC,EACA,OAAAC,EACA,iBAAAC,EAAmB,GACnB,GAAGC,CACL,IAAM,CACJ,KAAM,CAACC,EAAQC,EAAMC,EAAOC,CAAM,EAAIC,EAAAA,WAAW,EAAK,EAEhDC,EAAcC,EAAAA,OAA0B,IAAI,EAC5CC,EAAMZ,GAAaU,EAEnBG,EAAeC,UAAQ,KAAO,CAAE,KAAAR,EAAM,MAAAC,IAAU,CAACD,EAAMC,CAAK,CAAC,EAE7DQ,EACJC,GACG,CACHlB,IAAUkB,CAAK,EACfR,EAAA,CACF,EAEA,OACES,MAAAC,EAAAA,SAAA,CACE,SAAAD,EAAAA,IAACE,EAAAA,kBAAA,CACC,cAAgBC,GACdH,EAAAA,IAACxB,EAAA,CACC,UAAWM,EAAe,OAAYL,EACrC,GAAGU,EACJ,IAAAQ,EACA,QAASG,EACR,GAAGK,CAAA,CAAA,EAGR,UAAS,GACT,eAAc,GACd,KAAMf,EACN,eAAgBE,EAChB,UAAAf,EACA,SAAAS,EACA,OAAAC,EAEC,SAAAG,GACCY,EAAAA,IAACI,EAAAA,WAAA,CACC,MAAOzB,EACP,IAAKC,EACL,UAAW,CAACM,EAEZ,SAAAc,EAAAA,IAACK,EAAAA,kBAAkB,SAAlB,CAA2B,MAAOT,EAChC,SAAAtB,EAAYgB,CAAK,CAAA,CACpB,CAAA,CAAA,CACF,CAAA,EAGN,CAEJ,ECrGagB,GACXH,GAEOH,EAAAA,IAAC3B,EAAA,CAAiB,gBAAiBkC,EAAAA,cAAgB,GAAGJ,EAAO,ECJzDK,GAERL,GACIH,EAAAA,IAAC3B,EAAA,CAAiB,gBAAiBoC,EAAAA,gBAAkB,GAAGN,EAAO,ECH3DO,EACXP,GAEOH,EAAAA,IAAC3B,EAAA,CAAiB,gBAAiBsC,EAAAA,WAAa,GAAGR,EAAO,ECK7DS,GAAS,qCAEFC,GAA4C,CAAC,CACxD,WAAAC,EACA,GAAGC,CACL,IAEIf,EAAAA,IAACgB,EAAAA,QAAA,CACC,QAAS,QACT,cAAgBb,GACdH,EAAAA,IAACiB,EAAAA,IAAA,CACC,SAAAC,EAAAA,KAACD,EAAAA,IAAA,CACC,QAAS,GACT,OAAM,GACN,WAAY,SACZ,OAAAL,GACA,aAAc,MAEd,SAAA,CAAAZ,EAAAA,IAACmB,EAAAA,SAAA,CAAU,GAAGJ,EAAe,EAC7Bf,EAAAA,IAACoB,EAAAA,OAAA,CAAO,IAAK,EAAA,CAAK,QACjBT,EAAAA,WAAA,CAAW,KAAM,QAAS,SAAUjC,EAAAA,eAAiB,GAAGyB,CAAA,CAAO,CAAA,CAAA,CAAA,EAEpE,EAEF,UAAS,GACT,eAAc,GACd,UAAW,eAEV,SAAA,CAAC,CAAE,eAAAkB,CAAA,IACFrB,EAAAA,IAACsB,EAAAA,OAAA,CACC,SAAAtB,EAAAA,IAACI,EAAAA,WAAA,CAAY,SAAAU,EAAWO,CAAc,CAAA,CAAE,CAAA,CAC1C,CAAA,CAAA,sCCtCKE,GAAyD,CAAC,CACrE,UAAAC,EACA,QAAA3C,CACF,IAEImB,EAAAA,IAACW,EAAAA,WAAA,CACC,SAAUc,EAAAA,eACV,UAAAD,EACA,QAAA3C,CAAA,CAAA,ECOO6C,GAAgC,CAAC,CAC5C,KAAAC,EACA,UAAAH,EACA,eAAAI,EAAiB,GACjB,SAAAC,EACA,MAAAC,EACA,OAAAC,EACA,kBAAAC,CACF,IAAM,CACJ,MAAMC,EAAcF,EAAS,EAAI,OACjC,OACEb,EAAAA,KAACD,EAAAA,IAAA,CACC,eAAgB,gBAChB,UAAWiB,EAAGC,GAAO,OAAQX,CAAS,EAEtC,SAAA,CAAAN,EAAAA,KAACD,EAAAA,IAAA,CACC,KAAMgB,EACN,eAAgB,aAChB,WAAY,SAEZ,SAAA,CAAAf,EAAAA,KAACD,EAAAA,IAAA,CAAI,MAAO,OAAQ,WAAY,SAC9B,SAAA,CAAAjB,EAAAA,IAACoB,EAAAA,OAAA,EAAO,EACPQ,GACC5B,EAAAA,IAACuB,GAAA,CAAqB,QAASS,CAAA,CAAmB,CAAA,EAEtD,EAECL,GACCT,EAAAA,KAAAjB,WAAA,CACG,SAAA,CAAA0B,EACD3B,EAAAA,IAACoB,EAAAA,OAAA,CAAO,IAAK,CAAA,CAAG,CAAA,EAClB,EAEDS,GACC7B,EAAAA,IAAAC,EAAAA,SAAA,CACE,SAAAD,MAACiB,EAAAA,IAAA,CAAI,eAAgB,SAAU,WAAY,SACxC,SAAAmB,GAAM,SAAS,IAAIP,EAAU,CAACQ,EAAOC,IACpCpB,EAAAA,KAAAjB,WAAA,CACG,SAAA,CAAAqC,EAAQ,SAAMlB,EAAAA,OAAA,CAAA,CAAO,EACrBiB,CAAA,CAAA,CACH,CACD,EACH,CAAA,CACF,CAAA,CAAA,CAAA,EAGHN,GACC/B,EAAAA,IAACiB,EAAAA,IAAA,CAAI,eAAgB,SAAU,WAAY,SACxC,SAAAc,EACH,SAEDd,EAAAA,IAAA,CAAI,eAAgB,WAAY,WAAY,SAAU,KAAMgB,EAC1D,SAAA,CAAAH,EACD9B,EAAAA,IAACoB,EAAAA,OAAA,CAAO,IAAK,CAAA,CAAG,CAAA,CAAA,CAClB,CAAA,CAAA,CAAA,CAGN,qFCtEamB,EAAeC,EAAAA,WAC1B,SAAU,CAAE,SAAAC,EAAU,UAAAjB,EAAW,GAAGrC,CAAA,EAAeQ,EAAK,CACtD,OACEK,EAAAA,IAACW,EAAAA,WAAA,CACE,GAAGxB,EACJ,IAAAQ,EACA,UAAWuC,EACTC,EAAO,aACPM,GAAYN,EAAO,SACnBX,CAAA,CACF,CAAA,CAGN,CACF,ECnBakB,GAA+CC,GAExD3C,MAAC4C,EAAAA,SAAQ,WAAY,SAAU,QAAS,KAAM,GAAI,KAAO,GAAGD,CAAA,CAAc,ECcjEE,GAA0D,CAAC,CACtE,QAAAC,EACA,SAAAjB,EACA,SAAA7C,EACA,OAAAC,EACA,GAAG8D,CACL,IAAM,CACJ,KAAM,CAAC3D,EAAA,CAAUE,EAAOC,CAAM,EAAIC,EAAAA,WAAW,EAAK,EAElD,OACEQ,EAAAA,IAACE,EAAAA,kBAAA,CACC,cAAgBC,GACdH,EAAAA,IAACuC,EAAA,CAAc,GAAGQ,EAAoB,GAAG5C,EAAO,QAASZ,EAAQ,EAEnE,KAAMH,EACN,eAAgBE,EAChB,OAAAL,EACA,SAAAD,EAEA,gBAACgE,MAAA,CACE,SAAA,CAAAF,GAAWA,EAAQ,CAAE,MAAAxD,EAAO,EAC5BuC,CAAA,CAAA,CACH,CAAA,CAAA,CAGN,qIC5BaoB,GAA2BT,EAAAA,WAGtC,SACA,CACE,MAAAU,EACA,OAAAC,EAAS,GACT,UAAA3B,EACA,eAAA4B,EACA,cAAAC,EACA,KAAAC,EAAOC,EAAAA,gBACP,GAAGpE,CACL,EACAQ,EACA,CACA,MAAM6D,EAAWN,EAAQ,EAEzB,OACElD,EAAAA,IAACyD,EAAAA,WAAA,CACE,GAAGtE,EACJ,IAAAQ,EACA,SAAU2D,EACV,UAAWpB,EACTC,EAAO,yBACPgB,GAAUhB,EAAO,OACjBqB,GAAYrB,EAAO,SACnBX,CAAA,EAEF,MAAOgC,EAAW,OAAON,CAAK,EAAI,OAClC,eAAgBhB,EAAGkB,EAAgBjB,EAAO,KAAK,EAC/C,cAAeD,EAAGmB,EAAelB,EAAO,IAAI,CAAA,CAAA,CAGlD,CAAC,2NCvCYuB,GAAsD,CAAC,CAClE,YAAAC,EAAc,SACd,UAAAnC,EACA,iBAAAoC,EACA,gBAAAC,EACA,mBAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAEIhE,EAAAA,IAACiE,EAAAA,UAAA,CACC,iBAAkB/B,EAChBC,EAAO,yBACP0B,EAAkB1B,EAAO,WAAa,OACtCyB,CAAA,EAEF,UAAW1B,EAAGC,EAAO,uBAAwBX,CAAS,EACtD,YAAAmC,EACA,MAAAI,EACA,YACEA,GAASF,EACP7D,EAAAA,IAACkE,EAAAA,gBAAA,CACC,UAAW/B,EAAO,YAClB,KAAMgC,EAAAA,WACN,QAAS,QACT,QAASL,CAAA,CAAA,EAET,OAEL,GAAGE,CAAA,CAAA,0DCxBGI,GAAoD,CAAC,CAChE,UAAA5C,EACA,SAAA6C,EACA,SAAAC,EACA,KAAAhB,EAAOiB,EAAAA,gBACP,mBAAAC,EAAqBF,GAAY,KACjC,GAAGnF,CACL,IAEIa,EAAAA,IAACU,EAAA,CACE,GAAGvB,EACJ,UAAW+C,EAAGC,GAAO,iBAAkBX,CAAS,EAChD,SAAU6C,GAAY,KAAOf,EAAO,OACpC,MAAOgB,GAAYD,EACnB,WAAYC,GAAY,KACxB,mBAAAE,EACA,aAAY,EAAA,CAAA,ECTLC,EAAcjC,EAAAA,WACzB,CAAC,CAAE,YAAAkC,EAAa,aAAAC,EAAc,UAAAC,EAAY,GAAO,GAAGzE,CAAA,EAASR,IAC3DK,EAAAA,IAAC6E,EAAAA,WAAA,CACC,IAAAlF,EACA,WAAU,GACV,SAAU,CAACiF,EACX,SAAU,CAACA,EACX,KAAMF,EACN,MAAOC,EACN,GAAGxE,CAAA,CAAA,CAGV,EC5Ba2E,GAAkD,CAAC,CAC9D,SAAAjD,CACF,IACS7B,EAAAA,IAACsB,EAAAA,OAAA,CAAO,IAAK,EAAI,SAAAO,CAAA,CAAS,ECiBtBkD,GAET,CAAC,CACH,MAAAhB,EACA,cAAAiB,EACA,SAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAEIpF,EAAAA,IAACyE,EAAA,CACC,YACEzE,EAAAA,IAACmB,EAAAA,SAAA,CACC,MAAA4C,EACA,cAAAmB,EACA,cAAAF,EACA,SAAAC,EACA,SAAUE,EACV,QAAUE,GAAOA,EAAG,gBAAA,CAAgB,CAAA,EAGvC,GAAGD,CAAA,CAAA,sFC1CGE,EAET,CAAC,CAAE,SAAAzD,KAEH7B,EAAAA,IAAC,MAAA,CAAI,UAAWmC,GAAO,+BAAiC,SAAAN,EAAS,ECLxD0D,GAET,CAAC,CAAE,SAAA1D,KACL7B,EAAAA,IAACgD,EAAAA,KAAI,QAAO,GAAC,OAAM,GACjB,eAACwC,EAAAA,KAAA,CAAK,QAAS,WAAY,KAAM,UAC9B,SAAA3D,EACH,CAAA,CACF,ECLW4D,GAET,CAAC,CAAE,KAAAC,EAAO,gBAEVxE,OAACI,EAAAA,QAAO,OAAM,GAAC,QAAO,GAAC,KAAM,EAAG,WAAY,SAC1C,SAAA,CAAAtB,MAAC2F,EAAAA,MAAK,KAAMC,EAAAA,UAAW,MAAOC,EAAAA,SAAS,qBAAqB,EAAG,QAC9DC,EAAAA,MAAA,EAAM,EACP9F,MAACwF,EAAAA,MAAK,KAAM,QAAS,MAAOK,EAAAA,SAAS,qBAAqB,EACvD,SAAAH,CAAA,CACH,CAAA,EACF,ECQSK,EAAwC,CAAC,CACpD,KAAAL,EACA,QAAAM,EACA,SAAAnE,EACA,QAAAoE,EACA,KAAA3C,EAAO4C,EAAAA,iBACP,aAAAC,EAAe,KACf,GAAGC,CACL,IAAM,CACJ,MAAMC,EACJ,CAACX,GAAQ,CAACM,EAAU,iCAAmCN,EAEzD,OACE1F,EAAAA,IAACsG,EAAAA,KAAA,CAAM,GAAGF,EACR,SAAApG,EAAAA,IAACuG,EAAAA,SAAA,CACC,SAAArF,EAAAA,KAACI,SAAA,CAAO,QAAS,EAAG,IAAK,EAAG,WAAY,SACtC,SAAA,CAAAJ,EAAAA,KAACI,EAAAA,OAAA,CAAO,WAAY,SAClB,SAAA,CAAAtB,EAAAA,IAAC8F,EAAAA,MAAA,CAAM,IAAK,CAAA,CAAG,EACf9F,EAAAA,IAACwG,EAAAA,YAAA,CAAY,KAAAlD,EAAY,KAAM,IAAA,CAAM,CAAA,EACvC,EACC0C,GAAWhG,EAAAA,IAAC4C,UAAA,CAAQ,GAAIuD,EAAe,SAAAH,EAAQ,EAC/CK,GAAcrG,EAAAA,IAACwF,EAAAA,KAAA,CAAM,SAAAa,CAAA,CAAW,EAChCxE,EACAoE,UACEjD,MAAA,CACC,SAAA,CAAAhD,EAAAA,IAAC8F,EAAAA,MAAA,CAAM,IAAK,CAAA,CAAG,EACdG,CAAA,CAAA,CACH,CAAA,CAAA,CAEJ,EACF,EACF,CAEJ,ECxDaQ,GAA0CtG,GAEnDH,EAAAA,IAACgD,EAAAA,IAAA,CACC,MAAO,OACP,OAAQ,OACR,eAAgB,SAChB,WAAY,SAEZ,SAAAhD,EAAAA,IAAC+F,EAAA,CAAY,GAAG5F,CAAA,CAAO,CAAA,CAAA,ECJhBuG,EAA4C,CAAC,CACxD,KAAAhB,EAAO,YACT,IAEIxE,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,WAAY,SACf,SAAA,CAAAhD,EAAAA,IAAC2G,EAAAA,QAAA,CAAQ,KAAM,OAAA,CAAS,EACxB3G,EAAAA,IAAC8F,EAAAA,MAAA,CAAM,IAAK,CAAA,CAAG,EACf9F,EAAAA,IAAC4C,EAAAA,QAAA,CAAQ,QAAS,KAAO,SAAA8C,CAAA,CAAK,CAAA,EAChC,ECZSkB,GAA8CzG,GAEvDH,EAAAA,IAACgD,EAAAA,IAAA,CACC,MAAO,OACP,OAAQ,OACR,eAAgB,SAChB,WAAY,SAEZ,SAAAhD,EAAAA,IAAC0G,EAAA,CAAc,GAAGvG,CAAA,CAAO,CAAA,CAAA,ECAlB0G,GAAwC,CAAC,CACpD,kBAAAC,EACA,kBAAAC,EACA,WAAAC,EACA,SAAAnF,CACF,IAEIX,OAAC8B,EAAAA,KAAI,OAAQ,SAAU,WAAY6C,EAAAA,SAAS,oBAAoB,EAAG,IAAK,EACtE,SAAA,CAAA3E,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,OAAQ,EACV,SAAA,CAAA8D,GACC5F,EAAAA,KAACD,EAAAA,IAAA,CAAI,QAAS,EAAG,WAAY,SAC3B,SAAA,CAAAjB,EAAAA,IAACiB,EAAAA,IAAA,CAAI,MAAO,OAAQ,OAAQ,OAAQ,EACnC6F,EAAA,CAAkB,EACrB,EAEDC,IAAA,EACAC,SAAelB,EAAAA,MAAA,EAAM,EACrBkB,IAAA,CAAa,EAChB,EACCnF,CAAA,EACH,EC3BSoF,GAA+C9G,GAC1DH,EAAAA,IAACiB,MAAA,CAAI,OAAQ,EAAG,QAAO,GAAE,GAAGd,CAAA,CAAO,ECUxB+G,GAA0C,CAAC,CACtD,KAAA5D,EACA,QAAA0C,EACA,aAAAG,EAAe,KACf,YAAAzB,EACA,aAAAC,CACF,WACG1D,MAAA,CAAI,WAAY,SAAU,IAAK,EAAG,OAAQ,OACzC,SAAA,CAAAC,EAAAA,KAACD,EAAAA,IAAA,CAAI,WAAY,SACf,SAAA,CAAAjB,EAAAA,IAACiB,EAAAA,IAAA,CAAI,MAAO,OAAQ,WAAY,SAC7B,SAAAqC,GAAQtD,EAAAA,IAACwG,EAAAA,YAAA,CAAY,KAAAlD,CAAA,CAAY,CAAA,CACpC,QACCV,EAAAA,QAAA,CAAQ,QAAS,KAAM,GAAIuD,EACzB,SAAAH,CAAA,CACH,CAAA,EACF,EACAhG,EAAAA,IAACiB,EAAAA,IAAA,CAAI,WAAY,SAAW,SAAAyD,EAAY,EACxC1E,EAAAA,IAACiB,EAAAA,KAAI,MAAO,CAAE,WAAY,MAAA,EAAU,WAAY,SAC7C,SAAA0D,CAAA,CACH,CAAA,CAAA,CACF,wFCdWwC,GAA4C,CAAC,CACxD,KAAA7D,EACA,QAAA0C,EACA,YAAAoB,EACA,aAAAzC,EACA,QAAA0C,EACA,mBAAAC,EACA,GAAGC,CACL,IAEIrG,EAAAA,KAAC,OAAI,UAAWiB,EAAO,aAAe,GAAGqF,EAAAA,aAAaD,CAAI,EACxD,SAAA,CAAArG,EAAAA,KAACD,EAAAA,IAAA,CAAI,IAAK,EACP,SAAA,CAAAqC,GACCtD,EAAAA,IAACgD,EAAAA,IAAA,CACC,WAAY,SACZ,eAAgB,SAChB,MAAO,OACP,UAAWb,EAAO,WAElB,SAAAnC,EAAAA,IAACwG,EAAAA,YAAA,CAAY,KAAAlD,EAAY,QAASgE,CAAA,CAAoB,CAAA,CAAA,QAGzD,QAAA,CAAM,QAAAD,EACL,SAAAnG,OAACI,EAAAA,OAAA,CAAO,IAAK,GACX,SAAA,CAAAtB,EAAAA,IAACwF,EAAAA,KAAA,CAAK,QAAS,OAAS,SAAAQ,EAAQ,EAC/B,OAAOoB,GAAgB,SACtBpH,EAAAA,IAACwF,EAAAA,KAAA,CAAK,MAAOK,EAAAA,SAAS,eAAe,EAAI,SAAAuB,CAAA,CAAY,EAErDA,CAAA,CAAA,CAEJ,CAAA,CACF,CAAA,EACF,EACCzC,CAAA,EACH,uLC/CS8C,GAET,CAAC,CAAE,QAAA5I,KAEHqC,EAAAA,KAACI,EAAAA,OAAA,CAAO,WAAYuE,EAAAA,SAAS,oBAAoB,EAC/C,SAAA,CAAA7F,EAAAA,IAAC8F,EAAAA,MAAA,EAAM,EACP5E,EAAAA,KAACD,EAAAA,IAAA,CACC,eAAgB,gBAChB,WAAY,SACZ,KAAM,EACN,OAAQ,EACR,UAAW,OAEX,SAAA,CAAAjB,MAAC0H,EAAAA,aAAY,QAAA7I,EAAkB,EAC/BmB,EAAAA,IAAC2H,EAAAA,UAAA,CAAU,UAAWxF,GAAO,SAAA,CAAW,CAAA,CAAA,CAAA,CAC1C,EACF,ECXSyF,GAA4D,CAAC,CACxE,SAAAC,EACA,QAAAhJ,EACA,MAAAiJ,CACF,IAAM,CAEJ,MAAMC,EAAcD,IADHD,EAAW,aAAe,YAErCG,EAAaH,EAAWI,EAAAA,qBAAuBC,EAAAA,SAErD,aACGrD,EAAAA,WAAA,CAAW,QAAAhG,EAAkB,MAAOkJ,EAAa,SAAUC,EAAY,CAE5E,ECPaG,GAA0C,CAAC,CACtD,UAAA3G,EACA,SAAAK,EACA,aAAAuG,EACA,iBAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,SAAAV,EACA,GAAGW,CACL,IAEItH,OAAC8B,EAAAA,KAAK,GAAGwF,EAAU,UAAWtG,EAAGC,EAAO,YAAaX,CAAS,EAC5D,SAAA,CAAAxB,EAAAA,IAACyH,GAAA,CAA0B,QAASW,CAAA,CAAc,EAClDpI,EAAAA,IAACgD,EAAAA,IAAA,CAAI,UAAWb,EAAO,gBACrB,SAAAjB,EAAAA,KAACI,EAAAA,OAAA,CACC,UAAWa,EAAO,aAClB,eAAgB,gBAChB,KAAM,EACN,IAAK,EACL,OAAQ,EAER,SAAA,CAAAnC,EAAAA,IAACsB,EAAAA,OAAA,CAAO,IAAK,EAAI,SAAAO,CAAA,CAAS,GACxB0G,GAAeF,IACfnH,EAAAA,KAACI,EAAAA,OAAA,CAAO,IAAK,EACV,SAAA,CAAAiH,EACAF,GACCrI,EAAAA,IAAC4H,GAAA,CACC,SAAAC,EACA,QAASS,CAAA,CAAA,QAGZxC,EAAAA,MAAA,CAAA,CAAM,CAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAEJ,CACF,CAAA,EACF,ECrDS2C,EAAcC,EAAAA,cAAmC,EAAK,EAEtDC,EAAiB,IAAMC,EAAAA,WAAWH,CAAW,ECE7CI,GAAgD,CAAC,CAC5D,MAAAf,EACA,GAAGgB,CACL,IAEI9I,EAAAA,IAAC+I,EAAAA,QAAA,CAAQ,MAAAjB,EAAc,UAAW,QAAS,SAAU,SAAS,KAC5D,SAAA9H,EAAAA,IAACgJ,EAAAA,eAAA,CAAgB,GAAGF,CAAA,CAAqB,EAC3C,ECQSG,GAAkD,CAAC,CAC9D,mBAAAC,EACA,mBAAAC,EACA,kBAAAnH,EACA,SAAAH,EACA,YAAA0G,EACA,iBAAAa,EAAmB,YACrB,IAEIlI,EAAAA,KAAC8B,EAAAA,IAAA,CACC,SAAU,QACV,KAAM,EACN,IAAK,EACL,OAAQ,EACR,OAAQ,GACR,QAAS,EACT,IAAK,EACL,OAAQ,UACR,WAAY6C,EAAAA,SAAS,oBAAoB,EAEzC,SAAA,CAAA7F,EAAAA,IAACgJ,EAAAA,eAAA,CAAe,QAAShH,EAAmB,KAAMP,EAAAA,eAAgB,SACjEH,EAAAA,OAAA,CAAO,eAAgB,gBAAiB,KAAM,EAAG,IAAK,EACrD,SAAA,CAAAtB,EAAAA,IAACsB,EAAAA,OAAA,CAAO,IAAK,EACX,SAAAtB,EAAAA,IAACyI,EAAY,SAAZ,CAAqB,MAAO,GAAO,SAAA5G,CAAA,CAAS,CAAA,CAC/C,EACA7B,EAAAA,IAACsB,EAAAA,OAAA,CAAO,IAAK,EACT,UAAAiH,GAAeW,IACfhI,EAAAA,KAACuH,EAAY,SAAZ,CAAqB,MAAO,GAC1B,SAAA,CAAAF,EACAW,GACClJ,EAAAA,IAAC6I,GAAA,CACC,KAAMZ,EAAAA,qBACN,MAAOmB,EACP,QAASD,CAAA,CAAA,CACX,CAAA,CAEJ,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,ECpDOE,EAAwD,CAAC,CACpE,MAAAvB,CACF,IACiBa,EAAA,EAGN,YAIN3F,MAAA,CAAI,OAAQ,OAAQ,eAAgB,SAAU,OAAQ,EACrD,SAAA,CAAAhD,EAAAA,IAAC8F,EAAAA,MAAA,EAAM,QACNN,EAAAA,KAAA,CAAK,QAAS,WAAY,KAAM,UAC9B,SAAAsC,CAAA,CACH,CAAA,EACF,ECRSwB,GAA4C,CAAC,CACxD,MAAAxB,EACA,SAAAyB,EACA,GAAGT,CACL,IACMS,GAAY,KACP,KAIPvJ,EAAAA,IAAC+I,EAAAA,QAAA,CAAQ,MAAAjB,EAAc,UAAW,QAChC,SAAA9H,EAAAA,IAACwJ,EAAAA,mBAAA,CAAmB,KAAMD,EAAW,GAAGT,CAAA,CAAqB,CAAA,CAC/D,ECXSW,GAAmDtJ,GAC/CwI,EAAA,EAGN3I,MAACsJ,GAAA,CAAc,GAAGnJ,CAAA,CAAO,EAG3BH,MAAC0J,EAAAA,eAAA,CAAgB,GAAGvJ,CAAA,CAAO,ECNvBwJ,GAA0D,CAAC,CACtE,SAAA9H,EACA,MAAAiG,EACA,KAAAxE,EACA,cAAAsG,EAAgB,OAClB,IAEI5J,EAAAA,IAACgB,EAAAA,QAAA,CACC,cAAgBb,SAAW6I,EAAAA,eAAA,CAAe,KAAA1F,EAAa,GAAGnD,EAAO,EACjE,UAAW,cACX,QAAS,CAAC,QAAS,OAAO,EAC1B,eAAc,GAEd,SAAAH,EAAAA,IAACgD,EAAAA,IAAA,CACC,SAAU4G,EACV,OAAQ,UACR,QAAS,EACT,OAAQ,EACR,IAAK,EAEL,SAAA1I,EAAAA,KAACuH,EAAY,SAAZ,CAAqB,MAAO,GAC3B,SAAA,CAAAzI,MAACqJ,GAAmB,MAAAvB,EAAc,EACjCjG,CAAA,CAAA,CACH,CAAA,CAAA,CACF,CAAA,ECxBOgI,GAAgE,CAAC,CAC5E,SAAAhI,EACA,MAAAiG,EACA,SAAAyB,EACA,UAAA/H,EACA,cAAAsI,EAAgB,EAClB,IAAM,CACJ,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAkBH,CAAa,EAI/D,OAFenB,EAAA,EAGTY,GAAY,KACP,KAIPvJ,EAAAA,IAAC2J,GAAA,CAAoB,MAAA7B,EAAc,KAAMyB,EACtC,SAAA1H,EACH,EAIF7B,EAAAA,IAAC6E,EAAAA,WAAA,CACC,MAAAiD,EACA,QAAS,IAAMkC,EAAY,CAACD,CAAQ,EACpC,SAAAR,EACA,UAAA/H,EACA,WAAU,GACV,SAAAuI,EACA,SAAUA,EAEV,SAAA/J,EAAAA,IAACsF,GACE,SAAAzD,CAAA,CACH,CAAA,CAAA,CAGN,EChDaqI,GACXC,GAEAnK,EAAAA,IAACoK,EAAAA,cAAA,CACC,MAAOvE,EAAAA,SAAS,qBAAqB,EACpC,GAAGsE,CAAA,CACN,ECAWE,GAET,CAAC,CAAE,iBAAAC,EAAkB,MAAAxC,EAAO,kBAAAyC,EAAmB,aAAAC,KACjDtJ,EAAAA,KAACD,EAAAA,IAAA,CACC,OAAQ,EACR,QAAO,GACP,IAAK,EACL,UAAW,OACX,eAAgB,gBAChB,WAAY,SACZ,WAAY4E,EAAAA,SAAS,kBAAkB,EACvC,KAAM,EACN,aAAc,4BAEd,SAAA,CAAA3E,EAAAA,KAACD,EAAAA,IAAA,CAAI,WAAY,SAAU,IAAK,EAC7B,SAAA,CAAAqJ,GAAoB,MAAQxC,GAAS,KACpC9H,EAAAA,IAACiB,EAAAA,KAAI,WAAY,SACd,SAAAqJ,GAAoB,KACnBpJ,EAAAA,KAAAjB,EAAAA,SAAA,CACE,SAAA,CAAAD,EAAAA,IAACwF,EAAAA,MAAM,SAAA8E,CAAA,CAAiB,QACvBxE,EAAAA,MAAA,EAAM,SACNN,EAAAA,KAAA,CAAK,SAAA,CAAA,OAAK8E,IAAqB,EAAI,GAAK,IAAI,WAAA,CAAA,CAAS,CAAA,EACxD,EACExC,GAAS,KACX9H,EAAAA,IAAAC,EAAAA,SAAA,CAAG,gBAAO6H,GAAU,SAAW9H,EAAAA,IAACwF,OAAA,CAAM,SAAAsC,CAAA,CAAM,EAAUA,EAAM,EAC1D,KACN,EACE,KACHyC,GAAqBvK,EAAAA,IAACiB,EAAAA,IAAA,CAAK,SAAAsJ,CAAA,CAAkB,CAAA,EAChD,EACAvK,EAAAA,IAACiB,EAAAA,IAAA,CAAI,IAAK,EAAI,SAAAuJ,CAAA,CAAa,CAAA,CAAA,CAC7B,ECrCWC,GAET,CAAC,CAAE,SAAA5I,KAEH7B,MAACiB,EAAAA,KAAI,QAAS,GAAK,OAAQ,GAAK,KAAM,EACnC,SAAAY,EACH,gDCES6I,GAA0C,CAAC,CACtD,0BAAAC,EACA,iBAAAC,EACA,SAAA/I,EACA,QAAAgJ,EACA,OAAAC,EACA,GAAG3K,CACL,IAEIe,EAAAA,KAACI,EAAAA,OAAA,CACC,YAAW,cACX,UAAWa,GAAO,YAClB,OAAQ2I,EAAS,MAAQ,OACzB,WAAYjF,EAAAA,SAAS,QAAQ,EAC7B,aAAc,OACd,SAAU,SACV,SAAUgF,EAAU,WAAa,OAChC,GAAGrD,EAAAA,aAAarH,CAAK,EAErB,SAAA,CAAAwK,IAAA,EACD3K,EAAAA,IAACsB,EAAAA,OAAA,CAAO,IAAK,EAAI,SAAAO,CAAA,CAAS,EACzB+I,UACEtJ,SAAA,CACC,SAAA,CAAAtB,MAACiB,EAAAA,KAAI,OAAQ,EAAG,eAAgB,WAC7B,aACH,QACC8J,EAAAA,QAAA,CAAA,CAAQ,CAAA,EACX,EAEDF,GACC7K,EAAAA,IAACgD,EAAAA,IAAA,CACC,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,SAAU,WACV,eAAgB,SAChB,WAAY,SACZ,WAAY,2BAEZ,eAAC2D,EAAAA,QAAA,CAAA,CAAQ,CAAA,CAAA,CACX,CAAA,CAAA,ECjDKqE,GAAwC,CAAC,CAAE,SAAAnJ,KAEpD7B,MAACwF,EAAAA,MAAK,QAAS,OAAQ,MAAO,CAAE,SAAU,UACvC,SAAA3D,EACH,ECmBSoJ,GAAgE,CAAC,CAC5E,YAAA7D,EACA,eAAA8D,EACA,gBAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,SAAA5J,EACA,aAAAsE,CACF,IAAM,CACJ,MAAMuF,EACJP,GAAmB,KACf,GACA,MAAM,QAAQA,CAAe,EAC3BA,EAAgB,OAAS,EACzB,CAACQ,EAAAA,gBAAgBR,CAAe,EAExC,cACG7J,SAAA,CACE,SAAA,CAAAmK,IAAA,EACDvK,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,IAAK,EAAG,QAAS,EAAG,OAAQ,EAAG,WAAY6C,EAAAA,SAAS,QAAQ,EAC/D,SAAA,CAAA3E,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,IAAK,GACR,SAAA,CAAA9B,EAAAA,KAACD,EAAAA,IAAA,CACC,eAAgB,gBAChB,WAAY,aACZ,IAAK,EAEL,SAAA,CAAAjB,MAAC4C,EAAAA,QAAA,CAAQ,QAAS,KAAM,GAAIuD,EACzB,SAAAoF,EACH,EACArK,EAAAA,KAACD,EAAAA,IAAA,CAAI,IAAK,EACP,SAAA,CAAAoK,GACCrL,EAAAA,IAACsB,SAAA,CAAO,eAAgB,SAAW,SAAA+J,EAAa,EAElDrL,EAAAA,IAACgL,IAAY,SAAAM,CAAA,CAAU,CAAA,CAAA,CACzB,CAAA,CAAA,CAAA,EAEDE,SACEhG,OAAA,CAAK,QAAS,OAAQ,MAAOK,WAAS,eAAe,EACnD,SAAA2F,CAAA,CACH,CAAA,EAEJ,GACEE,GAAsBN,IACtBlK,EAAAA,KAACI,EAAAA,OAAA,CACC,SAAA,CAAAJ,EAAAA,KAACD,EAAAA,IAAA,CAAI,IAAK,EAAG,SAAU,OACpB,SAAA,CAAAkK,EACAC,GAAepL,EAAAA,IAAC4L,MAAA,CAAI,MAAOR,EAAa,QAAS,SAAA,CAAW,CAAA,EAC/D,QACCtF,EAAAA,MAAA,CAAA,CAAM,CAAA,EACT,EAEDsB,UACE9F,SAAA,CACC,SAAA,CAAAtB,EAAAA,IAACwF,EAAAA,MAAM,SAAA4B,CAAA,CAAY,QAClBtB,EAAAA,MAAA,CAAA,CAAM,CAAA,EACT,EAEDoF,UACE5J,SAAA,CACC,SAAA,CAAAtB,EAAAA,IAACwF,EAAAA,MAAM,SAAA0F,CAAA,CAAe,QACrBpF,EAAAA,MAAA,CAAA,CAAM,CAAA,EACT,EAEDjE,CAAA,CAAA,CACH,CAAA,EACF,CAEJ,EC1FagK,GAET,CAAC,CAAE,YAAAJ,YAEFnK,SAAA,CACE,SAAA,CAAAmK,IAAA,EACDvK,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,IAAK,EAAG,QAAS,EAAG,OAAQ,EAAG,WAAY6C,EAAAA,SAAS,QAAQ,EAC/D,SAAA,CAAA7F,EAAAA,IAACgD,EAAAA,IAAA,CAAI,IAAK,GACR,SAAAhD,EAAAA,IAACiB,EAAAA,IAAA,CACC,eAAgB,gBAChB,WAAY,aACZ,IAAK,EAGH,SAAAjB,EAAAA,IAAC8L,EAAAA,WAAA,CACC,MAAO,OACP,OAAQ,SACR,aAAc,KAAA,CAAA,CAChB,CAAA,EAGN,EACA9L,EAAAA,IAACsB,EAAAA,OAAA,CACC,SAAAtB,EAAAA,IAAC8L,EAAAA,WAAA,CAAW,MAAO,QAAS,OAAQ,SAAU,aAAc,KAAA,CAAO,CAAA,CACrE,EACA9L,EAAAA,IAACsB,EAAAA,OAAA,CACC,SAAAtB,EAAAA,IAAC8L,EAAAA,WAAA,CAAW,MAAO,QAAS,OAAQ,SAAU,aAAc,KAAA,CAAO,CAAA,CACrE,CAAA,CAAA,CACF,CAAA,EACF,EC9BSC,GAA0D,CAAC,CACtE,MAAAjE,EACA,SAAAjG,CACF,IAEIX,EAAAA,KAAC8B,EAAAA,IAAA,CAAI,WAAY6C,EAAAA,SAAS,UAAU,EAAG,OAAQ,EAAG,QAAS,EAAG,IAAK,EACjE,SAAA,CAAA7F,EAAAA,IAAC4C,EAAAA,SAAQ,QAAS,KAAM,GAAI,KAAM,MAAO,QACtC,SAAAkF,CAAA,CACH,EACCjG,CAAA,EACH,ECgBSmK,GAAwD,CAAC,CACpE,MAAAT,EACA,QAAAU,EAAU,SACV,QAAApB,EACA,SAAAqB,EACA,gBAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,mBAAAC,EACA,0BAAAC,EACA,SAAA1K,EACA,GAAG1B,CACL,IAAM,CACJ,KAAM,CAAE,cAAAqM,CAAA,EAAkBC,+BAAA,EAEpBC,EAAWC,EAAAA,cAAc,CAC7B,MAAO,oBAAA,CACR,EAKKC,EAJgBD,EAAAA,cAAc,CAClC,MAAO,oBAAA,CACR,GAEmCD,GAAYF,EAAgB,IAE1DK,EAAiBhC,EAAU,SAAWoB,EAEtCa,EAAiBC,GAAcF,CAAc,EAC7CG,EAAkBnH,EAAAA,SAAS,QAAQ,EACnCoH,EAAYC,GAAaL,CAAc,EAE7C,OACE3L,EAAAA,KAAC8B,EAAAA,IAAA,CACC,YAAW,qBACX,aAAc,OACd,OAAQ,MACR,SAAU,SACV,SAAU6H,EAAU,WAAa,OAChC,GAAGrD,EAAAA,aAAarH,CAAK,EAEtB,SAAA,CAAAe,EAAAA,KAACD,EAAAA,IAAA,CAAI,KAAM,EACR,SAAA,CAAA,CAAC2L,GACA5M,MAACgD,EAAAA,IAAA,CAAI,KAAM,EAAG,eAAgB,SAAU,WAAY8J,EACjD,SAAAZ,GAAYlM,MAAC2F,EAAAA,MAAK,MAAOsH,EAAW,KAAMf,EAAU,KAAM,GAAI,EACjE,EAEFlM,EAAAA,IAACgD,EAAAA,IAAA,CAAI,KAAM,EAAG,OAAQ,EAAG,QAAS,EAAG,WAAYgK,EAC/C,SAAA9L,EAAAA,KAACI,EAAAA,OAAA,CAAO,IAAK,EACV,SAAA,CAAAiK,GACCrK,EAAAA,KAACD,EAAAA,IAAA,CAAI,eAAgB,gBACnB,SAAA,CAAAC,EAAAA,KAACD,EAAAA,IAAA,CAAI,IAAK,EAAG,WAAY,SACtB,SAAA,CAAA2L,GAAaT,GACZnM,EAAAA,IAACwG,EAAAA,YAAA,CAAY,KAAM2F,EAAiB,KAAM,SAAU,QAErD3G,EAAAA,KAAA,CAAK,QAAS,OAAQ,KAAM,QAC1B,SAAA+F,CAAA,CACH,CAAA,EACF,EACCsB,GAAkB,UAAYR,IAAA,CAAqB,EACtD,EAEFrM,MAACsB,EAAAA,QAAO,MAAO,CAAE,QAASuJ,EAAU,EAAI,QACrC,SAAAhJ,EACH,EACCyK,GACCtM,EAAAA,IAACiB,EAAAA,IAAA,CAAI,MAAO,CAAE,QAAS4J,EAAU,EAAI,MAAA,EAClC,SAAAyB,EAAA,CAAmB,CACtB,QAED,MAAA,EAAI,EACLpL,EAAAA,KAACD,EAAAA,IAAA,CACC,eAAgB,gBAChB,WAAY,SACZ,IAAK,EACL,SAAU,OAET,SAAA,CAAAsL,aAAkC,MAAA,EAAI,EACtCH,IAAA,CAAe,CAAA,CAAA,CAClB,CAAA,CACF,CAAA,CACF,CAAA,EACF,EAECvB,GACC7K,EAAAA,IAACgD,EAAAA,IAAA,CACC,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,SAAU,WACV,eAAgB,SAChB,WAAY,SACZ,WAAY,2BAEZ,eAAC2D,EAAAA,QAAA,CAAA,CAAQ,CAAA,CAAA,CACX,CAAA,CAAA,CAIR,EAEMuG,GACJjB,GACuB,CACvB,OAAQA,EAAA,CACN,IAAK,OACH,OAAOpG,EAAAA,SAAS,QAAQ,EAC1B,IAAK,UACH,OAAOA,EAAAA,SAAS,QAAQ,EAC1B,IAAK,SACH,OAAOA,EAAAA,SAAS,UAAU,EAC5B,QACEsH,EAAAA,2BAA2BlB,CAAO,CAAA,CAExC,EAEMc,GACJd,GACuB,CACvB,OAAQA,EAAA,CACN,IAAK,OACH,OAAOpG,EAAAA,SAAS,UAAU,EAC5B,IAAK,UACH,OAAOA,EAAAA,SAAS,UAAU,EAC5B,IAAK,SACH,OAAOA,EAAAA,SAAS,kBAAkB,EACpC,QACEsH,EAAAA,2BAA2BlB,CAAO,CAAA,CAExC,ECzJamB,GAET,CAAC,CAAE,SAAAlB,EAAU,GAAG/L,KAEhBH,EAAAA,IAACgD,EAAAA,IAAA,CACC,aAAc,OACd,OAAQ,MACR,SAAU,SACT,GAAGwE,EAAAA,aAAarH,CAAK,EAEtB,SAAAe,EAAAA,KAACD,EAAAA,IAAA,CAAI,KAAM,EACT,SAAA,CAAAjB,EAAAA,IAACgD,EAAAA,IAAA,CACC,KAAM,EACN,eAAgB,SAChB,WAAY6C,EAAAA,SAAS,kBAAkB,EAEtC,SAAAqG,GACClM,MAAC2F,EAAAA,KAAA,CAAK,MAAOE,WAAS,UAAU,EAAG,KAAMqG,EAAU,KAAM,EAAA,CAAI,CAAA,CAAA,EAGjElM,MAACgD,EAAAA,IAAA,CAAI,KAAM,EAAG,OAAQ,EAAG,QAAS,EAAG,WAAY6C,EAAAA,SAAS,QAAQ,EAChE,SAAA3E,EAAAA,KAACI,EAAAA,OAAA,CAAO,IAAK,EACX,SAAA,CAAAtB,EAAAA,IAAC8L,EAAAA,WAAA,CACC,MAAO,QACP,OAAQ,SACR,aAAc,KAAA,CAAA,QAEfA,EAAAA,WAAA,CAAW,MAAO,OAAQ,OAAQ,SAAU,aAAc,MAAO,EAClE9L,EAAAA,IAAC8L,EAAAA,WAAA,CACC,MAAO,QACP,OAAQ,SACR,aAAc,KAAA,CAAA,CAChB,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,ECnCAuB,EAAuC,CAC3C,eACA,SACA,SACA,cACA,SACF,EAEaC,EAAgB,IAAM,CACjC,MAAMZ,EAAWC,EAAAA,cAAc,CAC7B,MAAO,oBAAA,CACR,EAEKY,EAAgBZ,EAAAA,cAAc,CAClC,MAAO,oBAAA,CACR,EAEKa,EAAWb,EAAAA,cAAc,CAC7B,MAAO,qBAAA,CACR,EAEKc,EAAed,EAAAA,cAAc,CACjC,MAAO,qBAAA,CACR,EAYD,MAAO,CAAE,WAVsBY,EAC3B,eACAb,EACE,SACAc,EACE,SACAC,EACE,cACA,SAED,CACX,EAEaC,EAAuB,CAClCC,EACAC,IAEAD,IAAiBC,GACjBP,EAAkB,QAAQM,CAAY,EAAIN,EAAkB,QAAQO,CAAI,EAE7DC,GAAuBC,GAAuC,CACzE,KAAM,CAAE,WAAAC,CAAA,EAAeT,EAAA,EAOvB,MAAO,CACL,QANczN,EAAAA,QACd,IAAM6N,EAAqBK,EAAYD,CAAsB,EAC7D,CAACC,EAAYD,CAAsB,CAAA,CAInC,CAEJ,ECzBaE,EAET,CAAC,CACH,OAAA5O,EACA,aAAA6O,EACA,cAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,eAAAlN,EACA,OAAAmN,CACF,IAAM,CACJ,MAAMC,EAAgB/O,EAAAA,OAAsB,IAAI,EAE1C,CAAE,WAAAqO,CAAA,EAAeT,EAAA,EACjBoB,EAA6BX,IAAe,SAE5C,CAACzL,EAAOqM,CAAQ,EAAI1E,EAAAA,SAASgE,GAAgB,CAAC,EAE9CW,EAAc,CAAC,CAAE,MAAOC,KAAiC,CAC7DF,EAASE,CAAO,EAChBX,IAAgBW,CAAO,CACzB,EAEMC,EAASjP,EAAAA,QAAQ,IAAM2O,EAAO,IAAKO,GAAUC,GAAQD,CAAK,CAAC,EAAG,CAACP,CAAM,CAAC,EAE5E,OACExO,EAAAA,IAACiP,EAAA,CACC,KAAM7P,EACN,MAAOiC,EACP,MAAAiB,EACA,QAAS,CAAC4M,EAAMC,EAASC,EAAQ,EACjC,OAAAN,EACA,GAAI,CAAE,KAAMF,CAAA,EACZ,UAAW,CAAE,KAAM,CAAA,EACnB,WAAY,CACV,gBAAiB,GACjB,qBAAsB,GACtB,IAAKH,CAAA,EAEP,QAAS,CACP,UAAW,CACT,MAAO,CACL,OAAQ,OACR,MAAO,QACP,SAAU,SACV,WAAY,0BAAA,CACd,CACF,EAEF,OAAQ,CACN,WAAaY,GACXX,UACGzN,EAAAA,IAAA,CAAI,IAAK,EAAG,OAAQ,EACnB,SAAA,CAAAjB,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY2N,EACZ,SAAUkB,EAAAA,gBACV,KAAM,QACN,QAAS,IAAMD,EAAE,OAAA,CAAO,CAAA,EAE1BrP,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY4N,EACZ,SAAUkB,EAAAA,iBACV,KAAM,QACN,QAAS,IAAMF,EAAE,QAAA,CAAQ,CAAA,CAC3B,EACF,EAEJ,WAAY,IACVb,EAAO,OAAS,GAChBE,GACE1O,EAAAA,IAACoB,SAAA,CAAO,IAAK,EAAG,UAAW,wBACzB,SAAApB,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY0N,EACZ,SAAUqB,EAAAA,eACV,KAAM,QACN,QAAS,IAAMf,EAAc,SAAS,KAAA,CAAK,CAAA,EAE/C,EAEJ,WAAY,IACVD,EAAO,OAAS,GAChBE,GACE1O,EAAAA,IAACoB,SAAA,CAAO,IAAK,EAAG,UAAW,wBACzB,SAAApB,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY6N,EACZ,SAAUmB,EAAAA,gBACV,KAAM,QACN,QAAS,IAAMhB,EAAc,SAAS,KAAA,CAAK,CAAA,EAE/C,EAEJ,YAAa,IACXzO,EAAAA,IAACoB,SAAA,CACC,SAAApB,EAAAA,IAACO,EAAAA,cAAA,CACC,QAAS,SACT,aAAYgO,EACZ,SAAUmB,EAAAA,gBACV,KAAM,QACN,QAAS,IAAMjB,EAAc,SAAS,MAAA,CAAM,CAAA,CAC9C,CACF,CAAA,CAEJ,CAAA,CAGN,EAEMO,GAAWD,IAOH,CACZ,IAAKA,EAAM,IACX,MAAOA,EAAM,MACb,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,MAAOA,EAAM,MACb,YAAaA,EAAM,WACrB,GChIaY,GAA8C,CAAC,CAC1D,OAAAnB,EACA,aAAAP,EACA,iBAAAE,EACA,eAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,cAAAC,CACF,IAAM,CACJ,MAAME,EAAgB/O,EAAAA,OAAsB,IAAI,EAC1C,CAACN,EAAQwQ,CAAS,EAAI3F,EAAAA,SAAS,EAAK,EACpC,CAAC3H,EAAOqM,CAAQ,EAAI1E,EAAAA,SAASgE,GAAgB,CAAC,EAE9C4B,EAAUC,EAAAA,YAAY,IAAM,CAChCF,EAAU,EAAI,CAChB,EAAG,CAAA,CAAE,EAECG,EAAYD,EAAAA,YAAY,IAAM,CAClCF,EAAU,EAAK,CACjB,EAAG,CAAA,CAAE,EAEChB,EAAc,CAAC,CAAE,MAAOC,CAAA,IAC5BF,EAASE,CAAO,EAElBmB,EAAAA,UAAU,IAAM,CACdrB,EAASV,GAAgB,CAAC,CAC5B,EAAG,CAACA,CAAY,CAAC,EAEjB,MAAMa,EAASjP,EAAAA,QAAQ,IAAM2O,EAAO,IAAIQ,EAAO,EAAG,CAACR,CAAM,CAAC,EAEpDyB,EAAmBpQ,EAAAA,QAAQ,IACxB2O,EAAO,IAAKO,GACjBA,EAAM,gBACF,CACE,GAAGA,EACH,IAAKA,EAAM,gBAAgB,IAC3B,MAAOA,EAAM,gBAAgB,MAC7B,OAAQA,EAAM,gBAAgB,MAAA,EAEhCA,CAAA,EAEL,CAACP,CAAM,CAAC,EAEX,OACEtN,EAAAA,KAACgP,EAAAA,oBAAA,CAAoB,YAAa,SAChC,SAAA,CAAAlQ,EAAAA,IAACiP,EAAA,CACC,WAAY,CAAE,IAAKR,CAAA,EACnB,MAAAnM,EACA,OAAAwM,EACA,QAAS,CAACqB,CAAM,EAChB,GAAI,CACF,KAAMvB,EACN,MAAOiB,CAAA,EAET,SAAU,CACR,QAAS,EACT,QAAS,EACT,SAAU,OAAA,EAEZ,OAAQ,CACN,WAAY,IACVrB,EAAO,OAAS,GACdxO,EAAAA,IAACoB,EAAAA,OAAA,CAAO,UAAW,wBACjB,SAAApB,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY0N,EACZ,SAAUqB,EAAAA,eACV,QAAS,IAAMf,EAAc,SAAS,KAAA,CAAK,CAAA,EAE/C,EAEJ,WAAY,IACVD,EAAO,OAAS,GACdxO,EAAAA,IAACoB,EAAAA,OAAA,CAAO,UAAW,wBACjB,SAAApB,EAAAA,IAACS,EAAAA,gBAAA,CACC,aAAY6N,EACZ,SAAUmB,EAAAA,gBACV,QAAS,IAAMhB,EAAc,SAAS,KAAA,CAAK,CAAA,CAC7C,CACF,CAAA,EAGN,OAAQ,CACN,OAAQ,CACN,OAAQ,MAAA,CACV,EAEF,OAAQ,CACN,MAAO,CACL,MAAO,OACP,SAAU,QACV,YAAa,QACb,OAAQ,QAAA,CACV,CACF,CAAA,EAGDrP,GACCY,EAAAA,IAACgO,EAAA,CACC,OAAQ,GACR,eAAgB+B,EAChB,aAAczN,EACd,cAAeqM,EACf,OAAQsB,EACR,iBAAA9B,EACA,aAAAG,EACA,cAAAC,EACA,eAAAH,EACA,gBAAAC,CAAA,CAAA,CACF,EAEJ,CAEJ,EAEMW,GAAWD,IAOH,CACZ,IAAKA,EAAM,IACX,MAAOA,EAAM,MACb,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,MAAOA,EAAM,MACb,YAAaA,EAAM,WACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/panels",
3
- "version": "23.3.0",
3
+ "version": "23.3.1",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "mattias800",
@@ -37,11 +37,11 @@
37
37
  "deploy": "gh-pages -d example/build"
38
38
  },
39
39
  "dependencies": {
40
- "@stenajs-webui/core": "23.3.0",
41
- "@stenajs-webui/elements": "23.3.0",
42
- "@stenajs-webui/forms": "23.3.0",
43
- "@stenajs-webui/theme": "23.3.0",
44
- "@stenajs-webui/tooltip": "23.3.0",
40
+ "@stenajs-webui/core": "23.3.1",
41
+ "@stenajs-webui/elements": "23.3.1",
42
+ "@stenajs-webui/forms": "23.3.1",
43
+ "@stenajs-webui/theme": "23.3.1",
44
+ "@stenajs-webui/tooltip": "23.3.1",
45
45
  "classnames": "^2.5.1",
46
46
  "date-fns": "4.1.0",
47
47
  "react-responsive": "^10.0.1",
@@ -73,7 +73,7 @@
73
73
  "files": [
74
74
  "dist"
75
75
  ],
76
- "gitHead": "f77611c000c9f603782fc05c8ce49cc6ec0ef39f",
76
+ "gitHead": "e418f810f79f6a3a0e3645774933356bf9a700bf",
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  }