codeapp-js 0.1.1 → 0.2.2

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 (121) hide show
  1. package/codeApp/dist/codeapp.js +552 -78
  2. package/codeApp/dist/power-apps-data.js +2531 -2531
  3. package/dev files/outlook.js +218 -9
  4. package/examples/combined demo/dist/codeapp.js +1098 -0
  5. package/examples/combined demo/dist/index.js +69 -114
  6. package/examples/combined demo/dist/power-apps-data.js +646 -170
  7. package/examples/combined demo/power.config.json +42 -42
  8. package/examples/dataverse Demo/dist/codeapp.js +1085 -0
  9. package/examples/dataverse Demo/dist/index.html +54 -54
  10. package/examples/dataverse Demo/dist/index.js +82 -70
  11. package/examples/dataverse Demo/dist/power-apps-data.js +551 -170
  12. package/examples/dataverse Demo/power.config.json +34 -34
  13. package/examples/dataverse Demo/readme.md +79 -79
  14. package/examples/groups Demo/dist/codeapp.js +1085 -0
  15. package/examples/groups Demo/dist/index.js +27 -27
  16. package/examples/groups Demo/dist/power-apps-data.js +551 -170
  17. package/examples/kanban/dist/dataverse.js +94 -94
  18. package/examples/kanban/dist/environmentVar.js +55 -55
  19. package/examples/kanban/dist/office365groups.js +97 -97
  20. package/examples/kanban/dist/office365users.js +169 -169
  21. package/examples/kanban/dist/outlook.js +162 -162
  22. package/examples/kanban/dist/power-apps-data.js +560 -138
  23. package/examples/kanban/dist/sharepoint.js +339 -339
  24. package/examples/myProfile/dist/index.html +184 -184
  25. package/examples/myProfile/dist/index.js +141 -141
  26. package/examples/myProfile/dist/office365users.js +169 -169
  27. package/examples/myProfile/dist/power-apps-data.js +560 -138
  28. package/examples/myProfile/power.config.json +22 -22
  29. package/examples/myProfile/readme.md +79 -79
  30. package/examples/outlook Demo/dist/codeapp.js +1085 -0
  31. package/examples/outlook Demo/dist/index.html +35 -35
  32. package/examples/outlook Demo/dist/index.js +170 -166
  33. package/examples/outlook Demo/dist/outlook.js +121 -121
  34. package/examples/outlook Demo/dist/power-apps-data.js +551 -170
  35. package/examples/outlook Demo/dist/styles.css +84 -84
  36. package/examples/outlook Demo/readme.md +82 -82
  37. package/examples/outlook Demo2/OutlookDemo_1_0_0_1.zip +0 -0
  38. package/examples/outlook Demo2/agent/decision-log.md +7 -0
  39. package/examples/outlook Demo2/dist/codeapp.js +1334 -0
  40. package/examples/outlook Demo2/dist/icon-512.png +0 -0
  41. package/examples/outlook Demo2/dist/index.html +98 -0
  42. package/examples/outlook Demo2/dist/index.js +346 -0
  43. package/examples/outlook Demo2/dist/power-apps-data.js +3007 -0
  44. package/examples/outlook Demo2/dist/styles.css +639 -0
  45. package/examples/outlook Demo2/power.config.json +23 -0
  46. package/examples/outlook Demo2/src/generated/index.ts +14 -0
  47. package/examples/outlook Demo2/src/generated/models/Office365GroupsModel.ts +363 -0
  48. package/examples/outlook Demo2/src/generated/models/Office365OutlookModel.ts +2046 -0
  49. package/examples/outlook Demo2/src/generated/models/Office365UsersModel.ts +254 -0
  50. package/examples/outlook Demo2/src/generated/services/Office365GroupsService.ts +326 -0
  51. package/examples/outlook Demo2/src/generated/services/Office365OutlookService.ts +2476 -0
  52. package/examples/outlook Demo2/src/generated/services/Office365UsersService.ts +358 -0
  53. package/examples/planning Poker/.vscode/settings.json +4 -4
  54. package/examples/planning Poker/additional files/customizations (tables).xml +6428 -6428
  55. package/examples/planning Poker/additional files/dataverse-tables.json +165 -165
  56. package/examples/planning Poker/additional files/readme.md +122 -122
  57. package/examples/planning Poker/dist/dataverse.js +78 -78
  58. package/examples/planning Poker/dist/index.html +198 -198
  59. package/examples/planning Poker/dist/index.js +954 -954
  60. package/examples/planning Poker/dist/power-apps-data.js +560 -138
  61. package/examples/planning Poker/dist/styles.css +815 -815
  62. package/examples/sharePoint Demo/agent/decision-log.md +5 -5
  63. package/examples/sharePoint Demo/dist/codeapp.js +1085 -0
  64. package/examples/sharePoint Demo/dist/index.js +44 -51
  65. package/examples/sharePoint Demo/dist/power-apps-data.js +551 -170
  66. package/examples/sharePoint Demo/power.config.json +22 -22
  67. package/examples/solution explorer/agent/decision-log.md +27 -0
  68. package/examples/solution explorer/agent/mockup-01-swiss-grid.html +452 -0
  69. package/examples/solution explorer/agent/mockup-02-dark-glass.html +496 -0
  70. package/examples/solution explorer/agent/mockup-03-paper-console.html +510 -0
  71. package/examples/solution explorer/agent/mockup-04-neon-noir.html +546 -0
  72. package/examples/solution explorer/agent/mockup-05-zen-garden.html +534 -0
  73. package/examples/solution explorer/dist/codeapp.js +1098 -0
  74. package/examples/solution explorer/dist/icon-512.png +0 -0
  75. package/examples/solution explorer/dist/index.html +80 -0
  76. package/examples/solution explorer/dist/index.js +735 -0
  77. package/examples/solution explorer/dist/power-apps-data.js +3007 -0
  78. package/examples/solution explorer/dist/styles.css +571 -0
  79. package/examples/solution explorer/power.config.json +151 -0
  80. package/examples/todo/dist/dataverse.js +64 -64
  81. package/examples/todo/dist/index.html +75 -75
  82. package/examples/todo/dist/index.js +8 -8
  83. package/examples/todo/dist/power-apps-data.js +560 -138
  84. package/examples/todo/dist/renderer.js +375 -375
  85. package/examples/todo/dist/styles.css +691 -691
  86. package/examples/todo/power.config.json +34 -34
  87. package/package.json +1 -8
  88. package/docs-mockups/atelier/index.html +0 -120
  89. package/docs-mockups/atelier/script.js +0 -23
  90. package/docs-mockups/atelier/styles.css +0 -361
  91. package/docs-mockups/field-guide/index.html +0 -112
  92. package/docs-mockups/field-guide/script.js +0 -20
  93. package/docs-mockups/field-guide/styles.css +0 -272
  94. package/docs-mockups/index.html +0 -80
  95. package/docs-mockups/maker-hub/index.html +0 -178
  96. package/docs-mockups/maker-hub/script.js +0 -20
  97. package/docs-mockups/maker-hub/styles.css +0 -404
  98. package/docs-mockups/script.js +0 -26
  99. package/docs-mockups/signal/index.html +0 -146
  100. package/docs-mockups/signal/script.js +0 -20
  101. package/docs-mockups/signal/styles.css +0 -314
  102. package/docs-mockups/styles.css +0 -287
  103. package/examples/combined demo/dist/dataverse.js +0 -86
  104. package/examples/combined demo/dist/environmentVar.js +0 -55
  105. package/examples/combined demo/dist/office365groups.js +0 -97
  106. package/examples/combined demo/dist/office365users.js +0 -169
  107. package/examples/combined demo/dist/outlook.js +0 -162
  108. package/examples/combined demo/dist/sharepoint.js +0 -339
  109. package/examples/dataverse Demo/dist/dataverse.js +0 -86
  110. package/examples/groups Demo/dist/dataverse.js +0 -86
  111. package/examples/groups Demo/dist/environmentVar.js +0 -55
  112. package/examples/groups Demo/dist/office365groups.js +0 -97
  113. package/examples/groups Demo/dist/office365users.js +0 -169
  114. package/examples/groups Demo/dist/outlook.js +0 -162
  115. package/examples/groups Demo/dist/sharepoint.js +0 -339
  116. package/examples/sharePoint Demo/dist/dataverse.js +0 -94
  117. package/examples/sharePoint Demo/dist/environmentVar.js +0 -55
  118. package/examples/sharePoint Demo/dist/office365groups.js +0 -97
  119. package/examples/sharePoint Demo/dist/office365users.js +0 -169
  120. package/examples/sharePoint Demo/dist/outlook.js +0 -162
  121. package/examples/sharePoint Demo/dist/sharepoint.js +0 -339
@@ -1,112 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Field Guide | codeapp-js Docs</title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com">
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
- <link href="https://fonts.googleapis.com/css2?family=Literata:opsz,wght@7..72,600;7..72,700&family=Outfit:wght@400;500;600;700&display=swap" rel="stylesheet">
10
- <link rel="stylesheet" href="./styles.css">
11
- </head>
12
- <body>
13
- <div class="poster"></div>
14
- <div class="shell">
15
- <header class="masthead">
16
- <div>
17
- <p class="kicker">Field guide concept</p>
18
- <h1>Make the docs feel like a practical handbook.</h1>
19
- <p class="subcopy">This direction is warmer and more instructional. It works if the documentation should teach, not just reference, and if examples are a major selling point.</p>
20
- </div>
21
- <a class="returnLink" href="../index.html">Back to chooser</a>
22
- </header>
23
-
24
- <main class="guideGrid">
25
- <aside class="mapColumn">
26
- <div class="noteCard">
27
- <p class="cardLabel">Best for</p>
28
- <p>Onboarding, examples, and “how do I wire this up?” documentation.</p>
29
- </div>
30
- <nav class="routeCard">
31
- <a href="#trailhead">Trailhead</a>
32
- <a href="#route">Route</a>
33
- <a href="#kit">Starter kit</a>
34
- <a href="#samples">Sample paths</a>
35
- </nav>
36
- </aside>
37
-
38
- <section class="contentColumn">
39
- <article class="featurePanel" id="trailhead">
40
- <p class="cardLabel">Trailhead</p>
41
- <h2>codeapp-js keeps the Power Apps model, but lowers the intimidation.</h2>
42
- <p>Explain the package as a guidebook: generated models and services, a familiar `power.config.json`, and a sequence of clear steps from local dev to `pac code push`.</p>
43
- </article>
44
-
45
- <article class="featurePanel routePanel" id="route">
46
- <div>
47
- <p class="cardLabel">Route overview</p>
48
- <h2>Three-step narrative beats scattered across the page like a field notebook.</h2>
49
- </div>
50
- <div class="routeSteps">
51
- <div>
52
- <span>01</span>
53
- <p>Install and serve from the repo root.</p>
54
- </div>
55
- <div>
56
- <span>02</span>
57
- <p>Describe data sources and connector references.</p>
58
- </div>
59
- <div>
60
- <span>03</span>
61
- <p>Generate services and verify examples.</p>
62
- </div>
63
- </div>
64
- </article>
65
-
66
- <article class="kitPanel" id="kit">
67
- <div class="kitHeader">
68
- <p class="cardLabel">Starter kit</p>
69
- <div class="modeToggle" aria-label="Reading mode">
70
- <button class="modeButton is-active" data-mode="builder">Builder mode</button>
71
- <button class="modeButton" data-mode="reference">Reference mode</button>
72
- </div>
73
- </div>
74
- <div class="modeContent is-active" id="builder">
75
- <p>Lead with a short guided walkthrough using the exact order a developer follows in a fresh repo.</p>
76
- <pre><code>npm install
77
- npm start
78
- pac auth create
79
- pac env select --environment "environment-id"</code></pre>
80
- </div>
81
- <div class="modeContent" id="reference">
82
- <p>Condense the docs into a quick reference with focused callouts for `databaseReferences`, `connectionReferences`, and generated outputs.</p>
83
- <pre><code>src/generated/services/*
84
- src/generated/models/*
85
- examples/*/dist/</code></pre>
86
- </div>
87
- </article>
88
-
89
- <article class="samplesPanel" id="samples">
90
- <p class="cardLabel">Sample paths</p>
91
- <div class="sampleList">
92
- <article>
93
- <h3>Starter app path</h3>
94
- <p>Direct users to `codeApp/dist/` when they only need the first working app.</p>
95
- </article>
96
- <article>
97
- <h3>Connector path</h3>
98
- <p>Break out Outlook, SharePoint, Groups, and Users into short, purpose-driven walkthroughs.</p>
99
- </article>
100
- <article>
101
- <h3>Generated code path</h3>
102
- <p>Explain how service files map back to Dataverse tables and connection references.</p>
103
- </article>
104
- </div>
105
- </article>
106
- </section>
107
- </main>
108
- </div>
109
-
110
- <script src="./script.js"></script>
111
- </body>
112
- </html>
@@ -1,20 +0,0 @@
1
- const aModeButtons = Array.from(document.querySelectorAll('.modeButton'));
2
- const aModeContents = Array.from(document.querySelectorAll('.modeContent'));
3
-
4
- const setMode = (sModeId) => {
5
- aModeButtons.forEach((eButton) => {
6
- const bIsMatch = eButton.dataset.mode === sModeId;
7
- eButton.classList.toggle('is-active', bIsMatch);
8
- });
9
-
10
- aModeContents.forEach((eContent) => {
11
- const bIsMatch = eContent.id === sModeId;
12
- eContent.classList.toggle('is-active', bIsMatch);
13
- });
14
- };
15
-
16
- aModeButtons.forEach((eButton) => {
17
- eButton.addEventListener('click', () => {
18
- setMode(eButton.dataset.mode);
19
- });
20
- });
@@ -1,272 +0,0 @@
1
- :root {
2
- --bg: #efe1c6;
3
- --paper: #f8f0dc;
4
- --paper-strong: #f3e4c0;
5
- --ink: #2a241b;
6
- --muted: #65594a;
7
- --forest: #425438;
8
- --rust: #b55c3b;
9
- --line: rgba(42, 36, 27, 0.14);
10
- --shadow: 0 18px 48px rgba(78, 58, 28, 0.16);
11
- }
12
-
13
- * {
14
- box-sizing: border-box;
15
- }
16
-
17
- html {
18
- scroll-behavior: smooth;
19
- }
20
-
21
- body {
22
- margin: 0;
23
- min-height: 100vh;
24
- background:
25
- radial-gradient(circle at 15% 10%, rgba(181, 92, 59, 0.16), transparent 22%),
26
- radial-gradient(circle at 85% 20%, rgba(66, 84, 56, 0.14), transparent 18%),
27
- linear-gradient(180deg, #f4e7cb, var(--bg));
28
- color: var(--ink);
29
- font-family: 'Outfit', sans-serif;
30
- }
31
-
32
- .poster {
33
- position: fixed;
34
- inset: 0;
35
- pointer-events: none;
36
- background-image:
37
- linear-gradient(rgba(42, 36, 27, 0.04) 1px, transparent 1px),
38
- linear-gradient(90deg, rgba(42, 36, 27, 0.04) 1px, transparent 1px);
39
- background-size: 36px 36px;
40
- opacity: 0.55;
41
- }
42
-
43
- .shell {
44
- position: relative;
45
- z-index: 1;
46
- width: min(1180px, calc(100% - 42px));
47
- margin: 0 auto;
48
- padding: 34px 0 52px;
49
- }
50
-
51
- .masthead {
52
- display: flex;
53
- justify-content: space-between;
54
- gap: 24px;
55
- align-items: end;
56
- }
57
-
58
- .kicker,
59
- .cardLabel {
60
- margin: 0;
61
- color: var(--rust);
62
- font-size: 0.82rem;
63
- font-weight: 800;
64
- letter-spacing: 0.16em;
65
- text-transform: uppercase;
66
- }
67
-
68
- .masthead h1,
69
- .featurePanel h2,
70
- .routePanel h2,
71
- .samplesPanel h3 {
72
- font-family: 'Literata', serif;
73
- }
74
-
75
- .masthead h1 {
76
- max-width: 720px;
77
- margin: 12px 0 0;
78
- font-size: clamp(3rem, 6vw, 5.2rem);
79
- line-height: 0.95;
80
- }
81
-
82
- .subcopy {
83
- max-width: 720px;
84
- margin: 16px 0 0;
85
- color: var(--muted);
86
- line-height: 1.8;
87
- }
88
-
89
- .returnLink {
90
- border: 1px solid var(--line);
91
- border-radius: 999px;
92
- padding: 12px 16px;
93
- background: rgba(248, 240, 220, 0.72);
94
- color: var(--ink);
95
- font-weight: 700;
96
- text-decoration: none;
97
- }
98
-
99
- .guideGrid {
100
- display: grid;
101
- grid-template-columns: 280px minmax(0, 1fr);
102
- gap: 22px;
103
- margin-top: 26px;
104
- }
105
-
106
- .mapColumn {
107
- display: grid;
108
- gap: 18px;
109
- align-content: start;
110
- }
111
-
112
- .noteCard,
113
- .routeCard,
114
- .featurePanel,
115
- .kitPanel,
116
- .samplesPanel {
117
- border: 1px solid var(--line);
118
- border-radius: 28px;
119
- background: linear-gradient(180deg, rgba(248, 240, 220, 0.95), rgba(243, 228, 192, 0.96));
120
- box-shadow: var(--shadow);
121
- }
122
-
123
- .noteCard,
124
- .routeCard,
125
- .featurePanel,
126
- .kitPanel,
127
- .samplesPanel {
128
- padding: 22px;
129
- }
130
-
131
- .noteCard p:last-child,
132
- .featurePanel p,
133
- .modeContent p,
134
- .sampleList p {
135
- color: var(--muted);
136
- line-height: 1.8;
137
- }
138
-
139
- .routeCard {
140
- display: grid;
141
- gap: 12px;
142
- }
143
-
144
- .routeCard a {
145
- color: var(--forest);
146
- font-weight: 700;
147
- text-decoration: none;
148
- }
149
-
150
- .contentColumn {
151
- display: grid;
152
- gap: 18px;
153
- }
154
-
155
- .featurePanel h2,
156
- .routePanel h2 {
157
- margin: 12px 0 0;
158
- font-size: clamp(2rem, 3.2vw, 3.3rem);
159
- line-height: 1.05;
160
- }
161
-
162
- .routePanel {
163
- display: grid;
164
- gap: 18px;
165
- }
166
-
167
- .routeSteps {
168
- display: grid;
169
- grid-template-columns: repeat(3, minmax(0, 1fr));
170
- gap: 14px;
171
- }
172
-
173
- .routeSteps div {
174
- padding: 18px;
175
- border: 1px dashed rgba(42, 36, 27, 0.22);
176
- border-radius: 20px;
177
- background: rgba(248, 240, 220, 0.6);
178
- }
179
-
180
- .routeSteps span {
181
- color: var(--forest);
182
- font-size: 1.4rem;
183
- font-weight: 800;
184
- }
185
-
186
- .kitHeader {
187
- display: flex;
188
- justify-content: space-between;
189
- gap: 16px;
190
- align-items: center;
191
- }
192
-
193
- .modeToggle {
194
- display: flex;
195
- gap: 8px;
196
- flex-wrap: wrap;
197
- }
198
-
199
- .modeButton {
200
- border: 1px solid var(--line);
201
- border-radius: 999px;
202
- padding: 10px 14px;
203
- background: transparent;
204
- color: var(--muted);
205
- font: inherit;
206
- cursor: pointer;
207
- }
208
-
209
- .modeButton.is-active {
210
- background: var(--forest);
211
- color: #f8f0dc;
212
- }
213
-
214
- .modeContent {
215
- display: none;
216
- margin-top: 16px;
217
- }
218
-
219
- .modeContent.is-active {
220
- display: block;
221
- }
222
-
223
- pre {
224
- overflow-x: auto;
225
- margin: 0;
226
- padding: 18px;
227
- border-radius: 18px;
228
- background: #292419;
229
- color: #f8f0dc;
230
- }
231
-
232
- code {
233
- font-family: 'Courier New', monospace;
234
- }
235
-
236
- .sampleList {
237
- display: grid;
238
- grid-template-columns: repeat(3, minmax(0, 1fr));
239
- gap: 14px;
240
- }
241
-
242
- .sampleList article {
243
- padding: 18px;
244
- border-radius: 20px;
245
- background: rgba(248, 240, 220, 0.7);
246
- border: 1px solid rgba(42, 36, 27, 0.1);
247
- }
248
-
249
- .sampleList h3 {
250
- margin: 0 0 10px;
251
- font-size: 1.35rem;
252
- }
253
-
254
- @media (max-width: 980px) {
255
- .guideGrid,
256
- .routeSteps,
257
- .sampleList {
258
- grid-template-columns: 1fr;
259
- }
260
- }
261
-
262
- @media (max-width: 760px) {
263
- .shell {
264
- width: min(100% - 24px, 1180px);
265
- }
266
-
267
- .masthead,
268
- .kitHeader {
269
- flex-direction: column;
270
- align-items: flex-start;
271
- }
272
- }
@@ -1,80 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>CodeApp JS Docs Mockups</title>
7
- <link rel="stylesheet" href="./styles.css">
8
- </head>
9
- <body>
10
- <div class="shell">
11
- <header class="topbar">
12
- <div class="brandBlock">
13
- <div class="suiteMark">P</div>
14
- <div>
15
- <p class="eyebrow">Power Platform-style Study</p>
16
- <h1>Two new docs mockups shaped like maker and model-driven experiences.</h1>
17
- </div>
18
- </div>
19
- <div class="topbarMeta">
20
- <span>codeapp-js</span>
21
- <span>Static prototype</span>
22
- </div>
23
- </header>
24
-
25
- <section class="heroPanel">
26
- <div>
27
- <p class="heroLead">The new direction drops the art-direction experiments and moves toward the visual language of make.powerapps.com and model-driven apps: light enterprise chrome, left rails, tabs, command bars, cards, forms, and data tables.</p>
28
- <div class="heroActions">
29
- <a class="primaryAction" href="./maker-hub/index.html">Open Maker Hub</a>
30
- <a class="secondaryAction" href="./model-workspace/index.html">Open Model Workspace</a>
31
- </div>
32
- </div>
33
- <div class="heroStats">
34
- <article>
35
- <strong>01</strong>
36
- <span>Maker portal docs hub</span>
37
- </article>
38
- <article>
39
- <strong>02</strong>
40
- <span>Model-driven reference workspace</span>
41
- </article>
42
- </div>
43
- </section>
44
-
45
- <main class="conceptGrid">
46
- <article class="conceptCard makerCard" data-index="1">
47
- <p class="conceptNumber">01</p>
48
- <h2>Maker Hub</h2>
49
- <p class="conceptTone">Inspired by make.powerapps.com</p>
50
- <p class="conceptBody">A docs home screen that feels like a maker portal: product chrome, command bar, learning cards, quick starts, and guided entry points into install, connectors, and examples.</p>
51
- <ul class="tags">
52
- <li>Portal shell</li>
53
- <li>Command bar</li>
54
- <li>Learning cards</li>
55
- </ul>
56
- <a href="./maker-hub/index.html">Preview concept</a>
57
- </article>
58
-
59
- <article class="conceptCard workspaceCard" data-index="2">
60
- <p class="conceptNumber">02</p>
61
- <h2>Model Workspace</h2>
62
- <p class="conceptTone">Inspired by model-driven apps</p>
63
- <p class="conceptBody">A dense reference layout that behaves like a model-driven work area with sitemap navigation, entity forms, related data grids, and tabbed detail panes for docs content.</p>
64
- <ul class="tags">
65
- <li>Sitemap</li>
66
- <li>Form canvas</li>
67
- <li>Grid + details</li>
68
- </ul>
69
- <a href="./model-workspace/index.html">Preview concept</a>
70
- </article>
71
- </main>
72
-
73
- <footer class="footerNote">
74
- <p>Keyboard shortcuts: press 1 for Maker Hub or 2 for Model Workspace.</p>
75
- </footer>
76
- </div>
77
-
78
- <script src="./script.js"></script>
79
- </body>
80
- </html>
@@ -1,178 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Maker Hub | codeapp-js Docs</title>
7
- <link rel="stylesheet" href="./styles.css">
8
- </head>
9
- <body>
10
- <div class="appShell">
11
- <header class="suiteBar">
12
- <div class="suiteLeft">
13
- <button class="iconButton" aria-label="Open menu">☰</button>
14
- <div class="suiteBadge">P</div>
15
- <strong>Power Apps</strong>
16
- <span class="suiteDivider"></span>
17
- <span class="suiteLabel">codeapp-js documentation</span>
18
- </div>
19
- <div class="suiteRight">
20
- <input class="searchBox" type="search" placeholder="Search docs, connectors, examples">
21
- <button class="iconButton" aria-label="Notifications">⎋</button>
22
- <div class="avatar">CW</div>
23
- </div>
24
- </header>
25
-
26
- <div class="workspace">
27
- <aside class="leftRail">
28
- <p class="railLabel">Explore</p>
29
- <nav class="railNav">
30
- <a class="is-active" href="#home">Home</a>
31
- <a href="#quickstart">Quick start</a>
32
- <a href="#connectors">Connectors</a>
33
- <a href="#examples">Examples</a>
34
- <a href="#reference">Reference</a>
35
- </nav>
36
- <div class="railPanel">
37
- <p class="panelTitle">Environment</p>
38
- <p>Default workspace</p>
39
- <span>CLI ready</span>
40
- </div>
41
- </aside>
42
-
43
- <main class="contentArea">
44
- <section class="commandBar">
45
- <div class="commandSet">
46
- <button class="commandPrimary">Get started</button>
47
- <button class="commandButton">Install</button>
48
- <button class="commandButton">Configure</button>
49
- <button class="commandButton">Push app</button>
50
- </div>
51
- <div class="commandSet">
52
- <button class="commandButton">Share</button>
53
- <button class="commandButton">Feedback</button>
54
- </div>
55
- </section>
56
-
57
- <section class="pageHeader" id="home">
58
- <div>
59
- <p class="eyebrow">Maker portal concept</p>
60
- <h1>Build a documentation home that feels native to the Power Platform ecosystem.</h1>
61
- <p class="lead">This mockup treats docs as a product workspace: short paths in, task cards, status surfaces, and a familiar Microsoft-style shell rather than a marketing landing page.</p>
62
- </div>
63
- <article class="summaryCard">
64
- <span>Library summary</span>
65
- <strong>JavaScript-first Power Apps Code Apps workflow</strong>
66
- <p>Generated services, `power.config.json`, connector references, and example apps from one hub.</p>
67
- </article>
68
- </section>
69
-
70
- <section class="tabRow" aria-label="Sections">
71
- <button class="tabButton is-active" data-target="overviewPanel">Overview</button>
72
- <button class="tabButton" data-target="setupPanel">Setup</button>
73
- <button class="tabButton" data-target="examplesPanel">Examples</button>
74
- <button class="tabButton" data-target="referencePanel">Reference</button>
75
- </section>
76
-
77
- <section class="panelDeck">
78
- <div class="contentPanel is-active" id="overviewPanel">
79
- <div class="cardGrid wideGrid">
80
- <article class="infoCard accentCard">
81
- <p class="cardLabel">Why this works</p>
82
- <h2>It matches how Power Platform users already navigate products.</h2>
83
- <p>Use entry cards for install, connectors, Dataverse tables, and generated code. The surface feels like product documentation inside a maker experience, not a detached microsite.</p>
84
- </article>
85
- <article class="infoCard">
86
- <p class="cardLabel">Recommended entry points</p>
87
- <ul class="checkList">
88
- <li>Install and serve from the repo root</li>
89
- <li>Connect Dataverse or Office 365 services</li>
90
- <li>Explore starter and sample apps</li>
91
- </ul>
92
- </article>
93
- <article class="infoCard">
94
- <p class="cardLabel">At-a-glance</p>
95
- <div class="metricRow">
96
- <div><strong>5</strong><span>connector families</span></div>
97
- <div><strong>4173</strong><span>default port</span></div>
98
- <div><strong>pac</strong><span>CLI workflow</span></div>
99
- </div>
100
- </article>
101
- </div>
102
- </div>
103
-
104
- <div class="contentPanel" id="setupPanel">
105
- <div class="cardGrid">
106
- <article class="infoCard" id="quickstart">
107
- <p class="cardLabel">Quick start</p>
108
- <pre><code>npm install
109
- npm start
110
- pac auth create
111
- pac env select --environment "environment-id"</code></pre>
112
- </article>
113
- <article class="infoCard">
114
- <p class="cardLabel">Config map</p>
115
- <p>The docs can split `databaseReferences.default.cds.dataSources` and `connectionReferences` into focused cards instead of one giant JSON blob.</p>
116
- <div class="miniPills">
117
- <span>Dataverse tables</span>
118
- <span>Outlook</span>
119
- <span>SharePoint</span>
120
- <span>Groups</span>
121
- <span>Users</span>
122
- </div>
123
- </article>
124
- </div>
125
- </div>
126
-
127
- <div class="contentPanel" id="examplesPanel">
128
- <div class="cardGrid triGrid" id="examples">
129
- <article class="infoCard">
130
- <p class="cardLabel">Starter app</p>
131
- <strong>codeApp/dist/</strong>
132
- <p>Primary onboarding destination for first success.</p>
133
- </article>
134
- <article class="infoCard">
135
- <p class="cardLabel">Connector demos</p>
136
- <strong>examples/outlook Demo/dist/</strong>
137
- <p>Ideal for service-specific walkthrough pages.</p>
138
- </article>
139
- <article class="infoCard">
140
- <p class="cardLabel">App gallery</p>
141
- <strong>todo, kanban, planning poker</strong>
142
- <p>Use these to show progressive complexity.</p>
143
- </article>
144
- </div>
145
- </div>
146
-
147
- <div class="contentPanel" id="referencePanel">
148
- <div class="cardGrid" id="reference">
149
- <article class="infoCard">
150
- <p class="cardLabel">Generated files</p>
151
- <table>
152
- <tbody>
153
- <tr><td>Services</td><td>src/generated/services/*</td></tr>
154
- <tr><td>Models</td><td>src/generated/models/*</td></tr>
155
- <tr><td>Config</td><td>power.config.json</td></tr>
156
- </tbody>
157
- </table>
158
- </article>
159
- <article class="infoCard" id="connectors">
160
- <p class="cardLabel">Connector references</p>
161
- <ul class="checkList compactList">
162
- <li>shared_commondataserviceforapps</li>
163
- <li>shared_office365</li>
164
- <li>shared_sharepointonline</li>
165
- <li>shared_office365groups</li>
166
- <li>shared_office365users</li>
167
- </ul>
168
- </article>
169
- </div>
170
- </div>
171
- </section>
172
- </main>
173
- </div>
174
- </div>
175
-
176
- <script src="./script.js"></script>
177
- </body>
178
- </html>
@@ -1,20 +0,0 @@
1
- const aMakerTabs = Array.from(document.querySelectorAll('.tabButton'));
2
- const aMakerPanels = Array.from(document.querySelectorAll('.contentPanel'));
3
-
4
- const setMakerPanel = (sTargetId) => {
5
- aMakerTabs.forEach((eButton) => {
6
- const bIsActive = eButton.dataset.target === sTargetId;
7
- eButton.classList.toggle('is-active', bIsActive);
8
- });
9
-
10
- aMakerPanels.forEach((ePanel) => {
11
- const bIsActive = ePanel.id === sTargetId;
12
- ePanel.classList.toggle('is-active', bIsActive);
13
- });
14
- };
15
-
16
- aMakerTabs.forEach((eButton) => {
17
- eButton.addEventListener('click', () => {
18
- setMakerPanel(eButton.dataset.target);
19
- });
20
- });