@okam/stack-ui 1.25.2 → 1.25.3

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 (382) hide show
  1. package/.eslintrc.js +32 -0
  2. package/.storybook/.eslintrc.js +29 -0
  3. package/.storybook/main.ts +33 -0
  4. package/.storybook/preview.js +56 -0
  5. package/.storybook/tsconfig.json +17 -0
  6. package/CHANGELOG.md +574 -0
  7. package/README.md +8 -0
  8. package/package.json +1 -1
  9. package/postcss.config.js +15 -0
  10. package/project.json +77 -0
  11. package/src/_stories/icons/code-brackets.svg +1 -0
  12. package/src/_stories/icons/colors.svg +1 -0
  13. package/src/_stories/icons/comments.svg +1 -0
  14. package/src/_stories/icons/direction.svg +1 -0
  15. package/src/_stories/icons/flow.svg +1 -0
  16. package/src/_stories/icons/plugin.svg +1 -0
  17. package/src/_stories/icons/repo.svg +1 -0
  18. package/src/_stories/icons/stackalt.svg +1 -0
  19. package/src/components/Accordion/accordion.stories.mdx +240 -0
  20. package/src/components/Accordion/components/AccordionItem.tsx +53 -0
  21. package/src/components/Accordion/components/AriaAccordionItem.tsx +76 -0
  22. package/src/components/Accordion/hooks/useAccordionState.ts +46 -0
  23. package/src/components/Accordion/index.tsx +38 -0
  24. package/{components/Accordion/interface.d.ts → src/components/Accordion/interface.ts} +23 -17
  25. package/src/components/Alerts/alerts.stories.mdx +282 -0
  26. package/src/components/Alerts/components/AlertsCloseButton.tsx +20 -0
  27. package/src/components/Alerts/components/AlertsItem.tsx +39 -0
  28. package/src/components/Alerts/components/AlertsNavigationButton.tsx +71 -0
  29. package/src/components/Alerts/components/AlertsSwiper.tsx +125 -0
  30. package/src/components/Alerts/components/pagination/AlertsPagination.tsx +32 -0
  31. package/src/components/Alerts/components/pagination/AlertsPaginationBullet.tsx +61 -0
  32. package/src/components/Alerts/index.tsx +54 -0
  33. package/src/components/Alerts/interface.ts +51 -0
  34. package/src/components/Box/box.stories.mdx +27 -0
  35. package/src/components/Box/index.tsx +36 -0
  36. package/src/components/Box/interface.ts +10 -0
  37. package/src/components/Button/button.stories.mdx +99 -0
  38. package/src/components/Button/index.tsx +92 -0
  39. package/src/components/Button/interface.ts +22 -0
  40. package/src/components/Calendar/RangeCalendar.tsx +61 -0
  41. package/src/components/Calendar/calendar.stories.mdx +28 -0
  42. package/src/components/Calendar/components/CalendarCell.tsx +60 -0
  43. package/src/components/Calendar/components/CalendarGrid.tsx +44 -0
  44. package/src/components/Calendar/index.tsx +63 -0
  45. package/src/components/Calendar/interface.ts +37 -0
  46. package/src/components/Carousel/carousel.stories.mdx +182 -0
  47. package/src/components/Carousel/index.tsx +99 -0
  48. package/src/components/Carousel/interface.ts +26 -0
  49. package/src/components/Date/date.stories.mdx +122 -0
  50. package/src/components/Date/index.tsx +35 -0
  51. package/src/components/Date/interface.ts +7 -0
  52. package/src/components/Dialog/index.tsx +14 -0
  53. package/src/components/Dialog/interface.ts +6 -0
  54. package/src/components/DirectusImg/index.tsx +59 -0
  55. package/src/components/DirectusImg/interface.ts +19 -0
  56. package/src/components/Icon/index.tsx +40 -0
  57. package/src/components/Icon/interface.ts +8 -0
  58. package/src/components/Img/img.stories.mdx +28 -0
  59. package/src/components/Img/index.tsx +30 -0
  60. package/src/components/Img/interface.ts +9 -0
  61. package/src/components/Lightbox/hooks/overlay/index.tsx +36 -0
  62. package/src/components/Lightbox/index.tsx +82 -0
  63. package/src/components/Lightbox/interface.ts +28 -0
  64. package/src/components/Lightbox/lightbox.stories.mdx +79 -0
  65. package/src/components/Menu/Menu.tsx +43 -0
  66. package/src/components/Menu/MenuSidePanel.tsx +41 -0
  67. package/src/components/Menu/components/InnerContent.tsx +26 -0
  68. package/src/components/Menu/components/MenuItems.tsx +133 -0
  69. package/src/components/Menu/components/TabContainer.tsx +13 -0
  70. package/src/components/Menu/interface.ts +41 -0
  71. package/src/components/Menu/menu.stories.mdx +23 -0
  72. package/src/components/Modal/components/ModalDialog.tsx +31 -0
  73. package/src/components/Modal/components/ModalOverlay.tsx +21 -0
  74. package/src/components/Modal/index.tsx +32 -0
  75. package/{components/Modal/interface.d.ts → src/components/Modal/interface.ts} +14 -11
  76. package/src/components/Popover/index.tsx +138 -0
  77. package/src/components/Popover/interface.ts +25 -0
  78. package/src/components/Popover/popover.stories.mdx +66 -0
  79. package/src/components/ShareButton/index.tsx +172 -0
  80. package/src/components/ShareButton/interface.ts +29 -0
  81. package/src/components/ShareButton/share-button.stories.mdx +48 -0
  82. package/src/components/ShareButton/utils/generateUtmTags.ts +4 -0
  83. package/src/components/ShareButton/utils/useFacebookShareUrl.ts +15 -0
  84. package/src/components/ShareButton/utils/useMailToShareUrl.ts +15 -0
  85. package/src/components/ShareButton/utils/useTwitterShareUrl.ts +15 -0
  86. package/src/components/ShareButton/utils/useWindow.ts +17 -0
  87. package/src/components/SidePanel/index.tsx +43 -0
  88. package/src/components/SidePanel/interface.ts +16 -0
  89. package/src/components/SidePanel/side-panel.stories.mdx +44 -0
  90. package/src/components/TabList/components/Tab/Tab.tsx +19 -0
  91. package/src/components/TabList/components/TabPanel/TabPanel.tsx +27 -0
  92. package/src/components/TabList/index.tsx +44 -0
  93. package/src/components/TabList/interface.ts +23 -0
  94. package/src/components/Typography/index.tsx +35 -0
  95. package/src/components/Typography/interface.ts +9 -0
  96. package/src/components/Typography/typo.stories.mdx +157 -0
  97. package/src/components/WysiwygBlock/index.tsx +20 -0
  98. package/src/components/WysiwygBlock/interface.ts +7 -0
  99. package/src/components/WysiwygBlock/wysiwyg.stories.mdx +53 -0
  100. package/src/components/fields/Checkbox/Checkbox.interface.ts +21 -0
  101. package/src/components/fields/Checkbox/Checkbox.stories.mdx +127 -0
  102. package/src/components/fields/Checkbox/index.tsx +62 -0
  103. package/src/components/fields/CheckboxGroup/checkbox-group.stories.mdx +59 -0
  104. package/src/components/fields/CheckboxGroup/components/CheckboxGroupItem/index.tsx +66 -0
  105. package/src/components/fields/CheckboxGroup/index.tsx +49 -0
  106. package/src/components/fields/CheckboxGroup/interface.ts +17 -0
  107. package/src/components/fields/DatePicker/DateRangePicker.tsx +73 -0
  108. package/src/components/fields/DatePicker/components/CalendarPopover.tsx +31 -0
  109. package/src/components/fields/DatePicker/components/DateField.tsx +61 -0
  110. package/src/components/fields/DatePicker/date-picker.stories.mdx +55 -0
  111. package/src/components/fields/DatePicker/index.tsx +71 -0
  112. package/src/components/fields/DatePicker/interface.ts +69 -0
  113. package/src/components/fields/Radio/Radio.interface.ts +30 -0
  114. package/src/components/fields/Radio/index.tsx +63 -0
  115. package/src/components/fields/RadioGroup/index.tsx +33 -0
  116. package/src/components/fields/RadioGroup/interface.ts +10 -0
  117. package/src/components/fields/RadioGroup/radio-group.stories.mdx +56 -0
  118. package/src/components/fields/SearchField/index.tsx +59 -0
  119. package/src/components/fields/SearchField/interface.ts +10 -0
  120. package/src/components/fields/SearchField/search.stories.mdx +91 -0
  121. package/src/components/fields/Select/Select.interface.ts +24 -0
  122. package/src/components/fields/Select/Select.stories.mdx +53 -0
  123. package/src/components/fields/Select/Select.tsx +108 -0
  124. package/{components/fields/Select/components/Listbox.interface.d.ts → src/components/fields/Select/components/Listbox.interface.ts} +11 -8
  125. package/src/components/fields/Select/components/Listbox.tsx +40 -0
  126. package/src/components/fields/Select/components/Popover.interface.ts +14 -0
  127. package/src/components/fields/Select/components/Popover.tsx +32 -0
  128. package/{components/fields/SelectItem/SelectItem.interface.d.ts → src/components/fields/SelectItem/SelectItem.interface.ts} +4 -3
  129. package/src/components/fields/SelectItem/SelectItem.tsx +10 -0
  130. package/src/components/fields/TextArea/index.tsx +105 -0
  131. package/src/components/fields/TextArea/textArea.stories.mdx +60 -0
  132. package/src/components/fields/TextInputField/index.tsx +107 -0
  133. package/src/components/fields/TextInputField/interface.ts +30 -0
  134. package/src/components/fields/TextInputField/text-input-field.stories.mdx +64 -0
  135. package/src/components/icons/ArrowDown.tsx +11 -0
  136. package/src/components/icons/ArrowLeft.tsx +18 -0
  137. package/src/components/icons/ArrowRight.tsx +18 -0
  138. package/src/components/icons/Check.tsx +11 -0
  139. package/src/components/icons/ChevronLeft.tsx +11 -0
  140. package/src/components/icons/ChevronRight.tsx +11 -0
  141. package/src/components/icons/CloseBtn.tsx +11 -0
  142. package/src/components/icons/Facebook.tsx +14 -0
  143. package/src/components/icons/FacebookColored.tsx +16 -0
  144. package/src/components/icons/FacebookRounded.tsx +16 -0
  145. package/src/components/icons/Globe.tsx +38 -0
  146. package/src/components/icons/IconFallback.tsx +8 -0
  147. package/src/components/icons/Instagram.tsx +14 -0
  148. package/src/components/icons/InstagramColored.tsx +59 -0
  149. package/src/components/icons/Link.tsx +14 -0
  150. package/src/components/icons/LinkedIn.tsx +16 -0
  151. package/src/components/icons/Mail.tsx +16 -0
  152. package/src/components/icons/Plus.tsx +18 -0
  153. package/src/components/icons/Search.tsx +19 -0
  154. package/src/components/icons/Share.tsx +16 -0
  155. package/src/components/icons/Twitter.tsx +16 -0
  156. package/src/components/icons/TwitterColored.tsx +16 -0
  157. package/src/components/icons/Upload.tsx +14 -0
  158. package/src/components/icons/X.tsx +14 -0
  159. package/src/components/icons/YouTube.tsx +16 -0
  160. package/src/components/icons/YouTubeColored.tsx +17 -0
  161. package/src/components/icons/index.ts +24 -0
  162. package/src/examples/PageLayout/index.tsx +61 -0
  163. package/src/examples/PageLayout/layout.stories.mdx +35 -0
  164. package/{index.d.ts → src/index.ts} +72 -57
  165. package/src/message.tsx +8 -0
  166. package/src/providers/Accordion/index.tsx +15 -0
  167. package/src/providers/Accordion/interface.ts +14 -0
  168. package/src/providers/Alerts/index.tsx +15 -0
  169. package/src/providers/Alerts/interface.ts +11 -0
  170. package/src/providers/CheckboxGroup/index.tsx +22 -0
  171. package/{providers/CheckboxGroup/interface.d.ts → src/providers/CheckboxGroup/interface.ts} +5 -4
  172. package/src/providers/Client/index.tsx +21 -0
  173. package/src/providers/Client/interface.ts +13 -0
  174. package/src/providers/Menu/index.tsx +43 -0
  175. package/src/providers/Menu/interface.ts +32 -0
  176. package/src/providers/RadioGroup/RadioGroup.interface.ts +8 -0
  177. package/src/providers/RadioGroup/RadioGroup.tsx +25 -0
  178. package/src/providers/SidePanel/index.tsx +55 -0
  179. package/src/providers/SidePanel/interface.ts +26 -0
  180. package/src/providers/Theme/hooks.ts +25 -0
  181. package/src/providers/Theme/index.tsx +40 -0
  182. package/src/providers/Theme/interface.ts +28 -0
  183. package/src/providers/Theme/utils.ts +3 -0
  184. package/src/providers/UserSearchQuery/index.tsx +20 -0
  185. package/src/providers/UserSearchQuery/interface.ts +12 -0
  186. package/src/storybook/Lightbox/LightboxControlledState.tsx +28 -0
  187. package/src/storybook/Menu/Menu.tsx +177 -0
  188. package/src/storybook/Menu/NestedMenu.tsx +24 -0
  189. package/src/storybook/Menu/mock.tsx +84 -0
  190. package/src/storybook/SelectField/index.tsx +57 -0
  191. package/src/storybook/ShareButtonExample/index.tsx +66 -0
  192. package/src/tailwind.css +3 -0
  193. package/src/theme/Accordion/index.tsx +101 -0
  194. package/src/theme/Alerts/index.ts +97 -0
  195. package/src/theme/Box/index.ts +45 -0
  196. package/src/theme/Button/index.tsx +72 -0
  197. package/src/theme/Calendar/index.tsx +167 -0
  198. package/src/theme/Carousel/index.ts +36 -0
  199. package/src/theme/Checkbox/index.ts +49 -0
  200. package/src/theme/CheckboxGroup/index.ts +14 -0
  201. package/src/theme/DatePicker/index.tsx +42 -0
  202. package/src/theme/Image/index.ts +8 -0
  203. package/src/theme/LightBox/index.ts +56 -0
  204. package/src/theme/Radio/index.ts +31 -0
  205. package/src/theme/RadioGroup/index.ts +14 -0
  206. package/src/theme/Search/index.ts +20 -0
  207. package/src/theme/ShareButton/index.tsx +76 -0
  208. package/src/theme/SidePanel/index.ts +9 -0
  209. package/src/theme/TextArea/index.ts +25 -0
  210. package/src/theme/Typography/index.tsx +44 -0
  211. package/src/theme/index.tsx +178 -0
  212. package/src/transitions/AccordionTransition.tsx +26 -0
  213. package/src/transitions/ModalTransition.tsx +38 -0
  214. package/src/transitions/RenderWithOpacity.tsx +25 -0
  215. package/src/transitions/RenderWithSlide.tsx +21 -0
  216. package/src/transitions/SidePanelTransition.tsx +30 -0
  217. package/src/types/components.ts +34 -0
  218. package/static/images/image.png +0 -0
  219. package/tailwind.config.js +14 -0
  220. package/tsconfig.json +20 -0
  221. package/tsconfig.lib.json +25 -0
  222. package/vite.config.ts +58 -0
  223. package/components/Accordion/components/AccordionItem.d.ts +0 -3
  224. package/components/Accordion/components/AriaAccordionItem.d.ts +0 -3
  225. package/components/Accordion/hooks/useAccordionState.d.ts +0 -10
  226. package/components/Accordion/index.d.ts +0 -3
  227. package/components/Alerts/components/AlertsCloseButton.d.ts +0 -4
  228. package/components/Alerts/components/AlertsItem.d.ts +0 -3
  229. package/components/Alerts/components/AlertsNavigationButton.d.ts +0 -8
  230. package/components/Alerts/components/AlertsSwiper.d.ts +0 -3
  231. package/components/Alerts/components/pagination/AlertsPagination.d.ts +0 -3
  232. package/components/Alerts/components/pagination/AlertsPaginationBullet.d.ts +0 -3
  233. package/components/Alerts/index.d.ts +0 -3
  234. package/components/Alerts/interface.d.ts +0 -41
  235. package/components/Box/index.d.ts +0 -5
  236. package/components/Box/interface.d.ts +0 -10
  237. package/components/Button/index.d.ts +0 -6
  238. package/components/Button/interface.d.ts +0 -20
  239. package/components/Calendar/RangeCalendar.d.ts +0 -3
  240. package/components/Calendar/components/CalendarCell.d.ts +0 -3
  241. package/components/Calendar/components/CalendarGrid.d.ts +0 -3
  242. package/components/Calendar/index.d.ts +0 -3
  243. package/components/Calendar/interface.d.ts +0 -32
  244. package/components/Carousel/index.d.ts +0 -3
  245. package/components/Carousel/interface.d.ts +0 -24
  246. package/components/Date/index.d.ts +0 -3
  247. package/components/Date/interface.d.ts +0 -6
  248. package/components/Dialog/index.d.ts +0 -2
  249. package/components/Dialog/interface.d.ts +0 -6
  250. package/components/DirectusImg/index.d.ts +0 -3
  251. package/components/DirectusImg/interface.d.ts +0 -13
  252. package/components/Icon/index.d.ts +0 -3
  253. package/components/Icon/interface.d.ts +0 -7
  254. package/components/Img/index.d.ts +0 -3
  255. package/components/Img/interface.d.ts +0 -6
  256. package/components/Lightbox/index.d.ts +0 -3
  257. package/components/Lightbox/interface.d.ts +0 -25
  258. package/components/Menu/Menu.d.ts +0 -3
  259. package/components/Menu/MenuSidePanel.d.ts +0 -3
  260. package/components/Menu/components/InnerContent.d.ts +0 -3
  261. package/components/Menu/components/MenuItems.d.ts +0 -3
  262. package/components/Menu/components/TabContainer.d.ts +0 -3
  263. package/components/Menu/interface.d.ts +0 -31
  264. package/components/Modal/components/ModalDialog.d.ts +0 -3
  265. package/components/Modal/components/ModalOverlay.d.ts +0 -3
  266. package/components/Modal/index.d.ts +0 -3
  267. package/components/Popover/index.d.ts +0 -3
  268. package/components/Popover/interface.d.ts +0 -21
  269. package/components/ShareButton/index.d.ts +0 -4
  270. package/components/ShareButton/interface.d.ts +0 -26
  271. package/components/ShareButton/utils/generateUtmTags.d.ts +0 -2
  272. package/components/ShareButton/utils/useFacebookShareUrl.d.ts +0 -2
  273. package/components/ShareButton/utils/useMailToShareUrl.d.ts +0 -2
  274. package/components/ShareButton/utils/useTwitterShareUrl.d.ts +0 -2
  275. package/components/ShareButton/utils/useWindow.d.ts +0 -5
  276. package/components/SidePanel/index.d.ts +0 -4
  277. package/components/SidePanel/interface.d.ts +0 -12
  278. package/components/TabList/components/TabPanel/TabPanel.d.ts +0 -4
  279. package/components/TabList/interface.d.ts +0 -18
  280. package/components/Typography/index.d.ts +0 -5
  281. package/components/Typography/interface.d.ts +0 -9
  282. package/components/WysiwygBlock/index.d.ts +0 -3
  283. package/components/WysiwygBlock/interface.d.ts +0 -5
  284. package/components/fields/Checkbox/Checkbox.interface.d.ts +0 -18
  285. package/components/fields/Checkbox/index.d.ts +0 -3
  286. package/components/fields/CheckboxGroup/components/CheckboxGroupItem/index.d.ts +0 -3
  287. package/components/fields/CheckboxGroup/index.d.ts +0 -3
  288. package/components/fields/CheckboxGroup/interface.d.ts +0 -13
  289. package/components/fields/DatePicker/DateRangePicker.d.ts +0 -3
  290. package/components/fields/DatePicker/components/CalendarPopover.d.ts +0 -2
  291. package/components/fields/DatePicker/components/DateField.d.ts +0 -4
  292. package/components/fields/DatePicker/index.d.ts +0 -3
  293. package/components/fields/DatePicker/interface.d.ts +0 -37
  294. package/components/fields/Radio/Radio.interface.d.ts +0 -26
  295. package/components/fields/Radio/index.d.ts +0 -4
  296. package/components/fields/RadioGroup/index.d.ts +0 -3
  297. package/components/fields/RadioGroup/interface.d.ts +0 -9
  298. package/components/fields/SearchField/index.d.ts +0 -3
  299. package/components/fields/SearchField/interface.d.ts +0 -9
  300. package/components/fields/Select/Select.d.ts +0 -4
  301. package/components/fields/Select/Select.interface.d.ts +0 -26
  302. package/components/fields/Select/components/Listbox.d.ts +0 -4
  303. package/components/fields/Select/components/Popover.d.ts +0 -3
  304. package/components/fields/Select/components/Popover.interface.d.ts +0 -13
  305. package/components/fields/SelectItem/SelectItem.d.ts +0 -3
  306. package/components/fields/TextArea/index.d.ts +0 -4
  307. package/components/fields/TextInputField/index.d.ts +0 -4
  308. package/components/fields/TextInputField/interface.d.ts +0 -24
  309. package/components/icons/ArrowDown.d.ts +0 -3
  310. package/components/icons/ArrowLeft.d.ts +0 -3
  311. package/components/icons/ArrowRight.d.ts +0 -3
  312. package/components/icons/Check.d.ts +0 -3
  313. package/components/icons/ChevronLeft.d.ts +0 -3
  314. package/components/icons/ChevronRight.d.ts +0 -3
  315. package/components/icons/CloseBtn.d.ts +0 -3
  316. package/components/icons/Facebook.d.ts +0 -3
  317. package/components/icons/FacebookColored.d.ts +0 -3
  318. package/components/icons/FacebookRounded.d.ts +0 -3
  319. package/components/icons/Globe.d.ts +0 -3
  320. package/components/icons/IconFallback.d.ts +0 -3
  321. package/components/icons/Instagram.d.ts +0 -3
  322. package/components/icons/InstagramColored.d.ts +0 -3
  323. package/components/icons/Link.d.ts +0 -3
  324. package/components/icons/LinkedIn.d.ts +0 -3
  325. package/components/icons/Mail.d.ts +0 -3
  326. package/components/icons/Plus.d.ts +0 -3
  327. package/components/icons/Search.d.ts +0 -3
  328. package/components/icons/Share.d.ts +0 -3
  329. package/components/icons/Twitter.d.ts +0 -3
  330. package/components/icons/TwitterColored.d.ts +0 -3
  331. package/components/icons/Upload.d.ts +0 -3
  332. package/components/icons/X.d.ts +0 -3
  333. package/components/icons/YouTube.d.ts +0 -3
  334. package/components/icons/YouTubeColored.d.ts +0 -3
  335. package/components/icons/index.d.ts +0 -24
  336. package/index.js +0 -110
  337. package/index.mjs +0 -12897
  338. package/providers/Accordion/index.d.ts +0 -4
  339. package/providers/Accordion/interface.d.ts +0 -12
  340. package/providers/Alerts/index.d.ts +0 -4
  341. package/providers/Alerts/interface.d.ts +0 -9
  342. package/providers/CheckboxGroup/index.d.ts +0 -5
  343. package/providers/Client/index.d.ts +0 -4
  344. package/providers/Client/interface.d.ts +0 -10
  345. package/providers/Menu/index.d.ts +0 -4
  346. package/providers/Menu/interface.d.ts +0 -28
  347. package/providers/RadioGroup/RadioGroup.d.ts +0 -5
  348. package/providers/RadioGroup/RadioGroup.interface.d.ts +0 -7
  349. package/providers/SidePanel/index.d.ts +0 -4
  350. package/providers/SidePanel/interface.d.ts +0 -23
  351. package/providers/Theme/hooks.d.ts +0 -3
  352. package/providers/Theme/index.d.ts +0 -10
  353. package/providers/Theme/interface.d.ts +0 -24
  354. package/providers/Theme/utils.d.ts +0 -2
  355. package/providers/UserSearchQuery/index.d.ts +0 -4
  356. package/providers/UserSearchQuery/interface.d.ts +0 -10
  357. package/style.css +0 -1
  358. package/theme/Accordion/index.d.ts +0 -274
  359. package/theme/Alerts/index.d.ts +0 -1167
  360. package/theme/Box/index.d.ts +0 -214
  361. package/theme/Button/index.d.ts +0 -121
  362. package/theme/Calendar/index.d.ts +0 -366
  363. package/theme/Carousel/index.d.ts +0 -9
  364. package/theme/Checkbox/index.d.ts +0 -159
  365. package/theme/CheckboxGroup/index.d.ts +0 -30
  366. package/theme/DatePicker/index.d.ts +0 -43
  367. package/theme/Image/index.d.ts +0 -3
  368. package/theme/LightBox/index.d.ts +0 -455
  369. package/theme/Radio/index.d.ts +0 -108
  370. package/theme/RadioGroup/index.d.ts +0 -30
  371. package/theme/Search/index.d.ts +0 -30
  372. package/theme/ShareButton/index.d.ts +0 -174
  373. package/theme/SidePanel/index.d.ts +0 -3
  374. package/theme/TextArea/index.d.ts +0 -29
  375. package/theme/Typography/index.d.ts +0 -233
  376. package/theme/index.d.ts +0 -5
  377. package/transitions/AccordionTransition.d.ts +0 -3
  378. package/transitions/ModalTransition.d.ts +0 -7
  379. package/transitions/RenderWithOpacity.d.ts +0 -3
  380. package/transitions/RenderWithSlide.d.ts +0 -7
  381. package/transitions/SidePanelTransition.d.ts +0 -7
  382. package/types/components.d.ts +0 -28
@@ -0,0 +1,36 @@
1
+ 'use client'
2
+
3
+ import { useSlotId } from '@react-aria/utils'
4
+ import type { RefObject } from 'react'
5
+ import type { OverlayTriggerProps } from 'react-aria'
6
+ import { useOverlayTrigger } from 'react-aria'
7
+ import type { OverlayTriggerState } from 'react-stately'
8
+
9
+ function useOverlayHook(props: OverlayTriggerProps, state: OverlayTriggerState, ref?: RefObject<Element>) {
10
+ const { type = 'dialog' } = props
11
+ const {
12
+ triggerProps: { onPress, ...triggerProps },
13
+ overlayProps,
14
+ } = useOverlayTrigger({ type }, state, ref)
15
+
16
+ const updatedTriggerProps = {
17
+ handlePress: onPress,
18
+ ...triggerProps,
19
+ }
20
+
21
+ const labelId = useSlotId()
22
+
23
+ const openTriggerProps = {
24
+ 'aria-labelledby': labelId,
25
+ ...updatedTriggerProps,
26
+ }
27
+
28
+ return {
29
+ openTriggerProps,
30
+ triggerProps: updatedTriggerProps,
31
+ labelProps: { id: labelId },
32
+ overlayProps: { ...overlayProps, 'aria-labelledby': labelId },
33
+ }
34
+ }
35
+
36
+ export default useOverlayHook
@@ -0,0 +1,82 @@
1
+ 'use client'
2
+
3
+ import { FocusRing } from '@react-aria/focus'
4
+ import { useOverlayTriggerState } from 'react-stately'
5
+ import Box from '../Box'
6
+ import Button from '../Button'
7
+ import type { TButtonProps } from '../Button/interface'
8
+ import Icon from '../Icon'
9
+ import Modal from '../Modal'
10
+ import Typography from '../Typography'
11
+ import useOverlayHook from './hooks/overlay'
12
+ import type { TLightboxProps } from './interface'
13
+
14
+ const LightboxCloseButton = (props: TButtonProps) => {
15
+ const { themeName, tokens, children, ...rest } = props
16
+ return (
17
+ <Button themeName={themeName} tokens={tokens} {...rest}>
18
+ <Icon icon="CloseBtn" />
19
+ </Button>
20
+ )
21
+ }
22
+
23
+ const Lightbox = (props: TLightboxProps) => {
24
+ const {
25
+ children,
26
+ thumbnailContent,
27
+ label,
28
+ themeName = 'lightBox',
29
+ tokens,
30
+ closeButton: CloseButton = LightboxCloseButton,
31
+ setOpen,
32
+ isOpen,
33
+ closeButtonAriaLabel,
34
+ transitionComponent,
35
+ } = props
36
+
37
+ const state = useOverlayTriggerState(props)
38
+
39
+ const { openTriggerProps, triggerProps, overlayProps, labelProps } = useOverlayHook(
40
+ { ...props, type: 'dialog' },
41
+ state,
42
+ )
43
+
44
+ const handleOpen: TButtonProps['handlePress'] = (e) => {
45
+ setOpen?.(!isOpen)
46
+ openTriggerProps.handlePress?.(e)
47
+ }
48
+
49
+ return (
50
+ <>
51
+ <FocusRing focusRingClass="has-focus-ring" within>
52
+ <Button themeName={`${themeName}.wrapper`} tokens={tokens} {...openTriggerProps} handlePress={handleOpen}>
53
+ {label && (
54
+ <Typography themeName={`${themeName}.label`} tokens={{ size: 'footnotes' }} {...labelProps}>
55
+ {label}
56
+ </Typography>
57
+ )}
58
+ {thumbnailContent}
59
+ </Button>
60
+ </FocusRing>
61
+ <Modal
62
+ themeName={`${themeName}.modal`}
63
+ tokens={tokens}
64
+ state={state}
65
+ {...overlayProps}
66
+ transitionComponent={transitionComponent}
67
+ >
68
+ <CloseButton
69
+ themeName={`${themeName}.closeBtn`}
70
+ tokens={tokens}
71
+ aria-label={closeButtonAriaLabel}
72
+ {...triggerProps}
73
+ />
74
+ <Box themeName={`${themeName}.container`} tokens={tokens}>
75
+ {children}
76
+ </Box>
77
+ </Modal>
78
+ </>
79
+ )
80
+ }
81
+
82
+ export default Lightbox
@@ -0,0 +1,28 @@
1
+ import type { DOMAttributes } from '@react-types/shared'
2
+ import type React from 'react'
3
+ import type { Dispatch, FunctionComponent, SetStateAction } from 'react'
4
+ import type { OverlayTriggerProps as AriaOverlayTriggerProps } from 'react-aria'
5
+ import type { OverlayTriggerProps } from 'react-stately'
6
+ import type { TDefaultComponent, TTransition } from '../../types/components'
7
+ import type { TButtonProps } from '../Button/interface'
8
+
9
+ type TCloseButtonProps =
10
+ | React.ForwardRefExoticComponent<TButtonProps & React.RefAttributes<HTMLButtonElement & HTMLAnchorElement>>
11
+ | FunctionComponent<TButtonProps>
12
+
13
+ export interface LightboxProps extends TDefaultComponent, OverlayTriggerProps, Omit<AriaOverlayTriggerProps, 'type'> {
14
+ closeButtonAriaLabel?: string
15
+ setOpen?: Dispatch<SetStateAction<boolean>>
16
+ closeButton?: TCloseButtonProps
17
+ transitionComponent?: FunctionComponent<TTransition>
18
+ }
19
+
20
+ export interface TLightboxProps extends LightboxProps {
21
+ label: string
22
+ thumbnailContent: React.ReactNode
23
+ }
24
+
25
+ export interface LightboxAria {
26
+ overlayProps: DOMAttributes & { label?: string }
27
+ labelProps: DOMAttributes
28
+ }
@@ -0,0 +1,79 @@
1
+ import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
+ import { ArgTypes } from '@storybook/blocks'
3
+ import Lightbox from './'
4
+ import LightboxControlledState from '../../storybook/Lightbox/LightboxControlledState'
5
+ import Image from 'next/image'
6
+ import image from '../../../static/images/image.png'
7
+
8
+ <Meta
9
+ title="BASE COMPONENTS/Lightbox"
10
+ component={Lightbox}
11
+ argTypes={{
12
+ label: {
13
+ description: 'Used for accessibility and/or for displaying a label',
14
+ control: {
15
+ type: 'text'
16
+ },
17
+ },
18
+ thumbnailContent: {
19
+ description: `The lightbox's preview content`
20
+ },
21
+ onOpenChange: {
22
+ description: 'Callback for executing some code when the state of the lightbox changes. Passes a boolean `isOpen`'
23
+ },
24
+ closeButton: {
25
+ description: `To replace the lightbox's default close button`
26
+ },
27
+ closeButtonAriaLabel: {
28
+ description: `Adds accessibility to the lightbox's default close button`,
29
+ control: {
30
+ type: 'text'
31
+ },
32
+ },
33
+ isOpen: {
34
+ description: 'Handles an optional controlled state'
35
+ },
36
+ setOpen: {
37
+ description: `Allows the lightbox component's thumbnail to still controll the lightbox's state even in a case of controlled state`
38
+ }
39
+ }}
40
+ args={{
41
+ label: 'Open Dialog',
42
+ thumbnailContent: <Image src={image} width={570} height={762} alt="Dog picture" />,
43
+ onOpenChange: (isOpen) => console.log(`Lightbox is now ${isOpen}`),
44
+ closeButtonAriaLabel: 'Close the modal',
45
+ }}
46
+ />
47
+
48
+ export const Template = (args) => {
49
+ return (
50
+ <Lightbox {...args}>
51
+ <Image src={image} width={570} height={762} alt="Lightbox preview" />
52
+ </Lightbox>
53
+ )
54
+ }
55
+
56
+ export const TemplateControlledState = (args) => {
57
+ return (
58
+ <LightboxControlledState {...args}>
59
+ <Image src={image} width={570} height={762} alt="Lightbox preview" />
60
+ </LightboxControlledState>
61
+ )
62
+ }
63
+
64
+ # Lightbox
65
+
66
+ ## Props
67
+ <ArgTypes />
68
+
69
+ ## Showcase
70
+
71
+ ### Default
72
+ <Canvas>
73
+ <Story name="Default">{Template.bind({})}</Story>
74
+ </Canvas>
75
+
76
+ ### With a controlled state
77
+ <Canvas>
78
+ <Story name="ControlledState">{TemplateControlledState.bind({})}</Story>
79
+ </Canvas>
@@ -0,0 +1,43 @@
1
+ 'use client'
2
+
3
+ import { useMenu } from '../../providers/Menu'
4
+ import { useSidePanel } from '../../providers/SidePanel'
5
+ import RenderWithOpacity from '../../transitions/RenderWithOpacity'
6
+ import Box from '../Box'
7
+ import InnerContent from './components/InnerContent'
8
+ import type TMenuProps from './interface'
9
+
10
+ const Menu = (props: TMenuProps) => {
11
+ const {
12
+ id = 'main-menu',
13
+ children,
14
+ PanelTransition = RenderWithOpacity,
15
+ themeName,
16
+ tokens,
17
+ customTheme,
18
+ ...rest
19
+ } = props
20
+ const { overlayState } = useSidePanel()
21
+ const { closeBtn } = useMenu()
22
+
23
+ return (
24
+ <PanelTransition isVisible={overlayState?.isOpen}>
25
+ <Box themeName={`${themeName}.wrapper`}>
26
+ {closeBtn && closeBtn()}
27
+ <Box themeName={`${themeName}.container`}>
28
+ <InnerContent
29
+ id={id}
30
+ themeName={`${themeName}.innerContent`}
31
+ tokens={tokens}
32
+ customTheme={customTheme}
33
+ {...rest}
34
+ >
35
+ {children}
36
+ </InnerContent>
37
+ </Box>
38
+ </Box>
39
+ </PanelTransition>
40
+ )
41
+ }
42
+
43
+ export default Menu
@@ -0,0 +1,41 @@
1
+ 'use client'
2
+
3
+ import { useMenu } from '../../providers/Menu'
4
+ import SidePanel from '../SidePanel'
5
+ import InnerContent from './components/InnerContent'
6
+ import type { TMenuSidePanelProps } from './interface'
7
+
8
+ const MenuSidePanel = (props: TMenuSidePanelProps) => {
9
+ const {
10
+ id = 'main-menu',
11
+ children,
12
+ TransitionAnimation,
13
+ PanelTransition,
14
+ themeName,
15
+ tokens,
16
+ customTheme,
17
+ ...rest
18
+ } = props
19
+ const { closeBtn, tabState, defaultSelectedKey } = useMenu()
20
+
21
+ return (
22
+ <SidePanel
23
+ themeName={`${themeName}.sidePanel`}
24
+ tokens={tokens}
25
+ customTheme={customTheme}
26
+ closeBtnRender={closeBtn}
27
+ id={id}
28
+ TransitionAnimation={TransitionAnimation as (props: unknown) => JSX.Element}
29
+ PanelTransition={PanelTransition as (props: unknown) => JSX.Element}
30
+ onCloseCallBack={() => {
31
+ tabState?.setSelectedKey(defaultSelectedKey)
32
+ }}
33
+ >
34
+ <InnerContent id={id} themeName={themeName} tokens={tokens} customTheme={customTheme} {...rest}>
35
+ {children}
36
+ </InnerContent>
37
+ </SidePanel>
38
+ )
39
+ }
40
+
41
+ export default MenuSidePanel
@@ -0,0 +1,26 @@
1
+ import { useMenu } from '../../../providers/Menu'
2
+ import Box from '../../Box'
3
+ import type TMenuProps from '../interface'
4
+ import TabContainer from './TabContainer'
5
+
6
+ const InnerContent = (props: TMenuProps) => {
7
+ const { themeName, tokens, customTheme, children, beforeTabContent, afterTabContent } = props
8
+ const { tabState, defaultSelectedKey } = useMenu()
9
+ return (
10
+ <>
11
+ <Box themeName={`${themeName}.wrapper`} tokens={tokens} customTheme={customTheme}>
12
+ {children}
13
+ </Box>
14
+
15
+ {tabState?.selectedKey?.toString() === defaultSelectedKey ? null : (
16
+ <Box themeName={`${themeName}.tabWrapper`} tokens={tokens} customTheme={customTheme}>
17
+ {beforeTabContent !== null && beforeTabContent}
18
+ <TabContainer themeName={`${themeName}.tabPanel`} tokens={tokens} customTheme={customTheme} />
19
+ {afterTabContent !== null && afterTabContent}
20
+ </Box>
21
+ )}
22
+ </>
23
+ )
24
+ }
25
+
26
+ export default InnerContent
@@ -0,0 +1,133 @@
1
+ 'use client'
2
+
3
+ import NextLink from 'next/link'
4
+ import React, { useCallback, useRef } from 'react'
5
+ import { useMenu } from '../../../providers/Menu'
6
+ import Box from '../../Box'
7
+ import Button, { Anchor } from '../../Button'
8
+ import type { TMenuItemProps, TMenuItemsProps } from '../interface'
9
+
10
+ const ButtonElement = (menuItem: TMenuItemProps) => {
11
+ const { tabState, defaultSelectedKey } = useMenu()
12
+ const { setSelectedKey } = tabState
13
+ const { id, path, label, themeName = 'button', tokens, customTheme, target, children, childItems, ...rest } = menuItem
14
+ const itemKey = path?.substring(1)
15
+
16
+ const handlePress = useCallback(() => {
17
+ if (itemKey == null) {
18
+ return
19
+ }
20
+
21
+ if (tabState.selectedKey === itemKey) {
22
+ setSelectedKey(defaultSelectedKey)
23
+ return
24
+ }
25
+
26
+ setSelectedKey(itemKey)
27
+ }, [itemKey, tabState.selectedKey, setSelectedKey, defaultSelectedKey])
28
+
29
+ return (
30
+ <Button
31
+ {...rest}
32
+ themeName={`${themeName}`}
33
+ tokens={tokens}
34
+ customTheme={customTheme}
35
+ key={`button-${id}`}
36
+ handlePress={handlePress}
37
+ >
38
+ {React.isValidElement(children) ? children : label}
39
+ </Button>
40
+ )
41
+ }
42
+
43
+ const LinkElement = (menuItem: TMenuItemProps) => {
44
+ const {
45
+ id,
46
+ target,
47
+ path,
48
+ label,
49
+ themeName = 'anchor',
50
+ customTheme,
51
+ tokens,
52
+ nextLinkProps,
53
+ children,
54
+ childItems,
55
+ ...rest
56
+ } = menuItem
57
+ const ref = useRef(null)
58
+
59
+ if (path == null || label == null) {
60
+ return null
61
+ }
62
+
63
+ return (
64
+ <Anchor
65
+ {...rest}
66
+ themeName={`${themeName}`}
67
+ tokens={tokens}
68
+ customTheme={customTheme}
69
+ nextLinkProps={{
70
+ scroll: false,
71
+ href: path,
72
+ ...nextLinkProps,
73
+ }}
74
+ ref={ref}
75
+ key={`link-${id}`}
76
+ as={NextLink}
77
+ target={target ?? '_self'}
78
+ >
79
+ {React.isValidElement(children) ? children : label}
80
+ </Anchor>
81
+ )
82
+ }
83
+
84
+ const MenuItems = (props: TMenuItemsProps) => {
85
+ const { menuItems, children, themeName = 'menuItem', tokens, customTheme } = props
86
+
87
+ return (
88
+ <Box themeName={`${themeName}.wrapper`} tokens={tokens} customTheme={customTheme}>
89
+ <Box themeName={`${themeName}.container`} tokens={tokens} customTheme={customTheme}>
90
+ {menuItems?.map((menuItem) => {
91
+ const { id, path, label, ...rest } = menuItem ?? {}
92
+
93
+ const menuItemTokens = { ...tokens, ...menuItem.tokens }
94
+
95
+ if (menuItem?.path == null || menuItem.id == null) {
96
+ return null
97
+ }
98
+
99
+ const elementType = menuItem.path?.startsWith('#') ? 'button' : 'a'
100
+ return (
101
+ <Box
102
+ themeName={`${themeName}.innerContent`}
103
+ tokens={menuItemTokens}
104
+ customTheme={customTheme}
105
+ key={`li-${menuItem.id}`}
106
+ >
107
+ {elementType === 'button' ? (
108
+ <ButtonElement
109
+ {...rest}
110
+ {...menuItem}
111
+ themeName={`${themeName}.button`}
112
+ tokens={menuItemTokens}
113
+ customTheme={customTheme}
114
+ />
115
+ ) : (
116
+ <LinkElement
117
+ {...rest}
118
+ {...menuItem}
119
+ themeName={`${themeName}.anchor`}
120
+ tokens={menuItemTokens}
121
+ customTheme={customTheme}
122
+ />
123
+ )}
124
+ </Box>
125
+ )
126
+ })}
127
+ </Box>
128
+ {children}
129
+ </Box>
130
+ )
131
+ }
132
+
133
+ export default MenuItems
@@ -0,0 +1,13 @@
1
+ 'use client'
2
+
3
+ import { useMenu } from '../../../providers/Menu'
4
+ import type { TDefaultComponent } from '../../../types/components'
5
+ import TabPanel from '../../TabList/components/TabPanel/TabPanel'
6
+
7
+ const TabContainer = (props: TDefaultComponent) => {
8
+ const { tabState } = useMenu()
9
+
10
+ return <TabPanel {...props} key={tabState.selectedItem?.key} state={tabState} />
11
+ }
12
+
13
+ export default TabContainer
@@ -0,0 +1,41 @@
1
+ import type { AriaTabListProps } from '@react-types/tabs'
2
+ import type { LinkProps } from 'next/link'
3
+ import type React from 'react'
4
+ import type { Maybe, TDefaultComponent } from '../../types/components'
5
+
6
+ export type MenuProps = {
7
+ id: string
8
+ children: React.ReactNode
9
+ beforeTabContent?: React.ReactNode
10
+ afterTabContent?: React.ReactNode
11
+ // eslint-disable-next-line @typescript-eslint/naming-convention
12
+ PanelTransition?: (props: unknown) => JSX.Element
13
+ }
14
+
15
+ export type TMenuProps = AriaTabListProps<MenuProps> & MenuProps & TDefaultComponent
16
+
17
+ export type TMenuSidePanelProps = TMenuProps & {
18
+ // eslint-disable-next-line @typescript-eslint/naming-convention
19
+ TransitionAnimation?: (props: unknown) => JSX.Element
20
+ }
21
+
22
+ export type PartialHtmlBaseElement = Omit<Partial<HTMLBaseElement>, 'id' | 'onClick' | 'target' | 'role' | 'children'>
23
+
24
+ export interface IMenuItemProp {
25
+ childItems?: Maybe<TMenuItemProps[] | null>
26
+ id?: string
27
+ target?: string | null
28
+ path?: string
29
+ label?: string
30
+ nextLinkProps?: LinkProps
31
+ onClick?: () => void
32
+ }
33
+
34
+ export type TMenuItemProps = IMenuItemProp & TDefaultComponent & PartialHtmlBaseElement
35
+
36
+ export interface TMenuItemsProps extends TDefaultComponent {
37
+ menuItems?: TMenuItemProps[] | null
38
+ children?: React.ReactNode
39
+ }
40
+
41
+ export default TMenuProps
@@ -0,0 +1,23 @@
1
+ {/* menu */}
2
+
3
+ import { Canvas, Meta, Story } from '@storybook/addon-docs'
4
+ import MenuContent from '../../storybook/Menu/Menu'
5
+ import NestedMenuContent from '../../storybook/Menu/NestedMenu'
6
+
7
+ <Meta title="Layout/Menu" component={MenuContent} />
8
+
9
+ export const Template = (args) => <MenuContent />
10
+
11
+ export const TemplateNested = (args) => <NestedMenuContent />
12
+
13
+ # Menu
14
+
15
+ ## Side panel menu
16
+ <Canvas>
17
+ <Story name="Menu">{Template.bind({})}</Story>
18
+ </Canvas>
19
+
20
+ ## Nested menu
21
+ <Canvas>
22
+ <Story name="Nested Menu">{TemplateNested.bind({})}</Story>
23
+ </Canvas>
@@ -0,0 +1,31 @@
1
+ import React from 'react'
2
+ import { FocusRing, FocusScope, useDialog } from 'react-aria'
3
+ import { BoxWithForwardRef } from '../../Box'
4
+ import type { TModalDialogProps } from '../interface'
5
+
6
+ const ModalDialog = (props: TModalDialogProps) => {
7
+ const { children, themeName, tokens, customTheme } = props
8
+
9
+ const ref = React.useRef(null)
10
+
11
+ const { dialogProps } = useDialog(props, ref)
12
+
13
+ return (
14
+ <BoxWithForwardRef
15
+ themeName={`${themeName}.dialog`}
16
+ tokens={tokens}
17
+ customTheme={customTheme}
18
+ ref={ref}
19
+ aria-modal
20
+ {...dialogProps}
21
+ >
22
+ <FocusRing focusRingClass="has-focus-ring" within autoFocus>
23
+ <FocusScope contain restoreFocus autoFocus>
24
+ {children}
25
+ </FocusScope>
26
+ </FocusRing>
27
+ </BoxWithForwardRef>
28
+ )
29
+ }
30
+
31
+ export default ModalDialog
@@ -0,0 +1,21 @@
1
+ import { useRef } from 'react'
2
+ import { useModalOverlay } from 'react-aria'
3
+ import Box, { BoxWithForwardRef } from '../../Box'
4
+ import type { TModalOverlayProps } from '../interface'
5
+
6
+ const ModalOverlay = (props: TModalOverlayProps) => {
7
+ const { themeName, tokens, customTheme, children, state, ...rest } = props
8
+
9
+ const ref = useRef(null)
10
+ const { modalProps, underlayProps } = useModalOverlay(rest, state, ref)
11
+
12
+ return (
13
+ <Box themeName={`${themeName}.underlay`} tokens={tokens} customTheme={customTheme} {...underlayProps}>
14
+ <BoxWithForwardRef ref={ref} themeName={`${themeName}.overlay`} tokens={tokens} {...modalProps}>
15
+ {children}
16
+ </BoxWithForwardRef>
17
+ </Box>
18
+ )
19
+ }
20
+
21
+ export default ModalOverlay
@@ -0,0 +1,32 @@
1
+ 'use client'
2
+
3
+ import { OverlayContainer } from 'react-aria'
4
+ import ModalTransition from '../../transitions/ModalTransition'
5
+ import ModalDialog from './components/ModalDialog'
6
+ import ModalOverlay from './components/ModalOverlay'
7
+ import type { TModalProps } from './interface'
8
+
9
+ const Modal = (props: TModalProps) => {
10
+ const {
11
+ children,
12
+ transitionComponent: TransitionComponent = ModalTransition,
13
+ state,
14
+ themeName,
15
+ tokens,
16
+ ...rest
17
+ } = props
18
+
19
+ return (
20
+ <OverlayContainer>
21
+ <TransitionComponent isVisible={state.isOpen}>
22
+ <ModalOverlay themeName={themeName} tokens={tokens} state={state} {...rest}>
23
+ <ModalDialog themeName={themeName} tokens={tokens} {...rest}>
24
+ {children}
25
+ </ModalDialog>
26
+ </ModalOverlay>
27
+ </TransitionComponent>
28
+ </OverlayContainer>
29
+ )
30
+ }
31
+
32
+ export default Modal
@@ -1,17 +1,20 @@
1
- import type { OverlayTriggerState } from '@react-stately/overlays';
2
- import type React from 'react';
3
- import type { FunctionComponent } from 'react';
4
- import type { AriaDialogProps, AriaModalOverlayProps } from 'react-aria';
5
- import type { TDefaultComponent, TTransition } from '../../types/components';
1
+ import type { OverlayTriggerState } from '@react-stately/overlays'
2
+ import type React from 'react'
3
+ import type { FunctionComponent } from 'react'
4
+ import type { AriaDialogProps, AriaModalOverlayProps } from 'react-aria'
5
+ import type { TDefaultComponent, TTransition } from '../../types/components'
6
+
6
7
  export interface TModalProps extends AriaModalOverlayProps, TDefaultComponent {
7
- state: OverlayTriggerState;
8
- children: React.ReactNode;
9
- transitionComponent?: FunctionComponent<TTransition>;
8
+ state: OverlayTriggerState
9
+ children: React.ReactNode
10
+ transitionComponent?: FunctionComponent<TTransition>
10
11
  }
12
+
11
13
  export interface TModalOverlayProps extends AriaModalOverlayProps, TDefaultComponent {
12
- children: React.ReactNode;
13
- state: OverlayTriggerState;
14
+ children: React.ReactNode
15
+ state: OverlayTriggerState
14
16
  }
17
+
15
18
  export interface TModalDialogProps extends AriaDialogProps, TDefaultComponent {
16
- children: React.ReactNode;
19
+ children: React.ReactNode
17
20
  }