@deriv-web-design/ui 0.0.1 → 0.0.3

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/dist/index.js CHANGED
@@ -26,6 +26,7 @@ __export(index_exports, {
26
26
  Card: () => Card,
27
27
  Chip: () => Chip,
28
28
  ChipDropdown: () => ChipDropdown,
29
+ FeatureCards: () => FeatureCards,
29
30
  Link: () => Link,
30
31
  Pagination: () => Pagination,
31
32
  SearchField: () => SearchField,
@@ -34,9 +35,6 @@ __export(index_exports, {
34
35
  });
35
36
  module.exports = __toCommonJS(index_exports);
36
37
 
37
- // primitives/Button/Button.module.css
38
- var Button_default = {};
39
-
40
38
  // primitives/Button/Button.tsx
41
39
  var import_jsx_runtime = require("react/jsx-runtime");
42
40
  var Button = ({
@@ -54,13 +52,13 @@ var Button = ({
54
52
  }) => {
55
53
  const isIconOnly = iconPosition === "icon-only";
56
54
  const classNames = [
57
- Button_default.button,
58
- Button_default[`${colorScheme}_${variant}`],
59
- isIconOnly ? Button_default.iconOnly : "",
60
- fullWidth ? Button_default.fullWidth : "",
55
+ "button",
56
+ `${colorScheme}_${variant}`,
57
+ isIconOnly ? "iconOnly" : "",
58
+ fullWidth ? "fullWidth" : "",
61
59
  className ?? ""
62
60
  ].filter(Boolean).join(" ");
63
- const iconNode = icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: Button_default.icon, children: icon }) : null;
61
+ const iconNode = icon ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "icon", children: icon }) : null;
64
62
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
65
63
  "button",
66
64
  {
@@ -70,18 +68,15 @@ var Button = ({
70
68
  ...props,
71
69
  children: [
72
70
  iconPosition === "icon-left" && iconNode,
73
- !isIconOnly && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: Button_default.label, children: label ?? children }),
71
+ !isIconOnly && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "label", children: label ?? children }),
74
72
  iconPosition === "icon-only" && iconNode,
75
73
  iconPosition === "icon-right" && iconNode,
76
- showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: Button_default.focusRing, "aria-hidden": "true" })
74
+ showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "focusRing", "aria-hidden": "true" })
77
75
  ]
78
76
  }
79
77
  );
80
78
  };
81
79
 
82
- // primitives/Link/Link.module.css
83
- var Link_default = {};
84
-
85
80
  // primitives/Link/Link.tsx
86
81
  var import_jsx_runtime2 = require("react/jsx-runtime");
87
82
  var ChevronIcon = () => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M3 8h10M9 4l4 4-4 4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
@@ -98,10 +93,10 @@ var Link = ({
98
93
  }) => {
99
94
  const hasIcon = !!icon;
100
95
  const classNames = [
101
- Link_default.link,
102
- Link_default[colorScheme],
103
- hasIcon ? Link_default.withIcon : Link_default.withChevron,
104
- disabled ? Link_default.disabled : "",
96
+ "link",
97
+ colorScheme,
98
+ hasIcon ? "withIcon" : "withChevron",
99
+ disabled ? "disabled" : "",
105
100
  className ?? ""
106
101
  ].filter(Boolean).join(" ");
107
102
  const handleClick = (e) => {
@@ -120,17 +115,14 @@ var Link = ({
120
115
  onClick: handleClick,
121
116
  ...props,
122
117
  children: [
123
- hasIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: Link_default.icon, children: icon }),
124
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: Link_default.label, children: label ?? children }),
125
- !hasIcon && showChevron && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: Link_default.chevron, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ChevronIcon, {}) })
118
+ hasIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "icon", children: icon }),
119
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "label", children: label ?? children }),
120
+ !hasIcon && showChevron && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "chevron", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ChevronIcon, {}) })
126
121
  ]
127
122
  }
128
123
  );
129
124
  };
130
125
 
131
- // primitives/Chip/Chip.module.css
132
- var Chip_default = {};
133
-
134
126
  // primitives/Chip/Chip.tsx
135
127
  var import_jsx_runtime3 = require("react/jsx-runtime");
136
128
  var Chip = ({
@@ -146,9 +138,9 @@ var Chip = ({
146
138
  ...props
147
139
  }) => {
148
140
  const classNames = [
149
- Chip_default.chip,
150
- Chip_default[size],
151
- selected ? Chip_default.selected : "",
141
+ "chip",
142
+ size,
143
+ selected ? "selected" : "",
152
144
  className ?? ""
153
145
  ].filter(Boolean).join(" ");
154
146
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
@@ -159,18 +151,15 @@ var Chip = ({
159
151
  "aria-pressed": selected,
160
152
  ...props,
161
153
  children: [
162
- icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: Chip_default.icon, children: icon }),
163
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: Chip_default.label, children: label ?? children }),
164
- tag && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: Chip_default.tag, children: tag }),
165
- showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: Chip_default.focusRing, "aria-hidden": "true" })
154
+ icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "icon", children: icon }),
155
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "label", children: label ?? children }),
156
+ tag && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "tag", children: tag }),
157
+ showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "focusRing", "aria-hidden": "true" })
166
158
  ]
167
159
  }
168
160
  );
169
161
  };
170
162
 
171
- // primitives/Tag/Tag.module.css
172
- var Tag_default = {};
173
-
174
163
  // primitives/Tag/Tag.tsx
175
164
  var import_jsx_runtime4 = require("react/jsx-runtime");
176
165
  var Tag = ({
@@ -184,25 +173,20 @@ var Tag = ({
184
173
  ...props
185
174
  }) => {
186
175
  const classNames = [
187
- Tag_default.tag,
188
- Tag_default[size],
189
- Tag_default[variant],
190
- Tag_default[fontWeight],
176
+ "tag",
177
+ size,
178
+ variant,
179
+ fontWeight,
191
180
  className ?? ""
192
181
  ].filter(Boolean).join(" ");
193
182
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: classNames, ...props, children: [
194
- icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: Tag_default.icon, children: icon }),
195
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: Tag_default.label, children: label ?? children })
183
+ icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "icon", children: icon }),
184
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "label", children: label ?? children })
196
185
  ] });
197
186
  };
198
187
 
199
188
  // primitives/Accordion/Accordion.tsx
200
189
  var import_react = require("react");
201
-
202
- // primitives/Accordion/Accordion.module.css
203
- var Accordion_default = {};
204
-
205
- // primitives/Accordion/Accordion.tsx
206
190
  var import_jsx_runtime5 = require("react/jsx-runtime");
207
191
  var ChevronIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
208
192
  var Accordion = ({
@@ -224,7 +208,7 @@ var Accordion = ({
224
208
  if (!isControlled) setInternalOpen(next);
225
209
  onToggle?.(next);
226
210
  };
227
- const classNames = [Accordion_default.accordion, className ?? ""].filter(Boolean).join(" ");
211
+ const classNames = ["accordion", className ?? ""].filter(Boolean).join(" ");
228
212
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
229
213
  "div",
230
214
  {
@@ -237,17 +221,17 @@ var Accordion = ({
237
221
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
238
222
  "button",
239
223
  {
240
- className: Accordion_default.header,
224
+ className: "header",
241
225
  onClick: handleToggle,
242
226
  "aria-expanded": isOpen,
243
227
  children: [
244
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: Accordion_default.titleWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: Accordion_default.title, children: title }) }),
245
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: [Accordion_default.chevron, isOpen ? Accordion_default.chevronRotated : ""].filter(Boolean).join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ChevronIcon2, {}) }),
246
- showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: Accordion_default.focusRing, "aria-hidden": "true" })
228
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "titleWrapper", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "title", children: title }) }),
229
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: ["chevron", isOpen ? "chevronRotated" : ""].filter(Boolean).join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ChevronIcon2, {}) }),
230
+ showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "focusRing", "aria-hidden": "true" })
247
231
  ]
248
232
  }
249
233
  ),
250
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: [Accordion_default.bodyWrapper, isOpen ? Accordion_default.bodyWrapperOpen : ""].filter(Boolean).join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: Accordion_default.bodyInner, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: Accordion_default.body, children }) }) })
234
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: ["bodyWrapper", isOpen ? "bodyWrapperOpen" : ""].filter(Boolean).join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "bodyInner", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "body", children }) }) })
251
235
  ]
252
236
  }
253
237
  );
@@ -255,11 +239,6 @@ var Accordion = ({
255
239
 
256
240
  // primitives/TextField/TextField.tsx
257
241
  var import_react2 = require("react");
258
-
259
- // primitives/TextField/TextField.module.css
260
- var TextField_default = {};
261
-
262
- // primitives/TextField/TextField.tsx
263
242
  var import_jsx_runtime6 = require("react/jsx-runtime");
264
243
  var SuccessIcon = () => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
265
244
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("circle", { cx: "8", cy: "8", r: "6", stroke: "currentColor", strokeWidth: "1.5" }),
@@ -279,9 +258,9 @@ var TextField = (0, import_react2.forwardRef)(
279
258
  ...inputProps
280
259
  }, ref) => {
281
260
  const wrapperClass = [
282
- TextField_default.wrapper,
283
- TextField_default[variant],
284
- TextField_default[status],
261
+ "tf-wrapper",
262
+ variant,
263
+ status,
285
264
  className ?? ""
286
265
  ].filter(Boolean).join(" ");
287
266
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: wrapperClass, "data-disabled": disabled || void 0, children: [
@@ -289,13 +268,13 @@ var TextField = (0, import_react2.forwardRef)(
289
268
  "input",
290
269
  {
291
270
  ref,
292
- className: TextField_default.input,
271
+ className: "tf-input",
293
272
  disabled,
294
273
  ...inputProps
295
274
  }
296
275
  ),
297
- status === "success" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: [TextField_default.iconSlot, TextField_default.iconSuccess].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SuccessIcon, {}) }),
298
- status === "fail" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: [TextField_default.iconSlot, TextField_default.iconFail].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FailIcon, {}) })
276
+ status === "success" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "iconSlot iconSuccess", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(SuccessIcon, {}) }),
277
+ status === "fail" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "iconSlot iconFail", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FailIcon, {}) })
299
278
  ] });
300
279
  }
301
280
  );
@@ -303,11 +282,6 @@ TextField.displayName = "TextField";
303
282
 
304
283
  // primitives/SearchField/SearchField.tsx
305
284
  var import_react3 = require("react");
306
-
307
- // primitives/SearchField/SearchField.module.css
308
- var SearchField_default = {};
309
-
310
- // primitives/SearchField/SearchField.tsx
311
285
  var import_jsx_runtime7 = require("react/jsx-runtime");
312
286
  var SearchIcon = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
313
287
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("circle", { cx: "6.5", cy: "6.5", r: "4", stroke: "currentColor", strokeWidth: "1.25" }),
@@ -372,8 +346,8 @@ var SearchField = (0, import_react3.forwardRef)(
372
346
  const showSuccessIcon = status === "success" && hasValue && !disabled;
373
347
  const showClearButton = hasValue && !disabled;
374
348
  const wrapperClass = [
375
- SearchField_default.wrapper,
376
- SearchField_default[status],
349
+ "sf-wrapper",
350
+ status,
377
351
  className ?? ""
378
352
  ].filter(Boolean).join(" ");
379
353
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
@@ -382,12 +356,12 @@ var SearchField = (0, import_react3.forwardRef)(
382
356
  className: wrapperClass,
383
357
  "data-disabled": disabled || void 0,
384
358
  children: [
385
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: SearchField_default.iconSlot, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SearchIcon, {}) }),
359
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "iconSlot", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SearchIcon, {}) }),
386
360
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
387
361
  "input",
388
362
  {
389
363
  ref: setRef,
390
- className: SearchField_default.input,
364
+ className: "sf-input",
391
365
  disabled,
392
366
  value,
393
367
  defaultValue,
@@ -395,13 +369,13 @@ var SearchField = (0, import_react3.forwardRef)(
395
369
  ...inputProps
396
370
  }
397
371
  ),
398
- showSuccessIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: [SearchField_default.iconSlot, SearchField_default.iconSuccess].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SuccessIcon2, {}) }),
399
- showFailIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: [SearchField_default.iconSlot, SearchField_default.iconFail].join(" "), children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FailIcon2, {}) }),
372
+ showSuccessIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "iconSlot iconSuccess", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SuccessIcon2, {}) }),
373
+ showFailIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "iconSlot iconFail", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FailIcon2, {}) }),
400
374
  showClearButton && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
401
375
  "button",
402
376
  {
403
377
  type: "button",
404
- className: SearchField_default.clearButton,
378
+ className: "clearButton",
405
379
  onClick: handleClear,
406
380
  "aria-label": "Clear search",
407
381
  tabIndex: -1,
@@ -417,11 +391,6 @@ SearchField.displayName = "SearchField";
417
391
 
418
392
  // primitives/Breadcrumb/Breadcrumb.tsx
419
393
  var import_react4 = require("react");
420
-
421
- // primitives/Breadcrumb/Breadcrumb.module.css
422
- var Breadcrumb_default = {};
423
-
424
- // primitives/Breadcrumb/Breadcrumb.tsx
425
394
  var import_jsx_runtime8 = require("react/jsx-runtime");
426
395
  var ChevronRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
427
396
  "svg",
@@ -446,8 +415,8 @@ var ChevronRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
446
415
  );
447
416
  function BreadcrumbLink({ item }) {
448
417
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
449
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("a", { href: item.href, onClick: item.onClick, className: Breadcrumb_default.link, children: item.label }),
450
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Breadcrumb_default.separator, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRightIcon, {}) })
418
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("a", { href: item.href, onClick: item.onClick, className: "bc-link", children: item.label }),
419
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "bc-separator", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRightIcon, {}) })
451
420
  ] });
452
421
  }
453
422
  function Breadcrumb({
@@ -460,15 +429,15 @@ function Breadcrumb({
460
429
  const [expanded, setExpanded] = (0, import_react4.useState)(false);
461
430
  const truncatable = collapsible && items.length > 3;
462
431
  const listClass = [
463
- Breadcrumb_default.list,
464
- Breadcrumb_default[size],
465
- truncatable ? Breadcrumb_default.collapsible : "",
466
- truncatable && expanded ? Breadcrumb_default.expanded : ""
432
+ "bc-list",
433
+ size,
434
+ truncatable ? "collapsible" : "",
435
+ truncatable && expanded ? "expanded" : ""
467
436
  ].filter(Boolean).join(" ");
468
437
  if (!truncatable) {
469
438
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { "aria-label": "Breadcrumb", className, ...navProps, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ol", { className: listClass, children: items.map((item, index) => {
470
439
  const isLast = index === items.length - 1;
471
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: Breadcrumb_default.item, children: isLast ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Breadcrumb_default.current, "aria-current": "page", children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item }) }, index);
440
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: "bc-item", children: isLast ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "bc-current", "aria-current": "page", children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item }) }, index);
472
441
  }) }) });
473
442
  }
474
443
  const firstItem = items[0];
@@ -476,32 +445,27 @@ function Breadcrumb({
476
445
  const parentItem = items[items.length - 2];
477
446
  const currentItem = items[items.length - 1];
478
447
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { "aria-label": "Breadcrumb", className, ...navProps, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("ol", { className: listClass, children: [
479
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: Breadcrumb_default.item, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item: firstItem }) }),
480
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("li", { className: Breadcrumb_default.ellipsisItem, "aria-hidden": expanded, children: [
448
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: "bc-item", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item: firstItem }) }),
449
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("li", { className: "bc-ellipsisItem", "aria-hidden": expanded, children: [
481
450
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
482
451
  "button",
483
452
  {
484
- className: Breadcrumb_default.ellipsisButton,
453
+ className: "bc-ellipsisButton",
485
454
  onClick: () => setExpanded(true),
486
455
  "aria-label": "Show all breadcrumb items",
487
456
  children: "\u2026"
488
457
  }
489
458
  ),
490
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Breadcrumb_default.separator, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRightIcon, {}) })
459
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "bc-separator", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRightIcon, {}) })
491
460
  ] }),
492
- middleItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: Breadcrumb_default.middleItem, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item }) }, `m-${index}`)),
493
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: Breadcrumb_default.item, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item: parentItem }) }),
494
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: Breadcrumb_default.item, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: Breadcrumb_default.current, "aria-current": "page", children: currentItem.label }) })
461
+ middleItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: "bc-middleItem", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item }) }, `m-${index}`)),
462
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: "bc-item", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(BreadcrumbLink, { item: parentItem }) }),
463
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className: "bc-item", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "bc-current", "aria-current": "page", children: currentItem.label }) })
495
464
  ] }) });
496
465
  }
497
466
 
498
467
  // primitives/ChipDropdown/ChipDropdown.tsx
499
468
  var import_react5 = require("react");
500
-
501
- // primitives/ChipDropdown/ChipDropdown.module.css
502
- var ChipDropdown_default = {};
503
-
504
- // primitives/ChipDropdown/ChipDropdown.tsx
505
469
  var import_jsx_runtime9 = require("react/jsx-runtime");
506
470
  var ChevronDownIcon = () => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
507
471
  "svg",
@@ -573,16 +537,16 @@ var ChipDropdown = ({
573
537
  return () => document.removeEventListener("mousedown", handleClickOutside);
574
538
  }, [open]);
575
539
  const triggerClassNames = [
576
- ChipDropdown_default.trigger,
577
- ChipDropdown_default[size],
578
- isSelected ? ChipDropdown_default.selected : "",
579
- open ? ChipDropdown_default.expand : "",
540
+ "cd-trigger",
541
+ size,
542
+ isSelected ? "selected" : "",
543
+ open ? "expand" : "",
580
544
  className ?? ""
581
545
  ].filter(Boolean).join(" ");
582
546
  const handleKeyDown = (e) => {
583
547
  if (e.key === "Escape") setOpen(false);
584
548
  };
585
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { ref: wrapperRef, className: ChipDropdown_default.wrapper, children: [
549
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { ref: wrapperRef, className: "cd-wrapper", children: [
586
550
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
587
551
  "button",
588
552
  {
@@ -595,13 +559,13 @@ var ChipDropdown = ({
595
559
  onKeyDown: handleKeyDown,
596
560
  ...props,
597
561
  children: [
598
- icon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: ChipDropdown_default.icon, children: icon }),
599
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: ChipDropdown_default.label, children: displayLabel }),
600
- tag && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: ChipDropdown_default.tag, children: tag }),
562
+ icon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "cd-icon", children: icon }),
563
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "cd-label", children: displayLabel }),
564
+ tag && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "cd-tag", children: tag }),
601
565
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
602
566
  "span",
603
567
  {
604
- className: [ChipDropdown_default.chevron, open ? ChipDropdown_default.chevronOpen : ""].filter(Boolean).join(" "),
568
+ className: ["cd-chevron", open ? "chevronOpen" : ""].filter(Boolean).join(" "),
605
569
  "aria-hidden": "true",
606
570
  children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChevronDownIcon, {})
607
571
  }
@@ -614,7 +578,7 @@ var ChipDropdown = ({
614
578
  {
615
579
  role: "listbox",
616
580
  "aria-label": label,
617
- className: ChipDropdown_default.list,
581
+ className: "cd-list",
618
582
  children: options.map((option) => {
619
583
  const isActive = option.value === value;
620
584
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
@@ -623,16 +587,16 @@ var ChipDropdown = ({
623
587
  role: "option",
624
588
  "aria-selected": isActive,
625
589
  className: [
626
- ChipDropdown_default.item,
627
- isActive ? ChipDropdown_default.itemSelected : ""
590
+ "cd-item",
591
+ isActive ? "itemSelected" : ""
628
592
  ].filter(Boolean).join(" "),
629
593
  onClick: () => {
630
594
  onChange?.(option.value);
631
595
  setOpen(false);
632
596
  },
633
597
  children: [
634
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: ChipDropdown_default.itemLabel, children: option.label }),
635
- isActive && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: ChipDropdown_default.itemCheck, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CheckIcon, {}) })
598
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "cd-itemLabel", children: option.label }),
599
+ isActive && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "cd-itemCheck", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CheckIcon, {}) })
636
600
  ]
637
601
  },
638
602
  option.value
@@ -643,32 +607,8 @@ var ChipDropdown = ({
643
607
  ] });
644
608
  };
645
609
 
646
- // components/Card/CardPrimaryVariant.module.css
647
- var CardPrimaryVariant_default = {};
648
-
649
610
  // components/Card/CardPrimaryVariant.tsx
650
611
  var import_jsx_runtime10 = require("react/jsx-runtime");
651
- var ArrowRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
652
- "svg",
653
- {
654
- "aria-hidden": "true",
655
- fill: "none",
656
- height: "16",
657
- viewBox: "0 0 16 16",
658
- width: "16",
659
- xmlns: "http://www.w3.org/2000/svg",
660
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
661
- "path",
662
- {
663
- d: "M3 8h10M9 4l4 4-4 4",
664
- stroke: "currentColor",
665
- strokeLinecap: "round",
666
- strokeLinejoin: "round",
667
- strokeWidth: "1.5"
668
- }
669
- )
670
- }
671
- );
672
612
  var CardPrimaryVariant = ({
673
613
  colorScheme = "light",
674
614
  title,
@@ -687,64 +627,36 @@ var CardPrimaryVariant = ({
687
627
  "div",
688
628
  {
689
629
  className: [
690
- CardPrimaryVariant_default.card,
691
- CardPrimaryVariant_default[`style--${colorScheme}`],
630
+ "card-primary",
631
+ `style--${colorScheme}`,
692
632
  className ?? ""
693
633
  ].filter(Boolean).join(" "),
694
634
  ...props,
695
635
  children: [
696
- colorScheme === "image" && image && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { "aria-hidden": "true", className: CardPrimaryVariant_default.imageOverlay, children: [
697
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { alt: "", className: CardPrimaryVariant_default.overlayImg, src: image }),
698
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: CardPrimaryVariant_default.gradient })
636
+ colorScheme === "image" && image && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { "aria-hidden": "true", className: "cp-imageOverlay", children: [
637
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { alt: "", className: "cp-overlayImg", src: image }),
638
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "cp-gradient" })
699
639
  ] }),
700
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: CardPrimaryVariant_default.content, children: [
701
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: [CardPrimaryVariant_default.title, isInverse ? CardPrimaryVariant_default.textInverse : CardPrimaryVariant_default.textDefault].join(" "), children: title }),
702
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: [CardPrimaryVariant_default.description, isInverse ? CardPrimaryVariant_default.textInverse : CardPrimaryVariant_default.textDefault].join(" "), children: description }),
703
- showLink && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
704
- "button",
640
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "cp-content", children: [
641
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: ["cp-title", isInverse ? "textInverse" : "textDefault"].join(" "), children: title }),
642
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: ["cp-description", isInverse ? "textInverse" : "textDefault"].join(" "), children: description }),
643
+ showLink && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
644
+ Link,
705
645
  {
706
- className: [CardPrimaryVariant_default.link, isInverse ? CardPrimaryVariant_default.linkInverse : CardPrimaryVariant_default.linkCoral].join(" "),
707
- onClick: onLinkClick,
708
- type: "button",
709
- children: [
710
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children: linkText }),
711
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ArrowRightIcon, {})
712
- ]
646
+ colorScheme: isInverse ? "white" : "coral",
647
+ label: linkText,
648
+ onClick: onLinkClick
713
649
  }
714
650
  )
715
651
  ] }),
716
- colorScheme !== "image" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: CardPrimaryVariant_default.imageSection, children: image && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { alt: imageAlt, className: CardPrimaryVariant_default.image, src: image }) })
652
+ colorScheme !== "image" && image && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "cp-imageSection", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { alt: imageAlt, className: "cp-image", src: image }) })
717
653
  ]
718
654
  }
719
655
  );
720
656
  };
721
657
 
722
- // components/Card/CardSecondaryVariant.module.css
723
- var CardSecondaryVariant_default = {};
724
-
725
658
  // components/Card/CardSecondaryVariant.tsx
726
659
  var import_jsx_runtime11 = require("react/jsx-runtime");
727
- var ArrowRightIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
728
- "svg",
729
- {
730
- "aria-hidden": "true",
731
- fill: "none",
732
- height: "16",
733
- viewBox: "0 0 16 16",
734
- width: "16",
735
- xmlns: "http://www.w3.org/2000/svg",
736
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
737
- "path",
738
- {
739
- d: "M3 8h10M9 4l4 4-4 4",
740
- stroke: "currentColor",
741
- strokeLinecap: "round",
742
- strokeLinejoin: "round",
743
- strokeWidth: "1.5"
744
- }
745
- )
746
- }
747
- );
748
660
  var CardSecondaryVariant = ({
749
661
  title,
750
662
  description,
@@ -760,22 +672,18 @@ var CardSecondaryVariant = ({
760
672
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
761
673
  "div",
762
674
  {
763
- className: [CardSecondaryVariant_default.card, className ?? ""].filter(Boolean).join(" "),
675
+ className: ["card-secondary", className ?? ""].filter(Boolean).join(" "),
764
676
  ...props,
765
677
  children: [
766
- showIcon && icon && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: CardSecondaryVariant_default.icon, children: icon }),
767
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: CardSecondaryVariant_default.title, children: title }),
768
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: CardSecondaryVariant_default.description, children: description }),
769
- showLink && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
770
- "button",
678
+ showIcon && icon && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "cs-icon", children: icon }),
679
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "cs-title", children: title }),
680
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "cs-description", children: description }),
681
+ showLink && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
682
+ Link,
771
683
  {
772
- className: CardSecondaryVariant_default.link,
773
- onClick: onLinkClick,
774
- type: "button",
775
- children: [
776
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { children: linkText }),
777
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ArrowRightIcon2, {})
778
- ]
684
+ colorScheme: "coral",
685
+ label: linkText,
686
+ onClick: onLinkClick
779
687
  }
780
688
  )
781
689
  ]
@@ -783,9 +691,6 @@ var CardSecondaryVariant = ({
783
691
  );
784
692
  };
785
693
 
786
- // components/Card/CardThumbnailVariant.module.css
787
- var CardThumbnailVariant_default = {};
788
-
789
694
  // components/Card/CardThumbnailVariant.tsx
790
695
  var import_jsx_runtime12 = require("react/jsx-runtime");
791
696
  var LinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
@@ -856,30 +761,30 @@ var CardThumbnailVariant = ({
856
761
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
857
762
  "div",
858
763
  {
859
- className: [CardThumbnailVariant_default.card, className ?? ""].filter(Boolean).join(" "),
764
+ className: ["card-thumbnail", className ?? ""].filter(Boolean).join(" "),
860
765
  ...props,
861
766
  children: [
862
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: CardThumbnailVariant_default.thumbnailWrapper, children: [
863
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: thumbnailAlt, className: CardThumbnailVariant_default.thumbnailImage, src: thumbnail }),
864
- isVideo && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { "aria-label": "Play video", className: CardThumbnailVariant_default.playButton, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PlayIcon, {}) }),
865
- !isVideo && avatar && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: avatarAlt, className: CardThumbnailVariant_default.avatar, src: avatar })
767
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ct-thumbnailWrapper", children: [
768
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: thumbnailAlt, className: "ct-thumbnailImage", src: thumbnail }),
769
+ isVideo && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { "aria-label": "Play video", className: "ct-playButton", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(PlayIcon, {}) }),
770
+ !isVideo && avatar && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: avatarAlt, className: "ct-avatar", src: avatar })
866
771
  ] }),
867
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: CardThumbnailVariant_default.content, children: [
868
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: CardThumbnailVariant_default.metaRow, children: [
869
- !hideTags && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: CardThumbnailVariant_default.tagsList, children: tags.map((tag, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Tag, { icon: tag.icon, label: tag.label, size: "md", variant: "fill" }, i)) }),
772
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ct-content", children: [
773
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ct-metaRow", children: [
774
+ !hideTags && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ct-tagsList", children: tags.map((tag, i) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Tag, { icon: tag.icon, label: tag.label, size: "md", variant: "fill" }, i)) }),
870
775
  showCopyLink && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
871
776
  "button",
872
777
  {
873
778
  "aria-label": "Copy link",
874
- className: CardThumbnailVariant_default.copyLink,
779
+ className: "ct-copyLink",
875
780
  onClick: onCopyLink,
876
781
  type: "button",
877
782
  children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LinkIcon, {})
878
783
  }
879
784
  )
880
785
  ] }),
881
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: CardThumbnailVariant_default.title, children: title }),
882
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: CardThumbnailVariant_default.summary, children: summary })
786
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "ct-title", children: title }),
787
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "ct-summary", children: summary })
883
788
  ] })
884
789
  ]
885
790
  }
@@ -898,9 +803,6 @@ var Card = (props) => {
898
803
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CardThumbnailVariant, { ...props });
899
804
  };
900
805
 
901
- // primitives/Pagination/Pagination.module.css
902
- var Pagination_default = {};
903
-
904
806
  // primitives/Pagination/Pagination.tsx
905
807
  var import_jsx_runtime14 = require("react/jsx-runtime");
906
808
  var ChevronLeft = () => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("path", { d: "M10 12L6 8L10 4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
@@ -929,17 +831,17 @@ var Pagination = ({
929
831
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
930
832
  "nav",
931
833
  {
932
- className: [Pagination_default.pagination, className ?? ""].filter(Boolean).join(" "),
834
+ className: ["pagination", className ?? ""].filter(Boolean).join(" "),
933
835
  "aria-label": "Pagination navigation",
934
836
  children: [
935
837
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
936
838
  "button",
937
839
  {
938
- className: [Pagination_default.navButton, isPrevDisabled ? Pagination_default.navButtonDisabled : ""].filter(Boolean).join(" "),
840
+ className: ["navButton", isPrevDisabled ? "navButtonDisabled" : ""].filter(Boolean).join(" "),
939
841
  onClick: () => onPageChange(currentPage - 1),
940
842
  disabled: isPrevDisabled,
941
843
  "aria-label": "Previous page",
942
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: Pagination_default.navIcon, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChevronLeft, {}) })
844
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "navIcon", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChevronLeft, {}) })
943
845
  }
944
846
  ),
945
847
  items.map((item, index) => {
@@ -947,7 +849,7 @@ var Pagination = ({
947
849
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
948
850
  "span",
949
851
  {
950
- className: Pagination_default.ellipsis,
852
+ className: "ellipsis",
951
853
  "aria-hidden": "true",
952
854
  children: "\u2026"
953
855
  },
@@ -958,7 +860,7 @@ var Pagination = ({
958
860
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
959
861
  "button",
960
862
  {
961
- className: [Pagination_default.pageButton, isSelected ? Pagination_default.pageButtonSelected : ""].filter(Boolean).join(" "),
863
+ className: ["pageButton", isSelected ? "pageButtonSelected" : ""].filter(Boolean).join(" "),
962
864
  onClick: () => {
963
865
  if (!isSelected) onPageChange(item);
964
866
  },
@@ -972,17 +874,59 @@ var Pagination = ({
972
874
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
973
875
  "button",
974
876
  {
975
- className: [Pagination_default.navButton, isNextDisabled ? Pagination_default.navButtonDisabled : ""].filter(Boolean).join(" "),
877
+ className: ["navButton", isNextDisabled ? "navButtonDisabled" : ""].filter(Boolean).join(" "),
976
878
  onClick: () => onPageChange(currentPage + 1),
977
879
  disabled: isNextDisabled,
978
880
  "aria-label": "Next page",
979
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: Pagination_default.navIcon, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChevronRight, {}) })
881
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "navIcon", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ChevronRight, {}) })
980
882
  }
981
883
  )
982
884
  ]
983
885
  }
984
886
  );
985
887
  };
888
+
889
+ // templates/FeatureCards/FeatureCards.tsx
890
+ var import_jsx_runtime15 = require("react/jsx-runtime");
891
+ var FeatureCards = ({
892
+ sectionTitle,
893
+ sectionDescription,
894
+ showLink = false,
895
+ linkText = "Learn more",
896
+ onLinkClick,
897
+ cardColorScheme = "image",
898
+ cards
899
+ }) => {
900
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("section", { className: "fc-section", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "fc-container", children: [
901
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "fc-header", children: [
902
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h2", { className: "fc-sectionTitle", children: sectionTitle }),
903
+ sectionDescription && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "fc-sectionDescription", children: sectionDescription }),
904
+ showLink && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
905
+ Link,
906
+ {
907
+ colorScheme: "coral",
908
+ label: linkText,
909
+ onClick: onLinkClick
910
+ }
911
+ )
912
+ ] }),
913
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "fc-grid", children: cards.map((card, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
914
+ Card,
915
+ {
916
+ variant: "primary",
917
+ colorScheme: card.colorScheme ?? cardColorScheme,
918
+ title: card.title,
919
+ description: card.description,
920
+ image: card.image,
921
+ imageAlt: card.imageAlt,
922
+ showLink: card.showLink,
923
+ linkText: card.linkText,
924
+ onLinkClick: card.onLinkClick
925
+ },
926
+ index
927
+ )) })
928
+ ] }) });
929
+ };
986
930
  // Annotate the CommonJS export names for ESM import in node:
987
931
  0 && (module.exports = {
988
932
  Accordion,
@@ -991,6 +935,7 @@ var Pagination = ({
991
935
  Card,
992
936
  Chip,
993
937
  ChipDropdown,
938
+ FeatureCards,
994
939
  Link,
995
940
  Pagination,
996
941
  SearchField,