@buildcanada/components 0.3.3 → 0.3.4

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.
Files changed (145) hide show
  1. package/dist/content/Card/Card.d.ts +62 -0
  2. package/dist/content/Card/Card.d.ts.map +1 -0
  3. package/dist/content/Card/Card.js +45 -0
  4. package/dist/content/Card/index.d.ts +3 -0
  5. package/dist/content/Card/index.d.ts.map +1 -0
  6. package/dist/content/Card/index.js +2 -0
  7. package/dist/content/Hero/Hero.d.ts +28 -0
  8. package/dist/content/Hero/Hero.d.ts.map +1 -0
  9. package/dist/content/Hero/Hero.js +16 -0
  10. package/dist/content/Hero/index.d.ts +3 -0
  11. package/dist/content/Hero/index.d.ts.map +1 -0
  12. package/dist/content/Hero/index.js +2 -0
  13. package/dist/content/StatBlock/StatBlock.d.ts +15 -0
  14. package/dist/content/StatBlock/StatBlock.d.ts.map +1 -0
  15. package/dist/content/StatBlock/StatBlock.js +10 -0
  16. package/dist/content/StatBlock/index.d.ts +3 -0
  17. package/dist/content/StatBlock/index.d.ts.map +1 -0
  18. package/dist/content/StatBlock/index.js +2 -0
  19. package/dist/feedback/Dialog/Dialog.d.ts +18 -0
  20. package/dist/feedback/Dialog/Dialog.d.ts.map +1 -0
  21. package/dist/feedback/Dialog/Dialog.js +33 -0
  22. package/{src/feedback/Dialog/index.ts → dist/feedback/Dialog/index.d.ts} +2 -1
  23. package/dist/feedback/Dialog/index.d.ts.map +1 -0
  24. package/dist/feedback/Dialog/index.js +1 -0
  25. package/dist/feedback/PopupForm/PopupForm.d.ts +24 -0
  26. package/dist/feedback/PopupForm/PopupForm.d.ts.map +1 -0
  27. package/dist/feedback/PopupForm/PopupForm.js +13 -0
  28. package/dist/feedback/PopupForm/index.d.ts +2 -0
  29. package/dist/feedback/PopupForm/index.d.ts.map +1 -0
  30. package/dist/feedback/PopupForm/index.js +1 -0
  31. package/{src/index.ts → dist/index.d.ts} +16 -56
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +25 -0
  34. package/dist/layout/Container/Container.d.ts +11 -0
  35. package/dist/layout/Container/Container.d.ts.map +1 -0
  36. package/dist/layout/Container/Container.js +7 -0
  37. package/dist/layout/Container/index.d.ts +3 -0
  38. package/dist/layout/Container/index.d.ts.map +1 -0
  39. package/dist/layout/Container/index.js +2 -0
  40. package/dist/layout/Divider/Divider.d.ts +12 -0
  41. package/dist/layout/Divider/Divider.d.ts.map +1 -0
  42. package/dist/layout/Divider/Divider.js +7 -0
  43. package/dist/layout/Divider/index.d.ts +3 -0
  44. package/dist/layout/Divider/index.d.ts.map +1 -0
  45. package/dist/layout/Divider/index.js +2 -0
  46. package/dist/layout/Grid/Grid.d.ts +24 -0
  47. package/dist/layout/Grid/Grid.d.ts.map +1 -0
  48. package/dist/layout/Grid/Grid.js +11 -0
  49. package/dist/layout/Grid/index.d.ts +3 -0
  50. package/dist/layout/Grid/index.d.ts.map +1 -0
  51. package/dist/layout/Grid/index.js +2 -0
  52. package/dist/layout/Section/Section.d.ts +13 -0
  53. package/dist/layout/Section/Section.d.ts.map +1 -0
  54. package/dist/layout/Section/Section.js +7 -0
  55. package/dist/layout/Section/index.d.ts +3 -0
  56. package/dist/layout/Section/index.d.ts.map +1 -0
  57. package/dist/layout/Section/index.js +2 -0
  58. package/dist/layout/Stack/Stack.d.ts +18 -0
  59. package/dist/layout/Stack/Stack.d.ts.map +1 -0
  60. package/dist/layout/Stack/Stack.js +7 -0
  61. package/dist/layout/Stack/index.d.ts +3 -0
  62. package/dist/layout/Stack/index.d.ts.map +1 -0
  63. package/dist/layout/Stack/index.js +2 -0
  64. package/dist/navigation/Footer/Footer.d.ts +31 -0
  65. package/dist/navigation/Footer/Footer.d.ts.map +1 -0
  66. package/dist/navigation/Footer/Footer.js +21 -0
  67. package/dist/navigation/Footer/index.d.ts +3 -0
  68. package/dist/navigation/Footer/index.d.ts.map +1 -0
  69. package/dist/navigation/Footer/index.js +2 -0
  70. package/dist/navigation/Header/Header.d.ts +23 -0
  71. package/dist/navigation/Header/Header.d.ts.map +1 -0
  72. package/dist/navigation/Header/Header.js +16 -0
  73. package/dist/navigation/Header/index.d.ts +3 -0
  74. package/dist/navigation/Header/index.d.ts.map +1 -0
  75. package/dist/navigation/Header/index.js +2 -0
  76. package/dist/primitives/Button/Button.d.ts +31 -0
  77. package/dist/primitives/Button/Button.d.ts.map +1 -0
  78. package/dist/primitives/Button/Button.js +36 -0
  79. package/dist/primitives/Button/index.d.ts +3 -0
  80. package/dist/primitives/Button/index.d.ts.map +1 -0
  81. package/dist/primitives/Button/index.js +2 -0
  82. package/dist/primitives/Checkbox/Checkbox.d.ts +13 -0
  83. package/dist/primitives/Checkbox/Checkbox.d.ts.map +1 -0
  84. package/dist/primitives/Checkbox/Checkbox.js +10 -0
  85. package/dist/primitives/Checkbox/index.d.ts +3 -0
  86. package/dist/primitives/Checkbox/index.d.ts.map +1 -0
  87. package/dist/primitives/Checkbox/index.js +2 -0
  88. package/dist/primitives/TextField/TextField.d.ts +22 -0
  89. package/dist/primitives/TextField/TextField.d.ts.map +1 -0
  90. package/dist/primitives/TextField/TextField.js +14 -0
  91. package/dist/primitives/TextField/index.d.ts +3 -0
  92. package/dist/primitives/TextField/index.d.ts.map +1 -0
  93. package/dist/primitives/TextField/index.js +2 -0
  94. package/package.json +11 -11
  95. package/src/assets/fonts/financier-text-regular.woff2 +0 -0
  96. package/src/assets/fonts/founders-grotesk-mono-regular.woff2 +0 -0
  97. package/src/assets/fonts/soehne-kraftig.woff2 +0 -0
  98. package/src/content/Card/Card.tsx +0 -170
  99. package/src/content/Card/index.ts +0 -22
  100. package/src/content/Hero/Hero.tsx +0 -63
  101. package/src/content/Hero/index.ts +0 -13
  102. package/src/content/StatBlock/StatBlock.tsx +0 -52
  103. package/src/content/StatBlock/index.ts +0 -2
  104. package/src/feedback/Dialog/Dialog.tsx +0 -120
  105. package/src/feedback/PopupForm/PopupForm.tsx +0 -90
  106. package/src/feedback/PopupForm/index.ts +0 -1
  107. package/src/layout/Container/Container.tsx +0 -29
  108. package/src/layout/Container/index.ts +0 -2
  109. package/src/layout/Divider/Divider.tsx +0 -32
  110. package/src/layout/Divider/index.ts +0 -2
  111. package/src/layout/Grid/Grid.tsx +0 -75
  112. package/src/layout/Grid/index.ts +0 -2
  113. package/src/layout/Section/Section.tsx +0 -37
  114. package/src/layout/Section/index.ts +0 -2
  115. package/src/layout/Stack/Stack.tsx +0 -48
  116. package/src/layout/Stack/index.ts +0 -9
  117. package/src/navigation/Footer/Footer.tsx +0 -174
  118. package/src/navigation/Footer/index.ts +0 -2
  119. package/src/navigation/Header/Header.tsx +0 -185
  120. package/src/navigation/Header/index.ts +0 -2
  121. package/src/primitives/Button/Button.tsx +0 -120
  122. package/src/primitives/Button/index.ts +0 -2
  123. package/src/primitives/Checkbox/Checkbox.tsx +0 -75
  124. package/src/primitives/Checkbox/index.ts +0 -2
  125. package/src/primitives/TextField/TextField.tsx +0 -105
  126. package/src/primitives/TextField/index.ts +0 -2
  127. /package/{src → dist}/content/Card/Card.scss +0 -0
  128. /package/{src → dist}/content/Hero/Hero.scss +0 -0
  129. /package/{src → dist}/content/StatBlock/StatBlock.scss +0 -0
  130. /package/{src → dist}/feedback/Dialog/Dialog.scss +0 -0
  131. /package/{src → dist}/feedback/PopupForm/PopupForm.scss +0 -0
  132. /package/{src → dist}/layout/Container/Container.scss +0 -0
  133. /package/{src → dist}/layout/Divider/Divider.scss +0 -0
  134. /package/{src → dist}/layout/Grid/Grid.scss +0 -0
  135. /package/{src → dist}/layout/Section/Section.scss +0 -0
  136. /package/{src → dist}/layout/Stack/Stack.scss +0 -0
  137. /package/{src → dist}/navigation/Footer/Footer.scss +0 -0
  138. /package/{src → dist}/navigation/Header/Header.scss +0 -0
  139. /package/{src → dist}/primitives/Button/Button.scss +0 -0
  140. /package/{src → dist}/primitives/Checkbox/Checkbox.scss +0 -0
  141. /package/{src → dist}/primitives/TextField/TextField.scss +0 -0
  142. /package/{src → dist}/styles/fonts.scss +0 -0
  143. /package/{src → dist}/styles/main.scss +0 -0
  144. /package/{src → dist}/styles/tokens.scss +0 -0
  145. /package/{src → dist}/styles/typography.scss +0 -0
@@ -0,0 +1,62 @@
1
+ export type CardVariant = "default" | "project" | "memo" | "feature" | "stat" | "profile";
2
+ export interface CardProps {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ variant?: CardVariant;
7
+ href?: string;
8
+ onClick?: () => void;
9
+ }
10
+ export declare function Card({ children, className, style, variant, href, onClick, }: CardProps): import("react/jsx-runtime").JSX.Element;
11
+ /*******************************************************************************
12
+ * Card Subcomponents
13
+ ******************************************************************************/
14
+ export interface CardImageProps {
15
+ src: string;
16
+ alt: string;
17
+ className?: string;
18
+ }
19
+ export declare function CardImage({ src, alt, className }: CardImageProps): import("react/jsx-runtime").JSX.Element;
20
+ export interface CardIconProps {
21
+ children: React.ReactNode;
22
+ className?: string;
23
+ }
24
+ export declare function CardIcon({ children, className }: CardIconProps): import("react/jsx-runtime").JSX.Element;
25
+ export interface CardContentProps {
26
+ children: React.ReactNode;
27
+ className?: string;
28
+ }
29
+ export declare function CardContent({ children, className }: CardContentProps): import("react/jsx-runtime").JSX.Element;
30
+ export interface CardTitleProps {
31
+ children: React.ReactNode;
32
+ className?: string;
33
+ as?: "h2" | "h3" | "h4" | "h5" | "h6";
34
+ }
35
+ export declare function CardTitle({ children, className, as: Component }: CardTitleProps): import("react/jsx-runtime").JSX.Element;
36
+ export interface CardDescriptionProps {
37
+ children: React.ReactNode;
38
+ className?: string;
39
+ }
40
+ export declare function CardDescription({ children, className }: CardDescriptionProps): import("react/jsx-runtime").JSX.Element;
41
+ export interface CardMetaProps {
42
+ children: React.ReactNode;
43
+ className?: string;
44
+ }
45
+ export declare function CardMeta({ children, className }: CardMetaProps): import("react/jsx-runtime").JSX.Element;
46
+ export interface CardStatProps {
47
+ value: string | number;
48
+ label: string;
49
+ change?: string;
50
+ changeDirection?: "up" | "down" | "neutral";
51
+ className?: string;
52
+ }
53
+ export declare function CardStat({ value, label, change, changeDirection, className }: CardStatProps): import("react/jsx-runtime").JSX.Element;
54
+ export interface CardAuthorProps {
55
+ name: string;
56
+ role?: string;
57
+ avatar?: string;
58
+ className?: string;
59
+ }
60
+ export declare function CardAuthor({ name, role, avatar, className }: CardAuthorProps): import("react/jsx-runtime").JSX.Element;
61
+ export default Card;
62
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/content/Card/Card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function Card({ children, className, style, variant = "default", href, onClick, }) {
4
+ const isInteractive = Boolean(href || onClick);
5
+ const isButton = Boolean(onClick);
6
+ const classes = cx("bc-card", `bc-card--${variant}`, {
7
+ "bc-card--interactive": isInteractive,
8
+ "bc-card--button": isButton,
9
+ }, className);
10
+ if (href) {
11
+ return (_jsx("a", { href: href, className: classes, style: style, children: children }));
12
+ }
13
+ if (onClick) {
14
+ return (_jsx("button", { type: "button", className: classes, style: style, onClick: onClick, children: children }));
15
+ }
16
+ return (_jsx("div", { className: classes, style: style, children: children }));
17
+ }
18
+ export function CardImage({ src, alt, className }) {
19
+ return (_jsx("div", { className: cx("bc-card__image", className), children: _jsx("img", { src: src, alt: alt }) }));
20
+ }
21
+ export function CardIcon({ children, className }) {
22
+ return _jsx("div", { className: cx("bc-card__icon", className), children: children });
23
+ }
24
+ export function CardContent({ children, className }) {
25
+ return _jsx("div", { className: cx("bc-card__content", className), children: children });
26
+ }
27
+ export function CardTitle({ children, className, as: Component = "h3" }) {
28
+ return _jsx(Component, { className: cx("bc-card__title", className), children: children });
29
+ }
30
+ export function CardDescription({ children, className }) {
31
+ return _jsx("p", { className: cx("bc-card__description", className), children: children });
32
+ }
33
+ export function CardMeta({ children, className }) {
34
+ return _jsx("div", { className: cx("bc-card__meta", className), children: children });
35
+ }
36
+ export function CardStat({ value, label, change, changeDirection, className }) {
37
+ return (_jsxs("div", { className: cx("bc-card__stat", className), children: [_jsx("span", { className: "bc-card__stat-value", children: value }), _jsx("span", { className: "bc-card__stat-label", children: label }), change && (_jsx("span", { className: cx("bc-card__stat-change", {
38
+ "bc-card__stat-change--up": changeDirection === "up",
39
+ "bc-card__stat-change--down": changeDirection === "down",
40
+ }), children: change }))] }));
41
+ }
42
+ export function CardAuthor({ name, role, avatar, className }) {
43
+ return (_jsxs("div", { className: cx("bc-card__author", className), children: [avatar && (_jsx("img", { src: avatar, alt: name, className: "bc-card__author-avatar" })), _jsxs("div", { className: "bc-card__author-info", children: [_jsx("span", { className: "bc-card__author-name", children: name }), role && _jsx("span", { className: "bc-card__author-role", children: role })] })] }));
44
+ }
45
+ export default Card;
@@ -0,0 +1,3 @@
1
+ export { Card, CardImage, CardIcon, CardContent, CardTitle, CardDescription, CardMeta, CardStat, CardAuthor, type CardProps, type CardVariant, type CardImageProps, type CardIconProps, type CardContentProps, type CardTitleProps, type CardDescriptionProps, type CardMetaProps, type CardStatProps, type CardAuthorProps, } from "./Card.js";
2
+ export { default } from "./Card.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content/Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,GACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Card, CardImage, CardIcon, CardContent, CardTitle, CardDescription, CardMeta, CardStat, CardAuthor, } from "./Card.js";
2
+ export { default } from "./Card.js";
@@ -0,0 +1,28 @@
1
+ export type HeroVariant = "home" | "page" | "centered";
2
+ export type HeroBackground = "white" | "linen" | "charcoal";
3
+ export interface HeroProps {
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ variant?: HeroVariant;
8
+ background?: HeroBackground;
9
+ }
10
+ export declare function Hero({ children, className, style, variant, background, }: HeroProps): import("react/jsx-runtime").JSX.Element;
11
+ export interface HeroTitleProps {
12
+ children: React.ReactNode;
13
+ className?: string;
14
+ as?: "h1" | "h2";
15
+ }
16
+ export declare function HeroTitle({ children, className, as: Component }: HeroTitleProps): import("react/jsx-runtime").JSX.Element;
17
+ export interface HeroSubtitleProps {
18
+ children: React.ReactNode;
19
+ className?: string;
20
+ }
21
+ export declare function HeroSubtitle({ children, className }: HeroSubtitleProps): import("react/jsx-runtime").JSX.Element;
22
+ export interface HeroActionsProps {
23
+ children: React.ReactNode;
24
+ className?: string;
25
+ }
26
+ export declare function HeroActions({ children, className }: HeroActionsProps): import("react/jsx-runtime").JSX.Element;
27
+ export default Hero;
28
+ //# sourceMappingURL=Hero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hero.d.ts","sourceRoot":"","sources":["../../../src/content/Hero/Hero.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;AACtD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;AAE3D,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC9B;AAED,wBAAgB,IAAI,CAAC,EACjB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAgB,EAChB,UAAoB,GACvB,EAAE,SAAS,2CAaX;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,SAAgB,EAAE,EAAE,cAAc,2CAEtF;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,2CAEtE;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAEpE;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function Hero({ children, className, style, variant = "page", background = "linen", }) {
4
+ const classes = cx("bc-hero", `bc-hero--${variant}`, `bc-hero--bg-${background}`, className);
5
+ return (_jsx("div", { className: classes, style: style, children: _jsx("div", { className: "bc-hero__inner", children: children }) }));
6
+ }
7
+ export function HeroTitle({ children, className, as: Component = "h1" }) {
8
+ return _jsx(Component, { className: cx("bc-hero__title", className), children: children });
9
+ }
10
+ export function HeroSubtitle({ children, className }) {
11
+ return _jsx("p", { className: cx("bc-hero__subtitle", className), children: children });
12
+ }
13
+ export function HeroActions({ children, className }) {
14
+ return _jsx("div", { className: cx("bc-hero__actions", className), children: children });
15
+ }
16
+ export default Hero;
@@ -0,0 +1,3 @@
1
+ export { Hero, HeroTitle, HeroSubtitle, HeroActions, type HeroProps, type HeroVariant, type HeroBackground, type HeroTitleProps, type HeroSubtitleProps, type HeroActionsProps, } from "./Hero.js";
2
+ export { default } from "./Hero.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content/Hero/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACxB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Hero, HeroTitle, HeroSubtitle, HeroActions, } from "./Hero.js";
2
+ export { default } from "./Hero.js";
@@ -0,0 +1,15 @@
1
+ export type StatBlockSize = "sm" | "md" | "lg";
2
+ export type StatBlockTrend = "up" | "down" | "neutral";
3
+ export interface StatBlockProps {
4
+ value: string | number;
5
+ label: string;
6
+ description?: string;
7
+ change?: string;
8
+ trend?: StatBlockTrend;
9
+ size?: StatBlockSize;
10
+ className?: string;
11
+ style?: React.CSSProperties;
12
+ }
13
+ export declare function StatBlock({ value, label, description, change, trend, size, className, style, }: StatBlockProps): import("react/jsx-runtime").JSX.Element;
14
+ export default StatBlock;
15
+ //# sourceMappingURL=StatBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatBlock.d.ts","sourceRoot":"","sources":["../../../src/content/StatBlock/StatBlock.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9C,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC9B;AAED,wBAAgB,SAAS,CAAC,EACtB,KAAK,EACL,KAAK,EACL,WAAW,EACX,MAAM,EACN,KAAK,EACL,IAAW,EACX,SAAS,EACT,KAAK,GACR,EAAE,cAAc,2CAwBhB;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function StatBlock({ value, label, description, change, trend, size = "md", className, style, }) {
4
+ const classes = cx("bc-stat-block", `bc-stat-block--${size}`, className);
5
+ return (_jsxs("div", { className: classes, style: style, children: [_jsx("span", { className: "bc-stat-block__value", children: value }), _jsx("span", { className: "bc-stat-block__label", children: label }), description && (_jsx("span", { className: "bc-stat-block__description", children: description })), change && (_jsxs("span", { className: cx("bc-stat-block__change", {
6
+ "bc-stat-block__change--up": trend === "up",
7
+ "bc-stat-block__change--down": trend === "down",
8
+ }), children: [trend === "up" && "↑ ", trend === "down" && "↓ ", change] }))] }));
9
+ }
10
+ export default StatBlock;
@@ -0,0 +1,3 @@
1
+ export { StatBlock, type StatBlockProps, type StatBlockSize, type StatBlockTrend } from "./StatBlock.js";
2
+ export { default } from "./StatBlock.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content/StatBlock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACxG,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { StatBlock } from "./StatBlock.js";
2
+ export { default } from "./StatBlock.js";
@@ -0,0 +1,18 @@
1
+ export type DialogPosition = "top-left" | "top-right" | "bottom-left" | "bottom-right" | "center";
2
+ export interface DialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ children: React.ReactNode;
6
+ title?: string;
7
+ description?: string;
8
+ position?: DialogPosition;
9
+ className?: string;
10
+ closeOnEscape?: boolean;
11
+ showCloseButton?: boolean;
12
+ ariaLabelledBy?: string;
13
+ ariaDescribedBy?: string;
14
+ offset?: number;
15
+ }
16
+ export declare function Dialog({ open, onClose, children, title, description, position, className, closeOnEscape, showCloseButton, ariaLabelledBy, ariaDescribedBy, offset, }: DialogProps): import("react/jsx-runtime").JSX.Element;
17
+ export default Dialog;
18
+ //# sourceMappingURL=Dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/feedback/Dialog/Dialog.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GACpB,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ,CAAA;AAEd,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,MAAM,CAAC,EACnB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,EACX,QAAyB,EACzB,SAAS,EACT,aAAoB,EACpB,eAAsB,EACtB,cAAc,EACd,eAAe,EACf,MAAW,GACd,EAAE,WAAW,2CA6Eb;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useCallback } from "react";
3
+ import cx from "classnames";
4
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
5
+ import { faXmark } from "@fortawesome/free-solid-svg-icons";
6
+ export function Dialog({ open, onClose, children, title, description, position = "bottom-right", className, closeOnEscape = true, showCloseButton = true, ariaLabelledBy, ariaDescribedBy, offset = 16, }) {
7
+ const dialogRef = useRef(null);
8
+ const handleClose = useCallback(() => {
9
+ onClose();
10
+ }, [onClose]);
11
+ // Handle escape key
12
+ useEffect(() => {
13
+ if (!closeOnEscape || !open)
14
+ return;
15
+ const handleKeyDown = (e) => {
16
+ if (e.key === "Escape") {
17
+ handleClose();
18
+ }
19
+ };
20
+ document.addEventListener("keydown", handleKeyDown);
21
+ return () => document.removeEventListener("keydown", handleKeyDown);
22
+ }, [closeOnEscape, open, handleClose]);
23
+ if (!open)
24
+ return null;
25
+ const classes = cx("bc-dialog", `bc-dialog--${position}`, className);
26
+ const titleId = ariaLabelledBy || (title ? "bc-dialog-title" : undefined);
27
+ const descriptionId = ariaDescribedBy || (description ? "bc-dialog-description" : undefined);
28
+ const style = {
29
+ "--bc-dialog-offset": `${offset}px`,
30
+ };
31
+ return (_jsx("div", { ref: dialogRef, className: classes, style: style, role: "dialog", "aria-modal": "false", "aria-labelledby": titleId, "aria-describedby": descriptionId, children: _jsxs("div", { className: "bc-dialog__container", children: [(title || showCloseButton) && (_jsxs("header", { className: "bc-dialog__header", children: [title && (_jsx("h2", { id: titleId, className: "bc-dialog__title", children: title })), showCloseButton && (_jsx("button", { type: "button", className: "bc-dialog__close", onClick: handleClose, "aria-label": "Close dialog", children: _jsx(FontAwesomeIcon, { icon: faXmark }) }))] })), description && (_jsx("p", { id: descriptionId, className: "bc-dialog__description", children: description })), _jsx("div", { className: "bc-dialog__content", children: children })] }) }));
32
+ }
33
+ export default Dialog;
@@ -1 +1,2 @@
1
- export { Dialog, type DialogProps, type DialogPosition } from "./Dialog"
1
+ export { Dialog, type DialogProps, type DialogPosition } from "./Dialog.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feedback/Dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1 @@
1
+ export { Dialog } from "./Dialog.js";
@@ -0,0 +1,24 @@
1
+ import { type DialogPosition } from "../Dialog/index.js";
2
+ import { type ButtonVariant } from "../../primitives/Button/index.js";
3
+ export interface PopupFormProps {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ onSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
7
+ children: React.ReactNode;
8
+ title?: string;
9
+ description?: string;
10
+ position?: DialogPosition;
11
+ offset?: number;
12
+ className?: string;
13
+ submitText?: string;
14
+ submitVariant?: ButtonVariant;
15
+ cancelText?: string;
16
+ cancelVariant?: ButtonVariant;
17
+ showCancel?: boolean;
18
+ isSubmitting?: boolean;
19
+ submitDisabled?: boolean;
20
+ closeOnEscape?: boolean;
21
+ }
22
+ export declare function PopupForm({ open, onClose, onSubmit, children, title, description, position, offset, className, submitText, submitVariant, cancelText, cancelVariant, showCancel, isSubmitting, submitDisabled, closeOnEscape, }: PopupFormProps): import("react/jsx-runtime").JSX.Element;
23
+ export default PopupForm;
24
+ //# sourceMappingURL=PopupForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupForm.d.ts","sourceRoot":"","sources":["../../../src/feedback/PopupForm/PopupForm.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAE7E,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IACvD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,wBAAgB,SAAS,CAAC,EACtB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,QAAyB,EACzB,MAAM,EACN,SAAS,EACT,UAAqB,EACrB,aAA8B,EAC9B,UAAqB,EACrB,aAAkC,EAClC,UAAiB,EACjB,YAAoB,EACpB,cAAsB,EACtB,aAAoB,GACvB,EAAE,cAAc,2CA4ChB;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ import { Dialog } from "../Dialog/index.js";
4
+ import { Button } from "../../primitives/Button/index.js";
5
+ export function PopupForm({ open, onClose, onSubmit, children, title, description, position = "bottom-right", offset, className, submitText = "Submit", submitVariant = "solid-auburn", cancelText = "Cancel", cancelVariant = "outline-charcoal", showCancel = true, isSubmitting = false, submitDisabled = false, closeOnEscape = true, }) {
6
+ const handleSubmit = (e) => {
7
+ e.preventDefault();
8
+ onSubmit(e);
9
+ };
10
+ const classes = cx("bc-popup-form", className);
11
+ return (_jsx(Dialog, { open: open, onClose: onClose, title: title, description: description, position: position, offset: offset, closeOnEscape: closeOnEscape, children: _jsxs("form", { onSubmit: handleSubmit, className: classes, children: [_jsx("div", { className: "bc-popup-form__fields", children: children }), _jsxs("div", { className: "bc-popup-form__actions", children: [showCancel && (_jsx(Button, { type: "button", text: cancelText, variant: cancelVariant, onClick: onClose, disabled: isSubmitting, icon: null })), _jsx(Button, { type: "submit", text: isSubmitting ? "Submitting..." : submitText, variant: submitVariant, disabled: submitDisabled || isSubmitting, icon: null })] })] }) }));
12
+ }
13
+ export default PopupForm;
@@ -0,0 +1,2 @@
1
+ export { PopupForm, type PopupFormProps } from "./PopupForm.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feedback/PopupForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1 @@
1
+ export { PopupForm } from "./PopupForm.js";
@@ -3,59 +3,19 @@
3
3
  *
4
4
  * Build Canada Design System Components
5
5
  ******************************************************************************/
6
-
7
- // Primitives
8
- export { Button, type ButtonProps, type ButtonVariant, type ButtonSize } from "./primitives/Button"
9
- export { TextField, type TextFieldProps, type TextFieldType } from "./primitives/TextField"
10
- export { Checkbox, type CheckboxProps } from "./primitives/Checkbox"
11
-
12
- // Layout
13
- export { Container, type ContainerProps, type ContainerSize } from "./layout/Container"
14
- export { Section, type SectionProps, type SectionBackground, type SectionSpacing } from "./layout/Section"
15
- export { Grid, GridItem, type GridProps, type GridItemProps, type GridColumns, type GridGap } from "./layout/Grid"
16
- export { Stack, type StackProps, type StackDirection, type StackSpacing, type StackAlign, type StackJustify } from "./layout/Stack"
17
- export { Divider, type DividerProps, type DividerOrientation, type DividerVariant } from "./layout/Divider"
18
-
19
- // Content
20
- export {
21
- Card,
22
- CardImage,
23
- CardIcon,
24
- CardContent,
25
- CardTitle,
26
- CardDescription,
27
- CardMeta,
28
- CardStat,
29
- CardAuthor,
30
- type CardProps,
31
- type CardVariant,
32
- type CardImageProps,
33
- type CardIconProps,
34
- type CardContentProps,
35
- type CardTitleProps,
36
- type CardDescriptionProps,
37
- type CardMetaProps,
38
- type CardStatProps,
39
- type CardAuthorProps,
40
- } from "./content/Card"
41
- export {
42
- Hero,
43
- HeroTitle,
44
- HeroSubtitle,
45
- HeroActions,
46
- type HeroProps,
47
- type HeroVariant,
48
- type HeroBackground,
49
- type HeroTitleProps,
50
- type HeroSubtitleProps,
51
- type HeroActionsProps,
52
- } from "./content/Hero"
53
- export { StatBlock, type StatBlockProps, type StatBlockSize, type StatBlockTrend } from "./content/StatBlock"
54
-
55
- // Navigation
56
- export { Header, type HeaderProps, type NavItem } from "./navigation/Header"
57
- export { Footer, type FooterProps, type FooterLink, type SocialLink } from "./navigation/Footer"
58
-
59
- // Feedback
60
- export { Dialog, type DialogProps, type DialogPosition } from "./feedback/Dialog"
61
- export { PopupForm, type PopupFormProps } from "./feedback/PopupForm"
6
+ export { Button, type ButtonProps, type ButtonVariant, type ButtonSize } from "./primitives/Button/index.js";
7
+ export { TextField, type TextFieldProps, type TextFieldType } from "./primitives/TextField/index.js";
8
+ export { Checkbox, type CheckboxProps } from "./primitives/Checkbox/index.js";
9
+ export { Container, type ContainerProps, type ContainerSize } from "./layout/Container/index.js";
10
+ export { Section, type SectionProps, type SectionBackground, type SectionSpacing } from "./layout/Section/index.js";
11
+ export { Grid, GridItem, type GridProps, type GridItemProps, type GridColumns, type GridGap } from "./layout/Grid/index.js";
12
+ export { Stack, type StackProps, type StackDirection, type StackSpacing, type StackAlign, type StackJustify } from "./layout/Stack/index.js";
13
+ export { Divider, type DividerProps, type DividerOrientation, type DividerVariant } from "./layout/Divider/index.js";
14
+ export { Card, CardImage, CardIcon, CardContent, CardTitle, CardDescription, CardMeta, CardStat, CardAuthor, type CardProps, type CardVariant, type CardImageProps, type CardIconProps, type CardContentProps, type CardTitleProps, type CardDescriptionProps, type CardMetaProps, type CardStatProps, type CardAuthorProps, } from "./content/Card/index.js";
15
+ export { Hero, HeroTitle, HeroSubtitle, HeroActions, type HeroProps, type HeroVariant, type HeroBackground, type HeroTitleProps, type HeroSubtitleProps, type HeroActionsProps, } from "./content/Hero/index.js";
16
+ export { StatBlock, type StatBlockProps, type StatBlockSize, type StatBlockTrend } from "./content/StatBlock/index.js";
17
+ export { Header, type HeaderProps, type NavItem } from "./navigation/Header/index.js";
18
+ export { Footer, type FooterProps, type FooterLink, type SocialLink } from "./navigation/Footer/index.js";
19
+ export { Dialog, type DialogProps, type DialogPosition } from "./feedback/Dialog/index.js";
20
+ export { PopupForm, type PopupFormProps } from "./feedback/PopupForm/index.js";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAGhF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpG,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAG7E,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChG,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACnH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC3H,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC5I,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAGpH,OAAO,EACH,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,GACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAGtH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAGzG,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ /*******************************************************************************
2
+ * @buildcanada/components
3
+ *
4
+ * Build Canada Design System Components
5
+ ******************************************************************************/
6
+ // Primitives
7
+ export { Button } from "./primitives/Button/index.js";
8
+ export { TextField } from "./primitives/TextField/index.js";
9
+ export { Checkbox } from "./primitives/Checkbox/index.js";
10
+ // Layout
11
+ export { Container } from "./layout/Container/index.js";
12
+ export { Section } from "./layout/Section/index.js";
13
+ export { Grid, GridItem } from "./layout/Grid/index.js";
14
+ export { Stack } from "./layout/Stack/index.js";
15
+ export { Divider } from "./layout/Divider/index.js";
16
+ // Content
17
+ export { Card, CardImage, CardIcon, CardContent, CardTitle, CardDescription, CardMeta, CardStat, CardAuthor, } from "./content/Card/index.js";
18
+ export { Hero, HeroTitle, HeroSubtitle, HeroActions, } from "./content/Hero/index.js";
19
+ export { StatBlock } from "./content/StatBlock/index.js";
20
+ // Navigation
21
+ export { Header } from "./navigation/Header/index.js";
22
+ export { Footer } from "./navigation/Footer/index.js";
23
+ // Feedback
24
+ export { Dialog } from "./feedback/Dialog/index.js";
25
+ export { PopupForm } from "./feedback/PopupForm/index.js";
@@ -0,0 +1,11 @@
1
+ export type ContainerSize = "sm" | "md" | "lg" | "xl" | "full";
2
+ export interface ContainerProps {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ size?: ContainerSize;
7
+ as?: "div" | "main" | "article" | "section";
8
+ }
9
+ export declare function Container({ children, className, style, size, as: Component, }: ContainerProps): import("react/jsx-runtime").JSX.Element;
10
+ export default Container;
11
+ //# sourceMappingURL=Container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../src/layout/Container/Container.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAC9C;AAED,wBAAgB,SAAS,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAW,EACX,EAAE,EAAE,SAAiB,GACxB,EAAE,cAAc,2CAQhB;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function Container({ children, className, style, size = "lg", as: Component = "div", }) {
4
+ const classes = cx("bc-container", `bc-container--${size}`, className);
5
+ return (_jsx(Component, { className: classes, style: style, children: children }));
6
+ }
7
+ export default Container;
@@ -0,0 +1,3 @@
1
+ export { Container, type ContainerProps, type ContainerSize } from "./Container.js";
2
+ export { default } from "./Container.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/Container/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Container } from "./Container.js";
2
+ export { default } from "./Container.js";
@@ -0,0 +1,12 @@
1
+ export type DividerOrientation = "horizontal" | "vertical";
2
+ export type DividerVariant = "solid" | "dashed" | "construction";
3
+ export interface DividerProps {
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ orientation?: DividerOrientation;
7
+ variant?: DividerVariant;
8
+ spacing?: "none" | "sm" | "md" | "lg";
9
+ }
10
+ export declare function Divider({ className, style, orientation, variant, spacing, }: DividerProps): import("react/jsx-runtime").JSX.Element;
11
+ export default Divider;
12
+ //# sourceMappingURL=Divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/layout/Divider/Divider.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,CAAA;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAA;AAEhE,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CACxC;AAED,wBAAgB,OAAO,CAAC,EACpB,SAAS,EACT,KAAK,EACL,WAA0B,EAC1B,OAAiB,EACjB,OAAc,GACjB,EAAE,YAAY,2CAUd;AAED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function Divider({ className, style, orientation = "horizontal", variant = "solid", spacing = "md", }) {
4
+ const classes = cx("bc-divider", `bc-divider--${orientation}`, `bc-divider--${variant}`, `bc-divider--spacing-${spacing}`, className);
5
+ return _jsx("hr", { className: classes, style: style });
6
+ }
7
+ export default Divider;
@@ -0,0 +1,3 @@
1
+ export { Divider, type DividerProps, type DividerOrientation, type DividerVariant } from "./Divider.js";
2
+ export { default } from "./Divider.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/Divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AACvG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Divider } from "./Divider.js";
2
+ export { default } from "./Divider.js";
@@ -0,0 +1,24 @@
1
+ export type GridColumns = 1 | 2 | 3 | 4 | 6 | 12;
2
+ export type GridGap = "none" | "sm" | "md" | "lg";
3
+ export interface GridProps {
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ columns?: GridColumns;
8
+ columnsMd?: GridColumns;
9
+ columnsLg?: GridColumns;
10
+ gap?: GridGap;
11
+ as?: "div" | "ul" | "ol";
12
+ }
13
+ export declare function Grid({ children, className, style, columns, columnsMd, columnsLg, gap, as: Component, }: GridProps): import("react/jsx-runtime").JSX.Element;
14
+ export interface GridItemProps {
15
+ children: React.ReactNode;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ span?: number;
19
+ spanMd?: number;
20
+ spanLg?: number;
21
+ }
22
+ export declare function GridItem({ children, className, style, span, spanMd, spanLg, }: GridItemProps): import("react/jsx-runtime").JSX.Element;
23
+ export default Grid;
24
+ //# sourceMappingURL=Grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../../src/layout/Grid/Grid.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AAChD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEjD,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAA;CAC3B;AAED,wBAAgB,IAAI,CAAC,EACjB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAW,EACX,SAAS,EACT,SAAS,EACT,GAAU,EACV,EAAE,EAAE,SAAiB,GACxB,EAAE,SAAS,2CAeX;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,QAAQ,CAAC,EACrB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,GACT,EAAE,aAAa,2CAcf;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import cx from "classnames";
3
+ export function Grid({ children, className, style, columns = 1, columnsMd, columnsLg, gap = "md", as: Component = "div", }) {
4
+ const classes = cx("bc-grid", `bc-grid--cols-${columns}`, `bc-grid--gap-${gap}`, columnsMd && `bc-grid--cols-md-${columnsMd}`, columnsLg && `bc-grid--cols-lg-${columnsLg}`, className);
5
+ return (_jsx(Component, { className: classes, style: style, children: children }));
6
+ }
7
+ export function GridItem({ children, className, style, span, spanMd, spanLg, }) {
8
+ const classes = cx("bc-grid__item", span && `bc-grid__item--span-${span}`, spanMd && `bc-grid__item--span-md-${spanMd}`, spanLg && `bc-grid__item--span-lg-${spanLg}`, className);
9
+ return (_jsx("div", { className: classes, style: style, children: children }));
10
+ }
11
+ export default Grid;
@@ -0,0 +1,3 @@
1
+ export { Grid, GridItem, type GridProps, type GridItemProps, type GridColumns, type GridGap } from "./Grid.js";
2
+ export { default } from "./Grid.js";
3
+ //# sourceMappingURL=index.d.ts.map