@amboss/design-system 4.4.5 → 4.4.6

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentTable",{enumerable:!0,get:function(){return ContentTable}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_ContentTableContext=require("./ContentTableContext"),StyledTableWrapper=(0,_styled.default)("div",{target:"e1gy9t5n0",label:"StyledTableWrapper"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.m,overflow:"auto"})),StyledTable=(0,_styled.default)("table",{target:"e1gy9t5n1",label:"StyledTable"})(({theme})=>({margin:0,width:"100%",borderLeft:`1px solid ${theme.values.color.divider.primary}`,borderTop:`1px solid ${theme.values.color.divider.primary}`,borderRadius:theme.variables.size.borderRadius.xs,borderSpacing:0,textAlign:"left","th, td":{borderBottom:`1px solid ${theme.values.color.divider.primary}`,borderRight:`1px solid ${theme.values.color.divider.primary}`,padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.xs}`},th:{backgroundColor:theme.values.color.background.secondary.default},"thead tr:first-of-type":{"th:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs},"th:last-of-type":{borderTopRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:last-of-type":{"td:first-of-type":{borderBottomLeftRadius:theme.variables.size.borderRadius.xs},"td:last-of-type":{borderBottomRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:hover td":{backgroundColor:theme.values.color.content.table.row.hover}})),contextValue={fontSizeOffset:-2};function ContentTable({"data-e2e-test-id":dataE2eTestId,wrapperClassName,...rest}){return _react.default.createElement(_ContentTableContext.ContentTableContext.Provider,{value:contextValue},_react.default.createElement(StyledTableWrapper,{className:wrapperClassName},_react.default.createElement(StyledTable,{...rest,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTable"})))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentTable",{enumerable:!0,get:function(){return ContentTable}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_ContentTableContext=require("./ContentTableContext"),StyledTableWrapper=(0,_styled.default)("div",{target:"eauslwy0",label:"StyledTableWrapper"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.m,overflow:"auto"})),StyledTable=(0,_styled.default)("table",{target:"eauslwy1",label:"StyledTable"})(({theme})=>({margin:0,width:"100%",borderLeft:`1px solid ${theme.values.color.divider.primary}`,borderTop:`1px solid ${theme.values.color.divider.primary}`,borderRadius:theme.variables.size.borderRadius.xs,borderSpacing:0,textAlign:"left","th, td":{borderBottom:`1px solid ${theme.values.color.divider.primary}`,borderRight:`1px solid ${theme.values.color.divider.primary}`,padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.xs}`},th:{backgroundColor:theme.values.color.background.secondary.default},"thead tr:first-of-type":{"th:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs},"th:last-of-type":{borderTopRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:last-of-type":{"td:first-of-type":{borderBottomLeftRadius:theme.variables.size.borderRadius.xs},"td:last-of-type":{borderBottomRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:hover td":{backgroundColor:theme.values.color.content.table.row.hover}}));function ContentTable({"data-e2e-test-id":dataE2eTestId,wrapperClassName,...rest}){return _react.default.createElement(_ContentTableContext.ContentTableContext.Provider,{value:_ContentTableContext.contentTableContextValue},_react.default.createElement(StyledTableWrapper,{className:wrapperClassName},_react.default.createElement(StyledTable,{...rest,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTable"})))}
@@ -1,5 +1,6 @@
1
1
  import { type Context } from "react";
2
2
  export type ContentTableContextValue = {
3
- fontSizeOffset: number;
3
+ readonly fontSizeOffset: number;
4
4
  };
5
+ export declare const contentTableContextValue: ContentTableContextValue;
5
6
  export declare const ContentTableContext: Context<ContentTableContextValue | null>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentTableContext",{enumerable:!0,get:function(){return ContentTableContext}});const ContentTableContext=(0,require("react").createContext)(null);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get ContentTableContext(){return ContentTableContext},get contentTableContextValue(){return contentTableContextValue}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _react=require("react"),contentTableContextValue={fontSizeOffset:-2},ContentTableContext=(0,_react.createContext)(null);
@@ -12,6 +12,8 @@ type LabelProps = {
12
12
  export type ContentTableModalProps = PickPreserveOptional<ModalProps, "role" | "onAction" | "portalContainer" | "initialFocus" | "closeButtonAriaLabel" | "data-e2e-test-id" | "children"> & LabelProps & {
13
13
  tableControls?: React.ReactElement;
14
14
  "aria-describedby"?: AriaAttributes["aria-describedby"];
15
+ /** Content rendered in the modal's footer, e.g. legend */
16
+ footer?: React.ReactNode;
15
17
  };
16
- export declare function ContentTableModal({ children, role, onAction, portalContainer, closeButtonAriaLabel, "data-e2e-test-id": dataE2eTestId, initialFocus, tableControls, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, ...restAriaAttributes }: ContentTableModalProps): React.ReactElement;
18
+ export declare function ContentTableModal({ children, role, onAction, portalContainer, closeButtonAriaLabel, "data-e2e-test-id": dataE2eTestId, initialFocus, tableControls, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, footer, ...restAriaAttributes }: ContentTableModalProps): React.ReactElement;
17
19
  export {};
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentTableModal",{enumerable:!0,get:function(){return ContentTableModal}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_Container=require("../../Container/Container"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_PictogramButton=require("../../PictogramButton/PictogramButton"),_mediaQueries=require("../../../shared/mediaQueries"),_useScrollDetection=require("../../../shared/useScrollDetection"),_Lightbox=require("../../Lightbox/Lightbox"),getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=(0,_styled.default)("div",{target:"e1dr36f60",label:"StyledModalWrapper"})(({theme})=>{let fadeInModal=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentTableModal",{enumerable:!0,get:function(){return ContentTableModal}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_Container=require("../../Container/Container"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_PictogramButton=require("../../PictogramButton/PictogramButton"),_mediaQueries=require("../../../shared/mediaQueries"),_useScrollDetection=require("../../../shared/useScrollDetection"),_Lightbox=require("../../Lightbox/Lightbox"),getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=(0,_styled.default)("div",{target:"e2s0lh90",label:"StyledModalWrapper"})(({theme})=>{let fadeInModal=(0,_react.useMemo)(()=>(0,_react1.keyframes)`
2
2
  from {
3
3
  opacity: ${theme.variables.opacity.hidden};
4
4
  transform: translateY(20px);
@@ -7,4 +7,4 @@
7
7
  opacity: ${theme.variables.opacity.visible};
8
8
  transform: translateY(0);
9
9
  }
10
- `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,"&:focus":{outline:"none"},...(0,_mediaQueries.useResponsiveValue)({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,"auto"],maxWidth:[`calc(100% - ${getMobileSpace(theme)} * 2)`,`calc(100% - ${getDesktopSpace(theme)} * 2)`]})}}),StyledInner=(0,_styled.default)("div",{target:"e1dr36f61",label:"StyledInner"})(({theme})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...(0,_mediaQueries.useResponsiveValue)({height:[fullScreenMobile,"auto"],maxHeight:[fullScreenMobile,`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}}),StyledBody=(0,_styled.default)("div",{target:"e1dr36f62",label:"StyledBody"})(({theme,borderTop})=>({height:"auto",overflowY:"auto",maxHeight:"100%",flex:1,...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}})),StyledMaxWidth=(0,_styled.default)("div",{target:"e1dr36f63",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"})),HorizontalOffset=({children,height})=>_react.default.createElement(_Box.Box,{space:["m","xl"],vSpace:"zero",height:height},_react.default.createElement(StyledMaxWidth,null,children));function ContentTableModal({children,role="dialog",onAction,portalContainer,closeButtonAriaLabel="Dismiss Dialog","data-e2e-test-id":dataE2eTestId,initialFocus,tableControls=_react.default.createElement("div",null),"aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,...restAriaAttributes}){let backdropRef=(0,_react.useRef)(null),{scrollableRef,isScrollTop,hasScroll}=(0,_useScrollDetection.useScrollDetection)(),handleClose=()=>{onAction("cancel")},closeButton=_react.default.createElement(_PictogramButton.PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel,"data-modal-close-btn":!0});return _react.default.createElement(_Lightbox.Lightbox,{backdropRef:backdropRef,portalContainer:portalContainer,handleClose:handleClose,isDismissible:!0,initialFocus:initialFocus},_react.default.createElement(StyledModalWrapper,{role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTableModal","aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,...restAriaAttributes,"aria-modal":"true",tabIndex:-1},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(_Box.Box,{space:"zero",vSpace:["m","xl"],bSpace:"xs"},_react.default.createElement(StyledInner,null,_react.default.createElement(HorizontalOffset,null,_react.default.createElement(_Box.Box,{space:"zero",bSpace:"xxs"},_react.default.createElement(_Inline.Inline,{alignItems:"spaceBetween"},tableControls,closeButton))),_react.default.createElement(StyledBody,{ref:scrollableRef,borderTop:hasScroll&&!isScrollTop},_react.default.createElement(_Box.Box,{space:"zero",vSpace:"xxxs",height:"100%"},_react.default.createElement(HorizontalOffset,{height:"100%"},children))))))))}
10
+ `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,"&:focus":{outline:"none"},...(0,_mediaQueries.useResponsiveValue)({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,"auto"],maxWidth:[`calc(100% - ${getMobileSpace(theme)} * 2)`,`calc(100% - ${getDesktopSpace(theme)} * 2)`]})}}),StyledInner=(0,_styled.default)("div",{target:"e2s0lh91",label:"StyledInner"})(({theme})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...(0,_mediaQueries.useResponsiveValue)({height:[fullScreenMobile,"auto"],maxHeight:[fullScreenMobile,`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}}),StyledBody=(0,_styled.default)("div",{target:"e2s0lh92",label:"StyledBody"})(({theme,borderTop,borderBottom})=>({height:"auto",overflowY:"auto",maxHeight:"100%",flex:1,...borderBottom&&{borderBottom:`1px solid ${theme.values.color.divider.primary}`},...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}})),StyledMaxWidth=(0,_styled.default)("div",{target:"e2s0lh93",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"})),HorizontalOffset=({children,height,tSpace,bSpace,id})=>_react.default.createElement(_Box.Box,{space:["m","xl"],vSpace:"zero",tSpace:tSpace,bSpace:bSpace,id:id,height:height},_react.default.createElement(StyledMaxWidth,null,children));function ContentTableModal({children,role="dialog",onAction,portalContainer,closeButtonAriaLabel="Dismiss Dialog","data-e2e-test-id":dataE2eTestId,initialFocus,tableControls=_react.default.createElement("div",null),"aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,footer,...restAriaAttributes}){let backdropRef=(0,_react.useRef)(null),footerId=(0,_react.useId)(),{scrollableRef,isScrollTop,isScrollBottom,hasScroll}=(0,_useScrollDetection.useScrollDetection)(),handleClose=()=>{onAction("cancel")},closeButton=_react.default.createElement(_PictogramButton.PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel,"data-modal-close-btn":!0});return _react.default.createElement(_Lightbox.Lightbox,{backdropRef:backdropRef,portalContainer:portalContainer,handleClose:handleClose,isDismissible:!0,initialFocus:initialFocus},_react.default.createElement(StyledModalWrapper,{role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTableModal","aria-label":ariaLabel,"aria-describedby":[ariaDescribedBy,footer&&footerId].filter(Boolean).join(" ")||void 0,...restAriaAttributes,"aria-modal":"true",tabIndex:-1},_react.default.createElement(_Container.Container,{elevation:4},_react.default.createElement(_Box.Box,{space:"zero",vSpace:["m","xl"],bSpace:"xs"},_react.default.createElement(StyledInner,null,_react.default.createElement(HorizontalOffset,null,_react.default.createElement(_Box.Box,{space:"zero",bSpace:"xxs"},_react.default.createElement(_Inline.Inline,{alignItems:"spaceBetween"},tableControls,closeButton))),_react.default.createElement(StyledBody,{ref:scrollableRef,borderTop:hasScroll&&!isScrollTop,borderBottom:!!footer&&hasScroll&&!isScrollBottom},_react.default.createElement(_Box.Box,{space:"zero",vSpace:"xxxs",height:"100%"},_react.default.createElement(HorizontalOffset,{height:"100%"},children))),footer&&_react.default.createElement(HorizontalOffset,{tSpace:"xs",bSpace:"s",id:footerId},footer))))))}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"TooltipContent",{enumerable:!0,get:function(){return TooltipContent}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_useDocument=require("../../shared/useDocument"),_useWindow=require("../../shared/useWindow"),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_Portal=require("../Portal/Portal"),_utils=require("./utils"),StyledContainer=(0,_styled.default)("div",{target:"e7hx7lj0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden,isSidePlacement})=>{let animationDistance="top"===verticalPlacement?`${_utils.ANIMATION_DISTANCE}px`:`-${_utils.ANIMATION_DISTANCE}px`,animation=(0,_react1.keyframes)({to:{opacity:theme.variables.opacity.visible,...!isSidePlacement&&{transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:(0,_Portal.usePortalChildZIndex)(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}}),StyledArrow=(0,_styled.default)("div",{target:"e7hx7lj1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=_utils.ARROW_SIZE})=>{let offset=(0,_utils.getArrowOffset)(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+_utils.DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}}),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"};let lastTooltipHideTimestamp=0;function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,privateProps,...ariaAttributes}){let animationDuration,[style,setStyle]=(0,_react.useState)(initialStyle),[isHidden,setIsHidden]=(0,_react.useState)(!1),tooltipRef=(0,_react.useRef)(null),isOverflowCallbackCalledRef=(0,_react.useRef)(!1),document=(0,_useDocument.useDocument)(),window=(0,_useWindow.useWindow)(),{placement:sidePlacement,offset:sideOffset,maxWidth:privateMaxWidth}=privateProps??{},contentMaxWidth=privateMaxWidth??maxWidth,arrowSize=(0,_react.useMemo)(()=>hideArrow?0:subTheme?_utils.ARROW_SIZE:_utils.ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=(0,_react.useCallback)((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=(0,_react.useCallback)(()=>{triggerRef.current&&tooltipRef.current&&setStyle((0,_utils.getTooltipStyle)({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow,sidePlacement,sideOffset}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow,sidePlacement,sideOffset]);if((0,_react.useLayoutEffect)(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,contentMaxWidth]),(0,_react.useEffect)(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),(0,_react.useEffect)(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),(0,_react.useEffect)(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),(0,_react.useEffect)(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=_react.default.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...ariaAttributes,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:contentMaxWidth,contentPadding:contentPadding,isHidden:isHidden,isSidePlacement:style.isSidePlacement,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&!style.isSidePlacement&&_react.default.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?_react.default.createElement(_SubThemeProvider.SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return _react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},wrapperElm)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"TooltipContent",{enumerable:!0,get:function(){return TooltipContent}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react1=require("@emotion/react"),_useDocument=require("../../shared/useDocument"),_useWindow=require("../../shared/useWindow"),_SubThemeProvider=require("../SubThemeProvider/SubThemeProvider"),_Portal=require("../Portal/Portal"),_utils=require("./utils"),StyledContainer=(0,_styled.default)("div",{target:"e1uqkw9f0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden,isSidePlacement})=>{let animationDistance="top"===verticalPlacement?`${_utils.ANIMATION_DISTANCE}px`:`-${_utils.ANIMATION_DISTANCE}px`,animation=(0,_react1.keyframes)({to:{opacity:theme.variables.opacity.visible,...!isSidePlacement&&{transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:(0,_Portal.usePortalChildZIndex)(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}}),StyledArrow=(0,_styled.default)("div",{target:"e1uqkw9f1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=_utils.ARROW_SIZE})=>{let offset=(0,_utils.getArrowOffset)(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+_utils.DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}}),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"};let lastTooltipHideTimestamp=0;function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,privateProps,...ariaAttributes}){let animationDuration,[style,setStyle]=(0,_react.useState)(initialStyle),[isHidden,setIsHidden]=(0,_react.useState)(!1),tooltipRef=(0,_react.useRef)(null),isOverflowCallbackCalledRef=(0,_react.useRef)(!1),document=(0,_useDocument.useDocument)(),window=(0,_useWindow.useWindow)(),{placement:sidePlacement,offset:sideOffset,maxWidth:privateMaxWidth}=privateProps??{},arrowSize=(0,_react.useMemo)(()=>hideArrow?0:subTheme?_utils.ARROW_SIZE:_utils.ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=(0,_react.useCallback)((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=(0,_react.useCallback)(()=>{triggerRef.current&&tooltipRef.current&&setStyle((0,_utils.getTooltipStyle)({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow,sidePlacement,sideOffset}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow,sidePlacement,sideOffset]);if((0,_react.useLayoutEffect)(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding]),(0,_react.useEffect)(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),(0,_react.useEffect)(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),(0,_react.useEffect)(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),(0,_react.useEffect)(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),(0,_react.useEffect)(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=_react.default.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...ariaAttributes,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:privateMaxWidth??maxWidth,contentPadding:contentPadding,isHidden:isHidden,isSidePlacement:style.isSidePlacement,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&!style.isSidePlacement&&_react.default.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?_react.default.createElement(_SubThemeProvider.SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return _react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},wrapperElm)}
@@ -1 +1 @@
1
- import React from"react";import styled from"@emotion/styled";import{ContentTableContext}from"./ContentTableContext";let StyledTableWrapper=styled("div",{target:"e1gy9t5n0",label:"StyledTableWrapper"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.m,overflow:"auto"})),StyledTable=styled("table",{target:"e1gy9t5n1",label:"StyledTable"})(({theme})=>({margin:0,width:"100%",borderLeft:`1px solid ${theme.values.color.divider.primary}`,borderTop:`1px solid ${theme.values.color.divider.primary}`,borderRadius:theme.variables.size.borderRadius.xs,borderSpacing:0,textAlign:"left","th, td":{borderBottom:`1px solid ${theme.values.color.divider.primary}`,borderRight:`1px solid ${theme.values.color.divider.primary}`,padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.xs}`},th:{backgroundColor:theme.values.color.background.secondary.default},"thead tr:first-of-type":{"th:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs},"th:last-of-type":{borderTopRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:last-of-type":{"td:first-of-type":{borderBottomLeftRadius:theme.variables.size.borderRadius.xs},"td:last-of-type":{borderBottomRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:hover td":{backgroundColor:theme.values.color.content.table.row.hover}})),contextValue={fontSizeOffset:-2};export function ContentTable({"data-e2e-test-id":dataE2eTestId,wrapperClassName,...rest}){return React.createElement(ContentTableContext.Provider,{value:contextValue},React.createElement(StyledTableWrapper,{className:wrapperClassName},React.createElement(StyledTable,{...rest,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTable"})))}
1
+ import React from"react";import styled from"@emotion/styled";import{ContentTableContext,contentTableContextValue}from"./ContentTableContext";let StyledTableWrapper=styled("div",{target:"eauslwy0",label:"StyledTableWrapper"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.m,overflow:"auto"})),StyledTable=styled("table",{target:"eauslwy1",label:"StyledTable"})(({theme})=>({margin:0,width:"100%",borderLeft:`1px solid ${theme.values.color.divider.primary}`,borderTop:`1px solid ${theme.values.color.divider.primary}`,borderRadius:theme.variables.size.borderRadius.xs,borderSpacing:0,textAlign:"left","th, td":{borderBottom:`1px solid ${theme.values.color.divider.primary}`,borderRight:`1px solid ${theme.values.color.divider.primary}`,padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.xs}`},th:{backgroundColor:theme.values.color.background.secondary.default},"thead tr:first-of-type":{"th:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs},"th:last-of-type":{borderTopRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:last-of-type":{"td:first-of-type":{borderBottomLeftRadius:theme.variables.size.borderRadius.xs},"td:last-of-type":{borderBottomRightRadius:theme.variables.size.borderRadius.xs}},"tbody tr:hover td":{backgroundColor:theme.values.color.content.table.row.hover}}));export function ContentTable({"data-e2e-test-id":dataE2eTestId,wrapperClassName,...rest}){return React.createElement(ContentTableContext.Provider,{value:contentTableContextValue},React.createElement(StyledTableWrapper,{className:wrapperClassName},React.createElement(StyledTable,{...rest,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTable"})))}
@@ -1,5 +1,6 @@
1
1
  import { type Context } from "react";
2
2
  export type ContentTableContextValue = {
3
- fontSizeOffset: number;
3
+ readonly fontSizeOffset: number;
4
4
  };
5
+ export declare const contentTableContextValue: ContentTableContextValue;
5
6
  export declare const ContentTableContext: Context<ContentTableContextValue | null>;
@@ -1 +1 @@
1
- import{createContext}from"react";export const ContentTableContext=createContext(null);
1
+ import{createContext}from"react";export const contentTableContextValue={fontSizeOffset:-2};export const ContentTableContext=createContext(null);
@@ -12,6 +12,8 @@ type LabelProps = {
12
12
  export type ContentTableModalProps = PickPreserveOptional<ModalProps, "role" | "onAction" | "portalContainer" | "initialFocus" | "closeButtonAriaLabel" | "data-e2e-test-id" | "children"> & LabelProps & {
13
13
  tableControls?: React.ReactElement;
14
14
  "aria-describedby"?: AriaAttributes["aria-describedby"];
15
+ /** Content rendered in the modal's footer, e.g. legend */
16
+ footer?: React.ReactNode;
15
17
  };
16
- export declare function ContentTableModal({ children, role, onAction, portalContainer, closeButtonAriaLabel, "data-e2e-test-id": dataE2eTestId, initialFocus, tableControls, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, ...restAriaAttributes }: ContentTableModalProps): React.ReactElement;
18
+ export declare function ContentTableModal({ children, role, onAction, portalContainer, closeButtonAriaLabel, "data-e2e-test-id": dataE2eTestId, initialFocus, tableControls, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, footer, ...restAriaAttributes }: ContentTableModalProps): React.ReactElement;
17
19
  export {};
@@ -1,4 +1,4 @@
1
- import React,{useMemo,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{Container}from"../../Container/Container";import{Box}from"../../Box/Box";import{Inline}from"../../Inline/Inline";import{PictogramButton}from"../../PictogramButton/PictogramButton";import{useResponsiveValue}from"../../../shared/mediaQueries";import{useScrollDetection}from"../../../shared/useScrollDetection";import{Lightbox}from"../../Lightbox/Lightbox";let getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=styled("div",{target:"e1dr36f60",label:"StyledModalWrapper"})(({theme})=>{let fadeInModal=useMemo(()=>keyframes`
1
+ import React,{useId,useMemo,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{Container}from"../../Container/Container";import{Box}from"../../Box/Box";import{Inline}from"../../Inline/Inline";import{PictogramButton}from"../../PictogramButton/PictogramButton";import{useResponsiveValue}from"../../../shared/mediaQueries";import{useScrollDetection}from"../../../shared/useScrollDetection";import{Lightbox}from"../../Lightbox/Lightbox";let getDesktopSpace=theme=>theme.variables.size.spacing.l,getDesktopInnerSpace=theme=>theme.variables.size.spacing.xl,getMobileSpace=theme=>theme.variables.size.spacing.m,getMobileInnerSpace=theme=>theme.variables.size.spacing.m,StyledModalWrapper=styled("div",{target:"e2s0lh90",label:"StyledModalWrapper"})(({theme})=>{let fadeInModal=useMemo(()=>keyframes`
2
2
  from {
3
3
  opacity: ${theme.variables.opacity.hidden};
4
4
  transform: translateY(20px);
@@ -7,4 +7,4 @@ import React,{useMemo,useRef}from"react";import styled from"@emotion/styled";imp
7
7
  opacity: ${theme.variables.opacity.visible};
8
8
  transform: translateY(0);
9
9
  }
10
- `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,"&:focus":{outline:"none"},...useResponsiveValue({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,"auto"],maxWidth:[`calc(100% - ${getMobileSpace(theme)} * 2)`,`calc(100% - ${getDesktopSpace(theme)} * 2)`]})}}),StyledInner=styled("div",{target:"e1dr36f61",label:"StyledInner"})(({theme})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...useResponsiveValue({height:[fullScreenMobile,"auto"],maxHeight:[fullScreenMobile,`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}}),StyledBody=styled("div",{target:"e1dr36f62",label:"StyledBody"})(({theme,borderTop})=>({height:"auto",overflowY:"auto",maxHeight:"100%",flex:1,...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}})),StyledMaxWidth=styled("div",{target:"e1dr36f63",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"})),HorizontalOffset=({children,height})=>React.createElement(Box,{space:["m","xl"],vSpace:"zero",height:height},React.createElement(StyledMaxWidth,null,children));export function ContentTableModal({children,role="dialog",onAction,portalContainer,closeButtonAriaLabel="Dismiss Dialog","data-e2e-test-id":dataE2eTestId,initialFocus,tableControls=React.createElement("div",null),"aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,...restAriaAttributes}){let backdropRef=useRef(null),{scrollableRef,isScrollTop,hasScroll}=useScrollDetection(),handleClose=()=>{onAction("cancel")},closeButton=React.createElement(PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel,"data-modal-close-btn":!0});return React.createElement(Lightbox,{backdropRef:backdropRef,portalContainer:portalContainer,handleClose:handleClose,isDismissible:!0,initialFocus:initialFocus},React.createElement(StyledModalWrapper,{role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTableModal","aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,...restAriaAttributes,"aria-modal":"true",tabIndex:-1},React.createElement(Container,{elevation:4},React.createElement(Box,{space:"zero",vSpace:["m","xl"],bSpace:"xs"},React.createElement(StyledInner,null,React.createElement(HorizontalOffset,null,React.createElement(Box,{space:"zero",bSpace:"xxs"},React.createElement(Inline,{alignItems:"spaceBetween"},tableControls,closeButton))),React.createElement(StyledBody,{ref:scrollableRef,borderTop:hasScroll&&!isScrollTop},React.createElement(Box,{space:"zero",vSpace:"xxxs",height:"100%"},React.createElement(HorizontalOffset,{height:"100%"},children))))))))}
10
+ `,[theme.variables.opacity.hidden,theme.variables.opacity.visible]);return{animation:`${fadeInModal} ${theme.variables.animation.modal.open.duration} ${theme.variables.animation.modal.open.delay} ${theme.variables.animation.modal.open.timingFunction} both`,"&:focus":{outline:"none"},...useResponsiveValue({width:[`calc(100% - ${getMobileSpace(theme)} * 2)`,"auto"],maxWidth:[`calc(100% - ${getMobileSpace(theme)} * 2)`,`calc(100% - ${getDesktopSpace(theme)} * 2)`]})}}),StyledInner=styled("div",{target:"e2s0lh91",label:"StyledInner"})(({theme})=>{let mobileVerticalSpace=getMobileSpace(theme),mobileInnerVerticalSpace=getMobileInnerSpace(theme),desktopVerticalSpace=getDesktopSpace(theme),desktopInnerVerticalSpace=getDesktopInnerSpace(theme),fullScreenMobile=`calc(100dvh - ${mobileVerticalSpace} * 2 - ${mobileInnerVerticalSpace} * 2)`;return{display:"flex",...useResponsiveValue({height:[fullScreenMobile,"auto"],maxHeight:[fullScreenMobile,`calc(100dvh - ${desktopVerticalSpace} * 2 - ${desktopInnerVerticalSpace} * 2)`]}),flexDirection:"column",overflow:"hidden"}}),StyledBody=styled("div",{target:"e2s0lh92",label:"StyledBody"})(({theme,borderTop,borderBottom})=>({height:"auto",overflowY:"auto",maxHeight:"100%",flex:1,...borderBottom&&{borderBottom:`1px solid ${theme.values.color.divider.primary}`},...borderTop&&{borderTop:`1px solid ${theme.values.color.divider.primary}`}})),StyledMaxWidth=styled("div",{target:"e2s0lh93",label:"StyledMaxWidth"})(({theme})=>({maxWidth:theme.variables.size.dimension.modal.fullScreenContentWidth,margin:"0 auto",height:"100%"})),HorizontalOffset=({children,height,tSpace,bSpace,id})=>React.createElement(Box,{space:["m","xl"],vSpace:"zero",tSpace:tSpace,bSpace:bSpace,id:id,height:height},React.createElement(StyledMaxWidth,null,children));export function ContentTableModal({children,role="dialog",onAction,portalContainer,closeButtonAriaLabel="Dismiss Dialog","data-e2e-test-id":dataE2eTestId,initialFocus,tableControls=React.createElement("div",null),"aria-label":ariaLabel,"aria-describedby":ariaDescribedBy,footer,...restAriaAttributes}){let backdropRef=useRef(null),footerId=useId(),{scrollableRef,isScrollTop,isScrollBottom,hasScroll}=useScrollDetection(),handleClose=()=>{onAction("cancel")},closeButton=React.createElement(PictogramButton,{variant:"tertiary",icon:"x",size:"s",onClick:handleClose,"aria-label":closeButtonAriaLabel,"data-modal-close-btn":!0});return React.createElement(Lightbox,{backdropRef:backdropRef,portalContainer:portalContainer,handleClose:handleClose,isDismissible:!0,initialFocus:initialFocus},React.createElement(StyledModalWrapper,{role:role,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"ContentTableModal","aria-label":ariaLabel,"aria-describedby":[ariaDescribedBy,footer&&footerId].filter(Boolean).join(" ")||void 0,...restAriaAttributes,"aria-modal":"true",tabIndex:-1},React.createElement(Container,{elevation:4},React.createElement(Box,{space:"zero",vSpace:["m","xl"],bSpace:"xs"},React.createElement(StyledInner,null,React.createElement(HorizontalOffset,null,React.createElement(Box,{space:"zero",bSpace:"xxs"},React.createElement(Inline,{alignItems:"spaceBetween"},tableControls,closeButton))),React.createElement(StyledBody,{ref:scrollableRef,borderTop:hasScroll&&!isScrollTop,borderBottom:!!footer&&hasScroll&&!isScrollBottom},React.createElement(Box,{space:"zero",vSpace:"xxxs",height:"100%"},React.createElement(HorizontalOffset,{height:"100%"},children))),footer&&React.createElement(HorizontalOffset,{tSpace:"xs",bSpace:"s",id:footerId},footer))))))}
@@ -1 +1 @@
1
- import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e7hx7lj0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden,isSidePlacement})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,...!isSidePlacement&&{transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}}),StyledArrow=styled("div",{target:"e7hx7lj1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}}),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,privateProps,...ariaAttributes}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),{placement:sidePlacement,offset:sideOffset,maxWidth:privateMaxWidth}=privateProps??{},contentMaxWidth=privateMaxWidth??maxWidth,arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow,sidePlacement,sideOffset}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow,sidePlacement,sideOffset]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding,content,contentMaxWidth]),useEffect(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),useEffect(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),useEffect(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...ariaAttributes,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:contentMaxWidth,contentPadding:contentPadding,isHidden:isHidden,isSidePlacement:style.isSidePlacement,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&!style.isSidePlacement&&React.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
1
+ import React,{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useDocument}from"../../shared/useDocument";import{useWindow}from"../../shared/useWindow";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{Portal,usePortalChildZIndex}from"../Portal/Portal";import{ANIMATION_DISTANCE,ARROW_SIZE,ARROW_SIZE_BIG,DISTANCE_FROM_TRIGGER,getArrowOffset,getTooltipStyle}from"./utils";let StyledContainer=styled("div",{target:"e1uqkw9f0",label:"StyledContainer"})(({theme,horizontalPlacement,verticalPlacement,maxWidth,contentPadding,subTheme,isHidden,isSidePlacement})=>{let animationDistance="top"===verticalPlacement?`${ANIMATION_DISTANCE}px`:`-${ANIMATION_DISTANCE}px`,animation=keyframes({to:{opacity:theme.variables.opacity.visible,...!isSidePlacement&&{transform:"center"===horizontalPlacement?`translate(-50%, ${animationDistance})`:`translateY(${animationDistance})`}}}),contentPaddingMap={s:theme.variables.size.spacing.xxs,m:theme.variables.size.spacing.s},invertedSubThemeStyles={padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,...contentPadding&&{padding:contentPaddingMap[contentPadding]}};return{position:"absolute",zIndex:usePortalChildZIndex(theme.variables.zIndex.tooltip),opacity:theme.variables.opacity.hidden,animation:`200ms ease-out forwards ${animation}`,maxWidth,width:"max-content",boxSizing:"border-box",backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,borderRadius:subTheme?theme.variables.size.borderRadius.xs:theme.variables.size.borderRadius.s,...isHidden&&{visibility:"hidden"},...!!subTheme&&invertedSubThemeStyles,..."center"===horizontalPlacement&&{transform:"translate(-50%)"},...!subTheme&&{":after":{content:'" "',position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",borderRadius:"inherit",boxShadow:theme.values.elevation[3]}}}}),StyledArrow=styled("div",{target:"e1uqkw9f1",label:"StyledArrow"})(({theme,subTheme,verticalPlacement,horizontalPlacement,size=ARROW_SIZE})=>{let offset=getArrowOffset(size),adjustmentForShadow=+!subTheme,arrowContainerHeight=size+DISTANCE_FROM_TRIGGER,arrowSideLength=Math.sqrt(size**2+(size+adjustmentForShadow)**2);return{position:"absolute",width:40,height:arrowContainerHeight,zIndex:1,overflow:"hidden",..."top"===verticalPlacement&&{top:`calc(100% - ${adjustmentForShadow}px)`},..."bottom"===verticalPlacement&&{top:`-${arrowContainerHeight-adjustmentForShadow}px`},..."center"===horizontalPlacement&&{left:"50%",transform:"translate(-50%)"},..."right"===horizontalPlacement&&{left:`${offset-(20-size)}px`},..."left"===horizontalPlacement&&{right:`${offset-(20-size)}px`},"&::after":{content:'" "',position:"absolute",top:"top"===verticalPlacement?0:"100%",left:"50%",width:arrowSideLength,height:arrowSideLength,backgroundColor:subTheme?theme.values.color.background.primary.default:theme.values.color.background.elevated.default,transform:"translate(-50%, -50%) rotate(45deg)",...!subTheme&&{boxShadow:theme.values.elevation[3]}}}}),initialStyle={top:0,left:0,verticalPlacement:"top",horizontalPlacement:"center"},lastTooltipHideTimestamp=0;export function TooltipContent({placement="auto",content,tooltipId,triggerRef,portalContainer,dataE2eTestId,dataDSId,isVisible,"aria-hidden":ariaHidden,role,tabIndex,contentPadding,maxWidth=224,subTheme,defaultVerticalPlacement,hideArrow=!1,isHiddenOnInvisibleTrigger=!1,onTooltipPointerEnter,onTooltipPointerLeave,onOverflowViewport,privateProps,...ariaAttributes}){let animationDuration,[style,setStyle]=useState(initialStyle),[isHidden,setIsHidden]=useState(!1),tooltipRef=useRef(null),isOverflowCallbackCalledRef=useRef(!1),document=useDocument(),window=useWindow(),{placement:sidePlacement,offset:sideOffset,maxWidth:privateMaxWidth}=privateProps??{},arrowSize=useMemo(()=>hideArrow?0:subTheme?ARROW_SIZE:ARROW_SIZE_BIG,[subTheme,hideArrow]),handleViewportOverflow=useCallback((triggerRect,tooltipRect,viewportHeight)=>{isOverflowCallbackCalledRef.current||(onOverflowViewport?.(triggerRect,tooltipRect,viewportHeight),isOverflowCallbackCalledRef.current=!0)},[onOverflowViewport,isOverflowCallbackCalledRef]),calculateStyle=useCallback(()=>{triggerRef.current&&tooltipRef.current&&setStyle(getTooltipStyle({placement,defaultVerticalPlacement,triggerRef,tooltipRef,document,window,arrowSize,onOverflowViewport:handleViewportOverflow,sidePlacement,sideOffset}))},[triggerRef,tooltipRef,document,window,placement,arrowSize,defaultVerticalPlacement,handleViewportOverflow,sidePlacement,sideOffset]);if(useLayoutEffect(()=>{isVisible&&calculateStyle()},[isVisible,calculateStyle,contentPadding]),useEffect(()=>(isVisible&&tooltipRef.current?window.addEventListener("resize",calculateStyle):isVisible||(lastTooltipHideTimestamp=Date.now()),()=>{window.removeEventListener("resize",calculateStyle)}),[isVisible,calculateStyle,window,tooltipRef]),useEffect(()=>{let resizeObserver;return isVisible&&tooltipRef.current&&"undefined"!=typeof ResizeObserver&&(resizeObserver=new ResizeObserver(entries=>{entries.forEach(entry=>{entry.contentRect.width>0&&entry.contentRect.height>0&&calculateStyle()})})).observe(tooltipRef.current),()=>{resizeObserver&&resizeObserver.disconnect()}},[isVisible,calculateStyle,tooltipRef]),useEffect(()=>{let requestAnimationFrameId,prevRect;if(!isVisible)return;let recalculatePosition=()=>{let nextRect=triggerRef.current?.getBoundingClientRect();prevRect&&nextRect&&(prevRect.x!==nextRect.x||prevRect.y!==nextRect.y||prevRect.width!==nextRect.width||prevRect.height!==nextRect.height)&&calculateStyle(),prevRect=nextRect,requestAnimationFrameId=requestAnimationFrame(recalculatePosition)};return requestAnimationFrameId=requestAnimationFrame(recalculatePosition),()=>cancelAnimationFrame(requestAnimationFrameId)},[isVisible,calculateStyle,triggerRef]),useEffect(()=>{isOverflowCallbackCalledRef.current=!1},[isVisible,isOverflowCallbackCalledRef]),useEffect(()=>{let observer;return isHiddenOnInvisibleTrigger&&triggerRef.current&&isVisible&&"undefined"!=typeof IntersectionObserver&&(observer=new IntersectionObserver(entries=>entries.forEach(entry=>{let rect=entry.boundingClientRect;(rect?.width!==0||rect?.height!==0)&&setIsHidden(!entry.isIntersecting)}),{root:null,threshold:.99})).observe(triggerRef.current),()=>{observer&&observer.disconnect()}},[triggerRef,isVisible,isHiddenOnInvisibleTrigger]),!isVisible)return null;let tooltipElm=React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":dataDSId,style:{top:style.top,left:style.left,animationDuration:(animationDuration="200ms",lastTooltipHideTimestamp&&Date.now()-lastTooltipHideTimestamp<700&&(animationDuration="0ms"),animationDuration)},ref:tooltipRef,id:tooltipId,role:role,...ariaAttributes,"aria-hidden":ariaHidden,subTheme:subTheme,tabIndex:tabIndex,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,maxWidth:privateMaxWidth??maxWidth,contentPadding:contentPadding,isHidden:isHidden,isSidePlacement:style.isSidePlacement,onPointerEnter:onTooltipPointerEnter,onPointerLeave:onTooltipPointerLeave},content,!hideArrow&&!style.isSidePlacement&&React.createElement(StyledArrow,{"data-e2e-test-id":`${dataE2eTestId}_arrow`,subTheme:subTheme,horizontalPlacement:style.horizontalPlacement,verticalPlacement:style.verticalPlacement,size:arrowSize})),wrapperElm=subTheme?React.createElement(SubThemeProvider,{name:subTheme},tooltipElm):tooltipElm;return React.createElement(Portal,{portalContainer:portalContainer},wrapperElm)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amboss/design-system",
3
- "version": "4.4.5",
3
+ "version": "4.4.6",
4
4
  "description": "the design system for AMBOSS products",
5
5
  "author": "AMBOSS",
6
6
  "license": "ISC",
@@ -89,6 +89,7 @@
89
89
  "dev": "bun run --parallel tokens:watch storybook",
90
90
  "static": "http-server storybook-static/ -p 6006",
91
91
  "storybook": "{ [ -d build ] || bun run build; } && storybook dev -p 6006",
92
+ "storybook:use-local-fonts": "VITE_STORYBOOK_FONTS_CHANGED=true bun run storybook",
92
93
  "build-storybook": "bun run tokens:web && bun run generate-llms-txt && storybook build --stats-json",
93
94
  "generate-llms-txt": "[ -d storybook-static ] || storybook build --stats-json && bun run generate-llms-txt:run",
94
95
  "generate-llms-txt:run": "node scripts/generate-llms-txt.mts",
@@ -115,10 +116,13 @@
115
116
  "icons:android": "node ./scripts/svg-to-xml.mts",
116
117
  "icons:optimize": "svgo -rf assets/icons -o assets/icons",
117
118
  "build:icons:ci": "node ./scripts/build-mobile-icon-assets.mts",
118
- "fonts:css": "node ./scripts/generate-fonts-css.mts",
119
- "fonts:prepare-upload": "node ./scripts/prepare-font-cdn-upload.mts",
120
- "fonts:upload": "node ./scripts/upload-fonts-to-cdn.mts",
121
- "fonts:verify": "node ./scripts/verify-font-buckets.mts"
119
+ "fonts:check-coverage": "node ./scripts/fonts/check-glyph-coverage.mts",
120
+ "fonts:css": "node ./scripts/fonts/generate-fonts-css.mts",
121
+ "fonts:prepare-upload": "node ./scripts/fonts/prepare-font-cdn-upload.mts",
122
+ "fonts:release": "bun run fonts:prepare-upload && bun run fonts:upload && bun run fonts:verify",
123
+ "fonts:subset": "node ./scripts/fonts/subset-fonts.mts",
124
+ "fonts:upload": "node ./scripts/fonts/upload-fonts-to-cdn.mts",
125
+ "fonts:verify": "node ./scripts/fonts/verify-font-buckets.mts"
122
126
  },
123
127
  "repository": {
124
128
  "type": "git",
@@ -227,6 +231,7 @@
227
231
  "react-dom": "^18.3.1",
228
232
  "storybook": "10.5.6",
229
233
  "style-dictionary": "^3.8.0",
234
+ "subset-font": "2.5.0",
230
235
  "svg-to-pdfkit": "^0.1.8",
231
236
  "svg2vectordrawable": "^2.9.1",
232
237
  "tinycolor2": "^1.6.0",