@a-type/ui 1.4.1 → 1.5.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 (173) hide show
  1. package/dist/cjs/components/actions/ActionButton.js +1 -1
  2. package/dist/cjs/components/actions/ActionButton.js.map +1 -1
  3. package/dist/cjs/components/avatar/Avatar.js +3 -3
  4. package/dist/cjs/components/avatar/Avatar.js.map +1 -1
  5. package/dist/cjs/components/box/Box.d.ts +13 -7
  6. package/dist/cjs/components/box/Box.js +39 -4
  7. package/dist/cjs/components/box/Box.js.map +1 -1
  8. package/dist/cjs/components/box/Box.stories.d.ts +3 -0
  9. package/dist/cjs/components/box/Box.stories.js +3 -0
  10. package/dist/cjs/components/box/Box.stories.js.map +1 -1
  11. package/dist/cjs/components/button/classes.d.ts +11 -0
  12. package/dist/cjs/components/button/classes.js +7 -5
  13. package/dist/cjs/components/button/classes.js.map +1 -1
  14. package/dist/cjs/components/camera/Camera.js +1 -1
  15. package/dist/cjs/components/camera/Camera.js.map +1 -1
  16. package/dist/cjs/components/card/Card.d.ts +2 -2
  17. package/dist/cjs/components/card/Card.js +4 -4
  18. package/dist/cjs/components/card/Card.js.map +1 -1
  19. package/dist/cjs/components/checkbox/Checkbox.js +1 -1
  20. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  21. package/dist/cjs/components/chip/Chip.js +1 -1
  22. package/dist/cjs/components/chip/Chip.js.map +1 -1
  23. package/dist/cjs/components/datePicker/DatePicker.js +1 -1
  24. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  25. package/dist/cjs/components/dialog/Dialog.js +1 -1
  26. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  27. package/dist/cjs/components/dropdownMenu/DropdownMenu.js +2 -2
  28. package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
  29. package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
  30. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  31. package/dist/cjs/components/input/Input.js +1 -1
  32. package/dist/cjs/components/input/Input.js.map +1 -1
  33. package/dist/cjs/components/navBar/NavBar.js +3 -3
  34. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  35. package/dist/cjs/components/note/Note.js +1 -1
  36. package/dist/cjs/components/note/Note.js.map +1 -1
  37. package/dist/cjs/components/numberStepper/NumberStepper.js +1 -1
  38. package/dist/cjs/components/numberStepper/NumberStepper.js.map +1 -1
  39. package/dist/cjs/components/popover/Popover.js +1 -1
  40. package/dist/cjs/components/popover/Popover.js.map +1 -1
  41. package/dist/cjs/components/progress/Progress.js +2 -2
  42. package/dist/cjs/components/progress/Progress.js.map +1 -1
  43. package/dist/cjs/components/select/Select.js +2 -2
  44. package/dist/cjs/components/select/Select.js.map +1 -1
  45. package/dist/cjs/components/skeletons/skeletons.js +2 -2
  46. package/dist/cjs/components/skeletons/skeletons.js.map +1 -1
  47. package/dist/cjs/components/slider/Slider.js +3 -3
  48. package/dist/cjs/components/slider/Slider.js.map +1 -1
  49. package/dist/cjs/components/switch/Switch.js +2 -2
  50. package/dist/cjs/components/switch/Switch.js.map +1 -1
  51. package/dist/cjs/components/tabs/tabs.d.ts +6 -2
  52. package/dist/cjs/components/tabs/tabs.js +27 -2
  53. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  54. package/dist/cjs/components/tabs/tabs.stories.d.ts +8 -3
  55. package/dist/cjs/components/tabs/tabs.stories.js +9 -4
  56. package/dist/cjs/components/tabs/tabs.stories.js.map +1 -1
  57. package/dist/cjs/components/textArea/TextArea.js +1 -1
  58. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  59. package/dist/cjs/components/tooltip/Tooltip.js +1 -1
  60. package/dist/cjs/hooks/index.d.ts +5 -4
  61. package/dist/cjs/hooks/index.js +5 -4
  62. package/dist/cjs/hooks/index.js.map +1 -1
  63. package/dist/cjs/hooks/withProps.d.ts +2 -0
  64. package/dist/cjs/hooks/withProps.js +12 -0
  65. package/dist/cjs/hooks/withProps.js.map +1 -0
  66. package/dist/cjs/themes.stories.js +8 -5
  67. package/dist/cjs/themes.stories.js.map +1 -1
  68. package/dist/cjs/uno.preset.d.ts +4 -2
  69. package/dist/cjs/uno.preset.js +26 -7
  70. package/dist/cjs/uno.preset.js.map +1 -1
  71. package/dist/css/main.css +2 -2
  72. package/dist/esm/components/actions/ActionButton.js +1 -1
  73. package/dist/esm/components/actions/ActionButton.js.map +1 -1
  74. package/dist/esm/components/avatar/Avatar.js +3 -3
  75. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  76. package/dist/esm/components/box/Box.d.ts +13 -7
  77. package/dist/esm/components/box/Box.js +39 -4
  78. package/dist/esm/components/box/Box.js.map +1 -1
  79. package/dist/esm/components/box/Box.stories.d.ts +3 -0
  80. package/dist/esm/components/box/Box.stories.js +3 -0
  81. package/dist/esm/components/box/Box.stories.js.map +1 -1
  82. package/dist/esm/components/button/classes.d.ts +11 -0
  83. package/dist/esm/components/button/classes.js +6 -5
  84. package/dist/esm/components/button/classes.js.map +1 -1
  85. package/dist/esm/components/camera/Camera.js +1 -1
  86. package/dist/esm/components/camera/Camera.js.map +1 -1
  87. package/dist/esm/components/card/Card.d.ts +2 -2
  88. package/dist/esm/components/card/Card.js +4 -4
  89. package/dist/esm/components/card/Card.js.map +1 -1
  90. package/dist/esm/components/checkbox/Checkbox.js +1 -1
  91. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  92. package/dist/esm/components/chip/Chip.js +1 -1
  93. package/dist/esm/components/chip/Chip.js.map +1 -1
  94. package/dist/esm/components/datePicker/DatePicker.js +1 -1
  95. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  96. package/dist/esm/components/dialog/Dialog.js +1 -1
  97. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  98. package/dist/esm/components/dropdownMenu/DropdownMenu.js +2 -2
  99. package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
  100. package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
  101. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  102. package/dist/esm/components/input/Input.js +1 -1
  103. package/dist/esm/components/input/Input.js.map +1 -1
  104. package/dist/esm/components/navBar/NavBar.js +3 -3
  105. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  106. package/dist/esm/components/note/Note.js +1 -1
  107. package/dist/esm/components/note/Note.js.map +1 -1
  108. package/dist/esm/components/numberStepper/NumberStepper.js +1 -1
  109. package/dist/esm/components/numberStepper/NumberStepper.js.map +1 -1
  110. package/dist/esm/components/popover/Popover.js +1 -1
  111. package/dist/esm/components/popover/Popover.js.map +1 -1
  112. package/dist/esm/components/progress/Progress.js +2 -2
  113. package/dist/esm/components/progress/Progress.js.map +1 -1
  114. package/dist/esm/components/select/Select.js +2 -2
  115. package/dist/esm/components/select/Select.js.map +1 -1
  116. package/dist/esm/components/skeletons/skeletons.js +2 -2
  117. package/dist/esm/components/skeletons/skeletons.js.map +1 -1
  118. package/dist/esm/components/slider/Slider.js +3 -3
  119. package/dist/esm/components/slider/Slider.js.map +1 -1
  120. package/dist/esm/components/switch/Switch.js +2 -2
  121. package/dist/esm/components/switch/Switch.js.map +1 -1
  122. package/dist/esm/components/tabs/tabs.d.ts +6 -2
  123. package/dist/esm/components/tabs/tabs.js +22 -1
  124. package/dist/esm/components/tabs/tabs.js.map +1 -1
  125. package/dist/esm/components/tabs/tabs.stories.d.ts +8 -3
  126. package/dist/esm/components/tabs/tabs.stories.js +9 -4
  127. package/dist/esm/components/tabs/tabs.stories.js.map +1 -1
  128. package/dist/esm/components/textArea/TextArea.js +1 -1
  129. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  130. package/dist/esm/components/tooltip/Tooltip.js +1 -1
  131. package/dist/esm/hooks/index.d.ts +5 -4
  132. package/dist/esm/hooks/index.js +5 -4
  133. package/dist/esm/hooks/index.js.map +1 -1
  134. package/dist/esm/hooks/withProps.d.ts +2 -0
  135. package/dist/esm/hooks/withProps.js +8 -0
  136. package/dist/esm/hooks/withProps.js.map +1 -0
  137. package/dist/esm/themes.stories.js +4 -1
  138. package/dist/esm/themes.stories.js.map +1 -1
  139. package/dist/esm/uno.preset.d.ts +4 -2
  140. package/dist/esm/uno.preset.js +26 -7
  141. package/dist/esm/uno.preset.js.map +1 -1
  142. package/package.json +1 -1
  143. package/src/components/actions/ActionButton.tsx +1 -2
  144. package/src/components/avatar/Avatar.tsx +3 -3
  145. package/src/components/box/Box.stories.tsx +3 -0
  146. package/src/components/box/Box.tsx +70 -11
  147. package/src/components/button/classes.tsx +6 -5
  148. package/src/components/camera/Camera.tsx +1 -1
  149. package/src/components/card/Card.tsx +4 -4
  150. package/src/components/checkbox/Checkbox.tsx +1 -1
  151. package/src/components/chip/Chip.tsx +1 -1
  152. package/src/components/datePicker/DatePicker.tsx +1 -1
  153. package/src/components/dialog/Dialog.tsx +2 -2
  154. package/src/components/dropdownMenu/DropdownMenu.tsx +2 -2
  155. package/src/components/imageUploader/ImageUploader.tsx +1 -1
  156. package/src/components/input/Input.tsx +1 -1
  157. package/src/components/navBar/NavBar.tsx +4 -4
  158. package/src/components/note/Note.tsx +2 -2
  159. package/src/components/numberStepper/NumberStepper.tsx +1 -1
  160. package/src/components/popover/Popover.tsx +1 -1
  161. package/src/components/progress/Progress.tsx +2 -2
  162. package/src/components/select/Select.tsx +2 -2
  163. package/src/components/skeletons/skeletons.tsx +2 -2
  164. package/src/components/slider/Slider.tsx +3 -3
  165. package/src/components/switch/Switch.tsx +2 -2
  166. package/src/components/tabs/tabs.stories.tsx +18 -7
  167. package/src/components/tabs/tabs.tsx +29 -3
  168. package/src/components/textArea/TextArea.tsx +1 -1
  169. package/src/components/tooltip/Tooltip.tsx +1 -1
  170. package/src/hooks/index.ts +5 -4
  171. package/src/hooks/withProps.tsx +10 -0
  172. package/src/themes.stories.tsx +44 -0
  173. package/src/uno.preset.ts +31 -7
@@ -1,4 +1,5 @@
1
1
  import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ import clsx from 'clsx';
2
3
  import { withClassName } from '../../hooks/withClassName.js';
3
4
 
4
5
  export const TabsRoot = withClassName(TabsPrimitive.Root, '');
@@ -8,10 +9,35 @@ export const TabsList = withClassName(
8
9
  'flex flex-row flex-wrap py-2 px-2 items-start gap-2',
9
10
  );
10
11
 
11
- export const TabsTrigger = withClassName(
12
+ export const TabsTriggerBase = withClassName(
12
13
  TabsPrimitive.Trigger,
13
- 'layer-components:(flex flex-row items-center justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-full border border-1 font-semibold text-gray-7 border-gray-7 border-solid transition-colors cursor-pointer select-none font-sans flex-shrink-0)',
14
- 'hover:bg-primary-light focus-visible:(focus-ring focus-ring-primary-dark outline-off bg-primary-light border-primary-dark) [&[data-state=active]]:(font-semibold bg-primary-light border-primary-light text-black cursor-default hover:bg-primary-light relative z-1)',
14
+ 'layer-components:(flex flex-row items-center justify-center gap-2 color-black py-1 px-5 bg-wash text-md min-w-100px rounded-lg border-default font-semibold text-gray-8 border-gray-8 transition-colors cursor-pointer select-none font-sans flex-shrink-0 shadow-sm)',
15
+ 'layer-components:hover:bg-[var(--hover)]',
16
+ 'layer-components:focus-visible:(focus-ring focus-ring-[var(--focus)] outline-off)',
17
+ '[&[data-state=active]]:(font-semibold bg-[var(--focus,var(--hover))] text-black cursor-default hover:bg-[var(--hover)] relative z-1)',
18
+ );
19
+
20
+ const colorClasses = {
21
+ default:
22
+ 'layer-variants:([--bg:var(--color-white)] [--hover:var(--color-gray-3)] [--focus:var(--color-gray-4)] [--active:var(--color-gray-4)])',
23
+ primary:
24
+ 'layer-variants:([--bg:var(--color-primary-light)] [--hover:var(--color-primary)] [--focus:var(--color-primary)] [--active:var(--color-primary)])',
25
+ };
26
+
27
+ export interface TabsTriggerProps
28
+ extends Omit<TabsPrimitive.TabsTriggerProps, 'color'> {
29
+ color?: 'default' | 'primary';
30
+ }
31
+
32
+ export const TabsTrigger = ({
33
+ className,
34
+ color = 'primary',
35
+ ...props
36
+ }: TabsTriggerProps) => (
37
+ <TabsTriggerBase
38
+ className={clsx(colorClasses[color], `btn-color-${color}`, className)}
39
+ {...props}
40
+ />
15
41
  );
16
42
 
17
43
  export const TabsContent = withClassName(TabsPrimitive.Content, '');
@@ -97,7 +97,7 @@ export const TextArea = function TextArea({
97
97
  className={classNames(
98
98
  inputClassName,
99
99
  'layer-components:([font-family:inherit] text-inherit overflow-hidden resize-none)',
100
- 'layer-variants:(rounded-20px px-4 py-4)',
100
+ 'layer-variants:(rounded-lg px-4 py-4)',
101
101
  {
102
102
  'layer-components:[resize:vertical]': !autoSize,
103
103
  'layer-components:[resize:none]': autoSize,
@@ -12,7 +12,7 @@ function Content({
12
12
  <TooltipPrimitive.Portal>
13
13
  <TooltipPrimitive.Content
14
14
  className={classNames(
15
- 'layer-components:(relative rounded-md py-2 px-3 bg-black text-white text-sm leading-tight shadow-sm select-none hidden z-tooltip sm:display-initial)',
15
+ 'layer-components:(relative rounded-sm py-2 px-3 bg-black text-white text-sm leading-tight shadow-sm select-none hidden z-tooltip sm:display-initial)',
16
16
  '[&[data-state=delayed-open]]:display-initial',
17
17
  '[&[data-state=instant-open]]:display-initial',
18
18
  'layer-components:transform-origin-[var(--radix-tooltip-content-transform-origin)]',
@@ -1,10 +1,11 @@
1
+ export * from './useAnimationFrame.js';
2
+ export * from './useLongPress.js';
1
3
  export * from './useMergedRef.js';
4
+ export * from './useOnUnmount.js';
2
5
  export * from './useSize.js';
3
6
  export * from './useStableCallback.js';
7
+ export * from './useTitleBarColor.js';
4
8
  export * from './useToggle.js';
5
9
  export * from './useVisualViewportOffset.js';
6
- export * from './useOnUnmount.js';
7
10
  export * from './withClassName.js';
8
- export * from './useAnimationFrame.js';
9
- export * from './useLongPress.js';
10
- export * from './useTitleBarColor.js';
11
+ export * from './withProps.js';
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+
3
+ export const withProps = <T extends {}, Extras extends {}>(
4
+ Component: React.ComponentType<T & Extras>,
5
+ extras: Extras,
6
+ ) => {
7
+ return (props: T & Extras) => {
8
+ return <Component {...props} {...extras} />;
9
+ };
10
+ };
@@ -1,7 +1,10 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import clsx from 'clsx';
3
+ import { ActionBar, ActionButton } from './components/actions/index.js';
3
4
  import { Button } from './components/button/index.js';
4
5
  import { Card } from './components/card/index.js';
6
+ import { Icon } from './components/icon/index.js';
7
+ import { AvatarList, Dialog, Tooltip } from './components/index.js';
5
8
  import { Input } from './components/input/index.js';
6
9
  import { Tabs } from './components/tabs/tabs.js';
7
10
  import { TextArea } from './components/textArea/index.js';
@@ -25,6 +28,9 @@ function DemoUI({ className }: { className?: string }) {
25
28
  <Button color="primary">Primary</Button>
26
29
  <Button color="accent">Accent</Button>
27
30
  <Button>Default</Button>
31
+ <Button color="contrast">Contrast</Button>
32
+ <Button color="ghost">Ghost</Button>
33
+ <Button color="ghostAccent">Ghost Accent</Button>
28
34
  <Button size="small" color="destructive">
29
35
  Destructive
30
36
  </Button>
@@ -59,6 +65,44 @@ function DemoUI({ className }: { className?: string }) {
59
65
  <Tabs.Content value="tab2">Tab 2 Content</Tabs.Content>
60
66
  </Tabs>
61
67
  </div>
68
+ <div>
69
+ <ActionBar>
70
+ <ActionButton>
71
+ <Icon name="placeholder" />
72
+ Hello
73
+ </ActionButton>
74
+ <ActionButton color="primary">
75
+ <Icon name="placeholder" />
76
+ World
77
+ </ActionButton>
78
+ </ActionBar>
79
+ </div>
80
+ <div>
81
+ <AvatarList count={3}>
82
+ <AvatarList.Item index={0} name="John Doe" />
83
+ <AvatarList.Item index={1} name="Jane Doe" />
84
+ <AvatarList.Item index={2} name="John Smith" />
85
+ </AvatarList>
86
+ </div>
87
+ <div>
88
+ <Tooltip content="Hello World">
89
+ <Button>Hover me</Button>
90
+ </Tooltip>
91
+ </div>
92
+ <div>
93
+ <Dialog>
94
+ <Dialog.Trigger asChild>
95
+ <Button>Click</Button>
96
+ </Dialog.Trigger>
97
+ <Dialog.Content>
98
+ <Dialog.Title>Hello there</Dialog.Title>
99
+ <Dialog.Description>Im a dialog</Dialog.Description>
100
+ <Dialog.Actions>
101
+ <Dialog.Close>Close</Dialog.Close>
102
+ </Dialog.Actions>
103
+ </Dialog.Content>
104
+ </Dialog>
105
+ </div>
62
106
  </div>
63
107
  );
64
108
  }
package/src/uno.preset.ts CHANGED
@@ -1,21 +1,38 @@
1
1
  import { entriesToCss, toArray } from '@unocss/core';
2
2
  import { PreflightContext, Preset, presetUno } from 'unocss';
3
3
 
4
+ const spacing = {
5
+ sm: 0.125,
6
+ md: 0.25,
7
+ lg: 0.33333,
8
+ };
9
+ const roundedScaling = {
10
+ sm: 1,
11
+ md: 1,
12
+ lg: 1.25,
13
+ };
14
+
4
15
  export default function presetAglio({
5
- spacingIncrement = 0.25,
16
+ scale = 'md',
6
17
  interFontLocation = 'https://resources.biscuits.club/fonts/Inter-VariableFont_slnt,wght.ttf',
7
18
  colorRanges = {
8
19
  light: [90, 40],
9
20
  dark: [0, 60],
10
21
  },
22
+ borderScale = 1,
23
+ roundedness = 1,
11
24
  }: {
12
- spacingIncrement?: number;
25
+ scale?: 'sm' | 'md' | 'lg';
13
26
  interFontLocation?: string;
14
27
  colorRanges?: {
15
28
  light: [number, number];
16
29
  dark: [number, number];
17
30
  };
31
+ borderScale?: number;
32
+ roundedness?: number;
18
33
  } = {}): Preset {
34
+ const spacingIncrement = spacing[scale];
35
+ roundedness *= roundedScaling[scale];
19
36
  const lightColors = generateColors(...colorRanges.light);
20
37
  const darkColors = generateColors(...colorRanges.dark);
21
38
 
@@ -93,10 +110,17 @@ export default function presetAglio({
93
110
  },
94
111
  spacing: makeSpacing(spacingIncrement),
95
112
  borderRadius: {
96
- sm: '0.25rem',
97
- md: '0.5rem',
98
- lg: '0.75rem',
99
- xl: '1rem',
113
+ xs: `${0.25 * roundedness}rem`,
114
+ sm: `${0.5 * roundedness}rem`,
115
+ md: `${roundedness}rem`,
116
+ lg: `${roundedness * 1.25}rem`,
117
+ xl: `${roundedness * 1.5}rem`,
118
+ full: roundedness === 0 ? '0px' : '9999px',
119
+ },
120
+ lineWidth: {
121
+ DEFAULT: `${borderScale}px`,
122
+ none: '0',
123
+ thick: `${2 * borderScale}px`,
100
124
  },
101
125
  width: {
102
126
  content: '700px',
@@ -380,7 +404,7 @@ export default function presetAglio({
380
404
  ],
381
405
 
382
406
  shortcuts: {
383
- 'border-default': 'border border-1 border-solid border-black',
407
+ 'border-default': 'border border-solid border-black',
384
408
  'border-light': 'border border-solid border-gray5',
385
409
  'flex-1-0-0': 'flex-grow-1 flex-shrink-0 flex-basis-0',
386
410
  'flex-0-0-auto': 'flex-grow-0 flex-shrink-0 flex-basis-auto',