@onetype/framework 2.0.52 → 2.0.54

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 (154) hide show
  1. package/addons/core/database/back/items/commands/create.js +1 -1
  2. package/addons/core/database/back/items/commands/delete.js +3 -3
  3. package/addons/core/database/back/items/commands/update.js +1 -1
  4. package/addons/float/popup/css/popup.css +2 -2
  5. package/addons/render/directives/front/functions/process.js +3 -1
  6. package/addons/render/directives/front/items/self/160-slot.js +9 -1
  7. package/addons/render/directives/front/items/self/660-form.js +19 -13
  8. package/addons/render/editor/addon.js +13 -0
  9. package/addons/render/editor/functions/block/add.js +57 -0
  10. package/addons/render/editor/functions/block/delete.js +32 -0
  11. package/addons/render/editor/functions/block/find.js +30 -0
  12. package/addons/render/editor/functions/render/block.js +114 -0
  13. package/addons/render/editor/functions/render/blocks.js +31 -0
  14. package/addons/render/editor/items/elements/editor.js +69 -0
  15. package/addons/render/editor/items/self/paragraph.js +21 -0
  16. package/addons/render/editor/styles/editor.css +252 -0
  17. package/addons/render/elements/front/functions/types/colors/badge.js +19 -0
  18. package/addons/render/elements/front/functions/types/colors/status.js +24 -0
  19. package/addons/render/elements/front/functions/types/escape.js +8 -0
  20. package/addons/render/elements/front/functions/types/format/currency.js +16 -0
  21. package/addons/render/elements/front/functions/types/format/date.js +16 -0
  22. package/addons/render/elements/front/functions/types/format/number.js +24 -0
  23. package/addons/render/elements/front/functions/types/format/timeago.js +43 -0
  24. package/addons/render/elements/front/functions/types/render/avatar.js +10 -0
  25. package/addons/render/elements/front/functions/types/render/badge.js +17 -0
  26. package/addons/render/elements/front/functions/types/render/boolean.js +8 -0
  27. package/addons/render/elements/front/functions/types/render/chip.js +6 -0
  28. package/addons/render/elements/front/functions/types/render/currency.js +7 -0
  29. package/addons/render/elements/front/functions/types/render/date.js +6 -0
  30. package/addons/render/elements/front/functions/types/render/description.js +12 -0
  31. package/addons/render/elements/front/functions/types/render/group.js +11 -0
  32. package/addons/render/elements/front/functions/types/render/icon.js +8 -0
  33. package/addons/render/elements/front/functions/types/render/image.js +9 -0
  34. package/addons/render/elements/front/functions/types/render/link.js +8 -0
  35. package/addons/render/elements/front/functions/types/render/media.js +16 -0
  36. package/addons/render/elements/front/functions/types/render/metric.js +13 -0
  37. package/addons/render/elements/front/functions/types/render/number.js +6 -0
  38. package/addons/render/elements/front/functions/types/render/progress.js +13 -0
  39. package/addons/render/elements/front/functions/types/render/status.js +12 -0
  40. package/addons/render/elements/front/functions/types/render/tag.js +6 -0
  41. package/addons/render/elements/front/functions/types/render/tags.js +11 -0
  42. package/addons/render/elements/front/functions/types/render/text.js +8 -0
  43. package/addons/render/elements/front/functions/types/render/timeago.js +6 -0
  44. package/addons/render/elements/front/functions/types/render.js +16 -0
  45. package/addons/render/elements/front/items/directives/element.js +8 -3
  46. package/addons/render/elements/front/items/self/cards/info/info.css +499 -0
  47. package/addons/render/elements/front/items/self/cards/info/info.js +224 -0
  48. package/addons/render/elements/front/items/self/cards/item/item.css +614 -0
  49. package/addons/render/elements/front/items/self/cards/item/item.js +200 -0
  50. package/addons/render/elements/front/items/self/cards/pricing/pricing.css +318 -46
  51. package/addons/render/elements/front/items/self/cards/pricing/pricing.js +81 -30
  52. package/addons/render/elements/front/items/self/cards/profile/profile.css +446 -0
  53. package/addons/render/elements/front/items/self/cards/profile/profile.js +186 -0
  54. package/addons/render/elements/front/items/self/cards/share/share.css +445 -0
  55. package/addons/render/elements/front/items/self/cards/share/share.js +316 -0
  56. package/addons/render/elements/front/items/self/cards/stat/stat.css +356 -0
  57. package/addons/render/elements/front/items/self/cards/stat/stat.js +146 -0
  58. package/addons/render/elements/front/items/self/charts/bar/bar.css +263 -0
  59. package/addons/render/elements/front/items/self/charts/bar/bar.js +156 -0
  60. package/addons/render/elements/front/items/self/charts/donut/donut.css +222 -0
  61. package/addons/render/elements/front/items/self/charts/donut/donut.js +164 -0
  62. package/addons/render/elements/front/items/self/charts/line/line.css +229 -0
  63. package/addons/render/elements/front/items/self/charts/line/line.js +249 -0
  64. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.css +102 -0
  65. package/addons/render/elements/front/items/self/charts/sparkline/sparkline.js +164 -0
  66. package/addons/render/elements/front/items/self/core/builder/builder.css +71 -116
  67. package/addons/render/elements/front/items/self/core/builder/builder.js +212 -127
  68. package/addons/render/elements/front/items/self/core/repeater/repeater.css +338 -71
  69. package/addons/render/elements/front/items/self/core/repeater/repeater.js +191 -44
  70. package/addons/render/elements/front/items/self/data/filters/filters.css +541 -0
  71. package/addons/render/elements/front/items/self/data/filters/filters.js +504 -0
  72. package/addons/render/elements/front/items/self/data/table/table.css +588 -0
  73. package/addons/render/elements/front/items/self/data/table/table.js +589 -0
  74. package/addons/render/elements/front/items/self/form/button/button.css +430 -103
  75. package/addons/render/elements/front/items/self/form/button/button.js +109 -101
  76. package/addons/render/elements/front/items/self/form/checkbox/checkbox.css +356 -39
  77. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +109 -75
  78. package/addons/render/elements/front/items/self/form/color/color.css +255 -61
  79. package/addons/render/elements/front/items/self/form/color/color.js +135 -41
  80. package/addons/render/elements/front/items/self/form/date/date.css +289 -38
  81. package/addons/render/elements/front/items/self/form/date/date.js +108 -24
  82. package/addons/render/elements/front/items/self/form/editor/editor.css +447 -0
  83. package/addons/render/elements/front/items/self/form/editor/editor.js +794 -0
  84. package/addons/render/elements/front/items/self/form/field/field.css +160 -29
  85. package/addons/render/elements/front/items/self/form/field/field.js +36 -16
  86. package/addons/render/elements/front/items/self/form/input/input.css +272 -32
  87. package/addons/render/elements/front/items/self/form/input/input.js +324 -124
  88. package/addons/render/elements/front/items/self/form/radio/radio.css +310 -45
  89. package/addons/render/elements/front/items/self/form/radio/radio.js +99 -80
  90. package/addons/render/elements/front/items/self/form/rating/rating.css +234 -57
  91. package/addons/render/elements/front/items/self/form/rating/rating.js +216 -86
  92. package/addons/render/elements/front/items/self/form/section/section.css +247 -32
  93. package/addons/render/elements/front/items/self/form/section/section.js +53 -16
  94. package/addons/render/elements/front/items/self/form/select/select.css +362 -64
  95. package/addons/render/elements/front/items/self/form/select/select.js +156 -30
  96. package/addons/render/elements/front/items/self/form/slider/slider.css +331 -123
  97. package/addons/render/elements/front/items/self/form/slider/slider.js +124 -26
  98. package/addons/render/elements/front/items/self/form/tags/tags.css +328 -53
  99. package/addons/render/elements/front/items/self/form/tags/tags.js +155 -28
  100. package/addons/render/elements/front/items/self/form/textarea/textarea.css +128 -27
  101. package/addons/render/elements/front/items/self/form/textarea/textarea.js +172 -113
  102. package/addons/render/elements/front/items/self/form/toggle/toggle.css +239 -39
  103. package/addons/render/elements/front/items/self/form/toggle/toggle.js +32 -17
  104. package/addons/render/elements/front/items/self/form/transfer/transfer.css +377 -0
  105. package/addons/render/elements/front/items/self/form/transfer/transfer.js +453 -0
  106. package/addons/render/elements/front/items/self/form/upload/upload.css +408 -0
  107. package/addons/render/elements/front/items/self/form/upload/upload.js +469 -0
  108. package/addons/render/elements/front/items/self/global/accordion/accordion.css +377 -0
  109. package/addons/render/elements/front/items/self/global/accordion/accordion.js +135 -0
  110. package/addons/render/elements/front/items/self/global/code/code.css +207 -44
  111. package/addons/render/elements/front/items/self/global/code/code.js +327 -19
  112. package/addons/render/elements/front/items/self/global/gallery/gallery.css +521 -0
  113. package/addons/render/elements/front/items/self/global/gallery/gallery.js +291 -0
  114. package/addons/render/elements/front/items/self/global/heading/heading.css +151 -49
  115. package/addons/render/elements/front/items/self/global/heading/heading.js +30 -15
  116. package/addons/render/elements/front/items/self/global/markdown/markdown.css +284 -135
  117. package/addons/render/elements/front/items/self/global/markdown/markdown.js +35 -5
  118. package/addons/render/elements/front/items/self/global/menu/menu.css +311 -56
  119. package/addons/render/elements/front/items/self/global/menu/menu.js +95 -47
  120. package/addons/render/elements/front/items/self/global/notice/notice.css +263 -23
  121. package/addons/render/elements/front/items/self/global/notice/notice.js +51 -11
  122. package/addons/render/elements/front/items/self/global/parameters/parameters.css +276 -33
  123. package/addons/render/elements/front/items/self/global/parameters/parameters.js +86 -16
  124. package/addons/render/elements/front/items/self/global/tags/tags.css +215 -29
  125. package/addons/render/elements/front/items/self/global/tags/tags.js +91 -17
  126. package/addons/render/elements/front/items/self/navigation/dock/dock.css +221 -0
  127. package/addons/render/elements/front/items/self/navigation/dock/dock.js +134 -0
  128. package/addons/render/elements/front/items/self/navigation/footer/footer.css +356 -0
  129. package/addons/render/elements/front/items/self/navigation/footer/footer.js +219 -0
  130. package/addons/render/elements/front/items/self/navigation/navbar/navbar.css +736 -76
  131. package/addons/render/elements/front/items/self/navigation/navbar/navbar.js +437 -29
  132. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.css +327 -196
  133. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.js +115 -62
  134. package/addons/render/elements/front/items/self/navigation/steps/steps.css +345 -0
  135. package/addons/render/elements/front/items/self/navigation/steps/steps.js +113 -0
  136. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +507 -33
  137. package/addons/render/elements/front/items/self/navigation/tabs/tabs.js +62 -19
  138. package/addons/render/elements/front/items/self/status/code/code.css +83 -12
  139. package/addons/render/elements/front/items/self/status/code/code.js +15 -4
  140. package/addons/render/elements/front/items/self/status/empty/empty.css +95 -15
  141. package/addons/render/elements/front/items/self/status/empty/empty.js +17 -12
  142. package/addons/render/elements/front/items/self/status/error/error.css +99 -14
  143. package/addons/render/elements/front/items/self/status/error/error.js +21 -11
  144. package/addons/render/elements/front/items/self/status/loading/loading.css +85 -14
  145. package/addons/render/elements/front/items/self/status/loading/loading.js +5 -6
  146. package/addons/render/elements/front/styles/types.css +363 -0
  147. package/instructions.txt +28 -0
  148. package/lib/load.js +1 -0
  149. package/lib/styles/reset.css +89 -76
  150. package/package.json +1 -1
  151. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.css +0 -410
  152. package/addons/render/elements/front/items/self/form/editor-markdown/editor-markdown.js +0 -191
  153. package/addons/render/elements/front/items/self/global/faq/faq.css +0 -98
  154. package/addons/render/elements/front/items/self/global/faq/faq.js +0 -56
@@ -0,0 +1,588 @@
1
+ /* Root */
2
+
3
+ .e-305e9281
4
+ {
5
+ display: block;
6
+ width: 100%;
7
+ }
8
+
9
+ /* Holder */
10
+
11
+ .e-305e9281 > .holder
12
+ {
13
+ display: flex;
14
+ flex-direction: column;
15
+ width: 100%;
16
+ border: 1px solid transparent;
17
+ border-radius: var(--ot-radius-m);
18
+ overflow: hidden;
19
+ }
20
+
21
+ /* Background variants */
22
+
23
+ .e-305e9281 > .holder.bg-1 { background: var(--ot-bg-1); }
24
+ .e-305e9281 > .holder.bg-2 { background: var(--ot-bg-2); }
25
+ .e-305e9281 > .holder.bg-3 { background: var(--ot-bg-3); }
26
+ .e-305e9281 > .holder.bg-4 { background: var(--ot-bg-4); }
27
+
28
+ .e-305e9281 > .holder.border { border-color: var(--ot-bg-2-border); }
29
+ .e-305e9281 > .holder.bg-1.border { border-color: var(--ot-bg-1-border); }
30
+ .e-305e9281 > .holder.bg-2.border { border-color: var(--ot-bg-2-border); }
31
+ .e-305e9281 > .holder.bg-3.border { border-color: var(--ot-bg-3-border); }
32
+ .e-305e9281 > .holder.bg-4.border { border-color: var(--ot-bg-4-border); }
33
+
34
+ .e-305e9281 > .holder.border-bottom
35
+ {
36
+ border-color: transparent;
37
+ border-bottom-color: var(--ot-bg-2-border);
38
+ border-radius: 0;
39
+ }
40
+
41
+ .e-305e9281 > .holder.bg-1.border-bottom { border-bottom-color: var(--ot-bg-1-border); }
42
+ .e-305e9281 > .holder.bg-2.border-bottom { border-bottom-color: var(--ot-bg-2-border); }
43
+ .e-305e9281 > .holder.bg-3.border-bottom { border-bottom-color: var(--ot-bg-3-border); }
44
+ .e-305e9281 > .holder.bg-4.border-bottom { border-bottom-color: var(--ot-bg-4-border); }
45
+
46
+ .e-305e9281 > .holder.clean
47
+ {
48
+ border-color: transparent;
49
+ border-radius: none;
50
+ }
51
+
52
+ /* ===== HEAD ===== */
53
+
54
+ .e-305e9281 > .holder > .head
55
+ {
56
+ display: flex;
57
+ align-items: center;
58
+ gap: var(--ot-spacing-m);
59
+ padding: var(--ot-spacing-m);
60
+ border-bottom: 1px solid var(--ot-bg-2-border);
61
+ }
62
+
63
+ .e-305e9281 > .holder > .head > .head-icon
64
+ {
65
+ display: inline-flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ width: 44px;
69
+ height: 44px;
70
+ border-radius: var(--ot-radius-m);
71
+ background: var(--ot-bg-2);
72
+ border: 1px solid var(--ot-bg-2-border);
73
+ color: var(--ot-text-1);
74
+ flex-shrink: 0;
75
+ }
76
+
77
+ .e-305e9281 > .holder > .head > .head-icon > i
78
+ {
79
+ font-size: 22px;
80
+ }
81
+
82
+ .e-305e9281 > .holder > .head > .head-text
83
+ {
84
+ display: flex;
85
+ flex-direction: column;
86
+ flex: 1;
87
+ min-width: 0;
88
+ gap: 2px;
89
+ }
90
+
91
+ .e-305e9281 > .holder > .head > .head-text > .head-title
92
+ {
93
+ margin: 0;
94
+ font-family: var(--ot-font-secondary);
95
+ font-size: 22px;
96
+ font-weight: 500;
97
+ letter-spacing: -0.018em;
98
+ color: var(--ot-text-1);
99
+ line-height: 1.15;
100
+ font-variation-settings: 'opsz' 144;
101
+ }
102
+
103
+ .e-305e9281 > .holder > .head > .head-text > .head-description
104
+ {
105
+ margin: 0;
106
+ font-family: var(--ot-font-primary);
107
+ font-size: var(--ot-size-s);
108
+ color: var(--ot-text-3);
109
+ line-height: 1.5;
110
+ }
111
+
112
+ .e-305e9281 > .holder > .head > .head-actions
113
+ {
114
+ display: flex;
115
+ align-items: center;
116
+ gap: var(--ot-spacing-s);
117
+ }
118
+
119
+ /* ===== TOOLBAR ===== */
120
+
121
+ .e-305e9281 > .holder > .toolbar
122
+ {
123
+ display: flex;
124
+ align-items: center;
125
+ gap: var(--ot-spacing-m);
126
+ padding: var(--ot-spacing-s) var(--ot-spacing-m);
127
+ border-bottom: 1px solid var(--ot-bg-2-border);
128
+ }
129
+
130
+ .e-305e9281 > .holder > .toolbar > .toolbar-search
131
+ {
132
+ flex: 1 1 auto;
133
+ max-width: 320px;
134
+ }
135
+
136
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk
137
+ {
138
+ display: flex;
139
+ align-items: center;
140
+ gap: var(--ot-spacing-m);
141
+ margin-left: auto;
142
+ padding: 4px var(--ot-spacing-s) 4px var(--ot-spacing-m);
143
+ background: var(--ot-brand-opacity);
144
+ border: 1px solid var(--ot-brand-border);
145
+ border-radius: var(--ot-radius-s);
146
+ animation: e-305e9281-bulk-in 0.25s cubic-bezier(0.22, 1, 0.36, 1);
147
+ }
148
+
149
+ @keyframes e-305e9281-bulk-in
150
+ {
151
+ from { opacity: 0; transform: translateY(-4px); }
152
+ to { opacity: 1; transform: translateY(0); }
153
+ }
154
+
155
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk > .toolbar-bulk-count
156
+ {
157
+ font-family: var(--ot-font-primary);
158
+ font-size: var(--ot-size-s);
159
+ font-weight: 700;
160
+ color: var(--ot-brand);
161
+ }
162
+
163
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk > .toolbar-bulk-actions
164
+ {
165
+ display: flex;
166
+ align-items: center;
167
+ gap: 2px;
168
+ }
169
+
170
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-action
171
+ {
172
+ display: inline-flex;
173
+ align-items: center;
174
+ gap: 4px;
175
+ padding: 5px 10px;
176
+ background: transparent;
177
+ border: none;
178
+ border-radius: var(--ot-radius-s);
179
+ font-family: var(--ot-font-primary);
180
+ font-size: var(--ot-size-s);
181
+ font-weight: 500;
182
+ color: var(--ot-text-1);
183
+ cursor: pointer;
184
+ transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1), color 0.15s cubic-bezier(0.22, 1, 0.36, 1);
185
+ }
186
+
187
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-action:hover
188
+ {
189
+ background: var(--ot-bg-1);
190
+ }
191
+
192
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-action.danger:hover
193
+ {
194
+ background: var(--ot-red-opacity);
195
+ color: var(--ot-red);
196
+ }
197
+
198
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-action > i
199
+ {
200
+ font-size: 15px;
201
+ }
202
+
203
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-clear
204
+ {
205
+ display: inline-flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ width: 22px;
209
+ height: 22px;
210
+ padding: 0;
211
+ background: transparent;
212
+ border: none;
213
+ border-radius: var(--ot-radius-s);
214
+ color: var(--ot-brand);
215
+ cursor: pointer;
216
+ margin-left: 4px;
217
+ }
218
+
219
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-clear:hover
220
+ {
221
+ background: var(--ot-bg-1);
222
+ }
223
+
224
+ .e-305e9281 > .holder > .toolbar > .toolbar-bulk .bulk-clear > i
225
+ {
226
+ font-size: 16px;
227
+ }
228
+
229
+ /* ===== TABLE ===== */
230
+
231
+ .e-305e9281 > .holder > .table
232
+ {
233
+ display: flex;
234
+ flex-direction: column;
235
+ overflow-x: auto;
236
+ }
237
+
238
+ .e-305e9281 > .holder > .table > .row,
239
+ .e-305e9281 > .holder > .table > div > .row
240
+ {
241
+ display: grid;
242
+ align-items: center;
243
+ width: 100%;
244
+ min-height: 48px;
245
+ padding: 0 var(--ot-spacing-m);
246
+ gap: var(--ot-spacing-m);
247
+ transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1);
248
+ }
249
+
250
+ /* Head row */
251
+
252
+ .e-305e9281 > .holder > .table > .head-row
253
+ {
254
+ min-height: 42px;
255
+ background: var(--ot-bg-2);
256
+ border-bottom: 1px solid var(--ot-bg-2-border);
257
+ position: sticky;
258
+ top: 0;
259
+ z-index: 2;
260
+ }
261
+
262
+ .e-305e9281 > .holder.bg-2 > .table > .head-row { background: var(--ot-bg-3); }
263
+ .e-305e9281 > .holder.bg-3 > .table > .head-row { background: var(--ot-bg-4); }
264
+
265
+ .e-305e9281 > .holder > .table > .head-row > .cell
266
+ {
267
+ font-family: var(--ot-font-primary);
268
+ font-size: 11px;
269
+ font-weight: 700;
270
+ color: var(--ot-text-3);
271
+ text-transform: uppercase;
272
+ letter-spacing: 0.06em;
273
+ }
274
+
275
+ .e-305e9281 > .holder > .table > .head-row > .head-cell
276
+ {
277
+ display: flex;
278
+ align-items: center;
279
+ gap: 4px;
280
+ user-select: none;
281
+ }
282
+
283
+ .e-305e9281 > .holder > .table > .head-row > .head-cell.sortable
284
+ {
285
+ cursor: pointer;
286
+ transition: color 0.15s cubic-bezier(0.22, 1, 0.36, 1);
287
+ }
288
+
289
+ .e-305e9281 > .holder > .table > .head-row > .head-cell.sortable:hover
290
+ {
291
+ color: var(--ot-text-1);
292
+ }
293
+
294
+ .e-305e9281 > .holder > .table > .head-row > .head-cell.sorted
295
+ {
296
+ color: var(--ot-brand);
297
+ }
298
+
299
+ .e-305e9281 > .holder > .table > .head-row > .head-cell > .sort-icon
300
+ {
301
+ font-size: 14px;
302
+ opacity: 0.6;
303
+ transition: opacity 0.15s cubic-bezier(0.22, 1, 0.36, 1);
304
+ }
305
+
306
+ .e-305e9281 > .holder > .table > .head-row > .head-cell.sortable:hover > .sort-icon
307
+ {
308
+ opacity: 1;
309
+ }
310
+
311
+ /* Body row */
312
+
313
+ .e-305e9281 > .holder > .table > div > .body-row
314
+ {
315
+ border-bottom: 1px solid var(--ot-bg-2-border);
316
+ cursor: default;
317
+ }
318
+
319
+ .e-305e9281 > .holder > .table > div > .body-row.clickable
320
+ {
321
+ cursor: pointer;
322
+ }
323
+
324
+ .e-305e9281 > .holder > .table > div:last-child > .body-row
325
+ {
326
+ border-bottom: none;
327
+ }
328
+
329
+ .e-305e9281 > .holder > .table > div > .body-row:hover
330
+ {
331
+ background: var(--ot-bg-2);
332
+ }
333
+
334
+ .e-305e9281 > .holder.bg-2 > .table > div > .body-row:hover { background: var(--ot-bg-3); }
335
+ .e-305e9281 > .holder.bg-3 > .table > div > .body-row:hover { background: var(--ot-bg-4); }
336
+
337
+ .e-305e9281 > .holder > .table > div > .body-row.selected
338
+ {
339
+ background: var(--ot-brand-opacity);
340
+ }
341
+
342
+ /* Striped */
343
+
344
+ .e-305e9281 > .holder.striped > .table > div:nth-child(even) > .body-row
345
+ {
346
+ background: var(--ot-bg-2);
347
+ }
348
+
349
+ .e-305e9281 > .holder.striped.bg-2 > .table > div:nth-child(even) > .body-row
350
+ {
351
+ background: var(--ot-bg-3);
352
+ }
353
+
354
+ /* Sticky header variant */
355
+
356
+ .e-305e9281 > .holder.sticky-header > .table
357
+ {
358
+ max-height: 560px;
359
+ overflow-y: auto;
360
+ }
361
+
362
+ /* Cells */
363
+
364
+ .e-305e9281 > .holder > .table .cell
365
+ {
366
+ min-width: 0;
367
+ padding: 10px 0;
368
+ font-family: var(--ot-font-primary);
369
+ font-size: var(--ot-size-s);
370
+ color: var(--ot-text-1);
371
+ overflow: hidden;
372
+ text-overflow: ellipsis;
373
+ }
374
+
375
+ .e-305e9281 > .holder > .table .cell.align-left { text-align: left; }
376
+ .e-305e9281 > .holder > .table .cell.align-center { text-align: center; display: flex; justify-content: center; }
377
+ .e-305e9281 > .holder > .table .cell.align-right { text-align: right; display: flex; justify-content: flex-end; }
378
+
379
+ /* Select cell */
380
+
381
+ .e-305e9281 > .holder > .table .select-cell
382
+ {
383
+ display: flex;
384
+ align-items: center;
385
+ justify-content: center;
386
+ padding: 0;
387
+ }
388
+
389
+ .e-305e9281 > .holder > .table .select-cell > .select-box
390
+ {
391
+ display: inline-flex;
392
+ align-items: center;
393
+ justify-content: center;
394
+ width: 18px;
395
+ height: 18px;
396
+ padding: 0;
397
+ background: var(--ot-bg-1);
398
+ border: 1.5px solid var(--ot-bg-3-border);
399
+ border-radius: 4px;
400
+ color: transparent;
401
+ cursor: pointer;
402
+ outline: none;
403
+ transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.15s cubic-bezier(0.22, 1, 0.36, 1);
404
+ }
405
+
406
+ .e-305e9281 > .holder > .table .select-cell > .select-box:hover
407
+ {
408
+ border-color: var(--ot-brand);
409
+ }
410
+
411
+ .e-305e9281 > .holder > .table .select-cell > .select-box.checked,
412
+ .e-305e9281 > .holder > .table .select-cell > .select-box.indeterminate
413
+ {
414
+ background: var(--ot-brand);
415
+ border-color: var(--ot-brand);
416
+ color: #fff;
417
+ }
418
+
419
+ .e-305e9281 > .holder > .table .select-cell > .select-box > i
420
+ {
421
+ font-size: 14px;
422
+ font-weight: 700;
423
+ }
424
+
425
+ /* Actions cell */
426
+
427
+ .e-305e9281 > .holder > .table .actions-cell
428
+ {
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: center;
432
+ padding: 0;
433
+ }
434
+
435
+ .e-305e9281 > .holder > .table .actions-cell > .actions-trigger
436
+ {
437
+ display: inline-flex;
438
+ align-items: center;
439
+ justify-content: center;
440
+ width: 28px;
441
+ height: 28px;
442
+ padding: 0;
443
+ background: transparent;
444
+ border: none;
445
+ border-radius: var(--ot-radius-s);
446
+ color: var(--ot-text-3);
447
+ cursor: pointer;
448
+ transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1), color 0.15s cubic-bezier(0.22, 1, 0.36, 1);
449
+ }
450
+
451
+ .e-305e9281 > .holder > .table .actions-cell > .actions-trigger:hover
452
+ {
453
+ background: var(--ot-bg-3);
454
+ color: var(--ot-text-1);
455
+ }
456
+
457
+ .e-305e9281 > .holder > .table .actions-cell > .actions-trigger > i
458
+ {
459
+ font-size: 18px;
460
+ }
461
+
462
+ /* ===== EMPTY ===== */
463
+
464
+ .e-305e9281 > .holder > .empty
465
+ {
466
+ padding: var(--ot-spacing-l);
467
+ }
468
+
469
+ /* ===== LOADING SKELETON ===== */
470
+
471
+ .e-305e9281 > .holder > .table .skeleton
472
+ {
473
+ background: linear-gradient(90deg, var(--ot-bg-2) 0%, var(--ot-bg-3) 50%, var(--ot-bg-2) 100%);
474
+ background-size: 200% 100%;
475
+ animation: e-305e9281-shimmer 1.4s infinite linear;
476
+ border-radius: var(--ot-radius-s);
477
+ }
478
+
479
+ .e-305e9281 > .holder > .table .skeleton-line
480
+ {
481
+ height: 14px;
482
+ width: 80%;
483
+ }
484
+
485
+ .e-305e9281 > .holder > .table .skeleton-box
486
+ {
487
+ width: 18px;
488
+ height: 18px;
489
+ }
490
+
491
+ @keyframes e-305e9281-shimmer
492
+ {
493
+ from { background-position: 200% 0; }
494
+ to { background-position: -200% 0; }
495
+ }
496
+
497
+ /* ===== PAGINATION ===== */
498
+
499
+ .e-305e9281 > .holder > .pagination
500
+ {
501
+ display: flex;
502
+ align-items: center;
503
+ justify-content: space-between;
504
+ gap: var(--ot-spacing-m);
505
+ padding: var(--ot-spacing-s) var(--ot-spacing-l);
506
+ border-top: 1px solid var(--ot-bg-2-border);
507
+ }
508
+
509
+ .e-305e9281 > .holder > .pagination > .pagination-info
510
+ {
511
+ font-family: var(--ot-font-primary);
512
+ font-size: var(--ot-size-s);
513
+ color: var(--ot-text-3);
514
+ font-variant-numeric: tabular-nums;
515
+ }
516
+
517
+ .e-305e9281 > .holder > .pagination > .pagination-controls
518
+ {
519
+ display: flex;
520
+ align-items: center;
521
+ gap: 2px;
522
+ }
523
+
524
+ .e-305e9281 > .holder > .pagination > .pagination-controls > .page-btn
525
+ {
526
+ display: inline-flex;
527
+ align-items: center;
528
+ justify-content: center;
529
+ width: 30px;
530
+ height: 30px;
531
+ padding: 0;
532
+ background: transparent;
533
+ border: 1px solid transparent;
534
+ border-radius: var(--ot-radius-s);
535
+ color: var(--ot-text-2);
536
+ cursor: pointer;
537
+ transition: background 0.15s cubic-bezier(0.22, 1, 0.36, 1), color 0.15s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.15s cubic-bezier(0.22, 1, 0.36, 1);
538
+ }
539
+
540
+ .e-305e9281 > .holder > .pagination > .pagination-controls > .page-btn:hover:not(:disabled)
541
+ {
542
+ background: var(--ot-bg-2);
543
+ color: var(--ot-text-1);
544
+ border-color: var(--ot-bg-2-border);
545
+ }
546
+
547
+ .e-305e9281 > .holder > .pagination > .pagination-controls > .page-btn:disabled
548
+ {
549
+ opacity: 0.35;
550
+ cursor: not-allowed;
551
+ }
552
+
553
+ .e-305e9281 > .holder > .pagination > .pagination-controls > .page-btn > i
554
+ {
555
+ font-size: 18px;
556
+ }
557
+
558
+ .e-305e9281 > .holder > .pagination > .pagination-controls > .page-current
559
+ {
560
+ padding: 0 var(--ot-spacing-s);
561
+ font-family: var(--ot-font-primary);
562
+ font-size: var(--ot-size-s);
563
+ font-weight: 700;
564
+ color: var(--ot-text-1);
565
+ font-variant-numeric: tabular-nums;
566
+ }
567
+
568
+ /* ===== RESPONSIVE ===== */
569
+
570
+ @media (max-width: 767.98px)
571
+ {
572
+ .e-305e9281 > .holder > .toolbar
573
+ {
574
+ flex-direction: column;
575
+ align-items: stretch;
576
+ }
577
+
578
+ .e-305e9281 > .holder > .toolbar > .toolbar-search
579
+ {
580
+ max-width: 100%;
581
+ }
582
+
583
+ .e-305e9281 > .holder > .pagination
584
+ {
585
+ flex-direction: column;
586
+ gap: var(--ot-spacing-s);
587
+ }
588
+ }