@a3s-lab/office 0.36.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +18 -6
  2. package/dist/0~3557.js +2 -1
  3. package/dist/0~3635.js +4 -1
  4. package/dist/0~7048.js +93 -1
  5. package/dist/0~9073.js +7 -2
  6. package/dist/0~presentation-editor.js +45 -9
  7. package/dist/0~spreadsheet-editor.js +20321 -16966
  8. package/dist/4121.js +1942 -1939
  9. package/dist/{3266.js → 5416.js} +1504 -20
  10. package/dist/9333.js +1 -1
  11. package/dist/core.d.ts +1 -0
  12. package/dist/core.js +141 -28
  13. package/dist/index.js +1 -1
  14. package/dist/internal/features/work/editors/office-shortcuts.d.ts +1 -0
  15. package/dist/internal/features/work/editors/spreadsheet-auto-filter-command.d.ts +3 -0
  16. package/dist/internal/features/work/editors/spreadsheet-auto-filter-condition-dialog-model.d.ts +27 -0
  17. package/dist/internal/features/work/editors/spreadsheet-auto-filter-condition-dialog.d.ts +17 -0
  18. package/dist/internal/features/work/editors/spreadsheet-auto-filter-menu.d.ts +10 -0
  19. package/dist/internal/features/work/editors/spreadsheet-auto-filter.d.ts +16 -4
  20. package/dist/internal/features/work/editors/spreadsheet-cell-range.d.ts +1 -0
  21. package/dist/internal/features/work/editors/spreadsheet-command-catalog.d.ts +9 -0
  22. package/dist/internal/features/work/editors/spreadsheet-command-controller.d.ts +13 -1
  23. package/dist/internal/features/work/editors/spreadsheet-current-region.d.ts +12 -0
  24. package/dist/internal/features/work/editors/spreadsheet-editor.d.ts +3 -0
  25. package/dist/internal/features/work/editors/spreadsheet-sort-appearance.d.ts +45 -0
  26. package/dist/internal/features/work/editors/spreadsheet-sort-collation.d.ts +8 -0
  27. package/dist/internal/features/work/editors/spreadsheet-sort-command.d.ts +3 -0
  28. package/dist/internal/features/work/editors/spreadsheet-sort-custom-list-editor.d.ts +8 -0
  29. package/dist/internal/features/work/editors/spreadsheet-sort-custom-list-store.d.ts +13 -0
  30. package/dist/internal/features/work/editors/spreadsheet-sort-custom-list.d.ts +26 -0
  31. package/dist/internal/features/work/editors/spreadsheet-sort-dialog.d.ts +9 -0
  32. package/dist/internal/features/work/editors/spreadsheet-sort-matrix.d.ts +4 -0
  33. package/dist/internal/features/work/editors/spreadsheet-sort-options-dialog.d.ts +7 -0
  34. package/dist/internal/features/work/editors/spreadsheet-sort-order-controls.d.ts +16 -0
  35. package/dist/internal/features/work/editors/spreadsheet-sort-range-dialog.d.ts +7 -0
  36. package/dist/internal/features/work/editors/spreadsheet-sort.d.ts +138 -0
  37. package/dist/internal/features/work/editors/spreadsheet-table-totals.d.ts +39 -0
  38. package/dist/internal/features/work/editors/spreadsheet-table.d.ts +11 -1
  39. package/dist/internal/features/work/editors/use-spreadsheet-auto-filter.d.ts +12 -3
  40. package/dist/internal/features/work/editors/use-spreadsheet-sort.d.ts +26 -0
  41. package/dist/internal/features/work/editors/work-office-chrome.d.ts +3 -0
  42. package/dist/internal/features/work/work-spreadsheet-auto-filter.d.ts +14 -0
  43. package/dist/internal/features/work/work-spreadsheet-dynamic-filter.d.ts +7 -0
  44. package/dist/internal/features/work/work-spreadsheet-filter-contract.d.ts +3 -0
  45. package/dist/internal/features/work/work-spreadsheet-wildcard.d.ts +7 -0
  46. package/dist/internal/features/work/work-types.d.ts +45 -7
  47. package/dist/internal/features/work/work-xlsx-interop.d.ts +2 -1
  48. package/dist/internal/features/work/work-xlsx-table-filters.d.ts +3 -1
  49. package/dist/internal/kernel/office-kernel-spreadsheet-fallback-formula.d.ts +11 -0
  50. package/dist/office-kernel.wasm +0 -0
  51. package/dist/office-kernel.worker.js +93 -1
  52. package/dist/styles.css +789 -145
  53. package/dist/vue.d.ts +3 -1
  54. package/dist/vue.js +2 -0
  55. package/dist/web-component.d.ts +3 -1
  56. package/dist/web-component.js +9 -0
  57. package/dist/work-spreadsheet-package-scan.worker.js +2 -1
  58. package/docs/latest/en/browser-editor-architecture.md +136 -2
  59. package/package.json +24 -1
package/dist/styles.css CHANGED
@@ -5629,58 +5629,106 @@ html[data-ds-resizing="horizontal"], html[data-ds-resizing="horizontal"] * {
5629
5629
 
5630
5630
  .work-office-file-popover {
5631
5631
  z-index: 80;
5632
- border: 1px solid var(--a3s-line);
5633
- background: var(--a3s-panel);
5634
- border-radius: 10px;
5635
- width: 224px;
5636
- padding: 6px;
5632
+ border: 1px solid var(--a3s-overlay-border, var(--a3s-line));
5633
+ background: var(--a3s-overlay-surface, var(--a3s-panel));
5634
+ width: min(280px, 100vw - 16px);
5635
+ max-height: calc(100dvh - 16px);
5636
+ box-shadow: var(--a3s-shadow-soft, 0 16px 42px #121a2b33);
5637
+ overscroll-behavior: contain;
5638
+ backdrop-filter: blur(18px);
5639
+ border-radius: 12px;
5640
+ gap: 2px;
5641
+ padding: 8px;
5637
5642
  display: grid;
5638
5643
  position: absolute;
5639
5644
  top: 34px;
5640
5645
  left: 0;
5641
- box-shadow: 0 14px 36px #121a2b2e;
5646
+ overflow: auto;
5642
5647
  }
5643
5648
 
5644
5649
  .work-office-file-popover > button {
5645
5650
  width: 100%;
5646
- height: 36px;
5651
+ min-height: 40px;
5647
5652
  color: var(--a3s-ink);
5648
5653
  font: inherit;
5649
5654
  text-align: left;
5650
5655
  cursor: pointer;
5651
5656
  background: none;
5652
5657
  border: 0;
5653
- border-radius: 7px;
5654
- grid-template-columns: 24px minmax(0, 1fr) auto;
5658
+ border-radius: 8px;
5659
+ grid-template-columns: 28px minmax(0, 1fr) auto;
5655
5660
  align-items: center;
5656
- gap: 8px;
5657
- padding: 0 9px;
5658
- font-size: 11px;
5661
+ gap: 10px;
5662
+ padding: 6px 10px;
5663
+ font-size: 12px;
5664
+ line-height: 1.35;
5659
5665
  display: grid;
5660
5666
  }
5661
5667
 
5662
5668
  .work-office-file-popover > button:hover:not(:disabled), .work-office-file-popover > button:focus-visible {
5663
- background: var(--a3s-panel-soft);
5664
- outline: 0;
5669
+ background: color-mix(in srgb,
5670
+ var(--work-office-accent, var(--a3s-blue)) 8%,
5671
+ var(--a3s-panel));
5672
+ }
5673
+
5674
+ .work-office-file-popover > button:focus-visible {
5675
+ outline: 2px solid
5676
+ color-mix(in srgb,
5677
+ var(--work-office-accent, var(--a3s-blue)) 52%,
5678
+ var(--a3s-line));
5679
+ outline-offset: -2px;
5665
5680
  }
5666
5681
 
5667
5682
  .work-office-file-popover > button:disabled {
5668
- cursor: default;
5669
- opacity: .42;
5683
+ color: var(--a3s-faint);
5684
+ cursor: not-allowed;
5685
+ opacity: 1;
5670
5686
  }
5671
5687
 
5672
5688
  .work-office-file-action-icon {
5673
- width: 24px;
5674
- height: 24px;
5689
+ background: color-mix(in srgb,
5690
+ var(--work-office-accent, var(--a3s-blue)) 8%,
5691
+ transparent);
5692
+ width: 28px;
5693
+ height: 28px;
5675
5694
  color: var(--work-office-accent, var(--a3s-blue));
5676
- border-radius: 6px;
5695
+ border-radius: 7px;
5677
5696
  place-items: center;
5678
5697
  display: grid;
5679
5698
  }
5680
5699
 
5700
+ .work-office-file-action-icon > svg {
5701
+ width: 16px;
5702
+ height: 16px;
5703
+ }
5704
+
5705
+ .work-office-file-action-label {
5706
+ overflow-wrap: anywhere;
5707
+ min-width: 0;
5708
+ }
5709
+
5710
+ .work-office-file-popover > button:disabled .work-office-file-action-icon {
5711
+ background: color-mix(in srgb, var(--a3s-faint) 8%, transparent);
5712
+ color: var(--a3s-faint);
5713
+ }
5714
+
5715
+ .work-office-file-popover > button.danger:not(:disabled) {
5716
+ color: var(--a3s-red);
5717
+ }
5718
+
5719
+ .work-office-file-popover > button.danger:not(:disabled) .work-office-file-action-icon {
5720
+ background: color-mix(in srgb, var(--a3s-red) 9%, transparent);
5721
+ color: currentColor;
5722
+ }
5723
+
5724
+ .work-office-file-popover > button.danger:hover:not(:disabled), .work-office-file-popover > button.danger:focus-visible {
5725
+ background: color-mix(in srgb, var(--a3s-red) 8%, var(--a3s-panel));
5726
+ }
5727
+
5681
5728
  .work-office-file-popover kbd {
5682
5729
  color: var(--a3s-faint);
5683
5730
  font: inherit;
5731
+ white-space: nowrap;
5684
5732
  font-size: 9px;
5685
5733
  }
5686
5734
 
@@ -5688,7 +5736,14 @@ html[data-ds-resizing="horizontal"], html[data-ds-resizing="horizontal"] * {
5688
5736
  background: var(--a3s-line);
5689
5737
  border: 0;
5690
5738
  height: 1px;
5691
- margin: 5px 7px;
5739
+ margin: 6px 8px;
5740
+ }
5741
+
5742
+ @media (width <= 640px) {
5743
+ .work-office-file-popover > button {
5744
+ min-height: 44px;
5745
+ padding-block: 8px;
5746
+ }
5692
5747
  }
5693
5748
 
5694
5749
  .work-office-ribbon-panel {
@@ -6286,6 +6341,24 @@ button.work-office-collaboration-participant:hover .work-office-collaboration-lo
6286
6341
  }
6287
6342
 
6288
6343
  @media (forced-colors: active) {
6344
+ .work-office-file-popover {
6345
+ backdrop-filter: none;
6346
+ background: canvas;
6347
+ border-color: canvastext;
6348
+ }
6349
+
6350
+ .work-office-file-action-icon {
6351
+ background: none;
6352
+ }
6353
+
6354
+ .work-office-file-popover > button:focus-visible {
6355
+ outline-color: highlight;
6356
+ }
6357
+
6358
+ .work-office-file-popover > button.danger:not(:disabled) {
6359
+ color: linktext;
6360
+ }
6361
+
6289
6362
  .work-office-collaboration-avatar, .work-office-collaboration-overflow {
6290
6363
  color: highlighttext;
6291
6364
  background: highlight;
@@ -17898,192 +17971,643 @@ sub [data-office-character-position-half-points], sup [data-office-character-pos
17898
17971
  }
17899
17972
  }
17900
17973
 
17901
- .work-spreadsheet-hyperlink-dialog {
17974
+ .work-spreadsheet-auto-filter-dialog {
17902
17975
  --work-office-control-accent: var(--work-spreadsheet-accent, #159469);
17903
- width: min(610px, 100%);
17976
+ width: min(560px, 100%);
17904
17977
  }
17905
17978
 
17906
- .work-spreadsheet-hyperlink-dialog form {
17907
- gap: 18px;
17979
+ .work-spreadsheet-auto-filter-form {
17980
+ gap: 16px;
17908
17981
  display: grid;
17909
17982
  }
17910
17983
 
17911
- .work-spreadsheet-hyperlink-types {
17984
+ .work-spreadsheet-auto-filter-values {
17985
+ grid-template-columns: repeat(2, minmax(0, 1fr));
17986
+ gap: 12px;
17987
+ display: grid;
17988
+ }
17989
+
17990
+ .work-spreadsheet-auto-filter-values > :only-child {
17991
+ grid-column: 1 / -1;
17992
+ }
17993
+
17994
+ .work-spreadsheet-auto-filter-add-condition, .work-spreadsheet-auto-filter-remove-condition {
17995
+ justify-self: start;
17996
+ }
17997
+
17998
+ .work-spreadsheet-auto-filter-compound {
17999
+ border-top: 1px solid var(--work-office-border, #d9dedb);
18000
+ gap: 12px;
18001
+ padding-top: 4px;
18002
+ display: grid;
18003
+ }
18004
+
18005
+ .work-spreadsheet-auto-filter-conjunction {
17912
18006
  border: 0;
17913
- min-width: 0;
18007
+ flex-wrap: wrap;
18008
+ gap: 8px 20px;
17914
18009
  margin: 0;
17915
- padding: 0;
18010
+ padding: 12px 0 0;
18011
+ display: flex;
17916
18012
  }
17917
18013
 
17918
- .work-spreadsheet-hyperlink-types > legend {
17919
- color: var(--a3s-muted);
17920
- margin-bottom: 8px;
18014
+ .work-spreadsheet-auto-filter-conjunction legend {
18015
+ width: 100%;
18016
+ color: var(--work-office-text-muted, #5b655f);
17921
18017
  font-size: 12px;
17922
18018
  font-weight: 600;
17923
18019
  }
17924
18020
 
17925
- .work-spreadsheet-hyperlink-types > div {
17926
- grid-template-columns: repeat(3, minmax(0, 1fr));
18021
+ .work-spreadsheet-auto-filter-conjunction label {
18022
+ align-items: center;
17927
18023
  gap: 7px;
17928
- display: grid;
18024
+ display: inline-flex;
17929
18025
  }
17930
18026
 
17931
- .work-spreadsheet-hyperlink-types label {
17932
- border: 1px solid var(--a3s-line);
17933
- background: var(--a3s-panel);
17934
- min-width: 0;
17935
- min-height: 62px;
17936
- color: var(--a3s-muted);
17937
- cursor: pointer;
17938
- border-radius: 8px;
17939
- grid-template-columns: 20px minmax(0, 1fr);
17940
- align-items: center;
17941
- gap: 8px;
17942
- padding: 9px 10px;
18027
+ .work-spreadsheet-auto-filter-second-condition {
18028
+ grid-template-columns: repeat(2, minmax(0, 1fr));
18029
+ gap: 12px;
17943
18030
  display: grid;
17944
- position: relative;
17945
18031
  }
17946
18032
 
17947
- .work-spreadsheet-hyperlink-types label:hover {
17948
- border-color: color-mix(in srgb,
17949
- var(--work-spreadsheet-accent, #159469) 42%,
17950
- var(--a3s-line));
18033
+ .work-spreadsheet-auto-filter-clear {
18034
+ margin-right: auto;
17951
18035
  }
17952
18036
 
17953
- .work-spreadsheet-hyperlink-types label.selected {
17954
- border-color: color-mix(in srgb,
17955
- var(--work-spreadsheet-accent, #159469) 58%,
17956
- var(--a3s-line));
17957
- background: color-mix(in srgb,
17958
- var(--work-spreadsheet-accent, #159469) 8%,
17959
- var(--a3s-panel));
17960
- color: var(--work-spreadsheet-accent, #159469);
17961
- }
18037
+ @media (width <= 520px) {
18038
+ .work-spreadsheet-auto-filter-values, .work-spreadsheet-auto-filter-second-condition {
18039
+ grid-template-columns: minmax(0, 1fr);
18040
+ }
17962
18041
 
17963
- .work-spreadsheet-hyperlink-types label:has(input:focus-visible) {
17964
- outline: 2px solid
17965
- color-mix(in srgb, var(--work-spreadsheet-accent, #159469) 38%, transparent);
17966
- outline-offset: 2px;
18042
+ .work-spreadsheet-auto-filter-values > :only-child {
18043
+ grid-column: auto;
18044
+ }
17967
18045
  }
17968
18046
 
17969
- .work-spreadsheet-hyperlink-types input {
17970
- opacity: 0;
17971
- width: 1px;
17972
- height: 1px;
17973
- position: absolute;
18047
+ .work-spreadsheet-sort-options-dialog {
18048
+ inline-size: min(420px, 100vw - 32px);
17974
18049
  }
17975
18050
 
17976
- .work-spreadsheet-hyperlink-types label > span {
17977
- gap: 1px;
17978
- min-width: 0;
18051
+ .work-spreadsheet-sort-options-form {
18052
+ gap: 16px;
17979
18053
  display: grid;
17980
18054
  }
17981
18055
 
17982
- .work-spreadsheet-hyperlink-types strong, .work-spreadsheet-hyperlink-types small {
17983
- text-overflow: ellipsis;
17984
- white-space: nowrap;
17985
- overflow: hidden;
17986
- }
17987
-
17988
- .work-spreadsheet-hyperlink-types strong {
17989
- color: var(--a3s-ink);
17990
- font-size: 11px;
17991
- font-weight: 650;
18056
+ .work-spreadsheet-sort-options {
18057
+ border: 0;
18058
+ gap: 8px;
18059
+ margin: 0;
18060
+ padding: 0;
18061
+ display: grid;
17992
18062
  }
17993
18063
 
17994
- .work-spreadsheet-hyperlink-types small {
18064
+ .work-spreadsheet-sort-options legend {
17995
18065
  color: var(--a3s-muted);
17996
- font-size: 9px;
18066
+ margin-block-end: 8px;
18067
+ font-size: 12px;
18068
+ font-weight: 700;
17997
18069
  }
17998
18070
 
17999
- .work-spreadsheet-hyperlink-preview {
18000
- background: var(--a3s-panel-soft);
18071
+ .work-spreadsheet-sort-options > label {
18072
+ border: 1px solid var(--a3s-line);
18073
+ cursor: pointer;
18001
18074
  border-radius: 8px;
18002
- grid-template-columns: 30px minmax(0, 1fr);
18003
- align-items: center;
18075
+ grid-template-columns: auto minmax(0, 1fr);
18076
+ align-items: start;
18004
18077
  gap: 10px;
18005
- min-width: 0;
18006
- min-height: 56px;
18007
- padding: 9px 11px;
18078
+ padding: 10px 12px;
18008
18079
  display: grid;
18009
18080
  }
18010
18081
 
18011
- .work-spreadsheet-hyperlink-preview > span {
18082
+ .work-spreadsheet-sort-options > label:has(input:checked) {
18083
+ border-color: var(--work-spreadsheet-accent, #159469);
18012
18084
  background: color-mix(in srgb,
18013
- var(--work-spreadsheet-accent, #159469) 11%,
18085
+ var(--work-spreadsheet-accent, #159469) 10%,
18014
18086
  var(--a3s-panel));
18015
- width: 30px;
18016
- height: 30px;
18017
- color: var(--work-spreadsheet-accent, #159469);
18018
- border-radius: 7px;
18019
- place-items: center;
18020
- display: grid;
18021
- }
18022
-
18023
- .work-spreadsheet-hyperlink-preview > div {
18024
- gap: 1px;
18025
- min-width: 0;
18026
- display: grid;
18027
18087
  }
18028
18088
 
18029
- .work-spreadsheet-hyperlink-preview strong, .work-spreadsheet-hyperlink-preview small {
18030
- text-overflow: ellipsis;
18031
- white-space: nowrap;
18032
- overflow: hidden;
18089
+ .work-spreadsheet-sort-options input {
18090
+ accent-color: var(--work-spreadsheet-accent, #159469);
18091
+ margin-block-start: 3px;
18033
18092
  }
18034
18093
 
18035
- .work-spreadsheet-hyperlink-preview strong {
18036
- color: var(--a3s-ink);
18037
- font-size: 11px;
18038
- font-weight: 650;
18094
+ .work-spreadsheet-sort-options label > span {
18095
+ gap: 3px;
18096
+ display: grid;
18039
18097
  }
18040
18098
 
18041
- .work-spreadsheet-hyperlink-preview small {
18099
+ .work-spreadsheet-sort-options small {
18042
18100
  color: var(--a3s-muted);
18043
- font-size: 10px;
18044
- }
18045
-
18046
- .work-spreadsheet-hyperlink-remove {
18047
- margin-right: auto;
18048
- }
18049
-
18050
- @media (width <= 560px) {
18051
- .work-spreadsheet-hyperlink-types > div {
18052
- grid-template-columns: minmax(0, 1fr);
18053
- }
18054
-
18055
- .work-spreadsheet-hyperlink-types label {
18056
- min-height: 50px;
18057
- }
18101
+ line-height: 1.4;
18058
18102
  }
18059
18103
 
18060
- .work-spreadsheet-paste-special-dialog {
18104
+ .work-spreadsheet-sort-dialog {
18061
18105
  --work-office-control-accent: var(--work-spreadsheet-accent, #159469);
18062
- width: min(660px, 100%);
18106
+ width: min(820px, 100%);
18063
18107
  }
18064
18108
 
18065
- .work-spreadsheet-paste-special-dialog > .ds-dialog-body {
18066
- padding-top: 0;
18109
+ .work-spreadsheet-sort-dialog form {
18110
+ gap: 14px;
18111
+ display: grid;
18067
18112
  }
18068
18113
 
18069
- .work-spreadsheet-paste-special-source {
18070
- background: color-mix(in srgb,
18071
- var(--work-spreadsheet-accent, #159469) 7%,
18072
- var(--a3s-panel-soft));
18073
- min-height: 34px;
18074
- color: var(--a3s-muted);
18075
- border-radius: 7px;
18114
+ .work-spreadsheet-sort-toolbar {
18076
18115
  justify-content: space-between;
18077
18116
  align-items: center;
18078
- gap: 12px;
18079
- margin-bottom: 15px;
18080
- padding: 0 11px;
18081
- font-size: 11px;
18117
+ gap: 10px;
18082
18118
  display: flex;
18083
18119
  }
18084
18120
 
18085
- .work-spreadsheet-paste-special-source strong {
18086
- color: var(--a3s-ink);
18121
+ .work-spreadsheet-sort-toolbar .ds-button {
18122
+ gap: 6px;
18123
+ }
18124
+
18125
+ .work-spreadsheet-sort-toolbar .work-office-checkbox {
18126
+ min-height: 34px;
18127
+ padding: 6px 9px;
18128
+ }
18129
+
18130
+ .work-spreadsheet-sort-levels {
18131
+ gap: 9px;
18132
+ max-height: min(430px, 52vh);
18133
+ padding: 1px 3px 1px 1px;
18134
+ display: grid;
18135
+ overflow: auto;
18136
+ }
18137
+
18138
+ .work-spreadsheet-sort-level {
18139
+ border: 1px solid var(--a3s-line);
18140
+ background: var(--a3s-panel-soft);
18141
+ border-radius: 8px;
18142
+ grid-template-columns: minmax(140px, .7fr) minmax(370px, 1.8fr) auto;
18143
+ align-items: end;
18144
+ gap: 9px;
18145
+ min-width: 0;
18146
+ padding: 10px;
18147
+ display: grid;
18148
+ }
18149
+
18150
+ .work-spreadsheet-sort-level legend {
18151
+ color: var(--work-spreadsheet-accent, #159469);
18152
+ padding: 0 5px;
18153
+ font-size: 10px;
18154
+ font-weight: 700;
18155
+ }
18156
+
18157
+ .work-spreadsheet-sort-level > label, .work-spreadsheet-sort-order-controls > label {
18158
+ gap: 4px;
18159
+ min-width: 0;
18160
+ display: grid;
18161
+ }
18162
+
18163
+ .work-spreadsheet-sort-level > label > span, .work-spreadsheet-sort-order-controls > label > span {
18164
+ color: var(--a3s-muted);
18165
+ font-size: 9px;
18166
+ }
18167
+
18168
+ .work-spreadsheet-sort-order-controls {
18169
+ grid-template-columns: minmax(110px, .75fr) minmax(170px, 1.25fr);
18170
+ align-items: end;
18171
+ gap: 9px;
18172
+ min-width: 0;
18173
+ display: grid;
18174
+ }
18175
+
18176
+ .work-spreadsheet-sort-order-controls[data-appearance="true"] {
18177
+ grid-template-columns: minmax(105px, .75fr) minmax(155px, 1.25fr) minmax(92px, .65fr);
18178
+ }
18179
+
18180
+ .work-spreadsheet-sort-appearance-preview {
18181
+ min-width: 0;
18182
+ color: var(--a3s-muted);
18183
+ grid-column: 1 / -1;
18184
+ align-items: center;
18185
+ gap: 6px;
18186
+ font-size: 9px;
18187
+ line-height: 1.4;
18188
+ display: flex;
18189
+ }
18190
+
18191
+ .work-spreadsheet-sort-appearance-preview > span:last-child {
18192
+ text-overflow: ellipsis;
18193
+ white-space: nowrap;
18194
+ overflow: hidden;
18195
+ }
18196
+
18197
+ .work-spreadsheet-sort-color-swatch {
18198
+ box-sizing: border-box;
18199
+ border: 1px solid var(--a3s-line-strong);
18200
+ border-radius: 3px;
18201
+ flex: 0 0 14px;
18202
+ width: 14px;
18203
+ height: 14px;
18204
+ display: inline-block;
18205
+ }
18206
+
18207
+ .work-spreadsheet-sort-color-swatch[data-empty="true"] {
18208
+ background: linear-gradient(135deg,
18209
+ transparent 43%,
18210
+ var(--a3s-danger, #b42318) 44%,
18211
+ var(--a3s-danger, #b42318) 56%,
18212
+ transparent 57%),
18213
+ var(--a3s-panel);
18214
+ }
18215
+
18216
+ .work-spreadsheet-sort-level select {
18217
+ box-sizing: border-box;
18218
+ border: 1px solid var(--a3s-line-strong);
18219
+ background: var(--a3s-panel);
18220
+ width: 100%;
18221
+ min-width: 0;
18222
+ height: 32px;
18223
+ color: var(--a3s-ink);
18224
+ border-radius: 5px;
18225
+ padding: 0 8px;
18226
+ font-size: 11px;
18227
+ }
18228
+
18229
+ .work-spreadsheet-sort-level-actions {
18230
+ gap: 4px;
18231
+ display: flex;
18232
+ }
18233
+
18234
+ .work-spreadsheet-sort-level-actions .ds-button {
18235
+ width: 32px;
18236
+ min-width: 32px;
18237
+ height: 32px;
18238
+ padding: 0;
18239
+ }
18240
+
18241
+ .work-spreadsheet-sort-custom-list-editor, .work-spreadsheet-sort-custom-list-preview {
18242
+ grid-column: 1 / -1;
18243
+ min-width: 0;
18244
+ padding-top: 1px;
18245
+ }
18246
+
18247
+ .work-spreadsheet-sort-custom-list-editor {
18248
+ gap: 6px;
18249
+ display: grid;
18250
+ }
18251
+
18252
+ .work-spreadsheet-sort-custom-list-editor > label {
18253
+ gap: 4px;
18254
+ display: grid;
18255
+ }
18256
+
18257
+ .work-spreadsheet-sort-custom-list-editor > label > span, .work-spreadsheet-sort-custom-list-editor > p {
18258
+ color: var(--a3s-muted);
18259
+ margin: 0;
18260
+ font-size: 9px;
18261
+ line-height: 1.45;
18262
+ }
18263
+
18264
+ .work-spreadsheet-sort-custom-list-editor textarea {
18265
+ box-sizing: border-box;
18266
+ resize: vertical;
18267
+ border: 1px solid var(--a3s-line-strong);
18268
+ background: var(--a3s-panel);
18269
+ width: 100%;
18270
+ min-height: 88px;
18271
+ color: var(--a3s-ink);
18272
+ font: inherit;
18273
+ border-radius: 5px;
18274
+ padding: 7px 8px;
18275
+ font-size: 11px;
18276
+ line-height: 1.45;
18277
+ }
18278
+
18279
+ .work-spreadsheet-sort-custom-list-editor textarea:focus-visible {
18280
+ border-color: var(--work-spreadsheet-accent, #159469);
18281
+ outline: 2px solid
18282
+ color-mix(in srgb, var(--work-spreadsheet-accent, #159469) 24%, transparent);
18283
+ outline-offset: 1px;
18284
+ }
18285
+
18286
+ .work-spreadsheet-sort-custom-list-editor > .work-spreadsheet-sort-custom-list-error {
18287
+ color: var(--a3s-danger, #b42318);
18288
+ }
18289
+
18290
+ .work-spreadsheet-sort-custom-list-actions, .work-spreadsheet-sort-custom-list-preview {
18291
+ align-items: center;
18292
+ gap: 7px;
18293
+ display: flex;
18294
+ }
18295
+
18296
+ .work-spreadsheet-sort-custom-list-actions {
18297
+ justify-content: flex-end;
18298
+ }
18299
+
18300
+ .work-spreadsheet-sort-custom-list-preview code {
18301
+ min-width: 0;
18302
+ color: var(--work-spreadsheet-accent, #159469);
18303
+ text-overflow: ellipsis;
18304
+ white-space: nowrap;
18305
+ flex: 1;
18306
+ font-size: 10px;
18307
+ overflow: hidden;
18308
+ }
18309
+
18310
+ .work-spreadsheet-sort-note {
18311
+ color: var(--a3s-muted);
18312
+ margin: 0;
18313
+ font-size: 10px;
18314
+ line-height: 1.45;
18315
+ }
18316
+
18317
+ .work-spreadsheet-sort-range-dialog {
18318
+ --work-office-control-accent: var(--work-spreadsheet-accent, #159469);
18319
+ width: min(500px, 100%);
18320
+ }
18321
+
18322
+ .work-spreadsheet-sort-range-options {
18323
+ border: 0;
18324
+ gap: 9px;
18325
+ margin: 0;
18326
+ padding: 0;
18327
+ display: grid;
18328
+ }
18329
+
18330
+ .work-spreadsheet-sort-range-options legend {
18331
+ color: var(--a3s-muted);
18332
+ margin-bottom: 8px;
18333
+ font-size: 10px;
18334
+ font-weight: 650;
18335
+ }
18336
+
18337
+ .work-spreadsheet-sort-range-options > label {
18338
+ border: 1px solid var(--a3s-line);
18339
+ background: var(--a3s-panel-soft);
18340
+ cursor: pointer;
18341
+ border-radius: 8px;
18342
+ grid-template-columns: auto minmax(0, 1fr);
18343
+ align-items: start;
18344
+ gap: 10px;
18345
+ padding: 11px;
18346
+ display: grid;
18347
+ }
18348
+
18349
+ .work-spreadsheet-sort-range-options > label:has(input:checked) {
18350
+ border-color: var(--work-spreadsheet-accent, #159469);
18351
+ box-shadow: 0 0 0 1px
18352
+ color-mix(in srgb, var(--work-spreadsheet-accent, #159469) 22%, transparent);
18353
+ }
18354
+
18355
+ .work-spreadsheet-sort-range-options > label:has(input:disabled) {
18356
+ cursor: not-allowed;
18357
+ opacity: .55;
18358
+ }
18359
+
18360
+ .work-spreadsheet-sort-range-options input {
18361
+ accent-color: var(--work-spreadsheet-accent, #159469);
18362
+ margin: 2px 0 0;
18363
+ }
18364
+
18365
+ .work-spreadsheet-sort-range-options label > span {
18366
+ gap: 3px;
18367
+ min-width: 0;
18368
+ display: grid;
18369
+ }
18370
+
18371
+ .work-spreadsheet-sort-range-options strong {
18372
+ color: var(--a3s-ink);
18373
+ font-size: 11px;
18374
+ }
18375
+
18376
+ .work-spreadsheet-sort-range-options small {
18377
+ color: var(--a3s-muted);
18378
+ font-size: 10px;
18379
+ line-height: 1.45;
18380
+ }
18381
+
18382
+ .work-spreadsheet-sort-range-options code {
18383
+ width: fit-content;
18384
+ max-width: 100%;
18385
+ color: var(--work-spreadsheet-accent, #159469);
18386
+ text-overflow: ellipsis;
18387
+ white-space: nowrap;
18388
+ font-size: 10px;
18389
+ overflow: hidden;
18390
+ }
18391
+
18392
+ @media (width <= 700px) {
18393
+ .work-spreadsheet-sort-toolbar {
18394
+ flex-direction: column;
18395
+ align-items: stretch;
18396
+ }
18397
+
18398
+ .work-spreadsheet-sort-level {
18399
+ grid-template-columns: minmax(0, 1fr);
18400
+ }
18401
+
18402
+ .work-spreadsheet-sort-order-controls, .work-spreadsheet-sort-order-controls[data-appearance="true"] {
18403
+ grid-template-columns: repeat(2, minmax(0, 1fr));
18404
+ }
18405
+
18406
+ .work-spreadsheet-sort-order-controls[data-appearance="true"] > label:last-of-type {
18407
+ grid-column: 1 / -1;
18408
+ }
18409
+
18410
+ .work-spreadsheet-sort-level-actions {
18411
+ justify-content: flex-end;
18412
+ }
18413
+ }
18414
+
18415
+ @media (width <= 430px) {
18416
+ .work-spreadsheet-sort-order-controls, .work-spreadsheet-sort-order-controls[data-appearance="true"] {
18417
+ grid-template-columns: minmax(0, 1fr);
18418
+ }
18419
+
18420
+ .work-spreadsheet-sort-order-controls[data-appearance="true"] > label:last-of-type {
18421
+ grid-column: auto;
18422
+ }
18423
+ }
18424
+
18425
+ .work-spreadsheet-hyperlink-dialog {
18426
+ --work-office-control-accent: var(--work-spreadsheet-accent, #159469);
18427
+ width: min(610px, 100%);
18428
+ }
18429
+
18430
+ .work-spreadsheet-hyperlink-dialog form {
18431
+ gap: 18px;
18432
+ display: grid;
18433
+ }
18434
+
18435
+ .work-spreadsheet-hyperlink-types {
18436
+ border: 0;
18437
+ min-width: 0;
18438
+ margin: 0;
18439
+ padding: 0;
18440
+ }
18441
+
18442
+ .work-spreadsheet-hyperlink-types > legend {
18443
+ color: var(--a3s-muted);
18444
+ margin-bottom: 8px;
18445
+ font-size: 12px;
18446
+ font-weight: 600;
18447
+ }
18448
+
18449
+ .work-spreadsheet-hyperlink-types > div {
18450
+ grid-template-columns: repeat(3, minmax(0, 1fr));
18451
+ gap: 7px;
18452
+ display: grid;
18453
+ }
18454
+
18455
+ .work-spreadsheet-hyperlink-types label {
18456
+ border: 1px solid var(--a3s-line);
18457
+ background: var(--a3s-panel);
18458
+ min-width: 0;
18459
+ min-height: 62px;
18460
+ color: var(--a3s-muted);
18461
+ cursor: pointer;
18462
+ border-radius: 8px;
18463
+ grid-template-columns: 20px minmax(0, 1fr);
18464
+ align-items: center;
18465
+ gap: 8px;
18466
+ padding: 9px 10px;
18467
+ display: grid;
18468
+ position: relative;
18469
+ }
18470
+
18471
+ .work-spreadsheet-hyperlink-types label:hover {
18472
+ border-color: color-mix(in srgb,
18473
+ var(--work-spreadsheet-accent, #159469) 42%,
18474
+ var(--a3s-line));
18475
+ }
18476
+
18477
+ .work-spreadsheet-hyperlink-types label.selected {
18478
+ border-color: color-mix(in srgb,
18479
+ var(--work-spreadsheet-accent, #159469) 58%,
18480
+ var(--a3s-line));
18481
+ background: color-mix(in srgb,
18482
+ var(--work-spreadsheet-accent, #159469) 8%,
18483
+ var(--a3s-panel));
18484
+ color: var(--work-spreadsheet-accent, #159469);
18485
+ }
18486
+
18487
+ .work-spreadsheet-hyperlink-types label:has(input:focus-visible) {
18488
+ outline: 2px solid
18489
+ color-mix(in srgb, var(--work-spreadsheet-accent, #159469) 38%, transparent);
18490
+ outline-offset: 2px;
18491
+ }
18492
+
18493
+ .work-spreadsheet-hyperlink-types input {
18494
+ opacity: 0;
18495
+ width: 1px;
18496
+ height: 1px;
18497
+ position: absolute;
18498
+ }
18499
+
18500
+ .work-spreadsheet-hyperlink-types label > span {
18501
+ gap: 1px;
18502
+ min-width: 0;
18503
+ display: grid;
18504
+ }
18505
+
18506
+ .work-spreadsheet-hyperlink-types strong, .work-spreadsheet-hyperlink-types small {
18507
+ text-overflow: ellipsis;
18508
+ white-space: nowrap;
18509
+ overflow: hidden;
18510
+ }
18511
+
18512
+ .work-spreadsheet-hyperlink-types strong {
18513
+ color: var(--a3s-ink);
18514
+ font-size: 11px;
18515
+ font-weight: 650;
18516
+ }
18517
+
18518
+ .work-spreadsheet-hyperlink-types small {
18519
+ color: var(--a3s-muted);
18520
+ font-size: 9px;
18521
+ }
18522
+
18523
+ .work-spreadsheet-hyperlink-preview {
18524
+ background: var(--a3s-panel-soft);
18525
+ border-radius: 8px;
18526
+ grid-template-columns: 30px minmax(0, 1fr);
18527
+ align-items: center;
18528
+ gap: 10px;
18529
+ min-width: 0;
18530
+ min-height: 56px;
18531
+ padding: 9px 11px;
18532
+ display: grid;
18533
+ }
18534
+
18535
+ .work-spreadsheet-hyperlink-preview > span {
18536
+ background: color-mix(in srgb,
18537
+ var(--work-spreadsheet-accent, #159469) 11%,
18538
+ var(--a3s-panel));
18539
+ width: 30px;
18540
+ height: 30px;
18541
+ color: var(--work-spreadsheet-accent, #159469);
18542
+ border-radius: 7px;
18543
+ place-items: center;
18544
+ display: grid;
18545
+ }
18546
+
18547
+ .work-spreadsheet-hyperlink-preview > div {
18548
+ gap: 1px;
18549
+ min-width: 0;
18550
+ display: grid;
18551
+ }
18552
+
18553
+ .work-spreadsheet-hyperlink-preview strong, .work-spreadsheet-hyperlink-preview small {
18554
+ text-overflow: ellipsis;
18555
+ white-space: nowrap;
18556
+ overflow: hidden;
18557
+ }
18558
+
18559
+ .work-spreadsheet-hyperlink-preview strong {
18560
+ color: var(--a3s-ink);
18561
+ font-size: 11px;
18562
+ font-weight: 650;
18563
+ }
18564
+
18565
+ .work-spreadsheet-hyperlink-preview small {
18566
+ color: var(--a3s-muted);
18567
+ font-size: 10px;
18568
+ }
18569
+
18570
+ .work-spreadsheet-hyperlink-remove {
18571
+ margin-right: auto;
18572
+ }
18573
+
18574
+ @media (width <= 560px) {
18575
+ .work-spreadsheet-hyperlink-types > div {
18576
+ grid-template-columns: minmax(0, 1fr);
18577
+ }
18578
+
18579
+ .work-spreadsheet-hyperlink-types label {
18580
+ min-height: 50px;
18581
+ }
18582
+ }
18583
+
18584
+ .work-spreadsheet-paste-special-dialog {
18585
+ --work-office-control-accent: var(--work-spreadsheet-accent, #159469);
18586
+ width: min(660px, 100%);
18587
+ }
18588
+
18589
+ .work-spreadsheet-paste-special-dialog > .ds-dialog-body {
18590
+ padding-top: 0;
18591
+ }
18592
+
18593
+ .work-spreadsheet-paste-special-source {
18594
+ background: color-mix(in srgb,
18595
+ var(--work-spreadsheet-accent, #159469) 7%,
18596
+ var(--a3s-panel-soft));
18597
+ min-height: 34px;
18598
+ color: var(--a3s-muted);
18599
+ border-radius: 7px;
18600
+ justify-content: space-between;
18601
+ align-items: center;
18602
+ gap: 12px;
18603
+ margin-bottom: 15px;
18604
+ padding: 0 11px;
18605
+ font-size: 11px;
18606
+ display: flex;
18607
+ }
18608
+
18609
+ .work-spreadsheet-paste-special-source strong {
18610
+ color: var(--a3s-ink);
18087
18611
  font-weight: 650;
18088
18612
  }
18089
18613
 
@@ -18364,6 +18888,113 @@ sub [data-office-character-position-half-points], sup [data-office-character-pos
18364
18888
  min-width: 76px;
18365
18889
  }
18366
18890
 
18891
+ .work-spreadsheet-table-totals-root {
18892
+ display: flex;
18893
+ }
18894
+
18895
+ .work-office-ribbon .work-spreadsheet-table-totals-trigger {
18896
+ min-width: 70px;
18897
+ }
18898
+
18899
+ .work-spreadsheet-table-totals-menu {
18900
+ border: 1px solid var(--a3s-overlay-border);
18901
+ border-radius: var(--a3s-overlay-radius);
18902
+ background: var(--a3s-overlay-surface);
18903
+ width: min(560px, 100vw - 24px);
18904
+ max-height: min(650px, 100vh - 32px);
18905
+ box-shadow: var(--a3s-shadow-soft);
18906
+ padding: 14px;
18907
+ overflow: auto;
18908
+ }
18909
+
18910
+ .work-spreadsheet-table-totals-content {
18911
+ gap: 10px;
18912
+ display: grid;
18913
+ }
18914
+
18915
+ .work-spreadsheet-table-totals-hint {
18916
+ color: var(--a3s-muted);
18917
+ margin: -4px 0 2px;
18918
+ font-size: 11px;
18919
+ line-height: 1.45;
18920
+ }
18921
+
18922
+ .work-spreadsheet-table-totals-columns {
18923
+ gap: 8px;
18924
+ max-height: 440px;
18925
+ padding-right: 2px;
18926
+ display: grid;
18927
+ overflow: auto;
18928
+ }
18929
+
18930
+ .work-spreadsheet-table-totals-column {
18931
+ border: 1px solid var(--a3s-line);
18932
+ background: var(--a3s-panel-soft);
18933
+ border-radius: 7px;
18934
+ grid-template-columns: minmax(92px, 1fr) minmax(100px, 1fr) minmax(100px, 1fr);
18935
+ align-items: end;
18936
+ gap: 7px;
18937
+ padding: 9px;
18938
+ display: grid;
18939
+ }
18940
+
18941
+ .work-spreadsheet-table-totals-column > strong {
18942
+ color: var(--a3s-ink);
18943
+ text-overflow: ellipsis;
18944
+ white-space: nowrap;
18945
+ grid-column: 1 / -1;
18946
+ font-size: 11px;
18947
+ font-weight: 650;
18948
+ overflow: hidden;
18949
+ }
18950
+
18951
+ .work-spreadsheet-table-totals-column label {
18952
+ gap: 3px;
18953
+ min-width: 0;
18954
+ display: grid;
18955
+ }
18956
+
18957
+ .work-spreadsheet-table-totals-column label > span {
18958
+ color: var(--a3s-muted);
18959
+ font-size: 9px;
18960
+ line-height: 1;
18961
+ }
18962
+
18963
+ .work-spreadsheet-table-totals-column select, .work-spreadsheet-table-totals-column input {
18964
+ box-sizing: border-box;
18965
+ border: 1px solid var(--a3s-line-strong);
18966
+ background: var(--a3s-panel);
18967
+ width: 100%;
18968
+ min-width: 0;
18969
+ height: 28px;
18970
+ color: var(--a3s-ink);
18971
+ border-radius: 5px;
18972
+ padding: 0 7px;
18973
+ font-size: 11px;
18974
+ }
18975
+
18976
+ .work-spreadsheet-table-totals-column select:disabled, .work-spreadsheet-table-totals-column input:disabled {
18977
+ cursor: not-allowed;
18978
+ opacity: .55;
18979
+ }
18980
+
18981
+ .work-spreadsheet-table-totals-close {
18982
+ border: 1px solid var(--work-spreadsheet-accent, #159469);
18983
+ background: var(--work-spreadsheet-accent, #159469);
18984
+ color: #fff;
18985
+ cursor: pointer;
18986
+ border-radius: 5px;
18987
+ justify-self: end;
18988
+ min-height: 29px;
18989
+ padding: 0 13px;
18990
+ font-size: 11px;
18991
+ font-weight: 650;
18992
+ }
18993
+
18994
+ .work-spreadsheet-table-totals-close:hover, .work-spreadsheet-table-totals-close:focus-visible {
18995
+ filter: brightness(.94);
18996
+ }
18997
+
18367
18998
  .work-spreadsheet-table-style-preview {
18368
18999
  background: #fff;
18369
19000
  border: 1px solid #0f172a29;
@@ -18455,6 +19086,19 @@ sub [data-office-character-position-half-points], sup [data-office-character-pos
18455
19086
  padding: 8px;
18456
19087
  }
18457
19088
 
19089
+ .work-spreadsheet-table-totals-menu {
19090
+ width: min(440px, 100vw - 16px);
19091
+ padding: 10px;
19092
+ }
19093
+
19094
+ .work-spreadsheet-table-totals-column {
19095
+ grid-template-columns: 1fr 1fr;
19096
+ }
19097
+
19098
+ .work-spreadsheet-table-totals-column label:last-child {
19099
+ grid-column: 1 / -1;
19100
+ }
19101
+
18458
19102
  .work-spreadsheet-table-style-family > div {
18459
19103
  grid-template-columns: repeat(5, minmax(0, 1fr));
18460
19104
  }