@greese/ui 1.1.0 → 1.2.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.
- package/README.md +19 -14
- package/dist/_maps.scss +1 -1
- package/dist/_tokens-base.scss +30 -6
- package/dist/_tokens.scss +31 -2
- package/dist/_utilities-table.scss +1615 -0
- package/dist/clipboard.d.ts +18 -0
- package/dist/clipboard.js +62 -0
- package/dist/css/Button.css +2 -2
- package/dist/css/Carousel.css +145 -47
- package/dist/css/Checkbox.css +2 -2
- package/dist/css/Chip.css +38 -8
- package/dist/css/ChoiceGroup.css +42 -1
- package/dist/css/Collapsible.css +1 -0
- package/dist/css/ColorPicker.css +84 -0
- package/dist/css/Combobox.css +2 -2
- package/dist/css/Dialog.css +24 -22
- package/dist/css/EditableField.css +219 -0
- package/dist/css/Input.css +11 -2
- package/dist/css/Menu.css +9 -0
- package/dist/css/NumberField.css +53 -8
- package/dist/css/NumberStepper.css +9 -0
- package/dist/css/OtpField.css +1 -1
- package/dist/css/Radio.css +2 -2
- package/dist/css/ScrollCarousel.css +225 -0
- package/dist/css/SegmentedControl.css +2 -2
- package/dist/css/Select.css +3 -2
- package/dist/css/Slider.css +45 -5
- package/dist/css/Switch.css +6 -6
- package/dist/css/Text.css +14 -14
- package/dist/css/Textarea.css +1 -1
- package/dist/css/core.css +36 -6
- package/dist/css/resets.css +162 -0
- package/dist/css.d.ts +2 -0
- package/dist/css.js +2 -0
- package/dist/greese.css +978 -138
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/scss/components/_Accordion.scss +2 -0
- package/dist/scss/components/_ActionSelect.scss +2 -0
- package/dist/scss/components/_Alert.scss +2 -0
- package/dist/scss/components/_AppBar.scss +2 -0
- package/dist/scss/components/_AspectRatio.scss +2 -0
- package/dist/scss/components/_AutoLayout.scss +2 -0
- package/dist/scss/components/_Avatar.scss +2 -0
- package/dist/scss/components/_Badge.scss +2 -0
- package/dist/scss/components/_Box.scss +2 -0
- package/dist/scss/components/_Breadcrumbs.scss +2 -0
- package/dist/scss/components/_Button.scss +2 -0
- package/dist/scss/components/_ButtonGroup.scss +2 -0
- package/dist/scss/components/_Card.scss +2 -0
- package/dist/scss/components/_Carousel.scss +2 -0
- package/dist/scss/components/_Center.scss +2 -0
- package/dist/scss/components/_ChatBubble.scss +2 -0
- package/dist/scss/components/_Checkbox.scss +2 -0
- package/dist/scss/components/_Chip.scss +2 -0
- package/dist/scss/components/_ChoiceGroup.scss +2 -0
- package/dist/scss/components/_Code.scss +2 -0
- package/dist/scss/components/_Collapsible.scss +2 -0
- package/dist/scss/components/_ColorPicker.scss +2 -0
- package/dist/scss/components/_Combobox.scss +2 -0
- package/dist/scss/components/_Container.scss +2 -0
- package/dist/scss/components/_Countdown.scss +2 -0
- package/dist/scss/components/_DateField.scss +2 -0
- package/dist/scss/components/_Dialog.scss +2 -0
- package/dist/scss/components/_Diff.scss +2 -0
- package/dist/scss/components/_Divider.scss +2 -0
- package/dist/scss/components/_Dock.scss +2 -0
- package/dist/scss/components/_EditableField.scss +2 -0
- package/dist/scss/components/_Field.scss +2 -0
- package/dist/scss/components/_Fieldset.scss +2 -0
- package/dist/scss/components/_FileInput.scss +2 -0
- package/dist/scss/components/_Footer.scss +2 -0
- package/dist/scss/components/_Grid.scss +2 -0
- package/dist/scss/components/_Header.scss +2 -0
- package/dist/scss/components/_Heading.scss +2 -0
- package/dist/scss/components/_Icon.scss +2 -0
- package/dist/scss/components/_IconButton.scss +2 -0
- package/dist/scss/components/_Image.scss +2 -0
- package/dist/scss/components/_Indicator.scss +2 -0
- package/dist/scss/components/_Input.scss +2 -0
- package/dist/scss/components/_Key.scss +2 -0
- package/dist/scss/components/_Link.scss +2 -0
- package/dist/scss/components/_List.scss +2 -0
- package/dist/scss/components/_Media.scss +2 -0
- package/dist/scss/components/_Menu.scss +2 -0
- package/dist/scss/components/_Motion.scss +2 -0
- package/dist/scss/components/_NumberField.scss +2 -0
- package/dist/scss/components/_NumberStepper.scss +2 -0
- package/dist/scss/components/_OtpField.scss +2 -0
- package/dist/scss/components/_PageTransition.scss +2 -0
- package/dist/scss/components/_Pagination.scss +2 -0
- package/dist/scss/components/_Popover.scss +2 -0
- package/dist/scss/components/_Progress.scss +2 -0
- package/dist/scss/components/_RadialProgress.scss +2 -0
- package/dist/scss/components/_Radio.scss +2 -0
- package/dist/scss/components/_Rating.scss +2 -0
- package/dist/scss/components/_ScrollCarousel.scss +2 -0
- package/dist/scss/components/_ScrollSpy.scss +2 -0
- package/dist/scss/components/_SegmentedControl.scss +2 -0
- package/dist/scss/components/_Select.scss +2 -0
- package/dist/scss/components/_Sidebar.scss +2 -0
- package/dist/scss/components/_Skeleton.scss +2 -0
- package/dist/scss/components/_Slider.scss +2 -0
- package/dist/scss/components/_Spacer.scss +2 -0
- package/dist/scss/components/_SpeedDial.scss +2 -0
- package/dist/scss/components/_Spinner.scss +2 -0
- package/dist/scss/components/_Stack.scss +2 -0
- package/dist/scss/components/_Stat.scss +2 -0
- package/dist/scss/components/_Status.scss +2 -0
- package/dist/scss/components/_Steps.scss +2 -0
- package/dist/scss/components/_Swap.scss +2 -0
- package/dist/scss/components/_Switch.scss +2 -0
- package/dist/scss/components/_Table.scss +2 -0
- package/dist/scss/components/_Tabs.scss +2 -0
- package/dist/scss/components/_Text.scss +2 -0
- package/dist/scss/components/_TextRotate.scss +2 -0
- package/dist/scss/components/_Textarea.scss +2 -0
- package/dist/scss/components/_ThemeProvider.scss +2 -0
- package/dist/scss/components/_Tile.scss +2 -0
- package/dist/scss/components/_Toast.scss +2 -0
- package/dist/scss/components/_ToggleButton.scss +2 -0
- package/dist/scss/components/_Tooltip.scss +2 -0
- package/dist/scss/components/_Type.scss +2 -0
- package/dist/scss/components/_Visibility.scss +2 -0
- package/dist/scss/components/_VisuallyHidden.scss +2 -0
- package/dist/shapes.d.ts +12 -1
- package/dist/shapes.js +11 -10
- package/dist/style-manifest.json +18830 -132
- package/dist/theme.js +6 -1
- package/dist/themeFiles/index.d.ts +9 -0
- package/dist/themeFiles/index.js +9 -0
- package/dist/themeFiles/scssModule.d.ts +100 -0
- package/dist/themeFiles/scssModule.js +384 -0
- package/dist/themeFiles/spec.d.ts +198 -0
- package/dist/themeFiles/spec.js +877 -0
- package/dist/tokens.css +30 -1
- package/dist/typography.js +1 -1
- package/dist/utilities.css +435 -0
- package/dist/utilities.d.ts +8 -0
- package/dist/utilities.js +75 -0
- package/package.json +20 -1
- package/src/components/AutoLayout/AutoLayout.scss +2 -26
- package/src/components/Carousel/Carousel.scss +122 -126
- package/src/components/Checkbox/Checkbox.scss +2 -2
- package/src/components/Chip/Chip.scss +63 -8
- package/src/components/ChoiceGroup/ChoiceGroup.scss +19 -1
- package/src/components/Collapsible/Collapsible.scss +3 -0
- package/src/components/ColorPicker/ColorPicker.scss +95 -0
- package/src/components/Combobox/Combobox.scss +4 -2
- package/src/components/Dialog/Dialog.scss +24 -7
- package/src/components/EditableField/EditableField.scss +275 -0
- package/src/components/Grid/Grid.scss +2 -70
- package/src/components/Input/Input.scss +29 -0
- package/src/components/Menu/Menu.scss +18 -0
- package/src/components/NumberField/NumberField.scss +56 -9
- package/src/components/NumberStepper/NumberStepper.scss +13 -0
- package/src/components/Radio/Radio.scss +2 -2
- package/src/components/ScrollCarousel/ScrollCarousel.scss +142 -0
- package/src/components/Select/Select.scss +4 -0
- package/src/components/Slider/Slider.scss +51 -6
- package/src/components/Stack/Stack.scss +2 -48
- package/src/components/Switch/Switch.scss +9 -6
- package/src/components/Text/Text.scss +5 -2
- package/src/styles/_breakpoint-vars.scss +17 -11
- package/src/styles/_controls.scss +2 -2
- package/src/styles/_core.scss +1 -0
- package/src/styles/_kit.scss +483 -56
- package/src/styles/_layout-props.scss +197 -0
- package/src/styles/_manifest.scss +53 -23
- package/src/styles/_mixins.scss +53 -15
- package/src/styles/_slides.scss +112 -0
- package/src/styles/_utilities.scss +104 -0
- package/src/styles/breakpoints.test.ts +21 -1
- package/src/styles/entryPoints.test.ts +25 -2
- package/src/styles/index.scss +3 -1
- package/src/styles/kit.test.ts +171 -1
- package/src/styles/public/_breakpoints.scss +43 -0
- package/src/styles/public/_slides.scss +3 -0
- package/src/styles/public/_utilities.scss +3 -0
- package/src/styles/resets.scss +7 -0
- package/src/styles/utilities.test.ts +39 -0
- package/themes/bevel.css +187 -187
- package/themes/bevel.scss +960 -958
- package/themes/extrude.css +42 -42
- package/themes/folio.css +200 -200
- package/themes/folio.scss +880 -878
- package/themes/outline.css +18 -18
- package/themes/pebble.css +8 -8
- package/themes/ridge.css +188 -188
- package/themes/ridge.scss +820 -818
- package/themes/soft.css +11 -11
- package/themes/ticket.css +180 -180
- package/themes/ticket.scss +881 -879
- package/themes/tilt.css +25 -25
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copying text, safely. The async Clipboard API is missing on insecure
|
|
3
|
+
* origins and in some WebViews, and a browser can refuse it (permissions, a
|
|
4
|
+
* page without focus), so a copy falls back to selecting a hidden textarea
|
|
5
|
+
* and `document.execCommand('copy')`. Only when both fail does it reject.
|
|
6
|
+
*
|
|
7
|
+
* Framework-free; `useCopyToClipboard()` and `CopyToClipboard` in
|
|
8
|
+
* @greese/react are the React side.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Copies `text` to the clipboard. Resolves once it's there; rejects when the
|
|
12
|
+
* browser allows neither the Clipboard API nor the fallback.
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* await copyToClipboard("import { CopyIcon } from '@greese/icons'")
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const copyToClipboard: (text: string) => Promise<void>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copying text, safely. The async Clipboard API is missing on insecure
|
|
3
|
+
* origins and in some WebViews, and a browser can refuse it (permissions, a
|
|
4
|
+
* page without focus), so a copy falls back to selecting a hidden textarea
|
|
5
|
+
* and `document.execCommand('copy')`. Only when both fail does it reject.
|
|
6
|
+
*
|
|
7
|
+
* Framework-free; `useCopyToClipboard()` and `CopyToClipboard` in
|
|
8
|
+
* @greese/react are the React side.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The old way: copy the selection of a textarea that's on the page for one
|
|
12
|
+
* moment. Puts focus and the reader's selection back afterwards.
|
|
13
|
+
*/
|
|
14
|
+
const copyBySelection = (text) => {
|
|
15
|
+
if (typeof document == 'undefined')
|
|
16
|
+
return false;
|
|
17
|
+
const focused = document.activeElement;
|
|
18
|
+
const selection = document.getSelection();
|
|
19
|
+
const ranges = selection
|
|
20
|
+
? Array.from({ length: selection.rangeCount }, (_, i) => selection.getRangeAt(i))
|
|
21
|
+
: [];
|
|
22
|
+
const area = document.createElement('textarea');
|
|
23
|
+
area.value = text;
|
|
24
|
+
// Read-only so phones don't open a keyboard; fixed and transparent so the
|
|
25
|
+
// page neither scrolls to it nor shows it.
|
|
26
|
+
area.readOnly = true;
|
|
27
|
+
area.style.cssText = 'position:fixed;inset:0;opacity:0;pointer-events:none';
|
|
28
|
+
document.body.append(area);
|
|
29
|
+
area.select();
|
|
30
|
+
let copied = false;
|
|
31
|
+
try {
|
|
32
|
+
copied = document.execCommand('copy');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Refused: report it below.
|
|
36
|
+
}
|
|
37
|
+
area.remove();
|
|
38
|
+
focused?.focus({ preventScroll: true });
|
|
39
|
+
if (selection && ranges.length) {
|
|
40
|
+
selection.removeAllRanges();
|
|
41
|
+
for (const range of ranges)
|
|
42
|
+
selection.addRange(range);
|
|
43
|
+
}
|
|
44
|
+
return copied;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Copies `text` to the clipboard. Resolves once it's there; rejects when the
|
|
48
|
+
* browser allows neither the Clipboard API nor the fallback.
|
|
49
|
+
*
|
|
50
|
+
* ```ts
|
|
51
|
+
* await copyToClipboard("import { CopyIcon } from '@greese/icons'")
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export const copyToClipboard = async (text) => {
|
|
55
|
+
try {
|
|
56
|
+
await navigator.clipboard.writeText(text);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (!copyBySelection(text))
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
};
|
package/dist/css/Button.css
CHANGED
|
@@ -159,8 +159,8 @@
|
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
161
|
.greese-Button--size-xs {
|
|
162
|
-
--greese-button-height:
|
|
163
|
-
--greese-button-padding: var(--greese-space-
|
|
162
|
+
--greese-button-height: 1.5rem;
|
|
163
|
+
--greese-button-padding: var(--greese-space-2);
|
|
164
164
|
font-size: var(--greese-type-p3-font-size);
|
|
165
165
|
}
|
|
166
166
|
.greese-Button--size-sm {
|
package/dist/css/Carousel.css
CHANGED
|
@@ -2,41 +2,161 @@
|
|
|
2
2
|
@layer greese.components {
|
|
3
3
|
.greese-Carousel {
|
|
4
4
|
box-sizing: border-box;
|
|
5
|
+
--greese-carousel-way: 1;
|
|
6
|
+
--greese-carousel-enter: var(--greese-motion-carousel, greese-carousel-in);
|
|
7
|
+
--greese-carousel-duration: var(
|
|
8
|
+
--greese-motion-carousel-duration,
|
|
9
|
+
var(--greese-duration-normal)
|
|
10
|
+
);
|
|
11
|
+
--greese-carousel-exit-opacity: var(
|
|
12
|
+
--greese-motion-carousel-exit-opacity,
|
|
13
|
+
1
|
|
14
|
+
);
|
|
15
|
+
--greese-carousel-exit-translate: var(
|
|
16
|
+
--greese-motion-carousel-exit-translate,
|
|
17
|
+
calc(-100% * var(--greese-carousel-way)) 0
|
|
18
|
+
);
|
|
19
|
+
--greese-carousel-exit-scale: var(
|
|
20
|
+
--greese-motion-carousel-exit-scale,
|
|
21
|
+
1
|
|
22
|
+
);
|
|
23
|
+
--greese-carousel-exit-mask-image: var(
|
|
24
|
+
--greese-motion-carousel-exit-mask-image,
|
|
25
|
+
none
|
|
26
|
+
);
|
|
27
|
+
--greese-carousel-exit-mask-repeat: var(
|
|
28
|
+
--greese-motion-carousel-exit-mask-repeat,
|
|
29
|
+
no-repeat
|
|
30
|
+
);
|
|
31
|
+
--greese-carousel-exit-mask-position: var(
|
|
32
|
+
--greese-motion-carousel-exit-mask-position,
|
|
33
|
+
50% 50%
|
|
34
|
+
);
|
|
35
|
+
--greese-carousel-exit-mask-size: var(
|
|
36
|
+
--greese-motion-carousel-exit-mask-size,
|
|
37
|
+
100% 100%
|
|
38
|
+
);
|
|
39
|
+
--greese-carousel-exit-mask-from: var(
|
|
40
|
+
--greese-motion-carousel-exit-mask-from,
|
|
41
|
+
100% 100%
|
|
42
|
+
);
|
|
43
|
+
--greese-carousel-exit-transform: var(
|
|
44
|
+
--greese-motion-carousel-exit-transform,
|
|
45
|
+
none
|
|
46
|
+
);
|
|
47
|
+
--greese-carousel-exit-transform-origin: var(
|
|
48
|
+
--greese-motion-carousel-exit-transform-origin,
|
|
49
|
+
50% 50%
|
|
50
|
+
);
|
|
5
51
|
position: relative;
|
|
6
52
|
display: grid;
|
|
7
53
|
gap: var(--greese-space-3);
|
|
8
54
|
min-inline-size: 0;
|
|
9
55
|
}
|
|
56
|
+
.greese-Carousel[data-direction=back] {
|
|
57
|
+
--greese-carousel-way: -1;
|
|
58
|
+
--greese-carousel-enter: var(
|
|
59
|
+
--greese-motion-carousel-back,
|
|
60
|
+
var(--greese-motion-carousel, greese-carousel-in)
|
|
61
|
+
);
|
|
62
|
+
--greese-carousel-exit-opacity: var(
|
|
63
|
+
--greese-motion-carousel-back-exit-opacity,
|
|
64
|
+
var(--greese-motion-carousel-exit-opacity, 1)
|
|
65
|
+
);
|
|
66
|
+
--greese-carousel-exit-translate: var(
|
|
67
|
+
--greese-motion-carousel-back-exit-translate,
|
|
68
|
+
var(--greese-motion-carousel-exit-translate, calc(-100% * var(--greese-carousel-way)) 0)
|
|
69
|
+
);
|
|
70
|
+
--greese-carousel-exit-scale: var(
|
|
71
|
+
--greese-motion-carousel-back-exit-scale,
|
|
72
|
+
var(--greese-motion-carousel-exit-scale, 1)
|
|
73
|
+
);
|
|
74
|
+
--greese-carousel-exit-mask-image: var(
|
|
75
|
+
--greese-motion-carousel-back-exit-mask-image,
|
|
76
|
+
var(--greese-motion-carousel-exit-mask-image, none)
|
|
77
|
+
);
|
|
78
|
+
--greese-carousel-exit-mask-repeat: var(
|
|
79
|
+
--greese-motion-carousel-back-exit-mask-repeat,
|
|
80
|
+
var(--greese-motion-carousel-exit-mask-repeat, no-repeat)
|
|
81
|
+
);
|
|
82
|
+
--greese-carousel-exit-mask-position: var(
|
|
83
|
+
--greese-motion-carousel-back-exit-mask-position,
|
|
84
|
+
var(--greese-motion-carousel-exit-mask-position, 50% 50%)
|
|
85
|
+
);
|
|
86
|
+
--greese-carousel-exit-mask-size: var(
|
|
87
|
+
--greese-motion-carousel-back-exit-mask-size,
|
|
88
|
+
var(--greese-motion-carousel-exit-mask-size, 100% 100%)
|
|
89
|
+
);
|
|
90
|
+
--greese-carousel-exit-mask-from: var(
|
|
91
|
+
--greese-motion-carousel-back-exit-mask-from,
|
|
92
|
+
var(--greese-motion-carousel-exit-mask-from, 100% 100%)
|
|
93
|
+
);
|
|
94
|
+
--greese-carousel-exit-transform: var(
|
|
95
|
+
--greese-motion-carousel-back-exit-transform,
|
|
96
|
+
var(--greese-motion-carousel-exit-transform, none)
|
|
97
|
+
);
|
|
98
|
+
--greese-carousel-exit-transform-origin: var(
|
|
99
|
+
--greese-motion-carousel-back-exit-transform-origin,
|
|
100
|
+
var(--greese-motion-carousel-exit-transform-origin, 50% 50%)
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
.greese-Carousel:dir(rtl) {
|
|
104
|
+
--greese-carousel-way: -1;
|
|
105
|
+
}
|
|
106
|
+
.greese-Carousel[data-direction=back]:dir(rtl) {
|
|
107
|
+
--greese-carousel-way: 1;
|
|
108
|
+
}
|
|
10
109
|
.greese-Carousel-viewport {
|
|
11
|
-
--greese-
|
|
12
|
-
--greese-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
110
|
+
--greese-motion-exit-opacity: initial;
|
|
111
|
+
--greese-motion-exit-translate: initial;
|
|
112
|
+
--greese-motion-exit-scale: initial;
|
|
113
|
+
--greese-motion-exit-mask-image: initial;
|
|
114
|
+
--greese-motion-exit-mask-repeat: initial;
|
|
115
|
+
--greese-motion-exit-mask-position: initial;
|
|
116
|
+
--greese-motion-exit-mask-size: initial;
|
|
117
|
+
--greese-motion-exit-mask-from: initial;
|
|
118
|
+
--greese-motion-exit-transform: initial;
|
|
119
|
+
--greese-motion-exit-transform-origin: initial;
|
|
120
|
+
--greese-carousel-slide-enter: initial;
|
|
121
|
+
display: grid;
|
|
122
|
+
min-inline-size: 0;
|
|
123
|
+
overflow: clip;
|
|
19
124
|
border-radius: var(--greese-corner-panel);
|
|
20
|
-
|
|
21
|
-
.greese-Carousel-viewport::-webkit-scrollbar {
|
|
22
|
-
display: none;
|
|
125
|
+
touch-action: pan-y;
|
|
23
126
|
}
|
|
24
127
|
.greese-Carousel-viewport:focus-visible {
|
|
25
128
|
outline: 2px solid var(--greese-color-focus-ring);
|
|
26
129
|
outline-offset: 2px;
|
|
27
130
|
}
|
|
28
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
29
|
-
.greese-Carousel-viewport {
|
|
30
|
-
scroll-behavior: smooth;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
131
|
.greese-CarouselSlide {
|
|
34
|
-
|
|
35
|
-
(var(--greese-carousel-per-view) - 1) * var(--greese-carousel-gap)
|
|
36
|
-
);
|
|
37
|
-
flex: 0 0 calc((100% - var(--greese-carousel-gaps)) / var(--greese-carousel-per-view));
|
|
132
|
+
grid-area: 1/1;
|
|
38
133
|
min-inline-size: 0;
|
|
39
|
-
|
|
134
|
+
mask-image: var(--greese-motion-exit-mask-image, var(--greese-carousel-exit-mask-image));
|
|
135
|
+
mask-repeat: var(--greese-motion-exit-mask-repeat, var(--greese-carousel-exit-mask-repeat));
|
|
136
|
+
mask-position: var(--greese-motion-exit-mask-position, var(--greese-carousel-exit-mask-position));
|
|
137
|
+
mask-size: var(--greese-motion-exit-mask-from, var(--greese-carousel-exit-mask-from));
|
|
138
|
+
transform-origin: var(--greese-motion-exit-transform-origin, var(--greese-carousel-exit-transform-origin));
|
|
139
|
+
}
|
|
140
|
+
.greese-CarouselSlide:not([data-active]) {
|
|
141
|
+
visibility: hidden;
|
|
142
|
+
opacity: var(--greese-motion-exit-opacity, var(--greese-carousel-exit-opacity));
|
|
143
|
+
translate: var(--greese-motion-exit-translate, var(--greese-carousel-exit-translate));
|
|
144
|
+
scale: var(--greese-motion-exit-scale, var(--greese-carousel-exit-scale));
|
|
145
|
+
transform: var(--greese-motion-exit-transform, var(--greese-carousel-exit-transform));
|
|
146
|
+
mask-size: var(--greese-motion-exit-mask-size, var(--greese-carousel-exit-mask-size));
|
|
147
|
+
}
|
|
148
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
149
|
+
.greese-Carousel[data-moved] > .greese-Carousel-viewport > .greese-CarouselSlide[data-active] {
|
|
150
|
+
animation-name: var(--greese-carousel-slide-enter, var(--greese-carousel-enter));
|
|
151
|
+
animation-duration: var(--greese-carousel-duration);
|
|
152
|
+
animation-timing-function: var(--greese-easing-standard);
|
|
153
|
+
animation-fill-mode: backwards;
|
|
154
|
+
}
|
|
155
|
+
.greese-Carousel[data-moved] > .greese-Carousel-viewport > .greese-CarouselSlide:not([data-active]) {
|
|
156
|
+
transition-property: visibility, opacity, translate, scale, transform, mask-size, mask-position;
|
|
157
|
+
transition-duration: var(--greese-carousel-duration);
|
|
158
|
+
transition-timing-function: var(--greese-easing-standard);
|
|
159
|
+
}
|
|
40
160
|
}
|
|
41
161
|
.greese-Carousel-control {
|
|
42
162
|
position: absolute;
|
|
@@ -71,6 +191,7 @@
|
|
|
71
191
|
}
|
|
72
192
|
}
|
|
73
193
|
.greese-Carousel-control:disabled {
|
|
194
|
+
pointer-events: none;
|
|
74
195
|
cursor: default;
|
|
75
196
|
opacity: 0;
|
|
76
197
|
}
|
|
@@ -96,11 +217,6 @@
|
|
|
96
217
|
.greese-Carousel-control--next:dir(rtl) > svg {
|
|
97
218
|
scale: 1;
|
|
98
219
|
}
|
|
99
|
-
@media (hover: none) {
|
|
100
|
-
.greese-Carousel-control {
|
|
101
|
-
display: none;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
220
|
.greese-Carousel-indicators {
|
|
105
221
|
display: flex;
|
|
106
222
|
flex-wrap: wrap;
|
|
@@ -144,27 +260,9 @@
|
|
|
144
260
|
background-color: var(--greese-color-primary);
|
|
145
261
|
clip-path: inset(0 round var(--greese-corner-pill));
|
|
146
262
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
@media (width >= 600px) {
|
|
151
|
-
.greese-Carousel--sm-per-view {
|
|
152
|
-
--greese-carousel-per-view: var(--greese-carousel-per-view-sm);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
@media (width >= 900px) {
|
|
156
|
-
.greese-Carousel--md-per-view {
|
|
157
|
-
--greese-carousel-per-view: var(--greese-carousel-per-view-md);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
@media (width >= 1200px) {
|
|
161
|
-
.greese-Carousel--lg-per-view {
|
|
162
|
-
--greese-carousel-per-view: var(--greese-carousel-per-view-lg);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
@media (width >= 1536px) {
|
|
166
|
-
.greese-Carousel--xl-per-view {
|
|
167
|
-
--greese-carousel-per-view: var(--greese-carousel-per-view-xl);
|
|
263
|
+
@keyframes greese-carousel-in {
|
|
264
|
+
from {
|
|
265
|
+
translate: calc(100% * var(--greese-carousel-way)) 0;
|
|
168
266
|
}
|
|
169
267
|
}
|
|
170
268
|
}
|
package/dist/css/Checkbox.css
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
}
|
|
14
14
|
.greese-Checkbox-input {
|
|
15
15
|
position: relative;
|
|
16
|
-
inline-size: 1.125rem;
|
|
17
|
-
block-size: 1.125rem;
|
|
16
|
+
inline-size: var(--greese-choice-box, 1.125rem);
|
|
17
|
+
block-size: var(--greese-choice-box, 1.125rem);
|
|
18
18
|
margin: 0;
|
|
19
19
|
cursor: pointer;
|
|
20
20
|
background-color: var(--greese-color-canvas);
|
package/dist/css/Chip.css
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
gap: var(--greese-space-1);
|
|
6
6
|
align-items: center;
|
|
7
|
-
min-block-size:
|
|
8
|
-
padding-inline: var(--greese-
|
|
9
|
-
font-size: var(--greese-
|
|
7
|
+
min-block-size: var(--greese-chip-height);
|
|
8
|
+
padding-inline: var(--greese-chip-padding);
|
|
9
|
+
font-size: var(--greese-chip-font);
|
|
10
10
|
line-height: 1;
|
|
11
11
|
color: var(--greese-color-fg);
|
|
12
12
|
white-space: nowrap;
|
|
@@ -20,6 +20,36 @@
|
|
|
20
20
|
.greese-Chip:has(.greese-Chip-remove) {
|
|
21
21
|
padding-inline-end: var(--greese-space-1);
|
|
22
22
|
}
|
|
23
|
+
.greese-Chip--size-xs {
|
|
24
|
+
--greese-chip-height: 1.25rem;
|
|
25
|
+
--greese-chip-padding: var(--greese-space-1);
|
|
26
|
+
--greese-chip-font: var(--greese-type-caption-font-size);
|
|
27
|
+
--greese-chip-remove: 1rem;
|
|
28
|
+
}
|
|
29
|
+
.greese-Chip--size-sm {
|
|
30
|
+
--greese-chip-height: 1.625rem;
|
|
31
|
+
--greese-chip-padding: var(--greese-space-2);
|
|
32
|
+
--greese-chip-font: var(--greese-type-caption-font-size);
|
|
33
|
+
--greese-chip-remove: 1.25rem;
|
|
34
|
+
}
|
|
35
|
+
.greese-Chip--size-md {
|
|
36
|
+
--greese-chip-height: 2rem;
|
|
37
|
+
--greese-chip-padding: var(--greese-space-3);
|
|
38
|
+
--greese-chip-font: var(--greese-type-p3-font-size);
|
|
39
|
+
--greese-chip-remove: 1.5rem;
|
|
40
|
+
}
|
|
41
|
+
.greese-Chip--size-lg {
|
|
42
|
+
--greese-chip-height: 2.5rem;
|
|
43
|
+
--greese-chip-padding: var(--greese-space-4);
|
|
44
|
+
--greese-chip-font: var(--greese-type-p2-font-size);
|
|
45
|
+
--greese-chip-remove: 1.75rem;
|
|
46
|
+
}
|
|
47
|
+
.greese-Chip--size-xl {
|
|
48
|
+
--greese-chip-height: 3rem;
|
|
49
|
+
--greese-chip-padding: var(--greese-space-5);
|
|
50
|
+
--greese-chip-font: var(--greese-type-p1-font-size);
|
|
51
|
+
--greese-chip-remove: 2rem;
|
|
52
|
+
}
|
|
23
53
|
.greese-Chip--neutral {
|
|
24
54
|
--greese-chip-tone: var(--greese-color-fg);
|
|
25
55
|
--greese-chip-tone-on: var(--greese-color-canvas);
|
|
@@ -101,19 +131,19 @@
|
|
|
101
131
|
}
|
|
102
132
|
.greese-Chip-toggle {
|
|
103
133
|
align-self: stretch;
|
|
104
|
-
padding-inline: var(--greese-
|
|
134
|
+
padding-inline: var(--greese-chip-padding);
|
|
105
135
|
border-radius: var(--greese-corner-pill);
|
|
106
136
|
}
|
|
107
137
|
.greese-Chip-remove {
|
|
108
138
|
justify-content: center;
|
|
109
|
-
inline-size:
|
|
110
|
-
block-size:
|
|
139
|
+
inline-size: var(--greese-chip-remove);
|
|
140
|
+
block-size: var(--greese-chip-remove);
|
|
111
141
|
color: var(--greese-color-fg-muted);
|
|
112
142
|
border-radius: var(--greese-corner-round);
|
|
113
143
|
}
|
|
114
144
|
.greese-Chip-remove > svg {
|
|
115
|
-
inline-size: 0.
|
|
116
|
-
block-size: 0.
|
|
145
|
+
inline-size: 0.6em;
|
|
146
|
+
block-size: 0.6em;
|
|
117
147
|
}
|
|
118
148
|
@media (hover: hover) {
|
|
119
149
|
.greese-Chip-remove:hover {
|
package/dist/css/ChoiceGroup.css
CHANGED
|
@@ -32,19 +32,60 @@
|
|
|
32
32
|
cursor: not-allowed;
|
|
33
33
|
opacity: 0.55;
|
|
34
34
|
}
|
|
35
|
+
.greese-Checkbox--size-xs,
|
|
36
|
+
.greese-Radio--size-xs,
|
|
37
|
+
.greese-Switch--size-xs,
|
|
38
|
+
.greese-ChoiceGroup--size-xs {
|
|
39
|
+
--greese-choice-font: var(--greese-type-p3-font-size);
|
|
40
|
+
--greese-choice-gap: var(--greese-space-2);
|
|
41
|
+
--greese-choice-box: calc(1.5rem * 0.45);
|
|
42
|
+
}
|
|
43
|
+
.greese-Checkbox--size-sm,
|
|
44
|
+
.greese-Radio--size-sm,
|
|
45
|
+
.greese-Switch--size-sm,
|
|
46
|
+
.greese-ChoiceGroup--size-sm {
|
|
47
|
+
--greese-choice-font: var(--greese-type-p3-font-size);
|
|
48
|
+
--greese-choice-gap: var(--greese-space-3);
|
|
49
|
+
--greese-choice-box: calc(2rem * 0.45);
|
|
50
|
+
}
|
|
51
|
+
.greese-Checkbox--size-md,
|
|
52
|
+
.greese-Radio--size-md,
|
|
53
|
+
.greese-Switch--size-md,
|
|
54
|
+
.greese-ChoiceGroup--size-md {
|
|
55
|
+
--greese-choice-font: var(--greese-type-p2-font-size);
|
|
56
|
+
--greese-choice-gap: var(--greese-space-3);
|
|
57
|
+
--greese-choice-box: calc(2.5rem * 0.45);
|
|
58
|
+
}
|
|
59
|
+
.greese-Checkbox--size-lg,
|
|
60
|
+
.greese-Radio--size-lg,
|
|
61
|
+
.greese-Switch--size-lg,
|
|
62
|
+
.greese-ChoiceGroup--size-lg {
|
|
63
|
+
--greese-choice-font: var(--greese-type-p2-font-size);
|
|
64
|
+
--greese-choice-gap: var(--greese-space-4);
|
|
65
|
+
--greese-choice-box: calc(3rem * 0.45);
|
|
66
|
+
}
|
|
67
|
+
.greese-Checkbox--size-xl,
|
|
68
|
+
.greese-Radio--size-xl,
|
|
69
|
+
.greese-Switch--size-xl,
|
|
70
|
+
.greese-ChoiceGroup--size-xl {
|
|
71
|
+
--greese-choice-font: var(--greese-type-p1-font-size);
|
|
72
|
+
--greese-choice-gap: var(--greese-space-4);
|
|
73
|
+
--greese-choice-box: calc(4rem * 0.45);
|
|
74
|
+
}
|
|
35
75
|
.greese-Checkbox-text {
|
|
36
76
|
display: flex;
|
|
37
77
|
flex-direction: column;
|
|
38
78
|
gap: var(--greese-space-1);
|
|
39
79
|
}
|
|
40
80
|
.greese-Checkbox-label {
|
|
81
|
+
font-size: var(--greese-choice-font, inherit);
|
|
41
82
|
cursor: pointer;
|
|
42
83
|
}
|
|
43
84
|
[data-disabled] > .greese-Checkbox-text > .greese-Checkbox-label {
|
|
44
85
|
cursor: not-allowed;
|
|
45
86
|
}
|
|
46
87
|
.greese-Checkbox-description {
|
|
47
|
-
font-size: var(--greese-type-p3-font-size);
|
|
88
|
+
font-size: var(--greese-choice-description-font, var(--greese-type-p3-font-size));
|
|
48
89
|
color: var(--greese-color-fg-muted);
|
|
49
90
|
}
|
|
50
91
|
.greese-Checkbox-box {
|
package/dist/css/Collapsible.css
CHANGED
package/dist/css/ColorPicker.css
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
/* stylelint-disable selector-no-vendor-prefix */
|
|
3
3
|
/* stylelint-disable color-no-hex, function-disallowed-list */
|
|
4
4
|
@layer greese.components {
|
|
5
|
+
.greese-ColorPicker--size-xs {
|
|
6
|
+
--greese-colorpicker-font: var(--greese-type-p3-font-size);
|
|
7
|
+
--greese-colorpicker-padding: var(--greese-space-2);
|
|
8
|
+
}
|
|
9
|
+
.greese-ColorPicker--size-sm {
|
|
10
|
+
--greese-colorpicker-font: var(--greese-type-p3-font-size);
|
|
11
|
+
--greese-colorpicker-padding: var(--greese-space-3);
|
|
12
|
+
}
|
|
13
|
+
.greese-ColorPicker--size-md {
|
|
14
|
+
--greese-colorpicker-font: var(--greese-type-p2-font-size);
|
|
15
|
+
--greese-colorpicker-padding: var(--greese-space-3);
|
|
16
|
+
}
|
|
17
|
+
.greese-ColorPicker--size-lg {
|
|
18
|
+
--greese-colorpicker-font: var(--greese-type-p2-font-size);
|
|
19
|
+
--greese-colorpicker-padding: var(--greese-space-4);
|
|
20
|
+
}
|
|
21
|
+
.greese-ColorPicker--size-xl {
|
|
22
|
+
--greese-colorpicker-font: var(--greese-type-p1-font-size);
|
|
23
|
+
--greese-colorpicker-padding: var(--greese-space-4);
|
|
24
|
+
}
|
|
5
25
|
.greese-ColorPicker {
|
|
6
26
|
--greese-colorpicker-thumb: 1.125rem;
|
|
7
27
|
box-sizing: border-box;
|
|
@@ -153,8 +173,72 @@
|
|
|
153
173
|
.greese-ColorPicker-hue {
|
|
154
174
|
direction: ltr;
|
|
155
175
|
}
|
|
176
|
+
.greese-ColorPicker-fields {
|
|
177
|
+
display: flex;
|
|
178
|
+
flex-wrap: wrap;
|
|
179
|
+
gap: var(--greese-space-2);
|
|
180
|
+
align-items: center;
|
|
181
|
+
}
|
|
156
182
|
.greese-ColorPicker-hex {
|
|
183
|
+
flex: 1 1 7rem;
|
|
184
|
+
min-inline-size: 0;
|
|
185
|
+
font-family: var(--greese-font-mono);
|
|
186
|
+
}
|
|
187
|
+
.greese-ColorPicker-channels {
|
|
188
|
+
display: flex;
|
|
189
|
+
flex: 1 0 100%;
|
|
190
|
+
gap: var(--greese-space-2);
|
|
191
|
+
min-inline-size: 0;
|
|
192
|
+
}
|
|
193
|
+
.greese-ColorPicker-channel {
|
|
194
|
+
flex: 1;
|
|
195
|
+
min-inline-size: 0;
|
|
196
|
+
padding-inline: var(--greese-space-1);
|
|
197
|
+
}
|
|
198
|
+
.greese-ColorPicker-channel .greese-Input-control {
|
|
157
199
|
font-family: var(--greese-font-mono);
|
|
200
|
+
text-align: end;
|
|
201
|
+
appearance: textfield;
|
|
202
|
+
}
|
|
203
|
+
.greese-ColorPicker-channel .greese-Input-control::-webkit-outer-spin-button, .greese-ColorPicker-channel .greese-Input-control::-webkit-inner-spin-button {
|
|
204
|
+
margin: 0;
|
|
205
|
+
appearance: none;
|
|
206
|
+
}
|
|
207
|
+
.greese-ColorPicker-channel .greese-Input-adornment {
|
|
208
|
+
font-family: var(--greese-font-mono);
|
|
209
|
+
color: var(--greese-color-fg-muted);
|
|
210
|
+
}
|
|
211
|
+
.greese-ColorPicker-tool {
|
|
212
|
+
display: inline-flex;
|
|
213
|
+
flex: none;
|
|
214
|
+
align-items: center;
|
|
215
|
+
justify-content: center;
|
|
216
|
+
inline-size: 1.75rem;
|
|
217
|
+
block-size: 1.75rem;
|
|
218
|
+
padding: 0;
|
|
219
|
+
color: var(--greese-color-fg-muted);
|
|
220
|
+
cursor: pointer;
|
|
221
|
+
background: none;
|
|
222
|
+
border: 0;
|
|
223
|
+
border-radius: var(--greese-corner-inset);
|
|
224
|
+
}
|
|
225
|
+
@media (pointer: coarse) {
|
|
226
|
+
.greese-ColorPicker-tool {
|
|
227
|
+
inline-size: 2.25rem;
|
|
228
|
+
block-size: 2.25rem;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
.greese-ColorPicker-tool:hover:not(:disabled) {
|
|
232
|
+
color: var(--greese-color-fg);
|
|
233
|
+
background: var(--greese-color-track);
|
|
234
|
+
}
|
|
235
|
+
.greese-ColorPicker-tool:focus-visible {
|
|
236
|
+
outline: 2px solid var(--greese-color-focus-ring);
|
|
237
|
+
outline-offset: 2px;
|
|
238
|
+
}
|
|
239
|
+
.greese-ColorPicker-tool:disabled {
|
|
240
|
+
cursor: not-allowed;
|
|
241
|
+
opacity: 0.5;
|
|
158
242
|
}
|
|
159
243
|
.greese-ColorPicker-swatches {
|
|
160
244
|
display: flex;
|
package/dist/css/Combobox.css
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
position: relative;
|
|
16
16
|
display: inline-grid;
|
|
17
17
|
place-items: center;
|
|
18
|
-
inline-size: 1.75rem;
|
|
19
|
-
block-size: 1.75rem;
|
|
18
|
+
inline-size: min(1.75rem, var(--greese-input-height, 1.75rem) - 2px);
|
|
19
|
+
block-size: min(1.75rem, var(--greese-input-height, 1.75rem) - 2px);
|
|
20
20
|
padding: 0;
|
|
21
21
|
margin-inline-end: calc(-1 * var(--greese-space-2));
|
|
22
22
|
color: var(--greese-color-fg-muted);
|