@govtechsg/sgds-web-component 3.3.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/card-element.d.ts +19 -0
- package/base/card-element.js +43 -2
- package/base/card-element.js.map +1 -1
- package/base/card.js +1 -1
- package/{src/base → base}/dropdown-element.d.ts +3 -1
- package/base/dropdown-element.js +2 -1
- package/base/dropdown-element.js.map +1 -1
- package/base/select-element.js +3 -1
- package/base/select-element.js.map +1 -1
- package/components/Breadcrumb/index.umd.js +3 -2
- package/components/Breadcrumb/index.umd.js.map +1 -1
- package/{src/components → components}/Breadcrumb/sgds-breadcrumb.d.ts +1 -1
- package/components/Breadcrumb/sgds-breadcrumb.js +1 -1
- package/components/Breadcrumb/sgds-breadcrumb.js.map +1 -1
- package/components/Card/card.js +1 -1
- package/components/Card/index.umd.js +83 -82
- package/components/Card/index.umd.js.map +1 -1
- package/{src/components → components}/Card/sgds-card.d.ts +4 -15
- package/components/Card/sgds-card.js +16 -56
- package/components/Card/sgds-card.js.map +1 -1
- package/components/Card/types.d.ts +3 -0
- package/components/ComboBox/combo-box.js +1 -1
- package/components/ComboBox/index.umd.js +18 -3
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/Datepicker/index.umd.js +17 -12
- package/components/Datepicker/index.umd.js.map +1 -1
- package/{src/components → components}/Datepicker/sgds-datepicker.d.ts +3 -2
- package/components/Datepicker/sgds-datepicker.js +15 -11
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/Dropdown/dropdown.js +1 -1
- package/components/Dropdown/index.umd.js +3 -2
- package/components/Dropdown/index.umd.js.map +1 -1
- package/components/IconCard/icon-card.js +6 -0
- package/components/IconCard/icon-card.js.map +1 -0
- package/components/IconCard/index.d.ts +6 -0
- package/components/IconCard/index.js +4 -0
- package/components/IconCard/index.js.map +1 -0
- package/components/IconCard/index.umd.js +4750 -0
- package/components/IconCard/index.umd.js.map +1 -0
- package/components/IconCard/sgds-icon-card.d.ts +24 -0
- package/components/IconCard/sgds-icon-card.js +83 -0
- package/components/IconCard/sgds-icon-card.js.map +1 -0
- package/components/ImageCard/image-card.js +6 -0
- package/components/ImageCard/image-card.js.map +1 -0
- package/components/ImageCard/index.d.ts +6 -0
- package/components/ImageCard/index.js +4 -0
- package/components/ImageCard/index.js.map +1 -0
- package/components/ImageCard/index.umd.js +4764 -0
- package/components/ImageCard/index.umd.js.map +1 -0
- package/components/ImageCard/sgds-image-card.d.ts +30 -0
- package/components/ImageCard/sgds-image-card.js +97 -0
- package/components/ImageCard/sgds-image-card.js.map +1 -0
- package/components/Mainnav/index.umd.js +5 -4
- package/components/Mainnav/index.umd.js.map +1 -1
- package/components/Mainnav/mainnav.js +1 -1
- package/components/Mainnav/sgds-mainnav-dropdown.js +1 -1
- package/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
- package/components/Modal/index.umd.js +1 -1
- package/components/Modal/modal.js +1 -1
- package/components/OverflowMenu/index.js +5 -0
- package/components/OverflowMenu/index.js.map +1 -0
- package/components/OverflowMenu/index.umd.js +11130 -0
- package/components/OverflowMenu/index.umd.js.map +1 -0
- package/{src/internals → components}/OverflowMenu/sgds-overflow-menu.d.ts +3 -3
- package/{internals → components}/OverflowMenu/sgds-overflow-menu.js +3 -3
- package/components/OverflowMenu/sgds-overflow-menu.js.map +1 -0
- package/components/Select/index.umd.js +18 -3
- package/components/Select/index.umd.js.map +1 -1
- package/components/Select/select.js +1 -1
- package/components/ThumbnailCard/index.d.ts +6 -0
- package/components/ThumbnailCard/index.js +4 -0
- package/components/ThumbnailCard/index.js.map +1 -0
- package/components/ThumbnailCard/index.umd.js +4754 -0
- package/components/ThumbnailCard/index.umd.js.map +1 -0
- package/components/ThumbnailCard/sgds-thumbnail-card.d.ts +24 -0
- package/components/ThumbnailCard/sgds-thumbnail-card.js +87 -0
- package/components/ThumbnailCard/sgds-thumbnail-card.js.map +1 -0
- package/components/ThumbnailCard/thumbnail-card.js +6 -0
- package/components/ThumbnailCard/thumbnail-card.js.map +1 -0
- package/{src/components → components}/index.d.ts +4 -0
- package/components/index.js +4 -0
- package/components/index.js.map +1 -1
- package/components/index.umd.js +475 -208
- package/components/index.umd.js.map +1 -1
- package/{src/index.d.ts → index.d.ts} +4 -0
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/index.umd.js +493 -222
- package/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/react/base/card-element.cjs.js +42 -1
- package/react/base/card-element.cjs.js.map +1 -1
- package/react/base/card-element.js +43 -2
- package/react/base/card-element.js.map +1 -1
- package/react/base/card.cjs.js +1 -1
- package/react/base/card.js +1 -1
- package/react/base/dropdown-element.cjs.js +2 -1
- package/react/base/dropdown-element.cjs.js.map +1 -1
- package/react/base/dropdown-element.js +2 -1
- package/react/base/dropdown-element.js.map +1 -1
- package/react/base/select-element.cjs.js +3 -1
- package/react/base/select-element.cjs.js.map +1 -1
- package/react/base/select-element.js +3 -1
- package/react/base/select-element.js.map +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.cjs.js +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.cjs.js.map +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.js +1 -1
- package/react/components/Breadcrumb/sgds-breadcrumb.js.map +1 -1
- package/react/components/Card/card.cjs.js +1 -1
- package/react/components/Card/card.js +1 -1
- package/react/components/Card/sgds-card.cjs.js +15 -55
- package/react/components/Card/sgds-card.cjs.js.map +1 -1
- package/react/components/Card/sgds-card.js +16 -56
- package/react/components/Card/sgds-card.js.map +1 -1
- package/react/components/ComboBox/combo-box.cjs.js +1 -1
- package/react/components/ComboBox/combo-box.js +1 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js +15 -11
- package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.js +15 -11
- package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/react/components/Dropdown/dropdown.cjs.js +1 -1
- package/react/components/Dropdown/dropdown.js +1 -1
- package/react/components/IconCard/icon-card.cjs.js +11 -0
- package/react/components/IconCard/icon-card.cjs.js.map +1 -0
- package/react/components/IconCard/icon-card.js +7 -0
- package/react/components/IconCard/icon-card.js.map +1 -0
- package/react/components/IconCard/sgds-icon-card.cjs.js +89 -0
- package/react/components/IconCard/sgds-icon-card.cjs.js.map +1 -0
- package/react/components/IconCard/sgds-icon-card.js +84 -0
- package/react/components/IconCard/sgds-icon-card.js.map +1 -0
- package/react/components/ImageCard/image-card.cjs.js +11 -0
- package/react/components/ImageCard/image-card.cjs.js.map +1 -0
- package/react/components/ImageCard/image-card.js +7 -0
- package/react/components/ImageCard/image-card.js.map +1 -0
- package/react/components/ImageCard/sgds-image-card.cjs.js +103 -0
- package/react/components/ImageCard/sgds-image-card.cjs.js.map +1 -0
- package/react/components/ImageCard/sgds-image-card.js +98 -0
- package/react/components/ImageCard/sgds-image-card.js.map +1 -0
- package/react/components/Mainnav/mainnav.cjs.js +1 -1
- package/react/components/Mainnav/mainnav.js +1 -1
- package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js +1 -1
- package/react/components/Mainnav/sgds-mainnav-dropdown.cjs.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav-dropdown.js +1 -1
- package/react/components/Mainnav/sgds-mainnav-dropdown.js.map +1 -1
- package/react/components/Modal/modal.cjs.js +1 -1
- package/react/components/Modal/modal.js +1 -1
- package/react/{internals → components}/OverflowMenu/sgds-overflow-menu.cjs.js +3 -3
- package/react/components/OverflowMenu/sgds-overflow-menu.cjs.js.map +1 -0
- package/react/{internals → components}/OverflowMenu/sgds-overflow-menu.js +3 -3
- package/react/components/OverflowMenu/sgds-overflow-menu.js.map +1 -0
- package/react/components/Select/select.cjs.js +1 -1
- package/react/components/Select/select.js +1 -1
- package/react/components/ThumbnailCard/sgds-thumbnail-card.cjs.js +93 -0
- package/react/components/ThumbnailCard/sgds-thumbnail-card.cjs.js.map +1 -0
- package/react/components/ThumbnailCard/sgds-thumbnail-card.js +88 -0
- package/react/components/ThumbnailCard/sgds-thumbnail-card.js.map +1 -0
- package/react/components/ThumbnailCard/thumbnail-card.cjs.js +11 -0
- package/react/components/ThumbnailCard/thumbnail-card.cjs.js.map +1 -0
- package/react/components/ThumbnailCard/thumbnail-card.js +7 -0
- package/react/components/ThumbnailCard/thumbnail-card.js.map +1 -0
- package/react/icon-card/index.cjs.js +40 -0
- package/react/icon-card/index.cjs.js.map +1 -0
- package/react/icon-card/index.js +16 -0
- package/react/icon-card/index.js.map +1 -0
- package/react/image-card/index.cjs.js +40 -0
- package/react/image-card/index.cjs.js.map +1 -0
- package/react/image-card/index.js +16 -0
- package/react/image-card/index.js.map +1 -0
- package/react/index.cjs.js +78 -70
- package/react/index.cjs.js.map +1 -1
- package/{src/react → react}/index.d.ts +4 -0
- package/react/index.js +4 -0
- package/react/index.js.map +1 -1
- package/react/overflow-menu/index.cjs.js +40 -0
- package/react/overflow-menu/index.cjs.js.map +1 -0
- package/react/overflow-menu/index.js +16 -0
- package/react/overflow-menu/index.js.map +1 -0
- package/react/thumbnail-card/index.cjs.js +40 -0
- package/react/thumbnail-card/index.cjs.js.map +1 -0
- package/react/thumbnail-card/index.d.ts +2 -0
- package/react/thumbnail-card/index.js +16 -0
- package/react/thumbnail-card/index.js.map +1 -0
- package/react/toast/index.d.ts +2 -0
- package/react/toast-container/index.d.ts +2 -0
- package/react/tooltip/index.d.ts +2 -0
- package/react/utils/popper.cjs.js +20 -0
- package/react/utils/popper.cjs.js.map +1 -0
- package/react/utils/popper.js +16 -0
- package/react/utils/popper.js.map +1 -0
- package/utils/popper.d.ts +5 -0
- package/utils/popper.js +15 -0
- package/utils/popper.js.map +1 -0
- package/internals/OverflowMenu/sgds-overflow-menu.js.map +0 -1
- package/react/internals/OverflowMenu/sgds-overflow-menu.cjs.js.map +0 -1
- package/react/internals/OverflowMenu/sgds-overflow-menu.js.map +0 -1
- package/scripts/figma/sync-figma-to-tokens/__tests__/write-tokens-to-css-var.test.d.ts +0 -0
- package/scripts/figma/sync-figma-to-tokens/color.d.ts +0 -8
- package/scripts/figma/sync-figma-to-tokens/figma_api.d.ts +0 -8
- package/scripts/figma/sync-figma-to-tokens/sync-figma-to-tokens.d.ts +0 -1
- package/scripts/figma/sync-figma-to-tokens/token_export.d.ts +0 -5
- package/scripts/figma/sync-figma-to-tokens/token_types.d.ts +0 -52
- package/scripts/figma/sync-figma-to-tokens/utils.d.ts +0 -3
- package/scripts/figma/sync-figma-to-tokens/write-tokens-to-css-var.d.ts +0 -8
- package/src/base/card-element.d.ts +0 -8
- /package/{src/base → base}/button-element.d.ts +0 -0
- /package/{src/base → base}/dropdown-list-element.d.ts +0 -0
- /package/{src/base → base}/form-control-element.d.ts +0 -0
- /package/{src/base → base}/link-element.d.ts +0 -0
- /package/{src/base → base}/select-element.d.ts +0 -0
- /package/{src/base → base}/sgds-element.d.ts +0 -0
- /package/{src/components → components}/Accordion/index.d.ts +0 -0
- /package/{src/components → components}/Accordion/sgds-accordion-item.d.ts +0 -0
- /package/{src/components → components}/Accordion/sgds-accordion.d.ts +0 -0
- /package/{src/components → components}/Alert/index.d.ts +0 -0
- /package/{src/components → components}/Alert/sgds-alert-link.d.ts +0 -0
- /package/{src/components → components}/Alert/sgds-alert.d.ts +0 -0
- /package/{src/components → components}/Badge/index.d.ts +0 -0
- /package/{src/components → components}/Badge/sgds-badge.d.ts +0 -0
- /package/{src/components → components}/Breadcrumb/index.d.ts +0 -0
- /package/{src/components → components}/Breadcrumb/sgds-breadcrumb-item.d.ts +0 -0
- /package/{src/components → components}/Button/index.d.ts +0 -0
- /package/{src/components → components}/Button/sgds-button.d.ts +0 -0
- /package/{src/components → components}/Card/index.d.ts +0 -0
- /package/{src/components → components}/Checkbox/index.d.ts +0 -0
- /package/{src/components → components}/Checkbox/sgds-checkbox-group.d.ts +0 -0
- /package/{src/components → components}/Checkbox/sgds-checkbox.d.ts +0 -0
- /package/{src/components → components}/ComboBox/combo-box-item.d.ts +0 -0
- /package/{src/components → components}/ComboBox/index.d.ts +0 -0
- /package/{src/components → components}/ComboBox/sgds-combo-box.d.ts +0 -0
- /package/{src/components → components}/Datepicker/datepicker-calendar.d.ts +0 -0
- /package/{src/components → components}/Datepicker/datepicker-header.d.ts +0 -0
- /package/{src/components → components}/Datepicker/datepicker-input.d.ts +0 -0
- /package/{src/components → components}/Datepicker/index.d.ts +0 -0
- /package/{src/components → components}/Datepicker/types.d.ts +0 -0
- /package/{src/components → components}/DescriptionList/index.d.ts +0 -0
- /package/{src/components → components}/DescriptionList/sgds-description-list-group.d.ts +0 -0
- /package/{src/components → components}/DescriptionList/sgds-description-list.d.ts +0 -0
- /package/{src/components → components}/Divider/index.d.ts +0 -0
- /package/{src/components → components}/Divider/sgds-divider.d.ts +0 -0
- /package/{src/components → components}/Drawer/index.d.ts +0 -0
- /package/{src/components → components}/Drawer/sgds-drawer.d.ts +0 -0
- /package/{src/components → components}/Dropdown/index.d.ts +0 -0
- /package/{src/components → components}/Dropdown/sgds-dropdown-item.d.ts +0 -0
- /package/{src/components → components}/Dropdown/sgds-dropdown.d.ts +0 -0
- /package/{src/components → components}/FileUpload/index.d.ts +0 -0
- /package/{src/components → components}/FileUpload/sgds-file-upload.d.ts +0 -0
- /package/{src/components → components}/Footer/index.d.ts +0 -0
- /package/{src/components → components}/Footer/sgds-footer-item.d.ts +0 -0
- /package/{src/components → components}/Footer/sgds-footer.d.ts +0 -0
- /package/{src/components → components}/Icon/icon-registry.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/archive.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-bar-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-bar-left.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-bar-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-bar-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-circle-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-circle-left.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-circle-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-circle-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-clockwise.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-left.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-repeat.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-square-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-square-left.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-square-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-square-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/arrow-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bank-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bell-slash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bell.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bi-funnel.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bookmark-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bookmark.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/box-arrow-up-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/box-seam.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/building.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/bus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/calculator.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/calendar-check.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/calendar-x.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/calendar.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/camera.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/car.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chat-dots.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chat-left-text.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chat.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/check-circle-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/check-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/check.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chevron-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chevron-left.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chevron-right.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chevron-selector-vertical.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/chevron-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/clock.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cloud-check.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cloud-download.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cloud-upload.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cloud.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/compass.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cross.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cursor-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/cursor.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/dash-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/dash-square.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/dash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/download.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/edit.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/exclamation-circle-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/exclamation-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/exclamation-triangle-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/exclamation-triangle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/exclamation.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/eye-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/eye-slash-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/eye-slash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/eye.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/facebook.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/file-earmark-text.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/file-pdf.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/file-plus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/file-text.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/file.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/files.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/folder-check.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/folder-minus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/folder-plus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/folder.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/gear.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/geo-alt.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/geo-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/geo.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/globe-alt.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/globe.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/google.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/grid-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/hand-thumbs-down.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/hand-thumbs-up.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/hard-drive.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/heart.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/house-door.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/house.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/image.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/in-box.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/info-circle-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/info-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/instagram.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/laptop.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/layers.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/layout-text-window-reverse.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/layout-text-window.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/layout.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/lightbulb.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/link.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/linkedin.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/list.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/lock-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/lock.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/login.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/logout.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/luggage.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/mail.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/map.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/menu.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/microphone.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/monitor.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/paperclip.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/passport.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/pencil.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/pending-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/person-dash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/person-plus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/person-x.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/person.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/phone.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/pin-map-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/pin.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/placeholder.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/plane.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/plus-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/plus-square.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/plus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/printer.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/question-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/rocket.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/save.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/search.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/send.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/sg-crest.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/share.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/slash-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/sliders.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/speedometer.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/star-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/star.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/stoplights.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/switch-horizontal.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/switch-vertical.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/tablet.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/telephone.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/three-dots-vertical.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/three-dots.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/ticket.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/toggle-off.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/toggle-on.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/train.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/translate.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/trash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/truck.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/twitter-x.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/unlock.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/upload.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/user-circle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/user-square.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/users.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/video-recorder.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/volume-max.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/volume-x.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-dash.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-desktop.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-dock.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-fullscreen.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-plus.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-sidebar.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-split.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-stack.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window-x.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/window.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/xcircle-fill.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/xcircle.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/youtube.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/zoom-in.d.ts +0 -0
- /package/{src/components → components}/Icon/icons/zoom-out.d.ts +0 -0
- /package/{src/components → components}/Icon/index.d.ts +0 -0
- /package/{src/components → components}/Icon/sgds-icon.d.ts +0 -0
- /package/{src/components → components}/IconButton/index.d.ts +0 -0
- /package/{src/components → components}/IconButton/sgds-icon-button.d.ts +0 -0
- /package/{src/components → components}/IconList/index.d.ts +0 -0
- /package/{src/components → components}/IconList/sgds-icon-list.d.ts +0 -0
- /package/{src/components → components}/Input/index.d.ts +0 -0
- /package/{src/components → components}/Input/sgds-input.d.ts +0 -0
- /package/{src/components → components}/Link/index.d.ts +0 -0
- /package/{src/components → components}/Link/sgds-link.d.ts +0 -0
- /package/{src/components → components}/Mainnav/index.d.ts +0 -0
- /package/{src/components → components}/Mainnav/mainnav-context.d.ts +0 -0
- /package/{src/components → components}/Mainnav/sgds-mainnav-dropdown.d.ts +0 -0
- /package/{src/components → components}/Mainnav/sgds-mainnav-item.d.ts +0 -0
- /package/{src/components → components}/Mainnav/sgds-mainnav.d.ts +0 -0
- /package/{src/components → components}/Masthead/index.d.ts +0 -0
- /package/{src/components → components}/Masthead/sgds-masthead.d.ts +0 -0
- /package/{src/components → components}/Modal/index.d.ts +0 -0
- /package/{src/components → components}/Modal/sgds-modal.d.ts +0 -0
- /package/{src/internals → components}/OverflowMenu/index.d.ts +0 -0
- /package/{internals → components}/OverflowMenu/overflow-menu.js +0 -0
- /package/{internals → components}/OverflowMenu/overflow-menu.js.map +0 -0
- /package/{src/components → components}/Pagination/index.d.ts +0 -0
- /package/{src/components → components}/Pagination/sgds-pagination.d.ts +0 -0
- /package/{src/components → components}/ProgressBar/index.d.ts +0 -0
- /package/{src/components → components}/ProgressBar/sgds-progress-bar.d.ts +0 -0
- /package/{src/components → components}/QuantityToggle/index.d.ts +0 -0
- /package/{src/components → components}/QuantityToggle/sgds-quantity-toggle.d.ts +0 -0
- /package/{src/components → components}/Radio/index.d.ts +0 -0
- /package/{src/components → components}/Radio/sgds-radio-group.d.ts +0 -0
- /package/{src/components → components}/Radio/sgds-radio.d.ts +0 -0
- /package/{src/components → components}/Select/index.d.ts +0 -0
- /package/{src/components → components}/Select/select-item.d.ts +0 -0
- /package/{src/components → components}/Select/sgds-select.d.ts +0 -0
- /package/{src/components → components}/Sidenav/index.d.ts +0 -0
- /package/{src/components → components}/Sidenav/sgds-sidenav-item.d.ts +0 -0
- /package/{src/components → components}/Sidenav/sgds-sidenav-link.d.ts +0 -0
- /package/{src/components → components}/Sidenav/sgds-sidenav.d.ts +0 -0
- /package/{src/components → components}/Skeleton/index.d.ts +0 -0
- /package/{src/components → components}/Skeleton/sgds-skeleton.d.ts +0 -0
- /package/{src/components → components}/Spinner/index.d.ts +0 -0
- /package/{src/components → components}/Spinner/sgds-spinner.d.ts +0 -0
- /package/{src/components → components}/Stepper/index.d.ts +0 -0
- /package/{src/components → components}/Stepper/sgds-stepper.d.ts +0 -0
- /package/{src/components → components}/Subnav/index.d.ts +0 -0
- /package/{src/components → components}/Subnav/sgds-subnav-item.d.ts +0 -0
- /package/{src/components → components}/Subnav/sgds-subnav.d.ts +0 -0
- /package/{src/components → components}/Switch/index.d.ts +0 -0
- /package/{src/components → components}/Switch/sgds-switch.d.ts +0 -0
- /package/{src/components → components}/Tab/index.d.ts +0 -0
- /package/{src/components → components}/Tab/sgds-tab-group.d.ts +0 -0
- /package/{src/components → components}/Tab/sgds-tab-panel.d.ts +0 -0
- /package/{src/components → components}/Tab/sgds-tab.d.ts +0 -0
- /package/{src/components → components}/Table/index.d.ts +0 -0
- /package/{src/components → components}/Table/sgds-table-cell.d.ts +0 -0
- /package/{src/components → components}/Table/sgds-table-head.d.ts +0 -0
- /package/{src/components → components}/Table/sgds-table-row.d.ts +0 -0
- /package/{src/components → components}/Table/sgds-table.d.ts +0 -0
- /package/{src/components → components}/TableOfContents/index.d.ts +0 -0
- /package/{src/components → components}/TableOfContents/sgds-table-of-contents.d.ts +0 -0
- /package/{src/components → components}/Textarea/index.d.ts +0 -0
- /package/{src/components → components}/Textarea/sgds-textarea.d.ts +0 -0
- /package/{src/components → components}/Toast/index.d.ts +0 -0
- /package/{src/components → components}/Toast/sgds-toast-container.d.ts +0 -0
- /package/{src/components → components}/Toast/sgds-toast.d.ts +0 -0
- /package/{src/components → components}/Tooltip/index.d.ts +0 -0
- /package/{src/components → components}/Tooltip/sgds-tooltip.d.ts +0 -0
- /package/{src/internals → internals}/CloseButton/index.d.ts +0 -0
- /package/{src/internals → internals}/CloseButton/sgds-close-button.d.ts +0 -0
- /package/{src/react → react}/accordion/index.d.ts +0 -0
- /package/{src/react → react}/accordion-item/index.d.ts +0 -0
- /package/{src/react → react}/alert/index.d.ts +0 -0
- /package/{src/react → react}/alert-link/index.d.ts +0 -0
- /package/{src/react → react}/badge/index.d.ts +0 -0
- /package/{src/react → react}/breadcrumb/index.d.ts +0 -0
- /package/{src/react → react}/breadcrumb-item/index.d.ts +0 -0
- /package/{src/react → react}/button/index.d.ts +0 -0
- /package/{src/react → react}/card/index.d.ts +0 -0
- /package/{src/react → react}/checkbox/index.d.ts +0 -0
- /package/{src/react → react}/checkbox-group/index.d.ts +0 -0
- /package/{src/react → react}/combo-box/index.d.ts +0 -0
- /package/react/{internals → components}/OverflowMenu/overflow-menu.cjs.js +0 -0
- /package/react/{internals → components}/OverflowMenu/overflow-menu.cjs.js.map +0 -0
- /package/react/{internals → components}/OverflowMenu/overflow-menu.js +0 -0
- /package/react/{internals → components}/OverflowMenu/overflow-menu.js.map +0 -0
- /package/{src/react → react}/datepicker/index.d.ts +0 -0
- /package/{src/react → react}/description-list/index.d.ts +0 -0
- /package/{src/react → react}/description-list-group/index.d.ts +0 -0
- /package/{src/react → react}/divider/index.d.ts +0 -0
- /package/{src/react → react}/drawer/index.d.ts +0 -0
- /package/{src/react → react}/dropdown/index.d.ts +0 -0
- /package/{src/react → react}/dropdown-item/index.d.ts +0 -0
- /package/{src/react → react}/file-upload/index.d.ts +0 -0
- /package/{src/react → react}/footer/index.d.ts +0 -0
- /package/{src/react → react}/footer-item/index.d.ts +0 -0
- /package/{src/react/input → react/icon}/index.d.ts +0 -0
- /package/{src/react → react}/icon-button/index.d.ts +0 -0
- /package/{src/react/icon-list → react/icon-card}/index.d.ts +0 -0
- /package/{src/react/icon → react/icon-list}/index.d.ts +0 -0
- /package/{src/react/link → react/image-card}/index.d.ts +0 -0
- /package/{src/react/mainnav-dropdown → react/input}/index.d.ts +0 -0
- /package/{src/react/mainnav-item → react/link}/index.d.ts +0 -0
- /package/{src/react/modal → react/mainnav}/index.d.ts +0 -0
- /package/{src/react/mainnav → react/mainnav-dropdown}/index.d.ts +0 -0
- /package/{src/react/masthead → react/mainnav-item}/index.d.ts +0 -0
- /package/{src/react/pagination → react/masthead}/index.d.ts +0 -0
- /package/{src/react/progress-bar → react/modal}/index.d.ts +0 -0
- /package/{src/react/quantity-toggle → react/overflow-menu}/index.d.ts +0 -0
- /package/{src/react/radio-group → react/pagination}/index.d.ts +0 -0
- /package/{src/react/radio → react/progress-bar}/index.d.ts +0 -0
- /package/{src/react/select → react/quantity-toggle}/index.d.ts +0 -0
- /package/{src/react/sidenav-link → react/radio}/index.d.ts +0 -0
- /package/{src/react/sidenav-item → react/radio-group}/index.d.ts +0 -0
- /package/{src/react/sidenav → react/select}/index.d.ts +0 -0
- /package/{src/react/stepper → react/sidenav}/index.d.ts +0 -0
- /package/{src/react/skeleton → react/sidenav-item}/index.d.ts +0 -0
- /package/{src/react/spinner → react/sidenav-link}/index.d.ts +0 -0
- /package/{src/react/subnav-item → react/skeleton}/index.d.ts +0 -0
- /package/{src/react/subnav → react/spinner}/index.d.ts +0 -0
- /package/{src/react/switch → react/stepper}/index.d.ts +0 -0
- /package/{src/react/tab-panel → react/subnav}/index.d.ts +0 -0
- /package/{src/react/tab-group → react/subnav-item}/index.d.ts +0 -0
- /package/{src/react/tab → react/switch}/index.d.ts +0 -0
- /package/{src/react/table-of-contents → react/tab}/index.d.ts +0 -0
- /package/{src/react/table-cell → react/tab-group}/index.d.ts +0 -0
- /package/{src/react/table-head → react/tab-panel}/index.d.ts +0 -0
- /package/{src/react/toast → react/table}/index.d.ts +0 -0
- /package/{src/react/table-row → react/table-cell}/index.d.ts +0 -0
- /package/{src/react/table → react/table-head}/index.d.ts +0 -0
- /package/{src/react/textarea → react/table-of-contents}/index.d.ts +0 -0
- /package/{src/react/toast-container → react/table-row}/index.d.ts +0 -0
- /package/{src/react/tooltip → react/textarea}/index.d.ts +0 -0
- /package/{src/utils → utils}/animate.d.ts +0 -0
- /package/{src/utils → utils}/animation-registry.d.ts +0 -0
- /package/{src/utils → utils}/breakpoints.d.ts +0 -0
- /package/{src/utils → utils}/ce-registry.d.ts +0 -0
- /package/{src/utils → utils}/defaultvalue.d.ts +0 -0
- /package/{src/utils → utils}/event.d.ts +0 -0
- /package/{src/utils → utils}/formSubmitController.d.ts +0 -0
- /package/{src/utils → utils}/generateCustomElementName.d.ts +0 -0
- /package/{src/utils → utils}/generateId.d.ts +0 -0
- /package/{src/utils → utils}/inputValidationController.d.ts +0 -0
- /package/{src/utils → utils}/mergeDeep.d.ts +0 -0
- /package/{src/utils → utils}/modal.d.ts +0 -0
- /package/{src/utils → utils}/object.d.ts +0 -0
- /package/{src/utils → utils}/offset.d.ts +0 -0
- /package/{src/utils → utils}/scroll.d.ts +0 -0
- /package/{src/utils → utils}/slot.d.ts +0 -0
- /package/{src/utils → utils}/tabbable.d.ts +0 -0
- /package/{src/utils → utils}/test.d.ts +0 -0
- /package/{src/utils → utils}/time.d.ts +0 -0
- /package/{src/utils → utils}/validatorMixin.d.ts +0 -0
- /package/{src/utils → utils}/watch.d.ts +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __decorate } from 'tslib';
|
|
3
|
+
import { nothing } from 'lit';
|
|
4
|
+
import { literal, html } from 'lit/static-html.js';
|
|
5
|
+
import { queryAssignedNodes, property } from 'lit/decorators.js';
|
|
6
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
7
|
+
import { CardElement } from '../../base/card-element.js';
|
|
8
|
+
import css_248z from './icon-card.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @summary Icon cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.
|
|
12
|
+
* @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.
|
|
13
|
+
* @slot icon - Accepts an icon element to visually represent the card. Only a single element is allowed to be passed in.
|
|
14
|
+
* @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.
|
|
15
|
+
* @slot subtitle - The subtitle of the card
|
|
16
|
+
* @slot title - The title of the card
|
|
17
|
+
* @slot description - The paragrapher text of the card
|
|
18
|
+
* @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.
|
|
19
|
+
* @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.
|
|
20
|
+
*/
|
|
21
|
+
class SgdsIconCard extends CardElement {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
/** Removes the card's internal padding when set to true. */
|
|
25
|
+
this.noPadding = false;
|
|
26
|
+
}
|
|
27
|
+
firstUpdated() {
|
|
28
|
+
if (this._iconNode.length === 0) {
|
|
29
|
+
if ((this.orientation === "vertical" && this._upperNode.length === 0) || this.orientation === "horizontal") {
|
|
30
|
+
const media = this.shadowRoot.querySelector(".card-media");
|
|
31
|
+
media.style.display = "none";
|
|
32
|
+
const body = this.shadowRoot.querySelector(".card-body");
|
|
33
|
+
if (this.noPadding)
|
|
34
|
+
body.style.padding = "0px";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
const tag = this.stretchedLink ? literal `a` : literal `div`;
|
|
40
|
+
const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;
|
|
41
|
+
return html `
|
|
42
|
+
<${tag}
|
|
43
|
+
class="card ${classMap({
|
|
44
|
+
disabled: this.disabled
|
|
45
|
+
})}"
|
|
46
|
+
tabindex=${cardTabIndex}
|
|
47
|
+
>
|
|
48
|
+
${this.tinted && !this.noPadding ? html `<div class="card-tinted-bg"></div>` : nothing}
|
|
49
|
+
<div class="card-media">
|
|
50
|
+
<slot name="icon"></slot>
|
|
51
|
+
${this.orientation === "vertical" ? html `<slot name="upper"></slot>` : nothing}
|
|
52
|
+
</div>
|
|
53
|
+
<div class="card-body">
|
|
54
|
+
${this.orientation === "horizontal" ? html `<slot name="upper"></slot>` : nothing}
|
|
55
|
+
<div class="card-header-container">
|
|
56
|
+
<div class="card-header">
|
|
57
|
+
<slot name="subtitle"></slot>
|
|
58
|
+
<h3 class="card-title"><slot name="title" @slotchange=${this.handleTitleSlotChange}></slot></h3>
|
|
59
|
+
</div>
|
|
60
|
+
<slot></slot>
|
|
61
|
+
</div>
|
|
62
|
+
<p class="card-text">
|
|
63
|
+
<slot name="description"></slot>
|
|
64
|
+
</p>
|
|
65
|
+
<slot name="lower"></slot>
|
|
66
|
+
<slot name="link" @slotchange=${this.handleLinkSlotChange}></slot>
|
|
67
|
+
</div>
|
|
68
|
+
</${tag}>
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
SgdsIconCard.styles = [...CardElement.styles, css_248z];
|
|
73
|
+
__decorate([
|
|
74
|
+
queryAssignedNodes({ slot: "icon", flatten: true })
|
|
75
|
+
], SgdsIconCard.prototype, "_iconNode", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
queryAssignedNodes({ slot: "upper", flatten: true })
|
|
78
|
+
], SgdsIconCard.prototype, "_upperNode", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
property({ type: Boolean, reflect: true })
|
|
81
|
+
], SgdsIconCard.prototype, "noPadding", void 0);
|
|
82
|
+
|
|
83
|
+
export { SgdsIconCard, SgdsIconCard as default };
|
|
84
|
+
//# sourceMappingURL=sgds-icon-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgds-icon-card.js","sources":["../../../../src/components/IconCard/sgds-icon-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport IconCardStyle from \"./icon-card.css\";\n\n/**\n * @summary Icon cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot icon - Accepts an icon element to visually represent the card. Only a single element is allowed to be passed in.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.\n */\nexport class SgdsIconCard extends CardElement {\n static styles = [...CardElement.styles, IconCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"icon\", flatten: true })\n _iconNode!: Array<Node>;\n /** @internal */\n @queryAssignedNodes({ slot: \"upper\", flatten: true })\n _upperNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n protected firstUpdated() {\n if (this._iconNode.length === 0) {\n if ((this.orientation === \"vertical\" && this._upperNode.length === 0) || this.orientation === \"horizontal\") {\n const media = this.shadowRoot.querySelector(\".card-media\") as HTMLDivElement;\n media.style.display = \"none\";\n\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n >\n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-media\">\n <slot name=\"icon\"></slot>\n ${this.orientation === \"vertical\" ? html`<slot name=\"upper\"></slot>` : nothing}\n </div>\n <div class=\"card-body\">\n ${this.orientation === \"horizontal\" ? html`<slot name=\"upper\"></slot>` : nothing}\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <p class=\"card-text\">\n <slot name=\"description\"></slot>\n </p>\n <slot name=\"lower\"></slot>\n <slot name=\"link\" @slotchange=${this.handleLinkSlotChange}></slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsIconCard;\n"],"names":["IconCardStyle"],"mappings":";;;;;;;;;AAOA;;;;;;;;;;AAUG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;AAA7C,IAAA,WAAA,GAAA;;;QAW8C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAgD/D;IA9CW,YAAY,GAAA;QACpB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;gBAC1G,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAmB,CAAC;AAC7E,gBAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAmB,CAAC;gBAC3E,IAAI,IAAI,CAAC,SAAS;AAAE,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;aAChD;SACF;KACF;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA,GAAG,GAAG,OAAO,CAAA,KAAK,CAAC;AAC3D,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAEnE,QAAA,OAAO,IAAI,CAAA,CAAA;SACN,GAAG,CAAA;AACU,oBAAA,EAAA,QAAQ,CAAC;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;mBACS,YAAY,CAAA;;AAErB,QAAA,EAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA,CAAA,kCAAA,CAAoC,GAAG,OAAO,CAAA;;;AAGjF,UAAA,EAAA,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,IAAI,CAAA,CAAA,0BAAA,CAA4B,GAAG,OAAO,CAAA;;;AAG5E,UAAA,EAAA,IAAI,CAAC,WAAW,KAAK,YAAY,GAAG,IAAI,CAAA,CAAA,0BAAA,CAA4B,GAAG,OAAO,CAAA;;;;AAIpB,oEAAA,EAAA,IAAI,CAAC,qBAAqB,CAAA;;;;;;;;AAQtD,wCAAA,EAAA,IAAI,CAAC,oBAAoB,CAAA;;UAEzD,GAAG,CAAA;KACR,CAAC;KACH;;AAzDM,YAAM,CAAA,MAAA,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAa,CAAxC,CAA0C;AAIvD,UAAA,CAAA;IADC,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGxB,UAAA,CAAA;IADC,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGmB,UAAA,CAAA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAmB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var lit = require('lit');
|
|
7
|
+
|
|
8
|
+
var css_248z = lit.css`:host([noPadding]) .card{border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent)}:host(:not([noPadding])) .card:not(.disabled):hover{box-shadow:0 0 1px 0 hsla(0,0%,5%,.12),0 8px 16px 0 hsla(0,0%,5%,.12)}:host([orientation=vertical][noPadding]) .card-body{padding:var(--sgds-padding-xl) var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-none)}:host([orientation=vertical][imagePosition=after][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-xl) var(--sgds-padding-none)}:host([orientation=horizontal][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-xl)}:host([orientation=horizontal][imagePosition=after][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-xl) var(--sgds-padding-none) var(--sgds-padding-none)}:host([tinted]:not([noPadding])) .card-tinted-bg{background-color:var(--sgds-bg-translucent-subtle);opacity:var(--sgds-opacity-50)}:host([orientation][noPadding]) .card-media{padding:var(--sgds-padding-none)}slot[name=image-badge]::slotted(*){left:20px;position:absolute;top:20px}slot[name=image-action]::slotted(*){position:absolute;right:20px;top:20px}`;
|
|
9
|
+
|
|
10
|
+
exports["default"] = css_248z;
|
|
11
|
+
//# sourceMappingURL=image-card.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-card.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { css } from 'lit';
|
|
3
|
+
|
|
4
|
+
var css_248z = css`:host([noPadding]) .card{border:var(--sgds-border-width-1) solid var(--sgds-border-color-transparent)}:host(:not([noPadding])) .card:not(.disabled):hover{box-shadow:0 0 1px 0 hsla(0,0%,5%,.12),0 8px 16px 0 hsla(0,0%,5%,.12)}:host([orientation=vertical][noPadding]) .card-body{padding:var(--sgds-padding-xl) var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-none)}:host([orientation=vertical][imagePosition=after][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-xl) var(--sgds-padding-none)}:host([orientation=horizontal][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-none) var(--sgds-padding-xl)}:host([orientation=horizontal][imagePosition=after][noPadding]) .card-body{padding:var(--sgds-padding-none) var(--sgds-padding-xl) var(--sgds-padding-none) var(--sgds-padding-none)}:host([tinted]:not([noPadding])) .card-tinted-bg{background-color:var(--sgds-bg-translucent-subtle);opacity:var(--sgds-opacity-50)}:host([orientation][noPadding]) .card-media{padding:var(--sgds-padding-none)}slot[name=image-badge]::slotted(*){left:20px;position:absolute;top:20px}slot[name=image-action]::slotted(*){position:absolute;right:20px;top:20px}`;
|
|
5
|
+
|
|
6
|
+
export { css_248z as default };
|
|
7
|
+
//# sourceMappingURL=image-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-card.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var tslib = require('tslib');
|
|
7
|
+
var lit = require('lit');
|
|
8
|
+
var staticHtml_js = require('lit/static-html.js');
|
|
9
|
+
var decorators_js = require('lit/decorators.js');
|
|
10
|
+
var classMap_js = require('lit/directives/class-map.js');
|
|
11
|
+
var cardElement = require('../../base/card-element.cjs.js');
|
|
12
|
+
var imageCard = require('./image-card.cjs.js');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @summary Image cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.
|
|
16
|
+
* @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.
|
|
17
|
+
* @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.
|
|
18
|
+
* @slot image-badge - Accepts an element for a badge, positioned at the top-left corner of the image.
|
|
19
|
+
* @slot image-action - Accepts an element for an overflow or contextual menu, positioned at the top-right corner of the image. Typically used for action menu.
|
|
20
|
+
* @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.
|
|
21
|
+
* @slot subtitle - The subtitle of the card
|
|
22
|
+
* @slot title - The title of the card
|
|
23
|
+
* @slot description - The paragrapher text of the card
|
|
24
|
+
* @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.
|
|
25
|
+
* @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.
|
|
26
|
+
*/
|
|
27
|
+
class SgdsImageCard extends cardElement.CardElement {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
/** Removes the card's internal padding when set to true. */
|
|
31
|
+
this.noPadding = false;
|
|
32
|
+
/** Sets the image position of the card. Available options: `before`, `after` */
|
|
33
|
+
this.imagePosition = "before";
|
|
34
|
+
/** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
|
|
35
|
+
this.imageAdjustment = "default";
|
|
36
|
+
}
|
|
37
|
+
firstUpdated() {
|
|
38
|
+
if (this._imageNode.length === 0) {
|
|
39
|
+
const image = this.shadowRoot.querySelector(".card-image");
|
|
40
|
+
const body = this.shadowRoot.querySelector(".card-body");
|
|
41
|
+
image.style.display = "none";
|
|
42
|
+
if (this.noPadding)
|
|
43
|
+
body.style.padding = "0px";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
handleImgSlotChange(e) {
|
|
47
|
+
const childNodes = e.target.assignedNodes({ flatten: true });
|
|
48
|
+
if (childNodes.length > 1) {
|
|
49
|
+
return console.error("Multiple elements passed into SgdsCard's image slot");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
render() {
|
|
53
|
+
const tag = this.stretchedLink ? staticHtml_js.literal `a` : staticHtml_js.literal `div`;
|
|
54
|
+
const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;
|
|
55
|
+
return staticHtml_js.html `
|
|
56
|
+
<${tag}
|
|
57
|
+
class="card ${classMap_js.classMap({
|
|
58
|
+
disabled: this.disabled
|
|
59
|
+
})}"
|
|
60
|
+
tabindex=${cardTabIndex}
|
|
61
|
+
>
|
|
62
|
+
${this.tinted && !this.noPadding ? staticHtml_js.html `<div class="card-tinted-bg"></div>` : lit.nothing}
|
|
63
|
+
<div class="card-image">
|
|
64
|
+
<slot name="image" @slotchange=${this.handleImgSlotChange}></slot>
|
|
65
|
+
<slot name="image-badge"></slot>
|
|
66
|
+
<slot name="image-action"></slot>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="card-body">
|
|
69
|
+
<slot name="upper"></slot>
|
|
70
|
+
<div class="card-header-container">
|
|
71
|
+
<div class="card-header">
|
|
72
|
+
<slot name="subtitle"></slot>
|
|
73
|
+
<h3 class="card-title"><slot name="title" @slotchange=${this.handleTitleSlotChange}></slot></h3>
|
|
74
|
+
</div>
|
|
75
|
+
<slot></slot>
|
|
76
|
+
</div>
|
|
77
|
+
<p class="card-text">
|
|
78
|
+
<slot name="description"></slot>
|
|
79
|
+
</p>
|
|
80
|
+
<slot name="lower"></slot>
|
|
81
|
+
<slot name="link" @slotchange=${this.handleLinkSlotChange}></slot>
|
|
82
|
+
</div>
|
|
83
|
+
</${tag}>
|
|
84
|
+
`;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
SgdsImageCard.styles = [...cardElement.CardElement.styles, imageCard["default"]];
|
|
88
|
+
tslib.__decorate([
|
|
89
|
+
decorators_js.queryAssignedNodes({ slot: "image", flatten: true })
|
|
90
|
+
], SgdsImageCard.prototype, "_imageNode", void 0);
|
|
91
|
+
tslib.__decorate([
|
|
92
|
+
decorators_js.property({ type: Boolean, reflect: true })
|
|
93
|
+
], SgdsImageCard.prototype, "noPadding", void 0);
|
|
94
|
+
tslib.__decorate([
|
|
95
|
+
decorators_js.property({ type: String, reflect: true })
|
|
96
|
+
], SgdsImageCard.prototype, "imagePosition", void 0);
|
|
97
|
+
tslib.__decorate([
|
|
98
|
+
decorators_js.property({ type: String, reflect: true })
|
|
99
|
+
], SgdsImageCard.prototype, "imageAdjustment", void 0);
|
|
100
|
+
|
|
101
|
+
exports.SgdsImageCard = SgdsImageCard;
|
|
102
|
+
exports["default"] = SgdsImageCard;
|
|
103
|
+
//# sourceMappingURL=sgds-image-card.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgds-image-card.cjs.js","sources":["../../../../src/components/ImageCard/sgds-image-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport { CardImageAdjustment, CardImagePosition } from \"../Card/types\";\nimport imageCardStyle from \"./image-card.css\";\n\n/**\n * @summary Image cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.\n * @slot image-badge - Accepts an element for a badge, positioned at the top-left corner of the image.\n * @slot image-action - Accepts an element for an overflow or contextual menu, positioned at the top-right corner of the image. Typically used for action menu.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.\n */\nexport class SgdsImageCard extends CardElement {\n static styles = [...CardElement.styles, imageCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"image\", flatten: true })\n _imageNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n /** Sets the image position of the card. Available options: `before`, `after` */\n @property({ type: String, reflect: true }) imagePosition: CardImagePosition = \"before\";\n\n /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */\n @property({ type: String, reflect: true }) imageAdjustment: CardImageAdjustment = \"default\";\n\n protected firstUpdated() {\n if (this._imageNode.length === 0) {\n const image = this.shadowRoot.querySelector(\".card-image\") as HTMLDivElement;\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n image.style.display = \"none\";\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n\n handleImgSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLOrSVGImageElement>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's image slot\");\n }\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n >\n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-image\">\n\t\t\t\t\t<slot name=\"image\" @slotchange=${this.handleImgSlotChange}></slot>\n\t\t\t\t\t<slot name=\"image-badge\"></slot>\n\t\t\t\t\t<slot name=\"image-action\"></slot>\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t<slot name=\"upper\"></slot>\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <p class=\"card-text\">\n <slot name=\"description\"></slot>\n </p>\n <slot name=\"lower\"></slot>\n <slot name=\"link\" @slotchange=${this.handleLinkSlotChange}></slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsImageCard;\n"],"names":["CardElement","literal","html","classMap","nothing","imageCardStyle","__decorate","queryAssignedNodes","property"],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __decorate } from 'tslib';
|
|
3
|
+
import { nothing } from 'lit';
|
|
4
|
+
import { literal, html } from 'lit/static-html.js';
|
|
5
|
+
import { queryAssignedNodes, property } from 'lit/decorators.js';
|
|
6
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
7
|
+
import { CardElement } from '../../base/card-element.js';
|
|
8
|
+
import css_248z from './image-card.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @summary Image cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.
|
|
12
|
+
* @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.
|
|
13
|
+
* @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.
|
|
14
|
+
* @slot image-badge - Accepts an element for a badge, positioned at the top-left corner of the image.
|
|
15
|
+
* @slot image-action - Accepts an element for an overflow or contextual menu, positioned at the top-right corner of the image. Typically used for action menu.
|
|
16
|
+
* @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.
|
|
17
|
+
* @slot subtitle - The subtitle of the card
|
|
18
|
+
* @slot title - The title of the card
|
|
19
|
+
* @slot description - The paragrapher text of the card
|
|
20
|
+
* @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.
|
|
21
|
+
* @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.
|
|
22
|
+
*/
|
|
23
|
+
class SgdsImageCard extends CardElement {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
/** Removes the card's internal padding when set to true. */
|
|
27
|
+
this.noPadding = false;
|
|
28
|
+
/** Sets the image position of the card. Available options: `before`, `after` */
|
|
29
|
+
this.imagePosition = "before";
|
|
30
|
+
/** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
|
|
31
|
+
this.imageAdjustment = "default";
|
|
32
|
+
}
|
|
33
|
+
firstUpdated() {
|
|
34
|
+
if (this._imageNode.length === 0) {
|
|
35
|
+
const image = this.shadowRoot.querySelector(".card-image");
|
|
36
|
+
const body = this.shadowRoot.querySelector(".card-body");
|
|
37
|
+
image.style.display = "none";
|
|
38
|
+
if (this.noPadding)
|
|
39
|
+
body.style.padding = "0px";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
handleImgSlotChange(e) {
|
|
43
|
+
const childNodes = e.target.assignedNodes({ flatten: true });
|
|
44
|
+
if (childNodes.length > 1) {
|
|
45
|
+
return console.error("Multiple elements passed into SgdsCard's image slot");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
render() {
|
|
49
|
+
const tag = this.stretchedLink ? literal `a` : literal `div`;
|
|
50
|
+
const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;
|
|
51
|
+
return html `
|
|
52
|
+
<${tag}
|
|
53
|
+
class="card ${classMap({
|
|
54
|
+
disabled: this.disabled
|
|
55
|
+
})}"
|
|
56
|
+
tabindex=${cardTabIndex}
|
|
57
|
+
>
|
|
58
|
+
${this.tinted && !this.noPadding ? html `<div class="card-tinted-bg"></div>` : nothing}
|
|
59
|
+
<div class="card-image">
|
|
60
|
+
<slot name="image" @slotchange=${this.handleImgSlotChange}></slot>
|
|
61
|
+
<slot name="image-badge"></slot>
|
|
62
|
+
<slot name="image-action"></slot>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="card-body">
|
|
65
|
+
<slot name="upper"></slot>
|
|
66
|
+
<div class="card-header-container">
|
|
67
|
+
<div class="card-header">
|
|
68
|
+
<slot name="subtitle"></slot>
|
|
69
|
+
<h3 class="card-title"><slot name="title" @slotchange=${this.handleTitleSlotChange}></slot></h3>
|
|
70
|
+
</div>
|
|
71
|
+
<slot></slot>
|
|
72
|
+
</div>
|
|
73
|
+
<p class="card-text">
|
|
74
|
+
<slot name="description"></slot>
|
|
75
|
+
</p>
|
|
76
|
+
<slot name="lower"></slot>
|
|
77
|
+
<slot name="link" @slotchange=${this.handleLinkSlotChange}></slot>
|
|
78
|
+
</div>
|
|
79
|
+
</${tag}>
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
SgdsImageCard.styles = [...CardElement.styles, css_248z];
|
|
84
|
+
__decorate([
|
|
85
|
+
queryAssignedNodes({ slot: "image", flatten: true })
|
|
86
|
+
], SgdsImageCard.prototype, "_imageNode", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
property({ type: Boolean, reflect: true })
|
|
89
|
+
], SgdsImageCard.prototype, "noPadding", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
property({ type: String, reflect: true })
|
|
92
|
+
], SgdsImageCard.prototype, "imagePosition", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
property({ type: String, reflect: true })
|
|
95
|
+
], SgdsImageCard.prototype, "imageAdjustment", void 0);
|
|
96
|
+
|
|
97
|
+
export { SgdsImageCard, SgdsImageCard as default };
|
|
98
|
+
//# sourceMappingURL=sgds-image-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgds-image-card.js","sources":["../../../../src/components/ImageCard/sgds-image-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport { CardImageAdjustment, CardImagePosition } from \"../Card/types\";\nimport imageCardStyle from \"./image-card.css\";\n\n/**\n * @summary Image cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot image - Accepts an image or svg element of the card. Only a single element is allowed to be passed in.\n * @slot image-badge - Accepts an element for a badge, positioned at the top-left corner of the image.\n * @slot image-action - Accepts an element for an overflow or contextual menu, positioned at the top-right corner of the image. Typically used for action menu.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot link - Accepts an anchor element. Only a single element is allowed to be passed in.\n */\nexport class SgdsImageCard extends CardElement {\n static styles = [...CardElement.styles, imageCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"image\", flatten: true })\n _imageNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n /** Sets the image position of the card. Available options: `before`, `after` */\n @property({ type: String, reflect: true }) imagePosition: CardImagePosition = \"before\";\n\n /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */\n @property({ type: String, reflect: true }) imageAdjustment: CardImageAdjustment = \"default\";\n\n protected firstUpdated() {\n if (this._imageNode.length === 0) {\n const image = this.shadowRoot.querySelector(\".card-image\") as HTMLDivElement;\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n image.style.display = \"none\";\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n\n handleImgSlotChange(e: Event) {\n const childNodes = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }) as Array<HTMLOrSVGImageElement>;\n\n if (childNodes.length > 1) {\n return console.error(\"Multiple elements passed into SgdsCard's image slot\");\n }\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n >\n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-image\">\n\t\t\t\t\t<slot name=\"image\" @slotchange=${this.handleImgSlotChange}></slot>\n\t\t\t\t\t<slot name=\"image-badge\"></slot>\n\t\t\t\t\t<slot name=\"image-action\"></slot>\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t<slot name=\"upper\"></slot>\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <p class=\"card-text\">\n <slot name=\"description\"></slot>\n </p>\n <slot name=\"lower\"></slot>\n <slot name=\"link\" @slotchange=${this.handleLinkSlotChange}></slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsImageCard;\n"],"names":["imageCardStyle"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var lit = require('lit');
|
|
7
7
|
|
|
8
|
-
var css_248z = lit.css`:host{
|
|
8
|
+
var css_248z = lit.css`:host{z-index:1200}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08)}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs);justify-content:space-between;margin:auto;max-width:var(--sgds-mainnav-max-width);min-height:80px;padding:0 var(--sgds-mainnav-padding-x);position:relative;width:100%}@media screen and (max-width:768px){.navbar{padding:0 var(--sgds-mainnav-mobile-padding-x)}}.navbar-brand{align-items:center;display:flex;text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.navbar-nav{display:flex;flex-direction:column;height:100%;margin-bottom:0;margin-top:0;width:100%}nav>.navbar-body{background-color:var(--sgds-surface-default);border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-translucent);bottom:0;box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);padding:var(--sgds-padding-md) 0;position:absolute;transition:transform .2s ease-in-out;width:100%;z-index:2000}nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}@media screen and (max-width:768px){nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{align-self:center}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-nav-scroll{overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:1024px){.navbar-expand-lg{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1280px){.navbar-expand-xl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--mainnav-nav-link-padding-x);padding-right:var(--mainnav-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1440px){.navbar-expand-xxl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}slot[name=non-collapsible]{align-items:center;display:flex;gap:var(--sgds-spacer-4);margin-left:auto}.slot-end{align-items:stretch;display:flex;gap:var(--sgds-gap-xs);margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=mainnav.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`:host{
|
|
4
|
+
var css_248z = css`:host{z-index:1200}nav{background-color:var(--sgds-surface-default);box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08)}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;gap:var(--sgds-gap-xs);justify-content:space-between;margin:auto;max-width:var(--sgds-mainnav-max-width);min-height:80px;padding:0 var(--sgds-mainnav-padding-x);position:relative;width:100%}@media screen and (max-width:768px){.navbar{padding:0 var(--sgds-mainnav-mobile-padding-x)}}.navbar-brand{align-items:center;display:flex;text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.navbar-nav{display:flex;flex-direction:column;height:100%;margin-bottom:0;margin-top:0;width:100%}nav>.navbar-body{background-color:var(--sgds-surface-default);border-top:var(--sgds-border-width-1) solid var(--sgds-border-color-translucent);bottom:0;box-shadow:0 2px 2px 0 hsla(0,0%,5%,.08);padding:var(--sgds-padding-md) 0;position:absolute;transition:transform .2s ease-in-out;width:100%;z-index:2000}nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-padding-x)}@media screen and (max-width:768px){nav>.navbar-body slot::slotted(:not(sgds-mainnav-item):not(sgds-mainnav-dropdown)){padding:var(--sgds-padding-sm) var(--sgds-mainnav-mobile-padding-x)}}.navbar-collapse{align-items:center;flex-basis:100%;flex-grow:1}.navbar-toggler{align-self:center}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-nav-scroll{overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:1024px){.navbar-expand-lg{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1280px){.navbar-expand-xl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .nav-link{padding-left:var(--mainnav-nav-link-padding-x);padding-right:var(--mainnav-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1440px){.navbar-expand-xxl{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;gap:var(--sgds-gap-xl);justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}slot[name=non-collapsible]{align-items:center;display:flex;gap:var(--sgds-spacer-4);margin-left:auto}.slot-end{align-items:stretch;display:flex;gap:var(--sgds-gap-xs);margin-left:auto}.slot-end::slotted(:not([name$=-mainnav-item]):not([name$=-mainnav-dropdown])){align-self:center}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=mainnav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-mainnav-dropdown.cjs.js","sources":["../../../../src/components/Mainnav/sgds-mainnav-dropdown.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { consume } from \"@lit/context\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport genId from \"../../utils/generateId\";\nimport dropdownStyle from \"../Dropdown/dropdown.css\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport mainnavDropdownStyle from \"./mainnav-dropdown.css\";\nimport SgdsDropdown from \"../Dropdown/sgds-dropdown\";\nimport SgdsDropdownItem from \"../Dropdown/sgds-dropdown-item\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport { MainnavContext } from \"./mainnav-context\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nconst TAB = \"Tab\";\nconst ENTER = \"Enter\";\nconst SPACE = \" \";\n\n/**\n * @slot default - The menu items. Pass in sgds-dropdown-item as the menu items\n * @slot toggler - The content of the toggler to pass in html content.\n */\nexport class SgdsMainnavDropdown extends SgdsElement {\n static styles = [...SgdsElement.styles, dropdownStyle, dropdownMenuStyle, mainnavDropdownStyle];\n /** @internal */\n static dependencies = {\n \"sgds-dropdown\": SgdsDropdown,\n \"sgds-dropdown-item\": SgdsDropdownItem,\n \"sgds-icon\": SgdsIcon\n };\n\n @consume({ context: MainnavContext, subscribe: true })\n @state()\n private _breakpointReached: boolean;\n\n /** @internal */\n @query(\".nav-link\") navLink: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items\") dropdownItems: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items a\") menuHeaderButton: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items span\") menuHeaderText: HTMLElement;\n\n /** @internal Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n private togglerId: string = genId(\"dropdown\", \"button\");\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean })\n active = false;\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** @internal */\n @queryAssignedElements({ slot: \"toggler\" }) private togglerNodes!: HTMLElement[];\n\n /** @internal */\n @queryAssignedElements() private defaultNodes!: SgdsDropdownItem[];\n\n /** @internal */\n get defaultSlotItems(): SgdsDropdownItem[] {\n return [...(this.defaultNodes || [])].filter(\n (node: HTMLElement) => typeof node.tagName !== \"undefined\"\n ) as SgdsDropdownItem[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener(\"close-dropdown-menu\", () => {\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n // Clean up the event listener when the element is removed from the DOM\n document.removeEventListener(\"close-dropdown-menu\", () => {\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n });\n }\n\n protected willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate(changedProperties);\n\n if (!this.shadowRoot) {\n return;\n }\n\n if (this._breakpointReached) {\n this.shadowRoot.adoptedStyleSheets = [dropdownMenuStyle.styleSheet, mainnavDropdownStyle.styleSheet];\n }\n }\n\n updated() {\n if (this._breakpointReached) {\n this._copyTextToMenu();\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n }\n }\n\n private _handleSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n item.addEventListener(\"keydown\", this._handleKeyboardMenuItemsEvent.bind(this));\n\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.add(\"nav-link\");\n\n const slottedItem = (item.shadowRoot.querySelector(\".dropdown-item slot\") as HTMLSlotElement).assignedElements({\n flatten: true\n });\n slottedItem.forEach(item => {\n (item as HTMLElement).tabIndex = -1;\n });\n });\n }\n\n private _handleDesktopSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.remove(\"nav-link\");\n });\n }\n\n private _handleKeyboardMenuItemsEvent(e: KeyboardEvent) {\n if (!this._breakpointReached) {\n return;\n }\n\n const slottedItems = this.defaultSlotItems.filter(item => !item.hasAttribute(\"disabled\"));\n const items = [this.menuHeaderButton, ...slottedItems];\n const itemLength = items.length;\n if (itemLength === 0) {\n return;\n }\n\n const firstItem = items[0];\n const lastItem = items[itemLength - 1].shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n let activeElement = document.activeElement as HTMLElement;\n if (activeElement === this) {\n activeElement = this.shadowRoot.activeElement as HTMLElement;\n }\n\n switch (e.key) {\n case \"Tab\": {\n if (e.shiftKey) {\n if (activeElement === firstItem) {\n e.preventDefault();\n setTimeout(() => {\n lastItem.focus();\n }, 0);\n }\n } else {\n const activeShadowElement = activeElement.shadowRoot\n ? activeElement.shadowRoot.querySelector(\".dropdown-item\")\n : null;\n if (activeShadowElement && activeShadowElement === lastItem) {\n e.preventDefault();\n firstItem.focus();\n }\n }\n break;\n }\n default:\n break;\n }\n }\n\n private _copyTextToMenu() {\n this.menuHeaderText.innerHTML = this.togglerNodes[0].innerHTML;\n }\n\n private _hideDropdownMenuItems() {\n this.dropdownItems.style.display = \"none\";\n this.dropdownItems.setAttribute(\"aria-hidden\", \"true\");\n }\n\n private _resetDropdownMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.removeProperty(\"transform\");\n }\n\n private _handleKeyboardOpen(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n if (event.key === ENTER || event.key === SPACE) {\n event.preventDefault();\n this._openMenu();\n }\n }\n\n private _getNavbarBody() {\n const mainNav = document.querySelector(\"sgds-mainnav\") as HTMLElement | null;\n\n if (!mainNav?.shadowRoot) {\n console.warn(\"sgds-mainnav or its shadowRoot not found\");\n return;\n }\n\n const navbarBody = mainNav.shadowRoot.querySelector(\".navbar-body\") as HTMLElement;\n if (!navbarBody) {\n console.warn(\".navbar-body not found in sgds-mainnav\");\n return;\n }\n\n return navbarBody;\n }\n\n private _openMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.transform = \"translateX(-100%)\";\n this.dropdownItems.style.removeProperty(\"display\");\n this.dropdownItems.setAttribute(\"aria-hidden\", \"false\");\n setTimeout(() => {\n this.menuHeaderButton.focus();\n }, 50);\n }\n\n private _handleHeaderKeyboardEvent(event: KeyboardEvent) {\n switch (event.key) {\n case TAB: {\n this._handleKeyboardMenuItemsEvent(event);\n break;\n }\n case ENTER:\n case SPACE: {\n event.preventDefault();\n this._closeMenu();\n break;\n }\n default:\n break;\n }\n }\n\n private _closeMenu() {\n // 200ms delay as the transform transition is set to this timing\n this._resetDropdownMenu();\n setTimeout(() => {\n this._hideDropdownMenuItems();\n this.navLink.focus();\n }, 200);\n }\n\n render() {\n const mobileView = html`\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n @click=${this._openMenu}\n @keydown=${this._handleKeyboardOpen}\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-right\"></sgds-icon>\n </a>\n <div class=\"dropdown-items\">\n <a tabindex=\"0\" role=\"button\" @click=${this._closeMenu} @keydown=${this._handleHeaderKeyboardEvent}>\n <sgds-icon name=\"chevron-left\"></sgds-icon>\n <span></span>\n </a>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n\n const desktopView = html`<sgds-dropdown\n modifierOpt=${[\n {\n name: \"offset\",\n options: {\n offset: [0, 0]\n }\n }\n ]}\n ?disabled=${this.disabled}\n >\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n id=${this.togglerId}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n slot=\"toggler\"\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-down\"></sgds-icon>\n </a>\n <slot @slotchange=${this._handleDesktopSlotChange}></slot>\n </sgds-dropdown>`;\n\n return this._breakpointReached ? mobileView : desktopView;\n }\n}\n\nexport default SgdsMainnavDropdown;\n"],"names":["SgdsElement","genId","dropdownMenuStyle","mainnavDropdownStyle","html","classMap","dropdownStyle","SgdsDropdown","SgdsDropdownItem","SgdsIcon","__decorate","consume","MainnavContext","state","query","property","queryAssignedElements"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sgds-mainnav-dropdown.cjs.js","sources":["../../../../src/components/Mainnav/sgds-mainnav-dropdown.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { consume } from \"@lit/context\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport genId from \"../../utils/generateId\";\nimport dropdownStyle from \"../Dropdown/dropdown.css\";\nimport dropdownMenuStyle from \"../Dropdown/dropdown-menu.css\";\nimport mainnavDropdownStyle from \"./mainnav-dropdown.css\";\nimport SgdsDropdown from \"../Dropdown/sgds-dropdown\";\nimport SgdsDropdownItem from \"../Dropdown/sgds-dropdown-item\";\nimport SgdsIcon from \"../Icon/sgds-icon\";\nimport { MainnavContext } from \"./mainnav-context\";\nimport SgdsElement from \"../../base/sgds-element\";\n\nconst TAB = \"Tab\";\nconst ENTER = \"Enter\";\nconst SPACE = \" \";\n\n/**\n * @slot default - The menu items. Pass in sgds-dropdown-item as the menu items\n * @slot toggler - The content of the toggler to pass in html content.\n */\nexport class SgdsMainnavDropdown extends SgdsElement {\n static styles = [...SgdsElement.styles, dropdownStyle, dropdownMenuStyle, mainnavDropdownStyle];\n /** @internal */\n static dependencies = {\n \"sgds-dropdown\": SgdsDropdown,\n \"sgds-dropdown-item\": SgdsDropdownItem,\n \"sgds-icon\": SgdsIcon\n };\n\n @consume({ context: MainnavContext, subscribe: true })\n @state()\n private _breakpointReached: boolean;\n\n /** @internal */\n @query(\".nav-link\") navLink: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items\") dropdownItems: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items a\") menuHeaderButton: HTMLElement;\n\n /** @internal */\n @query(\".dropdown-items span\") menuHeaderText: HTMLElement;\n\n /** @internal Forwards value to id attribute of toggle button of Dropdown. An unique id generated by default */\n private togglerId: string = genId(\"dropdown\", \"button\");\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean })\n active = false;\n\n /** When true, applies active styles on the dropdown button */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /** @internal */\n @queryAssignedElements({ slot: \"toggler\" }) private togglerNodes!: HTMLElement[];\n\n /** @internal */\n @queryAssignedElements() private defaultNodes!: SgdsDropdownItem[];\n\n /** @internal */\n get defaultSlotItems(): SgdsDropdownItem[] {\n return [...(this.defaultNodes || [])].filter(\n (node: HTMLElement) => typeof node.tagName !== \"undefined\"\n ) as SgdsDropdownItem[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener(\"close-dropdown-menu\", () => {\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n // Clean up the event listener when the element is removed from the DOM\n document.removeEventListener(\"close-dropdown-menu\", () => {\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n });\n }\n\n protected willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate(changedProperties);\n\n if (!this.shadowRoot) {\n return;\n }\n\n if (this._breakpointReached) {\n this.shadowRoot.adoptedStyleSheets = [dropdownMenuStyle.styleSheet, mainnavDropdownStyle.styleSheet];\n }\n }\n\n updated() {\n if (this._breakpointReached) {\n this._copyTextToMenu();\n this._resetDropdownMenu();\n this._hideDropdownMenuItems();\n }\n }\n\n private _handleSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n item.addEventListener(\"keydown\", this._handleKeyboardMenuItemsEvent.bind(this));\n\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.add(\"nav-link\");\n\n const slottedItem = (item.shadowRoot.querySelector(\".dropdown-item slot\") as HTMLSlotElement).assignedElements({\n flatten: true\n });\n slottedItem.forEach(item => {\n (item as HTMLElement).tabIndex = -1;\n });\n });\n }\n\n private _handleDesktopSlotChange(e: Event) {\n const items = (e.target as HTMLSlotElement).assignedElements({ flatten: true }) as SgdsDropdownItem[];\n items.forEach(item => {\n const dropdownItem = item.shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n dropdownItem.classList.remove(\"nav-link\");\n });\n }\n\n private _handleKeyboardMenuItemsEvent(e: KeyboardEvent) {\n if (!this._breakpointReached) {\n return;\n }\n\n const slottedItems = this.defaultSlotItems.filter(item => !item.hasAttribute(\"disabled\"));\n const items = [this.menuHeaderButton, ...slottedItems];\n const itemLength = items.length;\n if (itemLength === 0) {\n return;\n }\n\n const firstItem = items[0];\n const lastItem = items[itemLength - 1].shadowRoot.querySelector(\".dropdown-item\") as HTMLElement;\n let activeElement = document.activeElement as HTMLElement;\n if (activeElement === this) {\n activeElement = this.shadowRoot.activeElement as HTMLElement;\n }\n\n switch (e.key) {\n case \"Tab\": {\n if (e.shiftKey) {\n if (activeElement === firstItem) {\n e.preventDefault();\n setTimeout(() => {\n lastItem.focus();\n }, 0);\n }\n } else {\n const activeShadowElement = activeElement.shadowRoot\n ? activeElement.shadowRoot.querySelector(\".dropdown-item\")\n : null;\n if (activeShadowElement && activeShadowElement === lastItem) {\n e.preventDefault();\n firstItem.focus();\n }\n }\n break;\n }\n default:\n break;\n }\n }\n\n private _copyTextToMenu() {\n this.menuHeaderText.innerHTML = this.togglerNodes[0].innerHTML;\n }\n\n private _hideDropdownMenuItems() {\n this.dropdownItems.style.display = \"none\";\n this.dropdownItems.setAttribute(\"aria-hidden\", \"true\");\n }\n\n private _resetDropdownMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.removeProperty(\"transform\");\n }\n\n private _handleKeyboardOpen(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n if (event.key === ENTER || event.key === SPACE) {\n event.preventDefault();\n this._openMenu();\n }\n }\n\n private _getNavbarBody() {\n const mainNav = document.querySelector(\"sgds-mainnav\") as HTMLElement | null;\n\n if (!mainNav?.shadowRoot) {\n console.warn(\"sgds-mainnav or its shadowRoot not found\");\n return;\n }\n\n const navbarBody = mainNav.shadowRoot.querySelector(\".navbar-body\") as HTMLElement;\n if (!navbarBody) {\n console.warn(\".navbar-body not found in sgds-mainnav\");\n return;\n }\n\n return navbarBody;\n }\n\n private _openMenu() {\n const navbarBody = this._getNavbarBody();\n navbarBody.style.transform = \"translateX(-100%)\";\n this.dropdownItems.style.removeProperty(\"display\");\n this.dropdownItems.setAttribute(\"aria-hidden\", \"false\");\n setTimeout(() => {\n this.menuHeaderButton.focus();\n }, 50);\n }\n\n private _handleHeaderKeyboardEvent(event: KeyboardEvent) {\n switch (event.key) {\n case TAB: {\n this._handleKeyboardMenuItemsEvent(event);\n break;\n }\n case ENTER:\n case SPACE: {\n event.preventDefault();\n this._closeMenu();\n break;\n }\n default:\n break;\n }\n }\n\n private _closeMenu() {\n // 200ms delay as the transform transition is set to this timing\n this._resetDropdownMenu();\n setTimeout(() => {\n this._hideDropdownMenuItems();\n this.navLink.focus();\n }, 200);\n }\n\n render() {\n const mobileView = html`\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n @click=${this._openMenu}\n @keydown=${this._handleKeyboardOpen}\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-right\"></sgds-icon>\n </a>\n <div class=\"dropdown-items\">\n <a tabindex=\"0\" role=\"button\" @click=${this._closeMenu} @keydown=${this._handleHeaderKeyboardEvent}>\n <sgds-icon name=\"chevron-left\"></sgds-icon>\n <span></span>\n </a>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n\n const desktopView = html`<sgds-dropdown\n .modifierOpt=${[\n {\n name: \"offset\",\n options: {\n offset: [0, 0]\n }\n }\n ]}\n ?disabled=${this.disabled}\n >\n <a\n class=\"${classMap({\n \"nav-link\": true,\n active: this.active,\n disabled: this.disabled\n })}\"\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n id=${this.togglerId}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n role=\"button\"\n slot=\"toggler\"\n >\n <slot name=\"toggler\"></slot>\n <sgds-icon name=\"chevron-down\"></sgds-icon>\n </a>\n <slot @slotchange=${this._handleDesktopSlotChange}></slot>\n </sgds-dropdown>`;\n\n return this._breakpointReached ? mobileView : desktopView;\n }\n}\n\nexport default SgdsMainnavDropdown;\n"],"names":["SgdsElement","genId","dropdownMenuStyle","mainnavDropdownStyle","html","classMap","dropdownStyle","SgdsDropdown","SgdsDropdownItem","SgdsIcon","__decorate","consume","MainnavContext","state","query","property","queryAssignedElements"],"mappings":"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"}
|