@pie-lib/editable-html-tip-tap 2.1.11 → 2.2.0-beta

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 (99) hide show
  1. package/CHANGELOG.md +0 -84
  2. package/lib/__tests__/EditableHtml.test.js +831 -0
  3. package/lib/__tests__/EditableHtml.test.js.map +1 -0
  4. package/lib/__tests__/constants.test.js +21 -0
  5. package/lib/__tests__/constants.test.js.map +1 -0
  6. package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
  7. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +1 -0
  8. package/lib/__tests__/extensions.test.js +209 -0
  9. package/lib/__tests__/extensions.test.js.map +1 -0
  10. package/lib/__tests__/index.test.js +250 -0
  11. package/lib/__tests__/index.test.js.map +1 -0
  12. package/lib/__tests__/size-utils.test.js +57 -0
  13. package/lib/__tests__/size-utils.test.js.map +1 -0
  14. package/lib/__tests__/theme.test.js +17 -0
  15. package/lib/__tests__/theme.test.js.map +1 -0
  16. package/lib/components/__tests__/AltDialog.test.js +201 -0
  17. package/lib/components/__tests__/AltDialog.test.js.map +1 -0
  18. package/lib/components/__tests__/CharacterPicker.test.js +455 -0
  19. package/lib/components/__tests__/CharacterPicker.test.js.map +1 -0
  20. package/lib/components/__tests__/CssIcon.test.js +58 -0
  21. package/lib/components/__tests__/CssIcon.test.js.map +1 -0
  22. package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
  23. package/lib/components/__tests__/DragInTheBlank.test.js.map +1 -0
  24. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
  25. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +1 -0
  26. package/lib/components/__tests__/ImageToolbar.test.js +185 -0
  27. package/lib/components/__tests__/ImageToolbar.test.js.map +1 -0
  28. package/lib/components/__tests__/InlineDropdown.test.js +839 -0
  29. package/lib/components/__tests__/InlineDropdown.test.js.map +1 -0
  30. package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
  31. package/lib/components/__tests__/InsertImageHandler.test.js.map +1 -0
  32. package/lib/components/__tests__/MediaDialog.test.js +433 -0
  33. package/lib/components/__tests__/MediaDialog.test.js.map +1 -0
  34. package/lib/components/__tests__/MediaToolbar.test.js +126 -0
  35. package/lib/components/__tests__/MediaToolbar.test.js.map +1 -0
  36. package/lib/components/__tests__/MediaWrapper.test.js +96 -0
  37. package/lib/components/__tests__/MediaWrapper.test.js.map +1 -0
  38. package/lib/components/__tests__/MenuBar.test.js +502 -0
  39. package/lib/components/__tests__/MenuBar.test.js.map +1 -0
  40. package/lib/components/__tests__/RespArea.test.js +171 -0
  41. package/lib/components/__tests__/RespArea.test.js.map +1 -0
  42. package/lib/components/__tests__/TableIcons.test.js +153 -0
  43. package/lib/components/__tests__/TableIcons.test.js.map +1 -0
  44. package/lib/components/__tests__/TextAlign.test.js +209 -0
  45. package/lib/components/__tests__/TextAlign.test.js.map +1 -0
  46. package/lib/components/__tests__/TiptapContainer.test.js +196 -0
  47. package/lib/components/__tests__/TiptapContainer.test.js.map +1 -0
  48. package/lib/components/__tests__/characterUtils.test.js +178 -0
  49. package/lib/components/__tests__/characterUtils.test.js.map +1 -0
  50. package/lib/components/__tests__/choice.test.js +213 -0
  51. package/lib/components/__tests__/choice.test.js.map +1 -0
  52. package/lib/components/__tests__/custom-popper.test.js +108 -0
  53. package/lib/components/__tests__/custom-popper.test.js.map +1 -0
  54. package/lib/components/__tests__/done-button.test.js +72 -0
  55. package/lib/components/__tests__/done-button.test.js.map +1 -0
  56. package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
  57. package/lib/components/__tests__/toolbar-buttons.test.js.map +1 -0
  58. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
  59. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +1 -0
  60. package/lib/components/respArea/MathTemplated.js +2 -2
  61. package/lib/components/respArea/MathTemplated.js.map +1 -1
  62. package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
  63. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +1 -0
  64. package/lib/extensions/__tests__/css.test.js +214 -0
  65. package/lib/extensions/__tests__/css.test.js.map +1 -0
  66. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
  67. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +1 -0
  68. package/lib/extensions/__tests__/divNode.test.js +108 -0
  69. package/lib/extensions/__tests__/divNode.test.js.map +1 -0
  70. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
  71. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +1 -0
  72. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
  73. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +1 -0
  74. package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
  75. package/lib/extensions/__tests__/extended-list-item.test.js.map +1 -0
  76. package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
  77. package/lib/extensions/__tests__/extended-table-cell.test.js.map +1 -0
  78. package/lib/extensions/__tests__/extended-table.test.js +200 -0
  79. package/lib/extensions/__tests__/extended-table.test.js.map +1 -0
  80. package/lib/extensions/__tests__/image-component.test.js +432 -0
  81. package/lib/extensions/__tests__/image-component.test.js.map +1 -0
  82. package/lib/extensions/__tests__/image.test.js +313 -0
  83. package/lib/extensions/__tests__/image.test.js.map +1 -0
  84. package/lib/extensions/__tests__/math.test.js +1399 -0
  85. package/lib/extensions/__tests__/math.test.js.map +1 -0
  86. package/lib/extensions/__tests__/media-node-view.test.js +307 -0
  87. package/lib/extensions/__tests__/media-node-view.test.js.map +1 -0
  88. package/lib/extensions/__tests__/media.test.js +292 -0
  89. package/lib/extensions/__tests__/media.test.js.map +1 -0
  90. package/lib/extensions/__tests__/responseArea.test.js +736 -0
  91. package/lib/extensions/__tests__/responseArea.test.js.map +1 -0
  92. package/lib/utils/__tests__/helper.test.js +107 -0
  93. package/lib/utils/__tests__/helper.test.js.map +1 -0
  94. package/lib/utils/__tests__/toolbar.test.js +38 -0
  95. package/lib/utils/__tests__/toolbar.test.js.map +1 -0
  96. package/package.json +7 -7
  97. package/src/components/respArea/MathTemplated.jsx +1 -1
  98. package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
  99. package/LICENSE.md +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.test.js","names":["_css","require","jest","mock","Mark","create","fn","config","mergeAttributes","_len","arguments","length","args","Array","_key","Object","assign","apply","concat","render","describe","it","expect","CSSMark","name","toBe","options","addOptions","toHaveProperty","isArray","classes","toHaveLength","attributes","addAttributes","_typeof2","parseHTML","renderHTML","mockEl","getAttribute","attr","result","toHaveBeenCalledWith","toEqual","beforeEach","rules","getAttrs","HTMLAttributes","commands","addCommands","setCSSClass","unsetCSSClass","openCSSClassDialog","context","call","mockCommands","setMark","unsetMark","mockElements","remove","document","querySelectorAll","removeDialogs","toHaveBeenCalled","not","toThrow"],"sources":["../../../src/extensions/__tests__/css.test.js"],"sourcesContent":["import { CSSMark, removeDialogs } from '../css';\n\njest.mock('@tiptap/core', () => ({\n Mark: { create: jest.fn((config) => config) },\n mergeAttributes: jest.fn((...args) => Object.assign({}, ...args)),\n}));\n\njest.mock('react-dom', () => ({\n render: jest.fn(),\n}));\n\ndescribe('CSSMark', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(CSSMark.name).toBe('cssmark');\n });\n });\n\n describe('addOptions', () => {\n it('returns default options with empty classes array', () => {\n const options = CSSMark.addOptions();\n\n expect(options).toHaveProperty('classes');\n expect(Array.isArray(options.classes)).toBe(true);\n expect(options.classes).toHaveLength(0);\n });\n });\n\n describe('addAttributes', () => {\n it('returns class attribute configuration', () => {\n const attributes = CSSMark.addAttributes();\n\n expect(attributes).toHaveProperty('class');\n expect(attributes.class).toHaveProperty('default', null);\n expect(attributes.class).toHaveProperty('parseHTML');\n expect(attributes.class).toHaveProperty('renderHTML');\n expect(typeof attributes.class.parseHTML).toBe('function');\n expect(typeof attributes.class.renderHTML).toBe('function');\n });\n\n it('parseHTML extracts class attribute', () => {\n const attributes = CSSMark.addAttributes();\n const mockEl = {\n getAttribute: jest.fn((attr) => (attr === 'class' ? 'my-class' : null)),\n };\n\n const result = attributes.class.parseHTML(mockEl);\n\n expect(result).toBe('my-class');\n expect(mockEl.getAttribute).toHaveBeenCalledWith('class');\n });\n\n it('renderHTML returns empty object when no class', () => {\n const attributes = CSSMark.addAttributes();\n const result = attributes.class.renderHTML({ class: null });\n\n expect(result).toEqual({});\n });\n\n it('renderHTML returns class when present', () => {\n const attributes = CSSMark.addAttributes();\n const result = attributes.class.renderHTML({ class: 'my-class' });\n\n expect(result).toEqual({ class: 'my-class' });\n });\n });\n\n describe('parseHTML', () => {\n beforeEach(() => {\n CSSMark.options = { classes: ['allowed-class', 'another-class'] };\n });\n\n it('returns array with span[class] selector', () => {\n const rules = CSSMark.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag', 'span[class]');\n expect(rules[0]).toHaveProperty('getAttrs');\n });\n\n it('matches allowed classes', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => 'allowed-class some-other'),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toEqual({ class: 'allowed-class' });\n });\n\n it('returns false for non-allowed classes', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => 'not-allowed'),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toBe(false);\n });\n\n it('handles empty class attribute', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => ''),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toBe(false);\n });\n });\n\n describe('renderHTML', () => {\n it('returns span with merged attributes', () => {\n const result = CSSMark.renderHTML({\n HTMLAttributes: { class: 'my-class' },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toEqual({ class: 'my-class' });\n expect(result[2]).toBe(0);\n });\n });\n\n describe('addCommands', () => {\n it('returns setCSSClass command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('setCSSClass');\n expect(typeof commands.setCSSClass).toBe('function');\n });\n\n it('returns unsetCSSClass command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('unsetCSSClass');\n expect(typeof commands.unsetCSSClass).toBe('function');\n });\n\n it('returns openCSSClassDialog command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('openCSSClassDialog');\n expect(typeof commands.openCSSClassDialog).toBe('function');\n });\n\n it('setCSSClass sets mark with class name', () => {\n const context = { name: 'cssmark' };\n const commands = CSSMark.addCommands.call(context);\n const mockCommands = {\n setMark: jest.fn(() => true),\n };\n\n const result = commands.setCSSClass('my-class')({ commands: mockCommands });\n\n expect(mockCommands.setMark).toHaveBeenCalledWith('cssmark', { class: 'my-class' });\n expect(result).toBe(true);\n });\n\n it('unsetCSSClass unsets mark', () => {\n const context = { name: 'cssmark' };\n const commands = CSSMark.addCommands.call(context);\n const mockCommands = {\n unsetMark: jest.fn(() => true),\n };\n\n const result = commands.unsetCSSClass()({ commands: mockCommands });\n\n expect(mockCommands.unsetMark).toHaveBeenCalledWith('cssmark');\n expect(result).toBe(true);\n });\n });\n});\n\ndescribe('removeDialogs', () => {\n it('removes all elements with insert-css-dialog class', () => {\n const mockElements = [{ remove: jest.fn() }, { remove: jest.fn() }];\n\n document.querySelectorAll = jest.fn(() => mockElements);\n\n removeDialogs();\n\n expect(document.querySelectorAll).toHaveBeenCalledWith('.insert-css-dialog');\n expect(mockElements[0].remove).toHaveBeenCalled();\n expect(mockElements[1].remove).toHaveBeenCalled();\n });\n\n it('handles no dialogs gracefully', () => {\n document.querySelectorAll = jest.fn(() => []);\n\n expect(() => removeDialogs()).not.toThrow();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _react2 = require("@testing-library/react");
7
+ var _customToolbarWrapper = _interopRequireDefault(require("../custom-toolbar-wrapper"));
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ jest.mock('../../components/common/done-button', function () {
11
+ return {
12
+ DoneButton: function DoneButton(_ref) {
13
+ var onClick = _ref.onClick;
14
+ return /*#__PURE__*/_react["default"].createElement("button", {
15
+ "data-testid": "done-button",
16
+ onClick: onClick
17
+ }, "Done");
18
+ }
19
+ };
20
+ });
21
+ jest.mock('@mui/icons-material/Delete', function () {
22
+ return {
23
+ __esModule: true,
24
+ "default": function _default() {
25
+ return /*#__PURE__*/_react["default"].createElement("span", {
26
+ "data-testid": "delete-icon"
27
+ }, "Delete");
28
+ }
29
+ };
30
+ });
31
+ describe('CustomToolbarWrapper', function () {
32
+ var mockOnDone = jest.fn();
33
+ var mockOnDelete = jest.fn();
34
+ var defaultToolbarOpts = {
35
+ position: 'bottom',
36
+ alignment: 'left',
37
+ alwaysVisible: false
38
+ };
39
+ beforeEach(function () {
40
+ jest.clearAllMocks();
41
+ });
42
+ it('renders without crashing', function () {
43
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
44
+ showDone: false,
45
+ toolbarOpts: defaultToolbarOpts
46
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
47
+ container = _render.container;
48
+ expect(container).toBeInTheDocument();
49
+ });
50
+ it('renders children', function () {
51
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
52
+ showDone: false,
53
+ toolbarOpts: defaultToolbarOpts
54
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
55
+ getByText = _render2.getByText;
56
+ expect(getByText('Test content')).toBeInTheDocument();
57
+ });
58
+ it('does not show done button when showDone is false', function () {
59
+ var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
60
+ showDone: false,
61
+ onDone: mockOnDone,
62
+ toolbarOpts: defaultToolbarOpts
63
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
64
+ queryByTestId = _render3.queryByTestId;
65
+ expect(queryByTestId('done-button')).not.toBeInTheDocument();
66
+ });
67
+ it('shows done button when showDone is true', function () {
68
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
69
+ showDone: true,
70
+ onDone: mockOnDone,
71
+ toolbarOpts: defaultToolbarOpts
72
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
73
+ getByTestId = _render4.getByTestId;
74
+ expect(getByTestId('done-button')).toBeInTheDocument();
75
+ });
76
+ it('calls onDone when done button is clicked', function () {
77
+ var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
78
+ showDone: true,
79
+ onDone: mockOnDone,
80
+ toolbarOpts: defaultToolbarOpts
81
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
82
+ getByTestId = _render5.getByTestId;
83
+ var doneButton = getByTestId('done-button');
84
+ _react2.fireEvent.click(doneButton);
85
+ expect(mockOnDone).toHaveBeenCalledTimes(1);
86
+ });
87
+ it('does not show delete button when deletable is false', function () {
88
+ var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
89
+ deletable: false,
90
+ toolbarOpts: defaultToolbarOpts
91
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
92
+ queryByTestId = _render6.queryByTestId;
93
+ expect(queryByTestId('delete-icon')).not.toBeInTheDocument();
94
+ });
95
+ it('shows delete button when deletable is true', function () {
96
+ var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
97
+ deletable: true,
98
+ onDelete: mockOnDelete,
99
+ toolbarOpts: defaultToolbarOpts
100
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
101
+ getByTestId = _render7.getByTestId;
102
+ expect(getByTestId('delete-icon')).toBeInTheDocument();
103
+ });
104
+ it('calls onDelete when delete button is clicked', function () {
105
+ var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
106
+ deletable: true,
107
+ onDelete: mockOnDelete,
108
+ toolbarOpts: defaultToolbarOpts
109
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
110
+ getByLabelText = _render8.getByLabelText;
111
+ var deleteButton = getByLabelText('Delete');
112
+ _react2.fireEvent.mouseDown(deleteButton);
113
+ expect(mockOnDelete).toHaveBeenCalledTimes(1);
114
+ });
115
+ it('applies right alignment from toolbarOpts', function () {
116
+ var toolbarOpts = _objectSpread(_objectSpread({}, defaultToolbarOpts), {}, {
117
+ alignment: 'right'
118
+ });
119
+ var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
120
+ toolbarOpts: toolbarOpts
121
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
122
+ container = _render9.container;
123
+ var toolbar = container.querySelector('.pie-toolbar');
124
+ expect(toolbar).toHaveStyle({
125
+ right: '0'
126
+ });
127
+ });
128
+ it('applies autoWidth when specified', function () {
129
+ var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
130
+ autoWidth: true,
131
+ toolbarOpts: defaultToolbarOpts
132
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
133
+ container = _render0.container;
134
+ var toolbar = container.querySelector('.pie-toolbar');
135
+ expect(toolbar).toHaveStyle({
136
+ width: 'auto'
137
+ });
138
+ });
139
+ it('applies minWidth from toolbarOpts', function () {
140
+ var toolbarOpts = _objectSpread(_objectSpread({}, defaultToolbarOpts), {}, {
141
+ minWidth: '300px'
142
+ });
143
+ var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
144
+ toolbarOpts: toolbarOpts
145
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
146
+ container = _render1.container;
147
+ var toolbar = container.querySelector('.pie-toolbar');
148
+ expect(toolbar).toHaveStyle({
149
+ minWidth: '300px'
150
+ });
151
+ });
152
+ it('hides toolbar when isHidden is true', function () {
153
+ var toolbarOpts = _objectSpread(_objectSpread({}, defaultToolbarOpts), {}, {
154
+ isHidden: true
155
+ });
156
+ var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
157
+ toolbarOpts: toolbarOpts
158
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Test content"))),
159
+ container = _render10.container;
160
+ var toolbar = container.querySelector('.pie-toolbar');
161
+ expect(toolbar).toHaveStyle({
162
+ visibility: 'hidden'
163
+ });
164
+ });
165
+ it('renders multiple children', function () {
166
+ var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_customToolbarWrapper["default"], {
167
+ showDone: false,
168
+ toolbarOpts: defaultToolbarOpts
169
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "First child"), /*#__PURE__*/_react["default"].createElement("div", null, "Second child"))),
170
+ getByText = _render11.getByText;
171
+ expect(getByText('First child')).toBeInTheDocument();
172
+ expect(getByText('Second child')).toBeInTheDocument();
173
+ });
174
+ });
175
+ //# sourceMappingURL=custom-toolbar-wrapper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-toolbar-wrapper.test.js","names":["_react","_interopRequireDefault","require","_react2","_customToolbarWrapper","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","DoneButton","_ref","onClick","createElement","__esModule","default","describe","mockOnDone","fn","mockOnDelete","defaultToolbarOpts","position","alignment","alwaysVisible","beforeEach","clearAllMocks","it","_render","render","showDone","toolbarOpts","container","expect","toBeInTheDocument","_render2","getByText","_render3","onDone","queryByTestId","not","_render4","getByTestId","_render5","doneButton","fireEvent","click","toHaveBeenCalledTimes","_render6","deletable","_render7","onDelete","_render8","getByLabelText","deleteButton","mouseDown","_render9","toolbar","querySelector","toHaveStyle","right","_render0","autoWidth","width","minWidth","_render1","isHidden","_render10","visibility","_render11"],"sources":["../../../src/extensions/__tests__/custom-toolbar-wrapper.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render } from '@testing-library/react';\nimport CustomToolbarWrapper from '../custom-toolbar-wrapper';\n\njest.mock('../../components/common/done-button', () => ({\n DoneButton: ({ onClick }) => (\n <button data-testid=\"done-button\" onClick={onClick}>\n Done\n </button>\n ),\n}));\n\njest.mock('@mui/icons-material/Delete', () => ({\n __esModule: true,\n default: () => <span data-testid=\"delete-icon\">Delete</span>,\n}));\n\ndescribe('CustomToolbarWrapper', () => {\n const mockOnDone = jest.fn();\n const mockOnDelete = jest.fn();\n const defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('renders without crashing', () => {\n const { container } = render(\n <CustomToolbarWrapper showDone={false} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(container).toBeInTheDocument();\n });\n\n it('renders children', () => {\n const { getByText } = render(\n <CustomToolbarWrapper showDone={false} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(getByText('Test content')).toBeInTheDocument();\n });\n\n it('does not show done button when showDone is false', () => {\n const { queryByTestId } = render(\n <CustomToolbarWrapper showDone={false} onDone={mockOnDone} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(queryByTestId('done-button')).not.toBeInTheDocument();\n });\n\n it('shows done button when showDone is true', () => {\n const { getByTestId } = render(\n <CustomToolbarWrapper showDone={true} onDone={mockOnDone} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(getByTestId('done-button')).toBeInTheDocument();\n });\n\n it('calls onDone when done button is clicked', () => {\n const { getByTestId } = render(\n <CustomToolbarWrapper showDone={true} onDone={mockOnDone} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const doneButton = getByTestId('done-button');\n fireEvent.click(doneButton);\n\n expect(mockOnDone).toHaveBeenCalledTimes(1);\n });\n\n it('does not show delete button when deletable is false', () => {\n const { queryByTestId } = render(\n <CustomToolbarWrapper deletable={false} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(queryByTestId('delete-icon')).not.toBeInTheDocument();\n });\n\n it('shows delete button when deletable is true', () => {\n const { getByTestId } = render(\n <CustomToolbarWrapper deletable={true} onDelete={mockOnDelete} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n expect(getByTestId('delete-icon')).toBeInTheDocument();\n });\n\n it('calls onDelete when delete button is clicked', () => {\n const { getByLabelText } = render(\n <CustomToolbarWrapper deletable={true} onDelete={mockOnDelete} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const deleteButton = getByLabelText('Delete');\n fireEvent.mouseDown(deleteButton);\n\n expect(mockOnDelete).toHaveBeenCalledTimes(1);\n });\n\n it('applies right alignment from toolbarOpts', () => {\n const toolbarOpts = {\n ...defaultToolbarOpts,\n alignment: 'right',\n };\n\n const { container } = render(\n <CustomToolbarWrapper toolbarOpts={toolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const toolbar = container.querySelector('.pie-toolbar');\n expect(toolbar).toHaveStyle({ right: '0' });\n });\n\n it('applies autoWidth when specified', () => {\n const { container } = render(\n <CustomToolbarWrapper autoWidth={true} toolbarOpts={defaultToolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const toolbar = container.querySelector('.pie-toolbar');\n expect(toolbar).toHaveStyle({ width: 'auto' });\n });\n\n it('applies minWidth from toolbarOpts', () => {\n const toolbarOpts = {\n ...defaultToolbarOpts,\n minWidth: '300px',\n };\n\n const { container } = render(\n <CustomToolbarWrapper toolbarOpts={toolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const toolbar = container.querySelector('.pie-toolbar');\n expect(toolbar).toHaveStyle({ minWidth: '300px' });\n });\n\n it('hides toolbar when isHidden is true', () => {\n const toolbarOpts = {\n ...defaultToolbarOpts,\n isHidden: true,\n };\n\n const { container } = render(\n <CustomToolbarWrapper toolbarOpts={toolbarOpts}>\n <div>Test content</div>\n </CustomToolbarWrapper>,\n );\n\n const toolbar = container.querySelector('.pie-toolbar');\n expect(toolbar).toHaveStyle({ visibility: 'hidden' });\n });\n\n it('renders multiple children', () => {\n const { getByText } = render(\n <CustomToolbarWrapper showDone={false} toolbarOpts={defaultToolbarOpts}>\n <div>First child</div>\n <div>Second child</div>\n </CustomToolbarWrapper>,\n );\n expect(getByText('First child')).toBeInTheDocument();\n expect(getByText('Second child')).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _divNode = require("../div-node");
4
+ jest.mock('@tiptap/core', function () {
5
+ return {
6
+ Node: {
7
+ create: jest.fn(function (config) {
8
+ return config;
9
+ })
10
+ }
11
+ };
12
+ });
13
+ describe('DivNode', function () {
14
+ describe('configuration', function () {
15
+ it('has correct name', function () {
16
+ expect(_divNode.DivNode.name).toBe('div');
17
+ });
18
+ it('is block level', function () {
19
+ expect(_divNode.DivNode.group).toBe('block');
20
+ expect(_divNode.DivNode.content).toBe('inline*');
21
+ });
22
+ });
23
+ describe('parseHTML', function () {
24
+ it('parses <div> tags', function () {
25
+ var rules = _divNode.DivNode.parseHTML();
26
+ expect(Array.isArray(rules)).toBe(true);
27
+ expect(rules).toHaveLength(1);
28
+ expect(rules[0]).toHaveProperty('tag', 'div');
29
+ });
30
+ });
31
+ describe('renderHTML', function () {
32
+ it('renders a <div> tag', function () {
33
+ var result = _divNode.DivNode.renderHTML({
34
+ HTMLAttributes: {
35
+ "class": 'foo'
36
+ }
37
+ });
38
+ expect(result[0]).toBe('div');
39
+ expect(result[1]).toEqual({
40
+ "class": 'foo'
41
+ });
42
+ });
43
+ });
44
+ describe('addKeyboardShortcuts', function () {
45
+ it('does nothing when current block is not div', function () {
46
+ var mockEditor = {
47
+ state: {
48
+ selection: {
49
+ $from: {
50
+ parent: {
51
+ type: {
52
+ name: 'paragraph'
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ };
59
+ var shortcuts = _divNode.DivNode.addKeyboardShortcuts.call({
60
+ editor: mockEditor
61
+ });
62
+ var handled = shortcuts.Enter();
63
+ expect(handled).toBe(false);
64
+ });
65
+ it('turns div into paragraph and splits when Enter is pressed in a div', function () {
66
+ var _chain = {
67
+ focus: jest.fn(function () {
68
+ return _chain;
69
+ }),
70
+ setNode: jest.fn(function () {
71
+ return _chain;
72
+ }),
73
+ splitBlock: jest.fn(function () {
74
+ return _chain;
75
+ }),
76
+ run: jest.fn(function () {
77
+ return true;
78
+ })
79
+ };
80
+ var mockEditor = {
81
+ state: {
82
+ selection: {
83
+ $from: {
84
+ parent: {
85
+ type: {
86
+ name: 'div'
87
+ }
88
+ }
89
+ }
90
+ }
91
+ },
92
+ chain: function chain() {
93
+ return _chain;
94
+ }
95
+ };
96
+ var shortcuts = _divNode.DivNode.addKeyboardShortcuts.call({
97
+ editor: mockEditor
98
+ });
99
+ var handled = shortcuts.Enter();
100
+ expect(_chain.focus).toHaveBeenCalled();
101
+ expect(_chain.setNode).toHaveBeenCalledWith('paragraph');
102
+ expect(_chain.splitBlock).toHaveBeenCalled();
103
+ expect(_chain.run).toHaveBeenCalled();
104
+ expect(handled).toBe(true);
105
+ });
106
+ });
107
+ });
108
+ //# sourceMappingURL=divNode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divNode.test.js","names":["_divNode","require","jest","mock","Node","create","fn","config","describe","it","expect","DivNode","name","toBe","group","content","rules","parseHTML","Array","isArray","toHaveLength","toHaveProperty","result","renderHTML","HTMLAttributes","toEqual","mockEditor","state","selection","$from","parent","type","shortcuts","addKeyboardShortcuts","call","editor","handled","Enter","chain","focus","setNode","splitBlock","run","toHaveBeenCalled","toHaveBeenCalledWith"],"sources":["../../../src/extensions/__tests__/divNode.test.js"],"sourcesContent":["import { DivNode } from '../div-node';\n\njest.mock('@tiptap/core', () => ({\n Node: {\n create: jest.fn((config) => config),\n },\n}));\n\ndescribe('DivNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(DivNode.name).toBe('div');\n });\n\n it('is block level', () => {\n expect(DivNode.group).toBe('block');\n expect(DivNode.content).toBe('inline*');\n });\n });\n\n describe('parseHTML', () => {\n it('parses <div> tags', () => {\n const rules = DivNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag', 'div');\n });\n });\n\n describe('renderHTML', () => {\n it('renders a <div> tag', () => {\n const result = DivNode.renderHTML({ HTMLAttributes: { class: 'foo' } });\n\n expect(result[0]).toBe('div');\n expect(result[1]).toEqual({ class: 'foo' });\n });\n });\n\n describe('addKeyboardShortcuts', () => {\n it('does nothing when current block is not div', () => {\n const mockEditor = {\n state: {\n selection: {\n $from: {\n parent: { type: { name: 'paragraph' } },\n },\n },\n },\n };\n\n const shortcuts = DivNode.addKeyboardShortcuts.call({ editor: mockEditor });\n const handled = shortcuts.Enter();\n\n expect(handled).toBe(false);\n });\n\n it('turns div into paragraph and splits when Enter is pressed in a div', () => {\n const chain = {\n focus: jest.fn(() => chain),\n setNode: jest.fn(() => chain),\n splitBlock: jest.fn(() => chain),\n run: jest.fn(() => true),\n };\n\n const mockEditor = {\n state: {\n selection: {\n $from: {\n parent: { type: { name: 'div' } },\n },\n },\n },\n chain: () => chain,\n };\n\n const shortcuts = DivNode.addKeyboardShortcuts.call({ editor: mockEditor });\n const handled = shortcuts.Enter();\n\n expect(chain.focus).toHaveBeenCalled();\n expect(chain.setNode).toHaveBeenCalledWith('paragraph');\n expect(chain.splitBlock).toHaveBeenCalled();\n expect(chain.run).toHaveBeenCalled();\n expect(handled).toBe(true);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _core = require("@tiptap/core");
5
+ var _starterKit = _interopRequireDefault(require("@tiptap/starter-kit"));
6
+ var _divNode = require("../div-node");
7
+ var _ensureEmptyRootDiv = require("../ensure-empty-root-div");
8
+ /** Match EditableHtml so TrailingNode does not add a second empty block next to an empty paragraph. */
9
+ var starterKitConfigured = _starterKit["default"].configure({
10
+ trailingNode: {
11
+ node: 'paragraph',
12
+ notAfter: ['paragraph', 'div']
13
+ }
14
+ });
15
+ describe('EnsureEmptyRootIsDiv', function () {
16
+ var extensions = [starterKitConfigured, _divNode.DivNode, _ensureEmptyRootDiv.EnsureEmptyRootIsDiv];
17
+ var editor;
18
+ afterEach(function () {
19
+ if (editor) {
20
+ editor.destroy();
21
+ editor = null;
22
+ }
23
+ });
24
+ it('replaces a lone root paragraph with an empty div after select-all and delete (full delete flow)', function () {
25
+ editor = new _core.Editor({
26
+ extensions: extensions,
27
+ content: '<p>hello</p>'
28
+ });
29
+ editor.chain().focus().selectAll().deleteSelection().run();
30
+ expect(editor.state.doc.childCount).toBe(1);
31
+ expect(editor.state.doc.firstChild.type.name).toBe('div');
32
+ expect(editor.state.doc.firstChild.textContent).toBe('');
33
+ });
34
+ it('does not replace a root paragraph that still has text', function () {
35
+ editor = new _core.Editor({
36
+ extensions: extensions,
37
+ content: '<p>x</p>'
38
+ });
39
+ expect(editor.state.doc.firstChild.type.name).toBe('paragraph');
40
+ });
41
+ it('does not run when there is more than one top-level block', function () {
42
+ editor = new _core.Editor({
43
+ extensions: extensions,
44
+ content: '<p>a</p><p>b</p>'
45
+ });
46
+ expect(editor.state.doc.childCount).toBe(2);
47
+ expect(editor.state.doc.firstChild.type.name).toBe('paragraph');
48
+ });
49
+ });
50
+ //# sourceMappingURL=ensure-empty-root-div.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-empty-root-div.test.js","names":["_core","require","_starterKit","_interopRequireDefault","_divNode","_ensureEmptyRootDiv","starterKitConfigured","StarterKit","configure","trailingNode","node","notAfter","describe","extensions","DivNode","EnsureEmptyRootIsDiv","editor","afterEach","destroy","it","Editor","content","chain","focus","selectAll","deleteSelection","run","expect","state","doc","childCount","toBe","firstChild","type","name","textContent"],"sources":["../../../src/extensions/__tests__/ensure-empty-root-div.test.js"],"sourcesContent":["import { Editor } from '@tiptap/core';\nimport StarterKit from '@tiptap/starter-kit';\nimport { DivNode } from '../div-node';\nimport { EnsureEmptyRootIsDiv } from '../ensure-empty-root-div';\n\n/** Match EditableHtml so TrailingNode does not add a second empty block next to an empty paragraph. */\nconst starterKitConfigured = StarterKit.configure({\n trailingNode: {\n node: 'paragraph',\n notAfter: ['paragraph', 'div'],\n },\n});\n\ndescribe('EnsureEmptyRootIsDiv', () => {\n const extensions = [starterKitConfigured, DivNode, EnsureEmptyRootIsDiv];\n\n let editor;\n\n afterEach(() => {\n if (editor) {\n editor.destroy();\n editor = null;\n }\n });\n\n it('replaces a lone root paragraph with an empty div after select-all and delete (full delete flow)', () => {\n editor = new Editor({\n extensions,\n content: '<p>hello</p>',\n });\n\n editor.chain().focus().selectAll().deleteSelection().run();\n\n expect(editor.state.doc.childCount).toBe(1);\n expect(editor.state.doc.firstChild.type.name).toBe('div');\n expect(editor.state.doc.firstChild.textContent).toBe('');\n });\n\n it('does not replace a root paragraph that still has text', () => {\n editor = new Editor({\n extensions,\n content: '<p>x</p>',\n });\n\n expect(editor.state.doc.firstChild.type.name).toBe('paragraph');\n });\n\n it('does not run when there is more than one top-level block', () => {\n editor = new Editor({\n extensions,\n content: '<p>a</p><p>b</p>',\n });\n\n expect(editor.state.doc.childCount).toBe(2);\n expect(editor.state.doc.firstChild.type.name).toBe('paragraph');\n });\n});\n"],"mappings":";;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAEA;AACA,IAAMK,oBAAoB,GAAGC,sBAAU,CAACC,SAAS,CAAC;EAChDC,YAAY,EAAE;IACZC,IAAI,EAAE,WAAW;IACjBC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK;EAC/B;AACF,CAAC,CAAC;AAEFC,QAAQ,CAAC,sBAAsB,EAAE,YAAM;EACrC,IAAMC,UAAU,GAAG,CAACP,oBAAoB,EAAEQ,gBAAO,EAAEC,wCAAoB,CAAC;EAExE,IAAIC,MAAM;EAEVC,SAAS,CAAC,YAAM;IACd,IAAID,MAAM,EAAE;MACVA,MAAM,CAACE,OAAO,CAAC,CAAC;MAChBF,MAAM,GAAG,IAAI;IACf;EACF,CAAC,CAAC;EAEFG,EAAE,CAAC,iGAAiG,EAAE,YAAM;IAC1GH,MAAM,GAAG,IAAII,YAAM,CAAC;MAClBP,UAAU,EAAVA,UAAU;MACVQ,OAAO,EAAE;IACX,CAAC,CAAC;IAEFL,MAAM,CAACM,KAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IAE1DC,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACC,UAAU,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IAC3CJ,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACG,UAAU,CAACC,IAAI,CAACC,IAAI,CAAC,CAACH,IAAI,CAAC,KAAK,CAAC;IACzDJ,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACG,UAAU,CAACG,WAAW,CAAC,CAACJ,IAAI,CAAC,EAAE,CAAC;EAC1D,CAAC,CAAC;EAEFZ,EAAE,CAAC,uDAAuD,EAAE,YAAM;IAChEH,MAAM,GAAG,IAAII,YAAM,CAAC;MAClBP,UAAU,EAAVA,UAAU;MACVQ,OAAO,EAAE;IACX,CAAC,CAAC;IAEFM,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACG,UAAU,CAACC,IAAI,CAACC,IAAI,CAAC,CAACH,IAAI,CAAC,WAAW,CAAC;EACjE,CAAC,CAAC;EAEFZ,EAAE,CAAC,0DAA0D,EAAE,YAAM;IACnEH,MAAM,GAAG,IAAII,YAAM,CAAC;MAClBP,UAAU,EAAVA,UAAU;MACVQ,OAAO,EAAE;IACX,CAAC,CAAC;IAEFM,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACC,UAAU,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IAC3CJ,MAAM,CAACX,MAAM,CAACY,KAAK,CAACC,GAAG,CAACG,UAAU,CAACC,IAAI,CAACC,IAAI,CAAC,CAACH,IAAI,CAAC,WAAW,CAAC;EACjE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _ensureListItemContentIsDiv = require("../ensure-list-item-content-is-div");
4
+ describe('EnsureListItemContentIsDiv', function () {
5
+ it('registers a ProseMirror plugin that rewrites listItem paragraph children to div', function () {
6
+ var plugins = _ensureListItemContentIsDiv.EnsureListItemContentIsDiv.config.addProseMirrorPlugins();
7
+ expect(Array.isArray(plugins)).toBe(true);
8
+ expect(plugins).toHaveLength(1);
9
+ var plugin = plugins[0];
10
+ var divType = {
11
+ name: 'div'
12
+ };
13
+ var tr = {
14
+ setNodeMarkup: jest.fn()
15
+ };
16
+ var paragraphChild = {
17
+ type: {
18
+ name: 'paragraph'
19
+ },
20
+ attrs: {
21
+ "class": 'x'
22
+ },
23
+ nodeSize: 6
24
+ };
25
+ var listItemNode = {
26
+ type: {
27
+ name: 'listItem'
28
+ },
29
+ forEach: function forEach(cb) {
30
+ return cb(paragraphChild);
31
+ }
32
+ };
33
+ var newState = {
34
+ schema: {
35
+ nodes: {
36
+ div: divType
37
+ }
38
+ },
39
+ tr: tr,
40
+ doc: {
41
+ descendants: function descendants(cb) {
42
+ return cb(listItemNode, 10);
43
+ }
44
+ }
45
+ };
46
+ var result = plugin.spec.appendTransaction([{
47
+ docChanged: true
48
+ }], {}, newState);
49
+ expect(tr.setNodeMarkup).toHaveBeenCalledWith(11, divType, paragraphChild.attrs);
50
+ expect(result).toBe(tr);
51
+ });
52
+ it('returns null when there is no document change', function () {
53
+ var plugin = _ensureListItemContentIsDiv.EnsureListItemContentIsDiv.config.addProseMirrorPlugins()[0];
54
+ var result = plugin.spec.appendTransaction([{
55
+ docChanged: false
56
+ }], {}, {});
57
+ expect(result).toBeNull();
58
+ });
59
+ });
60
+ //# sourceMappingURL=ensure-list-item-content-is-div.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-list-item-content-is-div.test.js","names":["_ensureListItemContentIsDiv","require","describe","it","plugins","EnsureListItemContentIsDiv","config","addProseMirrorPlugins","expect","Array","isArray","toBe","toHaveLength","plugin","divType","name","tr","setNodeMarkup","jest","fn","paragraphChild","type","attrs","nodeSize","listItemNode","forEach","cb","newState","schema","nodes","div","doc","descendants","result","spec","appendTransaction","docChanged","toHaveBeenCalledWith","toBeNull"],"sources":["../../../src/extensions/__tests__/ensure-list-item-content-is-div.test.js"],"sourcesContent":["import { EnsureListItemContentIsDiv } from '../ensure-list-item-content-is-div';\n\ndescribe('EnsureListItemContentIsDiv', () => {\n it('registers a ProseMirror plugin that rewrites listItem paragraph children to div', () => {\n const plugins = EnsureListItemContentIsDiv.config.addProseMirrorPlugins();\n expect(Array.isArray(plugins)).toBe(true);\n expect(plugins).toHaveLength(1);\n\n const plugin = plugins[0];\n const divType = { name: 'div' };\n const tr = { setNodeMarkup: jest.fn() };\n\n const paragraphChild = {\n type: { name: 'paragraph' },\n attrs: { class: 'x' },\n nodeSize: 6,\n };\n\n const listItemNode = {\n type: { name: 'listItem' },\n forEach: (cb) => cb(paragraphChild),\n };\n\n const newState = {\n schema: { nodes: { div: divType } },\n tr,\n doc: {\n descendants: (cb) => cb(listItemNode, 10),\n },\n };\n\n const result = plugin.spec.appendTransaction([{ docChanged: true }], {}, newState);\n\n expect(tr.setNodeMarkup).toHaveBeenCalledWith(11, divType, paragraphChild.attrs);\n expect(result).toBe(tr);\n });\n\n it('returns null when there is no document change', () => {\n const plugin = EnsureListItemContentIsDiv.config.addProseMirrorPlugins()[0];\n\n const result = plugin.spec.appendTransaction([{ docChanged: false }], {}, {});\n expect(result).toBeNull();\n });\n});\n"],"mappings":";;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,4BAA4B,EAAE,YAAM;EAC3CC,EAAE,CAAC,iFAAiF,EAAE,YAAM;IAC1F,IAAMC,OAAO,GAAGC,sDAA0B,CAACC,MAAM,CAACC,qBAAqB,CAAC,CAAC;IACzEC,MAAM,CAACC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,CAAC,CAACO,IAAI,CAAC,IAAI,CAAC;IACzCH,MAAM,CAACJ,OAAO,CAAC,CAACQ,YAAY,CAAC,CAAC,CAAC;IAE/B,IAAMC,MAAM,GAAGT,OAAO,CAAC,CAAC,CAAC;IACzB,IAAMU,OAAO,GAAG;MAAEC,IAAI,EAAE;IAAM,CAAC;IAC/B,IAAMC,EAAE,GAAG;MAAEC,aAAa,EAAEC,IAAI,CAACC,EAAE,CAAC;IAAE,CAAC;IAEvC,IAAMC,cAAc,GAAG;MACrBC,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAY,CAAC;MAC3BO,KAAK,EAAE;QAAE,SAAO;MAAI,CAAC;MACrBC,QAAQ,EAAE;IACZ,CAAC;IAED,IAAMC,YAAY,GAAG;MACnBH,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAW,CAAC;MAC1BU,OAAO,EAAE,SAATA,OAAOA,CAAGC,EAAE;QAAA,OAAKA,EAAE,CAACN,cAAc,CAAC;MAAA;IACrC,CAAC;IAED,IAAMO,QAAQ,GAAG;MACfC,MAAM,EAAE;QAAEC,KAAK,EAAE;UAAEC,GAAG,EAAEhB;QAAQ;MAAE,CAAC;MACnCE,EAAE,EAAFA,EAAE;MACFe,GAAG,EAAE;QACHC,WAAW,EAAE,SAAbA,WAAWA,CAAGN,EAAE;UAAA,OAAKA,EAAE,CAACF,YAAY,EAAE,EAAE,CAAC;QAAA;MAC3C;IACF,CAAC;IAED,IAAMS,MAAM,GAAGpB,MAAM,CAACqB,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAAEC,UAAU,EAAE;IAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAET,QAAQ,CAAC;IAElFnB,MAAM,CAACQ,EAAE,CAACC,aAAa,CAAC,CAACoB,oBAAoB,CAAC,EAAE,EAAEvB,OAAO,EAAEM,cAAc,CAACE,KAAK,CAAC;IAChFd,MAAM,CAACyB,MAAM,CAAC,CAACtB,IAAI,CAACK,EAAE,CAAC;EACzB,CAAC,CAAC;EAEFb,EAAE,CAAC,+CAA+C,EAAE,YAAM;IACxD,IAAMU,MAAM,GAAGR,sDAA0B,CAACC,MAAM,CAACC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAM0B,MAAM,GAAGpB,MAAM,CAACqB,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E5B,MAAM,CAACyB,MAAM,CAAC,CAACK,QAAQ,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _extendedListItem = require("../extended-list-item");
4
+ describe('ExtendedListItem', function () {
5
+ it('extends listItem and prefers div over paragraph in content spec', function () {
6
+ var _ref, _ExtendedListItem$opt, _ExtendedListItem$opt2, _ExtendedListItem$con, _ExtendedListItem$ext;
7
+ expect(_extendedListItem.ExtendedListItem.name).toBe('listItem');
8
+ var content = (_ref = (_ExtendedListItem$opt = (_ExtendedListItem$opt2 = _extendedListItem.ExtendedListItem.options) === null || _ExtendedListItem$opt2 === void 0 ? void 0 : _ExtendedListItem$opt2.content) !== null && _ExtendedListItem$opt !== void 0 ? _ExtendedListItem$opt : (_ExtendedListItem$con = _extendedListItem.ExtendedListItem.config) === null || _ExtendedListItem$con === void 0 ? void 0 : _ExtendedListItem$con.content) !== null && _ref !== void 0 ? _ref : (_ExtendedListItem$ext = _extendedListItem.ExtendedListItem.extendOptions) === null || _ExtendedListItem$ext === void 0 ? void 0 : _ExtendedListItem$ext.content;
9
+ expect(String(content)).toMatch(/^\(div \| paragraph/);
10
+ expect(String(content)).toContain('imageUploadNode');
11
+ });
12
+ });
13
+ //# sourceMappingURL=extended-list-item.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-list-item.test.js","names":["_extendedListItem","require","describe","it","_ref","_ExtendedListItem$opt","_ExtendedListItem$opt2","_ExtendedListItem$con","_ExtendedListItem$ext","expect","ExtendedListItem","name","toBe","content","options","config","extendOptions","String","toMatch","toContain"],"sources":["../../../src/extensions/__tests__/extended-list-item.test.js"],"sourcesContent":["import { ExtendedListItem } from '../extended-list-item';\n\ndescribe('ExtendedListItem', () => {\n it('extends listItem and prefers div over paragraph in content spec', () => {\n expect(ExtendedListItem.name).toBe('listItem');\n\n const content =\n ExtendedListItem.options?.content ?? ExtendedListItem.config?.content ?? ExtendedListItem.extendOptions?.content;\n\n expect(String(content)).toMatch(/^\\(div \\| paragraph/);\n expect(String(content)).toContain('imageUploadNode');\n });\n});\n"],"mappings":";;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,kBAAkB,EAAE,YAAM;EACjCC,EAAE,CAAC,iEAAiE,EAAE,YAAM;IAAA,IAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IAC1EC,MAAM,CAACC,kCAAgB,CAACC,IAAI,CAAC,CAACC,IAAI,CAAC,UAAU,CAAC;IAE9C,IAAMC,OAAO,IAAAT,IAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACXI,kCAAgB,CAACI,OAAO,cAAAR,sBAAA,uBAAxBA,sBAAA,CAA0BO,OAAO,cAAAR,qBAAA,cAAAA,qBAAA,IAAAE,qBAAA,GAAIG,kCAAgB,CAACK,MAAM,cAAAR,qBAAA,uBAAvBA,qBAAA,CAAyBM,OAAO,cAAAT,IAAA,cAAAA,IAAA,IAAAI,qBAAA,GAAIE,kCAAgB,CAACM,aAAa,cAAAR,qBAAA,uBAA9BA,qBAAA,CAAgCK,OAAO;IAElHJ,MAAM,CAACQ,MAAM,CAACJ,OAAO,CAAC,CAAC,CAACK,OAAO,CAAC,qBAAqB,CAAC;IACtDT,MAAM,CAACQ,MAAM,CAACJ,OAAO,CAAC,CAAC,CAACM,SAAS,CAAC,iBAAiB,CAAC;EACtD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _extendedTableCell = require("../extended-table-cell");
4
+ describe('ExtendedTableCell / ExtendedTableHeader', function () {
5
+ it('exports cell and header extensions with div preferred over paragraph in content spec', function () {
6
+ var _ref, _ExtendedTableCell$op, _ExtendedTableCell$op2, _ExtendedTableCell$co, _ExtendedTableCell$ex, _ref2, _ExtendedTableHeader$, _ExtendedTableHeader$2, _ExtendedTableHeader$3, _ExtendedTableHeader$4;
7
+ expect(_extendedTableCell.ExtendedTableCell.name).toBe('tableCell');
8
+ expect(_extendedTableCell.ExtendedTableHeader.name).toBe('tableHeader');
9
+ var cellContent = (_ref = (_ExtendedTableCell$op = (_ExtendedTableCell$op2 = _extendedTableCell.ExtendedTableCell.options) === null || _ExtendedTableCell$op2 === void 0 ? void 0 : _ExtendedTableCell$op2.content) !== null && _ExtendedTableCell$op !== void 0 ? _ExtendedTableCell$op : (_ExtendedTableCell$co = _extendedTableCell.ExtendedTableCell.config) === null || _ExtendedTableCell$co === void 0 ? void 0 : _ExtendedTableCell$co.content) !== null && _ref !== void 0 ? _ref : (_ExtendedTableCell$ex = _extendedTableCell.ExtendedTableCell.extendOptions) === null || _ExtendedTableCell$ex === void 0 ? void 0 : _ExtendedTableCell$ex.content;
10
+ expect(String(cellContent)).toMatch(/^\(div \| paragraph/);
11
+ var headerContent = (_ref2 = (_ExtendedTableHeader$ = (_ExtendedTableHeader$2 = _extendedTableCell.ExtendedTableHeader.options) === null || _ExtendedTableHeader$2 === void 0 ? void 0 : _ExtendedTableHeader$2.content) !== null && _ExtendedTableHeader$ !== void 0 ? _ExtendedTableHeader$ : (_ExtendedTableHeader$3 = _extendedTableCell.ExtendedTableHeader.config) === null || _ExtendedTableHeader$3 === void 0 ? void 0 : _ExtendedTableHeader$3.content) !== null && _ref2 !== void 0 ? _ref2 : (_ExtendedTableHeader$4 = _extendedTableCell.ExtendedTableHeader.extendOptions) === null || _ExtendedTableHeader$4 === void 0 ? void 0 : _ExtendedTableHeader$4.content;
12
+ expect(headerContent).toBe(cellContent);
13
+ });
14
+ });
15
+ //# sourceMappingURL=extended-table-cell.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-table-cell.test.js","names":["_extendedTableCell","require","describe","it","_ref","_ExtendedTableCell$op","_ExtendedTableCell$op2","_ExtendedTableCell$co","_ExtendedTableCell$ex","_ref2","_ExtendedTableHeader$","_ExtendedTableHeader$2","_ExtendedTableHeader$3","_ExtendedTableHeader$4","expect","ExtendedTableCell","name","toBe","ExtendedTableHeader","cellContent","options","content","config","extendOptions","String","toMatch","headerContent"],"sources":["../../../src/extensions/__tests__/extended-table-cell.test.js"],"sourcesContent":["import { ExtendedTableCell, ExtendedTableHeader } from '../extended-table-cell';\n\ndescribe('ExtendedTableCell / ExtendedTableHeader', () => {\n it('exports cell and header extensions with div preferred over paragraph in content spec', () => {\n expect(ExtendedTableCell.name).toBe('tableCell');\n expect(ExtendedTableHeader.name).toBe('tableHeader');\n\n const cellContent =\n ExtendedTableCell.options?.content ??\n ExtendedTableCell.config?.content ??\n ExtendedTableCell.extendOptions?.content;\n\n expect(String(cellContent)).toMatch(/^\\(div \\| paragraph/);\n\n const headerContent =\n ExtendedTableHeader.options?.content ??\n ExtendedTableHeader.config?.content ??\n ExtendedTableHeader.extendOptions?.content;\n\n expect(headerContent).toBe(cellContent);\n });\n});\n"],"mappings":";;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,yCAAyC,EAAE,YAAM;EACxDC,EAAE,CAAC,sFAAsF,EAAE,YAAM;IAAA,IAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC/FC,MAAM,CAACC,oCAAiB,CAACC,IAAI,CAAC,CAACC,IAAI,CAAC,WAAW,CAAC;IAChDH,MAAM,CAACI,sCAAmB,CAACF,IAAI,CAAC,CAACC,IAAI,CAAC,aAAa,CAAC;IAEpD,IAAME,WAAW,IAAAf,IAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACfS,oCAAiB,CAACK,OAAO,cAAAd,sBAAA,uBAAzBA,sBAAA,CAA2Be,OAAO,cAAAhB,qBAAA,cAAAA,qBAAA,IAAAE,qBAAA,GAClCQ,oCAAiB,CAACO,MAAM,cAAAf,qBAAA,uBAAxBA,qBAAA,CAA0Bc,OAAO,cAAAjB,IAAA,cAAAA,IAAA,IAAAI,qBAAA,GACjCO,oCAAiB,CAACQ,aAAa,cAAAf,qBAAA,uBAA/BA,qBAAA,CAAiCa,OAAO;IAE1CP,MAAM,CAACU,MAAM,CAACL,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC,qBAAqB,CAAC;IAE1D,IAAMC,aAAa,IAAAjB,KAAA,IAAAC,qBAAA,IAAAC,sBAAA,GACjBO,sCAAmB,CAACE,OAAO,cAAAT,sBAAA,uBAA3BA,sBAAA,CAA6BU,OAAO,cAAAX,qBAAA,cAAAA,qBAAA,IAAAE,sBAAA,GACpCM,sCAAmB,CAACI,MAAM,cAAAV,sBAAA,uBAA1BA,sBAAA,CAA4BS,OAAO,cAAAZ,KAAA,cAAAA,KAAA,IAAAI,sBAAA,GACnCK,sCAAmB,CAACK,aAAa,cAAAV,sBAAA,uBAAjCA,sBAAA,CAAmCQ,OAAO;IAE5CP,MAAM,CAACY,aAAa,CAAC,CAACT,IAAI,CAACE,WAAW,CAAC;EACzC,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}