@dataimago/hub-chrome 0.2.0-alpha.4 → 0.2.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +159 -81
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +160 -82
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -41,7 +41,39 @@ module.exports = __toCommonJS(index_exports);
|
|
|
41
41
|
// src/PlatformNav.tsx
|
|
42
42
|
var import_link = __toESM(require("next/link"), 1);
|
|
43
43
|
var import_ui = require("@dataimago/ui");
|
|
44
|
+
|
|
45
|
+
// src/NewTabIndicator.tsx
|
|
44
46
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
47
|
+
var NEW_TAB_SUFFIX = " (opens in a new tab)";
|
|
48
|
+
function NewTabIndicator({ hideText = false }) {
|
|
49
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
50
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
51
|
+
"svg",
|
|
52
|
+
{
|
|
53
|
+
"aria-hidden": "true",
|
|
54
|
+
focusable: "false",
|
|
55
|
+
viewBox: "0 0 24 24",
|
|
56
|
+
width: "0.85em",
|
|
57
|
+
height: "0.85em",
|
|
58
|
+
fill: "none",
|
|
59
|
+
stroke: "currentColor",
|
|
60
|
+
strokeWidth: "2",
|
|
61
|
+
strokeLinecap: "round",
|
|
62
|
+
strokeLinejoin: "round",
|
|
63
|
+
className: "ml-1 inline-block shrink-0 align-baseline",
|
|
64
|
+
children: [
|
|
65
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M15 3h6v6" }),
|
|
66
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M10 14 21 3" }),
|
|
67
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" })
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
hideText ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "sr-only", children: NEW_TAB_SUFFIX })
|
|
72
|
+
] });
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/PlatformNav.tsx
|
|
76
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
45
77
|
var DEFAULT_LINKS = [
|
|
46
78
|
{ href: "/ecosystem", label: "Ecosystem" },
|
|
47
79
|
{ href: "/philosophy", label: "Philosophy" }
|
|
@@ -60,18 +92,18 @@ function PlatformNav({
|
|
|
60
92
|
navLabel = "Primary",
|
|
61
93
|
homeHref = "/"
|
|
62
94
|
}) {
|
|
63
|
-
const propertyMark = navbarMark ? /* @__PURE__ */ (0,
|
|
95
|
+
const propertyMark = navbarMark ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ui.NavbarLogo, { name: navbarMark, "aria-hidden": true, className: MARK_CLASS }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ui.Logo, { name: brandMark, variant: "PATH", "aria-hidden": true, className: MARK_CLASS });
|
|
64
96
|
const aiHref = typeof aiMonogram === "object" ? aiMonogram.href : void 0;
|
|
65
97
|
const aiLabel = typeof aiMonogram === "object" ? aiMonogram.label ?? "dataimago" : "dataimago";
|
|
66
|
-
return /* @__PURE__ */ (0,
|
|
98
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("header", { className: "sticky top-0 z-40 border-b border-stone-200 bg-stone-100/95 backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
67
99
|
"nav",
|
|
68
100
|
{
|
|
69
101
|
className: "mx-auto flex max-w-7xl items-center justify-between px-6 py-4",
|
|
70
102
|
"aria-label": navLabel,
|
|
71
103
|
children: [
|
|
72
|
-
/* @__PURE__ */ (0,
|
|
73
|
-
aiMonogram && (aiHref ? /* @__PURE__ */ (0,
|
|
74
|
-
/* @__PURE__ */ (0,
|
|
104
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex items-center gap-2 sm:gap-3", children: [
|
|
105
|
+
aiMonogram && (aiHref ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href: aiHref, "aria-label": aiLabel, className: AI_BUTTON_CLASS, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ui.NavbarLogo, { name: "ai-monogram", "aria-hidden": true, className: "[&_svg]:h-6 [&_svg]:w-auto" }) }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: AI_BUTTON_CLASS, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ui.NavbarLogo, { name: "ai-monogram", "aria-hidden": true, className: "[&_svg]:h-6 [&_svg]:w-auto" }) })),
|
|
106
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
75
107
|
import_link.default,
|
|
76
108
|
{
|
|
77
109
|
href: homeHref,
|
|
@@ -81,21 +113,24 @@ function PlatformNav({
|
|
|
81
113
|
}
|
|
82
114
|
)
|
|
83
115
|
] }),
|
|
84
|
-
/* @__PURE__ */ (0,
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex items-center gap-2 sm:gap-6", children: [
|
|
85
117
|
links.map(
|
|
86
|
-
({ href, label, external }) => external ? /* @__PURE__ */ (0,
|
|
118
|
+
({ href, label, external }) => external ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
87
119
|
"a",
|
|
88
120
|
{
|
|
89
121
|
href,
|
|
90
122
|
className: "btn-ghost hidden sm:inline-flex",
|
|
91
123
|
target: "_blank",
|
|
92
124
|
rel: "noreferrer",
|
|
93
|
-
children:
|
|
125
|
+
children: [
|
|
126
|
+
label,
|
|
127
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(NewTabIndicator, {})
|
|
128
|
+
]
|
|
94
129
|
},
|
|
95
130
|
href
|
|
96
|
-
) : /* @__PURE__ */ (0,
|
|
131
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href, className: "btn-ghost hidden sm:inline-flex", children: label }, href)
|
|
97
132
|
),
|
|
98
|
-
cta && /* @__PURE__ */ (0,
|
|
133
|
+
cta && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href: cta.href, className: "btn-primary", children: cta.label }),
|
|
99
134
|
rightSlot
|
|
100
135
|
] })
|
|
101
136
|
]
|
|
@@ -104,14 +139,14 @@ function PlatformNav({
|
|
|
104
139
|
}
|
|
105
140
|
|
|
106
141
|
// src/GitHubNavButton.tsx
|
|
107
|
-
var
|
|
142
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
108
143
|
var SHELL = "inline-flex min-h-[48px] items-center gap-2 rounded-xl border border-stone-200 bg-stone-50 px-3 text-stone-900 transition hover:bg-stone-100";
|
|
109
144
|
var MENU_ITEM = "flex min-h-[48px] w-full items-center rounded px-2 text-left text-sm text-stone-900 transition hover:bg-stone-100";
|
|
110
145
|
function GithubMark() {
|
|
111
|
-
return /* @__PURE__ */ (0,
|
|
146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", className: "h-5 w-5 shrink-0", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23a11.5 11.5 0 0 1 3.003-.404c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222 0 1.606-.014 2.898-.014 3.293 0 .322.216.694.825.576C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" }) });
|
|
112
147
|
}
|
|
113
148
|
function LoginGlyph() {
|
|
114
|
-
return /* @__PURE__ */ (0,
|
|
149
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
115
150
|
"svg",
|
|
116
151
|
{
|
|
117
152
|
viewBox: "0 0 24 24",
|
|
@@ -123,9 +158,9 @@ function LoginGlyph() {
|
|
|
123
158
|
strokeLinecap: "round",
|
|
124
159
|
strokeLinejoin: "round",
|
|
125
160
|
children: [
|
|
126
|
-
/* @__PURE__ */ (0,
|
|
127
|
-
/* @__PURE__ */ (0,
|
|
128
|
-
/* @__PURE__ */ (0,
|
|
161
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }),
|
|
162
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("polyline", { points: "10 17 15 12 10 7" }),
|
|
163
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("line", { x1: "15", x2: "3", y1: "12", y2: "12" })
|
|
129
164
|
]
|
|
130
165
|
}
|
|
131
166
|
);
|
|
@@ -142,33 +177,36 @@ function GitHubNavButton({
|
|
|
142
177
|
defaultOpen
|
|
143
178
|
}) {
|
|
144
179
|
if (mode === "link") {
|
|
145
|
-
return /* @__PURE__ */ (0,
|
|
180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
146
181
|
"a",
|
|
147
182
|
{
|
|
148
183
|
href: orgHref,
|
|
149
184
|
target: "_blank",
|
|
150
185
|
rel: "noreferrer",
|
|
151
186
|
className: SHELL,
|
|
152
|
-
"aria-label":
|
|
153
|
-
children:
|
|
187
|
+
"aria-label": `dataimago on GitHub${NEW_TAB_SUFFIX}`,
|
|
188
|
+
children: [
|
|
189
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(GithubMark, {}),
|
|
190
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(NewTabIndicator, { hideText: true })
|
|
191
|
+
]
|
|
154
192
|
}
|
|
155
193
|
);
|
|
156
194
|
}
|
|
157
195
|
if (status !== "authed") {
|
|
158
|
-
return /* @__PURE__ */ (0,
|
|
159
|
-
/* @__PURE__ */ (0,
|
|
160
|
-
/* @__PURE__ */ (0,
|
|
196
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { href: signInHref, className: SHELL, "aria-label": "Sign in with GitHub", children: [
|
|
197
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(GithubMark, {}),
|
|
198
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(LoginGlyph, {})
|
|
161
199
|
] });
|
|
162
200
|
}
|
|
163
|
-
return /* @__PURE__ */ (0,
|
|
164
|
-
/* @__PURE__ */ (0,
|
|
201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("details", { className: "relative", open: defaultOpen, children: [
|
|
202
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
165
203
|
"summary",
|
|
166
204
|
{
|
|
167
205
|
className: `${SHELL} cursor-pointer list-none [&::-webkit-details-marker]:hidden`,
|
|
168
206
|
"aria-label": `GitHub account \u2014 signed in as ${login ?? "your account"}`,
|
|
169
207
|
children: [
|
|
170
|
-
/* @__PURE__ */ (0,
|
|
171
|
-
avatarUrl ? /* @__PURE__ */ (0,
|
|
208
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(GithubMark, {}),
|
|
209
|
+
avatarUrl ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
172
210
|
"img",
|
|
173
211
|
{
|
|
174
212
|
src: avatarUrl,
|
|
@@ -177,23 +215,26 @@ function GitHubNavButton({
|
|
|
177
215
|
width: 28,
|
|
178
216
|
height: 28
|
|
179
217
|
}
|
|
180
|
-
) : /* @__PURE__ */ (0,
|
|
218
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "text-sm font-medium", children: [
|
|
181
219
|
"@",
|
|
182
220
|
login
|
|
183
221
|
] })
|
|
184
222
|
]
|
|
185
223
|
}
|
|
186
224
|
),
|
|
187
|
-
/* @__PURE__ */ (0,
|
|
188
|
-
/* @__PURE__ */ (0,
|
|
225
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "absolute right-0 z-50 mt-2 w-60 rounded-lg border border-stone-200 bg-stone-50 p-2 shadow-lg", children: [
|
|
226
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { className: "px-2 py-1 text-sm text-stone-700", children: [
|
|
189
227
|
"Signed in as ",
|
|
190
|
-
/* @__PURE__ */ (0,
|
|
228
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "font-medium text-stone-900", children: [
|
|
191
229
|
"@",
|
|
192
230
|
login
|
|
193
231
|
] })
|
|
194
232
|
] }),
|
|
195
|
-
profileHref && /* @__PURE__ */ (0,
|
|
196
|
-
|
|
233
|
+
profileHref && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { href: profileHref, target: "_blank", rel: "noreferrer", className: MENU_ITEM, children: [
|
|
234
|
+
"View your GitHub profile",
|
|
235
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(NewTabIndicator, {})
|
|
236
|
+
] }),
|
|
237
|
+
signOutAction && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("form", { method: "POST", action: signOutAction, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "submit", className: MENU_ITEM, children: "Sign out" }) })
|
|
197
238
|
] })
|
|
198
239
|
] });
|
|
199
240
|
}
|
|
@@ -201,7 +242,7 @@ function GitHubNavButton({
|
|
|
201
242
|
// src/SiteFooter.tsx
|
|
202
243
|
var import_link2 = __toESM(require("next/link"), 1);
|
|
203
244
|
var import_ui2 = require("@dataimago/ui");
|
|
204
|
-
var
|
|
245
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
205
246
|
var DEFAULT_TAGLINE = "A living AI-native application ecosystem.";
|
|
206
247
|
var DEFAULT_COLUMNS = [
|
|
207
248
|
{
|
|
@@ -221,8 +262,8 @@ var DEFAULT_COLUMNS = [
|
|
|
221
262
|
external: true
|
|
222
263
|
},
|
|
223
264
|
{
|
|
224
|
-
href: "https://github.com/dataimago/dataimago
|
|
225
|
-
label: "dataimago
|
|
265
|
+
href: "https://github.com/dataimago/dataimago",
|
|
266
|
+
label: "dataimago",
|
|
226
267
|
external: true
|
|
227
268
|
},
|
|
228
269
|
{
|
|
@@ -238,21 +279,21 @@ function SiteFooter({
|
|
|
238
279
|
columns = DEFAULT_COLUMNS,
|
|
239
280
|
closingStatement
|
|
240
281
|
}) {
|
|
241
|
-
return /* @__PURE__ */ (0,
|
|
282
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
242
283
|
"footer",
|
|
243
284
|
{
|
|
244
285
|
className: "border-t border-stone-800 bg-stone-900 text-stone-400",
|
|
245
286
|
"data-bs-theme": "dark",
|
|
246
|
-
children: /* @__PURE__ */ (0,
|
|
247
|
-
/* @__PURE__ */ (0,
|
|
248
|
-
/* @__PURE__ */ (0,
|
|
249
|
-
/* @__PURE__ */ (0,
|
|
287
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "mx-auto max-w-6xl px-6 py-12", children: [
|
|
288
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "grid gap-8 md:grid-cols-4", children: [
|
|
289
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
|
|
290
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
250
291
|
import_link2.default,
|
|
251
292
|
{
|
|
252
293
|
href: "/",
|
|
253
294
|
className: "inline-flex items-center text-stone-100 transition hover:opacity-80",
|
|
254
295
|
"aria-label": "dataimago",
|
|
255
|
-
children: /* @__PURE__ */ (0,
|
|
296
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
256
297
|
import_ui2.Logo,
|
|
257
298
|
{
|
|
258
299
|
name: "dataimago",
|
|
@@ -263,23 +304,26 @@ function SiteFooter({
|
|
|
263
304
|
)
|
|
264
305
|
}
|
|
265
306
|
),
|
|
266
|
-
/* @__PURE__ */ (0,
|
|
307
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "mt-3 text-xs text-stone-400", children: tagline })
|
|
267
308
|
] }),
|
|
268
|
-
columns.map((col) => /* @__PURE__ */ (0,
|
|
269
|
-
/* @__PURE__ */ (0,
|
|
270
|
-
/* @__PURE__ */ (0,
|
|
309
|
+
columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { children: [
|
|
310
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h4", { className: "font-mono text-xs uppercase tracking-wider text-accent-300", children: col.heading }),
|
|
311
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: "mt-3 space-y-2 text-sm", children: col.links.map(({ href, label, external }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("li", { children: !href ? label : external ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
271
312
|
"a",
|
|
272
313
|
{
|
|
273
314
|
href,
|
|
274
315
|
className: "hover:text-paper-100",
|
|
275
316
|
target: "_blank",
|
|
276
317
|
rel: "noreferrer",
|
|
277
|
-
children:
|
|
318
|
+
children: [
|
|
319
|
+
label,
|
|
320
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(NewTabIndicator, {})
|
|
321
|
+
]
|
|
278
322
|
}
|
|
279
|
-
) : /* @__PURE__ */ (0,
|
|
323
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_link2.default, { href, className: "hover:text-paper-100", children: label }) }, label)) })
|
|
280
324
|
] }, col.heading))
|
|
281
325
|
] }),
|
|
282
|
-
closingStatement ? /* @__PURE__ */ (0,
|
|
326
|
+
closingStatement ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "mt-12 border-t border-stone-800 pt-6 text-xs text-stone-400", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: closingStatement }) }) : null
|
|
283
327
|
] })
|
|
284
328
|
}
|
|
285
329
|
);
|
|
@@ -288,7 +332,7 @@ function SiteFooter({
|
|
|
288
332
|
// src/MinimalFooter.tsx
|
|
289
333
|
var import_link3 = __toESM(require("next/link"), 1);
|
|
290
334
|
var import_ui3 = require("@dataimago/ui");
|
|
291
|
-
var
|
|
335
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
292
336
|
var DEFAULT_BRAND_HREF = "https://dataimago.ai";
|
|
293
337
|
var DEFAULT_EMBODIMENT = "An embodiment of dataimago";
|
|
294
338
|
function MinimalFooter({
|
|
@@ -297,22 +341,22 @@ function MinimalFooter({
|
|
|
297
341
|
links = [],
|
|
298
342
|
copyright
|
|
299
343
|
}) {
|
|
300
|
-
return /* @__PURE__ */ (0,
|
|
344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
301
345
|
"footer",
|
|
302
346
|
{
|
|
303
347
|
className: "border-t border-stone-800 bg-stone-900 text-stone-400",
|
|
304
348
|
"data-bs-theme": "dark",
|
|
305
|
-
children: /* @__PURE__ */ (0,
|
|
306
|
-
/* @__PURE__ */ (0,
|
|
349
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "mx-auto flex max-w-6xl flex-col items-center gap-4 px-6 py-10 text-center", children: [
|
|
350
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
307
351
|
"a",
|
|
308
352
|
{
|
|
309
353
|
href: brandHref,
|
|
310
354
|
className: "inline-flex flex-col items-center gap-2 text-stone-100 transition hover:opacity-80",
|
|
311
355
|
target: "_blank",
|
|
312
356
|
rel: "noreferrer",
|
|
313
|
-
"aria-label": `${embodimentLabel} \u2014 visit dataimago.ai`,
|
|
357
|
+
"aria-label": `${embodimentLabel} \u2014 visit dataimago.ai${NEW_TAB_SUFFIX}`,
|
|
314
358
|
children: [
|
|
315
|
-
/* @__PURE__ */ (0,
|
|
359
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
316
360
|
import_ui3.Logo,
|
|
317
361
|
{
|
|
318
362
|
name: "dataimago",
|
|
@@ -321,38 +365,44 @@ function MinimalFooter({
|
|
|
321
365
|
className: "[&_svg]:h-7 [&_svg]:w-auto"
|
|
322
366
|
}
|
|
323
367
|
),
|
|
324
|
-
/* @__PURE__ */ (0,
|
|
368
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { className: "text-sm text-stone-400", children: [
|
|
369
|
+
embodimentLabel,
|
|
370
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(NewTabIndicator, { hideText: true })
|
|
371
|
+
] })
|
|
325
372
|
]
|
|
326
373
|
}
|
|
327
374
|
),
|
|
328
|
-
links.length > 0 ? /* @__PURE__ */ (0,
|
|
375
|
+
links.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
329
376
|
"nav",
|
|
330
377
|
{
|
|
331
378
|
className: "flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm",
|
|
332
379
|
"aria-label": "Footer",
|
|
333
380
|
children: links.map(
|
|
334
|
-
({ href, label, external }) => !href ? /* @__PURE__ */ (0,
|
|
381
|
+
({ href, label, external }) => !href ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "text-stone-400", children: label }, label) : external ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
335
382
|
"a",
|
|
336
383
|
{
|
|
337
384
|
href,
|
|
338
385
|
className: "text-stone-300 hover:text-paper-100",
|
|
339
386
|
target: "_blank",
|
|
340
387
|
rel: "noreferrer",
|
|
341
|
-
children:
|
|
388
|
+
children: [
|
|
389
|
+
label,
|
|
390
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(NewTabIndicator, {})
|
|
391
|
+
]
|
|
342
392
|
},
|
|
343
393
|
label
|
|
344
|
-
) : /* @__PURE__ */ (0,
|
|
394
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_link3.default, { href, className: "text-stone-300 hover:text-paper-100", children: label }, label)
|
|
345
395
|
)
|
|
346
396
|
}
|
|
347
397
|
) : null,
|
|
348
|
-
copyright ? /* @__PURE__ */ (0,
|
|
398
|
+
copyright ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-xs text-stone-400", children: copyright }) : null
|
|
349
399
|
] })
|
|
350
400
|
}
|
|
351
401
|
);
|
|
352
402
|
}
|
|
353
403
|
|
|
354
404
|
// src/PhilosophyFooter.tsx
|
|
355
|
-
var
|
|
405
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
356
406
|
var DEFAULT_PAIRS = [
|
|
357
407
|
{
|
|
358
408
|
eyebrow: "our belief",
|
|
@@ -377,38 +427,66 @@ var DEFAULT_CLOSING = "dataimago is the structural answer to this critique. Ever
|
|
|
377
427
|
function PhilosophyFooter({
|
|
378
428
|
pairs = DEFAULT_PAIRS,
|
|
379
429
|
quote = DEFAULT_QUOTE,
|
|
380
|
-
closingStatement = DEFAULT_CLOSING
|
|
430
|
+
closingStatement = DEFAULT_CLOSING,
|
|
431
|
+
density = "default"
|
|
381
432
|
}) {
|
|
382
|
-
|
|
433
|
+
const compact = density === "compact";
|
|
434
|
+
const pullQuote = /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
435
|
+
"blockquote",
|
|
436
|
+
{
|
|
437
|
+
className: `border-l-2 border-copper-500 pl-6 font-display italic text-paper-100 ${compact ? "" : "mt-16 max-w-prose-wide"}`,
|
|
438
|
+
children: [
|
|
439
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-base leading-relaxed", children: quote.text }),
|
|
440
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("footer", { className: "mt-4 text-sm not-italic text-stone-400", children: [
|
|
441
|
+
"\u2014 ",
|
|
442
|
+
quote.attribution,
|
|
443
|
+
", ",
|
|
444
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("cite", { children: quote.work }),
|
|
445
|
+
" (",
|
|
446
|
+
quote.year,
|
|
447
|
+
")"
|
|
448
|
+
] })
|
|
449
|
+
]
|
|
450
|
+
}
|
|
451
|
+
);
|
|
452
|
+
const closing = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
453
|
+
"p",
|
|
454
|
+
{
|
|
455
|
+
className: `text-stone-400 ${compact ? "text-base leading-relaxed" : "mt-8 max-w-prose-wide text-sm"}`,
|
|
456
|
+
children: closingStatement
|
|
457
|
+
}
|
|
458
|
+
);
|
|
459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
383
460
|
"section",
|
|
384
461
|
{
|
|
385
462
|
"aria-labelledby": "philosophy-heading",
|
|
386
|
-
className:
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
463
|
+
className: `border-t border-stone-200 bg-stone-900 text-paper-100 ${compact ? "flex flex-col justify-center py-14 sm:py-16 lg:min-h-[50vh]" : "py-20 sm:py-28"}`,
|
|
464
|
+
"data-bs-theme": "dark",
|
|
465
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "mx-auto w-full max-w-6xl px-6", children: [
|
|
466
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: `grid lg:grid-cols-3 ${compact ? "gap-8" : "gap-12"}`, children: pairs.map((pair, i) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { children: [
|
|
467
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "font-mono text-xs uppercase tracking-wider text-accent-300", children: pair.eyebrow }),
|
|
468
|
+
i === 0 ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
391
469
|
"h3",
|
|
392
470
|
{
|
|
393
471
|
id: "philosophy-heading",
|
|
394
472
|
className: "mt-2 font-display text-xl text-paper-100",
|
|
395
473
|
children: pair.body
|
|
396
474
|
}
|
|
397
|
-
) : /* @__PURE__ */ (0,
|
|
475
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "mt-2 font-display text-xl text-paper-100", children: pair.body })
|
|
398
476
|
] }, i)) }),
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
quote.year,
|
|
408
|
-
")"
|
|
477
|
+
compact ? (
|
|
478
|
+
// Critique / answer, side by side — Baudrillard's warning and
|
|
479
|
+
// dataimago's structural answer. Filling the width is what pulls the
|
|
480
|
+
// section down to ~half height (the default stacks these in one column,
|
|
481
|
+
// leaving the right half empty).
|
|
482
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "mt-10 grid gap-x-12 gap-y-8 lg:grid-cols-2", children: [
|
|
483
|
+
pullQuote,
|
|
484
|
+
closing
|
|
409
485
|
] })
|
|
410
|
-
|
|
411
|
-
|
|
486
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
487
|
+
pullQuote,
|
|
488
|
+
closing
|
|
489
|
+
] })
|
|
412
490
|
] })
|
|
413
491
|
}
|
|
414
492
|
);
|