@instructure/ui-view 11.6.0 → 11.6.1-snapshot-129

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 (97) hide show
  1. package/CHANGELOG.md +42 -307
  2. package/es/ContextView/{index.js → v1/index.js} +2 -2
  3. package/es/ContextView/v2/index.js +125 -0
  4. package/es/ContextView/v2/props.js +26 -0
  5. package/es/ContextView/v2/styles.js +256 -0
  6. package/es/View/{index.js → v1/index.js} +1 -1
  7. package/es/View/v2/index.js +167 -0
  8. package/es/View/v2/props.js +29 -0
  9. package/es/View/v2/styles.js +420 -0
  10. package/es/{index.js → exports/a.js} +2 -2
  11. package/{src/index.ts → es/exports/b.js} +2 -6
  12. package/lib/ContextView/{index.js → v1/index.js} +4 -4
  13. package/lib/ContextView/v2/index.js +130 -0
  14. package/lib/ContextView/v2/props.js +31 -0
  15. package/lib/ContextView/v2/styles.js +262 -0
  16. package/lib/View/{index.js → v1/index.js} +1 -1
  17. package/lib/View/v2/index.js +175 -0
  18. package/lib/View/v2/props.js +34 -0
  19. package/lib/View/v2/styles.js +426 -0
  20. package/lib/{index.js → exports/a.js} +4 -4
  21. package/lib/exports/b.js +19 -0
  22. package/package.json +41 -19
  23. package/src/ContextView/{index.tsx → v1/index.tsx} +2 -2
  24. package/src/ContextView/v2/README.md +53 -0
  25. package/src/ContextView/v2/index.tsx +144 -0
  26. package/src/ContextView/v2/props.ts +98 -0
  27. package/src/ContextView/v2/styles.ts +332 -0
  28. package/src/View/{index.tsx → v1/index.tsx} +1 -1
  29. package/src/View/v2/README.md +803 -0
  30. package/src/View/v2/index.tsx +240 -0
  31. package/src/View/v2/props.ts +278 -0
  32. package/src/View/v2/styles.ts +503 -0
  33. package/src/exports/a.ts +29 -0
  34. package/src/exports/b.ts +29 -0
  35. package/tsconfig.build.tsbuildinfo +1 -1
  36. package/types/ContextView/v1/index.d.ts.map +1 -0
  37. package/types/ContextView/v1/props.d.ts.map +1 -0
  38. package/types/ContextView/v1/styles.d.ts.map +1 -0
  39. package/types/ContextView/v1/theme.d.ts.map +1 -0
  40. package/types/ContextView/v2/index.d.ts +50 -0
  41. package/types/ContextView/v2/index.d.ts.map +1 -0
  42. package/types/ContextView/v2/props.d.ts +36 -0
  43. package/types/ContextView/v2/props.d.ts.map +1 -0
  44. package/types/ContextView/v2/styles.d.ts +14 -0
  45. package/types/ContextView/v2/styles.d.ts.map +1 -0
  46. package/types/View/v1/index.d.ts.map +1 -0
  47. package/types/View/v1/props.d.ts.map +1 -0
  48. package/types/View/v1/styles.d.ts.map +1 -0
  49. package/types/View/v1/theme.d.ts.map +1 -0
  50. package/types/View/v2/index.d.ts +36 -0
  51. package/types/View/v2/index.d.ts.map +1 -0
  52. package/types/View/v2/props.d.ts +157 -0
  53. package/types/View/v2/props.d.ts.map +1 -0
  54. package/types/View/v2/styles.d.ts +11 -0
  55. package/types/View/v2/styles.d.ts.map +1 -0
  56. package/types/exports/a.d.ts +5 -0
  57. package/types/exports/a.d.ts.map +1 -0
  58. package/types/exports/b.d.ts +5 -0
  59. package/types/exports/b.d.ts.map +1 -0
  60. package/types/ContextView/index.d.ts.map +0 -1
  61. package/types/ContextView/props.d.ts.map +0 -1
  62. package/types/ContextView/styles.d.ts.map +0 -1
  63. package/types/ContextView/theme.d.ts.map +0 -1
  64. package/types/View/index.d.ts.map +0 -1
  65. package/types/View/props.d.ts.map +0 -1
  66. package/types/View/styles.d.ts.map +0 -1
  67. package/types/View/theme.d.ts.map +0 -1
  68. package/types/index.d.ts +0 -5
  69. package/types/index.d.ts.map +0 -1
  70. /package/es/ContextView/{props.js → v1/props.js} +0 -0
  71. /package/es/ContextView/{styles.js → v1/styles.js} +0 -0
  72. /package/es/ContextView/{theme.js → v1/theme.js} +0 -0
  73. /package/es/View/{props.js → v1/props.js} +0 -0
  74. /package/es/View/{styles.js → v1/styles.js} +0 -0
  75. /package/es/View/{theme.js → v1/theme.js} +0 -0
  76. /package/lib/ContextView/{props.js → v1/props.js} +0 -0
  77. /package/lib/ContextView/{styles.js → v1/styles.js} +0 -0
  78. /package/lib/ContextView/{theme.js → v1/theme.js} +0 -0
  79. /package/lib/View/{props.js → v1/props.js} +0 -0
  80. /package/lib/View/{styles.js → v1/styles.js} +0 -0
  81. /package/lib/View/{theme.js → v1/theme.js} +0 -0
  82. /package/src/ContextView/{README.md → v1/README.md} +0 -0
  83. /package/src/ContextView/{props.ts → v1/props.ts} +0 -0
  84. /package/src/ContextView/{styles.ts → v1/styles.ts} +0 -0
  85. /package/src/ContextView/{theme.ts → v1/theme.ts} +0 -0
  86. /package/src/View/{README.md → v1/README.md} +0 -0
  87. /package/src/View/{props.ts → v1/props.ts} +0 -0
  88. /package/src/View/{styles.ts → v1/styles.ts} +0 -0
  89. /package/src/View/{theme.ts → v1/theme.ts} +0 -0
  90. /package/types/ContextView/{index.d.ts → v1/index.d.ts} +0 -0
  91. /package/types/ContextView/{props.d.ts → v1/props.d.ts} +0 -0
  92. /package/types/ContextView/{styles.d.ts → v1/styles.d.ts} +0 -0
  93. /package/types/ContextView/{theme.d.ts → v1/theme.d.ts} +0 -0
  94. /package/types/View/{index.d.ts → v1/index.d.ts} +0 -0
  95. /package/types/View/{props.d.ts → v1/props.d.ts} +0 -0
  96. /package/types/View/{styles.d.ts → v1/styles.d.ts} +0 -0
  97. /package/types/View/{theme.d.ts → v1/theme.d.ts} +0 -0
@@ -0,0 +1,503 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import { DIRECTION } from '@instructure/ui-i18n'
26
+ import {
27
+ calcSpacingFromShorthand,
28
+ mirrorShorthandEdges,
29
+ mirrorShorthandCorners,
30
+ calcFocusOutlineStyles
31
+ } from '@instructure/emotion'
32
+ import { pickProps } from '@instructure/ui-react-utils'
33
+
34
+ import type { OtherHTMLAttributes } from '@instructure/shared-types'
35
+ import type { NewComponentTypes, SharedTokens } from '@instructure/ui-themes'
36
+ import type { ViewProps, ViewStyle, BorderColor } from './props'
37
+ import { boxShadowObjectsToCSSString } from '@instructure/ui-themes'
38
+
39
+ const processBorderRadiusValue = (
40
+ value: string | undefined,
41
+ sharedTokens: SharedTokens
42
+ ): string => {
43
+ if (!value) return ''
44
+
45
+ // Split by spaces to handle CSS shorthand (1-4 values)
46
+ const values = value.split(' ')
47
+
48
+ const processedValues = values.map((v) => {
49
+ // Handle special cases
50
+ if (v === 'auto' || v === '0') return v
51
+ if (v === 'none') return '0'
52
+ if (v === 'circle') return '100%'
53
+ if (v === 'pill') return '999em'
54
+
55
+ // Handle SharedTokens values
56
+ if (v === 'small') return sharedTokens.legacy.radiusSmall // 2px in Canvas
57
+ if (v === 'medium') return sharedTokens.legacy.radiusMedium // 4px in Canvas
58
+ if (v === 'large') return sharedTokens.legacy.radiusLarge // 8px in Canvas
59
+
60
+ // Pass through CSS values (1rem, 12px, etc.)
61
+ return v
62
+ })
63
+
64
+ return processedValues.join(' ')
65
+ }
66
+
67
+ const processBorderWidthValue = (
68
+ value: string | undefined,
69
+ sharedTokens: SharedTokens
70
+ ): string => {
71
+ if (!value) return ''
72
+
73
+ // Split by spaces to handle CSS shorthand (1-4 values)
74
+ const values = value.split(' ')
75
+
76
+ const processedValues = values.map((v) => {
77
+ // Handle special cases
78
+ if (v === 'auto' || v === '0') return v
79
+ if (v === 'none') return '0'
80
+
81
+ // Handle SharedTokens values
82
+ if (v === 'small') return sharedTokens.strokeWidth.sm
83
+ if (v === 'medium') return sharedTokens.strokeWidth.md
84
+ if (v === 'large') return sharedTokens.strokeWidth.lg
85
+
86
+ // Pass through CSS values (1rem, 2px, etc.)
87
+ return v
88
+ })
89
+
90
+ return processedValues.join(' ')
91
+ }
92
+
93
+ const getBorderStyle = ({
94
+ borderRadius,
95
+ borderWidth,
96
+ dir,
97
+ sharedTokens
98
+ }: {
99
+ sharedTokens: SharedTokens
100
+ borderRadius: ViewProps['borderRadius']
101
+ borderWidth: ViewProps['borderWidth']
102
+ dir: ViewProps['dir']
103
+ }) => {
104
+ const isRtlDirection = dir === DIRECTION.rtl
105
+ return {
106
+ borderRadius: processBorderRadiusValue(
107
+ isRtlDirection ? mirrorShorthandCorners(borderRadius) : borderRadius,
108
+ sharedTokens
109
+ ),
110
+ borderWidth: processBorderWidthValue(
111
+ isRtlDirection ? mirrorShorthandEdges(borderWidth) : borderWidth,
112
+ sharedTokens
113
+ )
114
+ }
115
+ }
116
+
117
+ const getSpacingStyle = ({
118
+ margin,
119
+ padding,
120
+ dir,
121
+ sharedTokens
122
+ }: {
123
+ sharedTokens: SharedTokens
124
+ margin: ViewProps['margin']
125
+ padding: ViewProps['padding']
126
+ dir: ViewProps['dir']
127
+ }) => {
128
+ const isRtlDirection = dir === DIRECTION.rtl
129
+
130
+ return {
131
+ // TODO handle the merging on tokens inside the util
132
+ margin: calcSpacingFromShorthand(
133
+ isRtlDirection ? mirrorShorthandEdges(margin) : margin,
134
+ {
135
+ ...sharedTokens.spacing,
136
+ ...sharedTokens.legacy.spacing
137
+ }
138
+ ),
139
+ padding: calcSpacingFromShorthand(
140
+ isRtlDirection ? mirrorShorthandEdges(padding) : padding,
141
+ {
142
+ ...sharedTokens.spacing,
143
+ ...sharedTokens.legacy.spacing
144
+ }
145
+ )
146
+ }
147
+ }
148
+
149
+ const getOffsetStyle = ({
150
+ insetBlockStart,
151
+ insetBlockEnd,
152
+ insetInlineStart,
153
+ insetInlineEnd,
154
+ dir
155
+ }: {
156
+ insetBlockStart: ViewProps['insetBlockStart']
157
+ insetBlockEnd: ViewProps['insetBlockEnd']
158
+ insetInlineStart: ViewProps['insetInlineStart']
159
+ insetInlineEnd: ViewProps['insetInlineEnd']
160
+ dir: ViewProps['dir']
161
+ }) => {
162
+ const isRtlDirection = dir === DIRECTION.rtl
163
+
164
+ const blockStart = {
165
+ top: insetBlockStart,
166
+ insetBlockStart
167
+ }
168
+
169
+ const blockEnd = {
170
+ bottom: insetBlockEnd,
171
+ insetBlockEnd
172
+ }
173
+
174
+ const horizontalOffsets = {
175
+ left: isRtlDirection ? insetInlineEnd : insetInlineStart,
176
+ right: isRtlDirection ? insetInlineStart : insetInlineEnd
177
+ }
178
+
179
+ return {
180
+ ...blockStart,
181
+ ...blockEnd,
182
+ ...horizontalOffsets
183
+ }
184
+ }
185
+
186
+ const getStyleProps = ({
187
+ cursor,
188
+ style
189
+ }: ViewProps & OtherHTMLAttributes<ViewProps>) => {
190
+ const whitelisted = pickProps(style || {}, {}, [
191
+ // Position/calculateElementPosition:
192
+ 'top',
193
+ 'left',
194
+ 'position',
195
+ 'display',
196
+ 'transform',
197
+ 'overflow',
198
+ 'minWidth',
199
+ 'minHeight',
200
+ // Img:
201
+ 'filter',
202
+ // Flex.Item:
203
+ 'flexBasis',
204
+ // Avatar:
205
+ 'backgroundImage',
206
+ // Popover:
207
+ 'pointerEvents'
208
+ ])
209
+
210
+ if (cursor) {
211
+ whitelisted.cursor = cursor
212
+ }
213
+
214
+ return whitelisted
215
+ }
216
+
217
+ const withBorder = (props: ViewProps) => {
218
+ const { borderWidth } = props
219
+ return borderWidth && borderWidth !== '0' && borderWidth !== 'none'
220
+ }
221
+
222
+ /**
223
+ * Generates the style object from the theme and provided additional information
224
+ * @param {Object} componentTheme The theme variable object.
225
+ * @param {Object} props the props of the component, the style is applied to
226
+ * @return {Object} The final style object, which will be used in the component
227
+ */
228
+ const generateStyle = (
229
+ componentTheme: NewComponentTypes['View'],
230
+ props: ViewProps,
231
+ sharedTokens: SharedTokens
232
+ ): ViewStyle => {
233
+ const {
234
+ borderRadius,
235
+ borderWidth,
236
+ margin,
237
+ padding,
238
+ position,
239
+ display,
240
+ textAlign,
241
+ borderColor,
242
+ background,
243
+ stacking,
244
+ shadow,
245
+ overflowY,
246
+ overflowX,
247
+ overscrollBehavior,
248
+ insetBlockEnd,
249
+ insetBlockStart,
250
+ insetInlineEnd,
251
+ insetInlineStart,
252
+ width,
253
+ height,
254
+ minWidth,
255
+ minHeight,
256
+ maxWidth,
257
+ maxHeight,
258
+ withVisualDebug,
259
+ dir
260
+ } = props
261
+ const borderStyle = getBorderStyle({
262
+ sharedTokens,
263
+ borderRadius,
264
+ borderWidth,
265
+ dir
266
+ })
267
+ const spacingStyle = getSpacingStyle({
268
+ margin,
269
+ padding,
270
+ sharedTokens,
271
+ dir
272
+ })
273
+
274
+ const offsetStyle = getOffsetStyle({
275
+ dir,
276
+ insetBlockEnd,
277
+ insetBlockStart,
278
+ insetInlineEnd,
279
+ insetInlineStart
280
+ })
281
+
282
+ const displayVariants = {
283
+ inline: {
284
+ label: 'view--inline',
285
+ display: 'inline'
286
+ },
287
+ block: {
288
+ label: 'view--block',
289
+ display: 'block'
290
+ },
291
+ 'inline-block': {
292
+ label: 'view--inlineBlock',
293
+ display: 'inline-block',
294
+ verticalAlign: 'middle'
295
+ },
296
+ flex: {
297
+ label: 'view--flex',
298
+ display: 'flex'
299
+ },
300
+ 'inline-flex': {
301
+ label: 'view--inlineFlex',
302
+ display: 'inline-flex',
303
+ verticalAlign: 'middle'
304
+ },
305
+ contents: {
306
+ label: 'view--contents',
307
+ display: 'contents'
308
+ },
309
+ inherit: {
310
+ label: 'view--inherit',
311
+ display: 'inherit'
312
+ },
313
+ initial: {
314
+ label: 'view--initial',
315
+ display: 'initial'
316
+ },
317
+ revert: {
318
+ label: 'view--revert',
319
+ display: 'revert'
320
+ },
321
+ 'revert-layer': {
322
+ label: 'view--revertLayer',
323
+ display: 'revert-layer'
324
+ },
325
+ unset: {
326
+ label: 'view--unset',
327
+ display: 'unset'
328
+ },
329
+ auto: {}
330
+ }
331
+
332
+ const textAlignVariants = {
333
+ start: { textAlign: 'start' },
334
+ center: { textAlign: 'center' },
335
+ end: { textAlign: 'end' }
336
+ }
337
+
338
+ const borderColorVariants: Record<BorderColor, { borderColor: string }> = {
339
+ transparent: {
340
+ borderColor: componentTheme.borderColorTransparent
341
+ },
342
+ primary: {
343
+ borderColor: componentTheme.borderColorPrimary
344
+ },
345
+ secondary: {
346
+ borderColor: componentTheme.borderColorSecondary
347
+ },
348
+ brand: {
349
+ borderColor: componentTheme.borderColorBrand
350
+ },
351
+ info: {
352
+ borderColor: componentTheme.borderColorInfo
353
+ },
354
+ success: {
355
+ borderColor: componentTheme.borderColorSuccess
356
+ },
357
+ warning: {
358
+ borderColor: componentTheme.borderColorWarning
359
+ },
360
+ alert: {
361
+ borderColor: componentTheme.borderColorAlert
362
+ },
363
+ danger: {
364
+ borderColor: componentTheme.borderColorDanger
365
+ }
366
+ }
367
+
368
+ const backgroundColorVariants = {
369
+ transparent: {
370
+ color: componentTheme.color,
371
+ background: 'none'
372
+ },
373
+ primary: {
374
+ color: componentTheme.color,
375
+ background: componentTheme.backgroundPrimary
376
+ },
377
+ secondary: {
378
+ color: componentTheme.color,
379
+ background: componentTheme.backgroundSecondary
380
+ },
381
+ ['primary-inverse']: {
382
+ color: componentTheme.colorPrimaryInverse,
383
+ background: componentTheme.backgroundPrimaryInverse
384
+ },
385
+ brand: {
386
+ color: componentTheme.colorPrimaryInverse,
387
+ background: componentTheme.backgroundBrand
388
+ },
389
+ info: {
390
+ color: componentTheme.colorPrimaryInverse,
391
+ background: componentTheme.backgroundInfo
392
+ },
393
+ alert: {
394
+ color: componentTheme.colorPrimaryInverse,
395
+ background: componentTheme.backgroundAlert
396
+ },
397
+ success: {
398
+ color: componentTheme.colorPrimaryInverse,
399
+ background: componentTheme.backgroundSuccess
400
+ },
401
+ danger: {
402
+ color: componentTheme.colorPrimaryInverse,
403
+ background: componentTheme.backgroundDanger
404
+ },
405
+ warning: {
406
+ color: componentTheme.colorPrimaryInverse,
407
+ background: componentTheme.backgroundWarning
408
+ }
409
+ }
410
+
411
+ const stackingVariants = {
412
+ topmost: {
413
+ zIndex: componentTheme.stackingTopmost
414
+ },
415
+ above: {
416
+ zIndex: componentTheme.stackingAbove
417
+ },
418
+ resting: {},
419
+ below: {
420
+ zIndex: componentTheme.stackingBelow
421
+ },
422
+ deepest: {
423
+ zIndex: componentTheme.stackingDeepest
424
+ }
425
+ }
426
+
427
+ const shadowVariants = {
428
+ topmost: {
429
+ boxShadow: boxShadowObjectsToCSSString(sharedTokens.boxShadow.elevation4)
430
+ },
431
+ resting: {
432
+ boxShadow: boxShadowObjectsToCSSString(sharedTokens.boxShadow.elevation1)
433
+ },
434
+ above: {
435
+ boxShadow: boxShadowObjectsToCSSString(sharedTokens.boxShadow.elevation2)
436
+ },
437
+ none: {}
438
+ }
439
+
440
+ const {
441
+ focusColor,
442
+ focusPosition,
443
+ shouldAnimateFocus,
444
+ withFocusOutline,
445
+ focusWithin
446
+ } = props
447
+ const focusOutline = calcFocusOutlineStyles(sharedTokens.focusOutline, {
448
+ focusColor,
449
+ focusPosition,
450
+ shouldAnimateFocus,
451
+ focusWithin,
452
+ withFocusOutline
453
+ })
454
+ return {
455
+ view: {
456
+ label: 'view',
457
+ boxSizing: 'border-box',
458
+ fontFamily: componentTheme.fontFamily,
459
+ maxWidth: '100%',
460
+ overflow: 'visible',
461
+ ...displayVariants[display!],
462
+ ...(background && backgroundColorVariants[background]),
463
+ ...(stacking && stackingVariants[stacking]),
464
+ ...(shadow && shadowVariants[shadow]),
465
+ ...(textAlign && textAlignVariants[textAlign]),
466
+ overflowX: overflowX && overflowX !== 'visible' ? overflowX : '',
467
+ overflowY: overflowY && overflowY !== 'visible' ? overflowY : '',
468
+ position: position !== 'static' ? position : '',
469
+ overscrollBehavior: overscrollBehavior ? overscrollBehavior : 'auto',
470
+ ...(withVisualDebug
471
+ ? {
472
+ boxShadow: `0 0 0 1px ${componentTheme.debugOutlineColor}`
473
+ }
474
+ : {}),
475
+ ...(withBorder(props)
476
+ ? {
477
+ borderStyle: componentTheme.borderStyle,
478
+ ...(borderColorVariants[borderColor!] || {
479
+ borderColor: borderColor
480
+ })
481
+ }
482
+ : {}),
483
+ ...borderStyle
484
+ },
485
+ inlineStyles: {
486
+ //every '&' symbol will add another class to the rule, so it will be stronger
487
+ //making an accidental override less likely
488
+ '&&&&&&&&&&': {
489
+ ...offsetStyle,
490
+ ...focusOutline,
491
+ width,
492
+ height,
493
+ minWidth,
494
+ minHeight,
495
+ maxWidth,
496
+ maxHeight,
497
+ ...getStyleProps(props),
498
+ ...spacingStyle
499
+ }
500
+ }
501
+ }
502
+ }
503
+ export default generateStyle
@@ -0,0 +1,29 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ export { ContextView } from '../ContextView/v1'
26
+ export { View } from '../View/v1'
27
+
28
+ export type { ContextViewProps } from '../ContextView/v1/props'
29
+ export type { ViewProps, ViewOwnProps } from '../View/v1/props'
@@ -0,0 +1,29 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ export { ContextView } from '../ContextView/v2'
26
+ export { View } from '../View/v2'
27
+
28
+ export type { ContextViewProps } from '../ContextView/v2/props'
29
+ export type { ViewProps, ViewOwnProps } from '../View/v2/props'