@richhtmleditor/comments 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -121
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +39 -31
- package/dist/styles.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
# @richhtmleditor/comments
|
|
2
|
-
|
|
3
|
-
Review and comments workflow plugin for Rich HTML Editor (enterprise). Anchored highlights, Add Comment modal, hover tooltips, comments panel, @mentions, and export HTML — requires `features.comments` from [`@richhtmleditor/enterprise`](https://www.npmjs.com/package/@richhtmleditor/enterprise), built on [`@richhtmleditor/core`](https://www.npmjs.com/package/@richhtmleditor/core).
|
|
4
|
-
|
|
5
|
-
**Current release: 1.
|
|
6
|
-
|
|
7
|
-
**Repository:** [github.com/rajkishorsahu89/richhtmleditor](https://github.com/rajkishorsahu89/richhtmleditor)
|
|
8
|
-
|
|
9
|
-
**Demo:** [richhtmleditor.vercel.app](https://richhtmleditor.vercel.app/) — [demo](https://richhtmleditor.vercel.app/demo) · [guide](https://richhtmleditor.vercel.app/guide) · [API](https://richhtmleditor.vercel.app/api). Doc Preview joint demo: [doc-preview-app.vercel.app/demo/enterprise](https://doc-preview-app.vercel.app/demo/enterprise)
|
|
10
|
-
|
|
11
|
-
### What's in 1.
|
|
12
|
-
|
|
13
|
-
- **`createCommentsPlugin`** — toolbar Comment and Comments panel buttons
|
|
14
|
-
- **Add Comment modal** — compose popover anchored to the current text selection
|
|
15
|
-
- **Anchored highlights** — `<span data-de-comment-id>` markers in document HTML
|
|
16
|
-
- **Hover tooltips** — preview thread excerpt and messages on anchor hover
|
|
17
|
-
- **Comments panel** — thread list with reply, resolve, and reopen
|
|
18
|
-
- **@mentions** — autocomplete in compose box (`mentionUsers` option)
|
|
19
|
-
- **Export HTML** — `buildCommentsExportHtml` and `editor.getCommentsExportHtml()` for publish bundles
|
|
20
|
-
|
|
21
|
-
> Requires `features.comments: true`. Demo keys: `RHE-ENT-DEMO-2026-FULL` or `RHE-ENT-DEMO-2026-COMMENTS`.
|
|
22
|
-
|
|
23
|
-
**Keywords:** `richhtmleditor` `comments` `review` `enterprise` `annotations` `wysiwyg`
|
|
24
|
-
|
|
25
|
-
## Install
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npm install @richhtmleditor/comments @richhtmleditor/enterprise
|
|
29
|
-
# Requires @richhtmleditor/core (via framework wrapper or direct install).
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Usage
|
|
33
|
-
|
|
34
|
-
```ts
|
|
35
|
-
import { createEditor } from "@richhtmleditor/core";
|
|
36
|
-
import { createCommentsPlugin } from "@richhtmleditor/comments";
|
|
37
|
-
import { resolveEnterpriseFeatures } from "@richhtmleditor/enterprise/browser";
|
|
38
|
-
|
|
39
|
-
const gate = resolveEnterpriseFeatures({ token: "RHE-ENT-DEMO-2026-FULL" });
|
|
40
|
-
|
|
41
|
-
const editor = createEditor({
|
|
42
|
-
element: host,
|
|
43
|
-
toolbar: { preset: "full" },
|
|
44
|
-
features: gate.features,
|
|
45
|
-
plugins: [
|
|
46
|
-
createCommentsPlugin({
|
|
47
|
-
author: "Reviewer",
|
|
48
|
-
mentionUsers: ["reviewer", "approver", "legal", "publisher"],
|
|
49
|
-
onChange: (threads) => saveThreads(threads)
|
|
50
|
-
})
|
|
51
|
-
]
|
|
52
|
-
});
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Select text in the document, click **Comment** (toolbar or selection chip), and add a comment in the compose popover. Anchors persist in exported HTML as `data-de-comment-id` spans.
|
|
56
|
-
|
|
57
|
-
## Usage — export with comments
|
|
58
|
-
|
|
59
|
-
```ts
|
|
60
|
-
import { buildCommentsExportHtml } from "@richhtmleditor/comments";
|
|
61
|
-
|
|
62
|
-
const commentsHtml = editor.getCommentsExportHtml?.()
|
|
63
|
-
?? buildCommentsExportHtml(threads);
|
|
64
|
-
|
|
65
|
-
const preview = editor.exportForPreview({
|
|
66
|
-
workflowState: "in_review",
|
|
67
|
-
commentsHtml
|
|
68
|
-
});
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## API
|
|
72
|
-
|
|
73
|
-
### `createCommentsPlugin(options?)`
|
|
74
|
-
|
|
75
|
-
| Option | Type | Description |
|
|
76
|
-
| --- | --- | --- |
|
|
77
|
-
| `author` | `string` | Default author name for new messages (default `"Reviewer"`). |
|
|
78
|
-
| `initialThreads` | `CommentThread[]` | Pre-load comment threads. |
|
|
79
|
-
| `onChange` | `(threads: CommentThread[]) => void` | Fired when threads are added, replied, or resolved. |
|
|
80
|
-
| `mentionUsers` | `string[]` | Users for `@mention` autocomplete. |
|
|
81
|
-
|
|
82
|
-
### `CommentThread`
|
|
83
|
-
|
|
84
|
-
| Field | Type | Description |
|
|
85
|
-
| --- | --- | --- |
|
|
86
|
-
| `id` | `string` | Thread identifier. |
|
|
87
|
-
| `excerpt` | `string` | Quoted selection text. |
|
|
88
|
-
| `status` | `"open" \| "resolved"` | Thread state. |
|
|
89
|
-
| `anchorId` | `string?` | Links to `data-de-comment-id` in document HTML. |
|
|
90
|
-
| `messages` | `Array<{ id, author, body, createdAt }>` | Thread messages. |
|
|
91
|
-
|
|
92
|
-
### Toolbar tools registered
|
|
93
|
-
|
|
94
|
-
| Tool ID | Description |
|
|
95
|
-
| --- | --- |
|
|
96
|
-
| `commentAdd` | Comment on selected text (opens compose popover). |
|
|
97
|
-
| `commentPanel` | Toggle comments side panel. |
|
|
98
|
-
|
|
99
|
-
### Editor extensions (when plugin attached)
|
|
100
|
-
|
|
101
|
-
| Method | Description |
|
|
102
|
-
| --- | --- |
|
|
103
|
-
| `getCommentThreads()` | Current thread list. |
|
|
104
|
-
| `getCommentsExportHtml()` | HTML aside for `exportForPreview({ commentsHtml })`. |
|
|
105
|
-
|
|
106
|
-
### `buildCommentsExportHtml(threads)`
|
|
107
|
-
|
|
108
|
-
Standalone export helper — returns an HTML fragment for comment threads.
|
|
109
|
-
|
|
110
|
-
## Related packages
|
|
111
|
-
|
|
112
|
-
- [`@richhtmleditor/core`](https://www.npmjs.com/package/@richhtmleditor/core) — editor engine and `exportForPreview`.
|
|
113
|
-
- [`@richhtmleditor/enterprise`](https://www.npmjs.com/package/@richhtmleditor/enterprise) — licence gating for `features.comments`.
|
|
114
|
-
- [`@richhtmleditor/workflows`](https://www.npmjs.com/package/@richhtmleditor/workflows) — draft/review/approved states.
|
|
115
|
-
- [`@richhtmleditor/ai`](https://www.npmjs.com/package/@richhtmleditor/ai) — AI authoring plugin.
|
|
116
|
-
- [`@richhtmleditor/angular`](https://www.npmjs.com/package/@richhtmleditor/angular) — Angular wrapper.
|
|
117
|
-
- [`@richhtmleditor/react`](https://www.npmjs.com/package/@richhtmleditor/react) — React wrapper.
|
|
118
|
-
|
|
119
|
-
## License
|
|
120
|
-
|
|
121
|
-
[MIT](./LICENSE)
|
|
1
|
+
# @richhtmleditor/comments
|
|
2
|
+
|
|
3
|
+
Review and comments workflow plugin for Rich HTML Editor (enterprise). Anchored highlights, Add Comment modal, hover tooltips, comments panel, @mentions, and export HTML — requires `features.comments` from [`@richhtmleditor/enterprise`](https://www.npmjs.com/package/@richhtmleditor/enterprise), built on [`@richhtmleditor/core`](https://www.npmjs.com/package/@richhtmleditor/core).
|
|
4
|
+
|
|
5
|
+
**Current release: 1.1.1** — Depends on `@richhtmleditor/core` **^1.1.1**.
|
|
6
|
+
|
|
7
|
+
**Repository:** [github.com/rajkishorsahu89/richhtmleditor](https://github.com/rajkishorsahu89/richhtmleditor)
|
|
8
|
+
|
|
9
|
+
**Demo:** [richhtmleditor.vercel.app](https://richhtmleditor.vercel.app/) — [demo](https://richhtmleditor.vercel.app/demo) · [guide](https://richhtmleditor.vercel.app/guide) · [API](https://richhtmleditor.vercel.app/api). Doc Preview joint demo: [doc-preview-app.vercel.app/demo/enterprise](https://doc-preview-app.vercel.app/demo/enterprise)
|
|
10
|
+
|
|
11
|
+
### What's in 1.1.1
|
|
12
|
+
|
|
13
|
+
- **`createCommentsPlugin`** — toolbar Comment and Comments panel buttons
|
|
14
|
+
- **Add Comment modal** — compose popover anchored to the current text selection
|
|
15
|
+
- **Anchored highlights** — `<span data-de-comment-id>` markers in document HTML
|
|
16
|
+
- **Hover tooltips** — preview thread excerpt and messages on anchor hover
|
|
17
|
+
- **Comments panel** — thread list with reply, resolve, and reopen
|
|
18
|
+
- **@mentions** — autocomplete in compose box (`mentionUsers` option)
|
|
19
|
+
- **Export HTML** — `buildCommentsExportHtml` and `editor.getCommentsExportHtml()` for publish bundles
|
|
20
|
+
|
|
21
|
+
> Requires `features.comments: true`. Demo keys: `RHE-ENT-DEMO-2026-FULL` or `RHE-ENT-DEMO-2026-COMMENTS`.
|
|
22
|
+
|
|
23
|
+
**Keywords:** `richhtmleditor` `comments` `review` `enterprise` `annotations` `wysiwyg`
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @richhtmleditor/comments @richhtmleditor/enterprise
|
|
29
|
+
# Requires @richhtmleditor/core (via framework wrapper or direct install).
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { createEditor } from "@richhtmleditor/core";
|
|
36
|
+
import { createCommentsPlugin } from "@richhtmleditor/comments";
|
|
37
|
+
import { resolveEnterpriseFeatures } from "@richhtmleditor/enterprise/browser";
|
|
38
|
+
|
|
39
|
+
const gate = resolveEnterpriseFeatures({ token: "RHE-ENT-DEMO-2026-FULL" });
|
|
40
|
+
|
|
41
|
+
const editor = createEditor({
|
|
42
|
+
element: host,
|
|
43
|
+
toolbar: { preset: "full" },
|
|
44
|
+
features: gate.features,
|
|
45
|
+
plugins: [
|
|
46
|
+
createCommentsPlugin({
|
|
47
|
+
author: "Reviewer",
|
|
48
|
+
mentionUsers: ["reviewer", "approver", "legal", "publisher"],
|
|
49
|
+
onChange: (threads) => saveThreads(threads)
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Select text in the document, click **Comment** (toolbar or selection chip), and add a comment in the compose popover. Anchors persist in exported HTML as `data-de-comment-id` spans.
|
|
56
|
+
|
|
57
|
+
## Usage — export with comments
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { buildCommentsExportHtml } from "@richhtmleditor/comments";
|
|
61
|
+
|
|
62
|
+
const commentsHtml = editor.getCommentsExportHtml?.()
|
|
63
|
+
?? buildCommentsExportHtml(threads);
|
|
64
|
+
|
|
65
|
+
const preview = editor.exportForPreview({
|
|
66
|
+
workflowState: "in_review",
|
|
67
|
+
commentsHtml
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## API
|
|
72
|
+
|
|
73
|
+
### `createCommentsPlugin(options?)`
|
|
74
|
+
|
|
75
|
+
| Option | Type | Description |
|
|
76
|
+
| --- | --- | --- |
|
|
77
|
+
| `author` | `string` | Default author name for new messages (default `"Reviewer"`). |
|
|
78
|
+
| `initialThreads` | `CommentThread[]` | Pre-load comment threads. |
|
|
79
|
+
| `onChange` | `(threads: CommentThread[]) => void` | Fired when threads are added, replied, or resolved. |
|
|
80
|
+
| `mentionUsers` | `string[]` | Users for `@mention` autocomplete. |
|
|
81
|
+
|
|
82
|
+
### `CommentThread`
|
|
83
|
+
|
|
84
|
+
| Field | Type | Description |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| `id` | `string` | Thread identifier. |
|
|
87
|
+
| `excerpt` | `string` | Quoted selection text. |
|
|
88
|
+
| `status` | `"open" \| "resolved"` | Thread state. |
|
|
89
|
+
| `anchorId` | `string?` | Links to `data-de-comment-id` in document HTML. |
|
|
90
|
+
| `messages` | `Array<{ id, author, body, createdAt }>` | Thread messages. |
|
|
91
|
+
|
|
92
|
+
### Toolbar tools registered
|
|
93
|
+
|
|
94
|
+
| Tool ID | Description |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
| `commentAdd` | Comment on selected text (opens compose popover). |
|
|
97
|
+
| `commentPanel` | Toggle comments side panel. |
|
|
98
|
+
|
|
99
|
+
### Editor extensions (when plugin attached)
|
|
100
|
+
|
|
101
|
+
| Method | Description |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| `getCommentThreads()` | Current thread list. |
|
|
104
|
+
| `getCommentsExportHtml()` | HTML aside for `exportForPreview({ commentsHtml })`. |
|
|
105
|
+
|
|
106
|
+
### `buildCommentsExportHtml(threads)`
|
|
107
|
+
|
|
108
|
+
Standalone export helper — returns an HTML fragment for comment threads.
|
|
109
|
+
|
|
110
|
+
## Related packages
|
|
111
|
+
|
|
112
|
+
- [`@richhtmleditor/core`](https://www.npmjs.com/package/@richhtmleditor/core) — editor engine and `exportForPreview`.
|
|
113
|
+
- [`@richhtmleditor/enterprise`](https://www.npmjs.com/package/@richhtmleditor/enterprise) — licence gating for `features.comments`.
|
|
114
|
+
- [`@richhtmleditor/workflows`](https://www.npmjs.com/package/@richhtmleditor/workflows) — draft/review/approved states.
|
|
115
|
+
- [`@richhtmleditor/ai`](https://www.npmjs.com/package/@richhtmleditor/ai) — AI authoring plugin.
|
|
116
|
+
- [`@richhtmleditor/angular`](https://www.npmjs.com/package/@richhtmleditor/angular) — Angular wrapper.
|
|
117
|
+
- [`@richhtmleditor/react`](https://www.npmjs.com/package/@richhtmleditor/react) — React wrapper.
|
|
118
|
+
|
|
119
|
+
## License
|
|
120
|
+
|
|
121
|
+
[MIT](./LICENSE)
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,QAmEtB,CAAC"}
|
package/dist/styles.js
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
/** Shared comment UI styles injected once per editor host. */
|
|
2
2
|
export const COMMENT_UI_STYLES = `
|
|
3
3
|
.de-comments-panel{position:absolute;top:0;right:0;width:min(280px,100%);max-height:100%;overflow:auto;
|
|
4
|
-
background:var(--de-
|
|
5
|
-
font:13px/1.45 system-ui,sans-serif;z-index:4;box-shadow:-4px 0 16px rgba(15,23,42,.06)}
|
|
4
|
+
background:var(--de-content-bg,#fff);border-left:1px solid var(--de-border,#e2e8f0);padding:12px;
|
|
5
|
+
font:13px/1.45 system-ui,sans-serif;z-index:4;box-shadow:-4px 0 16px rgba(15,23,42,.06);color:var(--de-text-primary,#0f172a)}
|
|
6
6
|
.de-comments-panel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
|
|
7
7
|
.de-comments-panel__title{margin:0;font-size:14px;font-weight:600}
|
|
8
|
-
.de-comments-panel__close{border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:2px 6px}
|
|
9
|
-
.de-comments-panel__empty{color:var(--de-muted,#64748b);margin:0}
|
|
8
|
+
.de-comments-panel__close{border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;color:var(--de-text-muted,#94a3b8)}
|
|
9
|
+
.de-comments-panel__empty{color:var(--de-text-muted,#64748b);margin:0}
|
|
10
10
|
.de-comments-thread{border:1px solid var(--de-border,#e2e8f0);border-radius:8px;padding:8px;margin:0 0 8px;cursor:pointer}
|
|
11
11
|
.de-comments-thread--resolved{opacity:.65}
|
|
12
|
-
.de-comments-thread--active{border-color
|
|
13
|
-
.de-comments-thread__excerpt{margin:0 0 6px;font-size:12px;color:var(--de-muted,#64748b)}
|
|
12
|
+
.de-comments-thread--active{border-color:var(--de-primary,#2563eb);box-shadow:0 0 0 1px color-mix(in srgb,var(--de-primary,#2563eb) 20%,transparent)}
|
|
13
|
+
.de-comments-thread__excerpt{margin:0 0 6px;font-size:12px;color:var(--de-text-muted,#64748b)}
|
|
14
14
|
.de-comments-thread__msg{margin:0 0 4px}
|
|
15
|
-
.de-comments-thread__meta{font-size:11px;color:var(--de-muted,#94a3b8)}
|
|
15
|
+
.de-comments-thread__meta{font-size:11px;color:var(--de-text-muted,#94a3b8)}
|
|
16
16
|
.de-comments-thread__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
|
|
17
|
-
.de-comments-thread__btn{font-size:11px;border:1px solid var(--de-border,#cbd5e1);background
|
|
17
|
+
.de-comments-thread__btn{font-size:11px;border:1px solid var(--de-border,#cbd5e1);background:var(--de-toolbar-bg,#f8fafc);
|
|
18
|
+
color:var(--de-text-primary,#0f172a);border-radius:6px;padding:3px 8px;cursor:pointer}
|
|
19
|
+
.de-comments-thread__btn:hover{background:color-mix(in srgb,var(--de-primary,#2563eb) 8%,var(--de-toolbar-bg,#f8fafc));border-color:color-mix(in srgb,var(--de-primary,#2563eb) 30%,var(--de-border,#cbd5e1))}
|
|
18
20
|
.de-comments-thread__reply{display:flex;flex-direction:column;gap:6px;margin-top:8px}
|
|
19
|
-
.de-comments-thread__reply textarea{min-height:48px;resize:vertical;border:1px solid var(--de-border,#cbd5e1);border-radius:8px;
|
|
20
|
-
|
|
21
|
-
.de-comments-compose
|
|
22
|
-
.de-comments-compose
|
|
23
|
-
|
|
24
|
-
.de-comments-
|
|
25
|
-
.de-comments-
|
|
26
|
-
.de-comments-
|
|
21
|
+
.de-comments-thread__reply textarea{min-height:48px;resize:vertical;border:1px solid var(--de-border,#cbd5e1);border-radius:8px;
|
|
22
|
+
padding:6px 8px;font:inherit;background:var(--de-content-bg,#fff);color:var(--de-text-primary,#0f172a)}
|
|
23
|
+
.de-comments-compose{display:flex;flex-direction:column;gap:6px;margin-top:10px;position:relative}
|
|
24
|
+
.de-comments-compose textarea{min-height:64px;resize:vertical;border:1px solid var(--de-border,#cbd5e1);border-radius:8px;
|
|
25
|
+
padding:8px;font:inherit;background:var(--de-content-bg,#fff);color:var(--de-text-primary,#0f172a)}
|
|
26
|
+
.de-comments-compose button{align-self:flex-start;border:0;background:var(--de-primary,#2563eb);color:#fff;border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit}
|
|
27
|
+
.de-comments-compose button:hover{background:var(--de-primary-hover,#1d4ed8)}
|
|
28
|
+
.de-comments-mentions{position:absolute;left:0;right:0;bottom:calc(100% + 4px);background:var(--de-toolbar-bg,#fff);
|
|
29
|
+
border:1px solid var(--de-border,#cbd5e1);border-radius:8px;box-shadow:0 8px 20px rgba(15,23,42,.12);padding:4px;z-index:6}
|
|
30
|
+
.de-comments-mentions__item{display:block;width:100%;text-align:left;border:0;background:transparent;
|
|
31
|
+
padding:6px 8px;border-radius:6px;cursor:pointer;font:inherit;color:var(--de-text-primary,#0f172a)}
|
|
32
|
+
.de-comments-mentions__item:hover{background:color-mix(in srgb,var(--de-primary,#2563eb) 8%,transparent)}
|
|
27
33
|
.de-content .de-comment-anchor,
|
|
28
34
|
.de-comment-anchor{background:rgba(251,191,36,.38)!important;border-bottom:2px solid #f59e0b!important;border-radius:2px;cursor:pointer}
|
|
29
35
|
.de-content .de-comment-anchor--resolved,
|
|
@@ -35,28 +41,30 @@ export const COMMENT_UI_STYLES = `
|
|
|
35
41
|
.de-selection-comment-chip__icon{font-size:13px;line-height:1}
|
|
36
42
|
.de-comment-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.28);display:flex;align-items:center;justify-content:center;
|
|
37
43
|
padding:16px;z-index:30;box-sizing:border-box}
|
|
38
|
-
.de-comment-modal{width:min(420px,100%);padding:16px 18px 18px;border-radius:12px;border:1px solid
|
|
39
|
-
box-shadow:0 20px 48px rgba(15,23,42,.2);font:13px/1.45 system-ui,sans-serif}
|
|
44
|
+
.de-comment-modal{width:min(420px,100%);padding:16px 18px 18px;border-radius:12px;border:1px solid var(--de-border,#e2e8f0);
|
|
45
|
+
background:var(--de-content-bg,#fff);box-shadow:0 20px 48px rgba(15,23,42,.2);font:13px/1.45 system-ui,sans-serif;color:var(--de-text-primary,#0f172a)}
|
|
40
46
|
.de-comment-modal__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}
|
|
41
|
-
.de-comment-modal__title{margin:0;font-size:16px;font-weight:700;color
|
|
42
|
-
.de-comment-modal__close{border:0;background:transparent;cursor:pointer;font-size:22px;line-height:1;color
|
|
43
|
-
.de-comment-modal__quote{display:flex;align-items:stretch;gap:10px;margin:0 0 14px;padding:10px 12px;
|
|
47
|
+
.de-comment-modal__title{margin:0;font-size:16px;font-weight:700;color:var(--de-text-primary,#0f172a)}
|
|
48
|
+
.de-comment-modal__close{border:0;background:transparent;cursor:pointer;font-size:22px;line-height:1;color:var(--de-text-muted,#94a3b8);padding:2px 6px}
|
|
49
|
+
.de-comment-modal__quote{display:flex;align-items:stretch;gap:10px;margin:0 0 14px;padding:10px 12px;
|
|
50
|
+
background:color-mix(in srgb,var(--de-border,#e2e8f0) 40%,transparent);border-radius:8px}
|
|
44
51
|
.de-comment-modal__quote-bar{flex:0 0 4px;border-radius:4px;background:#0d9488}
|
|
45
|
-
.de-comment-modal__quote-text{font-size:14px;color
|
|
46
|
-
.de-comment-modal__label{display:block;margin:0 0 8px;font-size:14px;font-weight:700;color
|
|
47
|
-
.de-comment-modal__input{display:block;width:100%;min-height:96px;resize:vertical;border:1px solid
|
|
48
|
-
padding:10px 12px;font:inherit;box-sizing:border-box}
|
|
52
|
+
.de-comment-modal__quote-text{font-size:14px;color:var(--de-text-primary,#334155);line-height:1.45;word-break:break-word}
|
|
53
|
+
.de-comment-modal__label{display:block;margin:0 0 8px;font-size:14px;font-weight:700;color:var(--de-text-primary,#0f172a)}
|
|
54
|
+
.de-comment-modal__input{display:block;width:100%;min-height:96px;resize:vertical;border:1px solid var(--de-border,#0f172a);border-radius:8px;
|
|
55
|
+
padding:10px 12px;font:inherit;box-sizing:border-box;background:var(--de-content-bg,#fff);color:var(--de-text-primary,#0f172a)}
|
|
49
56
|
.de-comment-modal__input:focus{outline:2px solid #0d9488;outline-offset:1px}
|
|
50
57
|
.de-comment-modal__actions{display:flex;justify-content:flex-end;margin-top:14px}
|
|
51
58
|
.de-comment-modal__btn{border-radius:8px;padding:8px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
|
|
52
59
|
.de-comment-modal__btn--submit{border:0;background:#0d9488;color:#fff}
|
|
60
|
+
.de-comment-modal__btn--submit:hover{background:#0f766e}
|
|
53
61
|
.de-comment-hover-tip{position:absolute;width:min(280px,calc(100% - 16px));padding:10px 12px;border-radius:8px;
|
|
54
|
-
border:1px solid #f59e0b;background
|
|
55
|
-
z-index:22;font:12px/1.45 system-ui,sans-serif;pointer-events:auto}
|
|
56
|
-
.de-comment-hover-tip--resolved{border-color
|
|
57
|
-
.de-comment-hover-tip__title{margin:0 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color
|
|
62
|
+
border:1px solid #f59e0b;background:var(--de-content-bg,#fffbeb);box-shadow:0 10px 28px rgba(15,23,42,.14);
|
|
63
|
+
z-index:22;font:12px/1.45 system-ui,sans-serif;pointer-events:auto;color:var(--de-text-primary,#0f172a)}
|
|
64
|
+
.de-comment-hover-tip--resolved{border-color:var(--de-border,#94a3b8);background:var(--de-content-bg,#f8fafc)}
|
|
65
|
+
.de-comment-hover-tip__title{margin:0 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--de-text-muted,#64748b)}
|
|
58
66
|
.de-comment-hover-tip__highlight{margin:0 0 8px;padding:6px 8px;border-radius:6px;background:rgba(251,191,36,.35);
|
|
59
|
-
border-bottom:2px solid #f59e0b;font-size:13px;font-weight:600;color
|
|
60
|
-
.de-comment-hover-tip__msg{margin:0 0 4px;color
|
|
67
|
+
border-bottom:2px solid #f59e0b;font-size:13px;font-weight:600;color:var(--de-text-primary,#0f172a);word-break:break-word}
|
|
68
|
+
.de-comment-hover-tip__msg{margin:0 0 4px;color:var(--de-text-primary,#0f172a)}
|
|
61
69
|
`.trim();
|
|
62
70
|
//# sourceMappingURL=styles.js.map
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEhC,CAAC,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@richhtmleditor/comments",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Review and comments workflow plugin for Rich HTML Editor (enterprise).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"prepack": "node ../../scripts/assert-pack-ready.mjs"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@richhtmleditor/core": "^1.
|
|
24
|
+
"@richhtmleditor/core": "^1.1.1"
|
|
25
25
|
},
|
|
26
26
|
"keywords": [
|
|
27
27
|
"richhtmleditor",
|