@puzzle-ui/pieces 0.0.0-stage → 0.5.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.
Files changed (144) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/components/hero/accommodation-hero.cjs +13 -0
  3. package/dist/components/hero/accommodation-hero.cjs.map +1 -0
  4. package/dist/components/hero/accommodation-hero.d.cts +3 -0
  5. package/dist/components/hero/accommodation-hero.d.ts +3 -0
  6. package/dist/components/hero/accommodation-hero.js +14 -0
  7. package/dist/components/hero/accommodation-hero.js.map +1 -0
  8. package/dist/components/hero/agency-hero.cjs +13 -0
  9. package/dist/components/hero/agency-hero.cjs.map +1 -0
  10. package/dist/components/hero/agency-hero.d.cts +3 -0
  11. package/dist/components/hero/agency-hero.d.ts +3 -0
  12. package/dist/components/hero/agency-hero.js +14 -0
  13. package/dist/components/hero/agency-hero.js.map +1 -0
  14. package/dist/components/hero/app-hero.cjs +13 -0
  15. package/dist/components/hero/app-hero.cjs.map +1 -0
  16. package/dist/components/hero/app-hero.d.cts +3 -0
  17. package/dist/components/hero/app-hero.d.ts +3 -0
  18. package/dist/components/hero/app-hero.js +14 -0
  19. package/dist/components/hero/app-hero.js.map +1 -0
  20. package/dist/components/hero/campaign-hero.cjs +13 -0
  21. package/dist/components/hero/campaign-hero.cjs.map +1 -0
  22. package/dist/components/hero/campaign-hero.d.cts +3 -0
  23. package/dist/components/hero/campaign-hero.d.ts +3 -0
  24. package/dist/components/hero/campaign-hero.js +14 -0
  25. package/dist/components/hero/campaign-hero.js.map +1 -0
  26. package/dist/components/hero/centered-hero.cjs +12 -0
  27. package/dist/components/hero/centered-hero.cjs.map +1 -0
  28. package/dist/components/hero/centered-hero.d.cts +3 -0
  29. package/dist/components/hero/centered-hero.d.ts +3 -0
  30. package/dist/components/hero/centered-hero.js +13 -0
  31. package/dist/components/hero/centered-hero.js.map +1 -0
  32. package/dist/components/hero/coming-soon-hero.cjs +12 -0
  33. package/dist/components/hero/coming-soon-hero.cjs.map +1 -0
  34. package/dist/components/hero/coming-soon-hero.d.cts +3 -0
  35. package/dist/components/hero/coming-soon-hero.d.ts +3 -0
  36. package/dist/components/hero/coming-soon-hero.js +13 -0
  37. package/dist/components/hero/coming-soon-hero.js.map +1 -0
  38. package/dist/components/hero/create-hero-preset.cjs +11 -0
  39. package/dist/components/hero/create-hero-preset.cjs.map +1 -0
  40. package/dist/components/hero/create-hero-preset.js +11 -0
  41. package/dist/components/hero/create-hero-preset.js.map +1 -0
  42. package/dist/components/hero/dashboard-welcome-hero.cjs +12 -0
  43. package/dist/components/hero/dashboard-welcome-hero.cjs.map +1 -0
  44. package/dist/components/hero/dashboard-welcome-hero.d.cts +3 -0
  45. package/dist/components/hero/dashboard-welcome-hero.d.ts +3 -0
  46. package/dist/components/hero/dashboard-welcome-hero.js +13 -0
  47. package/dist/components/hero/dashboard-welcome-hero.js.map +1 -0
  48. package/dist/components/hero/editorial-hero.cjs +13 -0
  49. package/dist/components/hero/editorial-hero.cjs.map +1 -0
  50. package/dist/components/hero/editorial-hero.d.cts +3 -0
  51. package/dist/components/hero/editorial-hero.d.ts +3 -0
  52. package/dist/components/hero/editorial-hero.js +14 -0
  53. package/dist/components/hero/editorial-hero.js.map +1 -0
  54. package/dist/components/hero/full-screen-hero.cjs +13 -0
  55. package/dist/components/hero/full-screen-hero.cjs.map +1 -0
  56. package/dist/components/hero/full-screen-hero.d.cts +3 -0
  57. package/dist/components/hero/full-screen-hero.d.ts +3 -0
  58. package/dist/components/hero/full-screen-hero.js +14 -0
  59. package/dist/components/hero/full-screen-hero.js.map +1 -0
  60. package/dist/components/hero/hero-video.cjs +45 -0
  61. package/dist/components/hero/hero-video.cjs.map +1 -0
  62. package/dist/components/hero/hero-video.js +45 -0
  63. package/dist/components/hero/hero-video.js.map +1 -0
  64. package/dist/components/hero/hero.cjs +98 -0
  65. package/dist/components/hero/hero.cjs.map +1 -0
  66. package/dist/components/hero/hero.css +312 -0
  67. package/dist/components/hero/hero.d.cts +3 -0
  68. package/dist/components/hero/hero.d.ts +3 -0
  69. package/dist/components/hero/hero.js +98 -0
  70. package/dist/components/hero/hero.js.map +1 -0
  71. package/dist/components/hero/hero.types.d.cts +44 -0
  72. package/dist/components/hero/hero.types.d.ts +44 -0
  73. package/dist/components/hero/hero.utils.cjs +8 -0
  74. package/dist/components/hero/hero.utils.cjs.map +1 -0
  75. package/dist/components/hero/hero.utils.js +8 -0
  76. package/dist/components/hero/hero.utils.js.map +1 -0
  77. package/dist/components/hero/image-hero.cjs +16 -0
  78. package/dist/components/hero/image-hero.cjs.map +1 -0
  79. package/dist/components/hero/image-hero.d.cts +6 -0
  80. package/dist/components/hero/image-hero.d.ts +6 -0
  81. package/dist/components/hero/image-hero.js +16 -0
  82. package/dist/components/hero/image-hero.js.map +1 -0
  83. package/dist/components/hero/index.d.cts +22 -0
  84. package/dist/components/hero/index.d.ts +22 -0
  85. package/dist/components/hero/minimal-hero.cjs +12 -0
  86. package/dist/components/hero/minimal-hero.cjs.map +1 -0
  87. package/dist/components/hero/minimal-hero.d.cts +3 -0
  88. package/dist/components/hero/minimal-hero.d.ts +3 -0
  89. package/dist/components/hero/minimal-hero.js +13 -0
  90. package/dist/components/hero/minimal-hero.js.map +1 -0
  91. package/dist/components/hero/print-shop-hero.cjs +13 -0
  92. package/dist/components/hero/print-shop-hero.cjs.map +1 -0
  93. package/dist/components/hero/print-shop-hero.d.cts +3 -0
  94. package/dist/components/hero/print-shop-hero.d.ts +3 -0
  95. package/dist/components/hero/print-shop-hero.js +14 -0
  96. package/dist/components/hero/print-shop-hero.js.map +1 -0
  97. package/dist/components/hero/product-hero.cjs +13 -0
  98. package/dist/components/hero/product-hero.cjs.map +1 -0
  99. package/dist/components/hero/product-hero.d.cts +3 -0
  100. package/dist/components/hero/product-hero.d.ts +3 -0
  101. package/dist/components/hero/product-hero.js +14 -0
  102. package/dist/components/hero/product-hero.js.map +1 -0
  103. package/dist/components/hero/restaurant-hero.cjs +13 -0
  104. package/dist/components/hero/restaurant-hero.cjs.map +1 -0
  105. package/dist/components/hero/restaurant-hero.d.cts +3 -0
  106. package/dist/components/hero/restaurant-hero.d.ts +3 -0
  107. package/dist/components/hero/restaurant-hero.js +14 -0
  108. package/dist/components/hero/restaurant-hero.js.map +1 -0
  109. package/dist/components/hero/saas-hero.cjs +13 -0
  110. package/dist/components/hero/saas-hero.cjs.map +1 -0
  111. package/dist/components/hero/saas-hero.d.cts +3 -0
  112. package/dist/components/hero/saas-hero.d.ts +3 -0
  113. package/dist/components/hero/saas-hero.js +14 -0
  114. package/dist/components/hero/saas-hero.js.map +1 -0
  115. package/dist/components/hero/search-hero.cjs +12 -0
  116. package/dist/components/hero/search-hero.cjs.map +1 -0
  117. package/dist/components/hero/search-hero.d.cts +3 -0
  118. package/dist/components/hero/search-hero.d.ts +3 -0
  119. package/dist/components/hero/search-hero.js +13 -0
  120. package/dist/components/hero/search-hero.js.map +1 -0
  121. package/dist/components/hero/split-hero.cjs +12 -0
  122. package/dist/components/hero/split-hero.cjs.map +1 -0
  123. package/dist/components/hero/split-hero.d.cts +3 -0
  124. package/dist/components/hero/split-hero.d.ts +3 -0
  125. package/dist/components/hero/split-hero.js +13 -0
  126. package/dist/components/hero/split-hero.js.map +1 -0
  127. package/dist/components/hero/store-hero.cjs +13 -0
  128. package/dist/components/hero/store-hero.cjs.map +1 -0
  129. package/dist/components/hero/store-hero.d.cts +3 -0
  130. package/dist/components/hero/store-hero.d.ts +3 -0
  131. package/dist/components/hero/store-hero.js +14 -0
  132. package/dist/components/hero/store-hero.js.map +1 -0
  133. package/dist/components/hero/video-hero.cjs +16 -0
  134. package/dist/components/hero/video-hero.cjs.map +1 -0
  135. package/dist/components/hero/video-hero.d.cts +6 -0
  136. package/dist/components/hero/video-hero.d.ts +6 -0
  137. package/dist/components/hero/video-hero.js +16 -0
  138. package/dist/components/hero/video-hero.js.map +1 -0
  139. package/dist/index.cjs +41 -0
  140. package/dist/index.d.cts +23 -0
  141. package/dist/index.d.ts +23 -0
  142. package/dist/index.js +21 -0
  143. package/package.json +68 -4
  144. package/README.md +0 -3
@@ -0,0 +1,98 @@
1
+ const require_hero_video = require("./hero-video.cjs");
2
+ ;/* empty css */
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ // src/components/hero/hero.tsx
5
+ const Hero = ({ as: Component = "section", titleAs: Heading = "h1", id, testId, className, contentClassName, mediaClassName, style, layout = "split", mediaPosition = "right", alignment = "start", height = "auto", theme = "light", overlay = "none", contentWidth = "normal", reverseOnMobile = true, eyebrow, title, description, media, backgroundImage, backgroundVideo, actions, search, meta, children, role, ariaLabel, ariaLabelledBy }) => {
6
+ const hasMedia = Boolean(media || backgroundImage || backgroundVideo);
7
+ const hasBackground = Boolean(backgroundImage || backgroundVideo || mediaPosition === "background" && media);
8
+ const rootClassName = ["puzzle-hero", className].filter(Boolean).join(" ");
9
+ const contentClasses = ["puzzle-hero__content", contentClassName].filter(Boolean).join(" ");
10
+ const mediaClasses = ["puzzle-hero__media", mediaClassName].filter(Boolean).join(" ");
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Component, {
12
+ id,
13
+ "data-testid": testId,
14
+ className: rootClassName,
15
+ style,
16
+ "data-layout": layout,
17
+ "data-media-position": mediaPosition,
18
+ "data-alignment": alignment,
19
+ "data-height": height,
20
+ "data-theme": theme,
21
+ "data-overlay": overlay,
22
+ "data-content-width": contentWidth,
23
+ "data-has-media": hasMedia,
24
+ "data-has-background": hasBackground,
25
+ "data-reverse-mobile": reverseOnMobile,
26
+ "aria-label": ariaLabel,
27
+ "aria-labelledby": ariaLabelledBy,
28
+ role,
29
+ children: [hasBackground && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
30
+ className: "puzzle-hero__background",
31
+ "aria-hidden": "true",
32
+ "data-hero-background": true,
33
+ children: [
34
+ backgroundImage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
35
+ className: "puzzle-hero__background-image",
36
+ src: backgroundImage,
37
+ alt: "",
38
+ loading: "eager",
39
+ decoding: "async",
40
+ draggable: false
41
+ }),
42
+ backgroundVideo && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_hero_video.HeroVideo, {
43
+ source: backgroundVideo,
44
+ className: "puzzle-hero__background-video"
45
+ }),
46
+ mediaPosition === "background" && media && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47
+ className: "puzzle-hero__background-media",
48
+ children: media
49
+ }),
50
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "puzzle-hero__overlay" })
51
+ ]
52
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
53
+ className: "puzzle-hero__inner",
54
+ "data-hero-inner": true,
55
+ children: [media && mediaPosition !== "background" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
56
+ className: mediaClasses,
57
+ "data-hero-media": true,
58
+ children: media
59
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
60
+ className: contentClasses,
61
+ "data-hero-content": true,
62
+ children: [
63
+ eyebrow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
64
+ className: "puzzle-hero__eyebrow",
65
+ children: eyebrow
66
+ }),
67
+ title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Heading, {
68
+ className: "puzzle-hero__title",
69
+ children: title
70
+ }),
71
+ description && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
72
+ className: "puzzle-hero__description",
73
+ children: description
74
+ }),
75
+ children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
76
+ className: "puzzle-hero__children",
77
+ children
78
+ }),
79
+ actions && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
80
+ className: "puzzle-hero__actions",
81
+ children: actions
82
+ }),
83
+ search && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
84
+ className: "puzzle-hero__search",
85
+ children: search
86
+ }),
87
+ meta && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
88
+ className: "puzzle-hero__meta",
89
+ children: meta
90
+ })
91
+ ]
92
+ })]
93
+ })]
94
+ });
95
+ };
96
+ exports.Hero = Hero;
97
+
98
+ //# sourceMappingURL=hero.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hero.cjs","names":["HeroVideo"],"sources":["../../../src/components/hero/hero.tsx"],"sourcesContent":["import { HeroVideo } from \"./hero-video\";\n\nimport type { HeroProps } from \"./hero.types\";\n\nimport \"./hero.css\";\n\nconst Hero = ({\n as: Component = \"section\",\n titleAs: Heading = \"h1\",\n\n id,\n testId,\n className,\n contentClassName,\n mediaClassName,\n style,\n\n layout = \"split\",\n mediaPosition = \"right\",\n alignment = \"start\",\n height = \"auto\",\n theme = \"light\",\n overlay = \"none\",\n contentWidth = \"normal\",\n\n reverseOnMobile = true,\n\n eyebrow,\n title,\n description,\n\n media,\n backgroundImage,\n backgroundVideo,\n\n actions,\n search,\n meta,\n\n children,\n\n role,\n ariaLabel,\n ariaLabelledBy,\n}: HeroProps) => {\n const hasMedia = Boolean(media || backgroundImage || backgroundVideo);\n\n const hasBackground = Boolean(\n backgroundImage ||\n backgroundVideo ||\n (mediaPosition === \"background\" && media),\n );\n\n const rootClassName = [\"puzzle-hero\", className].filter(Boolean).join(\" \");\n\n const contentClasses = [\"puzzle-hero__content\", contentClassName]\n .filter(Boolean)\n .join(\" \");\n\n const mediaClasses = [\"puzzle-hero__media\", mediaClassName]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <Component\n id={id}\n data-testid={testId}\n className={rootClassName}\n style={style}\n data-layout={layout}\n data-media-position={mediaPosition}\n data-alignment={alignment}\n data-height={height}\n data-theme={theme}\n data-overlay={overlay}\n data-content-width={contentWidth}\n data-has-media={hasMedia}\n data-has-background={hasBackground}\n data-reverse-mobile={reverseOnMobile}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n role={role}\n >\n {hasBackground && (\n <div\n className=\"puzzle-hero__background\"\n aria-hidden=\"true\"\n data-hero-background\n >\n {backgroundImage && (\n <img\n className=\"puzzle-hero__background-image\"\n src={backgroundImage}\n alt=\"\"\n loading=\"eager\"\n decoding=\"async\"\n draggable={false}\n />\n )}\n\n {backgroundVideo && (\n <HeroVideo\n source={backgroundVideo}\n className=\"puzzle-hero__background-video\"\n />\n )}\n\n {mediaPosition === \"background\" && media && (\n <div className=\"puzzle-hero__background-media\">{media}</div>\n )}\n\n <div className=\"puzzle-hero__overlay\" />\n </div>\n )}\n\n <div className=\"puzzle-hero__inner\" data-hero-inner>\n {media && mediaPosition !== \"background\" && (\n <div className={mediaClasses} data-hero-media>\n {media}\n </div>\n )}\n\n <div className={contentClasses} data-hero-content>\n {eyebrow && <div className=\"puzzle-hero__eyebrow\">{eyebrow}</div>}\n\n {title && <Heading className=\"puzzle-hero__title\">{title}</Heading>}\n\n {description && (\n <div className=\"puzzle-hero__description\">{description}</div>\n )}\n\n {children && <div className=\"puzzle-hero__children\">{children}</div>}\n\n {actions && <div className=\"puzzle-hero__actions\">{actions}</div>}\n\n {search && <div className=\"puzzle-hero__search\">{search}</div>}\n\n {meta && <div className=\"puzzle-hero__meta\">{meta}</div>}\n </div>\n </div>\n </Component>\n );\n};\n\nexport { Hero };\n"],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ .puzzle-hero {
2
+ --puzzle-hero-background: var(--puzzle-color-background);
3
+ --puzzle-hero-foreground: var(--puzzle-color-text);
4
+ --puzzle-hero-muted: var(--puzzle-color-text-muted);
5
+ --puzzle-hero-padding-inline: var(--puzzle-space-5);
6
+ --puzzle-hero-padding-block: var(--puzzle-space-12);
7
+ --puzzle-hero-gap: var(--puzzle-space-8);
8
+ --puzzle-hero-content-width: var(--puzzle-content-width);
9
+ isolation: isolate;
10
+ width: 100%;
11
+ min-height: 0;
12
+ color: var(--puzzle-hero-foreground);
13
+ background: var(--puzzle-hero-background);
14
+ display: flex;
15
+ position: relative;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .puzzle-hero[data-theme="light"] {
20
+ --puzzle-hero-background: var(--puzzle-color-background);
21
+ --puzzle-hero-foreground: var(--puzzle-color-text);
22
+ --puzzle-hero-muted: var(--puzzle-color-text-muted);
23
+ }
24
+
25
+ .puzzle-hero[data-theme="dark"] {
26
+ --puzzle-hero-background: var(--puzzle-color-text);
27
+ --puzzle-hero-foreground: var(--puzzle-color-background);
28
+ --puzzle-hero-muted: var(--puzzle-color-background);
29
+ }
30
+
31
+ .puzzle-hero[data-theme="contrast"] {
32
+ --puzzle-hero-background: var(--puzzle-color-surface);
33
+ --puzzle-hero-foreground: var(--puzzle-color-text);
34
+ --puzzle-hero-muted: var(--puzzle-color-text-muted);
35
+ }
36
+
37
+ .puzzle-hero[data-theme="brand"] {
38
+ --puzzle-hero-background: var(--puzzle-color-primary);
39
+ --puzzle-hero-foreground: var(--puzzle-color-background);
40
+ --puzzle-hero-muted: var(--puzzle-color-background);
41
+ }
42
+
43
+ .puzzle-hero__background {
44
+ z-index: 0;
45
+ pointer-events: none;
46
+ position: absolute;
47
+ inset: 0;
48
+ overflow: hidden;
49
+ }
50
+
51
+ .puzzle-hero__background-image, .puzzle-hero__background-video, .puzzle-hero__background-media {
52
+ object-fit: cover;
53
+ width: 100%;
54
+ height: 100%;
55
+ position: absolute;
56
+ inset: 0;
57
+ }
58
+
59
+ .puzzle-hero__background-image, .puzzle-hero__background-video {
60
+ object-position: center;
61
+ }
62
+
63
+ .puzzle-hero__background-media {
64
+ overflow: hidden;
65
+ }
66
+
67
+ .puzzle-hero__background-media img, .puzzle-hero__background-media video, .puzzle-hero__background-media picture {
68
+ object-fit: cover;
69
+ width: 100%;
70
+ height: 100%;
71
+ }
72
+
73
+ .puzzle-hero__overlay {
74
+ z-index: 1;
75
+ background: none;
76
+ position: absolute;
77
+ inset: 0;
78
+ }
79
+
80
+ .puzzle-hero[data-overlay="subtle"] .puzzle-hero__overlay {
81
+ background: var(--puzzle-color-overlay-subtle);
82
+ }
83
+
84
+ .puzzle-hero[data-overlay="strong"] .puzzle-hero__overlay {
85
+ background: var(--puzzle-color-overlay-strong);
86
+ }
87
+
88
+ .puzzle-hero[data-overlay="gradient"] .puzzle-hero__overlay {
89
+ background: linear-gradient(90deg,
90
+ var(--puzzle-color-overlay-strong) 0%,
91
+ var(--puzzle-color-overlay-subtle) 65%,
92
+ transparent 100%);
93
+ }
94
+
95
+ .puzzle-hero__inner {
96
+ z-index: 2;
97
+ width: min(calc(100% - var(--puzzle-hero-padding-inline) * 2), var(--puzzle-container-width));
98
+ min-height: inherit;
99
+ padding-block: var(--puzzle-hero-padding-block);
100
+ align-items: center;
101
+ gap: var(--puzzle-hero-gap);
102
+ grid-template-columns: minmax(0, 1fr);
103
+ margin-inline: auto;
104
+ display: grid;
105
+ position: relative;
106
+ }
107
+
108
+ .puzzle-hero[data-layout="split"] .puzzle-hero__inner {
109
+ grid-template-columns: repeat(2, minmax(0, 1fr));
110
+ }
111
+
112
+ .puzzle-hero[data-layout="asymmetric"] .puzzle-hero__inner {
113
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
114
+ }
115
+
116
+ .puzzle-hero[data-layout="full-width"] .puzzle-hero__inner {
117
+ width: 100%;
118
+ max-width: none;
119
+ padding-inline: var(--puzzle-hero-padding-inline);
120
+ }
121
+
122
+ .puzzle-hero[data-layout="centered"] .puzzle-hero__inner, .puzzle-hero[data-media-position="background"] .puzzle-hero__inner, .puzzle-hero[data-has-media="false"] .puzzle-hero__inner {
123
+ grid-template-columns: minmax(0, 1fr);
124
+ }
125
+
126
+ .puzzle-hero__content {
127
+ justify-content: center;
128
+ align-items: flex-start;
129
+ gap: var(--puzzle-space-5);
130
+ flex-direction: column;
131
+ min-width: 0;
132
+ display: flex;
133
+ }
134
+
135
+ .puzzle-hero[data-alignment="start"] .puzzle-hero__content {
136
+ text-align: start;
137
+ align-items: flex-start;
138
+ }
139
+
140
+ .puzzle-hero[data-alignment="center"] .puzzle-hero__content {
141
+ text-align: center;
142
+ align-items: center;
143
+ margin-inline: auto;
144
+ }
145
+
146
+ .puzzle-hero[data-alignment="end"] .puzzle-hero__content {
147
+ text-align: end;
148
+ align-items: flex-end;
149
+ margin-inline-start: auto;
150
+ }
151
+
152
+ .puzzle-hero[data-content-width="narrow"] .puzzle-hero__content {
153
+ max-width: var(--puzzle-prose-width);
154
+ }
155
+
156
+ .puzzle-hero[data-content-width="normal"] .puzzle-hero__content {
157
+ max-width: var(--puzzle-content-width);
158
+ }
159
+
160
+ .puzzle-hero[data-content-width="wide"] .puzzle-hero__content {
161
+ max-width: var(--puzzle-container-width);
162
+ }
163
+
164
+ .puzzle-hero[data-content-width="full"] .puzzle-hero__content {
165
+ max-width: none;
166
+ }
167
+
168
+ .puzzle-hero[data-layout="centered"] .puzzle-hero__content {
169
+ width: 100%;
170
+ margin-inline: auto;
171
+ }
172
+
173
+ .puzzle-hero__eyebrow {
174
+ color: var(--puzzle-hero-muted);
175
+ font-family: var(--puzzle-font-body);
176
+ font-size: var(--puzzle-font-size-sm);
177
+ font-weight: var(--puzzle-font-weight-semibold);
178
+ line-height: var(--puzzle-font-line-height-normal);
179
+ letter-spacing: var(--puzzle-font-letter-spacing-wide);
180
+ text-transform: uppercase;
181
+ }
182
+
183
+ .puzzle-hero__title {
184
+ max-width: 100%;
185
+ color: inherit;
186
+ font-family: var(--puzzle-font-heading);
187
+ font-size: clamp(var(--puzzle-font-size-4xl), 5.5vw, var(--puzzle-font-size-6xl));
188
+ font-weight: var(--puzzle-font-weight-bold);
189
+ line-height: var(--puzzle-font-line-height-tight);
190
+ letter-spacing: var(--puzzle-font-letter-spacing-tighter);
191
+ text-wrap: balance;
192
+ margin: 0;
193
+ }
194
+
195
+ .puzzle-hero__description {
196
+ max-width: var(--puzzle-prose-width);
197
+ color: var(--puzzle-hero-muted);
198
+ font-family: var(--puzzle-font-body);
199
+ font-size: var(--puzzle-font-size-lg);
200
+ line-height: var(--puzzle-font-line-height-relaxed);
201
+ }
202
+
203
+ .puzzle-hero__children {
204
+ width: 100%;
205
+ }
206
+
207
+ .puzzle-hero__actions {
208
+ align-items: center;
209
+ gap: var(--puzzle-space-3);
210
+ flex-wrap: wrap;
211
+ width: 100%;
212
+ display: flex;
213
+ }
214
+
215
+ .puzzle-hero__search {
216
+ width: 100%;
217
+ max-width: var(--puzzle-container-width);
218
+ }
219
+
220
+ .puzzle-hero__meta {
221
+ align-items: center;
222
+ gap: var(--puzzle-space-4);
223
+ color: var(--puzzle-hero-muted);
224
+ font-size: var(--puzzle-font-size-sm);
225
+ flex-wrap: wrap;
226
+ display: flex;
227
+ }
228
+
229
+ .puzzle-hero__media {
230
+ justify-content: center;
231
+ align-self: stretch;
232
+ align-items: center;
233
+ width: 100%;
234
+ min-width: 0;
235
+ display: flex;
236
+ position: relative;
237
+ overflow: hidden;
238
+ }
239
+
240
+ .puzzle-hero__media img, .puzzle-hero__media video, .puzzle-hero__media picture {
241
+ max-width: 100%;
242
+ }
243
+
244
+ .puzzle-hero__media img, .puzzle-hero__media video {
245
+ object-fit: cover;
246
+ height: auto;
247
+ }
248
+
249
+ .puzzle-hero[data-layout="split"][data-media-position="left"] .puzzle-hero__media, .puzzle-hero[data-layout="asymmetric"][data-media-position="left"] .puzzle-hero__media {
250
+ grid-area: 1 / 1;
251
+ }
252
+
253
+ .puzzle-hero[data-layout="split"][data-media-position="left"] .puzzle-hero__content, .puzzle-hero[data-layout="asymmetric"][data-media-position="left"] .puzzle-hero__content, .puzzle-hero[data-layout="split"][data-media-position="right"] .puzzle-hero__media, .puzzle-hero[data-layout="asymmetric"][data-media-position="right"] .puzzle-hero__media {
254
+ grid-area: 1 / 2;
255
+ }
256
+
257
+ .puzzle-hero[data-layout="split"][data-media-position="right"] .puzzle-hero__content, .puzzle-hero[data-layout="asymmetric"][data-media-position="right"] .puzzle-hero__content {
258
+ grid-area: 1 / 1;
259
+ }
260
+
261
+ .puzzle-hero[data-height="large"] {
262
+ min-height: clamp(var(--puzzle-space-20), 75svh, var(--puzzle-space-24) * 2);
263
+ }
264
+
265
+ .puzzle-hero[data-height="viewport"] {
266
+ min-height: 100svh;
267
+ }
268
+
269
+ @media (width <= 48rem) {
270
+ .puzzle-hero {
271
+ --puzzle-hero-padding-inline: var(--puzzle-space-4);
272
+ --puzzle-hero-padding-block: var(--puzzle-space-8);
273
+ --puzzle-hero-gap: var(--puzzle-space-6);
274
+ }
275
+
276
+ .puzzle-hero__inner, .puzzle-hero[data-layout="split"] .puzzle-hero__inner, .puzzle-hero[data-layout="asymmetric"] .puzzle-hero__inner {
277
+ gap: var(--puzzle-hero-gap);
278
+ grid-template-columns: minmax(0, 1fr);
279
+ }
280
+
281
+ .puzzle-hero[data-height="large"] {
282
+ min-height: auto;
283
+ }
284
+
285
+ .puzzle-hero[data-layout="split"] .puzzle-hero__content, .puzzle-hero[data-layout="asymmetric"] .puzzle-hero__content, .puzzle-hero[data-layout="split"] .puzzle-hero__media, .puzzle-hero[data-layout="asymmetric"] .puzzle-hero__media {
286
+ grid-area: auto / 1;
287
+ }
288
+
289
+ .puzzle-hero[data-reverse-mobile="true"] .puzzle-hero__media, .puzzle-hero[data-reverse-mobile="false"] .puzzle-hero__content {
290
+ order: -1;
291
+ }
292
+
293
+ .puzzle-hero__title {
294
+ font-size: clamp(var(--puzzle-font-size-3xl), 10vw, var(--puzzle-font-size-5xl));
295
+ }
296
+
297
+ .puzzle-hero[data-overlay="gradient"] .puzzle-hero__overlay {
298
+ background: linear-gradient(180deg,
299
+ var(--puzzle-color-overlay-strong) 0%,
300
+ var(--puzzle-color-overlay-subtle) 65%,
301
+ transparent 100%);
302
+ }
303
+ }
304
+
305
+ @media (prefers-reduced-motion: reduce) {
306
+ .puzzle-hero, .puzzle-hero *, .puzzle-hero :before, .puzzle-hero :after {
307
+ scroll-behavior: auto;
308
+ animation-duration: var(--puzzle-duration-0);
309
+ transition-duration: var(--puzzle-duration-0);
310
+ animation-iteration-count: 1;
311
+ }
312
+ }
@@ -0,0 +1,3 @@
1
+ import { HeroProps } from "./hero.types.cjs";
2
+ declare const Hero: ({ as: Component, titleAs: Heading, id, testId, className, contentClassName, mediaClassName, style, layout, mediaPosition, alignment, height, theme, overlay, contentWidth, reverseOnMobile, eyebrow, title, description, media, backgroundImage, backgroundVideo, actions, search, meta, children, role, ariaLabel, ariaLabelledBy }: HeroProps) => import("react").JSX.Element;
3
+ export { Hero };
@@ -0,0 +1,3 @@
1
+ import { HeroProps } from "./hero.types.js";
2
+ declare const Hero: ({ as: Component, titleAs: Heading, id, testId, className, contentClassName, mediaClassName, style, layout, mediaPosition, alignment, height, theme, overlay, contentWidth, reverseOnMobile, eyebrow, title, description, media, backgroundImage, backgroundVideo, actions, search, meta, children, role, ariaLabel, ariaLabelledBy }: HeroProps) => import("react").JSX.Element;
3
+ export { Hero };
@@ -0,0 +1,98 @@
1
+ import { HeroVideo } from "./hero-video.js";
2
+ import "./hero.css";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ // src/components/hero/hero.tsx
5
+ const Hero = ({ as: Component = "section", titleAs: Heading = "h1", id, testId, className, contentClassName, mediaClassName, style, layout = "split", mediaPosition = "right", alignment = "start", height = "auto", theme = "light", overlay = "none", contentWidth = "normal", reverseOnMobile = true, eyebrow, title, description, media, backgroundImage, backgroundVideo, actions, search, meta, children, role, ariaLabel, ariaLabelledBy }) => {
6
+ const hasMedia = Boolean(media || backgroundImage || backgroundVideo);
7
+ const hasBackground = Boolean(backgroundImage || backgroundVideo || mediaPosition === "background" && media);
8
+ const rootClassName = ["puzzle-hero", className].filter(Boolean).join(" ");
9
+ const contentClasses = ["puzzle-hero__content", contentClassName].filter(Boolean).join(" ");
10
+ const mediaClasses = ["puzzle-hero__media", mediaClassName].filter(Boolean).join(" ");
11
+ return /* @__PURE__ */ jsxs(Component, {
12
+ id,
13
+ "data-testid": testId,
14
+ className: rootClassName,
15
+ style,
16
+ "data-layout": layout,
17
+ "data-media-position": mediaPosition,
18
+ "data-alignment": alignment,
19
+ "data-height": height,
20
+ "data-theme": theme,
21
+ "data-overlay": overlay,
22
+ "data-content-width": contentWidth,
23
+ "data-has-media": hasMedia,
24
+ "data-has-background": hasBackground,
25
+ "data-reverse-mobile": reverseOnMobile,
26
+ "aria-label": ariaLabel,
27
+ "aria-labelledby": ariaLabelledBy,
28
+ role,
29
+ children: [hasBackground && /* @__PURE__ */ jsxs("div", {
30
+ className: "puzzle-hero__background",
31
+ "aria-hidden": "true",
32
+ "data-hero-background": true,
33
+ children: [
34
+ backgroundImage && /* @__PURE__ */ jsx("img", {
35
+ className: "puzzle-hero__background-image",
36
+ src: backgroundImage,
37
+ alt: "",
38
+ loading: "eager",
39
+ decoding: "async",
40
+ draggable: false
41
+ }),
42
+ backgroundVideo && /* @__PURE__ */ jsx(HeroVideo, {
43
+ source: backgroundVideo,
44
+ className: "puzzle-hero__background-video"
45
+ }),
46
+ mediaPosition === "background" && media && /* @__PURE__ */ jsx("div", {
47
+ className: "puzzle-hero__background-media",
48
+ children: media
49
+ }),
50
+ /* @__PURE__ */ jsx("div", { className: "puzzle-hero__overlay" })
51
+ ]
52
+ }), /* @__PURE__ */ jsxs("div", {
53
+ className: "puzzle-hero__inner",
54
+ "data-hero-inner": true,
55
+ children: [media && mediaPosition !== "background" && /* @__PURE__ */ jsx("div", {
56
+ className: mediaClasses,
57
+ "data-hero-media": true,
58
+ children: media
59
+ }), /* @__PURE__ */ jsxs("div", {
60
+ className: contentClasses,
61
+ "data-hero-content": true,
62
+ children: [
63
+ eyebrow && /* @__PURE__ */ jsx("div", {
64
+ className: "puzzle-hero__eyebrow",
65
+ children: eyebrow
66
+ }),
67
+ title && /* @__PURE__ */ jsx(Heading, {
68
+ className: "puzzle-hero__title",
69
+ children: title
70
+ }),
71
+ description && /* @__PURE__ */ jsx("div", {
72
+ className: "puzzle-hero__description",
73
+ children: description
74
+ }),
75
+ children && /* @__PURE__ */ jsx("div", {
76
+ className: "puzzle-hero__children",
77
+ children
78
+ }),
79
+ actions && /* @__PURE__ */ jsx("div", {
80
+ className: "puzzle-hero__actions",
81
+ children: actions
82
+ }),
83
+ search && /* @__PURE__ */ jsx("div", {
84
+ className: "puzzle-hero__search",
85
+ children: search
86
+ }),
87
+ meta && /* @__PURE__ */ jsx("div", {
88
+ className: "puzzle-hero__meta",
89
+ children: meta
90
+ })
91
+ ]
92
+ })]
93
+ })]
94
+ });
95
+ };
96
+ export { Hero };
97
+
98
+ //# sourceMappingURL=hero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hero.js","names":[],"sources":["../../../src/components/hero/hero.tsx"],"sourcesContent":["import { HeroVideo } from \"./hero-video\";\n\nimport type { HeroProps } from \"./hero.types\";\n\nimport \"./hero.css\";\n\nconst Hero = ({\n as: Component = \"section\",\n titleAs: Heading = \"h1\",\n\n id,\n testId,\n className,\n contentClassName,\n mediaClassName,\n style,\n\n layout = \"split\",\n mediaPosition = \"right\",\n alignment = \"start\",\n height = \"auto\",\n theme = \"light\",\n overlay = \"none\",\n contentWidth = \"normal\",\n\n reverseOnMobile = true,\n\n eyebrow,\n title,\n description,\n\n media,\n backgroundImage,\n backgroundVideo,\n\n actions,\n search,\n meta,\n\n children,\n\n role,\n ariaLabel,\n ariaLabelledBy,\n}: HeroProps) => {\n const hasMedia = Boolean(media || backgroundImage || backgroundVideo);\n\n const hasBackground = Boolean(\n backgroundImage ||\n backgroundVideo ||\n (mediaPosition === \"background\" && media),\n );\n\n const rootClassName = [\"puzzle-hero\", className].filter(Boolean).join(\" \");\n\n const contentClasses = [\"puzzle-hero__content\", contentClassName]\n .filter(Boolean)\n .join(\" \");\n\n const mediaClasses = [\"puzzle-hero__media\", mediaClassName]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <Component\n id={id}\n data-testid={testId}\n className={rootClassName}\n style={style}\n data-layout={layout}\n data-media-position={mediaPosition}\n data-alignment={alignment}\n data-height={height}\n data-theme={theme}\n data-overlay={overlay}\n data-content-width={contentWidth}\n data-has-media={hasMedia}\n data-has-background={hasBackground}\n data-reverse-mobile={reverseOnMobile}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n role={role}\n >\n {hasBackground && (\n <div\n className=\"puzzle-hero__background\"\n aria-hidden=\"true\"\n data-hero-background\n >\n {backgroundImage && (\n <img\n className=\"puzzle-hero__background-image\"\n src={backgroundImage}\n alt=\"\"\n loading=\"eager\"\n decoding=\"async\"\n draggable={false}\n />\n )}\n\n {backgroundVideo && (\n <HeroVideo\n source={backgroundVideo}\n className=\"puzzle-hero__background-video\"\n />\n )}\n\n {mediaPosition === \"background\" && media && (\n <div className=\"puzzle-hero__background-media\">{media}</div>\n )}\n\n <div className=\"puzzle-hero__overlay\" />\n </div>\n )}\n\n <div className=\"puzzle-hero__inner\" data-hero-inner>\n {media && mediaPosition !== \"background\" && (\n <div className={mediaClasses} data-hero-media>\n {media}\n </div>\n )}\n\n <div className={contentClasses} data-hero-content>\n {eyebrow && <div className=\"puzzle-hero__eyebrow\">{eyebrow}</div>}\n\n {title && <Heading className=\"puzzle-hero__title\">{title}</Heading>}\n\n {description && (\n <div className=\"puzzle-hero__description\">{description}</div>\n )}\n\n {children && <div className=\"puzzle-hero__children\">{children}</div>}\n\n {actions && <div className=\"puzzle-hero__actions\">{actions}</div>}\n\n {search && <div className=\"puzzle-hero__search\">{search}</div>}\n\n {meta && <div className=\"puzzle-hero__meta\">{meta}</div>}\n </div>\n </div>\n </Component>\n );\n};\n\nexport { Hero };\n"],"mappings":";;;;AAMA,MAAM,QAAQ,EACZ,IAAI,YAAY,WAChB,SAAS,UAAU,MAEnB,IACA,QACA,WACA,kBACA,gBACA,OAEA,SAAS,SACT,gBAAgB,SAChB,YAAY,SACZ,SAAS,QACT,QAAQ,SACR,UAAU,QACV,eAAe,UAEf,kBAAkB,MAElB,SACA,OACA,aAEA,OACA,iBACA,iBAEA,SACA,QACA,MAEA,UAEA,MACA,WACA,qBACe;CACf,MAAM,WAAW,QAAQ,SAAS,mBAAmB,eAAe;CAEpE,MAAM,gBAAgB,QACpB,mBACA,mBACC,kBAAkB,gBAAgB,KACrC;CAEA,MAAM,gBAAgB,CAAC,eAAe,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;CAEzE,MAAM,iBAAiB,CAAC,wBAAwB,gBAAgB,CAAC,CAC9D,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,MAAM,eAAe,CAAC,sBAAsB,cAAc,CAAC,CACxD,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CAEX,OACE,qBAAC,WAAD;EACM;EACJ,eAAa;EACb,WAAW;EACJ;EACP,eAAa;EACb,uBAAqB;EACrB,kBAAgB;EAChB,eAAa;EACb,cAAY;EACZ,gBAAc;EACd,sBAAoB;EACpB,kBAAgB;EAChB,uBAAqB;EACrB,uBAAqB;EACrB,cAAY;EACZ,mBAAiB;EACX;EAjBR,UAAA,CAmBG,iBACC,qBAAC,OAAD;GACE,WAAU;GACV,eAAY;GACZ,wBAAA;GAHF,UAAA;IAKG,mBACC,oBAAC,OAAD;KACE,WAAU;KACV,KAAK;KACL,KAAI;KACJ,SAAQ;KACR,UAAS;KACT,WAAW;IACZ,CAAA;IAGF,mBACC,oBAAC,WAAD;KACE,QAAQ;KACR,WAAU;IACX,CAAA;IAGF,kBAAkB,gBAAgB,SACjC,oBAAC,OAAD;KAAK,WAAU;KAAiC,UAAA;IAAW,CAAA;IAG7D,oBAAC,OAAD,EAAK,WAAU,uBAAwB,CAAA;GACpC;EAGP,CAAA,GAAA,qBAAC,OAAD;GAAK,WAAU;GAAqB,mBAAA;GAApC,UAAA,CACG,SAAS,kBAAkB,gBAC1B,oBAAC,OAAD;IAAK,WAAW;IAAc,mBAAA;IAC3B,UAAA;GACE,CAAA,GAGP,qBAAC,OAAD;IAAK,WAAW;IAAgB,qBAAA;IAAhC,UAAA;KACG,WAAW,oBAAC,OAAD;MAAK,WAAU;MAAwB,UAAA;KAAa,CAAA;KAE/D,SAAS,oBAAC,SAAD;MAAS,WAAU;MAAsB,UAAA;KAAe,CAAA;KAEjE,eACC,oBAAC,OAAD;MAAK,WAAU;MAA4B,UAAA;KAAiB,CAAA;KAG7D,YAAY,oBAAC,OAAD;MAAK,WAAU;MAAyB;KAAc,CAAA;KAElE,WAAW,oBAAC,OAAD;MAAK,WAAU;MAAwB,UAAA;KAAa,CAAA;KAE/D,UAAU,oBAAC,OAAD;MAAK,WAAU;MAAuB,UAAA;KAAY,CAAA;KAE5D,QAAQ,oBAAC,OAAD;MAAK,WAAU;MAAqB,UAAA;KAAU,CAAA;IACpD;GACF,CAAA,CAAA;EACI,CAAA,CAAA;;AAEf"}
@@ -0,0 +1,44 @@
1
+ import { AriaRole, CSSProperties, ElementType, ReactNode } from "react";
2
+ export type HeroLayout = "centered" | "split" | "full-width" | "asymmetric";
3
+ export type HeroMediaPosition = "left" | "right" | "background";
4
+ export type HeroAlignment = "start" | "center" | "end";
5
+ export type HeroHeight = "auto" | "large" | "viewport";
6
+ export type HeroTheme = "light" | "dark" | "contrast" | "brand";
7
+ export type HeroOverlay = "none" | "subtle" | "strong" | "gradient";
8
+ export type HeroContentWidth = "narrow" | "normal" | "wide" | "full";
9
+ export type HeroVideoSource = {
10
+ src: string;
11
+ type?: string;
12
+ poster?: string;
13
+ };
14
+ export type HeroProps = {
15
+ as?: ElementType;
16
+ titleAs?: ElementType;
17
+ id?: string;
18
+ testId?: string;
19
+ className?: string;
20
+ contentClassName?: string;
21
+ mediaClassName?: string;
22
+ style?: CSSProperties;
23
+ layout?: HeroLayout;
24
+ mediaPosition?: HeroMediaPosition;
25
+ alignment?: HeroAlignment;
26
+ height?: HeroHeight;
27
+ theme?: HeroTheme;
28
+ overlay?: HeroOverlay;
29
+ contentWidth?: HeroContentWidth;
30
+ reverseOnMobile?: boolean;
31
+ eyebrow?: ReactNode;
32
+ title?: ReactNode;
33
+ description?: ReactNode;
34
+ media?: ReactNode;
35
+ backgroundImage?: string;
36
+ backgroundVideo?: HeroVideoSource;
37
+ actions?: ReactNode;
38
+ search?: ReactNode;
39
+ meta?: ReactNode;
40
+ children?: ReactNode;
41
+ role?: AriaRole;
42
+ ariaLabel?: string;
43
+ ariaLabelledBy?: string;
44
+ };
@@ -0,0 +1,44 @@
1
+ import { AriaRole, CSSProperties, ElementType, ReactNode } from "react";
2
+ export type HeroLayout = "centered" | "split" | "full-width" | "asymmetric";
3
+ export type HeroMediaPosition = "left" | "right" | "background";
4
+ export type HeroAlignment = "start" | "center" | "end";
5
+ export type HeroHeight = "auto" | "large" | "viewport";
6
+ export type HeroTheme = "light" | "dark" | "contrast" | "brand";
7
+ export type HeroOverlay = "none" | "subtle" | "strong" | "gradient";
8
+ export type HeroContentWidth = "narrow" | "normal" | "wide" | "full";
9
+ export type HeroVideoSource = {
10
+ src: string;
11
+ type?: string;
12
+ poster?: string;
13
+ };
14
+ export type HeroProps = {
15
+ as?: ElementType;
16
+ titleAs?: ElementType;
17
+ id?: string;
18
+ testId?: string;
19
+ className?: string;
20
+ contentClassName?: string;
21
+ mediaClassName?: string;
22
+ style?: CSSProperties;
23
+ layout?: HeroLayout;
24
+ mediaPosition?: HeroMediaPosition;
25
+ alignment?: HeroAlignment;
26
+ height?: HeroHeight;
27
+ theme?: HeroTheme;
28
+ overlay?: HeroOverlay;
29
+ contentWidth?: HeroContentWidth;
30
+ reverseOnMobile?: boolean;
31
+ eyebrow?: ReactNode;
32
+ title?: ReactNode;
33
+ description?: ReactNode;
34
+ media?: ReactNode;
35
+ backgroundImage?: string;
36
+ backgroundVideo?: HeroVideoSource;
37
+ actions?: ReactNode;
38
+ search?: ReactNode;
39
+ meta?: ReactNode;
40
+ children?: ReactNode;
41
+ role?: AriaRole;
42
+ ariaLabel?: string;
43
+ ariaLabelledBy?: string;
44
+ };
@@ -0,0 +1,8 @@
1
+ // src/components/hero/hero.utils.ts
2
+ const mergeHeroPresetProps = (defaults, props) => ({
3
+ ...defaults,
4
+ ...props
5
+ });
6
+ exports.mergeHeroPresetProps = mergeHeroPresetProps;
7
+
8
+ //# sourceMappingURL=hero.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hero.utils.cjs","names":[],"sources":["../../../src/components/hero/hero.utils.ts"],"sourcesContent":["import type { HeroProps } from \"./hero.types\";\n\nexport const mergeHeroPresetProps = <T extends HeroProps>(\n defaults: Partial<HeroProps>,\n props: T,\n): T & Partial<HeroProps> => ({\n ...defaults,\n ...props,\n});\n"],"mappings":";AAEA,MAAa,wBACX,UACA,WAC4B;CAC5B,GAAG;CACH,GAAG;AACL"}
@@ -0,0 +1,8 @@
1
+ // src/components/hero/hero.utils.ts
2
+ const mergeHeroPresetProps = (defaults, props) => ({
3
+ ...defaults,
4
+ ...props
5
+ });
6
+ export { mergeHeroPresetProps };
7
+
8
+ //# sourceMappingURL=hero.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hero.utils.js","names":[],"sources":["../../../src/components/hero/hero.utils.ts"],"sourcesContent":["import type { HeroProps } from \"./hero.types\";\n\nexport const mergeHeroPresetProps = <T extends HeroProps>(\n defaults: Partial<HeroProps>,\n props: T,\n): T & Partial<HeroProps> => ({\n ...defaults,\n ...props,\n});\n"],"mappings":";AAEA,MAAa,wBACX,UACA,WAC4B;CAC5B,GAAG;CACH,GAAG;AACL"}