@common-origin/design-system 2.19.0 → 2.20.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 +169 -169
- package/dist/client.js.map +1 -1
- package/dist/components/atoms/Avatar/Avatar.d.mts +8 -0
- package/dist/components/atoms/Avatar/Avatar.mjs +103 -0
- package/dist/components/atoms/Avatar/Avatar.mjs.map +1 -0
- package/dist/components/atoms/Avatar/index.d.mts +1 -0
- package/dist/components/atoms/Badge/Badge.d.mts +25 -0
- package/dist/components/atoms/Badge/Badge.mjs +98 -0
- package/dist/components/atoms/Badge/Badge.mjs.map +1 -0
- package/dist/components/atoms/Badge/index.d.mts +2 -0
- package/dist/components/atoms/Box/Box.d.mts +62 -0
- package/dist/components/atoms/Box/Box.mjs +246 -0
- package/dist/components/atoms/Box/Box.mjs.map +1 -0
- package/dist/components/atoms/Box/index.d.mts +1 -0
- package/dist/components/atoms/Button/Button.d.mts +40 -0
- package/dist/components/atoms/Button/Button.mjs +208 -0
- package/dist/components/atoms/Button/Button.mjs.map +1 -0
- package/dist/components/atoms/Button/index.d.mts +1 -0
- package/dist/components/atoms/CategoryBadge/CategoryBadge.d.mts +29 -0
- package/dist/components/atoms/CategoryBadge/CategoryBadge.mjs +29 -0
- package/dist/components/atoms/CategoryBadge/CategoryBadge.mjs.map +1 -0
- package/dist/components/atoms/CategoryBadge/index.d.mts +2 -0
- package/dist/components/atoms/CategoryLabel/CategoryLabel.d.mts +69 -0
- package/dist/components/atoms/CategoryLabel/CategoryLabel.mjs +151 -0
- package/dist/components/atoms/CategoryLabel/CategoryLabel.mjs.map +1 -0
- package/dist/components/atoms/CategoryLabel/index.d.mts +2 -0
- package/dist/components/atoms/Chip/BooleanChip.d.mts +28 -0
- package/dist/components/atoms/Chip/BooleanChip.mjs +76 -0
- package/dist/components/atoms/Chip/BooleanChip.mjs.map +1 -0
- package/dist/components/atoms/Chip/Chip.d.mts +37 -0
- package/dist/components/atoms/Chip/Chip.mjs +76 -0
- package/dist/components/atoms/Chip/Chip.mjs.map +1 -0
- package/dist/components/atoms/Chip/FilterChip.d.mts +13 -0
- package/dist/components/atoms/Chip/FilterChip.mjs +14 -0
- package/dist/components/atoms/Chip/FilterChip.mjs.map +1 -0
- package/dist/components/atoms/Chip/InputChip.d.mts +27 -0
- package/dist/components/atoms/Chip/InputChip.mjs +97 -0
- package/dist/components/atoms/Chip/InputChip.mjs.map +1 -0
- package/dist/components/atoms/Chip/index.d.mts +4 -0
- package/dist/components/atoms/Chip/shared/ChipBase.d.mts +12 -0
- package/dist/components/atoms/Chip/shared/ChipBase.mjs +45 -0
- package/dist/components/atoms/Chip/shared/ChipBase.mjs.map +1 -0
- package/dist/components/atoms/Chip/shared/types.d.mts +34 -0
- package/dist/components/atoms/Chip/shared/utils.d.mts +10 -0
- package/dist/components/atoms/Chip/shared/utils.mjs +46 -0
- package/dist/components/atoms/Chip/shared/utils.mjs.map +1 -0
- package/dist/components/atoms/Container/Container.d.mts +6 -0
- package/dist/components/atoms/Container/Container.mjs +24 -0
- package/dist/components/atoms/Container/Container.mjs.map +1 -0
- package/dist/components/atoms/Container/index.d.mts +1 -0
- package/dist/components/atoms/DateFormatter/DateFormatter.d.mts +23 -0
- package/dist/components/atoms/DateFormatter/DateFormatter.mjs +64 -0
- package/dist/components/atoms/DateFormatter/DateFormatter.mjs.map +1 -0
- package/dist/components/atoms/DateFormatter/index.d.mts +1 -0
- package/dist/components/atoms/Divider/Divider.d.mts +30 -0
- package/dist/components/atoms/Divider/Divider.mjs +134 -0
- package/dist/components/atoms/Divider/Divider.mjs.map +1 -0
- package/dist/components/atoms/Divider/index.d.mts +1 -0
- package/dist/components/atoms/Icon/Icon.d.mts +22 -0
- package/dist/components/atoms/Icon/Icon.mjs +95 -0
- package/dist/components/atoms/Icon/Icon.mjs.map +1 -0
- package/dist/components/atoms/Icon/index.d.mts +1 -0
- package/dist/components/atoms/IconButton/IconButton.d.mts +14 -0
- package/dist/components/atoms/IconButton/IconButton.mjs +150 -0
- package/dist/components/atoms/IconButton/IconButton.mjs.map +1 -0
- package/dist/components/atoms/IconButton/index.d.mts +1 -0
- package/dist/components/atoms/MoneyDisplay/MoneyDisplay.d.mts +26 -0
- package/dist/components/atoms/MoneyDisplay/MoneyDisplay.mjs +126 -0
- package/dist/components/atoms/MoneyDisplay/MoneyDisplay.mjs.map +1 -0
- package/dist/components/atoms/MoneyDisplay/index.d.mts +2 -0
- package/dist/components/atoms/Picture/Picture.d.mts +12 -0
- package/dist/components/atoms/Picture/Picture.mjs +65 -0
- package/dist/components/atoms/Picture/Picture.mjs.map +1 -0
- package/dist/components/atoms/Picture/index.d.mts +1 -0
- package/dist/components/atoms/ProgressBar/ProgressBar.d.mts +21 -0
- package/dist/components/atoms/ProgressBar/ProgressBar.mjs +91 -0
- package/dist/components/atoms/ProgressBar/ProgressBar.mjs.map +1 -0
- package/dist/components/atoms/ProgressBar/index.d.mts +2 -0
- package/dist/components/atoms/Stack/Stack.d.mts +16 -0
- package/dist/components/atoms/Stack/Stack.mjs +71 -0
- package/dist/components/atoms/Stack/Stack.mjs.map +1 -0
- package/dist/components/atoms/Stack/index.d.mts +1 -0
- package/dist/components/atoms/StatusBadge/StatusBadge.d.mts +23 -0
- package/dist/components/atoms/StatusBadge/StatusBadge.mjs +18 -0
- package/dist/components/atoms/StatusBadge/StatusBadge.mjs.map +1 -0
- package/dist/components/atoms/StatusBadge/index.d.mts +2 -0
- package/dist/components/atoms/StatusLabel/StatusLabel.d.mts +17 -0
- package/dist/components/atoms/StatusLabel/StatusLabel.mjs +28 -0
- package/dist/components/atoms/StatusLabel/StatusLabel.mjs.map +1 -0
- package/dist/components/atoms/StatusLabel/StatusLabelBase.d.mts +49 -0
- package/dist/components/atoms/StatusLabel/StatusLabelBase.mjs +161 -0
- package/dist/components/atoms/StatusLabel/StatusLabelBase.mjs.map +1 -0
- package/dist/components/atoms/StatusLabel/index.d.mts +2 -0
- package/dist/components/atoms/Tag/Tag.d.mts +36 -0
- package/dist/components/atoms/Tag/Tag.mjs +115 -0
- package/dist/components/atoms/Tag/Tag.mjs.map +1 -0
- package/dist/components/atoms/Tag/index.d.mts +2 -0
- package/dist/components/atoms/Typography/Typography.d.mts +34 -0
- package/dist/components/atoms/Typography/Typography.mjs +139 -0
- package/dist/components/atoms/Typography/Typography.mjs.map +1 -0
- package/dist/components/atoms/Typography/index.d.mts +1 -0
- package/dist/components/atoms/index.d.mts +20 -0
- package/dist/components/index.d.mts +4 -0
- package/dist/components/layout/GridSystem/GridSystem.d.mts +58 -0
- package/dist/components/layout/GridSystem/GridSystem.mjs +221 -0
- package/dist/components/layout/GridSystem/GridSystem.mjs.map +1 -0
- package/dist/components/layout/GridSystem/index.d.mts +1 -0
- package/dist/components/layout/index.d.mts +1 -0
- package/dist/components/molecules/AccountCard/AccountCard.d.mts +44 -0
- package/dist/components/molecules/AccountCard/AccountCard.mjs +191 -0
- package/dist/components/molecules/AccountCard/AccountCard.mjs.map +1 -0
- package/dist/components/molecules/AccountCard/index.d.mts +2 -0
- package/dist/components/molecules/ActionSheet/ActionSheet.d.mts +111 -0
- package/dist/components/molecules/ActionSheet/ActionSheet.mjs +283 -0
- package/dist/components/molecules/ActionSheet/ActionSheet.mjs.map +1 -0
- package/dist/components/molecules/ActionSheet/index.d.mts +2 -0
- package/dist/components/molecules/AgentInput/AgentInput.d.mts +30 -0
- package/dist/components/molecules/AgentInput/AgentInput.mjs +735 -0
- package/dist/components/molecules/AgentInput/AgentInput.mjs.map +1 -0
- package/dist/components/molecules/AgentInput/agentInputSpeech.d.mts +43 -0
- package/dist/components/molecules/AgentInput/agentInputSpeech.mjs +49 -0
- package/dist/components/molecules/AgentInput/agentInputSpeech.mjs.map +1 -0
- package/dist/components/molecules/AgentInput/agentInputStateMachine.d.mts +29 -0
- package/dist/components/molecules/AgentInput/agentInputStateMachine.mjs +55 -0
- package/dist/components/molecules/AgentInput/agentInputStateMachine.mjs.map +1 -0
- package/dist/components/molecules/AgentInput/index.d.mts +3 -0
- package/dist/components/molecules/Alert/Alert.d.mts +68 -0
- package/dist/components/molecules/Alert/Alert.mjs +284 -0
- package/dist/components/molecules/Alert/Alert.mjs.map +1 -0
- package/dist/components/molecules/Alert/index.d.mts +1 -0
- package/dist/components/molecules/Breadcrumbs/Breadcrumbs.d.mts +16 -0
- package/dist/components/molecules/Breadcrumbs/Breadcrumbs.mjs +74 -0
- package/dist/components/molecules/Breadcrumbs/Breadcrumbs.mjs.map +1 -0
- package/dist/components/molecules/Breadcrumbs/index.d.mts +1 -0
- package/dist/components/molecules/CardLarge/CardLarge.d.mts +12 -0
- package/dist/components/molecules/CardLarge/CardLarge.mjs +75 -0
- package/dist/components/molecules/CardLarge/CardLarge.mjs.map +1 -0
- package/dist/components/molecules/CardLarge/index.d.mts +1 -0
- package/dist/components/molecules/CardSmall/CardSmall.d.mts +16 -0
- package/dist/components/molecules/CardSmall/CardSmall.mjs +73 -0
- package/dist/components/molecules/CardSmall/CardSmall.mjs.map +1 -0
- package/dist/components/molecules/CardSmall/index.d.mts +1 -0
- package/dist/components/molecules/Checkbox/Checkbox.d.mts +64 -0
- package/dist/components/molecules/Checkbox/Checkbox.mjs +139 -0
- package/dist/components/molecules/Checkbox/Checkbox.mjs.map +1 -0
- package/dist/components/molecules/Checkbox/SelectableInputBase.d.mts +40 -0
- package/dist/components/molecules/Checkbox/SelectableInputBase.mjs +99 -0
- package/dist/components/molecules/Checkbox/SelectableInputBase.mjs.map +1 -0
- package/dist/components/molecules/Checkbox/index.d.mts +3 -0
- package/dist/components/molecules/ChipGroup/ChipGroup.d.mts +7 -0
- package/dist/components/molecules/ChipGroup/ChipGroup.mjs +54 -0
- package/dist/components/molecules/ChipGroup/ChipGroup.mjs.map +1 -0
- package/dist/components/molecules/ChipGroup/index.d.mts +1 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.d.mts +46 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.mjs +231 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.mjs.map +1 -0
- package/dist/components/molecules/CodeBlock/index.d.mts +1 -0
- package/dist/components/molecules/DateGroup/DateGroup.d.mts +37 -0
- package/dist/components/molecules/DateGroup/DateGroup.mjs +104 -0
- package/dist/components/molecules/DateGroup/DateGroup.mjs.map +1 -0
- package/dist/components/molecules/DateGroup/index.d.mts +2 -0
- package/dist/components/molecules/Dropdown/Dropdown.d.mts +27 -0
- package/dist/components/molecules/Dropdown/Dropdown.mjs +282 -0
- package/dist/components/molecules/Dropdown/Dropdown.mjs.map +1 -0
- package/dist/components/molecules/Dropdown/index.d.mts +1 -0
- package/dist/components/molecules/EmptyState/EmptyState.d.mts +32 -0
- package/dist/components/molecules/EmptyState/EmptyState.mjs +133 -0
- package/dist/components/molecules/EmptyState/EmptyState.mjs.map +1 -0
- package/dist/components/molecules/EmptyState/index.d.mts +2 -0
- package/dist/components/molecules/FeatureBlock/FeatureBlock.d.mts +14 -0
- package/dist/components/molecules/FeatureBlock/FeatureBlock.mjs +99 -0
- package/dist/components/molecules/FeatureBlock/FeatureBlock.mjs.map +1 -0
- package/dist/components/molecules/FeatureBlock/index.d.mts +1 -0
- package/dist/components/molecules/InlineAlert/InlineAlert.d.mts +54 -0
- package/dist/components/molecules/InlineAlert/InlineAlert.mjs +140 -0
- package/dist/components/molecules/InlineAlert/InlineAlert.mjs.map +1 -0
- package/dist/components/molecules/InlineAlert/index.d.mts +2 -0
- package/dist/components/molecules/List/List.d.mts +30 -0
- package/dist/components/molecules/List/List.mjs +45 -0
- package/dist/components/molecules/List/List.mjs.map +1 -0
- package/dist/components/molecules/List/ListContext.d.mts +6 -0
- package/dist/components/molecules/List/ListContext.mjs +11 -0
- package/dist/components/molecules/List/ListContext.mjs.map +1 -0
- package/dist/components/molecules/List/ListItem.d.mts +101 -0
- package/dist/components/molecules/List/ListItem.mjs +224 -0
- package/dist/components/molecules/List/ListItem.mjs.map +1 -0
- package/dist/components/molecules/List/index.d.mts +4 -0
- package/dist/components/molecules/Modal/Modal.d.mts +69 -0
- package/dist/components/molecules/Modal/Modal.mjs +259 -0
- package/dist/components/molecules/Modal/Modal.mjs.map +1 -0
- package/dist/components/molecules/Modal/index.d.mts +2 -0
- package/dist/components/molecules/NumberInput/NumberInput.d.mts +86 -0
- package/dist/components/molecules/NumberInput/NumberInput.mjs +268 -0
- package/dist/components/molecules/NumberInput/NumberInput.mjs.map +1 -0
- package/dist/components/molecules/NumberInput/index.d.mts +2 -0
- package/dist/components/molecules/PageTitle/PageTitle.d.mts +21 -0
- package/dist/components/molecules/PageTitle/PageTitle.mjs +77 -0
- package/dist/components/molecules/PageTitle/PageTitle.mjs.map +1 -0
- package/dist/components/molecules/PageTitle/index.d.mts +1 -0
- package/dist/components/molecules/PasswordField/PasswordField.d.mts +55 -0
- package/dist/components/molecules/PasswordField/PasswordField.mjs +146 -0
- package/dist/components/molecules/PasswordField/PasswordField.mjs.map +1 -0
- package/dist/components/molecules/PasswordField/index.d.mts +2 -0
- package/dist/components/molecules/SearchField/SearchField.d.mts +108 -0
- package/dist/components/molecules/SearchField/SearchField.mjs +340 -0
- package/dist/components/molecules/SearchField/SearchField.mjs.map +1 -0
- package/dist/components/molecules/SearchField/index.d.mts +2 -0
- package/dist/components/molecules/Sheet/Sheet.d.mts +96 -0
- package/dist/components/molecules/Sheet/Sheet.mjs +243 -0
- package/dist/components/molecules/Sheet/Sheet.mjs.map +1 -0
- package/dist/components/molecules/Sheet/index.d.mts +2 -0
- package/dist/components/molecules/Slider/Slider.d.mts +102 -0
- package/dist/components/molecules/Slider/Slider.mjs +462 -0
- package/dist/components/molecules/Slider/Slider.mjs.map +1 -0
- package/dist/components/molecules/Slider/index.d.mts +2 -0
- package/dist/components/molecules/TabBar/TabBar.d.mts +82 -0
- package/dist/components/molecules/TabBar/TabBar.mjs +213 -0
- package/dist/components/molecules/TabBar/TabBar.mjs.map +1 -0
- package/dist/components/molecules/TabBar/index.d.mts +2 -0
- package/dist/components/molecules/TextField/InputBase.d.mts +22 -0
- package/dist/components/molecules/TextField/InputBase.mjs +56 -0
- package/dist/components/molecules/TextField/InputBase.mjs.map +1 -0
- package/dist/components/molecules/TextField/TextField.d.mts +56 -0
- package/dist/components/molecules/TextField/TextField.mjs +115 -0
- package/dist/components/molecules/TextField/TextField.mjs.map +1 -0
- package/dist/components/molecules/TextField/index.d.mts +4 -0
- package/dist/components/molecules/TransactionListItem/TransactionListItem.d.mts +39 -0
- package/dist/components/molecules/TransactionListItem/TransactionListItem.mjs +224 -0
- package/dist/components/molecules/TransactionListItem/TransactionListItem.mjs.map +1 -0
- package/dist/components/molecules/TransactionListItem/index.d.mts +2 -0
- package/dist/components/molecules/index.d.mts +26 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +55 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/cssTokens.d.mts +14 -0
- package/dist/lib/cssTokens.mjs +19 -0
- package/dist/lib/cssTokens.mjs.map +1 -0
- package/dist/lib/cssVariables.d.mts +15 -0
- package/dist/lib/cssVariables.mjs +37 -0
- package/dist/lib/cssVariables.mjs.map +1 -0
- package/dist/lib/styleUtils.d.mts +42 -0
- package/dist/lib/styleUtils.mjs +160 -0
- package/dist/lib/styleUtils.mjs.map +1 -0
- package/dist/lib/tokenAliases.d.mts +13 -0
- package/dist/lib/tokenAliases.mjs +121 -0
- package/dist/lib/tokenAliases.mjs.map +1 -0
- package/dist/lib/usePresence.d.mts +16 -0
- package/dist/lib/usePresence.mjs +50 -0
- package/dist/lib/usePresence.mjs.map +1 -0
- package/dist/{data.esm.js → styles/icons.json.mjs} +2 -1466
- package/dist/styles/icons.json.mjs.map +1 -0
- package/dist/styles/tokens.d.mts +3174 -0
- package/dist/styles/tokens.json.mjs +1454 -0
- package/dist/{tokens/index.esm.js.map → styles/tokens.json.mjs.map} +1 -1
- package/dist/tokens/{index.esm.js → index.mjs} +1 -1
- package/dist/tokens/index.mjs.map +1 -0
- package/dist/tokens/styles/tokens.d.mts +3174 -0
- package/dist/tokens/tokens.d.mts +4 -0
- package/dist/tokens/types/tokens.d.mts +6 -0
- package/dist/tokens.css.d.mts +4 -0
- package/dist/types/icons.d.mts +25 -0
- package/dist/types/icons.mjs +10 -0
- package/dist/types/icons.mjs.map +1 -0
- package/dist/types/index.d.mts +1 -0
- package/dist/types/tokens.d.mts +6 -0
- package/dist/types/tokens.mjs +10 -0
- package/dist/types/tokens.mjs.map +1 -0
- package/dist/vendor/tslib/tslib.es6.mjs +99 -0
- package/dist/vendor/tslib/tslib.es6.mjs.map +1 -0
- package/package.json +26 -12
- package/dist/client.esm.js +0 -8289
- package/dist/client.esm.js.map +0 -1
- package/dist/data.esm.js.map +0 -1
- package/dist/index.esm.js +0 -8
- package/dist/index.esm.js.map +0 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __makeTemplateObject } from '../../../vendor/tslib/tslib.es6.mjs';
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import styled$module from 'styled-components';
|
|
5
|
+
const styled = styled$module.default || styled$module;
|
|
6
|
+
import tokens from '../../../lib/cssTokens.mjs';
|
|
7
|
+
import { Icon } from '../../atoms/Icon/Icon.mjs';
|
|
8
|
+
|
|
9
|
+
var semantic = tokens.semantic;
|
|
10
|
+
var color = semantic.color,
|
|
11
|
+
typography = semantic.typography,
|
|
12
|
+
size = semantic.size;
|
|
13
|
+
var variantIcons = {
|
|
14
|
+
error: 'crossCircle',
|
|
15
|
+
warning: 'bell',
|
|
16
|
+
info: 'info',
|
|
17
|
+
success: 'checkRing'
|
|
18
|
+
};
|
|
19
|
+
var variantTextColors = {
|
|
20
|
+
error: color.text.danger,
|
|
21
|
+
warning: color.text.warning,
|
|
22
|
+
info: color.text.accent,
|
|
23
|
+
success: color.text.success
|
|
24
|
+
};
|
|
25
|
+
var sizeConfig = {
|
|
26
|
+
small: {
|
|
27
|
+
font: typography.caption,
|
|
28
|
+
gap: semantic.space[100],
|
|
29
|
+
icon: 'xs'
|
|
30
|
+
},
|
|
31
|
+
medium: {
|
|
32
|
+
font: typography.small,
|
|
33
|
+
gap: semantic.space[200],
|
|
34
|
+
icon: 'sm'
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var StyledInlineAlert = /*#__PURE__*/styled.div.withConfig({
|
|
38
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
39
|
+
return !prop.startsWith('$');
|
|
40
|
+
},
|
|
41
|
+
displayName: "InlineAlert__StyledInlineAlert",
|
|
42
|
+
componentId: "sc-eervmb-0"
|
|
43
|
+
})(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n min-height: ", ";\n gap: ", ";\n font: ", ";\n color: ", ";\n"], ["\n box-sizing: border-box;\n display: flex;\n align-items: flex-start;\n min-height: ", ";\n gap: ", ";\n font: ", ";\n color: ", ";\n"
|
|
44
|
+
// One line of the message's font tall, so the icon centres on the first line at any size:
|
|
45
|
+
// the zero-width space gives the box the font's line height without a fixed value
|
|
46
|
+
])), function (_a) {
|
|
47
|
+
var $size = _a.$size,
|
|
48
|
+
$empty = _a.$empty;
|
|
49
|
+
return $empty ? '0' : size.label[$size];
|
|
50
|
+
}, function (_a) {
|
|
51
|
+
var $size = _a.$size;
|
|
52
|
+
return sizeConfig[$size].gap;
|
|
53
|
+
}, function (_a) {
|
|
54
|
+
var $size = _a.$size;
|
|
55
|
+
return sizeConfig[$size].font;
|
|
56
|
+
}, function (_a) {
|
|
57
|
+
var $variant = _a.$variant;
|
|
58
|
+
return variantTextColors[$variant];
|
|
59
|
+
});
|
|
60
|
+
// One line of the message's font tall, so the icon centres on the first line at any size:
|
|
61
|
+
// the zero-width space gives the box the font's line height without a fixed value
|
|
62
|
+
var StyledIconLine = /*#__PURE__*/styled.span.withConfig({
|
|
63
|
+
displayName: "InlineAlert__StyledIconLine",
|
|
64
|
+
componentId: "sc-eervmb-1"
|
|
65
|
+
})(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::after {\n content: '\\200B';\n }\n"], ["\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n\n &::after {\n content: '\\\\200B';\n }\n"])));
|
|
66
|
+
var StyledMessage = /*#__PURE__*/styled.span.withConfig({
|
|
67
|
+
displayName: "InlineAlert__StyledMessage",
|
|
68
|
+
componentId: "sc-eervmb-2"
|
|
69
|
+
})(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n min-width: 0;\n"], ["\n min-width: 0;\n"
|
|
70
|
+
/**
|
|
71
|
+
* InlineAlert is a short, local message that sits next to what it's about: between paragraphs,
|
|
72
|
+
* below a field or in a table cell (decision 0019). A severity icon and text in the severity
|
|
73
|
+
* colour, with no background or border. For a title, an action or a dismiss button, use Alert.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* <InlineAlert variant="success">Saved</InlineAlert>
|
|
78
|
+
*
|
|
79
|
+
* // Field feedback: the control references the message with aria-describedby
|
|
80
|
+
* <input id="email" aria-describedby="email-error" aria-invalid="true" />
|
|
81
|
+
* <InlineAlert id="email-error" variant="error" size="small">Enter a valid email address</InlineAlert>
|
|
82
|
+
* ```
|
|
83
|
+
*/])));
|
|
84
|
+
/**
|
|
85
|
+
* InlineAlert is a short, local message that sits next to what it's about: between paragraphs,
|
|
86
|
+
* below a field or in a table cell (decision 0019). A severity icon and text in the severity
|
|
87
|
+
* colour, with no background or border. For a title, an action or a dismiss button, use Alert.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```tsx
|
|
91
|
+
* <InlineAlert variant="success">Saved</InlineAlert>
|
|
92
|
+
*
|
|
93
|
+
* // Field feedback: the control references the message with aria-describedby
|
|
94
|
+
* <input id="email" aria-describedby="email-error" aria-invalid="true" />
|
|
95
|
+
* <InlineAlert id="email-error" variant="error" size="small">Enter a valid email address</InlineAlert>
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
var InlineAlert = function InlineAlert(_a) {
|
|
99
|
+
var _b = _a.variant,
|
|
100
|
+
variant = _b === void 0 ? 'info' : _b,
|
|
101
|
+
_c = _a.size,
|
|
102
|
+
alertSize = _c === void 0 ? 'medium' : _c,
|
|
103
|
+
children = _a.children,
|
|
104
|
+
_d = _a.ariaLive,
|
|
105
|
+
ariaLive = _d === void 0 ? 'polite' : _d,
|
|
106
|
+
id = _a.id,
|
|
107
|
+
dataTestId = _a["data-testid"];
|
|
108
|
+
// A live region is announced reliably only when it exists before its content changes, so with
|
|
109
|
+
// no message it stays mounted as an empty region, with no icon and no minimum height
|
|
110
|
+
var hasMessage = children !== undefined && children !== null && children !== false && children !== '';
|
|
111
|
+
return jsx(StyledInlineAlert
|
|
112
|
+
// Same roles as Alert; ariaLive sets how urgently changes are announced
|
|
113
|
+
, {
|
|
114
|
+
// Same roles as Alert; ariaLive sets how urgently changes are announced
|
|
115
|
+
role: variant === 'error' ? 'alert' : 'status',
|
|
116
|
+
"aria-live": ariaLive,
|
|
117
|
+
id: id,
|
|
118
|
+
"data-testid": dataTestId,
|
|
119
|
+
"$variant": variant,
|
|
120
|
+
"$size": alertSize,
|
|
121
|
+
"$empty": !hasMessage,
|
|
122
|
+
children: hasMessage && jsxs(Fragment, {
|
|
123
|
+
children: [jsx(StyledIconLine, {
|
|
124
|
+
"aria-hidden": "true",
|
|
125
|
+
children: jsx(Icon, {
|
|
126
|
+
name: variantIcons[variant],
|
|
127
|
+
size: sizeConfig[alertSize].icon,
|
|
128
|
+
iconColor: "inherit"
|
|
129
|
+
})
|
|
130
|
+
}), jsx(StyledMessage, {
|
|
131
|
+
children: children
|
|
132
|
+
})]
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
InlineAlert.displayName = 'InlineAlert';
|
|
137
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
138
|
+
|
|
139
|
+
export { InlineAlert };
|
|
140
|
+
//# sourceMappingURL=InlineAlert.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineAlert.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ListSpacing } from './ListContext.mjs';
|
|
3
|
+
export interface ListProps {
|
|
4
|
+
/**
|
|
5
|
+
* ListItem components
|
|
6
|
+
*/
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Show dividers between items
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
dividers?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Density of the list's items: their padding. A ListItem's own `spacing` overrides it (#77).
|
|
15
|
+
* @default 'comfortable'
|
|
16
|
+
*/
|
|
17
|
+
spacing?: ListSpacing;
|
|
18
|
+
/**
|
|
19
|
+
* Additional CSS class name
|
|
20
|
+
*/
|
|
21
|
+
className?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Test identifier for automated testing
|
|
24
|
+
*/
|
|
25
|
+
'data-testid'?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const List: {
|
|
28
|
+
({ children, dividers, spacing, className, "data-testid": dataTestId, ...props }: ListProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __makeTemplateObject, __rest, __assign } from '../../../vendor/tslib/tslib.es6.mjs';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
import styled$module from 'styled-components';
|
|
5
|
+
const styled = styled$module.default || styled$module;
|
|
6
|
+
import tokens from '../../../lib/cssTokens.mjs';
|
|
7
|
+
import { ListSpacingContext } from './ListContext.mjs';
|
|
8
|
+
|
|
9
|
+
var semantic = tokens.semantic;
|
|
10
|
+
var StyledList = /*#__PURE__*/styled.ul.withConfig({
|
|
11
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
12
|
+
return !prop.startsWith('$');
|
|
13
|
+
},
|
|
14
|
+
displayName: "List__StyledList",
|
|
15
|
+
componentId: "sc-1irksg5-0"
|
|
16
|
+
})(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n \n /* Divider styles */\n ", "\n"], ["\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n \n /* Divider styles */\n ", "\n"])), function (_a) {
|
|
17
|
+
var $dividers = _a.$dividers;
|
|
18
|
+
return $dividers && "\n > li:not(:last-child) {\n border-bottom: ".concat(semantic.border.width.thin, " solid ").concat(semantic.color.border["default"], ";\n }\n ");
|
|
19
|
+
});
|
|
20
|
+
var List = function List(_a) {
|
|
21
|
+
var children = _a.children,
|
|
22
|
+
_b = _a.dividers,
|
|
23
|
+
dividers = _b === void 0 ? true : _b,
|
|
24
|
+
_c = _a.spacing,
|
|
25
|
+
spacing = _c === void 0 ? 'comfortable' : _c,
|
|
26
|
+
className = _a.className,
|
|
27
|
+
dataTestId = _a["data-testid"],
|
|
28
|
+
props = __rest(_a, ["children", "dividers", "spacing", "className", 'data-testid']);
|
|
29
|
+
return jsx(ListSpacingContext.Provider, {
|
|
30
|
+
value: spacing,
|
|
31
|
+
children: jsx(StyledList, __assign({
|
|
32
|
+
"$dividers": dividers,
|
|
33
|
+
className: className,
|
|
34
|
+
"data-testid": dataTestId,
|
|
35
|
+
role: "list"
|
|
36
|
+
}, props, {
|
|
37
|
+
children: children
|
|
38
|
+
}))
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
List.displayName = 'List';
|
|
42
|
+
var templateObject_1;
|
|
43
|
+
|
|
44
|
+
export { List };
|
|
45
|
+
//# sourceMappingURL=List.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type ListSpacing = 'compact' | 'comfortable';
|
|
2
|
+
/**
|
|
3
|
+
* The spacing a List gives its items (#77). A ListItem without its own `spacing` uses it; outside
|
|
4
|
+
* a List it's `comfortable`. Internal: not exported from the package.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ListSpacingContext: import("react").Context<ListSpacing>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createContext } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The spacing a List gives its items (#77). A ListItem without its own `spacing` uses it; outside
|
|
6
|
+
* a List it's `comfortable`. Internal: not exported from the package.
|
|
7
|
+
*/
|
|
8
|
+
var ListSpacingContext = /*#__PURE__*/createContext('comfortable');
|
|
9
|
+
|
|
10
|
+
export { ListSpacingContext };
|
|
11
|
+
//# sourceMappingURL=ListContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListContext.mjs","sources":["../../../../src/components/molecules/List/ListContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nexport type ListSpacing = 'compact' | 'comfortable'\n\n/**\n * The spacing a List gives its items (#77). A ListItem without its own `spacing` uses it; outside\n * a List it's `comfortable`. Internal: not exported from the package.\n */\nexport const ListSpacingContext = createContext<ListSpacing>('comfortable')\n"],"names":["ListSpacingContext","createContext"],"mappings":";;;AAIA;;;AAGG;IACUA,kBAAkB,gBAAGC,aAAa,CAAc,aAAa;;;;"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ListSpacing } from './ListContext.mjs';
|
|
3
|
+
export interface ListItemProps {
|
|
4
|
+
/**
|
|
5
|
+
* Main text/content
|
|
6
|
+
*/
|
|
7
|
+
primary: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Secondary text (smaller, subdued color)
|
|
10
|
+
*/
|
|
11
|
+
secondary?: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Badge/chip component on the right
|
|
14
|
+
*/
|
|
15
|
+
badge?: React.ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Left icon or avatar component
|
|
18
|
+
*/
|
|
19
|
+
icon?: React.ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Can be expanded to show children content
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
expandable?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Expansion state (controlled)
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
expanded?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Called when expansion is toggled
|
|
32
|
+
*/
|
|
33
|
+
onToggle?: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* Enable hover/click interactive states
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
interactive?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Click handler for interactive items
|
|
41
|
+
*/
|
|
42
|
+
onClick?: () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Disabled state
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
disabled?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Selected/active state
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
selected?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Destructive/danger state (e.g., delete actions)
|
|
55
|
+
* Displays text and icon in error color
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
destructive?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Density of this item. Defaults to the parent List's `spacing`, or `comfortable` outside a
|
|
61
|
+
* List; set it to override the List for this item (#77).
|
|
62
|
+
*/
|
|
63
|
+
spacing?: ListSpacing;
|
|
64
|
+
/**
|
|
65
|
+
* Expanded content (shown when expanded=true)
|
|
66
|
+
*/
|
|
67
|
+
children?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Additional CSS class name
|
|
70
|
+
*/
|
|
71
|
+
className?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Test identifier for automated testing
|
|
74
|
+
*/
|
|
75
|
+
'data-testid'?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Custom ARIA role (e.g., 'option' for combobox)
|
|
78
|
+
* @default 'listitem'
|
|
79
|
+
*/
|
|
80
|
+
role?: string;
|
|
81
|
+
/**
|
|
82
|
+
* ARIA selected state (for role="option")
|
|
83
|
+
*/
|
|
84
|
+
'aria-selected'?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Custom ID for ARIA references
|
|
87
|
+
*/
|
|
88
|
+
id?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Custom tabIndex for focus management
|
|
91
|
+
*/
|
|
92
|
+
tabIndex?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Keyboard event handler
|
|
95
|
+
*/
|
|
96
|
+
onKeyDown?: (e: React.KeyboardEvent) => void;
|
|
97
|
+
}
|
|
98
|
+
export declare const ListItem: {
|
|
99
|
+
({ primary, secondary, badge, icon, expandable, expanded, onToggle, interactive, onClick, disabled, selected, destructive, spacing: spacingProp, children, className, "data-testid": dataTestId, role: customRole, "aria-selected": ariaSelected, id, tabIndex: customTabIndex, onKeyDown: customOnKeyDown, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
100
|
+
displayName: string;
|
|
101
|
+
};
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __makeTemplateObject, __rest, __assign } from '../../../vendor/tslib/tslib.es6.mjs';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { useContext } from 'react';
|
|
5
|
+
import styled$module from 'styled-components';
|
|
6
|
+
const styled = styled$module.default || styled$module;
|
|
7
|
+
import tokens from '../../../lib/cssTokens.mjs';
|
|
8
|
+
import { Icon } from '../../atoms/Icon/Icon.mjs';
|
|
9
|
+
import { Typography } from '../../atoms/Typography/Typography.mjs';
|
|
10
|
+
import { interactiveRow, reducedMotion } from '../../../lib/styleUtils.mjs';
|
|
11
|
+
import { ListSpacingContext } from './ListContext.mjs';
|
|
12
|
+
|
|
13
|
+
var semantic = tokens.semantic;
|
|
14
|
+
var _a = semantic.motion,
|
|
15
|
+
duration = _a.duration,
|
|
16
|
+
easing = _a.easing;
|
|
17
|
+
var StyledListItem = /*#__PURE__*/styled.li.withConfig({
|
|
18
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
19
|
+
return !prop.startsWith('$');
|
|
20
|
+
},
|
|
21
|
+
displayName: "ListItem__StyledListItem",
|
|
22
|
+
componentId: "sc-1wzzt21-0"
|
|
23
|
+
})(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n min-height: ", ";\n position: relative;\n \n /* Disable user selection for interactive items */\n ", "\n \n /* Disabled state */\n ", "\n \n /* Destructive state - apply error color to text */\n ", "\n"], ["\n display: flex;\n flex-direction: column;\n min-height: ", ";\n position: relative;\n \n /* Disable user selection for interactive items */\n ", "\n \n /* Disabled state */\n ", "\n \n /* Destructive state - apply error color to text */\n ", "\n"])), semantic.size.touchTarget, function (_a) {
|
|
24
|
+
var $interactive = _a.$interactive;
|
|
25
|
+
return $interactive && 'user-select: none;';
|
|
26
|
+
}, function (_a) {
|
|
27
|
+
var $disabled = _a.$disabled;
|
|
28
|
+
return $disabled && "\n opacity: ".concat(semantic.opacity.disabled, ";\n cursor: not-allowed;\n pointer-events: none;\n ");
|
|
29
|
+
}, function (_a) {
|
|
30
|
+
var $destructive = _a.$destructive,
|
|
31
|
+
$disabled = _a.$disabled;
|
|
32
|
+
return $destructive && !$disabled && "\n color: ".concat(semantic.color.text.danger, ";\n ");
|
|
33
|
+
});
|
|
34
|
+
var StyledItemContent = /*#__PURE__*/styled.div.withConfig({
|
|
35
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
36
|
+
return !prop.startsWith('$');
|
|
37
|
+
},
|
|
38
|
+
displayName: "ListItem__StyledItemContent",
|
|
39
|
+
componentId: "sc-1wzzt21-1"
|
|
40
|
+
})(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n align-items: flex-start;\n gap: ", ";\n padding: ", ";\n border-radius: ", ";\n transition: background-color ", " ", ", color ", " ", ";\n cursor: ", ";\n \n /* The shared row states (decision 0030). Only interactive, enabled rows respond to hover and\n press; the primary text is Typography, so the row colours it through a selector */\n ", "\n \n /* Focus visible */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"], ["\n display: flex;\n align-items: flex-start;\n gap: ", ";\n padding: ", ";\n border-radius: ", ";\n transition: background-color ", " ", ", color ", " ", ";\n cursor: ", ";\n \n /* The shared row states (decision 0030). Only interactive, enabled rows respond to hover and\n press; the primary text is Typography, so the row colours it through a selector */\n ", "\n \n /* Focus visible */\n &:focus-visible {\n outline: ", ";\n outline-offset: ", ";\n }\n"])), semantic.space[300], function (_a) {
|
|
41
|
+
var $spacing = _a.$spacing;
|
|
42
|
+
return $spacing === 'compact' ? "".concat(semantic.space[200], " ").concat(semantic.space[300]) : "".concat(semantic.space[300], " ").concat(semantic.space[400]);
|
|
43
|
+
}, semantic.radius.sm, duration.fast, easing.decelerate, duration.fast, easing.decelerate, function (_a) {
|
|
44
|
+
var $interactive = _a.$interactive,
|
|
45
|
+
$disabled = _a.$disabled;
|
|
46
|
+
if ($disabled) return 'not-allowed';
|
|
47
|
+
if ($interactive) return 'pointer';
|
|
48
|
+
return 'default';
|
|
49
|
+
}, function (_a) {
|
|
50
|
+
var $interactive = _a.$interactive,
|
|
51
|
+
$disabled = _a.$disabled,
|
|
52
|
+
$selected = _a.$selected;
|
|
53
|
+
return interactiveRow({
|
|
54
|
+
selected: $selected,
|
|
55
|
+
disabled: $disabled || !$interactive,
|
|
56
|
+
textSelector: "".concat(StyledTextContent, " > :first-child")
|
|
57
|
+
});
|
|
58
|
+
}, semantic.border.focus, semantic.border.focusOffset);
|
|
59
|
+
var StyledIconContainer = /*#__PURE__*/styled.div.withConfig({
|
|
60
|
+
displayName: "ListItem__StyledIconContainer",
|
|
61
|
+
componentId: "sc-1wzzt21-2"
|
|
62
|
+
})(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: ", ";\n height: ", ";\n"], ["\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: ", ";\n height: ", ";\n"])), semantic.size.icon.lg, semantic.size.icon.lg);
|
|
63
|
+
var StyledTextContent = /*#__PURE__*/styled.div.withConfig({
|
|
64
|
+
displayName: "ListItem__StyledTextContent",
|
|
65
|
+
componentId: "sc-1wzzt21-3"
|
|
66
|
+
})(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ", ";\n min-width: 0; /* Allow text truncation */\n"], ["\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: ", ";\n min-width: 0; /* Allow text truncation */\n"])), semantic.space[100]);
|
|
67
|
+
var StyledRightContent = /*#__PURE__*/styled.div.withConfig({
|
|
68
|
+
displayName: "ListItem__StyledRightContent",
|
|
69
|
+
componentId: "sc-1wzzt21-4"
|
|
70
|
+
})(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: ", ";\n flex-shrink: 0;\n margin-left: auto;\n"], ["\n display: flex;\n align-items: center;\n gap: ", ";\n flex-shrink: 0;\n margin-left: auto;\n"])), semantic.space[200]);
|
|
71
|
+
var StyledChevronIcon = /*#__PURE__*/styled.div.withConfig({
|
|
72
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
73
|
+
return !prop.startsWith('$');
|
|
74
|
+
},
|
|
75
|
+
displayName: "ListItem__StyledChevronIcon",
|
|
76
|
+
componentId: "sc-1wzzt21-5"
|
|
77
|
+
})(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n color: ", ";\n transition: transform ", " ", ";\n transform: rotate(", ");\n pointer-events: none;\n\n ", " {\n transition: none;\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: ", ";\n color: ", ";\n transition: transform ", " ", ";\n transform: rotate(", ");\n pointer-events: none;\n\n ", " {\n transition: none;\n }\n"])), semantic.size.icon.lg, semantic.size.icon.lg, semantic.color.icon.muted, duration.fast, easing.decelerate, function (_a) {
|
|
78
|
+
var $expanded = _a.$expanded;
|
|
79
|
+
return $expanded ? '180deg' : '0deg';
|
|
80
|
+
}, reducedMotion);
|
|
81
|
+
var StyledExpandedContent = /*#__PURE__*/styled.div.withConfig({
|
|
82
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
83
|
+
return !prop.startsWith('$');
|
|
84
|
+
},
|
|
85
|
+
displayName: "ListItem__StyledExpandedContent",
|
|
86
|
+
componentId: "sc-1wzzt21-6"
|
|
87
|
+
})(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n overflow: hidden;\n /* Padding collapses with the height, and visibility hides the content from\n keyboard and screen readers once the collapse finishes. */\n transition: max-height ", " ", ",\n padding ", " ", ",\n opacity ", " ", ",\n visibility ", " ", ";\n max-height: ", ";\n opacity: ", ";\n visibility: ", ";\n\n ", " {\n transition: opacity ", " ", ",\n visibility ", " ", ";\n }\n \n ", "\n"], ["\n overflow: hidden;\n /* Padding collapses with the height, and visibility hides the content from\n keyboard and screen readers once the collapse finishes. */\n transition: max-height ", " ", ",\n padding ", " ", ",\n opacity ", " ", ",\n visibility ", " ", ";\n max-height: ", ";\n opacity: ", ";\n visibility: ", ";\n\n ", " {\n transition: opacity ", " ", ",\n visibility ", " ", ";\n }\n \n ", "\n"])), duration.moderate, easing.decelerate, duration.moderate, easing.decelerate, duration.moderate, easing.decelerate, duration.moderate, easing.decelerate, function (_a) {
|
|
88
|
+
var $expanded = _a.$expanded;
|
|
89
|
+
return $expanded ? '1000px' : '0';
|
|
90
|
+
}, function (_a) {
|
|
91
|
+
var $expanded = _a.$expanded;
|
|
92
|
+
return $expanded ? '1' : '0';
|
|
93
|
+
}, function (_a) {
|
|
94
|
+
var $expanded = _a.$expanded;
|
|
95
|
+
return $expanded ? 'visible' : 'hidden';
|
|
96
|
+
}, reducedMotion, duration.moderate, easing.decelerate, duration.moderate, easing.decelerate, function (_a) {
|
|
97
|
+
var $expanded = _a.$expanded,
|
|
98
|
+
$spacing = _a.$spacing;
|
|
99
|
+
return $expanded && "\n padding: ".concat($spacing === 'compact' ? "".concat(semantic.space[200], " ").concat(semantic.space[300], " ").concat(semantic.space[200], " ").concat(tokens.component.listItem.expandedIndent.compact) : "".concat(semantic.space[200], " ").concat(semantic.space[400], " ").concat(semantic.space[300], " ").concat(tokens.component.listItem.expandedIndent.comfortable), ";\n background-color: ").concat(semantic.surface.raised, ";\n border-radius: ").concat(semantic.radius.sm, ";\n margin: 0 ").concat($spacing === 'compact' ? semantic.space[300] : semantic.space[400], " ").concat($spacing === 'compact' ? semantic.space[200] : semantic.space[300], ";\n ");
|
|
100
|
+
});
|
|
101
|
+
var ListItem = function ListItem(_a) {
|
|
102
|
+
var primary = _a.primary,
|
|
103
|
+
secondary = _a.secondary,
|
|
104
|
+
badge = _a.badge,
|
|
105
|
+
icon = _a.icon,
|
|
106
|
+
_b = _a.expandable,
|
|
107
|
+
expandable = _b === void 0 ? false : _b,
|
|
108
|
+
_c = _a.expanded,
|
|
109
|
+
expanded = _c === void 0 ? false : _c,
|
|
110
|
+
onToggle = _a.onToggle,
|
|
111
|
+
_d = _a.interactive,
|
|
112
|
+
interactive = _d === void 0 ? false : _d,
|
|
113
|
+
onClick = _a.onClick,
|
|
114
|
+
_e = _a.disabled,
|
|
115
|
+
disabled = _e === void 0 ? false : _e,
|
|
116
|
+
_f = _a.selected,
|
|
117
|
+
selected = _f === void 0 ? false : _f,
|
|
118
|
+
_g = _a.destructive,
|
|
119
|
+
destructive = _g === void 0 ? false : _g,
|
|
120
|
+
spacingProp = _a.spacing,
|
|
121
|
+
children = _a.children,
|
|
122
|
+
className = _a.className,
|
|
123
|
+
dataTestId = _a["data-testid"],
|
|
124
|
+
customRole = _a.role,
|
|
125
|
+
ariaSelected = _a["aria-selected"],
|
|
126
|
+
id = _a.id,
|
|
127
|
+
customTabIndex = _a.tabIndex,
|
|
128
|
+
customOnKeyDown = _a.onKeyDown,
|
|
129
|
+
props = __rest(_a, ["primary", "secondary", "badge", "icon", "expandable", "expanded", "onToggle", "interactive", "onClick", "disabled", "selected", "destructive", "spacing", "children", "className", 'data-testid', "role", 'aria-selected', "id", "tabIndex", "onKeyDown"]);
|
|
130
|
+
var listSpacing = useContext(ListSpacingContext);
|
|
131
|
+
var spacing = spacingProp !== null && spacingProp !== void 0 ? spacingProp : listSpacing;
|
|
132
|
+
var isInteractive = interactive || expandable || customRole === 'option';
|
|
133
|
+
var contentRole = customRole === 'option' ? undefined : isInteractive ? 'button' : undefined;
|
|
134
|
+
var ariaExpanded = expandable ? expanded : undefined;
|
|
135
|
+
var ariaDisabled = disabled ? true : undefined;
|
|
136
|
+
var ariaCurrent = selected ? 'true' : undefined;
|
|
137
|
+
var handleClick = function handleClick() {
|
|
138
|
+
if (disabled) return;
|
|
139
|
+
if (expandable && onToggle) {
|
|
140
|
+
onToggle();
|
|
141
|
+
} else if (onClick) {
|
|
142
|
+
onClick();
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
146
|
+
if (customOnKeyDown) {
|
|
147
|
+
customOnKeyDown(event);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (disabled) return;
|
|
151
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
handleClick();
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
return (
|
|
157
|
+
// The List's spacing is for its own items: reset it for this item's content, so components
|
|
158
|
+
// built on ListItem (ActionSheet, even through its portal) and expanded content keep their own
|
|
159
|
+
// density. A nested List provides its own spacing (#77)
|
|
160
|
+
jsx(ListSpacingContext.Provider, {
|
|
161
|
+
value: "comfortable",
|
|
162
|
+
children: jsxs(StyledListItem, __assign({
|
|
163
|
+
"$interactive": isInteractive,
|
|
164
|
+
"$disabled": disabled,
|
|
165
|
+
"$selected": selected,
|
|
166
|
+
"$destructive": destructive,
|
|
167
|
+
"$spacing": spacing,
|
|
168
|
+
className: className,
|
|
169
|
+
"data-testid": dataTestId,
|
|
170
|
+
role: customRole || 'listitem',
|
|
171
|
+
id: id,
|
|
172
|
+
"aria-selected": ariaSelected
|
|
173
|
+
}, props, {
|
|
174
|
+
children: [jsxs(StyledItemContent, {
|
|
175
|
+
"$interactive": isInteractive,
|
|
176
|
+
"$disabled": disabled,
|
|
177
|
+
"$selected": selected,
|
|
178
|
+
"$destructive": destructive,
|
|
179
|
+
"$spacing": spacing,
|
|
180
|
+
role: contentRole,
|
|
181
|
+
"aria-expanded": ariaExpanded,
|
|
182
|
+
"aria-disabled": ariaDisabled,
|
|
183
|
+
"aria-current": ariaCurrent,
|
|
184
|
+
tabIndex: customTabIndex !== undefined ? customTabIndex : isInteractive && !disabled ? 0 : undefined,
|
|
185
|
+
onClick: handleClick,
|
|
186
|
+
onKeyDown: handleKeyDown,
|
|
187
|
+
children: [icon && jsx(StyledIconContainer, {
|
|
188
|
+
"aria-hidden": "true",
|
|
189
|
+
children: icon
|
|
190
|
+
}), jsxs(StyledTextContent, {
|
|
191
|
+
children: [jsx(Typography, {
|
|
192
|
+
variant: "body",
|
|
193
|
+
color: destructive ? 'error' : 'default',
|
|
194
|
+
children: primary
|
|
195
|
+
}), secondary && jsx(Typography, {
|
|
196
|
+
variant: "small",
|
|
197
|
+
color: "subdued",
|
|
198
|
+
children: secondary
|
|
199
|
+
})]
|
|
200
|
+
}), jsxs(StyledRightContent, {
|
|
201
|
+
children: [badge, expandable && jsx(StyledChevronIcon, {
|
|
202
|
+
"$expanded": expanded,
|
|
203
|
+
"aria-hidden": "true",
|
|
204
|
+
children: jsx(Icon, {
|
|
205
|
+
name: "caretDown",
|
|
206
|
+
size: "sm"
|
|
207
|
+
})
|
|
208
|
+
})]
|
|
209
|
+
})]
|
|
210
|
+
}), expandable && children && jsx(StyledExpandedContent, {
|
|
211
|
+
"$spacing": spacing,
|
|
212
|
+
"$expanded": expanded,
|
|
213
|
+
"aria-hidden": !expanded,
|
|
214
|
+
children: children
|
|
215
|
+
})]
|
|
216
|
+
}))
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
};
|
|
220
|
+
ListItem.displayName = 'ListItem';
|
|
221
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
|
|
222
|
+
|
|
223
|
+
export { ListItem };
|
|
224
|
+
//# sourceMappingURL=ListItem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItem.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type ButtonVariant } from '../../atoms/Button/index.mjs';
|
|
3
|
+
import { type IconName } from '../../../types/icons.mjs';
|
|
4
|
+
export type ModalSize = 'small' | 'medium' | 'large';
|
|
5
|
+
export interface ModalAction {
|
|
6
|
+
/** Button label text */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Callback when the action is clicked */
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Button variant. `accent` is the blue call to action (at most one per view).
|
|
12
|
+
* `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.
|
|
13
|
+
*/
|
|
14
|
+
variant?: ButtonVariant;
|
|
15
|
+
/** Optional leading icon */
|
|
16
|
+
icon?: IconName;
|
|
17
|
+
/** Whether the button is disabled */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ModalProps {
|
|
21
|
+
/** Whether the modal is visible */
|
|
22
|
+
isOpen: boolean;
|
|
23
|
+
/** Callback fired when the modal should close (close button, overlay, Escape) */
|
|
24
|
+
onClose: () => void;
|
|
25
|
+
/** Title displayed in the modal header */
|
|
26
|
+
title: string;
|
|
27
|
+
/** Body content of the modal */
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Width preset. All sizes auto-switch to fullscreen below the `md` breakpoint (768 px).
|
|
31
|
+
* - small → 400 px
|
|
32
|
+
* - medium → 560 px
|
|
33
|
+
* - large → 720 px
|
|
34
|
+
* @default 'medium'
|
|
35
|
+
*/
|
|
36
|
+
size?: ModalSize;
|
|
37
|
+
/** Structured action buttons rendered in the footer */
|
|
38
|
+
actions?: ModalAction[];
|
|
39
|
+
/**
|
|
40
|
+
* Close when the backdrop overlay is clicked
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
closeOnOverlayClick?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Close when the Escape key is pressed
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
closeOnEscape?: boolean;
|
|
49
|
+
/** Test identifier for automated testing */
|
|
50
|
+
'data-testid'?: string;
|
|
51
|
+
/** Accessible label – falls back to `title` */
|
|
52
|
+
'aria-label'?: string;
|
|
53
|
+
/** ID of an element that describes the modal */
|
|
54
|
+
'aria-describedby'?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Modal component
|
|
58
|
+
*
|
|
59
|
+
* A centred dialog overlay with a title, close button (IconButton), scrollable
|
|
60
|
+
* body content, and an optional footer with structured action buttons.
|
|
61
|
+
*
|
|
62
|
+
* - Renders via `createPortal` to avoid z-index / overflow issues.
|
|
63
|
+
* - Auto-fullscreen on viewports narrower than 768 px.
|
|
64
|
+
* - Focus trap, Escape-to-close, overlay-click-to-close.
|
|
65
|
+
* - Locks body scroll while open.
|
|
66
|
+
*
|
|
67
|
+
* Composes: IconButton, Button, Typography, Stack, Divider
|
|
68
|
+
*/
|
|
69
|
+
export declare const Modal: React.FC<ModalProps>;
|