@formicoidea/labre-core 0.41.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 (343) hide show
  1. package/LICENSE +384 -0
  2. package/dist/_pkgs/affine-block-bookmark/bookmark-block.js +2 -2
  3. package/dist/_pkgs/affine-block-data-view/configs/tooltips.js +1 -1
  4. package/dist/_pkgs/affine-block-database/configs/tooltips.js +1 -1
  5. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +4 -2
  6. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +7 -1
  7. package/dist/_pkgs/affine-block-embed/common/iframe-sandbox.d.ts +39 -0
  8. package/dist/_pkgs/affine-block-embed/common/iframe-sandbox.js +39 -0
  9. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-block.js +4 -1
  10. package/dist/_pkgs/affine-block-embed/embed-github-block/embed-github-block.js +2 -1
  11. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.d.ts +14 -1
  12. package/dist/_pkgs/affine-block-embed/embed-iframe-block/components/embed-iframe-error-card.js +21 -2
  13. package/dist/_pkgs/affine-block-embed/embed-iframe-block/consts.js +2 -0
  14. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.d.ts +2 -1
  15. package/dist/_pkgs/affine-block-embed/embed-iframe-block/embed-iframe-block.js +41 -11
  16. package/dist/_pkgs/affine-block-embed/embed-iframe-block/types.d.ts +16 -0
  17. package/dist/_pkgs/affine-block-embed/embed-iframe-block/types.js +17 -1
  18. package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.d.ts +8 -0
  19. package/dist/_pkgs/affine-block-embed/embed-iframe-block/utils.js +19 -0
  20. package/dist/_pkgs/affine-block-embed/embed-loom-block/embed-loom-block.js +4 -1
  21. package/dist/_pkgs/affine-block-embed/embed-youtube-block/embed-youtube-block.js +4 -1
  22. package/dist/_pkgs/affine-block-embed/index.d.ts +1 -0
  23. package/dist/_pkgs/affine-block-embed/index.js +1 -0
  24. package/dist/_pkgs/affine-block-embed/translations.d.ts +8 -0
  25. package/dist/_pkgs/affine-block-embed/translations.js +28 -0
  26. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +4 -2
  27. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +2 -2
  28. package/dist/_pkgs/affine-block-frame/frame-manager.js +6 -3
  29. package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
  30. package/dist/_pkgs/affine-block-frame/frame-toolbar.js +6 -1
  31. package/dist/_pkgs/affine-block-list/list-keymap.js +7 -0
  32. package/dist/_pkgs/affine-block-list/utils/get-list-icon.js +3 -1
  33. package/dist/_pkgs/affine-block-note/configs/tooltips.js +1 -1
  34. package/dist/_pkgs/affine-block-note/note-keymap.js +7 -1
  35. package/dist/_pkgs/affine-block-paragraph/paragraph-keymap.js +7 -1
  36. package/dist/_pkgs/affine-block-root/adapters/html.js +2 -2
  37. package/dist/_pkgs/affine-block-root/commands/copy-link-commands.d.ts +2 -0
  38. package/dist/_pkgs/affine-block-root/commands/copy-link-commands.js +155 -0
  39. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +1 -8
  40. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +1 -8
  41. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.d.ts +9 -0
  42. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +51 -0
  43. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.d.ts +22 -0
  44. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +46 -0
  45. package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.d.ts +21 -0
  46. package/dist/_pkgs/affine-block-root/edgeless/utils/pinch-zoom.js +24 -0
  47. package/dist/_pkgs/affine-block-root/edgeless/utils/query.js +8 -0
  48. package/dist/_pkgs/affine-block-root/index.d.ts +1 -0
  49. package/dist/_pkgs/affine-block-root/index.js +1 -0
  50. package/dist/_pkgs/affine-block-root/keyboard/keymap.js +1 -16
  51. package/dist/_pkgs/affine-block-root/view.js +2 -0
  52. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
  53. package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
  54. package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.d.ts +23 -0
  55. package/dist/_pkgs/affine-block-surface/extensions/export-svg/command.js +89 -0
  56. package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.d.ts +7 -0
  57. package/dist/_pkgs/affine-block-surface/extensions/export-svg/index.js +5 -0
  58. package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.d.ts +41 -0
  59. package/dist/_pkgs/affine-block-surface/extensions/export-svg/render.js +70 -0
  60. package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.d.ts +49 -0
  61. package/dist/_pkgs/affine-block-surface/extensions/export-svg/svg-context.js +257 -0
  62. package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.d.ts +16 -0
  63. package/dist/_pkgs/affine-block-surface/extensions/export-svg/tagged-path.js +24 -0
  64. package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.d.ts +24 -0
  65. package/dist/_pkgs/affine-block-surface/extensions/export-svg/toolbar.js +66 -0
  66. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +4 -0
  67. package/dist/_pkgs/affine-block-surface/extensions/index.js +4 -0
  68. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +66 -4
  69. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +253 -11
  70. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +18 -0
  71. package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.d.ts +81 -0
  72. package/dist/_pkgs/affine-block-surface/extensions/legend-toolbar.js +81 -0
  73. package/dist/_pkgs/affine-block-surface/extensions/legend.d.ts +144 -0
  74. package/dist/_pkgs/affine-block-surface/extensions/legend.js +495 -0
  75. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +4 -0
  76. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +17 -3
  77. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +35 -13
  78. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +61 -1
  79. package/dist/_pkgs/affine-block-surface/extensions/reading.js +85 -39
  80. package/dist/_pkgs/affine-block-surface/extensions/record-action.d.ts +66 -0
  81. package/dist/_pkgs/affine-block-surface/extensions/record-action.js +145 -0
  82. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.d.ts +3 -0
  83. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch-translations.js +23 -0
  84. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +1 -1
  85. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +12 -4
  86. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +253 -28
  87. package/dist/_pkgs/affine-block-surface/extensions/validation.js +489 -41
  88. package/dist/_pkgs/affine-block-surface/framework-background/background-view.d.ts +115 -0
  89. package/dist/_pkgs/affine-block-surface/framework-background/background-view.js +185 -0
  90. package/dist/_pkgs/affine-block-surface/framework-background/fit.d.ts +36 -0
  91. package/dist/_pkgs/affine-block-surface/framework-background/fit.js +30 -0
  92. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +2 -0
  93. package/dist/_pkgs/affine-block-surface/framework-background/index.js +2 -0
  94. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +16 -1
  95. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +31 -21
  96. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +29 -5
  97. package/dist/_pkgs/affine-block-surface/framework-background/stacking.d.ts +6 -4
  98. package/dist/_pkgs/affine-block-surface/framework-background/stacking.js +56 -8
  99. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +12 -0
  100. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +15 -0
  101. package/dist/_pkgs/affine-block-surface/renderer/element-highlight-overlay.js +2 -7
  102. package/dist/_pkgs/affine-block-surface/view.js +8 -1
  103. package/dist/_pkgs/affine-block-surface-ref/configs/slash-menu.js +1 -1
  104. package/dist/_pkgs/affine-block-surface-ref/configs/tooltips.js +2 -2
  105. package/dist/_pkgs/affine-components/color-picker/button.d.ts +56 -1
  106. package/dist/_pkgs/affine-components/color-picker/button.js +168 -23
  107. package/dist/_pkgs/affine-components/color-picker/framework-palette.d.ts +106 -0
  108. package/dist/_pkgs/affine-components/color-picker/framework-palette.js +177 -0
  109. package/dist/_pkgs/affine-components/color-picker/index.d.ts +2 -0
  110. package/dist/_pkgs/affine-components/color-picker/index.js +2 -0
  111. package/dist/_pkgs/affine-components/color-picker/palette-carousel.d.ts +85 -0
  112. package/dist/_pkgs/affine-components/color-picker/palette-carousel.js +445 -0
  113. package/dist/_pkgs/affine-components/color-picker/styles.js +1 -1
  114. package/dist/_pkgs/affine-components/context-menu/button.js +3 -1
  115. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.d.ts +31 -1
  116. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +189 -63
  117. package/dist/_pkgs/affine-components/icons/ai.js +3 -3
  118. package/dist/_pkgs/affine-components/icons/list.js +7 -1
  119. package/dist/_pkgs/affine-components/resource/resource.js +29 -16
  120. package/dist/_pkgs/affine-components/size-dropdown-menu/dropdown-menu.js +6 -1
  121. package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -1
  122. package/dist/_pkgs/affine-components/toolbar/index.js +1 -1
  123. package/dist/_pkgs/affine-components/toolbar/menu-button.d.ts +7 -0
  124. package/dist/_pkgs/affine-components/toolbar/menu-button.js +30 -0
  125. package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +16 -1
  126. package/dist/_pkgs/affine-components/toolbar/picker-menu.js +2 -2
  127. package/dist/_pkgs/affine-components/toolbar/toolbar.d.ts +1 -0
  128. package/dist/_pkgs/affine-components/toolbar/toolbar.js +67 -0
  129. package/dist/_pkgs/affine-components/translations.d.ts +8 -0
  130. package/dist/_pkgs/affine-components/translations.js +17 -0
  131. package/dist/_pkgs/affine-foundation/view.js +2 -1
  132. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card-title-editor.js +1 -1
  133. package/dist/_pkgs/affine-fragment-frame-panel/card/frame-card.js +1 -1
  134. package/dist/_pkgs/affine-gfx-brush/element-renderer.js +2 -2
  135. package/dist/_pkgs/affine-gfx-brush/toolbar/components/eraser/icons.js +1 -1
  136. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/brush.js +6 -1
  137. package/dist/_pkgs/affine-gfx-brush/toolbar/configs/highlighter.js +6 -1
  138. package/dist/_pkgs/affine-gfx-connector/connector-manager.d.ts +9 -1
  139. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +61 -0
  140. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +11 -2
  141. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +11 -2
  142. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.d.ts +7 -1
  143. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +87 -17
  144. package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +78 -17
  145. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.d.ts +24 -2
  146. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +31 -8
  147. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.d.ts +124 -3
  148. package/dist/_pkgs/affine-gfx-connector/text/edgeless-connector-label-editor.js +219 -56
  149. package/dist/_pkgs/affine-gfx-connector/text/text.d.ts +13 -4
  150. package/dist/_pkgs/affine-gfx-connector/text/text.js +13 -44
  151. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +56 -0
  152. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +94 -10
  153. package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.d.ts +8 -0
  154. package/dist/_pkgs/affine-gfx-connector/toolbar/hollow-endpoint-icons.js +118 -0
  155. package/dist/_pkgs/affine-gfx-connector/translations.d.ts +3 -0
  156. package/dist/_pkgs/affine-gfx-connector/translations.js +23 -0
  157. package/dist/_pkgs/affine-gfx-connector/view/view.d.ts +37 -1
  158. package/dist/_pkgs/affine-gfx-connector/view/view.js +97 -8
  159. package/dist/_pkgs/affine-gfx-group/command/group-api.js +1 -1
  160. package/dist/_pkgs/affine-gfx-group/store.js +0 -2
  161. package/dist/_pkgs/affine-gfx-group/translations.d.ts +9 -10
  162. package/dist/_pkgs/affine-gfx-group/translations.js +9 -13
  163. package/dist/_pkgs/affine-gfx-mindmap/indicator-overlay/index.js +6 -2
  164. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +1 -1
  165. package/dist/_pkgs/affine-gfx-mindmap/toolbar/basket-elements.js +1 -1
  166. package/dist/_pkgs/affine-gfx-mindmap/toolbar/config.js +4 -2
  167. package/dist/_pkgs/affine-gfx-mindmap/toolbar/utils/import-mindmap.js +2 -2
  168. package/dist/_pkgs/affine-gfx-mindmap/translations.d.ts +7 -1
  169. package/dist/_pkgs/affine-gfx-mindmap/translations.js +11 -1
  170. package/dist/_pkgs/affine-gfx-shape/element-renderer/highlighter.js +2 -2
  171. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.d.ts +6 -0
  172. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +30 -1
  173. package/dist/_pkgs/affine-gfx-shape/polygon-tool.d.ts +20 -1
  174. package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +9 -1
  175. package/dist/_pkgs/affine-gfx-shape/toolbar/config.js +10 -3
  176. package/dist/_pkgs/affine-gfx-shape/toolbar/palette-color-action.js +11 -1
  177. package/dist/_pkgs/affine-gfx-shape/translations.d.ts +7 -0
  178. package/dist/_pkgs/affine-gfx-shape/translations.js +11 -0
  179. package/dist/_pkgs/affine-gfx-template/builtin/other.js +14 -8
  180. package/dist/_pkgs/affine-gfx-template/snapshot-from-action.js +32 -119
  181. package/dist/_pkgs/affine-gfx-template/toolbar/template-loading.js +1 -1
  182. package/dist/_pkgs/affine-gfx-template/toolbar/template-type.d.ts +1 -1
  183. package/dist/_pkgs/affine-gfx-template/translations.d.ts +5 -0
  184. package/dist/_pkgs/affine-gfx-template/translations.js +38 -0
  185. package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.d.ts +13 -1
  186. package/dist/_pkgs/affine-gfx-text/dblclick-add-edgeless-text.js +19 -4
  187. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.d.ts +41 -0
  188. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +60 -4
  189. package/dist/_pkgs/affine-gfx-text/toolbar/actions.d.ts +8 -1
  190. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +14 -2
  191. package/dist/_pkgs/affine-gfx-text/translations.d.ts +9 -0
  192. package/dist/_pkgs/affine-gfx-text/translations.js +14 -1
  193. package/dist/_pkgs/affine-inline-latex/latex-node/latex-editor-menu.js +2 -1
  194. package/dist/_pkgs/affine-inline-preset/markdown.js +5 -1
  195. package/dist/_pkgs/affine-model/consts/connector.d.ts +28 -2
  196. package/dist/_pkgs/affine-model/consts/connector.js +26 -0
  197. package/dist/_pkgs/affine-model/consts/text.d.ts +15 -2
  198. package/dist/_pkgs/affine-model/consts/text.js +25 -1
  199. package/dist/_pkgs/affine-model/elements/bpmn/pool.js +1 -1
  200. package/dist/_pkgs/affine-model/elements/brush/brush.js +1 -1
  201. package/dist/_pkgs/affine-model/elements/c4/board.js +1 -1
  202. package/dist/_pkgs/affine-model/elements/c4/boundary.js +1 -1
  203. package/dist/_pkgs/affine-model/elements/connector/connector.d.ts +135 -0
  204. package/dist/_pkgs/affine-model/elements/connector/connector.js +246 -5
  205. package/dist/_pkgs/affine-model/elements/connector/end-label.d.ts +83 -0
  206. package/dist/_pkgs/affine-model/elements/connector/end-label.js +119 -0
  207. package/dist/_pkgs/affine-model/elements/connector/index.d.ts +1 -0
  208. package/dist/_pkgs/affine-model/elements/connector/index.js +1 -0
  209. package/dist/_pkgs/affine-model/elements/context-map/context-map.js +1 -1
  210. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +28 -0
  211. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +129 -2
  212. package/dist/_pkgs/affine-model/elements/cynefin/cynefin.d.ts +8 -0
  213. package/dist/_pkgs/affine-model/elements/cynefin/cynefin.js +45 -2
  214. package/dist/_pkgs/affine-model/elements/edgy/board.js +1 -1
  215. package/dist/_pkgs/affine-model/elements/edgy/facets.js +1 -1
  216. package/dist/_pkgs/affine-model/elements/estuarine/estuarine.d.ts +6 -0
  217. package/dist/_pkgs/affine-model/elements/estuarine/estuarine.js +36 -2
  218. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +18 -7
  219. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +23 -8
  220. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +16 -0
  221. package/dist/_pkgs/affine-model/elements/framework-background/background.js +18 -0
  222. package/dist/_pkgs/affine-model/elements/highlighter/highlighter.js +1 -1
  223. package/dist/_pkgs/affine-model/elements/index.d.ts +8 -0
  224. package/dist/_pkgs/affine-model/elements/index.js +1 -0
  225. package/dist/_pkgs/affine-model/elements/shape/shape.js +1 -1
  226. package/dist/_pkgs/affine-model/elements/text/text.js +1 -1
  227. package/dist/_pkgs/affine-model/elements/uml/band.d.ts +39 -0
  228. package/dist/_pkgs/affine-model/elements/uml/band.js +31 -0
  229. package/dist/_pkgs/affine-model/elements/uml/diagram.d.ts +158 -0
  230. package/dist/_pkgs/affine-model/elements/uml/diagram.js +229 -0
  231. package/dist/_pkgs/affine-model/elements/uml/fragment.d.ts +161 -0
  232. package/dist/_pkgs/affine-model/elements/uml/fragment.js +205 -0
  233. package/dist/_pkgs/affine-model/elements/uml/index.d.ts +8 -0
  234. package/dist/_pkgs/affine-model/elements/uml/index.js +8 -0
  235. package/dist/_pkgs/affine-model/elements/uml/lifeline.d.ts +77 -0
  236. package/dist/_pkgs/affine-model/elements/uml/lifeline.js +89 -0
  237. package/dist/_pkgs/affine-model/elements/uml/node.d.ts +142 -0
  238. package/dist/_pkgs/affine-model/elements/uml/node.js +190 -0
  239. package/dist/_pkgs/affine-model/elements/uml/partition.d.ts +106 -0
  240. package/dist/_pkgs/affine-model/elements/uml/partition.js +172 -0
  241. package/dist/_pkgs/affine-model/elements/uml/region.d.ts +75 -0
  242. package/dist/_pkgs/affine-model/elements/uml/region.js +150 -0
  243. package/dist/_pkgs/affine-model/elements/uml/subject.d.ts +37 -0
  244. package/dist/_pkgs/affine-model/elements/uml/subject.js +108 -0
  245. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +1 -1
  246. package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.d.ts +1 -0
  247. package/dist/_pkgs/affine-shared/services/font-loader/config.d.ts +18 -0
  248. package/dist/_pkgs/affine-shared/services/font-loader/config.js +82 -50
  249. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +1 -9
  250. package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.d.ts +53 -0
  251. package/dist/_pkgs/affine-shared/services/telemetry-service/document-damage-watcher.js +95 -0
  252. package/dist/_pkgs/affine-shared/services/telemetry-service/index.d.ts +1 -0
  253. package/dist/_pkgs/affine-shared/services/telemetry-service/index.js +1 -0
  254. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +26 -1
  255. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  256. package/dist/_pkgs/affine-shared/services/theme-service.d.ts +19 -0
  257. package/dist/_pkgs/affine-shared/services/theme-service.js +24 -0
  258. package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.d.ts +34 -0
  259. package/dist/_pkgs/affine-shared/services/toolbar-service/command-action.js +63 -0
  260. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  261. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  262. package/dist/_pkgs/affine-shared/services/translation-service/chrome.d.ts +97 -7
  263. package/dist/_pkgs/affine-shared/services/translation-service/chrome.js +178 -7
  264. package/dist/_pkgs/affine-shared/styles/index.d.ts +1 -0
  265. package/dist/_pkgs/affine-shared/styles/index.js +1 -0
  266. package/dist/_pkgs/affine-shared/styles/motion.d.ts +14 -0
  267. package/dist/_pkgs/affine-shared/styles/motion.js +38 -0
  268. package/dist/_pkgs/affine-shared/utils/event.d.ts +10 -0
  269. package/dist/_pkgs/affine-shared/utils/event.js +20 -0
  270. package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +16 -0
  271. package/dist/_pkgs/affine-shared/utils/file/filesys.js +25 -0
  272. package/dist/_pkgs/affine-shared/utils/index.d.ts +1 -0
  273. package/dist/_pkgs/affine-shared/utils/index.js +1 -0
  274. package/dist/_pkgs/affine-shared/utils/link-preview-refresh.d.ts +12 -0
  275. package/dist/_pkgs/affine-shared/utils/link-preview-refresh.js +13 -0
  276. package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +2 -2
  277. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +5 -1
  278. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +12 -4
  279. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +27 -4
  280. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/types.d.ts +15 -0
  281. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.d.ts +1 -1
  282. package/dist/_pkgs/affine-widget-edgeless-toolbar/config/utils.js +7 -2
  283. package/dist/_pkgs/affine-widget-edgeless-toolbar/create-popper.js +13 -0
  284. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +2 -0
  285. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +2 -0
  286. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +80 -0
  287. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +270 -81
  288. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.d.ts +15 -0
  289. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/senior-menu-selection.js +15 -0
  290. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-family-panel.d.ts +18 -0
  291. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-family-panel.js +52 -6
  292. package/dist/_pkgs/affine-widget-edgeless-toolbar/panel/font-weight-and-style-panel.js +8 -1
  293. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.d.ts +42 -0
  294. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-ghost-overlay.js +100 -0
  295. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.d.ts +100 -0
  296. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/artefact-placement-tool.js +274 -0
  297. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.d.ts +3 -0
  298. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/index.js +3 -0
  299. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.d.ts +25 -0
  300. package/dist/_pkgs/affine-widget-edgeless-toolbar/placement/translate-created.js +67 -0
  301. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.d.ts +6 -0
  302. package/dist/_pkgs/affine-widget-edgeless-toolbar/translations.js +10 -0
  303. package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +5 -0
  304. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +2 -1
  305. package/dist/_pkgs/affine-widget-slash-menu/translations.d.ts +16 -0
  306. package/dist/_pkgs/affine-widget-slash-menu/translations.js +23 -1
  307. package/dist/_pkgs/affine-widget-toolbar/utils.js +57 -14
  308. package/dist/_pkgs/data-view/core/detail/field.js +2 -1
  309. package/dist/_pkgs/data-view/core/filter/literal/define.js +3 -1
  310. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +1 -1
  311. package/dist/_pkgs/data-view/property-presets/checkbox/cell-renderer.js +8 -2
  312. package/dist/_pkgs/data-view/view-presets/kanban/pc/cell.js +1 -1
  313. package/dist/_pkgs/data-view/view-presets/kanban/pc/controller/drag.js +2 -1
  314. package/dist/_pkgs/data-view/view-presets/table/pc/controller/drag.js +2 -1
  315. package/dist/_pkgs/data-view/view-presets/table/pc/controller/selection.js +1 -1
  316. package/dist/_pkgs/data-view/view-presets/table/pc/header/vertical-indicator.js +2 -1
  317. package/dist/_pkgs/data-view/view-presets/table/pc/row/row-select-checkbox.js +3 -1
  318. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/drag.js +2 -1
  319. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/selection.js +1 -1
  320. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/header/vertical-indicator.js +2 -1
  321. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/row-header.js +3 -1
  322. package/dist/_pkgs/global/gfx/xywh.js +7 -0
  323. package/dist/_pkgs/std/extension/command-registry.d.ts +158 -1
  324. package/dist/_pkgs/std/extension/command-registry.js +22 -0
  325. package/dist/_pkgs/std/gfx/index.d.ts +1 -1
  326. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.d.ts +12 -0
  327. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +20 -1
  328. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +10 -0
  329. package/dist/_pkgs/std/gfx/interactivity/manager.js +12 -0
  330. package/dist/_pkgs/std/gfx/model/surface/element-model.js +12 -7
  331. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +10 -5
  332. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +56 -0
  333. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +84 -3
  334. package/dist/_pkgs/std/gfx/view/view.d.ts +11 -2
  335. package/dist/_pkgs/std/gfx/view/view.js +16 -2
  336. package/dist/commands.d.ts +6 -0
  337. package/dist/commands.js +10 -2
  338. package/dist/frameworks.d.ts +9 -0
  339. package/dist/frameworks.js +19 -0
  340. package/dist/translations.js +21 -0
  341. package/package.json +13 -4
  342. package/dist/_pkgs/affine-gfx-group/group-watcher.d.ts +0 -1
  343. package/dist/_pkgs/affine-gfx-group/group-watcher.js +0 -20
@@ -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
@@ -1,4 +1,16 @@
1
- import { InteractivityExtension } from '../std/gfx/index.js';
1
+ import { type GfxController, InteractivityExtension } from '../std/gfx/index.js';
2
+ /**
3
+ * Whether a double click at this model point lands on nothing at all.
4
+ *
5
+ * Two layers have to agree, because they answer different questions: the model
6
+ * hit test (`getElementByPoint`) answers "may I be selected here?", the view
7
+ * router answers "is this point mine?". Since framework backgrounds became
8
+ * border-only for picking (#194), their axis labels are a place where the two
9
+ * disagree — the model calls the label empty canvas while the view is opening
10
+ * its rename editor there, and dropping a text block on top blurs that editor
11
+ * shut before the user can type.
12
+ */
13
+ export declare function isEmptyCanvasAt(gfx: GfxController, x: number, y: number): boolean;
2
14
  export declare class DblClickAddEdgelessText extends InteractivityExtension {
3
15
  static key: string;
4
16
  mounted(): void;
@@ -1,7 +1,23 @@
1
1
  import { FeatureFlagService, TelemetryProvider, } from '../affine-shared/services/index.js';
2
- import { InteractivityExtension, } from '../std/gfx/index.js';
2
+ import { InteractivityExtension, InteractivityIdentifier, } from '../std/gfx/index.js';
3
3
  import { insertEdgelessTextCommand } from './commands/index.js';
4
4
  import { addText } from './edgeless-text-editor.js';
5
+ /**
6
+ * Whether a double click at this model point lands on nothing at all.
7
+ *
8
+ * Two layers have to agree, because they answer different questions: the model
9
+ * hit test (`getElementByPoint`) answers "may I be selected here?", the view
10
+ * router answers "is this point mine?". Since framework backgrounds became
11
+ * border-only for picking (#194), their axis labels are a place where the two
12
+ * disagree — the model calls the label empty canvas while the view is opening
13
+ * its rename editor there, and dropping a text block on top blurs that editor
14
+ * shut before the user can type.
15
+ */
16
+ export function isEmptyCanvasAt(gfx, x, y) {
17
+ if (gfx.getElementByPoint(x, y))
18
+ return false;
19
+ return !gfx.std.getOptional(InteractivityIdentifier)?.hasViewAt(x, y);
20
+ }
5
21
  export class DblClickAddEdgelessText extends InteractivityExtension {
6
22
  static { this.key = 'dbl-click-add-edgeless-text'; }
7
23
  mounted() {
@@ -10,12 +26,11 @@ export class DblClickAddEdgelessText extends InteractivityExtension {
10
26
  const textFlag = this.std.store
11
27
  .get(FeatureFlagService)
12
28
  .getFlag('enable_edgeless_text');
13
- const picked = this.gfx.getElementByPoint(...this.gfx.viewport.toModelCoord(e.x, e.y));
14
- if (picked) {
29
+ const [x, y] = this.gfx.viewport.toModelCoord(e.x, e.y);
30
+ if (!isEmptyCanvasAt(this.gfx, x, y)) {
15
31
  return;
16
32
  }
17
33
  if (textFlag) {
18
- const [x, y] = this.gfx.viewport.toModelCoord(e.x, e.y);
19
34
  this.std.command.exec(insertEdgelessTextCommand, { x, y });
20
35
  }
21
36
  else {
@@ -9,6 +9,46 @@ export declare function mountTextElementEditor(textElement: TextElementModel, ed
9
9
  * Canvas Text has been deprecated
10
10
  */
11
11
  export declare function addText(edgeless: BlockComponent, event: PointerEventState): void;
12
+ /**
13
+ * What the editor does with a canvas text the author committed EMPTY: delete it,
14
+ * or leave it standing.
15
+ *
16
+ * ## Why anything survives being emptied
17
+ *
18
+ * A free canvas text emptied of its words IS nothing, and deleting it is what
19
+ * keeps an invisible, selectable box off the board. That was the only rule until
20
+ * the PO's recette of 14/09/2026 found what it costs a COMPARTMENT: emptying a
21
+ * classifier's title deleted the `uml:name` tier out of its group, and the next
22
+ * double-click on the body fell through to the SHAPE's own inner text
23
+ * (`UmlNodeView`), which R16 keeps empty and no framework renderer paints —
24
+ * "je n'arrive pas à entrer dans l'édition de texte".
25
+ *
26
+ * ## …and why a `role` alone is not the test
27
+ *
28
+ * A role says the element means something to a framework. It does NOT say the
29
+ * element is a tier of a composite: a Wardley `wardley:label` and a BPMN name
30
+ * are roled texts that float BESIDE their artefact, sized to their own words,
31
+ * and one emptied to nothing leaves exactly the invisible box the deletion rule
32
+ * exists to remove — with no placeholder drawn over it and no layout to put it
33
+ * back.
34
+ *
35
+ * A compartment tier is the one that has both halves: a `role`, and
36
+ * `hasMaxWidth` — a FIXED width, given at creation by every framework that lays
37
+ * tiers out (`uml/presets.ts`, `c4/actions.ts`), because a tier's width is its
38
+ * compartment's and not its content's. That fixed width is also, and not by
39
+ * coincidence, what leaves a full-width hit box for the next double-click to
40
+ * land on when the words are gone.
41
+ *
42
+ * Pure and total, so it can be asked without an editor, an element model or a
43
+ * document.
44
+ */
45
+ export declare function emptiedTextIsDeleted(element: {
46
+ text: {
47
+ length: number;
48
+ };
49
+ role?: string;
50
+ hasMaxWidth?: boolean;
51
+ }): boolean;
12
52
  declare const EdgelessTextEditor_base: typeof ShadowlessElement & import("../global/utils/types.js").Constructor<import("../global/lit/with-disposable.js").DisposableClass>;
13
53
  export declare class EdgelessTextEditor extends EdgelessTextEditor_base {
14
54
  get crud(): import("../affine-block-surface/index.js").EdgelessCRUDExtension;
@@ -20,6 +60,7 @@ export declare class EdgelessTextEditor extends EdgelessTextEditor_base {
20
60
  static styles: import("lit").CSSResult;
21
61
  private _isComposition;
22
62
  private _keeping;
63
+ private _removing;
23
64
  private readonly _updateRect;
24
65
  get inlineEditor(): import("../affine-shared/types/index.js").AffineInlineEditor | null;
25
66
  get inlineEditorContainer(): import("../std/inline/inline-editor.js").InlineRootElement<import("../affine-shared/types/index.js").AffineTextAttributes> | null | undefined;
@@ -97,6 +97,44 @@ export function addText(edgeless, event) {
97
97
  }
98
98
  }
99
99
  }
100
+ /**
101
+ * What the editor does with a canvas text the author committed EMPTY: delete it,
102
+ * or leave it standing.
103
+ *
104
+ * ## Why anything survives being emptied
105
+ *
106
+ * A free canvas text emptied of its words IS nothing, and deleting it is what
107
+ * keeps an invisible, selectable box off the board. That was the only rule until
108
+ * the PO's recette of 14/09/2026 found what it costs a COMPARTMENT: emptying a
109
+ * classifier's title deleted the `uml:name` tier out of its group, and the next
110
+ * double-click on the body fell through to the SHAPE's own inner text
111
+ * (`UmlNodeView`), which R16 keeps empty and no framework renderer paints —
112
+ * "je n'arrive pas à entrer dans l'édition de texte".
113
+ *
114
+ * ## …and why a `role` alone is not the test
115
+ *
116
+ * A role says the element means something to a framework. It does NOT say the
117
+ * element is a tier of a composite: a Wardley `wardley:label` and a BPMN name
118
+ * are roled texts that float BESIDE their artefact, sized to their own words,
119
+ * and one emptied to nothing leaves exactly the invisible box the deletion rule
120
+ * exists to remove — with no placeholder drawn over it and no layout to put it
121
+ * back.
122
+ *
123
+ * A compartment tier is the one that has both halves: a `role`, and
124
+ * `hasMaxWidth` — a FIXED width, given at creation by every framework that lays
125
+ * tiers out (`uml/presets.ts`, `c4/actions.ts`), because a tier's width is its
126
+ * compartment's and not its content's. That fixed width is also, and not by
127
+ * coincidence, what leaves a full-width hit box for the next double-click to
128
+ * land on when the words are gone.
129
+ *
130
+ * Pure and total, so it can be asked without an editor, an element model or a
131
+ * document.
132
+ */
133
+ export function emptiedTextIsDeleted(element) {
134
+ if (element.text.length !== 0)
135
+ return false;
136
+ return !(element.role !== undefined && element.hasMaxWidth === true);
137
+ }
100
138
  let EdgelessTextEditor = (() => {
101
139
  let _classSuper = WithDisposable(ShadowlessElement);
102
140
  let _std_decorators;
@@ -138,9 +176,10 @@ let EdgelessTextEditor = (() => {
138
176
  transform-origin: left top;
139
177
  font-kerning: none;
140
178
  border: ${EdgelessTextEditor.BORDER_WIDTH}px solid
141
- var(--affine-primary-color, #1e96eb);
179
+ var(--affine-primary-color);
142
180
  border-radius: 4px;
143
- 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);
144
183
  padding: ${EdgelessTextEditor.PADDING_VERTICAL}px
145
184
  ${EdgelessTextEditor.PADDING_HORIZONTAL}px;
146
185
  overflow: visible;
@@ -203,7 +242,12 @@ let EdgelessTextEditor = (() => {
203
242
  this.disposables.add(dispatcher.add('doubleClick', () => true));
204
243
  this.disposables.add(() => {
205
244
  element.display = true;
206
- if (element.text.length === 0) {
245
+ // An emptied COMPARTMENT TIER stays, at its compartment's box,
246
+ // showing the placeholder its framework draws and answering the next
247
+ // double-click; anything else emptied goes. The whole rule, and why it
248
+ // is those two properties and not one, is on
249
+ // {@link emptiedTextIsDeleted}.
250
+ if (emptiedTextIsDeleted(element)) {
207
251
  this.crud.deleteElements([element]);
208
252
  }
209
253
  this.gfx.selection.set({
@@ -213,7 +257,18 @@ let EdgelessTextEditor = (() => {
213
257
  });
214
258
  if (!this.inlineEditorContainer)
215
259
  return;
216
- this.disposables.addFromEvent(this.inlineEditorContainer, 'blur', () => !this._keeping && this.remove());
260
+ this.disposables.addFromEvent(this.inlineEditorContainer, 'blur', () => {
261
+ // Re-entrant, and the connector label editor already says why:
262
+ // Chrome fires the focused child's blur SYNCHRONOUSLY inside
263
+ // `remove()`, before the node is detached, and the commit in
264
+ // `disconnectedCallback` moves the focus again. Without the flag the
265
+ // handler removes a node whose removal is in progress — a
266
+ // `NotFoundError` out of a listener nobody is awaiting.
267
+ if (this._keeping || this._removing)
268
+ return;
269
+ this._removing = true;
270
+ this.remove();
271
+ });
217
272
  this.disposables.addFromEvent(this.inlineEditorContainer, 'compositionstart', () => {
218
273
  this._isComposition = true;
219
274
  this.requestUpdate();
@@ -353,6 +408,7 @@ let EdgelessTextEditor = (() => {
353
408
  super(...arguments);
354
409
  this._isComposition = false;
355
410
  this._keeping = false;
411
+ this._removing = false;
356
412
  this._updateRect = () => {
357
413
  const element = this.element;
358
414
  if (!element || !this.inlineEditorContainer)
@@ -1,6 +1,12 @@
1
1
  import { type SurfaceTextModelMap, type TextStyleProps } from '../../affine-model/index.js';
2
2
  import { type ToolbarContext } from '../../affine-shared/services/index.js';
3
- export declare function createTextActions<K extends abstract new (...args: any) => any, T extends keyof SurfaceTextModelMap>(klass: K, type: T, update?: (ctx: ToolbarContext, model: InstanceType<K>, props: Partial<TextStyleProps>) => void, mapInto?: (model: InstanceType<K>) => TextStyleProps, stash?: <P extends keyof TextStyleProps>(model: InstanceType<K>, type: 'stash' | 'pop', field: P) => void): [{
3
+ /**
4
+ * What the dropdowns read off a selected model. `fontSize` is optional because
5
+ * `affine:edgeless-text` has no such prop — it scales instead, which is why the
6
+ * `d.font-size` action skips that type.
7
+ */
8
+ type ReadableTextStyleProps = Omit<TextStyleProps, 'fontSize'> & Partial<Pick<TextStyleProps, 'fontSize'>>;
9
+ export declare function createTextActions<K extends abstract new (...args: any) => any, T extends keyof SurfaceTextModelMap>(klass: K, type: T, update?: (ctx: ToolbarContext, model: InstanceType<K>, props: Partial<TextStyleProps>) => void, mapInto?: (model: InstanceType<K>) => ReadableTextStyleProps, stash?: <P extends keyof TextStyleProps>(model: InstanceType<K>, type: 'stash' | 'pop', field: P) => void): [{
4
10
  readonly id: "a.font";
5
11
  readonly content: (ctx: ToolbarContext) => import("lit-html").TemplateResult<1> | null;
6
12
  }, {
@@ -17,3 +23,4 @@ export declare function createTextActions<K extends abstract new (...args: any)
17
23
  readonly id: "e.alignment";
18
24
  readonly content: (ctx: ToolbarContext) => import("lit-html").TemplateResult<1> | null;
19
25
  }];
26
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { EdgelessCRUDIdentifier, TextUtils } from '../../affine-block-surface/index.js';
2
- import { packColor, } from '../../affine-components/color-picker/index.js';
2
+ import { frameworkPaletteGroups, packColor, } from '../../affine-components/color-picker/index.js';
3
3
  import { EditorChevronDown } from '../../affine-components/toolbar/index.js';
4
4
  import { DefaultTheme, FontFamily, FontStyle, FontWeight, resolveColor, TextAlign, } from '../../affine-model/index.js';
5
5
  import { translateKey, } from '../../affine-shared/services/index.js';
@@ -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_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',
@@ -27,6 +27,11 @@ const FONT_WEIGHT_LIST = [
27
27
  keyWording: TEXT_TOOLBAR_FONT_WEIGHT_SEMIBOLD,
28
28
  value: FontWeight.SemiBold,
29
29
  },
30
+ {
31
+ key: 'Bold',
32
+ keyWording: TEXT_TOOLBAR_FONT_WEIGHT_BOLD,
33
+ value: FontWeight.Bold,
34
+ },
30
35
  ];
31
36
  const FONT_STYLE_LIST = [
32
37
  {
@@ -114,6 +119,7 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
114
119
  <edgeless-font-family-panel
115
120
  .value=${fontFamily}
116
121
  .onSelect=${onPick}
122
+ .std=${ctx.std}
117
123
  ></edgeless-font-family-panel>
118
124
  </editor-menu-button>
119
125
  `;
@@ -167,6 +173,9 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
167
173
  break;
168
174
  }
169
175
  };
176
+ // A label on a framework board opens on that framework's hues; the
177
+ // text palette of the editor stays page one (`docs/adr/0027`).
178
+ const carousel = frameworkPaletteGroups(ctx.std, models, palettes);
170
179
  return html `
171
180
  <edgeless-color-picker-button
172
181
  class="text-color"
@@ -179,6 +188,8 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
179
188
  .hollowCircle=${true}
180
189
  .originalColor=${originalColor}
181
190
  .palettes=${palettes}
191
+ .paletteGroups=${carousel.groups}
192
+ .activeGroupKey=${carousel.activeKey}
182
193
  .enableCustomColor=${enableCustomColor}
183
194
  >
184
195
  </edgeless-color-picker-button>
@@ -285,6 +296,7 @@ export function createTextActions(klass, type, update = (ctx, model, props) => c
285
296
  return renderMenu({
286
297
  label: 'Alignment',
287
298
  labelWording: TEXT_TOOLBAR_ALIGNMENT,
299
+ menuAriaWording: TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA,
288
300
  items: TEXT_ALIGN_LIST,
289
301
  currentValue: textAlign,
290
302
  onPick,
@@ -11,11 +11,20 @@ export declare const TEXT_TOOLBAR_FONT_SIZE: ChromeWording;
11
11
  export declare const TEXT_TOOLBAR_FONT_WEIGHT_LIGHT: ChromeWording;
12
12
  export declare const TEXT_TOOLBAR_FONT_WEIGHT_REGULAR: ChromeWording;
13
13
  export declare const TEXT_TOOLBAR_FONT_WEIGHT_SEMIBOLD: ChromeWording;
14
+ export declare const TEXT_TOOLBAR_FONT_WEIGHT_BOLD: ChromeWording;
14
15
  export declare const TEXT_TOOLBAR_FONT_STYLE_ITALIC: ChromeWording;
15
16
  export declare const TEXT_TOOLBAR_FONT: ChromeWording;
16
17
  export declare const TEXT_TOOLBAR_TEXT_COLOR: ChromeWording;
17
18
  export declare const TEXT_TOOLBAR_FONT_STYLE: ChromeWording;
18
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;
19
28
  /**
20
29
  * The three alignment values — a different concept from a mindmap's own
21
30
  * "Left" / "Right" layout direction (`gfx/mindmap`'s
@@ -1,4 +1,4 @@
1
- import { FONT_SIZE_LABEL, FONT_STYLE_ITALIC, FONT_WEIGHT_LIGHT, FONT_WEIGHT_REGULAR, FONT_WEIGHT_SEMIBOLD, } from '../affine-shared/services/index.js';
1
+ import { FONT_SIZE_LABEL, FONT_STYLE_ITALIC, FONT_WEIGHT_BOLD, FONT_WEIGHT_LIGHT, FONT_WEIGHT_REGULAR, FONT_WEIGHT_SEMIBOLD, } from '../affine-shared/services/index.js';
2
2
  /**
3
3
  * The shared text toolbar's own wordings (`createTextActions`, rendered by
4
4
  * every framework that draws real text — shape, mindmap, connector,
@@ -11,6 +11,7 @@ export const TEXT_TOOLBAR_FONT_SIZE = FONT_SIZE_LABEL;
11
11
  export const TEXT_TOOLBAR_FONT_WEIGHT_LIGHT = FONT_WEIGHT_LIGHT;
12
12
  export const TEXT_TOOLBAR_FONT_WEIGHT_REGULAR = FONT_WEIGHT_REGULAR;
13
13
  export const TEXT_TOOLBAR_FONT_WEIGHT_SEMIBOLD = FONT_WEIGHT_SEMIBOLD;
14
+ export const TEXT_TOOLBAR_FONT_WEIGHT_BOLD = FONT_WEIGHT_BOLD;
14
15
  export const TEXT_TOOLBAR_FONT_STYLE_ITALIC = FONT_STYLE_ITALIC;
15
16
  export const TEXT_TOOLBAR_FONT = [
16
17
  'com.labre.text-toolbar.font',
@@ -28,6 +29,17 @@ export const TEXT_TOOLBAR_ALIGNMENT = [
28
29
  'com.labre.text-toolbar.alignment',
29
30
  'Alignment',
30
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
+ ];
31
43
  /**
32
44
  * The three alignment values — a different concept from a mindmap's own
33
45
  * "Left" / "Right" layout direction (`gfx/mindmap`'s
@@ -57,6 +69,7 @@ export const TEXT_WORDINGS = [
57
69
  TEXT_TOOLBAR_TEXT_COLOR,
58
70
  TEXT_TOOLBAR_FONT_STYLE,
59
71
  TEXT_TOOLBAR_ALIGNMENT,
72
+ TEXT_TOOLBAR_ALIGNMENT_MENU_ARIA,
60
73
  TEXT_ALIGN_LEFT,
61
74
  TEXT_ALIGN_CENTER,
62
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;
@@ -195,14 +195,18 @@ export const CodeExtension = InlineMarkdownExtension({
195
195
  });
196
196
  // typographic replacement: word -- + space => word — + space
197
197
  // not convert: --- + space (divider shortcut), --flag + space, inside inline code
198
+ // an odd number of backticks before the dashes means a code span is still open:
199
+ // the closing backtick has not run yet, so the dashes are code in the making
198
200
  export const EmDashExtension = InlineMarkdownExtension({
199
201
  name: 'em-dash',
200
202
  pattern: /(?:^|[^-])--\s$/,
201
- action: ({ inlineEditor, inlineRange, undoManager }) => {
203
+ action: ({ inlineEditor, inlineRange, prefixText, undoManager }) => {
202
204
  const dashes = { index: inlineRange.index - 3, length: 2 };
203
205
  const format = inlineEditor.getFormat(dashes);
204
206
  if (format.code)
205
207
  return;
208
+ if ((prefixText.match(/`/g) ?? []).length % 2 === 1)
209
+ return;
206
210
  undoManager.stopCapturing();
207
211
  inlineEditor.insertText(dashes, '—', format);
208
212
  inlineEditor.setInlineRange({
@@ -2,14 +2,40 @@ export declare enum ConnectorEndpoint {
2
2
  Front = "Front",
3
3
  Rear = "Rear"
4
4
  }
5
+ /**
6
+ * The endpoint head painted at each end of a connector.
7
+ *
8
+ * **These string values are PERSISTED.** Every connector stores two of them
9
+ * (`frontEndpointStyle` / `rearEndpointStyle`, see
10
+ * `../elements/connector/connector.ts`), so the enum is **append-only**: a
11
+ * member may be added, never renamed, never removed, and never given a
12
+ * different string value. Renaming one would silently turn every stored
13
+ * connector that carries it into an unknown style.
14
+ *
15
+ * **Adding a member is safe in both directions.** The canvas `renderEndpoint`
16
+ * switch (`@labre/affine-gfx-connector`) and the DOM renderer's
17
+ * `createArrowMarker` both have **no `default` branch** on purpose: a client
18
+ * built before a member was added simply paints no head for it. The connector
19
+ * itself, its geometry, its label and its bindings all still load and still
20
+ * round-trip — degraded, never broken. The reverse is free: an older document
21
+ * only ever carries members that already existed.
22
+ *
23
+ * `TriangleHollow` and `DiamondHollow` are the UML 2.5.1 heads — a hollow
24
+ * closed triangle for generalization and realization, a hollow diamond for
25
+ * shared aggregation. They are the same geometry as `Triangle` / `Diamond`,
26
+ * filled with the notation card fill instead of the stroke colour; see
27
+ * `docs/adr/0016-hollow-endpoint-styles.md`.
28
+ */
5
29
  export declare enum PointStyle {
6
30
  Arrow = "Arrow",
7
31
  Circle = "Circle",
8
32
  Diamond = "Diamond",
9
33
  None = "None",
10
- Triangle = "Triangle"
34
+ Triangle = "Triangle",
35
+ TriangleHollow = "TriangleHollow",
36
+ DiamondHollow = "DiamondHollow"
11
37
  }
12
- export declare const PointStyleMap: Record<PointStyle, "Arrow" | "Circle" | "Diamond" | "None" | "Triangle">;
38
+ export declare const PointStyleMap: Record<PointStyle, "Arrow" | "Circle" | "Diamond" | "None" | "Triangle" | "TriangleHollow" | "DiamondHollow">;
13
39
  export declare const DEFAULT_FRONT_ENDPOINT_STYLE = PointStyle.None;
14
40
  export declare const DEFAULT_REAR_ENDPOINT_STYLE = PointStyle.Arrow;
15
41
  export declare const CONNECTOR_LABEL_MAX_WIDTH = 280;
@@ -4,6 +4,30 @@ export var ConnectorEndpoint;
4
4
  ConnectorEndpoint["Front"] = "Front";
5
5
  ConnectorEndpoint["Rear"] = "Rear";
6
6
  })(ConnectorEndpoint || (ConnectorEndpoint = {}));
7
+ /**
8
+ * The endpoint head painted at each end of a connector.
9
+ *
10
+ * **These string values are PERSISTED.** Every connector stores two of them
11
+ * (`frontEndpointStyle` / `rearEndpointStyle`, see
12
+ * `../elements/connector/connector.ts`), so the enum is **append-only**: a
13
+ * member may be added, never renamed, never removed, and never given a
14
+ * different string value. Renaming one would silently turn every stored
15
+ * connector that carries it into an unknown style.
16
+ *
17
+ * **Adding a member is safe in both directions.** The canvas `renderEndpoint`
18
+ * switch (`@labre/affine-gfx-connector`) and the DOM renderer's
19
+ * `createArrowMarker` both have **no `default` branch** on purpose: a client
20
+ * built before a member was added simply paints no head for it. The connector
21
+ * itself, its geometry, its label and its bindings all still load and still
22
+ * round-trip — degraded, never broken. The reverse is free: an older document
23
+ * only ever carries members that already existed.
24
+ *
25
+ * `TriangleHollow` and `DiamondHollow` are the UML 2.5.1 heads — a hollow
26
+ * closed triangle for generalization and realization, a hollow diamond for
27
+ * shared aggregation. They are the same geometry as `Triangle` / `Diamond`,
28
+ * filled with the notation card fill instead of the stroke colour; see
29
+ * `docs/adr/0016-hollow-endpoint-styles.md`.
30
+ */
7
31
  export var PointStyle;
8
32
  (function (PointStyle) {
9
33
  PointStyle["Arrow"] = "Arrow";
@@ -11,6 +35,8 @@ export var PointStyle;
11
35
  PointStyle["Diamond"] = "Diamond";
12
36
  PointStyle["None"] = "None";
13
37
  PointStyle["Triangle"] = "Triangle";
38
+ PointStyle["TriangleHollow"] = "TriangleHollow";
39
+ PointStyle["DiamondHollow"] = "DiamondHollow";
14
40
  })(PointStyle || (PointStyle = {}));
15
41
  export const PointStyleMap = createEnumMap(PointStyle);
16
42
  export const DEFAULT_FRONT_ENDPOINT_STYLE = PointStyle.None;
@@ -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";
@@ -98,7 +98,7 @@ let BpmnPoolElementModel = (() => {
98
98
  _name_decorators = [field('Pool')];
99
99
  _resizeEnabled_decorators = [field(true)];
100
100
  _rotate_decorators = [field(0)];
101
- _xywh_decorators = [field()];
101
+ _xywh_decorators = [field('[0,0,0,0]')];
102
102
  _lanes_decorators = [field()];
103
103
  __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
104
104
  __esDecorate(this, null, _resizeEnabled_decorators, { kind: "accessor", name: "resizeEnabled", static: false, private: false, access: { has: obj => "resizeEnabled" in obj, get: obj => obj.resizeEnabled, set: (obj, value) => { obj.resizeEnabled = value; } }, metadata: _metadata }, _resizeEnabled_initializers, _resizeEnabled_extraInitializers);
@@ -109,7 +109,7 @@ let BrushElementModel = (() => {
109
109
  ...(instance.points[i][2] !== undefined ? [instance.points[i][2]] : []),
110
110
  ]),
111
111
  };
112
- }), field()];
112
+ }), field('[0,0,0,0]')];
113
113
  __esDecorate(this, null, _color_decorators, { kind: "accessor", name: "color", static: false, private: false, access: { has: obj => "color" in obj, get: obj => obj.color, set: (obj, value) => { obj.color = value; } }, metadata: _metadata }, _color_initializers, _color_extraInitializers);
114
114
  __esDecorate(this, null, _lineWidth_decorators, { kind: "accessor", name: "lineWidth", static: false, private: false, access: { has: obj => "lineWidth" in obj, get: obj => obj.lineWidth, set: (obj, value) => { obj.lineWidth = value; } }, metadata: _metadata }, _lineWidth_initializers, _lineWidth_extraInitializers);
115
115
  __esDecorate(this, null, _points_decorators, { kind: "accessor", name: "points", static: false, private: false, access: { has: obj => "points" in obj, get: obj => obj.points, set: (obj, value) => { obj.points = value; } }, metadata: _metadata }, _points_initializers, _points_extraInitializers);
@@ -93,7 +93,7 @@ let C4BoardElementModel = (() => {
93
93
  _name_decorators = [field('C4 diagram')];
94
94
  _resizeEnabled_decorators = [field(true)];
95
95
  _rotate_decorators = [field(0)];
96
- _xywh_decorators = [field()];
96
+ _xywh_decorators = [field('[0,0,0,0]')];
97
97
  _level_decorators = [field()];
98
98
  __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
99
99
  __esDecorate(this, null, _resizeEnabled_decorators, { kind: "accessor", name: "resizeEnabled", static: false, private: false, access: { has: obj => "resizeEnabled" in obj, get: obj => obj.resizeEnabled, set: (obj, value) => { obj.resizeEnabled = value; } }, metadata: _metadata }, _resizeEnabled_initializers, _resizeEnabled_extraInitializers);
@@ -67,7 +67,7 @@ let C4BoundaryElementModel = (() => {
67
67
  _name_decorators = [field('Boundary')];
68
68
  _resizeEnabled_decorators = [field(true)];
69
69
  _rotate_decorators = [field(0)];
70
- _xywh_decorators = [field()];
70
+ _xywh_decorators = [field('[0,0,0,0]')];
71
71
  _variant_decorators = [field()];
72
72
  __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
73
73
  __esDecorate(this, null, _resizeEnabled_decorators, { kind: "accessor", name: "resizeEnabled", static: false, private: false, access: { has: obj => "resizeEnabled" in obj, get: obj => obj.resizeEnabled, set: (obj, value) => { obj.resizeEnabled = value; } }, metadata: _metadata }, _resizeEnabled_initializers, _resizeEnabled_extraInitializers);