@epicbagel/saas-kit 1.32.0 → 1.34.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.
- package/README.md +67 -0
- package/THIRD_PARTY_NOTICES.md +6 -5
- package/dist/chunk-2BNEE3U6.cjs +36 -0
- package/dist/chunk-2DCJ2SFU.js +20 -0
- package/dist/chunk-5GFMSK27.js +489 -0
- package/dist/chunk-5PHOKJCT.cjs +42 -0
- package/dist/chunk-B54ZEKBG.cjs +63 -0
- package/dist/chunk-BB7PO2BW.js +67 -0
- package/dist/chunk-BOMVE7QO.cjs +47 -0
- package/dist/{chunk-FPOJ2NGG.js → chunk-C3VZMTVB.js} +1 -1
- package/dist/chunk-CXAFTEEP.cjs +20 -0
- package/dist/chunk-EXHF3QUY.js +36 -0
- package/dist/chunk-FYNHRHVY.cjs +47 -0
- package/dist/chunk-HTTRUJQU.cjs +60 -0
- package/dist/chunk-I3GBXIFL.cjs +67 -0
- package/dist/chunk-O3G3TVPU.js +27 -0
- package/dist/{chunk-JS6BLIWL.js → chunk-ROUWBWEQ.js} +7 -7
- package/dist/chunk-TDCVZKMX.cjs +27 -0
- package/dist/{chunk-E2UVQXBO.cjs → chunk-TP74SBRH.cjs} +6 -6
- package/dist/chunk-TUQVHPSI.js +60 -0
- package/dist/chunk-UKYUWSF2.cjs +489 -0
- package/dist/{chunk-MOJHETNO.cjs → chunk-VUMLLKWY.cjs} +5 -5
- package/dist/chunk-VWOWPNKT.js +73 -0
- package/dist/chunk-W5L6LQI3.js +42 -0
- package/dist/chunk-WMTCL463.js +47 -0
- package/dist/chunk-WTVL2FK7.js +47 -0
- package/dist/chunk-XH2I3YJ6.js +63 -0
- package/dist/chunk-Y6X6XDHE.cjs +73 -0
- package/dist/primitives/accent-theme.cjs +7 -0
- package/dist/primitives/accent-theme.d.cts +32 -0
- package/dist/primitives/accent-theme.d.ts +32 -0
- package/dist/primitives/accent-theme.js +7 -0
- package/dist/primitives/activity-feed.cjs +3 -3
- package/dist/primitives/activity-feed.js +4 -4
- package/dist/primitives/anchor.cjs +3 -30
- package/dist/primitives/anchor.js +3 -30
- package/dist/primitives/app-layout.cjs +114 -0
- package/dist/primitives/app-layout.d.cts +47 -0
- package/dist/primitives/app-layout.d.ts +47 -0
- package/dist/primitives/app-layout.js +114 -0
- package/dist/primitives/app-sidebar.cjs +52 -0
- package/dist/primitives/app-sidebar.d.cts +105 -0
- package/dist/primitives/app-sidebar.d.ts +105 -0
- package/dist/primitives/app-sidebar.js +52 -0
- package/dist/primitives/back-bar.cjs +37 -0
- package/dist/primitives/back-bar.d.cts +31 -0
- package/dist/primitives/back-bar.d.ts +31 -0
- package/dist/primitives/back-bar.js +37 -0
- package/dist/primitives/batch-action-bar.cjs +134 -0
- package/dist/primitives/batch-action-bar.d.cts +27 -0
- package/dist/primitives/batch-action-bar.d.ts +27 -0
- package/dist/primitives/batch-action-bar.js +134 -0
- package/dist/primitives/board-view.cjs +7 -7
- package/dist/primitives/board-view.js +6 -6
- package/dist/primitives/brand-mark.cjs +8 -0
- package/dist/primitives/brand-mark.d.cts +10 -0
- package/dist/primitives/brand-mark.d.ts +10 -0
- package/dist/primitives/brand-mark.js +8 -0
- package/dist/primitives/branded-page.cjs +201 -0
- package/dist/primitives/branded-page.d.cts +118 -0
- package/dist/primitives/branded-page.d.ts +118 -0
- package/dist/primitives/branded-page.js +201 -0
- package/dist/primitives/call-card.cjs +2 -2
- package/dist/primitives/call-card.js +3 -3
- package/dist/primitives/chat.cjs +21 -21
- package/dist/primitives/chat.js +17 -17
- package/dist/primitives/command.cjs +129 -0
- package/dist/primitives/command.d.cts +60 -0
- package/dist/primitives/command.d.ts +60 -0
- package/dist/primitives/command.js +129 -0
- package/dist/primitives/compact-list.cjs +24 -0
- package/dist/primitives/compact-list.d.cts +18 -0
- package/dist/primitives/compact-list.d.ts +18 -0
- package/dist/primitives/compact-list.js +24 -0
- package/dist/primitives/connection.cjs +2 -2
- package/dist/primitives/connection.js +2 -2
- package/dist/primitives/context-bar.cjs +57 -0
- package/dist/primitives/context-bar.d.cts +50 -0
- package/dist/primitives/context-bar.d.ts +50 -0
- package/dist/primitives/context-bar.js +57 -0
- package/dist/primitives/cycling-prompt.cjs +102 -0
- package/dist/primitives/cycling-prompt.d.cts +24 -0
- package/dist/primitives/cycling-prompt.d.ts +24 -0
- package/dist/primitives/cycling-prompt.js +102 -0
- package/dist/primitives/dialog.d.cts +9 -9
- package/dist/primitives/dialog.d.ts +9 -9
- package/dist/primitives/document-preview.cjs +5 -5
- package/dist/primitives/document-preview.js +3 -3
- package/dist/primitives/dotted-list.cjs +41 -0
- package/dist/primitives/dotted-list.d.cts +28 -0
- package/dist/primitives/dotted-list.d.ts +28 -0
- package/dist/primitives/dotted-list.js +41 -0
- package/dist/primitives/drawer.d.cts +6 -6
- package/dist/primitives/drawer.d.ts +6 -6
- package/dist/primitives/field.cjs +3 -3
- package/dist/primitives/field.js +2 -2
- package/dist/primitives/file-dropzone.cjs +3 -3
- package/dist/primitives/file-dropzone.js +2 -2
- package/dist/primitives/file-preview-internals.cjs +4 -4
- package/dist/primitives/file-preview-internals.js +3 -3
- package/dist/primitives/file-preview.cjs +12 -12
- package/dist/primitives/file-preview.js +3 -3
- package/dist/primitives/filter-bar.cjs +4 -4
- package/dist/primitives/filter-bar.js +3 -3
- package/dist/primitives/fixed-action-bar.cjs +9 -0
- package/dist/primitives/fixed-action-bar.d.cts +15 -0
- package/dist/primitives/fixed-action-bar.d.ts +15 -0
- package/dist/primitives/fixed-action-bar.js +9 -0
- package/dist/primitives/floating-action-button.cjs +65 -0
- package/dist/primitives/floating-action-button.d.cts +52 -0
- package/dist/primitives/floating-action-button.d.ts +52 -0
- package/dist/primitives/floating-action-button.js +65 -0
- package/dist/primitives/form-section.cjs +38 -0
- package/dist/primitives/form-section.d.cts +43 -0
- package/dist/primitives/form-section.d.ts +43 -0
- package/dist/primitives/form-section.js +38 -0
- package/dist/primitives/key-value-grid.cjs +52 -0
- package/dist/primitives/key-value-grid.d.cts +20 -0
- package/dist/primitives/key-value-grid.d.ts +20 -0
- package/dist/primitives/key-value-grid.js +52 -0
- package/dist/primitives/marketing-footer.cjs +34 -0
- package/dist/primitives/marketing-footer.d.cts +29 -0
- package/dist/primitives/marketing-footer.d.ts +29 -0
- package/dist/primitives/marketing-footer.js +34 -0
- package/dist/primitives/marketing-header.cjs +8 -0
- package/dist/primitives/marketing-header.d.cts +31 -0
- package/dist/primitives/marketing-header.d.ts +31 -0
- package/dist/primitives/marketing-header.js +8 -0
- package/dist/primitives/marketing-section.cjs +8 -0
- package/dist/primitives/marketing-section.d.cts +35 -0
- package/dist/primitives/marketing-section.d.ts +35 -0
- package/dist/primitives/marketing-section.js +8 -0
- package/dist/primitives/marketing-shell.cjs +28 -0
- package/dist/primitives/marketing-shell.d.cts +14 -0
- package/dist/primitives/marketing-shell.d.ts +14 -0
- package/dist/primitives/marketing-shell.js +28 -0
- package/dist/primitives/notes.cjs +3 -3
- package/dist/primitives/notes.js +3 -3
- package/dist/primitives/page-header.cjs +3 -67
- package/dist/primitives/page-header.js +3 -67
- package/dist/primitives/page-shell.cjs +3 -41
- package/dist/primitives/page-shell.js +3 -41
- package/dist/primitives/page-tabs.cjs +4 -57
- package/dist/primitives/page-tabs.js +4 -57
- package/dist/primitives/pager.cjs +85 -0
- package/dist/primitives/pager.d.cts +39 -0
- package/dist/primitives/pager.d.ts +39 -0
- package/dist/primitives/pager.js +85 -0
- package/dist/primitives/pagination.cjs +119 -0
- package/dist/primitives/pagination.d.cts +41 -0
- package/dist/primitives/pagination.d.ts +41 -0
- package/dist/primitives/pagination.js +119 -0
- package/dist/primitives/poster.cjs +11 -1
- package/dist/primitives/poster.d.cts +12 -1
- package/dist/primitives/poster.d.ts +12 -1
- package/dist/primitives/poster.js +10 -0
- package/dist/primitives/resource-list.cjs +7 -7
- package/dist/primitives/resource-list.js +6 -6
- package/dist/primitives/responsive-dialog.cjs +3 -3
- package/dist/primitives/responsive-dialog.js +2 -2
- package/dist/primitives/responsive-embed.cjs +29 -0
- package/dist/primitives/responsive-embed.d.cts +14 -0
- package/dist/primitives/responsive-embed.d.ts +14 -0
- package/dist/primitives/responsive-embed.js +29 -0
- package/dist/primitives/save-bar.cjs +91 -0
- package/dist/primitives/save-bar.d.cts +55 -0
- package/dist/primitives/save-bar.d.ts +55 -0
- package/dist/primitives/save-bar.js +91 -0
- package/dist/primitives/section.cjs +2 -2
- package/dist/primitives/section.js +3 -3
- package/dist/primitives/settings-list.cjs +10 -0
- package/dist/primitives/settings-list.d.cts +31 -0
- package/dist/primitives/settings-list.d.ts +31 -0
- package/dist/primitives/settings-list.js +10 -0
- package/dist/primitives/settings-section.cjs +34 -0
- package/dist/primitives/settings-section.d.cts +44 -0
- package/dist/primitives/settings-section.d.ts +44 -0
- package/dist/primitives/settings-section.js +34 -0
- package/dist/primitives/sheet.d.cts +9 -9
- package/dist/primitives/sheet.d.ts +9 -9
- package/dist/primitives/short-video.cjs +110 -0
- package/dist/primitives/short-video.d.cts +30 -0
- package/dist/primitives/short-video.d.ts +30 -0
- package/dist/primitives/short-video.js +110 -0
- package/dist/primitives/stats-card.cjs +46 -0
- package/dist/primitives/stats-card.d.cts +19 -0
- package/dist/primitives/stats-card.d.ts +19 -0
- package/dist/primitives/stats-card.js +46 -0
- package/dist/primitives/stats-strip.cjs +38 -0
- package/dist/primitives/stats-strip.d.cts +24 -0
- package/dist/primitives/stats-strip.d.ts +24 -0
- package/dist/primitives/stats-strip.js +38 -0
- package/dist/primitives/step-list.cjs +32 -0
- package/dist/primitives/step-list.d.cts +19 -0
- package/dist/primitives/step-list.d.ts +19 -0
- package/dist/primitives/step-list.js +32 -0
- package/dist/primitives/steps.cjs +77 -0
- package/dist/primitives/steps.d.cts +35 -0
- package/dist/primitives/steps.d.ts +35 -0
- package/dist/primitives/steps.js +77 -0
- package/dist/primitives/switch-field.cjs +3 -3
- package/dist/primitives/switch-field.js +3 -3
- package/dist/primitives/tabbed-page-header.cjs +53 -0
- package/dist/primitives/tabbed-page-header.d.cts +26 -0
- package/dist/primitives/tabbed-page-header.d.ts +26 -0
- package/dist/primitives/tabbed-page-header.js +53 -0
- package/dist/primitives/theme-selector.cjs +15 -15
- package/dist/primitives/theme-selector.js +2 -2
- package/dist/primitives/voice-dictation-button.cjs +3 -3
- package/dist/primitives/voice-dictation-button.js +2 -2
- package/dist/primitives/voice-session-controls.cjs +3 -3
- package/dist/primitives/voice-session-controls.js +2 -2
- package/dist/primitives/workflow-assistant.cjs +4 -4
- package/dist/primitives/workflow-assistant.js +2 -2
- package/package.json +322 -1
- package/src/styles/components/poster.css +42 -1
- package/dist/{chunk-PH2TV7XI.cjs → chunk-2YW5VA2V.cjs} +2 -2
- package/dist/{chunk-UFFHGKI7.js → chunk-6LB37JWO.js} +8 -8
- package/dist/{chunk-AO56ET4F.cjs → chunk-BTHYGHOH.cjs} +2 -2
- package/dist/{chunk-WHDHUYS6.js → chunk-HBRVOGLA.js} +3 -3
- package/dist/{chunk-6O3DUMF7.js → chunk-HTUYUMAH.js} +3 -3
- package/dist/{chunk-PNI354BY.cjs → chunk-JMNDFISN.cjs} +2 -2
- package/dist/{chunk-CRZ4INEJ.js → chunk-JTI4244T.js} +10 -10
- package/dist/{chunk-ZGTPNSR7.js → chunk-NNEV5RHQ.js} +3 -3
- package/dist/{chunk-TWCJMFST.js → chunk-O42YC6ZQ.js} +3 -3
- package/dist/{chunk-MW67PHAQ.cjs → chunk-S2IMM37Q.cjs} +6 -6
- package/dist/{chunk-ZJFYOXSM.cjs → chunk-SRVRNHCX.cjs} +2 -2
- package/dist/{chunk-ZLEM2SAU.cjs → chunk-Z3JJSNR5.cjs} +2 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkDFB4ILN6cjs = require('./chunk-DFB4ILN6.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
10
|
+
|
|
11
|
+
// src/primitives/page-tabs.tsx
|
|
12
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
13
|
+
function PageTabs({
|
|
14
|
+
value,
|
|
15
|
+
onValueChange,
|
|
16
|
+
items,
|
|
17
|
+
ariaLabel,
|
|
18
|
+
layout = "equal",
|
|
19
|
+
className
|
|
20
|
+
}) {
|
|
21
|
+
if (items.length === 0) return null;
|
|
22
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23
|
+
_chunkDFB4ILN6cjs.Tabs,
|
|
24
|
+
{
|
|
25
|
+
value,
|
|
26
|
+
onValueChange: (next) => onValueChange(next),
|
|
27
|
+
className,
|
|
28
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29
|
+
_chunkDFB4ILN6cjs.TabsList,
|
|
30
|
+
{
|
|
31
|
+
"aria-label": ariaLabel,
|
|
32
|
+
scrollable: layout === "scroll",
|
|
33
|
+
width: "full",
|
|
34
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
35
|
+
"w-full",
|
|
36
|
+
layout === "equal" ? "grid h-auto p-1.5" : "justify-start"
|
|
37
|
+
),
|
|
38
|
+
style: layout === "equal" ? { gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))` } : void 0,
|
|
39
|
+
children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
40
|
+
_chunkDFB4ILN6cjs.TabsTrigger,
|
|
41
|
+
{
|
|
42
|
+
value: item.value,
|
|
43
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
44
|
+
layout === "equal" && "min-h-11 gap-2 text-sm sm:text-base",
|
|
45
|
+
layout === "scroll" && "shrink-0 gap-2"
|
|
46
|
+
),
|
|
47
|
+
children: [
|
|
48
|
+
item.icon,
|
|
49
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: item.label }),
|
|
50
|
+
item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: item.badge })
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
item.value
|
|
54
|
+
))
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
exports.PageTabs = PageTabs;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/primitives/accent-theme.tsx
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
var PALETTE_ID = /^[A-Za-z0-9_-]+$/;
|
|
7
|
+
function hexToHslTriplet(hex) {
|
|
8
|
+
const match = /^#([0-9a-f]{6})$/i.exec(hex.trim());
|
|
9
|
+
if (!match) return null;
|
|
10
|
+
const value = Number.parseInt(match[1], 16);
|
|
11
|
+
const red = (value >> 16 & 255) / 255;
|
|
12
|
+
const green = (value >> 8 & 255) / 255;
|
|
13
|
+
const blue = (value & 255) / 255;
|
|
14
|
+
const maximum = Math.max(red, green, blue);
|
|
15
|
+
const minimum = Math.min(red, green, blue);
|
|
16
|
+
const lightness = (maximum + minimum) / 2;
|
|
17
|
+
let hue = 0;
|
|
18
|
+
let saturation = 0;
|
|
19
|
+
if (maximum !== minimum) {
|
|
20
|
+
const delta = maximum - minimum;
|
|
21
|
+
saturation = lightness > 0.5 ? delta / (2 - maximum - minimum) : delta / (maximum + minimum);
|
|
22
|
+
if (maximum === red) hue = ((green - blue) / delta + (green < blue ? 6 : 0)) / 6;
|
|
23
|
+
else if (maximum === green) hue = ((blue - red) / delta + 2) / 6;
|
|
24
|
+
else hue = ((red - green) / delta + 4) / 6;
|
|
25
|
+
}
|
|
26
|
+
const round = (number) => Math.round(number * 10) / 10;
|
|
27
|
+
return `${round(hue * 360)} ${round(saturation * 100)}% ${round(lightness * 100)}%`;
|
|
28
|
+
}
|
|
29
|
+
function foregroundFor(hex) {
|
|
30
|
+
const match = /^#([0-9a-f]{6})$/i.exec(hex.trim());
|
|
31
|
+
if (!match) return "0 0% 100%";
|
|
32
|
+
const value = Number.parseInt(match[1], 16);
|
|
33
|
+
const channel = (number) => {
|
|
34
|
+
const normalized = number / 255;
|
|
35
|
+
return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;
|
|
36
|
+
};
|
|
37
|
+
const luminance = 0.2126 * channel(value >> 16 & 255) + 0.7152 * channel(value >> 8 & 255) + 0.0722 * channel(value & 255);
|
|
38
|
+
return luminance > 0.45 ? "0 0% 9%" : "0 0% 100%";
|
|
39
|
+
}
|
|
40
|
+
function AccentTheme({ colours, palette, scope: target = "region", children }) {
|
|
41
|
+
const scope = `accent-${useId().replace(/[^a-zA-Z0-9]/g, "")}`;
|
|
42
|
+
const light = colours?.light ? hexToHslTriplet(colours.light) : null;
|
|
43
|
+
const dark = colours?.dark ? hexToHslTriplet(colours.dark) : null;
|
|
44
|
+
if (!light && !dark) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
45
|
+
const root = palette === void 0 ? null : PALETTE_ID.test(palette) ? `:root[data-theme="${palette}"]` : ":root:not(*)";
|
|
46
|
+
const lightSelector = target === "document" ? root ?? ":root" : root ? `${root} .${scope}` : `.${scope}`;
|
|
47
|
+
const darkSelector = `${root ?? ":root"}.dark${target === "document" ? "" : ` .${scope}`}`;
|
|
48
|
+
const rules = [];
|
|
49
|
+
if (light && colours?.light) {
|
|
50
|
+
rules.push(
|
|
51
|
+
`${lightSelector}{--primary:${light};--primary-foreground:${foregroundFor(colours.light)};--ring:${light};--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-ring:hsl(var(--ring));}`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
if (dark && colours?.dark) {
|
|
55
|
+
rules.push(
|
|
56
|
+
`${darkSelector}{--primary:${dark};--primary-foreground:${foregroundFor(colours.dark)};--ring:${dark};--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-ring:hsl(var(--ring));}`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
60
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: rules.join("") } }),
|
|
61
|
+
target === "document" ? children : /* @__PURE__ */ jsx("div", { className: scope, children })
|
|
62
|
+
] });
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export {
|
|
66
|
+
AccentTheme
|
|
67
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk373W6VADcjs = require('./chunk-373W6VAD.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
8
|
+
|
|
9
|
+
// src/primitives/fixed-action-bar.tsx
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
11
|
+
var widthStyles = {
|
|
12
|
+
compact: "max-w-2xl",
|
|
13
|
+
narrow: "max-w-3xl",
|
|
14
|
+
wide: "max-w-5xl",
|
|
15
|
+
full: "max-w-none"
|
|
16
|
+
};
|
|
17
|
+
function FixedActionBar({
|
|
18
|
+
title,
|
|
19
|
+
description,
|
|
20
|
+
children,
|
|
21
|
+
width = "narrow",
|
|
22
|
+
actionsWidth = "auto",
|
|
23
|
+
className
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26
|
+
"aside",
|
|
27
|
+
{
|
|
28
|
+
"aria-label": "Page action",
|
|
29
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
30
|
+
"fixed inset-x-0 bottom-0 z-40 border-t border-border bg-background/95 backdrop-blur-sm",
|
|
31
|
+
"pb-[env(safe-area-inset-bottom)] supports-backdrop-filter:bg-background/80",
|
|
32
|
+
className
|
|
33
|
+
),
|
|
34
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "mx-auto flex items-center gap-4 px-4 py-3 md:px-6", title ? "justify-between" : "justify-end", widthStyles[width]), children: [
|
|
35
|
+
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0", children: [
|
|
36
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk373W6VADcjs.Text, { className: "truncate font-medium", children: title }),
|
|
37
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk373W6VADcjs.Text, { variant: "muted", className: "text-sm", children: description })
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKWLSBTB2cjs.cn.call(void 0, "shrink-0", actionsWidth === "full" && "w-full"), children })
|
|
40
|
+
] })
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
exports.FixedActionBar = FixedActionBar;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
// src/primitives/settings-list.tsx
|
|
4
|
+
var _react = require('react');
|
|
5
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
6
|
+
var SettingsListContext = _react.createContext.call(void 0, { single: false });
|
|
7
|
+
function SettingsList({ children, className }) {
|
|
8
|
+
const items = _react.Children.toArray(children).filter(Boolean);
|
|
9
|
+
if (items.length === 0) return null;
|
|
10
|
+
const single = items.length === 1;
|
|
11
|
+
if (single) {
|
|
12
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SettingsListContext.Provider, { value: { single: true }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: items[0] }) });
|
|
13
|
+
}
|
|
14
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SettingsListContext.Provider, { value: { single: false }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: items.map((child, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-border py-8", children: child }, i)) }) });
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
exports.SettingsListContext = SettingsListContext; exports.SettingsList = SettingsList;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-G6SRSWXB.js";
|
|
5
|
+
|
|
6
|
+
// src/primitives/anchor.tsx
|
|
7
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
8
|
+
import { forwardRef } from "react";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
var Anchor = forwardRef(function Anchor2({ variant = "unstyled", size = "inherit", display = "inline", underline = false, asChild = false, border = "none", weight = "normal", className, ...props }, ref) {
|
|
11
|
+
const Component = asChild ? Slot : "a";
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Component,
|
|
14
|
+
{
|
|
15
|
+
ref,
|
|
16
|
+
className: cn(
|
|
17
|
+
variant === "text" && "font-medium text-primary underline-offset-4 hover:underline",
|
|
18
|
+
variant === "muted" && "text-muted-foreground underline underline-offset-2 hover:text-foreground",
|
|
19
|
+
variant === "foreground" && "text-foreground underline-offset-2 hover:underline",
|
|
20
|
+
size === "xs" && "text-xs",
|
|
21
|
+
size === "sm" && "text-sm",
|
|
22
|
+
display === "inline-flex" && "inline-flex items-center gap-1",
|
|
23
|
+
display === "block" && "block",
|
|
24
|
+
border === "bottom" && "border-b last:border-b-0",
|
|
25
|
+
weight === "medium" && "font-medium",
|
|
26
|
+
underline && "underline",
|
|
27
|
+
className
|
|
28
|
+
),
|
|
29
|
+
...props
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
Anchor
|
|
36
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
5
|
+
|
|
6
|
+
// src/primitives/page-shell.tsx
|
|
7
|
+
var _react = require('react');
|
|
8
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
9
|
+
var widthStyles = {
|
|
10
|
+
narrow: "max-w-3xl",
|
|
11
|
+
wide: "max-w-5xl",
|
|
12
|
+
full: "max-w-none"
|
|
13
|
+
};
|
|
14
|
+
var paddingStyles = {
|
|
15
|
+
none: "",
|
|
16
|
+
base: "px-4 md:px-6",
|
|
17
|
+
relaxed: "px-6 md:px-10",
|
|
18
|
+
spacious: "px-6 md:px-10 xl:px-16"
|
|
19
|
+
};
|
|
20
|
+
var PageShell = _react.forwardRef.call(void 0,
|
|
21
|
+
function PageShell2({ width = "full", padding = "base", spacing = "default", bottomInset = "default", minHeight = "none", align = "start", printMode = "default", mobileTreatment = "page", as = "main", className, ...props }, ref) {
|
|
22
|
+
const Tag = as;
|
|
23
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24
|
+
Tag,
|
|
25
|
+
{
|
|
26
|
+
ref,
|
|
27
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
28
|
+
"mx-auto w-full pt-6 md:pt-8 mb-28",
|
|
29
|
+
spacing === "default" ? "space-y-6" : "space-y-4",
|
|
30
|
+
widthStyles[width],
|
|
31
|
+
paddingStyles[padding],
|
|
32
|
+
bottomInset === "action" && "pb-32",
|
|
33
|
+
minHeight === "content" && "min-h-[70vh]",
|
|
34
|
+
align === "center" && "flex items-center",
|
|
35
|
+
printMode === "compact" && "print:my-0 print:pt-0",
|
|
36
|
+
mobileTreatment === "application" && "mb-0 flex min-h-[calc(100svh-4rem)] flex-1 flex-col space-y-0 px-0 pt-0 md:mb-28 md:block md:min-h-0 md:pt-8",
|
|
37
|
+
className
|
|
38
|
+
),
|
|
39
|
+
...props
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
exports.PageShell = PageShell;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
5
|
+
|
|
6
|
+
// src/primitives/marketing-section.tsx
|
|
7
|
+
var _react = require('react');
|
|
8
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
9
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
10
|
+
var sectionVariants = _classvarianceauthority.cva.call(void 0, "w-full", {
|
|
11
|
+
variants: {
|
|
12
|
+
tone: {
|
|
13
|
+
default: "bg-background text-foreground",
|
|
14
|
+
// The "every other section" muted band used across the apps.
|
|
15
|
+
muted: "border-t border-border bg-muted/30 text-foreground",
|
|
16
|
+
// Full-width dark call-to-action band.
|
|
17
|
+
inverted: "border-t border-border bg-foreground text-background"
|
|
18
|
+
},
|
|
19
|
+
padding: {
|
|
20
|
+
none: "",
|
|
21
|
+
sm: "py-12 md:py-16",
|
|
22
|
+
default: "py-20 md:py-28",
|
|
23
|
+
lg: "py-24 md:py-32"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: { tone: "default", padding: "default" }
|
|
27
|
+
});
|
|
28
|
+
var widthClass = {
|
|
29
|
+
narrow: "max-w-3xl",
|
|
30
|
+
wide: "max-w-5xl",
|
|
31
|
+
widest: "max-w-6xl"
|
|
32
|
+
};
|
|
33
|
+
var MarketingSection = _react.forwardRef.call(void 0,
|
|
34
|
+
function MarketingSection2({ tone, padding, width = "wide", as, className, innerClassName, children, ...props }, ref) {
|
|
35
|
+
const Tag = _nullishCoalesce(as, () => ( "section"));
|
|
36
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37
|
+
Tag,
|
|
38
|
+
{
|
|
39
|
+
ref,
|
|
40
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, sectionVariants({ tone, padding }), className),
|
|
41
|
+
...props,
|
|
42
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
46
|
+
"mx-auto w-full px-4 md:px-6",
|
|
47
|
+
widthClass[width],
|
|
48
|
+
innerClassName
|
|
49
|
+
),
|
|
50
|
+
children
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
exports.MarketingSection = MarketingSection;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
|
|
3
|
+
// src/primitives/accent-theme.tsx
|
|
4
|
+
var _react = require('react');
|
|
5
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
6
|
+
var PALETTE_ID = /^[A-Za-z0-9_-]+$/;
|
|
7
|
+
function hexToHslTriplet(hex) {
|
|
8
|
+
const match = /^#([0-9a-f]{6})$/i.exec(hex.trim());
|
|
9
|
+
if (!match) return null;
|
|
10
|
+
const value = Number.parseInt(match[1], 16);
|
|
11
|
+
const red = (value >> 16 & 255) / 255;
|
|
12
|
+
const green = (value >> 8 & 255) / 255;
|
|
13
|
+
const blue = (value & 255) / 255;
|
|
14
|
+
const maximum = Math.max(red, green, blue);
|
|
15
|
+
const minimum = Math.min(red, green, blue);
|
|
16
|
+
const lightness = (maximum + minimum) / 2;
|
|
17
|
+
let hue = 0;
|
|
18
|
+
let saturation = 0;
|
|
19
|
+
if (maximum !== minimum) {
|
|
20
|
+
const delta = maximum - minimum;
|
|
21
|
+
saturation = lightness > 0.5 ? delta / (2 - maximum - minimum) : delta / (maximum + minimum);
|
|
22
|
+
if (maximum === red) hue = ((green - blue) / delta + (green < blue ? 6 : 0)) / 6;
|
|
23
|
+
else if (maximum === green) hue = ((blue - red) / delta + 2) / 6;
|
|
24
|
+
else hue = ((red - green) / delta + 4) / 6;
|
|
25
|
+
}
|
|
26
|
+
const round = (number) => Math.round(number * 10) / 10;
|
|
27
|
+
return `${round(hue * 360)} ${round(saturation * 100)}% ${round(lightness * 100)}%`;
|
|
28
|
+
}
|
|
29
|
+
function foregroundFor(hex) {
|
|
30
|
+
const match = /^#([0-9a-f]{6})$/i.exec(hex.trim());
|
|
31
|
+
if (!match) return "0 0% 100%";
|
|
32
|
+
const value = Number.parseInt(match[1], 16);
|
|
33
|
+
const channel = (number) => {
|
|
34
|
+
const normalized = number / 255;
|
|
35
|
+
return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;
|
|
36
|
+
};
|
|
37
|
+
const luminance = 0.2126 * channel(value >> 16 & 255) + 0.7152 * channel(value >> 8 & 255) + 0.0722 * channel(value & 255);
|
|
38
|
+
return luminance > 0.45 ? "0 0% 9%" : "0 0% 100%";
|
|
39
|
+
}
|
|
40
|
+
function AccentTheme({ colours, palette, scope: target = "region", children }) {
|
|
41
|
+
const scope = `accent-${_react.useId.call(void 0, ).replace(/[^a-zA-Z0-9]/g, "")}`;
|
|
42
|
+
const light = _optionalChain([colours, 'optionalAccess', _ => _.light]) ? hexToHslTriplet(colours.light) : null;
|
|
43
|
+
const dark = _optionalChain([colours, 'optionalAccess', _2 => _2.dark]) ? hexToHslTriplet(colours.dark) : null;
|
|
44
|
+
if (!light && !dark) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
|
45
|
+
const root = palette === void 0 ? null : PALETTE_ID.test(palette) ? `:root[data-theme="${palette}"]` : ":root:not(*)";
|
|
46
|
+
const lightSelector = target === "document" ? _nullishCoalesce(root, () => ( ":root")) : root ? `${root} .${scope}` : `.${scope}`;
|
|
47
|
+
const darkSelector = `${_nullishCoalesce(root, () => ( ":root"))}.dark${target === "document" ? "" : ` .${scope}`}`;
|
|
48
|
+
const rules = [];
|
|
49
|
+
if (light && _optionalChain([colours, 'optionalAccess', _3 => _3.light])) {
|
|
50
|
+
rules.push(
|
|
51
|
+
`${lightSelector}{--primary:${light};--primary-foreground:${foregroundFor(colours.light)};--ring:${light};--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-ring:hsl(var(--ring));}`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
if (dark && _optionalChain([colours, 'optionalAccess', _4 => _4.dark])) {
|
|
55
|
+
rules.push(
|
|
56
|
+
`${darkSelector}{--primary:${dark};--primary-foreground:${foregroundFor(colours.dark)};--ring:${dark};--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-ring:hsl(var(--ring));}`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
60
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: rules.join("") } }),
|
|
61
|
+
target === "document" ? children : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: scope, children })
|
|
62
|
+
] });
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
exports.AccentTheme = AccentTheme;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-G6SRSWXB.js";
|
|
5
|
+
|
|
6
|
+
// src/primitives/brand-mark.tsx
|
|
7
|
+
import { forwardRef } from "react";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
var sizeStyles = {
|
|
10
|
+
sm: "h-6 max-w-36",
|
|
11
|
+
md: "h-7 max-w-44",
|
|
12
|
+
lg: "h-9 max-w-52"
|
|
13
|
+
};
|
|
14
|
+
var BrandMark = forwardRef(function BrandMark2({ size = "md", className, ...props }, ref) {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
"img",
|
|
17
|
+
{
|
|
18
|
+
ref,
|
|
19
|
+
className: cn("w-auto object-contain", sizeStyles[size], className),
|
|
20
|
+
...props
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
BrandMark
|
|
27
|
+
};
|
|
@@ -7,16 +7,10 @@ import {
|
|
|
7
7
|
} from "./chunk-EEHIMPD7.js";
|
|
8
8
|
import {
|
|
9
9
|
FilterBar
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6LB37JWO.js";
|
|
11
11
|
import {
|
|
12
12
|
Heading
|
|
13
13
|
} from "./chunk-H2O6NMLZ.js";
|
|
14
|
-
import {
|
|
15
|
-
Tooltip,
|
|
16
|
-
TooltipContent,
|
|
17
|
-
TooltipProvider,
|
|
18
|
-
TooltipTrigger
|
|
19
|
-
} from "./chunk-ZRLUUZHK.js";
|
|
20
14
|
import {
|
|
21
15
|
BoardColumnComponent,
|
|
22
16
|
MobileBoardView
|
|
@@ -24,6 +18,12 @@ import {
|
|
|
24
18
|
import {
|
|
25
19
|
ScrollArea
|
|
26
20
|
} from "./chunk-LELFPLTE.js";
|
|
21
|
+
import {
|
|
22
|
+
Tooltip,
|
|
23
|
+
TooltipContent,
|
|
24
|
+
TooltipProvider,
|
|
25
|
+
TooltipTrigger
|
|
26
|
+
} from "./chunk-ZRLUUZHK.js";
|
|
27
27
|
import {
|
|
28
28
|
Input
|
|
29
29
|
} from "./chunk-QMA3WVB7.js";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
5
|
+
|
|
6
|
+
// src/primitives/brand-mark.tsx
|
|
7
|
+
var _react = require('react');
|
|
8
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
9
|
+
var sizeStyles = {
|
|
10
|
+
sm: "h-6 max-w-36",
|
|
11
|
+
md: "h-7 max-w-44",
|
|
12
|
+
lg: "h-9 max-w-52"
|
|
13
|
+
};
|
|
14
|
+
var BrandMark = _react.forwardRef.call(void 0, function BrandMark2({ size = "md", className, ...props }, ref) {
|
|
15
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16
|
+
"img",
|
|
17
|
+
{
|
|
18
|
+
ref,
|
|
19
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, "w-auto object-contain", sizeStyles[size], className),
|
|
20
|
+
...props
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
exports.BrandMark = BrandMark;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBTHYGHOHcjs = require('./chunk-BTHYGHOH.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunkT2ZFSPE4cjs = require('./chunk-T2ZFSPE4.cjs');
|
|
@@ -29,10 +29,10 @@ function PreviewDialog({
|
|
|
29
29
|
downloadLabel,
|
|
30
30
|
children
|
|
31
31
|
}) {
|
|
32
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogContent, { presentation: "preview", className: "h-[92dvh] outline-none", children: [
|
|
33
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogHeader, { className: "shrink-0 border-b border-border", children: [
|
|
34
34
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
35
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
35
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogTitle, { className: "min-w-0 flex-1 truncate text-left", children: title }),
|
|
36
36
|
onDownload && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37
37
|
_chunkJDEXZGIYcjs.Button,
|
|
38
38
|
{
|
|
@@ -46,7 +46,7 @@ function PreviewDialog({
|
|
|
46
46
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT2ZFSPE4cjs.Icon, { icon: downloading ? _lucidereact.Loader2 : _lucidereact.Download, size: "sm", spin: downloading })
|
|
47
47
|
}
|
|
48
48
|
),
|
|
49
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
49
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogClose, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
50
50
|
_chunkJDEXZGIYcjs.Button,
|
|
51
51
|
{
|
|
52
52
|
type: "button",
|
|
@@ -58,7 +58,7 @@ function PreviewDialog({
|
|
|
58
58
|
}
|
|
59
59
|
) })
|
|
60
60
|
] }),
|
|
61
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
61
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBTHYGHOHcjs.ResponsiveDialogDescription, { className: "sr-only", children: [
|
|
62
62
|
"Preview of ",
|
|
63
63
|
title
|
|
64
64
|
] })
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-G6SRSWXB.js";
|
|
5
|
+
|
|
6
|
+
// src/primitives/marketing-section.tsx
|
|
7
|
+
import { forwardRef } from "react";
|
|
8
|
+
import { cva } from "class-variance-authority";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
var sectionVariants = cva("w-full", {
|
|
11
|
+
variants: {
|
|
12
|
+
tone: {
|
|
13
|
+
default: "bg-background text-foreground",
|
|
14
|
+
// The "every other section" muted band used across the apps.
|
|
15
|
+
muted: "border-t border-border bg-muted/30 text-foreground",
|
|
16
|
+
// Full-width dark call-to-action band.
|
|
17
|
+
inverted: "border-t border-border bg-foreground text-background"
|
|
18
|
+
},
|
|
19
|
+
padding: {
|
|
20
|
+
none: "",
|
|
21
|
+
sm: "py-12 md:py-16",
|
|
22
|
+
default: "py-20 md:py-28",
|
|
23
|
+
lg: "py-24 md:py-32"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: { tone: "default", padding: "default" }
|
|
27
|
+
});
|
|
28
|
+
var widthClass = {
|
|
29
|
+
narrow: "max-w-3xl",
|
|
30
|
+
wide: "max-w-5xl",
|
|
31
|
+
widest: "max-w-6xl"
|
|
32
|
+
};
|
|
33
|
+
var MarketingSection = forwardRef(
|
|
34
|
+
function MarketingSection2({ tone, padding, width = "wide", as, className, innerClassName, children, ...props }, ref) {
|
|
35
|
+
const Tag = as ?? "section";
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
Tag,
|
|
38
|
+
{
|
|
39
|
+
ref,
|
|
40
|
+
className: cn(sectionVariants({ tone, padding }), className),
|
|
41
|
+
...props,
|
|
42
|
+
children: /* @__PURE__ */ jsx(
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
className: cn(
|
|
46
|
+
"mx-auto w-full px-4 md:px-6",
|
|
47
|
+
widthClass[width],
|
|
48
|
+
innerClassName
|
|
49
|
+
),
|
|
50
|
+
children
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
MarketingSection
|
|
60
|
+
};
|