@saas-ui/react 3.0.0-alpha.3 → 3.0.0-alpha.4

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 (42) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/app-shell/index.cjs +1 -1
  3. package/dist/components/app-shell/index.d.cts +1 -1
  4. package/dist/components/app-shell/index.d.ts +1 -1
  5. package/dist/components/app-shell/index.js +1 -1
  6. package/dist/components/command/index.cjs +1 -1
  7. package/dist/components/command/index.js +1 -1
  8. package/dist/components/empty-state/index.cjs +48 -0
  9. package/dist/components/empty-state/index.d.cts +11 -0
  10. package/dist/components/empty-state/index.d.ts +11 -0
  11. package/dist/components/empty-state/index.js +23 -0
  12. package/dist/components/grid-list/index.cjs +68 -0
  13. package/dist/components/grid-list/index.d.cts +22 -0
  14. package/dist/components/grid-list/index.d.ts +22 -0
  15. package/dist/components/grid-list/index.js +45 -0
  16. package/dist/components/icon-badge/index.cjs +1 -1
  17. package/dist/components/icon-badge/index.d.cts +1 -1
  18. package/dist/components/icon-badge/index.d.ts +1 -1
  19. package/dist/components/icon-badge/index.js +1 -1
  20. package/dist/components/loading-overlay/index.cjs +30 -15
  21. package/dist/components/loading-overlay/index.d.cts +19 -6
  22. package/dist/components/loading-overlay/index.d.ts +19 -6
  23. package/dist/components/loading-overlay/index.js +26 -13
  24. package/dist/components/navbar/index.cjs +20 -12
  25. package/dist/components/navbar/index.d.cts +9 -9
  26. package/dist/components/navbar/index.d.ts +9 -9
  27. package/dist/components/navbar/index.js +17 -9
  28. package/dist/components/persona/index.cjs +52 -15
  29. package/dist/components/persona/index.d.cts +23 -3
  30. package/dist/components/persona/index.d.ts +23 -3
  31. package/dist/components/persona/index.js +42 -7
  32. package/dist/components/sidebar/index.cjs +58 -30
  33. package/dist/components/sidebar/index.d.cts +24 -23
  34. package/dist/components/sidebar/index.d.ts +24 -23
  35. package/dist/components/sidebar/index.js +55 -27
  36. package/dist/components/steps/index.cjs +7 -9
  37. package/dist/components/steps/index.d.cts +2 -2
  38. package/dist/components/steps/index.d.ts +2 -2
  39. package/dist/components/steps/index.js +4 -6
  40. package/dist/index.cjs +11 -11
  41. package/dist/index.js +11 -11
  42. package/package.json +1 -1
@@ -3,7 +3,27 @@ import react__default from 'react';
3
3
  import { HTMLChakraProps, SlotRecipeProps, AvatarRootProps, ImageProps } from '@chakra-ui/react';
4
4
 
5
5
  type Presence = 'online' | 'offline' | 'busy' | 'dnd' | 'away';
6
- interface PersonaRootProps extends HTMLChakraProps<'div'>, SlotRecipeProps<'persona'> {
6
+ interface PresenceConfig {
7
+ label: string;
8
+ color: string;
9
+ }
10
+ type PresenceOptions<P extends string = Presence> = Record<P, PresenceConfig>;
11
+ /**
12
+ * The presence configuration object.
13
+ *
14
+ * Default presence values: online, offline, busy, dnd, away
15
+ *
16
+ * You can overwrite colors in the theme semantic tokens.
17
+ * theme.semanticTokens.colors['presence.online'] = 'cyan.500'
18
+ *
19
+ * Or add a custom presence value
20
+ * theme.semanticTokens.colors['presence.vacay'] = 'blue.500'
21
+ *
22
+ * @see Docs https://saas-ui.dev/docs/components/data-display/persona
23
+ */
24
+ declare const defaultPresenceOptions: PresenceOptions;
25
+
26
+ interface PersonaRootProps extends HTMLChakraProps<'div'>, SlotRecipeProps<'suiPersona'> {
7
27
  /**
8
28
  * Indicates that a person is out of office. Changes the presence badge style.
9
29
  */
@@ -78,7 +98,7 @@ interface PersonaOptions {
78
98
  */
79
99
  hideDetails?: boolean;
80
100
  }
81
- interface PersonaProps extends PersonaOptions, Omit<PersonaAvatarProps$1, 'size'>, PersonaRootProps {
101
+ interface PersonaProps extends PersonaOptions, PersonaAvatarProps$1, PersonaRootProps {
82
102
  }
83
103
  /**
84
104
  * The wrapper component that handles default composition.
@@ -90,4 +110,4 @@ interface PersonaAvatarProps extends Omit<PersonaProps, 'hideDetails' | 'label'
90
110
  }
91
111
  declare const PersonaAvatar: react.ForwardRefExoticComponent<PersonaAvatarProps & react.RefAttributes<HTMLDivElement>>;
92
112
 
93
- export { Persona, PersonaAvatar, type PersonaAvatarProps, type PersonaProps };
113
+ export { Persona, PersonaAvatar, type PersonaAvatarProps, type PersonaProps, type Presence, type PresenceConfig, defaultPresenceOptions };
@@ -8,18 +8,22 @@ import * as React2 from "react";
8
8
  import { forwardRef } from "react";
9
9
  import {
10
10
  Avatar,
11
- chakra,
12
- createSlotRecipeContext
11
+ chakra
13
12
  } from "@chakra-ui/react";
14
13
  import { dataAttr } from "@saas-ui/core/utils";
15
- import { jsx, jsxs } from "react/jsx-runtime";
14
+
15
+ // src/components/persona/persona.context.ts
16
+ import { createSlotRecipeContext } from "@chakra-ui/react";
16
17
  var {
17
18
  useStyles: usePersonaStyles,
18
19
  withProvider,
19
20
  withContext
20
21
  } = createSlotRecipeContext({
21
- key: "persona"
22
+ key: "suiPersona"
22
23
  });
24
+
25
+ // src/components/persona/persona-primitive.tsx
26
+ import { jsx, jsxs } from "react/jsx-runtime";
23
27
  var PersonaRoot = withProvider(
24
28
  forwardRef((props, ref) => {
25
29
  const { outOfOffice, presence, ...rest } = props;
@@ -79,8 +83,14 @@ var PersonaLabel = withContext(
79
83
  "label"
80
84
  );
81
85
  PersonaLabel.displayName = "PersonaLabel";
82
- var PersonaSecondaryLabel = withContext("span", "secondaryLabel");
83
- var PersonaTertiaryLabel = withContext("span", "tertiaryLabel");
86
+ var PersonaSecondaryLabel = withContext(
87
+ "span",
88
+ "secondaryLabel"
89
+ );
90
+ var PersonaTertiaryLabel = withContext(
91
+ "span",
92
+ "tertiaryLabel"
93
+ );
84
94
 
85
95
  // src/components/persona/persona.tsx
86
96
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
@@ -143,7 +153,32 @@ Persona.displayName = "Persona";
143
153
  var PersonaAvatar2 = React2.forwardRef(function PersonaAvatar3(props, ref) {
144
154
  return /* @__PURE__ */ jsx2(Persona, { ref, ...props, hideDetails: true });
145
155
  });
156
+
157
+ // src/components/persona/presence.ts
158
+ var defaultPresenceOptions = {
159
+ online: {
160
+ label: "Online",
161
+ color: "presence.online"
162
+ },
163
+ offline: {
164
+ label: "Offline",
165
+ color: "presence.offline"
166
+ },
167
+ busy: {
168
+ label: "Busy",
169
+ color: "presence.busy"
170
+ },
171
+ dnd: {
172
+ label: "Do-not-disturb",
173
+ color: "presence.dnd"
174
+ },
175
+ away: {
176
+ label: "Away",
177
+ color: "presence.away"
178
+ }
179
+ };
146
180
  export {
147
181
  Persona,
148
- PersonaAvatar2 as PersonaAvatar
182
+ PersonaAvatar2 as PersonaAvatar,
183
+ defaultPresenceOptions
149
184
  };
@@ -19,18 +19,18 @@ var __copyProps = (to, from, except, desc) => {
19
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
20
 
21
21
  // src/components/sidebar/index.ts
22
- var sidebar_exports = {};
23
- __export(sidebar_exports, {
24
- Sidebar: () => namespace_exports,
25
- useSidebar: () => import_sidebar.useSidebar,
22
+ var sidebar_exports2 = {};
23
+ __export(sidebar_exports2, {
24
+ Sidebar: () => sidebar_exports,
25
+ useSidebar: () => import_sidebar2.useSidebar,
26
26
  useSidebarItemStyles: () => useSidebarItemStyles,
27
27
  useSidebarStyles: () => useSidebarStyles
28
28
  });
29
- module.exports = __toCommonJS(sidebar_exports);
29
+ module.exports = __toCommonJS(sidebar_exports2);
30
30
 
31
- // src/components/sidebar/namespace.ts
32
- var namespace_exports = {};
33
- __export(namespace_exports, {
31
+ // src/components/sidebar/sidebar.tsx
32
+ var sidebar_exports = {};
33
+ __export(sidebar_exports, {
34
34
  Backdrop: () => SidebarBackdrop,
35
35
  Body: () => SidebarBody,
36
36
  FlyoutTrigger: () => SidebarFlyoutTrigger,
@@ -49,11 +49,10 @@ __export(namespace_exports, {
49
49
  Track: () => SidebarTrack,
50
50
  Trigger: () => SidebarTrigger
51
51
  });
52
+ var import_sidebar = require("@saas-ui/core/sidebar");
52
53
 
53
- // src/components/sidebar/sidebar.tsx
54
+ // src/components/sidebar/sidebar.context.ts
54
55
  var import_react = require("@chakra-ui/react");
55
- var import_sidebar = require("@saas-ui/core/sidebar");
56
- var import_jsx_runtime = require("react/jsx-runtime");
57
56
  var {
58
57
  withContext,
59
58
  useRecipeResult,
@@ -61,8 +60,18 @@ var {
61
60
  ClassNamesProvider,
62
61
  useStyles: useSidebarStyles
63
62
  } = (0, import_react.createSlotRecipeContext)({
64
- key: "sidebar"
63
+ key: "suiSidebar"
64
+ });
65
+ var {
66
+ withProvider: withItemProvider,
67
+ withContext: withItemContext,
68
+ useStyles: useSidebarItemStyles
69
+ } = (0, import_react.createSlotRecipeContext)({
70
+ key: "suiSidebarNavItem"
65
71
  });
72
+
73
+ // src/components/sidebar/sidebar.tsx
74
+ var import_jsx_runtime = require("react/jsx-runtime");
66
75
  var SidebarProvider = function SidebarProvider2(props) {
67
76
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_sidebar.Sidebar.Provider, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RecipeProvider, { ...props, children: props.children }) });
68
77
  };
@@ -78,21 +87,35 @@ var SidebarRoot = withContext(
78
87
  import_sidebar.Sidebar.Root,
79
88
  "root"
80
89
  );
81
- var SidebarTrigger = withContext(import_sidebar.Sidebar.Trigger, "trigger", {
82
- forwardAsChild: true
83
- });
90
+ var SidebarTrigger = withContext(
91
+ import_sidebar.Sidebar.Trigger,
92
+ "trigger",
93
+ {
94
+ forwardAsChild: true
95
+ }
96
+ );
84
97
  var SidebarFlyoutTrigger = withContext(import_sidebar.Sidebar.FlyoutTrigger, "flyoutTrigger", {
85
98
  forwardAsChild: true
86
99
  });
87
- var SidebarBackdrop = withContext(import_sidebar.Sidebar.Backdrop, "backdrop", {
88
- forwardAsChild: true
89
- });
90
- var SidebarHeader = withContext(import_sidebar.Sidebar.Header, "header");
100
+ var SidebarBackdrop = withContext(
101
+ import_sidebar.Sidebar.Backdrop,
102
+ "backdrop",
103
+ {
104
+ forwardAsChild: true
105
+ }
106
+ );
107
+ var SidebarHeader = withContext(
108
+ import_sidebar.Sidebar.Header,
109
+ "header"
110
+ );
91
111
  var SidebarBody = withContext(
92
112
  import_sidebar.Sidebar.Body,
93
113
  "body"
94
114
  );
95
- var SidebarFooter = withContext(import_sidebar.Sidebar.Footer, "footer");
115
+ var SidebarFooter = withContext(
116
+ import_sidebar.Sidebar.Footer,
117
+ "footer"
118
+ );
96
119
  var SidebarTrack = withContext(
97
120
  import_sidebar.Sidebar.Track,
98
121
  "track",
@@ -109,22 +132,27 @@ var SidebarGroup = withContext(
109
132
  }
110
133
  }
111
134
  );
112
- var SidebarGroupHeader = withContext(import_sidebar.Sidebar.GroupHeader, "groupHeader");
135
+ var SidebarGroupHeader = withContext(
136
+ import_sidebar.Sidebar.GroupHeader,
137
+ "groupHeader"
138
+ );
113
139
  var SidebarGroupTitle = withContext(import_sidebar.Sidebar.GroupTitle, "groupTitle");
114
140
  var SidebarGroupEndElement = withContext(import_sidebar.Sidebar.GroupEndElement, "groupEndElement");
115
- var SidebarGroupContent = withContext(import_sidebar.Sidebar.GroupContent, "groupContent");
116
- var {
117
- withProvider: withItemProvider,
118
- withContext: withItemContext,
119
- useStyles: useSidebarItemStyles
120
- } = (0, import_react.createSlotRecipeContext)({
121
- key: "sidebarNavItem"
122
- });
123
- var SidebarNavItem = withItemProvider(import_sidebar.Sidebar.NavItem, "item");
141
+ var SidebarGroupContent = withContext(
142
+ import_sidebar.Sidebar.GroupContent,
143
+ "groupContent"
144
+ );
145
+ var SidebarNavItem = withItemProvider(
146
+ import_sidebar.Sidebar.NavItem,
147
+ "item"
148
+ );
124
149
  var SidebarNavButton = withItemContext(import_sidebar.Sidebar.NavButton, "button", {
125
150
  forwardAsChild: true
126
151
  });
127
152
  var SidebarNavItemEndElement = withItemContext(import_sidebar.Sidebar.NavItemEndElement, "endElement");
153
+
154
+ // src/components/sidebar/index.ts
155
+ var import_sidebar2 = require("@saas-ui/core/sidebar");
128
156
  // Annotate the CommonJS export names for ESM import in node:
129
157
  0 && (module.exports = {
130
158
  Sidebar,