@onetype/framework 2.0.26 → 2.0.27

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 (65) hide show
  1. package/addons/core/assets/back/functions/utils/transform.js +1 -1
  2. package/addons/render/directives/front/js/functions/process/data.js +0 -1
  3. package/addons/render/transforms/addon.js +2 -0
  4. package/addons/render/transforms/functions/data.js +21 -0
  5. package/addons/render/transforms/functions/run.js +11 -0
  6. package/addons/render/transforms/item/functions/load.js +55 -0
  7. package/addons/render/transforms/item/functions/run.js +12 -0
  8. package/addons/render/transforms/items/directives/transform.js +15 -18
  9. package/lib/items/elements/global/heading/heading.css +1 -1
  10. package/lib/items/elements/global/markdown/markdown.js +207 -3
  11. package/lib/items/elements/{sections → navigation}/navbar/navbar.css +9 -9
  12. package/lib/items/elements/{sections → navigation}/navbar/navbar.js +2 -2
  13. package/lib/items/elements/navigation/sidebar/sidebar.css +101 -0
  14. package/lib/items/elements/navigation/sidebar/sidebar.js +56 -0
  15. package/lib/items/elements/{global → navigation}/tabs/tabs.css +6 -6
  16. package/lib/items/elements/{global → navigation}/tabs/tabs.js +2 -2
  17. package/lib/items/elements/sections/pricing/pricing.css +148 -0
  18. package/lib/items/elements/sections/pricing/pricing.js +76 -0
  19. package/lib/items/transforms/accordion/accordion.js +139 -141
  20. package/lib/items/transforms/chart/area.js +130 -133
  21. package/lib/items/transforms/chart/bar.js +116 -119
  22. package/lib/items/transforms/chart/bubble.js +142 -145
  23. package/lib/items/transforms/chart/doughnut.js +104 -107
  24. package/lib/items/transforms/chart/line.js +127 -130
  25. package/lib/items/transforms/chart/pie.js +102 -105
  26. package/lib/items/transforms/chart/radar.js +134 -137
  27. package/lib/items/transforms/chart/scatter.js +127 -130
  28. package/lib/items/transforms/codeflask/codeflask.js +10 -12
  29. package/lib/items/transforms/codemirror/codemirror.js +186 -189
  30. package/lib/items/transforms/comparison/comparison.js +130 -133
  31. package/lib/items/transforms/heatmap/heatmap.js +406 -407
  32. package/lib/items/transforms/interact/interact.js +240 -241
  33. package/lib/items/transforms/particles/particles.js +282 -283
  34. package/lib/items/transforms/sparkline/sparkline.js +207 -208
  35. package/lib/items/transforms/swiper/swiper.js +115 -118
  36. package/lib/items/transforms/tabs/tabs.js +383 -384
  37. package/lib/items/transforms/typed/typed.js +146 -147
  38. package/lib/load.js +8 -16
  39. package/lib/src/mixins/addons.js +10 -10
  40. package/lib/styles/variables.css +1 -1
  41. package/package.json +1 -1
  42. package/addons/render/transforms/functions/load/assets.js +0 -49
  43. /package/{addons/render/directives/front/js/items → lib/items/directives}/100-if.js +0 -0
  44. /package/{addons/render/directives/front/js/items → lib/items/directives}/1000-render.js +0 -0
  45. /package/{addons/render/directives/front/js/items → lib/items/directives}/110-show.js +0 -0
  46. /package/{addons/render/directives/front/js/items → lib/items/directives}/160-slot.js +0 -0
  47. /package/{addons/render/directives/front/js/items → lib/items/directives}/200-for.js +0 -0
  48. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-blur.js +0 -0
  49. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-change.js +0 -0
  50. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-click-outside.js +0 -0
  51. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-click.js +0 -0
  52. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-double-click.js +0 -0
  53. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-focus.js +0 -0
  54. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-input.js +0 -0
  55. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-keydown.js +0 -0
  56. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-keyup.js +0 -0
  57. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-mouse-enter.js +0 -0
  58. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-mouse-leave.js +0 -0
  59. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-mouse-move.js +0 -0
  60. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-scroll.js +0 -0
  61. /package/{addons/render/directives/front/js/items → lib/items/directives}/500-submit.js +0 -0
  62. /package/{addons/render/directives/front/js/items → lib/items/directives}/650-fetch.js +0 -0
  63. /package/{addons/render/directives/front/js/items → lib/items/directives}/660-form.js +0 -0
  64. /package/{addons/render/directives/front/js/items → lib/items/directives}/700-text.js +0 -0
  65. /package/{addons/render/directives/front/js/items → lib/items/directives}/750-html.js +0 -0
@@ -1,277 +1,276 @@
1
- onetype.AddonReady('transforms', (transforms) =>
2
- {
3
- transforms.ItemAdd({
4
- id: 'interact',
5
- icon: 'gesture',
6
- name: 'Interact',
7
- description: 'Drag, resize, and gesture interactions. Make elements draggable, resizable, and interactive.',
8
- js: [
9
- 'https://cdn.jsdelivr.net/npm/interactjs@1.10.27/dist/interact.min.js'
10
- ],
11
- config: {
12
- 'draggable': ['boolean', true],
13
- 'resizable': ['boolean', true],
14
- 'rotatable': ['boolean', false],
15
- 'inertia': ['boolean', true],
16
- 'restrict-to-parent': ['boolean', true],
17
- 'grid-x': ['number', 0],
18
- 'grid-y': ['number', 0],
19
- 'min-width': ['number', 50],
20
- 'min-height': ['number', 50],
21
- 'max-width': ['number', 0],
22
- 'max-height': ['number', 0],
23
- 'resize-from-edges': ['boolean', true],
24
- 'resize-from-corners': ['boolean', true],
25
- 'preserve-aspect-ratio': ['boolean', false]
26
- },
27
- code: function(data, item, compile, node, identifier)
1
+ transforms.ItemAdd({
2
+ id: 'interact',
3
+ icon: 'gesture',
4
+ name: 'Interact',
5
+ description: 'Drag, resize, and gesture interactions. Make elements draggable, resizable, and interactive.',
6
+ js: [
7
+ 'https://cdn.jsdelivr.net/npm/interactjs@1.10.27/dist/interact.min.js'
8
+ ],
9
+ config: {
10
+ 'draggable': ['boolean', true],
11
+ 'resizable': ['boolean', true],
12
+ 'rotatable': ['boolean', false],
13
+ 'inertia': ['boolean', true],
14
+ 'restrict-to-parent': ['boolean', true],
15
+ 'grid-x': ['number', 0],
16
+ 'grid-y': ['number', 0],
17
+ 'min-width': ['number', 50],
18
+ 'min-height': ['number', 50],
19
+ 'max-width': ['number', 0],
20
+ 'max-height': ['number', 0],
21
+ 'resize-from-edges': ['boolean', true],
22
+ 'resize-from-corners': ['boolean', true],
23
+ 'preserve-aspect-ratio': ['boolean', false]
24
+ },
25
+ code: function(data, node, transformer)
26
+ {
27
+ const id = 'interact-' + onetype.Generate(8);
28
+
29
+ this.setup = () =>
28
30
  {
29
- this.setup = () =>
31
+ // Add interact class and unique identifier
32
+ node.classList.add('interact-element');
33
+ node.classList.add(id);
34
+
35
+ // Set initial position attributes
36
+ node.setAttribute('data-x', '0');
37
+ node.setAttribute('data-y', '0');
38
+ node.setAttribute('data-angle', '0');
39
+
40
+ // Add some default styles for visual feedback
41
+ node.style.touchAction = 'none';
42
+ node.style.userSelect = 'none';
43
+ node.style.position = 'relative';
44
+
45
+ // Get all children and make them non-interactive
46
+ const children = Array.from(node.children);
47
+ children.forEach(child =>
30
48
  {
31
- // Add interact class and unique identifier
32
- node.classList.add('interact-element');
33
- node.classList.add('interact-' + identifier);
34
-
35
- // Set initial position attributes
36
- node.setAttribute('data-x', '0');
37
- node.setAttribute('data-y', '0');
38
- node.setAttribute('data-angle', '0');
39
-
40
- // Add some default styles for visual feedback
41
- node.style.touchAction = 'none';
42
- node.style.userSelect = 'none';
43
- node.style.position = 'relative';
44
-
45
- // Get all children and make them non-interactive
46
- const children = Array.from(node.children);
47
- children.forEach(child =>
48
- {
49
- child.style.pointerEvents = 'auto';
50
- });
51
- };
49
+ child.style.pointerEvents = 'auto';
50
+ });
51
+ };
52
52
 
53
- this.draggable = () =>
53
+ this.draggable = () =>
54
+ {
55
+ if(!data['draggable'])
54
56
  {
55
- if(!data['draggable'].value)
56
- {
57
- return;
58
- }
59
-
60
- const config = {
61
- inertia: data['inertia'].value,
62
- listeners: {
63
- move: this.dragMoveListener
64
- }
65
- };
57
+ return;
58
+ }
66
59
 
67
- // Add modifiers
68
- config.modifiers = [];
69
-
70
- // Restrict to parent
71
- if(data['restrict-to-parent'].value)
72
- {
73
- config.modifiers.push(
74
- interact.modifiers.restrictRect({
75
- restriction: 'parent',
76
- endOnly: false
77
- })
78
- );
60
+ const config = {
61
+ inertia: data['inertia'],
62
+ listeners: {
63
+ move: this.dragMoveListener
79
64
  }
65
+ };
80
66
 
81
- // Grid snapping
82
- const gridX = data['grid-x'].value;
83
- const gridY = data['grid-y'].value;
84
-
85
- if(gridX > 0 || gridY > 0)
86
- {
87
- config.modifiers.push(
88
- interact.modifiers.snap({
89
- targets: [
90
- interact.snappers.grid({ x: gridX || 1, y: gridY || 1 })
91
- ],
92
- range: Infinity,
93
- relativePoints: [{ x: 0, y: 0 }]
94
- })
95
- );
96
- }
67
+ // Add modifiers
68
+ config.modifiers = [];
97
69
 
98
- // Apply draggable configuration
99
- this.interactInstance.draggable(config);
70
+ // Restrict to parent
71
+ if(data['restrict-to-parent'])
72
+ {
73
+ config.modifiers.push(
74
+ interact.modifiers.restrictRect({
75
+ restriction: 'parent',
76
+ endOnly: false
77
+ })
78
+ );
79
+ }
80
+
81
+ // Grid snapping
82
+ const gridX = data['grid-x'];
83
+ const gridY = data['grid-y'];
84
+
85
+ if(gridX > 0 || gridY > 0)
86
+ {
87
+ config.modifiers.push(
88
+ interact.modifiers.snap({
89
+ targets: [
90
+ interact.snappers.grid({ x: gridX || 1, y: gridY || 1 })
91
+ ],
92
+ range: Infinity,
93
+ relativePoints: [{ x: 0, y: 0 }]
94
+ })
95
+ );
96
+ }
97
+
98
+ // Apply draggable configuration
99
+ this.interactInstance.draggable(config);
100
+ };
101
+
102
+ this.resizable = () =>
103
+ {
104
+ if(!data['resizable'])
105
+ {
106
+ return;
107
+ }
108
+
109
+ const config = {
110
+ edges: {},
111
+ listeners: {
112
+ move: this.resizeMoveListener
113
+ },
114
+ modifiers: []
100
115
  };
101
116
 
102
- this.resizable = () =>
117
+ // Configure resize edges
118
+ if(data['resize-from-edges'])
103
119
  {
104
- if(!data['resizable'].value)
105
- {
106
- return;
107
- }
120
+ config.edges.left = true;
121
+ config.edges.right = true;
122
+ config.edges.top = true;
123
+ config.edges.bottom = true;
124
+ }
108
125
 
109
- const config = {
110
- edges: {},
111
- listeners: {
112
- move: this.resizeMoveListener
113
- },
114
- modifiers: []
115
- };
116
-
117
- // Configure resize edges
118
- if(data['resize-from-edges'].value)
119
- {
120
- config.edges.left = true;
121
- config.edges.right = true;
122
- config.edges.top = true;
123
- config.edges.bottom = true;
124
- }
125
-
126
- if(data['resize-from-corners'].value)
127
- {
128
- config.edges.left = true;
129
- config.edges.right = true;
130
- config.edges.top = true;
131
- config.edges.bottom = true;
132
- }
133
-
134
- // Preserve aspect ratio
135
- if(data['preserve-aspect-ratio'].value)
136
- {
137
- config.modifiers.push(
138
- interact.modifiers.aspectRatio({
139
- ratio: 'preserve',
140
- equalDelta: true
141
- })
142
- );
143
- }
144
-
145
- // Restrict edges to parent
146
- if(data['restrict-to-parent'].value)
147
- {
148
- config.modifiers.push(
149
- interact.modifiers.restrictEdges({
150
- outer: 'parent'
151
- })
152
- );
153
- }
126
+ if(data['resize-from-corners'])
127
+ {
128
+ config.edges.left = true;
129
+ config.edges.right = true;
130
+ config.edges.top = true;
131
+ config.edges.bottom = true;
132
+ }
133
+
134
+ // Preserve aspect ratio
135
+ if(data['preserve-aspect-ratio'])
136
+ {
137
+ config.modifiers.push(
138
+ interact.modifiers.aspectRatio({
139
+ ratio: 'preserve',
140
+ equalDelta: true
141
+ })
142
+ );
143
+ }
144
+
145
+ // Restrict edges to parent
146
+ if(data['restrict-to-parent'])
147
+ {
148
+ config.modifiers.push(
149
+ interact.modifiers.restrictEdges({
150
+ outer: 'parent'
151
+ })
152
+ );
153
+ }
154
+
155
+ // Size restrictions
156
+ const minWidth = data['min-width'];
157
+ const minHeight = data['min-height'];
158
+ const maxWidth = data['max-width'];
159
+ const maxHeight = data['max-height'];
160
+
161
+ const sizeRestrictions = {};
162
+
163
+ if(minWidth > 0 || minHeight > 0)
164
+ {
165
+ sizeRestrictions.min = {};
166
+ if(minWidth > 0) sizeRestrictions.min.width = minWidth;
167
+ if(minHeight > 0) sizeRestrictions.min.height = minHeight;
168
+ }
154
169
 
155
- // Size restrictions
156
- const minWidth = data['min-width'].value;
157
- const minHeight = data['min-height'].value;
158
- const maxWidth = data['max-width'].value;
159
- const maxHeight = data['max-height'].value;
170
+ if(maxWidth > 0 || maxHeight > 0)
171
+ {
172
+ sizeRestrictions.max = {};
173
+ if(maxWidth > 0) sizeRestrictions.max.width = maxWidth;
174
+ if(maxHeight > 0) sizeRestrictions.max.height = maxHeight;
175
+ }
160
176
 
161
- const sizeRestrictions = {};
177
+ if(Object.keys(sizeRestrictions).length > 0)
178
+ {
179
+ config.modifiers.push(
180
+ interact.modifiers.restrictSize(sizeRestrictions)
181
+ );
182
+ }
162
183
 
163
- if(minWidth > 0 || minHeight > 0)
164
- {
165
- sizeRestrictions.min = {};
166
- if(minWidth > 0) sizeRestrictions.min.width = minWidth;
167
- if(minHeight > 0) sizeRestrictions.min.height = minHeight;
168
- }
184
+ // Apply resizable configuration
185
+ this.interactInstance.resizable(config);
186
+ };
169
187
 
170
- if(maxWidth > 0 || maxHeight > 0)
171
- {
172
- sizeRestrictions.max = {};
173
- if(maxWidth > 0) sizeRestrictions.max.width = maxWidth;
174
- if(maxHeight > 0) sizeRestrictions.max.height = maxHeight;
175
- }
188
+ this.rotatable = () =>
189
+ {
190
+ if(!data['rotatable'])
191
+ {
192
+ return;
193
+ }
176
194
 
177
- if(Object.keys(sizeRestrictions).length > 0)
178
- {
179
- config.modifiers.push(
180
- interact.modifiers.restrictSize(sizeRestrictions)
181
- );
195
+ const config = {
196
+ listeners: {
197
+ move: this.rotateMoveListener
182
198
  }
183
-
184
- // Apply resizable configuration
185
- this.interactInstance.resizable(config);
186
199
  };
187
200
 
188
- this.rotatable = () =>
189
- {
190
- if(!data['rotatable'].value)
191
- {
192
- return;
193
- }
194
-
195
- const config = {
196
- listeners: {
197
- move: this.rotateMoveListener
198
- }
199
- };
201
+ // Apply gesturable configuration for rotation
202
+ this.interactInstance.gesturable(config);
203
+ };
200
204
 
201
- // Apply gesturable configuration for rotation
202
- this.interactInstance.gesturable(config);
203
- };
204
-
205
- // Event listener functions
206
- this.dragMoveListener = (event) =>
207
- {
208
- const target = event.target;
209
- const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
210
- const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
205
+ // Event listener functions
206
+ this.dragMoveListener = (event) =>
207
+ {
208
+ const target = event.target;
209
+ const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
210
+ const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
211
211
 
212
- target.style.transform = `translate(${x}px, ${y}px) rotate(${target.getAttribute('data-angle') || 0}deg)`;
212
+ target.style.transform = `translate(${x}px, ${y}px) rotate(${target.getAttribute('data-angle') || 0}deg)`;
213
213
 
214
- target.setAttribute('data-x', x);
215
- target.setAttribute('data-y', y);
216
- };
214
+ target.setAttribute('data-x', x);
215
+ target.setAttribute('data-y', y);
216
+ };
217
217
 
218
- this.resizeMoveListener = (event) =>
219
- {
220
- const target = event.target;
221
- let x = parseFloat(target.getAttribute('data-x')) || 0;
222
- let y = parseFloat(target.getAttribute('data-y')) || 0;
218
+ this.resizeMoveListener = (event) =>
219
+ {
220
+ const target = event.target;
221
+ let x = parseFloat(target.getAttribute('data-x')) || 0;
222
+ let y = parseFloat(target.getAttribute('data-y')) || 0;
223
223
 
224
- // Update element size
225
- target.style.width = event.rect.width + 'px';
226
- target.style.height = event.rect.height + 'px';
224
+ // Update element size
225
+ target.style.width = event.rect.width + 'px';
226
+ target.style.height = event.rect.height + 'px';
227
227
 
228
- // Translate when resizing from top or left edges
229
- x += event.deltaRect.left;
230
- y += event.deltaRect.top;
228
+ // Translate when resizing from top or left edges
229
+ x += event.deltaRect.left;
230
+ y += event.deltaRect.top;
231
231
 
232
- target.style.transform = `translate(${x}px, ${y}px) rotate(${target.getAttribute('data-angle') || 0}deg)`;
232
+ target.style.transform = `translate(${x}px, ${y}px) rotate(${target.getAttribute('data-angle') || 0}deg)`;
233
233
 
234
- target.setAttribute('data-x', x);
235
- target.setAttribute('data-y', y);
236
- };
234
+ target.setAttribute('data-x', x);
235
+ target.setAttribute('data-y', y);
236
+ };
237
237
 
238
- this.rotateMoveListener = (event) =>
239
- {
240
- const target = event.target;
241
- const currentAngle = parseFloat(target.getAttribute('data-angle')) || 0;
242
- const newAngle = currentAngle + event.da;
238
+ this.rotateMoveListener = (event) =>
239
+ {
240
+ const target = event.target;
241
+ const currentAngle = parseFloat(target.getAttribute('data-angle')) || 0;
242
+ const newAngle = currentAngle + event.da;
243
243
 
244
- const x = parseFloat(target.getAttribute('data-x')) || 0;
245
- const y = parseFloat(target.getAttribute('data-y')) || 0;
244
+ const x = parseFloat(target.getAttribute('data-x')) || 0;
245
+ const y = parseFloat(target.getAttribute('data-y')) || 0;
246
246
 
247
- target.style.transform = `translate(${x}px, ${y}px) rotate(${newAngle}deg)`;
247
+ target.style.transform = `translate(${x}px, ${y}px) rotate(${newAngle}deg)`;
248
248
 
249
- target.setAttribute('data-angle', newAngle);
250
- };
249
+ target.setAttribute('data-angle', newAngle);
250
+ };
251
251
 
252
- this.initialize = () =>
252
+ this.initialize = () =>
253
+ {
254
+ setTimeout(() =>
253
255
  {
254
- setTimeout(() =>
256
+ // Check if interact is available
257
+ if(typeof interact === 'undefined')
255
258
  {
256
- // Check if interact is available
257
- if(typeof interact === 'undefined')
258
- {
259
- console.error('Interact.js library not loaded');
260
- return;
261
- }
262
-
263
- // Initialize interact instance
264
- this.interactInstance = interact(node);
265
-
266
- // Apply configurations
267
- this.draggable();
268
- this.resizable();
269
- this.rotatable();
270
- }, 100);
271
- };
259
+ console.error('Interact.js library not loaded');
260
+ return;
261
+ }
262
+
263
+ // Initialize interact instance
264
+ this.interactInstance = interact(node);
265
+
266
+ // Apply configurations
267
+ this.draggable();
268
+ this.resizable();
269
+ this.rotatable();
270
+ }, 100);
271
+ };
272
272
 
273
- this.setup();
274
- this.initialize();
275
- }
276
- });
277
- });
273
+ this.setup();
274
+ this.initialize();
275
+ }
276
+ });