@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@underlayerdev/ui",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^22.0.0",
6
6
  "@angular/common": "^22.0.0",
@@ -345,7 +345,7 @@ a:active {
345
345
  }
346
346
  }
347
347
  @media (min-width: 1600px) {
348
- .ul-container-gallery.content {
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.content {
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: 32px;
381
- padding-right: 32px;
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<UiSize>;
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) => "info" | "alert" | "check_circle" | "cross_circle";
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;