@shipfox/react-ui 0.2.0 → 0.3.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 (85) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/.turbo/turbo-check.log +3 -3
  3. package/.turbo/turbo-type.log +1 -1
  4. package/CHANGELOG.md +6 -0
  5. package/dist/components/alert/alert.d.ts +18 -0
  6. package/dist/components/alert/alert.d.ts.map +1 -0
  7. package/dist/components/alert/alert.js +123 -0
  8. package/dist/components/alert/alert.js.map +1 -0
  9. package/dist/components/alert/alert.stories.js +112 -0
  10. package/dist/components/alert/alert.stories.js.map +1 -0
  11. package/dist/components/alert/index.d.ts +2 -0
  12. package/dist/components/alert/index.d.ts.map +1 -0
  13. package/dist/components/alert/index.js +3 -0
  14. package/dist/components/alert/index.js.map +1 -0
  15. package/dist/components/avatar/avatar-group.d.ts +18 -0
  16. package/dist/components/avatar/avatar-group.d.ts.map +1 -0
  17. package/dist/components/avatar/avatar-group.js +132 -0
  18. package/dist/components/avatar/avatar-group.js.map +1 -0
  19. package/dist/components/avatar/avatar.d.ts +21 -0
  20. package/dist/components/avatar/avatar.d.ts.map +1 -0
  21. package/dist/components/avatar/avatar.js +166 -0
  22. package/dist/components/avatar/avatar.js.map +1 -0
  23. package/dist/components/avatar/avatar.stories.js +255 -0
  24. package/dist/components/avatar/avatar.stories.js.map +1 -0
  25. package/dist/components/avatar/index.d.ts +3 -0
  26. package/dist/components/avatar/index.d.ts.map +1 -0
  27. package/dist/components/avatar/index.js +4 -0
  28. package/dist/components/avatar/index.js.map +1 -0
  29. package/dist/components/icon/custom/index.d.ts +1 -0
  30. package/dist/components/icon/custom/index.d.ts.map +1 -1
  31. package/dist/components/icon/custom/index.js +1 -0
  32. package/dist/components/icon/custom/index.js.map +1 -1
  33. package/dist/components/icon/custom/shipfox-logo.d.ts +8 -0
  34. package/dist/components/icon/custom/shipfox-logo.d.ts.map +1 -0
  35. package/dist/components/icon/custom/shipfox-logo.js +22 -0
  36. package/dist/components/icon/custom/shipfox-logo.js.map +1 -0
  37. package/dist/components/icon/icon.d.ts +4 -1
  38. package/dist/components/icon/icon.d.ts.map +1 -1
  39. package/dist/components/icon/icon.js +6 -3
  40. package/dist/components/icon/icon.js.map +1 -1
  41. package/dist/components/index.d.ts +3 -0
  42. package/dist/components/index.d.ts.map +1 -1
  43. package/dist/components/index.js +3 -0
  44. package/dist/components/index.js.map +1 -1
  45. package/dist/components/inline-tips/index.d.ts +2 -0
  46. package/dist/components/inline-tips/index.d.ts.map +1 -0
  47. package/dist/components/inline-tips/index.js +3 -0
  48. package/dist/components/inline-tips/index.js.map +1 -0
  49. package/dist/components/inline-tips/inline-tips.d.ts +19 -0
  50. package/dist/components/inline-tips/inline-tips.d.ts.map +1 -0
  51. package/dist/components/inline-tips/inline-tips.js +98 -0
  52. package/dist/components/inline-tips/inline-tips.js.map +1 -0
  53. package/dist/components/inline-tips/inline-tips.stories.js +214 -0
  54. package/dist/components/inline-tips/inline-tips.stories.js.map +1 -0
  55. package/dist/components/tooltip/tooltip.d.ts +7 -0
  56. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  57. package/dist/components/tooltip/tooltip.js +38 -0
  58. package/dist/components/tooltip/tooltip.js.map +1 -0
  59. package/dist/utils/avatar.d.ts +3 -0
  60. package/dist/utils/avatar.d.ts.map +1 -0
  61. package/dist/utils/avatar.js +32 -0
  62. package/dist/utils/avatar.js.map +1 -0
  63. package/dist/utils/index.d.ts +1 -0
  64. package/dist/utils/index.d.ts.map +1 -1
  65. package/dist/utils/index.js +1 -0
  66. package/dist/utils/index.js.map +1 -1
  67. package/index.css +32 -1
  68. package/package.json +3 -3
  69. package/src/components/alert/alert.stories.tsx +77 -0
  70. package/src/components/alert/alert.tsx +144 -0
  71. package/src/components/alert/index.ts +1 -0
  72. package/src/components/avatar/avatar-group.tsx +186 -0
  73. package/src/components/avatar/avatar.stories.tsx +172 -0
  74. package/src/components/avatar/avatar.tsx +215 -0
  75. package/src/components/avatar/index.ts +2 -0
  76. package/src/components/icon/custom/index.ts +1 -0
  77. package/src/components/icon/custom/shipfox-logo.tsx +20 -0
  78. package/src/components/icon/icon.tsx +11 -1
  79. package/src/components/index.ts +3 -0
  80. package/src/components/inline-tips/index.ts +1 -0
  81. package/src/components/inline-tips/inline-tips.stories.tsx +126 -0
  82. package/src/components/inline-tips/inline-tips.tsx +132 -0
  83. package/src/components/tooltip/tooltip.tsx +52 -0
  84. package/src/utils/avatar.ts +27 -0
  85. package/src/utils/index.ts +1 -0
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
3
+ import { cva } from 'class-variance-authority';
4
+ import { getInitial, getPlaceholderImageUrl } from '../../utils/index.js';
5
+ import { cn } from '../../utils/cn.js';
6
+ import { Icon } from '../icon/icon.js';
7
+ export const avatarVariants = cva('relative flex shrink-0 overflow-hidden bg-background-button-neutral-default text-foreground-neutral-base ring-1 ring-border-neutral-base-component ring-offset-1 ring-offset-background-neutral-base shadow-button-neutral', {
8
+ variants: {
9
+ radius: {
10
+ full: 'rounded-full',
11
+ rounded: 'rounded-6'
12
+ },
13
+ size: {
14
+ '3xs': 'size-[18px]',
15
+ '2xs': 'size-[20px]',
16
+ xs: 'size-[24px]',
17
+ sm: 'size-[28px]',
18
+ md: 'size-[32px]',
19
+ lg: 'size-[36px]',
20
+ xl: 'size-[40px]',
21
+ '2xl': 'size-[80px]',
22
+ '3xl': 'size-[120px]'
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ radius: 'full',
27
+ size: 'md'
28
+ }
29
+ });
30
+ const avatarInnerVariants = cva('flex h-full w-full items-center justify-center', {
31
+ variants: {
32
+ size: {
33
+ '3xs': 'text-[10px] leading-[10px]',
34
+ '2xs': 'text-[11px] leading-[11px]',
35
+ xs: 'text-xs leading-4',
36
+ sm: 'text-xs leading-5',
37
+ md: 'text-sm leading-5',
38
+ lg: 'text-sm leading-5',
39
+ xl: 'text-base leading-6',
40
+ '2xl': 'text-2xl leading-8',
41
+ '3xl': 'text-4xl leading-[56px]'
42
+ }
43
+ },
44
+ defaultVariants: {
45
+ size: 'md'
46
+ }
47
+ });
48
+ const UPLOAD_ICON_SIZE_MAP = {
49
+ '3xs': 'size-[10px]',
50
+ '2xs': 'size-[12px]',
51
+ xs: 'size-[14px]',
52
+ sm: 'size-[16px]',
53
+ md: 'size-[18px]',
54
+ lg: 'size-[20px]',
55
+ xl: 'size-[24px]',
56
+ '2xl': 'size-[40px]',
57
+ '3xl': 'size-[60px]'
58
+ };
59
+ function AvatarRoot({ className, radius, size, ...props }) {
60
+ return /*#__PURE__*/ _jsx(AvatarPrimitive.Root, {
61
+ "data-slot": "avatar",
62
+ className: cn(avatarVariants({
63
+ radius,
64
+ size
65
+ }), className),
66
+ ...props
67
+ });
68
+ }
69
+ function AvatarImage({ className, ...props }) {
70
+ return /*#__PURE__*/ _jsx(AvatarPrimitive.Image, {
71
+ "data-slot": "avatar-image",
72
+ className: cn('aspect-square size-full', className),
73
+ ...props
74
+ });
75
+ }
76
+ function AvatarFallback({ className, ...props }) {
77
+ return /*#__PURE__*/ _jsx(AvatarPrimitive.Fallback, {
78
+ "data-slot": "avatar-name",
79
+ className: cn('flex size-full items-center justify-center', className),
80
+ ...props
81
+ });
82
+ }
83
+ export function Avatar({ className, radius, size = 'md', content = 'letters', src, alt, fallback, animateOnHover = false, ...props }) {
84
+ const innerClassName = 'flex h-full w-full items-center justify-center rounded-inherit relative bg-background-neutral-base dark:bg-background-components-base text-foreground-neutral-subtle';
85
+ const renderContent = ()=>{
86
+ if (content === 'image') {
87
+ const imageSrc = src || getPlaceholderImageUrl(fallback);
88
+ return /*#__PURE__*/ _jsxs(_Fragment, {
89
+ children: [
90
+ /*#__PURE__*/ _jsx(AvatarImage, {
91
+ src: imageSrc,
92
+ alt: alt || 'Avatar image',
93
+ className: "object-scale-down rounded-inherit"
94
+ }),
95
+ /*#__PURE__*/ _jsx(AvatarFallback, {
96
+ className: innerClassName,
97
+ children: /*#__PURE__*/ _jsx("div", {
98
+ className: cn('absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2', avatarInnerVariants({
99
+ size
100
+ })),
101
+ children: /*#__PURE__*/ _jsx("span", {
102
+ className: "font-medium",
103
+ children: getInitial(fallback)
104
+ })
105
+ })
106
+ })
107
+ ]
108
+ });
109
+ }
110
+ if (content === 'logo') {
111
+ return /*#__PURE__*/ _jsx(AvatarFallback, {
112
+ className: cn(innerClassName, 'p-[15%]'),
113
+ children: /*#__PURE__*/ _jsx(Icon, {
114
+ name: "shipfoxLogo",
115
+ color: "#FF4B00",
116
+ className: "h-full w-full p-2"
117
+ })
118
+ });
119
+ }
120
+ if (content === 'logoPlaceholder') {
121
+ return /*#__PURE__*/ _jsx(AvatarFallback, {
122
+ className: cn(innerClassName, 'p-[15%]'),
123
+ children: /*#__PURE__*/ _jsx(Icon, {
124
+ name: "shipfoxLogo",
125
+ color: "var(--foreground-neutral-subtle, #a1a1aa)",
126
+ className: "h-full w-full p-2 opacity-50"
127
+ })
128
+ });
129
+ }
130
+ if (content === 'letters') {
131
+ return /*#__PURE__*/ _jsx(AvatarFallback, {
132
+ className: innerClassName,
133
+ children: /*#__PURE__*/ _jsx("div", {
134
+ className: cn('absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2', avatarInnerVariants({
135
+ size
136
+ })),
137
+ children: /*#__PURE__*/ _jsx("span", {
138
+ className: "font-medium",
139
+ children: getInitial(fallback)
140
+ })
141
+ })
142
+ });
143
+ }
144
+ if (content === 'upload') {
145
+ const iconSizeClass = UPLOAD_ICON_SIZE_MAP[size];
146
+ return /*#__PURE__*/ _jsx(AvatarFallback, {
147
+ className: innerClassName,
148
+ children: /*#__PURE__*/ _jsx(Icon, {
149
+ name: "imageAdd",
150
+ className: cn('text-foreground-neutral-subtle', iconSizeClass)
151
+ })
152
+ });
153
+ }
154
+ return null;
155
+ };
156
+ return /*#__PURE__*/ _jsx(AvatarRoot, {
157
+ className: cn(animateOnHover ? 'hover:-translate-y-8 transition-transform duration-300 ease-out' : '', className),
158
+ radius: radius,
159
+ size: size,
160
+ ...props,
161
+ children: renderContent()
162
+ });
163
+ }
164
+ export { AvatarRoot, AvatarImage, AvatarFallback };
165
+
166
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport {cva, type VariantProps} from 'class-variance-authority';\nimport type {ComponentProps, ReactNode} from 'react';\nimport {getInitial, getPlaceholderImageUrl} from 'utils';\nimport {cn} from 'utils/cn';\nimport {Icon} from '../icon/icon';\n\nexport const avatarVariants = cva(\n 'relative flex shrink-0 overflow-hidden bg-background-button-neutral-default text-foreground-neutral-base ring-1 ring-border-neutral-base-component ring-offset-1 ring-offset-background-neutral-base shadow-button-neutral',\n {\n variants: {\n radius: {\n full: 'rounded-full',\n rounded: 'rounded-6',\n },\n size: {\n '3xs': 'size-[18px]',\n '2xs': 'size-[20px]',\n xs: 'size-[24px]',\n sm: 'size-[28px]',\n md: 'size-[32px]',\n lg: 'size-[36px]',\n xl: 'size-[40px]',\n '2xl': 'size-[80px]',\n '3xl': 'size-[120px]',\n },\n },\n defaultVariants: {\n radius: 'full',\n size: 'md',\n },\n },\n);\n\nconst avatarInnerVariants = cva('flex h-full w-full items-center justify-center', {\n variants: {\n size: {\n '3xs': 'text-[10px] leading-[10px]',\n '2xs': 'text-[11px] leading-[11px]',\n xs: 'text-xs leading-4',\n sm: 'text-xs leading-5',\n md: 'text-sm leading-5',\n lg: 'text-sm leading-5',\n xl: 'text-base leading-6',\n '2xl': 'text-2xl leading-8',\n '3xl': 'text-4xl leading-[56px]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type AvatarContent = 'letters' | 'logo' | 'logoPlaceholder' | 'image' | 'upload';\n\nconst UPLOAD_ICON_SIZE_MAP: Record<\n NonNullable<VariantProps<typeof avatarVariants>['size']>,\n string\n> = {\n '3xs': 'size-[10px]',\n '2xs': 'size-[12px]',\n xs: 'size-[14px]',\n sm: 'size-[16px]',\n md: 'size-[18px]',\n lg: 'size-[20px]',\n xl: 'size-[24px]',\n '2xl': 'size-[40px]',\n '3xl': 'size-[60px]',\n} as const;\n\nfunction AvatarRoot({\n className,\n radius,\n size,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & VariantProps<typeof avatarVariants>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(avatarVariants({radius, size}), className)}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({className, ...props}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({className, ...props}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-name\"\n className={cn('flex size-full items-center justify-center', className)}\n {...props}\n />\n );\n}\n\nexport type AvatarProps = ComponentProps<typeof AvatarPrimitive.Root> &\n VariantProps<typeof avatarVariants> & {\n content?: AvatarContent;\n src?: string;\n alt?: string;\n fallback?: string;\n animateOnHover?: boolean;\n };\n\nexport function Avatar({\n className,\n radius,\n size = 'md',\n content = 'letters',\n src,\n alt,\n fallback,\n animateOnHover = false,\n ...props\n}: AvatarProps) {\n const innerClassName =\n 'flex h-full w-full items-center justify-center rounded-inherit relative bg-background-neutral-base dark:bg-background-components-base text-foreground-neutral-subtle';\n\n const renderContent = (): ReactNode => {\n if (content === 'image') {\n const imageSrc = src || getPlaceholderImageUrl(fallback);\n return (\n <>\n <AvatarImage\n src={imageSrc}\n alt={alt || 'Avatar image'}\n className=\"object-scale-down rounded-inherit\"\n />\n <AvatarFallback className={innerClassName}>\n <div\n className={cn(\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',\n avatarInnerVariants({size}),\n )}\n >\n <span className=\"font-medium\">{getInitial(fallback)}</span>\n </div>\n </AvatarFallback>\n </>\n );\n }\n\n if (content === 'logo') {\n return (\n <AvatarFallback className={cn(innerClassName, 'p-[15%]')}>\n <Icon name=\"shipfoxLogo\" color=\"#FF4B00\" className=\"h-full w-full p-2\" />\n </AvatarFallback>\n );\n }\n\n if (content === 'logoPlaceholder') {\n return (\n <AvatarFallback className={cn(innerClassName, 'p-[15%]')}>\n <Icon\n name=\"shipfoxLogo\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n className=\"h-full w-full p-2 opacity-50\"\n />\n </AvatarFallback>\n );\n }\n\n if (content === 'letters') {\n return (\n <AvatarFallback className={innerClassName}>\n <div\n className={cn(\n 'absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2',\n avatarInnerVariants({size}),\n )}\n >\n <span className=\"font-medium\">{getInitial(fallback)}</span>\n </div>\n </AvatarFallback>\n );\n }\n\n if (content === 'upload') {\n const iconSizeClass = UPLOAD_ICON_SIZE_MAP[size as keyof typeof UPLOAD_ICON_SIZE_MAP];\n return (\n <AvatarFallback className={innerClassName}>\n <Icon name=\"imageAdd\" className={cn('text-foreground-neutral-subtle', iconSizeClass)} />\n </AvatarFallback>\n );\n }\n\n return null;\n };\n\n return (\n <AvatarRoot\n className={cn(\n animateOnHover ? 'hover:-translate-y-8 transition-transform duration-300 ease-out' : '',\n className,\n )}\n radius={radius}\n size={size}\n {...props}\n >\n {renderContent()}\n </AvatarRoot>\n );\n}\n\nexport {AvatarRoot, AvatarImage, AvatarFallback};\n"],"names":["AvatarPrimitive","cva","getInitial","getPlaceholderImageUrl","cn","Icon","avatarVariants","variants","radius","full","rounded","size","xs","sm","md","lg","xl","defaultVariants","avatarInnerVariants","UPLOAD_ICON_SIZE_MAP","AvatarRoot","className","props","Root","data-slot","AvatarImage","Image","AvatarFallback","Fallback","Avatar","content","src","alt","fallback","animateOnHover","innerClassName","renderContent","imageSrc","div","span","name","color","iconSizeClass"],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Code } from '../../components/typography/index.js';
3
+ import { Avatar } from './avatar.js';
4
+ import { AvatarGroup, AvatarGroupTooltip } from './avatar-group.js';
5
+ const contentOptions = [
6
+ 'letters',
7
+ 'logo',
8
+ 'logoPlaceholder',
9
+ 'image',
10
+ 'upload'
11
+ ];
12
+ const radiusOptions = [
13
+ 'full',
14
+ 'rounded'
15
+ ];
16
+ const sizeOptions = [
17
+ '3xs',
18
+ '2xs',
19
+ 'xs',
20
+ 'sm',
21
+ 'md',
22
+ 'lg',
23
+ 'xl',
24
+ '2xl',
25
+ '3xl'
26
+ ];
27
+ const meta = {
28
+ title: 'Components/Avatar',
29
+ component: Avatar,
30
+ tags: [
31
+ 'autodocs'
32
+ ],
33
+ argTypes: {
34
+ content: {
35
+ control: 'select',
36
+ options: contentOptions
37
+ },
38
+ radius: {
39
+ control: 'select',
40
+ options: radiusOptions
41
+ },
42
+ size: {
43
+ control: 'select',
44
+ options: sizeOptions
45
+ },
46
+ fallback: {
47
+ control: 'text'
48
+ },
49
+ src: {
50
+ control: 'text'
51
+ },
52
+ alt: {
53
+ control: 'text'
54
+ }
55
+ },
56
+ args: {
57
+ content: 'letters',
58
+ radius: 'full',
59
+ size: 'md',
60
+ fallback: 'John Doe'
61
+ }
62
+ };
63
+ export default meta;
64
+ export const Default = {
65
+ args: {
66
+ content: 'upload',
67
+ fallback: 'Kyle Nguyen'
68
+ },
69
+ render: (args)=>/*#__PURE__*/ _jsx("div", {
70
+ className: "flex flex-wrap items-end gap-16",
71
+ children: sizeOptions.map((size)=>/*#__PURE__*/ _jsxs("div", {
72
+ className: "flex flex-col items-center gap-8",
73
+ children: [
74
+ /*#__PURE__*/ _jsx(Avatar, {
75
+ ...args,
76
+ size: size
77
+ }),
78
+ /*#__PURE__*/ _jsx(Code, {
79
+ variant: "label",
80
+ className: "text-foreground-neutral-base",
81
+ children: size
82
+ })
83
+ ]
84
+ }, size))
85
+ })
86
+ };
87
+ // AvatarGroup Stories
88
+ const avatarGroupMeta = {
89
+ title: 'Components/AvatarGroup',
90
+ component: AvatarGroup,
91
+ tags: [
92
+ 'autodocs'
93
+ ],
94
+ argTypes: {
95
+ size: {
96
+ control: 'select',
97
+ options: sizeOptions
98
+ },
99
+ maxVisible: {
100
+ control: 'number'
101
+ }
102
+ },
103
+ args: {
104
+ size: 'md',
105
+ children: []
106
+ }
107
+ };
108
+ export const AvatarGroupDefault = {
109
+ args: {
110
+ children: []
111
+ },
112
+ render: ()=>{
113
+ const avatars = [
114
+ {
115
+ name: 'John Doe',
116
+ content: 'image'
117
+ },
118
+ {
119
+ name: 'Jane Smith',
120
+ content: 'image'
121
+ },
122
+ {
123
+ name: 'Bob Johnson',
124
+ content: 'image'
125
+ },
126
+ {
127
+ name: 'Alice Brown',
128
+ content: 'image'
129
+ }
130
+ ];
131
+ return /*#__PURE__*/ _jsx("div", {
132
+ className: "flex flex-col gap-16",
133
+ children: /*#__PURE__*/ _jsxs("div", {
134
+ className: "flex flex-col gap-8",
135
+ children: [
136
+ /*#__PURE__*/ _jsx(Code, {
137
+ variant: "label",
138
+ className: "text-foreground-neutral-base",
139
+ children: "Default (without tooltips)"
140
+ }),
141
+ /*#__PURE__*/ _jsx(AvatarGroup, {
142
+ size: "md",
143
+ children: avatars.map((avatar)=>/*#__PURE__*/ _jsx(Avatar, {
144
+ content: avatar.content,
145
+ fallback: avatar.name
146
+ }, avatar.name))
147
+ })
148
+ ]
149
+ })
150
+ });
151
+ }
152
+ };
153
+ export const AvatarGroupWithTooltips = {
154
+ args: {
155
+ children: []
156
+ },
157
+ render: ()=>{
158
+ const avatars = [
159
+ {
160
+ name: 'John Doe',
161
+ content: 'image'
162
+ },
163
+ {
164
+ name: 'Jane Smith',
165
+ content: 'image'
166
+ },
167
+ {
168
+ name: 'Bob Johnson',
169
+ content: 'image'
170
+ },
171
+ {
172
+ name: 'Alice Brown',
173
+ content: 'image'
174
+ },
175
+ {
176
+ name: 'Carlos Vega',
177
+ content: 'image'
178
+ },
179
+ {
180
+ name: 'Linda Tran',
181
+ content: 'image'
182
+ }
183
+ ];
184
+ return /*#__PURE__*/ _jsxs("div", {
185
+ className: "flex flex-col gap-16",
186
+ children: [
187
+ /*#__PURE__*/ _jsxs("div", {
188
+ className: "flex flex-col gap-8",
189
+ children: [
190
+ /*#__PURE__*/ _jsx(Code, {
191
+ variant: "label",
192
+ className: "text-foreground-neutral-base",
193
+ children: "With Tooltips"
194
+ }),
195
+ /*#__PURE__*/ _jsx(AvatarGroup, {
196
+ size: "md",
197
+ children: avatars.map((avatar)=>/*#__PURE__*/ _jsx(Avatar, {
198
+ content: avatar.content,
199
+ fallback: avatar.name,
200
+ children: /*#__PURE__*/ _jsx(AvatarGroupTooltip, {
201
+ children: avatar.name
202
+ })
203
+ }, avatar.name))
204
+ })
205
+ ]
206
+ }),
207
+ /*#__PURE__*/ _jsxs("div", {
208
+ className: "flex flex-col gap-8",
209
+ children: [
210
+ /*#__PURE__*/ _jsx(Code, {
211
+ variant: "label",
212
+ className: "text-foreground-neutral-base",
213
+ children: "With Tooltips (maxVisible: 4)"
214
+ }),
215
+ /*#__PURE__*/ _jsx(AvatarGroup, {
216
+ size: "md",
217
+ maxVisible: 4,
218
+ children: avatars.map((avatar)=>/*#__PURE__*/ _jsx(Avatar, {
219
+ content: avatar.content,
220
+ fallback: avatar.name,
221
+ children: /*#__PURE__*/ _jsx(AvatarGroupTooltip, {
222
+ children: avatar.name
223
+ })
224
+ }, avatar.name))
225
+ })
226
+ ]
227
+ }),
228
+ /*#__PURE__*/ _jsxs("div", {
229
+ className: "flex flex-col gap-8",
230
+ children: [
231
+ /*#__PURE__*/ _jsx(Code, {
232
+ variant: "label",
233
+ className: "text-foreground-neutral-base",
234
+ children: "With Tooltips and Hover Animation"
235
+ }),
236
+ /*#__PURE__*/ _jsx(AvatarGroup, {
237
+ size: "md",
238
+ maxVisible: 4,
239
+ animateOnHover: true,
240
+ children: avatars.map((avatar)=>/*#__PURE__*/ _jsx(Avatar, {
241
+ content: avatar.content,
242
+ fallback: avatar.name,
243
+ children: /*#__PURE__*/ _jsx(AvatarGroupTooltip, {
244
+ children: avatar.name
245
+ })
246
+ }, avatar.name))
247
+ })
248
+ ]
249
+ })
250
+ ]
251
+ });
252
+ }
253
+ };
254
+
255
+ //# sourceMappingURL=avatar.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/avatar/avatar.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Code} from 'components/typography';\nimport {Avatar} from './avatar';\nimport {AvatarGroup, AvatarGroupTooltip} from './avatar-group';\n\nconst contentOptions = ['letters', 'logo', 'logoPlaceholder', 'image', 'upload'] as const;\nconst radiusOptions = ['full', 'rounded'] as const;\nconst sizeOptions = ['3xs', '2xs', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'] as const;\n\nconst meta = {\n title: 'Components/Avatar',\n component: Avatar,\n tags: ['autodocs'],\n argTypes: {\n content: {\n control: 'select',\n options: contentOptions,\n },\n radius: {\n control: 'select',\n options: radiusOptions,\n },\n size: {\n control: 'select',\n options: sizeOptions,\n },\n fallback: {\n control: 'text',\n },\n src: {\n control: 'text',\n },\n alt: {\n control: 'text',\n },\n },\n args: {\n content: 'letters',\n radius: 'full',\n size: 'md',\n fallback: 'John Doe',\n },\n} satisfies Meta<typeof Avatar>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n args: {\n content: 'upload',\n fallback: 'Kyle Nguyen',\n },\n\n render: (args) => (\n <div className=\"flex flex-wrap items-end gap-16\">\n {sizeOptions.map((size) => (\n <div key={size} className=\"flex flex-col items-center gap-8\">\n <Avatar {...args} size={size} />\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n {size}\n </Code>\n </div>\n ))}\n </div>\n ),\n};\n\n// AvatarGroup Stories\nconst avatarGroupMeta = {\n title: 'Components/AvatarGroup',\n component: AvatarGroup,\n tags: ['autodocs'],\n argTypes: {\n size: {\n control: 'select',\n options: sizeOptions,\n },\n maxVisible: {\n control: 'number',\n },\n },\n args: {\n size: 'md',\n children: [],\n },\n} satisfies Meta<typeof AvatarGroup>;\n\nexport const AvatarGroupDefault: StoryObj<typeof avatarGroupMeta> = {\n args: {\n children: [],\n },\n render: () => {\n const avatars = [\n {name: 'John Doe', content: 'image'},\n {name: 'Jane Smith', content: 'image'},\n {name: 'Bob Johnson', content: 'image'},\n {name: 'Alice Brown', content: 'image'},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n Default (without tooltips)\n </Code>\n <AvatarGroup size=\"md\">\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name} />\n ))}\n </AvatarGroup>\n </div>\n </div>\n );\n },\n};\n\nexport const AvatarGroupWithTooltips: StoryObj<typeof avatarGroupMeta> = {\n args: {\n children: [],\n },\n render: () => {\n const avatars = [\n {name: 'John Doe', content: 'image'},\n {name: 'Jane Smith', content: 'image'},\n {name: 'Bob Johnson', content: 'image'},\n {name: 'Alice Brown', content: 'image'},\n {name: 'Carlos Vega', content: 'image'},\n {name: 'Linda Tran', content: 'image'},\n ] as const;\n\n return (\n <div className=\"flex flex-col gap-16\">\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips\n </Code>\n <AvatarGroup size=\"md\">\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips (maxVisible: 4)\n </Code>\n <AvatarGroup size=\"md\" maxVisible={4}>\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n <div className=\"flex flex-col gap-8\">\n <Code variant=\"label\" className=\"text-foreground-neutral-base\">\n With Tooltips and Hover Animation\n </Code>\n <AvatarGroup size=\"md\" maxVisible={4} animateOnHover>\n {avatars.map((avatar) => (\n <Avatar key={avatar.name} content={avatar.content} fallback={avatar.name}>\n <AvatarGroupTooltip>{avatar.name}</AvatarGroupTooltip>\n </Avatar>\n ))}\n </AvatarGroup>\n </div>\n </div>\n );\n },\n};\n"],"names":["Code","Avatar","AvatarGroup","AvatarGroupTooltip","contentOptions","radiusOptions","sizeOptions","meta","title","component","tags","argTypes","content","control","options","radius","size","fallback","src","alt","args","Default","render","div","className","map","variant","avatarGroupMeta","maxVisible","children","AvatarGroupDefault","avatars","name","avatar","AvatarGroupWithTooltips","animateOnHover"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './avatar';
2
+ export * from './avatar-group';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './avatar.js';
2
+ export * from './avatar-group.js';
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/avatar/index.ts"],"sourcesContent":["export * from './avatar';\nexport * from './avatar-group';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,iBAAiB"}
@@ -6,6 +6,7 @@ export * from './component-line';
6
6
  export * from './ellipse-mini-solid';
7
7
  export * from './info-tooltip-fill';
8
8
  export * from './resize';
9
+ export * from './shipfox-logo';
9
10
  export * from './spinner';
10
11
  export * from './thunder';
11
12
  export * from './x-circle-solid';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/custom/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/custom/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
@@ -6,6 +6,7 @@ export * from './component-line.js';
6
6
  export * from './ellipse-mini-solid.js';
7
7
  export * from './info-tooltip-fill.js';
8
8
  export * from './resize.js';
9
+ export * from './shipfox-logo.js';
9
10
  export * from './spinner.js';
10
11
  export * from './thunder.js';
11
12
  export * from './x-circle-solid.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/icon/custom/index.ts"],"sourcesContent":["export * from './badge';\nexport * from './check-circle-solid';\nexport * from './circle-dotted-line';\nexport * from './component-fill';\nexport * from './component-line';\nexport * from './ellipse-mini-solid';\nexport * from './info-tooltip-fill';\nexport * from './resize';\nexport * from './spinner';\nexport * from './thunder';\nexport * from './x-circle-solid';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,uBAAuB;AACrC,cAAc,uBAAuB;AACrC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,sBAAsB;AACpC,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,mBAAmB"}
1
+ {"version":3,"sources":["../../../../src/components/icon/custom/index.ts"],"sourcesContent":["export * from './badge';\nexport * from './check-circle-solid';\nexport * from './circle-dotted-line';\nexport * from './component-fill';\nexport * from './component-line';\nexport * from './ellipse-mini-solid';\nexport * from './info-tooltip-fill';\nexport * from './resize';\nexport * from './shipfox-logo';\nexport * from './spinner';\nexport * from './thunder';\nexport * from './x-circle-solid';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,uBAAuB;AACrC,cAAc,uBAAuB;AACrC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,sBAAsB;AACpC,cAAc,WAAW;AACzB,cAAc,iBAAiB;AAC/B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,mBAAmB"}
@@ -0,0 +1,8 @@
1
+ import type { RemixiconComponentType } from '@remixicon/react';
2
+ import type { ComponentProps } from 'react';
3
+ type ShipfoxLogoProps = ComponentProps<RemixiconComponentType> & {
4
+ color?: string;
5
+ };
6
+ export declare function ShipfoxLogo({ color, ...props }: ShipfoxLogoProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=shipfox-logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipfox-logo.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/custom/shipfox-logo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAE1C,KAAK,gBAAgB,GAAG,cAAc,CAAC,sBAAsB,CAAC,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAC,KAAiB,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,2CAY1E"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function ShipfoxLogo({ color = '#FF4B00', ...props }) {
3
+ return /*#__PURE__*/ _jsxs("svg", {
4
+ viewBox: "0 0 88 88",
5
+ fill: "none",
6
+ xmlns: "http://www.w3.org/2000/svg",
7
+ ...props,
8
+ children: [
9
+ /*#__PURE__*/ _jsx("title", {
10
+ children: "Shipfox Logo"
11
+ }),
12
+ /*#__PURE__*/ _jsx("path", {
13
+ fillRule: "evenodd",
14
+ clipRule: "evenodd",
15
+ d: "M17.9759 32.3751L39.0987 74.1549C41.1536 78.2196 46.847 78.2196 48.902 74.1549L70.0247 32.3751L81.2835 38.122C84.6511 39.8409 85.3794 44.4228 82.7171 47.1406L47.9008 82.684C45.7466 84.8831 42.254 84.8831 40.0999 82.684L5.28351 47.1406C2.62124 44.4227 3.34957 39.8409 6.7171 38.122L17.9759 32.3751ZM44.0003 19.0912L73.0051 4.28593C77.7786 1.84936 82.8214 7.06388 80.3737 11.9054L70.0247 32.3751L44.0003 19.0912ZM44.0003 19.0912L14.9955 4.28593C10.2221 1.84936 5.17926 7.06388 7.62699 11.9054L17.9759 32.3751L44.0003 19.0912Z",
16
+ fill: color
17
+ })
18
+ ]
19
+ });
20
+ }
21
+
22
+ //# sourceMappingURL=shipfox-logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/icon/custom/shipfox-logo.tsx"],"sourcesContent":["import type {RemixiconComponentType} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\n\ntype ShipfoxLogoProps = ComponentProps<RemixiconComponentType> & {\n color?: string;\n};\n\nexport function ShipfoxLogo({color = '#FF4B00', ...props}: ShipfoxLogoProps) {\n return (\n <svg viewBox=\"0 0 88 88\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <title>Shipfox Logo</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.9759 32.3751L39.0987 74.1549C41.1536 78.2196 46.847 78.2196 48.902 74.1549L70.0247 32.3751L81.2835 38.122C84.6511 39.8409 85.3794 44.4228 82.7171 47.1406L47.9008 82.684C45.7466 84.8831 42.254 84.8831 40.0999 82.684L5.28351 47.1406C2.62124 44.4227 3.34957 39.8409 6.7171 38.122L17.9759 32.3751ZM44.0003 19.0912L73.0051 4.28593C77.7786 1.84936 82.8214 7.06388 80.3737 11.9054L70.0247 32.3751L44.0003 19.0912ZM44.0003 19.0912L14.9955 4.28593C10.2221 1.84936 5.17926 7.06388 7.62699 11.9054L17.9759 32.3751L44.0003 19.0912Z\"\n fill={color}\n />\n </svg>\n );\n}\n"],"names":["ShipfoxLogo","color","props","svg","viewBox","fill","xmlns","title","path","fillRule","clipRule","d"],"mappings":";AAOA,OAAO,SAASA,YAAY,EAACC,QAAQ,SAAS,EAAE,GAAGC,OAAwB;IACzE,qBACE,MAACC;QAAIC,SAAQ;QAAYC,MAAK;QAAOC,OAAM;QAA8B,GAAGJ,KAAK;;0BAC/E,KAACK;0BAAM;;0BACP,KAACC;gBACCC,UAAS;gBACTC,UAAS;gBACTC,GAAE;gBACFN,MAAMJ;;;;AAId"}
@@ -1,6 +1,6 @@
1
1
  import { type RemixiconComponentType, RiGoogleFill } from '@remixicon/react';
2
2
  import type { ComponentProps } from 'react';
3
- import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, SpinnerIcon, ThunderIcon, XCircleSolidIcon } from './custom';
3
+ import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, ShipfoxLogo, SpinnerIcon, ThunderIcon, XCircleSolidIcon } from './custom';
4
4
  declare const iconsMap: {
5
5
  readonly google: RemixiconComponentType;
6
6
  readonly microsoft: RemixiconComponentType;
@@ -15,6 +15,9 @@ declare const iconsMap: {
15
15
  readonly spinner: typeof SpinnerIcon;
16
16
  readonly ellipseMiniSolid: typeof EllipseMiniSolidIcon;
17
17
  readonly componentLine: typeof ComponentLineIcon;
18
+ readonly imageAdd: RemixiconComponentType;
19
+ readonly close: RemixiconComponentType;
20
+ readonly shipfoxLogo: typeof ShipfoxLogo;
18
21
  };
19
22
  export type IconName = keyof typeof iconsMap;
20
23
  export declare const iconNames: IconName[];
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,sBAAsB,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;CAc6C,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,eAAO,MAAM,SAAS,EAA4B,QAAQ,EAAE,CAAC;AAE7D,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACzD,KAAK,SAAS,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,2CAG/C"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAE3B,YAAY,EAGb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;CAiB6C,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,eAAO,MAAM,SAAS,EAA4B,QAAQ,EAAE,CAAC;AAE7D,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACzD,KAAK,SAAS,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,2CAG/C"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { RiGoogleFill, RiMicrosoftFill } from '@remixicon/react';
3
- import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, SpinnerIcon, ThunderIcon, XCircleSolidIcon } from './custom/index.js';
2
+ import { RiCloseLine, RiGoogleFill, RiImageAddFill, RiMicrosoftFill } from '@remixicon/react';
3
+ import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, ShipfoxLogo, SpinnerIcon, ThunderIcon, XCircleSolidIcon } from './custom/index.js';
4
4
  const iconsMap = {
5
5
  google: RiGoogleFill,
6
6
  microsoft: RiMicrosoftFill,
@@ -14,7 +14,10 @@ const iconsMap = {
14
14
  infoTooltipFill: InfoTooltipFillIcon,
15
15
  spinner: SpinnerIcon,
16
16
  ellipseMiniSolid: EllipseMiniSolidIcon,
17
- componentLine: ComponentLineIcon
17
+ componentLine: ComponentLineIcon,
18
+ imageAdd: RiImageAddFill,
19
+ close: RiCloseLine,
20
+ shipfoxLogo: ShipfoxLogo
18
21
  };
19
22
  export const iconNames = Object.keys(iconsMap);
20
23
  export function Icon({ name, ...props }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import {type RemixiconComponentType, RiGoogleFill, RiMicrosoftFill} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n SpinnerIcon,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\n\nconst iconsMap = {\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n xCircleSolid: XCircleSolidIcon,\n thunder: ThunderIcon,\n resize: ResizeIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n spinner: SpinnerIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n componentLine: ComponentLineIcon,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<typeof RiGoogleFill>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiGoogleFill","RiMicrosoftFill","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","SpinnerIcon","ThunderIcon","XCircleSolidIcon","iconsMap","google","microsoft","badge","checkCircleSolid","circleDottedLine","componentFill","xCircleSolid","thunder","resize","infoTooltipFill","spinner","ellipseMiniSolid","componentLine","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AAAA,SAAqCA,YAAY,EAAEC,eAAe,QAAO,mBAAmB;AAE5F,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAElB,MAAMC,WAAW;IACfC,QAAQd;IACRe,WAAWd;IACXe,OAAOd;IACPe,kBAAkBd;IAClBe,kBAAkBd;IAClBe,eAAed;IACfe,cAAcR;IACdS,SAASV;IACTW,QAAQb;IACRc,iBAAiBf;IACjBgB,SAASd;IACTe,kBAAkBlB;IAClBmB,eAAepB;AACjB;AAGA,OAAO,MAAMqB,YAAYC,OAAOC,IAAI,CAAChB,UAAwB;AAK7D,OAAO,SAASiB,KAAK,EAACC,IAAI,EAAE,GAAGC,OAAiB;IAC9C,MAAMC,gBAAgBpB,QAAQ,CAACkB,KAAK;IACpC,qBAAO,KAACE;QAAe,GAAGD,KAAK;;AACjC"}
1
+ {"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import {\n type RemixiconComponentType,\n RiCloseLine,\n RiGoogleFill,\n RiImageAddFill,\n RiMicrosoftFill,\n} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n ShipfoxLogo,\n SpinnerIcon,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\n\nconst iconsMap = {\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n xCircleSolid: XCircleSolidIcon,\n thunder: ThunderIcon,\n resize: ResizeIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n spinner: SpinnerIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n componentLine: ComponentLineIcon,\n imageAdd: RiImageAddFill,\n close: RiCloseLine,\n shipfoxLogo: ShipfoxLogo,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<typeof RiGoogleFill>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiCloseLine","RiGoogleFill","RiImageAddFill","RiMicrosoftFill","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","ShipfoxLogo","SpinnerIcon","ThunderIcon","XCircleSolidIcon","iconsMap","google","microsoft","badge","checkCircleSolid","circleDottedLine","componentFill","xCircleSolid","thunder","resize","infoTooltipFill","spinner","ellipseMiniSolid","componentLine","imageAdd","close","shipfoxLogo","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AAAA,SAEEA,WAAW,EACXC,YAAY,EACZC,cAAc,EACdC,eAAe,QACV,mBAAmB;AAE1B,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAElB,MAAMC,WAAW;IACfC,QAAQhB;IACRiB,WAAWf;IACXgB,OAAOf;IACPgB,kBAAkBf;IAClBgB,kBAAkBf;IAClBgB,eAAef;IACfgB,cAAcR;IACdS,SAASV;IACTW,QAAQd;IACRe,iBAAiBhB;IACjBiB,SAASd;IACTe,kBAAkBnB;IAClBoB,eAAerB;IACfsB,UAAU5B;IACV6B,OAAO/B;IACPgC,aAAapB;AACf;AAGA,OAAO,MAAMqB,YAAYC,OAAOC,IAAI,CAACnB,UAAwB;AAK7D,OAAO,SAASoB,KAAK,EAACC,IAAI,EAAE,GAAGC,OAAiB;IAC9C,MAAMC,gBAAgBvB,QAAQ,CAACqB,KAAK;IACpC,qBAAO,KAACE;QAAe,GAAGD,KAAK;;AACjC"}
@@ -1,5 +1,8 @@
1
+ export * from './alert';
2
+ export * from './avatar';
1
3
  export * from './button';
2
4
  export * from './icon';
5
+ export * from './inline-tips';
3
6
  export * from './textarea';
4
7
  export * from './theme-provider';
5
8
  export * from './typography';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}