@atlaskit/editor-common 115.14.0 → 115.15.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 (35) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/analytics/types/enums.js +4 -0
  3. package/dist/cjs/monitoring/error.js +1 -1
  4. package/dist/cjs/styles/shared/table.js +1 -1
  5. package/dist/cjs/ui/DropList/index.js +1 -1
  6. package/dist/cjs/ui/Popup/utils.js +2 -2
  7. package/dist/es2019/analytics/types/enums.js +4 -0
  8. package/dist/es2019/monitoring/error.js +1 -1
  9. package/dist/es2019/styles/shared/table.js +12 -2
  10. package/dist/es2019/ui/DropList/index.js +1 -1
  11. package/dist/es2019/ui/Popup/utils.js +2 -2
  12. package/dist/esm/analytics/types/enums.js +4 -0
  13. package/dist/esm/monitoring/error.js +1 -1
  14. package/dist/esm/styles/shared/table.js +1 -1
  15. package/dist/esm/ui/DropList/index.js +1 -1
  16. package/dist/esm/ui/Popup/utils.js +2 -2
  17. package/dist/types/analytics/types/contextual-typeahead-events.d.ts +39 -1
  18. package/dist/types/analytics/types/enums.d.ts +2 -0
  19. package/dist/types/block-menu/index.d.ts +1 -1
  20. package/dist/types/extensions.d.ts +2 -2
  21. package/dist/types/selection/index.d.ts +1 -1
  22. package/dist/types/styles/index.d.ts +1 -1
  23. package/dist/types/transforms/index.d.ts +3 -3
  24. package/dist/types/ui-color/index.d.ts +1 -1
  25. package/dist/types/validator.d.ts +1 -1
  26. package/dist/types-ts4.5/analytics/types/contextual-typeahead-events.d.ts +39 -1
  27. package/dist/types-ts4.5/analytics/types/enums.d.ts +2 -0
  28. package/dist/types-ts4.5/block-menu/index.d.ts +1 -1
  29. package/dist/types-ts4.5/extensions.d.ts +2 -2
  30. package/dist/types-ts4.5/selection/index.d.ts +1 -1
  31. package/dist/types-ts4.5/styles/index.d.ts +1 -1
  32. package/dist/types-ts4.5/transforms/index.d.ts +3 -3
  33. package/dist/types-ts4.5/ui-color/index.d.ts +1 -1
  34. package/dist/types-ts4.5/validator.d.ts +1 -1
  35. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 115.15.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`edeed2f3314cd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/edeed2f3314cd) -
8
+ Fix rounded table edge interaction overlays
9
+ - Updated dependencies
10
+
11
+ ## 115.15.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`9f6b6c9fffc50`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9f6b6c9fffc50) -
16
+ Add analytics for the on-device (local LLM) autocomplete slow lane: fire a `localModelLoaded`
17
+ track event when the engine initialises successfully (with load duration and GPU info) and a
18
+ `localModelLoadFailed` track event when it fails, categorising the reason and capturing WebGPU
19
+ capability diagnostics to surface user-machine limitations.
20
+
3
21
  ## 115.14.0
4
22
 
5
23
  ### Minor Changes
@@ -230,6 +230,10 @@ var ACTION = exports.ACTION = /*#__PURE__*/function (ACTION) {
230
230
  ACTION["SUGGESTION_INSERTED"] = "suggestionInserted";
231
231
  ACTION["SUGGESTION_DISMISSED"] = "suggestionDismissed";
232
232
  ACTION["SUGGESTION_VIEWED"] = "suggestionViewed";
233
+ // fired when the on-device autocomplete LLM finishes loading/starting
234
+ ACTION["LOCAL_MODEL_LOADED"] = "localModelLoaded";
235
+ // fired when the on-device autocomplete LLM fails to load/start
236
+ ACTION["LOCAL_MODEL_LOAD_FAILED"] = "localModelLoadFailed";
233
237
  ACTION["TABLE_WIDTH_INFO"] = "tableWidthInformation";
234
238
  ACTION["SUPPRESSED"] = "suppressed";
235
239
  return ACTION;
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
19
19
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
20
20
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
21
21
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
22
- var packageVersion = "115.13.0";
22
+ var packageVersion = "115.15.0";
23
23
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
24
24
  // Remove URL as it has UGC
25
25
  // Ignored via go/ees007
@@ -69,7 +69,7 @@ var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
69
69
  var tableSharedStyle = exports.tableSharedStyle = function tableSharedStyle() {
70
70
  var browser = (0, _browser.getBrowserInfo)();
71
71
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Appears safe to auto-fix, but leaving it up to the team to remediate as the readability only gets worse with autofixing
72
- return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t\t", "\n\t\t.", " {\n\t\t\tposition: relative;\n\t\t\tmargin: 0 auto ", ";\n\t\t\tbox-sizing: border-box;\n\n\t\t\t/**\n\t\t\t * Fix block top alignment inside table cells.\n\t\t\t */\n\t\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t\t", "\n\t\t}\n\t\t.", "[data-number-column='true'] {\n\t\t\tpadding-left: ", "px;\n\t\t\tclear: both;\n\t\t}\n\n\t\t.", " {\n\t\t\twill-change: width, margin-left;\n\t\t}\n\n\t\t.", " table {\n\t\t\twill-change: width;\n\t\t}\n\t\t.", " > table {\n\t\t\tmargin: ", " 0 0 0;\n\t\t}\n\n\t\t.", " > table,\n\t\t.", " > table {\n\t\t\tmargin: ", " ", " 0 0;\n\t\t}\n\n\t\t/* support panel nested in table */\n\t\t", "\n\n\t\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\t\tborder-collapse: collapse;\n\t\t\t", "\n\t\t\ttable-layout: fixed;\n\t\t\tfont-size: 1em;\n\t\t\twidth: 100%;\n\t\t\t", "\n\n\t\t\t&[data-autosize='true'] {\n\t\t\t\ttable-layout: auto;\n\t\t\t}\n\n\t\t\t& {\n\t\t\t\t* {\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t}\n\t\t\t\thr {\n\t\t\t\t\tbox-sizing: content-box;\n\t\t\t\t}\n\n\t\t\t\ttbody {\n\t\t\t\t\tborder-bottom: none;\n\t\t\t\t}\n\t\t\t\tth td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th,\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tmin-width: ", "px;\n\t\t\t\t\tfont-weight: ", ";\n\t\t\t\t\tvertical-align: top;\n\t\t\t\t\t", "\n\t\t\t\t\tborder: 1px solid ", ";\n\t\t\t\t\tborder-right-width: 0;\n\t\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\t\tpadding: ", ";\n\t\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t\t", "\n\n\t\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t\tth {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t\t", " {\n\t\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t", "\n\t"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Fake side borders are not needed when the rounded overlay owns the outer border. */\n\t\t\t\t.".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t\t") : ".".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 1px;\n\t\t\t\theight: calc(100% - ", "var(--ds-space-300, 24px)", ");\n\t\t\t\tbackground: ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", "var(--ds-space-300, 24px)", ";\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, " {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true'] {\n\t\t\t\tleft: ").concat(_editorSharedStyles.akEditorTableNumberColumnWidth - 1, "px;\n\t\t\t}"), _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, _TableSharedCssClassName.TableSharedCssClassName.TABLE_RESIZER_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_RESIZER_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') ? ".".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #0B120E24)", ";\n\t\t}") : '', _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_STICKY_WRAPPER, (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Keep a transparent border so the collapsed border model reserves the same 1px slot\n\t\t\t on the table edge; the ::after overlay draws the visible rounded border instead. */\n\t\t\tborder: ".concat(tableCellBorderWidth, "px solid transparent;") : "border: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\tborder-left-color: transparent;\n\t\t\tborder-right-color: transparent;"), (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "position: relative;\n\n\t\t\t/* Table-width outer-border owner for overflow-safe rounded corners. */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: 0;\n\t\t\t\tborder: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tborder-radius: ", "var(--ds-radius-medium, 6px)", ";\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}") : '', "var(--ds-background-neutral-subtle, #00000000)", tableCellMinWidth, "var(--ds-font-weight-regular, 400)", (0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_table_menu_updates', 'isEnabled', true) ? "&[data-valign='middle'] {\n\t\t\t\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t&[data-valign='bottom'] {\n\t\t\t\t\t\t\t\tvertical-align: bottom;\n\t\t\t\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtler, #DDDEE1)", "var(--ds-space-100, 8px)", browser.gecko || browser.ie || browser.mac && browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Let the wrapper overlay own the outer table perimeter.\n\t\t\t\t data-reaches-* attributes are set by the TableCell node view. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top] {\n\t\t\t\t\tborder-top-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th[data-reaches-left],\n\t\t\t\t> tbody > tr > td[data-reaches-left] {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-left]::after {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-bottom]::after,\n\t\t\t\t> tbody > tr > th[data-reaches-bottom]::after {\n\t\t\t\t\tborder-bottom-color: transparent;\n\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtlest, #F0F1F2)", (0, _expValEquals.expValEquals)('platform_editor_native_anchor_with_dnd', 'isEnabled', true) ? '&:not(.danger)' : '&:not([style]):not(.danger)', _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, #FFFFFF)", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, #0B120E24)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
72
+ return (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t\t", "\n\t\t.", " {\n\t\t\tposition: relative;\n\t\t\tmargin: 0 auto ", ";\n\t\t\tbox-sizing: border-box;\n\n\t\t\t/**\n\t\t\t * Fix block top alignment inside table cells.\n\t\t\t */\n\t\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t\t", "\n\t\t}\n\t\t.", "[data-number-column='true'] {\n\t\t\tpadding-left: ", "px;\n\t\t\tclear: both;\n\t\t}\n\n\t\t.", " {\n\t\t\twill-change: width, margin-left;\n\t\t}\n\n\t\t.", " table {\n\t\t\twill-change: width;\n\t\t}\n\t\t.", " > table {\n\t\t\tmargin: ", " 0 0 0;\n\t\t}\n\n\t\t.", " > table,\n\t\t.", " > table {\n\t\t\tmargin: ", " ", " 0 0;\n\t\t}\n\n\t\t/* support panel nested in table */\n\t\t", "\n\n\t\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\t\tborder-collapse: collapse;\n\t\t\t", "\n\t\t\ttable-layout: fixed;\n\t\t\tfont-size: 1em;\n\t\t\twidth: 100%;\n\t\t\t", "\n\n\t\t\t&[data-autosize='true'] {\n\t\t\t\ttable-layout: auto;\n\t\t\t}\n\n\t\t\t& {\n\t\t\t\t* {\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t}\n\t\t\t\thr {\n\t\t\t\t\tbox-sizing: content-box;\n\t\t\t\t}\n\n\t\t\t\ttbody {\n\t\t\t\t\tborder-bottom: none;\n\t\t\t\t}\n\t\t\t\tth td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th,\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tmin-width: ", "px;\n\t\t\t\t\tfont-weight: ", ";\n\t\t\t\t\tvertical-align: top;\n\t\t\t\t\t", "\n\t\t\t\t\tborder: 1px solid ", ";\n\t\t\t\t\tborder-right-width: 0;\n\t\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\t\tpadding: ", ";\n\t\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t\t", "\n\n\t\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t\tth {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t\t", " {\n\t\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t", "\n\t"])), (0, _tableCell.tableCellBackgroundStyleOverride)(), _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Fake side borders are not needed when the rounded overlay owns the outer border. */\n\t\t\t\t.".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t\t") : ".".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 1px;\n\t\t\t\theight: calc(100% - ", "var(--ds-space-300, 24px)", ");\n\t\t\t\tbackground: ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", "var(--ds-space-300, 24px)", ";\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_RIGHT_BORDER, " {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t.").concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true'] {\n\t\t\t\tleft: ").concat(_editorSharedStyles.akEditorTableNumberColumnWidth - 1, "px;\n\t\t\t}"), _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _editorSharedStyles.akEditorTableNumberColumnWidth - 1, _TableSharedCssClassName.TableSharedCssClassName.TABLE_RESIZER_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_RESIZER_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') ? ".".concat(_TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #0B120E24)", ";\n\t\t}") : '', _TableSharedCssClassName.TableSharedCssClassName.TABLE_CONTAINER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_NODE_WRAPPER, _TableSharedCssClassName.TableSharedCssClassName.TABLE_STICKY_WRAPPER, (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Keep a transparent border so the collapsed border model reserves the same 1px slot\n\t\t\t on the table edge; the ::after overlay draws the visible rounded border instead. */\n\t\t\tborder: ".concat(tableCellBorderWidth, "px solid transparent;") : "border: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\tborder-left-color: transparent;\n\t\t\tborder-right-color: transparent;"), (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "position: relative;\n\n\t\t\t/* Table-width outer-border owner for overflow-safe rounded corners. */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: -0.5px;\n\t\t\t\tborder: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tborder-radius: ", "var(--ds-radius-xlarge, 12px)", ";\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}") : '', "var(--ds-background-neutral-subtle, #00000000)", tableCellMinWidth, "var(--ds-font-weight-regular, 400)", (0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_table_menu_updates', 'isEnabled', true) ? "&[data-valign='middle'] {\n\t\t\t\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t&[data-valign='bottom'] {\n\t\t\t\t\t\t\t\tvertical-align: bottom;\n\t\t\t\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtler, #DDDEE1)", "var(--ds-space-100, 8px)", browser.gecko || browser.ie || browser.mac && browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", (0, _expValEquals.expValEquals)('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Let the wrapper overlay own the outer table perimeter.\n\t\t\t\t data-reaches-* attributes are set by the TableCell node view. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top] {\n\t\t\t\t\tborder-top-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th[data-reaches-left],\n\t\t\t\t> tbody > tr > td[data-reaches-left] {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-left]::after {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-bottom]::after,\n\t\t\t\t> tbody > tr > th[data-reaches-bottom]::after {\n\t\t\t\t\tborder-bottom-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t/* The rounded-table overlay owns transparent perimeter borders.\n\t\t\t\t Paint edge cell backgrounds into that reserved border area so coloured\n\t\t\t\t first/last rows do not show the page background through 1px seams. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top],\n\t\t\t\t> tbody > tr > th[data-reaches-bottom],\n\t\t\t\t> tbody > tr > td[data-reaches-bottom] {\n\t\t\t\t\tbackground-clip: border-box;\n\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtlest, #F0F1F2)", (0, _expValEquals.expValEquals)('platform_editor_native_anchor_with_dnd', 'isEnabled', true) ? '&:not(.danger)' : '&:not([style]):not(.danger)', _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, #FFFFFF)", _editorSharedStyles.akEditorSelectedNodeClassName, "var(--ds-border, #0B120E24)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, (0, _editorSharedStyles.overflowShadow)({
73
73
  leftCoverWidth: "var(--ds-space-300, 24px)"
74
74
  }), "var(--ds-background-neutral, #0515240F)", _codeBlock.CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, "var(--ds-background-neutral, #0515240F)", (0, _editorSharedStyles.overflowShadow)({
75
75
  leftCoverWidth: "var(--ds-space-300, 24px)"
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "115.13.0";
27
+ var packageVersion = "115.15.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var fadeIn = (0, _react2.keyframes)({
@@ -37,7 +37,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
37
37
  /**
38
38
  * Determines the optimal vertical placement ('top' or 'bottom') for a popup relative to a target element.
39
39
  * Decides if given fitHeight fits below or above the target taking boundaries into account.
40
- *
40
+ *
41
41
  * @param target - The target element to position the popup relative to
42
42
  * @param boundariesElement - The boundaries element that constrains the popup positioning
43
43
  * @param fitHeight - The desired height of the popup content
@@ -120,7 +120,7 @@ function getHorizontalPlacement(target, boundariesElement, fitWidth, alignX, for
120
120
 
121
121
  /**
122
122
  * Calculates the optimal placement for a popup element in both vertical and horizontal directions.
123
- *
123
+ *
124
124
  * @param target - The target element to position the popup relative to
125
125
  * @param boundariesElement - The boundaries element that constrains the popup positioning
126
126
  * @param fitWidth - The desired width of the popup content
@@ -226,6 +226,10 @@ export let ACTION = /*#__PURE__*/function (ACTION) {
226
226
  ACTION["SUGGESTION_INSERTED"] = "suggestionInserted";
227
227
  ACTION["SUGGESTION_DISMISSED"] = "suggestionDismissed";
228
228
  ACTION["SUGGESTION_VIEWED"] = "suggestionViewed";
229
+ // fired when the on-device autocomplete LLM finishes loading/starting
230
+ ACTION["LOCAL_MODEL_LOADED"] = "localModelLoaded";
231
+ // fired when the on-device autocomplete LLM fails to load/start
232
+ ACTION["LOCAL_MODEL_LOAD_FAILED"] = "localModelLoadFailed";
229
233
  ACTION["TABLE_WIDTH_INFO"] = "tableWidthInformation";
230
234
  ACTION["SUPPRESSED"] = "suppressed";
231
235
  return ACTION;
@@ -4,7 +4,7 @@ import { isFedRamp } from './environment';
4
4
  import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
5
5
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
6
6
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
7
- const packageVersion = "115.13.0";
7
+ const packageVersion = "115.15.0";
8
8
  const sanitiseSentryEvents = (data, _hint) => {
9
9
  // Remove URL as it has UGC
10
10
  // Ignored via go/ees007
@@ -148,9 +148,9 @@ const tableSharedStyle = () => {
148
148
  &::after {
149
149
  content: '';
150
150
  position: absolute;
151
- inset: 0;
151
+ inset: -0.5px;
152
152
  border: ${tableCellBorderWidth}px solid ${"var(--ds-background-accent-gray-subtler, #DDDEE1)"};
153
- border-radius: ${"var(--ds-radius-medium, 6px)"};
153
+ border-radius: ${"var(--ds-radius-xlarge, 12px)"};
154
154
  pointer-events: none;
155
155
  z-index: 1;
156
156
  }` : ''}
@@ -225,6 +225,16 @@ const tableSharedStyle = () => {
225
225
  > tbody > tr > td[data-reaches-bottom]::after,
226
226
  > tbody > tr > th[data-reaches-bottom]::after {
227
227
  border-bottom-color: transparent;
228
+ }
229
+
230
+ /* The rounded-table overlay owns transparent perimeter borders.
231
+ Paint edge cell backgrounds into that reserved border area so coloured
232
+ first/last rows do not show the page background through 1px seams. */
233
+ > tbody > tr > th[data-reaches-top],
234
+ > tbody > tr > td[data-reaches-top],
235
+ > tbody > tr > th[data-reaches-bottom],
236
+ > tbody > tr > td[data-reaches-bottom] {
237
+ background-clip: border-box;
228
238
  }` : ''}
229
239
  th {
230
240
  background-color: ${"var(--ds-background-accent-gray-subtlest, #F0F1F2)"};
@@ -14,7 +14,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import { fg } from '@atlaskit/platform-feature-flags';
15
15
  import Layer from '../Layer';
16
16
  const packageName = "@atlaskit/editor-common";
17
- const packageVersion = "115.13.0";
17
+ const packageVersion = "115.15.0";
18
18
  const halfFocusRing = 1;
19
19
  const dropOffset = '0, 8';
20
20
  const fadeIn = keyframes({
@@ -3,7 +3,7 @@ import { isTextNode } from './isTextNode';
3
3
  /**
4
4
  * Determines the optimal vertical placement ('top' or 'bottom') for a popup relative to a target element.
5
5
  * Decides if given fitHeight fits below or above the target taking boundaries into account.
6
- *
6
+ *
7
7
  * @param target - The target element to position the popup relative to
8
8
  * @param boundariesElement - The boundaries element that constrains the popup positioning
9
9
  * @param fitHeight - The desired height of the popup content
@@ -91,7 +91,7 @@ export function getHorizontalPlacement(target, boundariesElement, fitWidth, alig
91
91
 
92
92
  /**
93
93
  * Calculates the optimal placement for a popup element in both vertical and horizontal directions.
94
- *
94
+ *
95
95
  * @param target - The target element to position the popup relative to
96
96
  * @param boundariesElement - The boundaries element that constrains the popup positioning
97
97
  * @param fitWidth - The desired width of the popup content
@@ -226,6 +226,10 @@ export var ACTION = /*#__PURE__*/function (ACTION) {
226
226
  ACTION["SUGGESTION_INSERTED"] = "suggestionInserted";
227
227
  ACTION["SUGGESTION_DISMISSED"] = "suggestionDismissed";
228
228
  ACTION["SUGGESTION_VIEWED"] = "suggestionViewed";
229
+ // fired when the on-device autocomplete LLM finishes loading/starting
230
+ ACTION["LOCAL_MODEL_LOADED"] = "localModelLoaded";
231
+ // fired when the on-device autocomplete LLM fails to load/start
232
+ ACTION["LOCAL_MODEL_LOAD_FAILED"] = "localModelLoadFailed";
229
233
  ACTION["TABLE_WIDTH_INFO"] = "tableWidthInformation";
230
234
  ACTION["SUPPRESSED"] = "suppressed";
231
235
  return ACTION;
@@ -10,7 +10,7 @@ import { isFedRamp } from './environment';
10
10
  import { normaliseSentryBreadcrumbs, SERIALIZABLE_ATTRIBUTES } from './normalise-sentry-breadcrumbs';
11
11
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
12
12
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
13
- var packageVersion = "115.13.0";
13
+ var packageVersion = "115.15.0";
14
14
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
15
15
  // Remove URL as it has UGC
16
16
  // Ignored via go/ees007
@@ -49,7 +49,7 @@ var firstNodeWithNotMarginTop = function firstNodeWithNotMarginTop() {
49
49
  var tableSharedStyle = function tableSharedStyle() {
50
50
  var browser = getBrowserInfo();
51
51
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Appears safe to auto-fix, but leaving it up to the team to remediate as the readability only gets worse with autofixing
52
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t\t", "\n\t\t.", " {\n\t\t\tposition: relative;\n\t\t\tmargin: 0 auto ", ";\n\t\t\tbox-sizing: border-box;\n\n\t\t\t/**\n\t\t\t * Fix block top alignment inside table cells.\n\t\t\t */\n\t\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t\t", "\n\t\t}\n\t\t.", "[data-number-column='true'] {\n\t\t\tpadding-left: ", "px;\n\t\t\tclear: both;\n\t\t}\n\n\t\t.", " {\n\t\t\twill-change: width, margin-left;\n\t\t}\n\n\t\t.", " table {\n\t\t\twill-change: width;\n\t\t}\n\t\t.", " > table {\n\t\t\tmargin: ", " 0 0 0;\n\t\t}\n\n\t\t.", " > table,\n\t\t.", " > table {\n\t\t\tmargin: ", " ", " 0 0;\n\t\t}\n\n\t\t/* support panel nested in table */\n\t\t", "\n\n\t\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\t\tborder-collapse: collapse;\n\t\t\t", "\n\t\t\ttable-layout: fixed;\n\t\t\tfont-size: 1em;\n\t\t\twidth: 100%;\n\t\t\t", "\n\n\t\t\t&[data-autosize='true'] {\n\t\t\t\ttable-layout: auto;\n\t\t\t}\n\n\t\t\t& {\n\t\t\t\t* {\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t}\n\t\t\t\thr {\n\t\t\t\t\tbox-sizing: content-box;\n\t\t\t\t}\n\n\t\t\t\ttbody {\n\t\t\t\t\tborder-bottom: none;\n\t\t\t\t}\n\t\t\t\tth td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th,\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tmin-width: ", "px;\n\t\t\t\t\tfont-weight: ", ";\n\t\t\t\t\tvertical-align: top;\n\t\t\t\t\t", "\n\t\t\t\t\tborder: 1px solid ", ";\n\t\t\t\t\tborder-right-width: 0;\n\t\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\t\tpadding: ", ";\n\t\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t\t", "\n\n\t\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t\tth {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t\t", " {\n\t\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t", "\n\t"])), tableCellBackgroundStyleOverride(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Fake side borders are not needed when the rounded overlay owns the outer border. */\n\t\t\t\t.".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t\t") : ".".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 1px;\n\t\t\t\theight: calc(100% - ", "var(--ds-space-300, 24px)", ");\n\t\t\t\tbackground: ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", "var(--ds-space-300, 24px)", ";\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, " {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true'] {\n\t\t\t\tleft: ").concat(akEditorTableNumberColumnWidth - 1, "px;\n\t\t\t}"), TableSharedCssClassName.TABLE_CONTAINER, akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", fg('platform_editor_bordered_panel_nested_in_table') ? ".".concat(TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #0B120E24)", ";\n\t\t}") : '', TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Keep a transparent border so the collapsed border model reserves the same 1px slot\n\t\t\t on the table edge; the ::after overlay draws the visible rounded border instead. */\n\t\t\tborder: ".concat(tableCellBorderWidth, "px solid transparent;") : "border: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\tborder-left-color: transparent;\n\t\t\tborder-right-color: transparent;"), expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "position: relative;\n\n\t\t\t/* Table-width outer-border owner for overflow-safe rounded corners. */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: 0;\n\t\t\t\tborder: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tborder-radius: ", "var(--ds-radius-medium, 6px)", ";\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}") : '', "var(--ds-background-neutral-subtle, #00000000)", tableCellMinWidth, "var(--ds-font-weight-regular, 400)", expValEqualsNoExposure('platform_editor_table_menu_updates', 'isEnabled', true) ? "&[data-valign='middle'] {\n\t\t\t\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t&[data-valign='bottom'] {\n\t\t\t\t\t\t\t\tvertical-align: bottom;\n\t\t\t\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtler, #DDDEE1)", "var(--ds-space-100, 8px)", browser.gecko || browser.ie || browser.mac && browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Let the wrapper overlay own the outer table perimeter.\n\t\t\t\t data-reaches-* attributes are set by the TableCell node view. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top] {\n\t\t\t\t\tborder-top-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th[data-reaches-left],\n\t\t\t\t> tbody > tr > td[data-reaches-left] {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-left]::after {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-bottom]::after,\n\t\t\t\t> tbody > tr > th[data-reaches-bottom]::after {\n\t\t\t\t\tborder-bottom-color: transparent;\n\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtlest, #F0F1F2)", expValEquals('platform_editor_native_anchor_with_dnd', 'isEnabled', true) ? '&:not(.danger)' : '&:not([style]):not(.danger)', CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, #FFFFFF)", akEditorSelectedNodeClassName, "var(--ds-border, #0B120E24)", CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, overflowShadow({
52
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t\t", "\n\t\t.", " {\n\t\t\tposition: relative;\n\t\t\tmargin: 0 auto ", ";\n\t\t\tbox-sizing: border-box;\n\n\t\t\t/**\n\t\t\t * Fix block top alignment inside table cells.\n\t\t\t */\n\t\t\t.decisionItemView-content-wrap:first-of-type > div {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t\t", "\n\t\t}\n\t\t.", "[data-number-column='true'] {\n\t\t\tpadding-left: ", "px;\n\t\t\tclear: both;\n\t\t}\n\n\t\t.", " {\n\t\t\twill-change: width, margin-left;\n\t\t}\n\n\t\t.", " table {\n\t\t\twill-change: width;\n\t\t}\n\t\t.", " > table {\n\t\t\tmargin: ", " 0 0 0;\n\t\t}\n\n\t\t.", " > table,\n\t\t.", " > table {\n\t\t\tmargin: ", " ", " 0 0;\n\t\t}\n\n\t\t/* support panel nested in table */\n\t\t", "\n\n\t\t/* avoid applying styles to nested tables (possible via extensions) */\n\t.", " > table,\n\t.", " > table,\n\t.", " > table {\n\t\t\tborder-collapse: collapse;\n\t\t\t", "\n\t\t\ttable-layout: fixed;\n\t\t\tfont-size: 1em;\n\t\t\twidth: 100%;\n\t\t\t", "\n\n\t\t\t&[data-autosize='true'] {\n\t\t\t\ttable-layout: auto;\n\t\t\t}\n\n\t\t\t& {\n\t\t\t\t* {\n\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t}\n\t\t\t\thr {\n\t\t\t\t\tbox-sizing: content-box;\n\t\t\t\t}\n\n\t\t\t\ttbody {\n\t\t\t\t\tborder-bottom: none;\n\t\t\t\t}\n\t\t\t\tth td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th,\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tmin-width: ", "px;\n\t\t\t\t\tfont-weight: ", ";\n\t\t\t\t\tvertical-align: top;\n\t\t\t\t\t", "\n\t\t\t\t\tborder: 1px solid ", ";\n\t\t\t\t\tborder-right-width: 0;\n\t\t\t\t\tborder-bottom-width: 0;\n\n\t\t\t\t\tpadding: ", ";\n\t\t\t\t\t/* https://stackoverflow.com/questions/7517127/borders-not-shown-in-firefox-with-border-collapse-on-table-position-relative-o */\n\t\t\t\t\t", "\n\n\t\t\t\t\t", "\n\n\t\t\t\tth p:not(:first-of-type),\n\t\t\t\ttd p:not(:first-of-type) {\n\t\t\t\t\t\tmargin-top: ", ";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Ensures nested tables are compatible with parent table background color - uses specificity to ensure tables nested by extensions are not affected */\n\t\t\t\t> tbody > tr > td {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t}\n\n\t\t\t\t", "\n\t\t\t\tth {\n\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\ttext-align: left;\n\n\t\t\t\t\t/* only apply this styling to codeblocks in default background headercells */\n\t\t\t\t\t/* TODO this needs to be overhauled as it relies on unsafe selectors */\n\t\t\t\t\t", " {\n\t\t\t\t\t\t.", ":not(.danger) {\n\t\t\t\t\t\t\tbackground-color: ", ";\n\n\t\t\t\t\t\t\t:not(.", ") {\n\t\t\t\t\t\t\t\tbox-shadow: 0px 0px 0px 1px ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-image: ", ";\n\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.", " {\n\t\t\t\t\t\t\t\tbackground-color: ", ";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* this is only relevant to the element taken care of by renderer */\n\t\t\t\t\t\t\t> [data-ds--code--code-block] {\n\t\t\t\t\t\t\t\tbackground-image: ", "!important;\n\n\t\t\t\t\t\t\t\tbackground-color: ", "!important;\n\n\t\t\t\t\t\t\t\t/* selector lives inside @atlaskit/code */\n\t\t\t\t\t\t\t\t--ds--code--line-number-bg-color: ", ";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t", "\n\t"])), tableCellBackgroundStyleOverride(), TableSharedCssClassName.TABLE_CONTAINER, "var(--ds-space-200, 16px)", expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Fake side borders are not needed when the rounded overlay owns the outer border. */\n\t\t\t\t.".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t\t") : ".".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tdisplay: block;\n\t\t\t\twidth: 1px;\n\t\t\t\theight: calc(100% - ", "var(--ds-space-300, 24px)", ");\n\t\t\t\tbackground: ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", "var(--ds-space-300, 24px)", ";\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, " {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, " {\n\t\t\t\tleft: 0;\n\t\t\t}\n\t\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true'] {\n\t\t\t\tleft: ").concat(akEditorTableNumberColumnWidth - 1, "px;\n\t\t\t}"), TableSharedCssClassName.TABLE_CONTAINER, akEditorTableNumberColumnWidth - 1, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_RESIZER_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, "var(--ds-space-300, 24px)", TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, "var(--ds-space-300, 24px)", "var(--ds-space-100, 8px)", fg('platform_editor_bordered_panel_nested_in_table') ? ".".concat(TableSharedCssClassName.TABLE_NODE_WRAPPER, " .ak-editor-panel {\n\t\t\tborder: ", "var(--ds-border-width, 1px)", " solid ", "var(--ds-border, #0B120E24)", ";\n\t\t}") : '', TableSharedCssClassName.TABLE_CONTAINER, TableSharedCssClassName.TABLE_NODE_WRAPPER, TableSharedCssClassName.TABLE_STICKY_WRAPPER, expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Keep a transparent border so the collapsed border model reserves the same 1px slot\n\t\t\t on the table edge; the ::after overlay draws the visible rounded border instead. */\n\t\t\tborder: ".concat(tableCellBorderWidth, "px solid transparent;") : "border: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\tborder-left-color: transparent;\n\t\t\tborder-right-color: transparent;"), expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "position: relative;\n\n\t\t\t/* Table-width outer-border owner for overflow-safe rounded corners. */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: -0.5px;\n\t\t\t\tborder: ".concat(tableCellBorderWidth, "px solid ", "var(--ds-background-accent-gray-subtler, #DDDEE1)", ";\n\t\t\t\tborder-radius: ", "var(--ds-radius-xlarge, 12px)", ";\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}") : '', "var(--ds-background-neutral-subtle, #00000000)", tableCellMinWidth, "var(--ds-font-weight-regular, 400)", expValEqualsNoExposure('platform_editor_table_menu_updates', 'isEnabled', true) ? "&[data-valign='middle'] {\n\t\t\t\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t&[data-valign='bottom'] {\n\t\t\t\t\t\t\t\tvertical-align: bottom;\n\t\t\t\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtler, #DDDEE1)", "var(--ds-space-100, 8px)", browser.gecko || browser.ie || browser.mac && browser.chrome ? 'background-clip: padding-box;' : '', firstNodeWithNotMarginTop(), "var(--ds-space-150, 12px)", "var(--ds-surface, #FFFFFF)", expValEquals('platform_editor_table_q4_loveability', 'isEnabled', true) ? "/* Let the wrapper overlay own the outer table perimeter.\n\t\t\t\t data-reaches-* attributes are set by the TableCell node view. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top] {\n\t\t\t\t\tborder-top-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > th[data-reaches-left],\n\t\t\t\t> tbody > tr > td[data-reaches-left] {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-left]::after {\n\t\t\t\t\tborder-left-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t> tbody > tr > td[data-reaches-bottom]::after,\n\t\t\t\t> tbody > tr > th[data-reaches-bottom]::after {\n\t\t\t\t\tborder-bottom-color: transparent;\n\t\t\t\t}\n\n\t\t\t\t/* The rounded-table overlay owns transparent perimeter borders.\n\t\t\t\t Paint edge cell backgrounds into that reserved border area so coloured\n\t\t\t\t first/last rows do not show the page background through 1px seams. */\n\t\t\t\t> tbody > tr > th[data-reaches-top],\n\t\t\t\t> tbody > tr > td[data-reaches-top],\n\t\t\t\t> tbody > tr > th[data-reaches-bottom],\n\t\t\t\t> tbody > tr > td[data-reaches-bottom] {\n\t\t\t\t\tbackground-clip: border-box;\n\t\t\t\t}" : '', "var(--ds-background-accent-gray-subtlest, #F0F1F2)", expValEquals('platform_editor_native_anchor_with_dnd', 'isEnabled', true) ? '&:not(.danger)' : '&:not([style]):not(.danger)', CodeBlockSharedCssClassName.CODEBLOCK_CONTAINER, "var(--ds-surface-raised, #FFFFFF)", akEditorSelectedNodeClassName, "var(--ds-border, #0B120E24)", CodeBlockSharedCssClassName.CODEBLOCK_CONTENT_WRAPPER, overflowShadow({
53
53
  leftCoverWidth: "var(--ds-space-300, 24px)"
54
54
  }), "var(--ds-background-neutral, #0515240F)", CodeBlockSharedCssClassName.CODEBLOCK_LINE_NUMBER_GUTTER, "var(--ds-background-neutral, #0515240F)", overflowShadow({
55
55
  leftCoverWidth: "var(--ds-space-300, 24px)"
@@ -21,7 +21,7 @@ import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
21
21
  import { fg } from '@atlaskit/platform-feature-flags';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "115.13.0";
24
+ var packageVersion = "115.15.0";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var fadeIn = keyframes({
@@ -7,7 +7,7 @@ import { isTextNode } from './isTextNode';
7
7
  /**
8
8
  * Determines the optimal vertical placement ('top' or 'bottom') for a popup relative to a target element.
9
9
  * Decides if given fitHeight fits below or above the target taking boundaries into account.
10
- *
10
+ *
11
11
  * @param target - The target element to position the popup relative to
12
12
  * @param boundariesElement - The boundaries element that constrains the popup positioning
13
13
  * @param fitHeight - The desired height of the popup content
@@ -90,7 +90,7 @@ export function getHorizontalPlacement(target, boundariesElement, fitWidth, alig
90
90
 
91
91
  /**
92
92
  * Calculates the optimal placement for a popup element in both vertical and horizontal directions.
93
- *
93
+ *
94
94
  * @param target - The target element to position the popup relative to
95
95
  * @param boundariesElement - The boundaries element that constrains the popup positioning
96
96
  * @param fitWidth - The desired width of the popup content
@@ -24,5 +24,43 @@ type ContextualTypeaheadDismissedAttributes = {
24
24
  reason: 'escape' | 'blur';
25
25
  };
26
26
  type ContextualTypeaheadDismissedAEP = TrackAEP<ACTION.SUGGESTION_DISMISSED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadDismissedAttributes, undefined>;
27
- export type ContextualTypeaheadEventPayload = ContextualTypeaheadViewedAEP | ContextualTypeaheadAcceptedAEP | ContextualTypeaheadDismissedAEP;
27
+ type ContextualTypeaheadLocalModelLoadedAttributes = {
28
+ /** Semantic embedder loaded alongside the causal LM (loads atomically). */
29
+ embeddingModelId: string;
30
+ /** GPU architecture reported by the adapter (e.g. "metal-3"). */
31
+ gpuArchitecture?: string;
32
+ /** GPU vendor reported by the adapter (e.g. "apple", "intel"). */
33
+ gpuVendor?: string;
34
+ /** Model engine load time in ms (excludes the WebGPU capability probe). */
35
+ loadDurationMs: number;
36
+ /** Causal LM identifier that loaded. */
37
+ modelId: string;
38
+ };
39
+ type ContextualTypeaheadLocalModelLoadedAEP = TrackAEP<ACTION.LOCAL_MODEL_LOADED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadLocalModelLoadedAttributes, undefined>;
40
+ type ContextualTypeaheadLocalModelLoadFailedAttributes = {
41
+ /** Whether a usable WebGPU adapter was found on the machine. */
42
+ adapterAvailable?: boolean;
43
+ /** Semantic embedder loaded alongside the causal LM (loads atomically). */
44
+ embeddingModelId: string;
45
+ /** GPU architecture reported by the adapter (e.g. "metal-3"). */
46
+ gpuArchitecture?: string;
47
+ /** GPU vendor reported by the adapter (e.g. "apple", "intel"). */
48
+ gpuVendor?: string;
49
+ /** Largest single GPU buffer the adapter allows, in MB. */
50
+ maxBufferSizeMB?: number;
51
+ /** Largest storage-buffer binding the adapter allows, in MB. */
52
+ maxStorageBufferBindingSizeMB?: number;
53
+ /** Canonical, controlled failure description — derived from `reason`, never raw error text. */
54
+ message: string;
55
+ /** Causal LM identifier that failed to load. */
56
+ modelId: string;
57
+ /** Coarse, controlled failure category — never free-form. */
58
+ reason: 'webgpu_unavailable' | 'webgpu_no_adapter' | 'missing_shader_f16' | 'insufficient_memory' | 'model_download_failed' | 'module_load_failed' | 'init_failed';
59
+ /** Whether the GPU supports the shader-f16 feature the model requires. */
60
+ shaderF16Supported?: boolean;
61
+ /** Whether navigator.gpu exists at all. */
62
+ webgpuAvailable?: boolean;
63
+ };
64
+ type ContextualTypeaheadLocalModelLoadFailedAEP = TrackAEP<ACTION.LOCAL_MODEL_LOAD_FAILED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadLocalModelLoadFailedAttributes, undefined>;
65
+ export type ContextualTypeaheadEventPayload = ContextualTypeaheadViewedAEP | ContextualTypeaheadAcceptedAEP | ContextualTypeaheadDismissedAEP | ContextualTypeaheadLocalModelLoadedAEP | ContextualTypeaheadLocalModelLoadFailedAEP;
28
66
  export {};
@@ -222,6 +222,8 @@ export declare enum ACTION {
222
222
  SUGGESTION_INSERTED = "suggestionInserted",
223
223
  SUGGESTION_DISMISSED = "suggestionDismissed",
224
224
  SUGGESTION_VIEWED = "suggestionViewed",
225
+ LOCAL_MODEL_LOADED = "localModelLoaded",
226
+ LOCAL_MODEL_LOAD_FAILED = "localModelLoadFailed",
225
227
  TABLE_WIDTH_INFO = "tableWidthInformation",
226
228
  SUPPRESSED = "suppressed"
227
229
  }
@@ -8,6 +8,6 @@ export { SCROLL_TO_BLOCK_TIMING } from './SCROLL_TO_BLOCK_TIMING';
8
8
  export { expandElement } from './expandElement';
9
9
  export { getLocalIdSelector } from './getLocalIdSelector';
10
10
  export { isExpandCollapsed } from './isExpandCollapsed';
11
- export { expandAllParentsThenScroll, findParentExpands, findNodeWithExpandParents } from './scroll-to-block-utils';
11
+ export { expandAllParentsThenScroll, findParentExpands, findNodeWithExpandParents, } from './scroll-to-block-utils';
12
12
  export type { NodeWithExpandParents } from './scroll-to-block-utils';
13
13
  export type { BlockMenuPlacement } from './placement';
@@ -1,11 +1,11 @@
1
1
  export { isFieldset, isTabGroup, isTabField, isExpand, isDateRange, } from './extensions/types/field-definitions';
2
2
  export { buildMenuItem } from './extensions/buildMenuItem';
3
3
  export { createAutoConverterRunner } from './extensions/createAutoConverterRunner';
4
- export { getExtensionAutoConvertersFromProvider, getQuickInsertItemsFromModule, getContextualToolbarItemsFromModule } from './extensions/module-helpers';
4
+ export { getExtensionAutoConvertersFromProvider, getQuickInsertItemsFromModule, getContextualToolbarItemsFromModule, } from './extensions/module-helpers';
5
5
  export { default as DefaultExtensionProvider } from './extensions/default-extension-provider';
6
6
  export { default as combineExtensionProviders } from './extensions/combine-extension-providers';
7
7
  export { AGENT_MANAGED_EXTENSION_KEY, getExtensionKeyAndNodeKey, NATIVE_EMBED_EXTENSION_TYPE, NATIVE_EMBED_EXTENSION_KEY, resolveImport, } from './extensions/manifest-helpers';
8
- export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps } from './extensions/extension-handlers';
8
+ export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps, } from './extensions/extension-handlers';
9
9
  export { getExtensionManifest } from './extensions/getExtensionManifest';
10
10
  export { getCustomFieldResolver, getFieldSerializer, getFieldDeserializer, getUserFieldContextProvider, } from './extensions/extension-fields-helpers';
11
11
  export { configPanelMessages } from './extensions/configPanelMessages';
@@ -20,7 +20,7 @@ export { isMultiBlockRange } from './isMultiBlockRange';
20
20
  export { isSelectionAtEndOfNode } from './isSelectionAtEndOfNode';
21
21
  export { isSelectionAtStartOfNode } from './isSelectionAtStartOfNode';
22
22
  export { startPositionOfParent } from './startPositionOfParent';
23
- export { atTheBeginningOfBlock, atTheEndOfBlock, deleteSelectedRange, expandSelectionToBlockRange, expandToBlockRange, getSourceNodesFromSelectionRange, isMultiBlockSelection, selectionIsAtTheBeginningOfBlock } from './utils';
23
+ export { atTheBeginningOfBlock, atTheEndOfBlock, deleteSelectedRange, expandSelectionToBlockRange, expandToBlockRange, getSourceNodesFromSelectionRange, isMultiBlockSelection, selectionIsAtTheBeginningOfBlock, } from './utils';
24
24
  export { getSliceFromSelection } from './context-helpers';
25
25
  export { getFragmentsFromSelection } from './getFragmentsFromSelection';
26
26
  export { getLocalIdsFromSelection } from './getLocalIdsFromSelection';
@@ -1,6 +1,6 @@
1
1
  export { TableSharedCssClassName } from './shared/TableSharedCssClassName';
2
2
  export { calcTableWidth } from './shared/calcTableWidth';
3
- export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl, tableControlsSpacing, tablePadding } from './shared/table';
3
+ export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl, tableControlsSpacing, tablePadding, } from './shared/table';
4
4
  export { AnnotationSharedClassNames, BlockAnnotationSharedClassNames } from './shared/annotation';
5
5
  export { mediaSingleSharedStyle, mediaSingleSharedStyleNew, richMediaClassName, } from './shared/media-single';
6
6
  export { blockquoteSharedStyles } from './shared/blockquote';
@@ -1,11 +1,11 @@
1
- export { unwrapContentFromLayout, removeLayoutFromFirstChild, removeLayoutFromLastChild, transformSliceToRemoveOpenLayoutNodes } from './layout';
1
+ export { unwrapContentFromLayout, removeLayoutFromFirstChild, removeLayoutFromLastChild, transformSliceToRemoveOpenLayoutNodes, } from './layout';
2
2
  export { transformSingleColumnLayout } from './transformSingleColumnLayout';
3
3
  export { findExpand } from './findExpand';
4
4
  export { transformSliceExpandToNestedExpand } from './transformSliceExpandToNestedExpand';
5
5
  export { transformSliceNestedExpandToExpand } from './transformSliceNestedExpandToExpand';
6
6
  export { transformSliceToRemoveOpenExpand } from './transformSliceToRemoveOpenExpand';
7
7
  export { transformSliceToRemoveOpenNestedExpand } from './transformSliceToRemoveOpenNestedExpand';
8
- export { transformSliceToRemoveOpenBodiedExtension, transformSliceToRemoveOpenMultiBodiedExtension, transformSliceToRemoveLegacyContentMacro } from './extension';
8
+ export { transformSliceToRemoveOpenBodiedExtension, transformSliceToRemoveOpenMultiBodiedExtension, transformSliceToRemoveLegacyContentMacro, } from './extension';
9
9
  export { transformSliceToRemoveMacroId } from './transformSliceToRemoveMacroId';
10
10
  export { transformSliceToJoinAdjacentCodeBlocks } from './code-block';
11
11
  export { findCodeBlock } from './findCodeBlock';
@@ -13,7 +13,7 @@ export { transformSingleLineCodeBlockToCodeMark } from './transformSingleLineCod
13
13
  export { transformSliceToDecisionList } from './decision-list';
14
14
  export { createBlockTaskItem } from './createBlockTaskItem';
15
15
  export { getFormattedNode } from './getFormattedNode';
16
- export { transformBetweenListTypes, transformListRecursively, transformToTaskList } from './list-transforms';
16
+ export { transformBetweenListTypes, transformListRecursively, transformToTaskList, } from './list-transforms';
17
17
  export { transformListStructure } from './transformListStructure';
18
18
  export { transformSliceEnsureListItemParagraphFirst } from './transformSliceEnsureListItemParagraphFirst';
19
19
  export { transformTaskListToBlockNodes } from './transformTaskListToBlockNodes';
@@ -1,7 +1,7 @@
1
1
  export { default as ColorPalette } from './ColorPalette';
2
2
  export { default as Color } from './ColorPalette/Color';
3
3
  export { getSelectedRowAndColumn } from './ColorPalette/getSelectedRowAndColumn';
4
- export { DEFAULT_COLOR_PICKER_COLUMNS, getColorsPerRowFromPalette, getSelectedRowAndColumnFromPalette } from './ColorPalette/utils';
4
+ export { DEFAULT_COLOR_PICKER_COLUMNS, getColorsPerRowFromPalette, getSelectedRowAndColumnFromPalette, } from './ColorPalette/utils';
5
5
  export { default as cellBackgroundColorPalette } from './ColorPalette/Palettes/cellBackgroundColorPalette';
6
6
  export { default as colorPaletteMessages } from './ColorPalette/Palettes/paletteMessages';
7
7
  export { panelBackgroundPalette } from './ColorPalette/Palettes/panelBackgroundPalette';
@@ -2,5 +2,5 @@ export { ADFStages } from './utils/ADFStages';
2
2
  export { isSameMark } from './utils/isSameMark';
3
3
  export { isSubSupType } from './utils/isSubSupType';
4
4
  export { markOrder } from './utils/markOrder';
5
- export { getMarksByOrder, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode } from './utils/validator';
5
+ export { getMarksByOrder, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode, } from './utils/validator';
6
6
  export type { ADDoc, ADFStage, ADMark, ADMarkSimple, ADNode } from './utils/validator';
@@ -24,5 +24,43 @@ type ContextualTypeaheadDismissedAttributes = {
24
24
  reason: 'escape' | 'blur';
25
25
  };
26
26
  type ContextualTypeaheadDismissedAEP = TrackAEP<ACTION.SUGGESTION_DISMISSED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadDismissedAttributes, undefined>;
27
- export type ContextualTypeaheadEventPayload = ContextualTypeaheadViewedAEP | ContextualTypeaheadAcceptedAEP | ContextualTypeaheadDismissedAEP;
27
+ type ContextualTypeaheadLocalModelLoadedAttributes = {
28
+ /** Semantic embedder loaded alongside the causal LM (loads atomically). */
29
+ embeddingModelId: string;
30
+ /** GPU architecture reported by the adapter (e.g. "metal-3"). */
31
+ gpuArchitecture?: string;
32
+ /** GPU vendor reported by the adapter (e.g. "apple", "intel"). */
33
+ gpuVendor?: string;
34
+ /** Model engine load time in ms (excludes the WebGPU capability probe). */
35
+ loadDurationMs: number;
36
+ /** Causal LM identifier that loaded. */
37
+ modelId: string;
38
+ };
39
+ type ContextualTypeaheadLocalModelLoadedAEP = TrackAEP<ACTION.LOCAL_MODEL_LOADED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadLocalModelLoadedAttributes, undefined>;
40
+ type ContextualTypeaheadLocalModelLoadFailedAttributes = {
41
+ /** Whether a usable WebGPU adapter was found on the machine. */
42
+ adapterAvailable?: boolean;
43
+ /** Semantic embedder loaded alongside the causal LM (loads atomically). */
44
+ embeddingModelId: string;
45
+ /** GPU architecture reported by the adapter (e.g. "metal-3"). */
46
+ gpuArchitecture?: string;
47
+ /** GPU vendor reported by the adapter (e.g. "apple", "intel"). */
48
+ gpuVendor?: string;
49
+ /** Largest single GPU buffer the adapter allows, in MB. */
50
+ maxBufferSizeMB?: number;
51
+ /** Largest storage-buffer binding the adapter allows, in MB. */
52
+ maxStorageBufferBindingSizeMB?: number;
53
+ /** Canonical, controlled failure description — derived from `reason`, never raw error text. */
54
+ message: string;
55
+ /** Causal LM identifier that failed to load. */
56
+ modelId: string;
57
+ /** Coarse, controlled failure category — never free-form. */
58
+ reason: 'webgpu_unavailable' | 'webgpu_no_adapter' | 'missing_shader_f16' | 'insufficient_memory' | 'model_download_failed' | 'module_load_failed' | 'init_failed';
59
+ /** Whether the GPU supports the shader-f16 feature the model requires. */
60
+ shaderF16Supported?: boolean;
61
+ /** Whether navigator.gpu exists at all. */
62
+ webgpuAvailable?: boolean;
63
+ };
64
+ type ContextualTypeaheadLocalModelLoadFailedAEP = TrackAEP<ACTION.LOCAL_MODEL_LOAD_FAILED, ACTION_SUBJECT.CONTEXTUAL_TYPEAHEAD, undefined, ContextualTypeaheadLocalModelLoadFailedAttributes, undefined>;
65
+ export type ContextualTypeaheadEventPayload = ContextualTypeaheadViewedAEP | ContextualTypeaheadAcceptedAEP | ContextualTypeaheadDismissedAEP | ContextualTypeaheadLocalModelLoadedAEP | ContextualTypeaheadLocalModelLoadFailedAEP;
28
66
  export {};
@@ -222,6 +222,8 @@ export declare enum ACTION {
222
222
  SUGGESTION_INSERTED = "suggestionInserted",
223
223
  SUGGESTION_DISMISSED = "suggestionDismissed",
224
224
  SUGGESTION_VIEWED = "suggestionViewed",
225
+ LOCAL_MODEL_LOADED = "localModelLoaded",
226
+ LOCAL_MODEL_LOAD_FAILED = "localModelLoadFailed",
225
227
  TABLE_WIDTH_INFO = "tableWidthInformation",
226
228
  SUPPRESSED = "suppressed"
227
229
  }
@@ -8,6 +8,6 @@ export { SCROLL_TO_BLOCK_TIMING } from './SCROLL_TO_BLOCK_TIMING';
8
8
  export { expandElement } from './expandElement';
9
9
  export { getLocalIdSelector } from './getLocalIdSelector';
10
10
  export { isExpandCollapsed } from './isExpandCollapsed';
11
- export { expandAllParentsThenScroll, findParentExpands, findNodeWithExpandParents } from './scroll-to-block-utils';
11
+ export { expandAllParentsThenScroll, findParentExpands, findNodeWithExpandParents, } from './scroll-to-block-utils';
12
12
  export type { NodeWithExpandParents } from './scroll-to-block-utils';
13
13
  export type { BlockMenuPlacement } from './placement';
@@ -1,11 +1,11 @@
1
1
  export { isFieldset, isTabGroup, isTabField, isExpand, isDateRange, } from './extensions/types/field-definitions';
2
2
  export { buildMenuItem } from './extensions/buildMenuItem';
3
3
  export { createAutoConverterRunner } from './extensions/createAutoConverterRunner';
4
- export { getExtensionAutoConvertersFromProvider, getQuickInsertItemsFromModule, getContextualToolbarItemsFromModule } from './extensions/module-helpers';
4
+ export { getExtensionAutoConvertersFromProvider, getQuickInsertItemsFromModule, getContextualToolbarItemsFromModule, } from './extensions/module-helpers';
5
5
  export { default as DefaultExtensionProvider } from './extensions/default-extension-provider';
6
6
  export { default as combineExtensionProviders } from './extensions/combine-extension-providers';
7
7
  export { AGENT_MANAGED_EXTENSION_KEY, getExtensionKeyAndNodeKey, NATIVE_EMBED_EXTENSION_TYPE, NATIVE_EMBED_EXTENSION_KEY, resolveImport, } from './extensions/manifest-helpers';
8
- export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps } from './extensions/extension-handlers';
8
+ export { getExtensionModuleNode, getNodeRenderer, getExtensionModuleNodePrivateProps, } from './extensions/extension-handlers';
9
9
  export { getExtensionManifest } from './extensions/getExtensionManifest';
10
10
  export { getCustomFieldResolver, getFieldSerializer, getFieldDeserializer, getUserFieldContextProvider, } from './extensions/extension-fields-helpers';
11
11
  export { configPanelMessages } from './extensions/configPanelMessages';
@@ -20,7 +20,7 @@ export { isMultiBlockRange } from './isMultiBlockRange';
20
20
  export { isSelectionAtEndOfNode } from './isSelectionAtEndOfNode';
21
21
  export { isSelectionAtStartOfNode } from './isSelectionAtStartOfNode';
22
22
  export { startPositionOfParent } from './startPositionOfParent';
23
- export { atTheBeginningOfBlock, atTheEndOfBlock, deleteSelectedRange, expandSelectionToBlockRange, expandToBlockRange, getSourceNodesFromSelectionRange, isMultiBlockSelection, selectionIsAtTheBeginningOfBlock } from './utils';
23
+ export { atTheBeginningOfBlock, atTheEndOfBlock, deleteSelectedRange, expandSelectionToBlockRange, expandToBlockRange, getSourceNodesFromSelectionRange, isMultiBlockSelection, selectionIsAtTheBeginningOfBlock, } from './utils';
24
24
  export { getSliceFromSelection } from './context-helpers';
25
25
  export { getFragmentsFromSelection } from './getFragmentsFromSelection';
26
26
  export { getLocalIdsFromSelection } from './getLocalIdsFromSelection';
@@ -1,6 +1,6 @@
1
1
  export { TableSharedCssClassName } from './shared/TableSharedCssClassName';
2
2
  export { calcTableWidth } from './shared/calcTableWidth';
3
- export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl, tableControlsSpacing, tablePadding } from './shared/table';
3
+ export { tableSharedStyle, tableMarginTop, tableMarginBottom, tableMarginSides, tableCellMinWidth, tableNewColumnMinWidth, tableCellBorderWidth, tableResizeHandleWidth, tableCellPadding, tableMarginTopWithControl, tableControlsSpacing, tablePadding, } from './shared/table';
4
4
  export { AnnotationSharedClassNames, BlockAnnotationSharedClassNames } from './shared/annotation';
5
5
  export { mediaSingleSharedStyle, mediaSingleSharedStyleNew, richMediaClassName, } from './shared/media-single';
6
6
  export { blockquoteSharedStyles } from './shared/blockquote';
@@ -1,11 +1,11 @@
1
- export { unwrapContentFromLayout, removeLayoutFromFirstChild, removeLayoutFromLastChild, transformSliceToRemoveOpenLayoutNodes } from './layout';
1
+ export { unwrapContentFromLayout, removeLayoutFromFirstChild, removeLayoutFromLastChild, transformSliceToRemoveOpenLayoutNodes, } from './layout';
2
2
  export { transformSingleColumnLayout } from './transformSingleColumnLayout';
3
3
  export { findExpand } from './findExpand';
4
4
  export { transformSliceExpandToNestedExpand } from './transformSliceExpandToNestedExpand';
5
5
  export { transformSliceNestedExpandToExpand } from './transformSliceNestedExpandToExpand';
6
6
  export { transformSliceToRemoveOpenExpand } from './transformSliceToRemoveOpenExpand';
7
7
  export { transformSliceToRemoveOpenNestedExpand } from './transformSliceToRemoveOpenNestedExpand';
8
- export { transformSliceToRemoveOpenBodiedExtension, transformSliceToRemoveOpenMultiBodiedExtension, transformSliceToRemoveLegacyContentMacro } from './extension';
8
+ export { transformSliceToRemoveOpenBodiedExtension, transformSliceToRemoveOpenMultiBodiedExtension, transformSliceToRemoveLegacyContentMacro, } from './extension';
9
9
  export { transformSliceToRemoveMacroId } from './transformSliceToRemoveMacroId';
10
10
  export { transformSliceToJoinAdjacentCodeBlocks } from './code-block';
11
11
  export { findCodeBlock } from './findCodeBlock';
@@ -13,7 +13,7 @@ export { transformSingleLineCodeBlockToCodeMark } from './transformSingleLineCod
13
13
  export { transformSliceToDecisionList } from './decision-list';
14
14
  export { createBlockTaskItem } from './createBlockTaskItem';
15
15
  export { getFormattedNode } from './getFormattedNode';
16
- export { transformBetweenListTypes, transformListRecursively, transformToTaskList } from './list-transforms';
16
+ export { transformBetweenListTypes, transformListRecursively, transformToTaskList, } from './list-transforms';
17
17
  export { transformListStructure } from './transformListStructure';
18
18
  export { transformSliceEnsureListItemParagraphFirst } from './transformSliceEnsureListItemParagraphFirst';
19
19
  export { transformTaskListToBlockNodes } from './transformTaskListToBlockNodes';
@@ -1,7 +1,7 @@
1
1
  export { default as ColorPalette } from './ColorPalette';
2
2
  export { default as Color } from './ColorPalette/Color';
3
3
  export { getSelectedRowAndColumn } from './ColorPalette/getSelectedRowAndColumn';
4
- export { DEFAULT_COLOR_PICKER_COLUMNS, getColorsPerRowFromPalette, getSelectedRowAndColumnFromPalette } from './ColorPalette/utils';
4
+ export { DEFAULT_COLOR_PICKER_COLUMNS, getColorsPerRowFromPalette, getSelectedRowAndColumnFromPalette, } from './ColorPalette/utils';
5
5
  export { default as cellBackgroundColorPalette } from './ColorPalette/Palettes/cellBackgroundColorPalette';
6
6
  export { default as colorPaletteMessages } from './ColorPalette/Palettes/paletteMessages';
7
7
  export { panelBackgroundPalette } from './ColorPalette/Palettes/panelBackgroundPalette';
@@ -2,5 +2,5 @@ export { ADFStages } from './utils/ADFStages';
2
2
  export { isSameMark } from './utils/isSameMark';
3
3
  export { isSubSupType } from './utils/isSubSupType';
4
4
  export { markOrder } from './utils/markOrder';
5
- export { getMarksByOrder, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode } from './utils/validator';
5
+ export { getMarksByOrder, getValidContent, getValidDocument, getValidMark, getValidNode, getValidUnknownNode, } from './utils/validator';
6
6
  export type { ADDoc, ADFStage, ADMark, ADMarkSimple, ADNode } from './utils/validator';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "115.14.0",
3
+ "version": "115.15.1",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -87,8 +87,8 @@
87
87
  "@atlaskit/task-decision": "^20.2.0",
88
88
  "@atlaskit/teams-app-config": "^1.12.0",
89
89
  "@atlaskit/textfield": "^8.3.0",
90
- "@atlaskit/tmp-editor-statsig": "^99.0.0",
91
- "@atlaskit/tokens": "^13.3.0",
90
+ "@atlaskit/tmp-editor-statsig": "^100.0.0",
91
+ "@atlaskit/tokens": "^13.4.0",
92
92
  "@atlaskit/tooltip": "^22.6.0",
93
93
  "@atlaskit/width-detector": "^5.1.0",
94
94
  "@babel/runtime": "^7.0.0",