@umbraco-ui/uui 2.0.0-rc.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +103 -1
- package/dist/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js +9 -0
- package/dist/components/action-bar/action-bar.d.ts +0 -1
- package/dist/components/action-bar/action-bar.element.js +15 -12
- package/dist/components/action-bar/action-bar.element.js.map +1 -1
- package/dist/components/action-bar/action-bar.js +5 -5
- package/dist/components/action-bar/action-bar.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +0 -1
- package/dist/components/avatar/avatar.element.js +72 -86
- package/dist/components/avatar/avatar.element.js.map +1 -1
- package/dist/components/avatar/avatar.js +5 -5
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/avatar-group/avatar-group.d.ts +0 -1
- package/dist/components/avatar-group/avatar-group.element.js +58 -68
- package/dist/components/avatar-group/avatar-group.element.js.map +1 -1
- package/dist/components/avatar-group/avatar-group.js +5 -5
- package/dist/components/avatar-group/avatar-group.js.map +1 -1
- package/dist/components/badge/badge.d.ts +0 -1
- package/dist/components/badge/badge.element.js +32 -38
- package/dist/components/badge/badge.element.js.map +1 -1
- package/dist/components/badge/badge.js +5 -5
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/boolean-input/UUIBooleanInputEvent.js +15 -13
- package/dist/components/boolean-input/UUIBooleanInputEvent.js.map +1 -1
- package/dist/components/boolean-input/boolean-input.d.ts +0 -1
- package/dist/components/boolean-input/boolean-input.element.js +114 -134
- package/dist/components/boolean-input/boolean-input.element.js.map +1 -1
- package/dist/components/boolean-input/boolean-input.js +3 -0
- package/dist/components/box/box.d.ts +0 -1
- package/dist/components/box/box.element.js +74 -77
- package/dist/components/box/box.element.js.map +1 -1
- package/dist/components/box/box.js +5 -5
- package/dist/components/box/box.js.map +1 -1
- package/dist/components/breadcrumbs/breadcrumb-item.element.js +45 -50
- package/dist/components/breadcrumbs/breadcrumb-item.element.js.map +1 -1
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +0 -1
- package/dist/components/breadcrumbs/breadcrumbs.element.js +40 -47
- package/dist/components/breadcrumbs/breadcrumbs.element.js.map +1 -1
- package/dist/components/breadcrumbs/breadcrumbs.js +5 -6
- package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/button/button.d.ts +0 -1
- package/dist/components/button/button.element.js +147 -199
- package/dist/components/button/button.element.js.map +1 -1
- package/dist/components/button/button.js +5 -5
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button-copy-text/UUICopyTextEvent.js +16 -12
- package/dist/components/button-copy-text/UUICopyTextEvent.js.map +1 -1
- package/dist/components/button-copy-text/button-copy-text.d.ts +0 -1
- package/dist/components/button-copy-text/button-copy-text.element.js +78 -93
- package/dist/components/button-copy-text/button-copy-text.element.js.map +1 -1
- package/dist/components/button-copy-text/button-copy-text.js +6 -7
- package/dist/components/button-copy-text/button-copy-text.js.map +1 -1
- package/dist/components/button-group/button-group.d.ts +0 -1
- package/dist/components/button-group/button-group.element.js +19 -14
- package/dist/components/button-group/button-group.element.js.map +1 -1
- package/dist/components/button-group/button-group.js +5 -5
- package/dist/components/button-group/button-group.js.map +1 -1
- package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js +16 -14
- package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js.map +1 -1
- package/dist/components/button-inline-create/button-inline-create.d.ts +0 -1
- package/dist/components/button-inline-create/button-inline-create.element.js +63 -88
- package/dist/components/button-inline-create/button-inline-create.element.js.map +1 -1
- package/dist/components/button-inline-create/button-inline-create.js +6 -7
- package/dist/components/button-inline-create/button-inline-create.js.map +1 -1
- package/dist/components/card/UUICardEvent.js +9 -7
- package/dist/components/card/UUICardEvent.js.map +1 -1
- package/dist/components/card/card.d.ts +0 -1
- package/dist/components/card/card.element.d.ts +7 -0
- package/dist/components/card/card.element.js +72 -69
- package/dist/components/card/card.element.js.map +1 -1
- package/dist/components/card/card.js +6 -7
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/card-block-type/card-block-type.d.ts +0 -1
- package/dist/components/card-block-type/card-block-type.element.js +55 -74
- package/dist/components/card-block-type/card-block-type.element.js.map +1 -1
- package/dist/components/card-block-type/card-block-type.js +5 -5
- package/dist/components/card-block-type/card-block-type.js.map +1 -1
- package/dist/components/card-content-node/card-content-node.d.ts +0 -1
- package/dist/components/card-content-node/card-content-node.element.d.ts +1 -0
- package/dist/components/card-content-node/card-content-node.element.js +82 -83
- package/dist/components/card-content-node/card-content-node.element.js.map +1 -1
- package/dist/components/card-content-node/card-content-node.js +5 -5
- package/dist/components/card-content-node/card-content-node.js.map +1 -1
- package/dist/components/card-media/card-media.d.ts +0 -1
- package/dist/components/card-media/card-media.element.d.ts +4 -0
- package/dist/components/card-media/card-media.element.js +103 -89
- package/dist/components/card-media/card-media.element.js.map +1 -1
- package/dist/components/card-media/card-media.js +5 -5
- package/dist/components/card-media/card-media.js.map +1 -1
- package/dist/components/card-user/card-user.d.ts +0 -1
- package/dist/components/card-user/card-user.element.js +57 -72
- package/dist/components/card-user/card-user.element.js.map +1 -1
- package/dist/components/card-user/card-user.js +5 -5
- package/dist/components/card-user/card-user.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +0 -1
- package/dist/components/checkbox/checkbox.element.js +41 -22
- package/dist/components/checkbox/checkbox.element.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +5 -5
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/color-area/UUIColorAreaEvent.js +15 -13
- package/dist/components/color-area/UUIColorAreaEvent.js.map +1 -1
- package/dist/components/color-area/color-area.d.ts +0 -1
- package/dist/components/color-area/color-area.element.js +137 -174
- package/dist/components/color-area/color-area.element.js.map +1 -1
- package/dist/components/color-area/color-area.js +6 -7
- package/dist/components/color-area/color-area.js.map +1 -1
- package/dist/components/color-picker/UUIColorPickerEvent.js +15 -13
- package/dist/components/color-picker/UUIColorPickerEvent.js.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts +0 -1
- package/dist/components/color-picker/color-picker.element.js +293 -334
- package/dist/components/color-picker/color-picker.element.js.map +1 -1
- package/dist/components/color-picker/color-picker.js +6 -7
- package/dist/components/color-picker/color-picker.js.map +1 -1
- package/dist/components/color-slider/UUIColorSliderEvent.js +15 -13
- package/dist/components/color-slider/UUIColorSliderEvent.js.map +1 -1
- package/dist/components/color-slider/color-slider.d.ts +0 -1
- package/dist/components/color-slider/color-slider.element.js +169 -219
- package/dist/components/color-slider/color-slider.element.js.map +1 -1
- package/dist/components/color-slider/color-slider.js +6 -7
- package/dist/components/color-slider/color-slider.js.map +1 -1
- package/dist/components/color-swatch/color-swatch.d.ts +0 -1
- package/dist/components/color-swatch/color-swatch.element.d.ts +1 -1
- package/dist/components/color-swatch/color-swatch.element.js +215 -201
- package/dist/components/color-swatch/color-swatch.element.js.map +1 -1
- package/dist/components/color-swatch/color-swatch.js +5 -5
- package/dist/components/color-swatch/color-swatch.js.map +1 -1
- package/dist/components/color-swatches/UUIColorSwatchesEvent.js +15 -13
- package/dist/components/color-swatches/UUIColorSwatchesEvent.js.map +1 -1
- package/dist/components/color-swatches/color-swatches.d.ts +0 -1
- package/dist/components/color-swatches/color-swatches.element.js +115 -132
- package/dist/components/color-swatches/color-swatches.element.js.map +1 -1
- package/dist/components/color-swatches/color-swatches.js +6 -7
- package/dist/components/color-swatches/color-swatches.js.map +1 -1
- package/dist/components/combobox/UUIComboboxEvent.js +18 -14
- package/dist/components/combobox/UUIComboboxEvent.js.map +1 -1
- package/dist/components/combobox/combobox.d.ts +0 -1
- package/dist/components/combobox/combobox.element.js +321 -425
- package/dist/components/combobox/combobox.element.js.map +1 -1
- package/dist/components/combobox/combobox.js +6 -7
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox-list/UUIComboboxListEvent.js +18 -14
- package/dist/components/combobox-list/UUIComboboxListEvent.js.map +1 -1
- package/dist/components/combobox-list/combobox-list-option.element.js +88 -80
- package/dist/components/combobox-list/combobox-list-option.element.js.map +1 -1
- package/dist/components/combobox-list/combobox-list.d.ts +0 -1
- package/dist/components/combobox-list/combobox-list.element.js +218 -275
- package/dist/components/combobox-list/combobox-list.element.js.map +1 -1
- package/dist/components/combobox-list/combobox-list.js +6 -8
- package/dist/components/combobox-list/combobox-list.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +0 -1
- package/dist/components/dialog/dialog.element.js +19 -14
- package/dist/components/dialog/dialog.element.js.map +1 -1
- package/dist/components/dialog/dialog.js +5 -5
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/dialog-layout/dialog-layout.d.ts +0 -1
- package/dist/components/dialog-layout/dialog-layout.element.js +59 -64
- package/dist/components/dialog-layout/dialog-layout.element.js.map +1 -1
- package/dist/components/dialog-layout/dialog-layout.js +5 -5
- package/dist/components/dialog-layout/dialog-layout.js.map +1 -1
- package/dist/components/file-dropzone/UUIFileDropzoneEvent.js +18 -14
- package/dist/components/file-dropzone/UUIFileDropzoneEvent.js.map +1 -1
- package/dist/components/file-dropzone/file-dropzone.d.ts +0 -1
- package/dist/components/file-dropzone/file-dropzone.element.js +214 -257
- package/dist/components/file-dropzone/file-dropzone.element.js.map +1 -1
- package/dist/components/file-dropzone/file-dropzone.js +6 -7
- package/dist/components/file-dropzone/file-dropzone.js.map +1 -1
- package/dist/components/file-preview/UUIFileSize.js +46 -19
- package/dist/components/file-preview/UUIFileSize.js.map +1 -1
- package/dist/components/file-preview/file-preview.d.ts +0 -1
- package/dist/components/file-preview/file-preview.element.js +78 -103
- package/dist/components/file-preview/file-preview.element.js.map +1 -1
- package/dist/components/file-preview/file-preview.js +6 -5
- package/dist/components/file-preview/file-preview.js.map +1 -1
- package/dist/components/form/form.d.ts +0 -1
- package/dist/components/form/form.element.js +46 -46
- package/dist/components/form/form.element.js.map +1 -1
- package/dist/components/form/form.js +5 -5
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form-layout-item/form-layout-item.d.ts +0 -1
- package/dist/components/form-layout-item/form-layout-item.element.js +39 -45
- package/dist/components/form-layout-item/form-layout-item.element.js.map +1 -1
- package/dist/components/form-layout-item/form-layout-item.js +5 -5
- package/dist/components/form-layout-item/form-layout-item.js.map +1 -1
- package/dist/components/form-validation-message/form-validation-message.d.ts +0 -1
- package/dist/components/form-validation-message/form-validation-message.element.js +71 -89
- package/dist/components/form-validation-message/form-validation-message.element.js.map +1 -1
- package/dist/components/form-validation-message/form-validation-message.js +5 -5
- package/dist/components/form-validation-message/form-validation-message.js.map +1 -1
- package/dist/components/icon/UUIIconRequestEvent.js +21 -19
- package/dist/components/icon/UUIIconRequestEvent.js.map +1 -1
- package/dist/components/icon/icon.d.ts +0 -1
- package/dist/components/icon/icon.element.js +93 -117
- package/dist/components/icon/icon.element.js.map +1 -1
- package/dist/components/icon/icon.js +6 -7
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/icon-registry/UUIIconHost.js +16 -17
- package/dist/components/icon-registry/UUIIconHost.js.map +1 -1
- package/dist/components/icon-registry/UUIIconRegistry.js +67 -77
- package/dist/components/icon-registry/UUIIconRegistry.js.map +1 -1
- package/dist/components/icon-registry/icon-registry.d.ts +0 -1
- package/dist/components/icon-registry/icon-registry.element.js +39 -48
- package/dist/components/icon-registry/icon-registry.element.js.map +1 -1
- package/dist/components/icon-registry/icon-registry.js +7 -6
- package/dist/components/icon-registry/icon-registry.js.map +1 -1
- package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js +44 -42
- package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js.map +1 -1
- package/dist/components/icon-registry-essential/icon-registry-essential.d.ts +0 -1
- package/dist/components/icon-registry-essential/icon-registry-essential.element.js +15 -9
- package/dist/components/icon-registry-essential/icon-registry-essential.element.js.map +1 -1
- package/dist/components/icon-registry-essential/icon-registry-essential.js +6 -39
- package/dist/components/icon-registry-essential/icon-registry-essential.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconAdd.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconAdd.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconAlert.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconAlert.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconAttachment.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconAttachment.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconCalendar.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconCalendar.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconCheck.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconCheck.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconClipboard.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconClipboard.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconCode.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconCode.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconColorPicker.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconColorPicker.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconCopy.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconCopy.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconDelete.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconDelete.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconDocument.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconDocument.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconDownload.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconDownload.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconDrag.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconDrag.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconEdit.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconEdit.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconFavorite.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconFavorite.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconFolder.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconFolder.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconForbidden.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconForbidden.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconInfo.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconInfo.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconLink.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconLink.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconLock.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconLock.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconPause.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconPause.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconPicture.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconPicture.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconPlay.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconPlay.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconRemove.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconRemove.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconSearch.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconSearch.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconSee.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconSee.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconSettings.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconSettings.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconSubtract.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconSubtract.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconSync.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconSync.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconUnlock.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconUnlock.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconUnsee.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconUnsee.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconWand.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconWand.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/iconWrong.js +6 -5
- package/dist/components/icon-registry-essential/svgs/iconWrong.js.map +1 -1
- package/dist/components/icon-registry-essential/svgs/index.js +34 -0
- package/dist/components/index.js +206 -0
- package/dist/components/input/UUIInputEvent.js +18 -14
- package/dist/components/input/UUIInputEvent.js.map +1 -1
- package/dist/components/input/input.d.ts +0 -1
- package/dist/components/input/input.element.js +176 -201
- package/dist/components/input/input.element.js.map +1 -1
- package/dist/components/input/input.js +6 -7
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/input-file/input-file.d.ts +0 -1
- package/dist/components/input-file/input-file.element.js +137 -211
- package/dist/components/input-file/input-file.element.js.map +1 -1
- package/dist/components/input-file/input-file.js +5 -5
- package/dist/components/input-file/input-file.js.map +1 -1
- package/dist/components/input-lock/UUIInputLockEvent.js +15 -13
- package/dist/components/input-lock/UUIInputLockEvent.js.map +1 -1
- package/dist/components/input-lock/input-lock.d.ts +0 -1
- package/dist/components/input-lock/input-lock.element.js +69 -105
- package/dist/components/input-lock/input-lock.element.js.map +1 -1
- package/dist/components/input-lock/input-lock.js +6 -7
- package/dist/components/input-lock/input-lock.js.map +1 -1
- package/dist/components/input-password/input-password.d.ts +0 -1
- package/dist/components/input-password/input-password.element.js +45 -90
- package/dist/components/input-password/input-password.element.js.map +1 -1
- package/dist/components/input-password/input-password.js +5 -5
- package/dist/components/input-password/input-password.js.map +1 -1
- package/dist/components/keyboard-shortcut/key.element.js +19 -14
- package/dist/components/keyboard-shortcut/key.element.js.map +1 -1
- package/dist/components/keyboard-shortcut/keyboard-shortcut.d.ts +0 -1
- package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js +19 -14
- package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js.map +1 -1
- package/dist/components/keyboard-shortcut/keyboard-shortcut.js +5 -6
- package/dist/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/dist/components/label/label.d.ts +0 -1
- package/dist/components/label/label.element.js +52 -54
- package/dist/components/label/label.element.js.map +1 -1
- package/dist/components/label/label.js +5 -5
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/loader/loader.d.ts +0 -1
- package/dist/components/loader/loader.element.js +18 -14
- package/dist/components/loader/loader.element.js.map +1 -1
- package/dist/components/loader/loader.js +5 -5
- package/dist/components/loader/loader.js.map +1 -1
- package/dist/components/loader-bar/loader-bar.d.ts +0 -1
- package/dist/components/loader-bar/loader-bar.element.js +55 -52
- package/dist/components/loader-bar/loader-bar.element.js.map +1 -1
- package/dist/components/loader-bar/loader-bar.js +5 -5
- package/dist/components/loader-bar/loader-bar.js.map +1 -1
- package/dist/components/loader-circle/loader-circle.d.ts +0 -1
- package/dist/components/loader-circle/loader-circle.element.js +52 -59
- package/dist/components/loader-circle/loader-circle.element.js.map +1 -1
- package/dist/components/loader-circle/loader-circle.js +5 -5
- package/dist/components/loader-circle/loader-circle.js.map +1 -1
- package/dist/components/menu-item/UUIMenuItemEvent.js +15 -9
- package/dist/components/menu-item/UUIMenuItemEvent.js.map +1 -1
- package/dist/components/menu-item/menu-item.d.ts +0 -1
- package/dist/components/menu-item/menu-item.element.js +136 -139
- package/dist/components/menu-item/menu-item.element.js.map +1 -1
- package/dist/components/menu-item/menu-item.js +6 -7
- package/dist/components/menu-item/menu-item.js.map +1 -1
- package/dist/components/modal/modal-container.js +86 -141
- package/dist/components/modal/modal-container.js.map +1 -1
- package/dist/components/modal/modal-dialog.element.js +14 -15
- package/dist/components/modal/modal-dialog.element.js.map +1 -1
- package/dist/components/modal/modal-sidebar.element.js +41 -64
- package/dist/components/modal/modal-sidebar.element.js.map +1 -1
- package/dist/components/modal/modal.d.ts +0 -1
- package/dist/components/modal/modal.element.js +89 -106
- package/dist/components/modal/modal.element.js.map +1 -1
- package/dist/components/modal/modal.js +6 -12
- package/dist/components/modal/modal.js.map +1 -1
- package/dist/components/pagination/UUIPaginationEvent.js +15 -13
- package/dist/components/pagination/UUIPaginationEvent.js.map +1 -1
- package/dist/components/pagination/pagination.d.ts +0 -1
- package/dist/components/pagination/pagination.element.js +188 -228
- package/dist/components/pagination/pagination.element.js.map +1 -1
- package/dist/components/pagination/pagination.js +6 -7
- package/dist/components/pagination/pagination.js.map +1 -1
- package/dist/components/popover-container/popover-container.d.ts +0 -1
- package/dist/components/popover-container/popover-container.element.d.ts +1 -0
- package/dist/components/popover-container/popover-container.element.js +290 -335
- package/dist/components/popover-container/popover-container.element.js.map +1 -1
- package/dist/components/popover-container/popover-container.js +5 -5
- package/dist/components/popover-container/popover-container.js.map +1 -1
- package/dist/components/progress-bar/progress-bar.d.ts +0 -1
- package/dist/components/progress-bar/progress-bar.element.js +41 -43
- package/dist/components/progress-bar/progress-bar.element.js.map +1 -1
- package/dist/components/progress-bar/progress-bar.js +5 -5
- package/dist/components/progress-bar/progress-bar.js.map +1 -1
- package/dist/components/radio/UUIRadioEvent.js +15 -13
- package/dist/components/radio/UUIRadioEvent.js.map +1 -1
- package/dist/components/radio/UUIRadioGroupEvent.js +15 -13
- package/dist/components/radio/UUIRadioGroupEvent.js.map +1 -1
- package/dist/components/radio/radio-group.element.js +224 -279
- package/dist/components/radio/radio-group.element.js.map +1 -1
- package/dist/components/radio/radio.d.ts +0 -1
- package/dist/components/radio/radio.element.js +100 -123
- package/dist/components/radio/radio.element.js.map +1 -1
- package/dist/components/radio/radio.js +7 -10
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/range-slider/UUIRangeSliderEvent.js +18 -14
- package/dist/components/range-slider/UUIRangeSliderEvent.js.map +1 -1
- package/dist/components/range-slider/range-slider.d.ts +0 -1
- package/dist/components/range-slider/range-slider.element.js +439 -504
- package/dist/components/range-slider/range-slider.element.js.map +1 -1
- package/dist/components/range-slider/range-slider.js +6 -7
- package/dist/components/range-slider/range-slider.js.map +1 -1
- package/dist/components/ref/UUIRefEvent.js +9 -7
- package/dist/components/ref/UUIRefEvent.js.map +1 -1
- package/dist/components/ref/ref.d.ts +0 -1
- package/dist/components/ref/ref.element.js +55 -50
- package/dist/components/ref/ref.element.js.map +1 -1
- package/dist/components/ref/ref.js +6 -7
- package/dist/components/ref/ref.js.map +1 -1
- package/dist/components/ref-list/ref-list.d.ts +0 -1
- package/dist/components/ref-list/ref-list.element.js +17 -14
- package/dist/components/ref-list/ref-list.element.js.map +1 -1
- package/dist/components/ref-list/ref-list.js +5 -5
- package/dist/components/ref-list/ref-list.js.map +1 -1
- package/dist/components/ref-node/ref-node.d.ts +0 -1
- package/dist/components/ref-node/ref-node.element.js +91 -109
- package/dist/components/ref-node/ref-node.element.js.map +1 -1
- package/dist/components/ref-node/ref-node.js +5 -5
- package/dist/components/ref-node/ref-node.js.map +1 -1
- package/dist/components/ref-node-data-type/ref-node-data-type.d.ts +0 -1
- package/dist/components/ref-node-data-type/ref-node-data-type.element.js +30 -35
- package/dist/components/ref-node-data-type/ref-node-data-type.element.js.map +1 -1
- package/dist/components/ref-node-data-type/ref-node-data-type.js +5 -5
- package/dist/components/ref-node-data-type/ref-node-data-type.js.map +1 -1
- package/dist/components/ref-node-document-type/ref-node-document-type.d.ts +0 -1
- package/dist/components/ref-node-document-type/ref-node-document-type.element.js +30 -35
- package/dist/components/ref-node-document-type/ref-node-document-type.element.js.map +1 -1
- package/dist/components/ref-node-document-type/ref-node-document-type.js +5 -5
- package/dist/components/ref-node-document-type/ref-node-document-type.js.map +1 -1
- package/dist/components/ref-node-form/ref-node-form.d.ts +0 -1
- package/dist/components/ref-node-form/ref-node-form.element.js +21 -12
- package/dist/components/ref-node-form/ref-node-form.element.js.map +1 -1
- package/dist/components/ref-node-form/ref-node-form.js +5 -5
- package/dist/components/ref-node-form/ref-node-form.js.map +1 -1
- package/dist/components/ref-node-member/ref-node-member.d.ts +0 -1
- package/dist/components/ref-node-member/ref-node-member.element.js +33 -35
- package/dist/components/ref-node-member/ref-node-member.element.js.map +1 -1
- package/dist/components/ref-node-member/ref-node-member.js +5 -5
- package/dist/components/ref-node-member/ref-node-member.js.map +1 -1
- package/dist/components/ref-node-package/ref-node-package.d.ts +0 -1
- package/dist/components/ref-node-package/ref-node-package.element.js +33 -42
- package/dist/components/ref-node-package/ref-node-package.element.js.map +1 -1
- package/dist/components/ref-node-package/ref-node-package.js +5 -5
- package/dist/components/ref-node-package/ref-node-package.js.map +1 -1
- package/dist/components/ref-node-user/ref-node-user.d.ts +0 -1
- package/dist/components/ref-node-user/ref-node-user.element.js +33 -35
- package/dist/components/ref-node-user/ref-node-user.element.js.map +1 -1
- package/dist/components/ref-node-user/ref-node-user.js +5 -5
- package/dist/components/ref-node-user/ref-node-user.js.map +1 -1
- package/dist/components/responsive-container/responsive-container.d.ts +0 -1
- package/dist/components/responsive-container/responsive-container.element.js +186 -244
- package/dist/components/responsive-container/responsive-container.element.js.map +1 -1
- package/dist/components/responsive-container/responsive-container.js +5 -5
- package/dist/components/responsive-container/responsive-container.js.map +1 -1
- package/dist/components/scroll-container/scroll-container.d.ts +0 -1
- package/dist/components/scroll-container/scroll-container.element.js +35 -36
- package/dist/components/scroll-container/scroll-container.element.js.map +1 -1
- package/dist/components/scroll-container/scroll-container.js +5 -5
- package/dist/components/scroll-container/scroll-container.js.map +1 -1
- package/dist/components/select/UUISelectEvent.js +15 -13
- package/dist/components/select/UUISelectEvent.js.map +1 -1
- package/dist/components/select/select.d.ts +0 -1
- package/dist/components/select/select.element.js +134 -163
- package/dist/components/select/select.element.js.map +1 -1
- package/dist/components/select/select.js +6 -7
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/slider/UUISliderEvent.js +18 -14
- package/dist/components/slider/UUISliderEvent.js.map +1 -1
- package/dist/components/slider/native-input.styles.js +6 -5
- package/dist/components/slider/native-input.styles.js.map +1 -1
- package/dist/components/slider/slider.d.ts +0 -1
- package/dist/components/slider/slider.element.d.ts +7 -0
- package/dist/components/slider/slider.element.js +197 -227
- package/dist/components/slider/slider.element.js.map +1 -1
- package/dist/components/slider/slider.js +6 -7
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/symbol-drag-handle/symbol-drag-handle.d.ts +0 -1
- package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js +19 -16
- package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js.map +1 -1
- package/dist/components/symbol-drag-handle/symbol-drag-handle.js +5 -5
- package/dist/components/symbol-drag-handle/symbol-drag-handle.js.map +1 -1
- package/dist/components/symbol-expand/symbol-expand.d.ts +0 -1
- package/dist/components/symbol-expand/symbol-expand.element.js +27 -30
- package/dist/components/symbol-expand/symbol-expand.element.js.map +1 -1
- package/dist/components/symbol-expand/symbol-expand.js +5 -5
- package/dist/components/symbol-expand/symbol-expand.js.map +1 -1
- package/dist/components/symbol-file/symbol-file.d.ts +0 -1
- package/dist/components/symbol-file/symbol-file.element.js +24 -32
- package/dist/components/symbol-file/symbol-file.element.js.map +1 -1
- package/dist/components/symbol-file/symbol-file.js +5 -5
- package/dist/components/symbol-file/symbol-file.js.map +1 -1
- package/dist/components/symbol-file-dropzone/symbol-file-dropzone.d.ts +0 -1
- package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js +26 -30
- package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js.map +1 -1
- package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js +5 -5
- package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js.map +1 -1
- package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.d.ts +0 -1
- package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js +39 -95
- package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js.map +1 -1
- package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js +5 -5
- package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js.map +1 -1
- package/dist/components/symbol-folder/symbol-folder.d.ts +0 -1
- package/dist/components/symbol-folder/symbol-folder.element.js +17 -14
- package/dist/components/symbol-folder/symbol-folder.element.js.map +1 -1
- package/dist/components/symbol-folder/symbol-folder.js +5 -5
- package/dist/components/symbol-folder/symbol-folder.js.map +1 -1
- package/dist/components/symbol-lock/symbol-lock.d.ts +0 -1
- package/dist/components/symbol-lock/symbol-lock.element.js +26 -30
- package/dist/components/symbol-lock/symbol-lock.element.js.map +1 -1
- package/dist/components/symbol-lock/symbol-lock.js +5 -5
- package/dist/components/symbol-lock/symbol-lock.js.map +1 -1
- package/dist/components/symbol-more/symbol-more.d.ts +0 -1
- package/dist/components/symbol-more/symbol-more.element.js +17 -14
- package/dist/components/symbol-more/symbol-more.element.js.map +1 -1
- package/dist/components/symbol-more/symbol-more.js +5 -5
- package/dist/components/symbol-more/symbol-more.js.map +1 -1
- package/dist/components/symbol-sort/symbol-sort.d.ts +0 -1
- package/dist/components/symbol-sort/symbol-sort.element.js +29 -31
- package/dist/components/symbol-sort/symbol-sort.element.js.map +1 -1
- package/dist/components/symbol-sort/symbol-sort.js +5 -5
- package/dist/components/symbol-sort/symbol-sort.js.map +1 -1
- package/dist/components/table/table-cell.element.js +65 -71
- package/dist/components/table/table-cell.element.js.map +1 -1
- package/dist/components/table/table-column.element.js +14 -10
- package/dist/components/table/table-column.element.js.map +1 -1
- package/dist/components/table/table-head-cell.element.js +19 -16
- package/dist/components/table/table-head-cell.element.js.map +1 -1
- package/dist/components/table/table-head.element.js +23 -18
- package/dist/components/table/table-head.element.js.map +1 -1
- package/dist/components/table/table-row.element.js +41 -52
- package/dist/components/table/table-row.element.js.map +1 -1
- package/dist/components/table/table.d.ts +0 -1
- package/dist/components/table/table.element.js +31 -20
- package/dist/components/table/table.element.js.map +1 -1
- package/dist/components/table/table.js +5 -10
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/UUITabEvent.js +6 -6
- package/dist/components/tabs/UUITabEvent.js.map +1 -1
- package/dist/components/tabs/UUITabGroupEvent.js +6 -6
- package/dist/components/tabs/UUITabGroupEvent.js.map +1 -1
- package/dist/components/tabs/tab-group.element.js +188 -251
- package/dist/components/tabs/tab-group.element.js.map +1 -1
- package/dist/components/tabs/tab.element.js +66 -56
- package/dist/components/tabs/tab.element.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +0 -1
- package/dist/components/tabs/tabs.js +7 -6
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tag/tag.d.ts +0 -1
- package/dist/components/tag/tag.element.js +32 -34
- package/dist/components/tag/tag.element.js.map +1 -1
- package/dist/components/tag/tag.js +5 -5
- package/dist/components/tag/tag.js.map +1 -1
- package/dist/components/textarea/UUITextareaEvent.js +18 -14
- package/dist/components/textarea/UUITextareaEvent.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +0 -1
- package/dist/components/textarea/textarea.element.d.ts +2 -0
- package/dist/components/textarea/textarea.element.js +153 -180
- package/dist/components/textarea/textarea.element.js.map +1 -1
- package/dist/components/textarea/textarea.js +6 -7
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/toast-notification/UUIToastNotificationEvent.js +18 -10
- package/dist/components/toast-notification/UUIToastNotificationEvent.js.map +1 -1
- package/dist/components/toast-notification/toast-notification.d.ts +0 -1
- package/dist/components/toast-notification/toast-notification.element.js +155 -224
- package/dist/components/toast-notification/toast-notification.element.js.map +1 -1
- package/dist/components/toast-notification/toast-notification.js +6 -7
- package/dist/components/toast-notification/toast-notification.js.map +1 -1
- package/dist/components/toast-notification-container/toast-notification-container.d.ts +0 -1
- package/dist/components/toast-notification-container/toast-notification-container.element.js +98 -122
- package/dist/components/toast-notification-container/toast-notification-container.element.js.map +1 -1
- package/dist/components/toast-notification-container/toast-notification-container.js +6 -9
- package/dist/components/toast-notification-container/toast-notification-container.js.map +1 -1
- package/dist/components/toast-notification-layout/toast-notification-layout.d.ts +0 -1
- package/dist/components/toast-notification-layout/toast-notification-layout.element.js +33 -39
- package/dist/components/toast-notification-layout/toast-notification-layout.element.js.map +1 -1
- package/dist/components/toast-notification-layout/toast-notification-layout.js +6 -9
- package/dist/components/toast-notification-layout/toast-notification-layout.js.map +1 -1
- package/dist/components/toggle/toggle.d.ts +0 -1
- package/dist/components/toggle/toggle.element.js +43 -54
- package/dist/components/toggle/toggle.element.js.map +1 -1
- package/dist/components/toggle/toggle.js +5 -5
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/visually-hidden/visually-hidden.d.ts +0 -1
- package/dist/components/visually-hidden/visually-hidden.element.js +17 -14
- package/dist/components/visually-hidden/visually-hidden.element.js.map +1 -1
- package/dist/components/visually-hidden/visually-hidden.js +5 -5
- package/dist/components/visually-hidden/visually-hidden.js.map +1 -1
- package/dist/index.js +115 -359
- package/dist/internal/animations/uui-blink.js +7 -7
- package/dist/internal/animations/uui-blink.js.map +1 -1
- package/dist/internal/animations/uui-pulse.js +7 -9
- package/dist/internal/animations/uui-pulse.js.map +1 -1
- package/dist/internal/animations/uui-shake.js +7 -9
- package/dist/internal/animations/uui-shake.js.map +1 -1
- package/dist/internal/events/UUIEvent.js +13 -9
- package/dist/internal/events/UUIEvent.js.map +1 -1
- package/dist/internal/events/UUIFormControlEvent.d.ts +2 -2
- package/dist/internal/events/UUIFormControlEvent.js +18 -14
- package/dist/internal/events/UUIFormControlEvent.js.map +1 -1
- package/dist/internal/events/UUISelectableEvent.js +19 -15
- package/dist/internal/events/UUISelectableEvent.js.map +1 -1
- package/dist/internal/mixins/ActiveMixin.js +24 -24
- package/dist/internal/mixins/ActiveMixin.js.map +1 -1
- package/dist/internal/mixins/FormControlMixin.d.ts +3 -3
- package/dist/internal/mixins/FormControlMixin.js +276 -339
- package/dist/internal/mixins/FormControlMixin.js.map +1 -1
- package/dist/internal/mixins/FormControlWithBasicsMixin.d.ts +19 -3
- package/dist/internal/mixins/FormControlWithBasicsMixin.js +54 -60
- package/dist/internal/mixins/FormControlWithBasicsMixin.js.map +1 -1
- package/dist/internal/mixins/LabelMixin.js +54 -57
- package/dist/internal/mixins/LabelMixin.js.map +1 -1
- package/dist/internal/mixins/PopoverTargetMixin.js +43 -47
- package/dist/internal/mixins/PopoverTargetMixin.js.map +1 -1
- package/dist/internal/mixins/SelectOnlyMixin.js +39 -33
- package/dist/internal/mixins/SelectOnlyMixin.js.map +1 -1
- package/dist/internal/mixins/SelectableMixin.js +109 -121
- package/dist/internal/mixins/SelectableMixin.js.map +1 -1
- package/dist/internal/registration/index.js +17 -20
- package/dist/internal/registration/index.js.map +1 -1
- package/dist/internal/types/InterfaceColor.js +11 -10
- package/dist/internal/types/InterfaceColor.js.map +1 -1
- package/dist/internal/types/InterfaceHeading.js +12 -11
- package/dist/internal/types/InterfaceHeading.js.map +1 -1
- package/dist/internal/types/InterfaceLook.js +11 -10
- package/dist/internal/types/InterfaceLook.js.map +1 -1
- package/dist/internal/utils/Timer.js +56 -61
- package/dist/internal/utils/Timer.js.map +1 -1
- package/dist/internal/utils/color.js +105 -74
- package/dist/internal/utils/color.js.map +1 -1
- package/dist/internal/utils/drag.js +27 -36
- package/dist/internal/utils/drag.js.map +1 -1
- package/dist/internal/utils/findAncestorByAttributeValue.js +22 -19
- package/dist/internal/utils/findAncestorByAttributeValue.js.map +1 -1
- package/dist/internal/utils/math.js +23 -13
- package/dist/internal/utils/math.js.map +1 -1
- package/dist/internal/utils/slotHasContent.js +6 -5
- package/dist/internal/utils/slotHasContent.js.map +1 -1
- package/dist/internal/version.js +10 -16
- package/dist/internal/version.js.map +1 -1
- package/dist/package.json.js +6 -5
- package/dist/package.json.js.map +1 -1
- package/dist/styles/uui-font.css +1 -1
- package/dist/styles/uui-text.css +1 -1
- package/dist/styles/uui-text.css.js +6 -5
- package/dist/styles/uui-text.css.js.map +1 -1
- package/dist/styles/uui-text.styles.js +7 -6
- package/dist/styles/uui-text.styles.js.map +1 -1
- package/dist/themes/dark.css +1 -1
- package/dist/themes/high-contrast.css +1 -1
- package/dist/themes/light.css +1 -1
- package/package.json +26 -25
- package/vscode.html-custom-data.json +36 -7
- package/dist/index.js.map +0 -1
|
@@ -1,134 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
throw TypeError(msg);
|
|
3
|
-
};
|
|
4
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
-
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
|
-
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
9
|
-
var _UUIColorSwatchElement_instances, computeContrast_fn, selectButtonChanged_fn, contrast_fn, hexToRgb_fn, _rgbToHex;
|
|
10
|
-
import { state, property } from "lit/decorators.js";
|
|
11
|
-
import { html, nothing, css, LitElement } from "lit";
|
|
12
|
-
import { ref } from "lit/directives/ref.js";
|
|
13
|
-
import { classMap } from "lit/directives/class-map.js";
|
|
14
|
-
import { styleMap } from "lit/directives/style-map.js";
|
|
15
|
-
import "../icon-registry-essential/svgs/iconAdd.js";
|
|
16
|
-
import "../icon-registry-essential/svgs/iconAlert.js";
|
|
17
|
-
import "../icon-registry-essential/svgs/iconAttachment.js";
|
|
18
|
-
import "../icon-registry-essential/svgs/iconCalendar.js";
|
|
19
|
-
import { iconCheck } from "../icon-registry-essential/svgs/iconCheck.js";
|
|
20
|
-
import "../icon-registry-essential/svgs/iconClipboard.js";
|
|
21
|
-
import "../icon-registry-essential/svgs/iconCode.js";
|
|
22
|
-
import "../icon-registry-essential/svgs/iconColorPicker.js";
|
|
23
|
-
import "../icon-registry-essential/svgs/iconCopy.js";
|
|
24
|
-
import "../icon-registry-essential/svgs/iconDelete.js";
|
|
25
|
-
import "../icon-registry-essential/svgs/iconDocument.js";
|
|
26
|
-
import "../icon-registry-essential/svgs/iconDownload.js";
|
|
27
|
-
import "../icon-registry-essential/svgs/iconDrag.js";
|
|
28
|
-
import "../icon-registry-essential/svgs/iconEdit.js";
|
|
29
|
-
import "../icon-registry-essential/svgs/iconFavorite.js";
|
|
30
|
-
import "../icon-registry-essential/svgs/iconFolder.js";
|
|
31
|
-
import "../icon-registry-essential/svgs/iconForbidden.js";
|
|
32
|
-
import "../icon-registry-essential/svgs/iconInfo.js";
|
|
33
|
-
import "../icon-registry-essential/svgs/iconLink.js";
|
|
34
|
-
import "../icon-registry-essential/svgs/iconLock.js";
|
|
35
|
-
import "../icon-registry-essential/svgs/iconPause.js";
|
|
36
|
-
import "../icon-registry-essential/svgs/iconPicture.js";
|
|
37
|
-
import "../icon-registry-essential/svgs/iconPlay.js";
|
|
38
|
-
import "../icon-registry-essential/svgs/iconRemove.js";
|
|
39
|
-
import "../icon-registry-essential/svgs/iconSearch.js";
|
|
40
|
-
import "../icon-registry-essential/svgs/iconSee.js";
|
|
41
|
-
import "../icon-registry-essential/svgs/iconSettings.js";
|
|
42
|
-
import "../icon-registry-essential/svgs/iconSubtract.js";
|
|
43
|
-
import "../icon-registry-essential/svgs/iconSync.js";
|
|
44
|
-
import "../icon-registry-essential/svgs/iconUnlock.js";
|
|
45
|
-
import "../icon-registry-essential/svgs/iconUnsee.js";
|
|
46
|
-
import "../icon-registry-essential/svgs/iconWand.js";
|
|
47
|
-
import "../icon-registry-essential/svgs/iconWrong.js";
|
|
1
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
48
2
|
import { ActiveMixin } from "../../internal/mixins/ActiveMixin.js";
|
|
49
3
|
import { LabelMixin } from "../../internal/mixins/LabelMixin.js";
|
|
50
4
|
import { SelectableMixin } from "../../internal/mixins/SelectableMixin.js";
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
5
|
+
import { iconCheck } from "../icon-registry-essential/svgs/iconCheck.js";
|
|
6
|
+
import { LitElement, css, html, nothing } from "lit";
|
|
7
|
+
import { property, state } from "lit/decorators.js";
|
|
8
|
+
import { styleMap } from "lit/directives/style-map.js";
|
|
9
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
10
|
+
import { ref } from "lit/directives/ref.js";
|
|
11
|
+
//#region src/components/color-swatch/color-swatch.element.ts
|
|
12
|
+
/**
|
|
13
|
+
* Color swatch, can have label and be selectable, disabled or readonly.
|
|
14
|
+
*
|
|
15
|
+
* @element uui-color-swatch
|
|
16
|
+
* @cssprop --uui-swatch-size - The size of the swatch.
|
|
17
|
+
* @cssprop --uui-swatch-border-width - The width of the border.
|
|
18
|
+
* @cssprop --uui-swatch-color - The color of the swatch.
|
|
19
|
+
* @slot label - Default slot for the label.
|
|
20
|
+
*/
|
|
21
|
+
var UUIColorSwatchElement = class extends LabelMixin("label", SelectableMixin(ActiveMixin(LitElement))) {
|
|
22
|
+
/**
|
|
23
|
+
* Value of the swatch. This will become the color value if color is left undefined, see the property `color` for more details.
|
|
24
|
+
*/
|
|
25
|
+
get value() {
|
|
26
|
+
return this._value ?? "";
|
|
27
|
+
}
|
|
28
|
+
set value(newValue) {
|
|
29
|
+
const oldValue = this._value;
|
|
30
|
+
this._value = newValue;
|
|
31
|
+
this.requestUpdate("value", oldValue);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Color of the swatch. Should be a valid hex, hexa, rgb, rgba, hsl or hsla string. Should fulfill this [css spec](https://www.w3.org/TR/css-color-4/#color-type). If not provided element will look at its text content.
|
|
35
|
+
*/
|
|
36
|
+
get color() {
|
|
37
|
+
return this._color;
|
|
38
|
+
}
|
|
39
|
+
set color(newValue) {
|
|
40
|
+
const oldValue = this._color;
|
|
41
|
+
this._color = newValue;
|
|
42
|
+
this.requestUpdate("color", oldValue);
|
|
43
|
+
}
|
|
44
|
+
constructor() {
|
|
45
|
+
super();
|
|
46
|
+
this._contrast = void 0;
|
|
47
|
+
this.disabled = false;
|
|
48
|
+
this.readonly = false;
|
|
49
|
+
this.showLabel = false;
|
|
50
|
+
this.#rgbToHex = (r, g, b, hash = "") => hash + ((r << 16) + (g << 8) + b).toString(16).padStart(6, "0");
|
|
51
|
+
this.addEventListener("click", this._setAriaAttributes);
|
|
52
|
+
}
|
|
53
|
+
_setAriaAttributes() {
|
|
54
|
+
if (this.selectable) this.setAttribute("aria-checked", this.selected.toString());
|
|
55
|
+
}
|
|
56
|
+
firstUpdated() {
|
|
57
|
+
this._setAriaAttributes();
|
|
58
|
+
}
|
|
59
|
+
willUpdate(changedProperties) {
|
|
60
|
+
if (changedProperties.has("disabled") || changedProperties.has("readonly")) {
|
|
61
|
+
if (this.selectable) {
|
|
62
|
+
this.selectable = !this.disabled && !this.readonly;
|
|
63
|
+
this.deselectable = !this.disabled && !this.readonly;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (changedProperties.has("selectable") || changedProperties.has("selected")) this._setAriaAttributes();
|
|
67
|
+
if (changedProperties.has("value") || changedProperties.has("color")) this.#computeContrast();
|
|
68
|
+
}
|
|
69
|
+
#computeContrast() {
|
|
70
|
+
const color = this.color ?? this.value;
|
|
71
|
+
if (color.startsWith("#")) this._contrast = this.#contrast(color) === "light" ? "light" : "dark";
|
|
72
|
+
else if (color.startsWith("rgb")) {
|
|
73
|
+
const [r, g, b, a] = color.match(/[.\d]+/g)?.map(Number) ?? [
|
|
74
|
+
0,
|
|
75
|
+
0,
|
|
76
|
+
0
|
|
77
|
+
];
|
|
78
|
+
if (a <= .5) this._contrast = "light";
|
|
79
|
+
else this._contrast = this.#contrast(this.#rgbToHex(r, g, b)) === "light" ? "light" : "dark";
|
|
80
|
+
} else this._contrast = void 0;
|
|
81
|
+
}
|
|
82
|
+
focus(options) {
|
|
83
|
+
this.selectableTarget?.focus(options);
|
|
84
|
+
}
|
|
85
|
+
#selectButtonChanged(button) {
|
|
86
|
+
this.selectableTarget = button || this;
|
|
87
|
+
}
|
|
88
|
+
#contrast(hex) {
|
|
89
|
+
const rgb = this.#hexToRgb(hex);
|
|
90
|
+
return Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1e3) <= 180 ? "dark" : "light";
|
|
91
|
+
}
|
|
92
|
+
#hexToRgb(hex) {
|
|
93
|
+
hex = hex.startsWith("#") ? hex.slice(1) : hex;
|
|
94
|
+
if (hex.length === 3) hex = Array.from(hex).reduce((str, x) => str + x + x, "");
|
|
95
|
+
const bigint = Number.parseInt(hex, 16);
|
|
96
|
+
return [
|
|
97
|
+
bigint >> 16 & 255,
|
|
98
|
+
bigint >> 8 & 255,
|
|
99
|
+
bigint & 255
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
#rgbToHex;
|
|
103
|
+
render() {
|
|
104
|
+
const classes = { [`color-swatch--${this._contrast}`]: this._contrast !== void 0 };
|
|
105
|
+
const colorStr = `var(--uui-swatch-color, ${this.color ?? this.value})`;
|
|
106
|
+
return html`
|
|
122
107
|
<button
|
|
123
108
|
id="swatch"
|
|
124
|
-
${ref(
|
|
109
|
+
${ref(this.#selectButtonChanged)}
|
|
125
110
|
aria-label=${this.label}
|
|
126
111
|
?disabled="${this.disabled}"
|
|
127
112
|
title="${this.label}">
|
|
128
113
|
<div
|
|
129
|
-
class="color-swatch color-swatch--transparent-bg ${classMap(
|
|
130
|
-
classes
|
|
131
|
-
)}">
|
|
114
|
+
class="color-swatch color-swatch--transparent-bg ${classMap(classes)}">
|
|
132
115
|
<div
|
|
133
116
|
class="color-swatch__color"
|
|
134
117
|
style=${styleMap({ background: colorStr })}></div>
|
|
@@ -141,63 +124,29 @@ const _UUIColorSwatchElement = class _UUIColorSwatchElement extends LabelMixin(
|
|
|
141
124
|
${this._renderWithLabel()}
|
|
142
125
|
</button>
|
|
143
126
|
`;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
127
|
+
}
|
|
128
|
+
_renderWithLabel() {
|
|
129
|
+
if (!this.showLabel) return nothing;
|
|
130
|
+
return html`<div class="color-swatch__label">
|
|
148
131
|
<strong>${this.renderLabel()}</strong>
|
|
149
132
|
${this.value}
|
|
150
133
|
</div>`;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
computeContrast_fn = function() {
|
|
155
|
-
const color = this.color ?? this.value;
|
|
156
|
-
if (color.startsWith("#")) {
|
|
157
|
-
this._contrast = __privateMethod(this, _UUIColorSwatchElement_instances, contrast_fn).call(this, color) === "light" ? "light" : "dark";
|
|
158
|
-
} else if (color.startsWith("rgb")) {
|
|
159
|
-
const [r, g, b, a] = color.match(/[.\d]+/g)?.map(Number) ?? [0, 0, 0];
|
|
160
|
-
if (a <= 0.5) {
|
|
161
|
-
this._contrast = "light";
|
|
162
|
-
} else {
|
|
163
|
-
this._contrast = __privateMethod(this, _UUIColorSwatchElement_instances, contrast_fn).call(this, __privateGet(this, _rgbToHex).call(this, r, g, b)) === "light" ? "light" : "dark";
|
|
164
|
-
}
|
|
165
|
-
} else {
|
|
166
|
-
this._contrast = void 0;
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
selectButtonChanged_fn = function(button) {
|
|
170
|
-
this.selectableTarget = button || this;
|
|
171
|
-
};
|
|
172
|
-
contrast_fn = function(hex) {
|
|
173
|
-
const rgb = __privateMethod(this, _UUIColorSwatchElement_instances, hexToRgb_fn).call(this, hex);
|
|
174
|
-
const o = Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1e3);
|
|
175
|
-
return o <= 180 ? "dark" : "light";
|
|
176
|
-
};
|
|
177
|
-
hexToRgb_fn = function(hex) {
|
|
178
|
-
hex = hex.startsWith("#") ? hex.slice(1) : hex;
|
|
179
|
-
if (hex.length === 3) {
|
|
180
|
-
hex = Array.from(hex).reduce((str, x) => str + x + x, "");
|
|
181
|
-
}
|
|
182
|
-
const bigint = Number.parseInt(hex, 16);
|
|
183
|
-
const r = bigint >> 16 & 255;
|
|
184
|
-
const g = bigint >> 8 & 255;
|
|
185
|
-
const b = bigint & 255;
|
|
186
|
-
return [r, g, b];
|
|
187
|
-
};
|
|
188
|
-
_rgbToHex = new WeakMap();
|
|
189
|
-
_UUIColorSwatchElement.styles = [
|
|
190
|
-
css`
|
|
134
|
+
}
|
|
135
|
+
static {
|
|
136
|
+
this.styles = [css`
|
|
191
137
|
:host {
|
|
192
138
|
position: relative;
|
|
193
139
|
display: inline-flex;
|
|
194
140
|
align-items: center;
|
|
195
141
|
justify-content: center;
|
|
196
142
|
box-sizing: border-box;
|
|
197
|
-
transition: box-shadow 100ms ease-out;
|
|
198
143
|
flex-direction: column;
|
|
199
144
|
}
|
|
200
145
|
|
|
146
|
+
:host([show-label]) {
|
|
147
|
+
width: 120px;
|
|
148
|
+
}
|
|
149
|
+
|
|
201
150
|
:host(*),
|
|
202
151
|
* {
|
|
203
152
|
/* TODO: implement globally shared outline style */
|
|
@@ -211,18 +160,25 @@ _UUIColorSwatchElement.styles = [
|
|
|
211
160
|
|
|
212
161
|
:host(:focus:not([disabled])) #swatch {
|
|
213
162
|
outline-color: var(--uui-color-focus);
|
|
214
|
-
outline-width:
|
|
163
|
+
outline-width: 2px;
|
|
215
164
|
outline-style: solid;
|
|
216
165
|
outline-offset: var(--uui-swatch-border-width, 1px);
|
|
217
166
|
}
|
|
218
167
|
|
|
168
|
+
:host([selected]:focus:not([disabled])) #swatch {
|
|
169
|
+
outline-offset: 2px;
|
|
170
|
+
}
|
|
171
|
+
|
|
219
172
|
:host([selectable]) #swatch {
|
|
220
173
|
cursor: pointer;
|
|
221
174
|
}
|
|
222
175
|
|
|
176
|
+
:host(:not([selectable]):not([readonly]):not([disabled])) #swatch {
|
|
177
|
+
cursor: pointer;
|
|
178
|
+
}
|
|
179
|
+
|
|
223
180
|
:host([disabled]) {
|
|
224
181
|
cursor: not-allowed;
|
|
225
|
-
opacity: 0.5;
|
|
226
182
|
}
|
|
227
183
|
|
|
228
184
|
:host([readonly]) {
|
|
@@ -237,13 +193,26 @@ _UUIColorSwatchElement.styles = [
|
|
|
237
193
|
padding: 0;
|
|
238
194
|
margin: 0;
|
|
239
195
|
text-align: left;
|
|
240
|
-
border:
|
|
241
|
-
|
|
196
|
+
border-radius: var(--uui-border-radius-2);
|
|
197
|
+
overflow: hidden;
|
|
198
|
+
width: 100%;
|
|
199
|
+
}
|
|
200
|
+
:host(:not([show-label])) #swatch {
|
|
201
|
+
border-radius: var(--uui-size-5);
|
|
202
|
+
border: 1px solid var(--uui-color-border);
|
|
242
203
|
}
|
|
243
204
|
|
|
244
205
|
:host(:not([selectable])) #swatch:focus {
|
|
245
206
|
outline: none;
|
|
246
207
|
}
|
|
208
|
+
:host(:not([selectable]):not([readonly]):not([disabled])) #swatch:hover {
|
|
209
|
+
border-color: var(--uui-color-border-standalone);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
:host([readonly]) #swatch,
|
|
213
|
+
:host([disabled]) #swatch {
|
|
214
|
+
background-color: var(--uui-color-disabled-standalone);
|
|
215
|
+
}
|
|
247
216
|
|
|
248
217
|
:host([selectable]) #swatch::after {
|
|
249
218
|
content: '';
|
|
@@ -256,11 +225,14 @@ _UUIColorSwatchElement.styles = [
|
|
|
256
225
|
border: var(--uui-swatch-border-width, 2px) solid
|
|
257
226
|
var(--uui-color-selected);
|
|
258
227
|
border-radius: calc(
|
|
259
|
-
var(--uui-
|
|
228
|
+
var(--uui-size-5) + var(--uui-swatch-border-width, 1px)
|
|
260
229
|
);
|
|
261
230
|
transition: opacity 100ms ease-out;
|
|
262
231
|
opacity: 0;
|
|
263
232
|
}
|
|
233
|
+
:host([selectable][show-label]) #swatch::after {
|
|
234
|
+
border-radius: var(--uui-border-radius-2);
|
|
235
|
+
}
|
|
264
236
|
:host([selectable]:not([disabled]):hover) #swatch::after {
|
|
265
237
|
opacity: 0.33;
|
|
266
238
|
}
|
|
@@ -284,8 +256,9 @@ _UUIColorSwatchElement.styles = [
|
|
|
284
256
|
}
|
|
285
257
|
|
|
286
258
|
:host([show-label]) .color-swatch {
|
|
287
|
-
width:
|
|
259
|
+
width: 100%;
|
|
288
260
|
height: 50px;
|
|
261
|
+
margin: 0;
|
|
289
262
|
}
|
|
290
263
|
|
|
291
264
|
.color-swatch.color-swatch--transparent-bg {
|
|
@@ -304,13 +277,41 @@ _UUIColorSwatchElement.styles = [
|
|
|
304
277
|
.color-swatch__color {
|
|
305
278
|
width: 100%;
|
|
306
279
|
height: 100%;
|
|
280
|
+
position: relative;
|
|
281
|
+
overflow: hidden;
|
|
282
|
+
border-radius: inherit;
|
|
283
|
+
}
|
|
284
|
+
.color-swatch__color::after {
|
|
285
|
+
content: '';
|
|
286
|
+
position: absolute;
|
|
287
|
+
inset: 0;
|
|
307
288
|
border: 1px solid rgba(0, 0, 0, 0.125);
|
|
308
289
|
border-radius: inherit;
|
|
309
|
-
box-sizing: border-box;
|
|
310
290
|
}
|
|
311
291
|
|
|
312
292
|
:host([show-label]) .color-swatch__color {
|
|
313
|
-
border-radius:
|
|
293
|
+
border-radius: var(--uui-border-radius-2) var(--uui-border-radius-2) 0 0;
|
|
294
|
+
}
|
|
295
|
+
:host([show-label][selectable][selected]:not([disabled]):not([readonly]))
|
|
296
|
+
.color-swatch__color::after {
|
|
297
|
+
border-top: 2px solid rgba(255, 255, 255, 0.25);
|
|
298
|
+
border-left: 2px solid rgba(255, 255, 255, 0.25);
|
|
299
|
+
border-right: 2px solid rgba(255, 255, 255, 0.25);
|
|
300
|
+
}
|
|
301
|
+
:host([show-label][readonly]:not([disabled]))
|
|
302
|
+
.color-swatch__color::after {
|
|
303
|
+
border: 2px solid var(--uui-color-border-standalone);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
:host([readonly]:not([disabled])) .color-swatch__color {
|
|
307
|
+
border-color: transparent;
|
|
308
|
+
}
|
|
309
|
+
:host([disabled]) .color-swatch__color {
|
|
310
|
+
opacity: 0.6;
|
|
311
|
+
}
|
|
312
|
+
:host([disabled]) .color-swatch.color-swatch--transparent-bg {
|
|
313
|
+
background-image: none;
|
|
314
|
+
background-color: var(--uui-color-border-standalone);
|
|
314
315
|
}
|
|
315
316
|
|
|
316
317
|
.color-swatch__check {
|
|
@@ -339,13 +340,17 @@ _UUIColorSwatchElement.styles = [
|
|
|
339
340
|
opacity: 1;
|
|
340
341
|
}
|
|
341
342
|
|
|
343
|
+
.color-swatch__check > svg {
|
|
344
|
+
stroke-width: 2.5;
|
|
345
|
+
}
|
|
346
|
+
|
|
342
347
|
slot[name='label']::slotted(*),
|
|
343
348
|
.label {
|
|
344
349
|
font-size: var(--uui-size-4);
|
|
345
350
|
}
|
|
346
351
|
|
|
347
352
|
.color-swatch__label {
|
|
348
|
-
|
|
353
|
+
width: 100%;
|
|
349
354
|
box-sizing: border-box;
|
|
350
355
|
padding: var(--uui-size-space-1) var(--uui-size-space-2);
|
|
351
356
|
line-height: 1.5;
|
|
@@ -353,38 +358,47 @@ _UUIColorSwatchElement.styles = [
|
|
|
353
358
|
flex-direction: column;
|
|
354
359
|
background: white;
|
|
355
360
|
border: 1px solid var(--uui-color-border);
|
|
356
|
-
border-
|
|
361
|
+
border-top: none;
|
|
362
|
+
border-radius: 0 0 var(--uui-border-radius-2) var(--uui-border-radius-2);
|
|
357
363
|
font-size: var(--uui-size-4, 12px);
|
|
358
364
|
}
|
|
359
365
|
|
|
366
|
+
:host(:not([selectable]):not([readonly]):not([disabled]))
|
|
367
|
+
.color-swatch__label {
|
|
368
|
+
color: var(--uui-color-interactive);
|
|
369
|
+
}
|
|
370
|
+
:host(:not([selectable]):not([readonly]):not([disabled]):hover)
|
|
371
|
+
.color-swatch__label {
|
|
372
|
+
color: var(--uui-color-interactive-emphasis);
|
|
373
|
+
border-color: var(--uui-color-border-standalone);
|
|
374
|
+
}
|
|
375
|
+
|
|
360
376
|
.color-swatch__label strong {
|
|
361
377
|
overflow: hidden;
|
|
362
378
|
text-overflow: ellipsis;
|
|
363
379
|
white-space: nowrap;
|
|
364
380
|
box-sizing: border-box;
|
|
365
381
|
}
|
|
366
|
-
`
|
|
367
|
-
|
|
368
|
-
let UUIColorSwatchElement = _UUIColorSwatchElement;
|
|
369
|
-
__decorateClass([
|
|
370
|
-
state()
|
|
371
|
-
], UUIColorSwatchElement.prototype, "_contrast", 2);
|
|
372
|
-
__decorateClass([
|
|
373
|
-
property()
|
|
374
|
-
], UUIColorSwatchElement.prototype, "value", 1);
|
|
375
|
-
__decorateClass([
|
|
376
|
-
property()
|
|
377
|
-
], UUIColorSwatchElement.prototype, "color", 1);
|
|
378
|
-
__decorateClass([
|
|
379
|
-
property({ type: Boolean, reflect: true })
|
|
380
|
-
], UUIColorSwatchElement.prototype, "disabled", 2);
|
|
381
|
-
__decorateClass([
|
|
382
|
-
property({ type: Boolean, reflect: true })
|
|
383
|
-
], UUIColorSwatchElement.prototype, "readonly", 2);
|
|
384
|
-
__decorateClass([
|
|
385
|
-
property({ type: Boolean, attribute: "show-label", reflect: true })
|
|
386
|
-
], UUIColorSwatchElement.prototype, "showLabel", 2);
|
|
387
|
-
export {
|
|
388
|
-
UUIColorSwatchElement
|
|
382
|
+
`];
|
|
383
|
+
}
|
|
389
384
|
};
|
|
390
|
-
|
|
385
|
+
__decorate([state()], UUIColorSwatchElement.prototype, "_contrast", void 0);
|
|
386
|
+
__decorate([property()], UUIColorSwatchElement.prototype, "value", null);
|
|
387
|
+
__decorate([property()], UUIColorSwatchElement.prototype, "color", null);
|
|
388
|
+
__decorate([property({
|
|
389
|
+
type: Boolean,
|
|
390
|
+
reflect: true
|
|
391
|
+
})], UUIColorSwatchElement.prototype, "disabled", void 0);
|
|
392
|
+
__decorate([property({
|
|
393
|
+
type: Boolean,
|
|
394
|
+
reflect: true
|
|
395
|
+
})], UUIColorSwatchElement.prototype, "readonly", void 0);
|
|
396
|
+
__decorate([property({
|
|
397
|
+
type: Boolean,
|
|
398
|
+
attribute: "show-label",
|
|
399
|
+
reflect: true
|
|
400
|
+
})], UUIColorSwatchElement.prototype, "showLabel", void 0);
|
|
401
|
+
//#endregion
|
|
402
|
+
export { UUIColorSwatchElement };
|
|
403
|
+
|
|
404
|
+
//# sourceMappingURL=color-swatch.element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-swatch.element.js","sources":["../../../src/components/color-swatch/color-swatch.element.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { ref } from 'lit/directives/ref.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { iconCheck } from '../icon-registry-essential/svgs/index.js';\nimport {\n ActiveMixin,\n LabelMixin,\n SelectableMixin,\n} from '../../internal/mixins/index.js';\n\n/**\n * Color swatch, can have label and be selectable, disabled or readonly.\n *\n * @element uui-color-swatch\n * @cssprop --uui-swatch-size - The size of the swatch.\n * @cssprop --uui-swatch-border-width - The width of the border.\n * @cssprop --uui-swatch-color - The width of the border.\n * @slot label - Default slot for the label.\n */\nexport class UUIColorSwatchElement extends LabelMixin(\n 'label',\n SelectableMixin(ActiveMixin(LitElement)),\n) {\n @state()\n private _contrast: 'dark' | 'light' | undefined = undefined;\n\n /**\n * Value of the swatch. This will become the color value if color is left undefined, see the property `color` for more details.\n */\n @property()\n get value(): string {\n return this._value ?? '';\n }\n set value(newValue: string) {\n const oldValue = this._value;\n this._value = newValue;\n this.requestUpdate('value', oldValue);\n }\n private _value?: string;\n\n /**\n * Color of the swatch. Should be a valid hex, hexa, rgb, rgba, hsl or hsla string. Should fulfill this [css spec](https://www.w3.org/TR/css-color-4/#color-type). If not provided element will look at its text content.\n */\n @property()\n get color(): string | undefined {\n return this._color;\n }\n set color(newValue: string) {\n const oldValue = this._color;\n this._color = newValue;\n this.requestUpdate('color', oldValue);\n }\n private _color?: string;\n\n /**\n * Sets the swatch to disabled.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Sets the swatch to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n readonly: boolean = false;\n\n /**\n * When true shows element label below the color checkbox\n *\n * @attr\n * @memberof UUIColorSwatchElement\n */\n @property({ type: Boolean, attribute: 'show-label', reflect: true })\n showLabel = false;\n\n constructor() {\n super();\n this.addEventListener('click', this._setAriaAttributes);\n }\n\n private _setAriaAttributes() {\n if (this.selectable)\n this.setAttribute('aria-checked', this.selected.toString());\n }\n\n firstUpdated() {\n this._setAriaAttributes();\n }\n\n willUpdate(changedProperties: Map<string, any>) {\n if (\n changedProperties.has('disabled') ||\n changedProperties.has('readonly')\n ) {\n if (this.selectable) {\n this.selectable = !this.disabled && !this.readonly;\n this.deselectable = !this.disabled && !this.readonly;\n }\n }\n if (\n changedProperties.has('selectable') ||\n changedProperties.has('selected')\n ) {\n this._setAriaAttributes();\n }\n if (changedProperties.has('value') || changedProperties.has('color')) {\n this.#computeContrast();\n }\n }\n\n #computeContrast() {\n const color = this.color ?? this.value;\n if (color.startsWith('#')) {\n this._contrast = this.#contrast(color) === 'light' ? 'light' : 'dark';\n } else if (color.startsWith('rgb')) {\n const [r, g, b, a] = color.match(/[.\\d]+/g)?.map(Number) ?? [0, 0, 0];\n if (a <= 0.5) {\n this._contrast = 'light';\n } else {\n this._contrast =\n this.#contrast(this.#rgbToHex(r, g, b)) === 'light'\n ? 'light'\n : 'dark';\n }\n } else {\n this._contrast = undefined;\n }\n }\n\n focus(options?: FocusOptions | undefined): void {\n (this.selectableTarget as HTMLElement | undefined)?.focus(options);\n }\n\n #selectButtonChanged(button?: Element | undefined) {\n this.selectableTarget = button || this;\n }\n\n #contrast(hex: string): string {\n const rgb = this.#hexToRgb(hex);\n const o = Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000);\n\n return o <= 180 ? 'dark' : 'light';\n }\n\n #hexToRgb(hex: string): number[] {\n hex = hex.startsWith('#') ? hex.slice(1) : hex;\n if (hex.length === 3) {\n hex = Array.from(hex).reduce((str, x) => str + x + x, ''); // 123 -> 112233\n }\n\n const bigint = Number.parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return [r, g, b];\n }\n\n readonly #rgbToHex = (\n r: number,\n g: number,\n b: number,\n hash: '#' | '' = '',\n ): string => hash + ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');\n\n render() {\n const classes = {\n [`color-swatch--${this._contrast}`]: this._contrast !== undefined,\n };\n const colorStr = `var(--uui-swatch-color, ${this.color ?? this.value})`;\n return html`\n <button\n id=\"swatch\"\n ${ref(this.#selectButtonChanged)}\n aria-label=${this.label}\n ?disabled=\"${this.disabled}\"\n title=\"${this.label}\">\n <div\n class=\"color-swatch color-swatch--transparent-bg ${classMap(\n classes,\n )}\">\n <div\n class=\"color-swatch__color\"\n style=${styleMap({ background: colorStr })}></div>\n <div\n class=\"color-swatch__check\"\n style=${styleMap({ color: colorStr })}>\n ${iconCheck}\n </div>\n </div>\n ${this._renderWithLabel()}\n </button>\n `;\n }\n\n private _renderWithLabel() {\n if (!this.showLabel) return nothing;\n return html`<div class=\"color-swatch__label\">\n <strong>${this.renderLabel()}</strong>\n ${this.value}\n </div>`;\n }\n\n static override readonly styles = [\n css`\n :host {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n transition: box-shadow 100ms ease-out;\n flex-direction: column;\n }\n\n :host(*),\n * {\n /* TODO: implement globally shared outline style */\n outline-color: var(--uui-color-focus);\n outline-offset: 4px;\n }\n\n :host(:focus-within:not([disabled])) {\n outline: none;\n }\n\n :host(:focus:not([disabled])) #swatch {\n outline-color: var(--uui-color-focus);\n outline-width: var(--uui-swatch-border-width, 1px);\n outline-style: solid;\n outline-offset: var(--uui-swatch-border-width, 1px);\n }\n\n :host([selectable]) #swatch {\n cursor: pointer;\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n :host([readonly]) {\n cursor: default;\n }\n\n #swatch {\n cursor: inherit;\n outline: none;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n text-align: left;\n border: 1px solid #ccc;\n border-radius: var(--uui-size-4);\n }\n\n :host(:not([selectable])) #swatch:focus {\n outline: none;\n }\n\n :host([selectable]) #swatch::after {\n content: '';\n position: absolute;\n pointer-events: none;\n inset: calc(var(--uui-swatch-border-width, 1px) * -1);\n width: calc(100% + calc(var(--uui-swatch-border-width, 1px) * 2));\n height: calc(100% + calc(var(--uui-swatch-border-width, 1px) * 2));\n box-sizing: border-box;\n border: var(--uui-swatch-border-width, 2px) solid\n var(--uui-color-selected);\n border-radius: calc(\n var(--uui-border-radius) + var(--uui-swatch-border-width, 1px)\n );\n transition: opacity 100ms ease-out;\n opacity: 0;\n }\n :host([selectable]:not([disabled]):hover) #swatch::after {\n opacity: 0.33;\n }\n :host([selectable][selected]:not([disabled]):hover) #swatch::after {\n opacity: 0.66;\n }\n :host([selectable][selected]:not([disabled])) #swatch::after {\n opacity: 1;\n }\n\n .color-swatch {\n position: relative;\n width: var(--uui-swatch-size, 25px);\n height: var(--uui-swatch-size, 25px);\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 2px;\n }\n\n :host([show-label]) .color-swatch {\n width: 120px;\n height: 50px;\n }\n\n .color-swatch.color-swatch--transparent-bg {\n background-image:\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%);\n background-size: 10px 10px;\n background-position:\n 0 0,\n 0 0,\n -5px -5px,\n 5px 5px;\n }\n .color-swatch__color {\n width: 100%;\n height: 100%;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: inherit;\n box-sizing: border-box;\n }\n\n :host([show-label]) .color-swatch__color {\n border-radius: 3px 3px 0 0;\n }\n\n .color-swatch__check {\n position: absolute;\n vertical-align: middle;\n width: calc(var(--uui-swatch-size, 25px) / 2);\n height: calc(var(--uui-swatch-size, 25px) / 2);\n line-height: 0;\n filter: invert(1) grayscale(1) contrast(9);\n pointer-events: none;\n opacity: 0;\n border-radius: inherit;\n }\n\n .color-swatch.color-swatch--light .color-swatch__check {\n color: #000 !important;\n filter: none;\n }\n\n .color-swatch.color-swatch--dark .color-swatch__check {\n color: #fff !important;\n filter: none;\n }\n\n :host([selected]) .color-swatch__check {\n opacity: 1;\n }\n\n slot[name='label']::slotted(*),\n .label {\n font-size: var(--uui-size-4);\n }\n\n .color-swatch__label {\n max-width: 120px;\n box-sizing: border-box;\n padding: var(--uui-size-space-1) var(--uui-size-space-2);\n line-height: 1.5;\n display: flex;\n flex-direction: column;\n background: white;\n border: 1px solid var(--uui-color-border);\n border-radius: 0 0 3px 3px;\n font-size: var(--uui-size-4, 12px);\n }\n\n .color-swatch__label strong {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n box-sizing: border-box;\n }\n `,\n ];\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color-swatch.element.js","names":["#computeContrast","#contrast","#rgbToHex","#hexToRgb","#selectButtonChanged"],"sources":["../../../src/components/color-swatch/color-swatch.element.ts"],"sourcesContent":["import { property, state } from 'lit/decorators.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { ref } from 'lit/directives/ref.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport {\n ActiveMixin,\n LabelMixin,\n SelectableMixin,\n} from '../../internal/mixins/index.js';\nimport { iconCheck } from '../icon-registry-essential/svgs/iconCheck.js';\n\n/**\n * Color swatch, can have label and be selectable, disabled or readonly.\n *\n * @element uui-color-swatch\n * @cssprop --uui-swatch-size - The size of the swatch.\n * @cssprop --uui-swatch-border-width - The width of the border.\n * @cssprop --uui-swatch-color - The color of the swatch.\n * @slot label - Default slot for the label.\n */\nexport class UUIColorSwatchElement extends LabelMixin(\n 'label',\n SelectableMixin(ActiveMixin(LitElement)),\n) {\n @state()\n private _contrast: 'dark' | 'light' | undefined = undefined;\n\n /**\n * Value of the swatch. This will become the color value if color is left undefined, see the property `color` for more details.\n */\n @property()\n get value(): string {\n return this._value ?? '';\n }\n set value(newValue: string) {\n const oldValue = this._value;\n this._value = newValue;\n this.requestUpdate('value', oldValue);\n }\n private _value?: string;\n\n /**\n * Color of the swatch. Should be a valid hex, hexa, rgb, rgba, hsl or hsla string. Should fulfill this [css spec](https://www.w3.org/TR/css-color-4/#color-type). If not provided element will look at its text content.\n */\n @property()\n get color(): string | undefined {\n return this._color;\n }\n set color(newValue: string) {\n const oldValue = this._color;\n this._color = newValue;\n this.requestUpdate('color', oldValue);\n }\n private _color?: string;\n\n /**\n * Sets the swatch to disabled.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Sets the swatch to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n readonly: boolean = false;\n\n /**\n * When true shows element label below the color checkbox\n *\n * @attr\n * @memberof UUIColorSwatchElement\n */\n @property({ type: Boolean, attribute: 'show-label', reflect: true })\n showLabel = false;\n\n constructor() {\n super();\n this.addEventListener('click', this._setAriaAttributes);\n }\n\n private _setAriaAttributes() {\n if (this.selectable)\n this.setAttribute('aria-checked', this.selected.toString());\n }\n\n firstUpdated() {\n this._setAriaAttributes();\n }\n\n willUpdate(changedProperties: Map<string, any>) {\n if (\n changedProperties.has('disabled') ||\n changedProperties.has('readonly')\n ) {\n if (this.selectable) {\n this.selectable = !this.disabled && !this.readonly;\n this.deselectable = !this.disabled && !this.readonly;\n }\n }\n if (\n changedProperties.has('selectable') ||\n changedProperties.has('selected')\n ) {\n this._setAriaAttributes();\n }\n if (changedProperties.has('value') || changedProperties.has('color')) {\n this.#computeContrast();\n }\n }\n\n #computeContrast() {\n const color = this.color ?? this.value;\n if (color.startsWith('#')) {\n this._contrast = this.#contrast(color) === 'light' ? 'light' : 'dark';\n } else if (color.startsWith('rgb')) {\n const [r, g, b, a] = color.match(/[.\\d]+/g)?.map(Number) ?? [0, 0, 0];\n if (a <= 0.5) {\n this._contrast = 'light';\n } else {\n this._contrast =\n this.#contrast(this.#rgbToHex(r, g, b)) === 'light'\n ? 'light'\n : 'dark';\n }\n } else {\n this._contrast = undefined;\n }\n }\n\n focus(options?: FocusOptions | undefined): void {\n (this.selectableTarget as HTMLElement | undefined)?.focus(options);\n }\n\n #selectButtonChanged(button?: Element | undefined) {\n this.selectableTarget = button || this;\n }\n\n #contrast(hex: string): string {\n const rgb = this.#hexToRgb(hex);\n const o = Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000);\n\n return o <= 180 ? 'dark' : 'light';\n }\n\n #hexToRgb(hex: string): number[] {\n hex = hex.startsWith('#') ? hex.slice(1) : hex;\n if (hex.length === 3) {\n hex = Array.from(hex).reduce((str, x) => str + x + x, ''); // 123 -> 112233\n }\n\n const bigint = Number.parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return [r, g, b];\n }\n\n readonly #rgbToHex = (\n r: number,\n g: number,\n b: number,\n hash: '#' | '' = '',\n ): string => hash + ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');\n\n render() {\n const classes = {\n [`color-swatch--${this._contrast}`]: this._contrast !== undefined,\n };\n const colorStr = `var(--uui-swatch-color, ${this.color ?? this.value})`;\n return html`\n <button\n id=\"swatch\"\n ${ref(this.#selectButtonChanged)}\n aria-label=${this.label}\n ?disabled=\"${this.disabled}\"\n title=\"${this.label}\">\n <div\n class=\"color-swatch color-swatch--transparent-bg ${classMap(\n classes,\n )}\">\n <div\n class=\"color-swatch__color\"\n style=${styleMap({ background: colorStr })}></div>\n <div\n class=\"color-swatch__check\"\n style=${styleMap({ color: colorStr })}>\n ${iconCheck}\n </div>\n </div>\n ${this._renderWithLabel()}\n </button>\n `;\n }\n\n private _renderWithLabel() {\n if (!this.showLabel) return nothing;\n return html`<div class=\"color-swatch__label\">\n <strong>${this.renderLabel()}</strong>\n ${this.value}\n </div>`;\n }\n\n static override readonly styles = [\n css`\n :host {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n flex-direction: column;\n }\n\n :host([show-label]) {\n width: 120px;\n }\n\n :host(*),\n * {\n /* TODO: implement globally shared outline style */\n outline-color: var(--uui-color-focus);\n outline-offset: 4px;\n }\n\n :host(:focus-within:not([disabled])) {\n outline: none;\n }\n\n :host(:focus:not([disabled])) #swatch {\n outline-color: var(--uui-color-focus);\n outline-width: 2px;\n outline-style: solid;\n outline-offset: var(--uui-swatch-border-width, 1px);\n }\n\n :host([selected]:focus:not([disabled])) #swatch {\n outline-offset: 2px;\n }\n\n :host([selectable]) #swatch {\n cursor: pointer;\n }\n\n :host(:not([selectable]):not([readonly]):not([disabled])) #swatch {\n cursor: pointer;\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n }\n\n :host([readonly]) {\n cursor: default;\n }\n\n #swatch {\n cursor: inherit;\n outline: none;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n text-align: left;\n border-radius: var(--uui-border-radius-2);\n overflow: hidden;\n width: 100%;\n }\n :host(:not([show-label])) #swatch {\n border-radius: var(--uui-size-5);\n border: 1px solid var(--uui-color-border);\n }\n\n :host(:not([selectable])) #swatch:focus {\n outline: none;\n }\n :host(:not([selectable]):not([readonly]):not([disabled])) #swatch:hover {\n border-color: var(--uui-color-border-standalone);\n }\n\n :host([readonly]) #swatch,\n :host([disabled]) #swatch {\n background-color: var(--uui-color-disabled-standalone);\n }\n\n :host([selectable]) #swatch::after {\n content: '';\n position: absolute;\n pointer-events: none;\n inset: calc(var(--uui-swatch-border-width, 1px) * -1);\n width: calc(100% + calc(var(--uui-swatch-border-width, 1px) * 2));\n height: calc(100% + calc(var(--uui-swatch-border-width, 1px) * 2));\n box-sizing: border-box;\n border: var(--uui-swatch-border-width, 2px) solid\n var(--uui-color-selected);\n border-radius: calc(\n var(--uui-size-5) + var(--uui-swatch-border-width, 1px)\n );\n transition: opacity 100ms ease-out;\n opacity: 0;\n }\n :host([selectable][show-label]) #swatch::after {\n border-radius: var(--uui-border-radius-2);\n }\n :host([selectable]:not([disabled]):hover) #swatch::after {\n opacity: 0.33;\n }\n :host([selectable][selected]:not([disabled]):hover) #swatch::after {\n opacity: 0.66;\n }\n :host([selectable][selected]:not([disabled])) #swatch::after {\n opacity: 1;\n }\n\n .color-swatch {\n position: relative;\n width: var(--uui-swatch-size, 25px);\n height: var(--uui-swatch-size, 25px);\n border-radius: inherit;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 2px;\n }\n\n :host([show-label]) .color-swatch {\n width: 100%;\n height: 50px;\n margin: 0;\n }\n\n .color-swatch.color-swatch--transparent-bg {\n background-image:\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, transparent 75%, var(--uui-palette-grey) 75%),\n linear-gradient(45deg, var(--uui-palette-grey) 25%, transparent 25%);\n background-size: 10px 10px;\n background-position:\n 0 0,\n 0 0,\n -5px -5px,\n 5px 5px;\n }\n .color-swatch__color {\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n border-radius: inherit;\n }\n .color-swatch__color::after {\n content: '';\n position: absolute;\n inset: 0;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: inherit;\n }\n\n :host([show-label]) .color-swatch__color {\n border-radius: var(--uui-border-radius-2) var(--uui-border-radius-2) 0 0;\n }\n :host([show-label][selectable][selected]:not([disabled]):not([readonly]))\n .color-swatch__color::after {\n border-top: 2px solid rgba(255, 255, 255, 0.25);\n border-left: 2px solid rgba(255, 255, 255, 0.25);\n border-right: 2px solid rgba(255, 255, 255, 0.25);\n }\n :host([show-label][readonly]:not([disabled]))\n .color-swatch__color::after {\n border: 2px solid var(--uui-color-border-standalone);\n }\n\n :host([readonly]:not([disabled])) .color-swatch__color {\n border-color: transparent;\n }\n :host([disabled]) .color-swatch__color {\n opacity: 0.6;\n }\n :host([disabled]) .color-swatch.color-swatch--transparent-bg {\n background-image: none;\n background-color: var(--uui-color-border-standalone);\n }\n\n .color-swatch__check {\n position: absolute;\n vertical-align: middle;\n width: calc(var(--uui-swatch-size, 25px) / 2);\n height: calc(var(--uui-swatch-size, 25px) / 2);\n line-height: 0;\n filter: invert(1) grayscale(1) contrast(9);\n pointer-events: none;\n opacity: 0;\n border-radius: inherit;\n }\n\n .color-swatch.color-swatch--light .color-swatch__check {\n color: #000 !important;\n filter: none;\n }\n\n .color-swatch.color-swatch--dark .color-swatch__check {\n color: #fff !important;\n filter: none;\n }\n\n :host([selected]) .color-swatch__check {\n opacity: 1;\n }\n\n .color-swatch__check > svg {\n stroke-width: 2.5;\n }\n\n slot[name='label']::slotted(*),\n .label {\n font-size: var(--uui-size-4);\n }\n\n .color-swatch__label {\n width: 100%;\n box-sizing: border-box;\n padding: var(--uui-size-space-1) var(--uui-size-space-2);\n line-height: 1.5;\n display: flex;\n flex-direction: column;\n background: white;\n border: 1px solid var(--uui-color-border);\n border-top: none;\n border-radius: 0 0 var(--uui-border-radius-2) var(--uui-border-radius-2);\n font-size: var(--uui-size-4, 12px);\n }\n\n :host(:not([selectable]):not([readonly]):not([disabled]))\n .color-swatch__label {\n color: var(--uui-color-interactive);\n }\n :host(:not([selectable]):not([readonly]):not([disabled]):hover)\n .color-swatch__label {\n color: var(--uui-color-interactive-emphasis);\n border-color: var(--uui-color-border-standalone);\n }\n\n .color-swatch__label strong {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n box-sizing: border-box;\n }\n `,\n ];\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineElement } from "../../internal/registration/index.js";
|
|
2
2
|
import { UUIColorSwatchElement } from "./color-swatch.element.js";
|
|
3
|
+
//#region src/components/color-swatch/color-swatch.ts
|
|
3
4
|
defineElement("uui-color-swatch", UUIColorSwatchElement);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
//# sourceMappingURL=color-swatch.js.map
|
|
5
|
+
//#endregion
|
|
6
|
+
export { UUIColorSwatchElement };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=color-swatch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-swatch.js","sources":["../../../src/components/color-swatch/color-swatch.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorSwatchElement } from './color-swatch.element.js';\n\ndefineElement('uui-color-swatch', UUIColorSwatchElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-swatch': UUIColorSwatchElement;\n }\n}\n\nexport * from './color-swatch.element.js';\
|
|
1
|
+
{"version":3,"file":"color-swatch.js","names":[],"sources":["../../../src/components/color-swatch/color-swatch.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorSwatchElement } from './color-swatch.element.js';\n\ndefineElement('uui-color-swatch', UUIColorSwatchElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-swatch': UUIColorSwatchElement;\n }\n}\n\nexport * from './color-swatch.element.js';\n"],"mappings":";;;AAGA,cAAc,oBAAoB,qBAAqB"}
|