@studiocubics/components 0.0.1 → 0.0.2

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 (433) hide show
  1. package/dist/Cards/Card/Card.d.ts +49 -0
  2. package/dist/Cards/Card/Card.js +45 -0
  3. package/dist/Cards/Card/Card.js.map +1 -0
  4. package/dist/Cards/Card/Card.module.css.js +4 -0
  5. package/dist/Cards/Card/Card.module.css.js.map +1 -0
  6. package/dist/Cards/CollectionItemCard/CollectionItemCard.d.ts +55 -0
  7. package/dist/Cards/CollectionItemCard/CollectionItemCard.js +48 -0
  8. package/dist/Cards/CollectionItemCard/CollectionItemCard.js.map +1 -0
  9. package/dist/Cards/CollectionItemCard/CollectionItemCard.module.css.js +4 -0
  10. package/dist/Cards/CollectionItemCard/CollectionItemCard.module.css.js.map +1 -0
  11. package/dist/Cards/CollectionItemCard/CollectionItemCardActions.d.ts +19 -0
  12. package/dist/Cards/CollectionItemCard/CollectionItemCardActions.js +34 -0
  13. package/dist/Cards/CollectionItemCard/CollectionItemCardActions.js.map +1 -0
  14. package/dist/Cards/GlassCard/GlassCard.d.ts +7 -0
  15. package/dist/Cards/GlassCard/GlassCard.js +52 -0
  16. package/dist/Cards/GlassCard/GlassCard.js.map +1 -0
  17. package/dist/Cards/GlassCard/GlassCard.module.css.js +4 -0
  18. package/dist/Cards/GlassCard/GlassCard.module.css.js.map +1 -0
  19. package/dist/Display/Accordion/Accordion.d.ts +14 -0
  20. package/dist/Display/Accordion/Accordion.js +28 -0
  21. package/dist/Display/Accordion/Accordion.js.map +1 -0
  22. package/dist/Display/Accordion/Accordion.module.css.js +4 -0
  23. package/dist/Display/Accordion/Accordion.module.css.js.map +1 -0
  24. package/dist/Display/Accordion/AccordionItem.d.ts +15 -0
  25. package/dist/Display/Accordion/AccordionItem.js +56 -0
  26. package/dist/Display/Accordion/AccordionItem.js.map +1 -0
  27. package/dist/Display/Chip/Chip.d.ts +46 -0
  28. package/dist/Display/Chip/Chip.js +43 -0
  29. package/dist/Display/Chip/Chip.js.map +1 -0
  30. package/dist/Display/Chip/Chip.module.css.js +4 -0
  31. package/dist/Display/Chip/Chip.module.css.js.map +1 -0
  32. package/dist/Display/IdentityDisplay/IdentityDisplay.d.ts +21 -0
  33. package/dist/Display/IdentityDisplay/IdentityDisplay.js +36 -0
  34. package/dist/Display/IdentityDisplay/IdentityDisplay.js.map +1 -0
  35. package/dist/Display/IdentityDisplay/IdentityDisplay.module.css.js +4 -0
  36. package/dist/Display/IdentityDisplay/IdentityDisplay.module.css.js.map +1 -0
  37. package/dist/Display/InputErrors/InputErrors.d.ts +11 -0
  38. package/dist/Display/InputErrors/InputErrors.js +25 -0
  39. package/dist/Display/InputErrors/InputErrors.js.map +1 -0
  40. package/dist/Display/InputErrors/InputErrors.module.css.js +4 -0
  41. package/dist/Display/InputErrors/InputErrors.module.css.js.map +1 -0
  42. package/dist/Display/Kbd/Kbd.d.ts +8 -0
  43. package/dist/Display/Kbd/Kbd.js +19 -0
  44. package/dist/Display/Kbd/Kbd.js.map +1 -0
  45. package/dist/Display/Kbd/Kbd.module.css.js +4 -0
  46. package/dist/Display/Kbd/Kbd.module.css.js.map +1 -0
  47. package/dist/Display/Kbd/buttonList.d.ts +324 -0
  48. package/dist/Display/Kbd/buttonList.js +198 -0
  49. package/dist/Display/Kbd/buttonList.js.map +1 -0
  50. package/dist/Display/LabeledValue/LabeledValue.d.ts +9 -0
  51. package/dist/Display/LabeledValue/LabeledValue.js +11 -0
  52. package/dist/Display/LabeledValue/LabeledValue.js.map +1 -0
  53. package/dist/Display/LabeledValue/LabeledValue.module.css.js +4 -0
  54. package/dist/Display/LabeledValue/LabeledValue.module.css.js.map +1 -0
  55. package/dist/Display/List/List.d.ts +50 -0
  56. package/dist/Display/List/List.js +96 -0
  57. package/dist/Display/List/List.js.map +1 -0
  58. package/dist/Display/List/List.module.css.js +4 -0
  59. package/dist/Display/List/List.module.css.js.map +1 -0
  60. package/dist/Display/PasswordStrength/PasswordStrength.d.ts +4 -0
  61. package/dist/Display/PasswordStrength/PasswordStrength.js +17 -0
  62. package/dist/Display/PasswordStrength/PasswordStrength.js.map +1 -0
  63. package/dist/Display/PasswordStrength/PasswordStrength.module.css.js +4 -0
  64. package/dist/Display/PasswordStrength/PasswordStrength.module.css.js.map +1 -0
  65. package/dist/Display/PasswordStrength/usePasswordStrength.d.ts +42 -0
  66. package/dist/Display/PasswordStrength/usePasswordStrength.js +49 -0
  67. package/dist/Display/PasswordStrength/usePasswordStrength.js.map +1 -0
  68. package/dist/Display/Skeleton/Skeleton.d.ts +8 -0
  69. package/dist/Display/Skeleton/Skeleton.js +11 -0
  70. package/dist/Display/Skeleton/Skeleton.js.map +1 -0
  71. package/dist/Display/Skeleton/Skeleton.module.css.js +4 -0
  72. package/dist/Display/Skeleton/Skeleton.module.css.js.map +1 -0
  73. package/dist/Display/Toast/Toaster.d.ts +1 -0
  74. package/dist/Display/Toast/Toaster.js +45 -0
  75. package/dist/Display/Toast/Toaster.js.map +1 -0
  76. package/dist/Display/Toast/toast.d.ts +12 -0
  77. package/dist/Display/Toast/toast.js +32 -0
  78. package/dist/Display/Toast/toast.js.map +1 -0
  79. package/dist/Display/Tooltip/Tooltip.d.ts +8 -0
  80. package/dist/Display/Tooltip/Tooltip.js +45 -0
  81. package/dist/Display/Tooltip/Tooltip.js.map +1 -0
  82. package/dist/Display/Tooltip/Tooltip.module.css.js +4 -0
  83. package/dist/Display/Tooltip/Tooltip.module.css.js.map +1 -0
  84. package/dist/Display/Tooltip/getArrowDirection.d.ts +1 -0
  85. package/dist/Display/Tooltip/getArrowDirection.js +48 -0
  86. package/dist/Display/Tooltip/getArrowDirection.js.map +1 -0
  87. package/dist/Display/Tooltip/useTooltip.d.ts +8 -0
  88. package/dist/Display/Tooltip/useTooltip.js +48 -0
  89. package/dist/Display/Tooltip/useTooltip.js.map +1 -0
  90. package/dist/Forms/ConfirmationForm/ConfirmationForm.d.ts +15 -0
  91. package/dist/Forms/ConfirmationForm/ConfirmationForm.js +12 -0
  92. package/dist/Forms/ConfirmationForm/ConfirmationForm.js.map +1 -0
  93. package/dist/Forms/ConfirmationForm/ConfirmationForm.module.css.js +4 -0
  94. package/dist/Forms/ConfirmationForm/ConfirmationForm.module.css.js.map +1 -0
  95. package/dist/Inputs/Button/Button.d.ts +83 -0
  96. package/dist/Inputs/Button/Button.js +56 -0
  97. package/dist/Inputs/Button/Button.js.map +1 -0
  98. package/dist/Inputs/Button/Button.module.css.js +4 -0
  99. package/dist/Inputs/Button/Button.module.css.js.map +1 -0
  100. package/dist/Inputs/Checkbox/Checkbox.d.ts +23 -0
  101. package/dist/Inputs/Checkbox/Checkbox.js +55 -0
  102. package/dist/Inputs/Checkbox/Checkbox.js.map +1 -0
  103. package/dist/Inputs/Checkbox/Checkbox.module.css.js +4 -0
  104. package/dist/Inputs/Checkbox/Checkbox.module.css.js.map +1 -0
  105. package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.d.ts +15 -0
  106. package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.js +35 -0
  107. package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.js.map +1 -0
  108. package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css.js +4 -0
  109. package/dist/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
  110. package/dist/Inputs/Checkbox/CheckboxSelectAll.d.ts +5 -0
  111. package/dist/Inputs/Checkbox/CheckboxSelectAll.js +19 -0
  112. package/dist/Inputs/Checkbox/CheckboxSelectAll.js.map +1 -0
  113. package/dist/Inputs/PasswordInput/PasswordInput.d.ts +31 -0
  114. package/dist/Inputs/PasswordInput/PasswordInput.js +45 -0
  115. package/dist/Inputs/PasswordInput/PasswordInput.js.map +1 -0
  116. package/dist/Inputs/PasswordInput/PasswordInput.module.css.js +4 -0
  117. package/dist/Inputs/PasswordInput/PasswordInput.module.css.js.map +1 -0
  118. package/dist/Inputs/Select/Select.d.ts +22 -0
  119. package/dist/Inputs/Select/Select.js +26 -0
  120. package/dist/Inputs/Select/Select.js.map +1 -0
  121. package/dist/Inputs/Select/Select.module.css.js +4 -0
  122. package/dist/Inputs/Select/Select.module.css.js.map +1 -0
  123. package/dist/Inputs/Switch/Switch.d.ts +43 -0
  124. package/dist/Inputs/Switch/Switch.js +81 -0
  125. package/dist/Inputs/Switch/Switch.js.map +1 -0
  126. package/dist/Inputs/Switch/Switch.module.css.js +4 -0
  127. package/dist/Inputs/Switch/Switch.module.css.js.map +1 -0
  128. package/dist/Inputs/TextAreaInput/TextAreaInput.d.ts +17 -0
  129. package/dist/Inputs/TextAreaInput/TextAreaInput.js +30 -0
  130. package/dist/Inputs/TextAreaInput/TextAreaInput.js.map +1 -0
  131. package/dist/Inputs/TextAreaInput/TextAreaInput.module.css.js +4 -0
  132. package/dist/Inputs/TextAreaInput/TextAreaInput.module.css.js.map +1 -0
  133. package/dist/Inputs/TextInput/TextInput.d.ts +27 -0
  134. package/dist/Inputs/TextInput/TextInput.js +23 -0
  135. package/dist/Inputs/TextInput/TextInput.js.map +1 -0
  136. package/dist/Inputs/TextInput/TextInput.module.css.js +4 -0
  137. package/dist/Inputs/TextInput/TextInput.module.css.js.map +1 -0
  138. package/dist/Inputs/ThemeToggle/ThemeToggleListItem.d.ts +16 -0
  139. package/dist/Inputs/ThemeToggle/ThemeToggleListItem.js +31 -0
  140. package/dist/Inputs/ThemeToggle/ThemeToggleListItem.js.map +1 -0
  141. package/dist/Inputs/ThemeToggle/_index.d.ts +1 -0
  142. package/dist/Layout/Dialog/Dialog.d.ts +13 -0
  143. package/dist/Layout/Dialog/Dialog.js +74 -0
  144. package/dist/Layout/Dialog/Dialog.js.map +1 -0
  145. package/dist/Layout/Dialog/Dialog.module.css.js +4 -0
  146. package/dist/Layout/Dialog/Dialog.module.css.js.map +1 -0
  147. package/dist/Layout/PageLayout/PageLayout.d.ts +28 -0
  148. package/dist/Layout/PageLayout/PageLayout.js +25 -0
  149. package/dist/Layout/PageLayout/PageLayout.js.map +1 -0
  150. package/dist/Layout/PageLayout/PageLayout.module.css.js +4 -0
  151. package/dist/Layout/PageLayout/PageLayout.module.css.js.map +1 -0
  152. package/dist/Layout/PageLayoutPagination/PageLayoutPagination.d.ts +7 -0
  153. package/dist/Layout/PageLayoutPagination/PageLayoutPagination.js +13 -0
  154. package/dist/Layout/PageLayoutPagination/PageLayoutPagination.js.map +1 -0
  155. package/dist/Layout/PageLayoutPagination/PageLayoutPagination.module.css.js +4 -0
  156. package/dist/Layout/PageLayoutPagination/PageLayoutPagination.module.css.js.map +1 -0
  157. package/dist/Layout/PageLayoutTabs/PageLayoutTabs.d.ts +14 -0
  158. package/dist/Layout/PageLayoutTabs/PageLayoutTabs.js +22 -0
  159. package/dist/Layout/PageLayoutTabs/PageLayoutTabs.js.map +1 -0
  160. package/dist/Layout/PageLayoutTabs/PageLayoutTabs.module.css.js +4 -0
  161. package/dist/Layout/PageLayoutTabs/PageLayoutTabs.module.css.js.map +1 -0
  162. package/dist/Layout/Popover/Popover.d.ts +14 -0
  163. package/dist/Layout/Popover/Popover.js +103 -0
  164. package/dist/Layout/Popover/Popover.js.map +1 -0
  165. package/dist/Layout/Popover/Popover.module.css.js +4 -0
  166. package/dist/Layout/Popover/Popover.module.css.js.map +1 -0
  167. package/dist/Layout/SectionWrapper/SectionWrapper.d.ts +14 -0
  168. package/dist/Layout/SectionWrapper/SectionWrapper.js +11 -0
  169. package/dist/Layout/SectionWrapper/SectionWrapper.js.map +1 -0
  170. package/dist/Layout/SectionWrapper/SectionWrapper.module.css.js +4 -0
  171. package/dist/Layout/SectionWrapper/SectionWrapper.module.css.js.map +1 -0
  172. package/dist/Layout/Sidebar/Sidebar.d.ts +15 -0
  173. package/dist/Layout/Sidebar/Sidebar.js +25 -0
  174. package/dist/Layout/Sidebar/Sidebar.js.map +1 -0
  175. package/dist/Layout/Sidebar/Sidebar.module.css.js +4 -0
  176. package/dist/Layout/Sidebar/Sidebar.module.css.js.map +1 -0
  177. package/dist/Layout/Sidebar/SidebarBody/SidebarBody.d.ts +2 -0
  178. package/dist/Layout/Sidebar/SidebarBody/SidebarBody.js +14 -0
  179. package/dist/Layout/Sidebar/SidebarBody/SidebarBody.js.map +1 -0
  180. package/dist/Layout/Sidebar/SidebarBody/SidebarBody.module.css.js +4 -0
  181. package/dist/Layout/Sidebar/SidebarBody/SidebarBody.module.css.js.map +1 -0
  182. package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.d.ts +2 -0
  183. package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.js +14 -0
  184. package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.js.map +1 -0
  185. package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css.js +4 -0
  186. package/dist/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css.js.map +1 -0
  187. package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.d.ts +2 -0
  188. package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.js +14 -0
  189. package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.js.map +1 -0
  190. package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css.js +4 -0
  191. package/dist/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css.js.map +1 -0
  192. package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.d.ts +2 -0
  193. package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.js +12 -0
  194. package/dist/Layout/Sidebar/SidebarHeader/SidebarHeader.js.map +1 -0
  195. package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.d.ts +2 -0
  196. package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.js +11 -0
  197. package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.js.map +1 -0
  198. package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css.js +4 -0
  199. package/dist/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css.js.map +1 -0
  200. package/dist/Layout/Table/Table.d.ts +54 -0
  201. package/dist/Layout/Table/Table.js +131 -0
  202. package/dist/Layout/Table/Table.js.map +1 -0
  203. package/dist/Layout/Table/Table.module.css.js +4 -0
  204. package/dist/Layout/Table/Table.module.css.js.map +1 -0
  205. package/dist/Layout/Table/TableFooter.d.ts +1 -0
  206. package/dist/Layout/Table/TableFooter.js +9 -0
  207. package/dist/Layout/Table/TableFooter.js.map +1 -0
  208. package/dist/Layout/Table/TableHeader.d.ts +1 -0
  209. package/dist/Layout/Table/TableHeader.js +9 -0
  210. package/dist/Layout/Table/TableHeader.js.map +1 -0
  211. package/dist/Layout/Table/tableUtils.d.ts +52 -0
  212. package/dist/Layout/Table/tableUtils.js +124 -0
  213. package/dist/Layout/Table/tableUtils.js.map +1 -0
  214. package/dist/Layout/Table/types.d.ts +43 -0
  215. package/dist/Misc/Cursor/Cursor.d.ts +1 -0
  216. package/dist/Misc/Cursor/Cursor.js +59 -0
  217. package/dist/Misc/Cursor/Cursor.js.map +1 -0
  218. package/dist/Misc/Cursor/Cursor.module.css.js +4 -0
  219. package/dist/Misc/Cursor/Cursor.module.css.js.map +1 -0
  220. package/dist/Misc/Logos.d.ts +14 -0
  221. package/dist/Misc/Logos.js +29 -0
  222. package/dist/Misc/Logos.js.map +1 -0
  223. package/dist/Misc/PoweredByBanner/PoweredByBanner.d.ts +3 -0
  224. package/dist/Misc/PoweredByBanner/PoweredByBanner.js +11 -0
  225. package/dist/Misc/PoweredByBanner/PoweredByBanner.js.map +1 -0
  226. package/dist/Misc/PoweredByBanner/PoweredByBanner.module.css.js +4 -0
  227. package/dist/Misc/PoweredByBanner/PoweredByBanner.module.css.js.map +1 -0
  228. package/dist/Misc/Ripple/Ripple.d.ts +21 -0
  229. package/dist/Misc/Ripple/Ripple.js +62 -0
  230. package/dist/Misc/Ripple/Ripple.js.map +1 -0
  231. package/dist/Misc/Ripple/Ripple.module.css.js +4 -0
  232. package/dist/Misc/Ripple/Ripple.module.css.js.map +1 -0
  233. package/dist/Misc/Spinner/Spinner.d.ts +2 -0
  234. package/dist/Misc/Spinner/Spinner.js +12 -0
  235. package/dist/Misc/Spinner/Spinner.js.map +1 -0
  236. package/dist/Misc/Spinner/Spinner.module.css.js +4 -0
  237. package/dist/Misc/Spinner/Spinner.module.css.js.map +1 -0
  238. package/dist/Misc/TransitionAnimation/TransitionAnimation.d.ts +71 -0
  239. package/dist/Misc/TransitionAnimation/TransitionAnimation.js +87 -0
  240. package/dist/Misc/TransitionAnimation/TransitionAnimation.js.map +1 -0
  241. package/dist/Misc/TransitionAnimation/TransitionAnimation.module.css.js +4 -0
  242. package/dist/Misc/TransitionAnimation/TransitionAnimation.module.css.js.map +1 -0
  243. package/dist/Navigation/Breadcrumbs/Breadcrumbs.d.ts +39 -0
  244. package/dist/Navigation/Breadcrumbs/Breadcrumbs.js +36 -0
  245. package/dist/Navigation/Breadcrumbs/Breadcrumbs.js.map +1 -0
  246. package/dist/Navigation/Breadcrumbs/Breadcrumbs.module.css.js +4 -0
  247. package/dist/Navigation/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
  248. package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.d.ts +10 -0
  249. package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.js +15 -0
  250. package/dist/Navigation/Breadcrumbs/BreadcrumbsItem.js.map +1 -0
  251. package/dist/Navigation/Breadcrumbs/useBreadcrumbs.d.ts +7 -0
  252. package/dist/Navigation/Breadcrumbs/useBreadcrumbs.js +44 -0
  253. package/dist/Navigation/Breadcrumbs/useBreadcrumbs.js.map +1 -0
  254. package/dist/Navigation/Pagination/Pagination.d.ts +52 -0
  255. package/dist/Navigation/Pagination/Pagination.js +61 -0
  256. package/dist/Navigation/Pagination/Pagination.js.map +1 -0
  257. package/dist/Navigation/Pagination/Pagination.module.css.js +4 -0
  258. package/dist/Navigation/Pagination/Pagination.module.css.js.map +1 -0
  259. package/dist/Navigation/Pagination/PaginationItem.d.ts +8 -0
  260. package/dist/Navigation/Pagination/PaginationItem.js +14 -0
  261. package/dist/Navigation/Pagination/PaginationItem.js.map +1 -0
  262. package/dist/Navigation/Pagination/usePagination.d.ts +6 -0
  263. package/dist/Navigation/Pagination/usePagination.js +38 -0
  264. package/dist/Navigation/Pagination/usePagination.js.map +1 -0
  265. package/dist/Navigation/Tabs/Tab/Tab.d.ts +46 -0
  266. package/dist/Navigation/Tabs/Tab/Tab.js +70 -0
  267. package/dist/Navigation/Tabs/Tab/Tab.js.map +1 -0
  268. package/dist/Navigation/Tabs/Tab/Tab.module.css.js +4 -0
  269. package/dist/Navigation/Tabs/Tab/Tab.module.css.js.map +1 -0
  270. package/dist/Navigation/Tabs/Tabs.d.ts +12 -0
  271. package/dist/Navigation/Tabs/Tabs.js +22 -0
  272. package/dist/Navigation/Tabs/Tabs.js.map +1 -0
  273. package/dist/Navigation/Tabs/TabsBar/TabsBar.d.ts +12 -0
  274. package/dist/Navigation/Tabs/TabsBar/TabsBar.js +44 -0
  275. package/dist/Navigation/Tabs/TabsBar/TabsBar.js.map +1 -0
  276. package/dist/Navigation/Tabs/TabsBar/TabsBar.module.css.js +4 -0
  277. package/dist/Navigation/Tabs/TabsBar/TabsBar.module.css.js.map +1 -0
  278. package/dist/Typography/ClampedText/ClampedText.d.ts +38 -0
  279. package/dist/Typography/ClampedText/ClampedText.js +44 -0
  280. package/dist/Typography/ClampedText/ClampedText.js.map +1 -0
  281. package/dist/Typography/ClampedText/ClampedText.module.css.js +4 -0
  282. package/dist/Typography/ClampedText/ClampedText.module.css.js.map +1 -0
  283. package/dist/Typography/CopyableText/CopyableText.d.ts +16 -0
  284. package/dist/Typography/CopyableText/CopyableText.js +39 -0
  285. package/dist/Typography/CopyableText/CopyableText.js.map +1 -0
  286. package/dist/Typography/CopyableText/CopyableText.module.css.js +4 -0
  287. package/dist/Typography/CopyableText/CopyableText.module.css.js.map +1 -0
  288. package/dist/Typography/PageTitle/PageTitle.d.ts +9 -0
  289. package/dist/Typography/PageTitle/PageTitle.js +10 -0
  290. package/dist/Typography/PageTitle/PageTitle.js.map +1 -0
  291. package/dist/Typography/PageTitle/PageTitle.module.css.js +4 -0
  292. package/dist/Typography/PageTitle/PageTitle.module.css.js.map +1 -0
  293. package/dist/index.css +2392 -0
  294. package/dist/index.js +64 -0
  295. package/dist/index.js.map +1 -0
  296. package/package.json +4 -4
  297. package/CHANGELOG.md +0 -11
  298. package/eslint.config.js +0 -21
  299. package/src/Cards/Card/Card.module.css +0 -27
  300. package/src/Cards/Card/Card.tsx +0 -105
  301. package/src/Cards/CollectionItemCard/CollectionItemCard.module.css +0 -84
  302. package/src/Cards/CollectionItemCard/CollectionItemCard.tsx +0 -170
  303. package/src/Cards/CollectionItemCard/CollectionItemCardActions.tsx +0 -85
  304. package/src/Cards/GlassCard/GlassCard.module.css +0 -71
  305. package/src/Cards/GlassCard/GlassCard.tsx +0 -80
  306. package/src/Display/Accordion/Accordion.module.css +0 -69
  307. package/src/Display/Accordion/Accordion.tsx +0 -61
  308. package/src/Display/Accordion/AccordionItem.tsx +0 -135
  309. package/src/Display/Chip/Chip.module.css +0 -64
  310. package/src/Display/Chip/Chip.tsx +0 -105
  311. package/src/Display/IdentityDisplay/IdentityDisplay.module.css +0 -95
  312. package/src/Display/IdentityDisplay/IdentityDisplay.tsx +0 -119
  313. package/src/Display/InputErrors/InputErrors.module.css +0 -6
  314. package/src/Display/InputErrors/InputErrors.tsx +0 -52
  315. package/src/Display/Kbd/Kbd.module.css +0 -29
  316. package/src/Display/Kbd/Kbd.tsx +0 -39
  317. package/src/Display/Kbd/buttonList.tsx +0 -246
  318. package/src/Display/LabeledValue/LabeledValue.module.css +0 -32
  319. package/src/Display/LabeledValue/LabeledValue.tsx +0 -20
  320. package/src/Display/List/List.module.css +0 -143
  321. package/src/Display/List/List.tsx +0 -298
  322. package/src/Display/PasswordStrength/PasswordStrength.module.css +0 -45
  323. package/src/Display/PasswordStrength/PasswordStrength.tsx +0 -41
  324. package/src/Display/PasswordStrength/usePasswordStrength.tsx +0 -77
  325. package/src/Display/Skeleton/Skeleton.module.css +0 -54
  326. package/src/Display/Skeleton/Skeleton.tsx +0 -28
  327. package/src/Display/Toast/Toaster.tsx +0 -58
  328. package/src/Display/Toast/toast.ts +0 -44
  329. package/src/Display/Tooltip/Tooltip.module.css +0 -128
  330. package/src/Display/Tooltip/Tooltip.tsx +0 -93
  331. package/src/Display/Tooltip/getArrowDirection.ts +0 -55
  332. package/src/Display/Tooltip/useTooltip.tsx +0 -63
  333. package/src/Forms/ConfirmationForm/ConfirmationForm.module.css +0 -23
  334. package/src/Forms/ConfirmationForm/ConfirmationForm.tsx +0 -60
  335. package/src/Inputs/Button/Button.module.css +0 -131
  336. package/src/Inputs/Button/Button.tsx +0 -178
  337. package/src/Inputs/Checkbox/Checkbox.module.css +0 -77
  338. package/src/Inputs/Checkbox/Checkbox.tsx +0 -191
  339. package/src/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.module.css +0 -10
  340. package/src/Inputs/Checkbox/CheckboxGroup/CheckboxGroup.tsx +0 -83
  341. package/src/Inputs/Checkbox/CheckboxSelectAll.tsx +0 -34
  342. package/src/Inputs/PasswordInput/PasswordInput.module.css +0 -111
  343. package/src/Inputs/PasswordInput/PasswordInput.tsx +0 -229
  344. package/src/Inputs/Select/Select.module.css +0 -138
  345. package/src/Inputs/Select/Select.tsx +0 -136
  346. package/src/Inputs/Switch/Switch.module.css +0 -119
  347. package/src/Inputs/Switch/Switch.tsx +0 -195
  348. package/src/Inputs/TextAreaInput/TextAreaInput.module.css +0 -65
  349. package/src/Inputs/TextAreaInput/TextAreaInput.tsx +0 -97
  350. package/src/Inputs/TextInput/TextInput.module.css +0 -112
  351. package/src/Inputs/TextInput/TextInput.tsx +0 -142
  352. package/src/Inputs/ThemeToggle/ThemeToggleListItem.tsx +0 -80
  353. package/src/Inputs/ThemeToggle/_index.ts +0 -1
  354. package/src/Layout/Dialog/Dialog.module.css +0 -15
  355. package/src/Layout/Dialog/Dialog.tsx +0 -115
  356. package/src/Layout/PageLayout/PageLayout.module.css +0 -20
  357. package/src/Layout/PageLayout/PageLayout.tsx +0 -79
  358. package/src/Layout/PageLayoutPagination/PageLayoutPagination.module.css +0 -5
  359. package/src/Layout/PageLayoutPagination/PageLayoutPagination.tsx +0 -40
  360. package/src/Layout/PageLayoutTabs/PageLayoutTabs.module.css +0 -3
  361. package/src/Layout/PageLayoutTabs/PageLayoutTabs.tsx +0 -62
  362. package/src/Layout/Popover/Popover.module.css +0 -9
  363. package/src/Layout/Popover/Popover.tsx +0 -145
  364. package/src/Layout/SectionWrapper/SectionWrapper.module.css +0 -31
  365. package/src/Layout/SectionWrapper/SectionWrapper.tsx +0 -62
  366. package/src/Layout/Sidebar/Sidebar.module.css +0 -17
  367. package/src/Layout/Sidebar/Sidebar.tsx +0 -39
  368. package/src/Layout/Sidebar/SidebarBody/SidebarBody.module.css +0 -31
  369. package/src/Layout/Sidebar/SidebarBody/SidebarBody.tsx +0 -18
  370. package/src/Layout/Sidebar/SidebarDrawer/SidebarDrawer.module.css +0 -20
  371. package/src/Layout/Sidebar/SidebarDrawer/SidebarDrawer.tsx +0 -19
  372. package/src/Layout/Sidebar/SidebarFooter/SidebarFooter.module.css +0 -35
  373. package/src/Layout/Sidebar/SidebarFooter/SidebarFooter.tsx +0 -19
  374. package/src/Layout/Sidebar/SidebarHeader/SidebarHeader.tsx +0 -14
  375. package/src/Layout/Sidebar/SidebarViewport/SidebarViewport.module.css +0 -12
  376. package/src/Layout/Sidebar/SidebarViewport/SidebarViewport.tsx +0 -11
  377. package/src/Layout/Table/Table.module.css +0 -46
  378. package/src/Layout/Table/Table.tsx +0 -222
  379. package/src/Layout/Table/TableFooter.tsx +0 -4
  380. package/src/Layout/Table/TableHeader.tsx +0 -4
  381. package/src/Layout/Table/tableUtils.ts +0 -142
  382. package/src/Layout/Table/types.ts +0 -48
  383. package/src/Misc/Cursor/Cursor.module.css +0 -31
  384. package/src/Misc/Cursor/Cursor.tsx +0 -77
  385. package/src/Misc/Logos.tsx +0 -230
  386. package/src/Misc/PoweredByBanner/PoweredByBanner.module.css +0 -20
  387. package/src/Misc/PoweredByBanner/PoweredByBanner.tsx +0 -17
  388. package/src/Misc/Ripple/Ripple.module.css +0 -25
  389. package/src/Misc/Ripple/Ripple.tsx +0 -126
  390. package/src/Misc/Spinner/Spinner.module.css +0 -38
  391. package/src/Misc/Spinner/Spinner.tsx +0 -36
  392. package/src/Misc/TransitionAnimation/TransitionAnimation.module.css +0 -131
  393. package/src/Misc/TransitionAnimation/TransitionAnimation.tsx +0 -166
  394. package/src/Navigation/Breadcrumbs/Breadcrumbs.module.css +0 -22
  395. package/src/Navigation/Breadcrumbs/Breadcrumbs.tsx +0 -127
  396. package/src/Navigation/Breadcrumbs/BreadcrumbsItem.tsx +0 -31
  397. package/src/Navigation/Breadcrumbs/useBreadcrumbs.tsx +0 -74
  398. package/src/Navigation/Pagination/Pagination.module.css +0 -41
  399. package/src/Navigation/Pagination/Pagination.tsx +0 -187
  400. package/src/Navigation/Pagination/PaginationItem.tsx +0 -28
  401. package/src/Navigation/Pagination/usePagination.tsx +0 -65
  402. package/src/Navigation/Tabs/Tab/Tab.module.css +0 -43
  403. package/src/Navigation/Tabs/Tab/Tab.tsx +0 -155
  404. package/src/Navigation/Tabs/Tabs.tsx +0 -37
  405. package/src/Navigation/Tabs/TabsBar/TabsBar.module.css +0 -47
  406. package/src/Navigation/Tabs/TabsBar/TabsBar.tsx +0 -92
  407. package/src/Typography/ClampedText/ClampedText.module.css +0 -5
  408. package/src/Typography/ClampedText/ClampedText.tsx +0 -77
  409. package/src/Typography/CopyableText/CopyableText.module.css +0 -21
  410. package/src/Typography/CopyableText/CopyableText.tsx +0 -120
  411. package/src/Typography/PageTitle/PageTitle.module.css +0 -47
  412. package/src/Typography/PageTitle/PageTitle.tsx +0 -35
  413. package/src/declaration.d.ts +0 -4
  414. package/tsconfig.json +0 -32
  415. /package/{src/Cards/CollectionItemCard/_index.ts → dist/Cards/CollectionItemCard/_index.d.ts} +0 -0
  416. /package/{src/Cards/_index.ts → dist/Cards/_index.d.ts} +0 -0
  417. /package/{src/Display/Accordion/_index.ts → dist/Display/Accordion/_index.d.ts} +0 -0
  418. /package/{src/Display/Kbd/_index.ts → dist/Display/Kbd/_index.d.ts} +0 -0
  419. /package/{src/Display/Toast/_index.ts → dist/Display/Toast/_index.d.ts} +0 -0
  420. /package/{src/Display/_index.ts → dist/Display/_index.d.ts} +0 -0
  421. /package/{src/Forms/_index.ts → dist/Forms/_index.d.ts} +0 -0
  422. /package/{src/Inputs/Checkbox/_index.ts → dist/Inputs/Checkbox/_index.d.ts} +0 -0
  423. /package/{src/Inputs/_index.ts → dist/Inputs/_index.d.ts} +0 -0
  424. /package/{src/Layout/Sidebar/_index.ts → dist/Layout/Sidebar/_index.d.ts} +0 -0
  425. /package/{src/Layout/Table/_index.ts → dist/Layout/Table/_index.d.ts} +0 -0
  426. /package/{src/Layout/_index.ts → dist/Layout/_index.d.ts} +0 -0
  427. /package/{src/Misc/_index.ts → dist/Misc/_index.d.ts} +0 -0
  428. /package/{src/Navigation/Breadcrumbs/_index.ts → dist/Navigation/Breadcrumbs/_index.d.ts} +0 -0
  429. /package/{src/Navigation/Pagination/_index.ts → dist/Navigation/Pagination/_index.d.ts} +0 -0
  430. /package/{src/Navigation/Tabs/_index.ts → dist/Navigation/Tabs/_index.d.ts} +0 -0
  431. /package/{src/Navigation/_index.ts → dist/Navigation/_index.d.ts} +0 -0
  432. /package/{src/Typography/_index.ts → dist/Typography/_index.d.ts} +0 -0
  433. /package/{src/index.ts → dist/index.d.ts} +0 -0
@@ -1,115 +0,0 @@
1
- "use client";
2
-
3
- import {
4
- type ComponentProps,
5
- type ReactNode,
6
- useEffect,
7
- useRef,
8
- useState,
9
- } from "react";
10
- import ReactDOM from "react-dom";
11
- import styles from "./Dialog.module.css";
12
- import { cn } from "@studiocubics/utils";
13
-
14
- export type CloseReason = "backdropClick" | "escapeKeyDown";
15
-
16
- type OmittedProps = "onClose" | "onCancel";
17
-
18
- export interface DialogProps
19
- extends Omit<ComponentProps<"dialog">, OmittedProps> {
20
- open: boolean;
21
- onClose: (event: Event | MouseEvent, reason: CloseReason) => void;
22
- children?: ReactNode;
23
- fullWidth?: boolean;
24
- fullScreen?: boolean;
25
- disablePortal?: boolean;
26
- }
27
-
28
- export function Dialog({
29
- open,
30
- onClose,
31
- children,
32
- fullWidth = false,
33
- fullScreen = false,
34
- disablePortal = false,
35
- className = "",
36
- ...rest
37
- }: DialogProps) {
38
- const dialogRef = useRef<HTMLDialogElement>(null);
39
- const [mounted, setMounted] = useState(false);
40
- // Only mark as mounted on client
41
- useEffect(() => {
42
- setMounted(true);
43
- }, []);
44
-
45
- // Show or close dialog using native API
46
- useEffect(() => {
47
- if (!mounted) return;
48
-
49
- const dialog = dialogRef.current;
50
- if (!dialog) return;
51
-
52
- if (open && !dialog.open) {
53
- dialog.showModal();
54
- } else if (!open && dialog.open) {
55
- dialog.close();
56
- }
57
- }, [open, mounted]);
58
-
59
- // Close handlers
60
- useEffect(() => {
61
- if (!mounted) return;
62
-
63
- const dialog = dialogRef.current;
64
- if (!dialog) return;
65
-
66
- function handleCancel(e: Event) {
67
- e.preventDefault();
68
- onClose(e, "escapeKeyDown");
69
- }
70
-
71
- function handleClick(e: MouseEvent) {
72
- if (!dialog) return;
73
- const rect = dialog.getBoundingClientRect();
74
- const isInDialog =
75
- rect.top <= e.clientY &&
76
- e.clientY <= rect.top + rect.height &&
77
- rect.left <= e.clientX &&
78
- e.clientX <= rect.left + rect.width;
79
-
80
- if (!isInDialog) {
81
- onClose(e, "backdropClick");
82
- }
83
- }
84
-
85
- dialog.addEventListener("cancel", handleCancel);
86
- dialog.addEventListener("click", handleClick);
87
-
88
- return () => {
89
- dialog.removeEventListener("cancel", handleCancel);
90
- dialog.removeEventListener("click", handleClick);
91
- };
92
- }, [onClose, mounted]);
93
-
94
- const dialogContent = (
95
- <dialog
96
- {...rest}
97
- ref={dialogRef}
98
- style={{
99
- width: fullWidth || fullScreen ? "100%" : undefined,
100
- height: fullScreen ? "100%" : undefined,
101
- }}
102
- className={cn(className, styles.root)}
103
- >
104
- {children}
105
- </dialog>
106
- );
107
-
108
- // Only render portal on client
109
- if (!mounted) return null;
110
- if (!open) return null;
111
-
112
- if (disablePortal) return dialogContent;
113
-
114
- return ReactDOM.createPortal(dialogContent, document.body);
115
- }
@@ -1,20 +0,0 @@
1
- .root {
2
- display: flex;
3
- flex-direction: column;
4
- height: 100%;
5
- overflow: hidden;
6
- }
7
- .titleBar {
8
- padding-inline: var(--spacing-gap-3);
9
- }
10
- .body {
11
- flex: 1;
12
- overflow: hidden auto;
13
- padding-block: var(--spacing-gap-2);
14
- }
15
- .footer {
16
- padding-top: var(--spacing-gap-2);
17
- padding-bottom: 3dvh;
18
- display: flex;
19
- justify-content: center;
20
- }
@@ -1,79 +0,0 @@
1
- import styles from "./PageLayout.module.css";
2
- import type { ComponentProps, ElementType, ReactNode } from "react";
3
- import { cn } from "@studiocubics/utils";
4
- import type {
5
- PolymorphicComponentProps,
6
- PolymorphicComponentType,
7
- } from "@studiocubics/types";
8
- import {
9
- PageTitle,
10
- type PageTitleProps,
11
- } from "../../Typography/PageTitle/PageTitle";
12
-
13
- export interface PageLayoutBaseProps extends PageTitleProps {
14
- children: ReactNode;
15
- titleBar?: ReactNode;
16
- footer?: ReactNode;
17
- slotProps?: {
18
- root?: ComponentProps<"main">;
19
- body?: ComponentProps<"div">;
20
- footer?: ComponentProps<"div">;
21
- titleBar?: ComponentProps<"div">;
22
- };
23
- }
24
- const defaultElement = "div";
25
- type DefaultElement = typeof defaultElement;
26
-
27
- export type PageLayoutProps<C extends ElementType = DefaultElement> =
28
- PolymorphicComponentProps<C, PageLayoutBaseProps>;
29
-
30
- function PageLayoutBase(props: PageLayoutProps) {
31
- const { as, children, titleBar, footer, slotProps = {}, ...rest } = props;
32
- const Component = (as || defaultElement) as ElementType;
33
- return (
34
- <Component
35
- {...slotProps.root}
36
- className={cn(styles.root, slotProps.root?.className)}
37
- >
38
- <PageTitle {...rest} />
39
- {titleBar && (
40
- <div
41
- {...slotProps.titleBar}
42
- className={cn(styles.titleBar, slotProps.titleBar?.className)}
43
- >
44
- {titleBar}
45
- </div>
46
- )}
47
-
48
- <div
49
- {...slotProps.body}
50
- className={cn(styles.body, slotProps.body?.className)}
51
- >
52
- {children}
53
- </div>
54
- {footer && (
55
- <div
56
- {...slotProps.footer}
57
- className={cn(styles.footer, slotProps.footer?.className)}
58
- >
59
- {footer}
60
- </div>
61
- )}
62
- </Component>
63
- );
64
- }
65
- PageLayoutBase.displayName = "PageLayout";
66
-
67
- /**
68
- * A polymorphic PageLayout component.
69
- *
70
- * By default it renders a `<main>`, but any element can be used via the `as` prop:
71
- *
72
- * ```tsx
73
- * <PageLayout as="a" href="/docs">Read docs</PageLayout>
74
- * ```
75
- */
76
- export const PageLayout = PageLayoutBase as PolymorphicComponentType<
77
- PageLayoutBaseProps,
78
- DefaultElement
79
- >;
@@ -1,5 +0,0 @@
1
- .list {
2
- display: flex;
3
- flex-direction: column;
4
- gap: var(--spacing-gap);
5
- }
@@ -1,40 +0,0 @@
1
- import { type ReactNode, Suspense } from "react";
2
- import { PageLayout, type PageLayoutProps } from "../PageLayout/PageLayout";
3
- import styles from "./PageLayoutPagination.module.css";
4
- import { Skeleton } from "../../Display/Skeleton/Skeleton";
5
-
6
- export interface PageLayoutPaginationProps {
7
- skeletonHeight?: number;
8
- paginationComponent?: ReactNode;
9
- }
10
-
11
- export function PageLayoutPagination(
12
- props: PageLayoutPaginationProps & Omit<PageLayoutProps, "footer">,
13
- ) {
14
- const {
15
- skeletonHeight = 107,
16
- paginationComponent,
17
- children,
18
- ...rest
19
- } = props;
20
- return (
21
- <PageLayout
22
- footer={
23
- <Suspense fallback={<Skeleton height={32} />}>
24
- {paginationComponent}
25
- </Suspense>
26
- }
27
- {...rest}
28
- >
29
- <div className={styles.list}>
30
- <Suspense
31
- fallback={Array.from({ length: 3 }).map((_, i) => (
32
- <Skeleton key={i} height={skeletonHeight} />
33
- ))}
34
- >
35
- {children}
36
- </Suspense>
37
- </div>
38
- </PageLayout>
39
- );
40
- }
@@ -1,3 +0,0 @@
1
- .body {
2
- padding-inline: var(--spacing-gap-3);
3
- }
@@ -1,62 +0,0 @@
1
- "use client";
2
-
3
- import { type PageTitleProps } from "../../Typography/PageTitle/PageTitle";
4
- import type { ComponentProps, ElementType, ReactNode } from "react";
5
- import { Tabs } from "../../Navigation/Tabs/Tabs";
6
- import { TabsBar } from "../../Navigation/Tabs/TabsBar/TabsBar";
7
- import { Tab, type TabProps } from "../../Navigation/Tabs/Tab/Tab";
8
- import { PageLayout, type PageLayoutProps } from "../PageLayout/PageLayout";
9
- import { cn } from "@studiocubics/utils";
10
- import styles from "./PageLayoutTabs.module.css";
11
-
12
- export interface PageLayoutTabsProps extends PageTitleProps {
13
- children: ReactNode;
14
- menuItems?: TabProps[];
15
- LinkComponent?: ElementType<ComponentProps<any>>;
16
- selectedIndex?: number;
17
- slotProps?: PageLayoutProps["slotProps"] & {
18
- tab?: TabProps;
19
- };
20
- }
21
-
22
- export function PageLayoutTabs(props: PageLayoutTabsProps) {
23
- const {
24
- children,
25
- menuItems = [],
26
- slotProps = {},
27
- selectedIndex = 0,
28
- LinkComponent = "a",
29
- ...rest
30
- } = props;
31
-
32
- return (
33
- <PageLayout
34
- {...rest}
35
- slotProps={{
36
- ...slotProps,
37
- body: {
38
- ...slotProps.body,
39
- className: cn(slotProps.body?.className, styles.body),
40
- },
41
- }}
42
- titleBar={
43
- <Tabs>
44
- <TabsBar>
45
- {menuItems.map((mi, i) => (
46
- <Tab
47
- key={i}
48
- {...slotProps.tab}
49
- as={LinkComponent}
50
- selected={i == selectedIndex}
51
- {...mi}
52
- />
53
- ))}
54
- </TabsBar>
55
- </Tabs>
56
- }
57
- noBorders
58
- >
59
- {children}
60
- </PageLayout>
61
- );
62
- }
@@ -1,9 +0,0 @@
1
- .root {
2
- position: absolute;
3
- background: none;
4
- border: none;
5
- }
6
- .root.open::backdrop {
7
- /* background-color: red; */
8
- cursor: initial;
9
- }
@@ -1,145 +0,0 @@
1
- "use client";
2
-
3
- import { type ReactNode, useRef, useEffect, type ComponentProps } from "react";
4
- import styles from "./Popover.module.css";
5
- import { cn } from "@studiocubics/utils";
6
-
7
- export interface PositionType {
8
- vertical: "top" | "center" | "bottom";
9
- horizontal: "left" | "center" | "right";
10
- }
11
-
12
- export interface PopoverProps extends ComponentProps<"div"> {
13
- children: ReactNode;
14
- anchorEl: HTMLElement | null;
15
- open: boolean;
16
- onClose: () => void;
17
- anchorPosition?: PositionType;
18
- transformOrigin?: PositionType;
19
- }
20
-
21
- export function Popover({
22
- children,
23
- anchorEl,
24
- open,
25
- className,
26
- onClose,
27
- anchorPosition = { vertical: "bottom", horizontal: "center" },
28
- transformOrigin = { vertical: "top", horizontal: "left" },
29
- ...rest
30
- }: PopoverProps) {
31
- const popoverRef = useRef<HTMLDivElement>(null);
32
-
33
- // Sync controlled `open` state with native API
34
- useEffect(() => {
35
- const popover = popoverRef.current;
36
- if (!popover) return;
37
-
38
- if (open && !popover.matches(":popover-open")) {
39
- popover.showPopover();
40
- } else if (!open && popover.matches(":popover-open")) {
41
- popover.hidePopover();
42
- }
43
- }, [open]);
44
-
45
- // Handle outside click + escape
46
- useEffect(() => {
47
- const popover = popoverRef.current;
48
- if (!popover) return;
49
-
50
- const handleToggle = () => {
51
- if (!popover.matches(":popover-open")) {
52
- onClose();
53
- }
54
- };
55
-
56
- popover.addEventListener("toggle", handleToggle);
57
- return () => {
58
- popover.removeEventListener("toggle", handleToggle);
59
- };
60
- }, [onClose]);
61
-
62
- // JS positioning
63
- useEffect(() => {
64
- const popover = popoverRef.current;
65
- if (!popover || !anchorEl || !open) return;
66
-
67
- const anchorRect = anchorEl.getBoundingClientRect();
68
- const popoverRect = popover.getBoundingClientRect();
69
- const margin = 8;
70
-
71
- let top = 0;
72
- let left = 0;
73
-
74
- // Compute anchor-based position
75
- switch (anchorPosition.vertical) {
76
- case "top":
77
- top = anchorRect.top;
78
- break;
79
- case "center":
80
- top = anchorRect.top + anchorRect.height / 2;
81
- break;
82
- case "bottom":
83
- top = anchorRect.bottom;
84
- break;
85
- }
86
-
87
- switch (anchorPosition.horizontal) {
88
- case "left":
89
- left = anchorRect.left;
90
- break;
91
- case "center":
92
- left = anchorRect.left + anchorRect.width / 2;
93
- break;
94
- case "right":
95
- left = anchorRect.right;
96
- break;
97
- }
98
-
99
- // Apply transform origin
100
- switch (transformOrigin.vertical) {
101
- case "center":
102
- top -= popoverRect.height / 2;
103
- break;
104
- case "bottom":
105
- top -= popoverRect.height;
106
- break;
107
- // top -> no change
108
- }
109
-
110
- switch (transformOrigin.horizontal) {
111
- case "center":
112
- left -= popoverRect.width / 2;
113
- break;
114
- case "right":
115
- left -= popoverRect.width;
116
- break;
117
- // left -> no change
118
- }
119
-
120
- // Clamp so the popover stays fully in viewport
121
- const viewportWidth = document.documentElement.clientWidth;
122
- const viewportHeight = document.documentElement.clientHeight;
123
-
124
- const maxLeft = viewportWidth - popoverRect.width - margin;
125
- const maxTop = viewportHeight - popoverRect.height - margin;
126
-
127
- left = Math.min(Math.max(left, margin), maxLeft);
128
- top = Math.min(Math.max(top, margin), maxTop);
129
-
130
- // Apply scroll offset
131
- popover.style.top = `${top + window.scrollY}px`;
132
- popover.style.left = `${left + window.scrollX}px`;
133
- }, [open, anchorEl, anchorPosition, transformOrigin]);
134
-
135
- return (
136
- <div
137
- {...rest}
138
- className={cn(styles.root, className, open ? styles.open : "")}
139
- ref={popoverRef}
140
- popover="auto"
141
- >
142
- {children}
143
- </div>
144
- );
145
- }
@@ -1,31 +0,0 @@
1
- .root {
2
- display: grid;
3
- grid-template-columns: 1fr;
4
- padding-inline: var(--spacing-gap-4);
5
- padding-block: var(--spacing-gap-3);
6
- gap: var(--spacing-gap-2);
7
- }
8
- .header {
9
- /* outline: 1px solid red; */
10
- & > h4 {
11
- font-size: 1em;
12
- }
13
- & > p {
14
- font-size: var(--fs-body2);
15
- color: var(--color-on-background-faint);
16
- }
17
- }
18
- .root:not(.noBorders) {
19
- border-top: 1px solid var(--color-outline);
20
- }
21
- .content {
22
- display: flex;
23
- flex-direction: column;
24
- font-size: var(--fs-body2);
25
- container-type: inline-size;
26
- }
27
- @container (min-width:600px) {
28
- .root {
29
- grid-template-columns: 0.4fr 1fr;
30
- }
31
- }
@@ -1,62 +0,0 @@
1
- import type { ComponentProps, ReactNode } from "react";
2
- import styles from "./SectionWrapper.module.css";
3
- import { cn, cssSafeString } from "@studiocubics/utils";
4
-
5
- export interface SectionWrapperProps
6
- extends Omit<ComponentProps<"section">, "title"> {
7
- title: ReactNode;
8
- subtitle?: ReactNode;
9
- noBorders?: boolean;
10
- containerClassname?: string;
11
- slotProps?: {
12
- header?: ComponentProps<"div">;
13
- title?: ComponentProps<"h4">;
14
- subtitle?: ComponentProps<"p">;
15
- content?: ComponentProps<"div">;
16
- };
17
- }
18
- export function SectionWrapper(props: SectionWrapperProps) {
19
- const {
20
- title,
21
- subtitle,
22
- children,
23
- noBorders,
24
- slotProps = {},
25
- containerClassname,
26
- className,
27
- ...rest
28
- } = props;
29
- return (
30
- <section
31
- className={cn(
32
- containerClassname,
33
- styles.root,
34
- noBorders ? styles.noBorders : ""
35
- )}
36
- id={typeof title == "string" ? cssSafeString(title) : undefined}
37
- {...rest}
38
- >
39
- <div
40
- {...slotProps.header}
41
- className={cn(styles.header, slotProps.header?.className)}
42
- >
43
- {typeof title == "string" ? (
44
- <h4 {...slotProps.title}>{title}</h4>
45
- ) : (
46
- title
47
- )}
48
- {subtitle && typeof subtitle == "string" ? (
49
- <p {...slotProps.subtitle}>{subtitle}</p>
50
- ) : (
51
- subtitle
52
- )}
53
- </div>
54
- <div
55
- {...slotProps.content}
56
- className={cn(styles.content, slotProps.content?.className, className)}
57
- >
58
- {children}
59
- </div>
60
- </section>
61
- );
62
- }
@@ -1,17 +0,0 @@
1
- .root {
2
- --sidebar-closed-width: 4rem;
3
- --sidebar-open-width: 20rem;
4
- --sidebar-body-height: 65dvh;
5
- --sidebar-header-height: 4.875rem;
6
- --sidebar-color-surface: var(--color-surface-alpha);
7
- display: flex;
8
- height: 100%;
9
- flex-direction: column;
10
- gap: var(--spacing-gap);
11
- isolation: isolate;
12
- }
13
- @media (min-width: 600px) {
14
- .root {
15
- flex-direction: row;
16
- }
17
- }
@@ -1,39 +0,0 @@
1
- "use client";
2
-
3
- import { createContext, type ReactNode, useContext, useState } from "react";
4
- import styles from "./Sidebar.module.css";
5
-
6
- interface SidebarContextProps {
7
- sidebarOpen: boolean;
8
- toggleSidebar(): void;
9
- }
10
- interface SidebarProps {
11
- children: ReactNode;
12
- defaultOpen?: boolean;
13
- storageKey?: string;
14
- }
15
-
16
- const SidebarContext = createContext<SidebarContextProps | null>(null);
17
-
18
- export function useSidebar() {
19
- const c = useContext(SidebarContext);
20
- if (!c) throw new Error("Components must be wrapped in <SidebarProvider/>");
21
- return c;
22
- }
23
- export const SIDEBAR_COOKIE = "sidebarOpen";
24
- export const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
25
-
26
- export function Sidebar({ children, defaultOpen }: SidebarProps) {
27
- const [sidebarOpen, setSidebarOpen] = useState(defaultOpen ?? false);
28
-
29
- async function toggleSidebar() {
30
- setSidebarOpen((v) => !v);
31
- document.cookie = `${SIDEBAR_COOKIE}=${!sidebarOpen}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
32
- }
33
-
34
- return (
35
- <SidebarContext.Provider value={{ sidebarOpen, toggleSidebar }}>
36
- <div className={styles.root}>{children}</div>
37
- </SidebarContext.Provider>
38
- );
39
- }
@@ -1,31 +0,0 @@
1
- .root {
2
- /* display: none; */
3
- position: fixed;
4
- left: -100%;
5
- top: var(--sidebar-header-height);
6
- width: var(--sidebar-open-width);
7
- background-color: var(--color-surface-alpha);
8
- backdrop-filter: var(--backdrop-blur);
9
- height: var(--sidebar-body-height);
10
- transition: left var(--transition-time) var(--transition-tf);
11
- overflow-x: hidden;
12
- }
13
- .open {
14
- left: 0;
15
- overflow-x: auto;
16
- }
17
- @media (min-width: 600px) {
18
- .root {
19
- flex: 1;
20
- left: 0;
21
- position: relative;
22
- height: unset;
23
- width: unset;
24
- top: 0;
25
- background-color: transparent;
26
- backdrop-filter: none;
27
- }
28
- .open {
29
- left: 0;
30
- }
31
- }
@@ -1,18 +0,0 @@
1
- "use client";
2
-
3
- import type { ComponentProps } from "react";
4
- import styles from "./SidebarBody.module.css";
5
- import { cn } from "@studiocubics/utils";
6
- import { useSidebar } from "../Sidebar";
7
- export function SidebarBody(props: ComponentProps<"div">) {
8
- const { children, className, ...rest } = props;
9
- const { sidebarOpen } = useSidebar();
10
- return (
11
- <div
12
- className={cn(styles.root, className, sidebarOpen ? styles.open : "")}
13
- {...rest}
14
- >
15
- {children}
16
- </div>
17
- );
18
- }