@univerjs/ui 0.6.1 → 0.6.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.
Files changed (53) hide show
  1. package/README.md +4 -0
  2. package/lib/cjs/facade.js +1 -1
  3. package/lib/cjs/index.js +46 -35
  4. package/lib/cjs/locale/en-US.js +1 -1
  5. package/lib/cjs/locale/fa-IR.js +1 -1
  6. package/lib/cjs/locale/fr-FR.js +1 -1
  7. package/lib/cjs/locale/ru-RU.js +1 -1
  8. package/lib/cjs/locale/vi-VN.js +1 -1
  9. package/lib/cjs/locale/zh-CN.js +1 -1
  10. package/lib/cjs/locale/zh-TW.js +1 -1
  11. package/lib/es/facade.js +176 -74
  12. package/lib/es/index.js +3902 -3618
  13. package/lib/es/locale/en-US.js +4 -1
  14. package/lib/es/locale/fa-IR.js +4 -1
  15. package/lib/es/locale/fr-FR.js +4 -1
  16. package/lib/es/locale/ru-RU.js +4 -1
  17. package/lib/es/locale/vi-VN.js +4 -1
  18. package/lib/es/locale/zh-CN.js +6 -3
  19. package/lib/es/locale/zh-TW.js +6 -3
  20. package/lib/index.css +1 -1
  21. package/lib/types/components/index.d.ts +1 -0
  22. package/lib/types/components/menu/desktop/Menu.d.ts +2 -0
  23. package/lib/types/components/slider/Slider.d.ts +47 -0
  24. package/lib/types/components/slider/Slider.stories.d.ts +7 -0
  25. package/lib/types/components/slider/index.d.ts +16 -0
  26. package/lib/types/controllers/ui/ui-desktop.controller.d.ts +5 -16
  27. package/lib/types/controllers/ui/ui-mobile.controller.d.ts +5 -13
  28. package/lib/types/controllers/ui/ui-shared.controller.d.ts +18 -0
  29. package/lib/types/facade/f-enum.d.ts +9 -1
  30. package/lib/types/facade/f-hooks.d.ts +4 -6
  31. package/lib/types/facade/f-menu-builder.d.ts +61 -2
  32. package/lib/types/facade/f-shortcut.d.ts +37 -2
  33. package/lib/types/facade/f-univer.d.ts +275 -38
  34. package/lib/types/index.d.ts +0 -1
  35. package/lib/types/locale/zh-CN.d.ts +3 -0
  36. package/lib/types/services/menu/menu.d.ts +4 -0
  37. package/lib/types/services/shortcut/shortcut.service.d.ts +4 -4
  38. package/lib/types/views/components/ribbon/Button/ToolbarButton.d.ts +15 -1
  39. package/lib/types/views/components/ribbon/ToolbarItem.d.ts +1 -5
  40. package/lib/types/views/components/ribbon/TooltipButtonWrapper.d.ts +16 -5
  41. package/lib/types/views/mobile-workbench/MobileWorkbench.d.ts +6 -0
  42. package/lib/umd/facade.js +1 -1
  43. package/lib/umd/index.js +46 -35
  44. package/lib/umd/locale/en-US.js +1 -1
  45. package/lib/umd/locale/fa-IR.js +1 -1
  46. package/lib/umd/locale/fr-FR.js +1 -1
  47. package/lib/umd/locale/ru-RU.js +1 -1
  48. package/lib/umd/locale/vi-VN.js +1 -1
  49. package/lib/umd/locale/zh-CN.js +1 -1
  50. package/lib/umd/locale/zh-TW.js +1 -1
  51. package/package.json +8 -9
  52. package/lib/types/views/MobileApp.d.ts +0 -6
  53. package/lib/types/views/parts.d.ts +0 -2
@@ -57,7 +57,10 @@ const e = {
57
57
  confirm: "Confirm",
58
58
  cancel: "Cancel"
59
59
  },
60
- "global-shortcut": "Global Shortcut"
60
+ "global-shortcut": "Global Shortcut",
61
+ "zoom-slider": {
62
+ resetTo: "Reset to"
63
+ }
61
64
  };
62
65
  export {
63
66
  e as default
@@ -57,7 +57,10 @@ const i = {
57
57
  confirm: "تایید",
58
58
  cancel: "انصراف"
59
59
  },
60
- "global-shortcut": "کلید میانبر جهانی"
60
+ "global-shortcut": "کلید میانبر جهانی",
61
+ "zoom-slider": {
62
+ resetTo: "بازنشانی به"
63
+ }
61
64
  };
62
65
  export {
63
66
  i as default
@@ -57,7 +57,10 @@ const e = {
57
57
  confirm: "Confirmer",
58
58
  cancel: "Annuler"
59
59
  },
60
- "global-shortcut": "Raccourci global"
60
+ "global-shortcut": "Raccourci global",
61
+ "zoom-slider": {
62
+ resetTo: "Réinitialiser à"
63
+ }
61
64
  };
62
65
  export {
63
66
  e as default
@@ -57,7 +57,10 @@ const i = {
57
57
  confirm: "Подтвердить",
58
58
  cancel: "Отменить"
59
59
  },
60
- "global-shortcut": "Глобальные ярлыки"
60
+ "global-shortcut": "Глобальные ярлыки",
61
+ "zoom-slider": {
62
+ resetTo: "Сбросить до"
63
+ }
61
64
  };
62
65
  export {
63
66
  i as default
@@ -57,7 +57,10 @@ const n = {
57
57
  confirm: "Xác nhận",
58
58
  cancel: "Hủy"
59
59
  },
60
- "global-shortcut": "Phím tắt toàn cầu"
60
+ "global-shortcut": "Phím tắt toàn cầu",
61
+ "zoom-slider": {
62
+ resetTo: "Khôi phục đến"
63
+ }
61
64
  };
62
65
  export {
63
66
  n as default
@@ -1,4 +1,4 @@
1
- const t = {
1
+ const o = {
2
2
  ribbon: {
3
3
  start: "开始",
4
4
  insert: "插入",
@@ -57,8 +57,11 @@ const t = {
57
57
  confirm: "确认",
58
58
  cancel: "取消"
59
59
  },
60
- "global-shortcut": "全局快捷键"
60
+ "global-shortcut": "全局快捷键",
61
+ "zoom-slider": {
62
+ resetTo: "恢复至"
63
+ }
61
64
  };
62
65
  export {
63
- t as default
66
+ o as default
64
67
  };
@@ -1,4 +1,4 @@
1
- const t = {
1
+ const o = {
2
2
  ribbon: {
3
3
  start: "開始",
4
4
  insert: "插入",
@@ -57,8 +57,11 @@ const t = {
57
57
  confirm: "確認",
58
58
  cancel: "取消"
59
59
  },
60
- "global-shortcut": "全域快捷鍵"
60
+ "global-shortcut": "全域快捷鍵",
61
+ "zoom-slider": {
62
+ resetTo: "恢復至"
63
+ }
61
64
  };
62
65
  export {
63
- t as default
66
+ o as default
64
67
  };
package/lib/index.css CHANGED
@@ -1 +1 @@
1
- .univer-pointer-events-none{pointer-events:none}.univer-invisible{visibility:hidden}.univer-absolute{position:absolute}.univer-relative{position:relative}.univer-left-0{left:0}.univer-right-0{right:0}.univer-right-2{right:.5rem}.univer-top-0{top:0}.univer-top-\[-99999px\]{top:-99999px}.univer-mx-auto{margin-left:auto;margin-right:auto}.univer-box-border{box-sizing:border-box}.univer-flex{display:flex}.univer-grid{display:grid}.univer-h-0{height:0px}.univer-h-6{height:1.5rem}.univer-h-8{height:2rem}.univer-h-full{height:100%}.univer-w-5{width:1.25rem}.univer-flex-1{flex:1 1 0%}.univer-cursor-not-allowed{cursor:not-allowed}.univer-cursor-pointer{cursor:pointer}.univer-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-gap-1{gap:.25rem}.univer-gap-2{gap:.5rem}.univer-overflow-hidden{overflow:hidden}.univer-rounded{border-radius:.25rem}.\!univer-bg-primary-500{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.univer-bg-gray-200{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.univer-bg-gray-50{--tw-bg-opacity: 1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--tw-bg-opacity, 1))}.univer-bg-primary-500{--tw-bg-opacity: 1;background-color:#466af7;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))}.univer-px-2{padding-left:.5rem;padding-right:.5rem}.univer-px-4{padding-left:1rem;padding-right:1rem}.univer-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.univer-pr-5{padding-right:1.25rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-gray-200{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-700{--tw-text-opacity: 1;color:#2c3040;color:rgba(44,48,64,var(--tw-text-opacity, 1))}.univer-text-white{--tw-text-opacity: 1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity, 1))}.univer-underline{text-decoration-line:underline}.univer-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.univer-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\!univer-bg-primary-500:hover{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.hover\:univer-bg-gray-100:hover{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-300:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.\[\&\>\*\]\:univer-inline-flex>*{display:inline-flex}.\[\&\>\*\]\:univer-h-6>*{height:1.5rem}.\[\&\>\*\]\:univer-items-center>*{align-items:center}.\[\&\>\*\]\:univer-rounded>*{border-radius:.25rem}.\[\&\>\*\]\:univer-px-1>*{padding-left:.25rem;padding-right:.25rem}.\[\&\>\*\]\:univer-transition-colors>*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\[\&\>\*\]\:univer-bg-gray-300>*:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.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:1020;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-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-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:normal;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):not(: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;align-items:center;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{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{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: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{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}}
1
+ .univer-pointer-events-none{pointer-events:none}.univer-invisible{visibility:hidden}.univer-absolute{position:absolute}.univer-relative{position:relative}.univer-inset-0{top:0;right:0;bottom:0;left:0}.univer-left-0{left:0}.univer-left-1{left:.25rem}.univer-left-1\/2{left:50%}.univer-right-0{right:0}.univer-right-2{right:.5rem}.univer-top-0{top:0}.univer-top-0\.5{top:.125rem}.univer-top-1\/2{top:50%}.univer-top-\[-99999px\]{top:-99999px}.univer-z-10{z-index:10}.univer-z-\[-1\]{z-index:-1}.univer-z-\[100\]{z-index:100}.univer-mx-auto{margin-left:auto;margin-right:auto}.univer-box-border{box-sizing:border-box}.univer-block{display:block}.univer-flex{display:flex}.univer-grid{display:grid}.univer-hidden{display:none}.univer-h-0{height:0px}.univer-h-0\.5{height:.125rem}.univer-h-6{height:1.5rem}.univer-h-7{height:1.75rem}.univer-h-8{height:2rem}.univer-h-full{height:100%}.univer-w-0\.5{width:.125rem}.univer-w-5{width:1.25rem}.univer-w-\[55px\]{width:55px}.univer-min-w-6{min-width:1.5rem}.univer-flex-1{flex:1 1 0%}.-univer-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(-50%,var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-univer-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),-50%) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.univer-cursor-not-allowed{cursor:not-allowed}.univer-cursor-pointer{cursor:pointer}.univer-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.univer-items-center{align-items:center}.univer-justify-center{justify-content:center}.univer-gap-1{gap:.25rem}.univer-gap-2{gap:.5rem}.univer-overflow-hidden{overflow:hidden}.univer-rounded{border-radius:.25rem}.univer-rounded-full{border-radius:9999px}.univer-border-none{border-style:none}.\!univer-bg-gray-200{--tw-bg-opacity: 1 !important;background-color:#e3e5ea!important;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))!important}.\!univer-bg-primary-500{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.univer-bg-gray-100{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.univer-bg-gray-200{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.univer-bg-gray-50{--tw-bg-opacity: 1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--tw-bg-opacity, 1))}.univer-bg-primary-500{--tw-bg-opacity: 1;background-color:#466af7;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))}.univer-bg-transparent{background-color:transparent}.univer-bg-white{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.univer-p-0{padding:0}.univer-p-4{padding:1rem}.univer-px-2{padding-left:.5rem;padding-right:.5rem}.univer-px-4{padding-left:1rem;padding-right:1rem}.univer-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.univer-py-1{padding-top:.25rem;padding-bottom:.25rem}.univer-pl-6{padding-left:1.5rem}.univer-pr-5{padding-right:1.25rem}.univer-text-base{font-size:1rem;line-height:1.5rem}.univer-text-sm{font-size:.875rem;line-height:1.25rem}.univer-text-gray-100{--tw-text-opacity: 1;color:#eeeff1;color:rgba(238,239,241,var(--tw-text-opacity, 1))}.univer-text-gray-200{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.univer-text-gray-400{--tw-text-opacity: 1;color:#979dac;color:rgba(151,157,172,var(--tw-text-opacity, 1))}.univer-text-gray-700{--tw-text-opacity: 1;color:#2c3040;color:rgba(44,48,64,var(--tw-text-opacity, 1))}.univer-text-gray-800{--tw-text-opacity: 1;color:#181c2a;color:rgba(24,28,42,var(--tw-text-opacity, 1))}.univer-text-gray-900{--tw-text-opacity: 1;color:#0e111e;color:rgba(14,17,30,var(--tw-text-opacity, 1))}.univer-text-primary-600{--tw-text-opacity: 1;color:#2c53f1;color:rgba(44,83,241,var(--tw-text-opacity, 1))}.univer-text-white{--tw-text-opacity: 1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity, 1))}.univer-underline{text-decoration-line:underline}.univer-outline-none{outline:2px solid transparent;outline-offset:2px}.univer-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.univer-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity, 1);transform:translateZ(0) scaleZ(1) rotate(0);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:1;opacity:var(--tw-exit-opacity, 1);transform:translateZ(0) scaleZ(1) rotate(0);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-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial }.univer-fade-in{--tw-enter-opacity: 0 }.univer-slide-in-from-top-full{--tw-enter-translate-y: -100% }.hover\:\!univer-bg-primary-500:hover{--tw-bg-opacity: 1 !important;background-color:#466af7!important;background-color:rgba(70,106,247,var(--tw-bg-opacity, 1))!important}.hover\:univer-bg-gray-100:hover{--tw-bg-opacity: 1;background-color:#eeeff1;background-color:rgba(238,239,241,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-200:hover{--tw-bg-opacity: 1;background-color:#e3e5ea;background-color:rgba(227,229,234,var(--tw-bg-opacity, 1))}.hover\:univer-bg-gray-300:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.focus\:univer-bg-white:focus{--tw-bg-opacity: 1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity, 1))}.\[\&\:disabled\]\:univer-cursor-not-allowed:disabled{cursor:not-allowed}.\[\&\:disabled\]\:univer-text-gray-200:disabled{--tw-text-opacity: 1;color:#e3e5ea;color:rgba(227,229,234,var(--tw-text-opacity, 1))}.\[\&\:disabled\]\:hover\:univer-bg-transparent:hover:disabled{background-color:transparent}.\[\&\>\*\]\:univer-inline-flex>*{display:inline-flex}.\[\&\>\*\]\:univer-h-6>*{height:1.5rem}.\[\&\>\*\]\:univer-items-center>*{align-items:center}.\[\&\>\*\]\:univer-rounded>*{border-radius:.25rem}.\[\&\>\*\]\:univer-px-1>*{padding-left:.25rem;padding-right:.25rem}.\[\&\>\*\]\:univer-transition-colors>*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:\[\&\>\*\]\:univer-bg-gray-300>*:hover{--tw-bg-opacity: 1;background-color:#cdd0d8;background-color:rgba(205,208,216,var(--tw-bg-opacity, 1))}.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-slider{-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;gap:var(--margin-xxs);align-items:center}.univer-slider-disabled{cursor:not-allowed}.univer-slider-disabled .univer-slider-rail{background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-handle{background-color:rgb(var(--grey-300));box-shadow:none}.univer-slider-disabled .univer-slider-handle:hover{cursor:not-allowed;background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-reset-point{cursor:not-allowed}.univer-slider-disabled .univer-slider-value:hover{cursor:not-allowed;background-color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-value{pointer-events:none;color:rgb(var(--grey-300))}.univer-slider-disabled .univer-slider-value:hover{background-color:transparent}.univer-slider-rail{position:relative;width:116px;height:2px;padding:0 6px;background-color:rgb(var(--text-color-secondary));border-radius:15px}.univer-slider-inner-rail{position:relative;height:2px}.univer-slider-handle{cursor:pointer;position:absolute;top:calc(50% - 6px);transform:translate(-50%);width:12px;height:12px;background-color:rgb(var(--color-white));border-radius:50%;box-shadow:0 0 6px #0000001a;transition:background .2s}.univer-slider-handle:hover{background-color:rgb(var(--border-color));box-shadow:none}.univer-slider-reset-point{cursor:pointer;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:4px;height:2px;background-color:rgb(var(--color-white));border-radius:50%}.univer-slider-value{cursor:pointer;width:55px;height:28px;font-size:var(--font-size-xs);line-height:2;color:rgb(var(--text-color-secondary-darker));text-align:center;border-radius:var(--border-radius-base);transition:all .2s;-webkit-text-decoration:none;text-decoration:none}.univer-slider-value:hover{background-color:rgb(var(--border-color));text-decoration:inherit;color:inherit}.univer-slider-value.univer-dropdown-open{background-color:rgb(var(--border-color))}.univer-popup-fixed{position:fixed;z-index:1020;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-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-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:normal;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):not(: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;align-items:center;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{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{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: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{background-color:rgb(var(--grey-100))}.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-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-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}}
@@ -17,3 +17,4 @@ export * from './custom-label';
17
17
  export * from './font-family';
18
18
  export * from './font-size';
19
19
  export { useScrollYOverContainer } from './hooks/layout';
20
+ export { type ISliderProps, Slider } from './slider';
@@ -1,4 +1,5 @@
1
1
  import { IValueOption } from '../../../services/menu/menu';
2
+ /** @deprecated */
2
3
  export interface IBaseMenuProps {
3
4
  parentKey?: string | number;
4
5
  menuType?: string;
@@ -11,4 +12,5 @@ export interface IBaseMenuProps {
11
12
  overViewport?: 'scroll';
12
13
  onOptionSelect?: (option: IValueOption) => void;
13
14
  }
15
+ /** @deprecated */
14
16
  export declare const Menu: (props: IBaseMenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Co., Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export interface ISliderProps {
17
+ /** The value of slider. When range is false, use number, otherwise, use [number, number] */
18
+ value: number;
19
+ /**
20
+ * The minimum value the slider can slide to
21
+ * @default 0
22
+ */
23
+ min?: number;
24
+ /**
25
+ * The maximum value the slider can slide to
26
+ * @default 400
27
+ */
28
+ max?: number;
29
+ /**
30
+ * Whether the slider is disabled
31
+ * @default false
32
+ */
33
+ disabled?: boolean;
34
+ /**
35
+ * The maximum value the slider can slide to
36
+ * @default 100
37
+ */
38
+ resetPoint?: number;
39
+ /** Shortcuts of slider */
40
+ shortcuts: number[];
41
+ /** (value) => void */
42
+ onChange?: (value: number) => void;
43
+ }
44
+ /**
45
+ * Slider Component
46
+ */
47
+ export declare function Slider(props: ISliderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { Slider } from './Slider';
3
+ declare const meta: Meta<typeof Slider>;
4
+ export default meta;
5
+ export declare const Playground: {
6
+ render(): import("react/jsx-runtime").JSX.Element;
7
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Co., Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export { type ISliderProps, Slider } from './Slider';
@@ -1,24 +1,13 @@
1
+ import { IDisposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
1
2
  import { IUniverUIConfig } from '../config.schema';
2
- import { Disposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
3
3
  import { IRenderManagerService } from '@univerjs/engine-render';
4
4
  import { ILayoutService } from '../../services/layout/layout.service';
5
5
  import { IMenuManagerService } from '../../services/menu/menu-manager.service';
6
6
  import { IUIPartsService } from '../../services/parts/parts.service';
7
- export declare class DesktopUIController extends Disposable {
7
+ import { SingleUnitUIController } from './ui-shared.controller';
8
+ export declare class DesktopUIController extends SingleUnitUIController {
8
9
  private readonly _config;
9
- private readonly _renderManagerService;
10
- private readonly _instanceSrv;
11
- private readonly _injector;
12
- private readonly _lifecycleService;
13
- private readonly _uiPartsService;
14
- private readonly _menuManagerService;
15
- private readonly _layoutService?;
16
- private _steadyTimeout;
17
- private _renderTimeout;
18
- constructor(_config: IUniverUIConfig, _renderManagerService: IRenderManagerService, _instanceSrv: IUniverInstanceService, _injector: Injector, _lifecycleService: LifecycleService, _uiPartsService: IUIPartsService, _menuManagerService: IMenuManagerService, _layoutService?: ILayoutService | undefined);
19
- private _initMenus;
20
- private _currentRenderId;
21
- private _bootstrapWorkbench;
22
- private _changeRenderUnit;
10
+ constructor(_config: IUniverUIConfig, injector: Injector, lifecycleService: LifecycleService, renderManagerService: IRenderManagerService, layoutService: ILayoutService, instanceService: IUniverInstanceService, menuManagerService: IMenuManagerService, uiPartsService: IUIPartsService);
11
+ bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
23
12
  private _initBuiltinComponents;
24
13
  }
@@ -1,21 +1,13 @@
1
+ import { IDisposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
1
2
  import { IUniverUIConfig } from '../config.schema';
2
3
  import { IUIController } from './ui.controller';
3
- import { Disposable, Injector, IUniverInstanceService, LifecycleService } from '@univerjs/core';
4
4
  import { IRenderManagerService } from '@univerjs/engine-render';
5
5
  import { ILayoutService } from '../../services/layout/layout.service';
6
- import { IMenuManagerService } from '../../services/menu/menu-manager.service';
7
6
  import { IUIPartsService } from '../../services/parts/parts.service';
8
- export declare class MobileUIController extends Disposable implements IUIController {
7
+ import { SingleUnitUIController } from './ui-shared.controller';
8
+ export declare class MobileUIController extends SingleUnitUIController implements IUIController {
9
9
  private readonly _config;
10
- private readonly _instanceService;
11
- private readonly _renderManagerService;
12
- private readonly _injector;
13
- private readonly _lifecycleService;
14
- private readonly _uiPartsService;
15
- private readonly _menuManagerService;
16
- private readonly _layoutService?;
17
- constructor(_config: IUniverUIConfig, _instanceService: IUniverInstanceService, _renderManagerService: IRenderManagerService, _injector: Injector, _lifecycleService: LifecycleService, _uiPartsService: IUIPartsService, _menuManagerService: IMenuManagerService, _layoutService?: ILayoutService | undefined);
18
- private _initMenus;
19
- private _bootstrapWorkbench;
10
+ constructor(_config: IUniverUIConfig, injector: Injector, lifecycleService: LifecycleService, renderManagerService: IRenderManagerService, layoutService: ILayoutService, instanceService: IUniverInstanceService, uiPartsService: IUIPartsService);
11
+ bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
20
12
  private _initBuiltinComponents;
21
13
  }
@@ -0,0 +1,18 @@
1
+ import { IDisposable, Injector, IUniverInstanceService, LifecycleService, Disposable } from '@univerjs/core';
2
+ import { IRenderManagerService } from '@univerjs/engine-render';
3
+ import { ILayoutService } from '../../services/layout/layout.service';
4
+ export declare abstract class SingleUnitUIController extends Disposable {
5
+ protected readonly _injector: Injector;
6
+ protected readonly _instanceService: IUniverInstanceService;
7
+ protected readonly _layoutService: ILayoutService;
8
+ protected readonly _lifecycleService: LifecycleService;
9
+ protected readonly _renderManagerService: IRenderManagerService;
10
+ protected _steadyTimeout: number;
11
+ protected _renderTimeout: number;
12
+ constructor(_injector: Injector, _instanceService: IUniverInstanceService, _layoutService: ILayoutService, _lifecycleService: LifecycleService, _renderManagerService: IRenderManagerService);
13
+ dispose(): void;
14
+ protected _bootstrapWorkbench(): void;
15
+ private _currentRenderId;
16
+ private _changeRenderUnit;
17
+ abstract bootstrap(callback: (contentElement: HTMLElement, containerElement: HTMLElement) => void): IDisposable;
18
+ }
@@ -1,16 +1,24 @@
1
1
  import { FEnum } from '@univerjs/core/facade';
2
- import { BuiltInUIPart } from '@univerjs/ui';
2
+ import { BuiltInUIPart, KeyCode } from '@univerjs/ui';
3
3
  /**
4
4
  * @ignore
5
5
  */
6
6
  interface IFUIEnumMixin {
7
+ /**
8
+ * Built-in UI parts.
9
+ */
7
10
  get BuiltInUIPart(): typeof BuiltInUIPart;
11
+ /**
12
+ * Key codes.
13
+ */
14
+ get KeyCode(): typeof KeyCode;
8
15
  }
9
16
  /**
10
17
  * @ignore
11
18
  */
12
19
  export declare class FUIEnum extends FEnum implements IFUIEnumMixin {
13
20
  get BuiltInUIPart(): typeof BuiltInUIPart;
21
+ get KeyCode(): typeof KeyCode;
14
22
  }
15
23
  declare module '@univerjs/core/facade' {
16
24
  interface FEnum extends IFUIEnumMixin {
@@ -6,30 +6,28 @@ import { FHooks } from '@univerjs/core/facade';
6
6
  export interface IFHooksSheetsUIMixin {
7
7
  /**
8
8
  * The onBeforeCopy event is fired before a copy operation is performed.
9
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.BeforeClipboardChange, (params) => {})` instead
9
10
  * @param callback Callback function that will be called when the event is fired
10
11
  * @returns A disposable object that can be used to unsubscribe from the event
11
12
  */
12
13
  onBeforeCopy(callback: () => void): IDisposable;
13
- /**
14
- * The onBeforeCopy event is fired before a copy operation is performed.
15
- * @param callback Callback function that will be called when the event is fired
16
- * @returns A disposable object that can be used to unsubscribe from the event
17
- */
18
- onBeforePaste(callback: () => void): IDisposable;
19
14
  /**
20
15
  * The onCopy event is fired after a copy operation is performed.
16
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.ClipboardChanged, (params) => {})` instead
21
17
  * @param callback Callback function that will be called when the event is fired
22
18
  * @returns A disposable object that can be used to unsubscribe from the event
23
19
  */
24
20
  onCopy(callback: () => void): IDisposable;
25
21
  /**
26
22
  * The onBeforePaste event is fired before a paste operation is performed.
23
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.BeforeClipboardPaste, (params) => {})` instead
27
24
  * @param callback Callback function that will be called when the event is fired
28
25
  * @returns A disposable object that can be used to unsubscribe from the event
29
26
  */
30
27
  onBeforePaste(callback: () => void): IDisposable;
31
28
  /**
32
29
  * The onPaste event is fired after a paste operation is performed.
30
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.ClipboardPasted, (params) => {})` instead
33
31
  * @param callback Callback function that will be called when the event is fired
34
32
  * @returns A disposable object that can be used to unsubscribe from the event
35
33
  */
@@ -76,14 +76,18 @@ declare abstract class FMenuBase extends FBase {
76
76
  * univerAPI.createMenu({
77
77
  * id: 'custom-menu-id-1',
78
78
  * title: 'Custom Menu 1',
79
- * action: () => {},
79
+ * action: () => {
80
+ * console.log('Custom Menu 1 clicked');
81
+ * },
80
82
  * }).appendTo('contextMenu.others');
81
83
  *
82
84
  * // This menu item will only appear on the `contextMenu.others` section on the main area.
83
85
  * univerAPI.createMenu({
84
86
  * id: 'custom-menu-id-2',
85
87
  * title: 'Custom Menu 2',
86
- * action: () => { console.log(123); },
88
+ * action: () => {
89
+ * console.log('Custom Menu 2 clicked');
90
+ * },
87
91
  * }).appendTo(['contextMenu.mainArea', 'contextMenu.others']);
88
92
  * ```
89
93
  */
@@ -139,11 +143,66 @@ export declare class FSubmenu extends FMenuBase {
139
143
  * Add a menu to the submenu. It can be a {@link FMenu} or a {@link FSubmenu}.
140
144
  * @param {FMenu | FSubmenu} submenu - Menu to add to the submenu.
141
145
  * @returns {FSubmenu} The FSubmenu itself for chaining calls.
146
+ * @example
147
+ * ```typescript
148
+ * // Create two leaf menus.
149
+ * const menu1 = univerAPI.createMenu({
150
+ * id: 'submenu-nested-1',
151
+ * title: 'Item 1',
152
+ * action: () => {
153
+ * console.log('Item 1 clicked');
154
+ * }
155
+ * });
156
+ * const menu2 = univerAPI.createMenu({
157
+ * id: 'submenu-nested-2',
158
+ * title: 'Item 2',
159
+ * action: () => {
160
+ * console.log('Item 2 clicked');
161
+ * }
162
+ * });
163
+ *
164
+ * // Add the leaf menus to a submenu.
165
+ * const submenu = univerAPI.createSubmenu({ id: 'submenu-nested', title: 'Nested Submenu' })
166
+ * .addSubmenu(menu1)
167
+ * .addSeparator()
168
+ * .addSubmenu(menu2);
169
+ *
170
+ * // Create a root submenu append to the `contextMenu.others` section.
171
+ * univerAPI.createSubmenu({ id: 'custom-submenu', title: 'Custom Submenu' })
172
+ * .addSubmenu(submenu)
173
+ * .appendTo('contextMenu.others');
174
+ * ```
142
175
  */
143
176
  addSubmenu(submenu: FMenu | FSubmenu): this;
144
177
  /**
145
178
  * Add a separator to the submenu.
146
179
  * @returns {FSubmenu} The FSubmenu itself for chaining calls.
180
+ * @example
181
+ * ```typescript
182
+ * // Create two leaf menus.
183
+ * const menu1 = univerAPI.createMenu({
184
+ * id: 'submenu-nested-1',
185
+ * title: 'Item 1',
186
+ * action: () => {
187
+ * console.log('Item 1 clicked');
188
+ * }
189
+ * });
190
+ * const menu2 = univerAPI.createMenu({
191
+ * id: 'submenu-nested-2',
192
+ * title: 'Item 2',
193
+ * action: () => {
194
+ * console.log('Item 2 clicked');
195
+ * }
196
+ * });
197
+ *
198
+ * // Add the leaf menus to a submenu and add a separator between them.
199
+ * // Append the submenu to the `contextMenu.others` section.
200
+ * univerAPI.createSubmenu({ id: 'submenu-nested', title: 'Nested Submenu' })
201
+ * .addSubmenu(menu1)
202
+ * .addSeparator()
203
+ * .addSubmenu(menu2)
204
+ * .appendTo('contextMenu.others');
205
+ * ```
147
206
  */
148
207
  addSeparator(): this;
149
208
  /**
@@ -1,15 +1,18 @@
1
1
  import { IShortcutItem, IShortcutService } from '@univerjs/ui';
2
- import { Injector } from '@univerjs/core';
2
+ import { Injector, IUniverInstanceService } from '@univerjs/core';
3
3
  import { FBase } from '@univerjs/core/facade';
4
+ import { IRenderManagerService } from '@univerjs/engine-render';
4
5
  /**
5
6
  * The Facade API object to handle shortcuts in Univer
6
7
  * @hideconstructor
7
8
  */
8
9
  export declare class FShortcut extends FBase {
9
10
  protected readonly _injector: Injector;
11
+ private _renderManagerService;
12
+ protected readonly _univerInstanceService: IUniverInstanceService;
10
13
  protected readonly _shortcutService: IShortcutService;
11
14
  private _forceDisableDisposable;
12
- constructor(_injector: Injector, _shortcutService: IShortcutService);
15
+ constructor(_injector: Injector, _renderManagerService: IRenderManagerService, _univerInstanceService: IUniverInstanceService, _shortcutService: IShortcutService);
13
16
  /**
14
17
  * Enable shortcuts of Univer.
15
18
  * @returns {FShortcut} The Facade API instance itself for chaining.
@@ -31,6 +34,38 @@ export declare class FShortcut extends FBase {
31
34
  * ```
32
35
  */
33
36
  disableShortcut(): this;
37
+ /**
38
+ * Trigger shortcut of Univer by a KeyboardEvent and return the matched shortcut item.
39
+ * @param {KeyboardEvent} e - The KeyboardEvent to trigger.
40
+ * @returns {IShortcutItem<object> | undefined} The matched shortcut item.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Assum the current sheet is empty sheet.
45
+ * const fWorkbook = univerAPI.getActiveWorkbook();
46
+ * const fWorksheet = fWorkbook.getActiveSheet();
47
+ * const fRange = fWorksheet.getRange('A1');
48
+ *
49
+ * // Set A1 cell active and set value to 'Hello Univer'.
50
+ * fRange.activate();
51
+ * fRange.setValue('Hello Univer');
52
+ * console.log(fRange.getCellStyle().bold); // false
53
+ *
54
+ * // Set A1 cell bold by shortcut.
55
+ * const fShortcut = univerAPI.getShortcut();
56
+ * const pseudoEvent = new KeyboardEvent('keydown', {
57
+ * key: 'b',
58
+ * ctrlKey: true,
59
+ * keyCode: univerAPI.Enum.KeyCode.B
60
+ * });
61
+ * const ifShortcutItem = fShortcut.triggerShortcut(pseudoEvent);
62
+ * if (ifShortcutItem) {
63
+ * const commandId = ifShortcutItem.id;
64
+ * console.log(fRange.getCellStyle().bold); // true
65
+ * }
66
+ * ```
67
+ */
68
+ triggerShortcut(e: KeyboardEvent): IShortcutItem<object> | undefined;
34
69
  /**
35
70
  * Dispatch a KeyboardEvent to the shortcut service and return the matched shortcut item.
36
71
  * @param {KeyboardEvent} e - The KeyboardEvent to dispatch.