@orion-ds/react 1.1.6 → 1.2.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.
- package/README.md +3 -3
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.types.d.ts +1 -1
- package/dist/components/Avatar/Avatar.types.d.ts.map +1 -1
- package/dist/components/Carousel/Carousel.d.ts +32 -0
- package/dist/components/Carousel/Carousel.d.ts.map +1 -0
- package/dist/components/Carousel/Carousel.types.d.ts +190 -0
- package/dist/components/Carousel/Carousel.types.d.ts.map +1 -0
- package/dist/components/Carousel/CarouselCard.d.ts +12 -0
- package/dist/components/Carousel/CarouselCard.d.ts.map +1 -0
- package/dist/components/Carousel/index.d.ts +10 -0
- package/dist/components/Carousel/index.d.ts.map +1 -0
- package/dist/components/IconGallery/IconGallery.d.ts +5 -7
- package/dist/components/IconGallery/IconGallery.d.ts.map +1 -1
- package/dist/components/IconGallery/IconGallery.types.d.ts +5 -25
- package/dist/components/IconGallery/IconGallery.types.d.ts.map +1 -1
- package/dist/components/IconGallery/index.d.ts +1 -1
- package/dist/components/IconGallery/index.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.cjs +21 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +17979 -14385
- package/dist/index.mjs.map +1 -1
- package/dist/react.css +1 -1
- package/dist/sections/ActivityFeed/ActivityFeed.d.ts +24 -0
- package/dist/sections/ActivityFeed/ActivityFeed.d.ts.map +1 -0
- package/dist/sections/ActivityFeed/ActivityFeed.types.d.ts +160 -0
- package/dist/sections/ActivityFeed/ActivityFeed.types.d.ts.map +1 -0
- package/dist/sections/ActivityFeed/index.d.ts +3 -0
- package/dist/sections/ActivityFeed/index.d.ts.map +1 -0
- package/dist/sections/Breadcrumbs/Breadcrumbs.d.ts +20 -0
- package/dist/sections/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/sections/Breadcrumbs/Breadcrumbs.types.d.ts +83 -0
- package/dist/sections/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -0
- package/dist/sections/Breadcrumbs/index.d.ts +3 -0
- package/dist/sections/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/sections/CarouselSection/CarouselSection.d.ts +35 -0
- package/dist/sections/CarouselSection/CarouselSection.d.ts.map +1 -0
- package/dist/sections/CarouselSection/CarouselSection.types.d.ts +119 -0
- package/dist/sections/CarouselSection/CarouselSection.types.d.ts.map +1 -0
- package/dist/sections/CarouselSection/index.d.ts +11 -0
- package/dist/sections/CarouselSection/index.d.ts.map +1 -0
- package/dist/sections/CommandBar/CommandBar.d.ts +20 -0
- package/dist/sections/CommandBar/CommandBar.d.ts.map +1 -0
- package/dist/sections/CommandBar/CommandBar.types.d.ts +113 -0
- package/dist/sections/CommandBar/CommandBar.types.d.ts.map +1 -0
- package/dist/sections/CommandBar/index.d.ts +3 -0
- package/dist/sections/CommandBar/index.d.ts.map +1 -0
- package/dist/sections/DataTable/DataTable.d.ts +28 -0
- package/dist/sections/DataTable/DataTable.d.ts.map +1 -0
- package/dist/sections/DataTable/DataTable.types.d.ts +368 -0
- package/dist/sections/DataTable/DataTable.types.d.ts.map +1 -0
- package/dist/sections/DataTable/index.d.ts +3 -0
- package/dist/sections/DataTable/index.d.ts.map +1 -0
- package/dist/sections/DetailPanel/DetailPanel.d.ts +21 -0
- package/dist/sections/DetailPanel/DetailPanel.d.ts.map +1 -0
- package/dist/sections/DetailPanel/DetailPanel.types.d.ts +95 -0
- package/dist/sections/DetailPanel/DetailPanel.types.d.ts.map +1 -0
- package/dist/sections/DetailPanel/index.d.ts +3 -0
- package/dist/sections/DetailPanel/index.d.ts.map +1 -0
- package/dist/sections/EmptyState/EmptyState.d.ts +19 -0
- package/dist/sections/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/sections/EmptyState/EmptyState.types.d.ts +70 -0
- package/dist/sections/EmptyState/EmptyState.types.d.ts.map +1 -0
- package/dist/sections/EmptyState/index.d.ts +3 -0
- package/dist/sections/EmptyState/index.d.ts.map +1 -0
- package/dist/sections/FileUploader/FileUploader.d.ts +19 -0
- package/dist/sections/FileUploader/FileUploader.d.ts.map +1 -0
- package/dist/sections/FileUploader/FileUploader.types.d.ts +129 -0
- package/dist/sections/FileUploader/FileUploader.types.d.ts.map +1 -0
- package/dist/sections/FileUploader/index.d.ts +3 -0
- package/dist/sections/FileUploader/index.d.ts.map +1 -0
- package/dist/sections/FilterBar/FilterBar.d.ts +21 -0
- package/dist/sections/FilterBar/FilterBar.d.ts.map +1 -0
- package/dist/sections/FilterBar/FilterBar.types.d.ts +144 -0
- package/dist/sections/FilterBar/FilterBar.types.d.ts.map +1 -0
- package/dist/sections/FilterBar/index.d.ts +3 -0
- package/dist/sections/FilterBar/index.d.ts.map +1 -0
- package/dist/sections/FormSection/FormSection.d.ts +27 -0
- package/dist/sections/FormSection/FormSection.d.ts.map +1 -0
- package/dist/sections/FormSection/FormSection.types.d.ts +112 -0
- package/dist/sections/FormSection/FormSection.types.d.ts.map +1 -0
- package/dist/sections/FormSection/index.d.ts +3 -0
- package/dist/sections/FormSection/index.d.ts.map +1 -0
- package/dist/sections/Hero/Hero.d.ts +18 -1
- package/dist/sections/Hero/Hero.d.ts.map +1 -1
- package/dist/sections/Hero/Hero.types.d.ts +70 -1
- package/dist/sections/Hero/Hero.types.d.ts.map +1 -1
- package/dist/sections/Hero/HeroHighlight.d.ts +19 -0
- package/dist/sections/Hero/HeroHighlight.d.ts.map +1 -0
- package/dist/sections/Hero/index.d.ts +2 -1
- package/dist/sections/Hero/index.d.ts.map +1 -1
- package/dist/sections/KanbanBoard/KanbanBoard.d.ts +20 -0
- package/dist/sections/KanbanBoard/KanbanBoard.d.ts.map +1 -0
- package/dist/sections/KanbanBoard/KanbanBoard.types.d.ts +190 -0
- package/dist/sections/KanbanBoard/KanbanBoard.types.d.ts.map +1 -0
- package/dist/sections/KanbanBoard/index.d.ts +3 -0
- package/dist/sections/KanbanBoard/index.d.ts.map +1 -0
- package/dist/sections/MetricCards/MetricCards.d.ts +23 -0
- package/dist/sections/MetricCards/MetricCards.d.ts.map +1 -0
- package/dist/sections/MetricCards/MetricCards.types.d.ts +139 -0
- package/dist/sections/MetricCards/MetricCards.types.d.ts.map +1 -0
- package/dist/sections/MetricCards/index.d.ts +3 -0
- package/dist/sections/MetricCards/index.d.ts.map +1 -0
- package/dist/sections/NotificationCenter/NotificationCenter.d.ts +18 -0
- package/dist/sections/NotificationCenter/NotificationCenter.d.ts.map +1 -0
- package/dist/sections/NotificationCenter/NotificationCenter.types.d.ts +126 -0
- package/dist/sections/NotificationCenter/NotificationCenter.types.d.ts.map +1 -0
- package/dist/sections/NotificationCenter/index.d.ts +3 -0
- package/dist/sections/NotificationCenter/index.d.ts.map +1 -0
- package/dist/sections/PageHeader/PageHeader.d.ts +22 -0
- package/dist/sections/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/sections/PageHeader/PageHeader.types.d.ts +135 -0
- package/dist/sections/PageHeader/PageHeader.types.d.ts.map +1 -0
- package/dist/sections/PageHeader/index.d.ts +3 -0
- package/dist/sections/PageHeader/index.d.ts.map +1 -0
- package/dist/sections/QuickActions/QuickActions.d.ts +19 -0
- package/dist/sections/QuickActions/QuickActions.d.ts.map +1 -0
- package/dist/sections/QuickActions/QuickActions.types.d.ts +112 -0
- package/dist/sections/QuickActions/QuickActions.types.d.ts.map +1 -0
- package/dist/sections/QuickActions/index.d.ts +3 -0
- package/dist/sections/QuickActions/index.d.ts.map +1 -0
- package/dist/sections/SettingsLayout/SettingsLayout.d.ts +22 -0
- package/dist/sections/SettingsLayout/SettingsLayout.d.ts.map +1 -0
- package/dist/sections/SettingsLayout/SettingsLayout.types.d.ts +117 -0
- package/dist/sections/SettingsLayout/SettingsLayout.types.d.ts.map +1 -0
- package/dist/sections/SettingsLayout/index.d.ts +3 -0
- package/dist/sections/SettingsLayout/index.d.ts.map +1 -0
- package/dist/sections/Sidebar/Sidebar.d.ts +29 -0
- package/dist/sections/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/sections/Sidebar/Sidebar.types.d.ts +168 -0
- package/dist/sections/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/sections/Sidebar/index.d.ts +3 -0
- package/dist/sections/Sidebar/index.d.ts.map +1 -0
- package/dist/sections/Stats/StatItemCard.d.ts +1 -1
- package/dist/sections/Stats/StatItemCard.d.ts.map +1 -1
- package/dist/sections/Stats/Stats.d.ts.map +1 -1
- package/dist/sections/Stats/Stats.types.d.ts +10 -0
- package/dist/sections/Stats/Stats.types.d.ts.map +1 -1
- package/dist/sections/Stepper/Stepper.d.ts +22 -0
- package/dist/sections/Stepper/Stepper.d.ts.map +1 -0
- package/dist/sections/Stepper/Stepper.types.d.ts +106 -0
- package/dist/sections/Stepper/Stepper.types.d.ts.map +1 -0
- package/dist/sections/Stepper/index.d.ts +3 -0
- package/dist/sections/Stepper/index.d.ts.map +1 -0
- package/dist/sections/Team/Team.types.d.ts +9 -1
- package/dist/sections/Team/Team.types.d.ts.map +1 -1
- package/dist/sections/Team/TeamMemberCard.d.ts.map +1 -1
- package/dist/sections/UserMenu/UserMenu.d.ts +19 -0
- package/dist/sections/UserMenu/UserMenu.d.ts.map +1 -0
- package/dist/sections/UserMenu/UserMenu.types.d.ts +138 -0
- package/dist/sections/UserMenu/UserMenu.types.d.ts.map +1 -0
- package/dist/sections/UserMenu/index.d.ts +3 -0
- package/dist/sections/UserMenu/index.d.ts.map +1 -0
- package/dist/sections/index.d.ts +41 -2
- package/dist/sections/index.d.ts.map +1 -1
- package/dist/templates/app/DashboardTemplate/DashboardTemplate.d.ts +28 -0
- package/dist/templates/app/DashboardTemplate/DashboardTemplate.d.ts.map +1 -0
- package/dist/templates/app/DashboardTemplate/DashboardTemplate.types.d.ts +62 -0
- package/dist/templates/app/DashboardTemplate/DashboardTemplate.types.d.ts.map +1 -0
- package/dist/templates/app/DashboardTemplate/index.d.ts +3 -0
- package/dist/templates/app/DashboardTemplate/index.d.ts.map +1 -0
- package/dist/templates/app/KanbanPageTemplate/KanbanPageTemplate.d.ts +25 -0
- package/dist/templates/app/KanbanPageTemplate/KanbanPageTemplate.d.ts.map +1 -0
- package/dist/templates/app/KanbanPageTemplate/KanbanPageTemplate.types.d.ts +47 -0
- package/dist/templates/app/KanbanPageTemplate/KanbanPageTemplate.types.d.ts.map +1 -0
- package/dist/templates/app/KanbanPageTemplate/index.d.ts +3 -0
- package/dist/templates/app/KanbanPageTemplate/index.d.ts.map +1 -0
- package/dist/templates/app/ProfilePageTemplate/ProfilePageTemplate.d.ts +30 -0
- package/dist/templates/app/ProfilePageTemplate/ProfilePageTemplate.d.ts.map +1 -0
- package/dist/templates/app/ProfilePageTemplate/ProfilePageTemplate.types.d.ts +90 -0
- package/dist/templates/app/ProfilePageTemplate/ProfilePageTemplate.types.d.ts.map +1 -0
- package/dist/templates/app/ProfilePageTemplate/index.d.ts +3 -0
- package/dist/templates/app/ProfilePageTemplate/index.d.ts.map +1 -0
- package/dist/templates/app/SettingsTemplate/SettingsTemplate.d.ts +27 -0
- package/dist/templates/app/SettingsTemplate/SettingsTemplate.d.ts.map +1 -0
- package/dist/templates/app/SettingsTemplate/SettingsTemplate.types.d.ts +71 -0
- package/dist/templates/app/SettingsTemplate/SettingsTemplate.types.d.ts.map +1 -0
- package/dist/templates/app/SettingsTemplate/index.d.ts +3 -0
- package/dist/templates/app/SettingsTemplate/index.d.ts.map +1 -0
- package/dist/templates/app/index.d.ts +14 -0
- package/dist/templates/app/index.d.ts.map +1 -0
- package/dist/templates/index.d.ts +38 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/marketing/AboutPageTemplate/AboutPageTemplate.d.ts +25 -0
- package/dist/templates/marketing/AboutPageTemplate/AboutPageTemplate.d.ts.map +1 -0
- package/dist/templates/marketing/AboutPageTemplate/AboutPageTemplate.types.d.ts +71 -0
- package/dist/templates/marketing/AboutPageTemplate/AboutPageTemplate.types.d.ts.map +1 -0
- package/dist/templates/marketing/AboutPageTemplate/index.d.ts +3 -0
- package/dist/templates/marketing/AboutPageTemplate/index.d.ts.map +1 -0
- package/dist/templates/marketing/ContactPageTemplate/ContactPageTemplate.d.ts +24 -0
- package/dist/templates/marketing/ContactPageTemplate/ContactPageTemplate.d.ts.map +1 -0
- package/dist/templates/marketing/ContactPageTemplate/ContactPageTemplate.types.d.ts +60 -0
- package/dist/templates/marketing/ContactPageTemplate/ContactPageTemplate.types.d.ts.map +1 -0
- package/dist/templates/marketing/ContactPageTemplate/index.d.ts +3 -0
- package/dist/templates/marketing/ContactPageTemplate/index.d.ts.map +1 -0
- package/dist/templates/marketing/LandingPageTemplate/LandingPageTemplate.d.ts +25 -0
- package/dist/templates/marketing/LandingPageTemplate/LandingPageTemplate.d.ts.map +1 -0
- package/dist/templates/marketing/LandingPageTemplate/LandingPageTemplate.types.d.ts +93 -0
- package/dist/templates/marketing/LandingPageTemplate/LandingPageTemplate.types.d.ts.map +1 -0
- package/dist/templates/marketing/LandingPageTemplate/index.d.ts +3 -0
- package/dist/templates/marketing/LandingPageTemplate/index.d.ts.map +1 -0
- package/dist/templates/marketing/PricingPageTemplate/PricingPageTemplate.d.ts +24 -0
- package/dist/templates/marketing/PricingPageTemplate/PricingPageTemplate.d.ts.map +1 -0
- package/dist/templates/marketing/PricingPageTemplate/PricingPageTemplate.types.d.ts +67 -0
- package/dist/templates/marketing/PricingPageTemplate/PricingPageTemplate.types.d.ts.map +1 -0
- package/dist/templates/marketing/PricingPageTemplate/index.d.ts +3 -0
- package/dist/templates/marketing/PricingPageTemplate/index.d.ts.map +1 -0
- package/dist/templates/marketing/index.d.ts +14 -0
- package/dist/templates/marketing/index.d.ts.map +1 -0
- package/dist/utils/fonts.d.ts +2 -2
- package/dist/utils/fonts.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataTable Component
|
|
3
|
+
*
|
|
4
|
+
* A data table for SaaS dashboards with sorting, pagination, filtering, and selection.
|
|
5
|
+
* Optimized for Product Mode with efficient data display and minimal visual noise.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <DataTable
|
|
10
|
+
* columns={[
|
|
11
|
+
* { key: 'name', header: 'Name', sortable: true },
|
|
12
|
+
* { key: 'email', header: 'Email' },
|
|
13
|
+
* { key: 'status', header: 'Status', render: (value) => <Badge>{value}</Badge> }
|
|
14
|
+
* ]}
|
|
15
|
+
* data={users}
|
|
16
|
+
* searchable
|
|
17
|
+
* selectable
|
|
18
|
+
* pagination={{ page: 1, pageSize: 10, total: 100 }}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { DataTableProps } from './DataTable.types';
|
|
23
|
+
declare function DataTableInner<T extends Record<string, unknown>>({ columns, data, rowKey, searchable, searchPlaceholder, searchValue: controlledSearchValue, onSearchChange, pagination, onPaginationChange, selectable, selectedKeys: controlledSelectedKeys, onSelectionChange, bulkActions, rowActions, sort: controlledSort, onSortChange, emptyState, loading, striped, hoverable, compact, stickyHeader, maxHeight, onRowClick, toolbar, className, ...rest }: DataTableProps<T>, ref: React.ForwardedRef<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const DataTable: <T extends Record<string, unknown>>(props: DataTableProps<T> & {
|
|
25
|
+
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
26
|
+
}) => ReturnType<typeof DataTableInner>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/sections/DataTable/DataTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAYH,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAoG3B,iBAAS,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,EACE,OAAO,EACP,IAAI,EACJ,MAAwB,EACxB,UAAkB,EAClB,iBAA+B,EAC/B,WAAW,EAAE,qBAAqB,EAClC,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,UAAkB,EAClB,YAAY,EAAE,sBAAsB,EACpC,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,UAAU,EACV,OAAe,EACf,OAAe,EACf,SAAgB,EAChB,OAAe,EACf,YAAoB,EACpB,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,2CA8UxC;AAGD,eAAO,MAAM,SAAS,EAAiC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvF,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;CAAE,KACpE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataTable Component Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the Orion DataTable section component.
|
|
5
|
+
* Designed for Product Mode (SaaS dashboards) data management.
|
|
6
|
+
*/
|
|
7
|
+
import type { HTMLAttributes, ReactNode, Key } from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* Column definition for the table
|
|
10
|
+
*/
|
|
11
|
+
export interface DataTableColumn<T = unknown> {
|
|
12
|
+
/**
|
|
13
|
+
* Unique column key
|
|
14
|
+
*/
|
|
15
|
+
key: string;
|
|
16
|
+
/**
|
|
17
|
+
* Column header label
|
|
18
|
+
*/
|
|
19
|
+
header: string;
|
|
20
|
+
/**
|
|
21
|
+
* Column width (CSS value)
|
|
22
|
+
*/
|
|
23
|
+
width?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Minimum column width
|
|
26
|
+
*/
|
|
27
|
+
minWidth?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Text alignment
|
|
30
|
+
* @default 'left'
|
|
31
|
+
*/
|
|
32
|
+
align?: 'left' | 'center' | 'right';
|
|
33
|
+
/**
|
|
34
|
+
* Whether column is sortable
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
sortable?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Custom cell renderer
|
|
40
|
+
*/
|
|
41
|
+
render?: (value: unknown, row: T, rowIndex: number) => ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* Whether column is sticky
|
|
44
|
+
*/
|
|
45
|
+
sticky?: 'left' | 'right';
|
|
46
|
+
/**
|
|
47
|
+
* Hide column on mobile
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
hideOnMobile?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Sort state
|
|
54
|
+
*/
|
|
55
|
+
export interface DataTableSort {
|
|
56
|
+
/**
|
|
57
|
+
* Column key being sorted
|
|
58
|
+
*/
|
|
59
|
+
key: string;
|
|
60
|
+
/**
|
|
61
|
+
* Sort direction
|
|
62
|
+
*/
|
|
63
|
+
direction: 'asc' | 'desc';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Pagination state
|
|
67
|
+
*/
|
|
68
|
+
export interface DataTablePagination {
|
|
69
|
+
/**
|
|
70
|
+
* Current page (1-indexed)
|
|
71
|
+
*/
|
|
72
|
+
page: number;
|
|
73
|
+
/**
|
|
74
|
+
* Items per page
|
|
75
|
+
*/
|
|
76
|
+
pageSize: number;
|
|
77
|
+
/**
|
|
78
|
+
* Total number of items
|
|
79
|
+
*/
|
|
80
|
+
total: number;
|
|
81
|
+
/**
|
|
82
|
+
* Available page size options
|
|
83
|
+
* @default [10, 25, 50, 100]
|
|
84
|
+
*/
|
|
85
|
+
pageSizeOptions?: number[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Filter definition
|
|
89
|
+
*/
|
|
90
|
+
export interface DataTableFilter {
|
|
91
|
+
/**
|
|
92
|
+
* Unique filter key
|
|
93
|
+
*/
|
|
94
|
+
key: string;
|
|
95
|
+
/**
|
|
96
|
+
* Filter label
|
|
97
|
+
*/
|
|
98
|
+
label: string;
|
|
99
|
+
/**
|
|
100
|
+
* Filter type
|
|
101
|
+
*/
|
|
102
|
+
type: 'text' | 'select' | 'date' | 'dateRange';
|
|
103
|
+
/**
|
|
104
|
+
* Options for select type
|
|
105
|
+
*/
|
|
106
|
+
options?: {
|
|
107
|
+
value: string;
|
|
108
|
+
label: string;
|
|
109
|
+
}[];
|
|
110
|
+
/**
|
|
111
|
+
* Placeholder text
|
|
112
|
+
*/
|
|
113
|
+
placeholder?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Bulk action definition
|
|
117
|
+
*/
|
|
118
|
+
export interface DataTableBulkAction {
|
|
119
|
+
/**
|
|
120
|
+
* Action key
|
|
121
|
+
*/
|
|
122
|
+
key: string;
|
|
123
|
+
/**
|
|
124
|
+
* Action label
|
|
125
|
+
*/
|
|
126
|
+
label: string;
|
|
127
|
+
/**
|
|
128
|
+
* Action icon
|
|
129
|
+
*/
|
|
130
|
+
icon?: ReactNode;
|
|
131
|
+
/**
|
|
132
|
+
* Action variant for styling
|
|
133
|
+
*/
|
|
134
|
+
variant?: 'default' | 'danger';
|
|
135
|
+
/**
|
|
136
|
+
* Action callback
|
|
137
|
+
*/
|
|
138
|
+
onClick: (selectedIds: Key[]) => void;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Row action definition
|
|
142
|
+
*/
|
|
143
|
+
export interface DataTableRowAction<T = unknown> {
|
|
144
|
+
/**
|
|
145
|
+
* Action key
|
|
146
|
+
*/
|
|
147
|
+
key: string;
|
|
148
|
+
/**
|
|
149
|
+
* Action label
|
|
150
|
+
*/
|
|
151
|
+
label: string;
|
|
152
|
+
/**
|
|
153
|
+
* Action icon
|
|
154
|
+
*/
|
|
155
|
+
icon?: ReactNode;
|
|
156
|
+
/**
|
|
157
|
+
* Action variant
|
|
158
|
+
*/
|
|
159
|
+
variant?: 'default' | 'danger';
|
|
160
|
+
/**
|
|
161
|
+
* Action callback
|
|
162
|
+
*/
|
|
163
|
+
onClick: (row: T) => void;
|
|
164
|
+
/**
|
|
165
|
+
* Show condition
|
|
166
|
+
*/
|
|
167
|
+
show?: (row: T) => boolean;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Empty state configuration
|
|
171
|
+
*/
|
|
172
|
+
export interface DataTableEmptyState {
|
|
173
|
+
/**
|
|
174
|
+
* Icon element
|
|
175
|
+
*/
|
|
176
|
+
icon?: ReactNode;
|
|
177
|
+
/**
|
|
178
|
+
* Title text
|
|
179
|
+
*/
|
|
180
|
+
title: string;
|
|
181
|
+
/**
|
|
182
|
+
* Description text
|
|
183
|
+
*/
|
|
184
|
+
description?: string;
|
|
185
|
+
/**
|
|
186
|
+
* Action element
|
|
187
|
+
*/
|
|
188
|
+
action?: ReactNode;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* DataTable section props
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```tsx
|
|
195
|
+
* <DataTable
|
|
196
|
+
* columns={[
|
|
197
|
+
* { key: 'name', header: 'Name', sortable: true },
|
|
198
|
+
* { key: 'email', header: 'Email' },
|
|
199
|
+
* { key: 'status', header: 'Status', render: (value) => <Badge>{value}</Badge> }
|
|
200
|
+
* ]}
|
|
201
|
+
* data={users}
|
|
202
|
+
* searchable
|
|
203
|
+
* selectable
|
|
204
|
+
* pagination={{ page: 1, pageSize: 10, total: 100 }}
|
|
205
|
+
* />
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export interface DataTableProps<T = Record<string, unknown>> extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
209
|
+
/**
|
|
210
|
+
* Column definitions
|
|
211
|
+
*/
|
|
212
|
+
columns: DataTableColumn<T>[];
|
|
213
|
+
/**
|
|
214
|
+
* Data rows
|
|
215
|
+
*/
|
|
216
|
+
data: T[];
|
|
217
|
+
/**
|
|
218
|
+
* Row key accessor (defaults to 'id')
|
|
219
|
+
*/
|
|
220
|
+
rowKey?: keyof T | ((row: T, index: number) => Key);
|
|
221
|
+
/**
|
|
222
|
+
* Enable search functionality
|
|
223
|
+
* @default false
|
|
224
|
+
*/
|
|
225
|
+
searchable?: boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Search placeholder text
|
|
228
|
+
*/
|
|
229
|
+
searchPlaceholder?: string;
|
|
230
|
+
/**
|
|
231
|
+
* Current search value (controlled)
|
|
232
|
+
*/
|
|
233
|
+
searchValue?: string;
|
|
234
|
+
/**
|
|
235
|
+
* Search change handler
|
|
236
|
+
*/
|
|
237
|
+
onSearchChange?: (value: string) => void;
|
|
238
|
+
/**
|
|
239
|
+
* Filter definitions
|
|
240
|
+
*/
|
|
241
|
+
filters?: DataTableFilter[];
|
|
242
|
+
/**
|
|
243
|
+
* Active filter values
|
|
244
|
+
*/
|
|
245
|
+
filterValues?: Record<string, unknown>;
|
|
246
|
+
/**
|
|
247
|
+
* Filter change handler
|
|
248
|
+
*/
|
|
249
|
+
onFilterChange?: (key: string, value: unknown) => void;
|
|
250
|
+
/**
|
|
251
|
+
* Pagination configuration
|
|
252
|
+
*/
|
|
253
|
+
pagination?: DataTablePagination;
|
|
254
|
+
/**
|
|
255
|
+
* Pagination change handler
|
|
256
|
+
*/
|
|
257
|
+
onPaginationChange?: (pagination: Pick<DataTablePagination, 'page' | 'pageSize'>) => void;
|
|
258
|
+
/**
|
|
259
|
+
* Enable row selection
|
|
260
|
+
* @default false
|
|
261
|
+
*/
|
|
262
|
+
selectable?: boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Selected row keys
|
|
265
|
+
*/
|
|
266
|
+
selectedKeys?: Key[];
|
|
267
|
+
/**
|
|
268
|
+
* Selection change handler
|
|
269
|
+
*/
|
|
270
|
+
onSelectionChange?: (keys: Key[]) => void;
|
|
271
|
+
/**
|
|
272
|
+
* Bulk actions for selected rows
|
|
273
|
+
*/
|
|
274
|
+
bulkActions?: DataTableBulkAction[];
|
|
275
|
+
/**
|
|
276
|
+
* Per-row actions
|
|
277
|
+
*/
|
|
278
|
+
rowActions?: DataTableRowAction<T>[];
|
|
279
|
+
/**
|
|
280
|
+
* Current sort state
|
|
281
|
+
*/
|
|
282
|
+
sort?: DataTableSort;
|
|
283
|
+
/**
|
|
284
|
+
* Sort change handler
|
|
285
|
+
*/
|
|
286
|
+
onSortChange?: (sort: DataTableSort | undefined) => void;
|
|
287
|
+
/**
|
|
288
|
+
* Empty state configuration
|
|
289
|
+
*/
|
|
290
|
+
emptyState?: DataTableEmptyState;
|
|
291
|
+
/**
|
|
292
|
+
* Loading state
|
|
293
|
+
* @default false
|
|
294
|
+
*/
|
|
295
|
+
loading?: boolean;
|
|
296
|
+
/**
|
|
297
|
+
* Striped rows
|
|
298
|
+
* @default false
|
|
299
|
+
*/
|
|
300
|
+
striped?: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Hoverable rows
|
|
303
|
+
* @default true
|
|
304
|
+
*/
|
|
305
|
+
hoverable?: boolean;
|
|
306
|
+
/**
|
|
307
|
+
* Compact mode
|
|
308
|
+
* @default false
|
|
309
|
+
*/
|
|
310
|
+
compact?: boolean;
|
|
311
|
+
/**
|
|
312
|
+
* Sticky header
|
|
313
|
+
* @default false
|
|
314
|
+
*/
|
|
315
|
+
stickyHeader?: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Table max height (enables scrolling)
|
|
318
|
+
*/
|
|
319
|
+
maxHeight?: string;
|
|
320
|
+
/**
|
|
321
|
+
* Row click handler
|
|
322
|
+
*/
|
|
323
|
+
onRowClick?: (row: T, index: number) => void;
|
|
324
|
+
/**
|
|
325
|
+
* Toolbar content (rendered before table)
|
|
326
|
+
*/
|
|
327
|
+
toolbar?: ReactNode;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* DataTable.Toolbar sub-component props
|
|
331
|
+
*/
|
|
332
|
+
export interface DataTableToolbarProps extends HTMLAttributes<HTMLDivElement> {
|
|
333
|
+
/**
|
|
334
|
+
* Left-aligned content
|
|
335
|
+
*/
|
|
336
|
+
left?: ReactNode;
|
|
337
|
+
/**
|
|
338
|
+
* Right-aligned content
|
|
339
|
+
*/
|
|
340
|
+
right?: ReactNode;
|
|
341
|
+
/**
|
|
342
|
+
* Children content
|
|
343
|
+
*/
|
|
344
|
+
children?: ReactNode;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* DataTable.Pagination sub-component props
|
|
348
|
+
*/
|
|
349
|
+
export interface DataTablePaginationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
350
|
+
/**
|
|
351
|
+
* Pagination state
|
|
352
|
+
*/
|
|
353
|
+
pagination: DataTablePagination;
|
|
354
|
+
/**
|
|
355
|
+
* Change handler
|
|
356
|
+
*/
|
|
357
|
+
onChange: (pagination: Pick<DataTablePagination, 'page' | 'pageSize'>) => void;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* DataTable.EmptyState sub-component props
|
|
361
|
+
*/
|
|
362
|
+
export interface DataTableEmptyStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
363
|
+
/**
|
|
364
|
+
* Empty state configuration
|
|
365
|
+
*/
|
|
366
|
+
state: DataTableEmptyState;
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=DataTable.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.types.d.ts","sourceRoot":"","sources":["../../../src/sections/DataTable/DataTable.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { DataTable } from './DataTable';
|
|
2
|
+
export type { DataTableProps, DataTableColumn, DataTableSort, DataTablePagination, DataTableFilter, DataTableBulkAction, DataTableRowAction, DataTableEmptyState, DataTableToolbarProps, DataTablePaginationProps, DataTableEmptyStateProps, } from './DataTable.types';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sections/DataTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DetailPanel Component
|
|
3
|
+
*
|
|
4
|
+
* A slide-over panel for viewing and editing entity details.
|
|
5
|
+
* Optimized for Product Mode with focused interactions.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <DetailPanel
|
|
10
|
+
* open={isOpen}
|
|
11
|
+
* onClose={() => setIsOpen(false)}
|
|
12
|
+
* title="User Details"
|
|
13
|
+
* footer={<Button>Save Changes</Button>}
|
|
14
|
+
* >
|
|
15
|
+
* <UserForm />
|
|
16
|
+
* </DetailPanel>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import type { DetailPanelProps } from './DetailPanel.types';
|
|
20
|
+
export declare const DetailPanel: import("react").ForwardRefExoticComponent<DetailPanelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
21
|
+
//# sourceMappingURL=DetailPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailPanel.d.ts","sourceRoot":"","sources":["../../../src/sections/DetailPanel/DetailPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,WAAW,6GAkIvB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DetailPanel Component Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the Orion DetailPanel section component.
|
|
5
|
+
* A slide-over panel for viewing and editing entity details.
|
|
6
|
+
*/
|
|
7
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* DetailPanel size
|
|
10
|
+
*/
|
|
11
|
+
export type DetailPanelSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
12
|
+
/**
|
|
13
|
+
* DetailPanel position
|
|
14
|
+
*/
|
|
15
|
+
export type DetailPanelPosition = 'right' | 'left';
|
|
16
|
+
/**
|
|
17
|
+
* DetailPanel section props
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <DetailPanel
|
|
22
|
+
* open={isOpen}
|
|
23
|
+
* onClose={() => setIsOpen(false)}
|
|
24
|
+
* title="User Details"
|
|
25
|
+
* actions={<Button>Save</Button>}
|
|
26
|
+
* >
|
|
27
|
+
* <UserForm />
|
|
28
|
+
* </DetailPanel>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface DetailPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
32
|
+
/**
|
|
33
|
+
* Whether the panel is open
|
|
34
|
+
*/
|
|
35
|
+
open: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Close callback
|
|
38
|
+
*/
|
|
39
|
+
onClose: () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Panel title
|
|
42
|
+
*/
|
|
43
|
+
title: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Optional subtitle/description
|
|
46
|
+
*/
|
|
47
|
+
subtitle?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Panel content
|
|
50
|
+
*/
|
|
51
|
+
children: ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Panel size
|
|
54
|
+
* - sm: 320px
|
|
55
|
+
* - md: 480px
|
|
56
|
+
* - lg: 640px
|
|
57
|
+
* - xl: 800px
|
|
58
|
+
* @default 'md'
|
|
59
|
+
*/
|
|
60
|
+
size?: DetailPanelSize;
|
|
61
|
+
/**
|
|
62
|
+
* Panel position
|
|
63
|
+
* @default 'right'
|
|
64
|
+
*/
|
|
65
|
+
position?: DetailPanelPosition;
|
|
66
|
+
/**
|
|
67
|
+
* Header actions (buttons in header area)
|
|
68
|
+
*/
|
|
69
|
+
headerActions?: ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* Footer content
|
|
72
|
+
*/
|
|
73
|
+
footer?: ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* Show overlay backdrop
|
|
76
|
+
* @default true
|
|
77
|
+
*/
|
|
78
|
+
overlay?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Close on overlay click
|
|
81
|
+
* @default true
|
|
82
|
+
*/
|
|
83
|
+
closeOnOverlayClick?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Close on Escape key
|
|
86
|
+
* @default true
|
|
87
|
+
*/
|
|
88
|
+
closeOnEscape?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Loading state
|
|
91
|
+
* @default false
|
|
92
|
+
*/
|
|
93
|
+
loading?: boolean;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=DetailPanel.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailPanel.types.d.ts","sourceRoot":"","sources":["../../../src/sections/DetailPanel/DetailPanel.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACrF;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sections/DetailPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmptyState Component
|
|
3
|
+
*
|
|
4
|
+
* A placeholder section for empty states in SaaS applications.
|
|
5
|
+
* Optimized for Product Mode with minimal visual noise and clear CTAs.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <EmptyState
|
|
10
|
+
* icon={<Inbox size={48} />}
|
|
11
|
+
* title="No messages yet"
|
|
12
|
+
* description="When you receive messages, they'll appear here."
|
|
13
|
+
* action={<Button>Compose Message</Button>}
|
|
14
|
+
* />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import type { EmptyStateProps } from './EmptyState.types';
|
|
18
|
+
export declare const EmptyState: import("react").ForwardRefExoticComponent<EmptyStateProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/sections/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,UAAU,4GAqDtB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmptyState Component Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the Orion EmptyState section component.
|
|
5
|
+
* Designed for Product Mode (SaaS dashboards) with minimal visual noise.
|
|
6
|
+
*/
|
|
7
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* EmptyState size variant
|
|
10
|
+
*/
|
|
11
|
+
export type EmptyStateSize = 'sm' | 'md' | 'lg';
|
|
12
|
+
/**
|
|
13
|
+
* EmptyState visual variant
|
|
14
|
+
*/
|
|
15
|
+
export type EmptyStateVariant = 'default' | 'compact' | 'full-page';
|
|
16
|
+
/**
|
|
17
|
+
* EmptyState section props
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <EmptyState
|
|
22
|
+
* icon={<Inbox size={48} />}
|
|
23
|
+
* title="No messages yet"
|
|
24
|
+
* description="When you receive messages, they'll appear here."
|
|
25
|
+
* action={<Button>Compose Message</Button>}
|
|
26
|
+
* />
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
|
|
30
|
+
/**
|
|
31
|
+
* Icon element to display
|
|
32
|
+
* Typically a Lucide icon with size 48-64
|
|
33
|
+
*/
|
|
34
|
+
icon?: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* Optional illustration element (larger visual)
|
|
37
|
+
* Use instead of icon for full-page variants
|
|
38
|
+
*/
|
|
39
|
+
illustration?: ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Main title/heading
|
|
42
|
+
*/
|
|
43
|
+
title: string;
|
|
44
|
+
/**
|
|
45
|
+
* Description text providing context
|
|
46
|
+
*/
|
|
47
|
+
description?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Primary action button
|
|
50
|
+
*/
|
|
51
|
+
action?: ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Secondary action (link or button)
|
|
54
|
+
*/
|
|
55
|
+
secondaryAction?: ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Visual variant
|
|
58
|
+
* - default: Standard centered layout
|
|
59
|
+
* - compact: Smaller padding and text
|
|
60
|
+
* - full-page: Takes full viewport height
|
|
61
|
+
* @default 'default'
|
|
62
|
+
*/
|
|
63
|
+
variant?: EmptyStateVariant;
|
|
64
|
+
/**
|
|
65
|
+
* Size variant affecting padding and typography
|
|
66
|
+
* @default 'md'
|
|
67
|
+
*/
|
|
68
|
+
size?: EmptyStateSize;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=EmptyState.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.types.d.ts","sourceRoot":"","sources":["../../../src/sections/EmptyState/EmptyState.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sections/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileUploader Component
|
|
3
|
+
*
|
|
4
|
+
* A drag & drop file upload zone for SaaS applications.
|
|
5
|
+
* Optimized for Product Mode with clean, efficient file management.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <FileUploader
|
|
10
|
+
* accept={['image/*', '.pdf']}
|
|
11
|
+
* maxFiles={5}
|
|
12
|
+
* maxSize={10 * 1024 * 1024}
|
|
13
|
+
* onFilesAdded={(files) => handleUpload(files)}
|
|
14
|
+
* />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import type { FileUploaderProps } from './FileUploader.types';
|
|
18
|
+
export declare const FileUploader: import("react").ForwardRefExoticComponent<FileUploaderProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
//# sourceMappingURL=FileUploader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../src/sections/FileUploader/FileUploader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAqB9D,eAAO,MAAM,YAAY,8GAwRxB,CAAC"}
|