@psnext/design-system 1.0.0

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 (81) hide show
  1. package/README.md +126 -0
  2. package/dist/AiChatPanel.cjs +1603 -0
  3. package/dist/AiChatPanel.cjs.map +1 -0
  4. package/dist/AiChatPanel.js +1526 -0
  5. package/dist/AiChatPanel.js.map +1 -0
  6. package/dist/BodhiLogo.cjs +240 -0
  7. package/dist/BodhiLogo.cjs.map +1 -0
  8. package/dist/BodhiLogo.js +194 -0
  9. package/dist/BodhiLogo.js.map +1 -0
  10. package/dist/Skeleton.cjs +19 -0
  11. package/dist/Skeleton.cjs.map +1 -0
  12. package/dist/Skeleton.js +14 -0
  13. package/dist/Skeleton.js.map +1 -0
  14. package/dist/SustainLogo.cjs +415 -0
  15. package/dist/SustainLogo.cjs.map +1 -0
  16. package/dist/SustainLogo.js +378 -0
  17. package/dist/SustainLogo.js.map +1 -0
  18. package/dist/contexts/index.cjs +60 -0
  19. package/dist/contexts/index.cjs.map +1 -0
  20. package/dist/contexts/index.d.cts +23 -0
  21. package/dist/contexts/index.d.cts.map +1 -0
  22. package/dist/contexts/index.d.ts +23 -0
  23. package/dist/contexts/index.d.ts.map +1 -0
  24. package/dist/contexts/index.js +58 -0
  25. package/dist/contexts/index.js.map +1 -0
  26. package/dist/index.cjs +273 -0
  27. package/dist/index.d.cts +1440 -0
  28. package/dist/index.d.cts.map +1 -0
  29. package/dist/index.d.ts +1440 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +7 -0
  32. package/dist/index2.d.cts +16 -0
  33. package/dist/index2.d.cts.map +1 -0
  34. package/dist/index2.d.ts +16 -0
  35. package/dist/index2.d.ts.map +1 -0
  36. package/dist/layouts/index.cjs +13 -0
  37. package/dist/layouts/index.d.cts +133 -0
  38. package/dist/layouts/index.d.cts.map +1 -0
  39. package/dist/layouts/index.d.ts +133 -0
  40. package/dist/layouts/index.d.ts.map +1 -0
  41. package/dist/layouts/index.js +2 -0
  42. package/dist/layouts.cjs +3245 -0
  43. package/dist/layouts.cjs.map +1 -0
  44. package/dist/layouts.js +3180 -0
  45. package/dist/layouts.js.map +1 -0
  46. package/dist/patterns/index.cjs +7375 -0
  47. package/dist/patterns/index.cjs.map +1 -0
  48. package/dist/patterns/index.d.cts +418 -0
  49. package/dist/patterns/index.d.cts.map +1 -0
  50. package/dist/patterns/index.d.ts +418 -0
  51. package/dist/patterns/index.d.ts.map +1 -0
  52. package/dist/patterns/index.js +7344 -0
  53. package/dist/patterns/index.js.map +1 -0
  54. package/dist/primitives/index.cjs +256 -0
  55. package/dist/primitives/index.d.cts +2 -0
  56. package/dist/primitives/index.d.ts +2 -0
  57. package/dist/primitives/index.js +5 -0
  58. package/dist/primitives.cjs +4292 -0
  59. package/dist/primitives.cjs.map +1 -0
  60. package/dist/primitives.js +2807 -0
  61. package/dist/primitives.js.map +1 -0
  62. package/dist/styles/base/colors.css +300 -0
  63. package/dist/styles/base/component-tokens.css +240 -0
  64. package/dist/styles/base/elevation.css +7 -0
  65. package/dist/styles/base/fonts.css +14 -0
  66. package/dist/styles/base/global.css +305 -0
  67. package/dist/styles/base/radius.css +22 -0
  68. package/dist/styles/base/semantic-aliases.css +53 -0
  69. package/dist/styles/base/spacing.css +33 -0
  70. package/dist/styles/base/typography.css +48 -0
  71. package/dist/styles/generated/bodhi-vars.css +34 -0
  72. package/dist/styles/generated/dark.css +87 -0
  73. package/dist/styles/generated/light.css +87 -0
  74. package/dist/styles/generated/slingshot-vars.css +34 -0
  75. package/dist/styles/generated/sustain-vars.css +34 -0
  76. package/dist/styles/index.css +32 -0
  77. package/dist/styles/theme.css +65 -0
  78. package/dist/styles/themes/bodhi.css +166 -0
  79. package/dist/styles/themes/slingshot.css +144 -0
  80. package/dist/styles/themes/sustain.css +130 -0
  81. package/package.json +131 -0
@@ -0,0 +1,418 @@
1
+ import * as react_jsx_runtime266 from "react/jsx-runtime";
2
+ import * as react0 from "react";
3
+ import { CSSProperties, MouseEvent, ReactNode } from "react";
4
+
5
+ //#region src/patterns/AccountProjectSwitcher/AccountProjectSwitcher.d.ts
6
+ declare function AccountProjectSwitcher(): react_jsx_runtime266.JSX.Element;
7
+ //# sourceMappingURL=AccountProjectSwitcher.d.ts.map
8
+ //#endregion
9
+ //#region src/patterns/AddContextDrawer/AddContextDrawer.d.ts
10
+ interface AddContextDrawerProps {
11
+ isOpen: boolean;
12
+ onClose: () => void;
13
+ resourceTitle: string;
14
+ /** Optional callback fired when the user confirms "Add Resource" on step 3 */
15
+ onAdd?: (resourceTitle: string) => void;
16
+ }
17
+ declare function AddContextDrawer({
18
+ isOpen,
19
+ onClose,
20
+ resourceTitle,
21
+ onAdd
22
+ }: AddContextDrawerProps): react_jsx_runtime266.JSX.Element | null;
23
+ //#endregion
24
+ //#region src/patterns/AddNewRoleDrawer/AddNewRoleDrawer.d.ts
25
+ interface RoleData {
26
+ id?: string;
27
+ name: string;
28
+ description: string;
29
+ permissions: number;
30
+ /** Which tab from the roles page: 'templates' | 'saved' */
31
+ source?: "templates" | "saved";
32
+ }
33
+ interface PlatformInfo {
34
+ id: string;
35
+ label: string;
36
+ color: string;
37
+ bgColor: string;
38
+ textColor: string;
39
+ }
40
+ declare const PLATFORMS: PlatformInfo[];
41
+ interface AddNewRoleDrawerProps {
42
+ isOpen: boolean;
43
+ onClose: () => void;
44
+ onSave?: (role: {
45
+ name: string;
46
+ description: string;
47
+ permissions: string[];
48
+ platforms: string[];
49
+ }) => void;
50
+ /** Called when user duplicates a template into saved roles */
51
+ onDuplicate?: (role: {
52
+ name: string;
53
+ description: string;
54
+ permissions: string[];
55
+ platforms: string[];
56
+ }) => void;
57
+ /** Called when user deletes a role */
58
+ onDelete?: (roleId: string) => void;
59
+ /** When provided, opens in edit/view mode pre-populated with this role */
60
+ initialRole?: RoleData | null;
61
+ /** The currently-active platform tab on the roles page */
62
+ activePlatform?: string;
63
+ }
64
+ declare function AddNewRoleDrawer({
65
+ isOpen,
66
+ onClose,
67
+ onSave,
68
+ onDuplicate,
69
+ onDelete,
70
+ initialRole,
71
+ activePlatform
72
+ }: AddNewRoleDrawerProps): react_jsx_runtime266.JSX.Element;
73
+ //#endregion
74
+ //#region src/patterns/AddPortfolioDrawer/AddPortfolioDrawer.d.ts
75
+ interface PortfolioFormData {
76
+ name: string;
77
+ description: string;
78
+ selectedProjects: string[];
79
+ resourceMode: "import" | "new";
80
+ importedResources: string[];
81
+ contextSourceId?: string;
82
+ }
83
+ interface AddPortfolioDrawerProps {
84
+ isOpen: boolean;
85
+ onClose: () => void;
86
+ onSubmit: (data: PortfolioFormData) => void;
87
+ }
88
+ declare function AddPortfolioDrawer({
89
+ isOpen,
90
+ onClose,
91
+ onSubmit
92
+ }: AddPortfolioDrawerProps): react0.ReactPortal | null;
93
+ //#endregion
94
+ //#region src/patterns/AiChatPanel/AiChatPanel.d.ts
95
+ declare const defaultSuggestedPrompts: string[];
96
+ declare const defaultMockResponses: Record<string, string>;
97
+ declare const defaultFallbackResponse = "Thanks for your question! I can help with navigating the platform, understanding roles & permissions, managing users, and reviewing activity logs. Could you provide a bit more detail so I can assist you better?";
98
+ declare function AIChatPanel({
99
+ onClose,
100
+ suggestedPrompts,
101
+ mockResponses,
102
+ fallbackResponse
103
+ }: {
104
+ onClose: () => void;
105
+ suggestedPrompts?: string[];
106
+ mockResponses?: Record<string, string>;
107
+ fallbackResponse?: string;
108
+ }): react_jsx_runtime266.JSX.Element;
109
+ //# sourceMappingURL=AiChatPanel.d.ts.map
110
+ //#endregion
111
+ //#region src/patterns/AiChatPanel/activity-context.d.ts
112
+ type ActivityType = "context_added" | "analyzing_started" | "analyzing_complete" | "ingestion_started" | "ingestion_complete" | "error_detected" | "token_expired" | "sync_triggered";
113
+ type ActivitySeverity = "info" | "success" | "warning" | "error";
114
+ type ActivityFilterType = "all" | "errors" | "token_expired" | "warnings" | null;
115
+ interface ActivityEvent {
116
+ id: string;
117
+ type: ActivityType;
118
+ severity: ActivitySeverity;
119
+ title: string;
120
+ source: string;
121
+ category: string;
122
+ description: string;
123
+ timestamp: Date;
124
+ metadata?: {
125
+ resourceId?: string;
126
+ phase?: string;
127
+ progress?: number;
128
+ filesCount?: number;
129
+ errorsCount?: number;
130
+ completedCount?: number;
131
+ pendingCount?: number;
132
+ activeRepoCount?: number;
133
+ tokenExpiredCount?: number;
134
+ eta?: string;
135
+ errorDetails?: string[];
136
+ repositories?: string[];
137
+ };
138
+ }
139
+ declare const activityTypeLabels: Record<ActivityType, string>;
140
+ declare const severityMap: Record<ActivityType, ActivitySeverity>;
141
+ interface ActivityContextValue {
142
+ activities: ActivityEvent[];
143
+ unreadCount: number;
144
+ pushActivity: (event: Omit<ActivityEvent, "id" | "timestamp">) => void;
145
+ markAllRead: () => void;
146
+ clearActivities: () => void;
147
+ panelExpanded: boolean;
148
+ setPanelExpanded: (v: boolean) => void;
149
+ filterType: ActivityFilterType;
150
+ setFilterType: (v: ActivityFilterType) => void;
151
+ filterResourceId: string | null;
152
+ setFilterResourceId: (v: string | null) => void;
153
+ }
154
+ declare function useActivity(): ActivityContextValue;
155
+ declare function ActivityProvider({
156
+ children
157
+ }: {
158
+ children: ReactNode;
159
+ }): react_jsx_runtime266.JSX.Element;
160
+ //#endregion
161
+ //#region src/patterns/AiChatPanel/right-panel-context.d.ts
162
+ type RightPanelType = "activity" | "ai-chat" | null;
163
+ interface RightPanelContextValue {
164
+ /** Which panel is currently open (null = collapsed icons only) */
165
+ activePanel: RightPanelType;
166
+ /** Open a specific panel */
167
+ openPanel: (panel: "activity" | "ai-chat") => void;
168
+ /** Close whatever panel is open */
169
+ closePanel: () => void;
170
+ /** Toggle a panel (open if closed, close if already open) */
171
+ togglePanel: (panel: "activity" | "ai-chat") => void;
172
+ /** Whether the entire right sidebar (icons + panel) is visible */
173
+ sidebarVisible: boolean;
174
+ /** Show/hide the entire right sidebar */
175
+ setSidebarVisible: (visible: boolean) => void;
176
+ /** Pending message to be sent to AI chat when it opens */
177
+ pendingMessage: string | null;
178
+ /** Send a message to the AI chat panel (opens it automatically) */
179
+ sendToAIChat: (message: string) => void;
180
+ /** Clear the pending message (called by AI chat panel after consuming it) */
181
+ clearPendingMessage: () => void;
182
+ }
183
+ declare function RightPanelProvider({
184
+ children
185
+ }: {
186
+ children: ReactNode;
187
+ }): react_jsx_runtime266.JSX.Element;
188
+ declare function useRightPanel(): RightPanelContextValue;
189
+ //#endregion
190
+ //#region src/patterns/AlertDialog/AlertDialog.d.ts
191
+ interface AlertDialogProps {
192
+ isOpen: boolean;
193
+ onCancel: () => void;
194
+ onConfirm: () => void;
195
+ title?: string;
196
+ description?: string;
197
+ }
198
+ declare function AlertDialog({
199
+ isOpen,
200
+ onCancel,
201
+ onConfirm,
202
+ title,
203
+ description
204
+ }: AlertDialogProps): react0.ReactPortal | null;
205
+ //#endregion
206
+ //#region src/patterns/CategorySection/CategorySection.d.ts
207
+ interface CategorySectionProps {
208
+ id: string;
209
+ title: string;
210
+ isOpen: boolean;
211
+ onToggle: () => void;
212
+ items: Array<{
213
+ title: string;
214
+ subtitle: string;
215
+ }>;
216
+ }
217
+ declare function CategorySection({
218
+ id,
219
+ title,
220
+ isOpen,
221
+ onToggle,
222
+ items
223
+ }: CategorySectionProps): react_jsx_runtime266.JSX.Element;
224
+ //#endregion
225
+ //#region src/patterns/IconButton/IconButton.d.ts
226
+ type IconButtonVariant = "default" | "ghost" | "danger";
227
+ type IconButtonMouseHandler = (e: MouseEvent<HTMLButtonElement | HTMLDivElement>) => void;
228
+ interface IconButtonProps {
229
+ children: ReactNode;
230
+ onClick?: IconButtonMouseHandler;
231
+ variant?: IconButtonVariant;
232
+ className?: string;
233
+ as?: "button" | "div";
234
+ style?: CSSProperties;
235
+ onMouseEnter?: IconButtonMouseHandler;
236
+ onMouseLeave?: IconButtonMouseHandler;
237
+ }
238
+ declare function IconButton({
239
+ children,
240
+ onClick,
241
+ variant,
242
+ className,
243
+ as,
244
+ style,
245
+ onMouseEnter,
246
+ onMouseLeave
247
+ }: IconButtonProps): react_jsx_runtime266.JSX.Element;
248
+ //#endregion
249
+ //#region src/patterns/InfoBanner/InfoBanner.d.ts
250
+ interface InfoBannerProps {
251
+ title: string;
252
+ description?: string;
253
+ /** If false, hides the dismiss (X) button. Default true. */
254
+ dismissible?: boolean;
255
+ /** External control: if provided, overrides internal state */
256
+ visible?: boolean;
257
+ onDismiss?: () => void;
258
+ className?: string;
259
+ }
260
+ declare function InfoBanner({
261
+ title,
262
+ description,
263
+ dismissible,
264
+ visible,
265
+ onDismiss,
266
+ className
267
+ }: InfoBannerProps): react_jsx_runtime266.JSX.Element | null;
268
+ //#endregion
269
+ //#region src/patterns/InviteUsersDrawer/InviteUsersDrawer.d.ts
270
+ interface InviteUsersDrawerProps {
271
+ isOpen: boolean;
272
+ onClose: () => void;
273
+ onInvite?: (newUsers: {
274
+ name: string;
275
+ email: string;
276
+ platforms: string[];
277
+ }[]) => void;
278
+ }
279
+ declare function InviteUsersDrawer({
280
+ isOpen,
281
+ onClose,
282
+ onInvite
283
+ }: InviteUsersDrawerProps): react_jsx_runtime266.JSX.Element;
284
+ //#endregion
285
+ //#region src/patterns/PageTransition/PageTransition.d.ts
286
+ interface PageTransitionProps {
287
+ children: ReactNode;
288
+ className?: string;
289
+ }
290
+ /**
291
+ * Wraps a page with a fade-up entrance animation.
292
+ *
293
+ * IMPORTANT: The `animate-page-enter` class uses `transform: translateY(...)` which
294
+ * creates a CSS stacking context — breaking `position: fixed` drawers inside the
295
+ * subtree. To fix this, the class is removed via `onAnimationEnd` as soon as the
296
+ * 200ms animation completes, destroying the stacking context and restoring normal
297
+ * fixed-positioning behaviour for all drawers / overlays.
298
+ */
299
+ declare function PageTransition({
300
+ children,
301
+ className
302
+ }: PageTransitionProps): react_jsx_runtime266.JSX.Element;
303
+ //#endregion
304
+ //#region src/patterns/ProductSwitcher/ProductSwitcher.d.ts
305
+ interface ProductSwitcherProps {
306
+ isDarkMode: boolean;
307
+ }
308
+ declare function ProductSwitcher({
309
+ isDarkMode
310
+ }: ProductSwitcherProps): react_jsx_runtime266.JSX.Element;
311
+ //#endregion
312
+ //#region src/patterns/ProjectBulkUploadDrawer/ProjectBulkUploadDrawer.d.ts
313
+ interface ParsedTreeNode {
314
+ id: string;
315
+ type: string;
316
+ name: string;
317
+ description: string;
318
+ admin: string;
319
+ parentName: string;
320
+ level: number;
321
+ isExpanded: boolean;
322
+ children: ParsedTreeNode[];
323
+ }
324
+ interface ProjectBulkUploadDrawerProps {
325
+ isOpen: boolean;
326
+ onClose: () => void;
327
+ onImport?: (nodes: ParsedTreeNode[]) => void;
328
+ }
329
+ declare function ProjectBulkUploadDrawer({
330
+ isOpen,
331
+ onClose,
332
+ onImport
333
+ }: ProjectBulkUploadDrawerProps): react_jsx_runtime266.JSX.Element | null;
334
+ //#endregion
335
+ //#region src/patterns/ResourceTile/ResourceTile.d.ts
336
+ interface ResourceTileProps {
337
+ title: string;
338
+ subtitle: string;
339
+ onClick?: () => void;
340
+ }
341
+ declare function ResourceTile({
342
+ title,
343
+ subtitle,
344
+ onClick
345
+ }: ResourceTileProps): react_jsx_runtime266.JSX.Element;
346
+ //#endregion
347
+ //#region src/patterns/RichCheckboxGroup/RichCheckboxGroup.d.ts
348
+ interface RichCheckboxItem {
349
+ id: string;
350
+ label: string;
351
+ checked: boolean;
352
+ }
353
+ interface RichCheckboxGroupData {
354
+ id: string;
355
+ label: string;
356
+ items: RichCheckboxItem[];
357
+ }
358
+ interface RichCheckboxGroupProps {
359
+ group: RichCheckboxGroupData;
360
+ onToggle: (groupId: string, itemId: string) => void;
361
+ }
362
+ declare function RichCheckboxGroup({
363
+ group,
364
+ onToggle
365
+ }: RichCheckboxGroupProps): react_jsx_runtime266.JSX.Element;
366
+ //#endregion
367
+ //#region src/patterns/SkeletonLayouts/SkeletonLayouts.d.ts
368
+ declare function TableRowSkeleton(): react_jsx_runtime266.JSX.Element;
369
+ declare function CardSkeleton(): react_jsx_runtime266.JSX.Element;
370
+ declare function UserListItemSkeleton(): react_jsx_runtime266.JSX.Element;
371
+ declare function PageHeaderSkeleton(): react_jsx_runtime266.JSX.Element;
372
+ //# sourceMappingURL=SkeletonLayouts.d.ts.map
373
+ //#endregion
374
+ //#region src/patterns/TabGroup/TabGroup.d.ts
375
+ interface Tab {
376
+ id: string;
377
+ label: string;
378
+ }
379
+ interface TabGroupProps {
380
+ tabs: Tab[];
381
+ activeTab: string;
382
+ onTabChange: (tabId: string) => void;
383
+ /** Optional className on the outer container */
384
+ className?: string;
385
+ }
386
+ declare function TabGroup({
387
+ tabs,
388
+ activeTab,
389
+ onTabChange,
390
+ className
391
+ }: TabGroupProps): react_jsx_runtime266.JSX.Element;
392
+ //#endregion
393
+ //#region src/patterns/ViewEditUserDrawer/ViewEditUserDrawer.d.ts
394
+ interface UserData {
395
+ id: string;
396
+ name: string;
397
+ email: string;
398
+ platform: string;
399
+ status: string;
400
+ statusVariant: "pending" | "active" | "inactive" | "invited";
401
+ requestedBy: string;
402
+ requestDate: string;
403
+ }
404
+ interface ViewEditUserDrawerProps {
405
+ isOpen: boolean;
406
+ onClose: () => void;
407
+ user: UserData | null;
408
+ onSave?: (user: UserData) => void;
409
+ }
410
+ declare function ViewEditUserDrawer({
411
+ isOpen,
412
+ onClose,
413
+ user,
414
+ onSave
415
+ }: ViewEditUserDrawerProps): react_jsx_runtime266.JSX.Element;
416
+ //#endregion
417
+ export { AIChatPanel, AccountProjectSwitcher, ActivityEvent, ActivityFilterType, ActivityProvider, ActivitySeverity, ActivityType, AddContextDrawer, AddNewRoleDrawer, AddPortfolioDrawer, AlertDialog, CardSkeleton, CategorySection, IconButton, InfoBanner, InviteUsersDrawer, PLATFORMS, PageHeaderSkeleton, PageTransition, ParsedTreeNode, PlatformInfo, PortfolioFormData, ProductSwitcher, ProjectBulkUploadDrawer, ResourceTile, RichCheckboxGroup, RichCheckboxGroupData, RichCheckboxItem, RightPanelProvider, RightPanelType, RoleData, Tab, TabGroup, TableRowSkeleton, UserListItemSkeleton, ViewEditUserDrawer, activityTypeLabels, defaultFallbackResponse, defaultMockResponses, defaultSuggestedPrompts, severityMap, useActivity, useRightPanel };
418
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/patterns/AccountProjectSwitcher/AccountProjectSwitcher.tsx","../../src/patterns/AddContextDrawer/AddContextDrawer.tsx","../../src/patterns/AddNewRoleDrawer/AddNewRoleDrawer.tsx","../../src/patterns/AddPortfolioDrawer/AddPortfolioDrawer.tsx","../../src/patterns/AiChatPanel/AiChatPanel.tsx","../../src/patterns/AiChatPanel/activity-context.tsx","../../src/patterns/AiChatPanel/right-panel-context.tsx","../../src/patterns/AlertDialog/AlertDialog.tsx","../../src/patterns/CategorySection/CategorySection.tsx","../../src/patterns/IconButton/IconButton.tsx","../../src/patterns/InfoBanner/InfoBanner.tsx","../../src/patterns/InviteUsersDrawer/InviteUsersDrawer.tsx","../../src/patterns/PageTransition/PageTransition.tsx","../../src/patterns/ProductSwitcher/ProductSwitcher.tsx","../../src/patterns/ProjectBulkUploadDrawer/ProjectBulkUploadDrawer.tsx","../../src/patterns/ResourceTile/ResourceTile.tsx","../../src/patterns/RichCheckboxGroup/RichCheckboxGroup.tsx","../../src/patterns/SkeletonLayouts/SkeletonLayouts.tsx","../../src/patterns/TabGroup/TabGroup.tsx","../../src/patterns/ViewEditUserDrawer/ViewEditUserDrawer.tsx"],"mappings":"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"}