@ojiepermana/angular 21.1.22 → 21.1.24

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 (43) hide show
  1. package/etos/styles/style.css +4 -2
  2. package/fesm2022/ojiepermana-angular-brand-etos.mjs +25 -23
  3. package/fesm2022/ojiepermana-angular-brand-etos.mjs.map +1 -1
  4. package/fesm2022/ojiepermana-angular-chart.mjs +72 -72
  5. package/fesm2022/ojiepermana-angular-component.mjs +889 -295
  6. package/fesm2022/ojiepermana-angular-component.mjs.map +1 -1
  7. package/fesm2022/ojiepermana-angular-layout.mjs +104 -26
  8. package/fesm2022/ojiepermana-angular-layout.mjs.map +1 -1
  9. package/fesm2022/ojiepermana-angular-navigation.mjs +52 -41
  10. package/fesm2022/ojiepermana-angular-navigation.mjs.map +1 -1
  11. package/fesm2022/ojiepermana-angular-theme.mjs +27 -6
  12. package/fesm2022/ojiepermana-angular-theme.mjs.map +1 -1
  13. package/package.json +9 -1
  14. package/theme/styles/themes/library/_components.css +18 -0
  15. package/theme/styles/themes/library/_tokens.css +11 -10
  16. package/theme/styles/themes/library/color/amber.css +24 -11
  17. package/theme/styles/themes/library/color/base.css +36 -0
  18. package/theme/styles/themes/library/color/blue.css +23 -15
  19. package/theme/styles/themes/library/color/cyan.css +31 -0
  20. package/theme/styles/themes/library/color/emerald.css +31 -0
  21. package/theme/styles/themes/library/color/fuchsia.css +31 -0
  22. package/theme/styles/themes/library/color/green.css +23 -10
  23. package/theme/styles/themes/library/color/index.css +15 -2
  24. package/theme/styles/themes/library/color/indigo.css +31 -0
  25. package/theme/styles/themes/library/color/lime.css +31 -0
  26. package/theme/styles/themes/library/color/orange.css +31 -0
  27. package/theme/styles/themes/library/color/pink.css +31 -0
  28. package/theme/styles/themes/library/color/purple.css +23 -10
  29. package/theme/styles/themes/library/color/red.css +23 -10
  30. package/theme/styles/themes/library/color/rose.css +31 -0
  31. package/theme/styles/themes/library/color/sky.css +31 -0
  32. package/theme/styles/themes/library/color/teal.css +31 -0
  33. package/theme/styles/themes/library/color/violet.css +31 -0
  34. package/theme/styles/themes/library/color/yellow.css +31 -0
  35. package/theme/styles/themes/library/style/brutal.css +4 -2
  36. package/theme/styles/themes/library/style/default.css +4 -2
  37. package/theme/styles/themes/library/style/sharp.css +4 -2
  38. package/theme/styles/themes/library/style/soft.css +4 -2
  39. package/theme/styles/themes/tailwind.css +3 -1
  40. package/types/ojiepermana-angular-component.d.ts +215 -6
  41. package/types/ojiepermana-angular-layout.d.ts +19 -3
  42. package/types/ojiepermana-angular-navigation.d.ts +7 -2
  43. package/types/ojiepermana-angular-theme.d.ts +4 -4
@@ -1,6 +1,6 @@
1
1
  import { ClassValue } from 'clsx';
2
2
  import * as _angular_core from '@angular/core';
3
- import { model, TemplateRef, AfterContentInit, OnInit, OnDestroy } from '@angular/core';
3
+ import { model, TemplateRef, AfterContentInit, OnInit, OnDestroy, InjectionToken, Signal } from '@angular/core';
4
4
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
  import { ControlValueAccessor, FormControl, AbstractControl } from '@angular/forms';
@@ -11,6 +11,7 @@ import { MatSlideToggleChange } from '@angular/material/slide-toggle';
11
11
  import { MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';
12
12
  import * as i1 from '@angular/material/tooltip';
13
13
  export { TooltipPosition } from '@angular/material/tooltip';
14
+ import { SafeHtml } from '@angular/platform-browser';
14
15
 
15
16
  /**
16
17
  * Concatenate and dedupe Tailwind class names.
@@ -769,6 +770,12 @@ declare class PopoverContentDirective {
769
770
 
770
771
  type PopoverSide = 'top' | 'right' | 'bottom' | 'left';
771
772
  type PopoverAlign = 'start' | 'center' | 'end';
773
+ interface PopoverTriggerDefaults {
774
+ readonly side?: Signal<PopoverSide>;
775
+ readonly align?: Signal<PopoverAlign>;
776
+ readonly sideOffset?: Signal<number>;
777
+ }
778
+ declare const POPOVER_TRIGGER_DEFAULTS: InjectionToken<PopoverTriggerDefaults>;
772
779
  /**
773
780
  * Toggle a `<ng-template uiPopoverContent>` anchored to the host element.
774
781
  *
@@ -783,18 +790,21 @@ declare class PopoverTriggerDirective {
783
790
  private readonly vcr;
784
791
  private readonly el;
785
792
  private readonly destroyRef;
793
+ private readonly defaults;
786
794
  readonly uiPopoverTrigger: _angular_core.InputSignal<PopoverContentDirective>;
787
- readonly side: _angular_core.InputSignal<PopoverSide>;
788
- readonly align: _angular_core.InputSignal<PopoverAlign>;
789
- readonly sideOffset: _angular_core.InputSignal<number>;
795
+ readonly side: _angular_core.InputSignal<PopoverSide | undefined>;
796
+ readonly align: _angular_core.InputSignal<PopoverAlign | undefined>;
797
+ readonly sideOffset: _angular_core.InputSignal<number | undefined>;
790
798
  readonly disabled: _angular_core.InputSignal<boolean>;
791
799
  readonly openedChange: _angular_core.OutputEmitterRef<boolean>;
792
800
  private overlayRef;
793
801
  readonly isOpen: _angular_core.WritableSignal<boolean>;
794
802
  toggle(): void;
803
+ onKeyboardToggle(event: Event): void;
795
804
  open(): void;
796
805
  close(): void;
797
806
  private oppositeSide;
807
+ private usesNativeKeyboardActivation;
798
808
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverTriggerDirective, never>;
799
809
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[uiPopoverTrigger]", ["uiPopoverTrigger"], { "uiPopoverTrigger": { "alias": "uiPopoverTrigger"; "required": true; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "openedChange": "openedChange"; }, never, never, true, never>;
800
810
  }
@@ -1173,5 +1183,204 @@ declare class TooltipDirective {
1173
1183
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[uiTooltip]", ["uiTooltip"], { "uiTooltip": { "alias": "uiTooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.MatTooltip; inputs: { "matTooltipPosition": "uiTooltipPosition"; "matTooltipDisabled": "uiTooltipDisabled"; "matTooltipShowDelay": "uiTooltipShowDelay"; "matTooltipHideDelay": "uiTooltipHideDelay"; "matTooltipTouchGestures": "uiTooltipTouchGestures"; }; outputs: {}; }]>;
1174
1184
  }
1175
1185
 
1176
- export { AccordionComponent, AccordionContentComponent, AccordionContextBase, AccordionItemComponent, AccordionTriggerComponent, AlertComponent, AlertDescriptionComponent, AlertTitleComponent, AvatarComponent, AvatarFallbackComponent, AvatarImageComponent, BadgeComponent, BreadcrumbComponent, BreadcrumbEllipsisComponent, BreadcrumbItemComponent, BreadcrumbLinkComponent, BreadcrumbListComponent, BreadcrumbPageComponent, BreadcrumbSeparatorComponent, ButtonComponent, CalendarComponent, CardComponent, CardContentComponent, CardDescriptionComponent, CardFooterComponent, CardHeaderComponent, CardTitleComponent, CheckboxComponent, ComboboxComponent, CommandComponent, CommandContextBase, CommandEmptyComponent, CommandGroupComponent, CommandInputComponent, CommandItemComponent, CommandListComponent, CommandSeparatorComponent, CommandShortcutComponent, ContextMenuTriggerDirective, DatePickerComponent, DialogComponent, DialogContentComponent, DialogDescriptionComponent, DialogFooterComponent, DialogHeaderComponent, DialogTitleComponent, FormControlDirective, FormDescriptionComponent, FormFieldComponent, FormFieldContext, FormLabelComponent, FormMessageComponent, InputComponent, LabelComponent, MenuContentDirective, MenuItemComponent, MenuLabelComponent, MenuSeparatorComponent, MenuShortcutComponent, MenuSurfaceComponent, MenuTriggerDirective, OptionComponent, PaginationComponent, PopoverContentDirective, PopoverTriggerDirective, ProgressComponent, RadioComponent, RadioGroupComponent, ScrollAreaComponent, SelectComponent, SeparatorComponent, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetTitleComponent, SkeletonComponent, SliderComponent, SwitchComponent, TableBodyComponent, TableCaptionComponent, TableCellComponent, TableComponent, TableFooterComponent, TableHeadComponent, TableHeaderComponent, TableRowComponent, TabsComponent, TabsContentComponent, TabsContextBase, TabsListComponent, TabsTriggerComponent, TextareaComponent, ToastService, TooltipDirective, alertVariants, badgeVariants, buttonVariants, cn };
1177
- export type { AccordionType, AlertVariant, BadgeVariant, ButtonSize, ButtonVariant, ComboboxOption, MenuAlign, MenuSide, PopoverAlign, PopoverSide, SeparatorOrientation, SheetSide, ToastOptions, ToastVariant };
1186
+ type ThemePanelColor = 'base' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose';
1187
+ type ThemePanelMode = 'light' | 'dark' | 'system';
1188
+ type ThemePanelStyle = 'default' | 'sharp' | 'brutal' | 'soft';
1189
+ type ThemePanelLayoutMode = 'vertical' | 'horizontal' | 'empty';
1190
+ type ThemePanelLayoutWidth = 'full' | 'container' | 'wide';
1191
+ interface ThemePanelThemePort {
1192
+ readonly color: Signal<ThemePanelColor>;
1193
+ readonly scheme: Signal<ThemePanelMode>;
1194
+ readonly style: Signal<ThemePanelStyle>;
1195
+ setColor(color: ThemePanelColor): void;
1196
+ setScheme(mode: ThemePanelMode): void;
1197
+ setStyle(style: ThemePanelStyle): void;
1198
+ }
1199
+ interface ThemePanelLayoutPort {
1200
+ readonly mode: Signal<ThemePanelLayoutMode>;
1201
+ readonly width: Signal<ThemePanelLayoutWidth>;
1202
+ setMode(mode: ThemePanelLayoutMode): void;
1203
+ setWidth(width: ThemePanelLayoutWidth): void;
1204
+ }
1205
+ declare const THEME_PANEL_THEME_PORT: InjectionToken<ThemePanelThemePort>;
1206
+ declare const THEME_PANEL_LAYOUT_PORT: InjectionToken<ThemePanelLayoutPort>;
1207
+ type ThemePanelIconName = 'sun' | 'moon' | 'system' | 'default-style' | 'sharp-style' | 'brutal-style' | 'soft-style' | 'vertical-layout' | 'horizontal-layout' | 'empty-layout' | 'full-width' | 'container-width' | 'wide-width';
1208
+ declare class ThemePanelComponent {
1209
+ private readonly sanitizer;
1210
+ private readonly themePort;
1211
+ private readonly layoutPort;
1212
+ readonly connected: _angular_core.InputSignal<boolean>;
1213
+ readonly class: _angular_core.InputSignal<string>;
1214
+ readonly title: _angular_core.InputSignal<string>;
1215
+ readonly description: _angular_core.InputSignal<string>;
1216
+ readonly userName: _angular_core.InputSignal<string>;
1217
+ readonly userSubtitle: _angular_core.InputSignal<string>;
1218
+ readonly userInitials: _angular_core.InputSignal<string>;
1219
+ readonly themeColor: _angular_core.InputSignal<ThemePanelColor>;
1220
+ readonly themeMode: _angular_core.InputSignal<ThemePanelMode>;
1221
+ readonly themeStyle: _angular_core.InputSignal<ThemePanelStyle>;
1222
+ readonly layoutMode: _angular_core.InputSignal<ThemePanelLayoutMode>;
1223
+ readonly layoutWidth: _angular_core.InputSignal<ThemePanelLayoutWidth>;
1224
+ readonly themeColorChange: _angular_core.OutputEmitterRef<ThemePanelColor>;
1225
+ readonly themeModeChange: _angular_core.OutputEmitterRef<ThemePanelMode>;
1226
+ readonly themeStyleChange: _angular_core.OutputEmitterRef<ThemePanelStyle>;
1227
+ readonly layoutModeChange: _angular_core.OutputEmitterRef<ThemePanelLayoutMode>;
1228
+ readonly layoutWidthChange: _angular_core.OutputEmitterRef<ThemePanelLayoutWidth>;
1229
+ protected readonly currentThemeColor: _angular_core.WritableSignal<ThemePanelColor>;
1230
+ protected readonly currentThemeMode: _angular_core.WritableSignal<ThemePanelMode>;
1231
+ protected readonly currentThemeStyle: _angular_core.WritableSignal<ThemePanelStyle>;
1232
+ protected readonly currentLayoutMode: _angular_core.WritableSignal<ThemePanelLayoutMode>;
1233
+ protected readonly currentLayoutWidth: _angular_core.WritableSignal<ThemePanelLayoutWidth>;
1234
+ protected readonly themeColorOptions: readonly [{
1235
+ readonly value: "base";
1236
+ readonly label: "Base";
1237
+ readonly swatchClass: "bg-zinc-800";
1238
+ }, {
1239
+ readonly value: "red";
1240
+ readonly label: "Red";
1241
+ readonly swatchClass: "bg-red-500";
1242
+ }, {
1243
+ readonly value: "orange";
1244
+ readonly label: "Orange";
1245
+ readonly swatchClass: "bg-orange-500";
1246
+ }, {
1247
+ readonly value: "amber";
1248
+ readonly label: "Amber";
1249
+ readonly swatchClass: "bg-amber-400";
1250
+ }, {
1251
+ readonly value: "yellow";
1252
+ readonly label: "Yellow";
1253
+ readonly swatchClass: "bg-yellow-400";
1254
+ }, {
1255
+ readonly value: "lime";
1256
+ readonly label: "Lime";
1257
+ readonly swatchClass: "bg-lime-400";
1258
+ }, {
1259
+ readonly value: "green";
1260
+ readonly label: "Green";
1261
+ readonly swatchClass: "bg-green-600";
1262
+ }, {
1263
+ readonly value: "emerald";
1264
+ readonly label: "Emerald";
1265
+ readonly swatchClass: "bg-emerald-600";
1266
+ }, {
1267
+ readonly value: "teal";
1268
+ readonly label: "Teal";
1269
+ readonly swatchClass: "bg-teal-600";
1270
+ }, {
1271
+ readonly value: "cyan";
1272
+ readonly label: "Cyan";
1273
+ readonly swatchClass: "bg-cyan-600";
1274
+ }, {
1275
+ readonly value: "sky";
1276
+ readonly label: "Sky";
1277
+ readonly swatchClass: "bg-sky-600";
1278
+ }, {
1279
+ readonly value: "blue";
1280
+ readonly label: "Blue";
1281
+ readonly swatchClass: "bg-blue-500";
1282
+ }, {
1283
+ readonly value: "indigo";
1284
+ readonly label: "Indigo";
1285
+ readonly swatchClass: "bg-indigo-500";
1286
+ }, {
1287
+ readonly value: "violet";
1288
+ readonly label: "Violet";
1289
+ readonly swatchClass: "bg-violet-500";
1290
+ }, {
1291
+ readonly value: "purple";
1292
+ readonly label: "Purple";
1293
+ readonly swatchClass: "bg-purple-500";
1294
+ }, {
1295
+ readonly value: "fuchsia";
1296
+ readonly label: "Fuchsia";
1297
+ readonly swatchClass: "bg-fuchsia-600";
1298
+ }, {
1299
+ readonly value: "pink";
1300
+ readonly label: "Pink";
1301
+ readonly swatchClass: "bg-pink-600";
1302
+ }, {
1303
+ readonly value: "rose";
1304
+ readonly label: "Rose";
1305
+ readonly swatchClass: "bg-rose-500";
1306
+ }];
1307
+ protected readonly themeModeOptions: readonly [{
1308
+ readonly value: "light";
1309
+ readonly label: "Light";
1310
+ readonly icon: "sun";
1311
+ }, {
1312
+ readonly value: "dark";
1313
+ readonly label: "Dark";
1314
+ readonly icon: "moon";
1315
+ }, {
1316
+ readonly value: "system";
1317
+ readonly label: "System";
1318
+ readonly icon: "system";
1319
+ }];
1320
+ protected readonly themeStyleOptions: readonly [{
1321
+ readonly value: "default";
1322
+ readonly label: "Default";
1323
+ readonly icon: "default-style";
1324
+ }, {
1325
+ readonly value: "sharp";
1326
+ readonly label: "Sharp";
1327
+ readonly icon: "sharp-style";
1328
+ }, {
1329
+ readonly value: "brutal";
1330
+ readonly label: "Brutal";
1331
+ readonly icon: "brutal-style";
1332
+ }, {
1333
+ readonly value: "soft";
1334
+ readonly label: "Soft";
1335
+ readonly icon: "soft-style";
1336
+ }];
1337
+ protected readonly layoutModeOptions: readonly [{
1338
+ readonly value: "vertical";
1339
+ readonly label: "Vertical";
1340
+ readonly icon: "vertical-layout";
1341
+ }, {
1342
+ readonly value: "horizontal";
1343
+ readonly label: "Horizontal";
1344
+ readonly icon: "horizontal-layout";
1345
+ }, {
1346
+ readonly value: "empty";
1347
+ readonly label: "Empty";
1348
+ readonly icon: "empty-layout";
1349
+ }];
1350
+ protected readonly layoutWidthOptions: readonly [{
1351
+ readonly value: "full";
1352
+ readonly label: "Full";
1353
+ readonly icon: "full-width";
1354
+ }, {
1355
+ readonly value: "container";
1356
+ readonly label: "Container";
1357
+ readonly icon: "container-width";
1358
+ }, {
1359
+ readonly value: "wide";
1360
+ readonly label: "Wide";
1361
+ readonly icon: "wide-width";
1362
+ }];
1363
+ protected readonly hostClasses: Signal<string>;
1364
+ protected readonly hasUserHeader: Signal<boolean>;
1365
+ protected readonly resolvedUserInitials: Signal<string>;
1366
+ protected readonly currentThemeColorLabel: Signal<"" | "Base" | "Red" | "Orange" | "Amber" | "Yellow" | "Lime" | "Green" | "Emerald" | "Teal" | "Cyan" | "Sky" | "Blue" | "Indigo" | "Violet" | "Purple" | "Fuchsia" | "Pink" | "Rose">;
1367
+ constructor();
1368
+ protected setThemeColor(color: ThemePanelColor): void;
1369
+ protected setThemeMode(mode: ThemePanelMode): void;
1370
+ protected setThemeStyle(style: ThemePanelStyle): void;
1371
+ protected setLayoutMode(mode: ThemePanelLayoutMode): void;
1372
+ protected setLayoutWidth(width: ThemePanelLayoutWidth): void;
1373
+ protected sectionEyebrowClasses(): string;
1374
+ protected segmentedOptionClasses(active: boolean): string;
1375
+ protected swatchButtonClasses(active: boolean): string;
1376
+ protected optionIconClasses(active: boolean): string;
1377
+ protected colorSwatchClasses(swatchClass: string | undefined, isActive: boolean): string;
1378
+ protected iconSvg(name: ThemePanelIconName): SafeHtml;
1379
+ private rawIconSvg;
1380
+ private toInitials;
1381
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemePanelComponent, never>;
1382
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemePanelComponent, "ui-theme-panel", never, { "connected": { "alias": "connected"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "userName": { "alias": "userName"; "required": false; "isSignal": true; }; "userSubtitle": { "alias": "userSubtitle"; "required": false; "isSignal": true; }; "userInitials": { "alias": "userInitials"; "required": false; "isSignal": true; }; "themeColor": { "alias": "themeColor"; "required": false; "isSignal": true; }; "themeMode": { "alias": "themeMode"; "required": false; "isSignal": true; }; "themeStyle": { "alias": "themeStyle"; "required": false; "isSignal": true; }; "layoutMode": { "alias": "layoutMode"; "required": false; "isSignal": true; }; "layoutWidth": { "alias": "layoutWidth"; "required": false; "isSignal": true; }; }, { "themeColorChange": "themeColorChange"; "themeModeChange": "themeModeChange"; "themeStyleChange": "themeStyleChange"; "layoutModeChange": "layoutModeChange"; "layoutWidthChange": "layoutWidthChange"; }, never, never, true, never>;
1383
+ }
1384
+
1385
+ export { AccordionComponent, AccordionContentComponent, AccordionContextBase, AccordionItemComponent, AccordionTriggerComponent, AlertComponent, AlertDescriptionComponent, AlertTitleComponent, AvatarComponent, AvatarFallbackComponent, AvatarImageComponent, BadgeComponent, BreadcrumbComponent, BreadcrumbEllipsisComponent, BreadcrumbItemComponent, BreadcrumbLinkComponent, BreadcrumbListComponent, BreadcrumbPageComponent, BreadcrumbSeparatorComponent, ButtonComponent, CalendarComponent, CardComponent, CardContentComponent, CardDescriptionComponent, CardFooterComponent, CardHeaderComponent, CardTitleComponent, CheckboxComponent, ComboboxComponent, CommandComponent, CommandContextBase, CommandEmptyComponent, CommandGroupComponent, CommandInputComponent, CommandItemComponent, CommandListComponent, CommandSeparatorComponent, CommandShortcutComponent, ContextMenuTriggerDirective, DatePickerComponent, DialogComponent, DialogContentComponent, DialogDescriptionComponent, DialogFooterComponent, DialogHeaderComponent, DialogTitleComponent, FormControlDirective, FormDescriptionComponent, FormFieldComponent, FormFieldContext, FormLabelComponent, FormMessageComponent, InputComponent, LabelComponent, MenuContentDirective, MenuItemComponent, MenuLabelComponent, MenuSeparatorComponent, MenuShortcutComponent, MenuSurfaceComponent, MenuTriggerDirective, OptionComponent, POPOVER_TRIGGER_DEFAULTS, PaginationComponent, PopoverContentDirective, PopoverTriggerDirective, ProgressComponent, RadioComponent, RadioGroupComponent, ScrollAreaComponent, SelectComponent, SeparatorComponent, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetTitleComponent, SkeletonComponent, SliderComponent, SwitchComponent, THEME_PANEL_LAYOUT_PORT, THEME_PANEL_THEME_PORT, TableBodyComponent, TableCaptionComponent, TableCellComponent, TableComponent, TableFooterComponent, TableHeadComponent, TableHeaderComponent, TableRowComponent, TabsComponent, TabsContentComponent, TabsContextBase, TabsListComponent, TabsTriggerComponent, TextareaComponent, ThemePanelComponent, ToastService, TooltipDirective, alertVariants, badgeVariants, buttonVariants, cn };
1386
+ export type { AccordionType, AlertVariant, BadgeVariant, ButtonSize, ButtonVariant, ComboboxOption, MenuAlign, MenuSide, PopoverAlign, PopoverSide, PopoverTriggerDefaults, SeparatorOrientation, SheetSide, ThemePanelColor, ThemePanelLayoutMode, ThemePanelLayoutPort, ThemePanelLayoutWidth, ThemePanelMode, ThemePanelStyle, ThemePanelThemePort, ToastOptions, ToastVariant };
@@ -1,6 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
3
  import { SidebarAppearance, SidebarPosition, SidebarMode, TopbarAppearance } from '@ojiepermana/angular/navigation';
4
+ import { PopoverTriggerDefaults, PopoverSide, PopoverAlign } from '@ojiepermana/angular/component';
4
5
 
5
6
  /**
6
7
  * Vertical layout — sidebar + main (scrollable).
@@ -12,7 +13,8 @@ import { SidebarAppearance, SidebarPosition, SidebarMode, TopbarAppearance } fro
12
13
  * Markup:
13
14
  * ```html
14
15
  * <vertical>
15
- * <!-- sidebar + router-outlet dirender oleh komponen -->
16
+ * <a ui-layout-brand>Brand</a>
17
+ * <button ui-layout-profile type="button">Profile</button>
16
18
  * </vertical>
17
19
  * ```
18
20
  */
@@ -32,7 +34,7 @@ declare class VerticalLayoutComponent {
32
34
  protected readonly frameClasses: _angular_core.Signal<string>;
33
35
  protected readonly mainClasses: _angular_core.Signal<string>;
34
36
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<VerticalLayoutComponent, never>;
35
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<VerticalLayoutComponent, "vertical", never, { "sidebarAppearance": { "alias": "sidebarAppearance"; "required": false; "isSignal": true; }; "sidebarPosition": { "alias": "sidebarPosition"; "required": false; "isSignal": true; }; "sidebarMode": { "alias": "sidebarMode"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
37
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<VerticalLayoutComponent, "vertical", never, { "sidebarAppearance": { "alias": "sidebarAppearance"; "required": false; "isSignal": true; }; "sidebarPosition": { "alias": "sidebarPosition"; "required": false; "isSignal": true; }; "sidebarMode": { "alias": "sidebarMode"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[ui-layout-brand],[sidebar-header]", "[ui-layout-profile],[sidebar-footer]"], true, never>;
36
38
  }
37
39
 
38
40
  /**
@@ -86,6 +88,11 @@ declare class EmptyLayoutComponent {
86
88
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EmptyLayoutComponent, "empty", never, {}, {}, never, never, true, never>;
87
89
  }
88
90
 
91
+ declare class ShellPagesComponent {
92
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShellPagesComponent, never>;
93
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShellPagesComponent, "shell-pages", never, {}, {}, never, ["[shell-pages-header]", "[shell-pages-main]", "[shell-pages-footer]"], true, never>;
94
+ }
95
+
89
96
  declare const LAYOUT_MODES: readonly ["vertical", "horizontal", "empty"];
90
97
  type LayoutMode = (typeof LAYOUT_MODES)[number];
91
98
  declare const LAYOUT_WIDTHS: readonly ["full", "container", "wide"];
@@ -141,7 +148,16 @@ declare class LayoutService {
141
148
 
142
149
  declare function provideMaterialLayout(config?: MaterialLayoutConfig): EnvironmentProviders;
143
150
 
151
+ declare class LayoutProfilePopoverDefaultsDirective implements PopoverTriggerDefaults {
152
+ private readonly layout;
153
+ readonly side: _angular_core.Signal<PopoverSide>;
154
+ readonly align: _angular_core.Signal<PopoverAlign>;
155
+ readonly sideOffset: _angular_core.Signal<-20 | 12>;
156
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutProfilePopoverDefaultsDirective, never>;
157
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LayoutProfilePopoverDefaultsDirective, "[ui-layout-profile][uiPopoverTrigger]", never, {}, {}, never, never, true, never>;
158
+ }
159
+
144
160
  declare const LAYOUT_VERSION = "0.0.1";
145
161
 
146
- export { DEFAULT_MATERIAL_LAYOUT_CONFIG, EmptyLayoutComponent, HorizontalLayoutComponent, LAYOUT_MODES, LAYOUT_VERSION, LAYOUT_WIDTHS, LayoutService, MATERIAL_LAYOUT_CONFIG, VerticalLayoutComponent, isLayoutMode, isLayoutWidth, normalizeLayoutWidth, provideMaterialLayout };
162
+ export { DEFAULT_MATERIAL_LAYOUT_CONFIG, EmptyLayoutComponent, HorizontalLayoutComponent, LAYOUT_MODES, LAYOUT_VERSION, LAYOUT_WIDTHS, LayoutProfilePopoverDefaultsDirective, LayoutService, MATERIAL_LAYOUT_CONFIG, ShellPagesComponent, VerticalLayoutComponent, isLayoutMode, isLayoutWidth, normalizeLayoutWidth, provideMaterialLayout };
147
163
  export type { ConfiguredLayoutWidth, LayoutMode, LayoutWidth, LegacyLayoutWidth, MaterialLayoutConfig, ResolvedMaterialLayoutConfig };
@@ -117,11 +117,14 @@ type SidebarAppearance = 'default' | 'thin';
117
117
  * - megamenu: full-width panel multi-kolom untuk item `mega`
118
118
  */
119
119
  type TopbarAppearance = 'default' | 'megamenu';
120
+ /** Sidebar desktop border ownership */
121
+ type SidebarBorderSource = 'component' | 'layout';
120
122
  /** Sidebar position */
121
123
  type SidebarPosition = 'left' | 'right';
122
124
  /** Sidebar display mode */
123
125
  type SidebarMode = 'over' | 'side';
124
126
  type VerticalNavigationAppearance = SidebarAppearance;
127
+ type VerticalNavigationBorderSource = SidebarBorderSource;
125
128
  type VerticalNavigationMode = SidebarMode;
126
129
  type VerticalNavigationPosition = SidebarPosition;
127
130
 
@@ -284,6 +287,8 @@ declare class SidebarComponent {
284
287
  /** Registry key di `NavigationService`. Default `'main'`. */
285
288
  readonly navigationId: _angular_core.InputSignal<string>;
286
289
  readonly appearance: _angular_core.InputSignal<SidebarAppearance>;
290
+ /** Desktop border can be owned by the sidebar or by the surrounding layout shell. */
291
+ readonly borderSource: _angular_core.InputSignal<SidebarBorderSource>;
287
292
  readonly position: _angular_core.InputSignal<SidebarPosition>;
288
293
  readonly ariaLabel: _angular_core.InputSignal<string>;
289
294
  readonly header: _angular_core.InputSignal<boolean>;
@@ -326,7 +331,7 @@ declare class SidebarComponent {
326
331
  private openDrawer;
327
332
  private closeDrawer;
328
333
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
329
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "sidebar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "navigationId": { "alias": "navigationId"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "autoMobile": { "alias": "autoMobile"; "required": false; "isSignal": true; }; "autoRegister": { "alias": "autoRegister"; "required": false; "isSignal": true; }; }, {}, never, ["[sidebar-header]", "[sidebar-footer]"], true, never>;
334
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "sidebar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "navigationId": { "alias": "navigationId"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "borderSource": { "alias": "borderSource"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "autoMobile": { "alias": "autoMobile"; "required": false; "isSignal": true; }; "autoRegister": { "alias": "autoRegister"; "required": false; "isSignal": true; }; }, {}, never, ["[sidebar-header]", "[sidebar-footer]"], true, never>;
330
335
  }
331
336
 
332
337
  /**
@@ -380,4 +385,4 @@ declare const DemoNavigationData: NavigationItem[];
380
385
  declare const NAVIGATION_VERSION = "0.0.1";
381
386
 
382
387
  export { DEFAULT_NAVIGATION_ID, DemoNavigationData, NAVIGATION_VERSION, NavigationService, SidebarComponent, TopbarComponent, UiNavIconComponent, UiNavItemComponent };
383
- export type { NavigationActionHandler, NavigationAsideItem, NavigationBasicItem, NavigationBranchItem, NavigationCollapsableItem, NavigationDividerItem, NavigationGroupItem, NavigationItem, NavigationItemBadge, NavigationItemBase, NavigationItemClasses, NavigationItemType, NavigationLeafItem, NavigationMegaItem, NavigationRoutableItemBase, NavigationSpacerItem, NavigationStructuredItem, NavigationVisibilityHandler, SidebarAppearance, SidebarMode, SidebarPosition, TopbarAppearance, VerticalNavigationAppearance, VerticalNavigationMode, VerticalNavigationPosition };
388
+ export type { NavigationActionHandler, NavigationAsideItem, NavigationBasicItem, NavigationBranchItem, NavigationCollapsableItem, NavigationDividerItem, NavigationGroupItem, NavigationItem, NavigationItemBadge, NavigationItemBase, NavigationItemClasses, NavigationItemType, NavigationLeafItem, NavigationMegaItem, NavigationRoutableItemBase, NavigationSpacerItem, NavigationStructuredItem, NavigationVisibilityHandler, SidebarAppearance, SidebarBorderSource, SidebarMode, SidebarPosition, TopbarAppearance, VerticalNavigationAppearance, VerticalNavigationBorderSource, VerticalNavigationMode, VerticalNavigationPosition };
@@ -5,7 +5,7 @@ declare const MODES: readonly ["light", "dark"];
5
5
  type ThemeMode = (typeof MODES)[number];
6
6
  declare const COLOR_SCHEMES: readonly ["light", "dark", "system"];
7
7
  type ColorScheme = (typeof COLOR_SCHEMES)[number];
8
- declare const COLORS: readonly ["blue", "red", "green", "purple", "amber"];
8
+ declare const COLORS: readonly ["base", "red", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "blue", "indigo", "violet", "purple", "fuchsia", "pink", "rose"];
9
9
  type ThemeColor = (typeof COLORS)[number];
10
10
  declare const STYLES: readonly ["default", "sharp", "brutal", "soft"];
11
11
  type ThemeStyle = (typeof STYLES)[number];
@@ -84,8 +84,8 @@ declare class ThemeService {
84
84
  private readonly _systemPrefersDark;
85
85
  readonly scheme: _angular_core.Signal<"light" | "dark" | "system">;
86
86
  readonly brand: _angular_core.Signal<"etos" | null>;
87
- readonly color: _angular_core.Signal<"blue" | "red" | "green" | "purple" | "amber">;
88
- readonly theme: _angular_core.Signal<"blue" | "red" | "green" | "purple" | "amber">;
87
+ readonly color: _angular_core.Signal<"base" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose">;
88
+ readonly theme: _angular_core.Signal<"base" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose">;
89
89
  readonly style: _angular_core.Signal<"default" | "sharp" | "brutal" | "soft">;
90
90
  readonly mode: _angular_core.Signal<"light" | "dark">;
91
91
  readonly snapshot: _angular_core.Signal<ThemeConfig>;
@@ -147,7 +147,7 @@ interface MaterialThemeFeature {
147
147
  * provideMaterialTheme(
148
148
  * {
149
149
  * mode: 'system',
150
- * color: 'blue',
150
+ * color: 'base',
151
151
  * style: 'soft',
152
152
  * },
153
153
  * withMaterialDefaults(),