@odoo/o-spreadsheet 19.5.0-alpha.9 → 20.1.0-alpha.0

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 (175) hide show
  1. package/dist/material_symbols_outlined.css +9 -0
  2. package/dist/o_spreadsheet.cjs +34889 -32633
  3. package/dist/o_spreadsheet.css +271 -127
  4. package/dist/o_spreadsheet.esm.js +29707 -27456
  5. package/dist/o_spreadsheet.iife.js +30429 -28173
  6. package/dist/o_spreadsheet.min.iife.js +408 -354
  7. package/dist/o_spreadsheet.xml +303 -239
  8. package/dist/types/actions/data_actions.d.ts +1 -0
  9. package/dist/types/actions/menu_items_actions.d.ts +3 -2
  10. package/dist/types/collaborative/command_squisher.d.ts +1 -1
  11. package/dist/types/collaborative/session.d.ts +3 -1
  12. package/dist/types/components/autofill/autofill.d.ts +1 -1
  13. package/dist/types/components/autofill/autofill_store.d.ts +1 -1
  14. package/dist/types/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.d.ts +3 -0
  15. package/dist/types/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.d.ts +1 -1
  16. package/dist/types/components/dashboard/dashboard.d.ts +1 -0
  17. package/dist/types/components/figures/chart/chartJs/chartjs_geo_projection_plugin.d.ts +12 -0
  18. package/dist/types/components/figures/chart/chartJs/zoomable_chart/zoomable_chartjs.d.ts +1 -0
  19. package/dist/types/components/figures/chart/gauge/gauge_chart_component.d.ts +1 -1
  20. package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +1 -1
  21. package/dist/types/components/figures/figure/figure.d.ts +7 -3
  22. package/dist/types/components/figures/figure_carousel/figure_carousel.d.ts +10 -2
  23. package/dist/types/components/figures/figure_container/figure_container.d.ts +8 -4
  24. package/dist/types/components/full_screen_figure/full_screen_figure.d.ts +12 -1
  25. package/dist/types/components/grid/grid.d.ts +3 -0
  26. package/dist/types/components/grid_overlay/grid_overlay.d.ts +2 -0
  27. package/dist/types/components/grid_popover/grid_popover.d.ts +1 -1
  28. package/dist/types/components/headers_overlay/headers_overlay.d.ts +2 -0
  29. package/dist/types/components/helpers/chart_drag_and_drop.d.ts +15 -0
  30. package/dist/types/components/helpers/dom_helpers.d.ts +3 -2
  31. package/dist/types/components/helpers/draw_grid_hook.d.ts +1 -2
  32. package/dist/types/components/helpers/figure_drag_helper.d.ts +3 -3
  33. package/dist/types/components/helpers/figure_snap_helper.d.ts +8 -3
  34. package/dist/types/components/helpers/zoom.d.ts +0 -14
  35. package/dist/types/components/highlight/highlight/highlight.d.ts +1 -0
  36. package/dist/types/components/link/link_editor/link_editor.d.ts +2 -1
  37. package/dist/types/components/popover/popover.d.ts +0 -1
  38. package/dist/types/components/popover/popover_container_owl_plugin.d.ts +5 -0
  39. package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +1 -0
  40. package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +1 -0
  41. package/dist/types/components/side_panel/carousel_panel/carousel_panel.d.ts +1 -1
  42. package/dist/types/components/side_panel/chart/building_blocks/chart_title/chart_title.d.ts +1 -0
  43. package/dist/types/components/side_panel/chart/building_blocks/color_scale/color_scale_picker.d.ts +1 -1
  44. package/dist/types/components/side_panel/chart/calendar_chart/calendar_chart_config_panel.d.ts +0 -2
  45. package/dist/types/components/side_panel/chart/chart_type_picker_popover/chart_type_picker_popover.d.ts +0 -1
  46. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +6 -10
  47. package/dist/types/components/side_panel/components/radio_selection/radio_selection.d.ts +1 -1
  48. package/dist/types/components/side_panel/data_analysis/chart_suggestion_preview.d.ts +19 -0
  49. package/dist/types/components/side_panel/data_analysis/data_analysis_panel.d.ts +17 -0
  50. package/dist/types/components/side_panel/data_analysis/data_analysis_store.d.ts +15 -0
  51. package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +1 -0
  52. package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +2 -1
  53. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +1 -6
  54. package/dist/types/components/side_panel/side_panel/side_panel_store.d.ts +2 -1
  55. package/dist/types/components/side_panel/table_panel/table_panel.d.ts +6 -0
  56. package/dist/types/components/side_panel/table_style_editor_panel/table_style_editor_panel.d.ts +2 -0
  57. package/dist/types/components/spreadsheet/spreadsheet.d.ts +11 -5
  58. package/dist/types/components/spreadsheet_print/print_iframe.d.ts +15 -0
  59. package/dist/types/components/spreadsheet_print/spreadsheet_print.d.ts +4 -0
  60. package/dist/types/components/standalone_grid_canvas/carousel_data_view_print.d.ts +32 -0
  61. package/dist/types/components/standalone_grid_canvas/standalone_grid_canvas.d.ts +395 -1
  62. package/dist/types/components/standalone_viewport/standalone_viewport.d.ts +8 -4
  63. package/dist/types/components/standalone_viewport/standalone_viewport_store.d.ts +2 -1
  64. package/dist/types/components/tables/hovered_table_store.d.ts +6 -7
  65. package/dist/types/components/tables/table_resizer/table_resizer.d.ts +1 -0
  66. package/dist/types/components/tables/table_styles_popover/table_styles_popover.d.ts +0 -1
  67. package/dist/types/components/top_bar/color_editor/color_editor.d.ts +1 -1
  68. package/dist/types/components/top_bar/zoom_editor/zoom_editor.d.ts +1 -1
  69. package/dist/types/constants.d.ts +17 -2
  70. package/dist/types/formulas/compiler.d.ts +1 -1
  71. package/dist/types/functions/function_registry.d.ts +3 -0
  72. package/dist/types/functions/helper_lookup.d.ts +1 -1
  73. package/dist/types/functions/helpers.d.ts +4 -0
  74. package/dist/types/functions/module_operators.d.ts +1 -1
  75. package/dist/types/functions/module_text.d.ts +16 -13
  76. package/dist/types/functions/module_web.d.ts +1 -1
  77. package/dist/types/helpers/carousel_helpers.d.ts +8 -1
  78. package/dist/types/helpers/cells/cell_evaluation.d.ts +1 -1
  79. package/dist/types/helpers/color.d.ts +1 -1
  80. package/dist/types/helpers/color_themes.d.ts +2 -0
  81. package/dist/types/helpers/data_analysis.d.ts +17 -0
  82. package/dist/types/helpers/figures/chart.d.ts +7 -6
  83. package/dist/types/helpers/figures/charts/chart_common.d.ts +3 -3
  84. package/dist/types/helpers/figures/charts/chart_data_source_helpers.d.ts +10 -0
  85. package/dist/types/helpers/figures/charts/chart_data_sources.d.ts +3 -3
  86. package/dist/types/helpers/figures/charts/chart_suggestion_engine.d.ts +8 -0
  87. package/dist/types/helpers/figures/charts/chart_ui_common.d.ts +11 -4
  88. package/dist/types/helpers/figures/charts/charts_suggestions_constants.d.ts +37 -0
  89. package/dist/types/helpers/figures/charts/gauge_chart_rendering.d.ts +6 -2
  90. package/dist/types/helpers/figures/charts/runtime/chart_data_extractor.d.ts +13 -12
  91. package/dist/types/helpers/figures/charts/runtime/chartjs_title.d.ts +2 -2
  92. package/dist/types/helpers/filter_helpers.d.ts +2 -2
  93. package/dist/types/helpers/links.d.ts +1 -1
  94. package/dist/types/helpers/owl3_helpers.d.ts +4 -0
  95. package/dist/types/helpers/pivot/pivot_composer_helpers.d.ts +1 -1
  96. package/dist/types/helpers/pivot/pivot_presentation.d.ts +2 -2
  97. package/dist/types/helpers/pivot/pivot_registry.d.ts +4 -5
  98. package/dist/types/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.d.ts +2 -2
  99. package/dist/types/helpers/range.d.ts +1 -1
  100. package/dist/types/helpers/rectangle.d.ts +4 -0
  101. package/dist/types/helpers/text_helper.d.ts +1 -1
  102. package/dist/types/helpers/viewport_collection.d.ts +2 -6
  103. package/dist/types/index.d.ts +22 -10
  104. package/dist/types/model.d.ts +17 -10
  105. package/dist/types/owl3_compatibility_layer.d.ts +1 -14
  106. package/dist/types/plugins/core/carousel.d.ts +1 -1
  107. package/dist/types/plugins/core/image.d.ts +2 -1
  108. package/dist/types/plugins/core/range.d.ts +4 -2
  109. package/dist/types/plugins/core/squisher.d.ts +6 -2
  110. package/dist/types/plugins/core/tables.d.ts +2 -1
  111. package/dist/types/plugins/core/unsquisher.d.ts +1 -1
  112. package/dist/types/plugins/core_plugin.d.ts +1 -1
  113. package/dist/types/plugins/{ui_stateful → evaluation}/cell_computed_style.d.ts +4 -4
  114. package/dist/types/plugins/{ui_core_views/cell_evaluation/evaluation_plugin.d.ts → evaluation/cell_evaluation/cell_evaluation_plugin.d.ts} +7 -7
  115. package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/compilation_parameters.d.ts +2 -2
  116. package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/evaluator.d.ts +2 -2
  117. package/dist/types/plugins/{ui_core_views → evaluation}/custom_colors.d.ts +5 -5
  118. package/dist/types/plugins/{ui_core_views → evaluation}/dynamic_tables.d.ts +4 -4
  119. package/dist/types/plugins/{ui_feature → evaluation}/dynamic_translate.d.ts +2 -2
  120. package/dist/types/plugins/evaluation/evaluation_chart.d.ts +27 -0
  121. package/dist/types/plugins/{ui_core_views → evaluation}/evaluation_conditional_format.d.ts +4 -4
  122. package/dist/types/plugins/{ui_core_views → evaluation}/evaluation_data_validation.d.ts +4 -4
  123. package/dist/types/plugins/{ui_stateful → evaluation}/filter_evaluation.d.ts +5 -5
  124. package/dist/types/plugins/{ui_core_views → evaluation}/fingerprint.d.ts +2 -2
  125. package/dist/types/plugins/evaluation/formula_tracker.d.ts +8 -0
  126. package/dist/types/plugins/evaluation/geo_loader.d.ts +13 -0
  127. package/dist/types/plugins/{ui_core_views → evaluation}/header_sizes_ui.d.ts +5 -5
  128. package/dist/types/plugins/{ui_stateful/header_visibility_ui.d.ts → evaluation/header_visibility_evaluation.d.ts} +2 -2
  129. package/dist/types/plugins/evaluation/pivot_presence_plugin.d.ts +12 -0
  130. package/dist/types/plugins/{ui_core_views → evaluation}/pivot_ui.d.ts +6 -6
  131. package/dist/types/plugins/evaluation/subtotal_evaluation.d.ts +5 -0
  132. package/dist/types/plugins/{ui_stateful → evaluation}/table_computed_style.d.ts +7 -7
  133. package/dist/types/plugins/evaluation_plugin.d.ts +31 -0
  134. package/dist/types/plugins/plugin_registries.d.ts +11 -5
  135. package/dist/types/plugins/ui_feature/chart_ui.d.ts +6 -0
  136. package/dist/types/plugins/ui_feature/color_theme.d.ts +0 -3
  137. package/dist/types/plugins/ui_feature/geo_features.d.ts +1 -6
  138. package/dist/types/plugins/ui_plugin.d.ts +1 -4
  139. package/dist/types/plugins/{ui_core_views → ui_stateful}/cell_icon_plugin.d.ts +2 -2
  140. package/dist/types/registries/chart_data_source_registry.d.ts +4 -5
  141. package/dist/types/registries/chart_registry.d.ts +5 -5
  142. package/dist/types/registries/criterion_registry.d.ts +4 -4
  143. package/dist/types/registries/evaluation_registry.d.ts +2 -2
  144. package/dist/types/registries/figures_registry.d.ts +6 -2
  145. package/dist/types/stores/cell_hover_overlay_store.d.ts +15 -0
  146. package/dist/types/stores/chart_drag_store.d.ts +10 -0
  147. package/dist/types/{plugins/ui_stateful/clipboard.d.ts → stores/clipboard_store.d.ts} +11 -11
  148. package/dist/types/stores/grid_renderer_store.d.ts +3 -2
  149. package/dist/types/stores/main_viewport_store.d.ts +3 -0
  150. package/dist/types/stores/viewports_store.d.ts +3 -6
  151. package/dist/types/stores/zoom_store.d.ts +27 -0
  152. package/dist/types/types/chart/chart.d.ts +3 -1
  153. package/dist/types/types/chart/chart_suggestion.d.ts +137 -0
  154. package/dist/types/types/chart/scorecard_chart.d.ts +3 -4
  155. package/dist/types/types/collaborative/transport_service.d.ts +4 -1
  156. package/dist/types/types/commands.d.ts +39 -19
  157. package/dist/types/types/functions.d.ts +2 -2
  158. package/dist/types/types/getters.d.ts +102 -21
  159. package/dist/types/types/model.d.ts +2 -4
  160. package/dist/types/types/rendering.d.ts +20 -1
  161. package/package.json +6 -5
  162. package/dist/types/plugins/core_view_plugin.d.ts +0 -29
  163. package/dist/types/plugins/ui_core_views/evaluation_chart.d.ts +0 -26
  164. package/dist/types/plugins/ui_core_views/formula_tracker.d.ts +0 -8
  165. package/dist/types/plugins/ui_feature/pivot_presence_plugin.d.ts +0 -11
  166. package/dist/types/plugins/ui_feature/subtotal_evaluation.d.ts +0 -5
  167. package/dist/types/types/core_getters.d.ts +0 -77
  168. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/binary_grid.d.ts +0 -0
  169. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/formula_dependency_graph.d.ts +0 -0
  170. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/interval_tree.d.ts +0 -0
  171. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/position_set.d.ts +0 -0
  172. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/r_tree.d.ts +0 -0
  173. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/range_set.d.ts +0 -0
  174. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/spreading_relation.d.ts +0 -0
  175. /package/dist/types/plugins/{ui_core_views → evaluation}/cell_evaluation/zone_set.d.ts +0 -0
@@ -2,27 +2,29 @@
2
2
  /*
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 19.5.0-alpha.9
6
- * @date 2026-08-06T13:08:59.422Z
7
- * @hash 64623a8
5
+ * @version 20.1.0-alpha.0
6
+ * @date 2026-09-17T09:32:18.341Z
7
+ * @hash 4020a44
8
8
  */
9
9
  :root {
10
- --os-gray-100: light-dark(#f9fafb, #1b1d26);
11
- --os-gray-200: light-dark(#e7e9ed, #262a36); /* GRAY_200 */
12
- --os-gray-300: light-dark(#d8dadd, #3c3e4b); /* GRAY_300 */
13
- --os-gray-400: light-dark(#ced4da, #5a5e6b);
14
- --os-gray-500: light-dark(#7c7f89, #6b707f);
15
- --os-gray-600: light-dark(#5f636f, #7e8392);
16
- --os-gray-700: light-dark(#374151, #b1b3bc);
17
- --os-gray-800: light-dark(#1f2937, #d1d1d1);
18
- --os-gray-900: light-dark(#111827, #e4e4e4); /* GRAY_900 */
10
+ --os-gray-100: light-dark(#f8f9fa, #1c1c20);
11
+ --os-gray-200: light-dark(#e7ebed, #25262b); /* GRAY_200 */
12
+ --os-gray-300: light-dark(#dee2e6, #3a3b41); /* GRAY_300 */
13
+ --os-gray-400: light-dark(#ced4da, #56575e);
14
+ --os-gray-500: light-dark(#adb5bd, #6e6f77);
15
+ --os-gray-600: light-dark(#6c757d, #88898f);
16
+ --os-gray-700: light-dark(#495057, #b3b4b8);
17
+ --os-gray-800: light-dark(#343a40, #d1d1d3);
18
+ --os-gray-900: light-dark(#212529, #e4e4e5); /* GRAY_900 */
19
19
 
20
20
  --os-white: light-dark(#ffffff, #000000);
21
21
  --os-black: light-dark(#000000, #ffffff);
22
22
  --os-white-bg: light-dark(#ffffff, var(--os-gray-200));
23
23
  --os-popover-bg: light-dark(#ffffff, var(--os-gray-200));
24
24
 
25
- --os-default-font: "Roboto", "Arial";
25
+ --os-canvas-background-color: var(--os-white-bg);
26
+
27
+ --os-default-font: "Roboto", "Arial", "Liberation Sans";
26
28
  --os-default-font-size: 10px;
27
29
  --os-link-color: light-dark(#017e84, #02c7b5);
28
30
  --os-link-hover-color: light-dark(#01585c, #4ed8cb);
@@ -138,6 +140,8 @@
138
140
  --os-components-importance-figure-anchor: 1000;
139
141
  --os-components-importance-figure-snap-line: 1001;
140
142
  --os-components-importance-figure-tooltip: 1002;
143
+
144
+ --os-icon-font-size: 14px;
141
145
  }
142
146
 
143
147
  /* Originates from src/components/validation_messages/validation_messages.css */
@@ -182,13 +186,6 @@
182
186
  }
183
187
  }
184
188
 
185
- @media (max-width: 768px) {
186
- .topbar-banner span {
187
- overflow: auto;
188
- align-items: normal !important;
189
- }
190
- }
191
-
192
189
  .tool-container {
193
190
  display: flex;
194
191
  justify-content: center;
@@ -230,7 +227,11 @@
230
227
  }
231
228
 
232
229
  .topbar-banner {
233
- height: var(--os-desktop-topbar-toolbar-height);
230
+ min-height: var(--os-desktop-topbar-toolbar-height);
231
+
232
+ .alert {
233
+ border: none; /* Remove default bootstrap border */
234
+ }
234
235
 
235
236
  .alert-info {
236
237
  border-left: 3px solid var(--os-alert-info-border);
@@ -311,6 +312,7 @@
311
312
  .os-input {
312
313
  border-width: 0 0 1px 0;
313
314
  border-color: transparent;
315
+ border-style: solid;
314
316
  outline: none;
315
317
  text-overflow: ellipsis;
316
318
  color: var(--os-text-body);
@@ -513,44 +515,17 @@
513
515
  }
514
516
  }
515
517
 
518
+ /* The pages are in the iframe document, styled by PRINT_IFRAME_CSS */
516
519
  .o-print-preview {
517
- background-color: light-dark(var(--os-gray-200), var(--os-gray-100));
518
-
519
- .o-print-page {
520
- /* Don't use css variable to keep white on dark mode */
521
- background-color: #ffffff;
522
- }
520
+ flex: 1 1 auto;
521
+ min-width: 0;
522
+ height: 100%;
523
+ border: 0;
523
524
  }
524
525
 
525
526
  .o-sidePanel {
526
527
  width: 350px;
527
528
  }
528
-
529
- @media print {
530
- .o-print-container {
531
- overflow: visible !important;
532
- height: 100% !important;
533
- }
534
-
535
- .o-print-preview {
536
- box-shadow: none !important;
537
- overflow: visible !important;
538
- height: 100% !important;
539
-
540
- .o-print-page {
541
- box-shadow: none !important;
542
- padding: 0 !important;
543
- margin: 0 !important;
544
- width: 100% !important;
545
- height: 100% !important;
546
- break-after: page;
547
-
548
- &:last-child {
549
- break-after: auto;
550
- }
551
- }
552
- }
553
- }
554
529
  }
555
530
 
556
531
  /* Originates from src/components/spreadsheet/spreadsheet.css */
@@ -625,7 +600,7 @@
625
600
  margin-bottom: var(--os-menu-separator-padding);
626
601
  }
627
602
  .o-hoverable-button {
628
- border-radius: 2px;
603
+ border-radius: 4px;
629
604
  cursor: pointer;
630
605
  .o-icon {
631
606
  color: var(--os-text-body);
@@ -676,6 +651,7 @@
676
651
  width: 100%;
677
652
  outline: none;
678
653
  border-color: var(--os-border-color);
654
+ border-style: solid;
679
655
  color: var(--os-gray-900);
680
656
 
681
657
  &::placeholder {
@@ -754,10 +730,14 @@
754
730
  outline: none;
755
731
  }
756
732
 
757
- > canvas {
758
- box-sizing: content-box;
759
- border-bottom: 1px solid var(--os-canvas-border-color);
760
- border-right: 1px solid var(--os-canvas-border-color);
733
+ > .os-canvas-background {
734
+ width: fit-content;
735
+ > canvas {
736
+ display: block;
737
+ box-sizing: content-box;
738
+ border-bottom: 1px solid var(--os-canvas-border-color);
739
+ border-right: 1px solid var(--os-canvas-border-color);
740
+ }
761
741
  }
762
742
  }
763
743
 
@@ -853,6 +833,12 @@
853
833
  filter: var(--os-dark-mode-filter);
854
834
  }
855
835
  }
836
+
837
+ --oi-font-size: var(--os-icon-font-size);
838
+
839
+ .os-canvas-background {
840
+ background-color: var(--os-canvas-background-color);
841
+ }
856
842
  }
857
843
 
858
844
  /* Originates from src/components/small_bottom_bar/small_bottom_bar.css */
@@ -860,7 +846,7 @@
860
846
  background-color: var(--os-background-gray-color);
861
847
 
862
848
  .o-selection-button {
863
- border-radius: 2px;
849
+ border-radius: 4px;
864
850
  background-color: var(--os-gray-200);
865
851
  .o-icon {
866
852
  width: 24px;
@@ -1347,6 +1333,52 @@
1347
1333
  }
1348
1334
  }
1349
1335
 
1336
+ /* Originates from src/components/side_panel/data_analysis/data_analysis_panel.css */
1337
+ .o-spreadsheet {
1338
+ .o-chart-suggestions-grid {
1339
+ display: grid;
1340
+ grid-template-columns: 1fr 1fr;
1341
+ gap: 6px;
1342
+ }
1343
+
1344
+ .o-chart-drag-preview {
1345
+ box-sizing: content-box;
1346
+ z-index: 9999;
1347
+ }
1348
+ }
1349
+
1350
+ /* Originates from src/components/side_panel/data_analysis/chart_suggestion_preview.css */
1351
+ .o-spreadsheet {
1352
+ .o-suggestion-canvas-wrap {
1353
+ cursor: grab;
1354
+ height: 120px;
1355
+ }
1356
+ .o-suggestion-canvas-wrap:hover {
1357
+ border-color: var(--o-action-color, #3d9be9);
1358
+ }
1359
+ .o-suggestion-canvas-wrap:active {
1360
+ cursor: grabbing;
1361
+ }
1362
+
1363
+ .o-suggestion-insert-icon {
1364
+ position: absolute;
1365
+ inset: 0;
1366
+ background: rgba(0, 0, 0, 0.35);
1367
+ opacity: 0;
1368
+ pointer-events: none;
1369
+ transition: opacity 0.1s;
1370
+
1371
+ .o-icon {
1372
+ width: 32px;
1373
+ height: 32px;
1374
+ color: white;
1375
+ }
1376
+ }
1377
+ .o-suggestion-canvas-wrap:hover .o-suggestion-insert-icon {
1378
+ opacity: 1;
1379
+ }
1380
+ }
1381
+
1350
1382
  /* Originates from src/components/side_panel/criterion_form/top_10_criterion/top_10_criterion.css */
1351
1383
  .o-spreadsheet {
1352
1384
  .o-top-10-criterion {
@@ -1561,6 +1593,12 @@
1561
1593
  background-color: var(--os-action-color);
1562
1594
  border-color: var(--os-action-color) !important;
1563
1595
  }
1596
+
1597
+ &:focus {
1598
+ outline: none;
1599
+ box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
1600
+ border-color: var(--os-action-color);
1601
+ }
1564
1602
  }
1565
1603
  }
1566
1604
  }
@@ -1576,7 +1614,7 @@
1576
1614
  .o_side_panel_collapsible_title {
1577
1615
  font-size: 16px;
1578
1616
  cursor: pointer;
1579
- padding: 6px 0px 6px 6px !important;
1617
+ padding: 6px 6px 6px 6px !important;
1580
1618
  .collapsor-arrow {
1581
1619
  transform: rotate(-90deg);
1582
1620
  display: inline-block;
@@ -1845,6 +1883,10 @@
1845
1883
  height: fit-content;
1846
1884
  max-height: 200px;
1847
1885
  min-height: 1.2em;
1886
+ border-style: none;
1887
+ &:focus {
1888
+ border-color: var(--os-action-color) !important;
1889
+ }
1848
1890
  }
1849
1891
 
1850
1892
  .o-input-infotext:empty:before {
@@ -1997,41 +2039,41 @@
1997
2039
  }
1998
2040
 
1999
2041
  /* Originates from src/components/pivot_html_renderer/pivot_html_renderer.css */
2000
- .o-spreadsheet {
2001
- .o_pivot_html_renderer {
2002
- width: 100%;
2003
- border-collapse: collapse;
2042
+ /* css-check-ignore */
2004
2043
 
2005
- &:hover {
2006
- cursor: pointer;
2007
- }
2044
+ .o_pivot_html_renderer {
2045
+ width: 100%;
2046
+ border-collapse: collapse;
2008
2047
 
2009
- td,
2010
- th {
2011
- border: 1px solid var(--os-border-color);
2012
- background-color: var(--os-white-bg);
2013
- padding: 0.3rem;
2014
- white-space: nowrap;
2048
+ &:hover {
2049
+ cursor: pointer;
2050
+ }
2015
2051
 
2016
- &:hover {
2017
- filter: brightness(0.9);
2018
- }
2019
- }
2052
+ td,
2053
+ th {
2054
+ border: 1px solid var(--os-border-color);
2055
+ background-color: var(--os-white-bg);
2056
+ padding: 0.3rem;
2057
+ white-space: nowrap;
2020
2058
 
2021
- td {
2022
- text-align: right;
2059
+ &:hover {
2060
+ filter: brightness(0.9);
2023
2061
  }
2062
+ }
2024
2063
 
2025
- th {
2026
- background-color: var(--os-background-gray-color);
2027
- font-weight: bold;
2028
- color: var(--os-black);
2029
- }
2064
+ td {
2065
+ text-align: right;
2066
+ }
2030
2067
 
2031
- .o_missing_value {
2032
- color: var(--os-gray-600);
2033
- background: var(--os-button-active-bg);
2034
- }
2068
+ th {
2069
+ background-color: var(--os-gray-100);
2070
+ font-weight: bold;
2071
+ color: var(--os-black);
2072
+ }
2073
+
2074
+ .o_missing_value {
2075
+ color: var(--os-gray-600);
2076
+ background: var(--os-button-active-bg);
2035
2077
  }
2036
2078
  }
2037
2079
 
@@ -2097,6 +2139,11 @@
2097
2139
  line-height: calc(
2098
2140
  var(--os-desktop-menu-item-height) - 2 * var(--os-menu-item-padding-vertical)
2099
2141
  );
2142
+ display: inline-block;
2143
+ margin: 0px 8px 0px 0px;
2144
+ .oi {
2145
+ --os-icon-font-size: calc(var(--os-icon-edge-length) - 1px);
2146
+ }
2100
2147
  }
2101
2148
  & {
2102
2149
  &.o-menu-item-active {
@@ -2116,10 +2163,6 @@
2116
2163
  .o-menu-item-name {
2117
2164
  min-width: 40%;
2118
2165
  }
2119
- .o-menu-item-icon {
2120
- display: inline-block;
2121
- margin: 0px 8px 0px 0px;
2122
- }
2123
2166
  }
2124
2167
  }
2125
2168
  &.o-spreadsheet-mobile {
@@ -2246,6 +2289,7 @@
2246
2289
  width: var(--os-icon-edge-length);
2247
2290
  height: var(--os-icon-edge-length);
2248
2291
  font-size: var(--os-icon-edge-length);
2292
+ --os-icon-font-size: var(--os-icon-edge-length);
2249
2293
  .small-text {
2250
2294
  font: bold 9px sans-serif;
2251
2295
  }
@@ -2253,13 +2297,63 @@
2253
2297
  font: bold 16px sans-serif;
2254
2298
  }
2255
2299
  }
2256
- .fa-small {
2257
- font-size: 14px;
2258
- }
2259
2300
 
2260
2301
  .o-icon.fx-icon {
2261
2302
  color: var(--os-composer-placeholder-color);
2262
2303
  }
2304
+
2305
+ /*
2306
+ * Odoo UI Icon (oi): render Material Symbols through the data-icon attribute.
2307
+ * Mirrors web/static/src/webclient/icons.scss `material-icon-base`, adapted to
2308
+ * the `material-symbols` package whose variable font exposes a FILL axis.
2309
+ */
2310
+ .oi {
2311
+ display: inline-block;
2312
+ font-family: var(--icon-font-family, "Material Symbols Outlined");
2313
+ font-style: normal;
2314
+ font-size: var(--os-icon-font-size, 1em);
2315
+ font-weight: 400 !important;
2316
+ line-height: inherit; /* override of Odoo, we want to keep the line height consistent with the surrounding text */
2317
+ letter-spacing: normal;
2318
+ text-transform: none;
2319
+ white-space: nowrap;
2320
+ word-wrap: normal;
2321
+ direction: ltr;
2322
+ -webkit-font-smoothing: antialiased;
2323
+ -moz-osx-font-smoothing: grayscale;
2324
+ }
2325
+
2326
+ .oi:before {
2327
+ display: inline-block;
2328
+ content: attr(data-icon);
2329
+ text-rendering: geometricPrecision;
2330
+ }
2331
+
2332
+ .oi-filled {
2333
+ -webkit-font-variation-settings: "FILL" 1;
2334
+ font-variation-settings: "FILL" 1;
2335
+ }
2336
+
2337
+ /* Overlap several icons (e.g. a glyph over a background disc).
2338
+ FIXME: this is kept as a compatibility layer, we should try to remove it in the future. */
2339
+ .oi-stack {
2340
+ position: relative;
2341
+ display: inline-block;
2342
+ width: 2em;
2343
+ height: 2em;
2344
+ line-height: 2em;
2345
+ vertical-align: middle;
2346
+ }
2347
+ .oi-stack-1x,
2348
+ .oi-stack-2x {
2349
+ position: absolute;
2350
+ left: 0;
2351
+ width: 100%;
2352
+ text-align: center;
2353
+ }
2354
+ .oi-stack-2x {
2355
+ font-size: 2em;
2356
+ }
2263
2357
  }
2264
2358
 
2265
2359
  /* Originates from src/components/icon_picker/icon_picker.css */
@@ -2541,7 +2635,7 @@
2541
2635
  .o-spreadsheet .o-filter-menu {
2542
2636
  .o-search-icon {
2543
2637
  right: 5px;
2544
- top: 3px;
2638
+ top: 8px;
2545
2639
  opacity: 0.4;
2546
2640
 
2547
2641
  svg {
@@ -2622,6 +2716,23 @@
2622
2716
  }
2623
2717
  }
2624
2718
 
2719
+ /* Originates from src/components/figures/figure_image/figure_image.css */
2720
+ .o-spreadsheet {
2721
+ .o-figure-menu-item {
2722
+ cursor: pointer;
2723
+ color: var(--os-gray-900) !important;
2724
+ height: 20px;
2725
+ width: 20px;
2726
+ --os-icon-edge-length: 14px;
2727
+ &.active,
2728
+ &:hover,
2729
+ &:target {
2730
+ cursor: pointer;
2731
+ background-color: var(--os-background-gray-color-hover);
2732
+ }
2733
+ }
2734
+ }
2735
+
2625
2736
  /* Originates from src/components/figures/figure_container/figure_container.css */
2626
2737
  .o-spreadsheet {
2627
2738
  .o-figure-snap-line {
@@ -2629,10 +2740,10 @@
2629
2740
  z-index: var(--os-components-importance-figure-snap-line);
2630
2741
  &.vertical {
2631
2742
  width: 0px;
2632
- border-left: 1px dashed black;
2743
+ border-left: 1px dashed var(--os-gray-800);
2633
2744
  }
2634
2745
  &.horizontal {
2635
- border-top: 1px dashed black;
2746
+ border-top: 1px dashed var(--os-gray-800);
2636
2747
  height: 0px;
2637
2748
  }
2638
2749
  }
@@ -2675,8 +2786,8 @@
2675
2786
 
2676
2787
  /* Originates from src/components/figures/figure_carousel/figure_carousel.css */
2677
2788
  .o-spreadsheet {
2678
- .o-carousel-content {
2679
- height: 0; /* To make flex-fill work */
2789
+ .o-carousel-separator {
2790
+ background-color: var(--os-gray-400);
2680
2791
  }
2681
2792
 
2682
2793
  .o-carousel-empty {
@@ -2705,18 +2816,15 @@
2705
2816
 
2706
2817
  .o-carousel-button {
2707
2818
  cursor: pointer;
2708
-
2709
- &.o-carousel-tabs-dropdown {
2710
- font-size: 16px;
2711
- line-height: 16px;
2712
- }
2819
+ --os-icon-edge-length: 14px;
2713
2820
 
2714
2821
  &.o-carousel-full-screen-button {
2715
2822
  margin: 1px;
2716
2823
  }
2717
2824
 
2718
- &.o-carousel-menu-button {
2719
- padding: 3px 5px;
2825
+ &.o-carousel-menu-button,
2826
+ &.o-carousel-tabs-dropdown {
2827
+ padding: 3px 2px;
2720
2828
  }
2721
2829
 
2722
2830
  &.active,
@@ -2748,6 +2856,7 @@
2748
2856
  div.o-figure {
2749
2857
  color-scheme: light;
2750
2858
  color: var(--os-text-body);
2859
+ border: 0px solid var(--os-figure-border-color);
2751
2860
 
2752
2861
  position: absolute;
2753
2862
  width: 100%;
@@ -2757,17 +2866,21 @@
2757
2866
  &:focus {
2758
2867
  outline: none;
2759
2868
  }
2760
- }
2761
2869
 
2762
- div.o-figure-border {
2763
- z-index: 1;
2764
- border: 0px solid var(--os-figure-border-color);
2870
+ &.o-figure-shadow {
2871
+ box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px;
2872
+ }
2765
2873
 
2766
- &.o-selected {
2767
- border-color: var(--os-selection-border-color);
2874
+ &.o-figure-rounded {
2875
+ border-radius: 6px;
2768
2876
  }
2769
2877
  }
2770
2878
 
2879
+ .o-figure-selection-border {
2880
+ z-index: 1;
2881
+ border: 2px solid var(--os-selection-border-color);
2882
+ }
2883
+
2771
2884
  .o-figure-wrapper {
2772
2885
  position: absolute;
2773
2886
  box-sizing: content-box;
@@ -2847,6 +2960,7 @@
2847
2960
  color: var(--os-gray-900) !important;
2848
2961
  height: 20px;
2849
2962
  width: 20px;
2963
+ border-color: transparent;
2850
2964
  &.active,
2851
2965
  &:hover,
2852
2966
  &:target {
@@ -2855,9 +2969,7 @@
2855
2969
  }
2856
2970
 
2857
2971
  .o-icon {
2858
- width: 14px;
2859
- height: 14px;
2860
- font-size: 14px !important;
2972
+ --os-icon-edge-length: 14px;
2861
2973
  }
2862
2974
 
2863
2975
  .o-chart-preview {
@@ -2914,6 +3026,11 @@
2914
3026
  position: absolute;
2915
3027
  cursor: pointer;
2916
3028
  }
3029
+
3030
+ .o-dashboard-grid {
3031
+ /* Grid itself is transparent, background is applied on another div on which the dark mode filter is applied */
3032
+ background-color: transparent;
3033
+ }
2917
3034
  }
2918
3035
 
2919
3036
  /* Originates from src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.css */
@@ -3125,18 +3242,22 @@
3125
3242
  pointer-events: none;
3126
3243
  }
3127
3244
 
3128
- .fa-stack {
3245
+ .oi-stack {
3129
3246
  /* reset stack size which is doubled by default */
3130
3247
  width: 18px;
3131
3248
  height: 18px;
3132
3249
  line-height: 18px;
3133
3250
  }
3134
3251
 
3252
+ .o-composer-assistant-icon-bg {
3253
+ color: white;
3254
+ }
3255
+
3135
3256
  .force-open-assistant {
3136
3257
  left: -1px;
3137
3258
  top: -1px;
3138
3259
 
3139
- .fa-question-circle {
3260
+ [data-icon="help_f"] {
3140
3261
  color: var(--os-primary-button-bg);
3141
3262
  }
3142
3263
  }
@@ -3153,7 +3274,7 @@
3153
3274
  }
3154
3275
 
3155
3276
  .o-composer-assistant-container {
3156
- .fa-times-circle {
3277
+ [data-icon="cancel_f"] {
3157
3278
  color: var(--os-primary-button-bg);
3158
3279
  }
3159
3280
  }
@@ -3202,7 +3323,7 @@
3202
3323
  align-items: center;
3203
3324
  margin: 2px;
3204
3325
  padding: 3px;
3205
- border-radius: 2px;
3326
+ border-radius: 4px;
3206
3327
  cursor: pointer;
3207
3328
  &:not([disabled]):hover {
3208
3329
  background-color: var(--os-background-gray-color-hover);
@@ -3466,12 +3587,31 @@
3466
3587
 
3467
3588
  /* Originates from src/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.css */
3468
3589
  .o-spreadsheet {
3469
- .o-selection-statistic {
3470
- margin-right: 20px;
3471
- padding: 4px 4px 4px 8px;
3472
- cursor: pointer;
3473
- &:hover {
3474
- background-color: var(--os-background-gray-color-hover) !important;
3590
+ .o-bottom-bar-statistic {
3591
+ .o-selection-statistic {
3592
+ margin-right: 10px;
3593
+ padding: 4px 4px 4px 8px;
3594
+ cursor: pointer;
3595
+ &:hover {
3596
+ background-color: var(--os-background-gray-color-hover) !important;
3597
+ }
3598
+ }
3599
+ .o-data-analysis-button {
3600
+ cursor: pointer;
3601
+ &:hover {
3602
+ background-color: var(--os-background-gray-color-hover);
3603
+ }
3604
+ &.active {
3605
+ background-color: var(--os-button-active-bg);
3606
+ .o-icon {
3607
+ color: var(--os-button-active-text-color);
3608
+ }
3609
+ }
3610
+ .o-icon {
3611
+ width: 30px;
3612
+ height: 30px;
3613
+ padding: 4px;
3614
+ }
3475
3615
  }
3476
3616
  }
3477
3617
  }
@@ -3522,6 +3662,10 @@
3522
3662
  z-index: 1;
3523
3663
  width: calc(100% - 1px);
3524
3664
  }
3665
+
3666
+ .lock-icon {
3667
+ --os-icon-edge-length: 14px;
3668
+ }
3525
3669
  }
3526
3670
 
3527
3671
  .o-spreadshet-mobile .o-sheet {
@@ -3645,7 +3789,7 @@
3645
3789
  align-items: center;
3646
3790
  margin: 2px 1px;
3647
3791
  padding: 0px 1px;
3648
- border-radius: 2px;
3792
+ border-radius: 4px;
3649
3793
  min-width: 22px;
3650
3794
  }
3651
3795
  .o-disabled {