winui-svelte 0.0.4 → 0.0.5

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 (1293) hide show
  1. package/API.md +1151 -17
  2. package/README.md +115 -18
  3. package/dist/accessibility/announce.d.ts +22 -0
  4. package/dist/accessibility/announce.d.ts.map +1 -0
  5. package/dist/accessibility/announce.js +52 -0
  6. package/dist/accessibility/announce.js.map +1 -0
  7. package/dist/accessibility/audit/accessibility-rules.json +100 -0
  8. package/dist/accessibility/audit/audit-tree.d.ts +48 -0
  9. package/dist/accessibility/audit/audit-tree.d.ts.map +1 -0
  10. package/dist/accessibility/audit/audit-tree.js +125 -0
  11. package/dist/accessibility/audit/audit-tree.js.map +1 -0
  12. package/dist/accessibility/audit/contrast.d.ts +65 -0
  13. package/dist/accessibility/audit/contrast.d.ts.map +1 -0
  14. package/dist/accessibility/audit/contrast.js +120 -0
  15. package/dist/accessibility/audit/contrast.js.map +1 -0
  16. package/dist/accessibility/audit/index.d.ts +19 -0
  17. package/dist/accessibility/audit/index.d.ts.map +1 -0
  18. package/dist/accessibility/audit/index.js +22 -0
  19. package/dist/accessibility/audit/index.js.map +1 -0
  20. package/dist/accessibility/audit/rules.d.ts +87 -0
  21. package/dist/accessibility/audit/rules.d.ts.map +1 -0
  22. package/dist/accessibility/audit/rules.js +67 -0
  23. package/dist/accessibility/audit/rules.js.map +1 -0
  24. package/dist/accessibility/audit/visual-tree-host.d.ts +5 -0
  25. package/dist/accessibility/audit/visual-tree-host.d.ts.map +1 -0
  26. package/dist/accessibility/audit/visual-tree-host.js +139 -0
  27. package/dist/accessibility/audit/visual-tree-host.js.map +1 -0
  28. package/dist/accessibility/index.d.ts +6 -0
  29. package/dist/accessibility/index.d.ts.map +1 -0
  30. package/dist/accessibility/index.js +6 -0
  31. package/dist/accessibility/index.js.map +1 -0
  32. package/dist/accessibility/live-priority.d.ts +22 -0
  33. package/dist/accessibility/live-priority.d.ts.map +1 -0
  34. package/dist/accessibility/live-priority.js +27 -0
  35. package/dist/accessibility/live-priority.js.map +1 -0
  36. package/dist/accessibility/live-region.d.ts +16 -0
  37. package/dist/accessibility/live-region.d.ts.map +1 -0
  38. package/dist/accessibility/live-region.js +20 -0
  39. package/dist/accessibility/live-region.js.map +1 -0
  40. package/dist/accessibility/notification.d.ts +15 -0
  41. package/dist/accessibility/notification.d.ts.map +1 -0
  42. package/dist/accessibility/notification.js +28 -0
  43. package/dist/accessibility/notification.js.map +1 -0
  44. package/dist/app/activate.d.ts +44 -0
  45. package/dist/app/activate.d.ts.map +1 -0
  46. package/dist/app/activate.js +64 -0
  47. package/dist/app/activate.js.map +1 -0
  48. package/dist/app/activation/classify.d.ts +41 -0
  49. package/dist/app/activation/classify.d.ts.map +1 -0
  50. package/dist/app/activation/classify.js +108 -0
  51. package/dist/app/activation/classify.js.map +1 -0
  52. package/dist/app/activation/command.d.ts +41 -0
  53. package/dist/app/activation/command.d.ts.map +1 -0
  54. package/dist/app/activation/command.js +63 -0
  55. package/dist/app/activation/command.js.map +1 -0
  56. package/dist/app/activation/context.d.ts +23 -0
  57. package/dist/app/activation/context.d.ts.map +1 -0
  58. package/dist/app/activation/context.js +15 -0
  59. package/dist/app/activation/context.js.map +1 -0
  60. package/dist/app/activation/index.d.ts +11 -0
  61. package/dist/app/activation/index.d.ts.map +1 -0
  62. package/dist/app/activation/index.js +5 -0
  63. package/dist/app/activation/index.js.map +1 -0
  64. package/dist/app/activation/kinds.d.ts +48 -0
  65. package/dist/app/activation/kinds.d.ts.map +1 -0
  66. package/dist/app/activation/kinds.js +9 -0
  67. package/dist/app/activation/kinds.js.map +1 -0
  68. package/dist/app/activation/login.d.ts +55 -0
  69. package/dist/app/activation/login.d.ts.map +1 -0
  70. package/dist/app/activation/login.js +68 -0
  71. package/dist/app/activation/login.js.map +1 -0
  72. package/dist/app/activation/native.d.ts +16 -0
  73. package/dist/app/activation/native.d.ts.map +1 -0
  74. package/dist/app/activation/native.js +260 -0
  75. package/dist/app/activation/native.js.map +1 -0
  76. package/dist/app/activation/protocol-handlers.d.ts +29 -0
  77. package/dist/app/activation/protocol-handlers.d.ts.map +1 -0
  78. package/dist/app/activation/protocol-handlers.js +64 -0
  79. package/dist/app/activation/protocol-handlers.js.map +1 -0
  80. package/dist/app/activation/receive.d.ts +44 -0
  81. package/dist/app/activation/receive.d.ts.map +1 -0
  82. package/dist/app/activation/receive.js +60 -0
  83. package/dist/app/activation/receive.js.map +1 -0
  84. package/dist/app/activation/registration.d.ts +104 -0
  85. package/dist/app/activation/registration.d.ts.map +1 -0
  86. package/dist/app/activation/registration.js +240 -0
  87. package/dist/app/activation/registration.js.map +1 -0
  88. package/dist/app/activation/registry.d.ts +23 -0
  89. package/dist/app/activation/registry.d.ts.map +1 -0
  90. package/dist/app/activation/registry.js +2 -0
  91. package/dist/app/activation/registry.js.map +1 -0
  92. package/dist/app/activation/scheme.d.ts +36 -0
  93. package/dist/app/activation/scheme.d.ts.map +1 -0
  94. package/dist/app/activation/scheme.js +103 -0
  95. package/dist/app/activation/scheme.js.map +1 -0
  96. package/dist/app/hotkeys/errors.d.ts +22 -0
  97. package/dist/app/hotkeys/errors.d.ts.map +1 -0
  98. package/dist/app/hotkeys/errors.js +23 -0
  99. package/dist/app/hotkeys/errors.js.map +1 -0
  100. package/dist/app/hotkeys/index.d.ts +30 -0
  101. package/dist/app/hotkeys/index.d.ts.map +1 -0
  102. package/dist/app/hotkeys/index.js +59 -0
  103. package/dist/app/hotkeys/index.js.map +1 -0
  104. package/dist/app/hotkeys/keys.d.ts +43 -0
  105. package/dist/app/hotkeys/keys.d.ts.map +1 -0
  106. package/dist/app/hotkeys/keys.js +135 -0
  107. package/dist/app/hotkeys/keys.js.map +1 -0
  108. package/dist/app/hotkeys/native.d.ts +10 -0
  109. package/dist/app/hotkeys/native.d.ts.map +1 -0
  110. package/dist/app/hotkeys/native.js +35 -0
  111. package/dist/app/hotkeys/native.js.map +1 -0
  112. package/dist/app/hotkeys/registry.d.ts +67 -0
  113. package/dist/app/hotkeys/registry.d.ts.map +1 -0
  114. package/dist/app/hotkeys/registry.js +85 -0
  115. package/dist/app/hotkeys/registry.js.map +1 -0
  116. package/dist/app/index.d.ts +6 -0
  117. package/dist/app/index.d.ts.map +1 -1
  118. package/dist/app/index.js +3 -0
  119. package/dist/app/index.js.map +1 -1
  120. package/dist/app/launch-command.d.ts +46 -0
  121. package/dist/app/launch-command.d.ts.map +1 -0
  122. package/dist/app/launch-command.js +61 -0
  123. package/dist/app/launch-command.js.map +1 -0
  124. package/dist/app/native.d.ts +16 -0
  125. package/dist/app/native.d.ts.map +1 -0
  126. package/dist/app/native.js +48 -0
  127. package/dist/app/native.js.map +1 -0
  128. package/dist/app/notification-schedule.d.ts +16 -0
  129. package/dist/app/notification-schedule.d.ts.map +1 -0
  130. package/dist/app/notification-schedule.js +20 -0
  131. package/dist/app/notification-schedule.js.map +1 -0
  132. package/dist/app/notification-source.d.ts +13 -0
  133. package/dist/app/notification-source.d.ts.map +1 -1
  134. package/dist/app/notification-source.js +22 -7
  135. package/dist/app/notification-source.js.map +1 -1
  136. package/dist/app/notify.d.ts +37 -1
  137. package/dist/app/notify.d.ts.map +1 -1
  138. package/dist/app/notify.js +30 -10
  139. package/dist/app/notify.js.map +1 -1
  140. package/dist/app/relaunch.d.ts +46 -0
  141. package/dist/app/relaunch.d.ts.map +1 -0
  142. package/dist/app/relaunch.js +45 -0
  143. package/dist/app/relaunch.js.map +1 -0
  144. package/dist/app/restart-after-crash.d.ts +57 -0
  145. package/dist/app/restart-after-crash.d.ts.map +1 -0
  146. package/dist/app/restart-after-crash.js +81 -0
  147. package/dist/app/restart-after-crash.js.map +1 -0
  148. package/dist/app/schedule-bindings.d.ts +4 -0
  149. package/dist/app/schedule-bindings.d.ts.map +1 -0
  150. package/dist/app/schedule-bindings.js +4 -0
  151. package/dist/app/schedule-bindings.js.map +1 -0
  152. package/dist/app/windows-time.d.ts +10 -0
  153. package/dist/app/windows-time.d.ts.map +1 -0
  154. package/dist/app/windows-time.js +13 -0
  155. package/dist/app/windows-time.js.map +1 -0
  156. package/dist/bindings/.dynwinrt-managed +1 -1
  157. package/dist/bindings/microsoft/ui/input/CharacterReceivedEventArgs.d.ts +40 -0
  158. package/dist/bindings/microsoft/ui/input/CharacterReceivedEventArgs.js +89 -0
  159. package/dist/bindings/microsoft/ui/input/ContextMenuKeyEventArgs.d.ts +16 -0
  160. package/dist/bindings/microsoft/ui/input/ContextMenuKeyEventArgs.js +51 -0
  161. package/dist/bindings/microsoft/ui/input/IInputKeyboardSource2.d.ts +133 -0
  162. package/dist/bindings/microsoft/ui/input/IInputKeyboardSource2.js +494 -0
  163. package/dist/bindings/microsoft/ui/input/InputKeyboardSource.d.ts +102 -0
  164. package/dist/bindings/microsoft/ui/input/InputKeyboardSource.js +346 -0
  165. package/dist/bindings/microsoft/ui/input/KeyEventArgs.d.ts +46 -0
  166. package/dist/bindings/microsoft/ui/input/KeyEventArgs.js +100 -0
  167. package/dist/bindings/microsoft/ui/input/VirtualKeyStates.d.ts +19 -0
  168. package/dist/bindings/microsoft/ui/input/VirtualKeyStates.js +20 -0
  169. package/dist/bindings/microsoft/ui/xaml/automation/AutomationProperty.d.ts +10 -0
  170. package/dist/bindings/microsoft/ui/xaml/automation/AutomationProperty.js +39 -0
  171. package/dist/bindings/microsoft/ui/xaml/automation/AutomationTextEditChangeType.d.ts +23 -0
  172. package/dist/bindings/microsoft/ui/xaml/automation/AutomationTextEditChangeType.js +24 -0
  173. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationEvents.d.ts +127 -0
  174. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationEvents.js +128 -0
  175. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNavigationDirection.d.ts +27 -0
  176. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNavigationDirection.js +28 -0
  177. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNotificationKind.d.ts +27 -0
  178. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNotificationKind.js +28 -0
  179. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNotificationProcessing.d.ts +27 -0
  180. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationNotificationProcessing.js +28 -0
  181. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationOrientation.d.ts +19 -0
  182. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationOrientation.js +20 -0
  183. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationPeer.d.ts +373 -0
  184. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationPeer.js +741 -0
  185. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationPeerAnnotation.d.ts +57 -0
  186. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationPeerAnnotation.js +216 -0
  187. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationStructureChangeType.d.ts +31 -0
  188. package/dist/bindings/microsoft/ui/xaml/automation/peers/AutomationStructureChangeType.js +32 -0
  189. package/dist/bindings/microsoft/ui/xaml/automation/peers/FrameworkElementAutomationPeer.d.ts +142 -0
  190. package/dist/bindings/microsoft/ui/xaml/automation/peers/FrameworkElementAutomationPeer.js +531 -0
  191. package/dist/bindings/microsoft/ui/xaml/automation/peers/IAutomationPeer.d.ts +448 -0
  192. package/dist/bindings/microsoft/ui/xaml/automation/peers/IAutomationPeer.js +1073 -0
  193. package/dist/bindings/microsoft/ui/xaml/automation/peers/IAutomationPeerProtected.d.ts +32 -0
  194. package/dist/bindings/microsoft/ui/xaml/automation/peers/IAutomationPeerProtected.js +138 -0
  195. package/dist/bindings/microsoft/ui/xaml/automation/peers/PatternInterface.d.ts +143 -0
  196. package/dist/bindings/microsoft/ui/xaml/automation/peers/PatternInterface.js +144 -0
  197. package/dist/bindings/microsoft/ui/xaml/automation/provider/IRawElementProviderSimple.d.ts +25 -0
  198. package/dist/bindings/microsoft/ui/xaml/automation/provider/IRawElementProviderSimple.js +110 -0
  199. package/dist/bindings/microsoft/ui/xaml/input/FindNextElementOptions.d.ts +52 -0
  200. package/dist/bindings/microsoft/ui/xaml/input/FindNextElementOptions.js +133 -0
  201. package/dist/bindings/microsoft/ui/xaml/input/FocusManager.d.ts +159 -0
  202. package/dist/bindings/microsoft/ui/xaml/input/FocusManager.js +360 -0
  203. package/dist/bindings/microsoft/ui/xaml/input/FocusManagerGotFocusEventArgs.d.ts +21 -0
  204. package/dist/bindings/microsoft/ui/xaml/input/FocusManagerGotFocusEventArgs.js +58 -0
  205. package/dist/bindings/microsoft/ui/xaml/input/FocusManagerLostFocusEventArgs.d.ts +21 -0
  206. package/dist/bindings/microsoft/ui/xaml/input/FocusManagerLostFocusEventArgs.js +58 -0
  207. package/dist/bindings/microsoft/ui/xaml/input/FocusMovementResult.d.ts +15 -0
  208. package/dist/bindings/microsoft/ui/xaml/input/FocusMovementResult.js +47 -0
  209. package/dist/bindings/microsoft/ui/xaml/input/XYFocusNavigationStrategyOverride.d.ts +27 -0
  210. package/dist/bindings/microsoft/ui/xaml/input/XYFocusNavigationStrategyOverride.js +28 -0
  211. package/dist/bindings/microsoft/ui/xaml/media/animation/BasicConnectedAnimationConfiguration.d.ts +11 -0
  212. package/dist/bindings/microsoft/ui/xaml/media/animation/BasicConnectedAnimationConfiguration.js +62 -0
  213. package/dist/bindings/microsoft/ui/xaml/media/animation/DirectConnectedAnimationConfiguration.d.ts +11 -0
  214. package/dist/bindings/microsoft/ui/xaml/media/animation/DirectConnectedAnimationConfiguration.js +62 -0
  215. package/dist/bindings/microsoft/ui/xaml/media/animation/GravityConnectedAnimationConfiguration.d.ts +17 -0
  216. package/dist/bindings/microsoft/ui/xaml/media/animation/GravityConnectedAnimationConfiguration.js +74 -0
  217. package/dist/bindings/windows/application-model/AddResourcePackageOptions.d.ts +7 -0
  218. package/dist/bindings/windows/application-model/AddResourcePackageOptions.js +8 -0
  219. package/dist/bindings/windows/application-model/IPackageCatalog2.d.ts +50 -0
  220. package/dist/bindings/windows/application-model/IPackageCatalog2.js +211 -0
  221. package/dist/bindings/windows/application-model/IPackageCatalog3.d.ts +29 -0
  222. package/dist/bindings/windows/application-model/IPackageCatalog3.js +136 -0
  223. package/dist/bindings/windows/application-model/IPackageCatalog4.d.ts +60 -0
  224. package/dist/bindings/windows/application-model/IPackageCatalog4.js +199 -0
  225. package/dist/bindings/windows/application-model/PackageCatalog.d.ts +100 -0
  226. package/dist/bindings/windows/application-model/PackageCatalog.js +440 -0
  227. package/dist/bindings/windows/application-model/PackageCatalogAddOptionalPackageResult.d.ts +10 -0
  228. package/dist/bindings/windows/application-model/PackageCatalogAddOptionalPackageResult.js +47 -0
  229. package/dist/bindings/windows/application-model/PackageCatalogAddResourcePackageResult.d.ts +11 -0
  230. package/dist/bindings/windows/application-model/PackageCatalogAddResourcePackageResult.js +51 -0
  231. package/dist/bindings/windows/application-model/PackageCatalogRemoveOptionalPackagesResult.d.ts +10 -0
  232. package/dist/bindings/windows/application-model/PackageCatalogRemoveOptionalPackagesResult.js +50 -0
  233. package/dist/bindings/windows/application-model/PackageCatalogRemoveResourcePackagesResult.d.ts +10 -0
  234. package/dist/bindings/windows/application-model/PackageCatalogRemoveResourcePackagesResult.js +50 -0
  235. package/dist/bindings/windows/application-model/PackageContentGroupStagingEventArgs.d.ts +15 -0
  236. package/dist/bindings/windows/application-model/PackageContentGroupStagingEventArgs.js +67 -0
  237. package/dist/bindings/windows/application-model/PackageInstallingEventArgs.d.ts +13 -0
  238. package/dist/bindings/windows/application-model/PackageInstallingEventArgs.js +59 -0
  239. package/dist/bindings/windows/application-model/PackageStagingEventArgs.d.ts +13 -0
  240. package/dist/bindings/windows/application-model/PackageStagingEventArgs.js +59 -0
  241. package/dist/bindings/windows/application-model/PackageStatusChangedEventArgs.d.ts +9 -0
  242. package/dist/bindings/windows/application-model/PackageStatusChangedEventArgs.js +43 -0
  243. package/dist/bindings/windows/application-model/PackageUninstallingEventArgs.d.ts +13 -0
  244. package/dist/bindings/windows/application-model/PackageUninstallingEventArgs.js +59 -0
  245. package/dist/bindings/windows/application-model/PackageUpdatingEventArgs.d.ts +14 -0
  246. package/dist/bindings/windows/application-model/PackageUpdatingEventArgs.js +63 -0
  247. package/dist/bindings/windows/application-model/StartupTask.d.ts +15 -0
  248. package/dist/bindings/windows/application-model/StartupTask.js +115 -0
  249. package/dist/bindings/windows/application-model/StartupTaskState.d.ts +5 -0
  250. package/dist/bindings/windows/application-model/StartupTaskState.js +6 -0
  251. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputFocusManagerGotFocusEventArgs_g9744aab498e22ee2.d.ts +7 -0
  252. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputFocusManagerGotFocusEventArgs_g9744aab498e22ee2.js +7 -0
  253. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputFocusManagerLostFocusEventArgs_g1708c8c6742d9f14.d.ts +7 -0
  254. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputFocusManagerLostFocusEventArgs_g1708c8c6742d9f14.js +7 -0
  255. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputGettingFocusEventArgs_gcf469412ccadc527.d.ts +7 -0
  256. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputGettingFocusEventArgs_gcf469412ccadc527.js +7 -0
  257. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputLosingFocusEventArgs_g01067b38dcf7cb15.d.ts +7 -0
  258. package/dist/bindings/windows/foundation/EventHandler_MicrosoftUIXamlInputLosingFocusEventArgs_g01067b38dcf7cb15.js +7 -0
  259. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputCharacterReceivedEventArgs_g949756a8af790124.d.ts +8 -0
  260. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputCharacterReceivedEventArgs_g949756a8af790124.js +7 -0
  261. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputContextMenuKeyEventArgs_gfaa54200cb240b39.d.ts +8 -0
  262. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputContextMenuKeyEventArgs_gfaa54200cb240b39.js +7 -0
  263. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputKeyEventArgs_gead6188cb3dd043f.d.ts +8 -0
  264. package/dist/bindings/windows/foundation/TypedEventHandler_MicrosoftUIInputInputKeyboardSource_MicrosoftUIInputKeyEventArgs_gead6188cb3dd043f.js +7 -0
  265. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageContentGroupStag_g9de03bf71c8249f6.d.ts +8 -0
  266. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageContentGroupStag_g9de03bf71c8249f6.js +7 -0
  267. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageInstallingEventA_g5da5beb9a0e17bc6.d.ts +8 -0
  268. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageInstallingEventA_g5da5beb9a0e17bc6.js +7 -0
  269. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageStagingEventArgs_ga7c7c75d178b56a6.d.ts +8 -0
  270. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageStagingEventArgs_ga7c7c75d178b56a6.js +7 -0
  271. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageStatusChangedEve_ge8daadde37a07d11.d.ts +8 -0
  272. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageStatusChangedEve_ge8daadde37a07d11.js +7 -0
  273. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageUninstallingEven_gb8f6a82edaf89485.d.ts +8 -0
  274. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageUninstallingEven_gb8f6a82edaf89485.js +7 -0
  275. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageUpdatingEventArg_gb2c74bce54d9728d.d.ts +8 -0
  276. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsApplicationModelPackageCatalog_WindowsApplicationModelPackageUpdatingEventArg_gb2c74bce54d9728d.js +7 -0
  277. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreContext_Object_ga48d68d009829e64.d.ts +7 -0
  278. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreContext_Object_ga48d68d009829e64.js +7 -0
  279. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStorePackageLicense_Object_gc978b769c354e904.d.ts +7 -0
  280. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStorePackageLicense_Object_gc978b769c354e904.js +7 -0
  281. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreQueueItem_Object_g088e531e702509cf.d.ts +7 -0
  282. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreQueueItem_Object_g088e531e702509cf.js +7 -0
  283. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreQueueItem_WindowsServicesStoreStoreQueueItemCompletedEventA_g34ce9111d212b7b3.d.ts +8 -0
  284. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsServicesStoreStoreQueueItem_WindowsServicesStoreStoreQueueItemCompletedEventA_g34ce9111d212b7b3.js +7 -0
  285. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsUINotificationsToastNotificationManagerForUser_Object_gf9f98c6574495e8c.d.ts +7 -0
  286. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsUINotificationsToastNotificationManagerForUser_Object_gf9f98c6574495e8c.js +7 -0
  287. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsUINotificationsToastNotifier_WindowsUINotificationsScheduledToastNotification_g001c9266a166b291.d.ts +8 -0
  288. package/dist/bindings/windows/foundation/TypedEventHandler_WindowsUINotificationsToastNotifier_WindowsUINotificationsScheduledToastNotification_g001c9266a166b291.js +7 -0
  289. package/dist/bindings/windows/foundation/collections/IIterable_WindowsApplicationModelPackage_g6cb7c58670977615.d.ts +23 -0
  290. package/dist/bindings/windows/foundation/collections/IIterable_WindowsApplicationModelPackage_g6cb7c58670977615.js +45 -0
  291. package/dist/bindings/windows/foundation/collections/IIterable_WindowsServicesStoreStorePackageUpdate_g2b3af8b1803050c9.d.ts +23 -0
  292. package/dist/bindings/windows/foundation/collections/IIterable_WindowsServicesStoreStorePackageUpdate_g2b3af8b1803050c9.js +45 -0
  293. package/dist/bindings/windows/foundation/collections/IIterable_WindowsServicesStoreStoreQueueItem_gefa6c894c870ec86.d.ts +23 -0
  294. package/dist/bindings/windows/foundation/collections/IIterable_WindowsServicesStoreStoreQueueItem_gefa6c894c870ec86.js +45 -0
  295. package/dist/bindings/windows/foundation/collections/IIterator_WindowsApplicationModelPackage_gfb85903b74efaccc.d.ts +31 -0
  296. package/dist/bindings/windows/foundation/collections/IIterator_WindowsApplicationModelPackage_gfb85903b74efaccc.js +67 -0
  297. package/dist/bindings/windows/foundation/collections/IIterator_WindowsServicesStoreStorePackageUpdate_gd49c43fc9590df8e.d.ts +31 -0
  298. package/dist/bindings/windows/foundation/collections/IIterator_WindowsServicesStoreStorePackageUpdate_gd49c43fc9590df8e.js +67 -0
  299. package/dist/bindings/windows/foundation/collections/IIterator_WindowsServicesStoreStoreQueueItem_gb618559796af22f1.d.ts +31 -0
  300. package/dist/bindings/windows/foundation/collections/IIterator_WindowsServicesStoreStoreQueueItem_gb618559796af22f1.js +67 -0
  301. package/dist/bindings/windows/foundation/collections/IMapView_String_WindowsServicesStoreStoreLicense_g162ecf9ec8342f7c.d.ts +36 -0
  302. package/dist/bindings/windows/foundation/collections/IMapView_String_WindowsServicesStoreStoreLicense_g162ecf9ec8342f7c.js +71 -0
  303. package/dist/bindings/windows/foundation/collections/IMapView_String_WindowsServicesStoreStoreProduct_g8ea2e65832c6f5a4.d.ts +36 -0
  304. package/dist/bindings/windows/foundation/collections/IMapView_String_WindowsServicesStoreStoreProduct_g8ea2e65832c6f5a4.js +71 -0
  305. package/dist/bindings/windows/foundation/collections/IMap_String_WindowsServicesStoreStoreLicense_gf681f328cc2e3874.d.ts +60 -0
  306. package/dist/bindings/windows/foundation/collections/IMap_String_WindowsServicesStoreStoreLicense_gf681f328cc2e3874.js +114 -0
  307. package/dist/bindings/windows/foundation/collections/IMap_String_WindowsServicesStoreStoreProduct_g4d742845f441491c.d.ts +60 -0
  308. package/dist/bindings/windows/foundation/collections/IMap_String_WindowsServicesStoreStoreProduct_g4d742845f441491c.js +114 -0
  309. package/dist/bindings/windows/foundation/collections/IVectorView_MicrosoftUIXamlAutomationPeersAutomationPeerAnnotation_g1291d190459cae2b.d.ts +40 -0
  310. package/dist/bindings/windows/foundation/collections/IVectorView_MicrosoftUIXamlAutomationPeersAutomationPeerAnnotation_g1291d190459cae2b.js +85 -0
  311. package/dist/bindings/windows/foundation/collections/IVectorView_MicrosoftUIXamlAutomationPeersAutomationPeer_gcf17e6c70dae9df8.d.ts +40 -0
  312. package/dist/bindings/windows/foundation/collections/IVectorView_MicrosoftUIXamlAutomationPeersAutomationPeer_gcf17e6c70dae9df8.js +85 -0
  313. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsApplicationModelStartupTask_g213762a6fd9a9707.d.ts +40 -0
  314. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsApplicationModelStartupTask_g213762a6fd9a9707.js +85 -0
  315. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreAvailability_geb0561a0f0dd0005.d.ts +40 -0
  316. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreAvailability_geb0561a0f0dd0005.js +85 -0
  317. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreImage_g3308691eac26400f.d.ts +40 -0
  318. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreImage_g3308691eac26400f.js +85 -0
  319. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStorePackageUpdateStatus_g48777acdbcb2a5c8.d.ts +54 -0
  320. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStorePackageUpdateStatus_g48777acdbcb2a5c8.js +109 -0
  321. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStorePackageUpdate_gc7d2f3857622cec3.d.ts +40 -0
  322. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStorePackageUpdate_gc7d2f3857622cec3.js +85 -0
  323. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreQueueItem_g866c0e5377ca52ec.d.ts +40 -0
  324. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreQueueItem_g866c0e5377ca52ec.js +85 -0
  325. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreSku_g915fbb9b0e903e7f.d.ts +40 -0
  326. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreSku_g915fbb9b0e903e7f.js +85 -0
  327. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreVideo_gcff017d5106c30d1.d.ts +40 -0
  328. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsServicesStoreStoreVideo_gcff017d5106c30d1.js +85 -0
  329. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsScheduledToastNotification_gafec5ba714dc8e71.d.ts +40 -0
  330. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsScheduledToastNotification_gafec5ba714dc8e71.js +85 -0
  331. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsToastCollection_g3093026941314e4f.d.ts +40 -0
  332. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsToastCollection_g3093026941314e4f.js +85 -0
  333. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsToastNotification_g8c913fdb725fef16.d.ts +40 -0
  334. package/dist/bindings/windows/foundation/collections/IVectorView_WindowsUINotificationsToastNotification_g8c913fdb725fef16.js +85 -0
  335. package/dist/bindings/windows/foundation/collections/IVector_MicrosoftUIXamlAutomationPeersAutomationPeerAnnotation_g0be2a565a8b48fdc.d.ts +62 -0
  336. package/dist/bindings/windows/foundation/collections/IVector_MicrosoftUIXamlAutomationPeersAutomationPeerAnnotation_g0be2a565a8b48fdc.js +135 -0
  337. package/dist/bindings/windows/foundation/collections/IVector_MicrosoftUIXamlAutomationPeersAutomationPeer_gfdcbe941c5dbe60f.d.ts +62 -0
  338. package/dist/bindings/windows/foundation/collections/IVector_MicrosoftUIXamlAutomationPeersAutomationPeer_gfdcbe941c5dbe60f.js +135 -0
  339. package/dist/bindings/windows/services/store/IStoreAppLicense2.d.ts +27 -0
  340. package/dist/bindings/windows/services/store/IStoreAppLicense2.js +116 -0
  341. package/dist/bindings/windows/services/store/IStoreContext2.d.ts +30 -0
  342. package/dist/bindings/windows/services/store/IStoreContext2.js +140 -0
  343. package/dist/bindings/windows/services/store/IStoreContext3.d.ts +107 -0
  344. package/dist/bindings/windows/services/store/IStoreContext3.js +519 -0
  345. package/dist/bindings/windows/services/store/IStoreContext4.d.ts +34 -0
  346. package/dist/bindings/windows/services/store/IStoreContext4.js +167 -0
  347. package/dist/bindings/windows/services/store/IStoreContext5.d.ts +36 -0
  348. package/dist/bindings/windows/services/store/IStoreContext5.js +187 -0
  349. package/dist/bindings/windows/services/store/IStorePackageUpdateResult2.d.ts +28 -0
  350. package/dist/bindings/windows/services/store/IStorePackageUpdateResult2.js +122 -0
  351. package/dist/bindings/windows/services/store/IStorePrice2.d.ts +33 -0
  352. package/dist/bindings/windows/services/store/IStorePrice2.js +140 -0
  353. package/dist/bindings/windows/services/store/IStoreQueueItem2.d.ts +33 -0
  354. package/dist/bindings/windows/services/store/IStoreQueueItem2.js +176 -0
  355. package/dist/bindings/windows/services/store/StoreAcquireLicenseResult.d.ts +10 -0
  356. package/dist/bindings/windows/services/store/StoreAcquireLicenseResult.js +47 -0
  357. package/dist/bindings/windows/services/store/StoreAppLicense.d.ts +38 -0
  358. package/dist/bindings/windows/services/store/StoreAppLicense.js +136 -0
  359. package/dist/bindings/windows/services/store/StoreAvailability.d.ts +26 -0
  360. package/dist/bindings/windows/services/store/StoreAvailability.js +134 -0
  361. package/dist/bindings/windows/services/store/StoreCanAcquireLicenseResult.d.ts +11 -0
  362. package/dist/bindings/windows/services/store/StoreCanAcquireLicenseResult.js +51 -0
  363. package/dist/bindings/windows/services/store/StoreCanLicenseStatus.d.ts +9 -0
  364. package/dist/bindings/windows/services/store/StoreCanLicenseStatus.js +10 -0
  365. package/dist/bindings/windows/services/store/StoreCollectionData.d.ts +33 -0
  366. package/dist/bindings/windows/services/store/StoreCollectionData.js +102 -0
  367. package/dist/bindings/windows/services/store/StoreConsumableResult.d.ts +12 -0
  368. package/dist/bindings/windows/services/store/StoreConsumableResult.js +55 -0
  369. package/dist/bindings/windows/services/store/StoreConsumableStatus.d.ts +8 -0
  370. package/dist/bindings/windows/services/store/StoreConsumableStatus.js +9 -0
  371. package/dist/bindings/windows/services/store/StoreContext.d.ts +121 -0
  372. package/dist/bindings/windows/services/store/StoreContext.js +975 -0
  373. package/dist/bindings/windows/services/store/StoreDurationUnit.d.ts +10 -0
  374. package/dist/bindings/windows/services/store/StoreDurationUnit.js +11 -0
  375. package/dist/bindings/windows/services/store/StoreImage.d.ts +13 -0
  376. package/dist/bindings/windows/services/store/StoreImage.js +59 -0
  377. package/dist/bindings/windows/services/store/StoreLicense.d.ts +21 -0
  378. package/dist/bindings/windows/services/store/StoreLicense.js +73 -0
  379. package/dist/bindings/windows/services/store/StorePackageInstallOptions.d.ts +13 -0
  380. package/dist/bindings/windows/services/store/StorePackageInstallOptions.js +61 -0
  381. package/dist/bindings/windows/services/store/StorePackageLicense.d.ts +31 -0
  382. package/dist/bindings/windows/services/store/StorePackageLicense.js +117 -0
  383. package/dist/bindings/windows/services/store/StorePackageUpdate.d.ts +10 -0
  384. package/dist/bindings/windows/services/store/StorePackageUpdate.js +47 -0
  385. package/dist/bindings/windows/services/store/StorePackageUpdateResult.d.ts +29 -0
  386. package/dist/bindings/windows/services/store/StorePackageUpdateResult.js +99 -0
  387. package/dist/bindings/windows/services/store/StorePackageUpdateState.d.ts +5 -0
  388. package/dist/bindings/windows/services/store/StorePackageUpdateState.js +6 -0
  389. package/dist/bindings/windows/services/store/StorePackageUpdateStatus.d.ts +5 -0
  390. package/dist/bindings/windows/services/store/StorePackageUpdateStatus.js +6 -0
  391. package/dist/bindings/windows/services/store/StorePrice.d.ts +27 -0
  392. package/dist/bindings/windows/services/store/StorePrice.js +106 -0
  393. package/dist/bindings/windows/services/store/StoreProduct.d.ts +34 -0
  394. package/dist/bindings/windows/services/store/StoreProduct.js +201 -0
  395. package/dist/bindings/windows/services/store/StoreProductOptions.d.ts +13 -0
  396. package/dist/bindings/windows/services/store/StoreProductOptions.js +60 -0
  397. package/dist/bindings/windows/services/store/StoreProductPagedQueryResult.d.ts +12 -0
  398. package/dist/bindings/windows/services/store/StoreProductPagedQueryResult.js +73 -0
  399. package/dist/bindings/windows/services/store/StoreProductQueryResult.d.ts +10 -0
  400. package/dist/bindings/windows/services/store/StoreProductQueryResult.js +53 -0
  401. package/dist/bindings/windows/services/store/StoreProductResult.d.ts +10 -0
  402. package/dist/bindings/windows/services/store/StoreProductResult.js +47 -0
  403. package/dist/bindings/windows/services/store/StorePurchaseProperties.d.ts +17 -0
  404. package/dist/bindings/windows/services/store/StorePurchaseProperties.js +90 -0
  405. package/dist/bindings/windows/services/store/StorePurchaseResult.d.ts +10 -0
  406. package/dist/bindings/windows/services/store/StorePurchaseResult.js +47 -0
  407. package/dist/bindings/windows/services/store/StorePurchaseStatus.d.ts +9 -0
  408. package/dist/bindings/windows/services/store/StorePurchaseStatus.js +10 -0
  409. package/dist/bindings/windows/services/store/StoreQueueItem.d.ts +40 -0
  410. package/dist/bindings/windows/services/store/StoreQueueItem.js +199 -0
  411. package/dist/bindings/windows/services/store/StoreQueueItemCompletedEventArgs.d.ts +9 -0
  412. package/dist/bindings/windows/services/store/StoreQueueItemCompletedEventArgs.js +43 -0
  413. package/dist/bindings/windows/services/store/StoreQueueItemExtendedState.d.ts +19 -0
  414. package/dist/bindings/windows/services/store/StoreQueueItemExtendedState.js +20 -0
  415. package/dist/bindings/windows/services/store/StoreQueueItemKind.d.ts +7 -0
  416. package/dist/bindings/windows/services/store/StoreQueueItemKind.js +8 -0
  417. package/dist/bindings/windows/services/store/StoreQueueItemState.d.ts +9 -0
  418. package/dist/bindings/windows/services/store/StoreQueueItemState.js +10 -0
  419. package/dist/bindings/windows/services/store/StoreQueueItemStatus.d.ts +27 -0
  420. package/dist/bindings/windows/services/store/StoreQueueItemStatus.js +83 -0
  421. package/dist/bindings/windows/services/store/StoreRateAndReviewResult.d.ts +12 -0
  422. package/dist/bindings/windows/services/store/StoreRateAndReviewResult.js +55 -0
  423. package/dist/bindings/windows/services/store/StoreRateAndReviewStatus.d.ts +8 -0
  424. package/dist/bindings/windows/services/store/StoreRateAndReviewStatus.js +9 -0
  425. package/dist/bindings/windows/services/store/StoreSku.d.ts +36 -0
  426. package/dist/bindings/windows/services/store/StoreSku.js +208 -0
  427. package/dist/bindings/windows/services/store/StoreSubscriptionInfo.d.ts +13 -0
  428. package/dist/bindings/windows/services/store/StoreSubscriptionInfo.js +59 -0
  429. package/dist/bindings/windows/services/store/StoreUninstallStorePackageResult.d.ts +10 -0
  430. package/dist/bindings/windows/services/store/StoreUninstallStorePackageResult.js +47 -0
  431. package/dist/bindings/windows/services/store/StoreUninstallStorePackageStatus.d.ts +9 -0
  432. package/dist/bindings/windows/services/store/StoreUninstallStorePackageStatus.js +10 -0
  433. package/dist/bindings/windows/services/store/StoreVideo.d.ts +15 -0
  434. package/dist/bindings/windows/services/store/StoreVideo.js +66 -0
  435. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification2.d.ts +39 -0
  436. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification2.js +173 -0
  437. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification3.d.ts +35 -0
  438. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification3.js +153 -0
  439. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification4.d.ts +39 -0
  440. package/dist/bindings/windows/ui/notifications/IScheduledToastNotification4.js +147 -0
  441. package/dist/bindings/windows/ui/notifications/IToastNotificationHistory2.d.ts +31 -0
  442. package/dist/bindings/windows/ui/notifications/IToastNotificationHistory2.js +134 -0
  443. package/dist/bindings/windows/ui/notifications/IToastNotificationManagerForUser2.d.ts +39 -0
  444. package/dist/bindings/windows/ui/notifications/IToastNotificationManagerForUser2.js +185 -0
  445. package/dist/bindings/windows/ui/notifications/IToastNotificationManagerForUser3.d.ts +49 -0
  446. package/dist/bindings/windows/ui/notifications/IToastNotificationManagerForUser3.js +195 -0
  447. package/dist/bindings/windows/ui/notifications/IToastNotifier2.d.ts +32 -0
  448. package/dist/bindings/windows/ui/notifications/IToastNotifier2.js +137 -0
  449. package/dist/bindings/windows/ui/notifications/IToastNotifier3.d.ts +46 -0
  450. package/dist/bindings/windows/ui/notifications/IToastNotifier3.js +184 -0
  451. package/dist/bindings/windows/ui/notifications/NotificationSetting.d.ts +9 -0
  452. package/dist/bindings/windows/ui/notifications/NotificationSetting.js +10 -0
  453. package/dist/bindings/windows/ui/notifications/NotificationUpdateResult.d.ts +7 -0
  454. package/dist/bindings/windows/ui/notifications/NotificationUpdateResult.js +8 -0
  455. package/dist/bindings/windows/ui/notifications/ScheduledToastNotification.d.ts +51 -0
  456. package/dist/bindings/windows/ui/notifications/ScheduledToastNotification.js +231 -0
  457. package/dist/bindings/windows/ui/notifications/ScheduledToastNotificationShowingEventArgs.d.ts +13 -0
  458. package/dist/bindings/windows/ui/notifications/ScheduledToastNotificationShowingEventArgs.js +58 -0
  459. package/dist/bindings/windows/ui/notifications/ToastCollection.d.ts +16 -0
  460. package/dist/bindings/windows/ui/notifications/ToastCollection.js +91 -0
  461. package/dist/bindings/windows/ui/notifications/ToastCollectionManager.d.ts +17 -0
  462. package/dist/bindings/windows/ui/notifications/ToastCollectionManager.js +136 -0
  463. package/dist/bindings/windows/ui/notifications/ToastNotificationHistory.d.ts +24 -0
  464. package/dist/bindings/windows/ui/notifications/ToastNotificationHistory.js +137 -0
  465. package/dist/bindings/windows/ui/notifications/ToastNotificationManager.d.ts +19 -0
  466. package/dist/bindings/windows/ui/notifications/ToastNotificationManager.js +133 -0
  467. package/dist/bindings/windows/ui/notifications/ToastNotificationManagerForUser.d.ts +40 -0
  468. package/dist/bindings/windows/ui/notifications/ToastNotificationManagerForUser.js +205 -0
  469. package/dist/bindings/windows/ui/notifications/ToastNotificationMode.d.ts +7 -0
  470. package/dist/bindings/windows/ui/notifications/ToastNotificationMode.js +8 -0
  471. package/dist/bindings/windows/ui/notifications/ToastNotifier.d.ts +41 -0
  472. package/dist/bindings/windows/ui/notifications/ToastNotifier.js +183 -0
  473. package/dist/bindings/windows/ui/notifications/ToastTemplateType.d.ts +12 -0
  474. package/dist/bindings/windows/ui/notifications/ToastTemplateType.js +13 -0
  475. package/dist/components/convert.d.ts +1 -1
  476. package/dist/components/convert.d.ts.map +1 -1
  477. package/dist/components/convert.js +3 -2
  478. package/dist/components/convert.js.map +1 -1
  479. package/dist/components/generated/bindings.d.ts +1 -0
  480. package/dist/components/generated/bindings.d.ts.map +1 -1
  481. package/dist/components/generated/bindings.js +1 -0
  482. package/dist/components/generated/bindings.js.map +1 -1
  483. package/dist/components/generated/enums.d.ts +3 -0
  484. package/dist/components/generated/enums.d.ts.map +1 -1
  485. package/dist/components/generated/enums.js +1 -0
  486. package/dist/components/generated/enums.js.map +1 -1
  487. package/dist/components/index.d.ts +1 -1
  488. package/dist/components/index.d.ts.map +1 -1
  489. package/dist/components/runtime.svelte.d.ts +1 -0
  490. package/dist/components/runtime.svelte.d.ts.map +1 -1
  491. package/dist/components/runtime.svelte.js +17 -6
  492. package/dist/components/runtime.svelte.js.map +1 -1
  493. package/dist/composition/animate.d.ts +78 -0
  494. package/dist/composition/animate.d.ts.map +1 -0
  495. package/dist/composition/animate.js +184 -0
  496. package/dist/composition/animate.js.map +1 -0
  497. package/dist/composition/expression.d.ts +177 -0
  498. package/dist/composition/expression.d.ts.map +1 -0
  499. package/dist/composition/expression.js +330 -0
  500. package/dist/composition/expression.js.map +1 -0
  501. package/dist/composition/index.d.ts +11 -0
  502. package/dist/composition/index.d.ts.map +1 -0
  503. package/dist/composition/index.js +9 -0
  504. package/dist/composition/index.js.map +1 -0
  505. package/dist/composition/property-set.d.ts +36 -0
  506. package/dist/composition/property-set.d.ts.map +1 -0
  507. package/dist/composition/property-set.js +81 -0
  508. package/dist/composition/property-set.js.map +1 -0
  509. package/dist/composition/spring.d.ts +43 -0
  510. package/dist/composition/spring.d.ts.map +1 -0
  511. package/dist/composition/spring.js +23 -0
  512. package/dist/composition/spring.js.map +1 -0
  513. package/dist/composition/targets.d.ts +48 -0
  514. package/dist/composition/targets.d.ts.map +1 -0
  515. package/dist/composition/targets.js +34 -0
  516. package/dist/composition/targets.js.map +1 -0
  517. package/dist/css/index.d.ts +2 -0
  518. package/dist/css/index.d.ts.map +1 -1
  519. package/dist/css/index.js +2 -0
  520. package/dist/css/index.js.map +1 -1
  521. package/dist/css/parse/box-shadow.d.ts +46 -0
  522. package/dist/css/parse/box-shadow.d.ts.map +1 -0
  523. package/dist/css/parse/box-shadow.js +65 -0
  524. package/dist/css/parse/box-shadow.js.map +1 -0
  525. package/dist/css/parse/filters.d.ts.map +1 -1
  526. package/dist/css/parse/filters.js +1 -1
  527. package/dist/css/parse/filters.js.map +1 -1
  528. package/dist/css/parse/parser.js +1 -1
  529. package/dist/css/parse/parser.js.map +1 -1
  530. package/dist/css/parse/scroll-timeline.d.ts +181 -0
  531. package/dist/css/parse/scroll-timeline.d.ts.map +1 -0
  532. package/dist/css/parse/scroll-timeline.js +278 -0
  533. package/dist/css/parse/scroll-timeline.js.map +1 -0
  534. package/dist/css/runtime/resources.d.ts +2 -0
  535. package/dist/css/runtime/resources.d.ts.map +1 -1
  536. package/dist/css/runtime/resources.js +2 -2
  537. package/dist/css/runtime/resources.js.map +1 -1
  538. package/dist/css/runtime/runtime.d.ts +37 -3
  539. package/dist/css/runtime/runtime.d.ts.map +1 -1
  540. package/dist/css/runtime/runtime.js +27 -13
  541. package/dist/css/runtime/runtime.js.map +1 -1
  542. package/dist/css/runtime/sheet-module.d.ts +3 -1
  543. package/dist/css/runtime/sheet-module.d.ts.map +1 -1
  544. package/dist/css/runtime/sheet-module.js +24 -10
  545. package/dist/css/runtime/sheet-module.js.map +1 -1
  546. package/dist/css/runtime/visual-state-native.d.ts +10 -0
  547. package/dist/css/runtime/visual-state-native.d.ts.map +1 -0
  548. package/dist/css/runtime/visual-state-native.js +112 -0
  549. package/dist/css/runtime/visual-state-native.js.map +1 -0
  550. package/dist/css/runtime/visual-states.d.ts +27 -0
  551. package/dist/css/runtime/visual-states.d.ts.map +1 -0
  552. package/dist/css/runtime/visual-states.js +83 -0
  553. package/dist/css/runtime/visual-states.js.map +1 -0
  554. package/dist/css/scroll-timeline.d.ts +21 -0
  555. package/dist/css/scroll-timeline.d.ts.map +1 -0
  556. package/dist/css/scroll-timeline.js +11 -0
  557. package/dist/css/scroll-timeline.js.map +1 -0
  558. package/dist/css/shadow.d.ts +23 -0
  559. package/dist/css/shadow.d.ts.map +1 -0
  560. package/dist/css/shadow.js +11 -0
  561. package/dist/css/shadow.js.map +1 -0
  562. package/dist/css/translate/animation-properties.d.ts +8 -2
  563. package/dist/css/translate/animation-properties.d.ts.map +1 -1
  564. package/dist/css/translate/animation-properties.js +202 -15
  565. package/dist/css/translate/animation-properties.js.map +1 -1
  566. package/dist/css/translate/build-shorthands.d.ts +3 -2
  567. package/dist/css/translate/build-shorthands.d.ts.map +1 -1
  568. package/dist/css/translate/build-shorthands.js +5 -3
  569. package/dist/css/translate/build-shorthands.js.map +1 -1
  570. package/dist/css/translate/cascade.d.ts.map +1 -1
  571. package/dist/css/translate/cascade.js +4 -1
  572. package/dist/css/translate/cascade.js.map +1 -1
  573. package/dist/css/translate/easing.d.ts +2 -0
  574. package/dist/css/translate/easing.d.ts.map +1 -1
  575. package/dist/css/translate/easing.js +4 -0
  576. package/dist/css/translate/easing.js.map +1 -1
  577. package/dist/css/translate/font-face.d.ts +22 -0
  578. package/dist/css/translate/font-face.d.ts.map +1 -0
  579. package/dist/css/translate/font-face.js +76 -0
  580. package/dist/css/translate/font-face.js.map +1 -0
  581. package/dist/css/translate/handled-members.d.ts +7 -0
  582. package/dist/css/translate/handled-members.d.ts.map +1 -0
  583. package/dist/css/translate/handled-members.js +16 -0
  584. package/dist/css/translate/handled-members.js.map +1 -0
  585. package/dist/css/translate/lazy-groups.d.ts.map +1 -1
  586. package/dist/css/translate/lazy-groups.js +41 -1
  587. package/dist/css/translate/lazy-groups.js.map +1 -1
  588. package/dist/css/translate/linked-tracks.d.ts +13 -0
  589. package/dist/css/translate/linked-tracks.d.ts.map +1 -0
  590. package/dist/css/translate/linked-tracks.js +48 -0
  591. package/dist/css/translate/linked-tracks.js.map +1 -0
  592. package/dist/css/translate/scroll-link.d.ts +106 -0
  593. package/dist/css/translate/scroll-link.d.ts.map +1 -0
  594. package/dist/css/translate/scroll-link.js +222 -0
  595. package/dist/css/translate/scroll-link.js.map +1 -0
  596. package/dist/css/translate/scroll-timeline-properties.d.ts +46 -0
  597. package/dist/css/translate/scroll-timeline-properties.d.ts.map +1 -0
  598. package/dist/css/translate/scroll-timeline-properties.js +167 -0
  599. package/dist/css/translate/scroll-timeline-properties.js.map +1 -0
  600. package/dist/css/translate/shadow-mode.d.ts +24 -0
  601. package/dist/css/translate/shadow-mode.d.ts.map +1 -0
  602. package/dist/css/translate/shadow-mode.js +20 -0
  603. package/dist/css/translate/shadow-mode.js.map +1 -0
  604. package/dist/css/translate/shadow-properties.d.ts +50 -0
  605. package/dist/css/translate/shadow-properties.d.ts.map +1 -0
  606. package/dist/css/translate/shadow-properties.js +155 -0
  607. package/dist/css/translate/shadow-properties.js.map +1 -0
  608. package/dist/css/translate/shorthands.d.ts +4 -2
  609. package/dist/css/translate/shorthands.d.ts.map +1 -1
  610. package/dist/css/translate/shorthands.js +3 -2
  611. package/dist/css/translate/shorthands.js.map +1 -1
  612. package/dist/css/translate/state-properties.d.ts +52 -0
  613. package/dist/css/translate/state-properties.d.ts.map +1 -0
  614. package/dist/css/translate/state-properties.js +115 -0
  615. package/dist/css/translate/state-properties.js.map +1 -0
  616. package/dist/css/translate/surface-properties.d.ts +3 -1
  617. package/dist/css/translate/surface-properties.d.ts.map +1 -1
  618. package/dist/css/translate/surface-properties.js +21 -17
  619. package/dist/css/translate/surface-properties.js.map +1 -1
  620. package/dist/css/translate/translate.d.ts +3 -2
  621. package/dist/css/translate/translate.d.ts.map +1 -1
  622. package/dist/css/translate/translate.js +47 -13
  623. package/dist/css/translate/translate.js.map +1 -1
  624. package/dist/css/translate/type-ramp.d.ts +8 -0
  625. package/dist/css/translate/type-ramp.d.ts.map +1 -0
  626. package/dist/css/translate/type-ramp.js +59 -0
  627. package/dist/css/translate/type-ramp.js.map +1 -0
  628. package/dist/css/translate/types.d.ts +7 -0
  629. package/dist/css/translate/types.d.ts.map +1 -1
  630. package/dist/css/translate/typography-properties.d.ts +52 -0
  631. package/dist/css/translate/typography-properties.d.ts.map +1 -0
  632. package/dist/css/translate/typography-properties.js +430 -0
  633. package/dist/css/translate/typography-properties.js.map +1 -0
  634. package/dist/css/translate/unsupported-properties.d.ts +2 -0
  635. package/dist/css/translate/unsupported-properties.d.ts.map +1 -1
  636. package/dist/css/translate/unsupported-properties.js +7 -1
  637. package/dist/css/translate/unsupported-properties.js.map +1 -1
  638. package/dist/css/translate/view-transition-properties.d.ts +29 -0
  639. package/dist/css/translate/view-transition-properties.d.ts.map +1 -0
  640. package/dist/css/translate/view-transition-properties.js +53 -0
  641. package/dist/css/translate/view-transition-properties.js.map +1 -0
  642. package/dist/css/translate/winui-only-properties.d.ts.map +1 -1
  643. package/dist/css/translate/winui-only-properties.js +16 -1
  644. package/dist/css/translate/winui-only-properties.js.map +1 -1
  645. package/dist/css/typography.d.ts +2 -0
  646. package/dist/css/typography.d.ts.map +1 -0
  647. package/dist/css/typography.js +6 -0
  648. package/dist/css/typography.js.map +1 -0
  649. package/dist/css/validate/vscode-css-data.json +262 -1
  650. package/dist/css/validate/vscode-data.d.ts +5 -0
  651. package/dist/css/validate/vscode-data.d.ts.map +1 -1
  652. package/dist/css/validate/vscode-data.js +37 -0
  653. package/dist/css/validate/vscode-data.js.map +1 -1
  654. package/dist/css/view-transition.d.ts +13 -0
  655. package/dist/css/view-transition.d.ts.map +1 -0
  656. package/dist/css/view-transition.js +12 -0
  657. package/dist/css/view-transition.js.map +1 -0
  658. package/dist/css/visual-states.d.ts +7 -0
  659. package/dist/css/visual-states.d.ts.map +1 -0
  660. package/dist/css/visual-states.js +16 -0
  661. package/dist/css/visual-states.js.map +1 -0
  662. package/dist/devices/bindings.d.ts +4 -1
  663. package/dist/devices/bindings.d.ts.map +1 -1
  664. package/dist/devices/bindings.js +4 -1
  665. package/dist/devices/bindings.js.map +1 -1
  666. package/dist/devices/displays.svelte.d.ts.map +1 -1
  667. package/dist/devices/displays.svelte.js +2 -1
  668. package/dist/devices/displays.svelte.js.map +1 -1
  669. package/dist/devices/live.svelte.d.ts +3 -24
  670. package/dist/devices/live.svelte.d.ts.map +1 -1
  671. package/dist/devices/live.svelte.js +2 -40
  672. package/dist/devices/live.svelte.js.map +1 -1
  673. package/dist/devices/power.d.ts +5 -3
  674. package/dist/devices/power.d.ts.map +1 -1
  675. package/dist/devices/power.js +3 -2
  676. package/dist/devices/power.js.map +1 -1
  677. package/dist/devices/power.svelte.d.ts +27 -0
  678. package/dist/devices/power.svelte.d.ts.map +1 -1
  679. package/dist/devices/power.svelte.js +40 -0
  680. package/dist/devices/power.svelte.js.map +1 -1
  681. package/dist/devices/subscription.d.ts +35 -0
  682. package/dist/devices/subscription.d.ts.map +1 -0
  683. package/dist/devices/subscription.js +47 -0
  684. package/dist/devices/subscription.js.map +1 -0
  685. package/dist/devices/system-power.d.ts +54 -0
  686. package/dist/devices/system-power.d.ts.map +1 -0
  687. package/dist/devices/system-power.js +66 -0
  688. package/dist/devices/system-power.js.map +1 -0
  689. package/dist/enums.d.ts +11 -1
  690. package/dist/enums.d.ts.map +1 -1
  691. package/dist/enums.js +11 -1
  692. package/dist/enums.js.map +1 -1
  693. package/dist/font-files.d.ts +19 -0
  694. package/dist/font-files.d.ts.map +1 -0
  695. package/dist/font-files.js +55 -0
  696. package/dist/font-files.js.map +1 -0
  697. package/dist/font-registry.d.ts +24 -0
  698. package/dist/font-registry.d.ts.map +1 -0
  699. package/dist/font-registry.js +67 -0
  700. package/dist/font-registry.js.map +1 -0
  701. package/dist/font-spelling.d.ts +15 -0
  702. package/dist/font-spelling.d.ts.map +1 -0
  703. package/dist/font-spelling.js +27 -0
  704. package/dist/font-spelling.js.map +1 -0
  705. package/dist/forms/FormField.svelte +2 -1
  706. package/dist/index.d.ts +2 -0
  707. package/dist/index.d.ts.map +1 -1
  708. package/dist/index.js +1 -0
  709. package/dist/index.js.map +1 -1
  710. package/dist/input/active-element.svelte.d.ts +22 -0
  711. package/dist/input/active-element.svelte.d.ts.map +1 -0
  712. package/dist/input/active-element.svelte.js +32 -0
  713. package/dist/input/active-element.svelte.js.map +1 -0
  714. package/dist/input/dom-event.d.ts +93 -0
  715. package/dist/input/dom-event.d.ts.map +1 -0
  716. package/dist/input/dom-event.js +39 -0
  717. package/dist/input/dom-event.js.map +1 -0
  718. package/dist/input/events.d.ts +13 -0
  719. package/dist/input/events.d.ts.map +1 -0
  720. package/dist/input/events.js +187 -0
  721. package/dist/input/events.js.map +1 -0
  722. package/dist/input/focused-element.d.ts +18 -0
  723. package/dist/input/focused-element.d.ts.map +1 -0
  724. package/dist/input/focused-element.js +32 -0
  725. package/dist/input/focused-element.js.map +1 -0
  726. package/dist/input/index.d.ts +13 -0
  727. package/dist/input/index.d.ts.map +1 -0
  728. package/dist/input/index.js +7 -0
  729. package/dist/input/index.js.map +1 -0
  730. package/dist/input/key-names.d.ts +18 -0
  731. package/dist/input/key-names.d.ts.map +1 -0
  732. package/dist/input/key-names.js +182 -0
  733. package/dist/input/key-names.js.map +1 -0
  734. package/dist/input/keyboard-fields.d.ts +38 -0
  735. package/dist/input/keyboard-fields.d.ts.map +1 -0
  736. package/dist/input/keyboard-fields.js +43 -0
  737. package/dist/input/keyboard-fields.js.map +1 -0
  738. package/dist/input/move-focus.d.ts +19 -0
  739. package/dist/input/move-focus.d.ts.map +1 -0
  740. package/dist/input/move-focus.js +29 -0
  741. package/dist/input/move-focus.js.map +1 -0
  742. package/dist/input/pointer-capture.d.ts +47 -0
  743. package/dist/input/pointer-capture.d.ts.map +1 -0
  744. package/dist/input/pointer-capture.js +59 -0
  745. package/dist/input/pointer-capture.js.map +1 -0
  746. package/dist/input/pointer-fields.d.ts +118 -0
  747. package/dist/input/pointer-fields.d.ts.map +1 -0
  748. package/dist/input/pointer-fields.js +141 -0
  749. package/dist/input/pointer-fields.js.map +1 -0
  750. package/dist/input/pointer-routes.d.ts +13 -0
  751. package/dist/input/pointer-routes.d.ts.map +1 -0
  752. package/dist/input/pointer-routes.js +13 -0
  753. package/dist/input/pointer-routes.js.map +1 -0
  754. package/dist/input/trap-focus.d.ts +18 -0
  755. package/dist/input/trap-focus.d.ts.map +1 -0
  756. package/dist/input/trap-focus.js +45 -0
  757. package/dist/input/trap-focus.js.map +1 -0
  758. package/dist/key-code.d.ts +131 -0
  759. package/dist/key-code.d.ts.map +1 -0
  760. package/dist/key-code.js +134 -0
  761. package/dist/key-code.js.map +1 -0
  762. package/dist/messaging/page.d.ts +25 -0
  763. package/dist/messaging/page.d.ts.map +1 -0
  764. package/dist/messaging/page.js +43 -0
  765. package/dist/messaging/page.js.map +1 -0
  766. package/dist/messaging/web-view2/cookies.d.ts +53 -0
  767. package/dist/messaging/web-view2/cookies.d.ts.map +1 -0
  768. package/dist/messaging/web-view2/cookies.js +54 -0
  769. package/dist/messaging/web-view2/cookies.js.map +1 -0
  770. package/dist/messaging/web-view2/core.d.ts +101 -0
  771. package/dist/messaging/web-view2/core.d.ts.map +1 -0
  772. package/dist/messaging/web-view2/core.js +37 -0
  773. package/dist/messaging/web-view2/core.js.map +1 -0
  774. package/dist/messaging/web-view2/index.d.ts +9 -0
  775. package/dist/messaging/web-view2/index.d.ts.map +1 -0
  776. package/dist/messaging/web-view2/index.js +7 -0
  777. package/dist/messaging/web-view2/index.js.map +1 -0
  778. package/dist/messaging/web-view2/policy.d.ts +64 -0
  779. package/dist/messaging/web-view2/policy.d.ts.map +1 -0
  780. package/dist/messaging/web-view2/policy.js +96 -0
  781. package/dist/messaging/web-view2/policy.js.map +1 -0
  782. package/dist/messaging/web-view2/transport.d.ts +34 -0
  783. package/dist/messaging/web-view2/transport.d.ts.map +1 -0
  784. package/dist/messaging/web-view2/transport.js +109 -0
  785. package/dist/messaging/web-view2/transport.js.map +1 -0
  786. package/dist/notice/index.d.ts +4 -0
  787. package/dist/notice/index.d.ts.map +1 -0
  788. package/dist/notice/index.js +2 -0
  789. package/dist/notice/index.js.map +1 -0
  790. package/dist/notice/native.d.ts +18 -0
  791. package/dist/notice/native.d.ts.map +1 -0
  792. package/dist/notice/native.js +32 -0
  793. package/dist/notice/native.js.map +1 -0
  794. package/dist/notice/notice.d.ts +70 -0
  795. package/dist/notice/notice.d.ts.map +1 -0
  796. package/dist/notice/notice.js +95 -0
  797. package/dist/notice/notice.js.map +1 -0
  798. package/dist/renderer/host/connected-configuration.d.ts +23 -0
  799. package/dist/renderer/host/connected-configuration.d.ts.map +1 -0
  800. package/dist/renderer/host/connected-configuration.js +36 -0
  801. package/dist/renderer/host/connected-configuration.js.map +1 -0
  802. package/dist/renderer/host/control.d.ts +8 -0
  803. package/dist/renderer/host/control.d.ts.map +1 -1
  804. package/dist/renderer/host/control.js +7 -2
  805. package/dist/renderer/host/control.js.map +1 -1
  806. package/dist/renderer/host/element-animation.d.ts.map +1 -1
  807. package/dist/renderer/host/element-animation.js +2 -15
  808. package/dist/renderer/host/element-animation.js.map +1 -1
  809. package/dist/renderer/host/glide-height.d.ts +27 -0
  810. package/dist/renderer/host/glide-height.d.ts.map +1 -0
  811. package/dist/renderer/host/glide-height.js +106 -0
  812. package/dist/renderer/host/glide-height.js.map +1 -0
  813. package/dist/renderer/host/implicit-layout-animation.d.ts +50 -0
  814. package/dist/renderer/host/implicit-layout-animation.d.ts.map +1 -0
  815. package/dist/renderer/host/implicit-layout-animation.js +121 -0
  816. package/dist/renderer/host/implicit-layout-animation.js.map +1 -0
  817. package/dist/renderer/host/motion-preference.d.ts +19 -0
  818. package/dist/renderer/host/motion-preference.d.ts.map +1 -0
  819. package/dist/renderer/host/motion-preference.js +26 -0
  820. package/dist/renderer/host/motion-preference.js.map +1 -0
  821. package/dist/renderer/host/values.d.ts +1 -1
  822. package/dist/renderer/host/view-transition-names.d.ts +13 -0
  823. package/dist/renderer/host/view-transition-names.d.ts.map +1 -0
  824. package/dist/renderer/host/view-transition-names.js +25 -0
  825. package/dist/renderer/host/view-transition-names.js.map +1 -0
  826. package/dist/settings/SettingsCard.d.svelte.ts +12 -0
  827. package/dist/settings/SettingsCard.svelte +80 -0
  828. package/dist/settings/SettingsExpander.d.svelte.ts +12 -0
  829. package/dist/settings/SettingsExpander.svelte +46 -0
  830. package/dist/settings/SettingsRow.svelte +79 -0
  831. package/dist/settings/index.d.ts +5 -0
  832. package/dist/settings/index.d.ts.map +1 -0
  833. package/dist/settings/index.js +7 -0
  834. package/dist/settings/index.js.map +1 -0
  835. package/dist/settings/settings-context.d.ts +7 -0
  836. package/dist/settings/settings-context.d.ts.map +1 -0
  837. package/dist/settings/settings-context.js +11 -0
  838. package/dist/settings/settings-context.js.map +1 -0
  839. package/dist/settings/settings-props.d.ts +40 -0
  840. package/dist/settings/settings-props.d.ts.map +1 -0
  841. package/dist/settings/settings-props.js +3 -0
  842. package/dist/settings/settings-props.js.map +1 -0
  843. package/dist/store/bindings.d.ts +7 -0
  844. package/dist/store/bindings.d.ts.map +1 -0
  845. package/dist/store/bindings.js +10 -0
  846. package/dist/store/bindings.js.map +1 -0
  847. package/dist/store/identity.d.ts +24 -0
  848. package/dist/store/identity.d.ts.map +1 -0
  849. package/dist/store/identity.js +27 -0
  850. package/dist/store/identity.js.map +1 -0
  851. package/dist/store/index.d.ts +10 -0
  852. package/dist/store/index.d.ts.map +1 -0
  853. package/dist/store/index.js +8 -0
  854. package/dist/store/index.js.map +1 -0
  855. package/dist/store/license.d.ts +63 -0
  856. package/dist/store/license.d.ts.map +1 -0
  857. package/dist/store/license.js +95 -0
  858. package/dist/store/license.js.map +1 -0
  859. package/dist/store/packages.d.ts +45 -0
  860. package/dist/store/packages.d.ts.map +1 -0
  861. package/dist/store/packages.js +80 -0
  862. package/dist/store/packages.js.map +1 -0
  863. package/dist/store/reply.d.ts +26 -0
  864. package/dist/store/reply.d.ts.map +1 -0
  865. package/dist/store/reply.js +15 -0
  866. package/dist/store/reply.js.map +1 -0
  867. package/dist/store/startup.d.ts +23 -0
  868. package/dist/store/startup.d.ts.map +1 -0
  869. package/dist/store/startup.js +18 -0
  870. package/dist/store/startup.js.map +1 -0
  871. package/dist/store/states.d.ts +50 -0
  872. package/dist/store/states.d.ts.map +1 -0
  873. package/dist/store/states.js +56 -0
  874. package/dist/store/states.js.map +1 -0
  875. package/dist/store/types.d.ts +102 -0
  876. package/dist/store/types.d.ts.map +1 -0
  877. package/dist/store/types.js +2 -0
  878. package/dist/store/types.js.map +1 -0
  879. package/dist/store/updates.d.ts +23 -0
  880. package/dist/store/updates.d.ts.map +1 -0
  881. package/dist/store/updates.js +18 -0
  882. package/dist/store/updates.js.map +1 -0
  883. package/dist/store/window-interop.d.ts +10 -0
  884. package/dist/store/window-interop.d.ts.map +1 -0
  885. package/dist/store/window-interop.js +35 -0
  886. package/dist/store/window-interop.js.map +1 -0
  887. package/dist/store/windows-backend.d.ts +23 -0
  888. package/dist/store/windows-backend.d.ts.map +1 -0
  889. package/dist/store/windows-backend.js +26 -0
  890. package/dist/store/windows-backend.js.map +1 -0
  891. package/dist/store/windows-identity.d.ts +22 -0
  892. package/dist/store/windows-identity.d.ts.map +1 -0
  893. package/dist/store/windows-identity.js +51 -0
  894. package/dist/store/windows-identity.js.map +1 -0
  895. package/dist/store/windows-packages.d.ts +26 -0
  896. package/dist/store/windows-packages.d.ts.map +1 -0
  897. package/dist/store/windows-packages.js +70 -0
  898. package/dist/store/windows-packages.js.map +1 -0
  899. package/dist/store/windows-store.d.ts +47 -0
  900. package/dist/store/windows-store.d.ts.map +1 -0
  901. package/dist/store/windows-store.js +107 -0
  902. package/dist/store/windows-store.js.map +1 -0
  903. package/dist/tray/exit-hook.d.ts +3 -0
  904. package/dist/tray/exit-hook.d.ts.map +1 -0
  905. package/dist/tray/exit-hook.js +11 -0
  906. package/dist/tray/exit-hook.js.map +1 -0
  907. package/dist/tray/native.d.ts.map +1 -1
  908. package/dist/tray/native.js +5 -41
  909. package/dist/tray/native.js.map +1 -1
  910. package/dist/tray/standalone/index.d.ts +11 -0
  911. package/dist/tray/standalone/index.d.ts.map +1 -0
  912. package/dist/tray/standalone/index.js +6 -0
  913. package/dist/tray/standalone/index.js.map +1 -0
  914. package/dist/tray/standalone/native.d.ts +40 -0
  915. package/dist/tray/standalone/native.d.ts.map +1 -0
  916. package/dist/tray/standalone/native.js +96 -0
  917. package/dist/tray/standalone/native.js.map +1 -0
  918. package/dist/tray/standalone/standalone-tray.d.ts +44 -0
  919. package/dist/tray/standalone/standalone-tray.d.ts.map +1 -0
  920. package/dist/tray/standalone/standalone-tray.js +75 -0
  921. package/dist/tray/standalone/standalone-tray.js.map +1 -0
  922. package/dist/tray/tray-icon.d.ts.map +1 -1
  923. package/dist/tray/tray-icon.js +3 -6
  924. package/dist/tray/tray-icon.js.map +1 -1
  925. package/dist/web-apis/animations.d.ts +2 -5
  926. package/dist/web-apis/animations.d.ts.map +1 -1
  927. package/dist/web-apis/animations.js +1 -20
  928. package/dist/web-apis/animations.js.map +1 -1
  929. package/dist/web-apis/atomic-file.d.ts +19 -0
  930. package/dist/web-apis/atomic-file.d.ts.map +1 -0
  931. package/dist/web-apis/atomic-file.js +28 -0
  932. package/dist/web-apis/atomic-file.js.map +1 -0
  933. package/dist/web-apis/badge-glyph.d.ts +19 -0
  934. package/dist/web-apis/badge-glyph.d.ts.map +1 -0
  935. package/dist/web-apis/badge-glyph.js +17 -0
  936. package/dist/web-apis/badge-glyph.js.map +1 -0
  937. package/dist/web-apis/badging.d.ts +8 -18
  938. package/dist/web-apis/badging.d.ts.map +1 -1
  939. package/dist/web-apis/badging.js +25 -17
  940. package/dist/web-apis/badging.js.map +1 -1
  941. package/dist/web-apis/contacts.d.ts +1 -1
  942. package/dist/web-apis/fonts.d.ts +113 -0
  943. package/dist/web-apis/fonts.d.ts.map +1 -0
  944. package/dist/web-apis/fonts.js +237 -0
  945. package/dist/web-apis/fonts.js.map +1 -0
  946. package/dist/web-apis/geolocation.d.ts +1 -1
  947. package/dist/web-apis/keyframe-input.d.ts +15 -0
  948. package/dist/web-apis/keyframe-input.d.ts.map +1 -0
  949. package/dist/web-apis/keyframe-input.js +30 -0
  950. package/dist/web-apis/keyframe-input.js.map +1 -0
  951. package/dist/web-apis/notification.d.ts +48 -1
  952. package/dist/web-apis/notification.d.ts.map +1 -1
  953. package/dist/web-apis/notification.js +98 -4
  954. package/dist/web-apis/notification.js.map +1 -1
  955. package/dist/web-apis/page.d.ts +20 -4
  956. package/dist/web-apis/page.d.ts.map +1 -1
  957. package/dist/web-apis/page.js +54 -8
  958. package/dist/web-apis/page.js.map +1 -1
  959. package/dist/web-apis/scroll-timeline.d.ts +127 -0
  960. package/dist/web-apis/scroll-timeline.d.ts.map +1 -0
  961. package/dist/web-apis/scroll-timeline.js +415 -0
  962. package/dist/web-apis/scroll-timeline.js.map +1 -0
  963. package/dist/web-apis/view-transitions.d.ts +80 -0
  964. package/dist/web-apis/view-transitions.d.ts.map +1 -0
  965. package/dist/web-apis/view-transitions.js +299 -0
  966. package/dist/web-apis/view-transitions.js.map +1 -0
  967. package/dist/web-apis/web-storage.d.ts +1 -18
  968. package/dist/web-apis/web-storage.d.ts.map +1 -1
  969. package/dist/web-apis/web-storage.js +1 -26
  970. package/dist/web-apis/web-storage.js.map +1 -1
  971. package/dist/web-apis/window-controls-overlay.d.ts +105 -0
  972. package/dist/web-apis/window-controls-overlay.d.ts.map +1 -0
  973. package/dist/web-apis/window-controls-overlay.js +147 -0
  974. package/dist/web-apis/window-controls-overlay.js.map +1 -0
  975. package/dist/win2d/child-slot.d.ts +13 -0
  976. package/dist/win2d/child-slot.d.ts.map +1 -0
  977. package/dist/win2d/child-slot.js +29 -0
  978. package/dist/win2d/child-slot.js.map +1 -0
  979. package/dist/win2d/context-2d/pointer-events.d.ts +1 -2
  980. package/dist/win2d/context-2d/pointer-events.d.ts.map +1 -1
  981. package/dist/win2d/context-2d/pointer-events.js +13 -102
  982. package/dist/win2d/context-2d/pointer-events.js.map +1 -1
  983. package/dist/win2d/element-lifecycle.d.ts +37 -0
  984. package/dist/win2d/element-lifecycle.d.ts.map +1 -0
  985. package/dist/win2d/element-lifecycle.js +73 -0
  986. package/dist/win2d/element-lifecycle.js.map +1 -0
  987. package/dist/win2d/element-shadow.d.ts +26 -0
  988. package/dist/win2d/element-shadow.d.ts.map +1 -0
  989. package/dist/win2d/element-shadow.js +128 -0
  990. package/dist/win2d/element-shadow.js.map +1 -0
  991. package/dist/win2d/element-visual.d.ts +1 -3
  992. package/dist/win2d/element-visual.d.ts.map +1 -1
  993. package/dist/win2d/element-visual.js +18 -72
  994. package/dist/win2d/element-visual.js.map +1 -1
  995. package/dist/win2d/scroll-host.d.ts +27 -0
  996. package/dist/win2d/scroll-host.d.ts.map +1 -0
  997. package/dist/win2d/scroll-host.js +293 -0
  998. package/dist/win2d/scroll-host.js.map +1 -0
  999. package/dist/win2d/scroll-link.d.ts +57 -0
  1000. package/dist/win2d/scroll-link.d.ts.map +1 -0
  1001. package/dist/win2d/scroll-link.js +165 -0
  1002. package/dist/win2d/scroll-link.js.map +1 -0
  1003. package/dist/win2d/shadow-geometry.d.ts +46 -0
  1004. package/dist/win2d/shadow-geometry.d.ts.map +1 -0
  1005. package/dist/win2d/shadow-geometry.js +82 -0
  1006. package/dist/win2d/shadow-geometry.js.map +1 -0
  1007. package/dist/win2d/shadow-host.d.ts +13 -0
  1008. package/dist/win2d/shadow-host.d.ts.map +1 -0
  1009. package/dist/win2d/shadow-host.js +23 -0
  1010. package/dist/win2d/shadow-host.js.map +1 -0
  1011. package/dist/win2d/shadow-receivers.d.ts +13 -0
  1012. package/dist/win2d/shadow-receivers.d.ts.map +1 -0
  1013. package/dist/win2d/shadow-receivers.js +56 -0
  1014. package/dist/win2d/shadow-receivers.js.map +1 -0
  1015. package/dist/win32-calls.d.ts +3 -1
  1016. package/dist/win32-calls.d.ts.map +1 -1
  1017. package/dist/win32-calls.js +3 -2
  1018. package/dist/win32-calls.js.map +1 -1
  1019. package/dist/win32-icons.d.ts +36 -0
  1020. package/dist/win32-icons.d.ts.map +1 -0
  1021. package/dist/win32-icons.js +143 -0
  1022. package/dist/win32-icons.js.map +1 -0
  1023. package/dist/window/apply-chrome.d.ts +8 -1
  1024. package/dist/window/apply-chrome.d.ts.map +1 -1
  1025. package/dist/window/apply-chrome.js +16 -2
  1026. package/dist/window/apply-chrome.js.map +1 -1
  1027. package/dist/window/badge-icon.d.ts +37 -0
  1028. package/dist/window/badge-icon.d.ts.map +1 -0
  1029. package/dist/window/badge-icon.js +196 -0
  1030. package/dist/window/badge-icon.js.map +1 -0
  1031. package/dist/window/chrome.d.ts +10 -0
  1032. package/dist/window/chrome.d.ts.map +1 -1
  1033. package/dist/window/chrome.js +8 -0
  1034. package/dist/window/chrome.js.map +1 -1
  1035. package/dist/window/index.d.ts +1 -1
  1036. package/dist/window/index.d.ts.map +1 -1
  1037. package/dist/window/index.js +1 -1
  1038. package/dist/window/index.js.map +1 -1
  1039. package/dist/window/message-hooks.d.ts +26 -0
  1040. package/dist/window/message-hooks.d.ts.map +1 -0
  1041. package/dist/window/message-hooks.js +46 -0
  1042. package/dist/window/message-hooks.js.map +1 -0
  1043. package/dist/window/message-pump.d.ts +3 -1
  1044. package/dist/window/message-pump.d.ts.map +1 -1
  1045. package/dist/window/message-pump.js +4 -1
  1046. package/dist/window/message-pump.js.map +1 -1
  1047. package/dist/window/native.d.ts +38 -0
  1048. package/dist/window/native.d.ts.map +1 -1
  1049. package/dist/window/native.js +134 -6
  1050. package/dist/window/native.js.map +1 -1
  1051. package/dist/window/reduced-motion.d.ts +7 -0
  1052. package/dist/window/reduced-motion.d.ts.map +1 -0
  1053. package/dist/window/reduced-motion.js +15 -0
  1054. package/dist/window/reduced-motion.js.map +1 -0
  1055. package/dist/window/system-dispatcher-queue.d.ts +7 -0
  1056. package/dist/window/system-dispatcher-queue.d.ts.map +1 -0
  1057. package/dist/window/system-dispatcher-queue.js +56 -0
  1058. package/dist/window/system-dispatcher-queue.js.map +1 -0
  1059. package/dist/window/taskbar-calls.d.ts +58 -0
  1060. package/dist/window/taskbar-calls.d.ts.map +1 -0
  1061. package/dist/window/taskbar-calls.js +77 -0
  1062. package/dist/window/taskbar-calls.js.map +1 -0
  1063. package/dist/window/taskbar-native.d.ts +9 -0
  1064. package/dist/window/taskbar-native.d.ts.map +1 -0
  1065. package/dist/window/taskbar-native.js +119 -0
  1066. package/dist/window/taskbar-native.js.map +1 -0
  1067. package/dist/window/taskbar.d.ts +104 -0
  1068. package/dist/window/taskbar.d.ts.map +1 -0
  1069. package/dist/window/taskbar.js +117 -0
  1070. package/dist/window/taskbar.js.map +1 -0
  1071. package/dist/window/transparent-backdrop.d.ts +7 -0
  1072. package/dist/window/transparent-backdrop.d.ts.map +1 -1
  1073. package/dist/window/transparent-backdrop.js +37 -1
  1074. package/dist/window/transparent-backdrop.js.map +1 -1
  1075. package/dist/window/window-handle.d.ts +17 -0
  1076. package/dist/window/window-handle.d.ts.map +1 -1
  1077. package/dist/window/window-handle.js +32 -0
  1078. package/dist/window/window-handle.js.map +1 -1
  1079. package/dist/window/window-host.svelte.d.ts +17 -1
  1080. package/dist/window/window-host.svelte.d.ts.map +1 -1
  1081. package/dist/window/window-host.svelte.js +52 -4
  1082. package/dist/window/window-host.svelte.js.map +1 -1
  1083. package/dist/window/window-state-keeper.d.ts +49 -0
  1084. package/dist/window/window-state-keeper.d.ts.map +1 -0
  1085. package/dist/window/window-state-keeper.js +164 -0
  1086. package/dist/window/window-state-keeper.js.map +1 -0
  1087. package/dist/window/window-state.d.ts +83 -0
  1088. package/dist/window/window-state.d.ts.map +1 -0
  1089. package/dist/window/window-state.js +155 -0
  1090. package/dist/window/window-state.js.map +1 -0
  1091. package/dist/winui.d.ts +2 -0
  1092. package/dist/winui.d.ts.map +1 -1
  1093. package/dist/winui.js +2 -0
  1094. package/dist/winui.js.map +1 -1
  1095. package/package.json +99 -1
  1096. package/src/accessibility/announce.ts +67 -0
  1097. package/src/accessibility/audit/audit-tree.ts +199 -0
  1098. package/src/accessibility/audit/contrast.ts +149 -0
  1099. package/src/accessibility/audit/index.ts +27 -0
  1100. package/src/accessibility/audit/rules.ts +110 -0
  1101. package/src/accessibility/audit/visual-tree-host.ts +179 -0
  1102. package/src/accessibility/index.ts +8 -0
  1103. package/src/accessibility/live-priority.ts +32 -0
  1104. package/src/accessibility/live-region.ts +27 -0
  1105. package/src/accessibility/notification.ts +35 -0
  1106. package/src/app/activate.ts +88 -0
  1107. package/src/app/activation/classify.ts +130 -0
  1108. package/src/app/activation/command.ts +83 -0
  1109. package/src/app/activation/context.ts +29 -0
  1110. package/src/app/activation/index.ts +10 -0
  1111. package/src/app/activation/kinds.ts +63 -0
  1112. package/src/app/activation/login.ts +90 -0
  1113. package/src/app/activation/native.ts +301 -0
  1114. package/src/app/activation/protocol-handlers.ts +83 -0
  1115. package/src/app/activation/receive.ts +106 -0
  1116. package/src/app/activation/registration.ts +305 -0
  1117. package/src/app/activation/registry.ts +26 -0
  1118. package/src/app/activation/scheme.ts +115 -0
  1119. package/src/app/hotkeys/errors.ts +30 -0
  1120. package/src/app/hotkeys/index.ts +76 -0
  1121. package/src/app/hotkeys/keys.ts +194 -0
  1122. package/src/app/hotkeys/native.ts +36 -0
  1123. package/src/app/hotkeys/registry.ts +153 -0
  1124. package/src/app/index.ts +6 -0
  1125. package/src/app/launch-command.ts +80 -0
  1126. package/src/app/native.ts +58 -0
  1127. package/src/app/notification-schedule.ts +25 -0
  1128. package/src/app/notification-source.ts +23 -8
  1129. package/src/app/notify.ts +65 -10
  1130. package/src/app/relaunch.ts +79 -0
  1131. package/src/app/restart-after-crash.ts +111 -0
  1132. package/src/app/schedule-bindings.ts +3 -0
  1133. package/src/app/windows-time.ts +13 -0
  1134. package/src/components/convert.ts +3 -2
  1135. package/src/components/generated/bindings.ts +1 -0
  1136. package/src/components/generated/enums.ts +3 -0
  1137. package/src/components/index.ts +1 -1
  1138. package/src/components/runtime.svelte.ts +18 -6
  1139. package/src/composition/animate.ts +263 -0
  1140. package/src/composition/expression.ts +492 -0
  1141. package/src/composition/index.ts +36 -0
  1142. package/src/composition/property-set.ts +104 -0
  1143. package/src/composition/spring.ts +57 -0
  1144. package/src/composition/targets.ts +74 -0
  1145. package/src/css/API.md +321 -2
  1146. package/src/css/index.ts +2 -0
  1147. package/src/css/parse/box-shadow.ts +90 -0
  1148. package/src/css/parse/filters.ts +1 -1
  1149. package/src/css/parse/parser.ts +1 -1
  1150. package/src/css/parse/scroll-timeline.ts +373 -0
  1151. package/src/css/runtime/resources.ts +2 -2
  1152. package/src/css/runtime/runtime.ts +52 -16
  1153. package/src/css/runtime/sheet-module.ts +31 -11
  1154. package/src/css/runtime/visual-state-native.ts +161 -0
  1155. package/src/css/runtime/visual-states.ts +117 -0
  1156. package/src/css/scroll-timeline.ts +12 -0
  1157. package/src/css/shadow.ts +12 -0
  1158. package/src/css/translate/animation-properties.ts +240 -15
  1159. package/src/css/translate/build-shorthands.ts +5 -3
  1160. package/src/css/translate/cascade.ts +5 -1
  1161. package/src/css/translate/easing.ts +5 -0
  1162. package/src/css/translate/font-face.ts +97 -0
  1163. package/src/css/translate/handled-members.ts +16 -0
  1164. package/src/css/translate/lazy-groups.ts +43 -1
  1165. package/src/css/translate/linked-tracks.ts +56 -0
  1166. package/src/css/translate/scroll-link.ts +317 -0
  1167. package/src/css/translate/scroll-timeline-properties.ts +222 -0
  1168. package/src/css/translate/shadow-mode.ts +29 -0
  1169. package/src/css/translate/shadow-properties.ts +199 -0
  1170. package/src/css/translate/shorthands.ts +4 -3
  1171. package/src/css/translate/state-properties.ts +151 -0
  1172. package/src/css/translate/surface-properties.ts +22 -17
  1173. package/src/css/translate/translate.ts +69 -17
  1174. package/src/css/translate/type-ramp.ts +65 -0
  1175. package/src/css/translate/types.ts +8 -0
  1176. package/src/css/translate/typography-properties.ts +533 -0
  1177. package/src/css/translate/unsupported-properties.ts +8 -1
  1178. package/src/css/translate/view-transition-properties.ts +70 -0
  1179. package/src/css/translate/winui-only-properties.ts +16 -1
  1180. package/src/css/typography.ts +6 -0
  1181. package/src/css/validate/vscode-data.ts +44 -0
  1182. package/src/css/view-transition.ts +13 -0
  1183. package/src/css/visual-states.ts +17 -0
  1184. package/src/devices/bindings.ts +4 -1
  1185. package/src/devices/displays.svelte.ts +2 -1
  1186. package/src/devices/live.svelte.ts +4 -54
  1187. package/src/devices/power.svelte.ts +51 -0
  1188. package/src/devices/power.ts +12 -3
  1189. package/src/devices/subscription.ts +60 -0
  1190. package/src/devices/system-power.ts +95 -0
  1191. package/src/enums.ts +11 -1
  1192. package/src/font-files.ts +68 -0
  1193. package/src/font-registry.ts +79 -0
  1194. package/src/font-spelling.ts +29 -0
  1195. package/src/index.ts +2 -0
  1196. package/src/input/active-element.svelte.ts +44 -0
  1197. package/src/input/dom-event.ts +121 -0
  1198. package/src/input/events.ts +272 -0
  1199. package/src/input/focused-element.ts +34 -0
  1200. package/src/input/index.ts +12 -0
  1201. package/src/input/key-names.ts +231 -0
  1202. package/src/input/keyboard-fields.ts +71 -0
  1203. package/src/input/move-focus.ts +35 -0
  1204. package/src/input/pointer-capture.ts +92 -0
  1205. package/src/input/pointer-fields.ts +212 -0
  1206. package/src/input/pointer-routes.ts +16 -0
  1207. package/src/input/trap-focus.ts +56 -0
  1208. package/src/key-code.ts +139 -0
  1209. package/src/messaging/page.ts +61 -0
  1210. package/src/messaging/web-view2/cookies.ts +109 -0
  1211. package/src/messaging/web-view2/core.ts +126 -0
  1212. package/src/messaging/web-view2/index.ts +14 -0
  1213. package/src/messaging/web-view2/policy.ts +127 -0
  1214. package/src/messaging/web-view2/transport.ts +137 -0
  1215. package/src/notice/index.ts +3 -0
  1216. package/src/notice/native.ts +48 -0
  1217. package/src/notice/notice.ts +148 -0
  1218. package/src/renderer/host/connected-configuration.ts +49 -0
  1219. package/src/renderer/host/control.ts +7 -2
  1220. package/src/renderer/host/element-animation.ts +2 -16
  1221. package/src/renderer/host/glide-height.ts +147 -0
  1222. package/src/renderer/host/implicit-layout-animation.ts +190 -0
  1223. package/src/renderer/host/motion-preference.ts +31 -0
  1224. package/src/renderer/host/view-transition-names.ts +30 -0
  1225. package/src/settings/SettingsCard.d.svelte.ts +12 -0
  1226. package/src/settings/SettingsExpander.d.svelte.ts +12 -0
  1227. package/src/settings/index.ts +9 -0
  1228. package/src/settings/settings-context.ts +13 -0
  1229. package/src/settings/settings-props.ts +57 -0
  1230. package/src/store/bindings.ts +11 -0
  1231. package/src/store/identity.ts +36 -0
  1232. package/src/store/index.ts +21 -0
  1233. package/src/store/license.ts +136 -0
  1234. package/src/store/packages.ts +94 -0
  1235. package/src/store/reply.ts +29 -0
  1236. package/src/store/startup.ts +29 -0
  1237. package/src/store/states.ts +72 -0
  1238. package/src/store/types.ts +122 -0
  1239. package/src/store/updates.ts +29 -0
  1240. package/src/store/window-interop.ts +40 -0
  1241. package/src/store/windows-backend.ts +27 -0
  1242. package/src/store/windows-identity.ts +58 -0
  1243. package/src/store/windows-packages.ts +91 -0
  1244. package/src/store/windows-store.ts +126 -0
  1245. package/src/tray/exit-hook.ts +13 -0
  1246. package/src/tray/native.ts +5 -41
  1247. package/src/tray/standalone/index.ts +16 -0
  1248. package/src/tray/standalone/native.ts +144 -0
  1249. package/src/tray/standalone/standalone-tray.ts +124 -0
  1250. package/src/tray/tray-icon.ts +3 -8
  1251. package/src/web-apis/animations.ts +4 -31
  1252. package/src/web-apis/atomic-file.ts +36 -0
  1253. package/src/web-apis/badge-glyph.ts +18 -0
  1254. package/src/web-apis/badging.ts +37 -19
  1255. package/src/web-apis/fonts.ts +277 -0
  1256. package/src/web-apis/keyframe-input.ts +43 -0
  1257. package/src/web-apis/notification.ts +114 -4
  1258. package/src/web-apis/page.ts +70 -8
  1259. package/src/web-apis/scroll-timeline.ts +544 -0
  1260. package/src/web-apis/view-transitions.ts +409 -0
  1261. package/src/web-apis/web-storage.ts +2 -35
  1262. package/src/web-apis/window-controls-overlay.ts +213 -0
  1263. package/src/win2d/child-slot.ts +43 -0
  1264. package/src/win2d/context-2d/pointer-events.ts +14 -119
  1265. package/src/win2d/element-lifecycle.ts +97 -0
  1266. package/src/win2d/element-shadow.ts +167 -0
  1267. package/src/win2d/element-visual.ts +19 -84
  1268. package/src/win2d/scroll-host.ts +364 -0
  1269. package/src/win2d/scroll-link.ts +227 -0
  1270. package/src/win2d/shadow-geometry.ts +98 -0
  1271. package/src/win2d/shadow-host.ts +26 -0
  1272. package/src/win2d/shadow-receivers.ts +82 -0
  1273. package/src/win32-calls.ts +6 -2
  1274. package/src/win32-icons.ts +162 -0
  1275. package/src/window/apply-chrome.ts +22 -0
  1276. package/src/window/badge-icon.ts +234 -0
  1277. package/src/window/chrome.ts +12 -0
  1278. package/src/window/index.ts +1 -1
  1279. package/src/window/message-hooks.ts +63 -0
  1280. package/src/window/message-pump.ts +8 -1
  1281. package/src/window/native.ts +162 -6
  1282. package/src/window/reduced-motion.ts +14 -0
  1283. package/src/window/system-dispatcher-queue.ts +61 -0
  1284. package/src/window/taskbar-calls.ts +111 -0
  1285. package/src/window/taskbar-native.ts +140 -0
  1286. package/src/window/taskbar.ts +174 -0
  1287. package/src/window/transparent-backdrop.ts +38 -1
  1288. package/src/window/window-handle.ts +36 -0
  1289. package/src/window/window-host.svelte.ts +90 -4
  1290. package/src/window/window-state-keeper.ts +205 -0
  1291. package/src/window/window-state.ts +207 -0
  1292. package/src/winui.ts +2 -0
  1293. package/web-types.json +7482 -37
package/API.md CHANGED
@@ -12,16 +12,23 @@ monorepo needs no build step (the repository is a pnpm workspace, see
12
12
 
13
13
  | Specifier | File | What |
14
14
  |---|---|---|
15
- | `winui-svelte` | `src/index.ts` | `control`, `withControl`, `elementRef`, `elementSize`, `elementTheme`, `focusElement`, `mountControl`, `registerControls`, `setClassHandler`, `dispatch` / `flush` / `onFlush`, the value helpers |
15
+ | `winui-svelte` | `src/index.ts` | `control`, `withControl`, `elementRef`, `elementSize`, `elementTheme`, `focusElement`, `glideHeight`, `mountControl`, `registerControls`, `setClassHandler`, `dispatch` / `flush` / `onFlush`, the value helpers |
16
16
  | `winui-svelte/components` | `src/components/generated/index.ts` | every WinUI 3 control as a component (`StackPanel`, `ToggleSwitch`, ...) and its props type (`ToggleSwitchComponentProps`); `xamlOf`, `goToState`, `installXaml`, `resourceDictionaryOf`; importing it registers the generated bindings with the renderer |
17
17
  | `winui-svelte/state` | `src/state/index.ts` | `createHostChannel()` (its `messaging` is the typed link), `hostState()`, `StateProtocol`, the transports (stdio, MessagePort, in-memory), `diff` / `applyOps` (see `src/state/README.md`) |
18
18
  | `winui-svelte/host` | `src/renderer/host/host.ts` | `renderer`, the renderer WinUI controls are built through (`mountControl` makes it the active one), and the mount-target plumbing below; not for app code |
19
+ | `winui-svelte/scroll-timeline` | `src/web-apis/scroll-timeline.ts` | `installScrollTimeline()`: `ScrollTimeline`, `ViewTimeline` and `element.animate(keyframes, { timeline })` over Composition (the CSS side is `winui-svelte/css/scroll-timeline`, which a sheet that uses `animation-timeline` imports) |
20
+ | `winui-svelte/view-transitions` | `src/web-apis/view-transitions.ts` | `installViewTransitions()`: `document.startViewTransition` and `ViewTransition` over WinUI's connected animations (the CSS side is `winui-svelte/css/view-transition`, which a sheet or style attribute that sets `view-transition-name` imports) |
19
21
  | `winui-svelte/element-animation` | `src/renderer/host/element-animation.ts` | `enableElementAnimation()`: what Svelte's `transition:`, `in:`, `out:`, `animate:` and `svelte/motion` ask of an element, on WinUI controls (the Vite plugin calls it from a component that uses them; otherwise not bundled) |
20
22
  | `winui-svelte/attached-owners` | `src/components/attached-owners.ts` | `preloadAttachedOwners(names)`: loads the modules attached properties (`canvasLeft`, `gridRow`) are written through (the Vite plugin calls it from a component whose markup or script names one, so the property is set with the control; a prop named nowhere, built from a computed key, needs `await preloadAttachedOwners(["Canvas"])` first, or its control throws) |
23
+ | `winui-svelte/settings` | `src/settings/index.ts` | `SettingsCard`, `SettingsExpander`: Fluent settings cards after the Community Toolkit's (opt-in) |
24
+ | `winui-svelte/implicit-layout-animation` | `src/renderer/host/implicit-layout-animation.ts` | `implicitLayoutAnimation({ duration, easing })`, `LayoutEasing`: children slide to their new places when the layout moves them (opt-in) |
21
25
  | `winui-svelte/connected-animation` | `src/renderer/host/connected-animation.ts` | `connectElement({ key, element })`, `startConnected({ key, element })`: WinUI's connected animation between two pages (opt-in) |
26
+ | `winui-svelte/composition` | `src/composition/index.ts` | `animateOnCompositor`, `compositorAnimation`, `visualReference`, `createPropertySet`, the typed expression builder and `scalarSpring` / `vector2Spring` / `vector3Spring`: expression and spring animations on the compositor (opt-in, see "Composition animations") |
22
27
  | `winui-svelte/keyed-list` | `src/renderer/list/keyed-list.ts` | `syncKeyed()`: sync a native collection to wanted keys, touching only what changed |
23
28
  | `winui-svelte/state` | `src/state/index.ts` | `createHostChannel()`, `hostState()`, the transports (see `src/state/README.md`) |
24
29
  | `winui-svelte/messaging` | `src/messaging/index.ts` | `defineMessaging(transport)`: typed `sendMessage` / `onMessage` over a ProtocolMap, as @webext-core/messaging; the state channel is built on it |
30
+ | `winui-svelte/messaging/web-view2` | `src/messaging/web-view2/index.ts` | `webView2Transport({ control })` and the typed `CoreWebView2` helpers (opt-in, see "WebView2 bridge") |
31
+ | `winui-svelte/messaging/page` | `src/messaging/page.ts` | `createPageTransport()`: the web page's end of the link, no WinUI import, safe for a browser bundle |
25
32
  | `winui-svelte/vite` | `src/vite/index.ts` | `winuiSvelte()` Vite plugin, `startModuleServer()`, `buildApp()` (the production bundle), compile-error formatting |
26
33
  | `winui-svelte/dev` | `src/dev/index.ts` | `startDev()`, the dev loop in one call: Windows App SDK, dev server and the window's thread |
27
34
  | `winui-svelte/runner` | `src/vite/runner.ts` | `createWindowModuleRunner()`, the window thread's side of the module server |
@@ -30,14 +37,20 @@ monorepo needs no build step (the repository is a pnpm workspace, see
30
37
  | `winui-svelte/bootstrap` | `src/window/bootstrap.ts` | `initWindowsAppSdk()`; imports nothing of WinRT, safe on the host's main thread |
31
38
  | `winui-svelte/thread` | `src/window/thread.ts` | `runOnUiThread()`; imports only dynwinrt, so the apartment comes first |
32
39
  | `winui-svelte/window` | `src/window/index.ts` | `runWindow()`, `exitApplication()`, `createWindow()`, `startTimer()`, `systemSettings()`, the picker options (see App services) |
33
- | `winui-svelte/app` | `src/app/index.ts` | `ensureSingleInstance()`, `notify()` (opt-in; see App lifecycle) |
40
+ | `winui-svelte/app` | `src/app/index.ts` | `ensureSingleInstance()`, `notify()`, `activateInstance()`, `activateOrLaunch()`, `launchApp()`, `relaunch()`, `restartAfterCrash()` (opt-in; see App lifecycle) |
41
+ | `winui-svelte/app/activation` | `src/app/activation/index.ts` | `installProtocolHandlers()`, `registerFileTypes()`, `launchAtLogin()`, `startActivation()`, `ActivationKind` (opt-in; see Activation) |
34
42
  | `winui-svelte/data-transfer` | `src/data-transfer/index.ts` | `enableDragEvents()`, `dropzone`, `draggable`, `filePicker`, `pickFiles`, `pickSaveFile`, `clipboard`, `launchUri` / `launchFile` / `openFolder` / `revealInExplorer`, `share`, `NativeFile`, `DataTransfer`, `DragEvent` (opt-in; see Data transfer) |
43
+ | `winui-svelte/input` | `src/input/index.ts` | `enableInputEvents()`, `setPointerCapture` / `releasePointerCapture` / `hasPointerCapture`, `activeElement()`, `moveFocus()`, `trapFocus()`, `PointerType`, `PointerEvent` / `WheelEvent` / `KeyboardEvent` / `FocusEvent` (opt-in; see Input events and focus) |
35
44
  | `winui-svelte/media` | `src/media/index.ts` | `bitmapImageOf()`, `svgImageSourceOf()`, `decodeDataUri()`, `createMediaPlayer()`, `mediaSourceOfBytes()`, `observePlayback()`, `PlaybackState` (opt-in; see Media) |
36
45
  | `winui-svelte/win2d` | `src/win2d/index.ts` | `Canvas`, the Win2D controls, the drawing helpers and Win2D classes, `applyEffect` (opt-in; see Win2D) |
37
46
  | `winui-svelte/enums` | `src/enums.ts` | every closed set a prop or option takes: WinUI's enums, `ThemeBrush`, `ColorKeyword`, `Backdrop`, `WindowTheme`, `TrayBalloonIcon` and the rest (see Closed sets) |
38
47
  | `winui-svelte/win2d/context-2d` | `src/win2d/context-2d/index.ts` | `Canvas2D`, `createCanvas2D`, `CanvasElement`, `Context2D`, `Path2D` and the rest of the HTML Canvas 2D API over Win2D (opt-in; see Canvas 2D) |
39
48
  | `winui-svelte/tray` | `src/tray/index.ts` | `TrayIcon` (with its `menu`), `createTrayIcon()`, `placeMenuWindow()`, `hideToTray()`, `restoreFromTray()`, `toggleInTray()`, `removeAllTrayIcons()`, `TrayGesture` (opt-in; see System tray) |
49
+ | `winui-svelte/tray/standalone` | `src/tray/standalone/index.ts` | `createStandaloneTray()`, `NativeMenuEntryKind`, and the `winui-svelte/app` calls that start or signal the app: a tray with no window, no WinUI and no components (opt-in; see Tray with no window) |
50
+ | `winui-svelte/notice` | `src/notice/index.ts` | `showNotice()`, `NoticeIcon`, `NoticeButtons`, `NoticeButton`: a message box with no window or app (opt-in; see Notice with no app) |
40
51
  | `winui-svelte/forms` | `src/forms/index.ts` | `Form`, `FormField`, `textField`, `numberField`, `selectField` and the other field attachments, `formButton`, `FormValues`, `validityOf` (opt-in; see Forms) |
52
+ | `winui-svelte/store` | `src/store/index.ts` | `getAppLicense`, `watchLicense`, `checkForUpdates`, `watchPackages`, `getStartupTask`, `getPackageInfo`: the Store and package APIs, answering `hasPackage: false` outside a package (opt-in) |
53
+ | `winui-svelte/accessibility`, `/accessibility/audit` | `src/accessibility/index.ts`, `src/accessibility/audit/index.ts` | `announce`, `liveRegion`, `LivePriority`; `auditAccessibility`, `accessibilityRules` (opt-in; see Accessibility) |
41
54
  | `winui-svelte/devices` | `src/devices/index.ts` | device enumeration, input devices, Bluetooth, printers, power, network, display, audio, gamepads and sensors, each also at `winui-svelte/devices/<area>` (opt-in; see Windows devices) |
42
55
 
43
56
  The table is the source layout: `exports` point at `.ts` files so the monorepo
@@ -197,6 +210,57 @@ handed over as it is and read once, when the element is made)
197
210
  A property that
198
211
  changes is set through `{@attach control(...)}`, as components do
199
212
 
213
+ ## Wrapping chips
214
+
215
+ CSS `flex-wrap: wrap` has no WinUI panel to become: the element's tag decides
216
+ the panel, the build does not swap it, and `flex-wrap` stays a build error whose
217
+ message names the two ways below (WinUI 3 has no `WrapPanel`; the Community
218
+ Toolkit's is a separate package)
219
+ Measured in a 300 wide window (`test/chip-tray.test.ts`, the
220
+ `examples/chip-tray` example)
221
+
222
+ | Way | Wraps | Chip widths | Use it for |
223
+ |---|---|---|---|
224
+ | `RichTextBlock`, a `Paragraph`, each chip in an `InlineUIContainer` | yes, like words in a sentence | each chip keeps its own | link chips, tags, any tray whose items differ in width |
225
+ | `VariableSizedWrapGrid` | yes, at its width or `maximumRowsOrColumns` | one cell for all (the first chip sets it, or `itemWidth` and `itemHeight`) | equal tiles |
226
+ | `ItemsRepeater` with `UniformGridLayout`, `GridView` | yes | one cell for all | the same, with virtualization and selection |
227
+
228
+ The first row is the answer to `flex-wrap`:
229
+
230
+ ```svelte
231
+ <script lang="ts">
232
+ import { Border, HyperlinkButton, InlineUIContainer, Paragraph, RichTextBlock } from "winui-svelte/components";
233
+ </script>
234
+
235
+ <RichTextBlock>
236
+ <Paragraph>
237
+ {#each links as link (link.href)}
238
+ <InlineUIContainer>
239
+ <Border class="chip">
240
+ <HyperlinkButton navigateUri={link.href}>{link.label}</HyperlinkButton>
241
+ </Border>
242
+ </InlineUIContainer>
243
+ {/each}
244
+ </Paragraph>
245
+ </RichTextBlock>
246
+
247
+ <style>
248
+ .chip {
249
+ margin: 0 6px 6px 0;
250
+ }
251
+ </style>
252
+ ```
253
+
254
+ - The gap between chips is each chip's margin: a `RichTextBlock` has no `gap`
255
+ - Chips sit on the text baseline; `RichTextBlock` has `textAlignment`, which
256
+ centres or right-aligns the lines
257
+ - The tray is text: a `RichTextBlock` is read-only and takes `isTextSelectionEnabled`
258
+ - Not covered: a CSS rule cannot turn `display: flex; flex-wrap: wrap` into this
259
+ (a flex container is a `<stack-panel>` or `<grid>` and the build never changes
260
+ a tag), and `ItemsRepeater` has no layout that flows items of different widths
261
+ (`UniformGridLayout` is uniform, `LinedFlowLayout` needs one line height and
262
+ aspect ratios from its items)
263
+
200
264
  ## Transitions (`winui-svelte/element-animation`, `winui-svelte/element-effects`)
201
265
 
202
266
  Svelte's `transition:`, `in:`, `out:` and `animate:` run unchanged: Svelte's
@@ -294,6 +358,131 @@ What it does:
294
358
  - `getComputedStyle` is defined as a global for WinUI's elements; any other
295
359
  argument goes to the one that was there, if any
296
360
 
361
+ ### Gliding a height (`glideHeight`)
362
+
363
+ WinUI cannot animate `Height="Auto"`, so a card whose content grows or shrinks
364
+ jumps; the web's answer is a `ResizeObserver` plus `element.animate({ height })`,
365
+ and `glideHeight` is that pair as one attachment:
366
+
367
+ ```svelte
368
+ <script lang="ts">
369
+ import { glideHeight } from "winui-svelte";
370
+ import { enableElementAnimation } from "winui-svelte/element-animation";
371
+
372
+ enableElementAnimation();
373
+ </script>
374
+
375
+ <border class="card" {@attach glideHeight({ duration: 300, easing: "ease-out" })}>
376
+ <text-block textWrapping="Wrap">{text}</text-block>
377
+ </border>
378
+ ```
379
+
380
+ - It listens to the element's `SizeChanged`; on a change it runs
381
+ `element.animate([{ height: from }, { height: to }])`, which sets `Height`
382
+ explicitly for the glide and gives `Auto` back when it ends (`element.animate`
383
+ animates `height` and `width` like it does `Opacity` and `Translation`)
384
+ - Needs `enableElementAnimation()` once (a `transition:` directive in the
385
+ app turns it on too); without it `glideHeight` throws and says so
386
+ - Can: grow and shrink, any easing and duration, a change made during a glide
387
+ (picked up when it ends), a hot update or removal (the glide is cancelled);
388
+ reduced motion makes it instant
389
+ - Cannot: glide the first layout, an element with a fixed `height` (it never
390
+ changes by itself), or the content inside; the layout is already at the new
391
+ height when the glide starts, so the frame before the first step can show it,
392
+ and content that would overflow a shrinking card is clipped only if the card
393
+ clips it (`clip-to-bounds`, a `ScrollViewer`)
394
+ - Measured in a window (`test/card-glide.test.ts`, the `examples/card-glide`
395
+ example): 250 ms into a 600 ms glide the height lies between the two sizes,
396
+ both growing and shrinking, and the card ends on its content's height with no
397
+ fixed `Height` left
398
+
399
+ ### Sliding siblings (`implicitLayoutAnimation`)
400
+
401
+ When an expander opens, the controls below it jump; on the web a FLIP
402
+ animation slides them, and in WinUI the Composition layer does it with an
403
+ implicit animation on each child's `Offset`
404
+
405
+ ```svelte
406
+ <script lang="ts">
407
+ import { implicitLayoutAnimation, LayoutEasing } from "winui-svelte/implicit-layout-animation";
408
+ </script>
409
+
410
+ <stack-panel {@attach implicitLayoutAnimation({ duration: 260, easing: LayoutEasing.EASE_OUT })}>
411
+ <expander header="Advanced">...</expander>
412
+ <button>Save</button>
413
+ </stack-panel>
414
+ ```
415
+
416
+ - It is an attachment for a panel; every child that the panel has laid out gets
417
+ a `Vector3KeyFrameAnimation` on `Offset` that ends at `this.FinalValue`, so
418
+ the composition layer starts it by itself whenever layout changes the offset
419
+ (no per-frame work in JavaScript, no `enableElementAnimation()`)
420
+ - `duration` is in milliseconds (default 260); `easing` is one of
421
+ `LayoutEasing` (`ease`, `ease-in`, `ease-out`, `ease-in-out`, `linear`,
422
+ `emphasized`; default `ease-out`)
423
+ - A child that is added slides from nowhere: the panel picks it up on its next
424
+ layout, after it was placed, so only the ones that were already there move
425
+ - Reduced motion: with Windows' animation effects off the attachment does
426
+ nothing, and it starts when they are turned on
427
+ - It replaces a child's own `implicitAnimations`, and it
428
+ is not a CSS property: the CSS part has no hook that reaches a Visual's
429
+ implicit animation collection cheaply, so the attachment is the one way
430
+ - Measured in a window (`test/layout-animation.test.ts`, the
431
+ `examples/layout-animation` example): 800 ms into a 5 s slide the marker
432
+ that a growing spacer pushes down is drawn between its two places, and ends
433
+ in the second
434
+ - `style:translate="0px 60px"` on a component (`<Border style:translate=...>`)
435
+ works: the same test reads the pixels and finds the control drawn 60 px lower
436
+ at once, with its layout slot left unchanged
437
+
438
+ ## Settings cards (`winui-svelte/settings`)
439
+
440
+ The Windows Community Toolkit's `SettingsCard` and `SettingsExpander` are
441
+ managed code with no projectable metadata, so these are built from WinUI's own
442
+ controls (`Border`, `Button`, `Grid`, `FontIcon`, `TextBlock`, `Expander`) and
443
+ the card theme resources (`CardBackgroundFillColorDefaultBrush` and
444
+ `CardStrokeColorDefaultBrush`), so light, dark and high contrast follow Windows
445
+
446
+ ```svelte
447
+ <script lang="ts">
448
+ import { ToggleSwitch } from "winui-svelte/components";
449
+ import { SettingsCard, SettingsExpander } from "winui-svelte/settings";
450
+
451
+ let isExpanded = $state(false);
452
+ </script>
453
+
454
+ <SettingsCard description="Start with Windows" header="Run at startup" headerIcon="PowerButton">
455
+ <ToggleSwitch />
456
+ </SettingsCard>
457
+ <SettingsCard header="Open the logs" isClickEnabled onclick={openLogs} />
458
+ <SettingsExpander header="Appearance" bind:isExpanded>
459
+ {#snippet items()}
460
+ <SettingsCard header="Theme">...</SettingsCard>
461
+ {/snippet}
462
+ </SettingsExpander>
463
+ ```
464
+
465
+ | Prop | Meaning |
466
+ |---|---|
467
+ | `header`, `description` | the name and the line under it |
468
+ | `headerIcon` | a Fluent glyph name or code, or a snippet that draws an icon |
469
+ | children | the control on the right (the toolkit's `Content`) |
470
+ | `isClickEnabled`, `onclick` | the card is a `Button`: focus, Enter and Space, a pressed state |
471
+ | `actionIcon`, `action` | the glyph at the end of a clickable card (default `ChevronRight`), or a snippet that replaces it |
472
+ | `isEnabled`, `automationId` | as on any control |
473
+ | `SettingsExpander`: `isExpanded`, `items` | `bind:isExpanded`; the items are `SettingsCard`s, which draw flat inside |
474
+
475
+ - Accessibility: a clickable card carries its header as the UI Automation name
476
+ and its description as the help text, and the expander is named after its
477
+ header; a card that is not clickable is a plain container whose texts are read
478
+ - Measured in a window (`test/settings-cards.test.ts`, the
479
+ `examples/settings-cards` example): a card is at least 68 px high, the
480
+ clickable card is named after its header, the items of a closed expander take
481
+ no room and show once it is open; the gallery has a `Settings cards` page
482
+ - Not there: the toolkit's `SettingsCard.ContentAlignment`, `IsActionIconVisible`
483
+ and its automatic wrapping into two rows on a narrow window; the content sits
484
+ on the right at its own size
485
+
297
486
  ## Connected animation (`winui-svelte/connected-animation`)
298
487
 
299
488
  `connectElement({ key, element })` remembers an element as the start of a
@@ -310,6 +499,81 @@ connectElement({ key: "photo", element: thumbnail });
310
499
  startConnected({ key: "photo", element: hero });
311
500
  ```
312
501
 
502
+ ## Composition animations (`winui-svelte/composition`)
503
+
504
+ Expression and spring animations that the compositor runs on its own thread,
505
+ typed end to end: an expression is built from typed parts and prints its own
506
+ text, so a member a visual does not have, or an animation of the wrong kind
507
+ for its property, fails `tsc`
508
+ The scroll-linked animations of `animation-timeline` are built with the same
509
+ expression builder
510
+
511
+ - `visualReference(element)`: an element's visual for expressions to read;
512
+ its members are `VISUAL_MEMBERS` (`offset`, `scale`, `translation`,
513
+ `centerPoint` are three-component, `size` and `anchorPoint` two-component,
514
+ `opacity` and `rotationAngleInDegrees` scalars), and a vector member gives
515
+ its components (`offset.y`): a member is a `Vector2Member` or
516
+ `Vector3Member`, the expression of its kind with `x`, `y` (and `z`)
517
+ - An expression is a `ScalarExpression`, `Vector2Expression` or
518
+ `Vector3Expression`, each with `plus`, `minus` (its own kind, or a plain
519
+ number, `{ x, y }` or `{ x, y, z }`), `times`, `dividedBy` (a scalar),
520
+ `negated()` and `lerp({ to, amount })`; a scalar also has
521
+ `clamped({ min, max })`
522
+ `scalar(1)`, `vector2({ x, y })` and `vector3({ x, y, z })` make literals,
523
+ `reference({ name, members, source })` names any Composition object with the
524
+ members it declares (`ExpressionKind` gives each one's kind)
525
+ - `rawExpression({ kind, text, references })` is the escape hatch: expression
526
+ text as it is, with the kind it gives and the objects it names
527
+ - `scalarSpring`, `vector2Spring`, `vector3Spring` take `SpringOptions`:
528
+ `finalValue`, and optionally `initialValue`, `initialVelocity`,
529
+ `dampingRatio` (below 1 overshoots), `period` and `delay` in milliseconds
530
+ - `animateOnCompositor({ element, property, animation })` starts an expression
531
+ or a spring on a property of the element's visual (`offset`, `offset.x`,
532
+ `opacity`...; `translation` is enabled on the element when it is used) and
533
+ returns a `RunningAnimation`: `stop()`, and `finished`, which settles when a
534
+ spring comes to rest or the animation is stopped
535
+ `compositorAnimation({ property, animation })` is the same as an attachment,
536
+ stopped when the element goes or the attachment runs again
537
+ - `createPropertySet({ element, values })` makes a `CompositionPropertySet`
538
+ whose members are the keys of `values`, each a number, `{ x, y }` or
539
+ `{ x, y, z }`: `reference` reads them in expressions, `insert(changes)`
540
+ writes new values from the UI thread, `animate({ property, animation })`
541
+ drives one on the compositor, `close()` releases it
542
+
543
+ ```svelte
544
+ <script lang="ts">
545
+ import type { Border as BorderControl } from "#winui/microsoft/ui/xaml/controls/Border";
546
+ import { elementRef } from "winui-svelte";
547
+ import { Border } from "winui-svelte/components";
548
+ import { compositorAnimation, vector3Spring, visualReference } from "winui-svelte/composition";
549
+
550
+ const leader = elementRef<BorderControl>();
551
+ </script>
552
+
553
+ <Border
554
+ {@attach compositorAnimation({
555
+ property: "offset",
556
+ animation: vector3Spring({ finalValue: { x: 200, y: 0, z: 0 }, dampingRatio: 0.4, period: 80 })
557
+ })}
558
+ {@attach leader.attach}
559
+ />
560
+ {#if leader.current}
561
+ <Border
562
+ {@attach compositorAnimation({
563
+ property: "offset",
564
+ animation: visualReference(leader.current).offset.plus({ x: 0, y: 120, z: 0 })
565
+ })}
566
+ />
567
+ {/if}
568
+ ```
569
+
570
+ - Values read on the UI thread (`Visual.Offset`) are the last ones set there,
571
+ not the animated ones; read an animated value back from what is drawn
572
+ - Not there yet: `InteractionTracker` (input-driven inertia, which needs a
573
+ `VisualInteractionSource` redirected from a pointer press and bindings not
574
+ generated today) and springs as a CSS easing (`transition-timing-function`
575
+ has no spring function on the web to map)
576
+
313
577
  ## Scheduling (`winui-svelte`)
314
578
 
315
579
  ```ts
@@ -1090,7 +1354,7 @@ const vertical: Orientation = 1;
1090
1354
  | A path geometry (`GeometryInput`, on `PathIcon` and `Path`) | Path Markup Syntax text or a `Geometry` | `data="M0,0 L10,10"` |
1091
1355
  | A font family (`FontFamilyInput`) | a family name or a `FontFamily` | `"Segoe UI Variable"` |
1092
1356
  | A grid length (`GridLengthInput`) | pixels, or `GridLengthText` as XAML writes it | `"Auto"`, `"2*"`, `"120"` |
1093
- | The package's own | `Backdrop`, `WindowTheme`, `TitleBarHeight`, `WindowPresentation`, `PickerLocation`, `NavigationCacheMode`, `NavigationMode`, `MoveDirection`, `XamlKind`, `FocusKind`, `TrayGesture`, `TrayBalloonIcon` | `backdrop={Backdrop.mica}` |
1357
+ | The package's own | `Backdrop`, `WindowTheme`, `TitleBarHeight`, `WindowPresentation`, `PickerLocation`, `NavigationCacheMode`, `NavigationMode`, `MoveDirection`, `XamlKind`, `FocusKind`, `TrayGesture`, `TrayBalloonIcon`, `ConnectedAnimationKind` | `backdrop={Backdrop.mica}` |
1094
1358
 
1095
1359
  A WinUI enum's members keep WinUI's names and case (`"Minimal"`, not
1096
1360
  `"minimal"`), as the metadata and the docs have them; the package's own sets
@@ -1359,6 +1623,63 @@ frame
1359
1623
  `test/web.test.ts` loads one in a real window; it needs an ordinary
1360
1624
  desktop session (a sandboxed process cannot launch the browser, 0x8007139F)
1361
1625
 
1626
+ ### WebView2 bridge (`winui-svelte/messaging/web-view2`)
1627
+
1628
+ A Svelte app and the web content in a `WebView2` talk with the same
1629
+ request and response frames as every other transport, over
1630
+ `CoreWebView2.PostWebMessageAsJson` and `WebMessageReceived`
1631
+ Both are raised on the UI thread, where dynwinrt delivers callbacks
1632
+
1633
+ ```ts
1634
+ import { defineMessaging } from "winui-svelte/messaging";
1635
+ import { webView2Transport } from "winui-svelte/messaging/web-view2";
1636
+
1637
+ // control is the WebView2 (the sender of oncorewebview2initialized)
1638
+ const transport = webView2Transport({ control, allowedOrigins: ["https://app.example"] });
1639
+ const bridge = defineMessaging<AppProtocol>({ transport });
1640
+ bridge.onMessage("save", ({ data }) => save(data));
1641
+ const title = await bridge.sendMessage("title");
1642
+ transport.dispose();
1643
+ ```
1644
+
1645
+ ```ts
1646
+ // in the web page's bundle
1647
+ import { createPageTransport, defineMessaging } from "winui-svelte/messaging/page";
1648
+
1649
+ const bridge = defineMessaging<AppProtocol>({ transport: createPageTransport() });
1650
+ ```
1651
+
1652
+ - The transport starts the browser (`EnsureCoreWebView2Async`) and waits for
1653
+ it (a control with no `source` does not start on its own, and a page set
1654
+ from `oncorewebview2initialized` can be overtaken by the `source` navigation;
1655
+ the example loads its page from the first `onnavigationcompleted`); frames sent before it is ready are kept and posted in order
1656
+ - `dispose()` stops listening, drops the queue and closes the link
1657
+ - `window.chrome.webview` is in every page WebView2 loads, so the page needs
1658
+ no injected script; `addDocumentCreatedScript` is for the scripts an app adds
1659
+ of its own
1660
+ - Every incoming message is parsed as JSON and checked against
1661
+ `allowedOrigins` (the origin of the page that posted it); a message that
1662
+ fails either is dropped and reported through the listener's `malformed`
1663
+ Without `allowedOrigins` every page is trusted, which suits only content the
1664
+ app ships; a page that is not the app's own needs the list
1665
+ - Nothing received is evaluated, and `AreHostObjectsAllowed` is switched off;
1666
+ the bridge never calls `AddHostObjectToScript`
1667
+
1668
+ | Helper | What |
1669
+ |---|---|
1670
+ | `waitForCoreWebView2(control)` | resolves with the `CoreWebView2` once the browser started |
1671
+ | `executeScript({ control, code })` | runs script in the page and resolves with its JSON value, checked |
1672
+ | `addDocumentCreatedScript({ control, code })` | runs script before every page script; resolves with the function that removes it |
1673
+ | `openDevTools(control)` | opens the developer tools window |
1674
+ | `getCookies`, `setCookie`, `deleteCookie` | the profile's cookies as plain data (`CookieSameSite`) |
1675
+ | `onPermissionRequested({ control, decide })` | answers permission requests with a `PermissionState` (`default`, `allow`, `deny`) for a `PermissionKind` |
1676
+ | `onDownloadStarting({ control, pathFor })` | sends a download to a path with no dialog, or cancels it with `null` |
1677
+ | `onNavigationStarting({ control, isAllowed })` | cancels the navigations `isAllowed` refuses |
1678
+
1679
+ `examples/web-bridge` is an app talking to a hosted page, and
1680
+ `test/web-bridge.test.ts` runs it in a real window; it needs an ordinary
1681
+ desktop session (a sandboxed process cannot launch the browser, 0x8007139F)
1682
+
1362
1683
  ### ListView and GridView
1363
1684
 
1364
1685
  ```svelte
@@ -1533,9 +1854,26 @@ changes or the window closes)
1533
1854
  `"transparent"` shows the desktop through every pixel the content leaves clear,
1534
1855
  with per-pixel alpha: the window gets a fully clear composition brush behind
1535
1856
  its content (`ICompositionSupportsSystemBackdrop`; the Windows App SDK's
1536
- `TransparentTintBackdrop` is not in the metadata of the releases restored, 2.2
1537
- and 2.3, so it cannot be generated)
1857
+ `TransparentTintBackdrop` is in no runtime from 2.3 to 2.6.5 and not in the
1858
+ metadata restored, 2.2, so it cannot be generated), and the whole window
1859
+ becomes the window manager's frame (`DwmExtendFrameIntoClientArea` with every
1860
+ margin -1) with square corners (`DWMWA_WINDOW_CORNER_PREFERENCE` do-not-round),
1861
+ which also drops the outline and the shadow Windows 11 draws round a rounded
1862
+ window
1863
+ Without the frame step the clear pixels read black, not the desktop; it is
1864
+ applied again whenever `isBorderless` changes, since WinUI's presenter undoes
1865
+ the corner preference
1538
1866
  `window.systemBackdrop` reads null for it
1867
+ Measured on Windows 11 build 26300 with the Windows App SDK runtimes 2.3 to
1868
+ 2.6.5 installed; no other Windows build has been run, and the corner preference
1869
+ exists on Windows 11 only
1870
+ A window on a desktop of its own (a hidden desktop) is never composed by
1871
+ Windows, so there is nothing to see through to: `test/transparent-window.test.ts`
1872
+ reads the screen of the ordinary desktop for that reason
1873
+ Not checked: a filter or a drop shadow (`filter: drop-shadow()`) on content
1874
+ over a transparent window
1875
+ The window's own `cornerRadius` clips with an edge that is not anti-aliased, so
1876
+ round the card's own `corner-radius` instead
1539
1877
  Pair it with `isBorderless` and content that sets no background of its own
1540
1878
  A floating card over a transparent window:
1541
1879
 
@@ -1564,6 +1902,18 @@ taking focus
1564
1902
  `onboundschanged` hears the bounds the window opened with and
1565
1903
  then every move or resize (device pixels), so an app that reopens the window
1566
1904
  where it was has them before the user touches it
1905
+ `stateKey` keeps the window where its user leaves it: the bounds (the normal
1906
+ ones, also while it is maximized), the maximized or minimized state and the
1907
+ presentation are saved in `%LOCALAPPDATA%\<app>\window-state\<stateKey>.json`,
1908
+ written a moment after each move, resize or state change and again when the
1909
+ window closes, and restored before the window first shows
1910
+ The restored bounds are kept whole inside the work area of the display nearest
1911
+ to them (a display that is gone, or smaller, never leaves the window off
1912
+ screen) and are resized to the scale of the display they land on
1913
+ On the first run, and when the file is missing, corrupt or from another
1914
+ version, `placement` or the centered default applies; a saved place wins over
1915
+ `placement`, and a `presentation` prop wins over the saved presentation
1916
+ `stateKey` is read once, before the window opens
1567
1917
  `onclosing` runs when the window is asked to close (the close button, Alt+F4,
1568
1918
  `handle.close()`): returning `true` keeps it open (ask the user, then close it
1569
1919
  again from code); `onclosed` follows a close that went through
@@ -1576,6 +1926,10 @@ content's requested theme and the caption buttons'
1576
1926
  `titleBarHeight` is
1577
1927
  `"standard"` or `"tall"` (for a title bar that holds a search box or tabs; it
1578
1928
  applies when the content extends into the title bar)
1929
+ `iconShowOptions` is `"showIconAndSystemMenu"` (the default) or
1930
+ `"hideIconAndSystemMenu"`: whether the title bar shows the window's icon and
1931
+ opens the system menu on a click on it (`AppWindowTitleBar.IconShowOptions`;
1932
+ it is set again to the default when the prop is dropped)
1579
1933
  `captionButtons` sets
1580
1934
  the colors of the minimize, maximize and close buttons: `foreground`,
1581
1935
  `background`, `hover*`, `pressed*` and `inactive*` (each `Foreground` or
@@ -1597,7 +1951,9 @@ The size limits and
1597
1951
  `isAlwaysOnTop` are the windowed presentation's, and are set again when the
1598
1952
  window returns to it
1599
1953
  A window that is only its content (a pill, an overlay, a splash screen) is made
1600
- of the frame props: `isBorderless` (no frame, no title bar),
1954
+ of the frame props: `isBorderless` (no frame, no title bar; the window keeps its
1955
+ 8 device pixel resize frame, which shrinks the client area and paints a strip
1956
+ along the top, until `isResizable={false}` takes it away),
1601
1957
  `isShownInSwitchers` and `isToolWindow` (no taskbar button or Alt+Tab entry),
1602
1958
  `isActivatable={false}` (a click never takes focus), `isClickThrough`,
1603
1959
  `isExcludedFromCapture` (black in screenshots and screen sharing),
@@ -1671,6 +2027,22 @@ device-independent pixels at the window's scale), over `AppWindow.Resize` and
1671
2027
  `AppWindow.Move`
1672
2028
  A process has many windows, so there is no `window` global for them
1673
2029
 
2030
+ `handle.windowControlsOverlay` is `navigator.windowControlsOverlay` for the
2031
+ window: `visible` (the content extends into the title bar),
2032
+ `getTitlebarAreaRect()` (the part of the title bar the content may use, from
2033
+ the system's icon to the caption buttons, as `x`, `y`, `width`, `height`,
2034
+ `left`, `top`, `right` and `bottom` in CSS pixels, all zeros while `visible`
2035
+ is false) and `ongeometrychange` (a `geometrychange` event with
2036
+ `titlebarAreaRect` and `visible`, fired when the area or `visible` changes)
2037
+ It reads `AppWindowTitleBar.LeftInset`, `RightInset` and `Height` (device
2038
+ pixels, divided by the scale) and the client width; the left inset is the
2039
+ caption buttons in a right-to-left window
2040
+ It follows the window from the first read of the property until the window
2041
+ closes, on `AppWindow.Changed` (a size, DPI or presenter change)
2042
+ Limits: the CSS `env(titlebar-area-x)`, `titlebar-area-width` and the rest are
2043
+ not supported (WinUI has no run-time lengths, so the translator reports them
2044
+ as an error); lay the title bar out from `getTitlebarAreaRect()` instead
2045
+
1674
2046
  `owner` (another window's `WindowHandle`) and `isModal`
1675
2047
  (blocks the owner until this window closes) are read once, before the window
1676
2048
  opens; `createWindow` takes them too
@@ -1898,6 +2270,20 @@ The animation target is attached on every timeline: `storyboardTarget`,
1898
2270
  `storyboardTargetName` and `storyboardTargetProperty` call
1899
2271
  `Storyboard.SetTarget`, `SetTargetName` and `SetTargetProperty`
1900
2272
 
2273
+ ### A refused change
2274
+
2275
+ A bound property (`bind:isOn`, `bind:isChecked`, `bind:value` and the rest) is
2276
+ two-way: the user's change is written to the bound prop, and the prop's value
2277
+ is written to the control
2278
+ When the app refuses the change (a function binding whose setter leaves the
2279
+ state as it was, or a handler that puts it back) the prop does not change, so
2280
+ nothing would write it to the control; after the app has been told, in the next
2281
+ Svelte tick, the control is set back to what the prop holds, so a refused
2282
+ toggle snaps back with no `await tick()` and no write to the control in the
2283
+ handler
2284
+ `test/refused-toggle.test.ts` proves it in a window for a `ToggleSwitch` and a
2285
+ `CheckBox`
2286
+
1901
2287
  ### Observed state
1902
2288
 
1903
2289
  Read-only state WinUI reports by an event is a bindable prop the control
@@ -2089,7 +2475,7 @@ read and write the file with `node:fs`
2089
2475
  ### App lifecycle (`winui-svelte/app`)
2090
2476
 
2091
2477
  ```ts
2092
- import { ensureSingleInstance, notify } from "winui-svelte/app";
2478
+ import { ensureSingleInstance, notify, relaunch, restartAfterCrash } from "winui-svelte/app";
2093
2479
 
2094
2480
  const single = ensureSingleInstance({
2095
2481
  key: "com.example.notes",
@@ -2109,6 +2495,9 @@ notify({
2109
2495
  iconPath: "C:\notes\icon.png",
2110
2496
  appUserModelId: "com.example.notes",
2111
2497
  });
2498
+
2499
+ relaunch({ arguments: ["--after-update"], instance: single });
2500
+ restartAfterCrash({ arguments: ["--recovered"] });
2112
2501
  ```
2113
2502
 
2114
2503
  An opt-in subpath: an app that does not import it does not bundle it
@@ -2150,6 +2539,192 @@ An opt-in subpath: an app that does not import it does not bundle it
2150
2539
  With package identity (an MSIX or sparse package) it is the supported case
2151
2540
  `ensureSingleInstance` needs no identity: `test/app.test.ts` starts a real
2152
2541
  second copy and checks that the first hears its arguments
2542
+ - `activateInstance({ key, activation })` is for a process that is not the
2543
+ app (a tray, a launcher): it sends the same JSON line to the copy that
2544
+ serves `key` and resolves with true, or with false when no copy runs
2545
+ Unlike a later copy it never claims the pipe, so it cannot become the
2546
+ first copy by mistake
2547
+ The running copy's `onRedirect` receives `activation`
2548
+ - `launchApp({ command, arguments, workingDirectory })` starts a program
2549
+ that outlives the caller: detached, no console window, no shared handles
2550
+ - `activateOrLaunch({ key, activation, launch })` is the two together: it
2551
+ activates the running copy, or else starts the app with `launch`, and
2552
+ resolves with true for the first and false for the second
2553
+ - `relaunch({ arguments })` starts the same Node with the same flags, entry
2554
+ script (`process.argv[1]`) and then `arguments`, detached, and calls
2555
+ `exitApplication`, so the new copy outlives this one
2556
+ Pass `instance` (the `ensureSingleInstance` result) to release the claim
2557
+ first; otherwise the new copy finds the old one still serving the key and
2558
+ redirects to it
2559
+ An app whose windows run in a worker thread passes `entryScript`, the script
2560
+ that starts the process, because `process.argv[1]` there is the worker's
2561
+ - `restartAfterCrash({ arguments, conditions })` is
2562
+ `RegisterApplicationRestart`: Windows starts the same Node and entry
2563
+ script with `arguments` after a crash, a hang, an update that closes the
2564
+ app or a reboot for one; `conditions` is a subset of `RestartCondition`
2565
+ (`crash`, `hang`, `update`, `reboot`; all by default)
2566
+ Limits: no callback (a crashed Node cannot run code, so
2567
+ `RegisterApplicationRecoveryCallback` is not offered); Windows restarts
2568
+ only an app that ran for 60 seconds; after a crash or a hang the user is
2569
+ offered the restart, and only after an update is it automatic; a normal
2570
+ exit is never restarted; a command line too long for Windows throws
2571
+ `test/app.test.ts` checks the registration and that a normal exit starts
2572
+ nothing, and `relaunch` with a real second process (no crash is caused)
2573
+
2574
+ ### Activation (`winui-svelte/app/activation`)
2575
+
2576
+ Starting the app from a link, a file or sign-in, without an installer
2577
+ An opt-in subpath: an app that does not import it does not bundle it, and
2578
+ nothing is written to Windows until a registration function is called
2579
+
2580
+ ```ts
2581
+ import {
2582
+ ActivationKind,
2583
+ installProtocolHandlers,
2584
+ launchAtLogin,
2585
+ registerFileTypes,
2586
+ startActivation,
2587
+ } from "winui-svelte/app/activation";
2588
+
2589
+ installProtocolHandlers();
2590
+ navigator.registerProtocolHandler("note", "https://notes.example/open?uri=%s");
2591
+ registerFileTypes({ id: "com.example.notes", extensions: [".note"] });
2592
+ launchAtLogin({ id: "com.example.notes", isEnabled: true });
2593
+
2594
+ const single = startActivation({
2595
+ key: "com.example.notes",
2596
+ window: mainWindow,
2597
+ extensions: [".note"],
2598
+ onActivation(event) {
2599
+ if (event.kind === ActivationKind.protocol) open(new URL(event.uri));
2600
+ if (event.kind === ActivationKind.file) openFiles(event.files);
2601
+ },
2602
+ });
2603
+ if (!single.isPrimary) {
2604
+ exitApplication();
2605
+ }
2606
+ ```
2607
+
2608
+ | Web API or extra | Windows | Notes |
2609
+ |---|---|---|
2610
+ | `navigator.registerProtocolHandler(scheme, url)` | `HKCU\Software\Classes\<scheme>` with `URL Protocol` and `shell\open\command` | `url` must hold `%s` (`SyntaxError` otherwise) and is not used further: the handler is always this app |
2611
+ | `navigator.unregisterProtocolHandler(scheme, url)` | deletes that key | only a key the package wrote; another program's is left alone |
2612
+ | `registerFileTypes({ id, extensions, description })` | a ProgID `<id><extension>` and the extension's `OpenWithProgids` | the app is listed in Open with; the default stays the user's choice |
2613
+ | `unregisterFileTypes({ id, extensions })` | deletes both and the empty keys left | returns the extensions removed |
2614
+ | `launchAtLogin({ id, isEnabled, arguments })` | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` value `id` | listed in Settings, Apps, Startup; the start arrives as `startup` |
2615
+ | `getLaunchAtLogin({ id })` | reads that value | `{ isEnabled, commandLine }`; the user's switch in Settings is not read |
2616
+ | `startActivation({ key, onActivation })` | `ensureSingleInstance` and the command line | one `ActivationEvent` per start or redirect |
2617
+
2618
+ - `ActivationEvent` is a union on `kind` (`ActivationKind`, also from
2619
+ `winui-svelte/enums`): `launch` (started by hand), `file` (`files`, absolute
2620
+ paths of existing files), `protocol` (`uri`, `scheme`), `startup` (started
2621
+ at sign-in) and `redirect` (a later copy with nothing to open)
2622
+ Every event has `isRedirect`, `arguments` and `workingDirectory`; a link
2623
+ sent by a later copy is `protocol` with `isRedirect: true`
2624
+ - A link wins over files, files win over the startup marker; an argument
2625
+ that fits none stays in `arguments`
2626
+ Arguments are checked with a schema (up to 1024 of them, up to 32767
2627
+ characters each, no NUL); a failure goes to `onError`, the rest go on
2628
+ - Events arrive in order, one at a time, in the first copy; the later copy
2629
+ gets `isPrimary: false` and exits
2630
+ Redirects are also handed to `launchQueue.enqueueActivation` when you pass
2631
+ `launchQueue`; the first start's command line reaches `launchQueue` through
2632
+ `installLaunch`
2633
+ - The command Windows runs is this process's `node.exe`, its flags and its
2634
+ entry script, then `"%1"`; pass `command: { program, arguments }` for a
2635
+ bundled executable
2636
+ The Windows App SDK's `ActivationRegistrationManager` takes an executable path
2637
+ and no arguments, so for `node.exe` it cannot name the script; the registry route is the one it writes underneath, and needs
2638
+ no package identity
2639
+ - Security: only `HKEY_CURRENT_USER` is ever opened, never
2640
+ `HKEY_LOCAL_MACHINE`
2641
+ Schemes follow RFC 3986 (a letter, then letters, digits, `+`, `-` and `.`,
2642
+ two characters or more) and `http`, `https`, `file`, `ftp`, `mailto`, `ms-*`
2643
+ and the other system and browser schemes are a `SecurityError`; so are
2644
+ extensions that run code (`.exe`, `.bat`, `.js`, `.lnk` and so on)
2645
+ Every key the package creates carries a `WinuiSvelte` value, and it
2646
+ overwrites or deletes only keys that carry it; a scheme or ProgID that
2647
+ another program owns is an `InvalidStateError`
2648
+ A received link is data: it is validated (no control characters, 8192
2649
+ characters at most) and handed to your code, never run
2650
+ Windows can pass a quote in a link through `"%1"` unescaped, so treat the
2651
+ whole of `uri` as untrusted
2652
+ - Needs packaging for: the share target and a default-app claim (a package
2653
+ manifest declares them); unpackaged, the app is offered in Open with and the
2654
+ user picks the default
2655
+ - `installProtocolHandlers()` returns the function that removes the two
2656
+ navigator methods; the registrations stay until you unregister them
2657
+ Each registration function takes `registry` (a fake in tests) and `command`
2658
+ - `src/app/activation/native.test.ts` registers a protocol, a file type and a
2659
+ startup entry under HKCU with a unique name, reads them with `reg query`,
2660
+ removes them and checks nothing is left, even when it fails;
2661
+ `test/activation.test.ts` starts real second copies with a link, a file and
2662
+ nothing, and checks the first hears each as one event
2663
+
2664
+ ### Global hotkeys (`winui-svelte/app/hotkeys`)
2665
+
2666
+ A system-wide key combination, heard whichever app has the focus
2667
+ A web page cannot own a global key, so there is no web API to mirror; the
2668
+ callback is told a `KeyboardEvent`-like object and the prop is the lowercase
2669
+ `onpressed`
2670
+ An opt-in subpath: an app that does not import it does not bundle it
2671
+
2672
+ ```ts
2673
+ import { registerHotkey } from "winui-svelte/app/hotkeys";
2674
+
2675
+ const hotkey = registerHotkey({
2676
+ keys: "ctrl+alt+k",
2677
+ onpressed: ({ keys }) => togglePalette(),
2678
+ });
2679
+ // later: hotkey.isRegistered, hotkey.unregister()
2680
+ ```
2681
+
2682
+ - `keys` is a string of modifiers and one key joined by `+`, in any case
2683
+ (`ctrl+alt+k`, `win+shift+f23`, `ctrl+5`, `f9`), or a typed object
2684
+ `{ modifiers: [HotkeyModifier.control], key: "k" }`
2685
+ Modifiers: `ctrl`/`control`, `alt`/`option`, `shift`, `win`/`windows`/`meta`/`super`
2686
+ Keys are named as `KeyboardEvent.code` names them, lowercase: letters,
2687
+ `digit0` to `digit9` (a bare `5` works in a string), `f1` to `f24`, `numpad0`
2688
+ to `numpad9`, `arrowleft`, `escape`, `space`, `minus`, `equal`,
2689
+ `bracketleft`, the media and volume keys
2690
+ `KeyCode` (in `winui-svelte/enums`, spelled as `KeyboardEvent.code` is) is the
2691
+ table every key name maps from to its virtual-key code, the same one the
2692
+ input events name keys with, and `HotkeyModifier` holds the modifiers
2693
+ A few aliases are accepted in a string (`esc`, `del`, `left`, `pgup`)
2694
+ A modifier named twice, no key, two keys or an unknown name throws
2695
+ `HotkeyParseError`
2696
+ - `onpressed` runs on the UI thread with `{ keys, key, modifiers, ctrlKey,
2697
+ altKey, shiftKey, metaKey }`; holding the keys down presses once, because
2698
+ `MOD_NOREPEAT` is the default (`isRepeatAllowed: true` lifts it)
2699
+ An error thrown by the callback goes to `onUiError` and the hotkey stays
2700
+ - Failures are typed and all extend `HotkeyError`: `HotkeyConflictError` when
2701
+ another app (or this one) owns the combination
2702
+ (`ERROR_HOTKEY_ALREADY_REGISTERED`), `HotkeyRefusedError` (with `code`) when
2703
+ Windows refuses it, `HotkeyParseError` for the string
2704
+ - `unregister()` gives the combination back and may be called twice
2705
+ In a component, register in an `$effect` and return the unregister, so a
2706
+ closed window releases it; Windows frees the rest when the thread ends
2707
+ - How it works: `RegisterHotKey` with no window posts `WM_HOTKEY` to the
2708
+ registering thread's queue, where no window procedure ever sees it
2709
+ The message pump (`createMessageSource`) offers each message it takes to a
2710
+ short list of hooks (`src/window/message-hooks.ts`) before the content and
2711
+ `DispatchMessage`, and the hotkey registry is one hook
2712
+ Any thread that runs the package's pump hears the hotkeys registered on it,
2713
+ a tray-only app with no window included; the registry and the hook list are
2714
+ one per thread
2715
+ - Limits:
2716
+ - Nothing is heard while the pump is not running (before `runWindow` has
2717
+ started it, or after it stopped), and a callback waits for the message in
2718
+ front of it
2719
+ - Register on the thread whose pump runs, the UI thread
2720
+ - Windows reserves some combinations (`win+l`, `ctrl+alt+delete`, and others
2721
+ the shell owns): they throw `HotkeyRefusedError` or `HotkeyConflictError`
2722
+ - The first app to register a combination owns it; the only way to know is
2723
+ to try, and to ask the user for another when it throws
2724
+ - A key with no modifier (`f9`) is taken from every app
2725
+ - `test/hotkeys.test.ts` registers `ctrl+alt+shift+f23` in a real window and
2726
+ posts `WM_HOTKEY` to the thread itself with `PostThreadMessageW`; no key is
2727
+ pressed
2153
2728
 
2154
2729
  ### System tray (`winui-svelte/tray`)
2155
2730
 
@@ -2272,6 +2847,147 @@ window's content
2272
2847
  A Tauri or Electron host that already has a tray should keep it: two icons
2273
2848
  would show, and this one lives and dies with the WinUI window's process
2274
2849
 
2850
+ ### Tray with no window (`winui-svelte/tray/standalone`)
2851
+
2852
+ A tray that runs in a process of its own, plain Node, with no `Window`, no
2853
+ app, no WinUI and none of the component barrel: the notification-area icon
2854
+ and its menu, and a click that starts or signals the full app
2855
+ The panel then opens only when the user asks, and between clicks the tray
2856
+ holds a fraction of the memory
2857
+ `winui-svelte/tray` cannot do this: its `TrayIcon` mounts a WinUI window
2858
+ for the menu and its timers run on the dispatcher queue
2859
+
2860
+ ```ts
2861
+ import {
2862
+ activateOrLaunch,
2863
+ createStandaloneTray,
2864
+ NativeMenuEntryKind
2865
+ } from "winui-svelte/tray/standalone";
2866
+
2867
+ function openPanel() {
2868
+ void activateOrLaunch({
2869
+ key: "com.example.panel",
2870
+ activation: { arguments: ["--show"], workingDirectory: process.cwd() },
2871
+ launch: { command: "C:\\Program Files\\Panel\\panel.exe", arguments: ["--show"] }
2872
+ });
2873
+ }
2874
+
2875
+ createStandaloneTray({
2876
+ icon: "tray.ico",
2877
+ tooltip: "Panel",
2878
+ onclick: openPanel,
2879
+ menu: [
2880
+ { kind: NativeMenuEntryKind.COMMAND, label: "Open", onselect: openPanel },
2881
+ { kind: NativeMenuEntryKind.SEPARATOR },
2882
+ { kind: NativeMenuEntryKind.COMMAND, label: "Quit", onselect: () => process.exit(0) }
2883
+ ]
2884
+ });
2885
+ ```
2886
+
2887
+ - `createStandaloneTray(options)` takes the icon's options (`icon`,
2888
+ `tooltip`, `isVisible`, `guid`, `onclick`, `ondoubleclick`,
2889
+ `onmiddleclick`) and `menu`, and returns the same handle as
2890
+ `createTrayIcon` (`update`, `notify`, `bounds`, `isRegistered`, `remove`)
2891
+ The icon keeps the process alive; `remove()` or the process ending takes it
2892
+ out of the tray
2893
+ - The menu is Windows' own popup menu (`TrackPopupMenuEx`), made on a right
2894
+ click and destroyed when it closes; nothing of it exists while idle
2895
+ A command is `{ kind, label, onselect, isEnabled }`, a line is
2896
+ `{ kind: NativeMenuEntryKind.SEPARATOR }`
2897
+ The menu is modal: the thread runs its own message loop until it closes
2898
+ It does not follow a dark system theme, which a native popup menu does not
2899
+ without an undocumented call; a menu that must match the theme belongs in
2900
+ `winui-svelte/tray` with `TrayIcon`'s `menu` snippet
2901
+ - The same entry re-exports `activateInstance`, `activateOrLaunch` and
2902
+ `launchApp` from `winui-svelte/app` (App lifecycle), so a tray imports from
2903
+ one place; the app side calls `ensureSingleInstance` with the same `key`
2904
+ - The clicks are heard the way `winui-svelte/tray` hears them, by polling
2905
+ the pointer on the process's timer (Node's `setInterval`)
2906
+ - A test bundles it (`scripts/pack/tray-only.test.ts`) and fails if any
2907
+ component, window or renderer module, or a component's name, is in the
2908
+ output, or if it grows past its budget
2909
+
2910
+ ### Notice with no app (`winui-svelte/notice`)
2911
+
2912
+ `showNotice` shows a message box before there is a window or an app: the
2913
+ checks that end a run before it starts (the Windows 11 gate, a revoked
2914
+ licence) can tell the user why
2915
+
2916
+ ```ts
2917
+ import { NoticeButton, NoticeButtons, NoticeIcon, showNotice } from "winui-svelte/notice";
2918
+
2919
+ await showNotice({
2920
+ title: "My app",
2921
+ message: "This app needs Windows 11",
2922
+ icon: NoticeIcon.ERROR
2923
+ });
2924
+ const pressed = await showNotice({
2925
+ title: "Update",
2926
+ message: "Install now?",
2927
+ icon: NoticeIcon.QUESTION,
2928
+ buttons: NoticeButtons.YES_NO
2929
+ });
2930
+ const isConfirmed = pressed === NoticeButton.YES;
2931
+ ```
2932
+
2933
+ - `showNotice({ title, message, icon, buttons, owner })` resolves with the
2934
+ `NoticeButton` pressed: `ok`, `cancel`, `yes`, `no`, `retry`, `abort` or
2935
+ `ignore`
2936
+ `icon` is a `NoticeIcon` (`none`, `information`, `warning`, `error`,
2937
+ `question`), `buttons` a `NoticeButtons` (`ok`, `okCancel`, `yesNo`,
2938
+ `yesNoCancel`, `retryCancel`, `abortRetryIgnore`)
2939
+ - It is `MessageBoxW` and nothing else: no WinUI, no `runWindow`, no
2940
+ `initWindowsAppSdk`, so plain Node can call it first thing
2941
+ Without an `owner` the box stays on top and takes the foreground;
2942
+ `owner` is a window handle to center on and block
2943
+ - It is not a TaskDialog: `TaskDialogIndirect` needs Common Controls 6, which
2944
+ `node.exe` has no manifest for, so custom button text, links and progress
2945
+ bars are not here
2946
+ - The dialog is modal and runs its own message loop, so the calling thread
2947
+ waits for it
2948
+ It throws when Windows could not show the box
2949
+ A box cannot be dismissed from a test without input, so the tests fake the
2950
+ call; the one real call they make passes a window handle that does not
2951
+ exist, which Windows refuses at once without showing anything
2952
+ ### Taskbar button (`winui-svelte/window/taskbar`)
2953
+
2954
+ `handle.taskbar` is the window's button on the taskbar: a progress bar, an
2955
+ overlay icon and flashing, over `ITaskbarList3` and `FlashWindowEx`
2956
+ No package identity is needed; call it on the UI thread
2957
+ The shell calls need the real desktop shell, so a window on a desktop of its
2958
+ own gets `E_NOTIMPL`; a window that has no taskbar button (a background or
2959
+ tray window) accepts the calls and shows nothing
2960
+
2961
+ ```ts
2962
+ import { TaskbarProgressState } from "winui-svelte/window/taskbar";
2963
+
2964
+ handle.taskbar.setProgress({ state: TaskbarProgressState.NORMAL, value: 0.4 });
2965
+ handle.taskbar.setOverlayBadge({ count: 3 });
2966
+ handle.taskbar.flash({ count: 2 });
2967
+ ```
2968
+
2969
+ - `setProgress({ state, value })`: `state` is a `TaskbarProgressState`
2970
+ (`none`, `indeterminate`, `normal`, `error`, `paused`); `value` is 0 to 1,
2971
+ clamped, and ignored for `none` and `indeterminate`; a value that is not a
2972
+ number is a `TypeError`
2973
+ - `setOverlayIcon({ icon, description })`: `icon` is the path of an .ico file
2974
+ or `null` to remove it; `description` is what a screen reader says
2975
+ - `setOverlayBadge({ count })` or `setOverlayBadge({ glyph })`: draws the badge
2976
+ as pixels (a disc with the digits, or the `BadgeGlyph`'s colour and mark) at
2977
+ the system's small icon size; `clearOverlay()` takes any overlay away
2978
+ - `flash({ count, until })`: `until` is a `TaskbarFlashUntil` (`count`, the
2979
+ default, flashes `count` times, 3 by default; `foreground` until the window is
2980
+ brought forward; `stopped` until `stopFlashing()`)
2981
+ - `createTaskbarButton(hwnd)` and `TaskbarButton` take a window handle
2982
+ (`appWindow.id.value`) directly; `taskbarBadgeBackend(button)` is the
2983
+ `fallback` for `installBadging`
2984
+ - `examples/taskbar`: a download bar mirrored on the button and an unread count
2985
+ - `ITaskbarList3` has no WinRT form, so its methods are declared by hand at
2986
+ their vtable slots over dynwinrt's `DynComUnsafe`, as the share interop is
2987
+ - The shell offers no way to read a bar or an overlay back, so the window test
2988
+ (`test/taskbar.test.ts`, on the default desktop with an off-screen window)
2989
+ checks that every call returns `S_OK`
2990
+
2275
2991
  ### Localization: what works unpackaged
2276
2992
 
2277
2993
  - **`Intl` and your own string tables work everywhere.**
@@ -2491,6 +3207,127 @@ takes drops, through the handlers a real drop reaches, and resolves with the
2491
3207
  operation the control accepted (`0` when it refused); it sends no input, so an
2492
3208
  app can test its drop handling in a real window
2493
3209
 
3210
+ ## Input events and focus (`winui-svelte/input`)
3211
+
3212
+ The web's pointer, wheel, keyboard and focus events on any element, and focus
3213
+ management, over `Microsoft.UI.Xaml.Input`
3214
+ Opt-in: nothing is bundled until an app imports it, and importing does no work
3215
+ Everything runs on the UI thread
3216
+
3217
+ ### Events as on the web
3218
+
3219
+ ```svelte
3220
+ <script lang="ts">
3221
+ import { enableInputEvents, setPointerCapture, PointerType } from "winui-svelte/input";
3222
+ import type { KeyboardEvent, PointerEvent } from "winui-svelte/input";
3223
+
3224
+ enableInputEvents(); // once, before the first window
3225
+ </script>
3226
+
3227
+ <border
3228
+ onpointerdown={(event: PointerEvent) => {
3229
+ setPointerCapture({ control: event.currentTarget, pointerId: event.pointerId });
3230
+ const isPen = event.pointerType === PointerType.pen;
3231
+ console.log(event.clientX, event.clientY, isPen ? event.pressure : 1);
3232
+ }}
3233
+ onpointermove={(event: PointerEvent) => {
3234
+ for (const point of event.getCoalescedEvents()) {
3235
+ console.log(point.x, point.y);
3236
+ }
3237
+ }}
3238
+ onkeydown={(event: KeyboardEvent) => {
3239
+ if (event.key === "Escape") {
3240
+ event.preventDefault();
3241
+ }
3242
+ }}
3243
+ >
3244
+ <text-block>Draw here</text-block>
3245
+ </border>
3246
+ ```
3247
+
3248
+ `enableInputEvents()` adds the eleven names to the renderer's event-alias table
3249
+ (`src/renderer/host/event-adapters.ts`, the one `enableDragEvents()` fills), so a
3250
+ raw element takes them
3251
+ A WinUI-named event on the same element (`onpointerpressed`) keeps WinUI's own
3252
+ arguments, and so does every component prop: components get no new props
3253
+ `onkeydown` is the one name both share; on a raw element it takes the web's
3254
+ `KeyboardEvent` once the events are enabled
3255
+
3256
+ | Web event | WinUI | Notes |
3257
+ |---|---|---|
3258
+ | `pointerdown`, `pointerup`, `pointermove` | `PointerPressed`, `PointerReleased`, `PointerMoved` | `pointerId`, `pointerType` (`PointerType.mouse`, `pen`, `touch`; a touchpad is a mouse), `isPrimary`, `pressure`, `tiltX`, `tiltY`, `twist`, `button`, `buttons`, `clientX`, `clientY` (also `offsetX`, `pageX`, `x`), the four modifiers |
3259
+ | `pointerenter`, `pointerleave` | `PointerEntered`, `PointerExited` | WinUI bubbles them, the web does not |
3260
+ | `pointercancel` | `PointerCanceled` | |
3261
+ | `wheel` | `PointerWheelChanged` | `deltaX`, `deltaY` (positive when the wheel turns toward the user), `deltaMode` (always 0, pixels; WinUI gives 120 per notch) |
3262
+ | `keydown`, `keyup` | `KeyDown`, `KeyUp` | `key` and `code` mapped from `VirtualKey`, `repeat`, the modifiers read from the keyboard state |
3263
+ | `focusin`, `focusout` | `GotFocus`, `LostFocus` | `target`, `currentTarget`; no `relatedTarget` |
3264
+
3265
+ `event.getCoalescedEvents()` lists the points the pointer passed since the last
3266
+ event, oldest first, as plain field objects (`x`, `y`, `pressure` and the rest)
3267
+ `event.preventDefault()` and `stopPropagation()` both mark the WinUI event
3268
+ handled, so it goes no further up the tree and the control skips its own
3269
+ handling (a handled `keydown` for Tab does not move focus)
3270
+ `event.target` is `originalSource` (the element the event started at) and
3271
+ `event.currentTarget` the element the handler is written on
3272
+
3273
+ Limits:
3274
+
3275
+ - `key` and `code` assume the US layout, because WinUI's `VirtualKey` has no
3276
+ punctuation keys (they are `Unidentified`) and Shift does not turn `1` into
3277
+ `!`; read text from a `TextBox`, not from `keydown`
3278
+ - `isComposing` is always false: WinUI sends input method text to the text
3279
+ controls, not to `KeyDown`
3280
+ - `mouse*` and `click` are not provided; use the pointer names, or the
3281
+ `click` prop of a component
3282
+ - `getCoalescedEvents` entries are field objects, not full events
3283
+
3284
+ ### Pointer capture
3285
+
3286
+ ```ts
3287
+ setPointerCapture({ control, pointerId }); // returns true when WinUI took it
3288
+ hasPointerCapture({ control, pointerId });
3289
+ releasePointerCapture({ control, pointerId });
3290
+ ```
3291
+
3292
+ WinUI captures a `Pointer` object where the web captures an id, so the element
3293
+ remembers every pointer its input events carried; capturing an id that has not
3294
+ reached the element yet throws
3295
+ Call it from a `pointerdown` handler, as on the web
3296
+
3297
+ The Canvas 2D of `winui-svelte/win2d/context-2d` reads the same fields (one
3298
+ implementation), so a drawing library on a canvas sees the same `pointerType`,
3299
+ `pressure`, tilt and coalesced events
3300
+
3301
+ ### Focus
3302
+
3303
+ ```svelte
3304
+ <script lang="ts">
3305
+ import { activeElement, moveFocus, trapFocus } from "winui-svelte/input";
3306
+ import { FocusNavigationDirection } from "winui-svelte/enums";
3307
+
3308
+ const active = activeElement(); // active.current: the focused FrameworkElement or null
3309
+ </script>
3310
+
3311
+ <StackPanel {@attach trapFocus()}>
3312
+ <Button onclick={sender => moveFocus({ direction: FocusNavigationDirection.Down, within: sender })}>
3313
+ Down
3314
+ </Button>
3315
+ </StackPanel>
3316
+ ```
3317
+
3318
+ | API | Web | Notes |
3319
+ |---|---|---|
3320
+ | `activeElement().current` | `document.activeElement` | reactive; kept by `FocusManager`'s `GotFocus` and `LostFocus`, so it is null until focus first moves after the call; call it while a component initialises |
3321
+ | `moveFocus({ direction, within })` | none | `Up`, `Down`, `Left`, `Right` over XY focus navigation; `within` is any loaded element of the window; WinUI refuses `Next` and `Previous` in a desktop app, so those throw |
3322
+ | `trapFocus({ shouldFocusFirst })` | a focus trap | an attachment: sets `TabFocusNavigation` to `Cycle` (Tab after the last control goes to the first, Shift+Tab before the first to the last), moves focus in when the element is shown, gives it back to where it was when the element goes |
3323
+ | `FocusNavigationDirection` | none | in `winui-svelte/enums` |
3324
+ | `focusElement` | `element.focus()` | in `winui-svelte`, see Reactive readers of an element |
3325
+
3326
+ `FocusManager.GetFocusedElement()` without a window returns nothing in a desktop
3327
+ app, which is why `moveFocus` takes `within` and `trapFocus` reads the focus by
3328
+ the element's own window
3329
+ A trap cannot stop focus leaving through the title bar or another window
3330
+
2494
3331
  ## Web APIs (`winui-svelte/web-apis`)
2495
3332
 
2496
3333
  The standard Web APIs over WinRT and Win32, installed on demand; the package
@@ -2522,6 +3359,8 @@ needs
2522
3359
  | `requestAnimationFrame`, `requestIdleCallback` | `winui-svelte/web-apis/timing` | web | none | done |
2523
3360
  | `ResizeObserver`, `IntersectionObserver`, `MutationObserver` | `winui-svelte/web-apis/observers` | web plus extras | none | done |
2524
3361
  | `element.animate()`, `Animation`, `KeyframeEffect` | `winui-svelte/web-apis/animations` | web plus extras | none | done |
3362
+ | `ScrollTimeline`, `ViewTimeline`, `element.animate(keyframes, { timeline })` | `winui-svelte/scroll-timeline` | web | none | done |
3363
+ | `document.startViewTransition`, `ViewTransition`, `view-transition-name` | `winui-svelte/view-transitions` | web plus extras | none | done |
2525
3364
  | `navigator.mediaDevices` (`getUserMedia`, `getDisplayMedia`, `enumerateDevices`), `MediaStream`, `MediaRecorder` | `winui-svelte/web-apis/media-devices` | web plus extras | none (a camera or microphone needs the Windows privacy switch on) | done |
2526
3365
  | `speechSynthesis`, `SpeechSynthesisUtterance`, `SpeechRecognition` (SSML, silences, scenario, phrases) | `winui-svelte/web-apis/speech` | web plus extras | none | done |
2527
3366
  | `navigator.mediaSession`, `MediaMetadata` | `winui-svelte/web-apis/media-session` | web plus extras | none | done |
@@ -2533,6 +3372,7 @@ needs
2533
3372
  | `IdleDetector` (user and screen state) | `winui-svelte/web-apis/idle` | web plus extras | none | done |
2534
3373
  | `navigator.credentials`, `PasswordCredential`, `PublicKeyCredential` (Windows Hello) | `winui-svelte/web-apis/credentials` | web plus extras | none | done |
2535
3374
  | `EyeDropper` | `winui-svelte/web-apis/eye-dropper` | web plus extras | none | done |
3375
+ | `FontFace`, `document.fonts` (font files of the app) | `winui-svelte/web-apis/fonts` | web plus extras | none | done |
2536
3376
  | `navigator.contacts` (Contact Picker) | `winui-svelte/web-apis/contacts` | web plus extras | for most apps, package identity | done |
2537
3377
 
2538
3378
  Every row is built and tested; the timers (`setTimeout`, `setInterval`,
@@ -2613,6 +3453,23 @@ with `registerPermission({ name, provider })` and calls
2613
3453
  `incomingCall`, `urgent`), `expiration`, `group`, `hero`, `audio` (`default`,
2614
3454
  `im`, `mail`, `reminder`, `sms`, `alarm` to `alarm10`, `call` to `call10`),
2615
3455
  `attribution`
3456
+ - Listing and clearing: `notificationRegistration().getNotifications({ tag })`
3457
+ (`NotificationRegistration`, the notification members of a `ServiceWorkerRegistration`, which has no
3458
+ service worker here) lists what this run showed and Windows still holds
3459
+ (`AppNotificationManager.GetAllAsync`), so one the user dismissed in the
3460
+ notification center is not listed; one an earlier run showed has no object
3461
+ to return and is not listed; `Notification.closeAll()` (WinUI-only) closes
3462
+ the ones this run holds and calls `RemoveAllAsync`, which clears the earlier
3463
+ run's as well
3464
+ - Scheduling: `showTrigger: new TimestampTrigger(Date.now() + 60_000)` shows
3465
+ the notification at that moment, even after the app has exited
3466
+ (`Windows.UI.Notifications`' `ScheduledToastNotification`, built from the
3467
+ same toast XML; the App SDK manager has no schedule); only a process with
3468
+ package identity can schedule, and without it the constructor throws
3469
+ `NotSupportedError`; a scheduled notification fires no `show`, and
3470
+ `close()` before the moment takes it out of the schedule; not exercised for
3471
+ real here (`node.exe` has no identity), so the tests cover it with a fake
3472
+ backend
2616
3473
  - Package identity: not needed to show; an unpackaged app registers with
2617
3474
  `identity` (name and icon file) and `appUserModelId`; the `urgent` scenario
2618
3475
  and tooltips need a recent Windows build; a click after the process has gone
@@ -2646,8 +3503,11 @@ silent failure
2646
3503
  count is a `TypeError`
2647
3504
  WinUI-only: `navigator.setAppBadgeGlyph(glyph)` with a `BadgeGlyph`
2648
3505
  (`alert`, `available`, `away`, `busy`, `newMessage` and so on)
2649
- The unpackaged fallback (an overlay icon through `ITaskbarList3`) is not
2650
- built; without identity Windows refuses and the call rejects
3506
+ Without identity Windows refuses and the call rejects, unless
3507
+ `installBadging({ fallback: taskbarBadgeBackend(handle.taskbar) })` is given:
3508
+ the badge is then drawn as an overlay icon on that window's taskbar button
3509
+ (a red disc with the count, 99+ above 99, or the glyph's colour and mark),
3510
+ see "Taskbar button"
2651
3511
  - `installLaunch({ initialArguments })` defines `launchQueue` (a `LaunchQueue`) with `setConsumer`
2652
3512
  The start's command line is the first launch; each later copy's is handed
2653
3513
  over with `launchQueue.enqueueActivation(activation)` (WinUI-only), which
@@ -2655,7 +3515,7 @@ silent failure
2655
3515
  `LaunchParams.targetURL` is the first `scheme:` argument, `files` are the
2656
3516
  existing paths, as the file-system API's own `FileSystemFileHandle` (`name`, `getFile()`, the WinUI-only `path`)
2657
3517
  Launches wait for the consumer; registering the protocol or file type with
2658
- Windows is the installer's job
3518
+ Windows is `winui-svelte/app/activation`'s job (see Activation)
2659
3519
 
2660
3520
  ### Location and device state
2661
3521
 
@@ -2864,8 +3724,16 @@ called (`runWindow({ webApis: [installPage, installTiming] })`)
2864
3724
  that `usePageWindow(handle)` is given (`bind:handle` on `<Window>`)
2865
3725
 
2866
3726
  - `document.visibilityState`, `hidden`, `hasFocus()` and `visibilitychange`:
2867
- hidden means minimized or hidden (to the tray); the window being active is
2868
- focus
3727
+ hidden means minimized, hidden (to the tray) or the display turned off; the
3728
+ window being active is focus
3729
+ - `document` `freeze` and `resume` (Page Lifecycle, with `onfreeze` and
3730
+ `onresume`): once per wake of the machine from sleep, `freeze` then
3731
+ `resume` together, because a sleeping process cannot see itself go to sleep;
3732
+ the wake is found by a gap of over ten seconds between two ticks of a
3733
+ one-second timer, so it is also counted after a long stall of the process;
3734
+ never exercised with a real sleep here (the tests use a stand-in clock)
3735
+ - The display and the wake come from `windowsSystemPowerSource` (see Devices,
3736
+ power); a machine where it cannot be read counts as awake with the display on
2869
3737
  - `window` `focus`, `blur`, `beforeunload` (call `preventDefault()` to keep the
2870
3738
  window open; there is no prompt), `pagehide` and `unload`, with `onfocus` and
2871
3739
  the other handler properties; `window.close()`, `window.closed` and
@@ -2935,13 +3803,107 @@ tree's elements `animate()` and `getAnimations()`, and the global scope
2935
3803
  rotation, size, margin, padding, border, shape dashes); the keyframes are
2936
3804
  evenly spaced, so a keyframe `offset` or `easing` is ignored, and anything
2937
3805
  else warns once
2938
- - Not covered: `document.getAnimations()`, composite modes, pseudo-elements and
2939
- scroll timelines
3806
+ - Not covered: `document.getAnimations()`, composite modes and
3807
+ pseudo-elements; scroll timelines are `winui-svelte/scroll-timeline`, below
2940
3808
  - Extras (WinUI only): `element.prepareConnectedAnimation(key)` and
2941
3809
  `element.startConnectedAnimation(key)` over `ConnectedAnimationService`;
2942
3810
  implicit animations are the CSS `transition:` the translator already maps to
2943
3811
  `OpacityTransition` and its siblings
2944
3812
 
3813
+ #### Scroll timelines (`winui-svelte/scroll-timeline`)
3814
+
3815
+ `installScrollTimeline()` defines `ScrollTimeline` and `ViewTimeline` on the
3816
+ global scope and lets `element.animate(keyframes, { timeline })` follow a scroll
3817
+ position instead of the clock; install `installAnimations()` first for the rest
3818
+ of the Web Animations API (a call without a timeline goes on to it)
3819
+ It is not part of `installWebApis`; `"ScrollTimeline" in globalThis` tells
3820
+ whether it was installed
3821
+
3822
+ - `new ScrollTimeline({ source, axis })`: `source` is a `<scroll-viewer>`
3823
+ element, `axis` is `block` (the default), `inline`, `x` or `y`;
3824
+ `currentTime` is `{ value, unit: "percent" }` of the scrollable range, or
3825
+ `null` while the source is no scroll viewer in a window, and `duration` is 100
3826
+ percent
3827
+ - `new ViewTimeline({ subject, axis, inset })`: `currentTime` is how far the
3828
+ subject has crossed the nearest scroll viewer, from entering (0) to leaving
3829
+ (100); `inset` is `"10px"` or `["10px", "20%"]`
3830
+ - `element.animate(keyframes, { timeline, rangeStart, rangeEnd, direction })`
3831
+ returns a `ScrollLinkedAnimation` with `timeline`, `playState`
3832
+ (`running` or `idle`) and `cancel()`; `rangeStart` and `rangeEnd` are the
3833
+ CSS `animation-range` words (`"entry 10%"`, `"25%"`)
3834
+ - The same rules as the CSS: the keyframes go through the CSS build's reader,
3835
+ so opacity, translate, scale, rotate and a transform of them work, and a
3836
+ width, a color, a keyword or a skew is a `NotSupportedError`, as is an easing
3837
+ other than `linear` and an iteration count other than 1; a keyframe `offset`
3838
+ is honoured, the rest are evenly spaced
3839
+ - Under reduced motion (Windows' animation effects off, or the
3840
+ `isMotionReduced` option) the animation does not start and `playState` is
3841
+ `idle`; an element with the class `winui-motion-always` keeps it
3842
+ - The compositor runs the animation, so the UI thread cannot read its value
3843
+ back: `Visual.Opacity` stays at its resting value (the pixels are what shows)
3844
+ - Not covered: `getAnimations()` for these, `pause()`, `play()` and
3845
+ `currentTime` of the animation, and `timeline-scope`
3846
+
3847
+ #### View transitions (`winui-svelte/view-transitions`)
3848
+
3849
+ `installViewTransitions()` defines `document.startViewTransition` and
3850
+ `ViewTransition` over WinUI's connected animations
3851
+ An element takes part through `view-transition-name` in a sheet or a style
3852
+ attribute (`winui-svelte/css/view-transition`, see `src/css/API.md`): before
3853
+ the update runs, each named element is prepared under its name
3854
+ (`ConnectedAnimationService.PrepareToAnimate`); after it, the element with the
3855
+ same name starts that animation (`TryStart`), and WinUI flies a picture of the
3856
+ old element to the new one
3857
+
3858
+ ```svelte
3859
+ <script lang="ts">
3860
+ import { installViewTransitions } from "winui-svelte/view-transitions";
3861
+
3862
+ installViewTransitions();
3863
+ let selected = $state<Photo | null>(null);
3864
+
3865
+ function open(photo: Photo) {
3866
+ document.startViewTransition(() => {
3867
+ selected = photo;
3868
+ });
3869
+ }
3870
+ </script>
3871
+
3872
+ {#if selected}
3873
+ <border class="hero" style="view-transition-name: photo-{selected.id}" />
3874
+ {:else}
3875
+ {#each photos as photo (photo.id)}
3876
+ <border style="view-transition-name: photo-{photo.id}" />
3877
+ {/each}
3878
+ {/if}
3879
+ ```
3880
+
3881
+ - `startViewTransition(update)` or `startViewTransition({ update, types })`
3882
+ returns a `ViewTransition` with `updateCallbackDone`, `ready`, `finished`,
3883
+ `types` and `skipTransition()`; the update may return a promise, and runs in
3884
+ a microtask after the old elements are prepared
3885
+ - After the update the transition waits one turn of the event loop for Svelte
3886
+ to apply it, then pairs the names; `ready` resolves once the animations
3887
+ start, `finished` once WinUI reports each one completed
3888
+ - Like the web: a name two elements share skips the transition (`ready`
3889
+ rejects with an `InvalidStateError`), `skipTransition()` rejects `ready`
3890
+ with an `AbortError` and lets `finished` follow the update, an update that
3891
+ throws rejects all three promises with its error, and a new transition skips
3892
+ the one still running
3893
+ - Extras (WinUI only): `configuration` in the options object picks the
3894
+ motion, a `ConnectedAnimationKind` from `winui-svelte/enums`: `gravity`
3895
+ (WinUI's default, for going forward), `direct` (for going back) or `basic`
3896
+ - Limits: only a name both states have moves; a name only the old state has
3897
+ gets no exit and one only the new state has no entrance (the web would fade
3898
+ them), and there is no cross-fade of the whole window (the web's `root`)
3899
+ An element that keeps its name and stays in the tree does not move: WinUI
3900
+ will not animate an element to itself (`implicitLayoutAnimation` slides
3901
+ children the layout moves)
3902
+ The duration and easing are WinUI's (`ConnectedAnimationService`), not CSS;
3903
+ the `::view-transition-*` pseudo-elements, `view-transition-class` and
3904
+ `:active-view-transition-type()` have no counterpart, and `types` is carried
3905
+ but read by nothing
3906
+
2945
3907
  ### Media devices (`winui-svelte/web-apis/media-devices`)
2946
3908
 
2947
3909
  `installMediaDevices()` defines `navigator.mediaDevices` (`enumerateDevices`,
@@ -3188,6 +4150,35 @@ needs a single-threaded apartment: the window thread has one)
3188
4150
  `unlocked`) set; `change` fires when either moves
3189
4151
  - Extra: `idleMilliseconds`, the time since the last input at the last reading
3190
4152
 
4153
+ #### Fonts
4154
+
4155
+ `installFontFaces()` defines `FontFace` and `document.fonts` (a `FontFaceSet`)
4156
+ over the font registry that a stylesheet's `@font-face` also fills, so a font
4157
+ file of the app is used by its family name in a `font-family` of a style and in
4158
+ a `fontFamily` prop
4159
+
4160
+ - `new FontFace(family, source, descriptors)`: `source` is `url("...")`, a path
4161
+ or a `file:` URL (a relative path is relative to the working folder), or the
4162
+ bytes of a font (written to a file of the temporary folder named by their
4163
+ hash); `load()` registers the file under the family and rejects with
4164
+ `NetworkError` when there is no such file; `status` and `loaded` follow
4165
+ - `document.fonts.add(face)` registers at once; `delete(face)`, `clear()` and
4166
+ `has(face)` as on the web; `check(font)` and `load(font)` look at the faces of
4167
+ the set that the font shorthand names; `ready` is resolved and `status` is
4168
+ `loaded`
4169
+ - `FontLoadStatus` is the closed set of `status` (`"unloaded"`, `"loading"`,
4170
+ `"loaded"`, `"error"`)
4171
+ - The family must be the name written inside the font file; weight, style,
4172
+ width and `unicodeRange` are kept and read back but choose nothing, because
4173
+ WinUI takes the face from the file
4174
+ - WinUI cannot unload a font: after `delete(face)` the family stops being
4175
+ spelled as its file, but a font already loaded stays usable by name until the
4176
+ process ends
4177
+ - It works in a plain Node process; nothing is installed on the machine (the
4178
+ file is handed to WinUI as `ms-appx:///` and its absolute path)
4179
+ - Extra: `registerFont({ family, source, base })` and `unregisterFont(family)`
4180
+ from `winui-svelte/css`, the registry itself
4181
+
3191
4182
  #### Other exports
3192
4183
 
3193
4184
  - Bluetooth: `BluetoothRemoteGATTServer`, `BluetoothRemoteGATTService`,
@@ -3276,6 +4267,82 @@ the five properties
3276
4267
  - `ContactChooser` is the one interface the real picker (`windowsContactChooser`)
3277
4268
  and the tests implement
3278
4269
 
4270
+ ## Accessibility (`winui-svelte/accessibility`)
4271
+
4272
+ Tell a screen reader what happened, and check the window for what it would
4273
+ trip on; each is opt-in, and the audit is for development only
4274
+
4275
+ ```svelte
4276
+ <script lang="ts">
4277
+ import { announce, LivePriority, liveRegion } from "winui-svelte/accessibility";
4278
+ import { elementRef } from "winui-svelte";
4279
+ import { TextBlock } from "winui-svelte/components";
4280
+
4281
+ const status = elementRef<TextBlock>();
4282
+ </script>
4283
+
4284
+ <!-- a live region: a change of its text is spoken -->
4285
+ <TextBlock {@attach liveRegion({ priority: LivePriority.POLITE })} {@attach status.attach}>{saved}</TextBlock>
4286
+ ```
4287
+
4288
+ ```ts
4289
+ announce({ message: "Saved", element: status.current, priority: LivePriority.POLITE });
4290
+ ```
4291
+
4292
+ | Web API | Here |
4293
+ |---|---|
4294
+ | `aria-live="polite"` and `role="status"` | `LivePriority.POLITE`: waits for the user, a newer message replaces an older one |
4295
+ | `aria-live="assertive"` and `role="alert"` | `LivePriority.ASSERTIVE`: interrupts |
4296
+ | `aria-live="off"` | `LivePriority.OFF`: says nothing |
4297
+ | writing text into a live region | `announce({ message, element, priority })`: `AutomationPeer.RaiseNotificationEvent` (kind Other; polite is `MostRecent`, assertive is `ImportantMostRecent`) |
4298
+ | the `aria-live` attribute | `liveRegion({ priority })`: `AutomationProperties.LiveSetting` of the element |
4299
+
4300
+ - `FormField` marks its error text with the same `liveRegion`, so a form error
4301
+ is spoken when it appears
4302
+ - `announce` raises the notification from `element`, or from the nearest
4303
+ element above it that has an automation peer (a layout panel has none; a
4304
+ `TextBlock` does), so keep a small status element for it
4305
+ - `LivePriority` is also in `winui-svelte/enums`
4306
+
4307
+ ### Audit (`winui-svelte/accessibility/audit`)
4308
+
4309
+ `auditAccessibility(root)` walks the visual tree of a laid-out window and returns
4310
+ typed findings; call it from `onloaded` or a button in development, and never
4311
+ import the entry in a production build
4312
+
4313
+ ```ts
4314
+ import { auditAccessibility } from "winui-svelte/accessibility/audit";
4315
+
4316
+ for (const finding of auditAccessibility(content)) {
4317
+ console.warn(`${finding.path}: ${finding.message} - ${finding.suggestion}`);
4318
+ }
4319
+ ```
4320
+
4321
+ | Rule id | Applies to | Finds |
4322
+ |---|---|---|
4323
+ | `unnamed-button` | buttons | no accessible name (an icon-only button with no `automationName`) |
4324
+ | `unlabeled-input` | text boxes, combo boxes, sliders, check boxes | no name, header or `automationLabeledBy` |
4325
+ | `duplicate-access-key` | interactive controls | the same `accessKey` on two elements |
4326
+ | `zero-size-focusable` | interactive controls | takes focus but has no width or height |
4327
+ | `unreachable-by-keyboard` | interactive controls | not a tab stop and no access key or keyboard accelerator |
4328
+ | `low-contrast-text` | text, buttons, inputs | below WCAG AA (4.5 to 1, 3 to 1 for large text) on a solid background the tree can resolve |
4329
+
4330
+ - The name is what UI Automation computes (`AutomationPeer.GetName`), so it
4331
+ counts `automationName`, a button's text, a header and a label alike
4332
+ - Contrast is measured only where the foreground is a solid brush and a solid
4333
+ background lies behind the text (a translucent one is mixed with it);
4334
+ gradients, acrylic and images are left alone
4335
+ - The rules are one table, `accessibilityRules`; `ruleDescriptions()` is the
4336
+ table without its predicates, and `winui-svelte/accessibility/rules.json`
4337
+ is the same as JSON for an editor (`pnpm gen:accessibility-rules`, checked by
4338
+ `pnpm gen:accessibility-rules:check` in the lint gate)
4339
+ - `auditTree({ root, host })` runs the rules over any tree a host describes,
4340
+ which is how the unit tests run them without WinUI
4341
+ - `examples/accessibility` holds a failing and a fixed form;
4342
+ `test/accessibility.test.ts` audits it in a real window and hears
4343
+ `announce` through a UI Automation event handler, and the gallery page
4344
+ "Live regions and the audit" shows both
4345
+
3279
4346
  ## Forms (`winui-svelte/forms`)
3280
4347
 
3281
4348
  Opt-in: nothing in the core imports it, so an app that does not use it does
@@ -3750,7 +4817,7 @@ Each area is an opt-in subpath, so an app that imports none of them bundles none
3750
4817
  | `winui-svelte/devices/input` | `inputDevices`, `readInputCapabilities` |
3751
4818
  | `winui-svelte/devices/bluetooth` | adapter, devices, `bluetoothScanner`, `scanBluetoothAdvertisements`, GATT, UUIDs, radios |
3752
4819
  | `winui-svelte/devices/printers` | `printers`, `listPrinters`, `printFile` |
3753
- | `winui-svelte/devices/power` | `battery` |
4820
+ | `winui-svelte/devices/power` | `battery`, `systemPower` |
3754
4821
  | `winui-svelte/devices/network` | `networkInformation` |
3755
4822
  | `winui-svelte/devices/audio` | `audioDevices` |
3756
4823
  | `winui-svelte/devices/display` | `displays`, `getDisplayMonitors` |
@@ -3771,7 +4838,7 @@ Everything here was checked to work from `node.exe` with no package identity;
3771
4838
  - A list is a keyed reactive collection (`KeyedCollection`): `{#each collection.items as device (device.id)}`, with `get(key)`, `has(key)`, `keys` and `size`
3772
4839
  - A change makes a new snapshot object, so a keyed block redraws the row
3773
4840
  - Every rune reads through a `source` (or `defaults`, `list`, `createSource`) option whose default is the Windows end: `windowsInputSource`, `windowsPowerSource`, `windowsNetworkSource`, `windowsAudioDefaults`, `windowsDisplaySource`, `windowsGamepadSource` and `windowsPrinterSource` are those defaults, exported so a test or a wrapper can use or replace them
3774
- - The WinRT enums the results are made of are re-exported under their own names: `AudioDeviceRole`, `BatteryStatus`, `BluetoothCacheMode`, `BluetoothLEScanningMode`, `DisplayMonitorConnectionKind`, `EnergySaverStatus`, `GamepadButtons`, `NetworkConnectivityLevel`, `NetworkCostType`, `PointerDeviceType`, `PowerSupplyStatus`, `RadioAccessStatus`, `RadioKind`, `RadioState`
4841
+ - The WinRT enums the results are made of are re-exported under their own names: `AudioDeviceRole`, `BatteryStatus`, `BluetoothCacheMode`, `BluetoothLEScanningMode`, `DisplayMonitorConnectionKind`, `DisplayStatus`, `EffectivePowerMode`, `EnergySaverStatus`, `GamepadButtons`, `NetworkConnectivityLevel`, `NetworkCostType`, `PointerDeviceType`, `PowerSupplyStatus`, `RadioAccessStatus`, `RadioKind`, `RadioState`, `UserPresenceStatus`
3775
4842
 
3776
4843
  ### Device enumeration
3777
4844
 
@@ -3914,6 +4981,7 @@ build; print the document to a file and use `printFile`, or draw it with Win2D
3914
4981
  | Rune | Reads | Fields |
3915
4982
  |---|---|---|
3916
4983
  | `battery()` | `Battery.AggregateBattery`, `PowerManager` | `hasBattery`, `percent`, `isCharging`, `isDischarging`, `isOnAcPower`, `isEnergySaverOn`, `remainingDischargeMilliseconds`, `healthPercent`, `reading` |
4984
+ | `systemPower()` | `Microsoft.Windows.System.Power.PowerManager` (Windows App SDK) | `displayStatus`, `isDisplayOn`, `effectivePowerMode`, `isUserPresent`, `resumeCount`, `reading` |
3917
4985
  | `networkInformation()` | `NetworkInformation` | `isOnline`, `connectivity`, `profileName`, `isMetered`, `isRoaming`, `isWifi`, `isMobile`, `signalBars`, `reading` (with every profile name) |
3918
4986
  | `displays()` | `DisplayArea` and its watcher | `areas` (bounds and work area), `primary`, `count`; needs the Windows App SDK, which a window has |
3919
4987
  | `getDisplayMonitors()` | `DisplayMonitor` | name, native resolution, physical size, DPI, luminance; needs no window |
@@ -3927,6 +4995,14 @@ build; print the document to a file and use `printFile`, or draw it with Win2D
3927
4995
  - A GATT call that does not succeed throws `BluetoothLowEnergyError` with the `GattCommunicationStatus` (`Unreachable`, `ProtocolError`, `AccessDenied`)
3928
4996
  - `getBluetoothAdapter()` resolves to `null` and `radios` is empty when the machine has no adapter
3929
4997
  - An event Windows refuses to an app without a package identity is left unsubscribed: the value is still read live, it only does not update by itself
4998
+ - `systemPower` polls once a second and does not subscribe to `PowerManager`'s
4999
+ events: any subscription (even one removed again) keeps the Node process from
5000
+ exiting, and Windows raises them on a thread of its own, which dynwinrt does
5001
+ not deliver; `SystemSuspendStatus` cannot be read before its event has fired,
5002
+ so `resumeCount` counts a wake as a gap of over ten seconds between two
5003
+ ticks; `userPresenceStatus` reads 2 until Windows has said (a value the
5004
+ bindings do not name); `EnergySaverStatus` is the one `battery` already
5005
+ reads (`isEnergySaverOn`); the properties need the Windows App SDK
3930
5006
  - A machine without a sensor, gamepad, battery or printer reports it (`isAvailable` false, an empty list, `hasBattery` false), never an error
3931
5007
  - The radio state, pairing prompts, Bluetooth consent and the microphone are the user's: reading a list needs no consent, using a device can
3932
5008
 
@@ -3949,6 +5025,58 @@ Does not work or is not offered:
3949
5025
  - Gamepad input while the window is in the background: Windows delivers it to the focused window
3950
5026
  - Sensors on a desktop: there are none, so `isAvailable` is false
3951
5027
 
5028
+ ## Store and package (`winui-svelte/store`)
5029
+
5030
+ The Microsoft Store and package APIs (`Windows.Services.Store.StoreContext`,
5031
+ `Windows.ApplicationModel.Package`, `PackageCatalog`, `StartupTask`) as typed
5032
+ async calls and events, opt-in
5033
+ Every call that needs a package identity answers `{ hasPackage: false }` outside
5034
+ a package (plain Node.js, Electron, `pnpm dev`) and never throws for the missing
5035
+ identity; inside one it answers `{ hasPackage: true, value }`
5036
+ The check is `GetCurrentPackageFullName`, not the exception `Package.Current`
5037
+ throws
5038
+
5039
+ | Export | What |
5040
+ |---|---|
5041
+ | `hasPackage()`, `getPackageInfo()` | whether the process has an identity; the package's name, full name, family name, publisher, version and install path, or null |
5042
+ | `getAppLicense({ window })` | `isActive`, `isTrial`, `skuStoreId`, `expirationDate` (null when it never ends) |
5043
+ | `watchLicense({ window, pollMilliseconds })` | a `LicenseWatcher` that raises `offlinelicenseschanged` (`onofflinelicenseschanged`); `close()` stops it |
5044
+ | `checkForUpdates({ window })` | `{ updates, hasMandatory, install({ onprogress }) }`: nothing is downloaded until `install` is called, and it installs exactly the updates found |
5045
+ | `watchPackages()` | a `PackageWatcher` that raises `packagestaging`, `packageinstalling` and `packageupdating` (`PackageProgressEvent`, with `progress`, `isComplete`, `errorCode`) |
5046
+ | `getStartupTask({ taskId })` | the task's `state`, `enable()` (a request: read the state it returns) and `disable()` |
5047
+ | `UpdateState`, `StartupState`, `PackageStage` | the closed sets, each a value plus a type |
5048
+ | `windowsStoreBackend` | the real backend over the WinRT classes; `StoreBackend` is the interface the calls take, so a test swaps it |
5049
+
5050
+ `window` is the owner of any Store dialog: a `WindowHandle` or the native
5051
+ `Window`; it is given to `IInitializeWithWindow` on the `StoreContext`, as a
5052
+ desktop app must
5053
+ Without it a call that shows UI is refused by Windows
5054
+
5055
+ Events and threads: dynwinrt delivers a callback only when Windows raises it on
5056
+ the UI thread
5057
+ `OfflineLicensesChanged` and the `PackageCatalog` events come from a thread of
5058
+ their own, so they may never arrive
5059
+ `watchLicense` takes `pollMilliseconds` to read the licence on a UI-thread timer
5060
+ and raise the same event when it changed (as `winui-svelte/media` polls the
5061
+ player); `install`'s `onprogress` is an async progress callback and does arrive
5062
+ Treat `watchPackages` as a hint, not a guarantee
5063
+
5064
+ What was checked from `node.exe` with no package identity: `hasPackage()` is
5065
+ false, `getPackageInfo()` is null, and every other call answers
5066
+ `hasPackage: false` (`src/store/store.test.ts`; it installs and downloads
5067
+ nothing)
5068
+ What cannot work without an identity: the licence, the Store update check and
5069
+ install, the package events and startup tasks all, because Windows ties them to
5070
+ the package
5071
+ Under MSIX they are expected to work as documented, but nothing here has run
5072
+ under a real package yet
5073
+
5074
+ Replaces in the any-stt panel: with `getAppLicense`, `watchLicense`,
5075
+ `checkForUpdates`, `watchPackages` and `getStartupTask` running in the packaged
5076
+ `node.exe`, the Rust launcher no longer needs `licence.rs`, `updates.rs`,
5077
+ `store.rs` or its `--startup-task` mode
5078
+ Delete them once the calls are confirmed under the package
5079
+
3952
5080
  ## Reference: the remaining exports
3953
5081
 
3954
5082
  Exports that other sections do not need to name; each has JSDoc in its source
@@ -3967,7 +5095,7 @@ entry point is named nowhere in the docs
3967
5095
  | `releaseFragment`, `rootControl`, `watchRoot`, `unwatchRoot`, `swapControl` | `winui-svelte/host` | the renderer's mount-target plumbing: release what nodes hold, find the root, watch and unwatch it, replace a control in place |
3968
5096
  | `classNameOf` | `winui-svelte/host` | the class name (`ListView`) of a control, from the tag it was registered under, so it holds when a minifier renames classes |
3969
5097
  | `createCssNative`, `installCssRuntime`, `unregisterStyleSheet`, `textTransforms` | `winui-svelte/css` | the CSS runtime's WinUI boundary, its installer, removal of a stylesheet, and the text each element's `text-transform` shows (the renderer reads it) |
3970
- | `animationGroups`, `effectGroups`, `visualEffectGroups`, `clipGroups`, `cursorGroups`, `environmentGroups`, `gradientGroups`, `containerGroups`, `compatGroups`, `focusGroups`, `positionGroups`, `queryGroups`, `resourceGroups`, `surfaceGroups`, `transformGroups` | `winui-svelte/css/*` | the property groups each opt-in subpath adds |
5098
+ | `animationGroups`, `effectGroups`, `visualEffectGroups`, `clipGroups`, `cursorGroups`, `environmentGroups`, `gradientGroups`, `containerGroups`, `compatGroups`, `focusGroups`, `positionGroups`, `queryGroups`, `resourceGroups`, `scrollTimelineGroups`, `surfaceGroups`, `transformGroups`, `viewTransitionGroups`, `visualStateGroups` | `winui-svelte/css/*` | the property groups each opt-in subpath adds |
3971
5099
  | `SHEET_SUFFIX`, `SheetError` | `winui-svelte/css/sheet-module` | the module-name suffix of a compiled stylesheet; a stylesheet WinUI cannot say |
3972
5100
  | `translateComponent` | `winui-svelte/css/sheet-module` | the build's translation of a component's `<style>`, which the validator and the Vite plugin share |
3973
5101
  | `unusedSelectorMessages` | `winui-svelte/css/sheet-module` | the messages of Svelte's unused-selector warnings for a component read with its instances as elements, which `winuiWarningFilter` keeps |
@@ -4001,6 +5129,12 @@ event announces, such as an unreferenced timer) and uses next to no CPU
4001
5129
  The one thing nobody can ask libuv from outside is when its next timer fires:
4002
5130
  while Node itself holds a timer (a socket timeout) the pump wakes every 16 ms
4003
5131
  The timers an app makes go through the scheduler, which the dispatcher drives
5132
+ Measured idle cost, over 20 seconds after a minute of settling, on Windows 11
5133
+ (build 26300) with a 32-thread CPU and the Windows App SDK 2.2 build of this
5134
+ repository: `examples/hello` used 0.15 percent of one core and `examples/tray`
5135
+ (a tray icon and no window) used 0.23 percent, so nothing in the idle path needs
5136
+ fixing; the first seconds after start cost more (about 2 percent of a core) while
5137
+ the window loads
4004
5138
  A host that calls `process.exit` while the window runs would end the process
4005
5139
  under WinUI's thread (a delegate then finds the Node environment closing, and
4006
5140
  the process can end with 0xC000027B); `initWindowsAppSdk` therefore installs