@betterportal/hello-view 10.1.37 → 10.1.38

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.
@@ -4,7 +4,7 @@
4
4
  "pluginId": "org.betterportal.hello-view",
5
5
  "title": "BetterPortal Hello View Example",
6
6
  "description": "Example business service showing API-first view negotiation.",
7
- "version": "10.1.37",
7
+ "version": "10.1.38",
8
8
  "category": "service",
9
9
  "deploymentModes": [
10
10
  "self-hosted"
@@ -1,4 +1,3 @@
1
- /** @jsxImportSource jsx-htmx */
2
1
  import type { HtmlRenderable } from "@betterportal/framework";
3
2
  import type { ResponseData } from "../route.impl.js";
4
3
  export declare function render(data: ResponseData): HtmlRenderable;
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA8BrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAmFzD"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA8BrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAmFzD"}
@@ -1,4 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
+ /** @jsxImportSource jsx-htmx */
3
+ import { css } from "jsx-htmx";
2
4
  function sectionList(items) {
3
5
  return (_jsx("div", { class: "d-flex flex-column gap-3", children: items.map((item) => (_jsxs("section", { class: "border-bottom pb-3", children: [_jsx("h2", { class: "h4 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }))) }));
4
6
  }
@@ -6,7 +8,7 @@ function principleGrid(items) {
6
8
  return (_jsx("div", { class: "row row-cols-1 row-cols-md-2 g-3", children: items.map((item) => (_jsx("div", { class: "col", children: _jsxs("article", { class: "h-100 p-4 rounded-3 border bg-body", children: [_jsx("h3", { class: "h5 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }) }))) }));
7
9
  }
8
10
  export function render(data) {
9
- return (_jsxs("main", { class: "container-fluid px-0", children: [_jsx("style", { children: `
11
+ return (_jsxs("main", { class: "container-fluid px-0", children: [_jsx("style", { children: css(`
10
12
  .bp-about-hero {
11
13
  border-bottom: 1px solid var(--bs-border-color);
12
14
  background:
@@ -28,6 +30,6 @@ export function render(data) {
28
30
  @media (max-width: 575.98px) {
29
31
  .bp-about-map { grid-template-columns: 1fr; }
30
32
  }
31
- ` }), _jsx("section", { class: "bp-about-hero", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5 align-items-center", children: [_jsxs("div", { class: "col-lg-7", children: [_jsx("a", { class: "btn btn-sm btn-outline-secondary mb-4", href: data.landingHref, children: "Back to landing" }), _jsx("h1", { class: "display-5 fw-semibold mb-3", children: data.title }), _jsx("p", { class: "lead text-body-secondary mb-0", children: data.intro })] }), _jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "bp-about-map", children: [_jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "01" }), _jsx("strong", { children: "Control plane" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "02" }), _jsx("strong", { children: "Runtime services" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "03" }), _jsx("strong", { children: "Themes" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "04" }), _jsx("strong", { children: "Auth" })] })] }) })] }) }) }), _jsx("section", { children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5", children: [_jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "sticky-lg-top", style: "top: 2rem;", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Architecture" }), _jsx("h2", { class: "h1 mb-3", children: "One platform contract, many deployable services." }), _jsx("p", { class: "text-body-secondary", children: "BetterPortal keeps routing, configuration, auth, and rendering explicit. That makes the portal easier to operate, inspect, and extend." })] }) }), _jsx("div", { class: "col-lg-7", children: sectionList(data.sections) })] }) }) }), _jsx("section", { class: "border-top", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-4 align-items-start", children: [_jsxs("div", { class: "col-lg-4", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Principles" }), _jsx("h2", { class: "h1 mb-0", children: "Designed for typed, observable composition." })] }), _jsx("div", { class: "col-lg-8", children: principleGrid(data.principles) })] }) }) })] }));
33
+ `) }), _jsx("section", { class: "bp-about-hero", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5 align-items-center", children: [_jsxs("div", { class: "col-lg-7", children: [_jsx("a", { class: "btn btn-sm btn-outline-secondary mb-4", href: data.landingHref, children: "Back to landing" }), _jsx("h1", { class: "display-5 fw-semibold mb-3", children: data.title }), _jsx("p", { class: "lead text-body-secondary mb-0", children: data.intro })] }), _jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "bp-about-map", children: [_jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "01" }), _jsx("strong", { children: "Control plane" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "02" }), _jsx("strong", { children: "Runtime services" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "03" }), _jsx("strong", { children: "Themes" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "04" }), _jsx("strong", { children: "Auth" })] })] }) })] }) }) }), _jsx("section", { children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5", children: [_jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "sticky-lg-top", style: "top: 2rem;", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Architecture" }), _jsx("h2", { class: "h1 mb-3", children: "One platform contract, many deployable services." }), _jsx("p", { class: "text-body-secondary", children: "BetterPortal keeps routing, configuration, auth, and rendering explicit. That makes the portal easier to operate, inspect, and extend." })] }) }), _jsx("div", { class: "col-lg-7", children: sectionList(data.sections) })] }) }) }), _jsx("section", { class: "border-top", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-4 align-items-start", children: [_jsxs("div", { class: "col-lg-4", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Principles" }), _jsx("h2", { class: "h1 mb-0", children: "Designed for typed, observable composition." })] }), _jsx("div", { class: "col-lg-8", children: principleGrid(data.principles) })] }) }) })] }));
32
34
  }
33
35
  //# sourceMappingURL=GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":";AAIA,SAAS,WAAW,CAAC,KAA+B;IAClD,OAAO,CACL,cAAK,KAAK,EAAC,0BAA0B,YAClC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,mBAAS,KAAK,EAAC,oBAAoB,aACjC,aAAI,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAM,EACrC,YAAG,KAAK,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAK,IAC3C,CACX,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAiC;IACtD,OAAO,CACL,cAAK,KAAK,EAAC,kCAAkC,YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,cAAK,KAAK,EAAC,KAAK,YACd,mBAAS,KAAK,EAAC,oCAAoC,aACjD,aAAI,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAM,EACrC,YAAG,KAAK,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAK,IAC3C,GACN,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAkB;IACvC,OAAO,CACL,gBAAM,KAAK,EAAC,sBAAsB,aAChC,0BACG;;;;;;;;;;;;;;;;;;;;;;SAsBA,GACK,EAER,kBAAS,KAAK,EAAC,eAAe,YAC5B,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,4BAA4B,aACrC,eAAK,KAAK,EAAC,UAAU,aACnB,YAAG,KAAK,EAAC,uCAAuC,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,gCAAqB,EAC5F,aAAI,KAAK,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAM,EACxD,YAAG,KAAK,EAAC,+BAA+B,YAAE,IAAI,CAAC,KAAK,GAAK,IACrD,EACN,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,cAAc,aACvB,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,6CAA8B,IAAM,EACnH,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,gDAAiC,IAAM,EACtH,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,sCAAuB,IAAM,EAC5G,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,oCAAqB,IAAM,IACtG,GACF,IACF,GACF,GACE,EAEV,4BACE,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,SAAS,aAClB,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,eAAe,EAAC,KAAK,EAAC,YAAY,aAC3C,cAAK,KAAK,EAAC,2DAA2D,6BAAmB,EACzF,aAAI,KAAK,EAAC,SAAS,iEAAsD,EACzE,YAAG,KAAK,EAAC,qBAAqB,uJAE1B,IACA,GACF,EACN,cAAK,KAAK,EAAC,UAAU,YAClB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GACvB,IACF,GACF,GACE,EAEV,kBAAS,KAAK,EAAC,YAAY,YACzB,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,2BAA2B,aACpC,eAAK,KAAK,EAAC,UAAU,aACnB,cAAK,KAAK,EAAC,2DAA2D,2BAAiB,EACvF,aAAI,KAAK,EAAC,SAAS,4DAAiD,IAChE,EACN,cAAK,KAAK,EAAC,UAAU,YAClB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAC3B,IACF,GACF,GACE,IACL,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,SAAS,WAAW,CAAC,KAA+B;IAClD,OAAO,CACL,cAAK,KAAK,EAAC,0BAA0B,YAClC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,mBAAS,KAAK,EAAC,oBAAoB,aACjC,aAAI,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAM,EACrC,YAAG,KAAK,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAK,IAC3C,CACX,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAiC;IACtD,OAAO,CACL,cAAK,KAAK,EAAC,kCAAkC,YAC1C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,cAAK,KAAK,EAAC,KAAK,YACd,mBAAS,KAAK,EAAC,oCAAoC,aACjD,aAAI,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAM,EACrC,YAAG,KAAK,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAK,IAC3C,GACN,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAkB;IACvC,OAAO,CACL,gBAAM,KAAK,EAAC,sBAAsB,aAChC,0BACG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;SAsBJ,CAAC,GACI,EAER,kBAAS,KAAK,EAAC,eAAe,YAC5B,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,4BAA4B,aACrC,eAAK,KAAK,EAAC,UAAU,aACnB,YAAG,KAAK,EAAC,uCAAuC,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,gCAAqB,EAC5F,aAAI,KAAK,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAM,EACxD,YAAG,KAAK,EAAC,+BAA+B,YAAE,IAAI,CAAC,KAAK,GAAK,IACrD,EACN,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,cAAc,aACvB,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,6CAA8B,IAAM,EACnH,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,gDAAiC,IAAM,EACtH,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,sCAAuB,IAAM,EAC5G,eAAK,KAAK,EAAC,oBAAoB,aAAC,cAAK,KAAK,EAAC,2BAA2B,mBAAS,EAAA,oCAAqB,IAAM,IACtG,GACF,IACF,GACF,GACE,EAEV,4BACE,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,SAAS,aAClB,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,eAAe,EAAC,KAAK,EAAC,YAAY,aAC3C,cAAK,KAAK,EAAC,2DAA2D,6BAAmB,EACzF,aAAI,KAAK,EAAC,SAAS,iEAAsD,EACzE,YAAG,KAAK,EAAC,qBAAqB,uJAE1B,IACA,GACF,EACN,cAAK,KAAK,EAAC,UAAU,YAClB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GACvB,IACF,GACF,GACE,EAEV,kBAAS,KAAK,EAAC,YAAY,YACzB,cAAK,KAAK,EAAC,gBAAgB,YACzB,eAAK,KAAK,EAAC,2BAA2B,aACpC,eAAK,KAAK,EAAC,UAAU,aACnB,cAAK,KAAK,EAAC,2DAA2D,2BAAiB,EACvF,aAAI,KAAK,EAAC,SAAS,4DAAiD,IAChE,EACN,cAAK,KAAK,EAAC,UAAU,YAClB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAC3B,IACF,GACF,GACE,IACL,CACR,CAAC;AACJ,CAAC"}
@@ -1,4 +1,3 @@
1
- /** @jsxImportSource jsx-htmx */
2
1
  import type { HtmlRenderable } from "@betterportal/framework";
3
2
  import type { ResponseData } from "../route.impl.js";
4
3
  export declare function render(data: ResponseData): HtmlRenderable;
@@ -1 +1 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyCrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAgYzD"}
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyCrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAgYzD"}
@@ -1,4 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
+ /** @jsxImportSource jsx-htmx */
3
+ import { css } from "jsx-htmx";
2
4
  function capabilityCards(items) {
3
5
  return (_jsx("div", { class: "bp-landing-card-grid", children: items.map((item) => (_jsxs("article", { class: "bp-landing-card", children: [_jsx("div", { class: "bp-landing-card__title", children: item.title }), _jsx("p", { children: item.text })] }))) }));
4
6
  }
@@ -9,7 +11,7 @@ function proofStrip(items) {
9
11
  return (_jsx("div", { class: "bp-landing-proof-grid", children: items.map((item) => (_jsxs("div", { class: "bp-landing-proof", children: [_jsx("div", { class: "bp-landing-proof__label", children: item.title }), _jsx("p", { children: item.text })] }))) }));
10
12
  }
11
13
  export function render(data) {
12
- return (_jsxs("main", { class: "bp-landing", children: [_jsx("style", { children: `
14
+ return (_jsxs("main", { class: "bp-landing", children: [_jsx("style", { children: css(`
13
15
  :root {
14
16
  --bp-landing-bg: #f7f8fb;
15
17
  --bp-landing-panel: #ffffff;
@@ -305,6 +307,6 @@ export function render(data) {
305
307
  font-size: clamp(3rem, 14vw, 5rem);
306
308
  }
307
309
  }
308
- ` }), _jsxs("div", { class: "bp-landing-shell", children: [_jsxs("nav", { class: "bp-landing-nav", "aria-label": "BetterPortal", children: [_jsxs("a", { class: "bp-landing-brand", href: "/landing", children: [_jsx("span", { class: "bp-landing-mark", children: "BP" }), _jsx("span", { children: "BetterPortal" })] }), _jsxs("div", { class: "bp-landing-links", children: [_jsx("a", { class: "bp-landing-link", href: "#capabilities", children: "Capabilities" }), _jsx("a", { class: "bp-landing-link", href: "#use-cases", children: "Use cases" }), _jsx("a", { class: "bp-landing-link", href: data.aboutHref, children: "About" })] })] }), _jsxs("section", { class: "bp-landing-hero", children: [_jsxs("div", { children: [_jsxs("div", { class: "bp-landing-kicker", children: [_jsx("span", { class: "bp-landing-dot" }), " Service-oriented portal framework"] }), _jsx("h1", { children: data.headline }), _jsx("p", { class: "bp-landing-lead", children: data.subheading }), _jsx("p", { class: "bp-landing-summary", children: data.summary }), _jsxs("div", { class: "bp-landing-actions", children: [_jsx("a", { class: "bp-landing-button bp-landing-button--primary", href: data.aboutHref, children: "Explore the architecture" }), _jsx("a", { class: "bp-landing-button bp-landing-button--secondary", href: "/hello", children: "Open the demo service" })] })] }), _jsxs("aside", { class: "bp-landing-console", "aria-label": "BetterPortal service graph", children: [_jsxs("div", { class: "bp-landing-console__top", children: [_jsx("strong", { children: "Portal composition" }), _jsx("span", { class: "bp-landing-pill", children: "typed runtime" })] }), _jsxs("div", { class: "bp-landing-stack", children: [_jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Theme service" }), _jsx("span", { children: "Shell, fragments, chrome, navigation" })] }), _jsx("span", { class: "bp-landing-status", children: "active" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Auth provider" }), _jsx("span", { children: "Default JWT or external providers" })] }), _jsx("span", { class: "bp-landing-status", children: "bound" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Business services" }), _jsx("span", { children: "API, views, streams, files, metadata" })] }), _jsx("span", { class: "bp-landing-status", children: "mounted" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Config manager" }), _jsx("span", { children: "Tenants, apps, routes, scoped config" })] }), _jsx("span", { class: "bp-landing-status", children: "syncing" })] })] })] })] }), _jsx("section", { class: "bp-landing-proof-section", children: proofStrip(data.highlights) })] }), _jsxs("section", { class: "bp-landing-capability-section", id: "capabilities", children: [_jsxs("div", { class: "bp-landing-section-head", children: [_jsx("h2", { children: "One contract for UI, API, automation, and AI." }), _jsx("p", { children: "BetterPortal keeps each service independently deployable while making its behavior discoverable, typed, and mountable by tenant/app configuration." })] }), capabilityCards(data.capabilities)] }), _jsxs("section", { class: "bp-landing-audience-section", id: "use-cases", children: [_jsxs("div", { class: "bp-landing-section-head", children: [_jsx("h2", { children: "Built for teams that need platform control without monolith gravity." }), _jsx("p", { children: "Use it for admin portals, customer portals, internal tools, embedded views, workflow endpoints, and AI-readable service surfaces." })] }), audienceCards(data.audiences)] }), _jsx("footer", { class: "bp-landing-footer", children: "BetterPortal ships services, themes, auth, configuration, manifests, and typed routes as one composable platform model." })] }));
310
+ `) }), _jsxs("div", { class: "bp-landing-shell", children: [_jsxs("nav", { class: "bp-landing-nav", "aria-label": "BetterPortal", children: [_jsxs("a", { class: "bp-landing-brand", href: "/landing", children: [_jsx("span", { class: "bp-landing-mark", children: "BP" }), _jsx("span", { children: "BetterPortal" })] }), _jsxs("div", { class: "bp-landing-links", children: [_jsx("a", { class: "bp-landing-link", href: "#capabilities", children: "Capabilities" }), _jsx("a", { class: "bp-landing-link", href: "#use-cases", children: "Use cases" }), _jsx("a", { class: "bp-landing-link", href: data.aboutHref, children: "About" })] })] }), _jsxs("section", { class: "bp-landing-hero", children: [_jsxs("div", { children: [_jsxs("div", { class: "bp-landing-kicker", children: [_jsx("span", { class: "bp-landing-dot" }), " Service-oriented portal framework"] }), _jsx("h1", { children: data.headline }), _jsx("p", { class: "bp-landing-lead", children: data.subheading }), _jsx("p", { class: "bp-landing-summary", children: data.summary }), _jsxs("div", { class: "bp-landing-actions", children: [_jsx("a", { class: "bp-landing-button bp-landing-button--primary", href: data.aboutHref, children: "Explore the architecture" }), _jsx("a", { class: "bp-landing-button bp-landing-button--secondary", href: "/hello", children: "Open the demo service" })] })] }), _jsxs("aside", { class: "bp-landing-console", "aria-label": "BetterPortal service graph", children: [_jsxs("div", { class: "bp-landing-console__top", children: [_jsx("strong", { children: "Portal composition" }), _jsx("span", { class: "bp-landing-pill", children: "typed runtime" })] }), _jsxs("div", { class: "bp-landing-stack", children: [_jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Theme service" }), _jsx("span", { children: "Shell, fragments, chrome, navigation" })] }), _jsx("span", { class: "bp-landing-status", children: "active" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Auth provider" }), _jsx("span", { children: "Default JWT or external providers" })] }), _jsx("span", { class: "bp-landing-status", children: "bound" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Business services" }), _jsx("span", { children: "API, views, streams, files, metadata" })] }), _jsx("span", { class: "bp-landing-status", children: "mounted" })] }), _jsxs("div", { class: "bp-landing-node", children: [_jsx("span", { class: "bp-landing-node__icon" }), _jsxs("div", { children: [_jsx("strong", { children: "Config manager" }), _jsx("span", { children: "Tenants, apps, routes, scoped config" })] }), _jsx("span", { class: "bp-landing-status", children: "syncing" })] })] })] })] }), _jsx("section", { class: "bp-landing-proof-section", children: proofStrip(data.highlights) })] }), _jsxs("section", { class: "bp-landing-capability-section", id: "capabilities", children: [_jsxs("div", { class: "bp-landing-section-head", children: [_jsx("h2", { children: "One contract for UI, API, automation, and AI." }), _jsx("p", { children: "BetterPortal keeps each service independently deployable while making its behavior discoverable, typed, and mountable by tenant/app configuration." })] }), capabilityCards(data.capabilities)] }), _jsxs("section", { class: "bp-landing-audience-section", id: "use-cases", children: [_jsxs("div", { class: "bp-landing-section-head", children: [_jsx("h2", { children: "Built for teams that need platform control without monolith gravity." }), _jsx("p", { children: "Use it for admin portals, customer portals, internal tools, embedded views, workflow endpoints, and AI-readable service surfaces." })] }), audienceCards(data.audiences)] }), _jsx("footer", { class: "bp-landing-footer", children: "BetterPortal ships services, themes, auth, configuration, manifests, and typed routes as one composable platform model." })] }));
309
311
  }
310
312
  //# sourceMappingURL=GET.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "pluginName": "service-betterportal-hello-view",
3
3
  "events": {},
4
- "version": "10.1.37",
4
+ "version": "10.1.38",
5
5
  "configSchema": {
6
6
  "anyvaliVersion": "1.0",
7
7
  "schemaVersion": "1.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-betterportal-hello-view",
3
3
  "name": "service-betterportal-hello-view",
4
- "version": "10.1.37",
4
+ "version": "10.1.38",
5
5
  "description": "Hello view example service for BetterPortal v10",
6
6
  "category": "service",
7
7
  "tags": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterportal/hello-view",
3
- "version": "10.1.37",
3
+ "version": "10.1.38",
4
4
  "description": "BetterPortal v10 example service plugin for Node.js",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/index.ts",
@@ -34,8 +34,8 @@
34
34
  "typescript": "^6.0.3"
35
35
  },
36
36
  "dependencies": {
37
- "@betterportal/framework": "10.1.37",
38
- "@betterportal/plugin-bsb": "10.1.37",
37
+ "@betterportal/framework": "10.1.38",
38
+ "@betterportal/plugin-bsb": "10.1.38",
39
39
  "@bsb/base": "^9.6.41",
40
40
  "anyvali": "^1.0.6",
41
41
  "jsx-htmx": "4.0.0-beta6"