@4399ywkf/editor 0.4.0 → 0.4.2

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/dist/style.css CHANGED
@@ -5711,89 +5711,96 @@ span.tiptap-slash-decoration.is-empty::after {
5711
5711
  }
5712
5712
 
5713
5713
  /* plugins/ai/ai-dialog.scss */
5714
- .ai-dialog {
5715
- width: 380px;
5716
- padding: 0;
5717
- border-radius: 8px;
5718
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
5719
- }
5720
- .ai-dialog .ai-dialog-header {
5721
- display: flex;
5722
- align-items: center;
5723
- gap: 8px;
5724
- padding: 12px 16px;
5725
- border-bottom: 1px solid var(--color-border, #e5e7eb);
5726
- font-weight: 600;
5727
- font-size: 14px;
5728
- color: var(--color-text, #1f2937);
5714
+ @charset "UTF-8";
5715
+ :root {
5716
+ --tiptap-ai-dialog-bg-color: var(--white);
5717
+ --tiptap-ai-dialog-border-color: var(--tt-gray-light-a-100);
5718
+ --tiptap-ai-dialog-text-color: var(--tt-gray-light-a-900);
5719
+ --tiptap-ai-dialog-placeholder-color: var(--tt-gray-light-a-400);
5720
+ --tiptap-ai-dialog-submit-bg-color: var(--tt-gray-light-a-200);
5721
+ --tiptap-ai-dialog-submit-icon-color: var(--white);
5729
5722
  }
5730
- .ai-dialog .ai-dialog-header .ai-dialog-icon {
5731
- width: 18px;
5732
- height: 18px;
5723
+
5724
+ .dark {
5725
+ --tiptap-ai-dialog-bg-color: var(--tt-gray-dark-50);
5726
+ --tiptap-ai-dialog-border-color: var(--tt-gray-dark-a-100);
5727
+ --tiptap-ai-dialog-text-color: var(--tt-gray-dark-a-900);
5728
+ --tiptap-ai-dialog-placeholder-color: var(--tt-gray-dark-a-400);
5729
+ --tiptap-ai-dialog-submit-bg-color: var(--tt-gray-dark-a-200);
5730
+ --tiptap-ai-dialog-submit-icon-color: var(--tt-gray-dark-50);
5733
5731
  }
5734
- .ai-dialog .ai-dialog-body {
5732
+
5733
+ .tiptap-ai-dialog {
5735
5734
  display: flex;
5736
5735
  flex-direction: column;
5737
- gap: 12px;
5738
- padding: 16px;
5736
+ gap: 0.375rem;
5737
+ width: 22rem;
5738
+ max-width: min(22rem, 100vw - 2rem);
5739
5739
  }
5740
- .ai-dialog .ai-dialog-body .ai-dialog-input-group {
5740
+ .tiptap-ai-dialog-field {
5741
5741
  display: flex;
5742
- flex-direction: column;
5743
- gap: 8px;
5742
+ align-items: center;
5743
+ gap: 0.25rem;
5744
+ /* 胶囊:圆角吃满高度,和工具条那排方角按钮区分开,暗示「这里要打字」 */
5745
+ border-radius: 999px;
5746
+ padding: 0.25rem 0.25rem 0.25rem 0.875rem;
5747
+ background-color: var(--tiptap-ai-dialog-bg-color);
5748
+ border: 1px solid var(--tiptap-ai-dialog-border-color);
5749
+ box-shadow: var(--tt-shadow-elevated-md);
5750
+ transition: opacity 150ms ease;
5744
5751
  }
5745
- .ai-dialog .ai-dialog-body .ai-dialog-input-group .ai-dialog-input {
5746
- width: 100%;
5747
- padding: 8px 12px;
5748
- border: 1px solid var(--color-border, #e5e7eb);
5749
- border-radius: 6px;
5750
- font-size: 14px;
5751
- font-family: inherit;
5752
- resize: vertical;
5753
- min-height: 40px;
5754
- max-height: 120px;
5752
+ .tiptap-ai-dialog-field[data-loading=true] {
5753
+ opacity: 0.6;
5755
5754
  }
5756
- .ai-dialog .ai-dialog-body .ai-dialog-input-group .ai-dialog-input:focus {
5755
+ .tiptap-ai-dialog-input {
5756
+ flex: 1;
5757
+ min-width: 0;
5758
+ height: 1.875rem;
5759
+ border: none;
5757
5760
  outline: none;
5758
- border-color: var(--color-primary, #3b82f6);
5759
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
5761
+ background: transparent;
5762
+ font-size: 0.875rem;
5763
+ font-family: inherit;
5764
+ color: var(--tiptap-ai-dialog-text-color);
5760
5765
  }
5761
- .ai-dialog .ai-dialog-body .ai-dialog-input-group .ai-dialog-input:disabled {
5762
- background-color: var(--color-bg-disabled, #f3f4f6);
5763
- color: var(--color-text-disabled, #9ca3af);
5766
+ .tiptap-ai-dialog-input::placeholder {
5767
+ color: var(--tiptap-ai-dialog-placeholder-color);
5764
5768
  }
5765
- .ai-dialog .ai-dialog-body .ai-dialog-error {
5766
- padding: 8px 12px;
5767
- background-color: #fee;
5768
- border: 1px solid #fcc;
5769
- border-radius: 4px;
5770
- font-size: 12px;
5771
- color: #c33;
5772
- line-height: 1.4;
5769
+ .tiptap-ai-dialog-input:disabled {
5770
+ cursor: default;
5773
5771
  }
5774
- .ai-dialog .ai-dialog-body .ai-dialog-actions {
5772
+ .tiptap-ai-dialog-submit {
5773
+ flex: none;
5775
5774
  display: flex;
5776
- justify-content: flex-end;
5777
- gap: 8px;
5778
- padding-top: 8px;
5779
- }
5780
- .ai-dialog .ai-dialog-body .ai-dialog-actions button {
5781
- min-width: 80px;
5782
- height: 32px;
5783
- padding: 0 12px;
5784
- font-size: 14px;
5785
- border-radius: 4px;
5775
+ align-items: center;
5776
+ justify-content: center;
5777
+ width: 1.875rem;
5778
+ height: 1.875rem;
5779
+ border: none;
5780
+ border-radius: 50%;
5781
+ padding: 0;
5786
5782
  cursor: pointer;
5783
+ background-color: var(--tt-brand-color-500, var(--tiptap-ai-dialog-submit-bg-color));
5784
+ color: var(--tiptap-ai-dialog-submit-icon-color);
5785
+ transition: background-color 150ms ease, opacity 150ms ease;
5787
5786
  }
5788
- .ai-dialog .ai-dialog-body .ai-dialog-actions button:disabled {
5789
- opacity: 0.5;
5790
- cursor: not-allowed;
5787
+ .tiptap-ai-dialog-submit svg {
5788
+ width: 1rem;
5789
+ height: 1rem;
5790
+ }
5791
+ .tiptap-ai-dialog-submit {
5792
+ /* 空输入时不是隐藏而是压灰:位置留着,用户知道回车之外还有一颗键 */
5793
+ }
5794
+ .tiptap-ai-dialog-submit:disabled {
5795
+ cursor: default;
5796
+ background-color: var(--tiptap-ai-dialog-submit-bg-color);
5791
5797
  }
5792
- .ai-dialog .ai-dialog-body .ai-dialog-actions button[loading=true] {
5793
- opacity: 0.7;
5798
+ .tiptap-ai-dialog-submit:not(:disabled):hover {
5799
+ opacity: 0.85;
5794
5800
  }
5795
- .ai-dialog .ai-dialog-body .ai-dialog-actions button .ai-dialog-button-icon {
5796
- width: 16px;
5797
- height: 16px;
5798
- margin-left: 4px;
5801
+ .tiptap-ai-dialog-error {
5802
+ padding: 0 0.875rem;
5803
+ font-size: 0.75rem;
5804
+ line-height: 1.4;
5805
+ color: var(--tt-color-text-red, #c33);
5799
5806
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4399ywkf/editor",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "4399 多格式文档编辑器:doc(tiptap) / sheet(univer) / pdf,含 docx 导入导出与 AI 可驱动的结构化编辑面(./doc-runtime)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -127,7 +127,7 @@
127
127
  "scripts": {
128
128
  "build": "tsup && node scripts/build-styles.mjs",
129
129
  "dev": "tsup --watch",
130
- "test": "node --experimental-strip-types --test src/docx/*.test.ts src/doc-runtime/*.test.ts",
130
+ "test": "node --experimental-strip-types --test src/docx/*.test.ts src/doc-runtime/*.test.ts src/plugins/**/*.test.ts",
131
131
  "typecheck": "tsc --noEmit"
132
132
  }
133
133
  }