@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,173 +1,172 @@
1
- onetype.AddonReady('transforms', (transforms) =>
2
- {
3
- transforms.ItemAdd({
4
- id: 'typed',
5
- icon: 'keyboard',
6
- name: 'Typed',
7
- description: 'Typewriter text animation effect. Automatically types and deletes text with customizable speed.',
8
- js: [
9
- 'https://cdn.jsdelivr.net/npm/typed.js@2.1.0/dist/typed.umd.js'
10
- ],
11
- config: {
12
- 'strings': ['array', []],
13
- 'type-speed': ['number', 50],
14
- 'back-speed': ['number', 30],
15
- 'start-delay': ['number', 0],
16
- 'back-delay': ['number', 700],
17
- 'loop': ['boolean', false],
18
- 'loop-count': ['number', 0],
19
- 'show-cursor': ['boolean', true],
20
- 'cursor-char': ['string', '|'],
21
- 'auto-insert-css': ['boolean', true],
22
- 'shuffle': ['boolean', false],
23
- 'smart-backspace': ['boolean', true],
24
- 'fade-out': ['boolean', false],
25
- 'fade-out-delay': ['number', 500],
26
- 'content-type': ['string', 'html']
27
- },
28
- code: function(data, item, compile, node, identifier)
1
+ transforms.ItemAdd({
2
+ id: 'typed',
3
+ icon: 'keyboard',
4
+ name: 'Typed',
5
+ description: 'Typewriter text animation effect. Automatically types and deletes text with customizable speed.',
6
+ js: [
7
+ 'https://cdn.jsdelivr.net/npm/typed.js@2.1.0/dist/typed.umd.js'
8
+ ],
9
+ config: {
10
+ 'strings': ['array', []],
11
+ 'type-speed': ['number', 50],
12
+ 'back-speed': ['number', 30],
13
+ 'start-delay': ['number', 0],
14
+ 'back-delay': ['number', 700],
15
+ 'loop': ['boolean', false],
16
+ 'loop-count': ['number', 0],
17
+ 'show-cursor': ['boolean', true],
18
+ 'cursor-char': ['string', '|'],
19
+ 'auto-insert-css': ['boolean', true],
20
+ 'shuffle': ['boolean', false],
21
+ 'smart-backspace': ['boolean', true],
22
+ 'fade-out': ['boolean', false],
23
+ 'fade-out-delay': ['number', 500],
24
+ 'content-type': ['string', 'html']
25
+ },
26
+ code: function(data, node, transformer)
27
+ {
28
+ const id = 'typed-' + onetype.Generate(8);
29
+
30
+ this.setup = () =>
29
31
  {
30
- this.setup = () =>
31
- {
32
- node.classList.add('typed');
33
- node.classList.add('typed-' + identifier);
32
+ node.classList.add('typed');
33
+ node.classList.add(id);
34
34
 
35
- const strings = data['strings'].value;
36
- const children = Array.from(node.children);
35
+ const strings = data['strings'];
36
+ const children = Array.from(node.children);
37
37
 
38
- const stringsArray = [];
38
+ const stringsArray = [];
39
39
 
40
- if(strings && strings.length > 0)
41
- {
42
- stringsArray.push(...strings);
43
- }
44
- else if(children.length > 0)
40
+ if(strings && strings.length > 0)
41
+ {
42
+ stringsArray.push(...strings);
43
+ }
44
+ else if(children.length > 0)
45
+ {
46
+ children.forEach(child =>
45
47
  {
46
- children.forEach(child =>
47
- {
48
- stringsArray.push(child.innerHTML);
49
- });
48
+ stringsArray.push(child.innerHTML);
49
+ });
50
50
 
51
- node.innerHTML = '';
52
- }
53
- else
51
+ node.innerHTML = '';
52
+ }
53
+ else
54
+ {
55
+ const existingText = node.textContent || node.innerHTML;
56
+ if(existingText.trim())
54
57
  {
55
- const existingText = node.textContent || node.innerHTML;
56
- if(existingText.trim())
57
- {
58
- stringsArray.push(existingText);
59
- node.innerHTML = '';
60
- }
58
+ stringsArray.push(existingText);
59
+ node.innerHTML = '';
61
60
  }
61
+ }
62
62
 
63
- if(stringsArray.length === 0)
64
- {
65
- stringsArray.push('Type your text here...');
66
- }
63
+ if(stringsArray.length === 0)
64
+ {
65
+ stringsArray.push('Type your text here...');
66
+ }
67
67
 
68
- this.strings = stringsArray;
68
+ this.strings = stringsArray;
69
69
 
70
- const element = document.createElement('span');
71
- element.className = 'typed-element';
72
- node.appendChild(element);
73
- };
70
+ const element = document.createElement('span');
71
+ element.className = 'typed-element';
72
+ node.appendChild(element);
73
+ };
74
74
 
75
- this.styles = () =>
75
+ this.styles = () =>
76
+ {
77
+ if(!data['auto-insert-css'])
76
78
  {
77
- if(!data['auto-insert-css'].value)
78
- {
79
- return;
80
- }
79
+ return;
80
+ }
81
81
 
82
- const style = document.createElement('style');
83
-
84
- style.textContent = `
85
- .typed-${identifier} {
86
- display: inline-block;
87
- }
88
- .typed-${identifier} .typed-cursor {
89
- opacity: 1;
90
- animation: typedjsBlink 0.7s infinite;
91
- -webkit-animation: typedjsBlink 0.7s infinite;
92
- animation: typedjsBlink 0.7s infinite;
93
- }
94
- @keyframes typedjsBlink {
95
- 50% { opacity: 0.0; }
96
- }
97
- @-webkit-keyframes typedjsBlink {
98
- 0% { opacity: 1; }
99
- 50% { opacity: 0.0; }
100
- 100% { opacity: 1; }
101
- }
102
- .typed-${identifier} .typed-fade-out {
103
- opacity: 0;
104
- transition: opacity 0.25s;
105
- }
106
- `;
107
-
108
- document.head.appendChild(style);
109
- };
110
-
111
- this.config = () =>
112
- {
113
- const config = {
114
- strings: this.strings,
115
- typeSpeed: data['type-speed'].value,
116
- backSpeed: data['back-speed'].value,
117
- startDelay: data['start-delay'].value,
118
- backDelay: data['back-delay'].value,
119
- loop: data['loop'].value,
120
- showCursor: data['show-cursor'].value,
121
- cursorChar: data['cursor-char'].value,
122
- autoInsertCss: false,
123
- shuffle: data['shuffle'].value,
124
- smartBackspace: data['smart-backspace'].value,
125
- contentType: data['content-type'].value
126
- };
82
+ const style = document.createElement('style');
127
83
 
128
- if(data['loop-count'].value > 0)
129
- {
130
- config.loopCount = data['loop-count'].value;
84
+ style.textContent = `
85
+ .typed-${id} {
86
+ display: inline-block;
131
87
  }
132
-
133
- if(data['fade-out'].value)
134
- {
135
- config.fadeOut = true;
136
- config.fadeOutClass = 'typed-fade-out';
137
- config.fadeOutDelay = data['fade-out-delay'].value;
88
+ .typed-${id} .typed-cursor {
89
+ opacity: 1;
90
+ animation: typedjsBlink 0.7s infinite;
91
+ -webkit-animation: typedjsBlink 0.7s infinite;
92
+ animation: typedjsBlink 0.7s infinite;
93
+ }
94
+ @keyframes typedjsBlink {
95
+ 50% { opacity: 0.0; }
138
96
  }
97
+ @-webkit-keyframes typedjsBlink {
98
+ 0% { opacity: 1; }
99
+ 50% { opacity: 0.0; }
100
+ 100% { opacity: 1; }
101
+ }
102
+ .typed-${id} .typed-fade-out {
103
+ opacity: 0;
104
+ transition: opacity 0.25s;
105
+ }
106
+ `;
107
+
108
+ document.head.appendChild(style);
109
+ };
139
110
 
140
- return config;
111
+ this.config = () =>
112
+ {
113
+ const config = {
114
+ strings: this.strings,
115
+ typeSpeed: data['type-speed'],
116
+ backSpeed: data['back-speed'],
117
+ startDelay: data['start-delay'],
118
+ backDelay: data['back-delay'],
119
+ loop: data['loop'],
120
+ showCursor: data['show-cursor'],
121
+ cursorChar: data['cursor-char'],
122
+ autoInsertCss: false,
123
+ shuffle: data['shuffle'],
124
+ smartBackspace: data['smart-backspace'],
125
+ contentType: data['content-type']
141
126
  };
142
127
 
143
- this.initialize = () =>
128
+ if(data['loop-count'] > 0)
144
129
  {
145
- setTimeout(() =>
146
- {
147
- const element = node.querySelector('.typed-element');
130
+ config.loopCount = data['loop-count'];
131
+ }
148
132
 
149
- if(!element)
150
- {
151
- return;
152
- }
133
+ if(data['fade-out'])
134
+ {
135
+ config.fadeOut = true;
136
+ config.fadeOutClass = 'typed-fade-out';
137
+ config.fadeOutDelay = data['fade-out-delay'];
138
+ }
153
139
 
154
- const typedInstance = new Typed(element, this.config());
140
+ return config;
141
+ };
155
142
 
156
- node._typedInstance = typedInstance;
143
+ this.initialize = () =>
144
+ {
145
+ setTimeout(() =>
146
+ {
147
+ const element = node.querySelector('.typed-element');
157
148
 
158
- node._typedControl = {
159
- start: () => typedInstance.start(),
160
- stop: () => typedInstance.stop(),
161
- toggle: () => typedInstance.toggle(),
162
- destroy: () => typedInstance.destroy(),
163
- reset: () => typedInstance.reset()
164
- };
165
- }, 0);
166
- };
149
+ if(!element)
150
+ {
151
+ return;
152
+ }
153
+
154
+ const typedInstance = new Typed(element, this.config());
167
155
 
168
- this.setup();
169
- this.styles();
170
- this.initialize();
171
- }
172
- });
173
- });
156
+ node._typedInstance = typedInstance;
157
+
158
+ node._typedControl = {
159
+ start: () => typedInstance.start(),
160
+ stop: () => typedInstance.stop(),
161
+ toggle: () => typedInstance.toggle(),
162
+ destroy: () => typedInstance.destroy(),
163
+ reset: () => typedInstance.reset()
164
+ };
165
+ }, 0);
166
+ };
167
+
168
+ this.setup();
169
+ this.styles();
170
+ this.initialize();
171
+ }
172
+ });
package/lib/load.js CHANGED
@@ -21,7 +21,9 @@ onetype.Assets('sources', import.meta.url, { js: '../addons/modules/sources/fron
21
21
 
22
22
  /* Render */
23
23
  onetype.Assets('directives', import.meta.url, { js: '../addons/render/directives/front' });
24
+ onetype.Assets('directives/items', import.meta.url, { js: 'items/directives' });
24
25
  onetype.Assets('transforms', import.meta.url, { js: '../addons/render/transforms' });
26
+ onetype.Assets('transforms/items', import.meta.url, { js: 'items/transforms' });
25
27
  onetype.Assets('pages', import.meta.url, { js: '../addons/render/pages', css: '../addons/render/pages/front' });
26
28
  onetype.Assets('elements', import.meta.url, { js: '../addons/render/elements/front', css: '../addons/render/elements/front' });
27
29
 
@@ -47,14 +49,18 @@ onetype.Assets('elements/global/heading', import.meta.url, { js: 'items/elements
47
49
  onetype.Assets('elements/global/markdown', import.meta.url, { js: 'items/elements/global/markdown', css: 'items/elements/global/markdown' });
48
50
  onetype.Assets('elements/global/notice', import.meta.url, { js: 'items/elements/global/notice', css: 'items/elements/global/notice' });
49
51
  onetype.Assets('elements/global/parameters', import.meta.url, { js: 'items/elements/global/parameters', css: 'items/elements/global/parameters' });
50
- onetype.Assets('elements/global/tabs', import.meta.url, { js: 'items/elements/global/tabs', css: 'items/elements/global/tabs' });
51
52
  onetype.Assets('elements/global/tags', import.meta.url, { js: 'items/elements/global/tags', css: 'items/elements/global/tags' });
52
53
 
53
54
  /* Elements — Sections */
54
55
  onetype.Assets('elements/sections/footer', import.meta.url, { js: 'items/elements/sections/footer', css: 'items/elements/sections/footer' });
55
56
  onetype.Assets('elements/sections/hero', import.meta.url, { js: 'items/elements/sections/hero', css: 'items/elements/sections/hero' });
56
- onetype.Assets('elements/sections/navbar', import.meta.url, { js: 'items/elements/sections/navbar', css: 'items/elements/sections/navbar' });
57
57
  onetype.Assets('elements/sections/stats', import.meta.url, { js: 'items/elements/sections/stats', css: 'items/elements/sections/stats' });
58
+ onetype.Assets('elements/sections/pricing', import.meta.url, { js: 'items/elements/sections/pricing', css: 'items/elements/sections/pricing' });
59
+
60
+ /* Elements — Navigation */
61
+ onetype.Assets('elements/navigation/navbar', import.meta.url, { js: 'items/elements/navigation/navbar', css: 'items/elements/navigation/navbar' });
62
+ onetype.Assets('elements/navigation/sidebar', import.meta.url, { js: 'items/elements/navigation/sidebar', css: 'items/elements/navigation/sidebar' });
63
+ onetype.Assets('elements/navigation/tabs', import.meta.url, { js: 'items/elements/navigation/tabs', css: 'items/elements/navigation/tabs' });
58
64
 
59
65
  /* Elements — Status */
60
66
  onetype.Assets('elements/status/loading', import.meta.url, { js: 'items/elements/status/loading', css: 'items/elements/status/loading' });
@@ -62,20 +68,6 @@ onetype.Assets('elements/status/empty', import.meta.url, { js: 'items/elements/s
62
68
  onetype.Assets('elements/status/error', import.meta.url, { js: 'items/elements/status/error', css: 'items/elements/status/error' });
63
69
  onetype.Assets('elements/status/code', import.meta.url, { js: 'items/elements/status/code', css: 'items/elements/status/code' });
64
70
 
65
- /* Transforms */
66
- onetype.Assets('transforms/accordion', import.meta.url, { js: 'items/transforms/accordion' });
67
- onetype.Assets('transforms/chart', import.meta.url, { js: 'items/transforms/chart' });
68
- onetype.Assets('transforms/codeflask', import.meta.url, { js: 'items/transforms/codeflask' });
69
- onetype.Assets('transforms/codemirror', import.meta.url, { js: 'items/transforms/codemirror' });
70
- onetype.Assets('transforms/comparison', import.meta.url, { js: 'items/transforms/comparison' });
71
- onetype.Assets('transforms/heatmap', import.meta.url, { js: 'items/transforms/heatmap' });
72
- onetype.Assets('transforms/interact', import.meta.url, { js: 'items/transforms/interact' });
73
- onetype.Assets('transforms/particles', import.meta.url, { js: 'items/transforms/particles' });
74
- onetype.Assets('transforms/sparkline', import.meta.url, { js: 'items/transforms/sparkline' });
75
- onetype.Assets('transforms/swiper', import.meta.url, { js: 'items/transforms/swiper' });
76
- onetype.Assets('transforms/tabs', import.meta.url, { js: 'items/transforms/tabs' });
77
- onetype.Assets('transforms/typed', import.meta.url, { js: 'items/transforms/typed' });
78
-
79
71
  global.$ot = onetype.$ot;
80
72
 
81
73
  process.on('SIGINT', async () =>
@@ -117,22 +117,22 @@ const OneTypeAddons =
117
117
  return setTimeout(() => callback(addon));
118
118
  }
119
119
 
120
- let loaded = false;
120
+ // let loaded = false;
121
121
 
122
- const timeout = setTimeout(() =>
123
- {
124
- if(!loaded)
125
- {
126
- this.LogWarn(`Addon "${name}" might not be loaded.`);
127
- }
128
- }, 2000);
122
+ // const timeout = setTimeout(() =>
123
+ // {
124
+ // if(!loaded)
125
+ // {
126
+ // this.LogWarn(`Addon "${name}" might not be loaded.`);
127
+ // }
128
+ // }, 2000);
129
129
 
130
130
  this.AddonOn('add', (addon) =>
131
131
  {
132
132
  if(addon.GetName() === name)
133
133
  {
134
- loaded = true;
135
- clearTimeout(timeout);
134
+ // loaded = true;
135
+ // clearTimeout(timeout);
136
136
 
137
137
  if(instant)
138
138
  {
@@ -42,7 +42,7 @@
42
42
  --ot-bg-4-hover: rgba(48, 48, 50, 1);
43
43
 
44
44
  --ot-text-1: rgba(225, 228, 232, 1);
45
- --ot-text-2: rgb(159, 165, 177, 1);
45
+ --ot-text-2: rgba(156, 156, 156, 1);
46
46
 
47
47
  --ot-brand: rgba(226, 112, 85, 1);
48
48
  --ot-brand-border: rgba(236, 142, 120, 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onetype/framework",
3
- "version": "2.0.26",
3
+ "version": "2.0.27",
4
4
  "description": "OneType Framework — Full-stack isomorphic JavaScript framework built from scratch. One addon abstraction powers databases, servers, commands, pages, directives, queues, and more.",
5
5
  "type": "module",
6
6
  "main": "lib/load.js",
@@ -1,49 +0,0 @@
1
- transforms.Fn('load.assets', async function(item)
2
- {
3
- const loaded = transforms.loaded = transforms.loaded || {js: new Set(), css: new Set()};
4
-
5
- const js = item.Get('js') || [];
6
- const css = item.Get('css') || [];
7
-
8
- const jsPromises = js.map(url =>
9
- {
10
- if (loaded.js.has(url))
11
- {
12
- return Promise.resolve();
13
- }
14
-
15
- loaded.js.add(url);
16
-
17
- return new Promise((resolve, reject) =>
18
- {
19
- const script = document.createElement('script');
20
- script.src = url;
21
- script.async = true;
22
- script.onload = resolve;
23
- script.onerror = () => reject(new Error(`Failed to load script: ${url}`));
24
- document.head.appendChild(script);
25
- });
26
- });
27
-
28
- const cssPromises = css.map(url =>
29
- {
30
- if (loaded.css.has(url))
31
- {
32
- return Promise.resolve();
33
- }
34
-
35
- loaded.css.add(url);
36
-
37
- return new Promise((resolve, reject) =>
38
- {
39
- const link = document.createElement('link');
40
- link.rel = 'stylesheet';
41
- link.href = url;
42
- link.onload = resolve;
43
- link.onerror = () => reject(new Error(`Failed to load stylesheet: ${url}`));
44
- document.head.appendChild(link);
45
- });
46
- });
47
-
48
- await Promise.all([...jsPromises, ...cssPromises]);
49
- });