@mirantes-micro/foundation-design-system 1.2.92 → 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,336 @@
1
+ .tiptap-button {
2
+ font-size: 0.875rem;
3
+ font-weight: 500;
4
+ font-feature-settings:
5
+ "salt" on,
6
+ "cv01" on;
7
+ line-height: 1.15;
8
+ height: 2rem;
9
+ min-width: 2rem;
10
+ border: none;
11
+ padding: 0.5rem;
12
+ gap: 0.25rem;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ border-radius: var(--tt-radius-lg, 0.75rem);
17
+ transition-property: background, color, opacity;
18
+ transition-duration: var(--tt-transition-duration-default);
19
+ transition-timing-function: var(--tt-transition-easing-default);
20
+ }
21
+
22
+ /* focus-visible */
23
+ .tiptap-button:focus-visible {
24
+ outline: none;
25
+ }
26
+
27
+ .tiptap-button[data-highlighted="true"],
28
+ .tiptap-button[data-focus-visible="true"] {
29
+ background-color: var(--tt-button-hover-bg-color);
30
+ color: var(--tt-button-hover-text-color);
31
+ /* outline: 2px solid var(--tt-button-active-icon-color); */
32
+ }
33
+
34
+ .tiptap-button[data-weight="small"] {
35
+ width: 1.5rem;
36
+ min-width: 1.5rem;
37
+ padding-right: 0;
38
+ padding-left: 0;
39
+ }
40
+
41
+ /* button size large */
42
+ .tiptap-button[data-size="large"] {
43
+ font-size: 0.9375rem;
44
+ height: 2.375rem;
45
+ min-width: 2.375rem;
46
+ padding: 0.625rem;
47
+ }
48
+
49
+ /* button size small */
50
+ .tiptap-button[data-size="small"] {
51
+ font-size: 0.75rem;
52
+ line-height: 1.2;
53
+ height: 1.5rem;
54
+ min-width: 1.5rem;
55
+ padding: 0.3125rem;
56
+ border-radius: var(--tt-radius-md, 0.5rem);
57
+ }
58
+
59
+ /* trim / expand text of the button */
60
+ .tiptap-button-text {
61
+ padding: 0 0.125rem;
62
+ flex-grow: 1;
63
+ text-align: left;
64
+ line-height: 1.5rem;
65
+ }
66
+
67
+ .tiptap-button[data-text-trim="on"] .tiptap-button-text {
68
+ text-overflow: ellipsis;
69
+ overflow: hidden;
70
+ }
71
+
72
+ /* global icon settings */
73
+ .tiptap-button .tiptap-button-icon,
74
+ .tiptap-button .tiptap-button-icon-sub,
75
+ .tiptap-button .tiptap-button-dropdown-arrows,
76
+ .tiptap-button .tiptap-button-dropdown-small {
77
+ flex-shrink: 0;
78
+ }
79
+
80
+ /* standard icon, what is used */
81
+ .tiptap-button .tiptap-button-icon {
82
+ width: 1rem;
83
+ height: 1rem;
84
+ }
85
+
86
+ .tiptap-button[data-size="large"] .tiptap-button-icon {
87
+ width: 1.125rem;
88
+ height: 1.125rem;
89
+ }
90
+
91
+ .tiptap-button[data-size="small"] .tiptap-button-icon {
92
+ width: 0.875rem;
93
+ height: 0.875rem;
94
+ }
95
+
96
+ /* if 2 icons are used and this icon should be more subtle */
97
+ .tiptap-button .tiptap-button-icon-sub {
98
+ width: 1rem;
99
+ height: 1rem;
100
+ }
101
+
102
+ .tiptap-button[data-size="large"] .tiptap-button-icon-sub {
103
+ width: 1.125rem;
104
+ height: 1.125rem;
105
+ }
106
+
107
+ .tiptap-button[data-size="small"] .tiptap-button-icon-sub {
108
+ width: 0.875rem;
109
+ height: 0.875rem;
110
+ }
111
+
112
+ /* dropdown menus or arrows that are slightly smaller */
113
+ .tiptap-button .tiptap-button-dropdown-arrows {
114
+ width: 0.75rem;
115
+ height: 0.75rem;
116
+ }
117
+
118
+ .tiptap-button[data-size="large"] .tiptap-button-dropdown-arrows {
119
+ width: 0.875rem;
120
+ height: 0.875rem;
121
+ }
122
+
123
+ .tiptap-button[data-size="small"] .tiptap-button-dropdown-arrows {
124
+ width: 0.625rem;
125
+ height: 0.625rem;
126
+ }
127
+
128
+ /* dropdown menu for icon buttons only */
129
+ .tiptap-button .tiptap-button-dropdown-small {
130
+ width: 0.625rem;
131
+ height: 0.625rem;
132
+ }
133
+
134
+ .tiptap-button[data-size="large"] .tiptap-button-dropdown-small {
135
+ width: 0.75rem;
136
+ height: 0.75rem;
137
+ }
138
+
139
+ .tiptap-button[data-size="small"] .tiptap-button-dropdown-small {
140
+ width: 0.5rem;
141
+ height: 0.5rem;
142
+ }
143
+
144
+ /* button only has icons */
145
+ .tiptap-button:has(> svg):not(:has(> :not(svg))) {
146
+ gap: 0.125rem;
147
+ }
148
+
149
+ .tiptap-button:has(> svg):not(:has(> :not(svg)))[data-size="large"],
150
+ .tiptap-button:has(> svg):not(:has(> :not(svg)))[data-size="small"] {
151
+ gap: 0.125rem;
152
+ }
153
+
154
+ /* button only has 2 icons and one of them is dropdown small */
155
+ .tiptap-button:has(> svg:nth-of-type(2)):has(> .tiptap-button-dropdown-small):not( :has(> svg:nth-of-type(3))):not(:has(> .tiptap-button-text)) {
156
+ gap: 0;
157
+ padding-right: 0.25rem;
158
+ }
159
+
160
+ .tiptap-button:has(> svg:nth-of-type(2)):has(> .tiptap-button-dropdown-small):not( :has(> svg:nth-of-type(3))):not(:has(> .tiptap-button-text))[data-size="large"] {
161
+ padding-right: 0.375rem;
162
+ }
163
+
164
+ .tiptap-button:has(> svg:nth-of-type(2)):has(> .tiptap-button-dropdown-small):not( :has(> svg:nth-of-type(3))):not(:has(> .tiptap-button-text))[data-size="small"] {
165
+ padding-right: 0.25rem;
166
+ }
167
+
168
+ /* Emoji is used in a button */
169
+ .tiptap-button .tiptap-button-emoji {
170
+ width: 1rem;
171
+ display: flex;
172
+ justify-content: center;
173
+ }
174
+
175
+ .tiptap-button[data-size="large"] .tiptap-button-emoji {
176
+ width: 1.125rem;
177
+ }
178
+
179
+ .tiptap-button[data-size="small"] .tiptap-button-emoji {
180
+ width: 0.875rem;
181
+ }
182
+
183
+ /* --------------------------------------------
184
+ ----------- BUTTON COLOR SETTINGS -------------
185
+ -------------------------------------------- */
186
+
187
+ .tiptap-button {
188
+ background-color: var(--tt-button-default-bg-color);
189
+ color: var(--tt-button-default-text-color);
190
+ }
191
+
192
+ .tiptap-button .tiptap-button-icon {
193
+ color: var(--tt-button-default-icon-color);
194
+ }
195
+
196
+ .tiptap-button .tiptap-button-icon-sub {
197
+ color: var(--tt-button-default-icon-sub-color);
198
+ }
199
+
200
+ .tiptap-button .tiptap-button-dropdown-arrows {
201
+ color: var(--tt-button-default-dropdown-arrows-color);
202
+ }
203
+
204
+ .tiptap-button .tiptap-button-dropdown-small {
205
+ color: var(--tt-button-default-dropdown-arrows-color);
206
+ }
207
+
208
+ /* hover state of a button */
209
+ .tiptap-button:hover:not([data-active-item="true"]):not([disabled]),
210
+ .tiptap-button[data-active-item="true"]:not([disabled]),
211
+ .tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted="false"]) {
212
+ background-color: var(--tt-button-hover-bg-color);
213
+ color: var(--tt-button-hover-text-color);
214
+ }
215
+
216
+ .tiptap-button:hover:not([data-active-item="true"]):not([disabled]) .tiptap-button-icon,
217
+ .tiptap-button[data-active-item="true"]:not([disabled]) .tiptap-button-icon,
218
+ .tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted="false"]) .tiptap-button-icon {
219
+ color: var(--tt-button-hover-icon-color);
220
+ }
221
+
222
+ .tiptap-button:hover:not([data-active-item="true"]):not([disabled]) .tiptap-button-icon-sub,
223
+ .tiptap-button[data-active-item="true"]:not([disabled]) .tiptap-button-icon-sub,
224
+ .tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted="false"]) .tiptap-button-icon-sub {
225
+ color: var(--tt-button-hover-icon-sub-color);
226
+ }
227
+
228
+ .tiptap-button:hover:not([data-active-item="true"]):not([disabled]) .tiptap-button-dropdown-arrows,
229
+ .tiptap-button:hover:not([data-active-item="true"]):not([disabled]) .tiptap-button-dropdown-small,
230
+ .tiptap-button[data-active-item="true"]:not([disabled]) .tiptap-button-dropdown-arrows,
231
+ .tiptap-button[data-active-item="true"]:not([disabled]) .tiptap-button-dropdown-small,
232
+ .tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted="false"]) .tiptap-button-dropdown-arrows,
233
+ .tiptap-button[data-highlighted]:not([disabled]):not([data-highlighted="false"]) .tiptap-button-dropdown-small {
234
+ color: var(--tt-button-hover-dropdown-arrows-color);
235
+ }
236
+
237
+ /* Active state of a button */
238
+ .tiptap-button[data-active-state="on"]:not([disabled]),
239
+ .tiptap-button[data-state="open"]:not([disabled]) {
240
+ background-color: var(--tt-button-active-bg-color);
241
+ color: var(--tt-button-active-text-color);
242
+ }
243
+
244
+ .tiptap-button[data-active-state="on"]:not([disabled]) .tiptap-button-icon,
245
+ .tiptap-button[data-state="open"]:not([disabled]) .tiptap-button-icon {
246
+ color: var(--tt-button-active-icon-color);
247
+ }
248
+
249
+ .tiptap-button[data-active-state="on"]:not([disabled]) .tiptap-button-icon-sub,
250
+ .tiptap-button[data-state="open"]:not([disabled]) .tiptap-button-icon-sub {
251
+ color: var(--tt-button-active-icon-sub-color);
252
+ }
253
+
254
+ .tiptap-button[data-active-state="on"]:not([disabled]) .tiptap-button-dropdown-arrows,
255
+ .tiptap-button[data-active-state="on"]:not([disabled]) .tiptap-button-dropdown-small,
256
+ .tiptap-button[data-state="open"]:not([disabled]) .tiptap-button-dropdown-arrows,
257
+ .tiptap-button[data-state="open"]:not([disabled]) .tiptap-button-dropdown-small {
258
+ color: var(--tt-button-active-dropdown-arrows-color);
259
+ }
260
+
261
+ .tiptap-button[data-active-state="on"]:not([disabled]):hover,
262
+ .tiptap-button[data-state="open"]:not([disabled]):hover {
263
+ background-color: var(--tt-button-active-hover-bg-color);
264
+ }
265
+
266
+ /* Emphasized */
267
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"],
268
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"] {
269
+ background-color: var(--tt-button-active-bg-color-emphasized);
270
+ color: var(--tt-button-active-text-color-emphasized);
271
+ }
272
+
273
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-icon,
274
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-icon {
275
+ color: var(--tt-button-active-icon-color-emphasized);
276
+ }
277
+
278
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-icon-sub,
279
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-icon-sub {
280
+ color: var(--tt-button-active-icon-sub-color-emphasized);
281
+ }
282
+
283
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-dropdown-arrows,
284
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-dropdown-small,
285
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-dropdown-arrows,
286
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"] .tiptap-button-dropdown-small {
287
+ color: var(--tt-button-active-dropdown-arrows-color-emphasized);
288
+ }
289
+
290
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="emphasized"]:hover,
291
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="emphasized"]:hover {
292
+ background-color: var(--tt-button-active-hover-bg-color-emphasized);
293
+ }
294
+
295
+ /* Subdued */
296
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"],
297
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"] {
298
+ background-color: var(--tt-button-active-bg-color-subdued);
299
+ color: var(--tt-button-active-text-color-subdued);
300
+ }
301
+
302
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"] .tiptap-button-icon,
303
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"] .tiptap-button-icon {
304
+ color: var(--tt-button-active-icon-color-subdued);
305
+ }
306
+
307
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"] .tiptap-button-icon-sub,
308
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"] .tiptap-button-icon-sub {
309
+ color: var(--tt-button-active-icon-sub-color-subdued);
310
+ }
311
+
312
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"] .tiptap-button-dropdown-arrows,
313
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"] .tiptap-button-dropdown-small,
314
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"] .tiptap-button-dropdown-arrows,
315
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"] .tiptap-button-dropdown-small {
316
+ color: var(--tt-button-active-dropdown-arrows-color-subdued);
317
+ }
318
+
319
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"]:hover,
320
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"]:hover {
321
+ background-color: var(--tt-button-active-hover-bg-color-subdued);
322
+ }
323
+
324
+ .tiptap-button[data-active-state="on"]:not([disabled])[data-appearance="subdued"]:hover .tiptap-button-icon,
325
+ .tiptap-button[data-state="open"]:not([disabled])[data-appearance="subdued"]:hover .tiptap-button-icon {
326
+ color: var(--tt-button-active-icon-color-subdued);
327
+ }
328
+
329
+ .tiptap-button:disabled {
330
+ background-color: var(--tt-button-disabled-bg-color);
331
+ color: var(--tt-button-disabled-text-color);
332
+ }
333
+
334
+ .tiptap-button:disabled .tiptap-button-icon {
335
+ color: var(--tt-button-disabled-icon-color);
336
+ }
@@ -0,0 +1,76 @@
1
+ :root {
2
+ --tiptap-card-bg-color: var(--white);
3
+ --tiptap-card-border-color: var(--tt-gray-light-a-100);
4
+ --tiptap-card-group-label-color: var(--tt-gray-light-a-800);
5
+ }
6
+
7
+ .dark {
8
+ --tiptap-card-bg-color: var(--tt-gray-dark-50);
9
+ --tiptap-card-border-color: var(--tt-gray-dark-a-100);
10
+ --tiptap-card-group-label-color: var(--tt-gray-dark-a-800);
11
+ }
12
+
13
+ .tiptap-card {
14
+ --padding: 0.375rem;
15
+ --border-width: 1px;
16
+
17
+ border-radius: calc(var(--padding) + var(--tt-radius-lg));
18
+ box-shadow: var(--tt-shadow-elevated-md);
19
+ background-color: var(--tiptap-card-bg-color);
20
+ border: 1px solid var(--tiptap-card-border-color);
21
+ display: flex;
22
+ flex-direction: column;
23
+ outline: none;
24
+ align-items: center;
25
+
26
+ position: relative;
27
+ min-width: 0;
28
+ word-wrap: break-word;
29
+ background-clip: border-box;
30
+ }
31
+
32
+ .tiptap-card-header {
33
+ padding: 0.375rem;
34
+ flex: 0 0 auto;
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: space-between;
38
+ width: 100%;
39
+ border-bottom: var(--border-width) solid var(--tiptap-card-border-color);
40
+ }
41
+
42
+ .tiptap-card-body {
43
+ padding: 0.375rem;
44
+ flex: 1 1 auto;
45
+ overflow-y: auto;
46
+ }
47
+
48
+ .tiptap-card-item-group {
49
+ position: relative;
50
+ display: flex;
51
+ vertical-align: middle;
52
+ min-width: max-content;
53
+ }
54
+
55
+ .tiptap-card-item-group[data-orientation="vertical"] {
56
+ flex-direction: column;
57
+ justify-content: center;
58
+ }
59
+
60
+ .tiptap-card-item-group[data-orientation="horizontal"] {
61
+ gap: 0.25rem;
62
+ flex-direction: row;
63
+ align-items: center;
64
+ }
65
+
66
+ .tiptap-card-group-label {
67
+ padding-top: 0.75rem;
68
+ padding-left: 0.5rem;
69
+ padding-right: 0.5rem;
70
+ padding-bottom: 0.25rem;
71
+ line-height: normal;
72
+ font-size: 0.75rem;
73
+ font-weight: 600;
74
+ text-transform: capitalize;
75
+ color: var(--tiptap-card-group-label-color);
76
+ }
@@ -0,0 +1,63 @@
1
+ .tiptap-dropdown-menu {
2
+ --tt-dropdown-menu-bg-color: var(--white);
3
+ --tt-dropdown-menu-border-color: var(--tt-gray-light-a-100);
4
+ --tt-dropdown-menu-text-color: var(--tt-gray-light-a-600);
5
+ }
6
+
7
+ .dark .tiptap-dropdown-menu {
8
+ --tt-dropdown-menu-border-color: var(--tt-gray-dark-a-50);
9
+ --tt-dropdown-menu-bg-color: var(--tt-gray-dark-50);
10
+ --tt-dropdown-menu-text-color: var(--tt-gray-dark-a-600);
11
+ }
12
+
13
+ /* --------------------------------------------
14
+ --------- DROPDOWN MENU STYLING SETTINGS ---------
15
+ -------------------------------------------- */
16
+ .tiptap-dropdown-menu {
17
+ z-index: 50;
18
+ outline: none;
19
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
20
+ max-height: var(--radix-dropdown-menu-content-available-height);
21
+ }
22
+
23
+ .tiptap-dropdown-menu>* {
24
+ max-height: var(--radix-dropdown-menu-content-available-height);
25
+ }
26
+
27
+ /* Animation states */
28
+ .tiptap-dropdown-menu[data-state="open"] {
29
+ animation:
30
+ fadeIn 150ms cubic-bezier(0.16, 1, 0.3, 1),
31
+ zoomIn 150ms cubic-bezier(0.16, 1, 0.3, 1);
32
+ }
33
+
34
+ .tiptap-dropdown-menu[data-state="closed"] {
35
+ animation:
36
+ fadeOut 150ms cubic-bezier(0.16, 1, 0.3, 1),
37
+ zoomOut 150ms cubic-bezier(0.16, 1, 0.3, 1);
38
+ }
39
+
40
+ /* Position-based animations */
41
+ .tiptap-dropdown-menu[data-side="top"],
42
+ .tiptap-dropdown-menu[data-side="top-start"],
43
+ .tiptap-dropdown-menu[data-side="top-end"] {
44
+ animation: slideFromBottom 150ms cubic-bezier(0.16, 1, 0.3, 1);
45
+ }
46
+
47
+ .tiptap-dropdown-menu[data-side="right"],
48
+ .tiptap-dropdown-menu[data-side="right-start"],
49
+ .tiptap-dropdown-menu[data-side="right-end"] {
50
+ animation: slideFromLeft 150ms cubic-bezier(0.16, 1, 0.3, 1);
51
+ }
52
+
53
+ .tiptap-dropdown-menu[data-side="bottom"],
54
+ .tiptap-dropdown-menu[data-side="bottom-start"],
55
+ .tiptap-dropdown-menu[data-side="bottom-end"] {
56
+ animation: slideFromTop 150ms cubic-bezier(0.16, 1, 0.3, 1);
57
+ }
58
+
59
+ .tiptap-dropdown-menu[data-side="left"],
60
+ .tiptap-dropdown-menu[data-side="left-start"],
61
+ .tiptap-dropdown-menu[data-side="left-end"] {
62
+ animation: slideFromRight 150ms cubic-bezier(0.16, 1, 0.3, 1);
63
+ }
@@ -0,0 +1,44 @@
1
+ :root {
2
+ --tiptap-input-placeholder: var(--tt-gray-light-a-400);
3
+ }
4
+
5
+ .dark {
6
+ --tiptap-input-placeholder: var(--tt-gray-dark-a-400);
7
+ }
8
+
9
+ .tiptap-input {
10
+ display: block;
11
+ width: 100%;
12
+ height: 2rem;
13
+ font-size: 0.875rem;
14
+ font-weight: 400;
15
+ line-height: 1.5;
16
+ padding: 0.375rem 0.5rem;
17
+ border-radius: 0.375rem;
18
+ background: none;
19
+ appearance: none;
20
+ outline: none;
21
+ }
22
+
23
+ .tiptap-input::placeholder {
24
+ color: var(--tiptap-input-placeholder);
25
+ }
26
+
27
+ .tiptap-input-clamp {
28
+ min-width: 12rem;
29
+ padding-right: 0;
30
+ text-overflow: ellipsis;
31
+ white-space: nowrap;
32
+ }
33
+
34
+ .tiptap-input-clamp:focus {
35
+ text-overflow: clip;
36
+ overflow: visible;
37
+ }
38
+
39
+ .tiptap-input-group {
40
+ position: relative;
41
+ display: flex;
42
+ flex-wrap: wrap;
43
+ align-items: stretch;
44
+ }
@@ -0,0 +1,63 @@
1
+ .tiptap-popover {
2
+ --tt-popover-bg-color: var(--white);
3
+ --tt-popover-border-color: var(--tt-gray-light-a-100);
4
+ --tt-popover-text-color: var(--tt-gray-light-a-600);
5
+ }
6
+
7
+ .dark .tiptap-popover {
8
+ --tt-popover-border-color: var(--tt-gray-dark-a-50);
9
+ --tt-popover-bg-color: var(--tt-gray-dark-50);
10
+ --tt-popover-text-color: var(--tt-gray-dark-a-600);
11
+ }
12
+
13
+ /* --------------------------------------------
14
+ --------- POPOVER STYLING SETTINGS ---------
15
+ -------------------------------------------- */
16
+ .tiptap-popover {
17
+ z-index: 50;
18
+ outline: none;
19
+ transform-origin: var(--radix-popover-content-transform-origin);
20
+ max-height: var(--radix-popover-content-available-height);
21
+ }
22
+
23
+ .tiptap-popover>* {
24
+ max-height: var(--radix-popover-content-available-height);
25
+ }
26
+
27
+ /* Animation states */
28
+ .tiptap-popover[data-state="open"] {
29
+ animation:
30
+ fadeIn 150ms cubic-bezier(0.16, 1, 0.3, 1),
31
+ zoomIn 150ms cubic-bezier(0.16, 1, 0.3, 1);
32
+ }
33
+
34
+ .tiptap-popover[data-state="closed"] {
35
+ animation:
36
+ fadeOut 150ms cubic-bezier(0.16, 1, 0.3, 1),
37
+ zoomOut 150ms cubic-bezier(0.16, 1, 0.3, 1);
38
+ }
39
+
40
+ /* Position-based animations */
41
+ .tiptap-popover[data-side="top"],
42
+ .tiptap-popover[data-side="top-start"],
43
+ .tiptap-popover[data-side="top-end"] {
44
+ animation: slideFromBottom 150ms cubic-bezier(0.16, 1, 0.3, 1);
45
+ }
46
+
47
+ .tiptap-popover[data-side="right"],
48
+ .tiptap-popover[data-side="right-start"],
49
+ .tiptap-popover[data-side="right-end"] {
50
+ animation: slideFromLeft 150ms cubic-bezier(0.16, 1, 0.3, 1);
51
+ }
52
+
53
+ .tiptap-popover[data-side="bottom"],
54
+ .tiptap-popover[data-side="bottom-start"],
55
+ .tiptap-popover[data-side="bottom-end"] {
56
+ animation: slideFromTop 150ms cubic-bezier(0.16, 1, 0.3, 1);
57
+ }
58
+
59
+ .tiptap-popover[data-side="left"],
60
+ .tiptap-popover[data-side="left-start"],
61
+ .tiptap-popover[data-side="left-end"] {
62
+ animation: slideFromRight 150ms cubic-bezier(0.16, 1, 0.3, 1);
63
+ }
@@ -0,0 +1,23 @@
1
+ .tiptap-separator {
2
+ --tt-link-border-color: var(--tt-gray-light-a-200);
3
+ }
4
+
5
+ .dark .tiptap-separator {
6
+ --tt-link-border-color: var(--tt-gray-dark-a-200);
7
+ }
8
+
9
+ .tiptap-separator {
10
+ flex-shrink: 0;
11
+ background-color: var(--tt-link-border-color);
12
+ }
13
+
14
+ .tiptap-separator[data-orientation="horizontal"] {
15
+ height: 1px;
16
+ width: 100%;
17
+ margin: 0.5rem 0;
18
+ }
19
+
20
+ .tiptap-separator[data-orientation="vertical"] {
21
+ height: 1.5rem;
22
+ width: 1px;
23
+ }
@@ -0,0 +1,101 @@
1
+ :root {
2
+ --tt-toolbar-height: 2.75rem;
3
+ --tt-safe-area-bottom: env(safe-area-inset-bottom, 0px);
4
+ --tt-toolbar-bg-color: var(--white);
5
+ --tt-toolbar-border-color: var(--tt-gray-light-a-100);
6
+ }
7
+
8
+ .dark {
9
+ --tt-toolbar-bg-color: var(--black);
10
+ --tt-toolbar-border-color: var(--tt-gray-dark-a-50);
11
+ }
12
+
13
+ .tiptap-toolbar {
14
+ display: flex;
15
+ align-items: center;
16
+ gap: 0.25rem;
17
+ }
18
+
19
+ .tiptap-toolbar-group {
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 0.125rem;
23
+ }
24
+
25
+ .tiptap-toolbar-group:empty {
26
+ display: none;
27
+ }
28
+
29
+ .tiptap-toolbar-group:empty+.tiptap-separator,
30
+ .tiptap-separator+.tiptap-toolbar-group:empty {
31
+ display: none;
32
+ }
33
+
34
+ /* VARIANT: FIXED */
35
+ .tiptap-toolbar[data-variant="fixed"] {
36
+ position: sticky;
37
+ top: 0;
38
+ z-index: 10;
39
+ width: 100%;
40
+ min-height: var(--tt-toolbar-height);
41
+ background: var(--tt-toolbar-bg-color);
42
+ border-bottom: 1px solid var(--tt-toolbar-border-color);
43
+ padding: 0 0.5rem;
44
+ overflow-x: auto;
45
+ overscroll-behavior-x: contain;
46
+ -webkit-overflow-scrolling: touch;
47
+ scrollbar-width: none;
48
+ -ms-overflow-style: none;
49
+ }
50
+
51
+ .tiptap-toolbar[data-variant="fixed"]::-webkit-scrollbar {
52
+ display: none;
53
+ }
54
+
55
+ @media (max-width: 480px) {
56
+ .tiptap-toolbar[data-variant="fixed"] {
57
+ position: absolute;
58
+ top: auto;
59
+ height: calc(var(--tt-toolbar-height) + var(--tt-safe-area-bottom));
60
+ border-top: 1px solid var(--tt-toolbar-border-color);
61
+ border-bottom: none;
62
+ padding: 0 0.5rem var(--tt-safe-area-bottom);
63
+ flex-wrap: nowrap;
64
+ justify-content: flex-start;
65
+ }
66
+
67
+ .tiptap-toolbar[data-variant="fixed"] .tiptap-toolbar-group {
68
+ flex: 0 0 auto;
69
+ }
70
+ }
71
+
72
+ /* VARIANT: FLOATING */
73
+ .tiptap-toolbar[data-variant="floating"] {
74
+ --tt-toolbar-padding: 0.125rem;
75
+ --tt-toolbar-border-width: 1px;
76
+
77
+ padding: 0.188rem;
78
+ border-radius: calc(var(--tt-toolbar-padding) + var(--tt-radius-lg) + var(--tt-toolbar-border-width));
79
+ border: var(--tt-toolbar-border-width) solid var(--tt-toolbar-border-color);
80
+ background-color: var(--tt-toolbar-bg-color);
81
+ box-shadow: var(--tt-shadow-elevated-md);
82
+ outline: none;
83
+ overflow: hidden;
84
+ }
85
+
86
+ .tiptap-toolbar[data-variant="floating"][data-plain="true"] {
87
+ padding: 0;
88
+ border-radius: 0;
89
+ border: none;
90
+ box-shadow: none;
91
+ background-color: transparent;
92
+ }
93
+
94
+ @media screen and (max-width: 480px) {
95
+ .tiptap-toolbar[data-variant="floating"] {
96
+ width: 100%;
97
+ border-radius: 0;
98
+ border: none;
99
+ box-shadow: none;
100
+ }
101
+ }