@govtechsg/sgds-web-component 3.0.0-rc.0 → 3.0.0-rc.2
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 +1 -1
- package/README.md +5 -5
- package/base/button.js +1 -1
- package/base/form-control-element.d.ts +4 -11
- package/base/form-control-element.js +13 -23
- package/base/form-control-element.js.map +1 -1
- package/components/Accordion/accordion-item.js +1 -1
- package/components/Accordion/index.umd.js +7 -19
- package/components/Accordion/index.umd.js.map +1 -1
- package/components/Accordion/sgds-accordion-item.d.ts +3 -7
- package/components/Accordion/sgds-accordion-item.js +6 -18
- package/components/Accordion/sgds-accordion-item.js.map +1 -1
- package/components/ActionCard/index.umd.js +407 -329
- package/components/ActionCard/index.umd.js.map +1 -1
- package/components/Alert/alert.js +1 -1
- package/components/Alert/index.umd.js +553 -485
- package/components/Alert/index.umd.js.map +1 -1
- package/components/Alert/sgds-alert.d.ts +2 -2
- package/components/Alert/sgds-alert.js +6 -13
- package/components/Alert/sgds-alert.js.map +1 -1
- package/components/Badge/badge.js +1 -1
- package/components/Badge/index.umd.js +9 -10
- package/components/Badge/index.umd.js.map +1 -1
- package/components/Badge/sgds-badge.d.ts +4 -5
- package/components/Badge/sgds-badge.js +6 -7
- package/components/Badge/sgds-badge.js.map +1 -1
- package/components/Button/index.umd.js +8 -81
- package/components/Button/index.umd.js.map +1 -1
- package/components/Button/sgds-button.js +1 -1
- package/components/Button/sgds-button.js.map +1 -1
- package/components/Checkbox/checkbox.js +1 -1
- package/components/Checkbox/index.umd.js +541 -475
- package/components/Checkbox/index.umd.js.map +1 -1
- package/components/Checkbox/sgds-checkbox-group.d.ts +7 -1
- package/components/Checkbox/sgds-checkbox-group.js +15 -4
- package/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/components/Checkbox/sgds-checkbox.d.ts +30 -21
- package/components/Checkbox/sgds-checkbox.js +77 -60
- package/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/components/ComboBox/index.umd.js +385 -216
- package/components/ComboBox/index.umd.js.map +1 -1
- package/components/Datepicker/datepicker-input.d.ts +4 -2
- package/components/Datepicker/datepicker-input.js +24 -7
- package/components/Datepicker/datepicker-input.js.map +1 -1
- package/components/Datepicker/index.umd.js +433 -244
- package/components/Datepicker/index.umd.js.map +1 -1
- package/components/Datepicker/sgds-datepicker.d.ts +1 -1
- package/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/components/Drawer/index.umd.js +2 -2
- package/components/Drawer/index.umd.js.map +1 -1
- package/components/Dropdown/index.umd.js +8 -81
- package/components/Dropdown/index.umd.js.map +1 -1
- package/components/FileUpload/file-upload.js +1 -1
- package/components/FileUpload/index.umd.js +579 -272
- package/components/FileUpload/index.umd.js.map +1 -1
- package/components/FileUpload/sgds-file-upload.d.ts +42 -30
- package/components/FileUpload/sgds-file-upload.js +147 -103
- package/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/components/Footer/footer-item.js +6 -0
- package/components/Footer/footer-item.js.map +1 -0
- package/components/Footer/footer.js +1 -1
- package/components/Footer/index.d.ts +2 -0
- package/components/Footer/index.js +2 -0
- package/components/Footer/index.js.map +1 -1
- package/components/Footer/index.umd.js +93 -94
- package/components/Footer/index.umd.js.map +1 -1
- package/components/Footer/sgds-footer-item.d.ts +13 -0
- package/components/Footer/sgds-footer-item.js +27 -0
- package/components/Footer/sgds-footer-item.js.map +1 -0
- package/components/Footer/sgds-footer.d.ts +9 -30
- package/components/Footer/sgds-footer.js +65 -90
- package/components/Footer/sgds-footer.js.map +1 -1
- package/components/Icon/icon.js +6 -0
- package/components/Icon/icon.js.map +1 -0
- package/components/Icon/index.d.ts +6 -0
- package/components/Icon/index.js +4 -0
- package/components/Icon/index.js.map +1 -0
- package/components/Icon/index.umd.js +4389 -0
- package/components/Icon/index.umd.js.map +1 -0
- package/components/Icon/sgds-icon.d.ts +21 -0
- package/components/Icon/sgds-icon.js +64 -0
- package/components/Icon/sgds-icon.js.map +1 -0
- package/components/IconButton/icon-button.js +1 -1
- package/components/IconButton/index.umd.js +6 -9
- package/components/IconButton/index.umd.js.map +1 -1
- package/components/IconButton/sgds-icon-button.d.ts +2 -2
- package/components/IconButton/sgds-icon-button.js +4 -9
- package/components/IconButton/sgds-icon-button.js.map +1 -1
- package/components/Input/index.umd.js +1734 -1376
- package/components/Input/index.umd.js.map +1 -1
- package/components/Input/sgds-input.d.ts +41 -21
- package/components/Input/sgds-input.js +103 -66
- package/components/Input/sgds-input.js.map +1 -1
- package/components/Masthead/index.umd.js +1 -1
- package/components/Masthead/masthead.js +1 -1
- package/components/Modal/index.umd.js +2 -2
- package/components/Modal/index.umd.js.map +1 -1
- package/components/QuantityToggle/index.umd.js +894 -316
- package/components/QuantityToggle/index.umd.js.map +1 -1
- package/components/QuantityToggle/sgds-quantity-toggle.d.ts +42 -15
- package/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
- package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/components/Radio/index.umd.js +516 -203
- package/components/Radio/index.umd.js.map +1 -1
- package/components/Radio/sgds-radio-group.d.ts +38 -27
- package/components/Radio/sgds-radio-group.js +100 -84
- package/components/Radio/sgds-radio-group.js.map +1 -1
- package/components/Radio/sgds-radio.js +1 -1
- package/components/Radio/sgds-radio.js.map +1 -1
- package/components/Stepper/index.umd.js +2 -1
- package/components/Stepper/index.umd.js.map +1 -1
- package/components/Stepper/sgds-stepper.d.ts +1 -0
- package/components/Stepper/sgds-stepper.js +1 -0
- package/components/Stepper/sgds-stepper.js.map +1 -1
- package/components/Stepper/stepper.js +1 -1
- package/components/Switch/index.umd.js +21 -321
- package/components/Switch/index.umd.js.map +1 -1
- package/components/Switch/sgds-switch.js +1 -2
- package/components/Switch/sgds-switch.js.map +1 -1
- package/components/Textarea/index.umd.js +1554 -1336
- package/components/Textarea/index.umd.js.map +1 -1
- package/components/Textarea/sgds-textarea.d.ts +33 -22
- package/components/Textarea/sgds-textarea.js +78 -75
- package/components/Textarea/sgds-textarea.js.map +1 -1
- package/components/Textarea/textarea.js +1 -1
- package/components/Toast/index.umd.js +9 -21
- package/components/Toast/index.umd.js.map +1 -1
- package/components/Toast/sgds-toast.d.ts +2 -1
- package/components/Toast/sgds-toast.js +6 -18
- package/components/Toast/sgds-toast.js.map +1 -1
- package/components/Toast/toast.js +1 -1
- package/components/Tooltip/index.umd.js +14 -14
- package/components/Tooltip/index.umd.js.map +1 -1
- package/components/Tooltip/sgds-tooltip.d.ts +4 -7
- package/components/Tooltip/sgds-tooltip.js +14 -14
- package/components/Tooltip/sgds-tooltip.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -0
- package/components/index.js.map +1 -1
- package/components/index.umd.js +1320 -1126
- package/components/index.umd.js.map +1 -1
- package/css/reboot.css +39 -6
- package/css/sgds.css +0 -2
- package/icons/arrow-bar-down.svg +3 -0
- package/icons/arrow-bar-left.svg +3 -0
- package/icons/arrow-bar-right.svg +3 -0
- package/icons/arrow-bar-up.svg +3 -0
- package/icons/arrow-clockwise.svg +3 -0
- package/icons/arrow-down.svg +3 -0
- package/icons/arrow-left.svg +3 -0
- package/icons/arrow-repeat.svg +3 -0
- package/icons/arrow-right.svg +3 -0
- package/icons/arrow-up.svg +3 -0
- package/icons/bank-fill.svg +3 -0
- package/icons/bell-slash.svg +3 -0
- package/icons/bell.svg +3 -0
- package/icons/bi-funnel.svg +3 -0
- package/icons/bookmark-fill.svg +3 -0
- package/icons/bookmark.svg +3 -0
- package/icons/box-arrow-up-right.svg +3 -0
- package/icons/box-seam.svg +3 -0
- package/icons/building.svg +3 -0
- package/icons/calculator.svg +3 -0
- package/icons/calendar-check.svg +4 -0
- package/icons/calendar-x.svg +4 -0
- package/icons/calendar.svg +3 -0
- package/icons/camera.svg +3 -0
- package/icons/chat-left-text.svg +3 -0
- package/icons/check-circle-fill.svg +3 -0
- package/icons/check-circle.svg +3 -0
- package/icons/check.svg +3 -0
- package/icons/chevron-down.svg +3 -0
- package/icons/chevron-left.svg +3 -0
- package/icons/chevron-right.svg +3 -0
- package/icons/chevron-up .svg +3 -0
- package/icons/clock.svg +4 -0
- package/icons/cloud-check.svg +4 -0
- package/icons/cloud-download.svg +3 -0
- package/icons/cloud-upload.svg +3 -0
- package/icons/cloud.svg +3 -0
- package/icons/compass.svg +4 -0
- package/icons/cross.svg +3 -0
- package/icons/cursor-fill.svg +3 -0
- package/icons/cursor.svg +3 -0
- package/icons/dash-circle.svg +3 -0
- package/icons/dash-square.svg +3 -0
- package/icons/dash.svg +3 -0
- package/icons/download.svg +3 -0
- package/icons/exclamation-circle-fill.svg +3 -0
- package/icons/exclamation-circle.svg +4 -0
- package/icons/exclamation-triangle-fill.svg +3 -0
- package/icons/exclamation-triangle.svg +4 -0
- package/icons/exclamation.svg +4 -0
- package/icons/eye-fill.svg +3 -0
- package/icons/eye-slash-fill.svg +4 -0
- package/icons/eye-slash.svg +3 -0
- package/icons/eye.svg +3 -0
- package/icons/facebook.svg +3 -0
- package/icons/file-earmark-text.svg +3 -0
- package/icons/file-pdf.svg +4 -0
- package/icons/file-plus.svg +4 -0
- package/icons/file-text.svg +3 -0
- package/icons/file.svg +3 -0
- package/icons/files.svg +4 -0
- package/icons/folder-check.svg +4 -0
- package/icons/folder-minus.svg +4 -0
- package/icons/folder-plus.svg +4 -0
- package/icons/folder.svg +3 -0
- package/icons/gear.svg +3 -0
- package/icons/geo-alt.svg +4 -0
- package/icons/geo-fill.svg +4 -0
- package/icons/geo.svg +4 -0
- package/icons/google.svg +3 -0
- package/icons/grid-fill.svg +3 -0
- package/icons/hand-thumbs-down.svg +3 -0
- package/icons/hand-thumbs-up.svg +3 -0
- package/icons/hdd.svg +3 -0
- package/icons/house-door.svg +3 -0
- package/icons/house.svg +3 -0
- package/icons/image.svg +3 -0
- package/icons/inbox.svg +3 -0
- package/icons/info-circle-fill.svg +3 -0
- package/icons/info-circle.svg +4 -0
- package/icons/instagram.svg +3 -0
- package/icons/layers.svg +3 -0
- package/icons/layout-text-window-reverse.svg +3 -0
- package/icons/layout-text-window.svg +3 -0
- package/icons/layout.svg +3 -0
- package/icons/link.svg +3 -0
- package/icons/linkedin.svg +3 -0
- package/icons/list.svg +3 -0
- package/icons/lock-fill.svg +3 -0
- package/icons/lock.svg +3 -0
- package/icons/mail.svg +3 -0
- package/icons/map.svg +3 -0
- package/icons/paperclip.svg +3 -0
- package/icons/pencil.svg +3 -0
- package/icons/pending-circle.svg +3 -0
- package/icons/person-dash.svg +3 -0
- package/icons/person-plus.svg +3 -0
- package/icons/person-x.svg +3 -0
- package/icons/person.svg +3 -0
- package/icons/pin-map-fill.svg +3 -0
- package/icons/pin.svg +3 -0
- package/icons/placeholder.svg +3 -0
- package/icons/plus-circle.svg +3 -0
- package/icons/plus-square.svg +3 -0
- package/icons/plus.svg +3 -0
- package/icons/printer.svg +3 -0
- package/icons/question-circle.svg +4 -0
- package/icons/save.svg +3 -0
- package/icons/search.svg +3 -0
- package/icons/share.svg +3 -0
- package/icons/slash-circle.svg +3 -0
- package/icons/sliders.svg +3 -0
- package/icons/speedometer.svg +3 -0
- package/icons/star-fill.svg +3 -0
- package/icons/star.svg +3 -0
- package/icons/stoplights.svg +4 -0
- package/icons/telephone.svg +3 -0
- package/icons/three-dots-vertical.svg +3 -0
- package/icons/three-dots.svg +3 -0
- package/icons/toggle-off.svg +3 -0
- package/icons/toggle-on.svg +3 -0
- package/icons/trash.svg +3 -0
- package/icons/twitter-x.svg +3 -0
- package/icons/unlock.svg +3 -0
- package/icons/upload.svg +3 -0
- package/icons/window-dash.svg +4 -0
- package/icons/window-desktop.svg +4 -0
- package/icons/window-dock.svg +4 -0
- package/icons/window-fullscreen.svg +3 -0
- package/icons/window-plus.svg +4 -0
- package/icons/window-sidebar.svg +3 -0
- package/icons/window-split.svg +3 -0
- package/icons/window-stack.svg +3 -0
- package/icons/window-x.svg +4 -0
- package/icons/window.svg +3 -0
- package/icons/x-circle-fill.svg +3 -0
- package/icons/x-circle.svg +3 -0
- package/icons/youtube.svg +3 -0
- package/icons/zoom-in.svg +3 -0
- package/icons/zoom-out.svg +3 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.umd.js +1340 -1121
- package/index.umd.js.map +1 -1
- package/internals/CloseButton/close-button.js +1 -1
- package/internals/CloseButton/sgds-close-button.js +1 -1
- package/internals/CloseButton/sgds-close-button.js.map +1 -1
- package/package.json +1 -1
- package/react/base/button.cjs.js +1 -1
- package/react/base/button.js +1 -1
- package/react/base/form-control-element.cjs.js +13 -23
- package/react/base/form-control-element.cjs.js.map +1 -1
- package/react/base/form-control-element.js +13 -23
- package/react/base/form-control-element.js.map +1 -1
- package/react/checkbox/index.cjs.js +2 -0
- package/react/checkbox/index.cjs.js.map +1 -1
- package/react/checkbox/index.d.ts +2 -0
- package/react/checkbox/index.js +2 -0
- package/react/checkbox/index.js.map +1 -1
- package/react/components/Accordion/accordion-item.cjs.js +1 -1
- package/react/components/Accordion/accordion-item.js +1 -1
- package/react/components/Accordion/sgds-accordion-item.cjs.js +6 -18
- package/react/components/Accordion/sgds-accordion-item.cjs.js.map +1 -1
- package/react/components/Accordion/sgds-accordion-item.js +6 -18
- package/react/components/Accordion/sgds-accordion-item.js.map +1 -1
- package/react/components/Alert/alert.cjs.js +1 -1
- package/react/components/Alert/alert.js +1 -1
- package/react/components/Alert/sgds-alert.cjs.js +5 -12
- package/react/components/Alert/sgds-alert.cjs.js.map +1 -1
- package/react/components/Alert/sgds-alert.js +6 -13
- package/react/components/Alert/sgds-alert.js.map +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 +6 -7
- package/react/components/Badge/sgds-badge.cjs.js.map +1 -1
- package/react/components/Badge/sgds-badge.js +6 -7
- package/react/components/Badge/sgds-badge.js.map +1 -1
- package/react/components/Button/sgds-button.cjs.js +2 -2
- package/react/components/Button/sgds-button.cjs.js.map +1 -1
- package/react/components/Button/sgds-button.js +1 -1
- package/react/components/Button/sgds-button.js.map +1 -1
- package/react/components/Checkbox/checkbox.cjs.js +1 -1
- package/react/components/Checkbox/checkbox.js +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js +15 -4
- package/react/components/Checkbox/sgds-checkbox-group.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox-group.js +15 -4
- package/react/components/Checkbox/sgds-checkbox-group.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.cjs.js +77 -60
- package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
- package/react/components/Checkbox/sgds-checkbox.js +77 -60
- package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
- package/react/components/Datepicker/datepicker-input.cjs.js +24 -7
- package/react/components/Datepicker/datepicker-input.cjs.js.map +1 -1
- package/react/components/Datepicker/datepicker-input.js +24 -7
- package/react/components/Datepicker/datepicker-input.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.cjs.js.map +1 -1
- package/react/components/Datepicker/sgds-datepicker.js.map +1 -1
- package/react/components/FileUpload/file-upload.cjs.js +1 -1
- package/react/components/FileUpload/file-upload.js +1 -1
- package/react/components/FileUpload/sgds-file-upload.cjs.js +145 -101
- package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
- package/react/components/FileUpload/sgds-file-upload.js +147 -103
- package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
- package/react/components/Footer/footer-item.cjs.js +11 -0
- package/react/components/Footer/footer-item.cjs.js.map +1 -0
- package/react/components/Footer/footer-item.js +7 -0
- package/react/components/Footer/footer-item.js.map +1 -0
- package/react/components/Footer/footer.cjs.js +1 -1
- package/react/components/Footer/footer.js +1 -1
- package/react/components/Footer/sgds-footer-item.cjs.js +33 -0
- package/react/components/Footer/sgds-footer-item.cjs.js.map +1 -0
- package/react/components/Footer/sgds-footer-item.js +28 -0
- package/react/components/Footer/sgds-footer-item.js.map +1 -0
- package/react/components/Footer/sgds-footer.cjs.js +65 -90
- package/react/components/Footer/sgds-footer.cjs.js.map +1 -1
- package/react/components/Footer/sgds-footer.js +65 -90
- package/react/components/Footer/sgds-footer.js.map +1 -1
- package/react/components/Icon/icon.cjs.js +11 -0
- package/react/components/Icon/icon.cjs.js.map +1 -0
- package/react/components/Icon/icon.js +7 -0
- package/react/components/Icon/icon.js.map +1 -0
- package/react/components/Icon/sgds-icon.cjs.js +70 -0
- package/react/components/Icon/sgds-icon.cjs.js.map +1 -0
- package/react/components/Icon/sgds-icon.js +65 -0
- package/react/components/Icon/sgds-icon.js.map +1 -0
- package/react/components/IconButton/icon-button.cjs.js +1 -1
- package/react/components/IconButton/icon-button.js +1 -1
- package/react/components/IconButton/sgds-icon-button.cjs.js +4 -9
- package/react/components/IconButton/sgds-icon-button.cjs.js.map +1 -1
- package/react/components/IconButton/sgds-icon-button.js +4 -9
- package/react/components/IconButton/sgds-icon-button.js.map +1 -1
- package/react/components/Input/sgds-input.cjs.js +101 -64
- package/react/components/Input/sgds-input.cjs.js.map +1 -1
- package/react/components/Input/sgds-input.js +103 -66
- package/react/components/Input/sgds-input.js.map +1 -1
- package/react/components/Masthead/masthead.cjs.js +1 -1
- package/react/components/Masthead/masthead.js +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +128 -61
- package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
- package/react/components/QuantityToggle/sgds-quantity-toggle.js +129 -62
- package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.cjs.js +99 -83
- package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
- package/react/components/Radio/sgds-radio-group.js +100 -84
- package/react/components/Radio/sgds-radio-group.js.map +1 -1
- package/react/components/Radio/sgds-radio.cjs.js +1 -1
- package/react/components/Radio/sgds-radio.cjs.js.map +1 -1
- package/react/components/Radio/sgds-radio.js +1 -1
- package/react/components/Radio/sgds-radio.js.map +1 -1
- package/react/components/Stepper/sgds-stepper.cjs.js +1 -0
- package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
- package/react/components/Stepper/sgds-stepper.js +1 -0
- package/react/components/Stepper/sgds-stepper.js.map +1 -1
- package/react/components/Stepper/stepper.cjs.js +1 -1
- package/react/components/Stepper/stepper.js +1 -1
- package/react/components/Switch/sgds-switch.cjs.js +1 -2
- package/react/components/Switch/sgds-switch.cjs.js.map +1 -1
- package/react/components/Switch/sgds-switch.js +1 -2
- package/react/components/Switch/sgds-switch.js.map +1 -1
- package/react/components/Textarea/sgds-textarea.cjs.js +76 -73
- package/react/components/Textarea/sgds-textarea.cjs.js.map +1 -1
- package/react/components/Textarea/sgds-textarea.js +78 -75
- package/react/components/Textarea/sgds-textarea.js.map +1 -1
- package/react/components/Textarea/textarea.cjs.js +1 -1
- package/react/components/Textarea/textarea.js +1 -1
- package/react/components/Toast/sgds-toast.cjs.js +6 -18
- package/react/components/Toast/sgds-toast.cjs.js.map +1 -1
- package/react/components/Toast/sgds-toast.js +6 -18
- package/react/components/Toast/sgds-toast.js.map +1 -1
- package/react/components/Toast/toast.cjs.js +1 -1
- package/react/components/Toast/toast.js +1 -1
- package/react/components/Tooltip/sgds-tooltip.cjs.js +14 -14
- package/react/components/Tooltip/sgds-tooltip.cjs.js.map +1 -1
- package/react/components/Tooltip/sgds-tooltip.js +14 -14
- package/react/components/Tooltip/sgds-tooltip.js.map +1 -1
- package/react/footer-item/index.cjs.js +39 -0
- package/react/footer-item/index.cjs.js.map +1 -0
- package/react/footer-item/index.d.ts +3 -0
- package/react/footer-item/index.js +15 -0
- package/react/footer-item/index.js.map +1 -0
- package/react/icon/index.cjs.js +42 -0
- package/react/icon/index.cjs.js.map +1 -0
- package/react/icon/index.d.ts +6 -0
- package/react/icon/index.js +18 -0
- package/react/icon/index.js.map +1 -0
- package/react/index.cjs.js +64 -60
- package/react/index.cjs.js.map +1 -1
- package/react/index.d.ts +2 -0
- package/react/index.js +2 -0
- package/react/index.js.map +1 -1
- package/react/input/index.cjs.js +3 -1
- package/react/input/index.cjs.js.map +1 -1
- package/react/input/index.d.ts +2 -0
- package/react/input/index.js +3 -1
- package/react/input/index.js.map +1 -1
- package/react/internals/CloseButton/close-button.cjs.js +1 -1
- package/react/internals/CloseButton/close-button.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.cjs.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.cjs.js.map +1 -1
- package/react/internals/CloseButton/sgds-close-button.js +1 -1
- package/react/internals/CloseButton/sgds-close-button.js.map +1 -1
- package/react/styles/form-hint.cjs.js +1 -1
- package/react/styles/form-hint.js +1 -1
- package/react/styles/form-label.cjs.js +1 -1
- package/react/styles/form-label.js +1 -1
- package/react/utils/formSubmitController.cjs.js +64 -0
- package/react/utils/formSubmitController.cjs.js.map +1 -0
- package/react/utils/formSubmitController.js +60 -0
- package/react/utils/formSubmitController.js.map +1 -0
- package/react/utils/inputValidationController.cjs.js +130 -0
- package/react/utils/inputValidationController.cjs.js.map +1 -0
- package/react/utils/inputValidationController.js +126 -0
- package/react/utils/inputValidationController.js.map +1 -0
- package/react/utils/validatorMixin.cjs.js +108 -0
- package/react/utils/validatorMixin.cjs.js.map +1 -0
- package/react/utils/validatorMixin.js +104 -0
- package/react/utils/validatorMixin.js.map +1 -0
- package/styles/form-hint.js +1 -1
- package/styles/form-label.js +1 -1
- package/themes/day.css +1 -1
- package/themes/night.css +3 -2
- package/themes/root.css +2 -0
- package/utils/{form.d.ts → formSubmitController.d.ts} +10 -20
- package/utils/formSubmitController.js +59 -0
- package/utils/formSubmitController.js.map +1 -0
- package/utils/inputValidationController.d.ts +70 -0
- package/utils/inputValidationController.js +125 -0
- package/utils/inputValidationController.js.map +1 -0
- package/utils/validatorMixin.d.ts +24 -0
- package/utils/validatorMixin.js +103 -0
- package/utils/validatorMixin.js.map +1 -0
- package/base/form-check-element.d.ts +0 -50
- package/base/form-check-element.js +0 -169
- package/base/form-check-element.js.map +0 -1
- package/css/body.css +0 -28
- package/css/caption.css +0 -7
- package/css/label.css +0 -28
- package/react/base/form-check-element.cjs.js +0 -175
- package/react/base/form-check-element.cjs.js.map +0 -1
- package/react/base/form-check-element.js +0 -170
- package/react/base/form-check-element.js.map +0 -1
- package/react/utils/form.cjs.js +0 -137
- package/react/utils/form.cjs.js.map +0 -1
- package/react/utils/form.js +0 -133
- package/react/utils/form.js.map +0 -1
- package/utils/form.js +0 -132
- package/utils/form.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgds-icon.cjs.js","sources":["../../../../src/components/Icon/sgds-icon.ts"],"sourcesContent":["import SgdsElement from \"../../base/sgds-element\";\nimport { html } from \"lit/static-html.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeSVG } from \"lit/directives/unsafe-svg.js\";\nimport iconStyles from \"./icon.css\";\n\n/**\n * @summary Icons offer a form of visual shorthand that we are all familiar with. They can label, inform and aid navigation quickly and effectively in minimal space. Icons must first and foremost communicate meaning. By default, the icon component renders icons form SgdsIcon library set\n *\n * @event sgds-blur - Emitted when the button is blurred.\n * @event sgds-focus - Emitted when the button is focused.\n */\nexport class SgdsIcon extends SgdsElement {\n static styles = [...SgdsElement.styles, iconStyles];\n\n /** The name of the icon from sgds icon library */\n @property({ type: String, reflect: true }) name: string;\n\n /** Specifies a small, medium or large icon, the size is medium by default. */\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2-xl\" | \"3-xl\" = \"lg\";\n\n /** @internal */\n @state()\n private _svgContent: string | null = null;\n\n async firstUpdated() {\n if (this.name) {\n this.loadSvg(this.name);\n }\n }\n\n updated() {\n this.style.display = this._svgContent ? \"flex\" : \"none\";\n }\n\n async loadSvg(name: string) {\n if (name) {\n // Dynamically import the SVG if not cached\n try {\n //TODO: This path is too specific to our repo, it won't work for users\n const response = await fetch(`/src/icons/${name}.svg`);\n\n if (response.ok) {\n const svgContent = await response.text();\n // Render the SVG\n // this.renderSvg(svgContent);\n this._svgContent = svgContent;\n }\n } catch (error) {\n console.error(`Error loading SVG: ${name}`, error);\n }\n }\n }\n\n render() {\n return html`${unsafeSVG(this._svgContent)}`;\n }\n}\n\nexport default SgdsIcon;\n"],"names":["SgdsElement","html","unsafeSVG","iconStyles","__decorate","property","state"],"mappings":";;;;;;;;;;;;AAMA;;;;;AAKG;AACG,MAAO,QAAS,SAAQA,sBAAW,CAAA;AAAzC,IAAA,WAAA,GAAA;;;QAO6C,IAAI,CAAA,IAAA,GAAgD,IAAI,CAAC;;QAI5F,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;KAkC3C;AAhCC,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;KACzD;IAED,MAAM,OAAO,CAAC,IAAY,EAAA;QACxB,IAAI,IAAI,EAAE;;AAER,YAAA,IAAI;;gBAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAc,WAAA,EAAA,IAAI,CAAM,IAAA,CAAA,CAAC,CAAC;AAEvD,gBAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AACf,oBAAA,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;;;AAGzC,oBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;iBAC/B;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;aACpD;SACF;KACF;IAED,MAAM,GAAA;QACJ,OAAOC,kBAAI,CAAA,CAAA,EAAGC,sBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA,CAAE,CAAC;KAC7C;;AA3CM,QAAM,CAAA,MAAA,GAAG,CAAC,GAAGF,sBAAW,CAAC,MAAM,EAAEG,eAAU,CAArC,CAAuC;AAGTC,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGbD,gBAAA,CAAA;IAA1CC,sBAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA0D,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAI5FD,gBAAA,CAAA;AADP,IAAAE,mBAAK,EAAE;AACkC,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __decorate } from 'tslib';
|
|
3
|
+
import SgdsElement from '../../base/sgds-element.js';
|
|
4
|
+
import { html } from 'lit/static-html.js';
|
|
5
|
+
import { property, state } from 'lit/decorators.js';
|
|
6
|
+
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
7
|
+
import css_248z from './icon.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @summary Icons offer a form of visual shorthand that we are all familiar with. They can label, inform and aid navigation quickly and effectively in minimal space. Icons must first and foremost communicate meaning. By default, the icon component renders icons form SgdsIcon library set
|
|
11
|
+
*
|
|
12
|
+
* @event sgds-blur - Emitted when the button is blurred.
|
|
13
|
+
* @event sgds-focus - Emitted when the button is focused.
|
|
14
|
+
*/
|
|
15
|
+
class SgdsIcon extends SgdsElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
/** Specifies a small, medium or large icon, the size is medium by default. */
|
|
19
|
+
this.size = "lg";
|
|
20
|
+
/** @internal */
|
|
21
|
+
this._svgContent = null;
|
|
22
|
+
}
|
|
23
|
+
async firstUpdated() {
|
|
24
|
+
if (this.name) {
|
|
25
|
+
this.loadSvg(this.name);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
updated() {
|
|
29
|
+
this.style.display = this._svgContent ? "flex" : "none";
|
|
30
|
+
}
|
|
31
|
+
async loadSvg(name) {
|
|
32
|
+
if (name) {
|
|
33
|
+
// Dynamically import the SVG if not cached
|
|
34
|
+
try {
|
|
35
|
+
//TODO: This path is too specific to our repo, it won't work for users
|
|
36
|
+
const response = await fetch(`/src/icons/${name}.svg`);
|
|
37
|
+
if (response.ok) {
|
|
38
|
+
const svgContent = await response.text();
|
|
39
|
+
// Render the SVG
|
|
40
|
+
// this.renderSvg(svgContent);
|
|
41
|
+
this._svgContent = svgContent;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(`Error loading SVG: ${name}`, error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
render() {
|
|
50
|
+
return html `${unsafeSVG(this._svgContent)}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
SgdsIcon.styles = [...SgdsElement.styles, css_248z];
|
|
54
|
+
__decorate([
|
|
55
|
+
property({ type: String, reflect: true })
|
|
56
|
+
], SgdsIcon.prototype, "name", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
property({ type: String, reflect: true })
|
|
59
|
+
], SgdsIcon.prototype, "size", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
state()
|
|
62
|
+
], SgdsIcon.prototype, "_svgContent", void 0);
|
|
63
|
+
|
|
64
|
+
export { SgdsIcon, SgdsIcon as default };
|
|
65
|
+
//# sourceMappingURL=sgds-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgds-icon.js","sources":["../../../../src/components/Icon/sgds-icon.ts"],"sourcesContent":["import SgdsElement from \"../../base/sgds-element\";\nimport { html } from \"lit/static-html.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeSVG } from \"lit/directives/unsafe-svg.js\";\nimport iconStyles from \"./icon.css\";\n\n/**\n * @summary Icons offer a form of visual shorthand that we are all familiar with. They can label, inform and aid navigation quickly and effectively in minimal space. Icons must first and foremost communicate meaning. By default, the icon component renders icons form SgdsIcon library set\n *\n * @event sgds-blur - Emitted when the button is blurred.\n * @event sgds-focus - Emitted when the button is focused.\n */\nexport class SgdsIcon extends SgdsElement {\n static styles = [...SgdsElement.styles, iconStyles];\n\n /** The name of the icon from sgds icon library */\n @property({ type: String, reflect: true }) name: string;\n\n /** Specifies a small, medium or large icon, the size is medium by default. */\n @property({ type: String, reflect: true }) size: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2-xl\" | \"3-xl\" = \"lg\";\n\n /** @internal */\n @state()\n private _svgContent: string | null = null;\n\n async firstUpdated() {\n if (this.name) {\n this.loadSvg(this.name);\n }\n }\n\n updated() {\n this.style.display = this._svgContent ? \"flex\" : \"none\";\n }\n\n async loadSvg(name: string) {\n if (name) {\n // Dynamically import the SVG if not cached\n try {\n //TODO: This path is too specific to our repo, it won't work for users\n const response = await fetch(`/src/icons/${name}.svg`);\n\n if (response.ok) {\n const svgContent = await response.text();\n // Render the SVG\n // this.renderSvg(svgContent);\n this._svgContent = svgContent;\n }\n } catch (error) {\n console.error(`Error loading SVG: ${name}`, error);\n }\n }\n }\n\n render() {\n return html`${unsafeSVG(this._svgContent)}`;\n }\n}\n\nexport default SgdsIcon;\n"],"names":["iconStyles"],"mappings":";;;;;;;;AAMA;;;;;AAKG;AACG,MAAO,QAAS,SAAQ,WAAW,CAAA;AAAzC,IAAA,WAAA,GAAA;;;QAO6C,IAAI,CAAA,IAAA,GAAgD,IAAI,CAAC;;QAI5F,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;KAkC3C;AAhCC,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;KACzD;IAED,MAAM,OAAO,CAAC,IAAY,EAAA;QACxB,IAAI,IAAI,EAAE;;AAER,YAAA,IAAI;;gBAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAc,WAAA,EAAA,IAAI,CAAM,IAAA,CAAA,CAAC,CAAC;AAEvD,gBAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AACf,oBAAA,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;;;AAGzC,oBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;iBAC/B;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;aACpD;SACF;KACF;IAED,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,EAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA,CAAE,CAAC;KAC7C;;AA3CM,QAAM,CAAA,MAAA,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAEA,QAAU,CAArC,CAAuC;AAGT,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAc,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAGb,UAAA,CAAA;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAA0D,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAI5F,UAAA,CAAA;AADP,IAAA,KAAK,EAAE;AACkC,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,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`.btn.btn-icon{display:flex;height:var(--sgds-dimension-48,56px);min-width:unset;padding:0;width:var(--sgds-dimension-48,56px)}.btn.btn-icon.btn-lg{font-size:var(--sgds-font-size-3);height:var(--sgds-dimension-56);min-width:unset;padding:0;width:var(--sgds-dimension-56)}.btn.btn-icon.btn-sm{font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-40);min-width:unset;padding:0;width:var(--sgds-dimension-40)}
|
|
8
|
+
var css_248z = lit.css`.btn.btn-icon{display:flex;height:var(--sgds-dimension-48,56px);min-width:unset;padding:0;width:var(--sgds-dimension-48,56px)}.btn.btn-icon.btn-lg{font-size:var(--sgds-font-size-3);height:var(--sgds-dimension-56);min-width:unset;padding:0;width:var(--sgds-dimension-56)}.btn.btn-icon.btn-sm{font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-40);min-width:unset;padding:0;width:var(--sgds-dimension-40)}`;
|
|
9
9
|
|
|
10
10
|
exports["default"] = css_248z;
|
|
11
11
|
//# sourceMappingURL=icon-button.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { css } from 'lit';
|
|
3
3
|
|
|
4
|
-
var css_248z = css`.btn.btn-icon{display:flex;height:var(--sgds-dimension-48,56px);min-width:unset;padding:0;width:var(--sgds-dimension-48,56px)}.btn.btn-icon.btn-lg{font-size:var(--sgds-font-size-3);height:var(--sgds-dimension-56);min-width:unset;padding:0;width:var(--sgds-dimension-56)}.btn.btn-icon.btn-sm{font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-40);min-width:unset;padding:0;width:var(--sgds-dimension-40)}
|
|
4
|
+
var css_248z = css`.btn.btn-icon{display:flex;height:var(--sgds-dimension-48,56px);min-width:unset;padding:0;width:var(--sgds-dimension-48,56px)}.btn.btn-icon.btn-lg{font-size:var(--sgds-font-size-3);height:var(--sgds-dimension-56);min-width:unset;padding:0;width:var(--sgds-dimension-56)}.btn.btn-icon.btn-sm{font-size:var(--sgds-font-size-1);height:var(--sgds-dimension-40);min-width:unset;padding:0;width:var(--sgds-dimension-40)}`;
|
|
5
5
|
|
|
6
6
|
export { css_248z as default };
|
|
7
7
|
//# sourceMappingURL=icon-button.js.map
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var tslib = require('tslib');
|
|
7
6
|
var buttonElement = require('../../base/button-element.cjs.js');
|
|
8
7
|
var staticHtml_js = require('lit/static-html.js');
|
|
9
8
|
var classMap_js = require('lit/directives/class-map.js');
|
|
10
9
|
var ifDefined_js = require('lit/directives/if-defined.js');
|
|
11
10
|
var iconButton = require('./icon-button.cjs.js');
|
|
12
|
-
var decorators_js = require('lit/decorators.js');
|
|
13
11
|
|
|
14
12
|
/**
|
|
15
13
|
* @summary An icon button is a user interface element that combines an icon and a button, serving as a clickable or tabbable component.
|
|
16
14
|
*
|
|
15
|
+
* @slot default - The slot for sgds-icon
|
|
16
|
+
*
|
|
17
17
|
* @event sgds-blur - Emitted when the button is blurred.
|
|
18
18
|
* @event sgds-focus - Emitted when the button is focused.
|
|
19
19
|
*/
|
|
@@ -30,7 +30,7 @@ class SgdsIconButton extends buttonElement["default"] {
|
|
|
30
30
|
[`btn-${this.size}`]: this.size
|
|
31
31
|
})}"
|
|
32
32
|
?disabled=${ifDefined_js.ifDefined(isLink ? undefined : this.disabled)}
|
|
33
|
-
type
|
|
33
|
+
type=${ifDefined_js.ifDefined(isLink ? undefined : "button")}
|
|
34
34
|
href=${ifDefined_js.ifDefined(isLink ? this.href : undefined)}
|
|
35
35
|
target=${ifDefined_js.ifDefined(isLink ? this.target : undefined)}
|
|
36
36
|
download=${ifDefined_js.ifDefined(isLink ? this.download : undefined)}
|
|
@@ -43,17 +43,12 @@ class SgdsIconButton extends buttonElement["default"] {
|
|
|
43
43
|
@blur=${this._handleBlur}
|
|
44
44
|
aria-label=${ifDefined_js.ifDefined(this.ariaLabel)}
|
|
45
45
|
>
|
|
46
|
-
|
|
47
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 12C3 11.8295 3.06773 11.666 3.18828 11.5455C3.30883 11.4249 3.47233 11.3572 3.64282 11.3572H18.8043L14.7584 7.31258C14.6377 7.19187 14.5699 7.02817 14.5699 6.85746C14.5699 6.68676 14.6377 6.52305 14.7584 6.40235C14.8791 6.28165 15.0428 6.21384 15.2135 6.21384C15.3842 6.21384 15.5479 6.28165 15.6686 6.40235L20.8111 11.5449C20.871 11.6046 20.9185 11.6755 20.9509 11.7536C20.9833 11.8317 21 11.9154 21 12C21 12.0845 20.9833 12.1683 20.9509 12.2464C20.9185 12.3245 20.871 12.3954 20.8111 12.4551L15.6686 17.5976C15.5479 17.7183 15.3842 17.7861 15.2135 17.7861C15.0428 17.7861 14.8791 17.7183 14.7584 17.5976C14.6377 17.4769 14.5699 17.3132 14.5699 17.1425C14.5699 16.9718 14.6377 16.8081 14.7584 16.6874L18.8043 12.6428H3.64282C3.47233 12.6428 3.30883 12.5751 3.18828 12.4545C3.06773 12.334 3 12.1705 3 12Z" fill="currentColor"/>
|
|
48
|
-
</svg>
|
|
46
|
+
<slot></slot>
|
|
49
47
|
</${tag}>
|
|
50
48
|
`;
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
51
|
SgdsIconButton.styles = [...buttonElement["default"].styles, iconButton["default"]];
|
|
54
|
-
tslib.__decorate([
|
|
55
|
-
decorators_js.property({ type: String, reflect: true })
|
|
56
|
-
], SgdsIconButton.prototype, "name", void 0);
|
|
57
52
|
|
|
58
53
|
exports.SgdsIconButton = SgdsIconButton;
|
|
59
54
|
exports["default"] = SgdsIconButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-icon-button.cjs.js","sources":["../../../../src/components/IconButton/sgds-icon-button.ts"],"sourcesContent":["import ButtonElement from \"../../base/button-element\";\nimport { literal, html } from \"lit/static-html.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport iconButtonStyles from \"./icon-button.css\";\
|
|
1
|
+
{"version":3,"file":"sgds-icon-button.cjs.js","sources":["../../../../src/components/IconButton/sgds-icon-button.ts"],"sourcesContent":["import ButtonElement from \"../../base/button-element\";\nimport { literal, html } from \"lit/static-html.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport iconButtonStyles from \"./icon-button.css\";\n\n/**\n * @summary An icon button is a user interface element that combines an icon and a button, serving as a clickable or tabbable component.\n *\n * @slot default - The slot for sgds-icon\n *\n * @event sgds-blur - Emitted when the button is blurred.\n * @event sgds-focus - Emitted when the button is focused.\n */\nexport class SgdsIconButton extends ButtonElement {\n static styles = [...ButtonElement.styles, iconButtonStyles];\n\n render() {\n const isLink = this.href;\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n class=\"btn btn-icon${classMap({\n disabled: this.disabled,\n active: this.active,\n [`btn-${this.variant}`]: this.variant,\n [`btn-${this.size}`]: this.size\n })}\"\n ?disabled=${ifDefined(isLink ? undefined : this.disabled)}\n type=${ifDefined(isLink ? undefined : \"button\")}\n href=${ifDefined(isLink ? this.href : undefined)}\n target=${ifDefined(isLink ? this.target : undefined)}\n download=${ifDefined(isLink ? this.download : undefined)}\n rel=${ifDefined(isLink && this.target === \"_blank\" ? \"noreferrer noopener\" : undefined)}\n role=${ifDefined(isLink ? \"button\" : undefined)}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @click=${this._handleClick}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-label=${ifDefined(this.ariaLabel)}\n >\n <slot></slot>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsIconButton;\n"],"names":["ButtonElement","literal","html","classMap","ifDefined","iconButtonStyles"],"mappings":";;;;;;;;;;;AAMA;;;;;;;AAOG;AACG,MAAO,cAAe,SAAQA,wBAAa,CAAA;IAG/C,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,QAAA,MAAM,GAAG,GAAG,MAAM,GAAGC,qBAAO,CAAA,CAAA,CAAA,CAAG,GAAGA,qBAAO,CAAA,QAAQ,CAAC;AAClD,QAAA,OAAOC,kBAAI,CAAA,CAAA;aACF,GAAG,CAAA;AACiB,+BAAA,EAAAC,oBAAQ,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO;YACrC,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI;SAChC,CAAC,CAAA;AACU,sBAAA,EAAAC,sBAAS,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;mBAClDA,sBAAS,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAA;AACxC,iBAAA,EAAAA,sBAAS,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;AACvC,mBAAA,EAAAA,sBAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AACzC,qBAAA,EAAAA,sBAAS,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;AAClD,gBAAA,EAAAA,sBAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,SAAS,CAAC,CAAA;mBAChFA,sBAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;4BAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;uBACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAA;AAC5B,mBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACjB,mBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AAClB,kBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACX,uBAAA,EAAAA,sBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;;cAGpC,GAAG,CAAA;SACR,CAAC;KACP;;AA9BM,cAAM,CAAA,MAAA,GAAG,CAAC,GAAGJ,wBAAa,CAAC,MAAM,EAAEK,qBAAgB,CAAC;;;;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { __decorate } from 'tslib';
|
|
3
2
|
import ButtonElement from '../../base/button-element.js';
|
|
4
3
|
import { literal, html } from 'lit/static-html.js';
|
|
5
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
6
5
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
7
6
|
import css_248z from './icon-button.js';
|
|
8
|
-
import { property } from 'lit/decorators.js';
|
|
9
7
|
|
|
10
8
|
/**
|
|
11
9
|
* @summary An icon button is a user interface element that combines an icon and a button, serving as a clickable or tabbable component.
|
|
12
10
|
*
|
|
11
|
+
* @slot default - The slot for sgds-icon
|
|
12
|
+
*
|
|
13
13
|
* @event sgds-blur - Emitted when the button is blurred.
|
|
14
14
|
* @event sgds-focus - Emitted when the button is focused.
|
|
15
15
|
*/
|
|
@@ -26,7 +26,7 @@ class SgdsIconButton extends ButtonElement {
|
|
|
26
26
|
[`btn-${this.size}`]: this.size
|
|
27
27
|
})}"
|
|
28
28
|
?disabled=${ifDefined(isLink ? undefined : this.disabled)}
|
|
29
|
-
type
|
|
29
|
+
type=${ifDefined(isLink ? undefined : "button")}
|
|
30
30
|
href=${ifDefined(isLink ? this.href : undefined)}
|
|
31
31
|
target=${ifDefined(isLink ? this.target : undefined)}
|
|
32
32
|
download=${ifDefined(isLink ? this.download : undefined)}
|
|
@@ -39,17 +39,12 @@ class SgdsIconButton extends ButtonElement {
|
|
|
39
39
|
@blur=${this._handleBlur}
|
|
40
40
|
aria-label=${ifDefined(this.ariaLabel)}
|
|
41
41
|
>
|
|
42
|
-
|
|
43
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M3 12C3 11.8295 3.06773 11.666 3.18828 11.5455C3.30883 11.4249 3.47233 11.3572 3.64282 11.3572H18.8043L14.7584 7.31258C14.6377 7.19187 14.5699 7.02817 14.5699 6.85746C14.5699 6.68676 14.6377 6.52305 14.7584 6.40235C14.8791 6.28165 15.0428 6.21384 15.2135 6.21384C15.3842 6.21384 15.5479 6.28165 15.6686 6.40235L20.8111 11.5449C20.871 11.6046 20.9185 11.6755 20.9509 11.7536C20.9833 11.8317 21 11.9154 21 12C21 12.0845 20.9833 12.1683 20.9509 12.2464C20.9185 12.3245 20.871 12.3954 20.8111 12.4551L15.6686 17.5976C15.5479 17.7183 15.3842 17.7861 15.2135 17.7861C15.0428 17.7861 14.8791 17.7183 14.7584 17.5976C14.6377 17.4769 14.5699 17.3132 14.5699 17.1425C14.5699 16.9718 14.6377 16.8081 14.7584 16.6874L18.8043 12.6428H3.64282C3.47233 12.6428 3.30883 12.5751 3.18828 12.4545C3.06773 12.334 3 12.1705 3 12Z" fill="currentColor"/>
|
|
44
|
-
</svg>
|
|
42
|
+
<slot></slot>
|
|
45
43
|
</${tag}>
|
|
46
44
|
`;
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
SgdsIconButton.styles = [...ButtonElement.styles, css_248z];
|
|
50
|
-
__decorate([
|
|
51
|
-
property({ type: String, reflect: true })
|
|
52
|
-
], SgdsIconButton.prototype, "name", void 0);
|
|
53
48
|
|
|
54
49
|
export { SgdsIconButton, SgdsIconButton as default };
|
|
55
50
|
//# sourceMappingURL=sgds-icon-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgds-icon-button.js","sources":["../../../../src/components/IconButton/sgds-icon-button.ts"],"sourcesContent":["import ButtonElement from \"../../base/button-element\";\nimport { literal, html } from \"lit/static-html.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport iconButtonStyles from \"./icon-button.css\";\
|
|
1
|
+
{"version":3,"file":"sgds-icon-button.js","sources":["../../../../src/components/IconButton/sgds-icon-button.ts"],"sourcesContent":["import ButtonElement from \"../../base/button-element\";\nimport { literal, html } from \"lit/static-html.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport iconButtonStyles from \"./icon-button.css\";\n\n/**\n * @summary An icon button is a user interface element that combines an icon and a button, serving as a clickable or tabbable component.\n *\n * @slot default - The slot for sgds-icon\n *\n * @event sgds-blur - Emitted when the button is blurred.\n * @event sgds-focus - Emitted when the button is focused.\n */\nexport class SgdsIconButton extends ButtonElement {\n static styles = [...ButtonElement.styles, iconButtonStyles];\n\n render() {\n const isLink = this.href;\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n class=\"btn btn-icon${classMap({\n disabled: this.disabled,\n active: this.active,\n [`btn-${this.variant}`]: this.variant,\n [`btn-${this.size}`]: this.size\n })}\"\n ?disabled=${ifDefined(isLink ? undefined : this.disabled)}\n type=${ifDefined(isLink ? undefined : \"button\")}\n href=${ifDefined(isLink ? this.href : undefined)}\n target=${ifDefined(isLink ? this.target : undefined)}\n download=${ifDefined(isLink ? this.download : undefined)}\n rel=${ifDefined(isLink && this.target === \"_blank\" ? \"noreferrer noopener\" : undefined)}\n role=${ifDefined(isLink ? \"button\" : undefined)}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @click=${this._handleClick}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n aria-label=${ifDefined(this.ariaLabel)}\n >\n <slot></slot>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsIconButton;\n"],"names":["iconButtonStyles"],"mappings":";;;;;;;AAMA;;;;;;;AAOG;AACG,MAAO,cAAe,SAAQ,aAAa,CAAA;IAG/C,MAAM,GAAA;AACJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,QAAA,MAAM,GAAG,GAAG,MAAM,GAAG,OAAO,CAAA,CAAA,CAAA,CAAG,GAAG,OAAO,CAAA,QAAQ,CAAC;AAClD,QAAA,OAAO,IAAI,CAAA,CAAA;aACF,GAAG,CAAA;AACiB,+BAAA,EAAA,QAAQ,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO;YACrC,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI;SAChC,CAAC,CAAA;AACU,sBAAA,EAAA,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;mBAClD,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAA;AACxC,iBAAA,EAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;AACvC,mBAAA,EAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AACzC,qBAAA,EAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;AAClD,gBAAA,EAAA,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,SAAS,CAAC,CAAA;mBAChF,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;4BAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;uBACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAA;AAC5B,mBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACjB,mBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AAClB,kBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;AACX,uBAAA,EAAA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;;cAGpC,GAAG,CAAA;SACR,CAAC;KACP;;AA9BM,cAAM,CAAA,MAAA,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,EAAEA,QAAgB,CAAC;;;;"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
6
|
var tslib = require('tslib');
|
|
7
|
+
var scopedElements = require('@open-wc/scoped-elements');
|
|
8
|
+
var lit = require('lit');
|
|
7
9
|
var decorators_js = require('lit/decorators.js');
|
|
8
10
|
var classMap_js = require('lit/directives/class-map.js');
|
|
9
11
|
var ifDefined_js = require('lit/directives/if-defined.js');
|
|
@@ -11,13 +13,12 @@ var live_js = require('lit/directives/live.js');
|
|
|
11
13
|
var unsafeSvg_js = require('lit/directives/unsafe-svg.js');
|
|
12
14
|
var staticHtml_js = require('lit/static-html.js');
|
|
13
15
|
var formControlElement = require('../../base/form-control-element.cjs.js');
|
|
14
|
-
var
|
|
16
|
+
var formPlaceholder = require('../../styles/form-placeholder.cjs.js');
|
|
15
17
|
var defaultvalue = require('../../utils/defaultvalue.cjs.js');
|
|
16
|
-
var
|
|
17
|
-
var generateId = require('../../utils/generateId.cjs.js');
|
|
18
|
+
var validatorMixin = require('../../utils/validatorMixin.cjs.js');
|
|
18
19
|
var watch = require('../../utils/watch.cjs.js');
|
|
20
|
+
var sgdsSpinner = require('../Spinner/sgds-spinner.cjs.js');
|
|
19
21
|
var input = require('./input.cjs.js');
|
|
20
|
-
var lit = require('lit');
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* @summary Text inputs allow your users to enter letters, numbers and symbols on a single line.
|
|
@@ -26,14 +27,13 @@ var lit = require('lit');
|
|
|
26
27
|
* @event sgds-input - Emitted when the control receives input and its value changes.
|
|
27
28
|
* @event sgds-focus - Emitted when input is in focus.
|
|
28
29
|
* @event sgds-blur - Emitted when input is not in focus.
|
|
30
|
+
* @event sgds-invalid - Emitted when input is invalid
|
|
31
|
+
* @event sgds-valid - Emitted when input is valid
|
|
29
32
|
*
|
|
30
33
|
*/
|
|
31
|
-
class SgdsInput extends formControlElement["default"] {
|
|
34
|
+
class SgdsInput extends validatorMixin.SgdsFormValidatorMixin(scopedElements.ScopedElementsMixin(formControlElement["default"])) {
|
|
32
35
|
constructor() {
|
|
33
36
|
super(...arguments);
|
|
34
|
-
/**@internal */
|
|
35
|
-
this.formSubmitController = new form.FormSubmitController(this);
|
|
36
|
-
/** The type of input which works the same as HTMLInputElement */
|
|
37
37
|
this.type = "text";
|
|
38
38
|
/** The input's placeholder text. */
|
|
39
39
|
this.placeholder = "placeholder";
|
|
@@ -41,16 +41,17 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
41
41
|
this.autofocus = false;
|
|
42
42
|
/** Makes the input readonly. */
|
|
43
43
|
this.readonly = false;
|
|
44
|
-
/**The input's value attribute. */
|
|
45
|
-
this.value = "";
|
|
46
44
|
/**Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
|
|
47
45
|
this.defaultValue = "";
|
|
48
46
|
/** Marks the component as valid. */
|
|
49
47
|
this.valid = false;
|
|
50
48
|
/** Marks the component as loading. */
|
|
51
49
|
this.loading = false;
|
|
52
|
-
|
|
53
|
-
this.
|
|
50
|
+
/** Makes the input a required field. */
|
|
51
|
+
this.required = false;
|
|
52
|
+
/**The input's value attribute. */
|
|
53
|
+
this.value = "";
|
|
54
|
+
this._isTouched = false;
|
|
54
55
|
}
|
|
55
56
|
/**@internal */
|
|
56
57
|
static get scopedElements() {
|
|
@@ -66,60 +67,79 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
66
67
|
blur() {
|
|
67
68
|
this.input.blur();
|
|
68
69
|
}
|
|
69
|
-
/** Checks for validity and shows the browser's validation message if the control is invalid. */
|
|
70
|
-
reportValidity() {
|
|
71
|
-
return this.input.reportValidity();
|
|
72
|
-
}
|
|
73
|
-
/** Sets a custom validation message. Pass an empty string to restore validity */
|
|
74
|
-
setCustomValidity(err) {
|
|
75
|
-
return this.input.setCustomValidity(err);
|
|
76
|
-
}
|
|
77
70
|
/** Programatically sets the invalid state of the input. Pass in boolean value in the argument */
|
|
78
71
|
setInvalid(bool) {
|
|
79
72
|
this.invalid = bool;
|
|
73
|
+
if (bool) {
|
|
74
|
+
this.emit("sgds-invalid");
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.emit("sgds-valid");
|
|
78
|
+
}
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Checks for validity. Under the hood, HTMLFormElement's reportValidity method calls this method to check for component's validity state
|
|
82
|
+
* Note that the native error popup is prevented for SGDS form components by default. Instead the validation message shows up in the feedback container of SgdsInput
|
|
83
|
+
*/
|
|
84
|
+
reportValidity() {
|
|
85
|
+
return this._mixinReportValidity();
|
|
83
86
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Checks for validity without any native error popup message
|
|
89
|
+
*/
|
|
90
|
+
checkValidity() {
|
|
91
|
+
return this._mixinCheckValidity();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns the ValidityState object
|
|
95
|
+
*/
|
|
96
|
+
get validity() {
|
|
97
|
+
return this._mixinGetValidity();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Returns the validation message based on the ValidityState
|
|
101
|
+
*/
|
|
102
|
+
get validationMessage() {
|
|
103
|
+
return this._mixinGetValidationMessage();
|
|
87
104
|
}
|
|
88
105
|
_handleFocus() {
|
|
89
106
|
this.emit("sgds-focus");
|
|
90
107
|
}
|
|
91
108
|
_handleBlur() {
|
|
109
|
+
this._isTouched = true;
|
|
92
110
|
this.emit("sgds-blur");
|
|
93
111
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
_handleClick() {
|
|
113
|
+
this.focus();
|
|
114
|
+
}
|
|
115
|
+
_handleChange(e) {
|
|
116
|
+
this.value = this.input.value;
|
|
117
|
+
this.emit("sgds-change");
|
|
118
|
+
super._mixinHandleChange(e);
|
|
119
|
+
}
|
|
120
|
+
_handleInputChange(e) {
|
|
121
|
+
this.value = this.input.value;
|
|
122
|
+
this.emit("sgds-input");
|
|
123
|
+
super._mixinHandleInputChange(e);
|
|
124
|
+
}
|
|
125
|
+
/** @internal */
|
|
126
|
+
_handleIsTouched() {
|
|
127
|
+
if (this._isTouched) {
|
|
128
|
+
this.setInvalid(!this._mixinCheckValidity());
|
|
105
129
|
}
|
|
106
130
|
}
|
|
107
131
|
_handleDisabledChange() {
|
|
108
132
|
// Disabled form controls are always valid, so we need to recheck validity when the state changes
|
|
109
|
-
this.
|
|
110
|
-
this.invalid = !this.input.checkValidity();
|
|
111
|
-
}
|
|
112
|
-
_handleValueChange() {
|
|
113
|
-
this.invalid = !this.input.checkValidity();
|
|
133
|
+
this.setInvalid(false);
|
|
114
134
|
}
|
|
115
135
|
_renderInput() {
|
|
136
|
+
const wantFeedbackStyle = this.hasFeedback === "both" || this.hasFeedback === "style";
|
|
116
137
|
return staticHtml_js.html `
|
|
117
138
|
<div
|
|
118
139
|
class="form-control-group ${classMap_js.classMap({
|
|
119
140
|
disabled: this.disabled,
|
|
120
141
|
readonly: this.readonly,
|
|
121
|
-
"is-invalid": this.invalid &&
|
|
122
|
-
"quantity-toggle": this.classList.contains("quantity-toggle")
|
|
142
|
+
"is-invalid": this.invalid && wantFeedbackStyle
|
|
123
143
|
})}"
|
|
124
144
|
@click=${this._handleClick}
|
|
125
145
|
>
|
|
@@ -128,7 +148,7 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
128
148
|
<input
|
|
129
149
|
class="form-control"
|
|
130
150
|
type=${this.type}
|
|
131
|
-
id=${this.
|
|
151
|
+
id=${this._controlId}
|
|
132
152
|
name=${ifDefined_js.ifDefined(this.name)}
|
|
133
153
|
placeholder=${ifDefined_js.ifDefined(this.placeholder)}
|
|
134
154
|
aria-invalid=${this.invalid ? "true" : "false"}
|
|
@@ -143,15 +163,14 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
143
163
|
min=${ifDefined_js.ifDefined(this.min)}
|
|
144
164
|
max=${ifDefined_js.ifDefined(this.max)}
|
|
145
165
|
step=${ifDefined_js.ifDefined(this.step)}
|
|
146
|
-
@input=${() => this.
|
|
147
|
-
@change=${() => this._handleChange(
|
|
148
|
-
@keydown=${this._handleKeyDown}
|
|
166
|
+
@input=${(e) => this._handleInputChange(e)}
|
|
167
|
+
@change=${(e) => this._handleChange(e)}
|
|
149
168
|
@invalid=${() => this.setInvalid(true)}
|
|
150
169
|
@focus=${this._handleFocus}
|
|
151
170
|
@blur=${this._handleBlur}
|
|
152
|
-
aria-describedby=${ifDefined_js.ifDefined(this.invalid && this.hasFeedback ? `${this.
|
|
153
|
-
aria-labelledby="${this.
|
|
154
|
-
? `${this.
|
|
171
|
+
aria-describedby=${ifDefined_js.ifDefined(this.invalid && this.hasFeedback ? `${this._controlId}-invalid` : undefined)}
|
|
172
|
+
aria-labelledby="${this._labelId} ${this._controlId}Help ${this.invalid && this.hasFeedback
|
|
173
|
+
? `${this._controlId}-invalid`
|
|
155
174
|
: ""}"
|
|
156
175
|
/>
|
|
157
176
|
${this.loading ? staticHtml_js.html `<sgds-spinner size="sm"></sgds-spinner>` : lit.nothing}
|
|
@@ -168,7 +187,8 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
168
187
|
`;
|
|
169
188
|
}
|
|
170
189
|
_renderFeedback() {
|
|
171
|
-
|
|
190
|
+
const wantFeedbackText = this.hasFeedback === "both" || this.hasFeedback === "text";
|
|
191
|
+
return this.invalid && wantFeedbackText
|
|
172
192
|
? staticHtml_js.html ` <div class="invalid-feedback-container">
|
|
173
193
|
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
174
194
|
<path
|
|
@@ -176,15 +196,17 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
176
196
|
fill="#B90000"
|
|
177
197
|
/>
|
|
178
198
|
</svg>
|
|
179
|
-
<div id="${this.
|
|
199
|
+
<div id="${this._controlId}-invalid" class="invalid-feedback">
|
|
200
|
+
${this.invalidFeedback ? this.invalidFeedback : this.input.validationMessage}
|
|
201
|
+
</div>
|
|
180
202
|
</div>`
|
|
181
203
|
: staticHtml_js.html `${this._renderHintText()}`;
|
|
182
204
|
}
|
|
183
205
|
_renderLabel() {
|
|
184
206
|
const labelTemplate = staticHtml_js.html `
|
|
185
207
|
<label
|
|
186
|
-
for=${this.
|
|
187
|
-
id=${this.
|
|
208
|
+
for=${this._controlId}
|
|
209
|
+
id=${this._labelId}
|
|
188
210
|
class=${classMap_js.classMap({
|
|
189
211
|
"form-label": true,
|
|
190
212
|
required: this.required
|
|
@@ -195,7 +217,7 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
195
217
|
return this.label && labelTemplate;
|
|
196
218
|
}
|
|
197
219
|
_renderHintText() {
|
|
198
|
-
const hintTextTemplate = staticHtml_js.html ` <div id="${this.
|
|
220
|
+
const hintTextTemplate = staticHtml_js.html ` <div id="${this._controlId}Help" class="form-text">${this.hintText}</div> `;
|
|
199
221
|
return this.hintText && hintTextTemplate;
|
|
200
222
|
}
|
|
201
223
|
render() {
|
|
@@ -210,10 +232,7 @@ class SgdsInput extends formControlElement["default"] {
|
|
|
210
232
|
`;
|
|
211
233
|
}
|
|
212
234
|
}
|
|
213
|
-
SgdsInput.styles = [...formControlElement["default"].styles, input["default"]];
|
|
214
|
-
tslib.__decorate([
|
|
215
|
-
decorators_js.query("input.form-control")
|
|
216
|
-
], SgdsInput.prototype, "input", void 0);
|
|
235
|
+
SgdsInput.styles = [...formControlElement["default"].styles, formPlaceholder["default"], input["default"]];
|
|
217
236
|
tslib.__decorate([
|
|
218
237
|
decorators_js.property({ reflect: true })
|
|
219
238
|
], SgdsInput.prototype, "type", void 0);
|
|
@@ -232,6 +251,12 @@ tslib.__decorate([
|
|
|
232
251
|
tslib.__decorate([
|
|
233
252
|
decorators_js.property({ type: Number, reflect: true })
|
|
234
253
|
], SgdsInput.prototype, "maxlength", void 0);
|
|
254
|
+
tslib.__decorate([
|
|
255
|
+
decorators_js.property()
|
|
256
|
+
], SgdsInput.prototype, "min", void 0);
|
|
257
|
+
tslib.__decorate([
|
|
258
|
+
decorators_js.property()
|
|
259
|
+
], SgdsInput.prototype, "max", void 0);
|
|
235
260
|
tslib.__decorate([
|
|
236
261
|
decorators_js.property({ type: String, reflect: true })
|
|
237
262
|
], SgdsInput.prototype, "placeholder", void 0);
|
|
@@ -248,8 +273,11 @@ tslib.__decorate([
|
|
|
248
273
|
decorators_js.property()
|
|
249
274
|
], SgdsInput.prototype, "step", void 0);
|
|
250
275
|
tslib.__decorate([
|
|
251
|
-
decorators_js.property({ reflect: true })
|
|
252
|
-
], SgdsInput.prototype, "
|
|
276
|
+
decorators_js.property({ type: String, reflect: true })
|
|
277
|
+
], SgdsInput.prototype, "hasFeedback", void 0);
|
|
278
|
+
tslib.__decorate([
|
|
279
|
+
decorators_js.property({ type: String, reflect: true })
|
|
280
|
+
], SgdsInput.prototype, "invalidFeedback", void 0);
|
|
253
281
|
tslib.__decorate([
|
|
254
282
|
defaultvalue.defaultValue()
|
|
255
283
|
], SgdsInput.prototype, "defaultValue", void 0);
|
|
@@ -259,12 +287,21 @@ tslib.__decorate([
|
|
|
259
287
|
tslib.__decorate([
|
|
260
288
|
decorators_js.property({ type: Boolean, reflect: true })
|
|
261
289
|
], SgdsInput.prototype, "loading", void 0);
|
|
290
|
+
tslib.__decorate([
|
|
291
|
+
decorators_js.property({ type: Boolean, reflect: true })
|
|
292
|
+
], SgdsInput.prototype, "required", void 0);
|
|
293
|
+
tslib.__decorate([
|
|
294
|
+
decorators_js.property({ reflect: true })
|
|
295
|
+
], SgdsInput.prototype, "value", void 0);
|
|
296
|
+
tslib.__decorate([
|
|
297
|
+
decorators_js.state()
|
|
298
|
+
], SgdsInput.prototype, "_isTouched", void 0);
|
|
299
|
+
tslib.__decorate([
|
|
300
|
+
watch.watch("_isTouched", { waitUntilFirstUpdate: true })
|
|
301
|
+
], SgdsInput.prototype, "_handleIsTouched", null);
|
|
262
302
|
tslib.__decorate([
|
|
263
303
|
watch.watch("disabled", { waitUntilFirstUpdate: true })
|
|
264
304
|
], SgdsInput.prototype, "_handleDisabledChange", null);
|
|
265
|
-
tslib.__decorate([
|
|
266
|
-
watch.watch("value", { waitUntilFirstUpdate: true })
|
|
267
|
-
], SgdsInput.prototype, "_handleValueChange", null);
|
|
268
305
|
|
|
269
306
|
exports.SgdsInput = SgdsInput;
|
|
270
307
|
exports["default"] = SgdsInput;
|