@mirantes-micro/foundation-design-system 1.2.93 → 1.2.94

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 (26) hide show
  1. package/dist/index.d.ts +16 -0
  2. package/dist/index.js +169 -130
  3. package/package.json +25 -2
  4. package/src/components/tiptap-node/blockquote-node/blockquote-node.css +35 -0
  5. package/src/components/tiptap-node/code-block-node/code-block-node.css +51 -0
  6. package/src/components/tiptap-node/heading-node/heading-node.css +43 -0
  7. package/src/components/tiptap-node/horizontal-rule-node/horizontal-rule-node.css +25 -0
  8. package/src/components/tiptap-node/image-node/image-node.css +29 -0
  9. package/src/components/tiptap-node/image-upload-node/image-upload-node.css +239 -0
  10. package/src/components/tiptap-node/list-node/list-node.css +151 -0
  11. package/src/components/tiptap-node/paragraph-node/paragraph-node.css +238 -0
  12. package/src/components/tiptap-templates/simple/simple-editor.css +93 -0
  13. package/src/components/tiptap-ui/color-highlight-button/color-highlight-button.css +42 -0
  14. package/src/components/tiptap-ui-primitive/badge/badge-colors.css +215 -0
  15. package/src/components/tiptap-ui-primitive/badge/badge-group.css +16 -0
  16. package/src/components/tiptap-ui-primitive/badge/badge.css +95 -0
  17. package/src/components/tiptap-ui-primitive/button/button-colors.css +394 -0
  18. package/src/components/tiptap-ui-primitive/button/button-group.css +22 -0
  19. package/src/components/tiptap-ui-primitive/button/button.css +336 -0
  20. package/src/components/tiptap-ui-primitive/card/card.css +76 -0
  21. package/src/components/tiptap-ui-primitive/dropdown-menu/dropdown-menu.css +63 -0
  22. package/src/components/tiptap-ui-primitive/input/input.css +44 -0
  23. package/src/components/tiptap-ui-primitive/popover/popover.css +63 -0
  24. package/src/components/tiptap-ui-primitive/separator/separator.css +23 -0
  25. package/src/components/tiptap-ui-primitive/toolbar/toolbar.css +101 -0
  26. package/src/components/tiptap-ui-primitive/tooltip/tooltip.css +43 -0
@@ -0,0 +1,238 @@
1
+ .tiptap.ProseMirror {
2
+ --tt-collaboration-carets-label: var(--tt-gray-light-900);
3
+ --link-text-color: var(--tt-brand-color-500);
4
+ --thread-text: var(--tt-gray-light-900);
5
+ --placeholder-color: var(--tt-gray-light-a-400);
6
+ --thread-bg-color: var(--tt-color-yellow-inc-2);
7
+ --tiptap-ai-insertion-color: var(--tt-brand-color-600);
8
+ }
9
+
10
+ .dark .tiptap.ProseMirror {
11
+ --tt-collaboration-carets-label: var(--tt-gray-dark-100);
12
+ --link-text-color: var(--tt-brand-color-400);
13
+ --thread-text: var(--tt-gray-dark-900);
14
+ --placeholder-color: var(--tt-gray-dark-a-400);
15
+ --thread-bg-color: var(--tt-color-yellow-dec-2);
16
+ --tiptap-ai-insertion-color: var(--tt-brand-color-400);
17
+ }
18
+
19
+ /* Top-level positioning */
20
+ .tiptap.ProseMirror>* {
21
+ position: relative;
22
+ }
23
+
24
+ /* =====================
25
+ CORE EDITOR STYLES
26
+ ===================== */
27
+ .tiptap.ProseMirror {
28
+ white-space: pre-wrap;
29
+ outline: none;
30
+ caret-color: var(--tt-cursor-color);
31
+ }
32
+
33
+ .tiptap.ProseMirror p:not(:first-child):not(td p):not(th p) {
34
+ font-size: 1rem;
35
+ line-height: 1.6;
36
+ font-weight: normal;
37
+ margin-top: 20px;
38
+ }
39
+
40
+ .tiptap.ProseMirror:not(.readonly):not(.ProseMirror-hideselection) ::selection {
41
+ background-color: var(--tt-selection-color);
42
+ }
43
+
44
+ .tiptap.ProseMirror:not(.readonly):not(.ProseMirror-hideselection) .selection::selection {
45
+ background: transparent;
46
+ }
47
+
48
+ .tiptap.ProseMirror .selection {
49
+ display: inline;
50
+ background-color: var(--tt-selection-color);
51
+ }
52
+
53
+ .tiptap.ProseMirror .ProseMirror-selectednode:not(img):not(pre):not(.react-renderer) {
54
+ border-radius: var(--tt-radius-md);
55
+ background-color: var(--tt-selection-color);
56
+ }
57
+
58
+ .tiptap.ProseMirror .ProseMirror-hideselection {
59
+ caret-color: transparent;
60
+ }
61
+
62
+ .tiptap.ProseMirror.resize-cursor {
63
+ cursor: ew-resize;
64
+ cursor: col-resize;
65
+ }
66
+
67
+ /* =====================
68
+ TEXT DECORATION
69
+ ===================== */
70
+ .tiptap.ProseMirror a span {
71
+ text-decoration: underline;
72
+ }
73
+
74
+ .tiptap.ProseMirror s span {
75
+ text-decoration: line-through;
76
+ }
77
+
78
+ .tiptap.ProseMirror u span {
79
+ text-decoration: underline;
80
+ }
81
+
82
+ .tiptap.ProseMirror .tiptap-ai-insertion {
83
+ color: var(--tiptap-ai-insertion-color);
84
+ }
85
+
86
+ /* =====================
87
+ COLLABORATION
88
+ ===================== */
89
+ .tiptap.ProseMirror .collaboration-carets__caret {
90
+ border-right: 1px solid transparent;
91
+ border-left: 1px solid transparent;
92
+ pointer-events: none;
93
+ margin-left: -1px;
94
+ margin-right: -1px;
95
+ position: relative;
96
+ word-break: normal;
97
+ }
98
+
99
+ .tiptap.ProseMirror .collaboration-carets__label {
100
+ color: var(--tt-collaboration-carets-label);
101
+ border-radius: 0.25rem;
102
+ border-bottom-left-radius: 0;
103
+ font-size: 0.75rem;
104
+ font-weight: 600;
105
+ left: -1px;
106
+ line-height: 1;
107
+ padding: 0.125rem 0.375rem;
108
+ position: absolute;
109
+ top: -1.3em;
110
+ user-select: none;
111
+ white-space: nowrap;
112
+ }
113
+
114
+ /* =====================
115
+ EMOJI
116
+ ===================== */
117
+ .tiptap.ProseMirror [data-type="emoji"] img {
118
+ display: inline-block;
119
+ width: 1.25em;
120
+ height: 1.25em;
121
+ cursor: text;
122
+ }
123
+
124
+ /* =====================
125
+ LINKS
126
+ ===================== */
127
+ .tiptap.ProseMirror a {
128
+ color: var(--link-text-color);
129
+ text-decoration: underline;
130
+ }
131
+
132
+ /* =====================
133
+ MENTION
134
+ ===================== */
135
+ .tiptap.ProseMirror [data-type="mention"] {
136
+ display: inline-block;
137
+ color: var(--tt-brand-color-500);
138
+ }
139
+
140
+ /* =====================
141
+ THREADS
142
+ ===================== */
143
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--inline {
144
+ transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
145
+ color: var(--thread-text);
146
+ border-bottom: 2px dashed var(--tt-color-yellow-base);
147
+ font-weight: 600;
148
+ }
149
+
150
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--inline.tiptap-thread--selected,
151
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--inline.tiptap-thread--hovered {
152
+ background-color: var(--thread-bg-color);
153
+ border-bottom-color: transparent;
154
+ }
155
+
156
+ /* Block threads with images */
157
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:has(img) {
158
+ outline: 0.125rem solid var(--tt-color-yellow-base);
159
+ border-radius: var(--tt-radius-xs, 0.25rem);
160
+ overflow: hidden;
161
+ width: fit-content;
162
+ }
163
+
164
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:has(img).tiptap-thread--selected {
165
+ outline-width: 0.25rem;
166
+ outline-color: var(--tt-color-yellow-base);
167
+ }
168
+
169
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:has(img).tiptap-thread--hovered {
170
+ outline-width: 0.25rem;
171
+ }
172
+
173
+ /* Block threads without images */
174
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:not(:has(img)) {
175
+ border-radius: 0.25rem;
176
+ border-bottom: 0.125rem dashed var(--tt-color-yellow-base);
177
+ border-top: 0.125rem dashed var(--tt-color-yellow-base);
178
+ outline: 0.25rem solid transparent;
179
+ }
180
+
181
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:not(:has(img)).tiptap-thread--hovered,
182
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--unresolved.tiptap-thread--block:not(:has(img)).tiptap-thread--selected {
183
+ background-color: var(--tt-color-yellow-base);
184
+ outline-color: var(--tt-color-yellow-base);
185
+ }
186
+
187
+ /* Resolved inline */
188
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--resolved.tiptap-thread--inline.tiptap-thread--selected {
189
+ background-color: var(--tt-color-yellow-base);
190
+ border-color: transparent;
191
+ opacity: 0.5;
192
+ }
193
+
194
+ /* React renderer blocks */
195
+ .tiptap.ProseMirror .tiptap-thread.tiptap-thread--block:has(.react-renderer) {
196
+ margin-top: 3rem;
197
+ margin-bottom: 3rem;
198
+ }
199
+
200
+ /* =====================
201
+ PLACEHOLDER
202
+ ===================== */
203
+ .is-empty:not(.with-slash)[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child)::before {
204
+ content: attr(data-placeholder);
205
+ }
206
+
207
+ .is-empty.with-slash[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child)::before {
208
+ content: "Write, type '/' for commands…";
209
+ font-style: italic;
210
+ }
211
+
212
+ .is-empty[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child)::before {
213
+ pointer-events: none;
214
+ height: 0;
215
+ position: absolute;
216
+ width: 100%;
217
+ text-align: inherit;
218
+ left: 0;
219
+ right: 0;
220
+ }
221
+
222
+ .is-empty[data-placeholder]:has(> .ProseMirror-trailingBreak)::before {
223
+ color: var(--placeholder-color);
224
+ }
225
+
226
+ /* =====================
227
+ DROPCURSOR
228
+ ===================== */
229
+ .prosemirror-dropcursor-block,
230
+ .prosemirror-dropcursor-inline {
231
+ background: var(--tt-brand-color-400) !important;
232
+ border-radius: 0.25rem;
233
+ margin-left: -1px;
234
+ margin-right: -1px;
235
+ width: 100%;
236
+ height: 0.188rem;
237
+ cursor: grabbing;
238
+ }
@@ -0,0 +1,93 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
2
+
3
+ /* ---------- ROOT VARIABLES (LIGHT / DARK) ---------- */
4
+
5
+ body {
6
+ --tt-toolbar-height: 44px;
7
+ --tt-theme-text: var(--tt-gray-light-900);
8
+ }
9
+
10
+ /* dark mode */
11
+ .dark body {
12
+ --tt-theme-text: var(--tt-gray-dark-900);
13
+ }
14
+
15
+ /* ---------- BASE STYLES ---------- */
16
+
17
+ body {
18
+ font-family: "Inter", sans-serif;
19
+ color: var(--tt-theme-text);
20
+ font-optical-sizing: auto;
21
+ font-weight: 400;
22
+ font-style: normal;
23
+ padding: 0;
24
+ overscroll-behavior-y: none;
25
+ }
26
+
27
+ html,
28
+ body {
29
+ overscroll-behavior-x: none;
30
+ }
31
+
32
+ html,
33
+ body,
34
+ #root,
35
+ #app {
36
+ height: 100%;
37
+ background-color: var(--tt-bg-color);
38
+ }
39
+
40
+ /* ---------- SCROLLBAR ---------- */
41
+
42
+ ::-webkit-scrollbar {
43
+ width: 0.25rem;
44
+ }
45
+
46
+ * {
47
+ scrollbar-width: thin;
48
+ scrollbar-color: var(--tt-scrollbar-color) transparent;
49
+ }
50
+
51
+ ::-webkit-scrollbar-thumb {
52
+ background-color: var(--tt-scrollbar-color);
53
+ border-radius: 9999px;
54
+ }
55
+
56
+ ::-webkit-scrollbar-track {
57
+ background: transparent;
58
+ }
59
+
60
+ /* ---------- TIPTAP STYLES ---------- */
61
+
62
+ .tiptap.ProseMirror {
63
+ font-family: "DM Sans", sans-serif;
64
+ }
65
+
66
+ /* ---------- SIMPLE EDITOR ---------- */
67
+
68
+ .simple-editor-wrapper {
69
+ width: 100vw;
70
+ height: 100vh;
71
+ overflow: auto;
72
+ }
73
+
74
+ .simple-editor-content {
75
+ max-width: 648px;
76
+ width: 100%;
77
+ margin: 0 auto;
78
+ height: 100%;
79
+ display: flex;
80
+ flex-direction: column;
81
+ flex: 1;
82
+ }
83
+
84
+ .simple-editor-content .tiptap.ProseMirror.simple-editor {
85
+ flex: 1;
86
+ padding: 3rem 3rem 30vh;
87
+ }
88
+
89
+ @media screen and (max-width: 480px) {
90
+ .simple-editor-content .tiptap.ProseMirror.simple-editor {
91
+ padding: 1rem 1.5rem 30vh;
92
+ }
93
+ }
@@ -0,0 +1,42 @@
1
+ .tiptap-button-highlight {
2
+ position: relative;
3
+ width: 1.25rem;
4
+ height: 1.25rem;
5
+ margin: 0 -0.175rem;
6
+ border-radius: var(--tt-radius-xl);
7
+ background-color: var(--highlight-color);
8
+ transition: transform 0.2s ease;
9
+ }
10
+
11
+ .tiptap-button-highlight::after {
12
+ content: "";
13
+ position: absolute;
14
+ width: 100%;
15
+ height: 100%;
16
+ left: 0;
17
+ top: 0;
18
+ border-radius: inherit;
19
+ box-sizing: border-box;
20
+ border: 1px solid var(--highlight-color);
21
+ filter: brightness(95%);
22
+ mix-blend-mode: multiply;
23
+ }
24
+
25
+ /* Dark mode: highlight::after */
26
+ .dark .tiptap-button-highlight::after {
27
+ filter: brightness(140%);
28
+ mix-blend-mode: lighten;
29
+ }
30
+
31
+ /* --------------------------------------------
32
+ Active State Styles
33
+ -------------------------------------------- */
34
+
35
+ .tiptap-button[data-active-state="on"] .tiptap-button-highlight::after {
36
+ filter: brightness(80%);
37
+ }
38
+
39
+ /* Dark mode + active state */
40
+ .dark .tiptap-button[data-active-state="on"] .tiptap-button-highlight::after {
41
+ filter: brightness(180%);
42
+ }
@@ -0,0 +1,215 @@
1
+ .tiptap-badge {
2
+ --tt-badge-border-color: var(--tt-gray-light-a-200);
3
+ --tt-badge-border-color-subdued: var(--tt-gray-light-a-200);
4
+ --tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);
5
+ --tt-badge-text-color: var(--tt-gray-light-a-500);
6
+ --tt-badge-text-color-subdued: var(--tt-gray-light-a-400);
7
+ --tt-badge-text-color-emphasized: var(--tt-gray-light-a-600);
8
+ --tt-badge-bg-color: var(--white);
9
+ --tt-badge-bg-color-subdued: var(--white);
10
+ --tt-badge-bg-color-emphasized: var(--white);
11
+ --tt-badge-icon-color: var(--tt-gray-light-a-500);
12
+ --tt-badge-icon-color-subdued: var(--tt-gray-light-a-400);
13
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-600);
14
+ }
15
+
16
+ .dark .tiptap-badge {
17
+ --tt-badge-border-color: var(--tt-gray-dark-a-200);
18
+ --tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);
19
+ --tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);
20
+ --tt-badge-text-color: var(--tt-gray-dark-a-500);
21
+ --tt-badge-text-color-subdued: var(--tt-gray-dark-a-400);
22
+ --tt-badge-text-color-emphasized: var(--tt-gray-dark-a-600);
23
+ --tt-badge-bg-color: var(--black);
24
+ --tt-badge-bg-color-subdued: var(--black);
25
+ --tt-badge-bg-color-emphasized: var(--black);
26
+ --tt-badge-icon-color: var(--tt-gray-dark-a-500);
27
+ --tt-badge-icon-color-subdued: var(--tt-gray-dark-a-400);
28
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-400);
29
+ }
30
+
31
+ /* Ghost */
32
+ .tiptap-badge[data-style="ghost"] {
33
+ --tt-badge-border-color: var(--tt-gray-light-a-200);
34
+ --tt-badge-border-color-subdued: var(--tt-gray-light-a-200);
35
+ --tt-badge-border-color-emphasized: var(--tt-gray-light-a-600);
36
+ --tt-badge-text-color: var(--tt-gray-light-a-500);
37
+ --tt-badge-text-color-subdued: var(--tt-gray-light-a-400);
38
+ --tt-badge-text-color-emphasized: var(--tt-gray-light-a-600);
39
+ --tt-badge-bg-color: var(--transparent);
40
+ --tt-badge-bg-color-subdued: var(--transparent);
41
+ --tt-badge-bg-color-emphasized: var(--transparent);
42
+ --tt-badge-icon-color: var(--tt-gray-light-a-500);
43
+ --tt-badge-icon-color-subdued: var(--tt-gray-light-a-400);
44
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-600);
45
+ }
46
+
47
+ .dark .tiptap-badge[data-style="ghost"] {
48
+ --tt-badge-border-color: var(--tt-gray-dark-a-200);
49
+ --tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);
50
+ --tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);
51
+ --tt-badge-text-color: var(--tt-gray-dark-a-500);
52
+ --tt-badge-text-color-subdued: var(--tt-gray-dark-a-400);
53
+ --tt-badge-text-color-emphasized: var(--tt-gray-dark-a-600);
54
+ --tt-badge-bg-color: var(--transparent);
55
+ --tt-badge-bg-color-subdued: var(--transparent);
56
+ --tt-badge-bg-color-emphasized: var(--transparent);
57
+ --tt-badge-icon-color: var(--tt-gray-dark-a-500);
58
+ --tt-badge-icon-color-subdued: var(--tt-gray-dark-a-400);
59
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-400);
60
+ }
61
+
62
+ /* Gray */
63
+ .tiptap-badge[data-style="gray"] {
64
+ --tt-badge-border-color: var(--tt-gray-light-a-200);
65
+ --tt-badge-border-color-subdued: var(--tt-gray-light-a-200);
66
+ --tt-badge-border-color-emphasized: var(--tt-gray-light-a-500);
67
+ --tt-badge-text-color: var(--tt-gray-light-a-500);
68
+ --tt-badge-text-color-subdued: var(--tt-gray-light-a-400);
69
+ --tt-badge-text-color-emphasized: var(--white);
70
+ --tt-badge-bg-color: var(--tt-gray-light-a-100);
71
+ --tt-badge-bg-color-subdued: var(--tt-gray-light-a-50);
72
+ --tt-badge-bg-color-emphasized: var(--tt-gray-light-a-700);
73
+ --tt-badge-icon-color: var(--tt-gray-light-a-500);
74
+ --tt-badge-icon-color-subdued: var(--tt-gray-light-a-400);
75
+ --tt-badge-icon-color-emphasized: var(--white);
76
+ }
77
+
78
+ .dark .tiptap-badge[data-style="gray"] {
79
+ --tt-badge-border-color: var(--tt-gray-dark-a-200);
80
+ --tt-badge-border-color-subdued: var(--tt-gray-dark-a-200);
81
+ --tt-badge-border-color-emphasized: var(--tt-gray-dark-a-500);
82
+ --tt-badge-text-color: var(--tt-gray-dark-a-500);
83
+ --tt-badge-text-color-subdued: var(--tt-gray-dark-a-400);
84
+ --tt-badge-text-color-emphasized: var(--black);
85
+ --tt-badge-bg-color: var(--tt-gray-dark-a-100);
86
+ --tt-badge-bg-color-subdued: var(--tt-gray-dark-a-50);
87
+ --tt-badge-bg-color-emphasized: var(--tt-gray-dark-a-800);
88
+ --tt-badge-icon-color: var(--tt-gray-dark-a-500);
89
+ --tt-badge-icon-color-subdued: var(--tt-gray-dark-a-400);
90
+ --tt-badge-icon-color-emphasized: var(--black);
91
+ }
92
+
93
+ /* Green */
94
+ .tiptap-badge[data-style="green"] {
95
+ --tt-badge-border-color: var(--tt-color-green-inc-2);
96
+ --tt-badge-border-color-subdued: var(--tt-color-green-inc-3);
97
+ --tt-badge-border-color-emphasized: var(--tt-color-green-dec-2);
98
+ --tt-badge-text-color: var(--tt-color-green-dec-3);
99
+ --tt-badge-text-color-subdued: var(--tt-color-green-dec-2);
100
+ --tt-badge-text-color-emphasized: var(--tt-color-green-inc-5);
101
+ --tt-badge-bg-color: var(--tt-color-green-inc-4);
102
+ --tt-badge-bg-color-subdued: var(--tt-color-green-inc-5);
103
+ --tt-badge-bg-color-emphasized: var(--tt-color-green-dec-1);
104
+ --tt-badge-icon-color: var(--tt-color-green-dec-3);
105
+ --tt-badge-icon-color-subdued: var(--tt-color-green-dec-2);
106
+ --tt-badge-icon-color-emphasized: var(--tt-color-green-inc-5);
107
+ }
108
+
109
+ .dark .tiptap-badge[data-style="green"] {
110
+ --tt-badge-border-color: var(--tt-color-green-dec-2);
111
+ --tt-badge-border-color-subdued: var(--tt-color-green-dec-3);
112
+ --tt-badge-border-color-emphasized: var(--tt-color-green-base);
113
+ --tt-badge-text-color: var(--tt-color-green-inc-3);
114
+ --tt-badge-text-color-subdued: var(--tt-color-green-inc-2);
115
+ --tt-badge-text-color-emphasized: var(--tt-color-green-dec-5);
116
+ --tt-badge-bg-color: var(--tt-color-green-dec-4);
117
+ --tt-badge-bg-color-subdued: var(--tt-color-green-dec-5);
118
+ --tt-badge-bg-color-emphasized: var(--tt-color-green-inc-1);
119
+ --tt-badge-icon-color: var(--tt-color-green-inc-3);
120
+ --tt-badge-icon-color-subdued: var(--tt-color-green-inc-2);
121
+ --tt-badge-icon-color-emphasized: var(--tt-color-green-dec-5);
122
+ }
123
+
124
+ /* Yellow */
125
+ .tiptap-badge[data-style="yellow"] {
126
+ --tt-badge-border-color: var(--tt-color-yellow-inc-2);
127
+ --tt-badge-border-color-subdued: var(--tt-color-yellow-inc-3);
128
+ --tt-badge-border-color-emphasized: var(--tt-color-yellow-dec-1);
129
+ --tt-badge-text-color: var(--tt-color-yellow-dec-3);
130
+ --tt-badge-text-color-subdued: var(--tt-color-yellow-dec-2);
131
+ --tt-badge-text-color-emphasized: var(--tt-color-yellow-dec-3);
132
+ --tt-badge-bg-color: var(--tt-color-yellow-inc-4);
133
+ --tt-badge-bg-color-subdued: var(--tt-color-yellow-inc-5);
134
+ --tt-badge-bg-color-emphasized: var(--tt-color-yellow-base);
135
+ --tt-badge-icon-color: var(--tt-color-yellow-dec-3);
136
+ --tt-badge-icon-color-subdued: var(--tt-color-yellow-dec-2);
137
+ --tt-badge-icon-color-emphasized: var(--tt-color-yellow-dec-3);
138
+ }
139
+
140
+ .dark .tiptap-badge[data-style="yellow"] {
141
+ --tt-badge-border-color: var(--tt-color-yellow-dec-2);
142
+ --tt-badge-border-color-subdued: var(--tt-color-yellow-dec-3);
143
+ --tt-badge-border-color-emphasized: var(--tt-color-yellow-inc-1);
144
+ --tt-badge-text-color: var(--tt-color-yellow-inc-3);
145
+ --tt-badge-text-color-subdued: var(--tt-color-yellow-inc-2);
146
+ --tt-badge-text-color-emphasized: var(--tt-color-yellow-dec-3);
147
+ --tt-badge-bg-color: var(--tt-color-yellow-dec-4);
148
+ --tt-badge-bg-color-subdued: var(--tt-color-yellow-dec-5);
149
+ --tt-badge-bg-color-emphasized: var(--tt-color-yellow-base);
150
+ --tt-badge-icon-color: var(--tt-color-yellow-inc-3);
151
+ --tt-badge-icon-color-subdued: var(--tt-color-yellow-inc-2);
152
+ --tt-badge-icon-color-emphasized: var(--tt-color-yellow-dec-3);
153
+ }
154
+
155
+ /* Red */
156
+ .tiptap-badge[data-style="red"] {
157
+ --tt-badge-border-color: var(--tt-color-red-inc-2);
158
+ --tt-badge-border-color-subdued: var(--tt-color-red-inc-3);
159
+ --tt-badge-border-color-emphasized: var(--tt-color-red-dec-2);
160
+ --tt-badge-text-color: var(--tt-color-red-dec-3);
161
+ --tt-badge-text-color-subdued: var(--tt-color-red-dec-2);
162
+ --tt-badge-text-color-emphasized: var(--tt-color-red-inc-5);
163
+ --tt-badge-bg-color: var(--tt-color-red-inc-4);
164
+ --tt-badge-bg-color-subdued: var(--tt-color-red-inc-5);
165
+ --tt-badge-bg-color-emphasized: var(--tt-color-red-dec-1);
166
+ --tt-badge-icon-color: var(--tt-color-red-dec-3);
167
+ --tt-badge-icon-color-subdued: var(--tt-color-red-dec-2);
168
+ --tt-badge-icon-color-emphasized: var(--tt-color-red-inc-5);
169
+ }
170
+
171
+ .dark .tiptap-badge[data-style="red"] {
172
+ --tt-badge-border-color: var(--tt-color-red-dec-2);
173
+ --tt-badge-border-color-subdued: var(--tt-color-red-dec-3);
174
+ --tt-badge-border-color-emphasized: var(--tt-color-red-base);
175
+ --tt-badge-text-color: var(--tt-color-red-inc-3);
176
+ --tt-badge-text-color-subdued: var(--tt-color-red-inc-2);
177
+ --tt-badge-text-color-emphasized: var(--tt-color-red-dec-5);
178
+ --tt-badge-bg-color: var(--tt-color-red-dec-4);
179
+ --tt-badge-bg-color-subdued: var(--tt-color-red-dec-5);
180
+ --tt-badge-bg-color-emphasized: var(--tt-color-red-inc-1);
181
+ --tt-badge-icon-color: var(--tt-color-red-inc-3);
182
+ --tt-badge-icon-color-subdued: var(--tt-color-red-inc-2);
183
+ --tt-badge-icon-color-emphasized: var(--tt-color-red-dec-5);
184
+ }
185
+
186
+ /* Brand */
187
+ .tiptap-badge[data-style="brand"] {
188
+ --tt-badge-border-color: var(--tt-brand-color-300);
189
+ --tt-badge-border-color-subdued: var(--tt-brand-color-200);
190
+ --tt-badge-border-color-emphasized: var(--tt-brand-color-600);
191
+ --tt-badge-text-color: var(--tt-brand-color-800);
192
+ --tt-badge-text-color-subdued: var(--tt-brand-color-700);
193
+ --tt-badge-text-color-emphasized: var(--tt-brand-color-50);
194
+ --tt-badge-bg-color: var(--tt-brand-color-100);
195
+ --tt-badge-bg-color-subdued: var(--tt-brand-color-50);
196
+ --tt-badge-bg-color-emphasized: var(--tt-brand-color-600);
197
+ --tt-badge-icon-color: var(--tt-brand-color-800);
198
+ --tt-badge-icon-color-subdued: var(--tt-brand-color-700);
199
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-100);
200
+ }
201
+
202
+ .dark .tiptap-badge[data-style="brand"] {
203
+ --tt-badge-border-color: var(--tt-brand-color-700);
204
+ --tt-badge-border-color-subdued: var(--tt-brand-color-800);
205
+ --tt-badge-border-color-emphasized: var(--tt-brand-color-400);
206
+ --tt-badge-text-color: var(--tt-brand-color-200);
207
+ --tt-badge-text-color-subdued: var(--tt-brand-color-300);
208
+ --tt-badge-text-color-emphasized: var(--tt-brand-color-950);
209
+ --tt-badge-bg-color: var(--tt-brand-color-900);
210
+ --tt-badge-bg-color-subdued: var(--tt-brand-color-950);
211
+ --tt-badge-bg-color-emphasized: var(--tt-brand-color-400);
212
+ --tt-badge-icon-color: var(--tt-brand-color-200);
213
+ --tt-badge-icon-color-subdued: var(--tt-brand-color-300);
214
+ --tt-badge-icon-color-emphasized: var(--tt-brand-color-900);
215
+ }
@@ -0,0 +1,16 @@
1
+ .tiptap-badge-group {
2
+ align-items: center;
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ gap: 0.25rem;
6
+ }
7
+
8
+ /* Vertical */
9
+ .tiptap-badge-group[data-orientation="vertical"] {
10
+ flex-direction: column;
11
+ }
12
+
13
+ /* Horizontal */
14
+ .tiptap-badge-group[data-orientation="horizontal"] {
15
+ flex-direction: row;
16
+ }
@@ -0,0 +1,95 @@
1
+ .tiptap-badge {
2
+ font-size: 0.625rem;
3
+ font-weight: 700;
4
+ font-feature-settings: "salt" on, "cv01" on;
5
+ line-height: 1.15;
6
+ height: 1.25rem;
7
+ min-width: 1.25rem;
8
+ padding: 0.25rem;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ border: solid 1px;
13
+ border-radius: var(--tt-radius-sm, 0.375rem);
14
+ transition-property: background, color, opacity;
15
+ transition-duration: var(--tt-transition-duration-default);
16
+ transition-timing-function: var(--tt-transition-easing-default);
17
+ }
18
+
19
+ /* button size large */
20
+ .tiptap-badge[data-size="large"] {
21
+ font-size: 0.75rem;
22
+ height: 1.5rem;
23
+ min-width: 1.5rem;
24
+ padding: 0.375rem;
25
+ border-radius: var(--tt-radius-md, 0.375rem);
26
+ }
27
+
28
+ /* button size small */
29
+ .tiptap-badge[data-size="small"] {
30
+ height: 1rem;
31
+ min-width: 1rem;
32
+ padding: 0.125rem;
33
+ border-radius: var(--tt-radius-xs, 0.25rem);
34
+ }
35
+
36
+ /* trim / expand text of the button */
37
+ .tiptap-badge .tiptap-badge-text {
38
+ padding: 0 0.125rem;
39
+ flex-grow: 1;
40
+ text-align: left;
41
+ }
42
+
43
+ .tiptap-badge[data-text-trim="on"] .tiptap-badge-text {
44
+ text-overflow: ellipsis;
45
+ overflow: hidden;
46
+ }
47
+
48
+ /* standard icon */
49
+ .tiptap-badge .tiptap-badge-icon {
50
+ pointer-events: none;
51
+ flex-shrink: 0;
52
+ width: 0.625rem;
53
+ height: 0.625rem;
54
+ }
55
+
56
+ .tiptap-badge[data-size="large"] .tiptap-badge-icon {
57
+ width: 0.75rem;
58
+ height: 0.75rem;
59
+ }
60
+
61
+ /* --------------------------------------------
62
+ ----------- BADGE COLOR SETTINGS -------------
63
+ -------------------------------------------- */
64
+
65
+ .tiptap-badge {
66
+ background-color: var(--tt-badge-bg-color);
67
+ border-color: var(--tt-badge-border-color);
68
+ color: var(--tt-badge-text-color);
69
+ }
70
+
71
+ .tiptap-badge .tiptap-badge-icon {
72
+ color: var(--tt-badge-icon-color);
73
+ }
74
+
75
+ /* Emphasized */
76
+ .tiptap-badge[data-appearance="emphasized"] {
77
+ background-color: var(--tt-badge-bg-color-emphasized);
78
+ border-color: var(--tt-badge-border-color-emphasized);
79
+ color: var(--tt-badge-text-color-emphasized);
80
+ }
81
+
82
+ .tiptap-badge[data-appearance="emphasized"] .tiptap-badge-icon {
83
+ color: var(--tt-badge-icon-color-emphasized);
84
+ }
85
+
86
+ /* Subdued */
87
+ .tiptap-badge[data-appearance="subdued"] {
88
+ background-color: var(--tt-badge-bg-color-subdued);
89
+ border-color: var(--tt-badge-border-color-subdued);
90
+ color: var(--tt-badge-text-color-subdued);
91
+ }
92
+
93
+ .tiptap-badge[data-appearance="subdued"] .tiptap-badge-icon {
94
+ color: var(--tt-badge-icon-color-subdued);
95
+ }