@simplysm/solid 13.0.32 → 13.0.33

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 (72) hide show
  1. package/README.md +39 -14
  2. package/dist/hooks/useLogger.js +4 -4
  3. package/dist/hooks/useLogger.js.map +1 -1
  4. package/dist/hooks/useSyncConfig.d.ts +1 -1
  5. package/dist/hooks/useSyncConfig.d.ts.map +1 -1
  6. package/dist/hooks/useSyncConfig.js +6 -4
  7. package/dist/hooks/useSyncConfig.js.map +1 -1
  8. package/dist/index.d.ts +6 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +7 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/{hooks/useClipboardValueCopy.d.ts → providers/ClipboardProvider.d.ts} +4 -3
  13. package/dist/providers/ClipboardProvider.d.ts.map +1 -0
  14. package/dist/{hooks/useClipboardValueCopy.js → providers/ClipboardProvider.js} +11 -8
  15. package/dist/providers/ClipboardProvider.js.map +6 -0
  16. package/dist/providers/ConfigContext.d.ts +15 -47
  17. package/dist/providers/ConfigContext.d.ts.map +1 -1
  18. package/dist/providers/ConfigContext.js +18 -1
  19. package/dist/providers/ConfigContext.js.map +3 -3
  20. package/dist/providers/ErrorLoggerProvider.d.ts +10 -0
  21. package/dist/providers/ErrorLoggerProvider.d.ts.map +1 -0
  22. package/dist/providers/ErrorLoggerProvider.js +23 -0
  23. package/dist/providers/ErrorLoggerProvider.js.map +6 -0
  24. package/dist/providers/LoggerContext.d.ts +38 -0
  25. package/dist/providers/LoggerContext.d.ts.map +1 -0
  26. package/dist/providers/LoggerContext.js +25 -0
  27. package/dist/providers/LoggerContext.js.map +6 -0
  28. package/dist/providers/PwaUpdateProvider.d.ts +12 -0
  29. package/dist/providers/PwaUpdateProvider.d.ts.map +1 -0
  30. package/dist/providers/PwaUpdateProvider.js +56 -0
  31. package/dist/providers/PwaUpdateProvider.js.map +6 -0
  32. package/dist/providers/ServiceClientContext.d.ts.map +1 -1
  33. package/dist/providers/ServiceClientContext.js +1 -3
  34. package/dist/providers/ServiceClientContext.js.map +1 -1
  35. package/dist/providers/SyncStorageContext.d.ts +42 -0
  36. package/dist/providers/SyncStorageContext.d.ts.map +1 -0
  37. package/dist/providers/SyncStorageContext.js +25 -0
  38. package/dist/providers/SyncStorageContext.js.map +6 -0
  39. package/dist/providers/ThemeContext.d.ts.map +1 -1
  40. package/dist/providers/ThemeContext.js +1 -1
  41. package/dist/providers/ThemeContext.js.map +1 -1
  42. package/docs/disclosure.md +1 -1
  43. package/docs/feedback.md +4 -4
  44. package/docs/form-controls.md +1 -1
  45. package/docs/hooks.md +8 -42
  46. package/docs/providers.md +116 -3
  47. package/docs/styling.md +1 -1
  48. package/package.json +16 -16
  49. package/src/hooks/useLogger.ts +4 -4
  50. package/src/hooks/useSyncConfig.ts +7 -5
  51. package/src/index.ts +6 -3
  52. package/src/{hooks/useClipboardValueCopy.ts → providers/ClipboardProvider.tsx} +6 -4
  53. package/src/providers/ConfigContext.tsx +48 -0
  54. package/src/providers/ErrorLoggerProvider.tsx +31 -0
  55. package/src/providers/LoggerContext.tsx +46 -0
  56. package/src/providers/PwaUpdateProvider.tsx +68 -0
  57. package/src/providers/ServiceClientContext.ts +1 -3
  58. package/src/providers/SyncStorageContext.tsx +52 -0
  59. package/src/providers/ThemeContext.tsx +1 -3
  60. package/dist/hooks/useClipboardValueCopy.d.ts.map +0 -1
  61. package/dist/hooks/useClipboardValueCopy.js.map +0 -6
  62. package/dist/hooks/usePwaUpdate.d.ts +0 -14
  63. package/dist/hooks/usePwaUpdate.d.ts.map +0 -1
  64. package/dist/hooks/usePwaUpdate.js +0 -50
  65. package/dist/hooks/usePwaUpdate.js.map +0 -6
  66. package/dist/providers/InitializeProvider.d.ts +0 -25
  67. package/dist/providers/InitializeProvider.d.ts.map +0 -1
  68. package/dist/providers/InitializeProvider.js +0 -60
  69. package/dist/providers/InitializeProvider.js.map +0 -6
  70. package/src/hooks/usePwaUpdate.ts +0 -73
  71. package/src/providers/ConfigContext.ts +0 -80
  72. package/src/providers/InitializeProvider.tsx +0 -79
@@ -1,79 +0,0 @@
1
- import type { ParentComponent } from "solid-js";
2
- import { onCleanup } from "solid-js";
3
- import { type AppConfig, ConfigContext } from "./ConfigContext";
4
- import { useClipboardValueCopy } from "../hooks/useClipboardValueCopy";
5
- import { ThemeProvider } from "./ThemeContext";
6
- import { NotificationProvider } from "../components/feedback/notification/NotificationProvider";
7
- import { NotificationBanner } from "../components/feedback/notification/NotificationBanner";
8
- import { BusyProvider } from "../components/feedback/busy/BusyProvider";
9
-
10
- import { usePwaUpdate } from "../hooks/usePwaUpdate";
11
- import { useLogger } from "../hooks/useLogger";
12
-
13
- /** Runs PWA update detection inside NotificationProvider context */
14
- function PwaUpdater() {
15
- usePwaUpdate();
16
- return null;
17
- }
18
-
19
- /** Captures uncaught errors and unhandled rejections via useLogger */
20
- function GlobalErrorLogger() {
21
- const logger = useLogger();
22
-
23
- const onError = (event: ErrorEvent) => {
24
- logger.error("Uncaught error:", event.error ?? event.message);
25
- };
26
-
27
- const onUnhandledRejection = (event: PromiseRejectionEvent) => {
28
- logger.error("Unhandled rejection:", event.reason);
29
- };
30
-
31
- window.addEventListener("error", onError);
32
- window.addEventListener("unhandledrejection", onUnhandledRejection);
33
-
34
- onCleanup(() => {
35
- window.removeEventListener("error", onError);
36
- window.removeEventListener("unhandledrejection", onUnhandledRejection);
37
- });
38
-
39
- return null;
40
- }
41
-
42
- /**
43
- * @simplysm/solid 초기화 Provider
44
- *
45
- * @remarks
46
- * 앱 루트에서 한 번 감싸며, 다음을 초기화한다:
47
- * - 앱 전역 설정 (config) Context 제공
48
- * - 폼 컨트롤 value 클립보드 복사 지원
49
- * - 테마 (라이트/다크/시스템)
50
- * - 알림 시스템 + 배너
51
- * - 전역 에러 캡처 (window.onerror, unhandledrejection)
52
- * - 루트 로딩 오버레이
53
- *
54
- * @example
55
- * ```tsx
56
- * <InitializeProvider config={{ clientName: "myApp" }}>
57
- * <App />
58
- * </InitializeProvider>
59
- * ```
60
- */
61
- export const InitializeProvider: ParentComponent<{ config: AppConfig }> = (props) => {
62
- // 폼 컨트롤 value 클립보드 복사
63
- useClipboardValueCopy();
64
-
65
- /* eslint-disable solid/reactivity -- config는 초기 설정값으로 변경되지 않음 */
66
- return (
67
- <ConfigContext.Provider value={props.config}>
68
- <ThemeProvider>
69
- <NotificationProvider>
70
- <NotificationBanner />
71
- <GlobalErrorLogger />
72
- <PwaUpdater />
73
- <BusyProvider variant={props.config.busyVariant}>{props.children}</BusyProvider>
74
- </NotificationProvider>
75
- </ThemeProvider>
76
- </ConfigContext.Provider>
77
- );
78
- /* eslint-enable solid/reactivity */
79
- };