@ojiepermana/angular 22.1.13 → 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.
Files changed (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -491
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +1 -1
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -112
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +0 -512
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +0 -2642
@@ -1,11 +1,10 @@
1
- import * as _angular_core from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
- import { ShellPlatform, ShellDevice, ShellWindowState, ShellMode, ShellColor, ShellFrame } from '@ojiepermana/angular/theme/shell/types';
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
- readonly state: ShellWindowState;
8
- readonly focused: boolean;
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
- readonly platform: ShellPlatform;
20
- /**
21
- * Host OS, when the runtime can report it. `null` means "cannot tell" — the
22
- * shell then falls back to its `device` input, storage, or the mode's default,
23
- * rather than guessing.
24
- */
25
- device(): ShellDevice | null | Promise<ShellDevice | null>;
26
- snapshot(): ShellWindowSnapshot | Promise<ShellWindowSnapshot>;
27
- minimize(): void | Promise<void>;
28
- toggleMaximize(): void | Promise<void>;
29
- close(): void | Promise<void>;
30
- /**
31
- * Move the window with the pointer. Tauri and Electron both mark their drag
32
- * surface declaratively (`data-tauri-drag-region` / `-webkit-app-region`, both
33
- * stamped on the titlebar), so this is only needed by runtimes that require an
34
- * explicit call.
35
- */
36
- startDragging?(): void | Promise<void>;
37
- /** Observe window resize/move/focus changes; resolves to the unsubscribe. */
38
- watch?(onChange: () => void): (() => void) | Promise<() => void>;
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
- minimize(): Promise<void>;
61
- toggleMaximize(): Promise<void>;
62
- close(): Promise<void>;
63
- isMaximized(): Promise<boolean>;
64
- isFullscreen(): Promise<boolean>;
65
- startDragging(): Promise<void>;
66
- isFocused?(): Promise<boolean>;
67
- onResized?(handler: () => void): Promise<() => void>;
68
- onFocusChanged?(handler: () => void): Promise<() => void>;
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
- * Resolve the window to drive. Defaults to the `withGlobalTauri` global
73
- * (`window.__TAURI__.window.getCurrentWindow()`). Apps that keep the global
74
- * off pass the module instead:
75
- * `{ currentWindow: () => import('@tauri-apps/api/window').then((m) => m.getCurrentWindow()) }`.
76
- */
77
- readonly currentWindow?: () => TauriWindowHandle | null | Promise<TauriWindowHandle | null>;
78
- /**
79
- * Resolve the host OS, mapped onto the shell's `device` axis. Defaults to the
80
- * `withGlobalTauri` os plugin, then the browser platform string. Apps without
81
- * the global pass
82
- * `{ platform: () => import('@tauri-apps/plugin-os').then((m) => m.platform()) }`.
83
- */
84
- readonly platform?: () => string | Promise<string>;
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
- /** `false` keeps the change out of localStorage (a host-driven override, not a user choice). */
105
- persist?: boolean;
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
- private readonly platformId;
134
- private readonly storage;
135
- private readonly destroyRef;
136
- private readonly bridge;
137
- /** Runtime hosting the shell; `web` whenever no bridge is registered. */
138
- readonly platform: ShellPlatform;
139
- /** `true` for any non-browser runtime — i.e. there is a real OS window to drive. */
140
- readonly isDesktopRuntime: boolean;
141
- private readonly modeState;
142
- private readonly deviceState;
143
- private readonly colorState;
144
- private readonly frameState;
145
- private readonly reportedDeviceState;
146
- private readonly windowStateState;
147
- private readonly focusedState;
148
- readonly mode: _angular_core.Signal<"web" | "desktop" | "tablet" | "mobile">;
149
- /**
150
- * Preferred device: the stored choice, else what the runtime reports, else the
151
- * current mode's default. Not forced to match `mode()` — see the class note.
152
- */
153
- readonly device: _angular_core.Signal<"browser" | "macos" | "windows" | "linux" | "ipad" | "android" | "ios">;
154
- /** Where the shell's chrome takes its colors from: the design system, or the device's native look. */
155
- readonly color: _angular_core.Signal<"sync" | "default">;
156
- /** How the app sits in its window: flush (`classic`) or inset as a panel (`modern`). */
157
- readonly frame: _angular_core.Signal<"classic" | "modern">;
158
- readonly windowState: _angular_core.Signal<"normal" | "maximized" | "fullscreen">;
159
- readonly focused: _angular_core.Signal<boolean>;
160
- readonly isMaximized: _angular_core.Signal<boolean>;
161
- readonly isFullscreen: _angular_core.Signal<boolean>;
162
- constructor();
163
- setMode(mode: ShellMode, options?: ShellMutationOptions): void;
164
- setDevice(device: ShellDevice, options?: ShellMutationOptions): void;
165
- setColor(color: ShellColor, options?: ShellMutationOptions): void;
166
- setFrame(frame: ShellFrame, options?: ShellMutationOptions): void;
167
- /** Adopt `mode` as the default, unless a choice is already stored. */
168
- registerMode(mode: ShellMode): void;
169
- /** Adopt `device` as the default, unless a choice is already stored. */
170
- registerDevice(device: ShellDevice): void;
171
- /** Adopt `color` as the default, unless a choice is already stored. */
172
- registerColor(color: ShellColor): void;
173
- /** Adopt `frame` as the default, unless a choice is already stored. */
174
- registerFrame(frame: ShellFrame): void;
175
- /** Re-read the device and window state from the bridge. */
176
- sync(): Promise<void>;
177
- minimize(): Promise<void>;
178
- toggleMaximize(): Promise<void>;
179
- close(): Promise<void>;
180
- /** Start a pointer-driven window move, for runtimes that need an explicit call. */
181
- startDragging(): Promise<void>;
182
- private command;
183
- private watchWindow;
184
- private storedMode;
185
- private storedDevice;
186
- private storedColor;
187
- private storedFrame;
188
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShellService, never>;
189
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ShellService>;
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;