@kirill.konshin/utils 0.0.14 → 0.0.16

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 (107) hide show
  1. package/.ctirc +2 -1
  2. package/.turbo/turbo-build.log +18 -13
  3. package/.turbo/turbo-test.log +76 -23
  4. package/CHANGELOG.md +12 -0
  5. package/README.md +1 -1
  6. package/demo/{cache-demo-clean.ts → worker-demo.ts} +1 -1
  7. package/dist/bootstrap/controls.d.ts +5 -2
  8. package/dist/bootstrap/controls.d.ts.map +1 -1
  9. package/dist/bootstrap/controls.js +1 -0
  10. package/dist/bootstrap/controls.js.map +1 -1
  11. package/dist/bootstrap/controls.stories.d.ts +9 -0
  12. package/dist/bootstrap/controls.stories.d.ts.map +1 -0
  13. package/dist/bootstrap/error.stories.d.ts +8 -0
  14. package/dist/bootstrap/error.stories.d.ts.map +1 -0
  15. package/dist/bootstrap/field.stories.d.ts +8 -0
  16. package/dist/bootstrap/field.stories.d.ts.map +1 -0
  17. package/dist/bootstrap/globalLoading.stories.d.ts +7 -0
  18. package/dist/bootstrap/globalLoading.stories.d.ts.map +1 -0
  19. package/dist/bootstrap/index.js +2 -1
  20. package/dist/bootstrap/loading.stories.d.ts +9 -0
  21. package/dist/bootstrap/loading.stories.d.ts.map +1 -0
  22. package/dist/bootstrap/screen.stories.d.ts +14 -0
  23. package/dist/bootstrap/screen.stories.d.ts.map +1 -0
  24. package/dist/bootstrap/toaster.stories.d.ts +8 -0
  25. package/dist/bootstrap/toaster.stories.d.ts.map +1 -0
  26. package/dist/bootstrap/useModal.stories.d.ts +9 -0
  27. package/dist/bootstrap/useModal.stories.d.ts.map +1 -0
  28. package/dist/core/cache.d.ts +7 -8
  29. package/dist/core/cache.d.ts.map +1 -1
  30. package/dist/core/cache.js +7 -4
  31. package/dist/core/cache.js.map +1 -1
  32. package/dist/core/cache.test.d.ts +2 -0
  33. package/dist/core/cache.test.d.ts.map +1 -0
  34. package/dist/core/files.d.ts +3 -0
  35. package/dist/core/files.d.ts.map +1 -0
  36. package/dist/core/files.js +27 -0
  37. package/dist/core/files.js.map +1 -0
  38. package/dist/core/index.d.ts +4 -0
  39. package/dist/core/index.d.ts.map +1 -1
  40. package/dist/core/index.js +14 -2
  41. package/dist/core/index.js.map +1 -1
  42. package/dist/core/ls.d.ts +6 -0
  43. package/dist/core/ls.d.ts.map +1 -0
  44. package/dist/core/ls.js +12 -0
  45. package/dist/core/ls.js.map +1 -0
  46. package/dist/core/worker.d.ts +23 -9
  47. package/dist/core/worker.d.ts.map +1 -1
  48. package/dist/core/worker.js +93 -90
  49. package/dist/core/worker.js.map +1 -1
  50. package/dist/core/worker.test.d.ts +2 -0
  51. package/dist/core/worker.test.d.ts.map +1 -0
  52. package/dist/core/workerUtils.d.ts +3 -0
  53. package/dist/core/workerUtils.d.ts.map +1 -0
  54. package/dist/core/workerUtils.js +31 -0
  55. package/dist/core/workerUtils.js.map +1 -0
  56. package/dist/core/wrpc.d.ts +45 -0
  57. package/dist/core/wrpc.d.ts.map +1 -0
  58. package/dist/core/wrpc.fixture.d.ts +29 -0
  59. package/dist/core/wrpc.fixture.d.ts.map +1 -0
  60. package/dist/core/wrpc.js +242 -0
  61. package/dist/core/wrpc.js.map +1 -0
  62. package/dist/core/wrpc.test.d.ts +1 -0
  63. package/dist/core/wrpc.test.d.ts.map +1 -0
  64. package/dist/mui/formControlFieldset.stories.d.ts +7 -0
  65. package/dist/mui/formControlFieldset.stories.d.ts.map +1 -0
  66. package/dist/react/form/form.d.ts +7 -6
  67. package/dist/react/form/form.d.ts.map +1 -1
  68. package/dist/react/form/form.js +14 -20
  69. package/dist/react/form/form.js.map +1 -1
  70. package/dist/react/index.d.ts +1 -0
  71. package/dist/react/index.d.ts.map +1 -1
  72. package/dist/react/index.js +8 -2
  73. package/dist/react/index.js.map +1 -1
  74. package/dist/react/keyboard.d.ts +11 -0
  75. package/dist/react/keyboard.d.ts.map +1 -0
  76. package/dist/react/keyboard.js +38 -0
  77. package/dist/react/keyboard.js.map +1 -0
  78. package/package.json +5 -2
  79. package/src/bootstrap/controls.stories.tsx +2 -2
  80. package/src/bootstrap/controls.tsx +3 -3
  81. package/src/bootstrap/error.stories.tsx +3 -3
  82. package/src/bootstrap/field.stories.tsx +2 -2
  83. package/src/bootstrap/globalLoading.stories.tsx +2 -2
  84. package/src/bootstrap/loading.stories.tsx +2 -2
  85. package/src/bootstrap/screen.stories.tsx +2 -2
  86. package/src/bootstrap/toaster.stories.tsx +2 -2
  87. package/src/bootstrap/useModal.stories.tsx +3 -3
  88. package/src/core/README.md +91 -0
  89. package/src/core/cache.ts +12 -12
  90. package/src/core/files.ts +25 -0
  91. package/src/core/index.ts +4 -0
  92. package/src/core/ls.ts +11 -0
  93. package/src/core/worker.test.ts +197 -0
  94. package/src/core/worker.ts +106 -93
  95. package/src/core/workerUtils.ts +32 -0
  96. package/src/core/wrpc.fixture.ts +72 -0
  97. package/src/core/wrpc.test.ts +225 -0
  98. package/src/core/wrpc.ts +359 -0
  99. package/src/mui/formControlFieldset.stories.tsx +1 -1
  100. package/src/react/form/form.tsx +53 -33
  101. package/src/react/index.ts +1 -0
  102. package/src/react/keyboard.tsx +49 -0
  103. package/src/tailwind/README.md +8 -0
  104. package/tsconfig.json +2 -1
  105. package/vite.config.ts +10 -3
  106. package/vite.exports.ts +3 -3
  107. package/demo/cache-demo.ts +0 -343
package/.ctirc CHANGED
@@ -2,7 +2,8 @@
2
2
  "addNewline": true,
3
3
  "fileExcludePatterns": [
4
4
  "*.stories.*",
5
- "*.test.*"
5
+ "*.test.*",
6
+ "*.fixture.*"
6
7
  ],
7
8
  "verbose": false,
8
9
  "withoutBackupFile": true,
@@ -1,15 +1,15 @@
1
1
  vite v6.0.11 building SSR bundle for production...
2
2
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/bootstrap
3
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
4
3
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
5
4
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron-builder
5
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
6
6
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
7
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
7
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
8
8
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
9
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
10
10
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
11
11
  transforming...
12
- ✓ 50 modules transformed.
12
+ ✓ 55 modules transformed.
13
13
  rendering chunks...
14
14
 
15
15
  [vite:dts] Start generate declaration files...
@@ -29,23 +29,27 @@ rendering chunks...
29
29
  dist/bootstrap/globalLoading.js 0.43 kB │ map: 0.82 kB
30
30
  dist/next/noSSR.js 0.45 kB │ map: 0.89 kB
31
31
  dist/react-native/useAppState.js 0.47 kB │ map: 0.84 kB
32
- dist/react/index.js 0.48 kB │ map: 0.09 kB
33
32
  dist/mui/genericControl.js 0.50 kB │ map: 1.02 kB
33
+ dist/core/ls.js 0.50 kB │ map: 0.90 kB
34
34
  dist/bootstrap/loading.js 0.54 kB │ map: 1.01 kB
35
- dist/core/index.js 0.56 kB │ map: 0.09 kB
36
35
  dist/react/useFetch.js 0.57 kB │ map: 1.70 kB
37
36
  dist/mui/formControlFieldset.js 0.64 kB │ map: 1.23 kB
37
+ dist/react/index.js 0.65 kB │ map: 0.10 kB
38
38
  dist/core/mutex.js 0.76 kB │ map: 1.19 kB
39
39
  dist/next/appLink.js 0.77 kB │ map: 1.58 kB
40
40
  dist/bootstrap/field.js 0.79 kB │ map: 1.56 kB
41
+ dist/core/files.js 0.79 kB │ map: 1.63 kB
41
42
  dist/bootstrap/error.js 0.79 kB │ map: 1.66 kB
42
43
  dist/tailwind/responsiveHelper.js 0.84 kB │ map: 1.14 kB
43
44
  dist/react-native/share.js 0.85 kB │ map: 1.75 kB
44
45
  dist/react/apiCall.js 0.85 kB │ map: 1.47 kB
45
46
  dist/bootstrap/useWrappedForm.js 0.90 kB │ map: 2.22 kB
46
- dist/bootstrap/index.js 0.95 kB │ map: 0.10 kB
47
+ dist/core/index.js 0.90 kB │ map: 0.10 kB
48
+ dist/bootstrap/index.js 0.97 kB │ map: 0.10 kB
49
+ dist/core/workerUtils.js 0.97 kB │ map: 1.83 kB
47
50
  dist/electron-builder/images.js 1.02 kB │ map: 1.95 kB
48
51
  dist/react-native/update.js 1.03 kB │ map: 1.97 kB
52
+ dist/react/keyboard.js 1.19 kB │ map: 2.31 kB
49
53
  dist/react/useFetcher.js 1.20 kB │ map: 2.47 kB
50
54
  dist/bootstrap/toaster.js 1.25 kB │ map: 2.08 kB
51
55
  dist/core/measure.js 1.43 kB │ map: 2.88 kB
@@ -54,14 +58,15 @@ rendering chunks...
54
58
  dist/react/form/client.js 1.58 kB │ map: 3.36 kB
55
59
  dist/bootstrap/responsiveHelper.js 1.78 kB │ map: 2.87 kB
56
60
  dist/bootstrap/useModal.js 2.09 kB │ map: 4.75 kB
57
- dist/react/form/form.js 2.57 kB │ map: 5.74 kB
58
- dist/bootstrap/controls.js 2.74 kB │ map: 5.81 kB
59
- dist/core/cache.js 3.02 kB │ map: 9.95 kB
61
+ dist/react/form/form.js 2.34 kB │ map: 6.18 kB
62
+ dist/bootstrap/controls.js 2.75 kB │ map: 5.83 kB
63
+ dist/core/cache.js 3.08 kB │ map: 9.97 kB
60
64
  dist/electron-builder/builder.js 3.09 kB │ map: 6.76 kB
61
65
  dist/bootstrap/screen.js 3.37 kB │ map: 7.04 kB
62
66
  dist/electron/createWindow.js 5.39 kB │ map: 10.88 kB
63
- dist/core/worker.js 7.45 kB │ map: 15.67 kB
64
- [vite:dts] Declaration files built in 5278ms.
67
+ dist/core/worker.js 7.95 kB │ map: 16.41 kB
68
+ dist/core/wrpc.js 8.83 kB map: 20.60 kB
69
+ [vite:dts] Declaration files built in 6111ms.
65
70
 
66
- ✓ built in 5.59s
71
+ ✓ built in 6.45s
67
72
  Updated package.json with exports
@@ -1,46 +1,93 @@
1
1
  [?25lcreate succeeded: /home/runner/work/utils/utils/packages/utils/src/bootstrap
2
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
3
2
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
4
3
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron-builder
4
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
5
5
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
6
6
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
7
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
7
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
8
8
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
9
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
10
10
 
11
11
   RUN  v3.0.4 /home/runner/work/utils/utils/packages/utils
12
12
  Coverage enabled with v8
13
13
 
14
- stderr | src/core/cache.test.ts > TransformerMap > simple
15
- CREATE cache test
16
-
17
- stderr | src/core/cache.test.ts > TransformerMap > key transform
18
- CREATE cache test
14
+ stderr | src/core/wrpc.test.ts
15
+ Using an object as a third argument is deprecated. Vitest 4 will throw an error if the third argument is not a timeout number. Please use the second argument for options. See more at https://vitest.dev/guide/migration
19
16
 
20
17
  stdout | src/core/cache.test.ts > TransformerMap > key transform
21
18
  CLEAR cache test
22
19
 
23
- ✓ src/core/cache.test.ts (4 tests) 15ms
20
+ ✓ src/core/cache.test.ts (4 tests) 11ms
21
+ ✓ src/core/worker.test.ts (8 tests) 15ms
22
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
23
+ DATA 1
24
+
25
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
26
+ DATA 2
27
+
28
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
29
+ DATA 3
30
+
31
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
32
+ DATA { value: 1, done: false }
33
+
34
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
35
+ DATA { value: 2, done: false }
36
+
37
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
38
+ DATA { value: 3, done: false }
39
+
40
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
41
+ DATA { value: undefined, done: true }
42
+
43
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
44
+ DATA { progress: 0 }
24
45
 
25
-  Test Files  1 passed (1)
26
-  Tests  4 passed (4)
27
-  Start at  06:19:05
28
-  Duration  914ms (transform 47ms, setup 0ms, collect 49ms, tests 15ms, environment 0ms, prepare 69ms)
46
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
47
+ DATA { progress: 0.5 }
48
+
49
+ stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
50
+ DATA { progress: 1, aborted: false }
51
+
52
+ stdout | src/core/wrpc.test.ts > WRPC > do ... while
53
+ DATA { value: { progress: 0 }, done: false }
54
+
55
+ stdout | src/core/wrpc.test.ts > WRPC > do ... while
56
+ DATA { value: { progress: 0.5 }, done: false }
57
+
58
+ stdout | src/core/wrpc.test.ts > WRPC > do ... while
59
+ DATA { value: { progress: 1, aborted: false }, done: false }
60
+
61
+ stdout | src/core/wrpc.test.ts > WRPC > do ... while
62
+ DATA { value: 'foo', done: true }
63
+
64
+ stdout | src/core/wrpc.test.ts > WRPC > break
65
+ DATA { progress: 0 }
66
+
67
+ stdout | src/core/wrpc.test.ts > WRPC > abort
68
+ DATA { progress: 0 }
69
+
70
+ ✓ src/core/wrpc.test.ts (13 tests | 1 skipped) 733ms
71
+ ✓ WRPC > stop 503ms
72
+
73
+  Test Files  3 passed (3)
74
+  Tests  24 passed | 1 skipped (25)
75
+  Start at  21:09:12
76
+  Duration  1.77s (transform 223ms, setup 0ms, collect 337ms, tests 759ms, environment 1ms, prepare 360ms)
29
77
 
30
78
   % Coverage report from v8
31
79
  -------------------|---------|----------|---------|---------|-------------------
32
80
  File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
33
81
  -------------------|---------|----------|---------|---------|-------------------
34
- All files | 3.28 | 63.82 | 53.08 | 3.28 |
82
+ All files | 22.23 | 81.64 | 66.44 | 22.23 |
35
83
  utils | 0 | 0 | 0 | 0 |
36
84
  vite.exports.ts | 0 | 0 | 0 | 0 | 1-121
37
85
  utils/builders | 0 | 0 | 0 | 0 |
38
86
  bun.build.js | 0 | 0 | 0 | 0 | 1-23
39
87
  perf.mjs | 0 | 0 | 0 | 0 | 1-63
40
88
  rslib.config.ts | 0 | 0 | 0 | 0 | 1-26
41
- utils/demo | 0 | 50 | 50 | 0 |
42
- ...demo-clean.ts | 0 | 0 | 0 | 0 | 1-73
43
- cache-demo.ts | 0 | 100 | 100 | 0 | 3-343
89
+ utils/demo | 0 | 0 | 0 | 0 |
90
+ worker-demo.ts | 0 | 0 | 0 | 0 | 1-73
44
91
  utils/src-todo | 0 | 0 | 0 | 0 |
45
92
  auth0.tsx | 0 | 0 | 0 | 0 |
46
93
  .../src/bootstrap | 0 | 71.42 | 71.42 | 0 |
@@ -65,13 +112,18 @@ All files | 3.28 | 63.82 | 53.08 | 3.28 |
65
112
  ...l.stories.tsx | 0 | 100 | 100 | 0 | 3-51
66
113
  useModal.tsx | 0 | 0 | 0 | 0 | 1-88
67
114
  ...rappedForm.ts | 0 | 0 | 0 | 0 | 1-40
68
- utils/src/core | 20.2 | 82.35 | 52.38 | 20.2 |
69
- cache.ts | 81.25 | 89.65 | 56.25 | 81.25 | ...98-199,218-219
115
+ utils/src/core | 78.75 | 88.28 | 75 | 78.75 |
116
+ cache.ts | 81.25 | 89.65 | 56.25 | 81.25 | ...94-195,218-219
70
117
  errors.ts | 0 | 100 | 100 | 0 | 2-14
71
- index.ts | 0 | 0 | 0 | 0 | 1-5
118
+ files.ts | 0 | 0 | 0 | 0 | 1-25
119
+ index.ts | 0 | 0 | 0 | 0 | 1-9
120
+ ls.ts | 0 | 0 | 0 | 0 | 1-11
72
121
  measure.ts | 0 | 0 | 0 | 0 | 1-61
73
122
  mutex.ts | 0 | 100 | 100 | 0 | 3-22
74
- worker.ts | 0 | 0 | 0 | 0 | 1-327
123
+ worker.ts | 100 | 98.71 | 100 | 100 | 57
124
+ workerUtils.ts | 100 | 83.33 | 100 | 100 | 26-27
125
+ wrpc.fixture.ts | 78.84 | 77.77 | 66.66 | 78.84 | 28,62-63,65-72
126
+ wrpc.ts | 97.11 | 85.24 | 69.69 | 97.11 | ...79-180,225-226
75
127
  ...s/src/electron | 0 | 33.33 | 33.33 | 0 |
76
128
  createWindow.ts | 0 | 0 | 0 | 0 | 1-234
77
129
  index.ts | 0 | 0 | 0 | 0 | 1-2
@@ -94,9 +146,10 @@ All files | 3.28 | 63.82 | 53.08 | 3.28 |
94
146
  noSSR.tsx | 0 | 100 | 100 | 0 | 3-17
95
147
  redirect.tsx | 0 | 100 | 100 | 0 | 3-13
96
148
  useIsInner.ts | 0 | 100 | 100 | 0 | 3-13
97
- utils/src/react | 0 | 25 | 25 | 0 |
149
+ utils/src/react | 0 | 40 | 40 | 0 |
98
150
  apiCall.ts | 0 | 0 | 0 | 0 | 1-25
99
- index.ts | 0 | 0 | 0 | 0 | 1-4
151
+ index.ts | 0 | 0 | 0 | 0 | 1-5
152
+ keyboard.tsx | 0 | 100 | 100 | 0 | 3-49
100
153
  useFetch.ts | 0 | 100 | 100 | 0 | 3-29
101
154
  useFetcher.ts | 0 | 0 | 0 | 0 | 1-49
102
155
  ...c/react-native | 0 | 0 | 0 | 0 |
@@ -106,7 +159,7 @@ All files | 3.28 | 63.82 | 53.08 | 3.28 |
106
159
  useAppState.ts | 0 | 0 | 0 | 0 | 1-18
107
160
  ...src/react/form | 0 | 33.33 | 33.33 | 0 |
108
161
  client.tsx | 0 | 100 | 100 | 0 | 3-62
109
- form.tsx | 0 | 0 | 0 | 0 | 1-109
162
+ form.tsx | 0 | 0 | 0 | 0 | 1-129
110
163
  index.ts | 0 | 0 | 0 | 0 | 1-2
111
164
  ...s/src/tailwind | 0 | 66.66 | 66.66 | 0 |
112
165
  fullpage.tsx | 0 | 100 | 100 | 0 | 3-10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @kirill.konshin/utils
2
2
 
3
+ ## 0.0.16
4
+
5
+ ### Patch Changes
6
+
7
+ - File Saver patch
8
+
9
+ ## 0.0.15
10
+
11
+ ### Patch Changes
12
+
13
+ - WRPC
14
+
3
15
  ## 0.0.14
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -36,7 +36,7 @@ https://jakeginnivan.medium.com/options-for-publishing-typescript-libraries-9c37
36
36
  - ⚠️ Seem to reemit all files all the time
37
37
  - `vite`
38
38
  - ✅ Fast
39
- - ✅ Comes with `vitest`
39
+ - ✅ Comes with `vitest` (reasoning https://youtu.be/w9xQRJXKrV0)
40
40
  - ✅ Comes with Storybook plugin
41
41
  - ⚠️ Based on Rollup, inherits its quirks
42
42
  - ⚠️ Awkward configuration, half Vite half Rollup
@@ -1,4 +1,4 @@
1
- import { RespondersBase, WorkerDialog } from '../src/worker';
1
+ import { RespondersBase, WorkerDialog } from '../src/core';
2
2
 
3
3
  class Responders extends RespondersBase<Responders> {
4
4
  encode = this.create(
@@ -1,5 +1,5 @@
1
1
  import { default as React, HTMLInputTypeAttribute } from 'react';
2
- interface ControlProps {
2
+ export interface ControlProps {
3
3
  value?: any;
4
4
  setValue?: (v: any) => void;
5
5
  defaultValue?: any;
@@ -22,6 +22,10 @@ interface ControlProps {
22
22
  } & any;
23
23
  hideValue?: boolean;
24
24
  }
25
+ export type LabelProps = Pick<ControlProps, 'name' | 'value' | 'defaultValue'> & {
26
+ reset: () => void;
27
+ };
28
+ export declare const Label: React.NamedExoticComponent<LabelProps>;
25
29
  export declare const Control: React.NamedExoticComponent<ControlProps>;
26
30
  export interface RangeProps extends ControlProps {
27
31
  min: number;
@@ -31,5 +35,4 @@ export interface RangeProps extends ControlProps {
31
35
  export declare const Range: React.NamedExoticComponent<RangeProps>;
32
36
  export declare const Checkbox: React.NamedExoticComponent<ControlProps>;
33
37
  export declare const Select: React.NamedExoticComponent<ControlProps>;
34
- export {};
35
38
  //# sourceMappingURL=controls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/bootstrap/controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,sBAAsB,EAAQ,MAAM,OAAO,CAAC;AAM5D,UAAU,YAAY;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE;QACT,IAAI,EAAE,sBAAsB,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,GAAG,CAAC;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAmBD,eAAO,MAAM,OAAO,0CAsClB,CAAC;AAEH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,KAAK,wCAchB,CAAC;AAEH,eAAO,MAAM,QAAQ,0CAOnB,CAAC;AAEH,eAAO,MAAM,MAAM,0CAMjB,CAAC"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/bootstrap/controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,sBAAsB,EAAQ,MAAM,OAAO,CAAC;AAM5D,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE;QACT,IAAI,EAAE,sBAAsB,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,GAAG,CAAC;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEvG,eAAO,MAAM,KAAK,wCAahB,CAAC;AAEH,eAAO,MAAM,OAAO,0CAsClB,CAAC;AAEH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,KAAK,wCAchB,CAAC;AAEH,eAAO,MAAM,QAAQ,0CAOnB,CAAC;AAEH,eAAO,MAAM,MAAM,0CAMjB,CAAC"}
@@ -71,6 +71,7 @@ const Select = memo(function Select2({ children, ...props }) {
71
71
  export {
72
72
  Checkbox,
73
73
  Control,
74
+ Label,
74
75
  Range,
75
76
  Select
76
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","sources":["../../src/bootstrap/controls.tsx"],"sourcesContent":["import React, { HTMLInputTypeAttribute, memo } from 'react';\n\nconst lcFirst = (str) => str[0].toLowerCase() + str.substring(1, str.length);\n\nconst toProperty = (str) => lcFirst(str).split(' ').join('');\n\ninterface ControlProps {\n value?: any;\n setValue?: (v: any) => void;\n defaultValue?: any;\n options?: { [key: string]: any };\n setOptions?: (v: { [key: string]: any }) => void;\n defaultOptions?: { [key: string]: any };\n name: string;\n children?: React.ReactNode;\n inputProps?: {\n type: HTMLInputTypeAttribute;\n property?: string;\n valueExtractor?: (e: any) => any;\n className?: string;\n } & any;\n hideValue?: boolean;\n}\n\ntype LabelProps = Pick<ControlProps, 'name' | 'value' | 'defaultValue'> & { reset: () => void };\n\nconst Label = memo<LabelProps>(function Label({ name, reset, value, defaultValue }) {\n return (\n <label className=\"flex-grow-1 mb-0 d-flex align-items-center justify-content-start gap-2\">\n {name}\n {value !== defaultValue && (\n <>\n <a href=\"javascript: void(0)\" onClick={reset}>\n <small>reset</small>\n </a>\n </>\n )}\n </label>\n );\n});\n\nexport const Control = memo<ControlProps>(function Control({\n value = null,\n setValue,\n defaultValue = null,\n options = {},\n setOptions,\n defaultOptions = {},\n name,\n inputProps: { Tag = 'input', property = 'value', valueExtractor = (e) => e.target.value, ...inputProps } = {},\n hideValue = false,\n children,\n}) {\n const prop = toProperty(name);\n\n defaultValue = defaultValue || defaultOptions[prop];\n value = value || options?.[prop];\n setValue = setValue || ((v) => setOptions?.({ [prop]: v }));\n\n const reset = () => setValue(defaultValue);\n\n return (\n <div className=\"d-flex align-items-center gap-2\">\n <Label name={name} reset={reset} value={value} defaultValue={defaultValue} />\n <Tag\n {...inputProps}\n {...{ [property]: value || '' }} // null is needed to make it always controlled\n className={`${value === defaultValue ? 'opacity-75' : ''} ${inputProps.className}`}\n onChange={(e) => setValue(valueExtractor(e))}\n >\n {children}\n </Tag>\n {!hideValue && (\n <span onDoubleClick={reset} className=\"text-start\" style={{ width: '20px' }}>\n {value}\n </span>\n )}\n </div>\n );\n});\n\nexport interface RangeProps extends ControlProps {\n min: number;\n max: number;\n step?: number;\n}\n\nexport const Range = memo<RangeProps>(function Range({ min, max, step = 0.1, ...props }) {\n return (\n <Control\n inputProps={{\n type: 'range',\n min,\n max,\n step,\n className: 'form-control-range',\n valueExtractor: (e) => parseFloat(e.target.value),\n }}\n {...props}\n />\n );\n});\n\nexport const Checkbox = memo<ControlProps>(function Checkbox(props) {\n return (\n <Control\n inputProps={{ type: 'checkbox', property: 'checked', valueExtractor: (e) => e.target.checked }}\n {...props}\n />\n );\n});\n\nexport const Select = memo<ControlProps>(function Select({ children, ...props }) {\n return (\n <Control inputProps={{ Tag: 'select', className: 'form-select' }} {...props} hideValue={true}>\n {children}\n </Control>\n );\n});\n"],"names":["Label","Control","Range","Checkbox","Select"],"mappings":";;AAEA,MAAM,UAAU,CAAC,QAAQ,IAAI,CAAC,EAAE,gBAAgB,IAAI,UAAU,GAAG,IAAI,MAAM;AAE3E,MAAM,aAAa,CAAC,QAAQ,QAAQ,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE;AAsB3D,MAAM,QAAQ,KAAiB,SAASA,OAAM,EAAE,MAAM,OAAO,OAAO,gBAAgB;AAE5E,SAAA,qBAAC,SAAM,EAAA,WAAU,0EACZ,UAAA;AAAA,IAAA;AAAA,IACA,UAAU,gBAEH,oBAAA,UAAA,EAAA,UAAA,oBAAC,KAAE,EAAA,MAAK,uBAAsB,SAAS,OACnC,UAAA,oBAAC,SAAM,EAAA,UAAA,SAAK,GAChB,EACJ,CAAA;AAAA,EAAA,GAER;AAER,CAAC;AAEY,MAAA,UAAU,KAAmB,SAASC,SAAQ;AAAA,EACvD,QAAQ;AAAA,EACR;AAAA,EACA,eAAe;AAAA,EACf,UAAU,CAAC;AAAA,EACX;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA,YAAY,EAAE,MAAM,SAAS,WAAW,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,OAAO,GAAG,eAAe,CAAC;AAAA,EAC5G,YAAY;AAAA,EACZ;AACJ,GAAG;AACO,QAAA,OAAO,WAAW,IAAI;AAEb,iBAAA,gBAAgB,eAAe,IAAI;AAC1C,UAAA,UAAS,mCAAU;AAChB,aAAA,aAAa,CAAC,MAAM,yCAAa,EAAE,CAAC,IAAI,GAAG,EAAA;AAEhD,QAAA,QAAQ,MAAM,SAAS,YAAY;AAGrC,SAAA,qBAAC,OAAI,EAAA,WAAU,mCACX,UAAA;AAAA,IAAA,oBAAC,OAAM,EAAA,MAAY,OAAc,OAAc,cAA4B;AAAA,IAC3E;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAG;AAAA,QACH,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG;AAAA,QAC9B,WAAW,GAAG,UAAU,eAAe,eAAe,EAAE,IAAI,WAAW,SAAS;AAAA,QAChF,UAAU,CAAC,MAAM,SAAS,eAAe,CAAC,CAAC;AAAA,QAE1C;AAAA,MAAA;AAAA,IACL;AAAA,IACC,CAAC,aACG,oBAAA,QAAA,EAAK,eAAe,OAAO,WAAU,cAAa,OAAO,EAAE,OAAO,OAAA,GAC9D,UACL,MAAA,CAAA;AAAA,EAAA,GAER;AAER,CAAC;AAQY,MAAA,QAAQ,KAAiB,SAASC,OAAM,EAAE,KAAK,KAAK,OAAO,KAAK,GAAG,SAAS;AAEjF,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,YAAY;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,gBAAgB,CAAC,MAAM,WAAW,EAAE,OAAO,KAAK;AAAA,MACpD;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACR;AAER,CAAC;AAEM,MAAM,WAAW,KAAmB,SAASC,UAAS,OAAO;AAE5D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,YAAY,EAAE,MAAM,YAAY,UAAU,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO,QAAQ;AAAA,MAC5F,GAAG;AAAA,IAAA;AAAA,EACR;AAER,CAAC;AAEY,MAAA,SAAS,KAAmB,SAASC,QAAO,EAAE,UAAU,GAAG,SAAS;AAC7E,SACK,oBAAA,SAAA,EAAQ,YAAY,EAAE,KAAK,UAAU,WAAW,cAAA,GAAkB,GAAG,OAAO,WAAW,MACnF,SACL,CAAA;AAER,CAAC;"}
1
+ {"version":3,"file":"controls.js","sources":["../../src/bootstrap/controls.tsx"],"sourcesContent":["import React, { HTMLInputTypeAttribute, memo } from 'react';\n\nconst lcFirst = (str) => str[0].toLowerCase() + str.substring(1, str.length);\n\nconst toProperty = (str) => lcFirst(str).split(' ').join('');\n\nexport interface ControlProps {\n value?: any;\n setValue?: (v: any) => void;\n defaultValue?: any;\n options?: { [key: string]: any };\n setOptions?: (v: { [key: string]: any }) => void;\n defaultOptions?: { [key: string]: any };\n name: string;\n children?: React.ReactNode;\n inputProps?: {\n type: HTMLInputTypeAttribute;\n property?: string;\n valueExtractor?: (e: any) => any;\n className?: string;\n } & any;\n hideValue?: boolean;\n}\n\nexport type LabelProps = Pick<ControlProps, 'name' | 'value' | 'defaultValue'> & { reset: () => void };\n\nexport const Label = memo<LabelProps>(function Label({ name, reset, value, defaultValue }) {\n return (\n <label className=\"flex-grow-1 mb-0 d-flex align-items-center justify-content-start gap-2\">\n {name}\n {value !== defaultValue && (\n <>\n <a href=\"javascript: void(0)\" onClick={reset}>\n <small>reset</small>\n </a>\n </>\n )}\n </label>\n );\n});\n\nexport const Control = memo<ControlProps>(function Control({\n value = null,\n setValue,\n defaultValue = null,\n options = {},\n setOptions,\n defaultOptions = {},\n name,\n inputProps: { Tag = 'input', property = 'value', valueExtractor = (e) => e.target.value, ...inputProps } = {},\n hideValue = false,\n children,\n}) {\n const prop = toProperty(name);\n\n defaultValue = defaultValue || defaultOptions[prop];\n value = value || options?.[prop];\n setValue = setValue || ((v) => setOptions?.({ [prop]: v }));\n\n const reset = () => setValue(defaultValue);\n\n return (\n <div className=\"d-flex align-items-center gap-2\">\n <Label name={name} reset={reset} value={value} defaultValue={defaultValue} />\n <Tag\n {...inputProps}\n {...{ [property]: value || '' }} // null is needed to make it always controlled\n className={`${value === defaultValue ? 'opacity-75' : ''} ${inputProps.className}`}\n onChange={(e) => setValue(valueExtractor(e))}\n >\n {children}\n </Tag>\n {!hideValue && (\n <span onDoubleClick={reset} className=\"text-start\" style={{ width: '20px' }}>\n {value}\n </span>\n )}\n </div>\n );\n});\n\nexport interface RangeProps extends ControlProps {\n min: number;\n max: number;\n step?: number;\n}\n\nexport const Range = memo<RangeProps>(function Range({ min, max, step = 0.1, ...props }) {\n return (\n <Control\n inputProps={{\n type: 'range',\n min,\n max,\n step,\n className: 'form-control-range',\n valueExtractor: (e) => parseFloat(e.target.value),\n }}\n {...props}\n />\n );\n});\n\nexport const Checkbox = memo<ControlProps>(function Checkbox(props) {\n return (\n <Control\n inputProps={{ type: 'checkbox', property: 'checked', valueExtractor: (e) => e.target.checked }}\n {...props}\n />\n );\n});\n\nexport const Select = memo<ControlProps>(function Select({ children, ...props }) {\n return (\n <Control inputProps={{ Tag: 'select', className: 'form-select' }} {...props} hideValue={true}>\n {children}\n </Control>\n );\n});\n"],"names":["Label","Control","Range","Checkbox","Select"],"mappings":";;AAEA,MAAM,UAAU,CAAC,QAAQ,IAAI,CAAC,EAAE,gBAAgB,IAAI,UAAU,GAAG,IAAI,MAAM;AAE3E,MAAM,aAAa,CAAC,QAAQ,QAAQ,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE;AAsB9C,MAAA,QAAQ,KAAiB,SAASA,OAAM,EAAE,MAAM,OAAO,OAAO,gBAAgB;AAEnF,SAAA,qBAAC,SAAM,EAAA,WAAU,0EACZ,UAAA;AAAA,IAAA;AAAA,IACA,UAAU,gBAEH,oBAAA,UAAA,EAAA,UAAA,oBAAC,KAAE,EAAA,MAAK,uBAAsB,SAAS,OACnC,UAAA,oBAAC,SAAM,EAAA,UAAA,SAAK,GAChB,EACJ,CAAA;AAAA,EAAA,GAER;AAER,CAAC;AAEY,MAAA,UAAU,KAAmB,SAASC,SAAQ;AAAA,EACvD,QAAQ;AAAA,EACR;AAAA,EACA,eAAe;AAAA,EACf,UAAU,CAAC;AAAA,EACX;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA,YAAY,EAAE,MAAM,SAAS,WAAW,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,OAAO,GAAG,eAAe,CAAC;AAAA,EAC5G,YAAY;AAAA,EACZ;AACJ,GAAG;AACO,QAAA,OAAO,WAAW,IAAI;AAEb,iBAAA,gBAAgB,eAAe,IAAI;AAC1C,UAAA,UAAS,mCAAU;AAChB,aAAA,aAAa,CAAC,MAAM,yCAAa,EAAE,CAAC,IAAI,GAAG,EAAA;AAEhD,QAAA,QAAQ,MAAM,SAAS,YAAY;AAGrC,SAAA,qBAAC,OAAI,EAAA,WAAU,mCACX,UAAA;AAAA,IAAA,oBAAC,OAAM,EAAA,MAAY,OAAc,OAAc,cAA4B;AAAA,IAC3E;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAG;AAAA,QACH,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG;AAAA,QAC9B,WAAW,GAAG,UAAU,eAAe,eAAe,EAAE,IAAI,WAAW,SAAS;AAAA,QAChF,UAAU,CAAC,MAAM,SAAS,eAAe,CAAC,CAAC;AAAA,QAE1C;AAAA,MAAA;AAAA,IACL;AAAA,IACC,CAAC,aACG,oBAAA,QAAA,EAAK,eAAe,OAAO,WAAU,cAAa,OAAO,EAAE,OAAO,OAAA,GAC9D,UACL,MAAA,CAAA;AAAA,EAAA,GAER;AAER,CAAC;AAQY,MAAA,QAAQ,KAAiB,SAASC,OAAM,EAAE,KAAK,KAAK,OAAO,KAAK,GAAG,SAAS;AAEjF,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,YAAY;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,gBAAgB,CAAC,MAAM,WAAW,EAAE,OAAO,KAAK;AAAA,MACpD;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACR;AAER,CAAC;AAEM,MAAM,WAAW,KAAmB,SAASC,UAAS,OAAO;AAE5D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,YAAY,EAAE,MAAM,YAAY,UAAU,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO,QAAQ;AAAA,MAC5F,GAAG;AAAA,IAAA;AAAA,EACR;AAER,CAAC;AAEY,MAAA,SAAS,KAAmB,SAASC,QAAO,EAAE,UAAU,GAAG,SAAS;AAC7E,SACK,oBAAA,SAAA,EAAQ,YAAY,EAAE,KAAK,UAAU,WAAW,cAAA,GAAkB,GAAG,OAAO,WAAW,MACnF,SACL,CAAA;AAER,CAAC;"}
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Control } from './controls';
3
+ declare const meta: Meta<typeof Control>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const RangeControl: Story;
7
+ export declare const CheckboxControl: Story;
8
+ export declare const SelectControl: Story;
9
+ //# sourceMappingURL=controls.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/controls.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAU,OAAO,EAAmB,MAAM,YAAY,CAAC;AAK9D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAyB9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAI7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { ErrorAlert } from './error';
3
+ declare const meta: Meta<typeof ErrorAlert>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const String: Story;
7
+ export declare const ErrorObject: Story;
8
+ //# sourceMappingURL=error.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/error.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAYjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { FieldGroup } from './field';
3
+ declare const meta: Meta<typeof FieldGroup>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Vertical: Story;
7
+ export declare const Horizontal: Story;
8
+ //# sourceMappingURL=field.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/field.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAajC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { GlobalLoading } from './globalLoading';
3
+ declare const meta: Meta<typeof GlobalLoading>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ //# sourceMappingURL=globalLoading.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalLoading.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/globalLoading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAUpC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AdaptiveContainer } from "./adaptiveContainer.js";
2
- import { Checkbox, Control, Range, Select } from "./controls.js";
2
+ import { Checkbox, Control, Label, Range, Select } from "./controls.js";
3
3
  import { ErrorAlert } from "./error.js";
4
4
  import { FieldGroup } from "./field.js";
5
5
  import { Footer, FooterNavItem } from "./footer.js";
@@ -19,6 +19,7 @@ export {
19
19
  Footer,
20
20
  FooterNavItem,
21
21
  GlobalLoading,
22
+ Label,
22
23
  Loading,
23
24
  Range,
24
25
  ResponsiveHelperBS,
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Loading } from './loading';
3
+ declare const meta: Meta<typeof Loading>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Children: Story;
8
+ export declare const Size: Story;
9
+ //# sourceMappingURL=loading.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/loading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAY9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Screen } from './screen';
3
+ declare const meta: Meta<typeof Screen>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const LongContent: Story;
8
+ export declare const Loader: Story;
9
+ export declare const Centered: Story;
10
+ export declare const ForwardCb: Story;
11
+ export declare const ForwardIcon: Story;
12
+ export declare const ForwardBtn: Story;
13
+ export declare const HeaderForm: Story;
14
+ //# sourceMappingURL=screen.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/screen.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA2ClC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CA8B7B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAcpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAgBxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Toaster } from './toaster';
3
+ declare const meta: Meta<typeof Toaster>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Object: Story;
8
+ //# sourceMappingURL=toaster.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toaster.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/toaster.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAS9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { Meta, StoryObj } from '@storybook/react';
3
+ import { UseModalProps } from './useModal';
4
+ declare const meta: Meta<FC<UseModalProps>>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof meta>;
7
+ export declare const Default: Story;
8
+ export declare const Offcanvas: Story;
9
+ //# sourceMappingURL=useModal.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useModal.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/useModal.stories.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAIrD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CA8BjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC"}
@@ -37,17 +37,12 @@ export declare function memo<Key extends any[], Val, SerializedKey extends any[]
37
37
  *
38
38
  * This makes possible to implement various one-off and subsequent transformations.
39
39
  *
40
- * 1. `write`: Before writing to cache, called only once if cache is present and valid
41
- * 2. `read`: After it's read from cache, always called if cache is valid
42
- * TODO Better names: once, folloing
43
- * TODO Better names: memoize, recover
44
- * TODO Better names: writeTransformer, readTransformer
45
- * TODO Better names: writeModifier, readModifier
46
- * TODO Better names: write, read
40
+ * 1. `write`: Transform value BEFORE writing to cache, called only once if cache IS NOT present or IS NOT valid
41
+ * 2. `read`: Transform value AFTER it's read from cache, always called if cache IS valid, keep in mind this transform is applied on top of BEFORE
47
42
  *
48
43
  * Both should return same type or null.
49
44
  *
50
- * If newValue is null, old is returned, and no cache is set.
45
+ * If `newValue` is null, old is returned, and no cache is set.
51
46
  *
52
47
  * ```ts
53
48
  * class InputCache extends TypedCache<string, ImageBitmap> {
@@ -113,6 +108,10 @@ export declare abstract class TransformerMap<Key, Val = Key> extends Map<Key, Va
113
108
  protected write(key: Key, newValue?: Val, oldValue?: Val): MaybePromise<Val>;
114
109
  protected read(oldValue: Val, key: Key): MaybePromise<Val>;
115
110
  delete(key: Key): boolean;
111
+ /**
112
+ * Do something with the value and key before removing it from cache
113
+ * For example, close a file or a bitmap
114
+ */
116
115
  protected dispose(value: Val, key: Key): void;
117
116
  clear(): void;
118
117
  set(key: Key, value: Val): this;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,cAAc,SAAU,GAAG,QAAQ,GAAG,YAC0D,CAAC;AAE9G,eAAO,MAAM,KAAK,SAAU,GAAG,QAAQ,GAAG,YAAkB,CAAC;AAG7D,eAAO,MAAM,GAAG,eAAc,CAAC;AAE/B,wBAAgB,aAAa,CAAC,GAAG,GAAG,GAAG,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,UAAQ,gBAK/D,GAAG,SAgB1C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,SAAS,GAAG,EAAE,GAAG,GAAG,EAC1E,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,EACvC,EACI,GAAgD,EAChD,UAAU,EACV,OAAO,GACV,GAAE;IACC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;cAwB2B,GAAG;;;;0BApBP,GAAG,GAAG,GAAG,EAAE;;EA2C3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,8BAAsB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAK3C,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAI5E,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAI1D,MAAM,CAAC,GAAG,EAAE,GAAG;IAQf,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAEtC,KAAK;IAML,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIzB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAkBrD"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,eAAO,MAAM,cAAc,SAAU,GAAG,QAAQ,GAAG,YAC0D,CAAC;AAE9G,eAAO,MAAM,KAAK,SAAU,GAAG,QAAQ,GAAG,YAAkB,CAAC;AAG7D,eAAO,MAAM,GAAG,eAAc,CAAC;AAE/B,wBAAgB,aAAa,CAAC,GAAG,GAAG,GAAG,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,UAAQ,gBAK/D,GAAG,SAgB1C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,SAAS,GAAG,EAAE,GAAG,GAAG,EAC1E,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,EACvC,EACI,GAAgD,EAChD,UAAU,EACV,OAAO,GACV,GAAE;IACC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,aAAa,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;cAyB2B,GAAG;;;;0BApBP,GAAG,GAAG,GAAG,EAAE;;EA2C3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,8BAAsB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,SAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAK3C,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAI5E,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAI1D,MAAM,CAAC,GAAG,EAAE,GAAG;IAQf;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAEtC,KAAK;IAML,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIzB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAkBrD"}
@@ -54,7 +54,6 @@ function memo(fn, {
54
54
  }
55
55
  class TransformerMap extends Map {
56
56
  constructor(name) {
57
- console.warn("CREATE cache", name);
58
57
  super();
59
58
  this.name = name;
60
59
  }
@@ -65,12 +64,16 @@ class TransformerMap extends Map {
65
64
  return oldValue;
66
65
  }
67
66
  delete(key) {
68
- const has = this.has(key);
69
- if (has) this.dispose(this.get(key), key);
67
+ const val = this.get(key);
68
+ const has = typeof val !== "undefined";
69
+ if (has) this.dispose(val, key);
70
70
  super.delete(key);
71
71
  return has;
72
72
  }
73
- // do something with the value and key before removing it
73
+ /**
74
+ * Do something with the value and key before removing it from cache
75
+ * For example, close a file or a bitmap
76
+ */
74
77
  dispose(value, key) {
75
78
  }
76
79
  clear() {