@owlmeans/web-panel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1195 -0
  3. package/build/.gitkeep +0 -0
  4. package/build/auth/context.d.ts +5 -0
  5. package/build/auth/context.d.ts.map +1 -0
  6. package/build/auth/context.js +17 -0
  7. package/build/auth/context.js.map +1 -0
  8. package/build/auth/exports.d.ts +25 -0
  9. package/build/auth/exports.d.ts.map +1 -0
  10. package/build/auth/exports.js +19 -0
  11. package/build/auth/exports.js.map +1 -0
  12. package/build/auth/index.d.ts +5 -0
  13. package/build/auth/index.d.ts.map +1 -0
  14. package/build/auth/index.js +4 -0
  15. package/build/auth/index.js.map +1 -0
  16. package/build/auth/modules.d.ts +2 -0
  17. package/build/auth/modules.d.ts.map +1 -0
  18. package/build/auth/modules.js +4 -0
  19. package/build/auth/modules.js.map +1 -0
  20. package/build/auth/plugins/basic-ed25519.d.ts +3 -0
  21. package/build/auth/plugins/basic-ed25519.d.ts.map +1 -0
  22. package/build/auth/plugins/basic-ed25519.js +40 -0
  23. package/build/auth/plugins/basic-ed25519.js.map +1 -0
  24. package/build/auth/plugins/exports.d.ts +4 -0
  25. package/build/auth/plugins/exports.d.ts.map +1 -0
  26. package/build/auth/plugins/exports.js +4 -0
  27. package/build/auth/plugins/exports.js.map +1 -0
  28. package/build/auth/plugins/index.d.ts +6 -0
  29. package/build/auth/plugins/index.d.ts.map +1 -0
  30. package/build/auth/plugins/index.js +10 -0
  31. package/build/auth/plugins/index.js.map +1 -0
  32. package/build/auth/plugins/re-captcha.d.ts +3 -0
  33. package/build/auth/plugins/re-captcha.d.ts.map +1 -0
  34. package/build/auth/plugins/re-captcha.js +51 -0
  35. package/build/auth/plugins/re-captcha.js.map +1 -0
  36. package/build/auth/plugins/tunnel-consumer.d.ts +3 -0
  37. package/build/auth/plugins/tunnel-consumer.d.ts.map +1 -0
  38. package/build/auth/plugins/tunnel-consumer.js +40 -0
  39. package/build/auth/plugins/tunnel-consumer.js.map +1 -0
  40. package/build/auth/types.d.ts +10 -0
  41. package/build/auth/types.d.ts.map +1 -0
  42. package/build/auth/types.js +2 -0
  43. package/build/auth/types.js.map +1 -0
  44. package/build/components/block.d.ts +4 -0
  45. package/build/components/block.d.ts.map +1 -0
  46. package/build/components/block.js +15 -0
  47. package/build/components/block.js.map +1 -0
  48. package/build/components/button/index.d.ts +3 -0
  49. package/build/components/button/index.d.ts.map +1 -0
  50. package/build/components/button/index.js +2 -0
  51. package/build/components/button/index.js.map +1 -0
  52. package/build/components/button/selector.d.ts +4 -0
  53. package/build/components/button/selector.d.ts.map +1 -0
  54. package/build/components/button/selector.js +8 -0
  55. package/build/components/button/selector.js.map +1 -0
  56. package/build/components/button/types.d.ts +7 -0
  57. package/build/components/button/types.d.ts.map +1 -0
  58. package/build/components/button/types.js +2 -0
  59. package/build/components/button/types.js.map +1 -0
  60. package/build/components/form/button/component.d.ts +5 -0
  61. package/build/components/form/button/component.d.ts.map +1 -0
  62. package/build/components/form/button/component.js +34 -0
  63. package/build/components/form/button/component.js.map +1 -0
  64. package/build/components/form/button/index.d.ts +3 -0
  65. package/build/components/form/button/index.d.ts.map +1 -0
  66. package/build/components/form/button/index.js +3 -0
  67. package/build/components/form/button/index.js.map +1 -0
  68. package/build/components/form/button/types.d.ts +15 -0
  69. package/build/components/form/button/types.d.ts.map +1 -0
  70. package/build/components/form/button/types.js +2 -0
  71. package/build/components/form/button/types.js.map +1 -0
  72. package/build/components/form/component.d.ts +4 -0
  73. package/build/components/form/component.d.ts.map +1 -0
  74. package/build/components/form/component.js +59 -0
  75. package/build/components/form/component.js.map +1 -0
  76. package/build/components/form/index.d.ts +3 -0
  77. package/build/components/form/index.d.ts.map +1 -0
  78. package/build/components/form/index.js +2 -0
  79. package/build/components/form/index.js.map +1 -0
  80. package/build/components/form/text/component.d.ts +4 -0
  81. package/build/components/form/text/component.d.ts.map +1 -0
  82. package/build/components/form/text/component.js +34 -0
  83. package/build/components/form/text/component.js.map +1 -0
  84. package/build/components/form/text/index.d.ts +3 -0
  85. package/build/components/form/text/index.d.ts.map +1 -0
  86. package/build/components/form/text/index.js +3 -0
  87. package/build/components/form/text/index.js.map +1 -0
  88. package/build/components/form/text/types.d.ts +11 -0
  89. package/build/components/form/text/types.d.ts.map +1 -0
  90. package/build/components/form/text/types.js +2 -0
  91. package/build/components/form/text/types.js.map +1 -0
  92. package/build/components/form/types.d.ts +6 -0
  93. package/build/components/form/types.d.ts.map +1 -0
  94. package/build/components/form/types.js +2 -0
  95. package/build/components/form/types.js.map +1 -0
  96. package/build/components/helper.d.ts +6 -0
  97. package/build/components/helper.d.ts.map +1 -0
  98. package/build/components/helper.js +70 -0
  99. package/build/components/helper.js.map +1 -0
  100. package/build/components/index.d.ts +14 -0
  101. package/build/components/index.d.ts.map +1 -0
  102. package/build/components/index.js +13 -0
  103. package/build/components/index.js.map +1 -0
  104. package/build/components/layout/component.d.ts +4 -0
  105. package/build/components/layout/component.d.ts.map +1 -0
  106. package/build/components/layout/component.js +6 -0
  107. package/build/components/layout/component.js.map +1 -0
  108. package/build/components/layout/index.d.ts +3 -0
  109. package/build/components/layout/index.d.ts.map +1 -0
  110. package/build/components/layout/index.js +3 -0
  111. package/build/components/layout/index.js.map +1 -0
  112. package/build/components/layout/types.d.ts +4 -0
  113. package/build/components/layout/types.d.ts.map +1 -0
  114. package/build/components/layout/types.js +2 -0
  115. package/build/components/layout/types.js.map +1 -0
  116. package/build/components/link.d.ts +4 -0
  117. package/build/components/link.d.ts.map +1 -0
  118. package/build/components/link.js +27 -0
  119. package/build/components/link.js.map +1 -0
  120. package/build/components/panel-app/component.d.ts +4 -0
  121. package/build/components/panel-app/component.d.ts.map +1 -0
  122. package/build/components/panel-app/component.js +12 -0
  123. package/build/components/panel-app/component.js.map +1 -0
  124. package/build/components/panel-app/index.d.ts +3 -0
  125. package/build/components/panel-app/index.d.ts.map +1 -0
  126. package/build/components/panel-app/index.js +3 -0
  127. package/build/components/panel-app/index.js.map +1 -0
  128. package/build/components/panel-app/types.d.ts +6 -0
  129. package/build/components/panel-app/types.d.ts.map +1 -0
  130. package/build/components/panel-app/types.js +2 -0
  131. package/build/components/panel-app/types.js.map +1 -0
  132. package/build/components/status.d.ts +4 -0
  133. package/build/components/status.d.ts.map +1 -0
  134. package/build/components/status.js +19 -0
  135. package/build/components/status.js.map +1 -0
  136. package/build/components/text.d.ts +4 -0
  137. package/build/components/text.d.ts.map +1 -0
  138. package/build/components/text.js +9 -0
  139. package/build/components/text.js.map +1 -0
  140. package/build/components/types.d.ts +32 -0
  141. package/build/components/types.d.ts.map +1 -0
  142. package/build/components/types.js +2 -0
  143. package/build/components/types.js.map +1 -0
  144. package/build/components/uploader/image.d.ts +4 -0
  145. package/build/components/uploader/image.d.ts.map +1 -0
  146. package/build/components/uploader/image.js +24 -0
  147. package/build/components/uploader/image.js.map +1 -0
  148. package/build/components/uploader/index.d.ts +2 -0
  149. package/build/components/uploader/index.d.ts.map +1 -0
  150. package/build/components/uploader/index.js +2 -0
  151. package/build/components/uploader/index.js.map +1 -0
  152. package/build/components/uploader/types.d.ts +5 -0
  153. package/build/components/uploader/types.d.ts.map +1 -0
  154. package/build/components/uploader/types.js +2 -0
  155. package/build/components/uploader/types.js.map +1 -0
  156. package/build/context.d.ts +4 -0
  157. package/build/context.d.ts.map +1 -0
  158. package/build/context.js +12 -0
  159. package/build/context.js.map +1 -0
  160. package/build/exports.d.ts +19 -0
  161. package/build/exports.d.ts.map +1 -0
  162. package/build/exports.js +17 -0
  163. package/build/exports.js.map +1 -0
  164. package/build/index.d.ts +8 -0
  165. package/build/index.d.ts.map +1 -0
  166. package/build/index.js +7 -0
  167. package/build/index.js.map +1 -0
  168. package/build/main.d.ts +5 -0
  169. package/build/main.d.ts.map +1 -0
  170. package/build/main.js +14 -0
  171. package/build/main.js.map +1 -0
  172. package/build/modules.d.ts +2 -0
  173. package/build/modules.d.ts.map +1 -0
  174. package/build/modules.js +4 -0
  175. package/build/modules.js.map +1 -0
  176. package/build/types.d.ts +9 -0
  177. package/build/types.d.ts.map +1 -0
  178. package/build/types.js +2 -0
  179. package/build/types.js.map +1 -0
  180. package/package.json +89 -0
  181. package/src/auth/context.ts +25 -0
  182. package/src/auth/exports.ts +29 -0
  183. package/src/auth/index.ts +5 -0
  184. package/src/auth/modules.ts +5 -0
  185. package/src/auth/plugins/basic-ed25519.tsx +57 -0
  186. package/src/auth/plugins/exports.ts +4 -0
  187. package/src/auth/plugins/index.ts +15 -0
  188. package/src/auth/plugins/re-captcha.tsx +73 -0
  189. package/src/auth/plugins/tunnel-consumer.tsx +65 -0
  190. package/src/auth/types.ts +11 -0
  191. package/src/components/block.tsx +27 -0
  192. package/src/components/button/index.ts +3 -0
  193. package/src/components/button/selector.tsx +16 -0
  194. package/src/components/button/types.ts +7 -0
  195. package/src/components/form/button/component.tsx +53 -0
  196. package/src/components/form/button/index.ts +3 -0
  197. package/src/components/form/button/types.ts +16 -0
  198. package/src/components/form/component.tsx +101 -0
  199. package/src/components/form/index.ts +3 -0
  200. package/src/components/form/text/component.tsx +45 -0
  201. package/src/components/form/text/index.ts +3 -0
  202. package/src/components/form/text/types.ts +11 -0
  203. package/src/components/form/types.ts +6 -0
  204. package/src/components/helper.ts +79 -0
  205. package/src/components/index.ts +17 -0
  206. package/src/components/layout/component.tsx +7 -0
  207. package/src/components/layout/index.ts +3 -0
  208. package/src/components/layout/types.ts +4 -0
  209. package/src/components/link.tsx +34 -0
  210. package/src/components/panel-app/component.tsx +21 -0
  211. package/src/components/panel-app/index.ts +3 -0
  212. package/src/components/panel-app/types.ts +6 -0
  213. package/src/components/status.tsx +23 -0
  214. package/src/components/text.tsx +14 -0
  215. package/src/components/types.ts +35 -0
  216. package/src/components/uploader/image.tsx +31 -0
  217. package/src/components/uploader/index.ts +2 -0
  218. package/src/components/uploader/types.ts +6 -0
  219. package/src/context.ts +18 -0
  220. package/src/exports.ts +22 -0
  221. package/src/index.ts +9 -0
  222. package/src/main.tsx +19 -0
  223. package/src/modules.ts +5 -0
  224. package/src/types.ts +11 -0
  225. package/tsconfig.json +16 -0
  226. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,31 @@
1
+ import type { FC } from 'react'
2
+ import { ImageUploader as Uploader } from '@owlmeans/web-client'
3
+ import Paper from '@mui/material/Paper'
4
+ import type { ImageUploaderProps } from './types.js'
5
+ import AddPhotoAlternateOutlinedIcon from '@mui/icons-material/AddPhotoAlternateOutlined';
6
+ import Box from '@mui/material/Box'
7
+
8
+ export const ImageUploader: FC<ImageUploaderProps> = ({ Root, rootProps, previewUrl, ...others }) => {
9
+ return <Uploader Root={Root ?? Paper} rootProps={{
10
+ elevation: 2,
11
+ sx: {
12
+ width: wrapperSize,
13
+ height: wrapperSize,
14
+ display: "flex",
15
+ justifyContent: "center",
16
+ alignItems: "center",
17
+ cursor: 'pointer',
18
+ },
19
+ ...rootProps
20
+ }} {...others}>
21
+ {
22
+ previewUrl != null
23
+ ? <Box component="img" src={previewUrl}
24
+ sx={{ maxWidth: previewSize, maxHeight: previewSize }} />
25
+ : <AddPhotoAlternateOutlinedIcon sx={{ fontSize: previewSize }} color="primary" />
26
+ }
27
+ </Uploader>
28
+ }
29
+
30
+ const previewSize = { xs: 60, md: 120, lg: 200 }
31
+ const wrapperSize = { xs: 65, md: 125, lg: 205 }
@@ -0,0 +1,2 @@
1
+
2
+ export * from './image.js'
@@ -0,0 +1,6 @@
1
+
2
+ import type { UploaderProps as BasicUploaderProps } from '@owlmeans/web-client'
3
+
4
+ export interface ImageUploaderProps extends BasicUploaderProps {
5
+ previewUrl?: string
6
+ }
package/src/context.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { appendFlowService } from '@owlmeans/web-flow'
2
+ import type { AppConfig , AppContext } from './types.js'
3
+ import { makeContext as makeClientContext, useContext as useCtx } from '@owlmeans/web-client'
4
+ import { apiConfigMiddleware } from '@owlmeans/api-config-client'
5
+
6
+ export const makeContext = <C extends AppConfig, T extends AppContext<C>>(cfg: C): T => {
7
+ const context = makeClientContext(cfg) as T
8
+
9
+ context.registerMiddleware(apiConfigMiddleware)
10
+
11
+ appendFlowService<C, T>(context)
12
+ context.flow = () => context.service('flow')
13
+
14
+ return context
15
+ }
16
+
17
+ export const useContext = <C extends AppConfig = AppConfig,T extends AppContext<C> = AppContext<C>>() =>
18
+ useCtx<C,T>()
package/src/exports.ts ADDED
@@ -0,0 +1,22 @@
1
+
2
+ export { handler, useNavigate, useValue, useModule } from '@owlmeans/client'
3
+ export { config } from '@owlmeans/client-context'
4
+ export { service } from '@owlmeans/config'
5
+ export { guard, parent } from '@owlmeans/module'
6
+ export { addWebService } from '@owlmeans/client-config'
7
+ export { module, elevate, provideRequest, stab } from '@owlmeans/client-module'
8
+ export type { ClientModule as Module } from '@owlmeans/client-module'
9
+ export { route as croute } from '@owlmeans/client-route'
10
+ export { route, frontend } from '@owlmeans/route'
11
+ export { DEFAULT_ALIAS as DAUTH_GUARD, setupExternalAuthentication } from '@owlmeans/client-auth'
12
+
13
+ export { AppType, HOME, ROOT, BASE, GUEST } from '@owlmeans/context'
14
+
15
+ export { DISPATCHER, CAUTHEN_FLOW_ENTER } from '@owlmeans/auth'
16
+ export type { AuthToken } from '@owlmeans/auth'
17
+
18
+ export { useCommonI18n, useI18nApp, useI18nLib } from '@owlmeans/client-i18n'
19
+ export { addCommonI18n, addI18nApp } from '@owlmeans/i18n'
20
+ export { flow, configureFlows } from '@owlmeans/flow'
21
+ export { QUERY_PARAM as FLOW_PARAM, SERVICE_PARAM, useFlow } from '@owlmeans/web-flow'
22
+ export { Dispatcher, appendWebAuthService } from '@owlmeans/web-client'
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+
2
+ export type * from './types.js'
3
+ export * from './main.js'
4
+ export * from './exports.js'
5
+ export * from './context.js'
6
+ export * from './modules.js'
7
+ export * from './components/index.js'
8
+
9
+ export * from '@owlmeans/client-panel'
package/src/main.tsx ADDED
@@ -0,0 +1,19 @@
1
+ import type { RenderOptions, AppContext } from '@owlmeans/web-client'
2
+ import type { ClientConfig, ClientContext } from '@owlmeans/client-context'
3
+ import { render as basicRender, provide } from '@owlmeans/web-client'
4
+ import type { FC } from 'react'
5
+ import { useI18nInstance } from '@owlmeans/client-i18n/utils'
6
+ import detector from 'i18next-browser-languagedetector'
7
+ import { PanelApp } from './components/panel-app/component.js'
8
+ import type { Theme } from '@mui/material/styles'
9
+
10
+ export const render = <C extends ClientConfig, T extends ClientContext<C>>(context: T, theme?: Theme, opts?: RenderOptions) => {
11
+ basicRender(<App context={context as unknown as AppContext} theme={theme}/>, opts)
12
+ }
13
+
14
+ const App: FC<{ context: AppContext<any>, theme?: Theme }> = ({ context, theme }) => {
15
+ const i18nInstance = useI18nInstance(context.cfg)
16
+ i18nInstance.use(detector)
17
+
18
+ return <PanelApp context={context} provide={provide} theme={theme} />
19
+ }
package/src/modules.ts ADDED
@@ -0,0 +1,5 @@
1
+
2
+ import { modules as list } from '@owlmeans/web-client'
3
+ import { modules as config } from '@owlmeans/api-config-client'
4
+
5
+ export const modules = [...list, ...config]
package/src/types.ts ADDED
@@ -0,0 +1,11 @@
1
+
2
+ import type { WithFlowConfig } from '@owlmeans/flow'
3
+ import type { AppConfig as Config, AppContext as Context } from '@owlmeans/web-client'
4
+ import type { FlowService } from '@owlmeans/web-flow'
5
+
6
+ export interface AppConfig extends Config, WithFlowConfig {
7
+ }
8
+
9
+ export interface AppContext<C extends AppConfig = AppConfig> extends Context<C> {
10
+ flow: () => FlowService
11
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": [
3
+ "../tsconfig.default.json",
4
+ "../tsconfig.react.json",
5
+ ],
6
+ "compilerOptions": {
7
+ "rootDir": "./src/", /* Specify the root folder within your source files. */
8
+ "outDir": "./build/", /* Specify an output folder for all emitted files. */
9
+ "moduleResolution": "Bundler"
10
+ },
11
+ "exclude": [
12
+ "./dist/**/*",
13
+ "./build/**/*",
14
+ "./*.ts"
15
+ ]
16
+ }
@@ -0,0 +1 @@
1
+ {"root":["./src/context.ts","./src/exports.ts","./src/index.ts","./src/main.tsx","./src/modules.ts","./src/types.ts","./src/auth/context.ts","./src/auth/exports.ts","./src/auth/index.ts","./src/auth/modules.ts","./src/auth/types.ts","./src/auth/plugins/basic-ed25519.tsx","./src/auth/plugins/exports.ts","./src/auth/plugins/index.ts","./src/auth/plugins/re-captcha.tsx","./src/auth/plugins/tunnel-consumer.tsx","./src/components/block.tsx","./src/components/helper.ts","./src/components/index.ts","./src/components/link.tsx","./src/components/status.tsx","./src/components/text.tsx","./src/components/types.ts","./src/components/button/index.ts","./src/components/button/selector.tsx","./src/components/button/types.ts","./src/components/form/component.tsx","./src/components/form/index.ts","./src/components/form/types.ts","./src/components/form/button/component.tsx","./src/components/form/button/index.ts","./src/components/form/button/types.ts","./src/components/form/text/component.tsx","./src/components/form/text/index.ts","./src/components/form/text/types.ts","./src/components/layout/component.tsx","./src/components/layout/index.ts","./src/components/layout/types.ts","./src/components/panel-app/component.tsx","./src/components/panel-app/index.ts","./src/components/panel-app/types.ts","./src/components/uploader/image.tsx","./src/components/uploader/index.ts","./src/components/uploader/types.ts"],"version":"5.6.3"}