@licklist/design 0.78.5-dev.69 → 0.78.5-dev.70
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/dist/styles/themes/bookedit/_fonts.scss +2 -0
- package/dist/v2/components/ActionMenu/ActionMenu.d.ts.map +1 -1
- package/dist/v2/components/ActionMenu/ActionMenu.js +5 -3
- package/dist/v2/components/AvatarUpload/AvatarUpload.d.ts +12 -0
- package/dist/v2/components/AvatarUpload/AvatarUpload.d.ts.map +1 -0
- package/dist/v2/components/AvatarUpload/index.d.ts +2 -0
- package/dist/v2/components/AvatarUpload/index.d.ts.map +1 -0
- package/dist/v2/components/Button/Button.d.ts +1 -1
- package/dist/v2/components/Button/Button.d.ts.map +1 -1
- package/dist/v2/components/Button/Button.scss.js +1 -1
- package/dist/v2/components/DataTable/DataTable.d.ts +41 -0
- package/dist/v2/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/v2/components/DataTable/index.d.ts +3 -0
- package/dist/v2/components/DataTable/index.d.ts.map +1 -0
- package/dist/v2/components/EmptyState/EmptyState.d.ts +14 -0
- package/dist/v2/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/v2/components/EmptyState/index.d.ts +3 -0
- package/dist/v2/components/EmptyState/index.d.ts.map +1 -0
- package/dist/v2/components/FormField/FormField.scss.js +1 -1
- package/dist/v2/components/InfoGrid/InfoGrid.d.ts +13 -0
- package/dist/v2/components/InfoGrid/InfoGrid.d.ts.map +1 -0
- package/dist/v2/components/InfoGrid/index.d.ts +2 -0
- package/dist/v2/components/InfoGrid/index.d.ts.map +1 -0
- package/dist/v2/components/NewTable/NewTable.scss.js +1 -1
- package/dist/v2/components/RadioCard/RadioCard.d.ts +17 -0
- package/dist/v2/components/RadioCard/RadioCard.d.ts.map +1 -0
- package/dist/v2/components/RadioCard/index.d.ts +2 -0
- package/dist/v2/components/RadioCard/index.d.ts.map +1 -0
- package/dist/v2/components/StatusBadge/StatusBadge.d.ts +8 -0
- package/dist/v2/components/StatusBadge/StatusBadge.d.ts.map +1 -0
- package/dist/v2/components/StatusBadge/index.d.ts +3 -0
- package/dist/v2/components/StatusBadge/index.d.ts.map +1 -0
- package/dist/v2/components/StepIndicator/StepIndicator.d.ts +9 -0
- package/dist/v2/components/StepIndicator/StepIndicator.d.ts.map +1 -0
- package/dist/v2/components/StepIndicator/index.d.ts +2 -0
- package/dist/v2/components/StepIndicator/index.d.ts.map +1 -0
- package/dist/v2/components/TableControls/TableControls.d.ts +28 -0
- package/dist/v2/components/TableControls/TableControls.d.ts.map +1 -0
- package/dist/v2/components/TableControls/index.d.ts +3 -0
- package/dist/v2/components/TableControls/index.d.ts.map +1 -0
- package/dist/v2/components/Tabs/Tabs.d.ts +15 -0
- package/dist/v2/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/v2/components/Tabs/index.d.ts +3 -0
- package/dist/v2/components/Tabs/index.d.ts.map +1 -0
- package/dist/v2/icons/index.d.ts +42 -0
- package/dist/v2/icons/index.d.ts.map +1 -1
- package/dist/v2/index.d.ts +18 -0
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/pages/CreateUser/CreateUserPage.d.ts +110 -0
- package/dist/v2/pages/CreateUser/CreateUserPage.d.ts.map +1 -0
- package/dist/v2/pages/CreateUser/index.d.ts +3 -0
- package/dist/v2/pages/CreateUser/index.d.ts.map +1 -0
- package/dist/v2/pages/RoleSelection/RoleSelectionPage.d.ts +26 -0
- package/dist/v2/pages/RoleSelection/RoleSelectionPage.d.ts.map +1 -0
- package/dist/v2/pages/RoleSelection/index.d.ts +3 -0
- package/dist/v2/pages/RoleSelection/index.d.ts.map +1 -0
- package/dist/v2/pages/UserDetails/UserDetailsPage.d.ts +37 -0
- package/dist/v2/pages/UserDetails/UserDetailsPage.d.ts.map +1 -0
- package/dist/v2/pages/UserDetails/index.d.ts +3 -0
- package/dist/v2/pages/UserDetails/index.d.ts.map +1 -0
- package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.d.ts.map +1 -1
- package/dist/v2/pages/auth/Login/LoginPage.d.ts.map +1 -1
- package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.d.ts.map +1 -1
- package/dist/v2/styles/components/Button.scss +27 -0
- package/package.json +2 -2
- package/src/styles/themes/bookedit/_fonts.scss +2 -0
- package/src/v2/components/ActionMenu/ActionMenu.tsx +4 -2
- package/src/v2/components/AvatarUpload/AvatarUpload.scss +68 -0
- package/src/v2/components/AvatarUpload/AvatarUpload.stories.tsx +83 -0
- package/src/v2/components/AvatarUpload/AvatarUpload.tsx +69 -0
- package/src/v2/components/AvatarUpload/index.ts +1 -0
- package/src/v2/components/Button/Button.tsx +1 -0
- package/src/v2/components/DataTable/DataTable.scss +181 -0
- package/src/v2/components/DataTable/DataTable.tsx +256 -0
- package/src/v2/components/DataTable/index.ts +7 -0
- package/src/v2/components/EmptyState/EmptyState.scss +39 -0
- package/src/v2/components/EmptyState/EmptyState.stories.tsx +45 -0
- package/src/v2/components/EmptyState/EmptyState.tsx +37 -0
- package/src/v2/components/EmptyState/index.ts +2 -0
- package/src/v2/components/FormField/FormField.scss +12 -0
- package/src/v2/components/InfoGrid/InfoGrid.scss +51 -0
- package/src/v2/components/InfoGrid/InfoGrid.stories.tsx +76 -0
- package/src/v2/components/InfoGrid/InfoGrid.tsx +28 -0
- package/src/v2/components/InfoGrid/index.ts +1 -0
- package/src/v2/components/NewTable/NewTable.scss +4 -4
- package/src/v2/components/RadioCard/RadioCard.scss +76 -0
- package/src/v2/components/RadioCard/RadioCard.stories.tsx +115 -0
- package/src/v2/components/RadioCard/RadioCard.tsx +68 -0
- package/src/v2/components/RadioCard/index.ts +1 -0
- package/src/v2/components/StatusBadge/StatusBadge.scss +53 -0
- package/src/v2/components/StatusBadge/StatusBadge.tsx +31 -0
- package/src/v2/components/StatusBadge/index.ts +2 -0
- package/src/v2/components/StepIndicator/StepIndicator.scss +62 -0
- package/src/v2/components/StepIndicator/StepIndicator.stories.tsx +37 -0
- package/src/v2/components/StepIndicator/StepIndicator.tsx +41 -0
- package/src/v2/components/StepIndicator/index.ts +1 -0
- package/src/v2/components/TableControls/TableControls.scss +63 -0
- package/src/v2/components/TableControls/TableControls.tsx +110 -0
- package/src/v2/components/TableControls/index.ts +7 -0
- package/src/v2/components/Tabs/Tabs.scss +36 -0
- package/src/v2/components/Tabs/Tabs.stories.tsx +75 -0
- package/src/v2/components/Tabs/Tabs.tsx +52 -0
- package/src/v2/components/Tabs/index.ts +2 -0
- package/src/v2/icons/index.tsx +219 -0
- package/src/v2/index.ts +98 -0
- package/src/v2/pages/CreateUser/CreateUserPage.scss +760 -0
- package/src/v2/pages/CreateUser/CreateUserPage.stories.tsx +157 -0
- package/src/v2/pages/CreateUser/CreateUserPage.tsx +1062 -0
- package/src/v2/pages/CreateUser/index.ts +13 -0
- package/src/v2/pages/RoleSelection/RoleSelectionPage.scss +193 -0
- package/src/v2/pages/RoleSelection/RoleSelectionPage.stories.tsx +112 -0
- package/src/v2/pages/RoleSelection/RoleSelectionPage.tsx +127 -0
- package/src/v2/pages/RoleSelection/index.ts +2 -0
- package/src/v2/pages/UserDetails/UserDetailsPage.scss +236 -0
- package/src/v2/pages/UserDetails/UserDetailsPage.stories.tsx +84 -0
- package/src/v2/pages/UserDetails/UserDetailsPage.tsx +210 -0
- package/src/v2/pages/UserDetails/index.ts +2 -0
- package/src/v2/pages/auth/AuthLayout/AuthLayout.scss +8 -6
- package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.tsx +1 -3
- package/src/v2/pages/auth/Login/LoginPage.tsx +1 -3
- package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.scss +2 -0
- package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.tsx +1 -2
- package/src/v2/styles/components/Button.scss +27 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Button } from '../Button'
|
|
3
|
+
import { QuickFilter } from '../QuickFilter'
|
|
4
|
+
import type { QuickFilterOption } from '../QuickFilter'
|
|
5
|
+
import './TableControls.scss'
|
|
6
|
+
|
|
7
|
+
// ─── Types ────────────────────────────────────────────────────────────────────
|
|
8
|
+
|
|
9
|
+
export interface TableSearchConfig {
|
|
10
|
+
label?: string
|
|
11
|
+
placeholder?: string
|
|
12
|
+
value: string
|
|
13
|
+
onChange: (value: string) => void
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface TableFilterConfig {
|
|
17
|
+
label: string
|
|
18
|
+
value: string
|
|
19
|
+
isActive: boolean
|
|
20
|
+
onClick: () => void
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface TableHeaderAction {
|
|
24
|
+
label: string
|
|
25
|
+
icon?: React.ReactNode
|
|
26
|
+
onClick: () => void
|
|
27
|
+
variant?: 'primary' | 'primary-soft' | 'secondary-soft' | 'tertiary-soft' | 'primary-outline' | 'outline' | 'secondary' | 'destructive-soft' | 'destructive-strong' | 'info'
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface TableControlsProps {
|
|
31
|
+
searchConfig?: TableSearchConfig
|
|
32
|
+
filters?: TableFilterConfig[]
|
|
33
|
+
actions?: TableHeaderAction[]
|
|
34
|
+
filterLabel?: string
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ─── Component ────────────────────────────────────────────────────────────────
|
|
38
|
+
|
|
39
|
+
export const TableControls: React.FC<TableControlsProps> = ({
|
|
40
|
+
searchConfig,
|
|
41
|
+
filters,
|
|
42
|
+
actions,
|
|
43
|
+
filterLabel = 'Quick Filters:',
|
|
44
|
+
}) => {
|
|
45
|
+
const filterOptions: QuickFilterOption[] = (filters ?? []).map((f) => ({
|
|
46
|
+
label: f.label,
|
|
47
|
+
value: f.value,
|
|
48
|
+
}))
|
|
49
|
+
const selectedFilterValues = (filters ?? [])
|
|
50
|
+
.filter((f) => f.isActive)
|
|
51
|
+
.map((f) => f.value)
|
|
52
|
+
|
|
53
|
+
const handleFilterChange = (selected: string[]) => {
|
|
54
|
+
;(filters ?? []).forEach((f) => {
|
|
55
|
+
const wasActive = f.isActive
|
|
56
|
+
const nowActive = selected.includes(f.value)
|
|
57
|
+
if (wasActive !== nowActive) f.onClick()
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div className="table-controls">
|
|
63
|
+
{/* ── Search + actions row ── */}
|
|
64
|
+
{(searchConfig || (actions && actions.length > 0)) && (
|
|
65
|
+
<div className="table-controls__top-row">
|
|
66
|
+
{searchConfig && (
|
|
67
|
+
<div className="table-controls__search-group">
|
|
68
|
+
{searchConfig.label && (
|
|
69
|
+
<label className="table-controls__search-label">
|
|
70
|
+
{searchConfig.label}
|
|
71
|
+
</label>
|
|
72
|
+
)}
|
|
73
|
+
<input
|
|
74
|
+
className="table-controls__search"
|
|
75
|
+
type="text"
|
|
76
|
+
placeholder={searchConfig.placeholder ?? 'Search…'}
|
|
77
|
+
value={searchConfig.value}
|
|
78
|
+
onChange={(e) => searchConfig.onChange(e.target.value)}
|
|
79
|
+
/>
|
|
80
|
+
</div>
|
|
81
|
+
)}
|
|
82
|
+
|
|
83
|
+
{actions && actions.length > 0 && (
|
|
84
|
+
<div
|
|
85
|
+
className="table-controls__actions"
|
|
86
|
+
style={searchConfig?.label ? { marginTop: '22px' } : undefined}
|
|
87
|
+
>
|
|
88
|
+
{actions.map((action, i) => (
|
|
89
|
+
<Button key={i} variant={action.variant ?? 'primary'} onClick={action.onClick}>
|
|
90
|
+
{action.icon}
|
|
91
|
+
{action.label}
|
|
92
|
+
</Button>
|
|
93
|
+
))}
|
|
94
|
+
</div>
|
|
95
|
+
)}
|
|
96
|
+
</div>
|
|
97
|
+
)}
|
|
98
|
+
|
|
99
|
+
{/* ── Quick filters row ── */}
|
|
100
|
+
{filterOptions.length > 0 && (
|
|
101
|
+
<QuickFilter
|
|
102
|
+
label={filterLabel}
|
|
103
|
+
options={filterOptions}
|
|
104
|
+
selectedValues={selectedFilterValues}
|
|
105
|
+
onChange={handleFilterChange}
|
|
106
|
+
/>
|
|
107
|
+
)}
|
|
108
|
+
</div>
|
|
109
|
+
)
|
|
110
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@import '../../styles/index.scss';
|
|
2
|
+
|
|
3
|
+
.tabs {
|
|
4
|
+
display: flex;
|
|
5
|
+
gap: 0;
|
|
6
|
+
border-bottom: 1px solid var(--border-primary, #e8e9ef);
|
|
7
|
+
|
|
8
|
+
&__tab {
|
|
9
|
+
background: none;
|
|
10
|
+
border: none;
|
|
11
|
+
border-bottom: 2px solid transparent;
|
|
12
|
+
padding: 12px 16px;
|
|
13
|
+
font-size: 14px;
|
|
14
|
+
font-weight: 500;
|
|
15
|
+
font-family: var(--font-family-sans);
|
|
16
|
+
color: var(--label-secondary, #626a90);
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
position: relative;
|
|
19
|
+
margin-bottom: -1px;
|
|
20
|
+
transition: color 0.15s ease;
|
|
21
|
+
|
|
22
|
+
&:hover:not(:disabled) {
|
|
23
|
+
color: var(--label-primary, #121e52);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&--active {
|
|
27
|
+
color: var(--label-primary, #121e52);
|
|
28
|
+
border-bottom-color: var(--border-selected, #6200ee);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&--disabled {
|
|
32
|
+
opacity: 0.4;
|
|
33
|
+
cursor: not-allowed;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react'
|
|
3
|
+
import { Tabs } from './Tabs'
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Tabs> = {
|
|
6
|
+
title: 'v2/Components/Tabs',
|
|
7
|
+
component: Tabs,
|
|
8
|
+
parameters: { layout: 'centered' },
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default meta
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof Tabs>
|
|
14
|
+
|
|
15
|
+
export const Default: Story = {
|
|
16
|
+
render: () => {
|
|
17
|
+
const [activeTab, setActiveTab] = useState('overview')
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<div style={{ width: 400 }}>
|
|
21
|
+
<Tabs
|
|
22
|
+
tabs={[
|
|
23
|
+
{ value: 'overview', label: 'Overview' },
|
|
24
|
+
{ value: 'details', label: 'Details' },
|
|
25
|
+
{ value: 'history', label: 'History' },
|
|
26
|
+
]}
|
|
27
|
+
activeTab={activeTab}
|
|
28
|
+
onChange={setActiveTab}
|
|
29
|
+
/>
|
|
30
|
+
</div>
|
|
31
|
+
)
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const ManyTabs: Story = {
|
|
36
|
+
render: () => {
|
|
37
|
+
const [activeTab, setActiveTab] = useState('bookings')
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div style={{ width: 600 }}>
|
|
41
|
+
<Tabs
|
|
42
|
+
tabs={[
|
|
43
|
+
{ value: 'bookings', label: 'Bookings' },
|
|
44
|
+
{ value: 'payments', label: 'Payments' },
|
|
45
|
+
{ value: 'reviews', label: 'Reviews' },
|
|
46
|
+
{ value: 'analytics', label: 'Analytics' },
|
|
47
|
+
{ value: 'settings', label: 'Settings' },
|
|
48
|
+
]}
|
|
49
|
+
activeTab={activeTab}
|
|
50
|
+
onChange={setActiveTab}
|
|
51
|
+
/>
|
|
52
|
+
</div>
|
|
53
|
+
)
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const WithDisabled: Story = {
|
|
58
|
+
render: () => {
|
|
59
|
+
const [activeTab, setActiveTab] = useState('active')
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div style={{ width: 400 }}>
|
|
63
|
+
<Tabs
|
|
64
|
+
tabs={[
|
|
65
|
+
{ value: 'active', label: 'Active' },
|
|
66
|
+
{ value: 'pending', label: 'Pending', disabled: true },
|
|
67
|
+
{ value: 'archived', label: 'Archived' },
|
|
68
|
+
]}
|
|
69
|
+
activeTab={activeTab}
|
|
70
|
+
onChange={setActiveTab}
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
)
|
|
74
|
+
},
|
|
75
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import './Tabs.scss'
|
|
3
|
+
|
|
4
|
+
export interface TabItem {
|
|
5
|
+
value: string
|
|
6
|
+
label: string
|
|
7
|
+
disabled?: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface TabsProps {
|
|
11
|
+
tabs: TabItem[]
|
|
12
|
+
activeTab: string
|
|
13
|
+
onChange(value: string): void
|
|
14
|
+
className?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const Tabs: React.FC<TabsProps> = ({
|
|
18
|
+
tabs,
|
|
19
|
+
activeTab,
|
|
20
|
+
onChange,
|
|
21
|
+
className = '',
|
|
22
|
+
}) => (
|
|
23
|
+
<div className={`tabs ${className}`}>
|
|
24
|
+
{tabs.map((tab) => {
|
|
25
|
+
const isActive = tab.value === activeTab
|
|
26
|
+
const isDisabled = tab.disabled ?? false
|
|
27
|
+
|
|
28
|
+
const modifiers = [
|
|
29
|
+
isActive ? 'tabs__tab--active' : '',
|
|
30
|
+
isDisabled ? 'tabs__tab--disabled' : '',
|
|
31
|
+
]
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.join(' ')
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<button
|
|
37
|
+
key={tab.value}
|
|
38
|
+
type="button"
|
|
39
|
+
className={`tabs__tab ${modifiers}`}
|
|
40
|
+
disabled={isDisabled}
|
|
41
|
+
onClick={() => {
|
|
42
|
+
if (!isDisabled) {
|
|
43
|
+
onChange(tab.value)
|
|
44
|
+
}
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
{tab.label}
|
|
48
|
+
</button>
|
|
49
|
+
)
|
|
50
|
+
})}
|
|
51
|
+
</div>
|
|
52
|
+
)
|
package/src/v2/icons/index.tsx
CHANGED
|
@@ -351,8 +351,227 @@ export const DeleteIcon = ({ width = 24, height = 24 }: { width?: number; height
|
|
|
351
351
|
</svg>
|
|
352
352
|
)
|
|
353
353
|
|
|
354
|
+
export const UserAddIcon = ({ width = 24, height = 24 }: { width?: number; height?: number } = {}) => (
|
|
355
|
+
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
356
|
+
<path d="M16 20C12.6863 20 10 22.6863 10 26H8C8 21.5817 11.5817 18 16 18V20ZM22 21H25V23H22V26H20V23H17V21H20V18H22V21ZM16 5C19.315 5 22 7.685 22 11C22 14.315 19.315 17 16 17C12.685 17 10 14.315 10 11C10 7.685 12.685 5 16 5ZM16 7C13.79 7 12 8.79 12 11C12 13.21 13.79 15 16 15C18.21 15 20 13.21 20 11C20 8.79 18.21 7 16 7Z" fill="currentColor" />
|
|
357
|
+
</svg>
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
export const UserImportIcon = ({ width = 24, height = 24 }: { width?: number; height?: number } = {}) => (
|
|
361
|
+
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
362
|
+
<path d="M16 20C12.6863 20 10 22.6863 10 26H8C8 21.5817 11.5817 18 16 18V20ZM16 5C19.315 5 22 7.685 22 11C22 14.315 19.315 17 16 17C12.685 17 10 14.315 10 11C10 7.685 12.685 5 16 5ZM16 7C13.79 7 12 8.79 12 11C12 13.21 13.79 15 16 15C18.21 15 20 13.21 20 11C20 8.79 18.21 7 16 7Z" fill="currentColor" />
|
|
363
|
+
<path d="M22 23L25 23L21 18L17 23L20 23L20 28L22 28L22 23Z" fill="currentColor" />
|
|
364
|
+
</svg>
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
export const SlidersIcon = ({ width = 18, height = 18 }: { width?: number; height?: number } = {}) => (
|
|
368
|
+
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
369
|
+
<path d="M13 9C14.3059 9 15.4141 9.83532 15.8262 11H24V13H15.8262C15.4141 14.1647 14.3059 15 13 15C11.6941 15 10.5859 14.1647 10.1738 13H8V11H10.1738C10.5859 9.83532 11.6941 9 13 9Z" fill="currentColor"/>
|
|
370
|
+
<path d="M19 17C20.3059 17 21.4141 17.8353 21.8262 19H24V21H21.8262C21.4141 22.1647 20.3059 23 19 23C17.6941 23 16.5859 22.1647 16.1738 21H8V19H16.1738C16.5859 17.8353 17.6941 17 19 17Z" fill="currentColor"/>
|
|
371
|
+
</svg>
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
export const ProviderPlusIcon = ({ width = 16, height = 16 }: { width?: number; height?: number } = {}) => (
|
|
375
|
+
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
376
|
+
<path d="M8 10L17 6.5V24H8V10Z" fill="currentColor" fillOpacity="0.1"/>
|
|
377
|
+
<path d="M17.3291 5.24414C17.5886 5.14978 17.8753 5.28351 17.9697 5.54297C17.9896 5.59773 18 5.6556 18 5.71387V10.667L24.3164 12.7725C24.7246 12.9086 25 13.2904 25 13.7207V23H27V25H5V23H7V9.7002C7.00011 9.27982 7.26314 8.90443 7.6582 8.76074L17.3291 5.24414ZM9 10.4014V23H16V7.85547L9 10.4014ZM18 23H23V14.4414L18 12.7744V23ZM25 5H28V7H25V10H23V7H20V5H23V2H25V5Z" fill="currentColor"/>
|
|
378
|
+
</svg>
|
|
379
|
+
)
|
|
380
|
+
|
|
354
381
|
export const ClockIcon = ({ width = 20, height = 20 }: { width?: number; height?: number } = {}) => (
|
|
355
382
|
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
356
383
|
<path d="M16 28C9.37258 28 4 22.6274 4 16C4 9.37258 9.37258 4 16 4C22.6274 4 28 9.37258 28 16C28 22.6274 22.6274 28 16 28ZM16 26C21.5228 26 26 21.5228 26 16C26 10.4772 21.5228 6 16 6C10.4772 6 6 10.4772 6 16C6 21.5228 10.4772 26 16 26ZM17 9V15.5858L21.2426 19.8284L19.8284 21.2426L15 16.4142V9H17Z" fill="currentColor" />
|
|
357
384
|
</svg>
|
|
358
385
|
)
|
|
386
|
+
|
|
387
|
+
export const WarningTriangleIcon = () => (
|
|
388
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none">
|
|
389
|
+
<path
|
|
390
|
+
d="M15.3496 8.46973C15.7414 7.84329 16.6543 7.84314 17.0459 8.46973L25.2412 21.583C25.6574 22.249 25.1788 23.113 24.3936 23.1133H8.00195C7.21654 23.1133 6.73711 22.249 7.15332 21.583L15.3496 8.46973ZM16.1973 19.1133C15.6451 19.1134 15.1973 19.5611 15.1973 20.1133C15.1973 20.6654 15.6451 21.1132 16.1973 21.1133C16.7495 21.1133 17.1972 20.6655 17.1973 20.1133C17.1973 19.561 16.7496 19.1133 16.1973 19.1133ZM15.1973 18.1133H17.1973V13.1133H15.1973V18.1133Z"
|
|
391
|
+
fill="currentColor"
|
|
392
|
+
/>
|
|
393
|
+
</svg>
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
export const CheckCircleIcon = () => (
|
|
397
|
+
<svg width="24" height="24" viewBox="0 0 32 32" fill="none">
|
|
398
|
+
<path d="M16 7C20.9706 7 25 11.0294 25 16C25 20.9706 20.9706 25 16 25C11.0294 25 7 20.9706 7 16C7 11.0294 11.0294 7 16 7ZM14.4463 17.6055L12.7217 15.8076L11.2783 17.1924L14.3525 20.3945L21.6729 13.7402L20.3271 12.2598L14.4463 17.6055Z" fill="currentColor" />
|
|
399
|
+
</svg>
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
export const XCircleIcon = ({ size = 24 }: { size?: number } = {}) => (
|
|
403
|
+
<svg width={size} height={size} viewBox="0 0 32 32" fill="none">
|
|
404
|
+
<path d="M16.1975 7C21.1681 7 25.1975 11.0294 25.1975 16C25.1975 20.9706 21.1681 25 16.1975 25C11.2269 25 7.19751 20.9706 7.19751 16C7.19751 11.0294 11.2269 7 16.1975 7ZM16.1975 14.5859L13.3694 11.7578L11.9553 13.1719L14.7834 16L11.9553 18.8281L13.3694 20.2422L16.1975 17.4141L19.0256 20.2422L20.4397 18.8281L17.6116 16L20.4397 13.1719L19.0256 11.7578L16.1975 14.5859Z" fill="currentColor" />
|
|
405
|
+
</svg>
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
export const UserGroupIcon = () => (
|
|
409
|
+
<svg width="24" height="24" viewBox="0 0 32 32" fill="none">
|
|
410
|
+
<path d="M16 7C18.7614 7 21 9.23858 21 12C21 14.7614 18.7614 17 16 17C13.2386 17 11 14.7614 11 12C11 9.23858 13.2386 7 16 7ZM16 9C14.3431 9 13 10.3431 13 12C13 13.6569 14.3431 15 16 15C17.6569 15 19 13.6569 19 12C19 10.3431 17.6569 9 16 9ZM16 18C20.4183 18 24 19.7909 24 22V25H8V22C8 19.7909 11.5817 18 16 18ZM16 20C12.6863 20 10 21.3431 10 22V23H22V22C22 21.3431 19.3137 20 16 20Z" fill="currentColor" />
|
|
411
|
+
</svg>
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
export const UploadIcon = () => (
|
|
415
|
+
<svg width="32" height="32" viewBox="0 0 24 24" fill="none">
|
|
416
|
+
<path d="M12 16V8M12 8L8.5 11.5M12 8L15.5 11.5" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round"/>
|
|
417
|
+
<path d="M4 17V19C4 19.5523 4.44772 20 5 20H19C19.5523 20 20 19.5523 20 19V17" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round"/>
|
|
418
|
+
</svg>
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
export const ArrowDownSmallIcon = () => (
|
|
422
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
423
|
+
<path d="M8 10.5L3.5 6H12.5L8 10.5Z" fill="currentColor" />
|
|
424
|
+
</svg>
|
|
425
|
+
)
|
|
426
|
+
|
|
427
|
+
export const ToggleCheckIcon = () => (
|
|
428
|
+
<svg width="16" height="16" viewBox="0 0 32 32" fill="none">
|
|
429
|
+
<path
|
|
430
|
+
d="M25.5029 11.5693L14.4727 24.1348L7.62012 17.6074L10.3799 14.7109L14.2148 18.3643L22.4971 8.93066L25.5029 11.5693Z"
|
|
431
|
+
fill="currentColor"
|
|
432
|
+
/>
|
|
433
|
+
</svg>
|
|
434
|
+
)
|
|
435
|
+
|
|
436
|
+
export const ToggleCrossIcon = () => (
|
|
437
|
+
<svg width="16" height="16" viewBox="0 0 32 32" fill="none">
|
|
438
|
+
<path
|
|
439
|
+
d="M24.1895 11.4658L18.7676 16.5L24.1895 21.5342L21.4668 24.4658L15.8281 19.2295L10.1895 24.4658L7.4668 21.5342L12.8877 16.5L7.4668 11.4658L10.1895 8.53418L15.8281 13.7695L21.4668 8.53418L24.1895 11.4658Z"
|
|
440
|
+
fill="currentColor"
|
|
441
|
+
/>
|
|
442
|
+
</svg>
|
|
443
|
+
)
|
|
444
|
+
|
|
445
|
+
export const TrendUpIcon = () => (
|
|
446
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
447
|
+
<path d="M3 17L9 11L13 15L21 7" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
448
|
+
<polyline points="15,7 21,7 21,13" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
449
|
+
</svg>
|
|
450
|
+
)
|
|
451
|
+
|
|
452
|
+
export const TrendDownIcon = () => (
|
|
453
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
454
|
+
<path d="M3 7L9 13L13 9L21 17" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
455
|
+
<polyline points="15,17 21,17 21,11" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
456
|
+
</svg>
|
|
457
|
+
)
|
|
458
|
+
|
|
459
|
+
export const TrendSteadyIcon = () => (
|
|
460
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
461
|
+
<line x1="4" y1="12" x2="20" y2="12" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
462
|
+
</svg>
|
|
463
|
+
)
|
|
464
|
+
|
|
465
|
+
export const TrendUpSmallIcon = () => (
|
|
466
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
|
|
467
|
+
<path d="M2 10L6 6L9 9L12 4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
468
|
+
<polyline points="9,4 12,4 12,7" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
469
|
+
</svg>
|
|
470
|
+
)
|
|
471
|
+
|
|
472
|
+
export const TrendDownSmallIcon = () => (
|
|
473
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
|
|
474
|
+
<path d="M2 4L6 8L9 5L12 10" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
475
|
+
<polyline points="9,10 12,10 12,7" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
476
|
+
</svg>
|
|
477
|
+
)
|
|
478
|
+
|
|
479
|
+
export const TrendSteadySmallIcon = () => (
|
|
480
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
|
|
481
|
+
<line x1="2" y1="7" x2="12" y2="7" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
482
|
+
</svg>
|
|
483
|
+
)
|
|
484
|
+
|
|
485
|
+
export const NPSHappyIcon = () => (
|
|
486
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none">
|
|
487
|
+
<circle cx="11" cy="11" r="10" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
488
|
+
<circle cx="8" cy="9.5" r="1" fill="currentColor" />
|
|
489
|
+
<circle cx="14" cy="9.5" r="1" fill="currentColor" />
|
|
490
|
+
<path d="M7.5 13.5C7.5 13.5 9 16 11 16C13 16 14.5 13.5 14.5 13.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
491
|
+
</svg>
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
export const NPSNeutralIcon = () => (
|
|
495
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none">
|
|
496
|
+
<circle cx="11" cy="11" r="10" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
497
|
+
<circle cx="8" cy="9.5" r="1" fill="currentColor" />
|
|
498
|
+
<circle cx="14" cy="9.5" r="1" fill="currentColor" />
|
|
499
|
+
<line x1="8" y1="14" x2="14" y2="14" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
500
|
+
</svg>
|
|
501
|
+
)
|
|
502
|
+
|
|
503
|
+
export const NPSSadIcon = () => (
|
|
504
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none">
|
|
505
|
+
<circle cx="11" cy="11" r="10" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
506
|
+
<circle cx="8" cy="9.5" r="1" fill="currentColor" />
|
|
507
|
+
<circle cx="14" cy="9.5" r="1" fill="currentColor" />
|
|
508
|
+
<path d="M7.5 15.5C7.5 15.5 9 13 11 13C13 13 14.5 15.5 14.5 15.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
509
|
+
</svg>
|
|
510
|
+
)
|
|
511
|
+
|
|
512
|
+
export const NPSSadFaceIcon = () => (
|
|
513
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none">
|
|
514
|
+
<circle cx="20" cy="20" r="18" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
515
|
+
<circle cx="14.5" cy="17" r="1.5" fill="currentColor" />
|
|
516
|
+
<circle cx="25.5" cy="17" r="1.5" fill="currentColor" />
|
|
517
|
+
<path d="M13 27C13 27 15.5 23 20 23C24.5 23 27 27 27 27" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
518
|
+
</svg>
|
|
519
|
+
)
|
|
520
|
+
|
|
521
|
+
export const NPSNeutralFaceIcon = () => (
|
|
522
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none">
|
|
523
|
+
<circle cx="20" cy="20" r="18" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
524
|
+
<circle cx="14.5" cy="17" r="1.5" fill="currentColor" />
|
|
525
|
+
<circle cx="25.5" cy="17" r="1.5" fill="currentColor" />
|
|
526
|
+
<line x1="14" y1="26" x2="26" y2="26" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
527
|
+
</svg>
|
|
528
|
+
)
|
|
529
|
+
|
|
530
|
+
export const NPSHappyFaceIcon = () => (
|
|
531
|
+
<svg width="40" height="40" viewBox="0 0 40 40" fill="none">
|
|
532
|
+
<circle cx="20" cy="20" r="18" stroke="currentColor" strokeWidth="1.5" fill="none" />
|
|
533
|
+
<circle cx="14.5" cy="17" r="1.5" fill="currentColor" />
|
|
534
|
+
<circle cx="25.5" cy="17" r="1.5" fill="currentColor" />
|
|
535
|
+
<path d="M13 23C13 23 15.5 27 20 27C24.5 27 27 23 27 23" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
536
|
+
</svg>
|
|
537
|
+
)
|
|
538
|
+
|
|
539
|
+
export const AnalyticsEmptyIcon = () => (
|
|
540
|
+
<svg width="48" height="48" viewBox="0 0 48 48" fill="none">
|
|
541
|
+
<rect x="6" y="30" width="8" height="12" rx="2" stroke="currentColor" strokeWidth="2" fill="none" />
|
|
542
|
+
<rect x="20" y="20" width="8" height="22" rx="2" stroke="currentColor" strokeWidth="2" fill="none" />
|
|
543
|
+
<rect x="34" y="10" width="8" height="32" rx="2" stroke="currentColor" strokeWidth="2" fill="none" />
|
|
544
|
+
<line x1="2" y1="44" x2="46" y2="44" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
545
|
+
</svg>
|
|
546
|
+
)
|
|
547
|
+
|
|
548
|
+
export const PaymentsEmptyIcon = () => (
|
|
549
|
+
<svg width="48" height="48" viewBox="0 0 48 48" fill="none">
|
|
550
|
+
<rect x="6" y="12" width="36" height="26" rx="4" stroke="currentColor" strokeWidth="2" fill="none" />
|
|
551
|
+
<line x1="6" y1="20" x2="42" y2="20" stroke="currentColor" strokeWidth="2" />
|
|
552
|
+
<rect x="12" y="26" width="8" height="4" rx="1" fill="currentColor" opacity="0.4" />
|
|
553
|
+
<rect x="24" y="26" width="6" height="4" rx="1" fill="currentColor" opacity="0.2" />
|
|
554
|
+
</svg>
|
|
555
|
+
)
|
|
556
|
+
|
|
557
|
+
export const ReportsEmptyIcon = () => (
|
|
558
|
+
<svg width="48" height="48" viewBox="0 0 48 48" fill="none">
|
|
559
|
+
<rect x="8" y="6" width="32" height="36" rx="4" stroke="currentColor" strokeWidth="2" fill="none" />
|
|
560
|
+
<line x1="14" y1="16" x2="34" y2="16" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
561
|
+
<line x1="14" y1="22" x2="34" y2="22" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
562
|
+
<line x1="14" y1="28" x2="26" y2="28" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
563
|
+
<path d="M30 32L34 36M34 32L30 36" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
|
|
564
|
+
</svg>
|
|
565
|
+
)
|
|
566
|
+
|
|
567
|
+
export const SelectCheckIcon = () => (
|
|
568
|
+
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
|
|
569
|
+
<path
|
|
570
|
+
d="M10 3L4.5 8.5L2 6"
|
|
571
|
+
stroke="white"
|
|
572
|
+
strokeWidth="2"
|
|
573
|
+
strokeLinecap="round"
|
|
574
|
+
strokeLinejoin="round"
|
|
575
|
+
/>
|
|
576
|
+
</svg>
|
|
577
|
+
)
|
package/src/v2/index.ts
CHANGED
|
@@ -57,6 +57,39 @@ export type { ZoneCardProps, ZoneResource, ZoneContainerProps, DragHandleProps,
|
|
|
57
57
|
export { ZonesResourcesPage } from './pages/ZonesResources'
|
|
58
58
|
export type { ZonesResourcesPageProps } from './pages/ZonesResources'
|
|
59
59
|
|
|
60
|
+
// DataTable Component
|
|
61
|
+
export { DataTable } from './components/DataTable'
|
|
62
|
+
export type { DataTableColumn, DataTableRowAction, DataTableProps, DataTableSortDirection } from './components/DataTable'
|
|
63
|
+
|
|
64
|
+
// TableControls Component
|
|
65
|
+
export { TableControls } from './components/TableControls'
|
|
66
|
+
export type { TableControlsProps, TableSearchConfig, TableFilterConfig, TableHeaderAction } from './components/TableControls'
|
|
67
|
+
|
|
68
|
+
// Tabs Component
|
|
69
|
+
export { Tabs } from './components/Tabs'
|
|
70
|
+
export type { TabsProps, TabItem } from './components/Tabs'
|
|
71
|
+
|
|
72
|
+
// EmptyState Component
|
|
73
|
+
export { EmptyState } from './components/EmptyState'
|
|
74
|
+
export type { EmptyStateProps } from './components/EmptyState'
|
|
75
|
+
|
|
76
|
+
// StepIndicator Component
|
|
77
|
+
export { StepIndicator } from './components/StepIndicator'
|
|
78
|
+
export type { StepIndicatorProps } from './components/StepIndicator'
|
|
79
|
+
|
|
80
|
+
// RadioCard Component
|
|
81
|
+
export { RadioCard } from './components/RadioCard'
|
|
82
|
+
export type { RadioCardProps, RadioCardOption } from './components/RadioCard'
|
|
83
|
+
|
|
84
|
+
// AvatarUpload Component
|
|
85
|
+
export { AvatarUpload } from './components/AvatarUpload'
|
|
86
|
+
export type { AvatarUploadProps } from './components/AvatarUpload'
|
|
87
|
+
|
|
88
|
+
// InfoGrid Component
|
|
89
|
+
export { InfoGrid } from './components/InfoGrid'
|
|
90
|
+
export type { InfoGridProps, InfoGridItem } from './components/InfoGrid'
|
|
91
|
+
|
|
92
|
+
|
|
60
93
|
// ============================================================================
|
|
61
94
|
// Navigation Components
|
|
62
95
|
// ============================================================================
|
|
@@ -155,6 +188,71 @@ export type { SettingsPageProps, SettingsTabsProps, SettingsTab, SidebarCustomis
|
|
|
155
188
|
export { AuthLayout, LoginPage, ResetPasswordPage, CreatePasswordPage, VerifyEmailPage } from './pages/auth'
|
|
156
189
|
export type { AuthLayoutProps, LoginPageProps, ResetPasswordPageProps, CreatePasswordPageProps, VerifyEmailPageProps } from './pages/auth'
|
|
157
190
|
|
|
191
|
+
// ============================================================================
|
|
192
|
+
// Admin Section
|
|
193
|
+
// ============================================================================
|
|
194
|
+
|
|
195
|
+
export {
|
|
196
|
+
// Home
|
|
197
|
+
AdminHomePage,
|
|
198
|
+
// Companies
|
|
199
|
+
AdminCompaniesPage, AdminCompanyDetailPage, AddCompanyPage,
|
|
200
|
+
// Providers
|
|
201
|
+
AdminProvidersPage, AdminProviderDetailPage, AddProviderPage, UpdateVenuePage,
|
|
202
|
+
// Users
|
|
203
|
+
AdminUsersPage, AdminUserDetailPage, AdminRolesPage,
|
|
204
|
+
EditRolePermissionsPage, EditUserPage, ChangeUserRolePage, CreateRolePage,
|
|
205
|
+
AdminPermissionsPage, CreatePermissionPage,
|
|
206
|
+
AddUserToProviderCompanyPage, UserActivityHistory,
|
|
207
|
+
// Customers
|
|
208
|
+
AdminCustomersPage,
|
|
209
|
+
// Analytics
|
|
210
|
+
AdminAnalyticsPage,
|
|
211
|
+
// Reports
|
|
212
|
+
AdminReportsPage,
|
|
213
|
+
// Payments
|
|
214
|
+
AdminPaymentsPage,
|
|
215
|
+
// Settings
|
|
216
|
+
AdminSettingsPage, AdminFeesPage,
|
|
217
|
+
} from './admin'
|
|
218
|
+
|
|
219
|
+
export type {
|
|
220
|
+
// Home
|
|
221
|
+
AdminHomePageProps, NPSSummaryData, NPSTrend, OnlineUsersData, BookingsSummaryData, BookingRow,
|
|
222
|
+
// Companies
|
|
223
|
+
AdminCompaniesPageProps, AdminCompanyRow, CompanyStatus,
|
|
224
|
+
AdminCompanyDetailPageProps, AdminCompanyDetailData, CompanyProvider,
|
|
225
|
+
AddCompanyPageProps, AddCompanyFormData, AddCompanyProvider, AddCompanyStep,
|
|
226
|
+
// Providers
|
|
227
|
+
AdminProvidersPageProps, AdminProviderRow, ProviderStatus, ProviderType,
|
|
228
|
+
AdminProviderDetailPageProps, AdminProviderDetailData, ProviderCompany, AccountManagerInfo,
|
|
229
|
+
AddProviderPageProps, AddProviderFormData, AddProviderCompany, AddProviderType, AddProviderStep,
|
|
230
|
+
UpdateVenuePageProps, VenueFormData, VenueWorkHour, VenueLocation, CategoryOption, TimezoneOption,
|
|
231
|
+
// Users
|
|
232
|
+
AdminUsersPageProps, AdminUserRow, UserStatus, UserPrimaryRole,
|
|
233
|
+
AdminUserDetailPageProps, AdminUserDetailData, DetailUserAssignment, DetailUserStatus,
|
|
234
|
+
AdminRolesPageProps, RoleRow,
|
|
235
|
+
EditRolePermissionsPageProps, PermissionItem, PermissionCategory, PermissionValues,
|
|
236
|
+
EditUserPageProps, EditUserFormData,
|
|
237
|
+
CreateRolePageProps, CreateRoleFormData,
|
|
238
|
+
AdminPermissionsPageProps, PermissionRow,
|
|
239
|
+
CreatePermissionPageProps, CreatePermissionFormData,
|
|
240
|
+
ChangeUserRolePageProps,
|
|
241
|
+
AddUserToProviderCompanyPageProps, AssignmentCandidate, NewAssignment, AssignmentRole, AssignmentRoleOption,
|
|
242
|
+
UserActivityHistoryProps, ActivityEntry,
|
|
243
|
+
// Customers
|
|
244
|
+
AdminCustomersPageProps, AdminCustomerRow, CustomerWaiverStatus,
|
|
245
|
+
// Analytics
|
|
246
|
+
AdminAnalyticsPageProps, AnalyticsTab, NPSMetrics, NPSResponseRow, NPSScoreFilter, NPSTrendDirection,
|
|
247
|
+
// Reports
|
|
248
|
+
AdminReportsPageProps,
|
|
249
|
+
// Payments
|
|
250
|
+
AdminPaymentsPageProps,
|
|
251
|
+
// Settings
|
|
252
|
+
AdminSettingsPageProps, SettingsLink,
|
|
253
|
+
AdminFeesPageProps, FeeSettings, FeeStructure, PercentageConfig, FixedConfig, FixedPercentageConfig,
|
|
254
|
+
} from './admin'
|
|
255
|
+
|
|
158
256
|
// ============================================================================
|
|
159
257
|
// Design Tokens
|
|
160
258
|
// ============================================================================
|