@ojiepermana/angular-component 22.0.44 → 22.0.46

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 (65) hide show
  1. package/fesm2022/ojiepermana-angular-component-accordion.mjs +9 -11
  2. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +100 -32
  3. package/fesm2022/ojiepermana-angular-component-alert.mjs +5 -9
  4. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +2 -3
  5. package/fesm2022/ojiepermana-angular-component-avatar.mjs +7 -13
  6. package/fesm2022/ojiepermana-angular-component-badge.mjs +2 -3
  7. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +16 -19
  8. package/fesm2022/ojiepermana-angular-component-button-group.mjs +4 -7
  9. package/fesm2022/ojiepermana-angular-component-button.mjs +2 -3
  10. package/fesm2022/ojiepermana-angular-component-calendar.mjs +7 -5
  11. package/fesm2022/ojiepermana-angular-component-card.mjs +8 -15
  12. package/fesm2022/ojiepermana-angular-component-carousel.mjs +15 -18
  13. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +40 -11
  14. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +8 -6
  15. package/fesm2022/ojiepermana-angular-component-combobox.mjs +36 -16
  16. package/fesm2022/ojiepermana-angular-component-command.mjs +25 -21
  17. package/fesm2022/ojiepermana-angular-component-composer.mjs +15 -18
  18. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +36 -11
  19. package/fesm2022/ojiepermana-angular-component-dialog.mjs +85 -30
  20. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +31 -26
  21. package/fesm2022/ojiepermana-angular-component-editor.mjs +37 -28
  22. package/fesm2022/ojiepermana-angular-component-empty.mjs +7 -13
  23. package/fesm2022/ojiepermana-angular-component-form.mjs +32 -24
  24. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +2 -3
  25. package/fesm2022/ojiepermana-angular-component-icon.mjs +51 -6
  26. package/fesm2022/ojiepermana-angular-component-input-group.mjs +17 -15
  27. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +15 -14
  28. package/fesm2022/ojiepermana-angular-component-input.mjs +2 -3
  29. package/fesm2022/ojiepermana-angular-component-item.mjs +11 -21
  30. package/fesm2022/ojiepermana-angular-component-kanban.mjs +27 -26
  31. package/fesm2022/ojiepermana-angular-component-kbd.mjs +3 -5
  32. package/fesm2022/ojiepermana-angular-component-label.mjs +2 -3
  33. package/fesm2022/ojiepermana-angular-component-menubar.mjs +6 -6
  34. package/fesm2022/ojiepermana-angular-component-native-select.mjs +3 -3
  35. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +25 -12
  36. package/fesm2022/ojiepermana-angular-component-pagination.mjs +22 -13
  37. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +70 -36
  38. package/fesm2022/ojiepermana-angular-component-progress.mjs +7 -5
  39. package/fesm2022/ojiepermana-angular-component-radio.mjs +21 -10
  40. package/fesm2022/ojiepermana-angular-component-resizable.mjs +22 -11
  41. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +8 -6
  42. package/fesm2022/ojiepermana-angular-component-select.mjs +29 -17
  43. package/fesm2022/ojiepermana-angular-component-separator.mjs +2 -3
  44. package/fesm2022/ojiepermana-angular-component-sheet.mjs +89 -30
  45. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +2 -3
  46. package/fesm2022/ojiepermana-angular-component-slider.mjs +25 -13
  47. package/fesm2022/ojiepermana-angular-component-spinner.mjs +6 -5
  48. package/fesm2022/ojiepermana-angular-component-switch.mjs +17 -8
  49. package/fesm2022/ojiepermana-angular-component-table.mjs +9 -17
  50. package/fesm2022/ojiepermana-angular-component-tabs.mjs +5 -9
  51. package/fesm2022/ojiepermana-angular-component-textarea.mjs +2 -3
  52. package/fesm2022/ojiepermana-angular-component-timeline.mjs +22 -17
  53. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +12 -6
  54. package/fesm2022/ojiepermana-angular-component-toggle.mjs +2 -3
  55. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +7 -6
  56. package/package.json +10 -1
  57. package/types/ojiepermana-angular-component-alert-dialog.d.ts +42 -3
  58. package/types/ojiepermana-angular-component-combobox.d.ts +4 -1
  59. package/types/ojiepermana-angular-component-command.d.ts +7 -2
  60. package/types/ojiepermana-angular-component-dialog.d.ts +33 -3
  61. package/types/ojiepermana-angular-component-form.d.ts +9 -0
  62. package/types/ojiepermana-angular-component-icon.d.ts +48 -1
  63. package/types/ojiepermana-angular-component-radio.d.ts +4 -1
  64. package/types/ojiepermana-angular-component-sheet.d.ts +33 -3
  65. package/types/ojiepermana-angular-component-timeline.d.ts +2 -1
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders } from '@angular/core';
2
3
 
3
4
  declare class IconComponent {
4
5
  private readonly materialSymbols;
@@ -20,12 +21,58 @@ declare class IconComponent {
20
21
  declare const MATERIAL_SYMBOLS_FONT_ATTR = "data-icon-font";
21
22
  declare const MATERIAL_SYMBOLS_FONT_ID = "material-symbols-outlined";
22
23
  declare const MATERIAL_SYMBOLS_FONT_HREF = "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0";
24
+ /** Configuration for {@link provideMaterialSymbols}. */
25
+ interface MaterialSymbolsConfig {
26
+ /**
27
+ * Stylesheet URL to load the Material Symbols font from. Defaults to the
28
+ * Google Fonts URL ({@link MATERIAL_SYMBOLS_FONT_HREF}). Point this at a
29
+ * self-hosted stylesheet for offline / CSP / privacy-safe setups.
30
+ */
31
+ readonly href?: string;
32
+ }
33
+ /**
34
+ * Presence of this token is what enables {@link IconComponent} to auto-load the
35
+ * font. It is only provided when the app opts in via `provideMaterialSymbols()`;
36
+ * without it, `<Icon>` makes no network request.
37
+ */
38
+ declare const MATERIAL_SYMBOLS_CONFIG: InjectionToken<MaterialSymbolsConfig>;
23
39
  declare class MaterialSymbolsService {
24
40
  private readonly documentRef;
25
41
  private readonly platformId;
42
+ private readonly config;
43
+ /**
44
+ * Token-gated load. No-op unless the app opted in via `provideMaterialSymbols()`
45
+ * (which provides {@link MATERIAL_SYMBOLS_CONFIG}). Called by `IconComponent`
46
+ * so rendering an icon never triggers an implicit network request on its own.
47
+ */
26
48
  ensureLoaded(): void;
49
+ /**
50
+ * Explicitly inject the font stylesheet, regardless of whether the config
51
+ * token is present. Used by integrations that decide to load the font from
52
+ * their own option surface (e.g. `provideUiTheme({ icons: { materialSymbols: true } })`).
53
+ */
54
+ load(config?: MaterialSymbolsConfig): void;
27
55
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MaterialSymbolsService, never>;
28
56
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<MaterialSymbolsService>;
29
57
  }
30
58
 
31
- export { IconComponent, MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_HREF, MATERIAL_SYMBOLS_FONT_ID, MaterialSymbolsService };
59
+ /**
60
+ * Opt in to loading the Material Symbols icon font that `<Icon>` renders with.
61
+ *
62
+ * By default `IconComponent` makes **no** network request — better for privacy,
63
+ * offline, and strict CSP. Add this provider to your bootstrap to fetch the font
64
+ * stylesheet once at startup. Pass `{ href }` to load from a self-hosted source
65
+ * instead of Google Fonts.
66
+ *
67
+ * @example
68
+ * // Google Fonts (default source):
69
+ * bootstrapApplication(App, { providers: [provideMaterialSymbols()] });
70
+ *
71
+ * @example
72
+ * // Self-hosted / offline:
73
+ * provideMaterialSymbols({ href: '/assets/material-symbols.css' });
74
+ */
75
+ declare function provideMaterialSymbols(config?: MaterialSymbolsConfig): EnvironmentProviders;
76
+
77
+ export { IconComponent, MATERIAL_SYMBOLS_CONFIG, MATERIAL_SYMBOLS_FONT_ATTR, MATERIAL_SYMBOLS_FONT_HREF, MATERIAL_SYMBOLS_FONT_ID, MaterialSymbolsService, provideMaterialSymbols };
78
+ export type { MaterialSymbolsConfig };
@@ -41,6 +41,9 @@ declare class RadioComponent {
41
41
  readonly value: _angular_core.InputSignal<string>;
42
42
  readonly disabled: _angular_core.InputSignal<boolean>;
43
43
  readonly class: _angular_core.InputSignal<string>;
44
+ /** Accessible name for the radio input when no text is projected into `<Radio>`. */
45
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
46
+ readonly ariaLabelledby: _angular_core.InputSignal<string | null>;
44
47
  protected readonly selected: _angular_core.Signal<boolean>;
45
48
  protected readonly isDisabled: _angular_core.Signal<boolean>;
46
49
  protected readonly hostClasses: _angular_core.Signal<string>;
@@ -51,7 +54,7 @@ declare class RadioComponent {
51
54
  protected handleBlur(): void;
52
55
  focus(): void;
53
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
54
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "Radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
57
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "Radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
55
58
  }
56
59
 
57
60
  export { RadioComponent, RadioGroupComponent };
@@ -25,10 +25,18 @@ declare class SheetComponent {
25
25
  readonly closeButtonLabel: _angular_core.InputSignal<string>;
26
26
  readonly labelledBy: _angular_core.InputSignal<string | null>;
27
27
  readonly describedBy: _angular_core.InputSignal<string | null>;
28
+ /** ARIA role for the surface. Defaults to `'dialog'`. */
29
+ readonly role: _angular_core.InputSignal<string>;
28
30
  readonly class: _angular_core.InputSignal<string>;
29
31
  readonly radius: _angular_core.InputSignal<"inherit" | "none" | "sm" | "md" | "lg" | "xl" | "full">;
30
32
  readonly density: _angular_core.InputSignal<"inherit" | "compact" | "normal" | "relaxed" | "spacious">;
31
33
  readonly openedChange: _angular_core.OutputEmitterRef<boolean>;
34
+ private readonly registeredTitleId;
35
+ private readonly registeredDescriptionId;
36
+ /** Explicit `aria-labelledby` wins; otherwise a projected `SheetTitle` supplies the id. */
37
+ protected readonly resolvedLabelledBy: _angular_core.Signal<string | null>;
38
+ /** Explicit `aria-describedby` wins; otherwise a projected `SheetDescription` supplies the id. */
39
+ protected readonly resolvedDescribedBy: _angular_core.Signal<string | null>;
32
40
  private readonly tpl;
33
41
  private overlayRef;
34
42
  private focusTrap;
@@ -42,9 +50,17 @@ declare class SheetComponent {
42
50
  private attach;
43
51
  private detach;
44
52
  close(): void;
53
+ /** Called by a projected `SheetTitle` so default usage has an accessible name (AXE-safe). */
54
+ registerTitleId(id: string | null): void;
55
+ /** Cleared by a `SheetTitle` on destroy so a closed/reopened sheet never points at a stale id. */
56
+ unregisterTitleId(id: string): void;
57
+ /** Called by a projected `SheetDescription`. */
58
+ registerDescriptionId(id: string | null): void;
59
+ /** Cleared by a `SheetDescription` on destroy. */
60
+ unregisterDescriptionId(id: string): void;
45
61
  private isDrawerHost;
46
62
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SheetComponent, never>;
47
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetComponent, "Sheet, Drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "labelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "describedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "openedChange": "openedChange"; }, never, ["*"], true, never>;
63
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetComponent, "Sheet, Drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "labelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "describedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "openedChange": "openedChange"; }, never, ["*"], true, never>;
48
64
  }
49
65
 
50
66
  declare class SheetHeaderComponent {
@@ -54,16 +70,30 @@ declare class SheetHeaderComponent {
54
70
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetHeaderComponent, "SheetHeader, DrawerHeader", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
55
71
  }
56
72
  declare class SheetTitleComponent {
73
+ /** Explicit id override; when omitted a document-unique id is generated. */
74
+ readonly id: _angular_core.InputSignal<string | null>;
57
75
  readonly class: _angular_core.InputSignal<string>;
76
+ private readonly autoId;
77
+ private readonly sheet;
78
+ /** The id rendered on the element, used by the parent sheet for aria-labelledby. */
79
+ readonly resolvedId: _angular_core.Signal<string>;
58
80
  protected readonly classes: _angular_core.Signal<string>;
81
+ constructor();
59
82
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SheetTitleComponent, never>;
60
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetTitleComponent, "SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
83
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetTitleComponent, "SheetTitle, DrawerTitle, h2[SheetTitle], h2[DrawerTitle]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
61
84
  }
62
85
  declare class SheetDescriptionComponent {
86
+ /** Explicit id override; when omitted a document-unique id is generated. */
87
+ readonly id: _angular_core.InputSignal<string | null>;
63
88
  readonly class: _angular_core.InputSignal<string>;
89
+ private readonly autoId;
90
+ private readonly sheet;
91
+ /** The id rendered on the element, used by the parent sheet for aria-describedby. */
92
+ readonly resolvedId: _angular_core.Signal<string>;
64
93
  protected readonly classes: _angular_core.Signal<string>;
94
+ constructor();
65
95
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SheetDescriptionComponent, never>;
66
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetDescriptionComponent, "SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
96
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SheetDescriptionComponent, "SheetDescription, DrawerDescription, p[SheetDescription], p[DrawerDescription]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
67
97
  }
68
98
  declare class SheetContentComponent {
69
99
  readonly class: _angular_core.InputSignal<string>;
@@ -32,11 +32,12 @@ declare class TimelineIndicatorComponent {
32
32
  readonly variant: _angular_core.InputSignal<TimelineIndicatorVariant>;
33
33
  readonly status: _angular_core.InputSignal<TimelineStatus | null>;
34
34
  readonly color: _angular_core.InputSignal<TimelineIndicatorColor | null>;
35
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
35
36
  readonly class: _angular_core.InputSignal<string>;
36
37
  protected readonly resolvedStatus: _angular_core.Signal<TimelineStatus>;
37
38
  protected readonly classes: _angular_core.Signal<string>;
38
39
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimelineIndicatorComponent, never>;
39
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimelineIndicatorComponent, "TimelineIndicator", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
40
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimelineIndicatorComponent, "TimelineIndicator", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
40
41
  }
41
42
  declare class TimelineContentComponent {
42
43
  private readonly item;