@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.
Files changed (141) hide show
  1. package/.eslintrc.json +6 -6
  2. package/.prettierrc +13 -13
  3. package/.storybook/Layout.jsx +12 -12
  4. package/.storybook/head.tsx +4 -4
  5. package/.storybook/main.ts +18 -18
  6. package/.storybook/manager-head.html +1 -1
  7. package/.storybook/manager.ts +25 -25
  8. package/.storybook/plenumTheme.ts +8 -8
  9. package/.storybook/preview-head.html +3 -3
  10. package/.storybook/preview.tsx +28 -28
  11. package/.vscode/settings.json +3 -3
  12. package/README.md +271 -271
  13. package/app/globals.css +99 -99
  14. package/app/head.tsx +59 -59
  15. package/app/layout.tsx +28 -28
  16. package/app/page.tsx +7 -7
  17. package/build.js +45 -45
  18. package/dist/index.d.ts +230 -230
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +2 -2
  21. package/dist/tailwind.css +3482 -8027
  22. package/local.sh +100 -100
  23. package/next.config.js +8 -8
  24. package/package.json +83 -83
  25. package/pages/api/hello.ts +13 -13
  26. package/postcss.config.js +6 -6
  27. package/rollup.config.mjs +41 -41
  28. package/scripts/create-component.js +97 -97
  29. package/stories/Introduction.mdx +314 -314
  30. package/stories/assets/stackalt.svg +1 -1
  31. package/stories/atoms/Avatar/Avatar.stories.tsx +96 -96
  32. package/stories/atoms/Avatar/Avatar.tsx +123 -123
  33. package/stories/atoms/Avatar/index.ts +3 -3
  34. package/stories/atoms/badges/Badge.tsx +127 -127
  35. package/stories/atoms/badges/Pill/Pill.stories.tsx +75 -75
  36. package/stories/atoms/badges/Rounded/Rounded.stories.tsx +75 -75
  37. package/stories/atoms/badges/index.ts +3 -3
  38. package/stories/atoms/buttons/Button/Alternative/Alternative.stories.ts +86 -86
  39. package/stories/atoms/buttons/Button/Button.tsx +232 -232
  40. package/stories/atoms/buttons/Button/Danger/Danger.stories.ts +90 -90
  41. package/stories/atoms/buttons/Button/Primary/Primary.stories.ts +97 -97
  42. package/stories/atoms/buttons/Button/Secondary/Secondary.stories.ts +93 -93
  43. package/stories/atoms/buttons/Button/defaultArgs.ts +9 -9
  44. package/stories/atoms/buttons/Button/index.ts +3 -3
  45. package/stories/atoms/buttons/Capsule/Alternative/Alternative.stories.ts +27 -27
  46. package/stories/atoms/buttons/Capsule/Capsule.tsx +88 -88
  47. package/stories/atoms/buttons/Capsule/Danger/Danger.stories.ts +27 -27
  48. package/stories/atoms/buttons/Capsule/Primary/Primary.stories.ts +27 -27
  49. package/stories/atoms/buttons/Capsule/Secondary/Secondary.stories.ts +27 -27
  50. package/stories/atoms/buttons/Capsule/index.ts +3 -3
  51. package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.stories.tsx +15 -15
  52. package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.tsx +22 -22
  53. package/stories/atoms/buttons/FloatingActionButton/index.tsx +3 -3
  54. package/stories/atoms/buttons/index.ts +4 -4
  55. package/stories/atoms/crumb/Crumb.stories.tsx +18 -18
  56. package/stories/atoms/crumb/Crumb.tsx +22 -22
  57. package/stories/atoms/crumb/index.tsx +3 -3
  58. package/stories/atoms/icons/DynamicIcon.stories.ts +43 -43
  59. package/stories/atoms/icons/DynamicIcon.tsx +90 -90
  60. package/stories/atoms/icons/IconWithShadow.stories.ts +43 -43
  61. package/stories/atoms/icons/IconWithShadow.tsx +16 -16
  62. package/stories/atoms/icons/TablerIcon.tsx +22 -22
  63. package/stories/atoms/icons/index.tsx +14 -14
  64. package/stories/atoms/icons/tablerIconNames.ts +4336 -4336
  65. package/stories/atoms/index.ts +46 -46
  66. package/stories/atoms/loaders/Loader.stories.ts +15 -15
  67. package/stories/atoms/loaders/Loader.tsx +21 -21
  68. package/stories/atoms/loaders/NProgress/RadialProgress.stories.tsx +19 -19
  69. package/stories/atoms/loaders/NProgress/RadialProgress.tsx +74 -74
  70. package/stories/atoms/loaders/NProgress/index.ts +3 -3
  71. package/stories/atoms/loaders/index.ts +4 -4
  72. package/stories/index.ts +136 -136
  73. package/stories/molecules/index.ts +51 -51
  74. package/stories/molecules/inputs/InputCounter/InputCounter.stories.tsx +18 -18
  75. package/stories/molecules/inputs/InputCounter/InputCounter.tsx +24 -24
  76. package/stories/molecules/inputs/InputCounter/index.tsx +3 -3
  77. package/stories/molecules/inputs/InputField/InputField.stories.tsx +29 -29
  78. package/stories/molecules/inputs/InputField/InputField.tsx +96 -96
  79. package/stories/molecules/inputs/InputField/index.tsx +3 -3
  80. package/stories/molecules/inputs/InputLabel/InputLabel.stories.tsx +19 -19
  81. package/stories/molecules/inputs/InputLabel/InputLabel.tsx +45 -45
  82. package/stories/molecules/inputs/InputLabel/index.tsx +3 -3
  83. package/stories/molecules/inputs/NestedInputButton/NestedInputButton.stories.tsx +52 -52
  84. package/stories/molecules/inputs/NestedInputButton/NestedInputButton.tsx +64 -64
  85. package/stories/molecules/inputs/NestedInputButton/index.tsx +3 -3
  86. package/stories/molecules/inputs/TextInput/TextInput.stories.tsx +32 -32
  87. package/stories/molecules/inputs/TextInput/TextInput.tsx +165 -165
  88. package/stories/molecules/inputs/TextInput/index.tsx +5 -5
  89. package/stories/molecules/inputs/checkbox/Checkbox.stories.ts +23 -23
  90. package/stories/molecules/inputs/checkbox/Checkbox.tsx +98 -98
  91. package/stories/molecules/inputs/checkbox/index.ts +3 -3
  92. package/stories/molecules/inputs/combobox/ComboBox.stories.ts +41 -41
  93. package/stories/molecules/inputs/combobox/ComboBox.tsx +185 -185
  94. package/stories/molecules/inputs/combobox/index.ts +3 -3
  95. package/stories/molecules/inputs/index.ts +38 -38
  96. package/stories/molecules/inputs/radio/Radio.stories.ts +27 -27
  97. package/stories/molecules/inputs/radio/Radio.tsx +92 -92
  98. package/stories/molecules/inputs/radio/index.ts +3 -3
  99. package/stories/molecules/inputs/select/Select.stories.ts +23 -23
  100. package/stories/molecules/inputs/select/Select.tsx +108 -108
  101. package/stories/molecules/inputs/select/index.ts +3 -3
  102. package/stories/molecules/inputs/textArea/TextArea.stories.ts +22 -22
  103. package/stories/molecules/inputs/textArea/TextArea.tsx +158 -158
  104. package/stories/molecules/inputs/textArea/index.ts +3 -3
  105. package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.stories.tsx +118 -118
  106. package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.tsx +81 -81
  107. package/stories/molecules/inputs/toggleSwitch/index.ts +3 -3
  108. package/stories/molecules/tabs/Tabs.stories.tsx +18 -18
  109. package/stories/molecules/tabs/Tabs.tsx +22 -22
  110. package/stories/molecules/tabs/index.tsx +2 -2
  111. package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.stories.tsx +30 -30
  112. package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.tsx +66 -66
  113. package/stories/organisms/AnimatedLabelInput/index.tsx +3 -3
  114. package/stories/organisms/AnimatedLabelTextArea/AnimatedLabelTextArea.stories.tsx +26 -26
  115. package/stories/organisms/AnimatedLabelTextArea/AnimatedLabelTextArea.tsx +61 -61
  116. package/stories/organisms/AnimatedLabelTextArea/index.tsx +3 -3
  117. package/stories/organisms/ButtonDropdown/ButtonDropdown.stories.tsx +125 -125
  118. package/stories/organisms/ButtonDropdown/ButtonDropdown.tsx +86 -86
  119. package/stories/organisms/ButtonDropdown/index.tsx +3 -3
  120. package/stories/organisms/DropdownComponent/Dropdown.stories.tsx +73 -73
  121. package/stories/organisms/DropdownComponent/DropdownComponent.tsx +346 -346
  122. package/stories/organisms/DropdownComponent/dropdownItems.ts +122 -122
  123. package/stories/organisms/DropdownComponent/index.ts +4 -4
  124. package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.stories.tsx +76 -76
  125. package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.tsx +52 -52
  126. package/stories/organisms/EmptySectionPlaceholder/index.tsx +4 -4
  127. package/stories/organisms/FormInputWithAddons/FormInputWithAddons.stories.tsx +29 -29
  128. package/stories/organisms/FormInputWithAddons/FormInputWithAddons.tsx +145 -145
  129. package/stories/organisms/FormInputWithAddons/index.tsx +3 -3
  130. package/stories/organisms/TextInputSelect/InputSelect.tsx +59 -59
  131. package/stories/organisms/TextInputSelect/TextInputSelect.stories.tsx +33 -33
  132. package/stories/organisms/TextInputSelect/TextInputSelect.tsx +186 -186
  133. package/stories/organisms/TextInputSelect/index.tsx +3 -3
  134. package/stories/organisms/index.ts +27 -27
  135. package/tailwind.config.js +236 -192
  136. package/tsconfig.json +29 -29
  137. package/tsconfig.lib.json +25 -25
  138. package/utils/types.d.ts +2 -2
  139. package/utils/types.ts +3 -3
  140. package/utils/useId.d.ts +1 -1
  141. 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 }