@greese/ui 1.0.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/PageTransition.css +12 -0
- 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 +990 -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 +18837 -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/PageTransition/PageTransition.scss +29 -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 +55 -25
- 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/candy.css +87 -0
- package/themes/candy.scss +32 -0
- package/themes/extrude.css +42 -42
- package/themes/folio.css +200 -200
- package/themes/folio.scss +880 -878
- package/themes/forest.css +87 -0
- package/themes/forest.scss +32 -0
- package/themes/grape.css +87 -0
- package/themes/grape.scss +32 -0
- package/themes/greese.css +36 -0
- package/themes/greese.scss +21 -0
- package/themes/mono.css +87 -0
- package/themes/mono.scss +32 -0
- package/themes/ocean.css +87 -0
- package/themes/ocean.scss +32 -0
- 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/sunset.css +87 -0
- package/themes/sunset.scss +32 -0
- package/themes/ticket.css +180 -180
- package/themes/ticket.scss +881 -879
- package/themes/tilt.css +25 -25
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,9 @@ export * from './palette.ts';
|
|
|
3
3
|
export * from './typography.ts';
|
|
4
4
|
export * from './effects.ts';
|
|
5
5
|
export * from './utilities.ts';
|
|
6
|
-
export { cssVar, LAYER_ORDER, SCHEME_ATTR, THEME_ATTR } from './css.ts';
|
|
6
|
+
export { cssVar, LAYER_ORDER, MOTION_ATTR, SCHEME_ATTR, THEME_ATTR } from './css.ts';
|
|
7
7
|
export { createTheme, deriveColors, type ColorValue, type Theme, type ExtendTokens, type ThemeOptions, } from './theme.ts';
|
|
8
8
|
export { AA, contentColor, contrastRatio, CONTENT_DARK, CONTENT_LIGHT, luminance, } from './contrast.ts';
|
|
9
9
|
export { DEFAULT_SCHEME_STORAGE_KEY, getSchemeScript, type ColorScheme, type SchemeScriptOptions, } from './colorScheme.ts';
|
|
10
|
+
export { copyToClipboard } from './clipboard.ts';
|
|
10
11
|
export { createStoredValue, type StoredValue, type StoredValueOptions, } from './storage.ts';
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,9 @@ export * from "./palette.js";
|
|
|
3
3
|
export * from "./typography.js";
|
|
4
4
|
export * from "./effects.js";
|
|
5
5
|
export * from "./utilities.js";
|
|
6
|
-
export { cssVar, LAYER_ORDER, SCHEME_ATTR, THEME_ATTR } from "./css.js";
|
|
6
|
+
export { cssVar, LAYER_ORDER, MOTION_ATTR, SCHEME_ATTR, THEME_ATTR } from "./css.js";
|
|
7
7
|
export { createTheme, deriveColors, } from "./theme.js";
|
|
8
8
|
export { AA, contentColor, contrastRatio, CONTENT_DARK, CONTENT_LIGHT, luminance, } from "./contrast.js";
|
|
9
9
|
export { DEFAULT_SCHEME_STORAGE_KEY, getSchemeScript, } from "./colorScheme.js";
|
|
10
|
+
export { copyToClipboard } from "./clipboard.js";
|
|
10
11
|
export { createStoredValue, } from "./storage.js";
|
package/dist/shapes.d.ts
CHANGED
|
@@ -132,6 +132,17 @@ export declare const opensToBox: (def: ShapeDef) => boolean;
|
|
|
132
132
|
export declare const shapePoints: (def: ShapeDef, w: number, h: number, params?: ShapeParams, inset?: number) => Array<[number, number]>;
|
|
133
133
|
/** `@property` rules for the parameters: registered, so they animate. Once per page is enough. */
|
|
134
134
|
export declare const shapeProperties: (params: Iterable<string>) => string;
|
|
135
|
+
/**
|
|
136
|
+
* Where a shape's size is written: its parameters at rest (`params`), hovered
|
|
137
|
+
* or pressed, or its border's width (param `width`). `factor` scales it for a
|
|
138
|
+
* smaller variant of the element.
|
|
139
|
+
*/
|
|
140
|
+
export type ShapeSizeState = 'params' | 'hover' | 'active' | 'border';
|
|
141
|
+
/**
|
|
142
|
+
* How a size is written into the CSS: `10px` by default. A theme kept as
|
|
143
|
+
* SCSS writes a Sass expression instead, so its sizes can change in one place.
|
|
144
|
+
*/
|
|
145
|
+
export type ShapeSize = (shape: string, state: ShapeSizeState, param: string, value: number, factor: number) => string;
|
|
135
146
|
/** The shape flipped start to end, still clockwise. */
|
|
136
147
|
export declare const mirrored: (def: ShapeDef) => ShapeDef;
|
|
137
148
|
/** Where a shape is used: an element's selector and how it takes the shape. */
|
|
@@ -148,7 +159,7 @@ export interface ShapeUse extends ShapeTarget {
|
|
|
148
159
|
* mechanics (the clip, the border layer, transitions) are written once per
|
|
149
160
|
* kind of element. Pair it with `shapeProperties()` once.
|
|
150
161
|
*/
|
|
151
|
-
export declare const shapesCss: (shapes: Record<string, ShapeDef>, uses: ShapeUse[]) => string;
|
|
162
|
+
export declare const shapesCss: (shapes: Record<string, ShapeDef>, uses: ShapeUse[], size?: ShapeSize) => string;
|
|
152
163
|
/** One shape on one element: `shapesCss` for a single use. */
|
|
153
164
|
export declare const shapeCss: (def: ShapeDef, target: ShapeTarget) => string;
|
|
154
165
|
/**
|
package/dist/shapes.js
CHANGED
|
@@ -222,7 +222,8 @@ const decls = (d, indent = ' ') => Object.entries(d)
|
|
|
222
222
|
.map(([k, v]) => `${indent}${k}: ${v};`)
|
|
223
223
|
.join('\n');
|
|
224
224
|
const rule = (selector, d) => Object.keys(d).length ? `${selector} {\n${decls(d)}\n}` : '';
|
|
225
|
-
const
|
|
225
|
+
const pxSize = (_shape, _state, _param, value, factor) => `${num(value * factor)}px`;
|
|
226
|
+
const paramDecls = (set, size) => Object.fromEntries(Object.entries(set ?? {}).map(([k, v]) => [shapeVar(k), size(k, v)]));
|
|
226
227
|
/** The shape flipped start to end, still clockwise. */
|
|
227
228
|
export const mirrored = (def) => {
|
|
228
229
|
const flip = (l) => ({
|
|
@@ -272,7 +273,7 @@ const TIMING = 'var(--greese-duration-normal) var(--greese-easing-standard)';
|
|
|
272
273
|
* mechanics (the clip, the border layer, transitions) are written once per
|
|
273
274
|
* kind of element. Pair it with `shapeProperties()` once.
|
|
274
275
|
*/
|
|
275
|
-
export const shapesCss = (shapes, uses) => {
|
|
276
|
+
export const shapesCss = (shapes, uses, size = pxSize) => {
|
|
276
277
|
const live = uses.filter((u) => shapes[u.shape]);
|
|
277
278
|
if (!live.length)
|
|
278
279
|
return '';
|
|
@@ -373,8 +374,8 @@ export const shapesCss = (shapes, uses) => {
|
|
|
373
374
|
const { outer, ring } = clips(def);
|
|
374
375
|
const color = def.border?.color && def.border.color !== 'auto' ? def.border.color : undefined;
|
|
375
376
|
out.push(rule(sels.join(',\n'), {
|
|
376
|
-
...paramDecls(def.params),
|
|
377
|
-
[shapeVar(BORDER)]:
|
|
377
|
+
...paramDecls(def.params, (k, v) => size(name, 'params', k, v, 1)),
|
|
378
|
+
[shapeVar(BORDER)]: size(name, 'border', 'width', def.border?.width ?? 1, 1),
|
|
378
379
|
...(color && { '--greese-shape-ring': color }),
|
|
379
380
|
'--greese-shape-clip': outer,
|
|
380
381
|
'--greese-shape-ring-clip': ring,
|
|
@@ -404,11 +405,11 @@ export const shapesCss = (shapes, uses) => {
|
|
|
404
405
|
[u.selector, 1],
|
|
405
406
|
...Object.entries(u.scale ?? {}).map(([suffix, f]) => [join(u.selector, suffix), f]),
|
|
406
407
|
];
|
|
407
|
-
const scaled = (set, f) => paramDecls(set
|
|
408
|
+
const scaled = (state, set, f) => paramDecls(set, (k, v) => size(name, state, k, v, f));
|
|
408
409
|
for (const u of mine)
|
|
409
410
|
for (const [sel, f] of variantsOf(u).slice(1))
|
|
410
|
-
out.push(rule(sel, scaled(def.params, f)));
|
|
411
|
-
const stateRules = (set, pick, fallback) => {
|
|
411
|
+
out.push(rule(sel, scaled('params', def.params, f)));
|
|
412
|
+
const stateRules = (state, set, pick, fallback) => {
|
|
412
413
|
if (!set)
|
|
413
414
|
return '';
|
|
414
415
|
const byFactor = new Map();
|
|
@@ -420,13 +421,13 @@ export const shapesCss = (shapes, uses) => {
|
|
|
420
421
|
byFactor.set(f, [...(byFactor.get(f) ?? []), join(sel, suffix ?? fallback)]);
|
|
421
422
|
}
|
|
422
423
|
return [...byFactor]
|
|
423
|
-
.map(([f, list]) => rule(list.join(',\n'), scaled(set, f)))
|
|
424
|
+
.map(([f, list]) => rule(list.join(',\n'), scaled(state, set, f)))
|
|
424
425
|
.join('\n');
|
|
425
426
|
};
|
|
426
|
-
const hover = stateRules(def.hover, (u) => u.hover, ':hover');
|
|
427
|
+
const hover = stateRules('hover', def.hover, (u) => u.hover, ':hover');
|
|
427
428
|
if (hover)
|
|
428
429
|
out.push(block('@media (hover: hover)', hover));
|
|
429
|
-
const active = stateRules(def.active, (u) => u.active, ':active');
|
|
430
|
+
const active = stateRules('active', def.active, (u) => u.active, ':active');
|
|
430
431
|
if (active)
|
|
431
432
|
out.push(active);
|
|
432
433
|
// Focus: the shape opens to its box and the usual focus ring shows round
|