@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/README.md +77 -0
- package/dist/index.css +264 -240
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +24 -1
- package/dist/index.d.ts +24 -1
- package/dist/index.js +159 -214
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +158 -214
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
- package/tokens.css +17 -193
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
|
-
|
|
58
|
-
|
|
59
|
-
isIconOnly ?
|
|
60
|
-
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
hasIcon ?
|
|
104
|
-
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:
|
|
124
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className:
|
|
125
|
-
!hasIcon && showChevron && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className:
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
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:
|
|
163
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className:
|
|
164
|
-
tag && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className:
|
|
165
|
-
showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className:
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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:
|
|
195
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className:
|
|
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 = [
|
|
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:
|
|
224
|
+
className: "header",
|
|
241
225
|
onClick: handleToggle,
|
|
242
226
|
"aria-expanded": isOpen,
|
|
243
227
|
children: [
|
|
244
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className:
|
|
245
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: [
|
|
246
|
-
showFocusRing && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className:
|
|
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: [
|
|
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
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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:
|
|
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:
|
|
298
|
-
status === "fail" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className:
|
|
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
|
-
|
|
376
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
399
|
-
showFailIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className:
|
|
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:
|
|
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:
|
|
450
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className:
|
|
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
|
-
|
|
464
|
-
|
|
465
|
-
truncatable ?
|
|
466
|
-
truncatable && 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:
|
|
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:
|
|
480
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("li", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
493
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className:
|
|
494
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { className:
|
|
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
|
-
|
|
577
|
-
|
|
578
|
-
isSelected ?
|
|
579
|
-
open ?
|
|
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:
|
|
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:
|
|
599
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className:
|
|
600
|
-
tag && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className:
|
|
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: [
|
|
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:
|
|
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
|
-
|
|
627
|
-
isActive ?
|
|
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:
|
|
635
|
-
isActive && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className:
|
|
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
|
-
|
|
691
|
-
|
|
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:
|
|
697
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { alt: "", className:
|
|
698
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className:
|
|
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:
|
|
701
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: [
|
|
702
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: [
|
|
703
|
-
showLink && /* @__PURE__ */ (0, import_jsx_runtime10.
|
|
704
|
-
|
|
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
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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:
|
|
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: [
|
|
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:
|
|
767
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className:
|
|
768
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className:
|
|
769
|
-
showLink && /* @__PURE__ */ (0, import_jsx_runtime11.
|
|
770
|
-
|
|
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
|
-
|
|
773
|
-
|
|
774
|
-
|
|
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: [
|
|
764
|
+
className: ["card-thumbnail", className ?? ""].filter(Boolean).join(" "),
|
|
860
765
|
...props,
|
|
861
766
|
children: [
|
|
862
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className:
|
|
863
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: thumbnailAlt, className:
|
|
864
|
-
isVideo && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { "aria-label": "Play video", className:
|
|
865
|
-
!isVideo && avatar && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { alt: avatarAlt, className:
|
|
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:
|
|
868
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className:
|
|
869
|
-
!hideTags && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className:
|
|
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:
|
|
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:
|
|
882
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className:
|
|
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: [
|
|
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: [
|
|
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:
|
|
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:
|
|
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: [
|
|
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: [
|
|
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:
|
|
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,
|