@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,98 +1,110 @@
1
- @import './_vars.css';
2
-
3
- [frBreadcrumb],
4
- nav[frBreadcrumb] {
5
- display: block;
6
- color: var(--frame-breadcrumb-root-color);
7
- font-size: var(--frame-breadcrumb-root-font-size);
8
- line-height: var(--frame-breadcrumb-root-line-height);
9
- }
10
-
11
- [frBreadcrumbList] {
12
- display: flex;
13
- flex-wrap: wrap;
14
- align-items: center;
15
- gap: var(--frame-breadcrumb-list-gap);
16
- margin: 0;
17
- padding: 0;
18
- list-style: none;
19
- }
20
-
21
- [frBreadcrumbItem] {
22
- display: inline-flex;
23
- min-width: 0;
24
- align-items: center;
25
- gap: var(--frame-breadcrumb-list-gap);
26
- }
27
-
28
- [frBreadcrumbLink] {
29
- min-width: 0;
30
- border-radius: var(--frame-radius-sm);
31
- color: var(--frame-breadcrumb-link-color);
32
- text-decoration: none;
33
- text-underline-offset: 0.25rem;
34
- transition:
35
- color var(--frame-breadcrumb-transition-duration) ease,
36
- box-shadow var(--frame-breadcrumb-transition-duration) ease;
37
- }
38
-
39
- [frBreadcrumbLink]:hover {
40
- color: var(--frame-breadcrumb-link-hover-color);
41
- text-decoration: underline;
42
- }
43
-
44
- [frBreadcrumbLink]:focus-visible {
45
- outline: none;
46
- box-shadow: var(--frame-breadcrumb-link-focus-shadow);
47
- }
48
-
49
- [frBreadcrumbPage] {
50
- min-width: 0;
51
- color: var(--frame-breadcrumb-page-color);
52
- font-weight: 500;
53
- }
54
-
55
- [frBreadcrumbSeparator] {
56
- display: inline-flex;
57
- flex: 0 0 auto;
58
- align-items: center;
59
- justify-content: center;
60
- color: var(--frame-breadcrumb-separator-color);
61
- font-size: var(--frame-breadcrumb-separator-size);
62
- line-height: 1;
63
- user-select: none;
64
- }
65
-
66
- [frBreadcrumbSeparator]:empty::before {
67
- content: "/";
68
- }
69
-
70
- [frBreadcrumbEllipsis],
71
- frame-breadcrumb-ellipsis {
72
- display: inline-flex;
73
- inline-size: var(--frame-breadcrumb-ellipsis-size);
74
- block-size: var(--frame-breadcrumb-ellipsis-size);
75
- align-items: center;
76
- justify-content: center;
77
- border-radius: var(--frame-breadcrumb-ellipsis-radius);
78
- color: var(--frame-breadcrumb-root-color);
79
- letter-spacing: 0.08em;
80
- transition: background-color var(--frame-breadcrumb-transition-duration) ease;
81
- }
82
-
83
- [frBreadcrumbEllipsis]:hover,
84
- frame-breadcrumb-ellipsis:hover {
85
- background: var(--frame-breadcrumb-ellipsis-hover-bg);
86
- }
87
-
88
- .frame-breadcrumb__sr-only {
89
- position: absolute;
90
- width: 1px;
91
- height: 1px;
92
- padding: 0;
93
- margin: -1px;
94
- overflow: hidden;
95
- clip: rect(0, 0, 0, 0);
96
- white-space: nowrap;
97
- border: 0;
98
- }
1
+ @import './_vars.css';
2
+
3
+ [frBreadcrumb],
4
+ nav[frBreadcrumb] {
5
+ display: block;
6
+ color: var(--frame-breadcrumb-root-color);
7
+ font-size: var(--frame-breadcrumb-root-font-size);
8
+ line-height: var(--frame-breadcrumb-root-line-height);
9
+ }
10
+
11
+ [frBreadcrumbList] {
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ align-items: center;
15
+ gap: var(--frame-breadcrumb-list-gap);
16
+ margin: 0;
17
+ padding: 0;
18
+ list-style: none;
19
+ }
20
+
21
+ [frBreadcrumbItem] {
22
+ display: inline-flex;
23
+ min-width: 0;
24
+ align-items: center;
25
+ gap: var(--frame-breadcrumb-list-gap);
26
+ }
27
+
28
+ [frBreadcrumbLink] {
29
+ min-width: 0;
30
+ border: 1px solid transparent;
31
+ border-radius: var(--frame-breadcrumb-link-radius);
32
+ color: var(--frame-breadcrumb-link-color);
33
+ padding: 0.1875rem 0.375rem;
34
+ text-decoration: none;
35
+ text-underline-offset: 0.25rem;
36
+ transition:
37
+ border-color var(--frame-breadcrumb-transition-duration) ease,
38
+ color var(--frame-breadcrumb-transition-duration) ease,
39
+ box-shadow var(--frame-breadcrumb-transition-duration) ease,
40
+ transform var(--frame-breadcrumb-transition-duration) ease;
41
+ }
42
+
43
+ [frBreadcrumbLink]:hover {
44
+ border-color: var(--frame-frame-line-muted, var(--frame-border));
45
+ color: var(--frame-breadcrumb-link-hover-color);
46
+ text-decoration: none;
47
+ transform: translate(-1px, -1px);
48
+ box-shadow: 2px 2px 0 color-mix(in srgb, var(--frame-frame-line-muted, var(--frame-border)) 82%, transparent);
49
+ }
50
+
51
+ [frBreadcrumbLink]:focus-visible {
52
+ outline: none;
53
+ border-color: var(--frame-frame-accent, var(--frame-ring));
54
+ box-shadow: var(--frame-breadcrumb-link-focus-shadow);
55
+ transform: translate(-1px, -1px);
56
+ }
57
+
58
+ [frBreadcrumbPage] {
59
+ min-width: 0;
60
+ border-block-end: 1px solid var(--frame-frame-accent, var(--frame-primary));
61
+ color: var(--frame-breadcrumb-page-color);
62
+ font-weight: 500;
63
+ padding: 0.1875rem 0.375rem;
64
+ }
65
+
66
+ [frBreadcrumbSeparator] {
67
+ display: inline-flex;
68
+ flex: 0 0 auto;
69
+ align-items: center;
70
+ justify-content: center;
71
+ color: var(--frame-breadcrumb-separator-color);
72
+ font-size: var(--frame-breadcrumb-separator-size);
73
+ line-height: 1;
74
+ user-select: none;
75
+ }
76
+
77
+ [frBreadcrumbSeparator]:empty::before {
78
+ color: var(--frame-frame-accent, var(--frame-primary));
79
+ content: "/";
80
+ }
81
+
82
+ [frBreadcrumbEllipsis],
83
+ frame-breadcrumb-ellipsis {
84
+ display: inline-flex;
85
+ inline-size: var(--frame-breadcrumb-ellipsis-size);
86
+ block-size: var(--frame-breadcrumb-ellipsis-size);
87
+ align-items: center;
88
+ justify-content: center;
89
+ border-radius: var(--frame-breadcrumb-ellipsis-radius);
90
+ color: var(--frame-breadcrumb-root-color);
91
+ letter-spacing: 0.08em;
92
+ transition: background-color var(--frame-breadcrumb-transition-duration) ease;
93
+ }
94
+
95
+ [frBreadcrumbEllipsis]:hover,
96
+ frame-breadcrumb-ellipsis:hover {
97
+ background: var(--frame-breadcrumb-ellipsis-hover-bg);
98
+ }
99
+
100
+ .frame-breadcrumb__sr-only {
101
+ position: absolute;
102
+ width: 1px;
103
+ height: 1px;
104
+ padding: 0;
105
+ margin: -1px;
106
+ overflow: hidden;
107
+ clip: rect(0, 0, 0, 0);
108
+ white-space: nowrap;
109
+ border: 0;
110
+ }
@@ -1,20 +1,20 @@
1
- :root {
2
- --frame-button-root-gap: 0.5rem;
3
- --frame-button-root-height: 2.25rem;
4
- --frame-button-root-padding-x: 1rem;
5
- --frame-button-root-radius: var(--frame-radius-md);
6
- --frame-button-root-shadow: var(--frame-shadow-sm);
7
- --frame-button-root-font-size: 0.875rem;
8
- --frame-button-root-font-weight: 600;
9
- --frame-button-root-ring-color: var(--frame-ring);
10
- --frame-button-root-focus-shadow: var(--frame-button-root-shadow), 0 0 0 3px color-mix(in srgb, var(--frame-button-root-ring-color) 35%, transparent);
11
- --frame-button-root-hover-filter: brightness(0.98);
12
- --frame-button-root-active-filter: brightness(0.96);
13
- --frame-button-root-disabled-opacity: 0.55;
14
- --frame-button-root-disabled-shadow: none;
15
- --frame-button-loading-size: 1rem;
16
- --frame-button-loading-stroke: 2px;
17
- --frame-button-loading-track: color-mix(in srgb, white 24%, transparent);
18
- --frame-button-icon-size: 1rem;
19
- --frame-button-label-weight: inherit;
20
- }
1
+ :root {
2
+ --frame-button-root-gap: 0.5rem;
3
+ --frame-button-root-height: 2.25rem;
4
+ --frame-button-root-padding-x: 1rem;
5
+ --frame-button-root-radius: var(--frame-radius-md);
6
+ --frame-button-root-shadow: var(--frame-shadow-sm);
7
+ --frame-button-root-font-size: 0.875rem;
8
+ --frame-button-root-font-weight: 600;
9
+ --frame-button-root-ring-color: var(--frame-ring);
10
+ --frame-button-root-focus-shadow: none;
11
+ --frame-button-root-hover-filter: brightness(0.98);
12
+ --frame-button-root-active-filter: brightness(0.96);
13
+ --frame-button-root-disabled-opacity: 0.55;
14
+ --frame-button-root-disabled-shadow: none;
15
+ --frame-button-loading-size: 1rem;
16
+ --frame-button-loading-stroke: 2px;
17
+ --frame-button-loading-track: color-mix(in srgb, white 24%, transparent);
18
+ --frame-button-icon-size: 1rem;
19
+ --frame-button-label-weight: inherit;
20
+ }
@@ -5,14 +5,21 @@
5
5
 
6
6
  .frame-button {
7
7
  --frame-button-root-bg: var(--frame-primary);
8
- --frame-button-root-border: transparent;
8
+ --frame-button-root-border: color-mix(in srgb, var(--frame-primary) 84%, white);
9
9
  --frame-button-root-color: var(--frame-primary-foreground);
10
- --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-primary) 92%, white);
10
+ --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-primary) 88%, black);
11
11
  --frame-button-root-hover-border: var(--frame-button-root-border);
12
12
  --frame-button-root-hover-color: var(--frame-button-root-color);
13
13
  --frame-button-root-active-bg: color-mix(in srgb, var(--frame-primary) 84%, black);
14
14
  --frame-button-root-active-border: var(--frame-button-root-hover-border);
15
15
  --frame-button-root-active-color: var(--frame-button-root-hover-color);
16
+ --frame-button-root-corner-color: color-mix(in srgb, var(--frame-primary-foreground) 88%, transparent);
17
+ --frame-button-root-corner-inset: var(--frame-frame-tick-inset, 0px);
18
+ --frame-button-root-corner-size: clamp(
19
+ 0px,
20
+ calc((1px - var(--frame-button-root-radius, 0px)) * 9999),
21
+ var(--frame-frame-tick-size, 0.5rem)
22
+ );
16
23
  --frame-spinner-size: var(--frame-button-loading-size, 1rem);
17
24
  --frame-spinner-stroke: var(--frame-button-loading-stroke, 2px);
18
25
  --frame-spinner-track-color: var(
@@ -52,8 +59,33 @@
52
59
  white-space: nowrap;
53
60
  }
54
61
 
62
+ .frame-button::before {
63
+ position: absolute;
64
+ inset: 1px;
65
+ border-radius: inherit;
66
+ background:
67
+ linear-gradient(var(--frame-button-root-corner-color), var(--frame-button-root-corner-color))
68
+ left var(--frame-button-root-corner-inset) top var(--frame-button-root-corner-inset) /
69
+ var(--frame-button-root-corner-size) 1px no-repeat,
70
+ linear-gradient(var(--frame-button-root-corner-color), var(--frame-button-root-corner-color))
71
+ left var(--frame-button-root-corner-inset) top var(--frame-button-root-corner-inset) / 1px
72
+ var(--frame-button-root-corner-size) no-repeat,
73
+ linear-gradient(var(--frame-button-root-corner-color), var(--frame-button-root-corner-color))
74
+ right var(--frame-button-root-corner-inset) bottom var(--frame-button-root-corner-inset) /
75
+ var(--frame-button-root-corner-size) 1px no-repeat,
76
+ linear-gradient(var(--frame-button-root-corner-color), var(--frame-button-root-corner-color))
77
+ right var(--frame-button-root-corner-inset) bottom var(--frame-button-root-corner-inset) / 1px
78
+ var(--frame-button-root-corner-size) no-repeat;
79
+ pointer-events: none;
80
+ content: '';
81
+ transition: opacity 150ms ease;
82
+ }
83
+
55
84
  .frame-icon-button {
56
85
  inline-size: var(--frame-button-root-height, 2.5rem);
86
+ min-inline-size: var(--frame-button-root-height, 2.5rem);
87
+ block-size: var(--frame-button-root-height, 2.5rem);
88
+ min-block-size: var(--frame-button-root-height, 2.5rem);
57
89
  padding-inline: 0;
58
90
  flex: 0 0 auto;
59
91
  }
@@ -94,9 +126,9 @@
94
126
  }
95
127
 
96
128
  .frame-button:focus-visible {
97
- outline: 2px solid transparent;
129
+ outline: 1px solid var(--frame-button-root-ring-color, var(--frame-ring));
98
130
  outline-offset: 2px;
99
- /* box-shadow: var(--frame-button-root-focus-shadow, var(--frame-button-root-shadow, var(--frame-shadow-sm)), 0 0 0 3px color-mix(in srgb, var(--frame-button-root-ring-color, var(--frame-ring)) 35%, transparent)); */
131
+ box-shadow: none;
100
132
  }
101
133
 
102
134
  .frame-button[data-loading]::after {
@@ -128,63 +160,88 @@
128
160
  .frame-button:where(:disabled, [data-disabled]) {
129
161
  cursor: not-allowed;
130
162
  opacity: var(--frame-button-root-disabled-opacity, 0.55);
163
+ filter: none;
164
+ transform: none;
165
+ transition: none;
131
166
  /* box-shadow: var(--frame-button-root-disabled-shadow, none); */
132
167
  }
133
168
 
169
+ .frame-button:where(:disabled, [data-disabled])::before {
170
+ transition: none;
171
+ }
172
+
134
173
  .frame-button[data-appearance='outline'] {
135
174
  --frame-button-root-bg: var(--frame-surface);
136
175
  --frame-button-root-border: var(--frame-border);
137
176
  --frame-button-root-color: var(--frame-surface-foreground);
138
- --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-surface) 80%, var(--frame-muted));
139
- --frame-button-root-hover-border: color-mix(in srgb, var(--frame-border) 80%, var(--frame-foreground));
177
+ --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-surface) 76%, var(--frame-muted));
178
+ --frame-button-root-hover-border: var(--frame-border-strong);
140
179
  --frame-button-root-hover-color: var(--frame-button-root-color);
141
180
  --frame-button-root-active-bg: color-mix(in srgb, var(--frame-surface) 65%, var(--frame-muted));
142
181
  --frame-button-root-active-border: var(--frame-button-root-hover-border);
143
182
  --frame-button-root-active-color: var(--frame-button-root-hover-color);
183
+ --frame-button-root-corner-color: var(--frame-frame-accent);
144
184
  }
145
185
 
146
186
  .frame-button[data-appearance='ghost'] {
147
187
  --frame-button-root-bg: transparent;
148
188
  --frame-button-root-border: transparent;
149
189
  --frame-button-root-color: var(--frame-foreground);
150
- --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-muted) 60%, transparent);
190
+ --frame-button-root-hover-bg: color-mix(in srgb, var(--frame-muted) 78%, transparent);
151
191
  --frame-button-root-hover-border: var(--frame-button-root-border);
152
192
  --frame-button-root-hover-color: var(--frame-button-root-color);
153
193
  --frame-button-root-active-bg: color-mix(in srgb, var(--frame-muted) 80%, transparent);
154
194
  --frame-button-root-active-border: var(--frame-button-root-hover-border);
155
195
  --frame-button-root-active-color: var(--frame-button-root-hover-color);
196
+ --frame-button-root-corner-color: var(--frame-frame-accent);
156
197
  /* box-shadow: var(--frame-button-root-shadow, none); */
157
198
  }
158
199
 
200
+ .frame-button[data-appearance='ghost']::before {
201
+ opacity: 0;
202
+ }
203
+
204
+ .frame-button[data-appearance='ghost']:where(:not(:disabled, [data-disabled])):hover::before,
205
+ .frame-button[data-appearance='ghost']:focus-visible::before {
206
+ opacity: 1;
207
+ }
208
+
159
209
  .frame-button[data-size='sm'] {
160
- min-height: 2rem;
210
+ --frame-button-root-height: 2rem;
211
+ min-height: var(--frame-button-root-height);
161
212
  padding-inline: 0.75rem;
162
213
  font-size: 0.8125rem;
163
214
  }
164
215
 
165
216
  .frame-button[data-size='lg'] {
166
- min-height: 2.75rem;
217
+ --frame-button-root-height: 2.75rem;
218
+ min-height: var(--frame-button-root-height);
167
219
  padding-inline: 1.25rem;
168
220
  font-size: 0.9375rem;
169
221
  }
170
222
 
171
223
  .frame-button[data-radius='none'] {
224
+ --frame-button-root-radius: 0px;
172
225
  border-radius: 0;
173
226
  }
174
227
 
175
228
  .frame-button[data-radius='sm'] {
229
+ --frame-button-root-radius: var(--frame-radius-sm);
176
230
  border-radius: var(--frame-radius-sm);
177
231
  }
178
232
 
179
233
  .frame-button[data-radius='md'] {
234
+ --frame-button-root-radius: var(--frame-radius-md);
180
235
  border-radius: var(--frame-radius-md);
181
236
  }
182
237
 
183
238
  .frame-button[data-radius='lg'] {
239
+ --frame-button-root-radius: var(--frame-radius-lg);
184
240
  border-radius: var(--frame-radius-lg);
185
241
  }
186
242
 
187
243
  .frame-button[data-radius='full'] {
244
+ --frame-button-root-radius: var(--frame-radius-full);
188
245
  border-radius: var(--frame-radius-full);
189
246
  }
190
247
 
@@ -1,69 +1,100 @@
1
- .frame-button-group,
2
- [frButtonGroup],
3
- frame-button-group {
4
- display: inline-flex;
5
- align-items: stretch;
6
- width: 100%;
7
- }
8
-
9
- .frame-button-group[data-orientation='vertical'],
10
- [frButtonGroup][data-orientation='vertical'],
11
- frame-button-group[data-orientation='vertical'] {
12
- flex-direction: column;
13
- }
14
-
15
- .frame-button-group[data-orientation='horizontal'] > * + *,
16
- [frButtonGroup][data-orientation='horizontal'] > * + *,
17
- frame-button-group[data-orientation='horizontal'] > * + * {
18
- margin-inline-start: -1px;
19
- }
20
-
21
- .frame-button-group[data-orientation='vertical'] > * + *,
22
- [frButtonGroup][data-orientation='vertical'] > * + *,
23
- frame-button-group[data-orientation='vertical'] > * + * {
24
- margin-block-start: -1px;
25
- }
26
-
27
- .frame-button-group[data-orientation='horizontal'] > :first-child,
28
- [frButtonGroup][data-orientation='horizontal'] > :first-child,
29
- frame-button-group[data-orientation='horizontal'] > :first-child {
30
- border-start-end-radius: 0;
31
- border-end-end-radius: 0;
32
- }
33
-
34
- .frame-button-group[data-orientation='horizontal'] > :last-child,
35
- [frButtonGroup][data-orientation='horizontal'] > :last-child,
36
- frame-button-group[data-orientation='horizontal'] > :last-child {
37
- border-start-start-radius: 0;
38
- border-end-start-radius: 0;
39
- }
40
-
41
- .frame-button-group[data-orientation='horizontal'] > :not(:first-child):not(:last-child),
42
- [frButtonGroup][data-orientation='horizontal'] > :not(:first-child):not(:last-child),
43
- frame-button-group[data-orientation='horizontal'] > :not(:first-child):not(:last-child) {
44
- border-radius: 0;
45
- }
46
-
47
- .frame-button-group[data-orientation='vertical'] > :first-child,
48
- [frButtonGroup][data-orientation='vertical'] > :first-child,
49
- frame-button-group[data-orientation='vertical'] > :first-child {
50
- border-end-start-radius: 0;
51
- border-end-end-radius: 0;
52
- }
53
-
54
- .frame-button-group[data-orientation='vertical'] > :last-child,
55
- [frButtonGroup][data-orientation='vertical'] > :last-child,
56
- frame-button-group[data-orientation='vertical'] > :last-child {
57
- border-start-start-radius: 0;
58
- border-start-end-radius: 0;
59
- }
60
-
61
- .frame-button-group[data-orientation='vertical'] > :not(:first-child):not(:last-child),
62
- [frButtonGroup][data-orientation='vertical'] > :not(:first-child):not(:last-child),
63
- frame-button-group[data-orientation='vertical'] > :not(:first-child):not(:last-child) {
64
- border-radius: 0;
65
- }
66
-
67
- .frame-button-group > * {
68
- position: relative;
69
- }
1
+ .frame-button-group,
2
+ [frButtonGroup],
3
+ frame-button-group {
4
+ position: relative;
5
+ display: inline-flex;
6
+ align-items: stretch;
7
+ width: 100%;
8
+ border: 1px solid var(--frame-frame-line-muted, var(--frame-border));
9
+ background: var(--frame-surface);
10
+ }
11
+
12
+ .frame-button-group[data-orientation='vertical'],
13
+ [frButtonGroup][data-orientation='vertical'],
14
+ frame-button-group[data-orientation='vertical'] {
15
+ flex-direction: column;
16
+ }
17
+
18
+ .frame-button-group[data-orientation='horizontal'] > * + *,
19
+ [frButtonGroup][data-orientation='horizontal'] > * + *,
20
+ frame-button-group[data-orientation='horizontal'] > * + * {
21
+ margin-inline-start: -1px;
22
+ }
23
+
24
+ .frame-button-group[data-orientation='vertical'] > * + *,
25
+ [frButtonGroup][data-orientation='vertical'] > * + *,
26
+ frame-button-group[data-orientation='vertical'] > * + * {
27
+ margin-block-start: -1px;
28
+ }
29
+
30
+ .frame-button-group[data-orientation='horizontal'] > :first-child,
31
+ [frButtonGroup][data-orientation='horizontal'] > :first-child,
32
+ frame-button-group[data-orientation='horizontal'] > :first-child {
33
+ border-start-end-radius: 0;
34
+ border-end-end-radius: 0;
35
+ }
36
+
37
+ .frame-button-group[data-orientation='horizontal'] > :last-child,
38
+ [frButtonGroup][data-orientation='horizontal'] > :last-child,
39
+ frame-button-group[data-orientation='horizontal'] > :last-child {
40
+ border-start-start-radius: 0;
41
+ border-end-start-radius: 0;
42
+ }
43
+
44
+ .frame-button-group[data-orientation='horizontal'] > :not(:first-child):not(:last-child),
45
+ [frButtonGroup][data-orientation='horizontal'] > :not(:first-child):not(:last-child),
46
+ frame-button-group[data-orientation='horizontal'] > :not(:first-child):not(:last-child) {
47
+ border-radius: 0;
48
+ }
49
+
50
+ .frame-button-group[data-orientation='vertical'] > :first-child,
51
+ [frButtonGroup][data-orientation='vertical'] > :first-child,
52
+ frame-button-group[data-orientation='vertical'] > :first-child {
53
+ border-end-start-radius: 0;
54
+ border-end-end-radius: 0;
55
+ }
56
+
57
+ .frame-button-group[data-orientation='vertical'] > :last-child,
58
+ [frButtonGroup][data-orientation='vertical'] > :last-child,
59
+ frame-button-group[data-orientation='vertical'] > :last-child {
60
+ border-start-start-radius: 0;
61
+ border-start-end-radius: 0;
62
+ }
63
+
64
+ .frame-button-group[data-orientation='vertical'] > :not(:first-child):not(:last-child),
65
+ [frButtonGroup][data-orientation='vertical'] > :not(:first-child):not(:last-child),
66
+ frame-button-group[data-orientation='vertical'] > :not(:first-child):not(:last-child) {
67
+ border-radius: 0;
68
+ }
69
+
70
+ .frame-button-group > * {
71
+ position: relative;
72
+ }
73
+
74
+ .frame-button-group::before,
75
+ [frButtonGroup]::before,
76
+ frame-button-group::before {
77
+ position: absolute;
78
+ inset: 0;
79
+ z-index: 2;
80
+ background:
81
+ linear-gradient(var(--frame-blueprint-corner-color, var(--frame-frame-accent)), var(--frame-blueprint-corner-color, var(--frame-frame-accent)))
82
+ left top / var(--frame-frame-tick-size, 0.375rem) 1px no-repeat,
83
+ linear-gradient(var(--frame-blueprint-corner-color, var(--frame-frame-accent)), var(--frame-blueprint-corner-color, var(--frame-frame-accent)))
84
+ left top / 1px var(--frame-frame-tick-size, 0.375rem) no-repeat,
85
+ linear-gradient(var(--frame-blueprint-corner-color, var(--frame-frame-accent)), var(--frame-blueprint-corner-color, var(--frame-frame-accent)))
86
+ right bottom / var(--frame-frame-tick-size, 0.375rem) 1px no-repeat,
87
+ linear-gradient(var(--frame-blueprint-corner-color, var(--frame-frame-accent)), var(--frame-blueprint-corner-color, var(--frame-frame-accent)))
88
+ right bottom / 1px var(--frame-frame-tick-size, 0.375rem) no-repeat;
89
+ content: "";
90
+ pointer-events: none;
91
+ }
92
+
93
+ .frame-button-group > .frame-button::before,
94
+ .frame-button-group > [frButton]::before,
95
+ [frButtonGroup] > .frame-button::before,
96
+ [frButtonGroup] > [frButton]::before,
97
+ frame-button-group > .frame-button::before,
98
+ frame-button-group > [frButton]::before {
99
+ content: none;
100
+ }
@@ -1,29 +1,29 @@
1
- :root {
2
- --frame-calendar-bg: var(--frame-surface);
3
- --frame-calendar-color: var(--frame-surface-foreground);
4
- --frame-calendar-border: var(--frame-border);
5
- --frame-calendar-radius: var(--frame-radius-lg);
6
- --frame-calendar-padding: 0.875rem;
7
- --frame-calendar-gap: 1rem;
8
- --frame-calendar-cell-size: 2.25rem;
9
- --frame-calendar-cell-radius: var(--frame-radius-md);
10
- --frame-calendar-muted-color: var(--frame-muted-foreground);
11
- --frame-calendar-day-hover-bg: var(--frame-muted);
12
- --frame-calendar-day-hover-color: var(--frame-foreground);
13
- --frame-calendar-day-selected-bg: var(--frame-primary);
14
- --frame-calendar-day-selected-color: var(--frame-primary-foreground);
15
- --frame-calendar-day-range-bg: color-mix(in srgb, var(--frame-primary) 14%, transparent);
16
- --frame-calendar-day-range-outline: var(--frame-background);
17
- --frame-calendar-day-today-border: color-mix(in srgb, var(--frame-primary) 55%, var(--frame-border));
18
- --frame-calendar-day-disabled-date-decoration: var(--frame-destructive);
19
- --frame-calendar-day-disabled-opacity: 0.38;
20
- --frame-calendar-nav-size: 2rem;
21
- --frame-calendar-nav-radius: var(--frame-radius-md);
22
- --frame-calendar-nav-hover-bg: var(--frame-muted);
23
- --frame-calendar-select-height: 2rem;
24
- --frame-calendar-select-radius: var(--frame-radius-md);
25
- --frame-calendar-select-border: var(--frame-border);
26
- --frame-calendar-select-bg: var(--frame-background);
27
- --frame-calendar-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--frame-ring) 26%, transparent);
28
- --frame-calendar-transition-duration: 150ms;
29
- }
1
+ :root {
2
+ --frame-calendar-bg: var(--frame-surface);
3
+ --frame-calendar-color: var(--frame-surface-foreground);
4
+ --frame-calendar-border: var(--frame-border);
5
+ --frame-calendar-radius: var(--frame-radius-lg);
6
+ --frame-calendar-padding: 0.875rem;
7
+ --frame-calendar-gap: 1rem;
8
+ --frame-calendar-cell-size: 2.25rem;
9
+ --frame-calendar-cell-radius: var(--frame-radius-md);
10
+ --frame-calendar-muted-color: var(--frame-muted-foreground);
11
+ --frame-calendar-day-hover-bg: var(--frame-muted);
12
+ --frame-calendar-day-hover-color: var(--frame-foreground);
13
+ --frame-calendar-day-selected-bg: var(--frame-primary);
14
+ --frame-calendar-day-selected-color: var(--frame-primary-foreground);
15
+ --frame-calendar-day-range-bg: color-mix(in srgb, var(--frame-primary) 14%, transparent);
16
+ --frame-calendar-day-range-outline: var(--frame-background);
17
+ --frame-calendar-day-today-border: color-mix(in srgb, var(--frame-primary) 55%, var(--frame-border));
18
+ --frame-calendar-day-disabled-date-decoration: var(--frame-destructive);
19
+ --frame-calendar-day-disabled-opacity: 0.38;
20
+ --frame-calendar-nav-size: 2rem;
21
+ --frame-calendar-nav-radius: var(--frame-radius-md);
22
+ --frame-calendar-nav-hover-bg: var(--frame-muted);
23
+ --frame-calendar-select-height: 2rem;
24
+ --frame-calendar-select-radius: var(--frame-radius-md);
25
+ --frame-calendar-select-border: var(--frame-border);
26
+ --frame-calendar-select-bg: var(--frame-background);
27
+ --frame-calendar-focus-shadow: none;
28
+ --frame-calendar-transition-duration: 150ms;
29
+ }