@frame-ui-ng/components 0.1.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 (249) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +31 -0
  3. package/accordion/src/styles/_vars.css +25 -0
  4. package/accordion/src/styles/accordion.css +87 -0
  5. package/alert/src/styles/_vars.css +28 -0
  6. package/alert/src/styles/alert.css +77 -0
  7. package/avatar/src/styles/_vars.css +34 -0
  8. package/avatar/src/styles/avatar.css +209 -0
  9. package/badge/src/styles/_vars.css +16 -0
  10. package/badge/src/styles/badge.css +125 -0
  11. package/breadcrumb/src/styles/_vars.css +16 -0
  12. package/breadcrumb/src/styles/breadcrumb.css +98 -0
  13. package/button/src/styles/_vars.css +20 -0
  14. package/button/src/styles/button-icon.css +18 -0
  15. package/button/src/styles/button-label.css +3 -0
  16. package/button/src/styles/button.css +243 -0
  17. package/button-group/src/styles/button-group.css +69 -0
  18. package/calendar/src/styles/_vars.css +29 -0
  19. package/calendar/src/styles/calendar.css +226 -0
  20. package/card/src/styles/_vars.css +17 -0
  21. package/card/src/styles/card.css +142 -0
  22. package/carousel/src/styles/_vars.css +7 -0
  23. package/carousel/src/styles/carousel.css +89 -0
  24. package/checkbox/src/styles/_vars.css +22 -0
  25. package/checkbox/src/styles/checkbox.css +95 -0
  26. package/collapsible/src/styles/_vars.css +13 -0
  27. package/collapsible/src/styles/collapsible.css +42 -0
  28. package/combobox/src/styles/_vars.css +60 -0
  29. package/combobox/src/styles/combobox.css +285 -0
  30. package/command/src/styles/_vars.css +37 -0
  31. package/command/src/styles/command.css +171 -0
  32. package/context-menu/src/styles/context-menu.css +5 -0
  33. package/date-picker/src/styles/_vars.css +29 -0
  34. package/date-picker/src/styles/date-picker.css +177 -0
  35. package/dropdown-menu/src/styles/_vars.css +34 -0
  36. package/dropdown-menu/src/styles/dropdown-menu-item.css +87 -0
  37. package/dropdown-menu/src/styles/dropdown-menu-motion.css +42 -0
  38. package/dropdown-menu/src/styles/dropdown-menu-panel.css +26 -0
  39. package/dropdown-menu/src/styles/dropdown-menu.css +4 -0
  40. package/empty/src/styles/_vars.css +23 -0
  41. package/empty/src/styles/empty.css +108 -0
  42. package/fesm2022/frame-ui-ng-components-accordion.mjs +268 -0
  43. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -0
  44. package/fesm2022/frame-ui-ng-components-alert.mjs +102 -0
  45. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -0
  46. package/fesm2022/frame-ui-ng-components-avatar.mjs +197 -0
  47. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -0
  48. package/fesm2022/frame-ui-ng-components-badge.mjs +120 -0
  49. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -0
  50. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +156 -0
  51. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -0
  52. package/fesm2022/frame-ui-ng-components-button-group.mjs +44 -0
  53. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -0
  54. package/fesm2022/frame-ui-ng-components-button.mjs +150 -0
  55. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -0
  56. package/fesm2022/frame-ui-ng-components-calendar.mjs +559 -0
  57. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -0
  58. package/fesm2022/frame-ui-ng-components-card.mjs +169 -0
  59. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -0
  60. package/fesm2022/frame-ui-ng-components-carousel.mjs +454 -0
  61. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -0
  62. package/fesm2022/frame-ui-ng-components-checkbox.mjs +83 -0
  63. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -0
  64. package/fesm2022/frame-ui-ng-components-collapsible.mjs +191 -0
  65. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -0
  66. package/fesm2022/frame-ui-ng-components-combobox.mjs +859 -0
  67. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -0
  68. package/fesm2022/frame-ui-ng-components-command.mjs +658 -0
  69. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -0
  70. package/fesm2022/frame-ui-ng-components-context-menu.mjs +579 -0
  71. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -0
  72. package/fesm2022/frame-ui-ng-components-date-picker.mjs +512 -0
  73. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -0
  74. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +647 -0
  75. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -0
  76. package/fesm2022/frame-ui-ng-components-empty.mjs +134 -0
  77. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -0
  78. package/fesm2022/frame-ui-ng-components-field.mjs +210 -0
  79. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -0
  80. package/fesm2022/frame-ui-ng-components-forms.mjs +89 -0
  81. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -0
  82. package/fesm2022/frame-ui-ng-components-hover-card.mjs +412 -0
  83. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -0
  84. package/fesm2022/frame-ui-ng-components-input-otp.mjs +327 -0
  85. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -0
  86. package/fesm2022/frame-ui-ng-components-input.mjs +250 -0
  87. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -0
  88. package/fesm2022/frame-ui-ng-components-item.mjs +207 -0
  89. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -0
  90. package/fesm2022/frame-ui-ng-components-menubar.mjs +371 -0
  91. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -0
  92. package/fesm2022/frame-ui-ng-components-modal.mjs +525 -0
  93. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -0
  94. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +322 -0
  95. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -0
  96. package/fesm2022/frame-ui-ng-components-pagination.mjs +327 -0
  97. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -0
  98. package/fesm2022/frame-ui-ng-components-popover.mjs +454 -0
  99. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -0
  100. package/fesm2022/frame-ui-ng-components-progress.mjs +96 -0
  101. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -0
  102. package/fesm2022/frame-ui-ng-components-radio-group.mjs +124 -0
  103. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -0
  104. package/fesm2022/frame-ui-ng-components-resizable.mjs +325 -0
  105. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -0
  106. package/fesm2022/frame-ui-ng-components-select.mjs +434 -0
  107. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -0
  108. package/fesm2022/frame-ui-ng-components-separator.mjs +51 -0
  109. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -0
  110. package/fesm2022/frame-ui-ng-components-sheet.mjs +514 -0
  111. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -0
  112. package/fesm2022/frame-ui-ng-components-sidebar.mjs +628 -0
  113. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -0
  114. package/fesm2022/frame-ui-ng-components-skeleton.mjs +46 -0
  115. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -0
  116. package/fesm2022/frame-ui-ng-components-slider.mjs +279 -0
  117. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -0
  118. package/fesm2022/frame-ui-ng-components-spinner.mjs +51 -0
  119. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -0
  120. package/fesm2022/frame-ui-ng-components-switch.mjs +130 -0
  121. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -0
  122. package/fesm2022/frame-ui-ng-components-table.mjs +594 -0
  123. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -0
  124. package/fesm2022/frame-ui-ng-components-tabs.mjs +208 -0
  125. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -0
  126. package/fesm2022/frame-ui-ng-components-textarea.mjs +40 -0
  127. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -0
  128. package/fesm2022/frame-ui-ng-components-toast.mjs +346 -0
  129. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -0
  130. package/fesm2022/frame-ui-ng-components-toggle.mjs +127 -0
  131. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -0
  132. package/fesm2022/frame-ui-ng-components-tooltip.mjs +425 -0
  133. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -0
  134. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +321 -0
  135. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -0
  136. package/fesm2022/frame-ui-ng-components.mjs +10278 -0
  137. package/fesm2022/frame-ui-ng-components.mjs.map +1 -0
  138. package/field/src/styles/_vars.css +20 -0
  139. package/field/src/styles/field.css +165 -0
  140. package/hover-card/src/styles/_vars.css +21 -0
  141. package/hover-card/src/styles/hover-card.css +76 -0
  142. package/input/src/styles/_vars.css +65 -0
  143. package/input/src/styles/input-group.css +112 -0
  144. package/input/src/styles/input.css +163 -0
  145. package/input-otp/src/styles/_vars.css +21 -0
  146. package/input-otp/src/styles/input-otp.css +116 -0
  147. package/item/src/styles/_vars.css +34 -0
  148. package/item/src/styles/item.css +187 -0
  149. package/menubar/src/styles/_vars.css +22 -0
  150. package/menubar/src/styles/menubar.css +70 -0
  151. package/modal/src/styles/_vars.css +18 -0
  152. package/modal/src/styles/modal.css +179 -0
  153. package/navigation-menu/src/styles/_vars.css +45 -0
  154. package/navigation-menu/src/styles/navigation-menu.css +245 -0
  155. package/package.json +243 -0
  156. package/pagination/src/styles/_vars.css +22 -0
  157. package/pagination/src/styles/pagination.css +138 -0
  158. package/popover/src/styles/_vars.css +24 -0
  159. package/popover/src/styles/popover.css +101 -0
  160. package/progress/src/styles/_vars.css +15 -0
  161. package/progress/src/styles/progress.css +64 -0
  162. package/radio-group/src/styles/_vars.css +29 -0
  163. package/radio-group/src/styles/radio-group.css +137 -0
  164. package/resizable/src/styles/_vars.css +20 -0
  165. package/resizable/src/styles/resizable.css +130 -0
  166. package/select/src/styles/_vars.css +28 -0
  167. package/select/src/styles/select-content.css +19 -0
  168. package/select/src/styles/select-feedback.css +6 -0
  169. package/select/src/styles/select-item.css +69 -0
  170. package/select/src/styles/select-trigger.css +95 -0
  171. package/select/src/styles/select.css +5 -0
  172. package/separator/src/styles/_vars.css +9 -0
  173. package/separator/src/styles/separator.css +25 -0
  174. package/sheet/src/styles/_vars.css +18 -0
  175. package/sheet/src/styles/sheet.css +215 -0
  176. package/sidebar/src/styles/_vars.css +24 -0
  177. package/sidebar/src/styles/sidebar.css +531 -0
  178. package/skeleton/src/styles/_vars.css +8 -0
  179. package/skeleton/src/styles/skeleton.css +40 -0
  180. package/slider/src/styles/_vars.css +17 -0
  181. package/slider/src/styles/slider.css +147 -0
  182. package/spinner/src/styles/_vars.css +9 -0
  183. package/spinner/src/styles/spinner.css +62 -0
  184. package/src/styles/components.css +47 -0
  185. package/styles/components.css +47 -0
  186. package/styles.css +49 -0
  187. package/switch/src/styles/_vars.css +34 -0
  188. package/switch/src/styles/switch.css +131 -0
  189. package/table/src/styles/_vars.css +25 -0
  190. package/table/src/styles/table.css +245 -0
  191. package/tabs/src/styles/_vars.css +23 -0
  192. package/tabs/src/styles/tabs.css +164 -0
  193. package/textarea/src/styles/_vars.css +20 -0
  194. package/textarea/src/styles/textarea.css +60 -0
  195. package/toast/src/styles/_vars.css +47 -0
  196. package/toast/src/styles/toast.css +314 -0
  197. package/toggle/src/styles/_vars.css +24 -0
  198. package/toggle/src/styles/toggle.css +110 -0
  199. package/tooltip/src/styles/_vars.css +21 -0
  200. package/tooltip/src/styles/tooltip.css +103 -0
  201. package/types/frame-ui-ng-components-accordion.d.ts +75 -0
  202. package/types/frame-ui-ng-components-alert.d.ts +30 -0
  203. package/types/frame-ui-ng-components-avatar.d.ts +65 -0
  204. package/types/frame-ui-ng-components-badge.d.ts +35 -0
  205. package/types/frame-ui-ng-components-breadcrumb.d.ts +40 -0
  206. package/types/frame-ui-ng-components-button-group.d.ts +18 -0
  207. package/types/frame-ui-ng-components-button.d.ts +50 -0
  208. package/types/frame-ui-ng-components-calendar.d.ts +101 -0
  209. package/types/frame-ui-ng-components-card.d.ts +51 -0
  210. package/types/frame-ui-ng-components-carousel.d.ts +117 -0
  211. package/types/frame-ui-ng-components-checkbox.d.ts +25 -0
  212. package/types/frame-ui-ng-components-collapsible.d.ts +55 -0
  213. package/types/frame-ui-ng-components-combobox.d.ts +201 -0
  214. package/types/frame-ui-ng-components-command.d.ts +198 -0
  215. package/types/frame-ui-ng-components-context-menu.d.ts +149 -0
  216. package/types/frame-ui-ng-components-date-picker.d.ts +95 -0
  217. package/types/frame-ui-ng-components-dropdown-menu.d.ts +182 -0
  218. package/types/frame-ui-ng-components-empty.d.ts +44 -0
  219. package/types/frame-ui-ng-components-field.d.ts +60 -0
  220. package/types/frame-ui-ng-components-forms.d.ts +39 -0
  221. package/types/frame-ui-ng-components-hover-card.d.ts +94 -0
  222. package/types/frame-ui-ng-components-input-otp.d.ts +70 -0
  223. package/types/frame-ui-ng-components-input.d.ts +67 -0
  224. package/types/frame-ui-ng-components-item.d.ts +62 -0
  225. package/types/frame-ui-ng-components-menubar.d.ts +76 -0
  226. package/types/frame-ui-ng-components-modal.d.ts +148 -0
  227. package/types/frame-ui-ng-components-navigation-menu.d.ts +74 -0
  228. package/types/frame-ui-ng-components-pagination.d.ts +79 -0
  229. package/types/frame-ui-ng-components-popover.d.ts +95 -0
  230. package/types/frame-ui-ng-components-progress.d.ts +24 -0
  231. package/types/frame-ui-ng-components-radio-group.d.ts +40 -0
  232. package/types/frame-ui-ng-components-resizable.d.ts +61 -0
  233. package/types/frame-ui-ng-components-select.d.ts +114 -0
  234. package/types/frame-ui-ng-components-separator.d.ts +19 -0
  235. package/types/frame-ui-ng-components-sheet.d.ts +146 -0
  236. package/types/frame-ui-ng-components-sidebar.d.ts +163 -0
  237. package/types/frame-ui-ng-components-skeleton.d.ts +18 -0
  238. package/types/frame-ui-ng-components-slider.d.ts +56 -0
  239. package/types/frame-ui-ng-components-spinner.d.ts +23 -0
  240. package/types/frame-ui-ng-components-switch.d.ts +38 -0
  241. package/types/frame-ui-ng-components-table.d.ts +125 -0
  242. package/types/frame-ui-ng-components-tabs.d.ts +62 -0
  243. package/types/frame-ui-ng-components-textarea.d.ts +14 -0
  244. package/types/frame-ui-ng-components-toast.d.ts +74 -0
  245. package/types/frame-ui-ng-components-toggle.d.ts +45 -0
  246. package/types/frame-ui-ng-components-tooltip.d.ts +99 -0
  247. package/types/frame-ui-ng-components-virtual-scroll.d.ts +106 -0
  248. package/types/frame-ui-ng-components.d.ts +2746 -0
  249. package/virtual-scroll/src/styles/virtual-scroll.css +54 -0
@@ -0,0 +1,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
+ 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
+ }
@@ -0,0 +1,8 @@
1
+ :root {
2
+ --frame-skeleton-bg: color-mix(in srgb, var(--frame-muted, #f4f4f5) 84%, var(--frame-foreground, #09090b) 8%);
3
+ --frame-skeleton-highlight: color-mix(in srgb, var(--frame-background, #fff) 64%, transparent);
4
+ --frame-skeleton-radius: var(--frame-radius-md, 0.5rem);
5
+ --frame-skeleton-width: 100%;
6
+ --frame-skeleton-height: 1rem;
7
+ --frame-skeleton-animation-duration: 1.4s;
8
+ }
@@ -0,0 +1,40 @@
1
+ @import './_vars.css';
2
+
3
+ [frSkeleton],
4
+ frame-skeleton {
5
+ position: relative;
6
+ display: block;
7
+ inline-size: var(--frame-skeleton-width);
8
+ block-size: var(--frame-skeleton-height);
9
+ overflow: hidden;
10
+ border-radius: var(--frame-skeleton-radius);
11
+ background: var(--frame-skeleton-bg);
12
+ }
13
+
14
+ [frSkeleton][data-animated='true']::after,
15
+ frame-skeleton[data-animated='true']::after {
16
+ position: absolute;
17
+ inset: 0;
18
+ background: linear-gradient(
19
+ 90deg,
20
+ transparent,
21
+ var(--frame-skeleton-highlight),
22
+ transparent
23
+ );
24
+ content: '';
25
+ transform: translateX(-100%);
26
+ animation: frame-skeleton-shimmer var(--frame-skeleton-animation-duration) ease-in-out infinite;
27
+ }
28
+
29
+ @keyframes frame-skeleton-shimmer {
30
+ 100% {
31
+ transform: translateX(100%);
32
+ }
33
+ }
34
+
35
+ @media (prefers-reduced-motion: reduce) {
36
+ [frSkeleton]::after,
37
+ frame-skeleton::after {
38
+ animation: none;
39
+ }
40
+ }
@@ -0,0 +1,17 @@
1
+ :root {
2
+ --frame-slider-width: 100%;
3
+ --frame-slider-height: 1.25rem;
4
+ --frame-slider-vertical-width: 1.25rem;
5
+ --frame-slider-vertical-height: 12rem;
6
+ --frame-slider-track-size: 0.5rem;
7
+ --frame-slider-track-bg: var(--frame-muted, #f4f4f5);
8
+ --frame-slider-range-bg: var(--frame-primary, #18181b);
9
+ --frame-slider-thumb-size: 1.25rem;
10
+ --frame-slider-thumb-bg: var(--frame-background, #fff);
11
+ --frame-slider-thumb-border: var(--frame-primary, #18181b);
12
+ --frame-slider-thumb-border-width: 2px;
13
+ --frame-slider-thumb-shadow: 0 2px 10px rgb(0 0 0 / 0.16);
14
+ --frame-slider-thumb-focus-shadow: 0 0 0 4px color-mix(in srgb, var(--frame-ring, #18181b) 24%, transparent);
15
+ --frame-slider-disabled-opacity: 0.5;
16
+ --frame-slider-radius: 999px;
17
+ }