@frame-ui-ng/components 0.1.0-beta.0 → 0.2.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 (77) 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 +52 -7
  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/fesm2022/frame-ui-ng-components-accordion.mjs +26 -11
  24. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  25. package/fesm2022/frame-ui-ng-components-badge.mjs +1 -0
  26. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  27. package/fesm2022/frame-ui-ng-components-button.mjs +1 -1
  28. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  29. package/fesm2022/frame-ui-ng-components-command.mjs +19 -1
  30. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  31. package/fesm2022/frame-ui-ng-components-toast.mjs +152 -142
  32. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  33. package/fesm2022/frame-ui-ng-components.mjs +43 -13
  34. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  35. package/input/src/styles/_vars.css +65 -65
  36. package/input/src/styles/input-group.css +114 -112
  37. package/input/src/styles/input.css +197 -163
  38. package/input-otp/src/styles/_vars.css +21 -21
  39. package/item/src/styles/_vars.css +34 -34
  40. package/menubar/src/styles/_vars.css +22 -22
  41. package/modal/src/styles/_vars.css +19 -18
  42. package/modal/src/styles/modal.css +202 -179
  43. package/navigation-menu/src/styles/_vars.css +45 -45
  44. package/package.json +12 -3
  45. package/pagination/src/styles/_vars.css +22 -22
  46. package/pagination/src/styles/pagination.css +158 -138
  47. package/progress/src/styles/_vars.css +15 -15
  48. package/radio-group/src/styles/_vars.css +29 -29
  49. package/radio-group/src/styles/radio-group.css +146 -137
  50. package/resizable/src/styles/_vars.css +20 -20
  51. package/select/src/styles/_vars.css +28 -28
  52. package/select/src/styles/select-trigger.css +138 -95
  53. package/separator/src/styles/_vars.css +9 -9
  54. package/sheet/src/styles/_vars.css +20 -18
  55. package/sheet/src/styles/sheet.css +220 -215
  56. package/sidebar/src/styles/sidebar.css +544 -531
  57. package/slider/src/styles/_vars.css +17 -17
  58. package/src/styles/blueprint.css +666 -0
  59. package/src/styles/components.css +47 -47
  60. package/styles/blueprint.css +666 -0
  61. package/styles/components.css +47 -47
  62. package/styles.css +49 -49
  63. package/switch/src/styles/_vars.css +34 -34
  64. package/switch/src/styles/switch.css +130 -131
  65. package/tabs/src/styles/_vars.css +23 -23
  66. package/textarea/src/styles/_vars.css +20 -20
  67. package/textarea/src/styles/textarea.css +62 -60
  68. package/toast/src/styles/_vars.css +48 -47
  69. package/toast/src/styles/toast.css +279 -314
  70. package/toggle/src/styles/_vars.css +24 -24
  71. package/tooltip/src/styles/_vars.css +21 -21
  72. package/tooltip/src/styles/tooltip.css +105 -103
  73. package/types/frame-ui-ng-components-accordion.d.ts +3 -1
  74. package/types/frame-ui-ng-components-badge.d.ts +2 -2
  75. package/types/frame-ui-ng-components-command.d.ts +7 -2
  76. package/types/frame-ui-ng-components.d.ts +21 -14
  77. package/virtual-scroll/src/styles/virtual-scroll.css +54 -54
@@ -1,137 +1,146 @@
1
- @import './_vars.css';
2
-
3
- [frRadioGroup],
4
- frame-radio-group {
5
- display: grid;
6
- gap: var(--frame-radio-group-gap);
7
- min-width: 0;
8
- }
9
-
10
- [frRadioGroup][data-orientation='horizontal'],
11
- frame-radio-group[data-orientation='horizontal'] {
12
- display: flex;
13
- flex-wrap: wrap;
14
- align-items: center;
15
- gap: var(--frame-radio-group-horizontal-gap);
16
- }
17
-
18
- [frRadioGroup][data-disabled],
19
- frame-radio-group[data-disabled] {
20
- cursor: not-allowed;
21
- }
22
-
23
- [frRadioGroup][data-variant='cards'],
24
- frame-radio-group[data-variant='cards'] {
25
- gap: var(--frame-radio-group-card-gap);
26
- }
27
-
28
- [frRadioGroupItem] {
29
- appearance: none;
30
- -webkit-appearance: none;
31
- display: inline-grid;
32
- place-content: center;
33
- flex: 0 0 auto;
34
- inline-size: var(--frame-radio-group-item-size);
35
- block-size: var(--frame-radio-group-item-size);
36
- margin: 0;
37
- border: 1px solid var(--frame-radio-group-item-border);
38
- border-radius: 999px;
39
- background: var(--frame-radio-group-item-bg);
40
- color: var(--frame-radio-group-item-color);
41
- cursor: pointer;
42
- outline: none;
43
- vertical-align: middle;
44
- transition:
45
- background-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
46
- border-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
47
- box-shadow var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
48
- opacity var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing);
49
- }
50
-
51
- [frRadioGroupItem]::before {
52
- content: '';
53
- inline-size: var(--frame-radio-group-item-dot-size);
54
- block-size: var(--frame-radio-group-item-dot-size);
55
- border-radius: 999px;
56
- background: currentColor;
57
- transform: scale(0);
58
- transition: transform 120ms ease;
59
- }
60
-
61
- [frRadioGroupItem]:where(:not(:disabled)):hover {
62
- border-color: var(--frame-radio-group-item-hover-border);
63
- }
64
-
65
- [frRadioGroupItem]:focus-visible {
66
- box-shadow: var(--frame-radio-group-item-focus-shadow);
67
- }
68
-
69
- [frRadioGroupItem]:checked {
70
- border-color: var(--frame-radio-group-item-checked-border);
71
- background: var(--frame-radio-group-item-checked-bg);
72
- }
73
-
74
- [frRadioGroupItem]:checked::before {
75
- transform: scale(1);
76
- }
77
-
78
- [frRadioGroupItem]:disabled {
79
- cursor: not-allowed;
80
- opacity: var(--frame-radio-group-item-disabled-opacity);
81
- }
82
-
83
- [frRadioGroupField] {
84
- display: flex;
85
- align-items: flex-start;
86
- gap: var(--frame-field-gap);
87
- min-width: 0;
88
- }
89
-
90
- [frRadioGroupItem][aria-invalid='true'],
91
- [frRadioGroupItem].ng-invalid.ng-touched,
92
- [frRadioGroupItem].ng-invalid.ng-dirty {
93
- border-color: var(--frame-radio-group-item-invalid-border);
94
- }
95
-
96
- [frRadioGroupCard] {
97
- display: flex;
98
- align-items: flex-start;
99
- gap: var(--frame-radio-group-card-gap);
100
- min-width: 0;
101
- padding: var(--frame-radio-group-card-padding);
102
- border: 1px solid var(--frame-radio-group-card-border);
103
- border-radius: var(--frame-radio-group-card-radius);
104
- background: var(--frame-radio-group-card-bg);
105
- cursor: pointer;
106
- transition:
107
- border-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
108
- box-shadow var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
109
- opacity var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing);
110
- }
111
-
112
- [frRadioGroupCard]:has([frRadioGroupCardMeta]) {
113
- [frFieldContent] {
114
- flex-grow: 1;
115
- }
116
- }
117
-
118
- [frRadioGroupCard]:has([frRadioGroupItem]:where(:not(:disabled)):hover) {
119
- border-color: var(--frame-radio-group-card-hover-border);
120
- }
121
-
122
- [frRadioGroupCard]:has([frRadioGroupItem]:checked) {
123
- border-color: var(--frame-radio-group-card-checked-border);
124
- box-shadow: var(--frame-radio-group-card-checked-shadow);
125
- }
126
-
127
- [frRadioGroupCard]:has([frRadioGroupItem]:disabled) {
128
- cursor: not-allowed;
129
- opacity: var(--frame-radio-group-card-disabled-opacity);
130
- }
131
-
132
- [frRadioGroupCardMeta] {
133
- color: var(--frame-radio-group-card-meta-color);
134
- font-size: var(--frame-radio-group-card-meta-font-size);
135
- font-weight: var(--frame-radio-group-card-meta-font-weight);
136
- white-space: nowrap;
137
- }
1
+ @import './_vars.css';
2
+
3
+ [frRadioGroup],
4
+ frame-radio-group {
5
+ display: grid;
6
+ gap: var(--frame-radio-group-gap);
7
+ min-width: 0;
8
+ }
9
+
10
+ [frRadioGroup][data-orientation='horizontal'],
11
+ frame-radio-group[data-orientation='horizontal'] {
12
+ display: flex;
13
+ flex-wrap: wrap;
14
+ align-items: center;
15
+ gap: var(--frame-radio-group-horizontal-gap);
16
+ }
17
+
18
+ [frRadioGroup][data-disabled],
19
+ frame-radio-group[data-disabled] {
20
+ cursor: not-allowed;
21
+ }
22
+
23
+ [frRadioGroup][data-variant='cards'],
24
+ frame-radio-group[data-variant='cards'] {
25
+ gap: var(--frame-radio-group-card-gap);
26
+ }
27
+
28
+ [frRadioGroupItem] {
29
+ appearance: none;
30
+ -webkit-appearance: none;
31
+ display: inline-grid;
32
+ place-content: center;
33
+ flex: 0 0 auto;
34
+ inline-size: var(--frame-radio-group-item-size);
35
+ block-size: var(--frame-radio-group-item-size);
36
+ margin: 0;
37
+ border: 1px solid var(--frame-radio-group-item-border);
38
+ border-radius: 999px;
39
+ background: var(--frame-radio-group-item-bg);
40
+ color: var(--frame-radio-group-item-color);
41
+ cursor: pointer;
42
+ outline: none;
43
+ vertical-align: middle;
44
+ transition:
45
+ background-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
46
+ border-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
47
+ box-shadow var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
48
+ opacity var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
49
+ transform var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing);
50
+ }
51
+
52
+ [frRadioGroupItem]::before {
53
+ content: '';
54
+ inline-size: var(--frame-radio-group-item-dot-size);
55
+ block-size: var(--frame-radio-group-item-dot-size);
56
+ aspect-ratio: 1;
57
+ border-radius: 999px;
58
+ background: currentColor;
59
+ clip-path: circle(50%);
60
+ transform: scale(0);
61
+ transition: transform 120ms ease;
62
+ }
63
+
64
+ [frRadioGroupItem]:where(:not(:disabled)):hover {
65
+ border-color: var(--frame-radio-group-item-hover-border);
66
+ transform: translate(-1px, -1px);
67
+ box-shadow: 2px 2px 0 color-mix(in srgb, var(--frame-frame-line-muted, var(--frame-border)) 82%, transparent);
68
+ }
69
+
70
+ [frRadioGroupItem]:focus-visible {
71
+ box-shadow: var(--frame-radio-group-item-focus-shadow);
72
+ transform: translate(-1px, -1px);
73
+ }
74
+
75
+ [frRadioGroupItem]:checked {
76
+ border-color: var(--frame-radio-group-item-checked-border);
77
+ background: var(--frame-radio-group-item-checked-bg);
78
+ }
79
+
80
+ [frRadioGroupItem]:checked::before {
81
+ transform: scale(1);
82
+ }
83
+
84
+ [frRadioGroupItem]:disabled {
85
+ cursor: not-allowed;
86
+ opacity: var(--frame-radio-group-item-disabled-opacity);
87
+ }
88
+
89
+ [frRadioGroupField] {
90
+ display: flex;
91
+ align-items: flex-start;
92
+ gap: var(--frame-field-gap);
93
+ min-width: 0;
94
+ }
95
+
96
+ [frRadioGroupItem][aria-invalid='true'],
97
+ [frRadioGroupItem].ng-invalid.ng-touched,
98
+ [frRadioGroupItem].ng-invalid.ng-dirty {
99
+ border-color: var(--frame-radio-group-item-invalid-border);
100
+ }
101
+
102
+ [frRadioGroupCard] {
103
+ display: flex;
104
+ align-items: flex-start;
105
+ gap: var(--frame-radio-group-card-gap);
106
+ min-width: 0;
107
+ padding: var(--frame-radio-group-card-padding);
108
+ border: 1px solid var(--frame-radio-group-card-border);
109
+ border-radius: var(--frame-radio-group-card-radius);
110
+ background: var(--frame-radio-group-card-bg);
111
+ cursor: pointer;
112
+ transition:
113
+ border-color var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
114
+ box-shadow var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
115
+ opacity var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing),
116
+ transform var(--frame-radio-group-transition-duration) var(--frame-radio-group-transition-easing);
117
+ }
118
+
119
+ [frRadioGroupCard]:has([frRadioGroupCardMeta]) {
120
+ [frFieldContent] {
121
+ flex-grow: 1;
122
+ }
123
+ }
124
+
125
+ [frRadioGroupCard]:has([frRadioGroupItem]:where(:not(:disabled)):hover) {
126
+ border-color: var(--frame-radio-group-card-hover-border);
127
+ transform: translate(-1px, -1px);
128
+ box-shadow: 2px 2px 0 color-mix(in srgb, var(--frame-frame-line-muted, var(--frame-border)) 82%, transparent);
129
+ }
130
+
131
+ [frRadioGroupCard]:has([frRadioGroupItem]:checked) {
132
+ border-color: var(--frame-radio-group-card-checked-border);
133
+ box-shadow: var(--frame-radio-group-card-checked-shadow);
134
+ }
135
+
136
+ [frRadioGroupCard]:has([frRadioGroupItem]:disabled) {
137
+ cursor: not-allowed;
138
+ opacity: var(--frame-radio-group-card-disabled-opacity);
139
+ }
140
+
141
+ [frRadioGroupCardMeta] {
142
+ color: var(--frame-radio-group-card-meta-color);
143
+ font-size: var(--frame-radio-group-card-meta-font-size);
144
+ font-weight: var(--frame-radio-group-card-meta-font-weight);
145
+ white-space: nowrap;
146
+ }
@@ -1,20 +1,20 @@
1
- :root {
2
- --frame-resizable-border: var(--frame-border);
3
- --frame-resizable-radius: var(--frame-radius-lg);
4
- --frame-resizable-bg: var(--frame-surface);
5
- --frame-resizable-color: var(--frame-foreground);
6
- --frame-resizable-panel-padding: 1rem;
7
- --frame-resizable-panel-min-size: 0;
8
- --frame-resizable-handle-size: 0.625rem;
9
- --frame-resizable-handle-hit-size: 1rem;
10
- --frame-resizable-handle-bg: transparent;
11
- --frame-resizable-handle-hover-bg: color-mix(in srgb, var(--frame-primary) 16%, transparent);
12
- --frame-resizable-handle-active-bg: color-mix(in srgb, var(--frame-primary) 24%, transparent);
13
- --frame-resizable-handle-border: var(--frame-border);
14
- --frame-resizable-handle-indicator-size: 2rem;
15
- --frame-resizable-handle-indicator-thickness: 0.25rem;
16
- --frame-resizable-handle-indicator-bg: var(--frame-border);
17
- --frame-resizable-handle-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--frame-ring) 28%, transparent);
18
- --frame-resizable-transition-duration: 150ms;
19
- --frame-resizable-transition-easing: ease;
20
- }
1
+ :root {
2
+ --frame-resizable-border: var(--frame-border);
3
+ --frame-resizable-radius: var(--frame-radius-lg);
4
+ --frame-resizable-bg: var(--frame-surface);
5
+ --frame-resizable-color: var(--frame-foreground);
6
+ --frame-resizable-panel-padding: 1rem;
7
+ --frame-resizable-panel-min-size: 0;
8
+ --frame-resizable-handle-size: 0.625rem;
9
+ --frame-resizable-handle-hit-size: 1rem;
10
+ --frame-resizable-handle-bg: transparent;
11
+ --frame-resizable-handle-hover-bg: color-mix(in srgb, var(--frame-primary) 16%, transparent);
12
+ --frame-resizable-handle-active-bg: color-mix(in srgb, var(--frame-primary) 24%, transparent);
13
+ --frame-resizable-handle-border: var(--frame-border);
14
+ --frame-resizable-handle-indicator-size: 2rem;
15
+ --frame-resizable-handle-indicator-thickness: 0.25rem;
16
+ --frame-resizable-handle-indicator-bg: var(--frame-border);
17
+ --frame-resizable-handle-focus-shadow: none;
18
+ --frame-resizable-transition-duration: 150ms;
19
+ --frame-resizable-transition-easing: ease;
20
+ }
@@ -1,28 +1,28 @@
1
- :root {
2
- --frame-select-trigger-height: 2.5rem;
3
- --frame-select-trigger-min-width: 12rem;
4
- --frame-select-trigger-gap: 0.5rem;
5
- --frame-select-trigger-radius: var(--frame-radius-md);
6
- --frame-select-trigger-padding-inline: 1rem;
7
- --frame-select-trigger-font-size: 0.875rem;
8
- --frame-select-trigger-font-weight: 600;
9
- --frame-select-trigger-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--frame-ring) 28%, transparent);
10
- --frame-select-trigger-invalid-border: color-mix(in srgb, var(--frame-destructive) 65%, var(--frame-border));
11
- --frame-select-trigger-invalid-shadow: 0 0 0 3px color-mix(in srgb, var(--frame-destructive) 14%, transparent);
12
- --frame-select-trigger-disabled-opacity: 0.55;
13
- --frame-select-trigger-hover-filter: brightness(0.98);
14
- --frame-select-trigger-active-filter: brightness(0.96);
15
- --frame-select-trigger-transition-duration: 150ms;
16
- --frame-select-content-min-width: 12rem;
17
- --frame-select-content-max-height: min(18rem, 50vh);
18
- --frame-select-content-popper-shadow: 0 16px 32px -18px rgb(0 0 0 / 0.28);
19
- --frame-select-group-gap: 0.125rem;
20
- --frame-select-item-indicator-size: 1rem;
21
- --frame-select-item-indicator-offset: 0.625rem;
22
- --frame-select-item-padding-start: 2rem;
23
- --frame-select-item-padding-end: 2rem;
24
- --frame-select-item-padding-inline: 0.75rem;
25
- --frame-select-item-indicator-font-size: 0.875rem;
26
- --frame-select-error-color: var(--frame-destructive);
27
- --frame-select-error-font-size: 0.8125rem;
28
- }
1
+ :root {
2
+ --frame-select-trigger-height: 2.5rem;
3
+ --frame-select-trigger-min-width: 12rem;
4
+ --frame-select-trigger-gap: 0.5rem;
5
+ --frame-select-trigger-radius: 0px;
6
+ --frame-select-trigger-padding-inline: 1rem;
7
+ --frame-select-trigger-font-size: 0.875rem;
8
+ --frame-select-trigger-font-weight: 600;
9
+ --frame-select-trigger-focus-shadow: none;
10
+ --frame-select-trigger-invalid-border: color-mix(in srgb, var(--frame-destructive) 65%, var(--frame-border));
11
+ --frame-select-trigger-invalid-shadow: none;
12
+ --frame-select-trigger-disabled-opacity: 0.55;
13
+ --frame-select-trigger-hover-filter: brightness(0.98);
14
+ --frame-select-trigger-active-filter: brightness(0.96);
15
+ --frame-select-trigger-transition-duration: 150ms;
16
+ --frame-select-content-min-width: 12rem;
17
+ --frame-select-content-max-height: min(18rem, 50vh);
18
+ --frame-select-content-popper-shadow: 0 16px 32px -18px rgb(0 0 0 / 0.28);
19
+ --frame-select-group-gap: 0.125rem;
20
+ --frame-select-item-indicator-size: 1rem;
21
+ --frame-select-item-indicator-offset: 0.625rem;
22
+ --frame-select-item-padding-start: 2rem;
23
+ --frame-select-item-padding-end: 2rem;
24
+ --frame-select-item-padding-inline: 0.75rem;
25
+ --frame-select-item-indicator-font-size: 0.875rem;
26
+ --frame-select-error-color: var(--frame-destructive);
27
+ --frame-select-error-font-size: 0.8125rem;
28
+ }
@@ -1,95 +1,138 @@
1
- .frame-select__trigger {
2
- --frame-select-trigger-bg: var(--frame-surface);
3
- --frame-select-trigger-border: var(--frame-border);
4
- --frame-select-trigger-color: var(--frame-surface-foreground);
5
- --frame-select-trigger-hover-bg: color-mix(in srgb, var(--frame-surface) 80%, var(--frame-muted));
6
- --frame-select-trigger-hover-border: color-mix(in srgb, var(--frame-border) 80%, var(--frame-foreground));
7
- --frame-select-trigger-hover-color: var(--frame-select-trigger-color);
8
- --frame-select-trigger-active-bg: color-mix(in srgb, var(--frame-surface) 65%, var(--frame-muted));
9
- --frame-select-trigger-active-border: var(--frame-select-trigger-hover-border);
10
- --frame-select-trigger-active-color: var(--frame-select-trigger-hover-color);
11
- appearance: none;
12
- -webkit-appearance: none;
13
- display: inline-flex;
14
- justify-self: start;
15
- align-self: start;
16
- width: 100%;
17
- max-width: 100%;
18
- min-height: var(--frame-select-trigger-height);
19
- min-width: var(--frame-select-trigger-min-width);
20
- align-items: center;
21
- justify-content: space-between;
22
- gap: var(--frame-select-trigger-gap);
23
- border: 1px solid var(--frame-select-trigger-border);
24
- border-radius: var(--frame-select-trigger-radius);
25
- background: var(--frame-select-trigger-bg);
26
- color: var(--frame-select-trigger-color);
27
- cursor: pointer;
28
- margin: 0;
29
- padding-inline: var(--frame-select-trigger-padding-inline);
30
- padding-block: 0;
31
- font: inherit;
32
- font-size: var(--frame-select-trigger-font-size);
33
- font-weight: var(--frame-select-trigger-font-weight);
34
- line-height: 1.25;
35
- text-align: left;
36
- text-decoration: none;
37
- box-shadow: none;
38
- transition:
39
- border-color var(--frame-select-trigger-transition-duration) ease,
40
- box-shadow var(--frame-select-trigger-transition-duration) ease,
41
- background-color var(--frame-select-trigger-transition-duration) ease,
42
- color var(--frame-select-trigger-transition-duration) ease,
43
- opacity var(--frame-select-trigger-transition-duration) ease;
44
- }
45
-
46
- .frame-select__trigger:where(:not([data-disabled])):hover {
47
- background: var(--frame-select-trigger-hover-bg);
48
- border-color: var(--frame-select-trigger-hover-border);
49
- color: var(--frame-select-trigger-hover-color);
50
- filter: var(--frame-select-trigger-hover-filter);
51
- }
52
-
53
- .frame-select__trigger:where(:not([data-disabled])):active {
54
- background: var(--frame-select-trigger-active-bg);
55
- border-color: var(--frame-select-trigger-active-border);
56
- color: var(--frame-select-trigger-active-color);
57
- filter: var(--frame-select-trigger-active-filter);
58
- }
59
-
60
- .frame-select__trigger:focus-visible {
61
- outline: 2px solid transparent;
62
- outline-offset: 2px;
63
- box-shadow: var(--frame-select-trigger-focus-shadow);
64
- }
65
-
66
- .frame-select__trigger[data-invalid] {
67
- border-color: var(--frame-select-trigger-invalid-border);
68
- box-shadow: var(--frame-select-trigger-invalid-shadow);
69
- }
70
-
71
- .frame-select__trigger[data-disabled] {
72
- opacity: var(--frame-select-trigger-disabled-opacity);
73
- pointer-events: none;
74
- }
75
-
76
- .frame-select__value {
77
- min-width: 0;
78
- overflow: hidden;
79
- text-overflow: ellipsis;
80
- white-space: nowrap;
81
- }
82
-
83
- .frame-select__value[data-placeholder] {
84
- color: var(--frame-muted-foreground);
85
- }
86
-
87
- .frame-select__icon {
88
- display: flex;
89
- flex: 0 0 auto;
90
- color: var(--frame-muted-foreground);
91
- }
92
-
93
- .frame-select__trigger[data-state='open'] .frame-select__icon {
94
- transform: rotate(180deg);
95
- }
1
+ .frame-select__trigger {
2
+ --frame-select-trigger-bg: var(--frame-surface);
3
+ --frame-select-trigger-border: var(--frame-border);
4
+ --frame-select-trigger-color: var(--frame-surface-foreground);
5
+ --frame-select-trigger-hover-bg: color-mix(in srgb, var(--frame-surface) 80%, var(--frame-muted));
6
+ --frame-select-trigger-hover-border: color-mix(in srgb, var(--frame-border) 80%, var(--frame-foreground));
7
+ --frame-select-trigger-hover-color: var(--frame-select-trigger-color);
8
+ --frame-select-trigger-active-bg: color-mix(in srgb, var(--frame-surface) 65%, var(--frame-muted));
9
+ --frame-select-trigger-active-border: var(--frame-select-trigger-hover-border);
10
+ --frame-select-trigger-active-color: var(--frame-select-trigger-hover-color);
11
+ --frame-select-trigger-corner-color: var(--frame-frame-line-muted);
12
+ --frame-select-trigger-corner-inset: var(--frame-frame-tick-inset, 0px);
13
+ --frame-select-trigger-corner-size: clamp(
14
+ 0px,
15
+ calc((1px - var(--frame-select-trigger-radius, 0px)) * 9999),
16
+ var(--frame-frame-tick-size, 0.5rem)
17
+ );
18
+ appearance: none;
19
+ -webkit-appearance: none;
20
+ display: inline-flex;
21
+ justify-self: start;
22
+ align-self: start;
23
+ width: 100%;
24
+ max-width: 100%;
25
+ min-height: var(--frame-select-trigger-height);
26
+ min-width: var(--frame-select-trigger-min-width);
27
+ align-items: center;
28
+ justify-content: space-between;
29
+ gap: var(--frame-select-trigger-gap);
30
+ border: 1px solid var(--frame-select-trigger-border);
31
+ border-radius: var(--frame-select-trigger-radius);
32
+ background: var(--frame-select-trigger-bg);
33
+ color: var(--frame-select-trigger-color);
34
+ cursor: pointer;
35
+ margin: 0;
36
+ padding-inline: var(--frame-select-trigger-padding-inline);
37
+ padding-block: 0;
38
+ font: inherit;
39
+ font-size: var(--frame-select-trigger-font-size);
40
+ font-weight: var(--frame-select-trigger-font-weight);
41
+ line-height: 1.25;
42
+ text-align: left;
43
+ text-decoration: none;
44
+ box-shadow: none;
45
+ position: relative;
46
+ transition:
47
+ border-color var(--frame-select-trigger-transition-duration) ease,
48
+ box-shadow var(--frame-select-trigger-transition-duration) ease,
49
+ background-color var(--frame-select-trigger-transition-duration) ease,
50
+ color var(--frame-select-trigger-transition-duration) ease,
51
+ opacity var(--frame-select-trigger-transition-duration) ease,
52
+ transform var(--frame-select-trigger-transition-duration) ease;
53
+ }
54
+
55
+ .frame-select__trigger::before {
56
+ position: absolute;
57
+ inset: 0;
58
+ border-radius: inherit;
59
+ background:
60
+ linear-gradient(var(--frame-select-trigger-corner-color), var(--frame-select-trigger-corner-color))
61
+ left var(--frame-select-trigger-corner-inset) top var(--frame-select-trigger-corner-inset) /
62
+ var(--frame-select-trigger-corner-size) 1px no-repeat,
63
+ linear-gradient(var(--frame-select-trigger-corner-color), var(--frame-select-trigger-corner-color))
64
+ left var(--frame-select-trigger-corner-inset) top var(--frame-select-trigger-corner-inset) / 1px
65
+ var(--frame-select-trigger-corner-size) no-repeat,
66
+ linear-gradient(var(--frame-select-trigger-corner-color), var(--frame-select-trigger-corner-color))
67
+ right var(--frame-select-trigger-corner-inset) bottom var(--frame-select-trigger-corner-inset) /
68
+ var(--frame-select-trigger-corner-size) 1px no-repeat,
69
+ linear-gradient(var(--frame-select-trigger-corner-color), var(--frame-select-trigger-corner-color))
70
+ right var(--frame-select-trigger-corner-inset) bottom var(--frame-select-trigger-corner-inset) / 1px
71
+ var(--frame-select-trigger-corner-size) no-repeat;
72
+ pointer-events: none;
73
+ content: '';
74
+ }
75
+
76
+ .frame-select__trigger:where(:not([data-disabled])):hover {
77
+ background: var(--frame-select-trigger-hover-bg);
78
+ border-color: var(--frame-select-trigger-hover-border);
79
+ color: var(--frame-select-trigger-hover-color);
80
+ filter: var(--frame-select-trigger-hover-filter);
81
+ }
82
+
83
+ .frame-select__trigger:where(:not([data-disabled])):active {
84
+ background: var(--frame-select-trigger-active-bg);
85
+ border-color: var(--frame-select-trigger-active-border);
86
+ color: var(--frame-select-trigger-active-color);
87
+ filter: var(--frame-select-trigger-active-filter);
88
+ }
89
+
90
+ .frame-select__trigger:focus-visible {
91
+ outline: 1px solid var(--frame-ring);
92
+ outline-offset: 2px;
93
+ box-shadow: none;
94
+ }
95
+
96
+ .frame-select__trigger:focus-visible,
97
+ .frame-select__trigger[data-state='open'] {
98
+ --frame-select-trigger-corner-color: var(--frame-frame-accent);
99
+ }
100
+
101
+ .frame-select__trigger[data-state='open'] {
102
+ background: var(--frame-select-trigger-active-bg);
103
+ border-color: var(--frame-select-trigger-active-border);
104
+ color: var(--frame-select-trigger-active-color);
105
+ transform: translate(-1px, -1px);
106
+ box-shadow: 2px 2px 0 color-mix(in srgb, var(--frame-frame-line-muted, var(--frame-border)) 82%, transparent);
107
+ }
108
+
109
+ .frame-select__trigger[data-invalid] {
110
+ border-color: var(--frame-select-trigger-invalid-border);
111
+ box-shadow: none;
112
+ }
113
+
114
+ .frame-select__trigger[data-disabled] {
115
+ opacity: var(--frame-select-trigger-disabled-opacity);
116
+ pointer-events: none;
117
+ }
118
+
119
+ .frame-select__value {
120
+ min-width: 0;
121
+ overflow: hidden;
122
+ text-overflow: ellipsis;
123
+ white-space: nowrap;
124
+ }
125
+
126
+ .frame-select__value[data-placeholder] {
127
+ color: var(--frame-muted-foreground);
128
+ }
129
+
130
+ .frame-select__icon {
131
+ display: flex;
132
+ flex: 0 0 auto;
133
+ color: var(--frame-muted-foreground);
134
+ }
135
+
136
+ .frame-select__trigger[data-state='open'] .frame-select__icon {
137
+ transform: rotate(180deg);
138
+ }
@@ -1,9 +1,9 @@
1
- :root {
2
- --frame-separator-color: var(--frame-border);
3
- --frame-separator-thickness: 1px;
4
- --frame-separator-radius: 999px;
5
- --frame-separator-horizontal-width: 100%;
6
- --frame-separator-horizontal-margin-block: 0;
7
- --frame-separator-vertical-height: 100%;
8
- --frame-separator-vertical-margin-inline: 0;
9
- }
1
+ :root {
2
+ --frame-separator-color: var(--frame-border);
3
+ --frame-separator-thickness: 1px;
4
+ --frame-separator-radius: 0;
5
+ --frame-separator-horizontal-width: 100%;
6
+ --frame-separator-horizontal-margin-block: 0;
7
+ --frame-separator-vertical-height: 100%;
8
+ --frame-separator-vertical-margin-inline: 0;
9
+ }