@telus-uds/components-base 4.0.0-alpha.2 → 4.0.0-beta.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 (99) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/lib/cjs/Autocomplete/Autocomplete.js +13 -1
  3. package/lib/cjs/Autocomplete/constants.js +1 -1
  4. package/lib/cjs/Listbox/ListboxOverlay.js +7 -1
  5. package/lib/cjs/MultiSelectFilter/ModalOverlay.js +7 -1
  6. package/lib/cjs/MultiSelectFilter/MultiSelectFilter.js +2 -28
  7. package/lib/cjs/TextInput/TextInputBase.js +2 -1
  8. package/lib/cjs/utils/useOverlaidPosition.js +83 -42
  9. package/lib/esm/Autocomplete/Autocomplete.js +13 -1
  10. package/lib/esm/Autocomplete/constants.js +1 -1
  11. package/lib/esm/Listbox/ListboxOverlay.js +7 -1
  12. package/lib/esm/MultiSelectFilter/ModalOverlay.js +8 -2
  13. package/lib/esm/MultiSelectFilter/MultiSelectFilter.js +2 -28
  14. package/lib/esm/TextInput/TextInputBase.js +2 -1
  15. package/lib/esm/utils/useOverlaidPosition.js +83 -42
  16. package/lib/package.json +1 -1
  17. package/package.json +1 -1
  18. package/src/Autocomplete/Autocomplete.jsx +11 -2
  19. package/src/Autocomplete/constants.js +1 -1
  20. package/src/Listbox/ListboxOverlay.jsx +6 -2
  21. package/src/MultiSelectFilter/ModalOverlay.jsx +9 -3
  22. package/src/MultiSelectFilter/MultiSelectFilter.jsx +1 -31
  23. package/src/TextInput/TextInputBase.jsx +2 -1
  24. package/src/utils/useOverlaidPosition.js +84 -34
  25. package/types/A11yInfoProvider.d.ts +9 -0
  26. package/types/A11yText.d.ts +13 -0
  27. package/types/ActionCard.d.ts +19 -0
  28. package/types/ActivityIndicator.d.ts +13 -0
  29. package/types/Autocomplete.d.ts +27 -0
  30. package/types/Badge.d.ts +15 -4
  31. package/types/BaseProvider.d.ts +26 -0
  32. package/types/Box.d.ts +13 -3
  33. package/types/Button.d.ts +35 -0
  34. package/types/Card.d.ts +19 -0
  35. package/types/CardGroup.d.ts +23 -0
  36. package/types/Carousel.d.ts +25 -0
  37. package/types/Checkbox.d.ts +15 -2
  38. package/types/CheckboxCard.d.ts +20 -0
  39. package/types/CheckboxCardGroup.d.ts +10 -4
  40. package/types/ChevronLink.d.ts +9 -2
  41. package/types/ColourToggle.d.ts +16 -0
  42. package/types/Common.d.ts +7 -3
  43. package/types/Divider.d.ts +13 -1
  44. package/types/DownloadApp.d.ts +19 -0
  45. package/types/ExpandCollapse.d.ts +16 -9
  46. package/types/ExpandCollapseMini.d.ts +16 -0
  47. package/types/Feedback.d.ts +16 -0
  48. package/types/Fieldset.d.ts +17 -0
  49. package/types/FileUpload.d.ts +6 -0
  50. package/types/FlexGrid.d.ts +57 -0
  51. package/types/Footnote.d.ts +18 -0
  52. package/types/HorizontalScroll.d.ts +15 -0
  53. package/types/HorizontalScrollButton.d.ts +17 -1
  54. package/types/Icon.d.ts +13 -2
  55. package/types/IconButton.d.ts +19 -0
  56. package/types/InputLabel.d.ts +12 -0
  57. package/types/InputSupports.d.ts +19 -0
  58. package/types/Link.d.ts +20 -4
  59. package/types/List.d.ts +11 -4
  60. package/types/Listbox.d.ts +13 -3
  61. package/types/Modal.d.ts +25 -0
  62. package/types/MultiSelectFilter.d.ts +24 -0
  63. package/types/Notification.d.ts +19 -0
  64. package/types/OrderedList.d.ts +17 -0
  65. package/types/Pagination.d.ts +25 -0
  66. package/types/Portal.d.ts +5 -1
  67. package/types/PriceLockup.d.ts +28 -0
  68. package/types/ProductCard.d.ts +20 -0
  69. package/types/ProductCardGroup.d.ts +21 -0
  70. package/types/Progress.d.ts +22 -0
  71. package/types/QuickLinks.d.ts +27 -0
  72. package/types/QuickLinksFeature.d.ts +27 -0
  73. package/types/Radio.d.ts +22 -0
  74. package/types/RadioCard.d.ts +21 -0
  75. package/types/Responsive.d.ts +14 -0
  76. package/types/Scroll.d.ts +2 -2
  77. package/types/Search.d.ts +15 -2
  78. package/types/Select.d.ts +12 -4
  79. package/types/SideNav.d.ts +38 -0
  80. package/types/Skeleton.d.ts +17 -0
  81. package/types/SkipLink.d.ts +14 -0
  82. package/types/Spacer.d.ts +8 -1
  83. package/types/StackView.d.ts +8 -2
  84. package/types/Status.d.ts +2 -3
  85. package/types/StepTracker.d.ts +16 -0
  86. package/types/TabBar.d.ts +25 -0
  87. package/types/Tabs.d.ts +12 -3
  88. package/types/Tags.d.ts +24 -0
  89. package/types/TextButton.d.ts +11 -4
  90. package/types/TextInput.d.ts +38 -0
  91. package/types/ThemeProvider.d.ts +29 -0
  92. package/types/Timeline.d.ts +16 -0
  93. package/types/ToggleSwitch.d.ts +11 -2
  94. package/types/ToolTip.d.ts +7 -3
  95. package/types/TooltipButton.d.ts +20 -0
  96. package/types/Typography.d.ts +8 -2
  97. package/types/Validator.d.ts +16 -0
  98. package/types/ViewportProvider.d.ts +12 -0
  99. package/types/index.d.ts +197 -50
@@ -0,0 +1,38 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export interface SideNavItemProps {
4
+ children?: ReactNode
5
+ label?: string
6
+ href?: string
7
+ onPress?: () => void
8
+ id?: string
9
+ tokens?: Record<string, string | number | boolean | object>
10
+ }
11
+
12
+ export interface SideNavItemsGroupProps {
13
+ children?: ReactNode
14
+ label: string
15
+ groupId?: string
16
+ onToggle?: () => void
17
+ openGroups?: Array<string | number>
18
+ isActive?: boolean
19
+ variant?: Record<string, string | number | boolean | undefined>
20
+ tokens?: Record<string, string | number | boolean | object>
21
+ }
22
+
23
+ export interface SideNavProps {
24
+ children?: ReactNode
25
+ tokens?: Record<string, string | number | boolean | object>
26
+ variant?: Record<string, string | number | boolean | undefined>
27
+ openGroups?: Array<string | number>
28
+ onToggle?: (groupId: string) => void
29
+ testID?: string
30
+ dataSet?: Record<string, any>
31
+ }
32
+
33
+ declare const SideNav: ComponentType<SideNavProps> & {
34
+ ItemsGroup: ComponentType<SideNavItemsGroupProps>
35
+ Item: ComponentType<SideNavItemProps>
36
+ }
37
+
38
+ export { SideNav }
@@ -0,0 +1,17 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface SkeletonProps {
4
+ tokens?: Record<string, string | number | boolean | object>
5
+ variant?: Record<string, string | number | boolean | undefined>
6
+ sizeIndex?: number | Record<string, number>
7
+ sizePixels?: number | Record<string, number>
8
+ characters?: number
9
+ lines?: number
10
+ shape?: 'line' | 'circle' | 'square'
11
+ testID?: string
12
+ dataSet?: Record<string, any>
13
+ }
14
+
15
+ declare const Skeleton: ComponentType<SkeletonProps>
16
+
17
+ export { Skeleton }
@@ -0,0 +1,14 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export interface SkipLinkProps {
4
+ children?: ReactNode
5
+ href?: string
6
+ tokens?: Record<string, string | number | boolean | object>
7
+ variant?: Record<string, string | number | boolean | undefined>
8
+ testID?: string
9
+ dataSet?: Record<string, any>
10
+ }
11
+
12
+ declare const SkipLink: ComponentType<SkipLinkProps>
13
+
14
+ export { SkipLink }
package/types/Spacer.d.ts CHANGED
@@ -1,5 +1,12 @@
1
+ import type { ComponentType } from 'react'
2
+
1
3
  export interface SpacerProps {
2
- space?: number
4
+ space?: number | Record<string, number>
3
5
  direction?: 'column' | 'row'
4
6
  testID?: string
7
+ dataSet?: Record<string, any>
5
8
  }
9
+
10
+ declare const Spacer: ComponentType<SpacerProps>
11
+
12
+ export { Spacer }
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react'
1
+ import type { ComponentType, ReactNode } from 'react'
2
2
  import {
3
3
  Direction,
4
4
  FlexAlign,
@@ -9,7 +9,7 @@ import {
9
9
  } from './Common'
10
10
  import { DividerProps } from './Divider'
11
11
 
12
- type StackViewTokens = {
12
+ export type StackViewTokens = {
13
13
  alignItems?: FlexAlign
14
14
  justifyContent?: FlexJustify
15
15
  flexGrow?: number
@@ -25,4 +25,10 @@ export interface StackViewProps {
25
25
  tag?: SemanticTag
26
26
  children: ReactNode
27
27
  testID?: string
28
+ dataSet?: Record<string, any>
29
+ accessibilityRole?: string
28
30
  }
31
+
32
+ declare const StackView: ComponentType<StackViewProps>
33
+
34
+ export { StackView }
package/types/Status.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { Variant } from '../../components-web/types/common'
2
- import { ComponentType, ReactNode } from 'react'
3
-
1
+ import type { ComponentType, ReactNode } from 'react'
2
+ import { Variant } from './Common'
4
3
  import { IconProps } from './Icon'
5
4
 
6
5
  export type StatusTokensProps = {
@@ -0,0 +1,16 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface StepTrackerProps {
4
+ current?: number
5
+ copy?: 'en' | 'fr' | Record<string, any>
6
+ dictionary?: Record<string, any>
7
+ steps?: string[]
8
+ tokens?: Record<string, string | number | boolean | object>
9
+ variant?: Record<string, string | number | boolean | undefined>
10
+ testID?: string
11
+ dataSet?: Record<string, any>
12
+ }
13
+
14
+ declare const StepTracker: ComponentType<StepTrackerProps>
15
+
16
+ export { StepTracker }
@@ -0,0 +1,25 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export interface TabBarItem {
4
+ id: string
5
+ icon?: ReactNode
6
+ iconActive?: ReactNode
7
+ label: string
8
+ href?: string
9
+ tokens?: Record<string, string | number | boolean | object>
10
+ }
11
+
12
+ export interface TabBarProps {
13
+ items: TabBarItem[]
14
+ initiallySelectedItem?: number
15
+ onChange?: (id: string) => void
16
+ variant?: Record<string, string | number | boolean | undefined>
17
+ tokens?: Record<string, string | number | boolean | object>
18
+ accessibilityLabel?: string
19
+ testID?: string
20
+ dataSet?: Record<string, any>
21
+ }
22
+
23
+ declare const TabBar: ComponentType<TabBarProps>
24
+
25
+ export { TabBar }
package/types/Tabs.d.ts CHANGED
@@ -1,15 +1,18 @@
1
+ import type { ComponentType, ElementType } from 'react'
1
2
  import { Size } from './Common'
2
3
  import { IconProps } from './Icon'
3
4
  import { TypographyVariants, TypographyTokens } from './Typography'
4
5
  import { HorizontalScrollButtonTokens } from './HorizontalScrollButton'
5
6
 
6
- type TabsItem = {
7
+ export type TabsItem = {
7
8
  label: string
8
9
  href: string
9
10
  id: string
11
+ linkRouter?: ElementType
12
+ linkRouterProps?: Record<string, any>
10
13
  }
11
14
 
12
- type TabsVariant = {
15
+ export type TabsVariant = {
13
16
  equalWidth?: string
14
17
  inverse?: boolean
15
18
  }
@@ -19,9 +22,11 @@ export interface TabsProps {
19
22
  value?: string
20
23
  initialValue?: string
21
24
  onChange?: () => void
22
- itemTokens?: TabsItem
25
+ itemTokens?: Partial<TabsTokens>
23
26
  scrollButtonTokens?: HorizontalScrollButtonTokens
24
27
  variant?: TabsVariant
28
+ LinkRouter?: ElementType
29
+ linkRouterProps?: Record<string, any>
25
30
  }
26
31
 
27
32
  export type TabsTokens = {
@@ -44,3 +49,7 @@ export interface TabSelectorProps {
44
49
  testID?: string
45
50
  selectedTestID?: string
46
51
  }
52
+
53
+ declare const Tabs: ComponentType<TabsProps>
54
+
55
+ export { Tabs }
@@ -0,0 +1,24 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface TagItem {
4
+ id?: string
5
+ label: string
6
+ accessibilityLabel?: string
7
+ defaultChecked?: boolean
8
+ checked?: boolean
9
+ [key: string]: any
10
+ }
11
+
12
+ export interface TagsProps {
13
+ items: TagItem[]
14
+ maxValues?: number
15
+ tokens?: Record<string, string | number | boolean | object>
16
+ variant?: Record<string, string | number | boolean | undefined>
17
+ onChange?: (selectedIds: string[]) => void
18
+ testID?: string
19
+ dataSet?: Record<string, any>
20
+ }
21
+
22
+ declare const Tags: ComponentType<TagsProps>
23
+
24
+ export { Tags }
@@ -1,11 +1,18 @@
1
- import React from 'react'
1
+ import type { ComponentType, ReactNode } from 'react'
2
2
  import { LinkTokens, LinkAndTextButtonVariants } from './Link'
3
3
 
4
4
  export interface TextButtonProps {
5
- onPress: () => void
6
- accessibilityLabel: string
7
- children: string | React.ReactNode
5
+ onPress?: () => void
6
+ accessibilityLabel?: string
7
+ children: string | ReactNode
8
8
  variant?: LinkAndTextButtonVariants
9
9
  tokens?: LinkTokens
10
10
  testID?: string
11
+ href?: string
12
+ onPressIn?: () => void
13
+ onPressOut?: () => void
11
14
  }
15
+
16
+ declare const TextButton: ComponentType<TextButtonProps>
17
+
18
+ export { TextButton }
@@ -0,0 +1,38 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface TextInputProps {
4
+ value?: string
5
+ type?: string
6
+ initialValue?: string
7
+ inactive?: boolean
8
+ readOnly?: boolean
9
+ onChange?: (value: string, event?: any) => void
10
+ label?: string
11
+ hint?: string
12
+ hintPosition?: 'inline' | 'below'
13
+ feedback?: string
14
+ validation?: 'error' | 'success'
15
+ tooltip?: string | Record<string, any>
16
+ copy?: 'en' | 'fr'
17
+ placeholder?: string
18
+ id?: string
19
+ name?: string
20
+ maxLength?: number
21
+ multiline?: boolean
22
+ numberOfLines?: number
23
+ autoComplete?: string
24
+ autoFocus?: boolean
25
+ keyboardType?: string
26
+ returnKeyType?: string
27
+ secureTextEntry?: boolean
28
+ tokens?: Record<string, string | number | boolean | object>
29
+ variant?: Record<string, string | number | boolean | undefined>
30
+ testID?: string
31
+ dataSet?: Record<string, any>
32
+ accessibilityLabel?: string
33
+ nativeID?: string
34
+ }
35
+
36
+ declare const TextInput: ComponentType<TextInputProps>
37
+
38
+ export { TextInput }
@@ -0,0 +1,29 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export interface ThemeMetadata {
4
+ themeTokensVersion: string
5
+ name: string
6
+ }
7
+
8
+ export interface ThemeOptions {
9
+ forceAbsoluteFontSizing?: boolean
10
+ contentMaxWidth?: number
11
+ forceZIndex?: boolean
12
+ enableHelmetSSR?: boolean
13
+ enableMediaQueryStyleSheet?: boolean
14
+ }
15
+
16
+ export interface Theme {
17
+ metadata: ThemeMetadata
18
+ [key: string]: any
19
+ }
20
+
21
+ export interface ThemeProviderProps {
22
+ children: ReactNode
23
+ defaultTheme: Theme
24
+ options?: ThemeOptions
25
+ }
26
+
27
+ declare const ThemeProvider: ComponentType<ThemeProviderProps>
28
+
29
+ export { ThemeProvider }
@@ -0,0 +1,16 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export interface TimelineProps {
4
+ children: ReactNode[]
5
+ accessibilityLabel: string
6
+ tokens?: Record<string, string | number | boolean | object>
7
+ variant?: Record<string, string | number | boolean | undefined>
8
+ tag?: string
9
+ childrenTag?: string
10
+ testID?: string
11
+ dataSet?: Record<string, any>
12
+ }
13
+
14
+ declare const Timeline: ComponentType<TimelineProps>
15
+
16
+ export { Timeline }
@@ -1,6 +1,7 @@
1
+ import type { ComponentType } from 'react'
1
2
  import { CopyType } from './Common'
2
3
 
3
- type ToggleSwitchTokens = {
4
+ export type ToggleSwitchTokens = {
4
5
  borderColor?: string
5
6
  borderWidth?: number
6
7
  borderRadius?: number
@@ -17,7 +18,7 @@ type ToggleSwitchTokens = {
17
18
  shadow?: string
18
19
  alignSelf?: string
19
20
  space?: number
20
- icon?: React.ReactNode
21
+ icon?: any
21
22
  trackHeight?: number
22
23
  outerBorderGapButton?: number
23
24
  width?: number
@@ -52,4 +53,12 @@ export interface ToggleSwitchProps {
52
53
  testID?: string
53
54
  tokens?: ToggleSwitchTokens
54
55
  togglePosition?: 'start' | 'end'
56
+ pointerEvents?: 'all' | 'none' | 'box-only' | 'box-none'
57
+ onLayout?: (event: any) => void
58
+ nativeID?: string
59
+ dataSet?: Record<string, any>
55
60
  }
61
+
62
+ declare const ToggleSwitch: ComponentType<ToggleSwitchProps>
63
+
64
+ export { ToggleSwitch }
@@ -1,7 +1,7 @@
1
- import { ReactNode } from 'react'
1
+ import type { ComponentType, ReactNode } from 'react'
2
2
  import { CopyType, Position } from './Common'
3
3
 
4
- type TooltipTokens = {
4
+ export type TooltipTokens = {
5
5
  backgroundColor?: string
6
6
  paddingTop?: number
7
7
  paddingBottom?: number
@@ -19,7 +19,7 @@ type TooltipTokens = {
19
19
  arrowOffset?: number
20
20
  }
21
21
 
22
- type TooltipVariants = {
22
+ export type TooltipVariants = {
23
23
  inverse?: boolean
24
24
  }
25
25
 
@@ -38,3 +38,7 @@ export interface TooltipProps {
38
38
  accessible?: boolean
39
39
  testID?: string
40
40
  }
41
+
42
+ declare const Tooltip: ComponentType<TooltipProps>
43
+
44
+ export { Tooltip }
@@ -0,0 +1,20 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface TooltipButtonPressableState {
4
+ pressed: boolean
5
+ hover: boolean
6
+ focus: boolean
7
+ }
8
+
9
+ export interface TooltipButtonProps {
10
+ pressableState?: TooltipButtonPressableState
11
+ tokens?: Record<string, string | number | boolean | object>
12
+ variant?: Record<string, string | number | boolean | undefined>
13
+ testID?: string
14
+ dataSet?: Record<string, any>
15
+ accessibilityLabel?: string
16
+ }
17
+
18
+ declare const TooltipButton: ComponentType<TooltipButtonProps>
19
+
20
+ export { TooltipButton }
@@ -1,4 +1,5 @@
1
- import { LetterSpacing, TextTransform } from './Common'
1
+ import type { ComponentType, ReactNode } from 'react'
2
+ import { LetterSpacing, TextTransform, tagType, headingType, alignType } from './Common'
2
3
 
3
4
  export interface TypographyProps {
4
5
  tag?: tagType | string
@@ -10,7 +11,8 @@ export interface TypographyProps {
10
11
  heading?: headingType | string
11
12
  accessible?: boolean
12
13
  accessibilityLabel?: string
13
- children?: React.ReactNode
14
+ children?: ReactNode
15
+ dataSet?: Record<string, any>
14
16
  }
15
17
 
16
18
  export type TypographyVariants = {
@@ -38,3 +40,7 @@ export type TypographyTokens = {
38
40
  fontScaleCap?: number
39
41
  letterSpacing?: LetterSpacing
40
42
  }
43
+
44
+ declare const Typography: ComponentType<TypographyProps>
45
+
46
+ export { Typography }
@@ -0,0 +1,16 @@
1
+ import type { ComponentType } from 'react'
2
+
3
+ export interface ValidatorProps {
4
+ value?: string
5
+ inactive?: boolean
6
+ mask?: string
7
+ onChange?: (value: string) => void
8
+ tokens?: Record<string, string | number | boolean | object>
9
+ variant?: Record<string, string | number | boolean | undefined>
10
+ testID?: string
11
+ dataSet?: Record<string, any>
12
+ }
13
+
14
+ declare const Validator: ComponentType<ValidatorProps>
15
+
16
+ export { Validator }
@@ -0,0 +1,12 @@
1
+ import type { ComponentType, ReactNode } from 'react'
2
+
3
+ export type ViewportKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
4
+
5
+ export interface ViewportProviderProps {
6
+ children: ReactNode
7
+ defaultViewport?: ViewportKey
8
+ }
9
+
10
+ declare const ViewportProvider: ComponentType<ViewportProviderProps>
11
+
12
+ export { ViewportProvider }