@builder.io/sdk-solid 1.0.27 → 1.0.28

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.
@@ -483,6 +483,9 @@ function getProcessedBlock({
483
483
  }
484
484
  }
485
485
 
486
+ // src/functions/camel-to-kebab-case.ts
487
+ var camelToKebabCase = (str) => str ? str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase() : "";
488
+
486
489
  // src/components/block/animator.ts
487
490
  function throttle(func, wait, options = {}) {
488
491
  let context;
@@ -533,7 +536,6 @@ function assign(target, ..._args) {
533
536
  }
534
537
  return to;
535
538
  }
536
- var camelCaseToKebabCase = (str) => str ? str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`) : "";
537
539
  function bindAnimations(animations) {
538
540
  for (const animation of animations) {
539
541
  switch (animation.trigger) {
@@ -586,7 +588,7 @@ function triggerAnimation(animation) {
586
588
  element.style.transitionDelay = "0";
587
589
  assign(element.style, animation.steps[0].styles);
588
590
  setTimeout(() => {
589
- element.style.transition = `all ${animation.duration}s ${camelCaseToKebabCase(animation.easing)}`;
591
+ element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;
590
592
  if (animation.delay) {
591
593
  element.style.transitionDelay = animation.delay + "s";
592
594
  }
@@ -646,7 +648,7 @@ function bindScrollInViewAnimation(animation) {
646
648
  }
647
649
  attachDefaultState();
648
650
  setTimeout(() => {
649
- element.style.transition = `all ${animation.duration}s ${camelCaseToKebabCase(animation.easing)}`;
651
+ element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;
650
652
  if (animation.delay) {
651
653
  element.style.transitionDelay = animation.delay + "s";
652
654
  }
@@ -659,9 +661,6 @@ function bindScrollInViewAnimation(animation) {
659
661
  });
660
662
  }
661
663
 
662
- // src/functions/camel-to-kebab-case.ts
663
- var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
664
-
665
664
  // src/helpers/css.ts
666
665
  var convertStyleMapToCSSArray = (style) => {
667
666
  const cssProps = Object.entries(style).map(([key, value]) => {
@@ -791,10 +790,10 @@ var getRepeatItemData = ({
791
790
  return repeatArray;
792
791
  };
793
792
  var shouldPassLinkComponent = (block) => {
794
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs"].includes(block.name));
793
+ return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
795
794
  };
796
795
  var shouldPassRegisteredComponents = (block) => {
797
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs"].includes(block.name));
796
+ return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
798
797
  };
799
798
 
800
799
  // src/constants/device-sizes.ts
@@ -923,7 +922,7 @@ function BlockStyles(props) {
923
922
  className: `${className}:hover`,
924
923
  styles: {
925
924
  ...hoverStyles,
926
- transition: `all ${hoverAnimation.duration}s ${camelCaseToKebabCase(hoverAnimation.easing)}`,
925
+ transition: `all ${hoverAnimation.duration}s ${camelToKebabCase(hoverAnimation.easing)}`,
927
926
  transitionDelay: hoverAnimation.delay ? `${hoverAnimation.delay}s` : "0s"
928
927
  }
929
928
  }) || "";
@@ -2785,8 +2784,12 @@ function Tabs(props) {
2785
2784
  function activeTabContent(active) {
2786
2785
  return props.tabs && props.tabs[active].content;
2787
2786
  }
2788
- function getActiveTabStyle(index) {
2789
- return activeTab() === index ? props.activeTabStyle : {};
2787
+ function onClick(index) {
2788
+ if (index === activeTab() && props.collapsible) {
2789
+ setActiveTab(-1);
2790
+ } else {
2791
+ setActiveTab(index);
2792
+ }
2790
2793
  }
2791
2794
  return (() => {
2792
2795
  const _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
@@ -2801,13 +2804,7 @@ function Tabs(props) {
2801
2804
  const index = _index();
2802
2805
  return (() => {
2803
2806
  const _el$4 = _tmpl$33();
2804
- _el$4.$$click = (event) => {
2805
- if (index === activeTab() && props.collapsible) {
2806
- setActiveTab(-1);
2807
- } else {
2808
- setActiveTab(index);
2809
- }
2810
- };
2807
+ _el$4.$$click = (event) => onClick(index);
2811
2808
  setAttribute(_el$4, "key", index);
2812
2809
  insert(_el$4, createComponent(blocks_default, {
2813
2810
  get parent() {
@@ -2828,7 +2825,9 @@ function Tabs(props) {
2828
2825
  }
2829
2826
  }));
2830
2827
  effect((_p$) => {
2831
- const _v$ = `builder-tab-wrap ${activeTab() === index ? "builder-tab-active" : ""}`, _v$2 = getActiveTabStyle(index);
2828
+ const _v$ = `builder-tab-wrap ${activeTab() === index ? "builder-tab-active" : ""}`, _v$2 = {
2829
+ ...activeTab() === index ? props.activeTabStyle : {}
2830
+ };
2832
2831
  _v$ !== _p$._v$ && className(_el$4, _p$._v$ = _v$);
2833
2832
  _p$._v$2 = style(_el$4, _v$2, _p$._v$2);
2834
2833
  return _p$;
@@ -2907,8 +2906,320 @@ function Text(props) {
2907
2906
  }
2908
2907
  var text_default = Text;
2909
2908
 
2910
- // src/blocks/custom-code/component-info.ts
2909
+ // src/blocks/accordion/helpers.ts
2910
+ var convertOrderNumberToString = (order) => {
2911
+ return order.toString();
2912
+ };
2913
+
2914
+ // src/blocks/accordion/accordion.tsx
2915
+ var _tmpl$9 = /* @__PURE__ */ template(`<div class=builder-accordion>`);
2916
+ var _tmpl$24 = /* @__PURE__ */ template(`<div>`);
2917
+ function Accordion(props) {
2918
+ const [open, setOpen] = createSignal([]);
2919
+ const onlyOneAtATime = createMemo(() => {
2920
+ return Boolean(props.grid || props.oneAtATime);
2921
+ });
2922
+ const accordionStyles = createMemo(() => {
2923
+ const styles = {
2924
+ display: "flex",
2925
+ alignItems: "stretch",
2926
+ flexDirection: "column",
2927
+ ...props.grid && {
2928
+ flexDirection: "row",
2929
+ alignItems: "flex-start",
2930
+ flexWrap: "wrap"
2931
+ }
2932
+ };
2933
+ return Object.fromEntries(Object.entries(styles).map(([key, value]) => [camelToKebabCase(key), value]));
2934
+ });
2935
+ const accordionTitleStyles = createMemo(() => {
2936
+ const shared = {
2937
+ display: "flex",
2938
+ flexDirection: "column"
2939
+ };
2940
+ const styles = Object.fromEntries(Object.entries({
2941
+ ...shared,
2942
+ alignItems: "stretch",
2943
+ cursor: "pointer"
2944
+ }).map(([key, value]) => [camelToKebabCase(key), value]));
2945
+ return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== void 0));
2946
+ });
2947
+ function getAccordionTitleClassName(index) {
2948
+ return `builder-accordion-title builder-accordion-title-${open().includes(index) ? "open" : "closed"}`;
2949
+ }
2950
+ function getAccordionDetailClassName(index) {
2951
+ return `builder-accordion-detail builder-accordion-detail-${open().includes(index) ? "open" : "closed"}`;
2952
+ }
2953
+ const openGridItemOrder = createMemo(() => {
2954
+ let itemOrder = null;
2955
+ const getOpenGridItemPosition = props.grid && open().length;
2956
+ if (getOpenGridItemPosition && document) {
2957
+ const openItemIndex = open()[0];
2958
+ const openItem = document.querySelector(`.builder-accordion-title[data-index="${openItemIndex}"]`);
2959
+ let subjectItem = openItem;
2960
+ itemOrder = openItemIndex;
2961
+ if (subjectItem) {
2962
+ let prevItemRect = subjectItem.getBoundingClientRect();
2963
+ while (subjectItem = subjectItem && subjectItem.nextElementSibling) {
2964
+ if (subjectItem) {
2965
+ if (subjectItem.classList.contains("builder-accordion-detail")) {
2966
+ continue;
2967
+ }
2968
+ const subjectItemRect = subjectItem.getBoundingClientRect();
2969
+ if (subjectItemRect.left > prevItemRect.left) {
2970
+ const index = parseInt(subjectItem.getAttribute("data-index") || "", 10);
2971
+ if (!isNaN(index)) {
2972
+ prevItemRect = subjectItemRect;
2973
+ itemOrder = index;
2974
+ }
2975
+ } else {
2976
+ break;
2977
+ }
2978
+ }
2979
+ }
2980
+ }
2981
+ }
2982
+ if (typeof itemOrder === "number") {
2983
+ itemOrder = itemOrder + 1;
2984
+ }
2985
+ return itemOrder;
2986
+ });
2987
+ const accordionDetailStyles = createMemo(() => {
2988
+ const styles = {
2989
+ ...{
2990
+ order: typeof openGridItemOrder() === "number" ? openGridItemOrder() : void 0
2991
+ },
2992
+ ...props.grid && {
2993
+ width: "100%"
2994
+ }
2995
+ };
2996
+ return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== void 0));
2997
+ });
2998
+ function onClick(index) {
2999
+ if (open().includes(index)) {
3000
+ setOpen(onlyOneAtATime() ? [] : open().filter((item) => item !== index));
3001
+ } else {
3002
+ setOpen(onlyOneAtATime() ? [index] : open().concat(index));
3003
+ }
3004
+ }
3005
+ return (() => {
3006
+ const _el$ = _tmpl$9();
3007
+ insert(_el$, createComponent(For, {
3008
+ get each() {
3009
+ return props.items;
3010
+ },
3011
+ children: (item, _index) => {
3012
+ const index = _index();
3013
+ return [(() => {
3014
+ const _el$2 = _tmpl$24();
3015
+ _el$2.$$click = (event) => onClick(index);
3016
+ setAttribute(_el$2, "data-index", index);
3017
+ insert(_el$2, createComponent(blocks_default, {
3018
+ get blocks() {
3019
+ return item.title;
3020
+ },
3021
+ path: `items.${index}.title`,
3022
+ get parent() {
3023
+ return props.builderBlock.id;
3024
+ },
3025
+ get context() {
3026
+ return props.builderContext;
3027
+ },
3028
+ get registeredComponents() {
3029
+ return props.builderComponents;
3030
+ },
3031
+ get linkComponent() {
3032
+ return props.builderLinkComponent;
3033
+ }
3034
+ }));
3035
+ effect((_p$) => {
3036
+ const _v$ = getAccordionTitleClassName(index), _v$2 = {
3037
+ ...accordionTitleStyles(),
3038
+ width: props.grid ? props.gridRowWidth : void 0,
3039
+ ...{
3040
+ order: openGridItemOrder() !== null ? convertOrderNumberToString(index) : convertOrderNumberToString(index + 1)
3041
+ }
3042
+ };
3043
+ _v$ !== _p$._v$ && className(_el$2, _p$._v$ = _v$);
3044
+ _p$._v$2 = style(_el$2, _v$2, _p$._v$2);
3045
+ return _p$;
3046
+ }, {
3047
+ _v$: void 0,
3048
+ _v$2: void 0
3049
+ });
3050
+ return _el$2;
3051
+ })(), createComponent(Show, {
3052
+ get when() {
3053
+ return open().includes(index);
3054
+ },
3055
+ get children() {
3056
+ const _el$3 = _tmpl$24();
3057
+ insert(_el$3, createComponent(blocks_default, {
3058
+ get blocks() {
3059
+ return item.detail;
3060
+ },
3061
+ path: `items.${index}.detail`,
3062
+ get parent() {
3063
+ return props.builderBlock.id;
3064
+ },
3065
+ get context() {
3066
+ return props.builderContext;
3067
+ },
3068
+ get registeredComponents() {
3069
+ return props.builderComponents;
3070
+ },
3071
+ get linkComponent() {
3072
+ return props.builderLinkComponent;
3073
+ }
3074
+ }));
3075
+ effect((_p$) => {
3076
+ const _v$3 = getAccordionDetailClassName(index), _v$4 = accordionDetailStyles();
3077
+ _v$3 !== _p$._v$3 && className(_el$3, _p$._v$3 = _v$3);
3078
+ _p$._v$4 = style(_el$3, _v$4, _p$._v$4);
3079
+ return _p$;
3080
+ }, {
3081
+ _v$3: void 0,
3082
+ _v$4: void 0
3083
+ });
3084
+ return _el$3;
3085
+ }
3086
+ })];
3087
+ }
3088
+ }));
3089
+ effect((_$p) => style(_el$, accordionStyles(), _$p));
3090
+ return _el$;
3091
+ })();
3092
+ }
3093
+ var accordion_default = Accordion;
3094
+ delegateEvents(["click"]);
3095
+
3096
+ // src/blocks/accordion/component-info.ts
3097
+ var defaultTitle = {
3098
+ "@type": "@builder.io/sdk:Element",
3099
+ layerName: "Accordion item title",
3100
+ responsiveStyles: {
3101
+ large: {
3102
+ marginTop: "10px",
3103
+ position: "relative",
3104
+ display: "flex",
3105
+ alignItems: "stretch",
3106
+ flexDirection: "column",
3107
+ paddingBottom: "10px"
3108
+ }
3109
+ },
3110
+ children: [{
3111
+ "@type": "@builder.io/sdk:Element",
3112
+ responsiveStyles: {
3113
+ large: {
3114
+ textAlign: "left",
3115
+ display: "flex",
3116
+ flexDirection: "column"
3117
+ }
3118
+ },
3119
+ component: {
3120
+ name: "Text",
3121
+ options: {
3122
+ text: "I am an accordion title. Click me!"
3123
+ }
3124
+ }
3125
+ }]
3126
+ };
3127
+ var defaultDetail = {
3128
+ "@type": "@builder.io/sdk:Element",
3129
+ layerName: "Accordion item detail",
3130
+ responsiveStyles: {
3131
+ large: {
3132
+ position: "relative",
3133
+ display: "flex",
3134
+ alignItems: "stretch",
3135
+ flexDirection: "column",
3136
+ marginTop: "10px",
3137
+ paddingBottom: "10px"
3138
+ }
3139
+ },
3140
+ children: [{
3141
+ "@type": "@builder.io/sdk:Element",
3142
+ responsiveStyles: {
3143
+ large: {
3144
+ paddingTop: "50px",
3145
+ textAlign: "left",
3146
+ display: "flex",
3147
+ flexDirection: "column",
3148
+ paddingBottom: "50px"
3149
+ }
3150
+ },
3151
+ component: {
3152
+ name: "Text",
3153
+ options: {
3154
+ text: "I am an accordion detail, hello!"
3155
+ }
3156
+ }
3157
+ }]
3158
+ };
2911
3159
  var componentInfo10 = {
3160
+ name: "Builder:Accordion",
3161
+ canHaveChildren: true,
3162
+ image: "https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Ffab6c1fd3fe542408cbdec078bca7f35",
3163
+ defaultStyles: {
3164
+ display: "flex",
3165
+ flexDirection: "column",
3166
+ alignItems: "stretch"
3167
+ },
3168
+ inputs: [{
3169
+ name: "items",
3170
+ type: "list",
3171
+ broadcast: true,
3172
+ subFields: [{
3173
+ name: "title",
3174
+ type: "uiBlocks",
3175
+ hideFromUI: true,
3176
+ defaultValue: [defaultTitle]
3177
+ }, {
3178
+ name: "detail",
3179
+ type: "uiBlocks",
3180
+ hideFromUI: true,
3181
+ defaultValue: [defaultDetail]
3182
+ }],
3183
+ defaultValue: [{
3184
+ title: [defaultTitle],
3185
+ detail: [defaultDetail]
3186
+ }, {
3187
+ title: [defaultTitle],
3188
+ detail: [defaultDetail]
3189
+ }],
3190
+ showIf: (options) => !options.get("useChildrenForItems")
3191
+ }, {
3192
+ name: "oneAtATime",
3193
+ helperText: "Only allow opening one at a time (collapse all others when new item openned)",
3194
+ type: "boolean",
3195
+ defaultValue: false
3196
+ }, {
3197
+ name: "grid",
3198
+ helperText: "Display as a grid",
3199
+ type: "boolean",
3200
+ defaultValue: false
3201
+ }, {
3202
+ name: "gridRowWidth",
3203
+ helperText: "Display as a grid",
3204
+ type: "string",
3205
+ showIf: (options) => options.get("grid"),
3206
+ defaultValue: "25%"
3207
+ }, {
3208
+ name: "useChildrenForItems",
3209
+ type: "boolean",
3210
+ helperText: "Use child elements for each slide, instead of the array. Useful for dynamically repeating items",
3211
+ advanced: true,
3212
+ defaultValue: false,
3213
+ onChange: (options) => {
3214
+ if (options.get("useChildrenForItems") === true) {
3215
+ options.set("items", []);
3216
+ }
3217
+ }
3218
+ }]
3219
+ };
3220
+
3221
+ // src/blocks/custom-code/component-info.ts
3222
+ var componentInfo11 = {
2912
3223
  name: "Custom Code",
2913
3224
  static: true,
2914
3225
  requiredPermissions: ["editCode"],
@@ -2931,7 +3242,7 @@ var componentInfo10 = {
2931
3242
  advanced: true
2932
3243
  }]
2933
3244
  };
2934
- var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
3245
+ var _tmpl$10 = /* @__PURE__ */ template(`<div>`);
2935
3246
  function CustomCode(props) {
2936
3247
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
2937
3248
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -2966,7 +3277,7 @@ function CustomCode(props) {
2966
3277
  }
2967
3278
  });
2968
3279
  return (() => {
2969
- const _el$ = _tmpl$9();
3280
+ const _el$ = _tmpl$10();
2970
3281
  const _ref$ = elementRef;
2971
3282
  typeof _ref$ === "function" ? use(_ref$, _el$) : elementRef = _el$;
2972
3283
  effect((_p$) => {
@@ -2984,7 +3295,7 @@ function CustomCode(props) {
2984
3295
  var custom_code_default = CustomCode;
2985
3296
 
2986
3297
  // src/blocks/embed/component-info.ts
2987
- var componentInfo11 = {
3298
+ var componentInfo12 = {
2988
3299
  name: "Embed",
2989
3300
  static: true,
2990
3301
  inputs: [{
@@ -3026,7 +3337,7 @@ var SCRIPT_MIME_TYPES = ["text/javascript", "application/javascript", "applicati
3026
3337
  var isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);
3027
3338
 
3028
3339
  // src/blocks/embed/embed.tsx
3029
- var _tmpl$10 = /* @__PURE__ */ template(`<div class=builder-embed>`);
3340
+ var _tmpl$11 = /* @__PURE__ */ template(`<div class=builder-embed>`);
3030
3341
  function Embed(props) {
3031
3342
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
3032
3343
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -3064,7 +3375,7 @@ function Embed(props) {
3064
3375
  }
3065
3376
  createEffect(on(() => [onUpdateFn_0_elem(), onUpdateFn_0_ranInitFn__()], onUpdateFn_0));
3066
3377
  return (() => {
3067
- const _el$ = _tmpl$10();
3378
+ const _el$ = _tmpl$11();
3068
3379
  const _ref$ = elem;
3069
3380
  typeof _ref$ === "function" ? use(_ref$, _el$) : elem = _el$;
3070
3381
  effect(() => _el$.innerHTML = props.content);
@@ -3074,7 +3385,7 @@ function Embed(props) {
3074
3385
  var embed_default = Embed;
3075
3386
 
3076
3387
  // src/blocks/form/form/component-info.ts
3077
- var componentInfo12 = {
3388
+ var componentInfo13 = {
3078
3389
  name: "Form:Form",
3079
3390
  // editableTags: ['builder-form-error']
3080
3391
  defaults: {
@@ -3321,8 +3632,8 @@ var get = (obj, path, defaultValue) => {
3321
3632
  };
3322
3633
 
3323
3634
  // src/blocks/form/form/form.tsx
3324
- var _tmpl$11 = /* @__PURE__ */ template(`<pre>`);
3325
- var _tmpl$24 = /* @__PURE__ */ template(`<form>`);
3635
+ var _tmpl$12 = /* @__PURE__ */ template(`<pre>`);
3636
+ var _tmpl$25 = /* @__PURE__ */ template(`<form>`);
3326
3637
  function FormComponent(props) {
3327
3638
  const [formState, setFormState] = createSignal("unsubmitted");
3328
3639
  const [responseData, setResponseData] = createSignal(null);
@@ -3508,7 +3819,7 @@ function FormComponent(props) {
3508
3819
  }
3509
3820
  let formRef;
3510
3821
  return (() => {
3511
- const _el$ = _tmpl$24();
3822
+ const _el$ = _tmpl$25();
3512
3823
  _el$.addEventListener("submit", (event) => onSubmit(event));
3513
3824
  const _ref$ = formRef;
3514
3825
  typeof _ref$ === "function" ? use(_ref$, _el$) : formRef = _el$;
@@ -3591,7 +3902,7 @@ function FormComponent(props) {
3591
3902
  return memo(() => submissionState() === "error")() && responseData();
3592
3903
  },
3593
3904
  get children() {
3594
- const _el$2 = _tmpl$11();
3905
+ const _el$2 = _tmpl$12();
3595
3906
  insert(_el$2, () => JSON.stringify(responseData(), null, 2));
3596
3907
  effect(() => className(_el$2, "builder-form-error-text " + css({
3597
3908
  padding: "10px",
@@ -3623,7 +3934,7 @@ function FormComponent(props) {
3623
3934
  var form_default = FormComponent;
3624
3935
 
3625
3936
  // src/blocks/form/input/component-info.ts
3626
- var componentInfo13 = {
3937
+ var componentInfo14 = {
3627
3938
  name: "Form:Input",
3628
3939
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
3629
3940
  inputs: [
@@ -3675,10 +3986,10 @@ var componentInfo13 = {
3675
3986
  borderColor: "#ccc"
3676
3987
  }
3677
3988
  };
3678
- var _tmpl$12 = /* @__PURE__ */ template(`<input>`);
3989
+ var _tmpl$13 = /* @__PURE__ */ template(`<input>`);
3679
3990
  function FormInputComponent(props) {
3680
3991
  return (() => {
3681
- const _el$ = _tmpl$12();
3992
+ const _el$ = _tmpl$13();
3682
3993
  spread(_el$, mergeProps({}, () => props.attributes, {
3683
3994
  get key() {
3684
3995
  return isEditing() && props.defaultValue ? props.defaultValue : "default-key";
@@ -3708,7 +4019,7 @@ function FormInputComponent(props) {
3708
4019
  var input_default = FormInputComponent;
3709
4020
 
3710
4021
  // src/blocks/form/select/component-info.ts
3711
- var componentInfo14 = {
4022
+ var componentInfo15 = {
3712
4023
  name: "Form:Select",
3713
4024
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
3714
4025
  defaultStyles: {
@@ -3751,11 +4062,11 @@ var componentInfo14 = {
3751
4062
  static: true,
3752
4063
  noWrap: true
3753
4064
  };
3754
- var _tmpl$13 = /* @__PURE__ */ template(`<select>`);
3755
- var _tmpl$25 = /* @__PURE__ */ template(`<option>`);
4065
+ var _tmpl$14 = /* @__PURE__ */ template(`<select>`);
4066
+ var _tmpl$26 = /* @__PURE__ */ template(`<option>`);
3756
4067
  function SelectComponent(props) {
3757
4068
  return (() => {
3758
- const _el$ = _tmpl$13();
4069
+ const _el$ = _tmpl$14();
3759
4070
  spread(_el$, mergeProps({}, () => props.attributes, {
3760
4071
  get value() {
3761
4072
  return props.value;
@@ -3777,7 +4088,7 @@ function SelectComponent(props) {
3777
4088
  children: (option, _index) => {
3778
4089
  const index = _index();
3779
4090
  return (() => {
3780
- const _el$2 = _tmpl$25();
4091
+ const _el$2 = _tmpl$26();
3781
4092
  insert(_el$2, () => option.name || option.value);
3782
4093
  effect(() => setAttribute(_el$2, "key", `${option.name}-${index}`));
3783
4094
  effect(() => _el$2.value = option.value);
@@ -3791,7 +4102,7 @@ function SelectComponent(props) {
3791
4102
  var select_default = SelectComponent;
3792
4103
 
3793
4104
  // src/blocks/form/submit-button/component-info.ts
3794
- var componentInfo15 = {
4105
+ var componentInfo16 = {
3795
4106
  name: "Form:SubmitButton",
3796
4107
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
3797
4108
  defaultStyles: {
@@ -3817,10 +4128,10 @@ var componentInfo15 = {
3817
4128
  // TODO: defaultChildren
3818
4129
  // canHaveChildren: true,
3819
4130
  };
3820
- var _tmpl$14 = /* @__PURE__ */ template(`<button type=submit>`);
4131
+ var _tmpl$15 = /* @__PURE__ */ template(`<button type=submit>`);
3821
4132
  function SubmitButton(props) {
3822
4133
  return (() => {
3823
- const _el$ = _tmpl$14();
4134
+ const _el$ = _tmpl$15();
3824
4135
  spread(_el$, mergeProps({}, () => props.attributes), false, true);
3825
4136
  insert(_el$, () => props.text);
3826
4137
  return _el$;
@@ -3829,7 +4140,7 @@ function SubmitButton(props) {
3829
4140
  var submit_button_default = SubmitButton;
3830
4141
 
3831
4142
  // src/blocks/img/component-info.ts
3832
- var componentInfo16 = {
4143
+ var componentInfo17 = {
3833
4144
  // friendlyName?
3834
4145
  name: "Raw:Img",
3835
4146
  hideFromInsertMenu: true,
@@ -3844,10 +4155,10 @@ var componentInfo16 = {
3844
4155
  noWrap: true,
3845
4156
  static: true
3846
4157
  };
3847
- var _tmpl$15 = /* @__PURE__ */ template(`<img>`);
4158
+ var _tmpl$16 = /* @__PURE__ */ template(`<img>`);
3848
4159
  function ImgComponent(props) {
3849
4160
  return (() => {
3850
- const _el$ = _tmpl$15();
4161
+ const _el$ = _tmpl$16();
3851
4162
  spread(_el$, mergeProps({
3852
4163
  get style() {
3853
4164
  return {
@@ -3871,7 +4182,7 @@ function ImgComponent(props) {
3871
4182
  var img_default = ImgComponent;
3872
4183
 
3873
4184
  // src/blocks/video/component-info.ts
3874
- var componentInfo17 = {
4185
+ var componentInfo18 = {
3875
4186
  name: "Video",
3876
4187
  canHaveChildren: true,
3877
4188
  defaultStyles: {
@@ -3953,8 +4264,8 @@ var componentInfo17 = {
3953
4264
  advanced: true
3954
4265
  }]
3955
4266
  };
3956
- var _tmpl$16 = /* @__PURE__ */ template(`<source type=video/mp4>`);
3957
- var _tmpl$26 = /* @__PURE__ */ template(`<div>`);
4267
+ var _tmpl$17 = /* @__PURE__ */ template(`<source type=video/mp4>`);
4268
+ var _tmpl$27 = /* @__PURE__ */ template(`<div>`);
3958
4269
  var _tmpl$34 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
3959
4270
  function Video(props) {
3960
4271
  const videoProps = createMemo(() => {
@@ -4016,7 +4327,7 @@ function Video(props) {
4016
4327
  return !props.lazyLoad;
4017
4328
  },
4018
4329
  get children() {
4019
- const _el$3 = _tmpl$16();
4330
+ const _el$3 = _tmpl$17();
4020
4331
  effect(() => setAttribute(_el$3, "src", props.video));
4021
4332
  return _el$3;
4022
4333
  }
@@ -4026,7 +4337,7 @@ function Video(props) {
4026
4337
  return props.aspectRatio && !(props.fitContent && props.builderBlock?.children?.length);
4027
4338
  },
4028
4339
  get children() {
4029
- const _el$4 = _tmpl$26();
4340
+ const _el$4 = _tmpl$27();
4030
4341
  _el$4.style.setProperty("width", "100%");
4031
4342
  _el$4.style.setProperty("pointer-events", "none");
4032
4343
  _el$4.style.setProperty("font-size", "0px");
@@ -4039,7 +4350,7 @@ function Video(props) {
4039
4350
  return props.builderBlock?.children?.length && props.fitContent;
4040
4351
  },
4041
4352
  get children() {
4042
- const _el$5 = _tmpl$26();
4353
+ const _el$5 = _tmpl$27();
4043
4354
  _el$5.style.setProperty("display", "flex");
4044
4355
  _el$5.style.setProperty("flex-direction", "column");
4045
4356
  _el$5.style.setProperty("align-items", "stretch");
@@ -4052,7 +4363,7 @@ function Video(props) {
4052
4363
  return props.builderBlock?.children?.length && !props.fitContent;
4053
4364
  },
4054
4365
  get children() {
4055
- const _el$6 = _tmpl$26();
4366
+ const _el$6 = _tmpl$27();
4056
4367
  _el$6.style.setProperty("pointer-events", "none");
4057
4368
  _el$6.style.setProperty("display", "flex");
4058
4369
  _el$6.style.setProperty("flex-direction", "column");
@@ -4074,28 +4385,28 @@ var video_default = Video;
4074
4385
  // src/constants/extra-components.ts
4075
4386
  var getExtraComponents = () => [{
4076
4387
  component: custom_code_default,
4077
- ...componentInfo10
4388
+ ...componentInfo11
4078
4389
  }, {
4079
4390
  component: embed_default,
4080
- ...componentInfo11
4391
+ ...componentInfo12
4081
4392
  }, ...TARGET === "rsc" ? [] : [{
4082
4393
  component: form_default,
4083
- ...componentInfo12
4394
+ ...componentInfo13
4084
4395
  }, {
4085
4396
  component: input_default,
4086
- ...componentInfo13
4397
+ ...componentInfo14
4087
4398
  }, {
4088
4399
  component: submit_button_default,
4089
- ...componentInfo15
4400
+ ...componentInfo16
4090
4401
  }, {
4091
4402
  component: select_default,
4092
- ...componentInfo14
4403
+ ...componentInfo15
4093
4404
  }], {
4094
4405
  component: img_default,
4095
- ...componentInfo16
4406
+ ...componentInfo17
4096
4407
  }, {
4097
4408
  component: video_default,
4098
- ...componentInfo17
4409
+ ...componentInfo18
4099
4410
  }];
4100
4411
 
4101
4412
  // src/constants/builder-registered-components.ts
@@ -4126,6 +4437,9 @@ var getDefaultRegisteredComponents = () => [{
4126
4437
  }, ...TARGET === "rsc" ? [] : [{
4127
4438
  component: tabs_default,
4128
4439
  ...componentInfo8
4440
+ }, {
4441
+ component: accordion_default,
4442
+ ...componentInfo10
4129
4443
  }], ...getExtraComponents()];
4130
4444
 
4131
4445
  // src/functions/register-component.ts
@@ -4195,10 +4509,10 @@ var getUpdateVariantVisibilityScript = ({
4195
4509
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
4196
4510
  "${variationId}", "${contentId}", ${isHydrationTarget}
4197
4511
  )`;
4198
- var _tmpl$17 = /* @__PURE__ */ template(`<script>`);
4512
+ var _tmpl$18 = /* @__PURE__ */ template(`<script>`);
4199
4513
  function InlinedScript(props) {
4200
4514
  return (() => {
4201
- const _el$ = _tmpl$17();
4515
+ const _el$ = _tmpl$18();
4202
4516
  effect((_p$) => {
4203
4517
  const _v$ = props.scriptStr, _v$2 = props.id;
4204
4518
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -4709,7 +5023,7 @@ function isFromTrustedHost(trustedHosts, e) {
4709
5023
  }
4710
5024
 
4711
5025
  // src/constants/sdk-version.ts
4712
- var SDK_VERSION = "1.0.27";
5026
+ var SDK_VERSION = "1.0.28";
4713
5027
 
4714
5028
  // src/functions/register.ts
4715
5029
  var registry = {};
@@ -5193,7 +5507,7 @@ function EnableEditor(props) {
5193
5507
  });
5194
5508
  onMount(() => {
5195
5509
  if (!props.apiKey) {
5196
- logger.error("No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
5510
+ logger.error("No API key provided to `Content` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
5197
5511
  }
5198
5512
  evaluateJsCode();
5199
5513
  runHttpRequests();
@@ -5695,7 +6009,7 @@ var fetchSymbolContent = async ({
5695
6009
  };
5696
6010
 
5697
6011
  // src/blocks/symbol/symbol.tsx
5698
- var _tmpl$18 = /* @__PURE__ */ template(`<div>`);
6012
+ var _tmpl$19 = /* @__PURE__ */ template(`<div>`);
5699
6013
  function Symbol(props) {
5700
6014
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
5701
6015
  const blocksWrapper = createMemo(() => {
@@ -5727,7 +6041,7 @@ function Symbol(props) {
5727
6041
  }
5728
6042
  createEffect(on(() => [onUpdateFn_0_props_symbol()], onUpdateFn_0));
5729
6043
  return (() => {
5730
- const _el$ = _tmpl$18();
6044
+ const _el$ = _tmpl$19();
5731
6045
  spread(_el$, mergeProps({
5732
6046
  get ["class"]() {
5733
6047
  return className();