@onetype/framework 2.0.53 → 2.0.55

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 (150) hide show
  1. package/addons/float/popup/css/popup.css +2 -2
  2. package/addons/render/directives/front/functions/process.js +3 -1
  3. package/addons/render/directives/front/items/self/160-slot.js +9 -1
  4. package/addons/render/editor/addon.js +13 -0
  5. package/addons/render/editor/functions/block/add.js +57 -0
  6. package/addons/render/editor/functions/block/delete.js +32 -0
  7. package/addons/render/editor/functions/block/find.js +30 -0
  8. package/addons/render/editor/functions/render/block.js +114 -0
  9. package/addons/render/editor/functions/render/blocks.js +31 -0
  10. package/addons/render/editor/items/elements/editor.js +69 -0
  11. package/addons/render/editor/items/self/paragraph.js +21 -0
  12. package/addons/render/editor/styles/editor.css +252 -0
  13. package/addons/render/elements/front/functions/types/colors/badge.js +19 -0
  14. package/addons/render/elements/front/functions/types/colors/status.js +24 -0
  15. package/addons/render/elements/front/functions/types/escape.js +8 -0
  16. package/addons/render/elements/front/functions/types/format/currency.js +16 -0
  17. package/addons/render/elements/front/functions/types/format/date.js +16 -0
  18. package/addons/render/elements/front/functions/types/format/number.js +24 -0
  19. package/addons/render/elements/front/functions/types/format/timeago.js +43 -0
  20. package/addons/render/elements/front/functions/types/render/avatar.js +10 -0
  21. package/addons/render/elements/front/functions/types/render/badge.js +17 -0
  22. package/addons/render/elements/front/functions/types/render/boolean.js +8 -0
  23. package/addons/render/elements/front/functions/types/render/chip.js +6 -0
  24. package/addons/render/elements/front/functions/types/render/currency.js +7 -0
  25. package/addons/render/elements/front/functions/types/render/date.js +6 -0
  26. package/addons/render/elements/front/functions/types/render/description.js +12 -0
  27. package/addons/render/elements/front/functions/types/render/group.js +11 -0
  28. package/addons/render/elements/front/functions/types/render/icon.js +8 -0
  29. package/addons/render/elements/front/functions/types/render/image.js +9 -0
  30. package/addons/render/elements/front/functions/types/render/link.js +8 -0
  31. package/addons/render/elements/front/functions/types/render/media.js +16 -0
  32. package/addons/render/elements/front/functions/types/render/metric.js +13 -0
  33. package/addons/render/elements/front/functions/types/render/number.js +6 -0
  34. package/addons/render/elements/front/functions/types/render/progress.js +13 -0
  35. package/addons/render/elements/front/functions/types/render/status.js +12 -0
  36. package/addons/render/elements/front/functions/types/render/tag.js +6 -0
  37. package/addons/render/elements/front/functions/types/render/tags.js +11 -0
  38. package/addons/render/elements/front/functions/types/render/text.js +8 -0
  39. package/addons/render/elements/front/functions/types/render/timeago.js +6 -0
  40. package/addons/render/elements/front/functions/types/render.js +16 -0
  41. package/addons/render/elements/front/items/directives/element.js +8 -3
  42. package/addons/render/elements/front/items/self/cards/info/info.css +499 -0
  43. package/addons/render/elements/front/items/self/cards/info/info.js +224 -0
  44. package/addons/render/elements/front/items/self/cards/item/item.css +614 -0
  45. package/addons/render/elements/front/items/self/cards/item/item.js +200 -0
  46. package/addons/render/elements/front/items/self/cards/pricing/pricing.css +318 -46
  47. package/addons/render/elements/front/items/self/cards/pricing/pricing.js +81 -30
  48. package/addons/render/elements/front/items/self/cards/profile/profile.css +446 -0
  49. package/addons/render/elements/front/items/self/cards/profile/profile.js +186 -0
  50. package/addons/render/elements/front/items/self/cards/share/share.css +445 -0
  51. package/addons/render/elements/front/items/self/cards/share/share.js +316 -0
  52. package/addons/render/elements/front/items/self/cards/stat/stat.css +356 -0
  53. package/addons/render/elements/front/items/self/cards/stat/stat.js +146 -0
  54. package/addons/render/elements/front/items/self/charts/bar/bar.css +263 -0
  55. package/addons/render/elements/front/items/self/charts/bar/bar.js +156 -0
  56. package/addons/render/elements/front/items/self/charts/donut/donut.css +222 -0
  57. package/addons/render/elements/front/items/self/charts/donut/donut.js +164 -0
  58. package/addons/render/elements/front/items/self/charts/line/line.css +229 -0
  59. package/addons/render/elements/front/items/self/charts/line/line.js +249 -0
  60. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.css +102 -0
  61. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.js +164 -0
  62. package/addons/render/elements/front/items/self/core/builder/builder.css +71 -116
  63. package/addons/render/elements/front/items/self/core/builder/builder.js +212 -127
  64. package/addons/render/elements/front/items/self/core/repeater/repeater.css +338 -71
  65. package/addons/render/elements/front/items/self/core/repeater/repeater.js +191 -44
  66. package/addons/render/elements/front/items/self/data/filters/filters.css +541 -0
  67. package/addons/render/elements/front/items/self/data/filters/filters.js +504 -0
  68. package/addons/render/elements/front/items/self/data/table/table.css +588 -0
  69. package/addons/render/elements/front/items/self/data/table/table.js +589 -0
  70. package/addons/render/elements/front/items/self/form/button/button.css +430 -103
  71. package/addons/render/elements/front/items/self/form/button/button.js +109 -101
  72. package/addons/render/elements/front/items/self/form/checkbox/checkbox.css +356 -39
  73. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +109 -75
  74. package/addons/render/elements/front/items/self/form/color/color.css +255 -61
  75. package/addons/render/elements/front/items/self/form/color/color.js +135 -41
  76. package/addons/render/elements/front/items/self/form/date/date.css +289 -38
  77. package/addons/render/elements/front/items/self/form/date/date.js +108 -24
  78. package/addons/render/elements/front/items/self/form/editor/editor.css +447 -0
  79. package/addons/render/elements/front/items/self/form/editor/editor.js +794 -0
  80. package/addons/render/elements/front/items/self/form/field/field.css +160 -29
  81. package/addons/render/elements/front/items/self/form/field/field.js +36 -16
  82. package/addons/render/elements/front/items/self/form/input/input.css +272 -32
  83. package/addons/render/elements/front/items/self/form/input/input.js +324 -124
  84. package/addons/render/elements/front/items/self/form/radio/radio.css +310 -45
  85. package/addons/render/elements/front/items/self/form/radio/radio.js +99 -80
  86. package/addons/render/elements/front/items/self/form/rating/rating.css +234 -57
  87. package/addons/render/elements/front/items/self/form/rating/rating.js +216 -86
  88. package/addons/render/elements/front/items/self/form/section/section.css +247 -32
  89. package/addons/render/elements/front/items/self/form/section/section.js +53 -16
  90. package/addons/render/elements/front/items/self/form/select/select.css +362 -64
  91. package/addons/render/elements/front/items/self/form/select/select.js +156 -30
  92. package/addons/render/elements/front/items/self/form/slider/slider.css +331 -123
  93. package/addons/render/elements/front/items/self/form/slider/slider.js +124 -26
  94. package/addons/render/elements/front/items/self/form/tags/tags.css +328 -53
  95. package/addons/render/elements/front/items/self/form/tags/tags.js +155 -28
  96. package/addons/render/elements/front/items/self/form/textarea/textarea.css +128 -27
  97. package/addons/render/elements/front/items/self/form/textarea/textarea.js +172 -113
  98. package/addons/render/elements/front/items/self/form/toggle/toggle.css +239 -39
  99. package/addons/render/elements/front/items/self/form/toggle/toggle.js +32 -17
  100. package/addons/render/elements/front/items/self/form/transfer/transfer.css +377 -0
  101. package/addons/render/elements/front/items/self/form/transfer/transfer.js +453 -0
  102. package/addons/render/elements/front/items/self/form/upload/upload.css +408 -0
  103. package/addons/render/elements/front/items/self/form/upload/upload.js +469 -0
  104. package/addons/render/elements/front/items/self/global/accordion/accordion.css +377 -0
  105. package/addons/render/elements/front/items/self/global/accordion/accordion.js +135 -0
  106. package/addons/render/elements/front/items/self/global/code/code.css +207 -44
  107. package/addons/render/elements/front/items/self/global/code/code.js +327 -19
  108. package/addons/render/elements/front/items/self/global/gallery/gallery.css +521 -0
  109. package/addons/render/elements/front/items/self/global/gallery/gallery.js +291 -0
  110. package/addons/render/elements/front/items/self/global/heading/heading.css +151 -49
  111. package/addons/render/elements/front/items/self/global/heading/heading.js +30 -15
  112. package/addons/render/elements/front/items/self/global/markdown/markdown.css +284 -135
  113. package/addons/render/elements/front/items/self/global/markdown/markdown.js +35 -5
  114. package/addons/render/elements/front/items/self/global/menu/menu.css +311 -56
  115. package/addons/render/elements/front/items/self/global/menu/menu.js +95 -47
  116. package/addons/render/elements/front/items/self/global/notice/notice.css +263 -23
  117. package/addons/render/elements/front/items/self/global/notice/notice.js +51 -11
  118. package/addons/render/elements/front/items/self/global/parameters/parameters.css +276 -33
  119. package/addons/render/elements/front/items/self/global/parameters/parameters.js +86 -16
  120. package/addons/render/elements/front/items/self/global/tags/tags.css +215 -29
  121. package/addons/render/elements/front/items/self/global/tags/tags.js +91 -17
  122. package/addons/render/elements/front/items/self/navigation/dock/dock.css +221 -0
  123. package/addons/render/elements/front/items/self/navigation/dock/dock.js +134 -0
  124. package/addons/render/elements/front/items/self/navigation/footer/footer.css +356 -0
  125. package/addons/render/elements/front/items/self/navigation/footer/footer.js +219 -0
  126. package/addons/render/elements/front/items/self/navigation/navbar/navbar.css +736 -76
  127. package/addons/render/elements/front/items/self/navigation/navbar/navbar.js +437 -29
  128. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.css +327 -196
  129. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.js +115 -62
  130. package/addons/render/elements/front/items/self/navigation/steps/steps.css +345 -0
  131. package/addons/render/elements/front/items/self/navigation/steps/steps.js +113 -0
  132. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +362 -33
  133. package/addons/render/elements/front/items/self/navigation/tabs/tabs.js +62 -19
  134. package/addons/render/elements/front/items/self/status/code/code.css +83 -12
  135. package/addons/render/elements/front/items/self/status/code/code.js +15 -4
  136. package/addons/render/elements/front/items/self/status/empty/empty.css +95 -15
  137. package/addons/render/elements/front/items/self/status/empty/empty.js +17 -12
  138. package/addons/render/elements/front/items/self/status/error/error.css +99 -14
  139. package/addons/render/elements/front/items/self/status/error/error.js +21 -11
  140. package/addons/render/elements/front/items/self/status/loading/loading.css +85 -14
  141. package/addons/render/elements/front/items/self/status/loading/loading.js +5 -6
  142. package/addons/render/elements/front/styles/types.css +363 -0
  143. package/instructions.txt +28 -0
  144. package/lib/load.js +1 -0
  145. package/lib/styles/reset.css +89 -76
  146. package/package.json +1 -1
  147. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.css +0 -410
  148. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.js +0 -191
  149. package/addons/render/elements/front/items/self/global/faq/faq.css +0 -98
  150. package/addons/render/elements/front/items/self/global/faq/faq.js +0 -56
@@ -1,124 +1,324 @@
1
- onetype.AddonReady('elements', (elements) =>
2
- {
3
- elements.ItemAdd({
4
- id: 'form-input',
5
- icon: 'input',
6
- name: 'Input',
7
- description: 'Text input field with icon support and variant options.',
8
- category: 'Form',
9
- author: 'OneType',
10
- config: {
11
- value: {
12
- type: 'string',
13
- value: ''
14
- },
15
- name: {
16
- type: 'string',
17
- value: ''
18
- },
19
- type: {
20
- type: 'string',
21
- value: 'text'
22
- },
23
- placeholder: {
24
- type: 'string',
25
- value: ''
26
- },
27
- icon: {
28
- type: 'string',
29
- value: ''
30
- },
31
- iconRight: {
32
- type: 'string',
33
- value: ''
34
- },
35
- maxlength: {
36
- type: 'number'
37
- },
38
- disabled: {
39
- type: 'boolean',
40
- value: false
41
- },
42
- readonly: {
43
- type: 'boolean',
44
- value: false
45
- },
46
- variant: {
47
- type: 'array',
48
- value: ['bg-2', 'border', 'size-m'],
49
- options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'border', 'size-s', 'size-m', 'size-l']
50
- },
51
- _input: {
52
- type: 'function'
53
- },
54
- _change: {
55
- type: 'function'
56
- },
57
- _focus: {
58
- type: 'function'
59
- },
60
- _blur: {
61
- type: 'function'
62
- }
63
- },
64
- render: function()
65
- {
66
- this.input = ({ event, value }) =>
67
- {
68
- this.value = value;
69
-
70
- if (this._input)
71
- {
72
- this._input({ event, value });
73
- }
74
- };
75
-
76
- this.change = ({ event, value }) =>
77
- {
78
- this.value = value;
79
-
80
- if (this._change)
81
- {
82
- this._change({ event, value });
83
- }
84
- };
85
-
86
- this.focus = ({ event, value }) =>
87
- {
88
- if (this._focus)
89
- {
90
- this._focus({ event, value });
91
- }
92
- };
93
-
94
- this.blur = ({ event, value }) =>
95
- {
96
- if (this._blur)
97
- {
98
- this._blur({ event, value });
99
- }
100
- };
101
-
102
- return `
103
- <div :class="'holder ' + variant.join(' ')">
104
- <i ot-if="icon" class="icon">{{ icon }}</i>
105
- <input
106
- :value="value"
107
- :type="type"
108
- :placeholder="placeholder"
109
- :name="name"
110
- :maxlength="maxlength"
111
- :disabled="disabled"
112
- :readonly="readonly"
113
- autocomplete="off"
114
- ot-input="input"
115
- ot-change="change"
116
- ot-focus="focus"
117
- ot-blur="blur"
118
- />
119
- <i ot-if="iconRight" class="icon">{{ iconRight }}</i>
120
- </div>
121
- `;
122
- }
123
- });
124
- });
1
+ onetype.AddonReady('elements', (elements) =>
2
+ {
3
+ elements.ItemAdd({
4
+ id: 'form-input',
5
+ icon: 'input',
6
+ name: 'Input',
7
+ description: 'Premium text input with icons, prefix/suffix, password toggle, clearable and autocomplete dropdown.',
8
+ category: 'Form',
9
+ author: 'OneType',
10
+ config: {
11
+ value: {
12
+ type: 'string|number'
13
+ },
14
+ name: {
15
+ type: 'string'
16
+ },
17
+ type: {
18
+ type: 'string',
19
+ value: 'text',
20
+ options: ['text', 'email', 'password', 'number', 'tel', 'url', 'search']
21
+ },
22
+ placeholder: {
23
+ type: 'string'
24
+ },
25
+ icon: {
26
+ type: 'string'
27
+ },
28
+ iconRight: {
29
+ type: 'string'
30
+ },
31
+ prefix: {
32
+ type: 'string'
33
+ },
34
+ suffix: {
35
+ type: 'string'
36
+ },
37
+ options: {
38
+ type: 'array',
39
+ value: [],
40
+ each: {
41
+ type: 'string'
42
+ }
43
+ },
44
+ restrict: {
45
+ type: 'boolean'
46
+ },
47
+ clearable: {
48
+ type: 'boolean'
49
+ },
50
+ maxlength: {
51
+ type: 'number'
52
+ },
53
+ min: {
54
+ type: 'number'
55
+ },
56
+ max: {
57
+ type: 'number'
58
+ },
59
+ step: {
60
+ type: 'number'
61
+ },
62
+ disabled: {
63
+ type: 'boolean'
64
+ },
65
+ readonly: {
66
+ type: 'boolean'
67
+ },
68
+ variant: {
69
+ type: 'array',
70
+ value: ['bg-2', 'border', 'size-m'],
71
+ options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'transparent', 'border', 'size-s', 'size-m', 'size-l']
72
+ },
73
+ _input: {
74
+ type: 'function'
75
+ },
76
+ _change: {
77
+ type: 'function'
78
+ },
79
+ _focus: {
80
+ type: 'function'
81
+ },
82
+ _blur: {
83
+ type: 'function'
84
+ }
85
+ },
86
+ render: function()
87
+ {
88
+ this.open = false;
89
+ this.activeIndex = 0;
90
+ this.revealed = false;
91
+ this.hasOptions = this.options && this.options.length > 0;
92
+ this.isPassword = this.type === 'password';
93
+
94
+ this.inputType = () =>
95
+ {
96
+ if(this.isPassword && this.revealed)
97
+ {
98
+ return 'text';
99
+ }
100
+
101
+ return this.type || 'text';
102
+ };
103
+
104
+ this.filtered = () =>
105
+ {
106
+ if(!this.hasOptions)
107
+ {
108
+ return [];
109
+ }
110
+
111
+ const query = (this.value || '').toLowerCase();
112
+
113
+ if(!query)
114
+ {
115
+ return this.options;
116
+ }
117
+
118
+ return this.options.filter(option => String(option).toLowerCase().includes(query));
119
+ };
120
+
121
+ this.input = ({ event, value }) =>
122
+ {
123
+ this.value = value;
124
+ this.activeIndex = 0;
125
+
126
+ if(this.hasOptions)
127
+ {
128
+ const filtered = this.filtered();
129
+ this.open = filtered.length > 0;
130
+ }
131
+
132
+ if(this._input)
133
+ {
134
+ this._input({ event, value });
135
+ }
136
+ };
137
+
138
+ this.change = ({ event, value }) =>
139
+ {
140
+ if(this.restrict && this.hasOptions && !this.options.includes(value))
141
+ {
142
+ this.value = '';
143
+
144
+ if(this._change)
145
+ {
146
+ this._change({ event, value: '' });
147
+ }
148
+
149
+ return;
150
+ }
151
+
152
+ this.value = value;
153
+
154
+ if(this._change)
155
+ {
156
+ this._change({ event, value });
157
+ }
158
+ };
159
+
160
+ this.focus = ({ event, value }) =>
161
+ {
162
+ if(this.hasOptions)
163
+ {
164
+ const filtered = this.filtered();
165
+
166
+ if(filtered.length > 0)
167
+ {
168
+ this.open = true;
169
+ }
170
+ }
171
+
172
+ if(this._focus)
173
+ {
174
+ this._focus({ event, value });
175
+ }
176
+ };
177
+
178
+ this.blur = ({ event, value }) =>
179
+ {
180
+ if(this._blur)
181
+ {
182
+ this._blur({ event, value });
183
+ }
184
+ };
185
+
186
+ this.keydown = ({ event }) =>
187
+ {
188
+ if(!this.hasOptions)
189
+ {
190
+ return;
191
+ }
192
+
193
+ const filtered = this.filtered();
194
+
195
+ if(event.key === 'Enter')
196
+ {
197
+ if(this.open && filtered.length > 0)
198
+ {
199
+ event.preventDefault();
200
+ this.select(filtered[this.activeIndex] || filtered[0]);
201
+ }
202
+
203
+ return;
204
+ }
205
+
206
+ if(event.key === 'ArrowDown')
207
+ {
208
+ event.preventDefault();
209
+
210
+ if(filtered.length > 0)
211
+ {
212
+ this.open = true;
213
+ this.activeIndex = Math.min(this.activeIndex + 1, filtered.length - 1);
214
+ }
215
+
216
+ return;
217
+ }
218
+
219
+ if(event.key === 'ArrowUp')
220
+ {
221
+ event.preventDefault();
222
+ this.activeIndex = Math.max(this.activeIndex - 1, 0);
223
+ return;
224
+ }
225
+
226
+ if(event.key === 'Escape')
227
+ {
228
+ this.open = false;
229
+ return;
230
+ }
231
+ };
232
+
233
+ this.select = (option) =>
234
+ {
235
+ this.value = option;
236
+ this.open = false;
237
+ this.activeIndex = 0;
238
+
239
+ if(this._change)
240
+ {
241
+ this._change({ event: null, value: option });
242
+ }
243
+ };
244
+
245
+ this.close = () =>
246
+ {
247
+ this.open = false;
248
+ };
249
+
250
+ this.clear = () =>
251
+ {
252
+ this.value = '';
253
+ this.open = false;
254
+
255
+ if(this._change)
256
+ {
257
+ this._change({ event: null, value: '' });
258
+ }
259
+ };
260
+
261
+ this.togglePassword = () =>
262
+ {
263
+ this.revealed = !this.revealed;
264
+ };
265
+
266
+ return /* html */ `
267
+ <div :class="'holder ' + variant.join(' ') + (disabled ? ' disabled' : '')" ot-click-outside="close">
268
+ <div class="field">
269
+ <i ot-if="icon" class="icon">{{ icon }}</i>
270
+ <span ot-if="prefix" class="affix">{{ prefix }}</span>
271
+ <input
272
+ class="input"
273
+ :value="value"
274
+ :type="inputType()"
275
+ :placeholder="placeholder"
276
+ :name="name"
277
+ :maxlength="maxlength"
278
+ :min="min"
279
+ :max="max"
280
+ :step="step"
281
+ :disabled="disabled"
282
+ :readonly="readonly"
283
+ autocomplete="off"
284
+ ot-input="input"
285
+ ot-change="change"
286
+ ot-focus="focus"
287
+ ot-blur="blur"
288
+ ot-keydown="keydown"
289
+ />
290
+ <span ot-if="suffix" class="affix">{{ suffix }}</span>
291
+ <button
292
+ ot-if="clearable && value && !disabled && !readonly"
293
+ type="button"
294
+ class="action"
295
+ ot-click.stop="clear"
296
+ :ot-tooltip="{ text: 'Clear', position: { x: 'center', y: 'top' } }"
297
+ >
298
+ <i>close</i>
299
+ </button>
300
+ <button
301
+ ot-if="isPassword && !disabled"
302
+ type="button"
303
+ class="action"
304
+ ot-click.stop="togglePassword"
305
+ :ot-tooltip="{ text: revealed ? 'Hide' : 'Show', position: { x: 'center', y: 'top' } }"
306
+ >
307
+ <i ot-if="!revealed">visibility</i>
308
+ <i ot-if="revealed">visibility_off</i>
309
+ </button>
310
+ <i ot-if="iconRight" class="icon">{{ iconRight }}</i>
311
+ </div>
312
+ <div ot-if="open && hasOptions" class="dropdown">
313
+ <button
314
+ ot-for="option, index in filtered()"
315
+ type="button"
316
+ :class="'option' + (activeIndex === index ? ' active' : '')"
317
+ ot-click="() => select(option)"
318
+ >{{ option }}</button>
319
+ </div>
320
+ </div>
321
+ `;
322
+ }
323
+ });
324
+ });