@agility/plenum-ui 2.0.0-rc49 → 2.0.0-rc50
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/.eslintrc.json +6 -6
- package/.prettierrc +13 -13
- package/.storybook/Layout.jsx +12 -12
- package/.storybook/head.tsx +4 -4
- package/.storybook/main.ts +18 -18
- package/.storybook/manager-head.html +1 -1
- package/.storybook/manager.ts +25 -25
- package/.storybook/plenumTheme.ts +8 -8
- package/.storybook/preview-head.html +3 -3
- package/.storybook/preview.tsx +28 -28
- package/.vscode/settings.json +3 -3
- package/README.md +271 -271
- package/app/globals.css +99 -99
- package/app/head.tsx +59 -59
- package/app/layout.tsx +28 -28
- package/app/page.tsx +7 -7
- package/build.js +45 -45
- package/dist/index.d.ts +230 -230
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/tailwind.css +3482 -8027
- package/local.sh +100 -100
- package/next.config.js +8 -8
- package/package.json +83 -83
- package/pages/api/hello.ts +13 -13
- package/postcss.config.js +6 -6
- package/rollup.config.mjs +41 -41
- package/scripts/create-component.js +97 -97
- package/stories/Introduction.mdx +314 -314
- package/stories/assets/stackalt.svg +1 -1
- package/stories/atoms/Avatar/Avatar.stories.tsx +96 -96
- package/stories/atoms/Avatar/Avatar.tsx +123 -123
- package/stories/atoms/Avatar/index.ts +3 -3
- package/stories/atoms/badges/Badge.tsx +127 -127
- package/stories/atoms/badges/Pill/Pill.stories.tsx +75 -75
- package/stories/atoms/badges/Rounded/Rounded.stories.tsx +75 -75
- package/stories/atoms/badges/index.ts +3 -3
- package/stories/atoms/buttons/Button/Alternative/Alternative.stories.ts +86 -86
- package/stories/atoms/buttons/Button/Button.tsx +232 -232
- package/stories/atoms/buttons/Button/Danger/Danger.stories.ts +90 -90
- package/stories/atoms/buttons/Button/Primary/Primary.stories.ts +97 -97
- package/stories/atoms/buttons/Button/Secondary/Secondary.stories.ts +93 -93
- package/stories/atoms/buttons/Button/defaultArgs.ts +9 -9
- package/stories/atoms/buttons/Button/index.ts +3 -3
- package/stories/atoms/buttons/Capsule/Alternative/Alternative.stories.ts +27 -27
- package/stories/atoms/buttons/Capsule/Capsule.tsx +88 -88
- package/stories/atoms/buttons/Capsule/Danger/Danger.stories.ts +27 -27
- package/stories/atoms/buttons/Capsule/Primary/Primary.stories.ts +27 -27
- package/stories/atoms/buttons/Capsule/Secondary/Secondary.stories.ts +27 -27
- package/stories/atoms/buttons/Capsule/index.ts +3 -3
- package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.stories.tsx +15 -15
- package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.tsx +22 -22
- package/stories/atoms/buttons/FloatingActionButton/index.tsx +3 -3
- package/stories/atoms/buttons/index.ts +4 -4
- package/stories/atoms/crumb/Crumb.stories.tsx +18 -18
- package/stories/atoms/crumb/Crumb.tsx +22 -22
- package/stories/atoms/crumb/index.tsx +3 -3
- package/stories/atoms/icons/DynamicIcon.stories.ts +43 -43
- package/stories/atoms/icons/DynamicIcon.tsx +90 -90
- package/stories/atoms/icons/IconWithShadow.stories.ts +43 -43
- package/stories/atoms/icons/IconWithShadow.tsx +16 -16
- package/stories/atoms/icons/TablerIcon.tsx +22 -22
- package/stories/atoms/icons/index.tsx +14 -14
- package/stories/atoms/icons/tablerIconNames.ts +4336 -4336
- package/stories/atoms/index.ts +46 -46
- package/stories/atoms/loaders/Loader.stories.ts +15 -15
- package/stories/atoms/loaders/Loader.tsx +21 -21
- package/stories/atoms/loaders/NProgress/RadialProgress.stories.tsx +19 -19
- package/stories/atoms/loaders/NProgress/RadialProgress.tsx +74 -74
- package/stories/atoms/loaders/NProgress/index.ts +3 -3
- package/stories/atoms/loaders/index.ts +4 -4
- package/stories/index.ts +136 -136
- package/stories/molecules/index.ts +51 -51
- package/stories/molecules/inputs/InputCounter/InputCounter.stories.tsx +18 -18
- package/stories/molecules/inputs/InputCounter/InputCounter.tsx +24 -24
- package/stories/molecules/inputs/InputCounter/index.tsx +3 -3
- package/stories/molecules/inputs/InputField/InputField.stories.tsx +29 -29
- package/stories/molecules/inputs/InputField/InputField.tsx +96 -96
- package/stories/molecules/inputs/InputField/index.tsx +3 -3
- package/stories/molecules/inputs/InputLabel/InputLabel.stories.tsx +19 -19
- package/stories/molecules/inputs/InputLabel/InputLabel.tsx +45 -45
- package/stories/molecules/inputs/InputLabel/index.tsx +3 -3
- package/stories/molecules/inputs/NestedInputButton/NestedInputButton.stories.tsx +52 -52
- package/stories/molecules/inputs/NestedInputButton/NestedInputButton.tsx +64 -64
- package/stories/molecules/inputs/NestedInputButton/index.tsx +3 -3
- package/stories/molecules/inputs/TextInput/TextInput.stories.tsx +32 -32
- package/stories/molecules/inputs/TextInput/TextInput.tsx +165 -165
- package/stories/molecules/inputs/TextInput/index.tsx +5 -5
- package/stories/molecules/inputs/checkbox/Checkbox.stories.ts +23 -23
- package/stories/molecules/inputs/checkbox/Checkbox.tsx +98 -98
- package/stories/molecules/inputs/checkbox/index.ts +3 -3
- package/stories/molecules/inputs/combobox/ComboBox.stories.ts +41 -41
- package/stories/molecules/inputs/combobox/ComboBox.tsx +185 -185
- package/stories/molecules/inputs/combobox/index.ts +3 -3
- package/stories/molecules/inputs/index.ts +38 -38
- package/stories/molecules/inputs/radio/Radio.stories.ts +27 -27
- package/stories/molecules/inputs/radio/Radio.tsx +92 -92
- package/stories/molecules/inputs/radio/index.ts +3 -3
- package/stories/molecules/inputs/select/Select.stories.ts +23 -23
- package/stories/molecules/inputs/select/Select.tsx +108 -108
- package/stories/molecules/inputs/select/index.ts +3 -3
- package/stories/molecules/inputs/textArea/TextArea.stories.ts +22 -22
- package/stories/molecules/inputs/textArea/TextArea.tsx +158 -158
- package/stories/molecules/inputs/textArea/index.ts +3 -3
- package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.stories.tsx +118 -118
- package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.tsx +81 -81
- package/stories/molecules/inputs/toggleSwitch/index.ts +3 -3
- package/stories/molecules/tabs/Tabs.stories.tsx +18 -18
- package/stories/molecules/tabs/Tabs.tsx +22 -22
- package/stories/molecules/tabs/index.tsx +2 -2
- package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.stories.tsx +30 -30
- package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.tsx +66 -66
- package/stories/organisms/AnimatedLabelInput/index.tsx +3 -3
- package/stories/organisms/AnimatedLabelTextArea/AnimatedLabelTextArea.stories.tsx +26 -26
- package/stories/organisms/AnimatedLabelTextArea/AnimatedLabelTextArea.tsx +61 -61
- package/stories/organisms/AnimatedLabelTextArea/index.tsx +3 -3
- package/stories/organisms/ButtonDropdown/ButtonDropdown.stories.tsx +125 -125
- package/stories/organisms/ButtonDropdown/ButtonDropdown.tsx +86 -86
- package/stories/organisms/ButtonDropdown/index.tsx +3 -3
- package/stories/organisms/DropdownComponent/Dropdown.stories.tsx +73 -73
- package/stories/organisms/DropdownComponent/DropdownComponent.tsx +346 -346
- package/stories/organisms/DropdownComponent/dropdownItems.ts +122 -122
- package/stories/organisms/DropdownComponent/index.ts +4 -4
- package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.stories.tsx +76 -76
- package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.tsx +52 -52
- package/stories/organisms/EmptySectionPlaceholder/index.tsx +4 -4
- package/stories/organisms/FormInputWithAddons/FormInputWithAddons.stories.tsx +29 -29
- package/stories/organisms/FormInputWithAddons/FormInputWithAddons.tsx +145 -145
- package/stories/organisms/FormInputWithAddons/index.tsx +3 -3
- package/stories/organisms/TextInputSelect/InputSelect.tsx +59 -59
- package/stories/organisms/TextInputSelect/TextInputSelect.stories.tsx +33 -33
- package/stories/organisms/TextInputSelect/TextInputSelect.tsx +186 -186
- package/stories/organisms/TextInputSelect/index.tsx +3 -3
- package/stories/organisms/index.ts +27 -27
- package/tailwind.config.js +236 -192
- package/tsconfig.json +29 -29
- package/tsconfig.lib.json +25 -25
- package/utils/types.d.ts +2 -2
- package/utils/types.ts +3 -3
- package/utils/useId.d.ts +1 -1
- package/utils/useId.tsx +16 -16
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
// TODO: Fix heroicons support
|
|
3
|
-
import * as SolidIcons from "@heroicons/react/solid"
|
|
4
|
-
import * as OutlineIcons from "@heroicons/react/outline"
|
|
5
|
-
import * as FA from "react-icons/fa"
|
|
6
|
-
import { tablerIconNames, TablerIconName } from "./tablerIconNames"
|
|
7
|
-
import { default as cn } from "classnames"
|
|
8
|
-
|
|
9
|
-
import { ClassNameWithAutocomplete } from "@/utils/types"
|
|
10
|
-
import TablerIcon from "./TablerIcon"
|
|
11
|
-
|
|
12
|
-
export type IconName = keyof typeof SolidIcons | keyof typeof OutlineIcons
|
|
13
|
-
export type FAIconName = keyof typeof FA
|
|
14
|
-
|
|
15
|
-
export type UnifiedIconName = TablerIconName | IconName | FAIconName
|
|
16
|
-
|
|
17
|
-
export function isHeroIcon(name: UnifiedIconName): name is keyof typeof SolidIcons | keyof typeof OutlineIcons {
|
|
18
|
-
return name in SolidIcons || name in OutlineIcons
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function isTablerIcon(name: UnifiedIconName): name is TablerIconName {
|
|
22
|
-
return tablerIconNames.includes(name as TablerIconName)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function isFAIcon(name: UnifiedIconName): name is keyof typeof FA {
|
|
26
|
-
return name in FA
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function isUnifiedIconName(name: UnifiedIconName): name is UnifiedIconName {
|
|
30
|
-
return isTablerIcon(name) // || isHeroIcon(name) || isFAIcon(name)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface IDynamicIconProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
34
|
-
icon: UnifiedIconName
|
|
35
|
-
className?: ClassNameWithAutocomplete
|
|
36
|
-
outline?: boolean
|
|
37
|
-
CustomSVG?: React.ReactNode
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const DynamicIcon = ({
|
|
41
|
-
icon,
|
|
42
|
-
className = "w-5 h-5 text-gray-400",
|
|
43
|
-
outline,
|
|
44
|
-
CustomSVG,
|
|
45
|
-
...props
|
|
46
|
-
}: IDynamicIconProps): JSX.Element => {
|
|
47
|
-
if (CustomSVG) {
|
|
48
|
-
return <i {...{ ...props, className: "flex items-center justify-center" }}>{CustomSVG}</i>
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (isTablerIcon(icon)) {
|
|
52
|
-
return (
|
|
53
|
-
<TablerIcon
|
|
54
|
-
{...{
|
|
55
|
-
icon,
|
|
56
|
-
className: cn(className, {
|
|
57
|
-
"text-gray-600 h-5 w-5": !className
|
|
58
|
-
}),
|
|
59
|
-
outline
|
|
60
|
-
}}
|
|
61
|
-
/>
|
|
62
|
-
)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (isFAIcon(icon)) {
|
|
66
|
-
const Icon = FA[icon]
|
|
67
|
-
return (
|
|
68
|
-
<i {...{ ...props, className: "flex items-center justify-center" }}>
|
|
69
|
-
<Icon
|
|
70
|
-
className={cn(className, {
|
|
71
|
-
"h-5 w-5 text-gray-600": !className
|
|
72
|
-
})}
|
|
73
|
-
/>
|
|
74
|
-
</i>
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
if (isHeroIcon(icon)) {
|
|
78
|
-
const Icon = outline ? OutlineIcons[icon] : SolidIcons[icon]
|
|
79
|
-
return (
|
|
80
|
-
<i {...{ ...props, className: "flex items-center justify-center" }}>
|
|
81
|
-
<Icon
|
|
82
|
-
className={cn(className, {
|
|
83
|
-
"h-5 w-5 text-gray-600": !className
|
|
84
|
-
})}
|
|
85
|
-
/>
|
|
86
|
-
</i>
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
return <></>
|
|
90
|
-
}
|
|
1
|
+
import React from "react"
|
|
2
|
+
// TODO: Fix heroicons support
|
|
3
|
+
import * as SolidIcons from "@heroicons/react/solid"
|
|
4
|
+
import * as OutlineIcons from "@heroicons/react/outline"
|
|
5
|
+
import * as FA from "react-icons/fa"
|
|
6
|
+
import { tablerIconNames, TablerIconName } from "./tablerIconNames"
|
|
7
|
+
import { default as cn } from "classnames"
|
|
8
|
+
|
|
9
|
+
import { ClassNameWithAutocomplete } from "@/utils/types"
|
|
10
|
+
import TablerIcon from "./TablerIcon"
|
|
11
|
+
|
|
12
|
+
export type IconName = keyof typeof SolidIcons | keyof typeof OutlineIcons
|
|
13
|
+
export type FAIconName = keyof typeof FA
|
|
14
|
+
|
|
15
|
+
export type UnifiedIconName = TablerIconName | IconName | FAIconName
|
|
16
|
+
|
|
17
|
+
export function isHeroIcon(name: UnifiedIconName): name is keyof typeof SolidIcons | keyof typeof OutlineIcons {
|
|
18
|
+
return name in SolidIcons || name in OutlineIcons
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function isTablerIcon(name: UnifiedIconName): name is TablerIconName {
|
|
22
|
+
return tablerIconNames.includes(name as TablerIconName)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function isFAIcon(name: UnifiedIconName): name is keyof typeof FA {
|
|
26
|
+
return name in FA
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function isUnifiedIconName(name: UnifiedIconName): name is UnifiedIconName {
|
|
30
|
+
return isTablerIcon(name) // || isHeroIcon(name) || isFAIcon(name)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface IDynamicIconProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
34
|
+
icon: UnifiedIconName
|
|
35
|
+
className?: ClassNameWithAutocomplete
|
|
36
|
+
outline?: boolean
|
|
37
|
+
CustomSVG?: React.ReactNode
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const DynamicIcon = ({
|
|
41
|
+
icon,
|
|
42
|
+
className = "w-5 h-5 text-gray-400",
|
|
43
|
+
outline,
|
|
44
|
+
CustomSVG,
|
|
45
|
+
...props
|
|
46
|
+
}: IDynamicIconProps): JSX.Element => {
|
|
47
|
+
if (CustomSVG) {
|
|
48
|
+
return <i {...{ ...props, className: "flex items-center justify-center" }}>{CustomSVG}</i>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (isTablerIcon(icon)) {
|
|
52
|
+
return (
|
|
53
|
+
<TablerIcon
|
|
54
|
+
{...{
|
|
55
|
+
icon,
|
|
56
|
+
className: cn(className, {
|
|
57
|
+
"text-gray-600 h-5 w-5": !className
|
|
58
|
+
}),
|
|
59
|
+
outline
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (isFAIcon(icon)) {
|
|
66
|
+
const Icon = FA[icon]
|
|
67
|
+
return (
|
|
68
|
+
<i {...{ ...props, className: "flex items-center justify-center" }}>
|
|
69
|
+
<Icon
|
|
70
|
+
className={cn(className, {
|
|
71
|
+
"h-5 w-5 text-gray-600": !className
|
|
72
|
+
})}
|
|
73
|
+
/>
|
|
74
|
+
</i>
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
if (isHeroIcon(icon)) {
|
|
78
|
+
const Icon = outline ? OutlineIcons[icon] : SolidIcons[icon]
|
|
79
|
+
return (
|
|
80
|
+
<i {...{ ...props, className: "flex items-center justify-center" }}>
|
|
81
|
+
<Icon
|
|
82
|
+
className={cn(className, {
|
|
83
|
+
"h-5 w-5 text-gray-600": !className
|
|
84
|
+
})}
|
|
85
|
+
/>
|
|
86
|
+
</i>
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
return <></>
|
|
90
|
+
}
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
|
-
import IconWithShadow from "./IconWithShadow"
|
|
3
|
-
|
|
4
|
-
const meta: Meta<typeof IconWithShadow> = {
|
|
5
|
-
title: "Design System/atoms/Icons/Icon With Shadow",
|
|
6
|
-
component: IconWithShadow,
|
|
7
|
-
tags: ["autodocs"]
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
type Story = StoryObj<typeof IconWithShadow>
|
|
11
|
-
|
|
12
|
-
export const HeroIconSolid: Story = {
|
|
13
|
-
args: {
|
|
14
|
-
icon: "IconCube",
|
|
15
|
-
outline: false
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export const HeroIconOutline: Story = {
|
|
19
|
-
args: {
|
|
20
|
-
icon: "IconCube",
|
|
21
|
-
outline: true
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export const TablerIconSolid: Story = {
|
|
25
|
-
args: {
|
|
26
|
-
icon: "IconPaperclip",
|
|
27
|
-
outline: false
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export const TablerIconOutline: Story = {
|
|
31
|
-
args: {
|
|
32
|
-
icon: "IconPaperclip",
|
|
33
|
-
outline: true
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export const FAIcon: Story = {
|
|
37
|
-
args: {
|
|
38
|
-
icon: "IconBrandGithub",
|
|
39
|
-
outline: true
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export default meta
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
2
|
+
import IconWithShadow from "./IconWithShadow"
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof IconWithShadow> = {
|
|
5
|
+
title: "Design System/atoms/Icons/Icon With Shadow",
|
|
6
|
+
component: IconWithShadow,
|
|
7
|
+
tags: ["autodocs"]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
type Story = StoryObj<typeof IconWithShadow>
|
|
11
|
+
|
|
12
|
+
export const HeroIconSolid: Story = {
|
|
13
|
+
args: {
|
|
14
|
+
icon: "IconCube",
|
|
15
|
+
outline: false
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export const HeroIconOutline: Story = {
|
|
19
|
+
args: {
|
|
20
|
+
icon: "IconCube",
|
|
21
|
+
outline: true
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const TablerIconSolid: Story = {
|
|
25
|
+
args: {
|
|
26
|
+
icon: "IconPaperclip",
|
|
27
|
+
outline: false
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const TablerIconOutline: Story = {
|
|
31
|
+
args: {
|
|
32
|
+
icon: "IconPaperclip",
|
|
33
|
+
outline: true
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const FAIcon: Story = {
|
|
37
|
+
args: {
|
|
38
|
+
icon: "IconBrandGithub",
|
|
39
|
+
outline: true
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export default meta
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { DynamicIcon } from "./DynamicIcon"
|
|
2
|
-
import { default as cn } from "classnames"
|
|
3
|
-
import { IDynamicIconProps } from "./DynamicIcon"
|
|
4
|
-
|
|
5
|
-
export interface IIconWithShadowProps extends IDynamicIconProps {}
|
|
6
|
-
|
|
7
|
-
const IconWithShadow: React.FC<IIconWithShadowProps> = (props) => {
|
|
8
|
-
return (
|
|
9
|
-
<div className="flex flex-col items-center justify-center ">
|
|
10
|
-
<DynamicIcon {...{ ...props, className: cn("h-12 w-12 text-gray-400") }} outline />
|
|
11
|
-
<div className={cn("mt-2 h-2 w-24 bg-gray-100")} style={{ borderRadius: "40%" }} />
|
|
12
|
-
</div>
|
|
13
|
-
)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export default IconWithShadow
|
|
1
|
+
import { DynamicIcon } from "./DynamicIcon"
|
|
2
|
+
import { default as cn } from "classnames"
|
|
3
|
+
import { IDynamicIconProps } from "./DynamicIcon"
|
|
4
|
+
|
|
5
|
+
export interface IIconWithShadowProps extends IDynamicIconProps {}
|
|
6
|
+
|
|
7
|
+
const IconWithShadow: React.FC<IIconWithShadowProps> = (props) => {
|
|
8
|
+
return (
|
|
9
|
+
<div className="flex flex-col items-center justify-center ">
|
|
10
|
+
<DynamicIcon {...{ ...props, className: cn("h-12 w-12 text-gray-400") }} outline />
|
|
11
|
+
<div className={cn("mt-2 h-2 w-24 bg-gray-100")} style={{ borderRadius: "40%" }} />
|
|
12
|
+
</div>
|
|
13
|
+
)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default IconWithShadow
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
import { TablerIconName } from "./tablerIconNames"
|
|
3
|
-
import * as TablerIcons from "@tabler/icons-react"
|
|
4
|
-
import { ClassNameWithAutocomplete } from "@/utils/types"
|
|
5
|
-
|
|
6
|
-
export interface ITablerIconProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
7
|
-
icon: TablerIconName
|
|
8
|
-
className?: ClassNameWithAutocomplete
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const TablerIcon: React.FC<ITablerIconProps> = ({
|
|
12
|
-
icon,
|
|
13
|
-
className = "w-6 h-6 text-gray-600"
|
|
14
|
-
}: ITablerIconProps): JSX.Element => {
|
|
15
|
-
const Icon = TablerIcons[icon]
|
|
16
|
-
return (
|
|
17
|
-
<i>
|
|
18
|
-
<Icon className={className} />
|
|
19
|
-
</i>
|
|
20
|
-
)
|
|
21
|
-
}
|
|
22
|
-
export default TablerIcon
|
|
1
|
+
import React from "react"
|
|
2
|
+
import { TablerIconName } from "./tablerIconNames"
|
|
3
|
+
import * as TablerIcons from "@tabler/icons-react"
|
|
4
|
+
import { ClassNameWithAutocomplete } from "@/utils/types"
|
|
5
|
+
|
|
6
|
+
export interface ITablerIconProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
7
|
+
icon: TablerIconName
|
|
8
|
+
className?: ClassNameWithAutocomplete
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const TablerIcon: React.FC<ITablerIconProps> = ({
|
|
12
|
+
icon,
|
|
13
|
+
className = "w-6 h-6 text-gray-600"
|
|
14
|
+
}: ITablerIconProps): JSX.Element => {
|
|
15
|
+
const Icon = TablerIcons[icon]
|
|
16
|
+
return (
|
|
17
|
+
<i>
|
|
18
|
+
<Icon className={className} />
|
|
19
|
+
</i>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
export default TablerIcon
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DynamicIcon,
|
|
3
|
-
FAIconName,
|
|
4
|
-
IDynamicIconProps,
|
|
5
|
-
IconName,
|
|
6
|
-
UnifiedIconName,
|
|
7
|
-
isFAIcon,
|
|
8
|
-
isHeroIcon,
|
|
9
|
-
isTablerIcon,
|
|
10
|
-
isUnifiedIconName
|
|
11
|
-
} from "./DynamicIcon"
|
|
12
|
-
import IconWithShadow, { IIconWithShadowProps } from "./IconWithShadow"
|
|
13
|
-
export { DynamicIcon, isFAIcon, isHeroIcon, isTablerIcon, isUnifiedIconName, IconWithShadow }
|
|
14
|
-
export type { FAIconName, IDynamicIconProps, IconName, UnifiedIconName, IIconWithShadowProps }
|
|
1
|
+
import {
|
|
2
|
+
DynamicIcon,
|
|
3
|
+
FAIconName,
|
|
4
|
+
IDynamicIconProps,
|
|
5
|
+
IconName,
|
|
6
|
+
UnifiedIconName,
|
|
7
|
+
isFAIcon,
|
|
8
|
+
isHeroIcon,
|
|
9
|
+
isTablerIcon,
|
|
10
|
+
isUnifiedIconName
|
|
11
|
+
} from "./DynamicIcon"
|
|
12
|
+
import IconWithShadow, { IIconWithShadowProps } from "./IconWithShadow"
|
|
13
|
+
export { DynamicIcon, isFAIcon, isHeroIcon, isTablerIcon, isUnifiedIconName, IconWithShadow }
|
|
14
|
+
export type { FAIconName, IDynamicIconProps, IconName, UnifiedIconName, IIconWithShadowProps }
|