slicejs-web-framework 3.2.3 → 3.3.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 (117) hide show
  1. package/.opencode/opencode.json +13 -13
  2. package/LICENSE +21 -21
  3. package/README.md +97 -174
  4. package/Slice/Components/Structural/ContextManager/ContextManager.js +369 -369
  5. package/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +420 -297
  6. package/Slice/Components/Structural/Controller/Controller.js +1131 -1131
  7. package/Slice/Components/Structural/Debugger/Debugger.html +72 -72
  8. package/Slice/Components/Structural/Debugger/Debugger.js +1497 -1547
  9. package/Slice/Components/Structural/EventManager/EventManager.js +338 -338
  10. package/Slice/Components/Structural/EventManager/EventManagerDebugger.js +476 -361
  11. package/Slice/Components/Structural/Logger/Log.js +10 -10
  12. package/Slice/Components/Structural/Logger/Logger.js +146 -146
  13. package/Slice/Components/Structural/Router/Router.js +752 -721
  14. package/Slice/Components/Structural/StylesManager/StylesManager.js +78 -78
  15. package/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +84 -84
  16. package/Slice/Slice.js +542 -542
  17. package/Slice/tests/build-bundled-component-without-category.test.js +103 -103
  18. package/Slice/tests/build-js-only-visual-components.test.js +144 -144
  19. package/Slice/tests/bundle-v2-runtime-contract.test.js +728 -728
  20. package/Slice/tests/public-env-runtime-accessors.test.js +44 -44
  21. package/Slice/tests/router-loading-finally.test.js +68 -68
  22. package/api/index.js +286 -286
  23. package/api/middleware/securityMiddleware.js +252 -252
  24. package/api/tests/public-env-resolver.test.js +193 -193
  25. package/api/utils/publicEnvResolver.js +117 -117
  26. package/package.json +40 -38
  27. package/sliceConfig.schema.json +109 -109
  28. package/src/App/index.html +16 -22
  29. package/src/App/index.js +20 -23
  30. package/src/App/style.css +11 -40
  31. package/src/Components/AppComponents/AboutSection/AboutSection.css +9 -0
  32. package/src/Components/AppComponents/AboutSection/AboutSection.html +8 -0
  33. package/src/Components/AppComponents/AboutSection/AboutSection.js +12 -0
  34. package/src/Components/AppComponents/AppShell/AppShell.css +10 -0
  35. package/src/Components/AppComponents/AppShell/AppShell.html +4 -0
  36. package/src/Components/AppComponents/AppShell/AppShell.js +36 -0
  37. package/src/Components/AppComponents/HomeSection/HomeSection.css +20 -0
  38. package/src/Components/AppComponents/HomeSection/HomeSection.html +10 -0
  39. package/src/Components/AppComponents/HomeSection/HomeSection.js +19 -0
  40. package/src/Components/Service/FetchManager/FetchManager.js +133 -133
  41. package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -141
  42. package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -45
  43. package/src/Components/Visual/Button/Button.css +47 -47
  44. package/src/Components/Visual/Button/Button.html +5 -5
  45. package/src/Components/Visual/Button/Button.js +92 -92
  46. package/src/Components/Visual/Card/Card.css +68 -68
  47. package/src/Components/Visual/Card/Card.html +7 -7
  48. package/src/Components/Visual/Card/Card.js +107 -107
  49. package/src/Components/Visual/Checkbox/Checkbox.css +87 -87
  50. package/src/Components/Visual/Checkbox/Checkbox.html +8 -8
  51. package/src/Components/Visual/Checkbox/Checkbox.js +86 -86
  52. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +129 -129
  53. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +3 -3
  54. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +262 -262
  55. package/src/Components/Visual/Details/Details.css +70 -70
  56. package/src/Components/Visual/Details/Details.html +9 -9
  57. package/src/Components/Visual/Details/Details.js +76 -76
  58. package/src/Components/Visual/DropDown/DropDown.css +60 -60
  59. package/src/Components/Visual/DropDown/DropDown.html +5 -5
  60. package/src/Components/Visual/DropDown/DropDown.js +63 -63
  61. package/src/Components/Visual/Grid/Grid.css +7 -7
  62. package/src/Components/Visual/Grid/Grid.html +1 -1
  63. package/src/Components/Visual/Grid/Grid.js +57 -57
  64. package/src/Components/Visual/Icon/Icon.css +510 -510
  65. package/src/Components/Visual/Icon/Icon.js +89 -89
  66. package/src/Components/Visual/Icon/slc.json +554 -554
  67. package/src/Components/Visual/Icon/slc.styl +507 -507
  68. package/src/Components/Visual/Icon/slc.svg +1485 -1485
  69. package/src/Components/Visual/Icon/slc.symbol.svg +1058 -1058
  70. package/src/Components/Visual/Input/Input.css +91 -91
  71. package/src/Components/Visual/Input/Input.html +4 -4
  72. package/src/Components/Visual/Input/Input.js +215 -215
  73. package/src/Components/Visual/Layout/Layout.js +49 -49
  74. package/src/Components/Visual/Link/Link.css +8 -8
  75. package/src/Components/Visual/Link/Link.html +1 -1
  76. package/src/Components/Visual/Link/Link.js +63 -63
  77. package/src/Components/Visual/Loading/Loading.css +56 -56
  78. package/src/Components/Visual/Loading/Loading.html +83 -83
  79. package/src/Components/Visual/Loading/Loading.js +38 -38
  80. package/src/Components/Visual/MultiRoute/MultiRoute.js +100 -93
  81. package/src/Components/Visual/Navbar/Navbar.css +115 -115
  82. package/src/Components/Visual/Navbar/Navbar.html +44 -44
  83. package/src/Components/Visual/Navbar/Navbar.js +141 -141
  84. package/src/Components/Visual/NotFound/NotFound.css +116 -116
  85. package/src/Components/Visual/NotFound/NotFound.html +23 -23
  86. package/src/Components/Visual/NotFound/NotFound.js +16 -16
  87. package/src/Components/Visual/Route/Route.js +93 -93
  88. package/src/Components/Visual/Select/Select.css +84 -84
  89. package/src/Components/Visual/Select/Select.html +8 -8
  90. package/src/Components/Visual/Select/Select.js +195 -195
  91. package/src/Components/Visual/Switch/Switch.css +76 -76
  92. package/src/Components/Visual/Switch/Switch.html +8 -8
  93. package/src/Components/Visual/Switch/Switch.js +102 -102
  94. package/src/Components/Visual/TreeItem/TreeItem.css +36 -36
  95. package/src/Components/Visual/TreeItem/TreeItem.html +1 -1
  96. package/src/Components/Visual/TreeItem/TreeItem.js +126 -126
  97. package/src/Components/Visual/TreeView/TreeView.css +8 -8
  98. package/src/Components/Visual/TreeView/TreeView.html +1 -1
  99. package/src/Components/Visual/TreeView/TreeView.js +48 -48
  100. package/src/Components/components.js +15 -27
  101. package/src/Styles/sliceStyles.css +34 -34
  102. package/src/Themes/Dark.css +42 -42
  103. package/src/Themes/Light.css +31 -31
  104. package/src/Themes/Slice.css +47 -47
  105. package/src/routes.js +9 -15
  106. package/src/sliceConfig.json +74 -73
  107. package/types/index.d.ts +207 -207
  108. package/Slice/Components/Structural/Debugger/Debugger.css +0 -620
  109. package/src/Components/AppComponents/HomePage/HomePage.css +0 -201
  110. package/src/Components/AppComponents/HomePage/HomePage.html +0 -37
  111. package/src/Components/AppComponents/HomePage/HomePage.js +0 -210
  112. package/src/Components/AppComponents/Playground/Playground.css +0 -12
  113. package/src/Components/AppComponents/Playground/Playground.html +0 -0
  114. package/src/Components/AppComponents/Playground/Playground.js +0 -111
  115. package/src/images/Slice.js-logo.png +0 -0
  116. package/src/images/im2/Slice.js-logo.png +0 -0
  117. package/src/testing.js +0 -888
@@ -1,117 +1,117 @@
1
- * {
2
- border: 0;
3
- box-sizing: border-box;
4
- margin: 0;
5
- padding: 0;
6
- }
7
- #app, body {
8
- background: var(--primary-color);
9
- display: flex;
10
- height: 100vh;
11
- }
12
- /* I. Containers */
13
- figure {
14
- font-size: 6px;
15
- margin: auto;
16
- padding: 4em 0;
17
- width: 64em;
18
- }
19
- figcaption {
20
- color: var(--font-color);
21
- display: flex;
22
- align-content: space-between;
23
- flex-wrap: wrap;
24
- height: 17em;
25
- }
26
- figcaption span:before, .sad-mac:before {
27
- content: "";
28
- display: block;
29
- width: 1em;
30
- height: 1em;
31
- transform: translate(-1em,-1em);
32
- }
33
- figcaption span {
34
- display: inline-block;
35
- margin: 0 2em;
36
- width: 4em;
37
- height: 6em;
38
- }
39
- .sr-text {
40
- overflow: hidden;
41
- position: absolute;
42
- width: 0;
43
- height: 0;
44
- }
45
- /* II. Sprites */
46
- /* 1. Sad Mac */
47
- .sad-mac {
48
- background: #fff;
49
- margin: 0 auto 7em auto;
50
- width: 23em;
51
- height: 30em;
52
- }
53
- .sad-mac:before {
54
- box-shadow: 1em 1em, 23em 1em, 4em 3em, 5em 3em, 6em 3em, 7em 3em, 8em 3em, 9em 3em, 10em 3em, 11em 3em, 12em 3em, 13em 3em, 14em 3em, 15em 3em, 16em 3em, 17em 3em, 18em 3em, 19em 3em, 20em 3em, 3em 4em, 21em 4em, 3em 5em, 21em 5em, 3em 6em, 7em 6em, 9em 6em, 15em 6em, 17em 6em, 21em 6em, 3em 7em, 8em 7em, 16em 7em, 21em 7em, 3em 8em, 7em 8em, 9em 8em, 15em 8em, 17em 8em, 21em 8em, 3em 9em, 21em 9em, 3em 10em, 10em 10em, 13em 10em, 21em 10em, 3em 11em, 11em 11em, 12em 11em, 21em 11em, 3em 12em, 21em 12em, 3em 13em, 10em 13em, 11em 13em, 12em 13em, 13em 13em, 14em 13em, 21em 13em, 3em 14em, 9em 14em, 15em 14em, 16em 14em, 21em 14em, 3em 15em, 17em 15em, 21em 15em, 3em 16em, 21em 16em, 4em 17em, 5em 17em, 6em 17em, 7em 17em, 8em 17em, 9em 17em, 10em 17em, 11em 17em, 12em 17em, 13em 17em, 14em 17em, 15em 17em, 16em 17em, 17em 17em, 18em 17em, 19em 17em, 20em 17em, 3em 22em, 4em 22em, 5em 22em, 14em 22em, 15em 22em, 16em 22em, 17em 22em, 18em 22em, 19em 22em, 20em 22em, 1em 27em, 2em 27em, 3em 27em, 4em 27em, 5em 27em, 6em 27em, 7em 27em, 8em 27em, 9em 27em, 10em 27em, 11em 27em, 12em 27em, 13em 27em, 14em 27em, 15em 27em, 16em 27em, 17em 27em, 18em 27em, 19em 27em, 20em 27em, 21em 27em, 22em 27em, 23em 27em, 1em 28em, 23em 28em, 1em 29em, 23em 29em, 1em 30em, 23em 30em;
55
- }
56
- /* 2. Letters */
57
- ._0:before {
58
- box-shadow: 2em 1em, 3em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 4em, 3em 3em, 2em 6em, 3em 6em;
59
- }
60
- ._4:before {
61
- box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 2em 4em, 3em 4em, 4em 5em, 4em 6em;
62
- }
63
- .d:before {
64
- box-shadow: 1em 1em, 2em 1em, 3em 1em, 1em 2em, 4em 2em, 1em 3em, 4em 3em, 1em 4em, 4em 4em, 1em 5em, 4em 5em, 1em 6em, 2em 6em, 3em 6em;
65
- }
66
- .e:before {
67
- box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 1em, 1em 2em, 1em 3em, 2em 3em, 3em 3em, 1em 4em, 1em 5em, 1em 6em, 2em 6em, 3em 6em, 4em 6em;
68
- }
69
- .f:before {
70
- box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 1em, 1em 2em, 1em 3em, 2em 3em, 3em 3em, 1em 4em, 1em 5em, 1em 6em;
71
- }
72
- .n:before {
73
- box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 1em 6em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 4em 6em, 2em 3em, 3em 4em;
74
- }
75
- .o:before {
76
- box-shadow: 2em 1em, 3em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 6em, 3em 6em;
77
- }
78
- .r:before {
79
- box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 2em, 1em 2em, 1em 3em, 1em 4em, 2em 3em, 3em 3em, 1em 5em, 1em 6em, 4em 4em, 4em 5em, 4em 6em;
80
- }
81
- .t:before {
82
- box-shadow: 1em 1em, 2em 1em, 3em 1em, 2em 2em, 2em 3em, 2em 4em, 2em 5em, 2em 6em;
83
- }
84
- .u:before {
85
- box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 6em, 3em 6em;
86
- }
87
- /* III. Responsiveness */
88
- /* This cannot be smoothly done using viewport units; sprite pixels will look divided when font size is a floating point. */
89
- @media screen and (min-width: 720px) {
90
- figure {
91
- font-size: 7px;
92
- }
93
- }
94
- @media screen and (min-width: 1440px) {
95
- figure {
96
- font-size: 8px;
97
- }
98
- }
99
- html, body {
100
- height: 100%;
101
- margin: 0;
102
- display: flex;
103
- align-items: center;
104
- justify-content: center;
105
- }
106
-
107
- .container {
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- height: 100%;
112
- width: 100%;
113
- }
114
-
115
- figure {
116
- text-align: center;
1
+ * {
2
+ border: 0;
3
+ box-sizing: border-box;
4
+ margin: 0;
5
+ padding: 0;
6
+ }
7
+ #app, body {
8
+ background: var(--primary-color);
9
+ display: flex;
10
+ height: 100vh;
11
+ }
12
+ /* I. Containers */
13
+ figure {
14
+ font-size: 6px;
15
+ margin: auto;
16
+ padding: 4em 0;
17
+ width: 64em;
18
+ }
19
+ figcaption {
20
+ color: var(--font-color);
21
+ display: flex;
22
+ align-content: space-between;
23
+ flex-wrap: wrap;
24
+ height: 17em;
25
+ }
26
+ figcaption span:before, .sad-mac:before {
27
+ content: "";
28
+ display: block;
29
+ width: 1em;
30
+ height: 1em;
31
+ transform: translate(-1em,-1em);
32
+ }
33
+ figcaption span {
34
+ display: inline-block;
35
+ margin: 0 2em;
36
+ width: 4em;
37
+ height: 6em;
38
+ }
39
+ .sr-text {
40
+ overflow: hidden;
41
+ position: absolute;
42
+ width: 0;
43
+ height: 0;
44
+ }
45
+ /* II. Sprites */
46
+ /* 1. Sad Mac */
47
+ .sad-mac {
48
+ background: #fff;
49
+ margin: 0 auto 7em auto;
50
+ width: 23em;
51
+ height: 30em;
52
+ }
53
+ .sad-mac:before {
54
+ box-shadow: 1em 1em, 23em 1em, 4em 3em, 5em 3em, 6em 3em, 7em 3em, 8em 3em, 9em 3em, 10em 3em, 11em 3em, 12em 3em, 13em 3em, 14em 3em, 15em 3em, 16em 3em, 17em 3em, 18em 3em, 19em 3em, 20em 3em, 3em 4em, 21em 4em, 3em 5em, 21em 5em, 3em 6em, 7em 6em, 9em 6em, 15em 6em, 17em 6em, 21em 6em, 3em 7em, 8em 7em, 16em 7em, 21em 7em, 3em 8em, 7em 8em, 9em 8em, 15em 8em, 17em 8em, 21em 8em, 3em 9em, 21em 9em, 3em 10em, 10em 10em, 13em 10em, 21em 10em, 3em 11em, 11em 11em, 12em 11em, 21em 11em, 3em 12em, 21em 12em, 3em 13em, 10em 13em, 11em 13em, 12em 13em, 13em 13em, 14em 13em, 21em 13em, 3em 14em, 9em 14em, 15em 14em, 16em 14em, 21em 14em, 3em 15em, 17em 15em, 21em 15em, 3em 16em, 21em 16em, 4em 17em, 5em 17em, 6em 17em, 7em 17em, 8em 17em, 9em 17em, 10em 17em, 11em 17em, 12em 17em, 13em 17em, 14em 17em, 15em 17em, 16em 17em, 17em 17em, 18em 17em, 19em 17em, 20em 17em, 3em 22em, 4em 22em, 5em 22em, 14em 22em, 15em 22em, 16em 22em, 17em 22em, 18em 22em, 19em 22em, 20em 22em, 1em 27em, 2em 27em, 3em 27em, 4em 27em, 5em 27em, 6em 27em, 7em 27em, 8em 27em, 9em 27em, 10em 27em, 11em 27em, 12em 27em, 13em 27em, 14em 27em, 15em 27em, 16em 27em, 17em 27em, 18em 27em, 19em 27em, 20em 27em, 21em 27em, 22em 27em, 23em 27em, 1em 28em, 23em 28em, 1em 29em, 23em 29em, 1em 30em, 23em 30em;
55
+ }
56
+ /* 2. Letters */
57
+ ._0:before {
58
+ box-shadow: 2em 1em, 3em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 4em, 3em 3em, 2em 6em, 3em 6em;
59
+ }
60
+ ._4:before {
61
+ box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 2em 4em, 3em 4em, 4em 5em, 4em 6em;
62
+ }
63
+ .d:before {
64
+ box-shadow: 1em 1em, 2em 1em, 3em 1em, 1em 2em, 4em 2em, 1em 3em, 4em 3em, 1em 4em, 4em 4em, 1em 5em, 4em 5em, 1em 6em, 2em 6em, 3em 6em;
65
+ }
66
+ .e:before {
67
+ box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 1em, 1em 2em, 1em 3em, 2em 3em, 3em 3em, 1em 4em, 1em 5em, 1em 6em, 2em 6em, 3em 6em, 4em 6em;
68
+ }
69
+ .f:before {
70
+ box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 1em, 1em 2em, 1em 3em, 2em 3em, 3em 3em, 1em 4em, 1em 5em, 1em 6em;
71
+ }
72
+ .n:before {
73
+ box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 1em 6em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 4em 6em, 2em 3em, 3em 4em;
74
+ }
75
+ .o:before {
76
+ box-shadow: 2em 1em, 3em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 6em, 3em 6em;
77
+ }
78
+ .r:before {
79
+ box-shadow: 1em 1em, 2em 1em, 3em 1em, 4em 2em, 1em 2em, 1em 3em, 1em 4em, 2em 3em, 3em 3em, 1em 5em, 1em 6em, 4em 4em, 4em 5em, 4em 6em;
80
+ }
81
+ .t:before {
82
+ box-shadow: 1em 1em, 2em 1em, 3em 1em, 2em 2em, 2em 3em, 2em 4em, 2em 5em, 2em 6em;
83
+ }
84
+ .u:before {
85
+ box-shadow: 1em 1em, 1em 2em, 1em 3em, 1em 4em, 1em 5em, 4em 1em, 4em 2em, 4em 3em, 4em 4em, 4em 5em, 2em 6em, 3em 6em;
86
+ }
87
+ /* III. Responsiveness */
88
+ /* This cannot be smoothly done using viewport units; sprite pixels will look divided when font size is a floating point. */
89
+ @media screen and (min-width: 720px) {
90
+ figure {
91
+ font-size: 7px;
92
+ }
93
+ }
94
+ @media screen and (min-width: 1440px) {
95
+ figure {
96
+ font-size: 8px;
97
+ }
98
+ }
99
+ html, body {
100
+ height: 100%;
101
+ margin: 0;
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ }
106
+
107
+ .container {
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ height: 100%;
112
+ width: 100%;
113
+ }
114
+
115
+ figure {
116
+ text-align: center;
117
117
  }
@@ -1,24 +1,24 @@
1
- <div class="container">
2
- <figure>
3
- <div class="sad-mac"></div>
4
- <figcaption>
5
- <span class="sr-text">Error 404: Not Found</span>
6
- <span class="e"></span>
7
- <span class="r"></span>
8
- <span class="r"></span>
9
- <span class="o"></span>
10
- <span class="r"></span>
11
- <span class="_4"></span>
12
- <span class="_0"></span>
13
- <span class="_4"></span>
14
- <span class="n"></span>
15
- <span class="o"></span>
16
- <span class="t"></span>
17
- <span class="f"></span>
18
- <span class="o"></span>
19
- <span class="u"></span>
20
- <span class="n"></span>
21
- <span class="d"></span>
22
- </figcaption>
23
- </figure>
1
+ <div class="container">
2
+ <figure>
3
+ <div class="sad-mac"></div>
4
+ <figcaption>
5
+ <span class="sr-text">Error 404: Not Found</span>
6
+ <span class="e"></span>
7
+ <span class="r"></span>
8
+ <span class="r"></span>
9
+ <span class="o"></span>
10
+ <span class="r"></span>
11
+ <span class="_4"></span>
12
+ <span class="_0"></span>
13
+ <span class="_4"></span>
14
+ <span class="n"></span>
15
+ <span class="o"></span>
16
+ <span class="t"></span>
17
+ <span class="f"></span>
18
+ <span class="o"></span>
19
+ <span class="u"></span>
20
+ <span class="n"></span>
21
+ <span class="d"></span>
22
+ </figcaption>
23
+ </figure>
24
24
  </div>
@@ -1,16 +1,16 @@
1
- export default class NotFound extends HTMLElement {
2
- constructor(props) {
3
- super();
4
- slice.attachTemplate(this);
5
-
6
- slice.controller.setComponentProps(this, props);
7
- this.debuggerProps = [];
8
- }
9
-
10
- init() {
11
- //change title of the page
12
- document.title = '404 - Not Found';
13
- }
14
- }
15
-
16
- customElements.define('slice-notfound', NotFound);
1
+ export default class NotFound extends HTMLElement {
2
+ constructor(props) {
3
+ super();
4
+ slice.attachTemplate(this);
5
+
6
+ slice.controller.setComponentProps(this, props);
7
+ this.debuggerProps = [];
8
+ }
9
+
10
+ init() {
11
+ //change title of the page
12
+ document.title = '404 - Not Found';
13
+ }
14
+ }
15
+
16
+ customElements.define('slice-notfound', NotFound);
@@ -1,93 +1,93 @@
1
- export default class Route extends HTMLElement {
2
- constructor(props) {
3
- super();
4
- this.props = props;
5
- this.rendered = false;
6
- }
7
-
8
- init() {
9
- if (!this.props.path) {
10
- this.props.path = ' ';
11
- }
12
-
13
- if (!this.props.component) {
14
- this.props.component = slice.router.pathToRouteMap.get(this.props.path).component || ' ';
15
- }
16
-
17
- //this.props.innerHTML = this.innerHTML;
18
- }
19
-
20
- get path() {
21
- return this.props.path;
22
- }
23
-
24
- set path(value) {
25
- this.props.path = value;
26
- }
27
-
28
- get component() {
29
- return this.props.component;
30
- }
31
-
32
- set component(value) {
33
- this.props.component = value;
34
- }
35
-
36
- async render() {
37
- if (Route.componentCache[this.props.component]) {
38
- const cachedComponent = Route.componentCache[this.props.component];
39
- this.innerHTML = '';
40
-
41
- if (cachedComponent.update) {
42
- await cachedComponent.update();
43
- }
44
-
45
- this.appendChild(cachedComponent);
46
- } else {
47
- if (!this.props.component) {
48
- return;
49
- }
50
-
51
- if (!slice.controller.componentCategories.has(this.props.component)) {
52
- slice.logger.logError(`${this.sliceId}`, `Component ${this.props.component} not found`);
53
- return;
54
- }
55
-
56
- const component = await slice.build(this.props.component, {
57
- sliceId: this.props.component,
58
- });
59
-
60
- this.innerHTML = '';
61
- this.appendChild(component);
62
- Route.componentCache[this.props.component] = component;
63
- }
64
- this.rendered = true;
65
- }
66
-
67
- async renderIfCurrentRoute() {
68
- if (this.props.path === window.location.pathname) {
69
- if (this.rendered) {
70
- if (Route.componentCache[this.props.component]) {
71
- const cachedComponent = Route.componentCache[this.props.component];
72
- if (cachedComponent.update) {
73
- await cachedComponent.update();
74
- }
75
- return true;
76
- }
77
- }
78
- await this.render();
79
- return true;
80
- }
81
- return false;
82
- }
83
-
84
- removeComponent() {
85
- delete Route.componentCache[this.props.component];
86
- this.innerHTML = '';
87
- this.rendered = false;
88
- }
89
- }
90
-
91
- Route.componentCache = {};
92
-
93
- customElements.define('slice-route', Route);
1
+ export default class Route extends HTMLElement {
2
+ constructor(props) {
3
+ super();
4
+ this.props = props;
5
+ this.rendered = false;
6
+ }
7
+
8
+ init() {
9
+ if (!this.props.path) {
10
+ this.props.path = ' ';
11
+ }
12
+
13
+ if (!this.props.component) {
14
+ this.props.component = slice.router.pathToRouteMap.get(this.props.path).component || ' ';
15
+ }
16
+
17
+ //this.props.innerHTML = this.innerHTML;
18
+ }
19
+
20
+ get path() {
21
+ return this.props.path;
22
+ }
23
+
24
+ set path(value) {
25
+ this.props.path = value;
26
+ }
27
+
28
+ get component() {
29
+ return this.props.component;
30
+ }
31
+
32
+ set component(value) {
33
+ this.props.component = value;
34
+ }
35
+
36
+ async render() {
37
+ if (Route.componentCache[this.props.component]) {
38
+ const cachedComponent = Route.componentCache[this.props.component];
39
+ this.innerHTML = '';
40
+
41
+ if (cachedComponent.update) {
42
+ await cachedComponent.update();
43
+ }
44
+
45
+ this.appendChild(cachedComponent);
46
+ } else {
47
+ if (!this.props.component) {
48
+ return;
49
+ }
50
+
51
+ if (!slice.controller.componentCategories.has(this.props.component)) {
52
+ slice.logger.logError(`${this.sliceId}`, `Component ${this.props.component} not found`);
53
+ return;
54
+ }
55
+
56
+ const component = await slice.build(this.props.component, {
57
+ sliceId: this.props.component,
58
+ });
59
+
60
+ this.innerHTML = '';
61
+ this.appendChild(component);
62
+ Route.componentCache[this.props.component] = component;
63
+ }
64
+ this.rendered = true;
65
+ }
66
+
67
+ async renderIfCurrentRoute() {
68
+ if (this.props.path === window.location.pathname) {
69
+ if (this.rendered) {
70
+ if (Route.componentCache[this.props.component]) {
71
+ const cachedComponent = Route.componentCache[this.props.component];
72
+ if (cachedComponent.update) {
73
+ await cachedComponent.update();
74
+ }
75
+ return true;
76
+ }
77
+ }
78
+ await this.render();
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+
84
+ removeComponent() {
85
+ delete Route.componentCache[this.props.component];
86
+ this.innerHTML = '';
87
+ this.rendered = false;
88
+ }
89
+ }
90
+
91
+ Route.componentCache = {};
92
+
93
+ customElements.define('slice-route', Route);
@@ -1,84 +1,84 @@
1
- .slice_select_dropdown {
2
- font-family: var(--font-family);
3
- max-width: 100%;
4
- margin-bottom: 25px;
5
- margin-top: 25px;
6
- position: relative;
7
- }
8
- .slice_select_container {
9
- cursor: pointer;
10
- display: flex;
11
- padding: 10px;
12
- border-radius: var(--border-radius-slice);
13
- border: var(--slice-border) solid var(--primary-color);
14
- background-color: var(--primary-background-color);
15
- justify-content: space-between;
16
- align-items: center;
17
- }
18
- .slice_select {
19
- pointer-events: none;
20
- color: var(--font-primary-color);
21
- width: 100%;
22
- background: none;
23
- outline: none;
24
- border: none;
25
- }
26
- .slice_select_label {
27
- color: var(--primary-color);
28
- position: absolute;
29
- transition: all 0.5s;
30
- user-select: none;
31
- }
32
- .slice_select_value {
33
- scale: 0.8;
34
- transform: translateY(-200%);
35
- transition: all 0.5s;
36
- }
37
- .slice_select_menu {
38
- display: none;
39
- border: var(--slice-border) solid var(--primary-color);
40
- list-style: none;
41
- font-family: var(--font-family);
42
- visibility: hidden;
43
- overflow: hidden;
44
- position: absolute;
45
- opacity: 0;
46
- transition: 0s, opacity 0.3s;
47
- top: 100%;
48
- width: 100%;
49
- z-index: 1;
50
- background-color: var(--primary-background-color);
51
- border-radius: var(--border-radius-slice);
52
- box-shadow: 0 0 10px 0 #00000050;
53
- div {
54
- color: var(--font-primary-color);
55
- cursor: pointer;
56
- padding: 10px;
57
- &:hover {
58
- color: var(--secondary-color-contrast);
59
- background-color: var(--secondary-color);
60
- }
61
- }
62
- }
63
- .menu_open {
64
- display: block;
65
- overflow-y: scroll;
66
- min-height: min-content;
67
- max-height: 400%;
68
- visibility: visible;
69
- opacity: 1;
70
- }
71
- .menu_open::-webkit-scrollbar {
72
- width: 5px;
73
- }
74
- .menu_open::-webkit-scrollbar-thumb {
75
- background: var(--secondary-color);
76
- border-radius: var(--border-radius-slice);
77
- }
78
- .active {
79
- /* color: var(--primary-color); */
80
- background-color: var(--secondary-background-color);
81
- }
82
- .slice_select_container .caret {
83
- border-top-color: var(--primary-color);
84
- }
1
+ .slice_select_dropdown {
2
+ font-family: var(--font-family);
3
+ max-width: 100%;
4
+ margin-bottom: 25px;
5
+ margin-top: 25px;
6
+ position: relative;
7
+ }
8
+ .slice_select_container {
9
+ cursor: pointer;
10
+ display: flex;
11
+ padding: 10px;
12
+ border-radius: var(--border-radius-slice);
13
+ border: var(--slice-border) solid var(--primary-color);
14
+ background-color: var(--primary-background-color);
15
+ justify-content: space-between;
16
+ align-items: center;
17
+ }
18
+ .slice_select {
19
+ pointer-events: none;
20
+ color: var(--font-primary-color);
21
+ width: 100%;
22
+ background: none;
23
+ outline: none;
24
+ border: none;
25
+ }
26
+ .slice_select_label {
27
+ color: var(--primary-color);
28
+ position: absolute;
29
+ transition: all 0.5s;
30
+ user-select: none;
31
+ }
32
+ .slice_select_value {
33
+ scale: 0.8;
34
+ transform: translateY(-200%);
35
+ transition: all 0.5s;
36
+ }
37
+ .slice_select_menu {
38
+ display: none;
39
+ border: var(--slice-border) solid var(--primary-color);
40
+ list-style: none;
41
+ font-family: var(--font-family);
42
+ visibility: hidden;
43
+ overflow: hidden;
44
+ position: absolute;
45
+ opacity: 0;
46
+ transition: 0s, opacity 0.3s;
47
+ top: 100%;
48
+ width: 100%;
49
+ z-index: 1;
50
+ background-color: var(--primary-background-color);
51
+ border-radius: var(--border-radius-slice);
52
+ box-shadow: 0 0 10px 0 #00000050;
53
+ div {
54
+ color: var(--font-primary-color);
55
+ cursor: pointer;
56
+ padding: 10px;
57
+ &:hover {
58
+ color: var(--secondary-color-contrast);
59
+ background-color: var(--secondary-color);
60
+ }
61
+ }
62
+ }
63
+ .menu_open {
64
+ display: block;
65
+ overflow-y: scroll;
66
+ min-height: min-content;
67
+ max-height: 400%;
68
+ visibility: visible;
69
+ opacity: 1;
70
+ }
71
+ .menu_open::-webkit-scrollbar {
72
+ width: 5px;
73
+ }
74
+ .menu_open::-webkit-scrollbar-thumb {
75
+ background: var(--secondary-color);
76
+ border-radius: var(--border-radius-slice);
77
+ }
78
+ .active {
79
+ /* color: var(--primary-color); */
80
+ background-color: var(--secondary-background-color);
81
+ }
82
+ .slice_select_container .caret {
83
+ border-top-color: var(--primary-color);
84
+ }