@onetype/framework 2.0.21 → 2.0.24

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 (131) hide show
  1. package/addons/core/assets/back/functions/import.js +24 -0
  2. package/addons/render/pages/front/events/click.js +1 -1
  3. package/addons/render/pages/front/functions/change.js +1 -1
  4. package/docs/architecture.md +58 -10
  5. package/docs/frontend.md +29 -12
  6. package/lib/items/elements/form/button/button.js +106 -0
  7. package/lib/items/elements/form/button/styles/base.css +176 -0
  8. package/lib/items/elements/form/button/styles/sizes.css +78 -0
  9. package/lib/items/elements/form/button/styles/variants.css +421 -0
  10. package/lib/items/elements/form/checkbox/checkbox.js +58 -0
  11. package/lib/items/elements/form/checkbox/styles/base.css +52 -0
  12. package/lib/items/elements/form/checkbox/styles/sizes.css +39 -0
  13. package/lib/items/elements/form/checkbox/styles/variants.css +121 -0
  14. package/lib/items/elements/form/field/field.css +96 -0
  15. package/lib/items/elements/form/field/field.js +40 -0
  16. package/lib/items/elements/form/input/input.css +111 -0
  17. package/lib/items/elements/form/input/input.js +79 -0
  18. package/lib/items/elements/form/input/styles/base.css +26 -0
  19. package/lib/items/elements/form/input/styles/sizes.css +15 -0
  20. package/lib/items/elements/form/input/styles/variants.css +98 -0
  21. package/lib/items/elements/form/radio/radio.js +58 -0
  22. package/lib/items/elements/form/radio/styles/base.css +48 -0
  23. package/lib/items/elements/form/radio/styles/sizes.css +36 -0
  24. package/lib/items/elements/form/radio/styles/variants.css +121 -0
  25. package/lib/items/elements/form/rating/rating.css +95 -0
  26. package/lib/items/elements/form/rating/rating.js +89 -0
  27. package/lib/items/elements/form/section/section.css +129 -0
  28. package/lib/items/elements/form/section/section.js +40 -0
  29. package/lib/items/elements/form/slider/slider.css +244 -0
  30. package/lib/items/elements/form/slider/slider.js +70 -0
  31. package/lib/items/elements/form/textarea/textarea.css +117 -0
  32. package/lib/items/elements/form/textarea/textarea.js +70 -0
  33. package/lib/items/elements/global/card/card.css +57 -0
  34. package/lib/items/elements/global/card/card.js +48 -0
  35. package/lib/items/elements/global/code/code.css +66 -0
  36. package/lib/items/elements/global/code/code.js +40 -0
  37. package/lib/items/elements/global/faq/faq.css +76 -0
  38. package/lib/items/elements/global/faq/faq.js +44 -0
  39. package/lib/items/elements/global/heading/heading.css +106 -0
  40. package/lib/items/elements/global/heading/heading.js +52 -0
  41. package/lib/items/elements/global/markdown/markdown.css +248 -0
  42. package/lib/items/elements/global/markdown/markdown.js +23 -0
  43. package/lib/items/elements/global/notice/notice.css +91 -0
  44. package/lib/items/elements/global/notice/notice.js +35 -0
  45. package/lib/items/elements/global/parameters/params.css +69 -0
  46. package/lib/items/elements/global/parameters/params.js +32 -0
  47. package/lib/items/elements/global/tabs/tabs.css +47 -0
  48. package/lib/items/elements/global/tabs/tabs.js +32 -0
  49. package/lib/items/elements/global/tags/tags.css +42 -0
  50. package/lib/items/elements/global/tags/tags.js +46 -0
  51. package/lib/items/elements/sections/footer/footer.css +205 -0
  52. package/lib/items/elements/sections/footer/footer.js +109 -0
  53. package/lib/items/elements/sections/hero/hero.css +100 -0
  54. package/lib/items/elements/sections/hero/hero.js +54 -0
  55. package/lib/items/elements/sections/navbar/navbar.css +80 -0
  56. package/lib/items/elements/sections/navbar/navbar.js +42 -0
  57. package/lib/items/elements/sections/stats/stats.css +34 -0
  58. package/lib/items/elements/sections/stats/stats.js +74 -0
  59. package/lib/items/elements/status/code/code.css +48 -0
  60. package/lib/items/elements/status/code/code.js +44 -0
  61. package/lib/items/elements/status/empty/empty.css +59 -0
  62. package/lib/items/elements/status/empty/empty.js +43 -0
  63. package/lib/items/elements/status/error/error.css +55 -0
  64. package/lib/items/elements/status/error/error.js +55 -0
  65. package/lib/items/elements/status/loading/loading.css +62 -0
  66. package/lib/items/elements/status/loading/loading.js +31 -0
  67. package/lib/load.js +83 -5
  68. package/lib/src/classes/addon/class.js +1 -1
  69. package/lib/src/classes/addon/mixins/store.js +8 -8
  70. package/lib/src/mixins/assets.js +65 -0
  71. package/lib/src/mixins/data.js +7 -2
  72. package/lib/src/onetype.js +4 -0
  73. package/lib/styles/classes/layout.css +36 -0
  74. package/lib/styles/classes/spacing.css +96 -0
  75. package/lib/styles/queries.css +6 -0
  76. package/lib/styles/reset.css +169 -0
  77. package/lib/styles/variables.css +71 -0
  78. package/package.json +3 -3
  79. package/addons/core/clients/LICENSE.txt +0 -40
  80. package/addons/core/clients/README.md +0 -123
  81. package/addons/core/database/README.md +0 -276
  82. package/addons/render/assets/back/README.md +0 -1
  83. package/addons/render/assets/back/functions/import.js +0 -45
  84. package/addons/render/items/js/#register/addon.js +0 -14
  85. package/addons/render/items/js/functions/count.js +0 -9
  86. package/addons/render/items/js/functions/get.js +0 -34
  87. package/addons/render/items/js/functions/groups.js +0 -16
  88. package/addons/render/items/js/functions/render.js +0 -44
  89. package/addons/render/items/js/item/catch/add.js +0 -18
  90. package/test/front/test.js +0 -56
  91. package/test.js +0 -55
  92. /package/addons/{render → core}/assets/back/addon.js +0 -0
  93. /package/addons/{render → core}/assets/back/functions/css.js +0 -0
  94. /package/addons/{render → core}/assets/back/functions/js.js +0 -0
  95. /package/addons/{render → core}/assets/back/functions/scan/directories.js +0 -0
  96. /package/addons/{render → core}/assets/back/functions/scan/files.js +0 -0
  97. /package/addons/{render → core}/assets/back/functions/utils/read.js +0 -0
  98. /package/addons/{render → core}/assets/back/functions/utils/transform.js +0 -0
  99. /package/addons/{render → core}/assets/back/items/commands/css.js +0 -0
  100. /package/addons/{render → core}/assets/back/items/commands/js.js +0 -0
  101. /package/addons/{render → core}/assets/back/items/html/css.js +0 -0
  102. /package/addons/{render → core}/assets/back/items/html/js.js +0 -0
  103. /package/addons/{render → core}/assets/back/load.js +0 -0
  104. /package/addons/core/database/front/{#register/addon.js → addon.js} +0 -0
  105. /package/addons/float/modals/front/js/{#register/addon.js → addon.js} +0 -0
  106. /package/addons/float/overlays/front/js/{#register/addon.js → addon.js} +0 -0
  107. /package/addons/float/popups/js/{#register/addon.js → addon.js} +0 -0
  108. /package/addons/float/toasts/{#register/addon.js → addon.js} +0 -0
  109. /package/addons/float/tooltips/{#register/addon.js → addon.js} +0 -0
  110. /package/addons/render/transforms/{front/js/#register/addon.js → addon.js} +0 -0
  111. /package/addons/render/transforms/{front/js/functions → functions}/load/assets.js +0 -0
  112. /package/addons/render/transforms/{front/js/items → items}/directives/transform.js +0 -0
  113. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/accordion}/accordion.js +0 -0
  114. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/area.js +0 -0
  115. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/bar.js +0 -0
  116. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/bubble.js +0 -0
  117. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/doughnut.js +0 -0
  118. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/line.js +0 -0
  119. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/pie.js +0 -0
  120. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/radar.js +0 -0
  121. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms}/chart/scatter.js +0 -0
  122. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/codeflask}/codeflask.js +0 -0
  123. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/codemirror}/codemirror.js +0 -0
  124. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/comparison}/comparison.js +0 -0
  125. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/heatmap}/heatmap.js +0 -0
  126. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/interact}/interact.js +0 -0
  127. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/particles}/particles.js +0 -0
  128. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/sparkline}/sparkline.js +0 -0
  129. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/swiper}/swiper.js +0 -0
  130. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/tabs}/tabs.js +0 -0
  131. /package/{addons/render/transforms/front/js/items/self → lib/items/transforms/typed}/typed.js +0 -0
@@ -0,0 +1,421 @@
1
+ /* ============================================
2
+ SOLID VARIANTS - Bold, confident, primary actions
3
+ ============================================ */
4
+
5
+ /* Brand */
6
+ .e-64e877b > .holder[variant*="brand"]
7
+ {
8
+ background: var(--ot-brand);
9
+ border-color: var(--ot-brand);
10
+ color: white;
11
+ box-shadow:
12
+ 0 1px 2px rgba(0, 0, 0, 0.1),
13
+ 0 2px 8px var(--ot-brand-opacity);
14
+ }
15
+
16
+ .e-64e877b > .holder[variant*="brand"] > .content > i,
17
+ .e-64e877b > .holder[variant*="brand"] > .spinner > i
18
+ {
19
+ color: white;
20
+ }
21
+
22
+ .e-64e877b > .holder[variant*="brand"]:hover
23
+ {
24
+ background: var(--ot-brand-hover);
25
+ border-color: var(--ot-brand-hover);
26
+ box-shadow:
27
+ 0 4px 12px var(--ot-brand-opacity),
28
+ 0 2px 4px rgba(0, 0, 0, 0.1);
29
+ }
30
+
31
+ .e-64e877b > .holder[variant*="brand"]:focus-visible
32
+ {
33
+ box-shadow:
34
+ 0 0 0 2px var(--ot-bg-1),
35
+ 0 0 0 4px var(--ot-brand);
36
+ }
37
+
38
+ /* Blue */
39
+ .e-64e877b > .holder[variant*="blue"]:not([variant*="soft-blue"]):not([variant*="outline-blue"])
40
+ {
41
+ background: var(--ot-blue);
42
+ border-color: var(--ot-blue);
43
+ color: white;
44
+ box-shadow:
45
+ 0 1px 2px rgba(0, 0, 0, 0.1),
46
+ 0 2px 8px var(--ot-blue-opacity);
47
+ }
48
+
49
+ .e-64e877b > .holder[variant*="blue"]:not([variant*="soft-blue"]):not([variant*="outline-blue"]) > .content > i,
50
+ .e-64e877b > .holder[variant*="blue"]:not([variant*="soft-blue"]):not([variant*="outline-blue"]) > .spinner > i
51
+ {
52
+ color: white;
53
+ }
54
+
55
+ .e-64e877b > .holder[variant*="blue"]:not([variant*="soft-blue"]):not([variant*="outline-blue"]):hover
56
+ {
57
+ background: var(--ot-blue-hover);
58
+ border-color: var(--ot-blue-hover);
59
+ box-shadow:
60
+ 0 4px 12px var(--ot-blue-opacity),
61
+ 0 2px 4px rgba(0, 0, 0, 0.1);
62
+ }
63
+
64
+ .e-64e877b > .holder[variant*="blue"]:focus-visible
65
+ {
66
+ box-shadow:
67
+ 0 0 0 2px var(--ot-bg-1),
68
+ 0 0 0 4px var(--ot-blue);
69
+ }
70
+
71
+ /* Red */
72
+ .e-64e877b > .holder[variant*="red"]:not([variant*="soft-red"]):not([variant*="outline-red"])
73
+ {
74
+ background: var(--ot-red);
75
+ border-color: var(--ot-red);
76
+ color: white;
77
+ box-shadow:
78
+ 0 1px 2px rgba(0, 0, 0, 0.1),
79
+ 0 2px 8px var(--ot-red-opacity);
80
+ }
81
+
82
+ .e-64e877b > .holder[variant*="red"]:not([variant*="soft-red"]):not([variant*="outline-red"]) > .content > i,
83
+ .e-64e877b > .holder[variant*="red"]:not([variant*="soft-red"]):not([variant*="outline-red"]) > .spinner > i
84
+ {
85
+ color: white;
86
+ }
87
+
88
+ .e-64e877b > .holder[variant*="red"]:not([variant*="soft-red"]):not([variant*="outline-red"]):hover
89
+ {
90
+ background: var(--ot-red-hover);
91
+ border-color: var(--ot-red-hover);
92
+ box-shadow:
93
+ 0 4px 12px var(--ot-red-opacity),
94
+ 0 2px 4px rgba(0, 0, 0, 0.1);
95
+ }
96
+
97
+ .e-64e877b > .holder[variant*="red"]:focus-visible
98
+ {
99
+ box-shadow:
100
+ 0 0 0 2px var(--ot-bg-1),
101
+ 0 0 0 4px var(--ot-red);
102
+ }
103
+
104
+ /* Orange */
105
+ .e-64e877b > .holder[variant*="orange"]:not([variant*="soft-orange"]):not([variant*="outline-orange"])
106
+ {
107
+ background: var(--ot-orange);
108
+ border-color: var(--ot-orange);
109
+ color: white;
110
+ box-shadow:
111
+ 0 1px 2px rgba(0, 0, 0, 0.1),
112
+ 0 2px 8px var(--ot-orange-opacity);
113
+ }
114
+
115
+ .e-64e877b > .holder[variant*="orange"]:not([variant*="soft-orange"]):not([variant*="outline-orange"]) > .content > i,
116
+ .e-64e877b > .holder[variant*="orange"]:not([variant*="soft-orange"]):not([variant*="outline-orange"]) > .spinner > i
117
+ {
118
+ color: white;
119
+ }
120
+
121
+ .e-64e877b > .holder[variant*="orange"]:not([variant*="soft-orange"]):not([variant*="outline-orange"]):hover
122
+ {
123
+ background: var(--ot-orange-hover);
124
+ border-color: var(--ot-orange-hover);
125
+ box-shadow:
126
+ 0 4px 12px var(--ot-orange-opacity),
127
+ 0 2px 4px rgba(0, 0, 0, 0.1);
128
+ }
129
+
130
+ .e-64e877b > .holder[variant*="orange"]:focus-visible
131
+ {
132
+ box-shadow:
133
+ 0 0 0 2px var(--ot-bg-1),
134
+ 0 0 0 4px var(--ot-orange);
135
+ }
136
+
137
+ /* Green */
138
+ .e-64e877b > .holder[variant*="green"]:not([variant*="soft-green"]):not([variant*="outline-green"])
139
+ {
140
+ background: var(--ot-green);
141
+ border-color: var(--ot-green);
142
+ color: white;
143
+ box-shadow:
144
+ 0 1px 2px rgba(0, 0, 0, 0.1),
145
+ 0 2px 8px var(--ot-green-opacity);
146
+ }
147
+
148
+ .e-64e877b > .holder[variant*="green"]:not([variant*="soft-green"]):not([variant*="outline-green"]) > .content > i,
149
+ .e-64e877b > .holder[variant*="green"]:not([variant*="soft-green"]):not([variant*="outline-green"]) > .spinner > i
150
+ {
151
+ color: white;
152
+ }
153
+
154
+ .e-64e877b > .holder[variant*="green"]:not([variant*="soft-green"]):not([variant*="outline-green"]):hover
155
+ {
156
+ background: var(--ot-green-hover);
157
+ border-color: var(--ot-green-hover);
158
+ box-shadow:
159
+ 0 4px 12px var(--ot-green-opacity),
160
+ 0 2px 4px rgba(0, 0, 0, 0.1);
161
+ }
162
+
163
+ .e-64e877b > .holder[variant*="green"]:focus-visible
164
+ {
165
+ box-shadow:
166
+ 0 0 0 2px var(--ot-bg-1),
167
+ 0 0 0 4px var(--ot-green);
168
+ }
169
+
170
+
171
+ /* ============================================
172
+ SOFT VARIANTS - Subtle, secondary actions
173
+ ============================================ */
174
+
175
+ .e-64e877b > .holder[variant*="soft-brand"]
176
+ {
177
+ background: var(--ot-brand-opacity);
178
+ border-color: transparent;
179
+ color: var(--ot-brand);
180
+ }
181
+
182
+ .e-64e877b > .holder[variant*="soft-brand"]:hover
183
+ {
184
+ background: var(--ot-brand);
185
+ color: white;
186
+ }
187
+
188
+ .e-64e877b > .holder[variant*="soft-blue"]
189
+ {
190
+ background: var(--ot-blue-opacity);
191
+ border-color: transparent;
192
+ color: var(--ot-blue);
193
+ }
194
+
195
+ .e-64e877b > .holder[variant*="soft-blue"]:hover
196
+ {
197
+ background: var(--ot-blue);
198
+ color: white;
199
+ }
200
+
201
+ .e-64e877b > .holder[variant*="soft-red"]
202
+ {
203
+ background: var(--ot-red-opacity);
204
+ border-color: transparent;
205
+ color: var(--ot-red);
206
+ }
207
+
208
+ .e-64e877b > .holder[variant*="soft-red"]:hover
209
+ {
210
+ background: var(--ot-red);
211
+ color: white;
212
+ }
213
+
214
+ .e-64e877b > .holder[variant*="soft-orange"]
215
+ {
216
+ background: var(--ot-orange-opacity);
217
+ border-color: transparent;
218
+ color: var(--ot-orange);
219
+ }
220
+
221
+ .e-64e877b > .holder[variant*="soft-orange"]:hover
222
+ {
223
+ background: var(--ot-orange);
224
+ color: white;
225
+ }
226
+
227
+ .e-64e877b > .holder[variant*="soft-green"]
228
+ {
229
+ background: var(--ot-green-opacity);
230
+ border-color: transparent;
231
+ color: var(--ot-green);
232
+ }
233
+
234
+ .e-64e877b > .holder[variant*="soft-green"]:hover
235
+ {
236
+ background: var(--ot-green);
237
+ color: white;
238
+ }
239
+
240
+
241
+ /* ============================================
242
+ OUTLINE VARIANTS - Bordered, tertiary actions
243
+ ============================================ */
244
+
245
+ .e-64e877b > .holder[variant*="outline-brand"]
246
+ {
247
+ background: transparent;
248
+ border-color: var(--ot-brand);
249
+ color: var(--ot-brand);
250
+ }
251
+
252
+ .e-64e877b > .holder[variant*="outline-brand"]:hover
253
+ {
254
+ background: var(--ot-brand-opacity);
255
+ }
256
+
257
+ .e-64e877b > .holder[variant*="outline-blue"]
258
+ {
259
+ background: transparent;
260
+ border-color: var(--ot-blue);
261
+ color: var(--ot-blue);
262
+ }
263
+
264
+ .e-64e877b > .holder[variant*="outline-blue"]:hover
265
+ {
266
+ background: var(--ot-blue-opacity);
267
+ }
268
+
269
+ .e-64e877b > .holder[variant*="outline-red"]
270
+ {
271
+ background: transparent;
272
+ border-color: var(--ot-red);
273
+ color: var(--ot-red);
274
+ }
275
+
276
+ .e-64e877b > .holder[variant*="outline-red"]:hover
277
+ {
278
+ background: var(--ot-red-opacity);
279
+ }
280
+
281
+ .e-64e877b > .holder[variant*="outline-orange"]
282
+ {
283
+ background: transparent;
284
+ border-color: var(--ot-orange);
285
+ color: var(--ot-orange);
286
+ }
287
+
288
+ .e-64e877b > .holder[variant*="outline-orange"]:hover
289
+ {
290
+ background: var(--ot-orange-opacity);
291
+ }
292
+
293
+ .e-64e877b > .holder[variant*="outline-green"]
294
+ {
295
+ background: transparent;
296
+ border-color: var(--ot-green);
297
+ color: var(--ot-green);
298
+ }
299
+
300
+ .e-64e877b > .holder[variant*="outline-green"]:hover
301
+ {
302
+ background: var(--ot-green-opacity);
303
+ }
304
+
305
+
306
+ /* ============================================
307
+ BACKGROUND VARIANTS - Neutral surface buttons
308
+ ============================================ */
309
+
310
+ .e-64e877b > .holder[variant*="bg-1"]
311
+ {
312
+ background: var(--ot-bg-1);
313
+ border-color: var(--ot-bg-1-border);
314
+ color: var(--ot-text-1);
315
+ }
316
+
317
+ .e-64e877b > .holder[variant*="bg-1"]:hover
318
+ {
319
+ background: var(--ot-bg-1-hover);
320
+ border-color: var(--ot-bg-2-border);
321
+ }
322
+
323
+ .e-64e877b > .holder[variant*="bg-2"]
324
+ {
325
+ background: var(--ot-bg-2);
326
+ border-color: var(--ot-bg-2-border);
327
+ color: var(--ot-text-1);
328
+ }
329
+
330
+ .e-64e877b > .holder[variant*="bg-2"]:hover
331
+ {
332
+ background: var(--ot-bg-2-hover);
333
+ border-color: var(--ot-bg-3-border);
334
+ }
335
+
336
+ .e-64e877b > .holder[variant*="bg-3"]
337
+ {
338
+ background: var(--ot-bg-3);
339
+ border-color: var(--ot-bg-3-border);
340
+ color: var(--ot-text-1);
341
+ }
342
+
343
+ .e-64e877b > .holder[variant*="bg-3"]:hover
344
+ {
345
+ background: var(--ot-bg-3-hover);
346
+ border-color: var(--ot-bg-4-border);
347
+ }
348
+
349
+ .e-64e877b > .holder[variant*="bg-4"]
350
+ {
351
+ background: var(--ot-bg-4);
352
+ border-color: var(--ot-bg-4-border);
353
+ color: var(--ot-text-1);
354
+ }
355
+
356
+ .e-64e877b > .holder[variant*="bg-4"]:hover
357
+ {
358
+ background: var(--ot-bg-4-hover);
359
+ }
360
+
361
+
362
+ /* ============================================
363
+ SPECIAL VARIANTS
364
+ ============================================ */
365
+
366
+ /* Ghost - minimal, text-like */
367
+ .e-64e877b > .holder[variant*="ghost"]
368
+ {
369
+ background: transparent;
370
+ border-color: transparent;
371
+ color: var(--ot-text-2);
372
+ }
373
+
374
+ .e-64e877b > .holder[variant*="ghost"]:hover
375
+ {
376
+ background: var(--ot-bg-2);
377
+ color: var(--ot-text-1);
378
+ }
379
+
380
+ /* Border - neutral outlined */
381
+ .e-64e877b > .holder[variant*="border"]
382
+ {
383
+ background: transparent;
384
+ border-color: var(--ot-bg-1-border);
385
+ color: var(--ot-text-1);
386
+ }
387
+
388
+ .e-64e877b > .holder[variant*="border"]:hover
389
+ {
390
+ background: var(--ot-bg-2);
391
+ border-color: var(--ot-bg-3-border);
392
+ }
393
+
394
+ /* Transparent - no background, subtle hover */
395
+ .e-64e877b > .holder[variant*="transparent"]
396
+ {
397
+ background: transparent;
398
+ border-color: transparent;
399
+ color: var(--ot-text-1);
400
+ }
401
+
402
+ .e-64e877b > .holder[variant*="transparent"]:hover
403
+ {
404
+ background: var(--ot-bg-2-opacity);
405
+ }
406
+
407
+ /* Glass - frosted glass effect */
408
+ .e-64e877b > .holder[variant*="glass"]
409
+ {
410
+ background: var(--ot-bg-1-opacity);
411
+ border-color: var(--ot-bg-2-border);
412
+ color: var(--ot-text-1);
413
+ backdrop-filter: blur(12px);
414
+ -webkit-backdrop-filter: blur(12px);
415
+ }
416
+
417
+ .e-64e877b > .holder[variant*="glass"]:hover
418
+ {
419
+ background: var(--ot-bg-2-opacity);
420
+ border-color: var(--ot-bg-3-border);
421
+ }
@@ -0,0 +1,58 @@
1
+ onetype.AddonReady('elements', (elements) =>
2
+ {
3
+ elements.ItemAdd({
4
+ id: 'form-checkbox',
5
+ icon: 'check_box',
6
+ name: 'Checkbox',
7
+ description: 'Checkbox input with custom styling, indeterminate state support, and variant options for different UI themes.',
8
+ category: 'Form',
9
+ author: 'OneType',
10
+ config: {
11
+ name: {
12
+ type: 'string'
13
+ },
14
+ value: {
15
+ type: 'string'
16
+ },
17
+ checked: {
18
+ type: 'boolean'
19
+ },
20
+ disabled: {
21
+ type: 'boolean'
22
+ },
23
+ variant: {
24
+ type: 'array',
25
+ value: ['bg-1'],
26
+ options: ['transparent', 'border', 'bg-1', 'bg-2', 'bg-3', 'bg-4']
27
+ },
28
+ size: {
29
+ type: 'string',
30
+ value: 'm',
31
+ options: ['s', 'm', 'l']
32
+ },
33
+ onChange: {
34
+ type: 'function'
35
+ },
36
+ onClick: {
37
+ type: 'function'
38
+ }
39
+ },
40
+ render: function()
41
+ {
42
+ return `
43
+ <div class="holder" :variant="variant.join(' ')" :size="size">
44
+ <input
45
+ type="checkbox"
46
+ :name="name"
47
+ :value="value"
48
+ :checked="checked"
49
+ :disabled="disabled"
50
+ ot-change="onChange"
51
+ ot-click="onClick"
52
+ />
53
+ <span class="checkbox-mark"></span>
54
+ </div>
55
+ `;
56
+ }
57
+ });
58
+ });
@@ -0,0 +1,52 @@
1
+ .e-f249baa > .holder
2
+ {
3
+ position: relative;
4
+ display: inline-flex;
5
+ align-items: center;
6
+ cursor: pointer;
7
+ }
8
+
9
+ .e-f249baa input[type="checkbox"]
10
+ {
11
+ position: absolute;
12
+ opacity: 0;
13
+ cursor: pointer;
14
+ width: 100%;
15
+ height: 100%;
16
+ z-index: 1;
17
+ }
18
+
19
+ .e-f249baa .checkbox-mark
20
+ {
21
+ display: block;
22
+ border-radius: var(--ot-radius-s);
23
+ border: 1px solid;
24
+ transition: all 0.2s ease;
25
+ position: relative;
26
+ }
27
+
28
+ .e-f249baa .checkbox-mark::after
29
+ {
30
+ content: '';
31
+ position: absolute;
32
+ top: 50%;
33
+ left: 50%;
34
+ transform: translate(-50%, -50%) scale(0);
35
+ width: 4px;
36
+ height: 8px;
37
+ border: solid;
38
+ border-width: 0 2px 2px 0;
39
+ transform: translate(-50%, -60%) rotate(45deg) scale(0);
40
+ transition: all 0.2s ease;
41
+ }
42
+
43
+ .e-f249baa input[type="checkbox"]:checked ~ .checkbox-mark::after
44
+ {
45
+ transform: translate(-50%, -60%) rotate(45deg) scale(1);
46
+ }
47
+
48
+ .e-f249baa input[type="checkbox"]:disabled ~ .checkbox-mark
49
+ {
50
+ opacity: 0.5;
51
+ cursor: not-allowed;
52
+ }
@@ -0,0 +1,39 @@
1
+ /* Sizes */
2
+ .e-f249baa > .holder[size="s"] .checkbox-mark
3
+ {
4
+ width: 16px;
5
+ height: 16px;
6
+ }
7
+
8
+ .e-f249baa > .holder[size="s"] .checkbox-mark::after
9
+ {
10
+ width: 3px;
11
+ height: 6px;
12
+ border-width: 0 1.5px 1.5px 0;
13
+ }
14
+
15
+ .e-f249baa > .holder[size="m"] .checkbox-mark
16
+ {
17
+ width: 20px;
18
+ height: 20px;
19
+ }
20
+
21
+ .e-f249baa > .holder[size="m"] .checkbox-mark::after
22
+ {
23
+ width: 4px;
24
+ height: 8px;
25
+ border-width: 0 2px 2px 0;
26
+ }
27
+
28
+ .e-f249baa > .holder[size="l"] .checkbox-mark
29
+ {
30
+ width: 24px;
31
+ height: 24px;
32
+ }
33
+
34
+ .e-f249baa > .holder[size="l"] .checkbox-mark::after
35
+ {
36
+ width: 5px;
37
+ height: 10px;
38
+ border-width: 0 2.5px 2.5px 0;
39
+ }
@@ -0,0 +1,121 @@
1
+ /* Variants */
2
+ .e-f249baa > .holder[variant="transparent"] .checkbox-mark
3
+ {
4
+ background: transparent;
5
+ border-color: transparent;
6
+ }
7
+
8
+ .e-f249baa > .holder[variant="transparent"] .checkbox-mark::after
9
+ {
10
+ border-color: var(--ot-text-1);
11
+ }
12
+
13
+ .e-f249baa > .holder[variant="border"] .checkbox-mark
14
+ {
15
+ background: transparent;
16
+ border-color: var(--ot-bg-1-border);
17
+ }
18
+
19
+ .e-f249baa > .holder[variant="border"]:hover .checkbox-mark
20
+ {
21
+ border-color: var(--ot-bg-2-border);
22
+ }
23
+
24
+ .e-f249baa > .holder[variant="border"] input[type="checkbox"]:checked ~ .checkbox-mark
25
+ {
26
+ border-color: var(--ot-brand);
27
+ background: var(--ot-brand);
28
+ }
29
+
30
+ .e-f249baa > .holder[variant="border"] .checkbox-mark::after
31
+ {
32
+ border-color: white;
33
+ }
34
+
35
+ .e-f249baa > .holder[variant="bg-1"] .checkbox-mark
36
+ {
37
+ background: var(--ot-bg-1);
38
+ border-color: var(--ot-bg-1-border);
39
+ }
40
+
41
+ .e-f249baa > .holder[variant="bg-1"]:hover .checkbox-mark
42
+ {
43
+ background: var(--ot-bg-1-hover);
44
+ }
45
+
46
+ .e-f249baa > .holder[variant="bg-1"] input[type="checkbox"]:checked ~ .checkbox-mark
47
+ {
48
+ border-color: var(--ot-brand);
49
+ background: var(--ot-brand);
50
+ }
51
+
52
+ .e-f249baa > .holder[variant="bg-1"] .checkbox-mark::after
53
+ {
54
+ border-color: white;
55
+ }
56
+
57
+ .e-f249baa > .holder[variant="bg-2"] .checkbox-mark
58
+ {
59
+ background: var(--ot-bg-2);
60
+ border-color: var(--ot-bg-2-border);
61
+ }
62
+
63
+ .e-f249baa > .holder[variant="bg-2"]:hover .checkbox-mark
64
+ {
65
+ background: var(--ot-bg-2-hover);
66
+ }
67
+
68
+ .e-f249baa > .holder[variant="bg-2"] input[type="checkbox"]:checked ~ .checkbox-mark
69
+ {
70
+ border-color: var(--ot-brand);
71
+ background: var(--ot-brand);
72
+ }
73
+
74
+ .e-f249baa > .holder[variant="bg-2"] .checkbox-mark::after
75
+ {
76
+ border-color: white;
77
+ }
78
+
79
+ .e-f249baa > .holder[variant="bg-3"] .checkbox-mark
80
+ {
81
+ background: var(--ot-bg-3);
82
+ border-color: var(--ot-bg-3-border);
83
+ }
84
+
85
+ .e-f249baa > .holder[variant="bg-3"]:hover .checkbox-mark
86
+ {
87
+ background: var(--ot-bg-3-hover);
88
+ }
89
+
90
+ .e-f249baa > .holder[variant="bg-3"] input[type="checkbox"]:checked ~ .checkbox-mark
91
+ {
92
+ border-color: var(--ot-brand);
93
+ background: var(--ot-brand);
94
+ }
95
+
96
+ .e-f249baa > .holder[variant="bg-3"] .checkbox-mark::after
97
+ {
98
+ border-color: white;
99
+ }
100
+
101
+ .e-f249baa > .holder[variant="bg-4"] .checkbox-mark
102
+ {
103
+ background: var(--ot-bg-4);
104
+ border-color: var(--ot-bg-4-border);
105
+ }
106
+
107
+ .e-f249baa > .holder[variant="bg-4"]:hover .checkbox-mark
108
+ {
109
+ background: var(--ot-bg-4-hover);
110
+ }
111
+
112
+ .e-f249baa > .holder[variant="bg-4"] input[type="checkbox"]:checked ~ .checkbox-mark
113
+ {
114
+ border-color: var(--ot-brand);
115
+ background: var(--ot-brand);
116
+ }
117
+
118
+ .e-f249baa > .holder[variant="bg-4"] .checkbox-mark::after
119
+ {
120
+ border-color: white;
121
+ }