@frame-ui-ng/components 0.3.0-beta.0 → 0.4.1

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 (172) hide show
  1. package/button/src/styles/button.css +5 -1
  2. package/button-group/src/styles/button-group.css +6 -0
  3. package/confirm-popover/src/styles/confirm-popover.css +20 -0
  4. package/drag-drop/src/styles/_vars.css +28 -0
  5. package/drag-drop/src/styles/drag-drop.css +132 -0
  6. package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
  7. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  8. package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
  9. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  10. package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
  11. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
  12. package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
  13. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  14. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
  15. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  16. package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
  17. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
  19. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-calendar.mjs +4 -0
  21. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
  23. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
  25. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
  27. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
  29. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-combobox.mjs +113 -68
  31. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
  33. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +165 -0
  35. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -0
  36. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
  37. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
  38. package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
  39. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
  41. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  42. package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
  43. package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
  44. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +74 -37
  45. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
  47. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
  49. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
  51. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
  53. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-input-otp.mjs +69 -69
  55. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
  57. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
  59. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
  61. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-modal.mjs +221 -129
  63. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
  65. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-pagination.mjs +45 -36
  67. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
  69. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-progress.mjs +4 -1
  71. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
  73. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-resizable.mjs +22 -26
  75. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
  77. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
  79. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components-sheet.mjs +118 -104
  81. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  82. package/fesm2022/frame-ui-ng-components-sidebar.mjs +45 -24
  83. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  84. package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
  85. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
  86. package/fesm2022/frame-ui-ng-components-slider.mjs +82 -75
  87. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  88. package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
  89. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
  90. package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
  91. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
  92. package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
  93. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  94. package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
  95. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  96. package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
  97. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
  98. package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
  99. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  100. package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
  101. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
  102. package/fesm2022/frame-ui-ng-components-tooltip.mjs +74 -25
  103. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  104. package/fesm2022/frame-ui-ng-components-utils.mjs +20 -0
  105. package/fesm2022/frame-ui-ng-components-utils.mjs.map +1 -0
  106. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +36 -20
  107. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  108. package/fesm2022/frame-ui-ng-components.mjs +1737 -845
  109. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  110. package/item/src/styles/item.css +188 -187
  111. package/modal/src/styles/modal.css +10 -1
  112. package/package.json +18 -2
  113. package/popover/src/styles/popover.css +106 -101
  114. package/sidebar/src/styles/sidebar.css +10 -4
  115. package/src/styles/blueprint.css +98 -0
  116. package/src/styles/components.css +2 -0
  117. package/styles/blueprint.css +98 -0
  118. package/styles/components.css +2 -0
  119. package/styles.css +2 -0
  120. package/tooltip/src/styles/tooltip.css +4 -4
  121. package/types/frame-ui-ng-components-accordion.d.ts +11 -4
  122. package/types/frame-ui-ng-components-alert.d.ts +4 -0
  123. package/types/frame-ui-ng-components-avatar.d.ts +7 -0
  124. package/types/frame-ui-ng-components-badge.d.ts +4 -0
  125. package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
  126. package/types/frame-ui-ng-components-button-group.d.ts +1 -0
  127. package/types/frame-ui-ng-components-button.d.ts +5 -0
  128. package/types/frame-ui-ng-components-calendar.d.ts +1 -0
  129. package/types/frame-ui-ng-components-card.d.ts +8 -3
  130. package/types/frame-ui-ng-components-carousel.d.ts +11 -2
  131. package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
  132. package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
  133. package/types/frame-ui-ng-components-combobox.d.ts +33 -4
  134. package/types/frame-ui-ng-components-command.d.ts +26 -4
  135. package/types/frame-ui-ng-components-confirm-modal.d.ts +50 -0
  136. package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
  137. package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
  138. package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
  139. package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
  140. package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
  141. package/types/frame-ui-ng-components-empty.d.ts +6 -0
  142. package/types/frame-ui-ng-components-field.d.ts +9 -0
  143. package/types/frame-ui-ng-components-forms.d.ts +1 -0
  144. package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
  145. package/types/frame-ui-ng-components-input-otp.d.ts +5 -1
  146. package/types/frame-ui-ng-components-input.d.ts +13 -0
  147. package/types/frame-ui-ng-components-item.d.ts +10 -0
  148. package/types/frame-ui-ng-components-menubar.d.ts +15 -0
  149. package/types/frame-ui-ng-components-modal.d.ts +30 -7
  150. package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
  151. package/types/frame-ui-ng-components-pagination.d.ts +8 -0
  152. package/types/frame-ui-ng-components-popover.d.ts +14 -2
  153. package/types/frame-ui-ng-components-progress.d.ts +2 -0
  154. package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
  155. package/types/frame-ui-ng-components-resizable.d.ts +3 -0
  156. package/types/frame-ui-ng-components-select.d.ts +23 -2
  157. package/types/frame-ui-ng-components-separator.d.ts +1 -0
  158. package/types/frame-ui-ng-components-sheet.d.ts +13 -0
  159. package/types/frame-ui-ng-components-sidebar.d.ts +23 -2
  160. package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
  161. package/types/frame-ui-ng-components-slider.d.ts +5 -2
  162. package/types/frame-ui-ng-components-spinner.d.ts +1 -0
  163. package/types/frame-ui-ng-components-switch.d.ts +6 -0
  164. package/types/frame-ui-ng-components-table.d.ts +26 -0
  165. package/types/frame-ui-ng-components-tabs.d.ts +4 -0
  166. package/types/frame-ui-ng-components-textarea.d.ts +1 -0
  167. package/types/frame-ui-ng-components-toast.d.ts +2 -0
  168. package/types/frame-ui-ng-components-toggle.d.ts +8 -2
  169. package/types/frame-ui-ng-components-tooltip.d.ts +11 -2
  170. package/types/frame-ui-ng-components-utils.d.ts +5 -0
  171. package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
  172. package/types/frame-ui-ng-components.d.ts +525 -96
@@ -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.3.0-beta.0",
3
+ "version": "0.4.1",
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.3.0-beta.0",
29
+ "@frame-ui-ng/foundation": "0.4.1",
30
30
  "rxjs": "^7.8.0"
31
31
  },
32
32
  "dependencies": {
@@ -108,6 +108,14 @@
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
+ },
115
+ "./confirm-popover": {
116
+ "types": "./types/frame-ui-ng-components-confirm-popover.d.ts",
117
+ "default": "./fesm2022/frame-ui-ng-components-confirm-popover.mjs"
118
+ },
111
119
  "./context-menu": {
112
120
  "types": "./types/frame-ui-ng-components-context-menu.d.ts",
113
121
  "default": "./fesm2022/frame-ui-ng-components-context-menu.mjs"
@@ -116,6 +124,10 @@
116
124
  "types": "./types/frame-ui-ng-components-date-picker.d.ts",
117
125
  "default": "./fesm2022/frame-ui-ng-components-date-picker.mjs"
118
126
  },
127
+ "./drag-drop": {
128
+ "types": "./types/frame-ui-ng-components-drag-drop.d.ts",
129
+ "default": "./fesm2022/frame-ui-ng-components-drag-drop.mjs"
130
+ },
119
131
  "./dropdown-menu": {
120
132
  "types": "./types/frame-ui-ng-components-dropdown-menu.d.ts",
121
133
  "default": "./fesm2022/frame-ui-ng-components-dropdown-menu.mjs"
@@ -236,6 +248,10 @@
236
248
  "types": "./types/frame-ui-ng-components-tooltip.d.ts",
237
249
  "default": "./fesm2022/frame-ui-ng-components-tooltip.mjs"
238
250
  },
251
+ "./utils": {
252
+ "types": "./types/frame-ui-ng-components-utils.d.ts",
253
+ "default": "./fesm2022/frame-ui-ng-components-utils.mjs"
254
+ },
239
255
  "./virtual-scroll": {
240
256
  "types": "./types/frame-ui-ng-components-virtual-scroll.d.ts",
241
257
  "default": "./fesm2022/frame-ui-ng-components-virtual-scroll.mjs"
@@ -1,101 +1,106 @@
1
- @import './_vars.css';
2
-
3
- frame-popover {
4
- display: inline-block;
5
- }
6
-
7
- .frame-popover__anchor {
8
- display: inline-flex;
9
- }
10
-
11
- [frPopoverTrigger] {
12
- cursor: pointer;
13
- }
14
-
15
- .frame-popover__backdrop {
16
- background: transparent;
17
- }
18
-
19
- .frame-popover__content {
20
- display: grid;
21
- gap: var(--frame-popover-content-gap);
22
- width: var(--frame-popover-content-width);
23
- max-width: min(var(--frame-popover-content-width), calc(100vw - 2rem));
24
- border: 1px solid var(--frame-popover-content-border);
25
- border-radius: var(--frame-popover-content-radius);
26
- background: var(--frame-popover-content-bg);
27
- box-shadow: var(--frame-popover-content-shadow);
28
- color: var(--frame-popover-content-color);
29
- padding: var(--frame-popover-content-padding);
30
- outline: none;
31
- transform-origin: var(--frame-popover-transform-origin, center);
32
- animation: frame-popover-in var(--frame-popover-motion-duration) var(--frame-popover-motion-easing);
33
- }
34
-
35
- .frame-popover-overlay--top .frame-popover__content {
36
- --frame-popover-transform-origin: bottom;
37
- }
38
-
39
- .frame-popover-overlay--right .frame-popover__content {
40
- --frame-popover-transform-origin: left;
41
- }
42
-
43
- .frame-popover-overlay--bottom .frame-popover__content {
44
- --frame-popover-transform-origin: top;
45
- }
46
-
47
- .frame-popover-overlay--left .frame-popover__content {
48
- --frame-popover-transform-origin: right;
49
- }
50
-
51
- [frPopoverHeader] {
52
- display: grid;
53
- gap: var(--frame-popover-header-gap);
54
- }
55
-
56
- [frPopoverTitle] {
57
- margin: 0;
58
- color: var(--frame-popover-title-color);
59
- font-size: var(--frame-popover-title-font-size);
60
- font-weight: var(--frame-popover-title-font-weight);
61
- line-height: 1.2;
62
- }
63
-
64
- [frPopoverDescription] {
65
- margin: 0;
66
- color: var(--frame-popover-description-color);
67
- font-size: var(--frame-popover-description-font-size);
68
- line-height: 1.45;
69
- }
70
-
71
- [frPopoverBody] {
72
- display: grid;
73
- gap: var(--frame-popover-body-gap);
74
- }
75
-
76
- [frPopoverFooter] {
77
- display: flex;
78
- flex-wrap: wrap;
79
- justify-content: flex-end;
80
- gap: var(--frame-popover-footer-gap);
81
- }
82
-
83
- [frPopoverClose] {
84
- border-radius: var(--frame-popover-close-radius);
85
- }
86
-
87
- [frPopoverClose]:where(:hover, :focus-visible) {
88
- background: var(--frame-popover-close-hover-bg);
89
- }
90
-
91
- @keyframes frame-popover-in {
92
- from {
93
- opacity: 0;
94
- transform: translateY(var(--frame-popover-motion-distance)) scale(var(--frame-popover-motion-scale));
95
- }
96
-
97
- to {
98
- opacity: 1;
99
- transform: translateY(0) scale(1);
100
- }
101
- }
1
+ @import './_vars.css';
2
+
3
+ frame-popover {
4
+ display: inline-block;
5
+ }
6
+
7
+ .frame-popover__anchor {
8
+ display: inline-flex;
9
+ }
10
+
11
+ [frPopoverTrigger] {
12
+ cursor: pointer;
13
+ }
14
+
15
+ .frame-popover__backdrop {
16
+ background: transparent;
17
+ }
18
+
19
+ .frame-popover__content {
20
+ display: grid;
21
+ gap: var(--frame-popover-content-gap);
22
+ width: var(--frame-popover-content-width);
23
+ max-width: min(var(--frame-popover-content-width), calc(100vw - 2rem));
24
+ border: 1px solid var(--frame-popover-content-border);
25
+ border-radius: var(--frame-popover-content-radius);
26
+ background: var(--frame-popover-content-bg);
27
+ box-shadow: var(--frame-popover-content-shadow);
28
+ color: var(--frame-popover-content-color);
29
+ padding: var(--frame-popover-content-padding);
30
+ outline: none;
31
+ transform-origin: var(--frame-popover-transform-origin, center);
32
+ animation: frame-popover-in var(--frame-popover-motion-duration) var(--frame-popover-motion-easing);
33
+ }
34
+
35
+ .frame-popover-overlay--top .frame-popover__content {
36
+ --frame-popover-transform-origin: bottom;
37
+ }
38
+
39
+ .frame-popover-overlay--right .frame-popover__content {
40
+ --frame-popover-transform-origin: left;
41
+ }
42
+
43
+ .frame-popover-overlay--bottom .frame-popover__content {
44
+ --frame-popover-transform-origin: top;
45
+ }
46
+
47
+ .frame-popover-overlay--left .frame-popover__content {
48
+ --frame-popover-transform-origin: right;
49
+ }
50
+
51
+ [frPopoverHeader],
52
+ .frame-popover__header {
53
+ display: grid;
54
+ gap: var(--frame-popover-header-gap);
55
+ }
56
+
57
+ [frPopoverTitle],
58
+ .frame-popover__title {
59
+ margin: 0;
60
+ color: var(--frame-popover-title-color);
61
+ font-size: var(--frame-popover-title-font-size);
62
+ font-weight: var(--frame-popover-title-font-weight);
63
+ line-height: 1.2;
64
+ }
65
+
66
+ [frPopoverDescription],
67
+ .frame-popover__description {
68
+ margin: 0;
69
+ color: var(--frame-popover-description-color);
70
+ font-size: var(--frame-popover-description-font-size);
71
+ line-height: 1.45;
72
+ }
73
+
74
+ [frPopoverBody],
75
+ .frame-popover__body {
76
+ display: grid;
77
+ gap: var(--frame-popover-body-gap);
78
+ }
79
+
80
+ [frPopoverFooter],
81
+ .frame-popover__footer {
82
+ display: flex;
83
+ flex-wrap: wrap;
84
+ justify-content: flex-end;
85
+ gap: var(--frame-popover-footer-gap);
86
+ }
87
+
88
+ [frPopoverClose] {
89
+ border-radius: var(--frame-popover-close-radius);
90
+ }
91
+
92
+ [frPopoverClose]:where(:hover, :focus-visible) {
93
+ background: var(--frame-popover-close-hover-bg);
94
+ }
95
+
96
+ @keyframes frame-popover-in {
97
+ from {
98
+ opacity: 0;
99
+ transform: translateY(var(--frame-popover-motion-distance)) scale(var(--frame-popover-motion-scale));
100
+ }
101
+
102
+ to {
103
+ opacity: 1;
104
+ transform: translateY(0) scale(1);
105
+ }
106
+ }