@agility/plenum-ui 1.3.50 → 2.0.0-rc1

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 (332) hide show
  1. package/.eslintrc.json +6 -0
  2. package/.prettierrc +12 -12
  3. package/.storybook/Layout.jsx +9 -6
  4. package/.storybook/head.tsx +4 -0
  5. package/.storybook/main.ts +18 -0
  6. package/.storybook/manager-head.html +1 -0
  7. package/.storybook/manager.ts +25 -0
  8. package/.storybook/plenumTheme.ts +8 -0
  9. package/.storybook/preview-head.html +4 -0
  10. package/.storybook/preview.tsx +28 -0
  11. package/.vscode/settings.json +4 -0
  12. package/.yarnrc.yml +1 -0
  13. package/README.md +165 -53
  14. package/app/globals.css +99 -0
  15. package/app/head.tsx +59 -0
  16. package/app/layout.tsx +28 -0
  17. package/app/page.tsx +7 -0
  18. package/build.js +33 -0
  19. package/dist/index.js +5936 -0
  20. package/dist/index.js.map +7 -0
  21. package/{lib/components → dist/types/stories/atoms}/Avatar/Avatar.d.ts +28 -27
  22. package/dist/types/stories/atoms/Avatar/index.d.ts +3 -0
  23. package/dist/types/stories/atoms/badges/Badge.d.ts +21 -0
  24. package/dist/types/stories/atoms/badges/index.d.ts +3 -0
  25. package/dist/types/stories/atoms/buttons/Button/Alternative/Alternative.stories.d.ts +13 -0
  26. package/dist/types/stories/atoms/buttons/Button/Button.d.ts +33 -0
  27. package/dist/types/stories/atoms/buttons/Button/Danger/Danger.stories.d.ts +13 -0
  28. package/dist/types/stories/atoms/buttons/Button/Primary/Primary.stories.d.ts +13 -0
  29. package/dist/types/stories/atoms/buttons/Button/Secondary/Secondary.stories.d.ts +13 -0
  30. package/dist/types/stories/atoms/buttons/Button/defaultArgs.d.ts +3 -0
  31. package/dist/types/stories/atoms/buttons/Button/index.d.ts +3 -0
  32. package/dist/types/stories/atoms/buttons/Capsule/Alternative/Alternative.stories.d.ts +6 -0
  33. package/dist/types/stories/atoms/buttons/Capsule/Capsule.d.ts +27 -0
  34. package/dist/types/stories/atoms/buttons/Capsule/Danger/Danger.stories.d.ts +6 -0
  35. package/dist/types/stories/atoms/buttons/Capsule/Primary/Primary.stories.d.ts +6 -0
  36. package/dist/types/stories/atoms/buttons/Capsule/Secondary/Secondary.stories.d.ts +6 -0
  37. package/dist/types/stories/atoms/buttons/Capsule/index.d.ts +3 -0
  38. package/dist/types/stories/atoms/buttons/index.d.ts +4 -0
  39. package/{lib/components/DynamicIcons/DynamicIcons.d.ts → dist/types/stories/atoms/icons/DynamicIcon.d.ts} +20 -18
  40. package/dist/types/stories/atoms/icons/DynamicIcon.stories.d.ts +10 -0
  41. package/dist/types/stories/atoms/icons/IconWithShadow.d.ts +6 -0
  42. package/dist/types/stories/atoms/icons/IconWithShadow.stories.d.ts +10 -0
  43. package/{lib/components/DynamicIcons → dist/types/stories/atoms/icons}/TablerIcon.d.ts +9 -9
  44. package/dist/types/stories/atoms/icons/index.d.ts +4 -0
  45. package/dist/types/stories/atoms/icons/tablerIconNames.d.ts +2 -0
  46. package/dist/types/stories/atoms/index.d.ts +7 -0
  47. package/dist/types/stories/atoms/loaders/Loader.d.ts +6 -0
  48. package/dist/types/stories/atoms/loaders/Loader.stories.d.ts +6 -0
  49. package/dist/types/stories/atoms/loaders/NProgress/RadialProgress.d.ts +11 -0
  50. package/dist/types/stories/atoms/loaders/NProgress/index.d.ts +3 -0
  51. package/dist/types/stories/atoms/loaders/index.d.ts +4 -0
  52. package/dist/types/stories/index.d.ts +5 -0
  53. package/dist/types/stories/layouts/index.d.ts +0 -0
  54. package/dist/types/stories/molecules/index.d.ts +3 -0
  55. package/dist/types/stories/molecules/inputs/InputField/InputField.d.ts +28 -0
  56. package/dist/types/stories/molecules/inputs/InputField/index.d.ts +3 -0
  57. package/{lib/components/Forms → dist/types/stories/molecules/inputs}/InputLabel/InputLabel.d.ts +15 -14
  58. package/dist/types/stories/molecules/inputs/InputLabel/index.d.ts +3 -0
  59. package/dist/types/stories/molecules/inputs/NestedInputButton/NestedInputButton.d.ts +17 -0
  60. package/dist/types/stories/molecules/inputs/NestedInputButton/index.d.ts +3 -0
  61. package/{lib/components/Forms/Checkbox → dist/types/stories/molecules/inputs/checkbox}/Checkbox.d.ts +28 -27
  62. package/dist/types/stories/molecules/inputs/checkbox/Checkbox.stories.d.ts +6 -0
  63. package/dist/types/stories/molecules/inputs/checkbox/index.d.ts +3 -0
  64. package/{lib/components/Combobox/Combobox.d.ts → dist/types/stories/molecules/inputs/combobox/ComboBox.d.ts} +34 -34
  65. package/dist/types/stories/molecules/inputs/combobox/ComboBox.stories.d.ts +6 -0
  66. package/dist/types/stories/molecules/inputs/combobox/index.d.ts +3 -0
  67. package/dist/types/stories/molecules/inputs/index.d.ts +11 -0
  68. package/{lib/components/Forms/Radio → dist/types/stories/molecules/inputs/radio}/Radio.d.ts +27 -27
  69. package/dist/types/stories/molecules/inputs/radio/Radio.stories.d.ts +6 -0
  70. package/dist/types/stories/molecules/inputs/radio/index.d.ts +3 -0
  71. package/{lib/components/Forms/Select → dist/types/stories/molecules/inputs/select}/Select.d.ts +27 -27
  72. package/dist/types/stories/molecules/inputs/select/Select.stories.d.ts +6 -0
  73. package/dist/types/stories/molecules/inputs/select/index.d.ts +3 -0
  74. package/dist/types/stories/molecules/inputs/textArea/TextArea.d.ts +26 -0
  75. package/dist/types/stories/molecules/inputs/textArea/TextArea.stories.d.ts +6 -0
  76. package/dist/types/stories/molecules/inputs/textArea/index.d.ts +3 -0
  77. package/dist/types/stories/molecules/inputs/toggleSwitch/ToggleSwitch.d.ts +18 -0
  78. package/dist/types/stories/molecules/inputs/toggleSwitch/index.d.ts +3 -0
  79. package/dist/types/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.d.ts +18 -0
  80. package/dist/types/stories/organisms/AnimatedLabelInput/index.d.ts +3 -0
  81. package/dist/types/stories/organisms/ButtonDropdown/ButtonDropdown.d.ts +14 -0
  82. package/dist/types/stories/organisms/ButtonDropdown/index.d.ts +3 -0
  83. package/{lib/components/Dropdown/Dropdown.d.ts → dist/types/stories/organisms/DropdownComponent/DropdownComponent.d.ts} +40 -39
  84. package/dist/types/stories/organisms/DropdownComponent/dropdownItems.d.ts +3 -0
  85. package/dist/types/stories/organisms/DropdownComponent/index.d.ts +4 -0
  86. package/dist/types/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.d.ts +19 -0
  87. package/dist/types/stories/organisms/EmptySectionPlaceholder/index.d.ts +3 -0
  88. package/dist/types/stories/organisms/FormInputWithAddons/FormInputWithAddons.d.ts +21 -0
  89. package/dist/types/stories/organisms/FormInputWithAddons/index.d.ts +3 -0
  90. package/dist/types/stories/organisms/index.d.ts +7 -0
  91. package/dist/types/utils/types.d.ts +2 -0
  92. package/dist/types/utils/useId.d.ts +1 -0
  93. package/next.config.js +8 -0
  94. package/package.json +53 -77
  95. package/pages/api/hello.ts +13 -0
  96. package/postcss.config.js +5 -6
  97. package/public/next.svg +1 -0
  98. package/public/thirteen.svg +1 -0
  99. package/public/vercel.svg +1 -0
  100. package/scripts/create-component.js +97 -0
  101. package/stories/Introduction.mdx +314 -0
  102. package/stories/assets/code-brackets.svg +1 -0
  103. package/stories/assets/colors.svg +1 -0
  104. package/stories/assets/comments.svg +1 -0
  105. package/stories/assets/direction.svg +1 -0
  106. package/stories/assets/flow.svg +1 -0
  107. package/stories/assets/plugin.svg +1 -0
  108. package/stories/assets/repo.svg +1 -0
  109. package/stories/assets/stackalt.svg +1 -0
  110. package/stories/atoms/Avatar/Avatar.stories.tsx +96 -0
  111. package/stories/atoms/Avatar/Avatar.tsx +123 -0
  112. package/stories/atoms/Avatar/index.ts +3 -0
  113. package/stories/atoms/badges/Badge.tsx +127 -0
  114. package/stories/atoms/badges/Pill/Pill.stories.tsx +75 -0
  115. package/stories/atoms/badges/Rounded/Rounded.stories.tsx +75 -0
  116. package/stories/atoms/badges/index.ts +3 -0
  117. package/stories/atoms/buttons/Button/Alternative/Alternative.stories.ts +69 -0
  118. package/stories/atoms/buttons/Button/Button.tsx +123 -0
  119. package/stories/atoms/buttons/Button/Danger/Danger.stories.ts +71 -0
  120. package/stories/atoms/buttons/Button/Primary/Primary.stories.ts +78 -0
  121. package/stories/atoms/buttons/Button/Secondary/Secondary.stories.ts +74 -0
  122. package/stories/atoms/buttons/Button/defaultArgs.ts +9 -0
  123. package/stories/atoms/buttons/Button/index.ts +3 -0
  124. package/stories/atoms/buttons/Capsule/Alternative/Alternative.stories.ts +27 -0
  125. package/stories/atoms/buttons/Capsule/Capsule.tsx +87 -0
  126. package/stories/atoms/buttons/Capsule/Danger/Danger.stories.ts +27 -0
  127. package/stories/atoms/buttons/Capsule/Primary/Primary.stories.ts +27 -0
  128. package/stories/atoms/buttons/Capsule/Secondary/Secondary.stories.ts +27 -0
  129. package/stories/atoms/buttons/Capsule/index.ts +3 -0
  130. package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.stories.tsx +15 -0
  131. package/stories/atoms/buttons/FloatingActionButton/FloatingActionButton.tsx +22 -0
  132. package/stories/atoms/buttons/FloatingActionButton/index.tsx +3 -0
  133. package/stories/atoms/buttons/index.ts +4 -0
  134. package/stories/atoms/crumb/Crumb.stories.tsx +18 -0
  135. package/stories/atoms/crumb/Crumb.tsx +22 -0
  136. package/stories/atoms/crumb/index.tsx +3 -0
  137. package/stories/atoms/icons/DynamicIcon.stories.ts +43 -0
  138. package/stories/atoms/icons/DynamicIcon.tsx +90 -0
  139. package/stories/atoms/icons/IconWithShadow.stories.ts +43 -0
  140. package/stories/atoms/icons/IconWithShadow.tsx +16 -0
  141. package/stories/atoms/icons/TablerIcon.tsx +22 -0
  142. package/stories/atoms/icons/index.tsx +14 -0
  143. package/stories/atoms/icons/tablerIconNames.ts +4336 -0
  144. package/stories/atoms/index.ts +46 -0
  145. package/stories/atoms/loaders/Loader.stories.ts +15 -0
  146. package/stories/atoms/loaders/Loader.tsx +15 -0
  147. package/stories/atoms/loaders/NProgress/RadialProgress.stories.tsx +19 -0
  148. package/stories/atoms/loaders/NProgress/RadialProgress.tsx +76 -0
  149. package/stories/atoms/loaders/NProgress/index.ts +3 -0
  150. package/stories/atoms/loaders/index.ts +4 -0
  151. package/stories/index.ts +124 -0
  152. package/stories/layouts/CardLayout/CardLayout.stories.tsx +18 -0
  153. package/stories/layouts/CardLayout/CardLayout.tsx +22 -0
  154. package/stories/layouts/CardLayout/index.tsx +3 -0
  155. package/stories/layouts/ModalLayout/ModalLayout.stories.tsx +18 -0
  156. package/stories/layouts/ModalLayout/ModalLayout.tsx +22 -0
  157. package/stories/layouts/ModalLayout/index.tsx +3 -0
  158. package/stories/layouts/index.ts +0 -0
  159. package/stories/molecules/index.ts +35 -0
  160. package/stories/molecules/inputs/InputField/InputField.stories.tsx +29 -0
  161. package/stories/molecules/inputs/InputField/InputField.tsx +88 -0
  162. package/stories/molecules/inputs/InputField/index.tsx +3 -0
  163. package/stories/molecules/inputs/InputLabel/InputLabel.stories.tsx +19 -0
  164. package/stories/molecules/inputs/InputLabel/InputLabel.tsx +45 -0
  165. package/stories/molecules/inputs/InputLabel/index.tsx +3 -0
  166. package/stories/molecules/inputs/NestedInputButton/NestedInputButton.stories.tsx +52 -0
  167. package/stories/molecules/inputs/NestedInputButton/NestedInputButton.tsx +64 -0
  168. package/stories/molecules/inputs/NestedInputButton/index.tsx +3 -0
  169. package/stories/molecules/inputs/checkbox/Checkbox.stories.ts +23 -0
  170. package/stories/molecules/inputs/checkbox/Checkbox.tsx +99 -0
  171. package/stories/molecules/inputs/checkbox/index.ts +3 -0
  172. package/stories/molecules/inputs/combobox/ComboBox.stories.ts +41 -0
  173. package/stories/molecules/inputs/combobox/ComboBox.tsx +194 -0
  174. package/stories/molecules/inputs/combobox/index.ts +3 -0
  175. package/stories/molecules/inputs/index.ts +24 -0
  176. package/stories/molecules/inputs/radio/Radio.stories.ts +27 -0
  177. package/stories/molecules/inputs/radio/Radio.tsx +92 -0
  178. package/stories/molecules/inputs/radio/index.ts +3 -0
  179. package/stories/molecules/inputs/select/Select.stories.ts +23 -0
  180. package/stories/molecules/inputs/select/Select.tsx +100 -0
  181. package/stories/molecules/inputs/select/index.ts +3 -0
  182. package/stories/molecules/inputs/textArea/TextArea.stories.ts +20 -0
  183. package/stories/molecules/inputs/textArea/TextArea.tsx +67 -0
  184. package/stories/molecules/inputs/textArea/index.ts +3 -0
  185. package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.stories.tsx +119 -0
  186. package/stories/molecules/inputs/toggleSwitch/ToggleSwitch.tsx +75 -0
  187. package/stories/molecules/inputs/toggleSwitch/index.ts +3 -0
  188. package/stories/molecules/tabs/Tabs.stories.tsx +18 -0
  189. package/stories/molecules/tabs/Tabs.tsx +22 -0
  190. package/stories/molecules/tabs/index.tsx +3 -0
  191. package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.stories.tsx +21 -0
  192. package/stories/organisms/AnimatedLabelInput/AnimatedLabelInput.tsx +60 -0
  193. package/stories/organisms/AnimatedLabelInput/index.tsx +3 -0
  194. package/stories/organisms/ButtonDropdown/ButtonDropdown.stories.tsx +118 -0
  195. package/stories/organisms/ButtonDropdown/ButtonDropdown.tsx +81 -0
  196. package/stories/organisms/ButtonDropdown/index.tsx +3 -0
  197. package/stories/organisms/DropdownComponent/Dropdown.stories.tsx +49 -0
  198. package/stories/organisms/DropdownComponent/Dropdown.test.tsx +0 -0
  199. package/stories/organisms/DropdownComponent/DropdownComponent.tsx +269 -0
  200. package/stories/organisms/DropdownComponent/dropdownItems.ts +101 -0
  201. package/stories/organisms/DropdownComponent/index.ts +4 -0
  202. package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.stories.tsx +76 -0
  203. package/stories/organisms/EmptySectionPlaceholder/EmptySectionPlaceholder.tsx +52 -0
  204. package/stories/organisms/EmptySectionPlaceholder/index.tsx +3 -0
  205. package/stories/organisms/FormInputWithAddons/FormInputWithAddons.stories.tsx +29 -0
  206. package/stories/organisms/FormInputWithAddons/FormInputWithAddons.tsx +140 -0
  207. package/stories/organisms/FormInputWithAddons/index.tsx +3 -0
  208. package/stories/organisms/index.ts +16 -0
  209. package/tailwind.config.js +165 -36
  210. package/tsconfig.json +27 -21
  211. package/tsconfig.lib.json +19 -0
  212. package/utils/types.d.ts +2 -0
  213. package/utils/types.ts +3 -0
  214. package/utils/useId.d.ts +1 -0
  215. package/utils/useId.tsx +16 -0
  216. package/.babelrc +0 -14
  217. package/.editorconfig +0 -9
  218. package/.eslintrc +0 -13
  219. package/.github/workflows/test.yml +0 -27
  220. package/.storybook/main.js +0 -17
  221. package/.storybook/manager.js +0 -6
  222. package/.storybook/plenumTheme.js +0 -8
  223. package/.storybook/preview.js +0 -44
  224. package/_templates/component/new/component.ejs.t +0 -18
  225. package/_templates/component/new/component.stories.ejs.t +0 -21
  226. package/_templates/component/new/component.test.ejs.t +0 -15
  227. package/_templates/component/new/index.ejs.t +0 -6
  228. package/_templates/component/new/prompt.js +0 -7
  229. package/jest.config.js +0 -8
  230. package/lib/common/brandCfg.d.ts +0 -3
  231. package/lib/common/index.d.ts +0 -3
  232. package/lib/common/storyCfg.d.ts +0 -5
  233. package/lib/components/Avatar/Avatar.stories.d.ts +0 -6
  234. package/lib/components/Avatar/Avatar.test.d.ts +0 -1
  235. package/lib/components/Avatar/index.d.ts +0 -1
  236. package/lib/components/Button/Button.d.ts +0 -55
  237. package/lib/components/Button/Button.stories.d.ts +0 -12
  238. package/lib/components/Button/Button.test.d.ts +0 -1
  239. package/lib/components/Button/index.d.ts +0 -1
  240. package/lib/components/ButtonDropdown/ButtonDropdown.d.ts +0 -12
  241. package/lib/components/ButtonDropdown/ButtonDropdown.stories.d.ts +0 -9
  242. package/lib/components/ButtonDropdown/index.d.ts +0 -1
  243. package/lib/components/Combobox/Combobox.stories.d.ts +0 -14
  244. package/lib/components/Combobox/Combobox.test.d.ts +0 -1
  245. package/lib/components/Combobox/index.d.ts +0 -1
  246. package/lib/components/Dropdown/Dropdown.stories.d.ts +0 -8
  247. package/lib/components/Dropdown/Dropdown.test.d.ts +0 -1
  248. package/lib/components/Dropdown/data.d.ts +0 -3
  249. package/lib/components/Dropdown/index.d.ts +0 -1
  250. package/lib/components/DynamicIcons/DynamicIcons.stories.d.ts +0 -9
  251. package/lib/components/DynamicIcons/index.d.ts +0 -3
  252. package/lib/components/DynamicIcons/tablerIconNames.d.ts +0 -2
  253. package/lib/components/Forms/BaseField/BaseField.d.ts +0 -34
  254. package/lib/components/Forms/BaseField/BaseField.stories.d.ts +0 -6
  255. package/lib/components/Forms/BaseField/BaseField.test.d.ts +0 -1
  256. package/lib/components/Forms/BaseField/index.d.ts +0 -1
  257. package/lib/components/Forms/Checkbox/Checkbox.stories.d.ts +0 -14
  258. package/lib/components/Forms/Checkbox/Checkbox.test.d.ts +0 -1
  259. package/lib/components/Forms/Checkbox/index.d.ts +0 -1
  260. package/lib/components/Forms/InputCounter/InputCounter.d.ts +0 -9
  261. package/lib/components/Forms/InputCounter/InputCounter.stories.d.ts +0 -6
  262. package/lib/components/Forms/InputCounter/InputCounter.test.d.ts +0 -1
  263. package/lib/components/Forms/InputCounter/index.d.ts +0 -1
  264. package/lib/components/Forms/InputLabel/InputLabel.stories.d.ts +0 -6
  265. package/lib/components/Forms/InputLabel/InputLabel.test.d.ts +0 -1
  266. package/lib/components/Forms/InputLabel/index.d.ts +0 -1
  267. package/lib/components/Forms/Radio/Radio.stories.d.ts +0 -12
  268. package/lib/components/Forms/Radio/Radio.test.d.ts +0 -1
  269. package/lib/components/Forms/Radio/index.d.ts +0 -1
  270. package/lib/components/Forms/Select/Select.stories.d.ts +0 -11
  271. package/lib/components/Forms/Select/Select.test.d.ts +0 -1
  272. package/lib/components/Forms/Select/index.d.ts +0 -1
  273. package/lib/components/Forms/TextInput/TextInput.d.ts +0 -39
  274. package/lib/components/Forms/TextInput/TextInput.stories.d.ts +0 -12
  275. package/lib/components/Forms/TextInput/index.d.ts +0 -1
  276. package/lib/components/Forms/TextInputAddon/InputCta/InputCta.d.ts +0 -16
  277. package/lib/components/Forms/TextInputAddon/InputCta/InputCta.stories.d.ts +0 -6
  278. package/lib/components/Forms/TextInputAddon/InputCta/InputCta.test.d.ts +0 -1
  279. package/lib/components/Forms/TextInputAddon/InputCta/index.d.ts +0 -1
  280. package/lib/components/Forms/TextInputAddon/TextInputAddon.d.ts +0 -54
  281. package/lib/components/Forms/TextInputAddon/TextInputAddon.stories.d.ts +0 -13
  282. package/lib/components/Forms/TextInputAddon/index.d.ts +0 -1
  283. package/lib/components/Forms/TextInputSelect/InputSelect/InputSelect.d.ts +0 -13
  284. package/lib/components/Forms/TextInputSelect/InputSelect/InputSelect.stories.d.ts +0 -6
  285. package/lib/components/Forms/TextInputSelect/InputSelect/InputSelect.test.d.ts +0 -1
  286. package/lib/components/Forms/TextInputSelect/InputSelect/index.d.ts +0 -1
  287. package/lib/components/Forms/TextInputSelect/TextInputSelect.d.ts +0 -48
  288. package/lib/components/Forms/TextInputSelect/TextInputSelect.stories.d.ts +0 -8
  289. package/lib/components/Forms/TextInputSelect/index.d.ts +0 -1
  290. package/lib/components/Forms/Textarea/Textarea.d.ts +0 -32
  291. package/lib/components/Forms/Textarea/Textarea.stories.d.ts +0 -12
  292. package/lib/components/Forms/Textarea/Textarea.test.d.ts +0 -1
  293. package/lib/components/Forms/Textarea/index.d.ts +0 -1
  294. package/lib/components/ToggleSwitch/ToggleSwitch.d.ts +0 -28
  295. package/lib/components/ToggleSwitch/ToggleSwitch.stories.d.ts +0 -21
  296. package/lib/components/ToggleSwitch/ToggleSwitch.test.d.ts +0 -1
  297. package/lib/components/ToggleSwitch/index.d.ts +0 -1
  298. package/lib/components/TreeView/TreeView.d.ts +0 -36
  299. package/lib/components/TreeView/TreeView.stories.d.ts +0 -6
  300. package/lib/components/TreeView/TreeView.test.d.ts +0 -1
  301. package/lib/components/TreeView/index.d.ts +0 -1
  302. package/lib/components/TreeView V1/TreeItem/TreeItem.d.ts +0 -16
  303. package/lib/components/TreeView V1/TreeItem/TreeItem.stories.d.ts +0 -9
  304. package/lib/components/TreeView V1/TreeItem/TreeItem.test.d.ts +0 -1
  305. package/lib/components/TreeView V1/TreeItem/index.d.ts +0 -1
  306. package/lib/components/TreeView V1/TreeView.d.ts +0 -6
  307. package/lib/components/TreeView V1/TreeView.stories.d.ts +0 -6
  308. package/lib/components/TreeView V1/TreeView.test.d.ts +0 -1
  309. package/lib/components/TreeView V1/context.d.ts +0 -9
  310. package/lib/components/TreeView V1/index.d.ts +0 -1
  311. package/lib/components/TreeView V1/sampleData.d.ts +0 -71
  312. package/lib/components/TreeView V1/types/tree.types.d.ts +0 -21
  313. package/lib/index.d.ts +0 -13
  314. package/lib/index.esm.js +0 -105883
  315. package/lib/index.esm.js.map +0 -1
  316. package/lib/index.js +0 -105922
  317. package/lib/index.js.map +0 -1
  318. package/lib/page/TreeNavigation/CustomNode/CustomNode.d.ts +0 -3
  319. package/lib/page/TreeNavigation/CustomNode/CustomNode.test.d.ts +0 -1
  320. package/lib/page/TreeNavigation/CustomNode/index.d.ts +0 -1
  321. package/lib/page/TreeNavigation/TreeNavigation.d.ts +0 -8
  322. package/lib/page/TreeNavigation/TreeNavigation.stories.d.ts +0 -6
  323. package/lib/page/TreeNavigation/hooks/useFetch.d.ts +0 -14
  324. package/lib/page/TreeNavigation/index.d.ts +0 -1
  325. package/lib/tailwind.css +0 -2023
  326. package/lib/util/DynamicIcons.d.ts +0 -10
  327. package/lib/util/Loader.d.ts +0 -5
  328. package/lib/util/types.d.ts +0 -2
  329. package/lib/util/useID.d.ts +0 -1
  330. package/rollup.config.js +0 -37
  331. package/setupTests.js +0 -6
  332. package/styleMock.js +0 -2
@@ -0,0 +1,64 @@
1
+ import React from "react"
2
+ import { DynamicIcon, IDynamicIconProps } from "@/stories/atoms/icons"
3
+ import { default as cn } from "classnames"
4
+ export interface INestedInputButtonProps {
5
+ /** Icon to be included*/
6
+ icon?: IDynamicIconProps
7
+ /** CTA label */
8
+ ctaLabel?: string
9
+ /** Alignment */
10
+ align: "left" | "right"
11
+ /** Show the CTA without Background color and a border seperator */
12
+ isClear?: boolean
13
+ /** Onclick callback */
14
+ onClickHandler?(): void
15
+ buttonProps?: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>
16
+ }
17
+
18
+ const NestedInputButton: React.FC<INestedInputButtonProps> = ({
19
+ icon,
20
+ ctaLabel,
21
+ align = "right",
22
+ isClear = false,
23
+ onClickHandler,
24
+ buttonProps
25
+ }) => {
26
+ const handleClick = () => {
27
+ onClickHandler && onClickHandler()
28
+ }
29
+ const buttonStyle = cn(
30
+ "relative inline-flex items-center space-x-2 px-4 py-2 border border-gray-300 text-sm font-medium focus:outline-none focus:ring-1 focus:ring-purple-500 focus:border-purple-500",
31
+ {
32
+ "rounded-r text-gray-500 -ml-px": align === "right"
33
+ },
34
+ {
35
+ "rounded-l text-gray-500 -mr-px": align === "left"
36
+ },
37
+ {
38
+ "cursor-default": !onClickHandler
39
+ },
40
+ {
41
+ "hover:bg-gray-100": onClickHandler && !isClear
42
+ },
43
+ {
44
+ "!border-l-white": isClear && align === "right"
45
+ },
46
+ {
47
+ "!border-r-white": isClear && align === "left"
48
+ },
49
+ {
50
+ "bg-gray-50": !isClear
51
+ },
52
+ {
53
+ "bg-white": isClear
54
+ }
55
+ )
56
+ return (
57
+ <button {...{ ...buttonProps, className: buttonStyle, onClick: handleClick }}>
58
+ {icon && <DynamicIcon {...{ ...icon, className: "text-gray-400" }} />}
59
+ {ctaLabel && <span>{ctaLabel}</span>}
60
+ </button>
61
+ )
62
+ }
63
+
64
+ export default NestedInputButton
@@ -0,0 +1,3 @@
1
+ import NestedInputButton, { INestedInputButtonProps } from "./NestedInputButton"
2
+ export type { INestedInputButtonProps }
3
+ export default NestedInputButton
@@ -0,0 +1,23 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import Checkbox from "./Checkbox"
3
+ const meta: Meta<typeof Checkbox> = {
4
+ title: "Design System/Molecules/Inputs/Checkbox",
5
+ component: Checkbox,
6
+ tags: []
7
+ }
8
+ type Story = StoryObj<typeof Checkbox>
9
+ export const DefaultCheckbox: Story = {
10
+ args: {
11
+ label: "Checkbox Label",
12
+ id: "checkboxId",
13
+ isDisabled: false,
14
+ isChecked: false,
15
+ isRequired: false,
16
+ isError: false,
17
+ message: "",
18
+ onChange: (value: string) => {
19
+ console.log(`onChange ${value}`)
20
+ }
21
+ }
22
+ }
23
+ export default meta
@@ -0,0 +1,99 @@
1
+ import React, { FC } from "react"
2
+ import { default as cn } from "classnames"
3
+ import InputLabel from "@/stories/molecules/inputs/InputLabel"
4
+ import { useId } from "@/utils/useId"
5
+
6
+ export interface ICheckboxProps {
7
+ /** Checkbox label */
8
+ label: string
9
+ /** Checkbox ID */
10
+ id?: string
11
+ /** Disabled state */
12
+ isDisabled?: boolean
13
+ /** value */
14
+ value?: string
15
+ /** Check state */
16
+ isChecked?: boolean
17
+ /** If field is required */
18
+ isRequired?: boolean
19
+ /** Error state */
20
+ isError?: boolean
21
+ /** Message or description */
22
+ message?: string
23
+ /** Callback on input change */
24
+ onChange?(value: string, isChecked: boolean): void
25
+ /** Has a border around the checkbox and label */
26
+ hasBorder?: boolean
27
+ /** any arbitrary classNames to add to the wrapper */
28
+ className?: string
29
+ }
30
+
31
+ /** Comment */
32
+ const Checkbox: FC<ICheckboxProps> = ({
33
+ label,
34
+ id,
35
+ isDisabled,
36
+ isChecked,
37
+ isRequired,
38
+ isError,
39
+ message,
40
+ value,
41
+ onChange,
42
+ hasBorder,
43
+ className,
44
+ ...props
45
+ }: ICheckboxProps) => {
46
+ const uniqueID = useId()
47
+ if (!id) id = `cb-${uniqueID}`
48
+
49
+ const checkboxStyles = cn(
50
+ "rounded-sm border-gray-300 text-sm font-normal leading-5 text-purple-600 focus:ring-purple-600",
51
+ { "border-red-500 shadow-none": isError }
52
+ )
53
+ const wrapperStyles = cn(
54
+ "relative flex items-center min-h-[38px]",
55
+ { "opacity-50": isDisabled },
56
+ { "rounded-sm ring-1 px-3 ring-gray-300": hasBorder },
57
+ { "py-3": hasBorder && message },
58
+ className
59
+ )
60
+
61
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
62
+ console.log(e)
63
+ const targetValue = e.target.value
64
+ const targetChecked = e.target.checked
65
+ typeof onChange === "function" && onChange(targetValue, targetChecked)
66
+ }
67
+
68
+ return (
69
+ <div className={wrapperStyles}>
70
+ <div className="flex items-center">
71
+ <input
72
+ id={id}
73
+ aria-describedby={`${id}-description`}
74
+ name={id}
75
+ value={value}
76
+ type="checkbox"
77
+ className={checkboxStyles}
78
+ disabled={isDisabled}
79
+ checked={isChecked}
80
+ onChange={(e) => {
81
+ handleChange(e)
82
+ }}
83
+ {...props}
84
+ />
85
+ </div>
86
+ <div className="ml-3 text-sm ">
87
+ <label htmlFor={id} className="font-medium text-gray-700">
88
+ <InputLabel label={label} isRequired={isRequired} id={id} />
89
+ </label>
90
+ {message && (
91
+ <p id={`${id}-description`} className="text-gray-500">
92
+ {message}
93
+ </p>
94
+ )}
95
+ </div>
96
+ </div>
97
+ )
98
+ }
99
+ export default Checkbox
@@ -0,0 +1,3 @@
1
+ import Checkbox, { ICheckboxProps } from "./Checkbox"
2
+ export type { ICheckboxProps }
3
+ export default Checkbox
@@ -0,0 +1,41 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import Combobox from "./ComboBox"
3
+
4
+ const meta: Meta<typeof Combobox> = {
5
+ title: "Design System/Molecules/Inputs/Combobox",
6
+ component: Combobox,
7
+ tags: ["autodocs"]
8
+ }
9
+ type Story = StoryObj<typeof Combobox>
10
+ interface ComboItem {
11
+ [value: string]: string
12
+ }
13
+
14
+ const comboboxlist: ComboItem[] = [
15
+ { value: "Leslie Alexander" },
16
+ { value: "Alishba Molloy" },
17
+ { value: "Raya Oconnell" },
18
+ { value: "Danica Sweet" },
19
+ { value: "Ralph Brook" },
20
+ { value: "Tamar Tapia" },
21
+ { value: "Cara Avila" },
22
+ { value: "Jayson Cisneros" },
23
+ { value: "Tracey Reader" },
24
+ { value: "Rahima Fritz" },
25
+ { value: "Vera Pritchard" }
26
+ ]
27
+ export const DefaultComboBox: Story = {
28
+ args: {
29
+ label: "",
30
+ items: comboboxlist,
31
+ displayProperty: "value",
32
+ keyProperty: "value",
33
+ placeholder: "Select",
34
+ id: "combobox",
35
+ isRequired: false,
36
+ isError: false,
37
+ isDisabled: false,
38
+ nullable: false
39
+ }
40
+ }
41
+ export default meta
@@ -0,0 +1,194 @@
1
+ import React, { useState, useEffect } from "react"
2
+ import { default as cn } from "classnames"
3
+ import { Combobox as HeadlessUICombobox } from "@headlessui/react"
4
+ import InputLabel from "@/stories/molecules/inputs/InputLabel"
5
+ import { DynamicIcon } from "@/stories/atoms/icons"
6
+
7
+ export interface IComboboxProps<T extends Record<string, unknown>> {
8
+ /** Label */
9
+ label?: string
10
+ /** ID */
11
+ id: string
12
+ /** Array of items to display */
13
+ items: T[]
14
+ /** the item property to use as the key */
15
+ keyProperty: string
16
+
17
+ /** the item property to use as the display */
18
+ displayProperty: string
19
+ /** Placeholder */
20
+ placeholder?: string
21
+ /** Callback to trigger on change */
22
+ onChange?(value: T | undefined): void
23
+ /** Select disabled state */
24
+ isDisabled?: boolean
25
+ /** Select error state */
26
+ isError?: boolean
27
+ /** Select required state */
28
+ isRequired?: boolean
29
+ /** Message shown under field */
30
+ message?: string
31
+
32
+ displayValue?: string
33
+
34
+ /**
35
+ * Whether this item is nullable or not.
36
+ *
37
+ * @type {boolean}
38
+ * @memberof ComboboxProps
39
+ */
40
+ nullable?: boolean
41
+ }
42
+
43
+ function classNames(...classes: string[]) {
44
+ return classes.filter(Boolean).join(" ")
45
+ }
46
+
47
+ const Combobox = <T extends Record<string, unknown>>({
48
+ label,
49
+ items,
50
+ displayProperty,
51
+ displayValue,
52
+ keyProperty,
53
+ onChange,
54
+ placeholder,
55
+ message,
56
+ isDisabled,
57
+ isError,
58
+ isRequired,
59
+ id,
60
+ nullable
61
+ }: IComboboxProps<T>) => {
62
+ const [query, setQuery] = useState<string>("")
63
+ const [selectedItem, setSelectedItem] = useState<T | undefined>()
64
+
65
+ const onChangeValue = (value: T | undefined) => {
66
+ if (value && selectedItem && value[keyProperty] === selectedItem[keyProperty]) {
67
+ setSelectedItem(undefined)
68
+ } else {
69
+ setSelectedItem(value)
70
+ }
71
+ }
72
+
73
+ useEffect(() => {
74
+ if (displayValue) {
75
+ const dv = items.find((i) => i[displayProperty] === displayValue)
76
+ setSelectedItem(dv)
77
+ }
78
+ }, [displayValue])
79
+
80
+ useEffect(() => {
81
+ typeof onChange === "function" && onChange(selectedItem)
82
+ }, [selectedItem])
83
+
84
+ const filteredItems =
85
+ query === ""
86
+ ? items
87
+ : items.filter((item) => {
88
+ return `${item[displayProperty]}`.toLowerCase().includes(query.toLowerCase())
89
+ })
90
+ const labelStyles = cn("block text-sm font-medium text-gray-700")
91
+ const buttonStyles = cn("absolute inset-y-0 right-0 flex items-center rounded-r px-2 focus:outline-none")
92
+ const optionStyles = cn(
93
+ "absolute z-30 mt-1 max-h-60 w-full overflow-auto rounded bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm"
94
+ )
95
+ return (
96
+ <HeadlessUICombobox
97
+ as="div"
98
+ value={selectedItem}
99
+ onChange={(e: T | undefined) => onChangeValue(e)}
100
+ disabled={isDisabled}
101
+ nullable={nullable ? undefined : false}
102
+ >
103
+ {label && (
104
+ <HeadlessUICombobox.Label className={labelStyles}>
105
+ <InputLabel
106
+ isPlaceholder
107
+ isActive
108
+ label={label}
109
+ isRequired={isRequired}
110
+ id={id}
111
+ isError={isError}
112
+ isDisabled={isDisabled}
113
+ />
114
+ </HeadlessUICombobox.Label>
115
+ )}
116
+ <div className="relative">
117
+ <div className="relative">
118
+ <HeadlessUICombobox.Input
119
+ className={`w-full rounded border border-gray-300 focus:border-purple-500 focus:outline-none focus:ring-1 focus:ring-purple-500 sm:text-sm ${
120
+ isError ? "border-red-500" : ""
121
+ }`}
122
+ onChange={(event) => setQuery(event.target.value)}
123
+ displayValue={(item: Record<string, unknown>) => `${item ? item[displayProperty] : ""}`}
124
+ placeholder={placeholder}
125
+ />
126
+ {selectedItem && nullable && (
127
+ <button
128
+ className="absolute right-8 top-[1px] h-9 w-5 text-gray-400 hover:text-gray-500"
129
+ onClick={() => setSelectedItem(undefined)}
130
+ >
131
+ <DynamicIcon icon="XIcon" className="h-4 w-4 " aria-hidden="true" />
132
+ </button>
133
+ )}
134
+ </div>
135
+ <HeadlessUICombobox.Button className={buttonStyles}>
136
+ <DynamicIcon icon="SelectorIcon" className="h-5 w-5 text-gray-400" aria-hidden="true" />
137
+ </HeadlessUICombobox.Button>
138
+
139
+ {filteredItems.length > 0 && (
140
+ <HeadlessUICombobox.Options className={optionStyles}>
141
+ {filteredItems.map((item, index) => (
142
+ <HeadlessUICombobox.Option
143
+ key={`${item[keyProperty]}-${index}`}
144
+ value={item}
145
+ className={({ active }) =>
146
+ classNames(
147
+ "relative cursor-default select-none py-2 pl-3 pr-9",
148
+ active ? "bg-purple-600 text-white" : "text-gray-900"
149
+ )
150
+ }
151
+ >
152
+ {({ active, selected }) => (
153
+ <>
154
+ <span
155
+ className={classNames(
156
+ "block truncate",
157
+ selected ? "font-semibold" : ""
158
+ )}
159
+ >
160
+ {`${item[displayProperty]}`}
161
+ </span>
162
+
163
+ {selected && (
164
+ <span
165
+ className={classNames(
166
+ "absolute inset-y-0 right-0 flex items-center pr-4",
167
+ active ? "text-white" : "text-purple-600"
168
+ )}
169
+ >
170
+ <DynamicIcon
171
+ icon="CheckIcon"
172
+ className="h-5 w-5"
173
+ aria-hidden="true"
174
+ />
175
+ </span>
176
+ )}
177
+ </>
178
+ )}
179
+ </HeadlessUICombobox.Option>
180
+ ))}
181
+ </HeadlessUICombobox.Options>
182
+ )}
183
+ </div>
184
+ <div className="grow">
185
+ {message && (
186
+ <span className={`mt-1 block text-sm ${isError ? `text-red-500` : `text-gray-500`}`}>
187
+ {message}
188
+ </span>
189
+ )}
190
+ </div>
191
+ </HeadlessUICombobox>
192
+ )
193
+ }
194
+ export default Combobox
@@ -0,0 +1,3 @@
1
+ import Combobox, { IComboboxProps } from "./ComboBox"
2
+ export type { IComboboxProps }
3
+ export default Combobox
@@ -0,0 +1,24 @@
1
+ import Checkbox, { ICheckboxProps } from "./checkbox"
2
+ import Combobox, { IComboboxProps } from "./combobox"
3
+ import InputField, { AcceptedInputTypes, IInputFieldProps } from "./InputField"
4
+ import InputLabel, { IInputLabelProps } from "./InputLabel"
5
+ import NestedInputButton, { INestedInputButtonProps } from "./NestedInputButton"
6
+ import Radio, { IRadioProps } from "./radio"
7
+ import Select, { ISelectProps } from "./select"
8
+ import TextAreaField, { ITextAreaFieldProps } from "./textArea"
9
+ import ToggleSwitch, { IToggleSwitchProps } from "./toggleSwitch"
10
+
11
+ export type {
12
+ ICheckboxProps,
13
+ IComboboxProps,
14
+ IInputFieldProps,
15
+ IInputLabelProps,
16
+ INestedInputButtonProps,
17
+ IRadioProps,
18
+ ISelectProps,
19
+ ITextAreaFieldProps,
20
+ IToggleSwitchProps,
21
+ AcceptedInputTypes
22
+ }
23
+
24
+ export { Checkbox, Combobox, InputField, InputLabel, NestedInputButton, Radio, Select, TextAreaField, ToggleSwitch }
@@ -0,0 +1,27 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import Radio from "./Radio"
3
+ const meta: Meta<typeof Radio> = {
4
+ title: "Design System/Molecules/Inputs/Radio",
5
+ component: Radio,
6
+ tags: []
7
+ }
8
+ type Story = StoryObj<typeof Radio>
9
+ export const DefaultRadio: Story = {
10
+ args: {
11
+ label: "Radio Label",
12
+ id: "radioId",
13
+ isDisabled: false,
14
+ isChecked: false,
15
+ isRequired: false,
16
+ isError: false,
17
+ message: "",
18
+ name: "radio-group",
19
+ onChange: (value: string, checked: boolean) => {
20
+ console.log(`onChange ${value} ${checked}`)
21
+ },
22
+ onClick: (value: string, checked: boolean) => {
23
+ console.log(`onClick ${value} ${checked}`)
24
+ }
25
+ }
26
+ }
27
+ export default meta
@@ -0,0 +1,92 @@
1
+ import InputLabel from "@/stories/molecules/inputs/InputLabel"
2
+ import { useId } from "@/utils/useId"
3
+ import React from "react"
4
+ import { default as cn } from "classnames"
5
+ export interface IRadioProps {
6
+ /** group name */
7
+ name?: string
8
+ /** Radio label */
9
+ label: string
10
+ /** Radio ID */
11
+ id?: string
12
+ /** Disabled state */
13
+ isDisabled?: boolean
14
+ /** Check state */
15
+ isChecked?: boolean
16
+ /** If field is required */
17
+ isRequired?: boolean
18
+ /** Error state */
19
+ isError?: boolean
20
+ /** Message or description */
21
+ message?: string
22
+ /** value */
23
+ value?: string
24
+ /** Callback on input change */
25
+ onChange?(value: string, isChecked: boolean): void
26
+ /** Callback on click */
27
+ onClick?(value: string, isChecked: boolean): void
28
+ }
29
+ const Radio: React.FC<IRadioProps> = ({
30
+ label,
31
+ id,
32
+ name,
33
+ isDisabled = false,
34
+ isChecked = false,
35
+ isRequired = false,
36
+ isError = false,
37
+ message,
38
+ onChange,
39
+ onClick,
40
+ value
41
+ }) => {
42
+ const uniqueID = useId()
43
+ if (!id) id = `input-${uniqueID}`
44
+ if (!name) name = id
45
+
46
+ const checboxStyles = cn("focus:ring-purple-500 h-4 w-4 text-purple-600 border-gray-300", {
47
+ "border-red-500 shadow-none": isError
48
+ })
49
+ const wrapperStyles = cn("relative flex items-start", { "opacity-50": isDisabled })
50
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
51
+ const targetValue = e.currentTarget.value
52
+ const targetChecked = e.currentTarget.checked
53
+ typeof onChange === "function" && onChange(targetValue, targetChecked)
54
+ }
55
+ const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {
56
+ const targetValue = e.currentTarget.value
57
+ const targetChecked = e.currentTarget.checked
58
+ typeof onClick === "function" && onClick(targetValue, targetChecked)
59
+ }
60
+ return (
61
+ <div className={wrapperStyles}>
62
+ <div className="flex items-center h-5">
63
+ <input
64
+ id={id}
65
+ aria-describedby={`${id}-description`}
66
+ name={name}
67
+ type="radio"
68
+ value={value}
69
+ className={checboxStyles}
70
+ disabled={isDisabled}
71
+ defaultChecked={isChecked}
72
+ onChange={(e) => {
73
+ handleChange(e)
74
+ }}
75
+ onClick={(e) => {
76
+ handleClick(e)
77
+ }}
78
+ />
79
+ </div>
80
+ <div className="ml-3 text-sm">
81
+ <InputLabel label={label} isRequired={isRequired} id={id} />
82
+ {message && (
83
+ <p id={`${id}-description`} className="text-gray-500">
84
+ {message}
85
+ </p>
86
+ )}
87
+ </div>
88
+ </div>
89
+ )
90
+ }
91
+
92
+ export default Radio
@@ -0,0 +1,3 @@
1
+ import Radio, { IRadioProps } from "./Radio"
2
+ export type { IRadioProps }
3
+ export default Radio
@@ -0,0 +1,23 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import Select from "./Select"
3
+ const meta: Meta<typeof Select> = {
4
+ title: "Design System/Molecules/Inputs/Select",
5
+ component: Select,
6
+ tags: ["autodocs"]
7
+ }
8
+ type Story = StoryObj<typeof Select>
9
+ export const DefaultSelect: Story = {
10
+ args: {
11
+ label: "Label",
12
+ id: "select",
13
+ name: "select",
14
+ options: [
15
+ { label: "Canada", value: "value1" },
16
+ { label: "USA", value: "value2" }
17
+ ],
18
+ isDisabled: false,
19
+ isError: false,
20
+ isRequired: false
21
+ }
22
+ }
23
+ export default meta