@uni-design-system/uni-core 8.3.1 → 8.4.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.
@@ -33,6 +33,26 @@ export type Thickness = 'thin' | 'thick' | 'standard';
33
33
  export type Thicknesses = Partial<Record<Thickness | string, string | number>>;
34
34
  export type Icons = Record<string, string>;
35
35
  export type Icon = keyof Icons;
36
+ /**
37
+ * A named motion primitive. Duration and easing are one token rather than two
38
+ * scales because they are one design decision: slowing a panel without
39
+ * softening its curve reads as sluggish rather than calm.
40
+ */
41
+ export interface MotionToken {
42
+ /** Milliseconds. */
43
+ duration: number;
44
+ /** Any CSS `<easing-function>` — `linear`, `ease-out`, `cubic-bezier(…)`. */
45
+ easing: string;
46
+ /**
47
+ * Entry scale for panels that grow into place, e.g. `0.8`. Omitted by
48
+ * motions that only fade, and ignored by components that only fade.
49
+ */
50
+ scale?: number;
51
+ }
52
+ export type MotionName = 'popup' | 'panel' | 'reveal' | 'notification' | 'control';
53
+ /** Open like Borders/Shadows: extra named primitives allowed. */
54
+ export type Motions = Partial<Record<MotionName | string, MotionToken>>;
55
+ export type Motion = keyof Motions;
36
56
  export interface UniTheme {
37
57
  id: string;
38
58
  name: string;
@@ -46,6 +66,8 @@ export interface UniTheme {
46
66
  spacing: Spacing;
47
67
  thicknesses: Thicknesses;
48
68
  icons: Icons;
69
+ /** Shared timing for overlays and reveals; components point at a name. */
70
+ motion: Motions;
49
71
  /** Per-component theming: fixed base + state-aware variants + sizes + options. */
50
72
  components: ComponentThemes;
51
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme.model.d.ts","sourceRoot":"","sources":["../../../../src/concepts/theme/theme.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.model.d.ts","sourceRoot":"","sources":["../../../../src/concepts/theme/theme.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;AACpC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEjF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC/E,MAAM,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;AACnC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3E,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACtD,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3C,MAAM,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;AACnF,iEAAiE;AACjE,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,UAAU,EAAE,UAAU,CAAC;IAGvB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAC;IAEhB,kFAAkF;IAClF,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC"}
@@ -2,7 +2,7 @@ import { ComponentThemes } from '../../component';
2
2
  import { PaletteConfig } from '../../color';
3
3
  import { GenerateColorsConfig } from '../../generation/palette.factory';
4
4
  import { TextRole, TextStyle } from '../../typography';
5
- import { Borders, Colors, Icons, Radii, Shadows, Thicknesses, UniTheme } from '../theme.model';
5
+ import { Borders, Colors, Icons, Motions, Radii, Shadows, Thicknesses, UniTheme } from '../theme.model';
6
6
  export interface ThemeConfig {
7
7
  id: string;
8
8
  name: string;
@@ -17,6 +17,12 @@ export interface ThemeConfig {
17
17
  radii?: Radii;
18
18
  /** Override the elevation shadows, e.g. brand-tinted generated stacks. */
19
19
  shadows?: Shadows;
20
+ /**
21
+ * Named motion primitives, merged over {@link BaseMotion}. Retime every
22
+ * overlay at once by restating a token — components point at these by name
23
+ * rather than carrying their own durations.
24
+ */
25
+ motion?: Motions;
20
26
  /**
21
27
  * Sparse typography overrides, deep-merged over the base type scale:
22
28
  * restate only the roles — or the individual {@link TextStyle} fields
@@ -43,7 +49,7 @@ export interface ThemeConfig {
43
49
  */
44
50
  components?: ComponentThemes;
45
51
  }
46
- export declare const createTheme: ({ id, name, colors, icons, radii, shadows, typography, borders, thicknesses, components, }: ThemeConfig) => UniTheme;
52
+ export declare const createTheme: ({ id, name, colors, icons, radii, shadows, motion, typography, borders, thicknesses, components, }: ThemeConfig) => UniTheme;
47
53
  /**
48
54
  * Re-attach the built-in icon set to a theme that traveled without it.
49
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"base.theme.d.ts","sourceRoot":"","sources":["../../../../../src/concepts/theme/themes/base.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EAEP,WAAW,EAEX,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAy0BxB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAcD,eAAO,MAAM,WAAW,GAAI,4FAWzB,WAAW,KAAG,QAYf,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,QAAQ,KAAG,QAG7C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,QAAQ,KAAG,QAK/C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,oBAAoB,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,KAC1F,QAUF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAInF,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAmE,CAAC;AAE9F,eAAO,MAAM,SAAS,EAAE,QAItB,CAAC"}
1
+ {"version":3,"file":"base.theme.d.ts","sourceRoot":"","sources":["../../../../../src/concepts/theme/themes/base.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAI7E,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EAEP,WAAW,EAEX,QAAQ,EACT,MAAM,gBAAgB,CAAC;AA62BxB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAcD,eAAO,MAAM,WAAW,GAAI,oGAYzB,WAAW,KAAG,QAaf,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,QAAQ,KAAG,QAG7C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,QAAQ,KAAG,QAK/C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,oBAAoB,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,KAC1F,QAUF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAInF,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAmE,CAAC;AAE9F,eAAO,MAAM,SAAS,EAAE,QAItB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uni-design-system/uni-core",
3
- "version": "8.3.1",
3
+ "version": "8.4.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",