@paroicms/react-ui 0.4.4 → 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 (133) hide show
  1. package/dist/Accordion.d.ts +10 -0
  2. package/dist/{PuAccordion.jsx → Accordion.js} +5 -8
  3. package/dist/Alert.d.ts +10 -0
  4. package/dist/Alert.js +7 -0
  5. package/dist/Badge.d.ts +8 -0
  6. package/dist/Badge.js +6 -0
  7. package/dist/Breadcrumb.d.ts +14 -0
  8. package/dist/Breadcrumb.js +10 -0
  9. package/dist/Button.d.ts +36 -0
  10. package/dist/Button.js +74 -0
  11. package/dist/Card.d.ts +10 -0
  12. package/dist/Card.js +7 -0
  13. package/dist/Checkbox.d.ts +9 -0
  14. package/dist/Checkbox.js +12 -0
  15. package/dist/Chip.d.ts +8 -0
  16. package/dist/Chip.js +7 -0
  17. package/dist/Column.d.ts +14 -0
  18. package/dist/Column.js +7 -0
  19. package/dist/DataTable.d.ts +30 -0
  20. package/dist/DataTable.js +26 -0
  21. package/dist/DateInput.d.ts +9 -0
  22. package/dist/DateInput.js +7 -0
  23. package/dist/Dialog.d.ts +13 -0
  24. package/dist/Dialog.js +51 -0
  25. package/dist/Inplace.d.ts +12 -0
  26. package/dist/Inplace.js +16 -0
  27. package/dist/InputNumber.d.ts +10 -0
  28. package/dist/InputNumber.js +19 -0
  29. package/dist/InputText.d.ts +14 -0
  30. package/dist/InputText.js +11 -0
  31. package/dist/MenuItem.d.ts +8 -0
  32. package/dist/MenuItem.js +18 -0
  33. package/dist/MultiSelect.d.ts +18 -0
  34. package/dist/MultiSelect.js +53 -0
  35. package/dist/Panel.d.ts +11 -0
  36. package/dist/Panel.js +9 -0
  37. package/dist/PasswordInput.d.ts +8 -0
  38. package/dist/PasswordInput.js +10 -0
  39. package/dist/PopupMenu.d.ts +19 -0
  40. package/dist/PopupMenu.js +106 -0
  41. package/dist/RadioButton.d.ts +9 -0
  42. package/dist/RadioButton.js +12 -0
  43. package/dist/Select.d.ts +18 -0
  44. package/dist/Select.js +11 -0
  45. package/dist/SideMenu.d.ts +5 -0
  46. package/dist/SideMenu.js +13 -0
  47. package/dist/SortableList.d.ts +19 -0
  48. package/dist/SortableList.js +27 -0
  49. package/dist/Spinner.d.ts +2 -0
  50. package/dist/Spinner.js +5 -0
  51. package/dist/SplitButton.d.ts +25 -0
  52. package/dist/SplitButton.js +39 -0
  53. package/dist/Switch.d.ts +9 -0
  54. package/dist/Switch.js +12 -0
  55. package/dist/Tabs.d.ts +22 -0
  56. package/dist/Tabs.js +21 -0
  57. package/dist/Textarea.d.ts +8 -0
  58. package/dist/Textarea.js +7 -0
  59. package/dist/ToggleButton.d.ts +11 -0
  60. package/dist/ToggleButton.js +6 -0
  61. package/dist/ToggleGroup.d.ts +15 -0
  62. package/dist/ToggleGroup.js +6 -0
  63. package/dist/Tooltip.d.ts +10 -0
  64. package/dist/Tooltip.js +29 -0
  65. package/dist/Tree.d.ts +22 -0
  66. package/dist/Tree.js +43 -0
  67. package/dist/alert-stack.d.ts +20 -0
  68. package/dist/alert-stack.js +72 -0
  69. package/dist/index.d.ts +36 -10
  70. package/dist/index.js +45 -10
  71. package/dist/paroi-ui-lib-types.d.ts +4 -4
  72. package/dist/popup-positioning.d.ts +10 -0
  73. package/dist/popup-positioning.js +160 -0
  74. package/dist/react-ui-provider.d.ts +15 -0
  75. package/dist/react-ui-provider.js +22 -0
  76. package/package.json +16 -2
  77. package/styles/Accordion.css +46 -0
  78. package/styles/Alert.css +77 -0
  79. package/styles/Badge.css +59 -0
  80. package/styles/Breadcrumb.css +57 -0
  81. package/styles/Button.css +167 -0
  82. package/styles/Card.css +28 -0
  83. package/styles/Checkbox.css +61 -0
  84. package/styles/Chip.css +35 -0
  85. package/styles/DataTable.css +176 -0
  86. package/styles/DateInput.css +59 -0
  87. package/styles/Dialog.css +88 -0
  88. package/styles/Inplace.css +44 -0
  89. package/styles/InputNumber.css +60 -0
  90. package/styles/InputText.css +99 -0
  91. package/styles/MenuItem.css +169 -0
  92. package/styles/MultiSelect.css +143 -0
  93. package/styles/Panel.css +40 -0
  94. package/styles/PasswordInput.css +80 -0
  95. package/styles/PopupMenu.css +37 -0
  96. package/styles/RadioButton.css +60 -0
  97. package/styles/Select.css +72 -0
  98. package/styles/SideMenu.css +7 -0
  99. package/styles/SortableList.css +32 -0
  100. package/styles/Spinner.css +30 -0
  101. package/styles/SplitButton.css +137 -0
  102. package/styles/Switch.css +60 -0
  103. package/styles/Tabs.css +94 -0
  104. package/styles/Textarea.css +66 -0
  105. package/styles/ToggleButton.css +36 -0
  106. package/styles/ToggleGroup.css +55 -0
  107. package/styles/Tooltip.css +20 -0
  108. package/styles/Tree.css +162 -0
  109. package/styles/theme/base.css +40 -0
  110. package/styles/theme/common.css +410 -0
  111. package/styles/theme/index.css +15 -0
  112. package/styles/theme/margins.css +119 -0
  113. package/styles/theme/reset.css +119 -0
  114. package/styles/theme/tokens.css +226 -0
  115. package/dist/PuAccordion.d.ts +0 -9
  116. package/dist/PuButton.d.ts +0 -14
  117. package/dist/PuButton.jsx +0 -15
  118. package/dist/PuCheckbox.d.ts +0 -8
  119. package/dist/PuCheckbox.jsx +0 -13
  120. package/dist/PuInput.d.ts +0 -10
  121. package/dist/PuInput.jsx +0 -13
  122. package/dist/PuMenuItem.d.ts +0 -7
  123. package/dist/PuMenuItem.jsx +0 -33
  124. package/dist/PuPopupMenu.d.ts +0 -14
  125. package/dist/PuPopupMenu.jsx +0 -135
  126. package/dist/PuSelect.d.ts +0 -17
  127. package/dist/PuSelect.jsx +0 -24
  128. package/dist/PuSideMenu.d.ts +0 -4
  129. package/dist/PuSideMenu.jsx +0 -15
  130. package/dist/PuSpinner.d.ts +0 -1
  131. package/dist/PuSpinner.jsx +0 -3
  132. package/dist/svg-icons.d.ts +0 -5
  133. package/dist/svg-icons.jsx +0 -30
@@ -0,0 +1,162 @@
1
+ /* ========================================
2
+ Tree Component
3
+ ======================================== */
4
+ .PaTree {
5
+ padding: var(--space-4);
6
+ font-size: var(--text-sm);
7
+ background: var(--color-bg-section);
8
+ border: 1px solid var(--color-border-light);
9
+ border-radius: var(--radius);
10
+ }
11
+
12
+ .PaTree-root {
13
+ padding: 0;
14
+ margin: 0;
15
+ list-style: none;
16
+ }
17
+
18
+ .PaTree-node {
19
+ position: relative;
20
+ padding: var(--space-1) 0;
21
+ list-style: none;
22
+ }
23
+
24
+ .PaTree-nodeContent {
25
+ display: flex;
26
+ gap: var(--space-2);
27
+ align-items: center;
28
+ padding: var(--space-1) var(--space-2);
29
+ border-radius: var(--radius);
30
+ transition: background-color var(--transition);
31
+
32
+ &.selected {
33
+ background: var(--color-primary-light);
34
+ }
35
+
36
+ &:hover {
37
+ background: var(--color-bg-subtle);
38
+ }
39
+ }
40
+
41
+ .PaTree-toggle {
42
+ display: flex;
43
+ flex-shrink: 0;
44
+ align-items: center;
45
+ justify-content: center;
46
+ padding: var(--space-1);
47
+ color: var(--color-text-muted);
48
+ cursor: pointer;
49
+ background: transparent;
50
+ border: none;
51
+ transition: color var(--transition);
52
+
53
+ &:hover {
54
+ color: var(--color-text);
55
+ }
56
+ }
57
+
58
+ .PaTree-togglePlaceholder {
59
+ width: 22px;
60
+ height: 14px;
61
+ }
62
+
63
+ .PaTree-checkbox {
64
+ display: flex;
65
+ flex-shrink: 0;
66
+ align-items: center;
67
+ justify-content: center;
68
+ width: 16px;
69
+ height: 16px;
70
+ margin: 0;
71
+ appearance: none;
72
+ background: var(--color-bg);
73
+ border: 1px solid var(--color-border);
74
+ border-radius: var(--radius-sm);
75
+ transition: all var(--transition);
76
+
77
+ &:hover {
78
+ border-color: var(--color-primary);
79
+ }
80
+
81
+ &:focus {
82
+ outline: none;
83
+ border-color: var(--color-primary);
84
+ box-shadow: 0 0 0 3px var(--color-primary-light);
85
+ }
86
+
87
+ &:checked {
88
+ background: var(--color-primary);
89
+ border-color: var(--color-primary);
90
+ }
91
+
92
+ &:checked::after {
93
+ display: block;
94
+ width: 4px;
95
+ height: 8px;
96
+ content: "";
97
+ border: solid var(--color-text-inverse);
98
+ border-width: 0 2px 2px 0;
99
+ transform: rotate(45deg);
100
+ }
101
+
102
+ &:disabled {
103
+ cursor: not-allowed;
104
+ opacity: 0.5;
105
+ }
106
+ }
107
+
108
+ .PaTree-labelWrapper {
109
+ display: flex;
110
+ flex: 1;
111
+ gap: var(--space-2);
112
+ align-items: center;
113
+ padding: 0;
114
+ font: inherit;
115
+ text-align: left;
116
+ background: none;
117
+ border: none;
118
+
119
+ &.selectable {
120
+ cursor: pointer;
121
+ }
122
+ }
123
+
124
+ .PaTree-icon {
125
+ flex-shrink: 0;
126
+ color: var(--color-text-muted);
127
+ }
128
+
129
+ .PaTree-label {
130
+ font-weight: var(--font-medium);
131
+ color: var(--color-text);
132
+ }
133
+
134
+ .PaTree-children {
135
+ position: relative;
136
+ padding-left: var(--space-6);
137
+ margin: 0;
138
+ list-style: none;
139
+ }
140
+
141
+ /* Tree connector lines */
142
+ .PaTree-children .PaTree-node::before {
143
+ position: absolute;
144
+ top: 0;
145
+ left: calc(var(--space-2) + 11px - var(--space-6));
146
+ height: 100%;
147
+ content: "";
148
+ border-left: 1.5px solid var(--color-border);
149
+ }
150
+
151
+ .PaTree-children .PaTree-node::after {
152
+ position: absolute;
153
+ top: 1rem;
154
+ left: calc(var(--space-2) + 11px - var(--space-6));
155
+ width: calc(var(--space-6));
156
+ content: "";
157
+ border-top: 1.5px solid var(--color-border);
158
+ }
159
+
160
+ .PaTree-children .PaTree-node:last-child::before {
161
+ height: 1rem;
162
+ }
@@ -0,0 +1,40 @@
1
+ /* ========================================
2
+ ParoiCMS Design System - Base Styles
3
+ Shared base styles after CSS reset
4
+ ======================================== */
5
+
6
+ /* ========================================
7
+ HTML & Body
8
+ ======================================== */
9
+ html {
10
+ font-size: 16px;
11
+ -webkit-font-smoothing: antialiased;
12
+ -moz-osx-font-smoothing: grayscale;
13
+ }
14
+
15
+ html,
16
+ body {
17
+ height: 100%;
18
+ overflow: hidden;
19
+ }
20
+
21
+ body {
22
+ font-family: var(--font-sans);
23
+ line-height: var(--leading-normal);
24
+ color: var(--color-text);
25
+ background: var(--color-bg);
26
+ }
27
+
28
+ /* ========================================
29
+ Interactive Elements
30
+ Restore cursor after CSS reset
31
+ ======================================== */
32
+ a {
33
+ color: inherit;
34
+ text-decoration: none;
35
+ cursor: pointer;
36
+ }
37
+
38
+ button {
39
+ cursor: pointer;
40
+ }
@@ -0,0 +1,410 @@
1
+ /* ========================================
2
+ ParoiCMS Design System - Common Styles
3
+ Layout and infrastructure styles
4
+ Used by Admin-UI and shared across components
5
+ ======================================== */
6
+
7
+ /* ========================================
8
+ Icon Wrapper (utility)
9
+ ======================================== */
10
+ .PaIcon {
11
+ display: inline-flex;
12
+ flex-shrink: 0;
13
+ width: 1em;
14
+ height: 1em;
15
+
16
+ & svg {
17
+ width: 100%;
18
+ height: 100%;
19
+ fill: currentColor;
20
+ }
21
+ }
22
+
23
+ /* ========================================
24
+ Context Utility Class
25
+ ======================================== */
26
+
27
+ /* ========================================
28
+ App Shell
29
+ ======================================== */
30
+ .PaApp {
31
+ display: flex;
32
+ height: 100vh;
33
+ overflow: hidden;
34
+ background: var(--color-bg-app);
35
+ }
36
+
37
+ .PaMainContent {
38
+ display: flex;
39
+ flex: 1;
40
+ flex-direction: column;
41
+ min-width: 0;
42
+ overflow: hidden;
43
+ }
44
+
45
+ /* ========================================
46
+ Sidebar
47
+ ======================================== */
48
+ .PaSidebar {
49
+ display: flex;
50
+ flex-shrink: 0;
51
+ flex-direction: column;
52
+ height: 100%;
53
+ overflow: hidden;
54
+ overflow-x: hidden;
55
+ }
56
+
57
+ .PaSidebar.dark {
58
+ color: var(--color-text-sidebar);
59
+ background: var(--color-bg-sidebar);
60
+ }
61
+
62
+ .PaSidebar.light {
63
+ width: var(--sidebar-secondary-width);
64
+ color: var(--color-text);
65
+ background: var(--color-bg-elevated);
66
+ border-right: 1px solid var(--color-border);
67
+ }
68
+
69
+ .PaSidebar-header {
70
+ display: flex;
71
+ flex-shrink: 0;
72
+ gap: var(--space-3);
73
+ align-items: center;
74
+ padding: var(--space-4) var(--space-5);
75
+ }
76
+
77
+ .PaSidebar.dark .PaSidebar-header {
78
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
79
+ }
80
+
81
+ .PaSidebar.light .PaSidebar-header {
82
+ background: var(--color-bg-subtle);
83
+ border-bottom: 1px solid var(--color-border-light);
84
+ }
85
+
86
+ .PaSidebar-logo {
87
+ display: flex;
88
+ flex-shrink: 0;
89
+ align-items: center;
90
+ justify-content: center;
91
+ width: 40px;
92
+ height: 40px;
93
+ overflow: hidden;
94
+ font-size: var(--text-lg);
95
+ font-weight: var(--font-bold);
96
+ color: var(--color-text-inverse);
97
+ background: var(--color-primary);
98
+ border-radius: var(--radius);
99
+ }
100
+
101
+ .PaSidebar-logo img {
102
+ width: 100%;
103
+ height: 100%;
104
+ object-fit: cover;
105
+ }
106
+
107
+ .PaSidebar-title {
108
+ flex: 1;
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ font-size: var(--text-base);
112
+ font-weight: var(--font-semibold);
113
+ white-space: nowrap;
114
+ }
115
+
116
+ .PaSidebar-viewSiteBtn {
117
+ display: flex;
118
+ flex-shrink: 0;
119
+ align-items: center;
120
+ justify-content: center;
121
+ width: 28px;
122
+ height: 28px;
123
+ padding: 0;
124
+ color: rgba(255, 255, 255, 0.7);
125
+ cursor: pointer;
126
+ background: transparent;
127
+ border: none;
128
+ border-radius: var(--radius-sm);
129
+ transition:
130
+ background-color 0.15s ease,
131
+ color 0.15s ease;
132
+
133
+ &:hover {
134
+ color: rgba(255, 255, 255, 1);
135
+ background: rgba(255, 255, 255, 0.1);
136
+ }
137
+ }
138
+
139
+ .PaSidebar-nav {
140
+ flex: 1;
141
+ padding: var(--space-4) 0;
142
+ overflow-y: auto;
143
+ }
144
+
145
+ .PaSidebar-footer {
146
+ flex-shrink: 0;
147
+ padding-top: var(--space-3);
148
+ }
149
+
150
+ .PaSidebar-userSection {
151
+ padding: var(--space-3) var(--space-5) var(--space-2);
152
+ }
153
+
154
+ .PaSidebar.dark .PaSidebar-footer {
155
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
156
+ }
157
+
158
+ .PaSidebar.light .PaSidebar-footer {
159
+ border-top: 1px solid var(--color-border-light);
160
+ }
161
+
162
+ .PaSidebar-separator {
163
+ margin: var(--space-3) var(--space-5);
164
+ }
165
+
166
+ .PaSidebar.dark .PaSidebar-separator {
167
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
168
+ }
169
+
170
+ .PaSidebar.light .PaSidebar-separator {
171
+ border-top: 1px solid var(--color-border-light);
172
+ }
173
+
174
+ .PaSidebar-version {
175
+ margin-top: var(--space-3);
176
+ font-size: var(--text-xs);
177
+ font-style: italic;
178
+ opacity: 0.6;
179
+ }
180
+
181
+ .PaSidebar.dark .PaSidebar-version {
182
+ color: var(--color-text-sidebar-muted);
183
+ }
184
+
185
+ /* User menu in sidebar */
186
+ .UserMenu-trigger {
187
+ display: flex;
188
+ gap: var(--space-3);
189
+ align-items: center;
190
+ width: 100%;
191
+ padding: var(--space-2) 0;
192
+ font-size: var(--text-sm);
193
+ color: var(--color-text-sidebar);
194
+ text-align: left;
195
+ cursor: pointer;
196
+ background: transparent;
197
+ border: none;
198
+ transition: all var(--transition);
199
+ }
200
+
201
+ .UserMenu-trigger:hover {
202
+ color: var(--color-text-sidebar);
203
+ background: var(--color-bg-sidebar-hover);
204
+ border-radius: var(--radius);
205
+ }
206
+
207
+ .UserMenu-icon {
208
+ flex-shrink: 0;
209
+ opacity: 0.7;
210
+ }
211
+
212
+ .UserMenu-name {
213
+ font-weight: var(--font-medium);
214
+ }
215
+
216
+ /* ========================================
217
+ Side Menu Item
218
+ ======================================== */
219
+ .PaSideMenuItem {
220
+ display: flex;
221
+ gap: var(--space-3);
222
+ align-items: center;
223
+ padding: var(--space-3) var(--space-5);
224
+ font-size: var(--text-sm);
225
+ cursor: pointer;
226
+ border-radius: 0;
227
+ transition: all var(--transition);
228
+ }
229
+
230
+ /* Dark sidebar context */
231
+ .PaSidebar.dark .PaSideMenuItem {
232
+ color: var(--color-text-sidebar-muted);
233
+ }
234
+
235
+ .PaSidebar.dark .PaSideMenuItem:hover {
236
+ color: var(--color-text-sidebar);
237
+ background: var(--color-hover-sidebar-dark);
238
+ }
239
+
240
+ .PaSidebar.dark .PaSideMenuItem.active {
241
+ color: var(--color-text-inverse);
242
+ background: var(--color-primary);
243
+ }
244
+
245
+ /* Light sidebar context */
246
+ .PaSidebar.light .PaSideMenuItem {
247
+ color: var(--color-text-muted);
248
+ }
249
+
250
+ .PaSidebar.light .PaSideMenuItem:hover {
251
+ color: var(--color-text);
252
+ background: var(--color-hover-sidebar-light);
253
+ }
254
+
255
+ .PaSidebar.light .PaSideMenuItem.active {
256
+ color: var(--color-primary-dark);
257
+ background: var(--color-primary-light);
258
+ }
259
+
260
+ .PaSideMenuItem-icon {
261
+ flex-shrink: 0;
262
+ width: 18px;
263
+ height: 18px;
264
+ opacity: 0.7;
265
+ }
266
+
267
+ .PaSideMenuItem.active .PaSideMenuItem-icon {
268
+ opacity: 1;
269
+ }
270
+
271
+ .PaSideMenuItem-label {
272
+ flex: 1;
273
+ overflow: hidden;
274
+ text-overflow: ellipsis;
275
+ white-space: nowrap;
276
+ }
277
+
278
+ .PaSideMenuItem-badge {
279
+ padding: var(--space-1) var(--space-2);
280
+ font-size: var(--text-xs);
281
+ font-weight: var(--font-medium);
282
+ border-radius: var(--radius-full);
283
+ }
284
+
285
+ .PaSidebar.dark .PaSideMenuItem-badge {
286
+ background: rgba(255, 255, 255, 0.15);
287
+ }
288
+
289
+ .PaSidebar.light .PaSideMenuItem-badge {
290
+ background: var(--color-bg-subtle);
291
+ border: 1px solid var(--color-border);
292
+ }
293
+
294
+ .PaSideMenuItem.child {
295
+ padding-left: var(--space-8);
296
+ }
297
+
298
+ .PaSideMenuItem.child .PaSideMenuItem-icon {
299
+ width: 16px;
300
+ height: 16px;
301
+ }
302
+
303
+ /* ========================================
304
+ Navbar
305
+ ======================================== */
306
+ .PaNavbar {
307
+ z-index: var(--z-sticky);
308
+ display: flex;
309
+ flex-shrink: 0;
310
+ justify-content: space-between;
311
+ height: var(--navbar-height);
312
+ background: var(--color-bg-elevated);
313
+ border-bottom: 1px solid var(--color-border);
314
+ }
315
+
316
+ .PaNavbar-group {
317
+ display: flex;
318
+ align-items: center;
319
+ /* gap: var(--space-4); */
320
+ }
321
+
322
+ .PaNavbar-item {
323
+ display: flex;
324
+ align-items: center;
325
+ height: 100%;
326
+ padding: 0 var(--space-6);
327
+
328
+ &.alignBottom {
329
+ align-items: flex-end;
330
+ }
331
+ }
332
+
333
+ .PaNavbar-item.withBorder,
334
+ .PaNavbar-group .PaNavbar-item:first-child {
335
+ /* padding-right: var(--space-4);
336
+ margin-right: -8px; */
337
+ border-right: 1px solid var(--color-border-light);
338
+ }
339
+
340
+ .PaNavbar-item:last-child {
341
+ border-right: none;
342
+ }
343
+
344
+ /* ========================================
345
+ Control Bar
346
+ ======================================== */
347
+ .PaControlBar {
348
+ display: flex;
349
+ gap: var(--space-3);
350
+ align-items: center;
351
+ justify-content: space-between;
352
+ height: var(--control-bar-height);
353
+ padding: 0 var(--space-5);
354
+ background: var(--color-bg-elevated);
355
+ border-bottom: 1px solid var(--color-border-light);
356
+ }
357
+
358
+ .PaControlBar-left {
359
+ display: flex;
360
+ flex: 1;
361
+ gap: var(--space-3);
362
+ align-items: center;
363
+ min-width: 0;
364
+ }
365
+
366
+ .PaControlBar-right {
367
+ display: flex;
368
+ flex-shrink: 0;
369
+ gap: var(--space-2);
370
+ align-items: center;
371
+ }
372
+
373
+ .PaControlBar-title {
374
+ overflow: hidden;
375
+ text-overflow: ellipsis;
376
+ font-size: var(--text-lg);
377
+ font-weight: var(--font-semibold);
378
+ white-space: nowrap;
379
+ }
380
+
381
+ .PaControlBar-subtitle {
382
+ font-size: var(--text-sm);
383
+ color: var(--color-text-muted);
384
+ }
385
+
386
+ /* ========================================
387
+ Field Panel
388
+ ======================================== */
389
+ .PaFieldPanel {
390
+ flex: 1;
391
+ padding: var(--space-6);
392
+ overflow-y: auto;
393
+ }
394
+
395
+ .PaFieldPanel-section {
396
+ margin-bottom: var(--space-6);
397
+ }
398
+
399
+ .PaFieldPanel-section:last-child {
400
+ margin-bottom: 0;
401
+ }
402
+
403
+ .PaFieldPanel-sectionTitle {
404
+ margin-bottom: var(--space-4);
405
+ font-size: var(--text-xs);
406
+ font-weight: var(--font-semibold);
407
+ color: var(--color-text-muted);
408
+ text-transform: uppercase;
409
+ letter-spacing: 0.05em;
410
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ParoiCMS React UI - Foundation Layers
3
+ *
4
+ * CSS cascade layers for foundation styles.
5
+ * Layer priority (lowest to highest): reset → tokens → base → common
6
+ * Component styles are unlayered and have highest priority.
7
+ */
8
+
9
+ @layer reset, tokens, base, common;
10
+
11
+ @import "./reset.css" layer(reset);
12
+ @import "./tokens.css" layer(tokens);
13
+ @import "./base.css" layer(base);
14
+ @import "./common.css" layer(common);
15
+ @import "./margins.css";