@frame-ui-ng/components 0.5.1-beta.0 → 0.6.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 (105) hide show
  1. package/accordion/src/styles/_vars.css +2 -5
  2. package/accordion/src/styles/accordion.css +44 -30
  3. package/breadcrumb/src/styles/breadcrumb.css +12 -2
  4. package/button/src/styles/button.css +5 -51
  5. package/button-group/src/styles/button-group.css +0 -38
  6. package/calendar/src/styles/_vars.css +4 -0
  7. package/calendar/src/styles/calendar.css +26 -18
  8. package/carousel/src/styles/carousel.css +103 -89
  9. package/checkbox/src/styles/checkbox.css +14 -5
  10. package/collapsible/src/styles/_vars.css +1 -0
  11. package/collapsible/src/styles/collapsible.css +15 -11
  12. package/combobox/src/styles/combobox.css +11 -2
  13. package/confirm-popover/src/styles/confirm-popover.css +0 -1
  14. package/date-picker/src/styles/date-picker.css +15 -10
  15. package/dropdown-menu/src/styles/dropdown-menu-item.css +6 -2
  16. package/fesm2022/frame-ui-ng-components-accordion.mjs +201 -147
  17. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-alert.mjs +2 -2
  19. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +10 -2
  21. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-button-group.mjs +2 -2
  23. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-button.mjs +2 -2
  25. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-calendar.mjs +202 -50
  27. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-card.mjs +2 -2
  29. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-carousel.mjs +2 -2
  31. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-collapsible.mjs +80 -22
  33. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-combobox.mjs +61 -6
  35. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  36. package/fesm2022/frame-ui-ng-components-command.mjs +2 -2
  37. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +6 -6
  39. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-date-picker.mjs +75 -37
  41. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +2 -2
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +2 -2
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-hover-card.mjs +2 -2
  47. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-input-otp.mjs +2 -2
  49. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-input.mjs +2 -2
  51. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-item.mjs +2 -2
  53. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-menubar.mjs +2 -2
  55. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-modal.mjs +10 -4
  57. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +4 -4
  59. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-pagination.mjs +20 -4
  61. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-popover.mjs +2 -2
  63. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-radio-group.mjs +2 -2
  65. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-resizable.mjs +2 -2
  67. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-sheet.mjs +90 -65
  69. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-table.mjs +6 -5
  71. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-tabs.mjs +2 -2
  73. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-toast.mjs +6 -6
  75. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-tooltip.mjs +6 -6
  77. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +4 -4
  79. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components.mjs +850 -420
  81. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  82. package/input/src/styles/input-group.css +0 -7
  83. package/input/src/styles/input.css +0 -23
  84. package/modal/src/styles/modal.css +5 -19
  85. package/package.json +6 -6
  86. package/pagination/src/styles/pagination.css +6 -2
  87. package/popover/src/styles/popover.css +3 -3
  88. package/select/src/styles/select-item.css +67 -68
  89. package/sheet/src/styles/sheet.css +32 -19
  90. package/src/styles/components.css +2 -2
  91. package/src/styles/corner-handles.css +217 -0
  92. package/styles/components.css +2 -2
  93. package/styles/corner-handles.css +217 -0
  94. package/styles.css +2 -2
  95. package/toggle/src/styles/toggle.css +6 -1
  96. package/tooltip/src/styles/tooltip.css +0 -1
  97. package/types/frame-ui-ng-components-accordion.d.ts +69 -61
  98. package/types/frame-ui-ng-components-calendar.d.ts +7 -7
  99. package/types/frame-ui-ng-components-collapsible.d.ts +12 -4
  100. package/types/frame-ui-ng-components-combobox.d.ts +8 -0
  101. package/types/frame-ui-ng-components-date-picker.d.ts +2 -4
  102. package/types/frame-ui-ng-components-sheet.d.ts +6 -2
  103. package/types/frame-ui-ng-components.d.ts +172 -135
  104. package/src/styles/blueprint.css +0 -707
  105. package/styles/blueprint.css +0 -707
@@ -93,7 +93,6 @@ frame-input-group-addon:has(> .frame-button) {
93
93
  .frame-input-group__addon > .frame-button,
94
94
  [frInputGroupAddon] > .frame-button,
95
95
  frame-input-group-addon > .frame-button {
96
- --frame-button-root-corner-size: 0;
97
96
  block-size: 100%;
98
97
  min-block-size: 100%;
99
98
  border: 0;
@@ -101,12 +100,6 @@ frame-input-group-addon > .frame-button {
101
100
  box-shadow: none;
102
101
  }
103
102
 
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
103
  .frame-input-group__addon > .frame-button:focus-visible,
111
104
  [frInputGroupAddon] > .frame-button:focus-visible,
112
105
  frame-input-group-addon > .frame-button:focus-visible {
@@ -24,29 +24,6 @@ frame-input-control {
24
24
  width: 100%;
25
25
  }
26
26
 
27
- [frInputControl]::before,
28
- frame-input-control::before {
29
- position: absolute;
30
- inset: 0;
31
- z-index: 1;
32
- border-radius: var(--frame-input-root-radius);
33
- background:
34
- linear-gradient(var(--frame-input-frame-color), var(--frame-input-frame-color))
35
- left var(--frame-frame-tick-inset, 0.25rem) top var(--frame-frame-tick-inset, 0.25rem) /
36
- var(--frame-frame-tick-size, 0.5rem) 1px no-repeat,
37
- linear-gradient(var(--frame-input-frame-color), var(--frame-input-frame-color))
38
- left var(--frame-frame-tick-inset, 0.25rem) top var(--frame-frame-tick-inset, 0.25rem) / 1px
39
- var(--frame-frame-tick-size, 0.5rem) no-repeat,
40
- linear-gradient(var(--frame-input-frame-color), var(--frame-input-frame-color))
41
- right var(--frame-frame-tick-inset, 0.25rem) bottom var(--frame-frame-tick-inset, 0.25rem) /
42
- var(--frame-frame-tick-size, 0.5rem) 1px no-repeat,
43
- linear-gradient(var(--frame-input-frame-color), var(--frame-input-frame-color))
44
- right var(--frame-frame-tick-inset, 0.25rem) bottom var(--frame-frame-tick-inset, 0.25rem) / 1px
45
- var(--frame-frame-tick-size, 0.5rem) no-repeat;
46
- pointer-events: none;
47
- content: '';
48
- }
49
-
50
27
  [frInputFieldGroup],
51
28
  frame-input-field-group {
52
29
  display: grid;
@@ -30,25 +30,6 @@
30
30
  animation: frame-modal-enter 160ms cubic-bezier(0.16, 1, 0.3, 1);
31
31
  }
32
32
 
33
- .frame-modal__panel::before {
34
- position: absolute;
35
- inset: 0;
36
- z-index: 1;
37
- border-radius: inherit;
38
- background:
39
- linear-gradient(var(--frame-frame-accent), var(--frame-frame-accent)) left 0.5rem top 0.5rem /
40
- var(--frame-frame-tick-size) 1px no-repeat,
41
- linear-gradient(var(--frame-frame-accent), var(--frame-frame-accent)) left 0.5rem top 0.5rem / 1px
42
- var(--frame-frame-tick-size) no-repeat,
43
- linear-gradient(var(--frame-frame-accent), var(--frame-frame-accent)) right 0.5rem bottom 0.5rem /
44
- var(--frame-frame-tick-size) 1px no-repeat,
45
- linear-gradient(var(--frame-frame-accent), var(--frame-frame-accent)) right 0.5rem bottom 0.5rem / 1px
46
- var(--frame-frame-tick-size)
47
- no-repeat;
48
- pointer-events: none;
49
- content: "";
50
- }
51
-
52
33
  .frame-modal__panel[data-size="sm"] {
53
34
  width: min(calc(100vw - 2rem), 24rem);
54
35
  }
@@ -176,6 +157,11 @@
176
157
  transform: scale(0.96);
177
158
  }
178
159
 
160
+ .frame-modal__close svg {
161
+ inline-size: 1rem;
162
+ block-size: 1rem;
163
+ }
164
+
179
165
  .frame-modal__close:focus-visible,
180
166
  .frame-modal__close-control:focus-visible {
181
167
  outline: 2px solid var(--frame-ring, currentColor);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frame-ui-ng/components",
3
- "version": "0.5.1-beta.0",
3
+ "version": "0.6.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.5.1-beta.0",
29
+ "@frame-ui-ng/foundation": "0.6.0-beta.0",
30
30
  "rxjs": "^7.8.0"
31
31
  },
32
32
  "dependencies": {
@@ -41,9 +41,9 @@
41
41
  "style": "./styles/components.css",
42
42
  "default": "./styles/components.css"
43
43
  },
44
- "./styles/blueprint.css": {
45
- "style": "./styles/blueprint.css",
46
- "default": "./styles/blueprint.css"
44
+ "./styles/corner-handles.css": {
45
+ "style": "./styles/corner-handles.css",
46
+ "default": "./styles/corner-handles.css"
47
47
  },
48
48
  "./package.json": {
49
49
  "default": "./package.json"
@@ -260,7 +260,7 @@
260
260
  "sideEffects": [
261
261
  "./styles.css",
262
262
  "./styles/components.css",
263
- "./styles/blueprint.css"
263
+ "./styles/corner-handles.css"
264
264
  ],
265
265
  "module": "fesm2022/frame-ui-ng-components.mjs",
266
266
  "typings": "types/frame-ui-ng-components.d.ts",
@@ -134,8 +134,12 @@ nav[frPagination] {
134
134
  display: inline-flex;
135
135
  align-items: center;
136
136
  justify-content: center;
137
- font-size: 1.25em;
138
- line-height: 0.75;
137
+ line-height: 1;
138
+ }
139
+
140
+ .frame-pagination__control-icon svg {
141
+ inline-size: 1em;
142
+ block-size: 1em;
139
143
  }
140
144
 
141
145
  [dir='rtl'] .frame-pagination__previous .frame-pagination__control-icon,
@@ -16,9 +16,9 @@ frame-popover {
16
16
  background: transparent;
17
17
  }
18
18
 
19
- .frame-popover__content {
20
- display: grid;
21
- gap: var(--frame-popover-content-gap);
19
+ .frame-popover__content {
20
+ display: grid;
21
+ gap: var(--frame-popover-content-gap);
22
22
  width: var(--frame-popover-content-width);
23
23
  max-width: min(var(--frame-popover-content-width), calc(100vw - 2rem));
24
24
  border: 1px solid var(--frame-popover-content-border);
@@ -1,69 +1,68 @@
1
- .frame-select__group,
2
- [frSelectGroup],
3
- frame-select-group {
4
- display: grid;
5
- gap: var(--frame-select-group-gap);
6
- }
7
-
8
- .frame-select__item {
9
- position: relative;
10
- padding-inline-start: var(--frame-select-item-padding-start);
11
- }
12
-
13
- .frame-select__item[data-indicator-position='end'] {
14
- padding-inline-start: var(--frame-select-item-padding-inline);
15
- padding-inline-end: var(--frame-select-item-padding-end);
16
- }
17
-
18
- .frame-select__item::before,
19
- .frame-select__item::after {
20
- position: absolute;
21
- inset-block-start: 50%;
22
- display: inline-flex;
23
- align-items: center;
24
- justify-content: center;
25
- inline-size: var(--frame-select-item-indicator-size);
26
- block-size: var(--frame-select-item-indicator-size);
27
- color: currentColor;
28
- font-size: var(--frame-select-item-indicator-font-size);
29
- font-weight: 700;
30
- line-height: 1;
31
- opacity: 0;
32
- transform: translateY(-50%);
33
- }
34
-
35
- .frame-select__item[data-state='checked']:not([data-has-custom-indicator])[data-indicator-position='start']::before {
36
- content: '✓';
37
- inset-inline-start: var(--frame-select-item-indicator-offset);
38
- opacity: 1;
39
- }
40
-
41
- .frame-select__item[data-state='checked']:not([data-has-custom-indicator])[data-indicator-position='end']::after {
42
- content: '✓';
43
- inset-inline-end: var(--frame-select-item-indicator-offset);
44
- opacity: 1;
45
- }
46
-
47
- .frame-select__item-indicator {
48
- position: absolute;
49
- inset-block-start: 50%;
50
- display: inline-flex;
51
- align-items: center;
1
+ .frame-select__group,
2
+ [frSelectGroup],
3
+ frame-select-group {
4
+ display: grid;
5
+ gap: var(--frame-select-group-gap);
6
+ }
7
+
8
+ .frame-select__item {
9
+ position: relative;
10
+ padding-inline-start: var(--frame-select-item-padding-start);
11
+ }
12
+
13
+ .frame-select__item[data-indicator-position='end'] {
14
+ padding-inline-start: var(--frame-select-item-padding-inline);
15
+ padding-inline-end: var(--frame-select-item-padding-end);
16
+ }
17
+
18
+ .frame-select__item::before,
19
+ .frame-select__item::after {
20
+ position: absolute;
21
+ inset-block-start: 50%;
22
+ display: inline-flex;
23
+ align-items: center;
52
24
  justify-content: center;
53
- width: var(--frame-select-item-indicator-size);
54
- height: var(--frame-select-item-indicator-size);
55
- opacity: 0;
56
- transform: translateY(-50%);
57
- }
58
-
59
- .frame-select__item[data-indicator-position='start'] .frame-select__item-indicator {
60
- inset-inline-start: var(--frame-select-item-indicator-offset);
61
- }
62
-
63
- .frame-select__item[data-indicator-position='end'] .frame-select__item-indicator {
64
- inset-inline-end: var(--frame-select-item-indicator-offset);
65
- }
66
-
67
- .frame-select__item[data-state='checked'] .frame-select__item-indicator {
68
- opacity: 1;
69
- }
25
+ inline-size: var(--frame-select-item-indicator-size);
26
+ block-size: var(--frame-select-item-indicator-size);
27
+ background: currentColor;
28
+ mask: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272.5%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20%206%209%2017l-5-5%27/%3E%3C/svg%3E") center / contain no-repeat;
29
+ -webkit-mask: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2024%2024%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272.5%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20%206%209%2017l-5-5%27/%3E%3C/svg%3E") center / contain no-repeat;
30
+ opacity: 0;
31
+ transform: translateY(-50%);
32
+ }
33
+
34
+ .frame-select__item[data-state='checked']:not([data-has-custom-indicator])[data-indicator-position='start']::before {
35
+ content: '';
36
+ inset-inline-start: var(--frame-select-item-indicator-offset);
37
+ opacity: 1;
38
+ }
39
+
40
+ .frame-select__item[data-state='checked']:not([data-has-custom-indicator])[data-indicator-position='end']::after {
41
+ content: '';
42
+ inset-inline-end: var(--frame-select-item-indicator-offset);
43
+ opacity: 1;
44
+ }
45
+
46
+ .frame-select__item-indicator {
47
+ position: absolute;
48
+ inset-block-start: 50%;
49
+ display: inline-flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ width: var(--frame-select-item-indicator-size);
53
+ height: var(--frame-select-item-indicator-size);
54
+ opacity: 0;
55
+ transform: translateY(-50%);
56
+ }
57
+
58
+ .frame-select__item[data-indicator-position='start'] .frame-select__item-indicator {
59
+ inset-inline-start: var(--frame-select-item-indicator-offset);
60
+ }
61
+
62
+ .frame-select__item[data-indicator-position='end'] .frame-select__item-indicator {
63
+ inset-inline-end: var(--frame-select-item-indicator-offset);
64
+ }
65
+
66
+ .frame-select__item[data-state='checked'] .frame-select__item-indicator {
67
+ opacity: 1;
68
+ }
@@ -10,19 +10,25 @@
10
10
  }
11
11
 
12
12
  .frame-sheet__overlay-pane {
13
- pointer-events: auto;
13
+ max-width: 100vw;
14
+ max-height: 100dvh;
15
+ pointer-events: none;
14
16
  }
15
17
 
16
18
  .frame-sheet__overlay-pane .cdk-dialog-container {
17
- display: contents;
19
+ display: block;
20
+ width: 100%;
21
+ height: 100%;
18
22
  outline: none;
19
23
  }
20
24
 
21
25
  .frame-sheet__panel {
22
- position: fixed;
26
+ position: relative;
23
27
  z-index: var(--frame-sheet-z-index);
24
28
  display: flex;
25
29
  flex-direction: column;
30
+ width: 100%;
31
+ height: 100%;
26
32
  gap: var(--frame-sheet-gap);
27
33
  overflow: hidden;
28
34
  border: 1px solid var(--frame-sheet-border);
@@ -30,42 +36,39 @@
30
36
  background: var(--frame-sheet-bg);
31
37
  box-shadow: var(--frame-sheet-shadow);
32
38
  color: var(--frame-sheet-color);
39
+ pointer-events: auto;
33
40
  }
34
41
 
35
- .frame-sheet__panel[data-side="right"],
36
- .frame-sheet__panel[data-side="left"] {
37
- inset-block: 0;
38
- inline-size: var(--frame-sheet-inline-size);
42
+ .frame-sheet__overlay-pane--right,
43
+ .frame-sheet__overlay-pane--left {
44
+ width: var(--frame-sheet-inline-size);
45
+ height: 100dvh;
39
46
  max-inline-size: 100vw;
40
47
  }
41
48
 
49
+ .frame-sheet__overlay-pane--top,
50
+ .frame-sheet__overlay-pane--bottom {
51
+ width: 100vw;
52
+ height: var(--frame-sheet-block-size);
53
+ max-block-size: 100dvh;
54
+ }
55
+
42
56
  .frame-sheet__panel[data-side="right"] {
43
- inset-inline-end: 0;
44
57
  border-inline-end: 0;
45
58
  animation: frame-sheet-enter-right 180ms cubic-bezier(0.16, 1, 0.3, 1);
46
59
  }
47
60
 
48
61
  .frame-sheet__panel[data-side="left"] {
49
- inset-inline-start: 0;
50
62
  border-inline-start: 0;
51
63
  animation: frame-sheet-enter-left 180ms cubic-bezier(0.16, 1, 0.3, 1);
52
64
  }
53
65
 
54
- .frame-sheet__panel[data-side="top"],
55
- .frame-sheet__panel[data-side="bottom"] {
56
- inset-inline: 0;
57
- block-size: var(--frame-sheet-block-size);
58
- max-block-size: 100dvh;
59
- }
60
-
61
66
  .frame-sheet__panel[data-side="top"] {
62
- inset-block-start: 0;
63
67
  border-block-start: 0;
64
68
  animation: frame-sheet-enter-top 180ms cubic-bezier(0.16, 1, 0.3, 1);
65
69
  }
66
70
 
67
71
  .frame-sheet__panel[data-side="bottom"] {
68
- inset-block-end: 0;
69
72
  border-block-end: 0;
70
73
  animation: frame-sheet-enter-bottom 180ms cubic-bezier(0.16, 1, 0.3, 1);
71
74
  }
@@ -156,6 +159,11 @@
156
159
  transform: scale(0.96);
157
160
  }
158
161
 
162
+ .frame-sheet__close svg {
163
+ inline-size: 1rem;
164
+ block-size: 1rem;
165
+ }
166
+
159
167
  .frame-sheet__close:focus-visible,
160
168
  .frame-sheet__close-control:focus-visible {
161
169
  outline: 2px solid var(--frame-ring, currentColor);
@@ -165,7 +173,12 @@
165
173
  @media (max-width: 640px) {
166
174
  .frame-sheet__panel[data-side="right"],
167
175
  .frame-sheet__panel[data-side="left"] {
168
- inline-size: min(100vw, var(--frame-sheet-inline-size));
176
+ width: 100%;
177
+ }
178
+
179
+ .frame-sheet__overlay-pane--right,
180
+ .frame-sheet__overlay-pane--left {
181
+ width: min(100vw, var(--frame-sheet-inline-size));
169
182
  }
170
183
 
171
184
  .frame-sheet__footer {
@@ -1,5 +1,5 @@
1
- @import '../../alert/src/styles/alert.css';
2
1
  @import '../../accordion/src/styles/accordion.css';
2
+ @import '../../alert/src/styles/alert.css';
3
3
  @import '../../avatar/src/styles/avatar.css';
4
4
  @import '../../button/src/styles/button.css';
5
5
  @import '../../button-group/src/styles/button-group.css';
@@ -46,4 +46,4 @@
46
46
  @import '../../toast/src/styles/toast.css';
47
47
  @import '../../virtual-scroll/src/styles/virtual-scroll.css';
48
48
  @import '../../badge/src/styles/badge.css';
49
- @import './blueprint.css';
49
+ @import './corner-handles.css';
@@ -0,0 +1,217 @@
1
+ /*
2
+ * Shared corner-handle renderer.
3
+ * Components opt in by applying `.frame-corner-handles`.
4
+ */
5
+
6
+ .frame-corner-handles {
7
+ position: relative;
8
+ }
9
+
10
+ .frame-corner-handles::before {
11
+ --frame-corner-handle-offset: var(--frame-corner-handle-inset, 0px);
12
+ --frame-corner-handle-active-size: var(
13
+ --frame-corner-handle-size,
14
+ var(--frame-frame-tick-size, 0.375rem)
15
+ );
16
+ position: absolute;
17
+ display: block;
18
+ inset: var(--frame-corner-handle-offset);
19
+ z-index: 1;
20
+ border-radius: inherit;
21
+ background-image:
22
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
23
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
24
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
25
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent)));
26
+ background-position:
27
+ left top,
28
+ left top,
29
+ right bottom,
30
+ right bottom;
31
+ background-repeat: no-repeat;
32
+ background-size:
33
+ var(--frame-corner-handle-active-size) 1px,
34
+ 1px var(--frame-corner-handle-active-size),
35
+ var(--frame-corner-handle-active-size) 1px,
36
+ 1px var(--frame-corner-handle-active-size);
37
+ content: "";
38
+ pointer-events: none;
39
+ }
40
+
41
+ :root[data-frame-corner-handles='false'] .frame-corner-handles::before {
42
+ content: none;
43
+ }
44
+
45
+ .frame-button.frame-corner-handles::before {
46
+ content: none;
47
+ }
48
+
49
+ .frame-button.frame-corner-handles {
50
+ --frame-corner-handle-color: color-mix(in srgb, var(--frame-primary-foreground) 88%, transparent);
51
+ --frame-corner-handle-offset: var(--frame-corner-handle-inset, 0px);
52
+ --frame-corner-handle-active-size: var(
53
+ --frame-corner-handle-size,
54
+ var(--frame-frame-tick-size, 0.375rem)
55
+ );
56
+ background-image:
57
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
58
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
59
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
60
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent)));
61
+ background-position:
62
+ left var(--frame-corner-handle-offset) top var(--frame-corner-handle-offset),
63
+ left var(--frame-corner-handle-offset) top var(--frame-corner-handle-offset),
64
+ right var(--frame-corner-handle-offset) bottom var(--frame-corner-handle-offset),
65
+ right var(--frame-corner-handle-offset) bottom var(--frame-corner-handle-offset);
66
+ background-repeat: no-repeat;
67
+ background-size:
68
+ var(--frame-corner-handle-active-size) 1px,
69
+ 1px var(--frame-corner-handle-active-size),
70
+ var(--frame-corner-handle-active-size) 1px,
71
+ 1px var(--frame-corner-handle-active-size);
72
+ }
73
+
74
+ .frame-button.frame-corner-handles.frame-carousel__control {
75
+ position: absolute;
76
+ }
77
+
78
+ :root[data-frame-corner-handles='false'] .frame-button.frame-corner-handles {
79
+ background-image: none;
80
+ }
81
+
82
+ .frame-button.frame-corner-handles[data-appearance='outline'],
83
+ .frame-button.frame-corner-handles[data-appearance='ghost'] {
84
+ --frame-corner-handle-color: var(--frame-frame-accent);
85
+ }
86
+
87
+ .frame-button.frame-corner-handles[data-appearance='ghost'] {
88
+ --frame-corner-handle-size: 0px;
89
+ }
90
+
91
+ .frame-button.frame-corner-handles[data-appearance='ghost']:where(:not(:disabled, [data-disabled])):hover,
92
+ .frame-button.frame-corner-handles[data-appearance='ghost']:focus-visible {
93
+ --frame-corner-handle-size: var(--frame-frame-tick-size, 0.375rem);
94
+ }
95
+
96
+ .frame-button-group.frame-corner-handles {
97
+ --frame-corner-handle-radius: var(--frame-button-group-radius);
98
+ }
99
+
100
+ .frame-button-group > .frame-button.frame-corner-handles,
101
+ .frame-button-group > [frButton].frame-corner-handles,
102
+ [frButtonGroup] > .frame-button.frame-corner-handles,
103
+ [frButtonGroup] > [frButton].frame-corner-handles,
104
+ frame-button-group > .frame-button.frame-corner-handles,
105
+ frame-button-group > [frButton].frame-corner-handles,
106
+ .frame-input-group__addon > .frame-button.frame-corner-handles,
107
+ [frInputGroupAddon] > .frame-button.frame-corner-handles,
108
+ frame-input-group-addon > .frame-button.frame-corner-handles {
109
+ --frame-corner-handle-size: 0;
110
+ }
111
+
112
+ [frInputControl].frame-corner-handles,
113
+ frame-input-control.frame-corner-handles {
114
+ --frame-corner-handle-color: var(--frame-input-frame-color);
115
+ --frame-corner-handle-inset: var(--frame-frame-tick-inset, 0.25rem);
116
+ --frame-corner-handle-radius: var(--frame-input-root-radius);
117
+ }
118
+
119
+ .frame-popover__content.frame-corner-handles {
120
+ --frame-corner-handle-radius: var(--frame-popover-content-radius);
121
+ }
122
+
123
+ .frame-sheet__panel.frame-corner-handles {
124
+ --frame-corner-handle-radius: var(--frame-sheet-radius);
125
+ }
126
+
127
+ .frame-corner-handles:where(
128
+ .frame-table-container,
129
+ .frame-table-virtual,
130
+ .frame-virtual-scroll__viewport,
131
+ .frame-virtual-scroll__list,
132
+ .frame-combobox__panel,
133
+ .frame-dropdown-menu__content,
134
+ .frame-navigation-menu__viewport,
135
+ .frame-select__content
136
+ )::before,
137
+ .frame-corner-handles.frame-tabs__list[data-variant='line']::before,
138
+ .frame-date-picker__content .frame-calendar::before {
139
+ content: none;
140
+ }
141
+
142
+ .frame-corner-handles:where(
143
+ .frame-table-container,
144
+ .frame-table-virtual,
145
+ .frame-virtual-scroll__viewport,
146
+ .frame-virtual-scroll__list,
147
+ .frame-combobox__panel,
148
+ .frame-navigation-menu__viewport
149
+ ) {
150
+ --frame-corner-handle-offset: var(--frame-corner-handle-inset, 0px);
151
+ --frame-corner-handle-active-size: var(
152
+ --frame-corner-handle-size,
153
+ var(--frame-frame-tick-size, 0.375rem)
154
+ );
155
+ background-image:
156
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
157
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
158
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent))),
159
+ linear-gradient(var(--frame-corner-handle-color, var(--frame-frame-accent)), var(--frame-corner-handle-color, var(--frame-frame-accent)));
160
+ background-position:
161
+ left var(--frame-corner-handle-offset) top var(--frame-corner-handle-offset),
162
+ left var(--frame-corner-handle-offset) top var(--frame-corner-handle-offset),
163
+ right var(--frame-corner-handle-offset) bottom var(--frame-corner-handle-offset),
164
+ right var(--frame-corner-handle-offset) bottom var(--frame-corner-handle-offset);
165
+ background-size:
166
+ var(--frame-corner-handle-active-size) 1px,
167
+ 1px var(--frame-corner-handle-active-size),
168
+ var(--frame-corner-handle-active-size) 1px,
169
+ 1px var(--frame-corner-handle-active-size);
170
+ background-repeat: no-repeat;
171
+ background-attachment: local;
172
+ }
173
+
174
+ :root[data-frame-corner-handles='false']
175
+ .frame-corner-handles:where(
176
+ .frame-table-container,
177
+ .frame-table-virtual,
178
+ .frame-virtual-scroll__viewport,
179
+ .frame-virtual-scroll__list,
180
+ .frame-combobox__panel,
181
+ .frame-navigation-menu__viewport
182
+ ) {
183
+ background-image: none;
184
+ }
185
+
186
+ :where(
187
+ .frame-combobox__panel,
188
+ .frame-date-picker__content,
189
+ .frame-dropdown-menu__content,
190
+ .frame-hover-card__content,
191
+ .frame-modal__panel,
192
+ .frame-navigation-menu__viewport,
193
+ .frame-popover__content,
194
+ .frame-sheet__panel,
195
+ .frame-toast,
196
+ .frame-tooltip__content
197
+ ) :where(.frame-corner-handles) {
198
+ --frame-corner-handle-inset: 0px;
199
+ }
200
+
201
+ :where(
202
+ .frame-combobox__panel,
203
+ .frame-date-picker__content,
204
+ .frame-dropdown-menu__content,
205
+ .frame-hover-card__content,
206
+ .frame-modal__panel,
207
+ .frame-navigation-menu__viewport,
208
+ .frame-popover__content,
209
+ .frame-sheet__panel,
210
+ .frame-toast
211
+ ) {
212
+ --frame-corner-handle-inset: 0.5rem;
213
+ }
214
+
215
+ .frame-tooltip__content.frame-corner-handles {
216
+ --frame-corner-handle-inset: 0.125rem;
217
+ }
@@ -1,5 +1,5 @@
1
- @import '../../alert/src/styles/alert.css';
2
1
  @import '../../accordion/src/styles/accordion.css';
2
+ @import '../../alert/src/styles/alert.css';
3
3
  @import '../../avatar/src/styles/avatar.css';
4
4
  @import '../../button/src/styles/button.css';
5
5
  @import '../../button-group/src/styles/button-group.css';
@@ -46,4 +46,4 @@
46
46
  @import '../../toast/src/styles/toast.css';
47
47
  @import '../../virtual-scroll/src/styles/virtual-scroll.css';
48
48
  @import '../../badge/src/styles/badge.css';
49
- @import './blueprint.css';
49
+ @import './corner-handles.css';