@upstart.gg/sdk 0.0.137 → 0.0.138
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/shared/ai/schemas.js +2 -2
- package/dist/shared/ai/schemas.js.map +1 -1
- package/dist/shared/ai/types.d.ts +2 -2
- package/dist/shared/ai/types.d.ts.map +1 -1
- package/dist/shared/ajv.js +26 -25
- package/dist/shared/ajv.js.map +1 -1
- package/dist/shared/attributes.d.ts +8 -0
- package/dist/shared/attributes.d.ts.map +1 -1
- package/dist/shared/attributes.js +15 -14
- package/dist/shared/brick-manifest.js +2 -2
- package/dist/shared/bricks/manifests/accordion.manifest.js +8 -7
- package/dist/shared/bricks/manifests/all-manifests.js +38 -37
- package/dist/shared/bricks/manifests/all-props.d.ts +32 -22
- package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/all-props.js +40 -39
- package/dist/shared/bricks/manifests/all-props.js.map +1 -1
- package/dist/shared/bricks/manifests/box.manifest.js +11 -10
- package/dist/shared/bricks/manifests/button.manifest.js +10 -9
- package/dist/shared/bricks/manifests/card.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +13 -12
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/carousel.manifest.js +11 -10
- package/dist/shared/bricks/manifests/footer.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/footer.manifest.js +9 -8
- package/dist/shared/bricks/manifests/form.manifest.js +9 -8
- package/dist/shared/bricks/manifests/hero.manifest.d.ts +2 -4
- package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +10 -9
- package/dist/shared/bricks/manifests/html.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/html.manifest.js +6 -5
- package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/icon.manifest.js +9 -8
- package/dist/shared/bricks/manifests/image.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +12 -11
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +11 -10
- package/dist/shared/bricks/manifests/map.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/map.manifest.js +9 -8
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts +2 -0
- package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/navbar.manifest.js +11 -10
- package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/sidebar.manifest.js +11 -10
- package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/social-links.manifest.js +10 -9
- package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/spacer.manifest.js +6 -5
- package/dist/shared/bricks/manifests/table.manifest.d.ts +1 -0
- package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/table.manifest.js +10 -9
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/tabs.manifest.js +11 -10
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +3 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/testimonials.manifest.js +13 -12
- package/dist/shared/bricks/manifests/text.manifest.d.ts +2 -5
- package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +10 -9
- package/dist/shared/bricks/manifests/timeline.manifest.js +11 -10
- package/dist/shared/bricks/manifests/video.manifest.js +9 -8
- package/dist/shared/bricks/props/background.d.ts.map +1 -1
- package/dist/shared/bricks/props/background.js +1 -1
- package/dist/shared/bricks/props/border.js +2 -2
- package/dist/shared/bricks/props/color.d.ts.map +1 -1
- package/dist/shared/bricks/props/color.js +1 -1
- package/dist/shared/bricks/props/common.d.ts.map +1 -1
- package/dist/shared/bricks/props/common.js +2 -1
- package/dist/shared/bricks/props/grow.d.ts +3 -0
- package/dist/shared/bricks/props/grow.d.ts.map +1 -0
- package/dist/shared/bricks/props/grow.js +10 -0
- package/dist/shared/bricks/props/grow.js.map +1 -0
- package/dist/shared/bricks/props/helpers.js +3 -2
- package/dist/shared/bricks/props/image.d.ts +1 -0
- package/dist/shared/bricks/props/image.d.ts.map +1 -1
- package/dist/shared/bricks/props/image.js +1 -1
- package/dist/shared/bricks/props/string.d.ts.map +1 -1
- package/dist/shared/bricks/props/string.js +1 -1
- package/dist/shared/bricks.d.ts +18 -17
- package/dist/shared/bricks.d.ts.map +1 -1
- package/dist/shared/bricks.js +39 -38
- package/dist/shared/chunk-2EOCK66Z.js +19 -0
- package/dist/shared/chunk-2EOCK66Z.js.map +1 -0
- package/dist/shared/{chunk-XXPSM6UA.js → chunk-2UEPTT5J.js} +5 -9
- package/dist/shared/chunk-2UEPTT5J.js.map +1 -0
- package/dist/shared/{chunk-DRQKKPTX.js → chunk-2Z5WOCFS.js} +41 -1
- package/dist/shared/chunk-2Z5WOCFS.js.map +1 -0
- package/dist/shared/{chunk-7U5WPHXB.js → chunk-34IUWNRX.js} +7 -7
- package/dist/shared/chunk-57NRTXRA.js +309 -0
- package/dist/shared/chunk-57NRTXRA.js.map +1 -0
- package/dist/shared/{chunk-T6C3NG2L.js → chunk-5HJT5NJ3.js} +8 -8
- package/dist/shared/{chunk-BZTWZC77.js → chunk-5J4Y43RM.js} +37 -179
- package/dist/shared/chunk-5J4Y43RM.js.map +1 -0
- package/dist/shared/{chunk-KKWT3OXF.js → chunk-5OVOXUFX.js} +3 -2
- package/dist/shared/{chunk-KKWT3OXF.js.map → chunk-5OVOXUFX.js.map} +1 -1
- package/dist/shared/{chunk-XK2CERPB.js → chunk-5SNSUC6Q.js} +7 -7
- package/dist/shared/{chunk-JLDAS3VE.js → chunk-B5T2LFV2.js} +10 -14
- package/dist/shared/chunk-B5T2LFV2.js.map +1 -0
- package/dist/shared/{chunk-PF75LW33.js → chunk-E3ZW57HF.js} +18 -9
- package/dist/shared/chunk-E3ZW57HF.js.map +1 -0
- package/dist/shared/{chunk-JSDKK5QN.js → chunk-EUFVTHAG.js} +5 -3
- package/dist/shared/chunk-EUFVTHAG.js.map +1 -0
- package/dist/shared/{chunk-U4KZUX37.js → chunk-FC52EHCC.js} +8 -8
- package/dist/shared/chunk-FC52EHCC.js.map +1 -0
- package/dist/shared/{chunk-JW7MQAU4.js → chunk-FVV27R73.js} +9 -94
- package/dist/shared/chunk-FVV27R73.js.map +1 -0
- package/dist/shared/{chunk-SQXZNGQF.js → chunk-FYGFB5U5.js} +3 -1
- package/dist/shared/chunk-FYGFB5U5.js.map +1 -0
- package/dist/shared/{chunk-J45LSQT6.js → chunk-GNTJT7MR.js} +2 -2
- package/dist/shared/chunk-HHUFGV7J.js +259 -0
- package/dist/shared/chunk-HHUFGV7J.js.map +1 -0
- package/dist/shared/{chunk-W2RFDII5.js → chunk-IMDOF55E.js} +12 -4
- package/dist/shared/chunk-IMDOF55E.js.map +1 -0
- package/dist/shared/{chunk-KQH6V22E.js → chunk-IPWYNE6Y.js} +25 -25
- package/dist/shared/{chunk-H6TMBELF.js → chunk-J6R3GSKS.js} +46 -34
- package/dist/shared/chunk-J6R3GSKS.js.map +1 -0
- package/dist/shared/{chunk-TBT2PTGB.js → chunk-KRODRZNS.js} +9 -9
- package/dist/shared/chunk-KTA7XES3.js +168 -0
- package/dist/shared/chunk-KTA7XES3.js.map +1 -0
- package/dist/shared/{chunk-SK2O7GFC.js → chunk-L4W4B2RQ.js} +15 -70
- package/dist/shared/chunk-L4W4B2RQ.js.map +1 -0
- package/dist/shared/{chunk-MYOLWTB2.js → chunk-NTP6BKRU.js} +9 -9
- package/dist/shared/chunk-NTP6BKRU.js.map +1 -0
- package/dist/shared/{chunk-JF52BBFD.js → chunk-O53V22BK.js} +18 -10
- package/dist/shared/chunk-O53V22BK.js.map +1 -0
- package/dist/shared/{chunk-ZVJNRKT4.js → chunk-ORIUCOED.js} +7 -7
- package/dist/shared/{chunk-LGDDJJHK.js → chunk-PFZMRSHJ.js} +11 -11
- package/dist/shared/{chunk-6AE7UD73.js → chunk-QHKOAIOK.js} +31 -60
- package/dist/shared/chunk-QHKOAIOK.js.map +1 -0
- package/dist/shared/{chunk-LPAQ47C6.js → chunk-RDOCVLCF.js} +11 -11
- package/dist/shared/{chunk-VSLRTXLF.js → chunk-RFH7PEVS.js} +5 -4
- package/dist/shared/chunk-RFH7PEVS.js.map +1 -0
- package/dist/shared/{chunk-XNRSL6FL.js → chunk-T3UPW5OW.js} +5 -4
- package/dist/shared/{chunk-XNRSL6FL.js.map → chunk-T3UPW5OW.js.map} +1 -1
- package/dist/shared/{chunk-FUUSAMN3.js → chunk-TGKNA2JS.js} +8 -8
- package/dist/shared/{chunk-HY7JOP3J.js → chunk-TZ6X7ZM5.js} +19 -11
- package/dist/shared/chunk-TZ6X7ZM5.js.map +1 -0
- package/dist/shared/{chunk-VTCHJT4O.js → chunk-UC75KRLX.js} +2 -2
- package/dist/shared/{chunk-4KY7OZWD.js → chunk-VMIJ6MG5.js} +13 -13
- package/dist/shared/{chunk-SRYBJ6NQ.js → chunk-VYA2FCTY.js} +2 -2
- package/dist/shared/{chunk-LGGPCCCY.js → chunk-XYWSIMZ6.js} +3 -3
- package/dist/shared/chunk-XYWSIMZ6.js.map +1 -0
- package/dist/shared/{chunk-FHA4DFIM.js → chunk-ZYQZUWF7.js} +10 -10
- package/dist/shared/{chunk-2O5HVPID.js → chunk-ZZVYD4BG.js} +3 -3
- package/dist/shared/context.d.ts +4 -0
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/context.js +43 -42
- package/dist/shared/context.js.map +1 -1
- package/dist/shared/page.d.ts +2 -0
- package/dist/shared/page.d.ts.map +1 -1
- package/dist/shared/page.js +41 -40
- package/dist/shared/site.d.ts +7 -0
- package/dist/shared/site.d.ts.map +1 -1
- package/dist/shared/site.js +43 -42
- package/dist/shared/sitemap.js +42 -41
- package/dist/shared/utils/schema.d.ts +0 -5
- package/dist/shared/utils/schema.d.ts.map +1 -1
- package/dist/shared/utils/schema.js +1 -3
- package/package.json +2 -2
- package/src/shared/ai/schemas.ts +1 -1
- package/src/shared/ai/types.ts +2 -2
- package/src/shared/bricks/manifests/card.manifest.ts +25 -168
- package/src/shared/bricks/manifests/hero.manifest.ts +44 -249
- package/src/shared/bricks/manifests/html.manifest.ts +6 -0
- package/src/shared/bricks/manifests/icon.manifest.ts +1 -89
- package/src/shared/bricks/manifests/image.manifest.ts +0 -4
- package/src/shared/bricks/manifests/images-gallery.manifest.ts +8 -0
- package/src/shared/bricks/manifests/map.manifest.ts +9 -65
- package/src/shared/bricks/manifests/sidebar.manifest.ts +0 -1
- package/src/shared/bricks/manifests/social-links.manifest.ts +0 -1
- package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
- package/src/shared/bricks/manifests/table.manifest.ts +6 -0
- package/src/shared/bricks/manifests/tabs.manifest.ts +12 -429
- package/src/shared/bricks/manifests/testimonials.manifest.ts +28 -226
- package/src/shared/bricks/manifests/text.manifest.ts +16 -44
- package/src/shared/bricks/props/background.ts +2 -1
- package/src/shared/bricks/props/color.ts +5 -2
- package/src/shared/bricks/props/common.ts +2 -8
- package/src/shared/bricks/props/grow.ts +11 -0
- package/src/shared/bricks/props/image.ts +40 -0
- package/src/shared/bricks/props/string.ts +2 -0
- package/src/shared/bricks.ts +33 -23
- package/src/shared/page.ts +1 -0
- package/src/shared/site.ts +1 -0
- package/src/shared/utils/schema.ts +28 -18
- package/src/shared/utils/tests/schema.test.ts +211 -4
- package/dist/shared/chunk-6AE7UD73.js.map +0 -1
- package/dist/shared/chunk-BZTWZC77.js.map +0 -1
- package/dist/shared/chunk-DRQKKPTX.js.map +0 -1
- package/dist/shared/chunk-H6TMBELF.js.map +0 -1
- package/dist/shared/chunk-HUWMIXNN.js +0 -570
- package/dist/shared/chunk-HUWMIXNN.js.map +0 -1
- package/dist/shared/chunk-HY7JOP3J.js.map +0 -1
- package/dist/shared/chunk-JF52BBFD.js.map +0 -1
- package/dist/shared/chunk-JLDAS3VE.js.map +0 -1
- package/dist/shared/chunk-JSDKK5QN.js.map +0 -1
- package/dist/shared/chunk-JW7MQAU4.js.map +0 -1
- package/dist/shared/chunk-LGGPCCCY.js.map +0 -1
- package/dist/shared/chunk-MYOLWTB2.js.map +0 -1
- package/dist/shared/chunk-O24RDXZS.js +0 -505
- package/dist/shared/chunk-O24RDXZS.js.map +0 -1
- package/dist/shared/chunk-PF75LW33.js.map +0 -1
- package/dist/shared/chunk-QEJGPYTB.js +0 -462
- package/dist/shared/chunk-QEJGPYTB.js.map +0 -1
- package/dist/shared/chunk-SK2O7GFC.js.map +0 -1
- package/dist/shared/chunk-SQXZNGQF.js.map +0 -1
- package/dist/shared/chunk-U4KZUX37.js.map +0 -1
- package/dist/shared/chunk-VSLRTXLF.js.map +0 -1
- package/dist/shared/chunk-W2RFDII5.js.map +0 -1
- package/dist/shared/chunk-XXPSM6UA.js.map +0 -1
- /package/dist/shared/{chunk-7U5WPHXB.js.map → chunk-34IUWNRX.js.map} +0 -0
- /package/dist/shared/{chunk-T6C3NG2L.js.map → chunk-5HJT5NJ3.js.map} +0 -0
- /package/dist/shared/{chunk-XK2CERPB.js.map → chunk-5SNSUC6Q.js.map} +0 -0
- /package/dist/shared/{chunk-J45LSQT6.js.map → chunk-GNTJT7MR.js.map} +0 -0
- /package/dist/shared/{chunk-KQH6V22E.js.map → chunk-IPWYNE6Y.js.map} +0 -0
- /package/dist/shared/{chunk-TBT2PTGB.js.map → chunk-KRODRZNS.js.map} +0 -0
- /package/dist/shared/{chunk-ZVJNRKT4.js.map → chunk-ORIUCOED.js.map} +0 -0
- /package/dist/shared/{chunk-LGDDJJHK.js.map → chunk-PFZMRSHJ.js.map} +0 -0
- /package/dist/shared/{chunk-LPAQ47C6.js.map → chunk-RDOCVLCF.js.map} +0 -0
- /package/dist/shared/{chunk-FUUSAMN3.js.map → chunk-TGKNA2JS.js.map} +0 -0
- /package/dist/shared/{chunk-VTCHJT4O.js.map → chunk-UC75KRLX.js.map} +0 -0
- /package/dist/shared/{chunk-4KY7OZWD.js.map → chunk-VMIJ6MG5.js.map} +0 -0
- /package/dist/shared/{chunk-SRYBJ6NQ.js.map → chunk-VYA2FCTY.js.map} +0 -0
- /package/dist/shared/{chunk-FHA4DFIM.js.map → chunk-ZYQZUWF7.js.map} +0 -0
- /package/dist/shared/{chunk-2O5HVPID.js.map → chunk-ZZVYD4BG.js.map} +0 -0
|
@@ -1,462 +0,0 @@
|
|
|
1
|
-
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
border,
|
|
5
|
-
rounding
|
|
6
|
-
} from "./chunk-SRYBJ6NQ.js";
|
|
7
|
-
import {
|
|
8
|
-
defineProps
|
|
9
|
-
} from "./chunk-VTCHJT4O.js";
|
|
10
|
-
import {
|
|
11
|
-
textContent
|
|
12
|
-
} from "./chunk-2U5U3CCJ.js";
|
|
13
|
-
import {
|
|
14
|
-
cssLength
|
|
15
|
-
} from "./chunk-OJ6KL7FU.js";
|
|
16
|
-
import {
|
|
17
|
-
shadow,
|
|
18
|
-
textShadow
|
|
19
|
-
} from "./chunk-5RCC2STG.js";
|
|
20
|
-
import {
|
|
21
|
-
alignItems,
|
|
22
|
-
justifyContent
|
|
23
|
-
} from "./chunk-ZRBTAC3G.js";
|
|
24
|
-
import {
|
|
25
|
-
colorPreset
|
|
26
|
-
} from "./chunk-IEMCCHM4.js";
|
|
27
|
-
import {
|
|
28
|
-
defineBrickManifest
|
|
29
|
-
} from "./chunk-J45LSQT6.js";
|
|
30
|
-
|
|
31
|
-
// src/shared/bricks/manifests/hero.manifest.ts
|
|
32
|
-
import { BsAlphabetUppercase } from "react-icons/bs";
|
|
33
|
-
import { Type } from "@sinclair/typebox";
|
|
34
|
-
var manifest = defineBrickManifest({
|
|
35
|
-
type: "hero",
|
|
36
|
-
category: "basic",
|
|
37
|
-
name: "Hero",
|
|
38
|
-
description: "A big textual element for home pages.",
|
|
39
|
-
aiInstructions: `PURPOSE
|
|
40
|
-
A prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.
|
|
41
|
-
|
|
42
|
-
STRUCTURE
|
|
43
|
-
1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).
|
|
44
|
-
2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.
|
|
45
|
-
3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).
|
|
46
|
-
|
|
47
|
-
COLOR & BACKGROUND
|
|
48
|
-
\u2022 Prefer omitting colorPreset so the hero inherits its parent layout background.
|
|
49
|
-
\u2022 When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).
|
|
50
|
-
\u2022 NEVER invent tokens like success-, warning-, danger-, blue-, orange- (they don't exist). Map them to semantic sets (e.g. success -> secondary, warning -> accent, danger -> accent or primary, blue -> primary, orange -> accent).
|
|
51
|
-
|
|
52
|
-
LAYOUT & SPACING
|
|
53
|
-
\u2022 Use padding suited to visual weight: landing hero: 5\u20138rem desktop; simple page intro: 2\u20134rem.
|
|
54
|
-
\u2022 You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).
|
|
55
|
-
\u2022 Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.
|
|
56
|
-
|
|
57
|
-
TYPOGRAPHY
|
|
58
|
-
\u2022 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.
|
|
59
|
-
\u2022 Avoid overly long taglines (>140 chars).
|
|
60
|
-
|
|
61
|
-
DYNAMIC DATA
|
|
62
|
-
\u2022 You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.
|
|
63
|
-
\u2022 Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.
|
|
64
|
-
|
|
65
|
-
RESPONSIVE
|
|
66
|
-
\u2022 Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.
|
|
67
|
-
|
|
68
|
-
DON'TS
|
|
69
|
-
\u2717 Don't add properties that are not in the schema.
|
|
70
|
-
\u2717 Don't wrap everything with extraneous HTML containers.
|
|
71
|
-
\u2717 Don't use colorPreset plus a conflicting parent background rationale\u2014choose one.
|
|
72
|
-
|
|
73
|
-
DO
|
|
74
|
-
\u2713 Keep content focused.
|
|
75
|
-
\u2713 Use semantic colors thoughtfully.
|
|
76
|
-
\u2713 Use gradientDirection ONLY with gradient presets.
|
|
77
|
-
\u2713 Provide accessible plain text when not using HTML tags.
|
|
78
|
-
`,
|
|
79
|
-
icon: BsAlphabetUppercase,
|
|
80
|
-
defaultWidth: { desktop: "60dvw", mobile: "auto" },
|
|
81
|
-
// Force the wrapper direction to be the same as the text direction
|
|
82
|
-
staticClasses: "flex-col",
|
|
83
|
-
props: defineProps({
|
|
84
|
-
content: textContent({
|
|
85
|
-
title: "Hero title",
|
|
86
|
-
default: "<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>"
|
|
87
|
-
}),
|
|
88
|
-
tagline: Type.Optional(
|
|
89
|
-
textContent({
|
|
90
|
-
title: "Hero tagline"
|
|
91
|
-
// default: "<p style='text-align:center'>Use our platform to build your business with confidence.</p>",
|
|
92
|
-
})
|
|
93
|
-
),
|
|
94
|
-
colorPreset: Type.Optional(
|
|
95
|
-
colorPreset({
|
|
96
|
-
title: "Color"
|
|
97
|
-
})
|
|
98
|
-
),
|
|
99
|
-
textShadow: Type.Optional(
|
|
100
|
-
textShadow({
|
|
101
|
-
default: "text-shadow-sm"
|
|
102
|
-
})
|
|
103
|
-
),
|
|
104
|
-
padding: Type.Optional(
|
|
105
|
-
cssLength({
|
|
106
|
-
default: "6rem",
|
|
107
|
-
description: "Padding inside the hero.",
|
|
108
|
-
"ai:instructions": "Use only a single value like '1rem' or '10px'",
|
|
109
|
-
title: "Padding",
|
|
110
|
-
"ui:responsive": true,
|
|
111
|
-
"ui:placeholder": "Not specified",
|
|
112
|
-
"ui:styleId": "styles:padding"
|
|
113
|
-
})
|
|
114
|
-
),
|
|
115
|
-
rounding: rounding({
|
|
116
|
-
default: "rounded-md"
|
|
117
|
-
}),
|
|
118
|
-
border: Type.Optional(border()),
|
|
119
|
-
shadow: Type.Optional(shadow()),
|
|
120
|
-
justifyContent: Type.Optional(
|
|
121
|
-
justifyContent({
|
|
122
|
-
default: "justify-center"
|
|
123
|
-
})
|
|
124
|
-
),
|
|
125
|
-
alignItems: Type.Optional(
|
|
126
|
-
alignItems({
|
|
127
|
-
default: "items-center"
|
|
128
|
-
})
|
|
129
|
-
)
|
|
130
|
-
})
|
|
131
|
-
});
|
|
132
|
-
var examples = [
|
|
133
|
-
{
|
|
134
|
-
description: "Simple welcome hero with primary background",
|
|
135
|
-
type: "hero",
|
|
136
|
-
props: {
|
|
137
|
-
content: "Welcome to Our Platform",
|
|
138
|
-
tagline: "The future of productivity starts here",
|
|
139
|
-
padding: "3rem",
|
|
140
|
-
colorPreset: {
|
|
141
|
-
color: "primary-400"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
description: "Startup hero with primary gradient background to bottom-right",
|
|
147
|
-
type: "hero",
|
|
148
|
-
props: {
|
|
149
|
-
content: "Build Something Amazing",
|
|
150
|
-
tagline: "Turn your ideas into reality with our cutting-edge tools",
|
|
151
|
-
padding: "3rem",
|
|
152
|
-
colorPreset: {
|
|
153
|
-
color: "primary-500",
|
|
154
|
-
gradientDirection: "bg-gradient-to-br"
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
description: "Construction company hero with bold presence",
|
|
160
|
-
type: "hero",
|
|
161
|
-
props: {
|
|
162
|
-
content: "Building Tomorrow Today",
|
|
163
|
-
tagline: "Quality construction services for residential and commercial projects",
|
|
164
|
-
padding: "3rem"
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
description: "Fashion brand hero with modern appeal",
|
|
169
|
-
type: "hero",
|
|
170
|
-
props: {
|
|
171
|
-
content: "Express Your Style",
|
|
172
|
-
tagline: "Contemporary fashion that speaks to your individuality",
|
|
173
|
-
padding: "6rem"
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
description: "Law firm hero with authoritative tone",
|
|
178
|
-
type: "hero",
|
|
179
|
-
props: {
|
|
180
|
-
content: "Justice You Can Trust",
|
|
181
|
-
tagline: "Experienced legal representation for individuals and businesses",
|
|
182
|
-
padding: "6rem",
|
|
183
|
-
colorPreset: {
|
|
184
|
-
color: "neutral-800"
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
description: "Photography studio hero with artistic flair",
|
|
190
|
-
type: "hero",
|
|
191
|
-
props: {
|
|
192
|
-
content: "Capturing Life's Moments",
|
|
193
|
-
tagline: "Professional photography services for weddings, portraits, and events"
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
description: "Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')",
|
|
198
|
-
type: "hero",
|
|
199
|
-
props: {
|
|
200
|
-
content: "Authentic Italian Cuisine",
|
|
201
|
-
tagline: "Fresh ingredients, traditional recipes, unforgettable flavors",
|
|
202
|
-
padding: "4rem",
|
|
203
|
-
colorPreset: {
|
|
204
|
-
color: "accent-600"
|
|
205
|
-
},
|
|
206
|
-
rounding: "rounded-xl",
|
|
207
|
-
shadow: "shadow-lg"
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
description: "Tech company hero with secondary gradient (mapped from former 'success') and modern styling",
|
|
212
|
-
type: "hero",
|
|
213
|
-
props: {
|
|
214
|
-
content: "Innovation Redefined",
|
|
215
|
-
tagline: "Pushing the boundaries of what's possible with AI technology",
|
|
216
|
-
padding: "5rem",
|
|
217
|
-
colorPreset: {
|
|
218
|
-
color: "secondary-gradient-400",
|
|
219
|
-
gradientDirection: "bg-gradient-to-r"
|
|
220
|
-
},
|
|
221
|
-
textShadow: "text-shadow-lg",
|
|
222
|
-
border: {
|
|
223
|
-
width: "border-2",
|
|
224
|
-
color: "border-success-300"
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
description: "Medical practice hero with trust-inspiring design (primary mapping for former 'blue')",
|
|
230
|
-
type: "hero",
|
|
231
|
-
props: {
|
|
232
|
-
content: "Your Health, Our Priority",
|
|
233
|
-
tagline: "Comprehensive healthcare services with compassionate care",
|
|
234
|
-
padding: "4rem",
|
|
235
|
-
colorPreset: {
|
|
236
|
-
color: "primary-500"
|
|
237
|
-
},
|
|
238
|
-
rounding: "rounded-lg",
|
|
239
|
-
justifyContent: "justify-start",
|
|
240
|
-
alignItems: "items-start"
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
description: "Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient",
|
|
245
|
-
type: "hero",
|
|
246
|
-
props: {
|
|
247
|
-
content: "Creative Solutions",
|
|
248
|
-
tagline: "Bold designs that make your brand unforgettable",
|
|
249
|
-
padding: "3rem",
|
|
250
|
-
colorPreset: {
|
|
251
|
-
color: "accent-gradient-300",
|
|
252
|
-
gradientDirection: "bg-gradient-to-tl"
|
|
253
|
-
},
|
|
254
|
-
shadow: "shadow-xl",
|
|
255
|
-
border: {
|
|
256
|
-
width: "border",
|
|
257
|
-
color: "border-warning-200"
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
description: "Fitness studio hero with accent strong presence (mapping former 'danger')",
|
|
263
|
-
type: "hero",
|
|
264
|
-
props: {
|
|
265
|
-
content: "Transform Your Body",
|
|
266
|
-
tagline: "High-intensity training programs that deliver real results",
|
|
267
|
-
padding: "5rem",
|
|
268
|
-
colorPreset: {
|
|
269
|
-
color: "accent-600"
|
|
270
|
-
},
|
|
271
|
-
textShadow: "text-shadow-md",
|
|
272
|
-
rounding: "rounded-2xl",
|
|
273
|
-
justifyContent: "justify-center",
|
|
274
|
-
alignItems: "items-center"
|
|
275
|
-
}
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
description: "Minimalist hero with neutral tones and subtle effects",
|
|
279
|
-
type: "hero",
|
|
280
|
-
props: {
|
|
281
|
-
content: "Simplicity Perfected",
|
|
282
|
-
tagline: "Clean design solutions for modern businesses",
|
|
283
|
-
padding: "8rem",
|
|
284
|
-
colorPreset: {
|
|
285
|
-
color: "neutral-100"
|
|
286
|
-
},
|
|
287
|
-
shadow: "shadow-sm",
|
|
288
|
-
border: {
|
|
289
|
-
width: "border",
|
|
290
|
-
color: "border-neutral-300"
|
|
291
|
-
},
|
|
292
|
-
rounding: "rounded-md"
|
|
293
|
-
}
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
description: "Inverted dark hero using neutral-800 background and left alignment",
|
|
297
|
-
type: "hero",
|
|
298
|
-
props: {
|
|
299
|
-
content: "Experience Powerful Automation",
|
|
300
|
-
tagline: "Scale operations with intelligent workflows",
|
|
301
|
-
padding: "5rem",
|
|
302
|
-
colorPreset: { color: "neutral-800" },
|
|
303
|
-
justifyContent: "justify-start",
|
|
304
|
-
alignItems: "items-start",
|
|
305
|
-
textShadow: "text-shadow-sm"
|
|
306
|
-
}
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
description: "Compact hero without tagline (no colorPreset to inherit parent)",
|
|
310
|
-
type: "hero",
|
|
311
|
-
props: {
|
|
312
|
-
content: "Documentation",
|
|
313
|
-
padding: "2rem",
|
|
314
|
-
justifyContent: "justify-start",
|
|
315
|
-
alignItems: "items-start"
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
{
|
|
319
|
-
description: "Responsive hero with large desktop padding and reduced mobile padding",
|
|
320
|
-
type: "hero",
|
|
321
|
-
props: {
|
|
322
|
-
content: "All-In-One Platform",
|
|
323
|
-
tagline: "Design \u2022 Launch \u2022 Grow",
|
|
324
|
-
padding: "8rem",
|
|
325
|
-
colorPreset: { color: "primary-gradient-500", gradientDirection: "bg-gradient-to-br" }
|
|
326
|
-
},
|
|
327
|
-
mobileProps: {
|
|
328
|
-
content: "All-In-One Platform",
|
|
329
|
-
padding: "3rem"
|
|
330
|
-
}
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
description: "Hero using dynamic product dataset with gradient emphasis",
|
|
334
|
-
type: "hero",
|
|
335
|
-
props: {
|
|
336
|
-
content: "Introducing {{product.name}}",
|
|
337
|
-
tagline: "{{product.shortTagline}}",
|
|
338
|
-
padding: "5rem",
|
|
339
|
-
colorPreset: { color: "accent-gradient-400", gradientDirection: "bg-gradient-to-r" },
|
|
340
|
-
textShadow: "text-shadow-md"
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
description: "Dynamic company hero using business query data",
|
|
345
|
-
type: "hero",
|
|
346
|
-
props: {
|
|
347
|
-
content: "Welcome to {{company.name}}",
|
|
348
|
-
tagline: "{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}",
|
|
349
|
-
padding: "4rem",
|
|
350
|
-
colorPreset: {
|
|
351
|
-
color: "primary-500"
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
description: "Dynamic employee spotlight using employee query",
|
|
357
|
-
type: "hero",
|
|
358
|
-
props: {
|
|
359
|
-
content: "Meet {{employee.fullName}}",
|
|
360
|
-
tagline: "{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience",
|
|
361
|
-
padding: "3rem",
|
|
362
|
-
colorPreset: {
|
|
363
|
-
color: "secondary-400",
|
|
364
|
-
gradientDirection: "bg-gradient-to-r"
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
description: "Dynamic product launch hero using product query",
|
|
370
|
-
type: "hero",
|
|
371
|
-
props: {
|
|
372
|
-
content: "Introducing {{product.name}}",
|
|
373
|
-
tagline: "{{product.description}} - Starting at ${{product.price}}",
|
|
374
|
-
padding: "5rem",
|
|
375
|
-
colorPreset: {
|
|
376
|
-
color: "accent-600"
|
|
377
|
-
},
|
|
378
|
-
shadow: "shadow-lg",
|
|
379
|
-
rounding: "rounded-xl"
|
|
380
|
-
}
|
|
381
|
-
},
|
|
382
|
-
{
|
|
383
|
-
description: "Dynamic event announcement using event query",
|
|
384
|
-
type: "hero",
|
|
385
|
-
props: {
|
|
386
|
-
content: "{{event.title}}",
|
|
387
|
-
tagline: "Join us on {{event.date}} at {{event.venue}} - {{event.city}}",
|
|
388
|
-
padding: "4rem",
|
|
389
|
-
colorPreset: {
|
|
390
|
-
color: "primary-400",
|
|
391
|
-
gradientDirection: "bg-gradient-to-br"
|
|
392
|
-
},
|
|
393
|
-
textShadow: "text-shadow-md"
|
|
394
|
-
}
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
description: "Dynamic blog post hero using article query",
|
|
398
|
-
type: "hero",
|
|
399
|
-
props: {
|
|
400
|
-
content: "{{article.title}}",
|
|
401
|
-
tagline: "By {{article.author}} \u2022 Published {{article.publishDate}} \u2022 {{article.readTime}} min read",
|
|
402
|
-
padding: "3rem",
|
|
403
|
-
colorPreset: {
|
|
404
|
-
color: "neutral-700"
|
|
405
|
-
},
|
|
406
|
-
justifyContent: "justify-start",
|
|
407
|
-
alignItems: "items-start"
|
|
408
|
-
}
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
description: "Dynamic service promotion using service query",
|
|
412
|
-
type: "hero",
|
|
413
|
-
props: {
|
|
414
|
-
content: "{{service.name}}",
|
|
415
|
-
tagline: "{{service.description}} - {{service.duration}} \u2022 Starting at ${{service.price}}",
|
|
416
|
-
padding: "6rem",
|
|
417
|
-
colorPreset: {
|
|
418
|
-
color: "secondary-500",
|
|
419
|
-
gradientDirection: "bg-gradient-to-tl"
|
|
420
|
-
},
|
|
421
|
-
border: {
|
|
422
|
-
width: "border-2",
|
|
423
|
-
color: "border-secondary-300"
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
description: "Dynamic property showcase using property query",
|
|
429
|
-
type: "hero",
|
|
430
|
-
props: {
|
|
431
|
-
content: "{{property.address}}",
|
|
432
|
-
tagline: "${{property.price}} \u2022 {{property.bedrooms}} bed, {{property.bathrooms}} bath \u2022 {{property.squareFootage}} sq ft",
|
|
433
|
-
padding: "4rem",
|
|
434
|
-
colorPreset: {
|
|
435
|
-
color: "accent-500"
|
|
436
|
-
},
|
|
437
|
-
rounding: "rounded-lg",
|
|
438
|
-
shadow: "shadow-md"
|
|
439
|
-
}
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
description: "Dynamic course announcement using course query",
|
|
443
|
-
type: "hero",
|
|
444
|
-
props: {
|
|
445
|
-
content: "{{course.title}}",
|
|
446
|
-
tagline: "Learn {{course.subject}} with {{course.instructor}} \u2022 {{course.duration}} \u2022 {{course.skillLevel}} level",
|
|
447
|
-
padding: "5rem",
|
|
448
|
-
colorPreset: {
|
|
449
|
-
color: "primary-600"
|
|
450
|
-
},
|
|
451
|
-
textShadow: "text-shadow-lg",
|
|
452
|
-
justifyContent: "justify-center",
|
|
453
|
-
alignItems: "items-center"
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
];
|
|
457
|
-
|
|
458
|
-
export {
|
|
459
|
-
manifest,
|
|
460
|
-
examples
|
|
461
|
-
};
|
|
462
|
-
//# sourceMappingURL=chunk-QEJGPYTB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/hero.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { textContent } from \"../props/text\";\nimport { BsAlphabetUppercase } from \"react-icons/bs\";\nimport type { BrickProps } from \"../props/types\";\nimport { Type } from \"@sinclair/typebox\";\nimport { shadow, textShadow } from \"../props/effects\";\nimport { border, rounding } from \"../props/border\";\nimport { colorPreset } from \"../props/color-preset\";\nimport { alignItems, justifyContent } from \"../props/align\";\nimport { cssLength } from \"../props/css-length\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"hero\",\n category: \"basic\",\n name: \"Hero\",\n description: \"A big textual element for home pages.\",\n aiInstructions: `PURPOSE\nA prominent textual block (main heading + optional tagline) used to introduce a page, product, event, company, or dynamic entity.\n\nSTRUCTURE\n1. Always supply 'content' (can be plain text or simple HTML like <h1>, <strong>, <br/>).\n2. 'tagline' is optional. Prefer concise value (1 short sentence). Omit if not needed.\n3. Do NOT add buttons, images, forms, lists, or unrelated HTML here (use dedicated bricks for that).\n\nCOLOR & BACKGROUND\n• Prefer omitting colorPreset so the hero inherits its parent layout background.\n• When you need emphasis use semantic presets: primary-, secondary-, accent-, neutral-, base-*** or gradient variants like primary-gradient-400 (then add gradientDirection).\n• NEVER invent tokens like success-, warning-, danger-, blue-, orange- (they don't exist). Map them to semantic sets (e.g. success -> secondary, warning -> accent, danger -> accent or primary, blue -> primary, orange -> accent).\n\nLAYOUT & SPACING\n• Use padding suited to visual weight: landing hero: 5–8rem desktop; simple page intro: 2–4rem.\n• You may provide a mobile override via mobileProps (e.g. smaller padding such as 2rem).\n• Keep justifyContent + alignItems consistent (usually center/center or start/start). Avoid mixing center with start.\n\nTYPOGRAPHY\n• 'content' should typically render ONE main heading concept (avoid stacking multiple unrelated headings). Use <br/> to split lines when stylistic.\n• Avoid overly long taglines (>140 chars).\n\nDYNAMIC DATA\n• You may interpolate page queries fields fields: {{company.name}}, {{product.name}}, etc.\n• Ensure dynamic tokens exist in the referenced query context. Don't fabricate field names.\n\nRESPONSIVE\n• Use mobileProps only for necessary reductions (padding, alignment). Do not duplicate unchanged properties.\n\nDON'TS\n✗ Don't add properties that are not in the schema.\n✗ Don't wrap everything with extraneous HTML containers.\n✗ Don't use colorPreset plus a conflicting parent background rationale—choose one.\n\nDO\n✓ Keep content focused.\n✓ Use semantic colors thoughtfully.\n✓ Use gradientDirection ONLY with gradient presets.\n✓ Provide accessible plain text when not using HTML tags.\n`,\n icon: BsAlphabetUppercase,\n\n defaultWidth: { desktop: \"60dvw\", mobile: \"auto\" },\n\n // Force the wrapper direction to be the same as the text direction\n staticClasses: \"flex-col\",\n\n props: defineProps({\n content: textContent({\n title: \"Hero title\",\n default: \"<h1 style='text-align:center'>Lorem Ipsum<br />dolor sit amet</h1>\",\n }),\n tagline: Type.Optional(\n textContent({\n title: \"Hero tagline\",\n // default: \"<p style='text-align:center'>Use our platform to build your business with confidence.</p>\",\n }),\n ),\n colorPreset: Type.Optional(\n colorPreset({\n title: \"Color\",\n }),\n ),\n\n textShadow: Type.Optional(\n textShadow({\n default: \"text-shadow-sm\",\n }),\n ),\n padding: Type.Optional(\n cssLength({\n default: \"6rem\",\n description: \"Padding inside the hero.\",\n \"ai:instructions\": \"Use only a single value like '1rem' or '10px'\",\n title: \"Padding\",\n \"ui:responsive\": true,\n \"ui:placeholder\": \"Not specified\",\n \"ui:styleId\": \"styles:padding\",\n }),\n ),\n rounding: rounding({\n default: \"rounded-md\",\n }),\n border: Type.Optional(border()),\n shadow: Type.Optional(shadow()),\n justifyContent: Type.Optional(\n justifyContent({\n default: \"justify-center\",\n }),\n ),\n alignItems: Type.Optional(\n alignItems({\n default: \"items-center\",\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Simple welcome hero with primary background\",\n type: \"hero\",\n props: {\n content: \"Welcome to Our Platform\",\n tagline: \"The future of productivity starts here\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-400\",\n },\n },\n },\n {\n description: \"Startup hero with primary gradient background to bottom-right\",\n type: \"hero\",\n props: {\n content: \"Build Something Amazing\",\n tagline: \"Turn your ideas into reality with our cutting-edge tools\",\n padding: \"3rem\",\n colorPreset: {\n color: \"primary-500\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n },\n },\n {\n description: \"Construction company hero with bold presence\",\n type: \"hero\",\n props: {\n content: \"Building Tomorrow Today\",\n tagline: \"Quality construction services for residential and commercial projects\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Fashion brand hero with modern appeal\",\n type: \"hero\",\n props: {\n content: \"Express Your Style\",\n tagline: \"Contemporary fashion that speaks to your individuality\",\n padding: \"6rem\",\n },\n },\n {\n description: \"Law firm hero with authoritative tone\",\n type: \"hero\",\n props: {\n content: \"Justice You Can Trust\",\n tagline: \"Experienced legal representation for individuals and businesses\",\n padding: \"6rem\",\n colorPreset: {\n color: \"neutral-800\",\n },\n },\n },\n {\n description: \"Photography studio hero with artistic flair\",\n type: \"hero\",\n props: {\n content: \"Capturing Life's Moments\",\n tagline: \"Professional photography services for weddings, portraits, and events\",\n },\n },\n {\n description: \"Restaurant hero with warm colors and rounded design (accent mapping for former 'orange')\",\n type: \"hero\",\n props: {\n content: \"Authentic Italian Cuisine\",\n tagline: \"Fresh ingredients, traditional recipes, unforgettable flavors\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description:\n \"Tech company hero with secondary gradient (mapped from former 'success') and modern styling\",\n type: \"hero\",\n props: {\n content: \"Innovation Redefined\",\n tagline: \"Pushing the boundaries of what's possible with AI technology\",\n padding: \"5rem\",\n colorPreset: {\n color: \"secondary-gradient-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n textShadow: \"text-shadow-lg\",\n border: {\n width: \"border-2\",\n color: \"border-success-300\",\n },\n },\n },\n {\n description: \"Medical practice hero with trust-inspiring design (primary mapping for former 'blue')\",\n type: \"hero\",\n props: {\n content: \"Your Health, Our Priority\",\n tagline: \"Comprehensive healthcare services with compassionate care\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n rounding: \"rounded-lg\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description:\n \"Creative agency hero with accent gradient (mapped from former 'warning') and diagonal gradient\",\n type: \"hero\",\n props: {\n content: \"Creative Solutions\",\n tagline: \"Bold designs that make your brand unforgettable\",\n padding: \"3rem\",\n colorPreset: {\n color: \"accent-gradient-300\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n shadow: \"shadow-xl\",\n border: {\n width: \"border\",\n color: \"border-warning-200\",\n },\n },\n },\n {\n description: \"Fitness studio hero with accent strong presence (mapping former 'danger')\",\n type: \"hero\",\n props: {\n content: \"Transform Your Body\",\n tagline: \"High-intensity training programs that deliver real results\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n textShadow: \"text-shadow-md\",\n rounding: \"rounded-2xl\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n {\n description: \"Minimalist hero with neutral tones and subtle effects\",\n type: \"hero\",\n props: {\n content: \"Simplicity Perfected\",\n tagline: \"Clean design solutions for modern businesses\",\n padding: \"8rem\",\n colorPreset: {\n color: \"neutral-100\",\n },\n shadow: \"shadow-sm\",\n border: {\n width: \"border\",\n color: \"border-neutral-300\",\n },\n rounding: \"rounded-md\",\n },\n },\n {\n description: \"Inverted dark hero using neutral-800 background and left alignment\",\n type: \"hero\",\n props: {\n content: \"Experience Powerful Automation\",\n tagline: \"Scale operations with intelligent workflows\",\n padding: \"5rem\",\n colorPreset: { color: \"neutral-800\" },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n textShadow: \"text-shadow-sm\",\n },\n },\n {\n description: \"Compact hero without tagline (no colorPreset to inherit parent)\",\n type: \"hero\",\n props: {\n content: \"Documentation\",\n padding: \"2rem\",\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Responsive hero with large desktop padding and reduced mobile padding\",\n type: \"hero\",\n props: {\n content: \"All-In-One Platform\",\n tagline: \"Design • Launch • Grow\",\n padding: \"8rem\",\n colorPreset: { color: \"primary-gradient-500\", gradientDirection: \"bg-gradient-to-br\" },\n },\n mobileProps: {\n content: \"All-In-One Platform\",\n padding: \"3rem\",\n },\n },\n {\n description: \"Hero using dynamic product dataset with gradient emphasis\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.shortTagline}}\",\n padding: \"5rem\",\n colorPreset: { color: \"accent-gradient-400\", gradientDirection: \"bg-gradient-to-r\" },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic company hero using business query data\",\n type: \"hero\",\n props: {\n content: \"Welcome to {{company.name}}\",\n tagline: \"{{company.tagline}} - Serving {{company.location}} since {{company.foundedYear}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-500\",\n },\n },\n },\n {\n description: \"Dynamic employee spotlight using employee query\",\n type: \"hero\",\n props: {\n content: \"Meet {{employee.fullName}}\",\n tagline:\n \"{{employee.position}} at {{employee.department}} - {{employee.yearsExperience}} years of experience\",\n padding: \"3rem\",\n colorPreset: {\n color: \"secondary-400\",\n gradientDirection: \"bg-gradient-to-r\",\n },\n },\n },\n {\n description: \"Dynamic product launch hero using product query\",\n type: \"hero\",\n props: {\n content: \"Introducing {{product.name}}\",\n tagline: \"{{product.description}} - Starting at ${{product.price}}\",\n padding: \"5rem\",\n colorPreset: {\n color: \"accent-600\",\n },\n shadow: \"shadow-lg\",\n rounding: \"rounded-xl\",\n },\n },\n {\n description: \"Dynamic event announcement using event query\",\n type: \"hero\",\n props: {\n content: \"{{event.title}}\",\n tagline: \"Join us on {{event.date}} at {{event.venue}} - {{event.city}}\",\n padding: \"4rem\",\n colorPreset: {\n color: \"primary-400\",\n gradientDirection: \"bg-gradient-to-br\",\n },\n textShadow: \"text-shadow-md\",\n },\n },\n {\n description: \"Dynamic blog post hero using article query\",\n type: \"hero\",\n props: {\n content: \"{{article.title}}\",\n tagline: \"By {{article.author}} • Published {{article.publishDate}} • {{article.readTime}} min read\",\n padding: \"3rem\",\n colorPreset: {\n color: \"neutral-700\",\n },\n justifyContent: \"justify-start\",\n alignItems: \"items-start\",\n },\n },\n {\n description: \"Dynamic service promotion using service query\",\n type: \"hero\",\n props: {\n content: \"{{service.name}}\",\n tagline: \"{{service.description}} - {{service.duration}} • Starting at ${{service.price}}\",\n padding: \"6rem\",\n colorPreset: {\n color: \"secondary-500\",\n gradientDirection: \"bg-gradient-to-tl\",\n },\n border: {\n width: \"border-2\",\n color: \"border-secondary-300\",\n },\n },\n },\n {\n description: \"Dynamic property showcase using property query\",\n type: \"hero\",\n props: {\n content: \"{{property.address}}\",\n tagline:\n \"${{property.price}} • {{property.bedrooms}} bed, {{property.bathrooms}} bath • {{property.squareFootage}} sq ft\",\n padding: \"4rem\",\n colorPreset: {\n color: \"accent-500\",\n },\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic course announcement using course query\",\n type: \"hero\",\n props: {\n content: \"{{course.title}}\",\n tagline:\n \"Learn {{course.subject}} with {{course.instructor}} • {{course.duration}} • {{course.skillLevel}} level\",\n padding: \"5rem\",\n colorPreset: {\n color: \"primary-600\",\n },\n textShadow: \"text-shadow-lg\",\n justifyContent: \"justify-center\",\n alignItems: \"items-center\",\n },\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAS,2BAA2B;AAEpC,SAAS,YAAY;AAQd,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,aAAa;AAAA,EACb,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwChB,MAAM;AAAA,EAEN,cAAc,EAAE,SAAS,SAAS,QAAQ,OAAO;AAAA;AAAA,EAGjD,eAAe;AAAA,EAEf,OAAO,YAAY;AAAA,IACjB,SAAS,YAAY;AAAA,MACnB,OAAO;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AAAA,IACD,SAAS,KAAK;AAAA,MACZ,YAAY;AAAA,QACV,OAAO;AAAA;AAAA,MAET,CAAC;AAAA,IACH;AAAA,IACA,aAAa,KAAK;AAAA,MAChB,YAAY;AAAA,QACV,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IAEA,YAAY,KAAK;AAAA,MACf,WAAW;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,SAAS,KAAK;AAAA,MACZ,UAAU;AAAA,QACR,SAAS;AAAA,QACT,aAAa;AAAA,QACb,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,IACA,UAAU,SAAS;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AAAA,IACD,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9B,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9B,gBAAgB,KAAK;AAAA,MACnB,eAAe;AAAA,QACb,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,YAAY,KAAK;AAAA,MACf,WAAW;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA;AAAA,IACE,aACE;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,MACA,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aACE;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa,EAAE,OAAO,cAAc;AAAA,MACpC,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa,EAAE,OAAO,wBAAwB,mBAAmB,oBAAoB;AAAA,IACvF;AAAA,IACA,aAAa;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa,EAAE,OAAO,uBAAuB,mBAAmB,mBAAmB;AAAA,MACnF,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SACE;AAAA,MACF,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,MACA,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,MACA,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SACE;AAAA,MACF,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SACE;AAAA,MACF,SAAS;AAAA,MACT,aAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,YAAY;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/map.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport { LiaMapMarkedAltSolid } from \"react-icons/lia\";\nimport { rounding } from \"../props/border\";\nimport { shadow } from \"../props/effects\";\nimport { Type } from \"@sinclair/typebox\";\nimport { number } from \"../props/number\";\nimport type { BrickExample } from \"./_types\";\n\nexport const DEFAULTS = {\n lat: 48.8566, // Default latitude (Paris)\n lng: 2.3522, // Default longitude (Paris)\n zoom: 15, // Default zoom level\n};\n\nexport const manifest = defineBrickManifest({\n type: \"map\",\n name: \"Map\",\n description: \"A map element showing a location\",\n aiInstructions:\n \"This brick can be used to show a location on a map. Use the 'location' prop to set the coordinates and an optional tooltip.\",\n minWidth: {\n desktop: 280,\n mobile: 280,\n },\n minHeight: {\n desktop: 200,\n mobile: 120,\n },\n defaultHeight: {\n desktop: \"320px\",\n mobile: \"280px\",\n },\n defaultWidth: {\n desktop: \"380px\",\n mobile: \"100%\",\n },\n icon: LiaMapMarkedAltSolid,\n props: defineProps({\n // location: geolocation({ defaultZoom: DEFAULTS.zoom }),\n lat: Type.String({ title: \"Latitude\", \"ui:field\": \"hidden\" }),\n lng: Type.String({ title: \"Longitude\", \"ui:field\": \"hidden\" }),\n address: Type.String({\n title: \"Address\",\n \"ui:field\": \"geoaddress\",\n metadata: {\n category: \"content\",\n },\n }),\n tooltip: Type.Optional(\n Type.String({\n title: \"Tooltip\",\n metadata: {\n category: \"content\",\n },\n }),\n ),\n zoom: Type.Optional(\n number(\"Zoom\", {\n description: \"Zoom level for the map\",\n \"ui:instructions\": \"The zoom level should be between 0 (world view) and 21 (street view).\",\n \"ui:field\": \"slider\",\n minimum: 12,\n maximum: 18,\n default: DEFAULTS.zoom,\n metadata: {\n category: \"content\",\n },\n }),\n ),\n rounding: Type.Optional(\n rounding({\n default: \"rounded-xl\",\n }),\n ),\n shadow: Type.Optional(shadow()),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Map showing a specific location\",\n type: \"map\",\n props: {\n lat: \"37.7749\",\n lng: \"-122.4194\",\n address: \"San Francisco, CA\",\n tooltip: \"San Francisco, CA\",\n shadow: \"shadow-md\",\n width: \"40%\",\n height: \"250px\",\n },\n },\n {\n description: \"Map with custom styles\",\n type: \"map\",\n props: {\n lat: \"40.7128\",\n lng: \"-74.0060\",\n address: \"New York, NY\",\n tooltip: \"New York, NY\",\n shadow: \"shadow-lg\",\n width: \"100%\",\n height: \"400px\",\n },\n },\n {\n description: \"Business location map with high zoom level and rounded corners\",\n type: \"map\",\n props: {\n lat: \"34.0522\",\n lng: \"-118.2437\",\n address: \"Los Angeles, CA\",\n tooltip: \"Our Los Angeles Office\",\n zoom: 18,\n rounding: \"rounded-2xl\",\n shadow: \"shadow-xl\",\n },\n },\n {\n description: \"Event venue map with medium zoom and subtle shadow\",\n type: \"map\",\n props: {\n lat: \"41.8781\",\n lng: \"-87.6298\",\n address: \"Chicago, IL\",\n tooltip: \"Conference Center - Chicago\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Restaurant location with default zoom and sharp corners\",\n type: \"map\",\n props: {\n lat: \"25.7617\",\n lng: \"-80.1918\",\n address: \"Miami, FL\",\n tooltip: \"Oceanview Restaurant & Bar\",\n zoom: 15,\n rounding: \"rounded-none\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Hotel location with low zoom for area overview\",\n type: \"map\",\n props: {\n lat: \"36.1699\",\n lng: \"-115.1398\",\n address: \"Las Vegas, NV\",\n tooltip: \"Downtown Las Vegas Hotel\",\n zoom: 13,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n {\n description: \"Store location with maximum zoom for street view detail\",\n type: \"map\",\n props: {\n lat: \"47.6062\",\n lng: \"-122.3321\",\n address: \"Seattle, WA\",\n tooltip: \"Seattle Flagship Store\",\n zoom: 18,\n rounding: \"rounded-md\",\n shadow: \"shadow-sm\",\n },\n },\n {\n description: \"Park location with moderate zoom and minimal styling\",\n type: \"map\",\n props: {\n lat: \"39.7392\",\n lng: \"-104.9903\",\n address: \"Denver, CO\",\n tooltip: \"City Park Recreation Area\",\n zoom: 14,\n rounding: \"rounded-sm\",\n },\n },\n {\n description: \"Dynamic business location using company query\",\n type: \"map\",\n props: {\n lat: \"{{company.latitude}}\",\n lng: \"{{company.longitude}}\",\n address: \"{{company.address}}\",\n tooltip: \"{{company.name}} - {{company.address}}\",\n zoom: 16,\n rounding: \"rounded-lg\",\n shadow: \"shadow-md\",\n },\n },\n {\n description: \"Dynamic event venue using event query\",\n type: \"map\",\n props: {\n lat: \"{{event.venueLatitude}}\",\n lng: \"{{event.venueLongitude}}\",\n address: \"{{event.venueAddress}}\",\n tooltip: \"{{event.title}} - {{event.venueName}}\",\n zoom: 17,\n rounding: \"rounded-xl\",\n shadow: \"shadow-lg\",\n },\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/string.ts"],"sourcesContent":["import { type Static, Type, type StringOptions } from \"@sinclair/typebox\";\nimport type { FieldMetadata } from \"./types\";\n\ntype StrFieldOptions = StringOptions &\n FieldMetadata & {\n \"ui:multiline\"?: boolean;\n };\n\nexport function url(title = \"URL\", defaultValue?: string) {\n return Type.String({\n title,\n format: \"url\",\n \"ui:field\": \"url\",\n default: defaultValue,\n });\n}\n\nconst pageIdSchema = Type.String({\n \"ui:field\": \"page-id\",\n});\n\nexport function urlOrPageId(options: StringOptions = {}) {\n return Type.Union(\n [\n Type.String({\n format: \"url\",\n }),\n pageIdSchema,\n ],\n {\n // $id: \"content:urlOrPageId\",\n title: \"URL\",\n metadata: {\n category: \"content\",\n },\n \"ui:field\": \"url-page-id\",\n \"ai:instructions\":\n \"This field can be a URL or a page ID. Use the page ID when linking to a internal page, and a URL for external links. It can also contain page queries refrences like '/products/{{ categories.$slug }}' or '/blog/{{ blogPosts.$slug }}'.\",\n ...options,\n },\n );\n}\n\nexport type UrlOrPageIdSettings = Static<ReturnType<typeof urlOrPageId>>;\n\ntype IconOptions = StrFieldOptions & { \"ui:default-icon-collection\"?: string };\n\nexport function icon(options: IconOptions = {}) {\n return Type.String({\n title: \"Icon\",\n \"ai:instructions\": \"Use a iconify reference like 'mdi:heart' or 'fa-solid:coffee'.\",\n \"ui:field\": \"iconify\",\n // $id: \"assets:icon\",\n metadata: {\n category: \"content\",\n },\n ...options,\n });\n}\n"],"mappings":";;;;AAAA,SAAsB,YAAgC;AAQ/C,SAAS,IAAI,QAAQ,OAAO,cAAuB;AACxD,SAAO,KAAK,OAAO;AAAA,IACjB;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,EACX,CAAC;AACH;AAEA,IAAM,eAAe,KAAK,OAAO;AAAA,EAC/B,YAAY;AACd,CAAC;AAEM,SAAS,YAAY,UAAyB,CAAC,GAAG;AACvD,SAAO,KAAK;AAAA,IACV;AAAA,MACE,KAAK,OAAO;AAAA,QACV,QAAQ;AAAA,MACV,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA;AAAA;AAAA,MAEE,OAAO;AAAA,MACP,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,MACZ,mBACE;AAAA,MACF,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAMO,SAAS,KAAK,UAAuB,CAAC,GAAG;AAC9C,SAAO,KAAK,OAAO;AAAA,IACjB,OAAO;AAAA,IACP,mBAAmB;AAAA,IACnB,YAAY;AAAA;AAAA,IAEZ,UAAU;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/sidebar.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps, group } from \"../props/helpers\";\nimport { VscLayoutSidebarLeftOff } from \"react-icons/vsc\";\nimport { Type } from \"@sinclair/typebox\";\nimport { urlOrPageId } from \"../props/string\";\nimport { backgroundColor } from \"../props/background\";\nimport { border } from \"../props/border\";\nimport { fixedPositioned } from \"../props/position\";\nimport type { BrickProps } from \"../props/types\";\nimport { shadow } from \"../props/effects\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"sidebar\",\n category: \"layout\",\n name: \"Sidebar\",\n description: \"A sidebar element\",\n inlineDragDisabled: true,\n isGlobalBrick: true,\n duplicatable: false,\n resizable: false,\n movable: false,\n aiInstructions: `\n This brick should be used on most sites/pages for navigation. By default, it will display links\n to the main pages of the site. You can customize the links by using the 'navigation.navItems' prop.\n `.trim(),\n icon: VscLayoutSidebarLeftOff,\n props: defineProps({\n container: Type.Optional(\n group({\n title: \"Main element\",\n children: {\n backgroundColor: Type.Optional(backgroundColor()),\n border: Type.Optional(border()),\n shadow: Type.Optional(shadow()),\n fixedPositioned: Type.Optional(fixedPositioned()),\n },\n metadata: {\n \"ui:responsive\": true,\n },\n }),\n ),\n navigation: Type.Optional(\n group({\n title: \"Links\",\n children: {\n navItems: Type.Optional(\n Type.Array(\n Type.Object({\n urlOrPageId: urlOrPageId(),\n label: Type.Optional(Type.String({ title: \"Label\" })),\n }),\n { title: \"Navigation items\", default: [] },\n ),\n ),\n },\n }),\n ),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"Standard sidebar with navigation links base on site pages\",\n type: \"sidebar\",\n props: {},\n },\n {\n description: \"Sidebar with specified navigation links\",\n type: \"sidebar\",\n props: {\n container: {\n backgroundColor: \"#f0f0f0\",\n },\n navigation: {\n navItems: [\n { urlOrPageId: \"https://google.com\", label: \"Google\" },\n { urlOrPageId: \"https://bing.com\", label: \"Bing\" },\n ],\n },\n },\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,+BAA+B;AACxC,SAAS,YAAY;AASd,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,gBAAgB;AAAA;AAAA;AAAA,IAGd,KAAK;AAAA,EACP,MAAM;AAAA,EACN,OAAO,YAAY;AAAA,IACjB,WAAW,KAAK;AAAA,MACd,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,UAAU;AAAA,UACR,iBAAiB,KAAK,SAAS,gBAAgB,CAAC;AAAA,UAChD,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,UAC9B,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,UAC9B,iBAAiB,KAAK,SAAS,gBAAgB,CAAC;AAAA,QAClD;AAAA,QACA,UAAU;AAAA,UACR,iBAAiB;AAAA,QACnB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,UAAU;AAAA,UACR,UAAU,KAAK;AAAA,YACb,KAAK;AAAA,cACH,KAAK,OAAO;AAAA,gBACV,aAAa,YAAY;AAAA,gBACzB,OAAO,KAAK,SAAS,KAAK,OAAO,EAAE,OAAO,QAAQ,CAAC,CAAC;AAAA,cACtD,CAAC;AAAA,cACD,EAAE,OAAO,oBAAoB,SAAS,CAAC,EAAE;AAAA,YAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO,CAAC;AAAA,EACV;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,WAAW;AAAA,QACT,iBAAiB;AAAA,MACnB;AAAA,MACA,YAAY;AAAA,QACV,UAAU;AAAA,UACR,EAAE,aAAa,sBAAsB,OAAO,SAAS;AAAA,UACrD,EAAE,aAAa,oBAAoB,OAAO,OAAO;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/page.ts"],"sourcesContent":["import { pageAttributesSchema } from \"./attributes\";\nimport { sectionSchema } from \"./bricks\";\nimport { Type, type Static } from \"@sinclair/typebox\";\n\nexport const pageSchema = Type.Object({\n id: Type.String({\n description: \"The unique ID of the page. Use a human readable url-safe slug\",\n examples: [\"home\", \"about-us\", \"products-list\"],\n }),\n label: Type.String({\n description: \"The label (name) of the page\",\n examples: [\"Home\", \"About us\", \"Products\"],\n }),\n sections: Type.Array(sectionSchema, {\n description: \"The sections of the page. See the Section schema\",\n }),\n attributes: pageAttributesSchema,\n});\n\nexport type Page = Static<typeof pageSchema>;\n\nexport const versionedPageSchema = Type.Composite([\n pageSchema,\n Type.Object({\n version: Type.String(),\n }),\n]);\n\nexport type VersionedPage = Static<typeof versionedPageSchema>;\n\n/**\n * Page context represents the page config PLUS:\n * - the pathParams of the actual request.\n * - the resolved data for the page.\n */\nexport type PageContext = VersionedPage & {\n pathParams?: Record<string, string>;\n data?: Record<string, unknown[]>;\n};\n"],"mappings":";;;;;;;;;;AAEA,SAAS,YAAyB;AAE3B,IAAM,aAAa,KAAK,OAAO;AAAA,EACpC,IAAI,KAAK,OAAO;AAAA,IACd,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,eAAe;AAAA,EAChD,CAAC;AAAA,EACD,OAAO,KAAK,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,UAAU,CAAC,QAAQ,YAAY,UAAU;AAAA,EAC3C,CAAC;AAAA,EACD,UAAU,KAAK,MAAM,eAAe;AAAA,IAClC,aAAa;AAAA,EACf,CAAC;AAAA,EACD,YAAY;AACd,CAAC;AAIM,IAAM,sBAAsB,KAAK,UAAU;AAAA,EAChD;AAAA,EACA,KAAK,OAAO;AAAA,IACV,SAAS,KAAK,OAAO;AAAA,EACvB,CAAC;AACH,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/manifests/html.manifest.ts"],"sourcesContent":["import { defineBrickManifest } from \"~/shared/brick-manifest\";\nimport { defineProps } from \"../props/helpers\";\nimport type { BrickProps } from \"../props/types\";\nimport { BsCodeSquare } from \"react-icons/bs\";\n\nimport { Type } from \"@sinclair/typebox\";\nimport type { BrickExample } from \"./_types\";\n\nexport const manifest = defineBrickManifest({\n type: \"html\",\n name: \"Html\",\n category: \"widgets\",\n description:\n \"A flexible brick that accepts HTML content. Useful for embeding custom HTML or third-party widgets.\",\n aiInstructions:\n \"Use only this brick type when integrating third party widgets or custom HTML content. Most of the time, you should use other bricks that are more secure and easier to use.\",\n staticClasses: \"self-stretch\",\n defaultWidth: {\n mobile: \"auto\",\n desktop: \"300px\",\n },\n icon: BsCodeSquare,\n props: defineProps({\n html: Type.String({\n title: \"HTML Content\",\n description: \"The HTML content to render. Use with caution, as it can introduce security risks.\",\n default: \"<div>Your HTML content here</div>\",\n \"ui:placeholder\": \"<div>Your HTML content here</div>\",\n \"ui:multiline\": true,\n metadata: {\n category: \"content\",\n },\n }),\n }),\n});\n\nexport type Manifest = typeof manifest;\n\nexport const examples: BrickExample<Manifest>[] = [\n {\n description: \"A tally form\",\n type: \"html\",\n props: {\n html: '<iframe data-tally-src=\"https://tally.so/embed/wQZpd8?alignLeft=1&hideTitle=1&transparentBackground=1&dynamicHeight=1\" loading=\"lazy\" width=\"100%\" height=\"282\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" title=\"test\"></iframe>',\n },\n },\n {\n description: \"YouTube video embed\",\n type: \"html\",\n props: {\n html: '<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/dQw4w9WgXcQ\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>',\n },\n },\n {\n description: \"Google Maps embed\",\n type: \"html\",\n props: {\n html: '<iframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3024.309059887159!2d-74.00849368459473!3d40.71278097932847!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c25a165bedccab%3A0xa2008c34c27bfb67!2sWall%20St%2C%20New%20York%2C%20NY%2C%20USA!5e0!3m2!1sen!2sus!4v1620000000000\" width=\"100%\" height=\"300\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\"></iframe>',\n },\n },\n {\n description: \"Twitter tweet embed\",\n type: \"html\",\n props: {\n html: '<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Just setting up my twttr</p>— Jack Dorsey (@jack) <a href=\"https://twitter.com/jack/status/20?ref_src=twsrc%5Etfw\">March 21, 2006</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>',\n },\n },\n {\n description: \"CodePen embed for code showcase\",\n type: \"html\",\n props: {\n html: '<iframe height=\"300\" style=\"width: 100%;\" scrolling=\"no\" title=\"CSS Animation Example\" src=\"https://codepen.io/team/codepen/embed/PNaGbb?height=300&theme-id=light&default-tab=result\" frameborder=\"no\" loading=\"lazy\" allowtransparency=\"true\" allowfullscreen=\"true\"></iframe>',\n },\n },\n {\n description: \"Calendly scheduling widget\",\n type: \"html\",\n props: {\n html: '<div class=\"calendly-inline-widget\" data-url=\"https://calendly.com/your-name/30min\" style=\"min-width:320px;height:630px;\"></div><script type=\"text/javascript\" src=\"https://assets.calendly.com/assets/external/widget.js\" async></script>',\n },\n },\n {\n description: \"Custom pricing table with CSS styling\",\n type: \"html\",\n props: {\n html: '<div style=\"display: flex; gap: 20px; justify-content: center;\"><div style=\"border: 2px solid #e2e8f0; border-radius: 12px; padding: 24px; text-align: center; background: white;\"><h3 style=\"margin: 0 0 16px; color: #1e293b;\">Basic</h3><div style=\"font-size: 32px; font-weight: bold; color: #0ea5e9;\">$9</div><p style=\"color: #64748b; margin: 8px 0 20px;\">per month</p><ul style=\"list-style: none; padding: 0; margin: 0;\"><li style=\"padding: 8px 0;\">✓ 5 Projects</li><li style=\"padding: 8px 0;\">✓ 10GB Storage</li><li style=\"padding: 8px 0;\">✓ Email Support</li></ul></div></div>',\n },\n },\n {\n description: \"Mailchimp newsletter signup form\",\n type: \"html\",\n props: {\n html: '<div id=\"mc_embed_signup\"><form action=\"https://your-domain.us1.list-manage.com/subscribe/post?u=123456789&id=abcdefghij\" method=\"post\" id=\"mc-embedded-subscribe-form\" name=\"mc-embedded-subscribe-form\" class=\"validate\" target=\"_blank\" novalidate><div id=\"mc_embed_signup_scroll\"><div class=\"mc-field-group\"><label for=\"mce-EMAIL\">Email Address</label><input type=\"email\" value=\"\" name=\"EMAIL\" class=\"required email\" id=\"mce-EMAIL\" style=\"width: 100%; padding: 10px; margin: 8px 0; border: 1px solid #ccc; border-radius: 4px;\"></div><div id=\"mce-responses\" class=\"clear\"><div class=\"response\" id=\"mce-error-response\" style=\"display:none\"></div><div class=\"response\" id=\"mce-success-response\" style=\"display:none\"></div></div><div style=\"position: absolute; left: -5000px;\" aria-hidden=\"true\"><input type=\"text\" name=\"b_123456789_abcdefghij\" tabindex=\"-1\" value=\"\"></div><div class=\"clear\"><input type=\"submit\" value=\"Subscribe\" name=\"subscribe\" id=\"mc-embedded-subscribe\" class=\"button\" style=\"background: #007cba; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer;\"></div></div></form></div>',\n },\n },\n {\n description: \"Stripe payment button integration\",\n type: \"html\",\n props: {\n html: '<script async src=\"https://js.stripe.com/v3/buy-button.js\"></script><stripe-buy-button buy-button-id=\"buy_btn_1234567890\" publishable-key=\"pk_test_1234567890\"></stripe-buy-button>',\n },\n },\n {\n description: \"Instagram post embed\",\n type: \"html\",\n props: {\n html: '<blockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https://www.instagram.com/p/ABC123/\" data-instgrm-version=\"14\" style=\"background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\"></blockquote><script async src=\"//www.instagram.com/embed.js\"></script>',\n },\n },\n {\n description: \"Custom countdown timer widget\",\n type: \"html\",\n props: {\n html: '<div style=\"text-align: center; padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white;\"><h3 style=\"margin: 0 0 20px; font-size: 24px;\">Event Countdown</h3><div id=\"countdown\" style=\"display: flex; justify-content: center; gap: 20px;\"><div style=\"text-align: center;\"><div style=\"font-size: 32px; font-weight: bold;\">10</div><div style=\"font-size: 14px; opacity: 0.8;\">DAYS</div></div><div style=\"text-align: center;\"><div style=\"font-size: 32px; font-weight: bold;\">15</div><div style=\"font-size: 14px; opacity: 0.8;\">HOURS</div></div><div style=\"text-align: center;\"><div style=\"font-size: 32px; font-weight: bold;\">30</div><div style=\"font-size: 14px; opacity: 0.8;\">MINUTES</div></div></div></div>',\n },\n },\n {\n description: \"Interactive feedback widget with rating stars\",\n type: \"html\",\n props: {\n html: '<div style=\"border: 1px solid #e2e8f0; border-radius: 8px; padding: 24px; background: #f8fafc;\"><h4 style=\"margin: 0 0 16px; color: #1e293b;\">How was your experience?</h4><div style=\"display: flex; gap: 8px; margin: 16px 0;\"><span style=\"font-size: 24px; cursor: pointer; color: #fbbf24;\">★</span><span style=\"font-size: 24px; cursor: pointer; color: #fbbf24;\">★</span><span style=\"font-size: 24px; cursor: pointer; color: #fbbf24;\">★</span><span style=\"font-size: 24px; cursor: pointer; color: #fbbf24;\">★</span><span style=\"font-size: 24px; cursor: pointer; color: #d1d5db;\">★</span></div><textarea placeholder=\"Tell us more about your experience...\" style=\"width: 100%; height: 80px; padding: 12px; border: 1px solid #d1d5db; border-radius: 6px; resize: vertical; font-family: inherit;\"></textarea><button style=\"margin-top: 12px; background: #3b82f6; color: white; padding: 10px 20px; border: none; border-radius: 6px; cursor: pointer;\">Submit Feedback</button></div>',\n },\n },\n];\n"],"mappings":";;;;;;;;;;AAGA,SAAS,oBAAoB;AAE7B,SAAS,YAAY;AAGd,IAAM,WAAW,oBAAoB;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aACE;AAAA,EACF,gBACE;AAAA,EACF,eAAe;AAAA,EACf,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,EACN,OAAO,YAAY;AAAA,IACjB,MAAM,KAAK,OAAO;AAAA,MAChB,OAAO;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,UAAU;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AAIM,IAAM,WAAqC;AAAA,EAChD;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/bricks/props/common.ts"],"sourcesContent":["import { type Static, type TString, Type } from \"@sinclair/typebox\";\nimport { cssLength } from \"./css-length\";\nimport { alignSelf } from \"./align\";\n\nexport function hidden() {\n return Type.Object(\n {\n desktop: Type.Optional(Type.Boolean()),\n mobile: Type.Optional(Type.Boolean()),\n },\n {\n // $id: \"styles:hidden\",\n title: \"Hidden\",\n description: \"Used to hide the brick on desktop or mobile.\",\n \"ui:field\": \"hidden\",\n },\n );\n}\n\nexport const commonProps = {\n lastTouched: Type.Optional(\n Type.Number({\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n hidden: Type.Optional(hidden()),\n editable: Type.Optional(\n Type.Boolean({\n \"ui:field\": \"hidden\",\n \"ai:hidden\": true,\n }),\n ),\n width: Type.Optional(\n cssLength({\n title: \"Fixed Width\",\n description:\n \"Set a fixed width for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.\",\n \"ai:instructions\": \"Use percentage values to make the width responsive, like '50%'\",\n \"ui:field\": \"hidden\",\n }) as TString,\n ),\n height: Type.Optional(\n cssLength({\n title: \"Fixed height\",\n description:\n \"Set a fixed height for the brick. If not set, the brick will be responsive and will follow the flex layout of its parent section.\",\n \"ui:field\": \"hidden\",\n }),\n ),\n grow: Type.Optional(\n Type.Boolean({\n title: \"Auto expand\",\n description: \"If set, the brick will grow to fill the available space of its parent section or box.\",\n \"ui:styleId\": \"styles:grow\",\n \"ui:responsive\": true,\n }),\n ),\n alignSelf: Type.Optional(alignSelf()),\n};\n\nconst commonPropsSchema = Type.Object(commonProps);\nexport type CommonBrickProps = Static<typeof commonPropsSchema>;\n"],"mappings":";;;;;;;;;;AAAA,SAAoC,YAAY;AAIzC,SAAS,SAAS;AACvB,SAAO,KAAK;AAAA,IACV;AAAA,MACE,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,MACrC,QAAQ,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,IACtC;AAAA,IACA;AAAA;AAAA,MAEE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEO,IAAM,cAAc;AAAA,EACzB,aAAa,KAAK;AAAA,IAChB,KAAK,OAAO;AAAA,MACV,YAAY;AAAA,MACZ,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,KAAK,SAAS,OAAO,CAAC;AAAA,EAC9B,UAAU,KAAK;AAAA,IACb,KAAK,QAAQ;AAAA,MACX,YAAY;AAAA,MACZ,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EACA,OAAO,KAAK;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aACE;AAAA,MACF,mBAAmB;AAAA,MACnB,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,KAAK;AAAA,IACX,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aACE;AAAA,MACF,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EACA,MAAM,KAAK;AAAA,IACT,KAAK,QAAQ;AAAA,MACX,OAAO;AAAA,MACP,aAAa;AAAA,MACb,cAAc;AAAA,MACd,iBAAiB;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EACA,WAAW,KAAK,SAAS,UAAU,CAAC;AACtC;AAEA,IAAM,oBAAoB,KAAK,OAAO,WAAW;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|