@atlaskit/adf-schema 25.3.1 → 25.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/index.js +12 -0
  3. package/dist/cjs/schema/create-schema.js +3 -0
  4. package/dist/cjs/schema/default-schema.js +4 -0
  5. package/dist/cjs/schema/index.js +12 -0
  6. package/dist/cjs/schema/marks/border.js +52 -0
  7. package/dist/cjs/schema/marks/index.js +14 -1
  8. package/dist/cjs/schema/nodes/media-group.js +4 -1
  9. package/dist/cjs/schema/nodes/media-single.js +3 -3
  10. package/dist/cjs/schema/nodes/tableNodes.js +6 -1
  11. package/dist/cjs/utils/colors.js +7 -1
  12. package/dist/cjs/version.json +1 -1
  13. package/dist/es2019/index.js +1 -1
  14. package/dist/es2019/schema/create-schema.js +4 -1
  15. package/dist/es2019/schema/default-schema.js +4 -0
  16. package/dist/es2019/schema/index.js +1 -1
  17. package/dist/es2019/schema/marks/border.js +37 -0
  18. package/dist/es2019/schema/marks/index.js +2 -1
  19. package/dist/es2019/schema/nodes/media-group.js +4 -1
  20. package/dist/es2019/schema/nodes/media-single.js +3 -3
  21. package/dist/es2019/schema/nodes/tableNodes.js +6 -1
  22. package/dist/es2019/utils/colors.js +3 -0
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/esm/schema/create-schema.js +4 -1
  26. package/dist/esm/schema/default-schema.js +4 -0
  27. package/dist/esm/schema/index.js +1 -1
  28. package/dist/esm/schema/marks/border.js +43 -0
  29. package/dist/esm/schema/marks/index.js +2 -1
  30. package/dist/esm/schema/nodes/media-group.js +4 -1
  31. package/dist/esm/schema/nodes/media-single.js +3 -3
  32. package/dist/esm/schema/nodes/tableNodes.js +6 -1
  33. package/dist/esm/utils/colors.js +3 -0
  34. package/dist/esm/version.json +1 -1
  35. package/dist/json-schema/v1/full.json +29 -29
  36. package/dist/json-schema/v1/stage-0.json +71 -30
  37. package/dist/types/index.d.ts +2 -2
  38. package/dist/types/schema/index.d.ts +2 -2
  39. package/dist/types/schema/marks/border.d.ts +24 -0
  40. package/dist/types/schema/marks/index.d.ts +2 -0
  41. package/dist/types/schema/nodes/media-single.d.ts +10 -10
  42. package/dist/types/schema/nodes/media.d.ts +2 -1
  43. package/dist/types/utils/colors.d.ts +3 -0
  44. package/json-schema/v1/full.json +29 -29
  45. package/json-schema/v1/stage-0.json +71 -30
  46. package/package.json +5 -4
  47. package/report.api.md +25 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @atlaskit/adf-schema
2
2
 
3
+ ## 25.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bf04c417bfd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bf04c417bfd) - Add "border" mark to stage0 ADF schema
8
+ - [`af9a85063e5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/af9a85063e5) - add image border toolbar
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies
13
+
14
+ ## 25.3.2
15
+
16
+ ### Patch Changes
17
+
18
+ - [`2367ba14aa0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2367ba14aa0) - [ux] ED-16758 Added support for theme tokens in table cell background color.
19
+ - [`6b52583b688`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6b52583b688) - ED-15974 Currently nodes are validated against single spec.
20
+ When a node has multiple specs, like mediaSingle, the first spec is used to validate the node.
21
+ Therefore, the validation fails with an error `INVALID_CONTENT_LENGTH` when the correct spec is not selected for validation.
22
+
23
+ This fix is to re-arrange the specs so that the less restrictive spec is at the top.
24
+
25
+ - [`e771b41970b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e771b41970b) - Updating test cases for adf-schema json-compatibility-tests
26
+ - Updated dependencies
27
+
3
28
  ## 25.3.1
4
29
 
5
30
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -339,6 +339,18 @@ Object.defineProperty(exports, "bodiedExtension", {
339
339
  return _schema.bodiedExtension;
340
340
  }
341
341
  });
342
+ Object.defineProperty(exports, "border", {
343
+ enumerable: true,
344
+ get: function get() {
345
+ return _schema.border;
346
+ }
347
+ });
348
+ Object.defineProperty(exports, "borderColorPalette", {
349
+ enumerable: true,
350
+ get: function get() {
351
+ return _schema.borderColorPalette;
352
+ }
353
+ });
342
354
  Object.defineProperty(exports, "breakout", {
343
355
  enumerable: true,
344
356
  get: function get() {
@@ -254,6 +254,9 @@ var marksInOrder = [{
254
254
  }, {
255
255
  name: 'indentation',
256
256
  spec: _marks.indentation
257
+ }, {
258
+ name: 'border',
259
+ spec: _marks.border
257
260
  }, {
258
261
  name: 'unsupportedMark',
259
262
  spec: _marks.unsupportedMark
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getSchemaBasedOnStage = exports.defaultSchemaConfig = exports.defaultSchema = void 0;
7
7
  var _nodes = require("./nodes");
8
+ var _marks = require("./marks");
8
9
  var _createSchema = require("./create-schema");
9
10
  var getDefaultSchemaConfig = function getDefaultSchemaConfig() {
10
11
  var defaultSchemaConfig = {
@@ -24,6 +25,9 @@ var getSchemaBasedOnStage = function getSchemaBasedOnStage() {
24
25
  defaultSchemaConfig.customNodeSpecs = {
25
26
  layoutSection: _nodes.layoutSectionWithSingleColumn
26
27
  };
28
+ defaultSchemaConfig.customMarkSpecs = {
29
+ border: _marks.border
30
+ };
27
31
  }
28
32
  return (0, _createSchema.createSchema)(defaultSchemaConfig);
29
33
  };
@@ -57,6 +57,18 @@ Object.defineProperty(exports, "bodiedExtension", {
57
57
  return _nodes.bodiedExtension;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "border", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _marks.border;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "borderColorPalette", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _marks.borderColorPalette;
70
+ }
71
+ });
60
72
  Object.defineProperty(exports, "breakout", {
61
73
  enumerable: true,
62
74
  get: function get() {
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.borderColorPalette = exports.border = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _editorPalette = require("@atlaskit/editor-palette");
10
+ var _colors = require("../../utils/colors");
11
+ var borderColorArrayPalette = [[_colors.N300A, 'Subtle gray'], [_colors.N600, 'Gray'], [_colors.N1000, 'Bold gray']];
12
+ var borderColorPalette = new Map();
13
+ exports.borderColorPalette = borderColorPalette;
14
+ borderColorArrayPalette.forEach(function (_ref) {
15
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
16
+ color = _ref2[0],
17
+ label = _ref2[1];
18
+ return borderColorPalette.set(color.toLowerCase(), label);
19
+ });
20
+ var border = {
21
+ inclusive: false,
22
+ parseDOM: [{
23
+ tag: 'div[data-mark-type="border"]',
24
+ getAttrs: function getAttrs(domNode) {
25
+ var _dom$getAttribute, _dom$getAttribute2;
26
+ var dom = domNode;
27
+ var color = ((_dom$getAttribute = dom.getAttribute('data-color')) !== null && _dom$getAttribute !== void 0 ? _dom$getAttribute : '').toLowerCase();
28
+ var size = +((_dom$getAttribute2 = dom.getAttribute('data-size')) !== null && _dom$getAttribute2 !== void 0 ? _dom$getAttribute2 : '0');
29
+ return {
30
+ size: size > 3 ? 3 : size < 1 ? false : size,
31
+ color: borderColorPalette.has(color) ? color : false
32
+ };
33
+ }
34
+ }],
35
+ attrs: {
36
+ color: {},
37
+ size: {}
38
+ },
39
+ toDOM: function toDOM(mark) {
40
+ // Note -- while there is no way to create custom colors using default tooling
41
+ // the editor does supported ad hoc color values -- and there may be content
42
+ // which has been migrated or created via apis which use such values.
43
+ var paletteColorValue = (0, _editorPalette.hexToEditorBorderPaletteColor)(mark.attrs.color) || mark.attrs.color;
44
+ return ['div', {
45
+ 'data-mark-type': 'border',
46
+ 'data-color': mark.attrs.color,
47
+ 'data-size': mark.attrs.size,
48
+ style: "--custom-palette-color: ".concat(paletteColorValue)
49
+ }];
50
+ }
51
+ };
52
+ exports.border = border;
@@ -33,6 +33,18 @@ Object.defineProperty(exports, "annotation", {
33
33
  return _annotation.annotation;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "border", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _border.border;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "borderColorPalette", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _border.borderColorPalette;
46
+ }
47
+ });
36
48
  Object.defineProperty(exports, "breakout", {
37
49
  enumerable: true,
38
50
  get: function get() {
@@ -182,4 +194,5 @@ var _annotation = require("./annotation");
182
194
  var _unsupportedMark = require("./unsupported-mark");
183
195
  var _unsupportedNodeAttributes = require("./unsupported-node-attributes");
184
196
  var _dataConsumer = require("./data-consumer");
185
- var _fragment = require("./fragment");
197
+ var _fragment = require("./fragment");
198
+ var _border = require("./border");
@@ -8,12 +8,15 @@ exports.mediaGroup = void 0;
8
8
  * @name mediaGroup_node
9
9
  */
10
10
 
11
+ // Temporary due to an existing issue in validator below:
12
+ // https://product-fabric.atlassian.net/jira/servicedesk/projects/DTR/queues/issue/DTR-1429
13
+ // TODO: Remove border and link marks from white list
11
14
  var mediaGroup = {
12
15
  inline: false,
13
16
  group: 'block',
14
17
  content: '(media|unsupportedBlock)+',
15
18
  attrs: {},
16
- marks: 'unsupportedMark unsupportedNodeAttribute',
19
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
17
20
  selectable: false,
18
21
  parseDOM: [{
19
22
  tag: 'div[data-node-type="mediaGroup"]'
@@ -18,7 +18,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
18
18
  */
19
19
 
20
20
  /**
21
- * @name mediaSingle_full_node
21
+ * @name mediaSingle_caption_node
22
22
  */
23
23
 
24
24
  /**
@@ -26,7 +26,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
26
26
  */
27
27
 
28
28
  /**
29
- * @name mediaSingle_caption_node
29
+ * @name mediaSingle_full_node
30
30
  */
31
31
 
32
32
  var defaultAttrs = {
@@ -46,7 +46,7 @@ var mediaSingle = {
46
46
  atom: true,
47
47
  content: 'media|unsupportedBlock+|media unsupportedBlock+',
48
48
  attrs: defaultAttrs,
49
- marks: 'unsupportedMark unsupportedNodeAttribute link',
49
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
50
50
  parseDOM: [{
51
51
  tag: 'div[data-node-type="mediaSingle"]',
52
52
  getAttrs: function getAttrs(dom) {
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.toJSONTableHeader = exports.toJSONTableCell = exports.tableToJSON = exports.tableRow = exports.tablePrefixSelector = exports.tableHeaderSelector = exports.tableHeader = exports.tableCellSelector = exports.tableCellContentWrapperSelector = exports.tableCellContentDomSelector = exports.tableCell = exports.tableBackgroundColorPalette = exports.tableBackgroundColorNames = exports.tableBackgroundBorderColor = exports.table = exports.getCellDomAttrs = exports.getCellAttrs = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _editorPalette = require("@atlaskit/editor-palette");
10
+ var _tokens = require("@atlaskit/tokens");
9
11
  var _colors = require("../../utils/colors");
10
12
  var _uuid = require("../../utils/uuid");
11
13
  var tablePrefixSelector = 'pm-table';
@@ -86,7 +88,10 @@ var getCellDomAttrs = function getCellDomAttrs(node) {
86
88
  attrs.style = '';
87
89
  } else {
88
90
  var color = (0, _colors.isRgb)(background) ? (0, _colors.rgbToHex)(background) : background;
89
- attrs.style = "".concat(attrs.style || '', "background-color: ").concat(color);
91
+ var tokenName = (0, _editorPalette.hexToEditorBackgroundPaletteColorTokenName)(color);
92
+ // eslint-disable-next-line @atlaskit/design-system/no-unsafe-design-token-usage
93
+ var tokenColor = tokenName ? (0, _tokens.getTokenValue)(tokenName) : color;
94
+ attrs.style = "".concat(attrs.style || '', "background-color: ").concat(tokenColor, ";");
90
95
 
91
96
  /**
92
97
  * Storing hex code in data-cell-background because
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Y75 = exports.Y500 = exports.Y50 = exports.Y400 = exports.Y200 = exports.T75 = exports.T500 = exports.T50 = exports.T300 = exports.T100 = exports.R75 = exports.R500 = exports.R50 = exports.R400 = exports.R300 = exports.R100 = exports.P75 = exports.P500 = exports.P50 = exports.P400 = exports.P300 = exports.P100 = exports.N90 = exports.N800 = exports.N80 = exports.N60 = exports.N500 = exports.N50 = exports.N40 = exports.N300 = exports.N30 = exports.N200 = exports.N20 = exports.N0 = exports.G75 = exports.G500 = exports.G50 = exports.G400 = exports.G300 = exports.G200 = exports.B75 = exports.B500 = exports.B50 = exports.B400 = exports.B100 = void 0;
8
+ exports.Y75 = exports.Y500 = exports.Y50 = exports.Y400 = exports.Y200 = exports.T75 = exports.T500 = exports.T50 = exports.T300 = exports.T100 = exports.R75 = exports.R500 = exports.R50 = exports.R400 = exports.R300 = exports.R100 = exports.P75 = exports.P500 = exports.P50 = exports.P400 = exports.P300 = exports.P100 = exports.N90 = exports.N800 = exports.N80 = exports.N600 = exports.N60 = exports.N500 = exports.N50 = exports.N40 = exports.N300A = exports.N300 = exports.N30 = exports.N200 = exports.N20 = exports.N1000 = exports.N0 = exports.G75 = exports.G500 = exports.G50 = exports.G400 = exports.G300 = exports.G200 = exports.B75 = exports.B500 = exports.B50 = exports.B400 = exports.B100 = void 0;
9
9
  exports.hexToRgb = hexToRgb;
10
10
  exports.hexToRgba = hexToRgba;
11
11
  exports.isHex = isHex;
@@ -89,10 +89,16 @@ var N200 = '#6B778C';
89
89
  exports.N200 = N200;
90
90
  var N300 = '#5E6C84';
91
91
  exports.N300 = N300;
92
+ var N300A = '#091E4224';
93
+ exports.N300A = N300A;
92
94
  var N500 = '#42526E';
93
95
  exports.N500 = N500;
96
+ var N600 = '#758195';
97
+ exports.N600 = N600;
94
98
  var N800 = '#172B4D';
95
99
  exports.N800 = N800;
100
+ var N1000 = '#172B4D';
101
+ exports.N1000 = N1000;
96
102
  var P50 = '#EAE6FF';
97
103
  exports.P50 = P50;
98
104
  var P75 = '#C0B6F2';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-schema",
3
- "version": "25.3.1",
3
+ "version": "25.4.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,3 +1,3 @@
1
1
  export { PanelType, AnnotationTypes, alignment, alignmentPositionMap, annotation, blockCard, blockquote, bodiedExtension, breakout, bulletList, bulletListSelector, caption, code, codeBlock, codeBlockToJSON, colorPalette, /** @deprecated [ED-15849] The extended palette is now rolled into the main one. Use `colorPalette` instead. */
2
- colorPaletteExtended, confluenceInlineComment, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, createSchema, dataConsumer, dataConsumerToJSON, date, decisionItem, decisionList, decisionListSelector, doc, em, embedCard, emoji, expand, expandToJSON, extension, fragment, fragmentToJSON, hardBreak, heading, image, indentation, inlineCard, inlineExtension, inlineNodes, layoutColumn, layoutSection, link, linkToJSON, listItem, media, mediaGroup, mediaSingle, mediaSingleWithCaption, mediaInline, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, sanitizeNodes, getCellAttrs, getCellDomAttrs, status, strike, strong, subsup, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, textColor, toJSONTableCell, toJSONTableHeader, typeAheadQuery, underline, unknownBlock, unsupportedBlock, unsupportedInline, unsupportedNodeTypesForMediaCards, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute } from './schema';
2
+ colorPaletteExtended, confluenceInlineComment, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, createSchema, dataConsumer, dataConsumerToJSON, date, decisionItem, decisionList, decisionListSelector, doc, em, embedCard, emoji, expand, expandToJSON, extension, fragment, fragmentToJSON, hardBreak, heading, image, indentation, inlineCard, inlineExtension, inlineNodes, layoutColumn, layoutSection, link, linkToJSON, listItem, media, mediaGroup, mediaSingle, mediaSingleWithCaption, mediaInline, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, sanitizeNodes, getCellAttrs, getCellDomAttrs, status, strike, strong, subsup, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, textColor, toJSONTableCell, toJSONTableHeader, typeAheadQuery, underline, unknownBlock, unsupportedBlock, unsupportedInline, unsupportedNodeTypesForMediaCards, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute, border, borderColorPalette } from './schema';
3
3
  export { B100, B400, B50, B500, B75, G200, G300, G400, G50, G500, G75, N0, N20, N200, N30, N300, N40, N50, N500, N60, N80, N800, N90, P100, P300, P400, P50, P500, P75, R100, R300, R400, R50, R500, R75, T100, T300, T50, T500, T75, Y200, Y400, Y50, Y500, Y75, acNameToEmoji, acShortcutToEmoji, emojiIdToAcName, generateUuid, getEmojiAcName, getLinkMatch, hexToRgb, hexToRgba, isHex, isRgb, isSafeUrl, linkify, linkifyMatch, normalizeHexColor, normalizeUrl, rgbToHex, uuid } from './utils';
@@ -1,6 +1,6 @@
1
1
  import { Schema } from 'prosemirror-model';
2
2
  import { COLOR, FONT_STYLE, SEARCH_QUERY, LINK } from './groups';
3
- import { link, em, strong, textColor, strike, subsup, underline, code, typeAheadQuery, confluenceInlineComment, breakout, alignment, indentation, annotation, unsupportedMark, unsupportedNodeAttribute, dataConsumer, fragment } from './marks';
3
+ import { link, em, strong, textColor, strike, subsup, underline, code, typeAheadQuery, confluenceInlineComment, breakout, alignment, indentation, annotation, unsupportedMark, unsupportedNodeAttribute, dataConsumer, fragment, border } from './marks';
4
4
  import { confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, doc, paragraph, text, bulletList, orderedListWithOrder, listItem, heading, blockquote, codeBlock, panel, rule, image, mention, media, mediaInline, mediaGroup, mediaSingleWithCaption, hardBreak, emoji, table, tableCell, tableHeader, tableRow, decisionList, decisionItem, taskList, taskItem, unknownBlock, extension, inlineExtension, bodiedExtension, date, placeholder, layoutSection, layoutColumn, inlineCard, blockCard, unsupportedBlock, unsupportedInline, status, expand, nestedExpand, embedCard, caption } from './nodes';
5
5
  function addItems(builtInItems, config, customSpecs = {}) {
6
6
  if (!config) {
@@ -239,6 +239,9 @@ const marksInOrder = [{
239
239
  }, {
240
240
  name: 'indentation',
241
241
  spec: indentation
242
+ }, {
243
+ name: 'border',
244
+ spec: border
242
245
  }, {
243
246
  name: 'unsupportedMark',
244
247
  spec: unsupportedMark
@@ -1,4 +1,5 @@
1
1
  import { layoutSectionWithSingleColumn } from './nodes';
2
+ import { border } from './marks';
2
3
  import { createSchema } from './create-schema';
3
4
  const getDefaultSchemaConfig = () => {
4
5
  let defaultSchemaConfig = {
@@ -16,6 +17,9 @@ export const getSchemaBasedOnStage = (stage = 'final') => {
16
17
  defaultSchemaConfig.customNodeSpecs = {
17
18
  layoutSection: layoutSectionWithSingleColumn
18
19
  };
20
+ defaultSchemaConfig.customMarkSpecs = {
21
+ border
22
+ };
19
23
  }
20
24
  return createSchema(defaultSchemaConfig);
21
25
  };
@@ -1,6 +1,6 @@
1
1
  export { PanelType, blockCard, blockquote, bodiedExtension, bulletList, bulletListSelector, caption, codeBlock, codeBlockToJSON, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, date, decisionItem, decisionList, decisionListSelector, doc, embedCard, emoji, expand, expandToJSON, extension, hardBreak, heading, image, inlineCard, inlineExtension, layoutColumn, layoutSection, layoutSectionWithSingleColumn, listItem, media, mediaGroup, mediaSingle, mediaInline, mediaSingleWithCaption, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, getCellAttrs, getCellDomAttrs, status, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, toJSONTableCell, toJSONTableHeader, unknownBlock, unsupportedBlock, unsupportedInline } from './nodes';
2
2
  export { AnnotationTypes, alignment, alignmentPositionMap, annotation, breakout, code, colorPalette, /** @deprecated [ED-15849] The extended palette is now rolled into the main one. Use `colorPalette` instead. */
3
- colorPaletteExtended, confluenceInlineComment, dataConsumer, dataConsumerToJSON, em, fragment, fragmentToJSON, indentation, link, linkToJSON, strike, strong, subsup, textColor, typeAheadQuery, underline, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute } from './marks';
3
+ colorPaletteExtended, confluenceInlineComment, dataConsumer, dataConsumerToJSON, em, fragment, fragmentToJSON, indentation, link, linkToJSON, strike, strong, subsup, textColor, typeAheadQuery, underline, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute, border, borderColorPalette } from './marks';
4
4
  export { unsupportedNodeTypesForMediaCards } from './unsupported';
5
5
  export { inlineNodes } from './inline-nodes';
6
6
  export { sanitizeNodes, createSchema } from './create-schema';
@@ -0,0 +1,37 @@
1
+ import { hexToEditorBorderPaletteColor } from '@atlaskit/editor-palette';
2
+ import { N300A, N600, N1000 } from '../../utils/colors';
3
+ const borderColorArrayPalette = [[N300A, 'Subtle gray'], [N600, 'Gray'], [N1000, 'Bold gray']];
4
+ export const borderColorPalette = new Map();
5
+ borderColorArrayPalette.forEach(([color, label]) => borderColorPalette.set(color.toLowerCase(), label));
6
+ export const border = {
7
+ inclusive: false,
8
+ parseDOM: [{
9
+ tag: 'div[data-mark-type="border"]',
10
+ getAttrs: domNode => {
11
+ var _dom$getAttribute, _dom$getAttribute2;
12
+ const dom = domNode;
13
+ const color = ((_dom$getAttribute = dom.getAttribute('data-color')) !== null && _dom$getAttribute !== void 0 ? _dom$getAttribute : '').toLowerCase();
14
+ const size = +((_dom$getAttribute2 = dom.getAttribute('data-size')) !== null && _dom$getAttribute2 !== void 0 ? _dom$getAttribute2 : '0');
15
+ return {
16
+ size: size > 3 ? 3 : size < 1 ? false : size,
17
+ color: borderColorPalette.has(color) ? color : false
18
+ };
19
+ }
20
+ }],
21
+ attrs: {
22
+ color: {},
23
+ size: {}
24
+ },
25
+ toDOM(mark) {
26
+ // Note -- while there is no way to create custom colors using default tooling
27
+ // the editor does supported ad hoc color values -- and there may be content
28
+ // which has been migrated or created via apis which use such values.
29
+ const paletteColorValue = hexToEditorBorderPaletteColor(mark.attrs.color) || mark.attrs.color;
30
+ return ['div', {
31
+ 'data-mark-type': 'border',
32
+ 'data-color': mark.attrs.color,
33
+ 'data-size': mark.attrs.size,
34
+ style: `--custom-palette-color: ${paletteColorValue}`
35
+ }];
36
+ }
37
+ };
@@ -15,4 +15,5 @@ export { annotation, AnnotationMarkStates, buildDataAttributes as buildAnnotatio
15
15
  export { unsupportedMark } from './unsupported-mark';
16
16
  export { unsupportedNodeAttribute } from './unsupported-node-attributes';
17
17
  export { dataConsumer, toJSON as dataConsumerToJSON } from './data-consumer';
18
- export { fragment, toJSON as fragmentToJSON } from './fragment';
18
+ export { fragment, toJSON as fragmentToJSON } from './fragment';
19
+ export { border, borderColorPalette } from './border';
@@ -2,12 +2,15 @@
2
2
  * @name mediaGroup_node
3
3
  */
4
4
 
5
+ // Temporary due to an existing issue in validator below:
6
+ // https://product-fabric.atlassian.net/jira/servicedesk/projects/DTR/queues/issue/DTR-1429
7
+ // TODO: Remove border and link marks from white list
5
8
  export const mediaGroup = {
6
9
  inline: false,
7
10
  group: 'block',
8
11
  content: '(media|unsupportedBlock)+',
9
12
  attrs: {},
10
- marks: 'unsupportedMark unsupportedNodeAttribute',
13
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
11
14
  selectable: false,
12
15
  parseDOM: [{
13
16
  tag: 'div[data-node-type="mediaGroup"]'
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  /**
11
- * @name mediaSingle_full_node
11
+ * @name mediaSingle_caption_node
12
12
  */
13
13
 
14
14
  /**
@@ -16,7 +16,7 @@
16
16
  */
17
17
 
18
18
  /**
19
- * @name mediaSingle_caption_node
19
+ * @name mediaSingle_full_node
20
20
  */
21
21
 
22
22
  export const defaultAttrs = {
@@ -35,7 +35,7 @@ export const mediaSingle = {
35
35
  atom: true,
36
36
  content: 'media|unsupportedBlock+|media unsupportedBlock+',
37
37
  attrs: defaultAttrs,
38
- marks: 'unsupportedMark unsupportedNodeAttribute link',
38
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
39
39
  parseDOM: [{
40
40
  tag: 'div[data-node-type="mediaSingle"]',
41
41
  getAttrs: dom => ({
@@ -1,3 +1,5 @@
1
+ import { hexToEditorBackgroundPaletteColorTokenName } from '@atlaskit/editor-palette';
2
+ import { getTokenValue } from '@atlaskit/tokens';
1
3
  import { B100, B50, B75, G200, G50, G75, hexToRgba, isHex, isRgb, N0, N20, N60, N800, P100, P50, P75, R100, R50, R75, rgbToHex, T100, T50, T75, Y200, Y50, Y75 } from '../../utils/colors';
2
4
  import { uuid } from '../../utils/uuid';
3
5
  export const tablePrefixSelector = 'pm-table';
@@ -73,7 +75,10 @@ export const getCellDomAttrs = node => {
73
75
  attrs.style = '';
74
76
  } else {
75
77
  const color = isRgb(background) ? rgbToHex(background) : background;
76
- attrs.style = `${attrs.style || ''}background-color: ${color}`;
78
+ const tokenName = hexToEditorBackgroundPaletteColorTokenName(color);
79
+ // eslint-disable-next-line @atlaskit/design-system/no-unsafe-design-token-usage
80
+ const tokenColor = tokenName ? getTokenValue(tokenName) : color;
81
+ attrs.style = `${attrs.style || ''}background-color: ${tokenColor};`;
77
82
 
78
83
  /**
79
84
  * Storing hex code in data-cell-background because
@@ -39,8 +39,11 @@ export const N80 = '#97A0AF';
39
39
  export const N90 = '#8993A4';
40
40
  export const N200 = '#6B778C';
41
41
  export const N300 = '#5E6C84';
42
+ export const N300A = '#091E4224';
42
43
  export const N500 = '#42526E';
44
+ export const N600 = '#758195';
43
45
  export const N800 = '#172B4D';
46
+ export const N1000 = '#172B4D';
44
47
  export const P50 = '#EAE6FF';
45
48
  export const P75 = '#C0B6F2';
46
49
  export const P100 = '#998DD9';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/adf-schema",
3
- "version": "25.3.1",
3
+ "version": "25.4.0",
4
4
  "sideEffects": false
5
5
  }
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { PanelType, AnnotationTypes, alignment, alignmentPositionMap, annotation, blockCard, blockquote, bodiedExtension, breakout, bulletList, bulletListSelector, caption, code, codeBlock, codeBlockToJSON, colorPalette, /** @deprecated [ED-15849] The extended palette is now rolled into the main one. Use `colorPalette` instead. */
2
- colorPaletteExtended, confluenceInlineComment, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, createSchema, dataConsumer, dataConsumerToJSON, date, decisionItem, decisionList, decisionListSelector, doc, em, embedCard, emoji, expand, expandToJSON, extension, fragment, fragmentToJSON, hardBreak, heading, image, indentation, inlineCard, inlineExtension, inlineNodes, layoutColumn, layoutSection, link, linkToJSON, listItem, media, mediaGroup, mediaSingle, mediaSingleWithCaption, mediaInline, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, sanitizeNodes, getCellAttrs, getCellDomAttrs, status, strike, strong, subsup, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, textColor, toJSONTableCell, toJSONTableHeader, typeAheadQuery, underline, unknownBlock, unsupportedBlock, unsupportedInline, unsupportedNodeTypesForMediaCards, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute } from './schema';
2
+ colorPaletteExtended, confluenceInlineComment, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, createSchema, dataConsumer, dataConsumerToJSON, date, decisionItem, decisionList, decisionListSelector, doc, em, embedCard, emoji, expand, expandToJSON, extension, fragment, fragmentToJSON, hardBreak, heading, image, indentation, inlineCard, inlineExtension, inlineNodes, layoutColumn, layoutSection, link, linkToJSON, listItem, media, mediaGroup, mediaSingle, mediaSingleWithCaption, mediaInline, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, sanitizeNodes, getCellAttrs, getCellDomAttrs, status, strike, strong, subsup, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, textColor, toJSONTableCell, toJSONTableHeader, typeAheadQuery, underline, unknownBlock, unsupportedBlock, unsupportedInline, unsupportedNodeTypesForMediaCards, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute, border, borderColorPalette } from './schema';
3
3
  export { B100, B400, B50, B500, B75, G200, G300, G400, G50, G500, G75, N0, N20, N200, N30, N300, N40, N50, N500, N60, N80, N800, N90, P100, P300, P400, P50, P500, P75, R100, R300, R400, R50, R500, R75, T100, T300, T50, T500, T75, Y200, Y400, Y50, Y500, Y75, acNameToEmoji, acShortcutToEmoji, emojiIdToAcName, generateUuid, getEmojiAcName, getLinkMatch, hexToRgb, hexToRgba, isHex, isRgb, isSafeUrl, linkify, linkifyMatch, normalizeHexColor, normalizeUrl, rgbToHex, uuid } from './utils';
@@ -3,7 +3,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
4
  import { Schema } from 'prosemirror-model';
5
5
  import { COLOR, FONT_STYLE, SEARCH_QUERY, LINK } from './groups';
6
- import { link, em, strong, textColor, strike, subsup, underline, code, typeAheadQuery, confluenceInlineComment, breakout, alignment, indentation, annotation, unsupportedMark, unsupportedNodeAttribute, dataConsumer, fragment } from './marks';
6
+ import { link, em, strong, textColor, strike, subsup, underline, code, typeAheadQuery, confluenceInlineComment, breakout, alignment, indentation, annotation, unsupportedMark, unsupportedNodeAttribute, dataConsumer, fragment, border } from './marks';
7
7
  import { confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, doc, paragraph, text, bulletList, orderedListWithOrder, listItem, heading, blockquote, codeBlock, panel, rule, image, mention, media, mediaInline, mediaGroup, mediaSingleWithCaption, hardBreak, emoji, table, tableCell, tableHeader, tableRow, decisionList, decisionItem, taskList, taskItem, unknownBlock, extension, inlineExtension, bodiedExtension, date, placeholder, layoutSection, layoutColumn, inlineCard, blockCard, unsupportedBlock, unsupportedInline, status, expand, nestedExpand, embedCard, caption } from './nodes';
8
8
  function addItems(builtInItems, config) {
9
9
  var customSpecs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -244,6 +244,9 @@ var marksInOrder = [{
244
244
  }, {
245
245
  name: 'indentation',
246
246
  spec: indentation
247
+ }, {
248
+ name: 'border',
249
+ spec: border
247
250
  }, {
248
251
  name: 'unsupportedMark',
249
252
  spec: unsupportedMark
@@ -1,4 +1,5 @@
1
1
  import { layoutSectionWithSingleColumn } from './nodes';
2
+ import { border } from './marks';
2
3
  import { createSchema } from './create-schema';
3
4
  var getDefaultSchemaConfig = function getDefaultSchemaConfig() {
4
5
  var defaultSchemaConfig = {
@@ -17,6 +18,9 @@ export var getSchemaBasedOnStage = function getSchemaBasedOnStage() {
17
18
  defaultSchemaConfig.customNodeSpecs = {
18
19
  layoutSection: layoutSectionWithSingleColumn
19
20
  };
21
+ defaultSchemaConfig.customMarkSpecs = {
22
+ border: border
23
+ };
20
24
  }
21
25
  return createSchema(defaultSchemaConfig);
22
26
  };
@@ -1,6 +1,6 @@
1
1
  export { PanelType, blockCard, blockquote, bodiedExtension, bulletList, bulletListSelector, caption, codeBlock, codeBlockToJSON, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, date, decisionItem, decisionList, decisionListSelector, doc, embedCard, emoji, expand, expandToJSON, extension, hardBreak, heading, image, inlineCard, inlineExtension, layoutColumn, layoutSection, layoutSectionWithSingleColumn, listItem, media, mediaGroup, mediaSingle, mediaInline, mediaSingleWithCaption, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, orderedListWithOrder, panel, paragraph, placeholder, rule, getCellAttrs, getCellDomAttrs, status, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, toJSONTableCell, toJSONTableHeader, unknownBlock, unsupportedBlock, unsupportedInline } from './nodes';
2
2
  export { AnnotationTypes, alignment, alignmentPositionMap, annotation, breakout, code, colorPalette, /** @deprecated [ED-15849] The extended palette is now rolled into the main one. Use `colorPalette` instead. */
3
- colorPaletteExtended, confluenceInlineComment, dataConsumer, dataConsumerToJSON, em, fragment, fragmentToJSON, indentation, link, linkToJSON, strike, strong, subsup, textColor, typeAheadQuery, underline, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute } from './marks';
3
+ colorPaletteExtended, confluenceInlineComment, dataConsumer, dataConsumerToJSON, em, fragment, fragmentToJSON, indentation, link, linkToJSON, strike, strong, subsup, textColor, typeAheadQuery, underline, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute, border, borderColorPalette } from './marks';
4
4
  export { unsupportedNodeTypesForMediaCards } from './unsupported';
5
5
  export { inlineNodes } from './inline-nodes';
6
6
  export { sanitizeNodes, createSchema } from './create-schema';
@@ -0,0 +1,43 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { hexToEditorBorderPaletteColor } from '@atlaskit/editor-palette';
3
+ import { N300A, N600, N1000 } from '../../utils/colors';
4
+ var borderColorArrayPalette = [[N300A, 'Subtle gray'], [N600, 'Gray'], [N1000, 'Bold gray']];
5
+ export var borderColorPalette = new Map();
6
+ borderColorArrayPalette.forEach(function (_ref) {
7
+ var _ref2 = _slicedToArray(_ref, 2),
8
+ color = _ref2[0],
9
+ label = _ref2[1];
10
+ return borderColorPalette.set(color.toLowerCase(), label);
11
+ });
12
+ export var border = {
13
+ inclusive: false,
14
+ parseDOM: [{
15
+ tag: 'div[data-mark-type="border"]',
16
+ getAttrs: function getAttrs(domNode) {
17
+ var _dom$getAttribute, _dom$getAttribute2;
18
+ var dom = domNode;
19
+ var color = ((_dom$getAttribute = dom.getAttribute('data-color')) !== null && _dom$getAttribute !== void 0 ? _dom$getAttribute : '').toLowerCase();
20
+ var size = +((_dom$getAttribute2 = dom.getAttribute('data-size')) !== null && _dom$getAttribute2 !== void 0 ? _dom$getAttribute2 : '0');
21
+ return {
22
+ size: size > 3 ? 3 : size < 1 ? false : size,
23
+ color: borderColorPalette.has(color) ? color : false
24
+ };
25
+ }
26
+ }],
27
+ attrs: {
28
+ color: {},
29
+ size: {}
30
+ },
31
+ toDOM: function toDOM(mark) {
32
+ // Note -- while there is no way to create custom colors using default tooling
33
+ // the editor does supported ad hoc color values -- and there may be content
34
+ // which has been migrated or created via apis which use such values.
35
+ var paletteColorValue = hexToEditorBorderPaletteColor(mark.attrs.color) || mark.attrs.color;
36
+ return ['div', {
37
+ 'data-mark-type': 'border',
38
+ 'data-color': mark.attrs.color,
39
+ 'data-size': mark.attrs.size,
40
+ style: "--custom-palette-color: ".concat(paletteColorValue)
41
+ }];
42
+ }
43
+ };
@@ -15,4 +15,5 @@ export { annotation, AnnotationMarkStates, buildDataAttributes as buildAnnotatio
15
15
  export { unsupportedMark } from './unsupported-mark';
16
16
  export { unsupportedNodeAttribute } from './unsupported-node-attributes';
17
17
  export { dataConsumer, toJSON as dataConsumerToJSON } from './data-consumer';
18
- export { fragment, toJSON as fragmentToJSON } from './fragment';
18
+ export { fragment, toJSON as fragmentToJSON } from './fragment';
19
+ export { border, borderColorPalette } from './border';
@@ -2,12 +2,15 @@
2
2
  * @name mediaGroup_node
3
3
  */
4
4
 
5
+ // Temporary due to an existing issue in validator below:
6
+ // https://product-fabric.atlassian.net/jira/servicedesk/projects/DTR/queues/issue/DTR-1429
7
+ // TODO: Remove border and link marks from white list
5
8
  export var mediaGroup = {
6
9
  inline: false,
7
10
  group: 'block',
8
11
  content: '(media|unsupportedBlock)+',
9
12
  attrs: {},
10
- marks: 'unsupportedMark unsupportedNodeAttribute',
13
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
11
14
  selectable: false,
12
15
  parseDOM: [{
13
16
  tag: 'div[data-node-type="mediaGroup"]'
@@ -11,7 +11,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11
11
  */
12
12
 
13
13
  /**
14
- * @name mediaSingle_full_node
14
+ * @name mediaSingle_caption_node
15
15
  */
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
19
19
  */
20
20
 
21
21
  /**
22
- * @name mediaSingle_caption_node
22
+ * @name mediaSingle_full_node
23
23
  */
24
24
 
25
25
  export var defaultAttrs = {
@@ -38,7 +38,7 @@ export var mediaSingle = {
38
38
  atom: true,
39
39
  content: 'media|unsupportedBlock+|media unsupportedBlock+',
40
40
  attrs: defaultAttrs,
41
- marks: 'unsupportedMark unsupportedNodeAttribute link',
41
+ marks: 'unsupportedMark unsupportedNodeAttribute border link',
42
42
  parseDOM: [{
43
43
  tag: 'div[data-node-type="mediaSingle"]',
44
44
  getAttrs: function getAttrs(dom) {