@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20261013114908 → 0.8.1-dev.20261014101636

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.
@@ -88,21 +88,28 @@ var MediaAccordionNodeClient = (props) => {
88
88
  style: {
89
89
  "--story-button-background": buttonBackground,
90
90
  "--story-button-text": props.node.buttonTextTransparency ? `color-mix(in srgb, ${props.node.buttonTextColor || "var(--primary-action-text)"}, transparent ${props.node.buttonTextTransparency}%)` : props.node.buttonTextColor || "var(--primary-action-text)",
91
+ "--story-button-border": props.node.buttonBorderColor || "var(--neutral-border)",
91
92
  "--story-button-clip": props.node.buttonBackgroundClipText ? "text" : "border-box",
92
93
  "--story-inactive-button-background": props.node.buttonInactiveBackgroundColor || "var(--neutral)",
93
- "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
94
+ "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)",
95
+ "--story-inactive-button-border": props.node.buttonInactiveBorderColor || "var(--neutral-border)",
96
+ "--story-media-ratio": `${Math.min(3, Math.max(0.75, props.node.mediaColumnRatio ?? 1.45))}fr`,
97
+ "--story-media-fit": ["cover", "contain", "fill", "none", "scale-down"].includes(props.node.mediaObjectFit || "") ? props.node.mediaObjectFit : "cover",
98
+ "--story-button-padding": `${props.node.buttonPaddingTop ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingRight ?? props.node.buttonPaddingAll ?? 16}px ${props.node.buttonPaddingBottom ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingLeft ?? props.node.buttonPaddingAll ?? 16}px`,
99
+ "--story-button-radius": `${Math.max(0, props.node.buttonBorderRadius ?? 9)}px`,
100
+ "--story-button-border-width": `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`
94
101
  },
95
102
  children: [
96
103
  /* @__PURE__ */ jsx("style", { children: `
97
- .story-accordion { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
104
+ .story-accordion { display:grid; grid-template-columns:minmax(0,var(--story-media-ratio,1.45fr)) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
98
105
  .story-accordion__media { position:relative; min-height:320px; overflow:hidden; border-radius:10px; background:var(--neutral-border); }
99
106
  .story-accordion__media > * { display:block; width:100%; height:100%; min-height:320px; }
100
- .story-accordion__media-image, .story-accordion__media-video { object-fit:cover; }
107
+ .story-accordion__media-image, .story-accordion__media-video { object-fit:var(--story-media-fit,cover); }
101
108
  .story-accordion__list { display:flex; flex-direction:column; justify-content:center; gap:10px; min-width:0; }
102
- .story-accordion__item { width:100%; min-height:54px; padding:12px 16px; border:1px solid var(--neutral-border); border-radius:9px; background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
109
+ .story-accordion__item { width:100%; min-height:54px; padding:var(--story-button-padding,12px 16px); border:var(--story-button-border-width,1px) solid var(--neutral-border); border-radius:var(--story-button-radius,9px); background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
103
110
  .story-accordion__item:hover { border-color:var(--primary-action-fill); }
104
- .story-accordion__item[aria-pressed="true"] { border-color:transparent; background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
105
- .story-accordion__item.is-inactive.is-custom { background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
111
+ .story-accordion__item[aria-pressed="true"] { border-color:var(--story-button-border,var(--neutral-border)); background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
112
+ .story-accordion__item.is-inactive.is-custom { border-color:var(--story-inactive-button-border,var(--neutral-border)); background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
106
113
  .story-accordion__item:focus-visible { outline:3px solid var(--primary-action-fill); outline-offset:2px; }
107
114
  @media(max-width:700px) { .story-accordion { grid-template-columns:minmax(0,1fr); gap:14px; padding:10px; } .story-accordion__media, .story-accordion__media > * { min-height:220px; } .story-accordion__list { gap:8px; } .story-accordion__item { min-height:48px; } }
108
115
  ` }),
@@ -113,10 +120,15 @@ var MediaAccordionNodeClient = (props) => {
113
120
  type: "button",
114
121
  className: `story-accordion__item ${index === activeIndex ? "is-active" : "is-inactive"} ${props.node.buttonInactiveStyleEnabled && index !== activeIndex ? "is-custom" : ""}`,
115
122
  "aria-pressed": index === activeIndex,
116
- style: index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
117
- background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
118
- color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
119
- } : void 0,
123
+ style: {
124
+ borderWidth: `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`,
125
+ borderStyle: "solid",
126
+ borderColor: index === activeIndex || !props.node.buttonInactiveStyleEnabled ? props.node.buttonBorderColor || "var(--neutral-border)" : props.node.buttonInactiveBorderColor || "var(--neutral-border)",
127
+ ...index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
128
+ background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
129
+ color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
130
+ } : {}
131
+ },
120
132
  onClick: () => setActiveIndex(index),
121
133
  children: item.title
122
134
  },
@@ -86,21 +86,28 @@ var MediaAccordionNodeClient = (props) => {
86
86
  style: {
87
87
  "--story-button-background": buttonBackground,
88
88
  "--story-button-text": props.node.buttonTextTransparency ? `color-mix(in srgb, ${props.node.buttonTextColor || "var(--primary-action-text)"}, transparent ${props.node.buttonTextTransparency}%)` : props.node.buttonTextColor || "var(--primary-action-text)",
89
+ "--story-button-border": props.node.buttonBorderColor || "var(--neutral-border)",
89
90
  "--story-button-clip": props.node.buttonBackgroundClipText ? "text" : "border-box",
90
91
  "--story-inactive-button-background": props.node.buttonInactiveBackgroundColor || "var(--neutral)",
91
- "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
92
+ "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)",
93
+ "--story-inactive-button-border": props.node.buttonInactiveBorderColor || "var(--neutral-border)",
94
+ "--story-media-ratio": `${Math.min(3, Math.max(0.75, props.node.mediaColumnRatio ?? 1.45))}fr`,
95
+ "--story-media-fit": ["cover", "contain", "fill", "none", "scale-down"].includes(props.node.mediaObjectFit || "") ? props.node.mediaObjectFit : "cover",
96
+ "--story-button-padding": `${props.node.buttonPaddingTop ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingRight ?? props.node.buttonPaddingAll ?? 16}px ${props.node.buttonPaddingBottom ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingLeft ?? props.node.buttonPaddingAll ?? 16}px`,
97
+ "--story-button-radius": `${Math.max(0, props.node.buttonBorderRadius ?? 9)}px`,
98
+ "--story-button-border-width": `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`
92
99
  },
93
100
  children: [
94
101
  /* @__PURE__ */ jsx("style", { children: `
95
- .story-accordion { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
102
+ .story-accordion { display:grid; grid-template-columns:minmax(0,var(--story-media-ratio,1.45fr)) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
96
103
  .story-accordion__media { position:relative; min-height:320px; overflow:hidden; border-radius:10px; background:var(--neutral-border); }
97
104
  .story-accordion__media > * { display:block; width:100%; height:100%; min-height:320px; }
98
- .story-accordion__media-image, .story-accordion__media-video { object-fit:cover; }
105
+ .story-accordion__media-image, .story-accordion__media-video { object-fit:var(--story-media-fit,cover); }
99
106
  .story-accordion__list { display:flex; flex-direction:column; justify-content:center; gap:10px; min-width:0; }
100
- .story-accordion__item { width:100%; min-height:54px; padding:12px 16px; border:1px solid var(--neutral-border); border-radius:9px; background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
107
+ .story-accordion__item { width:100%; min-height:54px; padding:var(--story-button-padding,12px 16px); border:var(--story-button-border-width,1px) solid var(--neutral-border); border-radius:var(--story-button-radius,9px); background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
101
108
  .story-accordion__item:hover { border-color:var(--primary-action-fill); }
102
- .story-accordion__item[aria-pressed="true"] { border-color:transparent; background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
103
- .story-accordion__item.is-inactive.is-custom { background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
109
+ .story-accordion__item[aria-pressed="true"] { border-color:var(--story-button-border,var(--neutral-border)); background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
110
+ .story-accordion__item.is-inactive.is-custom { border-color:var(--story-inactive-button-border,var(--neutral-border)); background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
104
111
  .story-accordion__item:focus-visible { outline:3px solid var(--primary-action-fill); outline-offset:2px; }
105
112
  @media(max-width:700px) { .story-accordion { grid-template-columns:minmax(0,1fr); gap:14px; padding:10px; } .story-accordion__media, .story-accordion__media > * { min-height:220px; } .story-accordion__list { gap:8px; } .story-accordion__item { min-height:48px; } }
106
113
  ` }),
@@ -111,10 +118,15 @@ var MediaAccordionNodeClient = (props) => {
111
118
  type: "button",
112
119
  className: `story-accordion__item ${index === activeIndex ? "is-active" : "is-inactive"} ${props.node.buttonInactiveStyleEnabled && index !== activeIndex ? "is-custom" : ""}`,
113
120
  "aria-pressed": index === activeIndex,
114
- style: index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
115
- background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
116
- color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
117
- } : void 0,
121
+ style: {
122
+ borderWidth: `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`,
123
+ borderStyle: "solid",
124
+ borderColor: index === activeIndex || !props.node.buttonInactiveStyleEnabled ? props.node.buttonBorderColor || "var(--neutral-border)" : props.node.buttonInactiveBorderColor || "var(--neutral-border)",
125
+ ...index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
126
+ background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
127
+ color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
128
+ } : {}
129
+ },
118
130
  onClick: () => setActiveIndex(index),
119
131
  children: item.title
120
132
  },
@@ -161,7 +161,14 @@ var Slider = ({
161
161
  setIsPlaying(true);
162
162
  }
163
163
  };
164
- const translateX = -currentSlide * slideWidthPercentage;
164
+ const maxTranslatePercentage = Math.max(
165
+ 0,
166
+ totalSlides * slideWidthPercentage - 100
167
+ );
168
+ const translateX = -Math.min(
169
+ currentSlide * slideWidthPercentage,
170
+ maxTranslatePercentage
171
+ );
165
172
  const slides = Children.map(children, (child, index) => {
166
173
  if (!React.isValidElement(child)) return null;
167
174
  const childProps = child.props;
@@ -163,7 +163,14 @@ var Slider = ({
163
163
  setIsPlaying(true);
164
164
  }
165
165
  };
166
- const translateX = -currentSlide * slideWidthPercentage;
166
+ const maxTranslatePercentage = Math.max(
167
+ 0,
168
+ totalSlides * slideWidthPercentage - 100
169
+ );
170
+ const translateX = -Math.min(
171
+ currentSlide * slideWidthPercentage,
172
+ maxTranslatePercentage
173
+ );
167
174
  const slides = Children.map(children, (child, index) => {
168
175
  if (!React.isValidElement(child)) return null;
169
176
  const childProps = child.props;
package/dist/index.js CHANGED
@@ -6031,21 +6031,28 @@ var init_MediaAccordionNodeClient = __esm({
6031
6031
  style: {
6032
6032
  "--story-button-background": buttonBackground,
6033
6033
  "--story-button-text": props.node.buttonTextTransparency ? `color-mix(in srgb, ${props.node.buttonTextColor || "var(--primary-action-text)"}, transparent ${props.node.buttonTextTransparency}%)` : props.node.buttonTextColor || "var(--primary-action-text)",
6034
+ "--story-button-border": props.node.buttonBorderColor || "var(--neutral-border)",
6034
6035
  "--story-button-clip": props.node.buttonBackgroundClipText ? "text" : "border-box",
6035
6036
  "--story-inactive-button-background": props.node.buttonInactiveBackgroundColor || "var(--neutral)",
6036
- "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
6037
+ "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)",
6038
+ "--story-inactive-button-border": props.node.buttonInactiveBorderColor || "var(--neutral-border)",
6039
+ "--story-media-ratio": `${Math.min(3, Math.max(0.75, props.node.mediaColumnRatio ?? 1.45))}fr`,
6040
+ "--story-media-fit": ["cover", "contain", "fill", "none", "scale-down"].includes(props.node.mediaObjectFit || "") ? props.node.mediaObjectFit : "cover",
6041
+ "--story-button-padding": `${props.node.buttonPaddingTop ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingRight ?? props.node.buttonPaddingAll ?? 16}px ${props.node.buttonPaddingBottom ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingLeft ?? props.node.buttonPaddingAll ?? 16}px`,
6042
+ "--story-button-radius": `${Math.max(0, props.node.buttonBorderRadius ?? 9)}px`,
6043
+ "--story-button-border-width": `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`
6037
6044
  },
6038
6045
  children: [
6039
6046
  /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("style", { children: `
6040
- .story-accordion { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
6047
+ .story-accordion { display:grid; grid-template-columns:minmax(0,var(--story-media-ratio,1.45fr)) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
6041
6048
  .story-accordion__media { position:relative; min-height:320px; overflow:hidden; border-radius:10px; background:var(--neutral-border); }
6042
6049
  .story-accordion__media > * { display:block; width:100%; height:100%; min-height:320px; }
6043
- .story-accordion__media-image, .story-accordion__media-video { object-fit:cover; }
6050
+ .story-accordion__media-image, .story-accordion__media-video { object-fit:var(--story-media-fit,cover); }
6044
6051
  .story-accordion__list { display:flex; flex-direction:column; justify-content:center; gap:10px; min-width:0; }
6045
- .story-accordion__item { width:100%; min-height:54px; padding:12px 16px; border:1px solid var(--neutral-border); border-radius:9px; background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
6052
+ .story-accordion__item { width:100%; min-height:54px; padding:var(--story-button-padding,12px 16px); border:var(--story-button-border-width,1px) solid var(--neutral-border); border-radius:var(--story-button-radius,9px); background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
6046
6053
  .story-accordion__item:hover { border-color:var(--primary-action-fill); }
6047
- .story-accordion__item[aria-pressed="true"] { border-color:transparent; background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
6048
- .story-accordion__item.is-inactive.is-custom { background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
6054
+ .story-accordion__item[aria-pressed="true"] { border-color:var(--story-button-border,var(--neutral-border)); background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
6055
+ .story-accordion__item.is-inactive.is-custom { border-color:var(--story-inactive-button-border,var(--neutral-border)); background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
6049
6056
  .story-accordion__item:focus-visible { outline:3px solid var(--primary-action-fill); outline-offset:2px; }
6050
6057
  @media(max-width:700px) { .story-accordion { grid-template-columns:minmax(0,1fr); gap:14px; padding:10px; } .story-accordion__media, .story-accordion__media > * { min-height:220px; } .story-accordion__list { gap:8px; } .story-accordion__item { min-height:48px; } }
6051
6058
  ` }),
@@ -6056,10 +6063,15 @@ var init_MediaAccordionNodeClient = __esm({
6056
6063
  type: "button",
6057
6064
  className: `story-accordion__item ${index === activeIndex ? "is-active" : "is-inactive"} ${props.node.buttonInactiveStyleEnabled && index !== activeIndex ? "is-custom" : ""}`,
6058
6065
  "aria-pressed": index === activeIndex,
6059
- style: index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
6060
- background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
6061
- color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
6062
- } : void 0,
6066
+ style: {
6067
+ borderWidth: `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`,
6068
+ borderStyle: "solid",
6069
+ borderColor: index === activeIndex || !props.node.buttonInactiveStyleEnabled ? props.node.buttonBorderColor || "var(--neutral-border)" : props.node.buttonInactiveBorderColor || "var(--neutral-border)",
6070
+ ...index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
6071
+ background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
6072
+ color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
6073
+ } : {}
6074
+ },
6063
6075
  onClick: () => setActiveIndex(index),
6064
6076
  children: item.title
6065
6077
  },
@@ -7312,7 +7324,14 @@ var init_Slider = __esm({
7312
7324
  setIsPlaying(true);
7313
7325
  }
7314
7326
  };
7315
- const translateX = -currentSlide * slideWidthPercentage;
7327
+ const maxTranslatePercentage = Math.max(
7328
+ 0,
7329
+ totalSlides * slideWidthPercentage - 100
7330
+ );
7331
+ const translateX = -Math.min(
7332
+ currentSlide * slideWidthPercentage,
7333
+ maxTranslatePercentage
7334
+ );
7316
7335
  const slides = import_react62.Children.map(children, (child, index) => {
7317
7336
  if (!import_react62.default.isValidElement(child)) return null;
7318
7337
  const childProps = child.props;
@@ -10035,7 +10054,7 @@ var fetchStoryItems = async (node, apiBaseUrl, session, routeParameters) => {
10035
10054
  return void 0;
10036
10055
  }
10037
10056
  const result = response.result;
10038
- const records = Array.isArray(result) ? result : node.responseType === "object" && result ? [result] : [];
10057
+ const records = Array.isArray(result) ? result : [];
10039
10058
  return records.flatMap((record, index) => {
10040
10059
  const title = getNestedValue6(record, node.titleField || "title");
10041
10060
  const mappedMedia = getAssetUrl(
package/dist/index.mjs CHANGED
@@ -2451,7 +2451,7 @@ var GoogleMapNode_default = GoogleMapNode;
2451
2451
  import dynamic15 from "next/dynamic";
2452
2452
  import { jsx as jsx38 } from "react/jsx-runtime";
2453
2453
  var MediaAccordionNodeClient = dynamic15(
2454
- () => import("./MediaAccordionNodeClient-W5FT2BK4.mjs"),
2454
+ () => import("./MediaAccordionNodeClient-NI5ZWLOR.mjs"),
2455
2455
  { ssr: false }
2456
2456
  );
2457
2457
  var getNestedValue6 = (value, path) => path.split(".").reduce((current, key) => {
@@ -2500,7 +2500,7 @@ var fetchStoryItems = async (node, apiBaseUrl, session, routeParameters) => {
2500
2500
  return void 0;
2501
2501
  }
2502
2502
  const result = response.result;
2503
- const records = Array.isArray(result) ? result : node.responseType === "object" && result ? [result] : [];
2503
+ const records = Array.isArray(result) ? result : [];
2504
2504
  return records.flatMap((record, index) => {
2505
2505
  const title = getNestedValue6(record, node.titleField || "title");
2506
2506
  const mappedMedia = getAssetUrl(
@@ -2551,7 +2551,7 @@ var Pagination = dynamic16(() => import("./Pagination-6R4XZLF6.mjs"), { ssr: tru
2551
2551
  var DataBindingControls = dynamic16(() => import("./DataBindingControls-VSLL4WV2.mjs"), {
2552
2552
  ssr: true
2553
2553
  });
2554
- var Slider = dynamic16(() => import("./Slider-XDYPGJYI.mjs"), {
2554
+ var Slider = dynamic16(() => import("./Slider-MZWLONIG.mjs"), {
2555
2555
  ssr: false
2556
2556
  });
2557
2557
  function toCamelCase(str) {
package/dist/server.js CHANGED
@@ -3576,21 +3576,28 @@ var init_MediaAccordionNodeClient = __esm({
3576
3576
  style: {
3577
3577
  "--story-button-background": buttonBackground,
3578
3578
  "--story-button-text": props.node.buttonTextTransparency ? `color-mix(in srgb, ${props.node.buttonTextColor || "var(--primary-action-text)"}, transparent ${props.node.buttonTextTransparency}%)` : props.node.buttonTextColor || "var(--primary-action-text)",
3579
+ "--story-button-border": props.node.buttonBorderColor || "var(--neutral-border)",
3579
3580
  "--story-button-clip": props.node.buttonBackgroundClipText ? "text" : "border-box",
3580
3581
  "--story-inactive-button-background": props.node.buttonInactiveBackgroundColor || "var(--neutral)",
3581
- "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
3582
+ "--story-inactive-button-text": props.node.buttonInactiveTextColor || "var(--neutral-text-base)",
3583
+ "--story-inactive-button-border": props.node.buttonInactiveBorderColor || "var(--neutral-border)",
3584
+ "--story-media-ratio": `${Math.min(3, Math.max(0.75, props.node.mediaColumnRatio ?? 1.45))}fr`,
3585
+ "--story-media-fit": ["cover", "contain", "fill", "none", "scale-down"].includes(props.node.mediaObjectFit || "") ? props.node.mediaObjectFit : "cover",
3586
+ "--story-button-padding": `${props.node.buttonPaddingTop ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingRight ?? props.node.buttonPaddingAll ?? 16}px ${props.node.buttonPaddingBottom ?? props.node.buttonPaddingAll ?? 12}px ${props.node.buttonPaddingLeft ?? props.node.buttonPaddingAll ?? 16}px`,
3587
+ "--story-button-radius": `${Math.max(0, props.node.buttonBorderRadius ?? 9)}px`,
3588
+ "--story-button-border-width": `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`
3582
3589
  },
3583
3590
  children: [
3584
3591
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("style", { children: `
3585
- .story-accordion { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
3592
+ .story-accordion { display:grid; grid-template-columns:minmax(0,var(--story-media-ratio,1.45fr)) minmax(260px,1fr); gap:20px; align-items:stretch; width:100%; padding:16px; border-radius:14px; background:var(--neutral); }
3586
3593
  .story-accordion__media { position:relative; min-height:320px; overflow:hidden; border-radius:10px; background:var(--neutral-border); }
3587
3594
  .story-accordion__media > * { display:block; width:100%; height:100%; min-height:320px; }
3588
- .story-accordion__media-image, .story-accordion__media-video { object-fit:cover; }
3595
+ .story-accordion__media-image, .story-accordion__media-video { object-fit:var(--story-media-fit,cover); }
3589
3596
  .story-accordion__list { display:flex; flex-direction:column; justify-content:center; gap:10px; min-width:0; }
3590
- .story-accordion__item { width:100%; min-height:54px; padding:12px 16px; border:1px solid var(--neutral-border); border-radius:9px; background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
3597
+ .story-accordion__item { width:100%; min-height:54px; padding:var(--story-button-padding,12px 16px); border:var(--story-button-border-width,1px) solid var(--neutral-border); border-radius:var(--story-button-radius,9px); background:var(--neutral); color:var(--neutral-text-base); text-align:left; font:inherit; line-height:1.35; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
3591
3598
  .story-accordion__item:hover { border-color:var(--primary-action-fill); }
3592
- .story-accordion__item[aria-pressed="true"] { border-color:transparent; background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
3593
- .story-accordion__item.is-inactive.is-custom { background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
3599
+ .story-accordion__item[aria-pressed="true"] { border-color:var(--story-button-border,var(--neutral-border)); background:var(--story-button-background); color:var(--story-button-text); background-clip:var(--story-button-clip); -webkit-background-clip:var(--story-button-clip); }
3600
+ .story-accordion__item.is-inactive.is-custom { border-color:var(--story-inactive-button-border,var(--neutral-border)); background:var(--story-inactive-button-background); color:var(--story-inactive-button-text); }
3594
3601
  .story-accordion__item:focus-visible { outline:3px solid var(--primary-action-fill); outline-offset:2px; }
3595
3602
  @media(max-width:700px) { .story-accordion { grid-template-columns:minmax(0,1fr); gap:14px; padding:10px; } .story-accordion__media, .story-accordion__media > * { min-height:220px; } .story-accordion__list { gap:8px; } .story-accordion__item { min-height:48px; } }
3596
3603
  ` }),
@@ -3601,10 +3608,15 @@ var init_MediaAccordionNodeClient = __esm({
3601
3608
  type: "button",
3602
3609
  className: `story-accordion__item ${index === activeIndex ? "is-active" : "is-inactive"} ${props.node.buttonInactiveStyleEnabled && index !== activeIndex ? "is-custom" : ""}`,
3603
3610
  "aria-pressed": index === activeIndex,
3604
- style: index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
3605
- background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
3606
- color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
3607
- } : void 0,
3611
+ style: {
3612
+ borderWidth: `${Math.max(0, props.node.buttonBorderWidth ?? 1)}px`,
3613
+ borderStyle: "solid",
3614
+ borderColor: index === activeIndex || !props.node.buttonInactiveStyleEnabled ? props.node.buttonBorderColor || "var(--neutral-border)" : props.node.buttonInactiveBorderColor || "var(--neutral-border)",
3615
+ ...index !== activeIndex && props.node.buttonInactiveStyleEnabled ? {
3616
+ background: props.node.buttonInactiveBackgroundColor || "var(--neutral)",
3617
+ color: props.node.buttonInactiveTextColor || "var(--neutral-text-base)"
3618
+ } : {}
3619
+ },
3608
3620
  onClick: () => setActiveIndex(index),
3609
3621
  children: item.title
3610
3622
  },
@@ -4947,7 +4959,14 @@ var init_Slider = __esm({
4947
4959
  setIsPlaying(true);
4948
4960
  }
4949
4961
  };
4950
- const translateX = -currentSlide * slideWidthPercentage;
4962
+ const maxTranslatePercentage = Math.max(
4963
+ 0,
4964
+ totalSlides * slideWidthPercentage - 100
4965
+ );
4966
+ const translateX = -Math.min(
4967
+ currentSlide * slideWidthPercentage,
4968
+ maxTranslatePercentage
4969
+ );
4951
4970
  const slides = import_react42.Children.map(children, (child, index) => {
4952
4971
  if (!import_react42.default.isValidElement(child)) return null;
4953
4972
  const childProps = child.props;
@@ -7628,7 +7647,7 @@ var fetchStoryItems = async (node, apiBaseUrl, session, routeParameters) => {
7628
7647
  return void 0;
7629
7648
  }
7630
7649
  const result = response.result;
7631
- const records = Array.isArray(result) ? result : node.responseType === "object" && result ? [result] : [];
7650
+ const records = Array.isArray(result) ? result : [];
7632
7651
  return records.flatMap((record, index) => {
7633
7652
  const title = getNestedValue6(record, node.titleField || "title");
7634
7653
  const mappedMedia = getAssetUrl(
package/dist/server.mjs CHANGED
@@ -2407,7 +2407,7 @@ var GoogleMapNode_default = GoogleMapNode;
2407
2407
  import dynamic14 from "next/dynamic";
2408
2408
  import { jsx as jsx38 } from "react/jsx-runtime";
2409
2409
  var MediaAccordionNodeClient = dynamic14(
2410
- () => import("./MediaAccordionNodeClient-LTCRGB3L.mjs"),
2410
+ () => import("./MediaAccordionNodeClient-ZVKS3IEH.mjs"),
2411
2411
  { ssr: false }
2412
2412
  );
2413
2413
  var getNestedValue6 = (value, path) => path.split(".").reduce((current, key) => {
@@ -2456,7 +2456,7 @@ var fetchStoryItems = async (node, apiBaseUrl, session, routeParameters) => {
2456
2456
  return void 0;
2457
2457
  }
2458
2458
  const result = response.result;
2459
- const records = Array.isArray(result) ? result : node.responseType === "object" && result ? [result] : [];
2459
+ const records = Array.isArray(result) ? result : [];
2460
2460
  return records.flatMap((record, index) => {
2461
2461
  const title = getNestedValue6(record, node.titleField || "title");
2462
2462
  const mappedMedia = getAssetUrl(
@@ -2507,7 +2507,7 @@ var Pagination = dynamic15(() => import("./Pagination-RMAXCIL7.mjs"), { ssr: tru
2507
2507
  var DataBindingControls = dynamic15(() => import("./DataBindingControls-Z2AHWFYX.mjs"), {
2508
2508
  ssr: true
2509
2509
  });
2510
- var Slider = dynamic15(() => import("./Slider-BH5S4XRN.mjs"), {
2510
+ var Slider = dynamic15(() => import("./Slider-3UFC3SQQ.mjs"), {
2511
2511
  ssr: false
2512
2512
  });
2513
2513
  function toCamelCase(str) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clyrex-digital/clyrex-controls-dev",
3
- "version": "0.8.1-dev.20261013114908",
3
+ "version": "0.8.1-dev.20261014101636",
4
4
  "description": "Reusable React components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",