@componyx/ui 0.0.0-stage → 1.0.3

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 (169) hide show
  1. package/AppSkin/AppSkin.css +1268 -0
  2. package/AppSkin/AppSkin.js +2748 -0
  3. package/AppSkin/Themes/Default.css +241 -0
  4. package/Base/Base.js +3407 -0
  5. package/Base/ComponentIcons.css +66 -0
  6. package/Base/Font/ComponentIcons.woff +0 -0
  7. package/Base/Font/UI.woff +0 -0
  8. package/Base/Library.js +8432 -0
  9. package/Base/NavigationManager.js +462 -0
  10. package/Base/ResponsiveTemplates.js +371 -0
  11. package/Base/Sanitizer.js +288 -0
  12. package/Base/Themes/Default.css +255 -0
  13. package/Base/UI.css +618 -0
  14. package/Base/UIResourcePath.js +6 -0
  15. package/Bindary/Bindary.js +2011 -0
  16. package/Bindary/Modules/Connection.js +216 -0
  17. package/Bindary/Modules/Core.js +854 -0
  18. package/Bindary/Modules/DataUpdater.js +351 -0
  19. package/Bindary/Modules/ExpressionEngine.js +347 -0
  20. package/Bindary/Modules/ProxyManager.js +482 -0
  21. package/Bindary/Modules/Renderer.js +605 -0
  22. package/Bindary/Modules/Router.js +291 -0
  23. package/Bindary/Modules/Scroller.js +89 -0
  24. package/Bindary/Modules/Template.js +1273 -0
  25. package/BookmarkSpy/BookmarkSpy.js +430 -0
  26. package/Box/Box.css +36 -0
  27. package/Box/Box.js +1685 -0
  28. package/Button/Button.css +470 -0
  29. package/Button/Button.js +1398 -0
  30. package/Button/Themes/Default.css +200 -0
  31. package/Carousel/Carousel.css +273 -0
  32. package/Carousel/Carousel.js +607 -0
  33. package/ColorButton/ColorButton.css +39 -0
  34. package/ColorButton/ColorButton.js +336 -0
  35. package/ColorPicker/ColorPicker.css +359 -0
  36. package/ColorPicker/ColorPicker.js +972 -0
  37. package/ComboBox/ComboBox.css +357 -0
  38. package/ComboBox/ComboBox.js +2342 -0
  39. package/ComboBox/Themes/Default.css +23 -0
  40. package/DataPager/DataPager.css +72 -0
  41. package/DataPager/DataPager.js +674 -0
  42. package/DatePicker/DatePicker.css +227 -0
  43. package/DatePicker/DatePicker.js +1531 -0
  44. package/DatePicker/Themes/Default.css +26 -0
  45. package/Dialog/Dialog.css +106 -0
  46. package/Dialog/Dialog.js +572 -0
  47. package/Dialog/Themes/Default.css +10 -0
  48. package/Editor/Data/Emoji.json +8285 -0
  49. package/Editor/Data/Special.json +1042 -0
  50. package/Editor/Editor.css +1562 -0
  51. package/Editor/Editor.js +4058 -0
  52. package/Editor/Font/Editor.woff +0 -0
  53. package/Editor/Modules/ComponentFactory.js +565 -0
  54. package/Editor/Modules/ContentManager.js +748 -0
  55. package/Editor/Modules/DialogManager.js +1234 -0
  56. package/Editor/Modules/EventManager.js +458 -0
  57. package/Editor/Modules/Format.js +950 -0
  58. package/Editor/Modules/History.js +191 -0
  59. package/Editor/Modules/LayoutState.js +379 -0
  60. package/Editor/Modules/ListManager.js +296 -0
  61. package/Editor/Modules/MenuManager.js +388 -0
  62. package/Editor/Modules/NodeManager.js +681 -0
  63. package/Editor/Modules/ParagraphButtons.js +122 -0
  64. package/Editor/Modules/Resizer.js +176 -0
  65. package/Editor/Modules/SelectionRange.js +564 -0
  66. package/Editor/Modules/SourceViewBuilder.js +212 -0
  67. package/Editor/Modules/SymbolPicker.js +208 -0
  68. package/Editor/Modules/Table.js +2327 -0
  69. package/Editor/Modules/TableDialog.js +757 -0
  70. package/Editor/Modules/Toolbar.js +375 -0
  71. package/Editor/Modules/TooltipMenu.js +125 -0
  72. package/Editor/Modules/Utility.js +131 -0
  73. package/Editor/Themes/Default.css +204 -0
  74. package/FileUpload/FileUpload.css +156 -0
  75. package/FileUpload/FileUpload.js +898 -0
  76. package/FileUpload/Themes/Default.css +17 -0
  77. package/Form/Form.css +1934 -0
  78. package/Form/Form.js +4943 -0
  79. package/Form/Modules/ActionManager.js +368 -0
  80. package/Form/Modules/BuildPanelManager.js +319 -0
  81. package/Form/Modules/ComponentFactory.js +468 -0
  82. package/Form/Modules/ComponentPanel.js +265 -0
  83. package/Form/Modules/ConfigPanelManager.js +685 -0
  84. package/Form/Modules/DataObserver.js +717 -0
  85. package/Form/Modules/Databinder.js +602 -0
  86. package/Form/Modules/Draggable.js +756 -0
  87. package/Form/Modules/OptionsPanel.js +342 -0
  88. package/Form/Modules/Renderer.js +1889 -0
  89. package/Form/Modules/RuleEngine.js +585 -0
  90. package/Form/Modules/RulesPanel.js +1158 -0
  91. package/Form/Modules/Types.js +1709 -0
  92. package/Form/Modules/ValidationManager.js +194 -0
  93. package/Form/Themes/Default.css +216 -0
  94. package/FormField/FormField.css +468 -0
  95. package/FormField/FormField.js +576 -0
  96. package/FormField/Themes/Default.css +99 -0
  97. package/Grid/Grid.css +544 -0
  98. package/Grid/Grid.js +3761 -0
  99. package/Grid/Themes/Default.css +43 -0
  100. package/LICENSE +126 -0
  101. package/MaskedTextBox/MaskedTextBox.css +28 -0
  102. package/MaskedTextBox/MaskedTextBox.js +642 -0
  103. package/MaskedTextBox/Themes/Default.css +6 -0
  104. package/Menu/Menu.css +328 -0
  105. package/Menu/Menu.js +2386 -0
  106. package/Menu/Themes/Default.css +24 -0
  107. package/NumericBox/NumericBox.css +120 -0
  108. package/NumericBox/NumericBox.js +984 -0
  109. package/PanelBar/PanelBar.css +123 -0
  110. package/PanelBar/PanelBar.js +505 -0
  111. package/PanelBar/Themes/Default.css +51 -0
  112. package/PieChart/PieChart.css +95 -0
  113. package/PieChart/PieChart.js +820 -0
  114. package/PieChart/Themes/Default.css +9 -0
  115. package/README.md +178 -3
  116. package/Slider/Slider.css +348 -0
  117. package/Slider/Slider.js +1306 -0
  118. package/Slider/Themes/Default.css +44 -0
  119. package/TabStrip/TabStrip.css +52 -0
  120. package/TabStrip/TabStrip.js +362 -0
  121. package/TabStrip/Themes/Default.css +35 -0
  122. package/TimePicker/Themes/Default.css +30 -0
  123. package/TimePicker/TimePicker.css +253 -0
  124. package/TimePicker/TimePicker.js +1485 -0
  125. package/TooltipManager/Themes/Default.css +21 -0
  126. package/TooltipManager/TooltipManager.css +227 -0
  127. package/TooltipManager/TooltipManager.js +791 -0
  128. package/Validator/Validator.css +54 -0
  129. package/Validator/Validator.js +2508 -0
  130. package/componyx.html-data.json +619 -0
  131. package/index.js +27 -0
  132. package/package.json +43 -4
  133. package/types/AppSkin.d.ts +842 -0
  134. package/types/Base.d.ts +1034 -0
  135. package/types/Bindary.d.ts +1196 -0
  136. package/types/BookmarkSpy.d.ts +112 -0
  137. package/types/Box.d.ts +374 -0
  138. package/types/Button.d.ts +455 -0
  139. package/types/Carousel.d.ts +136 -0
  140. package/types/ColorButton.d.ts +120 -0
  141. package/types/ColorPicker.d.ts +225 -0
  142. package/types/ComboBox.d.ts +507 -0
  143. package/types/DataPager.d.ts +152 -0
  144. package/types/DatePicker.d.ts +354 -0
  145. package/types/Dialog.d.ts +160 -0
  146. package/types/Editor.d.ts +1289 -0
  147. package/types/FileUpload.d.ts +206 -0
  148. package/types/Form.d.ts +3078 -0
  149. package/types/FormField.d.ts +204 -0
  150. package/types/Grid.d.ts +911 -0
  151. package/types/Library.d.ts +1899 -0
  152. package/types/MaskedTextBox.d.ts +91 -0
  153. package/types/Menu.d.ts +577 -0
  154. package/types/NumericBox.d.ts +310 -0
  155. package/types/PanelBar.d.ts +223 -0
  156. package/types/PieChart.d.ts +224 -0
  157. package/types/ResponsiveTemplates.d.ts +108 -0
  158. package/types/Slider.d.ts +227 -0
  159. package/types/TabStrip.d.ts +185 -0
  160. package/types/TimePicker.d.ts +265 -0
  161. package/types/TooltipManager.d.ts +178 -0
  162. package/types/UI.d.ts +29 -0
  163. package/types/Validator.d.ts +653 -0
  164. package/types/index.d.ts +59 -0
  165. package/ui.css +11783 -0
  166. package/ui.js +79477 -0
  167. package/ui.min.css +138 -0
  168. package/ui.min.js +264 -0
  169. package/ui.min.js.map +1 -0
@@ -0,0 +1,468 @@
1
+ /*! Componyx.UI | (c) E.H. Daanen / Componyx | BUSL-1.1 | componyx.com/license */
2
+ .form-field.theme
3
+ {
4
+ --margin: 0.5rem;
5
+ cursor: default;
6
+ position: relative;
7
+ vertical-align: top;
8
+ display: table;
9
+ clear: both;
10
+ margin-top: var(--margin);
11
+ margin-bottom: var(--margin);
12
+ }
13
+
14
+ .form-field.theme > input,
15
+ .form-field.theme > textarea,
16
+ .form-field.theme > select
17
+ {
18
+ height: 28px;
19
+ padding-top: 0px;
20
+ padding-bottom: 0px;
21
+ line-height: 22px;
22
+ padding-left: 4px;
23
+ padding-right: 4px;
24
+ background: transparent;
25
+ border-style: solid;
26
+ border-width: 1px;
27
+ }
28
+
29
+ .form-field.theme > textarea
30
+ {
31
+ height: auto;
32
+ }
33
+
34
+ .form-field.theme > select
35
+ {
36
+ box-sizing: content-box;
37
+ }
38
+
39
+ .form-field.theme.borderless input,
40
+ .form-field.theme.borderless select
41
+ {
42
+ border-top-color: transparent;
43
+ border-left-color: transparent;
44
+ border-right-color: transparent;
45
+ border-radius: 0;
46
+ }
47
+
48
+ .form-field.theme input:focus,
49
+ .form-field.theme textarea:focus,
50
+ .form-field.theme select:focus
51
+ {
52
+ transition: all 0.5s ease-in-out, color 0.1s ease-in-out;
53
+ }
54
+
55
+ .form-field.theme.before,
56
+ .form-field.theme.after
57
+ {
58
+ display: flex;
59
+ align-items: center;
60
+ }
61
+
62
+ .form-field.theme.after > label
63
+ {
64
+ padding-left: 10px;
65
+ }
66
+
67
+ .form-field.theme.above,
68
+ .form-field.theme.inside,
69
+ .form-field.theme.floating
70
+ {
71
+ display: flex;
72
+ flex-direction: column;
73
+ }
74
+
75
+ .form-field.theme.floating
76
+ {
77
+ margin-top: calc(var(--margin) + 28px);
78
+ }
79
+
80
+ .form-field.theme.inline
81
+ {
82
+ display: inline-flex;
83
+ margin-top: 0;
84
+ margin-bottom: 0;
85
+ }
86
+
87
+ /* the b tag is used to display a custom styled checkbox or radiobutton */
88
+ .form-field.theme > b
89
+ {
90
+ display: none;
91
+ }
92
+
93
+ .form-field.theme > input[type="checkbox"] > b,
94
+ .form-field.theme > input[type="radio"] > b
95
+ {
96
+ display: inline-block;
97
+ }
98
+
99
+ .form-field.theme.inside
100
+ {
101
+ line-height: normal;
102
+ }
103
+
104
+ /* the i tag contains the label text */
105
+ .form-field.theme.above > label,
106
+ .form-field.theme.before > label,
107
+ .form-field.theme.inside > label,
108
+ .form-field.theme.floating > label
109
+ {
110
+ position: relative;
111
+ display: inline-flex;
112
+ order: 0;
113
+ line-height: 28px;
114
+ font-style: normal;
115
+ cursor: pointer;
116
+ font-weight: normal;
117
+ margin: 0;
118
+ padding: 0;
119
+ color: inherit;
120
+ font-family: inherit;
121
+ user-select: text;
122
+ }
123
+
124
+ .form-field.theme.inside > label,
125
+ .form-field.theme.floating > label
126
+ {
127
+ margin-left: 1px;
128
+ }
129
+
130
+ .form-field.theme.before > label
131
+ {
132
+ padding-right: 10px;
133
+ }
134
+
135
+ .form-field.theme.floating > label,
136
+ .form-field.theme.inside > label
137
+ {
138
+ position: absolute;
139
+ top: 0px;
140
+ line-height: 28px;
141
+ cursor: text;
142
+ }
143
+
144
+ .form-field.theme.above > :not(label),
145
+ .form-field.theme.inside > :not(label),
146
+ .form-field.theme.floating > :not(label),
147
+ .form-field.theme.before > :not(label)
148
+ {
149
+ order: 1;
150
+ }
151
+
152
+
153
+ .form-field.theme.floating > label
154
+ {
155
+ transition: all 0.1s ease-in-out;
156
+ }
157
+
158
+ .form-field.theme.before > label,
159
+ .form-field.theme.after > label
160
+ {
161
+ position: static;
162
+ line-height: 28px;
163
+ }
164
+
165
+ .form-field.theme.before > input ~ b
166
+ {
167
+ order: 1;
168
+ }
169
+
170
+
171
+ /* inside */
172
+ .form-field.theme.inside > label,
173
+ .form-field.theme.floating > label
174
+ {
175
+ opacity: 0.6;
176
+ }
177
+
178
+ /* Show label above input when input is not empty or has focus */
179
+ .form-field.theme.floating:has(input:not(:placeholder-shown)) > label,
180
+ .form-field.theme.floating:has(textarea:not(:placeholder-shown)) > label,
181
+ .form-field.theme.floating:has(*:focus) > label
182
+ {
183
+ top: -28px;
184
+ font-size: 0.85rem;
185
+ opacity: 1;
186
+ }
187
+
188
+ /* Hide label inside if not above and input is not empty, or on focus */
189
+ .form-field.theme.inside:has(input:not(:placeholder-shown)) > label,
190
+ .form-field.theme.inside:has(textarea:not(:placeholder-shown)) > label,
191
+ .form-field.theme.inside:has(*:focus) > label
192
+ {
193
+ display: none;
194
+ }
195
+
196
+ /* Hide placeholder when input is NOT focused when label inside */
197
+ .form-field.theme.inside input:not(:focus)::placeholder,
198
+ .form-field.theme.inside textarea:not(:focus)::placeholder
199
+ {
200
+ color: transparent !important;
201
+ }
202
+
203
+ /* initial state: placeholder hidden */
204
+ .form-field.theme.floating input::placeholder,
205
+ .form-field.theme.floating textarea::placeholder
206
+ {
207
+ color: transparent !important;
208
+ }
209
+
210
+ /* On focus, start animation with delay = floating label transition duration (e.g. 0.1s) */
211
+ .form-field.theme.floating input:focus::placeholder,
212
+ .form-field.theme.floating textarea:focus::placeholder
213
+ {
214
+ color: rgba(0,0,0,0.5) !important;
215
+ transition: color 0s linear 0.1s;
216
+ }
217
+
218
+ .form-field.theme > *:disabled ~ b,
219
+ .form-field.theme > *:disabled ~ label,
220
+ .form-field.theme > *:disabled ~ b ~ label
221
+ {
222
+ opacity: 0.5;
223
+ }
224
+
225
+ .form-field.theme.required > label::before
226
+ {
227
+ font-family: 'UI';
228
+ font-size: 10px;
229
+ content: "\e917";
230
+ margin-right: 6px;
231
+ }
232
+
233
+ /* checkbox and radiobutton */
234
+ .form-field.theme > input[type="radio"],
235
+ .form-field.theme > input[type="checkbox"]
236
+ {
237
+ position: absolute;
238
+ left: 0px;
239
+ margin: 0px;
240
+ top: 50%;
241
+ transform: translateY(-50%);
242
+ width: 0px;
243
+ height: 1px;
244
+ opacity: 0 !important;
245
+ font-size: 0px;
246
+ -moz-appearance: none
247
+ }
248
+
249
+ .form-field.theme > input ~ b
250
+ {
251
+ display: block;
252
+ position: relative;
253
+ left: 0px;
254
+ margin: 0px;
255
+ min-width: 24px; /* don't allow to be compressed in flexbox or grid */
256
+ width: 24px;
257
+ height: 24px;
258
+ border-style: solid;
259
+ border-color: transparent;
260
+ }
261
+
262
+ /* transparent with borders */
263
+ .form-field.theme.lucent > input ~ b
264
+ {
265
+ background: transparent;
266
+ border-color: inherit;
267
+ }
268
+
269
+ .form-field.theme > input:checked ~ b::before
270
+ {
271
+ display: inline-block;
272
+ position: absolute;
273
+ top: 50%;
274
+ left: 50%;
275
+ transform: translate(-50%, -50%) rotate(45deg);
276
+ content: '';
277
+ border-width: 0px 3px 3px 0px;
278
+ border-style: solid;
279
+ width: 4px;
280
+ height: 7px;
281
+ border-radius: 0px;
282
+ }
283
+
284
+ .form-field.theme > input[type="checkbox"]:checked ~ b::before
285
+ {
286
+ transform: translate(-50%, -60%) rotate(45deg);
287
+ }
288
+
289
+ .form-field.theme > input[type="radio"]:checked ~ b::before
290
+ {
291
+ width: 0px;
292
+ height: 0px;
293
+ border-width: 4px;
294
+ border-radius: 50%;
295
+ }
296
+
297
+
298
+ .form-field.theme > input ~ b ~ label,
299
+ .form-field.theme.before > input ~ b ~ label,
300
+ .form-field.theme.after > input ~ b ~ label
301
+ {
302
+ position: relative;
303
+ }
304
+
305
+ .form-field.theme.before > input ~ b ~ label
306
+ {
307
+ padding-right: 12px;
308
+ }
309
+
310
+ /* after label is set to bold when checked, so reserve space for bold text so that the container-size won't change when checked */
311
+ .form-field.theme.after > input ~ b ~ label,
312
+ .form-field.theme.before > input ~ b ~ label
313
+ {
314
+ display: inline-block;
315
+ line-height: 28px;
316
+ font-weight: bold;
317
+ font-style: normal;
318
+ opacity: 0;
319
+ user-select: none;
320
+ margin-left: 0px;
321
+ padding-left: 6px;
322
+ padding-right: 12px;
323
+ }
324
+
325
+ .form-field.theme.before > input ~ b ~ label
326
+ {
327
+ padding-left: 0px;
328
+ padding-right: 6px;
329
+ }
330
+
331
+ .form-field.theme.switch.after > input ~ b ~ label
332
+ {
333
+ padding-left: 10px;
334
+ }
335
+
336
+ .form-field.theme.switch.after
337
+ {
338
+ margin-left: 8px; /* reserve some space for box shadow */
339
+ }
340
+
341
+ .form-field.theme.switch.before > input ~ b ~ label
342
+ {
343
+ padding-right: 10px;
344
+ }
345
+
346
+ .form-field.theme.inline.before + .form-field.theme.inline.before
347
+ {
348
+ padding-left: 12px;
349
+ }
350
+
351
+ .form-field.theme.after > input:checked ~ b ~ label,
352
+ .form-field.theme.before > input:checked ~ b ~ label
353
+ {
354
+ opacity: 1;
355
+ }
356
+
357
+ /* set title attribute of label > b */
358
+ .form-field.theme.after > input ~ b::after,
359
+ .form-field.theme.before > input ~ b::after
360
+ {
361
+ display: block;
362
+ white-space: nowrap;
363
+ content: attr(title);
364
+ font-weight: normal;
365
+ position: absolute;
366
+ left: 31px;
367
+ top: 50%;
368
+ transform: translateY(-50%);
369
+ }
370
+
371
+ .form-field.theme.before > input ~ b::after
372
+ {
373
+ left: auto;
374
+ right: 31px;
375
+ }
376
+
377
+ .form-field.theme.after > input:checked ~ b::after,
378
+ .form-field.theme.before > input:checked ~ b::after
379
+ {
380
+ display: none;
381
+ }
382
+
383
+ /* switch */
384
+ .form-field.theme.switch > input[type="checkbox"] ~ b
385
+ {
386
+ display: block;
387
+ position: relative;
388
+ left: 0px;
389
+ width: 35px;
390
+ height: 16px;
391
+ border-radius: 8px;
392
+ }
393
+
394
+ .form-field.theme.switch > input[type="checkbox"] ~ b::before
395
+ {
396
+ content: '';
397
+ font-family: 'ui';
398
+ font-size: 8px;
399
+ display: flex;
400
+ justify-content: center;
401
+ align-items: center;
402
+ position: absolute;
403
+ left: -2px;
404
+ top: 50%;
405
+ transform: translateY(-50%);
406
+ width: 22px;
407
+ height: 22px;
408
+ border-radius: 50%;
409
+ transition: left 0.1s;
410
+ border: 0px;
411
+ line-height: 0;
412
+ }
413
+
414
+ .form-field.theme.switch > input[type="checkbox"]:checked ~ b::before
415
+ {
416
+ content: '\e90b';
417
+ left: 16px;
418
+ }
419
+
420
+
421
+ .form-field.theme.switch > input[type="checkbox"] ~ b::after
422
+ {
423
+ left: 46px;
424
+ top: 50%;
425
+ transform: translateY(-50%);
426
+ }
427
+
428
+ .form-field.theme.before.switch > input[type="checkbox"] ~ b::after
429
+ {
430
+ left: auto;
431
+ right: 46px;
432
+ }
433
+
434
+ .form-field.theme.switch > input[type="checkbox"]:checked ~ b::after
435
+ {
436
+ display: none;
437
+ }
438
+
439
+ .form-field.theme.switch > input ~ b::before
440
+ {
441
+ box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.4);
442
+ }
443
+
444
+ /* tooltip icon */
445
+ .form-field.theme > label > i
446
+ {
447
+ margin-left: 10px;
448
+ transition: opacity 0.2s ease;
449
+ }
450
+
451
+ .form-field.theme.floating > label > i
452
+ {
453
+ opacity: 0;
454
+ pointer-events: none;
455
+ }
456
+
457
+ .form-field.theme.floating:has(input:not(:placeholder-shown)) > label > i,
458
+ .form-field.theme.floating:has(textarea:not(:placeholder-shown)) > label > i,
459
+ .form-field.theme.floating:focus-within > label > i
460
+ {
461
+ opacity: 1;
462
+ pointer-events: auto;
463
+ }
464
+
465
+ .form-field.theme .field-content-wrapper
466
+ {
467
+ flex: 1;
468
+ }