@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.
package/lib/node/index.js CHANGED
@@ -636,6 +636,9 @@ function getProcessedBlock({
636
636
  }
637
637
  }
638
638
 
639
+ // src/functions/camel-to-kebab-case.ts
640
+ var camelToKebabCase = (str) => str ? str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase() : "";
641
+
639
642
  // src/components/block/animator.ts
640
643
  function throttle(func, wait, options = {}) {
641
644
  let context;
@@ -686,7 +689,6 @@ function assign(target, ..._args) {
686
689
  }
687
690
  return to;
688
691
  }
689
- var camelCaseToKebabCase = (str) => str ? str.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`) : "";
690
692
  function bindAnimations(animations) {
691
693
  for (const animation of animations) {
692
694
  switch (animation.trigger) {
@@ -738,7 +740,7 @@ function triggerAnimation(animation) {
738
740
  element.style.transitionDelay = "0";
739
741
  assign(element.style, animation.steps[0].styles);
740
742
  setTimeout(() => {
741
- element.style.transition = `all ${animation.duration}s ${camelCaseToKebabCase(animation.easing)}`;
743
+ element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;
742
744
  if (animation.delay) {
743
745
  element.style.transitionDelay = animation.delay + "s";
744
746
  }
@@ -798,7 +800,7 @@ function bindScrollInViewAnimation(animation) {
798
800
  }
799
801
  attachDefaultState();
800
802
  setTimeout(() => {
801
- element.style.transition = `all ${animation.duration}s ${camelCaseToKebabCase(animation.easing)}`;
803
+ element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;
802
804
  if (animation.delay) {
803
805
  element.style.transitionDelay = animation.delay + "s";
804
806
  }
@@ -811,9 +813,6 @@ function bindScrollInViewAnimation(animation) {
811
813
  });
812
814
  }
813
815
 
814
- // src/functions/camel-to-kebab-case.ts
815
- var camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
816
-
817
816
  // src/helpers/css.ts
818
817
  var convertStyleMapToCSSArray = (style) => {
819
818
  const cssProps = Object.entries(style).map(([key, value]) => {
@@ -940,10 +939,10 @@ var getRepeatItemData = ({
940
939
  return repeatArray;
941
940
  };
942
941
  var shouldPassLinkComponent = (block) => {
943
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs"].includes(block.name));
942
+ return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
944
943
  };
945
944
  var shouldPassRegisteredComponents = (block) => {
946
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs"].includes(block.name));
945
+ return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
947
946
  };
948
947
 
949
948
  // src/constants/device-sizes.ts
@@ -1072,7 +1071,7 @@ function BlockStyles(props) {
1072
1071
  className: `${className}:hover`,
1073
1072
  styles: {
1074
1073
  ...hoverStyles,
1075
- transition: `all ${hoverAnimation.duration}s ${camelCaseToKebabCase(hoverAnimation.easing)}`,
1074
+ transition: `all ${hoverAnimation.duration}s ${camelToKebabCase(hoverAnimation.easing)}`,
1076
1075
  transitionDelay: hoverAnimation.delay ? `${hoverAnimation.delay}s` : "0s"
1077
1076
  }
1078
1077
  }) || "";
@@ -2932,8 +2931,12 @@ function Tabs(props) {
2932
2931
  function activeTabContent(active) {
2933
2932
  return props.tabs && props.tabs[active].content;
2934
2933
  }
2935
- function getActiveTabStyle(index) {
2936
- return activeTab() === index ? props.activeTabStyle : {};
2934
+ function onClick(index) {
2935
+ if (index === activeTab() && props.collapsible) {
2936
+ setActiveTab(-1);
2937
+ } else {
2938
+ setActiveTab(index);
2939
+ }
2937
2940
  }
2938
2941
  return (() => {
2939
2942
  const _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
@@ -2948,13 +2951,7 @@ function Tabs(props) {
2948
2951
  const index = _index();
2949
2952
  return (() => {
2950
2953
  const _el$4 = _tmpl$33();
2951
- _el$4.$$click = (event) => {
2952
- if (index === activeTab() && props.collapsible) {
2953
- setActiveTab(-1);
2954
- } else {
2955
- setActiveTab(index);
2956
- }
2957
- };
2954
+ _el$4.$$click = (event) => onClick(index);
2958
2955
  setAttribute(_el$4, "key", index);
2959
2956
  insert(_el$4, createComponent(blocks_default, {
2960
2957
  get parent() {
@@ -2975,7 +2972,9 @@ function Tabs(props) {
2975
2972
  }
2976
2973
  }));
2977
2974
  effect((_p$) => {
2978
- const _v$ = `builder-tab-wrap ${activeTab() === index ? "builder-tab-active" : ""}`, _v$2 = getActiveTabStyle(index);
2975
+ const _v$ = `builder-tab-wrap ${activeTab() === index ? "builder-tab-active" : ""}`, _v$2 = {
2976
+ ...activeTab() === index ? props.activeTabStyle : {}
2977
+ };
2979
2978
  _v$ !== _p$._v$ && className(_el$4, _p$._v$ = _v$);
2980
2979
  _p$._v$2 = style(_el$4, _v$2, _p$._v$2);
2981
2980
  return _p$;
@@ -3054,8 +3053,320 @@ function Text(props) {
3054
3053
  }
3055
3054
  var text_default = Text;
3056
3055
 
3057
- // src/blocks/custom-code/component-info.ts
3056
+ // src/blocks/accordion/helpers.ts
3057
+ var convertOrderNumberToString = (order) => {
3058
+ return order.toString();
3059
+ };
3060
+
3061
+ // src/blocks/accordion/accordion.tsx
3062
+ var _tmpl$9 = /* @__PURE__ */ template(`<div class=builder-accordion>`);
3063
+ var _tmpl$24 = /* @__PURE__ */ template(`<div>`);
3064
+ function Accordion(props) {
3065
+ const [open, setOpen] = createSignal([]);
3066
+ const onlyOneAtATime = createMemo(() => {
3067
+ return Boolean(props.grid || props.oneAtATime);
3068
+ });
3069
+ const accordionStyles = createMemo(() => {
3070
+ const styles = {
3071
+ display: "flex",
3072
+ alignItems: "stretch",
3073
+ flexDirection: "column",
3074
+ ...props.grid && {
3075
+ flexDirection: "row",
3076
+ alignItems: "flex-start",
3077
+ flexWrap: "wrap"
3078
+ }
3079
+ };
3080
+ return Object.fromEntries(Object.entries(styles).map(([key, value]) => [camelToKebabCase(key), value]));
3081
+ });
3082
+ const accordionTitleStyles = createMemo(() => {
3083
+ const shared = {
3084
+ display: "flex",
3085
+ flexDirection: "column"
3086
+ };
3087
+ const styles = Object.fromEntries(Object.entries({
3088
+ ...shared,
3089
+ alignItems: "stretch",
3090
+ cursor: "pointer"
3091
+ }).map(([key, value]) => [camelToKebabCase(key), value]));
3092
+ return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== void 0));
3093
+ });
3094
+ function getAccordionTitleClassName(index) {
3095
+ return `builder-accordion-title builder-accordion-title-${open().includes(index) ? "open" : "closed"}`;
3096
+ }
3097
+ function getAccordionDetailClassName(index) {
3098
+ return `builder-accordion-detail builder-accordion-detail-${open().includes(index) ? "open" : "closed"}`;
3099
+ }
3100
+ const openGridItemOrder = createMemo(() => {
3101
+ let itemOrder = null;
3102
+ const getOpenGridItemPosition = props.grid && open().length;
3103
+ if (getOpenGridItemPosition && document) {
3104
+ const openItemIndex = open()[0];
3105
+ const openItem = document.querySelector(`.builder-accordion-title[data-index="${openItemIndex}"]`);
3106
+ let subjectItem = openItem;
3107
+ itemOrder = openItemIndex;
3108
+ if (subjectItem) {
3109
+ let prevItemRect = subjectItem.getBoundingClientRect();
3110
+ while (subjectItem = subjectItem && subjectItem.nextElementSibling) {
3111
+ if (subjectItem) {
3112
+ if (subjectItem.classList.contains("builder-accordion-detail")) {
3113
+ continue;
3114
+ }
3115
+ const subjectItemRect = subjectItem.getBoundingClientRect();
3116
+ if (subjectItemRect.left > prevItemRect.left) {
3117
+ const index = parseInt(subjectItem.getAttribute("data-index") || "", 10);
3118
+ if (!isNaN(index)) {
3119
+ prevItemRect = subjectItemRect;
3120
+ itemOrder = index;
3121
+ }
3122
+ } else {
3123
+ break;
3124
+ }
3125
+ }
3126
+ }
3127
+ }
3128
+ }
3129
+ if (typeof itemOrder === "number") {
3130
+ itemOrder = itemOrder + 1;
3131
+ }
3132
+ return itemOrder;
3133
+ });
3134
+ const accordionDetailStyles = createMemo(() => {
3135
+ const styles = {
3136
+ ...{
3137
+ order: typeof openGridItemOrder() === "number" ? openGridItemOrder() : void 0
3138
+ },
3139
+ ...props.grid && {
3140
+ width: "100%"
3141
+ }
3142
+ };
3143
+ return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== void 0));
3144
+ });
3145
+ function onClick(index) {
3146
+ if (open().includes(index)) {
3147
+ setOpen(onlyOneAtATime() ? [] : open().filter((item) => item !== index));
3148
+ } else {
3149
+ setOpen(onlyOneAtATime() ? [index] : open().concat(index));
3150
+ }
3151
+ }
3152
+ return (() => {
3153
+ const _el$ = _tmpl$9();
3154
+ insert(_el$, createComponent(For, {
3155
+ get each() {
3156
+ return props.items;
3157
+ },
3158
+ children: (item, _index) => {
3159
+ const index = _index();
3160
+ return [(() => {
3161
+ const _el$2 = _tmpl$24();
3162
+ _el$2.$$click = (event) => onClick(index);
3163
+ setAttribute(_el$2, "data-index", index);
3164
+ insert(_el$2, createComponent(blocks_default, {
3165
+ get blocks() {
3166
+ return item.title;
3167
+ },
3168
+ path: `items.${index}.title`,
3169
+ get parent() {
3170
+ return props.builderBlock.id;
3171
+ },
3172
+ get context() {
3173
+ return props.builderContext;
3174
+ },
3175
+ get registeredComponents() {
3176
+ return props.builderComponents;
3177
+ },
3178
+ get linkComponent() {
3179
+ return props.builderLinkComponent;
3180
+ }
3181
+ }));
3182
+ effect((_p$) => {
3183
+ const _v$ = getAccordionTitleClassName(index), _v$2 = {
3184
+ ...accordionTitleStyles(),
3185
+ width: props.grid ? props.gridRowWidth : void 0,
3186
+ ...{
3187
+ order: openGridItemOrder() !== null ? convertOrderNumberToString(index) : convertOrderNumberToString(index + 1)
3188
+ }
3189
+ };
3190
+ _v$ !== _p$._v$ && className(_el$2, _p$._v$ = _v$);
3191
+ _p$._v$2 = style(_el$2, _v$2, _p$._v$2);
3192
+ return _p$;
3193
+ }, {
3194
+ _v$: void 0,
3195
+ _v$2: void 0
3196
+ });
3197
+ return _el$2;
3198
+ })(), createComponent(Show, {
3199
+ get when() {
3200
+ return open().includes(index);
3201
+ },
3202
+ get children() {
3203
+ const _el$3 = _tmpl$24();
3204
+ insert(_el$3, createComponent(blocks_default, {
3205
+ get blocks() {
3206
+ return item.detail;
3207
+ },
3208
+ path: `items.${index}.detail`,
3209
+ get parent() {
3210
+ return props.builderBlock.id;
3211
+ },
3212
+ get context() {
3213
+ return props.builderContext;
3214
+ },
3215
+ get registeredComponents() {
3216
+ return props.builderComponents;
3217
+ },
3218
+ get linkComponent() {
3219
+ return props.builderLinkComponent;
3220
+ }
3221
+ }));
3222
+ effect((_p$) => {
3223
+ const _v$3 = getAccordionDetailClassName(index), _v$4 = accordionDetailStyles();
3224
+ _v$3 !== _p$._v$3 && className(_el$3, _p$._v$3 = _v$3);
3225
+ _p$._v$4 = style(_el$3, _v$4, _p$._v$4);
3226
+ return _p$;
3227
+ }, {
3228
+ _v$3: void 0,
3229
+ _v$4: void 0
3230
+ });
3231
+ return _el$3;
3232
+ }
3233
+ })];
3234
+ }
3235
+ }));
3236
+ effect((_$p) => style(_el$, accordionStyles(), _$p));
3237
+ return _el$;
3238
+ })();
3239
+ }
3240
+ var accordion_default = Accordion;
3241
+ delegateEvents(["click"]);
3242
+
3243
+ // src/blocks/accordion/component-info.ts
3244
+ var defaultTitle = {
3245
+ "@type": "@builder.io/sdk:Element",
3246
+ layerName: "Accordion item title",
3247
+ responsiveStyles: {
3248
+ large: {
3249
+ marginTop: "10px",
3250
+ position: "relative",
3251
+ display: "flex",
3252
+ alignItems: "stretch",
3253
+ flexDirection: "column",
3254
+ paddingBottom: "10px"
3255
+ }
3256
+ },
3257
+ children: [{
3258
+ "@type": "@builder.io/sdk:Element",
3259
+ responsiveStyles: {
3260
+ large: {
3261
+ textAlign: "left",
3262
+ display: "flex",
3263
+ flexDirection: "column"
3264
+ }
3265
+ },
3266
+ component: {
3267
+ name: "Text",
3268
+ options: {
3269
+ text: "I am an accordion title. Click me!"
3270
+ }
3271
+ }
3272
+ }]
3273
+ };
3274
+ var defaultDetail = {
3275
+ "@type": "@builder.io/sdk:Element",
3276
+ layerName: "Accordion item detail",
3277
+ responsiveStyles: {
3278
+ large: {
3279
+ position: "relative",
3280
+ display: "flex",
3281
+ alignItems: "stretch",
3282
+ flexDirection: "column",
3283
+ marginTop: "10px",
3284
+ paddingBottom: "10px"
3285
+ }
3286
+ },
3287
+ children: [{
3288
+ "@type": "@builder.io/sdk:Element",
3289
+ responsiveStyles: {
3290
+ large: {
3291
+ paddingTop: "50px",
3292
+ textAlign: "left",
3293
+ display: "flex",
3294
+ flexDirection: "column",
3295
+ paddingBottom: "50px"
3296
+ }
3297
+ },
3298
+ component: {
3299
+ name: "Text",
3300
+ options: {
3301
+ text: "I am an accordion detail, hello!"
3302
+ }
3303
+ }
3304
+ }]
3305
+ };
3058
3306
  var componentInfo10 = {
3307
+ name: "Builder:Accordion",
3308
+ canHaveChildren: true,
3309
+ image: "https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Ffab6c1fd3fe542408cbdec078bca7f35",
3310
+ defaultStyles: {
3311
+ display: "flex",
3312
+ flexDirection: "column",
3313
+ alignItems: "stretch"
3314
+ },
3315
+ inputs: [{
3316
+ name: "items",
3317
+ type: "list",
3318
+ broadcast: true,
3319
+ subFields: [{
3320
+ name: "title",
3321
+ type: "uiBlocks",
3322
+ hideFromUI: true,
3323
+ defaultValue: [defaultTitle]
3324
+ }, {
3325
+ name: "detail",
3326
+ type: "uiBlocks",
3327
+ hideFromUI: true,
3328
+ defaultValue: [defaultDetail]
3329
+ }],
3330
+ defaultValue: [{
3331
+ title: [defaultTitle],
3332
+ detail: [defaultDetail]
3333
+ }, {
3334
+ title: [defaultTitle],
3335
+ detail: [defaultDetail]
3336
+ }],
3337
+ showIf: (options) => !options.get("useChildrenForItems")
3338
+ }, {
3339
+ name: "oneAtATime",
3340
+ helperText: "Only allow opening one at a time (collapse all others when new item openned)",
3341
+ type: "boolean",
3342
+ defaultValue: false
3343
+ }, {
3344
+ name: "grid",
3345
+ helperText: "Display as a grid",
3346
+ type: "boolean",
3347
+ defaultValue: false
3348
+ }, {
3349
+ name: "gridRowWidth",
3350
+ helperText: "Display as a grid",
3351
+ type: "string",
3352
+ showIf: (options) => options.get("grid"),
3353
+ defaultValue: "25%"
3354
+ }, {
3355
+ name: "useChildrenForItems",
3356
+ type: "boolean",
3357
+ helperText: "Use child elements for each slide, instead of the array. Useful for dynamically repeating items",
3358
+ advanced: true,
3359
+ defaultValue: false,
3360
+ onChange: (options) => {
3361
+ if (options.get("useChildrenForItems") === true) {
3362
+ options.set("items", []);
3363
+ }
3364
+ }
3365
+ }]
3366
+ };
3367
+
3368
+ // src/blocks/custom-code/component-info.ts
3369
+ var componentInfo11 = {
3059
3370
  name: "Custom Code",
3060
3371
  static: true,
3061
3372
  requiredPermissions: ["editCode"],
@@ -3078,7 +3389,7 @@ var componentInfo10 = {
3078
3389
  advanced: true
3079
3390
  }]
3080
3391
  };
3081
- var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
3392
+ var _tmpl$10 = /* @__PURE__ */ template(`<div>`);
3082
3393
  function CustomCode(props) {
3083
3394
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
3084
3395
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -3112,7 +3423,7 @@ function CustomCode(props) {
3112
3423
  }
3113
3424
  });
3114
3425
  return (() => {
3115
- const _el$ = _tmpl$9();
3426
+ const _el$ = _tmpl$10();
3116
3427
  const _ref$ = elementRef;
3117
3428
  typeof _ref$ === "function" ? use(_ref$, _el$) : elementRef = _el$;
3118
3429
  effect((_p$) => {
@@ -3130,7 +3441,7 @@ function CustomCode(props) {
3130
3441
  var custom_code_default = CustomCode;
3131
3442
 
3132
3443
  // src/blocks/embed/component-info.ts
3133
- var componentInfo11 = {
3444
+ var componentInfo12 = {
3134
3445
  name: "Embed",
3135
3446
  static: true,
3136
3447
  inputs: [{
@@ -3172,7 +3483,7 @@ var SCRIPT_MIME_TYPES = ["text/javascript", "application/javascript", "applicati
3172
3483
  var isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);
3173
3484
 
3174
3485
  // src/blocks/embed/embed.tsx
3175
- var _tmpl$10 = /* @__PURE__ */ template(`<div class=builder-embed>`);
3486
+ var _tmpl$11 = /* @__PURE__ */ template(`<div class=builder-embed>`);
3176
3487
  function Embed(props) {
3177
3488
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
3178
3489
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -3209,7 +3520,7 @@ function Embed(props) {
3209
3520
  }
3210
3521
  createEffect(on(() => [onUpdateFn_0_elem(), onUpdateFn_0_ranInitFn__()], onUpdateFn_0));
3211
3522
  return (() => {
3212
- const _el$ = _tmpl$10();
3523
+ const _el$ = _tmpl$11();
3213
3524
  const _ref$ = elem;
3214
3525
  typeof _ref$ === "function" ? use(_ref$, _el$) : elem = _el$;
3215
3526
  effect(() => _el$.innerHTML = props.content);
@@ -3219,7 +3530,7 @@ function Embed(props) {
3219
3530
  var embed_default = Embed;
3220
3531
 
3221
3532
  // src/blocks/form/form/component-info.ts
3222
- var componentInfo12 = {
3533
+ var componentInfo13 = {
3223
3534
  name: "Form:Form",
3224
3535
  // editableTags: ['builder-form-error']
3225
3536
  defaults: {
@@ -3466,8 +3777,8 @@ var get = (obj, path, defaultValue) => {
3466
3777
  };
3467
3778
 
3468
3779
  // src/blocks/form/form/form.tsx
3469
- var _tmpl$11 = /* @__PURE__ */ template(`<pre>`);
3470
- var _tmpl$24 = /* @__PURE__ */ template(`<form>`);
3780
+ var _tmpl$12 = /* @__PURE__ */ template(`<pre>`);
3781
+ var _tmpl$25 = /* @__PURE__ */ template(`<form>`);
3471
3782
  function FormComponent(props) {
3472
3783
  const [formState, setFormState] = createSignal("unsubmitted");
3473
3784
  const [responseData, setResponseData] = createSignal(null);
@@ -3653,7 +3964,7 @@ function FormComponent(props) {
3653
3964
  }
3654
3965
  let formRef;
3655
3966
  return (() => {
3656
- const _el$ = _tmpl$24();
3967
+ const _el$ = _tmpl$25();
3657
3968
  _el$.addEventListener("submit", (event) => onSubmit(event));
3658
3969
  const _ref$ = formRef;
3659
3970
  typeof _ref$ === "function" ? use(_ref$, _el$) : formRef = _el$;
@@ -3736,7 +4047,7 @@ function FormComponent(props) {
3736
4047
  return memo(() => submissionState() === "error")() && responseData();
3737
4048
  },
3738
4049
  get children() {
3739
- const _el$2 = _tmpl$11();
4050
+ const _el$2 = _tmpl$12();
3740
4051
  insert(_el$2, () => JSON.stringify(responseData(), null, 2));
3741
4052
  effect(() => className(_el$2, "builder-form-error-text " + css({
3742
4053
  padding: "10px",
@@ -3768,7 +4079,7 @@ function FormComponent(props) {
3768
4079
  var form_default = FormComponent;
3769
4080
 
3770
4081
  // src/blocks/form/input/component-info.ts
3771
- var componentInfo13 = {
4082
+ var componentInfo14 = {
3772
4083
  name: "Form:Input",
3773
4084
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
3774
4085
  inputs: [
@@ -3820,10 +4131,10 @@ var componentInfo13 = {
3820
4131
  borderColor: "#ccc"
3821
4132
  }
3822
4133
  };
3823
- var _tmpl$12 = /* @__PURE__ */ template(`<input>`);
4134
+ var _tmpl$13 = /* @__PURE__ */ template(`<input>`);
3824
4135
  function FormInputComponent(props) {
3825
4136
  return (() => {
3826
- const _el$ = _tmpl$12();
4137
+ const _el$ = _tmpl$13();
3827
4138
  spread(_el$, mergeProps({}, () => props.attributes, {
3828
4139
  get key() {
3829
4140
  return isEditing() && props.defaultValue ? props.defaultValue : "default-key";
@@ -3853,7 +4164,7 @@ function FormInputComponent(props) {
3853
4164
  var input_default = FormInputComponent;
3854
4165
 
3855
4166
  // src/blocks/form/select/component-info.ts
3856
- var componentInfo14 = {
4167
+ var componentInfo15 = {
3857
4168
  name: "Form:Select",
3858
4169
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
3859
4170
  defaultStyles: {
@@ -3896,11 +4207,11 @@ var componentInfo14 = {
3896
4207
  static: true,
3897
4208
  noWrap: true
3898
4209
  };
3899
- var _tmpl$13 = /* @__PURE__ */ template(`<select>`);
3900
- var _tmpl$25 = /* @__PURE__ */ template(`<option>`);
4210
+ var _tmpl$14 = /* @__PURE__ */ template(`<select>`);
4211
+ var _tmpl$26 = /* @__PURE__ */ template(`<option>`);
3901
4212
  function SelectComponent(props) {
3902
4213
  return (() => {
3903
- const _el$ = _tmpl$13();
4214
+ const _el$ = _tmpl$14();
3904
4215
  spread(_el$, mergeProps({}, () => props.attributes, {
3905
4216
  get value() {
3906
4217
  return props.value;
@@ -3922,7 +4233,7 @@ function SelectComponent(props) {
3922
4233
  children: (option, _index) => {
3923
4234
  const index = _index();
3924
4235
  return (() => {
3925
- const _el$2 = _tmpl$25();
4236
+ const _el$2 = _tmpl$26();
3926
4237
  insert(_el$2, () => option.name || option.value);
3927
4238
  effect(() => setAttribute(_el$2, "key", `${option.name}-${index}`));
3928
4239
  effect(() => _el$2.value = option.value);
@@ -3936,7 +4247,7 @@ function SelectComponent(props) {
3936
4247
  var select_default = SelectComponent;
3937
4248
 
3938
4249
  // src/blocks/form/submit-button/component-info.ts
3939
- var componentInfo15 = {
4250
+ var componentInfo16 = {
3940
4251
  name: "Form:SubmitButton",
3941
4252
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
3942
4253
  defaultStyles: {
@@ -3962,10 +4273,10 @@ var componentInfo15 = {
3962
4273
  // TODO: defaultChildren
3963
4274
  // canHaveChildren: true,
3964
4275
  };
3965
- var _tmpl$14 = /* @__PURE__ */ template(`<button type=submit>`);
4276
+ var _tmpl$15 = /* @__PURE__ */ template(`<button type=submit>`);
3966
4277
  function SubmitButton(props) {
3967
4278
  return (() => {
3968
- const _el$ = _tmpl$14();
4279
+ const _el$ = _tmpl$15();
3969
4280
  spread(_el$, mergeProps({}, () => props.attributes), false, true);
3970
4281
  insert(_el$, () => props.text);
3971
4282
  return _el$;
@@ -3974,7 +4285,7 @@ function SubmitButton(props) {
3974
4285
  var submit_button_default = SubmitButton;
3975
4286
 
3976
4287
  // src/blocks/img/component-info.ts
3977
- var componentInfo16 = {
4288
+ var componentInfo17 = {
3978
4289
  // friendlyName?
3979
4290
  name: "Raw:Img",
3980
4291
  hideFromInsertMenu: true,
@@ -3989,10 +4300,10 @@ var componentInfo16 = {
3989
4300
  noWrap: true,
3990
4301
  static: true
3991
4302
  };
3992
- var _tmpl$15 = /* @__PURE__ */ template(`<img>`);
4303
+ var _tmpl$16 = /* @__PURE__ */ template(`<img>`);
3993
4304
  function ImgComponent(props) {
3994
4305
  return (() => {
3995
- const _el$ = _tmpl$15();
4306
+ const _el$ = _tmpl$16();
3996
4307
  spread(_el$, mergeProps({
3997
4308
  get style() {
3998
4309
  return {
@@ -4016,7 +4327,7 @@ function ImgComponent(props) {
4016
4327
  var img_default = ImgComponent;
4017
4328
 
4018
4329
  // src/blocks/video/component-info.ts
4019
- var componentInfo17 = {
4330
+ var componentInfo18 = {
4020
4331
  name: "Video",
4021
4332
  canHaveChildren: true,
4022
4333
  defaultStyles: {
@@ -4098,8 +4409,8 @@ var componentInfo17 = {
4098
4409
  advanced: true
4099
4410
  }]
4100
4411
  };
4101
- var _tmpl$16 = /* @__PURE__ */ template(`<source type=video/mp4>`);
4102
- var _tmpl$26 = /* @__PURE__ */ template(`<div>`);
4412
+ var _tmpl$17 = /* @__PURE__ */ template(`<source type=video/mp4>`);
4413
+ var _tmpl$27 = /* @__PURE__ */ template(`<div>`);
4103
4414
  var _tmpl$34 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
4104
4415
  function Video(props) {
4105
4416
  const videoProps = createMemo(() => {
@@ -4161,7 +4472,7 @@ function Video(props) {
4161
4472
  return !props.lazyLoad;
4162
4473
  },
4163
4474
  get children() {
4164
- const _el$3 = _tmpl$16();
4475
+ const _el$3 = _tmpl$17();
4165
4476
  effect(() => setAttribute(_el$3, "src", props.video));
4166
4477
  return _el$3;
4167
4478
  }
@@ -4171,7 +4482,7 @@ function Video(props) {
4171
4482
  return props.aspectRatio && !(props.fitContent && props.builderBlock?.children?.length);
4172
4483
  },
4173
4484
  get children() {
4174
- const _el$4 = _tmpl$26();
4485
+ const _el$4 = _tmpl$27();
4175
4486
  _el$4.style.setProperty("width", "100%");
4176
4487
  _el$4.style.setProperty("pointer-events", "none");
4177
4488
  _el$4.style.setProperty("font-size", "0px");
@@ -4184,7 +4495,7 @@ function Video(props) {
4184
4495
  return props.builderBlock?.children?.length && props.fitContent;
4185
4496
  },
4186
4497
  get children() {
4187
- const _el$5 = _tmpl$26();
4498
+ const _el$5 = _tmpl$27();
4188
4499
  _el$5.style.setProperty("display", "flex");
4189
4500
  _el$5.style.setProperty("flex-direction", "column");
4190
4501
  _el$5.style.setProperty("align-items", "stretch");
@@ -4197,7 +4508,7 @@ function Video(props) {
4197
4508
  return props.builderBlock?.children?.length && !props.fitContent;
4198
4509
  },
4199
4510
  get children() {
4200
- const _el$6 = _tmpl$26();
4511
+ const _el$6 = _tmpl$27();
4201
4512
  _el$6.style.setProperty("pointer-events", "none");
4202
4513
  _el$6.style.setProperty("display", "flex");
4203
4514
  _el$6.style.setProperty("flex-direction", "column");
@@ -4219,28 +4530,28 @@ var video_default = Video;
4219
4530
  // src/constants/extra-components.ts
4220
4531
  var getExtraComponents = () => [{
4221
4532
  component: custom_code_default,
4222
- ...componentInfo10
4533
+ ...componentInfo11
4223
4534
  }, {
4224
4535
  component: embed_default,
4225
- ...componentInfo11
4536
+ ...componentInfo12
4226
4537
  }, ...TARGET === "rsc" ? [] : [{
4227
4538
  component: form_default,
4228
- ...componentInfo12
4539
+ ...componentInfo13
4229
4540
  }, {
4230
4541
  component: input_default,
4231
- ...componentInfo13
4542
+ ...componentInfo14
4232
4543
  }, {
4233
4544
  component: submit_button_default,
4234
- ...componentInfo15
4545
+ ...componentInfo16
4235
4546
  }, {
4236
4547
  component: select_default,
4237
- ...componentInfo14
4548
+ ...componentInfo15
4238
4549
  }], {
4239
4550
  component: img_default,
4240
- ...componentInfo16
4551
+ ...componentInfo17
4241
4552
  }, {
4242
4553
  component: video_default,
4243
- ...componentInfo17
4554
+ ...componentInfo18
4244
4555
  }];
4245
4556
 
4246
4557
  // src/constants/builder-registered-components.ts
@@ -4271,6 +4582,9 @@ var getDefaultRegisteredComponents = () => [{
4271
4582
  }, ...TARGET === "rsc" ? [] : [{
4272
4583
  component: tabs_default,
4273
4584
  ...componentInfo8
4585
+ }, {
4586
+ component: accordion_default,
4587
+ ...componentInfo10
4274
4588
  }], ...getExtraComponents()];
4275
4589
 
4276
4590
  // src/functions/register-component.ts
@@ -4340,10 +4654,10 @@ var getUpdateVariantVisibilityScript = ({
4340
4654
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
4341
4655
  "${variationId}", "${contentId}", ${isHydrationTarget}
4342
4656
  )`;
4343
- var _tmpl$17 = /* @__PURE__ */ template(`<script>`);
4657
+ var _tmpl$18 = /* @__PURE__ */ template(`<script>`);
4344
4658
  function InlinedScript(props) {
4345
4659
  return (() => {
4346
- const _el$ = _tmpl$17();
4660
+ const _el$ = _tmpl$18();
4347
4661
  effect((_p$) => {
4348
4662
  const _v$ = props.scriptStr, _v$2 = props.id;
4349
4663
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -4849,7 +5163,7 @@ function isFromTrustedHost(trustedHosts, e) {
4849
5163
  }
4850
5164
 
4851
5165
  // src/constants/sdk-version.ts
4852
- var SDK_VERSION = "1.0.27";
5166
+ var SDK_VERSION = "1.0.28";
4853
5167
 
4854
5168
  // src/functions/register.ts
4855
5169
  var registry = {};
@@ -5331,7 +5645,7 @@ function EnableEditor(props) {
5331
5645
  });
5332
5646
  onMount(() => {
5333
5647
  if (!props.apiKey) {
5334
- logger.error("No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
5648
+ logger.error("No API key provided to `Content` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
5335
5649
  }
5336
5650
  evaluateJsCode();
5337
5651
  runHttpRequests();
@@ -5833,7 +6147,7 @@ var fetchSymbolContent = async ({
5833
6147
  };
5834
6148
 
5835
6149
  // src/blocks/symbol/symbol.tsx
5836
- var _tmpl$18 = /* @__PURE__ */ template(`<div>`);
6150
+ var _tmpl$19 = /* @__PURE__ */ template(`<div>`);
5837
6151
  function Symbol(props) {
5838
6152
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
5839
6153
  const blocksWrapper = createMemo(() => {
@@ -5865,7 +6179,7 @@ function Symbol(props) {
5865
6179
  }
5866
6180
  createEffect(on(() => [onUpdateFn_0_props_symbol()], onUpdateFn_0));
5867
6181
  return (() => {
5868
- const _el$ = _tmpl$18();
6182
+ const _el$ = _tmpl$19();
5869
6183
  spread(_el$, mergeProps({
5870
6184
  get ["class"]() {
5871
6185
  return className();