@frame-ui-ng/components 0.1.0-beta.0 → 0.3.0-beta.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 (100) hide show
  1. package/accordion/src/styles/_vars.css +25 -25
  2. package/accordion/src/styles/accordion.css +105 -87
  3. package/alert/src/styles/_vars.css +28 -28
  4. package/badge/src/styles/_vars.css +19 -16
  5. package/badge/src/styles/badge.css +132 -125
  6. package/breadcrumb/src/styles/_vars.css +17 -16
  7. package/breadcrumb/src/styles/breadcrumb.css +110 -98
  8. package/button/src/styles/_vars.css +20 -20
  9. package/button/src/styles/button.css +66 -9
  10. package/button-group/src/styles/button-group.css +100 -69
  11. package/calendar/src/styles/_vars.css +29 -29
  12. package/calendar/src/styles/calendar.css +247 -226
  13. package/card/src/styles/_vars.css +17 -17
  14. package/checkbox/src/styles/_vars.css +22 -22
  15. package/collapsible/src/styles/collapsible.css +55 -42
  16. package/combobox/src/styles/_vars.css +61 -60
  17. package/combobox/src/styles/combobox.css +295 -285
  18. package/command/src/styles/_vars.css +47 -37
  19. package/command/src/styles/command.css +236 -171
  20. package/date-picker/src/styles/_vars.css +30 -29
  21. package/date-picker/src/styles/date-picker.css +203 -177
  22. package/dropdown-menu/src/styles/_vars.css +34 -34
  23. package/dropdown-menu/src/styles/dropdown-menu-item.css +87 -87
  24. package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -11
  25. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-badge.mjs +1 -0
  27. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-button.mjs +1 -1
  29. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-calendar.mjs +369 -263
  31. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-command.mjs +20 -2
  33. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-date-picker.mjs +232 -226
  35. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  36. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +45 -22
  37. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-input.mjs +6 -3
  39. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-select.mjs +6 -3
  41. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  42. package/fesm2022/frame-ui-ng-components-sidebar.mjs +47 -4
  43. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-toast.mjs +152 -142
  45. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-tooltip.mjs +263 -254
  47. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components.mjs +745 -531
  49. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  50. package/input/src/styles/_vars.css +65 -65
  51. package/input/src/styles/input-group.css +164 -112
  52. package/input/src/styles/input.css +197 -163
  53. package/input-otp/src/styles/_vars.css +21 -21
  54. package/item/src/styles/_vars.css +34 -34
  55. package/menubar/src/styles/_vars.css +22 -22
  56. package/modal/src/styles/_vars.css +19 -18
  57. package/modal/src/styles/modal.css +202 -179
  58. package/navigation-menu/src/styles/_vars.css +45 -45
  59. package/package.json +12 -3
  60. package/pagination/src/styles/_vars.css +22 -22
  61. package/pagination/src/styles/pagination.css +158 -138
  62. package/progress/src/styles/_vars.css +15 -15
  63. package/radio-group/src/styles/_vars.css +29 -29
  64. package/radio-group/src/styles/radio-group.css +146 -137
  65. package/resizable/src/styles/_vars.css +20 -20
  66. package/select/src/styles/_vars.css +28 -28
  67. package/select/src/styles/select-trigger.css +109 -95
  68. package/separator/src/styles/_vars.css +9 -9
  69. package/sheet/src/styles/_vars.css +20 -18
  70. package/sheet/src/styles/sheet.css +220 -215
  71. package/sidebar/src/styles/sidebar.css +544 -531
  72. package/slider/src/styles/_vars.css +17 -17
  73. package/src/styles/blueprint.css +659 -0
  74. package/src/styles/components.css +47 -47
  75. package/styles/blueprint.css +659 -0
  76. package/styles/components.css +47 -47
  77. package/styles.css +49 -49
  78. package/switch/src/styles/_vars.css +34 -34
  79. package/switch/src/styles/switch.css +130 -131
  80. package/tabs/src/styles/_vars.css +23 -23
  81. package/textarea/src/styles/_vars.css +20 -20
  82. package/textarea/src/styles/textarea.css +62 -60
  83. package/toast/src/styles/_vars.css +48 -47
  84. package/toast/src/styles/toast.css +279 -314
  85. package/toggle/src/styles/_vars.css +24 -24
  86. package/tooltip/src/styles/_vars.css +21 -21
  87. package/tooltip/src/styles/tooltip.css +99 -103
  88. package/types/frame-ui-ng-components-accordion.d.ts +3 -1
  89. package/types/frame-ui-ng-components-badge.d.ts +2 -2
  90. package/types/frame-ui-ng-components-calendar.d.ts +14 -0
  91. package/types/frame-ui-ng-components-command.d.ts +7 -2
  92. package/types/frame-ui-ng-components-context-menu.d.ts +2 -2
  93. package/types/frame-ui-ng-components-date-picker.d.ts +3 -1
  94. package/types/frame-ui-ng-components-dropdown-menu.d.ts +3 -3
  95. package/types/frame-ui-ng-components-input.d.ts +6 -3
  96. package/types/frame-ui-ng-components-select.d.ts +6 -3
  97. package/types/frame-ui-ng-components-sidebar.d.ts +8 -1
  98. package/types/frame-ui-ng-components-tooltip.d.ts +43 -73
  99. package/types/frame-ui-ng-components.d.ts +91 -55
  100. package/virtual-scroll/src/styles/virtual-scroll.css +54 -54
@@ -1,531 +1,544 @@
1
- @import "./_vars.css";
2
-
3
- [frSidebarProvider],
4
- frame-sidebar-provider {
5
- display: grid;
6
- height: 100%;
7
- min-height: 0;
8
- overflow: hidden;
9
- grid-template-columns: auto minmax(0, 1fr);
10
- grid-template-rows: minmax(0, 1fr);
11
- align-items: stretch;
12
- color: var(--frame-sidebar-color);
13
- }
14
-
15
- [frSidebarProvider]:has([frSidebar][data-side="right"]),
16
- frame-sidebar-provider:has(frame-sidebar[data-side="right"]) {
17
- grid-template-columns: minmax(0, 1fr) auto;
18
- }
19
-
20
- [frSidebarProvider][data-resizing],
21
- frame-sidebar-provider[data-resizing] {
22
- cursor: ew-resize;
23
- user-select: none;
24
- }
25
-
26
- [frSidebarProvider][data-resizing] [frSidebar],
27
- frame-sidebar-provider[data-resizing] frame-sidebar {
28
- transition: none;
29
- }
30
-
31
- [frSidebar],
32
- frame-sidebar {
33
- position: relative;
34
- grid-column: 1;
35
- grid-row: 1;
36
- display: flex;
37
- width: var(--frame-sidebar-width);
38
- height: auto;
39
- min-height: 0;
40
- max-height: 100%;
41
- align-self: stretch;
42
- flex-direction: column;
43
- gap: var(--frame-sidebar-gap);
44
- overflow: hidden;
45
- border-inline-end: 1px solid var(--frame-sidebar-border);
46
- background: var(--frame-sidebar-bg);
47
- color: var(--frame-sidebar-color);
48
- transition:
49
- width var(--frame-sidebar-transition-duration) ease,
50
- transform var(--frame-sidebar-transition-duration) ease,
51
- margin var(--frame-sidebar-transition-duration) ease;
52
- }
53
-
54
- [frSidebar][data-side="right"],
55
- frame-sidebar[data-side="right"] {
56
- grid-column: 2;
57
- grid-row: 1;
58
- border-inline-start: 1px solid var(--frame-sidebar-border);
59
- border-inline-end: 0;
60
- }
61
-
62
- [frSidebarInset],
63
- frame-sidebar-inset {
64
- grid-column: 2;
65
- grid-row: 1;
66
- min-width: 0;
67
- min-height: 0;
68
- overflow: auto;
69
- background: var(--frame-background, transparent);
70
- }
71
-
72
- [frSidebar][data-side="right"] + [frSidebarInset],
73
- [frSidebar][data-side="right"] + main[frSidebarInset] {
74
- grid-column: 1;
75
- grid-row: 1;
76
- }
77
-
78
- [frSidebar][data-side="right"] + main,
79
- frame-sidebar[data-side="right"] + main {
80
- grid-column: 1;
81
- grid-row: 1;
82
- }
83
-
84
- [frSidebar][data-side="right"] ~ [frSidebarInset],
85
- frame-sidebar[data-side="right"] ~ frame-sidebar-inset {
86
- grid-column: 1;
87
- grid-row: 1;
88
- }
89
-
90
- [frSidebar][data-variant="floating"],
91
- frame-sidebar[data-variant="floating"],
92
- [frSidebar][data-variant="inset"],
93
- frame-sidebar[data-variant="inset"] {
94
- max-height: calc(100% - (var(--frame-sidebar-margin) * 2));
95
- margin: var(--frame-sidebar-margin);
96
- border: 1px solid var(--frame-sidebar-border);
97
- border-radius: var(--frame-sidebar-radius);
98
- box-shadow: var(--frame-sidebar-shadow);
99
- }
100
-
101
- [frSidebar][data-collapsible="icon"][data-state="collapsed"],
102
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] {
103
- width: var(--frame-sidebar-width-icon);
104
- }
105
-
106
- [frSidebar][data-collapsible="offcanvas"][data-state="collapsed"],
107
- frame-sidebar[data-collapsible="offcanvas"][data-state="collapsed"] {
108
- width: 0;
109
- min-width: 0;
110
- margin: 0;
111
- overflow: hidden;
112
- border: 0;
113
- opacity: 0;
114
- pointer-events: none;
115
- transform: translateX(-100%);
116
- visibility: hidden;
117
- }
118
-
119
- [frSidebar][data-side="right"][data-collapsible="offcanvas"][data-state="collapsed"],
120
- frame-sidebar[data-side="right"][data-collapsible="offcanvas"][data-state="collapsed"] {
121
- transform: translateX(100%);
122
- }
123
-
124
- [frSidebar][data-collapsible="offcanvas"][data-state="collapsed"] [frSidebarRail],
125
- frame-sidebar[data-collapsible="offcanvas"][data-state="collapsed"] frame-sidebar-rail {
126
- display: none;
127
- }
128
-
129
- [frSidebar][data-collapsible="none"],
130
- frame-sidebar[data-collapsible="none"] {
131
- width: var(--frame-sidebar-width);
132
- transform: none;
133
- }
134
-
135
- [frSidebarHeader],
136
- frame-sidebar-header,
137
- [frSidebarFooter],
138
- frame-sidebar-footer {
139
- display: grid;
140
- flex: 0 0 auto;
141
- gap: 0.5rem;
142
- padding: var(--frame-sidebar-padding);
143
- }
144
-
145
- [frSidebarHeader],
146
- frame-sidebar-header {
147
- border-block-end: 1px solid color-mix(in srgb, var(--frame-sidebar-border) 70%, transparent);
148
- }
149
-
150
- [frSidebarFooter],
151
- frame-sidebar-footer {
152
- margin-block-start: auto;
153
- border-block-start: 1px solid color-mix(in srgb, var(--frame-sidebar-border) 70%, transparent);
154
- }
155
-
156
- [frSidebarContent],
157
- frame-sidebar-content {
158
- display: flex;
159
- min-height: 0;
160
- flex: 1 1 auto;
161
- flex-direction: column;
162
- gap: 0.75rem;
163
- overflow-x: hidden;
164
- overflow-y: auto;
165
- padding: var(--frame-sidebar-padding);
166
- }
167
-
168
- [frSidebarGroup],
169
- frame-sidebar-group {
170
- position: relative;
171
- display: grid;
172
- gap: 0.35rem;
173
- }
174
-
175
- [frSidebarGroupLabel],
176
- frame-sidebar-group-label {
177
- display: flex;
178
- min-height: 1.75rem;
179
- align-items: center;
180
- gap: 0.5rem;
181
- padding-inline: 0.625rem;
182
- color: var(--frame-sidebar-muted-color);
183
- font-size: 0.75rem;
184
- font-weight: 650;
185
- letter-spacing: 0.04em;
186
- text-transform: uppercase;
187
- }
188
-
189
- [frSidebarGroupAction],
190
- frame-sidebar-group-action {
191
- position: absolute;
192
- inset-block-start: 0;
193
- inset-inline-end: 0.25rem;
194
- display: inline-grid;
195
- width: 1.75rem;
196
- height: 1.75rem;
197
- place-items: center;
198
- border: 0;
199
- border-radius: var(--frame-sidebar-menu-button-radius);
200
- background: transparent;
201
- color: var(--frame-sidebar-muted-color);
202
- cursor: pointer;
203
- }
204
-
205
- [frSidebarGroupAction]:hover,
206
- frame-sidebar-group-action:hover {
207
- background: var(--frame-sidebar-accent);
208
- color: var(--frame-sidebar-accent-color);
209
- }
210
-
211
- [frSidebarGroupContent],
212
- frame-sidebar-group-content {
213
- display: grid;
214
- gap: 0.25rem;
215
- }
216
-
217
- [frSidebarMenu],
218
- frame-sidebar-menu,
219
- [frSidebarMenuSub],
220
- frame-sidebar-menu-sub {
221
- display: grid;
222
- gap: 0.125rem;
223
- margin: 0;
224
- padding: 0;
225
- list-style: none;
226
- }
227
-
228
- [frSidebarMenuItem],
229
- frame-sidebar-menu-item {
230
- position: relative;
231
- display: grid;
232
- min-width: 0;
233
- }
234
-
235
- [frSidebarMenuButton],
236
- frame-sidebar-menu-button,
237
- [frSidebarMenuSubButton],
238
- frame-sidebar-menu-sub-button {
239
- display: flex;
240
- min-width: 0;
241
- align-items: center;
242
- gap: 0.625rem;
243
- border: 0;
244
- border-radius: var(--frame-sidebar-menu-button-radius);
245
- background: transparent;
246
- color: var(--frame-sidebar-color);
247
- cursor: pointer;
248
- font: inherit;
249
- text-align: start;
250
- text-decoration: none;
251
- transition:
252
- background-color 120ms ease,
253
- color 120ms ease;
254
- }
255
-
256
- [frSidebarMenuButton],
257
- frame-sidebar-menu-button {
258
- min-height: var(--frame-sidebar-menu-button-height);
259
- padding: 0.375rem 0.625rem;
260
- font-size: 0.875rem;
261
- }
262
-
263
- [frSidebarMenuButton] > ng-icon,
264
- frame-sidebar-menu-button > ng-icon,
265
- [frSidebarMenuSubButton] > ng-icon,
266
- frame-sidebar-menu-sub-button > ng-icon {
267
- flex: 0 0 auto;
268
- }
269
-
270
- [frSidebarMenuButton][data-size="sm"],
271
- frame-sidebar-menu-button[data-size="sm"] {
272
- min-height: 1.75rem;
273
- font-size: 0.8125rem;
274
- }
275
-
276
- [frSidebarMenuButton][data-size="lg"],
277
- frame-sidebar-menu-button[data-size="lg"] {
278
- min-height: 2.75rem;
279
- }
280
-
281
- [frSidebarMenuButton][data-variant="outline"],
282
- frame-sidebar-menu-button[data-variant="outline"] {
283
- border: 1px solid var(--frame-sidebar-border);
284
- }
285
-
286
- [frSidebarMenuButton]:hover,
287
- frame-sidebar-menu-button:hover,
288
- [frSidebarMenuSubButton]:hover,
289
- frame-sidebar-menu-sub-button:hover {
290
- background: var(--frame-sidebar-accent);
291
- color: var(--frame-sidebar-accent-color);
292
- }
293
-
294
- [frSidebarMenuButton][data-active],
295
- frame-sidebar-menu-button[data-active],
296
- [frSidebarMenuSubButton][data-active],
297
- frame-sidebar-menu-sub-button[data-active] {
298
- background: var(--frame-sidebar-primary);
299
- color: var(--frame-sidebar-primary-color);
300
- font-weight: 650;
301
- }
302
-
303
- [frSidebarMenuButton][data-disabled],
304
- frame-sidebar-menu-button[data-disabled],
305
- [frSidebarMenuSubButton][data-disabled],
306
- frame-sidebar-menu-sub-button[data-disabled] {
307
- cursor: not-allowed;
308
- opacity: 0.5;
309
- }
310
-
311
- [frSidebarMenuButton] > span,
312
- frame-sidebar-menu-button > span {
313
- overflow: hidden;
314
- text-overflow: ellipsis;
315
- white-space: nowrap;
316
- }
317
-
318
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarGroupLabel],
319
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-group-label,
320
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuButton] > span,
321
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-button > span,
322
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuBadge],
323
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-badge,
324
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuAction],
325
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-action,
326
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuSub],
327
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-sub {
328
- display: none;
329
- pointer-events: none;
330
- }
331
-
332
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuButton],
333
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-button {
334
- display: grid;
335
- width: 100%;
336
- min-width: 0;
337
- justify-content: center;
338
- place-items: center;
339
- gap: 0;
340
- padding-inline: 0.5rem;
341
- }
342
-
343
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarHeader],
344
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-header,
345
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarFooter],
346
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-footer,
347
- [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarContent],
348
- frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-content {
349
- align-items: stretch;
350
- padding-inline: 0.375rem;
351
- }
352
-
353
- [frSidebarMenuAction],
354
- frame-sidebar-menu-action {
355
- position: absolute;
356
- inset-block-start: 0.25rem;
357
- inset-inline-end: 0.25rem;
358
- display: inline-grid;
359
- width: 1.5rem;
360
- height: 1.5rem;
361
- place-items: center;
362
- border: 0;
363
- border-radius: var(--frame-sidebar-menu-button-radius);
364
- background: transparent;
365
- color: var(--frame-sidebar-muted-color);
366
- cursor: pointer;
367
- }
368
-
369
- [frSidebarMenuAction]:hover,
370
- frame-sidebar-menu-action:hover {
371
- background: var(--frame-sidebar-accent);
372
- color: var(--frame-sidebar-accent-color);
373
- }
374
-
375
- [frSidebarMenuAction][data-show-on-hover],
376
- frame-sidebar-menu-action[data-show-on-hover] {
377
- opacity: 0;
378
- }
379
-
380
- [frSidebarMenuItem]:hover [frSidebarMenuAction][data-show-on-hover],
381
- frame-sidebar-menu-item:hover frame-sidebar-menu-action[data-show-on-hover],
382
- [frSidebarMenuButton][data-active] + [frSidebarMenuAction],
383
- frame-sidebar-menu-button[data-active] + frame-sidebar-menu-action {
384
- opacity: 1;
385
- }
386
-
387
- [frSidebarMenuBadge],
388
- frame-sidebar-menu-badge {
389
- position: absolute;
390
- inset-block-start: 0.375rem;
391
- inset-inline-end: 0.5rem;
392
- min-width: 1.25rem;
393
- border-radius: 999px;
394
- color: var(--frame-sidebar-muted-color);
395
- font-size: 0.75rem;
396
- font-weight: 650;
397
- text-align: center;
398
- }
399
-
400
- [frSidebarMenuSub],
401
- frame-sidebar-menu-sub {
402
- margin-inline-start: 1.25rem;
403
- padding-inline-start: 0.75rem;
404
- border-inline-start: 1px solid var(--frame-sidebar-border);
405
- }
406
-
407
- [frSidebarMenuSubButton],
408
- frame-sidebar-menu-sub-button {
409
- min-height: 1.75rem;
410
- padding: 0.25rem 0.5rem;
411
- color: var(--frame-sidebar-muted-color);
412
- font-size: 0.8125rem;
413
- }
414
-
415
- [frSidebarMenuSkeleton],
416
- frame-sidebar-menu-skeleton {
417
- display: flex;
418
- align-items: center;
419
- gap: 0.625rem;
420
- height: var(--frame-sidebar-menu-button-height);
421
- padding-inline: 0.625rem;
422
- }
423
-
424
- [frSidebarMenuSkeleton]::after,
425
- frame-sidebar-menu-skeleton::after {
426
- width: var(--frame-sidebar-skeleton-width, 72%);
427
- height: 0.75rem;
428
- border-radius: 999px;
429
- background: var(--frame-sidebar-accent);
430
- content: "";
431
- }
432
-
433
- [frSidebarMenuSkeleton][data-show-icon]::before,
434
- frame-sidebar-menu-skeleton[data-show-icon]::before {
435
- width: 1rem;
436
- height: 1rem;
437
- flex: 0 0 auto;
438
- border-radius: 0.25rem;
439
- background: var(--frame-sidebar-accent);
440
- content: "";
441
- }
442
-
443
- [frSidebarTrigger],
444
- frame-sidebar-trigger {
445
- display: inline-flex;
446
- align-items: center;
447
- justify-content: center;
448
- min-width: 2rem;
449
- min-height: 2rem;
450
- border: 1px solid var(--frame-sidebar-border);
451
- border-radius: var(--frame-sidebar-menu-button-radius);
452
- background: var(--frame-sidebar-bg);
453
- color: var(--frame-sidebar-color);
454
- cursor: pointer;
455
- }
456
-
457
- [frSidebarTrigger]:hover,
458
- frame-sidebar-trigger:hover {
459
- background: var(--frame-sidebar-accent);
460
- }
461
-
462
- [frSidebarRail],
463
- frame-sidebar-rail {
464
- position: absolute;
465
- inset-block: 0;
466
- inset-inline-end: -0.375rem;
467
- z-index: 1;
468
- width: 0.75rem;
469
- cursor: ew-resize;
470
- }
471
-
472
- [frSidebar][data-side="right"] [frSidebarRail],
473
- frame-sidebar[data-side="right"] frame-sidebar-rail {
474
- inset-inline: -0.375rem auto;
475
- }
476
-
477
- [frSidebarRail]::after,
478
- frame-sidebar-rail::after {
479
- position: absolute;
480
- inset-block: 1rem;
481
- inset-inline-start: 50%;
482
- width: 2px;
483
- border-radius: 999px;
484
- background: transparent;
485
- content: "";
486
- transform: translateX(-50%);
487
- }
488
-
489
- [frSidebarRail]:hover::after,
490
- frame-sidebar-rail:hover::after {
491
- background: var(--frame-sidebar-border);
492
- }
493
-
494
- @media (max-width: 768px) {
495
- [frSidebarProvider],
496
- frame-sidebar-provider {
497
- display: block;
498
- }
499
-
500
- [frSidebar],
501
- frame-sidebar {
502
- position: fixed;
503
- inset-block: 0;
504
- inset-inline-start: 0;
505
- z-index: var(--frame-sidebar-z-index);
506
- width: var(--frame-sidebar-width-mobile);
507
- max-width: 85vw;
508
- min-height: 100dvh;
509
- border-inline-end: 1px solid var(--frame-sidebar-border);
510
- box-shadow: var(--frame-sidebar-shadow);
511
- transform: translateX(-100%);
512
- }
513
-
514
- [frSidebar][data-side="right"],
515
- frame-sidebar[data-side="right"] {
516
- inset-inline: auto 0;
517
- transform: translateX(100%);
518
- }
519
-
520
- [frSidebar][data-mobile-open="true"],
521
- frame-sidebar[data-mobile-open="true"] {
522
- transform: translateX(0);
523
- }
524
- }
525
-
526
- @media (prefers-reduced-motion: reduce) {
527
- [frSidebar],
528
- frame-sidebar {
529
- transition-duration: 1ms;
530
- }
531
- }
1
+ @import "./_vars.css";
2
+
3
+ [frSidebarProvider],
4
+ frame-sidebar-provider {
5
+ display: grid;
6
+ height: 100%;
7
+ min-height: 0;
8
+ overflow: hidden;
9
+ grid-template-columns: auto minmax(0, 1fr);
10
+ grid-template-rows: minmax(0, 1fr);
11
+ align-items: stretch;
12
+ color: var(--frame-sidebar-color);
13
+ }
14
+
15
+ [frSidebarProvider]:has([frSidebar][data-side="right"]),
16
+ frame-sidebar-provider:has(frame-sidebar[data-side="right"]) {
17
+ grid-template-columns: minmax(0, 1fr) auto;
18
+ }
19
+
20
+ [frSidebarProvider][data-resizing],
21
+ frame-sidebar-provider[data-resizing] {
22
+ cursor: ew-resize;
23
+ user-select: none;
24
+ }
25
+
26
+ [frSidebarProvider][data-resizing] [frSidebar],
27
+ frame-sidebar-provider[data-resizing] frame-sidebar {
28
+ transition: none;
29
+ }
30
+
31
+ [frSidebar],
32
+ frame-sidebar {
33
+ position: relative;
34
+ grid-column: 1;
35
+ grid-row: 1;
36
+ display: flex;
37
+ width: var(--frame-sidebar-width);
38
+ height: auto;
39
+ min-height: 0;
40
+ max-height: 100%;
41
+ align-self: stretch;
42
+ flex-direction: column;
43
+ gap: var(--frame-sidebar-gap);
44
+ overflow: hidden;
45
+ border-inline-end: 1px solid var(--frame-sidebar-border);
46
+ background: var(--frame-sidebar-bg);
47
+ box-shadow: none;
48
+ color: var(--frame-sidebar-color);
49
+ transition:
50
+ width var(--frame-sidebar-transition-duration) ease,
51
+ transform var(--frame-sidebar-transition-duration) ease,
52
+ margin var(--frame-sidebar-transition-duration) ease;
53
+ }
54
+
55
+ [frSidebar][data-side="right"],
56
+ frame-sidebar[data-side="right"] {
57
+ grid-column: 2;
58
+ grid-row: 1;
59
+ border-inline-start: 1px solid var(--frame-sidebar-border);
60
+ border-inline-end: 0;
61
+ }
62
+
63
+ [frSidebarInset],
64
+ frame-sidebar-inset {
65
+ grid-column: 2;
66
+ grid-row: 1;
67
+ min-width: 0;
68
+ min-height: 0;
69
+ overflow: auto;
70
+ background: var(--frame-background, transparent);
71
+ }
72
+
73
+ [frSidebar][data-side="right"] + [frSidebarInset],
74
+ [frSidebar][data-side="right"] + main[frSidebarInset] {
75
+ grid-column: 1;
76
+ grid-row: 1;
77
+ }
78
+
79
+ [frSidebar][data-side="right"] + main,
80
+ frame-sidebar[data-side="right"] + main {
81
+ grid-column: 1;
82
+ grid-row: 1;
83
+ }
84
+
85
+ [frSidebar][data-side="right"] ~ [frSidebarInset],
86
+ frame-sidebar[data-side="right"] ~ frame-sidebar-inset {
87
+ grid-column: 1;
88
+ grid-row: 1;
89
+ }
90
+
91
+ [frSidebar][data-variant="floating"],
92
+ frame-sidebar[data-variant="floating"],
93
+ [frSidebar][data-variant="inset"],
94
+ frame-sidebar[data-variant="inset"] {
95
+ max-height: calc(100% - (var(--frame-sidebar-margin) * 2));
96
+ margin: var(--frame-sidebar-margin);
97
+ border: 1px solid var(--frame-sidebar-border);
98
+ border-radius: var(--frame-sidebar-radius);
99
+ box-shadow: var(--frame-sidebar-shadow), var(--frame-shadow-frame);
100
+ }
101
+
102
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"],
103
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] {
104
+ width: var(--frame-sidebar-width-icon);
105
+ }
106
+
107
+ [frSidebar][data-collapsible="offcanvas"][data-state="collapsed"],
108
+ frame-sidebar[data-collapsible="offcanvas"][data-state="collapsed"] {
109
+ width: 0;
110
+ min-width: 0;
111
+ margin: 0;
112
+ overflow: hidden;
113
+ border: 0;
114
+ opacity: 0;
115
+ pointer-events: none;
116
+ transform: translateX(-100%);
117
+ visibility: hidden;
118
+ }
119
+
120
+ [frSidebar][data-side="right"][data-collapsible="offcanvas"][data-state="collapsed"],
121
+ frame-sidebar[data-side="right"][data-collapsible="offcanvas"][data-state="collapsed"] {
122
+ transform: translateX(100%);
123
+ }
124
+
125
+ [frSidebar][data-collapsible="offcanvas"][data-state="collapsed"] [frSidebarRail],
126
+ frame-sidebar[data-collapsible="offcanvas"][data-state="collapsed"] frame-sidebar-rail {
127
+ display: none;
128
+ }
129
+
130
+ [frSidebar][data-collapsible="none"],
131
+ frame-sidebar[data-collapsible="none"] {
132
+ width: var(--frame-sidebar-width);
133
+ transform: none;
134
+ }
135
+
136
+ [frSidebarHeader],
137
+ frame-sidebar-header,
138
+ [frSidebarFooter],
139
+ frame-sidebar-footer {
140
+ display: grid;
141
+ flex: 0 0 auto;
142
+ gap: 0.5rem;
143
+ padding: var(--frame-sidebar-padding);
144
+ }
145
+
146
+ [frSidebarHeader],
147
+ frame-sidebar-header {
148
+ border-block-end: 1px solid color-mix(in srgb, var(--frame-sidebar-border) 70%, transparent);
149
+ }
150
+
151
+ [frSidebarFooter],
152
+ frame-sidebar-footer {
153
+ margin-block-start: auto;
154
+ border-block-start: 1px solid color-mix(in srgb, var(--frame-sidebar-border) 70%, transparent);
155
+ }
156
+
157
+ [frSidebarContent],
158
+ frame-sidebar-content {
159
+ display: flex;
160
+ min-height: 0;
161
+ flex: 1 1 auto;
162
+ flex-direction: column;
163
+ gap: 0.75rem;
164
+ overflow-x: hidden;
165
+ overflow-y: auto;
166
+ padding: var(--frame-sidebar-padding);
167
+ }
168
+
169
+ [frSidebarGroup],
170
+ frame-sidebar-group {
171
+ position: relative;
172
+ display: grid;
173
+ gap: 0.35rem;
174
+ }
175
+
176
+ [frSidebarGroupLabel],
177
+ frame-sidebar-group-label {
178
+ display: flex;
179
+ min-height: 1.75rem;
180
+ align-items: center;
181
+ gap: 0.5rem;
182
+ padding-inline: 0.625rem;
183
+ color: var(--frame-frame-accent);
184
+ font-size: 0.6875rem;
185
+ font-weight: 650;
186
+ letter-spacing: 0.08em;
187
+ text-transform: uppercase;
188
+ }
189
+
190
+ [frSidebarGroupAction],
191
+ frame-sidebar-group-action {
192
+ position: absolute;
193
+ inset-block-start: 0;
194
+ inset-inline-end: 0.25rem;
195
+ display: inline-grid;
196
+ width: 1.75rem;
197
+ height: 1.75rem;
198
+ place-items: center;
199
+ border: 0;
200
+ border-radius: var(--frame-sidebar-menu-button-radius);
201
+ background: transparent;
202
+ color: var(--frame-sidebar-muted-color);
203
+ cursor: pointer;
204
+ }
205
+
206
+ [frSidebarGroupAction]:hover,
207
+ frame-sidebar-group-action:hover {
208
+ background: var(--frame-sidebar-accent);
209
+ color: var(--frame-sidebar-accent-color);
210
+ }
211
+
212
+ [frSidebarGroupContent],
213
+ frame-sidebar-group-content {
214
+ display: grid;
215
+ gap: 0.25rem;
216
+ }
217
+
218
+ [frSidebarMenu],
219
+ frame-sidebar-menu,
220
+ [frSidebarMenuSub],
221
+ frame-sidebar-menu-sub {
222
+ display: grid;
223
+ gap: 0.125rem;
224
+ margin: 0;
225
+ padding: 0;
226
+ list-style: none;
227
+ }
228
+
229
+ [frSidebarMenuItem],
230
+ frame-sidebar-menu-item {
231
+ position: relative;
232
+ display: grid;
233
+ min-width: 0;
234
+ }
235
+
236
+ [frSidebarMenuButton],
237
+ frame-sidebar-menu-button,
238
+ [frSidebarMenuSubButton],
239
+ frame-sidebar-menu-sub-button {
240
+ display: flex;
241
+ min-width: 0;
242
+ align-items: center;
243
+ gap: 0.625rem;
244
+ border: 1px solid transparent;
245
+ border-radius: var(--frame-sidebar-menu-button-radius);
246
+ background: transparent;
247
+ color: var(--frame-sidebar-color);
248
+ cursor: pointer;
249
+ font: inherit;
250
+ text-align: start;
251
+ text-decoration: none;
252
+ transition:
253
+ background-color 120ms ease,
254
+ color 120ms ease;
255
+ }
256
+
257
+ [frSidebarMenuButton],
258
+ frame-sidebar-menu-button {
259
+ min-height: var(--frame-sidebar-menu-button-height);
260
+ padding: 0.375rem 0.625rem;
261
+ font-size: 0.875rem;
262
+ }
263
+
264
+ [frSidebarMenuButton] > ng-icon,
265
+ frame-sidebar-menu-button > ng-icon,
266
+ [frSidebarMenuSubButton] > ng-icon,
267
+ frame-sidebar-menu-sub-button > ng-icon {
268
+ flex: 0 0 auto;
269
+ }
270
+
271
+ [frSidebarMenuButton][data-size="sm"],
272
+ frame-sidebar-menu-button[data-size="sm"] {
273
+ min-height: 1.75rem;
274
+ font-size: 0.8125rem;
275
+ }
276
+
277
+ [frSidebarMenuButton][data-size="lg"],
278
+ frame-sidebar-menu-button[data-size="lg"] {
279
+ min-height: 2.75rem;
280
+ }
281
+
282
+ [frSidebarMenuButton][data-variant="outline"],
283
+ frame-sidebar-menu-button[data-variant="outline"] {
284
+ border: 1px solid var(--frame-sidebar-border);
285
+ }
286
+
287
+ [frSidebarMenuButton]:hover,
288
+ frame-sidebar-menu-button:hover,
289
+ [frSidebarMenuSubButton]:hover,
290
+ frame-sidebar-menu-sub-button:hover {
291
+ border-color: var(--frame-frame-line-muted);
292
+ background: var(--frame-sidebar-accent);
293
+ color: var(--frame-sidebar-accent-color);
294
+ }
295
+
296
+ [frSidebarMenuButton][data-active],
297
+ frame-sidebar-menu-button[data-active],
298
+ [frSidebarMenuSubButton][data-active],
299
+ frame-sidebar-menu-sub-button[data-active] {
300
+ border-color: color-mix(in srgb, var(--frame-frame-accent) 55%, var(--frame-sidebar-border));
301
+ background: color-mix(in srgb, var(--frame-frame-accent) 9%, var(--frame-sidebar-bg));
302
+ color: var(--frame-sidebar-color);
303
+ font-weight: 650;
304
+ }
305
+
306
+ [frSidebarMenuButton][data-active]::before,
307
+ frame-sidebar-menu-button[data-active]::before,
308
+ [frSidebarMenuSubButton][data-active]::before,
309
+ frame-sidebar-menu-sub-button[data-active]::before {
310
+ inline-size: 2px;
311
+ align-self: stretch;
312
+ background: var(--frame-frame-accent);
313
+ content: "";
314
+ }
315
+
316
+ [frSidebarMenuButton][data-disabled],
317
+ frame-sidebar-menu-button[data-disabled],
318
+ [frSidebarMenuSubButton][data-disabled],
319
+ frame-sidebar-menu-sub-button[data-disabled] {
320
+ cursor: not-allowed;
321
+ opacity: 0.5;
322
+ }
323
+
324
+ [frSidebarMenuButton] > span,
325
+ frame-sidebar-menu-button > span {
326
+ overflow: hidden;
327
+ text-overflow: ellipsis;
328
+ white-space: nowrap;
329
+ }
330
+
331
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarGroupLabel],
332
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-group-label,
333
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuButton] > span,
334
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-button > span,
335
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuBadge],
336
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-badge,
337
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuAction],
338
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-action,
339
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuSub],
340
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-sub {
341
+ display: none;
342
+ pointer-events: none;
343
+ }
344
+
345
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarMenuButton],
346
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-menu-button {
347
+ display: grid;
348
+ width: 100%;
349
+ min-width: 0;
350
+ justify-content: center;
351
+ place-items: center;
352
+ gap: 0;
353
+ padding-inline: 0.5rem;
354
+ }
355
+
356
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarHeader],
357
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-header,
358
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarFooter],
359
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-footer,
360
+ [frSidebar][data-collapsible="icon"][data-state="collapsed"] [frSidebarContent],
361
+ frame-sidebar[data-collapsible="icon"][data-state="collapsed"] frame-sidebar-content {
362
+ align-items: stretch;
363
+ padding-inline: 0.375rem;
364
+ }
365
+
366
+ [frSidebarMenuAction],
367
+ frame-sidebar-menu-action {
368
+ position: absolute;
369
+ inset-block-start: 0.25rem;
370
+ inset-inline-end: 0.25rem;
371
+ display: inline-grid;
372
+ width: 1.5rem;
373
+ height: 1.5rem;
374
+ place-items: center;
375
+ border: 0;
376
+ border-radius: var(--frame-sidebar-menu-button-radius);
377
+ background: transparent;
378
+ color: var(--frame-sidebar-muted-color);
379
+ cursor: pointer;
380
+ }
381
+
382
+ [frSidebarMenuAction]:hover,
383
+ frame-sidebar-menu-action:hover {
384
+ background: var(--frame-sidebar-accent);
385
+ color: var(--frame-sidebar-accent-color);
386
+ }
387
+
388
+ [frSidebarMenuAction][data-show-on-hover],
389
+ frame-sidebar-menu-action[data-show-on-hover] {
390
+ opacity: 0;
391
+ }
392
+
393
+ [frSidebarMenuItem]:hover [frSidebarMenuAction][data-show-on-hover],
394
+ frame-sidebar-menu-item:hover frame-sidebar-menu-action[data-show-on-hover],
395
+ [frSidebarMenuButton][data-active] + [frSidebarMenuAction],
396
+ frame-sidebar-menu-button[data-active] + frame-sidebar-menu-action {
397
+ opacity: 1;
398
+ }
399
+
400
+ [frSidebarMenuBadge],
401
+ frame-sidebar-menu-badge {
402
+ position: absolute;
403
+ inset-block-start: 0.375rem;
404
+ inset-inline-end: 0.5rem;
405
+ min-width: 1.25rem;
406
+ border-radius: 999px;
407
+ color: var(--frame-sidebar-muted-color);
408
+ font-size: 0.75rem;
409
+ font-weight: 650;
410
+ text-align: center;
411
+ }
412
+
413
+ [frSidebarMenuSub],
414
+ frame-sidebar-menu-sub {
415
+ margin-inline-start: 1.25rem;
416
+ padding-inline-start: 0.75rem;
417
+ border-inline-start: 1px solid var(--frame-sidebar-border);
418
+ }
419
+
420
+ [frSidebarMenuSubButton],
421
+ frame-sidebar-menu-sub-button {
422
+ min-height: 1.75rem;
423
+ padding: 0.25rem 0.5rem;
424
+ color: var(--frame-sidebar-muted-color);
425
+ font-size: 0.8125rem;
426
+ }
427
+
428
+ [frSidebarMenuSkeleton],
429
+ frame-sidebar-menu-skeleton {
430
+ display: flex;
431
+ align-items: center;
432
+ gap: 0.625rem;
433
+ height: var(--frame-sidebar-menu-button-height);
434
+ padding-inline: 0.625rem;
435
+ }
436
+
437
+ [frSidebarMenuSkeleton]::after,
438
+ frame-sidebar-menu-skeleton::after {
439
+ width: var(--frame-sidebar-skeleton-width, 72%);
440
+ height: 0.75rem;
441
+ border-radius: 999px;
442
+ background: var(--frame-sidebar-accent);
443
+ content: "";
444
+ }
445
+
446
+ [frSidebarMenuSkeleton][data-show-icon]::before,
447
+ frame-sidebar-menu-skeleton[data-show-icon]::before {
448
+ width: 1rem;
449
+ height: 1rem;
450
+ flex: 0 0 auto;
451
+ border-radius: 0.25rem;
452
+ background: var(--frame-sidebar-accent);
453
+ content: "";
454
+ }
455
+
456
+ [frSidebarTrigger],
457
+ frame-sidebar-trigger {
458
+ display: inline-flex;
459
+ align-items: center;
460
+ justify-content: center;
461
+ min-width: 2rem;
462
+ min-height: 2rem;
463
+ border: 1px solid var(--frame-sidebar-border);
464
+ border-radius: var(--frame-sidebar-menu-button-radius);
465
+ background: var(--frame-sidebar-bg);
466
+ color: var(--frame-sidebar-color);
467
+ cursor: pointer;
468
+ }
469
+
470
+ [frSidebarTrigger]:hover,
471
+ frame-sidebar-trigger:hover {
472
+ background: var(--frame-sidebar-accent);
473
+ }
474
+
475
+ [frSidebarRail],
476
+ frame-sidebar-rail {
477
+ position: absolute;
478
+ inset-block: 0;
479
+ inset-inline-end: -0.375rem;
480
+ z-index: 1;
481
+ width: 0.75rem;
482
+ cursor: ew-resize;
483
+ }
484
+
485
+ [frSidebar][data-side="right"] [frSidebarRail],
486
+ frame-sidebar[data-side="right"] frame-sidebar-rail {
487
+ inset-inline: -0.375rem auto;
488
+ }
489
+
490
+ [frSidebarRail]::after,
491
+ frame-sidebar-rail::after {
492
+ position: absolute;
493
+ inset-block: 1rem;
494
+ inset-inline-start: 50%;
495
+ width: 2px;
496
+ border-radius: 999px;
497
+ background: transparent;
498
+ content: "";
499
+ transform: translateX(-50%);
500
+ }
501
+
502
+ [frSidebarRail]:hover::after,
503
+ frame-sidebar-rail:hover::after {
504
+ background: var(--frame-sidebar-border);
505
+ }
506
+
507
+ @media (max-width: 768px) {
508
+ [frSidebarProvider],
509
+ frame-sidebar-provider {
510
+ display: block;
511
+ }
512
+
513
+ [frSidebar],
514
+ frame-sidebar {
515
+ position: fixed;
516
+ inset-block: 0;
517
+ inset-inline-start: 0;
518
+ z-index: var(--frame-sidebar-z-index);
519
+ width: var(--frame-sidebar-width-mobile);
520
+ max-width: 85vw;
521
+ min-height: 100dvh;
522
+ border-inline-end: 1px solid var(--frame-sidebar-border);
523
+ box-shadow: var(--frame-sidebar-shadow);
524
+ transform: translateX(-100%);
525
+ }
526
+
527
+ [frSidebar][data-side="right"],
528
+ frame-sidebar[data-side="right"] {
529
+ inset-inline: auto 0;
530
+ transform: translateX(100%);
531
+ }
532
+
533
+ [frSidebar][data-mobile-open="true"],
534
+ frame-sidebar[data-mobile-open="true"] {
535
+ transform: translateX(0);
536
+ }
537
+ }
538
+
539
+ @media (prefers-reduced-motion: reduce) {
540
+ [frSidebar],
541
+ frame-sidebar {
542
+ transition-duration: 1ms;
543
+ }
544
+ }