@vertebr/react 0.4.0 → 0.5.1

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 (82) 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/form/ConfigForm.d.ts +1 -1
  23. package/dist/components/config/form/ConfigForm.d.ts.map +1 -1
  24. package/dist/components/config/form/ConfigForm.js +5 -1
  25. package/dist/components/config/form/RecordConfigForm.d.ts +1 -0
  26. package/dist/components/config/form/RecordConfigForm.d.ts.map +1 -1
  27. package/dist/components/config/form/SettingsConfigForm.d.ts +2 -1
  28. package/dist/components/config/form/SettingsConfigForm.d.ts.map +1 -1
  29. package/dist/components/config/form/SettingsConfigForm.js +2 -2
  30. package/dist/components/config/form/helpers/fields.js +1 -1
  31. package/dist/components/config/form/types.d.ts +4 -0
  32. package/dist/components/config/form/types.d.ts.map +1 -1
  33. package/dist/components/emails/EmailRecipientSelect.d.ts +16 -0
  34. package/dist/components/emails/EmailRecipientSelect.d.ts.map +1 -0
  35. package/dist/components/emails/EmailRecipientSelect.js +10 -0
  36. package/dist/components/emails/EmailsActivityPanel.d.ts +11 -0
  37. package/dist/components/emails/EmailsActivityPanel.d.ts.map +1 -0
  38. package/dist/components/emails/EmailsActivityPanel.js +139 -0
  39. package/dist/components/emails/EmailsBoard.d.ts +47 -0
  40. package/dist/components/emails/EmailsBoard.d.ts.map +1 -0
  41. package/dist/components/emails/EmailsBoard.js +594 -0
  42. package/dist/components/emails/EmailsLibraryPanel.d.ts +25 -0
  43. package/dist/components/emails/EmailsLibraryPanel.d.ts.map +1 -0
  44. package/dist/components/emails/EmailsLibraryPanel.js +379 -0
  45. package/dist/components/emails/EmailsNavSelect.d.ts +18 -0
  46. package/dist/components/emails/EmailsNavSelect.d.ts.map +1 -0
  47. package/dist/components/emails/EmailsNavSelect.js +37 -0
  48. package/dist/components/emails/MultiCheckSelect.d.ts +18 -0
  49. package/dist/components/emails/MultiCheckSelect.d.ts.map +1 -0
  50. package/dist/components/emails/MultiCheckSelect.js +74 -0
  51. package/dist/components/metrics/MetricsBoard.d.ts +8 -2
  52. package/dist/components/metrics/MetricsBoard.d.ts.map +1 -1
  53. package/dist/components/metrics/MetricsBoard.js +55 -2
  54. package/dist/components/metrics/charts.d.ts +14 -0
  55. package/dist/components/metrics/charts.d.ts.map +1 -0
  56. package/dist/components/metrics/charts.js +212 -0
  57. package/dist/components/resources/ResourceActionModal.d.ts +14 -0
  58. package/dist/components/resources/ResourceActionModal.d.ts.map +1 -0
  59. package/dist/components/resources/ResourceActionModal.js +64 -0
  60. package/dist/components/resources/ResourceCell.d.ts.map +1 -1
  61. package/dist/components/resources/ResourceCell.js +25 -9
  62. package/dist/components/resources/ResourceMailModal.d.ts +12 -0
  63. package/dist/components/resources/ResourceMailModal.d.ts.map +1 -0
  64. package/dist/components/resources/ResourceMailModal.js +196 -0
  65. package/dist/components/resources/ResourceTable.d.ts +7 -3
  66. package/dist/components/resources/ResourceTable.d.ts.map +1 -1
  67. package/dist/components/resources/ResourceTable.js +204 -34
  68. package/dist/index.d.ts +7 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +1 -0
  71. package/dist/lib/metricsRanges.d.ts +20 -0
  72. package/dist/lib/metricsRanges.d.ts.map +1 -0
  73. package/dist/lib/metricsRanges.js +14 -0
  74. package/dist/styles/cells.css +42 -0
  75. package/dist/styles/emails.css +632 -0
  76. package/dist/styles/index.css +3 -0
  77. package/dist/styles/mail.css +240 -0
  78. package/dist/styles/metrics.css +633 -0
  79. package/dist/styles/nav.css +103 -1
  80. package/dist/styles/panel.css +2 -68
  81. package/dist/styles/table.css +26 -3
  82. package/package.json +1 -1
@@ -9,7 +9,7 @@
9
9
  .vertebr-nav-group {
10
10
  display: flex;
11
11
  flex-direction: column;
12
- gap: 0.15rem;
12
+ gap: 0.2rem;
13
13
  }
14
14
 
15
15
  .vertebr-nav-label {
@@ -44,6 +44,47 @@
44
44
  box-shadow 120ms ease;
45
45
  }
46
46
 
47
+ .vertebr-nav-item {
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 0;
51
+ }
52
+
53
+ .vertebr-nav-parent {
54
+ display: grid;
55
+ grid-template-columns: minmax(0, 1fr) auto;
56
+ align-items: stretch;
57
+ gap: 0.15rem;
58
+ }
59
+
60
+ .vertebr-nav-parent-label {
61
+ min-width: 0;
62
+ }
63
+
64
+ .vertebr-nav-parent-toggle {
65
+ display: inline-flex !important;
66
+ align-items: center;
67
+ justify-content: center;
68
+ width: 1.75rem !important;
69
+ min-width: 1.75rem;
70
+ margin: 0.1rem 0.15rem 0.1rem 0 !important;
71
+ padding: 0 !important;
72
+ border-radius: 7px !important;
73
+ color: var(--vb-text-subtle) !important;
74
+ font-size: 0.62rem !important;
75
+ line-height: 1;
76
+ letter-spacing: 0;
77
+ }
78
+
79
+ .vertebr-nav-parent-toggle:hover {
80
+ background: var(--vb-bg-muted) !important;
81
+ color: var(--vb-text) !important;
82
+ }
83
+
84
+ .vertebr-nav-item[data-open="true"] .vertebr-nav-parent-toggle {
85
+ color: var(--vb-text-muted) !important;
86
+ }
87
+
47
88
  .vertebr-nav button:hover {
48
89
  background: var(--vb-bg-muted);
49
90
  color: var(--vb-text);
@@ -56,6 +97,67 @@
56
97
  font-weight: 500;
57
98
  }
58
99
 
100
+ .vertebr-nav-parent-label[data-section="true"] {
101
+ color: var(--vb-text);
102
+ font-weight: 600;
103
+ background: transparent;
104
+ box-shadow: none;
105
+ }
106
+
107
+ .vertebr-nav-parent-label[data-section="true"]:hover {
108
+ background: var(--vb-bg-muted);
109
+ }
110
+
111
+ .vertebr-nav-parent-label[data-section="true"][data-active="true"] {
112
+ background: var(--vb-accent-soft);
113
+ box-shadow: inset 2px 0 0 var(--vb-accent);
114
+ color: var(--vb-accent);
115
+ font-weight: 500;
116
+ }
117
+
118
+ .vertebr-nav-sub {
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: 0.12rem;
122
+ margin: 0.28rem 0 0.35rem 0.85rem;
123
+ padding: 0.1rem 0 0.1rem 0.75rem;
124
+ border-left: 1px solid
125
+ color-mix(in srgb, var(--vb-border) 70%, var(--vb-text-subtle) 30%);
126
+ }
127
+
128
+ .vertebr-nav-subitem {
129
+ font-size: 0.8rem !important;
130
+ padding: 0.4rem 0.7rem !important;
131
+ border-radius: 8px !important;
132
+ color: var(--vb-text-subtle) !important;
133
+ font-weight: 450 !important;
134
+ letter-spacing: 0.01em;
135
+ }
136
+
137
+ .vertebr-nav-subitem:hover {
138
+ background: var(--vb-bg-muted) !important;
139
+ color: var(--vb-text) !important;
140
+ box-shadow: none !important;
141
+ }
142
+
143
+ .vertebr-nav-subitem[data-active="true"] {
144
+ background: var(--vb-accent-soft) !important;
145
+ box-shadow: none !important;
146
+ color: var(--vb-text) !important;
147
+ font-weight: 560 !important;
148
+ }
149
+
150
+ .vertebr-nav-subitem[data-active="true"]::before {
151
+ content: "";
152
+ position: absolute;
153
+ left: -0.75rem;
154
+ top: 0.35rem;
155
+ bottom: 0.35rem;
156
+ width: 2px;
157
+ border-radius: 1px;
158
+ background: var(--vb-accent);
159
+ }
160
+
59
161
  .vertebr-nav button:focus-visible,
60
162
  .vertebr-btn:focus-visible {
61
163
  outline: none;
@@ -2,6 +2,7 @@
2
2
 
3
3
  .vertebr-panel {
4
4
  flex: 1 1 auto;
5
+ min-width: 0;
5
6
  min-height: 0;
6
7
  display: flex;
7
8
  flex-direction: column;
@@ -50,6 +51,7 @@
50
51
 
51
52
  .vertebr-resource-body {
52
53
  flex: 1 1 auto;
54
+ min-width: 0;
53
55
  min-height: 0;
54
56
  display: flex;
55
57
  flex-direction: column;
@@ -109,74 +111,6 @@
109
111
  white-space: nowrap;
110
112
  }
111
113
 
112
- .vertebr-metrics {
113
- flex: 1 1 auto;
114
- min-height: 0;
115
- display: flex;
116
- flex-direction: column;
117
- }
118
-
119
- .vertebr-metrics-grid {
120
- flex: 1 1 auto;
121
- min-height: 0;
122
- overflow: auto;
123
- display: grid;
124
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
125
- gap: 1rem;
126
- align-content: start;
127
- padding: 1.35rem 1.5rem 1.5rem;
128
- }
129
-
130
- .vertebr-metric-card {
131
- border: 1px solid var(--vb-border);
132
- border-radius: var(--vb-radius);
133
- background: var(--vb-surface-tint);
134
- padding: 1rem 1.05rem 1.1rem;
135
- min-height: 110px;
136
- display: flex;
137
- flex-direction: column;
138
- gap: 0.35rem;
139
- }
140
-
141
- .vertebr-metric-card[data-tone="ok"] {
142
- border-color: color-mix(in srgb, var(--vb-ok) 40%, transparent);
143
- background: var(--vb-ok-soft);
144
- }
145
-
146
- .vertebr-metric-card[data-tone="warn"] {
147
- border-color: color-mix(in srgb, var(--vb-accent) 40%, transparent);
148
- background: var(--vb-accent-soft);
149
- }
150
-
151
- .vertebr-metric-card[data-tone="danger"] {
152
- border-color: color-mix(in srgb, var(--vb-danger) 40%, transparent);
153
- background: var(--vb-danger-soft);
154
- }
155
-
156
- .vertebr-metric-label {
157
- margin: 0;
158
- font-size: 0.72rem;
159
- letter-spacing: 0.1em;
160
- text-transform: uppercase;
161
- font-family: var(--vb-mono);
162
- color: var(--vb-text-subtle);
163
- }
164
-
165
- .vertebr-metric-value {
166
- margin: 0;
167
- font-size: 1.75rem;
168
- font-weight: 600;
169
- letter-spacing: -0.03em;
170
- line-height: 1.1;
171
- }
172
-
173
- .vertebr-metric-hint {
174
- margin: 0.15rem 0 0;
175
- font-size: 0.78rem;
176
- color: var(--vb-text-muted);
177
- line-height: 1.35;
178
- }
179
-
180
114
  .vertebr-resource-edit {
181
115
  flex: 1 1 auto;
182
116
  min-height: 0;
@@ -5,9 +5,11 @@
5
5
  min-height: 0;
6
6
  min-width: 0;
7
7
  max-width: 100%;
8
- overflow: auto;
8
+ overflow-x: auto;
9
+ overflow-y: auto;
9
10
  overscroll-behavior-inline: contain;
10
11
  scrollbar-gutter: stable;
12
+ scrollbar-width: thin;
11
13
  }
12
14
 
13
15
  .vertebr-table {
@@ -21,11 +23,13 @@
21
23
 
22
24
  .vertebr-table th,
23
25
  .vertebr-table td {
24
- padding: 0.85rem 1rem;
26
+ padding: 0.7rem 0.9rem;
25
27
  border-bottom: 1px solid var(--vb-border);
26
28
  text-align: left;
27
29
  vertical-align: middle;
28
30
  white-space: nowrap;
31
+ overflow: hidden;
32
+ max-width: 16rem;
29
33
  }
30
34
 
31
35
  .vertebr-table th:not(.vertebr-col-actions),
@@ -50,10 +54,27 @@
50
54
  transition: background 100ms ease;
51
55
  }
52
56
 
53
- .vertebr-table tbody tr:hover {
57
+ .vertebr-table tbody tr[data-selected="true"] {
54
58
  background: var(--vb-surface-tint);
55
59
  }
56
60
 
61
+ .vertebr-table th.vertebr-col-select,
62
+ .vertebr-table td.vertebr-col-select {
63
+ width: 2.4rem;
64
+ min-width: 2.4rem;
65
+ max-width: 2.4rem;
66
+ padding-left: 0.85rem;
67
+ padding-right: 0.4rem;
68
+ }
69
+
70
+ .vertebr-row-check {
71
+ width: 0.95rem;
72
+ height: 0.95rem;
73
+ margin: 0;
74
+ accent-color: var(--vb-accent);
75
+ cursor: pointer;
76
+ }
77
+
57
78
  .vertebr-table-row-clickable {
58
79
  cursor: pointer;
59
80
  }
@@ -70,6 +91,8 @@
70
91
  z-index: 2;
71
92
  width: 1%;
72
93
  min-width: 7.5rem;
94
+ max-width: none;
95
+ overflow: visible;
73
96
  padding-left: 0.75rem;
74
97
  padding-right: 0.85rem;
75
98
  background: var(--vb-bg-elevated);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertebr/react",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Vertebr admin dashboard UI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",