@veracity/vui 2.17.1 → 2.17.2-beta.1

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 (110) hide show
  1. package/dist/cjs/footer/footer.js +1 -1
  2. package/dist/cjs/index.d.ts +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/stepIndicator/index.d.ts.map +1 -0
  6. package/dist/cjs/stepIndicator/stepIndicator.d.ts.map +1 -0
  7. package/dist/cjs/{step → stepIndicator}/stepIndicator.js +2 -2
  8. package/dist/cjs/stepIndicator/stepIndicatorTypes.d.ts.map +1 -0
  9. package/dist/cjs/stepIndicator/theme.d.ts.map +1 -0
  10. package/dist/cjs/stepperHorizontal/consts.d.ts +3 -7
  11. package/dist/cjs/stepperHorizontal/consts.d.ts.map +1 -1
  12. package/dist/cjs/stepperHorizontal/consts.js +3 -1
  13. package/dist/cjs/stepperHorizontal/stepHorizontal.js +2 -2
  14. package/dist/cjs/stepperHorizontal/stepHorizontalTail.d.ts.map +1 -1
  15. package/dist/cjs/stepperHorizontal/stepHorizontalTail.js +1 -1
  16. package/dist/cjs/stepperHorizontal/stepperHorizontalBase.d.ts.map +1 -1
  17. package/dist/cjs/stepperHorizontal/stepperHorizontalBase.js +9 -0
  18. package/dist/cjs/stepperHorizontal/stepperHorizontalTypes.d.ts +1 -1
  19. package/dist/cjs/stepperHorizontal/stepperHorizontalTypes.d.ts.map +1 -1
  20. package/dist/cjs/stepperVertical/stepVertical.js +2 -2
  21. package/dist/cjs/stepperVertical/stepperVerticalTypes.d.ts +1 -1
  22. package/dist/cjs/stepperVertical/stepperVerticalTypes.d.ts.map +1 -1
  23. package/dist/cjs/tabs/tab.d.ts.map +1 -1
  24. package/dist/cjs/tabs/tabs.d.ts +5 -3
  25. package/dist/cjs/tabs/tabs.d.ts.map +1 -1
  26. package/dist/cjs/tabs/tabs.js +19 -15
  27. package/dist/cjs/tabs/tabs.types.d.ts +12 -6
  28. package/dist/cjs/tabs/tabs.types.d.ts.map +1 -1
  29. package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
  30. package/dist/cjs/tabs/tabsNavBar.js +3 -3
  31. package/dist/cjs/tabs/useTabsState.d.ts +4 -4
  32. package/dist/cjs/tabs/useTabsState.d.ts.map +1 -1
  33. package/dist/cjs/tabs/useTabsState.js +2 -2
  34. package/dist/cjs/theme/components.js +1 -1
  35. package/dist/esm/footer/footer.js +1 -1
  36. package/dist/esm/index.d.ts +1 -1
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +1 -1
  39. package/dist/esm/stepIndicator/index.d.ts.map +1 -0
  40. package/dist/esm/stepIndicator/stepIndicator.d.ts.map +1 -0
  41. package/dist/esm/{step → stepIndicator}/stepIndicator.js +2 -2
  42. package/dist/esm/stepIndicator/stepIndicatorTypes.d.ts.map +1 -0
  43. package/dist/esm/stepIndicator/theme.d.ts.map +1 -0
  44. package/dist/esm/stepperHorizontal/consts.d.ts +3 -7
  45. package/dist/esm/stepperHorizontal/consts.d.ts.map +1 -1
  46. package/dist/esm/stepperHorizontal/consts.js +2 -0
  47. package/dist/esm/stepperHorizontal/stepHorizontal.js +2 -2
  48. package/dist/esm/stepperHorizontal/stepHorizontalTail.d.ts.map +1 -1
  49. package/dist/esm/stepperHorizontal/stepHorizontalTail.js +2 -2
  50. package/dist/esm/stepperHorizontal/stepperHorizontalBase.d.ts.map +1 -1
  51. package/dist/esm/stepperHorizontal/stepperHorizontalBase.js +10 -1
  52. package/dist/esm/stepperHorizontal/stepperHorizontalTypes.d.ts +1 -1
  53. package/dist/esm/stepperHorizontal/stepperHorizontalTypes.d.ts.map +1 -1
  54. package/dist/esm/stepperVertical/stepVertical.js +1 -1
  55. package/dist/esm/stepperVertical/stepperVerticalTypes.d.ts +1 -1
  56. package/dist/esm/stepperVertical/stepperVerticalTypes.d.ts.map +1 -1
  57. package/dist/esm/tabs/tab.d.ts.map +1 -1
  58. package/dist/esm/tabs/tabs.d.ts +5 -3
  59. package/dist/esm/tabs/tabs.d.ts.map +1 -1
  60. package/dist/esm/tabs/tabs.js +19 -15
  61. package/dist/esm/tabs/tabs.types.d.ts +12 -6
  62. package/dist/esm/tabs/tabs.types.d.ts.map +1 -1
  63. package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
  64. package/dist/esm/tabs/tabsNavBar.js +3 -3
  65. package/dist/esm/tabs/useTabsState.d.ts +4 -4
  66. package/dist/esm/tabs/useTabsState.d.ts.map +1 -1
  67. package/dist/esm/tabs/useTabsState.js +2 -2
  68. package/dist/esm/theme/components.js +1 -1
  69. package/package.json +1 -1
  70. package/src/footer/footer.tsx +1 -1
  71. package/src/index.ts +1 -1
  72. package/src/{step → stepIndicator}/stepIndicator.tsx +12 -8
  73. package/src/stepperHorizontal/consts.ts +5 -1
  74. package/src/stepperHorizontal/stepHorizontal.tsx +2 -2
  75. package/src/stepperHorizontal/stepHorizontalTail.tsx +3 -5
  76. package/src/stepperHorizontal/stepperHorizontalBase.ts +12 -1
  77. package/src/stepperHorizontal/stepperHorizontalTypes.ts +1 -1
  78. package/src/stepperVertical/stepVertical.tsx +1 -1
  79. package/src/stepperVertical/stepperVerticalTypes.ts +1 -1
  80. package/src/tabs/tab.tsx +0 -2
  81. package/src/tabs/tabs.tsx +20 -16
  82. package/src/tabs/tabs.types.ts +13 -7
  83. package/src/tabs/tabsNavBar.tsx +11 -5
  84. package/src/tabs/useTabsState.ts +4 -4
  85. package/src/theme/components.ts +1 -1
  86. package/dist/cjs/step/index.d.ts.map +0 -1
  87. package/dist/cjs/step/stepIndicator.d.ts.map +0 -1
  88. package/dist/cjs/step/stepIndicatorTypes.d.ts.map +0 -1
  89. package/dist/cjs/step/theme.d.ts.map +0 -1
  90. package/dist/esm/step/index.d.ts.map +0 -1
  91. package/dist/esm/step/stepIndicator.d.ts.map +0 -1
  92. package/dist/esm/step/stepIndicatorTypes.d.ts.map +0 -1
  93. package/dist/esm/step/theme.d.ts.map +0 -1
  94. /package/dist/cjs/{step → stepIndicator}/index.d.ts +0 -0
  95. /package/dist/cjs/{step → stepIndicator}/index.js +0 -0
  96. /package/dist/cjs/{step → stepIndicator}/stepIndicator.d.ts +0 -0
  97. /package/dist/cjs/{step → stepIndicator}/stepIndicatorTypes.d.ts +0 -0
  98. /package/dist/cjs/{step → stepIndicator}/stepIndicatorTypes.js +0 -0
  99. /package/dist/cjs/{step → stepIndicator}/theme.d.ts +0 -0
  100. /package/dist/cjs/{step → stepIndicator}/theme.js +0 -0
  101. /package/dist/esm/{step → stepIndicator}/index.d.ts +0 -0
  102. /package/dist/esm/{step → stepIndicator}/index.js +0 -0
  103. /package/dist/esm/{step → stepIndicator}/stepIndicator.d.ts +0 -0
  104. /package/dist/esm/{step → stepIndicator}/stepIndicatorTypes.d.ts +0 -0
  105. /package/dist/esm/{step → stepIndicator}/stepIndicatorTypes.js +0 -0
  106. /package/dist/esm/{step → stepIndicator}/theme.d.ts +0 -0
  107. /package/dist/esm/{step → stepIndicator}/theme.js +0 -0
  108. /package/src/{step → stepIndicator}/index.ts +0 -0
  109. /package/src/{step → stepIndicator}/stepIndicatorTypes.ts +0 -0
  110. /package/src/{step → stepIndicator}/theme.ts +0 -0
package/src/tabs/tabs.tsx CHANGED
@@ -4,7 +4,7 @@ import { styled, useStyleConfig, vui } from '../core'
4
4
  import { P } from '../p'
5
5
  import { cs } from '../utils'
6
6
  import Tab from './tab'
7
- import { TabProps, TabsProps } from './tabs.types'
7
+ import { TabId, TabIndexProps, TabProps, TabsProps } from './tabs.types'
8
8
  import TabsNavBar from './tabsNavBar'
9
9
  import { useTabsState } from './useTabsState'
10
10
 
@@ -16,22 +16,24 @@ export const TabsBase = styled.divBox<TabsProps>`
16
16
  * Implements Tabs navigation to switch between views. Implements Tabs navigation to switch between views. **Do not use as a top menu in a page!**
17
17
  */
18
18
  export const Tabs = vui<'div', TabsProps>((props, ref) => {
19
- const { activeTabId, showBorder = true, children, className, size, onTabClick, ...rest } = props
19
+ const { actions, activeTabId, showBorder = true, children, className, size, onTabClick, ...rest } = props
20
20
  const styles = useStyleConfig('Tabs', props)
21
21
  const { tabs, setTabs, activeTabIndex, setActiveTabIndex, animationDirection, setAnimationDirection } = useTabsState(
22
22
  'fadeIn',
23
- activeTabId
23
+ 0
24
24
  )
25
25
 
26
26
  useEffect(() => {
27
- const t: TabProps[] = []
27
+ const _tabs: TabIndexProps[] = []
28
28
  if (children) {
29
29
  ;(Children.toArray(children) as ReactElement[]).forEach((child: ReactElement<TabProps>, index: number) => {
30
30
  if (child?.props?.title)
31
- t.push({
32
- id: index,
31
+ _tabs.push({
32
+ id: child.props.id,
33
+ index: index,
33
34
  title: child.props.title,
34
35
  icon: child.props.icon,
36
+ className: child.props.className,
35
37
  children: child.props.children,
36
38
  disabled: child.props.disabled,
37
39
  onClick: child.props.onClick,
@@ -39,18 +41,19 @@ export const Tabs = vui<'div', TabsProps>((props, ref) => {
39
41
  })
40
42
  })
41
43
  }
42
- setTabs(t)
43
- if (activeTabId !== undefined && tabs?.[activeTabId]) {
44
- setActiveTabIndex(activeTabId)
44
+ setTabs(_tabs)
45
+ if (activeTabId !== undefined) {
46
+ const tab = _tabs.find((t: TabIndexProps) => t?.id === activeTabId || t?.index === activeTabId)
47
+ if (tab?.index) setActiveTabIndex(tab.index)
45
48
  }
46
49
  }, [children, activeTabId])
47
50
 
48
- const onNavItemClick = (id: number, e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {
49
- const tab = tabs.find(t => t.id === id)
50
- if (tab?.children !== undefined) {
51
- setAnimationDirection(id < activeTabIndex ? 'fadeLeft' : 'fadeRight')
52
- setActiveTabIndex(id)
53
- onTabClick?.(id)
51
+ const onNavItemClick = (tabIndex: number, e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {
52
+ const tab = tabs.find(t => t.index === tabIndex)
53
+ if (tab?.children !== undefined && tab?.index !== undefined) {
54
+ setAnimationDirection(tab.index < activeTabIndex ? 'fadeLeft' : 'fadeRight')
55
+ setActiveTabIndex(tab.index)
56
+ onTabClick?.(tab.id || tab.index)
54
57
  }
55
58
  tab?.onClick?.(e)
56
59
  }
@@ -61,9 +64,10 @@ export const Tabs = vui<'div', TabsProps>((props, ref) => {
61
64
  <TabsBase className={cs('vui-tabs', className)} ref={ref} {...styles.container} {...rest}>
62
65
  {!!tabs?.length && (
63
66
  <TabsNavBar
67
+ actions={actions}
64
68
  activeNavItem={activeTabIndex}
65
69
  animationDirection={animationDirection}
66
- onNavItemClick={(id, e) => onNavItemClick(id, e)}
70
+ onNavItemClick={(tabIndex, e) => onNavItemClick(tabIndex, e)}
67
71
  showBorder={showBorder}
68
72
  size={size}
69
73
  tabs={tabs}
@@ -6,22 +6,23 @@ import { SystemProps } from '../system'
6
6
  import { ThemingProps } from '../theme'
7
7
 
8
8
  export type AnimationDirection = 'fadeLeft' | 'fadeRight' | 'fadeIn'
9
-
9
+ export type TabId = string | number
10
10
  export type TabsSize = 'md' | 'sm' | 'lg' | 'xl' | 'xxl'
11
11
  export type NavBarIconSize = 'md' | 'xs' | 'sm' | 'lg' | 'xl' | undefined
12
12
 
13
13
  export type TabsProps = SystemProps &
14
14
  ThemingProps<'Tabs'> &
15
15
  ChildrenProp & {
16
- activeTabId?: number
16
+ actions?: ReactNode
17
+ activeTabId?: TabId
17
18
  showBorder?: boolean
18
- onTabClick?: (id: number) => void
19
+ onTabClick?: (tabId: TabId) => void
19
20
  }
20
21
 
21
22
  export type TabProps = SystemProps &
22
23
  ChildrenProp & {
23
24
  icon?: IconProp
24
- id?: number
25
+ id?: TabId
25
26
  title: ReactNode
26
27
  disabled?: boolean
27
28
  className?: string
@@ -30,10 +31,15 @@ export type TabProps = SystemProps &
30
31
  onDelete?: (nativeEvent?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void
31
32
  }
32
33
 
34
+ export type TabIndexProps = TabProps & {
35
+ index?: number
36
+ }
37
+
33
38
  export type TabNavBarProps = {
34
- tabs: TabProps[]
35
- onNavItemClick: (id: number, e: React.MouseEvent<HTMLLIElement, MouseEvent>) => void
36
- activeNavItem?: number
39
+ actions?: ReactNode
40
+ tabs: TabIndexProps[]
41
+ onNavItemClick: (tabIndex: number, e: React.MouseEvent<HTMLLIElement, MouseEvent>) => void
42
+ activeNavItem?: TabId
37
43
  animationDirection?: AnimationDirection
38
44
  showBorder?: boolean
39
45
  size?: TabsSize
@@ -7,13 +7,13 @@ import { List, ListItem } from '../list'
7
7
  import { TagButton } from '../tag'
8
8
  import { cs, Dict } from '../utils'
9
9
  import { colors, iconSizeMapper } from './consts'
10
- import { NavBarIconSize, TabNavBarProps, TabProps } from './tabs.types'
10
+ import { NavBarIconSize, TabIndexProps, TabNavBarProps } from './tabs.types'
11
11
  import theme from './theme'
12
12
 
13
13
  const { activeBg, border, color, hover, main } = colors
14
14
 
15
15
  export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
16
- const { tabs, onNavItemClick, activeNavItem, animationDirection, showBorder, size = 'md' } = props
16
+ const { actions, tabs, onNavItemClick, activeNavItem, animationDirection, showBorder, size = 'md' } = props
17
17
  const iconSize: NavBarIconSize = iconSizeMapper?.[size as string] || 'md'
18
18
 
19
19
  const { sizes } = (theme as Dict) ?? {}
@@ -24,10 +24,11 @@ export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
24
24
  const py = sizes[size ?? 'md'].tabsNavBar.py
25
25
  const iconMarginRight = size === 'xxl' ? '16px' : '8px'
26
26
 
27
- const isActive = (tab: TabProps) => !tab.disabled && tab.id === activeNavItem
27
+ const isActive = (tab: TabIndexProps) => !tab.disabled && tab?.index === activeNavItem
28
28
 
29
29
  return (
30
30
  <List
31
+ alignItems="end"
31
32
  borderBottom={showBorder ? `1px solid ${border}` : 'none'}
32
33
  className={cs('vui-tabsNavBar')}
33
34
  display="flex"
@@ -48,8 +49,8 @@ export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
48
49
  fontWeight={500}
49
50
  h={h}
50
51
  hoverBg={tab.disabled ? undefined : hover}
51
- key={tab.id}
52
- onClick={e => onNavItemClick?.(tab.id || 0, e)}
52
+ key={tab.index}
53
+ onClick={e => onNavItemClick?.(tab.index || 0, e)}
53
54
  position="relative"
54
55
  px="16px"
55
56
  py={py}
@@ -84,6 +85,11 @@ export const TabsNavBar = vui<'div', TabNavBarProps>((props, ref) => {
84
85
  )}
85
86
  </ListItem>
86
87
  ))}
88
+ {!!actions && (
89
+ <Box ml="auto" px={0.75} py={0.5}>
90
+ {actions}
91
+ </Box>
92
+ )}
87
93
  </List>
88
94
  )
89
95
  })
@@ -1,10 +1,10 @@
1
1
  import { useState } from 'react'
2
2
 
3
- import { AnimationDirection, TabProps } from './tabs.types'
3
+ import { AnimationDirection, TabIndexProps } from './tabs.types'
4
4
 
5
- export const useTabsState = (initialAnimation: AnimationDirection, activeTabId?: number) => {
6
- const [tabs, setTabs] = useState<TabProps[]>([])
7
- const [activeTabIndex, setActiveTabIndex] = useState<number>(activeTabId ?? 0)
5
+ export const useTabsState = (initialAnimation: AnimationDirection, tabIndex?: number) => {
6
+ const [tabs, setTabs] = useState<TabIndexProps[]>([])
7
+ const [activeTabIndex, setActiveTabIndex] = useState<number>(tabIndex ?? 0)
8
8
  const [animationDirection, setAnimationDirection] = useState<AnimationDirection>(initialAnimation)
9
9
 
10
10
  return { tabs, setTabs, activeTabIndex, setActiveTabIndex, animationDirection, setAnimationDirection }
@@ -37,7 +37,7 @@ import Select from '../select/theme'
37
37
  import Sidemenu from '../sidemenu/theme'
38
38
  import Skeleton from '../skeleton/theme'
39
39
  import Spinner from '../spinner/theme'
40
- import StepIndicator from '../step/theme'
40
+ import StepIndicator from '../stepIndicator/theme'
41
41
  import StepperHorizontal from '../stepperHorizontal/theme'
42
42
  import StepperVertical from '../stepperVertical/theme'
43
43
  import Switch from '../switch/theme'
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/step/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,cAAc,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepIndicator.d.ts","sourceRoot":"","sources":["../../../src/step/stepIndicator.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AASzD;;GAEG;AACH,eAAO,MAAM,aAAa,2DAmCxB,CAAA;AAIF,eAAe,aAAa,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepIndicatorTypes.d.ts","sourceRoot":"","sources":["../../../src/step/stepIndicatorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,YAAY,CAAC,eAAe,CAAC,GAAG;IAC9B,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/step/theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,wBAKC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/step/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,cAAc,iBAAiB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepIndicator.d.ts","sourceRoot":"","sources":["../../../src/step/stepIndicator.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AASzD;;GAEG;AACH,eAAO,MAAM,aAAa,2DAmCxB,CAAA;AAIF,eAAe,aAAa,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepIndicatorTypes.d.ts","sourceRoot":"","sources":["../../../src/step/stepIndicatorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAC1C,YAAY,CAAC,eAAe,CAAC,GAAG;IAC9B,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/step/theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,wBAKC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes