@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker.element.js","sources":["../../../src/components/color-picker/color-picker.element.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n parseColor,\n hslaToRgb,\n hslaToHsv,\n hslaToHex,\n type HslaColor,\n} from '../../internal/utils/index.js';\n\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { UUIColorAreaEvent } from '../color-area/color-area.js';\n\nimport type { UUIColorSliderEvent } from '../color-slider/color-slider.js';\n\nimport type {\n UUIColorSwatchesElement,\n UUIColorSwatchesEvent,\n} from '../color-swatches/color-swatches.js';\n\nimport type { UUIInputElement } from '../input/input.js';\nimport { UUIColorPickerChangeEvent } from './UUIColorPickerEvent.js';\nimport { LabelMixin } from '../../internal/mixins/index.js';\n\nimport '../color-area/color-area.js';\nimport '../color-slider/color-slider.js';\nimport '../input/input.js';\nimport '../button-group/button-group.js';\nimport '../button/button.js';\nimport '../icon-registry-essential/icon-registry-essential.js';\nimport '../icon/icon.js';\nimport '../color-swatches/color-swatches.js';\nimport '../color-swatch/color-swatch.js';\nimport '../popover-container/popover-container.js';\n\nconst hasEyeDropper = 'EyeDropper' in window;\n\ntype EyeDropperConstructor = new () => EyeDropperInterface;\n\ninterface EyeDropperInterface {\n open: () => Promise<{ sRGBHex: string }>;\n}\n\nexport type UUIColorPickerFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\nexport type UUIColorPickerFormatWithAlpha =\n | UUIColorPickerFormat\n | 'hexa'\n | 'rgba'\n | 'hsla'\n | 'hsva';\n\ndeclare const EyeDropper: EyeDropperConstructor;\n\ntype UUIColorPickerSize = 'small' | 'medium' | 'large';\n\n/**\n * @element uui-color-picker\n * @cssprop --uui-color-picker-width - The width of the color picker\n * @description\n * @fires {UUIColorPickerChangeEvent} change - Fired when the color changes\n */\nexport class UUIColorPickerElement extends LabelMixin('label', LitElement) {\n @query('[part=\"input\"]') private readonly _input!: UUIInputElement;\n @query('.color-picker__preview')\n private readonly _previewButton!: HTMLButtonElement;\n @query('#swatches') private readonly _swatches!: UUIColorSwatchesElement;\n\n private _value: string = '';\n\n @state() private inputValue = '';\n @state() private hue = 0;\n @state() private saturation = 0;\n @state() private lightness = 0;\n @state() private alpha = 100;\n @state() private _color: HslaColor = { h: 0, s: 0, l: 0, a: 1 };\n\n /**\n * The current color.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property()\n set value(value: string) {\n if (this.value !== value) {\n if (!this.setColor(value)) return;\n }\n this._value = value;\n }\n get value(): string {\n return this._value;\n }\n\n /**\n * The format to use for the display value. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA\n * respectively. The color picker will always accept user input in any format (including CSS color names) and convert\n * it to the desired format.\n * @attr\n * @type {UUIColorPickerFormat}\n * @default 'hex'\n */\n @property() format: UUIColorPickerFormat = 'hex';\n\n /**\n * The input's name attribute.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property() name = '';\n\n /**\n * Determines the size of the color picker's trigger. This has no effect on inline color pickers.\n * @attr\n * @type {UUIColorPickerSize}\n * @default 'medium'\n **/\n @property() size: UUIColorPickerSize = 'medium';\n\n /**\n * Removes the format toggle.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ attribute: 'no-format-toggle', type: Boolean }) noFormatToggle =\n false;\n\n /**\n * Renders the color picker inline rather than inside a dropdown.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /**\n * Sets the color picker to disabled.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether to show the opacity slider.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) opacity = false;\n\n /**\n * Sets the color picker to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * By default, the value will be set in lowercase. Set this to true to set it in uppercase instead.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) uppercase = false;\n\n /**\n * An array of predefined color swatches to display. Can include any format the color picker can parse, including\n * HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names.\n */\n @property({ attribute: false }) swatches: string[] = [\n '#d0021b',\n '#f5a623',\n '#f8e71c',\n '#8b572a',\n '#7ed321',\n '#417505',\n '#bd10e0',\n '#9013fe',\n '#4a90e2',\n '#50e3c2',\n '#b8e986',\n '#000',\n '#444',\n '#888',\n '#ccc',\n '#fff',\n ];\n\n /** Returns the current value as a string in the specified format. */\n getFormattedValue(format: UUIColorPickerFormat) {\n const formatToUse = this.opacity ? `${format}a` : format;\n const { h, s, l, a } = this._color;\n const hexa = hslaToHex(h, s, l, a * 100);\n const hex = hexa.length > 7 ? hexa.substring(0, hexa.length - 2) : hexa;\n const { r, g, b } = hslaToRgb(h, s, l);\n const { s: sv, v } = hslaToHsv(h, s, l);\n\n switch (formatToUse) {\n case 'hex':\n return this.setLetterCase(hex);\n case 'hexa':\n return this.setLetterCase(hexa);\n case 'rgb':\n case 'rgba':\n return this.setLetterCase(`rgb(${r} ${g} ${b} / ${a})`);\n case 'hsl':\n case 'hsla':\n return this.setLetterCase(`hsl(${h} ${s}% ${l}% / ${a})`);\n case 'hsv':\n return this.setLetterCase(`hsv(${h}, ${sv}%, ${v}%)`);\n case 'hsva':\n return this.setLetterCase(`hsva(${h}, ${sv}%, ${v}%, ${a})`);\n default:\n return '';\n }\n }\n\n handleFormatToggle() {\n const formats = ['hex', 'rgb', 'hsl', 'hsv'];\n const nextIndex = (formats.indexOf(this.format) + 1) % formats.length;\n this.format = formats[nextIndex] as 'hex' | 'rgb' | 'hsl' | 'hsv';\n this._syncValues();\n }\n\n handleAlphaChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: Math.round(element.value) / 100,\n };\n this.setColor(newColor);\n }\n\n handleHueChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: element.value,\n s: this.saturation,\n l: this.lightness,\n a: this.alpha / 100,\n };\n this.setColor(newColor);\n }\n\n handleGridChange(event: UUIColorAreaEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: element.saturation,\n l: element.lightness,\n a: this.alpha / 100,\n };\n\n this.setColor(newColor);\n }\n\n handleInputChange(event: CustomEvent) {\n event.stopImmediatePropagation();\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n }\n\n handleInputKeyDown(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n if (event.key === 'Enter') {\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n\n setTimeout(() => this._input.select());\n }\n }\n\n handleColorSwatchChange(event: UUIColorSwatchesEvent) {\n event.stopImmediatePropagation();\n\n const target = event.target;\n this.setColor(target.value);\n }\n\n handleCopy() {\n navigator.clipboard.writeText(this._input.value as string).then(() => {\n // Show copied animation\n this._previewButton.classList.add('color-picker__preview-color--copied');\n this._previewButton.addEventListener(\n 'animationend',\n () => {\n this._previewButton.classList.remove(\n 'color-picker__preview-color--copied',\n );\n },\n { once: true },\n );\n });\n }\n\n handleEyeDropper() {\n if (!hasEyeDropper) {\n return;\n }\n\n const eyeDropper = new EyeDropper();\n\n eyeDropper\n .open()\n .then(result => this.setColor(result.sRGBHex))\n .catch(() => {\n // The user canceled, do nothing\n });\n }\n\n setColor(colorString: string | HslaColor) {\n if (colorString === this.value) return;\n\n if (!colorString) {\n this.alpha = 100;\n this.inputValue = '';\n this._value = colorString;\n this._color = { h: 0, s: 0, l: 0, a: 1 };\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n\n return true;\n }\n\n const parsed = parseColor(colorString);\n if (!parsed) return false;\n\n const { h, s, l, a } = parsed;\n\n this.hue = h;\n this.saturation = Math.round(s);\n this.lightness = Math.round(l);\n this.alpha = this.opacity ? a * 100 : 100; // Convert to 0-100 range, and set alpha to 100 if opacity is disabled\n\n // Workaround as hue isn't correct after changing hue slider, but parseColor returns hue as zero when color is black.\n if (typeof colorString !== 'string' && colorString.h) {\n this.hue = colorString.h;\n }\n\n this._color = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: this.opacity ? a : 1,\n };\n\n this._syncValues();\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n return true;\n }\n\n setLetterCase(string: string) {\n if (typeof string !== 'string') {\n return '';\n }\n return this.uppercase ? string.toUpperCase() : string.toLowerCase();\n }\n\n private _syncValues() {\n this.inputValue = this.getFormattedValue(this.format);\n this._value = this.inputValue;\n }\n\n private _renderColorPicker() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`\n <div\n class=${classMap({\n 'color-picker': true,\n 'color-picker--inline': this.inline,\n 'color-picker--disabled': this.disabled,\n })}\n aria-disabled=${this.disabled ? 'true' : 'false'}>\n <uui-color-area\n .value=\"${this.value}\"\n .hue=\"${Math.round(this.hue)}\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleGridChange}>\n </uui-color-area>\n <div class=\"color-picker__controls\">\n <div class=\"color-picker__sliders\">\n <uui-color-slider\n hide-value-label\n label=\"hue\"\n class=\"hue-slider\"\n .value=${Math.round(this.hue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleHueChange}>\n </uui-color-slider>\n ${this.opacity\n ? html`\n <uui-color-slider\n hide-value-label\n label=\"alpha\"\n class=\"opacity-slider\"\n .value=${Math.round(this.alpha)}\n type=\"opacity\"\n .color=${hslaToHex(\n this.hue,\n this.saturation,\n this.lightness,\n )}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleAlphaChange}>\n </uui-color-slider>\n `\n : ''}\n </div>\n <button\n type=\"button\"\n part=\"preview\"\n class=\"color-picker__preview color-picker__transparent-bg\"\n title=\"Copy\"\n aria-label=\"Copy\"\n style=${styleMap({ '--preview-color': previewColor })}\n @click=${this.handleCopy}></button>\n </div>\n <div class=\"color-picker__user-input\" aria-live=\"polite\">\n <uui-input\n label=\"label\"\n type=\"text\"\n part=\"input\"\n name=${this.name}\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n .value=${live(this.inputValue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${this.handleInputKeyDown}\n @change=${this.handleInputChange}>\n <uui-button-group slot=\"append\">\n ${this.noFormatToggle\n ? ''\n : html`<uui-button\n label=\"Toggle color format\"\n @click=${this.handleFormatToggle}\n class=\"color-picker__toggle-format\"\n ?disabled=${this.disabled}\n compact>\n <span>${this.format}</span>\n </uui-button>`}\n ${hasEyeDropper\n ? html`<uui-button\n label=\"Select a color\"\n ?disabled=${this.disabled || this.readonly}\n @click=${this.handleEyeDropper}\n compact>\n <uui-icon-registry-essential>\n <uui-icon name=\"colorpicker\"></uui-icon>\n </uui-icon-registry-essential>\n </uui-button>`\n : ''}\n </uui-button-group>\n </uui-input>\n </div>\n ${this._renderSwatches()}\n </div>\n `;\n }\n\n private _renderSwatches() {\n if (!this.swatches?.length) return nothing;\n return html`<uui-color-swatches\n id=\"swatches\"\n class=\"color-picker__swatches\"\n label=\"Swatches\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleColorSwatchChange}>\n ${this.swatches.map(\n swatch =>\n html`<uui-color-swatch label=\"${swatch}\" .value=${swatch}>\n </uui-color-swatch>`,\n )}\n </uui-color-swatches>`;\n }\n\n private _renderPreviewButton() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`<button\n type=\"button\"\n part=\"trigger\"\n aria-label=\"${this.label || 'Open Color picker'}\"\n class=${classMap({\n 'color-picker__trigger': true,\n 'color-dropdown__trigger--disabled': this.disabled,\n 'color-dropdown__trigger--small': this.size === 'small',\n 'color-dropdown__trigger--medium': this.size === 'medium',\n 'color-dropdown__trigger--large': this.size === 'large',\n 'color-picker__transparent-bg': true,\n })}\n style=${styleMap({ '--preview-color': previewColor })}\n ?disabled=${this.disabled}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n popovertarget=\"color-picker-popover\"></button>\n <uui-popover-container id=\"color-picker-popover\">\n ${this._renderColorPicker()}\n </uui-popover-container>`;\n }\n\n render() {\n return this.inline\n ? this._renderColorPicker()\n : this._renderPreviewButton();\n }\n\n static override readonly styles = [\n css`\n :host {\n --uui-look-outline-border: #ddd;\n --uui-look-outline-border-hover: #aaa;\n --uui-color-area-border-radius: var(--uui-border-radius-2)\n var(--uui-border-radius-2) 0 0;\n font-size: 0.8rem;\n color: var(--uui-color-text);\n display: block;\n width: var(--uui-color-picker-width, 280px);\n }\n :host > button {\n cursor: pointer;\n }\n uui-popover-container {\n width: inherit;\n }\n .color-picker {\n width: 100%;\n background-color: var(--uui-color-surface);\n user-select: none;\n border: solid 1px var(--uui-color-border);\n border-radius: var(--uui-border-radius-2);\n }\n .color-picker__user-input {\n display: flex;\n padding: 0 0.75rem 0.75rem 0.75rem;\n }\n .color-picker__user-input uui-button {\n border-left: var(--uui-input-border-width, 1px) solid\n var(--uui-input-border-color, var(--uui-color-border));\n }\n .color-picker__preview,\n .color-picker__trigger {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 2.25rem;\n height: 2.25rem;\n border: none;\n border-radius: 50%;\n background: none;\n }\n .color-picker__preview {\n cursor: copy;\n margin-left: 0.75rem;\n border-radius: 50%;\n }\n .color-picker__trigger[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n .color-picker__preview::before,\n .color-picker__trigger::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n /* We use a custom property in lieu of currentColor because of https://bugs.webkit.org/show_bug.cgi?id=216780 */\n background-color: var(--preview-color);\n }\n\n .color-dropdown__trigger--empty::before {\n background-color: transparent;\n }\n\n .color-picker__transparent-bg {\n border: 1px solid var(--uui-color-border);\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\n .color-picker__preview-color--copied {\n animation: pulse 0.75s;\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--uui-palette-space-cadet-light);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .color-picker__controls {\n padding: 0.75rem;\n display: flex;\n align-items: center;\n }\n .color-picker__sliders {\n flex: 1 1 auto;\n }\n\n uui-color-slider:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n\n .color-picker__toggle-format {\n min-width: 45px;\n --uui-button-font-size: 0.8rem;\n }\n .color-picker__toggle-format > span {\n text-transform: uppercase;\n }\n\n uui-color-swatches {\n border-top: solid 1px var(--uui-color-border);\n padding: 0.75rem;\n }\n\n button[slot='trigger'] {\n border-radius: 50%;\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n uui-input {\n /* lower the font size to avoid overflow with hlsa format */\n font-size: 0.85rem;\n box-sizing: content-box;\n flex: 1;\n }\n\n uui-button-group {\n height: 100%;\n }\n\n button.color-picker__trigger:focus-visible {\n outline: 2px solid var(--uui-color-focus);\n }\n\n uui-color-area {\n width: 100%;\n }\n `,\n ];\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color-picker.element.js","names":[],"sources":["../../../src/components/color-picker/color-picker.element.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\n\nimport {\n parseColor,\n hslaToRgb,\n hslaToHsv,\n hslaToHex,\n type HslaColor,\n} from '../../internal/utils/index.js';\n\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { UUIColorAreaEvent } from '../color-area/color-area.js';\n\nimport type { UUIColorSliderEvent } from '../color-slider/color-slider.js';\n\nimport type {\n UUIColorSwatchesElement,\n UUIColorSwatchesEvent,\n} from '../color-swatches/color-swatches.js';\n\nimport type { UUIInputElement } from '../input/input.js';\nimport { UUIColorPickerChangeEvent } from './UUIColorPickerEvent.js';\nimport { LabelMixin } from '../../internal/mixins/index.js';\n\nimport '../color-area/color-area.js';\nimport '../color-slider/color-slider.js';\nimport '../input/input.js';\nimport '../button-group/button-group.js';\nimport '../button/button.js';\nimport '../icon-registry-essential/icon-registry-essential.js';\nimport '../icon/icon.js';\nimport '../color-swatches/color-swatches.js';\nimport '../color-swatch/color-swatch.js';\nimport '../popover-container/popover-container.js';\n\nconst hasEyeDropper = 'EyeDropper' in window;\n\ntype EyeDropperConstructor = new () => EyeDropperInterface;\n\ninterface EyeDropperInterface {\n open: () => Promise<{ sRGBHex: string }>;\n}\n\nexport type UUIColorPickerFormat = 'hex' | 'rgb' | 'hsl' | 'hsv';\nexport type UUIColorPickerFormatWithAlpha =\n | UUIColorPickerFormat\n | 'hexa'\n | 'rgba'\n | 'hsla'\n | 'hsva';\n\ndeclare const EyeDropper: EyeDropperConstructor;\n\ntype UUIColorPickerSize = 'small' | 'medium' | 'large';\n\n/**\n * @element uui-color-picker\n * @cssprop --uui-color-picker-width - The width of the color picker\n * @description\n * @fires {UUIColorPickerChangeEvent} change - Fired when the color changes\n */\nexport class UUIColorPickerElement extends LabelMixin('label', LitElement) {\n @query('[part=\"input\"]') private readonly _input!: UUIInputElement;\n @query('.color-picker__preview')\n private readonly _previewButton!: HTMLButtonElement;\n @query('#swatches') private readonly _swatches!: UUIColorSwatchesElement;\n\n private _value: string = '';\n\n @state() private inputValue = '';\n @state() private hue = 0;\n @state() private saturation = 0;\n @state() private lightness = 0;\n @state() private alpha = 100;\n @state() private _color: HslaColor = { h: 0, s: 0, l: 0, a: 1 };\n\n /**\n * The current color.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property()\n set value(value: string) {\n if (this.value !== value) {\n if (!this.setColor(value)) return;\n }\n this._value = value;\n }\n get value(): string {\n return this._value;\n }\n\n /**\n * The format to use for the display value. If opacity is enabled, these will translate to HEXA, RGBA, HSLA, and HSVA\n * respectively. The color picker will always accept user input in any format (including CSS color names) and convert\n * it to the desired format.\n * @attr\n * @type {UUIColorPickerFormat}\n * @default 'hex'\n */\n @property() format: UUIColorPickerFormat = 'hex';\n\n /**\n * The input's name attribute.\n * @attr\n * @type {string}\n * @default ''\n **/\n @property() name = '';\n\n /**\n * Determines the size of the color picker's trigger. This has no effect on inline color pickers.\n * @attr\n * @type {UUIColorPickerSize}\n * @default 'medium'\n **/\n @property() size: UUIColorPickerSize = 'medium';\n\n /**\n * Removes the format toggle.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ attribute: 'no-format-toggle', type: Boolean }) noFormatToggle =\n false;\n\n /**\n * Renders the color picker inline rather than inside a dropdown.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) inline = false;\n\n /**\n * Sets the color picker to disabled.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Whether to show the opacity slider.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) opacity = false;\n\n /**\n * Sets the color picker to readonly mode.\n * @type {boolean}\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /**\n * By default, the value will be set in lowercase. Set this to true to set it in uppercase instead.\n * @attr\n * @type {boolean}\n * @default false\n **/\n @property({ type: Boolean }) uppercase = false;\n\n /**\n * An array of predefined color swatches to display. Can include any format the color picker can parse, including\n * HEX(A), RGB(A), HSL(A), HSV(A), and CSS color names.\n */\n @property({ attribute: false }) swatches: string[] = [\n '#d0021b',\n '#f5a623',\n '#f8e71c',\n '#8b572a',\n '#7ed321',\n '#417505',\n '#bd10e0',\n '#9013fe',\n '#4a90e2',\n '#50e3c2',\n '#b8e986',\n '#000',\n '#444',\n '#888',\n '#ccc',\n '#fff',\n ];\n\n /** Returns the current value as a string in the specified format. */\n getFormattedValue(format: UUIColorPickerFormat) {\n const formatToUse = this.opacity ? `${format}a` : format;\n const { h, s, l, a } = this._color;\n const hexa = hslaToHex(h, s, l, a * 100);\n const hex = hexa.length > 7 ? hexa.substring(0, hexa.length - 2) : hexa;\n const { r, g, b } = hslaToRgb(h, s, l);\n const { s: sv, v } = hslaToHsv(h, s, l);\n\n switch (formatToUse) {\n case 'hex':\n return this.setLetterCase(hex);\n case 'hexa':\n return this.setLetterCase(hexa);\n case 'rgb':\n case 'rgba':\n return this.setLetterCase(`rgb(${r} ${g} ${b} / ${a})`);\n case 'hsl':\n case 'hsla':\n return this.setLetterCase(`hsl(${h} ${s}% ${l}% / ${a})`);\n case 'hsv':\n return this.setLetterCase(`hsv(${h}, ${sv}%, ${v}%)`);\n case 'hsva':\n return this.setLetterCase(`hsva(${h}, ${sv}%, ${v}%, ${a})`);\n default:\n return '';\n }\n }\n\n handleFormatToggle() {\n const formats = ['hex', 'rgb', 'hsl', 'hsv'];\n const nextIndex = (formats.indexOf(this.format) + 1) % formats.length;\n this.format = formats[nextIndex] as 'hex' | 'rgb' | 'hsl' | 'hsv';\n this._syncValues();\n }\n\n handleAlphaChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: Math.round(element.value) / 100,\n };\n this.setColor(newColor);\n }\n\n handleHueChange(event: UUIColorSliderEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: element.value,\n s: this.saturation,\n l: this.lightness,\n a: this.alpha / 100,\n };\n this.setColor(newColor);\n }\n\n handleGridChange(event: UUIColorAreaEvent) {\n event.stopPropagation();\n this._swatches?.resetSelection();\n const element = event.target;\n\n const newColor: HslaColor = {\n h: this.hue,\n s: element.saturation,\n l: element.lightness,\n a: this.alpha / 100,\n };\n\n this.setColor(newColor);\n }\n\n handleInputChange(event: CustomEvent) {\n event.stopImmediatePropagation();\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n }\n\n handleInputKeyDown(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n if (event.key === 'Enter') {\n this._swatches?.resetSelection();\n\n this.inputValue = this._input.value as string;\n this.setColor(this.inputValue);\n\n setTimeout(() => this._input.select());\n }\n }\n\n handleColorSwatchChange(event: UUIColorSwatchesEvent) {\n event.stopImmediatePropagation();\n\n const target = event.target;\n this.setColor(target.value);\n }\n\n handleCopy() {\n navigator.clipboard.writeText(this._input.value as string).then(() => {\n // Show copied animation\n this._previewButton.classList.add('color-picker__preview-color--copied');\n this._previewButton.addEventListener(\n 'animationend',\n () => {\n this._previewButton.classList.remove(\n 'color-picker__preview-color--copied',\n );\n },\n { once: true },\n );\n });\n }\n\n handleEyeDropper() {\n if (!hasEyeDropper) {\n return;\n }\n\n const eyeDropper = new EyeDropper();\n\n eyeDropper\n .open()\n .then(result => this.setColor(result.sRGBHex))\n .catch(() => {\n // The user canceled, do nothing\n });\n }\n\n setColor(colorString: string | HslaColor) {\n if (colorString === this.value) return;\n\n if (!colorString) {\n this.alpha = 100;\n this.inputValue = '';\n this._value = colorString;\n this._color = { h: 0, s: 0, l: 0, a: 1 };\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n\n return true;\n }\n\n const parsed = parseColor(colorString);\n if (!parsed) return false;\n\n const { h, s, l, a } = parsed;\n\n this.hue = Math.round(h);\n this.saturation = Math.round(s);\n this.lightness = Math.round(l);\n this.alpha = this.opacity ? a * 100 : 100; // Convert to 0-100 range, and set alpha to 100 if opacity is disabled\n\n // Workaround as hue isn't correct after changing hue slider, but parseColor returns hue as zero when color is black.\n if (typeof colorString !== 'string' && colorString.h) {\n this.hue = Math.round(colorString.h);\n }\n\n this._color = {\n h: this.hue,\n s: this.saturation,\n l: this.lightness,\n a: this.opacity ? a : 1,\n };\n\n this._syncValues();\n\n this.dispatchEvent(\n new UUIColorPickerChangeEvent(UUIColorPickerChangeEvent.CHANGE),\n );\n return true;\n }\n\n setLetterCase(string: string) {\n if (typeof string !== 'string') {\n return '';\n }\n return this.uppercase ? string.toUpperCase() : string.toLowerCase();\n }\n\n private _syncValues() {\n this.inputValue = this.getFormattedValue(this.format);\n this._value = this.inputValue;\n }\n\n private _renderColorPicker() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`\n <div\n class=${classMap({\n 'color-picker': true,\n 'color-picker--inline': this.inline,\n 'color-picker--disabled': this.disabled,\n })}\n aria-disabled=${this.disabled ? 'true' : 'false'}>\n <uui-color-area\n .value=\"${this.value}\"\n .hue=\"${Math.round(this.hue)}\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleGridChange}>\n </uui-color-area>\n <div class=\"color-picker__controls\">\n <div class=\"color-picker__sliders\">\n <uui-color-slider\n hide-value-label\n label=\"hue\"\n class=\"hue-slider\"\n .value=${Math.round(this.hue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleHueChange}>\n </uui-color-slider>\n ${this.opacity\n ? html`\n <uui-color-slider\n hide-value-label\n label=\"alpha\"\n class=\"opacity-slider\"\n .value=${Math.round(this.alpha)}\n type=\"opacity\"\n .color=${hslaToHex(\n this.hue,\n this.saturation,\n this.lightness,\n )}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleAlphaChange}>\n </uui-color-slider>\n `\n : ''}\n </div>\n <button\n type=\"button\"\n part=\"preview\"\n class=\"color-picker__preview color-picker__transparent-bg\"\n title=\"Copy\"\n aria-label=\"Copy\"\n style=${styleMap({ '--preview-color': previewColor })}\n @click=${this.handleCopy}></button>\n </div>\n <div class=\"color-picker__user-input\" aria-live=\"polite\">\n <uui-input\n label=\"label\"\n type=\"text\"\n part=\"input\"\n name=${this.name}\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n .value=${live(this.inputValue)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${this.handleInputKeyDown}\n @change=${this.handleInputChange}>\n <uui-button-group slot=\"append\">\n ${this.noFormatToggle\n ? ''\n : html`<uui-button\n label=\"Toggle color format\"\n @click=${this.handleFormatToggle}\n class=\"color-picker__toggle-format\"\n ?disabled=${this.disabled}\n compact>\n <span>${this.format}</span>\n </uui-button>`}\n ${hasEyeDropper\n ? html`<uui-button\n label=\"Select a color\"\n ?disabled=${this.disabled || this.readonly}\n @click=${this.handleEyeDropper}\n compact>\n <uui-icon-registry-essential>\n <uui-icon name=\"colorpicker\"></uui-icon>\n </uui-icon-registry-essential>\n </uui-button>`\n : ''}\n </uui-button-group>\n </uui-input>\n </div>\n ${this._renderSwatches()}\n </div>\n `;\n }\n\n private _renderSwatches() {\n if (!this.swatches?.length) return nothing;\n return html`<uui-color-swatches\n id=\"swatches\"\n class=\"color-picker__swatches\"\n label=\"Swatches\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @change=${this.handleColorSwatchChange}>\n ${this.swatches.map(\n swatch =>\n html`<uui-color-swatch label=\"${swatch}\" .value=${swatch}>\n </uui-color-swatch>`,\n )}\n </uui-color-swatches>`;\n }\n\n private _renderPreviewButton() {\n const previewColor = this.value\n ? `hsl(${this.hue} ${this.saturation}% ${this.lightness}% / ${this.alpha / 100})`\n : 'transparent';\n return html`<button\n type=\"button\"\n part=\"trigger\"\n aria-label=\"${this.label || 'Open Color picker'}\"\n class=${classMap({\n 'color-picker__trigger': true,\n 'color-dropdown__trigger--disabled': this.disabled,\n 'color-dropdown__trigger--small': this.size === 'small',\n 'color-dropdown__trigger--medium': this.size === 'medium',\n 'color-dropdown__trigger--large': this.size === 'large',\n 'color-picker__transparent-bg': true,\n })}\n style=${styleMap({ '--preview-color': previewColor })}\n ?disabled=${this.disabled}\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n popovertarget=\"color-picker-popover\"></button>\n <uui-popover-container id=\"color-picker-popover\" no-scroll>\n ${this._renderColorPicker()}\n </uui-popover-container>`;\n }\n\n render() {\n return this.inline\n ? this._renderColorPicker()\n : this._renderPreviewButton();\n }\n\n static override readonly styles = [\n css`\n :host {\n --uui-look-outline-border: #ddd;\n --uui-look-outline-border-hover: #aaa;\n --uui-color-area-border-radius: var(--uui-border-radius-2)\n var(--uui-border-radius-2) 0 0;\n font-size: 0.8rem;\n color: var(--uui-color-text);\n display: block;\n width: var(--uui-color-picker-width, 280px);\n }\n :host > button {\n cursor: pointer;\n }\n uui-popover-container {\n width: inherit;\n }\n .color-picker {\n width: 100%;\n background-color: var(--uui-color-surface);\n user-select: none;\n border: solid 1px var(--uui-color-border);\n border-radius: var(--uui-border-radius-2);\n }\n .color-picker__user-input {\n display: flex;\n padding: 0 0.75rem 0.75rem 0.75rem;\n }\n .color-picker__user-input uui-button {\n border-left: var(--uui-input-border-width, 1px) solid\n var(--uui-input-border-color, var(--uui-color-border));\n }\n .color-picker__preview,\n .color-picker__trigger {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 2.25rem;\n height: 2.25rem;\n border: none;\n border-radius: 50%;\n background: none;\n }\n .color-picker__preview {\n cursor: copy;\n margin-left: 0.75rem;\n border-radius: 50%;\n }\n .color-picker__trigger[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n .color-picker__preview::before,\n .color-picker__trigger::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n /* We use a custom property in lieu of currentColor because of https://bugs.webkit.org/show_bug.cgi?id=216780 */\n background-color: var(--preview-color);\n }\n\n .color-dropdown__trigger--empty::before {\n background-color: transparent;\n }\n\n .color-picker__transparent-bg {\n border: 1px solid var(--uui-color-border);\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\n .color-picker__preview-color--copied {\n animation: pulse 0.75s;\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--uui-palette-space-cadet-light);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n\n .color-picker__controls {\n padding: 0.75rem;\n display: flex;\n align-items: center;\n }\n .color-picker__sliders {\n flex: 1 1 auto;\n }\n\n uui-color-slider:not(:last-of-type) {\n margin-bottom: 1rem;\n }\n\n .color-picker__toggle-format {\n min-width: 45px;\n --uui-button-font-size: 0.8rem;\n }\n .color-picker__toggle-format > span {\n text-transform: uppercase;\n }\n\n uui-color-swatches {\n border-top: solid 1px var(--uui-color-border);\n padding: 0.75rem;\n }\n\n button[slot='trigger'] {\n border-radius: 50%;\n cursor: pointer;\n width: 36px;\n height: 36px;\n }\n\n uui-input {\n /* lower the font size to avoid overflow with hlsa format */\n font-size: 0.85rem;\n box-sizing: content-box;\n flex: 1;\n }\n\n uui-button-group {\n height: 100%;\n }\n\n button.color-picker__trigger:focus-visible {\n outline: calc(2px * var(--uui-show-focus-outline, 1)) solid\n var(--uui-color-focus);\n }\n\n uui-color-area {\n width: 100%;\n }\n `,\n ];\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { defineElement } from "../../internal/registration/index.js";
|
|
2
|
-
import { UUIColorPickerElement } from "./color-picker.element.js";
|
|
3
2
|
import { UUIColorPickerChangeEvent } from "./UUIColorPickerEvent.js";
|
|
3
|
+
import { UUIColorPickerElement } from "./color-picker.element.js";
|
|
4
|
+
//#region src/components/color-picker/color-picker.ts
|
|
4
5
|
defineElement("uui-color-picker", UUIColorPickerElement);
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=color-picker.js.map
|
|
6
|
+
//#endregion
|
|
7
|
+
export { UUIColorPickerChangeEvent, UUIColorPickerElement };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=color-picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker.js","sources":["../../../src/components/color-picker/color-picker.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorPickerElement } from './color-picker.element.js';\n\ndefineElement('uui-color-picker', UUIColorPickerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-picker': UUIColorPickerElement;\n }\n}\n\nexport * from './color-picker.element.js';\nexport * from './UUIColorPickerEvent.js';\
|
|
1
|
+
{"version":3,"file":"color-picker.js","names":[],"sources":["../../../src/components/color-picker/color-picker.ts"],"sourcesContent":["import { defineElement } from '../../internal/registration/index.js';\nimport { UUIColorPickerElement } from './color-picker.element.js';\n\ndefineElement('uui-color-picker', UUIColorPickerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'uui-color-picker': UUIColorPickerElement;\n }\n}\n\nexport * from './color-picker.element.js';\nexport * from './UUIColorPickerEvent.js';\n"],"mappings":";;;;AAGA,cAAc,oBAAoB,qBAAqB"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { UUIEvent } from "../../internal/events/UUIEvent.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
//#region src/components/color-slider/UUIColorSliderEvent.ts
|
|
3
|
+
var UUIColorSliderEvent = class extends UUIEvent {
|
|
4
|
+
static {
|
|
5
|
+
this.CHANGE = "change";
|
|
6
|
+
}
|
|
7
|
+
constructor(evName, eventInit = {}) {
|
|
8
|
+
super(evName, {
|
|
9
|
+
bubbles: true,
|
|
10
|
+
...eventInit
|
|
11
|
+
});
|
|
12
|
+
}
|
|
9
13
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=UUIColorSliderEvent.js.map
|
|
14
|
+
//#endregion
|
|
15
|
+
export { UUIColorSliderEvent };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=UUIColorSliderEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UUIColorSliderEvent.js","sources":["../../../src/components/color-slider/UUIColorSliderEvent.ts"],"sourcesContent":["import { UUIEvent } from '../../internal/events/index.js';\nimport type { UUIColorSliderElement } from './color-slider.element.js';\n\nexport class UUIColorSliderEvent extends UUIEvent<{}, UUIColorSliderElement> {\n public static readonly CHANGE = 'change';\n\n constructor(evName: string, eventInit: any = {}) {\n super(evName, {\n bubbles: true,\n ...eventInit,\n });\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"UUIColorSliderEvent.js","names":[],"sources":["../../../src/components/color-slider/UUIColorSliderEvent.ts"],"sourcesContent":["import { UUIEvent } from '../../internal/events/index.js';\nimport type { UUIColorSliderElement } from './color-slider.element.js';\n\nexport class UUIColorSliderEvent extends UUIEvent<{}, UUIColorSliderElement> {\n public static readonly CHANGE = 'change';\n\n constructor(evName: string, eventInit: any = {}) {\n super(evName, {\n bubbles: true,\n ...eventInit,\n });\n }\n}\n"],"mappings":";;AAGA,IAAa,sBAAb,cAAyC,SAAoC;;gBAC3C;;CAEhC,YAAY,QAAgB,YAAiB,CAAC,GAAG;EAC/C,MAAM,QAAQ;GACZ,SAAS;GACT,GAAG;EACL,CAAC;CACH;AACF"}
|
|
@@ -1,163 +1,141 @@
|
|
|
1
|
-
|
|
2
|
-
throw TypeError(msg);
|
|
3
|
-
};
|
|
4
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
-
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);
|
|
6
|
-
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
7
|
-
var _UUIColorSliderElement_instances, updateGradients_fn;
|
|
8
|
-
import { LitElement, html, css } from "lit";
|
|
9
|
-
import { property } from "lit/decorators.js";
|
|
10
|
-
import { styleMap } from "lit/directives/style-map.js";
|
|
11
|
-
import { ifDefined } from "lit/directives/if-defined.js";
|
|
12
|
-
import { UUIColorSliderEvent } from "./UUIColorSliderEvent.js";
|
|
13
|
-
import { parseColor, hslaToRgb, hslaToHex } from "../../internal/utils/color.js";
|
|
14
|
-
import { reverseNumberInRange, clamp } from "../../internal/utils/math.js";
|
|
1
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
|
|
15
2
|
import { LabelMixin } from "../../internal/mixins/LabelMixin.js";
|
|
3
|
+
import { clamp, reverseNumberInRange } from "../../internal/utils/math.js";
|
|
4
|
+
import { hslaToHex, hslaToRgb, parseColor } from "../../internal/utils/color.js";
|
|
16
5
|
import { drag } from "../../internal/utils/drag.js";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return this.vertical ? 100 : 0;
|
|
146
|
-
}
|
|
147
|
-
const ratio = this.vertical ? this.max / reverseNumberInRange(this.value, this.min, this.max) : this.max / this.value;
|
|
148
|
-
return 100 / ratio;
|
|
149
|
-
}
|
|
150
|
-
render() {
|
|
151
|
-
return html`<div
|
|
6
|
+
import { UUIColorSliderEvent } from "./UUIColorSliderEvent.js";
|
|
7
|
+
import { LitElement, css, html } from "lit";
|
|
8
|
+
import { property } from "lit/decorators.js";
|
|
9
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
10
|
+
import { styleMap } from "lit/directives/style-map.js";
|
|
11
|
+
//#region src/components/color-slider/color-slider.element.ts
|
|
12
|
+
/**
|
|
13
|
+
* @element uui-color-slider
|
|
14
|
+
* @description A slider that is a part of uui-color-picker
|
|
15
|
+
* @fires {UUIColorSliderEvent} change - Fires when the value of the slider changes.
|
|
16
|
+
* @cssprop --uui-slider-height - The height of the slider.
|
|
17
|
+
* @cssprop --uui-slider-handle-size - The size of the slider handle.
|
|
18
|
+
* @cssprop --uui-slider-background-image - The background image of the slider.
|
|
19
|
+
* @cssprop --uui-slider-background-size - The background size of the slider.
|
|
20
|
+
* @cssprop --uui-slider-background-position - The background position of the slider.
|
|
21
|
+
*/
|
|
22
|
+
var UUIColorSliderElement = class extends LabelMixin("label", LitElement) {
|
|
23
|
+
constructor(..._args) {
|
|
24
|
+
super(..._args);
|
|
25
|
+
this.type = "hue";
|
|
26
|
+
this.color = "";
|
|
27
|
+
this.min = 0;
|
|
28
|
+
this.max = 100;
|
|
29
|
+
this.precision = 1;
|
|
30
|
+
this.vertical = false;
|
|
31
|
+
this.value = 0;
|
|
32
|
+
this.readonly = false;
|
|
33
|
+
this.disabled = false;
|
|
34
|
+
this.hideValueLabel = false;
|
|
35
|
+
}
|
|
36
|
+
willUpdate(changedProperties) {
|
|
37
|
+
if (changedProperties.has("type")) {
|
|
38
|
+
const typeMaxValues = {
|
|
39
|
+
hue: 360,
|
|
40
|
+
saturation: 100,
|
|
41
|
+
lightness: 100,
|
|
42
|
+
opacity: 100
|
|
43
|
+
};
|
|
44
|
+
this.max = typeMaxValues[this.type] ?? this.max;
|
|
45
|
+
}
|
|
46
|
+
if ((changedProperties.has("type") || changedProperties.has("color")) && this.color) this.#updateGradients();
|
|
47
|
+
}
|
|
48
|
+
#updateGradients() {
|
|
49
|
+
const parsed = parseColor(this.color);
|
|
50
|
+
if (!parsed) return;
|
|
51
|
+
const { h, s, l } = parsed;
|
|
52
|
+
const { r, g, b } = hslaToRgb(h, s, l);
|
|
53
|
+
const direction = this.vertical ? "top" : "right";
|
|
54
|
+
const gradients = {
|
|
55
|
+
saturation: `linear-gradient(to ${direction}, hsl(${h} 0% ${l}%), hsl(${h} 100% ${l}%))`,
|
|
56
|
+
lightness: `linear-gradient(to ${direction}, hsl(${h} ${s}% 0%), hsl(${h} ${s}% 100%))`
|
|
57
|
+
};
|
|
58
|
+
const hueColor = this.type === "opacity" ? `linear-gradient(to ${direction}, transparent 0%, rgb(${r} ${g} ${b}) 100%)` : null;
|
|
59
|
+
this.style.setProperty("--uui-slider-background-image", gradients[this.type] ?? null);
|
|
60
|
+
this.style.setProperty("--uui-slider-hue-color", hueColor);
|
|
61
|
+
}
|
|
62
|
+
firstUpdated() {
|
|
63
|
+
this.container = this.shadowRoot.querySelector("#color-slider");
|
|
64
|
+
this.handle = this.container.querySelector("#color-slider__handle");
|
|
65
|
+
}
|
|
66
|
+
handleDrag(event) {
|
|
67
|
+
if (this.disabled || this.readonly || !this.container || !this.handle) return;
|
|
68
|
+
const { width, height } = this.container.getBoundingClientRect();
|
|
69
|
+
this.handle.focus();
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
drag(this.container, {
|
|
72
|
+
onMove: (x, y) => {
|
|
73
|
+
if (this.vertical) this.value = reverseNumberInRange(clamp(y / height * this.max, this.min, this.max), this.min, this.max);
|
|
74
|
+
else this.value = clamp(x / width * this.max, this.min, this.max);
|
|
75
|
+
this.syncValues();
|
|
76
|
+
},
|
|
77
|
+
initialEvent: event
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
handleClick(event) {
|
|
81
|
+
if (this.disabled || this.readonly) return;
|
|
82
|
+
this.value = this.getValueFromMousePosition(event);
|
|
83
|
+
this.syncValues();
|
|
84
|
+
}
|
|
85
|
+
handleKeyDown(event) {
|
|
86
|
+
const increment = event.shiftKey ? 10 : 1;
|
|
87
|
+
if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
|
|
88
|
+
event.preventDefault();
|
|
89
|
+
this.value = clamp(this.value - increment, this.min, this.max);
|
|
90
|
+
this.syncValues();
|
|
91
|
+
} else if (event.key === "ArrowRight" || event.key === "ArrowUp") {
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
this.value = clamp(this.value + increment, this.min, this.max);
|
|
94
|
+
this.syncValues();
|
|
95
|
+
} else if (event.key === "Home") {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
this.value = this.min;
|
|
98
|
+
this.syncValues();
|
|
99
|
+
} else if (event.key === "End") {
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
this.value = this.max;
|
|
102
|
+
this.syncValues();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
getValueFromMousePosition(event) {
|
|
106
|
+
if (this.vertical) return this.getValueFromYCoordinate(event.clientY);
|
|
107
|
+
return this.getValueFromXCoordinate(event.clientX);
|
|
108
|
+
}
|
|
109
|
+
getValueFromTouchPosition(event) {
|
|
110
|
+
if (this.vertical) return this.getValueFromYCoordinate(event.touches[0].clientY);
|
|
111
|
+
return this.getValueFromXCoordinate(event.touches[0].clientX);
|
|
112
|
+
}
|
|
113
|
+
getValueFromXCoordinate(coordinate) {
|
|
114
|
+
const { left, width } = this.container.getBoundingClientRect();
|
|
115
|
+
return clamp(this.roundToPrecision((coordinate - left) / width * this.max), this.min, this.max);
|
|
116
|
+
}
|
|
117
|
+
getValueFromYCoordinate(coordinate) {
|
|
118
|
+
const { top, height } = this.container.getBoundingClientRect();
|
|
119
|
+
return clamp(this.roundToPrecision((coordinate - top) / height * this.max), this.min, this.max);
|
|
120
|
+
}
|
|
121
|
+
roundToPrecision(numberToRound) {
|
|
122
|
+
const multiplier = 1 / this.precision;
|
|
123
|
+
return Math.ceil(numberToRound * multiplier) / multiplier;
|
|
124
|
+
}
|
|
125
|
+
syncValues() {
|
|
126
|
+
this.dispatchEvent(new UUIColorSliderEvent(UUIColorSliderEvent.CHANGE));
|
|
127
|
+
}
|
|
128
|
+
get cssPropCurrentValue() {
|
|
129
|
+
if (this.value === 0) return this.vertical ? 100 : 0;
|
|
130
|
+
return 100 / (this.vertical ? this.max / reverseNumberInRange(this.value, this.min, this.max) : this.max / this.value);
|
|
131
|
+
}
|
|
132
|
+
render() {
|
|
133
|
+
return html`<div
|
|
152
134
|
part="slider"
|
|
153
135
|
id="color-slider"
|
|
154
136
|
role="slider"
|
|
155
|
-
aria-label=${ifDefined(
|
|
156
|
-
|
|
157
|
-
)}
|
|
158
|
-
aria-labelledby=${ifDefined(
|
|
159
|
-
this.getAttribute("aria-labelledby") || void 0
|
|
160
|
-
)}
|
|
137
|
+
aria-label=${ifDefined(this.getAttribute("aria-label") || this.label || void 0)}
|
|
138
|
+
aria-labelledby=${ifDefined(this.getAttribute("aria-labelledby") || void 0)}
|
|
161
139
|
aria-orientation="${this.vertical ? "vertical" : "horizontal"}"
|
|
162
140
|
aria-valuemin="${Math.round(this.min)}"
|
|
163
141
|
aria-valuemax="${Math.round(this.max)}"
|
|
@@ -168,42 +146,21 @@ const _UUIColorSliderElement = class _UUIColorSliderElement extends LabelMixin("
|
|
|
168
146
|
@keydown=${this.handleKeyDown}>
|
|
169
147
|
${this.type === "opacity" ? html`<div
|
|
170
148
|
id="current-hue"
|
|
171
|
-
style=${styleMap({
|
|
172
|
-
backgroundImage: `var(--uui-slider-hue-color)`
|
|
173
|
-
})}></div>` : ""}
|
|
149
|
+
style=${styleMap({ backgroundImage: `var(--uui-slider-hue-color)` })}></div>` : ""}
|
|
174
150
|
<!-- <slot name="detail"> </slot> -->
|
|
175
151
|
<span
|
|
176
152
|
id="color-slider__handle"
|
|
177
153
|
style=${styleMap({
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
154
|
+
"--current-value": `${this.cssPropCurrentValue}%`,
|
|
155
|
+
backgroundColor: this.type === "hue" ? hslaToHex(Math.round(this.value), 100, 50) : void 0
|
|
156
|
+
})}
|
|
181
157
|
tabindex=${ifDefined(this.disabled ? void 0 : "0")}>
|
|
182
158
|
</span>
|
|
183
159
|
</div>
|
|
184
160
|
${this.hideValueLabel ? null : Math.round(this.value)}`;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
updateGradients_fn = function() {
|
|
189
|
-
const parsed = parseColor(this.color);
|
|
190
|
-
if (!parsed) return;
|
|
191
|
-
const { h, s, l } = parsed;
|
|
192
|
-
const { r, g, b } = hslaToRgb(h, s, l);
|
|
193
|
-
const direction = this.vertical ? "top" : "right";
|
|
194
|
-
const gradients = {
|
|
195
|
-
saturation: `linear-gradient(to ${direction}, hsl(${h} 0% ${l}%), hsl(${h} 100% ${l}%))`,
|
|
196
|
-
lightness: `linear-gradient(to ${direction}, hsl(${h} ${s}% 0%), hsl(${h} ${s}% 100%))`
|
|
197
|
-
};
|
|
198
|
-
const hueColor = this.type === "opacity" ? `linear-gradient(to ${direction}, transparent 0%, rgb(${r} ${g} ${b}) 100%)` : null;
|
|
199
|
-
this.style.setProperty(
|
|
200
|
-
"--uui-slider-background-image",
|
|
201
|
-
gradients[this.type] ?? null
|
|
202
|
-
);
|
|
203
|
-
this.style.setProperty("--uui-slider-hue-color", hueColor);
|
|
204
|
-
};
|
|
205
|
-
_UUIColorSliderElement.styles = [
|
|
206
|
-
css`
|
|
161
|
+
}
|
|
162
|
+
static {
|
|
163
|
+
this.styles = [css`
|
|
207
164
|
:host {
|
|
208
165
|
--uui-slider-height: 15px;
|
|
209
166
|
--uui-slider-handle-size: 17px;
|
|
@@ -319,40 +276,33 @@ _UUIColorSliderElement.styles = [
|
|
|
319
276
|
position: absolute;
|
|
320
277
|
inset: 0 0 0 0;
|
|
321
278
|
}
|
|
322
|
-
`
|
|
323
|
-
|
|
324
|
-
let UUIColorSliderElement = _UUIColorSliderElement;
|
|
325
|
-
__decorateClass([
|
|
326
|
-
property({ reflect: true })
|
|
327
|
-
], UUIColorSliderElement.prototype, "type");
|
|
328
|
-
__decorateClass([
|
|
329
|
-
property()
|
|
330
|
-
], UUIColorSliderElement.prototype, "color");
|
|
331
|
-
__decorateClass([
|
|
332
|
-
property({ type: Number })
|
|
333
|
-
], UUIColorSliderElement.prototype, "min");
|
|
334
|
-
__decorateClass([
|
|
335
|
-
property({ type: Number })
|
|
336
|
-
], UUIColorSliderElement.prototype, "max");
|
|
337
|
-
__decorateClass([
|
|
338
|
-
property({ type: Number })
|
|
339
|
-
], UUIColorSliderElement.prototype, "precision");
|
|
340
|
-
__decorateClass([
|
|
341
|
-
property({ type: Boolean, reflect: true })
|
|
342
|
-
], UUIColorSliderElement.prototype, "vertical");
|
|
343
|
-
__decorateClass([
|
|
344
|
-
property({ type: Number })
|
|
345
|
-
], UUIColorSliderElement.prototype, "value");
|
|
346
|
-
__decorateClass([
|
|
347
|
-
property({ type: Boolean, reflect: true })
|
|
348
|
-
], UUIColorSliderElement.prototype, "readonly");
|
|
349
|
-
__decorateClass([
|
|
350
|
-
property({ type: Boolean, reflect: true })
|
|
351
|
-
], UUIColorSliderElement.prototype, "disabled");
|
|
352
|
-
__decorateClass([
|
|
353
|
-
property({ type: Boolean, attribute: "hide-value-label", reflect: true })
|
|
354
|
-
], UUIColorSliderElement.prototype, "hideValueLabel");
|
|
355
|
-
export {
|
|
356
|
-
UUIColorSliderElement
|
|
279
|
+
`];
|
|
280
|
+
}
|
|
357
281
|
};
|
|
358
|
-
|
|
282
|
+
__decorate([property({ reflect: true })], UUIColorSliderElement.prototype, "type", void 0);
|
|
283
|
+
__decorate([property()], UUIColorSliderElement.prototype, "color", void 0);
|
|
284
|
+
__decorate([property({ type: Number })], UUIColorSliderElement.prototype, "min", void 0);
|
|
285
|
+
__decorate([property({ type: Number })], UUIColorSliderElement.prototype, "max", void 0);
|
|
286
|
+
__decorate([property({ type: Number })], UUIColorSliderElement.prototype, "precision", void 0);
|
|
287
|
+
__decorate([property({
|
|
288
|
+
type: Boolean,
|
|
289
|
+
reflect: true
|
|
290
|
+
})], UUIColorSliderElement.prototype, "vertical", void 0);
|
|
291
|
+
__decorate([property({ type: Number })], UUIColorSliderElement.prototype, "value", void 0);
|
|
292
|
+
__decorate([property({
|
|
293
|
+
type: Boolean,
|
|
294
|
+
reflect: true
|
|
295
|
+
})], UUIColorSliderElement.prototype, "readonly", void 0);
|
|
296
|
+
__decorate([property({
|
|
297
|
+
type: Boolean,
|
|
298
|
+
reflect: true
|
|
299
|
+
})], UUIColorSliderElement.prototype, "disabled", void 0);
|
|
300
|
+
__decorate([property({
|
|
301
|
+
type: Boolean,
|
|
302
|
+
attribute: "hide-value-label",
|
|
303
|
+
reflect: true
|
|
304
|
+
})], UUIColorSliderElement.prototype, "hideValueLabel", void 0);
|
|
305
|
+
//#endregion
|
|
306
|
+
export { UUIColorSliderElement };
|
|
307
|
+
|
|
308
|
+
//# sourceMappingURL=color-slider.element.js.map
|