divhunt 2.0.5 → 2.0.9

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 (159) hide show
  1. package/addons/core/commands/back/functions/expose.js +14 -0
  2. package/addons/core/commands/back/functions/find.js +1 -1
  3. package/addons/core/commands/back/functions/grpc/client.js +1 -1
  4. package/addons/core/commands/back/functions/grpc/server.js +1 -1
  5. package/addons/core/commands/back/functions/hide.js +14 -0
  6. package/addons/core/commands/back/functions/http/server.js +1 -1
  7. package/addons/core/commands/back/items/{many.js → self/many.js} +2 -4
  8. package/addons/core/commands/back/items/{one.js → self/one.js} +2 -4
  9. package/addons/core/commands/back/items/{run.js → self/run.js} +3 -7
  10. package/addons/core/commands/core/functions/run.js +13 -0
  11. package/addons/core/commands/{back → core}/item/functions/run.js +1 -1
  12. package/addons/core/commands/core/load.js +25 -0
  13. package/addons/core/commands/front/directives/run.js +84 -0
  14. package/addons/core/commands/front/directives/submit.js +150 -0
  15. package/addons/core/commands/front/functions/api.js +30 -0
  16. package/addons/render/assets/back/functions/import.js +1 -1
  17. package/examples/basic-front/back/assets.js +11 -0
  18. package/examples/basic-front/back/index.js +13 -0
  19. package/examples/basic-front/back/items/commands/html.js +14 -0
  20. package/examples/basic-front/back/items/commands/test.js +19 -0
  21. package/examples/basic-front/back/items/html/fonts.js +12 -0
  22. package/examples/basic-front/front/pages/home.js +16 -0
  23. package/examples/basic-front/front/styles/main.css +31 -0
  24. package/examples/basic-front/front/test.js +7 -0
  25. package/examples/basic-front/package.json +7 -0
  26. package/lib/src/divhunt.js +2 -0
  27. package/lib/src/mixins/form.js +67 -0
  28. package/package.json +3 -3
  29. package/test/front/test.js +31 -0
  30. package/test.js +52 -0
  31. package/addons/core/commands/LICENSE.txt +0 -40
  32. package/addons/core/commands/README.md +0 -294
  33. package/addons/core/commands/back/load.js +0 -18
  34. package/addons/core/commands/front/#register/addon.js +0 -9
  35. package/addons/core/commands/front/functions/find.js +0 -22
  36. package/addons/core/commands/front/item/functions/run.js +0 -96
  37. package/addons/core/commands/front/items/elements/table/table.css +0 -18
  38. package/addons/core/commands/front/items/elements/table/table.js +0 -254
  39. package/addons/render/elements/front/items/self/base/menu/menu.js +0 -96
  40. package/addons/render/elements/front/items/self/base/menu/styles/base.css +0 -116
  41. package/addons/render/elements/front/items/self/base/menu/styles/sizes.css +0 -27
  42. package/addons/render/elements/front/items/self/base/menu/styles/variants.css +0 -99
  43. package/addons/render/elements/front/items/self/base/tag/tag.css +0 -199
  44. package/addons/render/elements/front/items/self/base/tag/tag.js +0 -37
  45. package/addons/render/elements/front/items/self/cards/basic/basic.js +0 -89
  46. package/addons/render/elements/front/items/self/cards/basic/styles/base.css +0 -66
  47. package/addons/render/elements/front/items/self/cards/basic/styles/sizes.css +0 -32
  48. package/addons/render/elements/front/items/self/cards/basic/styles/variants.css +0 -99
  49. package/addons/render/elements/front/items/self/cards/list/list.js +0 -108
  50. package/addons/render/elements/front/items/self/cards/list/styles/base.css +0 -96
  51. package/addons/render/elements/front/items/self/cards/list/styles/sizes.css +0 -32
  52. package/addons/render/elements/front/items/self/cards/list/styles/variants.css +0 -99
  53. package/addons/render/elements/front/items/self/cards/media/media.js +0 -116
  54. package/addons/render/elements/front/items/self/cards/media/styles/base.css +0 -126
  55. package/addons/render/elements/front/items/self/cards/media/styles/sizes.css +0 -49
  56. package/addons/render/elements/front/items/self/cards/media/styles/variants.css +0 -74
  57. package/addons/render/elements/front/items/self/cards/profile/profile.js +0 -95
  58. package/addons/render/elements/front/items/self/cards/profile/styles/base.css +0 -142
  59. package/addons/render/elements/front/items/self/cards/profile/styles/sizes.css +0 -43
  60. package/addons/render/elements/front/items/self/cards/profile/styles/variants.css +0 -131
  61. package/addons/render/elements/front/items/self/cards/stat/stat.js +0 -117
  62. package/addons/render/elements/front/items/self/cards/stat/styles/base.css +0 -97
  63. package/addons/render/elements/front/items/self/cards/stat/styles/sizes.css +0 -49
  64. package/addons/render/elements/front/items/self/cards/stat/styles/variants.css +0 -124
  65. package/addons/render/elements/front/items/self/content/html/html.css +0 -93
  66. package/addons/render/elements/front/items/self/content/html/html.js +0 -40
  67. package/addons/render/elements/front/items/self/content/markdown/markdown.css +0 -200
  68. package/addons/render/elements/front/items/self/content/markdown/markdown.js +0 -120
  69. package/addons/render/elements/front/items/self/data/comments/comments.css +0 -253
  70. package/addons/render/elements/front/items/self/data/comments/comments.js +0 -134
  71. package/addons/render/elements/front/items/self/data/files/files.css +0 -116
  72. package/addons/render/elements/front/items/self/data/files/files.js +0 -85
  73. package/addons/render/elements/front/items/self/data/folders/folders.css +0 -104
  74. package/addons/render/elements/front/items/self/data/folders/folders.js +0 -73
  75. package/addons/render/elements/front/items/self/data/inbox/inbox.css +0 -225
  76. package/addons/render/elements/front/items/self/data/inbox/inbox.js +0 -111
  77. package/addons/render/elements/front/items/self/data/logs/logs.css +0 -133
  78. package/addons/render/elements/front/items/self/data/logs/logs.js +0 -65
  79. package/addons/render/elements/front/items/self/data/plans/plans.css +0 -231
  80. package/addons/render/elements/front/items/self/data/plans/plans.js +0 -104
  81. package/addons/render/elements/front/items/self/data/properties/properties.css +0 -108
  82. package/addons/render/elements/front/items/self/data/properties/properties.js +0 -156
  83. package/addons/render/elements/front/items/self/data/table/table.css +0 -153
  84. package/addons/render/elements/front/items/self/data/table/table.js +0 -106
  85. package/addons/render/elements/front/items/self/data/timeline/timeline.css +0 -127
  86. package/addons/render/elements/front/items/self/data/timeline/timeline.js +0 -57
  87. package/addons/render/elements/front/items/self/feedback/alert/alert.css +0 -258
  88. package/addons/render/elements/front/items/self/feedback/alert/alert.js +0 -67
  89. package/addons/render/elements/front/items/self/feedback/confirm/confirm.css +0 -229
  90. package/addons/render/elements/front/items/self/feedback/confirm/confirm.js +0 -81
  91. package/addons/render/elements/front/items/self/feedback/loader/loader.css +0 -203
  92. package/addons/render/elements/front/items/self/feedback/loader/loader.js +0 -25
  93. package/addons/render/elements/front/items/self/feedback/progress/progress.css +0 -136
  94. package/addons/render/elements/front/items/self/feedback/progress/progress.js +0 -40
  95. package/addons/render/elements/front/items/self/form/button/button.js +0 -105
  96. package/addons/render/elements/front/items/self/form/button/styles/base.css +0 -176
  97. package/addons/render/elements/front/items/self/form/button/styles/sizes.css +0 -78
  98. package/addons/render/elements/front/items/self/form/button/styles/variants.css +0 -421
  99. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +0 -57
  100. package/addons/render/elements/front/items/self/form/checkbox/styles/base.css +0 -52
  101. package/addons/render/elements/front/items/self/form/checkbox/styles/sizes.css +0 -39
  102. package/addons/render/elements/front/items/self/form/checkbox/styles/variants.css +0 -121
  103. package/addons/render/elements/front/items/self/form/field/field.css +0 -96
  104. package/addons/render/elements/front/items/self/form/field/field.js +0 -39
  105. package/addons/render/elements/front/items/self/form/input/input.css +0 -111
  106. package/addons/render/elements/front/items/self/form/input/input.js +0 -78
  107. package/addons/render/elements/front/items/self/form/input/styles/base.css +0 -26
  108. package/addons/render/elements/front/items/self/form/input/styles/sizes.css +0 -15
  109. package/addons/render/elements/front/items/self/form/input/styles/variants.css +0 -98
  110. package/addons/render/elements/front/items/self/form/radio/radio.js +0 -57
  111. package/addons/render/elements/front/items/self/form/radio/styles/base.css +0 -48
  112. package/addons/render/elements/front/items/self/form/radio/styles/sizes.css +0 -36
  113. package/addons/render/elements/front/items/self/form/radio/styles/variants.css +0 -121
  114. package/addons/render/elements/front/items/self/form/rating/rating.css +0 -95
  115. package/addons/render/elements/front/items/self/form/rating/rating.js +0 -88
  116. package/addons/render/elements/front/items/self/form/section/section.css +0 -107
  117. package/addons/render/elements/front/items/self/form/section/section.js +0 -39
  118. package/addons/render/elements/front/items/self/form/slider/slider.css +0 -244
  119. package/addons/render/elements/front/items/self/form/slider/slider.js +0 -69
  120. package/addons/render/elements/front/items/self/form/textarea/textarea.css +0 -117
  121. package/addons/render/elements/front/items/self/form/textarea/textarea.js +0 -69
  122. package/addons/render/elements/front/items/self/layout/empty/empty.css +0 -154
  123. package/addons/render/elements/front/items/self/layout/empty/empty.js +0 -43
  124. package/addons/render/elements/front/items/self/layout/heading/heading.css +0 -117
  125. package/addons/render/elements/front/items/self/layout/heading/heading.js +0 -47
  126. package/addons/render/elements/front/items/self/layout/hero/hero.js +0 -88
  127. package/addons/render/elements/front/items/self/layout/hero/styles/base.css +0 -81
  128. package/addons/render/elements/front/items/self/layout/hero/styles/sizes.css +0 -24
  129. package/addons/render/elements/front/items/self/layout/hero/styles/variants.css +0 -98
  130. package/addons/render/elements/front/items/self/navigation/breadcrumb/addon/_class/addon.js +0 -9
  131. package/addons/render/elements/front/items/self/navigation/breadcrumb/addon/functions/get.js +0 -22
  132. package/addons/render/elements/front/items/self/navigation/breadcrumb/breadcrumb.css +0 -13
  133. package/addons/render/elements/front/items/self/navigation/breadcrumb/breadcrumb.js +0 -51
  134. package/addons/render/elements/front/items/self/navigation/footer/addon/_class/addon.js +0 -11
  135. package/addons/render/elements/front/items/self/navigation/footer/addon/functions/columns.js +0 -11
  136. package/addons/render/elements/front/items/self/navigation/footer/addon/functions/get.js +0 -34
  137. package/addons/render/elements/front/items/self/navigation/footer/footer.css +0 -283
  138. package/addons/render/elements/front/items/self/navigation/footer/footer.js +0 -139
  139. package/addons/render/elements/front/items/self/navigation/navbar/addon/_class/addon.js +0 -13
  140. package/addons/render/elements/front/items/self/navigation/navbar/addon/functions/active.js +0 -7
  141. package/addons/render/elements/front/items/self/navigation/navbar/addon/functions/get.js +0 -31
  142. package/addons/render/elements/front/items/self/navigation/navbar/navbar.css +0 -140
  143. package/addons/render/elements/front/items/self/navigation/navbar/navbar.js +0 -118
  144. package/addons/render/elements/front/items/self/navigation/pagination/pagination.css +0 -160
  145. package/addons/render/elements/front/items/self/navigation/pagination/pagination.js +0 -131
  146. package/addons/render/elements/front/items/self/navigation/sidebar/addon/_class/addon.js +0 -12
  147. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/active.js +0 -7
  148. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/get.js +0 -35
  149. package/addons/render/elements/front/items/self/navigation/sidebar/addon/functions/groups.js +0 -10
  150. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.css +0 -278
  151. package/addons/render/elements/front/items/self/navigation/sidebar/sidebar.js +0 -85
  152. package/addons/render/elements/front/items/self/navigation/stepper/stepper.css +0 -202
  153. package/addons/render/elements/front/items/self/navigation/stepper/stepper.js +0 -82
  154. package/addons/render/elements/front/items/self/navigation/tabs/addon.js +0 -32
  155. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +0 -239
  156. package/addons/render/elements/front/items/self/navigation/tabs/tabs.js +0 -76
  157. package/addons/render/elements/front/items/self/preview/html/html.css +0 -377
  158. package/addons/render/elements/front/items/self/preview/html/html.js +0 -107
  159. /package/addons/core/commands/{back → core}/addon.js +0 -0
@@ -1,225 +0,0 @@
1
- /* Base */
2
- .e-68d92230 > .holder
3
- {
4
- display: flex;
5
- flex-direction: column;
6
- background: var(--dh-bg-1);
7
- border-radius: var(--dh-radius-l);
8
- overflow: hidden;
9
- height: 700px;
10
- }
11
-
12
- .e-68d92230 > .holder > .header
13
- {
14
- padding: var(--dh-spacing-l);
15
- background: var(--dh-bg-2);
16
- border-bottom: 1px solid var(--dh-bg-2-border);
17
- display: flex;
18
- justify-content: space-between;
19
- align-items: flex-start;
20
- gap: var(--dh-spacing-m);
21
- }
22
-
23
- .e-68d92230 > .holder > .header > .info
24
- {
25
- display: flex;
26
- flex-direction: column;
27
- gap: var(--dh-spacing-x);
28
- flex: 1;
29
- }
30
-
31
- .e-68d92230 > .holder > .header > .info > .subject
32
- {
33
- font-size: var(--dh-size-l);
34
- font-weight: 600;
35
- color: var(--dh-text-1);
36
- margin: 0;
37
- }
38
-
39
- .e-68d92230 > .holder > .header > .info > .meta
40
- {
41
- display: flex;
42
- align-items: center;
43
- gap: var(--dh-spacing-x);
44
- font-size: var(--dh-size-s);
45
- }
46
-
47
- .e-68d92230 > .holder > .header > .info > .meta > .label
48
- {
49
- color: var(--dh-text-2);
50
- font-weight: 600;
51
- }
52
-
53
- .e-68d92230 > .holder > .header > .info > .meta > .value
54
- {
55
- color: var(--dh-text-1);
56
- }
57
-
58
- .e-68d92230 > .holder > .header > .actions
59
- {
60
- display: flex;
61
- gap: var(--dh-spacing-x);
62
- }
63
-
64
- .e-68d92230 > .holder > .messages
65
- {
66
- flex: 1;
67
- overflow-y: auto;
68
- padding: var(--dh-spacing-l);
69
- display: flex;
70
- flex-direction: column;
71
- gap: var(--dh-spacing-l);
72
- background: var(--dh-bg-1);
73
- }
74
-
75
- .e-68d92230 > .holder > .messages > .message
76
- {
77
- display: flex;
78
- gap: var(--dh-spacing-m);
79
- animation: fadeIn 0.3s ease;
80
- }
81
-
82
- @keyframes fadeIn
83
- {
84
- from
85
- {
86
- opacity: 0;
87
- transform: translateY(8px);
88
- }
89
- to
90
- {
91
- opacity: 1;
92
- transform: translateY(0);
93
- }
94
- }
95
-
96
- .e-68d92230 > .holder > .messages > .message > .avatar
97
- {
98
- width: 40px;
99
- height: 40px;
100
- border-radius: 50%;
101
- background: var(--dh-bg-3);
102
- display: flex;
103
- align-items: center;
104
- justify-content: center;
105
- flex-shrink: 0;
106
- border: 2px solid var(--dh-bg-2);
107
- }
108
-
109
- .e-68d92230 > .holder > .messages > .message > .avatar > .icon
110
- {
111
- font-size: 24px;
112
- color: var(--dh-text-2);
113
- }
114
-
115
- .e-68d92230 > .holder > .messages > .message > .avatar > img
116
- {
117
- width: 100%;
118
- height: 100%;
119
- object-fit: cover;
120
- border-radius: 50%;
121
- }
122
-
123
- .e-68d92230 > .holder > .messages > .message > .content
124
- {
125
- display: flex;
126
- flex-direction: column;
127
- gap: var(--dh-spacing-x);
128
- flex: 1;
129
- max-width: 70%;
130
- }
131
-
132
- .e-68d92230 > .holder > .messages > .message > .content > .msg-header
133
- {
134
- display: flex;
135
- align-items: center;
136
- gap: var(--dh-spacing-s);
137
- padding: 0 var(--dh-spacing-x);
138
- }
139
-
140
- .e-68d92230 > .holder > .messages > .message > .content > .msg-header > .sender
141
- {
142
- font-weight: 600;
143
- color: var(--dh-text-1);
144
- font-size: var(--dh-size-s);
145
- }
146
-
147
- .e-68d92230 > .holder > .messages > .message > .content > .msg-header > .time
148
- {
149
- font-size: 11px;
150
- color: var(--dh-text-2);
151
- }
152
-
153
- .e-68d92230 > .holder > .messages > .message > .content > .bubble
154
- {
155
- padding: var(--dh-spacing-m);
156
- background: var(--dh-bg-2);
157
- border-radius: var(--dh-radius-m);
158
- color: var(--dh-text-1);
159
- font-size: var(--dh-size-m);
160
- line-height: 1.6;
161
- border: 1px solid var(--dh-bg-2-border);
162
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
163
- max-width: fit-content;
164
- }
165
-
166
- .e-68d92230 > .holder > .messages > .message[sender="me"]
167
- {
168
- flex-direction: row-reverse;
169
- }
170
-
171
- .e-68d92230 > .holder > .messages > .message[sender="me"] > .content
172
- {
173
- align-items: flex-end;
174
- }
175
-
176
- .e-68d92230 > .holder > .messages > .message[sender="me"] > .content > .bubble
177
- {
178
- background: var(--dh-brand);
179
- color: white;
180
- border-color: var(--dh-brand-border);
181
- }
182
-
183
- .e-68d92230 > .holder > .composer
184
- {
185
- padding: var(--dh-spacing-l);
186
- background: var(--dh-bg-2);
187
- border-top: 1px solid var(--dh-bg-2-border);
188
- display: flex;
189
- flex-direction: column;
190
- gap: var(--dh-spacing-m);
191
- }
192
-
193
- .e-68d92230 > .holder > .composer > .composer-actions
194
- {
195
- display: flex;
196
- justify-content: space-between;
197
- align-items: center;
198
- gap: var(--dh-spacing-s);
199
- }
200
-
201
- .e-68d92230 > .holder > .composer > .composer-actions > .left
202
- {
203
- display: flex;
204
- gap: var(--dh-spacing-x);
205
- }
206
-
207
- /* Variants - Border */
208
- .e-68d92230 > .holder[variant*="border"] { border: 1px solid var(--dh-bg-2-border); }
209
-
210
- /* Variants - Background */
211
- .e-68d92230 > .holder[variant*="bg-1"] { background: var(--dh-bg-1); }
212
- .e-68d92230 > .holder[variant*="bg-2"] { background: var(--dh-bg-2); }
213
- .e-68d92230 > .holder[variant*="bg-2"] > .messages { background: var(--dh-bg-1); }
214
- .e-68d92230 > .holder[variant*="bg-3"] { background: var(--dh-bg-3); }
215
- .e-68d92230 > .holder[variant*="bg-3"] > .messages { background: var(--dh-bg-2); }
216
-
217
- /* Variants - Compact */
218
- .e-68d92230 > .holder[variant*="compact"] { height: 800px; }
219
- .e-68d92230 > .holder[variant*="compact"] > .header { padding: var(--dh-spacing-m); }
220
- .e-68d92230 > .holder[variant*="compact"] > .header > .info > .subject { font-size: var(--dh-size-m); }
221
- .e-68d92230 > .holder[variant*="compact"] > .messages { padding: var(--dh-spacing-m); gap: var(--dh-spacing-m); }
222
- .e-68d92230 > .holder[variant*="compact"] > .messages > .message > .avatar { width: 32px; height: 32px; }
223
- .e-68d92230 > .holder[variant*="compact"] > .messages > .message > .avatar > .icon { font-size: 18px; }
224
- .e-68d92230 > .holder[variant*="compact"] > .messages > .message > .content > .bubble { padding: var(--dh-spacing-s); font-size: var(--dh-size-s); }
225
- .e-68d92230 > .holder[variant*="compact"] > .composer { padding: var(--dh-spacing-m); gap: var(--dh-spacing-s); }
@@ -1,111 +0,0 @@
1
- import elements from '#elements/load.js';
2
-
3
- elements.ItemAdd({
4
- id: 'inbox',
5
- icon: 'inbox',
6
- name: 'Inbox',
7
- description: 'Message inbox with sender/recipient info and reply textarea.',
8
- category: 'Data',
9
- author: 'Divhunt',
10
- config: {
11
- subject: {
12
- type: 'string',
13
- value: 'Project Requirements Discussion'
14
- },
15
- recipient: {
16
- type: 'string',
17
- value: 'John Smith'
18
- },
19
- messages: {
20
- type: 'array',
21
- value: [
22
- {
23
- sender: 'John Smith',
24
- avatar: '',
25
- time: '10:30 AM',
26
- message: 'Hey, I wanted to discuss the new project requirements with you. Do you have time this afternoon?',
27
- isMe: false
28
- },
29
- {
30
- sender: 'Me',
31
- avatar: '',
32
- time: '10:32 AM',
33
- message: 'Sure! I am free after 3 PM. Should we schedule a quick call?',
34
- isMe: true
35
- },
36
- {
37
- sender: 'John Smith',
38
- avatar: '',
39
- time: '10:35 AM',
40
- message: 'Perfect! I will send you a calendar invite. Thanks!',
41
- isMe: false
42
- }
43
- ]
44
- },
45
- placeholder: {
46
- type: 'string',
47
- value: 'Type your message...'
48
- },
49
- variant: {
50
- type: 'array',
51
- value: ['border', 'compact'],
52
- options: ['border', 'bg-1', 'bg-2', 'bg-3', 'compact']
53
- }
54
- },
55
- render: function()
56
- {
57
- return `
58
- <div class="holder" :variant="variant.join(' ')">
59
- <div class="header">
60
- <div class="info">
61
- <h3 class="subject">{{ subject }}</h3>
62
- <div class="meta">
63
- <span class="label">To:</span>
64
- <span class="value">{{ recipient }}</span>
65
- </div>
66
- </div>
67
- <div class="actions">
68
- <e-button :variant="['outline', 'size-s']">
69
- <i class="icon">archive</i>
70
- </e-button>
71
- <e-button :variant="['outline', 'size-s']">
72
- <i class="icon">delete</i>
73
- </e-button>
74
- </div>
75
- </div>
76
- <div class="messages">
77
- <div dh-for="msg in messages" class="message" :sender="msg.isMe ? 'me' : 'them'">
78
- <div class="avatar">
79
- <i dh-if="!msg.avatar" class="icon">person</i>
80
- <img dh-if="msg.avatar" :src="msg.avatar" alt="Avatar">
81
- </div>
82
- <div class="content">
83
- <div class="msg-header">
84
- <span class="sender">{{ msg.sender }}</span>
85
- <span class="time">{{ msg.time }}</span>
86
- </div>
87
- <div class="bubble">{{ msg.message }}</div>
88
- </div>
89
- </div>
90
- </div>
91
- <div class="composer">
92
- <e-textarea :placeholder="placeholder" :variant="['border']" rows="3"></e-textarea>
93
- <div class="composer-actions">
94
- <div class="left">
95
- <e-button :variant="['ghost', 'size-s']">
96
- <i class="icon">attach_file</i>
97
- </e-button>
98
- <e-button :variant="['ghost', 'size-s']">
99
- <i class="icon">image</i>
100
- </e-button>
101
- </div>
102
- <e-button :variant="['brand']">
103
- <i class="icon">send</i>
104
- Send
105
- </e-button>
106
- </div>
107
- </div>
108
- </div>
109
- `;
110
- }
111
- });
@@ -1,133 +0,0 @@
1
- /* Base */
2
- .e-4ded73b > .holder
3
- {
4
- display: flex;
5
- flex-direction: column;
6
- background: var(--dh-bg-1);
7
- border-radius: var(--dh-radius-m);
8
- overflow: auto;
9
- font-family: 'Courier New', monospace;
10
- font-size: var(--dh-size-s);
11
- }
12
-
13
- .e-4ded73b > .holder > .log-entry
14
- {
15
- display: flex;
16
- align-items: center;
17
- gap: var(--dh-spacing-m);
18
- padding: var(--dh-spacing-s) var(--dh-spacing-m);
19
- border-bottom: 1px solid var(--dh-bg-2);
20
- transition: background 0.1s ease;
21
- }
22
-
23
- .e-4ded73b > .holder > .log-entry:hover
24
- {
25
- background: var(--dh-bg-2);
26
- }
27
-
28
- .e-4ded73b > .holder > .log-entry:last-child
29
- {
30
- border-bottom: none;
31
- }
32
-
33
- .e-4ded73b > .holder > .log-entry > .timestamp
34
- {
35
- color: var(--dh-text-2);
36
- font-size: 11px;
37
- min-width: 60px;
38
- opacity: 0.7;
39
- }
40
-
41
- .e-4ded73b > .holder > .log-entry > .icon
42
- {
43
- font-size: 16px;
44
- flex-shrink: 0;
45
- }
46
-
47
- .e-4ded73b > .holder > .log-entry > .message
48
- {
49
- color: var(--dh-text-1);
50
- flex: 1;
51
- word-break: break-word;
52
- }
53
-
54
- /* Log Types */
55
- .e-4ded73b > .holder > .log-entry[type="info"] > .icon
56
- {
57
- color: var(--dh-blue);
58
- }
59
-
60
- .e-4ded73b > .holder > .log-entry[type="success"] > .icon
61
- {
62
- color: var(--dh-green);
63
- }
64
-
65
- .e-4ded73b > .holder > .log-entry[type="warning"] > .icon
66
- {
67
- color: var(--dh-orange);
68
- }
69
-
70
- .e-4ded73b > .holder > .log-entry[type="error"] > .icon
71
- {
72
- color: var(--dh-red);
73
- }
74
-
75
- .e-4ded73b > .holder > .log-entry[type="error"] > .message
76
- {
77
- color: var(--dh-red);
78
- }
79
-
80
- /* Variants - Dark */
81
- .e-4ded73b > .holder[variant*="dark"]
82
- {
83
- background: var(--dh-bg-1);
84
- }
85
-
86
- .e-4ded73b > .holder[variant*="dark"] > .log-entry
87
- {
88
- border-bottom-color: var(--dh-bg-2);
89
- }
90
-
91
- .e-4ded73b > .holder[variant*="dark"] > .log-entry:hover
92
- {
93
- background: var(--dh-bg-2);
94
- }
95
-
96
- /* Variants - Light */
97
- .e-4ded73b > .holder[variant*="light"]
98
- {
99
- background: var(--dh-bg-3);
100
- }
101
-
102
- .e-4ded73b > .holder[variant*="light"] > .log-entry
103
- {
104
- border-bottom-color: var(--dh-bg-4);
105
- }
106
-
107
- .e-4ded73b > .holder[variant*="light"] > .log-entry:hover
108
- {
109
- background: var(--dh-bg-4);
110
- }
111
-
112
- /* Variants - Compact */
113
- .e-4ded73b > .holder[variant*="compact"] > .log-entry
114
- {
115
- padding: var(--dh-spacing-x) var(--dh-spacing-s);
116
- gap: var(--dh-spacing-s);
117
- }
118
-
119
- .e-4ded73b > .holder[variant*="compact"] > .log-entry > .timestamp
120
- {
121
- min-width: 50px;
122
- }
123
-
124
- .e-4ded73b > .holder[variant*="compact"] > .log-entry > .icon
125
- {
126
- font-size: 14px;
127
- }
128
-
129
- /* Variants - Border */
130
- .e-4ded73b > .holder[variant*="border"]
131
- {
132
- border: 1px solid var(--dh-bg-4);
133
- }
@@ -1,65 +0,0 @@
1
- import elements from '#elements/load.js';
2
-
3
- elements.ItemAdd({
4
- id: 'logs',
5
- icon: 'terminal',
6
- name: 'Logs',
7
- description: 'Console-style log viewer with syntax highlighting and filtering.',
8
- category: 'Data',
9
- author: 'Divhunt',
10
- config: {
11
- logs: {
12
- type: 'array',
13
- value: [
14
- {
15
- type: 'info',
16
- timestamp: '10:23:45',
17
- message: 'Server started on port 3000'
18
- },
19
- {
20
- type: 'success',
21
- timestamp: '10:23:46',
22
- message: 'Database connection established'
23
- },
24
- {
25
- type: 'warning',
26
- timestamp: '10:24:12',
27
- message: 'API rate limit approaching threshold'
28
- },
29
- {
30
- type: 'error',
31
- timestamp: '10:25:33',
32
- message: 'Failed to connect to external service'
33
- }
34
- ]
35
- },
36
- variant: {
37
- type: 'array',
38
- value: ['light', 'border'],
39
- options: ['dark', 'light', 'compact', 'border']
40
- }
41
- },
42
- render: function()
43
- {
44
- this.getIcon = (type) =>
45
- {
46
- const icons = {
47
- info: 'info',
48
- success: 'check_circle',
49
- warning: 'warning',
50
- error: 'error'
51
- };
52
- return icons[type] || 'circle';
53
- };
54
-
55
- return `
56
- <div class="holder" :variant="variant.join(' ')">
57
- <div dh-for="log in logs" class="log-entry" :type="log.type">
58
- <span class="timestamp">{{ log.timestamp }}</span>
59
- <i class="icon">{{ getIcon(log.type) }}</i>
60
- <span class="message">{{ log.message }}</span>
61
- </div>
62
- </div>
63
- `;
64
- }
65
- });