@formicoidea/labre-core 0.42.0 → 0.43.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 (124) hide show
  1. package/dist/_pkgs/affine-block-data-view/configs/tooltips.js +1 -1
  2. package/dist/_pkgs/affine-block-database/configs/tooltips.js +1 -1
  3. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +4 -2
  4. package/dist/_pkgs/affine-block-embed/common/iframe-sandbox.d.ts +39 -0
  5. package/dist/_pkgs/affine-block-embed/common/iframe-sandbox.js +39 -0
  6. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-block.js +2 -0
  7. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.d.ts +14 -1
  8. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.js +21 -2
  9. package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.d.ts +0 -2
  10. package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.js +2 -5
  11. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.d.ts +1 -1
  12. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.js +14 -6
  13. package/dist/_pkgs/affine-block-embed/embed-iframe-block/types.d.ts +16 -0
  14. package/dist/_pkgs/affine-block-embed/embed-iframe-block/types.js +17 -1
  15. package/dist/_pkgs/affine-block-embed/embed-loom-block/embed-loom-block.js +2 -0
  16. package/dist/_pkgs/affine-block-embed/embed-youtube-block/embed-youtube-block.js +2 -0
  17. package/dist/_pkgs/affine-block-embed/index.d.ts +1 -0
  18. package/dist/_pkgs/affine-block-embed/index.js +1 -0
  19. package/dist/_pkgs/affine-block-embed/translations.d.ts +8 -0
  20. package/dist/_pkgs/affine-block-embed/translations.js +28 -0
  21. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +4 -2
  22. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +2 -2
  23. package/dist/_pkgs/affine-block-frame/frame-manager.js +5 -2
  24. package/dist/_pkgs/affine-block-list/utils/get-list-icon.js +3 -1
  25. package/dist/_pkgs/affine-block-note/configs/tooltips.js +1 -1
  26. package/dist/_pkgs/affine-block-root/adapters/html.js +2 -2
  27. package/dist/_pkgs/affine-block-root/commands/copy-link-commands.d.ts +2 -0
  28. package/dist/_pkgs/affine-block-root/commands/copy-link-commands.js +155 -0
  29. package/dist/_pkgs/affine-block-root/index.d.ts +1 -0
  30. package/dist/_pkgs/affine-block-root/index.js +1 -0
  31. package/dist/_pkgs/affine-block-root/view.js +2 -0
  32. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +13 -1
  33. package/dist/_pkgs/affine-block-surface/extensions/legend.d.ts +8 -0
  34. package/dist/_pkgs/affine-block-surface/extensions/legend.js +59 -3
  35. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +4 -0
  36. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.d.ts +3 -0
  37. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.js +23 -0
  38. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +1 -1
  39. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +12 -4
  40. package/dist/_pkgs/affine-block-surface/framework-background/background-view.js +1 -1
  41. package/dist/_pkgs/affine-block-surface/framework-background/fit.d.ts +36 -0
  42. package/dist/_pkgs/affine-block-surface/framework-background/fit.js +30 -0
  43. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +1 -0
  44. package/dist/_pkgs/affine-block-surface/framework-background/index.js +1 -0
  45. package/dist/_pkgs/affine-block-surface/renderer/element-highlight-overlay.js +2 -7
  46. package/dist/_pkgs/affine-block-surface-ref/configs/tooltips.js +2 -2
  47. package/dist/_pkgs/affine-components/color-picker/palette-carousel.js +5 -0
  48. package/dist/_pkgs/affine-components/color-picker/styles.js +1 -1
  49. package/dist/_pkgs/affine-components/context-menu/button.js +3 -1
  50. package/dist/_pkgs/affine-components/icons/ai.js +3 -3
  51. package/dist/_pkgs/affine-components/icons/list.js +7 -1
  52. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.js +6 -1
  53. package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -1
  54. package/dist/_pkgs/affine-components/toolbar/index.js +1 -1
  55. package/dist/_pkgs/affine-components/toolbar/menu-button.d.ts +7 -0
  56. package/dist/_pkgs/affine-components/toolbar/menu-button.js +30 -0
  57. package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +16 -1
  58. package/dist/_pkgs/affine-components/toolbar/picker-menu.js +2 -2
  59. package/dist/_pkgs/affine-components/toolbar/toolbar.d.ts +1 -0
  60. package/dist/_pkgs/affine-components/toolbar/toolbar.js +67 -0
  61. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card-title-editor.js +1 -1
  62. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card.js +1 -1
  63. package/dist/_pkgs/affine-gfx-brush/toolbar/components/eraser/icons.js +1 -1
  64. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +11 -2
  65. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +11 -2
  66. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.js +3 -2
  67. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +23 -7
  68. package/dist/_pkgs/affine-gfx-connector/translations.d.ts +3 -0
  69. package/dist/_pkgs/affine-gfx-connector/translations.js +23 -0
  70. package/dist/_pkgs/affine-gfx-mindmap/indicator-overlay/index.js +6 -2
  71. package/dist/_pkgs/affine-gfx-mindmap/toolbar/config.js +4 -2
  72. package/dist/_pkgs/affine-gfx-mindmap/translations.d.ts +6 -0
  73. package/dist/_pkgs/affine-gfx-mindmap/translations.js +10 -0
  74. package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +4 -2
  75. package/dist/_pkgs/affine-gfx-shape/translations.d.ts +7 -0
  76. package/dist/_pkgs/affine-gfx-shape/translations.js +11 -0
  77. package/dist/_pkgs/affine-gfx-template/builtin/other.js +13 -7
  78. package/dist/_pkgs/affine-gfx-template/toolbar/template-loading.js +1 -1
  79. package/dist/_pkgs/affine-gfx-template/translations.d.ts +5 -0
  80. package/dist/_pkgs/affine-gfx-template/translations.js +38 -0
  81. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +3 -2
  82. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +3 -1
  83. package/dist/_pkgs/affine-gfx-text/translations.d.ts +8 -0
  84. package/dist/_pkgs/affine-gfx-text/translations.js +12 -0
  85. package/dist/_pkgs/affine-inline-latex/latex-node/latex-editor-menu.js +2 -1
  86. package/dist/_pkgs/affine-model/consts/text.d.ts +15 -2
  87. package/dist/_pkgs/affine-model/consts/text.js +25 -1
  88. package/dist/_pkgs/affine-shared/services/font-loader/config.d.ts +13 -2
  89. package/dist/_pkgs/affine-shared/services/font-loader/config.js +43 -54
  90. package/dist/_pkgs/affine-shared/services/theme-service.d.ts +19 -0
  91. package/dist/_pkgs/affine-shared/services/theme-service.js +24 -0
  92. package/dist/_pkgs/affine-shared/services/translation-service/chrome.d.ts +20 -0
  93. package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +81 -0
  94. package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +2 -2
  95. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +5 -1
  96. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/types.d.ts +15 -0
  97. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.d.ts +1 -1
  98. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.js +7 -2
  99. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-family-panel.d.ts +18 -0
  100. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-family-panel.js +52 -6
  101. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.d.ts +6 -0
  102. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.js +10 -0
  103. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +2 -1
  104. package/dist/_pkgs/affine-widget-slash-menu/translations.d.ts +16 -0
  105. package/dist/_pkgs/affine-widget-slash-menu/translations.js +23 -1
  106. package/dist/_pkgs/affine-widget-toolbar/utils.js +57 -14
  107. package/dist/_pkgs/data-view/core/detail/field.js +2 -1
  108. package/dist/_pkgs/data-view/core/filter/literal/define.js +3 -1
  109. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +1 -1
  110. package/dist/_pkgs/data-view/property-presets/checkbox/cell-renderer.js +8 -2
  111. package/dist/_pkgs/data-view/view-presets/kanban/pc/cell.js +1 -1
  112. package/dist/_pkgs/data-view/view-presets/kanban/pc/controller/drag.js +2 -1
  113. package/dist/_pkgs/data-view/view-presets/table/pc/controller/drag.js +2 -1
  114. package/dist/_pkgs/data-view/view-presets/table/pc/controller/selection.js +1 -1
  115. package/dist/_pkgs/data-view/view-presets/table/pc/header/vertical-indicator.js +2 -1
  116. package/dist/_pkgs/data-view/view-presets/table/pc/row/row-select-checkbox.js +3 -1
  117. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/drag.js +2 -1
  118. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/selection.js +1 -1
  119. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/header/vertical-indicator.js +2 -1
  120. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/row-header.js +3 -1
  121. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +10 -5
  122. package/dist/commands.js +2 -1
  123. package/dist/translations.js +5 -0
  124. package/package.json +5 -1
@@ -21,6 +21,13 @@ export declare const SHAPE_TEXT_FIT_OVERFLOW: ChromeWording;
21
21
  export declare const SHAPE_TEXT_FIT_ARIA: ChromeWording;
22
22
  export declare const SHAPE_TEXT_FIT_TOOLTIP: ChromeWording;
23
23
  export declare const SHAPE_SWITCH_TYPE_LABEL: ChromeWording;
24
+ /**
25
+ * The accessible name of the shape-type menu SHELL (#390) — its own wording,
26
+ * not `` `${SHAPE_SWITCH_TYPE_LABEL}-menu` ``, which is what produced
27
+ * "changer le type de forme-menu" on a French host. The fallback is the exact
28
+ * identifier that composition produced in English.
29
+ */
30
+ export declare const SHAPE_SWITCH_TYPE_MENU_ARIA: ChromeWording;
24
31
  export declare const SHAPE_ADD_TEXT_TOOLTIP: ChromeWording;
25
32
  export declare const SHAPE_EDIT_VERTICES_TOOLTIP: ChromeWording;
26
33
  export declare const SHAPE_NAME_SQUARE: ChromeWording;
@@ -41,6 +41,16 @@ export const SHAPE_SWITCH_TYPE_LABEL = [
41
41
  'com.labre.shape.toolbar.switch-type',
42
42
  'Switch shape type',
43
43
  ];
44
+ /**
45
+ * The accessible name of the shape-type menu SHELL (#390) — its own wording,
46
+ * not `` `${SHAPE_SWITCH_TYPE_LABEL}-menu` ``, which is what produced
47
+ * "changer le type de forme-menu" on a French host. The fallback is the exact
48
+ * identifier that composition produced in English.
49
+ */
50
+ export const SHAPE_SWITCH_TYPE_MENU_ARIA = [
51
+ 'com.labre.shape.toolbar.switch-type-menu',
52
+ 'switch shape type-menu',
53
+ ];
44
54
  export const SHAPE_ADD_TEXT_TOOLTIP = ADD_TEXT_TOOLTIP;
45
55
  export const SHAPE_EDIT_VERTICES_TOOLTIP = [
46
56
  'com.labre.shape.toolbar.edit-vertices',
@@ -83,6 +93,7 @@ export const SHAPE_WORDINGS = [
83
93
  SHAPE_TEXT_FIT_ARIA,
84
94
  SHAPE_TEXT_FIT_TOOLTIP,
85
95
  SHAPE_SWITCH_TYPE_LABEL,
96
+ SHAPE_SWITCH_TYPE_MENU_ARIA,
86
97
  SHAPE_EDIT_VERTICES_TOOLTIP,
87
98
  SHAPE_NAME_SQUARE,
88
99
  SHAPE_NAME_ELLIPSE,
@@ -2,7 +2,7 @@ import { ConnectorMode, FontFamily, FontWeight, PointStyle, ShapeStyle, StrokeSt
2
2
  import { NOTATION_NEUTRALS } from '../../affine-shared/consts/index.js';
3
3
  import { fillPlaceholders, translateKey, } from '../../affine-shared/services/index.js';
4
4
  import { makeTemplateSnapshot, surfaceText, } from '../make-snapshot.js';
5
- import { BMC_SEED_CHANNELS, BMC_SEED_COST_STRUCTURE, BMC_SEED_CUSTOMER_RELATIONSHIPS, BMC_SEED_CUSTOMER_SEGMENTS, BMC_SEED_DATE, BMC_SEED_DESIGNED_BY, BMC_SEED_DESIGNED_FOR, BMC_SEED_KEY_ACTIVITIES, BMC_SEED_KEY_PARTNERSHIPS, BMC_SEED_KEY_RESOURCES, BMC_SEED_REVENUE_STREAMS, BMC_SEED_TITLE, BMC_SEED_VALUE_PROPOSITIONS, BMC_SEED_VERSION, FISHBONE_SEED_CATEGORY, FISHBONE_SEED_EFFECT, FISHBONE_SEED_ITEM_1, FISHBONE_SEED_ITEM_2, GANTT_SEED_BUILD, GANTT_SEED_DESIGN, GANTT_SEED_DISCOVERY, GANTT_SEED_LAUNCH, GANTT_SEED_WEEK, KANBAN_SEED_CARD, KANBAN_SEED_DOING, KANBAN_SEED_DONE, KANBAN_SEED_TODO, SWOT_SEED_OPPORTUNITIES, SWOT_SEED_STRENGTHS, SWOT_SEED_THREATS, SWOT_SEED_WEAKNESSES, TEMPLATE_PANEL_CATEGORY_OTHER, } from '../translations.js';
5
+ import { BMC_SEED_CHANNELS, BMC_SEED_COST_STRUCTURE, BMC_SEED_CUSTOMER_RELATIONSHIPS, BMC_SEED_CUSTOMER_SEGMENTS, BMC_SEED_DATE, BMC_SEED_DESIGNED_BY, BMC_SEED_DESIGNED_FOR, BMC_SEED_KEY_ACTIVITIES, BMC_SEED_KEY_PARTNERSHIPS, BMC_SEED_KEY_RESOURCES, BMC_SEED_REVENUE_STREAMS, BMC_SEED_TITLE, BMC_SEED_VALUE_PROPOSITIONS, BMC_SEED_VERSION, FISHBONE_SEED_CATEGORY, FISHBONE_SEED_EFFECT, FISHBONE_SEED_ITEM_1, FISHBONE_SEED_ITEM_2, GANTT_SEED_BUILD, GANTT_SEED_DESIGN, GANTT_SEED_DISCOVERY, GANTT_SEED_LAUNCH, GANTT_SEED_WEEK, KANBAN_SEED_CARD, KANBAN_SEED_DOING, KANBAN_SEED_DONE, KANBAN_SEED_TODO, SWOT_SEED_OPPORTUNITIES, SWOT_SEED_STRENGTHS, SWOT_SEED_THREATS, SWOT_SEED_WEAKNESSES, TEMPLATE_NAME_BUSINESS_MODEL_CANVAS, TEMPLATE_NAME_FISHBONE, TEMPLATE_NAME_GANTT_CHART, TEMPLATE_NAME_KANBAN_BOARD, TEMPLATE_NAME_SWOT, TEMPLATE_PANEL_CATEGORY_OTHER, } from '../translations.js';
6
6
  /**
7
7
  * The generic ("Other") diagrams: built ONLY from general BlockSuite shapes
8
8
  * (`shape` rect/polygon, `text`, `connector`) per the composition principle —
@@ -261,9 +261,15 @@ const previews = {
261
261
  * at placement (ADR 0023); `content` stays the English build, and `localize`
262
262
  * rebuilds the same snapshot with translated seeds.
263
263
  */
264
- function t(name, preview, build) {
264
+ function t(nameWording, preview, build) {
265
+ const [nameKey, name] = nameWording;
265
266
  return {
266
267
  name,
268
+ // `resolveTemplateName` reads this FIRST: nothing here derives from a
269
+ // command, so the tile's own key is the only way a host translates it
270
+ // (#390). `name` stays the stable English identity (drag payload, cache
271
+ // key) and doubles as the fallback.
272
+ nameKey,
267
273
  type: 'template',
268
274
  preview,
269
275
  content: makeTemplateSnapshot(build(), name),
@@ -274,10 +280,10 @@ export const otherTemplateCategory = {
274
280
  name: 'Other',
275
281
  nameKey: TEMPLATE_PANEL_CATEGORY_OTHER[0],
276
282
  templates: [
277
- t('SWOT', previews.swot, swot),
278
- t('Kanban board', previews.kanban, kanban),
279
- t('Business model canvas', previews.bmc, bmc),
280
- t('Fishbone (Ishikawa)', previews.fishbone, fishbone),
281
- t('Gantt chart', previews.gantt, gantt),
283
+ t(TEMPLATE_NAME_SWOT, previews.swot, swot),
284
+ t(TEMPLATE_NAME_KANBAN_BOARD, previews.kanban, kanban),
285
+ t(TEMPLATE_NAME_BUSINESS_MODEL_CANVAS, previews.bmc, bmc),
286
+ t(TEMPLATE_NAME_FISHBONE, previews.fishbone, fishbone),
287
+ t(TEMPLATE_NAME_GANTT_CHART, previews.gantt, gantt),
282
288
  ],
283
289
  };
@@ -22,7 +22,7 @@ export class AffineTemplateLoading extends LitElement {
22
22
  height: 20px;
23
23
  position: relative;
24
24
  background: conic-gradient(
25
- rgba(30, 150, 235, 1) 90deg,
25
+ var(--affine-primary-color) 90deg,
26
26
  rgba(0, 0, 0, 0.1) 90deg 360deg
27
27
  );
28
28
  border-radius: 50%;
@@ -20,6 +20,11 @@ export declare const TEMPLATE_PANEL_SEARCH_PLACEHOLDER: ChromeWording;
20
20
  export declare const TEMPLATE_PANEL_CATEGORY_OTHER: ChromeWording;
21
21
  /** The "Template" senior tool's own button name (`SeniorTool.labelKey`). */
22
22
  export declare const TEMPLATE_SENIOR_TOOL_NAME: ChromeWording;
23
+ export declare const TEMPLATE_NAME_SWOT: ChromeWording;
24
+ export declare const TEMPLATE_NAME_KANBAN_BOARD: ChromeWording;
25
+ export declare const TEMPLATE_NAME_BUSINESS_MODEL_CANVAS: ChromeWording;
26
+ export declare const TEMPLATE_NAME_FISHBONE: ChromeWording;
27
+ export declare const TEMPLATE_NAME_GANTT_CHART: ChromeWording;
23
28
  export declare const TEMPLATE_PACKAGE_WORDINGS: readonly ChromeWording[];
24
29
  /**
25
30
  * The generic ("Other") diagrams' own seeds: the captions painted onto the
@@ -29,10 +29,48 @@ export const TEMPLATE_SENIOR_TOOL_NAME = [
29
29
  'com.labre.template.senior-tool.name',
30
30
  'Template',
31
31
  ];
32
+ /* ── The five "Other" tiles' own names (#390) ─────────────────────────────
33
+ *
34
+ * A hand-composed template derives no tile name from a command, so it needs a
35
+ * `nameKey` of its own — the same seam every framework category already uses
36
+ * for its hand-written templates (`gfx/bpmn`, `gfx/edgy`, `gfx/mindmap`…).
37
+ * Only the NAME is chrome here; the captions painted into each scene are
38
+ * seeds, declared further down and resolved through `Template.localize`.
39
+ *
40
+ * `TEMPLATE_NAME_BUSINESS_MODEL_CANVAS` and `BMC_SEED_TITLE` share the same
41
+ * English words on purpose and do NOT collide: the seed is written once into
42
+ * the document, the tile is redrawn every time the panel opens, and the
43
+ * "un mot chrome, une clé" test groups `source: 'chrome'` only.
44
+ */
45
+ export const TEMPLATE_NAME_SWOT = [
46
+ 'com.labre.template.name.swot',
47
+ 'SWOT',
48
+ ];
49
+ export const TEMPLATE_NAME_KANBAN_BOARD = [
50
+ 'com.labre.template.name.kanban-board',
51
+ 'Kanban board',
52
+ ];
53
+ export const TEMPLATE_NAME_BUSINESS_MODEL_CANVAS = [
54
+ 'com.labre.template.name.business-model-canvas',
55
+ 'Business model canvas',
56
+ ];
57
+ export const TEMPLATE_NAME_FISHBONE = [
58
+ 'com.labre.template.name.fishbone',
59
+ 'Fishbone (Ishikawa)',
60
+ ];
61
+ export const TEMPLATE_NAME_GANTT_CHART = [
62
+ 'com.labre.template.name.gantt-chart',
63
+ 'Gantt chart',
64
+ ];
32
65
  export const TEMPLATE_PACKAGE_WORDINGS = [
33
66
  TEMPLATE_PANEL_ADD,
34
67
  TEMPLATE_PANEL_SEARCH_PLACEHOLDER,
35
68
  TEMPLATE_SENIOR_TOOL_NAME,
69
+ TEMPLATE_NAME_SWOT,
70
+ TEMPLATE_NAME_KANBAN_BOARD,
71
+ TEMPLATE_NAME_BUSINESS_MODEL_CANVAS,
72
+ TEMPLATE_NAME_FISHBONE,
73
+ TEMPLATE_NAME_GANTT_CHART,
36
74
  ];
37
75
  /**
38
76
  * The generic ("Other") diagrams' own seeds: the captions painted onto the
@@ -176,9 +176,10 @@ let EdgelessTextEditor = (() => {
176
176
  transform-origin: left top;
177
177
  font-kerning: none;
178
178
  border: ${EdgelessTextEditor.BORDER_WIDTH}px solid
179
- var(--affine-primary-color, #1e96eb);
179
+ var(--affine-primary-color);
180
180
  border-radius: 4px;
181
- box-shadow: 0px 0px 0px 2px rgba(30, 150, 235, 0.3);
181
+ box-shadow: 0px 0px 0px 2px
182
+ color-mix(in srgb, var(--affine-primary-color) 30%, transparent);
182
183
  padding: ${EdgelessTextEditor.PADDING_VERTICAL}px
183
184
  ${EdgelessTextEditor.PADDING_HORIZONTAL}px;
184
185
  overflow: visible;
@@ -10,7 +10,7 @@ import { signal } from '@preact/signals-core';
10
10
  import { html } from 'lit';
11
11
  import { styleMap } from 'lit/directives/style-map.js';
12
12
  import { isFontStyleSupported, isFontWeightSupported, } from '../element-renderer/utils.js';
13
- import { TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, TEXT_ALIGN_RIGHT, TEXT_TOOLBAR_ALIGNMENT, TEXT_TOOLBAR_FONT, TEXT_TOOLBAR_FONT_STYLE, TEXT_TOOLBAR_FONT_STYLE_ITALIC, TEXT_TOOLBAR_FONT_WEIGHT_BOLD, TEXT_TOOLBAR_FONT_WEIGHT_LIGHT, TEXT_TOOLBAR_FONT_WEIGHT_REGULAR, TEXT_TOOLBAR_FONT_WEIGHT_SEMIBOLD, TEXT_TOOLBAR_FONT_SIZE, TEXT_TOOLBAR_TEXT_COLOR, } from '../translations.js';
13
+ import { TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, TEXT_ALIGN_RIGHT, TEXT_TOOLBAR_ALIGNMENT, TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA, TEXT_TOOLBAR_FONT, TEXT_TOOLBAR_FONT_STYLE, TEXT_TOOLBAR_FONT_STYLE_ITALIC, TEXT_TOOLBAR_FONT_WEIGHT_BOLD, TEXT_TOOLBAR_FONT_WEIGHT_LIGHT, TEXT_TOOLBAR_FONT_WEIGHT_REGULAR, TEXT_TOOLBAR_FONT_WEIGHT_SEMIBOLD, TEXT_TOOLBAR_FONT_SIZE, TEXT_TOOLBAR_TEXT_COLOR, } from '../translations.js';
14
14
  const FONT_WEIGHT_LIST = [
15
15
  {
16
16
  key: 'Light',
@@ -119,6 +119,7 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
119
119
  <edgeless-font-family-panel
120
120
  .value=${fontFamily}
121
121
  .onSelect=${onPick}
122
+ .std=${ctx.std}
122
123
  ></edgeless-font-family-panel>
123
124
  </editor-menu-button>
124
125
  `;
@@ -295,6 +296,7 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
295
296
  return renderMenu({
296
297
  label: 'Alignment',
297
298
  labelWording: TEXT_TOOLBAR_ALIGNMENT,
299
+ menuAriaWording: TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA,
298
300
  items: TEXT_ALIGN_LIST,
299
301
  currentValue: textAlign,
300
302
  onPick,
@@ -17,6 +17,14 @@ export declare const TEXT_TOOLBAR_FONT: ChromeWording;
17
17
  export declare const TEXT_TOOLBAR_TEXT_COLOR: ChromeWording;
18
18
  export declare const TEXT_TOOLBAR_FONT_STYLE: ChromeWording;
19
19
  export declare const TEXT_TOOLBAR_ALIGNMENT: ChromeWording;
20
+ /**
21
+ * The accessible name of the alignment menu SHELL (#390) — its own wording,
22
+ * not `` `${TEXT_TOOLBAR_ALIGNMENT}-menu` ``, which read "alignement-menu" in
23
+ * French. Distinct from `ROOT_ALIGNMENT_MENU_ARIA`: that one names the
24
+ * edgeless menu that aligns ELEMENTS on the board, this one the menu that
25
+ * aligns TEXT inside an element. Two menus, two names.
26
+ */
27
+ export declare const TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA: ChromeWording;
20
28
  /**
21
29
  * The three alignment values — a different concept from a mindmap's own
22
30
  * "Left" / "Right" layout direction (`gfx/mindmap`'s
@@ -29,6 +29,17 @@ export const TEXT_TOOLBAR_ALIGNMENT = [
29
29
  'com.labre.text-toolbar.alignment',
30
30
  'Alignment',
31
31
  ];
32
+ /**
33
+ * The accessible name of the alignment menu SHELL (#390) — its own wording,
34
+ * not `` `${TEXT_TOOLBAR_ALIGNMENT}-menu` ``, which read "alignement-menu" in
35
+ * French. Distinct from `ROOT_ALIGNMENT_MENU_ARIA`: that one names the
36
+ * edgeless menu that aligns ELEMENTS on the board, this one the menu that
37
+ * aligns TEXT inside an element. Two menus, two names.
38
+ */
39
+ export const TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA = [
40
+ 'com.labre.text-toolbar.alignment-menu',
41
+ 'text alignment-menu',
42
+ ];
32
43
  /**
33
44
  * The three alignment values — a different concept from a mindmap's own
34
45
  * "Left" / "Right" layout direction (`gfx/mindmap`'s
@@ -58,6 +69,7 @@ export const TEXT_WORDINGS = [
58
69
  TEXT_TOOLBAR_TEXT_COLOR,
59
70
  TEXT_TOOLBAR_FONT_STYLE,
60
71
  TEXT_TOOLBAR_ALIGNMENT,
72
+ TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA,
61
73
  TEXT_ALIGN_LEFT,
62
74
  TEXT_ALIGN_CENTER,
63
75
  TEXT_ALIGN_RIGHT,
@@ -101,7 +101,8 @@ let LatexEditorMenu = (() => {
101
101
  background: ${unsafeCSSVar('white10')};
102
102
 
103
103
  /* light/activeShadow */
104
- box-shadow: 0px 0px 0px 2px rgba(30, 150, 235, 0.3);
104
+ box-shadow: 0px 0px 0px 2px
105
+ color-mix(in srgb, var(--affine-primary-color) 30%, transparent);
105
106
 
106
107
  font-family: ${unsafeCSSVar('fontCodeFamily')};
107
108
  border: 1px solid transparent;
@@ -31,17 +31,30 @@ export declare enum FontStyle {
31
31
  Italic = "italic",
32
32
  Normal = "normal"
33
33
  }
34
+ /**
35
+ * A stored value: every member stays forever, whether or not a host still
36
+ * ships its files. `Satoshi` is in no default font list since #396 (its
37
+ * licence forbids offering it as a selectable font in a SaaS or design tool),
38
+ * but an element that carries it keeps loading and painting with the
39
+ * `sans-serif` fallback. `PlusJakartaSans` (SIL OFL 1.1) is its replacement.
40
+ */
34
41
  export declare enum FontFamily {
35
42
  BebasNeue = "blocksuite:surface:BebasNeue",
36
43
  Inter = "blocksuite:surface:Inter",
37
44
  Kalam = "blocksuite:surface:Kalam",
38
45
  Lora = "blocksuite:surface:Lora",
39
46
  OrelegaOne = "blocksuite:surface:OrelegaOne",
47
+ PlusJakartaSans = "blocksuite:surface:PlusJakartaSans",
40
48
  Poppins = "blocksuite:surface:Poppins",
41
49
  Satoshi = "blocksuite:surface:Satoshi"
42
50
  }
43
- export declare const FontFamilyMap: Record<FontFamily, "BebasNeue" | "Inter" | "Kalam" | "Lora" | "OrelegaOne" | "Poppins" | "Satoshi">;
44
- export declare const FontFamilyList: { [K in FontFamily]: [K, (typeof FontFamilyMap)[K]]; }[FontFamily][];
51
+ export declare const FontFamilyMap: Record<FontFamily, "BebasNeue" | "Inter" | "Kalam" | "Lora" | "OrelegaOne" | "PlusJakartaSans" | "Poppins" | "Satoshi">;
52
+ /**
53
+ * Every family with the name the picker shows, in declaration order. What a
54
+ * picker OFFERS is this list narrowed to the families the host configured
55
+ * (`FontConfig`, #396); this is the order and the names it keeps.
56
+ */
57
+ export declare const FontFamilyList: [FontFamily, string][];
45
58
  export declare enum TextResizing {
46
59
  AUTO_WIDTH_AND_HEIGHT = 0,
47
60
  AUTO_HEIGHT = 1
@@ -27,6 +27,13 @@ export var FontStyle;
27
27
  FontStyle["Italic"] = "italic";
28
28
  FontStyle["Normal"] = "normal";
29
29
  })(FontStyle || (FontStyle = {}));
30
+ /**
31
+ * A stored value: every member stays forever, whether or not a host still
32
+ * ships its files. `Satoshi` is in no default font list since #396 (its
33
+ * licence forbids offering it as a selectable font in a SaaS or design tool),
34
+ * but an element that carries it keeps loading and painting with the
35
+ * `sans-serif` fallback. `PlusJakartaSans` (SIL OFL 1.1) is its replacement.
36
+ */
30
37
  export var FontFamily;
31
38
  (function (FontFamily) {
32
39
  FontFamily["BebasNeue"] = "blocksuite:surface:BebasNeue";
@@ -34,11 +41,28 @@ export var FontFamily;
34
41
  FontFamily["Kalam"] = "blocksuite:surface:Kalam";
35
42
  FontFamily["Lora"] = "blocksuite:surface:Lora";
36
43
  FontFamily["OrelegaOne"] = "blocksuite:surface:OrelegaOne";
44
+ FontFamily["PlusJakartaSans"] = "blocksuite:surface:PlusJakartaSans";
37
45
  FontFamily["Poppins"] = "blocksuite:surface:Poppins";
38
46
  FontFamily["Satoshi"] = "blocksuite:surface:Satoshi";
39
47
  })(FontFamily || (FontFamily = {}));
40
48
  export const FontFamilyMap = createEnumMap(FontFamily);
41
- export const FontFamilyList = Object.entries(FontFamilyMap);
49
+ /**
50
+ * The name a family goes by where its enum key cannot spell it: a proper name
51
+ * with spaces. Proper names carry no i18n key, like the other family names
52
+ * (ADR 0023).
53
+ */
54
+ const SPACED_FONT_FAMILY_NAMES = {
55
+ [FontFamily.PlusJakartaSans]: 'Plus Jakarta Sans',
56
+ };
57
+ /**
58
+ * Every family with the name the picker shows, in declaration order. What a
59
+ * picker OFFERS is this list narrowed to the families the host configured
60
+ * (`FontConfig`, #396); this is the order and the names it keeps.
61
+ */
62
+ export const FontFamilyList = Object.entries(FontFamilyMap).map(([family, key]) => [
63
+ family,
64
+ SPACED_FONT_FAMILY_NAMES[family] ?? key,
65
+ ]);
42
66
  export var TextResizing;
43
67
  (function (TextResizing) {
44
68
  TextResizing[TextResizing["AUTO_WIDTH_AND_HEIGHT"] = 0] = "AUTO_WIDTH_AND_HEIGHT";
@@ -20,8 +20,19 @@ export type FontConfig = z.infer<typeof fontConfigSchema>;
20
20
  * The AFFiNE-hosted mirror. It carries strictly fewer files than the community
21
21
  * list: `cdn.affine.pro` answers 404 for every `Inter-Bold`, `Poppins-Bold`
22
22
  * and `BebasNeue-Bold` spelling, so those three families offer no 700 weight
23
- * here. The Kalam / Satoshi / Lora `SemiBold` entries below already point at
24
- * the 700 file — those families ship a single heavy face, not two.
23
+ * here. The Kalam / Lora `SemiBold` entries below already point at the 700
24
+ * file — those families ship a single heavy face, not two.
25
+ *
26
+ * Satoshi is in neither list since #396: its licence (ITF Free Font License
27
+ * 2.0, section 02) forbids offering it as a selectable font in a SaaS or design
28
+ * tool, whoever hosts the files. `FontFamily.Satoshi` stays a valid stored
29
+ * value; an element that carries it paints with the fallback, and the family
30
+ * picker names it as unavailable instead of offering it.
25
31
  */
26
32
  export declare const AffineCanvasTextFonts: FontConfig[];
33
+ /**
34
+ * The families on a public mirror, one `FontConfig` per face. A host that
35
+ * promises no third-party request passes the same list with its own `url`s;
36
+ * a host that drops a family drops it from the family picker too (#396).
37
+ */
27
38
  export declare const CommunityCanvasTextFonts: FontConfig[];
@@ -10,8 +10,14 @@ export const fontConfigSchema = z.object({
10
10
  * The AFFiNE-hosted mirror. It carries strictly fewer files than the community
11
11
  * list: `cdn.affine.pro` answers 404 for every `Inter-Bold`, `Poppins-Bold`
12
12
  * and `BebasNeue-Bold` spelling, so those three families offer no 700 weight
13
- * here. The Kalam / Satoshi / Lora `SemiBold` entries below already point at
14
- * the 700 file — those families ship a single heavy face, not two.
13
+ * here. The Kalam / Lora `SemiBold` entries below already point at the 700
14
+ * file — those families ship a single heavy face, not two.
15
+ *
16
+ * Satoshi is in neither list since #396: its licence (ITF Free Font License
17
+ * 2.0, section 02) forbids offering it as a selectable font in a SaaS or design
18
+ * tool, whoever hosts the files. `FontFamily.Satoshi` stays a valid stored
19
+ * value; an element that carries it paints with the fallback, and the family
20
+ * picker names it as unavailable instead of offering it.
15
21
  */
16
22
  export const AffineCanvasTextFonts = [
17
23
  // Inter, https://fonts.cdnfonts.com/css/inter?styles=29139,29134,29135,29136,29140,29141
@@ -70,43 +76,6 @@ export const AffineCanvasTextFonts = [
70
76
  weight: FontWeight.SemiBold,
71
77
  style: FontStyle.Normal,
72
78
  },
73
- // Satoshi, https://fonts.cdnfonts.com/css/satoshi?styles=135009,135004,135005,135006,135002,135003
74
- {
75
- font: FontFamily.Satoshi,
76
- url: 'https://cdn.affine.pro/fonts/Satoshi-Light.woff2',
77
- weight: FontWeight.Light,
78
- style: FontStyle.Normal,
79
- },
80
- {
81
- font: FontFamily.Satoshi,
82
- url: 'https://cdn.affine.pro/fonts/Satoshi-Regular.woff2',
83
- weight: FontWeight.Regular,
84
- style: FontStyle.Normal,
85
- },
86
- {
87
- font: FontFamily.Satoshi,
88
- url: 'https://cdn.affine.pro/fonts/Satoshi-Bold.woff2',
89
- weight: FontWeight.SemiBold,
90
- style: FontStyle.Normal,
91
- },
92
- {
93
- font: FontFamily.Satoshi,
94
- url: 'https://cdn.affine.pro/fonts/Satoshi-LightItalic.woff2',
95
- weight: FontWeight.Light,
96
- style: FontStyle.Italic,
97
- },
98
- {
99
- font: FontFamily.Satoshi,
100
- url: 'https://cdn.affine.pro/fonts/Satoshi-Italic.woff2',
101
- weight: FontWeight.Regular,
102
- style: FontStyle.Italic,
103
- },
104
- {
105
- font: FontFamily.Satoshi,
106
- url: 'https://cdn.affine.pro/fonts/Satoshi-BoldItalic.woff2',
107
- weight: FontWeight.SemiBold,
108
- style: FontStyle.Italic,
109
- },
110
79
  // Poppins, https://fonts.cdnfonts.com/css/poppins?styles=20394,20389,20390,20391,20395,20396
111
80
  {
112
81
  font: FontFamily.Poppins,
@@ -196,6 +165,11 @@ export const AffineCanvasTextFonts = [
196
165
  style: FontStyle.Normal,
197
166
  },
198
167
  ];
168
+ /**
169
+ * The families on a public mirror, one `FontConfig` per face. A host that
170
+ * promises no third-party request passes the same list with its own `url`s;
171
+ * a host that drops a family drops it from the family picker too (#396).
172
+ */
199
173
  export const CommunityCanvasTextFonts = [
200
174
  // Inter, https://fonts.cdnfonts.com/css/inter?styles=29139,29134,29135,29136,29140,29141
201
175
  {
@@ -267,43 +241,58 @@ export const CommunityCanvasTextFonts = [
267
241
  weight: FontWeight.SemiBold,
268
242
  style: FontStyle.Normal,
269
243
  },
270
- // Satoshi, https://fonts.cdnfonts.com/css/satoshi?styles=135009,135004,135005,135006,135002,135003
244
+ // PlusJakartaSans (SIL OFL 1.1), https://fonts.cdnfonts.com/css/plus-jakarta-sans
245
+ // The mirror serves the two variable files only (weights 200 to 800), so
246
+ // every face below points at one of them: a face declared with a single
247
+ // weight gets that weight from the file's `wght` axis.
271
248
  {
272
- font: FontFamily.Satoshi,
273
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-Light.woff',
249
+ font: FontFamily.PlusJakartaSans,
250
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans%5Bwght%5D.woff',
274
251
  weight: FontWeight.Light,
275
252
  style: FontStyle.Normal,
276
253
  },
277
254
  {
278
- font: FontFamily.Satoshi,
279
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-Regular.woff',
255
+ font: FontFamily.PlusJakartaSans,
256
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans%5Bwght%5D.woff',
280
257
  weight: FontWeight.Regular,
281
258
  style: FontStyle.Normal,
282
259
  },
283
260
  {
284
- font: FontFamily.Satoshi,
285
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-Bold.woff',
261
+ font: FontFamily.PlusJakartaSans,
262
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans%5Bwght%5D.woff',
286
263
  weight: FontWeight.SemiBold,
287
264
  style: FontStyle.Normal,
288
265
  },
289
266
  {
290
- font: FontFamily.Satoshi,
291
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-LightItalic.woff',
267
+ font: FontFamily.PlusJakartaSans,
268
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans%5Bwght%5D.woff',
269
+ weight: FontWeight.Bold,
270
+ style: FontStyle.Normal,
271
+ },
272
+ {
273
+ font: FontFamily.PlusJakartaSans,
274
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans-Italic%5Bwght%5D.woff',
292
275
  weight: FontWeight.Light,
293
276
  style: FontStyle.Italic,
294
277
  },
295
278
  {
296
- font: FontFamily.Satoshi,
297
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-Italic.woff',
279
+ font: FontFamily.PlusJakartaSans,
280
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans-Italic%5Bwght%5D.woff',
298
281
  weight: FontWeight.Regular,
299
282
  style: FontStyle.Italic,
300
283
  },
301
284
  {
302
- font: FontFamily.Satoshi,
303
- url: 'https://fonts.cdnfonts.com/s/85546/Satoshi-BoldItalic.woff',
285
+ font: FontFamily.PlusJakartaSans,
286
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans-Italic%5Bwght%5D.woff',
304
287
  weight: FontWeight.SemiBold,
305
288
  style: FontStyle.Italic,
306
289
  },
290
+ {
291
+ font: FontFamily.PlusJakartaSans,
292
+ url: 'https://fonts.cdnfonts.com/s/107199/PlusJakartaSans-Italic%5Bwght%5D.woff',
293
+ weight: FontWeight.Bold,
294
+ style: FontStyle.Italic,
295
+ },
307
296
  // Poppins, https://fonts.cdnfonts.com/css/poppins?styles=20394,20389,20390,20391,20395,20396
308
297
  {
309
298
  font: FontFamily.Poppins,
@@ -360,8 +349,8 @@ export const CommunityCanvasTextFonts = [
360
349
  style: FontStyle.Italic,
361
350
  },
362
351
  // Lora, https://fonts.cdnfonts.com/css/lora-4?styles=50357,50356,50354,50355
363
- // Lora ships no 600 face either: as with Kalam and Satoshi, the entries
364
- // below map the 700 file onto `SemiBold` and the family has a single heavy.
352
+ // Lora ships no 600 face either: as with Kalam, the entries below map the
353
+ // 700 file onto `SemiBold` and the family has a single heavy.
365
354
  {
366
355
  font: FontFamily.Lora,
367
356
  url: 'https://fonts.cdnfonts.com/s/29883/Lora-Regular.woff',
@@ -59,6 +59,25 @@ export declare class ThemeService extends Extension {
59
59
  getColorValue(color: Color, fallback?: Color, real?: boolean, theme?: ColorScheme): string;
60
60
  getCssVariableColor(property: string, theme?: ColorScheme): string;
61
61
  }
62
+ /**
63
+ * The CSS variable the chrome accent lives behind — the token `DESIGN.md`'s
64
+ * Borrowed Blue Rule names. Kept here so a canvas painter can reach the accent
65
+ * by NAME rather than by value.
66
+ */
67
+ export declare const CHROME_ACCENT_CSS_VARIABLE = "--affine-primary-color";
68
+ /**
69
+ * The chrome accent resolved for the theme in force, ready to be handed to a
70
+ * `CanvasRenderingContext2D` (`strokeStyle`, `fillStyle`), which cannot take a
71
+ * `var(…)`.
72
+ *
73
+ * Canvas painters used to write the AFFiNE blue out as a hex, which made it
74
+ * unreachable for a host re-skin: the DOM followed `--affine-primary-color`
75
+ * while the canvas stayed on the literal. The last-resort value, for the case
76
+ * where no `ThemeProvider` is registered, is READ from the upstream theme
77
+ * rather than spelled out, so no module holds a copy of the hex
78
+ * (`brand-hex.unit.spec.ts` enforces that).
79
+ */
80
+ export declare function getChromeAccentColor(std: BlockStdScope): string;
62
81
  export declare class ThemeObserver {
63
82
  private readonly observer;
64
83
  theme$: Signal<ColorScheme>;
@@ -104,6 +104,30 @@ export class ThemeService extends Extension {
104
104
  return property;
105
105
  }
106
106
  }
107
+ /**
108
+ * The CSS variable the chrome accent lives behind — the token `DESIGN.md`'s
109
+ * Borrowed Blue Rule names. Kept here so a canvas painter can reach the accent
110
+ * by NAME rather than by value.
111
+ */
112
+ export const CHROME_ACCENT_CSS_VARIABLE = '--affine-primary-color';
113
+ /**
114
+ * The chrome accent resolved for the theme in force, ready to be handed to a
115
+ * `CanvasRenderingContext2D` (`strokeStyle`, `fillStyle`), which cannot take a
116
+ * `var(…)`.
117
+ *
118
+ * Canvas painters used to write the AFFiNE blue out as a hex, which made it
119
+ * unreachable for a host re-skin: the DOM followed `--affine-primary-color`
120
+ * while the canvas stayed on the literal. The last-resort value, for the case
121
+ * where no `ThemeProvider` is registered, is READ from the upstream theme
122
+ * rather than spelled out, so no module holds a copy of the hex
123
+ * (`brand-hex.unit.spec.ts` enforces that).
124
+ */
125
+ export function getChromeAccentColor(std) {
126
+ return (std
127
+ .getOptional(ThemeProvider)
128
+ ?.getCssVariableColor(CHROME_ACCENT_CSS_VARIABLE) ??
129
+ combinedLightCssVariables[CHROME_ACCENT_CSS_VARIABLE]);
130
+ }
107
131
  export class ThemeObserver {
108
132
  constructor() {
109
133
  const COLOR_SCHEMES = Object.values(ColorScheme);
@@ -38,6 +38,18 @@ export declare const TOAST_LINKED_DOC_CREATED: ChromeWording;
38
38
  export declare const TOAST_NOTE_REMOVED_FROM_PAGE: ChromeWording;
39
39
  export declare const TOAST_FRAME_INSERTED_INTO_PAGE: ChromeWording;
40
40
  export declare const TOAST_NO_LINK_FOUND: ChromeWording;
41
+ /**
42
+ * What the `doc.copyLink` command says once the document's URL is on the
43
+ * clipboard.
44
+ *
45
+ * Its own wording rather than {@link TOAST_COPIED_TO_CLIPBOARD}: that one
46
+ * reports a SLICE copy (blocks, elements, an image) and this one reports a
47
+ * link, and the two are told apart by nothing else on screen. Its own wording
48
+ * rather than the inline link toolbar's "Copied link to clipboard" too — that
49
+ * key belongs to `@labre/affine-inline-link` and names the `href` a delta
50
+ * already carried, not a document address the host just generated.
51
+ */
52
+ export declare const TOAST_LINK_COPIED: ChromeWording;
41
53
  export declare const TOOLBAR_BRING_TO_FRONT: ChromeWording;
42
54
  export declare const TOOLBAR_SEND_TO_BACK: ChromeWording;
43
55
  export declare const TOOLBAR_COPY: ChromeWording;
@@ -357,6 +369,13 @@ export declare const PALETTE_NAME_MEDIUM_BLUE: ChromeWording;
357
369
  export declare const PALETTE_NAME_MEDIUM_PURPLE: ChromeWording;
358
370
  export declare const PALETTE_NAME_MEDIUM_MAGENTA: ChromeWording;
359
371
  export declare const PALETTE_NAME_MEDIUM_GREY: ChromeWording;
372
+ export declare const PALETTE_NAME_HEAVY_RED: ChromeWording;
373
+ export declare const PALETTE_NAME_HEAVY_ORANGE: ChromeWording;
374
+ export declare const PALETTE_NAME_HEAVY_YELLOW: ChromeWording;
375
+ export declare const PALETTE_NAME_HEAVY_GREEN: ChromeWording;
376
+ export declare const PALETTE_NAME_HEAVY_BLUE: ChromeWording;
377
+ export declare const PALETTE_NAME_HEAVY_PURPLE: ChromeWording;
378
+ export declare const PALETTE_NAME_HEAVY_MAGENTA: ChromeWording;
360
379
  /**
361
380
  * Keyed by the exact `Palette.key` string the default theme's tables produce
362
381
  * (`buildPalettes`, `packages/affine/model/src/themes/{default,utils}.ts`) —
@@ -364,6 +383,7 @@ export declare const PALETTE_NAME_MEDIUM_GREY: ChromeWording;
364
383
  * falls back to when a swatch declares no `labelWording` of its own.
365
384
  */
366
385
  export declare const PALETTE_NAME_WORDINGS: Readonly<Record<string, ChromeWording>>;
386
+ export declare const MENU_ARIA_STYLE: ChromeWording;
367
387
  export declare const CHROME_CLIPBOARD_FILE_TOO_LARGE: ChromeWording;
368
388
  export declare const CHROME_CLIPBOARD_SIZE_LIMIT: ChromeWording;
369
389
  export declare const TOOLBAR_CAPTION: ChromeWording;