@storyshelf/app 0.7.0 → 0.8.0

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 (264) hide show
  1. package/dist/app-types.d.mts +1 -3
  2. package/dist/asset-manifest.mjs +1 -2
  3. package/dist/assets/htmx.mjs +1 -2
  4. package/dist/assets/mark.mjs +1 -2
  5. package/dist/boot-tasks.mjs +1 -2
  6. package/dist/build-state-flags.mjs +1 -2
  7. package/dist/build-state-setup.mjs +1 -2
  8. package/dist/capture-alerts.mjs +1 -2
  9. package/dist/capture-process.mjs +1 -2
  10. package/dist/capture-setup.mjs +1 -2
  11. package/dist/connections.mjs +1 -2
  12. package/dist/consumer-setup.mjs +1 -2
  13. package/dist/credential-keys.mjs +1 -2
  14. package/dist/credentials.mjs +1 -2
  15. package/dist/git-status.mjs +1 -2
  16. package/dist/hidden-data.mjs +1 -2
  17. package/dist/index.d.mts +0 -2
  18. package/dist/index.mjs +2 -3
  19. package/dist/insights/budget.mjs +1 -2
  20. package/dist/insights/deps.mjs +1 -2
  21. package/dist/insights/errors.mjs +1 -2
  22. package/dist/insights/health-panel.mjs +0 -1
  23. package/dist/insights/job.mjs +1 -2
  24. package/dist/insights/load-health.mjs +1 -2
  25. package/dist/insights/load-triage.mjs +1 -2
  26. package/dist/insights/panel.mjs +1 -2
  27. package/dist/insights/request.mjs +1 -2
  28. package/dist/insights/stale.mjs +1 -2
  29. package/dist/insights/usage-report.mjs +1 -2
  30. package/dist/insights/view.mjs +1 -2
  31. package/dist/job-canceller.mjs +1 -2
  32. package/dist/job-queue.mjs +1 -2
  33. package/dist/jobs-setup.mjs +1 -2
  34. package/dist/lifecycle.mjs +2 -3
  35. package/dist/lifecycle.mjs.map +1 -1
  36. package/dist/middleware/auth-gate.mjs +1 -2
  37. package/dist/middleware/csrf.mjs +1 -2
  38. package/dist/middleware/rate-limit.mjs +1 -2
  39. package/dist/middleware/request-log.mjs +1 -2
  40. package/dist/middleware/require-review.mjs +1 -2
  41. package/dist/middleware/require-testing.mjs +1 -2
  42. package/dist/middleware/server-timing.mjs +1 -2
  43. package/dist/middleware/setup-gate.mjs +1 -2
  44. package/dist/middleware/store-scope.mjs +1 -2
  45. package/dist/notifications-pause.mjs +1 -2
  46. package/dist/notify.d.mts +1 -3
  47. package/dist/notify.mjs +1 -2
  48. package/dist/pages/a11y-violations.mjs +1 -2
  49. package/dist/pages/admin-ai.mjs +1 -2
  50. package/dist/pages/admin-system-origin.mjs +19 -10
  51. package/dist/pages/admin-system-origin.mjs.map +1 -1
  52. package/dist/pages/admin-system-targets.mjs +1 -2
  53. package/dist/pages/admin-system.mjs +1 -2
  54. package/dist/pages/build-detail.mjs +1 -2
  55. package/dist/pages/build-diff-actions.mjs +1 -2
  56. package/dist/pages/build-diff-comments.mjs +1 -2
  57. package/dist/pages/build-diff-default.mjs +53 -0
  58. package/dist/pages/build-diff-default.mjs.map +1 -0
  59. package/dist/pages/build-diff-environment.mjs +1 -2
  60. package/dist/pages/build-diff-header.mjs +1 -2
  61. package/dist/pages/build-diff-insight.mjs +1 -2
  62. package/dist/pages/build-diff-model.mjs +20 -3
  63. package/dist/pages/build-diff-model.mjs.map +1 -1
  64. package/dist/pages/build-diff-nav.mjs +1 -2
  65. package/dist/pages/build-diff-reference.mjs +84 -0
  66. package/dist/pages/build-diff-reference.mjs.map +1 -0
  67. package/dist/pages/build-diff-shortcuts.mjs +1 -2
  68. package/dist/pages/build-diff-stale.mjs +1 -2
  69. package/dist/pages/build-diff-usage.mjs +1 -2
  70. package/dist/pages/build-diff-viewer.mjs +38 -12
  71. package/dist/pages/build-diff-viewer.mjs.map +1 -1
  72. package/dist/pages/build-diff.mjs +6 -12
  73. package/dist/pages/build-diff.mjs.map +1 -1
  74. package/dist/pages/build-tests.mjs +1 -2
  75. package/dist/pages/component-detail.mjs +1 -2
  76. package/dist/pages/component-stories.mjs +1 -2
  77. package/dist/pages/compute-jobs.mjs +1 -2
  78. package/dist/pages/design-links.mjs +1 -2
  79. package/dist/pages/environment-change.mjs +1 -2
  80. package/dist/pages/health-panel.mjs +1 -2
  81. package/dist/pages/invite.mjs +1 -2
  82. package/dist/pages/label-detail.mjs +1 -2
  83. package/dist/pages/library-grid.mjs +1 -2
  84. package/dist/pages/library-model.mjs +1 -2
  85. package/dist/pages/library-snapshots.mjs +1 -2
  86. package/dist/pages/library.mjs +1 -2
  87. package/dist/pages/login.mjs +1 -2
  88. package/dist/pages/notifications-paused.mjs +1 -2
  89. package/dist/pages/passkey-ceremony.mjs +1 -2
  90. package/dist/pages/profile.mjs +1 -2
  91. package/dist/pages/project-builds-table.mjs +1 -2
  92. package/dist/pages/project-builds.mjs +1 -2
  93. package/dist/pages/project-create.mjs +1 -2
  94. package/dist/pages/project-settings.mjs +1 -2
  95. package/dist/pages/projects-card.mjs +1 -2
  96. package/dist/pages/projects.mjs +1 -2
  97. package/dist/pages/review-changeset.mjs +1 -2
  98. package/dist/pages/review-comments.mjs +1 -2
  99. package/dist/pages/review-verdict.mjs +1 -2
  100. package/dist/pages/root.mjs +1 -2
  101. package/dist/pages/settings-ai.mjs +1 -2
  102. package/dist/pages/settings-capture.mjs +1 -2
  103. package/dist/pages/settings-design-credential.mjs +1 -2
  104. package/dist/pages/settings-design-links.mjs +1 -2
  105. package/dist/pages/settings-design.mjs +1 -2
  106. package/dist/pages/settings-general.mjs +1 -2
  107. package/dist/pages/settings-labels.mjs +1 -2
  108. package/dist/pages/settings-links.mjs +1 -2
  109. package/dist/pages/settings-members.mjs +1 -2
  110. package/dist/pages/settings-notifications-git.mjs +1 -2
  111. package/dist/pages/settings-notifications.mjs +1 -2
  112. package/dist/pages/settings-tests.mjs +1 -2
  113. package/dist/pages/settings-tokens.mjs +1 -2
  114. package/dist/pages/settings-webhooks.mjs +1 -2
  115. package/dist/pages/storybook.mjs +1 -2
  116. package/dist/pages/target-choices.mjs +1 -2
  117. package/dist/publish-setup.mjs +1 -2
  118. package/dist/retention-timer.mjs +10 -11
  119. package/dist/retention-timer.mjs.map +1 -1
  120. package/dist/review-events.mjs +1 -2
  121. package/dist/routers/admin-pages.mjs +1 -2
  122. package/dist/routers/admin-public-origin.mjs +10 -3
  123. package/dist/routers/admin-public-origin.mjs.map +1 -1
  124. package/dist/routers/admin.mjs +8 -4
  125. package/dist/routers/admin.mjs.map +1 -1
  126. package/dist/routers/assets.mjs +1 -2
  127. package/dist/routers/attempts.mjs +1 -2
  128. package/dist/routers/auth-sync.mjs +1 -2
  129. package/dist/routers/auth.mjs +1 -2
  130. package/dist/routers/baseline-guard.mjs +2 -3
  131. package/dist/routers/baseline-guard.mjs.map +1 -1
  132. package/dist/routers/baseline-reference.mjs +72 -0
  133. package/dist/routers/baseline-reference.mjs.map +1 -0
  134. package/dist/routers/baselines.handlers.mjs +1 -2
  135. package/dist/routers/baselines.mjs +1 -2
  136. package/dist/routers/build-cancel.mjs +1 -2
  137. package/dist/routers/build-changeset.mjs +1 -2
  138. package/dist/routers/build-reviews.handlers.mjs +1 -2
  139. package/dist/routers/build-reviews.mjs +1 -2
  140. package/dist/routers/builds.handlers.mjs +23 -9
  141. package/dist/routers/builds.handlers.mjs.map +1 -1
  142. package/dist/routers/builds.mjs +7 -3
  143. package/dist/routers/builds.mjs.map +1 -1
  144. package/dist/routers/capture-cache.mjs +29 -0
  145. package/dist/routers/capture-cache.mjs.map +1 -0
  146. package/dist/routers/capture-config.mjs +1 -2
  147. package/dist/routers/comments.mjs +1 -2
  148. package/dist/routers/comparison-image.mjs +29 -0
  149. package/dist/routers/comparison-image.mjs.map +1 -0
  150. package/dist/routers/component-catalog.handlers.mjs +1 -2
  151. package/dist/routers/component.handlers.mjs +1 -2
  152. package/dist/routers/connections.mjs +1 -2
  153. package/dist/routers/design-connect.handlers.mjs +1 -2
  154. package/dist/routers/design.handlers.mjs +1 -2
  155. package/dist/routers/flash.mjs +1 -2
  156. package/dist/routers/health-report.mjs +1 -2
  157. package/dist/routers/health.mjs +1 -2
  158. package/dist/routers/helpers.mjs +1 -2
  159. package/dist/routers/htmx.mjs +1 -2
  160. package/dist/routers/insights-ui.mjs +1 -2
  161. package/dist/routers/insights.handlers.mjs +1 -2
  162. package/dist/routers/insights.mjs +1 -2
  163. package/dist/routers/labels.mjs +1 -2
  164. package/dist/routers/links.handlers.mjs +1 -2
  165. package/dist/routers/links.mjs +1 -2
  166. package/dist/routers/media.mjs +14 -5
  167. package/dist/routers/media.mjs.map +1 -1
  168. package/dist/routers/members.mjs +1 -2
  169. package/dist/routers/notification-channels.mjs +1 -2
  170. package/dist/routers/notification-subscriptions.mjs +1 -2
  171. package/dist/routers/oauth-state.mjs +1 -2
  172. package/dist/routers/preview-base.mjs +1 -2
  173. package/dist/routers/preview-token.mjs +1 -2
  174. package/dist/routers/profile.mjs +1 -2
  175. package/dist/routers/projects.mjs +1 -2
  176. package/dist/routers/publish-upload.mjs +19 -12
  177. package/dist/routers/publish-upload.mjs.map +1 -1
  178. package/dist/routers/published-access.mjs +1 -2
  179. package/dist/routers/published-compression.mjs +109 -0
  180. package/dist/routers/published-compression.mjs.map +1 -0
  181. package/dist/routers/published-files.mjs +26 -9
  182. package/dist/routers/published-files.mjs.map +1 -1
  183. package/dist/routers/review-forms.mjs +1 -2
  184. package/dist/routers/review-next.mjs +1 -2
  185. package/dist/routers/review-section.handlers.mjs +1 -2
  186. package/dist/routers/review-switch-off.mjs +1 -2
  187. package/dist/routers/schemas.mjs +1 -2
  188. package/dist/routers/scoped-models.mjs +1 -2
  189. package/dist/routers/settings-ai.mjs +1 -2
  190. package/dist/routers/settings-capture.mjs +1 -2
  191. package/dist/routers/settings-design.mjs +1 -2
  192. package/dist/routers/settings-general.mjs +1 -2
  193. package/dist/routers/settings-git-channel.mjs +1 -2
  194. package/dist/routers/settings-labels.mjs +1 -2
  195. package/dist/routers/settings-links.mjs +1 -2
  196. package/dist/routers/settings-members.mjs +1 -2
  197. package/dist/routers/settings-notifications.mjs +1 -2
  198. package/dist/routers/settings-tokens.mjs +1 -2
  199. package/dist/routers/settings-webhooks.mjs +1 -2
  200. package/dist/routers/settings.handlers.mjs +1 -2
  201. package/dist/routers/settings.mjs +1 -2
  202. package/dist/routers/signed-storybook.mjs +5 -3
  203. package/dist/routers/signed-storybook.mjs.map +1 -1
  204. package/dist/routers/snapshot-groups.mjs +1 -2
  205. package/dist/routers/snapshots.mjs +1 -2
  206. package/dist/routers/storybook.mjs +21 -17
  207. package/dist/routers/storybook.mjs.map +1 -1
  208. package/dist/routers/tokens.mjs +1 -2
  209. package/dist/routers/ui.mjs +4 -2
  210. package/dist/routers/ui.mjs.map +1 -1
  211. package/dist/routers/webhooks.mjs +1 -2
  212. package/dist/routers/well-known.mjs +1 -2
  213. package/dist/routes/api-routes.mjs +1 -2
  214. package/dist/routes/classification.mjs +1 -2
  215. package/dist/routes/openapi-classes.mjs +1 -2
  216. package/dist/routes/page-routes.mjs +2 -3
  217. package/dist/routes/page-routes.mjs.map +1 -1
  218. package/dist/runtime.mjs +1 -2
  219. package/dist/serverless.mjs +1 -2
  220. package/dist/store.mjs +1 -2
  221. package/dist/targets.mjs +1 -2
  222. package/dist/ui/avatar.mjs +1 -2
  223. package/dist/ui/buttons.mjs +1 -2
  224. package/dist/ui/code-block.mjs +1 -2
  225. package/dist/ui/compare-stage.mjs +86 -54
  226. package/dist/ui/compare-stage.mjs.map +1 -1
  227. package/dist/ui/csrf-field.mjs +1 -2
  228. package/dist/ui/css.mjs +1 -2
  229. package/dist/ui/design-reference.mjs +1 -2
  230. package/dist/ui/document.mjs +1 -2
  231. package/dist/ui/dropdown.mjs +1 -2
  232. package/dist/ui/feedback.mjs +1 -2
  233. package/dist/ui/filter-input.mjs +1 -2
  234. package/dist/ui/forms.mjs +1 -2
  235. package/dist/ui/icons/icon.mjs +1 -2
  236. package/dist/ui/icons/paths.mjs +1 -2
  237. package/dist/ui/icons/sprite.mjs +1 -2
  238. package/dist/ui/kbd.mjs +1 -2
  239. package/dist/ui/layout.mjs +1 -2
  240. package/dist/ui/preview-embed.mjs +1 -2
  241. package/dist/ui/progress.mjs +1 -2
  242. package/dist/ui/segmented.mjs +1 -2
  243. package/dist/ui/shell/account.mjs +1 -2
  244. package/dist/ui/shell/bare.mjs +1 -2
  245. package/dist/ui/shell/boot-script.mjs +1 -2
  246. package/dist/ui/shell/client-script.mjs +1 -2
  247. package/dist/ui/shell/nav.mjs +1 -2
  248. package/dist/ui/shell/review-script.mjs +17 -3
  249. package/dist/ui/shell/review-script.mjs.map +1 -1
  250. package/dist/ui/shell/sidebar.mjs +1 -2
  251. package/dist/ui/shell/topbar.mjs +1 -2
  252. package/dist/ui/stacks.mjs +1 -2
  253. package/dist/ui/styles/base.mjs +1 -2
  254. package/dist/ui/styles/behavior.mjs +1 -2
  255. package/dist/ui/styles/review-layout.mjs +1 -2
  256. package/dist/ui/styles/review.mjs +1 -2
  257. package/dist/ui/styles/tokens.mjs +1 -2
  258. package/dist/ui/styles.mjs +1 -2
  259. package/dist/ui/subnav.mjs +1 -2
  260. package/dist/ui/table.mjs +1 -2
  261. package/dist/ui/theme.mjs +1 -2
  262. package/dist/ui/thumbnail.mjs +1 -2
  263. package/dist/ui/time.mjs +1 -2
  264. package/package.json +9 -9
@@ -9,7 +9,7 @@ import { VStack } from "../ui/stacks.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { DocumentLayout } from "../ui/document.mjs";
11
11
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
12
- //#region src/pages/invite.tsx
12
+ // src/pages/invite.tsx
13
13
  /** Set-password page for invite acceptance (no auth required). */
14
14
  function renderInvitePage(state) {
15
15
  return /* @__PURE__ */ jsx(DocumentLayout, {
@@ -85,7 +85,6 @@ function renderInviteInvalidPage(error) {
85
85
  }) })
86
86
  });
87
87
  }
88
- //#endregion
89
88
  export { renderInviteInvalidPage, renderInvitePage };
90
89
 
91
90
  //# sourceMappingURL=invite.mjs.map
@@ -10,7 +10,7 @@ import { Table } from "../ui/table.mjs";
10
10
  import { DocumentLayout } from "../ui/document.mjs";
11
11
  import { BuildModel, LabelModel, ProjectModel } from "@storyshelf/core/models";
12
12
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
13
- //#region src/pages/label-detail.tsx
13
+ // src/pages/label-detail.tsx
14
14
  /** Resolve a label type's `link_template` against a build, or return null. */
15
15
  function resolveLabelLink(template, project, build, value) {
16
16
  if (!template) return null;
@@ -148,7 +148,6 @@ async function renderLabelsPage(slug) {
148
148
  ] }, labelType.id)) })] }) })]
149
149
  });
150
150
  }
151
- //#endregion
152
151
  export { renderLabelDetailPage, renderLabelsPage, resolveLabelLink };
153
152
 
154
153
  //# sourceMappingURL=label-detail.mjs.map
@@ -9,7 +9,7 @@ import { HStack, VStack } from "../ui/stacks.mjs";
9
9
  import { SnapshotCards } from "./library-snapshots.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
11
  import { createUrlBuilder } from "@storyshelf/core/urls";
12
- //#region src/pages/library-grid.tsx
12
+ // src/pages/library-grid.tsx
13
13
  /** The component cards of a build; `layer` is present only with `testing` and captured snapshots. */
14
14
  function LibraryGrid(props) {
15
15
  return /* @__PURE__ */ jsx(VStack, { children: props.groups.map((group) => /* @__PURE__ */ jsx(LibraryCard, {
@@ -99,7 +99,6 @@ function StoryLinks(props) {
99
99
  })
100
100
  }, story.id)) });
101
101
  }
102
- //#endregion
103
102
  export { LibraryGrid };
104
103
 
105
104
  //# sourceMappingURL=library-grid.mjs.map
@@ -2,7 +2,7 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { normalizeImportPath } from "@storyshelf/core/models";
5
- //#region src/pages/library-model.ts
5
+ // src/pages/library-model.ts
6
6
  /** Tags Storybook adds on its own; they say nothing about the component. */
7
7
  const STORYBOOK_TAGS = /* @__PURE__ */ new Set([
8
8
  "dev",
@@ -41,7 +41,6 @@ function entriesFromSnapshots(snapshots) {
41
41
  });
42
42
  return [...seen.values()];
43
43
  }
44
- //#endregion
45
44
  export { entriesFromSnapshots, groupLibrary };
46
45
 
47
46
  //# sourceMappingURL=library-model.mjs.map
@@ -14,7 +14,7 @@ import { groupSnapshots } from "./build-diff-model.mjs";
14
14
  import { DesignButtons } from "./design-links.mjs";
15
15
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
16
16
  import { createUrlBuilder } from "@storyshelf/core/urls";
17
- //#region src/pages/library-snapshots.tsx
17
+ // src/pages/library-snapshots.tsx
18
18
  /** Snapshot image with library height cap, extending the shared diff pane image. */
19
19
  const snapshotImg = css`
20
20
  /* snapshot-img */
@@ -124,7 +124,6 @@ function SnapshotActions(props) {
124
124
  })
125
125
  ] });
126
126
  }
127
- //#endregion
128
127
  export { SnapshotCards, loadSnapshotLayer };
129
128
 
130
129
  //# sourceMappingURL=library-snapshots.mjs.map
@@ -18,7 +18,7 @@ import { entriesFromSnapshots, groupLibrary } from "./library-model.mjs";
18
18
  import { BuildModel, ProjectModel, SnapshotModel } from "@storyshelf/core/models";
19
19
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
20
20
  import { createUrlBuilder } from "@storyshelf/core/urls";
21
- //#region src/pages/library.tsx
21
+ // src/pages/library.tsx
22
22
  /**
23
23
  * Library page (ADR 0006, decision 9): the components of the latest build of the selected branch,
24
24
  * whatever its status, from the build's Storybook catalog. With `testing` the cards gain
@@ -231,7 +231,6 @@ function BranchPicker(props) {
231
231
  })] })
232
232
  });
233
233
  }
234
- //#endregion
235
234
  export { renderLibraryPage };
236
235
 
237
236
  //# sourceMappingURL=library.mjs.map
@@ -10,7 +10,7 @@ import { VStack } from "../ui/stacks.mjs";
10
10
  import { DocumentLayout } from "../ui/document.mjs";
11
11
  import { passkeyLoginScript } from "./passkey-ceremony.mjs";
12
12
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
13
- //#region src/pages/login.tsx
13
+ // src/pages/login.tsx
14
14
  /** Resolve auth UI text with defaults. */
15
15
  function authUi() {
16
16
  try {
@@ -111,7 +111,6 @@ function renderLoginPage(state = {}) {
111
111
  }) })
112
112
  });
113
113
  }
114
- //#endregion
115
114
  export { renderLoginPage };
116
115
 
117
116
  //# sourceMappingURL=login.mjs.map
@@ -3,7 +3,7 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { Alert } from "../ui/feedback.mjs";
5
5
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
6
- //#region src/pages/notifications-paused.tsx
6
+ // src/pages/notifications-paused.tsx
7
7
  /** Notifications need a public URL, so without one nothing is sent (ADR 0014, decision 11). */
8
8
  function NotificationsPausedNotice(props) {
9
9
  return props.paused ? /* @__PURE__ */ jsxs(Alert, {
@@ -16,7 +16,6 @@ function NotificationsPausedNotice(props) {
16
16
  ]
17
17
  }) : null;
18
18
  }
19
- //#endregion
20
19
  export { NotificationsPausedNotice };
21
20
 
22
21
  //# sourceMappingURL=notifications-paused.mjs.map
@@ -1,7 +1,7 @@
1
1
  import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
- //#region src/pages/passkey-ceremony.ts
4
+ // src/pages/passkey-ceremony.ts
5
5
  /**
6
6
  * Page-local WebAuthn ceremony scripts (vanilla JS, no dependencies).
7
7
  *
@@ -91,7 +91,6 @@ ${SUPPORT_CHECK}
91
91
  })();
92
92
  `.trim();
93
93
  }
94
- //#endregion
95
94
  export { passkeyLoginScript, passkeyRegisterScript };
96
95
 
97
96
  //# sourceMappingURL=passkey-ceremony.mjs.map
@@ -14,7 +14,7 @@ import { NotificationsPausedNotice } from "./notifications-paused.mjs";
14
14
  import { passkeyRegisterScript } from "./passkey-ceremony.mjs";
15
15
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
16
16
  import { safeImageUrl } from "@storyshelf/core/urls";
17
- //#region src/pages/profile.tsx
17
+ // src/pages/profile.tsx
18
18
  const profileAvatar = css`
19
19
  /* profile-avatar */
20
20
  width: 64px;
@@ -363,7 +363,6 @@ function renderProfilePage(state) {
363
363
  ]
364
364
  });
365
365
  }
366
- //#endregion
367
366
  export { renderProfilePage };
368
367
 
369
368
  //# sourceMappingURL=profile.mjs.map
@@ -11,7 +11,7 @@ import { Table } from "../ui/table.mjs";
11
11
  import { RelativeTime } from "../ui/time.mjs";
12
12
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
13
13
  import { createUrlBuilder } from "@storyshelf/core/urls";
14
- //#region src/pages/project-builds-table.tsx
14
+ // src/pages/project-builds-table.tsx
15
15
  const buildCell = css`
16
16
  /* build-cell */
17
17
  display: grid;
@@ -145,7 +145,6 @@ function BuildsTable({ project, builds }) {
145
145
  build
146
146
  }, build.id)) })] }) });
147
147
  }
148
- //#endregion
149
148
  export { BuildsTable };
150
149
 
151
150
  //# sourceMappingURL=project-builds-table.mjs.map
@@ -15,7 +15,7 @@ import { BuildsTable } from "./project-builds-table.mjs";
15
15
  import { BuildModel, ProjectModel, averageInheritedRatio } from "@storyshelf/core/models";
16
16
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
17
17
  import { createUrlBuilder } from "@storyshelf/core/urls";
18
- //#region src/pages/project-builds.tsx
18
+ // src/pages/project-builds.tsx
19
19
  const STATUSES = [
20
20
  "reviewing",
21
21
  "approved",
@@ -167,7 +167,6 @@ async function renderProjectBuildsPage(slug, query = {}) {
167
167
  ] })]
168
168
  });
169
169
  }
170
- //#endregion
171
170
  export { renderProjectBuildsPage };
172
171
 
173
172
  //# sourceMappingURL=project-builds.mjs.map
@@ -8,7 +8,7 @@ import { Card, PageHeader } from "../ui/layout.mjs";
8
8
  import { HStack } from "../ui/stacks.mjs";
9
9
  import { DocumentLayout } from "../ui/document.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/project-create.tsx
11
+ // src/pages/project-create.tsx
12
12
  /** New-project form page (one project corresponds to one Storybook). */
13
13
  function renderProjectCreatePage(state = {}) {
14
14
  const values = state.values ?? {};
@@ -84,7 +84,6 @@ function renderProjectCreatePage(state = {}) {
84
84
  ]
85
85
  });
86
86
  }
87
- //#endregion
88
87
  export { renderProjectCreatePage };
89
88
 
90
89
  //# sourceMappingURL=project-create.mjs.map
@@ -17,7 +17,7 @@ import { renderSettingsTests } from "./settings-tests.mjs";
17
17
  import { renderSettingsTokens } from "./settings-tokens.mjs";
18
18
  import { renderSettingsWebhooks } from "./settings-webhooks.mjs";
19
19
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
20
- //#region src/pages/project-settings.tsx
20
+ // src/pages/project-settings.tsx
21
21
  function tabHref(project, tab) {
22
22
  return tab === "general" ? `/projects/${project.slug}/settings` : `/projects/${project.slug}/settings/${tab}`;
23
23
  }
@@ -128,7 +128,6 @@ function renderProjectSettingsPage(data, formState) {
128
128
  })]
129
129
  });
130
130
  }
131
- //#endregion
132
131
  export { renderProjectSettingsPage };
133
132
 
134
133
  //# sourceMappingURL=project-settings.mjs.map
@@ -9,7 +9,7 @@ import { Thumbnail } from "../ui/thumbnail.mjs";
9
9
  import { RelativeTime } from "../ui/time.mjs";
10
10
  import { healthTone } from "./health-panel.mjs";
11
11
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
12
- //#region src/pages/projects-card.tsx
12
+ // src/pages/projects-card.tsx
13
13
  const thumbStrip = css`
14
14
  /* project-thumbs */
15
15
  display: grid;
@@ -201,7 +201,6 @@ function ProjectCard(props) {
201
201
  ]
202
202
  });
203
203
  }
204
- //#endregion
205
204
  export { ProjectCard };
206
205
 
207
206
  //# sourceMappingURL=projects-card.mjs.map
@@ -15,7 +15,7 @@ import { ProjectCard } from "./projects-card.mjs";
15
15
  import { BuildModel, ProjectModel, SnapshotModel } from "@storyshelf/core/models";
16
16
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
17
17
  import { createUrlBuilder } from "@storyshelf/core/urls";
18
- //#region src/pages/projects.tsx
18
+ // src/pages/projects.tsx
19
19
  const projectGrid = css`
20
20
  /* project-grid */
21
21
  display: grid;
@@ -127,7 +127,6 @@ async function renderProjectsPage() {
127
127
  })]
128
128
  });
129
129
  }
130
- //#endregion
131
130
  export { renderProjectsPage };
132
131
 
133
132
  //# sourceMappingURL=projects.mjs.map
@@ -9,7 +9,7 @@ import { HStack, VStack } from "../ui/stacks.mjs";
9
9
  import { Table } from "../ui/table.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
11
  import { createUrlBuilder } from "@storyshelf/core/urls";
12
- //#region src/pages/review-changeset.tsx
12
+ // src/pages/review-changeset.tsx
13
13
  /** What the build changed in the Storybook catalog, against its baseline build. */
14
14
  function ChangesetCard(props) {
15
15
  const { data } = props;
@@ -110,7 +110,6 @@ function ChangeRow(props) {
110
110
  }) : null] }) })
111
111
  ] });
112
112
  }
113
- //#endregion
114
113
  export { ChangesetCard };
115
114
 
116
115
  //# sourceMappingURL=review-changeset.mjs.map
@@ -9,7 +9,7 @@ import { VStack } from "../ui/stacks.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { CommentCard } from "./build-diff-comments.mjs";
11
11
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
12
- //#region src/pages/review-comments.tsx
12
+ // src/pages/review-comments.tsx
13
13
  /** Comments on the build as a whole and on its stories, with a form for a build comment. */
14
14
  function CommentsCard(props) {
15
15
  const { data } = props;
@@ -97,7 +97,6 @@ function CommentForm(props) {
97
97
  ] })]
98
98
  });
99
99
  }
100
- //#endregion
101
100
  export { CommentsCard, StoryComments };
102
101
 
103
102
  //# sourceMappingURL=review-comments.mjs.map
@@ -10,7 +10,7 @@ import { RelativeTime } from "../ui/time.mjs";
10
10
  import { csrfField } from "../ui/csrf-field.mjs";
11
11
  import { BUILD_STATUSES } from "@storyshelf/core/types";
12
12
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
13
- //#region src/pages/review-verdict.tsx
13
+ // src/pages/review-verdict.tsx
14
14
  /** The verdict card of the build page: where the build stands, the verdicts, and the reviewer's controls. */
15
15
  /** Build-level verdicts: the approvals so far, each reviewer's latest verdict, and the controls. */
16
16
  function VerdictCard(props) {
@@ -96,7 +96,6 @@ function summary(data) {
96
96
  const needed = `${state.approvalsRequired} ${state.approvalsRequired === 1 ? "approval" : "approvals"}`;
97
97
  return `${state.approvals} of ${needed} given. Any rejection rejects the build. Open comments do not block a verdict.`;
98
98
  }
99
- //#endregion
100
99
  export { VerdictCard };
101
100
 
102
101
  //# sourceMappingURL=review-verdict.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { HStack, VStack } from "../ui/stacks.mjs";
9
9
  import { DocumentLayout } from "../ui/document.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/root.tsx
11
+ // src/pages/root.tsx
12
12
  /** Landing hero card: card surface with centered marketing padding. */
13
13
  const heroCard = css`
14
14
  /* hero-card */
@@ -92,7 +92,6 @@ function renderRootPage() {
92
92
  })]
93
93
  });
94
94
  }
95
- //#endregion
96
95
  export { renderRootPage };
97
96
 
98
97
  //# sourceMappingURL=root.mjs.map
@@ -7,7 +7,7 @@ import { FormActions, SelectField } from "../ui/forms.mjs";
7
7
  import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { csrfField } from "../ui/csrf-field.mjs";
9
9
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
10
- //#region src/pages/settings-ai.tsx
10
+ // src/pages/settings-ai.tsx
11
11
  function ProfileForm(props) {
12
12
  const { project, ai } = props;
13
13
  return /* @__PURE__ */ jsxs("form", {
@@ -63,7 +63,6 @@ function renderSettingsAi(project, ai, formState) {
63
63
  ] })]
64
64
  });
65
65
  }
66
- //#endregion
67
66
  export { renderSettingsAi };
68
67
 
69
68
  //# sourceMappingURL=settings-ai.mjs.map
@@ -11,7 +11,7 @@ import { MAX_STORYBOOK_URL_TTL, MIN_STORYBOOK_URL_TTL_OVERRIDE } from "@storyshe
11
11
  import { MAX_BROWSERS, parseBrowsers, parseModesAllowlist } from "@storyshelf/core/capture";
12
12
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
13
13
  import { isCaptureTarget } from "@storyshelf/core/adapter/capture-runner";
14
- //#region src/pages/settings-capture.tsx
14
+ // src/pages/settings-capture.tsx
15
15
  /** Primary engine select plus one checkbox per additional engine. */
16
16
  function BrowserFields(props) {
17
17
  const { primary, extras, disabled, targets } = props;
@@ -118,7 +118,6 @@ function renderSettingsCapture(project, isAdmin, formState, offered) {
118
118
  ] })]
119
119
  });
120
120
  }
121
- //#endregion
122
121
  export { renderSettingsCapture };
123
122
 
124
123
  //# sourceMappingURL=settings-capture.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { csrfField } from "../ui/csrf-field.mjs";
9
9
  import { RemoveForm } from "./settings-design-links.mjs";
10
10
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-design-credential.tsx
11
+ // src/pages/settings-design-credential.tsx
12
12
  const STATUS_BADGES = {
13
13
  unknown: {
14
14
  tone: "neutral",
@@ -93,7 +93,6 @@ function CredentialForm(props) {
93
93
  ]
94
94
  });
95
95
  }
96
- //#endregion
97
96
  export { CredentialCard };
98
97
 
99
98
  //# sourceMappingURL=settings-design-credential.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { Table } from "../ui/table.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-design-links.tsx
11
+ // src/pages/settings-design-links.tsx
12
12
  function FilesCard(props) {
13
13
  const { base, files, isAdmin, formState, urlHint } = props;
14
14
  return /* @__PURE__ */ jsxs(Card, { children: [
@@ -173,7 +173,6 @@ function RemoveForm(props) {
173
173
  })]
174
174
  });
175
175
  }
176
- //#endregion
177
176
  export { ComponentsCard, FilesCard, RemoveForm };
178
177
 
179
178
  //# sourceMappingURL=settings-design-links.mjs.map
@@ -5,7 +5,7 @@ import { Alert, EmptyState } from "../ui/feedback.mjs";
5
5
  import { ComponentsCard, FilesCard } from "./settings-design-links.mjs";
6
6
  import { CredentialCard } from "./settings-design-credential.mjs";
7
7
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
8
- //#region src/pages/settings-design.tsx
8
+ // src/pages/settings-design.tsx
9
9
  /** Design settings tab: project file links, component mapping and provider credentials (admin-only parts gated). */
10
10
  function renderSettingsDesign(project, design, isAdmin, formState) {
11
11
  const base = `/projects/${project.slug}/settings/design`;
@@ -42,7 +42,6 @@ function renderSettingsDesign(project, design, isAdmin, formState) {
42
42
  ]
43
43
  });
44
44
  }
45
- //#endregion
46
45
  export { renderSettingsDesign };
47
46
 
48
47
  //# sourceMappingURL=settings-design.mjs.map
@@ -9,7 +9,7 @@ import { csrfField } from "../ui/csrf-field.mjs";
9
9
  import { targetChoices } from "./target-choices.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
11
  import { isCaptureTarget } from "@storyshelf/core/adapter/capture-runner";
12
- //#region src/pages/settings-general.tsx
12
+ // src/pages/settings-general.tsx
13
13
  /** General settings tab: project metadata, diff thresholds, and danger zone. */
14
14
  function renderSettingsGeneral(project, formState, isAdmin, offered) {
15
15
  const errors = formState?.errors ?? {};
@@ -157,7 +157,6 @@ function renderSettingsGeneral(project, formState, isAdmin, offered) {
157
157
  ]
158
158
  });
159
159
  }
160
- //#endregion
161
160
  export { renderSettingsGeneral };
162
161
 
163
162
  //# sourceMappingURL=settings-general.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { Table } from "../ui/table.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-labels.tsx
11
+ // src/pages/settings-labels.tsx
12
12
  /** Labels settings tab: label-type table plus the create-type form. */
13
13
  function renderSettingsLabels(project, labelTypes, isAdmin, formState) {
14
14
  const editing = isAdmin ? labelTypes.find((item) => item.key === formState?.editKey) : void 0;
@@ -142,7 +142,6 @@ function renderSettingsLabels(project, labelTypes, isAdmin, formState) {
142
142
  ]
143
143
  });
144
144
  }
145
- //#endregion
146
145
  export { renderSettingsLabels };
147
146
 
148
147
  //# sourceMappingURL=settings-labels.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { Table } from "../ui/table.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-links.tsx
11
+ // src/pages/settings-links.tsx
12
12
  const linkRow = (base, link, isAdmin) => /* @__PURE__ */ jsxs("tr", { children: [
13
13
  /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Badge, {
14
14
  tone: "neutral",
@@ -106,7 +106,6 @@ function AddLinkCard(props) {
106
106
  ]
107
107
  })] });
108
108
  }
109
- //#endregion
110
109
  export { renderSettingsLinks };
111
110
 
112
111
  //# sourceMappingURL=settings-links.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { Table } from "../ui/table.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-members.tsx
11
+ // src/pages/settings-members.tsx
12
12
  /** Members settings tab: member roster plus the add-member form. */
13
13
  function renderSettingsMembers(project, members, groupMappings, isAdmin, formState) {
14
14
  return /* @__PURE__ */ jsxs("div", {
@@ -186,7 +186,6 @@ function renderSettingsMembers(project, members, groupMappings, isAdmin, formSta
186
186
  ]
187
187
  });
188
188
  }
189
- //#endregion
190
189
  export { renderSettingsMembers };
191
190
 
192
191
  //# sourceMappingURL=settings-members.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { csrfField } from "../ui/csrf-field.mjs";
9
9
  import { isServerlessHost } from "@storyshelf/core/config";
10
10
  import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-notifications-git.tsx
11
+ // src/pages/settings-notifications-git.tsx
12
12
  /** GitHub only: show builds as check runs posted by a GitHub App, not as commit statuses. */
13
13
  const GitHubAppFields = ({ errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
14
14
  /* @__PURE__ */ jsx(SelectField, {
@@ -122,7 +122,6 @@ const CreateGitChannelCard = ({ project, providers, formState }) => /* @__PURE__
122
122
  ]
123
123
  })
124
124
  ] });
125
- //#endregion
126
125
  export { CreateGitChannelCard };
127
126
 
128
127
  //# sourceMappingURL=settings-notifications-git.mjs.map
@@ -12,7 +12,7 @@ import { csrfField } from "../ui/csrf-field.mjs";
12
12
  import { NotificationsPausedNotice } from "./notifications-paused.mjs";
13
13
  import { CreateGitChannelCard } from "./settings-notifications-git.mjs";
14
14
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
15
- //#region src/pages/settings-notifications.tsx
15
+ // src/pages/settings-notifications.tsx
16
16
  /** Notification topic catalog (mirrors the webhook event names). */
17
17
  const NOTIFICATION_TOPICS = [
18
18
  {
@@ -271,7 +271,6 @@ function renderSettingsNotifications(project, channels, providers, mySubscriptio
271
271
  ]
272
272
  });
273
273
  }
274
- //#endregion
275
274
  export { NOTIFICATION_TOPICS, renderSettingsNotifications };
276
275
 
277
276
  //# sourceMappingURL=settings-notifications.mjs.map
@@ -7,7 +7,7 @@ import { CheckField, Field, FormActions } from "../ui/forms.mjs";
7
7
  import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { csrfField } from "../ui/csrf-field.mjs";
9
9
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
10
- //#region src/pages/settings-tests.tsx
10
+ // src/pages/settings-tests.tsx
11
11
  /** Tests settings tab: play execution, Storybook 10 test runs, accessibility checks, play timeout. */
12
12
  function renderSettingsTests(project, isAdmin, formState) {
13
13
  return /* @__PURE__ */ jsxs("div", {
@@ -136,7 +136,6 @@ export const Flaky2: Story = {
136
136
  ]
137
137
  });
138
138
  }
139
- //#endregion
140
139
  export { renderSettingsTests };
141
140
 
142
141
  //# sourceMappingURL=settings-tests.mjs.map
@@ -8,7 +8,7 @@ import { Card, SectionTitle } from "../ui/layout.mjs";
8
8
  import { Table } from "../ui/table.mjs";
9
9
  import { csrfField } from "../ui/csrf-field.mjs";
10
10
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
11
- //#region src/pages/settings-tokens.tsx
11
+ // src/pages/settings-tokens.tsx
12
12
  /** Tokens settings tab: project CLI tokens plus the create-token form. */
13
13
  function renderSettingsTokens(project, tokens, isAdmin, formState) {
14
14
  return /* @__PURE__ */ jsxs("div", {
@@ -84,7 +84,6 @@ function renderSettingsTokens(project, tokens, isAdmin, formState) {
84
84
  ]
85
85
  });
86
86
  }
87
- //#endregion
88
87
  export { renderSettingsTokens };
89
88
 
90
89
  //# sourceMappingURL=settings-tokens.mjs.map
@@ -9,7 +9,7 @@ import { HStack } from "../ui/stacks.mjs";
9
9
  import { Table } from "../ui/table.mjs";
10
10
  import { csrfField } from "../ui/csrf-field.mjs";
11
11
  import { jsx, jsxs } from "hono/jsx/jsx-runtime";
12
- //#region src/pages/settings-webhooks.tsx
12
+ // src/pages/settings-webhooks.tsx
13
13
  /** Webhooks settings tab: webhook list plus the create-webhook form. */
14
14
  function renderSettingsWebhooks(project, webhooks, isAdmin, formState) {
15
15
  return /* @__PURE__ */ jsxs("div", {
@@ -98,7 +98,6 @@ function renderSettingsWebhooks(project, webhooks, isAdmin, formState) {
98
98
  ]
99
99
  });
100
100
  }
101
- //#endregion
102
101
  export { renderSettingsWebhooks };
103
102
 
104
103
  //# sourceMappingURL=settings-webhooks.mjs.map
@@ -2,7 +2,7 @@ import "node:path";
2
2
  import "node:url";
3
3
  import.meta.url;
4
4
  import { getStore } from "../store.mjs";
5
- //#region src/pages/storybook.tsx
5
+ // src/pages/storybook.tsx
6
6
  /**
7
7
  * Placeholder shown while a build's statics are not yet available.
8
8
  * Refreshes itself; once extraction lands, the route serves the live page.
@@ -110,7 +110,6 @@ function escapeHtml(value) {
110
110
  function escapeAttr(value) {
111
111
  return escapeHtml(value);
112
112
  }
113
- //#endregion
114
113
  export { renderStorybookPage, renderStorybookPreparingPage };
115
114
 
116
115
  //# sourceMappingURL=storybook.mjs.map
@@ -3,7 +3,7 @@ import "node:url";
3
3
  import.meta.url;
4
4
  import { targetLabel } from "../targets.mjs";
5
5
  import { BROWSER_NAMES, unavailableReason } from "@storyshelf/core/adapter/capture-runner";
6
- //#region src/pages/target-choices.ts
6
+ // src/pages/target-choices.ts
7
7
  /** The capture targets a project can pick, from what the runner offers (ADR 0007, decision 7). */
8
8
  /**
9
9
  * Selectable targets: every ready one; a project's current target that is no longer ready stays,
@@ -33,7 +33,6 @@ function targetChoices(offered, current) {
33
33
  })
34
34
  };
35
35
  }
36
- //#endregion
37
36
  export { targetChoices };
38
37
 
39
38
  //# sourceMappingURL=target-choices.mjs.map