@underlayerdev/ui 0.15.0 → 0.17.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/containers/_containers.scss +21 -9
- package/containers/_values.scss +4 -0
- package/design-tokens/_variables.scss +20 -0
- package/fesm2022/underlayerdev-ui.mjs +2762 -120
- package/fesm2022/underlayerdev-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/foundations.css +13 -7
- package/types/underlayerdev-ui.d.ts +103 -2
package/package.json
CHANGED
package/styles/foundations.css
CHANGED
|
@@ -345,7 +345,7 @@ a:active {
|
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
@media (min-width: 1600px) {
|
|
348
|
-
.ul-container-gallery
|
|
348
|
+
.ul-container-gallery > * {
|
|
349
349
|
max-width: 2176px;
|
|
350
350
|
}
|
|
351
351
|
}
|
|
@@ -368,7 +368,7 @@ a:active {
|
|
|
368
368
|
padding-left: 192px;
|
|
369
369
|
padding-right: 192px;
|
|
370
370
|
}
|
|
371
|
-
.ul-container-product
|
|
371
|
+
.ul-container-product > * {
|
|
372
372
|
max-width: 1920px;
|
|
373
373
|
}
|
|
374
374
|
}
|
|
@@ -377,17 +377,23 @@ a:active {
|
|
|
377
377
|
display: flex;
|
|
378
378
|
justify-content: center;
|
|
379
379
|
align-items: flex-start;
|
|
380
|
-
padding-left:
|
|
381
|
-
padding-right:
|
|
380
|
+
padding-left: 16px;
|
|
381
|
+
padding-right: 16px;
|
|
382
|
+
}
|
|
383
|
+
.ul-container-form > * {
|
|
384
|
+
max-width: 720px;
|
|
385
|
+
}
|
|
386
|
+
@media (min-width: 768px) {
|
|
387
|
+
.ul-container-form {
|
|
388
|
+
padding-left: 32px;
|
|
389
|
+
padding-right: 32px;
|
|
390
|
+
}
|
|
382
391
|
}
|
|
383
392
|
@media (min-width: 1024px) {
|
|
384
393
|
.ul-container-form {
|
|
385
394
|
padding-left: 64px;
|
|
386
395
|
padding-right: 64px;
|
|
387
396
|
}
|
|
388
|
-
.ul-container-form.content {
|
|
389
|
-
max-width: 960px;
|
|
390
|
-
}
|
|
391
397
|
}
|
|
392
398
|
@media (min-width: 1600px) {
|
|
393
399
|
.ul-container-form {
|
|
@@ -113,6 +113,12 @@ export declare class AreaCodeComponent {
|
|
|
113
113
|
}, {}, never, never, true, never>;
|
|
114
114
|
}
|
|
115
115
|
type UiSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
116
|
+
/**
|
|
117
|
+
* Button sizes: the shared scale plus 'xs', for a control that has to fit in a tight
|
|
118
|
+
* spot (a corner of a thumbnail). Like AvatarSize, it is kept out of UiSize so the
|
|
119
|
+
* other controls that share that scale don't gain a size they have no design for.
|
|
120
|
+
*/
|
|
121
|
+
type ButtonSize = UiSize | 'xs';
|
|
116
122
|
type UiCheckboxSize = 'default' | 'sm' | 'lg';
|
|
117
123
|
type UiTheme = 'fill-purple' | 'fill-white' | 'fill-yellow' | 'fill-red' | 'fill-green' | 'transparent-purple' | 'transparent-white' | 'transparent-red' | 'transparent-black' | 'ghost-purple' | 'ghost-white' | 'ghost-red' | 'ghost-green' | 'outline-white' | 'outline-purple' | 'outline-red' | 'outline-green';
|
|
118
124
|
type IconSize$1 = '5' | '6' | '7' | '8' | '16';
|
|
@@ -348,7 +354,7 @@ export declare class BreadcrumbComponent {
|
|
|
348
354
|
*/
|
|
349
355
|
export declare class ButtonComponent {
|
|
350
356
|
/** The size of the button */
|
|
351
|
-
size: import("@angular/core").InputSignal<
|
|
357
|
+
size: import("@angular/core").InputSignal<ButtonSize>;
|
|
352
358
|
/** The visual theme of the button */
|
|
353
359
|
theme: import("@angular/core").InputSignal<UiTheme>;
|
|
354
360
|
/** Whether the button only contains an icon */
|
|
@@ -2399,6 +2405,101 @@ export declare class MenuTriggerComponent {
|
|
|
2399
2405
|
"closed": "closed";
|
|
2400
2406
|
}, never, never, true, never>;
|
|
2401
2407
|
}
|
|
2408
|
+
/**
|
|
2409
|
+
* Footer of any paginated list: asks for the next page when it scrolls near the viewport,
|
|
2410
|
+
* and shows the matching indicator (loading, load more button, retry, end of list).
|
|
2411
|
+
* It knows nothing about what is listed and never fetches: bind `hasMore`/`loading`/`error`
|
|
2412
|
+
* to your store and react to `loadMore` and `retry`.
|
|
2413
|
+
*
|
|
2414
|
+
* On screens below the `sm` breakpoint it loads pages automatically for as long as there are
|
|
2415
|
+
* any. From `sm` up it does so for `autoLoadPages` pages, then waits for the button so the
|
|
2416
|
+
* page footer stays reachable.
|
|
2417
|
+
*
|
|
2418
|
+
* @example
|
|
2419
|
+
* <ul-load-more [hasMore]="hasMore()" [loading]="loading()" [error]="failed()"
|
|
2420
|
+
* (loadMore)="loadMore()" (retry)="retry()">
|
|
2421
|
+
* Load more
|
|
2422
|
+
* <span ulLoadMoreError>Could not load more.</span>
|
|
2423
|
+
* <span ulLoadMoreEnd>You have seen everything.</span>
|
|
2424
|
+
* </ul-load-more>
|
|
2425
|
+
*/
|
|
2426
|
+
export declare class LoadMoreComponent {
|
|
2427
|
+
/** Whether another page exists */
|
|
2428
|
+
readonly hasMore: import("@angular/core").InputSignal<boolean>;
|
|
2429
|
+
/** Whether a page is being fetched */
|
|
2430
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
2431
|
+
/** Whether the last fetch failed; shows the retry action and stops automatic loading */
|
|
2432
|
+
readonly error: import("@angular/core").InputSignal<boolean>;
|
|
2433
|
+
/** Pages loaded automatically from `sm` up before the button takes over */
|
|
2434
|
+
readonly autoLoadPages: import("@angular/core").InputSignal<number>;
|
|
2435
|
+
/** Show the end-of-list content once `hasMore` is false. Turn off while the list is empty */
|
|
2436
|
+
readonly showEnd: import("@angular/core").InputSignal<boolean>;
|
|
2437
|
+
/** Distance from the viewport at which the next page is requested early */
|
|
2438
|
+
readonly rootMargin: import("@angular/core").InputSignal<string>;
|
|
2439
|
+
/** Accessible name of the loading indicator */
|
|
2440
|
+
readonly loadingLabel: import("@angular/core").InputSignal<string>;
|
|
2441
|
+
/** Change it when the list is replaced (new filters), to count automatic pages from zero */
|
|
2442
|
+
readonly resetKey: import("@angular/core").InputSignal<unknown>;
|
|
2443
|
+
readonly loadMore: import("@angular/core").OutputEmitterRef<void>;
|
|
2444
|
+
readonly retry: import("@angular/core").OutputEmitterRef<void>;
|
|
2445
|
+
private readonly sentinel;
|
|
2446
|
+
private readonly isBrowser;
|
|
2447
|
+
private readonly destroyRef;
|
|
2448
|
+
private readonly autoLoaded;
|
|
2449
|
+
private readonly isWide;
|
|
2450
|
+
protected readonly isAuto: import("@angular/core").Signal<boolean>;
|
|
2451
|
+
protected readonly showButton: import("@angular/core").Signal<boolean>;
|
|
2452
|
+
protected readonly showEndContent: import("@angular/core").Signal<boolean>;
|
|
2453
|
+
private readonly canObserve;
|
|
2454
|
+
constructor();
|
|
2455
|
+
protected onButtonClick(): void;
|
|
2456
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoadMoreComponent, never>;
|
|
2457
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoadMoreComponent, "ul-load-more", never, {
|
|
2458
|
+
"hasMore": {
|
|
2459
|
+
"alias": "hasMore";
|
|
2460
|
+
"required": false;
|
|
2461
|
+
"isSignal": true;
|
|
2462
|
+
};
|
|
2463
|
+
"loading": {
|
|
2464
|
+
"alias": "loading";
|
|
2465
|
+
"required": false;
|
|
2466
|
+
"isSignal": true;
|
|
2467
|
+
};
|
|
2468
|
+
"error": {
|
|
2469
|
+
"alias": "error";
|
|
2470
|
+
"required": false;
|
|
2471
|
+
"isSignal": true;
|
|
2472
|
+
};
|
|
2473
|
+
"autoLoadPages": {
|
|
2474
|
+
"alias": "autoLoadPages";
|
|
2475
|
+
"required": false;
|
|
2476
|
+
"isSignal": true;
|
|
2477
|
+
};
|
|
2478
|
+
"showEnd": {
|
|
2479
|
+
"alias": "showEnd";
|
|
2480
|
+
"required": false;
|
|
2481
|
+
"isSignal": true;
|
|
2482
|
+
};
|
|
2483
|
+
"rootMargin": {
|
|
2484
|
+
"alias": "rootMargin";
|
|
2485
|
+
"required": false;
|
|
2486
|
+
"isSignal": true;
|
|
2487
|
+
};
|
|
2488
|
+
"loadingLabel": {
|
|
2489
|
+
"alias": "loadingLabel";
|
|
2490
|
+
"required": false;
|
|
2491
|
+
"isSignal": true;
|
|
2492
|
+
};
|
|
2493
|
+
"resetKey": {
|
|
2494
|
+
"alias": "resetKey";
|
|
2495
|
+
"required": false;
|
|
2496
|
+
"isSignal": true;
|
|
2497
|
+
};
|
|
2498
|
+
}, {
|
|
2499
|
+
"loadMore": "loadMore";
|
|
2500
|
+
"retry": "retry";
|
|
2501
|
+
}, never, ["[ulLoadMoreError]", "[ulLoadMoreEnd]", "[ulLoadMoreRetry]", "*"], true, never>;
|
|
2502
|
+
}
|
|
2402
2503
|
export type ModalVariant = 'default' | 'success' | 'error' | 'custom' | 'bottom-sheet' | 'confirmation';
|
|
2403
2504
|
export declare class ModalComponent {
|
|
2404
2505
|
/** Whether the modal is open. Supports two-way binding with [(open)]. */
|
|
@@ -3078,7 +3179,7 @@ export declare class StepperComponent {
|
|
|
3078
3179
|
}, {}, never, never, true, never>;
|
|
3079
3180
|
}
|
|
3080
3181
|
export type ToastKind = 'info' | 'success' | 'warning' | 'error';
|
|
3081
|
-
export declare const toastIcon: (kind: ToastKind) => "
|
|
3182
|
+
export declare const toastIcon: (kind: ToastKind) => "alert" | "check_circle" | "cross_circle" | "info";
|
|
3082
3183
|
export interface ToastConfig {
|
|
3083
3184
|
readonly id: string;
|
|
3084
3185
|
readonly message: string;
|