@edwardguerra/design-system 1.0.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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/dist/css/main.css +132 -0
  4. package/dist/css/tokens.css +318 -0
  5. package/dist/index.cjs +31 -0
  6. package/dist/index.cjs.map +1 -0
  7. package/dist/index.mjs +1188 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/style.css +1 -0
  10. package/dist/tokens/_variables.scss +296 -0
  11. package/dist/tokens/tokens.d.ts +338 -0
  12. package/dist/tokens/tokens.js +297 -0
  13. package/dist/tokens/tokens.json +294 -0
  14. package/dist/tokens/variables.css +318 -0
  15. package/dist/types/components/Accordion/Accordion.d.ts +30 -0
  16. package/dist/types/components/Accordion/Accordion.stories.d.ts +15 -0
  17. package/dist/types/components/Accordion/Accordion.test.d.ts +1 -0
  18. package/dist/types/components/Accordion/index.d.ts +2 -0
  19. package/dist/types/components/Article/Article.d.ts +21 -0
  20. package/dist/types/components/Article/Article.stories.d.ts +13 -0
  21. package/dist/types/components/Article/Article.test.d.ts +1 -0
  22. package/dist/types/components/Article/index.d.ts +2 -0
  23. package/dist/types/components/Badge/Badge.d.ts +20 -0
  24. package/dist/types/components/Badge/Badge.stories.d.ts +20 -0
  25. package/dist/types/components/Badge/Badge.test.d.ts +1 -0
  26. package/dist/types/components/Badge/index.d.ts +2 -0
  27. package/dist/types/components/Button/Button.d.ts +49 -0
  28. package/dist/types/components/Button/Button.stories.d.ts +43 -0
  29. package/dist/types/components/Button/Button.test.d.ts +1 -0
  30. package/dist/types/components/Button/index.d.ts +2 -0
  31. package/dist/types/components/Card/Card.d.ts +43 -0
  32. package/dist/types/components/Card/Card.stories.d.ts +31 -0
  33. package/dist/types/components/Card/Card.test.d.ts +1 -0
  34. package/dist/types/components/Card/index.d.ts +2 -0
  35. package/dist/types/components/Carousel/Carousel.d.ts +27 -0
  36. package/dist/types/components/Carousel/Carousel.stories.d.ts +12 -0
  37. package/dist/types/components/Carousel/Carousel.test.d.ts +1 -0
  38. package/dist/types/components/Carousel/index.d.ts +2 -0
  39. package/dist/types/components/DescriptionList/DescriptionList.d.ts +31 -0
  40. package/dist/types/components/DescriptionList/DescriptionList.stories.d.ts +12 -0
  41. package/dist/types/components/DescriptionList/DescriptionList.test.d.ts +1 -0
  42. package/dist/types/components/DescriptionList/index.d.ts +2 -0
  43. package/dist/types/components/Feature/Feature.d.ts +25 -0
  44. package/dist/types/components/Feature/Feature.stories.d.ts +19 -0
  45. package/dist/types/components/Feature/Feature.test.d.ts +1 -0
  46. package/dist/types/components/Feature/index.d.ts +2 -0
  47. package/dist/types/components/Icon/Icon.d.ts +24 -0
  48. package/dist/types/components/Icon/Icon.stories.d.ts +21 -0
  49. package/dist/types/components/Icon/Icon.test.d.ts +1 -0
  50. package/dist/types/components/Icon/index.d.ts +2 -0
  51. package/dist/types/components/Input/Input.d.ts +40 -0
  52. package/dist/types/components/Input/Input.stories.d.ts +30 -0
  53. package/dist/types/components/Input/Input.test.d.ts +1 -0
  54. package/dist/types/components/Input/index.d.ts +2 -0
  55. package/dist/types/components/Link/Link.d.ts +45 -0
  56. package/dist/types/components/Link/Link.stories.d.ts +19 -0
  57. package/dist/types/components/Link/Link.test.d.ts +1 -0
  58. package/dist/types/components/Link/index.d.ts +2 -0
  59. package/dist/types/components/List/List.d.ts +35 -0
  60. package/dist/types/components/List/List.stories.d.ts +14 -0
  61. package/dist/types/components/List/List.test.d.ts +1 -0
  62. package/dist/types/components/List/index.d.ts +2 -0
  63. package/dist/types/components/Menu/Menu.d.ts +44 -0
  64. package/dist/types/components/Menu/Menu.stories.d.ts +19 -0
  65. package/dist/types/components/Menu/Menu.test.d.ts +1 -0
  66. package/dist/types/components/Menu/index.d.ts +2 -0
  67. package/dist/types/components/Modal/Modal.d.ts +44 -0
  68. package/dist/types/components/Modal/Modal.stories.d.ts +26 -0
  69. package/dist/types/components/Modal/Modal.test.d.ts +1 -0
  70. package/dist/types/components/Modal/index.d.ts +2 -0
  71. package/dist/types/components/Nav/Nav.d.ts +43 -0
  72. package/dist/types/components/Nav/Nav.stories.d.ts +19 -0
  73. package/dist/types/components/Nav/Nav.test.d.ts +1 -0
  74. package/dist/types/components/Nav/index.d.ts +2 -0
  75. package/dist/types/components/Pagination/Pagination.d.ts +36 -0
  76. package/dist/types/components/Pagination/Pagination.stories.d.ts +15 -0
  77. package/dist/types/components/Pagination/Pagination.test.d.ts +1 -0
  78. package/dist/types/components/Pagination/index.d.ts +2 -0
  79. package/dist/types/components/Radio/Radio.d.ts +30 -0
  80. package/dist/types/components/Radio/Radio.stories.d.ts +15 -0
  81. package/dist/types/components/Radio/Radio.test.d.ts +1 -0
  82. package/dist/types/components/Radio/index.d.ts +2 -0
  83. package/dist/types/components/Slider/Slider.d.ts +44 -0
  84. package/dist/types/components/Slider/Slider.stories.d.ts +14 -0
  85. package/dist/types/components/Slider/Slider.test.d.ts +1 -0
  86. package/dist/types/components/Slider/index.d.ts +2 -0
  87. package/dist/types/components/Switch/Switch.d.ts +29 -0
  88. package/dist/types/components/Switch/Switch.stories.d.ts +16 -0
  89. package/dist/types/components/Switch/Switch.test.d.ts +1 -0
  90. package/dist/types/components/Switch/index.d.ts +2 -0
  91. package/dist/types/components/TOC/TOC.d.ts +37 -0
  92. package/dist/types/components/TOC/TOC.stories.d.ts +17 -0
  93. package/dist/types/components/TOC/TOC.test.d.ts +1 -0
  94. package/dist/types/components/TOC/index.d.ts +2 -0
  95. package/dist/types/components/Table/Table.d.ts +34 -0
  96. package/dist/types/components/Table/Table.stories.d.ts +13 -0
  97. package/dist/types/components/Table/Table.test.d.ts +1 -0
  98. package/dist/types/components/Table/index.d.ts +2 -0
  99. package/dist/types/components/Tabs/Tabs.d.ts +26 -0
  100. package/dist/types/components/Tabs/Tabs.stories.d.ts +14 -0
  101. package/dist/types/components/Tabs/Tabs.test.d.ts +1 -0
  102. package/dist/types/components/Tabs/index.d.ts +2 -0
  103. package/dist/types/components/ThemeProvider/ThemeContext.d.ts +8 -0
  104. package/dist/types/components/ThemeProvider/ThemeProvider.d.ts +9 -0
  105. package/dist/types/components/ThemeProvider/ThemeProvider.stories.d.ts +17 -0
  106. package/dist/types/components/ThemeProvider/ThemeProvider.test.d.ts +1 -0
  107. package/dist/types/components/ThemeProvider/ThemeSwitcher.d.ts +13 -0
  108. package/dist/types/components/ThemeProvider/index.d.ts +6 -0
  109. package/dist/types/components/Timeline/Timeline.d.ts +31 -0
  110. package/dist/types/components/Timeline/Timeline.stories.d.ts +12 -0
  111. package/dist/types/components/Timeline/Timeline.test.d.ts +1 -0
  112. package/dist/types/components/Timeline/index.d.ts +2 -0
  113. package/dist/types/components/Tooltip/Tooltip.d.ts +25 -0
  114. package/dist/types/components/Tooltip/Tooltip.stories.d.ts +26 -0
  115. package/dist/types/components/Tooltip/Tooltip.test.d.ts +1 -0
  116. package/dist/types/components/Tooltip/index.d.ts +2 -0
  117. package/dist/types/components/index.d.ts +25 -0
  118. package/dist/types/index.d.ts +1 -0
  119. package/dist/types/test/setup.d.ts +1 -0
  120. package/package.json +85 -0
  121. package/tokens/brands/edward-guerra.json +9 -0
  122. package/tokens/brands/materialandhome.json +9 -0
  123. package/tokens/brands/midwest-husbands.json +9 -0
  124. package/tokens/config.json +45 -0
  125. package/tokens/core/breakpoints.json +9 -0
  126. package/tokens/core/colors.json +217 -0
  127. package/tokens/core/effects.json +37 -0
  128. package/tokens/core/spacing.json +24 -0
  129. package/tokens/core/typography.json +45 -0
  130. package/tokens/semantic/button.json +37 -0
  131. package/tokens/semantic/theme.json +26 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Your Organization
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,77 @@
1
+ # Design System
2
+
3
+ A React + TypeScript component library and token pipeline, shared across three real sites/brands: **Edward Guerra** (personal portfolio), **Material and Home**, and **Midwest Husbands**.
4
+
5
+ ## 🎯 Overview
6
+
7
+ - **Token-based theming** with Style Dictionary, sourced from each brand's actual live CSS custom properties
8
+ - **24 React components** with TypeScript
9
+ - **Three real brand themes** — `eg`, `materialandhome`, `midwest-husbands`
10
+ - **Storybook documentation** with a live theme switcher
11
+ - **Testing** with Vitest + Testing Library
12
+
13
+ ## 🚀 Quick Start
14
+
15
+ ```bash
16
+ # Install dependencies
17
+ npm install
18
+
19
+ # Build tokens, CSS, and components
20
+ npm run build
21
+
22
+ # Start Storybook
23
+ npm run storybook
24
+
25
+ # Run tests
26
+ npm test
27
+ ```
28
+
29
+ ## 📦 Components
30
+
31
+ All 24 components are implemented: Button, Badge, Card, Input, Modal, Tabs, Accordion, Switch, Radio, ThemeProvider, Pagination, Icon, Tooltip, DescriptionList, Timeline, Carousel, List, Nav, Article, Feature, TOC, Slider, Table, Menu, Link.
32
+
33
+ Most were ported directly from the SCSS shared across the three live sites (`2025-portfolio`, `materialandhome`, `midwest-husbands`, which all use the same component partial structure). A few — Pagination, Icon, DescriptionList, Nav, Article, Feature, TOC, and Tooltip — didn't have a clean componentized API in the source (page-specific layout CSS, or in Tooltip's case, no CSS at all), so their React APIs are original designs built from the tokens and visual patterns those sites do use, rather than a literal mirror.
34
+
35
+ ## 🎨 Tokens & Theming
36
+
37
+ Design tokens are defined in JSON (Style Dictionary) and compiled to CSS/SCSS/JS/TypeScript in `dist/tokens/`. The three brand themes live in `src/brand-themes.css`, keyed by `[data-color-theme="eg" | "materialandhome" | "midwest-husbands"]`, each setting the same `--eg-*` semantic variable names components already use — see [THEME_SWITCHING.md](./THEME_SWITCHING.md).
38
+
39
+ ```
40
+ tokens/
41
+ ├── core/ # Primitive tokens (colors, spacing, typography)
42
+ ├── semantic/ # Component-specific tokens
43
+ └── brands/ # Brand primary/secondary/tint (eg, materialandhome, midwest-husbands)
44
+ ```
45
+
46
+ ## 🏗️ Project Structure
47
+
48
+ ```
49
+ .
50
+ ├── src/
51
+ │ ├── components/ # React components (24)
52
+ │ ├── brand-themes.css # The 3 real brand theme definitions
53
+ │ ├── styles/ # Compiles to the static-site CSS bundle
54
+ │ └── index.ts # Public exports
55
+ ├── tokens/ # Design token definitions
56
+ ├── dist/ # Build output (tokens, CSS, components)
57
+ └── .storybook/ # Storybook config
58
+ ```
59
+
60
+ ## 🧪 Testing
61
+
62
+ ```bash
63
+ npm test # Watch mode
64
+ npm test -- --run # Run once
65
+ npm run lint
66
+ ```
67
+
68
+ ## 📖 Documentation
69
+
70
+ ```bash
71
+ npm run storybook # http://localhost:6006
72
+ npm run build-storybook # Static build
73
+ ```
74
+
75
+ ## 📄 License
76
+
77
+ [Your License Here]
@@ -0,0 +1,132 @@
1
+ /* ==========================================
2
+ Base tokens shared across all brands
3
+ (mirrors tokens/_component.scss on the live sites)
4
+ ========================================== */
5
+ :root {
6
+ --eg-brand: ;
7
+ --eg-brand-dark: ;
8
+ --eg-brand-tint: ;
9
+ --eg-secondary: ;
10
+ --eg-secondary-focus: ;
11
+ --eg-secondary-accent: ;
12
+ --eg-text: ;
13
+ --eg-text-light: ;
14
+ --eg-text-dark: ;
15
+ --eg-text-secondary: ;
16
+ --eg-text-inverse: ;
17
+ --eg-surface: ;
18
+ --eg-background: ;
19
+ --eg-background--brand: ;
20
+ --eg-background--tint: ;
21
+ --eg-background--dark: ;
22
+ --eg-footer-link-foreground: ;
23
+ --eg-footer-link-foreground--hover: ;
24
+ /* Shared across brands (not overridden per theme) */
25
+ --eg-border: var(--color-neutral-200);
26
+ --eg-line: 1px solid var(--eg-border);
27
+ --eg-line--dashed: 1px dashed var(--eg-border);
28
+ --eg-status-critical: var(--color-red-600);
29
+ --eg-status-success: var(--color-green-600);
30
+ --eg-status-warning: var(--color-yellow-600);
31
+ --eg-link-foreground: var(--eg-brand);
32
+ --eg-link-foreground--hover: var(--eg-brand-dark);
33
+ --eg-card-background: var(--eg-background);
34
+ --eg-badge-background: var(--color-neutral-0);
35
+ --eg-badge-foreground: var(--eg-text);
36
+ /* Layout & gutter tokens (mirrors the live sites' _semantic.scss) */
37
+ --gutter-sm: var(--spacing-8);
38
+ --gutter-md: var(--spacing-12);
39
+ --gutter-lg: var(--spacing-16);
40
+ --layout-width: var(--breakpoint-xl);
41
+ --layout-gap: var(--spacing-6);
42
+ --layout-padding: var(--spacing-8);
43
+ --layout-min: var(--breakpoint-md);
44
+ --layout-window: var(--breakpoint-lg);
45
+ --color-opaque: hsla(0, 0%, 100%, 0.5);
46
+ }
47
+
48
+ /* ===========================
49
+ Edward Guerra (2025-portfolio)
50
+ =========================== */
51
+ [data-color-theme=eg] {
52
+ --font-family-serif: "Parkinsans", sans-serif;
53
+ --font-family-sans: "Parkinsans", sans-serif;
54
+ /* This brand's live berry-950 differs from the shared core value */
55
+ --color-berry-950: #4e2135;
56
+ --eg-brand: var(--color-blue-700);
57
+ --eg-brand-dark: var(--color-blue-900);
58
+ --eg-brand-tint: var(--color-blue-50);
59
+ --eg-secondary: #0b1215;
60
+ --eg-secondary-focus: var(--color-brown-50);
61
+ --eg-secondary-accent: var(--color-brown-50);
62
+ --eg-text: var(--color-neutral-950);
63
+ --eg-text-light: var(--color-neutral-0);
64
+ --eg-text-dark: var(--color-neutral-950);
65
+ --eg-text-secondary: var(--color-neutral-600);
66
+ --eg-text-inverse: var(--color-neutral-0);
67
+ --eg-surface: var(--color-neutral-50);
68
+ --eg-background: var(--color-neutral-0);
69
+ --eg-background--brand: var(--eg-brand);
70
+ --eg-background--tint: var(--color-brown-50);
71
+ --eg-background--dark: var(--eg-secondary);
72
+ --eg-footer-link-foreground: var(--color-blue-300);
73
+ --eg-footer-link-foreground--hover: var(--color-blue-100);
74
+ }
75
+
76
+ /* ===========================
77
+ Material and Home
78
+ =========================== */
79
+ [data-color-theme=materialandhome] {
80
+ --font-family-serif: "proxima-sera", sans-serif;
81
+ --font-family-sans: "Parkinsans", sans-serif;
82
+ /* This brand uses cream instead of white as its "neutral-0" surface */
83
+ --color-neutral-0: #faf5e9;
84
+ /* MH/MW live sites inset the layout width */
85
+ --layout-width: calc(var(--breakpoint-xl) - 3rem);
86
+ --eg-brand: #b25d3e; /* Terracotta */
87
+ --eg-brand-dark: #8c4530;
88
+ --eg-brand-tint: #f5e8e2;
89
+ --eg-secondary: #392525; /* Sow */
90
+ --eg-secondary-focus: #f5ede6;
91
+ --eg-secondary-accent: #683226; /* Redwood */
92
+ --eg-text: #faf5e9; /* Seedling */
93
+ --eg-text-light: #faf5e9;
94
+ --eg-text-dark: #faf5e9;
95
+ --eg-text-secondary: #b6b7a5; /* Mist */
96
+ --eg-text-inverse: #3e4734;
97
+ --eg-surface: var(--color-neutral-50);
98
+ --eg-background: #3e4734; /* Foliage */
99
+ --eg-background--brand: var(--eg-brand);
100
+ --eg-background--tint: #4a5540;
101
+ --eg-background--dark: #2a3024;
102
+ --eg-footer-link-foreground: #faf5e9;
103
+ --eg-footer-link-foreground--hover: #e3e890; /* Sprout */
104
+ }
105
+
106
+ /* ===========================
107
+ Midwest Husbands
108
+ =========================== */
109
+ [data-color-theme=midwest-husbands] {
110
+ --font-family-serif: "proxima-sera", sans-serif;
111
+ --font-family-sans: "Parkinsans", sans-serif;
112
+ /* MH/MW live sites inset the layout width */
113
+ --layout-width: calc(var(--breakpoint-xl) - 3rem);
114
+ --eg-brand: var(--color-teal-700);
115
+ --eg-brand-dark: var(--color-teal-900);
116
+ --eg-brand-tint: var(--color-teal-50);
117
+ --eg-secondary: #0b1215;
118
+ --eg-secondary-focus: var(--color-brown-50);
119
+ --eg-secondary-accent: var(--color-brown-900);
120
+ --eg-text: var(--color-neutral-950);
121
+ --eg-text-light: var(--color-neutral-0);
122
+ --eg-text-dark: var(--color-neutral-950);
123
+ --eg-text-secondary: var(--color-neutral-600);
124
+ --eg-text-inverse: var(--color-neutral-0);
125
+ --eg-surface: var(--color-neutral-50);
126
+ --eg-background: var(--color-neutral-0);
127
+ --eg-background--brand: var(--eg-brand);
128
+ --eg-background--tint: var(--color-brown-50);
129
+ --eg-background--dark: var(--eg-secondary);
130
+ --eg-footer-link-foreground: var(--color-teal-300);
131
+ --eg-footer-link-foreground--hover: var(--color-teal-100);
132
+ }
@@ -0,0 +1,318 @@
1
+ :root {
2
+
3
+ /* BORDERWIDTH */
4
+ --border-width-0: 0;
5
+ --border-width-1: 1px;
6
+ --border-width-2: 2px;
7
+ --border-width-4: 4px;
8
+ --border-width-8: 8px;
9
+
10
+ /* BREAKPOINT */
11
+ --breakpoint-xs: 20em;
12
+ --breakpoint-md: 46.5em;
13
+ --breakpoint-lg: 64em;
14
+ --breakpoint-xl: 100em;
15
+ --breakpoint-2xl: 120em;
16
+
17
+ /* BUTTON */
18
+ --button-primary-background: #0482c5;
19
+ --button-primary-background-hover: #05679f;
20
+ --button-primary-background-active: #095883;
21
+ --button-primary-text: #ffffff;
22
+ --button-primary-border-radius: 1rem;
23
+ --button-primary-padding-x: 1.5rem;
24
+ --button-primary-padding-y: 0.75rem;
25
+ --button-primary-font-size: 1rem;
26
+ --button-primary-font-weight: 500;
27
+ --button-secondary-background: #e7e7e7;
28
+ --button-secondary-background-hover: #d1d1d1;
29
+ --button-secondary-background-active: #b0b0b0;
30
+ --button-secondary-text: #3d3d3d;
31
+ --button-secondary-border-radius: 1rem;
32
+ --button-secondary-padding-x: 1.5rem;
33
+ --button-secondary-padding-y: 0.75rem;
34
+ --button-secondary-font-size: 1rem;
35
+ --button-secondary-font-weight: 500;
36
+ --button-danger-background: #c04242;
37
+ --button-danger-background-hover: #973131;
38
+ --button-danger-background-active: #862e2e;
39
+ --button-danger-text: #ffffff;
40
+ --button-danger-border-radius: 1rem;
41
+ --button-danger-padding-x: 1.5rem;
42
+ --button-danger-padding-y: 0.75rem;
43
+ --button-danger-font-size: 1rem;
44
+ --button-danger-font-weight: 500;
45
+
46
+ /* COLOR */
47
+ --color-neutral-0: #ffffff;
48
+ --color-neutral-50: #f6f6f6;
49
+ --color-neutral-100: #e7e7e7;
50
+ --color-neutral-200: #d1d1d1;
51
+ --color-neutral-300: #b0b0b0;
52
+ --color-neutral-400: #888888;
53
+ --color-neutral-500: #6d6d6d;
54
+ --color-neutral-600: #5d5d5d;
55
+ --color-neutral-700: #4f4f4f;
56
+ --color-neutral-800: #454545;
57
+ --color-neutral-900: #3d3d3d;
58
+ --color-neutral-950: #1a1a1a;
59
+ --color-neutral-1000: #000000;
60
+ --color-blue-50: #f0f9ff;
61
+ --color-blue-100: #e0f2fe;
62
+ --color-blue-200: #bbe6fc;
63
+ --color-blue-300: #7fd1fa;
64
+ --color-blue-400: #3abbf6;
65
+ --color-blue-500: #11a3e6;
66
+ --color-blue-600: #0482c5;
67
+ --color-blue-700: #05679f;
68
+ --color-blue-800: #095883;
69
+ --color-blue-900: #0d4a6d;
70
+ --color-blue-950: #0b3a5a;
71
+ --color-brown-50: #f5f4f1;
72
+ --color-brown-100: #e5e3dc;
73
+ --color-brown-200: #cdcabb;
74
+ --color-brown-300: #b1aa93;
75
+ --color-brown-400: #9a9175;
76
+ --color-brown-500: #8b8067;
77
+ --color-brown-600: #776b57;
78
+ --color-brown-700: #605548;
79
+ --color-brown-800: #534940;
80
+ --color-brown-900: #39322d;
81
+ --color-brown-950: #29221f;
82
+ --color-teal-50: #f4f9f8;
83
+ --color-teal-100: #daedea;
84
+ --color-teal-200: #b4dbd5;
85
+ --color-teal-300: #87c1bb;
86
+ --color-teal-400: #5ea39e;
87
+ --color-teal-500: #448884;
88
+ --color-teal-600: #336967;
89
+ --color-teal-700: #2d5856;
90
+ --color-teal-800: #284747;
91
+ --color-teal-900: #243d3c;
92
+ --color-teal-950: #112122;
93
+ --color-green-50: #f9f8ec;
94
+ --color-green-100: #f1efd6;
95
+ --color-green-200: #e4e1b2;
96
+ --color-green-300: #d1cf85;
97
+ --color-green-400: #bdbc5e;
98
+ --color-green-500: #a1a240;
99
+ --color-green-600: #909236;
100
+ --color-green-700: #616328;
101
+ --color-green-800: #4e5024;
102
+ --color-green-900: #434522;
103
+ --color-green-950: #23250e;
104
+ --color-red-50: #fcf4f4;
105
+ --color-red-100: #fae6e6;
106
+ --color-red-200: #f6d2d2;
107
+ --color-red-300: #efb2b2;
108
+ --color-red-400: #e38686;
109
+ --color-red-500: #d55e5e;
110
+ --color-red-600: #c04242;
111
+ --color-red-700: #973131;
112
+ --color-red-800: #862e2e;
113
+ --color-red-900: #702c2c;
114
+ --color-red-950: #3c1313;
115
+ --color-yellow-50: #fffeea;
116
+ --color-yellow-100: #fffac5;
117
+ --color-yellow-200: #fff585;
118
+ --color-yellow-300: #ffe946;
119
+ --color-yellow-400: #ffd91b;
120
+ --color-yellow-500: #ffba05;
121
+ --color-yellow-600: #e28e00;
122
+ --color-yellow-700: #bb6402;
123
+ --color-yellow-800: #984d08;
124
+ --color-yellow-900: #7c3f0b;
125
+ --color-yellow-950: #482000;
126
+ --color-burnt-50: #fdf5ef;
127
+ --color-burnt-100: #fae8da;
128
+ --color-burnt-200: #f4ceb4;
129
+ --color-burnt-300: #ecad85;
130
+ --color-burnt-400: #e38254;
131
+ --color-burnt-500: #dd6434;
132
+ --color-burnt-600: #ce4c28;
133
+ --color-burnt-700: #ab3923;
134
+ --color-burnt-800: #892f23;
135
+ --color-burnt-900: #6f291f;
136
+ --color-burnt-950: #3c120e;
137
+ --color-berry-50: #fbf4f8;
138
+ --color-berry-100: #f7ecf2;
139
+ --color-berry-200: #f1d9e8;
140
+ --color-berry-300: #e7bad3;
141
+ --color-berry-400: #d88eb7;
142
+ --color-berry-500: #c86c9b;
143
+ --color-berry-600: #b44e7e;
144
+ --color-berry-700: #9a3c65;
145
+ --color-berry-800: #803455;
146
+ --color-berry-900: #6c2f4a;
147
+ --color-berry-950: #0e070a;
148
+ --color-purple-50: #faf5ff;
149
+ --color-purple-100: #f3e8ff;
150
+ --color-purple-200: #e9d5ff;
151
+ --color-purple-300: #d8b4fe;
152
+ --color-purple-400: #c084fc;
153
+ --color-purple-500: #a855f7;
154
+ --color-purple-600: #9333ea;
155
+ --color-purple-700: #7e22ce;
156
+ --color-purple-800: #6b21a8;
157
+ --color-purple-900: #581c87;
158
+ --color-purple-950: #3b0764;
159
+ --color-orange-50: #fff7ed;
160
+ --color-orange-100: #ffedd5;
161
+ --color-orange-200: #fed7aa;
162
+ --color-orange-300: #fdba74;
163
+ --color-orange-400: #fb923c;
164
+ --color-orange-500: #f97316;
165
+ --color-orange-600: #ea580c;
166
+ --color-orange-700: #c2410c;
167
+ --color-orange-800: #9a3412;
168
+ --color-orange-900: #7c2d12;
169
+ --color-orange-950: #431407;
170
+ --color-cyan-50: #ecfeff;
171
+ --color-cyan-100: #cffafe;
172
+ --color-cyan-200: #a5f3fc;
173
+ --color-cyan-300: #67e8f9;
174
+ --color-cyan-400: #22d3ee;
175
+ --color-cyan-500: #06b6d4;
176
+ --color-cyan-600: #0891b2;
177
+ --color-cyan-700: #0e7490;
178
+ --color-cyan-800: #155e75;
179
+ --color-cyan-900: #164e63;
180
+ --color-cyan-950: #083344;
181
+ --color-lime-50: #f7fee7;
182
+ --color-lime-100: #ecfccb;
183
+ --color-lime-200: #d9f99d;
184
+ --color-lime-300: #bef264;
185
+ --color-lime-400: #a3e635;
186
+ --color-lime-500: #84cc16;
187
+ --color-lime-600: #65a30d;
188
+ --color-lime-700: #4d7c0f;
189
+ --color-lime-800: #3f6212;
190
+ --color-lime-900: #365314;
191
+ --color-lime-950: #1a2e05;
192
+ --color-pink-50: #fdf2f8;
193
+ --color-pink-100: #fce7f3;
194
+ --color-pink-200: #fbcfe8;
195
+ --color-pink-300: #f9a8d4;
196
+ --color-pink-400: #f472b6;
197
+ --color-pink-500: #ec4899;
198
+ --color-pink-600: #db2777;
199
+ --color-pink-700: #be185d;
200
+ --color-pink-800: #9d174d;
201
+ --color-pink-900: #831843;
202
+ --color-pink-950: #500724;
203
+ --color-indigo-50: #eef2ff;
204
+ --color-indigo-100: #e0e7ff;
205
+ --color-indigo-200: #c7d2fe;
206
+ --color-indigo-300: #a5b4fc;
207
+ --color-indigo-400: #818cf8;
208
+ --color-indigo-500: #6366f1;
209
+ --color-indigo-600: #4f46e5;
210
+ --color-indigo-700: #4338ca;
211
+ --color-indigo-800: #3730a3;
212
+ --color-indigo-900: #312e81;
213
+ --color-indigo-950: #1e1b4b;
214
+ --color-white-5: rgba(255, 255, 255, 0.05);
215
+ --color-white-10: rgba(255, 255, 255, 0.1);
216
+ --color-white-20: rgba(255, 255, 255, 0.2);
217
+ --color-white-40: rgba(255, 255, 255, 0.4);
218
+ --color-white-60: rgba(255, 255, 255, 0.6);
219
+ --color-white-80: rgba(255, 255, 255, 0.8);
220
+ --color-black-5: rgba(0, 0, 0, 0.05);
221
+ --color-black-10: rgba(0, 0, 0, 0.1);
222
+ --color-black-20: rgba(0, 0, 0, 0.2);
223
+ --color-black-40: rgba(0, 0, 0, 0.4);
224
+ --color-black-60: rgba(0, 0, 0, 0.6);
225
+ --color-black-80: rgba(0, 0, 0, 0.8);
226
+
227
+ /* EDWARD-GUERRA */
228
+ --edward-guerra-brand-primary: #05679f;
229
+ --edward-guerra-brand-secondary: #0d4a6d;
230
+ --edward-guerra-brand-tint: #f0f9ff;
231
+
232
+ /* FONT */
233
+ --font-family-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
234
+ --font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
235
+ --font-family-mono: Menlo, Monaco, Consolas, 'Courier New', monospace;
236
+ --font-size-2xs: 0.5rem;
237
+ --font-size-xs: 0.75rem;
238
+ --font-size-sm: 0.875rem;
239
+ --font-size-base: 1rem;
240
+ --font-size-lg: 1.125rem;
241
+ --font-size-xl: 1.25rem;
242
+ --font-size-2xl: 1.5rem;
243
+ --font-size-3xl: 2rem;
244
+ --font-size-4xl: 2.5rem;
245
+ --font-size-5xl: 3rem;
246
+ --font-size-responsive: 8rem;
247
+ --font-weight-light: 300;
248
+ --font-weight-normal: 400;
249
+ --font-weight-medium: 500;
250
+ --font-weight-semibold: 600;
251
+ --font-weight-bold: 700;
252
+ --font-weight-extrabold: 800;
253
+ --font-line-height-tight: 1.25;
254
+ --font-line-height-normal: 1.5;
255
+ --font-line-height-relaxed: 1.75;
256
+ --font-line-height-loose: 2;
257
+
258
+ /* MATERIALANDHOME */
259
+ --materialandhome-brand-primary: #B25D3E;
260
+ --materialandhome-brand-secondary: #8c4530;
261
+ --materialandhome-brand-tint: #f5e8e2;
262
+
263
+ /* MIDWEST-HUSBANDS */
264
+ --midwest-husbands-brand-primary: #2d5856;
265
+ --midwest-husbands-brand-secondary: #243d3c;
266
+ --midwest-husbands-brand-tint: #f4f9f8;
267
+
268
+ /* RADIUS */
269
+ --radius-none: 0;
270
+ --radius-sm: 0.5rem;
271
+ --radius-md: 1rem;
272
+ --radius-lg: 2rem;
273
+ --radius-full: 9999px;
274
+
275
+ /* SHADOW */
276
+ --shadow-sm: 0 2rem 2rem rgba(0, 0, 0, 0.1);
277
+ --shadow-md: 0 1.5rem 3rem -1.25rem rgba(0, 0, 0, 0.1);
278
+ --shadow-lg: 0 3.125rem 6.25rem -1.25rem rgba(0, 0, 0, 0.25);
279
+ --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
280
+
281
+ /* SPACING */
282
+ --spacing-0: 0;
283
+ --spacing-1: 0.25rem;
284
+ --spacing-2: 0.5rem;
285
+ --spacing-3: 0.75rem;
286
+ --spacing-4: 1rem;
287
+ --spacing-5: 1.25rem;
288
+ --spacing-6: 1.5rem;
289
+ --spacing-8: 2rem;
290
+ --spacing-10: 2.5rem;
291
+ --spacing-12: 3rem;
292
+ --spacing-16: 4rem;
293
+ --spacing-20: 5rem;
294
+ --spacing-24: 6rem;
295
+ --spacing-32: 8rem;
296
+ --spacing-40: 10rem;
297
+ --spacing-48: 12rem;
298
+ --spacing-56: 14rem;
299
+ --spacing-64: 16rem;
300
+ --spacing-96: 24rem;
301
+ --spacing-120: 30rem;
302
+
303
+ /* THEME */
304
+ --theme-background-primary: #ffffff;
305
+ --theme-background-secondary: #f6f6f6;
306
+ --theme-background-tertiary: #e7e7e7;
307
+ --theme-text-primary: #3d3d3d;
308
+ --theme-text-secondary: #4f4f4f;
309
+ --theme-text-tertiary: #6d6d6d;
310
+ --theme-text-inverse: #ffffff;
311
+ --theme-border-default: #d1d1d1;
312
+ --theme-border-strong: #888888;
313
+ --theme-border-subtle: #e7e7e7;
314
+ --theme-status-success: #909236;
315
+ --theme-status-warning: #e28e00;
316
+ --theme-status-error: #c04242;
317
+ --theme-status-info: #0482c5;
318
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react");var re={exports:{}},L={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var we;function vr(){if(we)return L;we=1;var a=C,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,u=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function v(j,c,_){var b,x={},N=null,S=null;_!==void 0&&(N=""+_),c.key!==void 0&&(N=""+c.key),c.ref!==void 0&&(S=c.ref);for(b in c)i.call(c,b)&&!o.hasOwnProperty(b)&&(x[b]=c[b]);if(j&&j.defaultProps)for(b in c=j.defaultProps,c)x[b]===void 0&&(x[b]=c[b]);return{$$typeof:t,type:j,key:N,ref:S,props:x,_owner:u.current}}return L.Fragment=n,L.jsx=v,L.jsxs=v,L}var M={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Ce;function hr(){return Ce||(Ce=1,process.env.NODE_ENV!=="production"&&function(){var a=C,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),v=Symbol.for("react.provider"),j=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),b=Symbol.for("react.suspense_list"),x=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),S=Symbol.for("react.offscreen"),W=Symbol.iterator,H="@@iterator";function Pe(e){if(e===null||typeof e!="object")return null;var s=W&&e[W]||e[H];return typeof s=="function"?s:null}var $=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function E(e){{for(var s=arguments.length,l=new Array(s>1?s-1:0),d=1;d<s;d++)l[d-1]=arguments[d];$e("error",e,l)}}function $e(e,s,l){{var d=$.ReactDebugCurrentFrame,h=d.getStackAddendum();h!==""&&(s+="%s",l=l.concat([h]));var p=l.map(function(m){return String(m)});p.unshift("Warning: "+s),Function.prototype.apply.call(console[e],console,p)}}var Ie=!1,Fe=!1,Be=!1,De=!1,Ae=!1,te;te=Symbol.for("react.module.reference");function Le(e){return!!(typeof e=="string"||typeof e=="function"||e===i||e===o||Ae||e===u||e===_||e===b||De||e===S||Ie||Fe||Be||typeof e=="object"&&e!==null&&(e.$$typeof===N||e.$$typeof===x||e.$$typeof===v||e.$$typeof===j||e.$$typeof===c||e.$$typeof===te||e.getModuleId!==void 0))}function Me(e,s,l){var d=e.displayName;if(d)return d;var h=s.displayName||s.name||"";return h!==""?l+"("+h+")":l}function ae(e){return e.displayName||"Context"}function k(e){if(e==null)return null;if(typeof e.tag=="number"&&E("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case i:return"Fragment";case n:return"Portal";case o:return"Profiler";case u:return"StrictMode";case _:return"Suspense";case b:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case j:var s=e;return ae(s)+".Consumer";case v:var l=e;return ae(l._context)+".Provider";case c:return Me(e,e.render,"ForwardRef");case x:var d=e.displayName||null;return d!==null?d:k(e.type)||"Memo";case N:{var h=e,p=h._payload,m=h._init;try{return k(m(p))}catch{return null}}}return null}var O=Object.assign,D=0,se,ne,ie,le,oe,ce,ue;function de(){}de.__reactDisabledLog=!0;function We(){{if(D===0){se=console.log,ne=console.info,ie=console.warn,le=console.error,oe=console.group,ce=console.groupCollapsed,ue=console.groupEnd;var e={configurable:!0,enumerable:!0,value:de,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}D++}}function Ye(){{if(D--,D===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:O({},e,{value:se}),info:O({},e,{value:ne}),warn:O({},e,{value:ie}),error:O({},e,{value:le}),group:O({},e,{value:oe}),groupCollapsed:O({},e,{value:ce}),groupEnd:O({},e,{value:ue})})}D<0&&E("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var J=$.ReactCurrentDispatcher,G;function Y(e,s,l){{if(G===void 0)try{throw Error()}catch(h){var d=h.stack.trim().match(/\n( *(at )?)/);G=d&&d[1]||""}return`
18
+ `+G+e}}var K=!1,V;{var Ve=typeof WeakMap=="function"?WeakMap:Map;V=new Ve}function fe(e,s){if(!e||K)return"";{var l=V.get(e);if(l!==void 0)return l}var d;K=!0;var h=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var p;p=J.current,J.current=null,We();try{if(s){var m=function(){throw Error()};if(Object.defineProperty(m.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(m,[])}catch(T){d=T}Reflect.construct(e,[],m)}else{try{m.call()}catch(T){d=T}e.call(m.prototype)}}else{try{throw Error()}catch(T){d=T}e()}}catch(T){if(T&&d&&typeof T.stack=="string"){for(var f=T.stack.split(`
19
+ `),R=d.stack.split(`
20
+ `),g=f.length-1,y=R.length-1;g>=1&&y>=0&&f[g]!==R[y];)y--;for(;g>=1&&y>=0;g--,y--)if(f[g]!==R[y]){if(g!==1||y!==1)do if(g--,y--,y<0||f[g]!==R[y]){var w=`
21
+ `+f[g].replace(" at new "," at ");return e.displayName&&w.includes("<anonymous>")&&(w=w.replace("<anonymous>",e.displayName)),typeof e=="function"&&V.set(e,w),w}while(g>=1&&y>=0);break}}}finally{K=!1,J.current=p,Ye(),Error.prepareStackTrace=h}var F=e?e.displayName||e.name:"",P=F?Y(F):"";return typeof e=="function"&&V.set(e,P),P}function Ue(e,s,l){return fe(e,!1)}function qe(e){var s=e.prototype;return!!(s&&s.isReactComponent)}function U(e,s,l){if(e==null)return"";if(typeof e=="function")return fe(e,qe(e));if(typeof e=="string")return Y(e);switch(e){case _:return Y("Suspense");case b:return Y("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case c:return Ue(e.render);case x:return U(e.type,s,l);case N:{var d=e,h=d._payload,p=d._init;try{return U(p(h),s,l)}catch{}}}return""}var A=Object.prototype.hasOwnProperty,me={},ve=$.ReactDebugCurrentFrame;function q(e){if(e){var s=e._owner,l=U(e.type,e._source,s?s.type:null);ve.setExtraStackFrame(l)}else ve.setExtraStackFrame(null)}function He(e,s,l,d,h){{var p=Function.call.bind(A);for(var m in e)if(p(e,m)){var f=void 0;try{if(typeof e[m]!="function"){var R=Error((d||"React class")+": "+l+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw R.name="Invariant Violation",R}f=e[m](s,m,d,l,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(g){f=g}f&&!(f instanceof Error)&&(q(h),E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",d||"React class",l,m,typeof f),q(null)),f instanceof Error&&!(f.message in me)&&(me[f.message]=!0,q(h),E("Failed %s type: %s",l,f.message),q(null))}}}var Je=Array.isArray;function z(e){return Je(e)}function Ge(e){{var s=typeof Symbol=="function"&&Symbol.toStringTag,l=s&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l}}function Ke(e){try{return he(e),!1}catch{return!0}}function he(e){return""+e}function pe(e){if(Ke(e))return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ge(e)),he(e)}var _e=$.ReactCurrentOwner,ze={key:!0,ref:!0,__self:!0,__source:!0},be,je;function Xe(e){if(A.call(e,"ref")){var s=Object.getOwnPropertyDescriptor(e,"ref").get;if(s&&s.isReactWarning)return!1}return e.ref!==void 0}function Ze(e){if(A.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function Qe(e,s){typeof e.ref=="string"&&_e.current}function er(e,s){{var l=function(){be||(be=!0,E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",s))};l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}}function rr(e,s){{var l=function(){je||(je=!0,E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",s))};l.isReactWarning=!0,Object.defineProperty(e,"ref",{get:l,configurable:!0})}}var tr=function(e,s,l,d,h,p,m){var f={$$typeof:t,type:e,key:s,ref:l,props:m,_owner:p};return f._store={},Object.defineProperty(f._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(f,"_self",{configurable:!1,enumerable:!1,writable:!1,value:d}),Object.defineProperty(f,"_source",{configurable:!1,enumerable:!1,writable:!1,value:h}),Object.freeze&&(Object.freeze(f.props),Object.freeze(f)),f};function ar(e,s,l,d,h){{var p,m={},f=null,R=null;l!==void 0&&(pe(l),f=""+l),Ze(s)&&(pe(s.key),f=""+s.key),Xe(s)&&(R=s.ref,Qe(s,h));for(p in s)A.call(s,p)&&!ze.hasOwnProperty(p)&&(m[p]=s[p]);if(e&&e.defaultProps){var g=e.defaultProps;for(p in g)m[p]===void 0&&(m[p]=g[p])}if(f||R){var y=typeof e=="function"?e.displayName||e.name||"Unknown":e;f&&er(m,y),R&&rr(m,y)}return tr(e,f,R,h,d,_e.current,m)}}var X=$.ReactCurrentOwner,xe=$.ReactDebugCurrentFrame;function I(e){if(e){var s=e._owner,l=U(e.type,e._source,s?s.type:null);xe.setExtraStackFrame(l)}else xe.setExtraStackFrame(null)}var Z;Z=!1;function Q(e){return typeof e=="object"&&e!==null&&e.$$typeof===t}function ge(){{if(X.current){var e=k(X.current.type);if(e)return`
22
+
23
+ Check the render method of \``+e+"`."}return""}}function sr(e){return""}var ye={};function nr(e){{var s=ge();if(!s){var l=typeof e=="string"?e:e.displayName||e.name;l&&(s=`
24
+
25
+ Check the top-level render call using <`+l+">.")}return s}}function Ne(e,s){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var l=nr(s);if(ye[l])return;ye[l]=!0;var d="";e&&e._owner&&e._owner!==X.current&&(d=" It was passed a child from "+k(e._owner.type)+"."),I(e),E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',l,d),I(null)}}function Ee(e,s){{if(typeof e!="object")return;if(z(e))for(var l=0;l<e.length;l++){var d=e[l];Q(d)&&Ne(d,s)}else if(Q(e))e._store&&(e._store.validated=!0);else if(e){var h=Pe(e);if(typeof h=="function"&&h!==e.entries)for(var p=h.call(e),m;!(m=p.next()).done;)Q(m.value)&&Ne(m.value,s)}}}function ir(e){{var s=e.type;if(s==null||typeof s=="string")return;var l;if(typeof s=="function")l=s.propTypes;else if(typeof s=="object"&&(s.$$typeof===c||s.$$typeof===x))l=s.propTypes;else return;if(l){var d=k(s);He(l,e.props,"prop",d,e)}else if(s.PropTypes!==void 0&&!Z){Z=!0;var h=k(s);E("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",h||"Unknown")}typeof s.getDefaultProps=="function"&&!s.getDefaultProps.isReactClassApproved&&E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function lr(e){{for(var s=Object.keys(e.props),l=0;l<s.length;l++){var d=s[l];if(d!=="children"&&d!=="key"){I(e),E("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",d),I(null);break}}e.ref!==null&&(I(e),E("Invalid attribute `ref` supplied to `React.Fragment`."),I(null))}}var Re={};function Te(e,s,l,d,h,p){{var m=Le(e);if(!m){var f="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(f+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var R=sr();R?f+=R:f+=ge();var g;e===null?g="null":z(e)?g="array":e!==void 0&&e.$$typeof===t?(g="<"+(k(e.type)||"Unknown")+" />",f=" Did you accidentally export a JSX literal instead of a component?"):g=typeof e,E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",g,f)}var y=ar(e,s,l,h,p);if(y==null)return y;if(m){var w=s.children;if(w!==void 0)if(d)if(z(w)){for(var F=0;F<w.length;F++)Ee(w[F],e);Object.freeze&&Object.freeze(w)}else E("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Ee(w,e)}if(A.call(s,"key")){var P=k(e),T=Object.keys(s).filter(function(mr){return mr!=="key"}),ee=T.length>0?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}";if(!Re[P+ee]){var fr=T.length>0?"{"+T.join(": ..., ")+": ...}":"{}";E(`A props object containing a "key" prop is being spread into JSX:
26
+ let props = %s;
27
+ <%s {...props} />
28
+ React keys must be passed directly to JSX without using spread:
29
+ let props = %s;
30
+ <%s key={someKey} {...props} />`,ee,P,fr,P),Re[P+ee]=!0}}return e===i?lr(y):ir(y),y}}function or(e,s,l){return Te(e,s,l,!0)}function cr(e,s,l){return Te(e,s,l,!1)}var ur=cr,dr=or;M.Fragment=i,M.jsx=ur,M.jsxs=dr}()),M}process.env.NODE_ENV==="production"?re.exports=vr():re.exports=hr();var r=re.exports;const pr=({variant:a="primary",filled:t=!1,iconOnly:n=!1,disabled:i=!1,loading:u=!1,children:o,onClick:v,fullWidth:j=!1,iconBefore:c,iconAfter:_,className:b=""})=>{const x=["ds-button",a&&`ds-button--${a}`,t&&"ds-button--filled",n&&"ds-button--icon-only",j&&"ds-button--full-width",u&&"ds-button--loading",b].filter(Boolean).join(" ");return r.jsxs("button",{type:"button",className:x,disabled:i||u,onClick:v,children:[c&&r.jsx("span",{className:"ds-button__icon-before",children:c}),r.jsx("span",{className:"ds-button__content",children:o}),_&&r.jsx("span",{className:"ds-button__icon-after",children:_})]})},_r=({variant:a="elevated",padding:t="md",children:n,onClick:i,className:u=""})=>{const o=["ds-card",`ds-card--${a}`,`ds-card--padding-${t}`,i&&"ds-card--interactive",u].filter(Boolean).join(" "),v=i?"button":"div";return r.jsx(v,{className:o,onClick:i,children:n})},br=({children:a,className:t=""})=>r.jsx("div",{className:`ds-card__header ${t}`,children:a}),jr=({children:a,className:t=""})=>r.jsx("div",{className:`ds-card__body ${t}`,children:a}),xr=({children:a,className:t=""})=>r.jsx("div",{className:`ds-card__footer ${t}`,children:a}),ke=C.forwardRef(({label:a,size:t="md",error:n,helperText:i,required:u,iconBefore:o,iconAfter:v,fullWidth:j=!1,className:c="",id:_,...b},x)=>{const N=_||`input-${Math.random().toString(36).substr(2,9)}`,S=!!n,W=["ds-input-wrapper",j&&"ds-input-wrapper--full-width"].filter(Boolean).join(" "),H=["ds-input-container",`ds-input-container--${t}`,S&&"ds-input-container--error",b.disabled&&"ds-input-container--disabled",c].filter(Boolean).join(" ");return r.jsxs("div",{className:W,children:[a&&r.jsxs("label",{htmlFor:N,className:"ds-input-label",children:[a,u&&r.jsx("span",{className:"ds-input-label__required",children:"*"})]}),r.jsxs("div",{className:H,children:[o&&r.jsx("span",{className:"ds-input__icon-before",children:o}),r.jsx("input",{ref:x,id:N,className:"ds-input","aria-invalid":S,"aria-describedby":n?`${N}-error`:i?`${N}-helper`:void 0,...b}),v&&r.jsx("span",{className:"ds-input__icon-after",children:v})]}),n&&r.jsx("span",{id:`${N}-error`,className:"ds-input-message ds-input-message--error",children:n}),i&&!n&&r.jsx("span",{id:`${N}-helper`,className:"ds-input-message ds-input-message--helper",children:i})]})});ke.displayName="Input";const gr=({children:a,variant:t="default",className:n=""})=>{const i=["ds-badge",t!=="default"&&`ds-badge--${t}`,n].filter(Boolean).join(" ");return r.jsx("span",{className:i,children:a})},yr=({open:a,onClose:t,title:n,children:i,size:u="md",showCloseButton:o=!0,closeOnBackdrop:v=!0,closeOnEscape:j=!0,footer:c})=>{const _=C.useRef(null);C.useEffect(()=>{const x=N=>{j&&N.key==="Escape"&&t()};return a&&(document.addEventListener("keydown",x),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",x),document.body.style.overflow=""}},[a,j,t]);const b=x=>{v&&x.target===x.currentTarget&&t()};return a?r.jsx("div",{className:"ds-modal-overlay",onClick:b,role:"dialog","aria-modal":"true","aria-labelledby":n?"modal-title":void 0,children:r.jsxs("div",{ref:_,className:`ds-modal ds-modal--${u}`,children:[(n||o)&&r.jsxs("div",{className:"ds-modal__header",children:[n&&r.jsx("h2",{id:"modal-title",className:"ds-modal__title",children:n}),o&&r.jsx("button",{className:"ds-modal__close",onClick:t,"aria-label":"Close modal",children:r.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsx("div",{className:"ds-modal__body",children:i}),c&&r.jsx("div",{className:"ds-modal__footer",children:c})]})}):null},Nr=({tabs:a,defaultActiveId:t,onChange:n,className:i=""})=>{var j;const[u,o]=C.useState(t||((j=a[0])==null?void 0:j.id)),v=c=>{o(c),n==null||n(c)};return r.jsxs("div",{className:`tab-container ${i}`,children:[r.jsx("div",{className:"tab-list",role:"tablist",children:r.jsx("ul",{children:a.map(c=>r.jsx("li",{children:r.jsx("a",{href:`#${c.id}`,role:"tab","aria-selected":u===c.id,"aria-controls":`panel-${c.id}`,className:u===c.id?"selected":"",onClick:_=>{_.preventDefault(),v(c.id)},children:c.label})},c.id))})}),a.map(c=>r.jsx("div",{id:`panel-${c.id}`,role:"tabpanel","aria-labelledby":c.id,className:`tab-panel ${u===c.id?"selected":""}`,children:c.content},c.id))]})},Er=({items:a,allowMultiple:t=!1,defaultOpenIds:n=[],small:i=!1,className:u=""})=>{const[o,v]=C.useState(n),j=c=>{v(t?_=>_.includes(c)?_.filter(b=>b!==c):[..._,c]:_=>_.includes(c)?[]:[c])};return r.jsx("div",{className:`accordion ${u}`,children:a.map(c=>r.jsxs("details",{className:i?"small":"",open:o.includes(c.id),children:[r.jsx("summary",{onClick:_=>{_.preventDefault(),j(c.id)},children:c.title}),r.jsx("div",{className:"panel",children:r.jsx("div",{className:"spaced",children:c.content})})]},c.id))})},Rr=({checked:a=!1,onChange:t,disabled:n=!1,label:i,id:u,className:o=""})=>{const v=u||`switch-${Math.random().toString(36).substr(2,9)}`;return r.jsxs("div",{className:`ds-switch-wrapper ${o}`,children:[r.jsxs("label",{className:"switch",children:[r.jsx("input",{id:v,type:"checkbox",checked:a,onChange:j=>t==null?void 0:t(j.target.checked),disabled:n}),r.jsx("span",{className:"slider round"})]}),i&&r.jsx("label",{htmlFor:v,className:"ds-switch-label",children:i})]})},Tr=({name:a,options:t,value:n,onChange:i,className:u=""})=>r.jsx("div",{className:`ds-radio-group ${u}`,children:t.map(o=>r.jsxs("div",{className:"form-control",children:[r.jsx("input",{type:"radio",id:`${a}-${o.value}`,name:a,value:o.value,checked:n===o.value,disabled:o.disabled,onChange:v=>i==null?void 0:i(v.target.value)}),r.jsx("label",{htmlFor:`${a}-${o.value}`,children:o.label})]},o.value))}),Se=C.createContext(void 0),Oe=()=>{const a=C.useContext(Se);if(!a)throw new Error("useTheme must be used within a ThemeProvider");return a},wr=({children:a,defaultTheme:t="eg",forceTheme:n=!1})=>{const[i,u]=C.useState(()=>n?t:localStorage.getItem("theme")||t);return C.useEffect(()=>{document.documentElement.setAttribute("data-color-theme",i),n||localStorage.setItem("theme",i)},[i,n]),r.jsx(Se.Provider,{value:{theme:i,setTheme:u},children:a})},B=[{value:"eg",label:"Edward Guerra",color:"#05679f"},{value:"materialandhome",label:"Material and Home",color:"#b25d3e"},{value:"midwest-husbands",label:"Midwest Husbands",color:"#2d5856"}],Cr=({variant:a="slider",className:t=""})=>{var u;const{theme:n,setTheme:i}=Oe();if(a==="dropdown")return r.jsxs("div",{className:`theme-switcher theme-switcher--dropdown ${t}`,children:[r.jsx("label",{htmlFor:"theme-select",className:"theme-switcher__label",children:"Theme:"}),r.jsx("select",{id:"theme-select",className:"theme-switcher__select",value:n,onChange:o=>i(o.target.value),children:B.map(o=>r.jsx("option",{value:o.value,children:o.label},o.value))})]});if(a==="slider"){const o=B.findIndex(v=>v.value===n);return r.jsxs("div",{className:`theme-switcher theme-switcher--slider ${t}`,children:[r.jsxs("label",{htmlFor:"theme-slider",className:"theme-switcher__label",children:["Theme: ",r.jsx("strong",{children:((u=B[o])==null?void 0:u.label)||"Edward Guerra"})]}),r.jsx("input",{type:"range",id:"theme-slider",className:"theme-switcher__slider",min:"0",max:B.length-1,value:o,onChange:v=>i(B[parseInt(v.target.value)].value)})]})}return r.jsxs("div",{className:`theme-switcher theme-switcher--buttons ${t}`,children:[r.jsx("span",{className:"theme-switcher__label",children:"Theme:"}),r.jsx("div",{className:"theme-switcher__buttons",children:B.map(o=>r.jsxs("button",{className:`theme-switcher__button ${n===o.value?"active":""}`,onClick:()=>i(o.value),style:{"--theme-color":o.color},"aria-pressed":n===o.value,title:o.label,children:[r.jsx("span",{className:"theme-switcher__color",style:{backgroundColor:o.color}}),o.label]},o.value))})]})},kr=({previousLabel:a="Previous",nextLabel:t="Next",onPrevious:n,onNext:i,previousDisabled:u=!1,nextDisabled:o=!1,className:v=""})=>r.jsxs("nav",{className:["ds-pagination",v].filter(Boolean).join(" "),"aria-label":"Pagination",children:[r.jsx("button",{type:"button",className:"ds-pagination__link ds-pagination__link--previous",onClick:n,disabled:u,children:a}),r.jsx("button",{type:"button",className:"ds-pagination__link ds-pagination__link--next",onClick:i,disabled:o,children:t})]}),Sr=({children:a,size:t="md",stroke:n=!1,className:i=""})=>{const u=["ds-icon",`ds-icon--${t}`,n&&"ds-icon--stroke",i].filter(Boolean).join(" ");return r.jsx("span",{className:u,children:a})},Or=({content:a,children:t,position:n="top",className:i=""})=>r.jsxs("span",{className:["ds-tooltip",i].filter(Boolean).join(" "),children:[t,r.jsx("span",{className:`ds-tooltip__bubble ds-tooltip__bubble--${n}`,role:"tooltip",children:a})]}),Pr=({children:a,className:t=""})=>r.jsx("dl",{className:["ds-description-list",t].filter(Boolean).join(" "),children:a}),$r=({term:a,children:t,className:n=""})=>r.jsxs("div",{className:["ds-description-list__row",n].filter(Boolean).join(" "),children:[r.jsx("dt",{className:"ds-description-list__term",children:a}),r.jsx("dd",{className:"ds-description-list__description",children:t})]}),Ir=({children:a,className:t=""})=>r.jsx("ul",{className:["ds-timeline",t].filter(Boolean).join(" "),children:a}),Fr=({children:a,timestamp:t,className:n=""})=>r.jsxs("li",{className:["ds-timeline__item",n].filter(Boolean).join(" "),children:[r.jsx("span",{className:"ds-timeline__marker","aria-hidden":"true"}),r.jsx("div",{className:"ds-timeline__content",children:a}),t&&r.jsx("div",{className:"ds-timeline__timestamp",children:t})]}),Br=({children:a,className:t=""})=>r.jsx("div",{className:["ds-carousel",t].filter(Boolean).join(" "),children:a}),Dr=({children:a,className:t=""})=>r.jsx("div",{className:["ds-carousel__slide",t].filter(Boolean).join(" "),children:a}),Ar=({children:a,className:t=""})=>r.jsx("ul",{className:["ds-list",t].filter(Boolean).join(" "),children:a}),Lr=({children:a,marker:t="default",row:n=!1,className:i=""})=>{const u=["ds-list__item",t!=="none"&&`ds-list__item--${t}`,n&&"ds-list__item--row",i].filter(Boolean).join(" ");return r.jsx("li",{className:u,children:a})},Mr=({children:a,variant:t="inline",className:n=""})=>{const i=["ds-nav",t==="side"&&"ds-nav--side",n].filter(Boolean).join(" ");return r.jsx("nav",{className:i,children:r.jsx("ul",{className:"ds-nav__list",children:a})})},Wr=({children:a,href:t,onClick:n,active:i=!1,className:u=""})=>{const o=["ds-nav__link",i&&"ds-nav__link--active"].filter(Boolean).join(" ");return r.jsx("li",{className:["ds-nav__item",u].filter(Boolean).join(" "),children:t?r.jsx("a",{href:t,className:o,"aria-current":i?"page":void 0,children:a}):r.jsx("button",{type:"button",className:o,onClick:n,"aria-current":i?"page":void 0,children:a})})},Yr=({children:a,thumbnail:t,className:n=""})=>r.jsxs("article",{className:["ds-article",n].filter(Boolean).join(" "),children:[r.jsx("div",{className:"ds-article__content",children:a}),t&&r.jsx("div",{className:"ds-article__thumb",children:t})]}),Vr=({children:a,layout:t="column",bordered:n=!1,className:i=""})=>{const u=["ds-feature",`ds-feature--${t}`,n&&"ds-feature--bordered",i].filter(Boolean).join(" ");return r.jsx("div",{className:u,children:r.jsx("div",{className:"ds-feature__content",children:a})})},Ur=({children:a,className:t=""})=>r.jsx("nav",{className:["ds-toc",t].filter(Boolean).join(" "),"aria-label":"Table of contents",children:r.jsx("ul",{className:"ds-toc__list",children:a})}),qr=({href:a,children:t,active:n=!1,className:i=""})=>r.jsx("li",{className:["ds-toc__item",n&&"ds-toc__item--active",i].filter(Boolean).join(" "),children:r.jsx("a",{href:a,"aria-current":n?"true":void 0,children:t})}),Hr=({min:a=0,max:t=10,step:n=1,value:i,onChange:u,ticks:o,label:v,id:j,className:c=""})=>{const _=j||`slider-${Math.random().toString(36).substr(2,9)}`;return r.jsxs("div",{className:["ds-slider",c].filter(Boolean).join(" "),children:[v&&r.jsx("label",{htmlFor:_,className:"ds-slider__label",children:v}),r.jsx("input",{id:_,type:"range",className:"ds-slider__input",min:a,max:t,step:n,value:i,onChange:b=>u(Number(b.target.value))}),o&&o>1&&r.jsx("div",{className:"ds-slider__ticks","aria-hidden":"true",children:Array.from({length:o}).map((b,x)=>r.jsx("span",{className:"ds-slider__tick"},x))})]})},Jr=({children:a,quarters:t=!1,className:n=""})=>{const i=["ds-table",t&&"ds-table--quarters",n].filter(Boolean).join(" ");return r.jsx("table",{className:i,children:a})},Gr=({children:a,className:t=""})=>r.jsx("tr",{className:t||void 0,children:a}),Kr=({children:a,scope:t="col",className:n=""})=>r.jsx("th",{scope:t,className:n||void 0,children:a}),zr=({children:a,className:t=""})=>r.jsx("td",{className:t||void 0,children:a}),Xr=({open:a,children:t,align:n="right",className:i=""})=>{const u=["ds-menu",`ds-menu--${n}`,a&&"ds-menu--open",i].filter(Boolean).join(" ");return r.jsx("div",{className:u,"aria-hidden":!a,role:"menu",children:t})},Zr=({children:a,onClick:t,active:n=!1,className:i=""})=>{const u=["ds-menu__item",n&&"ds-menu__item--active",i].filter(Boolean).join(" ");return r.jsx("button",{type:"button",role:"menuitem",className:u,onClick:t,children:a})},Qr=({href:a,children:t,variant:n="default",className:i=""})=>{const u=["ds-link",n==="dotted"&&"ds-link--dotted",i].filter(Boolean).join(" ");return r.jsx("a",{href:a,className:u,children:t})},et=({href:a,children:t,className:n=""})=>r.jsx("a",{href:a,className:["ds-skip-link",n].filter(Boolean).join(" "),children:t});exports.Accordion=Er;exports.Article=Yr;exports.Badge=gr;exports.Button=pr;exports.Card=_r;exports.CardBody=jr;exports.CardFooter=xr;exports.CardHeader=br;exports.Carousel=Br;exports.CarouselSlide=Dr;exports.DescriptionList=Pr;exports.DescriptionListItem=$r;exports.Feature=Vr;exports.Icon=Sr;exports.Input=ke;exports.Link=Qr;exports.List=Ar;exports.ListItem=Lr;exports.Menu=Xr;exports.MenuItem=Zr;exports.Modal=yr;exports.Nav=Mr;exports.NavItem=Wr;exports.Pagination=kr;exports.Radio=Tr;exports.SkipLink=et;exports.Slider=Hr;exports.Switch=Rr;exports.TOC=Ur;exports.TOCItem=qr;exports.Table=Jr;exports.TableCell=zr;exports.TableHeaderCell=Kr;exports.TableRow=Gr;exports.Tabs=Nr;exports.ThemeProvider=wr;exports.ThemeSwitcher=Cr;exports.Timeline=Ir;exports.TimelineItem=Fr;exports.Tooltip=Or;exports.useTheme=Oe;
31
+ //# sourceMappingURL=index.cjs.map