@gxp-dev/tools 2.0.6 → 2.0.7

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 (99) hide show
  1. package/browser-extensions/README.md +1 -0
  2. package/browser-extensions/chrome/background.js +857 -0
  3. package/browser-extensions/chrome/content.js +51 -0
  4. package/browser-extensions/chrome/devtools.html +9 -0
  5. package/browser-extensions/chrome/devtools.js +23 -0
  6. package/browser-extensions/chrome/icons/gx_off_128.png +0 -0
  7. package/browser-extensions/chrome/icons/gx_off_16.png +0 -0
  8. package/browser-extensions/chrome/icons/gx_off_32.png +0 -0
  9. package/browser-extensions/chrome/icons/gx_off_64.png +0 -0
  10. package/browser-extensions/chrome/icons/gx_on_128.png +0 -0
  11. package/browser-extensions/chrome/icons/gx_on_16.png +0 -0
  12. package/browser-extensions/chrome/icons/gx_on_32.png +0 -0
  13. package/browser-extensions/chrome/icons/gx_on_64.png +0 -0
  14. package/browser-extensions/chrome/inspector.js +1087 -0
  15. package/browser-extensions/chrome/manifest.json +70 -0
  16. package/browser-extensions/chrome/panel.html +638 -0
  17. package/browser-extensions/chrome/panel.js +862 -0
  18. package/browser-extensions/chrome/popup.html +399 -0
  19. package/browser-extensions/chrome/popup.js +515 -0
  20. package/browser-extensions/chrome/rules.json +1 -0
  21. package/browser-extensions/chrome/test-chrome.html +145 -0
  22. package/browser-extensions/chrome/test-mixed-content.html +190 -0
  23. package/browser-extensions/chrome/test-uri-pattern.html +199 -0
  24. package/browser-extensions/firefox/README.md +134 -0
  25. package/browser-extensions/firefox/background.js +804 -0
  26. package/browser-extensions/firefox/content.js +120 -0
  27. package/browser-extensions/firefox/debug-errors.html +229 -0
  28. package/browser-extensions/firefox/debug-https.html +113 -0
  29. package/browser-extensions/firefox/devtools.html +9 -0
  30. package/browser-extensions/firefox/devtools.js +24 -0
  31. package/browser-extensions/firefox/icons/gx_off_128.png +0 -0
  32. package/browser-extensions/firefox/icons/gx_off_16.png +0 -0
  33. package/browser-extensions/firefox/icons/gx_off_32.png +0 -0
  34. package/browser-extensions/firefox/icons/gx_off_64.png +0 -0
  35. package/browser-extensions/firefox/icons/gx_on_128.png +0 -0
  36. package/browser-extensions/firefox/icons/gx_on_16.png +0 -0
  37. package/browser-extensions/firefox/icons/gx_on_32.png +0 -0
  38. package/browser-extensions/firefox/icons/gx_on_64.png +0 -0
  39. package/browser-extensions/firefox/inspector.js +1087 -0
  40. package/browser-extensions/firefox/manifest.json +67 -0
  41. package/browser-extensions/firefox/panel.html +638 -0
  42. package/browser-extensions/firefox/panel.js +862 -0
  43. package/browser-extensions/firefox/popup.html +525 -0
  44. package/browser-extensions/firefox/popup.js +536 -0
  45. package/browser-extensions/firefox/test-gramercy.html +126 -0
  46. package/browser-extensions/firefox/test-imports.html +58 -0
  47. package/browser-extensions/firefox/test-masking.html +147 -0
  48. package/browser-extensions/firefox/test-uri-pattern.html +199 -0
  49. package/package.json +7 -2
  50. package/runtime/PortalContainer.vue +326 -0
  51. package/runtime/dev-tools/DevToolsModal.vue +217 -0
  52. package/runtime/dev-tools/LayoutSwitcher.vue +221 -0
  53. package/runtime/dev-tools/MockDataEditor.vue +621 -0
  54. package/runtime/dev-tools/SocketSimulator.vue +562 -0
  55. package/runtime/dev-tools/StoreInspector.vue +644 -0
  56. package/runtime/dev-tools/index.js +6 -0
  57. package/runtime/gxpStringsPlugin.js +428 -0
  58. package/runtime/index.html +22 -0
  59. package/runtime/main.js +32 -0
  60. package/runtime/mock-api/auth-middleware.js +97 -0
  61. package/runtime/mock-api/image-generator.js +221 -0
  62. package/runtime/mock-api/index.js +197 -0
  63. package/runtime/mock-api/response-generator.js +394 -0
  64. package/runtime/mock-api/route-generator.js +323 -0
  65. package/runtime/mock-api/socket-triggers.js +371 -0
  66. package/runtime/mock-api/spec-loader.js +300 -0
  67. package/runtime/server.js +180 -0
  68. package/runtime/stores/gxpPortalConfigStore.js +554 -0
  69. package/runtime/stores/index.js +6 -0
  70. package/runtime/vite-inspector-plugin.js +749 -0
  71. package/runtime/vite-source-tracker-plugin.js +232 -0
  72. package/runtime/vite.config.js +402 -0
  73. package/scripts/launch-chrome.js +90 -0
  74. package/scripts/pack-chrome.js +91 -0
  75. package/socket-events/AiSessionMessageCreated.json +18 -0
  76. package/socket-events/SocialStreamPostCreated.json +24 -0
  77. package/socket-events/SocialStreamPostVariantCompleted.json +23 -0
  78. package/template/README.md +332 -0
  79. package/template/app-manifest.json +32 -0
  80. package/template/dev-assets/images/avatar-placeholder.png +0 -0
  81. package/template/dev-assets/images/background-placeholder.jpg +0 -0
  82. package/template/dev-assets/images/banner-placeholder.jpg +0 -0
  83. package/template/dev-assets/images/icon-placeholder.png +0 -0
  84. package/template/dev-assets/images/logo-placeholder.png +0 -0
  85. package/template/dev-assets/images/product-placeholder.jpg +0 -0
  86. package/template/dev-assets/images/thumbnail-placeholder.jpg +0 -0
  87. package/template/env.example +51 -0
  88. package/template/gitignore +53 -0
  89. package/template/index.html +22 -0
  90. package/template/main.js +28 -0
  91. package/template/src/DemoPage.vue +459 -0
  92. package/template/src/Plugin.vue +38 -0
  93. package/template/src/stores/index.js +9 -0
  94. package/template/src/stores/test-data.json +173 -0
  95. package/template/theme-layouts/AdditionalStyling.css +0 -0
  96. package/template/theme-layouts/PrivateLayout.vue +39 -0
  97. package/template/theme-layouts/PublicLayout.vue +39 -0
  98. package/template/theme-layouts/SystemLayout.vue +39 -0
  99. package/template/vite.config.js +333 -0
@@ -0,0 +1,221 @@
1
+ <template>
2
+ <div class="layout-switcher">
3
+ <p class="switcher-description">
4
+ Switch between different layout templates to preview how your plugin renders in various contexts.
5
+ </p>
6
+
7
+ <div class="layout-options">
8
+ <div
9
+ v-for="layout in layouts"
10
+ :key="layout.id"
11
+ :class="['layout-option', { active: currentLayout === layout.id }]"
12
+ @click="$emit('change-layout', layout.id)"
13
+ >
14
+ <div class="layout-preview" :class="layout.id">
15
+ <div class="preview-header"></div>
16
+ <div class="preview-sidebar" v-if="layout.hasSidebar"></div>
17
+ <div class="preview-content"></div>
18
+ <div class="preview-footer" v-if="layout.hasFooter"></div>
19
+ </div>
20
+ <div class="layout-info">
21
+ <h4 class="layout-name">{{ layout.name }}</h4>
22
+ <p class="layout-desc">{{ layout.description }}</p>
23
+ </div>
24
+ <div v-if="currentLayout === layout.id" class="active-indicator">
25
+ Active
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ <div class="layout-details">
31
+ <h4>Current Layout: {{ getCurrentLayoutName() }}</h4>
32
+ <p class="layout-hint">
33
+ Layouts are defined in <code>theme-layouts/</code> directory.
34
+ Each layout receives portal settings, navigation, and assets as props.
35
+ </p>
36
+ </div>
37
+ </div>
38
+ </template>
39
+
40
+ <script setup>
41
+ import { computed } from 'vue';
42
+
43
+ const props = defineProps({
44
+ currentLayout: {
45
+ type: String,
46
+ default: 'public'
47
+ }
48
+ });
49
+
50
+ const emit = defineEmits(['change-layout']);
51
+
52
+ const layouts = [
53
+ {
54
+ id: 'public',
55
+ name: 'Public Layout',
56
+ description: 'Full-width layout for public-facing pages with no authentication required.',
57
+ hasSidebar: false,
58
+ hasFooter: true
59
+ },
60
+ {
61
+ id: 'private',
62
+ name: 'Private Layout',
63
+ description: 'Layout with sidebar navigation for authenticated user experiences.',
64
+ hasSidebar: true,
65
+ hasFooter: true
66
+ },
67
+ {
68
+ id: 'system',
69
+ name: 'System Layout',
70
+ description: 'Minimal layout for system pages like login, error screens, etc.',
71
+ hasSidebar: false,
72
+ hasFooter: false
73
+ }
74
+ ];
75
+
76
+ function getCurrentLayoutName() {
77
+ const layout = layouts.find(l => l.id === props.currentLayout);
78
+ return layout ? layout.name : props.currentLayout;
79
+ }
80
+ </script>
81
+
82
+ <style scoped>
83
+ .layout-switcher {
84
+ display: flex;
85
+ flex-direction: column;
86
+ gap: 20px;
87
+ }
88
+
89
+ .switcher-description {
90
+ color: #888;
91
+ font-size: 13px;
92
+ margin: 0;
93
+ }
94
+
95
+ .layout-options {
96
+ display: grid;
97
+ grid-template-columns: repeat(3, 1fr);
98
+ gap: 16px;
99
+ }
100
+
101
+ .layout-option {
102
+ background: #2d2d2d;
103
+ border-radius: 8px;
104
+ padding: 16px;
105
+ cursor: pointer;
106
+ border: 2px solid transparent;
107
+ transition: all 0.2s;
108
+ position: relative;
109
+ }
110
+
111
+ .layout-option:hover {
112
+ border-color: #3d3d3d;
113
+ background: #333;
114
+ }
115
+
116
+ .layout-option.active {
117
+ border-color: #61dafb;
118
+ background: #2a3a4a;
119
+ }
120
+
121
+ .layout-preview {
122
+ height: 80px;
123
+ background: #1e1e1e;
124
+ border-radius: 4px;
125
+ margin-bottom: 12px;
126
+ position: relative;
127
+ overflow: hidden;
128
+ display: grid;
129
+ }
130
+
131
+ .layout-preview.public {
132
+ grid-template-rows: 20px 1fr 16px;
133
+ }
134
+
135
+ .layout-preview.private {
136
+ grid-template-columns: 30px 1fr;
137
+ grid-template-rows: 20px 1fr 16px;
138
+ }
139
+
140
+ .layout-preview.system {
141
+ grid-template-rows: 1fr;
142
+ }
143
+
144
+ .preview-header {
145
+ background: #3d3d3d;
146
+ grid-column: 1 / -1;
147
+ }
148
+
149
+ .preview-sidebar {
150
+ background: #2d2d2d;
151
+ grid-row: 2 / -1;
152
+ }
153
+
154
+ .preview-content {
155
+ background: #252525;
156
+ }
157
+
158
+ .preview-footer {
159
+ background: #3d3d3d;
160
+ grid-column: 1 / -1;
161
+ }
162
+
163
+ .layout-info {
164
+ text-align: center;
165
+ }
166
+
167
+ .layout-name {
168
+ margin: 0 0 4px 0;
169
+ font-size: 13px;
170
+ font-weight: 500;
171
+ color: #e0e0e0;
172
+ }
173
+
174
+ .layout-desc {
175
+ margin: 0;
176
+ font-size: 11px;
177
+ color: #888;
178
+ line-height: 1.4;
179
+ }
180
+
181
+ .active-indicator {
182
+ position: absolute;
183
+ top: 8px;
184
+ right: 8px;
185
+ background: #61dafb;
186
+ color: #1e1e1e;
187
+ padding: 2px 8px;
188
+ border-radius: 4px;
189
+ font-size: 10px;
190
+ font-weight: 600;
191
+ text-transform: uppercase;
192
+ }
193
+
194
+ .layout-details {
195
+ background: #2d2d2d;
196
+ border-radius: 8px;
197
+ padding: 16px;
198
+ }
199
+
200
+ .layout-details h4 {
201
+ margin: 0 0 8px 0;
202
+ font-size: 14px;
203
+ color: #61dafb;
204
+ }
205
+
206
+ .layout-hint {
207
+ margin: 0;
208
+ font-size: 12px;
209
+ color: #888;
210
+ line-height: 1.5;
211
+ }
212
+
213
+ .layout-hint code {
214
+ background: #3d3d3d;
215
+ padding: 2px 6px;
216
+ border-radius: 3px;
217
+ font-family: 'SF Mono', Monaco, monospace;
218
+ font-size: 11px;
219
+ color: #e0e0e0;
220
+ }
221
+ </style>