@ojiepermana/angular 22.2.2 → 22.2.3

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.
@@ -1 +1,2 @@
1
- export { SheetCloseDirective as DrawerCloseDirective, SheetComponent as DrawerComponent, SheetContentComponent as DrawerContentComponent, SheetDescriptionComponent as DrawerDescriptionComponent, SheetFooterComponent as DrawerFooterComponent, SheetHeaderComponent as DrawerHeaderComponent, SheetTitleComponent as DrawerTitleComponent } from "@ojiepermana/angular/component/sheet";
1
+ import { SheetCloseDirective as DrawerCloseDirective, SheetComponent as DrawerComponent, SheetContentComponent as DrawerContentComponent, SheetDescriptionComponent as DrawerDescriptionComponent, SheetFooterComponent as DrawerFooterComponent, SheetHeaderComponent as DrawerHeaderComponent, SheetTitleComponent as DrawerTitleComponent } from "@ojiepermana/angular/component/sheet";
2
+ export { DrawerCloseDirective, DrawerComponent, DrawerContentComponent, DrawerDescriptionComponent, DrawerFooterComponent, DrawerHeaderComponent, DrawerTitleComponent };
@@ -1,5 +1,5 @@
1
- import { r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-DiGOcizS.mjs";
2
- import { t as NavigationListComponent } from "./ojiepermana-angular-navigation-navigation-list.component-DB22Gl-5.mjs";
1
+ import { r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-ERZNpmTZ.mjs";
2
+ import { t as NavigationListComponent } from "./ojiepermana-angular-navigation-navigation-list.component-DfG6_3eF.mjs";
3
3
  import { NavigationBadgeCountComponent } from "./ojiepermana-angular-navigation-navigation-badge-count.component-4RIokl1C.mjs";
4
4
  import * as i0 from "@angular/core";
5
5
  import { Component, ElementRef, Injector, afterNextRender, computed, inject, input, output, signal } from "@angular/core";
@@ -1,4 +1,4 @@
1
- import { n as navigationPanelId, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-DiGOcizS.mjs";
1
+ import { n as navigationPanelId, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-ERZNpmTZ.mjs";
2
2
  import * as i0 from "@angular/core";
3
3
  import { Component, computed, inject, input, output, signal } from "@angular/core";
4
4
  import { ActivatedRoute, Router, RouterLink } from "@angular/router";
@@ -1,5 +1,5 @@
1
- import { r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-DiGOcizS.mjs";
2
- import { t as NavigationEntryGridComponent } from "./ojiepermana-angular-navigation-navigation-entry-grid.component-zBCXDa4c.mjs";
1
+ import { r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-ERZNpmTZ.mjs";
2
+ import { t as NavigationEntryGridComponent } from "./ojiepermana-angular-navigation-navigation-entry-grid.component-meQb_EWZ.mjs";
3
3
  import * as i0 from "@angular/core";
4
4
  import { Component, ElementRef, Injector, afterNextRender, computed, effect, inject, input, output, signal } from "@angular/core";
5
5
  import { cn } from "@ojiepermana/angular/component/utils/core";
@@ -1,5 +1,5 @@
1
- import { n as navigationPanelId, r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-DiGOcizS.mjs";
2
- import { t as NavigationEntryGridComponent } from "./ojiepermana-angular-navigation-navigation-entry-grid.component-zBCXDa4c.mjs";
1
+ import { n as navigationPanelId, r as NavigationItemContentComponent, t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-ERZNpmTZ.mjs";
2
+ import { t as NavigationEntryGridComponent } from "./ojiepermana-angular-navigation-navigation-entry-grid.component-meQb_EWZ.mjs";
3
3
  import * as i0 from "@angular/core";
4
4
  import { Component, ElementRef, Injector, afterNextRender, computed, effect, inject, input, output, signal } from "@angular/core";
5
5
  import { cn } from "@ojiepermana/angular/component/utils/core";
@@ -360,7 +360,7 @@ var NavigationItemComponent = class NavigationItemComponent {
360
360
  }
361
361
  interactiveStateClasses(active) {
362
362
  const showsNestedActiveConnector = active && this.orientation() === "vertical" && !this.compact() && this.stairsRail();
363
- if (this.orientation() === "vertical" && !this.compact()) return cn("relative isolate", "before:pointer-events-none before:absolute before:inset-y-0 before:left-2 before:right-2 before:-z-10 before:rounded-md before:border before:border-transparent before:bg-transparent before:transition-colors before:duration-normal before:content-['']", showsNestedActiveConnector && "after:pointer-events-none after:absolute after:-left-[calc(var(--nav-indent)-var(--nav-rail-offset))] after:top-1/2 after:-z-10 after:h-px after:w-[calc(var(--nav-indent)-var(--nav-rail-offset))] after:-translate-y-1/2 after:rounded-full after:bg-current/25 after:content-['']", active ? "text-foreground before:bg-accent" : "text-foreground/80 hover:text-accent-foreground hover:before:bg-accent");
363
+ if (this.orientation() === "vertical" && !this.compact()) return cn("relative isolate", "before:pointer-events-none before:absolute before:inset-y-0 before:left-2 before:right-2 before:-z-10 before:rounded-md before:border before:border-transparent before:bg-transparent before:transition-colors before:duration-normal before:content-['']", showsNestedActiveConnector && "after:pointer-events-none after:absolute after:-left-[calc(var(--nav-indent)-var(--nav-rail-offset))] after:top-1/2 after:-z-10 after:h-px after:w-[calc(var(--nav-indent)-var(--nav-rail-offset)+var(--spacing-base)*2)] after:-translate-y-1/2 after:rounded-full after:bg-current/25 after:content-['']", active ? "text-foreground before:bg-accent" : "text-foreground/80 hover:text-accent-foreground hover:before:bg-accent");
364
364
  return active ? "text-foreground bg-accent" : "text-foreground/80 hover:bg-accent hover:text-accent-foreground";
365
365
  }
366
366
  chevronClasses() {
@@ -381,7 +381,7 @@ var NavigationItemComponent = class NavigationItemComponent {
381
381
  childListClasses() {
382
382
  const isGroupedBranch = this.item().type === "group" || this.item().type === "mega";
383
383
  const usesStairsTree = this.collapseTree() === "stairs";
384
- return cn("flex list-none flex-col gap-0.5 p-0", !this.compact() && "mt-0.5", this.level() >= 0 && !this.compact() && !isGroupedBranch && usesStairsTree && cn("relative ml-(--nav-rail-offset) pl-[calc(var(--nav-indent)-var(--nav-rail-offset))] before:absolute before:-top-2 before:bottom-0 before:left-0 before:w-px before:-translate-x-1/2 before:rounded-full before:content-['']", this.isActive() ? "before:bg-current/25" : "before:bg-border"));
384
+ return cn("flex list-none flex-col gap-0.5 p-0", !this.compact() && "mt-0.5", this.level() >= 0 && !this.compact() && !isGroupedBranch && usesStairsTree && cn("relative ml-(--nav-rail-offset) pl-[calc(var(--nav-indent)-var(--nav-rail-offset))] before:absolute before:-top-0.5 before:bottom-0 before:left-0 before:w-px before:-translate-x-1/2 before:rounded-full before:content-['']", this.isActive() ? "before:bg-current/25" : "before:bg-border"));
385
385
  }
386
386
  showsStairsRailForChildren() {
387
387
  return !this.compact() && this.collapseTree() === "stairs" && this.item().type !== "group" && this.item().type !== "mega";
@@ -1,4 +1,4 @@
1
- import { t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-DiGOcizS.mjs";
1
+ import { t as NavigationItemComponent } from "./ojiepermana-angular-navigation-navigation-item.component-ERZNpmTZ.mjs";
2
2
  import * as i0 from "@angular/core";
3
3
  import { Component, computed, input, output } from "@angular/core";
4
4
  import { cn } from "@ojiepermana/angular/component/utils/core";
@@ -443,8 +443,9 @@ var NavigationService = class NavigationService {
443
443
  }
444
444
  activeMatch(explicitActiveUrl, relativeTo) {
445
445
  const cachedUrl = this.routerUrl();
446
- const activeUrl = explicitActiveUrl ?? this.router?.url ?? cachedUrl;
447
- return this.urlResolver.match(activeUrl, this.router?.url ?? cachedUrl, relativeTo);
446
+ const currentUrl = this.router?.navigated ? this.router.url : cachedUrl;
447
+ const activeUrl = explicitActiveUrl ?? currentUrl;
448
+ return this.urlResolver.match(activeUrl, currentUrl, relativeTo);
448
449
  }
449
450
  isPanelOpen(navIdOrItem, item) {
450
451
  const { navId, navItem } = this.resolvePanelArgs("isPanelOpen", navIdOrItem, item);
@@ -1,4 +1,4 @@
1
- import { t as NavigationListComponent } from "./ojiepermana-angular-navigation-navigation-list.component-DB22Gl-5.mjs";
1
+ import { t as NavigationListComponent } from "./ojiepermana-angular-navigation-navigation-list.component-DfG6_3eF.mjs";
2
2
  import * as i0 from "@angular/core";
3
3
  import { Component, DestroyRef, Directive, ElementRef, InjectionToken, Injector, TemplateRef, ViewContainerRef, afterNextRender, booleanAttribute, computed, contentChild, effect, forwardRef, inject, input, isDevMode, model, output, signal } from "@angular/core";
4
4
  import { ActivatedRoute } from "@angular/router";
@@ -7,7 +7,7 @@ import { NavigationIconDirective, NavigationIconDirective as NavigationIconDirec
7
7
  import { NAVIGATION_ADAPTER, NAVIGATION_ROUTE_CONTEXT_ADAPTER } from "@ojiepermana/angular/navigation/core";
8
8
  import { NAVIGATION_DOCKBAR_FALLBACK_ICON, NAVIGATION_DOCKBAR_FALLBACK_ICON as NAVIGATION_DOCKBAR_FALLBACK_ICON$1, formatNavigationBadgeCount, normalizeUiNavItems, normalizeUiNavItems as normalizeUiNavItems$1, toMinidockItems, ɵassertMinidockItems, ɵcompactNavigationDividers } from "@ojiepermana/angular/navigation/types";
9
9
  import { NgTemplateOutlet } from "@angular/common";
10
- import { LucidePanelLeftClose, LucidePanelLeftOpen, LucideRoute } from "@lucide/angular";
10
+ import { LucideCircle, LucideCircleDot, LucideRoute } from "@lucide/angular";
11
11
  import { IconComponent, provideIcons } from "@ojiepermana/angular/component/icon";
12
12
  import { TooltipDirective } from "@ojiepermana/angular/component/tooltip";
13
13
  export * from "@ojiepermana/angular/navigation/core";
@@ -762,9 +762,9 @@ var NavigationContentComponent = class NavigationContentComponent {
762
762
  outputs: ["openedIdsChange", "itemSelected"]
763
763
  }],
764
764
  deferBlockDependencies: [
765
- () => [import("./ojiepermana-angular-navigation-navigation-flyout-menu.component-DYkYIIHd.mjs").then((m) => m.NavigationFlyoutMenuComponent)],
766
- () => [import("./ojiepermana-angular-navigation-navigation-horizontal.component-LNTertHr.mjs").then((m) => m.NavigationHorizontalComponent)],
767
- () => [import("./ojiepermana-angular-navigation-navigation-dockbar-menu.component-CGfu2V6f.mjs").then((m) => m.NavigationDockbarMenuComponent)]
765
+ () => [import("./ojiepermana-angular-navigation-navigation-flyout-menu.component-DRdw2G-c.mjs").then((m) => m.NavigationFlyoutMenuComponent)],
766
+ () => [import("./ojiepermana-angular-navigation-navigation-horizontal.component-Bx1NcrWO.mjs").then((m) => m.NavigationHorizontalComponent)],
767
+ () => [import("./ojiepermana-angular-navigation-navigation-dockbar-menu.component-I-ln7fOq.mjs").then((m) => m.NavigationDockbarMenuComponent)]
768
768
  ]
769
769
  });
770
770
  };
@@ -774,9 +774,9 @@ i0.ɵɵngDeclareClassMetadataAsync({
774
774
  ngImport: i0,
775
775
  type: NavigationContentComponent,
776
776
  resolveDeferredDeps: () => [
777
- import("./ojiepermana-angular-navigation-navigation-flyout-menu.component-DYkYIIHd.mjs").then((m) => m.NavigationFlyoutMenuComponent),
778
- import("./ojiepermana-angular-navigation-navigation-horizontal.component-LNTertHr.mjs").then((m) => m.NavigationHorizontalComponent),
779
- import("./ojiepermana-angular-navigation-navigation-dockbar-menu.component-CGfu2V6f.mjs").then((m) => m.NavigationDockbarMenuComponent)
777
+ import("./ojiepermana-angular-navigation-navigation-flyout-menu.component-DRdw2G-c.mjs").then((m) => m.NavigationFlyoutMenuComponent),
778
+ import("./ojiepermana-angular-navigation-navigation-horizontal.component-Bx1NcrWO.mjs").then((m) => m.NavigationHorizontalComponent),
779
+ import("./ojiepermana-angular-navigation-navigation-dockbar-menu.component-I-ln7fOq.mjs").then((m) => m.NavigationDockbarMenuComponent)
780
780
  ],
781
781
  resolveMetadata: (NavigationFlyoutMenuComponent, NavigationHorizontalComponent, NavigationDockbarMenuComponent) => ({
782
782
  decorators: [{
@@ -1005,7 +1005,6 @@ var NavigationHeaderComponent = class NavigationHeaderComponent {
1005
1005
  return this.toggle() || this.shell.collapseEnabled();
1006
1006
  }, ...ngDevMode ? [{ debugName: "showToggle" }] : /* istanbul ignore next */ []);
1007
1007
  toggleAriaLabel = computed(() => this.collapsed() ? "Expand navigation" : "Collapse navigation", ...ngDevMode ? [{ debugName: "toggleAriaLabel" }] : /* istanbul ignore next */ []);
1008
- toggleIconName = computed(() => this.collapsed() ? "panel-left-open" : "panel-left-close", ...ngDevMode ? [{ debugName: "toggleIconName" }] : /* istanbul ignore next */ []);
1009
1008
  rowClasses = computed(() => cn("flex h-full items-center", !this.isHorizontal() && this.displayCollapsed() ? "justify-center" : "gap-3 px-3"), ...ngDevMode ? [{ debugName: "rowClasses" }] : /* istanbul ignore next */ []);
1010
1009
  contentClasses = computed(() => {
1011
1010
  if (this.isHorizontal()) return "flex min-w-0 items-center gap-3";
@@ -1049,7 +1048,7 @@ var NavigationHeaderComponent = class NavigationHeaderComponent {
1049
1048
  "class": "hostClasses()",
1050
1049
  "attr.data-collapsed": "displayCollapsed()"
1051
1050
  } },
1052
- providers: [provideIcons(LucidePanelLeftClose, LucidePanelLeftOpen)],
1051
+ providers: [provideIcons(LucideCircle, LucideCircleDot)],
1053
1052
  ngImport: i0,
1054
1053
  template: `
1055
1054
  <div [class]="rowClasses()">
@@ -1068,7 +1067,7 @@ var NavigationHeaderComponent = class NavigationHeaderComponent {
1068
1067
  >
1069
1068
  <Icon
1070
1069
  data-navigation-header-toggle-icon="true"
1071
- [name]="toggleIconName()"
1070
+ [name]="collapsed() ? 'circle' : 'circle-dot'"
1072
1071
  size="inherit"
1073
1072
  class="text-(length:--nav-icon-size)"
1074
1073
  />
@@ -1101,7 +1100,7 @@ i0.ɵɵngDeclareClassMetadata({
1101
1100
  args: [{
1102
1101
  selector: "NavigationHeader",
1103
1102
  imports: [IconComponent],
1104
- providers: [provideIcons(LucidePanelLeftClose, LucidePanelLeftOpen)],
1103
+ providers: [provideIcons(LucideCircle, LucideCircleDot)],
1105
1104
  host: {
1106
1105
  "[class]": "hostClasses()",
1107
1106
  "[attr.data-collapsed]": "displayCollapsed()"
@@ -1123,7 +1122,7 @@ i0.ɵɵngDeclareClassMetadata({
1123
1122
  >
1124
1123
  <Icon
1125
1124
  data-navigation-header-toggle-icon="true"
1126
- [name]="toggleIconName()"
1125
+ [name]="collapsed() ? 'circle' : 'circle-dot'"
1127
1126
  size="inherit"
1128
1127
  class="text-(length:--nav-icon-size)"
1129
1128
  />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ojiepermana/angular",
3
- "version": "22.2.2",
3
+ "version": "22.2.3",
4
4
  "description": "Accessible, tree-shakable Angular 22 design system from ojiepermana: UI components, charts, navigation shells, theme tokens, and an OpenAPI SDK generator.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -503,5 +503,5 @@
503
503
  "module": "fesm2022/ojiepermana-angular.mjs",
504
504
  "typings": "types/ojiepermana-angular.d.ts",
505
505
  "type": "module",
506
- "gitHead": "915ddb2641dfdf3c3f256276f3c2eafd5ab31e64"
506
+ "gitHead": "f5001a56a4c9a8b75b71254febe765be1e9a5b6d"
507
507
  }
@@ -1,6 +1,6 @@
1
1
  import { LucideIcon, LucideIconData } from "@lucide/angular";
2
2
  import * as i0 from "@angular/core";
3
- import { InjectionToken, Provider } from "@angular/core";
3
+ import { Provider } from "@angular/core";
4
4
  export declare class IconComponent {
5
5
  private readonly nearest;
6
6
  private readonly registry;
@@ -64,20 +64,6 @@ type IconInput = LucideIcon | LucideIconData;
64
64
  * bootstrapApplication(App, { providers: [provideIcons(LucideHouse, LucideSettings)] });
65
65
  */
66
66
  export declare function provideIcons(...icons: IconInput[]): Provider;
67
- /** The icons visible from one injector level: own icons merged over every parent level. */
68
- type IconSet = ReadonlyMap<string, LucideIconData>;
69
- /**
70
- * What one `provideIcons()` call contributes at its own injector level. Several
71
- * calls on the same level add up (multi), so `providers: [provideIcons(a), provideIcons(b)]`
72
- * keeps both. Internal: not exported from the entry point.
73
- */
74
- declare const UI_ICON_CONTRIBUTIONS: InjectionToken<readonly IconSet[]>;
75
- /**
76
- * The merged set visible at one injector level. Every `provideIcons()` call also
77
- * provides this token with `own + parent`, so a child level never hides an icon
78
- * registered above it (route, app root). Nearest wins on a name clash. Internal.
79
- */
80
- declare const UI_ICONS: InjectionToken<IconSet>;
81
67
  /**
82
68
  * Root view of the registered icons. The `<Icon>` component resolves from the set
83
69
  * of its nearest injector first, then falls back here, so icons registered with
@@ -28,8 +28,6 @@ declare abstract class SelectMaterialBridge extends MatSelect {
28
28
  protected materialConfigureSkipPredicate(predicate: (option: MatOption) => boolean): void;
29
29
  protected materialSetActiveItem(option: MatOption | number): void;
30
30
  }
31
- /** Material does not currently expose an option host accessor publicly. */
32
- declare function materialOptionHost(option: MatOption): HTMLElement;
33
31
  /**
34
32
  * Custom shadcn-styled select.
35
33
  *
@@ -1,6 +1,6 @@
1
1
  import { NavigationIconDirective, NavigationIconDirective as NavigationIconDirective$1 } from "@ojiepermana/angular/navigation/icon";
2
2
  import * as i0 from "@angular/core";
3
- import { InjectionToken, Signal, TemplateRef } from "@angular/core";
3
+ import { Signal, TemplateRef } from "@angular/core";
4
4
  import { NAVIGATION_DOCKBAR_FALLBACK_ICON, NavigationActionHandler, NavigationAppearance, NavigationAppearance as NavigationAppearance$1, NavigationBadgeAriaLabel, NavigationBadgeContext, NavigationBadgeContext as NavigationBadgeContext$1, NavigationBadgeCount, NavigationBadgeSource, NavigationBadgeSource as NavigationBadgeSource$1, NavigationBadgeValueSource, NavigationCollapseTree, NavigationCollapseTree as NavigationCollapseTree$1, NavigationDockbarMode, NavigationDockbarMode as NavigationDockbarMode$1, NavigationDockbarRouteConfig, NavigationDockbarRouteContext, NavigationDockbarRouteContext as NavigationDockbarRouteContext$1, NavigationFlyoutIconPosition, NavigationFlyoutIconPosition as NavigationFlyoutIconPosition$1, NavigationFlyoutTriggerVariant, NavigationFlyoutTriggerVariant as NavigationFlyoutTriggerVariant$1, NavigationHorizontalPosition, NavigationHorizontalPosition as NavigationHorizontalPosition$1, NavigationHorizontalType, NavigationIconContext, NavigationIconContext as NavigationIconContext$1, NavigationItem, NavigationItem as NavigationItem$1, NavigationItemBadge, NavigationItemClasses, NavigationItemType, NavigationLink, NavigationNormalizedItem, NavigationNormalizedItem as NavigationNormalizedItem$1, NavigationNormalizedItemType, NavigationOrientation, NavigationOrientation as NavigationOrientation$1, NavigationPosition, NavigationPosition as NavigationPosition$1, NavigationRegisterInput, NavigationResolvedRouteContext, NavigationResolvedRouteContext as NavigationResolvedRouteContext$1, NavigationRouteData, NavigationSelection, NavigationSelection as NavigationSelection$1, NavigationState, NavigationState as NavigationState$1, NavigationType, NavigationType as NavigationType$1, NavigationVerticalPosition, NavigationVerticalPosition as NavigationVerticalPosition$1, NavigationVerticalType, NavigationVisibilityHandler, formatNavigationBadgeCount, normalizeUiNavItems, toMinidockItems } from "@ojiepermana/angular/navigation/types";
5
5
  export * from "@ojiepermana/angular/navigation/core";
6
6
  /**
@@ -50,7 +50,6 @@ interface NavigationShellContext {
50
50
  readonly collapseEnabled: Signal<boolean>;
51
51
  toggleCollapsed(): void;
52
52
  }
53
- declare const NAVIGATION_SHELL: InjectionToken<NavigationShellContext>;
54
53
  interface NavigationDockbarRouteHeaderState {
55
54
  readonly activeEntry: NavigationNormalizedItem$1 | null;
56
55
  readonly panelGroup: NavigationNormalizedItem$1 | null;
@@ -297,7 +296,6 @@ export declare class NavigationHeaderComponent {
297
296
  */
298
297
  protected readonly showToggle: import("@angular/core").Signal<boolean>;
299
298
  protected readonly toggleAriaLabel: import("@angular/core").Signal<"Expand navigation" | "Collapse navigation">;
300
- protected readonly toggleIconName: import("@angular/core").Signal<"panel-left-open" | "panel-left-close">;
301
299
  /**
302
300
  * Baris isi header. Saat collapsed/dockbar (vertical) isi (inisial/ikon) dipusatkan di tengah
303
301
  * rail agar simetris dengan ikon nav-item di bawahnya (yang juga center di rail); selain itu kiri