@hanzo/ui 8.29.28 → 8.29.30
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/corner/Corner.cjs +11 -8
- package/dist/corner/Corner.d.ts +5 -1
- package/dist/corner/Corner.d.ts.map +1 -1
- package/dist/corner/Corner.js +11 -8
- package/dist/corner/Corner.js.map +1 -1
- package/dist/gallery.html +2 -2
- package/dist/marketing/Footer.cjs +8 -2
- package/dist/marketing/Footer.d.ts +3 -1
- package/dist/marketing/Footer.d.ts.map +1 -1
- package/dist/marketing/Footer.js +8 -2
- package/dist/marketing/Footer.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,13 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
13
13
|
* ask a slot above the columns for the site's composer, so it lives
|
|
14
14
|
* where a page ends and never floats over one.
|
|
15
15
|
* columns titled lists of links; a title may itself be a link.
|
|
16
|
-
* wordmark a slot
|
|
16
|
+
* wordmark a slot at the far end of the last row; the copyright and the
|
|
17
|
+
* legal line share that row's start.
|
|
18
|
+
* after a slot under that row, inside the footer, for the site's own
|
|
19
|
+
* last line (its social links).
|
|
20
|
+
*
|
|
21
|
+
* It stands on the panel's ground ($panel), a step off the page's, so the page
|
|
22
|
+
* visibly ends where the footer begins.
|
|
17
23
|
*
|
|
18
24
|
* Plain anchors. A link that leaves the site opens a new tab and is marked with
|
|
19
25
|
* ↗ by the host's own data (`out`).
|
|
@@ -26,5 +32,5 @@ const open = (out) => (out ? { target: '_blank', rel: 'noreferrer' } : {});
|
|
|
26
32
|
/** The link to the consent sheet (`#choices`) carries California's privacy options icon before its words. */
|
|
27
33
|
const CHOICES = { display: 'inline-flex', alignItems: 'center', gap: 6 };
|
|
28
34
|
const Door = ({ link }) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: link.href, ...open(link.out), color: "$soft", fontSize: "$2", lineHeight: "$2", py: 3, textDecorationLine: "none", hoverStyle: { color: '$ink' }, children: [link.label, link.out ? ' ↗' : ''] }));
|
|
29
|
-
const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)' }) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('footer'), render: "footer", width: "100%", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { width: "100%", items: "center", children: ask })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => ((0, jsx_runtime_1.jsx)(Door, { link: l }, l.label)))] }, c.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap:
|
|
35
|
+
const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)', after }) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('footer'), render: "footer", width: "100%", bg: "$panel", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { width: "100%", items: "center", children: ask })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => ((0, jsx_runtime_1.jsx)(Door, { link: l }, l.label)))] }, c.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap: 12, children: [copyright ? ((0, jsx_runtime_1.jsx)(type_1.Line, { size: "sm", tone: "dim", children: copyright })) : null, (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "nav", "aria-label": "Terms & Policies", flexWrap: "wrap", gap: 16, rowGap: 8, children: legal.map((l) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: l.href, ...open(l.out), color: "$faint", fontSize: "$2", lineHeight: "$2", textDecorationLine: "none", hoverStyle: { color: '$ink' }, ...(l.href.endsWith('#choices') ? CHOICES : null), children: [l.href.endsWith('#choices') ? (0, jsx_runtime_1.jsx)(icon_1.PrivacyChoicesIcon, {}) : null, l.label] }, l.label))) }), wordmark ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { marginInlineStart: "auto", items: "center", children: wordmark })) : null] }), after] }));
|
|
30
36
|
exports.Footer = Footer;
|
|
@@ -19,7 +19,9 @@ export type FooterProps = {
|
|
|
19
19
|
legal?: readonly FooterLink[];
|
|
20
20
|
/** The side gutter, shared with the header. */
|
|
21
21
|
gutter?: string;
|
|
22
|
+
/** A last line inside the footer, under the legal row: the site's social links. */
|
|
23
|
+
after?: ReactNode;
|
|
22
24
|
};
|
|
23
|
-
declare const Footer: ({ columns, ask, wordmark, copyright, legal, gutter }: FooterProps) => import("react").JSX.Element;
|
|
25
|
+
declare const Footer: ({ columns, ask, wordmark, copyright, legal, gutter, after }: FooterProps) => import("react").JSX.Element;
|
|
24
26
|
export { Footer };
|
|
25
27
|
//# sourceMappingURL=Footer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/marketing/Footer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/marketing/Footer.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AACvE,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAA;AAEpH,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IAChC,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IAC7B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAuBD,QAAA,MAAM,MAAM,gEAAiG,WAAW,gCA8EvH,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
package/dist/marketing/Footer.js
CHANGED
|
@@ -10,7 +10,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
* ask a slot above the columns for the site's composer, so it lives
|
|
11
11
|
* where a page ends and never floats over one.
|
|
12
12
|
* columns titled lists of links; a title may itself be a link.
|
|
13
|
-
* wordmark a slot
|
|
13
|
+
* wordmark a slot at the far end of the last row; the copyright and the
|
|
14
|
+
* legal line share that row's start.
|
|
15
|
+
* after a slot under that row, inside the footer, for the site's own
|
|
16
|
+
* last line (its social links).
|
|
17
|
+
*
|
|
18
|
+
* It stands on the panel's ground ($panel), a step off the page's, so the page
|
|
19
|
+
* visibly ends where the footer begins.
|
|
14
20
|
*
|
|
15
21
|
* Plain anchors. A link that leaves the site opens a new tab and is marked with
|
|
16
22
|
* ↗ by the host's own data (`out`).
|
|
@@ -23,6 +29,6 @@ const open = (out) => (out ? { target: '_blank', rel: 'noreferrer' } : {});
|
|
|
23
29
|
/** The link to the consent sheet (`#choices`) carries California's privacy options icon before its words. */
|
|
24
30
|
const CHOICES = { display: 'inline-flex', alignItems: 'center', gap: 6 };
|
|
25
31
|
const Door = ({ link }) => (_jsxs(Anchor, { href: link.href, ...open(link.out), color: "$soft", fontSize: "$2", lineHeight: "$2", py: 3, textDecorationLine: "none", hoverStyle: { color: '$ink' }, children: [link.label, link.out ? ' ↗' : ''] }));
|
|
26
|
-
const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)' }) => (_jsxs(YStack, { ...slot('footer'), render: "footer", width: "100%", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? (_jsx(YStack, { width: "100%", items: "center", children: ask })) : null, _jsx(XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => (_jsxs(YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? (_jsxs(Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : (_jsx(Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => (_jsx(Door, { link: l }, l.label)))] }, c.id))) }), _jsxs(XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap:
|
|
32
|
+
const Footer = ({ columns, ask, wordmark, copyright, legal = [], gutter = 'clamp(20px, 4vw, 72px)', after }) => (_jsxs(YStack, { ...slot('footer'), render: "footer", width: "100%", bg: "$panel", borderTopWidth: 1, borderColor: "$edge", pt: 48, pb: 32, gap: 40, style: { paddingInline: gutter }, children: [ask ? (_jsx(YStack, { width: "100%", items: "center", children: ask })) : null, _jsx(XStack, { flexWrap: "wrap", gap: 28, $sm: { gap: 40 }, children: columns.map((c) => (_jsxs(YStack, { render: "nav", "aria-label": c.title, flexBasis: "40%", flexGrow: 1, minW: 140, $sm: { flexBasis: 150 }, gap: 2, children: [c.href ? (_jsxs(Anchor, { href: c.href, ...open(c.out), color: "$ink", fontSize: "$2", lineHeight: "$2", fontWeight: "600", pb: 10, textDecorationLine: "none", children: [c.title, c.out ? ' ↗' : ''] })) : (_jsx(Line, { size: "sm", weight: "600", pb: 10, children: c.title })), c.links.map((l) => (_jsx(Door, { link: l }, l.label)))] }, c.id))) }), _jsxs(XStack, { flexWrap: "wrap", items: "center", gap: 20, rowGap: 12, children: [copyright ? (_jsx(Line, { size: "sm", tone: "dim", children: copyright })) : null, _jsx(XStack, { render: "nav", "aria-label": "Terms & Policies", flexWrap: "wrap", gap: 16, rowGap: 8, children: legal.map((l) => (_jsxs(Anchor, { href: l.href, ...open(l.out), color: "$faint", fontSize: "$2", lineHeight: "$2", textDecorationLine: "none", hoverStyle: { color: '$ink' }, ...(l.href.endsWith('#choices') ? CHOICES : null), children: [l.href.endsWith('#choices') ? _jsx(PrivacyChoicesIcon, {}) : null, l.label] }, l.label))) }), wordmark ? (_jsx(XStack, { marginInlineStart: "auto", items: "center", children: wordmark })) : null] }), after] }));
|
|
27
33
|
export { Footer };
|
|
28
34
|
//# sourceMappingURL=Footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/marketing/Footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/marketing/Footer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.29.
|
|
3
|
+
"version": "8.29.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|