@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,147 @@
1
+ @import './_vars.css';
2
+
3
+ frame-slider {
4
+ position: relative;
5
+ display: grid;
6
+ align-items: center;
7
+ inline-size: var(--frame-slider-width);
8
+ block-size: var(--frame-slider-height);
9
+ touch-action: none;
10
+ user-select: none;
11
+ }
12
+
13
+ frame-slider[data-disabled] {
14
+ cursor: not-allowed;
15
+ opacity: var(--frame-slider-disabled-opacity);
16
+ }
17
+
18
+ frame-slider[data-orientation='vertical'] {
19
+ inline-size: var(--frame-slider-vertical-width);
20
+ block-size: var(--frame-slider-vertical-height);
21
+ justify-items: center;
22
+ }
23
+
24
+ .frame-slider__track {
25
+ position: absolute;
26
+ border-radius: var(--frame-slider-radius);
27
+ background: var(--frame-slider-track-bg);
28
+ pointer-events: none;
29
+ }
30
+
31
+ frame-slider[data-orientation='horizontal'] .frame-slider__track {
32
+ inset-inline: 0;
33
+ inset-block-start: 50%;
34
+ block-size: var(--frame-slider-track-size);
35
+ transform: translateY(-50%);
36
+ }
37
+
38
+ frame-slider[data-orientation='vertical'] .frame-slider__track {
39
+ inset-block: 0;
40
+ inset-inline-start: 50%;
41
+ inline-size: var(--frame-slider-track-size);
42
+ transform: translateX(-50%);
43
+ }
44
+
45
+ .frame-slider__range {
46
+ position: absolute;
47
+ border-radius: inherit;
48
+ background: var(--frame-slider-range-bg);
49
+ }
50
+
51
+ frame-slider[data-orientation='horizontal'] .frame-slider__range {
52
+ inset-block: 0;
53
+ inset-inline-start: var(--frame-slider-start-percent);
54
+ inline-size: calc(var(--frame-slider-end-percent) - var(--frame-slider-start-percent));
55
+ }
56
+
57
+ frame-slider[data-orientation='horizontal'][data-inverted='true'] .frame-slider__range {
58
+ inset-inline-start: auto;
59
+ inset-inline-end: var(--frame-slider-start-percent);
60
+ }
61
+
62
+ frame-slider[data-orientation='vertical'] .frame-slider__range {
63
+ inset-inline: 0;
64
+ inset-block-end: var(--frame-slider-start-percent);
65
+ block-size: calc(var(--frame-slider-end-percent) - var(--frame-slider-start-percent));
66
+ }
67
+
68
+ frame-slider[data-orientation='vertical'][data-inverted='true'] .frame-slider__range {
69
+ inset-block-start: var(--frame-slider-start-percent);
70
+ inset-block-end: auto;
71
+ }
72
+
73
+ .frame-slider__native {
74
+ position: absolute;
75
+ inset: 0;
76
+ z-index: 2;
77
+ margin: 0;
78
+ cursor: pointer;
79
+ opacity: 0;
80
+ pointer-events: none;
81
+ }
82
+
83
+ .frame-slider__native:disabled {
84
+ cursor: not-allowed;
85
+ }
86
+
87
+ frame-slider[data-orientation='vertical'] .frame-slider__native {
88
+ writing-mode: vertical-lr;
89
+ }
90
+
91
+ .frame-slider__thumb {
92
+ position: absolute;
93
+ z-index: 1;
94
+ display: block;
95
+ inline-size: var(--frame-slider-thumb-size);
96
+ block-size: var(--frame-slider-thumb-size);
97
+ border: var(--frame-slider-thumb-border-width) solid var(--frame-slider-thumb-border);
98
+ border-radius: 999px;
99
+ background: var(--frame-slider-thumb-bg);
100
+ box-shadow: var(--frame-slider-thumb-shadow);
101
+ cursor: grab;
102
+ }
103
+
104
+ frame-slider[data-disabled] .frame-slider__thumb {
105
+ cursor: not-allowed;
106
+ }
107
+
108
+ .frame-slider__thumb[data-active] {
109
+ cursor: grabbing;
110
+ }
111
+
112
+ frame-slider[data-orientation='horizontal'] .frame-slider__thumb {
113
+ inset-inline-start: var(--frame-slider-thumb-percent);
114
+ inset-block-start: 50%;
115
+ transform: translate(-50%, -50%);
116
+ }
117
+
118
+ frame-slider[data-orientation='horizontal']:dir(rtl) .frame-slider__thumb {
119
+ transform: translate(50%, -50%);
120
+ }
121
+
122
+ frame-slider[data-orientation='vertical'] .frame-slider__thumb {
123
+ inset-inline-start: 50%;
124
+ inset-block-end: var(--frame-slider-thumb-percent);
125
+ transform: translate(-50%, 50%);
126
+ }
127
+
128
+ frame-slider[data-orientation='horizontal'][data-inverted='true'] .frame-slider__thumb {
129
+ inset-inline-start: auto;
130
+ inset-inline-end: var(--frame-slider-thumb-percent);
131
+ }
132
+
133
+ frame-slider[data-orientation='vertical'][data-inverted='true'] .frame-slider__thumb {
134
+ inset-block-start: var(--frame-slider-thumb-percent);
135
+ inset-block-end: auto;
136
+ transform: translate(-50%, -50%);
137
+ }
138
+
139
+ .frame-slider__native:focus-visible + .frame-slider__thumb,
140
+ .frame-slider__thumb[data-active] {
141
+ box-shadow: var(--frame-slider-thumb-shadow), var(--frame-slider-thumb-focus-shadow);
142
+ }
143
+
144
+ frame-slider[data-invalid] {
145
+ --frame-slider-range-bg: var(--frame-destructive, #dc2626);
146
+ --frame-slider-thumb-border: var(--frame-destructive, #dc2626);
147
+ }
@@ -0,0 +1,9 @@
1
+ :root {
2
+ --frame-spinner-size: 1rem;
3
+ --frame-spinner-stroke: 2px;
4
+ --frame-spinner-track-color: color-mix(in srgb, currentColor 24%, transparent);
5
+ --frame-spinner-indicator-color: currentColor;
6
+ --frame-spinner-radius: 999px;
7
+ --frame-spinner-duration: 700ms;
8
+ }
9
+
@@ -0,0 +1,62 @@
1
+ @import './_vars.css';
2
+
3
+ [frSpinner],
4
+ frame-spinner,
5
+ .frame-spinner {
6
+ box-sizing: border-box;
7
+ display: inline-flex;
8
+ inline-size: var(--frame-spinner-size);
9
+ block-size: var(--frame-spinner-size);
10
+ flex: 0 0 auto;
11
+ border: var(--frame-spinner-stroke) solid var(--frame-spinner-track-color);
12
+ border-block-start-color: var(--frame-spinner-indicator-color);
13
+ border-radius: var(--frame-spinner-radius);
14
+ color: currentColor;
15
+ animation: frame-spinner-spin var(--frame-spinner-duration) linear infinite;
16
+ }
17
+
18
+ [frSpinner][data-size='xs'],
19
+ frame-spinner[data-size='xs'],
20
+ .frame-spinner[data-size='xs'] {
21
+ --frame-spinner-size: 0.75rem;
22
+ --frame-spinner-stroke: 1.5px;
23
+ }
24
+
25
+ [frSpinner][data-size='sm'],
26
+ frame-spinner[data-size='sm'],
27
+ .frame-spinner[data-size='sm'] {
28
+ --frame-spinner-size: 0.875rem;
29
+ }
30
+
31
+ [frSpinner][data-size='md'],
32
+ frame-spinner[data-size='md'],
33
+ .frame-spinner[data-size='md'] {
34
+ --frame-spinner-size: 1rem;
35
+ }
36
+
37
+ [frSpinner][data-size='lg'],
38
+ frame-spinner[data-size='lg'],
39
+ .frame-spinner[data-size='lg'] {
40
+ --frame-spinner-size: 1.25rem;
41
+ }
42
+
43
+ [frSpinner][data-size='xl'],
44
+ frame-spinner[data-size='xl'],
45
+ .frame-spinner[data-size='xl'] {
46
+ --frame-spinner-size: 1.75rem;
47
+ --frame-spinner-stroke: 2.5px;
48
+ }
49
+
50
+ @keyframes frame-spinner-spin {
51
+ to {
52
+ transform: rotate(360deg);
53
+ }
54
+ }
55
+
56
+ @media (prefers-reduced-motion: reduce) {
57
+ [frSpinner],
58
+ frame-spinner,
59
+ .frame-spinner {
60
+ animation-duration: 1.4s;
61
+ }
62
+ }
@@ -0,0 +1,47 @@
1
+ @import '../../alert/src/styles/alert.css';
2
+ @import '../../accordion/src/styles/accordion.css';
3
+ @import '../../avatar/src/styles/avatar.css';
4
+ @import '../../button/src/styles/button.css';
5
+ @import '../../button-group/src/styles/button-group.css';
6
+ @import '../../breadcrumb/src/styles/breadcrumb.css';
7
+ @import '../../calendar/src/styles/calendar.css';
8
+ @import '../../card/src/styles/card.css';
9
+ @import '../../carousel/src/styles/carousel.css';
10
+ @import '../../checkbox/src/styles/checkbox.css';
11
+ @import '../../collapsible/src/styles/collapsible.css';
12
+ @import '../../command/src/styles/command.css';
13
+ @import '../../combobox/src/styles/combobox.css';
14
+ @import '../../context-menu/src/styles/context-menu.css';
15
+ @import '../../date-picker/src/styles/date-picker.css';
16
+ @import '../../dropdown-menu/src/styles/dropdown-menu.css';
17
+ @import '../../empty/src/styles/empty.css';
18
+ @import '../../field/src/styles/field.css';
19
+ @import '../../hover-card/src/styles/hover-card.css';
20
+ @import '../../input/src/styles/input.css';
21
+ @import '../../input/src/styles/input-group.css';
22
+ @import '../../input-otp/src/styles/input-otp.css';
23
+ @import '../../item/src/styles/item.css';
24
+ @import '../../menubar/src/styles/menubar.css';
25
+ @import '../../modal/src/styles/modal.css';
26
+ @import '../../navigation-menu/src/styles/navigation-menu.css';
27
+ @import '../../pagination/src/styles/pagination.css';
28
+ @import '../../popover/src/styles/popover.css';
29
+ @import '../../progress/src/styles/progress.css';
30
+ @import '../../radio-group/src/styles/radio-group.css';
31
+ @import '../../resizable/src/styles/resizable.css';
32
+ @import '../../separator/src/styles/separator.css';
33
+ @import '../../skeleton/src/styles/skeleton.css';
34
+ @import '../../slider/src/styles/slider.css';
35
+ @import '../../textarea/src/styles/textarea.css';
36
+ @import '../../select/src/styles/select.css';
37
+ @import '../../sheet/src/styles/sheet.css';
38
+ @import '../../sidebar/src/styles/sidebar.css';
39
+ @import '../../switch/src/styles/switch.css';
40
+ @import '../../spinner/src/styles/spinner.css';
41
+ @import '../../tabs/src/styles/tabs.css';
42
+ @import '../../table/src/styles/table.css';
43
+ @import '../../toggle/src/styles/toggle.css';
44
+ @import '../../tooltip/src/styles/tooltip.css';
45
+ @import '../../toast/src/styles/toast.css';
46
+ @import '../../virtual-scroll/src/styles/virtual-scroll.css';
47
+ @import '../../badge/src/styles/badge.css';
@@ -0,0 +1,47 @@
1
+ @import '../../alert/src/styles/alert.css';
2
+ @import '../../accordion/src/styles/accordion.css';
3
+ @import '../../avatar/src/styles/avatar.css';
4
+ @import '../../button/src/styles/button.css';
5
+ @import '../../button-group/src/styles/button-group.css';
6
+ @import '../../breadcrumb/src/styles/breadcrumb.css';
7
+ @import '../../calendar/src/styles/calendar.css';
8
+ @import '../../card/src/styles/card.css';
9
+ @import '../../carousel/src/styles/carousel.css';
10
+ @import '../../checkbox/src/styles/checkbox.css';
11
+ @import '../../collapsible/src/styles/collapsible.css';
12
+ @import '../../command/src/styles/command.css';
13
+ @import '../../combobox/src/styles/combobox.css';
14
+ @import '../../context-menu/src/styles/context-menu.css';
15
+ @import '../../date-picker/src/styles/date-picker.css';
16
+ @import '../../dropdown-menu/src/styles/dropdown-menu.css';
17
+ @import '../../empty/src/styles/empty.css';
18
+ @import '../../field/src/styles/field.css';
19
+ @import '../../hover-card/src/styles/hover-card.css';
20
+ @import '../../input/src/styles/input.css';
21
+ @import '../../input/src/styles/input-group.css';
22
+ @import '../../input-otp/src/styles/input-otp.css';
23
+ @import '../../item/src/styles/item.css';
24
+ @import '../../menubar/src/styles/menubar.css';
25
+ @import '../../modal/src/styles/modal.css';
26
+ @import '../../navigation-menu/src/styles/navigation-menu.css';
27
+ @import '../../pagination/src/styles/pagination.css';
28
+ @import '../../popover/src/styles/popover.css';
29
+ @import '../../progress/src/styles/progress.css';
30
+ @import '../../radio-group/src/styles/radio-group.css';
31
+ @import '../../resizable/src/styles/resizable.css';
32
+ @import '../../separator/src/styles/separator.css';
33
+ @import '../../skeleton/src/styles/skeleton.css';
34
+ @import '../../slider/src/styles/slider.css';
35
+ @import '../../textarea/src/styles/textarea.css';
36
+ @import '../../select/src/styles/select.css';
37
+ @import '../../sheet/src/styles/sheet.css';
38
+ @import '../../sidebar/src/styles/sidebar.css';
39
+ @import '../../switch/src/styles/switch.css';
40
+ @import '../../spinner/src/styles/spinner.css';
41
+ @import '../../tabs/src/styles/tabs.css';
42
+ @import '../../table/src/styles/table.css';
43
+ @import '../../toggle/src/styles/toggle.css';
44
+ @import '../../tooltip/src/styles/tooltip.css';
45
+ @import '../../toast/src/styles/toast.css';
46
+ @import '../../virtual-scroll/src/styles/virtual-scroll.css';
47
+ @import '../../badge/src/styles/badge.css';
package/styles.css ADDED
@@ -0,0 +1,49 @@
1
+ @import '@frame-ui-ng/foundation/styles.css';
2
+
3
+ @import './alert/src/styles/alert.css';
4
+ @import './accordion/src/styles/accordion.css';
5
+ @import './avatar/src/styles/avatar.css';
6
+ @import './button/src/styles/button.css';
7
+ @import './button-group/src/styles/button-group.css';
8
+ @import './breadcrumb/src/styles/breadcrumb.css';
9
+ @import './calendar/src/styles/calendar.css';
10
+ @import './card/src/styles/card.css';
11
+ @import './carousel/src/styles/carousel.css';
12
+ @import './checkbox/src/styles/checkbox.css';
13
+ @import './collapsible/src/styles/collapsible.css';
14
+ @import './command/src/styles/command.css';
15
+ @import './combobox/src/styles/combobox.css';
16
+ @import './context-menu/src/styles/context-menu.css';
17
+ @import './date-picker/src/styles/date-picker.css';
18
+ @import './dropdown-menu/src/styles/dropdown-menu.css';
19
+ @import './empty/src/styles/empty.css';
20
+ @import './field/src/styles/field.css';
21
+ @import './hover-card/src/styles/hover-card.css';
22
+ @import './input/src/styles/input.css';
23
+ @import './input/src/styles/input-group.css';
24
+ @import './input-otp/src/styles/input-otp.css';
25
+ @import './item/src/styles/item.css';
26
+ @import './menubar/src/styles/menubar.css';
27
+ @import './modal/src/styles/modal.css';
28
+ @import './navigation-menu/src/styles/navigation-menu.css';
29
+ @import './pagination/src/styles/pagination.css';
30
+ @import './popover/src/styles/popover.css';
31
+ @import './progress/src/styles/progress.css';
32
+ @import './radio-group/src/styles/radio-group.css';
33
+ @import './resizable/src/styles/resizable.css';
34
+ @import './separator/src/styles/separator.css';
35
+ @import './skeleton/src/styles/skeleton.css';
36
+ @import './slider/src/styles/slider.css';
37
+ @import './textarea/src/styles/textarea.css';
38
+ @import './select/src/styles/select.css';
39
+ @import './sheet/src/styles/sheet.css';
40
+ @import './sidebar/src/styles/sidebar.css';
41
+ @import './switch/src/styles/switch.css';
42
+ @import './spinner/src/styles/spinner.css';
43
+ @import './tabs/src/styles/tabs.css';
44
+ @import './table/src/styles/table.css';
45
+ @import './toggle/src/styles/toggle.css';
46
+ @import './tooltip/src/styles/tooltip.css';
47
+ @import './toast/src/styles/toast.css';
48
+ @import './virtual-scroll/src/styles/virtual-scroll.css';
49
+ @import './badge/src/styles/badge.css';
@@ -0,0 +1,34 @@
1
+ :root {
2
+ --frame-switch-field-gap: 0.75rem;
3
+ --frame-switch-field-color: var(--frame-foreground);
4
+ --frame-switch-field-disabled-color: var(--frame-muted-foreground);
5
+ --frame-switch-content-gap: 0.25rem;
6
+ --frame-switch-label-font-size: 0.875rem;
7
+ --frame-switch-label-font-weight: 600;
8
+ --frame-switch-description-color: var(--frame-muted-foreground);
9
+ --frame-switch-description-font-size: 0.8125rem;
10
+ --frame-switch-error-color: var(--frame-destructive);
11
+ --frame-switch-error-font-size: 0.8125rem;
12
+ --frame-switch-width: 2.25rem;
13
+ --frame-switch-height: 1.25rem;
14
+ --frame-switch-thumb-size: 1rem;
15
+ --frame-switch-padding: 0.125rem;
16
+ --frame-switch-sm-width: 1.75rem;
17
+ --frame-switch-sm-height: 1rem;
18
+ --frame-switch-sm-thumb-size: 0.75rem;
19
+ --frame-switch-radius: 999px;
20
+ --frame-switch-bg: var(--frame-input);
21
+ --frame-switch-hover-bg: color-mix(in srgb, var(--frame-input) 82%, var(--frame-foreground));
22
+ --frame-switch-checked-bg: var(--frame-primary);
23
+ --frame-switch-checked-hover-bg: color-mix(in srgb, var(--frame-primary) 88%, var(--frame-foreground));
24
+ --frame-switch-thumb-bg: var(--frame-background);
25
+ --frame-switch-thumb-shadow: 0 1px 2px rgb(0 0 0 / 0.22);
26
+ --frame-switch-border-shadow: inset 0 0 0 1px color-mix(in srgb, var(--frame-border) 70%, transparent);
27
+ --frame-switch-checked-border-shadow: inset 0 0 0 1px color-mix(in srgb, var(--frame-primary) 80%, var(--frame-border));
28
+ --frame-switch-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--frame-ring) 28%, transparent);
29
+ --frame-switch-invalid-border: color-mix(in srgb, var(--frame-destructive) 65%, var(--frame-border));
30
+ --frame-switch-invalid-shadow: inset 0 0 0 1px color-mix(in srgb, var(--frame-destructive) 40%, transparent), 0 0 0 3px color-mix(in srgb, var(--frame-destructive) 14%, transparent);
31
+ --frame-switch-disabled-opacity: 0.5;
32
+ --frame-switch-transition-duration: 160ms;
33
+ --frame-switch-transition-easing: cubic-bezier(0.16, 1, 0.3, 1);
34
+ }
@@ -0,0 +1,131 @@
1
+ @import './_vars.css';
2
+
3
+ [frSwitchField],
4
+ frame-switch-field {
5
+ display: flex;
6
+ align-items: flex-start;
7
+ gap: var(--frame-switch-field-gap);
8
+ width: 100%;
9
+ color: var(--frame-switch-field-color);
10
+ }
11
+
12
+ [frSwitchField]:has([frSwitch]:disabled),
13
+ frame-switch-field:has([frSwitch]:disabled) {
14
+ color: var(--frame-switch-field-disabled-color);
15
+ }
16
+
17
+ [frSwitchContent],
18
+ frame-switch-content {
19
+ display: grid;
20
+ gap: var(--frame-switch-content-gap);
21
+ min-width: 0;
22
+ }
23
+
24
+ [frSwitchLabel],
25
+ frame-switch-label {
26
+ font-size: var(--frame-switch-label-font-size);
27
+ font-weight: var(--frame-switch-label-font-weight);
28
+ line-height: 1.3;
29
+ }
30
+
31
+ [frSwitchDescription],
32
+ frame-switch-description {
33
+ color: var(--frame-switch-description-color);
34
+ font-size: var(--frame-switch-description-font-size);
35
+ line-height: 1.45;
36
+ margin: 0;
37
+ }
38
+
39
+ [frSwitchError],
40
+ frame-switch-error {
41
+ color: var(--frame-switch-error-color);
42
+ font-size: var(--frame-switch-error-font-size);
43
+ line-height: 1.45;
44
+ margin: 0;
45
+ }
46
+
47
+ [frSwitch] {
48
+ appearance: none;
49
+ -webkit-appearance: none;
50
+ position: relative;
51
+ display: inline-flex;
52
+ flex: 0 0 auto;
53
+ inline-size: var(--frame-switch-width);
54
+ block-size: var(--frame-switch-height);
55
+ margin: 0;
56
+ border: 1px solid transparent;
57
+ border-radius: var(--frame-switch-radius);
58
+ background: var(--frame-switch-bg);
59
+ box-shadow: var(--frame-switch-border-shadow);
60
+ cursor: pointer;
61
+ outline: none;
62
+ vertical-align: middle;
63
+ transition:
64
+ background-color var(--frame-switch-transition-duration) ease,
65
+ border-color var(--frame-switch-transition-duration) ease,
66
+ box-shadow var(--frame-switch-transition-duration) ease,
67
+ opacity var(--frame-switch-transition-duration) ease;
68
+ }
69
+
70
+ [frSwitch][data-size='sm'] {
71
+ --frame-switch-width: var(--frame-switch-sm-width);
72
+ --frame-switch-height: var(--frame-switch-sm-height);
73
+ --frame-switch-thumb-size: var(--frame-switch-sm-thumb-size);
74
+ }
75
+
76
+ [frSwitch]::before {
77
+ content: '';
78
+ position: absolute;
79
+ inset-block-start: 50%;
80
+ inset-inline-start: var(--frame-switch-padding);
81
+ inline-size: var(--frame-switch-thumb-size);
82
+ block-size: var(--frame-switch-thumb-size);
83
+ border-radius: var(--frame-switch-radius);
84
+ background: var(--frame-switch-thumb-bg);
85
+ box-shadow: var(--frame-switch-thumb-shadow);
86
+ transform: translateY(-50%);
87
+ transition:
88
+ inset-inline-start var(--frame-switch-transition-duration) var(--frame-switch-transition-easing),
89
+ transform var(--frame-switch-transition-duration) var(--frame-switch-transition-easing);
90
+ }
91
+
92
+ [frSwitch]:checked {
93
+ background: var(--frame-switch-checked-bg);
94
+ box-shadow: var(--frame-switch-checked-border-shadow);
95
+ }
96
+
97
+ [frSwitch]:checked::before {
98
+ inset-inline-start: calc(100% - var(--frame-switch-thumb-size) - var(--frame-switch-padding));
99
+ }
100
+
101
+ [frSwitch]:where(:not(:disabled)):hover {
102
+ background: var(--frame-switch-hover-bg);
103
+ }
104
+
105
+ [frSwitch]:where(:not(:disabled)):checked:hover {
106
+ background: var(--frame-switch-checked-hover-bg);
107
+ }
108
+
109
+ [frSwitch]:focus-visible {
110
+ box-shadow:
111
+ var(--frame-switch-border-shadow),
112
+ var(--frame-switch-focus-shadow);
113
+ }
114
+
115
+ [frSwitch]:checked:focus-visible {
116
+ box-shadow:
117
+ var(--frame-switch-checked-border-shadow),
118
+ var(--frame-switch-focus-shadow);
119
+ }
120
+
121
+ [frSwitch]:disabled {
122
+ cursor: not-allowed;
123
+ opacity: var(--frame-switch-disabled-opacity);
124
+ }
125
+
126
+ [frSwitch][aria-invalid='true'],
127
+ [frSwitch].ng-invalid.ng-touched,
128
+ [frSwitch].ng-invalid.ng-dirty {
129
+ border-color: var(--frame-switch-invalid-border);
130
+ box-shadow: var(--frame-switch-invalid-shadow);
131
+ }
@@ -0,0 +1,25 @@
1
+ :root {
2
+ --frame-table-bg: var(--frame-surface);
3
+ --frame-table-color: var(--frame-foreground);
4
+ --frame-table-border: var(--frame-border);
5
+ --frame-table-radius: var(--frame-radius-lg);
6
+ --frame-table-shadow: none;
7
+ --frame-table-caption-color: var(--frame-muted-foreground);
8
+ --frame-table-caption-font-size: 0.875rem;
9
+ --frame-table-header-bg: color-mix(in srgb, var(--frame-muted) 70%, var(--frame-table-bg));
10
+ --frame-table-header-color: var(--frame-muted-foreground);
11
+ --frame-table-header-font-size: 0.8125rem;
12
+ --frame-table-header-font-weight: 650;
13
+ --frame-table-row-border: color-mix(in srgb, var(--frame-table-border) 78%, var(--frame-table-bg));
14
+ --frame-table-row-hover-bg: color-mix(in srgb, var(--frame-accent) 72%, var(--frame-table-bg));
15
+ --frame-table-row-selected-bg: color-mix(in srgb, var(--frame-primary) 10%, var(--frame-table-bg));
16
+ --frame-table-row-striped-bg: color-mix(in srgb, var(--frame-muted) 36%, var(--frame-table-bg));
17
+ --frame-table-cell-padding-block: 0.75rem;
18
+ --frame-table-cell-padding-inline: 1rem;
19
+ --frame-table-cell-font-size: 0.875rem;
20
+ --frame-table-cell-line-height: 1.45;
21
+ --frame-table-footer-bg: color-mix(in srgb, var(--frame-muted) 50%, var(--frame-table-bg));
22
+ --frame-table-footer-font-weight: 650;
23
+ --frame-table-transition-duration: 150ms;
24
+ --frame-table-sticky-shadow: 0 0 0 1px var(--frame-table-border);
25
+ }