@govtechsg/sgds-web-component 3.2.0 → 3.3.0
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/Masthead/index.js +46 -15
- package/components/Badge/badge.js +1 -1
- package/components/Badge/index.umd.js +4532 -197
- package/components/Badge/index.umd.js.map +1 -1
- package/components/Badge/sgds-badge.js +70 -30
- package/components/Badge/sgds-badge.js.map +1 -1
- package/components/Breadcrumb/index.umd.js +3 -3
- package/components/Breadcrumb/index.umd.js.map +1 -1
- package/components/Card/index.umd.js +2 -2
- package/components/Card/index.umd.js.map +1 -1
- package/components/ComboBox/combo-box-item2.js +1 -1
- package/components/ComboBox/index.umd.js +1321 -174
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/Datepicker/index.umd.js +61 -17
- package/components/Datepicker/index.umd.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.js +29 -11
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/DescriptionList/index.umd.js.map +1 -1
- package/components/Dropdown/dropdown-item.js +1 -1
- package/components/Dropdown/index.umd.js +1 -1
- package/components/IconList/icon-list.js +1 -1
- package/components/IconList/index.umd.js +1 -1
- package/components/Input/index.umd.js +33 -6
- package/components/Input/index.umd.js.map +1 -1
- package/components/Input/input.js +1 -1
- package/components/Input/sgds-input.js +32 -5
- package/components/Input/sgds-input.js.map +1 -1
- package/components/Link/index.umd.js +2 -2
- package/components/Link/index.umd.js.map +1 -1
- package/components/Link/link.js +1 -1
- package/components/Link/sgds-link.js +1 -1
- package/components/Link/sgds-link.js.map +1 -1
- package/components/Mainnav/index.umd.js +4 -4
- package/components/Mainnav/index.umd.js.map +1 -1
- package/components/Mainnav/mainnav-item.js +1 -1
- package/components/Mainnav/mainnav.js +1 -1
- package/components/Mainnav/sgds-mainnav.js +1 -1
- package/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/components/Masthead/index.umd.js +46 -15
- package/components/Masthead/index.umd.js.map +1 -1
- package/components/Masthead/masthead.js +1 -1
- package/components/Masthead/sgds-masthead.js +45 -14
- package/components/Masthead/sgds-masthead.js.map +1 -1
- package/components/Modal/index.umd.js.map +1 -1
- package/components/QuantityToggle/index.umd.js +33 -6
- package/components/QuantityToggle/index.umd.js.map +1 -1
- package/components/Select/index.umd.js +1 -1
- package/components/Select/select-item2.js +1 -1
- package/components/Subnav/index.umd.js +1 -1
- package/components/Subnav/subnav.js +1 -1
- package/components/Switch/index.umd.js.map +1 -1
- package/components/Table/index.umd.js.map +1 -1
- package/components/Tooltip/index.umd.js +1 -1
- package/components/Tooltip/tooltip.js +1 -1
- package/components/index.umd.js +18901 -18771
- package/components/index.umd.js.map +1 -1
- package/css/reboot.css +0 -1
- package/index.umd.js +18885 -18755
- package/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/react/components/Badge/badge.cjs.js +1 -1
- package/react/components/Badge/badge.js +1 -1
- package/react/components/Badge/sgds-badge.cjs.js +69 -29
- package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
- package/react/components/Badge/sgds-badge.js +70 -30
- package/react/components/Badge/sgds-badge.js.map +1 -1
- package/react/components/ComboBox/combo-box-item.cjs2.js +1 -1
- package/react/components/ComboBox/combo-box-item2.js +1 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js +29 -11
- package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.js +29 -11
- package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/react/components/Dropdown/dropdown-item.cjs.js +1 -1
- package/react/components/Dropdown/dropdown-item.js +1 -1
- package/react/components/IconList/icon-list.cjs.js +1 -1
- package/react/components/IconList/icon-list.js +1 -1
- package/react/components/Input/input.cjs.js +1 -1
- package/react/components/Input/input.js +1 -1
- package/react/components/Input/sgds-input.cjs.js +32 -5
- package/react/components/Input/sgds-input.cjs.js.map +1 -1
- package/react/components/Input/sgds-input.js +32 -5
- package/react/components/Input/sgds-input.js.map +1 -1
- package/react/components/Link/link.cjs.js +1 -1
- package/react/components/Link/link.js +1 -1
- package/react/components/Link/sgds-link.cjs.js +1 -1
- package/react/components/Link/sgds-link.cjs.js.map +1 -1
- package/react/components/Link/sgds-link.js +1 -1
- package/react/components/Link/sgds-link.js.map +1 -1
- package/react/components/Mainnav/mainnav-item.cjs.js +1 -1
- package/react/components/Mainnav/mainnav-item.js +1 -1
- package/react/components/Mainnav/mainnav.cjs.js +1 -1
- package/react/components/Mainnav/mainnav.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.cjs.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
- package/react/components/Mainnav/sgds-mainnav.js +1 -1
- package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
- package/react/components/Masthead/masthead.cjs.js +1 -1
- package/react/components/Masthead/masthead.js +1 -1
- package/react/components/Masthead/sgds-masthead.cjs.js +45 -14
- package/react/components/Masthead/sgds-masthead.cjs.js.map +1 -1
- package/react/components/Masthead/sgds-masthead.js +45 -14
- package/react/components/Masthead/sgds-masthead.js.map +1 -1
- package/react/components/Select/select-item.cjs2.js +1 -1
- package/react/components/Select/select-item2.js +1 -1
- package/react/components/Subnav/subnav.cjs.js +1 -1
- package/react/components/Subnav/subnav.js +1 -1
- package/react/components/Tooltip/tooltip.cjs.js +1 -1
- package/react/components/Tooltip/tooltip.js +1 -1
- package/react/index.cjs.js +8 -8
- package/react/index.js +1 -1
- package/react/utils/slot.cjs.js +18 -0
- package/react/utils/slot.cjs.js.map +1 -1
- package/react/utils/slot.js +18 -1
- package/react/utils/slot.js.map +1 -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 +8 -0
- package/scripts/figma/sync-figma-to-tokens/figma_api.d.ts +8 -0
- package/scripts/figma/sync-figma-to-tokens/sync-figma-to-tokens.d.ts +1 -0
- package/scripts/figma/sync-figma-to-tokens/token_export.d.ts +5 -0
- package/scripts/figma/sync-figma-to-tokens/token_types.d.ts +52 -0
- package/scripts/figma/sync-figma-to-tokens/utils.d.ts +3 -0
- package/scripts/figma/sync-figma-to-tokens/write-tokens-to-css-var.d.ts +8 -0
- package/{components → src/components}/Badge/sgds-badge.d.ts +11 -0
- package/{components → src/components}/Datepicker/sgds-datepicker.d.ts +13 -3
- package/{components → src/components}/Input/sgds-input.d.ts +5 -1
- package/{components → src/components}/Link/sgds-link.d.ts +2 -2
- package/themes/day.css +1 -0
- package/themes/night.css +1 -0
- package/themes/root.css +2 -0
- package/utils/slot.js +18 -1
- package/utils/slot.js.map +1 -1
- package/{base → src/base}/button-element.d.ts +0 -0
- package/{base → src/base}/card-element.d.ts +0 -0
- package/{base → src/base}/dropdown-element.d.ts +0 -0
- package/{base → src/base}/dropdown-list-element.d.ts +0 -0
- package/{base → src/base}/form-control-element.d.ts +0 -0
- package/{base → src/base}/link-element.d.ts +0 -0
- package/{base → src/base}/select-element.d.ts +0 -0
- package/{base → src/base}/sgds-element.d.ts +0 -0
- package/{components → src/components}/Accordion/index.d.ts +0 -0
- package/{components → src/components}/Accordion/sgds-accordion-item.d.ts +0 -0
- package/{components → src/components}/Accordion/sgds-accordion.d.ts +0 -0
- package/{components → src/components}/Alert/index.d.ts +0 -0
- package/{components → src/components}/Alert/sgds-alert-link.d.ts +0 -0
- package/{components → src/components}/Alert/sgds-alert.d.ts +0 -0
- package/{components → src/components}/Badge/index.d.ts +0 -0
- package/{components → src/components}/Breadcrumb/index.d.ts +0 -0
- package/{components → src/components}/Breadcrumb/sgds-breadcrumb-item.d.ts +0 -0
- package/{components → src/components}/Breadcrumb/sgds-breadcrumb.d.ts +0 -0
- package/{components → src/components}/Button/index.d.ts +0 -0
- package/{components → src/components}/Button/sgds-button.d.ts +0 -0
- package/{components → src/components}/Card/index.d.ts +0 -0
- package/{components → src/components}/Card/sgds-card.d.ts +0 -0
- package/{components → src/components}/Checkbox/index.d.ts +0 -0
- package/{components → src/components}/Checkbox/sgds-checkbox-group.d.ts +0 -0
- package/{components → src/components}/Checkbox/sgds-checkbox.d.ts +0 -0
- package/{components → src/components}/ComboBox/combo-box-item.d.ts +0 -0
- package/{components → src/components}/ComboBox/index.d.ts +0 -0
- package/{components → src/components}/ComboBox/sgds-combo-box.d.ts +0 -0
- package/{components → src/components}/Datepicker/datepicker-calendar.d.ts +0 -0
- package/{components → src/components}/Datepicker/datepicker-header.d.ts +0 -0
- package/{components → src/components}/Datepicker/datepicker-input.d.ts +0 -0
- package/{components → src/components}/Datepicker/index.d.ts +0 -0
- package/{components → src/components}/Datepicker/types.d.ts +0 -0
- package/{components → src/components}/DescriptionList/index.d.ts +0 -0
- package/{components → src/components}/DescriptionList/sgds-description-list-group.d.ts +0 -0
- package/{components → src/components}/DescriptionList/sgds-description-list.d.ts +0 -0
- package/{components → src/components}/Divider/index.d.ts +0 -0
- package/{components → src/components}/Divider/sgds-divider.d.ts +0 -0
- package/{components → src/components}/Drawer/index.d.ts +0 -0
- package/{components → src/components}/Drawer/sgds-drawer.d.ts +0 -0
- package/{components → src/components}/Dropdown/index.d.ts +0 -0
- package/{components → src/components}/Dropdown/sgds-dropdown-item.d.ts +0 -0
- package/{components → src/components}/Dropdown/sgds-dropdown.d.ts +0 -0
- package/{components → src/components}/FileUpload/index.d.ts +0 -0
- package/{components → src/components}/FileUpload/sgds-file-upload.d.ts +0 -0
- package/{components → src/components}/Footer/index.d.ts +0 -0
- package/{components → src/components}/Footer/sgds-footer-item.d.ts +0 -0
- package/{components → src/components}/Footer/sgds-footer.d.ts +0 -0
- package/{components → src/components}/Icon/icon-registry.d.ts +0 -0
- package/{components → src/components}/Icon/icons/archive.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-bar-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-bar-left.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-bar-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-bar-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-circle-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-circle-left.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-circle-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-circle-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-clockwise.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-left.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-repeat.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-square-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-square-left.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-square-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-square-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/arrow-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bank-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bell-slash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bell.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bi-funnel.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bookmark-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bookmark.d.ts +0 -0
- package/{components → src/components}/Icon/icons/box-arrow-up-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/box-seam.d.ts +0 -0
- package/{components → src/components}/Icon/icons/building.d.ts +0 -0
- package/{components → src/components}/Icon/icons/bus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/calculator.d.ts +0 -0
- package/{components → src/components}/Icon/icons/calendar-check.d.ts +0 -0
- package/{components → src/components}/Icon/icons/calendar-x.d.ts +0 -0
- package/{components → src/components}/Icon/icons/calendar.d.ts +0 -0
- package/{components → src/components}/Icon/icons/camera.d.ts +0 -0
- package/{components → src/components}/Icon/icons/car.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chat-dots.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chat-left-text.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chat.d.ts +0 -0
- package/{components → src/components}/Icon/icons/check-circle-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/check-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/check.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chevron-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chevron-left.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chevron-right.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chevron-selector-vertical.d.ts +0 -0
- package/{components → src/components}/Icon/icons/chevron-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/clock.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cloud-check.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cloud-download.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cloud-upload.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cloud.d.ts +0 -0
- package/{components → src/components}/Icon/icons/compass.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cross.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cursor-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/cursor.d.ts +0 -0
- package/{components → src/components}/Icon/icons/dash-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/dash-square.d.ts +0 -0
- package/{components → src/components}/Icon/icons/dash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/download.d.ts +0 -0
- package/{components → src/components}/Icon/icons/edit.d.ts +0 -0
- package/{components → src/components}/Icon/icons/exclamation-circle-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/exclamation-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/exclamation-triangle-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/exclamation-triangle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/exclamation.d.ts +0 -0
- package/{components → src/components}/Icon/icons/eye-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/eye-slash-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/eye-slash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/eye.d.ts +0 -0
- package/{components → src/components}/Icon/icons/facebook.d.ts +0 -0
- package/{components → src/components}/Icon/icons/file-earmark-text.d.ts +0 -0
- package/{components → src/components}/Icon/icons/file-pdf.d.ts +0 -0
- package/{components → src/components}/Icon/icons/file-plus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/file-text.d.ts +0 -0
- package/{components → src/components}/Icon/icons/file.d.ts +0 -0
- package/{components → src/components}/Icon/icons/files.d.ts +0 -0
- package/{components → src/components}/Icon/icons/folder-check.d.ts +0 -0
- package/{components → src/components}/Icon/icons/folder-minus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/folder-plus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/folder.d.ts +0 -0
- package/{components → src/components}/Icon/icons/gear.d.ts +0 -0
- package/{components → src/components}/Icon/icons/geo-alt.d.ts +0 -0
- package/{components → src/components}/Icon/icons/geo-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/geo.d.ts +0 -0
- package/{components → src/components}/Icon/icons/globe-alt.d.ts +0 -0
- package/{components → src/components}/Icon/icons/globe.d.ts +0 -0
- package/{components → src/components}/Icon/icons/google.d.ts +0 -0
- package/{components → src/components}/Icon/icons/grid-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/hand-thumbs-down.d.ts +0 -0
- package/{components → src/components}/Icon/icons/hand-thumbs-up.d.ts +0 -0
- package/{components → src/components}/Icon/icons/hard-drive.d.ts +0 -0
- package/{components → src/components}/Icon/icons/heart.d.ts +0 -0
- package/{components → src/components}/Icon/icons/house-door.d.ts +0 -0
- package/{components → src/components}/Icon/icons/house.d.ts +0 -0
- package/{components → src/components}/Icon/icons/image.d.ts +0 -0
- package/{components → src/components}/Icon/icons/in-box.d.ts +0 -0
- package/{components → src/components}/Icon/icons/info-circle-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/info-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/instagram.d.ts +0 -0
- package/{components → src/components}/Icon/icons/laptop.d.ts +0 -0
- package/{components → src/components}/Icon/icons/layers.d.ts +0 -0
- package/{components → src/components}/Icon/icons/layout-text-window-reverse.d.ts +0 -0
- package/{components → src/components}/Icon/icons/layout-text-window.d.ts +0 -0
- package/{components → src/components}/Icon/icons/layout.d.ts +0 -0
- package/{components → src/components}/Icon/icons/lightbulb.d.ts +0 -0
- package/{components → src/components}/Icon/icons/link.d.ts +0 -0
- package/{components → src/components}/Icon/icons/linkedin.d.ts +0 -0
- package/{components → src/components}/Icon/icons/list.d.ts +0 -0
- package/{components → src/components}/Icon/icons/lock-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/lock.d.ts +0 -0
- package/{components → src/components}/Icon/icons/login.d.ts +0 -0
- package/{components → src/components}/Icon/icons/logout.d.ts +0 -0
- package/{components → src/components}/Icon/icons/luggage.d.ts +0 -0
- package/{components → src/components}/Icon/icons/mail.d.ts +0 -0
- package/{components → src/components}/Icon/icons/map.d.ts +0 -0
- package/{components → src/components}/Icon/icons/menu.d.ts +0 -0
- package/{components → src/components}/Icon/icons/microphone.d.ts +0 -0
- package/{components → src/components}/Icon/icons/monitor.d.ts +0 -0
- package/{components → src/components}/Icon/icons/paperclip.d.ts +0 -0
- package/{components → src/components}/Icon/icons/passport.d.ts +0 -0
- package/{components → src/components}/Icon/icons/pencil.d.ts +0 -0
- package/{components → src/components}/Icon/icons/pending-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/person-dash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/person-plus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/person-x.d.ts +0 -0
- package/{components → src/components}/Icon/icons/person.d.ts +0 -0
- package/{components → src/components}/Icon/icons/phone.d.ts +0 -0
- package/{components → src/components}/Icon/icons/pin-map-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/pin.d.ts +0 -0
- package/{components → src/components}/Icon/icons/placeholder.d.ts +0 -0
- package/{components → src/components}/Icon/icons/plane.d.ts +0 -0
- package/{components → src/components}/Icon/icons/plus-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/plus-square.d.ts +0 -0
- package/{components → src/components}/Icon/icons/plus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/printer.d.ts +0 -0
- package/{components → src/components}/Icon/icons/question-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/rocket.d.ts +0 -0
- package/{components → src/components}/Icon/icons/save.d.ts +0 -0
- package/{components → src/components}/Icon/icons/search.d.ts +0 -0
- package/{components → src/components}/Icon/icons/send.d.ts +0 -0
- package/{components → src/components}/Icon/icons/sg-crest.d.ts +0 -0
- package/{components → src/components}/Icon/icons/share.d.ts +0 -0
- package/{components → src/components}/Icon/icons/slash-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/sliders.d.ts +0 -0
- package/{components → src/components}/Icon/icons/speedometer.d.ts +0 -0
- package/{components → src/components}/Icon/icons/star-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/star.d.ts +0 -0
- package/{components → src/components}/Icon/icons/stoplights.d.ts +0 -0
- package/{components → src/components}/Icon/icons/switch-horizontal.d.ts +0 -0
- package/{components → src/components}/Icon/icons/switch-vertical.d.ts +0 -0
- package/{components → src/components}/Icon/icons/tablet.d.ts +0 -0
- package/{components → src/components}/Icon/icons/telephone.d.ts +0 -0
- package/{components → src/components}/Icon/icons/three-dots-vertical.d.ts +0 -0
- package/{components → src/components}/Icon/icons/three-dots.d.ts +0 -0
- package/{components → src/components}/Icon/icons/ticket.d.ts +0 -0
- package/{components → src/components}/Icon/icons/toggle-off.d.ts +0 -0
- package/{components → src/components}/Icon/icons/toggle-on.d.ts +0 -0
- package/{components → src/components}/Icon/icons/train.d.ts +0 -0
- package/{components → src/components}/Icon/icons/translate.d.ts +0 -0
- package/{components → src/components}/Icon/icons/trash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/truck.d.ts +0 -0
- package/{components → src/components}/Icon/icons/twitter-x.d.ts +0 -0
- package/{components → src/components}/Icon/icons/unlock.d.ts +0 -0
- package/{components → src/components}/Icon/icons/upload.d.ts +0 -0
- package/{components → src/components}/Icon/icons/user-circle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/user-square.d.ts +0 -0
- package/{components → src/components}/Icon/icons/users.d.ts +0 -0
- package/{components → src/components}/Icon/icons/video-recorder.d.ts +0 -0
- package/{components → src/components}/Icon/icons/volume-max.d.ts +0 -0
- package/{components → src/components}/Icon/icons/volume-x.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-dash.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-desktop.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-dock.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-fullscreen.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-plus.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-sidebar.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-split.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-stack.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window-x.d.ts +0 -0
- package/{components → src/components}/Icon/icons/window.d.ts +0 -0
- package/{components → src/components}/Icon/icons/xcircle-fill.d.ts +0 -0
- package/{components → src/components}/Icon/icons/xcircle.d.ts +0 -0
- package/{components → src/components}/Icon/icons/youtube.d.ts +0 -0
- package/{components → src/components}/Icon/icons/zoom-in.d.ts +0 -0
- package/{components → src/components}/Icon/icons/zoom-out.d.ts +0 -0
- package/{components → src/components}/Icon/index.d.ts +0 -0
- package/{components → src/components}/Icon/sgds-icon.d.ts +0 -0
- package/{components → src/components}/IconButton/index.d.ts +0 -0
- package/{components → src/components}/IconButton/sgds-icon-button.d.ts +0 -0
- package/{components → src/components}/IconList/index.d.ts +0 -0
- package/{components → src/components}/IconList/sgds-icon-list.d.ts +0 -0
- package/{components → src/components}/Input/index.d.ts +0 -0
- package/{components → src/components}/Link/index.d.ts +0 -0
- package/{components → src/components}/Mainnav/index.d.ts +0 -0
- package/{components → src/components}/Mainnav/mainnav-context.d.ts +0 -0
- package/{components → src/components}/Mainnav/sgds-mainnav-dropdown.d.ts +0 -0
- package/{components → src/components}/Mainnav/sgds-mainnav-item.d.ts +0 -0
- package/{components → src/components}/Mainnav/sgds-mainnav.d.ts +0 -0
- package/{components → src/components}/Masthead/index.d.ts +0 -0
- package/{components → src/components}/Masthead/sgds-masthead.d.ts +0 -0
- package/{components → src/components}/Modal/index.d.ts +0 -0
- package/{components → src/components}/Modal/sgds-modal.d.ts +0 -0
- package/{components → src/components}/Pagination/index.d.ts +0 -0
- package/{components → src/components}/Pagination/sgds-pagination.d.ts +0 -0
- package/{components → src/components}/ProgressBar/index.d.ts +0 -0
- package/{components → src/components}/ProgressBar/sgds-progress-bar.d.ts +0 -0
- package/{components → src/components}/QuantityToggle/index.d.ts +0 -0
- package/{components → src/components}/QuantityToggle/sgds-quantity-toggle.d.ts +0 -0
- package/{components → src/components}/Radio/index.d.ts +0 -0
- package/{components → src/components}/Radio/sgds-radio-group.d.ts +0 -0
- package/{components → src/components}/Radio/sgds-radio.d.ts +0 -0
- package/{components → src/components}/Select/index.d.ts +0 -0
- package/{components → src/components}/Select/select-item.d.ts +0 -0
- package/{components → src/components}/Select/sgds-select.d.ts +0 -0
- package/{components → src/components}/Sidenav/index.d.ts +0 -0
- package/{components → src/components}/Sidenav/sgds-sidenav-item.d.ts +0 -0
- package/{components → src/components}/Sidenav/sgds-sidenav-link.d.ts +0 -0
- package/{components → src/components}/Sidenav/sgds-sidenav.d.ts +0 -0
- package/{components → src/components}/Skeleton/index.d.ts +0 -0
- package/{components → src/components}/Skeleton/sgds-skeleton.d.ts +0 -0
- package/{components → src/components}/Spinner/index.d.ts +0 -0
- package/{components → src/components}/Spinner/sgds-spinner.d.ts +0 -0
- package/{components → src/components}/Stepper/index.d.ts +0 -0
- package/{components → src/components}/Stepper/sgds-stepper.d.ts +0 -0
- package/{components → src/components}/Subnav/index.d.ts +0 -0
- package/{components → src/components}/Subnav/sgds-subnav-item.d.ts +0 -0
- package/{components → src/components}/Subnav/sgds-subnav.d.ts +0 -0
- package/{components → src/components}/Switch/index.d.ts +0 -0
- package/{components → src/components}/Switch/sgds-switch.d.ts +0 -0
- package/{components → src/components}/Tab/index.d.ts +0 -0
- package/{components → src/components}/Tab/sgds-tab-group.d.ts +0 -0
- package/{components → src/components}/Tab/sgds-tab-panel.d.ts +0 -0
- package/{components → src/components}/Tab/sgds-tab.d.ts +0 -0
- package/{components → src/components}/Table/index.d.ts +0 -0
- package/{components → src/components}/Table/sgds-table-cell.d.ts +0 -0
- package/{components → src/components}/Table/sgds-table-head.d.ts +0 -0
- package/{components → src/components}/Table/sgds-table-row.d.ts +0 -0
- package/{components → src/components}/Table/sgds-table.d.ts +0 -0
- package/{components → src/components}/TableOfContents/index.d.ts +0 -0
- package/{components → src/components}/TableOfContents/sgds-table-of-contents.d.ts +0 -0
- package/{components → src/components}/Textarea/index.d.ts +0 -0
- package/{components → src/components}/Textarea/sgds-textarea.d.ts +0 -0
- package/{components → src/components}/Toast/index.d.ts +0 -0
- package/{components → src/components}/Toast/sgds-toast-container.d.ts +0 -0
- package/{components → src/components}/Toast/sgds-toast.d.ts +0 -0
- package/{components → src/components}/Tooltip/index.d.ts +0 -0
- package/{components → src/components}/Tooltip/sgds-tooltip.d.ts +0 -0
- package/{components → src/components}/index.d.ts +0 -0
- package/{index.d.ts → src/index.d.ts} +0 -0
- package/{internals → src/internals}/CloseButton/index.d.ts +0 -0
- package/{internals → src/internals}/CloseButton/sgds-close-button.d.ts +0 -0
- package/{internals → src/internals}/OverflowMenu/index.d.ts +0 -0
- package/{internals → src/internals}/OverflowMenu/sgds-overflow-menu.d.ts +0 -0
- package/{react → src/react}/accordion/index.d.ts +0 -0
- package/{react → src/react}/accordion-item/index.d.ts +0 -0
- package/{react → src/react}/alert/index.d.ts +0 -0
- package/{react → src/react}/alert-link/index.d.ts +0 -0
- package/{react → src/react}/badge/index.d.ts +0 -0
- package/{react → src/react}/breadcrumb/index.d.ts +0 -0
- package/{react → src/react}/breadcrumb-item/index.d.ts +0 -0
- package/{react → src/react}/button/index.d.ts +0 -0
- package/{react → src/react}/card/index.d.ts +0 -0
- package/{react → src/react}/checkbox/index.d.ts +0 -0
- package/{react → src/react}/checkbox-group/index.d.ts +0 -0
- package/{react → src/react}/combo-box/index.d.ts +0 -0
- package/{react → src/react}/datepicker/index.d.ts +0 -0
- package/{react → src/react}/description-list/index.d.ts +0 -0
- package/{react → src/react}/description-list-group/index.d.ts +0 -0
- package/{react → src/react}/divider/index.d.ts +0 -0
- package/{react → src/react}/drawer/index.d.ts +0 -0
- package/{react → src/react}/dropdown/index.d.ts +0 -0
- package/{react → src/react}/dropdown-item/index.d.ts +0 -0
- package/{react → src/react}/file-upload/index.d.ts +0 -0
- package/{react → src/react}/footer/index.d.ts +0 -0
- package/{react → src/react}/footer-item/index.d.ts +0 -0
- package/{react → src/react}/icon/index.d.ts +0 -0
- package/{react → src/react}/icon-button/index.d.ts +0 -0
- package/{react → src/react}/icon-list/index.d.ts +0 -0
- package/{react → src/react}/index.d.ts +1 -1
- /package/{react → src/react}/input/index.d.ts +0 -0
- /package/{react → src/react}/link/index.d.ts +0 -0
- /package/{react → src/react}/mainnav/index.d.ts +0 -0
- /package/{react → src/react}/mainnav-dropdown/index.d.ts +0 -0
- /package/{react → src/react}/mainnav-item/index.d.ts +0 -0
- /package/{react → src/react}/masthead/index.d.ts +0 -0
- /package/{react → src/react}/modal/index.d.ts +0 -0
- /package/{react → src/react}/pagination/index.d.ts +0 -0
- /package/{react → src/react}/progress-bar/index.d.ts +0 -0
- /package/{react → src/react}/quantity-toggle/index.d.ts +0 -0
- /package/{react → src/react}/radio/index.d.ts +0 -0
- /package/{react → src/react}/radio-group/index.d.ts +0 -0
- /package/{react → src/react}/select/index.d.ts +0 -0
- /package/{react → src/react}/sidenav/index.d.ts +0 -0
- /package/{react → src/react}/sidenav-item/index.d.ts +0 -0
- /package/{react → src/react}/sidenav-link/index.d.ts +0 -0
- /package/{react → src/react}/skeleton/index.d.ts +0 -0
- /package/{react → src/react}/spinner/index.d.ts +0 -0
- /package/{react → src/react}/stepper/index.d.ts +0 -0
- /package/{react → src/react}/subnav/index.d.ts +0 -0
- /package/{react → src/react}/subnav-item/index.d.ts +0 -0
- /package/{react → src/react}/switch/index.d.ts +0 -0
- /package/{react → src/react}/tab/index.d.ts +0 -0
- /package/{react → src/react}/tab-group/index.d.ts +0 -0
- /package/{react → src/react}/tab-panel/index.d.ts +0 -0
- /package/{react → src/react}/table/index.d.ts +0 -0
- /package/{react → src/react}/table-cell/index.d.ts +0 -0
- /package/{react → src/react}/table-head/index.d.ts +0 -0
- /package/{react → src/react}/table-of-contents/index.d.ts +0 -0
- /package/{react → src/react}/table-row/index.d.ts +0 -0
- /package/{react → src/react}/textarea/index.d.ts +0 -0
- /package/{react → src/react}/toast/index.d.ts +0 -0
- /package/{react → src/react}/toast-container/index.d.ts +0 -0
- /package/{react → src/react}/tooltip/index.d.ts +0 -0
- /package/{utils → src/utils}/animate.d.ts +0 -0
- /package/{utils → src/utils}/animation-registry.d.ts +0 -0
- /package/{utils → src/utils}/breakpoints.d.ts +0 -0
- /package/{utils → src/utils}/ce-registry.d.ts +0 -0
- /package/{utils → src/utils}/defaultvalue.d.ts +0 -0
- /package/{utils → src/utils}/event.d.ts +0 -0
- /package/{utils → src/utils}/formSubmitController.d.ts +0 -0
- /package/{utils → src/utils}/generateCustomElementName.d.ts +0 -0
- /package/{utils → src/utils}/generateId.d.ts +0 -0
- /package/{utils → src/utils}/inputValidationController.d.ts +0 -0
- /package/{utils → src/utils}/mergeDeep.d.ts +0 -0
- /package/{utils → src/utils}/modal.d.ts +0 -0
- /package/{utils → src/utils}/object.d.ts +0 -0
- /package/{utils → src/utils}/offset.d.ts +0 -0
- /package/{utils → src/utils}/scroll.d.ts +0 -0
- /package/{utils → src/utils}/slot.d.ts +0 -0
- /package/{utils → src/utils}/tabbable.d.ts +0 -0
- /package/{utils → src/utils}/test.d.ts +0 -0
- /package/{utils → src/utils}/time.d.ts +0 -0
- /package/{utils → src/utils}/validatorMixin.d.ts +0 -0
- /package/{utils → src/utils}/watch.d.ts +0 -0
|
@@ -29,7 +29,12 @@ class SgdsMasthead extends SgdsElement {
|
|
|
29
29
|
}
|
|
30
30
|
render() {
|
|
31
31
|
return html `
|
|
32
|
-
<div
|
|
32
|
+
<div
|
|
33
|
+
id="sgds-masthead"
|
|
34
|
+
class="sgds-masthead"
|
|
35
|
+
aria-label="A Singapore Government Agency Website. Beware of government impersonation scams."
|
|
36
|
+
role="banner"
|
|
37
|
+
>
|
|
33
38
|
<div class="banner">
|
|
34
39
|
<div class="container">
|
|
35
40
|
<div class="masthead-layout">
|
|
@@ -67,7 +72,7 @@ class SgdsMasthead extends SgdsElement {
|
|
|
67
72
|
/>
|
|
68
73
|
</svg>
|
|
69
74
|
<div class="masthead-text-layout">
|
|
70
|
-
<span>A Singapore Government Agency Website
|
|
75
|
+
<span>A Singapore Government Agency Website. Beware of government impersonation scams.</span>
|
|
71
76
|
<div
|
|
72
77
|
class="sgds-masthead-button"
|
|
73
78
|
id="sgds-masthead-identify"
|
|
@@ -110,16 +115,16 @@ class SgdsMasthead extends SgdsElement {
|
|
|
110
115
|
<div class="icon">
|
|
111
116
|
<svg
|
|
112
117
|
xmlns="http://www.w3.org/2000/svg"
|
|
113
|
-
width="
|
|
114
|
-
height="
|
|
115
|
-
viewBox="0 0
|
|
118
|
+
width="16"
|
|
119
|
+
height="16"
|
|
120
|
+
viewBox="0 0 16 16"
|
|
116
121
|
fill="none"
|
|
117
122
|
class="banner-icon"
|
|
118
123
|
>
|
|
119
124
|
<path
|
|
120
125
|
fill-rule="evenodd"
|
|
121
126
|
clip-rule="evenodd"
|
|
122
|
-
d="M2.
|
|
127
|
+
d="M2 5.85166C2 5.61356 2.12699 5.39354 2.33315 5.27442L7.66648 2.19294C7.87284 2.07371 8.12716 2.07371 8.33352 2.19294L13.6669 5.27442C13.873 5.39354 14 5.61356 14 5.85166V6.66691C14 7.0351 13.7015 7.33357 13.3333 7.33357H12.6667V12.0002H13.3333C13.7015 12.0002 14 12.2987 14 12.6669V13.3336C14 13.7018 13.7015 14.0002 13.3333 14.0002H2.66667C2.29848 14.0002 2 13.7018 2 13.3336V12.6669C2 12.2987 2.29848 12.0002 2.66667 12.0002H3.33333V7.33357H2.66667C2.29848 7.33357 2 7.0351 2 6.66691V5.85166ZM5.33333 7.33357V12.0002H7V7.33357H5.33333ZM9 7.33357V12.0002H10.6667V7.33357H9ZM9 5.00024C9 5.55252 8.55229 6.00024 8 6.00024C7.44772 6.00024 7 5.55252 7 5.00024C7 4.44795 7.44772 4.00024 8 4.00024C8.55229 4.00024 9 4.44795 9 5.00024Z"
|
|
123
128
|
fill="currentColor"
|
|
124
129
|
/>
|
|
125
130
|
</svg>
|
|
@@ -140,16 +145,16 @@ class SgdsMasthead extends SgdsElement {
|
|
|
140
145
|
<div class="icon">
|
|
141
146
|
<svg
|
|
142
147
|
xmlns="http://www.w3.org/2000/svg"
|
|
143
|
-
width="
|
|
144
|
-
height="
|
|
145
|
-
viewBox="0 0
|
|
148
|
+
width="17"
|
|
149
|
+
height="16"
|
|
150
|
+
viewBox="0 0 17 16"
|
|
146
151
|
fill="none"
|
|
147
152
|
class="banner-icon"
|
|
148
153
|
>
|
|
149
154
|
<path
|
|
150
155
|
fill-rule="evenodd"
|
|
151
156
|
clip-rule="evenodd"
|
|
152
|
-
d="M5.
|
|
157
|
+
d="M5.3335 6.66683H5.00016C4.07969 6.66683 3.3335 7.41302 3.3335 8.3335V13.0002C3.3335 13.9206 4.07969 14.6668 5.00016 14.6668H12.3335C13.254 14.6668 14.0002 13.9206 14.0002 13.0002V8.3335C14.0002 7.41302 13.254 6.66683 12.3335 6.66683H12.0002V4.66683C12.0002 2.82588 10.5078 1.3335 8.66683 1.3335C6.82588 1.3335 5.3335 2.82588 5.3335 4.66683V6.66683ZM6.66683 6.66683H10.6668V4.66683C10.6668 3.56226 9.7714 2.66683 8.66683 2.66683C7.56226 2.66683 6.66683 3.56226 6.66683 4.66683V6.66683Z"
|
|
153
158
|
fill="currentColor"
|
|
154
159
|
/>
|
|
155
160
|
</svg>
|
|
@@ -159,16 +164,16 @@ class SgdsMasthead extends SgdsElement {
|
|
|
159
164
|
<article>
|
|
160
165
|
Look for a lock (<svg
|
|
161
166
|
xmlns="http://www.w3.org/2000/svg"
|
|
162
|
-
width="
|
|
163
|
-
height="
|
|
164
|
-
viewBox="0 0
|
|
167
|
+
width="16"
|
|
168
|
+
height="16"
|
|
169
|
+
viewBox="0 0 16 16"
|
|
165
170
|
fill="none"
|
|
166
171
|
class="banner-icon-inline"
|
|
167
172
|
>
|
|
168
173
|
<path
|
|
169
174
|
fill-rule="evenodd"
|
|
170
175
|
clip-rule="evenodd"
|
|
171
|
-
d="
|
|
176
|
+
d="M4.66699 6.66683H4.33366C3.41318 6.66683 2.66699 7.41302 2.66699 8.3335V13.0002C2.66699 13.9206 3.41318 14.6668 4.33366 14.6668H11.667C12.5875 14.6668 13.3337 13.9206 13.3337 13.0002V8.3335C13.3337 7.41302 12.5875 6.66683 11.667 6.66683H11.3337V4.66683C11.3337 2.82588 9.84127 1.3335 8.00033 1.3335C6.15938 1.3335 4.66699 2.82588 4.66699 4.66683V6.66683ZM6.00033 6.66683H10.0003V4.66683C10.0003 3.56226 9.10489 2.66683 8.00033 2.66683C6.89576 2.66683 6.00033 3.56226 6.00033 4.66683V6.66683Z"
|
|
172
177
|
fill="currentColor"
|
|
173
178
|
/></svg
|
|
174
179
|
>) or https:// as an added precaution. Share sensitive information only on official, secure
|
|
@@ -176,6 +181,32 @@ class SgdsMasthead extends SgdsElement {
|
|
|
176
181
|
</article>
|
|
177
182
|
</div>
|
|
178
183
|
</div>
|
|
184
|
+
<div class="wrapper">
|
|
185
|
+
<div class="icon">
|
|
186
|
+
<svg
|
|
187
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
188
|
+
width="17"
|
|
189
|
+
height="16"
|
|
190
|
+
viewBox="0 0 17 16"
|
|
191
|
+
fill="none"
|
|
192
|
+
class="banner-icon"
|
|
193
|
+
>
|
|
194
|
+
<path
|
|
195
|
+
fill-rule="evenodd"
|
|
196
|
+
clip-rule="evenodd"
|
|
197
|
+
d="M8.33342 1.3335C12.0153 1.3335 15.0001 4.31826 15.0001 8.00016C15.0001 11.6821 12.0153 14.6668 8.33342 14.6668C4.65152 14.6668 1.66675 11.6821 1.66675 8.00016C1.66675 4.31826 4.65152 1.3335 8.33342 1.3335ZM8.33342 10.0002C7.96523 10.0002 7.66675 10.2986 7.66675 10.6668C7.66675 11.035 7.96523 11.3335 8.33342 11.3335C8.7016 11.3335 9.00008 11.035 9.00008 10.6668C9.00008 10.2986 8.7016 10.0002 8.33342 10.0002ZM8.33342 4.68311C8.01125 4.68311 7.75008 4.94492 7.75008 5.26709V8.66683C7.75026 8.98885 8.01136 9.25016 8.33342 9.25016C8.65547 9.25016 8.91657 8.98885 8.91675 8.66683V5.26709C8.91675 4.94492 8.65558 4.68311 8.33342 4.68311Z"
|
|
198
|
+
fill="currentColor"
|
|
199
|
+
/>
|
|
200
|
+
</svg>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="content">
|
|
203
|
+
<div class="title">Scam alert</div>
|
|
204
|
+
<article>
|
|
205
|
+
Government officers will never ask you to send money or share your details over the phone. When
|
|
206
|
+
unsure, hang up and call Scamshield at 1799.
|
|
207
|
+
</article>
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
179
210
|
</div>
|
|
180
211
|
</div>
|
|
181
212
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-masthead.js","sources":["../../../../src/components/Masthead/sgds-masthead.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport mastheadStyle from \"./masthead.css\";\nimport svgStyles from \"../../styles/svg.css\";\nimport anchorStyles from \"../../styles/anchor.css\";\n\n/**\n * @summary All .gov.sg digital services shall adopt The Official Government Banner for every page in the digital service and be placed at the top of the page.\n */\nexport class SgdsMasthead extends SgdsElement {\n static styles = [...SgdsElement.styles, svgStyles, anchorStyles, mastheadStyle];\n\n /** @internal */\n @state()\n toggleVisibility = false;\n\n /** @internal */\n private _handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n this._toggleVisibility();\n }\n }\n\n /** @internal */\n private _toggleVisibility() {\n this.toggleVisibility = !this.toggleVisibility;\n }\n\n render() {\n return html`\n <div id=\"sgds-masthead\" class=\"sgds-masthead\" aria-label=\"A Singapore Government Agency Website\" role=\"banner\">\n <div class=\"banner\">\n <div class=\"container\">\n <div class=\"masthead-layout\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n class=\"sg-crest\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M4.31179 7.0109C4.31179 7.0109 3.78527 7.78129 4.4749 8.77746C4.4749 8.77746 4.58365 8.27018 5.67275 8.27018H6.97989C8.21435 8.27018 9.13979 7.04881 8.55889 5.78895C8.55889 5.78895 9.42995 5.88317 9.72123 5.31901C10.0114 4.75544 9.70292 4.52966 9.26739 4.52966H7.07088C7.07088 4.9341 6.32687 4.9904 6.32687 4.52966H5.09241C5.09241 4.52966 4.16643 4.52966 4.14867 5.33797C4.14867 5.33797 4.35784 5.20641 4.56589 5.18803V5.40346C4.56589 5.40346 4.31179 5.45057 4.19361 5.51664C4.07599 5.58213 3.90344 5.7608 4.06711 6.22154C4.23023 6.68171 4.29403 6.84142 4.29403 6.84142C4.29403 6.84142 4.55757 6.60588 4.98422 6.60588H5.48356C6.37237 6.60588 6.20925 7.49864 5.31989 7.49864C4.43052 7.49864 4.3129 7.01032 4.3129 7.01032L4.31179 7.0109Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.94948 6.0808C8.94948 6.0808 9.24908 6.09976 9.46657 5.90271C9.46657 5.90271 11.4362 7.49118 8.51395 10.6859C5.59118 13.8813 7.85094 15.9494 7.85094 15.9494C7.85094 15.9494 7.32498 16.4751 7.62402 17.5C7.62402 17.5 6.40843 16.7894 5.47856 15.5823C4.13479 13.8382 3.31367 11.1697 7.00374 9.04116C7.00374 9.04116 9.43938 7.77268 8.94948 6.0808Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M5.93914 4.22922C5.93914 4.22922 6.33251 3.50249 7.24573 3.50249C7.96588 3.50249 8.13011 3.11988 8.13011 3.11988C8.13011 3.11988 8.44413 2.5 10.0298 2.5C11.4829 2.5 12.4621 3.00153 13.2544 3.67139C13.2544 3.67139 11.1183 2.2995 9.01282 4.22922H5.93914Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14.8217 8.828C14.7612 6.5599 13.0668 4.12922 9.42448 4.2671C12.9825 1.14703 19.1543 8.11333 14.0711 11.7734C14.0711 11.7734 14.9216 10.517 14.8217 8.828Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.96927 4.51761C14.4106 4.37973 15.9962 9.89315 13.1278 12.3744L10.2478 13.8158C10.2478 13.8158 9.87273 12.5628 11.2648 11.0961C12.6568 9.6306 13.9994 6.88625 10.1518 5.08177C10.1518 5.08177 10.2245 4.70605 9.97038 4.51819L9.96927 4.51761Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.73904 5.75795C9.73904 5.75795 9.95708 5.54481 10.0298 5.36959C13.3331 6.79778 12.8133 9.21697 10.8403 11.2467C9.63029 12.537 10.0053 13.9284 10.0053 13.9284C10.0053 13.9284 8.52954 14.8803 8.02078 15.7076C8.02078 15.7076 5.88363 13.8233 8.84357 10.6957C11.748 7.62563 9.73904 5.75795 9.73904 5.75795Z\"\n fill=\"currentColor\"\n />\n </svg>\n <div class=\"masthead-text-layout\">\n <span>A Singapore Government Agency Website</span>\n <div\n class=\"sgds-masthead-button\"\n id=\"sgds-masthead-identify\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded=\"${this.toggleVisibility}\"\n aria-controls=\"sgds-masthead-content\"\n @keydown=${this._handleKeydown}\n @click=${this._toggleVisibility}\n >\n <span>How to identify</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n class=\"sgds-masthead-identify-icon ${!this.toggleVisibility ? null : \"show\"}\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.64645 7.14645C9.84171 6.95118 10.1583 6.95118 10.3536 7.14645L15.3536 12.1464C15.5488 12.3417 15.5488 12.6583 15.3536 12.8536C15.1583 13.0488 14.8417 13.0488 14.6464 12.8536L10 8.20711L5.35355 12.8536C5.15829 13.0488 4.84171 13.0488 4.64645 12.8536C4.45118 12.6583 4.45118 12.3417 4.64645 12.1464L9.64645 7.14645Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"panel\">\n <div\n id=\"sgds-masthead-content\"\n class=\"container sgds-masthead-content ${this.toggleVisibility ? \"show\" : null}\"\n >\n <div class=\"content-grid\">\n <div class=\"wrapper\">\n <div class=\"icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n class=\"banner-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.5 7.31409C2.5 7.01647 2.65873 6.74143 2.91644 6.59254L9.5831 2.74069C9.84105 2.59165 10.1589 2.59165 10.4169 2.74069L17.0836 6.59254C17.3413 6.74143 17.5 7.01647 17.5 7.31409V8.33314C17.5 8.79338 17.1269 9.16648 16.6667 9.16648H15.8333V14.9998H16.6667C17.1269 14.9998 17.5 15.3729 17.5 15.8331V16.6665C17.5 17.1267 17.1269 17.4998 16.6667 17.4998H3.33333C2.8731 17.4998 2.5 17.1267 2.5 16.6665V15.8331C2.5 15.3729 2.8731 14.9998 3.33333 14.9998H4.16667V9.16648H3.33333C2.8731 9.16648 2.5 8.79338 2.5 8.33314V7.31409ZM6.66667 9.16648V14.9998H8.75V9.16648H6.66667ZM11.25 9.16648V14.9998H13.3333V9.16648H11.25ZM11.25 6.24981C11.25 6.94017 10.6904 7.49981 10 7.49981C9.30964 7.49981 8.75 6.94017 8.75 6.24981C8.75 5.55945 9.30964 4.99981 10 4.99981C10.6904 4.99981 11.25 5.55945 11.25 6.24981Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"title\">Official website links end with .gov.sg</div>\n <article>Government agencies communicate via .gov.sg websites (e.g. go.gov.sg/open).</article>\n <a\n href=\"https://www.gov.sg/trusted-sites#govsites\"\n class=\"trusted-websites-link\"\n rel=\"noreferrer\"\n target=\"_blank\"\n >Trusted websites</a\n >\n </div>\n </div>\n <div class=\"wrapper\">\n <div class=\"icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n class=\"banner-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.83334 8.33317H5.41668C4.26608 8.33317 3.33334 9.26591 3.33334 10.4165V16.2498C3.33334 17.4004 4.26608 18.3332 5.41668 18.3332H14.5833C15.7339 18.3332 16.6667 17.4004 16.6667 16.2498V10.4165C16.6667 9.26591 15.7339 8.33317 14.5833 8.33317H14.1667V5.83317C14.1667 3.53198 12.3012 1.6665 10 1.6665C7.69882 1.6665 5.83334 3.53198 5.83334 5.83317V8.33317ZM7.50001 8.33317H12.5V5.83317C12.5 4.45246 11.3807 3.33317 10 3.33317C8.6193 3.33317 7.50001 4.45246 7.50001 5.83317V8.33317Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"title\">Secure websites use HTTPS</div>\n <article>\n Look for a lock (<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n class=\"banner-icon-inline\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.83331 8.33317H5.41665C4.26605 8.33317 3.33331 9.26591 3.33331 10.4165V16.2498C3.33331 17.4004 4.26605 18.3332 5.41665 18.3332H14.5833C15.7339 18.3332 16.6666 17.4004 16.6666 16.2498V10.4165C16.6666 9.26591 15.7339 8.33317 14.5833 8.33317H14.1666V5.83317C14.1666 3.53198 12.3012 1.6665 9.99998 1.6665C7.69879 1.6665 5.83331 3.53198 5.83331 5.83317V8.33317ZM7.49998 8.33317H12.5V5.83317C12.5 4.45246 11.3807 3.33317 9.99998 3.33317C8.61927 3.33317 7.49998 4.45246 7.49998 5.83317V8.33317Z\"\n fill=\"currentColor\"\n /></svg\n >) or https:// as an added precaution. Share sensitive information only on official, secure\n websites.\n </article>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsMasthead;\n"],"names":["svgStyles","anchorStyles","mastheadStyle"],"mappings":";;;;;;;;;AAOA;;AAEG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;AAA7C,IAAA,WAAA,GAAA;;;QAKE,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;KA0K1B;;AAvKS,IAAA,cAAc,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;;IAGO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;KAChD;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CoB,iCAAA,EAAA,IAAI,CAAC,gBAAgB,CAAA;;AAE3B,2BAAA,EAAA,IAAI,CAAC,cAAc,CAAA;AACrB,yBAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;;;;;;;;;yDASQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;;;qDAkB1C,IAAI,CAAC,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6ErF,CAAC;KACH;;AA7KM,YAAA,CAAA,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAS,EAAEC,UAAY,EAAEC,UAAa,CAAC,CAAC;AAIhF,UAAA,CAAA;AADC,IAAA,KAAK,EAAE;AACiB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"sgds-masthead.js","sources":["../../../../src/components/Masthead/sgds-masthead.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport SgdsElement from \"../../base/sgds-element\";\nimport mastheadStyle from \"./masthead.css\";\nimport svgStyles from \"../../styles/svg.css\";\nimport anchorStyles from \"../../styles/anchor.css\";\n\n/**\n * @summary All .gov.sg digital services shall adopt The Official Government Banner for every page in the digital service and be placed at the top of the page.\n */\nexport class SgdsMasthead extends SgdsElement {\n static styles = [...SgdsElement.styles, svgStyles, anchorStyles, mastheadStyle];\n\n /** @internal */\n @state()\n toggleVisibility = false;\n\n /** @internal */\n private _handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n this._toggleVisibility();\n }\n }\n\n /** @internal */\n private _toggleVisibility() {\n this.toggleVisibility = !this.toggleVisibility;\n }\n\n render() {\n return html`\n <div\n id=\"sgds-masthead\"\n class=\"sgds-masthead\"\n aria-label=\"A Singapore Government Agency Website. Beware of government impersonation scams.\"\n role=\"banner\"\n >\n <div class=\"banner\">\n <div class=\"container\">\n <div class=\"masthead-layout\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n class=\"sg-crest\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M4.31179 7.0109C4.31179 7.0109 3.78527 7.78129 4.4749 8.77746C4.4749 8.77746 4.58365 8.27018 5.67275 8.27018H6.97989C8.21435 8.27018 9.13979 7.04881 8.55889 5.78895C8.55889 5.78895 9.42995 5.88317 9.72123 5.31901C10.0114 4.75544 9.70292 4.52966 9.26739 4.52966H7.07088C7.07088 4.9341 6.32687 4.9904 6.32687 4.52966H5.09241C5.09241 4.52966 4.16643 4.52966 4.14867 5.33797C4.14867 5.33797 4.35784 5.20641 4.56589 5.18803V5.40346C4.56589 5.40346 4.31179 5.45057 4.19361 5.51664C4.07599 5.58213 3.90344 5.7608 4.06711 6.22154C4.23023 6.68171 4.29403 6.84142 4.29403 6.84142C4.29403 6.84142 4.55757 6.60588 4.98422 6.60588H5.48356C6.37237 6.60588 6.20925 7.49864 5.31989 7.49864C4.43052 7.49864 4.3129 7.01032 4.3129 7.01032L4.31179 7.0109Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.94948 6.0808C8.94948 6.0808 9.24908 6.09976 9.46657 5.90271C9.46657 5.90271 11.4362 7.49118 8.51395 10.6859C5.59118 13.8813 7.85094 15.9494 7.85094 15.9494C7.85094 15.9494 7.32498 16.4751 7.62402 17.5C7.62402 17.5 6.40843 16.7894 5.47856 15.5823C4.13479 13.8382 3.31367 11.1697 7.00374 9.04116C7.00374 9.04116 9.43938 7.77268 8.94948 6.0808Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M5.93914 4.22922C5.93914 4.22922 6.33251 3.50249 7.24573 3.50249C7.96588 3.50249 8.13011 3.11988 8.13011 3.11988C8.13011 3.11988 8.44413 2.5 10.0298 2.5C11.4829 2.5 12.4621 3.00153 13.2544 3.67139C13.2544 3.67139 11.1183 2.2995 9.01282 4.22922H5.93914Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14.8217 8.828C14.7612 6.5599 13.0668 4.12922 9.42448 4.2671C12.9825 1.14703 19.1543 8.11333 14.0711 11.7734C14.0711 11.7734 14.9216 10.517 14.8217 8.828Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.96927 4.51761C14.4106 4.37973 15.9962 9.89315 13.1278 12.3744L10.2478 13.8158C10.2478 13.8158 9.87273 12.5628 11.2648 11.0961C12.6568 9.6306 13.9994 6.88625 10.1518 5.08177C10.1518 5.08177 10.2245 4.70605 9.97038 4.51819L9.96927 4.51761Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M9.73904 5.75795C9.73904 5.75795 9.95708 5.54481 10.0298 5.36959C13.3331 6.79778 12.8133 9.21697 10.8403 11.2467C9.63029 12.537 10.0053 13.9284 10.0053 13.9284C10.0053 13.9284 8.52954 14.8803 8.02078 15.7076C8.02078 15.7076 5.88363 13.8233 8.84357 10.6957C11.748 7.62563 9.73904 5.75795 9.73904 5.75795Z\"\n fill=\"currentColor\"\n />\n </svg>\n <div class=\"masthead-text-layout\">\n <span>A Singapore Government Agency Website. Beware of government impersonation scams.</span>\n <div\n class=\"sgds-masthead-button\"\n id=\"sgds-masthead-identify\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded=\"${this.toggleVisibility}\"\n aria-controls=\"sgds-masthead-content\"\n @keydown=${this._handleKeydown}\n @click=${this._toggleVisibility}\n >\n <span>How to identify</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n class=\"sgds-masthead-identify-icon ${!this.toggleVisibility ? null : \"show\"}\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.64645 7.14645C9.84171 6.95118 10.1583 6.95118 10.3536 7.14645L15.3536 12.1464C15.5488 12.3417 15.5488 12.6583 15.3536 12.8536C15.1583 13.0488 14.8417 13.0488 14.6464 12.8536L10 8.20711L5.35355 12.8536C5.15829 13.0488 4.84171 13.0488 4.64645 12.8536C4.45118 12.6583 4.45118 12.3417 4.64645 12.1464L9.64645 7.14645Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"panel\">\n <div\n id=\"sgds-masthead-content\"\n class=\"container sgds-masthead-content ${this.toggleVisibility ? \"show\" : null}\"\n >\n <div class=\"content-grid\">\n <div class=\"wrapper\">\n <div class=\"icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"banner-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 5.85166C2 5.61356 2.12699 5.39354 2.33315 5.27442L7.66648 2.19294C7.87284 2.07371 8.12716 2.07371 8.33352 2.19294L13.6669 5.27442C13.873 5.39354 14 5.61356 14 5.85166V6.66691C14 7.0351 13.7015 7.33357 13.3333 7.33357H12.6667V12.0002H13.3333C13.7015 12.0002 14 12.2987 14 12.6669V13.3336C14 13.7018 13.7015 14.0002 13.3333 14.0002H2.66667C2.29848 14.0002 2 13.7018 2 13.3336V12.6669C2 12.2987 2.29848 12.0002 2.66667 12.0002H3.33333V7.33357H2.66667C2.29848 7.33357 2 7.0351 2 6.66691V5.85166ZM5.33333 7.33357V12.0002H7V7.33357H5.33333ZM9 7.33357V12.0002H10.6667V7.33357H9ZM9 5.00024C9 5.55252 8.55229 6.00024 8 6.00024C7.44772 6.00024 7 5.55252 7 5.00024C7 4.44795 7.44772 4.00024 8 4.00024C8.55229 4.00024 9 4.44795 9 5.00024Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"title\">Official website links end with .gov.sg</div>\n <article>Government agencies communicate via .gov.sg websites (e.g. go.gov.sg/open).</article>\n <a\n href=\"https://www.gov.sg/trusted-sites#govsites\"\n class=\"trusted-websites-link\"\n rel=\"noreferrer\"\n target=\"_blank\"\n >Trusted websites</a\n >\n </div>\n </div>\n <div class=\"wrapper\">\n <div class=\"icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n class=\"banner-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.3335 6.66683H5.00016C4.07969 6.66683 3.3335 7.41302 3.3335 8.3335V13.0002C3.3335 13.9206 4.07969 14.6668 5.00016 14.6668H12.3335C13.254 14.6668 14.0002 13.9206 14.0002 13.0002V8.3335C14.0002 7.41302 13.254 6.66683 12.3335 6.66683H12.0002V4.66683C12.0002 2.82588 10.5078 1.3335 8.66683 1.3335C6.82588 1.3335 5.3335 2.82588 5.3335 4.66683V6.66683ZM6.66683 6.66683H10.6668V4.66683C10.6668 3.56226 9.7714 2.66683 8.66683 2.66683C7.56226 2.66683 6.66683 3.56226 6.66683 4.66683V6.66683Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"title\">Secure websites use HTTPS</div>\n <article>\n Look for a lock (<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"banner-icon-inline\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.66699 6.66683H4.33366C3.41318 6.66683 2.66699 7.41302 2.66699 8.3335V13.0002C2.66699 13.9206 3.41318 14.6668 4.33366 14.6668H11.667C12.5875 14.6668 13.3337 13.9206 13.3337 13.0002V8.3335C13.3337 7.41302 12.5875 6.66683 11.667 6.66683H11.3337V4.66683C11.3337 2.82588 9.84127 1.3335 8.00033 1.3335C6.15938 1.3335 4.66699 2.82588 4.66699 4.66683V6.66683ZM6.00033 6.66683H10.0003V4.66683C10.0003 3.56226 9.10489 2.66683 8.00033 2.66683C6.89576 2.66683 6.00033 3.56226 6.00033 4.66683V6.66683Z\"\n fill=\"currentColor\"\n /></svg\n >) or https:// as an added precaution. Share sensitive information only on official, secure\n websites.\n </article>\n </div>\n </div>\n <div class=\"wrapper\">\n <div class=\"icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n class=\"banner-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.33342 1.3335C12.0153 1.3335 15.0001 4.31826 15.0001 8.00016C15.0001 11.6821 12.0153 14.6668 8.33342 14.6668C4.65152 14.6668 1.66675 11.6821 1.66675 8.00016C1.66675 4.31826 4.65152 1.3335 8.33342 1.3335ZM8.33342 10.0002C7.96523 10.0002 7.66675 10.2986 7.66675 10.6668C7.66675 11.035 7.96523 11.3335 8.33342 11.3335C8.7016 11.3335 9.00008 11.035 9.00008 10.6668C9.00008 10.2986 8.7016 10.0002 8.33342 10.0002ZM8.33342 4.68311C8.01125 4.68311 7.75008 4.94492 7.75008 5.26709V8.66683C7.75026 8.98885 8.01136 9.25016 8.33342 9.25016C8.65547 9.25016 8.91657 8.98885 8.91675 8.66683V5.26709C8.91675 4.94492 8.65558 4.68311 8.33342 4.68311Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"title\">Scam alert</div>\n <article>\n Government officers will never ask you to send money or share your details over the phone. When\n unsure, hang up and call Scamshield at 1799.\n </article>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nexport default SgdsMasthead;\n"],"names":["svgStyles","anchorStyles","mastheadStyle"],"mappings":";;;;;;;;;AAOA;;AAEG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;AAA7C,IAAA,WAAA,GAAA;;;QAKE,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;KAyM1B;;AAtMS,IAAA,cAAc,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;KACF;;IAGO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;KAChD;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDoB,iCAAA,EAAA,IAAI,CAAC,gBAAgB,CAAA;;AAE3B,2BAAA,EAAA,IAAI,CAAC,cAAc,CAAA;AACrB,yBAAA,EAAA,IAAI,CAAC,iBAAiB,CAAA;;;;;;;;;yDASQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;;;qDAkB1C,IAAI,CAAC,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuGrF,CAAC;KACH;;AA5MM,YAAA,CAAA,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAS,EAAEC,UAAY,EAAEC,UAAa,CAAC,CAAC;AAIhF,UAAA,CAAA;AADC,IAAA,KAAK,EAAE;AACiB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA;;;;"}
|
|
@@ -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([active]) .dropdown-item{background-color:var(--sgds-primary-surface-translucent)}.dropdown-item{background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;height:100%;padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit
|
|
8
|
+
var css_248z = lit.css`:host([active]) .dropdown-item{background-color:var(--sgds-primary-surface-translucent)}.dropdown-item{background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;height:100%;padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item .normal-item-content{align-items:center;display:flex;justify-content:space-between}:host([active]) .dropdown-item .normal-item-content{color:var(--sgds-primary-bg-default)}:host([active]) .dropdown-item .normal-item-content sgds-icon{fill:var(--sgds-primary-bg-default);color:var(--sgds-primary-bg-default)}.dropdown-item:hover{background:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus,.dropdown-item:focus-visible{background:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=select-item.cjs2.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`:host([active]) .dropdown-item{background-color:var(--sgds-primary-surface-translucent)}.dropdown-item{background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;height:100%;padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit
|
|
4
|
+
var css_248z = css`:host([active]) .dropdown-item{background-color:var(--sgds-primary-surface-translucent)}.dropdown-item{background-color:var(--sgds-bg-transparent);clear:both;color:var(--sgds-color-default);cursor:pointer;height:100%;padding:var(--sgds-padding-sm) var(--sgds-padding-lg);text-align:inherit}.dropdown-item .normal-item-content{align-items:center;display:flex;justify-content:space-between}:host([active]) .dropdown-item .normal-item-content{color:var(--sgds-primary-bg-default)}:host([active]) .dropdown-item .normal-item-content sgds-icon{fill:var(--sgds-primary-bg-default);color:var(--sgds-primary-bg-default)}.dropdown-item:hover{background:var(--sgds-bg-translucent-subtle)}.dropdown-item:focus,.dropdown-item:focus-visible{background:var(--sgds-bg-translucent-subtle);box-shadow:inset var(--sgds-form-box-shadow-focus);outline:0}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=select-item2.js.map
|
|
@@ -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{display:block;position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-
|
|
8
|
+
var css_248z = lit.css`:host{display:block;position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-raised);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);width:100%}.subnav{flex-direction:column;flex-wrap:nowrap}.header-container,.subnav{align-items:flex-start;display:flex}.header-container{gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);width:100%}slot[name=header]::slotted(*){--sgds-margin-3-xs:var(--sgds-margin-none);flex:1 1 auto;margin-bottom:var(--sgds-margin-3-xs,--sgds-margin-none);padding-top:var(--sgds-padding-none)}.subnav-toggler{cursor:pointer;transition:transform .2s ease-in-out}.subnav-toggler:focus,.subnav-toggler:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.subnav:not(.collapsed) .subnav-toggler{transform:rotate(-180deg)}.subnav-nav-group{display:flex;flex:1 1 0}.subnav-nav,.subnav-nav-group{align-items:flex-start;flex-direction:column;width:100%}.subnav-nav{display:none;overflow-y:auto;transition:transform .2s ease-in-out}.subnav-nav ::slotted(*){width:100%}.subnav-actions{bottom:0;display:flex;flex-direction:column;gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);position:sticky;width:100%}slot[name=actions]::slotted(*){width:100%}@media screen and (max-width:1023px){.subnav.sgds-container{max-width:inherit}}@media screen and (min-width:512px){.subnav-actions{flex-direction:row}}@media screen and (min-width:768px){nav{border-bottom:var(--sgds-border-width-0)}.subnav{flex-direction:row}.subnav.collapsed{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted)}.header-container{padding:var(--sgds-padding-lg) var(--sgds-padding-2-xl)}.subnav-nav{background-color:var(--sgds-surface-raised);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);left:0;position:absolute;top:100%}.subnav-actions{align-items:center;flex-direction:row;padding:var(--sgds-padding-sm) var(--sgds-padding-2-xl) var(--sgds-padding-sm) var(--sgds-padding-none);position:inherit}}@media screen and (min-width:1024px){nav{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);position:inherit}.subnav{flex-wrap:wrap;gap:var(--sgds-gap-xl);row-gap:var(--sgds-gap-none)}.subnav.collapsed{border-bottom:var(--sgds-border-width-0)}.header-container{flex:1;padding:var(--sgds-padding-none);width:auto}slot[name=header]::slotted(*){padding-top:var(--sgds-padding-lg);white-space:nowrap}.subnav-nav-group{align-items:center;flex:inherit;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-xl);justify-content:space-between;row-gap:var(--sgds-gap-none);width:auto}.subnav-nav{align-items:center;background-color:inherit;border-bottom:var(--sgds-border-width-0);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-lg);overflow-y:inherit;position:inherit;row-gap:0;transition:none;width:auto}.subnav-nav ::slotted(*){width:inherit}.subnav-toggler{display:none}.subnav-actions{padding:var(--sgds-padding-sm) var(--sgds-padding-none);width:auto}slot[name=actions]::slotted(*){width:inherit}}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=subnav.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{display:block;position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-
|
|
4
|
+
var css_248z = css`:host{display:block;position:sticky;top:0;z-index:1000}nav{background-color:var(--sgds-surface-raised);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);width:100%}.subnav{flex-direction:column;flex-wrap:nowrap}.header-container,.subnav{align-items:flex-start;display:flex}.header-container{gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);width:100%}slot[name=header]::slotted(*){--sgds-margin-3-xs:var(--sgds-margin-none);flex:1 1 auto;margin-bottom:var(--sgds-margin-3-xs,--sgds-margin-none);padding-top:var(--sgds-padding-none)}.subnav-toggler{cursor:pointer;transition:transform .2s ease-in-out}.subnav-toggler:focus,.subnav-toggler:focus-visible{box-shadow:var(--sgds-box-shadow-focus);outline:0}.subnav:not(.collapsed) .subnav-toggler{transform:rotate(-180deg)}.subnav-nav-group{display:flex;flex:1 1 0}.subnav-nav,.subnav-nav-group{align-items:flex-start;flex-direction:column;width:100%}.subnav-nav{display:none;overflow-y:auto;transition:transform .2s ease-in-out}.subnav-nav ::slotted(*){width:100%}.subnav-actions{bottom:0;display:flex;flex-direction:column;gap:var(--sgds-gap-md);padding:var(--sgds-padding-md) var(--sgds-padding-lg);position:sticky;width:100%}slot[name=actions]::slotted(*){width:100%}@media screen and (max-width:1023px){.subnav.sgds-container{max-width:inherit}}@media screen and (min-width:512px){.subnav-actions{flex-direction:row}}@media screen and (min-width:768px){nav{border-bottom:var(--sgds-border-width-0)}.subnav{flex-direction:row}.subnav.collapsed{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted)}.header-container{padding:var(--sgds-padding-lg) var(--sgds-padding-2-xl)}.subnav-nav{background-color:var(--sgds-surface-raised);border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);left:0;position:absolute;top:100%}.subnav-actions{align-items:center;flex-direction:row;padding:var(--sgds-padding-sm) var(--sgds-padding-2-xl) var(--sgds-padding-sm) var(--sgds-padding-none);position:inherit}}@media screen and (min-width:1024px){nav{border-bottom:var(--sgds-border-width-1) solid var(--sgds-border-color-muted);position:inherit}.subnav{flex-wrap:wrap;gap:var(--sgds-gap-xl);row-gap:var(--sgds-gap-none)}.subnav.collapsed{border-bottom:var(--sgds-border-width-0)}.header-container{flex:1;padding:var(--sgds-padding-none);width:auto}slot[name=header]::slotted(*){padding-top:var(--sgds-padding-lg);white-space:nowrap}.subnav-nav-group{align-items:center;flex:inherit;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-xl);justify-content:space-between;row-gap:var(--sgds-gap-none);width:auto}.subnav-nav{align-items:center;background-color:inherit;border-bottom:var(--sgds-border-width-0);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--sgds-gap-lg);overflow-y:inherit;position:inherit;row-gap:0;transition:none;width:auto}.subnav-nav ::slotted(*){width:inherit}.subnav-toggler{display:none}.subnav-actions{padding:var(--sgds-padding-sm) var(--sgds-padding-none);width:auto}slot[name=actions]::slotted(*){width:inherit}}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=subnav.js.map
|
|
@@ -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{display:contents}.tooltip-placeholder{display:inline-block}.tooltip{word-wrap:break-word;display:block;line-break:auto;opacity:0;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}.tooltip.show{opacity:1}.tooltip-inner{background-color:var(--sgds-surface-fixed-dark);border-radius:var(--sgds-border-radius-md);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 8px 16px 0 rgba(0,0,0,.14);color:var(--sgds-color-fixed-light);font-size:var(--sgds-font-size-1);max-width:var(--sgds-dimension-320);padding:var(--sgds-padding-xs) var(--sgds-padding-sm)}div{max-width:fit-content}`;
|
|
8
|
+
var css_248z = lit.css`:host{display:contents}.tooltip-placeholder{display:inline-block;max-width:100%}.tooltip{word-wrap:break-word;display:block;line-break:auto;opacity:0;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}.tooltip.show{opacity:1}.tooltip-inner{background-color:var(--sgds-surface-fixed-dark);border-radius:var(--sgds-border-radius-md);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 8px 16px 0 rgba(0,0,0,.14);color:var(--sgds-color-fixed-light);font-size:var(--sgds-font-size-1);max-width:var(--sgds-dimension-320);padding:var(--sgds-padding-xs) var(--sgds-padding-sm)}div{max-width:fit-content}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=tooltip.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{display:contents}.tooltip-placeholder{display:inline-block}.tooltip{word-wrap:break-word;display:block;line-break:auto;opacity:0;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}.tooltip.show{opacity:1}.tooltip-inner{background-color:var(--sgds-surface-fixed-dark);border-radius:var(--sgds-border-radius-md);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 8px 16px 0 rgba(0,0,0,.14);color:var(--sgds-color-fixed-light);font-size:var(--sgds-font-size-1);max-width:var(--sgds-dimension-320);padding:var(--sgds-padding-xs) var(--sgds-padding-sm)}div{max-width:fit-content}`;
|
|
4
|
+
var css_248z = css`:host{display:contents}.tooltip-placeholder{display:inline-block;max-width:100%}.tooltip{word-wrap:break-word;display:block;line-break:auto;opacity:0;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;z-index:1080}.tooltip.show{opacity:1}.tooltip-inner{background-color:var(--sgds-surface-fixed-dark);border-radius:var(--sgds-border-radius-md);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 8px 16px 0 rgba(0,0,0,.14);color:var(--sgds-color-fixed-light);font-size:var(--sgds-font-size-1);max-width:var(--sgds-dimension-320);padding:var(--sgds-padding-xs) var(--sgds-padding-sm)}div{max-width:fit-content}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=tooltip.js.map
|
package/react/index.cjs.js
CHANGED
|
@@ -40,10 +40,10 @@ var index$x = require('./progress-bar/index.cjs.js');
|
|
|
40
40
|
var index$y = require('./quantity-toggle/index.cjs.js');
|
|
41
41
|
var index$z = require('./radio-group/index.cjs.js');
|
|
42
42
|
var index$A = require('./radio/index.cjs.js');
|
|
43
|
-
var index$B = require('./
|
|
44
|
-
var index$C = require('./sidenav-
|
|
45
|
-
var index$D = require('./sidenav/index.cjs.js');
|
|
46
|
-
var index$E = require('./
|
|
43
|
+
var index$B = require('./select/index.cjs.js');
|
|
44
|
+
var index$C = require('./sidenav-item/index.cjs.js');
|
|
45
|
+
var index$D = require('./sidenav-link/index.cjs.js');
|
|
46
|
+
var index$E = require('./sidenav/index.cjs.js');
|
|
47
47
|
var index$F = require('./skeleton/index.cjs.js');
|
|
48
48
|
var index$G = require('./spinner/index.cjs.js');
|
|
49
49
|
var index$H = require('./stepper/index.cjs.js');
|
|
@@ -102,10 +102,10 @@ exports.SgdsProgressBar = index$x["default"];
|
|
|
102
102
|
exports.SgdsQuantityToggle = index$y["default"];
|
|
103
103
|
exports.SgdsRadioGroup = index$z["default"];
|
|
104
104
|
exports.SgdsRadio = index$A["default"];
|
|
105
|
-
exports.
|
|
106
|
-
exports.
|
|
107
|
-
exports.
|
|
108
|
-
exports.
|
|
105
|
+
exports.SgdsSelect = index$B["default"];
|
|
106
|
+
exports.SgdsSidenavItem = index$C["default"];
|
|
107
|
+
exports.SgdsSidenavLink = index$D["default"];
|
|
108
|
+
exports.SgdsSidenav = index$E["default"];
|
|
109
109
|
exports.SgdsSkeleton = index$F["default"];
|
|
110
110
|
exports.SgdsSpinner = index$G["default"];
|
|
111
111
|
exports.SgdsStepper = index$H["default"];
|
package/react/index.js
CHANGED
|
@@ -36,10 +36,10 @@ export { default as SgdsProgressBar } from './progress-bar/index.js';
|
|
|
36
36
|
export { default as SgdsQuantityToggle } from './quantity-toggle/index.js';
|
|
37
37
|
export { default as SgdsRadioGroup } from './radio-group/index.js';
|
|
38
38
|
export { default as SgdsRadio } from './radio/index.js';
|
|
39
|
+
export { default as SgdsSelect } from './select/index.js';
|
|
39
40
|
export { default as SgdsSidenavItem } from './sidenav-item/index.js';
|
|
40
41
|
export { default as SgdsSidenavLink } from './sidenav-link/index.js';
|
|
41
42
|
export { default as SgdsSidenav } from './sidenav/index.js';
|
|
42
|
-
export { default as SgdsSelect } from './select/index.js';
|
|
43
43
|
export { default as SgdsSkeleton } from './skeleton/index.js';
|
|
44
44
|
export { default as SgdsSpinner } from './spinner/index.js';
|
|
45
45
|
export { default as SgdsStepper } from './stepper/index.js';
|
package/react/utils/slot.cjs.js
CHANGED
|
@@ -52,6 +52,24 @@ class HasSlotController {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a
|
|
57
|
+
* string. This is useful because we can't use slot.textContent as an alternative.
|
|
58
|
+
*/
|
|
59
|
+
function getTextContent(slot) {
|
|
60
|
+
if (!slot) {
|
|
61
|
+
return "";
|
|
62
|
+
}
|
|
63
|
+
const nodes = slot.assignedNodes({ flatten: true });
|
|
64
|
+
let text = "";
|
|
65
|
+
[...nodes].forEach(node => {
|
|
66
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
67
|
+
text += node.textContent.trim();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return text;
|
|
71
|
+
}
|
|
55
72
|
|
|
56
73
|
exports.HasSlotController = HasSlotController;
|
|
74
|
+
exports.getTextContent = getTextContent;
|
|
57
75
|
//# sourceMappingURL=slot.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.cjs.js","sources":["../../../src/utils/slot.ts"],"sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from \"lit\";\n\nexport class HasSlotController implements ReactiveController {\n host: ReactiveControllerHost & Element;\n slotNames: string[] = [];\n\n constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]) {\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n this.handleSlotChange = this.handleSlotChange.bind(this);\n }\n\n private hasDefaultSlot() {\n return [...this.host.childNodes].some(node => {\n if (node.nodeType === node.TEXT_NODE && node.textContent?.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const tagName = el.tagName.toLowerCase();\n\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n private hasNamedSlot(name: string) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n\n test(slotName: string) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n\n hostConnected() {\n this.host.shadowRoot?.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n hostDisconnected() {\n this.host.shadowRoot?.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n if ((this.slotNames.includes(\"[default]\") && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n }\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned element and text nodes and returns the concatenated\n * HTML as a string. This is useful because we can't use slot.innerHTML as an alternative.\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as HTMLElement).outerHTML;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a\n * string. This is useful because we can't use slot.textContent as an alternative.\n */\nexport function getTextContent(slot: HTMLSlotElement | undefined | null): string {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n });\n\n return text;\n}\n"],"names":[],"mappings":";;;;;MAEa,iBAAiB,CAAA;IAI5B,WAAY,CAAA,IAAsC,EAAE,GAAG,SAAmB,EAAA;QAF1E,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;QAGvB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1D;IAEO,cAAc,GAAA;AACpB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,IAAG;;AAC3C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,CAAA,MAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,MAAK,EAAE,EAAE;AACvE,gBAAA,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;gBACvC,MAAM,EAAE,GAAG,IAAmB,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;;AAGzC,gBAAA,IAAI,OAAO,KAAK,oBAAoB,EAAE;AACpC,oBAAA,OAAO,KAAK,CAAC;iBACd;;gBAGD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC5B,oBAAA,OAAO,IAAI,CAAC;iBACb;aACF;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,YAAY,CAAC,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAmB,gBAAA,EAAA,IAAI,CAAI,EAAA,CAAA,CAAC,KAAK,IAAI,CAAC;KACtE;AAED,IAAA,IAAI,CAAC,QAAgB,EAAA;AACnB,QAAA,OAAO,QAAQ,KAAK,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACvF;IAED,aAAa,GAAA;;AACX,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC7E;IAED,gBAAgB,GAAA;;AACd,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAChF;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB,CAAC;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7G,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SAC3B;KACF;AACF
|
|
1
|
+
{"version":3,"file":"slot.cjs.js","sources":["../../../src/utils/slot.ts"],"sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from \"lit\";\n\nexport class HasSlotController implements ReactiveController {\n host: ReactiveControllerHost & Element;\n slotNames: string[] = [];\n\n constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]) {\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n this.handleSlotChange = this.handleSlotChange.bind(this);\n }\n\n private hasDefaultSlot() {\n return [...this.host.childNodes].some(node => {\n if (node.nodeType === node.TEXT_NODE && node.textContent?.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const tagName = el.tagName.toLowerCase();\n\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n private hasNamedSlot(name: string) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n\n test(slotName: string) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n\n hostConnected() {\n this.host.shadowRoot?.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n hostDisconnected() {\n this.host.shadowRoot?.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n if ((this.slotNames.includes(\"[default]\") && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n }\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned element and text nodes and returns the concatenated\n * HTML as a string. This is useful because we can't use slot.innerHTML as an alternative.\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as HTMLElement).outerHTML;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a\n * string. This is useful because we can't use slot.textContent as an alternative.\n */\nexport function getTextContent(slot: HTMLSlotElement | undefined | null): string {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent.trim();\n }\n });\n\n return text;\n}\n"],"names":[],"mappings":"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"}
|
package/react/utils/slot.js
CHANGED
|
@@ -48,6 +48,23 @@ class HasSlotController {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a
|
|
53
|
+
* string. This is useful because we can't use slot.textContent as an alternative.
|
|
54
|
+
*/
|
|
55
|
+
function getTextContent(slot) {
|
|
56
|
+
if (!slot) {
|
|
57
|
+
return "";
|
|
58
|
+
}
|
|
59
|
+
const nodes = slot.assignedNodes({ flatten: true });
|
|
60
|
+
let text = "";
|
|
61
|
+
[...nodes].forEach(node => {
|
|
62
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
63
|
+
text += node.textContent.trim();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return text;
|
|
67
|
+
}
|
|
51
68
|
|
|
52
|
-
export { HasSlotController };
|
|
69
|
+
export { HasSlotController, getTextContent };
|
|
53
70
|
//# sourceMappingURL=slot.js.map
|
package/react/utils/slot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.js","sources":["../../../src/utils/slot.ts"],"sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from \"lit\";\n\nexport class HasSlotController implements ReactiveController {\n host: ReactiveControllerHost & Element;\n slotNames: string[] = [];\n\n constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]) {\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n this.handleSlotChange = this.handleSlotChange.bind(this);\n }\n\n private hasDefaultSlot() {\n return [...this.host.childNodes].some(node => {\n if (node.nodeType === node.TEXT_NODE && node.textContent?.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const tagName = el.tagName.toLowerCase();\n\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n private hasNamedSlot(name: string) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n\n test(slotName: string) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n\n hostConnected() {\n this.host.shadowRoot?.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n hostDisconnected() {\n this.host.shadowRoot?.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n if ((this.slotNames.includes(\"[default]\") && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n }\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned element and text nodes and returns the concatenated\n * HTML as a string. This is useful because we can't use slot.innerHTML as an alternative.\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as HTMLElement).outerHTML;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a\n * string. This is useful because we can't use slot.textContent as an alternative.\n */\nexport function getTextContent(slot: HTMLSlotElement | undefined | null): string {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n });\n\n return text;\n}\n"],"names":[],"mappings":";MAEa,iBAAiB,CAAA;IAI5B,WAAY,CAAA,IAAsC,EAAE,GAAG,SAAmB,EAAA;QAF1E,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;QAGvB,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1D;IAEO,cAAc,GAAA;AACpB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,IAAG;;AAC3C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,CAAA,MAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,MAAK,EAAE,EAAE;AACvE,gBAAA,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;gBACvC,MAAM,EAAE,GAAG,IAAmB,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;;AAGzC,gBAAA,IAAI,OAAO,KAAK,oBAAoB,EAAE;AACpC,oBAAA,OAAO,KAAK,CAAC;iBACd;;gBAGD,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC5B,oBAAA,OAAO,IAAI,CAAC;iBACb;aACF;AAED,YAAA,OAAO,KAAK,CAAC;AACf,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,YAAY,CAAC,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAmB,gBAAA,EAAA,IAAI,CAAI,EAAA,CAAA,CAAC,KAAK,IAAI,CAAC;KACtE;AAED,IAAA,IAAI,CAAC,QAAgB,EAAA;AACnB,QAAA,OAAO,QAAQ,KAAK,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACvF;IAED,aAAa,GAAA;;AACX,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC7E;IAED,gBAAgB,GAAA;;AACd,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAChF;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB,CAAC;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7G,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;SAC3B;KACF;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"slot.js","sources":["../../../src/utils/slot.ts"],"sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from \"lit\";\n\nexport class HasSlotController implements ReactiveController {\n host: ReactiveControllerHost & Element;\n slotNames: string[] = [];\n\n constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]) {\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n this.handleSlotChange = this.handleSlotChange.bind(this);\n }\n\n private hasDefaultSlot() {\n return [...this.host.childNodes].some(node => {\n if (node.nodeType === node.TEXT_NODE && node.textContent?.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n const tagName = el.tagName.toLowerCase();\n\n // Ignore visually hidden elements since they aren't rendered\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n\n // If it doesn't have a slot attribute, it's part of the default slot\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n private hasNamedSlot(name: string) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n\n test(slotName: string) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n\n hostConnected() {\n this.host.shadowRoot?.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n hostDisconnected() {\n this.host.shadowRoot?.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n\n handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n\n if ((this.slotNames.includes(\"[default]\") && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {\n this.host.requestUpdate();\n }\n }\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned element and text nodes and returns the concatenated\n * HTML as a string. This is useful because we can't use slot.innerHTML as an alternative.\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as HTMLElement).outerHTML;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Given a slot, this function iterates over all of its assigned text nodes and returns the concatenated text as a\n * string. This is useful because we can't use slot.textContent as an alternative.\n */\nexport function getTextContent(slot: HTMLSlotElement | undefined | null): string {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n\n [...nodes].forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent.trim();\n }\n });\n\n return text;\n}\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RGB, RGBA } from "@figma/rest-api-spec";
|
|
2
|
+
/**
|
|
3
|
+
* Compares two colors for approximate equality since converting between Figma RGBA objects (from 0 -> 1) and
|
|
4
|
+
* hex colors can result in slight differences.
|
|
5
|
+
*/
|
|
6
|
+
export declare function colorApproximatelyEqual(colorA: RGB | RGBA, colorB: RGB | RGBA): boolean;
|
|
7
|
+
export declare function parseColor(color: string): RGB | RGBA;
|
|
8
|
+
export declare function rgbToHex({ r, g, b, ...rest }: RGB | RGBA): string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GetLocalVariablesResponse, PostVariablesRequestBody, PostVariablesResponse } from "@figma/rest-api-spec";
|
|
2
|
+
export default class FigmaApi {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private token;
|
|
5
|
+
constructor(token: string);
|
|
6
|
+
getLocalVariables(fileKey: string): Promise<GetLocalVariablesResponse>;
|
|
7
|
+
postVariables(fileKey: string, payload: PostVariablesRequestBody): Promise<PostVariablesResponse>;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file defines what design tokens and design token files look like in the codebase.
|
|
3
|
+
*
|
|
4
|
+
* Tokens are distinct from variables, in that a [token](https://tr.designtokens.org/format/#design-token)
|
|
5
|
+
* is a name/value pair (with other properties), while a variable in Figma stores multiple values,
|
|
6
|
+
* one for each mode.
|
|
7
|
+
*/
|
|
8
|
+
import { VariableCodeSyntax, VariableScope } from "@figma/rest-api-spec";
|
|
9
|
+
export interface Token {
|
|
10
|
+
/**
|
|
11
|
+
* The [type](https://tr.designtokens.org/format/#type-0) of the token.
|
|
12
|
+
*
|
|
13
|
+
* We allow `string` and `boolean` types in addition to the draft W3C spec's `color` and `number` types
|
|
14
|
+
* to align with the resolved types for Figma variables.
|
|
15
|
+
*/
|
|
16
|
+
$type: "color" | "number" | "string" | "boolean";
|
|
17
|
+
$value: string | number | boolean;
|
|
18
|
+
$description?: string;
|
|
19
|
+
$extensions?: {
|
|
20
|
+
/**
|
|
21
|
+
* The `com.figma` namespace stores Figma-specific variable properties
|
|
22
|
+
*/
|
|
23
|
+
"com.figma"?: {
|
|
24
|
+
hiddenFromPublishing?: boolean;
|
|
25
|
+
scopes?: VariableScope[];
|
|
26
|
+
codeSyntax?: VariableCodeSyntax;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export type TokenOrTokenGroup = Token | ({
|
|
31
|
+
[tokenName: string]: Token;
|
|
32
|
+
} & {
|
|
33
|
+
$type?: never;
|
|
34
|
+
$value?: never;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Defines what we expect a Design Tokens file to look like in the codebase.
|
|
38
|
+
*
|
|
39
|
+
* This format mostly adheres to the [draft W3C spec for Design Tokens](https://tr.designtokens.org/format/)
|
|
40
|
+
* as of its most recent 24 July 2023 revision except for the $type property, for which
|
|
41
|
+
* we allow `string` and `boolean` values in addition to the spec's `color` and `number` values.
|
|
42
|
+
* We need to support `string` and `boolean` types to align with the resolved types for Figma variables.
|
|
43
|
+
*
|
|
44
|
+
* Additionally, we expect each tokens file to define tokens for a single variable collection and mode.
|
|
45
|
+
* There currently isn't a way to represent modes or themes in the W3C community group design token specification.
|
|
46
|
+
* Once the spec resolves how it wants to treat/handle modes, this code will be updated to reflect the new standard.
|
|
47
|
+
*
|
|
48
|
+
* Follow this discussion for updates: https://github.com/design-tokens/community-group/issues/210
|
|
49
|
+
*/
|
|
50
|
+
export type TokensFile = {
|
|
51
|
+
[key: string]: TokenOrTokenGroup;
|
|
52
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function arrangeSgdsFiles(fileName: string): string;
|
|
2
|
+
export declare function saveToMap(filePath: string, map: Map<string, object>, mapKey: string): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* Converts a token name like '{sgds-dimension-320}' to a CSS var() reference.
|
|
5
|
+
* Example: '{sgds-dimension-320}' => 'var(--sgds-dimension-320)'
|
|
6
|
+
*/
|
|
7
|
+
export declare function tokenNameToCssVar(tokenName: string): string | undefined;
|
|
8
|
+
export declare function tokenToCssVars(): Promise<void>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { nothing } from "lit";
|
|
2
2
|
import SgdsElement from "../../base/sgds-element";
|
|
3
|
+
import SgdsTooltip from "../Tooltip/sgds-tooltip";
|
|
3
4
|
import SgdsCloseButton from "../../internals/CloseButton/sgds-close-button";
|
|
4
5
|
export type BadgeVariant = "info" | "success" | "danger" | "warning" | "neutral";
|
|
5
6
|
/**
|
|
6
7
|
* @summary Badges can be used to highlight important bits of information such as labels, notifications & status.
|
|
8
|
+
* When the text exceeds the width, it will be truncated with a tooltip that will be displayed on hover.
|
|
7
9
|
*
|
|
8
10
|
* @slot default - slot for badge
|
|
9
11
|
* @slot icon - The slot for icon to the left of the badge text
|
|
@@ -18,6 +20,7 @@ export declare class SgdsBadge extends SgdsElement {
|
|
|
18
20
|
/**@internal */
|
|
19
21
|
static dependencies: {
|
|
20
22
|
"sgds-close-button": typeof SgdsCloseButton;
|
|
23
|
+
"sgds-tooltip": typeof SgdsTooltip;
|
|
21
24
|
};
|
|
22
25
|
/** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */
|
|
23
26
|
show: boolean;
|
|
@@ -27,10 +30,18 @@ export declare class SgdsBadge extends SgdsElement {
|
|
|
27
30
|
outlined: boolean;
|
|
28
31
|
/** Manually set the dismissible state of the button to `false` */
|
|
29
32
|
dismissible: boolean;
|
|
33
|
+
/** Manually enable full width */
|
|
34
|
+
fullWidth: boolean;
|
|
35
|
+
private truncated;
|
|
36
|
+
private text;
|
|
30
37
|
/** Closes the badge */
|
|
31
38
|
close(): void;
|
|
32
39
|
/**@internal */
|
|
33
40
|
_handleShowChange(): void;
|
|
41
|
+
/**@internal */
|
|
42
|
+
_handleTruncation(): void;
|
|
43
|
+
private _handleLabelSlotChange;
|
|
44
|
+
private _renderBadge;
|
|
34
45
|
render(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
35
46
|
}
|
|
36
47
|
export default SgdsBadge;
|