@telus-uds/components-community.sticky 1.1.19 → 1.1.21
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/CHANGELOG.md +22 -2
- package/lib-module/Sticky.js +131 -0
- package/lib-module/index.js +3 -0
- package/lib-module/styles.js +6 -0
- package/package.json +4 -4
- package/.eslintrc.js +0 -21
- package/CHANGELOG.json +0 -572
- package/__fixtures__/Theme.jsx +0 -13
- package/__fixtures__/images/mountains_desktop.jpg +0 -0
- package/__fixtures__/images/pigs-allium-lo.png +0 -0
- package/__fixtures__/testTheme.js +0 -335
- package/__tests__/Sticky.test.jsx +0 -84
- package/babel.config.js +0 -4
- package/jest.config.js +0 -20
- package/jest.setup.js +0 -5
- package/stories/Sticky.stories.jsx +0 -222
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
import { appearances } from '@telus-uds/system-theme-tokens'
|
|
2
|
-
import systemThemeTokensPackage from '@telus-uds/system-theme-tokens/package.json'
|
|
3
|
-
|
|
4
|
-
// This is a dev-only file so we don't need to make @telus-uds/palette-allium a dependency.
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
metadata: {
|
|
8
|
-
name: 'test',
|
|
9
|
-
themeTokensVersion: systemThemeTokensPackage.version
|
|
10
|
-
},
|
|
11
|
-
components: {
|
|
12
|
-
spacingScale: {
|
|
13
|
-
tokens: {
|
|
14
|
-
size: 36
|
|
15
|
-
},
|
|
16
|
-
rules: [
|
|
17
|
-
{ if: { space: 5 }, tokens: { size: 32 } },
|
|
18
|
-
{ if: { space: 4 }, tokens: { size: 24 } },
|
|
19
|
-
{ if: { space: 3 }, tokens: { size: 16 } },
|
|
20
|
-
{ if: { space: 2 }, tokens: { size: 8 } },
|
|
21
|
-
{ if: { space: 1 }, tokens: { size: 4 } },
|
|
22
|
-
|
|
23
|
-
{ if: { compact: true }, tokens: { size: 12 } },
|
|
24
|
-
{ if: { compact: true, space: 5 }, tokens: { size: 10 } },
|
|
25
|
-
{ if: { compact: true, space: 4 }, tokens: { size: 8 } },
|
|
26
|
-
{ if: { compact: true, space: 3 }, tokens: { size: 6 } },
|
|
27
|
-
{ if: { compact: true, space: 2 }, tokens: { size: 4 } },
|
|
28
|
-
{ if: { compact: true, space: 1 }, tokens: { size: 2 } },
|
|
29
|
-
|
|
30
|
-
{ if: { responsive: true }, tokens: { size: 6 } },
|
|
31
|
-
{ if: { responsive: true, space: 5 }, tokens: { size: 5 } },
|
|
32
|
-
{ if: { responsive: true, space: 4 }, tokens: { size: 4 } },
|
|
33
|
-
{ if: { responsive: true, space: 3 }, tokens: { size: 3 } },
|
|
34
|
-
{ if: { responsive: true, space: 2 }, tokens: { size: 2 } },
|
|
35
|
-
{ if: { responsive: true, space: 1 }, tokens: { size: 1 } },
|
|
36
|
-
{ if: { responsive: true, viewport: ['sm', 'md'] }, tokens: { size: 8 } },
|
|
37
|
-
{ if: { responsive: true, viewport: ['sm', 'md'], space: 5 }, tokens: { size: 7 } },
|
|
38
|
-
{ if: { responsive: true, viewport: ['sm', 'md'], space: 4 }, tokens: { size: 6 } },
|
|
39
|
-
{ if: { responsive: true, viewport: ['sm', 'md'], space: 3 }, tokens: { size: 5 } },
|
|
40
|
-
{ if: { responsive: true, viewport: ['sm', 'md'], space: 2 }, tokens: { size: 4 } },
|
|
41
|
-
{ if: { responsive: true, viewport: ['sm', 'md'], space: 1 }, tokens: { size: 3 } },
|
|
42
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'] }, tokens: { size: 12 } },
|
|
43
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'], space: 5 }, tokens: { size: 11 } },
|
|
44
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'], space: 4 }, tokens: { size: 10 } },
|
|
45
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'], space: 3 }, tokens: { size: 9 } },
|
|
46
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'], space: 2 }, tokens: { size: 8 } },
|
|
47
|
-
{ if: { responsive: true, viewport: ['lg', 'xl'], space: 1 }, tokens: { size: 7 } },
|
|
48
|
-
|
|
49
|
-
{ if: { space: 0 }, tokens: { size: 0 } }
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
Box: {
|
|
53
|
-
tokens: {},
|
|
54
|
-
variants: {
|
|
55
|
-
lightest: {
|
|
56
|
-
backgroundColor: '#ffffff'
|
|
57
|
-
},
|
|
58
|
-
light: {
|
|
59
|
-
backgroundColor: '#f4f4f7'
|
|
60
|
-
},
|
|
61
|
-
dark: {
|
|
62
|
-
backgroundColor: '#414547'
|
|
63
|
-
},
|
|
64
|
-
darkest: {
|
|
65
|
-
backgroundColor: '#2c2e30'
|
|
66
|
-
},
|
|
67
|
-
critical: {
|
|
68
|
-
backgroundColor: '#c12335'
|
|
69
|
-
},
|
|
70
|
-
danger: {
|
|
71
|
-
backgroundColor: '#fff6f8'
|
|
72
|
-
},
|
|
73
|
-
warning: {
|
|
74
|
-
backgroundColor: '#000000'
|
|
75
|
-
},
|
|
76
|
-
positive: {
|
|
77
|
-
backgroundColor: '#f4f9f2'
|
|
78
|
-
},
|
|
79
|
-
brand: {
|
|
80
|
-
backgroundColor: '#4d80de'
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
defaultVariant: ['lightest']
|
|
84
|
-
},
|
|
85
|
-
Typography: {
|
|
86
|
-
appearances: {
|
|
87
|
-
weight: {
|
|
88
|
-
values: ['light', 'medium', 'bold'],
|
|
89
|
-
type: 'variant'
|
|
90
|
-
},
|
|
91
|
-
size: {
|
|
92
|
-
values: [
|
|
93
|
-
'micro',
|
|
94
|
-
'small',
|
|
95
|
-
'large',
|
|
96
|
-
'h1',
|
|
97
|
-
'h2',
|
|
98
|
-
'h3',
|
|
99
|
-
'h4',
|
|
100
|
-
'h5',
|
|
101
|
-
'h6',
|
|
102
|
-
'display1',
|
|
103
|
-
'display2'
|
|
104
|
-
],
|
|
105
|
-
type: 'variant'
|
|
106
|
-
},
|
|
107
|
-
colour: {
|
|
108
|
-
values: ['secondary', 'tertiary'],
|
|
109
|
-
type: 'variant'
|
|
110
|
-
},
|
|
111
|
-
inverse: {
|
|
112
|
-
description: 'Styles the link white for use on dark backgrounds.',
|
|
113
|
-
values: [true],
|
|
114
|
-
type: 'variant'
|
|
115
|
-
},
|
|
116
|
-
viewport: appearances.system.viewport
|
|
117
|
-
},
|
|
118
|
-
tokens: {
|
|
119
|
-
fontWeight: '400',
|
|
120
|
-
fontSize: 16,
|
|
121
|
-
color: '#2c2e30',
|
|
122
|
-
lineHeight: 1.5,
|
|
123
|
-
fontScaleCap: 64
|
|
124
|
-
},
|
|
125
|
-
rules: [
|
|
126
|
-
{
|
|
127
|
-
if: { inverse: true },
|
|
128
|
-
tokens: {
|
|
129
|
-
color: '#ffffff'
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
if: { colour: 'primary' },
|
|
134
|
-
tokens: {
|
|
135
|
-
color: '#2c2e30'
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
if: { colour: 'secondary' },
|
|
140
|
-
tokens: {
|
|
141
|
-
color: '#414547'
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
if: { weight: 'light' },
|
|
146
|
-
tokens: {
|
|
147
|
-
fontWeight: '300'
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
if: { weight: 'medium' },
|
|
152
|
-
tokens: {
|
|
153
|
-
fontWeight: '500'
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
if: { weight: 'bold' },
|
|
158
|
-
tokens: {
|
|
159
|
-
fontWeight: '700'
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
if: { size: 'large' },
|
|
164
|
-
tokens: {
|
|
165
|
-
fontSize: 20,
|
|
166
|
-
lineHeight: 1.6
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
if: { size: 'small' },
|
|
171
|
-
tokens: {
|
|
172
|
-
fontSize: 14,
|
|
173
|
-
lineHeight: 1.4
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
if: { size: 'micro' },
|
|
178
|
-
tokens: {
|
|
179
|
-
fontSize: 12,
|
|
180
|
-
fontWeight: '500',
|
|
181
|
-
lineHeight: 1.3
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
if: { size: 'display1' },
|
|
186
|
-
tokens: {
|
|
187
|
-
fontSize: 40,
|
|
188
|
-
fontWeight: '300',
|
|
189
|
-
lineHeight: 1.2
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
if: { size: 'display1', colour: 'primary' },
|
|
194
|
-
tokens: {
|
|
195
|
-
color: '#4d80de'
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
if: { size: 'display1', colour: 'secondary' },
|
|
200
|
-
tokens: {
|
|
201
|
-
color: '#2c2e30'
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
if: { size: 'display1', viewport: ['lg', 'xl'] },
|
|
206
|
-
tokens: {
|
|
207
|
-
fontSize: 64,
|
|
208
|
-
lineHeight: 1.1
|
|
209
|
-
}
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
if: { size: 'display2' },
|
|
213
|
-
tokens: {
|
|
214
|
-
fontSize: 40,
|
|
215
|
-
fontWeight: '300',
|
|
216
|
-
color: '#4d80de',
|
|
217
|
-
lineHeight: 1.2
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
if: { size: 'display2', colour: 'secondary' },
|
|
222
|
-
tokens: {
|
|
223
|
-
color: '#2c2e30'
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
if: { size: 'display2', viewport: ['lg', 'xl'] },
|
|
228
|
-
tokens: {
|
|
229
|
-
fontSize: 56,
|
|
230
|
-
lineHeight: 1.1
|
|
231
|
-
}
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
if: { size: 'h1' },
|
|
235
|
-
tokens: {
|
|
236
|
-
fontSize: 28,
|
|
237
|
-
lineHeight: 1.2,
|
|
238
|
-
color: '#4d80de'
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
if: { size: 'h1', colour: 'secondary' },
|
|
243
|
-
tokens: {
|
|
244
|
-
color: '#2c2e30'
|
|
245
|
-
}
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
if: { size: 'h1', viewport: ['lg', 'xl'] },
|
|
249
|
-
tokens: {
|
|
250
|
-
fontSize: 40,
|
|
251
|
-
lineHeight: 1.1
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
if: { size: 'h2' },
|
|
256
|
-
tokens: {
|
|
257
|
-
fontSize: 24,
|
|
258
|
-
color: '#4d80de',
|
|
259
|
-
fontWeight: '500',
|
|
260
|
-
lineHeight: 1.3
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
if: { size: 'h2', colour: 'secondary' },
|
|
265
|
-
tokens: {
|
|
266
|
-
color: '#2c2e30'
|
|
267
|
-
}
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
if: { size: 'h2', viewport: ['lg', 'xl'] },
|
|
271
|
-
tokens: {
|
|
272
|
-
fontSize: 28
|
|
273
|
-
}
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
if: { size: 'h3' },
|
|
277
|
-
tokens: {
|
|
278
|
-
fontSize: 20,
|
|
279
|
-
fontWeight: '500',
|
|
280
|
-
lineHeight: 1.4,
|
|
281
|
-
color: '#4d80de'
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
if: { size: 'h3', colour: 'secondary' },
|
|
286
|
-
tokens: {
|
|
287
|
-
color: '#2c2e30'
|
|
288
|
-
}
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
if: { size: 'h3', viewport: ['lg', 'xl'] },
|
|
292
|
-
tokens: {
|
|
293
|
-
fontSize: 24,
|
|
294
|
-
lineHeight: 1.3
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
if: { size: 'h4' },
|
|
299
|
-
tokens: {
|
|
300
|
-
fontSize: 16,
|
|
301
|
-
weight: '500',
|
|
302
|
-
lineHeight: 1.5
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
{
|
|
306
|
-
if: { size: 'h5' },
|
|
307
|
-
tokens: {
|
|
308
|
-
fontSize: 14,
|
|
309
|
-
fontWeight: '500',
|
|
310
|
-
lineHeight: 1.3
|
|
311
|
-
}
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
if: { size: 'h6' },
|
|
315
|
-
tokens: {
|
|
316
|
-
fontSize: 12,
|
|
317
|
-
fontWeight: '700',
|
|
318
|
-
lineHeight: 1.3
|
|
319
|
-
}
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
if: { size: 'h6', colour: 'tertiary' },
|
|
323
|
-
tokens: {
|
|
324
|
-
color: '#000000'
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
]
|
|
328
|
-
},
|
|
329
|
-
Sticky: {
|
|
330
|
-
appearances: {},
|
|
331
|
-
rules: [],
|
|
332
|
-
tokens: {}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { render } from '@testing-library/react'
|
|
3
|
-
import { Typography } from '@telus-uds/components-web'
|
|
4
|
-
import Theme from '../__fixtures__/Theme'
|
|
5
|
-
import { Sticky } from '../src'
|
|
6
|
-
|
|
7
|
-
describe('Sticky', () => {
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
const mockIntersectionObserver = jest.fn()
|
|
10
|
-
mockIntersectionObserver.mockReturnValue({
|
|
11
|
-
observe: jest.fn(),
|
|
12
|
-
unobserve: jest.fn(),
|
|
13
|
-
disconnect: jest.fn()
|
|
14
|
-
})
|
|
15
|
-
window.IntersectionObserver = mockIntersectionObserver
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
it('is rendered with children', () => {
|
|
19
|
-
const { getByText, container } = render(
|
|
20
|
-
<Theme>
|
|
21
|
-
<Sticky>
|
|
22
|
-
<Typography>Sticky Content</Typography>
|
|
23
|
-
</Sticky>
|
|
24
|
-
</Theme>
|
|
25
|
-
)
|
|
26
|
-
const sentinelTop = container.querySelector('.sentinelTop')
|
|
27
|
-
const sentinelBottom = container.querySelector('.sentinelBottom')
|
|
28
|
-
const stickyElement = container.querySelector('.sticky-element')
|
|
29
|
-
const titleElement = getByText(/Sticky Content/i)
|
|
30
|
-
expect(sentinelTop).toBeInTheDocument()
|
|
31
|
-
expect(sentinelBottom).toBeInTheDocument()
|
|
32
|
-
expect(stickyElement).toBeInTheDocument()
|
|
33
|
-
expect(titleElement).toBeInTheDocument()
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it("is rendered without checking for container's y position", () => {
|
|
37
|
-
const { getByText, container } = render(
|
|
38
|
-
<Theme>
|
|
39
|
-
<Sticky workWithViewport={false}>
|
|
40
|
-
<Typography>Sticky Content</Typography>
|
|
41
|
-
</Sticky>
|
|
42
|
-
</Theme>
|
|
43
|
-
)
|
|
44
|
-
const sentinelTop = container.querySelector('.sentinelTop')
|
|
45
|
-
const sentinelBottom = container.querySelector('.sentinelBottom')
|
|
46
|
-
const stickyElement = container.querySelector('.sticky-element')
|
|
47
|
-
const titleElement = getByText(/Sticky Content/i)
|
|
48
|
-
expect(sentinelTop).toBeInTheDocument()
|
|
49
|
-
expect(sentinelBottom).toBeInTheDocument()
|
|
50
|
-
expect(stickyElement).toBeInTheDocument()
|
|
51
|
-
expect(titleElement).toBeInTheDocument()
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
it('is rendered with children using alternate variant', () => {
|
|
55
|
-
const { getByText, container } = render(
|
|
56
|
-
<Theme>
|
|
57
|
-
<Sticky variant="alternate">
|
|
58
|
-
<Typography>Sticky Content</Typography>
|
|
59
|
-
</Sticky>
|
|
60
|
-
</Theme>
|
|
61
|
-
)
|
|
62
|
-
const titleElement = getByText(/Sticky Content/i)
|
|
63
|
-
const alternateSticky = container.querySelector('.alternate')
|
|
64
|
-
const stickyElement = container.querySelector('.sticky-element')
|
|
65
|
-
expect(titleElement).toBeInTheDocument()
|
|
66
|
-
expect(alternateSticky).toBeInTheDocument()
|
|
67
|
-
expect(stickyElement).toBeInTheDocument()
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
it('is rendered with children using hidden variant', () => {
|
|
71
|
-
const { getByText, container } = render(
|
|
72
|
-
<Theme>
|
|
73
|
-
<Sticky variant="hidden">
|
|
74
|
-
<Typography>Sticky Content</Typography>
|
|
75
|
-
</Sticky>
|
|
76
|
-
</Theme>
|
|
77
|
-
)
|
|
78
|
-
const titleElement = getByText(/Sticky Content/i)
|
|
79
|
-
const stickyElement = container.querySelector('.sticky-element')
|
|
80
|
-
expect(stickyElement).toBeInTheDocument()
|
|
81
|
-
expect(titleElement).toBeInTheDocument()
|
|
82
|
-
expect(stickyElement.parentNode).toHaveStyle('height: 0px')
|
|
83
|
-
})
|
|
84
|
-
})
|
package/babel.config.js
DELETED
package/jest.config.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module.exports = () => ({
|
|
2
|
-
displayName: {
|
|
3
|
-
name: require('./package.json').name.split('@telus-uds/').pop(),
|
|
4
|
-
color: 'magenta'
|
|
5
|
-
},
|
|
6
|
-
testEnvironment: 'jsdom',
|
|
7
|
-
// __dirname here tells babel to look in ds-allium/ for babel root when running from monorepo root
|
|
8
|
-
transform: { '\\.(js|jsx)$': ['babel-jest', { cwd: __dirname }] },
|
|
9
|
-
moduleNameMapper: {
|
|
10
|
-
'.+\\.(otf|png|jpg)$': 'identity-obj-proxy',
|
|
11
|
-
// mock icon imports as in https://jestjs.io/docs/webpack#mocking-css-modules
|
|
12
|
-
'\\.icon.svg': '<rootDir>/__mocks__/iconMock.jsx',
|
|
13
|
-
'\\.css': '<rootDir>/__mocks__/styleMock.js',
|
|
14
|
-
'^styled-components':
|
|
15
|
-
'<rootDir>/../../node_modules/styled-components/dist/styled-components.browser.cjs.js'
|
|
16
|
-
},
|
|
17
|
-
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
|
|
18
|
-
// Count everything in src when calculating coverage
|
|
19
|
-
collectCoverageFrom: ['src/*.{js,jsx}']
|
|
20
|
-
})
|
package/jest.setup.js
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Typography, FlexGrid, Box, StoryCard, Spacer, Card } from '@telus-uds/components-web'
|
|
3
|
-
import { Sticky } from '../..'
|
|
4
|
-
import pigPhoto from '../__fixtures__/images/pigs-allium-lo.png'
|
|
5
|
-
import mountainPhoto from '../__fixtures__/images/mountains_desktop.jpg'
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
title: 'Community/Sticky',
|
|
9
|
-
component: Sticky
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const Default = (args) => (
|
|
13
|
-
<FlexGrid gutter={false}>
|
|
14
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
15
|
-
<FlexGrid.Col xs={12}>
|
|
16
|
-
<Box variant={{ background: 'light' }} space={4}>
|
|
17
|
-
<Typography variant={{ size: 'h3' }}>Lorem Ipsum</Typography>
|
|
18
|
-
<Spacer space={4} />
|
|
19
|
-
<Typography>
|
|
20
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
21
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
22
|
-
</Typography>
|
|
23
|
-
<Spacer space={2} />
|
|
24
|
-
<Typography>
|
|
25
|
-
Vestibulum blandit dui leo, non placerat nisi efficitur eget. Pellentesque habitant
|
|
26
|
-
morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
|
27
|
-
</Typography>
|
|
28
|
-
</Box>
|
|
29
|
-
</FlexGrid.Col>
|
|
30
|
-
</FlexGrid.Row>
|
|
31
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
32
|
-
<FlexGrid.Col md={4}>
|
|
33
|
-
<StoryCard
|
|
34
|
-
href="https://telus.com"
|
|
35
|
-
tag="Lorem Ipsum"
|
|
36
|
-
date="Oct 28, 2023"
|
|
37
|
-
title="Lorem Ipsum"
|
|
38
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
39
|
-
fullBleedContent={{
|
|
40
|
-
alt: 'Pig photo',
|
|
41
|
-
src: pigPhoto
|
|
42
|
-
}}
|
|
43
|
-
/>
|
|
44
|
-
</FlexGrid.Col>
|
|
45
|
-
<FlexGrid.Col md={4}>
|
|
46
|
-
<StoryCard
|
|
47
|
-
href="https://telus.com"
|
|
48
|
-
tag="Lorem Ipsum"
|
|
49
|
-
date="Oct 28, 2023"
|
|
50
|
-
title="Lorem Ipsum"
|
|
51
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
52
|
-
fullBleedContent={{
|
|
53
|
-
alt: 'Pig photo',
|
|
54
|
-
src: pigPhoto
|
|
55
|
-
}}
|
|
56
|
-
/>
|
|
57
|
-
</FlexGrid.Col>
|
|
58
|
-
<FlexGrid.Col md={4}>
|
|
59
|
-
<StoryCard
|
|
60
|
-
href="https://telus.com"
|
|
61
|
-
tag="Lorem Ipsum"
|
|
62
|
-
date="Oct 28, 2023"
|
|
63
|
-
title="Lorem Ipsum"
|
|
64
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
65
|
-
fullBleedContent={{
|
|
66
|
-
alt: 'Pig photo',
|
|
67
|
-
src: pigPhoto
|
|
68
|
-
}}
|
|
69
|
-
/>
|
|
70
|
-
</FlexGrid.Col>
|
|
71
|
-
</FlexGrid.Row>
|
|
72
|
-
<Sticky {...args}>
|
|
73
|
-
<FlexGrid gutter={false}>
|
|
74
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
75
|
-
<FlexGrid.Col>
|
|
76
|
-
<Box variant={{ background: 'featurePrimary' }} space={2}>
|
|
77
|
-
<Typography block variant={{ size: 'h1', inverse: true }}>
|
|
78
|
-
Sticky Content
|
|
79
|
-
</Typography>
|
|
80
|
-
<Spacer space={4} />
|
|
81
|
-
<Typography align="center" variant={{ inverse: true }}>
|
|
82
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, diam quis
|
|
83
|
-
aliquam Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
84
|
-
</Typography>
|
|
85
|
-
</Box>
|
|
86
|
-
</FlexGrid.Col>
|
|
87
|
-
</FlexGrid.Row>
|
|
88
|
-
</FlexGrid>
|
|
89
|
-
</Sticky>
|
|
90
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
91
|
-
<FlexGrid.Col md={12}>
|
|
92
|
-
<Card
|
|
93
|
-
footer={
|
|
94
|
-
<Typography>
|
|
95
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
96
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
97
|
-
</Typography>
|
|
98
|
-
}
|
|
99
|
-
>
|
|
100
|
-
<Typography block variant={{ size: 'h2' }}>
|
|
101
|
-
Lorem Ipsum
|
|
102
|
-
</Typography>
|
|
103
|
-
<Box top={4}>
|
|
104
|
-
<Typography>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</Typography>
|
|
105
|
-
</Box>
|
|
106
|
-
</Card>
|
|
107
|
-
</FlexGrid.Col>
|
|
108
|
-
</FlexGrid.Row>
|
|
109
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
110
|
-
<FlexGrid.Col xs={12}>
|
|
111
|
-
<Box variant={{ background: 'light' }} space={4}>
|
|
112
|
-
<Typography variant={{ size: 'h3' }}>Lorem Ipsum</Typography>
|
|
113
|
-
<Spacer space={4} />
|
|
114
|
-
<Typography>
|
|
115
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
116
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
117
|
-
</Typography>
|
|
118
|
-
<Spacer space={2} />
|
|
119
|
-
<Typography>
|
|
120
|
-
Vestibulum blandit dui leo, non placerat nisi efficitur eget. Pellentesque habitant
|
|
121
|
-
morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
|
122
|
-
</Typography>
|
|
123
|
-
</Box>
|
|
124
|
-
</FlexGrid.Col>
|
|
125
|
-
</FlexGrid.Row>
|
|
126
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
127
|
-
<FlexGrid.Col md={4}>
|
|
128
|
-
<StoryCard
|
|
129
|
-
href="https://telus.com"
|
|
130
|
-
tag="Lorem Ipsum"
|
|
131
|
-
date="Oct 28, 2023"
|
|
132
|
-
title="Lorem Ipsum"
|
|
133
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
134
|
-
fullBleedContent={{
|
|
135
|
-
alt: 'Mountain photo',
|
|
136
|
-
src: mountainPhoto
|
|
137
|
-
}}
|
|
138
|
-
/>
|
|
139
|
-
</FlexGrid.Col>
|
|
140
|
-
<FlexGrid.Col md={4}>
|
|
141
|
-
<StoryCard
|
|
142
|
-
href="https://telus.com"
|
|
143
|
-
tag="Lorem Ipsum"
|
|
144
|
-
date="Oct 28, 2023"
|
|
145
|
-
title="Lorem Ipsum"
|
|
146
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
147
|
-
fullBleedContent={{
|
|
148
|
-
alt: 'Mountain photo',
|
|
149
|
-
src: mountainPhoto
|
|
150
|
-
}}
|
|
151
|
-
/>
|
|
152
|
-
</FlexGrid.Col>
|
|
153
|
-
<FlexGrid.Col md={4}>
|
|
154
|
-
<StoryCard
|
|
155
|
-
href="https://telus.com"
|
|
156
|
-
tag="Lorem Ipsum"
|
|
157
|
-
date="Oct 28, 2023"
|
|
158
|
-
title="Lorem Ipsum"
|
|
159
|
-
description="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
160
|
-
fullBleedContent={{
|
|
161
|
-
alt: 'Mountain photo',
|
|
162
|
-
src: mountainPhoto
|
|
163
|
-
}}
|
|
164
|
-
/>
|
|
165
|
-
</FlexGrid.Col>
|
|
166
|
-
</FlexGrid.Row>
|
|
167
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
168
|
-
<FlexGrid.Col xs={12}>
|
|
169
|
-
<Box variant={{ background: 'light' }} space={4}>
|
|
170
|
-
<Typography variant={{ size: 'h3' }}>Lorem Ipsum</Typography>
|
|
171
|
-
<Spacer space={4} />
|
|
172
|
-
<Typography>
|
|
173
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
174
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
175
|
-
</Typography>
|
|
176
|
-
<Spacer space={2} />
|
|
177
|
-
<Typography>
|
|
178
|
-
Vestibulum blandit dui leo, non placerat nisi efficitur eget. Pellentesque habitant
|
|
179
|
-
morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
|
180
|
-
</Typography>
|
|
181
|
-
</Box>
|
|
182
|
-
</FlexGrid.Col>
|
|
183
|
-
</FlexGrid.Row>
|
|
184
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
185
|
-
<FlexGrid.Col xs={12}>
|
|
186
|
-
<Box variant={{ background: 'light' }} space={4}>
|
|
187
|
-
<Typography variant={{ size: 'h3' }}>Lorem Ipsum</Typography>
|
|
188
|
-
<Spacer space={4} />
|
|
189
|
-
<Typography>
|
|
190
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
191
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
192
|
-
</Typography>
|
|
193
|
-
<Spacer space={2} />
|
|
194
|
-
<Typography>
|
|
195
|
-
Vestibulum blandit dui leo, non placerat nisi efficitur eget. Pellentesque habitant
|
|
196
|
-
morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
|
197
|
-
</Typography>
|
|
198
|
-
</Box>
|
|
199
|
-
</FlexGrid.Col>
|
|
200
|
-
</FlexGrid.Row>
|
|
201
|
-
<FlexGrid.Row horizontalAlign="center">
|
|
202
|
-
<FlexGrid.Col xs={12}>
|
|
203
|
-
<Box variant={{ background: 'light' }} space={4}>
|
|
204
|
-
<Typography variant={{ size: 'h3' }}>Lorem Ipsum</Typography>
|
|
205
|
-
<Spacer space={4} />
|
|
206
|
-
<Typography>
|
|
207
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque rutrum dolor
|
|
208
|
-
ligula, ac placerat tortor ornare a. Praesent pellentesque accumsan nibh eu volutpat.
|
|
209
|
-
</Typography>
|
|
210
|
-
<Spacer space={2} />
|
|
211
|
-
<Typography>
|
|
212
|
-
Vestibulum blandit dui leo, non placerat nisi efficitur eget. Pellentesque habitant
|
|
213
|
-
morbi tristique senectus et netus et malesuada fames ac turpis egestas.
|
|
214
|
-
</Typography>
|
|
215
|
-
</Box>
|
|
216
|
-
</FlexGrid.Col>
|
|
217
|
-
</FlexGrid.Row>
|
|
218
|
-
</FlexGrid>
|
|
219
|
-
)
|
|
220
|
-
|
|
221
|
-
Default.storyName = 'Sticky'
|
|
222
|
-
Default.args = { variant: 'default', checkYPostion: true }
|