@indietabletop/appkit 7.0.0-0 → 7.0.0-rc.1

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 (286) hide show
  1. package/lib/AppConfig/AppConfig.tsx +80 -0
  2. package/lib/AppConfig/formatters.tsx +48 -0
  3. package/lib/AuthCard/AuthCard.stories.ts +34 -0
  4. package/lib/AuthCard/AuthCard.tsx +64 -0
  5. package/lib/AuthCard/style.css.ts +49 -0
  6. package/lib/CacheProvider.tsx +20 -0
  7. package/lib/DialogTrigger/index.tsx +36 -0
  8. package/lib/DocumentTitle/DocumentTitle.tsx +10 -0
  9. package/lib/EnumMapper.ts +50 -0
  10. package/lib/ExternalLink.tsx +10 -0
  11. package/lib/FullscreenDismissBlocker.tsx +23 -0
  12. package/{dist/HistoryState.d.ts → lib/HistoryState.ts} +5 -2
  13. package/lib/IndieTabletopClubLogo.tsx +44 -0
  14. package/lib/IndieTabletopClubSymbol.tsx +37 -0
  15. package/lib/InfoPage/index.tsx +46 -0
  16. package/lib/InfoPage/pages.tsx +36 -0
  17. package/lib/InfoPage/style.css.ts +36 -0
  18. package/lib/Letterhead/index.tsx +85 -0
  19. package/lib/Letterhead/stories.tsx +41 -0
  20. package/lib/Letterhead/style.css.ts +152 -0
  21. package/lib/LetterheadForm/LetterheadReadonlyTextField.stories.tsx +17 -0
  22. package/lib/LetterheadForm/LetterheadSubmitError.stories.tsx +19 -0
  23. package/lib/LetterheadForm/LetterheadTextField.stories.tsx +19 -0
  24. package/lib/LetterheadForm/index.tsx +137 -0
  25. package/lib/LetterheadForm/style.css.ts +89 -0
  26. package/lib/ListView/ListView.stories.tsx +36 -0
  27. package/lib/ListView/ListView.tsx +80 -0
  28. package/lib/ListView/style.css.ts +90 -0
  29. package/lib/LoadingIndicator.tsx +40 -0
  30. package/lib/MiddotSeparated/MiddotSeparated.stories.ts +26 -0
  31. package/lib/MiddotSeparated/MiddotSeparated.tsx +26 -0
  32. package/lib/MiddotSeparated/style.css.ts +10 -0
  33. package/lib/ModalDialog/index.tsx +28 -0
  34. package/lib/ModalDialog/style.css.ts +88 -0
  35. package/lib/ModernIDB/Cursor.ts +91 -0
  36. package/lib/ModernIDB/ModernIDB.ts +337 -0
  37. package/lib/ModernIDB/ModernIDBError.ts +9 -0
  38. package/lib/ModernIDB/ObjectStore.ts +195 -0
  39. package/lib/ModernIDB/ObjectStoreIndex.ts +102 -0
  40. package/lib/ModernIDB/README.md +9 -0
  41. package/lib/ModernIDB/Transaction.ts +40 -0
  42. package/lib/ModernIDB/VersionChangeManager.ts +57 -0
  43. package/lib/ModernIDB/bindings/factory.tsx +165 -0
  44. package/lib/ModernIDB/bindings/index.ts +2 -0
  45. package/{dist/ModernIDB/bindings/types.d.ts → lib/ModernIDB/bindings/types.ts} +32 -13
  46. package/lib/ModernIDB/bindings/utils.tsx +32 -0
  47. package/lib/ModernIDB/index.ts +10 -0
  48. package/lib/ModernIDB/types.ts +120 -0
  49. package/lib/ModernIDB/utils.ts +51 -0
  50. package/lib/QRCode/QRCode.stories.tsx +41 -0
  51. package/lib/QRCode/QRCode.tsx +54 -0
  52. package/lib/QRCode/style.css.ts +23 -0
  53. package/lib/ReleaseInfo/index.tsx +29 -0
  54. package/lib/RichText/RichText.tsx +55 -0
  55. package/lib/RichText/style.css.ts +147 -0
  56. package/lib/RulesetResolver.ts +214 -0
  57. package/lib/SafariCheck/SafariCheck.stories.tsx +99 -0
  58. package/lib/SafariCheck/SafariCheck.tsx +273 -0
  59. package/lib/SafariCheck/addToDock.svg +13 -0
  60. package/lib/SafariCheck/addToHomeScreen.svg +12 -0
  61. package/lib/SafariCheck/safari.svg +32 -0
  62. package/lib/SafariCheck/shareIcon.svg +11 -0
  63. package/lib/SafariCheck/style.css.ts +106 -0
  64. package/lib/ServiceWorkerHandler.tsx +53 -0
  65. package/lib/ShareButton/ShareButton.stories.tsx +58 -0
  66. package/lib/ShareButton/ShareButton.tsx +153 -0
  67. package/lib/ShareButton/test.css.ts +3 -0
  68. package/lib/SubscribeCard/LetterheadInfoCard.tsx +23 -0
  69. package/lib/SubscribeCard/SubscribeByEmailCard.stories.tsx +69 -0
  70. package/lib/SubscribeCard/SubscribeByEmailCard.tsx +183 -0
  71. package/lib/SubscribeCard/SubscribeByPledgeCard.stories.tsx +133 -0
  72. package/lib/SubscribeCard/SubscribeByPledgeCard.tsx +127 -0
  73. package/lib/SubscribeCard/style.css.ts +14 -0
  74. package/lib/Sync/SyncIcon.stories.tsx +67 -0
  75. package/lib/Sync/SyncIcon.tsx +102 -0
  76. package/lib/Sync/SyncLog.tsx +222 -0
  77. package/lib/Sync/SyncLogList.stories.tsx +219 -0
  78. package/lib/Sync/style.css.ts +126 -0
  79. package/lib/account/AccountIcon.tsx +15 -0
  80. package/lib/account/AccountIssueView.tsx +44 -0
  81. package/lib/account/AlreadyLoggedInView.tsx +47 -0
  82. package/lib/account/CurrentUserFetcher.stories.tsx +292 -0
  83. package/lib/account/CurrentUserFetcher.tsx +118 -0
  84. package/lib/account/FailureFallbackView.tsx +36 -0
  85. package/lib/account/JoinCard.stories.tsx +257 -0
  86. package/lib/account/JoinCard.tsx +301 -0
  87. package/lib/account/LoadingView.tsx +14 -0
  88. package/lib/account/LoginCard.stories.tsx +288 -0
  89. package/lib/account/LoginCard.tsx +100 -0
  90. package/lib/account/LoginView.tsx +151 -0
  91. package/lib/account/NoConnectionView.tsx +34 -0
  92. package/lib/account/PasswordResetCard.stories.tsx +242 -0
  93. package/lib/account/PasswordResetCard.tsx +296 -0
  94. package/lib/account/UserMismatchView.tsx +62 -0
  95. package/lib/account/VerifyPage.tsx +195 -0
  96. package/lib/account/iconMask.svg +3 -0
  97. package/lib/account/style.css.ts +81 -0
  98. package/{dist/account/types.d.ts → lib/account/types.ts} +6 -3
  99. package/lib/account/useFetchCurrentUser.tsx +63 -0
  100. package/lib/account/useRedirectPath.ts +21 -0
  101. package/lib/animations.css.ts +17 -0
  102. package/lib/append-copy-to-text.ts +35 -0
  103. package/lib/async-op.ts +298 -0
  104. package/lib/atomic.css.ts +11 -0
  105. package/{dist/caught-value.d.ts → lib/caught-value.ts} +11 -1
  106. package/{dist/class-names.d.ts → lib/class-names.ts} +17 -6
  107. package/lib/client.ts +662 -0
  108. package/lib/common.css.ts +48 -0
  109. package/lib/copyrightRange.ts +10 -0
  110. package/lib/createSafeStorage.ts +91 -0
  111. package/lib/createStrictContext.ts +15 -0
  112. package/lib/failureMessages.ts +108 -0
  113. package/lib/form/FormSubmitButton.tsx +58 -0
  114. package/lib/form/SubmitErrorAlert.tsx +21 -0
  115. package/lib/form/style.css.ts +9 -0
  116. package/lib/globals.css.ts +62 -0
  117. package/lib/groupBy.ts +25 -0
  118. package/lib/hrefs.ts +48 -0
  119. package/lib/idToDate.ts +8 -0
  120. package/lib/ids.ts +6 -0
  121. package/lib/index.ts +78 -0
  122. package/lib/internal.css.ts +10 -0
  123. package/lib/layers.css.ts +3 -0
  124. package/lib/mailto.ts +40 -0
  125. package/lib/media.ts +50 -0
  126. package/lib/random.ts +19 -0
  127. package/lib/result/swr.ts +18 -0
  128. package/{dist/sleep.d.ts → lib/sleep.ts} +3 -1
  129. package/lib/store/index.tsx +292 -0
  130. package/lib/store/store.ts +482 -0
  131. package/lib/store/types.ts +45 -0
  132. package/lib/store/utils.ts +54 -0
  133. package/lib/storybook/decorators.tsx +10 -0
  134. package/lib/structs.ts +3 -0
  135. package/{dist/typeguards.d.ts → lib/typeguards.ts} +3 -1
  136. package/{dist/types.d.ts → lib/types.ts} +23 -12
  137. package/lib/unique.ts +24 -0
  138. package/lib/use-async-op.ts +16 -0
  139. package/lib/use-document-background-color.ts +16 -0
  140. package/lib/use-form.ts +78 -0
  141. package/lib/use-is-installed.ts +17 -0
  142. package/lib/use-media-query.ts +21 -0
  143. package/lib/use-reverting-state.ts +32 -0
  144. package/lib/use-scroll-restoration.ts +99 -0
  145. package/lib/useEnsureValue.ts +31 -0
  146. package/lib/useFetchJson.tsx +52 -0
  147. package/lib/useInvokeClient.ts +54 -0
  148. package/lib/useIsVisible.ts +27 -0
  149. package/lib/utm.ts +92 -0
  150. package/lib/validations.ts +25 -0
  151. package/lib/vars.css.ts +13 -0
  152. package/package.json +23 -29
  153. package/dist/AppConfig/AppConfig.d.ts +0 -29
  154. package/dist/AuthCard/AuthCard.d.ts +0 -10
  155. package/dist/AuthCard/AuthCard.stories.d.ts +0 -34
  156. package/dist/AuthCard/style.css.d.ts +0 -23
  157. package/dist/DialogTrigger/index.d.ts +0 -13
  158. package/dist/DocumentTitle/DocumentTitle.d.ts +0 -3
  159. package/dist/EnumMapper.d.ts +0 -25
  160. package/dist/ExternalLink.d.ts +0 -3
  161. package/dist/FullscreenDismissBlocker.d.ts +0 -5
  162. package/dist/IndieTabletopClubLogo.d.ts +0 -7
  163. package/dist/IndieTabletopClubSymbol.d.ts +0 -7
  164. package/dist/InfoPage/index.d.ts +0 -8
  165. package/dist/InfoPage/pages.d.ts +0 -2
  166. package/dist/InfoPage/style.css.d.ts +0 -5
  167. package/dist/Letterhead/index.d.ts +0 -19
  168. package/dist/Letterhead/stories.d.ts +0 -13
  169. package/dist/Letterhead/style.css.d.ts +0 -46
  170. package/dist/LetterheadForm/LetterheadReadonlyTextField.stories.d.ts +0 -17
  171. package/dist/LetterheadForm/LetterheadSubmitError.stories.d.ts +0 -11
  172. package/dist/LetterheadForm/LetterheadTextField.stories.d.ts +0 -336
  173. package/dist/LetterheadForm/index.d.ts +0 -44
  174. package/dist/LetterheadForm/style.css.d.ts +0 -8
  175. package/dist/LoadingIndicator.d.ts +0 -3
  176. package/dist/MiddotSeparated/MiddotSeparated.d.ts +0 -8
  177. package/dist/MiddotSeparated/MiddotSeparated.stories.d.ts +0 -586
  178. package/dist/MiddotSeparated/style.css.d.ts +0 -1
  179. package/dist/ModalDialog/index.d.ts +0 -12
  180. package/dist/ModalDialog/style.css.d.ts +0 -58
  181. package/dist/ModernIDB/Cursor.d.ts +0 -56
  182. package/dist/ModernIDB/ModernIDB.d.ts +0 -66
  183. package/dist/ModernIDB/ModernIDBError.d.ts +0 -3
  184. package/dist/ModernIDB/ObjectStore.d.ts +0 -112
  185. package/dist/ModernIDB/ObjectStoreIndex.d.ts +0 -53
  186. package/dist/ModernIDB/Transaction.d.ts +0 -16
  187. package/dist/ModernIDB/VersionChangeManager.d.ts +0 -30
  188. package/dist/ModernIDB/bindings/factory.d.ts +0 -12
  189. package/dist/ModernIDB/bindings/index.d.ts +0 -2
  190. package/dist/ModernIDB/bindings/utils.d.ts +0 -2
  191. package/dist/ModernIDB/index.d.ts +0 -10
  192. package/dist/ModernIDB/types.d.ts +0 -88
  193. package/dist/ModernIDB/utils.d.ts +0 -4
  194. package/dist/QRCode/QRCode.d.ts +0 -7
  195. package/dist/QRCode/QRCode.stories.d.ts +0 -33
  196. package/dist/QRCode/style.css.d.ts +0 -4
  197. package/dist/ReleaseInfo/index.d.ts +0 -5
  198. package/dist/RulesetResolver.d.ts +0 -87
  199. package/dist/SafariCheck/SafariCheck.d.ts +0 -23
  200. package/dist/SafariCheck/SafariCheck.stories.d.ts +0 -73
  201. package/dist/SafariCheck/style.css.d.ts +0 -17
  202. package/dist/ServiceWorkerHandler.d.ts +0 -11
  203. package/dist/ShareButton/ShareButton.d.ts +0 -57
  204. package/dist/ShareButton/ShareButton.stories.d.ts +0 -1577
  205. package/dist/ShareButton/test.css.d.ts +0 -1
  206. package/dist/SubscribeCard/LetterheadInfoCard.d.ts +0 -2
  207. package/dist/SubscribeCard/SubscribeByEmailCard.d.ts +0 -24
  208. package/dist/SubscribeCard/SubscribeByEmailCard.stories.d.ts +0 -10
  209. package/dist/SubscribeCard/SubscribeByPledgeCard.d.ts +0 -36
  210. package/dist/SubscribeCard/SubscribeByPledgeCard.stories.d.ts +0 -65
  211. package/dist/SubscribeCard/style.css.d.ts +0 -4
  212. package/dist/account/AccountIssueView.d.ts +0 -3
  213. package/dist/account/AlreadyLoggedInView.d.ts +0 -5
  214. package/dist/account/CurrentUserFetcher.d.ts +0 -20
  215. package/dist/account/CurrentUserFetcher.stories.d.ts +0 -136
  216. package/dist/account/FailureFallbackView.d.ts +0 -1
  217. package/dist/account/JoinCard.d.ts +0 -14
  218. package/dist/account/JoinCard.stories.d.ts +0 -143
  219. package/dist/account/LoadingView.d.ts +0 -1
  220. package/dist/account/LoginCard.d.ts +0 -39
  221. package/dist/account/LoginCard.stories.d.ts +0 -217
  222. package/dist/account/LoginView.d.ts +0 -10
  223. package/dist/account/NoConnectionView.d.ts +0 -4
  224. package/dist/account/PasswordResetCard.d.ts +0 -15
  225. package/dist/account/PasswordResetCard.stories.d.ts +0 -128
  226. package/dist/account/UserMismatchView.d.ts +0 -6
  227. package/dist/account/VerifyPage.d.ts +0 -13
  228. package/dist/account/style.css.d.ts +0 -10
  229. package/dist/account/useFetchCurrentUser.d.ts +0 -28
  230. package/dist/account/useRedirectPath.d.ts +0 -6
  231. package/dist/animations.css.d.ts +0 -3
  232. package/dist/append-copy-to-text.d.ts +0 -10
  233. package/dist/append-copy-to-text.test.d.ts +0 -1
  234. package/dist/appkit.css +0 -1
  235. package/dist/appkit.js +0 -10692
  236. package/dist/async-op.d.ts +0 -101
  237. package/dist/atomic.css.d.ts +0 -6
  238. package/dist/client.d.ts +0 -424
  239. package/dist/common.css.d.ts +0 -5
  240. package/dist/copyrightRange.d.ts +0 -1
  241. package/dist/copyrightRange.test.d.ts +0 -1
  242. package/dist/createSafeStorage.d.ts +0 -34
  243. package/dist/failureMessages.d.ts +0 -20
  244. package/dist/failureMessages.test.d.ts +0 -1
  245. package/dist/form/FormSubmitButton.d.ts +0 -17
  246. package/dist/form/SubmitErrorAlert.d.ts +0 -5
  247. package/dist/form/style.css.d.ts +0 -3
  248. package/dist/globals.css.d.ts +0 -0
  249. package/dist/groupBy.d.ts +0 -1
  250. package/dist/groupBy.test.d.ts +0 -1
  251. package/dist/hrefs.d.ts +0 -32
  252. package/dist/hrefs.test.d.ts +0 -1
  253. package/dist/idToDate.d.ts +0 -5
  254. package/dist/idToDate.test.d.ts +0 -1
  255. package/dist/ids.d.ts +0 -1
  256. package/dist/ids.test.d.ts +0 -1
  257. package/dist/index.d.ts +0 -64
  258. package/dist/internal.css.d.ts +0 -2
  259. package/dist/mailto.d.ts +0 -8
  260. package/dist/mailto.test.d.ts +0 -1
  261. package/dist/media.d.ts +0 -39
  262. package/dist/random.d.ts +0 -3
  263. package/dist/result/swr.d.ts +0 -4
  264. package/dist/store/index.d.ts +0 -237
  265. package/dist/store/store.d.ts +0 -144
  266. package/dist/store/types.d.ts +0 -49
  267. package/dist/store/utils.d.ts +0 -10
  268. package/dist/storybook/decorators.d.ts +0 -3
  269. package/dist/structs.d.ts +0 -1
  270. package/dist/typeguards.test.d.ts +0 -1
  271. package/dist/unique.d.ts +0 -10
  272. package/dist/unique.test.d.ts +0 -1
  273. package/dist/use-async-op.d.ts +0 -6
  274. package/dist/use-document-background-color.d.ts +0 -4
  275. package/dist/use-form.d.ts +0 -29
  276. package/dist/use-is-installed.d.ts +0 -8
  277. package/dist/use-media-query.d.ts +0 -1
  278. package/dist/use-reverting-state.d.ts +0 -5
  279. package/dist/use-scroll-restoration.d.ts +0 -25
  280. package/dist/useEnsureValue.d.ts +0 -6
  281. package/dist/useInvokeClient.d.ts +0 -25
  282. package/dist/useIsVisible.d.ts +0 -4
  283. package/dist/utm.d.ts +0 -58
  284. package/dist/utm.test.d.ts +0 -1
  285. package/dist/validations.d.ts +0 -3
  286. package/dist/vars.css.d.ts +0 -10
@@ -1 +0,0 @@
1
- export {};
package/dist/ids.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare const getId: (size?: number) => string;
@@ -1 +0,0 @@
1
- export {};
package/dist/index.d.ts DELETED
@@ -1,64 +0,0 @@
1
- export * from './account/CurrentUserFetcher.tsx';
2
- export * from './account/JoinCard.tsx';
3
- export * from './account/LoginCard.tsx';
4
- export * from './account/PasswordResetCard.tsx';
5
- export * from './AppConfig/AppConfig.tsx';
6
- export * from './AuthCard/AuthCard.tsx';
7
- export * from './DialogTrigger/index.tsx';
8
- export * from './DocumentTitle/DocumentTitle.tsx';
9
- export * from './ExternalLink.tsx';
10
- export * from './form/FormSubmitButton.tsx';
11
- export * from './form/SubmitErrorAlert.tsx';
12
- export * from './FullscreenDismissBlocker.tsx';
13
- export * from './IndieTabletopClubLogo.tsx';
14
- export * from './IndieTabletopClubSymbol.tsx';
15
- export * from './Letterhead/index.tsx';
16
- export * from './LetterheadForm/index.tsx';
17
- export * from './LoadingIndicator.tsx';
18
- export * from './MiddotSeparated/MiddotSeparated.tsx';
19
- export * from './ModalDialog/index.tsx';
20
- export * from './QRCode/QRCode.tsx';
21
- export * from './ReleaseInfo/index.tsx';
22
- export * from './SafariCheck/SafariCheck.tsx';
23
- export * from './ServiceWorkerHandler.tsx';
24
- export * from './ShareButton/ShareButton.tsx';
25
- export * from './SubscribeCard/SubscribeByEmailCard.tsx';
26
- export * from './SubscribeCard/SubscribeByPledgeCard.tsx';
27
- export * from './RulesetResolver.ts';
28
- export * from './use-async-op.ts';
29
- export * from './use-document-background-color.ts';
30
- export * from './use-form.ts';
31
- export * from './use-is-installed.ts';
32
- export * from './use-media-query.ts';
33
- export * from './use-reverting-state.ts';
34
- export * from './use-scroll-restoration.ts';
35
- export * from './useEnsureValue.ts';
36
- export * from './useInvokeClient.ts';
37
- export * from './useIsVisible.ts';
38
- export * from './append-copy-to-text.ts';
39
- export * from './async-op.ts';
40
- export * from './caught-value.ts';
41
- export * from './class-names.ts';
42
- export * from './client.ts';
43
- export * from './copyrightRange.ts';
44
- export * from './createSafeStorage.ts';
45
- export * from './failureMessages.ts';
46
- export * from './groupBy.ts';
47
- export * from './HistoryState.ts';
48
- export * from './hrefs.ts';
49
- export * from './ids.ts';
50
- export * from './idToDate.ts';
51
- export * from './mailto.ts';
52
- export * from './media.ts';
53
- export * from './random.ts';
54
- export * from './result/swr.ts';
55
- export * from './sleep.ts';
56
- export * from './structs.ts';
57
- export * from './typeguards.ts';
58
- export * from './types.ts';
59
- export * from './unique.ts';
60
- export * from './utm.ts';
61
- export * from './validations.ts';
62
- export * from './EnumMapper.ts';
63
- export * from './ModernIDB/index.ts';
64
- export * from './store/index.tsx';
@@ -1,2 +0,0 @@
1
- export declare const animationDelay: `var(--${string})`;
2
- export declare const dot: string;
package/dist/mailto.d.ts DELETED
@@ -1,8 +0,0 @@
1
- type MailtoPayload = {
2
- body?: string | null;
3
- subject?: string | null;
4
- cc?: string | string[] | null;
5
- bcc?: string | string[] | null;
6
- };
7
- export declare function mailto(recipient: string | null, payload?: MailtoPayload): string;
8
- export {};
@@ -1 +0,0 @@
1
- export {};
package/dist/media.d.ts DELETED
@@ -1,39 +0,0 @@
1
- /**
2
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
3
- */
4
- export declare enum PrefersColorScheme {
5
- LIGHT = "(prefers-color-scheme: light)",
6
- DARK = "(prefers-color-scheme: dark)"
7
- }
8
- /**
9
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
10
- */
11
- export declare enum PrefersReducedMotion {
12
- NO_PREFERENCE = "(prefers-reduced-motion: no-preference)",
13
- REDUCE = "(prefers-reduced-motion: reduce)"
14
- }
15
- export declare enum Hover {
16
- NONE = "(hover: none)",
17
- HOVER = "(hover: hover) and (pointer: fine)"
18
- }
19
- export declare enum MediaType {
20
- PRINT = "print",
21
- SCREEN = "screen"
22
- }
23
- export declare enum MinHeight {
24
- TALL = "(min-height: 40em)"
25
- }
26
- export declare enum MinWidth {
27
- SMALL = "(min-width: 28em)",
28
- MEDIUM = "(min-width: 50em)",
29
- WIDE = "(min-width: 66em)",
30
- X_WIDE = "(min-width: 80em)",
31
- XX_WIDE = "(min-width: 140em)"
32
- }
33
- export declare enum DisplayMode {
34
- STANDALONE = "(display-mode: standalone)"
35
- }
36
- export declare enum Pointer {
37
- COARSE = "(pointer: coarse)",
38
- FINE = "(pointer: fine)"
39
- }
package/dist/random.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare function random(max: number): number;
2
- export declare function randomItem<T>(array: T[]): T;
3
- export declare function randomItemOrThrow<T>(array: T[]): NonNullable<T>;
@@ -1,4 +0,0 @@
1
- import { SWRResponse } from 'swr';
2
- import { Failure, Pending } from '../async-op.ts';
3
- import { FailurePayload } from '../types.ts';
4
- export declare function swrResponseToResult<T>(response: SWRResponse<T, unknown>): Pending | Failure<FailurePayload> | (T & ({} | null));
@@ -1,237 +0,0 @@
1
- import { UserGameData } from '@indietabletop/types';
2
- import { ReactNode } from 'react';
3
- import { Failure, Success } from '../async-op.ts';
4
- import { GameCode, IndieTabletopClient } from '../client.ts';
5
- import { ModernIDB } from '../ModernIDB/ModernIDB.ts';
6
- import { ModernIDBIndexes, ModernIDBSchema } from '../ModernIDB/types.ts';
7
- import { CurrentUser } from '../types.ts';
8
- import { PullChangesInput, PushChangesInput } from './store.ts';
9
- import { MachineEvent, PullResult, PushResult } from './types.ts';
10
- export type AppActions = {
11
- clientLogout: (params: {
12
- serverUser: CurrentUser;
13
- }) => Promise<void>;
14
- serverLogout: () => Promise<void>;
15
- logout: () => Promise<void>;
16
- push: () => void;
17
- pull: () => void;
18
- };
19
- export declare const AppActionsContext: import('react').Context<AppActions | null>;
20
- declare const useSelector: <T>(selector: (snapshot: import('xstate').MachineSnapshot<import('./types.ts').MachineContext, {
21
- type: "push";
22
- } | {
23
- type: "pull";
24
- } | {
25
- type: "currentUser";
26
- currentUser: CurrentUser;
27
- } | {
28
- type: "serverUser";
29
- serverUser: CurrentUser;
30
- } | {
31
- type: "sessionInfo";
32
- sessionInfo: import('../types.ts').SessionInfo;
33
- } | {
34
- type: "sessionExpired";
35
- } | {
36
- type: "reset";
37
- }, {
38
- [x: string]: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PullResult, PullChangesInput, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PushResult, PushChangesInput, import('xstate').EventObject>> | undefined;
39
- sync?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
40
- auth?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
41
- }, "unauthenticated" | {
42
- authenticated: "ineligible" | {
43
- sync: "idle" | "waiting" | {
44
- syncing: "pulling" | "pushing" | "failed" | "synced";
45
- };
46
- };
47
- }, string, import('xstate').NonReducibleUnknown, import('xstate').MetaObject, {
48
- id: "app";
49
- states: {
50
- readonly unauthenticated: {};
51
- readonly authenticated: {
52
- states: {
53
- readonly ineligible: {};
54
- readonly sync: {
55
- states: {
56
- readonly syncing: {
57
- states: {
58
- readonly pulling: {};
59
- readonly pushing: {};
60
- readonly synced: {};
61
- readonly failed: {};
62
- };
63
- };
64
- readonly idle: {};
65
- readonly waiting: {};
66
- };
67
- };
68
- };
69
- };
70
- };
71
- }>) => T, compare?: ((a: T, b: T) => boolean) | undefined) => T, useActorRef: () => import('xstate').Actor<import('xstate').StateMachine<import('./types.ts').MachineContext, {
72
- type: "push";
73
- } | {
74
- type: "pull";
75
- } | {
76
- type: "currentUser";
77
- currentUser: CurrentUser;
78
- } | {
79
- type: "serverUser";
80
- serverUser: CurrentUser;
81
- } | {
82
- type: "sessionInfo";
83
- sessionInfo: import('../types.ts').SessionInfo;
84
- } | {
85
- type: "sessionExpired";
86
- } | {
87
- type: "reset";
88
- }, {
89
- [x: string]: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PullResult, PullChangesInput, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PushResult, PushChangesInput, import('xstate').EventObject>> | undefined;
90
- sync?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
91
- auth?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
92
- }, {
93
- src: "sync";
94
- logic: import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>;
95
- id: "sync";
96
- } | {
97
- src: "auth";
98
- logic: import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>;
99
- id: "auth";
100
- } | {
101
- src: "pullChanges";
102
- logic: import('xstate').PromiseActorLogic<PullResult, PullChangesInput, import('xstate').EventObject>;
103
- id: string | undefined;
104
- } | {
105
- src: "pushChanges";
106
- logic: import('xstate').PromiseActorLogic<PushResult, PushChangesInput, import('xstate').EventObject>;
107
- id: string | undefined;
108
- }, {
109
- type: "setCurrentSync";
110
- params: import('xstate').NonReducibleUnknown;
111
- } | {
112
- type: "flushCurrentSync";
113
- params: import('xstate').NonReducibleUnknown;
114
- } | {
115
- type: "setLastSuccessfulSync";
116
- params: import('xstate').NonReducibleUnknown;
117
- } | {
118
- type: "markSyncStepResult";
119
- params: {
120
- pull?: PullResult;
121
- push?: PushResult;
122
- };
123
- } | {
124
- type: "queuePush";
125
- params: import('xstate').NonReducibleUnknown;
126
- } | {
127
- type: "clearPushQueue";
128
- params: import('xstate').NonReducibleUnknown;
129
- } | {
130
- type: "setCurrentUser";
131
- params: {
132
- id: string;
133
- email: string;
134
- isVerified: boolean;
135
- prefersScrollbarVisibility?: "ALWAYS" | undefined;
136
- };
137
- } | {
138
- type: "patchSessionInfo";
139
- params: {
140
- createdTs: number;
141
- expiresTs: number;
142
- };
143
- } | {
144
- type: "resetContext";
145
- params: import('xstate').NonReducibleUnknown;
146
- } | {
147
- type: "resetWithServerUser";
148
- params: {
149
- id: string;
150
- email: string;
151
- isVerified: boolean;
152
- prefersScrollbarVisibility?: "ALWAYS" | undefined;
153
- };
154
- }, {
155
- type: "shouldPushOnceIdle";
156
- params: unknown;
157
- } | {
158
- type: "isEligibleForSync";
159
- params: unknown;
160
- } | {
161
- type: "isUserVerified";
162
- params: unknown;
163
- } | {
164
- type: "isNotMismatched";
165
- params: unknown;
166
- } | {
167
- type: "hasBecomeEligibleForSync";
168
- params: unknown;
169
- } | {
170
- type: "hasBecomeVerified";
171
- params: unknown;
172
- }, never, "unauthenticated" | {
173
- authenticated: "ineligible" | {
174
- sync: "idle" | "waiting" | {
175
- syncing: "pulling" | "pushing" | "failed" | "synced";
176
- };
177
- };
178
- }, string, import('xstate').NonReducibleUnknown, import('xstate').NonReducibleUnknown, import('xstate').EventObject, import('xstate').MetaObject, {
179
- id: "app";
180
- states: {
181
- readonly unauthenticated: {};
182
- readonly authenticated: {
183
- states: {
184
- readonly ineligible: {};
185
- readonly sync: {
186
- states: {
187
- readonly syncing: {
188
- states: {
189
- readonly pulling: {};
190
- readonly pushing: {};
191
- readonly synced: {};
192
- readonly failed: {};
193
- };
194
- };
195
- readonly idle: {};
196
- readonly waiting: {};
197
- };
198
- };
199
- };
200
- };
201
- };
202
- }>>;
203
- export { useActorRef, useSelector };
204
- export declare function useCurrentUser(): {
205
- id: string;
206
- email: string;
207
- isVerified: boolean;
208
- prefersScrollbarVisibility?: "ALWAYS" | undefined;
209
- } | null;
210
- export declare function useSessionInfo(): {
211
- createdTs: number;
212
- expiresTs: number;
213
- } | null;
214
- export declare function useAppActions(): AppActions;
215
- export type DatabaseAppMachineMethods = {
216
- upsertGameData(data: UserGameData): Promise<Success<string[]>>;
217
- getUpdatedGameDataSince(props: {
218
- sinceTs: number | null;
219
- exclude: Set<string>;
220
- }): Promise<Success<UserGameData>>;
221
- clearAll(): Promise<Success<string> | Failure<string>>;
222
- };
223
- export declare function createAppMachineProvider<Schema extends ModernIDBSchema, Indexes extends ModernIDBIndexes<Schema>>(options: {
224
- database: ModernIDB<Schema, Indexes> & DatabaseAppMachineMethods;
225
- client: IndieTabletopClient;
226
- /**
227
- * Which games should the machine pull game data for?
228
- *
229
- * If null is provided, no data will be pulled.
230
- *
231
- * @remarks Honestly this is a bit hacky and we should have a better way to
232
- * disable sync entirely for apps that don't need it (e.g. the Creators App).
233
- */
234
- pullGameDataFor: GameCode | GameCode[] | null;
235
- }): (props: {
236
- children: ReactNode;
237
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,144 +0,0 @@
1
- import { CurrentUser, SessionInfo } from '../types.ts';
2
- import { MachineContext, MachineEvent, PullResult, PushResult, SyncedItem } from './types.ts';
3
- export type PullChangesInput = {
4
- sinceTs: number | null;
5
- currentUser: CurrentUser;
6
- };
7
- export type PushChangesInput = {
8
- sinceTs: number | null;
9
- currentSyncTs: number;
10
- ignoredItems: SyncedItem[];
11
- currentUser: CurrentUser;
12
- };
13
- export declare const machine: import('xstate').StateMachine<MachineContext, {
14
- type: "push";
15
- } | {
16
- type: "pull";
17
- } | {
18
- type: "currentUser";
19
- currentUser: CurrentUser;
20
- } | {
21
- type: "serverUser";
22
- serverUser: CurrentUser;
23
- } | {
24
- type: "sessionInfo";
25
- sessionInfo: SessionInfo;
26
- } | {
27
- type: "sessionExpired";
28
- } | {
29
- type: "reset";
30
- }, {
31
- [x: string]: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PullResult, PullChangesInput, import('xstate').EventObject>> | import('xstate').ActorRefFromLogic<import('xstate').PromiseActorLogic<PushResult, PushChangesInput, import('xstate').EventObject>> | undefined;
32
- sync?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
33
- auth?: import('xstate').ActorRefFromLogic<import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>> | undefined;
34
- }, {
35
- src: "sync";
36
- logic: import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>;
37
- id: "sync";
38
- } | {
39
- src: "auth";
40
- logic: import('xstate').CallbackActorLogic<MachineEvent, import('xstate').NonReducibleUnknown, import('xstate').EventObject>;
41
- id: "auth";
42
- } | {
43
- src: "pullChanges";
44
- logic: import('xstate').PromiseActorLogic<PullResult, PullChangesInput, import('xstate').EventObject>;
45
- id: string | undefined;
46
- } | {
47
- src: "pushChanges";
48
- logic: import('xstate').PromiseActorLogic<PushResult, PushChangesInput, import('xstate').EventObject>;
49
- id: string | undefined;
50
- }, {
51
- type: "setCurrentSync";
52
- params: import('xstate').NonReducibleUnknown;
53
- } | {
54
- type: "flushCurrentSync";
55
- params: import('xstate').NonReducibleUnknown;
56
- } | {
57
- type: "setLastSuccessfulSync";
58
- params: import('xstate').NonReducibleUnknown;
59
- } | {
60
- type: "markSyncStepResult";
61
- params: {
62
- pull?: PullResult;
63
- push?: PushResult;
64
- };
65
- } | {
66
- type: "queuePush";
67
- params: import('xstate').NonReducibleUnknown;
68
- } | {
69
- type: "clearPushQueue";
70
- params: import('xstate').NonReducibleUnknown;
71
- } | {
72
- type: "setCurrentUser";
73
- params: {
74
- id: string;
75
- email: string;
76
- isVerified: boolean;
77
- prefersScrollbarVisibility?: "ALWAYS" | undefined;
78
- };
79
- } | {
80
- type: "patchSessionInfo";
81
- params: {
82
- createdTs: number;
83
- expiresTs: number;
84
- };
85
- } | {
86
- type: "resetContext";
87
- params: import('xstate').NonReducibleUnknown;
88
- } | {
89
- type: "resetWithServerUser";
90
- params: {
91
- id: string;
92
- email: string;
93
- isVerified: boolean;
94
- prefersScrollbarVisibility?: "ALWAYS" | undefined;
95
- };
96
- }, {
97
- type: "shouldPushOnceIdle";
98
- params: unknown;
99
- } | {
100
- type: "isEligibleForSync";
101
- params: unknown;
102
- } | {
103
- type: "isUserVerified";
104
- params: unknown;
105
- } | {
106
- type: "isNotMismatched";
107
- params: unknown;
108
- } | {
109
- type: "hasBecomeEligibleForSync";
110
- params: unknown;
111
- } | {
112
- type: "hasBecomeVerified";
113
- params: unknown;
114
- }, never, "unauthenticated" | {
115
- authenticated: "ineligible" | {
116
- sync: "idle" | "waiting" | {
117
- syncing: "pulling" | "pushing" | "failed" | "synced";
118
- };
119
- };
120
- }, string, import('xstate').NonReducibleUnknown, import('xstate').NonReducibleUnknown, import('xstate').EventObject, import('xstate').MetaObject, {
121
- id: "app";
122
- states: {
123
- readonly unauthenticated: {};
124
- readonly authenticated: {
125
- states: {
126
- readonly ineligible: {};
127
- readonly sync: {
128
- states: {
129
- readonly syncing: {
130
- states: {
131
- readonly pulling: {};
132
- readonly pushing: {};
133
- readonly synced: {};
134
- readonly failed: {};
135
- };
136
- };
137
- readonly idle: {};
138
- readonly waiting: {};
139
- };
140
- };
141
- };
142
- };
143
- };
144
- }>;
@@ -1,49 +0,0 @@
1
- import { Failure, Success } from '../async-op.ts';
2
- import { CurrentUser, FailurePayload, SessionInfo } from '../types.ts';
3
- export type EmitterActor<Outgoing> = {
4
- sendBack: (event: Outgoing) => void;
5
- };
6
- export type PullResult = Success<{
7
- pulled: SyncedItem[];
8
- }> | Failure<FailurePayload>;
9
- export type PushResult = Success<{
10
- pushed: SyncedItem[];
11
- pulled: SyncedItem[];
12
- }> | Failure<FailurePayload>;
13
- export type SyncedItem = {
14
- id: string;
15
- name: string;
16
- updatedTs: number;
17
- deleted: boolean;
18
- };
19
- export type SyncAttempt = {
20
- startedTs: number;
21
- pull: PullResult | null;
22
- push: PushResult | null;
23
- };
24
- export type MachineContext = {
25
- currentSync: SyncAttempt | null;
26
- lastSuccessfulSyncTs: number | null;
27
- currentUser: CurrentUser | null;
28
- sessionInfo: SessionInfo | null;
29
- pushOnceIdle: boolean;
30
- syncLog: SyncAttempt[];
31
- };
32
- export type MachineEvent = {
33
- type: "push";
34
- } | {
35
- type: "pull";
36
- } | {
37
- type: "currentUser";
38
- currentUser: CurrentUser;
39
- } | {
40
- type: "serverUser";
41
- serverUser: CurrentUser;
42
- } | {
43
- type: "sessionInfo";
44
- sessionInfo: SessionInfo;
45
- } | {
46
- type: "sessionExpired";
47
- } | {
48
- type: "reset";
49
- };
@@ -1,10 +0,0 @@
1
- import { UserGameData } from '@indietabletop/types';
2
- import { Failure } from '../async-op.js';
3
- import { FailurePayload } from '../types.ts';
4
- import { SyncedItem } from './types.ts';
5
- /**
6
- * Flattens the UserGameData structure to a flat SyncedItem[].
7
- */
8
- export declare function toSyncedItems(data: UserGameData): SyncedItem[];
9
- export declare function assertNonNullish<T>(value: T, message: string): asserts value is NonNullable<T>;
10
- export declare function caughtToResult(error: unknown): Failure<FailurePayload>;
@@ -1,3 +0,0 @@
1
- import { FormProviderProps } from '@ariakit/react';
2
- import { Decorator } from '@storybook/react-vite';
3
- export declare function form(props?: FormProviderProps): Decorator;
package/dist/structs.d.ts DELETED
@@ -1 +0,0 @@
1
- export { currentUser, redeemedPledge, sessionInfo } from '@indietabletop/types';
@@ -1 +0,0 @@
1
- export {};
package/dist/unique.d.ts DELETED
@@ -1,10 +0,0 @@
1
- type UniqueKey = string | number;
2
- /**
3
- * Returns an array of unique items, determining uniqueness via the getKey
4
- * function.
5
- *
6
- * Note that the first unique item is returned, all others are omitted
7
- * (assuming that they are unique, so it shouldn't matter).
8
- */
9
- export declare function uniqueBy<T>(items: T[], getKey: (item: T) => UniqueKey): T[];
10
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- import { AsyncOp } from './async-op.js';
2
- export declare function useAsyncOp<T, E>(): {
3
- op: AsyncOp<T, E>;
4
- setSuccess: (value: T) => void;
5
- setFailure: (failure: E) => void;
6
- };
@@ -1,4 +0,0 @@
1
- /**
2
- * Sets document background color, reverting it to previous color on unmount.
3
- */
4
- export declare function useDocumentBackgroundColor(bodyColor: string): void;
@@ -1,29 +0,0 @@
1
- import { FormStoreState } from '@ariakit/react';
2
- import { Failure, Success } from './async-op.ts';
3
- type Validator<T> = (value: T) => string | null;
4
- type MaybePromise<T> = T | Promise<T>;
5
- export declare function useForm<T extends object, R>(props: {
6
- defaultValues: T;
7
- validate?: {
8
- [K in keyof T]?: Validator<T[K]>;
9
- };
10
- /**
11
- * Handles form submission login.
12
- *
13
- * This function should return a Success or Failure. Failures should always contain a string
14
- * which will be used as the form error message.
15
- */
16
- onSubmit: (state: FormStoreState<T>) => MaybePromise<Success<R> | Failure<string>>;
17
- /**
18
- * If submission was successful (i.e. onSubmit returned a Success), will be run to perform any
19
- * side-effect necessary.
20
- *
21
- * Typically this is used for navigation on mutating some local state.
22
- */
23
- onSuccess?: (value: R, state: FormStoreState<T>) => MaybePromise<void>;
24
- }): {
25
- form: import('@ariakit/react').FormStore<T>;
26
- submitName: string;
27
- op: Failure<string> | Success<R> | null;
28
- };
29
- export {};
@@ -1,8 +0,0 @@
1
- /**
2
- * Checks whether the app is installed.
3
- *
4
- * Note that this doesn't check whether the app is installed on the device at
5
- * all, only whether the currently running process is within an installed window
6
- * or running within a browser.
7
- */
8
- export declare function useIsInstalled(): boolean;
@@ -1 +0,0 @@
1
- export declare function useMediaQuery(query: string): boolean;