@tappify/extension-sdk 2.1.0-beta.2 → 2.1.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.
Files changed (137) hide show
  1. package/README.md +18 -54
  2. package/dist/{chunk-6HETNZJY.cjs → chunk-2DBSVKAU.cjs} +1 -1
  3. package/dist/{chunk-6HETNZJY.cjs.map → chunk-2DBSVKAU.cjs.map} +1 -1
  4. package/dist/{chunk-O357OJXL.cjs → chunk-3YWVYA42.cjs} +18 -14
  5. package/dist/chunk-3YWVYA42.cjs.map +1 -0
  6. package/dist/{chunk-GAUZYBXE.cjs → chunk-5AAPD5WV.cjs} +11 -11
  7. package/dist/chunk-5AAPD5WV.cjs.map +1 -0
  8. package/dist/{chunk-SGEYDV3K.mjs → chunk-BDCX6LRQ.mjs} +3 -3
  9. package/dist/chunk-BDCX6LRQ.mjs.map +1 -0
  10. package/dist/{chunk-KZ5NGFUP.mjs → chunk-C3YNVHBP.mjs} +7 -20
  11. package/dist/chunk-C3YNVHBP.mjs.map +1 -0
  12. package/dist/{chunk-QXD7WVKK.mjs → chunk-CSTYBKZC.mjs} +1 -1
  13. package/dist/chunk-CSTYBKZC.mjs.map +1 -0
  14. package/dist/{chunk-SWG7CNTZ.mjs → chunk-CTSZ5D7S.mjs} +5 -9
  15. package/dist/chunk-CTSZ5D7S.mjs.map +1 -0
  16. package/dist/chunk-EW54H7CR.cjs +722 -0
  17. package/dist/chunk-EW54H7CR.cjs.map +1 -0
  18. package/dist/chunk-EX3NFXDK.mjs +722 -0
  19. package/dist/chunk-EX3NFXDK.mjs.map +1 -0
  20. package/dist/{chunk-A74HCO6T.cjs → chunk-G7XZSN2Q.cjs} +18 -31
  21. package/dist/chunk-G7XZSN2Q.cjs.map +1 -0
  22. package/dist/{chunk-RBIQT75L.mjs → chunk-GG3IX52W.mjs} +2 -2
  23. package/dist/{chunk-SLGOHIBL.mjs → chunk-IGK2AP6J.mjs} +17 -13
  24. package/dist/chunk-IGK2AP6J.mjs.map +1 -0
  25. package/dist/{chunk-VV7ELNRW.cjs → chunk-JMUK3K47.cjs} +3 -3
  26. package/dist/{chunk-VV7ELNRW.cjs.map → chunk-JMUK3K47.cjs.map} +1 -1
  27. package/dist/{chunk-SGCYEEXD.mjs → chunk-MNDVYPEP.mjs} +2 -9
  28. package/dist/chunk-MNDVYPEP.mjs.map +1 -0
  29. package/dist/{chunk-BPCGXXMD.cjs → chunk-NFUPPCX4.cjs} +18 -22
  30. package/dist/chunk-NFUPPCX4.cjs.map +1 -0
  31. package/dist/{chunk-PRCZMOLD.cjs → chunk-OPPYEA7F.cjs} +3 -3
  32. package/dist/{chunk-PRCZMOLD.cjs.map → chunk-OPPYEA7F.cjs.map} +1 -1
  33. package/dist/{chunk-7YKH4LZN.cjs → chunk-PYJMJF44.cjs} +2 -9
  34. package/dist/chunk-PYJMJF44.cjs.map +1 -0
  35. package/dist/{chunk-QA5AL3VZ.mjs → chunk-QHM7XNRK.mjs} +2 -2
  36. package/dist/{chunk-QA5AL3VZ.mjs.map → chunk-QHM7XNRK.mjs.map} +1 -1
  37. package/dist/codegen.cjs.map +1 -1
  38. package/dist/codegen.d.cts +7 -43
  39. package/dist/codegen.d.ts +7 -43
  40. package/dist/codegen.mjs.map +1 -1
  41. package/dist/{constants-Bh759FUI.d.cts → constants-DJ_KgZpN.d.cts} +8 -44
  42. package/dist/{constants-Bh759FUI.d.ts → constants-DJ_KgZpN.d.ts} +8 -44
  43. package/dist/{context-mr8R5CNt.d.ts → context-Dt6xh_5t.d.cts} +4 -5
  44. package/dist/{context-DI0EJCRD.d.cts → context-Ml7k_V14.d.ts} +4 -5
  45. package/dist/{errors-Cqh0wrqt.d.ts → errors-COsBh7kd.d.cts} +2 -3
  46. package/dist/{errors-Cqh0wrqt.d.cts → errors-COsBh7kd.d.ts} +2 -3
  47. package/dist/handler-CZIlZ5vu.d.ts +227 -0
  48. package/dist/handler-kU9Jf36K.d.cts +227 -0
  49. package/dist/host.cjs +4 -4
  50. package/dist/host.d.cts +4 -4
  51. package/dist/host.d.ts +4 -4
  52. package/dist/host.mjs +3 -3
  53. package/dist/index.cjs +34 -5
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.cts +627 -69
  56. package/dist/index.d.ts +627 -69
  57. package/dist/index.mjs +33 -4
  58. package/dist/manifest.cjs +24 -136
  59. package/dist/manifest.cjs.map +1 -1
  60. package/dist/manifest.d.cts +12 -97
  61. package/dist/manifest.d.ts +12 -97
  62. package/dist/manifest.mjs +10 -122
  63. package/dist/manifest.mjs.map +1 -1
  64. package/dist/server.cjs +66 -14
  65. package/dist/server.cjs.map +1 -1
  66. package/dist/server.d.cts +6 -6
  67. package/dist/server.d.ts +6 -6
  68. package/dist/server.mjs +61 -9
  69. package/dist/server.mjs.map +1 -1
  70. package/dist/styles.css +367 -0
  71. package/dist/testing/index.cjs +13 -72
  72. package/dist/testing/index.cjs.map +1 -1
  73. package/dist/testing/index.d.cts +10 -29
  74. package/dist/testing/index.d.ts +10 -29
  75. package/dist/testing/index.mjs +13 -72
  76. package/dist/testing/index.mjs.map +1 -1
  77. package/dist/testing/jest.cjs +5 -5
  78. package/dist/testing/jest.mjs +2 -2
  79. package/dist/testing/vitest.cjs +5 -5
  80. package/dist/testing/vitest.cjs.map +1 -1
  81. package/dist/testing/vitest.d.cts +0 -10
  82. package/dist/testing/vitest.d.ts +0 -10
  83. package/dist/testing/vitest.mjs +2 -2
  84. package/dist/testing/vitest.mjs.map +1 -1
  85. package/dist/{types-uGHrRaOj.d.ts → types-DDAGLpov.d.ts} +3 -4
  86. package/dist/{types-BdDaLnqs.d.cts → types-DrpQSv_2.d.cts} +3 -4
  87. package/dist/vite-preview.cjs +125 -294
  88. package/dist/vite-preview.cjs.map +1 -1
  89. package/dist/vite-preview.d.cts +24 -6
  90. package/dist/vite-preview.d.ts +24 -6
  91. package/dist/vite-preview.mjs +118 -287
  92. package/dist/vite-preview.mjs.map +1 -1
  93. package/dist/vite.cjs +24 -137
  94. package/dist/vite.cjs.map +1 -1
  95. package/dist/vite.d.cts +7 -43
  96. package/dist/vite.d.ts +7 -43
  97. package/dist/vite.mjs +18 -131
  98. package/dist/vite.mjs.map +1 -1
  99. package/package.json +2 -12
  100. package/schema/extension-v2.json +121 -440
  101. package/dist/chunk-2CY5HVY7.mjs +0 -59
  102. package/dist/chunk-2CY5HVY7.mjs.map +0 -1
  103. package/dist/chunk-7YKH4LZN.cjs.map +0 -1
  104. package/dist/chunk-A74HCO6T.cjs.map +0 -1
  105. package/dist/chunk-BPCGXXMD.cjs.map +0 -1
  106. package/dist/chunk-EB5XWQAU.cjs +0 -132
  107. package/dist/chunk-EB5XWQAU.cjs.map +0 -1
  108. package/dist/chunk-GAUZYBXE.cjs.map +0 -1
  109. package/dist/chunk-KZ5NGFUP.mjs.map +0 -1
  110. package/dist/chunk-O357OJXL.cjs.map +0 -1
  111. package/dist/chunk-ONJMPO3P.cjs +0 -59
  112. package/dist/chunk-ONJMPO3P.cjs.map +0 -1
  113. package/dist/chunk-QJMZRV7A.mjs +0 -132
  114. package/dist/chunk-QJMZRV7A.mjs.map +0 -1
  115. package/dist/chunk-QXD7WVKK.mjs.map +0 -1
  116. package/dist/chunk-SGCYEEXD.mjs.map +0 -1
  117. package/dist/chunk-SGEYDV3K.mjs.map +0 -1
  118. package/dist/chunk-SLGOHIBL.mjs.map +0 -1
  119. package/dist/chunk-SWG7CNTZ.mjs.map +0 -1
  120. package/dist/client-BO3kavn0.d.ts +0 -25
  121. package/dist/client-DE-vMgdO.d.cts +0 -25
  122. package/dist/ui/styles.css +0 -740
  123. package/dist/ui.cjs +0 -1018
  124. package/dist/ui.cjs.map +0 -1
  125. package/dist/ui.d.cts +0 -231
  126. package/dist/ui.d.ts +0 -231
  127. package/dist/ui.mjs +0 -1018
  128. package/dist/ui.mjs.map +0 -1
  129. package/dist/vite-preview-bootstrap.cjs +0 -66
  130. package/dist/vite-preview-bootstrap.cjs.map +0 -1
  131. package/dist/vite-preview-bootstrap.d.cts +0 -15
  132. package/dist/vite-preview-bootstrap.d.ts +0 -15
  133. package/dist/vite-preview-bootstrap.mjs +0 -66
  134. package/dist/vite-preview-bootstrap.mjs.map +0 -1
  135. package/dist/work-events-BlOVpK0k.d.ts +0 -547
  136. package/dist/work-events-D97EoqvS.d.cts +0 -547
  137. /package/dist/{chunk-RBIQT75L.mjs.map → chunk-GG3IX52W.mjs.map} +0 -0
@@ -1,740 +0,0 @@
1
- .tap-root {
2
- --tappify-bg-paper: var(--bg-paper, #fdfdfd);
3
- --tappify-bg-canvas: var(--bg-canvas, #f2f3ee);
4
- --tappify-bg-light-gray: var(--bg-light-gray, #edf1f5);
5
- --tappify-fg-primary: var(--fg-primary, #121212);
6
- --tappify-fg-sub: var(--fg-sub, rgb(18 18 18 / 70%));
7
- --tappify-divider: var(--divider, #d5d7da);
8
- --tappify-lime: var(--lime, #b4d773);
9
- --tappify-deep-green: var(--deep-green, #234e20);
10
- --tappify-inverse: var(--inverse, #181920);
11
- --tappify-fg-disabled: var(--fg-disabled, #6f757d);
12
- --tappify-danger: var(--danger, #b42318);
13
- --tappify-on-accent: var(--on-accent, #ffffff);
14
- --tappify-space-4: 4px;
15
- --tappify-space-8: 8px;
16
- --tappify-space-12: 12px;
17
- --tappify-space-16: 16px;
18
- --tappify-space-24: 24px;
19
- --tappify-space-32: 32px;
20
- --tappify-space-40: 40px;
21
- --tappify-radius-control: 8px;
22
- --tappify-radius-card: 14px;
23
- --tappify-radius-panel: 18px;
24
- --tappify-control-height: 36px;
25
-
26
- color: var(--tappify-fg-primary);
27
- font-family: var(
28
- --font-one-ui,
29
- 'Inter Variable',
30
- 'Inter',
31
- system-ui,
32
- sans-serif
33
- );
34
- font-size: 14px;
35
- line-height: 1.45;
36
- container-name: tap-mount;
37
- container-type: inline-size;
38
- }
39
-
40
- .tap-root *,
41
- .tap-root *::before,
42
- .tap-root *::after {
43
- box-sizing: border-box;
44
- }
45
-
46
- .tap-stack,
47
- .tap-inline {
48
- display: flex;
49
- min-width: 0;
50
- }
51
-
52
- .tap-stack {
53
- flex-direction: column;
54
- }
55
-
56
- .tap-inline {
57
- flex-direction: row;
58
- }
59
-
60
- [data-gap='4'] {
61
- gap: var(--tappify-space-4);
62
- }
63
-
64
- [data-gap='8'] {
65
- gap: var(--tappify-space-8);
66
- }
67
-
68
- [data-gap='12'] {
69
- gap: var(--tappify-space-12);
70
- }
71
-
72
- [data-gap='16'] {
73
- gap: var(--tappify-space-16);
74
- }
75
-
76
- [data-gap='24'] {
77
- gap: var(--tappify-space-24);
78
- }
79
-
80
- [data-gap='32'] {
81
- gap: var(--tappify-space-32);
82
- }
83
-
84
- [data-gap='40'] {
85
- gap: var(--tappify-space-40);
86
- }
87
-
88
- [data-align='start'] {
89
- align-items: flex-start;
90
- }
91
-
92
- [data-align='center'] {
93
- align-items: center;
94
- }
95
-
96
- [data-align='end'] {
97
- align-items: flex-end;
98
- }
99
-
100
- [data-align='stretch'] {
101
- align-items: stretch;
102
- }
103
-
104
- [data-justify='start'] {
105
- justify-content: flex-start;
106
- }
107
-
108
- [data-justify='center'] {
109
- justify-content: center;
110
- }
111
-
112
- [data-justify='end'] {
113
- justify-content: flex-end;
114
- }
115
-
116
- [data-justify='between'] {
117
- justify-content: space-between;
118
- }
119
-
120
- .tap-button {
121
- min-height: var(--tappify-control-height);
122
- display: inline-flex;
123
- align-items: center;
124
- justify-content: center;
125
- gap: 6px;
126
- border: 1px solid transparent;
127
- border-radius: var(--tappify-radius-control);
128
- padding: 0 var(--tappify-space-12);
129
- font: inherit;
130
- font-weight: 500;
131
- white-space: nowrap;
132
- cursor: pointer;
133
- transition:
134
- background-color 120ms ease,
135
- border-color 120ms ease,
136
- color 120ms ease,
137
- opacity 120ms ease;
138
- }
139
-
140
- .tap-button:focus-visible {
141
- outline: 2px solid var(--tappify-deep-green);
142
- outline-offset: 2px;
143
- }
144
-
145
- .tap-button:hover:not(:disabled) {
146
- opacity: 0.88;
147
- }
148
-
149
- .tap-button:active:not(:disabled) {
150
- opacity: 0.74;
151
- }
152
-
153
- .tap-button[data-variant='primary'] {
154
- color: var(--tappify-deep-green);
155
- background: var(--tappify-lime);
156
- }
157
-
158
- .tap-button[data-variant='secondary'] {
159
- color: var(--tappify-fg-primary);
160
- background: var(--tappify-bg-paper);
161
- border-color: var(--tappify-divider);
162
- }
163
-
164
- .tap-button[data-variant='tertiary'] {
165
- color: var(--tappify-deep-green);
166
- background: transparent;
167
- }
168
-
169
- .tap-button[data-variant='inverse'] {
170
- color: var(--tappify-bg-paper);
171
- background: var(--tappify-inverse);
172
- }
173
-
174
- .tap-button[data-variant='destructive'] {
175
- color: var(--tappify-on-accent);
176
- background: var(--tappify-danger);
177
- }
178
-
179
- .tap-button:disabled {
180
- color: var(--tappify-fg-disabled);
181
- cursor: not-allowed;
182
- opacity: 0.8;
183
- }
184
-
185
- .tap-button[data-variant='primary']:disabled,
186
- .tap-button[data-variant='secondary']:disabled,
187
- .tap-button[data-variant='inverse']:disabled,
188
- .tap-button[data-variant='destructive']:disabled {
189
- background: var(--tappify-bg-light-gray);
190
- }
191
-
192
- .tap-button[data-variant='tertiary']:disabled {
193
- background: transparent;
194
- }
195
-
196
- .tap-button[data-size='compact'],
197
- .tap-button[data-size='sm'] {
198
- min-height: 32px;
199
- padding-inline: var(--tappify-space-12);
200
- font-size: 13px;
201
- }
202
-
203
- .tap-button[data-size='xs'] {
204
- min-height: 28px;
205
- padding-inline: var(--tappify-space-8);
206
- font-size: 12px;
207
- }
208
-
209
- .tap-button[data-size='lg'] {
210
- min-height: 44px;
211
- padding-inline: var(--tappify-space-24);
212
- }
213
-
214
- .tap-button[data-size^='icon'] {
215
- width: var(--tappify-control-height);
216
- padding: 0;
217
- }
218
-
219
- .tap-button[data-size='icon-xs'] {
220
- width: 28px;
221
- min-height: 28px;
222
- }
223
-
224
- .tap-button[data-size='icon-sm'] {
225
- width: 32px;
226
- min-height: 32px;
227
- }
228
-
229
- .tap-button[data-size='icon-lg'] {
230
- width: 44px;
231
- min-height: 44px;
232
- }
233
-
234
- .tap-button__spinner {
235
- width: 14px;
236
- height: 14px;
237
- border: 2px solid currentcolor;
238
- border-right-color: transparent;
239
- border-radius: 50%;
240
- animation: tappify-spin 700ms linear infinite;
241
- }
242
-
243
- @keyframes tappify-spin {
244
- to {
245
- transform: rotate(1turn);
246
- }
247
- }
248
-
249
- .tap-ui-card {
250
- display: flex;
251
- flex-direction: column;
252
- gap: var(--tappify-space-16);
253
- min-width: 0;
254
- padding: var(--tappify-space-24);
255
- background: var(--tappify-bg-paper);
256
- border-radius: var(--tappify-radius-card);
257
- }
258
-
259
- .tap-ui-card[data-size='sm'] {
260
- gap: var(--tappify-space-12);
261
- padding: var(--tappify-space-16);
262
- }
263
-
264
- .tap-card__header {
265
- display: grid;
266
- grid-template-columns: minmax(0, 1fr) auto;
267
- gap: var(--tappify-space-4) var(--tappify-space-16);
268
- align-items: start;
269
- }
270
-
271
- .tap-card__title {
272
- font-size: 16px;
273
- font-weight: 650;
274
- line-height: 1.3;
275
- }
276
-
277
- .tap-card__description {
278
- color: var(--tappify-fg-sub);
279
- grid-column: 1;
280
- }
281
-
282
- .tap-card__action {
283
- grid-column: 2;
284
- grid-row: 1 / span 2;
285
- }
286
-
287
- .tap-card__content,
288
- .tap-card__footer {
289
- min-width: 0;
290
- }
291
-
292
- .tap-card__footer {
293
- color: var(--tappify-fg-sub);
294
- }
295
-
296
- .tap-ui-page-header {
297
- display: flex;
298
- align-items: flex-start;
299
- justify-content: space-between;
300
- gap: var(--tappify-space-24);
301
- }
302
-
303
- .tap-page-header__copy {
304
- min-width: 0;
305
- }
306
-
307
- .tap-page-header__title {
308
- margin: 0;
309
- font-size: 24px;
310
- font-weight: 650;
311
- line-height: 1.2;
312
- }
313
-
314
- .tap-page-header__description {
315
- margin-top: var(--tappify-space-8);
316
- color: var(--tappify-fg-sub);
317
- }
318
-
319
- .tap-page-header__actions {
320
- display: flex;
321
- align-items: center;
322
- gap: var(--tappify-space-8);
323
- flex: 0 0 auto;
324
- }
325
-
326
- @container tap-mount (max-width: 520px) {
327
- .tap-ui-page-header {
328
- flex-direction: column;
329
- }
330
-
331
- .tap-page-header__actions {
332
- width: 100%;
333
- flex-wrap: wrap;
334
- }
335
- }
336
-
337
- @media (prefers-reduced-motion: reduce) {
338
- .tap-button,
339
- .tap-button__spinner {
340
- transition: none;
341
- animation: none;
342
- }
343
- }
344
-
345
- .tap-ui-field {
346
- display: flex;
347
- flex-direction: column;
348
- gap: var(--tappify-space-8);
349
- min-width: 0;
350
- }
351
-
352
- .tap-field__label {
353
- font-weight: 600;
354
- line-height: 1.3;
355
- }
356
-
357
- .tap-field__description,
358
- .tap-field__error {
359
- font-size: 13px;
360
- line-height: 1.4;
361
- }
362
-
363
- .tap-field__description {
364
- color: var(--tappify-fg-sub);
365
- }
366
-
367
- .tap-field__error {
368
- color: var(--tappify-danger);
369
- }
370
-
371
- .tap-ui-control {
372
- width: 100%;
373
- min-width: 0;
374
- min-height: 49px;
375
- padding: 0 var(--tappify-space-12);
376
- color: var(--tappify-fg-primary);
377
- background: var(--tappify-bg-paper);
378
- border: 1px solid var(--tappify-divider);
379
- border-radius: var(--tappify-radius-control);
380
- font: inherit;
381
- outline: none;
382
- transition:
383
- border-color 120ms ease,
384
- box-shadow 120ms ease;
385
- }
386
-
387
- .tap-textarea {
388
- min-height: 112px;
389
- padding-block: var(--tappify-space-12);
390
- resize: vertical;
391
- }
392
-
393
- .tap-ui-control:focus-visible,
394
- .tap-checkbox:focus-visible {
395
- border-color: var(--tappify-deep-green);
396
- box-shadow: 0 0 0 2px color-mix(in srgb, var(--tappify-lime) 55%, transparent);
397
- }
398
-
399
- .tap-ui-control:disabled,
400
- .tap-checkbox:disabled {
401
- color: var(--tappify-fg-sub);
402
- background: var(--tappify-bg-light-gray);
403
- cursor: not-allowed;
404
- opacity: 0.7;
405
- }
406
-
407
- .tap-ui-control[aria-invalid='true'],
408
- .tap-checkbox[aria-invalid='true'] {
409
- border-color: var(--tappify-danger);
410
- }
411
-
412
- .tap-checkbox {
413
- appearance: none;
414
- width: 18px;
415
- height: 18px;
416
- margin: 0;
417
- display: inline-grid;
418
- place-content: center;
419
- flex: 0 0 auto;
420
- background: var(--tappify-bg-paper);
421
- border: 1px solid var(--tappify-divider);
422
- border-radius: 5px;
423
- cursor: pointer;
424
- }
425
-
426
- .tap-checkbox::before {
427
- width: 9px;
428
- height: 5px;
429
- content: '';
430
- border: solid var(--tappify-on-accent);
431
- border-width: 0 0 2px 2px;
432
- transform: rotate(-45deg) scale(0);
433
- }
434
-
435
- .tap-checkbox[data-state='checked'],
436
- .tap-checkbox[data-state='indeterminate'] {
437
- background: var(--tappify-deep-green);
438
- border-color: var(--tappify-deep-green);
439
- }
440
-
441
- .tap-checkbox[data-state='checked']::before {
442
- transform: rotate(-45deg) scale(1);
443
- }
444
-
445
- .tap-checkbox[data-state='indeterminate']::before {
446
- height: 0;
447
- border-width: 0 0 2px;
448
- transform: rotate(0) scale(1);
449
- }
450
-
451
- .tap-schema-form {
452
- display: flex;
453
- flex-direction: column;
454
- gap: var(--tappify-space-24);
455
- }
456
-
457
- .tap-checkbox-row {
458
- display: flex;
459
- align-items: center;
460
- gap: var(--tappify-space-8);
461
- cursor: pointer;
462
- }
463
-
464
- .tap-ui-field--checkbox > .tap-field__description,
465
- .tap-ui-field--checkbox > .tap-field__error {
466
- margin-inline-start: 26px;
467
- }
468
-
469
- .tap-schema-form__actions {
470
- flex-wrap: wrap;
471
- }
472
-
473
- @container tap-mount (max-width: 420px) {
474
- .tap-schema-form__actions {
475
- align-items: stretch;
476
- flex-direction: column-reverse;
477
- }
478
- }
479
-
480
- .tap-ui-dialog-overlay {
481
- position: fixed;
482
- inset: 0;
483
- z-index: 1000;
484
- display: grid;
485
- place-items: center;
486
- padding: var(--tappify-space-24);
487
- background: rgb(18 18 18 / 58%);
488
- backdrop-filter: blur(2px);
489
- animation: tappify-fade-in 140ms ease-out;
490
- }
491
-
492
- .tap-ui-dialog {
493
- width: min(100%, 520px);
494
- max-height: min(88vh, 860px);
495
- display: flex;
496
- flex-direction: column;
497
- overflow: hidden;
498
- color: var(--tappify-fg-primary);
499
- background: var(--tappify-bg-paper);
500
- border: 1px solid var(--tappify-divider);
501
- border-radius: var(--tappify-radius-panel);
502
- box-shadow: 0 24px 80px rgb(18 18 18 / 24%);
503
- animation: tappify-dialog-in 160ms ease-out;
504
- }
505
-
506
- .tap-ui-dialog[data-surface='canvas'] {
507
- background: var(--tappify-bg-canvas);
508
- }
509
-
510
- .tap-ui-dialog[data-size='compact'] {
511
- width: min(100%, 360px);
512
- }
513
-
514
- .tap-ui-dialog[data-size='medium'],
515
- .tap-ui-dialog[data-size='confirmation'] {
516
- width: min(100%, 440px);
517
- }
518
-
519
- .tap-ui-dialog[data-size='large'] {
520
- width: min(100%, 680px);
521
- }
522
-
523
- .tap-ui-dialog[data-size='wide'] {
524
- width: min(100%, 880px);
525
- }
526
-
527
- .tap-dialog__header,
528
- .tap-dialog__body,
529
- .tap-dialog__footer {
530
- padding-inline: var(--tappify-space-24);
531
- }
532
-
533
- .tap-dialog__header {
534
- position: relative;
535
- padding-block: var(--tappify-space-24) var(--tappify-space-16);
536
- }
537
-
538
- .tap-dialog__title {
539
- margin: 0;
540
- font-size: 20px;
541
- font-weight: 650;
542
- line-height: 1.25;
543
- }
544
-
545
- .tap-dialog__description {
546
- margin-top: var(--tappify-space-8);
547
- color: var(--tappify-fg-sub);
548
- }
549
-
550
- .tap-dialog__body {
551
- min-height: 0;
552
- padding-block: var(--tappify-space-16) var(--tappify-space-24);
553
- overflow: auto;
554
- }
555
-
556
- .tap-dialog__footer {
557
- display: flex;
558
- align-items: center;
559
- justify-content: flex-end;
560
- gap: var(--tappify-space-8);
561
- padding-block: var(--tappify-space-16) var(--tappify-space-24);
562
- border-top: 1px solid var(--tappify-divider);
563
- }
564
-
565
- @keyframes tappify-fade-in {
566
- from {
567
- opacity: 0;
568
- }
569
- }
570
-
571
- @keyframes tappify-dialog-in {
572
- from {
573
- opacity: 0;
574
- transform: translateY(8px) scale(0.985);
575
- }
576
- }
577
-
578
- @media (prefers-reduced-motion: reduce) {
579
- .tap-ui-dialog-overlay,
580
- .tap-ui-dialog {
581
- animation: none;
582
- }
583
- }
584
-
585
- @media (max-width: 560px) {
586
- .tap-ui-dialog-overlay {
587
- padding: var(--tappify-space-12);
588
- }
589
-
590
- .tap-ui-dialog {
591
- max-height: calc(100vh - 24px);
592
- }
593
-
594
- .tap-dialog__footer {
595
- align-items: stretch;
596
- flex-direction: column-reverse;
597
- }
598
- }
599
-
600
- .tap-ui-table-container {
601
- width: 100%;
602
- overflow-x: auto;
603
- }
604
-
605
- .tap-ui-table {
606
- width: 100%;
607
- border-spacing: 0;
608
- border-collapse: collapse;
609
- }
610
-
611
- .tap-table__row {
612
- border-bottom: 1px solid var(--tappify-divider);
613
- }
614
-
615
- .tap-table__row[data-variant='header'] {
616
- height: 44px;
617
- }
618
-
619
- .tap-table__row[data-variant='body'] {
620
- height: 48px;
621
- }
622
-
623
- .tap-table__head,
624
- .tap-table__cell {
625
- padding: var(--tappify-space-8) var(--tappify-space-12);
626
- text-align: start;
627
- white-space: nowrap;
628
- }
629
-
630
- .tap-table__head {
631
- color: var(--tappify-fg-sub);
632
- font-size: 13px;
633
- font-weight: 600;
634
- }
635
-
636
- .tap-table__cell {
637
- font-size: 14px;
638
- }
639
-
640
- .tap-metric {
641
- display: grid;
642
- grid-template-columns: minmax(0, 1fr) auto;
643
- gap: var(--tappify-space-4) var(--tappify-space-12);
644
- }
645
-
646
- .tap-metric__label,
647
- .tap-metric__description {
648
- color: var(--tappify-fg-sub);
649
- }
650
-
651
- .tap-metric__label {
652
- grid-column: 1 / -1;
653
- font-size: 14px;
654
- }
655
-
656
- .tap-metric__value {
657
- font-size: 28px;
658
- font-weight: 650;
659
- font-variant-numeric: tabular-nums;
660
- line-height: 1.15;
661
- }
662
-
663
- .tap-metric__delta {
664
- align-self: end;
665
- padding-bottom: 2px;
666
- color: var(--tappify-fg-sub);
667
- font-variant-numeric: tabular-nums;
668
- font-weight: 600;
669
- }
670
-
671
- .tap-metric__delta[data-direction='up'] {
672
- color: var(--tappify-deep-green);
673
- }
674
-
675
- .tap-metric__delta[data-direction='down'] {
676
- color: var(--tappify-danger);
677
- }
678
-
679
- .tap-metric__description {
680
- grid-column: 1 / -1;
681
- font-size: 13px;
682
- }
683
-
684
- .tap-ui-skeleton {
685
- display: flex;
686
- flex-direction: column;
687
- gap: var(--tappify-space-8);
688
- }
689
-
690
- .tap-skeleton__line {
691
- display: block;
692
- width: 100%;
693
- height: 12px;
694
- border-radius: 999px;
695
- background: linear-gradient(
696
- 90deg,
697
- var(--tappify-bg-light-gray) 25%,
698
- var(--tappify-bg-paper) 50%,
699
- var(--tappify-bg-light-gray) 75%
700
- );
701
- background-size: 200% 100%;
702
- animation: tappify-skeleton 1.4s ease-in-out infinite;
703
- }
704
-
705
- @keyframes tappify-skeleton {
706
- to {
707
- background-position: -200% 0;
708
- }
709
- }
710
-
711
- .tap-ui-state {
712
- align-items: center;
713
- justify-content: center;
714
- min-height: 180px;
715
- padding: var(--tappify-space-32) var(--tappify-space-24);
716
- text-align: center;
717
- color: var(--tappify-fg-sub);
718
- }
719
-
720
- .tap-state__title {
721
- color: var(--tappify-fg-primary);
722
- font-size: 18px;
723
- font-weight: 650;
724
- }
725
-
726
- .tap-ui-state--error .tap-state__title,
727
- .tap-state__code {
728
- color: var(--tappify-danger);
729
- }
730
-
731
- .tap-state__code {
732
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
733
- font-size: 12px;
734
- }
735
-
736
- @media (prefers-reduced-motion: reduce) {
737
- .tap-skeleton__line {
738
- animation: none;
739
- }
740
- }