@lifecorner/angular-ui-kit 3.8.0 → 3.9.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 (30) hide show
  1. package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs +4 -4
  2. package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs.map +1 -1
  3. package/fesm2022/lifecorner-angular-ui-kit-button.mjs +39 -6
  4. package/fesm2022/lifecorner-angular-ui-kit-button.mjs.map +1 -1
  5. package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs +2 -1
  6. package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs.map +1 -1
  7. package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs +2 -1
  8. package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs.map +1 -1
  9. package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs +2 -1
  10. package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs.map +1 -1
  11. package/fesm2022/lifecorner-angular-ui-kit-header.mjs +2 -1
  12. package/fesm2022/lifecorner-angular-ui-kit-header.mjs.map +1 -1
  13. package/fesm2022/lifecorner-angular-ui-kit-list.mjs +2 -1
  14. package/fesm2022/lifecorner-angular-ui-kit-list.mjs.map +1 -1
  15. package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs +2 -1
  16. package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs.map +1 -1
  17. package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs +2 -2
  18. package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs.map +1 -1
  19. package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs +2 -2
  20. package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs.map +1 -1
  21. package/fesm2022/lifecorner-angular-ui-kit-table.mjs +2 -1
  22. package/fesm2022/lifecorner-angular-ui-kit-table.mjs.map +1 -1
  23. package/package.json +1 -1
  24. package/src/styles/_horizon.scss +46 -12
  25. package/src/styles/horizon.shell.spec.ts +67 -0
  26. package/src/styles/horizon.spec.ts +6 -4
  27. package/types/lifecorner-angular-ui-kit-app-shell.d.ts +15 -4
  28. package/types/lifecorner-angular-ui-kit-button.d.ts +30 -0
  29. package/types/lifecorner-angular-ui-kit-page-header.d.ts +6 -1
  30. package/types/lifecorner-angular-ui-kit-skeleton.d.ts +7 -1
@@ -20,8 +20,17 @@ import * as i0 from "@angular/core";
20
20
  * reserves its height at the end of the page (16 + 72 + 24 px plus the
21
21
  * safe-area inset; `--lc-app-shell-bottom-clearance`), so it never covers
22
22
  * content. With the horizon, the bar rests on the land instead.
23
- * - `[shell-footer]` — e.g. a compact `lc-footer`; on the horizon's land when
24
- * `horizon` is on, else after the page.
23
+ * - `[shell-footer]` — e.g. a compact `lc-footer`; after the page, or with
24
+ * `horizon` in a row of its own below the horizon, painted in the land's
25
+ * colour (`--color-land-3`): the land grows by the footer's height, so
26
+ * `--lc-horizon-land` stays the land above the footer and no page overrides
27
+ * it (3.9, LK-12).
28
+ * - `[shell-horizon-figure]` — Edu (or any decorative figure) on the horizon
29
+ * line, left of the sun: `lc-character`, `<img>`, `<picture>` or an element
30
+ * holding an inline `<svg>`. Projected as a direct child of `.lc-horizon`,
31
+ * sized and placed by the horizon (`--lc-horizon-figure-size` / `-gap`).
32
+ * Decorative: the horizon is `aria-hidden`, so give an `<img>` `alt=""` and
33
+ * nothing focusable. Shown only when `horizon` is on (3.9, AS-29).
25
34
  *
26
35
  * `horizon` closes the page with the "Weite" horizon (`.lc-horizon` from the
27
36
  * kit's styles): full-bleed, below the side navigation and the page, filling
@@ -47,7 +56,9 @@ export declare class AppShellComponent {
47
56
  /**
48
57
  * Close the page with the horizon (`.lc-horizon`): full width, below the
49
58
  * side navigation and the page, filling the rest of the screen; the footer
50
- * and the floating bar rest on its land.
59
+ * (in a row of its own, which adds to the land) and the floating bar rest
60
+ * on its land, and `[shell-horizon-figure]` stands on its line.
61
+ * @default false
51
62
  */
52
63
  readonly horizon: import("@angular/core").InputSignal<boolean>;
53
64
  protected readonly shellClasses: import("@angular/core").Signal<string>;
@@ -58,7 +69,7 @@ export declare class AppShellComponent {
58
69
  "required": false;
59
70
  "isSignal": true;
60
71
  };
61
- }, {}, never, ["[shell-header]", "[shell-nav]", "*", "[shell-footer]", "[shell-bottom-nav]"], true, never>;
72
+ }, {}, never, ["[shell-header]", "[shell-nav]", "*", "[shell-horizon-figure]", "[shell-footer]", "[shell-bottom-nav]"], true, never>;
62
73
  }
63
74
  /**
64
75
  * A page inside `lc-app-shell`: the `<main>` landmark with the page's content
@@ -30,6 +30,16 @@ export declare class ButtonComponent {
30
30
  * @default false
31
31
  */
32
32
  readonly inline: import("@angular/core").InputSignal<boolean>;
33
+ /**
34
+ * Drop the inline padding so a `variant="link"` button sits flush with the
35
+ * content edge: the label starts at the edge, and the button keeps its height
36
+ * and a 44 × 44 px minimum target. At the end edge of a row, set the CSS
37
+ * hook `--lc-btn-flush-align: end` (default `start`) on the host or an
38
+ * ancestor: every line of the label then ends at the edge. Ignored on other
39
+ * variants and with `iconOnly` (3.9, AS-26).
40
+ * @default false
41
+ */
42
+ readonly flush: import("@angular/core").InputSignal<boolean>;
33
43
  readonly clicked: import("@angular/core").OutputEmitterRef<void>;
34
44
  readonly focused: import("@angular/core").OutputEmitterRef<void>;
35
45
  readonly blurred: import("@angular/core").OutputEmitterRef<void>;
@@ -102,6 +112,11 @@ export declare class ButtonComponent {
102
112
  "required": false;
103
113
  "isSignal": true;
104
114
  };
115
+ "flush": {
116
+ "alias": "flush";
117
+ "required": false;
118
+ "isSignal": true;
119
+ };
105
120
  }, {
106
121
  "clicked": "clicked";
107
122
  "focused": "focused";
@@ -148,6 +163,16 @@ export declare class ButtonLinkComponent {
148
163
  * size, weight and line-height). Pair with `variant="link"`.
149
164
  */
150
165
  readonly inline: import("@angular/core").InputSignal<boolean>;
166
+ /**
167
+ * Drop the inline padding so a `variant="link"` link sits flush with the
168
+ * content edge: the label starts at the edge, and the link keeps its height
169
+ * and a 44 × 44 px minimum target. At the end edge of a row, set the CSS
170
+ * hook `--lc-btn-flush-align: end` (default `start`) on the link or an
171
+ * ancestor: every line of the label then ends at the edge. Ignored on other
172
+ * variants and with `iconOnly` (3.9, AS-26).
173
+ * @default false
174
+ */
175
+ readonly flush: import("@angular/core").InputSignal<boolean>;
151
176
  /** Classes on the anchor; merged with the consumer's own `class`. */
152
177
  protected readonly hostClasses: import("@angular/core").Signal<string>;
153
178
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonLinkComponent, never>;
@@ -177,5 +202,10 @@ export declare class ButtonLinkComponent {
177
202
  "required": false;
178
203
  "isSignal": true;
179
204
  };
205
+ "flush": {
206
+ "alias": "flush";
207
+ "required": false;
208
+ "isSignal": true;
209
+ };
180
210
  }, {}, never, ["[slot='icon-before']", "*", "[slot='icon-after']"], true, never>;
181
211
  }
@@ -2,6 +2,9 @@ import * as i0 from "@angular/core";
2
2
  /**
3
3
  * Visual size of the page header.
4
4
  * - `compact` — dense data-tool pages and section headings (18 px)
5
+ * - `secondary` — a second title under the page's main one, e.g. the other
6
+ * language of a bilingual page (20 px, `--font-size-xl`;
7
+ * the `compact` spacing; 3.9, AS-25)
5
8
  * - `default` — standard app pages (24 px)
6
9
  * - `comfortable` — landing-page hero feel (30 px)
7
10
  * - `title` — the "Weite" page title: 32 px on phones, 40 / 44 / 48 px
@@ -11,7 +14,7 @@ import * as i0 from "@angular/core";
11
14
  * - `auth` — the sign-in and registration `<h1>`: 30 px, 34 px from
12
15
  * 1024 px (`--font-size-auth-title`)
13
16
  */
14
- export type PageHeaderSize = 'compact' | 'default' | 'comfortable' | 'title' | 'display' | 'auth';
17
+ export type PageHeaderSize = 'compact' | 'secondary' | 'default' | 'comfortable' | 'title' | 'display' | 'auth';
15
18
  /**
16
19
  * Page header — top-of-page title block with optional subtitle,
17
20
  * breadcrumbs, badge, description and an actions area.
@@ -88,6 +91,8 @@ export declare class PageHeaderComponent {
88
91
  /**
89
92
  * Visual size of the page header.
90
93
  * - `compact` — dense data-tool pages and section headings (18 px)
94
+ * - `secondary` — a second title under the main one, e.g. the other
95
+ * language of a bilingual page (20 px, compact spacing)
91
96
  * - `default` — standard app pages (24 px)
92
97
  * - `comfortable` — landing-page hero feel (30 px)
93
98
  * - `title` — page title on the responsive title scale, 32–48 px
@@ -9,6 +9,9 @@ export type SkeletonVariant = 'line' | 'circle' | 'rect';
9
9
  * - Colours from `--color-skeleton` / `--color-skeleton-highlight`, overridable
10
10
  * with the `--lc-skeleton-bg` / `--lc-skeleton-highlight` hooks
11
11
  * - Custom width, height, and border radius
12
+ * - `--lc-skeleton-height` hook: the height from CSS (a container query, `cqi`),
13
+ * winning over the `height` input; set it on the `lc-skeleton` element (on a
14
+ * wrapper it reaches every skeleton inside)
12
15
  * - Composable for building complex loading layouts
13
16
  * - Dark mode compatible
14
17
  *
@@ -24,7 +27,10 @@ export declare class SkeletonComponent {
24
27
  readonly variant: import("@angular/core").InputSignal<SkeletonVariant>;
25
28
  /** Width (CSS value). Defaults to '100%' for line/rect, '40px' for circle. */
26
29
  readonly width: import("@angular/core").InputSignal<string | undefined>;
27
- /** Height (CSS value). Defaults to '0.875rem' for line, '40px' for circle, '100px' for rect. */
30
+ /**
31
+ * Height (CSS value). Defaults to '0.875rem' for line, '40px' for circle, '100px' for rect.
32
+ * The `--lc-skeleton-height` custom property, when set, wins over it.
33
+ */
28
34
  readonly height: import("@angular/core").InputSignal<string | undefined>;
29
35
  /** Border radius override (CSS value). */
30
36
  readonly borderRadius: import("@angular/core").InputSignal<string | undefined>;