@a-type/ui 1.4.0 → 1.5.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 (148) hide show
  1. package/dist/cjs/colorMode.d.ts +3 -0
  2. package/dist/cjs/colorMode.js +57 -0
  3. package/dist/cjs/colorMode.js.map +1 -0
  4. package/dist/cjs/components/actions/ActionButton.js +1 -1
  5. package/dist/cjs/components/actions/ActionButton.js.map +1 -1
  6. package/dist/cjs/components/avatar/Avatar.js +3 -3
  7. package/dist/cjs/components/avatar/Avatar.js.map +1 -1
  8. package/dist/cjs/components/button/classes.js +5 -5
  9. package/dist/cjs/components/button/classes.js.map +1 -1
  10. package/dist/cjs/components/camera/Camera.js +1 -1
  11. package/dist/cjs/components/camera/Camera.js.map +1 -1
  12. package/dist/cjs/components/card/Card.js +4 -4
  13. package/dist/cjs/components/card/Card.js.map +1 -1
  14. package/dist/cjs/components/checkbox/Checkbox.js +1 -1
  15. package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
  16. package/dist/cjs/components/chip/Chip.js +1 -1
  17. package/dist/cjs/components/chip/Chip.js.map +1 -1
  18. package/dist/cjs/components/datePicker/DatePicker.js +1 -1
  19. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  20. package/dist/cjs/components/dialog/Dialog.js +1 -1
  21. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  22. package/dist/cjs/components/imageUploader/ImageUploader.js +1 -1
  23. package/dist/cjs/components/imageUploader/ImageUploader.js.map +1 -1
  24. package/dist/cjs/components/input/Input.js +1 -1
  25. package/dist/cjs/components/input/Input.js.map +1 -1
  26. package/dist/cjs/components/input/Input.stories.d.ts +5 -1
  27. package/dist/cjs/components/input/Input.stories.js +3 -1
  28. package/dist/cjs/components/input/Input.stories.js.map +1 -1
  29. package/dist/cjs/components/navBar/NavBar.js +3 -3
  30. package/dist/cjs/components/navBar/NavBar.js.map +1 -1
  31. package/dist/cjs/components/note/Note.js +1 -1
  32. package/dist/cjs/components/note/Note.js.map +1 -1
  33. package/dist/cjs/components/numberStepper/NumberStepper.js +1 -1
  34. package/dist/cjs/components/numberStepper/NumberStepper.js.map +1 -1
  35. package/dist/cjs/components/popover/Popover.js +1 -1
  36. package/dist/cjs/components/popover/Popover.js.map +1 -1
  37. package/dist/cjs/components/progress/Progress.js +2 -2
  38. package/dist/cjs/components/progress/Progress.js.map +1 -1
  39. package/dist/cjs/components/select/Select.js +2 -2
  40. package/dist/cjs/components/select/Select.js.map +1 -1
  41. package/dist/cjs/components/skeletons/skeletons.js +2 -2
  42. package/dist/cjs/components/skeletons/skeletons.js.map +1 -1
  43. package/dist/cjs/components/slider/Slider.js +3 -3
  44. package/dist/cjs/components/slider/Slider.js.map +1 -1
  45. package/dist/cjs/components/switch/Switch.js +2 -2
  46. package/dist/cjs/components/switch/Switch.js.map +1 -1
  47. package/dist/cjs/components/tabs/tabs.js +1 -1
  48. package/dist/cjs/components/tabs/tabs.js.map +1 -1
  49. package/dist/cjs/components/textArea/TextArea.js +1 -1
  50. package/dist/cjs/components/textArea/TextArea.js.map +1 -1
  51. package/dist/cjs/components/tooltip/Tooltip.js +1 -1
  52. package/dist/cjs/index.d.ts +2 -1
  53. package/dist/cjs/index.js +2 -1
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/cjs/themes.stories.js +8 -5
  56. package/dist/cjs/themes.stories.js.map +1 -1
  57. package/dist/cjs/uno.preset.d.ts +4 -2
  58. package/dist/cjs/uno.preset.js +26 -7
  59. package/dist/cjs/uno.preset.js.map +1 -1
  60. package/dist/css/main.css +2 -2
  61. package/dist/esm/colorMode.d.ts +3 -0
  62. package/dist/esm/colorMode.js +52 -0
  63. package/dist/esm/colorMode.js.map +1 -0
  64. package/dist/esm/components/actions/ActionButton.js +1 -1
  65. package/dist/esm/components/actions/ActionButton.js.map +1 -1
  66. package/dist/esm/components/avatar/Avatar.js +3 -3
  67. package/dist/esm/components/avatar/Avatar.js.map +1 -1
  68. package/dist/esm/components/button/classes.js +5 -5
  69. package/dist/esm/components/button/classes.js.map +1 -1
  70. package/dist/esm/components/camera/Camera.js +1 -1
  71. package/dist/esm/components/camera/Camera.js.map +1 -1
  72. package/dist/esm/components/card/Card.js +4 -4
  73. package/dist/esm/components/card/Card.js.map +1 -1
  74. package/dist/esm/components/checkbox/Checkbox.js +1 -1
  75. package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
  76. package/dist/esm/components/chip/Chip.js +1 -1
  77. package/dist/esm/components/chip/Chip.js.map +1 -1
  78. package/dist/esm/components/datePicker/DatePicker.js +1 -1
  79. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  80. package/dist/esm/components/dialog/Dialog.js +1 -1
  81. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  82. package/dist/esm/components/imageUploader/ImageUploader.js +1 -1
  83. package/dist/esm/components/imageUploader/ImageUploader.js.map +1 -1
  84. package/dist/esm/components/input/Input.js +1 -1
  85. package/dist/esm/components/input/Input.js.map +1 -1
  86. package/dist/esm/components/input/Input.stories.d.ts +5 -1
  87. package/dist/esm/components/input/Input.stories.js +3 -1
  88. package/dist/esm/components/input/Input.stories.js.map +1 -1
  89. package/dist/esm/components/navBar/NavBar.js +3 -3
  90. package/dist/esm/components/navBar/NavBar.js.map +1 -1
  91. package/dist/esm/components/note/Note.js +1 -1
  92. package/dist/esm/components/note/Note.js.map +1 -1
  93. package/dist/esm/components/numberStepper/NumberStepper.js +1 -1
  94. package/dist/esm/components/numberStepper/NumberStepper.js.map +1 -1
  95. package/dist/esm/components/popover/Popover.js +1 -1
  96. package/dist/esm/components/popover/Popover.js.map +1 -1
  97. package/dist/esm/components/progress/Progress.js +2 -2
  98. package/dist/esm/components/progress/Progress.js.map +1 -1
  99. package/dist/esm/components/select/Select.js +2 -2
  100. package/dist/esm/components/select/Select.js.map +1 -1
  101. package/dist/esm/components/skeletons/skeletons.js +2 -2
  102. package/dist/esm/components/skeletons/skeletons.js.map +1 -1
  103. package/dist/esm/components/slider/Slider.js +3 -3
  104. package/dist/esm/components/slider/Slider.js.map +1 -1
  105. package/dist/esm/components/switch/Switch.js +2 -2
  106. package/dist/esm/components/switch/Switch.js.map +1 -1
  107. package/dist/esm/components/tabs/tabs.js +1 -1
  108. package/dist/esm/components/tabs/tabs.js.map +1 -1
  109. package/dist/esm/components/textArea/TextArea.js +1 -1
  110. package/dist/esm/components/textArea/TextArea.js.map +1 -1
  111. package/dist/esm/components/tooltip/Tooltip.js +1 -1
  112. package/dist/esm/index.d.ts +2 -1
  113. package/dist/esm/index.js +2 -1
  114. package/dist/esm/index.js.map +1 -1
  115. package/dist/esm/themes.stories.js +4 -1
  116. package/dist/esm/themes.stories.js.map +1 -1
  117. package/dist/esm/uno.preset.d.ts +4 -2
  118. package/dist/esm/uno.preset.js +26 -7
  119. package/dist/esm/uno.preset.js.map +1 -1
  120. package/package.json +1 -1
  121. package/src/colorMode.ts +64 -0
  122. package/src/components/actions/ActionButton.tsx +1 -2
  123. package/src/components/avatar/Avatar.tsx +3 -3
  124. package/src/components/button/classes.tsx +5 -5
  125. package/src/components/camera/Camera.tsx +1 -1
  126. package/src/components/card/Card.tsx +4 -4
  127. package/src/components/checkbox/Checkbox.tsx +1 -1
  128. package/src/components/chip/Chip.tsx +1 -1
  129. package/src/components/datePicker/DatePicker.tsx +1 -1
  130. package/src/components/dialog/Dialog.tsx +2 -2
  131. package/src/components/imageUploader/ImageUploader.tsx +1 -1
  132. package/src/components/input/Input.stories.tsx +3 -1
  133. package/src/components/input/Input.tsx +2 -1
  134. package/src/components/navBar/NavBar.tsx +4 -4
  135. package/src/components/note/Note.tsx +2 -2
  136. package/src/components/numberStepper/NumberStepper.tsx +1 -1
  137. package/src/components/popover/Popover.tsx +1 -1
  138. package/src/components/progress/Progress.tsx +2 -2
  139. package/src/components/select/Select.tsx +2 -2
  140. package/src/components/skeletons/skeletons.tsx +2 -2
  141. package/src/components/slider/Slider.tsx +3 -3
  142. package/src/components/switch/Switch.tsx +2 -2
  143. package/src/components/tabs/tabs.tsx +1 -1
  144. package/src/components/textArea/TextArea.tsx +1 -1
  145. package/src/components/tooltip/Tooltip.tsx +1 -1
  146. package/src/index.ts +2 -1
  147. package/src/themes.stories.tsx +44 -0
  148. package/src/uno.preset.ts +31 -7
@@ -3,11 +3,11 @@ import { withClassName } from '../../hooks.js';
3
3
 
4
4
  export const ProgressRoot = withClassName(
5
5
  ProgressPrimitive.Root,
6
- 'layer-components:(w-full relative overflow-hidden border border-default rounded-full)',
6
+ 'layer-components:(w-full relative overflow-hidden border border-default rounded-lg)',
7
7
  );
8
8
  export const ProgressIndicator = withClassName(
9
9
  ProgressPrimitive.Indicator,
10
- 'layer-components:(bg-primary w-full h-6px translate-x-[calc(-100%*(1-var(--value)))] rounded-full transition-transform)',
10
+ 'layer-components:(bg-primary w-full h-6px translate-x-[calc(-100%*(1-var(--value)))] rounded-lg transition-transform)',
11
11
  'layer-components:[&[data-state=complete]]:(bg-accent)',
12
12
  'layer-variants:[&[data-color=accent]]:(bg-accent)',
13
13
  );
@@ -147,7 +147,7 @@ export const SelectContent = withPassthroughNativeRender(
147
147
  <SelectPrimitive.Portal>
148
148
  <SelectPrimitive.Content
149
149
  className={classNames(
150
- 'layer-components:(overflow-hidden bg-white rounded-lg border border-solid border-1 border-black z-menu shadow-lg)',
150
+ 'layer-components:(overflow-hidden bg-white rounded-lg border border-solid border border-black z-menu shadow-lg)',
151
151
  'layer-components:transform-origin-[var(--radix-select-content-transform-origin)]',
152
152
  'layer-components:[&[data-state=open]]:animate-popover-in',
153
153
  'layer-components:[&[data-state=closed]]:animate-popover-out',
@@ -185,7 +185,7 @@ export const NativeSelect = ({
185
185
  <div className={classNames('relative', className)}>
186
186
  <select
187
187
  className={classNames(
188
- 'appearance-none font-inherit bg-white inline-flex items-center justify-center rounded-full px-3 py-1 pr-8 text-sm gap-2 color-black border-solid border border-gray5 hover:border-gray7 focus:outline-none focus-visible:shadow-focus [&[data-placeholder]]:color-gray8',
188
+ 'appearance-none font-inherit bg-white inline-flex items-center justify-center rounded-lg px-3 py-1 pr-8 text-sm gap-2 color-black border-solid border border-gray5 hover:border-gray7 focus:outline-none focus-visible:shadow-focus [&[data-placeholder]]:color-gray8',
189
189
  )}
190
190
  {...props}
191
191
  ref={forwardedRef}
@@ -1,5 +1,5 @@
1
- import { useState } from 'react';
2
1
  import classNames from 'clsx';
2
+ import { useState } from 'react';
3
3
 
4
4
  export const TextSkeleton = ({
5
5
  maxLength,
@@ -15,7 +15,7 @@ export const TextSkeleton = ({
15
15
  return (
16
16
  <span
17
17
  className={classNames(
18
- 'w-full h-full rounded-2 bg-gradient-to-r from-gray1 via-gray2 to-gray1 [background-size:400%_400%] max-w-full animate-skeleton animate-duration-1200 animate-ease-in-out animate-iteration-infinite animate-alternate',
18
+ 'w-full h-full rounded-md bg-gradient-to-r from-gray1 via-gray2 to-gray1 [background-size:400%_400%] max-w-full animate-skeleton animate-duration-1200 animate-ease-in-out animate-iteration-infinite animate-alternate',
19
19
  className,
20
20
  )}
21
21
  style={{
@@ -7,16 +7,16 @@ export const SliderRoot = withClassName(
7
7
  );
8
8
  export const SliderTrack = withClassName(
9
9
  SliderPrimitive.Track,
10
- 'layer-components:(bg-transparent relative grow rounded-full h-9px border border-1px border-solid border-black)',
10
+ 'layer-components:(bg-transparent relative grow rounded-lg h-9px border borderpx border-solid border-black)',
11
11
  );
12
12
  export const SliderRange = withClassName(
13
13
  SliderPrimitive.Range,
14
- 'layer-components:(absolute bg-accent rounded-full h-full)',
14
+ 'layer-components:(absolute bg-accent rounded-lg h-full)',
15
15
  'layer-variants:[&[data-color=primary]]:bg-primary',
16
16
  );
17
17
  export const SliderThumb = withClassName(
18
18
  SliderPrimitive.Thumb,
19
- 'layer-components:(block w-5 h-5 bg-white shadow-sm rounded-full ring-2 ring-black touch-none transition-all)',
19
+ 'layer-components:(block w-5 h-5 bg-white shadow-sm rounded-lg ring-2 ring-black touch-none transition-all)',
20
20
  'layer-components:hover:(shadow-md)',
21
21
  'layer-components:active:(shadow-lg ring-4 ring-accent-dark ring-opacity-50 bg-accent-light)',
22
22
  'layer-components:focus-visible:(shadow-lg ring-4 ring-accent-dark ring-opacity-50 outline-none bg-accent-light)',
@@ -3,12 +3,12 @@ import { withClassName } from '../../hooks/withClassName.js';
3
3
 
4
4
  const SwitchRoot = withClassName(
5
5
  Root,
6
- 'unset w-42px h-25px bg-white rounded-full relative transition-color border-default flex-shrink-0 focus-visible:shadow-focus [&[data-state=checked]]:bg-accent',
6
+ 'unset w-42px h-25px bg-white rounded-lg relative transition-color border-default flex-shrink-0 focus-visible:shadow-focus [&[data-state=checked]]:bg-accent',
7
7
  );
8
8
 
9
9
  const SwitchThumb = withClassName(
10
10
  Thumb,
11
- 'block w-21px h-21px bg-white rounded-full border-default transition-transform will-change-transform [&[data-state=checked]]:translate-x-19px',
11
+ 'block w-21px h-21px bg-white rounded-lg border-default transition-transform will-change-transform [&[data-state=checked]]:translate-x-19px',
12
12
  );
13
13
 
14
14
  export const Switch = Object.assign(
@@ -10,7 +10,7 @@ export const TabsList = withClassName(
10
10
 
11
11
  export const TabsTrigger = withClassName(
12
12
  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)',
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-lg border border font-semibold text-gray-7 border-gray-7 border-solid transition-colors cursor-pointer select-none font-sans flex-shrink-0)',
14
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)',
15
15
  );
16
16
 
@@ -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)]',
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { clsx } from 'clsx';
2
2
  export { toast } from 'react-hot-toast';
3
3
 
4
- export * from './hooks.js';
4
+ export * from './colorMode.js';
5
5
  export * from './components/index.js';
6
+ export * from './hooks.js';
@@ -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',