@lifesg/react-design-system 4.0.0-alpha.11 → 4.0.0-alpha.13
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/breadcrumb/breadcrumb.js +1 -1
- package/breadcrumb/breadcrumb.js.map +1 -1
- package/breadcrumb/breadcrumb.styles.d.ts +0 -8
- package/breadcrumb/breadcrumb.styles.js +1 -1
- package/breadcrumb/breadcrumb.styles.js.map +1 -1
- package/breadcrumb/breadcrumb.styles_1blzn8n.css +7 -0
- package/breadcrumb/types.d.ts +2 -13
- package/cjs/breadcrumb/breadcrumb.js +1 -1
- package/cjs/breadcrumb/breadcrumb.js.map +1 -1
- package/cjs/breadcrumb/breadcrumb.styles.js +1 -1
- package/cjs/breadcrumb/breadcrumb.styles.js.map +1 -1
- package/cjs/breadcrumb/breadcrumb.styles_1blzn8n.css +7 -0
- package/cjs/drawer/drawer.js +1 -1
- package/cjs/drawer/drawer.js.map +1 -1
- package/cjs/drawer/drawer.styles.js +1 -1
- package/cjs/drawer/drawer.styles.js.map +1 -1
- package/{drawer/drawer.styles_94hx3y.css → cjs/drawer/drawer.styles_a4bwe0.css} +6 -3
- package/cjs/file-download/file-download.js +1 -1
- package/cjs/file-download/file-download.js.map +1 -1
- package/cjs/file-download/file-list-card/file-list-card.js +1 -1
- package/cjs/file-download/file-list-card/file-list-card.js.map +1 -1
- package/cjs/file-download/file-list-card/file-list-card.styles.js +1 -1
- package/cjs/file-download/file-list-card/file-list-card.styles.js.map +1 -1
- package/cjs/file-download/file-list-card/file-list-card.styles_lzbqkk.css +18 -0
- package/cjs/file-upload/file-list/file-list.js +1 -1
- package/cjs/file-upload/file-list/file-list.js.map +1 -1
- package/cjs/file-upload/file-list/file-list.styles.js +1 -1
- package/cjs/file-upload/file-list/file-list.styles.js.map +1 -1
- package/cjs/file-upload/file-list/file-list.styles_1xbypnh.css +2 -0
- package/cjs/file-upload/file-list-item/file-item-actions.js +2 -0
- package/cjs/file-upload/file-list-item/file-item-actions.js.map +1 -0
- package/cjs/file-upload/file-list-item/file-item-actions.styles.js +2 -0
- package/cjs/file-upload/file-list-item/file-item-actions.styles.js.map +1 -0
- package/cjs/file-upload/file-list-item/file-item-actions.styles_1quulgy.css +8 -0
- package/cjs/file-upload/file-list-item/file-item-details.js +2 -0
- package/cjs/file-upload/file-list-item/file-item-details.js.map +1 -0
- package/cjs/file-upload/file-list-item/file-item-details.styles.js +2 -0
- package/cjs/file-upload/file-list-item/file-item-details.styles.js.map +1 -0
- package/cjs/file-upload/file-list-item/file-item-details.styles_1ce9akx.css +7 -0
- package/cjs/file-upload/file-list-item/file-list-item.js +1 -1
- package/cjs/file-upload/file-list-item/file-list-item.js.map +1 -1
- package/cjs/file-upload/file-list-item/file-list-item.styles.js +1 -1
- package/cjs/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
- package/cjs/file-upload/file-list-item/file-list-item.styles_x3a500.css +10 -0
- package/cjs/file-upload/file-list-item/use-truncated-name.js +2 -0
- package/cjs/file-upload/file-list-item/use-truncated-name.js.map +1 -0
- package/cjs/file-upload/helper.js +1 -1
- package/cjs/file-upload/helper.js.map +1 -1
- package/cjs/footer/footer-disclaimer-links-data.js +1 -1
- package/cjs/footer/footer-disclaimer-links-data.js.map +1 -1
- package/cjs/footer/footer.styles.js +1 -1
- package/cjs/footer/footer.styles.js.map +1 -1
- package/{footer/footer.styles_1msorhc.css → cjs/footer/footer.styles_14hnlcq.css} +4 -4
- package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
- package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js +1 -1
- package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
- package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -1
- package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js.map +1 -1
- package/cjs/local-nav/local-nav-dropdown/{local-nav-dropdown.styles_uhd4xl.css → local-nav-dropdown.styles_kpel1m.css} +9 -6
- package/cjs/local-nav/local-nav-menu/local-nav-menu.js +1 -1
- package/cjs/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
- package/cjs/local-nav/local-nav-menu/local-nav-menu.styles.js +1 -1
- package/cjs/local-nav/local-nav-menu/local-nav-menu.styles.js.map +1 -1
- package/cjs/local-nav/local-nav-menu/local-nav-menu.styles_67fcyc.css +8 -0
- package/cjs/masthead/sgds-day.css +0 -1
- package/cjs/masthead/sgds-night.css +0 -1
- package/cjs/menu/menu-content.js +1 -1
- package/cjs/menu/menu-content.js.map +1 -1
- package/cjs/menu/menu-content.styles.js +1 -1
- package/cjs/menu/menu-content.styles.js.map +1 -1
- package/cjs/menu/menu-content.styles_1r8oxtk.css +5 -0
- package/cjs/menu/menu-item.styles.js +1 -1
- package/cjs/menu/menu-item.styles.js.map +1 -1
- package/cjs/menu/{menu-item.styles_liyed8.css → menu-item.styles_eut2j9.css} +1 -1
- package/cjs/menu/menu-link.styles.js +1 -1
- package/cjs/menu/menu-link.styles.js.map +1 -1
- package/cjs/menu/menu-link.styles_rng7n7.css +2 -0
- package/cjs/menu/menu-section.js +1 -1
- package/cjs/menu/menu-section.js.map +1 -1
- package/cjs/menu/menu-section.styles.js +1 -1
- package/cjs/menu/menu-section.styles.js.map +1 -1
- package/cjs/menu/menu-section.styles_1n0ppxl.css +5 -0
- package/cjs/navbar/navbar-items.js +1 -1
- package/cjs/navbar/navbar-items.js.map +1 -1
- package/cjs/navbar/navbar-logo-data.js +1 -1
- package/cjs/navbar/navbar-logo-data.js.map +1 -1
- package/cjs/notification-banner/notification-banner-hoc.js +1 -1
- package/cjs/notification-banner/notification-banner-hoc.js.map +1 -1
- package/cjs/pagination/pagination.js +1 -1
- package/cjs/pagination/pagination.js.map +1 -1
- package/cjs/shared/dropdown-list/dropdown-label.js +1 -1
- package/cjs/shared/dropdown-list/dropdown-label.js.map +1 -1
- package/cjs/shared/fade-wrapper/fade-wrapper.js +1 -1
- package/cjs/shared/fade-wrapper/fade-wrapper.js.map +1 -1
- package/cjs/theme/index.js +1 -1
- package/cjs/theme/tokens/colour.js +1 -1
- package/cjs/theme/tokens/colour.js.map +1 -1
- package/cjs/theme/tokens/radius.js +1 -1
- package/cjs/theme/tokens/radius.js.map +1 -1
- package/cjs/theme/types.js +1 -1
- package/cjs/theme/types.js.map +1 -1
- package/codemods/run-codemod.js +8 -2
- package/codemods/run-codemod.js.map +1 -1
- package/codemods/run-codemod.ts +13 -4
- package/drawer/drawer.d.ts +1 -1
- package/drawer/drawer.js +1 -1
- package/drawer/drawer.js.map +1 -1
- package/drawer/drawer.styles.d.ts +3 -0
- package/drawer/drawer.styles.js +1 -1
- package/drawer/drawer.styles.js.map +1 -1
- package/{cjs/drawer/drawer.styles_94hx3y.css → drawer/drawer.styles_a4bwe0.css} +6 -3
- package/drawer/types.d.ts +7 -0
- package/file-download/file-download.d.ts +1 -1
- package/file-download/file-download.js +1 -1
- package/file-download/file-download.js.map +1 -1
- package/file-download/file-list-card/file-list-card.d.ts +1 -1
- package/file-download/file-list-card/file-list-card.js +1 -1
- package/file-download/file-list-card/file-list-card.js.map +1 -1
- package/file-download/file-list-card/file-list-card.styles.d.ts +2 -0
- package/file-download/file-list-card/file-list-card.styles.js +1 -1
- package/file-download/file-list-card/file-list-card.styles.js.map +1 -1
- package/file-download/file-list-card/file-list-card.styles_lzbqkk.css +18 -0
- package/file-download/file-list-card/types.d.ts +1 -0
- package/file-download/types.d.ts +13 -0
- package/file-upload/file-list/file-list.js +1 -1
- package/file-upload/file-list/file-list.js.map +1 -1
- package/file-upload/file-list/file-list.styles.d.ts +0 -1
- package/file-upload/file-list/file-list.styles.js +1 -1
- package/file-upload/file-list/file-list.styles.js.map +1 -1
- package/file-upload/file-list/file-list.styles_1xbypnh.css +2 -0
- package/file-upload/file-list-item/file-item-actions.d.ts +30 -0
- package/file-upload/file-list-item/file-item-actions.js +2 -0
- package/file-upload/file-list-item/file-item-actions.js.map +1 -0
- package/file-upload/file-list-item/file-item-actions.styles.d.ts +6 -0
- package/file-upload/file-list-item/file-item-actions.styles.js +2 -0
- package/file-upload/file-list-item/file-item-actions.styles.js.map +1 -0
- package/file-upload/file-list-item/file-item-actions.styles_1quulgy.css +8 -0
- package/file-upload/file-list-item/file-item-details.d.ts +15 -0
- package/file-upload/file-list-item/file-item-details.js +2 -0
- package/file-upload/file-list-item/file-item-details.js.map +1 -0
- package/file-upload/file-list-item/file-item-details.styles.d.ts +7 -0
- package/file-upload/file-list-item/file-item-details.styles.js +2 -0
- package/file-upload/file-list-item/file-item-details.styles.js.map +1 -0
- package/file-upload/file-list-item/file-item-details.styles_1ce9akx.css +7 -0
- package/file-upload/file-list-item/file-list-item.d.ts +1 -7
- package/file-upload/file-list-item/file-list-item.js +1 -1
- package/file-upload/file-list-item/file-list-item.js.map +1 -1
- package/file-upload/file-list-item/file-list-item.styles.d.ts +6 -13
- package/file-upload/file-list-item/file-list-item.styles.js +1 -1
- package/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
- package/file-upload/file-list-item/file-list-item.styles_x3a500.css +10 -0
- package/file-upload/file-list-item/types.d.ts +10 -3
- package/file-upload/file-list-item/use-truncated-name.d.ts +1 -0
- package/file-upload/file-list-item/use-truncated-name.js +2 -0
- package/file-upload/file-list-item/use-truncated-name.js.map +1 -0
- package/file-upload/helper.d.ts +30 -0
- package/file-upload/helper.js +1 -1
- package/file-upload/helper.js.map +1 -1
- package/footer/footer-disclaimer-links-data.js +1 -1
- package/footer/footer-disclaimer-links-data.js.map +1 -1
- package/footer/footer.styles.js +1 -1
- package/footer/footer.styles.js.map +1 -1
- package/{cjs/footer/footer.styles_1msorhc.css → footer/footer.styles_14hnlcq.css} +4 -4
- package/fullscreen-image-carousel/fullscreen-image-carousel.d.ts +1 -1
- package/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
- package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
- package/fullscreen-image-carousel/types.d.ts +37 -0
- package/index.js +1 -1
- package/input-group/types.d.ts +4 -1
- package/input-select/types.d.ts +1 -0
- package/local-nav/local-nav-dropdown/local-nav-dropdown.js +1 -1
- package/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
- package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.d.ts +3 -0
- package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -1
- package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js.map +1 -1
- package/local-nav/local-nav-dropdown/{local-nav-dropdown.styles_uhd4xl.css → local-nav-dropdown.styles_kpel1m.css} +9 -6
- package/local-nav/local-nav-menu/local-nav-menu.js +1 -1
- package/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
- package/local-nav/local-nav-menu/local-nav-menu.styles.d.ts +3 -0
- package/local-nav/local-nav-menu/local-nav-menu.styles.js +1 -1
- package/local-nav/local-nav-menu/local-nav-menu.styles.js.map +1 -1
- package/local-nav/local-nav-menu/local-nav-menu.styles_67fcyc.css +8 -0
- package/local-nav/types.d.ts +17 -0
- package/masked-input/types.d.ts +1 -2
- package/masthead/sgds-day.css +0 -1
- package/masthead/sgds-night.css +0 -1
- package/menu/menu-content.js +1 -1
- package/menu/menu-content.js.map +1 -1
- package/menu/menu-content.styles.d.ts +1 -0
- package/menu/menu-content.styles.js +1 -1
- package/menu/menu-content.styles.js.map +1 -1
- package/menu/menu-content.styles_1r8oxtk.css +5 -0
- package/menu/menu-item.styles.js +1 -1
- package/menu/menu-item.styles.js.map +1 -1
- package/menu/{menu-item.styles_liyed8.css → menu-item.styles_eut2j9.css} +1 -1
- package/menu/menu-link.styles.js +1 -1
- package/menu/menu-link.styles.js.map +1 -1
- package/menu/menu-link.styles_rng7n7.css +2 -0
- package/menu/menu-section.d.ts +1 -1
- package/menu/menu-section.js +1 -1
- package/menu/menu-section.js.map +1 -1
- package/menu/menu-section.styles.d.ts +7 -0
- package/menu/menu-section.styles.js +1 -1
- package/menu/menu-section.styles.js.map +1 -1
- package/menu/menu-section.styles_1n0ppxl.css +5 -0
- package/menu/menu.d.ts +1 -1
- package/menu/types.d.ts +10 -2
- package/navbar/navbar-items.js +1 -1
- package/navbar/navbar-items.js.map +1 -1
- package/navbar/navbar-logo-data.js +1 -1
- package/navbar/navbar-logo-data.js.map +1 -1
- package/navbar/types.d.ts +9 -0
- package/notification-banner/notification-banner-hoc.js +1 -1
- package/notification-banner/notification-banner-hoc.js.map +1 -1
- package/package.json +2 -3
- package/pagination/pagination.js +1 -1
- package/pagination/pagination.js.map +1 -1
- package/pagination/types.d.ts +8 -1
- package/select-histogram/types.d.ts +1 -0
- package/shared/dropdown-list/dropdown-label.d.ts +2 -2
- package/shared/dropdown-list/dropdown-label.js +1 -1
- package/shared/dropdown-list/dropdown-label.js.map +1 -1
- package/shared/dropdown-list/types.d.ts +6 -2
- package/shared/fade-wrapper/fade-wrapper.js +1 -1
- package/shared/fade-wrapper/fade-wrapper.js.map +1 -1
- package/shared/fade-wrapper/types.d.ts +1 -0
- package/shared/styles/index.d.ts +5 -0
- package/theme/index.js +1 -1
- package/theme/styles/a11y-playground.css +52 -40
- package/theme/styles/bookingsg.css +52 -40
- package/theme/styles/careercompass.css +52 -40
- package/theme/styles/ccube.css +52 -40
- package/theme/styles/imda.css +52 -40
- package/theme/styles/lifesg.css +52 -40
- package/theme/styles/mylegacy.css +52 -40
- package/theme/styles/oneservice.css +52 -40
- package/theme/styles/pa.css +28 -22
- package/theme/styles/rbs.css +52 -40
- package/theme/styles/sgw-digital-lobby.css +52 -40
- package/theme/styles/smgs.css +52 -40
- package/theme/styles/spf.css +28 -27
- package/theme/styles/sportsg-orange.css +791 -0
- package/theme/styles/supportgowhere.css +52 -40
- package/theme/styles/tote-board.css +52 -40
- package/theme/styles/vica.css +52 -40
- package/theme/styles/websg.css +52 -40
- package/theme/styles/wise.css +52 -40
- package/theme/styles/wogaa.css +52 -40
- package/theme/theme-provider/preset.d.ts +2 -0
- package/theme/tokens/colour.d.ts +6 -0
- package/theme/tokens/colour.js +1 -1
- package/theme/tokens/colour.js.map +1 -1
- package/theme/tokens/radius.d.ts +3 -0
- package/theme/tokens/radius.js +1 -1
- package/theme/tokens/radius.js.map +1 -1
- package/theme/types.d.ts +9 -3
- package/theme/types.js +1 -1
- package/theme/types.js.map +1 -1
- package/breadcrumb/breadcrumb.styles_1nl4aua.css +0 -18
- package/cjs/breadcrumb/breadcrumb.styles_1nl4aua.css +0 -18
- package/cjs/file-download/file-list-card/file-list-card.styles_18j2gut.css +0 -16
- package/cjs/file-upload/file-item-edit.js +0 -2
- package/cjs/file-upload/file-item-edit.js.map +0 -1
- package/cjs/file-upload/file-item-edit.styles.js +0 -2
- package/cjs/file-upload/file-item-edit.styles.js.map +0 -1
- package/cjs/file-upload/file-item-edit.styles_19bvztn.css +0 -11
- package/cjs/file-upload/file-list/file-list.styles_1w7so98.css +0 -3
- package/cjs/file-upload/file-list-item/file-list-item.styles_kgtfke.css +0 -17
- package/cjs/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +0 -5
- package/cjs/menu/menu-content.styles_p7ijll.css +0 -2
- package/cjs/menu/menu-link.styles_hfxoez.css +0 -2
- package/cjs/menu/menu-section.styles_g7my4d.css +0 -3
- package/file-download/file-list-card/file-list-card.styles_18j2gut.css +0 -16
- package/file-upload/file-item-edit.d.ts +0 -14
- package/file-upload/file-item-edit.js +0 -2
- package/file-upload/file-item-edit.js.map +0 -1
- package/file-upload/file-item-edit.styles.d.ts +0 -9
- package/file-upload/file-item-edit.styles.js +0 -2
- package/file-upload/file-item-edit.styles.js.map +0 -1
- package/file-upload/file-item-edit.styles_19bvztn.css +0 -11
- package/file-upload/file-list/file-list.styles_1w7so98.css +0 -3
- package/file-upload/file-list-item/file-list-item.styles_kgtfke.css +0 -17
- package/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +0 -5
- package/menu/menu-content.styles_p7ijll.css +0 -2
- package/menu/menu-link.styles_hfxoez.css +0 -2
- package/menu/menu-section.styles_g7my4d.css +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-label.js","sources":["../../../src/shared/dropdown-list/dropdown-label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { Font } from \"../../theme\";\nimport { useApplyStyle } from \"../../theme/utils/use-apply-styles\";\nimport { StringHelper } from \"../../util/string-helper\";\nimport * as styles from \"./dropdown-label.styles\";\nimport type { DropdownVariantType, LabelDisplayType } from \"./types\";\n\ninterface DropdownLabelProps {\n bold?: boolean | undefined;\n displayType?: LabelDisplayType | undefined;\n label: string;\n maxLines?: number | undefined;\n searchTerm?: string | undefined;\n selected?: boolean | undefined;\n disabled?: boolean | undefined;\n sublabel?: string | undefined;\n truncationType?: \"middle\" | \"end\" | undefined;\n variant?: DropdownVariantType | undefined;\n}\n\nexport const DropdownLabel = ({\n bold,\n displayType = \"inline\",\n label,\n searchTerm,\n maxLines = 2,\n selected,\n disabled,\n sublabel,\n truncationType = \"middle\",\n variant = \"default\",\n}: DropdownLabelProps): JSX.Element => {\n const fontSize =\n variant === \"small\"\n ? Font.Spec[\"body-size-md\"]\n : Font.Spec[\"body-size-baseline\"];\n const fontFamily = Font.Spec[\"font-family-body\"];\n const { ref, width } = useResizeDetector();\n\n const primaryTextRef = useRef<HTMLDivElement>(null);\n const secondaryTextRef = useRef<HTMLDivElement>(null);\n\n useApplyStyle(primaryTextRef, {\n [styles.tokens.primaryText.maxLines]: String(maxLines),\n });\n\n useApplyStyle(secondaryTextRef, {\n [styles.tokens.secondaryText.maxLines]: String(maxLines),\n });\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const hasExceededContainer = useCallback(\n (displayText: string) => {\n if (displayType !== \"inline\" || !width) {\n return false;\n }\n\n // best-effort attempt to check if multi-line text will overflow,\n // rendering an actual element in the DOM might be more accurate\n // but might not be performant for large lists\n const textWidth = StringHelper.getTextWidth(\n displayText,\n `${fontSize} '${fontFamily}'`\n );\n\n // there's less space than expected due to word breaks, so an\n // arbitary offset is applied\n return textWidth > width - 50;\n },\n [width, displayType, fontSize, fontFamily]\n );\n\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const shouldTruncateTitle = useMemo(\n () => hasExceededContainer(label),\n [hasExceededContainer, label]\n );\n const shouldTruncateLabel = useMemo(\n () => sublabel && hasExceededContainer(sublabel),\n [hasExceededContainer, sublabel]\n );\n\n // css cannot truncate inline elements so force the display to render\n // them separately\n const itemDisplayType =\n truncationType === \"middle\" &&\n (shouldTruncateTitle || shouldTruncateLabel)\n ? \"next-line\"\n : displayType;\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderMatchInBold = (displayText: string) => {\n if (!searchTerm) {\n return displayText;\n }\n\n const match = searchTerm.toLowerCase().trim();\n const startIndex = displayText.toLowerCase().indexOf(match);\n const endIndex = startIndex + searchTerm.length;\n\n if (startIndex === -1) {\n return displayText;\n }\n\n return (\n <>\n {label.slice(0, startIndex)}\n <span className={styles.matchedText}>\n {label.slice(startIndex, endIndex)}\n </span>\n {label.slice(endIndex)}\n </>\n );\n };\n\n const renderTruncatedText = (displayText: string): JSX.Element => {\n return (\n <>\n <div\n className={clsx(\n styles.baseTruncateStyle,\n styles.truncateFirstLine,\n maxLines === 1 && styles.truncateLineSingle\n )}\n aria-hidden\n >\n {renderMatchInBold(displayText)}\n </div>\n <div\n className={clsx(\n styles.baseTruncateStyle,\n styles.truncateSecondLine,\n maxLines === 1 && styles.truncateLineSingle\n )}\n aria-hidden\n >\n {renderMatchInBold(displayText)}\n </div>\n </>\n );\n };\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.label,\n variant === \"small\" && styles.labelVariantSmall,\n itemDisplayType === \"next-line\" && styles.labelNextLine\n )}\n >\n <div\n ref={primaryTextRef}\n aria-label={label}\n className={clsx(\n styles.primaryText,\n bold && styles.primaryTextBold,\n disabled && styles.primaryTextDisabled,\n !disabled && selected && styles.primaryTextSelected,\n itemDisplayType === \"inline\" &&\n styles.primaryTextLabelInline,\n truncationType === \"end\" && styles.primaryTextTruncateEnd\n )}\n >\n {truncationType === \"middle\" && shouldTruncateTitle\n ? renderTruncatedText(label)\n : renderMatchInBold(label)}\n </div>\n {sublabel && (\n <div\n ref={secondaryTextRef}\n aria-label={sublabel}\n className={clsx(\n styles.secondaryText,\n itemDisplayType === \"inline\" &&\n styles.secondaryTextLabelInline,\n truncationType === \"end\" &&\n styles.secondaryTextTruncateEnd,\n displayType === \"next-line\"\n ? styles.secondaryTextNextLine\n : styles.secondaryTextInline\n )}\n >\n {truncationType === \"middle\" && shouldTruncateLabel\n ? renderTruncatedText(sublabel)\n : sublabel}\n </div>\n )}\n </div>\n );\n};\n"],"names":["DropdownLabel","bold","displayType","label","searchTerm","maxLines","selected","disabled","sublabel","truncationType","variant","fontSize","Font","Spec","fontFamily","ref","width","useResizeDetector","primaryTextRef","useRef","secondaryTextRef","useApplyStyle","styles.tokens","primaryText","String","secondaryText","hasExceededContainer","useCallback","displayText","StringHelper","getTextWidth","shouldTruncateTitle","useMemo","shouldTruncateLabel","itemDisplayType","renderMatchInBold","match","toLowerCase","trim","startIndex","indexOf","endIndex","length","_jsxs","_Fragment","children","slice","_jsx","className","styles.matchedText","renderTruncatedText","clsx","styles.baseTruncateStyle","styles.truncateFirstLine","styles.truncateLineSingle","styles.truncateSecondLine","styles.label","styles.labelVariantSmall","styles.labelNextLine","styles.primaryText","styles.primaryTextBold","styles.primaryTextDisabled","styles.primaryTextSelected","styles.primaryTextLabelInline","styles.primaryTextTruncateEnd","styles.secondaryText","styles.secondaryTextLabelInline","styles.secondaryTextTruncateEnd","styles.secondaryTextNextLine","styles.secondaryTextInline"],"mappings":"soCAuBO,MAAMA,EAAgB,EACzBC,OACAC,cAAc,SAAQC,MACtBA,EACAC,aACAC,WAAW,EACXC,WACAC,WACAC,WACAC,iBAAiB,SACjBC,UAAU,cAEV,MAAMC,EACU,UAAZD,EACME,EAAKC,KAAK,gBACVD,EAAKC,KAAK,sBACdC,EAAaF,EAAKC,KAAK,qBACvBE,IAAEA,EAAGC,MAAEA,GAAUC,IAEjBC,EAAiBC,EAAuB,MACxCC,EAAmBD,EAAuB,MAEhDE,EAAcH,EAAgB,CAC1B,CAACI,EAAcC,YAAYlB,UAAWmB,OAAOnB,KAGjDgB,EAAcD,EAAkB,CAC5B,CAACE,EAAcG,cAAcpB,UAAWmB,OAAOnB,KAMnD,MAAMqB,EAAuBC,GACxBC,IACG,GAAoB,WAAhB1B,IAA6Bc,EAC7B,OAAO,EAaX,OAPkBa,EAAaC,aAC3BF,EACA,GAAGjB,MAAaG,MAKDE,EAAQ,EAAE,GAEjC,CAACA,EAAOd,EAAaS,EAAUG,IAM7BiB,EAAsBC,GACxB,IAAMN,EAAqBvB,IAC3B,CAACuB,EAAsBvB,IAErB8B,EAAsBD,GACxB,IAAMxB,GAAYkB,EAAqBlB,IACvC,CAACkB,EAAsBlB,IAKrB0B,EACiB,WAAnBzB,IACCsB,GAAuBE,GAClB,YACA/B,EAKJiC,EAAqBP,IACvB,IAAKxB,EACD,OAAOwB,EAGX,MAAMQ,EAAQhC,EAAWiC,cAAcC,OACjCC,EAAaX,EAAYS,cAAcG,QAAQJ,GAC/CK,EAAWF,EAAanC,EAAWsC,OAEzC,OAAmB,IAAfH,EACOX,EAIPe,EAAAC,EAAA,CAAAC,SAAA,CACK1C,EAAM2C,MAAM,EAAGP,GAChBQ,EAAA,OAAA,CAAMC,UAAWC,EAAkBJ,SAC9B1C,EAAM2C,MAAMP,EAAYE,KAE5BtC,EAAM2C,MAAML,KACd,EAILS,EAAuBtB,GAErBe,EAAAC,EAAA,CAAAC,SAAA,CACIE,EAAA,MAAA,CACIC,UAAWG,EACPC,EACAC,EACa,IAAbhD,GAAkBiD,GACrB,eAAA,EAAAT,SAGAV,EAAkBP,KAEvBmB,EAAA,MAAA,CACIC,UAAWG,EACPC,EACAG,EACa,IAAblD,GAAkBiD,GACrB,eAAA,EAAAT,SAGAV,EAAkBP,QAMnC,OACIe,EAAA,MAAA,CACI5B,IAAKA,EACLiC,UAAWG,EACPK,EACY,UAAZ9C,GAAuB+C,EACH,cAApBvB,GAAmCwB,GACtCb,SAAA,CAEDE,SACIhC,IAAKG,EAAc,aACPf,EACZ6C,UAAWG,EACPQ,EACA1D,GAAQ2D,EACRrD,GAAYsD,GACXtD,GAAYD,GAAYwD,EACL,WAApB5B,GACI6B,EACe,QAAnBtD,GAA4BuD,GAC/BnB,SAEmB,WAAnBpC,GAA+BsB,EAC1BmB,EAAoB/C,GACpBgC,EAAkBhC,KAE3BK,GACGuC,EAAA,MAAA,CACIhC,IAAKK,EAAgB,aACTZ,EACZwC,UAAWG,EACPc,EACoB,WAApB/B,GACIgC,EACe,QAAnBzD,GACI0D,EACY,cAAhBjE,EACMkE,EACAC,YAGU,WAAnB5D,GAA+BwB,EAC1BiB,EAAoB1C,GACpBA,MAGZ"}
|
|
1
|
+
{"version":3,"file":"dropdown-label.js","sources":["../../../src/shared/dropdown-list/dropdown-label.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { Font } from \"../../theme\";\nimport { useApplyStyle } from \"../../theme/utils/use-apply-styles\";\nimport { StringHelper } from \"../../util/string-helper\";\nimport * as styles from \"./dropdown-label.styles\";\nimport type {\n DropdownVariantType,\n LabelDisplayType,\n TruncateType,\n} from \"./types\";\n\ninterface DropdownLabelProps {\n bold?: boolean | undefined;\n displayType?: LabelDisplayType | undefined;\n label: string;\n maxLines?: number | undefined;\n searchTerm?: string | undefined;\n selected?: boolean | undefined;\n disabled?: boolean | undefined;\n sublabel?: string | undefined;\n truncationType?: TruncateType | undefined;\n variant?: DropdownVariantType | undefined;\n}\n\nexport const DropdownLabel = ({\n bold,\n displayType = \"inline\",\n label,\n searchTerm,\n maxLines = 2,\n selected,\n disabled,\n sublabel,\n truncationType = \"middle\",\n variant = \"default\",\n}: DropdownLabelProps): JSX.Element => {\n const fontSize =\n variant === \"small\"\n ? Font.Spec[\"body-size-md\"]\n : Font.Spec[\"body-size-baseline\"];\n const fontFamily = Font.Spec[\"font-family-body\"];\n const { ref, width } = useResizeDetector();\n\n const noTruncation = truncationType === \"none\";\n\n const primaryTextRef = useRef<HTMLDivElement>(null);\n const secondaryTextRef = useRef<HTMLDivElement>(null);\n\n useApplyStyle(primaryTextRef, {\n [styles.tokens.primaryText.maxLines]: noTruncation\n ? null\n : String(maxLines),\n });\n\n useApplyStyle(secondaryTextRef, {\n [styles.tokens.secondaryText.maxLines]: noTruncation\n ? null\n : String(maxLines),\n });\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const hasExceededContainer = useCallback(\n (displayText: string) => {\n if (noTruncation || displayType !== \"inline\" || !width) {\n return false;\n }\n\n // best-effort attempt to check if multi-line text will overflow,\n // rendering an actual element in the DOM might be more accurate\n // but might not be performant for large lists\n const textWidth = StringHelper.getTextWidth(\n displayText,\n `${fontSize} '${fontFamily}'`\n );\n\n // there's less space than expected due to word breaks, so an\n // arbitary offset is applied\n return textWidth > width - 50;\n },\n [noTruncation, width, displayType, fontSize, fontFamily]\n );\n\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const shouldTruncateTitle = useMemo(\n () => hasExceededContainer(label),\n [hasExceededContainer, label]\n );\n const shouldTruncateLabel = useMemo(\n () => sublabel && hasExceededContainer(sublabel),\n [hasExceededContainer, sublabel]\n );\n\n // css cannot truncate inline elements so force the display to render\n // them separately\n const itemDisplayType =\n truncationType === \"middle\" &&\n (shouldTruncateTitle || shouldTruncateLabel)\n ? \"next-line\"\n : displayType;\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderMatchInBold = (displayText: string) => {\n if (!searchTerm) {\n return displayText;\n }\n\n const match = searchTerm.toLowerCase().trim();\n const startIndex = displayText.toLowerCase().indexOf(match);\n const endIndex = startIndex + searchTerm.length;\n\n if (startIndex === -1) {\n return displayText;\n }\n\n return (\n <>\n {label.slice(0, startIndex)}\n <span className={styles.matchedText}>\n {label.slice(startIndex, endIndex)}\n </span>\n {label.slice(endIndex)}\n </>\n );\n };\n\n const renderTruncatedText = (displayText: string): JSX.Element => {\n return (\n <>\n <div\n className={clsx(\n styles.baseTruncateStyle,\n styles.truncateFirstLine,\n maxLines === 1 && styles.truncateLineSingle\n )}\n aria-hidden\n >\n {renderMatchInBold(displayText)}\n </div>\n <div\n className={clsx(\n styles.baseTruncateStyle,\n styles.truncateSecondLine,\n maxLines === 1 && styles.truncateLineSingle\n )}\n aria-hidden\n >\n {renderMatchInBold(displayText)}\n </div>\n </>\n );\n };\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.label,\n variant === \"small\" && styles.labelVariantSmall,\n itemDisplayType === \"next-line\" && styles.labelNextLine\n )}\n >\n <div\n ref={primaryTextRef}\n aria-label={label}\n className={clsx(\n styles.primaryText,\n bold && styles.primaryTextBold,\n disabled && styles.primaryTextDisabled,\n !disabled && selected && styles.primaryTextSelected,\n itemDisplayType === \"inline\" &&\n styles.primaryTextLabelInline,\n truncationType === \"end\" && styles.primaryTextTruncateEnd\n )}\n >\n {truncationType === \"middle\" && shouldTruncateTitle\n ? renderTruncatedText(label)\n : renderMatchInBold(label)}\n </div>\n {sublabel && (\n <div\n ref={secondaryTextRef}\n aria-label={sublabel}\n className={clsx(\n styles.secondaryText,\n itemDisplayType === \"inline\" &&\n styles.secondaryTextLabelInline,\n truncationType === \"end\" &&\n styles.secondaryTextTruncateEnd,\n displayType === \"next-line\"\n ? styles.secondaryTextNextLine\n : styles.secondaryTextInline\n )}\n >\n {truncationType === \"middle\" && shouldTruncateLabel\n ? renderTruncatedText(sublabel)\n : sublabel}\n </div>\n )}\n </div>\n );\n};\n"],"names":["DropdownLabel","bold","displayType","label","searchTerm","maxLines","selected","disabled","sublabel","truncationType","variant","fontSize","Font","Spec","fontFamily","ref","width","useResizeDetector","noTruncation","primaryTextRef","useRef","secondaryTextRef","useApplyStyle","styles.tokens","primaryText","String","secondaryText","hasExceededContainer","useCallback","displayText","StringHelper","getTextWidth","shouldTruncateTitle","useMemo","shouldTruncateLabel","itemDisplayType","renderMatchInBold","match","toLowerCase","trim","startIndex","indexOf","endIndex","length","_jsxs","_Fragment","children","slice","_jsx","className","styles.matchedText","renderTruncatedText","clsx","styles.baseTruncateStyle","styles.truncateFirstLine","styles.truncateLineSingle","styles.truncateSecondLine","styles.label","styles.labelVariantSmall","styles.labelNextLine","styles.primaryText","styles.primaryTextBold","styles.primaryTextDisabled","styles.primaryTextSelected","styles.primaryTextLabelInline","styles.primaryTextTruncateEnd","styles.secondaryText","styles.secondaryTextLabelInline","styles.secondaryTextTruncateEnd","styles.secondaryTextNextLine","styles.secondaryTextInline"],"mappings":"soCA2BO,MAAMA,EAAgB,EACzBC,OACAC,cAAc,SAAQC,MACtBA,EACAC,aACAC,WAAW,EACXC,WACAC,WACAC,WACAC,iBAAiB,SACjBC,UAAU,cAEV,MAAMC,EACU,UAAZD,EACME,EAAKC,KAAK,gBACVD,EAAKC,KAAK,sBACdC,EAAaF,EAAKC,KAAK,qBACvBE,IAAEA,EAAGC,MAAEA,GAAUC,IAEjBC,EAAkC,SAAnBT,EAEfU,EAAiBC,EAAuB,MACxCC,EAAmBD,EAAuB,MAEhDE,EAAcH,EAAgB,CAC1B,CAACI,EAAcC,YAAYnB,UAAWa,EAChC,KACAO,OAAOpB,KAGjBiB,EAAcD,EAAkB,CAC5B,CAACE,EAAcG,cAAcrB,UAAWa,EAClC,KACAO,OAAOpB,KAMjB,MAAMsB,EAAuBC,GACxBC,IACG,GAAIX,GAAgC,WAAhBhB,IAA6Bc,EAC7C,OAAO,EAaX,OAPkBc,EAAaC,aAC3BF,EACA,GAAGlB,MAAaG,MAKDE,EAAQ,EAAE,GAEjC,CAACE,EAAcF,EAAOd,EAAaS,EAAUG,IAM3CkB,EAAsBC,GACxB,IAAMN,EAAqBxB,IAC3B,CAACwB,EAAsBxB,IAErB+B,EAAsBD,GACxB,IAAMzB,GAAYmB,EAAqBnB,IACvC,CAACmB,EAAsBnB,IAKrB2B,EACiB,WAAnB1B,IACCuB,GAAuBE,GAClB,YACAhC,EAKJkC,EAAqBP,IACvB,IAAKzB,EACD,OAAOyB,EAGX,MAAMQ,EAAQjC,EAAWkC,cAAcC,OACjCC,EAAaX,EAAYS,cAAcG,QAAQJ,GAC/CK,EAAWF,EAAapC,EAAWuC,OAEzC,OAAmB,IAAfH,EACOX,EAIPe,EAAAC,EAAA,CAAAC,SAAA,CACK3C,EAAM4C,MAAM,EAAGP,GAChBQ,EAAA,OAAA,CAAMC,UAAWC,EAAkBJ,SAC9B3C,EAAM4C,MAAMP,EAAYE,KAE5BvC,EAAM4C,MAAML,KACd,EAILS,EAAuBtB,GAErBe,EAAAC,EAAA,CAAAC,SAAA,CACIE,EAAA,MAAA,CACIC,UAAWG,EACPC,EACAC,EACa,IAAbjD,GAAkBkD,GACrB,eAAA,EAAAT,SAGAV,EAAkBP,KAEvBmB,EAAA,MAAA,CACIC,UAAWG,EACPC,EACAG,EACa,IAAbnD,GAAkBkD,GACrB,eAAA,EAAAT,SAGAV,EAAkBP,QAMnC,OACIe,EAAA,MAAA,CACI7B,IAAKA,EACLkC,UAAWG,EACPK,EACY,UAAZ/C,GAAuBgD,EACH,cAApBvB,GAAmCwB,GACtCb,SAAA,CAEDE,SACIjC,IAAKI,EAAc,aACPhB,EACZ8C,UAAWG,EACPQ,EACA3D,GAAQ4D,EACRtD,GAAYuD,GACXvD,GAAYD,GAAYyD,EACL,WAApB5B,GACI6B,EACe,QAAnBvD,GAA4BwD,GAC/BnB,SAEmB,WAAnBrC,GAA+BuB,EAC1BmB,EAAoBhD,GACpBiC,EAAkBjC,KAE3BK,GACGwC,EAAA,MAAA,CACIjC,IAAKM,EAAgB,aACTb,EACZyC,UAAWG,EACPc,EACoB,WAApB/B,GACIgC,EACe,QAAnB1D,GACI2D,EACY,cAAhBlE,EACMmE,EACAC,YAGU,WAAnB7D,GAA+ByB,EAC1BiB,EAAoB3C,GACpBA,MAGZ"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - `"middle"` trims the centre of the text.
|
|
5
5
|
* - `"end"` trims from the right.
|
|
6
|
+
* - `"none"` disables truncation, the text wraps and is displayed in full.
|
|
6
7
|
*/
|
|
7
|
-
export type TruncateType = "middle" | "end";
|
|
8
|
+
export type TruncateType = "middle" | "end" | "none";
|
|
8
9
|
/**
|
|
9
10
|
* Async load state for dropdown items.
|
|
10
11
|
*
|
|
@@ -84,7 +85,10 @@ export interface DropdownConfigProps {
|
|
|
84
85
|
itemsLoadState?: ItemsLoadStateType | undefined;
|
|
85
86
|
/** How overflowing item text is truncated. */
|
|
86
87
|
itemTruncationType?: TruncateType | undefined;
|
|
87
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Maximum visible lines before the label is truncated (applies to `"end"`
|
|
90
|
+
* truncation). Ignored when `itemTruncationType` is `"none"`.
|
|
91
|
+
*/
|
|
88
92
|
itemMaxLines?: number | undefined;
|
|
89
93
|
/** Visual size variant for the dropdown items. */
|
|
90
94
|
variant?: DropdownVariantType | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../../_virtual/_tslib.js";import{jsxs as r,jsx as t,Fragment as o}from"react/jsx-runtime";import{ChevronLeftIcon as i}from"@lifesg/react-icons/chevron-left";import{ChevronRightIcon as s}from"@lifesg/react-icons/chevron-right";import l from"clsx";import n from"../../external/lodash/throttle.js";import{forwardRef as c,useState as a,useRef as d,useImperativeHandle as m,useCallback as f,useMemo as h,useEffect as
|
|
1
|
+
import{__rest as e}from"../../_virtual/_tslib.js";import{jsxs as r,jsx as t,Fragment as o}from"react/jsx-runtime";import{ChevronLeftIcon as i}from"@lifesg/react-icons/chevron-left";import{ChevronRightIcon as s}from"@lifesg/react-icons/chevron-right";import l from"clsx";import n from"../../external/lodash/throttle.js";import{forwardRef as c,useState as a,useRef as d,useImperativeHandle as m,useCallback as f,useMemo as h,useEffect as u}from"react";import{useResizeDetector as p}from"../../external/react-resize-detector/build/index.esm.js";import"../../theme/theme-provider/index.js";import"../../theme/theme-provider/context.js";import"../../theme/tokens/border.js";import"../../theme/tokens/colour.js";import"../../theme/tokens/font.js";import"../../theme/tokens/media-query.js";import{useApplyStyle as j}from"../../theme/utils/use-apply-styles.js";import"../../theme/utils/use-media-query.js";import{ClickableIcon as b}from"../clickable-icon/clickable-icon.js";import{tokens as v,wrapper as g,content as k,fadeIndicatorButton as x,indicatorLeft as N,fade as W,fadeLeft as y,indicatorRight as z,fadeRight as L}from"./fade-wrapper.styles.js";import{getFadeColorSet as R,getFadeBackgroundColorValue as w}from"./helpers.js";const C=c(((c,C)=>{var{children:E,className:q,fadeColor:I,fadePosition:M="both",showIndicator:P=!1,onResize:_}=c,O=e(c,["children","className","fadeColor","fadePosition","showIndicator","onResize"]);const[T,A]=a("left"===M||"both"===M),[B,D]=a("right"===M||"both"===M),F=d(null),G=d(null),H=d(null),J=d(null),K=R(I);j(H,{[v.backgroundColor]:w(K.left,P)}),j(J,{[v.backgroundColor]:w(K.right,P)}),p({onResize:U,targetRef:F,refreshMode:"debounce",refreshRate:50}),m(C,(()=>({resize(){U()},scrollToEnd(){const e=G.current,r=F.current;e&&r&&(e.scrollLeft=e.scrollWidth-r.offsetWidth)}})));const Q=f((()=>{const e=F.current,r=G.current;e&&r&&r.scrollWidth>e.offsetWidth?(D(Math.round(r.scrollLeft)<r.scrollWidth-r.offsetWidth),A(r.scrollLeft>=1)):(D(!1),A(!1))}),[]),S=h((()=>n(Q,50)),[Q]);function U(){Q(),_&&_({content:G.current,wrapper:F.current})}u((()=>{const e=G.current;return Q(),e&&e.addEventListener("scroll",S),()=>{e&&e.removeEventListener("scroll",S),S.cancel()}}),[Q,S]);return r("div",Object.assign({ref:F,className:l(g,q)},O,{children:[t("div",{ref:G,className:k,children:E}),r(o,{children:[T&&t("div",{ref:H,className:l(W,y),"data-id":"left-fade",children:P&&t(b,{className:l(x,N),"data-id":"left-fade-indicator-button",children:t(i,{})})}),B&&t("div",{ref:J,className:l(W,L),"data-id":"right-fade",children:P&&t(b,{className:l(x,z),"data-id":"right-fade-indicator-button",children:t(s,{})})})]})]}))}));export{C as FadeWrapper};
|
|
2
2
|
//# sourceMappingURL=fade-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fade-wrapper.js","sources":["../../../src/shared/fade-wrapper/fade-wrapper.tsx"],"sourcesContent":["import { ChevronLeftIcon } from \"@lifesg/react-icons/chevron-left\";\nimport { ChevronRightIcon } from \"@lifesg/react-icons/chevron-right\";\nimport clsx from \"clsx\";\nimport throttle from \"lodash/throttle\";\nimport type React from \"react\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { useApplyStyle } from \"../../theme\";\nimport { ClickableIcon } from \"../clickable-icon\";\nimport * as styles from \"./fade-wrapper.styles\";\nimport { getFadeBackgroundColorValue, getFadeColorSet } from \"./helpers\";\nimport type { FadeWrapperProps, FadeWrapperRef } from \"./types\";\n\nconst Component = (\n {\n children,\n className,\n fadeColor,\n fadePosition = \"both\",\n showIndicator = false,\n onResize,\n ...otherProps\n }: FadeWrapperProps,\n ref: React.Ref<FadeWrapperRef>\n) => {\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const [showFadeLeft, setShowFadeLeft] = useState<boolean>(\n fadePosition === \"left\" || fadePosition === \"both\"\n );\n const [showFadeRight, setShowFadeRight] = useState<boolean>(\n fadePosition === \"right\" || fadePosition === \"both\"\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const fadeLeftRef = useRef<HTMLDivElement>(null);\n const fadeRightRef = useRef<HTMLDivElement>(null);\n\n const fadeColorSet = getFadeColorSet(fadeColor);\n\n useApplyStyle(fadeLeftRef, {\n [styles.tokens.backgroundColor]: getFadeBackgroundColorValue(\n fadeColorSet.left,\n showIndicator\n ),\n });\n useApplyStyle(fadeRightRef, {\n [styles.tokens.backgroundColor]: getFadeBackgroundColorValue(\n fadeColorSet.right,\n showIndicator\n ),\n });\n\n // To scroll left when wrapper resizes\n useResizeDetector({\n onResize: handleResize,\n targetRef: wrapperRef,\n refreshMode: \"debounce\",\n refreshRate: 50,\n });\n\n useImperativeHandle(ref, () => {\n return {\n resize() {\n handleResize();\n },\n };\n });\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n const handleScroll = useCallback(() => {\n const wrapper = wrapperRef.current;\n const content = contentRef.current;\n\n if (wrapper && content && content.scrollWidth > wrapper.offsetWidth) {\n /**\n * NOTE: Used Math.round because we observe a 0.5 difference\n * even when we scroll to the end. This causes the fade right\n * to not be removed\n */\n setShowFadeRight(\n Math.round(content.scrollLeft) <\n content.scrollWidth - content.offsetWidth\n );\n setShowFadeLeft(content.scrollLeft >= 1);\n } else {\n setShowFadeRight(false);\n setShowFadeLeft(false);\n }\n }, []);\n\n const throttledScrollHandler = useMemo(() => {\n return throttle(handleScroll, 50);\n }, [handleScroll]);\n\n useEffect(() => {\n const content = contentRef.current;\n\n handleScroll();\n\n if (content) {\n content.addEventListener(\"scroll\", throttledScrollHandler);\n }\n\n return () => {\n if (content) {\n content.removeEventListener(\"scroll\", throttledScrollHandler);\n }\n\n throttledScrollHandler.cancel();\n };\n }, [handleScroll, throttledScrollHandler]);\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n\n function handleResize() {\n handleScroll();\n\n if (onResize) {\n onResize({\n content: contentRef.current!,\n wrapper: wrapperRef.current!,\n });\n }\n\n // TODO: Will move this out to Breadcrumb when it uses this component\n // if (content && wrapper && window.innerWidth <= MediaWidths.tablet) {\n // content.scrollLeft = content.scrollWidth - wrapper.offsetWidth;\n // }\n }\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderFade = () => {\n return (\n <>\n {showFadeLeft && (\n <div\n ref={fadeLeftRef}\n className={clsx(styles.fade, styles.fadeLeft)}\n data-id=\"left-fade\"\n >\n {showIndicator && (\n <ClickableIcon\n className={clsx(\n styles.fadeIndicatorButton,\n styles.indicatorLeft\n )}\n data-id=\"left-fade-indicator-button\"\n >\n <ChevronLeftIcon />\n </ClickableIcon>\n )}\n </div>\n )}\n {showFadeRight && (\n <div\n ref={fadeRightRef}\n className={clsx(styles.fade, styles.fadeRight)}\n data-id=\"right-fade\"\n >\n {showIndicator && (\n <ClickableIcon\n className={clsx(\n styles.fadeIndicatorButton,\n styles.indicatorRight\n )}\n data-id=\"right-fade-indicator-button\"\n >\n <ChevronRightIcon />\n </ClickableIcon>\n )}\n </div>\n )}\n </>\n );\n };\n\n return (\n <div\n ref={wrapperRef}\n className={clsx(styles.wrapper, className)}\n {...otherProps}\n >\n <div ref={contentRef} className={styles.content}>\n {children}\n </div>\n {renderFade()}\n </div>\n );\n};\n\nexport const FadeWrapper = forwardRef(Component);\n"],"names":["FadeWrapper","forwardRef","_a","ref","children","className","fadeColor","fadePosition","showIndicator","onResize","otherProps","__rest","showFadeLeft","setShowFadeLeft","useState","showFadeRight","setShowFadeRight","wrapperRef","useRef","contentRef","fadeLeftRef","fadeRightRef","fadeColorSet","getFadeColorSet","useApplyStyle","styles.tokens","backgroundColor","getFadeBackgroundColorValue","left","right","useResizeDetector","handleResize","targetRef","refreshMode","refreshRate","useImperativeHandle","resize","handleScroll","useCallback","wrapper","current","content","scrollWidth","offsetWidth","Math","round","scrollLeft","throttledScrollHandler","useMemo","throttle","useEffect","addEventListener","removeEventListener","cancel","_jsxs","Object","assign","clsx","styles.wrapper","_jsx","styles.content","styles.fade","styles.fadeLeft","ClickableIcon","styles.fadeIndicatorButton","styles.indicatorLeft","ChevronLeftIcon","styles.fadeRight","styles.indicatorRight","ChevronRightIcon"],"mappings":"ysCAsBA,MA0LaA,EAAcC,GA1LT,CACdC,EASAC,SATAC,SACIA,EAAQC,UACRA,EAASC,UACTA,EAASC,aACTA,EAAe,OAAMC,cACrBA,GAAgB,EAAKC,SACrBA,GAAQP,EACLQ,EAAUC,EAAAT,EAPjB,gFAcA,MAAOU,EAAcC,GAAmBC,EACnB,SAAjBP,GAA4C,SAAjBA,IAExBQ,EAAeC,GAAoBF,EACrB,UAAjBP,GAA6C,SAAjBA,GAG1BU,EAAaC,EAAuB,MACpCC,EAAaD,EAAuB,MACpCE,EAAcF,EAAuB,MACrCG,EAAeH,EAAuB,MAEtCI,EAAeC,EAAgBjB,GAErCkB,EAAcJ,EAAa,CACvB,CAACK,EAAcC,iBAAkBC,EAC7BL,EAAaM,KACbpB,KAGRgB,EAAcH,EAAc,CACxB,CAACI,EAAcC,iBAAkBC,EAC7BL,EAAaO,MACbrB,KAKRsB,EAAkB,CACdrB,SAAUsB,EACVC,UAAWf,EACXgB,YAAa,WACbC,YAAa,KAGjBC,EAAoBhC,GAAK,KACd,CACH,MAAAiC,GACIL,GACJ,MAOR,MAAMM,EAAeC,GAAY,KAC7B,MAAMC,EAAUtB,EAAWuB,QACrBC,EAAUtB,EAAWqB,QAEvBD,GAAWE,GAAWA,EAAQC,YAAcH,EAAQI,aAMpD3B,EACI4B,KAAKC,MAAMJ,EAAQK,YACfL,EAAQC,YAAcD,EAAQE,aAEtC9B,EAAgB4B,EAAQK,YAAc,KAEtC9B,GAAiB,GACjBH,GAAgB,GACpB,GACD,IAEGkC,EAAyBC,GAAQ,IAC5BC,EAASZ,EAAc,KAC/B,CAACA,IAwBJ,SAASN,IACLM,IAEI5B,GACAA,EAAS,CACLgC,QAAStB,EAAWqB,QACpBD,QAAStB,EAAWuB,SAQhC,CApCAU,GAAU,KACN,MAAMT,EAAUtB,EAAWqB,QAQ3B,OANAH,IAEII,GACAA,EAAQU,iBAAiB,SAAUJ,GAGhC,KACCN,GACAA,EAAQW,oBAAoB,SAAUL,GAG1CA,EAAuBM,QAAQ,CAClC,GACF,CAAChB,EAAcU,IAsElB,OACIO,EAAA,MAAAC,OAAAC,OAAA,CACIrD,IAAKc,EACLZ,UAAWoD,EAAKC,EAAgBrD,IAC5BK,EAAU,CAAAN,SAAA,CAEduD,EAAA,MAAA,CAAKxD,IAAKgB,EAAYd,UAAWuD,EAAcxD,SAC1CA,IAlDLkD,eACK1C,GACG+C,EAAA,MAAA,CACIxD,IAAKiB,EACLf,UAAWoD,EAAKI,EAAaC,GAAgB,UACrC,YAAW1D,SAElBI,GACGmD,EAACI,EAAa,CACV1D,UAAWoD,EACPO,EACAC,GACH,UACO,6BAA4B7D,SAEpCuD,EAACO,EAAe,CAAA,OAK/BnD,GACG4C,EAAA,MAAA,CACIxD,IAAKkB,EACLhB,UAAWoD,EAAKI,EAAaM,aACrB,aAAY/D,SAEnBI,GACGmD,EAACI,EAAa,CACV1D,UAAWoD,EACPO,EACAI,aAEI,8BAA6BhE,SAErCuD,EAACU,EAAgB,CAAA,aAmBnC"}
|
|
1
|
+
{"version":3,"file":"fade-wrapper.js","sources":["../../../src/shared/fade-wrapper/fade-wrapper.tsx"],"sourcesContent":["import { ChevronLeftIcon } from \"@lifesg/react-icons/chevron-left\";\nimport { ChevronRightIcon } from \"@lifesg/react-icons/chevron-right\";\nimport clsx from \"clsx\";\nimport throttle from \"lodash/throttle\";\nimport type React from \"react\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { useApplyStyle } from \"../../theme\";\nimport { ClickableIcon } from \"../clickable-icon\";\nimport * as styles from \"./fade-wrapper.styles\";\nimport { getFadeBackgroundColorValue, getFadeColorSet } from \"./helpers\";\nimport type { FadeWrapperProps, FadeWrapperRef } from \"./types\";\n\nconst Component = (\n {\n children,\n className,\n fadeColor,\n fadePosition = \"both\",\n showIndicator = false,\n onResize,\n ...otherProps\n }: FadeWrapperProps,\n ref: React.Ref<FadeWrapperRef>\n) => {\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const [showFadeLeft, setShowFadeLeft] = useState<boolean>(\n fadePosition === \"left\" || fadePosition === \"both\"\n );\n const [showFadeRight, setShowFadeRight] = useState<boolean>(\n fadePosition === \"right\" || fadePosition === \"both\"\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const fadeLeftRef = useRef<HTMLDivElement>(null);\n const fadeRightRef = useRef<HTMLDivElement>(null);\n\n const fadeColorSet = getFadeColorSet(fadeColor);\n\n useApplyStyle(fadeLeftRef, {\n [styles.tokens.backgroundColor]: getFadeBackgroundColorValue(\n fadeColorSet.left,\n showIndicator\n ),\n });\n useApplyStyle(fadeRightRef, {\n [styles.tokens.backgroundColor]: getFadeBackgroundColorValue(\n fadeColorSet.right,\n showIndicator\n ),\n });\n\n // To scroll left when wrapper resizes\n useResizeDetector({\n onResize: handleResize,\n targetRef: wrapperRef,\n refreshMode: \"debounce\",\n refreshRate: 50,\n });\n\n useImperativeHandle(ref, () => {\n return {\n resize() {\n handleResize();\n },\n scrollToEnd() {\n const content = contentRef.current;\n const wrapper = wrapperRef.current;\n if (content && wrapper) {\n content.scrollLeft =\n content.scrollWidth - wrapper.offsetWidth;\n }\n },\n };\n });\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n const handleScroll = useCallback(() => {\n const wrapper = wrapperRef.current;\n const content = contentRef.current;\n\n if (wrapper && content && content.scrollWidth > wrapper.offsetWidth) {\n /**\n * NOTE: Used Math.round because we observe a 0.5 difference\n * even when we scroll to the end. This causes the fade right\n * to not be removed\n */\n setShowFadeRight(\n Math.round(content.scrollLeft) <\n content.scrollWidth - content.offsetWidth\n );\n setShowFadeLeft(content.scrollLeft >= 1);\n } else {\n setShowFadeRight(false);\n setShowFadeLeft(false);\n }\n }, []);\n\n const throttledScrollHandler = useMemo(() => {\n return throttle(handleScroll, 50);\n }, [handleScroll]);\n\n useEffect(() => {\n const content = contentRef.current;\n\n handleScroll();\n\n if (content) {\n content.addEventListener(\"scroll\", throttledScrollHandler);\n }\n\n return () => {\n if (content) {\n content.removeEventListener(\"scroll\", throttledScrollHandler);\n }\n\n throttledScrollHandler.cancel();\n };\n }, [handleScroll, throttledScrollHandler]);\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n\n function handleResize() {\n handleScroll();\n\n if (onResize) {\n onResize({\n content: contentRef.current!,\n wrapper: wrapperRef.current!,\n });\n }\n }\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderFade = () => {\n return (\n <>\n {showFadeLeft && (\n <div\n ref={fadeLeftRef}\n className={clsx(styles.fade, styles.fadeLeft)}\n data-id=\"left-fade\"\n >\n {showIndicator && (\n <ClickableIcon\n className={clsx(\n styles.fadeIndicatorButton,\n styles.indicatorLeft\n )}\n data-id=\"left-fade-indicator-button\"\n >\n <ChevronLeftIcon />\n </ClickableIcon>\n )}\n </div>\n )}\n {showFadeRight && (\n <div\n ref={fadeRightRef}\n className={clsx(styles.fade, styles.fadeRight)}\n data-id=\"right-fade\"\n >\n {showIndicator && (\n <ClickableIcon\n className={clsx(\n styles.fadeIndicatorButton,\n styles.indicatorRight\n )}\n data-id=\"right-fade-indicator-button\"\n >\n <ChevronRightIcon />\n </ClickableIcon>\n )}\n </div>\n )}\n </>\n );\n };\n\n return (\n <div\n ref={wrapperRef}\n className={clsx(styles.wrapper, className)}\n {...otherProps}\n >\n <div ref={contentRef} className={styles.content}>\n {children}\n </div>\n {renderFade()}\n </div>\n );\n};\n\nexport const FadeWrapper = forwardRef(Component);\n"],"names":["FadeWrapper","forwardRef","_a","ref","children","className","fadeColor","fadePosition","showIndicator","onResize","otherProps","__rest","showFadeLeft","setShowFadeLeft","useState","showFadeRight","setShowFadeRight","wrapperRef","useRef","contentRef","fadeLeftRef","fadeRightRef","fadeColorSet","getFadeColorSet","useApplyStyle","styles.tokens","backgroundColor","getFadeBackgroundColorValue","left","right","useResizeDetector","handleResize","targetRef","refreshMode","refreshRate","useImperativeHandle","resize","scrollToEnd","content","current","wrapper","scrollLeft","scrollWidth","offsetWidth","handleScroll","useCallback","Math","round","throttledScrollHandler","useMemo","throttle","useEffect","addEventListener","removeEventListener","cancel","_jsxs","Object","assign","clsx","styles.wrapper","_jsx","styles.content","styles.fade","styles.fadeLeft","ClickableIcon","styles.fadeIndicatorButton","styles.indicatorLeft","ChevronLeftIcon","styles.fadeRight","styles.indicatorRight","ChevronRightIcon"],"mappings":"ysCAsBA,MA6LaA,EAAcC,GA7LT,CACdC,EASAC,SATAC,SACIA,EAAQC,UACRA,EAASC,UACTA,EAASC,aACTA,EAAe,OAAMC,cACrBA,GAAgB,EAAKC,SACrBA,GAAQP,EACLQ,EAAUC,EAAAT,EAPjB,gFAcA,MAAOU,EAAcC,GAAmBC,EACnB,SAAjBP,GAA4C,SAAjBA,IAExBQ,EAAeC,GAAoBF,EACrB,UAAjBP,GAA6C,SAAjBA,GAG1BU,EAAaC,EAAuB,MACpCC,EAAaD,EAAuB,MACpCE,EAAcF,EAAuB,MACrCG,EAAeH,EAAuB,MAEtCI,EAAeC,EAAgBjB,GAErCkB,EAAcJ,EAAa,CACvB,CAACK,EAAcC,iBAAkBC,EAC7BL,EAAaM,KACbpB,KAGRgB,EAAcH,EAAc,CACxB,CAACI,EAAcC,iBAAkBC,EAC7BL,EAAaO,MACbrB,KAKRsB,EAAkB,CACdrB,SAAUsB,EACVC,UAAWf,EACXgB,YAAa,WACbC,YAAa,KAGjBC,EAAoBhC,GAAK,KACd,CACH,MAAAiC,GACIL,GACJ,EACA,WAAAM,GACI,MAAMC,EAAUnB,EAAWoB,QACrBC,EAAUvB,EAAWsB,QACvBD,GAAWE,IACXF,EAAQG,WACJH,EAAQI,YAAcF,EAAQG,YAE1C,MAOR,MAAMC,EAAeC,GAAY,KAC7B,MAAML,EAAUvB,EAAWsB,QACrBD,EAAUnB,EAAWoB,QAEvBC,GAAWF,GAAWA,EAAQI,YAAcF,EAAQG,aAMpD3B,EACI8B,KAAKC,MAAMT,EAAQG,YACfH,EAAQI,YAAcJ,EAAQK,aAEtC9B,EAAgByB,EAAQG,YAAc,KAEtCzB,GAAiB,GACjBH,GAAgB,GACpB,GACD,IAEGmC,EAAyBC,GAAQ,IAC5BC,EAASN,EAAc,KAC/B,CAACA,IAwBJ,SAASb,IACLa,IAEInC,GACAA,EAAS,CACL6B,QAASnB,EAAWoB,QACpBC,QAASvB,EAAWsB,SAGhC,CA/BAY,GAAU,KACN,MAAMb,EAAUnB,EAAWoB,QAQ3B,OANAK,IAEIN,GACAA,EAAQc,iBAAiB,SAAUJ,GAGhC,KACCV,GACAA,EAAQe,oBAAoB,SAAUL,GAG1CA,EAAuBM,QAAQ,CAClC,GACF,CAACV,EAAcI,IAiElB,OACIO,EAAA,MAAAC,OAAAC,OAAA,CACItD,IAAKc,EACLZ,UAAWqD,EAAKC,EAAgBtD,IAC5BK,EAAU,CAAAN,SAAA,CAEdwD,EAAA,MAAA,CAAKzD,IAAKgB,EAAYd,UAAWwD,EAAczD,SAC1CA,IAlDLmD,eACK3C,GACGgD,EAAA,MAAA,CACIzD,IAAKiB,EACLf,UAAWqD,EAAKI,EAAaC,GAAgB,UACrC,YAAW3D,SAElBI,GACGoD,EAACI,EAAa,CACV3D,UAAWqD,EACPO,EACAC,GACH,UACO,6BAA4B9D,SAEpCwD,EAACO,EAAe,CAAA,OAK/BpD,GACG6C,EAAA,MAAA,CACIzD,IAAKkB,EACLhB,UAAWqD,EAAKI,EAAaM,aACrB,aAAYhE,SAEnBI,GACGoD,EAACI,EAAa,CACV3D,UAAWqD,EACPO,EACAI,aAEI,8BAA6BjE,SAErCwD,EAACU,EAAgB,CAAA,aAmBnC"}
|
package/shared/styles/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates CSS for a styled scrollbar. Pass "vertical" for panels that scroll
|
|
3
|
+
* vertically and "horizontal" for containers that scroll horizontally.
|
|
4
|
+
*/
|
|
5
|
+
export declare const scrollbarCss: (axis: "vertical" | "horizontal") => string;
|
|
1
6
|
/**
|
|
2
7
|
* Generates CSS for limiting text to a specified number of lines after which it
|
|
3
8
|
* is truncated with an ellipsis.
|
package/theme/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{ThemeProvider}from"./theme-provider/index.js";export{useInheritedThemeScope,useTheme}from"./theme-provider/hooks.js";export{Border,BorderStyle,BorderThickness}from"./tokens/border.js";export{Breakpoint}from"./tokens/breakpoint.js";export{Colour,PrimitiveColours,SemanticColours}from"./tokens/colour.js";export{ComponentToken}from"./tokens/component.js";export{Font,FontSpec}from"./tokens/font.js";export{MediaQuery}from"./tokens/media-query.js";export{Motion}from"./tokens/motion.js";export{Radius}from"./tokens/radius.js";export{Shadow}from"./tokens/shadow.js";export{Spacing}from"./tokens/spacing.js";export{THEME_TYPES}from"./types.js";export{formatUnitValue,parsePxOrRemValue}from"./utils/css-variable.js";export{useApplyStyle}from"./utils/use-apply-styles.js";export{useDesignToken}from"./utils/use-design-token.js";export{useMaxWidthMediaQuery,useMediaQuery,useMinWidthMediaQuery,useResolvedBreakpointToken}from"./utils/use-media-query.js";
|
|
1
|
+
export{ThemeProvider}from"./theme-provider/index.js";export{useInheritedThemeScope,useTheme}from"./theme-provider/hooks.js";export{Border,BorderStyle,BorderThickness}from"./tokens/border.js";export{Breakpoint}from"./tokens/breakpoint.js";export{Colour,PrimitiveColours,SemanticColours}from"./tokens/colour.js";export{ComponentToken}from"./tokens/component.js";export{Font,FontSpec}from"./tokens/font.js";export{MediaQuery}from"./tokens/media-query.js";export{Motion}from"./tokens/motion.js";export{Radius}from"./tokens/radius.js";export{Shadow}from"./tokens/shadow.js";export{Spacing}from"./tokens/spacing.js";export{THEME_FONT_PRESETS,THEME_TYPES}from"./types.js";export{formatUnitValue,parsePxOrRemValue}from"./utils/css-variable.js";export{useApplyStyle}from"./utils/use-apply-styles.js";export{useDesignToken}from"./utils/use-design-token.js";export{useMaxWidthMediaQuery,useMediaQuery,useMinWidthMediaQuery,useResolvedBreakpointToken}from"./utils/use-media-query.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -103,6 +103,9 @@
|
|
|
103
103
|
--fds-radius-sm: 4px;
|
|
104
104
|
--fds-radius-md: 8px;
|
|
105
105
|
--fds-radius-lg: 12px;
|
|
106
|
+
--fds-radius-xl: 16px;
|
|
107
|
+
--fds-radius-xxl: 24px;
|
|
108
|
+
--fds-radius-xxxl: 32px;
|
|
106
109
|
--fds-radius-full: 9999px;
|
|
107
110
|
}
|
|
108
111
|
|
|
@@ -224,6 +227,8 @@
|
|
|
224
227
|
|
|
225
228
|
--fds-colour-text-primary-strong: var(--fds-colour-primary-40);
|
|
226
229
|
|
|
230
|
+
--fds-colour-text-primary-stronger: var(--fds-colour-primary-30);
|
|
231
|
+
|
|
227
232
|
--fds-colour-text-primary-strongest: var(--fds-colour-primary-20);
|
|
228
233
|
|
|
229
234
|
--fds-colour-text-brand: var(--fds-colour-brand-50);
|
|
@@ -360,6 +365,28 @@
|
|
|
360
365
|
|
|
361
366
|
--fds-colour-bg-strongest: var(--fds-colour-neutral-90);
|
|
362
367
|
|
|
368
|
+
--fds-colour-bg-primary: var(--fds-colour-primary-50);
|
|
369
|
+
|
|
370
|
+
--fds-colour-bg-primary-strong: var(--fds-colour-primary-40);
|
|
371
|
+
|
|
372
|
+
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-60);
|
|
373
|
+
|
|
374
|
+
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-95);
|
|
375
|
+
|
|
376
|
+
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-100);
|
|
377
|
+
|
|
378
|
+
--fds-colour-bg-brand-subtler: var(--fds-colour-brand-95);
|
|
379
|
+
|
|
380
|
+
--fds-colour-bg-brand-subtlest: var(--fds-colour-brand-100);
|
|
381
|
+
|
|
382
|
+
--fds-colour-bg-secondary: var(--fds-colour-secondary-50);
|
|
383
|
+
|
|
384
|
+
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-60);
|
|
385
|
+
|
|
386
|
+
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-95);
|
|
387
|
+
|
|
388
|
+
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-100);
|
|
389
|
+
|
|
363
390
|
--fds-colour-bg-hover: var(--fds-colour-primary-95);
|
|
364
391
|
|
|
365
392
|
--fds-colour-bg-hover-strong: var(--fds-colour-primary-90);
|
|
@@ -430,24 +457,6 @@
|
|
|
430
457
|
|
|
431
458
|
--fds-colour-bg-inverse-hover: var(--fds-colour-neutral-40);
|
|
432
459
|
|
|
433
|
-
--fds-colour-bg-primary: var(--fds-colour-primary-50);
|
|
434
|
-
|
|
435
|
-
--fds-colour-bg-primary-strong: var(--fds-colour-primary-40);
|
|
436
|
-
|
|
437
|
-
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-60);
|
|
438
|
-
|
|
439
|
-
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-95);
|
|
440
|
-
|
|
441
|
-
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-100);
|
|
442
|
-
|
|
443
|
-
--fds-colour-bg-secondary: var(--fds-colour-secondary-50);
|
|
444
|
-
|
|
445
|
-
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-60);
|
|
446
|
-
|
|
447
|
-
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-95);
|
|
448
|
-
|
|
449
|
-
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-100);
|
|
450
|
-
|
|
451
460
|
--fds-colour-bg-available: #6DD0A1;
|
|
452
461
|
|
|
453
462
|
--fds-colour-bg-primary-hover: var(--fds-colour-primary-40);
|
|
@@ -653,12 +662,13 @@
|
|
|
653
662
|
/* text */
|
|
654
663
|
--fds-colour-text: var(--fds-colour-neutral-100);
|
|
655
664
|
--fds-colour-text-subtle: var(--fds-colour-neutral-80);
|
|
656
|
-
--fds-colour-text-subtler: var(--fds-colour-neutral-
|
|
657
|
-
--fds-colour-text-subtlest: var(--fds-colour-neutral-
|
|
665
|
+
--fds-colour-text-subtler: var(--fds-colour-neutral-70);
|
|
666
|
+
--fds-colour-text-subtlest: var(--fds-colour-neutral-60);
|
|
658
667
|
--fds-colour-text-primary: var(--fds-colour-primary-60);
|
|
659
668
|
--fds-colour-text-primary-strong: var(--fds-colour-primary-70);
|
|
669
|
+
--fds-colour-text-primary-stronger: var(--fds-colour-primary-80);
|
|
660
670
|
--fds-colour-text-primary-strongest: var(--fds-colour-primary-90);
|
|
661
|
-
--fds-colour-text-brand: var(--fds-colour-brand-
|
|
671
|
+
--fds-colour-text-brand: var(--fds-colour-brand-60);
|
|
662
672
|
--fds-colour-text-secondary: var(--fds-colour-secondary-60);
|
|
663
673
|
--fds-colour-text-secondary-subtle: var(--fds-colour-secondary-50);
|
|
664
674
|
--fds-colour-text-hover: var(--fds-colour-primary-70);
|
|
@@ -674,13 +684,13 @@
|
|
|
674
684
|
--fds-colour-text-info: var(--fds-colour-info-70);
|
|
675
685
|
--fds-colour-text-inverse: var(--fds-colour-black);
|
|
676
686
|
/* icon */
|
|
677
|
-
--fds-colour-icon: var(--fds-colour-neutral-
|
|
678
|
-
--fds-colour-icon-subtle: var(--fds-colour-neutral-
|
|
679
|
-
--fds-colour-icon-strongest: var(--fds-colour-neutral-
|
|
687
|
+
--fds-colour-icon: var(--fds-colour-neutral-70);
|
|
688
|
+
--fds-colour-icon-subtle: var(--fds-colour-neutral-60);
|
|
689
|
+
--fds-colour-icon-strongest: var(--fds-colour-neutral-100);
|
|
680
690
|
--fds-colour-icon-primary: var(--fds-colour-primary-60);
|
|
681
691
|
--fds-colour-icon-primary-subtle: var(--fds-colour-primary-50);
|
|
682
692
|
--fds-colour-icon-primary-subtlest: var(--fds-colour-primary-40);
|
|
683
|
-
--fds-colour-icon-brand: var(--fds-colour-brand-
|
|
693
|
+
--fds-colour-icon-brand: var(--fds-colour-brand-60);
|
|
684
694
|
--fds-colour-icon-secondary: var(--fds-colour-secondary-60);
|
|
685
695
|
--fds-colour-icon-secondary-subtle: var(--fds-colour-secondary-50);
|
|
686
696
|
--fds-colour-icon-hover: var(--fds-colour-primary-70);
|
|
@@ -690,15 +700,15 @@
|
|
|
690
700
|
--fds-colour-icon-disabled-subtle: var(--fds-colour-neutral-50);
|
|
691
701
|
--fds-colour-icon-selected-disabled: var(--fds-colour-neutral-50);
|
|
692
702
|
--fds-colour-icon-success: var(--fds-colour-success-60);
|
|
693
|
-
--fds-colour-icon-warning: var(--fds-colour-warning-
|
|
703
|
+
--fds-colour-icon-warning: var(--fds-colour-warning-70);
|
|
694
704
|
--fds-colour-icon-error: var(--fds-colour-error-60);
|
|
695
705
|
--fds-colour-icon-error-strong: var(--fds-colour-error-70);
|
|
696
706
|
--fds-colour-icon-info: var(--fds-colour-info-60);
|
|
697
707
|
--fds-colour-icon-inverse: var(--fds-colour-black);
|
|
698
708
|
--fds-colour-icon-primary-inverse: var(--fds-colour-primary-inverse);
|
|
699
709
|
/* border - adjusted for dark mode */
|
|
700
|
-
--fds-colour-border: var(--fds-colour-neutral-
|
|
701
|
-
--fds-colour-border-strong: var(--fds-colour-neutral-
|
|
710
|
+
--fds-colour-border: var(--fds-colour-neutral-40);
|
|
711
|
+
--fds-colour-border-strong: var(--fds-colour-neutral-50);
|
|
702
712
|
--fds-colour-border-stronger: var(--fds-colour-neutral-60);
|
|
703
713
|
--fds-colour-border-primary: var(--fds-colour-primary-60);
|
|
704
714
|
--fds-colour-border-primary-strong: var(--fds-colour-primary-70);
|
|
@@ -724,7 +734,18 @@
|
|
|
724
734
|
--fds-colour-bg: var(--fds-colour-black);
|
|
725
735
|
--fds-colour-bg-strong: var(--fds-colour-neutral-10);
|
|
726
736
|
--fds-colour-bg-stronger: var(--fds-colour-neutral-20);
|
|
727
|
-
--fds-colour-bg-strongest: var(--fds-colour-neutral-
|
|
737
|
+
--fds-colour-bg-strongest: var(--fds-colour-neutral-30);
|
|
738
|
+
--fds-colour-bg-primary: var(--fds-colour-primary-60);
|
|
739
|
+
--fds-colour-bg-primary-strong: var(--fds-colour-primary-70);
|
|
740
|
+
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-50);
|
|
741
|
+
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-20);
|
|
742
|
+
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-10);
|
|
743
|
+
--fds-colour-bg-brand-subtler: var(--fds-colour-brand-20);
|
|
744
|
+
--fds-colour-bg-brand-subtlest: var(--fds-colour-brand-10);
|
|
745
|
+
--fds-colour-bg-secondary: var(--fds-colour-secondary-60);
|
|
746
|
+
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-50);
|
|
747
|
+
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-20);
|
|
748
|
+
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-10);
|
|
728
749
|
--fds-colour-bg-hover: var(--fds-colour-primary-20);
|
|
729
750
|
--fds-colour-bg-hover-strong: var(--fds-colour-primary-20);
|
|
730
751
|
--fds-colour-bg-hover-subtle: var(--fds-colour-primary-10);
|
|
@@ -745,8 +766,8 @@
|
|
|
745
766
|
--fds-colour-bg-success-strong-hover: var(--fds-colour-success-70);
|
|
746
767
|
--fds-colour-bg-warning: var(--fds-colour-warning-10);
|
|
747
768
|
--fds-colour-bg-warning-hover: var(--fds-colour-warning-20);
|
|
748
|
-
--fds-colour-bg-warning-strong: var(--fds-colour-warning-
|
|
749
|
-
--fds-colour-bg-warning-strong-hover: var(--fds-colour-warning-
|
|
769
|
+
--fds-colour-bg-warning-strong: var(--fds-colour-warning-70);
|
|
770
|
+
--fds-colour-bg-warning-strong-hover: var(--fds-colour-warning-80);
|
|
750
771
|
--fds-colour-bg-info: var(--fds-colour-info-10);
|
|
751
772
|
--fds-colour-bg-info-hover: var(--fds-colour-info-20);
|
|
752
773
|
--fds-colour-bg-info-strong: var(--fds-colour-info-60);
|
|
@@ -760,16 +781,7 @@
|
|
|
760
781
|
--fds-colour-bg-inverse-subtler: var(--fds-colour-neutral-60);
|
|
761
782
|
--fds-colour-bg-inverse-subtlest: var(--fds-colour-neutral-50);
|
|
762
783
|
--fds-colour-bg-inverse-hover: var(--fds-colour-neutral-70);
|
|
763
|
-
--fds-colour-bg-primary: var(--fds-colour-primary-60);
|
|
764
|
-
--fds-colour-bg-primary-strong: var(--fds-colour-primary-70);
|
|
765
|
-
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-50);
|
|
766
|
-
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-20);
|
|
767
|
-
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-10);
|
|
768
784
|
--fds-colour-bg-available: #185339;
|
|
769
|
-
--fds-colour-bg-secondary: var(--fds-colour-secondary-60);
|
|
770
|
-
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-50);
|
|
771
|
-
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-20);
|
|
772
|
-
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-10);
|
|
773
785
|
--fds-colour-bg-primary-hover: var(--fds-colour-primary-70);
|
|
774
786
|
--fds-colour-bg-primary-strong-hover: var(--fds-colour-primary-80);
|
|
775
787
|
--fds-colour-bg-primary-subtlest-hover: var(--fds-colour-primary-20);
|
|
@@ -103,6 +103,9 @@
|
|
|
103
103
|
--fds-radius-sm: 4px;
|
|
104
104
|
--fds-radius-md: 8px;
|
|
105
105
|
--fds-radius-lg: 12px;
|
|
106
|
+
--fds-radius-xl: 16px;
|
|
107
|
+
--fds-radius-xxl: 24px;
|
|
108
|
+
--fds-radius-xxxl: 32px;
|
|
106
109
|
--fds-radius-full: 9999px;
|
|
107
110
|
}
|
|
108
111
|
|
|
@@ -224,6 +227,8 @@
|
|
|
224
227
|
|
|
225
228
|
--fds-colour-text-primary-strong: var(--fds-colour-primary-40);
|
|
226
229
|
|
|
230
|
+
--fds-colour-text-primary-stronger: var(--fds-colour-primary-30);
|
|
231
|
+
|
|
227
232
|
--fds-colour-text-primary-strongest: var(--fds-colour-primary-20);
|
|
228
233
|
|
|
229
234
|
--fds-colour-text-brand: var(--fds-colour-brand-50);
|
|
@@ -360,6 +365,28 @@
|
|
|
360
365
|
|
|
361
366
|
--fds-colour-bg-strongest: var(--fds-colour-neutral-90);
|
|
362
367
|
|
|
368
|
+
--fds-colour-bg-primary: var(--fds-colour-primary-50);
|
|
369
|
+
|
|
370
|
+
--fds-colour-bg-primary-strong: var(--fds-colour-primary-40);
|
|
371
|
+
|
|
372
|
+
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-60);
|
|
373
|
+
|
|
374
|
+
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-95);
|
|
375
|
+
|
|
376
|
+
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-100);
|
|
377
|
+
|
|
378
|
+
--fds-colour-bg-brand-subtler: var(--fds-colour-brand-95);
|
|
379
|
+
|
|
380
|
+
--fds-colour-bg-brand-subtlest: var(--fds-colour-brand-100);
|
|
381
|
+
|
|
382
|
+
--fds-colour-bg-secondary: var(--fds-colour-secondary-50);
|
|
383
|
+
|
|
384
|
+
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-60);
|
|
385
|
+
|
|
386
|
+
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-95);
|
|
387
|
+
|
|
388
|
+
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-100);
|
|
389
|
+
|
|
363
390
|
--fds-colour-bg-hover: var(--fds-colour-primary-95);
|
|
364
391
|
|
|
365
392
|
--fds-colour-bg-hover-strong: var(--fds-colour-primary-90);
|
|
@@ -430,24 +457,6 @@
|
|
|
430
457
|
|
|
431
458
|
--fds-colour-bg-inverse-hover: var(--fds-colour-neutral-40);
|
|
432
459
|
|
|
433
|
-
--fds-colour-bg-primary: var(--fds-colour-primary-50);
|
|
434
|
-
|
|
435
|
-
--fds-colour-bg-primary-strong: var(--fds-colour-primary-40);
|
|
436
|
-
|
|
437
|
-
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-60);
|
|
438
|
-
|
|
439
|
-
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-95);
|
|
440
|
-
|
|
441
|
-
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-100);
|
|
442
|
-
|
|
443
|
-
--fds-colour-bg-secondary: var(--fds-colour-secondary-50);
|
|
444
|
-
|
|
445
|
-
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-60);
|
|
446
|
-
|
|
447
|
-
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-95);
|
|
448
|
-
|
|
449
|
-
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-100);
|
|
450
|
-
|
|
451
460
|
--fds-colour-bg-available: #6DD0A1;
|
|
452
461
|
|
|
453
462
|
--fds-colour-bg-primary-hover: var(--fds-colour-primary-40);
|
|
@@ -688,12 +697,13 @@
|
|
|
688
697
|
/* text */
|
|
689
698
|
--fds-colour-text: var(--fds-colour-neutral-100);
|
|
690
699
|
--fds-colour-text-subtle: var(--fds-colour-neutral-80);
|
|
691
|
-
--fds-colour-text-subtler: var(--fds-colour-neutral-
|
|
692
|
-
--fds-colour-text-subtlest: var(--fds-colour-neutral-
|
|
700
|
+
--fds-colour-text-subtler: var(--fds-colour-neutral-70);
|
|
701
|
+
--fds-colour-text-subtlest: var(--fds-colour-neutral-60);
|
|
693
702
|
--fds-colour-text-primary: var(--fds-colour-primary-60);
|
|
694
703
|
--fds-colour-text-primary-strong: var(--fds-colour-primary-70);
|
|
704
|
+
--fds-colour-text-primary-stronger: var(--fds-colour-primary-80);
|
|
695
705
|
--fds-colour-text-primary-strongest: var(--fds-colour-primary-90);
|
|
696
|
-
--fds-colour-text-brand: var(--fds-colour-brand-
|
|
706
|
+
--fds-colour-text-brand: var(--fds-colour-brand-60);
|
|
697
707
|
--fds-colour-text-secondary: var(--fds-colour-secondary-60);
|
|
698
708
|
--fds-colour-text-secondary-subtle: var(--fds-colour-secondary-50);
|
|
699
709
|
--fds-colour-text-hover: var(--fds-colour-primary-70);
|
|
@@ -709,13 +719,13 @@
|
|
|
709
719
|
--fds-colour-text-info: var(--fds-colour-info-70);
|
|
710
720
|
--fds-colour-text-inverse: var(--fds-colour-black);
|
|
711
721
|
/* icon */
|
|
712
|
-
--fds-colour-icon: var(--fds-colour-neutral-
|
|
713
|
-
--fds-colour-icon-subtle: var(--fds-colour-neutral-
|
|
714
|
-
--fds-colour-icon-strongest: var(--fds-colour-neutral-
|
|
722
|
+
--fds-colour-icon: var(--fds-colour-neutral-70);
|
|
723
|
+
--fds-colour-icon-subtle: var(--fds-colour-neutral-60);
|
|
724
|
+
--fds-colour-icon-strongest: var(--fds-colour-neutral-100);
|
|
715
725
|
--fds-colour-icon-primary: var(--fds-colour-primary-60);
|
|
716
726
|
--fds-colour-icon-primary-subtle: var(--fds-colour-primary-50);
|
|
717
727
|
--fds-colour-icon-primary-subtlest: var(--fds-colour-primary-40);
|
|
718
|
-
--fds-colour-icon-brand: var(--fds-colour-brand-
|
|
728
|
+
--fds-colour-icon-brand: var(--fds-colour-brand-60);
|
|
719
729
|
--fds-colour-icon-secondary: var(--fds-colour-secondary-60);
|
|
720
730
|
--fds-colour-icon-secondary-subtle: var(--fds-colour-secondary-50);
|
|
721
731
|
--fds-colour-icon-hover: var(--fds-colour-primary-70);
|
|
@@ -725,15 +735,15 @@
|
|
|
725
735
|
--fds-colour-icon-disabled-subtle: var(--fds-colour-neutral-50);
|
|
726
736
|
--fds-colour-icon-selected-disabled: var(--fds-colour-neutral-50);
|
|
727
737
|
--fds-colour-icon-success: var(--fds-colour-success-60);
|
|
728
|
-
--fds-colour-icon-warning: var(--fds-colour-warning-
|
|
738
|
+
--fds-colour-icon-warning: var(--fds-colour-warning-70);
|
|
729
739
|
--fds-colour-icon-error: var(--fds-colour-error-60);
|
|
730
740
|
--fds-colour-icon-error-strong: var(--fds-colour-error-70);
|
|
731
741
|
--fds-colour-icon-info: var(--fds-colour-info-60);
|
|
732
742
|
--fds-colour-icon-inverse: var(--fds-colour-black);
|
|
733
743
|
--fds-colour-icon-primary-inverse: var(--fds-colour-primary-inverse);
|
|
734
744
|
/* border - adjusted for dark mode */
|
|
735
|
-
--fds-colour-border: var(--fds-colour-neutral-
|
|
736
|
-
--fds-colour-border-strong: var(--fds-colour-neutral-
|
|
745
|
+
--fds-colour-border: var(--fds-colour-neutral-40);
|
|
746
|
+
--fds-colour-border-strong: var(--fds-colour-neutral-50);
|
|
737
747
|
--fds-colour-border-stronger: var(--fds-colour-neutral-60);
|
|
738
748
|
--fds-colour-border-primary: var(--fds-colour-primary-60);
|
|
739
749
|
--fds-colour-border-primary-strong: var(--fds-colour-primary-70);
|
|
@@ -759,7 +769,18 @@
|
|
|
759
769
|
--fds-colour-bg: var(--fds-colour-black);
|
|
760
770
|
--fds-colour-bg-strong: var(--fds-colour-neutral-10);
|
|
761
771
|
--fds-colour-bg-stronger: var(--fds-colour-neutral-20);
|
|
762
|
-
--fds-colour-bg-strongest: var(--fds-colour-neutral-
|
|
772
|
+
--fds-colour-bg-strongest: var(--fds-colour-neutral-30);
|
|
773
|
+
--fds-colour-bg-primary: var(--fds-colour-primary-60);
|
|
774
|
+
--fds-colour-bg-primary-strong: var(--fds-colour-primary-70);
|
|
775
|
+
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-50);
|
|
776
|
+
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-20);
|
|
777
|
+
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-10);
|
|
778
|
+
--fds-colour-bg-brand-subtler: var(--fds-colour-brand-20);
|
|
779
|
+
--fds-colour-bg-brand-subtlest: var(--fds-colour-brand-10);
|
|
780
|
+
--fds-colour-bg-secondary: var(--fds-colour-secondary-60);
|
|
781
|
+
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-50);
|
|
782
|
+
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-20);
|
|
783
|
+
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-10);
|
|
763
784
|
--fds-colour-bg-hover: var(--fds-colour-primary-20);
|
|
764
785
|
--fds-colour-bg-hover-strong: var(--fds-colour-primary-20);
|
|
765
786
|
--fds-colour-bg-hover-subtle: var(--fds-colour-primary-10);
|
|
@@ -780,8 +801,8 @@
|
|
|
780
801
|
--fds-colour-bg-success-strong-hover: var(--fds-colour-success-70);
|
|
781
802
|
--fds-colour-bg-warning: var(--fds-colour-warning-10);
|
|
782
803
|
--fds-colour-bg-warning-hover: var(--fds-colour-warning-20);
|
|
783
|
-
--fds-colour-bg-warning-strong: var(--fds-colour-warning-
|
|
784
|
-
--fds-colour-bg-warning-strong-hover: var(--fds-colour-warning-
|
|
804
|
+
--fds-colour-bg-warning-strong: var(--fds-colour-warning-70);
|
|
805
|
+
--fds-colour-bg-warning-strong-hover: var(--fds-colour-warning-80);
|
|
785
806
|
--fds-colour-bg-info: var(--fds-colour-info-10);
|
|
786
807
|
--fds-colour-bg-info-hover: var(--fds-colour-info-20);
|
|
787
808
|
--fds-colour-bg-info-strong: var(--fds-colour-info-60);
|
|
@@ -795,16 +816,7 @@
|
|
|
795
816
|
--fds-colour-bg-inverse-subtler: var(--fds-colour-neutral-60);
|
|
796
817
|
--fds-colour-bg-inverse-subtlest: var(--fds-colour-neutral-50);
|
|
797
818
|
--fds-colour-bg-inverse-hover: var(--fds-colour-neutral-70);
|
|
798
|
-
--fds-colour-bg-primary: var(--fds-colour-primary-60);
|
|
799
|
-
--fds-colour-bg-primary-strong: var(--fds-colour-primary-70);
|
|
800
|
-
--fds-colour-bg-primary-subtle: var(--fds-colour-primary-50);
|
|
801
|
-
--fds-colour-bg-primary-subtler: var(--fds-colour-primary-20);
|
|
802
|
-
--fds-colour-bg-primary-subtlest: var(--fds-colour-primary-10);
|
|
803
819
|
--fds-colour-bg-available: #185339;
|
|
804
|
-
--fds-colour-bg-secondary: var(--fds-colour-secondary-60);
|
|
805
|
-
--fds-colour-bg-secondary-subtle: var(--fds-colour-secondary-50);
|
|
806
|
-
--fds-colour-bg-secondary-subtler: var(--fds-colour-secondary-20);
|
|
807
|
-
--fds-colour-bg-secondary-subtlest: var(--fds-colour-secondary-10);
|
|
808
820
|
--fds-colour-bg-primary-hover: var(--fds-colour-primary-70);
|
|
809
821
|
--fds-colour-bg-primary-strong-hover: var(--fds-colour-primary-80);
|
|
810
822
|
--fds-colour-bg-primary-subtlest-hover: var(--fds-colour-primary-20);
|