@ojiepermana/angular 22.1.14 → 22.2.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/README.md +8 -6
- package/SUPPORT.md +3 -3
- package/chart/README.md +1 -1
- package/component/README.md +2 -2
- package/component/calendar/README.md +3 -15
- package/component/drawer/README.md +1 -2
- package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
- package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
- package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
- package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
- package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
- package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
- package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
- package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
- package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
- package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
- package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
- package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
- package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
- package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
- package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
- package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
- package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
- package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
- package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
- package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
- package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
- package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
- package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
- package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
- package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
- package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
- package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
- package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
- package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
- package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
- package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
- package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
- package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
- package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
- package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
- package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
- package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
- package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
- package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
- package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
- package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
- package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
- package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
- package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
- package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
- package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
- package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
- package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
- package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
- package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
- package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
- package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
- package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
- package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
- package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
- package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
- package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
- package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
- package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
- package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
- package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
- package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
- package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
- package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
- package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
- package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
- package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
- package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
- package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
- package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
- package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
- package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
- package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
- package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
- package/fesm2022/ojiepermana-angular-component.mjs +0 -10
- package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
- package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
- package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
- package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-COQ-60DS.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
- package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
- package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
- package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
- package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
- package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
- package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
- package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
- package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
- package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
- package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
- package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -496
- package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
- package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
- package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
- package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
- package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
- package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
- package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
- package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
- package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
- package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
- package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
- package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
- package/fesm2022/ojiepermana-angular.mjs +5 -24
- package/navigation/README.md +1 -1
- package/package.json +16 -12
- package/sdk/README.md +1 -1
- package/sdk/src/writer/index.js +2 -2
- package/theme/README.md +1 -1
- package/theme/layout/README.md +2 -4
- package/theme/page/README.md +50 -0
- package/theme/styles/README.md +10 -10
- package/theme/styles/css/base/prefers-dark.css +1 -1
- package/theme/styles/css/base/status.css +1 -1
- package/theme/styles/css/color/amber.css +1 -1
- package/theme/styles/css/color/blue.css +1 -1
- package/theme/styles/css/color/cyan.css +1 -1
- package/theme/styles/css/color/emerald.css +1 -1
- package/theme/styles/css/color/fuchsia.css +1 -1
- package/theme/styles/css/color/green.css +1 -1
- package/theme/styles/css/color/indigo.css +1 -1
- package/theme/styles/css/color/lime.css +1 -1
- package/theme/styles/css/color/orange.css +1 -1
- package/theme/styles/css/color/pink.css +1 -1
- package/theme/styles/css/color/purple.css +1 -1
- package/theme/styles/css/color/red.css +1 -1
- package/theme/styles/css/color/rose.css +1 -1
- package/theme/styles/css/color/sky.css +1 -1
- package/theme/styles/css/color/teal.css +1 -1
- package/theme/styles/css/color/violet.css +1 -1
- package/theme/styles/css/color/yellow.css +1 -1
- package/theme/styles/css/neutral/gray.css +1 -1
- package/theme/styles/css/neutral/mauve.css +1 -1
- package/theme/styles/css/neutral/mist.css +1 -1
- package/theme/styles/css/neutral/neutral.css +1 -1
- package/theme/styles/css/neutral/olive.css +1 -1
- package/theme/styles/css/neutral/slate.css +1 -1
- package/theme/styles/css/neutral/stone.css +1 -1
- package/theme/styles/css/neutral/taupe.css +1 -1
- package/theme/styles/css/neutral/zinc.css +1 -1
- package/types/ojiepermana-angular-chart-area.d.ts +126 -63
- package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
- package/types/ojiepermana-angular-chart-core.d.ts +409 -398
- package/types/ojiepermana-angular-chart-line.d.ts +141 -68
- package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
- package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
- package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
- package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
- package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
- package/types/ojiepermana-angular-chart.d.ts +3 -2
- package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
- package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
- package/types/ojiepermana-angular-component-alert.d.ts +69 -39
- package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
- package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
- package/types/ojiepermana-angular-component-badge.d.ts +36 -24
- package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
- package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
- package/types/ojiepermana-angular-component-button.d.ts +44 -27
- package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
- package/types/ojiepermana-angular-component-card.d.ts +112 -63
- package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
- package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
- package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
- package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
- package/types/ojiepermana-angular-component-command.d.ts +206 -121
- package/types/ojiepermana-angular-component-composer.d.ts +184 -84
- package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
- package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
- package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
- package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
- package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
- package/types/ojiepermana-angular-component-editor.d.ts +215 -117
- package/types/ojiepermana-angular-component-empty.d.ts +80 -45
- package/types/ojiepermana-angular-component-form.d.ts +185 -121
- package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
- package/types/ojiepermana-angular-component-icon.d.ts +87 -57
- package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
- package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
- package/types/ojiepermana-angular-component-input.d.ts +27 -17
- package/types/ojiepermana-angular-component-item.d.ts +160 -84
- package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
- package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
- package/types/ojiepermana-angular-component-label.d.ts +19 -11
- package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
- package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
- package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
- package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
- package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
- package/types/ojiepermana-angular-component-popover.d.ts +94 -64
- package/types/ojiepermana-angular-component-progress.d.ts +45 -17
- package/types/ojiepermana-angular-component-radio.d.ts +129 -53
- package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
- package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
- package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
- package/types/ojiepermana-angular-component-select.d.ts +94 -77
- package/types/ojiepermana-angular-component-separator.d.ts +26 -14
- package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
- package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
- package/types/ojiepermana-angular-component-slider.d.ts +140 -75
- package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
- package/types/ojiepermana-angular-component-switch.d.ts +97 -40
- package/types/ojiepermana-angular-component-table.d.ts +102 -50
- package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
- package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
- package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
- package/types/ojiepermana-angular-component-toast.d.ts +51 -55
- package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
- package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
- package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
- package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
- package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
- package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
- package/types/ojiepermana-angular-component-utils.d.ts +2 -2
- package/types/ojiepermana-angular-component.d.ts +1 -2
- package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
- package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
- package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
- package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
- package/types/ojiepermana-angular-navigation.d.ts +663 -374
- package/types/ojiepermana-angular-sdk.d.ts +69 -71
- package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
- package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
- package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
- package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
- package/types/ojiepermana-angular-theme-layout.d.ts +201 -113
- package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
- package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
- package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
- package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
- package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
- package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
- package/types/ojiepermana-angular-theme-page.d.ts +7 -5
- package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
- package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
- package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
- package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
- package/types/ojiepermana-angular-theme.d.ts +1 -2
- package/types/ojiepermana-angular.d.ts +5 -5
- package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-Be3IqzG4.mjs +0 -91
- package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-Bc7DWK3R.mjs +0 -522
- package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-DA8VPEn7.mjs +0 -404
- package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-U2TJTzlW.mjs +0 -466
- package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-CIUhmytH.mjs +0 -2668
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { EnvironmentProviders, InjectionToken } from "@angular/core";
|
|
3
|
+
import { ShellColor, ShellDevice, ShellFrame, ShellMode, ShellPlatform, ShellWindowState } from "@ojiepermana/angular/theme/shell/types";
|
|
5
4
|
/** What the shell needs to know about the host window right now. */
|
|
6
|
-
interface ShellWindowSnapshot {
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export interface ShellWindowSnapshot {
|
|
6
|
+
readonly state: ShellWindowState;
|
|
7
|
+
readonly focused: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* The seam between the shell and a desktop runtime.
|
|
@@ -15,76 +14,75 @@ interface ShellWindowSnapshot {
|
|
|
15
14
|
* pays nothing and an app that ships to a native window provides one adapter.
|
|
16
15
|
* Commands may be sync or async — the shell always awaits them.
|
|
17
16
|
*/
|
|
18
|
-
interface ShellWindowBridge {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
17
|
+
export interface ShellWindowBridge {
|
|
18
|
+
readonly platform: ShellPlatform;
|
|
19
|
+
/**
|
|
20
|
+
* Host OS, when the runtime can report it. `null` means "cannot tell" — the
|
|
21
|
+
* shell then falls back to its `device` input, storage, or the mode's default,
|
|
22
|
+
* rather than guessing.
|
|
23
|
+
*/
|
|
24
|
+
device(): ShellDevice | null | Promise<ShellDevice | null>;
|
|
25
|
+
snapshot(): ShellWindowSnapshot | Promise<ShellWindowSnapshot>;
|
|
26
|
+
minimize(): void | Promise<void>;
|
|
27
|
+
toggleMaximize(): void | Promise<void>;
|
|
28
|
+
close(): void | Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Move the window with the pointer. Tauri and Electron both mark their drag
|
|
31
|
+
* surface declaratively (`data-tauri-drag-region` / `-webkit-app-region`, both
|
|
32
|
+
* stamped on the titlebar), so this is only needed by runtimes that require an
|
|
33
|
+
* explicit call.
|
|
34
|
+
*/
|
|
35
|
+
startDragging?(): void | Promise<void>;
|
|
36
|
+
/** Observe window resize/move/focus changes; resolves to the unsubscribe. */
|
|
37
|
+
watch?(onChange: () => void): (() => void) | Promise<() => void>;
|
|
39
38
|
}
|
|
40
|
-
declare const SHELL_WINDOW_BRIDGE: InjectionToken<ShellWindowBridge>;
|
|
39
|
+
export declare const SHELL_WINDOW_BRIDGE: InjectionToken<ShellWindowBridge>;
|
|
41
40
|
/**
|
|
42
41
|
* Browser fallback used when no bridge is provided: a page has no window to
|
|
43
42
|
* drive, so it reports the web platform, no device opinion, and every command is
|
|
44
43
|
* a no-op. This is what keeps `<Shell>` renderable (and testable) outside a
|
|
45
44
|
* desktop runtime.
|
|
46
45
|
*/
|
|
47
|
-
declare const WEB_SHELL_WINDOW_BRIDGE: ShellWindowBridge;
|
|
46
|
+
export declare const WEB_SHELL_WINDOW_BRIDGE: ShellWindowBridge;
|
|
48
47
|
/**
|
|
49
48
|
* Register the bridge `ShellService` drives. Pass a factory to defer any runtime
|
|
50
49
|
* probing until the injector is created.
|
|
51
50
|
*/
|
|
52
|
-
declare function provideShellWindowBridge(bridge: ShellWindowBridge | (() => ShellWindowBridge)): EnvironmentProviders;
|
|
53
|
-
|
|
51
|
+
export declare function provideShellWindowBridge(bridge: ShellWindowBridge | (() => ShellWindowBridge)): EnvironmentProviders;
|
|
54
52
|
/**
|
|
55
53
|
* The slice of a Tauri `Window` the shell drives, declared structurally so the
|
|
56
54
|
* theme package never has to depend on `@tauri-apps/api`. Any object with these
|
|
57
55
|
* methods works, which is also what makes the bridge testable with a fake.
|
|
58
56
|
*/
|
|
59
|
-
interface TauriWindowHandle {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
57
|
+
export interface TauriWindowHandle {
|
|
58
|
+
minimize(): Promise<void>;
|
|
59
|
+
toggleMaximize(): Promise<void>;
|
|
60
|
+
close(): Promise<void>;
|
|
61
|
+
isMaximized(): Promise<boolean>;
|
|
62
|
+
isFullscreen(): Promise<boolean>;
|
|
63
|
+
startDragging(): Promise<void>;
|
|
64
|
+
isFocused?(): Promise<boolean>;
|
|
65
|
+
onResized?(handler: () => void): Promise<() => void>;
|
|
66
|
+
onFocusChanged?(handler: () => void): Promise<() => void>;
|
|
69
67
|
}
|
|
70
|
-
interface TauriShellBridgeOptions {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
68
|
+
export interface TauriShellBridgeOptions {
|
|
69
|
+
/**
|
|
70
|
+
* Resolve the window to drive. Defaults to the `withGlobalTauri` global
|
|
71
|
+
* (`window.__TAURI__.window.getCurrentWindow()`). Apps that keep the global
|
|
72
|
+
* off pass the module instead:
|
|
73
|
+
* `{ currentWindow: () => import('@tauri-apps/api/window').then((m) => m.getCurrentWindow()) }`.
|
|
74
|
+
*/
|
|
75
|
+
readonly currentWindow?: () => TauriWindowHandle | null | Promise<TauriWindowHandle | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Resolve the host OS, mapped onto the shell's `device` axis. Defaults to the
|
|
78
|
+
* `withGlobalTauri` os plugin, then the browser platform string. Apps without
|
|
79
|
+
* the global pass
|
|
80
|
+
* `{ platform: () => import('@tauri-apps/plugin-os').then((m) => m.platform()) }`.
|
|
81
|
+
*/
|
|
82
|
+
readonly platform?: () => string | Promise<string>;
|
|
85
83
|
}
|
|
86
84
|
/** `true` when the page is running inside a Tauri webview. */
|
|
87
|
-
declare function isTauriRuntime(): boolean;
|
|
85
|
+
export declare function isTauriRuntime(): boolean;
|
|
88
86
|
/**
|
|
89
87
|
* Adapter from a Tauri window onto {@link ShellWindowBridge}.
|
|
90
88
|
*
|
|
@@ -92,17 +90,16 @@ declare function isTauriRuntime(): boolean;
|
|
|
92
90
|
* bridge can be registered unconditionally: run the app in a browser and the
|
|
93
91
|
* commands become no-ops rather than errors.
|
|
94
92
|
*/
|
|
95
|
-
declare function createTauriShellWindowBridge(options?: TauriShellBridgeOptions): ShellWindowBridge;
|
|
93
|
+
export declare function createTauriShellWindowBridge(options?: TauriShellBridgeOptions): ShellWindowBridge;
|
|
96
94
|
/**
|
|
97
95
|
* Register the Tauri window bridge for `ShellService`. Safe to call in a build
|
|
98
96
|
* that also ships to the browser — outside a Tauri webview the bridge resolves
|
|
99
97
|
* no window and the shell falls back to inert commands.
|
|
100
98
|
*/
|
|
101
|
-
declare function provideTauriShellWindowBridge(options?: TauriShellBridgeOptions): EnvironmentProviders;
|
|
102
|
-
|
|
99
|
+
export declare function provideTauriShellWindowBridge(options?: TauriShellBridgeOptions): EnvironmentProviders;
|
|
103
100
|
interface ShellMutationOptions {
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
/** `false` keeps the change out of localStorage (a host-driven override, not a user choice). */
|
|
102
|
+
persist?: boolean;
|
|
106
103
|
}
|
|
107
104
|
/**
|
|
108
105
|
* State behind `<Shell>`: the persisted `mode` / `device` / `color` / `frame`
|
|
@@ -129,65 +126,62 @@ interface ShellMutationOptions {
|
|
|
129
126
|
* With no bridge registered this resolves to the inert web bridge, so the same
|
|
130
127
|
* component tree renders in a browser tab, in a unit test, and under SSR.
|
|
131
128
|
*/
|
|
132
|
-
declare class ShellService {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export { SHELL_WINDOW_BRIDGE, ShellService, WEB_SHELL_WINDOW_BRIDGE, createTauriShellWindowBridge, isTauriRuntime, provideShellWindowBridge, provideTauriShellWindowBridge };
|
|
193
|
-
export type { ShellWindowBridge, ShellWindowSnapshot, TauriShellBridgeOptions, TauriWindowHandle };
|
|
129
|
+
export declare class ShellService {
|
|
130
|
+
private readonly platformId;
|
|
131
|
+
private readonly storage;
|
|
132
|
+
private readonly destroyRef;
|
|
133
|
+
private readonly bridge;
|
|
134
|
+
/** Runtime hosting the shell; `web` whenever no bridge is registered. */
|
|
135
|
+
readonly platform: ShellPlatform;
|
|
136
|
+
/** `true` for any non-browser runtime — i.e. there is a real OS window to drive. */
|
|
137
|
+
readonly isDesktopRuntime: boolean;
|
|
138
|
+
private readonly modeState;
|
|
139
|
+
private readonly deviceState;
|
|
140
|
+
private readonly colorState;
|
|
141
|
+
private readonly frameState;
|
|
142
|
+
private readonly reportedDeviceState;
|
|
143
|
+
private readonly windowStateState;
|
|
144
|
+
private readonly focusedState;
|
|
145
|
+
readonly mode: import("@angular/core").Signal<"web" | "desktop" | "tablet" | "mobile">;
|
|
146
|
+
/**
|
|
147
|
+
* Preferred device: the stored choice, else what the runtime reports, else the
|
|
148
|
+
* current mode's default. Not forced to match `mode()` — see the class note.
|
|
149
|
+
*/
|
|
150
|
+
readonly device: import("@angular/core").Signal<"browser" | "macos" | "windows" | "linux" | "ipad" | "android" | "ios">;
|
|
151
|
+
/** Where the shell's chrome takes its colors from: the design system, or the device's native look. */
|
|
152
|
+
readonly color: import("@angular/core").Signal<"sync" | "default">;
|
|
153
|
+
/** How the app sits in its window: flush (`classic`) or inset as a panel (`modern`). */
|
|
154
|
+
readonly frame: import("@angular/core").Signal<"classic" | "modern">;
|
|
155
|
+
readonly windowState: import("@angular/core").Signal<"normal" | "maximized" | "fullscreen">;
|
|
156
|
+
readonly focused: import("@angular/core").Signal<boolean>;
|
|
157
|
+
readonly isMaximized: import("@angular/core").Signal<boolean>;
|
|
158
|
+
readonly isFullscreen: import("@angular/core").Signal<boolean>;
|
|
159
|
+
constructor();
|
|
160
|
+
setMode(mode: ShellMode, options?: ShellMutationOptions): void;
|
|
161
|
+
setDevice(device: ShellDevice, options?: ShellMutationOptions): void;
|
|
162
|
+
setColor(color: ShellColor, options?: ShellMutationOptions): void;
|
|
163
|
+
setFrame(frame: ShellFrame, options?: ShellMutationOptions): void;
|
|
164
|
+
/** Adopt `mode` as the default, unless a choice is already stored. */
|
|
165
|
+
registerMode(mode: ShellMode): void;
|
|
166
|
+
/** Adopt `device` as the default, unless a choice is already stored. */
|
|
167
|
+
registerDevice(device: ShellDevice): void;
|
|
168
|
+
/** Adopt `color` as the default, unless a choice is already stored. */
|
|
169
|
+
registerColor(color: ShellColor): void;
|
|
170
|
+
/** Adopt `frame` as the default, unless a choice is already stored. */
|
|
171
|
+
registerFrame(frame: ShellFrame): void;
|
|
172
|
+
/** Re-read the device and window state from the bridge. */
|
|
173
|
+
sync(): Promise<void>;
|
|
174
|
+
minimize(): Promise<void>;
|
|
175
|
+
toggleMaximize(): Promise<void>;
|
|
176
|
+
close(): Promise<void>;
|
|
177
|
+
/** Start a pointer-driven window move, for runtimes that need an explicit call. */
|
|
178
|
+
startDragging(): Promise<void>;
|
|
179
|
+
private command;
|
|
180
|
+
private watchWindow;
|
|
181
|
+
private storedMode;
|
|
182
|
+
private storedDevice;
|
|
183
|
+
private storedColor;
|
|
184
|
+
private storedFrame;
|
|
185
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ShellService, never>;
|
|
186
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
187
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Persisted under {@link SHELL_MODE_STORAGE_KEY}.
|
|
7
7
|
*/
|
|
8
|
-
declare const SHELL_MODES: readonly ["web", "desktop", "tablet", "mobile"];
|
|
8
|
+
export declare const SHELL_MODES: readonly ["web", "desktop", "tablet", "mobile"];
|
|
9
9
|
/**
|
|
10
10
|
* Concrete host the shell is running on. Each mode owns a set of these (see
|
|
11
11
|
* {@link SHELL_MODE_DEVICES}) — `android` deliberately belongs to both `tablet`
|
|
@@ -13,7 +13,7 @@ declare const SHELL_MODES: readonly ["web", "desktop", "tablet", "mobile"];
|
|
|
13
13
|
*
|
|
14
14
|
* Persisted under {@link SHELL_DEVICE_STORAGE_KEY}.
|
|
15
15
|
*/
|
|
16
|
-
declare const SHELL_DEVICES: readonly ["browser", "macos", "windows", "linux", "ipad", "android", "ios"];
|
|
16
|
+
export declare const SHELL_DEVICES: readonly ["browser", "macos", "windows", "linux", "ipad", "android", "ios"];
|
|
17
17
|
/**
|
|
18
18
|
* Where the shell's own chrome takes its colors from. `sync` keeps the titlebar
|
|
19
19
|
* inside the design system, so it recolors with `theme-color` / `theme-neutral`
|
|
@@ -22,7 +22,7 @@ declare const SHELL_DEVICES: readonly ["browser", "macos", "windows", "linux", "
|
|
|
22
22
|
*
|
|
23
23
|
* Persisted under {@link SHELL_COLOR_STORAGE_KEY}.
|
|
24
24
|
*/
|
|
25
|
-
declare const SHELL_COLORS: readonly ["sync", "default"];
|
|
25
|
+
export declare const SHELL_COLORS: readonly ["sync", "default"];
|
|
26
26
|
/**
|
|
27
27
|
* How the app sits inside its window.
|
|
28
28
|
*
|
|
@@ -39,67 +39,64 @@ declare const SHELL_COLORS: readonly ["sync", "default"];
|
|
|
39
39
|
*
|
|
40
40
|
* Persisted under {@link SHELL_FRAME_STORAGE_KEY}.
|
|
41
41
|
*/
|
|
42
|
-
declare const SHELL_FRAMES: readonly ["classic", "modern"];
|
|
42
|
+
export declare const SHELL_FRAMES: readonly ["classic", "modern"];
|
|
43
43
|
/**
|
|
44
44
|
* Runtime hosting the shell — distinct from `device`, which is the OS. `web`
|
|
45
45
|
* means no bridge is registered, so there is no window to drive.
|
|
46
46
|
*/
|
|
47
|
-
declare const SHELL_PLATFORMS: readonly ["web", "tauri", "electron", "custom"];
|
|
48
|
-
declare const SHELL_WINDOW_STATES: readonly ["normal", "maximized", "fullscreen"];
|
|
49
|
-
type ShellMode = (typeof SHELL_MODES)[number];
|
|
50
|
-
type ShellDevice = (typeof SHELL_DEVICES)[number];
|
|
51
|
-
type ShellColor = (typeof SHELL_COLORS)[number];
|
|
52
|
-
type ShellFrame = (typeof SHELL_FRAMES)[number];
|
|
53
|
-
type ShellPlatform = (typeof SHELL_PLATFORMS)[number];
|
|
54
|
-
type ShellWindowState = (typeof SHELL_WINDOW_STATES)[number];
|
|
55
|
-
declare const SHELL_DEFAULT_MODE: ShellMode;
|
|
56
|
-
declare const SHELL_DEFAULT_DEVICE: ShellDevice;
|
|
57
|
-
declare const SHELL_DEFAULT_COLOR: ShellColor;
|
|
58
|
-
declare const SHELL_DEFAULT_FRAME: ShellFrame;
|
|
59
|
-
declare const SHELL_DEFAULT_PLATFORM: ShellPlatform;
|
|
60
|
-
declare const SHELL_DEFAULT_WINDOW_STATE: ShellWindowState;
|
|
61
|
-
declare const SHELL_MODE_STORAGE_KEY = "shell-mode";
|
|
62
|
-
declare const SHELL_DEVICE_STORAGE_KEY = "shell-device";
|
|
63
|
-
declare const SHELL_COLOR_STORAGE_KEY = "shell-color";
|
|
64
|
-
declare const SHELL_FRAME_STORAGE_KEY = "shell-frame";
|
|
47
|
+
export declare const SHELL_PLATFORMS: readonly ["web", "tauri", "electron", "custom"];
|
|
48
|
+
export declare const SHELL_WINDOW_STATES: readonly ["normal", "maximized", "fullscreen"];
|
|
49
|
+
export type ShellMode = (typeof SHELL_MODES)[number];
|
|
50
|
+
export type ShellDevice = (typeof SHELL_DEVICES)[number];
|
|
51
|
+
export type ShellColor = (typeof SHELL_COLORS)[number];
|
|
52
|
+
export type ShellFrame = (typeof SHELL_FRAMES)[number];
|
|
53
|
+
export type ShellPlatform = (typeof SHELL_PLATFORMS)[number];
|
|
54
|
+
export type ShellWindowState = (typeof SHELL_WINDOW_STATES)[number];
|
|
55
|
+
export declare const SHELL_DEFAULT_MODE: ShellMode;
|
|
56
|
+
export declare const SHELL_DEFAULT_DEVICE: ShellDevice;
|
|
57
|
+
export declare const SHELL_DEFAULT_COLOR: ShellColor;
|
|
58
|
+
export declare const SHELL_DEFAULT_FRAME: ShellFrame;
|
|
59
|
+
export declare const SHELL_DEFAULT_PLATFORM: ShellPlatform;
|
|
60
|
+
export declare const SHELL_DEFAULT_WINDOW_STATE: ShellWindowState;
|
|
61
|
+
export declare const SHELL_MODE_STORAGE_KEY = "shell-mode";
|
|
62
|
+
export declare const SHELL_DEVICE_STORAGE_KEY = "shell-device";
|
|
63
|
+
export declare const SHELL_COLOR_STORAGE_KEY = "shell-color";
|
|
64
|
+
export declare const SHELL_FRAME_STORAGE_KEY = "shell-frame";
|
|
65
65
|
/**
|
|
66
66
|
* Which devices each mode can run on. The first entry is the mode's default, used
|
|
67
67
|
* when nothing else resolves — and to correct a device that cannot belong to the
|
|
68
68
|
* active mode (`mode='desktop' device='ipad'` has no meaning).
|
|
69
69
|
*/
|
|
70
|
-
declare const SHELL_MODE_DEVICES: Readonly<Record<ShellMode, readonly ShellDevice[]>>;
|
|
71
|
-
declare function isShellMode(value: string | null | undefined): value is ShellMode;
|
|
72
|
-
declare function isShellDevice(value: string | null | undefined): value is ShellDevice;
|
|
73
|
-
declare function isShellColor(value: string | null | undefined): value is ShellColor;
|
|
74
|
-
declare function isShellFrame(value: string | null | undefined): value is ShellFrame;
|
|
75
|
-
declare function isShellPlatform(value: string | null | undefined): value is ShellPlatform;
|
|
76
|
-
declare function isShellWindowState(value: string | null | undefined): value is ShellWindowState;
|
|
77
|
-
declare function normalizeShellMode(value: string | null | undefined): ShellMode;
|
|
78
|
-
declare function normalizeShellColor(value: string | null | undefined): ShellColor;
|
|
79
|
-
declare function normalizeShellFrame(value: string | null | undefined): ShellFrame;
|
|
70
|
+
export declare const SHELL_MODE_DEVICES: Readonly<Record<ShellMode, readonly ShellDevice[]>>;
|
|
71
|
+
export declare function isShellMode(value: string | null | undefined): value is ShellMode;
|
|
72
|
+
export declare function isShellDevice(value: string | null | undefined): value is ShellDevice;
|
|
73
|
+
export declare function isShellColor(value: string | null | undefined): value is ShellColor;
|
|
74
|
+
export declare function isShellFrame(value: string | null | undefined): value is ShellFrame;
|
|
75
|
+
export declare function isShellPlatform(value: string | null | undefined): value is ShellPlatform;
|
|
76
|
+
export declare function isShellWindowState(value: string | null | undefined): value is ShellWindowState;
|
|
77
|
+
export declare function normalizeShellMode(value: string | null | undefined): ShellMode;
|
|
78
|
+
export declare function normalizeShellColor(value: string | null | undefined): ShellColor;
|
|
79
|
+
export declare function normalizeShellFrame(value: string | null | undefined): ShellFrame;
|
|
80
80
|
/**
|
|
81
81
|
* Resolve a frame that is coherent with `mode`. Only a desktop window has a frame
|
|
82
82
|
* to shape — the other modes have no titlebar to fuse with a surround — so
|
|
83
83
|
* `modern` collapses to `classic` there rather than insetting an app for no reason.
|
|
84
84
|
*/
|
|
85
|
-
declare function resolveShellFrameForMode(mode: ShellMode, frame: string | null | undefined): ShellFrame;
|
|
85
|
+
export declare function resolveShellFrameForMode(mode: ShellMode, frame: string | null | undefined): ShellFrame;
|
|
86
86
|
/** Devices the mode can run on; the first is its default. */
|
|
87
|
-
declare function shellDevicesForMode(mode: ShellMode): readonly ShellDevice[];
|
|
88
|
-
declare function defaultShellDeviceForMode(mode: ShellMode): ShellDevice;
|
|
89
|
-
declare function isShellDeviceForMode(mode: ShellMode, device: ShellDevice): boolean;
|
|
87
|
+
export declare function shellDevicesForMode(mode: ShellMode): readonly ShellDevice[];
|
|
88
|
+
export declare function defaultShellDeviceForMode(mode: ShellMode): ShellDevice;
|
|
89
|
+
export declare function isShellDeviceForMode(mode: ShellMode, device: ShellDevice): boolean;
|
|
90
90
|
/**
|
|
91
91
|
* Resolve a device that is coherent with `mode`. An unknown device, or one that
|
|
92
92
|
* belongs to a different form factor, falls back to the mode's default rather
|
|
93
93
|
* than leaving the pair in a state no styling can describe.
|
|
94
94
|
*/
|
|
95
|
-
declare function resolveShellDeviceForMode(mode: ShellMode, device: string | null | undefined): ShellDevice;
|
|
95
|
+
export declare function resolveShellDeviceForMode(mode: ShellMode, device: string | null | undefined): ShellDevice;
|
|
96
96
|
/**
|
|
97
97
|
* Map a raw platform identifier onto the device axis — a Tauri `platform()`
|
|
98
98
|
* result, an Electron `process.platform`, or a `navigator.platform`/user-agent
|
|
99
99
|
* string. Order matters: iPadOS reports itself as a Mac, and Android tablets and
|
|
100
100
|
* phones share a token, so the narrower match has to win first.
|
|
101
101
|
*/
|
|
102
|
-
declare function normalizeShellDevice(value: string | null | undefined): ShellDevice | null;
|
|
103
|
-
|
|
104
|
-
export { SHELL_COLORS, SHELL_COLOR_STORAGE_KEY, SHELL_DEFAULT_COLOR, SHELL_DEFAULT_DEVICE, SHELL_DEFAULT_FRAME, SHELL_DEFAULT_MODE, SHELL_DEFAULT_PLATFORM, SHELL_DEFAULT_WINDOW_STATE, SHELL_DEVICES, SHELL_DEVICE_STORAGE_KEY, SHELL_FRAMES, SHELL_FRAME_STORAGE_KEY, SHELL_MODES, SHELL_MODE_DEVICES, SHELL_MODE_STORAGE_KEY, SHELL_PLATFORMS, SHELL_WINDOW_STATES, defaultShellDeviceForMode, isShellColor, isShellDevice, isShellDeviceForMode, isShellFrame, isShellMode, isShellPlatform, isShellWindowState, normalizeShellColor, normalizeShellDevice, normalizeShellFrame, normalizeShellMode, resolveShellDeviceForMode, resolveShellFrameForMode, shellDevicesForMode };
|
|
105
|
-
export type { ShellColor, ShellDevice, ShellFrame, ShellMode, ShellPlatform, ShellWindowState };
|
|
102
|
+
export declare function normalizeShellDevice(value: string | null | undefined): ShellDevice | null;
|