@vertebr/react 0.3.0 → 0.5.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 (126) hide show
  1. package/dist/components/admin/AdminContent.d.ts +36 -0
  2. package/dist/components/admin/AdminContent.d.ts.map +1 -0
  3. package/dist/components/admin/AdminContent.js +107 -0
  4. package/dist/components/admin/AdminHeader.d.ts +13 -0
  5. package/dist/components/admin/AdminHeader.d.ts.map +1 -0
  6. package/dist/components/admin/AdminHeader.js +32 -0
  7. package/dist/components/admin/AdminSidebar.d.ts +25 -0
  8. package/dist/components/admin/AdminSidebar.d.ts.map +1 -0
  9. package/dist/components/admin/AdminSidebar.js +31 -0
  10. package/dist/components/admin/VertebrAdmin.d.ts +3 -18
  11. package/dist/components/admin/VertebrAdmin.d.ts.map +1 -1
  12. package/dist/components/admin/VertebrAdmin.js +130 -120
  13. package/dist/components/admin/sidebar.d.ts +3 -0
  14. package/dist/components/admin/sidebar.d.ts.map +1 -0
  15. package/dist/components/admin/sidebar.js +13 -0
  16. package/dist/components/admin/storage.d.ts +4 -0
  17. package/dist/components/admin/storage.d.ts.map +1 -0
  18. package/dist/components/admin/storage.js +24 -0
  19. package/dist/components/admin/types.d.ts +53 -0
  20. package/dist/components/admin/types.d.ts.map +1 -0
  21. package/dist/components/admin/types.js +1 -0
  22. package/dist/components/config/EnumInput.d.ts +10 -0
  23. package/dist/components/config/EnumInput.d.ts.map +1 -0
  24. package/dist/components/config/EnumInput.js +19 -0
  25. package/dist/components/config/EnumListInput.d.ts +10 -0
  26. package/dist/components/config/EnumListInput.d.ts.map +1 -0
  27. package/dist/components/config/EnumListInput.js +46 -0
  28. package/dist/components/config/VisibilityEye.d.ts +8 -0
  29. package/dist/components/config/VisibilityEye.d.ts.map +1 -0
  30. package/dist/components/config/VisibilityEye.js +18 -0
  31. package/dist/components/config/form/ConfigField.d.ts +2 -1
  32. package/dist/components/config/form/ConfigField.d.ts.map +1 -1
  33. package/dist/components/config/form/ConfigField.js +9 -4
  34. package/dist/components/config/form/ConfigForm.d.ts +1 -1
  35. package/dist/components/config/form/ConfigForm.d.ts.map +1 -1
  36. package/dist/components/config/form/ConfigForm.js +18 -9
  37. package/dist/components/config/form/ConfigFormActions.d.ts +2 -1
  38. package/dist/components/config/form/ConfigFormActions.d.ts.map +1 -1
  39. package/dist/components/config/form/ConfigFormActions.js +2 -2
  40. package/dist/components/config/form/RecordConfigForm.d.ts +3 -1
  41. package/dist/components/config/form/RecordConfigForm.d.ts.map +1 -1
  42. package/dist/components/config/form/RecordConfigForm.js +16 -8
  43. package/dist/components/config/form/SettingsConfigForm.d.ts +3 -1
  44. package/dist/components/config/form/SettingsConfigForm.d.ts.map +1 -1
  45. package/dist/components/config/form/SettingsConfigForm.js +2 -2
  46. package/dist/components/config/form/helpers/fields.d.ts +7 -0
  47. package/dist/components/config/form/helpers/fields.d.ts.map +1 -0
  48. package/dist/components/config/form/helpers/fields.js +31 -0
  49. package/dist/components/config/form/helpers/groups.d.ts +4 -0
  50. package/dist/components/config/form/helpers/groups.d.ts.map +1 -0
  51. package/dist/components/config/form/helpers/groups.js +107 -0
  52. package/dist/components/config/form/helpers/images.d.ts +4 -0
  53. package/dist/components/config/form/helpers/images.d.ts.map +1 -0
  54. package/dist/components/config/form/helpers/images.js +27 -0
  55. package/dist/components/config/form/helpers/index.d.ts +7 -0
  56. package/dist/components/config/form/helpers/index.d.ts.map +1 -0
  57. package/dist/components/config/form/helpers/index.js +6 -0
  58. package/dist/components/config/form/helpers/labels.d.ts +5 -0
  59. package/dist/components/config/form/helpers/labels.d.ts.map +1 -0
  60. package/dist/components/config/form/helpers/labels.js +28 -0
  61. package/dist/components/config/form/helpers/schema.d.ts +8 -0
  62. package/dist/components/config/form/helpers/schema.d.ts.map +1 -0
  63. package/dist/components/config/form/helpers/schema.js +30 -0
  64. package/dist/components/config/form/helpers/visibility.d.ts +13 -0
  65. package/dist/components/config/form/helpers/visibility.d.ts.map +1 -0
  66. package/dist/components/config/form/helpers/visibility.js +86 -0
  67. package/dist/components/config/form/types.d.ts +6 -0
  68. package/dist/components/config/form/types.d.ts.map +1 -1
  69. package/dist/components/emails/EmailRecipientSelect.d.ts +16 -0
  70. package/dist/components/emails/EmailRecipientSelect.d.ts.map +1 -0
  71. package/dist/components/emails/EmailRecipientSelect.js +10 -0
  72. package/dist/components/emails/EmailsActivityPanel.d.ts +11 -0
  73. package/dist/components/emails/EmailsActivityPanel.d.ts.map +1 -0
  74. package/dist/components/emails/EmailsActivityPanel.js +139 -0
  75. package/dist/components/emails/EmailsBoard.d.ts +47 -0
  76. package/dist/components/emails/EmailsBoard.d.ts.map +1 -0
  77. package/dist/components/emails/EmailsBoard.js +594 -0
  78. package/dist/components/emails/EmailsLibraryPanel.d.ts +25 -0
  79. package/dist/components/emails/EmailsLibraryPanel.d.ts.map +1 -0
  80. package/dist/components/emails/EmailsLibraryPanel.js +379 -0
  81. package/dist/components/emails/EmailsNavSelect.d.ts +18 -0
  82. package/dist/components/emails/EmailsNavSelect.d.ts.map +1 -0
  83. package/dist/components/emails/EmailsNavSelect.js +37 -0
  84. package/dist/components/emails/MultiCheckSelect.d.ts +18 -0
  85. package/dist/components/emails/MultiCheckSelect.d.ts.map +1 -0
  86. package/dist/components/emails/MultiCheckSelect.js +74 -0
  87. package/dist/components/metrics/MetricsBoard.d.ts +8 -2
  88. package/dist/components/metrics/MetricsBoard.d.ts.map +1 -1
  89. package/dist/components/metrics/MetricsBoard.js +55 -2
  90. package/dist/components/metrics/charts.d.ts +14 -0
  91. package/dist/components/metrics/charts.d.ts.map +1 -0
  92. package/dist/components/metrics/charts.js +212 -0
  93. package/dist/components/resources/ResourceActionModal.d.ts +14 -0
  94. package/dist/components/resources/ResourceActionModal.d.ts.map +1 -0
  95. package/dist/components/resources/ResourceActionModal.js +64 -0
  96. package/dist/components/resources/ResourceCell.d.ts.map +1 -1
  97. package/dist/components/resources/ResourceCell.js +25 -9
  98. package/dist/components/resources/ResourceCreateModal.d.ts +18 -0
  99. package/dist/components/resources/ResourceCreateModal.d.ts.map +1 -0
  100. package/dist/components/resources/ResourceCreateModal.js +22 -0
  101. package/dist/components/resources/ResourceMailModal.d.ts +12 -0
  102. package/dist/components/resources/ResourceMailModal.d.ts.map +1 -0
  103. package/dist/components/resources/ResourceMailModal.js +196 -0
  104. package/dist/components/resources/ResourceTable.d.ts +9 -3
  105. package/dist/components/resources/ResourceTable.d.ts.map +1 -1
  106. package/dist/components/resources/ResourceTable.js +241 -35
  107. package/dist/index.d.ts +11 -1
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +3 -0
  110. package/dist/lib/metricsRanges.d.ts +20 -0
  111. package/dist/lib/metricsRanges.d.ts.map +1 -0
  112. package/dist/lib/metricsRanges.js +14 -0
  113. package/dist/styles/cells.css +42 -0
  114. package/dist/styles/emails.css +632 -0
  115. package/dist/styles/form.css +145 -0
  116. package/dist/styles/index.css +3 -0
  117. package/dist/styles/mail.css +240 -0
  118. package/dist/styles/metrics.css +633 -0
  119. package/dist/styles/modal.css +18 -0
  120. package/dist/styles/nav.css +103 -1
  121. package/dist/styles/panel.css +8 -68
  122. package/dist/styles/table.css +26 -3
  123. package/package.json +2 -2
  124. package/dist/components/config/form/helpers.d.ts +0 -16
  125. package/dist/components/config/form/helpers.d.ts.map +0 -1
  126. package/dist/components/config/form/helpers.js +0 -186
@@ -84,6 +84,23 @@
84
84
  gap: 0.65rem;
85
85
  }
86
86
 
87
+ .vertebr-form-fields[data-layout="specs"] {
88
+ grid-template-columns: 1fr 1fr;
89
+ }
90
+
91
+ .vertebr-form-fields[data-layout="specs"] .vertebr-field[data-span="full"] {
92
+ grid-column: 1 / -1;
93
+ }
94
+
95
+ .vertebr-form-fields[data-layout="specs"] .vertebr-field-head {
96
+ min-height: 1.55rem;
97
+ }
98
+
99
+ .vertebr-form-fields[data-layout="specs"] .vertebr-visibility-btn {
100
+ width: 1.85rem;
101
+ height: 1.85rem;
102
+ }
103
+
87
104
  .vertebr-form-fields[data-layout="chips"] .vertebr-field label {
88
105
  font-family: var(--vb-mono);
89
106
  font-size: 0.7rem;
@@ -164,6 +181,10 @@
164
181
  }
165
182
 
166
183
  .vertebr-record-block-label {
184
+ display: flex;
185
+ align-items: center;
186
+ justify-content: space-between;
187
+ gap: 0.5rem;
167
188
  font-family: var(--vb-mono);
168
189
  font-size: 0.68rem;
169
190
  font-weight: 500;
@@ -174,6 +195,40 @@
174
195
  border-bottom: 1px solid var(--vb-border);
175
196
  }
176
197
 
198
+ .vertebr-record-block[data-storefront="off"] {
199
+ opacity: 0.55;
200
+ }
201
+
202
+ .vertebr-visibility-btn {
203
+ appearance: none;
204
+ flex: none;
205
+ display: inline-flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ width: 1.7rem;
209
+ height: 1.7rem;
210
+ margin: -0.25rem 0;
211
+ padding: 0;
212
+ border: 0;
213
+ border-radius: 6px;
214
+ background: transparent;
215
+ color: var(--vb-text-subtle);
216
+ cursor: pointer;
217
+ }
218
+
219
+ .vertebr-visibility-btn:hover {
220
+ color: var(--vb-text);
221
+ background: var(--vb-surface-tint);
222
+ }
223
+
224
+ .vertebr-visibility-btn[aria-pressed="true"] {
225
+ color: var(--vb-accent);
226
+ }
227
+
228
+ .vertebr-visibility-btn[aria-pressed="false"] {
229
+ color: var(--vb-text-subtle);
230
+ }
231
+
177
232
  .vertebr-form[data-variant="record"] .vertebr-form-fields {
178
233
  padding: 0;
179
234
  gap: 0.75rem 0.9rem;
@@ -199,6 +254,96 @@
199
254
  grid-column: 1 / -1;
200
255
  }
201
256
 
257
+ .vertebr-field-head {
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: space-between;
261
+ gap: 0.35rem;
262
+ min-height: 1.4rem;
263
+ }
264
+
265
+ .vertebr-field-head label {
266
+ min-width: 0;
267
+ flex: 1 1 auto;
268
+ }
269
+
270
+ .vertebr-field[data-storefront="off"] {
271
+ opacity: 0.55;
272
+ }
273
+
274
+ .vertebr-enum-list {
275
+ margin: 0;
276
+ padding: 0;
277
+ list-style: none;
278
+ display: flex;
279
+ flex-direction: column;
280
+ gap: 0.35rem;
281
+ border: 1px solid var(--vb-border);
282
+ border-radius: var(--vb-radius-sm);
283
+ background: var(--vb-bg);
284
+ overflow: hidden;
285
+ }
286
+
287
+ .vertebr-enum-list-row {
288
+ display: flex;
289
+ align-items: center;
290
+ justify-content: space-between;
291
+ gap: 0.5rem;
292
+ padding: 0.45rem 0.55rem;
293
+ border-bottom: 1px solid var(--vb-border);
294
+ }
295
+
296
+ .vertebr-enum-list-row:last-child {
297
+ border-bottom: 0;
298
+ }
299
+
300
+ .vertebr-enum-list-row[data-on="false"] {
301
+ opacity: 0.55;
302
+ }
303
+
304
+ .vertebr-enum-list-label {
305
+ display: flex;
306
+ align-items: center;
307
+ gap: 0.55rem;
308
+ min-width: 0;
309
+ font-size: 0.86rem;
310
+ font-weight: 500;
311
+ color: var(--vb-text);
312
+ cursor: pointer;
313
+ }
314
+
315
+ .vertebr-enum-list-label input {
316
+ width: 0.95rem;
317
+ height: 0.95rem;
318
+ accent-color: var(--vb-accent);
319
+ }
320
+
321
+ .vertebr-enum-list-move {
322
+ display: flex;
323
+ gap: 0.2rem;
324
+ }
325
+
326
+ .vertebr-enum-list-move button {
327
+ appearance: none;
328
+ width: 1.7rem;
329
+ height: 1.7rem;
330
+ border: 1px solid var(--vb-border);
331
+ border-radius: 6px;
332
+ background: var(--vb-bg-elevated);
333
+ color: var(--vb-text-muted);
334
+ cursor: pointer;
335
+ }
336
+
337
+ .vertebr-enum-list-move button:hover:not(:disabled) {
338
+ color: var(--vb-text);
339
+ border-color: var(--vb-border-strong);
340
+ }
341
+
342
+ .vertebr-enum-list-move button:disabled {
343
+ opacity: 0.4;
344
+ cursor: default;
345
+ }
346
+
202
347
  .vertebr-field label,
203
348
  .vertebr-field > span {
204
349
  font-size: 0.78rem;
@@ -8,10 +8,13 @@
8
8
  @import "./nav.css";
9
9
  @import "./main.css";
10
10
  @import "./panel.css";
11
+ @import "./metrics.css";
11
12
  @import "./table.css";
12
13
  @import "./columns.css";
13
14
  @import "./cells.css";
14
15
  @import "./modal.css";
16
+ @import "./mail.css";
17
+ @import "./emails.css";
15
18
  @import "./form.css";
16
19
  @import "./buttons.css";
17
20
  @import "./gallery.css";
@@ -0,0 +1,240 @@
1
+ /* ── Mail preview ────────────────────────────────────── */
2
+
3
+ .vertebr-mail-modal {
4
+ width: min(100%, 1080px);
5
+ max-height: min(90vh, 820px);
6
+ }
7
+
8
+ .vertebr-mail-layout {
9
+ min-height: 0;
10
+ flex: 1 1 auto;
11
+ display: grid;
12
+ grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
13
+ overflow: hidden;
14
+ }
15
+
16
+ .vertebr-mail-compose {
17
+ min-height: 0;
18
+ display: flex;
19
+ flex-direction: column;
20
+ border-right: 1px solid var(--vb-border);
21
+ background: var(--vb-bg-elevated);
22
+ }
23
+
24
+ .vertebr-mail-fields {
25
+ flex: 1 1 auto;
26
+ min-height: 0;
27
+ overflow: auto;
28
+ display: flex;
29
+ flex-direction: column;
30
+ align-items: stretch;
31
+ gap: 0.85rem;
32
+ padding: 1rem 1.1rem 0.75rem;
33
+ }
34
+
35
+ .vertebr-mail-field {
36
+ display: grid;
37
+ gap: 0.35rem;
38
+ min-width: 0;
39
+ flex: 0 0 auto;
40
+ }
41
+
42
+ .vertebr-mail-field > span {
43
+ font-family: var(--vb-mono);
44
+ font-size: 0.66rem;
45
+ letter-spacing: 0.1em;
46
+ text-transform: uppercase;
47
+ color: var(--vb-text-subtle);
48
+ }
49
+
50
+ .vertebr-mail-field .vertebr-select-trigger {
51
+ flex: none;
52
+ align-self: stretch;
53
+ height: auto;
54
+ min-height: 2.4rem;
55
+ background: var(--vb-bg);
56
+ }
57
+
58
+ .vertebr-mail-field input,
59
+ .vertebr-mail-field textarea {
60
+ width: 100%;
61
+ border: 1px solid var(--vb-border);
62
+ border-radius: 8px;
63
+ background: var(--vb-bg);
64
+ color: var(--vb-text);
65
+ font: inherit;
66
+ font-size: 0.9rem;
67
+ padding: 0.55rem 0.7rem;
68
+ }
69
+
70
+ .vertebr-mail-field textarea {
71
+ min-height: 8.5rem;
72
+ resize: vertical;
73
+ line-height: 1.45;
74
+ }
75
+
76
+ .vertebr-mail-field input:focus,
77
+ .vertebr-mail-field textarea:focus {
78
+ outline: none;
79
+ border-color: var(--vb-border-strong);
80
+ box-shadow: 0 0 0 3px var(--vb-accent-soft);
81
+ }
82
+
83
+ .vertebr-mail-compose-note {
84
+ margin: 0;
85
+ padding: 1rem 1.1rem;
86
+ font-size: 0.84rem;
87
+ line-height: 1.45;
88
+ color: var(--vb-text-muted);
89
+ }
90
+
91
+ .vertebr-mail-compose-hint {
92
+ margin: auto 0 0;
93
+ padding: 0.35rem 0 0.15rem;
94
+ font-size: 0.75rem;
95
+ line-height: 1.4;
96
+ color: var(--vb-text-subtle);
97
+ }
98
+
99
+ .vertebr-mail-compose-error {
100
+ margin: 0;
101
+ padding: 0 1.1rem 0.45rem;
102
+ font-size: 0.8rem;
103
+ color: var(--vb-danger, #b42318);
104
+ }
105
+
106
+ .vertebr-mail-compose-foot {
107
+ display: flex;
108
+ flex-direction: column;
109
+ gap: 0.55rem;
110
+ padding: 0.85rem 1.1rem 1rem;
111
+ border-top: 1px solid var(--vb-border);
112
+ background: var(--vb-surface-tint);
113
+ }
114
+
115
+ .vertebr-mail-compose-foot .vertebr-btn-primary {
116
+ width: 100%;
117
+ justify-content: center;
118
+ }
119
+
120
+ .vertebr-mail-preview {
121
+ min-width: 0;
122
+ min-height: 0;
123
+ display: flex;
124
+ flex-direction: column;
125
+ background:
126
+ linear-gradient(
127
+ 180deg,
128
+ color-mix(in srgb, var(--vb-bg-muted) 88%, var(--vb-bg)) 0%,
129
+ var(--vb-bg-muted) 100%
130
+ );
131
+ }
132
+
133
+ .vertebr-mail-preview-meta {
134
+ display: grid;
135
+ gap: 0.45rem;
136
+ padding: 0.8rem 1.15rem;
137
+ border-bottom: 1px solid var(--vb-border);
138
+ background: var(--vb-bg-elevated);
139
+ }
140
+
141
+ .vertebr-mail-preview-meta p {
142
+ margin: 0;
143
+ display: grid;
144
+ grid-template-columns: 4.25rem minmax(0, 1fr);
145
+ align-items: baseline;
146
+ gap: 0.55rem;
147
+ font-size: 0.86rem;
148
+ line-height: 1.35;
149
+ min-width: 0;
150
+ color: var(--vb-text);
151
+ }
152
+
153
+ .vertebr-mail-preview-meta p:last-child {
154
+ padding-top: 0.35rem;
155
+ border-top: 1px solid color-mix(in srgb, var(--vb-border) 75%, transparent);
156
+ }
157
+
158
+ .vertebr-mail-preview-meta span {
159
+ font-family: var(--vb-mono);
160
+ font-size: 0.64rem;
161
+ letter-spacing: 0.1em;
162
+ text-transform: uppercase;
163
+ color: var(--vb-text-subtle);
164
+ }
165
+
166
+ .vertebr-mail-preview-meta strong {
167
+ font-weight: 500;
168
+ overflow-wrap: anywhere;
169
+ }
170
+
171
+ .vertebr-mail-preview-stage {
172
+ flex: 1 1 auto;
173
+ min-height: 0;
174
+ display: flex;
175
+ flex-direction: column;
176
+ padding: 1rem 1.1rem 1.15rem;
177
+ }
178
+
179
+ .vertebr-mail-preview-frame {
180
+ flex: 1 1 auto;
181
+ min-height: 0;
182
+ display: flex;
183
+ flex-direction: column;
184
+ border: 1px solid color-mix(in srgb, var(--vb-border) 80%, transparent);
185
+ border-radius: 10px;
186
+ overflow: hidden;
187
+ background: #fff;
188
+ box-shadow:
189
+ 0 1px 0 color-mix(in srgb, var(--vb-text) 6%, transparent),
190
+ 0 18px 40px -28px color-mix(in srgb, var(--vb-text) 45%, transparent);
191
+ }
192
+
193
+ .vertebr-mail-preview-frame iframe,
194
+ .vertebr-mail-preview-frame pre {
195
+ display: block;
196
+ width: 100%;
197
+ flex: 1 1 auto;
198
+ min-height: 360px;
199
+ height: 100%;
200
+ border: 0;
201
+ background: #fff;
202
+ }
203
+
204
+ .vertebr-mail-preview-frame pre {
205
+ margin: 0;
206
+ padding: 1.25rem 1.4rem;
207
+ overflow: auto;
208
+ white-space: pre-wrap;
209
+ font-size: 0.88rem;
210
+ line-height: 1.5;
211
+ color: #171717;
212
+ }
213
+
214
+ .vertebr-mail-preview-empty {
215
+ display: grid;
216
+ place-items: center;
217
+ flex: 1 1 auto;
218
+ min-height: 360px;
219
+ padding: 2rem;
220
+ text-align: center;
221
+ color: var(--vb-text-subtle);
222
+ font-size: 0.86rem;
223
+ background: color-mix(in srgb, var(--vb-bg-muted) 55%, #fff);
224
+ }
225
+
226
+ @media (max-width: 820px) {
227
+ .vertebr-mail-layout {
228
+ grid-template-columns: 1fr;
229
+ overflow: auto;
230
+ }
231
+
232
+ .vertebr-mail-compose {
233
+ border-right: 0;
234
+ border-bottom: 1px solid var(--vb-border);
235
+ }
236
+
237
+ .vertebr-mail-preview-stage {
238
+ min-height: 420px;
239
+ }
240
+ }