@doxi/core 0.11.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.
- package/LICENSE +21 -0
- package/README.md +81 -0
- package/dist/collab/port.d.ts +46 -0
- package/dist/collab/port.d.ts.map +1 -0
- package/dist/collab/port.js +11 -0
- package/dist/collab/port.js.map +1 -0
- package/dist/commands/block-commands.d.ts +62 -0
- package/dist/commands/block-commands.d.ts.map +1 -0
- package/dist/commands/block-commands.js +208 -0
- package/dist/commands/block-commands.js.map +1 -0
- package/dist/commands/command.d.ts +13 -0
- package/dist/commands/command.d.ts.map +1 -0
- package/dist/commands/command.js +13 -0
- package/dist/commands/command.js.map +1 -0
- package/dist/commands/edit-commands.d.ts +5 -0
- package/dist/commands/edit-commands.d.ts.map +1 -0
- package/dist/commands/edit-commands.js +147 -0
- package/dist/commands/edit-commands.js.map +1 -0
- package/dist/commands/image-commands.d.ts +31 -0
- package/dist/commands/image-commands.d.ts.map +1 -0
- package/dist/commands/image-commands.js +130 -0
- package/dist/commands/image-commands.js.map +1 -0
- package/dist/commands/index.d.ts +11 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +11 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/keymap.d.ts +34 -0
- package/dist/commands/keymap.d.ts.map +1 -0
- package/dist/commands/keymap.js +84 -0
- package/dist/commands/keymap.js.map +1 -0
- package/dist/commands/link-commands.d.ts +54 -0
- package/dist/commands/link-commands.d.ts.map +1 -0
- package/dist/commands/link-commands.js +151 -0
- package/dist/commands/link-commands.js.map +1 -0
- package/dist/commands/list-commands.d.ts +42 -0
- package/dist/commands/list-commands.d.ts.map +1 -0
- package/dist/commands/list-commands.js +316 -0
- package/dist/commands/list-commands.js.map +1 -0
- package/dist/commands/mark-commands.d.ts +53 -0
- package/dist/commands/mark-commands.d.ts.map +1 -0
- package/dist/commands/mark-commands.js +181 -0
- package/dist/commands/mark-commands.js.map +1 -0
- package/dist/commands/selection-commands.d.ts +3 -0
- package/dist/commands/selection-commands.d.ts.map +1 -0
- package/dist/commands/selection-commands.js +11 -0
- package/dist/commands/selection-commands.js.map +1 -0
- package/dist/commands/table-commands.d.ts +109 -0
- package/dist/commands/table-commands.d.ts.map +1 -0
- package/dist/commands/table-commands.js +884 -0
- package/dist/commands/table-commands.js.map +1 -0
- package/dist/history/history.d.ts +40 -0
- package/dist/history/history.d.ts.map +1 -0
- package/dist/history/history.js +139 -0
- package/dist/history/history.js.map +1 -0
- package/dist/history/index.d.ts +2 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +2 -0
- package/dist/history/index.js.map +1 -0
- package/dist/html/index.d.ts +3 -0
- package/dist/html/index.d.ts.map +1 -0
- package/dist/html/index.js +3 -0
- package/dist/html/index.js.map +1 -0
- package/dist/html/parse.d.ts +4 -0
- package/dist/html/parse.d.ts.map +1 -0
- package/dist/html/parse.js +0 -0
- package/dist/html/parse.js.map +1 -0
- package/dist/html/serialize.d.ts +4 -0
- package/dist/html/serialize.d.ts.map +1 -0
- package/dist/html/serialize.js +75 -0
- package/dist/html/serialize.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/layout-engine.d.ts +20 -0
- package/dist/layout/layout-engine.d.ts.map +1 -0
- package/dist/layout/layout-engine.js +198 -0
- package/dist/layout/layout-engine.js.map +1 -0
- package/dist/layout/measure.d.ts +9 -0
- package/dist/layout/measure.d.ts.map +1 -0
- package/dist/layout/measure.js +37 -0
- package/dist/layout/measure.js.map +1 -0
- package/dist/layout/split-paragraph.d.ts +28 -0
- package/dist/layout/split-paragraph.d.ts.map +1 -0
- package/dist/layout/split-paragraph.js +122 -0
- package/dist/layout/split-paragraph.js.map +1 -0
- package/dist/layout/split-table.d.ts +46 -0
- package/dist/layout/split-table.d.ts.map +1 -0
- package/dist/layout/split-table.js +84 -0
- package/dist/layout/split-table.js.map +1 -0
- package/dist/layout/types.d.ts +73 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +36 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/layout/widow-orphan.d.ts +15 -0
- package/dist/layout/widow-orphan.d.ts.map +1 -0
- package/dist/layout/widow-orphan.js +14 -0
- package/dist/layout/widow-orphan.js.map +1 -0
- package/dist/model/content-expr.d.ts +32 -0
- package/dist/model/content-expr.d.ts.map +1 -0
- package/dist/model/content-expr.js +106 -0
- package/dist/model/content-expr.js.map +1 -0
- package/dist/model/fragment.d.ts +17 -0
- package/dist/model/fragment.d.ts.map +1 -0
- package/dist/model/fragment.js +44 -0
- package/dist/model/fragment.js.map +1 -0
- package/dist/model/index.d.ts +10 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +10 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/mark.d.ts +35 -0
- package/dist/model/mark.d.ts.map +1 -0
- package/dist/model/mark.js +89 -0
- package/dist/model/mark.js.map +1 -0
- package/dist/model/node-type.d.ts +36 -0
- package/dist/model/node-type.d.ts.map +1 -0
- package/dist/model/node-type.js +14 -0
- package/dist/model/node-type.js.map +1 -0
- package/dist/model/node.d.ts +36 -0
- package/dist/model/node.d.ts.map +1 -0
- package/dist/model/node.js +192 -0
- package/dist/model/node.js.map +1 -0
- package/dist/model/position.d.ts +66 -0
- package/dist/model/position.d.ts.map +1 -0
- package/dist/model/position.js +158 -0
- package/dist/model/position.js.map +1 -0
- package/dist/model/schema.d.ts +28 -0
- package/dist/model/schema.d.ts.map +1 -0
- package/dist/model/schema.js +195 -0
- package/dist/model/schema.js.map +1 -0
- package/dist/model/slice.d.ts +26 -0
- package/dist/model/slice.d.ts.map +1 -0
- package/dist/model/slice.js +56 -0
- package/dist/model/slice.js.map +1 -0
- package/dist/model/table-grid.d.ts +71 -0
- package/dist/model/table-grid.d.ts.map +1 -0
- package/dist/model/table-grid.js +130 -0
- package/dist/model/table-grid.js.map +1 -0
- package/dist/plugin/index.d.ts +3 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +3 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/plugin-key.d.ts +13 -0
- package/dist/plugin/plugin-key.d.ts.map +1 -0
- package/dist/plugin/plugin-key.js +13 -0
- package/dist/plugin/plugin-key.js.map +1 -0
- package/dist/plugin/plugin-state.d.ts +2 -0
- package/dist/plugin/plugin-state.d.ts.map +1 -0
- package/dist/plugin/plugin-state.js +3 -0
- package/dist/plugin/plugin-state.js.map +1 -0
- package/dist/plugin/plugin.d.ts +39 -0
- package/dist/plugin/plugin.d.ts.map +1 -0
- package/dist/plugin/plugin.js +10 -0
- package/dist/plugin/plugin.js.map +1 -0
- package/dist/schema/default.d.ts +163 -0
- package/dist/schema/default.d.ts.map +1 -0
- package/dist/schema/default.js +94 -0
- package/dist/schema/default.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/serialize/index.d.ts +2 -0
- package/dist/serialize/index.d.ts.map +1 -0
- package/dist/serialize/index.js +2 -0
- package/dist/serialize/index.js.map +1 -0
- package/dist/serialize/json.d.ts +15 -0
- package/dist/serialize/json.d.ts.map +1 -0
- package/dist/serialize/json.js +23 -0
- package/dist/serialize/json.js.map +1 -0
- package/dist/state/all-selection.d.ts +11 -0
- package/dist/state/all-selection.d.ts.map +1 -0
- package/dist/state/all-selection.js +17 -0
- package/dist/state/all-selection.js.map +1 -0
- package/dist/state/cell-selection.d.ts +30 -0
- package/dist/state/cell-selection.d.ts.map +1 -0
- package/dist/state/cell-selection.js +38 -0
- package/dist/state/cell-selection.js.map +1 -0
- package/dist/state/editor-state.d.ts +46 -0
- package/dist/state/editor-state.d.ts.map +1 -0
- package/dist/state/editor-state.js +211 -0
- package/dist/state/editor-state.js.map +1 -0
- package/dist/state/index.d.ts +7 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +7 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/node-selection.d.ts +16 -0
- package/dist/state/node-selection.d.ts.map +1 -0
- package/dist/state/node-selection.js +51 -0
- package/dist/state/node-selection.js.map +1 -0
- package/dist/state/selection.d.ts +29 -0
- package/dist/state/selection.d.ts.map +1 -0
- package/dist/state/selection.js +24 -0
- package/dist/state/selection.js.map +1 -0
- package/dist/state/text-selection.d.ts +10 -0
- package/dist/state/text-selection.d.ts.map +1 -0
- package/dist/state/text-selection.js +26 -0
- package/dist/state/text-selection.js.map +1 -0
- package/dist/transform/attr-step.d.ts +16 -0
- package/dist/transform/attr-step.d.ts.map +1 -0
- package/dist/transform/attr-step.js +98 -0
- package/dist/transform/attr-step.js.map +1 -0
- package/dist/transform/index.d.ts +10 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +10 -0
- package/dist/transform/index.js.map +1 -0
- package/dist/transform/mapping.d.ts +44 -0
- package/dist/transform/mapping.d.ts.map +1 -0
- package/dist/transform/mapping.js +101 -0
- package/dist/transform/mapping.js.map +1 -0
- package/dist/transform/mark-step.d.ts +27 -0
- package/dist/transform/mark-step.d.ts.map +1 -0
- package/dist/transform/mark-step.js +146 -0
- package/dist/transform/mark-step.js.map +1 -0
- package/dist/transform/replace-around-step.d.ts +35 -0
- package/dist/transform/replace-around-step.d.ts.map +1 -0
- package/dist/transform/replace-around-step.js +144 -0
- package/dist/transform/replace-around-step.js.map +1 -0
- package/dist/transform/replace-step.d.ts +17 -0
- package/dist/transform/replace-step.d.ts.map +1 -0
- package/dist/transform/replace-step.js +72 -0
- package/dist/transform/replace-step.js.map +1 -0
- package/dist/transform/replace.d.ts +18 -0
- package/dist/transform/replace.d.ts.map +1 -0
- package/dist/transform/replace.js +132 -0
- package/dist/transform/replace.js.map +1 -0
- package/dist/transform/set-page-meta-step.d.ts +42 -0
- package/dist/transform/set-page-meta-step.d.ts.map +1 -0
- package/dist/transform/set-page-meta-step.js +75 -0
- package/dist/transform/set-page-meta-step.js.map +1 -0
- package/dist/transform/step.d.ts +34 -0
- package/dist/transform/step.d.ts.map +1 -0
- package/dist/transform/step.js +23 -0
- package/dist/transform/step.js.map +1 -0
- package/dist/transform/transaction.d.ts +20 -0
- package/dist/transform/transaction.d.ts.map +1 -0
- package/dist/transform/transaction.js +38 -0
- package/dist/transform/transaction.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/view/cell-drag.d.ts +33 -0
- package/dist/view/cell-drag.d.ts.map +1 -0
- package/dist/view/cell-drag.js +177 -0
- package/dist/view/cell-drag.js.map +1 -0
- package/dist/view/clipboard.d.ts +5 -0
- package/dist/view/clipboard.d.ts.map +1 -0
- package/dist/view/clipboard.js +97 -0
- package/dist/view/clipboard.js.map +1 -0
- package/dist/view/default-renderer.d.ts +3 -0
- package/dist/view/default-renderer.d.ts.map +1 -0
- package/dist/view/default-renderer.js +142 -0
- package/dist/view/default-renderer.js.map +1 -0
- package/dist/view/dom-spec.d.ts +11 -0
- package/dist/view/dom-spec.d.ts.map +1 -0
- package/dist/view/dom-spec.js +32 -0
- package/dist/view/dom-spec.js.map +1 -0
- package/dist/view/editor-view.d.ts +55 -0
- package/dist/view/editor-view.d.ts.map +1 -0
- package/dist/view/editor-view.js +143 -0
- package/dist/view/editor-view.js.map +1 -0
- package/dist/view/image-resize.d.ts +37 -0
- package/dist/view/image-resize.d.ts.map +1 -0
- package/dist/view/image-resize.js +191 -0
- package/dist/view/image-resize.js.map +1 -0
- package/dist/view/index.d.ts +15 -0
- package/dist/view/index.d.ts.map +1 -0
- package/dist/view/index.js +15 -0
- package/dist/view/index.js.map +1 -0
- package/dist/view/input-pipeline.d.ts +24 -0
- package/dist/view/input-pipeline.d.ts.map +1 -0
- package/dist/view/input-pipeline.js +226 -0
- package/dist/view/input-pipeline.js.map +1 -0
- package/dist/view/mutation-observer.d.ts +17 -0
- package/dist/view/mutation-observer.d.ts.map +1 -0
- package/dist/view/mutation-observer.js +62 -0
- package/dist/view/mutation-observer.js.map +1 -0
- package/dist/view/page-slots.d.ts +56 -0
- package/dist/view/page-slots.d.ts.map +1 -0
- package/dist/view/page-slots.js +230 -0
- package/dist/view/page-slots.js.map +1 -0
- package/dist/view/paginator.d.ts +17 -0
- package/dist/view/paginator.d.ts.map +1 -0
- package/dist/view/paginator.js +93 -0
- package/dist/view/paginator.js.map +1 -0
- package/dist/view/print.d.ts +42 -0
- package/dist/view/print.d.ts.map +1 -0
- package/dist/view/print.js +70 -0
- package/dist/view/print.js.map +1 -0
- package/dist/view/reconcile.d.ts +16 -0
- package/dist/view/reconcile.d.ts.map +1 -0
- package/dist/view/reconcile.js +158 -0
- package/dist/view/reconcile.js.map +1 -0
- package/dist/view/renderer.d.ts +31 -0
- package/dist/view/renderer.d.ts.map +1 -0
- package/dist/view/renderer.js +89 -0
- package/dist/view/renderer.js.map +1 -0
- package/dist/view/selection-sync.d.ts +35 -0
- package/dist/view/selection-sync.d.ts.map +1 -0
- package/dist/view/selection-sync.js +324 -0
- package/dist/view/selection-sync.js.map +1 -0
- package/dist/view/table-resize.d.ts +41 -0
- package/dist/view/table-resize.d.ts.map +1 -0
- package/dist/view/table-resize.js +216 -0
- package/dist/view/table-resize.js.map +1 -0
- package/package.json +93 -0
- package/styles/base.css +269 -0
- package/styles/dark.css +36 -0
- package/styles/light.css +13 -0
- package/styles/page.css +93 -0
- package/styles/print-a4.css +87 -0
- package/styles/print.css +88 -0
package/styles/dark.css
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* @doxi/core dark.css — variable overrides only. Apply on top of base.css. */
|
|
2
|
+
|
|
3
|
+
:root.dx-theme-dark,
|
|
4
|
+
.dx-theme-dark,
|
|
5
|
+
[data-doxiva-theme="dark"] {
|
|
6
|
+
--dx-color-text: #e8eaed;
|
|
7
|
+
--dx-color-muted: #9aa0a6;
|
|
8
|
+
--dx-color-bg: #202124;
|
|
9
|
+
--dx-color-selection: #1e3a5f;
|
|
10
|
+
--dx-color-accent: #8ab4f8;
|
|
11
|
+
--dx-color-border: #3c4043;
|
|
12
|
+
--dx-page-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
13
|
+
--dx-toolbar-bg: #292a2d;
|
|
14
|
+
--dx-toolbar-fg: #e8eaed;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Auto theme — honor the host's prefers-color-scheme when the editor root
|
|
19
|
+
* (or :root) carries .dx-theme-auto. base.css supplies the light defaults,
|
|
20
|
+
* so we only need to override when the user prefers dark.
|
|
21
|
+
*/
|
|
22
|
+
@media (prefers-color-scheme: dark) {
|
|
23
|
+
:root.dx-theme-auto,
|
|
24
|
+
.dx-theme-auto,
|
|
25
|
+
[data-doxiva-theme="auto"] {
|
|
26
|
+
--dx-color-text: #e8eaed;
|
|
27
|
+
--dx-color-muted: #9aa0a6;
|
|
28
|
+
--dx-color-bg: #202124;
|
|
29
|
+
--dx-color-selection: #1e3a5f;
|
|
30
|
+
--dx-color-accent: #8ab4f8;
|
|
31
|
+
--dx-color-border: #3c4043;
|
|
32
|
+
--dx-page-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
33
|
+
--dx-toolbar-bg: #292a2d;
|
|
34
|
+
--dx-toolbar-fg: #e8eaed;
|
|
35
|
+
}
|
|
36
|
+
}
|
package/styles/light.css
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* @doxi/core light.css — variable overrides only. Apply on top of base.css. */
|
|
2
|
+
|
|
3
|
+
:root,
|
|
4
|
+
.dx-theme-light {
|
|
5
|
+
--dx-color-text: #1a1a1a;
|
|
6
|
+
--dx-color-muted: #6b7280;
|
|
7
|
+
--dx-color-bg: #ffffff;
|
|
8
|
+
--dx-color-selection: #b3d7ff;
|
|
9
|
+
--dx-color-accent: #2563eb;
|
|
10
|
+
--dx-color-border: #e5e7eb;
|
|
11
|
+
--dx-toolbar-bg: #f9fafb;
|
|
12
|
+
--dx-toolbar-fg: #111827;
|
|
13
|
+
}
|
package/styles/page.css
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* @doxi/core page.css — visual chrome for the paginated editor.
|
|
2
|
+
Apply this stylesheet ON TOP of base.css when running in paginated mode. */
|
|
3
|
+
|
|
4
|
+
:root {
|
|
5
|
+
--dx-page-bg: #ffffff;
|
|
6
|
+
--dx-page-edge: rgba(0, 0, 0, 0.08);
|
|
7
|
+
--dx-page-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
|
|
8
|
+
--dx-page-gap: 24px;
|
|
9
|
+
--dx-page-host-bg: #f4f5f7;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.dx-page-host {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
align-items: center;
|
|
16
|
+
gap: var(--dx-page-gap);
|
|
17
|
+
padding: var(--dx-page-gap) 0;
|
|
18
|
+
background: var(--dx-page-host-bg);
|
|
19
|
+
min-height: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.dx-page {
|
|
23
|
+
position: relative;
|
|
24
|
+
background: var(--dx-page-bg);
|
|
25
|
+
box-shadow: var(--dx-page-shadow);
|
|
26
|
+
border-radius: 2px;
|
|
27
|
+
/* width + height set inline by the Paginator from resolved dimensions */
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
display: grid;
|
|
30
|
+
grid-template-rows: auto 1fr auto;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.dx-page-header,
|
|
34
|
+
.dx-page-footer {
|
|
35
|
+
font-size: 12px;
|
|
36
|
+
color: var(--dx-color-muted);
|
|
37
|
+
padding: 8px 96px;
|
|
38
|
+
min-height: 24px;
|
|
39
|
+
outline: none;
|
|
40
|
+
}
|
|
41
|
+
.dx-page-header[contenteditable="true"]:focus,
|
|
42
|
+
.dx-page-footer[contenteditable="true"]:focus {
|
|
43
|
+
outline: 1px dashed var(--dx-color-accent);
|
|
44
|
+
outline-offset: -1px;
|
|
45
|
+
}
|
|
46
|
+
.dx-page-header[contenteditable="true"]:empty::before,
|
|
47
|
+
.dx-page-footer[contenteditable="true"]:empty::before {
|
|
48
|
+
content: attr(data-placeholder);
|
|
49
|
+
color: var(--dx-color-muted);
|
|
50
|
+
opacity: 0.6;
|
|
51
|
+
pointer-events: none;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.dx-page-content {
|
|
55
|
+
position: relative;
|
|
56
|
+
/* padding set inline by the Paginator from resolved margins */
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.dx-page-number {
|
|
61
|
+
position: absolute;
|
|
62
|
+
bottom: 12px;
|
|
63
|
+
right: 16px;
|
|
64
|
+
font-size: 11px;
|
|
65
|
+
color: var(--dx-color-muted);
|
|
66
|
+
font-family: var(--dx-font-family);
|
|
67
|
+
user-select: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.dx-page-var {
|
|
71
|
+
display: inline;
|
|
72
|
+
font-variant-numeric: tabular-nums;
|
|
73
|
+
}
|
|
74
|
+
.dx-page-var[data-kind="pageNumber"],
|
|
75
|
+
.dx-page-var[data-kind="totalPages"] {
|
|
76
|
+
/* nothing extra; inherits page-header/footer styling */
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media print {
|
|
80
|
+
.dx-page-host {
|
|
81
|
+
background: white;
|
|
82
|
+
padding: 0;
|
|
83
|
+
gap: 0;
|
|
84
|
+
}
|
|
85
|
+
.dx-page {
|
|
86
|
+
box-shadow: none;
|
|
87
|
+
border-radius: 0;
|
|
88
|
+
page-break-after: always;
|
|
89
|
+
}
|
|
90
|
+
.dx-page-number {
|
|
91
|
+
display: none;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* @doxi/core print-a4.css — A4 variant of print.css.
|
|
2
|
+
*
|
|
3
|
+
* Same as print.css but with `@page { size: A4 }`. Consumers pick exactly
|
|
4
|
+
* one of the two files (or write their own override that comes after the
|
|
5
|
+
* imported file). We can't use CSS variables in @page rules in current
|
|
6
|
+
* browsers, so the consumer-side decision is which file to import.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
@page {
|
|
10
|
+
size: A4;
|
|
11
|
+
margin: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@media print {
|
|
15
|
+
html, body {
|
|
16
|
+
background: #ffffff !important;
|
|
17
|
+
margin: 0 !important;
|
|
18
|
+
padding: 0 !important;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Hide editor chrome: toolbars, app headers, hover affordances. */
|
|
22
|
+
.dx-toolbar,
|
|
23
|
+
.dx-toolbar-popover,
|
|
24
|
+
.app-header,
|
|
25
|
+
.app-subtitle,
|
|
26
|
+
.app-shell > header {
|
|
27
|
+
display: none !important;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Hide the on-screen-only "Page break" label. */
|
|
31
|
+
.dx-page-break::after {
|
|
32
|
+
display: none !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Hide the on-screen page-number badge — printed page numbers come from
|
|
36
|
+
* header/footer slot {pageNumber} variables once Tracks A+B land. */
|
|
37
|
+
.dx-page-number {
|
|
38
|
+
display: none !important;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Strip on-screen page chrome (shadows, margins) so the printed page
|
|
42
|
+
* uses the full physical page. */
|
|
43
|
+
.dx-page-host {
|
|
44
|
+
background: none !important;
|
|
45
|
+
padding: 0 !important;
|
|
46
|
+
margin: 0 !important;
|
|
47
|
+
box-shadow: none !important;
|
|
48
|
+
}
|
|
49
|
+
.dx-page {
|
|
50
|
+
box-shadow: none !important;
|
|
51
|
+
border: none !important;
|
|
52
|
+
margin: 0 !important;
|
|
53
|
+
page-break-after: always !important;
|
|
54
|
+
break-after: page !important; /* modern browsers */
|
|
55
|
+
}
|
|
56
|
+
.dx-page:last-child {
|
|
57
|
+
page-break-after: auto !important;
|
|
58
|
+
break-after: auto !important;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Application wrapper (in example apps) shouldn't add print margins. */
|
|
62
|
+
.app-editor-wrap,
|
|
63
|
+
.app-shell {
|
|
64
|
+
max-width: none !important;
|
|
65
|
+
padding: 0 !important;
|
|
66
|
+
margin: 0 !important;
|
|
67
|
+
box-shadow: none !important;
|
|
68
|
+
border: none !important;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* Hide the contenteditable outline. */
|
|
72
|
+
.dx-editor {
|
|
73
|
+
outline: none !important;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* v0.5 audit: clear all selection-state visuals in print so the printed
|
|
77
|
+
* page never shows transient selection chrome that the user happened to
|
|
78
|
+
* leave on when triggering print. Covers table cell selection (Track 0
|
|
79
|
+
* shaded background + box-shadow) and image NodeSelection (outline). */
|
|
80
|
+
.dx-table-cell.dx-cell-selected {
|
|
81
|
+
background: none !important;
|
|
82
|
+
box-shadow: none !important;
|
|
83
|
+
}
|
|
84
|
+
.dx-image.dx-image-selected {
|
|
85
|
+
outline: none !important;
|
|
86
|
+
}
|
|
87
|
+
}
|
package/styles/print.css
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/* @doxi/core print.css — overrides for `@media print` so on-screen
|
|
2
|
+
* pages render verbatim to PDF/print.
|
|
3
|
+
*
|
|
4
|
+
* @page sets the printed page size; default is US Letter. Consumers can
|
|
5
|
+
* ship `print-a4.css` (also in this directory) for A4. We can't use CSS
|
|
6
|
+
* variables in @page rules in current browsers, so the consumer-side
|
|
7
|
+
* decision is which file to import.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
@page {
|
|
11
|
+
size: 8.5in 11in;
|
|
12
|
+
margin: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media print {
|
|
16
|
+
html, body {
|
|
17
|
+
background: #ffffff !important;
|
|
18
|
+
margin: 0 !important;
|
|
19
|
+
padding: 0 !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Hide editor chrome: toolbars, app headers, hover affordances. */
|
|
23
|
+
.dx-toolbar,
|
|
24
|
+
.dx-toolbar-popover,
|
|
25
|
+
.app-header,
|
|
26
|
+
.app-subtitle,
|
|
27
|
+
.app-shell > header {
|
|
28
|
+
display: none !important;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Hide the on-screen-only "Page break" label. */
|
|
32
|
+
.dx-page-break::after {
|
|
33
|
+
display: none !important;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Hide the on-screen page-number badge — printed page numbers come from
|
|
37
|
+
* header/footer slot {pageNumber} variables once Tracks A+B land. */
|
|
38
|
+
.dx-page-number {
|
|
39
|
+
display: none !important;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Strip on-screen page chrome (shadows, margins) so the printed page
|
|
43
|
+
* uses the full physical page. */
|
|
44
|
+
.dx-page-host {
|
|
45
|
+
background: none !important;
|
|
46
|
+
padding: 0 !important;
|
|
47
|
+
margin: 0 !important;
|
|
48
|
+
box-shadow: none !important;
|
|
49
|
+
}
|
|
50
|
+
.dx-page {
|
|
51
|
+
box-shadow: none !important;
|
|
52
|
+
border: none !important;
|
|
53
|
+
margin: 0 !important;
|
|
54
|
+
page-break-after: always !important;
|
|
55
|
+
break-after: page !important; /* modern browsers */
|
|
56
|
+
}
|
|
57
|
+
.dx-page:last-child {
|
|
58
|
+
page-break-after: auto !important;
|
|
59
|
+
break-after: auto !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Application wrapper (in example apps) shouldn't add print margins. */
|
|
63
|
+
.app-editor-wrap,
|
|
64
|
+
.app-shell {
|
|
65
|
+
max-width: none !important;
|
|
66
|
+
padding: 0 !important;
|
|
67
|
+
margin: 0 !important;
|
|
68
|
+
box-shadow: none !important;
|
|
69
|
+
border: none !important;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Hide the contenteditable outline. */
|
|
73
|
+
.dx-editor {
|
|
74
|
+
outline: none !important;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* v0.5 audit: clear all selection-state visuals in print so the printed
|
|
78
|
+
* page never shows transient selection chrome that the user happened to
|
|
79
|
+
* leave on when triggering print. Covers table cell selection (Track 0
|
|
80
|
+
* shaded background + box-shadow) and image NodeSelection (outline). */
|
|
81
|
+
.dx-table-cell.dx-cell-selected {
|
|
82
|
+
background: none !important;
|
|
83
|
+
box-shadow: none !important;
|
|
84
|
+
}
|
|
85
|
+
.dx-image.dx-image-selected {
|
|
86
|
+
outline: none !important;
|
|
87
|
+
}
|
|
88
|
+
}
|