@zuzjs/ui 0.3.2 → 0.3.4

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 (88) hide show
  1. package/README.md +0 -0
  2. package/dist/hooks.js +89 -0
  3. package/dist/styles.css +37 -62
  4. package/dist/ui.js +665 -0
  5. package/jest.config.js +0 -0
  6. package/package.json +16 -18
  7. package/rollup.config.js +30 -47
  8. package/src/comps/box.tsx +24 -28
  9. package/src/comps/button.tsx +23 -47
  10. package/src/comps/crumb.tsx +9 -0
  11. package/src/comps/form.tsx +57 -88
  12. package/src/comps/heading.tsx +25 -31
  13. package/src/comps/icon.tsx +24 -36
  14. package/src/comps/input.tsx +24 -224
  15. package/src/comps/select.tsx +23 -63
  16. package/src/comps/spinner.tsx +23 -35
  17. package/src/comps/stylesheet.tsx +5 -0
  18. package/src/context/AppContext.tsx +2 -2
  19. package/src/context/AppProvider.tsx +68 -105
  20. package/src/context/createSlice.tsx +15 -39
  21. package/src/context/index.tsx +4 -5
  22. package/src/core/css.ts +1 -0
  23. package/src/core/index.tsx +241 -0
  24. package/src/core/styles.ts +378 -371
  25. package/src/hooks/index.tsx +2 -10
  26. package/src/hooks/useDispatch.tsx +36 -36
  27. package/src/hooks/useStore.tsx +24 -26
  28. package/src/hooks.tsx +8 -0
  29. package/src/scss/mixins.scss +2 -2
  30. package/src/scss/props.scss +91 -69
  31. package/src/scss/{style.scss → styles.scss} +102 -132
  32. package/src/ui.tsx +13 -0
  33. package/tsconfig.json +0 -0
  34. package/tsconfig.lib.json +0 -0
  35. package/tsconfig.spec.json +0 -0
  36. package/dist/index.js +0 -1868
  37. package/src/actions/addForm.tsx +0 -0
  38. package/src/actions/index.tsx +0 -29
  39. package/src/actions/redo.tsx +0 -1
  40. package/src/actions/reset.tsx +0 -1
  41. package/src/actions/undo.tsx +0 -1
  42. package/src/comps/app.tsx +0 -34
  43. package/src/comps/checkbox.tsx +0 -74
  44. package/src/comps/component.tsx +0 -32
  45. package/src/comps/contextmenu.tsx +0 -60
  46. package/src/comps/cover.tsx +0 -34
  47. package/src/comps/image.tsx +0 -34
  48. package/src/comps/masonry.tsx +0 -192
  49. package/src/comps/mediaplayer.tsx +0 -12
  50. package/src/comps/placeholder.tsx +0 -58
  51. package/src/comps/root.tsx +0 -32
  52. package/src/comps/spacer.tsx +0 -20
  53. package/src/comps/text.tsx +0 -27
  54. package/src/comps/toaster.tsx +0 -117
  55. package/src/comps/tweet.tsx +0 -48
  56. package/src/context/_AppProvider.tsx +0 -116
  57. package/src/context/combineReducers.tsx +0 -47
  58. package/src/context/combineState.tsx +0 -14
  59. package/src/context/reduceReducers.tsx +0 -6
  60. package/src/context/store/appbase.tsx +0 -19
  61. package/src/context/store/lang.tsx +0 -26
  62. package/src/context/store/theme.tsx +0 -54
  63. package/src/core/defaultTheme.ts +0 -90
  64. package/src/core/extractCurrentDesignState.tsx +0 -0
  65. package/src/core/index.ts +0 -431
  66. package/src/core/router.ts +0 -86
  67. package/src/hooks/useAppReducer.tsx +0 -40
  68. package/src/hooks/useChooseEffect.tsx +0 -6
  69. package/src/hooks/useContextMenu.tsx +0 -123
  70. package/src/hooks/useDevice.tsx +0 -164
  71. package/src/hooks/useImage.tsx +0 -84
  72. package/src/hooks/useLang.tsx +0 -9
  73. package/src/hooks/useMediaPlayer.tsx +0 -27
  74. package/src/hooks/useNavigator.tsx +0 -6
  75. package/src/hooks/useRender.tsx +0 -29
  76. package/src/hooks/useResizeObserver.tsx +0 -84
  77. package/src/hooks/useRouter.tsx +0 -45
  78. package/src/hooks/useSelector.tsx +0 -9
  79. package/src/hooks/useTheme.tsx +0 -9
  80. package/src/hooks/useToast.tsx +0 -11
  81. package/src/index.tsx +0 -35
  82. package/src/kit/Builder.tsx +0 -18
  83. package/src/kit/Component.tsx +0 -32
  84. package/src/kit/Header.tsx +0 -21
  85. package/src/redux/slices/app.js +0 -26
  86. package/src/redux/slices/form.js +0 -46
  87. package/src/redux/store.js +0 -33
  88. package/src/scss/constants.scss +0 -4
package/README.md CHANGED
File without changes
package/dist/hooks.js ADDED
@@ -0,0 +1,89 @@
1
+ import { createContext, useEffect, useMemo, useReducer, useCallback, useContext } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ const AppContext = createContext({});
5
+
6
+ let isMounted = true;
7
+ const STORE_KEY = `__zuzjs`;
8
+ const STORE_FORM_KEY = `${STORE_KEY}forms`;
9
+ const defaultState = {
10
+ [`${STORE_KEY}base`]: {
11
+ debug: true,
12
+ loading: false,
13
+ _tmp: Math.random()
14
+ },
15
+ [STORE_FORM_KEY]: {
16
+ forms: {}
17
+ }
18
+ };
19
+ const rootReducer = (state, action) => (Object.assign(Object.assign({}, state), action.payload));
20
+ const AppProvider = ({ children, initialState = {} }) => {
21
+ useEffect(() => {
22
+ isMounted = true;
23
+ return () => {
24
+ isMounted = false;
25
+ };
26
+ }, []);
27
+ const rootState = useMemo(() => (Object.assign(Object.assign({}, defaultState), initialState)), [initialState]);
28
+ const [state, _dispatch] = useReducer(rootReducer, rootState);
29
+ const dispatch = useCallback((args) => {
30
+ if (isMounted) {
31
+ _dispatch(Object.assign({}, args));
32
+ }
33
+ }, [_dispatch]);
34
+ const providedValue = useMemo(() => (Object.assign(Object.assign({}, state), { dispatch })), [state]);
35
+ return jsx(AppContext.Provider, { value: providedValue, children: children });
36
+ };
37
+
38
+ const createSlice = ({ name, initialState, reducers }) => {
39
+ return {
40
+ name,
41
+ reducer: reducers,
42
+ actions: reducers,
43
+ state: initialState
44
+ };
45
+ };
46
+
47
+ const useStore = (callback, withFilter = true) => {
48
+ let _state = useContext(AppContext);
49
+ let state = withFilter ? {} : _state;
50
+ if (withFilter) {
51
+ const filters = ['defaultState', 'theme', 'dispatch', `${STORE_KEY}base`, `${STORE_KEY}forms`];
52
+ Object.keys(_state).map(k => {
53
+ if (filters.indexOf(k) == -1) {
54
+ state[k] = _state[k];
55
+ }
56
+ });
57
+ }
58
+ if ("function" == typeof callback) {
59
+ return callback(state);
60
+ }
61
+ return state;
62
+ };
63
+
64
+ const useDispatch = (key) => {
65
+ const state = useContext(AppContext);
66
+ const dispatch = state['dispatch'];
67
+ const prepareState = (prevState, nextState) => {
68
+ const nextKeys = Object.keys(nextState);
69
+ nextKeys.map(k => {
70
+ if (prevState[k] !== nextState[k]) {
71
+ prevState[k] = nextState[k];
72
+ }
73
+ });
74
+ return Object.assign(Object.assign({}, prevState), nextState);
75
+ };
76
+ if (key) {
77
+ return (payload = {}) => {
78
+ dispatch({
79
+ action: key,
80
+ payload: {
81
+ [key]: prepareState(state[key], payload)
82
+ }
83
+ });
84
+ };
85
+ }
86
+ return dispatch;
87
+ };
88
+
89
+ export { AppProvider as Provider, createSlice, useDispatch, useStore };
package/dist/styles.css CHANGED
@@ -1,8 +1,3 @@
1
- :root {
2
- --primary-color: #b72b2e;
3
- --primary-font: "Open Sans", sans-serif, segoe ui;
4
- }
5
-
6
1
  *, *:before, *:after {
7
2
  -moz-box-sizing: border-box;
8
3
  -webkit-box-sizing: border-box;
@@ -57,51 +52,60 @@ a img {
57
52
  border: none;
58
53
  }
59
54
 
60
- *, .f {
61
- font-family: var(--primary-font);
62
- }
63
-
64
- .fb {
65
- font-family: var(--primary-font-bold);
66
- }
67
-
68
55
  button {
69
56
  cursor: pointer;
70
57
  }
71
58
 
59
+ .grid {
60
+ display: grid;
61
+ }
62
+
72
63
  .fixed {
73
64
  position: fixed;
74
65
  }
75
-
76
- .block {
77
- display: block;
66
+ .fixed.fill {
67
+ top: 0px;
68
+ left: 0px;
69
+ right: 0px;
70
+ bottom: 0px;
78
71
  }
79
72
 
80
- .iblock {
81
- display: inline-block;
73
+ .rel {
74
+ position: relative;
82
75
  }
83
76
 
84
- .tdn {
85
- text-decoration: none;
77
+ .abs {
78
+ position: absolute;
79
+ }
80
+ .abs.abc {
81
+ top: 50%;
82
+ left: 50%;
83
+ transform: translate(-50%, -50%);
84
+ }
85
+ .abs.fill {
86
+ top: 0px;
87
+ left: 0px;
88
+ right: 0px;
89
+ bottom: 0px;
86
90
  }
87
91
 
88
- .tdh:hover {
89
- text-decoration: underline;
92
+ .sticky {
93
+ position: sticky;
90
94
  }
91
95
 
92
- .cprimary, .color {
93
- color: var(--primary-color);
96
+ .block {
97
+ display: block;
94
98
  }
95
99
 
96
- .primary {
97
- background-color: var(--primary-color);
100
+ .iblock {
101
+ display: inline-block;
98
102
  }
99
103
 
100
104
  .tdnh, .tdn {
101
105
  text-decoration: none;
102
106
  }
103
107
 
104
- .tdnh:hover {
108
+ .tdnh:hover, .tdh:hover {
105
109
  text-decoration: underline;
106
110
  }
107
111
 
@@ -135,6 +139,9 @@ button {
135
139
  .flex.jce {
136
140
  justify-content: flex-end;
137
141
  }
142
+ .flex.col {
143
+ flex-direction: column;
144
+ }
138
145
 
139
146
  /*
140
147
  COLORS
@@ -356,19 +363,7 @@ button {
356
363
  font-weight: 900;
357
364
  }
358
365
 
359
- @-webkit-keyframes rotating /* Safari and Chrome */ {
360
- from {
361
- -webkit-transform: rotate(0deg);
362
- -o-transform: rotate(0deg);
363
- transform: rotate(0deg);
364
- }
365
- to {
366
- -webkit-transform: rotate(360deg);
367
- -o-transform: rotate(360deg);
368
- transform: rotate(360deg);
369
- }
370
- }
371
- @keyframes rotating {
366
+ @keyframes rotate-loop {
372
367
  from {
373
368
  -ms-transform: rotate(0deg);
374
369
  -moz-transform: rotate(0deg);
@@ -384,34 +379,14 @@ button {
384
379
  transform: rotate(360deg);
385
380
  }
386
381
  }
387
- .rotating {
388
- -webkit-animation: rotating 2s linear infinite;
389
- -moz-animation: rotating 2s linear infinite;
390
- -ms-animation: rotating 2s linear infinite;
391
- -o-animation: rotating 2s linear infinite;
392
- animation: rotating 2s linear infinite;
382
+ .zuz-spinner .zuz-loader {
383
+ animation: rotate-loop 0.5s linear infinite;
393
384
  }
394
385
 
395
386
  .button {
396
- background: var(--primary-color);
397
- color: #fff;
398
387
  border: 0px;
399
388
  }
400
389
 
401
- .zuz-toast {
402
- border-radius: 5px;
403
- transition: all 0.15s linear 0s;
404
- }
405
- .zuz-toast.hidden {
406
- transform: translate(-50%, -300px) scale(0.5) !important;
407
- }
408
- .zuz-toast.showing {
409
- transform: translate(-50%, -50px) scale(0.9) !important;
410
- }
411
- .zuz-toast.visible {
412
- transform: translate(-50%, 0px) scale(1) !important;
413
- }
414
-
415
390
  .zuz-checkbox {
416
391
  opacity: 0;
417
392
  position: absolute;