@a-type/ui 1.3.0 → 1.3.2

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 (233) hide show
  1. package/dist/cjs/components/actions/ActionButton.d.ts +1 -1
  2. package/dist/cjs/components/actions/ActionButton.js +4 -4
  3. package/dist/cjs/components/actions/ActionButton.js.map +1 -1
  4. package/dist/cjs/components/box/Box.d.ts +4 -2
  5. package/dist/cjs/components/box/Box.js +9 -6
  6. package/dist/cjs/components/box/Box.js.map +1 -1
  7. package/dist/cjs/components/box/Box.stories.d.ts +1 -1
  8. package/dist/cjs/components/button/Button.d.ts +3 -2
  9. package/dist/cjs/components/button/Button.js +4 -4
  10. package/dist/cjs/components/button/Button.js.map +1 -1
  11. package/dist/cjs/components/button/Button.stories.d.ts +1 -1
  12. package/dist/cjs/components/camera/Camera.d.ts +7 -5
  13. package/dist/cjs/components/camera/Camera.js +12 -10
  14. package/dist/cjs/components/camera/Camera.js.map +1 -1
  15. package/dist/cjs/components/camera/Camera.stories.d.ts +2 -2
  16. package/dist/cjs/components/card/Card.d.ts +10 -18
  17. package/dist/cjs/components/card/Card.js +11 -10
  18. package/dist/cjs/components/card/Card.js.map +1 -1
  19. package/dist/cjs/components/checkbox/Checkbox.d.ts +2 -1
  20. package/dist/cjs/components/checkbox/Checkbox.js +3 -3
  21. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  22. package/dist/cjs/components/chip/Chip.d.ts +3 -2
  23. package/dist/cjs/components/chip/Chip.js +4 -5
  24. package/dist/cjs/components/chip/Chip.js.map +1 -1
  25. package/dist/cjs/components/collapsible/Collapsible.d.ts +7 -4
  26. package/dist/cjs/components/collapsible/Collapsible.js +5 -5
  27. package/dist/cjs/components/collapsible/Collapsible.js.map +1 -1
  28. package/dist/cjs/components/contextMenu/contextMenu.d.ts +7 -2
  29. package/dist/cjs/components/contextMenu/contextMenu.js +5 -5
  30. package/dist/cjs/components/contextMenu/contextMenu.js.map +1 -1
  31. package/dist/cjs/components/dialog/Dialog.d.ts +37 -19
  32. package/dist/cjs/components/dialog/Dialog.js +20 -15
  33. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  34. package/dist/cjs/components/dialog/Dialog.stories.d.ts +14 -7
  35. package/dist/cjs/components/divider/Divider.d.ts +3 -1
  36. package/dist/cjs/components/divider/Divider.js +5 -5
  37. package/dist/cjs/components/divider/Divider.js.map +1 -1
  38. package/dist/cjs/components/dropdownMenu/DropdownMenu.d.ts +6 -2
  39. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +3 -4
  40. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  41. package/dist/cjs/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -1
  42. package/dist/cjs/components/forms/TextField.d.ts +3 -1
  43. package/dist/cjs/components/forms/TextField.js +6 -5
  44. package/dist/cjs/components/forms/TextField.js.map +1 -1
  45. package/dist/cjs/components/icon/Icon.d.ts +3 -1
  46. package/dist/cjs/components/icon/Icon.js +4 -4
  47. package/dist/cjs/components/icon/Icon.js.map +1 -1
  48. package/dist/cjs/components/infiniteLoadTrigger/InfiniteLoadTrigger.d.ts +3 -1
  49. package/dist/cjs/components/infiniteLoadTrigger/InfiniteLoadTrigger.js +6 -5
  50. package/dist/cjs/components/infiniteLoadTrigger/InfiniteLoadTrigger.js.map +1 -1
  51. package/dist/cjs/components/input/Input.d.ts +3 -1
  52. package/dist/cjs/components/input/Input.js +4 -3
  53. package/dist/cjs/components/input/Input.js.map +1 -1
  54. package/dist/cjs/components/input/Input.stories.d.ts +3 -1
  55. package/dist/cjs/components/liveUpdateTextField/LiveUpdateTextField.d.ts +3 -2
  56. package/dist/cjs/components/liveUpdateTextField/LiveUpdateTextField.js +5 -4
  57. package/dist/cjs/components/liveUpdateTextField/LiveUpdateTextField.js.map +1 -1
  58. package/dist/cjs/components/marquee/marquee.d.ts +1 -1
  59. package/dist/cjs/components/navBar/NavBar.d.ts +10 -5
  60. package/dist/cjs/components/navBar/NavBar.js +8 -7
  61. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  62. package/dist/cjs/components/popover/Popover.d.ts +13 -8
  63. package/dist/cjs/components/popover/Popover.js +5 -5
  64. package/dist/cjs/components/popover/Popover.js.map +1 -1
  65. package/dist/cjs/components/progress/Progress.d.ts +4 -3
  66. package/dist/cjs/components/progress/Progress.js +3 -4
  67. package/dist/cjs/components/progress/Progress.js.map +1 -1
  68. package/dist/cjs/components/progress/Progress.stories.d.ts +4 -3
  69. package/dist/cjs/components/scrollArea/ScrollArea.d.ts +12 -5
  70. package/dist/cjs/components/scrollArea/ScrollArea.js +12 -9
  71. package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
  72. package/dist/cjs/components/select/Select.d.ts +23 -13
  73. package/dist/cjs/components/select/Select.js +18 -15
  74. package/dist/cjs/components/select/Select.js.map +1 -1
  75. package/dist/cjs/components/select/Select.stories.d.ts +10 -6
  76. package/dist/cjs/components/slider/Slider.d.ts +3 -1
  77. package/dist/cjs/components/slider/Slider.js +3 -4
  78. package/dist/cjs/components/slider/Slider.js.map +1 -1
  79. package/dist/cjs/components/slider/Slider.stories.d.ts +3 -1
  80. package/dist/cjs/components/spinner/Spinner.d.ts +6 -2
  81. package/dist/cjs/components/spinner/Spinner.js +8 -6
  82. package/dist/cjs/components/spinner/Spinner.js.map +1 -1
  83. package/dist/cjs/components/switch/Switch.d.ts +3 -1
  84. package/dist/cjs/components/switch/Switch.js +15 -4
  85. package/dist/cjs/components/switch/Switch.js.map +1 -1
  86. package/dist/cjs/components/textArea/TextArea.d.ts +3 -1
  87. package/dist/cjs/components/textArea/TextArea.js +4 -3
  88. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  89. package/dist/cjs/components/textArea/TextArea.stories.d.ts +3 -1
  90. package/dist/cjs/components/tooltip/Tooltip.d.ts +3 -1
  91. package/dist/cjs/components/tooltip/Tooltip.js +3 -4
  92. package/dist/cjs/components/tooltip/Tooltip.js.map +1 -1
  93. package/dist/cjs/components/tooltip/Tooltip.stories.d.ts +3 -1
  94. package/dist/cjs/components/utility/HideWhileKeyboardOpen.d.ts +3 -1
  95. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js +5 -5
  96. package/dist/cjs/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  97. package/dist/cjs/components/utility/SlotDiv.d.ts +1 -1
  98. package/dist/cjs/components/utility/SlotDiv.js +4 -4
  99. package/dist/cjs/components/utility/SlotDiv.js.map +1 -1
  100. package/dist/cjs/hooks/useMergedRef.d.ts +1 -1
  101. package/dist/cjs/hooks/useMergedRef.js.map +1 -1
  102. package/dist/esm/components/actions/ActionButton.d.ts +1 -1
  103. package/dist/esm/components/actions/ActionButton.js +4 -4
  104. package/dist/esm/components/actions/ActionButton.js.map +1 -1
  105. package/dist/esm/components/box/Box.d.ts +4 -2
  106. package/dist/esm/components/box/Box.js +9 -6
  107. package/dist/esm/components/box/Box.js.map +1 -1
  108. package/dist/esm/components/box/Box.stories.d.ts +1 -1
  109. package/dist/esm/components/button/Button.d.ts +3 -2
  110. package/dist/esm/components/button/Button.js +4 -4
  111. package/dist/esm/components/button/Button.js.map +1 -1
  112. package/dist/esm/components/button/Button.stories.d.ts +1 -1
  113. package/dist/esm/components/camera/Camera.d.ts +7 -5
  114. package/dist/esm/components/camera/Camera.js +7 -7
  115. package/dist/esm/components/camera/Camera.js.map +1 -1
  116. package/dist/esm/components/camera/Camera.stories.d.ts +2 -2
  117. package/dist/esm/components/card/Card.d.ts +10 -18
  118. package/dist/esm/components/card/Card.js +6 -7
  119. package/dist/esm/components/card/Card.js.map +1 -1
  120. package/dist/esm/components/checkbox/Checkbox.d.ts +2 -1
  121. package/dist/esm/components/checkbox/Checkbox.js +3 -3
  122. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  123. package/dist/esm/components/chip/Chip.d.ts +3 -2
  124. package/dist/esm/components/chip/Chip.js +3 -4
  125. package/dist/esm/components/chip/Chip.js.map +1 -1
  126. package/dist/esm/components/collapsible/Collapsible.d.ts +7 -4
  127. package/dist/esm/components/collapsible/Collapsible.js +4 -5
  128. package/dist/esm/components/collapsible/Collapsible.js.map +1 -1
  129. package/dist/esm/components/contextMenu/contextMenu.d.ts +7 -2
  130. package/dist/esm/components/contextMenu/contextMenu.js +4 -5
  131. package/dist/esm/components/contextMenu/contextMenu.js.map +1 -1
  132. package/dist/esm/components/dialog/Dialog.d.ts +37 -19
  133. package/dist/esm/components/dialog/Dialog.js +16 -16
  134. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  135. package/dist/esm/components/dialog/Dialog.stories.d.ts +14 -7
  136. package/dist/esm/components/divider/Divider.d.ts +3 -1
  137. package/dist/esm/components/divider/Divider.js +4 -5
  138. package/dist/esm/components/divider/Divider.js.map +1 -1
  139. package/dist/esm/components/dropdownMenu/DropdownMenu.d.ts +6 -2
  140. package/dist/esm/components/dropdownMenu/DropdownMenu.js +3 -4
  141. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  142. package/dist/esm/components/dropdownMenu/DropdownMenu.stories.d.ts +3 -1
  143. package/dist/esm/components/forms/TextField.d.ts +3 -1
  144. package/dist/esm/components/forms/TextField.js +6 -6
  145. package/dist/esm/components/forms/TextField.js.map +1 -1
  146. package/dist/esm/components/icon/Icon.d.ts +3 -1
  147. package/dist/esm/components/icon/Icon.js +3 -4
  148. package/dist/esm/components/icon/Icon.js.map +1 -1
  149. package/dist/esm/components/infiniteLoadTrigger/InfiniteLoadTrigger.d.ts +3 -1
  150. package/dist/esm/components/infiniteLoadTrigger/InfiniteLoadTrigger.js +5 -5
  151. package/dist/esm/components/infiniteLoadTrigger/InfiniteLoadTrigger.js.map +1 -1
  152. package/dist/esm/components/input/Input.d.ts +3 -1
  153. package/dist/esm/components/input/Input.js +4 -4
  154. package/dist/esm/components/input/Input.js.map +1 -1
  155. package/dist/esm/components/input/Input.stories.d.ts +3 -1
  156. package/dist/esm/components/liveUpdateTextField/LiveUpdateTextField.d.ts +3 -2
  157. package/dist/esm/components/liveUpdateTextField/LiveUpdateTextField.js +4 -4
  158. package/dist/esm/components/liveUpdateTextField/LiveUpdateTextField.js.map +1 -1
  159. package/dist/esm/components/marquee/marquee.d.ts +1 -1
  160. package/dist/esm/components/navBar/NavBar.d.ts +10 -5
  161. package/dist/esm/components/navBar/NavBar.js +6 -7
  162. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  163. package/dist/esm/components/popover/Popover.d.ts +13 -8
  164. package/dist/esm/components/popover/Popover.js +4 -5
  165. package/dist/esm/components/popover/Popover.js.map +1 -1
  166. package/dist/esm/components/progress/Progress.d.ts +4 -3
  167. package/dist/esm/components/progress/Progress.js +3 -4
  168. package/dist/esm/components/progress/Progress.js.map +1 -1
  169. package/dist/esm/components/progress/Progress.stories.d.ts +4 -3
  170. package/dist/esm/components/scrollArea/ScrollArea.d.ts +12 -5
  171. package/dist/esm/components/scrollArea/ScrollArea.js +10 -9
  172. package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
  173. package/dist/esm/components/select/Select.d.ts +23 -13
  174. package/dist/esm/components/select/Select.js +16 -16
  175. package/dist/esm/components/select/Select.js.map +1 -1
  176. package/dist/esm/components/select/Select.stories.d.ts +10 -6
  177. package/dist/esm/components/slider/Slider.d.ts +3 -1
  178. package/dist/esm/components/slider/Slider.js +3 -4
  179. package/dist/esm/components/slider/Slider.js.map +1 -1
  180. package/dist/esm/components/slider/Slider.stories.d.ts +3 -1
  181. package/dist/esm/components/spinner/Spinner.d.ts +6 -2
  182. package/dist/esm/components/spinner/Spinner.js +6 -6
  183. package/dist/esm/components/spinner/Spinner.js.map +1 -1
  184. package/dist/esm/components/switch/Switch.d.ts +3 -1
  185. package/dist/esm/components/switch/Switch.js +15 -4
  186. package/dist/esm/components/switch/Switch.js.map +1 -1
  187. package/dist/esm/components/textArea/TextArea.d.ts +3 -1
  188. package/dist/esm/components/textArea/TextArea.js +4 -4
  189. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  190. package/dist/esm/components/textArea/TextArea.stories.d.ts +3 -1
  191. package/dist/esm/components/tooltip/Tooltip.d.ts +3 -1
  192. package/dist/esm/components/tooltip/Tooltip.js +3 -4
  193. package/dist/esm/components/tooltip/Tooltip.js.map +1 -1
  194. package/dist/esm/components/tooltip/Tooltip.stories.d.ts +3 -1
  195. package/dist/esm/components/utility/HideWhileKeyboardOpen.d.ts +3 -1
  196. package/dist/esm/components/utility/HideWhileKeyboardOpen.js +4 -5
  197. package/dist/esm/components/utility/HideWhileKeyboardOpen.js.map +1 -1
  198. package/dist/esm/components/utility/SlotDiv.d.ts +1 -1
  199. package/dist/esm/components/utility/SlotDiv.js +3 -4
  200. package/dist/esm/components/utility/SlotDiv.js.map +1 -1
  201. package/dist/esm/hooks/useMergedRef.d.ts +1 -1
  202. package/dist/esm/hooks/useMergedRef.js.map +1 -1
  203. package/package.json +1 -1
  204. package/src/components/actions/ActionButton.tsx +45 -45
  205. package/src/components/box/Box.tsx +27 -24
  206. package/src/components/button/Button.tsx +54 -57
  207. package/src/components/camera/Camera.tsx +133 -133
  208. package/src/components/card/Card.tsx +24 -23
  209. package/src/components/checkbox/Checkbox.tsx +9 -10
  210. package/src/components/chip/Chip.tsx +9 -5
  211. package/src/components/collapsible/Collapsible.tsx +56 -54
  212. package/src/components/contextMenu/contextMenu.tsx +60 -56
  213. package/src/components/dialog/Dialog.tsx +328 -312
  214. package/src/components/divider/Divider.tsx +32 -26
  215. package/src/components/dropdownMenu/DropdownMenu.tsx +126 -123
  216. package/src/components/forms/TextField.tsx +137 -140
  217. package/src/components/icon/Icon.tsx +33 -28
  218. package/src/components/infiniteLoadTrigger/InfiniteLoadTrigger.tsx +42 -38
  219. package/src/components/input/Input.tsx +75 -81
  220. package/src/components/liveUpdateTextField/LiveUpdateTextField.tsx +134 -138
  221. package/src/components/navBar/NavBar.tsx +105 -96
  222. package/src/components/popover/Popover.tsx +84 -87
  223. package/src/components/progress/Progress.tsx +40 -34
  224. package/src/components/scrollArea/ScrollArea.tsx +102 -94
  225. package/src/components/select/Select.tsx +294 -283
  226. package/src/components/slider/Slider.tsx +58 -55
  227. package/src/components/spinner/Spinner.tsx +66 -59
  228. package/src/components/switch/Switch.tsx +31 -27
  229. package/src/components/textArea/TextArea.tsx +114 -117
  230. package/src/components/tooltip/Tooltip.tsx +68 -63
  231. package/src/components/utility/HideWhileKeyboardOpen.tsx +30 -26
  232. package/src/components/utility/SlotDiv.tsx +16 -15
  233. package/src/hooks/useMergedRef.ts +3 -1
@@ -1,96 +1,105 @@
1
- import { Slot } from '@radix-ui/react-slot';
2
- import classNames, { clsx } from 'clsx';
3
- import { ReactNode, forwardRef } from 'react';
4
- import { withClassName } from '../../hooks.js';
5
- import { Icon, IconProps } from '../icon/index.js';
6
-
7
- export const navBarItemClass = classNames(
8
- 'layer-components:(flex flex-col items-center justify-center whitespace-nowrap py-1 px-3 bg-transparent rounded-md border-none cursor-pointer text-sm transition-colors h-full gap-6px relative text-gray-7 select-none)',
9
- 'layer-components:sm:(flex-row-reverse h-auto justify-start gap-2 overflow-visible)',
10
- 'layer-components:hover:bg-primary-wash',
11
- 'layer-components:focus-visible:(outline-none bg-primary-wash)',
12
- 'layer-components:active:bg-primary-wash layer-components:sm:active:bg-gray-dark-blend',
13
- 'layer-components:[&[data-active=true]]:(bg-primary-wash text-black)',
14
- );
15
-
16
- export interface NavBarItemProps {
17
- asChild?: boolean;
18
- className?: string;
19
- children?: ReactNode;
20
- active?: boolean;
21
- }
22
-
23
- export const NavBarItem = forwardRef<HTMLDivElement, NavBarItemProps>(
24
- function NavBarItem({ asChild, className, active, ...rest }, ref) {
25
- const Comp = asChild ? Slot : 'div';
26
-
27
- return (
28
- <Comp
29
- ref={ref}
30
- className={classNames(navBarItemClass, className)}
31
- data-active={active}
32
- {...rest}
33
- />
34
- );
35
- },
36
- );
37
-
38
- export const NavBarItemIconWrapper = withClassName(
39
- 'div',
40
- 'layer-components:(relative flex) layer-components:sm:(p-6px rounded-full bg-gray-blend)',
41
- 'layer-variants:sm:[*[data-active=true]_&]:bg-primary-light',
42
- );
43
-
44
- export const NavBarItemText = withClassName(
45
- 'span',
46
- 'layer-components:(overflow-hidden pl-1 inline-block text-xxs whitespace-nowrap text-ellipsis) layer-components:sm:(text-md leading-normal)',
47
- );
48
-
49
- interface NavBarItemIconProps {
50
- asChild?: boolean;
51
- name?: IconProps['name'];
52
- className?: string;
53
- children?: ReactNode;
54
- }
55
- export const NavBarItemIcon = forwardRef<any, NavBarItemIconProps>(
56
- function NavBarItemIcon(
57
- { children, asChild, className, name = 'placeholder', ...rest },
58
- ref,
59
- ) {
60
- const Comp = asChild ? Slot : Icon;
61
- return (
62
- <Comp
63
- name={name}
64
- className={clsx(
65
- 'layer-components:(relative z-1 flex fill-none text-inherit)',
66
- 'layer-variants:[*[data-active=true]_&]:fill-primary-light',
67
- className,
68
- )}
69
- {...rest}
70
- ref={ref}
71
- >
72
- {children}
73
- </Comp>
74
- );
75
- },
76
- );
77
-
78
- export const NavBarItemPip = withClassName(
79
- 'div',
80
- 'layer-components:(absolute top-6px right-6px w-6px h-6px rounded-full bg-attention shadow-sm)',
81
- );
82
-
83
- export const NavBarRoot = withClassName(
84
- 'div',
85
- 'layer-components:(grid [grid-auto-columns:1fr] [grid-auto-flow:column] justify-items-center w-full rounded-0 overflow-hidden z-50 p-1 h-auto)',
86
- 'pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))]',
87
- 'layer-components:sm:(bg-transparent flex flex-col rounded-0 border-none border-transparent shadow-none h-min-content overflow-y-auto overflow-x-hidden justify-start items-stretch gap-2 pb-10)',
88
- );
89
-
90
- export const NavBar = Object.assign(NavBarRoot, {
91
- Item: NavBarItem,
92
- ItemIcon: NavBarItemIcon,
93
- ItemText: NavBarItemText,
94
- ItemIconWrapper: NavBarItemIconWrapper,
95
- ItemPip: NavBarItemPip,
96
- });
1
+ import { Slot } from '@radix-ui/react-slot';
2
+ import classNames, { clsx } from 'clsx';
3
+ import { ReactNode, Ref } from 'react';
4
+ import { withClassName } from '../../hooks.js';
5
+ import { Icon, IconProps } from '../icon/index.js';
6
+
7
+ export const navBarItemClass = classNames(
8
+ 'layer-components:(flex flex-col items-center justify-center whitespace-nowrap py-1 px-3 bg-transparent rounded-md border-none cursor-pointer text-sm transition-colors h-full gap-6px relative text-gray-7 select-none)',
9
+ 'layer-components:sm:(flex-row-reverse h-auto justify-start gap-2 overflow-visible)',
10
+ 'layer-components:hover:bg-primary-wash',
11
+ 'layer-components:focus-visible:(outline-none bg-primary-wash)',
12
+ 'layer-components:active:bg-primary-wash layer-components:sm:active:bg-gray-dark-blend',
13
+ 'layer-components:[&[data-active=true]]:(bg-primary-wash text-black)',
14
+ );
15
+
16
+ export interface NavBarItemProps {
17
+ asChild?: boolean;
18
+ className?: string;
19
+ children?: ReactNode;
20
+ active?: boolean;
21
+ }
22
+
23
+ export const NavBarItem = function NavBarItem({
24
+ ref,
25
+ asChild,
26
+ className,
27
+ active,
28
+ ...rest
29
+ }: NavBarItemProps & {
30
+ ref?: React.Ref<HTMLDivElement>;
31
+ }) {
32
+ const Comp = asChild ? Slot : 'div';
33
+
34
+ return (
35
+ <Comp
36
+ ref={ref}
37
+ className={classNames(navBarItemClass, className)}
38
+ data-active={active}
39
+ {...rest}
40
+ />
41
+ );
42
+ };
43
+
44
+ export const NavBarItemIconWrapper = withClassName(
45
+ 'div',
46
+ 'layer-components:(relative flex) layer-components:sm:(p-6px rounded-full bg-gray-blend)',
47
+ 'layer-variants:sm:[*[data-active=true]_&]:bg-primary-light',
48
+ );
49
+
50
+ export const NavBarItemText = withClassName(
51
+ 'span',
52
+ 'layer-components:(overflow-hidden pl-1 inline-block text-xxs whitespace-nowrap text-ellipsis) layer-components:sm:(text-md leading-normal)',
53
+ );
54
+
55
+ interface NavBarItemIconProps {
56
+ asChild?: boolean;
57
+ name?: IconProps['name'];
58
+ className?: string;
59
+ children?: ReactNode;
60
+ ref?: Ref<any>;
61
+ }
62
+ export const NavBarItemIcon = function NavBarItemIcon({
63
+ ref,
64
+ children,
65
+ asChild,
66
+ className,
67
+ name = 'placeholder',
68
+ ...rest
69
+ }: NavBarItemIconProps) {
70
+ const Comp = asChild ? Slot : Icon;
71
+ return (
72
+ <Comp
73
+ name={name}
74
+ className={clsx(
75
+ 'layer-components:(relative z-1 flex fill-none text-inherit)',
76
+ 'layer-variants:[*[data-active=true]_&]:fill-primary-light',
77
+ className,
78
+ )}
79
+ {...rest}
80
+ ref={ref}
81
+ >
82
+ {children}
83
+ </Comp>
84
+ );
85
+ };
86
+
87
+ export const NavBarItemPip = withClassName(
88
+ 'div',
89
+ 'layer-components:(absolute top-6px right-6px w-6px h-6px rounded-full bg-attention shadow-sm)',
90
+ );
91
+
92
+ export const NavBarRoot = withClassName(
93
+ 'div',
94
+ 'layer-components:(grid [grid-auto-columns:1fr] [grid-auto-flow:column] justify-items-center w-full rounded-0 overflow-hidden z-50 p-1 h-auto)',
95
+ 'pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))]',
96
+ 'layer-components:sm:(bg-transparent flex flex-col rounded-0 border-none border-transparent shadow-none h-min-content overflow-y-auto overflow-x-hidden justify-start items-stretch gap-2 pb-10)',
97
+ );
98
+
99
+ export const NavBar = Object.assign(NavBarRoot, {
100
+ Item: NavBarItem,
101
+ ItemIcon: NavBarItemIcon,
102
+ ItemText: NavBarItemText,
103
+ ItemIconWrapper: NavBarItemIconWrapper,
104
+ ItemPip: NavBarItemPip,
105
+ });
@@ -1,87 +1,84 @@
1
- 'use client';
2
-
3
- import * as PopoverPrimitive from '@radix-ui/react-popover';
4
- import { ComponentPropsWithoutRef, forwardRef } from 'react';
5
-
6
- import { withClassName } from '../../hooks/withClassName.js';
7
- import classNames from 'clsx';
8
-
9
- const StyledContent = withClassName(
10
- PopoverPrimitive.Content,
11
- 'layer-components:(rounded-xl min-w-120px bg-white z-menu shadow-lg border-default op-0 hidden max-w-90vw)',
12
- 'will-change-transform',
13
- 'layer-components:transform-origin-[var(--radix-popover-transform-origin)]',
14
- 'layer-components:[&[data-state=open]]:animate-popover-in',
15
- 'layer-components:[&[data-state=closed]]:animate-popover-out',
16
- 'important:motion-reduce:animate-none',
17
- 'layer-components:(max-h-[var(--radix-popover-content-available-height)])',
18
- 'layer-components:[&[data-state=open]]:(opacity-100 flex flex-col)',
19
- 'layer-components:[&[data-state=closed]]:pointer-events-none',
20
- );
21
-
22
- const StyledArrow = withClassName(
23
- PopoverPrimitive.Arrow,
24
- 'layer-components:(fill-white stroke-black)',
25
- );
26
-
27
- const StyledClose = withClassName(
28
- PopoverPrimitive.Close,
29
- 'layer-components:([all:unset] [font-family:inherit] rounded-full h-25px w-25px inline-flex items-center justify-center color-dark-blend absolute top-5px right-5px hover:bg-light-blend focus:shadow-focus)',
30
- );
31
-
32
- // Exports
33
- export const PopoverRoot = PopoverPrimitive.Root;
34
- export const PopoverTrigger = PopoverPrimitive.Trigger;
35
- export const PopoverArrow = StyledArrow;
36
- export const PopoverClose = StyledClose;
37
- export const PopoverAnchor = PopoverPrimitive.Anchor;
38
-
39
- export const PopoverContent = forwardRef<
40
- HTMLDivElement,
41
- ComponentPropsWithoutRef<typeof StyledContent> & {
42
- disableBlur?: boolean;
43
- padding?: 'none' | 'default';
44
- radius?: 'none' | 'default' | 'md';
45
- }
46
- >(function PopoverContent(
47
- {
48
- children,
49
- forceMount,
50
- disableBlur,
51
- className,
52
- radius = 'default',
53
- padding = 'default',
54
- ...props
55
- },
56
- ref,
57
- ) {
58
- return (
59
- <PopoverPrimitive.Portal forceMount={forceMount}>
60
- <StyledContent
61
- {...props}
62
- forceMount={forceMount}
63
- ref={ref}
64
- className={classNames(
65
- {
66
- 'layer-variants:important:p-0': padding === 'none',
67
- 'layer-variants:p-5': padding === 'default',
68
- 'layer-variants:rounded-none': radius === 'none',
69
- 'layer-variants:rounded-lg': radius === 'default',
70
- 'layer-variants:rounded-md': radius === 'md',
71
- },
72
- className,
73
- )}
74
- >
75
- {children}
76
- </StyledContent>
77
- </PopoverPrimitive.Portal>
78
- );
79
- });
80
-
81
- export const Popover = Object.assign(PopoverRoot, {
82
- Content: PopoverContent,
83
- Arrow: PopoverArrow,
84
- Close: PopoverClose,
85
- Trigger: PopoverTrigger,
86
- Anchor: PopoverAnchor,
87
- });
1
+ 'use client';
2
+
3
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
4
+
5
+ import classNames from 'clsx';
6
+ import { Ref } from 'react';
7
+ import { withClassName } from '../../hooks/withClassName.js';
8
+
9
+ const StyledContent = withClassName(
10
+ PopoverPrimitive.Content,
11
+ 'layer-components:(rounded-xl min-w-120px bg-white z-menu shadow-lg border-default op-0 hidden max-w-90vw)',
12
+ 'will-change-transform',
13
+ 'layer-components:transform-origin-[var(--radix-popover-transform-origin)]',
14
+ 'layer-components:[&[data-state=open]]:animate-popover-in',
15
+ 'layer-components:[&[data-state=closed]]:animate-popover-out',
16
+ 'important:motion-reduce:animate-none',
17
+ 'layer-components:(max-h-[var(--radix-popover-content-available-height)])',
18
+ 'layer-components:[&[data-state=open]]:(opacity-100 flex flex-col)',
19
+ 'layer-components:[&[data-state=closed]]:pointer-events-none',
20
+ );
21
+
22
+ const StyledArrow = withClassName(
23
+ PopoverPrimitive.Arrow,
24
+ 'layer-components:(fill-white stroke-black)',
25
+ );
26
+
27
+ const StyledClose = withClassName(
28
+ PopoverPrimitive.Close,
29
+ 'layer-components:([all:unset] [font-family:inherit] rounded-full h-25px w-25px inline-flex items-center justify-center color-dark-blend absolute top-5px right-5px hover:bg-light-blend focus:shadow-focus)',
30
+ );
31
+
32
+ // Exports
33
+ export const PopoverRoot = PopoverPrimitive.Root;
34
+ export const PopoverTrigger = PopoverPrimitive.Trigger;
35
+ export const PopoverArrow = StyledArrow;
36
+ export const PopoverClose = StyledClose;
37
+ export const PopoverAnchor = PopoverPrimitive.Anchor;
38
+
39
+ export const PopoverContent = function PopoverContent({
40
+ ref,
41
+ children,
42
+ forceMount,
43
+ disableBlur,
44
+ className,
45
+ radius = 'default',
46
+ padding = 'default',
47
+ ...props
48
+ }: PopoverPrimitive.PopoverContentProps & {
49
+ radius?: 'none' | 'default' | 'md';
50
+ padding?: 'none' | 'default';
51
+ forceMount?: boolean;
52
+ disableBlur?: boolean;
53
+ ref?: Ref<HTMLDivElement>;
54
+ }) {
55
+ return (
56
+ <PopoverPrimitive.Portal forceMount={forceMount}>
57
+ <StyledContent
58
+ {...props}
59
+ forceMount={forceMount}
60
+ ref={ref}
61
+ className={classNames(
62
+ {
63
+ 'layer-variants:important:p-0': padding === 'none',
64
+ 'layer-variants:p-5': padding === 'default',
65
+ 'layer-variants:rounded-none': radius === 'none',
66
+ 'layer-variants:rounded-lg': radius === 'default',
67
+ 'layer-variants:rounded-md': radius === 'md',
68
+ },
69
+ className,
70
+ )}
71
+ >
72
+ {children}
73
+ </StyledContent>
74
+ </PopoverPrimitive.Portal>
75
+ );
76
+ };
77
+
78
+ export const Popover = Object.assign(PopoverRoot, {
79
+ Content: PopoverContent,
80
+ Arrow: PopoverArrow,
81
+ Close: PopoverClose,
82
+ Trigger: PopoverTrigger,
83
+ Anchor: PopoverAnchor,
84
+ });
@@ -1,34 +1,40 @@
1
- import * as ProgressPrimitive from '@radix-ui/react-progress';
2
- import { withClassName } from '../../hooks.js';
3
- import { forwardRef } from 'react';
4
-
5
- export const ProgressRoot = withClassName(
6
- ProgressPrimitive.Root,
7
- 'layer-components:(w-full relative overflow-hidden border border-default rounded-full)',
8
- );
9
- export const ProgressIndicator = withClassName(
10
- ProgressPrimitive.Indicator,
11
- 'layer-components:(bg-primary w-full h-6px translate-x-[calc(-100%*(1-var(--value)))] rounded-full transition-transform)',
12
- 'layer-components:[&[data-state=complete]]:(bg-accent)',
13
- 'layer-variants:[&[data-color=accent]]:(bg-accent)',
14
- );
15
-
16
- const ProgressBase = forwardRef<
17
- HTMLDivElement,
18
- ProgressPrimitive.ProgressProps & { color?: 'accent' | 'primary' }
19
- >(function ProgressBase({ children, color, max = 100, value, ...props }, ref) {
20
- return (
21
- <ProgressRoot {...props} value={value} max={max} ref={ref}>
22
- <ProgressIndicator
23
- data-color={color}
24
- // @ts-ignore
25
- style={{ '--value': (value || 0) / max }}
26
- />
27
- </ProgressRoot>
28
- );
29
- });
30
-
31
- export const Progress = Object.assign(ProgressBase, {
32
- Root: ProgressRoot,
33
- Indicator: ProgressIndicator,
34
- });
1
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
2
+ import { withClassName } from '../../hooks.js';
3
+
4
+ export const ProgressRoot = withClassName(
5
+ ProgressPrimitive.Root,
6
+ 'layer-components:(w-full relative overflow-hidden border border-default rounded-full)',
7
+ );
8
+ export const ProgressIndicator = withClassName(
9
+ ProgressPrimitive.Indicator,
10
+ 'layer-components:(bg-primary w-full h-6px translate-x-[calc(-100%*(1-var(--value)))] rounded-full transition-transform)',
11
+ 'layer-components:[&[data-state=complete]]:(bg-accent)',
12
+ 'layer-variants:[&[data-color=accent]]:(bg-accent)',
13
+ );
14
+
15
+ const ProgressBase = function ProgressBase({
16
+ ref,
17
+ children,
18
+ color,
19
+ max = 100,
20
+ value,
21
+ ...props
22
+ }: ProgressPrimitive.ProgressProps & {
23
+ ref?: React.Ref<HTMLDivElement>;
24
+ color?: 'accent';
25
+ }) {
26
+ return (
27
+ <ProgressRoot {...props} value={value} max={max} ref={ref}>
28
+ <ProgressIndicator
29
+ data-color={color}
30
+ // @ts-ignore
31
+ style={{ '--value': (value || 0) / max }}
32
+ />
33
+ </ProgressRoot>
34
+ );
35
+ };
36
+
37
+ export const Progress = Object.assign(ProgressBase, {
38
+ Root: ProgressRoot,
39
+ Indicator: ProgressIndicator,
40
+ });
@@ -1,94 +1,102 @@
1
- import * as Primitive from '@radix-ui/react-scroll-area';
2
- import { withClassName } from '../../hooks.js';
3
- import { forwardRef, useMemo } from 'react';
4
-
5
- const ScrollAreaRootImpl = withClassName(
6
- Primitive.Root,
7
- 'overflow-hidden bg-[var(--scroll-bg)] rounded-lg',
8
- 'layer-components:([--scroll-bg:var(--color-wash)] [--scroll-shadow:var(--color-shadow-1))])',
9
- );
10
-
11
- export interface ScrollAreaRootProps extends Primitive.ScrollAreaProps {
12
- background?: 'white' | 'wash' | 'primary-wash' | 'primary' | 'black';
13
- }
14
-
15
- export const ScrollAreaRoot = forwardRef<any, ScrollAreaRootProps>(
16
- function ScrollAreaRoot({ background = 'wash', ...props }, ref) {
17
- const bgStyle: any = useMemo(
18
- () => ({
19
- '--scroll-bg': `var(--color-${background})`,
20
- '--scroll-shadow': `var(--color-${shadowMap[background]})`,
21
- }),
22
- [background],
23
- );
24
- return <ScrollAreaRootImpl ref={ref} style={bgStyle} {...props} />;
25
- },
26
- );
27
-
28
- export const ScrollAreaViewport = withClassName(
29
- Primitive.Viewport,
30
- 'h-full w-full',
31
- '[background:linear-gradient(var(--scroll-bg)_30%,rgba(255,255,255,0))_center_top,linear-gradient(rgba(255,255,255,0),var(--scroll-bg)_70%)_center_bottom,radial-gradient(farthest-side_at_50%_0,var(--scroll-shadow),rgba(0,0,0,0))_center_top,radial-gradient(farthest-side_at_50%_100%,var(--scroll-shadow),rgba(0,0,0,0))_center_bottom]',
32
- '![background-repeat:no-repeat] ![background-size:100%_40px,100%_40px,100%_14px,100%_14px]',
33
- '![background-attachment:local,local,scroll,scroll]',
34
- );
35
-
36
- export const ScrollAreaScrollbarRoot = withClassName(
37
- Primitive.Scrollbar,
38
- 'layer-components:(flex select-none touch-none p-0.5 bg-gray-2 transition-colors duration-160ms ease-out)',
39
- 'layer-components:hover:bg-gray-3',
40
- 'layer-components:[&[data-orientation=vertical]]:w-2.5',
41
- 'layer-components:[&[data-orientation=horizontal]]:(flex-col h-2.5)',
42
- );
43
-
44
- export const ScrollAreaThumb = withClassName(
45
- Primitive.Thumb,
46
- 'layer-components:(flex-1 rounded-lg relative bg-gray-5)',
47
- 'before:(content-[""] absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-full min-w-44px min-h-44px)',
48
- );
49
-
50
- export const ScrollAreaScrollbar = forwardRef<
51
- any,
52
- Primitive.ScrollAreaScrollbarProps
53
- >(function ScrollAreaScrollbar(props, ref) {
54
- return (
55
- <ScrollAreaScrollbarRoot {...props} ref={ref}>
56
- <ScrollAreaThumb />
57
- </ScrollAreaScrollbarRoot>
58
- );
59
- });
60
-
61
- export interface ScrollAreaProps extends Primitive.ScrollAreaProps {
62
- background?: ScrollAreaRootProps['background'];
63
- orientation?: 'vertical' | 'both';
64
- }
65
-
66
- export const ScrollArea = Object.assign(
67
- forwardRef<any, ScrollAreaProps>(function ScrollArea(
68
- { children, orientation, ...props },
69
- ref,
70
- ) {
71
- return (
72
- <ScrollAreaRoot ref={ref} {...props}>
73
- <ScrollAreaViewport>{children}</ScrollAreaViewport>
74
- <ScrollAreaScrollbar />
75
- {orientation === 'both' && (
76
- <ScrollAreaScrollbar orientation="horizontal" />
77
- )}
78
- </ScrollAreaRoot>
79
- );
80
- }),
81
- {
82
- Root: ScrollAreaRoot,
83
- Viewport: ScrollAreaViewport,
84
- Scrollbar: ScrollAreaScrollbar,
85
- },
86
- );
87
-
88
- const shadowMap = {
89
- white: 'shadow-1',
90
- wash: 'shadow-1',
91
- 'primary-wash': 'shadow-2',
92
- primary: 'shadow-1',
93
- black: 'overlay',
94
- };
1
+ import * as Primitive from '@radix-ui/react-scroll-area';
2
+ import { Ref, useMemo } from 'react';
3
+ import { withClassName } from '../../hooks.js';
4
+
5
+ const ScrollAreaRootImpl = withClassName(
6
+ Primitive.Root,
7
+ 'overflow-hidden bg-[var(--scroll-bg)] rounded-lg',
8
+ 'layer-components:([--scroll-bg:var(--color-wash)] [--scroll-shadow:var(--color-shadow-1))])',
9
+ );
10
+
11
+ export interface ScrollAreaRootProps extends Primitive.ScrollAreaProps {
12
+ background?: 'white' | 'wash' | 'primary-wash' | 'primary' | 'black';
13
+ ref?: Ref<HTMLDivElement>;
14
+ }
15
+
16
+ export const ScrollAreaRoot = function ScrollAreaRoot({
17
+ ref,
18
+ background = 'wash',
19
+ ...props
20
+ }: ScrollAreaRootProps) {
21
+ const bgStyle: any = useMemo(
22
+ () => ({
23
+ '--scroll-bg': `var(--color-${background})`,
24
+ '--scroll-shadow': `var(--color-${shadowMap[background]})`,
25
+ }),
26
+ [background],
27
+ );
28
+ return <ScrollAreaRootImpl ref={ref} style={bgStyle} {...props} />;
29
+ };
30
+
31
+ export const ScrollAreaViewport = withClassName(
32
+ Primitive.Viewport,
33
+ 'h-full w-full',
34
+ '[background:linear-gradient(var(--scroll-bg)_30%,rgba(255,255,255,0))_center_top,linear-gradient(rgba(255,255,255,0),var(--scroll-bg)_70%)_center_bottom,radial-gradient(farthest-side_at_50%_0,var(--scroll-shadow),rgba(0,0,0,0))_center_top,radial-gradient(farthest-side_at_50%_100%,var(--scroll-shadow),rgba(0,0,0,0))_center_bottom]',
35
+ '![background-repeat:no-repeat] ![background-size:100%_40px,100%_40px,100%_14px,100%_14px]',
36
+ '![background-attachment:local,local,scroll,scroll]',
37
+ );
38
+
39
+ export const ScrollAreaScrollbarRoot = withClassName(
40
+ Primitive.Scrollbar,
41
+ 'layer-components:(flex select-none touch-none p-0.5 bg-gray-2 transition-colors duration-160ms ease-out)',
42
+ 'layer-components:hover:bg-gray-3',
43
+ 'layer-components:[&[data-orientation=vertical]]:w-2.5',
44
+ 'layer-components:[&[data-orientation=horizontal]]:(flex-col h-2.5)',
45
+ );
46
+
47
+ export const ScrollAreaThumb = withClassName(
48
+ Primitive.Thumb,
49
+ 'layer-components:(flex-1 rounded-lg relative bg-gray-5)',
50
+ 'before:(content-[""] absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-full min-w-44px min-h-44px)',
51
+ );
52
+
53
+ export const ScrollAreaScrollbar = function ScrollAreaScrollbar({
54
+ ref,
55
+ ...props
56
+ }: Primitive.ScrollAreaScrollbarProps & {
57
+ ref?: Ref<HTMLDivElement>;
58
+ }) {
59
+ return (
60
+ <ScrollAreaScrollbarRoot {...props} ref={ref}>
61
+ <ScrollAreaThumb />
62
+ </ScrollAreaScrollbarRoot>
63
+ );
64
+ };
65
+
66
+ export interface ScrollAreaProps extends Primitive.ScrollAreaProps {
67
+ background?: ScrollAreaRootProps['background'];
68
+ orientation?: 'vertical' | 'both';
69
+ ref?: Ref<HTMLDivElement>;
70
+ }
71
+
72
+ export const ScrollArea = Object.assign(
73
+ function ScrollArea({
74
+ ref,
75
+ children,
76
+ orientation,
77
+ ...props
78
+ }: ScrollAreaProps) {
79
+ return (
80
+ <ScrollAreaRoot ref={ref} {...props}>
81
+ <ScrollAreaViewport>{children}</ScrollAreaViewport>
82
+ <ScrollAreaScrollbar />
83
+ {orientation === 'both' && (
84
+ <ScrollAreaScrollbar orientation="horizontal" />
85
+ )}
86
+ </ScrollAreaRoot>
87
+ );
88
+ },
89
+ {
90
+ Root: ScrollAreaRoot,
91
+ Viewport: ScrollAreaViewport,
92
+ Scrollbar: ScrollAreaScrollbar,
93
+ },
94
+ );
95
+
96
+ const shadowMap = {
97
+ white: 'shadow-1',
98
+ wash: 'shadow-1',
99
+ 'primary-wash': 'shadow-2',
100
+ primary: 'shadow-1',
101
+ black: 'overlay',
102
+ };