@common-origin/design-system 1.6.0 → 1.8.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/README.md +41 -9
- package/dist/components/atoms/Badge/Badge.d.ts +18 -0
- package/dist/components/atoms/Badge/index.d.ts +2 -0
- package/dist/components/atoms/Divider/Divider.d.ts +30 -0
- package/dist/components/atoms/Divider/index.d.ts +1 -0
- package/dist/components/atoms/index.d.ts +2 -1
- package/dist/index.esm.js +147 -31
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +147 -30
- package/dist/index.js.map +1 -1
- package/dist/types/icons.d.ts +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -109,7 +109,7 @@ function MyApp() {
|
|
|
109
109
|
|
|
110
110
|
**✅ Atoms (12 components)**:
|
|
111
111
|
- Alert, Avatar, Box, Button, Chip, Container
|
|
112
|
-
- Picture, Icon, IconButton,
|
|
112
|
+
- Picture, Icon, IconButton, Divider
|
|
113
113
|
- Stack, Typography
|
|
114
114
|
|
|
115
115
|
**✅ Molecules (8 components)**:
|
|
@@ -134,16 +134,48 @@ This design system is production-ready with:
|
|
|
134
134
|
|
|
135
135
|
## 🤝 Contributing
|
|
136
136
|
|
|
137
|
-
|
|
138
|
-
- **Comprehensive testing** with jest-axe for accessibility compliance
|
|
139
|
-
- **Token-driven styling** - all components use semantic design tokens
|
|
140
|
-
- **TypeScript interfaces** with complete props documentation
|
|
141
|
-
- **Atomic design principles** for scalable component organization
|
|
142
|
-
- **Component documentation** with interactive examples and usage patterns
|
|
137
|
+
We welcome contributions! Please follow our established standards:
|
|
143
138
|
|
|
144
|
-
###
|
|
139
|
+
### Quick Start
|
|
140
|
+
```bash
|
|
141
|
+
# Fork and clone
|
|
142
|
+
git clone <your-fork>
|
|
143
|
+
cd common-origin-design-system
|
|
144
|
+
npm install
|
|
145
|
+
|
|
146
|
+
# Start development
|
|
147
|
+
npm run docs:dev # Starts dev server with docs
|
|
148
|
+
npm test # Run tests
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Commit Convention
|
|
152
|
+
We use [Conventional Commits](https://www.conventionalcommits.org/) for automatic changelog generation:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
feat(Component): add new feature
|
|
156
|
+
fix(Component): fix bug
|
|
157
|
+
docs: update documentation
|
|
158
|
+
chore: bump version to X.Y.Z
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Release Process
|
|
162
|
+
```bash
|
|
163
|
+
# Automated release (recommended)
|
|
164
|
+
npm run release:create
|
|
165
|
+
|
|
166
|
+
# Manual release - see .github/RELEASE_PROCESS.md
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Documentation
|
|
170
|
+
- **Contributing Guide**: [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
171
|
+
- **Release Process**: [.github/RELEASE_PROCESS.md](./.github/RELEASE_PROCESS.md)
|
|
172
|
+
- **Documentation Standards**: [.github/DOCUMENTATION_STANDARDS.md](./.github/DOCUMENTATION_STANDARDS.md)
|
|
173
|
+
- **Quick Reference**: [.github/RELEASE_CHEATSHEET.md](./.github/RELEASE_CHEATSHEET.md)
|
|
174
|
+
|
|
175
|
+
### Development Standards
|
|
145
176
|
1. Components follow the atomic design hierarchy
|
|
146
177
|
2. All styling uses design tokens from `src/styles/tokens.json`
|
|
147
178
|
3. Each component includes `.test.tsx`, `.docs.tsx`, and implementation files
|
|
148
179
|
4. Tests must include accessibility validation with jest-axe
|
|
149
|
-
5. Documentation includes live examples and prop descriptions
|
|
180
|
+
5. Documentation includes live examples and prop descriptions
|
|
181
|
+
6. Use conventional commit messages for all commits
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface BadgeProps {
|
|
3
|
+
/** Content to wrap with the badge */
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Number to display in the badge. If 0, badge is hidden */
|
|
6
|
+
count?: number;
|
|
7
|
+
/** Maximum number to display before showing "99+" */
|
|
8
|
+
max?: number;
|
|
9
|
+
/** Visual variant of the badge */
|
|
10
|
+
variant?: 'default' | 'primary' | 'error' | 'warning' | 'success';
|
|
11
|
+
/** Show only a dot indicator instead of count */
|
|
12
|
+
dot?: boolean;
|
|
13
|
+
/** Screen reader label for the badge */
|
|
14
|
+
'aria-label'?: string;
|
|
15
|
+
/** Additional CSS class */
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const Badge: React.FC<BadgeProps>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DividerProps {
|
|
3
|
+
/** Variant style of the divider */
|
|
4
|
+
variant?: 'default' | 'strong' | 'minimal';
|
|
5
|
+
/** Size variation affecting spacing */
|
|
6
|
+
size?: 'small' | 'medium' | 'large' | 'xlarge';
|
|
7
|
+
/** Orientation of the divider */
|
|
8
|
+
orientation?: 'horizontal' | 'vertical';
|
|
9
|
+
/** Data test id for testing */
|
|
10
|
+
'data-testid'?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Divider is an atomic component that provides visual separation between content sections.
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Multiple variants (default, strong, minimal)
|
|
17
|
+
* - Size variations for different spacing needs
|
|
18
|
+
* - Horizontal and vertical orientations
|
|
19
|
+
* - Semantic token usage for consistent styling
|
|
20
|
+
* - Full accessibility support
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <Divider />
|
|
25
|
+
* <Divider variant="strong" size="xlarge" />
|
|
26
|
+
* <Divider variant="minimal" />
|
|
27
|
+
* <Divider orientation="vertical" />
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const Divider: React.FC<DividerProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Divider';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './Avatar';
|
|
2
|
+
export * from './Badge';
|
|
2
3
|
export * from './Box';
|
|
3
4
|
export * from './Button';
|
|
4
5
|
export * from './Chip';
|
|
@@ -8,6 +9,6 @@ export * from './DateFormatter';
|
|
|
8
9
|
export * from './Icon';
|
|
9
10
|
export * from './IconButton';
|
|
10
11
|
export * from './ProgressBar';
|
|
11
|
-
export * from './
|
|
12
|
+
export * from './Divider';
|
|
12
13
|
export * from './Stack';
|
|
13
14
|
export * from './Typography';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect } from 'react';
|
|
2
|
-
import styled, { css } from 'styled-components';
|
|
2
|
+
import styled, { keyframes, css } from 'styled-components';
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { parseISO, format } from 'date-fns';
|
|
5
5
|
import Image from 'next/image';
|
|
@@ -745,7 +745,7 @@ var AvatarContainer = styled.div.withConfig({
|
|
|
745
745
|
},
|
|
746
746
|
displayName: "Avatar__AvatarContainer",
|
|
747
747
|
componentId: "sc-ezn4ax-0"
|
|
748
|
-
})(templateObject_1$
|
|
748
|
+
})(templateObject_1$m || (templateObject_1$m = __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) {
|
|
749
749
|
var $size = _a.$size;
|
|
750
750
|
return tokens.semantic.size.avatar[$size];
|
|
751
751
|
}, function (_a) {
|
|
@@ -758,14 +758,14 @@ var AvatarImage = styled.img.withConfig({
|
|
|
758
758
|
},
|
|
759
759
|
displayName: "Avatar__AvatarImage",
|
|
760
760
|
componentId: "sc-ezn4ax-1"
|
|
761
|
-
})(templateObject_2$
|
|
761
|
+
})(templateObject_2$b || (templateObject_2$b = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ", ";\n /* Remove the img role since the container already has role=\"img\" */\n"], ["\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: ", ";\n /* Remove the img role since the container already has role=\"img\" */\n"])), tokens.base.border.radius.circle);
|
|
762
762
|
var AvatarInitials = styled.span.withConfig({
|
|
763
763
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
764
764
|
return !prop.startsWith('$');
|
|
765
765
|
},
|
|
766
766
|
displayName: "Avatar__AvatarInitials",
|
|
767
767
|
componentId: "sc-ezn4ax-2"
|
|
768
|
-
})(templateObject_3$
|
|
768
|
+
})(templateObject_3$9 || (templateObject_3$9 = __makeTemplateObject(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n line-height: 1;\n text-transform: uppercase;\n user-select: none;\n"], ["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n line-height: 1;\n text-transform: uppercase;\n user-select: none;\n"
|
|
769
769
|
// Helper function to get initials from name
|
|
770
770
|
])), tokens.base.fontFamily.body, tokens.base.fontWeight[3], function (_a) {
|
|
771
771
|
var $size = _a.$size;
|
|
@@ -828,7 +828,80 @@ var Avatar = function Avatar(_a) {
|
|
|
828
828
|
"aria-hidden": "true"
|
|
829
829
|
}, initials));
|
|
830
830
|
};
|
|
831
|
-
var templateObject_1$
|
|
831
|
+
var templateObject_1$m, templateObject_2$b, templateObject_3$9;
|
|
832
|
+
|
|
833
|
+
React.createElement;
|
|
834
|
+
var _a$6 = tokens.semantic,
|
|
835
|
+
color$4 = _a$6.color,
|
|
836
|
+
typography$3 = _a$6.typography,
|
|
837
|
+
_b$2 = tokens.base,
|
|
838
|
+
fontSize = _b$2.fontSize;
|
|
839
|
+
_b$2.shadow;
|
|
840
|
+
var scaleIn = keyframes(templateObject_1$l || (templateObject_1$l = __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"])));
|
|
841
|
+
var BadgeWrapper = styled.span.withConfig({
|
|
842
|
+
displayName: "Badge__BadgeWrapper",
|
|
843
|
+
componentId: "sc-tjz4pp-0"
|
|
844
|
+
})(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n flex-shrink: 0;\n"], ["\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n flex-shrink: 0;\n"])));
|
|
845
|
+
var BadgeIndicator = styled.span.withConfig({
|
|
846
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
847
|
+
return !prop.startsWith('$');
|
|
848
|
+
},
|
|
849
|
+
displayName: "Badge__BadgeIndicator",
|
|
850
|
+
componentId: "sc-tjz4pp-1"
|
|
851
|
+
})(templateObject_3$8 || (templateObject_3$8 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n display: ", ";\n align-items: center;\n justify-content: center;\n min-width: ", ";\n height: ", ";\n padding: ", ";\n border-radius: ", ";\n font: ", ";\n font-size: ", ";\n font-weight: 600;\n line-height: 1;\n white-space: nowrap;\n box-shadow: 0 0 0 2px ", ";\n animation: ", " 0.2s ease-out;\n \n ", "\n"], ["\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n display: ", ";\n align-items: center;\n justify-content: center;\n min-width: ", ";\n height: ", ";\n padding: ", ";\n border-radius: ", ";\n font: ", ";\n font-size: ", ";\n font-weight: 600;\n line-height: 1;\n white-space: nowrap;\n box-shadow: 0 0 0 2px ", ";\n animation: ", " 0.2s ease-out;\n \n ", "\n"])), function (props) {
|
|
852
|
+
return props.$isVisible ? 'flex' : 'none';
|
|
853
|
+
}, function (props) {
|
|
854
|
+
return props.$isDot ? '8px' : '20px';
|
|
855
|
+
}, function (props) {
|
|
856
|
+
return props.$isDot ? '8px' : '20px';
|
|
857
|
+
}, function (props) {
|
|
858
|
+
return props.$isDot ? '0' : '0 6px';
|
|
859
|
+
}, tokens.base.border.radius.circle, typography$3.caption, fontSize[1], color$4.background["default"], scaleIn, function (props) {
|
|
860
|
+
switch (props.$variant) {
|
|
861
|
+
case 'primary':
|
|
862
|
+
return "\n background-color: ".concat(color$4.background.interactive, ";\n color: ").concat(color$4.text.inverse, ";\n ");
|
|
863
|
+
case 'error':
|
|
864
|
+
return "\n background-color: ".concat(color$4.background.error, ";\n color: ").concat(color$4.text.inverse, ";\n ");
|
|
865
|
+
case 'warning':
|
|
866
|
+
return "\n background-color: ".concat(color$4.background.warning, ";\n color: ").concat(color$4.text.inverse, ";\n ");
|
|
867
|
+
case 'success':
|
|
868
|
+
return "\n background-color: ".concat(color$4.background.success, ";\n color: ").concat(color$4.text.inverse, ";\n ");
|
|
869
|
+
default:
|
|
870
|
+
return "\n background-color: ".concat(color$4.background.emphasis, ";\n color: ").concat(color$4.text.inverse, ";\n ");
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
var ScreenReaderOnly = styled.span.withConfig({
|
|
874
|
+
displayName: "Badge__ScreenReaderOnly",
|
|
875
|
+
componentId: "sc-tjz4pp-2"
|
|
876
|
+
})(templateObject_4$6 || (templateObject_4$6 = __makeTemplateObject(["\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n"], ["\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n"])));
|
|
877
|
+
var Badge = function Badge(_a) {
|
|
878
|
+
var children = _a.children,
|
|
879
|
+
_b = _a.count,
|
|
880
|
+
count = _b === void 0 ? 0 : _b,
|
|
881
|
+
_c = _a.max,
|
|
882
|
+
max = _c === void 0 ? 99 : _c,
|
|
883
|
+
_d = _a.variant,
|
|
884
|
+
variant = _d === void 0 ? 'default' : _d,
|
|
885
|
+
_e = _a.dot,
|
|
886
|
+
dot = _e === void 0 ? false : _e,
|
|
887
|
+
ariaLabel = _a["aria-label"],
|
|
888
|
+
className = _a.className;
|
|
889
|
+
var isVisible = dot || count > 0;
|
|
890
|
+
var displayCount = count > max ? "".concat(max, "+") : count.toString();
|
|
891
|
+
// Generate default aria-label if not provided
|
|
892
|
+
var defaultAriaLabel = dot ? 'New notification indicator' : count === 1 ? '1 notification' : "".concat(count, " notifications");
|
|
893
|
+
var label = ariaLabel || defaultAriaLabel;
|
|
894
|
+
return /*#__PURE__*/React.createElement(BadgeWrapper, {
|
|
895
|
+
className: className
|
|
896
|
+
}, children, /*#__PURE__*/React.createElement(BadgeIndicator, {
|
|
897
|
+
$variant: variant,
|
|
898
|
+
$isDot: dot,
|
|
899
|
+
$isVisible: isVisible,
|
|
900
|
+
role: "status",
|
|
901
|
+
"aria-live": "polite"
|
|
902
|
+
}, !dot && displayCount, /*#__PURE__*/React.createElement(ScreenReaderOnly, null, label)));
|
|
903
|
+
};
|
|
904
|
+
var templateObject_1$l, templateObject_2$a, templateObject_3$8, templateObject_4$6;
|
|
832
905
|
|
|
833
906
|
React.createElement;
|
|
834
907
|
var StyledBox = styled.div.withConfig({
|
|
@@ -1104,6 +1177,10 @@ var link = {
|
|
|
1104
1177
|
path: "M10 7C10.5523 7 11 7.44772 11 8C11 8.55228 10.5523 9 10 9H7C5.34315 9 4 10.3431 4 12C4 13.6569 5.34315 15 7 15H10C10.5523 15 11 15.4477 11 16C11 16.5523 10.5523 17 10 17H7C4.23858 17 2 14.7614 2 12C2 9.23858 4.23858 7 7 7H10Z M17 7C19.7614 7 22 9.23858 22 12C22 14.7614 19.7614 17 17 17H14C13.4477 17 13 16.5523 13 16C13 15.4477 13.4477 15 14 15H17C18.6569 15 20 13.6569 20 12C20 10.3431 18.6569 9 17 9H14C13.4477 9 13 8.55228 13 8C13 7.44772 13.4477 7 14 7H17Z M16 11C16.5523 11 17 11.4477 17 12C17 12.5523 16.5523 13 16 13H8C7.44772 13 7 12.5523 7 12C7 11.4477 7.44772 11 8 11H16Z",
|
|
1105
1178
|
name: "link"
|
|
1106
1179
|
};
|
|
1180
|
+
var table = {
|
|
1181
|
+
path: "M20 10H16V19H19C19.4995 19 19.7737 18.9982 19.9639 18.9727C19.9662 18.9724 19.9685 18.971 19.9707 18.9707C19.971 18.9685 19.9724 18.9662 19.9727 18.9639C19.9982 18.7737 20 18.4995 20 18V10ZM22 18C22 18.4431 22.0018 18.876 21.9541 19.2305C21.9026 19.6137 21.7773 20.0509 21.4141 20.4141C21.0509 20.7773 20.6137 20.9026 20.2305 20.9541C19.876 21.0018 19.4431 21 19 21H14V8.00001H22V18Z M10 8.00001V21H5.00001C4.55687 21 4.12397 21.0018 3.76954 20.9541C3.38634 20.9026 2.94916 20.7773 2.58595 20.4141C2.22273 20.0509 2.09743 19.6137 2.04591 19.2305C1.99825 18.876 2.00001 18.4431 2.00001 18V8.00001H10ZM4.00001 18C4.00001 18.4995 4.00181 18.7737 4.02735 18.9639C4.02766 18.9661 4.02803 18.9685 4.02833 18.9707C4.03085 18.9711 4.03351 18.9723 4.03614 18.9727C4.22633 18.9982 4.50051 19 5.00001 19H8.00001V10H4.00001V18Z M16 8.00001V21H8.00001V8.00001H16ZM10 19H14V10H10V19Z M20 6.00001C20 5.50051 19.9982 5.22633 19.9727 5.03614C19.9723 5.03351 19.9711 5.03085 19.9707 5.02833C19.9685 5.02803 19.9661 5.02766 19.9639 5.02735C19.7737 5.00181 19.4995 5.00001 19 5.00001H5.00001C4.50051 5.00001 4.22633 5.00181 4.03614 5.02735C4.03355 5.0277 4.03081 5.02798 4.02833 5.02833C4.02798 5.03081 4.0277 5.03355 4.02735 5.03614C4.00181 5.22633 4.00001 5.50051 4.00001 6.00001V8.00001H20V6.00001ZM22 10H2.00001V6.00001C2.00001 5.55687 1.99825 5.12397 2.04591 4.76954C2.09743 4.38634 2.22273 3.94916 2.58595 3.58595C2.94916 3.22273 3.38634 3.09743 3.76954 3.04591C4.12397 2.99825 4.55687 3.00001 5.00001 3.00001H19C19.4431 3.00001 19.876 2.99825 20.2305 3.04591C20.6137 3.09743 21.0509 3.22273 21.4141 3.58595C21.7773 3.94916 21.9026 4.38634 21.9541 4.76954C22.0018 5.12397 22 5.55687 22 6.00001V10Z",
|
|
1182
|
+
name: "table"
|
|
1183
|
+
};
|
|
1107
1184
|
var userBox = {
|
|
1108
1185
|
path: "M12 6C14.2091 6 16 7.79086 16 10C16 12.2091 14.2091 14 12 14C9.79086 14 8 12.2091 8 10C8 7.79086 9.79086 6 12 6ZM12 8C10.8954 8 10 8.89543 10 10C10 11.1046 10.8954 12 12 12C13.1046 12 14 11.1046 14 10C14 8.89543 13.1046 8 12 8Z M14 2C17.7712 2 19.6566 2.0003 20.8281 3.17188C21.9997 4.34345 22 6.22876 22 10V14C22 17.7712 21.9997 19.6566 20.8281 20.8281C19.803 21.8533 18.2315 21.982 15.3281 21.998L14 22H10L8.67188 21.998C5.8719 21.9826 4.31033 21.8625 3.2832 20.9346L3.17188 20.8281C2.14675 19.803 2.01797 18.2315 2.00195 15.3281L2 14V10C2 6.34627 2 4.46248 3.06543 3.2832L3.17188 3.17188C4.34345 2.0003 6.22876 2 10 2H14ZM12 18C10.8577 18 9.76263 18.3153 8.88574 18.876C8.39459 19.1901 7.99492 19.5688 7.69043 19.9834C8.33459 19.9972 9.09233 20 10 20H14C14.9072 20 15.6646 19.9971 16.3086 19.9834C16.0041 19.5689 15.6052 19.19 15.1143 18.876C14.2374 18.3153 13.1423 18 12 18ZM10 4C8.05784 4 6.80197 4.00454 5.87695 4.12891C5.00986 4.24554 4.73816 4.43372 4.58594 4.58594C4.43372 4.73816 4.24554 5.00986 4.12891 5.87695C4.00454 6.80197 4 8.05784 4 10V14C4 15.9422 4.00454 17.198 4.12891 18.123C4.24554 18.9901 4.43372 19.2618 4.58594 19.4141C4.71234 19.5405 4.92163 19.6893 5.48535 19.8037C5.96679 18.7505 6.77822 17.8493 7.80859 17.1904C9.02742 16.4111 10.5007 16 12 16C13.4993 16 14.9726 16.4111 16.1914 17.1904C17.2217 17.8492 18.0322 18.7507 18.5137 19.8037C19.0781 19.6893 19.2876 19.5405 19.4141 19.4141C19.5663 19.2618 19.7545 18.9901 19.8711 18.123C19.9955 17.198 20 15.9422 20 14V10C20 8.05784 19.9955 6.80197 19.8711 5.87695C19.7545 5.00986 19.5663 4.73816 19.4141 4.58594C19.2618 4.43372 18.9901 4.24554 18.123 4.12891C17.198 4.00454 15.9422 4 14 4H10Z",
|
|
1109
1186
|
name: "userBox"
|
|
@@ -1119,6 +1196,10 @@ var iconsData = {
|
|
|
1119
1196
|
check: check,
|
|
1120
1197
|
close: close,
|
|
1121
1198
|
directionRight: directionRight,
|
|
1199
|
+
"export": {
|
|
1200
|
+
path: "M7.70703 10.707L11 7.41406L11 14C11 14.5523 11.4477 15 12 15C12.5523 15 13 14.5523 13 14V7.41406L16.293 10.707L17.707 9.29297L12 3.58594L6.29297 9.29297L7.70703 10.707Z M4 17V16H6V17C6 17.5523 6.44772 18 7 18H17C17.5523 18 18 17.5523 18 17V16H20V17C20 18.6051 18.7394 19.9158 17.1543 19.9961L17 20H7C5.34315 20 4 18.6569 4 17Z",
|
|
1201
|
+
name: "export"
|
|
1202
|
+
},
|
|
1122
1203
|
menu: menu,
|
|
1123
1204
|
pause: pause,
|
|
1124
1205
|
play: play,
|
|
@@ -1127,6 +1208,7 @@ var iconsData = {
|
|
|
1127
1208
|
message: message,
|
|
1128
1209
|
copy: copy,
|
|
1129
1210
|
link: link,
|
|
1211
|
+
table: table,
|
|
1130
1212
|
userBox: userBox
|
|
1131
1213
|
};
|
|
1132
1214
|
|
|
@@ -1394,9 +1476,9 @@ var BaseChipStyled = styled.span.withConfig({
|
|
|
1394
1476
|
},
|
|
1395
1477
|
displayName: "ChipBase__BaseChipStyled",
|
|
1396
1478
|
componentId: "sc-moa6zc-0"
|
|
1397
|
-
})(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:
|
|
1479
|
+
})(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: 12px;\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: width ", ";\n \n /* Use CSS custom properties set by wrapper */\n background-color: var(--chip-bg-color);\n color: var(--chip-text-color);\n font: var(--chip-font);\n padding: var(--chip-padding);\n opacity: var(--chip-opacity, 1);\n cursor: var(--chip-cursor, default);\n \n &:hover {\n opacity: var(--chip-hover-opacity, var(--chip-opacity, 1));\n }\n \n &:active {\n opacity: var(--chip-active-opacity, var(--chip-opacity, 1));\n }\n \n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 2px;\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: 12px;\n box-sizing: border-box;\n user-select: none;\n white-space: nowrap;\n transition: width ", ";\n \n /* Use CSS custom properties set by wrapper */\n background-color: var(--chip-bg-color);\n color: var(--chip-text-color);\n font: var(--chip-font);\n padding: var(--chip-padding);\n opacity: var(--chip-opacity, 1);\n cursor: var(--chip-cursor, default);\n \n &:hover {\n opacity: var(--chip-hover-opacity, var(--chip-opacity, 1));\n }\n \n &:active {\n opacity: var(--chip-active-opacity, var(--chip-opacity, 1));\n }\n \n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 2px;\n }\n"
|
|
1398
1480
|
// Icon container for selected indicator or leading icons
|
|
1399
|
-
])),
|
|
1481
|
+
])), tokens.semantic.motion.interactive, chip.variants.interactive.backgroundColor);
|
|
1400
1482
|
// Icon container for selected indicator or leading icons
|
|
1401
1483
|
var IconContainer = styled.span.withConfig({
|
|
1402
1484
|
displayName: "ChipBase__IconContainer",
|
|
@@ -1952,49 +2034,78 @@ var ProgressBar = function ProgressBar(_a) {
|
|
|
1952
2034
|
var templateObject_1$c, templateObject_2$5, templateObject_3$4, templateObject_4$3, templateObject_5$3, templateObject_6$1, templateObject_7$1;
|
|
1953
2035
|
|
|
1954
2036
|
React.createElement;
|
|
1955
|
-
var
|
|
2037
|
+
var StyledDivider = styled.div.withConfig({
|
|
1956
2038
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
1957
2039
|
return !prop.startsWith('$');
|
|
1958
2040
|
},
|
|
1959
|
-
displayName: "
|
|
1960
|
-
componentId: "sc-
|
|
1961
|
-
})(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n border: none;\n
|
|
2041
|
+
displayName: "Divider__StyledDivider",
|
|
2042
|
+
componentId: "sc-1l0c8ja-0"
|
|
2043
|
+
})(templateObject_1$b || (templateObject_1$b = __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"
|
|
1962
2044
|
/**
|
|
1963
|
-
*
|
|
2045
|
+
* Divider is an atomic component that provides visual separation between content sections.
|
|
1964
2046
|
*
|
|
1965
2047
|
* Features:
|
|
1966
2048
|
* - Multiple variants (default, strong, minimal)
|
|
1967
2049
|
* - Size variations for different spacing needs
|
|
2050
|
+
* - Horizontal and vertical orientations
|
|
1968
2051
|
* - Semantic token usage for consistent styling
|
|
1969
2052
|
* - Full accessibility support
|
|
1970
2053
|
*
|
|
1971
2054
|
* @example
|
|
1972
2055
|
* ```tsx
|
|
1973
|
-
* <
|
|
1974
|
-
* <
|
|
1975
|
-
* <
|
|
2056
|
+
* <Divider />
|
|
2057
|
+
* <Divider variant="strong" size="xlarge" />
|
|
2058
|
+
* <Divider variant="minimal" />
|
|
2059
|
+
* <Divider orientation="vertical" />
|
|
1976
2060
|
* ```
|
|
1977
2061
|
*/])), function (_a) {
|
|
2062
|
+
var _b = _a.$orientation,
|
|
2063
|
+
$orientation = _b === void 0 ? 'horizontal' : _b;
|
|
2064
|
+
if ($orientation === 'vertical') {
|
|
2065
|
+
return "\n display: inline-block;\n height: auto;\n align-self: stretch;\n border-left: 1px solid;\n border-top: none;\n ";
|
|
2066
|
+
}
|
|
2067
|
+
return "border-top: 1px solid;";
|
|
2068
|
+
}, function (_a) {
|
|
1978
2069
|
var _b = _a.$variant,
|
|
1979
|
-
$variant = _b === void 0 ? 'default' : _b
|
|
2070
|
+
$variant = _b === void 0 ? 'default' : _b,
|
|
2071
|
+
_c = _a.$orientation,
|
|
2072
|
+
$orientation = _c === void 0 ? 'horizontal' : _c;
|
|
2073
|
+
var borderProperty = $orientation === 'vertical' ? 'border-left' : 'border-top';
|
|
1980
2074
|
switch ($variant) {
|
|
1981
2075
|
case 'strong':
|
|
1982
|
-
return "
|
|
2076
|
+
return "".concat(borderProperty, ": ").concat(tokens.component.separator.variants.strong.border, ";");
|
|
1983
2077
|
case 'minimal':
|
|
1984
|
-
return "
|
|
2078
|
+
return "".concat(borderProperty, ": ").concat(tokens.component.separator.variants.minimal.border, ";");
|
|
1985
2079
|
case 'default':
|
|
1986
2080
|
default:
|
|
1987
|
-
return "
|
|
2081
|
+
return "".concat(borderProperty, ": ").concat(tokens.component.separator.variants["default"].border, ";");
|
|
1988
2082
|
}
|
|
1989
2083
|
}, function (_a) {
|
|
1990
2084
|
var _b = _a.$size,
|
|
1991
2085
|
$size = _b === void 0 ? 'large' : _b,
|
|
1992
2086
|
_c = _a.$variant,
|
|
1993
|
-
$variant = _c === void 0 ? 'default' : _c
|
|
1994
|
-
|
|
1995
|
-
|
|
2087
|
+
$variant = _c === void 0 ? 'default' : _c,
|
|
2088
|
+
_d = _a.$orientation,
|
|
2089
|
+
$orientation = _d === void 0 ? 'horizontal' : _d;
|
|
2090
|
+
if ($variant === 'minimal' && $orientation === 'horizontal') {
|
|
2091
|
+
// Minimal variant always uses its predefined spacing for horizontal
|
|
1996
2092
|
return "margin: ".concat(tokens.component.separator.variants.minimal.margin, ";");
|
|
1997
2093
|
}
|
|
2094
|
+
if ($orientation === 'vertical') {
|
|
2095
|
+
// Vertical orientation uses horizontal margins (left/right)
|
|
2096
|
+
switch ($size) {
|
|
2097
|
+
case 'small':
|
|
2098
|
+
return "margin: 0 ".concat(tokens.semantic.spacing.separator.sm, ";");
|
|
2099
|
+
case 'medium':
|
|
2100
|
+
return "margin: 0 ".concat(tokens.semantic.spacing.separator.md, ";");
|
|
2101
|
+
case 'xlarge':
|
|
2102
|
+
return "margin: 0 ".concat(tokens.semantic.spacing.separator.xl, ";");
|
|
2103
|
+
case 'large':
|
|
2104
|
+
default:
|
|
2105
|
+
return "margin: 0 ".concat(tokens.semantic.spacing.separator.lg, ";");
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
// Horizontal orientation uses vertical margins (top/bottom)
|
|
1998
2109
|
switch ($size) {
|
|
1999
2110
|
case 'small':
|
|
2000
2111
|
return "margin: ".concat(tokens.component.separator.sizes.small.margin, ";");
|
|
@@ -2008,33 +2119,38 @@ var StyledSeparator = styled.div.withConfig({
|
|
|
2008
2119
|
}
|
|
2009
2120
|
});
|
|
2010
2121
|
/**
|
|
2011
|
-
*
|
|
2122
|
+
* Divider is an atomic component that provides visual separation between content sections.
|
|
2012
2123
|
*
|
|
2013
2124
|
* Features:
|
|
2014
2125
|
* - Multiple variants (default, strong, minimal)
|
|
2015
2126
|
* - Size variations for different spacing needs
|
|
2127
|
+
* - Horizontal and vertical orientations
|
|
2016
2128
|
* - Semantic token usage for consistent styling
|
|
2017
2129
|
* - Full accessibility support
|
|
2018
2130
|
*
|
|
2019
2131
|
* @example
|
|
2020
2132
|
* ```tsx
|
|
2021
|
-
* <
|
|
2022
|
-
* <
|
|
2023
|
-
* <
|
|
2133
|
+
* <Divider />
|
|
2134
|
+
* <Divider variant="strong" size="xlarge" />
|
|
2135
|
+
* <Divider variant="minimal" />
|
|
2136
|
+
* <Divider orientation="vertical" />
|
|
2024
2137
|
* ```
|
|
2025
2138
|
*/
|
|
2026
|
-
var
|
|
2139
|
+
var Divider = function Divider(_a) {
|
|
2027
2140
|
var _b = _a.variant,
|
|
2028
2141
|
variant = _b === void 0 ? 'default' : _b,
|
|
2029
2142
|
_c = _a.size,
|
|
2030
2143
|
size = _c === void 0 ? 'large' : _c,
|
|
2144
|
+
_d = _a.orientation,
|
|
2145
|
+
orientation = _d === void 0 ? 'horizontal' : _d,
|
|
2031
2146
|
dataTestId = _a["data-testid"];
|
|
2032
|
-
return /*#__PURE__*/React.createElement(
|
|
2147
|
+
return /*#__PURE__*/React.createElement(StyledDivider, {
|
|
2033
2148
|
$variant: variant,
|
|
2034
2149
|
$size: size,
|
|
2150
|
+
$orientation: orientation,
|
|
2035
2151
|
"data-testid": dataTestId,
|
|
2036
2152
|
role: "separator",
|
|
2037
|
-
"aria-orientation":
|
|
2153
|
+
"aria-orientation": orientation
|
|
2038
2154
|
});
|
|
2039
2155
|
};
|
|
2040
2156
|
var templateObject_1$b;
|
|
@@ -2494,7 +2610,7 @@ var DesignCard = function DesignCard(_a) {
|
|
|
2494
2610
|
url: readMoreHref
|
|
2495
2611
|
}, readMoreText) : /*#__PURE__*/React.createElement(Button, {
|
|
2496
2612
|
onClick: onReadMore
|
|
2497
|
-
}, readMoreText)))))), /*#__PURE__*/React.createElement(
|
|
2613
|
+
}, readMoreText)))))), /*#__PURE__*/React.createElement(Divider, null));
|
|
2498
2614
|
}
|
|
2499
2615
|
return null;
|
|
2500
2616
|
};
|
|
@@ -2993,5 +3109,5 @@ var ResponsiveGrid = function ResponsiveGrid(_a) {
|
|
|
2993
3109
|
};
|
|
2994
3110
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25, templateObject_26, templateObject_27, templateObject_28, templateObject_29, templateObject_30, templateObject_31, templateObject_32, templateObject_33, templateObject_34, templateObject_35;
|
|
2995
3111
|
|
|
2996
|
-
export { ArtCard, Avatar, BooleanChip, Box, Breadcrumbs, Button, Chip, ChipGroup, CodeBlock, Container, DateFormatter, DesignCard, Dropdown, FilterChip, Grid, GridCol, Icon, IconButton, LegacyChip, PageTitle, Picture, ProgressBar, ReleaseCard, ResponsiveGrid,
|
|
3112
|
+
export { ArtCard, Avatar, Badge, BooleanChip, Box, Breadcrumbs, Button, Chip, ChipGroup, CodeBlock, Container, DateFormatter, DesignCard, Divider, Dropdown, FilterChip, Grid, GridCol, Icon, IconButton, LegacyChip, PageTitle, Picture, ProgressBar, ReleaseCard, ResponsiveGrid, Stack, Typography, iconsData, tokens };
|
|
2997
3113
|
//# sourceMappingURL=index.esm.js.map
|