@a-type/ui 1.6.4 → 1.7.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.
- package/dist/cjs/components/box/Box.d.ts +1 -1
- package/dist/cjs/components/box/Box.js +1 -1
- package/dist/cjs/components/box/Box.js.map +1 -1
- package/dist/cjs/components/button/classes.js +10 -10
- package/dist/cjs/components/button/classes.js.map +1 -1
- package/dist/cjs/components/camera/Camera.js +1 -1
- package/dist/cjs/components/camera/Camera.js.map +1 -1
- package/dist/cjs/components/card/Card.js +4 -4
- package/dist/cjs/components/card/Card.js.map +1 -1
- package/dist/cjs/components/checkbox/Checkbox.js +1 -1
- package/dist/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/datePicker/DatePicker.js +3 -3
- package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.js +3 -3
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js +3 -3
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/editableText/EditableText.js +1 -1
- package/dist/cjs/components/editableText/EditableText.js.map +1 -1
- package/dist/cjs/components/forms/CheckboxField.js +1 -1
- package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
- package/dist/cjs/components/forms/NumberStepperField.js +2 -2
- package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
- package/dist/cjs/components/forms/TextField.js +1 -1
- package/dist/cjs/components/forms/TextField.js.map +1 -1
- package/dist/cjs/components/horizontalList/HorizontalList.js +1 -1
- package/dist/cjs/components/horizontalList/HorizontalList.js.map +1 -1
- package/dist/cjs/components/icon/generated/IconSpritesheet.js +1 -1
- package/dist/cjs/components/icon/generated/IconSpritesheet.js.map +1 -1
- package/dist/cjs/components/icon/generated/iconNames.d.ts +1 -1
- package/dist/cjs/components/icon/generated/iconNames.js +2 -0
- package/dist/cjs/components/icon/generated/iconNames.js.map +1 -1
- package/dist/cjs/components/input/Input.js +1 -1
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/components/layouts/layouts.stories.js +1 -1
- package/dist/cjs/components/layouts/layouts.stories.js.map +1 -1
- package/dist/cjs/components/masonry/masonry.stories.js +2 -2
- package/dist/cjs/components/masonry/masonry.stories.js.map +1 -1
- package/dist/cjs/components/navBar/NavBar.d.ts +3 -2
- package/dist/cjs/components/navBar/NavBar.js +11 -5
- package/dist/cjs/components/navBar/NavBar.js.map +1 -1
- package/dist/cjs/components/numberStepper/NumberStepper.js +2 -2
- package/dist/cjs/components/numberStepper/NumberStepper.js.map +1 -1
- package/dist/cjs/components/popover/Popover.js +1 -1
- package/dist/cjs/components/popover/Popover.js.map +1 -1
- package/dist/cjs/components/richEditor/index.js +1 -1
- package/dist/cjs/components/richEditor/index.js.map +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.js +2 -2
- package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/cjs/components/select/Select.js +1 -1
- package/dist/cjs/components/select/Select.js.map +1 -1
- package/dist/cjs/components/tabs/tabs.js +3 -3
- package/dist/cjs/components/tabs/tabs.js.map +1 -1
- package/dist/cjs/themes.stories.js +6 -1
- package/dist/cjs/themes.stories.js.map +1 -1
- package/dist/cjs/uno.preset.d.ts +2 -1
- package/dist/cjs/uno.preset.js +190 -47
- package/dist/cjs/uno.preset.js.map +1 -1
- package/dist/css/main.css +65 -35
- package/dist/esm/components/box/Box.d.ts +1 -1
- package/dist/esm/components/box/Box.js +1 -1
- package/dist/esm/components/box/Box.js.map +1 -1
- package/dist/esm/components/button/classes.js +10 -10
- package/dist/esm/components/button/classes.js.map +1 -1
- package/dist/esm/components/camera/Camera.js +1 -1
- package/dist/esm/components/camera/Camera.js.map +1 -1
- package/dist/esm/components/card/Card.js +4 -4
- package/dist/esm/components/card/Card.js.map +1 -1
- package/dist/esm/components/checkbox/Checkbox.js +1 -1
- package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/datePicker/DatePicker.js +3 -3
- package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.js +3 -3
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dropdownMenu/DropdownMenu.js +3 -3
- package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/esm/components/editableText/EditableText.js +1 -1
- package/dist/esm/components/editableText/EditableText.js.map +1 -1
- package/dist/esm/components/forms/CheckboxField.js +1 -1
- package/dist/esm/components/forms/CheckboxField.js.map +1 -1
- package/dist/esm/components/forms/NumberStepperField.js +2 -2
- package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
- package/dist/esm/components/forms/TextField.js +1 -1
- package/dist/esm/components/forms/TextField.js.map +1 -1
- package/dist/esm/components/horizontalList/HorizontalList.js +1 -1
- package/dist/esm/components/horizontalList/HorizontalList.js.map +1 -1
- package/dist/esm/components/icon/generated/IconSpritesheet.js +1 -1
- package/dist/esm/components/icon/generated/IconSpritesheet.js.map +1 -1
- package/dist/esm/components/icon/generated/iconNames.d.ts +1 -1
- package/dist/esm/components/icon/generated/iconNames.js +2 -0
- package/dist/esm/components/icon/generated/iconNames.js.map +1 -1
- package/dist/esm/components/input/Input.js +1 -1
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/layouts/layouts.stories.js +1 -1
- package/dist/esm/components/layouts/layouts.stories.js.map +1 -1
- package/dist/esm/components/masonry/masonry.stories.js +2 -2
- package/dist/esm/components/masonry/masonry.stories.js.map +1 -1
- package/dist/esm/components/navBar/NavBar.d.ts +3 -2
- package/dist/esm/components/navBar/NavBar.js +11 -5
- package/dist/esm/components/navBar/NavBar.js.map +1 -1
- package/dist/esm/components/numberStepper/NumberStepper.js +2 -2
- package/dist/esm/components/numberStepper/NumberStepper.js.map +1 -1
- package/dist/esm/components/popover/Popover.js +1 -1
- package/dist/esm/components/popover/Popover.js.map +1 -1
- package/dist/esm/components/richEditor/index.js +1 -1
- package/dist/esm/components/richEditor/index.js.map +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.js +2 -2
- package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/select/Select.js +1 -1
- package/dist/esm/components/select/Select.js.map +1 -1
- package/dist/esm/components/tabs/tabs.js +3 -3
- package/dist/esm/components/tabs/tabs.js.map +1 -1
- package/dist/esm/themes.stories.js +7 -2
- package/dist/esm/themes.stories.js.map +1 -1
- package/dist/esm/uno.preset.d.ts +2 -1
- package/dist/esm/uno.preset.js +190 -47
- package/dist/esm/uno.preset.js.map +1 -1
- package/package.json +1 -1
- package/src/components/box/Box.tsx +3 -2
- package/src/components/button/classes.tsx +15 -14
- package/src/components/camera/Camera.tsx +2 -2
- package/src/components/card/Card.tsx +5 -5
- package/src/components/checkbox/Checkbox.tsx +1 -1
- package/src/components/datePicker/DatePicker.tsx +8 -8
- package/src/components/dialog/Dialog.tsx +3 -3
- package/src/components/dropdownMenu/DropdownMenu.tsx +4 -4
- package/src/components/editableText/EditableText.tsx +1 -1
- package/src/components/forms/CheckboxField.tsx +1 -1
- package/src/components/forms/NumberStepperField.tsx +2 -2
- package/src/components/forms/TextField.tsx +1 -1
- package/src/components/horizontalList/HorizontalList.tsx +1 -1
- package/src/components/icon/generated/IconSpritesheet.tsx +19 -0
- package/src/components/icon/generated/iconNames.ts +2 -0
- package/src/components/input/Input.tsx +4 -4
- package/src/components/layouts/layouts.stories.tsx +9 -0
- package/src/components/masonry/masonry.stories.tsx +2 -2
- package/src/components/navBar/NavBar.tsx +21 -8
- package/src/components/numberStepper/NumberStepper.tsx +2 -2
- package/src/components/popover/Popover.tsx +1 -1
- package/src/components/richEditor/index.ts +1 -1
- package/src/components/scrollArea/ScrollArea.tsx +3 -3
- package/src/components/select/Select.tsx +4 -2
- package/src/components/tabs/tabs.tsx +6 -8
- package/src/themes.stories.tsx +159 -85
- package/src/uno.preset.ts +218 -46
|
@@ -22,14 +22,14 @@ import { selectTriggerClassName } from '../select/index.js';
|
|
|
22
22
|
|
|
23
23
|
const StyledOverlay = withClassName(
|
|
24
24
|
DialogPrimitive.Overlay,
|
|
25
|
-
'layer-components:(fixed inset-0 z-dialog-backdrop animate-fade-in animate-duration-200 bg-overlay [box-shadow:inset_0_30px_60px_0px_var(--color-overlay)] border-top-1 border-top-solid border-top-gray
|
|
25
|
+
'layer-components:(fixed inset-0 z-dialog-backdrop animate-fade-in animate-duration-200 bg-overlay [box-shadow:inset_0_30px_60px_0px_var(--color-overlay)] border-top-1 border-top-solid border-top-gray)',
|
|
26
26
|
'layer-components:[&[data-state=closed]]:animate-fade-out',
|
|
27
27
|
'motion-reduce:animate-none',
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
const StyledContent = withClassName(
|
|
31
31
|
DialogPrimitive.Content,
|
|
32
|
-
'layer-components:(z-dialog fixed shadow-xl-up bg-white overflow-y-auto flex flex-col border-top-1 border-top-solid border-top-gray
|
|
32
|
+
'layer-components:(z-dialog fixed shadow-xl-up bg-white overflow-y-auto flex flex-col border-top-1 border-top-solid border-top-gray)',
|
|
33
33
|
'layer-components:sm:(shadow-xl)',
|
|
34
34
|
'transform-gpu !motion-reduce:animate-none',
|
|
35
35
|
'layer-components:(left-50% top-50% translate-[-50%] w-90vw max-w-450px max-h-85vh p-6 pt-8 rounded-lg border-b-1 pt-6)',
|
|
@@ -188,7 +188,7 @@ export const DialogSwipeHandle = function DialogSwipeHandle({
|
|
|
188
188
|
className,
|
|
189
189
|
)}
|
|
190
190
|
>
|
|
191
|
-
<div className="w-full h-[4px] bg-gray
|
|
191
|
+
<div className="w-full h-[4px] bg-gray rounded-lg" />
|
|
192
192
|
</div>
|
|
193
193
|
);
|
|
194
194
|
};
|
|
@@ -16,8 +16,8 @@ const StyledContent = withClassName(
|
|
|
16
16
|
);
|
|
17
17
|
const itemClassName = classNames(
|
|
18
18
|
'layer-components:(text-md leading-4 color-black flex items-center pr-4 pl-8 py-2 relative text-left select-none cursor-pointer)',
|
|
19
|
-
'layer-components:[&[data-disabled]]:(color-
|
|
20
|
-
'layer-components:focus-visible:(bg-
|
|
19
|
+
'layer-components:[&[data-disabled]]:(color-black pointer-events-none)',
|
|
20
|
+
'layer-components:focus-visible:(bg-gray-light bg-darken-0.5 color-black)',
|
|
21
21
|
'layer-components:focus:outline-none',
|
|
22
22
|
);
|
|
23
23
|
const StyledItemBase = withClassName(DropdownMenuPrimitive.Item, itemClassName);
|
|
@@ -55,7 +55,7 @@ const StyledRadioItem = withClassName(
|
|
|
55
55
|
|
|
56
56
|
const StyledLabel = withClassName(
|
|
57
57
|
DropdownMenuPrimitive.Label,
|
|
58
|
-
'pl-3 py-1 font-bold text-sm leading-6 color-gray-
|
|
58
|
+
'pl-3 py-1 font-bold text-sm leading-6 color-gray-dark',
|
|
59
59
|
);
|
|
60
60
|
|
|
61
61
|
const StyledSeparator = withClassName(
|
|
@@ -102,7 +102,7 @@ export const DropdownMenuContent = ({
|
|
|
102
102
|
return (
|
|
103
103
|
<StyledPortal forceMount={forceMount}>
|
|
104
104
|
<StyledContent {...props}>
|
|
105
|
-
<div className="overflow-hidden rounded-
|
|
105
|
+
<div className="overflow-hidden rounded-lg">{children}</div>
|
|
106
106
|
<StyledArrow />
|
|
107
107
|
</StyledContent>
|
|
108
108
|
</StyledPortal>
|
|
@@ -104,7 +104,7 @@ export function EditableText({
|
|
|
104
104
|
inputClassName,
|
|
105
105
|
'layer-variants:(border-transparent bg-transparent w-auto inline-flex items-center gap-2 font-size-inherit text-inherit shadow-none)',
|
|
106
106
|
'layer-variants:hover:(bg-gray-blend)',
|
|
107
|
-
'layer-variants:focus-visible:(outline-none bg-gray-
|
|
107
|
+
'layer-variants:focus-visible:(outline-none bg-gray-darkBlend)',
|
|
108
108
|
'cursor-pointer',
|
|
109
109
|
className,
|
|
110
110
|
)}
|
|
@@ -43,5 +43,5 @@ const FieldRoot = withClassName(
|
|
|
43
43
|
|
|
44
44
|
const FieldLabel = withClassName(
|
|
45
45
|
'label',
|
|
46
|
-
'layer-components:(inline-flex flex-col gap-1 text-md font-normal text-
|
|
46
|
+
'layer-components:(inline-flex flex-col gap-1 text-md font-normal text-darkBlend mt-2px)',
|
|
47
47
|
);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useField } from 'formik';
|
|
2
2
|
import { withClassName } from '../../hooks.js';
|
|
3
|
+
import { useIdOrGenerated } from '../../hooks/useIdOrGenerated.js';
|
|
3
4
|
import {
|
|
4
5
|
NumberStepper,
|
|
5
6
|
NumberStepperProps,
|
|
6
7
|
} from '../numberStepper/NumberStepper.js';
|
|
7
|
-
import { useIdOrGenerated } from '../../hooks/useIdOrGenerated.js';
|
|
8
8
|
|
|
9
9
|
export interface NumberStepperFieldProps
|
|
10
10
|
extends Omit<NumberStepperProps, 'value' | 'onChange'> {
|
|
@@ -50,5 +50,5 @@ const FieldRoot = withClassName(
|
|
|
50
50
|
|
|
51
51
|
const FieldLabel = withClassName(
|
|
52
52
|
'label',
|
|
53
|
-
'layer-components:(block flex-col gap-1 text-md font-normal text-
|
|
53
|
+
'layer-components:(block flex-col gap-1 text-md font-normal text-darkBlend mt-2px)',
|
|
54
54
|
);
|
|
@@ -170,7 +170,7 @@ export function HorizontalList({
|
|
|
170
170
|
className={clsx(
|
|
171
171
|
'flex-shrink-0 bg-[var(--scroll-bg)] sticky left-0 top-2 z-1',
|
|
172
172
|
!open &&
|
|
173
|
-
'rounded-none h-full border-r border-r-solid border-r-gray
|
|
173
|
+
'rounded-none h-full border-r border-r-solid border-r-gray',
|
|
174
174
|
)}
|
|
175
175
|
>
|
|
176
176
|
<Icon
|
|
@@ -429,6 +429,19 @@ export const IconSpritesheet = (props: any) => (
|
|
|
429
429
|
fill="currentColor"
|
|
430
430
|
/>
|
|
431
431
|
</symbol>
|
|
432
|
+
<symbol id="icon-linkRemove" viewBox="0 0 15 15">
|
|
433
|
+
<path
|
|
434
|
+
d="M12.5 2.5L2.5 12.5"
|
|
435
|
+
stroke="currentColor"
|
|
436
|
+
strokeLinecap="round"
|
|
437
|
+
/>
|
|
438
|
+
<path
|
|
439
|
+
fillRule="evenodd"
|
|
440
|
+
clipRule="evenodd"
|
|
441
|
+
d="M9.58577 4.00001H9.50002C9.22387 4.00001 9.00002 4.22387 9.00002 4.50001C9.00002 4.52706 9.00216 4.55361 9.0063 4.57949L9.58577 4.00001ZM6.58579 7H5.00068C4.72454 7 4.50068 7.22386 4.50068 7.5C4.50068 7.77614 4.72454 8 5.00068 8H5.58579L6.58579 7ZM8.41421 8L9.41421 7H10.0007C10.2768 7 10.5007 7.22386 10.5007 7.5C10.5007 7.77614 10.2768 8 10.0007 8H8.41421ZM3.62037 9.96542C3.61557 9.96456 3.61081 9.96367 3.60607 9.96277C2.80293 9.8094 2.19187 9.21108 2.03765 8.46678C2.00264 8.29778 2.00002 8.08251 2.00002 7.50001C2.00002 6.91752 2.00264 6.70225 2.03765 6.53324C2.19187 5.78895 2.80293 5.19062 3.60607 5.03725C3.78938 5.00225 4.02114 5.00001 4.62502 5.00001H5.50002C5.77616 5.00001 6.00002 4.77615 6.00002 4.50001C6.00002 4.22387 5.77616 4.00001 5.50002 4.00001H4.62502L4.56433 4.00001C4.04165 3.99993 3.70718 3.99988 3.41851 4.055C2.2382 4.28039 1.29877 5.17053 1.05845 6.33035C0.999843 6.61321 0.999909 6.93998 1.00001 7.43689L1.00002 7.50001L1.00001 7.56313C0.999909 8.06004 0.999843 8.38681 1.05845 8.66967C1.25643 9.62517 1.92889 10.3976 2.81962 10.7662L3.62037 9.96542ZM5.4142 11L5.99373 10.4205C5.99787 10.4464 6.00002 10.4729 6.00002 10.5C6.00002 10.7762 5.77616 11 5.50002 11H5.4142ZM11.3796 5.0346L12.1804 4.23384C13.0711 4.60237 13.7436 5.37484 13.9416 6.33035C14.0002 6.61321 14.0001 6.93998 14 7.43688L14 7.50001L14 7.56314C14.0001 8.06005 14.0002 8.38681 13.9416 8.66967C13.7013 9.8295 12.7618 10.7196 11.5815 10.945C11.2929 11.0001 10.9584 11.0001 10.4357 11L10.375 11H9.50002C9.22387 11 9.00002 10.7762 9.00002 10.5C9.00002 10.2239 9.22387 10 9.50002 10H10.375C10.9789 10 11.2107 9.99777 11.394 9.96277C12.1971 9.8094 12.8082 9.21108 12.9624 8.46678C12.9974 8.29778 13 8.08251 13 7.50001C13 6.91752 12.9974 6.70225 12.9624 6.53324C12.8082 5.78895 12.1971 5.19062 11.394 5.03725C11.3892 5.03635 11.3844 5.03546 11.3796 5.0346Z"
|
|
442
|
+
fill="currentColor"
|
|
443
|
+
/>
|
|
444
|
+
</symbol>
|
|
432
445
|
<symbol id="icon-camera" viewBox="0 0 15 15">
|
|
433
446
|
<path
|
|
434
447
|
fillRule="evenodd"
|
|
@@ -957,6 +970,12 @@ export const IconSpritesheet = (props: any) => (
|
|
|
957
970
|
strokeLinejoin="round"
|
|
958
971
|
/>
|
|
959
972
|
</symbol>
|
|
973
|
+
<symbol id="icon-share" viewBox="0 0 15 15">
|
|
974
|
+
<circle cx="11.5" cy="2.5" r="2" fill="currentColor" />
|
|
975
|
+
<circle cx="11.5" cy="12.5" r="2" fill="currentColor" />
|
|
976
|
+
<circle cx="4" cy="7.5" r="2" fill="currentColor" />
|
|
977
|
+
<path d="M11.5 2.5L3.5 7.5L11.5 12.5" stroke="currentColor" />
|
|
978
|
+
</symbol>
|
|
960
979
|
</defs>
|
|
961
980
|
</svg>
|
|
962
981
|
);
|
|
@@ -38,6 +38,7 @@ export const iconNames = [
|
|
|
38
38
|
'maximize',
|
|
39
39
|
'email',
|
|
40
40
|
'link',
|
|
41
|
+
'linkRemove',
|
|
41
42
|
'camera',
|
|
42
43
|
'calendar',
|
|
43
44
|
'page',
|
|
@@ -85,6 +86,7 @@ export const iconNames = [
|
|
|
85
86
|
'skipEnd',
|
|
86
87
|
'enterKey',
|
|
87
88
|
'gamePiece',
|
|
89
|
+
'share',
|
|
88
90
|
] as const;
|
|
89
91
|
|
|
90
92
|
export type IconName = (typeof iconNames)[number];
|
|
@@ -4,10 +4,10 @@ import { ChangeEvent, ComponentProps, FocusEvent, useCallback } from 'react';
|
|
|
4
4
|
import { useRotatingShuffledValue } from '../../hooks/useRotatingShuffledValue.js';
|
|
5
5
|
|
|
6
6
|
export const inputClassName = classNames(
|
|
7
|
-
'layer-components:(px-5 py-1.25 text-md font-sans rounded-xl bg-white select-auto min-w-60px color-black border-solid border border-gray-
|
|
8
|
-
'layer-components:focus:(outline-none bg-
|
|
9
|
-
'layer-components:focus-visible:(outline-none ring-gray-
|
|
10
|
-
'layer-components:disabled:(bg-transparent border-gray
|
|
7
|
+
'layer-components:(px-5 py-1.25 text-md font-sans rounded-xl bg-white select-auto min-w-60px color-black border-solid border border-gray-dark shadow-sm-inset)',
|
|
8
|
+
'layer-components:focus:(outline-none bg-lighten-2 ring-4 ring-white)',
|
|
9
|
+
'layer-components:focus-visible:(outline-none ring-gray-darkBlend)',
|
|
10
|
+
'layer-components:disabled:(bg-transparent border-gray placeholder-gray-dark shadow-none)',
|
|
11
11
|
'layer-components:md:(min-w-120px)',
|
|
12
12
|
);
|
|
13
13
|
|
|
@@ -64,6 +64,15 @@ export const Default: Story = {
|
|
|
64
64
|
<NavBarItemText>Item 2</NavBarItemText>
|
|
65
65
|
<NavBarItemPip />
|
|
66
66
|
</NavBarItem>
|
|
67
|
+
<NavBarItem color="neutral" active={true}>
|
|
68
|
+
<NavBarItemIconWrapper>
|
|
69
|
+
<NavBarItemIcon asChild>
|
|
70
|
+
<Icon name="book" />
|
|
71
|
+
</NavBarItemIcon>
|
|
72
|
+
</NavBarItemIconWrapper>
|
|
73
|
+
<NavBarItemText>Neutral</NavBarItemText>
|
|
74
|
+
<NavBarItemPip />
|
|
75
|
+
</NavBarItem>
|
|
67
76
|
</NavBarRoot>
|
|
68
77
|
</PageNav>
|
|
69
78
|
</PageRoot>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { Masonry } from './masonry.js';
|
|
3
2
|
import { useState } from 'react';
|
|
3
|
+
import { Masonry } from './masonry.js';
|
|
4
4
|
|
|
5
5
|
const meta = {
|
|
6
6
|
title: 'Masonry',
|
|
@@ -33,7 +33,7 @@ const content = (spans?: boolean) =>
|
|
|
33
33
|
return (
|
|
34
34
|
<div
|
|
35
35
|
key={i}
|
|
36
|
-
className="bg-gray-
|
|
36
|
+
className="bg-gray-light rounded-lg"
|
|
37
37
|
style={{ height: size }}
|
|
38
38
|
data-span={spans ? span : undefined}
|
|
39
39
|
onClick={() => setSpan((v) => (v === 1 ? 2 : 1))}
|
|
@@ -5,12 +5,13 @@ import { withClassName } from '../../hooks.js';
|
|
|
5
5
|
import { Icon, IconProps } from '../icon/index.js';
|
|
6
6
|
|
|
7
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-
|
|
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-dark select-none)',
|
|
9
9
|
'layer-components:sm:(flex-row-reverse h-auto justify-start gap-2 overflow-visible)',
|
|
10
|
-
'layer-components:
|
|
11
|
-
'layer-components:
|
|
12
|
-
'layer-components:
|
|
13
|
-
'layer-components:[&[data-active=true]]:(bg-
|
|
10
|
+
'layer-components:active:bg-darken-2 layer-components:sm:active:bg-darken-2',
|
|
11
|
+
'layer-components:hover:bg-darken-1',
|
|
12
|
+
'layer-components:focus-visible:(outline-none bg-darken-3)',
|
|
13
|
+
'layer-components:[&[data-active=true]]:(bg-[var(--bg)] bg-darken-2 text-black)',
|
|
14
|
+
'layer-components:([--bg:var(--color-primary-wash)] [--fill:var(--color-primary)])',
|
|
14
15
|
);
|
|
15
16
|
|
|
16
17
|
export interface NavBarItemProps {
|
|
@@ -18,6 +19,7 @@ export interface NavBarItemProps {
|
|
|
18
19
|
className?: string;
|
|
19
20
|
children?: ReactNode;
|
|
20
21
|
active?: boolean;
|
|
22
|
+
color?: 'primary' | 'neutral';
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export const NavBarItem = function NavBarItem({
|
|
@@ -25,6 +27,7 @@ export const NavBarItem = function NavBarItem({
|
|
|
25
27
|
asChild,
|
|
26
28
|
className,
|
|
27
29
|
active,
|
|
30
|
+
color,
|
|
28
31
|
...rest
|
|
29
32
|
}: NavBarItemProps & {
|
|
30
33
|
ref?: React.Ref<HTMLDivElement>;
|
|
@@ -34,7 +37,17 @@ export const NavBarItem = function NavBarItem({
|
|
|
34
37
|
return (
|
|
35
38
|
<Comp
|
|
36
39
|
ref={ref}
|
|
37
|
-
className={classNames(
|
|
40
|
+
className={classNames(
|
|
41
|
+
navBarItemClass,
|
|
42
|
+
color === 'neutral' && [
|
|
43
|
+
'layer-variants:active:bg-gray-darkBlend layer-variants:sm:active:bg-gray-darkBlend',
|
|
44
|
+
'layer-variants:hover:bg-gray-darkBlend',
|
|
45
|
+
'layer-variants:focus-visible:(bg-gray-darkBlend)',
|
|
46
|
+
'layer-variants:[&[data-active=true]]:(bg-gray-darkBlend text-black)',
|
|
47
|
+
'layer-variants:([--bg:var(--color-gray-blend)] [--fill:var(--color-gray)])',
|
|
48
|
+
],
|
|
49
|
+
className,
|
|
50
|
+
)}
|
|
38
51
|
data-active={active}
|
|
39
52
|
{...rest}
|
|
40
53
|
/>
|
|
@@ -44,7 +57,7 @@ export const NavBarItem = function NavBarItem({
|
|
|
44
57
|
export const NavBarItemIconWrapper = withClassName(
|
|
45
58
|
'div',
|
|
46
59
|
'layer-components:(relative flex) layer-components:sm:(p-6px rounded-lg bg-gray-blend)',
|
|
47
|
-
'layer-variants:sm:[*[data-active=true]_&]:bg-
|
|
60
|
+
'layer-variants:sm:[*[data-active=true]_&]:bg-[var(--bg)]',
|
|
48
61
|
);
|
|
49
62
|
|
|
50
63
|
export const NavBarItemText = withClassName(
|
|
@@ -73,7 +86,7 @@ export const NavBarItemIcon = function NavBarItemIcon({
|
|
|
73
86
|
name={name}
|
|
74
87
|
className={clsx(
|
|
75
88
|
'layer-components:(relative z-1 flex fill-none text-inherit)',
|
|
76
|
-
'layer-variants:[*[data-active=true]_&]:fill-
|
|
89
|
+
'layer-variants:[*[data-active=true]_&]:fill-[var(--fill)]',
|
|
77
90
|
className,
|
|
78
91
|
)}
|
|
79
92
|
{...rest}
|
|
@@ -67,9 +67,9 @@ export function NumberStepper({
|
|
|
67
67
|
return (
|
|
68
68
|
<div
|
|
69
69
|
className={classNames(
|
|
70
|
-
'layer-components:(flex items-center border-solid border border-gray-
|
|
70
|
+
'layer-components:(flex items-center border-solid border border-gray-dark rounded-lg overflow-hidden w-min-content flex-shrink-0 bg-white shadow-sm)',
|
|
71
71
|
disabled &&
|
|
72
|
-
'layer-variants:(border-gray-
|
|
72
|
+
'layer-variants:(border-gray-darkBlend bg-transparent shadow-none)',
|
|
73
73
|
{
|
|
74
74
|
'layer-variants:(bg-accent-wash color-black)':
|
|
75
75
|
!!highlightChange && value !== 1,
|
|
@@ -26,7 +26,7 @@ const StyledArrow = withClassName(
|
|
|
26
26
|
|
|
27
27
|
const StyledClose = withClassName(
|
|
28
28
|
PopoverPrimitive.Close,
|
|
29
|
-
'layer-components:([all:unset] [font-family:inherit] rounded-lg h-25px w-25px inline-flex items-center justify-center color-
|
|
29
|
+
'layer-components:([all:unset] [font-family:inherit] rounded-lg h-25px w-25px inline-flex items-center justify-center color-darkBlend absolute top-5px right-5px hover:bg-lightBlend focus:shadow-focus)',
|
|
30
30
|
);
|
|
31
31
|
|
|
32
32
|
// Exports
|
|
@@ -10,7 +10,7 @@ export const tipTapClassName = clsx(
|
|
|
10
10
|
'layer-components:[&_.ProseMirror_h4]:(text-sm font-bold mb-sm)',
|
|
11
11
|
'layer-components:[&_.ProseMirror_p]:(mb-sm)',
|
|
12
12
|
'layer-components:[&_.ProseMirror_a]:underline',
|
|
13
|
-
'layer-components:[&_.ProseMirror]:(bg-white rounded-[20px] px-4 py-2 shadow-sm-inset border-gray
|
|
13
|
+
'layer-components:[&_.ProseMirror]:(bg-white rounded-[20px] px-4 py-2 shadow-sm-inset border-gray border-solid border-1)',
|
|
14
14
|
);
|
|
15
15
|
|
|
16
16
|
export const tipTapReadonlyClassName = clsx(
|
|
@@ -38,15 +38,15 @@ export const ScrollAreaViewport = withClassName(
|
|
|
38
38
|
|
|
39
39
|
export const ScrollAreaScrollbarRoot = withClassName(
|
|
40
40
|
Primitive.Scrollbar,
|
|
41
|
-
'layer-components:(flex select-none touch-none p-0.5 bg-gray-
|
|
42
|
-
'layer-components:hover:bg-
|
|
41
|
+
'layer-components:(flex select-none touch-none p-0.5 bg-gray-wash transition-colors duration-160ms ease-out)',
|
|
42
|
+
'layer-components:hover:bg-lighten-1',
|
|
43
43
|
'layer-components:[&[data-orientation=vertical]]:w-2.5',
|
|
44
44
|
'layer-components:[&[data-orientation=horizontal]]:(flex-col h-2.5)',
|
|
45
45
|
);
|
|
46
46
|
|
|
47
47
|
export const ScrollAreaThumb = withClassName(
|
|
48
48
|
Primitive.Thumb,
|
|
49
|
-
'layer-components:(flex-1 rounded-lg relative bg-gray
|
|
49
|
+
'layer-components:(flex-1 rounded-lg relative bg-gray)',
|
|
50
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
51
|
);
|
|
52
52
|
|
|
@@ -44,8 +44,10 @@ export const SelectItem = ({
|
|
|
44
44
|
|
|
45
45
|
export const SelectItemRoot = withClassName(
|
|
46
46
|
SelectPrimitive.Item,
|
|
47
|
-
'text-md leading-4 color-black rounded-sm flex items-center flex-row h-36px pr-4 pl-35px relative select-none',
|
|
48
|
-
'[&[data-disabled]]:(color-gray5 pointer-events-none) [&[data-highlighted]]:(outline-none bg-primary-wash color-black)',
|
|
47
|
+
'layer-components:(text-md leading-4 color-black rounded-sm flex items-center flex-row h-36px pr-4 pl-35px relative select-none)',
|
|
48
|
+
'layer-components:[&[data-disabled]]:(color-gray5 pointer-events-none) [&[data-highlighted]]:(outline-none bg-primary-wash color-black)',
|
|
49
|
+
'layer-components:[&:first-child]:(rounded-t-lg)',
|
|
50
|
+
'layer-components:[&:last-child]:(rounded-b-lg)',
|
|
49
51
|
);
|
|
50
52
|
export const SelectItemIndicatorRoot = withClassName(
|
|
51
53
|
SelectPrimitive.ItemIndicator,
|
|
@@ -11,17 +11,15 @@ export const TabsList = withClassName(
|
|
|
11
11
|
|
|
12
12
|
export const TabsTriggerBase = withClassName(
|
|
13
13
|
TabsPrimitive.Trigger,
|
|
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-
|
|
15
|
-
'layer-components:hover:bg-
|
|
16
|
-
'layer-components:focus-visible:(
|
|
17
|
-
'[&[data-state=active]]:(
|
|
14
|
+
'layer-components:(flex flex-row items-center cursor-pointer 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-darkBlend border-gray-dark transition-all cursor-pointer select-none font-sans flex-shrink-0 shadow-sm)',
|
|
15
|
+
'layer-components:hover:(bg-darken-1 ring-4 ring-bg)',
|
|
16
|
+
'layer-components:focus-visible:(bg-darken-3 ring-6 ring-bg outline-off)',
|
|
17
|
+
'[&[data-state=active]]:(bg-[var(--bg)] font-semibold text-black cursor-default hover:bg-darken-1 relative z-1)',
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
const colorClasses = {
|
|
21
|
-
default:
|
|
22
|
-
|
|
23
|
-
primary:
|
|
24
|
-
'layer-variants:([--bg:var(--color-primary)] [--hover:var(--color-primary-light)] [--focus:var(--color-primary-light)] [--active:var(--color-primary-light)])',
|
|
21
|
+
default: 'layer-variants:([--bg:var(--color-white)])',
|
|
22
|
+
primary: 'layer-variants:([--bg:var(--color-primary-light)])',
|
|
25
23
|
};
|
|
26
24
|
|
|
27
25
|
export interface TabsTriggerProps
|
package/src/themes.stories.tsx
CHANGED
|
@@ -4,7 +4,26 @@ import { ActionBar, ActionButton } from './components/actions/index.js';
|
|
|
4
4
|
import { Button } from './components/button/index.js';
|
|
5
5
|
import { Card } from './components/card/index.js';
|
|
6
6
|
import { Icon } from './components/icon/index.js';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
AvatarList,
|
|
9
|
+
Box,
|
|
10
|
+
DateRangePicker,
|
|
11
|
+
Dialog,
|
|
12
|
+
DropdownMenu,
|
|
13
|
+
ImageUploader,
|
|
14
|
+
NavBarItem,
|
|
15
|
+
NavBarItemIcon,
|
|
16
|
+
NavBarItemIconWrapper,
|
|
17
|
+
NavBarItemPip,
|
|
18
|
+
NavBarItemText,
|
|
19
|
+
NavBarRoot,
|
|
20
|
+
Note,
|
|
21
|
+
PageContent,
|
|
22
|
+
PageNav,
|
|
23
|
+
PageRoot,
|
|
24
|
+
Progress,
|
|
25
|
+
Tooltip,
|
|
26
|
+
} from './components/index.js';
|
|
8
27
|
import { Input } from './components/input/index.js';
|
|
9
28
|
import { Tabs } from './components/tabs/tabs.js';
|
|
10
29
|
import { TextArea } from './components/textArea/index.js';
|
|
@@ -22,91 +41,146 @@ export default meta;
|
|
|
22
41
|
type Story = StoryObj;
|
|
23
42
|
|
|
24
43
|
function DemoUI({ className }: { className?: string }) {
|
|
44
|
+
const nextWeek = new Date();
|
|
45
|
+
nextWeek.setDate(nextWeek.getDate() + 7);
|
|
25
46
|
return (
|
|
26
|
-
<
|
|
27
|
-
<
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<Card.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
</Dialog
|
|
100
|
-
<
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
47
|
+
<PageRoot>
|
|
48
|
+
<PageContent>
|
|
49
|
+
<div className={clsx('grid gap-2 grid-cols-2', className)}>
|
|
50
|
+
<Box gap wrap p>
|
|
51
|
+
<Button color="primary">Primary</Button>
|
|
52
|
+
<Button color="accent">Accent</Button>
|
|
53
|
+
<Button>Default</Button>
|
|
54
|
+
<Button color="contrast">Contrast</Button>
|
|
55
|
+
<Button color="destructive">Destructive</Button>
|
|
56
|
+
<Button color="ghost">Ghost</Button>
|
|
57
|
+
<Button color="ghostAccent">Ghost Accent</Button>
|
|
58
|
+
<Button size="small" color="destructive">
|
|
59
|
+
Destructive Small
|
|
60
|
+
</Button>
|
|
61
|
+
<Button size="small" color="ghostDestructive">
|
|
62
|
+
Ghost Destructive Small
|
|
63
|
+
</Button>
|
|
64
|
+
</Box>
|
|
65
|
+
<Box gap wrap p>
|
|
66
|
+
<Input placeholder="Placeholder" />
|
|
67
|
+
<TextArea placeholder="Placeholder" />
|
|
68
|
+
</Box>
|
|
69
|
+
<Card>
|
|
70
|
+
<Card.Main>
|
|
71
|
+
<Card.Title>Card Title</Card.Title>
|
|
72
|
+
<Card.Content>Card Content</Card.Content>
|
|
73
|
+
</Card.Main>
|
|
74
|
+
<Card.Footer>
|
|
75
|
+
<Card.Actions>
|
|
76
|
+
<Button size="small">Action 1</Button>
|
|
77
|
+
</Card.Actions>
|
|
78
|
+
</Card.Footer>
|
|
79
|
+
</Card>
|
|
80
|
+
<Tabs defaultValue="tab1">
|
|
81
|
+
<Tabs.List>
|
|
82
|
+
<Tabs.Trigger value="tab1">Tab 1</Tabs.Trigger>
|
|
83
|
+
<Tabs.Trigger value="tab2">Tab 2</Tabs.Trigger>
|
|
84
|
+
</Tabs.List>
|
|
85
|
+
<Tabs.Content value="tab1">Tab 1 Content</Tabs.Content>
|
|
86
|
+
<Tabs.Content value="tab2">Tab 2 Content</Tabs.Content>
|
|
87
|
+
</Tabs>
|
|
88
|
+
<ActionBar>
|
|
89
|
+
<ActionButton>
|
|
90
|
+
<Icon name="placeholder" />
|
|
91
|
+
Hello
|
|
92
|
+
</ActionButton>
|
|
93
|
+
<ActionButton color="primary">
|
|
94
|
+
<Icon name="placeholder" />
|
|
95
|
+
World
|
|
96
|
+
</ActionButton>
|
|
97
|
+
<ActionButton>
|
|
98
|
+
<Icon name="placeholder" />
|
|
99
|
+
</ActionButton>
|
|
100
|
+
</ActionBar>
|
|
101
|
+
<AvatarList count={3}>
|
|
102
|
+
<AvatarList.Item index={0} name="John Doe" />
|
|
103
|
+
<AvatarList.Item index={1} name="Jane Doe" />
|
|
104
|
+
<AvatarList.Item index={2} name="John Smith" />
|
|
105
|
+
</AvatarList>
|
|
106
|
+
<Tooltip content="Hello World">
|
|
107
|
+
<Button>Hover me</Button>
|
|
108
|
+
</Tooltip>
|
|
109
|
+
<Dialog>
|
|
110
|
+
<Dialog.Trigger asChild>
|
|
111
|
+
<Button>Click</Button>
|
|
112
|
+
</Dialog.Trigger>
|
|
113
|
+
<Dialog.Content>
|
|
114
|
+
<Dialog.Title>Hello there</Dialog.Title>
|
|
115
|
+
<Dialog.Description>Im a dialog</Dialog.Description>
|
|
116
|
+
<Dialog.Actions>
|
|
117
|
+
<Dialog.Close>Close</Dialog.Close>
|
|
118
|
+
</Dialog.Actions>
|
|
119
|
+
</Dialog.Content>
|
|
120
|
+
</Dialog>
|
|
121
|
+
<DateRangePicker
|
|
122
|
+
className="grid-col-span-2"
|
|
123
|
+
value={{
|
|
124
|
+
start: new Date(),
|
|
125
|
+
end: nextWeek,
|
|
126
|
+
}}
|
|
127
|
+
onChange={() => {}}
|
|
128
|
+
/>
|
|
129
|
+
<Progress value={50} className="m-auto" />
|
|
130
|
+
<Box surface="primary" p>
|
|
131
|
+
Primary surface
|
|
132
|
+
</Box>
|
|
133
|
+
<Box surface="accent" p>
|
|
134
|
+
Accent surface
|
|
135
|
+
</Box>
|
|
136
|
+
<Box surface="default" p>
|
|
137
|
+
Default surface
|
|
138
|
+
</Box>
|
|
139
|
+
<Box>
|
|
140
|
+
<Note>Note note</Note>
|
|
141
|
+
</Box>
|
|
142
|
+
<ImageUploader className="h-400px" value={null} onChange={() => {}} />
|
|
143
|
+
<DropdownMenu>
|
|
144
|
+
<DropdownMenu.Trigger asChild>
|
|
145
|
+
<Button>Dropdown</Button>
|
|
146
|
+
</DropdownMenu.Trigger>
|
|
147
|
+
<DropdownMenu.Content>
|
|
148
|
+
<DropdownMenu.Item>Item 1</DropdownMenu.Item>
|
|
149
|
+
<DropdownMenu.Item>Item 2</DropdownMenu.Item>
|
|
150
|
+
<DropdownMenu.Item>Item 3</DropdownMenu.Item>
|
|
151
|
+
</DropdownMenu.Content>
|
|
152
|
+
</DropdownMenu>
|
|
153
|
+
</div>
|
|
154
|
+
</PageContent>
|
|
155
|
+
<PageNav>
|
|
156
|
+
<NavBarRoot>
|
|
157
|
+
<NavBarItem>
|
|
158
|
+
<NavBarItemIconWrapper>
|
|
159
|
+
<NavBarItemIcon name="cart" />
|
|
160
|
+
</NavBarItemIconWrapper>
|
|
161
|
+
<NavBarItemText>Item 1 long</NavBarItemText>
|
|
162
|
+
</NavBarItem>
|
|
163
|
+
<NavBarItem active={true}>
|
|
164
|
+
<NavBarItemIconWrapper>
|
|
165
|
+
<NavBarItemIcon asChild>
|
|
166
|
+
<Icon name="book" />
|
|
167
|
+
</NavBarItemIcon>
|
|
168
|
+
</NavBarItemIconWrapper>
|
|
169
|
+
<NavBarItemText>Item 2</NavBarItemText>
|
|
170
|
+
<NavBarItemPip />
|
|
171
|
+
</NavBarItem>
|
|
172
|
+
<NavBarItem color="neutral" active={true}>
|
|
173
|
+
<NavBarItemIconWrapper>
|
|
174
|
+
<NavBarItemIcon asChild>
|
|
175
|
+
<Icon name="book" />
|
|
176
|
+
</NavBarItemIcon>
|
|
177
|
+
</NavBarItemIconWrapper>
|
|
178
|
+
<NavBarItemText>Neutral</NavBarItemText>
|
|
179
|
+
<NavBarItemPip />
|
|
180
|
+
</NavBarItem>
|
|
181
|
+
</NavBarRoot>
|
|
182
|
+
</PageNav>
|
|
183
|
+
</PageRoot>
|
|
110
184
|
);
|
|
111
185
|
}
|
|
112
186
|
|