@hubspot/cms-component-library 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/componentLibrary/Accordion/AccordionContent/ContentFields.tsx +5 -3
- package/components/componentLibrary/Accordion/AccordionItem/StyleFields.tsx +5 -3
- package/components/componentLibrary/Accordion/AccordionItem/index.module.scss +2 -2
- package/components/componentLibrary/Accordion/AccordionItem/index.tsx +3 -3
- package/components/componentLibrary/Accordion/AccordionTitle/ContentFields.tsx +5 -3
- package/components/componentLibrary/Accordion/AccordionTitle/index.module.scss +2 -2
- package/components/componentLibrary/Accordion/stories/Accordion.stories.tsx +80 -1
- package/components/componentLibrary/Accordion/stories/AccordionDecorator.tsx +14 -14
- package/components/componentLibrary/Button/ContentFields.tsx +5 -3
- package/components/componentLibrary/Button/StyleFields.tsx +5 -3
- package/components/componentLibrary/Button/index.module.scss +22 -14
- package/components/componentLibrary/Button/index.tsx +6 -6
- package/components/componentLibrary/Button/stories/Button.AsButton.stories.tsx +30 -1
- package/components/componentLibrary/Button/stories/Button.AsLink.stories.tsx +38 -1
- package/components/componentLibrary/Button/stories/ButtonDecorator.tsx +1 -1
- package/components/componentLibrary/Card/StyleFields.tsx +5 -3
- package/components/componentLibrary/Card/stories/Card.stories.tsx +46 -1
- package/components/componentLibrary/Card/stories/CardDecorator.tsx +1 -1
- package/components/componentLibrary/Divider/ContentFields.tsx +5 -3
- package/components/componentLibrary/Divider/StyleFields.tsx +5 -3
- package/components/componentLibrary/Divider/index.module.scss +6 -6
- package/components/componentLibrary/Divider/index.tsx +7 -3
- package/components/componentLibrary/Divider/stories/Divider.stories.tsx +44 -50
- package/components/componentLibrary/Divider/stories/{DividerDecorator.module.css → DividerDecorator.module.scss} +5 -4
- package/components/componentLibrary/Divider/stories/DividerDecorator.tsx +1 -1
- package/components/componentLibrary/Divider/types.ts +3 -1
- package/components/componentLibrary/Drawer/hooks/index.tsx +13 -0
- package/components/componentLibrary/Drawer/index.module.scss +94 -0
- package/components/componentLibrary/Drawer/index.tsx +131 -0
- package/components/componentLibrary/Drawer/llm.txt +416 -0
- package/components/componentLibrary/Drawer/stories/Drawer.stories.tsx +512 -0
- package/components/componentLibrary/Drawer/stories/DrawerDecorator.module.scss +8 -0
- package/components/componentLibrary/Drawer/stories/DrawerDecorator.tsx +18 -0
- package/components/componentLibrary/Drawer/types.ts +25 -0
- package/components/componentLibrary/Flex/stories/FlexDecorator.tsx +1 -1
- package/components/componentLibrary/Flex/types.ts +3 -1
- package/components/componentLibrary/Grid/stories/Grid.stories.tsx +454 -152
- package/components/componentLibrary/Grid/stories/GridDecorator.tsx +2 -2
- package/components/componentLibrary/Heading/ContentFields.tsx +5 -3
- package/components/componentLibrary/Heading/StyleFields.tsx +11 -9
- package/components/componentLibrary/Heading/index.tsx +3 -3
- package/components/componentLibrary/Heading/llm.txt +8 -8
- package/components/componentLibrary/Heading/stories/Heading.stories.tsx +3 -3
- package/components/componentLibrary/Heading/stories/HeadingDecorator.tsx +1 -1
- package/components/componentLibrary/Heading/types.ts +4 -4
- package/components/componentLibrary/Icon/ContentFields.tsx +5 -3
- package/components/componentLibrary/Icon/stories/Icon.stories.tsx +1 -1
- package/components/componentLibrary/Icon/stories/IconDecorator.tsx +1 -1
- package/components/componentLibrary/Image/ContentFields.tsx +5 -3
- package/components/componentLibrary/Image/index.tsx +4 -4
- package/components/componentLibrary/Image/llm.txt +17 -17
- package/components/componentLibrary/Image/stories/Image.stories.tsx +61 -18
- package/components/componentLibrary/Image/stories/ImageDecorator.tsx +1 -1
- package/components/componentLibrary/Image/types.ts +2 -2
- package/components/componentLibrary/LanguageSwitcher/ContentFields.tsx +18 -0
- package/components/componentLibrary/LanguageSwitcher/LanguageOptions.module.scss +37 -0
- package/components/componentLibrary/LanguageSwitcher/LanguageOptions.tsx +65 -0
- package/components/componentLibrary/LanguageSwitcher/StyleFields.tsx +48 -0
- package/components/componentLibrary/LanguageSwitcher/_dummyData.tsx +247 -0
- package/components/componentLibrary/LanguageSwitcher/assets/Globe.tsx +16 -0
- package/components/componentLibrary/LanguageSwitcher/index.module.scss +58 -0
- package/components/componentLibrary/LanguageSwitcher/index.tsx +125 -0
- package/components/componentLibrary/LanguageSwitcher/llm.txt +380 -0
- package/components/componentLibrary/LanguageSwitcher/stories/LanguageSwitcher.stories.tsx +349 -0
- package/components/componentLibrary/LanguageSwitcher/stories/LanguageSwitcherDecorator.module.scss +5 -0
- package/components/componentLibrary/LanguageSwitcher/stories/LanguageSwitcherDecorator.tsx +8 -0
- package/components/componentLibrary/LanguageSwitcher/types.ts +48 -0
- package/components/componentLibrary/LanguageSwitcher/utils.tsx +38 -0
- package/components/componentLibrary/Link/ContentFields.tsx +5 -3
- package/components/componentLibrary/Link/StyleFields.tsx +5 -3
- package/components/componentLibrary/Link/index.module.scss +10 -0
- package/components/componentLibrary/Link/index.tsx +24 -14
- package/components/componentLibrary/Link/stories/Link.stories.tsx +35 -5
- package/components/componentLibrary/Link/stories/LinkDecorator.tsx +11 -1
- package/components/componentLibrary/Link/types.ts +22 -13
- package/components/componentLibrary/List/ContentFields.tsx +5 -3
- package/components/componentLibrary/List/ListItem/ContentFields.tsx +6 -17
- package/components/componentLibrary/List/ListItem/index.module.scss +1 -13
- package/components/componentLibrary/List/ListItem/index.tsx +3 -30
- package/components/componentLibrary/List/ListItem/types.ts +1 -16
- package/components/componentLibrary/List/StyleFields.tsx +15 -18
- package/components/componentLibrary/List/index.module.scss +3 -0
- package/components/componentLibrary/List/index.tsx +5 -2
- package/components/componentLibrary/List/llm.txt +73 -103
- package/components/componentLibrary/List/stories/List.stories.tsx +56 -80
- package/components/componentLibrary/List/stories/ListDecorator.tsx +3 -6
- package/components/componentLibrary/List/types.ts +1 -3
- package/components/componentLibrary/Logo/_dummyLogoData.ts +12 -0
- package/components/componentLibrary/Logo/assets/hubspot-logo.png +0 -0
- package/components/componentLibrary/Logo/index.module.scss +22 -0
- package/components/componentLibrary/Logo/index.tsx +73 -0
- package/components/componentLibrary/Logo/llm.txt +262 -0
- package/components/componentLibrary/Logo/stories/Logo.stories.tsx +88 -0
- package/components/componentLibrary/Logo/stories/LogoDecorator.module.scss +10 -0
- package/components/componentLibrary/Logo/stories/LogoDecorator.tsx +8 -0
- package/components/componentLibrary/Logo/types.tsx +16 -0
- package/components/componentLibrary/Menu/ContentFields.tsx +16 -0
- package/components/componentLibrary/Menu/MenuItem/Chevron/index.module.scss +6 -0
- package/components/componentLibrary/Menu/MenuItem/Chevron/index.tsx +17 -0
- package/components/componentLibrary/Menu/MenuItem/index.module.scss +7 -0
- package/components/componentLibrary/Menu/MenuItem/index.tsx +266 -0
- package/components/componentLibrary/Menu/MenuItem/types.ts +17 -0
- package/components/componentLibrary/Menu/NavigationMenu/ContentFields.tsx +20 -0
- package/components/componentLibrary/Menu/NavigationMenu/index.tsx +18 -0
- package/components/componentLibrary/Menu/NavigationMenu/islands/NavigationMenuIsland.tsx +95 -0
- package/components/componentLibrary/Menu/NavigationMenu/islands/index.module.scss +100 -0
- package/components/componentLibrary/Menu/NavigationMenu/islands/types.ts +19 -0
- package/components/componentLibrary/Menu/NavigationMenu/llm.txt +197 -0
- package/components/componentLibrary/Menu/NavigationMenu/stories/NavigationMenu.stories.tsx +286 -0
- package/components/componentLibrary/Menu/NavigationMenu/stories/NavigationMenuDecorator.module.scss +15 -0
- package/components/componentLibrary/Menu/NavigationMenu/stories/NavigationMenuDecorator.tsx +12 -0
- package/components/componentLibrary/Menu/NavigationMenu/types.ts +3 -0
- package/components/componentLibrary/Menu/VerticalMenu/ContentFields.tsx +20 -0
- package/components/componentLibrary/Menu/VerticalMenu/index.tsx +18 -0
- package/components/componentLibrary/Menu/VerticalMenu/islands/index.module.scss +53 -0
- package/components/componentLibrary/Menu/VerticalMenu/islands/verticalMenuIsland.tsx +78 -0
- package/components/componentLibrary/Menu/VerticalMenu/llm.txt +177 -0
- package/components/componentLibrary/Menu/VerticalMenu/stories/VerticalMenu.stories.tsx +242 -0
- package/components/componentLibrary/Menu/VerticalMenu/stories/VerticalMenuDecorator.module.scss +19 -0
- package/components/componentLibrary/Menu/VerticalMenu/stories/VerticalMenuDecorator.tsx +12 -0
- package/components/componentLibrary/Menu/VerticalMenu/types.ts +21 -0
- package/components/componentLibrary/Menu/_dummyMenuData.js +1346 -0
- package/components/componentLibrary/Menu/types.ts +56 -0
- package/components/componentLibrary/Menu/utils/transformMenuData.ts +11 -0
- package/components/componentLibrary/_patterns/README.md +15 -17
- package/components/componentLibrary/_patterns/checklist-and-examples.md +17 -17
- package/components/componentLibrary/_patterns/component-structure.md +21 -23
- package/components/componentLibrary/_patterns/css-patterns.md +170 -18
- package/components/componentLibrary/_patterns/field-patterns.md +97 -27
- package/components/componentLibrary/_patterns/function-declaration-patterns.md +281 -0
- package/components/componentLibrary/_patterns/llm-txt.template.md +4 -2
- package/components/componentLibrary/_patterns/prop-naming-patterns.md +208 -0
- package/components/componentLibrary/_patterns/storybook-patterns.md +25 -8
- package/components/componentLibrary/_patterns/typescript-patterns.md +6 -3
- package/package.json +4 -2
- /package/components/componentLibrary/Button/stories/{ButtonDecorator.module.css → ButtonDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Card/stories/{CardDecorator.module.css → CardDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Flex/stories/{FlexDecorator.module.css → FlexDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Grid/stories/{GridDecorator.module.css → GridDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Heading/stories/{HeadingDecorator.module.css → HeadingDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Icon/stories/{IconDecorator.module.css → IconDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Image/stories/{ImageDecorator.module.css → ImageDecorator.module.scss} +0 -0
- /package/components/componentLibrary/Image/stories/assets/{catSmile.jpg → cat-smile.jpg} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import Grid from '../index.js';
|
|
2
|
+
import Grid, { GridItem } from '../index.js';
|
|
3
3
|
import { GridProps } from '../types.js';
|
|
4
4
|
import { withGridStyles } from './GridDecorator.js';
|
|
5
5
|
import { SBContainer } from '@sb-utils/SBContainer.js';
|
|
@@ -29,12 +29,12 @@ export const Default: Story = {
|
|
|
29
29
|
gap: '16px',
|
|
30
30
|
children: (
|
|
31
31
|
<>
|
|
32
|
-
<SBDemoBox>Box 1</
|
|
33
|
-
<SBDemoBox>Box 2</
|
|
34
|
-
<SBDemoBox>Box 3</
|
|
35
|
-
<SBDemoBox>Box 4</
|
|
36
|
-
<SBDemoBox>Box 5</
|
|
37
|
-
<SBDemoBox>Box 6</
|
|
32
|
+
<GridItem as={SBDemoBox}>Box 1</GridItem>
|
|
33
|
+
<GridItem as={SBDemoBox}>Box 2</GridItem>
|
|
34
|
+
<GridItem as={SBDemoBox}>Box 3</GridItem>
|
|
35
|
+
<GridItem as={SBDemoBox}>Box 4</GridItem>
|
|
36
|
+
<GridItem as={SBDemoBox}>Box 5</GridItem>
|
|
37
|
+
<GridItem as={SBDemoBox}>Box 6</GridItem>
|
|
38
38
|
</>
|
|
39
39
|
),
|
|
40
40
|
},
|
|
@@ -48,12 +48,12 @@ export const TemplateColumns: Story = {
|
|
|
48
48
|
<h4>Equal Columns (repeat)</h4>
|
|
49
49
|
<p>3 equal columns using repeat(3, 1fr)</p>
|
|
50
50
|
<Grid templateColumns="repeat(3, 1fr)" gap="16px">
|
|
51
|
-
<SBDemoBox>1</
|
|
52
|
-
<SBDemoBox>2</
|
|
53
|
-
<SBDemoBox>3</
|
|
54
|
-
<SBDemoBox>4</
|
|
55
|
-
<SBDemoBox>5</
|
|
56
|
-
<SBDemoBox>6</
|
|
51
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
52
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
53
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
54
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
55
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
56
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
57
57
|
</Grid>
|
|
58
58
|
</SBContainer>
|
|
59
59
|
|
|
@@ -61,9 +61,9 @@ export const TemplateColumns: Story = {
|
|
|
61
61
|
<h4>Fixed and Flexible Columns</h4>
|
|
62
62
|
<p>200px, auto, 1fr - fixed, content-fit, and flexible</p>
|
|
63
63
|
<Grid templateColumns="200px auto 1fr" gap="16px">
|
|
64
|
-
<SBDemoBox>200px</
|
|
65
|
-
<SBDemoBox>Auto</
|
|
66
|
-
<SBDemoBox>1fr</
|
|
64
|
+
<GridItem as={SBDemoBox}>200px</GridItem>
|
|
65
|
+
<GridItem as={SBDemoBox}>Auto</GridItem>
|
|
66
|
+
<GridItem as={SBDemoBox}>1fr</GridItem>
|
|
67
67
|
</Grid>
|
|
68
68
|
</SBContainer>
|
|
69
69
|
|
|
@@ -71,11 +71,11 @@ export const TemplateColumns: Story = {
|
|
|
71
71
|
<h4>Responsive Columns (auto-fit)</h4>
|
|
72
72
|
<p>Automatically fits columns, minimum 150px each</p>
|
|
73
73
|
<Grid templateColumns="repeat(auto-fit, minmax(150px, 1fr))" gap="16px">
|
|
74
|
-
<SBDemoBox>1</
|
|
75
|
-
<SBDemoBox>2</
|
|
76
|
-
<SBDemoBox>3</
|
|
77
|
-
<SBDemoBox>4</
|
|
78
|
-
<SBDemoBox>5</
|
|
74
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
75
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
76
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
77
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
78
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
79
79
|
</Grid>
|
|
80
80
|
</SBContainer>
|
|
81
81
|
|
|
@@ -86,9 +86,9 @@ export const TemplateColumns: Story = {
|
|
|
86
86
|
templateColumns="repeat(auto-fill, minmax(100px, 1fr))"
|
|
87
87
|
gap="16px"
|
|
88
88
|
>
|
|
89
|
-
<SBDemoBox>1</
|
|
90
|
-
<SBDemoBox>2</
|
|
91
|
-
<SBDemoBox>3</
|
|
89
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
90
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
91
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
92
92
|
</Grid>
|
|
93
93
|
</SBContainer>
|
|
94
94
|
</SBContainer>
|
|
@@ -107,12 +107,12 @@ export const TemplateRows: Story = {
|
|
|
107
107
|
templateRows="repeat(2, 100px)"
|
|
108
108
|
gap="16px"
|
|
109
109
|
>
|
|
110
|
-
<SBDemoBox>1</
|
|
111
|
-
<SBDemoBox>2</
|
|
112
|
-
<SBDemoBox>3</
|
|
113
|
-
<SBDemoBox>4</
|
|
114
|
-
<SBDemoBox>5</
|
|
115
|
-
<SBDemoBox>6</
|
|
110
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
111
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
112
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
113
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
114
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
115
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
116
116
|
</Grid>
|
|
117
117
|
</SBContainer>
|
|
118
118
|
|
|
@@ -125,9 +125,9 @@ export const TemplateRows: Story = {
|
|
|
125
125
|
gap="16px"
|
|
126
126
|
style={{ height: '300px' }}
|
|
127
127
|
>
|
|
128
|
-
<SBDemoBox>Header</
|
|
129
|
-
<SBDemoBox>Main Content (fills space)</
|
|
130
|
-
<SBDemoBox>Footer</
|
|
128
|
+
<GridItem as={SBDemoBox}>Header</GridItem>
|
|
129
|
+
<GridItem as={SBDemoBox}>Main Content (fills space)</GridItem>
|
|
130
|
+
<GridItem as={SBDemoBox}>Footer</GridItem>
|
|
131
131
|
</Grid>
|
|
132
132
|
</SBContainer>
|
|
133
133
|
</SBContainer>
|
|
@@ -142,11 +142,11 @@ export const AutoFlow: Story = {
|
|
|
142
142
|
<h4>Row Flow (Default)</h4>
|
|
143
143
|
<p>Items flow horizontally across rows</p>
|
|
144
144
|
<Grid templateColumns="repeat(3, 1fr)" autoFlow="row" gap="16px">
|
|
145
|
-
<SBDemoBox>1</
|
|
146
|
-
<SBDemoBox>2</
|
|
147
|
-
<SBDemoBox>3</
|
|
148
|
-
<SBDemoBox>4</
|
|
149
|
-
<SBDemoBox>5</
|
|
145
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
146
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
147
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
148
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
149
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
150
150
|
</Grid>
|
|
151
151
|
</SBContainer>
|
|
152
152
|
|
|
@@ -154,11 +154,11 @@ export const AutoFlow: Story = {
|
|
|
154
154
|
<h4>Column Flow</h4>
|
|
155
155
|
<p>Items flow vertically down columns</p>
|
|
156
156
|
<Grid templateRows="repeat(3, 1fr)" autoFlow="column" gap="16px">
|
|
157
|
-
<SBDemoBox>1</
|
|
158
|
-
<SBDemoBox>2</
|
|
159
|
-
<SBDemoBox>3</
|
|
160
|
-
<SBDemoBox>4</
|
|
161
|
-
<SBDemoBox>5</
|
|
157
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
158
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
159
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
160
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
161
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
162
162
|
</Grid>
|
|
163
163
|
</SBContainer>
|
|
164
164
|
|
|
@@ -166,11 +166,15 @@ export const AutoFlow: Story = {
|
|
|
166
166
|
<h4>Dense Packing</h4>
|
|
167
167
|
<p>Fills gaps with smaller items</p>
|
|
168
168
|
<Grid templateColumns="repeat(4, 1fr)" autoFlow="row dense" gap="16px">
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
<SBDemoBox>
|
|
173
|
-
<
|
|
169
|
+
<GridItem as={SBDemoBox} gridColumn="span 2">
|
|
170
|
+
1 (spans 2)
|
|
171
|
+
</GridItem>
|
|
172
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
173
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
174
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
175
|
+
<GridItem as={SBDemoBox} gridColumn="span 2">
|
|
176
|
+
5 (spans 2)
|
|
177
|
+
</GridItem>
|
|
174
178
|
</Grid>
|
|
175
179
|
</SBContainer>
|
|
176
180
|
</SBContainer>
|
|
@@ -190,9 +194,9 @@ export const AlignItems: Story = {
|
|
|
190
194
|
alignItems="stretch"
|
|
191
195
|
gap="16px"
|
|
192
196
|
>
|
|
193
|
-
<SBDemoBox>1</
|
|
194
|
-
<SBDemoBox>2</
|
|
195
|
-
<SBDemoBox>3</
|
|
197
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
198
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
199
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
196
200
|
</Grid>
|
|
197
201
|
</SBContainer>
|
|
198
202
|
|
|
@@ -205,9 +209,11 @@ export const AlignItems: Story = {
|
|
|
205
209
|
alignItems="start"
|
|
206
210
|
gap="16px"
|
|
207
211
|
>
|
|
208
|
-
<SBDemoBox>1</
|
|
209
|
-
<SBDemoBox tall>
|
|
210
|
-
|
|
212
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
213
|
+
<GridItem as={SBDemoBox} tall>
|
|
214
|
+
2
|
|
215
|
+
</GridItem>
|
|
216
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
211
217
|
</Grid>
|
|
212
218
|
</SBContainer>
|
|
213
219
|
|
|
@@ -220,9 +226,11 @@ export const AlignItems: Story = {
|
|
|
220
226
|
alignItems="center"
|
|
221
227
|
gap="16px"
|
|
222
228
|
>
|
|
223
|
-
<SBDemoBox>1</
|
|
224
|
-
<SBDemoBox tall>
|
|
225
|
-
|
|
229
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
230
|
+
<GridItem as={SBDemoBox} tall>
|
|
231
|
+
2
|
|
232
|
+
</GridItem>
|
|
233
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
226
234
|
</Grid>
|
|
227
235
|
</SBContainer>
|
|
228
236
|
|
|
@@ -235,9 +243,11 @@ export const AlignItems: Story = {
|
|
|
235
243
|
alignItems="end"
|
|
236
244
|
gap="16px"
|
|
237
245
|
>
|
|
238
|
-
<SBDemoBox>1</
|
|
239
|
-
<SBDemoBox tall>
|
|
240
|
-
|
|
246
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
247
|
+
<GridItem as={SBDemoBox} tall>
|
|
248
|
+
2
|
|
249
|
+
</GridItem>
|
|
250
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
241
251
|
</Grid>
|
|
242
252
|
</SBContainer>
|
|
243
253
|
</SBContainer>
|
|
@@ -256,9 +266,9 @@ export const JustifyContent: Story = {
|
|
|
256
266
|
gap="16px"
|
|
257
267
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
258
268
|
>
|
|
259
|
-
<SBDemoBox>1</
|
|
260
|
-
<SBDemoBox>2</
|
|
261
|
-
<SBDemoBox>3</
|
|
269
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
270
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
271
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
262
272
|
</Grid>
|
|
263
273
|
</SBContainer>
|
|
264
274
|
|
|
@@ -270,9 +280,9 @@ export const JustifyContent: Story = {
|
|
|
270
280
|
gap="16px"
|
|
271
281
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
272
282
|
>
|
|
273
|
-
<SBDemoBox>1</
|
|
274
|
-
<SBDemoBox>2</
|
|
275
|
-
<SBDemoBox>3</
|
|
283
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
284
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
285
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
276
286
|
</Grid>
|
|
277
287
|
</SBContainer>
|
|
278
288
|
|
|
@@ -284,9 +294,9 @@ export const JustifyContent: Story = {
|
|
|
284
294
|
gap="16px"
|
|
285
295
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
286
296
|
>
|
|
287
|
-
<SBDemoBox>1</
|
|
288
|
-
<SBDemoBox>2</
|
|
289
|
-
<SBDemoBox>3</
|
|
297
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
298
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
299
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
290
300
|
</Grid>
|
|
291
301
|
</SBContainer>
|
|
292
302
|
|
|
@@ -298,9 +308,9 @@ export const JustifyContent: Story = {
|
|
|
298
308
|
gap="16px"
|
|
299
309
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
300
310
|
>
|
|
301
|
-
<SBDemoBox>1</
|
|
302
|
-
<SBDemoBox>2</
|
|
303
|
-
<SBDemoBox>3</
|
|
311
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
312
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
313
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
304
314
|
</Grid>
|
|
305
315
|
</SBContainer>
|
|
306
316
|
|
|
@@ -312,9 +322,9 @@ export const JustifyContent: Story = {
|
|
|
312
322
|
gap="16px"
|
|
313
323
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
314
324
|
>
|
|
315
|
-
<SBDemoBox>1</
|
|
316
|
-
<SBDemoBox>2</
|
|
317
|
-
<SBDemoBox>3</
|
|
325
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
326
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
327
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
318
328
|
</Grid>
|
|
319
329
|
</SBContainer>
|
|
320
330
|
|
|
@@ -326,9 +336,9 @@ export const JustifyContent: Story = {
|
|
|
326
336
|
gap="16px"
|
|
327
337
|
style={{ border: '2px dashed #ccc', padding: '16px' }}
|
|
328
338
|
>
|
|
329
|
-
<SBDemoBox>1</
|
|
330
|
-
<SBDemoBox>2</
|
|
331
|
-
<SBDemoBox>3</
|
|
339
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
340
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
341
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
332
342
|
</Grid>
|
|
333
343
|
</SBContainer>
|
|
334
344
|
</SBContainer>
|
|
@@ -342,48 +352,48 @@ export const Gaps: Story = {
|
|
|
342
352
|
<SBContainer addBackground>
|
|
343
353
|
<h4>No Gap</h4>
|
|
344
354
|
<Grid templateColumns="repeat(3, 1fr)">
|
|
345
|
-
<SBDemoBox>1</
|
|
346
|
-
<SBDemoBox>2</
|
|
347
|
-
<SBDemoBox>3</
|
|
348
|
-
<SBDemoBox>4</
|
|
349
|
-
<SBDemoBox>5</
|
|
350
|
-
<SBDemoBox>6</
|
|
355
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
356
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
357
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
358
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
359
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
360
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
351
361
|
</Grid>
|
|
352
362
|
</SBContainer>
|
|
353
363
|
|
|
354
364
|
<SBContainer addBackground>
|
|
355
365
|
<h4>8px Gap</h4>
|
|
356
366
|
<Grid templateColumns="repeat(3, 1fr)" gap="8px">
|
|
357
|
-
<SBDemoBox>1</
|
|
358
|
-
<SBDemoBox>2</
|
|
359
|
-
<SBDemoBox>3</
|
|
360
|
-
<SBDemoBox>4</
|
|
361
|
-
<SBDemoBox>5</
|
|
362
|
-
<SBDemoBox>6</
|
|
367
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
368
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
369
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
370
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
371
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
372
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
363
373
|
</Grid>
|
|
364
374
|
</SBContainer>
|
|
365
375
|
|
|
366
376
|
<SBContainer addBackground>
|
|
367
377
|
<h4>16px Gap</h4>
|
|
368
378
|
<Grid templateColumns="repeat(3, 1fr)" gap="16px">
|
|
369
|
-
<SBDemoBox>1</
|
|
370
|
-
<SBDemoBox>2</
|
|
371
|
-
<SBDemoBox>3</
|
|
372
|
-
<SBDemoBox>4</
|
|
373
|
-
<SBDemoBox>5</
|
|
374
|
-
<SBDemoBox>6</
|
|
379
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
380
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
381
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
382
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
383
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
384
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
375
385
|
</Grid>
|
|
376
386
|
</SBContainer>
|
|
377
387
|
|
|
378
388
|
<SBContainer addBackground>
|
|
379
389
|
<h4>24px Gap</h4>
|
|
380
390
|
<Grid templateColumns="repeat(3, 1fr)" gap="24px">
|
|
381
|
-
<SBDemoBox>1</
|
|
382
|
-
<SBDemoBox>2</
|
|
383
|
-
<SBDemoBox>3</
|
|
384
|
-
<SBDemoBox>4</
|
|
385
|
-
<SBDemoBox>5</
|
|
386
|
-
<SBDemoBox>6</
|
|
391
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
392
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
393
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
394
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
395
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
396
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
387
397
|
</Grid>
|
|
388
398
|
</SBContainer>
|
|
389
399
|
</SBContainer>
|
|
@@ -397,26 +407,26 @@ export const SemanticElements: Story = {
|
|
|
397
407
|
<SBContainer addBackground>
|
|
398
408
|
<h4>As Section</h4>
|
|
399
409
|
<Grid as="section" templateColumns="repeat(3, 1fr)" gap="16px">
|
|
400
|
-
<SBDemoBox>Item 1</
|
|
401
|
-
<SBDemoBox>Item 2</
|
|
402
|
-
<SBDemoBox>Item 3</
|
|
410
|
+
<GridItem as={SBDemoBox}>Item 1</GridItem>
|
|
411
|
+
<GridItem as={SBDemoBox}>Item 2</GridItem>
|
|
412
|
+
<GridItem as={SBDemoBox}>Item 3</GridItem>
|
|
403
413
|
</Grid>
|
|
404
414
|
</SBContainer>
|
|
405
415
|
|
|
406
416
|
<SBContainer addBackground>
|
|
407
417
|
<h4>As Nav</h4>
|
|
408
418
|
<Grid as="nav" templateColumns="repeat(3, 1fr)" gap="16px">
|
|
409
|
-
<SBDemoBox>Home</
|
|
410
|
-
<SBDemoBox>About</
|
|
411
|
-
<SBDemoBox>Contact</
|
|
419
|
+
<GridItem as={SBDemoBox}>Home</GridItem>
|
|
420
|
+
<GridItem as={SBDemoBox}>About</GridItem>
|
|
421
|
+
<GridItem as={SBDemoBox}>Contact</GridItem>
|
|
412
422
|
</Grid>
|
|
413
423
|
</SBContainer>
|
|
414
424
|
|
|
415
425
|
<SBContainer addBackground>
|
|
416
426
|
<h4>As Article</h4>
|
|
417
427
|
<Grid as="article" templateColumns="1fr 2fr" gap="16px">
|
|
418
|
-
<SBDemoBox>Sidebar</
|
|
419
|
-
<SBDemoBox>Main Content</
|
|
428
|
+
<GridItem as={SBDemoBox}>Sidebar</GridItem>
|
|
429
|
+
<GridItem as={SBDemoBox}>Main Content</GridItem>
|
|
420
430
|
</Grid>
|
|
421
431
|
</SBContainer>
|
|
422
432
|
</SBContainer>
|
|
@@ -430,10 +440,10 @@ export const InlineGrid: Story = {
|
|
|
430
440
|
<SBContainer addBackground>
|
|
431
441
|
<h4>Regular Grid (Block Level)</h4>
|
|
432
442
|
<p>Before grid container</p>
|
|
433
|
-
<Grid templateColumns="repeat(3, 1fr)" gap="8px">
|
|
434
|
-
<SBDemoBox>1</
|
|
435
|
-
<SBDemoBox>2</
|
|
436
|
-
<SBDemoBox>3</
|
|
443
|
+
<Grid templateColumns="repeat(3, 1fr)" gap="8px" marginBlock="16px">
|
|
444
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
445
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
446
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
437
447
|
</Grid>
|
|
438
448
|
<p>After grid container</p>
|
|
439
449
|
</SBContainer>
|
|
@@ -443,9 +453,9 @@ export const InlineGrid: Story = {
|
|
|
443
453
|
<p>
|
|
444
454
|
Before grid container{' '}
|
|
445
455
|
<Grid inline templateColumns="repeat(3, 1fr)" gap="8px">
|
|
446
|
-
<SBDemoBox>1</
|
|
447
|
-
<SBDemoBox>2</
|
|
448
|
-
<SBDemoBox>3</
|
|
456
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
457
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
458
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
449
459
|
</Grid>{' '}
|
|
450
460
|
after grid container
|
|
451
461
|
</p>
|
|
@@ -467,10 +477,14 @@ export const LayoutExamples: Story = {
|
|
|
467
477
|
gap="16px"
|
|
468
478
|
style={{ height: '400px' }}
|
|
469
479
|
>
|
|
470
|
-
<
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
<
|
|
480
|
+
<GridItem as={SBDemoBox} gridColumn="1 / -1">
|
|
481
|
+
Header
|
|
482
|
+
</GridItem>
|
|
483
|
+
<GridItem as={SBDemoBox}>Sidebar</GridItem>
|
|
484
|
+
<GridItem as={SBDemoBox}>Main Content</GridItem>
|
|
485
|
+
<GridItem as={SBDemoBox} gridColumn="1 / -1">
|
|
486
|
+
Footer
|
|
487
|
+
</GridItem>
|
|
474
488
|
</Grid>
|
|
475
489
|
</SBContainer>
|
|
476
490
|
|
|
@@ -482,13 +496,13 @@ export const LayoutExamples: Story = {
|
|
|
482
496
|
templateRows="repeat(2, 150px)"
|
|
483
497
|
gap="16px"
|
|
484
498
|
>
|
|
485
|
-
<
|
|
499
|
+
<GridItem as={SBDemoBox} gridColumn="span 2" gridRow="span 2">
|
|
486
500
|
Featured Article
|
|
487
|
-
</
|
|
488
|
-
<SBDemoBox>Article 2</
|
|
489
|
-
<SBDemoBox>Article 3</
|
|
490
|
-
<SBDemoBox>Article 4</
|
|
491
|
-
<SBDemoBox>Article 5</
|
|
501
|
+
</GridItem>
|
|
502
|
+
<GridItem as={SBDemoBox}>Article 2</GridItem>
|
|
503
|
+
<GridItem as={SBDemoBox}>Article 3</GridItem>
|
|
504
|
+
<GridItem as={SBDemoBox}>Article 4</GridItem>
|
|
505
|
+
<GridItem as={SBDemoBox}>Article 5</GridItem>
|
|
492
506
|
</Grid>
|
|
493
507
|
</SBContainer>
|
|
494
508
|
</SBContainer>
|
|
@@ -514,12 +528,12 @@ export const ResponsiveGrid: Story = {
|
|
|
514
528
|
templateColumnsLg="repeat(3, 1fr)"
|
|
515
529
|
gap="16px"
|
|
516
530
|
>
|
|
517
|
-
<SBDemoBox>Item 1</
|
|
518
|
-
<SBDemoBox>Item 2</
|
|
519
|
-
<SBDemoBox>Item 3</
|
|
520
|
-
<SBDemoBox>Item 4</
|
|
521
|
-
<SBDemoBox>Item 5</
|
|
522
|
-
<SBDemoBox>Item 6</
|
|
531
|
+
<GridItem as={SBDemoBox}>Item 1</GridItem>
|
|
532
|
+
<GridItem as={SBDemoBox}>Item 2</GridItem>
|
|
533
|
+
<GridItem as={SBDemoBox}>Item 3</GridItem>
|
|
534
|
+
<GridItem as={SBDemoBox}>Item 4</GridItem>
|
|
535
|
+
<GridItem as={SBDemoBox}>Item 5</GridItem>
|
|
536
|
+
<GridItem as={SBDemoBox}>Item 6</GridItem>
|
|
523
537
|
</Grid>
|
|
524
538
|
</SBContainer>
|
|
525
539
|
|
|
@@ -532,12 +546,12 @@ export const ResponsiveGrid: Story = {
|
|
|
532
546
|
gapMd="16px"
|
|
533
547
|
gapLg="24px"
|
|
534
548
|
>
|
|
535
|
-
<SBDemoBox>1</
|
|
536
|
-
<SBDemoBox>2</
|
|
537
|
-
<SBDemoBox>3</
|
|
538
|
-
<SBDemoBox>4</
|
|
539
|
-
<SBDemoBox>5</
|
|
540
|
-
<SBDemoBox>6</
|
|
549
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
550
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
551
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
552
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
553
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
554
|
+
<GridItem as={SBDemoBox}>6</GridItem>
|
|
541
555
|
</Grid>
|
|
542
556
|
</SBContainer>
|
|
543
557
|
|
|
@@ -552,11 +566,11 @@ export const ResponsiveGrid: Story = {
|
|
|
552
566
|
autoFlowLg="row"
|
|
553
567
|
gap="16px"
|
|
554
568
|
>
|
|
555
|
-
<SBDemoBox>1</
|
|
556
|
-
<SBDemoBox>2</
|
|
557
|
-
<SBDemoBox>3</
|
|
558
|
-
<SBDemoBox>4</
|
|
559
|
-
<SBDemoBox>5</
|
|
569
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
570
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
571
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
572
|
+
<GridItem as={SBDemoBox}>4</GridItem>
|
|
573
|
+
<GridItem as={SBDemoBox}>5</GridItem>
|
|
560
574
|
</Grid>
|
|
561
575
|
</SBContainer>
|
|
562
576
|
|
|
@@ -571,9 +585,9 @@ export const ResponsiveGrid: Story = {
|
|
|
571
585
|
alignItemsLg="start"
|
|
572
586
|
gap="16px"
|
|
573
587
|
>
|
|
574
|
-
<SBDemoBox>1</
|
|
575
|
-
<SBDemoBox>2</
|
|
576
|
-
<SBDemoBox>3</
|
|
588
|
+
<GridItem as={SBDemoBox}>1</GridItem>
|
|
589
|
+
<GridItem as={SBDemoBox}>2</GridItem>
|
|
590
|
+
<GridItem as={SBDemoBox}>3</GridItem>
|
|
577
591
|
</Grid>
|
|
578
592
|
</SBContainer>
|
|
579
593
|
|
|
@@ -586,16 +600,304 @@ export const ResponsiveGrid: Story = {
|
|
|
586
600
|
templateColumns="1fr"
|
|
587
601
|
templateColumnsMd="200px 1fr"
|
|
588
602
|
templateColumnsLg="250px 1fr"
|
|
589
|
-
templateRows="auto
|
|
603
|
+
templateRows="auto auto auto auto"
|
|
604
|
+
templateRowsMd="auto 1fr auto"
|
|
590
605
|
gap="12px"
|
|
591
606
|
gapMd="16px"
|
|
592
607
|
gapLg="24px"
|
|
593
608
|
style={{ height: '400px' }}
|
|
594
609
|
>
|
|
595
|
-
<
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
<
|
|
610
|
+
<GridItem as={SBDemoBox} gridColumn="1 / -1">
|
|
611
|
+
Header
|
|
612
|
+
</GridItem>
|
|
613
|
+
<GridItem as={SBDemoBox}>Sidebar</GridItem>
|
|
614
|
+
<GridItem as={SBDemoBox} style={{ paddingBottom: '32px' }}>
|
|
615
|
+
Main Content
|
|
616
|
+
</GridItem>
|
|
617
|
+
<GridItem as={SBDemoBox} gridColumn="1 / -1">
|
|
618
|
+
Footer
|
|
619
|
+
</GridItem>
|
|
620
|
+
</Grid>
|
|
621
|
+
</SBContainer>
|
|
622
|
+
</SBContainer>
|
|
623
|
+
),
|
|
624
|
+
};
|
|
625
|
+
|
|
626
|
+
export const GridItemPlacement: Story = {
|
|
627
|
+
name: 'GridItem - Column & Row Placement',
|
|
628
|
+
render: () => (
|
|
629
|
+
<SBContainer flex direction="column" gap="extralarge" minWidth="600px">
|
|
630
|
+
<SBContainer addBackground>
|
|
631
|
+
<h4>Column Spanning</h4>
|
|
632
|
+
<p>Use gridColumn prop to span multiple columns</p>
|
|
633
|
+
<Grid templateColumns="repeat(4, 1fr)" gap="16px">
|
|
634
|
+
<GridItem as={SBDemoBox} gridColumn="span 2">
|
|
635
|
+
Spans 2 columns
|
|
636
|
+
</GridItem>
|
|
637
|
+
<GridItem as={SBDemoBox}>Auto</GridItem>
|
|
638
|
+
<GridItem as={SBDemoBox}>Auto</GridItem>
|
|
639
|
+
<GridItem as={SBDemoBox} gridColumn="span 3">
|
|
640
|
+
Spans 3 columns
|
|
641
|
+
</GridItem>
|
|
642
|
+
<GridItem as={SBDemoBox}>Auto</GridItem>
|
|
643
|
+
</Grid>
|
|
644
|
+
</SBContainer>
|
|
645
|
+
|
|
646
|
+
<SBContainer addBackground>
|
|
647
|
+
<h4>Explicit Placement</h4>
|
|
648
|
+
<p>Use gridColumn and gridRow to place items at specific positions</p>
|
|
649
|
+
<Grid
|
|
650
|
+
templateColumns="repeat(3, 1fr)"
|
|
651
|
+
templateRows="repeat(3, 100px)"
|
|
652
|
+
gap="16px"
|
|
653
|
+
>
|
|
654
|
+
<GridItem as={SBDemoBox} gridColumn="1" gridRow="1">
|
|
655
|
+
1,1
|
|
656
|
+
</GridItem>
|
|
657
|
+
<GridItem as={SBDemoBox} gridColumn="3" gridRow="1">
|
|
658
|
+
3,1
|
|
659
|
+
</GridItem>
|
|
660
|
+
<GridItem as={SBDemoBox} gridColumn="2" gridRow="2">
|
|
661
|
+
2,2 (center)
|
|
662
|
+
</GridItem>
|
|
663
|
+
<GridItem as={SBDemoBox} gridColumn="1" gridRow="3">
|
|
664
|
+
1,3
|
|
665
|
+
</GridItem>
|
|
666
|
+
<GridItem as={SBDemoBox} gridColumn="3" gridRow="3">
|
|
667
|
+
3,3
|
|
668
|
+
</GridItem>
|
|
669
|
+
</Grid>
|
|
670
|
+
</SBContainer>
|
|
671
|
+
|
|
672
|
+
<SBContainer addBackground>
|
|
673
|
+
<h4>Line-Based Placement</h4>
|
|
674
|
+
<p>Use line numbers for precise control</p>
|
|
675
|
+
<Grid
|
|
676
|
+
templateColumns="repeat(4, 1fr)"
|
|
677
|
+
templateRows="repeat(2, 100px)"
|
|
678
|
+
gap="16px"
|
|
679
|
+
>
|
|
680
|
+
<GridItem as={SBDemoBox} gridColumn="1 / 3" gridRow="1">
|
|
681
|
+
Columns 1-3
|
|
682
|
+
</GridItem>
|
|
683
|
+
<GridItem as={SBDemoBox} gridColumn="3 / 5" gridRow="1 / 3">
|
|
684
|
+
Columns 3-5, Rows 1-3
|
|
685
|
+
</GridItem>
|
|
686
|
+
<GridItem as={SBDemoBox} gridColumn="1 / 3" gridRow="2">
|
|
687
|
+
Columns 1-3, Row 2
|
|
688
|
+
</GridItem>
|
|
689
|
+
</Grid>
|
|
690
|
+
</SBContainer>
|
|
691
|
+
</SBContainer>
|
|
692
|
+
),
|
|
693
|
+
};
|
|
694
|
+
|
|
695
|
+
export const GridItemAlignment: Story = {
|
|
696
|
+
name: 'GridItem - Individual Alignment',
|
|
697
|
+
render: () => (
|
|
698
|
+
<SBContainer flex direction="column" gap="extralarge" minWidth="600px">
|
|
699
|
+
<SBContainer addBackground>
|
|
700
|
+
<h4>Align Self</h4>
|
|
701
|
+
<p>Override grid-level alignment for individual items</p>
|
|
702
|
+
<Grid
|
|
703
|
+
templateColumns="repeat(3, 1fr)"
|
|
704
|
+
templateRows="150px"
|
|
705
|
+
alignItems="stretch"
|
|
706
|
+
gap="16px"
|
|
707
|
+
>
|
|
708
|
+
<GridItem as={SBDemoBox} alignSelf="start">
|
|
709
|
+
Start
|
|
710
|
+
</GridItem>
|
|
711
|
+
<GridItem as={SBDemoBox} alignSelf="center">
|
|
712
|
+
Center
|
|
713
|
+
</GridItem>
|
|
714
|
+
<GridItem as={SBDemoBox} alignSelf="end">
|
|
715
|
+
End
|
|
716
|
+
</GridItem>
|
|
717
|
+
</Grid>
|
|
718
|
+
</SBContainer>
|
|
719
|
+
|
|
720
|
+
<SBContainer addBackground>
|
|
721
|
+
<h4>Justify Self</h4>
|
|
722
|
+
<p>Control horizontal alignment within grid cell</p>
|
|
723
|
+
<Grid templateColumns="repeat(3, 200px)" gap="16px">
|
|
724
|
+
<GridItem as={SBDemoBox} justifySelf="start">
|
|
725
|
+
Start
|
|
726
|
+
</GridItem>
|
|
727
|
+
<GridItem as={SBDemoBox} justifySelf="center">
|
|
728
|
+
Center
|
|
729
|
+
</GridItem>
|
|
730
|
+
<GridItem as={SBDemoBox} justifySelf="end">
|
|
731
|
+
End
|
|
732
|
+
</GridItem>
|
|
733
|
+
</Grid>
|
|
734
|
+
</SBContainer>
|
|
735
|
+
|
|
736
|
+
<SBContainer addBackground>
|
|
737
|
+
<h4>Combined Alignment</h4>
|
|
738
|
+
<p>Use both alignSelf and justifySelf together</p>
|
|
739
|
+
<Grid templateColumns="repeat(3, 1fr)" templateRows="150px" gap="16px">
|
|
740
|
+
<GridItem as={SBDemoBox} alignSelf="start" justifySelf="start">
|
|
741
|
+
Top Left
|
|
742
|
+
</GridItem>
|
|
743
|
+
<GridItem as={SBDemoBox} alignSelf="center" justifySelf="center">
|
|
744
|
+
Center
|
|
745
|
+
</GridItem>
|
|
746
|
+
<GridItem as={SBDemoBox} alignSelf="end" justifySelf="end">
|
|
747
|
+
Bottom Right
|
|
748
|
+
</GridItem>
|
|
749
|
+
</Grid>
|
|
750
|
+
</SBContainer>
|
|
751
|
+
</SBContainer>
|
|
752
|
+
),
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
export const GridItemResponsive: Story = {
|
|
756
|
+
name: 'GridItem - Responsive Positioning',
|
|
757
|
+
render: () => (
|
|
758
|
+
<SBContainer flex direction="column" gap="extralarge" minWidth="600px">
|
|
759
|
+
<SBContainer addBackground>
|
|
760
|
+
<h4>Responsive Spanning</h4>
|
|
761
|
+
<p>
|
|
762
|
+
Mobile: full width | Tablet: spans 2 cols | Desktop: single column
|
|
763
|
+
</p>
|
|
764
|
+
<p style={{ fontSize: '12px', color: '#666' }}>
|
|
765
|
+
Resize browser to see changes
|
|
766
|
+
</p>
|
|
767
|
+
<Grid
|
|
768
|
+
templateColumns="1fr"
|
|
769
|
+
templateColumnsMd="repeat(3, 1fr)"
|
|
770
|
+
templateColumnsLg="repeat(4, 1fr)"
|
|
771
|
+
gap="16px"
|
|
772
|
+
>
|
|
773
|
+
<GridItem
|
|
774
|
+
as={SBDemoBox}
|
|
775
|
+
gridColumn="1"
|
|
776
|
+
gridColumnMd="span 2"
|
|
777
|
+
gridColumnLg="span 1"
|
|
778
|
+
>
|
|
779
|
+
Responsive Span
|
|
780
|
+
</GridItem>
|
|
781
|
+
<GridItem as={SBDemoBox}>Item 2</GridItem>
|
|
782
|
+
<GridItem as={SBDemoBox}>Item 3</GridItem>
|
|
783
|
+
<GridItem as={SBDemoBox}>Item 4</GridItem>
|
|
784
|
+
</Grid>
|
|
785
|
+
</SBContainer>
|
|
786
|
+
|
|
787
|
+
<SBContainer addBackground>
|
|
788
|
+
<h4>Responsive Position Changes</h4>
|
|
789
|
+
<p>Items change position at different breakpoints</p>
|
|
790
|
+
<Grid
|
|
791
|
+
templateColumns="1fr"
|
|
792
|
+
templateColumnsMd="repeat(2, 1fr)"
|
|
793
|
+
templateColumnsLg="repeat(3, 1fr)"
|
|
794
|
+
gap="16px"
|
|
795
|
+
>
|
|
796
|
+
<GridItem
|
|
797
|
+
as={SBDemoBox}
|
|
798
|
+
gridColumn="1"
|
|
799
|
+
gridColumnMd="2"
|
|
800
|
+
gridColumnLg="1"
|
|
801
|
+
>
|
|
802
|
+
Position changes
|
|
803
|
+
</GridItem>
|
|
804
|
+
<GridItem
|
|
805
|
+
as={SBDemoBox}
|
|
806
|
+
gridColumn="1"
|
|
807
|
+
gridColumnMd="1"
|
|
808
|
+
gridColumnLg="3"
|
|
809
|
+
>
|
|
810
|
+
Also repositions
|
|
811
|
+
</GridItem>
|
|
812
|
+
<GridItem as={SBDemoBox}>Auto placed</GridItem>
|
|
813
|
+
</Grid>
|
|
814
|
+
</SBContainer>
|
|
815
|
+
|
|
816
|
+
<SBContainer addBackground>
|
|
817
|
+
<h4>Responsive Alignment</h4>
|
|
818
|
+
<p>Alignment changes at different breakpoints</p>
|
|
819
|
+
<Grid templateColumns="repeat(3, 1fr)" templateRows="120px" gap="16px">
|
|
820
|
+
<GridItem
|
|
821
|
+
as={SBDemoBox}
|
|
822
|
+
alignSelf="start"
|
|
823
|
+
alignSelfMd="center"
|
|
824
|
+
alignSelfLg="end"
|
|
825
|
+
>
|
|
826
|
+
Changes alignment
|
|
827
|
+
</GridItem>
|
|
828
|
+
<GridItem
|
|
829
|
+
as={SBDemoBox}
|
|
830
|
+
justifySelf="start"
|
|
831
|
+
justifySelfMd="center"
|
|
832
|
+
justifySelfLg="end"
|
|
833
|
+
>
|
|
834
|
+
Shifts horizontally
|
|
835
|
+
</GridItem>
|
|
836
|
+
<GridItem as={SBDemoBox}>Regular item</GridItem>
|
|
837
|
+
</Grid>
|
|
838
|
+
</SBContainer>
|
|
839
|
+
</SBContainer>
|
|
840
|
+
),
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
export const GridItemWithComponents: Story = {
|
|
844
|
+
name: 'GridItem - With Components (as prop)',
|
|
845
|
+
render: () => (
|
|
846
|
+
<SBContainer flex direction="column" gap="extralarge" minWidth="600px">
|
|
847
|
+
<SBContainer addBackground>
|
|
848
|
+
<h4>GridItem as Semantic Elements</h4>
|
|
849
|
+
<p>Use the `as` prop to render GridItem as different HTML elements</p>
|
|
850
|
+
<Grid as="section" templateColumns="repeat(2, 1fr)" gap="16px">
|
|
851
|
+
<GridItem as="article">
|
|
852
|
+
<div
|
|
853
|
+
style={{
|
|
854
|
+
padding: '16px',
|
|
855
|
+
background: '#f0f0f0',
|
|
856
|
+
borderRadius: '4px',
|
|
857
|
+
}}
|
|
858
|
+
>
|
|
859
|
+
Article element
|
|
860
|
+
</div>
|
|
861
|
+
</GridItem>
|
|
862
|
+
<GridItem as="aside">
|
|
863
|
+
<div
|
|
864
|
+
style={{
|
|
865
|
+
padding: '16px',
|
|
866
|
+
background: '#f0f0f0',
|
|
867
|
+
borderRadius: '4px',
|
|
868
|
+
}}
|
|
869
|
+
>
|
|
870
|
+
Aside element
|
|
871
|
+
</div>
|
|
872
|
+
</GridItem>
|
|
873
|
+
<GridItem as="header" gridColumn="1 / -1">
|
|
874
|
+
<div
|
|
875
|
+
style={{
|
|
876
|
+
padding: '16px',
|
|
877
|
+
background: '#f0f0f0',
|
|
878
|
+
borderRadius: '4px',
|
|
879
|
+
}}
|
|
880
|
+
>
|
|
881
|
+
Header element (full width)
|
|
882
|
+
</div>
|
|
883
|
+
</GridItem>
|
|
884
|
+
</Grid>
|
|
885
|
+
</SBContainer>
|
|
886
|
+
|
|
887
|
+
<SBContainer addBackground>
|
|
888
|
+
<h4>GridItem as Component</h4>
|
|
889
|
+
<p>Use GridItem with `as` prop to render as SBDemoBox component</p>
|
|
890
|
+
<Grid templateColumns="repeat(3, 1fr)" gap="16px">
|
|
891
|
+
<GridItem as={SBDemoBox} gridColumn="span 2">
|
|
892
|
+
GridItem as SBDemoBox (spans 2 columns)
|
|
893
|
+
</GridItem>
|
|
894
|
+
<GridItem as={SBDemoBox}>
|
|
895
|
+
GridItem as SBDemoBox (auto-placed)
|
|
896
|
+
</GridItem>
|
|
897
|
+
<GridItem as={SBDemoBox}>GridItem as SBDemoBox</GridItem>
|
|
898
|
+
<GridItem as={SBDemoBox} gridColumn="2 / 4">
|
|
899
|
+
GridItem as SBDemoBox (columns 2-4)
|
|
900
|
+
</GridItem>
|
|
599
901
|
</Grid>
|
|
600
902
|
</SBContainer>
|
|
601
903
|
</SBContainer>
|