@stenajs-webui/panels 23.13.2 → 23.13.3
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.es.js +2 -2
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.es.js
CHANGED
|
@@ -125,9 +125,9 @@ const Q = ({
|
|
|
125
125
|
justifyContent: "flex-start",
|
|
126
126
|
alignItems: "center",
|
|
127
127
|
children: [
|
|
128
|
-
/* @__PURE__ */ i(c, { width: "86px", alignItems: "center", children: [
|
|
128
|
+
r && /* @__PURE__ */ i(c, { width: "86px", alignItems: "center", children: [
|
|
129
129
|
/* @__PURE__ */ e(w, {}),
|
|
130
|
-
|
|
130
|
+
/* @__PURE__ */ e(cn, { onClick: s })
|
|
131
131
|
] }),
|
|
132
132
|
n && /* @__PURE__ */ i(z, { children: [
|
|
133
133
|
n,
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.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/NavBarLink.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/SelectedItemsTextProvider.ts","../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/ProductSummaryCardImage.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 { FlatButtonLink, FlatButtonLinkProps } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport styles from \"./NavBarLink.module.css\";\n\nexport interface NavBarLinkProps extends FlatButtonLinkProps {\n /** Highlights the link to indicate it represents the current page or section. */\n selected?: boolean;\n}\n\nexport const NavBarLink = forwardRef<HTMLAnchorElement, NavBarLinkProps>(\n function NavBarLink({ selected, className, ...props }, ref) {\n return (\n <FlatButtonLink\n {...props}\n ref={ref}\n className={cx(\n styles.navBarLink,\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 textAlign={\"center\"}>{activeText}</Text>}\n {children}\n {buttons && (\n <Box>\n <Space num={2} />\n <Box gap={2}>{buttons}</Box>\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 spacing={6}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <ErrorPanel {...props} />\n </Box>\n );\n};\n","import { Box, getDataProps, Heading, Space } from \"@stenajs-webui/core\";\nimport { ScreenSpinner } 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,\n ...props\n}) => {\n return (\n <Box alignItems={\"center\"} {...getDataProps(props)}>\n <ScreenSpinner />\n {text && (\n <>\n <Space num={4} />\n <Heading variant={\"h4\"}>{text}</Heading>\n </>\n )}\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 spacing={6}\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 {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 {icon && (\n <Row width={\"64px\"} alignItems={\"center\"}>\n <CircledIcon icon={icon} />\n </Row>\n )}\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 {\n pluralFormatter,\n PluralForms,\n selectPluralRule,\n} from \"@stenajs-webui/core\";\n\nexport const getSelectedItemsText = (\n numItemsSelected: number | undefined,\n pluralForms: PluralForms,\n localeId: string,\n): string => {\n if (numItemsSelected == null) {\n return \"\";\n }\n const pluralFormat = pluralFormatter(selectPluralRule(localeId));\n const template = pluralFormat(numItemsSelected, pluralForms) ?? \"\";\n return template.replace(\"{ITEMS}\", String(numItemsSelected));\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { PluralForms, Row, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { getSelectedItemsText } from \"./SelectedItemsTextProvider\";\n\nexport interface SelectedItemsActionsPanelProps {\n numItemsSelected?: number;\n label?: ReactNode | string;\n selectedLabel?: PluralForms;\n afterLabelContent?: ReactNode;\n rightContent?: ReactNode;\n localeId?: string;\n}\n\nexport const SelectedItemsActionsPanel: React.FC<\n SelectedItemsActionsPanelProps\n> = ({\n numItemsSelected,\n label,\n selectedLabel = {\n one: \"{ITEMS} item selected\",\n other: \"{ITEMS} items selected\",\n },\n afterLabelContent,\n rightContent,\n localeId = \"en-GB\",\n}) => {\n const selectedItemsText = getSelectedItemsText(\n numItemsSelected,\n selectedLabel,\n localeId,\n );\n\n return (\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 <Text>{selectedItemsText}</Text>\n ) : label != null ? (\n typeof label === \"string\" ? (\n <Text>{label}</Text>\n ) : (\n label\n )\n ) : null}\n </Row>\n ) : null}\n {afterLabelContent && <Row>{afterLabelContent}</Row>}\n </Row>\n <Row gap={2}>{rightContent}</Row>\n </Row>\n );\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 renderLeft?: () => ReactNode;\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 renderLeft,\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 {renderLeft?.()}\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 * as React from \"react\";\nimport styles from \"./ProductSummaryCardImage.module.css\";\n\nexport interface ProductSummaryCardImageProps {\n src: string;\n alt: string;\n}\n\nexport const ProductSummaryCardImage: React.FC<\n ProductSummaryCardImageProps\n> = ({ src, alt }) => {\n return <img src={src} alt={alt} className={styles.productSummaryCardImage} />;\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","NavBarLink","FlatButtonLink","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","getDataProps","ScreenSpinner","LoadingScreen","PageHeader","renderBreadCrumbs","renderPageHeading","renderTabs","PageHeaderRow","PageHeading","SelectionRow","description","htmlFor","circledIconVariant","rest","SidebarMenuCloseButtonRow","CloseButton","StenaFlag","SidebarMenuPinButton","isPinned","label","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","getSelectedItemsText","numItemsSelected","pluralForms","localeId","pluralFormatter","selectPluralRule","SelectedItemsActionsPanel","selectedLabel","afterLabelContent","rightContent","selectedItemsText","SelectedItemsActionsPadding","ProductCard","renderSelectedProductCard","renderEditButton","loading","shadow","Spacing","Spinner","LargePrice","ProductCardContentItem","subDescription","descriptionTags","capacityTag","offerCodeTag","priceText","title","subTitle","renderImage","hasDescriptionTags","isEmptyFragment","Tag","ProductCardContentItemSkeletor","ShimmerBox","SelectedProductCard","ProductSummaryCard","variant","iconLeft","compactIconLeft","renderLeft","renderButton","renderOfferCodeTag","renderMandatoryTag","renderContentLeftOfButton","fontSizeRatio","useAccessibleFontSizeContext","isMobile","useMediaQuery","isCompact","visibleVariant","leftBackground","getBackground","rightBackground","iconColor","getIconColor","exhaustSwitchCaseElseThrow","ProductSummaryCardImage","src","alt","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.es.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/NavBarLink.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/SelectedItemsTextProvider.ts","../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/ProductSummaryCardImage.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 {showMenuButton && (\n <Row width={\"86px\"} alignItems={\"center\"}>\n <Indent />\n <NavBarSideMenuButton onClick={onClickMenuButton} />\n </Row>\n )}\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 { FlatButtonLink, FlatButtonLinkProps } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nimport styles from \"./NavBarLink.module.css\";\n\nexport interface NavBarLinkProps extends FlatButtonLinkProps {\n /** Highlights the link to indicate it represents the current page or section. */\n selected?: boolean;\n}\n\nexport const NavBarLink = forwardRef<HTMLAnchorElement, NavBarLinkProps>(\n function NavBarLink({ selected, className, ...props }, ref) {\n return (\n <FlatButtonLink\n {...props}\n ref={ref}\n className={cx(\n styles.navBarLink,\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 textAlign={\"center\"}>{activeText}</Text>}\n {children}\n {buttons && (\n <Box>\n <Space num={2} />\n <Box gap={2}>{buttons}</Box>\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 spacing={6}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n >\n <ErrorPanel {...props} />\n </Box>\n );\n};\n","import { Box, getDataProps, Heading, Space } from \"@stenajs-webui/core\";\nimport { ScreenSpinner } 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,\n ...props\n}) => {\n return (\n <Box alignItems={\"center\"} {...getDataProps(props)}>\n <ScreenSpinner />\n {text && (\n <>\n <Space num={4} />\n <Heading variant={\"h4\"}>{text}</Heading>\n </>\n )}\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 spacing={6}\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 {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 {icon && (\n <Row width={\"64px\"} alignItems={\"center\"}>\n <CircledIcon icon={icon} />\n </Row>\n )}\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 {\n pluralFormatter,\n PluralForms,\n selectPluralRule,\n} from \"@stenajs-webui/core\";\n\nexport const getSelectedItemsText = (\n numItemsSelected: number | undefined,\n pluralForms: PluralForms,\n localeId: string,\n): string => {\n if (numItemsSelected == null) {\n return \"\";\n }\n const pluralFormat = pluralFormatter(selectPluralRule(localeId));\n const template = pluralFormat(numItemsSelected, pluralForms) ?? \"\";\n return template.replace(\"{ITEMS}\", String(numItemsSelected));\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { PluralForms, Row, Text } from \"@stenajs-webui/core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { getSelectedItemsText } from \"./SelectedItemsTextProvider\";\n\nexport interface SelectedItemsActionsPanelProps {\n numItemsSelected?: number;\n label?: ReactNode | string;\n selectedLabel?: PluralForms;\n afterLabelContent?: ReactNode;\n rightContent?: ReactNode;\n localeId?: string;\n}\n\nexport const SelectedItemsActionsPanel: React.FC<\n SelectedItemsActionsPanelProps\n> = ({\n numItemsSelected,\n label,\n selectedLabel = {\n one: \"{ITEMS} item selected\",\n other: \"{ITEMS} items selected\",\n },\n afterLabelContent,\n rightContent,\n localeId = \"en-GB\",\n}) => {\n const selectedItemsText = getSelectedItemsText(\n numItemsSelected,\n selectedLabel,\n localeId,\n );\n\n return (\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 <Text>{selectedItemsText}</Text>\n ) : label != null ? (\n typeof label === \"string\" ? (\n <Text>{label}</Text>\n ) : (\n label\n )\n ) : null}\n </Row>\n ) : null}\n {afterLabelContent && <Row>{afterLabelContent}</Row>}\n </Row>\n <Row gap={2}>{rightContent}</Row>\n </Row>\n );\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 renderLeft?: () => ReactNode;\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 renderLeft,\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 {renderLeft?.()}\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 * as React from \"react\";\nimport styles from \"./ProductSummaryCardImage.module.css\";\n\nexport interface ProductSummaryCardImageProps {\n src: string;\n alt: string;\n}\n\nexport const ProductSummaryCardImage: React.FC<\n ProductSummaryCardImageProps\n> = ({ src, alt }) => {\n return <img src={src} alt={alt} className={styles.productSummaryCardImage} />;\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","NavBarLink","FlatButtonLink","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","getDataProps","ScreenSpinner","LoadingScreen","PageHeader","renderBreadCrumbs","renderPageHeading","renderTabs","PageHeaderRow","PageHeading","SelectionRow","description","htmlFor","circledIconVariant","rest","SidebarMenuCloseButtonRow","CloseButton","StenaFlag","SidebarMenuPinButton","isPinned","label","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","getSelectedItemsText","numItemsSelected","pluralForms","localeId","pluralFormatter","selectPluralRule","SelectedItemsActionsPanel","selectedLabel","afterLabelContent","rightContent","selectedItemsText","SelectedItemsActionsPadding","ProductCard","renderSelectedProductCard","renderEditButton","loading","shadow","Spacing","Spinner","LargePrice","ProductCardContentItem","subDescription","descriptionTags","capacityTag","offerCodeTag","priceText","title","subTitle","renderImage","hasDescriptionTags","isEmptyFragment","Tag","ProductCardContentItemSkeletor","ShimmerBox","SelectedProductCard","ProductSummaryCard","variant","iconLeft","compactIconLeft","renderLeft","renderButton","renderOfferCodeTag","renderMandatoryTag","renderContentLeftOfButton","fontSizeRatio","useAccessibleFontSizeContext","isMobile","useMediaQuery","isCompact","visibleVariant","leftBackground","getBackground","rightBackground","iconColor","getIconColor","exhaustSwitchCaseElseThrow","ProductSummaryCardImage","src","alt","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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"}
|