@common-origin/design-system 2.21.0 → 2.22.0
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/client.js +222 -206
- package/dist/client.js.map +1 -1
- package/dist/components/atoms/Badge/Badge.d.mts +16 -4
- package/dist/components/atoms/Badge/Badge.d.ts +16 -4
- package/dist/components/atoms/Badge/Badge.mjs +4 -5
- package/dist/components/atoms/Badge/index.d.mts +1 -1
- package/dist/components/atoms/Badge/index.d.ts +1 -1
- package/dist/components/atoms/Button/Button.mjs +1 -1
- package/dist/components/atoms/CategoryLabel/CategoryLabel.d.mts +23 -8
- package/dist/components/atoms/CategoryLabel/CategoryLabel.d.ts +23 -8
- package/dist/components/atoms/CategoryLabel/CategoryLabel.mjs +31 -18
- package/dist/components/atoms/CategoryLabel/index.d.mts +1 -1
- package/dist/components/atoms/CategoryLabel/index.d.ts +1 -1
- package/dist/components/atoms/Chip/SuggestionChip.mjs +1 -1
- package/dist/components/atoms/Chip/shared/utils.mjs +1 -1
- package/dist/components/atoms/Chip/shared/utils.mjs.map +1 -1
- package/dist/components/atoms/Icon/Icon.mjs +1 -1
- package/dist/components/atoms/MoneyDisplay/MoneyDisplay.mjs +14 -60
- package/dist/components/atoms/StatusBadge/StatusBadge.d.mts +3 -2
- package/dist/components/atoms/StatusBadge/StatusBadge.d.ts +3 -2
- package/dist/components/atoms/StatusBadge/StatusBadge.mjs +1 -1
- package/dist/components/atoms/StatusBadge/StatusBadge.mjs.map +1 -1
- package/dist/components/atoms/StatusLabel/StatusLabel.d.mts +5 -2
- package/dist/components/atoms/StatusLabel/StatusLabel.d.ts +5 -2
- package/dist/components/atoms/StatusLabel/StatusLabel.mjs +5 -2
- package/dist/components/atoms/StatusLabel/StatusLabel.mjs.map +1 -1
- package/dist/components/atoms/StatusLabel/StatusLabelBase.d.mts +2 -2
- package/dist/components/atoms/StatusLabel/StatusLabelBase.d.ts +2 -2
- package/dist/components/atoms/StatusLabel/StatusLabelBase.mjs +19 -13
- package/dist/components/atoms/StatusLabel/StatusShape.d.mts +4 -0
- package/dist/components/atoms/StatusLabel/StatusShape.d.ts +4 -0
- package/dist/components/atoms/StatusLabel/StatusShape.mjs +31 -0
- package/dist/components/atoms/StatusLabel/StatusShape.mjs.map +1 -0
- package/dist/components/atoms/Typography/Typography.mjs +2 -2
- package/dist/components/molecules/AccountCard/AccountCard.mjs +21 -13
- package/dist/components/molecules/Alert/Alert.d.mts +4 -4
- package/dist/components/molecules/Alert/Alert.d.ts +4 -4
- package/dist/components/molecules/Alert/Alert.mjs +5 -4
- package/dist/components/molecules/CodeBlock/CodeBlock.mjs +1 -1
- package/dist/components/molecules/Dropdown/Dropdown.mjs +2 -2
- package/dist/components/molecules/InlineAlert/InlineAlert.mjs +15 -5
- package/dist/components/molecules/TabBar/TabBar.mjs +3 -3
- package/dist/components/molecules/TransactionListItem/TransactionListItem.d.mts +1 -1
- package/dist/components/molecules/TransactionListItem/TransactionListItem.d.ts +1 -1
- package/dist/components/molecules/TransactionListItem/TransactionListItem.mjs +15 -31
- package/dist/data.js +505 -295
- package/dist/data.js.map +1 -1
- package/dist/lib/statusShapes.d.mts +2 -0
- package/dist/lib/statusShapes.d.ts +2 -0
- package/dist/lib/statusShapes.mjs +16 -0
- package/dist/lib/statusShapes.mjs.map +1 -0
- package/dist/lib/styleUtils.mjs +2 -2
- package/dist/lib/styleUtils.mjs.map +1 -1
- package/dist/lib/tokenAliases.mjs +15 -10
- package/dist/lib/tokenAliases.mjs.map +1 -1
- package/dist/styles/icons.json +141 -0
- package/dist/styles/icons.json.mjs +153 -2
- package/dist/styles/icons.json.mjs.map +1 -1
- package/dist/styles/tokens.d.mts +412 -122
- package/dist/styles/tokens.d.ts +412 -122
- package/dist/styles/tokens.json +353 -294
- package/dist/styles/tokens.json.mjs +353 -294
- package/dist/styles/tokens.json.mjs.map +1 -1
- package/dist/tokens/index.js +353 -294
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/index.mjs +353 -294
- package/dist/tokens/index.mjs.map +1 -1
- package/dist/tokens/styles/tokens.d.mts +412 -122
- package/dist/tokens/styles/tokens.d.ts +412 -122
- package/dist/tokens.css +257 -212
- package/dist/types/icons.d.mts +1 -1
- package/dist/types/icons.d.ts +1 -1
- package/dist/types/icons.mjs.map +1 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -167,7 +167,7 @@ var AvatarContainer = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
167
167
|
},
|
|
168
168
|
displayName: "Avatar__AvatarContainer",
|
|
169
169
|
componentId: "sc-ezn4ax-0"
|
|
170
|
-
})(templateObject_1$
|
|
170
|
+
})(templateObject_1$P || (templateObject_1$P = __makeTemplateObject(["\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n background-color: ", ";\n overflow: hidden;\n flex-shrink: 0;\n"], ["\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n background-color: ", ";\n overflow: hidden;\n flex-shrink: 0;\n"])), function (_a) {
|
|
171
171
|
var $size = _a.$size;
|
|
172
172
|
return size$4.avatar[$size];
|
|
173
173
|
}, function (_a) {
|
|
@@ -246,7 +246,7 @@ var Avatar = function Avatar(_a) {
|
|
|
246
246
|
})
|
|
247
247
|
}));
|
|
248
248
|
};
|
|
249
|
-
var templateObject_1$
|
|
249
|
+
var templateObject_1$P, templateObject_2$z, templateObject_3$w;
|
|
250
250
|
|
|
251
251
|
// Breakpoints from the semantic tokens (decision 0014)
|
|
252
252
|
var breakpoints$1 = {
|
|
@@ -281,7 +281,7 @@ var forcedColorsEdge = "".concat(forcedColors, " {\n border: ").concat(tokens.s
|
|
|
281
281
|
var reducedMotion = '@media (prefers-reduced-motion: reduce)';
|
|
282
282
|
// No `from` keyframe: the fade starts from the element's current opacity, including a
|
|
283
283
|
// still-running entrance, so closing mid-entrance doesn't jump back to fully visible.
|
|
284
|
-
var fadeOut$1 = styled.keyframes(templateObject_1$
|
|
284
|
+
var fadeOut$1 = styled.keyframes(templateObject_1$O || (templateObject_1$O = __makeTemplateObject(["\n to { opacity: 0; }\n"], ["\n to { opacity: 0; }\n"
|
|
285
285
|
// Exit for overlays that unmount (use with usePresence). Append `exitAnimation` to each of
|
|
286
286
|
// the element's `animation` declarations while it exits: the entrance stays in the list,
|
|
287
287
|
// so it isn't restarted, and the fade runs on top of it. A fade is already the
|
|
@@ -333,11 +333,11 @@ var rowStates = {
|
|
|
333
333
|
},
|
|
334
334
|
hover: {
|
|
335
335
|
background: rowFill['accent-muted-hover'],
|
|
336
|
-
text: rowText
|
|
336
|
+
text: rowText.accent
|
|
337
337
|
},
|
|
338
338
|
pressed: {
|
|
339
339
|
background: rowFill['accent-muted-pressed'],
|
|
340
|
-
text: rowText
|
|
340
|
+
text: rowText.accent
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
};
|
|
@@ -399,7 +399,7 @@ var rowForcedColors = function rowForcedColors(_a) {
|
|
|
399
399
|
// the descendants' own rules.
|
|
400
400
|
return "".concat(forcedColors, " {\n ").concat(selected ? "background-color: Highlight;\n ".concat(text('HighlightText'), "\n && * {\n color: inherit;\n background-color: transparent;\n }") : '', "\n ").concat(!disabled && focused ? hover : '', "\n ").concat(disabled ? '' : "&:hover {\n ".concat(hover, "\n }"), "\n }");
|
|
401
401
|
};
|
|
402
|
-
var templateObject_1$
|
|
402
|
+
var templateObject_1$O, templateObject_2$y, templateObject_3$v;
|
|
403
403
|
|
|
404
404
|
var _a$a = tokens.semantic,
|
|
405
405
|
typography$3 = _a$a.typography,
|
|
@@ -421,7 +421,7 @@ var getTypographyStyles = function getTypographyStyles(variant) {
|
|
|
421
421
|
caption: "font: ".concat(typography$3.caption, "; text-transform: uppercase;"),
|
|
422
422
|
button1: "font: ".concat(tokens.component.button.sizes.large.font, ";"),
|
|
423
423
|
button2: "font: ".concat(tokens.component.button.sizes.medium.font, ";"),
|
|
424
|
-
button3: "font: ".concat(tokens.component.button.sizes.small.font, ";"),
|
|
424
|
+
button3: "font: ".concat(tokens.component.button.sizes.small.font, "; font-weight: ").concat(tokens.component.button.sizes.small.fontWeight, ";"),
|
|
425
425
|
label: "font: ".concat(typography$3.label, ";")
|
|
426
426
|
};
|
|
427
427
|
return styles[variant] || styles.body;
|
|
@@ -429,7 +429,7 @@ var getTypographyStyles = function getTypographyStyles(variant) {
|
|
|
429
429
|
var getTextColor = function getTextColor(colorVariant) {
|
|
430
430
|
var colorMap = {
|
|
431
431
|
"default": color$c.text["default"],
|
|
432
|
-
emphasis: color$c.text
|
|
432
|
+
emphasis: color$c.text["default"],
|
|
433
433
|
subdued: color$c.text.muted,
|
|
434
434
|
inverse: color$c.text.inverse,
|
|
435
435
|
disabled: color$c.text.disabled,
|
|
@@ -467,7 +467,7 @@ var StyledTypography = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
467
467
|
},
|
|
468
468
|
displayName: "Typography__StyledTypography",
|
|
469
469
|
componentId: "sc-17mqo4k-0"
|
|
470
|
-
})(templateObject_1$
|
|
470
|
+
})(templateObject_1$N || (templateObject_1$N = __makeTemplateObject(["\n ", "\n color: ", ";\n margin: 0;\n"], ["\n ", "\n color: ", ";\n margin: 0;\n"
|
|
471
471
|
/**
|
|
472
472
|
* Typography is an atomic component for rendering text with semantic meaning and consistent styling.
|
|
473
473
|
*
|
|
@@ -529,7 +529,7 @@ var Typography = function Typography(_a) {
|
|
|
529
529
|
children: children
|
|
530
530
|
});
|
|
531
531
|
};
|
|
532
|
-
var templateObject_1$
|
|
532
|
+
var templateObject_1$N;
|
|
533
533
|
|
|
534
534
|
var semantic$m = tokens.semantic;
|
|
535
535
|
var color$b = semantic$m.color;
|
|
@@ -538,7 +538,7 @@ var _a$9 = tokens.component.badge,
|
|
|
538
538
|
dot = _a$9.dot,
|
|
539
539
|
count = _a$9.count,
|
|
540
540
|
ring = _a$9.ring;
|
|
541
|
-
var scaleIn$2 = styled.keyframes(templateObject_1$
|
|
541
|
+
var scaleIn$2 = styled.keyframes(templateObject_1$M || (templateObject_1$M = __makeTemplateObject(["\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n"], ["\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n"])));
|
|
542
542
|
var BadgeWrapper = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
543
543
|
displayName: "Badge__BadgeWrapper",
|
|
544
544
|
componentId: "sc-tjz4pp-0"
|
|
@@ -561,16 +561,15 @@ var BadgeIndicator = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
561
561
|
return props.$isDot ? "".concat(forcedColors, " { forced-color-adjust: none; background-color: CanvasText; }") : "".concat(forcedColors, " { border: ").concat(semantic$m.border.width.thin, " solid currentColor; }");
|
|
562
562
|
}, function (props) {
|
|
563
563
|
switch (props.$variant) {
|
|
564
|
+
// 'primary', 'error', 'warning' and 'success' are deprecated aliases for 'accent', removed in
|
|
565
|
+
// 3.0: 'primary' (#169), and the status colours, because a badge's colour alone can't carry a
|
|
566
|
+
// status (decision 0045, #263)
|
|
564
567
|
case 'accent':
|
|
565
568
|
case 'primary':
|
|
566
|
-
// Deprecated alias for 'accent', removed in 3.0 (#169)
|
|
567
|
-
return "\n background-color: ".concat(color$b.fill.accent, ";\n color: ").concat(color$b.text.inverse, ";\n ");
|
|
568
569
|
case 'error':
|
|
569
|
-
return "\n background-color: ".concat(color$b.fill.danger, ";\n color: ").concat(color$b.text.inverse, ";\n ");
|
|
570
570
|
case 'warning':
|
|
571
|
-
return "\n background-color: ".concat(color$b.fill.warning, ";\n color: ").concat(color$b.text.inverse, ";\n ");
|
|
572
571
|
case 'success':
|
|
573
|
-
return "\n background-color: ".concat(color$b.fill.
|
|
572
|
+
return "\n background-color: ".concat(color$b.fill.accent, ";\n color: ").concat(color$b.text.inverse, ";\n ");
|
|
574
573
|
default:
|
|
575
574
|
return "\n background-color: ".concat(color$b.fill.emphasis, ";\n color: ").concat(color$b.text.inverse, ";\n ");
|
|
576
575
|
}
|
|
@@ -616,7 +615,7 @@ var Badge = function Badge(_a) {
|
|
|
616
615
|
})]
|
|
617
616
|
});
|
|
618
617
|
};
|
|
619
|
-
var templateObject_1$
|
|
618
|
+
var templateObject_1$M, templateObject_2$x, templateObject_3$u, templateObject_4$n;
|
|
620
619
|
|
|
621
620
|
// Props whose values are token keys keep their published vocabulary in 2.x (P7), but read the
|
|
622
621
|
// semantic grammar's names (decision 0031, #189). Each map covers every key the prop type allows,
|
|
@@ -625,7 +624,8 @@ var semantic$l = tokens.semantic;
|
|
|
625
624
|
var color$a = semantic$l.color,
|
|
626
625
|
space$e = semantic$l.space,
|
|
627
626
|
radius$4 = semantic$l.radius,
|
|
628
|
-
surface = semantic$l.surface
|
|
627
|
+
surface = semantic$l.surface,
|
|
628
|
+
opacity = semantic$l.opacity;
|
|
629
629
|
/** Box's spacing props (`p`, `m`, `gap`…): the old layout scale's keys, read from `space`. */
|
|
630
630
|
var spaceByLayoutKey = {
|
|
631
631
|
none: space$e[0],
|
|
@@ -666,8 +666,9 @@ var backgroundByKey = {
|
|
|
666
666
|
subtle: surface.raised,
|
|
667
667
|
overlay: surface.scrim,
|
|
668
668
|
emphasis: color$a.fill.emphasis,
|
|
669
|
-
|
|
670
|
-
'emphasis-
|
|
669
|
+
// A strong fill's states mix its content colour in at the state-layer opacity (decision 0048)
|
|
670
|
+
'emphasis-hover': "color-mix(in srgb, ".concat(color$a.fill.emphasis, ", ").concat(color$a.text.inverse, " calc(").concat(opacity.state.hover, " * 100%))"),
|
|
671
|
+
'emphasis-active': "color-mix(in srgb, ".concat(color$a.fill.emphasis, ", ").concat(color$a.text.inverse, " calc(").concat(opacity.state.pressed, " * 100%))"),
|
|
671
672
|
surface: color$a.fill.muted,
|
|
672
673
|
inverse: color$a.fill.inverse,
|
|
673
674
|
interactive: color$a.fill.accent,
|
|
@@ -698,21 +699,22 @@ var backgroundByKey = {
|
|
|
698
699
|
/** Box's `color` prop: text colours, old and new keys. */
|
|
699
700
|
var textColorByKey = {
|
|
700
701
|
"default": color$a.text["default"],
|
|
701
|
-
emphasis: color$a.text
|
|
702
|
+
emphasis: color$a.text["default"],
|
|
702
703
|
inverse: color$a.text.inverse,
|
|
703
704
|
disabled: color$a.text.disabled,
|
|
704
705
|
success: color$a.text.success,
|
|
705
706
|
warning: color$a.text.warning,
|
|
706
707
|
muted: color$a.text.muted,
|
|
707
708
|
accent: color$a.text.accent,
|
|
708
|
-
'accent-hover': color$a.text
|
|
709
|
-
'accent-pressed': color$a.text
|
|
709
|
+
'accent-hover': color$a.text.accent,
|
|
710
|
+
'accent-pressed': color$a.text.accent,
|
|
710
711
|
danger: color$a.text.danger,
|
|
712
|
+
serious: color$a.text.serious,
|
|
711
713
|
ai: color$a.text.ai,
|
|
712
714
|
subdued: color$a.text.muted,
|
|
713
715
|
interactive: color$a.text.accent,
|
|
714
|
-
'interactive-hover': color$a.text
|
|
715
|
-
'interactive-active': color$a.text
|
|
716
|
+
'interactive-hover': color$a.text.accent,
|
|
717
|
+
'interactive-active': color$a.text.accent,
|
|
716
718
|
error: color$a.text.danger
|
|
717
719
|
};
|
|
718
720
|
/** Box's border props: border colours, old and new keys. */
|
|
@@ -721,13 +723,15 @@ var borderColorByKey = {
|
|
|
721
723
|
success: color$a.border.success,
|
|
722
724
|
warning: color$a.border.warning,
|
|
723
725
|
none: color$a.border.none,
|
|
724
|
-
emphasis: color$a.border
|
|
726
|
+
emphasis: color$a.border["default"],
|
|
725
727
|
input: color$a.border.input,
|
|
726
728
|
'input-hover': color$a.border['input-hover'],
|
|
727
729
|
focus: color$a.border.focus,
|
|
728
730
|
accent: color$a.border.accent,
|
|
729
731
|
danger: color$a.border.danger,
|
|
730
|
-
|
|
732
|
+
serious: color$a.border.serious,
|
|
733
|
+
ai: color$a.border.ai,
|
|
734
|
+
subtle: color$a.border["default"],
|
|
731
735
|
control: color$a.border.input,
|
|
732
736
|
// `strong` split by use (0031); as a generic firm outline it is the hovered-input border
|
|
733
737
|
strong: color$a.border['input-hover'],
|
|
@@ -744,7 +748,7 @@ var StyledBox = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
744
748
|
})(templateObject_51 || (templateObject_51 = __makeTemplateObject(["\n ", "\n \n // Flexbox\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Margin\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Padding\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Size\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Position\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Borders\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Background & Color\n ", "\n ", "\n \n // Elevation (shadow)\n ", "\n \n // Cursor\n ", "\n \n // Transition\n ", "\n \n // Hover states\n ", "\n \n // Overflow\n ", "\n ", "\n ", "\n"], ["\n ", "\n \n // Flexbox\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Margin\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Padding\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Size\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Position\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Borders\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n // Background & Color\n ", "\n ", "\n \n // Elevation (shadow)\n ", "\n \n // Cursor\n ", "\n \n // Transition\n ", "\n \n // Hover states\n ", "\n \n // Overflow\n ", "\n ", "\n ", "\n"
|
|
745
749
|
// Transform component that maps clean props to $-prefixed props for styled-components
|
|
746
750
|
])), function (props) {
|
|
747
|
-
return props.$display && styled.css(templateObject_1$
|
|
751
|
+
return props.$display && styled.css(templateObject_1$L || (templateObject_1$L = __makeTemplateObject(["display: ", ";"], ["display: ", ";"])), props.$display);
|
|
748
752
|
}, function (props) {
|
|
749
753
|
return props.$flexDirection && styled.css(templateObject_2$w || (templateObject_2$w = __makeTemplateObject(["flex-direction: ", ";"], ["flex-direction: ", ";"])), props.$flexDirection);
|
|
750
754
|
}, function (props) {
|
|
@@ -968,7 +972,7 @@ var BoxTransform = function BoxTransform(props) {
|
|
|
968
972
|
}));
|
|
969
973
|
};
|
|
970
974
|
var Box = BoxTransform;
|
|
971
|
-
var templateObject_1$
|
|
975
|
+
var templateObject_1$L, templateObject_2$w, templateObject_3$t, templateObject_4$m, templateObject_5$i, templateObject_6$d, templateObject_7$b, templateObject_8$8, templateObject_9$6, templateObject_10$4, templateObject_11$4, templateObject_12$4, templateObject_13$4, templateObject_14$2, templateObject_15$2, templateObject_16$2, templateObject_17$2, templateObject_18$2, templateObject_19$2, templateObject_20$2, templateObject_21$2, templateObject_22$2, templateObject_23$2, templateObject_24$2, templateObject_25$2, templateObject_26$2, templateObject_27$2, templateObject_28$2, templateObject_29$2, templateObject_30$2, templateObject_31$2, templateObject_32$2, templateObject_33$2, templateObject_34$1, templateObject_35$1, templateObject_36, templateObject_37, templateObject_38, templateObject_39, templateObject_40, templateObject_41, templateObject_42, templateObject_43, templateObject_44, templateObject_45, templateObject_46, templateObject_47, templateObject_48, templateObject_49, templateObject_50, templateObject_51;
|
|
972
976
|
|
|
973
977
|
var IconStyled = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
974
978
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
@@ -976,7 +980,7 @@ var IconStyled = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
976
980
|
},
|
|
977
981
|
displayName: "Icon__IconStyled",
|
|
978
982
|
componentId: "sc-1105czq-0"
|
|
979
|
-
})(templateObject_1$
|
|
983
|
+
})(templateObject_1$K || (templateObject_1$K = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n \n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n \n /* Use semantic icon colors */\n color: ", ";\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n \n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n \n /* Use semantic icon colors */\n color: ", ";\n"])), function (_a) {
|
|
980
984
|
var $size = _a.$size;
|
|
981
985
|
return tokens.semantic.size.icon[$size];
|
|
982
986
|
}, function (_a) {
|
|
@@ -988,7 +992,7 @@ var IconStyled = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
988
992
|
case 'default':
|
|
989
993
|
return tokens.semantic.color.icon["default"];
|
|
990
994
|
case 'emphasis':
|
|
991
|
-
return tokens.semantic.color.icon
|
|
995
|
+
return tokens.semantic.color.icon["default"];
|
|
992
996
|
case 'subdued':
|
|
993
997
|
return tokens.semantic.color.icon.muted;
|
|
994
998
|
case 'disabled':
|
|
@@ -1053,7 +1057,7 @@ var Icon = function Icon(_a) {
|
|
|
1053
1057
|
}))
|
|
1054
1058
|
});
|
|
1055
1059
|
};
|
|
1056
|
-
var templateObject_1$
|
|
1060
|
+
var templateObject_1$K;
|
|
1057
1061
|
|
|
1058
1062
|
var button$1 = tokens.component.button,
|
|
1059
1063
|
semantic$k = tokens.semantic;
|
|
@@ -1126,7 +1130,7 @@ var getSizeStyles = function getSizeStyles(_a) {
|
|
|
1126
1130
|
var $size = _a.$size;
|
|
1127
1131
|
switch ($size) {
|
|
1128
1132
|
case 'small':
|
|
1129
|
-
return "\n font: ".concat(button$1.sizes.small.font, ";\n min-height: ").concat(control$1.sm, ";\n padding: 0 ").concat(inset.md, ";\n ");
|
|
1133
|
+
return "\n font: ".concat(button$1.sizes.small.font, ";\n font-weight: ").concat(button$1.sizes.small.fontWeight, ";\n min-height: ").concat(control$1.sm, ";\n padding: 0 ").concat(inset.md, ";\n ");
|
|
1130
1134
|
case 'medium':
|
|
1131
1135
|
return "\n font: ".concat(button$1.sizes.medium.font, ";\n min-height: ").concat(control$1.md, ";\n padding: 0 ").concat(inset.lg, ";\n ");
|
|
1132
1136
|
case 'large':
|
|
@@ -1140,7 +1144,7 @@ var StyledButton = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
|
1140
1144
|
},
|
|
1141
1145
|
displayName: "Button__StyledButton",
|
|
1142
1146
|
componentId: "sc-1eiuum9-0"
|
|
1143
|
-
})(templateObject_1$
|
|
1147
|
+
})(templateObject_1$J || (templateObject_1$J = __makeTemplateObject(["\n ", "\n border-radius: ", ";\n \n ", "\n ", "\n"], ["\n ", "\n border-radius: ", ";\n \n ", "\n ", "\n"])), baseButtonStyles, button$1.primary.borderRadius, getVariantStyles$1, getSizeStyles);
|
|
1144
1148
|
var StyledLink = /*#__PURE__*/styled__default.default.a.withConfig({
|
|
1145
1149
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
1146
1150
|
return !prop.startsWith('$');
|
|
@@ -1250,7 +1254,7 @@ var Button = function Button(_a) {
|
|
|
1250
1254
|
children: renderButtonContent(children, iconName, size)
|
|
1251
1255
|
}));
|
|
1252
1256
|
};
|
|
1253
|
-
var templateObject_1$
|
|
1257
|
+
var templateObject_1$J, templateObject_2$v;
|
|
1254
1258
|
|
|
1255
1259
|
var semantic$j = tokens.semantic;
|
|
1256
1260
|
var color$9 = semantic$j.color;
|
|
@@ -1259,15 +1263,26 @@ var category = color$9.category;
|
|
|
1259
1263
|
var radius$3 = semantic$j.radius;
|
|
1260
1264
|
var space$d = semantic$j.space;
|
|
1261
1265
|
var labelHeight$1 = semantic$j.size.label;
|
|
1262
|
-
|
|
1266
|
+
var displayColor = {
|
|
1267
|
+
olive: 'olive',
|
|
1268
|
+
periwinkle: 'periwinkle',
|
|
1269
|
+
rose: 'rose',
|
|
1270
|
+
magenta: 'magenta',
|
|
1271
|
+
gray: 'gray',
|
|
1272
|
+
blue: 'periwinkle',
|
|
1273
|
+
purple: 'magenta',
|
|
1274
|
+
pink: 'rose',
|
|
1275
|
+
yellow: 'olive',
|
|
1276
|
+
green: 'olive',
|
|
1277
|
+
red: 'rose',
|
|
1278
|
+
orange: 'rose'
|
|
1279
|
+
};
|
|
1280
|
+
// Text on white or the -muted fill (outlined and minimal), at least 4.5:1 (#115)
|
|
1263
1281
|
var categoryText = {
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
green: category['green-text'],
|
|
1269
|
-
red: category['red-text'],
|
|
1270
|
-
orange: category['orange-text'],
|
|
1282
|
+
olive: category['olive-text'],
|
|
1283
|
+
periwinkle: category['periwinkle-text'],
|
|
1284
|
+
rose: category['rose-text'],
|
|
1285
|
+
magenta: category['magenta-text'],
|
|
1271
1286
|
gray: category['gray-text']
|
|
1272
1287
|
};
|
|
1273
1288
|
var StyledCategoryLabel = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
@@ -1276,7 +1291,7 @@ var StyledCategoryLabel = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
1276
1291
|
},
|
|
1277
1292
|
displayName: "CategoryLabel__StyledCategoryLabel",
|
|
1278
1293
|
componentId: "sc-1jx7bjo-0"
|
|
1279
|
-
})(templateObject_1$
|
|
1294
|
+
})(templateObject_1$I || (templateObject_1$I = __makeTemplateObject(["\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ", ";\n white-space: nowrap;\n user-select: none;\n border-style: solid;\n border-width: ", ";\n \n /* Size styles */\n height: ", ";\n padding: ", ";\n font: ", ";\n /* After the font shorthand, which would otherwise reset it */\n font-weight: ", ";\n gap: ", ";\n \n /* Variant + Color styles */\n background-color: ", ";\n \n /* Outlined and minimal text uses the AA text token, not the base colour (issue 115) */\n color: ", ";\n \n border-color: ", ";\n"], ["\n box-sizing: border-box; /* the height includes padding and border, without relying on a global reset */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: ", ";\n white-space: nowrap;\n user-select: none;\n border-style: solid;\n border-width: ", ";\n \n /* Size styles */\n height: ", ";\n padding: ", ";\n font: ", ";\n /* After the font shorthand, which would otherwise reset it */\n font-weight: ", ";\n gap: ", ";\n \n /* Variant + Color styles */\n background-color: ", ";\n \n /* Outlined and minimal text uses the AA text token, not the base colour (issue 115) */\n color: ", ";\n \n border-color: ", ";\n"
|
|
1280
1295
|
// The visible content, hidden from assistive technology when an aria-label replaces it.
|
|
1281
1296
|
// display: contents keeps the root's flex layout and gap.
|
|
1282
1297
|
])), radius$3.full, semantic$j.border.width.thin, function (_a) {
|
|
@@ -1327,16 +1342,17 @@ var HiddenLabel = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
1327
1342
|
/**
|
|
1328
1343
|
* CategoryLabel colour-codes an item's category, such as a transaction's (decision 0018).
|
|
1329
1344
|
*
|
|
1330
|
-
* A static, chip-like label with
|
|
1331
|
-
* Category colours carry no
|
|
1345
|
+
* A static, chip-like label with 4 display colours plus grey, 3 visual variants and an optional
|
|
1346
|
+
* icon. Category colours carry no meaning (decision 0043); for status use StatusLabel. Beyond five
|
|
1347
|
+
* categories, the icon and text tell them apart.
|
|
1332
1348
|
*
|
|
1333
1349
|
* @example
|
|
1334
1350
|
* ```tsx
|
|
1335
|
-
* <CategoryLabel color="
|
|
1351
|
+
* <CategoryLabel color="rose" icon="creditCard">
|
|
1336
1352
|
* Shopping
|
|
1337
1353
|
* </CategoryLabel>
|
|
1338
1354
|
*
|
|
1339
|
-
* <CategoryLabel color="
|
|
1355
|
+
* <CategoryLabel color="periwinkle" variant="outlined" size="medium">
|
|
1340
1356
|
* Travel
|
|
1341
1357
|
* </CategoryLabel>
|
|
1342
1358
|
* ```
|
|
@@ -1344,16 +1360,17 @@ var HiddenLabel = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
1344
1360
|
/**
|
|
1345
1361
|
* CategoryLabel colour-codes an item's category, such as a transaction's (decision 0018).
|
|
1346
1362
|
*
|
|
1347
|
-
* A static, chip-like label with
|
|
1348
|
-
* Category colours carry no
|
|
1363
|
+
* A static, chip-like label with 4 display colours plus grey, 3 visual variants and an optional
|
|
1364
|
+
* icon. Category colours carry no meaning (decision 0043); for status use StatusLabel. Beyond five
|
|
1365
|
+
* categories, the icon and text tell them apart.
|
|
1349
1366
|
*
|
|
1350
1367
|
* @example
|
|
1351
1368
|
* ```tsx
|
|
1352
|
-
* <CategoryLabel color="
|
|
1369
|
+
* <CategoryLabel color="rose" icon="creditCard">
|
|
1353
1370
|
* Shopping
|
|
1354
1371
|
* </CategoryLabel>
|
|
1355
1372
|
*
|
|
1356
|
-
* <CategoryLabel color="
|
|
1373
|
+
* <CategoryLabel color="periwinkle" variant="outlined" size="medium">
|
|
1357
1374
|
* Travel
|
|
1358
1375
|
* </CategoryLabel>
|
|
1359
1376
|
* ```
|
|
@@ -1361,7 +1378,7 @@ var HiddenLabel = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
1361
1378
|
var CategoryLabel = function CategoryLabel(_a) {
|
|
1362
1379
|
var children = _a.children,
|
|
1363
1380
|
_b = _a.color,
|
|
1364
|
-
color = _b === void 0 ? '
|
|
1381
|
+
color = _b === void 0 ? 'periwinkle' : _b,
|
|
1365
1382
|
_c = _a.variant,
|
|
1366
1383
|
variant = _c === void 0 ? 'filled' : _c,
|
|
1367
1384
|
_d = _a.size,
|
|
@@ -1373,7 +1390,7 @@ var CategoryLabel = function CategoryLabel(_a) {
|
|
|
1373
1390
|
// A blank aria-label is no label at all, so it falls back like a missing one
|
|
1374
1391
|
var accessibleLabel = (ariaLabel === null || ariaLabel === void 0 ? void 0 : ariaLabel.trim()) ? ariaLabel : undefined;
|
|
1375
1392
|
return jsxRuntime.jsxs(StyledCategoryLabel, {
|
|
1376
|
-
"$color": color,
|
|
1393
|
+
"$color": displayColor[color],
|
|
1377
1394
|
"$variant": variant,
|
|
1378
1395
|
"$size": size,
|
|
1379
1396
|
"data-testid": dataTestId,
|
|
@@ -1390,7 +1407,7 @@ var CategoryLabel = function CategoryLabel(_a) {
|
|
|
1390
1407
|
});
|
|
1391
1408
|
};
|
|
1392
1409
|
CategoryLabel.displayName = 'CategoryLabel';
|
|
1393
|
-
var templateObject_1$
|
|
1410
|
+
var templateObject_1$I, templateObject_2$u, templateObject_3$s;
|
|
1394
1411
|
|
|
1395
1412
|
// CategoryBadge sizes on the decision 0018 scale
|
|
1396
1413
|
var toLabelSize = {
|
|
@@ -1435,7 +1452,7 @@ var getVariantStyles = function getVariantStyles(_a) {
|
|
|
1435
1452
|
fill = _b.fill,
|
|
1436
1453
|
text = _b.text;
|
|
1437
1454
|
var interactiveStates = $clickable;
|
|
1438
|
-
return "\n background-color: ".concat(fill['accent-muted'], ";\n color: ").concat(text.accent, ";\n \n &:hover {\n background-color: ").concat(interactiveStates ? fill['accent-muted-hover'] : fill['accent-muted'], ";\n color: ").concat(interactiveStates ? text
|
|
1455
|
+
return "\n background-color: ".concat(fill['accent-muted'], ";\n color: ").concat(text.accent, ";\n \n &:hover {\n background-color: ").concat(interactiveStates ? fill['accent-muted-hover'] : fill['accent-muted'], ";\n color: ").concat(interactiveStates ? text.accent : text.accent, ";\n }\n \n &:active {\n background-color: ").concat(interactiveStates ? fill['accent-muted-pressed'] : fill['accent-muted'], ";\n color: ").concat(interactiveStates ? text.accent : text.accent, ";\n }\n\n /* Forced colours drop the fill, so a selected chip takes the system selection colours\n (decision 0038); its checkmark follows the text colour */\n ").concat(forcedColors, " {\n forced-color-adjust: none;\n background-color: Highlight;\n border-color: Highlight;\n color: HighlightText;\n }\n ");
|
|
1439
1456
|
}
|
|
1440
1457
|
switch ($variant) {
|
|
1441
1458
|
case 'emphasis':
|
|
@@ -1463,7 +1480,7 @@ var StyledChip = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
1463
1480
|
},
|
|
1464
1481
|
displayName: "ChipBase__StyledChip",
|
|
1465
1482
|
componentId: "sc-moa6zc-0"
|
|
1466
|
-
})(templateObject_1$
|
|
1483
|
+
})(templateObject_1$H || (templateObject_1$H = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: fit-content;\n height: max-content;\n border-radius: ", ";\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: ", ";\n cursor: ", ";\n \n /* Forced colours: an edge, and GrayText when disabled, since a span gets no system disabled\n colour (decision 0038). Before the variant styles, so a selected chip's Highlight border wins. */\n ", "\n ", "\n\n ", "\n ", "\n \n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: fit-content;\n height: max-content;\n border-radius: ", ";\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: ", ";\n cursor: ", ";\n \n /* Forced colours: an edge, and GrayText when disabled, since a span gets no system disabled\n colour (decision 0038). Before the variant styles, so a selected chip's Highlight border wins. */\n ", "\n ", "\n\n ", "\n ", "\n \n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n\n"
|
|
1467
1484
|
// Icon container for selected indicator or leading icons
|
|
1468
1485
|
])), chip$1["default"].borderRadius, semantic$h.motion.transition.feedback, function (props) {
|
|
1469
1486
|
return props.$disabled ? 'not-allowed' : props.$clickable ? 'pointer' : 'default';
|
|
@@ -1487,7 +1504,7 @@ var CloseButton = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
|
1487
1504
|
})(templateObject_3$r || (templateObject_3$r = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: ", ";\n background: transparent;\n border: none;\n position: relative;\n width: ", ";\n height: ", ";\n padding: ", ";\n\n /* The pointer target is at least 24 \xD7 24px (WCAG 2.5.8, decision 0039): an invisible hit area\n as tall as the chip, centred on the 20px button. It stays inside the chip and its padding, so\n it can't overlap another target. */\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: ", ";\n height: ", ";\n transform: translate(-50%, -50%);\n }\n border-radius: ", ";\n cursor: ", ";\n color: inherit;\n transition: ", ";\n \n &:hover:not(:disabled) {\n background-color: ", ";\n }\n \n &:active:not(:disabled) {\n background-color: ", ";\n }\n \n &:disabled {\n color: ", ";\n }\n \n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n border-radius: ", ";\n }\n"], ["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: ", ";\n background: transparent;\n border: none;\n position: relative;\n width: ", ";\n height: ", ";\n padding: ", ";\n\n /* The pointer target is at least 24 \xD7 24px (WCAG 2.5.8, decision 0039): an invisible hit area\n as tall as the chip, centred on the 20px button. It stays inside the chip and its padding, so\n it can't overlap another target. */\n &::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: ", ";\n height: ", ";\n transform: translate(-50%, -50%);\n }\n border-radius: ", ";\n cursor: ", ";\n color: inherit;\n transition: ", ";\n \n &:hover:not(:disabled) {\n background-color: ", ";\n }\n \n &:active:not(:disabled) {\n background-color: ", ";\n }\n \n &:disabled {\n color: ", ";\n }\n \n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n border-radius: ", ";\n }\n"])), tokens.semantic.space[200], chip$1.closeButton.size, chip$1.closeButton.size, tokens.semantic.space[0], semantic$h.size.label.medium, semantic$h.size.label.medium, tokens.semantic.radius.xs, function (props) {
|
|
1488
1505
|
return props.$disabled ? 'not-allowed' : 'pointer';
|
|
1489
1506
|
}, semantic$h.motion.transition.feedback, tokens.semantic.color.fill['none-hover'], tokens.semantic.color.fill['none-pressed'], tokens.semantic.color.text.disabled, chip$1.focus.outline, semantic$h.border.focusOffset, chip$1["default"].borderRadius);
|
|
1490
|
-
var templateObject_1$
|
|
1507
|
+
var templateObject_1$H, templateObject_2$t, templateObject_3$r;
|
|
1491
1508
|
|
|
1492
1509
|
/**
|
|
1493
1510
|
* Chip - a static, non-interactive label for tags, categories and metadata.
|
|
@@ -1732,7 +1749,7 @@ var color$8 = semantic$g.color;
|
|
|
1732
1749
|
var StyledSuggestionChip = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
1733
1750
|
displayName: "SuggestionChip__StyledSuggestionChip",
|
|
1734
1751
|
componentId: "sc-1k0njm-0"
|
|
1735
|
-
})(templateObject_1$
|
|
1752
|
+
})(templateObject_1$G || (templateObject_1$G = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n margin: 0;\n box-sizing: border-box;\n border: ", " solid ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n text-align: start;\n /* A long suggestion wraps inside the chip rather than being cut off (issue 279) */\n white-space: normal;\n overflow-wrap: anywhere;\n transition: ", ";\n ", "\n\n &:hover:not(:disabled) {\n background-color: ", ";\n }\n\n &:active:not(:disabled) {\n background-color: ", ";\n }\n\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n\n &:disabled {\n border-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n\n /* Forced colours: a native button gets ButtonBorder and GrayText; keep the edge (decision 0038) */\n ", " {\n border-color: ButtonBorder;\n\n &:disabled {\n border-color: GrayText;\n }\n }\n"], ["\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n margin: 0;\n box-sizing: border-box;\n border: ", " solid ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n text-align: start;\n /* A long suggestion wraps inside the chip rather than being cut off (issue 279) */\n white-space: normal;\n overflow-wrap: anywhere;\n transition: ", ";\n ", "\n\n &:hover:not(:disabled) {\n background-color: ", ";\n }\n\n &:active:not(:disabled) {\n background-color: ", ";\n }\n\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n\n &:disabled {\n border-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n\n /* Forced colours: a native button gets ButtonBorder and GrayText; keep the edge (decision 0038) */\n ", " {\n border-color: ButtonBorder;\n\n &:disabled {\n border-color: GrayText;\n }\n }\n"
|
|
1736
1753
|
/**
|
|
1737
1754
|
* SuggestionChip - Offers text to put in the agent input
|
|
1738
1755
|
*
|
|
@@ -1744,7 +1761,7 @@ var StyledSuggestionChip = /*#__PURE__*/styled__default.default.button.withConfi
|
|
|
1744
1761
|
* - A native button: Enter and Space pick it, and its text is its accessible name
|
|
1745
1762
|
* - Outlined, with the naked hover and pressed fills; no selected state
|
|
1746
1763
|
* - One chip height (24px minimum, decision 0035); long text wraps instead of being cut off
|
|
1747
|
-
*/])), semantic$g.border.width.thin, color$8.border.input, chip["default"].borderRadius, color$8.fill.none, color$8.text["default"], semantic$g.motion.transition.feedback, sizeStyles, color$8.fill['none-hover'], color$8.fill['none-pressed'], chip.focus.outline, semantic$g.border.focusOffset, color$8.border
|
|
1764
|
+
*/])), semantic$g.border.width.thin, color$8.border.input, chip["default"].borderRadius, color$8.fill.none, color$8.text["default"], semantic$g.motion.transition.feedback, sizeStyles, color$8.fill['none-hover'], color$8.fill['none-pressed'], chip.focus.outline, semantic$g.border.focusOffset, color$8.border["default"], color$8.text.disabled, forcedColors);
|
|
1748
1765
|
/**
|
|
1749
1766
|
* SuggestionChip - Offers text to put in the agent input
|
|
1750
1767
|
*
|
|
@@ -1772,13 +1789,13 @@ var SuggestionChip = function SuggestionChip(_a) {
|
|
|
1772
1789
|
});
|
|
1773
1790
|
};
|
|
1774
1791
|
SuggestionChip.displayName = 'SuggestionChip';
|
|
1775
|
-
var templateObject_1$
|
|
1792
|
+
var templateObject_1$G;
|
|
1776
1793
|
|
|
1777
1794
|
var space$c = tokens.semantic.space;
|
|
1778
1795
|
var StyledContainer$2 = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
1779
1796
|
displayName: "Container__StyledContainer",
|
|
1780
1797
|
componentId: "sc-17dbj6n-0"
|
|
1781
|
-
})(templateObject_1$
|
|
1798
|
+
})(templateObject_1$F || (templateObject_1$F = __makeTemplateObject(["\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: ", ";\n padding-right: ", ";\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n"], ["\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: ", ";\n padding-right: ", ";\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n \n ", " {\n max-width: ", ";\n }\n"])), space$c[600], space$c[600], media$1.sm, breakpoints$1.sm, media$1.md, breakpoints$1.md, media$1.lg, breakpoints$1.lg, media$1.xl, breakpoints$1.xl, media$1['2xl'], breakpoints$1['2xl']);
|
|
1782
1799
|
var Container$1 = function Container(_a) {
|
|
1783
1800
|
var children = _a.children,
|
|
1784
1801
|
props = __rest(_a, ["children"]);
|
|
@@ -1786,12 +1803,12 @@ var Container$1 = function Container(_a) {
|
|
|
1786
1803
|
children: children
|
|
1787
1804
|
}));
|
|
1788
1805
|
};
|
|
1789
|
-
var templateObject_1$
|
|
1806
|
+
var templateObject_1$F;
|
|
1790
1807
|
|
|
1791
1808
|
var PictureWrapper = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
1792
1809
|
displayName: "Picture__PictureWrapper",
|
|
1793
1810
|
componentId: "sc-11d9tei-0"
|
|
1794
|
-
})(templateObject_1$
|
|
1811
|
+
})(templateObject_1$E || (templateObject_1$E = __makeTemplateObject(["\n margin: 0 auto;\n \n ", " {\n margin-left: 0;\n margin-right: 0;\n }\n"], ["\n margin: 0 auto;\n \n ", " {\n margin-left: 0;\n margin-right: 0;\n }\n"
|
|
1795
1812
|
// A clickable image answers input on the image itself (decision 0029, #185): it fades on hover and
|
|
1796
1813
|
// one step further while pressed, and draws the system focus ring around the image, following its
|
|
1797
1814
|
// rounded corners. Fading isn't movement, so it stays under reduced motion.
|
|
@@ -1841,7 +1858,7 @@ var Picture = function Picture(_a) {
|
|
|
1841
1858
|
}) : image
|
|
1842
1859
|
});
|
|
1843
1860
|
};
|
|
1844
|
-
var templateObject_1$
|
|
1861
|
+
var templateObject_1$E, templateObject_2$s, templateObject_3$q, templateObject_4$l, templateObject_5$h;
|
|
1845
1862
|
|
|
1846
1863
|
var _a$8 = tokens.semantic,
|
|
1847
1864
|
typography$2 = _a$8.typography,
|
|
@@ -1849,7 +1866,7 @@ var _a$8 = tokens.semantic,
|
|
|
1849
1866
|
var TimeStyled = /*#__PURE__*/styled__default.default.time.withConfig({
|
|
1850
1867
|
displayName: "DateFormatter__TimeStyled",
|
|
1851
1868
|
componentId: "sc-5464cc-0"
|
|
1852
|
-
})(templateObject_1$
|
|
1869
|
+
})(templateObject_1$D || (templateObject_1$D = __makeTemplateObject(["\n font: ", ";\n color: ", ";\n"], ["\n font: ", ";\n color: ", ";\n"
|
|
1853
1870
|
/**
|
|
1854
1871
|
* Formats a date with smart relative/absolute logic
|
|
1855
1872
|
*/])), typography$2.label, color$7.text.muted);
|
|
@@ -1895,7 +1912,7 @@ var DateFormatter = function DateFormatter(_a) {
|
|
|
1895
1912
|
children: displayText
|
|
1896
1913
|
});
|
|
1897
1914
|
};
|
|
1898
|
-
var templateObject_1$
|
|
1915
|
+
var templateObject_1$D;
|
|
1899
1916
|
|
|
1900
1917
|
var _a$7 = tokens.semantic,
|
|
1901
1918
|
motion$5 = _a$7.motion,
|
|
@@ -1956,7 +1973,7 @@ var IconButtonStyled = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
|
1956
1973
|
},
|
|
1957
1974
|
displayName: "IconButton__IconButtonStyled",
|
|
1958
1975
|
componentId: "sc-k8b14t-0"
|
|
1959
|
-
})(templateObject_1$
|
|
1976
|
+
})(templateObject_1$C || (templateObject_1$C = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n border: none;\n border-radius: ", ";\n transition: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: max-content;\n cursor: pointer;\n position: relative;\n\n min-width: ", ";\n min-height: ", ";\n padding: ", ";\n\n &:hover:not(:disabled) {\n background-color: ", ";\n }\n\n &:active:not(:disabled) {\n background-color: ", ";\n }\n\n &:focus {\n outline: ", ";\n outline-offset: ", ";\n }\n\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n\n ", "\n"], ["\n background-color: ", ";\n color: ", ";\n border: none;\n border-radius: ", ";\n transition: ", ";\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: max-content;\n cursor: pointer;\n position: relative;\n\n min-width: ", ";\n min-height: ", ";\n padding: ", ";\n\n &:hover:not(:disabled) {\n background-color: ", ";\n }\n\n &:active:not(:disabled) {\n background-color: ", ";\n }\n\n &:focus {\n outline: ", ";\n outline-offset: ", ";\n }\n\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n\n ", "\n"])), function (_a) {
|
|
1960
1977
|
var $variant = _a.$variant;
|
|
1961
1978
|
return colours($variant).bg;
|
|
1962
1979
|
}, function (_a) {
|
|
@@ -2034,7 +2051,7 @@ var IconButton = function IconButton(_a) {
|
|
|
2034
2051
|
})
|
|
2035
2052
|
}));
|
|
2036
2053
|
};
|
|
2037
|
-
var templateObject_1$
|
|
2054
|
+
var templateObject_1$C;
|
|
2038
2055
|
|
|
2039
2056
|
var StyledWrapper = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
2040
2057
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
@@ -2042,7 +2059,7 @@ var StyledWrapper = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
2042
2059
|
},
|
|
2043
2060
|
displayName: "MoneyDisplay__StyledWrapper",
|
|
2044
2061
|
componentId: "sc-1mddej3-0"
|
|
2045
|
-
})(templateObject_1$
|
|
2062
|
+
})(templateObject_1$B || (templateObject_1$B = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n text-align: ", ";\n font-weight: ", ";\n"], ["\n display: inline-flex;\n align-items: center;\n text-align: ", ";\n font-weight: ", ";\n"
|
|
2046
2063
|
// Map size to Typography variant
|
|
2047
2064
|
])), function (_a) {
|
|
2048
2065
|
var $align = _a.$align;
|
|
@@ -2058,35 +2075,8 @@ var sizeToTypographyVariant = {
|
|
|
2058
2075
|
large: 'h3',
|
|
2059
2076
|
xlarge: 'h2'
|
|
2060
2077
|
};
|
|
2061
|
-
//
|
|
2062
|
-
var
|
|
2063
|
-
small: 'xs',
|
|
2064
|
-
medium: 'sm',
|
|
2065
|
-
large: 'md',
|
|
2066
|
-
xlarge: 'lg'
|
|
2067
|
-
};
|
|
2068
|
-
/**
|
|
2069
|
-
* Generates aria-label with spelled out amount
|
|
2070
|
-
*/
|
|
2071
|
-
var generateAriaLabel = function generateAriaLabel(amount, currency, locale) {
|
|
2072
|
-
var _a, _b;
|
|
2073
|
-
var formatter = new Intl.NumberFormat(locale, {
|
|
2074
|
-
style: 'currency',
|
|
2075
|
-
currency: currency,
|
|
2076
|
-
minimumFractionDigits: 2,
|
|
2077
|
-
maximumFractionDigits: 2
|
|
2078
|
-
});
|
|
2079
|
-
// Get parts to spell out the amount
|
|
2080
|
-
var parts = formatter.formatToParts(Math.abs(amount));
|
|
2081
|
-
var integerPart = ((_a = parts.find(function (p) {
|
|
2082
|
-
return p.type === 'integer';
|
|
2083
|
-
})) === null || _a === void 0 ? void 0 : _a.value) || '0';
|
|
2084
|
-
var fractionPart = ((_b = parts.find(function (p) {
|
|
2085
|
-
return p.type === 'fraction';
|
|
2086
|
-
})) === null || _b === void 0 ? void 0 : _b.value) || '00';
|
|
2087
|
-
var sign = amount < 0 ? 'negative ' : '';
|
|
2088
|
-
return "".concat(sign).concat(integerPart, " dollars and ").concat(fractionPart, " cents");
|
|
2089
|
-
};
|
|
2078
|
+
// The minus sign, not a hyphen, so it reads and copies as minus (decision 0045)
|
|
2079
|
+
var MINUS = "\u2212";
|
|
2090
2080
|
var MoneyDisplay = function MoneyDisplay(_a) {
|
|
2091
2081
|
var amount = _a.amount,
|
|
2092
2082
|
_b = _a.currency,
|
|
@@ -2112,44 +2102,26 @@ var MoneyDisplay = function MoneyDisplay(_a) {
|
|
|
2112
2102
|
maximumFractionDigits: 2
|
|
2113
2103
|
});
|
|
2114
2104
|
var formattedAmount = formatter.format(Math.abs(amount));
|
|
2115
|
-
//
|
|
2116
|
-
|
|
2117
|
-
var
|
|
2118
|
-
|
|
2119
|
-
var
|
|
2120
|
-
// Get typography variant and icon size
|
|
2105
|
+
// A signed amount carries its sign as text, so the sign survives copying and is read aloud, and the
|
|
2106
|
+
// role colour repeats it (decision 0045). Negative amounts always show their sign.
|
|
2107
|
+
var isNegative = amount < 0 || variant === 'negative';
|
|
2108
|
+
var isPositive = !isNegative && (showSign && amount > 0 || variant === 'positive');
|
|
2109
|
+
var sign = isNegative ? MINUS : isPositive ? '+' : '';
|
|
2121
2110
|
var typographyVariant = sizeToTypographyVariant[size];
|
|
2122
|
-
var
|
|
2123
|
-
|
|
2124
|
-
var iconColor = variant === 'positive' || showPositiveIcon ? 'success' : variant === 'negative' || showNegativeIcon ? 'error' : variant === 'neutral' ? 'subdued' : 'default';
|
|
2125
|
-
// Amount always uses default color (except neutral which stays subdued)
|
|
2126
|
-
var amountColor = variant === 'neutral' ? 'subdued' : 'default';
|
|
2127
|
-
return jsxRuntime.jsxs(StyledWrapper, {
|
|
2111
|
+
var amountColor = isNegative ? 'error' : isPositive ? 'success' : variant === 'neutral' ? 'subdued' : 'default';
|
|
2112
|
+
return jsxRuntime.jsx(StyledWrapper, {
|
|
2128
2113
|
"$align": align,
|
|
2129
2114
|
"$weight": weight,
|
|
2130
|
-
"aria-label": ariaLabel,
|
|
2131
2115
|
"data-testid": dataTestId,
|
|
2132
|
-
children:
|
|
2133
|
-
// The amount is shown without a sign, so the icon is the sign and needs a name (#85)
|
|
2134
|
-
jsxRuntime.jsx(Icon, {
|
|
2135
|
-
name: "addRing",
|
|
2136
|
-
size: iconSize,
|
|
2137
|
-
iconColor: iconColor,
|
|
2138
|
-
"aria-label": "Plus"
|
|
2139
|
-
}), showNegativeIcon && jsxRuntime.jsx(Icon, {
|
|
2140
|
-
name: "remove",
|
|
2141
|
-
size: iconSize,
|
|
2142
|
-
iconColor: iconColor,
|
|
2143
|
-
"aria-label": "Minus"
|
|
2144
|
-
}), jsxRuntime.jsx(Typography, {
|
|
2116
|
+
children: jsxRuntime.jsxs(Typography, {
|
|
2145
2117
|
variant: typographyVariant,
|
|
2146
2118
|
color: amountColor,
|
|
2147
2119
|
as: "span",
|
|
2148
|
-
children: formattedAmount
|
|
2149
|
-
})
|
|
2120
|
+
children: [sign, formattedAmount]
|
|
2121
|
+
})
|
|
2150
2122
|
});
|
|
2151
2123
|
};
|
|
2152
|
-
var templateObject_1$
|
|
2124
|
+
var templateObject_1$B;
|
|
2153
2125
|
|
|
2154
2126
|
// Destructure tokens
|
|
2155
2127
|
var semantic$f = tokens.semantic;
|
|
@@ -2167,7 +2139,7 @@ var ProgressBarContainer = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
2167
2139
|
displayName: "ProgressBar__ProgressBarContainer",
|
|
2168
2140
|
componentId: "sc-1nco33q-0"
|
|
2169
2141
|
})(templateObject_3$p || (templateObject_3$p = __makeTemplateObject(["\n background-color: ", ";\n border-radius: ", ";\n overflow: hidden;\n\n /* Forced colours drop the track's fill, so the track gets an edge (decision 0038) */\n ", "\n\n ", "\n\n ", "\n"], ["\n background-color: ", ";\n border-radius: ", ";\n overflow: hidden;\n\n /* Forced colours drop the track's fill, so the track gets an edge (decision 0038) */\n ", "\n\n ", "\n\n ", "\n"])), tokens.component.track.background, radius$2.xs, forcedColorsEdge, function (props) {
|
|
2170
|
-
return props.$variant === 'horizontal' && styled.css(templateObject_1$
|
|
2142
|
+
return props.$variant === 'horizontal' && styled.css(templateObject_1$A || (templateObject_1$A = __makeTemplateObject(["\n width: 100%;\n height: ", ";\n "], ["\n width: 100%;\n height: ", ";\n "])), props.$height ? component$2.progressBar.sizes[props.$height].height : component$2.progressBar.sizes.md.height);
|
|
2171
2143
|
}, function (props) {
|
|
2172
2144
|
return props.$variant === 'vertical' && styled.css(templateObject_2$r || (templateObject_2$r = __makeTemplateObject(["\n width: ", ";\n height: 100%;\n "], ["\n width: ", ";\n height: 100%;\n "])), props.$width ? component$2.progressBar.sizes[props.$width].height : component$2.progressBar.sizes.md.height);
|
|
2173
2145
|
});
|
|
@@ -2230,7 +2202,7 @@ var ProgressBar = function ProgressBar(_a) {
|
|
|
2230
2202
|
})
|
|
2231
2203
|
});
|
|
2232
2204
|
};
|
|
2233
|
-
var templateObject_1$
|
|
2205
|
+
var templateObject_1$A, templateObject_2$r, templateObject_3$p, templateObject_4$k, templateObject_5$g, templateObject_6$c, templateObject_7$a;
|
|
2234
2206
|
|
|
2235
2207
|
// Destructure tokens for cleaner access
|
|
2236
2208
|
var separatorTokens = tokens.component.separator;
|
|
@@ -2242,7 +2214,7 @@ var StyledDivider = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
2242
2214
|
},
|
|
2243
2215
|
displayName: "Divider__StyledDivider",
|
|
2244
2216
|
componentId: "sc-1l0c8ja-0"
|
|
2245
|
-
})(templateObject_1$
|
|
2217
|
+
})(templateObject_1$z || (templateObject_1$z = __makeTemplateObject(["\n border: none;\n \n /* Apply orientation */\n ", "\n \n /* Apply variant styles */\n ", "\n \n /* Apply size styles (spacing) */\n ", "\n"], ["\n border: none;\n \n /* Apply orientation */\n ", "\n \n /* Apply variant styles */\n ", "\n \n /* Apply size styles (spacing) */\n ", "\n"
|
|
2246
2218
|
/**
|
|
2247
2219
|
* Divider is an atomic component that provides visual separation between content sections.
|
|
2248
2220
|
*
|
|
@@ -2355,7 +2327,7 @@ var Divider = function Divider(_a) {
|
|
|
2355
2327
|
"aria-orientation": orientation
|
|
2356
2328
|
});
|
|
2357
2329
|
};
|
|
2358
|
-
var templateObject_1$
|
|
2330
|
+
var templateObject_1$z;
|
|
2359
2331
|
|
|
2360
2332
|
var StyledStack = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
2361
2333
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
@@ -2363,7 +2335,7 @@ var StyledStack = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
2363
2335
|
},
|
|
2364
2336
|
displayName: "Stack__StyledStack",
|
|
2365
2337
|
componentId: "sc-1ehkxgy-0"
|
|
2366
|
-
})(templateObject_1$
|
|
2338
|
+
})(templateObject_1$y || (templateObject_1$y = __makeTemplateObject(["\n display: flex;\n flex-direction: var(--stack-direction);\n align-items: var(--stack-align-items);\n justify-content: var(--stack-justify-content);\n gap: var(--stack-gap);\n flex-wrap: var(--stack-wrap);\n"], ["\n display: flex;\n flex-direction: var(--stack-direction);\n align-items: var(--stack-align-items);\n justify-content: var(--stack-justify-content);\n gap: var(--stack-gap);\n flex-wrap: var(--stack-wrap);\n"
|
|
2367
2339
|
// Each gap name maps to the space step that replaced its old spacing.layout token (decision 0031),
|
|
2368
2340
|
// so every gap keeps its value
|
|
2369
2341
|
])));
|
|
@@ -2417,6 +2389,40 @@ var Stack = function Stack(_a) {
|
|
|
2417
2389
|
children: children
|
|
2418
2390
|
});
|
|
2419
2391
|
};
|
|
2392
|
+
var templateObject_1$y;
|
|
2393
|
+
|
|
2394
|
+
// Shape indicators for the six coloured statuses (decision 0045): filled silhouettes on the
|
|
2395
|
+
// 24px grid, each the same outline as its status icon. Internal: they aren't public icons, so a
|
|
2396
|
+
// bare shape can't be shown without its label. The shape indicator (#264) and the small
|
|
2397
|
+
// StatusLabel and InlineAlert sizes render them at 12px or more, with a darker edge.
|
|
2398
|
+
var statusShapes = {
|
|
2399
|
+
error: 'M22.5 12L17.25 21.0933L6.75 21.0933L1.5 12L6.75 2.9067L17.25 2.9067Z',
|
|
2400
|
+
serious: 'M12 2L22 12L12 22L2 12Z',
|
|
2401
|
+
warning: 'M12 2.5L22 20.5L2 20.5Z',
|
|
2402
|
+
success: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2Z',
|
|
2403
|
+
info: 'M7 2H17A5 5 0 0 1 22 7V17A5 5 0 0 1 17 22H7A5 5 0 0 1 2 17V7A5 5 0 0 1 7 2Z',
|
|
2404
|
+
inProgress: 'M12 2A10 10 0 1 1 12 22A10 10 0 1 1 12 2ZM12 4A8 8 0 1 0 12 20A8 8 0 1 0 12 4ZM12 6A6 6 0 0 1 12 18Z'
|
|
2405
|
+
};
|
|
2406
|
+
|
|
2407
|
+
// The shape indicator: at least 12px (decision 0045), filled with the current text colour, which is
|
|
2408
|
+
// the label's role colour at 5.3:1 or more on its tint, so it needs no edge. Decorative: the text
|
|
2409
|
+
// beside it names the status. Internal to the status family (#264): not exported from the package.
|
|
2410
|
+
var Mark = /*#__PURE__*/styled__default.default.svg.withConfig({
|
|
2411
|
+
displayName: "StatusShape__Mark",
|
|
2412
|
+
componentId: "sc-1yzi9jt-0"
|
|
2413
|
+
})(templateObject_1$x || (templateObject_1$x = __makeTemplateObject(["\n flex: none;\n width: ", ";\n height: ", ";\n fill: currentColor;\n"], ["\n flex: none;\n width: ", ";\n height: ", ";\n fill: currentColor;\n"])), tokens.semantic.size.icon.xs, tokens.semantic.size.icon.xs);
|
|
2414
|
+
var StatusShape = function StatusShape(_a) {
|
|
2415
|
+
var shape = _a.shape;
|
|
2416
|
+
return jsxRuntime.jsx(Mark, {
|
|
2417
|
+
viewBox: "0 0 24 24",
|
|
2418
|
+
"aria-hidden": "true",
|
|
2419
|
+
focusable: "false",
|
|
2420
|
+
"data-shape": shape,
|
|
2421
|
+
children: jsxRuntime.jsx("path", {
|
|
2422
|
+
d: statusShapes[shape]
|
|
2423
|
+
})
|
|
2424
|
+
});
|
|
2425
|
+
};
|
|
2420
2426
|
var templateObject_1$x;
|
|
2421
2427
|
|
|
2422
2428
|
// Destructure tokens for cleaner access
|
|
@@ -2432,43 +2438,46 @@ var labelHeight = tokens.semantic.size.label;
|
|
|
2432
2438
|
var label$1 = tokens.component.badge.label;
|
|
2433
2439
|
var scaleIn$1 = styled.keyframes(templateObject_1$w || (templateObject_1$w = __makeTemplateObject(["\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n"], ["\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n"])));
|
|
2434
2440
|
var getStatusConfig = function getStatusConfig(status) {
|
|
2441
|
+
// Each status's icon and, for the coloured statuses, its shape indicator (decision 0045). The
|
|
2442
|
+
// neutral statuses have no shape: at the small size they're plain text.
|
|
2435
2443
|
var configs = {
|
|
2436
2444
|
pending: {
|
|
2437
2445
|
color: statusColors.pending.text,
|
|
2438
2446
|
bgColor: statusColors.pending.background,
|
|
2439
|
-
icon: '
|
|
2440
|
-
// Fallback until 'clock' icon is added
|
|
2447
|
+
icon: 'statusPending',
|
|
2441
2448
|
label: 'Pending'
|
|
2442
2449
|
},
|
|
2443
2450
|
completed: {
|
|
2444
2451
|
color: statusColors.completed.text,
|
|
2445
2452
|
bgColor: statusColors.completed.background,
|
|
2446
|
-
icon: '
|
|
2453
|
+
icon: 'statusSuccess',
|
|
2454
|
+
shape: 'success',
|
|
2447
2455
|
label: 'Completed'
|
|
2448
2456
|
},
|
|
2449
2457
|
failed: {
|
|
2450
2458
|
color: statusColors.failed.text,
|
|
2451
2459
|
bgColor: statusColors.failed.background,
|
|
2452
|
-
icon: '
|
|
2460
|
+
icon: 'statusError',
|
|
2461
|
+
shape: 'error',
|
|
2453
2462
|
label: 'Failed'
|
|
2454
2463
|
},
|
|
2455
2464
|
cancelled: {
|
|
2456
2465
|
color: statusColors.cancelled.text,
|
|
2457
2466
|
bgColor: statusColors.cancelled.background,
|
|
2458
|
-
icon: '
|
|
2467
|
+
icon: 'statusCancelled',
|
|
2459
2468
|
label: 'Cancelled'
|
|
2460
2469
|
},
|
|
2461
2470
|
processing: {
|
|
2462
2471
|
color: statusColors.processing.text,
|
|
2463
2472
|
bgColor: statusColors.processing.background,
|
|
2464
|
-
icon: '
|
|
2473
|
+
icon: 'statusInProgress',
|
|
2474
|
+
shape: 'inProgress',
|
|
2465
2475
|
label: 'Processing'
|
|
2466
2476
|
},
|
|
2467
2477
|
scheduled: {
|
|
2468
2478
|
color: statusColors.scheduled.text,
|
|
2469
2479
|
bgColor: statusColors.scheduled.background,
|
|
2470
|
-
icon: '
|
|
2471
|
-
// Fallback until 'calendar' icon is added
|
|
2480
|
+
icon: 'statusScheduled',
|
|
2472
2481
|
label: 'Scheduled'
|
|
2473
2482
|
}
|
|
2474
2483
|
};
|
|
@@ -2521,13 +2530,13 @@ var VisibleContent = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
2521
2530
|
})(templateObject_4$j || (templateObject_4$j = __makeTemplateObject(["\n display: contents;\n"], ["\n display: contents;\n"
|
|
2522
2531
|
/**
|
|
2523
2532
|
* Shared implementation of StatusLabel and the deprecated StatusBadge. Internal: not exported
|
|
2524
|
-
* from the package. `showIcon` exists only for StatusBadge
|
|
2525
|
-
* (
|
|
2533
|
+
* from the package. `showIcon` exists only for StatusBadge. StatusLabel always shows the status icon
|
|
2534
|
+
* at the medium size, and at the small size the shape for coloured statuses (decisions 0018, 0045).
|
|
2526
2535
|
*/])));
|
|
2527
2536
|
/**
|
|
2528
2537
|
* Shared implementation of StatusLabel and the deprecated StatusBadge. Internal: not exported
|
|
2529
|
-
* from the package. `showIcon` exists only for StatusBadge
|
|
2530
|
-
* (
|
|
2538
|
+
* from the package. `showIcon` exists only for StatusBadge. StatusLabel always shows the status icon
|
|
2539
|
+
* at the medium size, and at the small size the shape for coloured statuses (decisions 0018, 0045).
|
|
2531
2540
|
*/
|
|
2532
2541
|
var StatusLabelBase = function StatusLabelBase(_a) {
|
|
2533
2542
|
var status = _a.status,
|
|
@@ -2555,10 +2564,12 @@ var StatusLabelBase = function StatusLabelBase(_a) {
|
|
|
2555
2564
|
"data-testid": dataTestId,
|
|
2556
2565
|
children: [jsxRuntime.jsxs(VisibleContent, {
|
|
2557
2566
|
"aria-hidden": accessibleLabel ? 'true' : undefined,
|
|
2558
|
-
children: [showIcon && jsxRuntime.jsx(Icon, {
|
|
2567
|
+
children: [showIcon && size === 'medium' && jsxRuntime.jsx(Icon, {
|
|
2559
2568
|
name: statusConfig.icon,
|
|
2560
2569
|
size: sizeStyles.iconSize,
|
|
2561
2570
|
iconColor: "inherit"
|
|
2571
|
+
}), showIcon && size === 'small' && statusConfig.shape && jsxRuntime.jsx(StatusShape, {
|
|
2572
|
+
shape: statusConfig.shape
|
|
2562
2573
|
}), displayLabel, jsxRuntime.jsxs(ScreenReaderOnly, {
|
|
2563
2574
|
children: [status, " status"]
|
|
2564
2575
|
})]
|
|
@@ -2573,7 +2584,7 @@ var templateObject_1$w, templateObject_2$q, templateObject_3$o, templateObject_4
|
|
|
2573
2584
|
* StatusBadge displays a transaction or task status.
|
|
2574
2585
|
*
|
|
2575
2586
|
* @deprecated Renamed to `StatusLabel` (same `status`, `size`, `label`, `liveRegion`), which always
|
|
2576
|
-
* shows
|
|
2587
|
+
* shows its status icon or shape. StatusBadge is removed in 3.0 (decision 0018).
|
|
2577
2588
|
*/
|
|
2578
2589
|
var StatusBadge = function StatusBadge(props) {
|
|
2579
2590
|
return jsxRuntime.jsx(StatusLabelBase, __assign({}, props));
|
|
@@ -2583,8 +2594,11 @@ StatusBadge.displayName = 'StatusBadge';
|
|
|
2583
2594
|
/**
|
|
2584
2595
|
* StatusLabel conveys the status of something, such as a transaction or task (decision 0018).
|
|
2585
2596
|
*
|
|
2586
|
-
* Uses only the status colour tokens and always shows
|
|
2587
|
-
*
|
|
2597
|
+
* Uses only the status colour tokens and always shows its text, so status is never conveyed by
|
|
2598
|
+
* colour alone (decision 0045). Medium shows the status icon. Small shows the status shape for
|
|
2599
|
+
* completed, failed and processing, and text only for the neutral pending, scheduled and
|
|
2600
|
+
* cancelled, so keep the label visible. Not interactive. Announces changes politely to screen
|
|
2601
|
+
* readers.
|
|
2588
2602
|
*
|
|
2589
2603
|
* @example
|
|
2590
2604
|
* ```tsx
|
|
@@ -2801,7 +2815,10 @@ var StyledBalanceSection = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
2801
2815
|
var StyledTrendSection = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
2802
2816
|
displayName: "AccountCard__StyledTrendSection",
|
|
2803
2817
|
componentId: "sc-1erp7zn-1"
|
|
2804
|
-
})(templateObject_2$o || (templateObject_2$o = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: ", ";\n"], ["\n display: flex;\n align-items: center;\n gap: ", ";\n"])), space$7[100])
|
|
2818
|
+
})(templateObject_2$o || (templateObject_2$o = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: ", ";\n color: ", ";\n font: ", ";\n"], ["\n display: flex;\n align-items: center;\n gap: ", ";\n color: ", ";\n font: ", ";\n"])), space$7[100], function (_a) {
|
|
2819
|
+
var $color = _a.$color;
|
|
2820
|
+
return $color;
|
|
2821
|
+
}, semantic$c.typography.small);
|
|
2805
2822
|
/*#__PURE__*/styled__default.default.div.withConfig({
|
|
2806
2823
|
displayName: "AccountCard__StyledActions",
|
|
2807
2824
|
componentId: "sc-1erp7zn-2"
|
|
@@ -2822,10 +2839,12 @@ var trendToIcon = {
|
|
|
2822
2839
|
down: 'arrowDown',
|
|
2823
2840
|
neutral: 'arrowRight'
|
|
2824
2841
|
};
|
|
2842
|
+
// A trend is a differential indicator (decision 0045): the arrow and the signed value carry the
|
|
2843
|
+
// direction, and the role colour repeats it. Category colours carry no meaning, so they aren't used.
|
|
2825
2844
|
var trendToColor = {
|
|
2826
|
-
up:
|
|
2827
|
-
down:
|
|
2828
|
-
neutral:
|
|
2845
|
+
up: semantic$c.color.text.success,
|
|
2846
|
+
down: semantic$c.color.text.danger,
|
|
2847
|
+
neutral: semantic$c.color.text.muted
|
|
2829
2848
|
};
|
|
2830
2849
|
/**
|
|
2831
2850
|
* AccountCard component
|
|
@@ -2920,16 +2939,19 @@ var AccountCard = function AccountCard(_a) {
|
|
|
2920
2939
|
}), jsxRuntime.jsx(Typography, {
|
|
2921
2940
|
color: "subdued",
|
|
2922
2941
|
children: "Available"
|
|
2923
|
-
}), trend && trendValue &&
|
|
2942
|
+
}), trend && trendValue &&
|
|
2943
|
+
// A group rather than an image, so screen readers read the value as well as the direction
|
|
2944
|
+
jsxRuntime.jsxs(StyledTrendSection, {
|
|
2945
|
+
role: "group",
|
|
2924
2946
|
"aria-label": "Trend ".concat(trend),
|
|
2925
|
-
|
|
2926
|
-
children: jsxRuntime.jsx(
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2947
|
+
"$color": trendColor,
|
|
2948
|
+
children: [jsxRuntime.jsx(Icon, {
|
|
2949
|
+
name: trendIcon,
|
|
2950
|
+
size: "sm",
|
|
2951
|
+
iconColor: "inherit"
|
|
2952
|
+
}), jsxRuntime.jsx("span", {
|
|
2931
2953
|
children: trendValue
|
|
2932
|
-
})
|
|
2954
|
+
})]
|
|
2933
2955
|
})]
|
|
2934
2956
|
})
|
|
2935
2957
|
})]
|
|
@@ -4697,11 +4719,12 @@ var fadeOut = styled.keyframes(templateObject_2$k || (templateObject_2$k = __mak
|
|
|
4697
4719
|
// The generated names of the two exits (full, and reduced motion)
|
|
4698
4720
|
var EXIT_ANIMATION_NAMES = [fadeThenCollapse.getName(), fadeOut.getName()];
|
|
4699
4721
|
// Default icons by variant
|
|
4722
|
+
// Each severity's status icon (decision 0045): decorative, because the title and message say it
|
|
4700
4723
|
var variantIcons$1 = {
|
|
4701
|
-
error: '
|
|
4702
|
-
warning: '
|
|
4703
|
-
info: '
|
|
4704
|
-
success: '
|
|
4724
|
+
error: 'statusError',
|
|
4725
|
+
warning: 'statusWarning',
|
|
4726
|
+
info: 'statusInfo',
|
|
4727
|
+
success: 'statusSuccess'
|
|
4705
4728
|
};
|
|
4706
4729
|
// Icon colors by variant (using semantic icon color tokens)
|
|
4707
4730
|
var variantIconColors = {
|
|
@@ -4946,11 +4969,12 @@ var semantic$8 = tokens.semantic;
|
|
|
4946
4969
|
var color$2 = semantic$8.color,
|
|
4947
4970
|
typography = semantic$8.typography,
|
|
4948
4971
|
size = semantic$8.size;
|
|
4972
|
+
// Each severity's status icon and, at the small size, its shape (decision 0045)
|
|
4949
4973
|
var variantIcons = {
|
|
4950
|
-
error: '
|
|
4951
|
-
warning: '
|
|
4952
|
-
info: '
|
|
4953
|
-
success: '
|
|
4974
|
+
error: 'statusError',
|
|
4975
|
+
warning: 'statusWarning',
|
|
4976
|
+
info: 'statusInfo',
|
|
4977
|
+
success: 'statusSuccess'
|
|
4954
4978
|
};
|
|
4955
4979
|
var variantTextColors = {
|
|
4956
4980
|
error: color$2.text.danger,
|
|
@@ -4958,6 +4982,12 @@ var variantTextColors = {
|
|
|
4958
4982
|
info: color$2.text.accent,
|
|
4959
4983
|
success: color$2.text.success
|
|
4960
4984
|
};
|
|
4985
|
+
var variantShapes = {
|
|
4986
|
+
error: 'error',
|
|
4987
|
+
warning: 'warning',
|
|
4988
|
+
info: 'info',
|
|
4989
|
+
success: 'success'
|
|
4990
|
+
};
|
|
4961
4991
|
var sizeConfig = {
|
|
4962
4992
|
small: {
|
|
4963
4993
|
font: typography.caption,
|
|
@@ -5058,7 +5088,9 @@ var InlineAlert = function InlineAlert(_a) {
|
|
|
5058
5088
|
children: hasMessage && jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
5059
5089
|
children: [jsxRuntime.jsx(StyledIconLine, {
|
|
5060
5090
|
"aria-hidden": "true",
|
|
5061
|
-
children: jsxRuntime.jsx(
|
|
5091
|
+
children: alertSize === 'small' ? jsxRuntime.jsx(StatusShape, {
|
|
5092
|
+
shape: variantShapes[variant]
|
|
5093
|
+
}) : jsxRuntime.jsx(Icon, {
|
|
5062
5094
|
name: variantIcons[variant],
|
|
5063
5095
|
size: sizeConfig[alertSize].icon,
|
|
5064
5096
|
iconColor: "inherit"
|
|
@@ -5504,7 +5536,7 @@ var _a$1 = tokens.semantic,
|
|
|
5504
5536
|
var StyledCodeBlock = /*#__PURE__*/styled__default.default.pre.withConfig({
|
|
5505
5537
|
displayName: "CodeBlock__StyledCodeBlock",
|
|
5506
5538
|
componentId: "sc-1p1t0kp-0"
|
|
5507
|
-
})(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n background-color: ", ";\n border: ", ";\n border-radius: ", ";\n padding: ", ";\n font-family: ", ";\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n overflow-x: auto;\n overflow-y: ", ";\n margin: ", " 0;\n position: relative;\n transition: max-height ", " ", ";\n\n ", " {\n transition: none;\n }\n \n ", "\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"], ["\n background-color: ", ";\n border: ", ";\n border-radius: ", ";\n padding: ", ";\n font-family: ", ";\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n overflow-x: auto;\n overflow-y: ", ";\n margin: ", " 0;\n position: relative;\n transition: max-height ", " ", ";\n\n ", " {\n transition: none;\n }\n \n ", "\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"])), tokens.semantic.surface.raised, border$1
|
|
5539
|
+
})(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n background-color: ", ";\n border: ", ";\n border-radius: ", ";\n padding: ", ";\n font-family: ", ";\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n overflow-x: auto;\n overflow-y: ", ";\n margin: ", " 0;\n position: relative;\n transition: max-height ", " ", ";\n\n ", " {\n transition: none;\n }\n \n ", "\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"], ["\n background-color: ", ";\n border: ", ";\n border-radius: ", ";\n padding: ", ";\n font-family: ", ";\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n overflow-x: auto;\n overflow-y: ", ";\n margin: ", " 0;\n position: relative;\n transition: max-height ", " ", ";\n\n ", " {\n transition: none;\n }\n \n ", "\n\n /* The block is focusable so keyboard users can scroll it; it shows the system focus ring\n (decision 0029) */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"])), tokens.semantic.surface.raised, border$1["default"], tokens.semantic.radius.sm, tokens.semantic.space[300], tokens.component.codeBlock.fontFamily, tokens.component.codeBlock.fontSize, tokens.component.codeBlock.lineHeight, color$1.text["default"], function (_a) {
|
|
5508
5540
|
var $isExpanded = _a.$isExpanded,
|
|
5509
5541
|
$needsExpansion = _a.$needsExpansion;
|
|
5510
5542
|
return $needsExpansion && !$isExpanded ? 'hidden' : 'auto';
|
|
@@ -6065,7 +6097,7 @@ var DropdownMenu = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
|
6065
6097
|
},
|
|
6066
6098
|
displayName: "Dropdown__DropdownMenu",
|
|
6067
6099
|
componentId: "sc-kz07c4-3"
|
|
6068
|
-
})(templateObject_4$9 || (templateObject_4$9 = __makeTemplateObject(["\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ", ";\n background-color: ", ";\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ", ";\n border-radius: ", ";\n box-shadow: ", ";\n margin-top: ", ";\n overflow: hidden;\n opacity: ", ";\n visibility: ", ";\n transform: ", ";\n transition: opacity ", " ", ",\n visibility ", " ", ",\n transform ", " ", ";\n max-height: ", ";\n overflow-y: auto;\n\n ", " {\n transform: none;\n }\n"], ["\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ", ";\n background-color: ", ";\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ", ";\n border-radius: ", ";\n box-shadow: ", ";\n margin-top: ", ";\n overflow: hidden;\n opacity: ", ";\n visibility: ", ";\n transform: ", ";\n transition: opacity ", " ", ",\n visibility ", " ", ",\n transform ", " ", ";\n max-height: ", ";\n overflow-y: auto;\n\n ", " {\n transform: none;\n }\n"])), tokens.semantic.layer.dropdown, input$1["default"].backgroundColor, border
|
|
6100
|
+
})(templateObject_4$9 || (templateObject_4$9 = __makeTemplateObject(["\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ", ";\n background-color: ", ";\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ", ";\n border-radius: ", ";\n box-shadow: ", ";\n margin-top: ", ";\n overflow: hidden;\n opacity: ", ";\n visibility: ", ";\n transform: ", ";\n transition: opacity ", " ", ",\n visibility ", " ", ",\n transform ", " ", ";\n max-height: ", ";\n overflow-y: auto;\n\n ", " {\n transform: none;\n }\n"], ["\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n z-index: ", ";\n background-color: ", ";\n /* A decorative outline: elevation separates the menu, and only the trigger is a control edge (decision 0025) */\n border: ", ";\n border-radius: ", ";\n box-shadow: ", ";\n margin-top: ", ";\n overflow: hidden;\n opacity: ", ";\n visibility: ", ";\n transform: ", ";\n transition: opacity ", " ", ",\n visibility ", " ", ",\n transform ", " ", ";\n max-height: ", ";\n overflow-y: auto;\n\n ", " {\n transform: none;\n }\n"])), tokens.semantic.layer.dropdown, input$1["default"].backgroundColor, border["default"], input$1["default"].borderRadius, elevation$1.floating, space$4[100], function (_a) {
|
|
6069
6101
|
var $isOpen = _a.$isOpen;
|
|
6070
6102
|
return $isOpen ? 1 : 0;
|
|
6071
6103
|
}, function (_a) {
|
|
@@ -6088,7 +6120,7 @@ var DropdownOption = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
|
6088
6120
|
selected: $isSelected,
|
|
6089
6121
|
focused: $isFocused
|
|
6090
6122
|
});
|
|
6091
|
-
}, border
|
|
6123
|
+
}, border["default"]);
|
|
6092
6124
|
var StyledHelperText$3 = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
6093
6125
|
displayName: "Dropdown__StyledHelperText",
|
|
6094
6126
|
componentId: "sc-kz07c4-5"
|
|
@@ -8069,7 +8101,7 @@ var semantic = tokens.semantic;
|
|
|
8069
8101
|
var StyledTabList = /*#__PURE__*/styled__default.default.div.withConfig({
|
|
8070
8102
|
displayName: "TabBar__StyledTabList",
|
|
8071
8103
|
componentId: "sc-1g9ib0y-0"
|
|
8072
|
-
})(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n border-bottom: ", " solid ", ";\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ", ";\n }\n \n &::-webkit-scrollbar-track {\n background: ", ";\n }\n \n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: ", ";\n }\n"], ["\n display: flex;\n align-items: center;\n border-bottom: ", " solid ", ";\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ", ";\n }\n \n &::-webkit-scrollbar-track {\n background: ", ";\n }\n \n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: ", ";\n }\n"])), semantic.border.width.thin, semantic.color.border
|
|
8104
|
+
})(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n border-bottom: ", " solid ", ";\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ", ";\n }\n \n &::-webkit-scrollbar-track {\n background: ", ";\n }\n \n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: ", ";\n }\n"], ["\n display: flex;\n align-items: center;\n border-bottom: ", " solid ", ";\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n \n &::-webkit-scrollbar {\n height: ", ";\n }\n \n &::-webkit-scrollbar-track {\n background: ", ";\n }\n \n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: ", ";\n }\n"])), semantic.border.width.thin, semantic.color.border["default"], tokens.component.tabBar.scrollbar.height, semantic.surface.raised, semantic.color.border["default"], semantic.radius.sm);
|
|
8073
8105
|
var StyledTab = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
8074
8106
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
8075
8107
|
return !prop.startsWith('$');
|
|
@@ -8089,11 +8121,11 @@ var StyledTab = /*#__PURE__*/styled__default.default.button.withConfig({
|
|
|
8089
8121
|
}, function (props) {
|
|
8090
8122
|
return props.$isActive ? semantic.color.fill['accent-muted-hover'] : 'transparent';
|
|
8091
8123
|
}, function (props) {
|
|
8092
|
-
return props.$isActive ? semantic.color.text
|
|
8124
|
+
return props.$isActive ? semantic.color.text.accent : semantic.color.text["default"];
|
|
8093
8125
|
}, function (props) {
|
|
8094
8126
|
return props.$isActive ? semantic.color.fill['accent-muted-pressed'] : 'transparent';
|
|
8095
8127
|
}, function (props) {
|
|
8096
|
-
return props.$isActive ? semantic.color.text
|
|
8128
|
+
return props.$isActive ? semantic.color.text.accent : semantic.color.text["default"];
|
|
8097
8129
|
}, function (props) {
|
|
8098
8130
|
return props.$disabled ? '0.5' : '1';
|
|
8099
8131
|
}, semantic.border.focus, semantic.border.focusOffset);
|
|
@@ -8414,28 +8446,30 @@ var StyledTruncatedText = /*#__PURE__*/styled__default.default.span.withConfig({
|
|
|
8414
8446
|
])));
|
|
8415
8447
|
// Map categories to CategoryLabel configurations
|
|
8416
8448
|
var categoryConfig = {
|
|
8449
|
+
// Display colours carry no meaning (decision 0043); five coloured categories share four colours,
|
|
8450
|
+
// so the icon and label tell dining and bills apart
|
|
8417
8451
|
shopping: {
|
|
8418
|
-
color: '
|
|
8452
|
+
color: 'magenta',
|
|
8419
8453
|
icon: 'paper',
|
|
8420
8454
|
label: 'Shopping'
|
|
8421
8455
|
},
|
|
8422
8456
|
dining: {
|
|
8423
|
-
color: '
|
|
8457
|
+
color: 'rose',
|
|
8424
8458
|
icon: 'paper',
|
|
8425
8459
|
label: 'Dining'
|
|
8426
8460
|
},
|
|
8427
8461
|
transport: {
|
|
8428
|
-
color: '
|
|
8462
|
+
color: 'periwinkle',
|
|
8429
8463
|
icon: 'paper',
|
|
8430
8464
|
label: 'Transport'
|
|
8431
8465
|
},
|
|
8432
8466
|
entertainment: {
|
|
8433
|
-
color: '
|
|
8467
|
+
color: 'olive',
|
|
8434
8468
|
icon: 'star',
|
|
8435
8469
|
label: 'Entertainment'
|
|
8436
8470
|
},
|
|
8437
8471
|
bills: {
|
|
8438
|
-
color: '
|
|
8472
|
+
color: 'rose',
|
|
8439
8473
|
icon: 'paper',
|
|
8440
8474
|
label: 'Bills'
|
|
8441
8475
|
},
|
|
@@ -8445,12 +8479,6 @@ var categoryConfig = {
|
|
|
8445
8479
|
label: 'Other'
|
|
8446
8480
|
}
|
|
8447
8481
|
};
|
|
8448
|
-
// Map status to badge variant
|
|
8449
|
-
var statusToBadgeVariant = {
|
|
8450
|
-
completed: 'success',
|
|
8451
|
-
pending: 'warning',
|
|
8452
|
-
failed: 'error'
|
|
8453
|
-
};
|
|
8454
8482
|
/**
|
|
8455
8483
|
* TransactionListItem component
|
|
8456
8484
|
*
|
|
@@ -8458,7 +8486,7 @@ var statusToBadgeVariant = {
|
|
|
8458
8486
|
* status, and optional metadata (category, receipt, notes). Minimum height 72px
|
|
8459
8487
|
* with interactive states for clickable items.
|
|
8460
8488
|
*
|
|
8461
|
-
* Composes: Avatar,
|
|
8489
|
+
* Composes: Avatar, CategoryLabel, StatusLabel, MoneyDisplay, Icon, DateFormatter, Typography, Stack
|
|
8462
8490
|
*/
|
|
8463
8491
|
var TransactionListItem = function TransactionListItem(_a) {
|
|
8464
8492
|
var merchant = _a.merchant,
|
|
@@ -8482,8 +8510,6 @@ var TransactionListItem = function TransactionListItem(_a) {
|
|
|
8482
8510
|
var amountVariant = amount > 0 ? 'positive' : amount < 0 ? 'negative' : 'default';
|
|
8483
8511
|
// Get category configuration
|
|
8484
8512
|
var categoryData = category ? categoryConfig[category] : undefined;
|
|
8485
|
-
// Get badge variant from status
|
|
8486
|
-
var badgeVariant = statusToBadgeVariant[status];
|
|
8487
8513
|
var handleClick = function handleClick() {
|
|
8488
8514
|
if (isClickable && onClick) {
|
|
8489
8515
|
onClick();
|
|
@@ -8501,19 +8527,10 @@ var TransactionListItem = function TransactionListItem(_a) {
|
|
|
8501
8527
|
onKeyDown: handleKeyDown,
|
|
8502
8528
|
tabIndex: isClickable ? 0 : undefined,
|
|
8503
8529
|
role: isClickable ? 'button' : undefined,
|
|
8504
|
-
"aria-label": isClickable ? "".concat(merchant, " transaction, ").concat(amount < 0 ? 'expense' : 'income', " of ").concat(Math.abs(amount)) : undefined,
|
|
8530
|
+
"aria-label": isClickable ? "".concat(merchant, " transaction, ").concat(amount < 0 ? 'expense' : 'income', " of ").concat(Math.abs(amount)).concat(status === 'completed' ? '' : ", ".concat(status)) : undefined,
|
|
8505
8531
|
"data-testid": dataTestId,
|
|
8506
8532
|
children: [jsxRuntime.jsx(StyledAvatarSection, {
|
|
8507
|
-
children:
|
|
8508
|
-
variant: badgeVariant,
|
|
8509
|
-
dot: true,
|
|
8510
|
-
"aria-label": "Pending transaction",
|
|
8511
|
-
children: jsxRuntime.jsx(Avatar, {
|
|
8512
|
-
name: merchant,
|
|
8513
|
-
picture: merchantLogo,
|
|
8514
|
-
size: "md"
|
|
8515
|
-
})
|
|
8516
|
-
}) : jsxRuntime.jsx(Avatar, {
|
|
8533
|
+
children: jsxRuntime.jsx(Avatar, {
|
|
8517
8534
|
name: merchant,
|
|
8518
8535
|
picture: merchantLogo,
|
|
8519
8536
|
size: "md"
|
|
@@ -8533,11 +8550,10 @@ var TransactionListItem = function TransactionListItem(_a) {
|
|
|
8533
8550
|
variant: "minimal",
|
|
8534
8551
|
"aria-label": "Category: ".concat(categoryData.label),
|
|
8535
8552
|
children: categoryData.label
|
|
8536
|
-
}), status
|
|
8537
|
-
|
|
8538
|
-
|
|
8539
|
-
|
|
8540
|
-
children: jsxRuntime.jsx("span", {})
|
|
8553
|
+
}), status !== 'completed' && jsxRuntime.jsx(StatusLabel, {
|
|
8554
|
+
status: status,
|
|
8555
|
+
size: "small",
|
|
8556
|
+
liveRegion: false
|
|
8541
8557
|
})]
|
|
8542
8558
|
}), jsxRuntime.jsx(MoneyDisplay, {
|
|
8543
8559
|
amount: amount,
|