@frame-ui-ng/components 0.2.0-beta.0 → 0.4.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 (71) hide show
  1. package/button/src/styles/button.css +20 -4
  2. package/button-group/src/styles/button-group.css +6 -0
  3. package/dropdown-menu/src/styles/_vars.css +1 -1
  4. package/dropdown-menu/src/styles/dropdown-menu-item.css +87 -87
  5. package/fesm2022/frame-ui-ng-components-calendar.mjs +369 -263
  6. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  7. package/fesm2022/frame-ui-ng-components-combobox.mjs +48 -51
  8. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  9. package/fesm2022/frame-ui-ng-components-command.mjs +1 -1
  10. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  11. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +162 -0
  12. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -0
  13. package/fesm2022/frame-ui-ng-components-date-picker.mjs +232 -226
  14. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  15. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +45 -22
  16. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  17. package/fesm2022/frame-ui-ng-components-input-otp.mjs +64 -69
  18. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  19. package/fesm2022/frame-ui-ng-components-input.mjs +6 -3
  20. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  21. package/fesm2022/frame-ui-ng-components-modal.mjs +93 -15
  22. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  23. package/fesm2022/frame-ui-ng-components-pagination.mjs +37 -36
  24. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  25. package/fesm2022/frame-ui-ng-components-progress.mjs +2 -1
  26. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  27. package/fesm2022/frame-ui-ng-components-resizable.mjs +16 -26
  28. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  29. package/fesm2022/frame-ui-ng-components-select.mjs +6 -3
  30. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  31. package/fesm2022/frame-ui-ng-components-sheet.mjs +19 -16
  32. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  33. package/fesm2022/frame-ui-ng-components-sidebar.mjs +59 -10
  34. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  35. package/fesm2022/frame-ui-ng-components-slider.mjs +53 -59
  36. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  37. package/fesm2022/frame-ui-ng-components-tooltip.mjs +307 -254
  38. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  39. package/fesm2022/frame-ui-ng-components-utils.mjs +20 -0
  40. package/fesm2022/frame-ui-ng-components-utils.mjs.map +1 -0
  41. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +10 -12
  42. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  43. package/fesm2022/frame-ui-ng-components.mjs +1047 -806
  44. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  45. package/input/src/styles/input-group.css +50 -0
  46. package/item/src/styles/item.css +188 -187
  47. package/modal/src/styles/modal.css +10 -1
  48. package/package.json +10 -2
  49. package/select/src/styles/select-trigger.css +7 -36
  50. package/sidebar/src/styles/sidebar.css +10 -4
  51. package/src/styles/blueprint.css +102 -11
  52. package/src/styles/components.css +4 -4
  53. package/styles/blueprint.css +102 -11
  54. package/styles/components.css +4 -4
  55. package/styles.css +4 -4
  56. package/tooltip/src/styles/tooltip.css +7 -13
  57. package/types/frame-ui-ng-components-calendar.d.ts +14 -0
  58. package/types/frame-ui-ng-components-combobox.d.ts +1 -1
  59. package/types/frame-ui-ng-components-confirm-modal.d.ts +48 -0
  60. package/types/frame-ui-ng-components-context-menu.d.ts +2 -2
  61. package/types/frame-ui-ng-components-date-picker.d.ts +3 -1
  62. package/types/frame-ui-ng-components-dropdown-menu.d.ts +3 -3
  63. package/types/frame-ui-ng-components-input-otp.d.ts +1 -1
  64. package/types/frame-ui-ng-components-input.d.ts +6 -3
  65. package/types/frame-ui-ng-components-modal.d.ts +18 -7
  66. package/types/frame-ui-ng-components-select.d.ts +6 -3
  67. package/types/frame-ui-ng-components-sheet.d.ts +2 -0
  68. package/types/frame-ui-ng-components-sidebar.d.ts +8 -1
  69. package/types/frame-ui-ng-components-tooltip.d.ts +48 -73
  70. package/types/frame-ui-ng-components-utils.d.ts +5 -0
  71. package/types/frame-ui-ng-components.d.ts +87 -45
@@ -83,6 +83,36 @@ frame-input-group-addon {
83
83
  white-space: nowrap;
84
84
  }
85
85
 
86
+ .frame-input-group__addon:has(> .frame-button),
87
+ [frInputGroupAddon]:has(> .frame-button),
88
+ frame-input-group-addon:has(> .frame-button) {
89
+ align-items: stretch;
90
+ padding-inline: 0;
91
+ }
92
+
93
+ .frame-input-group__addon > .frame-button,
94
+ [frInputGroupAddon] > .frame-button,
95
+ frame-input-group-addon > .frame-button {
96
+ --frame-button-root-corner-size: 0;
97
+ block-size: 100%;
98
+ min-block-size: 100%;
99
+ border: 0;
100
+ border-radius: 0;
101
+ box-shadow: none;
102
+ }
103
+
104
+ .frame-input-group__addon > .frame-button::before,
105
+ [frInputGroupAddon] > .frame-button::before,
106
+ frame-input-group-addon > .frame-button::before {
107
+ display: none;
108
+ }
109
+
110
+ .frame-input-group__addon > .frame-button:focus-visible,
111
+ [frInputGroupAddon] > .frame-button:focus-visible,
112
+ frame-input-group-addon > .frame-button:focus-visible {
113
+ outline-offset: -2px;
114
+ }
115
+
86
116
  .frame-input-group:has([frInputGroupInput]:disabled) .frame-input-group__addon,
87
117
  .frame-input-group:has([frInputGroupInput]:disabled) [frInputGroupAddon],
88
118
  [frInputGroup]:has([frInputGroupInput]:disabled) .frame-input-group__addon,
@@ -104,6 +134,26 @@ frame-input-group-addon[data-align='inline-end'] {
104
134
  border-inline-start: 1px solid var(--frame-input-group-addon-border);
105
135
  }
106
136
 
137
+ .frame-input-group__addon[data-variant='ghost'],
138
+ [frInputGroupAddon][data-variant='ghost'],
139
+ frame-input-group-addon[data-variant='ghost'] {
140
+ min-inline-size: auto;
141
+ border-inline: 0;
142
+ background: transparent;
143
+ }
144
+
145
+ .frame-input-group__addon[data-align='inline-start'][data-variant='ghost'],
146
+ [frInputGroupAddon][data-align='inline-start'][data-variant='ghost'],
147
+ frame-input-group-addon[data-align='inline-start'][data-variant='ghost'] {
148
+ padding-inline-end: 0;
149
+ }
150
+
151
+ .frame-input-group__addon[data-align='inline-end'][data-variant='ghost'],
152
+ [frInputGroupAddon][data-align='inline-end'][data-variant='ghost'],
153
+ frame-input-group-addon[data-align='inline-end'][data-variant='ghost'] {
154
+ padding-inline-start: 0.25rem;
155
+ }
156
+
107
157
  .frame-input-group__text,
108
158
  [frInputGroupText],
109
159
  frame-input-group-text {
@@ -1,187 +1,188 @@
1
- @import './_vars.css';
2
-
3
- [frItem],
4
- frame-item {
5
- box-sizing: border-box;
6
- display: flex;
7
- align-items: flex-start;
8
- gap: var(--frame-item-gap);
9
- width: 100%;
10
- min-width: 0;
11
- border: 1px solid var(--frame-item-border);
12
- border-radius: var(--frame-item-radius);
13
- background: var(--frame-item-bg);
14
- color: var(--frame-item-color);
15
- padding: var(--frame-item-padding);
16
- text-align: start;
17
- text-decoration: none;
18
- transition:
19
- background-color 140ms ease,
20
- border-color 140ms ease,
21
- box-shadow 140ms ease,
22
- color 140ms ease,
23
- opacity 140ms ease;
24
- }
25
-
26
- [frItem][data-variant='outline'],
27
- frame-item[data-variant='outline'] {
28
- --frame-item-border: var(--frame-item-outline-border);
29
- }
30
-
31
- [frItem][data-variant='muted'],
32
- frame-item[data-variant='muted'] {
33
- --frame-item-bg: var(--frame-item-muted-bg);
34
- }
35
-
36
- [frItem][data-size='sm'],
37
- frame-item[data-size='sm'] {
38
- --frame-item-padding: var(--frame-item-sm-padding);
39
- --frame-item-media-size: var(--frame-item-sm-media-size);
40
- --frame-item-title-font-size: var(--frame-item-sm-title-font-size);
41
- }
42
-
43
- [frItem][data-size='xs'],
44
- frame-item[data-size='xs'] {
45
- --frame-item-padding: var(--frame-item-xs-padding);
46
- --frame-item-media-size: var(--frame-item-xs-media-size);
47
- --frame-item-title-font-size: var(--frame-item-xs-title-font-size);
48
- }
49
-
50
- [frItem][data-interactive]:where(:not([data-disabled])):hover,
51
- frame-item[data-interactive]:where(:not([data-disabled])):hover {
52
- background: var(--frame-item-hover-bg);
53
- color: var(--frame-item-hover-color);
54
- }
55
-
56
- [frItem][data-interactive]:where(:not([data-disabled])):focus-visible,
57
- frame-item[data-interactive]:where(:not([data-disabled])):focus-visible {
58
- outline: none;
59
- box-shadow: var(--frame-item-focus-shadow);
60
- }
61
-
62
- [frItem][data-disabled],
63
- frame-item[data-disabled] {
64
- cursor: not-allowed;
65
- opacity: var(--frame-item-disabled-opacity);
66
- }
67
-
68
- .frame-item-group,
69
- [frItemGroup],
70
- frame-item-group {
71
- display: grid;
72
- gap: 0;
73
- width: 100%;
74
- border: 1px solid var(--frame-item-outline-border);
75
- border-radius: var(--frame-item-radius);
76
- overflow: hidden;
77
- }
78
-
79
- .frame-item-group > [frItem],
80
- .frame-item-group > frame-item,
81
- [frItemGroup] > [frItem],
82
- [frItemGroup] > frame-item,
83
- frame-item-group > [frItem],
84
- frame-item-group > frame-item {
85
- border: 0;
86
- border-radius: 0;
87
- }
88
-
89
- [frItemSeparator],
90
- frame-item-separator {
91
- display: block;
92
- height: 1px;
93
- margin-inline: var(--frame-item-padding);
94
- background: var(--frame-item-outline-border);
95
- }
96
-
97
- [frItemHeader],
98
- frame-item-header,
99
- [frItemFooter],
100
- frame-item-footer {
101
- display: grid;
102
- min-width: 0;
103
- }
104
-
105
- [frItemHeader],
106
- frame-item-header {
107
- gap: var(--frame-item-header-gap);
108
- }
109
-
110
- [frItemFooter],
111
- frame-item-footer {
112
- gap: var(--frame-item-footer-gap);
113
- }
114
-
115
- [frItemMedia],
116
- frame-item-media {
117
- display: inline-flex;
118
- flex: 0 0 auto;
119
- align-items: center;
120
- justify-content: center;
121
- inline-size: var(--frame-item-media-size);
122
- block-size: var(--frame-item-media-size);
123
- border-radius: var(--frame-item-media-radius);
124
- color: var(--frame-item-media-color);
125
- overflow: hidden;
126
- }
127
-
128
- [frItemMedia][data-variant='icon'],
129
- frame-item-media[data-variant='icon'] {
130
- background: var(--frame-item-media-bg);
131
- }
132
-
133
- [frItemMedia][data-variant='image'],
134
- frame-item-media[data-variant='image'],
135
- [frItemMedia][data-variant='avatar'],
136
- frame-item-media[data-variant='avatar'] {
137
- background: transparent;
138
- }
139
-
140
- [frItemMedia] > ng-icon,
141
- frame-item-media > ng-icon,
142
- [frItemMedia] > svg,
143
- frame-item-media > svg {
144
- inline-size: var(--frame-item-media-icon-size);
145
- block-size: var(--frame-item-media-icon-size);
146
- }
147
-
148
- [frItemMedia] img,
149
- frame-item-media img {
150
- inline-size: 100%;
151
- block-size: 100%;
152
- object-fit: cover;
153
- }
154
-
155
- [frItemContent],
156
- frame-item-content {
157
- display: grid;
158
- flex: 1 1 auto;
159
- gap: var(--frame-item-content-gap);
160
- min-width: 0;
161
- }
162
-
163
- [frItemTitle],
164
- frame-item-title {
165
- color: var(--frame-item-title-color);
166
- font-size: var(--frame-item-title-font-size);
167
- font-weight: var(--frame-item-title-font-weight);
168
- line-height: 1.25;
169
- margin: 0;
170
- }
171
-
172
- [frItemDescription],
173
- frame-item-description {
174
- color: var(--frame-item-description-color);
175
- font-size: var(--frame-item-description-font-size);
176
- line-height: 1.45;
177
- margin: 0;
178
- }
179
-
180
- [frItemActions],
181
- frame-item-actions {
182
- display: inline-flex;
183
- flex: 0 0 auto;
184
- align-items: center;
185
- gap: var(--frame-item-actions-gap);
186
- margin-inline-start: auto;
187
- }
1
+ @import './_vars.css';
2
+
3
+ [frItem],
4
+ frame-item {
5
+ box-sizing: border-box;
6
+ display: flex;
7
+ align-items: flex-start;
8
+ gap: var(--frame-item-gap);
9
+ width: 100%;
10
+ min-width: 0;
11
+ border: 1px solid var(--frame-item-border);
12
+ border-radius: var(--frame-item-radius);
13
+ background: var(--frame-item-bg);
14
+ color: var(--frame-item-color);
15
+ padding: var(--frame-item-padding);
16
+ text-align: start;
17
+ text-decoration: none;
18
+ transition:
19
+ background-color 140ms ease,
20
+ border-color 140ms ease,
21
+ box-shadow 140ms ease,
22
+ color 140ms ease,
23
+ opacity 140ms ease;
24
+ }
25
+
26
+ [frItem][data-variant='outline'],
27
+ frame-item[data-variant='outline'] {
28
+ --frame-item-border: var(--frame-item-outline-border);
29
+ }
30
+
31
+ [frItem][data-variant='muted'],
32
+ frame-item[data-variant='muted'] {
33
+ --frame-item-bg: var(--frame-item-muted-bg);
34
+ }
35
+
36
+ [frItem][data-size='sm'],
37
+ frame-item[data-size='sm'] {
38
+ --frame-item-padding: var(--frame-item-sm-padding);
39
+ --frame-item-media-size: var(--frame-item-sm-media-size);
40
+ --frame-item-title-font-size: var(--frame-item-sm-title-font-size);
41
+ }
42
+
43
+ [frItem][data-size='xs'],
44
+ frame-item[data-size='xs'] {
45
+ --frame-item-padding: var(--frame-item-xs-padding);
46
+ --frame-item-media-size: var(--frame-item-xs-media-size);
47
+ --frame-item-title-font-size: var(--frame-item-xs-title-font-size);
48
+ }
49
+
50
+ [frItem][data-interactive]:where(:not([data-disabled])):hover,
51
+ frame-item[data-interactive]:where(:not([data-disabled])):hover {
52
+ cursor: pointer;
53
+ background: var(--frame-item-hover-bg);
54
+ color: var(--frame-item-hover-color);
55
+ }
56
+
57
+ [frItem][data-interactive]:where(:not([data-disabled])):focus-visible,
58
+ frame-item[data-interactive]:where(:not([data-disabled])):focus-visible {
59
+ outline: none;
60
+ box-shadow: var(--frame-item-focus-shadow);
61
+ }
62
+
63
+ [frItem][data-disabled],
64
+ frame-item[data-disabled] {
65
+ cursor: not-allowed;
66
+ opacity: var(--frame-item-disabled-opacity);
67
+ }
68
+
69
+ .frame-item-group,
70
+ [frItemGroup],
71
+ frame-item-group {
72
+ display: grid;
73
+ gap: 0;
74
+ width: 100%;
75
+ border: 1px solid var(--frame-item-outline-border);
76
+ border-radius: var(--frame-item-radius);
77
+ overflow: hidden;
78
+ }
79
+
80
+ .frame-item-group > [frItem],
81
+ .frame-item-group > frame-item,
82
+ [frItemGroup] > [frItem],
83
+ [frItemGroup] > frame-item,
84
+ frame-item-group > [frItem],
85
+ frame-item-group > frame-item {
86
+ border: 0;
87
+ border-radius: 0;
88
+ }
89
+
90
+ [frItemSeparator],
91
+ frame-item-separator {
92
+ display: block;
93
+ height: 1px;
94
+ margin-inline: var(--frame-item-padding);
95
+ background: var(--frame-item-outline-border);
96
+ }
97
+
98
+ [frItemHeader],
99
+ frame-item-header,
100
+ [frItemFooter],
101
+ frame-item-footer {
102
+ display: grid;
103
+ min-width: 0;
104
+ }
105
+
106
+ [frItemHeader],
107
+ frame-item-header {
108
+ gap: var(--frame-item-header-gap);
109
+ }
110
+
111
+ [frItemFooter],
112
+ frame-item-footer {
113
+ gap: var(--frame-item-footer-gap);
114
+ }
115
+
116
+ [frItemMedia],
117
+ frame-item-media {
118
+ display: inline-flex;
119
+ flex: 0 0 auto;
120
+ align-items: center;
121
+ justify-content: center;
122
+ inline-size: var(--frame-item-media-size);
123
+ block-size: var(--frame-item-media-size);
124
+ border-radius: var(--frame-item-media-radius);
125
+ color: var(--frame-item-media-color);
126
+ overflow: hidden;
127
+ }
128
+
129
+ [frItemMedia][data-variant='icon'],
130
+ frame-item-media[data-variant='icon'] {
131
+ background: var(--frame-item-media-bg);
132
+ }
133
+
134
+ [frItemMedia][data-variant='image'],
135
+ frame-item-media[data-variant='image'],
136
+ [frItemMedia][data-variant='avatar'],
137
+ frame-item-media[data-variant='avatar'] {
138
+ background: transparent;
139
+ }
140
+
141
+ [frItemMedia] > ng-icon,
142
+ frame-item-media > ng-icon,
143
+ [frItemMedia] > svg,
144
+ frame-item-media > svg {
145
+ inline-size: var(--frame-item-media-icon-size);
146
+ block-size: var(--frame-item-media-icon-size);
147
+ }
148
+
149
+ [frItemMedia] img,
150
+ frame-item-media img {
151
+ inline-size: 100%;
152
+ block-size: 100%;
153
+ object-fit: cover;
154
+ }
155
+
156
+ [frItemContent],
157
+ frame-item-content {
158
+ display: grid;
159
+ flex: 1 1 auto;
160
+ gap: var(--frame-item-content-gap);
161
+ min-width: 0;
162
+ }
163
+
164
+ [frItemTitle],
165
+ frame-item-title {
166
+ color: var(--frame-item-title-color);
167
+ font-size: var(--frame-item-title-font-size);
168
+ font-weight: var(--frame-item-title-font-weight);
169
+ line-height: 1.25;
170
+ margin: 0;
171
+ }
172
+
173
+ [frItemDescription],
174
+ frame-item-description {
175
+ color: var(--frame-item-description-color);
176
+ font-size: var(--frame-item-description-font-size);
177
+ line-height: 1.45;
178
+ margin: 0;
179
+ }
180
+
181
+ [frItemActions],
182
+ frame-item-actions {
183
+ display: inline-flex;
184
+ flex: 0 0 auto;
185
+ align-items: center;
186
+ gap: var(--frame-item-actions-gap);
187
+ margin-inline-start: auto;
188
+ }
@@ -17,7 +17,7 @@
17
17
  .frame-modal__panel {
18
18
  position: relative;
19
19
  display: flex;
20
- max-height: min(calc(100dvh - 2rem), 42rem);
20
+ max-height: 80dvh;
21
21
  width: min(calc(100vw - 2rem), 32rem);
22
22
  flex-direction: column;
23
23
  gap: var(--frame-modal-gap);
@@ -72,6 +72,10 @@
72
72
  min-height: 0;
73
73
  }
74
74
 
75
+ .frame-modal__panel[data-confirm-modal] {
76
+ gap: 0;
77
+ }
78
+
75
79
  .frame-modal__header,
76
80
  .frame-modal__body,
77
81
  .frame-modal__footer {
@@ -93,6 +97,7 @@
93
97
  min-height: 0;
94
98
  flex: 0 1 auto;
95
99
  gap: 1rem;
100
+ overflow-y: auto;
96
101
  }
97
102
 
98
103
  .frame-modal__panel[data-scrollable] .frame-modal__body {
@@ -113,6 +118,10 @@
113
118
  padding-block-end: var(--frame-modal-padding);
114
119
  }
115
120
 
121
+ .frame-modal__panel[data-confirm-modal] .frame-modal__footer {
122
+ border-block-start: 0;
123
+ }
124
+
116
125
  .frame-modal__panel[data-sticky-footer] .frame-modal__footer {
117
126
  flex: 0 0 auto;
118
127
  border-block-start: 1px solid var(--frame-modal-border);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frame-ui-ng/components",
3
- "version": "0.2.0-beta.0",
3
+ "version": "0.4.0-beta.0",
4
4
  "description": "Angular components for FrameUI.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  "@angular/common": ">=21.0.0 <22.0.0",
27
27
  "@angular/core": ">=21.0.0 <22.0.0",
28
28
  "@angular/forms": ">=21.0.0 <22.0.0",
29
- "@frame-ui-ng/foundation": "0.2.0-beta.0",
29
+ "@frame-ui-ng/foundation": "0.4.0-beta.0",
30
30
  "rxjs": "^7.8.0"
31
31
  },
32
32
  "dependencies": {
@@ -108,6 +108,10 @@
108
108
  "types": "./types/frame-ui-ng-components-command.d.ts",
109
109
  "default": "./fesm2022/frame-ui-ng-components-command.mjs"
110
110
  },
111
+ "./confirm-modal": {
112
+ "types": "./types/frame-ui-ng-components-confirm-modal.d.ts",
113
+ "default": "./fesm2022/frame-ui-ng-components-confirm-modal.mjs"
114
+ },
111
115
  "./context-menu": {
112
116
  "types": "./types/frame-ui-ng-components-context-menu.d.ts",
113
117
  "default": "./fesm2022/frame-ui-ng-components-context-menu.mjs"
@@ -236,6 +240,10 @@
236
240
  "types": "./types/frame-ui-ng-components-tooltip.d.ts",
237
241
  "default": "./fesm2022/frame-ui-ng-components-tooltip.mjs"
238
242
  },
243
+ "./utils": {
244
+ "types": "./types/frame-ui-ng-components-utils.d.ts",
245
+ "default": "./fesm2022/frame-ui-ng-components-utils.mjs"
246
+ },
239
247
  "./virtual-scroll": {
240
248
  "types": "./types/frame-ui-ng-components-virtual-scroll.d.ts",
241
249
  "default": "./fesm2022/frame-ui-ng-components-virtual-scroll.mjs"
@@ -8,13 +8,6 @@
8
8
  --frame-select-trigger-active-bg: color-mix(in srgb, var(--frame-surface) 65%, var(--frame-muted));
9
9
  --frame-select-trigger-active-border: var(--frame-select-trigger-hover-border);
10
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
11
  appearance: none;
19
12
  -webkit-appearance: none;
20
13
  display: inline-flex;
@@ -25,7 +18,7 @@
25
18
  min-height: var(--frame-select-trigger-height);
26
19
  min-width: var(--frame-select-trigger-min-width);
27
20
  align-items: center;
28
- justify-content: space-between;
21
+ justify-content: flex-start;
29
22
  gap: var(--frame-select-trigger-gap);
30
23
  border: 1px solid var(--frame-select-trigger-border);
31
24
  border-radius: var(--frame-select-trigger-radius);
@@ -42,7 +35,6 @@
42
35
  text-align: left;
43
36
  text-decoration: none;
44
37
  box-shadow: none;
45
- position: relative;
46
38
  transition:
47
39
  border-color var(--frame-select-trigger-transition-duration) ease,
48
40
  box-shadow var(--frame-select-trigger-transition-duration) ease,
@@ -52,27 +44,6 @@
52
44
  transform var(--frame-select-trigger-transition-duration) ease;
53
45
  }
54
46
 
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
47
  .frame-select__trigger:where(:not([data-disabled])):hover {
77
48
  background: var(--frame-select-trigger-hover-bg);
78
49
  border-color: var(--frame-select-trigger-hover-border);
@@ -93,11 +64,6 @@
93
64
  box-shadow: none;
94
65
  }
95
66
 
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
67
  .frame-select__trigger[data-state='open'] {
102
68
  background: var(--frame-select-trigger-active-bg);
103
69
  border-color: var(--frame-select-trigger-active-border);
@@ -117,6 +83,7 @@
117
83
  }
118
84
 
119
85
  .frame-select__value {
86
+ flex: 1 1 auto;
120
87
  min-width: 0;
121
88
  overflow: hidden;
122
89
  text-overflow: ellipsis;
@@ -133,6 +100,10 @@
133
100
  color: var(--frame-muted-foreground);
134
101
  }
135
102
 
136
- .frame-select__trigger[data-state='open'] .frame-select__icon {
103
+ .frame-select__icon[data-position='trailing'] {
104
+ margin-inline-start: auto;
105
+ }
106
+
107
+ .frame-select__trigger[data-state='open'] .frame-select__icon[data-position='trailing'] {
137
108
  transform: rotate(180deg);
138
109
  }
@@ -284,10 +284,10 @@ frame-sidebar-menu-button[data-variant="outline"] {
284
284
  border: 1px solid var(--frame-sidebar-border);
285
285
  }
286
286
 
287
- [frSidebarMenuButton]:hover,
288
- frame-sidebar-menu-button:hover,
289
- [frSidebarMenuSubButton]:hover,
290
- frame-sidebar-menu-sub-button:hover {
287
+ [frSidebarMenuButton]:not([data-disabled]):hover,
288
+ frame-sidebar-menu-button:not([data-disabled]):hover,
289
+ [frSidebarMenuSubButton]:not([data-disabled]):hover,
290
+ frame-sidebar-menu-sub-button:not([data-disabled]):hover {
291
291
  border-color: var(--frame-frame-line-muted);
292
292
  background: var(--frame-sidebar-accent);
293
293
  color: var(--frame-sidebar-accent-color);
@@ -319,6 +319,7 @@ frame-sidebar-menu-button[data-disabled],
319
319
  frame-sidebar-menu-sub-button[data-disabled] {
320
320
  cursor: not-allowed;
321
321
  opacity: 0.5;
322
+ transition: none;
322
323
  }
323
324
 
324
325
  [frSidebarMenuButton] > span,
@@ -487,6 +488,11 @@ frame-sidebar[data-side="right"] frame-sidebar-rail {
487
488
  inset-inline: -0.375rem auto;
488
489
  }
489
490
 
491
+ [frSidebar]:not([data-resizable]) [frSidebarRail],
492
+ frame-sidebar:not([data-resizable]) frame-sidebar-rail {
493
+ cursor: default;
494
+ }
495
+
490
496
  [frSidebarRail]::after,
491
497
  frame-sidebar-rail::after {
492
498
  position: absolute;