@saas-ui/react 3.0.0-alpha.1 → 3.0.0-alpha.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 (237) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/app-shell/index.d.cts +1 -1
  3. package/dist/components/app-shell/index.d.ts +1 -1
  4. package/dist/components/navbar/index.d.cts +3 -3
  5. package/dist/components/navbar/index.d.ts +3 -3
  6. package/dist/components/persona/index.d.cts +1 -1
  7. package/dist/components/persona/index.d.ts +1 -1
  8. package/dist/components/sidebar/index.d.cts +12 -12
  9. package/dist/components/sidebar/index.d.ts +12 -12
  10. package/dist/index.cjs +2 -12
  11. package/dist/index.js +2 -12
  12. package/package.json +4 -6
  13. package/src/components/app-shell/app-shell.recipe.ts +0 -52
  14. package/src/components/app-shell/app-shell.stories.tsx +0 -51
  15. package/src/components/app-shell/app-shell.tsx +0 -94
  16. package/src/components/app-shell/index.ts +0 -3
  17. package/src/components/breadcrumbs/breadcrumb.stories.tsx +0 -17
  18. package/src/components/breadcrumbs/breadcrumb.tsx +0 -36
  19. package/src/components/breadcrumbs/index.ts +0 -1
  20. package/src/components/breadcrumbs/namespace.ts +0 -8
  21. package/src/components/button/button.recipe.ts +0 -182
  22. package/src/components/button/button.stories.tsx +0 -99
  23. package/src/components/button/button.tsx +0 -55
  24. package/src/components/button/index.ts +0 -2
  25. package/src/components/checkbox/checkbox.tsx +0 -26
  26. package/src/components/checkbox/index.ts +0 -2
  27. package/src/components/close-button/close-button.stories.tsx +0 -12
  28. package/src/components/close-button/close-button.tsx +0 -18
  29. package/src/components/close-button/index.ts +0 -2
  30. package/src/components/command/command.recipe.ts +0 -17
  31. package/src/components/command/command.stories.tsx +0 -47
  32. package/src/components/command/command.tsx +0 -50
  33. package/src/components/command/index.ts +0 -1
  34. package/src/components/dialog/dialog.tsx +0 -67
  35. package/src/components/dialog/index.ts +0 -1
  36. package/src/components/dialog/namespace.ts +0 -18
  37. package/src/components/drawer/drawer.tsx +0 -57
  38. package/src/components/drawer/index.ts +0 -3
  39. package/src/components/drawer/namespace.ts +0 -19
  40. package/src/components/grid-list/grid-list.recipe.ts +0 -113
  41. package/src/components/icon-badge/icon-badge.recipe.ts +0 -57
  42. package/src/components/icon-badge/icon-badge.stories.tsx +0 -38
  43. package/src/components/icon-badge/icon-badge.tsx +0 -59
  44. package/src/components/icon-badge/index.ts +0 -2
  45. package/src/components/icons/create-icon.tsx +0 -41
  46. package/src/components/icons/icons.tsx +0 -119
  47. package/src/components/icons/index.ts +0 -1
  48. package/src/components/input-group/index.ts +0 -1
  49. package/src/components/input-group/input-group.tsx +0 -46
  50. package/src/components/link/index.ts +0 -2
  51. package/src/components/link/link.stories.tsx +0 -17
  52. package/src/components/link/link.test.tsx +0 -33
  53. package/src/components/link/link.tsx +0 -27
  54. package/src/components/loading-overlay/index.ts +0 -1
  55. package/src/components/loading-overlay/loading-overlay.recipe.ts +0 -61
  56. package/src/components/loading-overlay/loading-overlay.stories.tsx +0 -68
  57. package/src/components/loading-overlay/loading-overlay.tsx +0 -54
  58. package/src/components/loading-overlay/namespace.ts +0 -7
  59. package/src/components/navbar/index.ts +0 -1
  60. package/src/components/navbar/namespace.ts +0 -9
  61. package/src/components/navbar/navbar.recipe.ts +0 -109
  62. package/src/components/navbar/navbar.stories.tsx +0 -435
  63. package/src/components/navbar/navbar.test.tsx +0 -49
  64. package/src/components/navbar/navbar.tsx +0 -39
  65. package/src/components/number-input/index.ts +0 -2
  66. package/src/components/number-input/number-input.tsx +0 -41
  67. package/src/components/password-input/index.ts +0 -2
  68. package/src/components/password-input/password-input.tsx +0 -93
  69. package/src/components/persona/index.ts +0 -2
  70. package/src/components/persona/namespace.ts +0 -18
  71. package/src/components/persona/persona-primitive.tsx +0 -220
  72. package/src/components/persona/persona.recipe.ts +0 -94
  73. package/src/components/persona/persona.stories.tsx +0 -101
  74. package/src/components/persona/persona.tsx +0 -142
  75. package/src/components/pin-input/index.ts +0 -2
  76. package/src/components/pin-input/pin-input.tsx +0 -36
  77. package/src/components/radio/index.ts +0 -2
  78. package/src/components/radio/radio.tsx +0 -27
  79. package/src/components/search-input/index.ts +0 -2
  80. package/src/components/search-input/search-input.stories.tsx +0 -63
  81. package/src/components/search-input/search-input.tsx +0 -134
  82. package/src/components/select/index.ts +0 -1
  83. package/src/components/select/namespace.ts +0 -18
  84. package/src/components/select/select.tsx +0 -135
  85. package/src/components/sidebar/index.ts +0 -7
  86. package/src/components/sidebar/namespace.ts +0 -27
  87. package/src/components/sidebar/sidebar-item.recipe.ts +0 -65
  88. package/src/components/sidebar/sidebar.recipe.ts +0 -237
  89. package/src/components/sidebar/sidebar.stories.tsx +0 -903
  90. package/src/components/sidebar/sidebar.tsx +0 -208
  91. package/src/components/spinner/index.ts +0 -2
  92. package/src/components/spinner/spinner.stories.tsx +0 -19
  93. package/src/components/spinner/spinner.tsx +0 -21
  94. package/src/components/steps/index.ts +0 -1
  95. package/src/components/steps/namespace.ts +0 -16
  96. package/src/components/steps/steps.tsx +0 -82
  97. package/src/components/switch/index.ts +0 -3
  98. package/src/components/switch/switch.tsx +0 -39
  99. package/src/compositions/accordion.tsx +0 -47
  100. package/src/compositions/action-bar.tsx +0 -40
  101. package/src/compositions/alert.tsx +0 -51
  102. package/src/compositions/avatar.tsx +0 -74
  103. package/src/compositions/blockquote.tsx +0 -31
  104. package/src/compositions/checkbox-card.tsx +0 -57
  105. package/src/compositions/checkbox.tsx +0 -25
  106. package/src/compositions/clipboard.tsx +0 -107
  107. package/src/compositions/color-mode.tsx +0 -65
  108. package/src/compositions/data-list.tsx +0 -37
  109. package/src/compositions/empty-state.tsx +0 -34
  110. package/src/compositions/field.tsx +0 -33
  111. package/src/compositions/file-button.tsx +0 -166
  112. package/src/compositions/hover-card.tsx +0 -35
  113. package/src/compositions/link-button.tsx +0 -12
  114. package/src/compositions/menu.tsx +0 -108
  115. package/src/compositions/native-select.tsx +0 -57
  116. package/src/compositions/pagination.tsx +0 -207
  117. package/src/compositions/popover.tsx +0 -58
  118. package/src/compositions/progress-circle.tsx +0 -37
  119. package/src/compositions/progress.tsx +0 -40
  120. package/src/compositions/prose.tsx +0 -264
  121. package/src/compositions/provider.tsx +0 -12
  122. package/src/compositions/radio-card.tsx +0 -57
  123. package/src/compositions/radio.tsx +0 -24
  124. package/src/compositions/rating.tsx +0 -27
  125. package/src/compositions/segmented-control.tsx +0 -47
  126. package/src/compositions/skeleton.tsx +0 -44
  127. package/src/compositions/slider.tsx +0 -53
  128. package/src/compositions/stat.tsx +0 -75
  129. package/src/compositions/status.tsx +0 -29
  130. package/src/compositions/stepper-input.tsx +0 -49
  131. package/src/compositions/tag.tsx +0 -39
  132. package/src/compositions/timeline.tsx +0 -17
  133. package/src/compositions/toaster.tsx +0 -43
  134. package/src/compositions/toggle-tip.tsx +0 -62
  135. package/src/compositions/tooltip.tsx +0 -46
  136. package/src/index.ts +0 -7
  137. package/src/preset.ts +0 -9
  138. package/src/provider/index.ts +0 -4
  139. package/src/provider/sui-provider.tsx +0 -34
  140. package/src/provider/use-link.test.tsx +0 -60
  141. package/src/provider/use-link.tsx +0 -13
  142. package/src/styled-system/create-recipe-context.tsx +0 -91
  143. package/src/styled-system/create-slot-recipe-context.tsx +0 -188
  144. package/src/styled-system/empty.ts +0 -7
  145. package/src/styled-system/factory.types.ts +0 -11
  146. package/src/theme/animation-styles.ts +0 -53
  147. package/src/theme/breakpoints.ts +0 -11
  148. package/src/theme/conditions.ts +0 -26
  149. package/src/theme/fluid-font-sizes.ts +0 -65
  150. package/src/theme/global-css.ts +0 -94
  151. package/src/theme/index.ts +0 -72
  152. package/src/theme/layer-styles.ts +0 -116
  153. package/src/theme/recipes/chakra/accordion.ts +0 -145
  154. package/src/theme/recipes/chakra/action-bar.ts +0 -62
  155. package/src/theme/recipes/chakra/alert.ts +0 -157
  156. package/src/theme/recipes/chakra/avatar.ts +0 -141
  157. package/src/theme/recipes/chakra/badge.ts +0 -67
  158. package/src/theme/recipes/chakra/blockquote.ts +0 -83
  159. package/src/theme/recipes/chakra/breadcrumb.ts +0 -94
  160. package/src/theme/recipes/chakra/card.ts +0 -99
  161. package/src/theme/recipes/chakra/checkbox-card.ts +0 -212
  162. package/src/theme/recipes/chakra/checkbox.ts +0 -70
  163. package/src/theme/recipes/chakra/checkmark.ts +0 -83
  164. package/src/theme/recipes/chakra/code.ts +0 -17
  165. package/src/theme/recipes/chakra/collapsible.ts +0 -20
  166. package/src/theme/recipes/chakra/container.ts +0 -26
  167. package/src/theme/recipes/chakra/data-list.ts +0 -80
  168. package/src/theme/recipes/chakra/dialog.ts +0 -225
  169. package/src/theme/recipes/chakra/drawer.ts +0 -201
  170. package/src/theme/recipes/chakra/editable.ts +0 -88
  171. package/src/theme/recipes/chakra/empty-state.ts +0 -88
  172. package/src/theme/recipes/chakra/field.ts +0 -68
  173. package/src/theme/recipes/chakra/fieldset.ts +0 -62
  174. package/src/theme/recipes/chakra/file-upload.ts +0 -96
  175. package/src/theme/recipes/chakra/heading.ts +0 -27
  176. package/src/theme/recipes/chakra/hover-card.ts +0 -68
  177. package/src/theme/recipes/chakra/icon.ts +0 -30
  178. package/src/theme/recipes/chakra/input-addon.ts +0 -40
  179. package/src/theme/recipes/chakra/input.ts +0 -96
  180. package/src/theme/recipes/chakra/kbd.ts +0 -60
  181. package/src/theme/recipes/chakra/link.ts +0 -37
  182. package/src/theme/recipes/chakra/list.ts +0 -67
  183. package/src/theme/recipes/chakra/mark.ts +0 -27
  184. package/src/theme/recipes/chakra/menu.ts +0 -124
  185. package/src/theme/recipes/chakra/native-select.ts +0 -140
  186. package/src/theme/recipes/chakra/number-input.ts +0 -115
  187. package/src/theme/recipes/chakra/pin-input.ts +0 -27
  188. package/src/theme/recipes/chakra/popover.ts +0 -86
  189. package/src/theme/recipes/chakra/progress-circle.ts +0 -94
  190. package/src/theme/recipes/chakra/progress.ts +0 -127
  191. package/src/theme/recipes/chakra/radio-card.ts +0 -220
  192. package/src/theme/recipes/chakra/radio-group.ts +0 -72
  193. package/src/theme/recipes/chakra/radiomark.ts +0 -107
  194. package/src/theme/recipes/chakra/rating-group.ts +0 -94
  195. package/src/theme/recipes/chakra/segment-group.ts +0 -117
  196. package/src/theme/recipes/chakra/select.ts +0 -282
  197. package/src/theme/recipes/chakra/separator.ts +0 -51
  198. package/src/theme/recipes/chakra/skeleton.ts +0 -53
  199. package/src/theme/recipes/chakra/skip-nav-link.ts +0 -34
  200. package/src/theme/recipes/chakra/slider.ts +0 -178
  201. package/src/theme/recipes/chakra/spinner.ts +0 -32
  202. package/src/theme/recipes/chakra/stat.ts +0 -79
  203. package/src/theme/recipes/chakra/status.ts +0 -48
  204. package/src/theme/recipes/chakra/steps.ts +0 -218
  205. package/src/theme/recipes/chakra/switch.ts +0 -167
  206. package/src/theme/recipes/chakra/table.ts +0 -172
  207. package/src/theme/recipes/chakra/tabs.ts +0 -280
  208. package/src/theme/recipes/chakra/tag.ts +0 -131
  209. package/src/theme/recipes/chakra/textarea.ts +0 -88
  210. package/src/theme/recipes/chakra/timeline.ts +0 -138
  211. package/src/theme/recipes/chakra/toast.ts +0 -96
  212. package/src/theme/recipes/chakra/tooltip.ts +0 -40
  213. package/src/theme/recipes.ts +0 -46
  214. package/src/theme/semantic-tokens/colors.ts +0 -403
  215. package/src/theme/semantic-tokens/radii.ts +0 -7
  216. package/src/theme/semantic-tokens/shadows.ts +0 -52
  217. package/src/theme/slot-recipes.ts +0 -104
  218. package/src/theme/text-styles.ts +0 -39
  219. package/src/theme/tokens/animations.ts +0 -8
  220. package/src/theme/tokens/aspect-ratios.ts +0 -10
  221. package/src/theme/tokens/blurs.ts +0 -12
  222. package/src/theme/tokens/borders.ts +0 -9
  223. package/src/theme/tokens/colors.ts +0 -177
  224. package/src/theme/tokens/cursor.ts +0 -12
  225. package/src/theme/tokens/durations.ts +0 -11
  226. package/src/theme/tokens/easings.ts +0 -10
  227. package/src/theme/tokens/font-sizes.ts +0 -20
  228. package/src/theme/tokens/font-weights.ts +0 -13
  229. package/src/theme/tokens/fonts.ts +0 -15
  230. package/src/theme/tokens/keyframes.ts +0 -173
  231. package/src/theme/tokens/letter-spacing.ts +0 -9
  232. package/src/theme/tokens/line-heights.ts +0 -19
  233. package/src/theme/tokens/radius.ts +0 -18
  234. package/src/theme/tokens/sizes.ts +0 -71
  235. package/src/theme/tokens/spacing.ts +0 -38
  236. package/src/theme/tokens/z-indices.ts +0 -34
  237. package/src/theme/utils.ts +0 -46
package/dist/index.cjs CHANGED
@@ -860,11 +860,6 @@ var inputRecipe = (0, import_react14.defineRecipe)({
860
860
  },
861
861
  variants: {
862
862
  size: {
863
- "2xs": {
864
- textStyle: "xs",
865
- px: "2",
866
- "--input-height": "sizes.7"
867
- },
868
863
  xs: {
869
864
  textStyle: "xs",
870
865
  px: "2",
@@ -889,11 +884,6 @@ var inputRecipe = (0, import_react14.defineRecipe)({
889
884
  textStyle: "md",
890
885
  px: "4.5",
891
886
  "--input-height": "sizes.12"
892
- },
893
- "2xl": {
894
- textStyle: "lg",
895
- px: "5",
896
- "--input-height": "sizes.16"
897
887
  }
898
888
  },
899
889
  variant: {
@@ -2147,7 +2137,7 @@ var loadingOverlaySlotRecipe = (0, import_react30.defineSlotRecipe)({
2147
2137
  var import_react31 = require("@chakra-ui/react");
2148
2138
  var navbarSlotRecipe = (0, import_react31.defineSlotRecipe)({
2149
2139
  className: "sui-navbar",
2150
- slots: ["root", "content", "brand", "item"],
2140
+ slots: ["root", "content", "brand", "item", "link"],
2151
2141
  base: {
2152
2142
  root: {
2153
2143
  display: "flex",
@@ -2351,7 +2341,7 @@ var personaSlotRecipe = (0, import_react32.defineSlotRecipe)({
2351
2341
  var import_react33 = require("@chakra-ui/react");
2352
2342
  var sidebarNavItemSlotRecipe = (0, import_react33.defineSlotRecipe)({
2353
2343
  className: "sui-sidebar-nav-item",
2354
- slots: ["item", "button"],
2344
+ slots: ["item", "button", "endElement"],
2355
2345
  base: {
2356
2346
  item: {
2357
2347
  position: "relative"
package/dist/index.js CHANGED
@@ -827,11 +827,6 @@ var inputRecipe = defineRecipe10({
827
827
  },
828
828
  variants: {
829
829
  size: {
830
- "2xs": {
831
- textStyle: "xs",
832
- px: "2",
833
- "--input-height": "sizes.7"
834
- },
835
830
  xs: {
836
831
  textStyle: "xs",
837
832
  px: "2",
@@ -856,11 +851,6 @@ var inputRecipe = defineRecipe10({
856
851
  textStyle: "md",
857
852
  px: "4.5",
858
853
  "--input-height": "sizes.12"
859
- },
860
- "2xl": {
861
- textStyle: "lg",
862
- px: "5",
863
- "--input-height": "sizes.16"
864
854
  }
865
855
  },
866
856
  variant: {
@@ -2114,7 +2104,7 @@ var loadingOverlaySlotRecipe = defineSlotRecipe3({
2114
2104
  import { defineSlotRecipe as defineSlotRecipe4 } from "@chakra-ui/react";
2115
2105
  var navbarSlotRecipe = defineSlotRecipe4({
2116
2106
  className: "sui-navbar",
2117
- slots: ["root", "content", "brand", "item"],
2107
+ slots: ["root", "content", "brand", "item", "link"],
2118
2108
  base: {
2119
2109
  root: {
2120
2110
  display: "flex",
@@ -2318,7 +2308,7 @@ var personaSlotRecipe = defineSlotRecipe5({
2318
2308
  import { defineSlotRecipe as defineSlotRecipe6 } from "@chakra-ui/react";
2319
2309
  var sidebarNavItemSlotRecipe = defineSlotRecipe6({
2320
2310
  className: "sui-sidebar-nav-item",
2321
- slots: ["item", "button"],
2311
+ slots: ["item", "button", "endElement"],
2322
2312
  base: {
2323
2313
  item: {
2324
2314
  position: "relative"
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@saas-ui/react",
3
- "version": "3.0.0-alpha.1",
3
+ "version": "3.0.0-alpha.2",
4
4
  "description": "Saas UI - The React component library for startups.",
5
- "source": "src/index.ts",
6
5
  "type": "module",
7
6
  "exports": {
8
7
  ".": {
@@ -33,8 +32,7 @@
33
32
  "typecheck": "tsc --noEmit"
34
33
  },
35
34
  "files": [
36
- "dist",
37
- "src"
35
+ "dist"
38
36
  ],
39
37
  "sideEffects": false,
40
38
  "publishConfig": {
@@ -65,8 +63,8 @@
65
63
  "url": "https://storybook.saas-ui.dev"
66
64
  },
67
65
  "dependencies": {
68
- "@saas-ui/core": "3.0.0-alpha.1",
69
- "@saas-ui/hooks": "3.0.0-alpha.1"
66
+ "@saas-ui/core": "3.0.0-alpha.2",
67
+ "@saas-ui/hooks": "3.0.0-alpha.2"
70
68
  },
71
69
  "peerDependencies": {
72
70
  "@chakra-ui/react": "^3.0.0",
@@ -1,52 +0,0 @@
1
- import { defineSlotRecipe } from '@chakra-ui/react'
2
-
3
- export const appShellSlotRecipe = defineSlotRecipe({
4
- className: 'sui-app-shell',
5
- slots: ['root', 'content', 'main'],
6
- base: {
7
- root: {
8
- display: 'flex',
9
- flexDirection: 'column',
10
- },
11
- content: {
12
- display: 'flex',
13
- flex: 1,
14
- minWidth: 0,
15
- minHeight: 0,
16
- },
17
- main: {
18
- display: 'flex',
19
- flex: 1,
20
- flexDirection: 'column',
21
- minWidth: 0,
22
- },
23
- },
24
- variants: {
25
- position: {
26
- static: {
27
- root: {
28
- height: '100vh',
29
- },
30
- },
31
- fullscreen: {
32
- root: {
33
- position: 'fixed',
34
- inset: 0,
35
- },
36
- },
37
- },
38
- variant: {
39
- plain: {},
40
- raised: {
41
- main: {
42
- boxShadow: 'xs',
43
- zIndex: 'layer-1',
44
- },
45
- },
46
- },
47
- },
48
- defaultVariants: {
49
- position: 'static',
50
- variant: 'raised',
51
- },
52
- })
@@ -1,51 +0,0 @@
1
- import * as React from 'react'
2
-
3
- import { Box } from '@chakra-ui/react'
4
- import type { Meta } from '@storybook/react'
5
-
6
- import { useAppShellStyles } from './app-shell.tsx'
7
- import { AppShell } from './index.ts'
8
-
9
- export default {
10
- title: 'Components/AppShell',
11
- parameters: {
12
- layout: 'fullscreen',
13
- },
14
- } as Meta
15
-
16
- export const FullscreenVariant = {
17
- render: () => (
18
- <AppShell
19
- header={
20
- <Box height="40px" borderBottomWidth="1px" p="2">
21
- Header
22
- </Box>
23
- }
24
- sidebar={
25
- <Box width="200px" borderRightWidth="1px" p="2">
26
- Sidebar
27
- </Box>
28
- }
29
- aside={
30
- <Box width="200px" borderLeftWidth="1px" p="2">
31
- Aside
32
- </Box>
33
- }
34
- footer={
35
- <Box height="40px" borderTopWidth="1px" p="2">
36
- Footer
37
- </Box>
38
- }
39
- >
40
- <Box p="2">Content</Box>
41
- </AppShell>
42
- ),
43
- }
44
-
45
- function Test() {
46
- const styles = useAppShellStyles()
47
-
48
- console.log(styles)
49
-
50
- return null
51
- }
@@ -1,94 +0,0 @@
1
- 'use client'
2
-
3
- import { forwardRef } from 'react'
4
-
5
- import {
6
- type HTMLChakraProps,
7
- type SlotRecipeProps,
8
- createSlotRecipeContext,
9
- } from '@chakra-ui/react'
10
-
11
- ////////////////////////////////////////////////////////////////////////////////////
12
-
13
- const {
14
- withProvider,
15
- withContext,
16
- useStyles: useAppShellStyles,
17
- } = createSlotRecipeContext({
18
- key: 'appShell',
19
- })
20
-
21
- export { useAppShellStyles }
22
-
23
- export interface AppShellProps extends HTMLChakraProps<'div'> {
24
- /**
25
- * The top header navigation
26
- */
27
- header?: React.ReactNode
28
- /**
29
- * Main sidebar, positioned on the left
30
- */
31
- sidebar?: React.ReactElement
32
- /**
33
- * Secondary sidebar, positioned on the right
34
- */
35
- aside?: React.ReactNode
36
- /**
37
- * The footer
38
- */
39
- footer?: React.ReactNode
40
- /**
41
- * The main content
42
- */
43
- children: React.ReactNode
44
- }
45
-
46
- export interface AppShellRootProps
47
- extends AppShellProps,
48
- SlotRecipeProps<'appShell'> {}
49
-
50
- /**
51
- * The App Shell defines the main structure of your app.
52
- *
53
- * @see Docs https://saas-ui.dev/docs/components/layout/app-shell
54
- */
55
- export const AppShellRoot = withProvider<HTMLDivElement, AppShellRootProps>(
56
- 'div',
57
- 'root',
58
- { forwardAsChild: true },
59
- )
60
-
61
- export interface AppShellContentProps extends HTMLChakraProps<'div'> {}
62
-
63
- export const AppShellContent = withContext<
64
- HTMLDivElement,
65
- AppShellContentProps
66
- >('div', 'content', { forwardAsChild: true })
67
-
68
- export interface AppShellMainProps extends HTMLChakraProps<'div'> {}
69
-
70
- export const AppShellMain = withContext<HTMLDivElement, AppShellMainProps>(
71
- 'div',
72
- 'main',
73
- { forwardAsChild: true },
74
- )
75
-
76
- export const AppShell = forwardRef<HTMLDivElement, AppShellRootProps>(
77
- (props, ref) => {
78
- const { header, sidebar, aside, footer, children, ...rootProps } = props
79
-
80
- return (
81
- <AppShellRoot ref={ref} {...rootProps}>
82
- {header}
83
- <AppShellContent>
84
- {sidebar}
85
- <AppShellMain>{children}</AppShellMain>
86
- {aside}
87
- </AppShellContent>
88
- {footer}
89
- </AppShellRoot>
90
- )
91
- },
92
- )
93
-
94
- AppShell.displayName = 'AppShell'
@@ -1,3 +0,0 @@
1
- export { AppShell } from './app-shell'
2
-
3
- export type { AppShellProps } from './app-shell'
@@ -1,17 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Breadcrumb } from './index.ts'
4
-
5
- export default {
6
- title: 'Components/Breadcrumbs',
7
- component: Breadcrumb.Root,
8
- }
9
-
10
- export const Default = {
11
- args: {
12
- children: [
13
- <Breadcrumb.Link href="/">Home</Breadcrumb.Link>,
14
- <Breadcrumb.CurrentLink>Contact</Breadcrumb.CurrentLink>,
15
- ],
16
- },
17
- }
@@ -1,36 +0,0 @@
1
- import { Children, Fragment, forwardRef, isValidElement } from 'react'
2
-
3
- import { Breadcrumb, type SystemStyleObject } from '@chakra-ui/react'
4
-
5
- export interface BreadcrumbRootProps extends Breadcrumb.RootProps {
6
- separator?: React.ReactNode
7
- separatorGap?: SystemStyleObject['gap']
8
- }
9
-
10
- export const BreadcrumbRoot = forwardRef<HTMLDivElement, BreadcrumbRootProps>(
11
- function BreadcrumbRoot(props, ref) {
12
- const { separator = '/', separatorGap, children, ...rest } = props
13
- const validChildren = Children.toArray(children).filter(isValidElement)
14
- return (
15
- <Breadcrumb.Root ref={ref} {...rest}>
16
- <Breadcrumb.List gap={separatorGap}>
17
- {validChildren.map((child, index) => {
18
- const last = index === validChildren.length - 1
19
- return (
20
- <Fragment key={index}>
21
- <Breadcrumb.Item>{child}</Breadcrumb.Item>
22
- {!last && (
23
- <Breadcrumb.Separator>{separator}</Breadcrumb.Separator>
24
- )}
25
- </Fragment>
26
- )
27
- })}
28
- </Breadcrumb.List>
29
- </Breadcrumb.Root>
30
- )
31
- },
32
- )
33
-
34
- export const BreadcrumbLink = Breadcrumb.Link
35
- export const BreadcrumbCurrentLink = Breadcrumb.CurrentLink
36
- export const BreadcrumbEllipsis = Breadcrumb.Ellipsis
@@ -1 +0,0 @@
1
- export * as Breadcrumb from './namespace.ts'
@@ -1,8 +0,0 @@
1
- export {
2
- BreadcrumbRoot as Root,
3
- BreadcrumbLink as Link,
4
- BreadcrumbCurrentLink as CurrentLink,
5
- BreadcrumbEllipsis as Ellipsis,
6
- } from './breadcrumb.tsx'
7
-
8
- export type { BreadcrumbRootProps } from './breadcrumb.tsx'
@@ -1,182 +0,0 @@
1
- import { defineRecipe } from '@chakra-ui/react'
2
-
3
- export const buttonRecipe = defineRecipe({
4
- className: 'chakra-button',
5
- base: {
6
- display: 'inline-flex',
7
- appearance: 'none',
8
- alignItems: 'center',
9
- justifyContent: 'center',
10
- userSelect: 'none',
11
- position: 'relative',
12
- whiteSpace: 'nowrap',
13
- verticalAlign: 'middle',
14
- cursor: 'pointer',
15
- flexShrink: '0',
16
- outline: '0',
17
- lineHeight: '1.2',
18
- isolation: 'isolate',
19
- fontWeight: 'medium',
20
- transitionProperty: 'common',
21
- transitionDuration: 'moderate',
22
- focusVisibleRing: 'outside',
23
- _disabled: {
24
- layerStyle: 'disabled',
25
- },
26
- _icon: {
27
- fontSize: '1em',
28
- flexShrink: 0,
29
- },
30
- },
31
-
32
- variants: {
33
- size: {
34
- xs: {
35
- gap: '1',
36
- h: '6',
37
- minW: '6',
38
- textStyle: 'xs',
39
- borderRadius: 'sm',
40
- px: '2',
41
- },
42
- sm: {
43
- gap: '2',
44
- h: '7',
45
- minW: '8',
46
- textStyle: 'sm',
47
- borderRadius: 'md',
48
- px: '3',
49
- },
50
- md: {
51
- gap: '2',
52
- h: '8',
53
- minW: '8',
54
- borderRadius: 'md',
55
- textStyle: 'sm',
56
- px: '4',
57
- },
58
- lg: {
59
- gap: '3',
60
- h: '10',
61
- minW: '10',
62
- borderRadius: 'lg',
63
- textStyle: 'md',
64
- px: '5',
65
- },
66
- xl: {
67
- gap: '3',
68
- h: '12',
69
- minW: '12',
70
- borderRadius: 'lg',
71
- textStyle: 'lg',
72
- px: '6',
73
- },
74
- },
75
-
76
- variant: {
77
- solid: {
78
- bg: 'colorPalette.solid',
79
- boxShadow: 'sm',
80
- color: 'colorPalette.contrast',
81
- _hover: {
82
- bg: 'colorPalette.solid/90',
83
- },
84
- _expanded: {
85
- bg: 'colorPalette.solid/90',
86
- },
87
- },
88
-
89
- subtle: {
90
- bg: 'colorPalette.muted',
91
- color: 'colorPalette.fg',
92
- _hover: {
93
- bg: 'colorPalette.subtle',
94
- },
95
- _expanded: {
96
- bg: 'colorPalette.subtle',
97
- },
98
- },
99
-
100
- glass: {
101
- bg: 'colorPalette.solid',
102
- color: 'colorPalette.contrast',
103
- '--btn-shadow': 'shadows.sm',
104
- boxShadow:
105
- '0 0 0 1px rgba(0,0,0,0.4) inset, 0px 2px 0px 0px rgba(255,255,255,0.2) inset, var(--btn-shadow)',
106
- textShadow: '0 1px 2px rgba(0,0,0,0.3)',
107
- _after: {
108
- content: '""',
109
- position: 'absolute',
110
- top: '0',
111
- left: '0',
112
- right: '0',
113
- bottom: '0',
114
- background: 'linear-gradient(180deg, white 40%, rgba(0,0,0,0.2))',
115
- opacity: 0.2,
116
- transitionProperty: 'opacity',
117
- transitionDuration: 'moderate',
118
- pointerEvents: 'none',
119
- },
120
- _hover: {
121
- bg: 'colorPalette.solid',
122
- _after: {
123
- opacity: 0.24,
124
- },
125
- },
126
- _expanded: {
127
- bg: 'colorPalette.solid',
128
- _after: {
129
- opacity: 0.24,
130
- },
131
- },
132
- },
133
-
134
- surface: {
135
- bg: 'colorPalette.surface',
136
- borderWidth: '0.5px',
137
- borderColor: 'colorPalette.emphasized',
138
- color: 'colorPalette.fg',
139
- shadow: 'sm',
140
- shadowColor: 'colorPalette.emphasized',
141
- _hover: {
142
- bg: 'colorPalette.muted',
143
- },
144
- _expanded: {
145
- bg: 'colorPalette.muted',
146
- },
147
- },
148
-
149
- outline: {
150
- borderWidth: '0.5px',
151
- borderColor: 'colorPalette.emphasized',
152
- color: 'colorPalette.fg',
153
- _hover: {
154
- bg: 'colorPalette.muted',
155
- },
156
- _expanded: {
157
- bg: 'colorPalette.muted',
158
- },
159
- },
160
-
161
- ghost: {
162
- color: 'colorPalette.fg',
163
- _hover: {
164
- bg: 'colorPalette.muted',
165
- },
166
- _expanded: {
167
- bg: 'colorPalette.muted',
168
- },
169
- },
170
-
171
- plain: {
172
- color: 'colorPalette.fg',
173
- },
174
- },
175
- },
176
-
177
- defaultVariants: {
178
- size: 'md',
179
- variant: 'solid',
180
- colorPalette: 'gray',
181
- },
182
- })
@@ -1,99 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Box, HStack, Stack } from '@chakra-ui/react'
4
-
5
- import { Button } from './button.tsx'
6
-
7
- export default {
8
- title: 'Components/Button',
9
- component: Button,
10
- }
11
-
12
- export const Default = {
13
- args: {
14
- children: 'Default button',
15
- },
16
- }
17
-
18
- export const Variants = {
19
- render: () => (
20
- <Stack gap="4">
21
- <HStack>
22
- <Button variant="glass" colorPalette="indigo">
23
- Primary
24
- </Button>
25
- <Button variant="surface">Secondary</Button>
26
- </HStack>
27
- <HStack>
28
- <Button variant="solid">Solid</Button>
29
- <Button variant="glass">Glass</Button>
30
- <Button variant="surface">Surface</Button>
31
- <Button variant="outline">Outline</Button>
32
- <Button variant="subtle">Subtle</Button>
33
- <Button variant="ghost">Ghost</Button>
34
- </HStack>
35
- <HStack>
36
- <Button variant="solid" colorPalette="neutral">
37
- Solid
38
- </Button>
39
- <Button variant="glass" colorPalette="neutral">
40
- Glass
41
- </Button>
42
- <Button variant="surface" colorPalette="neutral">
43
- Surface
44
- </Button>
45
- <Button variant="outline" colorPalette="neutral">
46
- Outline
47
- </Button>
48
- <Button variant="subtle" colorPalette="neutral">
49
- Subtle
50
- </Button>
51
- <Button variant="ghost" colorPalette="neutral">
52
- Ghost
53
- </Button>
54
- </HStack>
55
- <HStack>
56
- <Button variant="solid" colorPalette="blue">
57
- Solid
58
- </Button>
59
- <Button variant="glass" colorPalette="blue">
60
- Glass
61
- </Button>
62
- <Button variant="surface" colorPalette="blue">
63
- Surface
64
- </Button>
65
- <Button variant="outline" colorPalette="blue">
66
- Outline
67
- </Button>
68
- <Button variant="subtle" colorPalette="blue">
69
- Subtle
70
- </Button>
71
- <Button variant="ghost" colorPalette="blue">
72
- Ghost
73
- </Button>
74
- </HStack>
75
- </Stack>
76
- ),
77
- }
78
-
79
- export const Sizes = {
80
- render: () => (
81
- <HStack>
82
- <Button size="xs" variant="glass">
83
- XSmall
84
- </Button>
85
- <Button size="sm" variant="glass">
86
- Small
87
- </Button>
88
- <Button size="md" variant="glass">
89
- Medium
90
- </Button>
91
- <Button size="lg" variant="glass">
92
- Large
93
- </Button>
94
- <Button size="xl" variant="glass">
95
- XLarge
96
- </Button>
97
- </HStack>
98
- ),
99
- }