@univerjs/ui 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.css CHANGED
@@ -1 +1 @@
1
- .univer-underline{text-decoration-line:underline}.univer-ui-plugin-sheets-font-family{overflow:hidden;width:120px;font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.univer-ui-plugin-sheets-font-family-item{font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size{width:28px;height:24px;font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size-input{height:24px;line-height:24px;background-color:transparent;border:none}.univer-ui-plugin-sheets-font-size-input input{font-size:var(--font-size-xs);background-color:transparent}.univer-popup-fixed{position:fixed;z-index:1000;top:-9999px;left:-9999px}.univer-menu-item-no-hover,.univer-menu-item-no-hover.univer-menu-item-active{background:none}.univer-menu-item-activated{background-color:rgb(var(--bg-color-hover))}.univer-menu-item-content{display:inline-flex;gap:var(--margin-xs);align-items:center}.univer-menu-item-selectable{position:relative;padding-left:var(--padding-xl)}.univer-menu-item-selectable-icon{position:absolute;left:0;display:inline-flex;align-items:center;font-size:var(--font-size-lg)}.univer-menu-item-more-icon{font-size:var(--font-size-sm);color:rgb(var(--text-color))}.univer-progress-bar{width:160px;height:4px;background-color:rgb(var(--border-color));border-radius:var(--border-radius-lg);margin-right:var(--margin-xs)}.univer-progress-bar-container{display:flex;align-items:center;margin:0 var(--margin-xs) 0 var(--margin-xs)}.univer-progress-bar-label{font-size:var(--font-size-xxs);color:rgb(var(--text-color-secondary));width:98px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--margin-xs);line-height:17px}.univer-progress-bar-inner{height:4px;border-radius:var(--border-radius-lg);transition:width .5s}.univer-progress-bar-close-button{background:none;border:none;font-size:var(--font-size-xxs);color:rgb(var(--text-color));cursor:pointer;padding:0;margin:0;line-height:1;display:flex;align-items:center}.univer-progress-bar-close-button:hover{color:rgb(var(--text-color-secondary))}.univer-shortcut-panel-group-title{height:40px;font-size:13px;font-weight:700;line-height:40px}.univer-shortcut-panel-item{display:flex;justify-content:space-between;height:40px;font-size:13px;line-height:40px}.univer-shortcut-panel-item-title{overflow:hidden;flex-grow:1;flex-shrink:1;max-width:200px;text-overflow:ellipsis;text-wrap:nowrap}.univer-shortcut-panel-item-shortcut{flex-grow:0;flex-shrink:0}.univer-shortcut-panel-item:not(:last-of-type){border-bottom:1px solid rgb(var(--grey-200))}.univer-float-dom-wrapper{z-index:10}.univer-float-dom{overflow:hidden}.univer-toolbar-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0;font-size:var(--font-size-lg);color:rgb(var(--text-color));background-color:transparent;border:none;border-radius:var(--border-radius-base);outline:none}.univer-toolbar-btn:not([disabled]):hover{background-color:rgb(var(--grey-100))}.univer-toolbar-btn[disabled]{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-btn-active{background-color:rgb(var(--grey-100))}.univer-toolbar-btn-active[disabled]{color:rgba(var(--text-color),.25)}.univer-headerbar{user-select:none;position:relative}.univer-headerbar>.univer-header-menu{position:absolute;top:0;right:0;display:flex;box-sizing:border-box;height:100%}.univer-headerbar>.univer-header-menu>div{user-select:none;display:inline-flex;align-items:center;height:28px;margin-left:4px;padding:2px 4px;text-align:center;border-radius:4px}.univer-headerbar>.univer-header-menu>div:hover{background-color:rgb(var(--grey-300))}.univer-menubar{display:flex;gap:var(--margin-xs);align-items:center;justify-content:center;height:32px}.univer-menubar-item{cursor:pointer;display:block;padding:var(--padding-xs) var(--padding-sm);font-size:var(--font-size-xs);font-weight:400;border-radius:var(--border-radius-base);transition:all .1s ease-in-out}.univer-menubar-item:hover:not(.univer-menubar-item-active){background:rgb(var(--grey-300))}.univer-menubar-item-active{color:rgb(var(--color-white));background:rgb(var(--primary-color))}.univer-toolbar{user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;font-size:var(--font-size-base);color:rgb(var(--text-color));background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-toolbar-container{padding:0 var(--padding-lg);display:flex;gap:var(--margin-xs);align-items:center;justify-content:center;box-sizing:border-box;height:100%;margin:0 auto;max-width:100%;overflow:hidden}.univer-toolbar-more{max-width:80%}.univer-toolbar-more-container{display:grid;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-base)}.univer-toolbar-more-container .univer-toolbar-group{flex-wrap:wrap}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child):after{content:initial}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child)>*{margin-bottom:var(--margin-xs)}.univer-toolbar-group{display:flex;gap:var(--margin-xs);align-items:center;flex-shrink:0}.univer-toolbar-group>*{flex-shrink:0}.univer-toolbar-group:not(:last-child,:empty):after{content:"";display:block;width:1px;height:20px;background-color:rgb(var(--border-color));flex-shrink:0}.univer-toolbar-item-select-button{cursor:pointer;position:relative;overflow:hidden;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding-right:18px;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-button-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-label:hover,.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-100))!important}.univer-toolbar-item-select-button-activated,.univer-toolbar-item-select-button:hover,.univer-toolbar-item-select-button:hover .univer-toolbar-item-select-button-label{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select-button-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 var(--padding-xs)}.univer-toolbar-item-select-button-label:hover{background-color:rgb(var(--grey-300))!important}.univer-toolbar-item-select-button-arrow{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;width:100%;height:100%;padding-right:var(--padding-xs);color:rgb(var(--grey-400))}.univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-300))}.univer-toolbar-item-select{cursor:pointer;position:relative;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding:0 var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-disabled.univer-toolbar-item-select-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-disabled.univer-toolbar-item-select-activated:hover,.univer-toolbar-item-select-activated{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select:hover{background-color:rgb(var(--grey-100));border-radius:var(--border-radius-base)}.univer-toolbar-item-select-arrow{display:flex;align-items:center;height:100%;color:rgb(var(--grey-400))}.univer-toolbar-item-select-arrow-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated:hover,.univer-toolbar-item-select-arrow-activated{background-color:rgb(var(--grey-100))}.univer-sidebar{position:relative;transform:translate(100%);box-sizing:border-box;width:0;height:100%;color:rgb(var(--text-color))}.univer-sidebar.univer-sidebar-open{transform:translate(0);width:380px}.univer-sidebar-container{overflow-y:auto;display:grid;grid-template-rows:auto 1fr auto;box-sizing:border-box;width:100%;height:0;min-height:100%;margin:auto;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));border-left:1px solid rgb(var(--border-color));scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-sidebar-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;height:44px;padding:var(--padding-xl) var(--padding-xl) 0;font-size:var(--font-size-lg);font-weight:500;background:rgb(var(--bg-color-secondary));box-sizing:border-box;z-index:10}.univer-sidebar-header-close{cursor:pointer;color:rgb(var(--text-color-secondary))}.univer-sidebar-body{padding:0 var(--padding-xl);box-sizing:border-box}.univer-sidebar-footer{position:sticky;bottom:0;padding:var(--padding-xl);background:rgb(var(--bg-color-secondary));box-sizing:border-box}.univer-zen-zone{position:absolute;z-index:-1;transition:all .2s ease-in-out;display:flex;flex-direction:row}.univer-zen-zone-open{z-index:100;top:0;left:0;width:100%;height:100%;background:rgb(var(--bg-color));opacity:1}.univer-zen-zone-close{opacity:0}.univer-zen-zone-editor-container{flex:1;position:relative}.univer-global-zone{position:absolute;display:none}.univer-global-zone-open{z-index:100;top:0;left:0;display:block;width:100%;height:100%;background:rgb(var(--bg-color))}.univer-global-zone-close{display:none}.univer-workbench-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-workbench-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-workbench-container-header{position:relative;z-index:10;width:100%}.univer-workbench-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-workbench-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-workbench-container-doc-content{background:rgb(var(--bg-color-secondary))}.univer-workbench-container-canvas{position:relative;overflow:hidden}.univer-workbench-container-left-sidebar,.univer-workbench-container-sidebar{height:100%}.univer-mobile-menu-container{min-width:32px;max-width:200px;display:grid;grid-gap:4px;background-color:#000;border-radius:4px;padding:4px 8px}.univer-mobile-menu-item{display:flex;flex-direction:column;justify-content:center;align-items:center;border:none;background:none;color:#fff;width:48px}.univer-mobile-menu-item>svg{font-size:18px;height:18px;width:18px}.univer-mobile-menu-item>span{width:100%;margin-top:2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.univer-app-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-app-header{width:100vw}.univer-app-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-app-container-header{position:relative;z-index:10;width:100%}.univer-app-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-app-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-app-container-canvas{position:relative;overflow:hidden}.univer-app-container-left-sidebar,.univer-app-container-sidebar{height:100%}.univer-notification{position:fixed;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;box-sizing:border-box;margin:var(--margin-xs) 0}.univer-notification-notice{display:flex;gap:var(--margin-xs);justify-content:space-between;width:280px;padding:var(--padding-lg);font-size:var(--font-size-lg);background-color:rgb(var(--color-white));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-lg)}.univer-notification-notice-wrapper{margin:var(--margin-xs) var(--margin-base)}.univer-notification-notice-content{display:inline-flex;gap:var(--margin-xs);align-items:center;align-items:flex-start}.univer-notification-notice-close{cursor:pointer;display:flex;align-items:center;justify-content:center;width:fit-content;height:fit-content;padding:var(--padding-xs);color:rgb(var(--text-color-secondary));border-radius:var(--border-radius-base);outline:none;transition:background-color .2s}.univer-notification-notice-close:hover{background-color:rgb(var(--bg-color-hover))}.univer-notification-icon{padding:var(--padding-xs)}.univer-notification-icon-success{color:rgb(var(--success-color))}.univer-notification-icon-info{color:rgb(var(--info-color))}.univer-notification-icon-warning{color:rgb(var(--warning-color))}.univer-notification-icon-error{color:rgb(var(--error-color))}.univer-notification-content-container{display:inline-flex;flex-direction:column;gap:var(--margin-xs);align-items:flex-start;padding-top:var(--padding-xs)}.univer-notification-title{color:rgb(var(--text-color))}.univer-notification-content{color:rgb(var(--text-color-secondary))}.univer-notification-content-ellipsis{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical}.univer-notification-top,.univer-notification-topLeft,.univer-notification-topRight{top:0}.univer-notification-bottom,.univer-notification-bottomRight,.univer-notification-bottomLeft{bottom:0}.univer-notification-bottomRight,.univer-notification-topRight{right:0}.univer-notification-fade{overflow:hidden;transition:all .3s}.univer-notification-fade-appear-prepare{opacity:0}.univer-notification-fade-appear-start{transform:translate(100%);opacity:0}.univer-notification-fade-appear-active{transform:translate(0);opacity:1}.univer-notification-fade-appear,.univer-notification-fade-enter{opacity:0;animation-play-state:paused;animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both}.univer-notification-fade-leave{animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both;animation-play-state:paused}.univer-notification-fade-appear.univer-notification-fade-appear-active,.univer-notification-fade-enter.univer-notification-fade-enter-active{animation-name:univer-notification-fade-in;animation-play-state:running}.univer-notification-fade-leave.univer-notification-fade-leave-active{animation-name:univer-notification-fade-out;animation-play-state:running}@keyframes univer-notification-fade-in{0%{opacity:0}to{opacity:1}}@keyframes univer-notification-fade-out{0%{opacity:1}to{opacity:0}}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(63 131 248 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*{scrollbar-color:initial;scrollbar-width:initial}.univer-underline{text-decoration-line:underline}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.univer-ui-plugin-sheets-font-family{overflow:hidden;width:120px;font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.univer-ui-plugin-sheets-font-family-item{font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size{width:28px;height:24px;font-size:var(--font-size-xs)}.univer-ui-plugin-sheets-font-size-input{height:24px;line-height:24px;background-color:transparent;border:none}.univer-ui-plugin-sheets-font-size-input input{font-size:var(--font-size-xs);background-color:transparent}.univer-popup-fixed{position:fixed;z-index:1000;top:-9999px;left:-9999px}.univer-menu-item-no-hover,.univer-menu-item-no-hover.univer-menu-item-active{background:none}.univer-menu-item-activated{background-color:rgb(var(--bg-color-hover))}.univer-menu-item-content{display:inline-flex;gap:var(--margin-xs);align-items:center}.univer-menu-item-selectable{position:relative;padding-left:var(--padding-xl)}.univer-menu-item-selectable-icon{position:absolute;left:0;display:inline-flex;align-items:center;font-size:var(--font-size-lg)}.univer-menu-item-more-icon{font-size:var(--font-size-sm);color:rgb(var(--text-color))}.univer-progress-bar{width:160px;height:4px;background-color:rgb(var(--border-color));border-radius:var(--border-radius-lg);margin-right:var(--margin-xs)}.univer-progress-bar-container{display:flex;align-items:center;margin:0 var(--margin-xs) 0 var(--margin-xs)}.univer-progress-bar-label{font-size:var(--font-size-xxs);color:rgb(var(--text-color-secondary));width:98px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--margin-xs);line-height:17px}.univer-progress-bar-inner{height:4px;border-radius:var(--border-radius-lg);transition:width .5s}.univer-progress-bar-close-button{background:none;border:none;font-size:var(--font-size-xxs);color:rgb(var(--text-color));cursor:pointer;padding:0;margin:0;line-height:1;display:flex;align-items:center}.univer-progress-bar-close-button:hover{color:rgb(var(--text-color-secondary))}.univer-shortcut-panel-group-title{height:40px;font-size:13px;font-weight:700;line-height:40px}.univer-shortcut-panel-item{display:flex;justify-content:space-between;height:40px;font-size:13px;line-height:40px}.univer-shortcut-panel-item-title{overflow:hidden;flex-grow:1;flex-shrink:1;max-width:200px;text-overflow:ellipsis;text-wrap:nowrap}.univer-shortcut-panel-item-shortcut{flex-grow:0;flex-shrink:0}.univer-shortcut-panel-item:not(:last-of-type){border-bottom:1px solid rgb(var(--grey-200))}.univer-float-dom-wrapper{z-index:10}.univer-float-dom{overflow:hidden}.univer-toolbar-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0;font-size:var(--font-size-lg);color:rgb(var(--text-color));background-color:transparent;border:none;border-radius:var(--border-radius-base);outline:none}.univer-toolbar-btn:not([disabled]):hover{background-color:rgb(var(--grey-100))}.univer-toolbar-btn[disabled]{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-btn-no-icon{padding:var(--padding-xs)}.univer-toolbar-btn-active{background-color:rgb(var(--grey-100))}.univer-toolbar-btn-active[disabled]{color:rgba(var(--text-color),.25)}.univer-headerbar{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative}.univer-headerbar>.univer-header-menu{position:absolute;top:0;right:0;display:flex;box-sizing:border-box;height:100%}.univer-headerbar>.univer-header-menu>div{-webkit-user-select:none;-moz-user-select:none;user-select:none;display:inline-flex;align-items:center;height:28px;margin-left:4px;padding:2px 4px;text-align:center;border-radius:4px}.univer-headerbar>.univer-header-menu>div:hover{background-color:rgb(var(--grey-300))}.univer-menubar{display:flex;gap:var(--margin-xs);align-items:center;justify-content:center;height:32px}.univer-menubar-item{cursor:pointer;display:block;padding:var(--padding-xs) var(--padding-sm);font-size:var(--font-size-xs);font-weight:400;border-radius:var(--border-radius-base);transition:all .1s ease-in-out}.univer-menubar-item:hover:not(.univer-menubar-item-active){background:rgb(var(--grey-300))}.univer-menubar-item-active{color:rgb(var(--color-white));background:rgb(var(--primary-color))}.univer-toolbar{-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:32px;font-size:var(--font-size-base);color:rgb(var(--text-color));background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-toolbar-container{flex:1;padding:0 var(--padding-lg);display:flex;gap:var(--margin-xs);align-items:center;justify-content:center;box-sizing:border-box;height:100%;margin:0 auto;max-width:100%;overflow:hidden}.univer-toolbar-more{max-width:80%}.univer-toolbar-more-container{display:grid;box-sizing:border-box;padding:var(--padding-sm);background-color:rgb(var(--bg-color-secondary));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-base)}.univer-toolbar-more-container .univer-toolbar-group{flex-wrap:wrap}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child):after{content:initial}.univer-toolbar-more-container .univer-toolbar-group:not(:last-child)>*{margin-bottom:var(--margin-xs)}.univer-toolbar-group{display:flex;gap:var(--margin-xs);align-items:center;flex-shrink:0}.univer-toolbar-group>*{flex-shrink:0}.univer-toolbar-group:not(:last-child,:empty):after{content:"";display:block;width:1px;height:20px;background-color:rgb(var(--border-color));flex-shrink:0}.univer-toolbar-item-select-button{cursor:pointer;position:relative;overflow:hidden;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding-right:18px;font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-button-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-label:hover,.univer-toolbar-item-select-button-disabled.univer-toolbar-item-select-button-activated .univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-100))!important}.univer-toolbar-item-select-button-activated,.univer-toolbar-item-select-button:hover,.univer-toolbar-item-select-button:hover .univer-toolbar-item-select-button-label{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select-button-label{position:relative;z-index:1;display:flex;align-items:center;height:100%;padding:0 var(--padding-xs)}.univer-toolbar-item-select-button-label:hover{background-color:rgb(var(--grey-300))!important}.univer-toolbar-item-select-button-arrow{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;box-sizing:border-box;width:100%;height:100%;padding-right:var(--padding-xs);color:rgb(var(--grey-400))}.univer-toolbar-item-select-button-arrow:hover{background-color:rgb(var(--grey-300))}.univer-toolbar-item-select{cursor:pointer;position:relative;display:flex;gap:var(--margin-xs);align-items:center;height:24px;padding:0 var(--padding-xs);font-size:var(--font-size-lg);border-radius:var(--border-radius-base)}.univer-toolbar-item-select-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-disabled.univer-toolbar-item-select-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-disabled.univer-toolbar-item-select-activated:hover,.univer-toolbar-item-select-activated{background-color:rgb(var(--grey-100))}.univer-toolbar-item-select:hover{background-color:rgb(var(--grey-100));border-radius:var(--border-radius-base)}.univer-toolbar-item-select-arrow{display:flex;align-items:center;height:100%;color:rgb(var(--grey-400))}.univer-toolbar-item-select-arrow-disabled{cursor:not-allowed;color:rgb(var(--grey-200))}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated{color:rgba(var(--text-color),.25)}.univer-toolbar-item-select-arrow-disabled.univer-toolbar-item-select-arrow-activated:hover,.univer-toolbar-item-select-arrow-activated{background-color:rgb(var(--grey-100))}.univer-sidebar{position:relative;transform:translate(100%);box-sizing:border-box;width:0;height:100%;color:rgb(var(--text-color))}.univer-sidebar.univer-sidebar-open{transform:translate(0);width:380px}.univer-sidebar-container{overflow-y:auto;display:grid;grid-template-rows:auto 1fr auto;box-sizing:border-box;width:100%;height:0;min-height:100%;margin:auto;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color));border-left:1px solid rgb(var(--border-color));scrollbar-color:rgba(var(--scrollbar-color),.7) transparent;scrollbar-gutter:auto;scrollbar-width:thin}.univer-sidebar-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;height:44px;padding:var(--padding-xl) var(--padding-xl) 0;font-size:var(--font-size-lg);font-weight:500;background:rgb(var(--bg-color-secondary));box-sizing:border-box;z-index:10}.univer-sidebar-header-close{cursor:pointer;color:rgb(var(--text-color-secondary))}.univer-sidebar-body{padding:0 var(--padding-xl);box-sizing:border-box}.univer-sidebar-footer{position:sticky;bottom:0;padding:var(--padding-xl);background:rgb(var(--bg-color-secondary));box-sizing:border-box}.univer-zen-zone{position:absolute;z-index:-1;transition:all .2s ease-in-out;display:flex;flex-direction:row}.univer-zen-zone-open{z-index:100;top:0;left:0;width:100%;height:100%;background:rgb(var(--bg-color));opacity:1}.univer-zen-zone-close{opacity:0}.univer-zen-zone-editor-container{flex:1;position:relative}.univer-global-zone{position:absolute;display:none}.univer-global-zone-open{z-index:100;top:0;left:0;display:block;width:100%;height:100%;background:rgb(var(--bg-color))}.univer-global-zone-close{display:none}.univer-workbench-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-workbench-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-workbench-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-workbench-container-header{position:relative;z-index:10;width:100%}.univer-workbench-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-workbench-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-workbench-container-doc-content{background:rgb(var(--bg-color-secondary))}.univer-workbench-container-canvas{position:relative;overflow:hidden}.univer-workbench-container-left-sidebar,.univer-workbench-container-sidebar{height:100%}.univer-mobile-menu-container{min-width:32px;max-width:200px;display:grid;grid-gap:4px;background-color:#000;border-radius:4px;padding:4px 8px}.univer-mobile-menu-item{display:flex;flex-direction:column;justify-content:center;align-items:center;border:none;background:none;color:#fff;width:48px}.univer-mobile-menu-item>svg{font-size:18px;height:18px;width:18px}.univer-mobile-menu-item>span{width:100%;margin-top:2px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.univer-app-layout{display:flex;flex-direction:column;height:100%;background-color:rgb(var(--bg-color));min-height:0;position:relative}.univer-app-custom-header{position:relative;display:flex;flex-direction:column;min-height:0;background-color:rgb(var(--color-white))}.univer-app-header{width:100vw}.univer-app-container{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.univer-app-container-header{position:relative;z-index:10;width:100%}.univer-app-container-wrapper{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:100%;height:100%;overflow:hidden}.univer-app-container-content{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr;flex:1;background-color:rgb(var(--bg-color-secondary));border-bottom:1px solid rgb(var(--border-color))}.univer-app-container-canvas{position:relative;overflow:hidden}.univer-app-container-left-sidebar,.univer-app-container-sidebar{height:100%}.univer-notification{position:fixed;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;box-sizing:border-box;margin:var(--margin-xs) 0}.univer-notification-notice{display:flex;gap:var(--margin-xs);justify-content:space-between;width:280px;padding:var(--padding-lg);font-size:var(--font-size-lg);background-color:rgb(var(--color-white));border-radius:var(--border-radius-base);box-shadow:var(--box-shadow-lg)}.univer-notification-notice-wrapper{margin:var(--margin-xs) var(--margin-base)}.univer-notification-notice-content{display:inline-flex;gap:var(--margin-xs);align-items:center;align-items:flex-start}.univer-notification-notice-close{cursor:pointer;display:flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;padding:var(--padding-xs);color:rgb(var(--text-color-secondary));border-radius:var(--border-radius-base);outline:none;transition:background-color .2s}.univer-notification-notice-close:hover{background-color:rgb(var(--bg-color-hover))}.univer-notification-icon{padding:var(--padding-xs)}.univer-notification-icon-success{color:rgb(var(--success-color))}.univer-notification-icon-info{color:rgb(var(--info-color))}.univer-notification-icon-warning{color:rgb(var(--warning-color))}.univer-notification-icon-error{color:rgb(var(--error-color))}.univer-notification-content-container{display:inline-flex;flex-direction:column;gap:var(--margin-xs);align-items:flex-start;padding-top:var(--padding-xs)}.univer-notification-title{color:rgb(var(--text-color))}.univer-notification-content{color:rgb(var(--text-color-secondary))}.univer-notification-content-ellipsis{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical}.univer-notification-top,.univer-notification-topLeft,.univer-notification-topRight{top:0}.univer-notification-bottom,.univer-notification-bottomRight,.univer-notification-bottomLeft{bottom:0}.univer-notification-bottomRight,.univer-notification-topRight{right:0}.univer-notification-fade{overflow:hidden;transition:all .3s}.univer-notification-fade-appear-prepare{opacity:0}.univer-notification-fade-appear-start{transform:translate(100%);opacity:0}.univer-notification-fade-appear-active{transform:translate(0);opacity:1}.univer-notification-fade-appear,.univer-notification-fade-enter{opacity:0;animation-play-state:paused;animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both}.univer-notification-fade-leave{animation-duration:.3s;animation-timing-function:cubic-bezier(.55,0,.55,.2);animation-fill-mode:both;animation-play-state:paused}.univer-notification-fade-appear.univer-notification-fade-appear-active,.univer-notification-fade-enter.univer-notification-fade-enter-active{animation-name:univer-notification-fade-in;animation-play-state:running}.univer-notification-fade-leave.univer-notification-fade-leave-active{animation-name:univer-notification-fade-out;animation-play-state:running}@keyframes univer-notification-fade-in{0%{opacity:0}to{opacity:1}}@keyframes univer-notification-fade-out{0%{opacity:1}to{opacity:0}}
@@ -15,9 +15,21 @@
15
15
  */
16
16
  export interface IWorkbenchOptions {
17
17
  container?: string | HTMLElement;
18
+ /**
19
+ * If Univer should make the header bar visible.
20
+ */
18
21
  header?: boolean;
22
+ /**
23
+ * If Univer should make the toolbar bar visible.
24
+ */
19
25
  toolbar?: boolean;
26
+ /**
27
+ * If Univer should make the footer bar visible.
28
+ */
20
29
  footer?: boolean;
30
+ /**
31
+ * If Univer should make the context menu usable.
32
+ */
21
33
  contextMenu?: boolean;
22
34
  }
23
35
  export interface IUIController {
@@ -0,0 +1,106 @@
1
+ import { MenuSchemaType, IMenuManagerService, MenuManagerPosition, RibbonPosition, RibbonStartGroup } from '@univerjs/ui';
2
+ import { FBase, ICommandService, Injector } from '@univerjs/core';
3
+ export interface IFacadeMenuItem {
4
+ /**
5
+ * The unique identifier of the menu item.
6
+ */
7
+ id: string;
8
+ /**
9
+ * Icon of the menu item.
10
+ */
11
+ icon?: string;
12
+ /**
13
+ * Title of the menu item.
14
+ */
15
+ title: string;
16
+ /**
17
+ * The tooltip to show when the mouse hovers over the menu item.
18
+ */
19
+ tooltip?: string;
20
+ /**
21
+ * The command to execute when the menu item is clicked. It can also be a callback function to
22
+ * execute any custom logic.
23
+ */
24
+ action: string | (() => void);
25
+ /**
26
+ * The order of the menu item in the submenu.
27
+ */
28
+ order?: number;
29
+ }
30
+ export interface IFacadeSubmenuItem {
31
+ /**
32
+ * The unique identifier of the menu item.
33
+ */
34
+ id: string;
35
+ /**
36
+ * Icon of the menu item.
37
+ */
38
+ icon?: string;
39
+ /**
40
+ * Title of the menu item.
41
+ */
42
+ title: string;
43
+ /**
44
+ * The tooltip to show when the mouse hovers over the menu item.
45
+ */
46
+ tooltip?: string;
47
+ /**
48
+ * The order of the menu item in the submenu.
49
+ */
50
+ order?: number;
51
+ }
52
+ /**
53
+ * This is a build for adding a menu to Univer. Please notice that until the `appendTo` method is called,
54
+ * the menu item is not added to the UI. Please note that this menu cannot have submenus. If you want to
55
+ * have submenus, please use `FSubmenu`.
56
+ */
57
+ export declare class FMenu extends FBase {
58
+ private readonly _item;
59
+ protected readonly _injector: Injector;
60
+ protected readonly _commandService: ICommandService;
61
+ protected readonly _menuManagerService: IMenuManagerService;
62
+ static RibbonStartGroup: typeof RibbonStartGroup;
63
+ static RibbonPosition: typeof RibbonPosition;
64
+ static MenuManagerPosition: typeof MenuManagerPosition;
65
+ private _commandToRegister;
66
+ private _buildingSchema;
67
+ constructor(_item: IFacadeMenuItem, _injector: Injector, _commandService: ICommandService, _menuManagerService: IMenuManagerService);
68
+ /** @ignore */
69
+ __getSchema(): {
70
+ [key: string]: MenuSchemaType;
71
+ };
72
+ /**
73
+ * Append the menu to any menu position on Univer UI.
74
+ * @param path Some predefined path to append the menu.
75
+ */
76
+ appendTo(path: string): void;
77
+ }
78
+ export declare class FSubmenu extends FBase {
79
+ private readonly _item;
80
+ protected readonly _injector: Injector;
81
+ protected readonly _menuManagerService: IMenuManagerService;
82
+ private _menuByGroups;
83
+ private _submenus;
84
+ private _buildingSchema;
85
+ constructor(_item: IFacadeSubmenuItem, _injector: Injector, _menuManagerService: IMenuManagerService);
86
+ /**
87
+ * Add a menu to the submenu. It can be a {@link FMenu} or a {@link FSubmenu}.
88
+ * @param submenu Menu to add to the submenu.
89
+ * @returns The FSubmenu itself for chaining calls.
90
+ */
91
+ addSubmenu(submenu: FMenu | FSubmenu): this;
92
+ /**
93
+ * Add a separator to the submenu.
94
+ * @returns The FSubmenu itself for chaining calls.
95
+ */
96
+ addSeparator(): this;
97
+ /**
98
+ * Append the menu to any menu position on Univer UI.
99
+ * @param path Some predefined path to append the menu.
100
+ */
101
+ appendTo(path: string): void;
102
+ /** @ignore */
103
+ __getSchema(): {
104
+ [key: string]: MenuSchemaType;
105
+ };
106
+ }
@@ -0,0 +1,11 @@
1
+ import { IShortcutItem, IShortcutService } from '@univerjs/ui';
2
+ import { FBase, Injector } from '@univerjs/core';
3
+ export declare class FShortcut extends FBase {
4
+ protected readonly _injector: Injector;
5
+ protected readonly _shortcutService: IShortcutService;
6
+ private _forceEscapeDisposable;
7
+ constructor(_injector: Injector, _shortcutService: IShortcutService);
8
+ enableShortcut(): void;
9
+ disableShortcut(): void;
10
+ dispatchShortcutEvent(e: KeyboardEvent): IShortcutItem<object> | undefined;
11
+ }
@@ -1,14 +1,76 @@
1
1
  import { IDisposable, FUniver } from '@univerjs/core';
2
+ import { IMessageProps } from '@univerjs/design';
2
3
  import { IDialogPartMethodOptions, ISidebarMethodOptions, ComponentManager } from '@univerjs/ui';
4
+ import { IFacadeMenuItem, IFacadeSubmenuItem, FMenu, FSubmenu } from './f-menu-builder';
5
+ import { FShortcut } from './f-shortcut';
3
6
  export interface IFUniverUIMixin {
7
+ /**
8
+ * Return the URL of the current page.
9
+ * @returns the [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) object
10
+ */
11
+ getURL(): URL;
12
+ /**
13
+ * Get the Shortcut handler to interact with Univer's shortcut functionalities.
14
+ */
15
+ getShortcut(): FShortcut;
16
+ /**
17
+ * Copy the current selected content of the currently focused unit into your system clipboard.
18
+ */
4
19
  copy(): Promise<boolean>;
20
+ /**
21
+ * Paste into the current selected position of the currently focused unit from your system clipboard.
22
+ */
5
23
  paste(): Promise<boolean>;
24
+ /**
25
+ * Create a menu build object. You can insert new menus into the UI.
26
+ * @param {IFacadeMenuItem} menuItem the menu item
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * univerAPI.createMenu({
31
+ * id: 'custom-menu',
32
+ * title: 'Custom Menu',
33
+ * action: () => {},
34
+ * }).appendTo('ribbon.start.others');
35
+ * ```
36
+ *
37
+ * @returns the {@link FMenu} object
38
+ */
39
+ createMenu(menuItem: IFacadeMenuItem): FMenu;
40
+ /**
41
+ * Create a menu that contains submenus, and later you can append this menu and its submenus to the UI.
42
+ * @param submenuItem the submenu item
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * univerAPI.createSubmenu({ id: 'custom-submenu', title: 'Custom Submenu' })
47
+ * .addSubmenu(univerAPI.createSubmenu({ id: 'submenu-nested', title: 'Nested Submenu' })
48
+ * .addSubmenu(univerAPI.createMenu({ id: 'submenu-nested-1', title: 'Item 1', action: () => {} }))
49
+ * .addSeparator()
50
+ * .addSubmenu(univerAPI.createMenu({ id: 'submenu-nested-2', title: 'Item 2', action: () => {} }))
51
+ * )
52
+ * .appendTo('contextMenu.others');
53
+ * ```
54
+ *
55
+ * @returns the {@link FSubmenu} object
56
+ */
57
+ createSubmenu(submenuItem: IFacadeSubmenuItem): FSubmenu;
6
58
  /**
7
59
  * Open a sidebar.
60
+ *
61
+ * @deprecated Please use `openSidebar` instead.
8
62
  * @param params the sidebar options
9
63
  * @returns the disposable object
10
64
  */
11
65
  openSiderbar(params: ISidebarMethodOptions): IDisposable;
66
+ /**
67
+ * Open a sidebar.
68
+ *
69
+ * @deprecated Please use `openSidebar` instead.
70
+ * @param params the sidebar options
71
+ * @returns the disposable object
72
+ */
73
+ openSidebar(params: ISidebarMethodOptions): IDisposable;
12
74
  /**
13
75
  * Open a dialog.
14
76
  * @param dialog the dialog options
@@ -20,13 +82,30 @@ export interface IFUniverUIMixin {
20
82
  * @returns The component manager
21
83
  */
22
84
  getComponentManager(): ComponentManager;
85
+ /**
86
+ * Show a message.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const message = univerAPI.showMessage({ key: 'my-message', content: 'Warning', duration: 0 });
91
+ *
92
+ * someAction().then(() => message.dispose());
93
+ * ```
94
+ */
95
+ showMessage(options: IMessageProps): void;
23
96
  }
24
97
  export declare class FUniverUIMixin extends FUniver implements IFUniverUIMixin {
98
+ getURL(): URL;
99
+ getShortcut(): FShortcut;
25
100
  copy(): Promise<boolean>;
26
101
  paste(): Promise<boolean>;
102
+ createMenu(menuItem: IFacadeMenuItem): FMenu;
103
+ createSubmenu(submenuItem: IFacadeSubmenuItem): FSubmenu;
27
104
  openSiderbar(params: ISidebarMethodOptions): IDisposable;
105
+ openSidebar(params: ISidebarMethodOptions): IDisposable;
28
106
  openDialog(dialog: IDialogPartMethodOptions): IDisposable;
29
107
  getComponentManager(): ComponentManager;
108
+ showMessage(options: IMessageProps): void;
30
109
  }
31
110
  declare module '@univerjs/core' {
32
111
  interface FUniver extends IFUniverUIMixin {
@@ -15,5 +15,7 @@
15
15
  */
16
16
  import './f-univer';
17
17
  import './f-hooks';
18
+ import './f-menu-builder';
18
19
  export type * from './f-hooks';
20
+ export type * from './f-menu-builder';
19
21
  export type * from './f-univer';
@@ -36,7 +36,7 @@ export { IUIController, type IWorkbenchOptions } from './controllers/ui/ui.contr
36
36
  export { DesktopUIController } from './controllers/ui/ui-desktop.controller';
37
37
  export { UniverMobileUIPlugin } from './mobile-ui-plugin';
38
38
  export { DesktopBeforeCloseService, IBeforeCloseService } from './services/before-close/before-close.service';
39
- export { CopyCommand, CutCommand, PasteCommand } from './services/clipboard/clipboard.command';
39
+ export { CopyCommand, CutCommand, PasteCommand, SheetPasteShortKeyCommandName } from './services/clipboard/clipboard.command';
40
40
  export { BrowserClipboardService, FILE__BMP_CLIPBOARD_MIME_TYPE, FILE__JPEG_CLIPBOARD_MIME_TYPE, FILE__WEBP_CLIPBOARD_MIME_TYPE, FILE_PNG_CLIPBOARD_MIME_TYPE, FILE_SVG_XML_CLIPBOARD_MIME_TYPE, HTML_CLIPBOARD_MIME_TYPE, IClipboardInterfaceService, PLAIN_TEXT_CLIPBOARD_MIME_TYPE, } from './services/clipboard/clipboard-interface.service';
41
41
  export { IConfirmService } from './services/confirm/confirm.service';
42
42
  export { DesktopConfirmService } from './services/confirm/desktop-confirm.service';
@@ -2,3 +2,4 @@ import { IMultiCommand } from '@univerjs/core';
2
2
  export declare const CopyCommand: IMultiCommand;
3
3
  export declare const CutCommand: IMultiCommand;
4
4
  export declare const PasteCommand: IMultiCommand;
5
+ export declare const SheetPasteShortKeyCommandName = "sheet.command.paste-bu-short-key";
@@ -1,8 +1,8 @@
1
+ import { IDialogPartMethodOptions } from '../../views/components/dialog-part/interface';
2
+ import { IDialogService } from './dialog.service';
1
3
  import { Disposable, IDisposable, Injector } from '@univerjs/core';
2
4
  import { Subject } from 'rxjs';
3
- import { IDialogPartMethodOptions } from '../../views/components/dialog-part/interface';
4
5
  import { IUIPartsService } from '../parts/parts.service';
5
- import { IDialogService } from './dialog.service';
6
6
  export declare class DesktopDialogService extends Disposable implements IDialogService {
7
7
  protected readonly _injector: Injector;
8
8
  protected readonly _uiPartsService: IUIPartsService;
@@ -1,11 +1,11 @@
1
- import { IMessageOptions, IMessageProps } from '@univerjs/design';
2
1
  import { IDisposable } from '@univerjs/core';
2
+ import { IMessageProps } from '@univerjs/design';
3
3
  import { IMessageService } from '../message.service';
4
4
  /**
5
5
  * This is a mocked message service for testing purposes.
6
6
  */
7
7
  export declare class MockMessageService implements IMessageService {
8
- show(_options: IMessageOptions & Omit<IMessageProps, 'key'>): IDisposable;
8
+ show(_options: IMessageProps): IDisposable;
9
9
  setContainer(): void;
10
10
  getContainer(): HTMLElement | undefined;
11
11
  }
@@ -1,11 +1,12 @@
1
- import { IDisposable } from '@univerjs/core';
2
- import { IMessageOptions, IMessageProps, Message } from '@univerjs/design';
1
+ import { IMessageProps } from '@univerjs/design';
3
2
  import { IMessageService } from './message.service';
4
- export declare class DesktopMessageService implements IMessageService, IDisposable {
5
- protected _portalContainer: HTMLElement | undefined;
6
- protected _message?: Message;
3
+ import { Disposable, Injector } from '@univerjs/core';
4
+ import { IUIPartsService } from '../parts/parts.service';
5
+ export declare class DesktopMessageService extends Disposable implements IMessageService {
6
+ protected readonly _injector: Injector;
7
+ protected readonly _uiPartsService: IUIPartsService;
8
+ constructor(_injector: Injector, _uiPartsService: IUIPartsService);
9
+ protected _initUIPart(): void;
7
10
  dispose(): void;
8
- setContainer(container: HTMLElement): void;
9
- getContainer(): HTMLElement | undefined;
10
- show(options: IMessageOptions & Omit<IMessageProps, 'key'>): IDisposable;
11
+ show(options: IMessageProps): void;
11
12
  }
@@ -1,8 +1,5 @@
1
- import { IDisposable } from '@univerjs/core';
2
- import { IMessageOptions } from '@univerjs/design';
1
+ import { IMessageProps } from '@univerjs/design';
3
2
  export declare const IMessageService: import('@wendellhu/redi').IdentifierDecorator<IMessageService>;
4
3
  export interface IMessageService {
5
- show(options: IMessageOptions): IDisposable;
6
- setContainer(container: HTMLElement): void;
7
- getContainer(): HTMLElement | undefined;
4
+ show(options: IMessageProps): void;
8
5
  }
@@ -11,7 +11,8 @@ export declare enum BuiltInUIPart {
11
11
  FOOTER = "footer",
12
12
  LEFT_SIDEBAR = "left-sidebar",
13
13
  FLOATING = "floating",
14
- UNIT = "unit"
14
+ UNIT = "unit",
15
+ CUSTOM_HEADER = "custom-header"
15
16
  }
16
17
  export interface IUIPartsService {
17
18
  componentRegistered$: Observable<ComponentPartKey>;
@@ -70,6 +70,11 @@ export interface IShortcutService {
70
70
  * @returns {IDisposable} a disposable that could be used to cancel the force escaping.
71
71
  */
72
72
  forceEscape(): IDisposable;
73
+ /**
74
+ * Dispatch a keyboard event to the shortcut service and check if there is a shortcut that matches the event.
75
+ * @param e - the keyboard event to be dispatched.
76
+ */
77
+ dispatch(e: KeyboardEvent): IShortcutItem<object> | undefined;
73
78
  /**
74
79
  * Register a shortcut item to the shortcut service.
75
80
  * @param {IShortcutItem} shortcut - the shortcut item to be registered.
@@ -115,7 +120,7 @@ export declare class ShortcutService extends Disposable implements IShortcutServ
115
120
  private _emitShortcutChanged;
116
121
  forceEscape(): IDisposable;
117
122
  private _resolveKeyboardEvent;
118
- private _dispatch;
123
+ dispatch(e: KeyboardEvent): IShortcutItem<object> | undefined;
119
124
  private _getBindingFromItem;
120
125
  private _deriveBindingFromEvent;
121
126
  }
@@ -18,6 +18,10 @@ export interface IBaseToolbarButtonProps {
18
18
  * @default false
19
19
  */
20
20
  active?: boolean;
21
+ /**
22
+ * This toolbar button has no icon
23
+ */
24
+ noIcon?: boolean;
21
25
  onMouseEnter?: React.MouseEventHandler;
22
26
  onMouseLeave?: React.MouseEventHandler;
23
27
  }
@@ -1,6 +1,6 @@
1
- import { default as React } from 'react';
2
- import { IDropdownProps } from '@univerjs/design';
1
+ import { IDropdownLegacyProps } from '@univerjs/design';
3
2
  import { IDisplayMenuItem, IMenuItem } from '../../../services/menu/menu';
3
+ import { default as React } from 'react';
4
4
  export declare const ToolbarItem: React.ForwardRefExoticComponent<(IDisplayMenuItem<IMenuItem> & {
5
- align?: IDropdownProps["align"];
5
+ align?: IDropdownLegacyProps["align"];
6
6
  }) & React.RefAttributes<any>>;
@@ -1,4 +1,4 @@
1
- import { IDropdownProps, ITooltipProps, NullableTooltipRef } from '@univerjs/design';
1
+ import { IDropdownLegacyProps, ITooltipProps, NullableTooltipRef } from '@univerjs/design';
2
2
  import { default as React } from 'react';
3
3
  export declare const TooltipWrapper: React.ForwardRefExoticComponent<ITooltipProps & React.RefAttributes<NullableTooltipRef>>;
4
- export declare function DropdownWrapper(props: IDropdownProps): React.JSX.Element;
4
+ export declare function DropdownWrapper(props: IDropdownLegacyProps): React.JSX.Element;
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(e,n){typeof exports=="object"&&typeof module<"u"?n(require("@univerjs/core"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/ui"],n):(e=typeof globalThis<"u"?globalThis:e||self,n(e.UniverCore,e.UniverUi))})(this,function(e,n){"use strict";class r extends e.FUniver{copy(){return this._commandService.executeCommand(n.CopyCommand.id)}paste(){return this._commandService.executeCommand(n.PasteCommand.id)}openSiderbar(i){return this._injector.get(n.ISidebarService).open(i)}openDialog(i){const o=this._injector.get(n.IDialogService).open({...i,onClose:()=>{o.dispose()}});return o}getComponentManager(){return this._injector.get(n.ComponentManager)}}e.FUniver.extend(r);class d extends e.FHooks{onBeforeCopy(i){return this._injector.get(e.ICommandService).beforeCommandExecuted(o=>{o.id===n.CopyCommand.id&&i()})}onCopy(i){return this._injector.get(e.ICommandService).onCommandExecuted(o=>{o.id===n.CopyCommand.id&&i()})}onBeforePaste(i){return this._injector.get(e.ICommandService).beforeCommandExecuted(o=>{o.id===n.PasteCommand.id&&i()})}onPaste(i){return this._injector.get(e.ICommandService).onCommandExecuted(o=>{o.id===n.PasteCommand.id&&i()})}}e.FHooks.extend(d)});
1
+ (function(n,i){typeof exports=="object"&&typeof module<"u"?i(require("@univerjs/core"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/ui"],i):(n=typeof globalThis<"u"?globalThis:n||self,i(n.UniverCore,n.UniverUi))})(this,function(n,i){"use strict";var M=Object.defineProperty;var y=(n,i,m)=>i in n?M(n,i,{enumerable:!0,configurable:!0,writable:!0,value:m}):n[i]=m;var c=(n,i,m)=>y(n,typeof i!="symbol"?i+"":i,m);var u;var m=Object.defineProperty,l=Object.getOwnPropertyDescriptor,v=(o,e,t,r)=>{for(var s=r>1?void 0:r?l(e,t):e,a=o.length-1,d;a>=0;a--)(d=o[a])&&(s=(r?d(e,t,s):d(s))||s);return r&&s&&m(e,t,s),s},h=(o,e)=>(t,r)=>e(t,r,o);let p=(u=class extends n.FBase{constructor(e,t,r,s){super();c(this,"_commandToRegister",new Map);c(this,"_buildingSchema");this._item=e,this._injector=t,this._commandService=r,this._menuManagerService=s;const a=typeof e.action=="string"?e.action:n.Tools.generateRandomId(12);a!==e.action&&this._commandToRegister.set(a,e.action),this._buildingSchema={menuItemFactory:()=>({id:e.id,type:i.MenuItemType.BUTTON,icon:e.icon,title:e.title,tooltip:e.tooltip,commandId:a})},typeof e.order<"u"&&(this._buildingSchema.order=e.order)}__getSchema(){return this._commandToRegister.forEach((e,t)=>{this._commandService.hasCommand(t)||this._commandService.registerCommand({id:t,type:n.CommandType.COMMAND,handler:e})}),{[this._item.id]:this._buildingSchema}}appendTo(e){const t=this.__getSchema();this._menuManagerService.mergeMenu({[e]:t})}},c(u,"RibbonStartGroup",i.RibbonStartGroup),c(u,"RibbonPosition",i.RibbonPosition),c(u,"MenuManagerPosition",i.MenuManagerPosition),u);p=v([h(1,n.Inject(n.Injector)),h(2,n.ICommandService),h(3,i.IMenuManagerService)],p);let S=class extends n.FBase{constructor(e,t,r){super();c(this,"_menuByGroups",[]);c(this,"_submenus",[]);c(this,"_buildingSchema");this._item=e,this._injector=t,this._menuManagerService=r,this._buildingSchema={menuItemFactory:()=>({id:e.id,type:i.MenuItemType.SUBITEMS,icon:e.icon,title:e.title,tooltip:e.tooltip})},typeof e.order<"u"&&(this._buildingSchema.order=e.order)}addSubmenu(e){return this._submenus.push(e),this}addSeparator(){return this._menuByGroups.push(this._submenus),this._submenus=[],this}appendTo(e){const t=this.__getSchema();this._menuManagerService.mergeMenu({[e]:t})}__getSchema(){const e={};return this.addSeparator(),this._menuByGroups.forEach((t,r)=>{const s={};t.forEach(a=>{Object.assign(s,a.__getSchema())}),e[`${this._item.id}-group-${r}`]=s}),{[this._item.id]:Object.assign(this._buildingSchema,e)}}};S=v([h(1,n.Inject(n.Injector)),h(2,i.IMenuManagerService)],S);var f=Object.defineProperty,b=Object.getOwnPropertyDescriptor,C=(o,e,t,r)=>{for(var s=r>1?void 0:r?b(e,t):e,a=o.length-1,d;a>=0;a--)(d=o[a])&&(s=(r?d(e,t,s):d(s))||s);return r&&s&&f(e,t,s),s},g=(o,e)=>(t,r)=>e(t,r,o);let _=class extends n.FBase{constructor(e,t){super();c(this,"_forceEscapeDisposable",null);this._injector=e,this._shortcutService=t}enableShortcut(){var e;(e=this._forceEscapeDisposable)==null||e.dispose(),this._forceEscapeDisposable=null}disableShortcut(){this._forceEscapeDisposable||(this._forceEscapeDisposable=this._shortcutService.forceEscape())}dispatchShortcutEvent(e){return this._shortcutService.dispatch(e)}};_=C([g(0,n.Inject(n.Injector)),g(1,i.IShortcutService)],_);class j extends n.FUniver{getURL(){return new URL(window.location.href)}getShortcut(){return this._injector.createInstance(_)}copy(){return this._commandService.executeCommand(i.CopyCommand.id)}paste(){return this._commandService.executeCommand(i.PasteCommand.id)}createMenu(e){return this._injector.createInstance(p,e)}createSubmenu(e){return this._injector.createInstance(S,e)}openSiderbar(e){return this._injector.get(i.ISidebarService).open(e)}openSidebar(e){return this.openSiderbar(e)}openDialog(e){const r=this._injector.get(i.IDialogService).open({...e,onClose:()=>{r.dispose()}});return r}getComponentManager(){return this._injector.get(i.ComponentManager)}showMessage(e){this._injector.get(i.IMessageService).show(e)}}n.FUniver.extend(j);class I extends n.FHooks{onBeforeCopy(e){return this._injector.get(n.ICommandService).beforeCommandExecuted(r=>{r.id===i.CopyCommand.id&&e()})}onCopy(e){return this._injector.get(n.ICommandService).onCommandExecuted(r=>{r.id===i.CopyCommand.id&&e()})}onBeforePaste(e){return this._injector.get(n.ICommandService).beforeCommandExecuted(r=>{r.id===i.PasteCommand.id&&e()})}onPaste(e){return this._injector.get(n.ICommandService).onCommandExecuted(r=>{(r.id===i.PasteCommand.id||r.id===i.SheetPasteShortKeyCommandName)&&e()})}}n.FHooks.extend(I)});