slicejs-web-framework 3.3.0 → 3.3.2

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 (74) hide show
  1. package/Slice/Components/Structural/Controller/Controller.js +24 -26
  2. package/Slice/Components/Structural/Logger/Logger.js +0 -1
  3. package/Slice/Slice.js +5 -17
  4. package/api/framework/express.js +3 -0
  5. package/api/index.js +1 -1
  6. package/package.json +1 -1
  7. package/src/Components/components.js +4 -11
  8. package/src/Components/Service/FetchManager/FetchManager.js +0 -133
  9. package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +0 -141
  10. package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +0 -45
  11. package/src/Components/Visual/Button/Button.css +0 -47
  12. package/src/Components/Visual/Button/Button.html +0 -5
  13. package/src/Components/Visual/Button/Button.js +0 -93
  14. package/src/Components/Visual/Card/Card.css +0 -68
  15. package/src/Components/Visual/Card/Card.html +0 -7
  16. package/src/Components/Visual/Card/Card.js +0 -107
  17. package/src/Components/Visual/Checkbox/Checkbox.css +0 -87
  18. package/src/Components/Visual/Checkbox/Checkbox.html +0 -8
  19. package/src/Components/Visual/Checkbox/Checkbox.js +0 -86
  20. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +0 -130
  21. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +0 -4
  22. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +0 -262
  23. package/src/Components/Visual/Details/Details.css +0 -70
  24. package/src/Components/Visual/Details/Details.html +0 -9
  25. package/src/Components/Visual/Details/Details.js +0 -76
  26. package/src/Components/Visual/DropDown/DropDown.css +0 -60
  27. package/src/Components/Visual/DropDown/DropDown.html +0 -5
  28. package/src/Components/Visual/DropDown/DropDown.js +0 -63
  29. package/src/Components/Visual/Grid/Grid.css +0 -7
  30. package/src/Components/Visual/Grid/Grid.html +0 -1
  31. package/src/Components/Visual/Grid/Grid.js +0 -57
  32. package/src/Components/Visual/Icon/Icon.css +0 -510
  33. package/src/Components/Visual/Icon/Icon.html +0 -1
  34. package/src/Components/Visual/Icon/Icon.js +0 -89
  35. package/src/Components/Visual/Icon/slc.eot +0 -0
  36. package/src/Components/Visual/Icon/slc.json +0 -555
  37. package/src/Components/Visual/Icon/slc.styl +0 -507
  38. package/src/Components/Visual/Icon/slc.svg +0 -1485
  39. package/src/Components/Visual/Icon/slc.symbol.svg +0 -1059
  40. package/src/Components/Visual/Icon/slc.ttf +0 -0
  41. package/src/Components/Visual/Icon/slc.woff +0 -0
  42. package/src/Components/Visual/Icon/slc.woff2 +0 -0
  43. package/src/Components/Visual/Input/Input.css +0 -91
  44. package/src/Components/Visual/Input/Input.html +0 -4
  45. package/src/Components/Visual/Input/Input.js +0 -215
  46. package/src/Components/Visual/Layout/Layout.css +0 -0
  47. package/src/Components/Visual/Layout/Layout.html +0 -0
  48. package/src/Components/Visual/Layout/Layout.js +0 -49
  49. package/src/Components/Visual/Link/Link.css +0 -8
  50. package/src/Components/Visual/Link/Link.html +0 -1
  51. package/src/Components/Visual/Link/Link.js +0 -63
  52. package/src/Components/Visual/Loading/Loading.css +0 -56
  53. package/src/Components/Visual/Loading/Loading.html +0 -83
  54. package/src/Components/Visual/Loading/Loading.js +0 -38
  55. package/src/Components/Visual/MultiRoute/MultiRoute.js +0 -100
  56. package/src/Components/Visual/Navbar/Navbar.css +0 -115
  57. package/src/Components/Visual/Navbar/Navbar.html +0 -44
  58. package/src/Components/Visual/Navbar/Navbar.js +0 -141
  59. package/src/Components/Visual/NotFound/NotFound.css +0 -117
  60. package/src/Components/Visual/NotFound/NotFound.html +0 -24
  61. package/src/Components/Visual/NotFound/NotFound.js +0 -16
  62. package/src/Components/Visual/Route/Route.js +0 -93
  63. package/src/Components/Visual/Select/Select.css +0 -84
  64. package/src/Components/Visual/Select/Select.html +0 -8
  65. package/src/Components/Visual/Select/Select.js +0 -195
  66. package/src/Components/Visual/Switch/Switch.css +0 -76
  67. package/src/Components/Visual/Switch/Switch.html +0 -8
  68. package/src/Components/Visual/Switch/Switch.js +0 -102
  69. package/src/Components/Visual/TreeItem/TreeItem.css +0 -36
  70. package/src/Components/Visual/TreeItem/TreeItem.html +0 -1
  71. package/src/Components/Visual/TreeItem/TreeItem.js +0 -126
  72. package/src/Components/Visual/TreeView/TreeView.css +0 -8
  73. package/src/Components/Visual/TreeView/TreeView.html +0 -1
  74. package/src/Components/Visual/TreeView/TreeView.js +0 -48
@@ -1,93 +0,0 @@
1
- export default class Button extends HTMLElement {
2
-
3
- static props = {
4
- value: {
5
- type: 'string',
6
- default: 'Button',
7
- required: false
8
- },
9
- onClickCallback: {
10
- type: 'function',
11
- default: null
12
- },
13
- customColor: {
14
- type: 'object',
15
- default: null
16
- },
17
- icon: {
18
- type: 'object',
19
- default: null
20
- }
21
- };
22
-
23
- constructor(props) {
24
- super();
25
- slice.attachTemplate(this);
26
- this.$value = this.querySelector('.slice_button_value');
27
- this.$button = this.querySelector('.slice_button');
28
- this.$container = this.querySelector('.slice_button_container');
29
-
30
- if (props.onClickCallback) {
31
- this.onClickCallback = props.onClickCallback;
32
- this.$container.addEventListener('click', async () => await this.onClickCallback());
33
- }
34
-
35
- slice.controller.setComponentProps(this, props);
36
- }
37
-
38
- async init() {
39
- if (this.icon) {
40
- this.$icon = await slice.build('Icon', {
41
- name: this.icon,
42
- size: '20px',
43
- color: 'currentColor',
44
- });
45
- this.$button.insertBefore(this.$icon, this.$value);
46
- }
47
- }
48
-
49
- get icon() {
50
- return this._icon;
51
- }
52
-
53
- set icon(value) {
54
- this._icon = value;
55
- if (!this.$icon) return;
56
- this.$icon.name = value.name;
57
- this.$icon.iconStyle = value.iconStyle;
58
- }
59
-
60
- get value() {
61
- return this._value;
62
- }
63
-
64
- set value(value) {
65
- this._value = value;
66
- this.$value.textContent = value;
67
- }
68
-
69
- get customColor() {
70
- return this._customColor;
71
- }
72
-
73
- set customColor(value) {
74
- this._customColor = value;
75
- if (!value) return;
76
-
77
- // Mantener la misma API: { button: 'color', label: 'color' }
78
- if (value.button) {
79
- this.$button.style.backgroundColor = value.button;
80
- this.$button.style.borderColor = value.button;
81
- }
82
- if (value.label) {
83
- this.$button.style.color = value.label;
84
- this.$value.style.color = value.label;
85
- // También aplicar al icono si existe
86
- if (this.$icon) {
87
- this.$icon.style.color = value.label;
88
- }
89
- }
90
- }
91
- }
92
-
93
- customElements.define('slice-button', Button);
@@ -1,68 +0,0 @@
1
- .title {
2
- font-size: 20px;
3
- font-weight: bold;
4
- color: var(--font-primary-color);
5
- text-align: center;
6
- }
7
-
8
- .slice-card {
9
- height: 220px;
10
- position: relative;
11
- font-family: var(--font-family);
12
- background-color: var(--seconday-background-color);
13
- border-radius: var(--border-radius-slice);
14
- transition: all 300ms;
15
- }
16
-
17
- .slice-card:hover {
18
- .card_cover {
19
- height: auto;
20
- transform: translateY(-70%);
21
- box-shadow: 0px 10px 10px #00000050;
22
- }
23
- .card_info {
24
- height: 100%;
25
- transform: translateY(20%);
26
- box-shadow: 0px -10px 10px #00000050;
27
- }
28
- }
29
- .card_cover {
30
- width: 100%;
31
- height: 90%;
32
- background: var(--primary-color);
33
- display: flex;
34
- justify-content: center;
35
- align-items: center;
36
- position: absolute;
37
- z-index: 1;
38
- transition: all 400ms ease;
39
- border-radius: var(--border-radius-slice);
40
- }
41
-
42
- .card_info {
43
- width: 100%;
44
- height: 200px;
45
- bottom: 0;
46
- color: var(--font-secondary-color);
47
- background: var(--secondary-background-color);
48
- position: absolute;
49
- font-size: 20px;
50
- transition: all 400ms cubic-bezier(0.5, 0, 0, 1);
51
- border-radius: var(--border-radius-slice);
52
- }
53
-
54
- .card_info p {
55
- text-align: center;
56
- color: var(--font-secondary-color);
57
- padding: 0px 20px 20px 20px;
58
- font-size: 15px;
59
- display: -webkit-box;
60
- display: -moz-box;
61
- display: box;
62
- -webkit-box-orient: vertical;
63
- -moz-box-orient: vertical;
64
- box-orient: vertical;
65
- -webkit-line-clamp: 5;
66
- line-clamp: 5;
67
- overflow: hidden;
68
- }
@@ -1,7 +0,0 @@
1
- <div class="slice-card">
2
- <div class="card_cover"></div>
3
- <div class="card_info">
4
- <h1 class="title">Slice Card Title</h1>
5
- <p class="text">Slice Card text</p>
6
- </div>
7
- </div>
@@ -1,107 +0,0 @@
1
- export default class Card extends HTMLElement {
2
- constructor(props) {
3
- super();
4
- slice.attachTemplate(this);
5
- this.$card = this.querySelector('.slice-card');
6
- this.$title = this.querySelector('.title');
7
- this.$text = this.querySelector('.text');
8
- this.$cover = this.querySelector('.card_cover');
9
- slice.controller.setComponentProps(this, props);
10
-
11
- this.$cover.addEventListener('click', () => {
12
- this.isOpen = !this.isOpen;
13
- });
14
-
15
- this.$card.addEventListener('mouseover', () => {
16
- this.$cover.style.backgroundColor = this.$color.icon;
17
- this.$icon.color = this.$color.card;
18
- });
19
- this.$card.addEventListener('mouseout', () => {
20
- this.$cover.style.backgroundColor = this.$color.card;
21
- this.$icon.color = this.$color.icon;
22
- });
23
-
24
- this.debuggerProps = ['title', 'text', 'icon', 'customColor', 'isOpen'];
25
- }
26
-
27
- async init() {
28
- if (this.isOpen === undefined) {
29
- this.isOpen = false;
30
- }
31
-
32
- if (!this.customColor) {
33
- this.$color = {
34
- icon: 'var(--primary-color-contrast)',
35
- card: 'var(--primary-color)',
36
- };
37
- }
38
-
39
- if (!this._icon) {
40
- this.icon = { name: 'sliceJs', iconStyle: 'filled' };
41
- }
42
-
43
- this.$icon = await slice.build('Icon', {
44
- name: this.icon.name,
45
- size: '150px',
46
- color: this.$color.icon,
47
- iconStyle: this._icon.iconStyle,
48
- });
49
- this.$cover.appendChild(this.$icon);
50
- }
51
-
52
- get title() {
53
- return this._title;
54
- }
55
-
56
- set title(value) {
57
- this._title = value;
58
- this.$title.textContent = value;
59
- }
60
-
61
- get text() {
62
- return this._text;
63
- }
64
-
65
- set text(value) {
66
- this._text = value;
67
- this.$text.textContent = value;
68
- }
69
-
70
- get icon() {
71
- return this._icon;
72
- }
73
-
74
- set icon(value) {
75
- this._icon = value;
76
- if (!this.$icon) return;
77
- this.$icon.name = value.name;
78
- this.$icon.iconStyle = value.iconStyle;
79
- }
80
-
81
- get isOpen() {
82
- return this._isOpen;
83
- }
84
-
85
- set isOpen(boolean) {
86
- this._isOpen = boolean;
87
- if (boolean) {
88
- this.$cover.style.zIndex = 0;
89
- } else {
90
- this.$cover.style.zIndex = 1;
91
- }
92
- }
93
-
94
- get customColor() {
95
- return this._customColor;
96
- }
97
-
98
- set customColor(value) {
99
- this._customColor = value;
100
- this.$color = value;
101
- if (value.card) {
102
- this.$cover.style.backgroundColor = value.card;
103
- }
104
- }
105
- }
106
-
107
- customElements.define('slice-card', Card);
@@ -1,87 +0,0 @@
1
- .slice_checkbox input {
2
- position: absolute;
3
- opacity: 0;
4
- cursor: pointer;
5
- height: 0;
6
- width: 0;
7
- }
8
-
9
- .slice_checkbox_container {
10
- width: fit-content;
11
- }
12
- .slice_checkbox {
13
- display: flex;
14
- align-items: center;
15
- user-select: none;
16
- margin-top: 25px;
17
- margin-bottom: 25px;
18
- position: relative;
19
- user-select: none;
20
- }
21
- .checkbox_label {
22
- margin: 5px;
23
- font-family: var(--font-family);
24
- color: var(--font-primary-color);
25
- }
26
- .checkmark {
27
- position: relative;
28
- top: 0;
29
- left: 0;
30
- height: 1.3em;
31
- width: 1.3em;
32
- background-color: var(--secondary-background-color);
33
- border: var(--slice-border) solid var(--primary-color);
34
- transition: all 0.3s;
35
- border-radius: var(--border-radius-slice);
36
- cursor: pointer;
37
- }
38
- .slice_checkbox input:checked ~ .checkmark {
39
- border: var(--slice-border) solid var(--success-color);
40
- background-color: var(--success-color);
41
- animation: pop 0.5s;
42
- animation-direction: alternate;
43
- }
44
-
45
- .checkmark:after {
46
- content: "";
47
- position: absolute;
48
- display: none;
49
- }
50
-
51
- .slice_checkbox input:checked ~ .checkmark:after {
52
- display: block;
53
- }
54
-
55
- .slice_checkbox .checkmark:after {
56
- left: 0.45em;
57
- top: 0.25em;
58
- width: 0.25em;
59
- height: 0.5em;
60
- border: solid white;
61
- border-width: 0 0.15em 0.15em 0;
62
- transform: rotate(45deg);
63
- }
64
- .disabled {
65
- border-color: var(--disabled-color);
66
- background-color: var(--primary-color-shade);
67
- color: var(--disabled-color);
68
- cursor: not-allowed;
69
- }
70
- @keyframes pop {
71
- 0% {
72
- transform: scale(1);
73
- }
74
-
75
- 50% {
76
- transform: scale(0.9);
77
- }
78
-
79
- 100% {
80
- transform: scale(1);
81
- }
82
- }
83
- .checkbox_label {
84
- margin-left: 5px;
85
- font-family: var(--font-family);
86
- color: var(--font-primary-color);
87
- }
@@ -1,8 +0,0 @@
1
- <div class="slice_checkbox_container">
2
- <div class="slice_checkbox">
3
- <label>
4
- <input type="checkbox" />
5
- <div class="checkmark"></div>
6
- </label>
7
- </div>
8
- </div>
@@ -1,86 +0,0 @@
1
- export default class Checkbox extends HTMLElement {
2
- constructor(props) {
3
- super();
4
- slice.attachTemplate(this);
5
- this.$checkbox = this.querySelector('.slice_checkbox');
6
- this.$checkmark = this.querySelector('.checkmark');
7
-
8
- slice.controller.setComponentProps(this, props);
9
- this.debuggerProps = ['checked', 'disabled', 'customColor', 'labelPlacement'];
10
- }
11
-
12
- init() {
13
- if (this._checked === undefined) {
14
- this.checked = false;
15
- }
16
-
17
- if (!this.disabled) {
18
- this._disabled = false;
19
- }
20
- }
21
-
22
- get checked() {
23
- return this._checked;
24
- }
25
-
26
- set checked(value) {
27
- this._checked = value;
28
- this.querySelector('input').checked = value;
29
- }
30
-
31
- get label() {
32
- return this._label;
33
- }
34
-
35
- set label(value) {
36
- this._label = value;
37
- if (this.querySelector('.checkbox_label')) {
38
- this.querySelector('.checkbox_label').textContent = value;
39
- } else {
40
- const label = document.createElement('label');
41
- label.classList.add('checkbox_label');
42
- label.textContent = value;
43
- this.$checkbox.appendChild(label);
44
- }
45
- }
46
-
47
- get customColor() {
48
- return this._customColor;
49
- }
50
-
51
- set customColor(value) {
52
- this._customColor = value;
53
- this.style = `--success-color: ${value};`;
54
- }
55
-
56
- get labelPlacement() {
57
- return this._labelPlacement;
58
- }
59
-
60
- set labelPlacement(value) {
61
- if (value === 'left') {
62
- this.$checkbox.style = ` flex-direction: row-reverse;`;
63
- }
64
- if (value === 'right') {
65
- this.$checkbox.style = `flex-direction: row;`;
66
- }
67
- if (value === 'top') {
68
- this.$checkbox.style = `flex-direction: column-reverse;`;
69
- }
70
- if (value === 'bottom') {
71
- this.$checkbox.style = `flex-direction: column;`;
72
- }
73
- }
74
-
75
- get disabled() {
76
- return this._disabled;
77
- }
78
-
79
- set disabled(value) {
80
- this._disabled = value;
81
- this.querySelector('input').disabled = value;
82
- this.$checkmark.classList.add('disabled');
83
- }
84
- }
85
-
86
- customElements.define('slice-checkbox', Checkbox);
@@ -1,130 +0,0 @@
1
- slice-codevisualizer {
2
- display: block;
3
- width: 100%;
4
- }
5
-
6
- .codevisualizer_container {
7
- position: relative;
8
- font-size: smaller;
9
- max-width: 100%;
10
- background-color: var(--secondary-background-color);
11
- border: 1px solid var(--primary-color);
12
- padding: 15px 10px 10px;
13
- border-radius: var(--border-radius-slice, 10px);
14
- overflow-x: auto;
15
- margin: 15px 0;
16
- }
17
-
18
- .codevisualizer pre {
19
- margin: 0;
20
- padding: 0;
21
- font-family: 'Courier New', Courier, monospace;
22
- line-height: 1.5;
23
- white-space: pre;
24
- tab-size: 2;
25
- }
26
-
27
- .codevisualizer code {
28
- display: block;
29
- color: var(--font-primary-color);
30
- overflow-wrap: normal;
31
- word-break: normal;
32
- }
33
-
34
- /* Botón de copiar */
35
- .copy-button {
36
- position: absolute;
37
- top: 5px;
38
- right: 10px;
39
- padding: 4px 8px;
40
- font-size: 12px;
41
- background-color: var(--primary-color);
42
- color: var(--primary-color-contrast);
43
- border: none;
44
- border-radius: var(--border-radius-slice, 4px);
45
- cursor: pointer;
46
- opacity: 0.7;
47
- transition: opacity 0.2s ease, background-color 0.2s ease;
48
- z-index: 1;
49
- }
50
-
51
- .copy-button:hover {
52
- opacity: 1;
53
- }
54
-
55
- .copy-button.copied {
56
- background-color: var(--success-color);
57
- color: var(--success-contrast);
58
- opacity: 1;
59
- }
60
-
61
- /* Temas para resaltado de sintaxis adaptados a las variables de Slice */
62
- .codevisualizer .code-keyword {
63
- color: var(--primary-color); /* Palabras clave en color primario */
64
- }
65
-
66
- .codevisualizer .code-string {
67
- color: var(--success-color); /* Strings en color de éxito */
68
- }
69
-
70
- .codevisualizer .code-number {
71
- color: var(--warning-color); /* Números en color de advertencia */
72
- }
73
-
74
- .codevisualizer .code-comment {
75
- color: var(--medium-color); /* Comentarios en color medio */
76
- font-style: italic;
77
- }
78
-
79
- .codevisualizer .code-function {
80
- color: var(--secondary-color); /* Funciones en color secundario */
81
- }
82
-
83
- .codevisualizer .code-method {
84
- color: var(--secondary-color); /* Métodos en color secundario */
85
- }
86
-
87
- .codevisualizer .code-builtin {
88
- color: var(--secondary-color); /* Objetos integrados en color secundario */
89
- }
90
-
91
- .codevisualizer .code-tag {
92
- color: var(--primary-color); /* Tags HTML en color primario */
93
- }
94
-
95
- .codevisualizer .code-attribute {
96
- color: var(--warning-color); /* Atributos HTML en color de advertencia */
97
- }
98
-
99
- .codevisualizer .code-selector {
100
- color: var(--primary-color); /* Selectores CSS en color primario */
101
- }
102
-
103
- .codevisualizer .code-property {
104
- color: var(--secondary-color); /* Propiedades CSS en color secundario */
105
- }
106
-
107
- .codevisualizer .code-value {
108
- color: var(--success-color); /* Valores CSS en color de éxito */
109
- }
110
-
111
- .codevisualizer .code-unit {
112
- color: var(--warning-color); /* Unidades CSS en color de advertencia */
113
- }
114
-
115
- .codevisualizer .code-color {
116
- color: var(--font-primary-color); /* Colores CSS en color primario */
117
- }
118
-
119
- /* Media query para diseño responsivo */
120
- @media screen and (max-width: 768px) {
121
- .codevisualizer_container {
122
- font-size: 12px;
123
- padding: 25px 8px 8px;
124
- }
125
-
126
- .copy-button {
127
- font-size: 10px;
128
- padding: 3px 6px;
129
- }
130
- }
@@ -1,4 +0,0 @@
1
- <div class="codevisualizer_container">
2
- <button class="copy-button" title="Copy to clipboard">Copy</button>
3
- <pre class="codevisualizer"><code></code></pre>
4
- </div>