@sharpee/devkit 1.0.4 → 1.0.6

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.
@@ -3,6 +3,17 @@
3
3
  *
4
4
  * Creates a new Sharpee story project with the basic structure.
5
5
  */
6
+ /**
7
+ * Dependency ranges to inject into a scaffold, derived from this devkit's own
8
+ * version (so a project pins the platform line this CLI shipped with — never a
9
+ * stale literal). The platform (`@sharpee/sharpee`) is pinned to the major line
10
+ * (its patch may lag devkit's); `@sharpee/devkit` is pinned to its own current
11
+ * version so the scaffold gets an introspect-capable CLI.
12
+ */
13
+ export declare function platformRanges(): {
14
+ sharpeeRange: string;
15
+ devkitRange: string;
16
+ };
6
17
  /**
7
18
  * Run the init command
8
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4FH;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FlE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAkB9E;AA4CD;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FlE"}
@@ -38,6 +38,7 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  };
39
39
  })();
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.platformRanges = platformRanges;
41
42
  exports.runInitCommand = runInitCommand;
42
43
  const fs = __importStar(require("fs"));
43
44
  const path = __importStar(require("path"));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FH,wCA0FC;AAvLD,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AAErC,4CAA4C;AAC5C,8EAA8E;AAC9E,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC;IAClD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAa3D;;;;;;GAMG;AACH,SAAS,cAAc;IACrB,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,2EAA2E;IAC3E,gFAAgF;IAChF,gFAAgF;IAChF,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/E,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,YAAY,EAAE,IAAI,KAAK,MAAM,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,YAAqB;IAC3D,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,WAAW,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACpD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,YAAoB,EAAE,OAAqB;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,OAAO;SACX,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC;SAC7C,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,UAAU,CAAC;SACnD,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC;SAC1C,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC;SACpD,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC,YAAY,CAAC;SACzD,OAAO,CAAC,yBAAyB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,iBAAiB;IACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,QAAQ,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC;IAEnE,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,qBAAqB,SAAS,iBAAiB,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC;IACrE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,yBAAyB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACrH,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;IAC9H,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;IAEvI,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;IACvD,MAAM,OAAO,GAAiB;QAC5B,OAAO;QACP,UAAU;QACV,MAAM;QACN,WAAW;QACX,YAAY;QACZ,WAAW;KACZ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,6BAA6B;IAC7B,MAAM,SAAS,GAAG;QAChB,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE;QAClD,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,cAAc,EAAE;QACtD,EAAE,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,EAAE;KACzD,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG;;;;CAInB,CAAC;IACA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/devkit/src/standalone/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,489 @@
1
+ /*
2
+ * base.css — structural rules for the Sharpee browser client.
3
+ *
4
+ * Per ADR-170, this file owns the layout, positioning, scroll, and
5
+ * state-modifier wiring shared by every theme. It contains no colors,
6
+ * fonts, or visual decoration — those live in per-theme CSS files.
7
+ *
8
+ * Loaded BEFORE theme CSS (`<link rel="stylesheet" href="base.css">`
9
+ * appears before any theme link in the head).
10
+ */
11
+
12
+ /* ----- Reset ----- */
13
+
14
+ * {
15
+ box-sizing: border-box;
16
+ margin: 0;
17
+ padding: 0;
18
+ }
19
+
20
+ html, body {
21
+ height: 100%;
22
+ overflow: hidden;
23
+ }
24
+
25
+ button {
26
+ font: inherit;
27
+ color: inherit;
28
+ background: transparent;
29
+ border: 0;
30
+ cursor: pointer;
31
+ }
32
+
33
+ ul, ol, menu {
34
+ list-style: none;
35
+ }
36
+
37
+ /* ----- Window shell ----- */
38
+
39
+ .sharpee-window {
40
+ display: flex;
41
+ flex-direction: column;
42
+ height: 100vh;
43
+ max-width: 80ch;
44
+ margin: 0 auto;
45
+ }
46
+
47
+ @supports (height: 100dvh) {
48
+ .sharpee-window {
49
+ height: 100dvh;
50
+ }
51
+ }
52
+
53
+ .sharpee-window-title-bar {
54
+ display: flex;
55
+ align-items: center;
56
+ flex-shrink: 0;
57
+ }
58
+
59
+ .sharpee-window-title-bar-controls {
60
+ margin-left: auto;
61
+ display: flex;
62
+ align-items: center;
63
+ }
64
+
65
+ /* ----- Menu bar ----- */
66
+
67
+ .sharpee-menu-bar {
68
+ display: flex;
69
+ align-items: center;
70
+ flex-shrink: 0;
71
+ height: 28px;
72
+ font-size: 14px;
73
+ }
74
+
75
+ .sharpee-menu-bar-item {
76
+ position: relative;
77
+ }
78
+
79
+ .sharpee-menu-bar-trigger {
80
+ padding: 4px 10px;
81
+ }
82
+
83
+ /* Dropdowns hidden by default; shown when the parent item has --open
84
+ or, for nested submenus, when its parent option is hovered. */
85
+
86
+ .sharpee-menu-dropdown {
87
+ display: none;
88
+ position: absolute;
89
+ top: 100%;
90
+ left: 0;
91
+ min-width: 160px;
92
+ z-index: 1000;
93
+ }
94
+
95
+ .sharpee-menu-bar-item--open > .sharpee-menu-dropdown {
96
+ display: block;
97
+ }
98
+
99
+ .sharpee-menu-dropdown .sharpee-menu-dropdown {
100
+ top: 0;
101
+ left: 100%;
102
+ }
103
+
104
+ .sharpee-menu-option:hover > .sharpee-menu-dropdown,
105
+ .sharpee-menu-option:focus-within > .sharpee-menu-dropdown {
106
+ display: block;
107
+ }
108
+
109
+ .sharpee-menu-option {
110
+ padding: 6px 12px;
111
+ cursor: pointer;
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: space-between;
115
+ position: relative;
116
+ }
117
+
118
+ .sharpee-menu-option--checked::before {
119
+ content: "\2713";
120
+ margin-right: 8px;
121
+ }
122
+
123
+ .sharpee-menu-option--disabled {
124
+ cursor: not-allowed;
125
+ opacity: 0.5;
126
+ }
127
+
128
+ .sharpee-menu-separator {
129
+ height: 1px;
130
+ margin: 4px 8px;
131
+ list-style: none;
132
+ }
133
+
134
+ .sharpee-menu-submenu-indicator {
135
+ margin-left: 12px;
136
+ }
137
+
138
+ /* ----- Status bar ----- */
139
+
140
+ .sharpee-status-bar {
141
+ display: flex;
142
+ justify-content: space-between;
143
+ flex-shrink: 0;
144
+ padding: 4px 8px;
145
+ }
146
+
147
+ /* ----- Prose pane ----- */
148
+
149
+ .sharpee-prose-pane {
150
+ position: relative;
151
+ flex: 1;
152
+ overflow-y: auto;
153
+ padding: 8px;
154
+ padding-bottom: 1em;
155
+ }
156
+
157
+ .sharpee-prose-overlay {
158
+ position: absolute;
159
+ inset: 0;
160
+ pointer-events: none;
161
+ }
162
+
163
+ /* Continuation entries — emitted by the main channel renderer when a
164
+ block carries `tight: true`. Collapses the inter-paragraph margin so
165
+ the line stacks flush against its predecessor. Used where a former
166
+ intra-block `\n` was lifted to a block boundary (book text under its
167
+ prefix, banner lines under a title). */
168
+ .sharpee-prose-pane p.main-entry--tight {
169
+ margin-top: 0;
170
+ margin-bottom: 0;
171
+ }
172
+
173
+ /* ----- Opening banner (structured pieces) ----- */
174
+ /* Each piece below is a `<p class="main-entry {name}">` emitted by the
175
+ engine's `buildBannerBlocks`. Defaults keep them flush; themes may
176
+ override font weight, size, alignment. The `banner-spacer` is the
177
+ only piece that occupies vertical space — it's an empty `<p>` whose
178
+ height supplies the visual gap between the credits and any
179
+ story-defined tail (instructions / tagline). */
180
+
181
+ .sharpee-prose-pane p.game-title,
182
+ .sharpee-prose-pane p.story-version,
183
+ .sharpee-prose-pane p.platform-version,
184
+ .sharpee-prose-pane p.sub-title,
185
+ .sharpee-prose-pane p.author-list {
186
+ margin-top: 0;
187
+ margin-bottom: 0;
188
+ }
189
+
190
+ .sharpee-prose-pane p.banner-spacer {
191
+ margin-top: 0;
192
+ margin-bottom: 0;
193
+ /* Empty <p> — render its line-height as the visual gap. */
194
+ min-height: 1em;
195
+ }
196
+
197
+ /* Game title default — bold, slightly larger. Themes may override. */
198
+ .sharpee-prose-pane p.game-title {
199
+ font-weight: bold;
200
+ }
201
+
202
+ /* ----- Input bar ----- */
203
+
204
+ .sharpee-input-bar {
205
+ display: flex;
206
+ align-items: center;
207
+ flex-shrink: 0;
208
+ padding: 4px 8px;
209
+ }
210
+
211
+ .sharpee-input-prompt {
212
+ margin-right: 4px;
213
+ }
214
+
215
+ .sharpee-input-field {
216
+ flex: 1;
217
+ font: inherit;
218
+ color: inherit;
219
+ background: transparent;
220
+ border: 0;
221
+ outline: 0;
222
+ }
223
+
224
+ /* ----- Dialogs (native <dialog>) ----- */
225
+
226
+ .sharpee-dialog {
227
+ padding: 0;
228
+ border: 0;
229
+ min-width: 300px;
230
+ max-width: 90vw;
231
+ max-height: 80vh;
232
+ display: flex;
233
+ flex-direction: column;
234
+ }
235
+
236
+ .sharpee-dialog:not([open]) {
237
+ display: none;
238
+ }
239
+
240
+ .sharpee-dialog-title {
241
+ padding: 4px 8px;
242
+ font-weight: bold;
243
+ text-align: center;
244
+ font-size: inherit;
245
+ }
246
+
247
+ .sharpee-dialog-body {
248
+ padding: 12px;
249
+ flex: 1;
250
+ overflow-y: auto;
251
+ }
252
+
253
+ .sharpee-dialog-buttons {
254
+ display: flex;
255
+ justify-content: center;
256
+ gap: 16px;
257
+ padding: 12px;
258
+ }
259
+
260
+ .sharpee-dialog-button {
261
+ padding: 6px 20px;
262
+ min-width: 80px;
263
+ }
264
+
265
+ .sharpee-dialog-button:disabled {
266
+ cursor: not-allowed;
267
+ opacity: 0.5;
268
+ }
269
+
270
+ /* ----- Multi-user surfaces (ADR-176) ----- */
271
+
272
+ /* Presence */
273
+
274
+ .sharpee-presence-panel {
275
+ display: flex;
276
+ flex-direction: column;
277
+ flex-shrink: 0;
278
+ overflow-y: auto;
279
+ }
280
+
281
+ .sharpee-presence-list {
282
+ display: flex;
283
+ flex-direction: column;
284
+ }
285
+
286
+ .sharpee-presence-item {
287
+ display: flex;
288
+ align-items: center;
289
+ padding: 4px 8px;
290
+ }
291
+
292
+ .sharpee-presence-avatar {
293
+ flex-shrink: 0;
294
+ margin-right: 8px;
295
+ }
296
+
297
+ /* Chat */
298
+
299
+ .sharpee-chat-panel {
300
+ display: flex;
301
+ flex-direction: column;
302
+ flex-shrink: 0;
303
+ overflow: hidden;
304
+ }
305
+
306
+ .sharpee-chat-history {
307
+ flex: 1;
308
+ overflow-y: auto;
309
+ overflow-anchor: auto; /* scroll-pin to bottom on new content */
310
+ padding: 8px;
311
+ display: flex;
312
+ flex-direction: column;
313
+ }
314
+
315
+ .sharpee-chat-message {
316
+ padding: 2px 0;
317
+ display: block;
318
+ }
319
+
320
+ .sharpee-chat-message-author {
321
+ font-weight: bold;
322
+ margin-right: 4px;
323
+ }
324
+
325
+ .sharpee-chat-message-text {
326
+ display: inline;
327
+ }
328
+
329
+ .sharpee-chat-input {
330
+ flex-shrink: 0;
331
+ width: 100%;
332
+ font: inherit;
333
+ color: inherit;
334
+ background: transparent;
335
+ border: 0;
336
+ outline: 0;
337
+ padding: 4px 8px;
338
+ }
339
+
340
+ /* Lock-on-typing */
341
+
342
+ .sharpee-lock-banner {
343
+ flex-shrink: 0;
344
+ padding: 2px 8px;
345
+ font-style: italic;
346
+ }
347
+
348
+ .sharpee-lock-banner--hidden {
349
+ display: none;
350
+ pointer-events: none;
351
+ }
352
+
353
+ .sharpee-input-bar--locked .sharpee-input-field {
354
+ pointer-events: none;
355
+ }
356
+
357
+ .sharpee-input-bar--locked .sharpee-input-field:read-only,
358
+ .sharpee-input-bar--locked .sharpee-input-field[readonly] {
359
+ cursor: not-allowed;
360
+ }
361
+
362
+ /* Lobby */
363
+
364
+ .sharpee-lobby {
365
+ flex: 1;
366
+ overflow-y: auto;
367
+ padding: 16px;
368
+ }
369
+
370
+ .sharpee-lobby--hidden {
371
+ display: none;
372
+ pointer-events: none;
373
+ }
374
+
375
+ .sharpee-lobby-list {
376
+ display: flex;
377
+ flex-direction: column;
378
+ }
379
+
380
+ .sharpee-lobby-item {
381
+ padding: 8px;
382
+ cursor: pointer;
383
+ }
384
+
385
+ /* Named saves */
386
+
387
+ .sharpee-saves-panel {
388
+ display: flex;
389
+ flex-direction: column;
390
+ overflow-y: auto;
391
+ }
392
+
393
+ .sharpee-saves-panel--hidden {
394
+ display: none;
395
+ pointer-events: none;
396
+ }
397
+
398
+ .sharpee-saves-list {
399
+ display: flex;
400
+ flex-direction: column;
401
+ }
402
+
403
+ .sharpee-saves-item {
404
+ padding: 6px 8px;
405
+ cursor: pointer;
406
+ }
407
+
408
+ /* Identity form */
409
+
410
+ .sharpee-identity-form {
411
+ display: flex;
412
+ flex-direction: column;
413
+ gap: 8px;
414
+ max-width: 320px;
415
+ margin: 32px auto;
416
+ padding: 16px;
417
+ }
418
+
419
+ /* Transient-panel --hidden modifier (shared semantics with ADR-170) */
420
+
421
+ .sharpee-presence-panel--hidden,
422
+ .sharpee-chat-panel--hidden {
423
+ display: none;
424
+ pointer-events: none;
425
+ }
426
+
427
+ /* ----- Mobile structural adjustments ----- */
428
+
429
+ @media (max-width: 600px) {
430
+ .sharpee-window {
431
+ max-width: 100%;
432
+ }
433
+
434
+ .sharpee-status-bar {
435
+ padding-top: max(6px, env(safe-area-inset-top));
436
+ padding-left: max(12px, env(safe-area-inset-left));
437
+ padding-right: max(12px, env(safe-area-inset-right));
438
+ }
439
+
440
+ .sharpee-prose-pane {
441
+ padding: 12px;
442
+ padding-left: max(12px, env(safe-area-inset-left));
443
+ padding-right: max(12px, env(safe-area-inset-right));
444
+ }
445
+
446
+ .sharpee-input-bar {
447
+ padding: 8px 12px;
448
+ padding-bottom: max(8px, env(safe-area-inset-bottom));
449
+ padding-left: max(12px, env(safe-area-inset-left));
450
+ padding-right: max(12px, env(safe-area-inset-right));
451
+ min-height: 48px;
452
+ }
453
+
454
+ .sharpee-input-field {
455
+ font-size: 16px; /* prevent iOS zoom on focus */
456
+ padding: 8px 0;
457
+ }
458
+ }
459
+
460
+ @media (max-height: 500px) and (orientation: landscape) {
461
+ .sharpee-status-bar {
462
+ padding: 2px 8px;
463
+ padding-left: max(8px, env(safe-area-inset-left));
464
+ padding-right: max(8px, env(safe-area-inset-right));
465
+ }
466
+
467
+ .sharpee-prose-pane {
468
+ padding: 4px 8px;
469
+ padding-left: max(8px, env(safe-area-inset-left));
470
+ padding-right: max(8px, env(safe-area-inset-right));
471
+ }
472
+
473
+ .sharpee-input-bar {
474
+ padding: 4px 8px;
475
+ padding-left: max(8px, env(safe-area-inset-left));
476
+ padding-right: max(8px, env(safe-area-inset-right));
477
+ min-height: 36px;
478
+ }
479
+ }
480
+
481
+ @media (pointer: coarse) {
482
+ .sharpee-input-field {
483
+ padding: 12px 0;
484
+ }
485
+
486
+ .sharpee-input-bar {
487
+ min-height: 52px;
488
+ }
489
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Browser entry point for {{STORY_TITLE}} — generated by Sharpee IDE.
3
+ *
4
+ * A starting point that wires this story into the browser client. Add any
5
+ * story-specific channel/audio renderers before `client.start()`.
6
+ */
7
+
8
+ import { GameEngine } from '@sharpee/engine';
9
+ import { WorldModel, EntityType } from '@sharpee/world-model';
10
+ import { Parser } from '@sharpee/parser-en-us';
11
+ import { LanguageProvider } from '@sharpee/lang-en-us';
12
+ import { PerceptionService } from '@sharpee/stdlib';
13
+ import { BrowserClient, ThemeManager } from '@sharpee/platform-browser';
14
+ import { story } from './index.js';
15
+ import { STORY_VERSION, ENGINE_VERSION, BUILD_DATE } from './version.js';
16
+
17
+ const THEME_STORAGE_KEY = '{{STORY_ID}}-theme';
18
+ ThemeManager.applyEarlyTheme(THEME_STORAGE_KEY);
19
+
20
+ const author = story.config.author;
21
+ const client = new BrowserClient({
22
+ storagePrefix: '{{STORY_ID}}-',
23
+ defaultTheme: 'modern-dark',
24
+ themes: [
25
+ { id: 'modern-dark', name: 'Modern Dark' },
26
+ { id: 'paper', name: 'Paper' },
27
+ ],
28
+ storyInfo: {
29
+ title: story.config.title,
30
+ description: story.config.description || '',
31
+ authors: Array.isArray(author) ? author.join(', ') : author,
32
+ version: STORY_VERSION,
33
+ engineVersion: ENGINE_VERSION,
34
+ buildDate: BUILD_DATE,
35
+ },
36
+ });
37
+
38
+ async function start(): Promise<void> {
39
+ client.initialize({
40
+ statusLocation: document.getElementById('location-name'),
41
+ statusScore: document.getElementById('score-turns'),
42
+ textContent: document.getElementById('text-content'),
43
+ mainWindow: document.getElementById('main-window'),
44
+ commandInput: document.getElementById('command-input') as HTMLInputElement,
45
+ saveDialog: document.getElementById('save-dialog') as HTMLDialogElement,
46
+ restoreDialog: document.getElementById('restore-dialog') as HTMLDialogElement,
47
+ startupDialog: document.getElementById('startup-dialog') as HTMLDialogElement,
48
+ saveNameInput: document.getElementById('save-name-input') as HTMLInputElement,
49
+ saveSlotsListEl: document.getElementById('save-slots-list'),
50
+ restoreSlotsListEl: document.getElementById('restore-slots-list'),
51
+ noSavesMessage: document.getElementById('no-saves-message'),
52
+ startupSaveInfo: document.getElementById('startup-save-info'),
53
+ menuBar: document.getElementById('menu-bar'),
54
+ });
55
+
56
+ const world = new WorldModel();
57
+ const player = world.createEntity('player', EntityType.ACTOR);
58
+ world.setPlayer(player.id);
59
+
60
+ const language = new LanguageProvider();
61
+ const parser = new Parser(language);
62
+ if (story.extendParser) story.extendParser(parser);
63
+ if (story.extendLanguage) story.extendLanguage(language);
64
+
65
+ const perceptionService = new PerceptionService();
66
+ const engine = new GameEngine({ world, player, parser, language, perceptionService });
67
+
68
+ client.connectEngine(engine, world);
69
+ engine.setStory(story);
70
+ engine.registerSaveRestoreHooks(client.getSaveRestoreHooks());
71
+
72
+ await client.start();
73
+ }
74
+
75
+ if (document.readyState === 'loading') {
76
+ document.addEventListener('DOMContentLoaded', start);
77
+ } else {
78
+ start();
79
+ }