dune-react 0.0.34 → 0.0.36

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.
@@ -34,7 +34,7 @@ const TabLocations = (props) => {
34
34
  defaultValue: ((_a = locations[0]) == null ? void 0 : _a.value) ?? "loc-0",
35
35
  className: "relative grid auto-cols-fr grid-cols-1 gap-12 md:grid-cols-[.5fr_1fr] md:gap-y-16 lg:gap-x-20 lg:gap-y-16",
36
36
  children: [
37
- /* @__PURE__ */ jsx(TabsList, { className: "relative grid h-full auto-cols-fr grid-cols-1 gap-x-4 gap-y-10", children: locations.map((location, index) => {
37
+ /* @__PURE__ */ jsx("div", { className: "relative md:min-h-[400px]", children: /* @__PURE__ */ jsx(TabsList, { className: "grid auto-cols-fr grid-cols-1 gap-x-4 gap-y-10 group-data-horizontal/tabs:h-auto md:absolute md:inset-0 md:overflow-y-auto", children: locations.map((location, index) => {
38
38
  var _a2;
39
39
  return /* @__PURE__ */ jsx(
40
40
  TabsTrigger,
@@ -49,7 +49,7 @@ const TabLocations = (props) => {
49
49
  },
50
50
  index
51
51
  );
52
- }) }),
52
+ }) }) }),
53
53
  /* @__PURE__ */ jsx("div", { children: locations.map((location, index) => /* @__PURE__ */ jsx(
54
54
  TabsContent,
55
55
  {
@@ -1,7 +1,7 @@
1
1
  import type { PricingComponentProps, BaseButton } from "../props";
2
2
  type Feature = {
3
3
  text: string;
4
- items: React.ReactNode[];
4
+ items: string[];
5
5
  };
6
6
  type FeatureCategory = {
7
7
  title?: string;
@@ -1,5 +1,4 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { BiCheck } from "../../../../node_modules/.pnpm/react-icons@5.6.0_react@19.2.4/node_modules/react-icons/bi/index.js";
3
2
  import { Button } from "../../../shadcn/button.js";
4
3
  import { Tabs, TabsList, TabsTrigger, TabsContent } from "../../../shadcn/tabs.js";
5
4
  import { cn } from "../../../../utils/css-utils.js";
@@ -90,7 +89,7 @@ const PricingComparisonTable = (props) => {
90
89
  "border-l": itemIndex > 0
91
90
  }
92
91
  ),
93
- children: /* @__PURE__ */ jsx("p", { children: item })
92
+ dangerouslySetInnerHTML: { __html: item }
94
93
  },
95
94
  itemIndex
96
95
  ))
@@ -176,38 +175,15 @@ const defaultPlans = [
176
175
  button: { label: "Get started" }
177
176
  }
178
177
  ];
178
+ const checkIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>';
179
179
  const defaultFeatureCategory = {
180
180
  title: "Feature Category",
181
181
  features: [
182
182
  { text: "Feature text goes here", items: ["10", "25", "Unlimited"] },
183
- {
184
- text: "Feature text goes here",
185
- items: [
186
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
187
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
188
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
189
- ]
190
- },
191
- {
192
- text: "Feature text goes here",
193
- items: [
194
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
195
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
196
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
197
- ]
198
- },
199
- {
200
- text: "Feature text goes here",
201
- items: [
202
- "",
203
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" }),
204
- /* @__PURE__ */ jsx(BiCheck, { className: "size-6" })
205
- ]
206
- },
207
- {
208
- text: "Feature text goes here",
209
- items: ["", "", /* @__PURE__ */ jsx(BiCheck, { className: "size-6" })]
210
- }
183
+ { text: "Feature text goes here", items: [checkIcon, checkIcon, checkIcon] },
184
+ { text: "Feature text goes here", items: [checkIcon, checkIcon, checkIcon] },
185
+ { text: "Feature text goes here", items: ["", checkIcon, checkIcon] },
186
+ { text: "Feature text goes here", items: ["", "", checkIcon] }
211
187
  ]
212
188
  };
213
189
  const PricingComparisonTableDefaults = {
@@ -41,6 +41,23 @@ declare const conf: {
41
41
  title: {
42
42
  type: string;
43
43
  };
44
+ features: {
45
+ type: string;
46
+ getItemSummary: (item: {
47
+ text?: string;
48
+ }, index?: number) => string;
49
+ arrayFields: {
50
+ text: {
51
+ type: string;
52
+ };
53
+ items: {
54
+ type: string;
55
+ ai: {
56
+ instructions: string;
57
+ };
58
+ };
59
+ };
60
+ };
44
61
  };
45
62
  };
46
63
  defaultTabValue: {
@@ -20,7 +20,20 @@ const conf = {
20
20
  type: "array",
21
21
  getItemSummary: (item, index = 0) => item.title || `Category ${index + 1}`,
22
22
  arrayFields: {
23
- title: { type: "text" }
23
+ title: { type: "text" },
24
+ features: {
25
+ type: "array",
26
+ getItemSummary: (item, index = 0) => item.text || `Feature ${index + 1}`,
27
+ arrayFields: {
28
+ text: { type: "text" },
29
+ items: {
30
+ type: "array",
31
+ ai: {
32
+ instructions: "Array of HTML strings, one per pricing plan column. Use plain text like '10' or 'Unlimited', an inline SVG check icon for supported features, or empty string '' for unsupported."
33
+ }
34
+ }
35
+ }
36
+ }
24
37
  }
25
38
  },
26
39
  defaultTabValue: {
@@ -10324,6 +10324,23 @@ declare const confMap: {
10324
10324
  title: {
10325
10325
  type: string;
10326
10326
  };
10327
+ features: {
10328
+ type: string;
10329
+ getItemSummary: (item: {
10330
+ text?: string;
10331
+ }, index?: number) => string;
10332
+ arrayFields: {
10333
+ text: {
10334
+ type: string;
10335
+ };
10336
+ items: {
10337
+ type: string;
10338
+ ai: {
10339
+ instructions: string;
10340
+ };
10341
+ };
10342
+ };
10343
+ };
10327
10344
  };
10328
10345
  };
10329
10346
  defaultTabValue: {
@@ -151,7 +151,7 @@ const BentoTestimonialDefaults = {
151
151
  component: "logo",
152
152
  props: {
153
153
  logo: {
154
- src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/google-icon.svg",
154
+ src: "https://file.springbrand.ai/web_assets/template-logo.svg",
155
155
  alt: "Logo 1"
156
156
  }
157
157
  }
@@ -174,7 +174,7 @@ const BentoTestimonialDefaults = {
174
174
  component: "logo",
175
175
  props: {
176
176
  logo: {
177
- src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/figma.svg",
177
+ src: "https://file.springbrand.ai/web_assets/template-logo.svg",
178
178
  alt: "Webflow logo 1"
179
179
  }
180
180
  }
@@ -239,7 +239,7 @@ const BentoTestimonialDefaults = {
239
239
  component: "logo",
240
240
  props: {
241
241
  logo: {
242
- src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/figma.svg",
242
+ src: "https://file.springbrand.ai/web_assets/template-logo.svg",
243
243
  alt: "Webflow logo 2"
244
244
  }
245
245
  }
@@ -90,7 +90,7 @@ const testimonial = {
90
90
  name: "Name Surname",
91
91
  position: "Position",
92
92
  companyName: "Company name",
93
- logo: { src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/netflix.svg", alt: "Webflow logo" }
93
+ logo: { src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Webflow logo" }
94
94
  };
95
95
  const ImageTestimonialCarouselDefaults = {
96
96
  testimonials: [testimonial, testimonial],
@@ -77,7 +77,7 @@ const TabTestimonial = (props) => {
77
77
  };
78
78
  const tab = {
79
79
  value: "tab-1",
80
- trigger: { src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/slack.svg", alt: "Webflow logo" },
80
+ trigger: { src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Webflow logo" },
81
81
  content: {
82
82
  numberOfStars: 5,
83
83
  quote: '"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."',
@@ -65,7 +65,7 @@ const TestimonialCardGridDefaults = {
65
65
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
66
66
  testimonials: [
67
67
  {
68
- media: { src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/discord.svg", alt: "Webflow logo 1" },
68
+ media: { src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Webflow logo 1" },
69
69
  quote: '"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."',
70
70
  avatar: { src: "https://picsum.photos/seed/testimonial-1/100/100", alt: "Testimonial avatar 1" },
71
71
  name: "Name Surname",
@@ -73,7 +73,7 @@ const TestimonialCardGridDefaults = {
73
73
  numberOfStars: 5
74
74
  },
75
75
  {
76
- media: { src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/discord.svg", alt: "Webflow logo 2" },
76
+ media: { src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Webflow logo 2" },
77
77
  quote: '"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."',
78
78
  avatar: { src: "https://picsum.photos/seed/testimonial-2/100/100", alt: "Testimonial avatar 2" },
79
79
  name: "Name Surname",
@@ -97,7 +97,7 @@ const TestimonialCarousel = (props) => {
97
97
  };
98
98
  const testimonial = {
99
99
  quote: '"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat."',
100
- logo: { src: "https://cdn.jsdelivr.net/gh/gilbarbara/logos/logos/airbnb.svg", alt: "Webflow logo" },
100
+ logo: { src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Webflow logo" },
101
101
  avatar: { src: "https://picsum.photos/seed/testimonial-carousel/100/100", alt: "Testimonial avatar" },
102
102
  name: "Name Surname",
103
103
  position: "Position, Company name",
@@ -2,6 +2,7 @@ import { buttonsField, badgeField } from "./interactive.js";
2
2
  import { actionDefaults, actionField, buttonDefaults, buttonField, iconField, resolveActionUrl } from "./interactive.js";
3
3
  import { descriptionField, headingField, featuresField } from "./content.js";
4
4
  import { cardField, cardsField } from "./content.js";
5
+ import { getPlaceholderMediaUrl, media16x9Placeholder, media1x1Placeholder, media9x16Placeholder, mediaField, mediasField } from "./media.js";
5
6
  const contentFields = {
6
7
  heading: headingField,
7
8
  description: descriptionField,
@@ -28,7 +29,13 @@ export {
28
29
  contentFieldsWithFeatures,
29
30
  descriptionField,
30
31
  featuresField,
32
+ getPlaceholderMediaUrl,
31
33
  headingField,
32
34
  iconField,
35
+ media16x9Placeholder,
36
+ media1x1Placeholder,
37
+ media9x16Placeholder,
38
+ mediaField,
39
+ mediasField,
33
40
  resolveActionUrl
34
41
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dune-react",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {