@ziky/ui 0.1.9 → 0.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 +38 -6
- package/dist/components/ImageUploadField.d.ts +4 -1
- package/dist/components/ImageUploadField.d.ts.map +1 -1
- package/dist/components/ImageUploadField.js +10 -9
- package/dist/components/ImageUploadField.js.map +1 -1
- package/dist/components/SmartAvatar.d.ts +16 -0
- package/dist/components/SmartAvatar.d.ts.map +1 -0
- package/dist/components/SmartAvatar.js +57 -0
- package/dist/components/SmartAvatar.js.map +1 -0
- package/dist/components/SmartCheckbox.d.ts +33 -0
- package/dist/components/SmartCheckbox.d.ts.map +1 -0
- package/dist/components/SmartCheckbox.js +53 -0
- package/dist/components/SmartCheckbox.js.map +1 -0
- package/dist/components/SmartDataTable/SmartDataTable.d.ts +6 -0
- package/dist/components/SmartDataTable/SmartDataTable.d.ts.map +1 -1
- package/dist/components/SmartDataTable/SmartDataTable.js +31 -3
- package/dist/components/SmartDataTable/SmartDataTable.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/AppTopbar.d.ts.map +1 -1
- package/dist/layout/AppTopbar.js +2 -1
- package/dist/layout/AppTopbar.js.map +1 -1
- package/dist/providers/RidinProviders.d.ts.map +1 -1
- package/dist/providers/RidinProviders.js +2 -1
- package/dist/providers/RidinProviders.js.map +1 -1
- package/dist/providers/SmartDialogProvider.d.ts +19 -0
- package/dist/providers/SmartDialogProvider.d.ts.map +1 -0
- package/dist/providers/SmartDialogProvider.js +74 -0
- package/dist/providers/SmartDialogProvider.js.map +1 -0
- package/dist/styles/components/smartcheckbox.css +33 -0
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +1 -0
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/index.ts +1 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -1,11 +1,43 @@
|
|
|
1
1
|
# ridin-mfe-ui
|
|
2
2
|
|
|
3
|
-
Shared UI package for RIDIN MFEs (published to npm as `@ziky/ui`).
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
|
|
3
|
+
Shared UI package for RIDIN MFEs (published to npm as `@ziky/ui`).
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { SmartCheckbox } from '@ziky/ui';
|
|
10
|
+
|
|
11
|
+
export function Example() {
|
|
12
|
+
const [value, setValue] = React.useState(false);
|
|
13
|
+
return <SmartCheckbox label="Active" value={value} onValueChange={setValue} />;
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
React Hook Form (via `Controller`):
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import { Controller } from 'react-hook-form';
|
|
21
|
+
import { SmartCheckbox } from '@ziky/ui';
|
|
22
|
+
|
|
23
|
+
<Controller
|
|
24
|
+
name="isActive"
|
|
25
|
+
control={control}
|
|
26
|
+
render={({ field, fieldState }) => (
|
|
27
|
+
<SmartCheckbox
|
|
28
|
+
label="Active"
|
|
29
|
+
value={field.value ?? false}
|
|
30
|
+
onValueChange={field.onChange}
|
|
31
|
+
errorText={fieldState.error?.message}
|
|
32
|
+
/>
|
|
33
|
+
)}
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Storybook
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install
|
|
9
41
|
npm run storybook
|
|
10
42
|
```
|
|
11
43
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
1
2
|
import type { FilePickerProps } from './FilePicker';
|
|
2
3
|
export type ImageUploadFieldProps = {
|
|
3
4
|
label: string;
|
|
@@ -13,6 +14,8 @@ export type ImageUploadFieldProps = {
|
|
|
13
14
|
uploadLabel?: string;
|
|
14
15
|
urlPlaceholder?: string;
|
|
15
16
|
filePickerProps?: Omit<FilePickerProps, 'file' | 'onFileChange'>;
|
|
17
|
+
className?: string;
|
|
18
|
+
style?: CSSProperties;
|
|
16
19
|
};
|
|
17
|
-
export declare function ImageUploadField({ label, value, onChange, file, onFileChange, onUpload, uploading, error, helperText, chooseLabel, uploadLabel, urlPlaceholder, filePickerProps, }: ImageUploadFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function ImageUploadField({ label, value, onChange, file, onFileChange, onUpload, uploading, error, helperText, chooseLabel, uploadLabel, urlPlaceholder, filePickerProps, className, style, }: ImageUploadFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
18
21
|
//# sourceMappingURL=ImageUploadField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploadField.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploadField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageUploadField.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploadField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAiB,EACjB,KAAK,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,EACf,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,2CAoFvB"}
|
|
@@ -5,30 +5,31 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const button_1 = require("primereact/button");
|
|
6
6
|
const inputtext_1 = require("primereact/inputtext");
|
|
7
7
|
const FilePicker_1 = require("./FilePicker");
|
|
8
|
-
function ImageUploadField({ label, value, onChange, file, onFileChange, onUpload, uploading = false, error, helperText, chooseLabel, uploadLabel, urlPlaceholder, filePickerProps, }) {
|
|
9
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { style: { display: 'block', marginBottom: '0.25rem' }, children: label }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
8
|
+
function ImageUploadField({ label, value, onChange, file, onFileChange, onUpload, uploading = false, error, helperText, chooseLabel, uploadLabel, urlPlaceholder, filePickerProps, className, style, }) {
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: className, style: style, children: [(0, jsx_runtime_1.jsx)("label", { style: { display: 'block', marginBottom: '0.25rem' }, children: label }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
10
10
|
border: '1px dashed var(--surface-border)',
|
|
11
11
|
borderRadius: 12,
|
|
12
12
|
padding: '0.75rem',
|
|
13
13
|
display: 'grid',
|
|
14
|
-
gridTemplateColumns: '80px 1fr',
|
|
14
|
+
gridTemplateColumns: 'minmax(80px, 120px) minmax(0, 1fr)',
|
|
15
15
|
gap: '0.75rem',
|
|
16
16
|
alignItems: 'center',
|
|
17
17
|
background: 'var(--surface-0)',
|
|
18
18
|
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
19
|
-
width:
|
|
20
|
-
|
|
19
|
+
width: '100%',
|
|
20
|
+
minWidth: 80,
|
|
21
|
+
height: 90,
|
|
21
22
|
borderRadius: 10,
|
|
22
23
|
background: 'var(--surface-100)',
|
|
23
24
|
display: 'flex',
|
|
24
25
|
alignItems: 'center',
|
|
25
26
|
justifyContent: 'center',
|
|
26
27
|
overflow: 'hidden',
|
|
27
|
-
}, children: value ? ((0, jsx_runtime_1.jsx)("img", { src: value, alt: "preview", style: { width: '100%', height: '100%', objectFit: 'cover' } })) : ((0, jsx_runtime_1.jsx)("i", { className: "pi pi-image", style: { fontSize: 28, color: 'var(--text-color-secondary)' } })) }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'grid', gap: '0.5rem' }, children: [typeof onChange === 'function' ? ((0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: value ?? '', onChange: (e) => onChange(e.target.value), placeholder: urlPlaceholder })) : null, (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
28
|
-
display: '
|
|
29
|
-
|
|
28
|
+
}, children: value ? ((0, jsx_runtime_1.jsx)("img", { src: value, alt: "preview", style: { width: '100%', height: '100%', objectFit: 'cover' } })) : ((0, jsx_runtime_1.jsx)("i", { className: "pi pi-image", style: { fontSize: 28, color: 'var(--text-color-secondary)' } })) }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'grid', gap: '0.5rem', minWidth: 0 }, children: [typeof onChange === 'function' ? ((0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: value ?? '', onChange: (e) => onChange(e.target.value), placeholder: urlPlaceholder, style: { width: '100%' } })) : null, (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
29
|
+
display: 'flex',
|
|
30
|
+
flexWrap: 'wrap',
|
|
30
31
|
gap: '0.75rem',
|
|
31
32
|
alignItems: 'center',
|
|
32
|
-
}, children: [(0, jsx_runtime_1.jsx)(FilePicker_1.FilePicker, { file: file, onFileChange: onFileChange, accept: "image/*", helperText: helperText, chooseLabel: chooseLabel, ...filePickerProps }), (0, jsx_runtime_1.jsx)(button_1.Button, { label: uploadLabel ?? 'Upload', icon: "pi pi-cloud-upload", onClick: onUpload, loading: uploading, disabled: !file || uploading })] }), error ? (0, jsx_runtime_1.jsx)("div", { className: "p-error", children: error }) : null] })] })] }));
|
|
33
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: { flex: '1 1 320px', minWidth: 0 }, children: (0, jsx_runtime_1.jsx)(FilePicker_1.FilePicker, { file: file, onFileChange: onFileChange, accept: "image/*", helperText: helperText, chooseLabel: chooseLabel, ...filePickerProps }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { label: uploadLabel ?? 'Upload', icon: "pi pi-cloud-upload", onClick: onUpload, loading: uploading, disabled: !file || uploading, style: { whiteSpace: 'nowrap' } })] }), error ? (0, jsx_runtime_1.jsx)("div", { className: "p-error", children: error }) : null] })] })] }));
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=ImageUploadField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploadField.js","sourceRoot":"","sources":["../../src/components/ImageUploadField.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ImageUploadField.js","sourceRoot":"","sources":["../../src/components/ImageUploadField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type SmartAvatarProps = {
|
|
3
|
+
src?: string | null;
|
|
4
|
+
name?: string | null;
|
|
5
|
+
size?: number;
|
|
6
|
+
alt?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
href?: string;
|
|
9
|
+
target?: string;
|
|
10
|
+
rel?: string;
|
|
11
|
+
onClick?: React.MouseEventHandler<HTMLElement>;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
};
|
|
15
|
+
export declare function SmartAvatar({ src, name, size, alt, title, href, target, rel, onClick, className, style, }: SmartAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=SmartAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartAvatar.d.ts","sourceRoot":"","sources":["../../src/components/SmartAvatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAUF,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,IAAI,EACJ,IAAS,EACT,GAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAiB,EACjB,GAA2B,EAC3B,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,gBAAgB,2CAsFlB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SmartAvatar = SmartAvatar;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
function getInitials(value) {
|
|
10
|
+
const parts = value.trim().split(/\s+/).filter(Boolean);
|
|
11
|
+
if (!parts.length)
|
|
12
|
+
return '?';
|
|
13
|
+
const first = parts[0]?.[0] ?? '';
|
|
14
|
+
const last = parts.length > 1 ? parts[parts.length - 1]?.[0] ?? '' : '';
|
|
15
|
+
return (first + last).toUpperCase() || '?';
|
|
16
|
+
}
|
|
17
|
+
function SmartAvatar({ src, name, size = 36, alt = '', title, href, target = '_blank', rel = 'noreferrer noopener', onClick, className, style, }) {
|
|
18
|
+
const [errored, setErrored] = react_1.default.useState(false);
|
|
19
|
+
react_1.default.useEffect(() => {
|
|
20
|
+
setErrored(false);
|
|
21
|
+
}, [src]);
|
|
22
|
+
const initials = react_1.default.useMemo(() => getInitials(name?.trim() || ''), [name]);
|
|
23
|
+
const canShowImage = Boolean(src && src.trim() && !errored);
|
|
24
|
+
const interactive = Boolean(href || onClick);
|
|
25
|
+
const baseStyle = {
|
|
26
|
+
position: 'relative',
|
|
27
|
+
width: size,
|
|
28
|
+
height: size,
|
|
29
|
+
borderRadius: 9999,
|
|
30
|
+
overflow: 'hidden',
|
|
31
|
+
border: '1px solid var(--surface-border)',
|
|
32
|
+
background: 'var(--surface-100)',
|
|
33
|
+
display: 'inline-flex',
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
justifyContent: 'center',
|
|
36
|
+
userSelect: 'none',
|
|
37
|
+
cursor: interactive ? 'pointer' : undefined,
|
|
38
|
+
...style,
|
|
39
|
+
};
|
|
40
|
+
const inner = canShowImage ? ((0, jsx_runtime_1.jsx)("img", { src: src ?? undefined, alt: alt, title: title, loading: "lazy", style: { width: '100%', height: '100%', objectFit: 'cover' }, onError: () => setErrored(true) })) : ((0, jsx_runtime_1.jsx)("span", { "aria-hidden": true, title: title, style: {
|
|
41
|
+
fontSize: Math.max(10, Math.round(size * 0.34)),
|
|
42
|
+
fontWeight: 700,
|
|
43
|
+
color: 'var(--text-700, #334155)',
|
|
44
|
+
}, children: initials }));
|
|
45
|
+
if (href) {
|
|
46
|
+
return ((0, jsx_runtime_1.jsx)("a", { href: href, target: target, rel: rel, onClick: onClick, className: className, style: { display: 'inline-flex' }, children: (0, jsx_runtime_1.jsx)("span", { style: baseStyle, "aria-label": name ?? alt, children: inner }) }));
|
|
47
|
+
}
|
|
48
|
+
return ((0, jsx_runtime_1.jsx)("span", { className: className, style: baseStyle, onClick: onClick, role: interactive ? 'button' : undefined, tabIndex: interactive ? 0 : undefined, "aria-label": name ?? alt, onKeyDown: (e) => {
|
|
49
|
+
if (!interactive)
|
|
50
|
+
return;
|
|
51
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
52
|
+
e.preventDefault();
|
|
53
|
+
onClick?.(e);
|
|
54
|
+
}
|
|
55
|
+
}, children: inner }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=SmartAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartAvatar.js","sourceRoot":"","sources":["../../src/components/SmartAvatar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type SmartCheckboxLabelPosition = 'left' | 'right';
|
|
3
|
+
type SmartCheckboxBaseProps = {
|
|
4
|
+
label?: React.ReactNode;
|
|
5
|
+
labelPosition?: SmartCheckboxLabelPosition;
|
|
6
|
+
helperText?: React.ReactNode;
|
|
7
|
+
errorText?: React.ReactNode;
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
name?: string;
|
|
13
|
+
inputId?: string;
|
|
14
|
+
tooltip?: string;
|
|
15
|
+
tooltipOptions?: unknown;
|
|
16
|
+
className?: string;
|
|
17
|
+
style?: React.CSSProperties;
|
|
18
|
+
onRawChange?: (event: unknown) => void;
|
|
19
|
+
};
|
|
20
|
+
export type SmartCheckboxProps = (SmartCheckboxBaseProps & {
|
|
21
|
+
triState?: false;
|
|
22
|
+
value?: boolean;
|
|
23
|
+
defaultValue?: boolean;
|
|
24
|
+
onValueChange?: (value: boolean) => void;
|
|
25
|
+
}) | (SmartCheckboxBaseProps & {
|
|
26
|
+
triState: true;
|
|
27
|
+
value?: boolean | null;
|
|
28
|
+
defaultValue?: boolean | null;
|
|
29
|
+
onValueChange?: (value: boolean | null) => void;
|
|
30
|
+
});
|
|
31
|
+
export declare function SmartCheckbox(props: SmartCheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=SmartCheckbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartCheckbox.d.ts","sourceRoot":"","sources":["../../src/components/SmartCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1D,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,CAAC,sBAAsB,GAAG;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C,CAAC,GACF,CAAC,sBAAsB,GAAG;IACxB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CACjD,CAAC,CAAC;AAEP,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAsHtD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SmartCheckbox = SmartCheckbox;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const checkbox_1 = require("primereact/checkbox");
|
|
10
|
+
const tristatecheckbox_1 = require("primereact/tristatecheckbox");
|
|
11
|
+
function SmartCheckbox(props) {
|
|
12
|
+
const { label, labelPosition = 'right', helperText, errorText, invalid, disabled, readOnly, required, name, inputId, tooltip, tooltipOptions, className, style, onRawChange, onValueChange, } = props;
|
|
13
|
+
const isTriState = props.triState === true;
|
|
14
|
+
const fallbackId = react_1.default.useId();
|
|
15
|
+
const checkboxId = inputId ?? `sakai-smart-checkbox-${fallbackId}`;
|
|
16
|
+
const valueProp = props.value;
|
|
17
|
+
const isControlled = valueProp !== undefined || (isTriState && valueProp === null);
|
|
18
|
+
const initialValue = react_1.default.useMemo(() => {
|
|
19
|
+
if (props.defaultValue !== undefined)
|
|
20
|
+
return props.defaultValue;
|
|
21
|
+
return isTriState ? null : false;
|
|
22
|
+
}, [isTriState, props.defaultValue]);
|
|
23
|
+
const [uncontrolledValue, setUncontrolledValue] = react_1.default.useState(initialValue);
|
|
24
|
+
const value = (isControlled ? valueProp : uncontrolledValue);
|
|
25
|
+
const showInvalid = Boolean(invalid || errorText);
|
|
26
|
+
const triStateRef = react_1.default.useRef(null);
|
|
27
|
+
const setValue = react_1.default.useCallback((next, rawEvent) => {
|
|
28
|
+
if (!isControlled)
|
|
29
|
+
setUncontrolledValue(next);
|
|
30
|
+
onValueChange?.(next);
|
|
31
|
+
onRawChange?.(rawEvent);
|
|
32
|
+
}, [isControlled, onRawChange, onValueChange]);
|
|
33
|
+
const onLabelClick = react_1.default.useCallback(() => {
|
|
34
|
+
if (disabled || readOnly)
|
|
35
|
+
return;
|
|
36
|
+
if (!isTriState)
|
|
37
|
+
return;
|
|
38
|
+
triStateRef.current?.getElement()?.click();
|
|
39
|
+
}, [disabled, isTriState, readOnly]);
|
|
40
|
+
const control = isTriState ? ((0, jsx_runtime_1.jsx)(tristatecheckbox_1.TriStateCheckbox, { ref: triStateRef, id: checkboxId, value: (value ?? null), onChange: (e) => setValue((e.value ?? null), e), disabled: disabled, readOnly: readOnly, required: required, invalid: showInvalid, tooltip: tooltip, tooltipOptions: tooltipOptions })) : ((0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { inputId: checkboxId, name: name, checked: Boolean(value), onChange: (e) => setValue(Boolean(e.checked), e), disabled: disabled, readOnly: readOnly, required: required, invalid: showInvalid, tooltip: tooltip, tooltipOptions: tooltipOptions }));
|
|
41
|
+
const labelNode = label ? (
|
|
42
|
+
// For TriStateCheckbox, htmlFor isn't supported; we forward click to the component.
|
|
43
|
+
(0, jsx_runtime_1.jsxs)("label", { className: "sakai-smart-checkbox__label", htmlFor: !isTriState ? checkboxId : undefined, onClick: isTriState ? onLabelClick : undefined, children: [label, required ? (0, jsx_runtime_1.jsx)("span", { className: "sakai-smart-checkbox__required", children: " *" }) : null] })) : null;
|
|
44
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: [
|
|
45
|
+
'sakai-smart-checkbox',
|
|
46
|
+
showInvalid ? 'sakai-smart-checkbox--invalid' : '',
|
|
47
|
+
disabled ? 'sakai-smart-checkbox--disabled' : '',
|
|
48
|
+
className ?? '',
|
|
49
|
+
]
|
|
50
|
+
.filter(Boolean)
|
|
51
|
+
.join(' '), style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "sakai-smart-checkbox__row", children: [labelPosition === 'left' ? labelNode : null, control, labelPosition === 'right' ? labelNode : null] }), errorText ? (0, jsx_runtime_1.jsx)("div", { className: "p-error sakai-smart-checkbox__helper", children: errorText }) : null, !errorText && helperText ? ((0, jsx_runtime_1.jsx)("div", { className: "sakai-smart-checkbox__helper", children: helperText })) : null] }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=SmartCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartCheckbox.js","sourceRoot":"","sources":["../../src/components/SmartCheckbox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type DataTableProps } from 'primereact/datatable';
|
|
2
3
|
import type { SmartDataTableQuery, SmartDataTableResult } from './types';
|
|
3
4
|
type SmartDataTableProps<T extends Record<string, any>> = {
|
|
4
5
|
prefix: string;
|
|
@@ -12,12 +13,17 @@ type SmartDataTableProps<T extends Record<string, any>> = {
|
|
|
12
13
|
extraKeys?: string[];
|
|
13
14
|
filterFields?: string[];
|
|
14
15
|
searchPlaceholder?: string;
|
|
16
|
+
showSearch?: boolean;
|
|
17
|
+
showClear?: boolean;
|
|
15
18
|
headerStart?: React.ReactNode;
|
|
16
19
|
headerEnd?: React.ReactNode;
|
|
17
20
|
reloadToken?: unknown;
|
|
18
21
|
debounceMs?: number;
|
|
19
22
|
tableStyle?: React.CSSProperties;
|
|
20
23
|
className?: string;
|
|
24
|
+
autoSortableColumns?: boolean;
|
|
25
|
+
autoFilterColumns?: boolean;
|
|
26
|
+
dataTableProps?: Partial<DataTableProps<any>>;
|
|
21
27
|
};
|
|
22
28
|
export declare function SmartDataTable<T extends Record<string, any>>(props: SmartDataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
23
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/SmartDataTable/SmartDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SmartDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/SmartDataTable/SmartDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEzE,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/C,CAAC;AAUF,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,2CA8L1F"}
|
|
@@ -26,6 +26,10 @@ function SmartDataTable(props) {
|
|
|
26
26
|
defaultRows: props.defaultRows,
|
|
27
27
|
extraKeys: props.extraKeys,
|
|
28
28
|
});
|
|
29
|
+
const autoSortableColumns = props.autoSortableColumns ?? true;
|
|
30
|
+
const autoFilterColumns = props.autoFilterColumns ?? true;
|
|
31
|
+
const showSearch = props.showSearch ?? true;
|
|
32
|
+
const showClear = props.showClear ?? true;
|
|
29
33
|
const [rows, setRows] = react_1.default.useState([]);
|
|
30
34
|
const [total, setTotal] = react_1.default.useState(0);
|
|
31
35
|
const [loading, setLoading] = react_1.default.useState(false);
|
|
@@ -94,11 +98,35 @@ function SmartDataTable(props) {
|
|
|
94
98
|
setSearchValue('');
|
|
95
99
|
setQuery({ page: 1, q: '', filters: {}, sortField: undefined, sortOrder: undefined }, { resetPage: true });
|
|
96
100
|
};
|
|
97
|
-
const header = ((0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header-left", children: [props.title ? (0, jsx_runtime_1.jsx)("div", { className: "rd-smart-table__title", children: props.title }) : null, props.headerStart] }), (0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header-right", children: [(0, jsx_runtime_1.jsxs)("span", { className: "p-input-icon-left rd-smart-table__search", children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-search" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: searchValue, onChange: (e) => {
|
|
101
|
+
const header = ((0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header-left", children: [props.title ? (0, jsx_runtime_1.jsx)("div", { className: "rd-smart-table__title", children: props.title }) : null, props.headerStart] }), (0, jsx_runtime_1.jsxs)("div", { className: "rd-smart-table__header-right", children: [showSearch ? ((0, jsx_runtime_1.jsxs)("span", { className: "p-input-icon-left rd-smart-table__search", children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-search" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: searchValue, onChange: (e) => {
|
|
98
102
|
const next = e.target.value;
|
|
99
103
|
setSearchValue(next);
|
|
100
104
|
setQuery({ q: next, page: 1 });
|
|
101
|
-
}, placeholder: props.searchPlaceholder ?? 'Search...' })] }), (0, jsx_runtime_1.jsx)(button_1.Button, { icon: "pi pi-filter-slash", text: true, severity: "secondary", onClick: clearAll, tooltip: "Clear filters", tooltipOptions: { position: 'top' } }), props.headerEnd] })] }));
|
|
102
|
-
|
|
105
|
+
}, placeholder: props.searchPlaceholder ?? 'Search...' })] })) : null, showClear ? ((0, jsx_runtime_1.jsx)(button_1.Button, { icon: "pi pi-filter-slash", text: true, severity: "secondary", onClick: clearAll, tooltip: "Clear filters", tooltipOptions: { position: 'top' } })) : null, props.headerEnd] })] }));
|
|
106
|
+
const enhancedChildren = react_1.default.useMemo(() => {
|
|
107
|
+
const filterable = new Set(props.filterFields ?? []);
|
|
108
|
+
return react_1.default.Children.map(props.children, (child) => {
|
|
109
|
+
if (!react_1.default.isValidElement(child))
|
|
110
|
+
return child;
|
|
111
|
+
const childProps = child.props ?? {};
|
|
112
|
+
const fieldName = typeof childProps.sortField === 'string'
|
|
113
|
+
? childProps.sortField
|
|
114
|
+
: typeof childProps.field === 'string'
|
|
115
|
+
? childProps.field
|
|
116
|
+
: undefined;
|
|
117
|
+
if (!fieldName)
|
|
118
|
+
return child;
|
|
119
|
+
const nextProps = {};
|
|
120
|
+
if (autoSortableColumns && childProps.sortable === undefined) {
|
|
121
|
+
nextProps.sortable = true;
|
|
122
|
+
}
|
|
123
|
+
if (autoFilterColumns && filterable.has(fieldName) && childProps.filter === undefined) {
|
|
124
|
+
nextProps.filter = true;
|
|
125
|
+
nextProps.showFilterMenu = false;
|
|
126
|
+
}
|
|
127
|
+
return Object.keys(nextProps).length ? react_1.default.cloneElement(child, nextProps) : child;
|
|
128
|
+
});
|
|
129
|
+
}, [autoFilterColumns, autoSortableColumns, props.children, props.filterFields]);
|
|
130
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.classNames)('rd-smart-table', props.className), children: [error ? (0, jsx_runtime_1.jsx)("div", { className: "rd-smart-table__error", children: error }) : null, (0, jsx_runtime_1.jsx)(datatable_1.DataTable, { value: rows, lazy: true, paginator: true, first: first, rows: query.rows, totalRecords: total, onPage: onPage, rowsPerPageOptions: props.rowsPerPageOptions ?? [10, 20, 50], sortField: query.sortField, sortOrder: query.sortOrder, onSort: onSort, removableSort: true, filters: filters, onFilter: props.filterFields?.length ? onFilter : undefined, filterDisplay: props.filterFields?.length ? 'row' : undefined, loading: loading, size: "small", dataKey: props.dataKey, stripedRows: true, rowHover: true, emptyMessage: props.emptyMessage, header: header, tableStyle: props.tableStyle, ...props.dataTableProps, children: enhancedChildren })] }));
|
|
103
131
|
}
|
|
104
132
|
//# sourceMappingURL=SmartDataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartDataTable.js","sourceRoot":"","sources":["../../../src/components/SmartDataTable/SmartDataTable.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"SmartDataTable.js","sourceRoot":"","sources":["../../../src/components/SmartDataTable/SmartDataTable.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { default as AppMenuitem } from './layout/AppMenuitem';
|
|
|
17
17
|
export * from './types';
|
|
18
18
|
export * from './menu/adminMenu';
|
|
19
19
|
export * from './providers/RidinProviders';
|
|
20
|
+
export { SmartDialogProvider, useSmartDialog } from './providers/SmartDialogProvider';
|
|
20
21
|
export * from './components/GlobalLoadingOverlay';
|
|
21
22
|
export * from './components/DashboardStatCard';
|
|
22
23
|
export * from './components/DashboardPanel';
|
|
@@ -24,6 +25,8 @@ export * from './components/SectionHeader';
|
|
|
24
25
|
export * from './components/ActivityList';
|
|
25
26
|
export * from './components/FilePicker';
|
|
26
27
|
export * from './components/ImageUploadField';
|
|
28
|
+
export * from './components/SmartAvatar';
|
|
29
|
+
export * from './components/SmartCheckbox';
|
|
27
30
|
export * from './components/SmartDataTable/SmartDataTable';
|
|
28
31
|
export * from './components/SmartDataTable/types';
|
|
29
32
|
export * from './components/SmartDataTable/applyClientQuery';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAElB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAElB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtF,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.AppMenuitem = exports.AppMenu = exports.AppConfig = exports.AppFooter = exports.AppSidebar = exports.AppTopbar = exports.MenuProvider = exports.MenuContext = exports.LayoutProvider = exports.LayoutContext = exports.RidinAdminLayout = exports.SakaiLayout = exports.Layout = void 0;
|
|
20
|
+
exports.useSmartDialog = exports.SmartDialogProvider = exports.AppMenuitem = exports.AppMenu = exports.AppConfig = exports.AppFooter = exports.AppSidebar = exports.AppTopbar = exports.MenuProvider = exports.MenuContext = exports.LayoutProvider = exports.LayoutContext = exports.RidinAdminLayout = exports.SakaiLayout = exports.Layout = void 0;
|
|
21
21
|
require("./styles");
|
|
22
22
|
var layout_1 = require("./layout/layout");
|
|
23
23
|
Object.defineProperty(exports, "Layout", { enumerable: true, get: function () { return __importDefault(layout_1).default; } });
|
|
@@ -47,6 +47,9 @@ Object.defineProperty(exports, "AppMenuitem", { enumerable: true, get: function
|
|
|
47
47
|
__exportStar(require("./types"), exports);
|
|
48
48
|
__exportStar(require("./menu/adminMenu"), exports);
|
|
49
49
|
__exportStar(require("./providers/RidinProviders"), exports);
|
|
50
|
+
var SmartDialogProvider_1 = require("./providers/SmartDialogProvider");
|
|
51
|
+
Object.defineProperty(exports, "SmartDialogProvider", { enumerable: true, get: function () { return SmartDialogProvider_1.SmartDialogProvider; } });
|
|
52
|
+
Object.defineProperty(exports, "useSmartDialog", { enumerable: true, get: function () { return SmartDialogProvider_1.useSmartDialog; } });
|
|
50
53
|
__exportStar(require("./components/GlobalLoadingOverlay"), exports);
|
|
51
54
|
__exportStar(require("./components/DashboardStatCard"), exports);
|
|
52
55
|
__exportStar(require("./components/DashboardPanel"), exports);
|
|
@@ -54,6 +57,8 @@ __exportStar(require("./components/SectionHeader"), exports);
|
|
|
54
57
|
__exportStar(require("./components/ActivityList"), exports);
|
|
55
58
|
__exportStar(require("./components/FilePicker"), exports);
|
|
56
59
|
__exportStar(require("./components/ImageUploadField"), exports);
|
|
60
|
+
__exportStar(require("./components/SmartAvatar"), exports);
|
|
61
|
+
__exportStar(require("./components/SmartCheckbox"), exports);
|
|
57
62
|
__exportStar(require("./components/SmartDataTable/SmartDataTable"), exports);
|
|
58
63
|
__exportStar(require("./components/SmartDataTable/types"), exports);
|
|
59
64
|
__exportStar(require("./components/SmartDataTable/applyClientQuery"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oBAAkB;AAElB,0CAAoD;AAA3C,iHAAA,OAAO,OAAU;AAE1B,oDAAmD;AAA1C,0GAAA,WAAW,OAAA;AAEpB,8DAA6D;AAApD,oHAAA,gBAAgB,OAAA;AAEzB,mEAAiD;AACjD,gEAA+E;AAAtE,8GAAA,aAAa,OAAA;AAAE,+GAAA,cAAc,OAAA;AACtC,4DAAyE;AAAhE,0GAAA,WAAW,OAAA;AAAE,2GAAA,YAAY,OAAA;AAClC,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,4CAAsD;AAA7C,mHAAA,OAAO,OAAW;AAC3B,oDAA8D;AAArD,2HAAA,OAAO,OAAe;AAC/B,0CAAwB;AACxB,mDAAiC;AACjC,6DAA2C;AAC3C,oEAAkD;AAClD,iEAA+C;AAC/C,8DAA4C;AAC5C,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,gEAA8C;AAC9C,6EAA2D;AAC3D,oEAAkD;AAClD,+EAA6D"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oBAAkB;AAElB,0CAAoD;AAA3C,iHAAA,OAAO,OAAU;AAE1B,oDAAmD;AAA1C,0GAAA,WAAW,OAAA;AAEpB,8DAA6D;AAApD,oHAAA,gBAAgB,OAAA;AAEzB,mEAAiD;AACjD,gEAA+E;AAAtE,8GAAA,aAAa,OAAA;AAAE,+GAAA,cAAc,OAAA;AACtC,4DAAyE;AAAhE,0GAAA,WAAW,OAAA;AAAE,2GAAA,YAAY,OAAA;AAClC,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,gDAA0D;AAAjD,uHAAA,OAAO,OAAa;AAC7B,4CAAsD;AAA7C,mHAAA,OAAO,OAAW;AAC3B,oDAA8D;AAArD,2HAAA,OAAO,OAAe;AAC/B,0CAAwB;AACxB,mDAAiC;AACjC,6DAA2C;AAC3C,uEAAsF;AAA7E,0HAAA,mBAAmB,OAAA;AAAE,qHAAA,cAAc,OAAA;AAC5C,oEAAkD;AAClD,iEAA+C;AAC/C,8DAA4C;AAC5C,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,gEAA8C;AAC9C,2DAAyC;AACzC,6DAA2C;AAC3C,6EAA2D;AAC3D,oEAAkD;AAClD,+EAA6D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppTopbar.d.ts","sourceRoot":"","sources":["../../src/layout/AppTopbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AppTopbar.d.ts","sourceRoot":"","sources":["../../src/layout/AppTopbar.tsx"],"names":[],"mappings":"AACA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7D,QAAA,MAAM,SAAS,qFA+Lb,CAAC;AAIH,eAAe,SAAS,CAAC"}
|
package/dist/layout/AppTopbar.js
CHANGED
|
@@ -7,6 +7,7 @@ const layoutcontext_1 = require("./context/layoutcontext");
|
|
|
7
7
|
const overlaypanel_1 = require("primereact/overlaypanel");
|
|
8
8
|
const button_1 = require("primereact/button");
|
|
9
9
|
const react_router_dom_1 = require("react-router-dom");
|
|
10
|
+
const SmartAvatar_1 = require("../components/SmartAvatar");
|
|
10
11
|
const AppTopbar = (0, react_1.forwardRef)((props, ref) => {
|
|
11
12
|
const { layoutConfig, layoutState, onMenuToggle, showProfileSidebar } = (0, react_1.useContext)(layoutcontext_1.LayoutContext);
|
|
12
13
|
const menubuttonRef = (0, react_1.useRef)(null);
|
|
@@ -75,7 +76,7 @@ const AppTopbar = (0, react_1.forwardRef)((props, ref) => {
|
|
|
75
76
|
}));
|
|
76
77
|
return ((0, jsx_runtime_1.jsxs)("div", { className: "layout-topbar", children: [(0, jsx_runtime_1.jsxs)(react_router_dom_1.Link, { to: props.logoTo ?? '/', className: "layout-topbar-logo", children: [(0, jsx_runtime_1.jsx)("img", { src: `/layout/images/logo-${layoutConfig.colorScheme !== 'light' ? 'white' : 'dark'}.svg`, width: "47.22px", height: '35px', alt: "logo" }), (0, jsx_runtime_1.jsx)("span", { children: props.logoText ?? 'SAKAI' })] }), (0, jsx_runtime_1.jsx)("button", { ref: menubuttonRef, type: "button", className: "p-link layout-menu-button layout-topbar-button", onClick: onMenuToggle, children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-bars" }) }), (0, jsx_runtime_1.jsx)("button", { ref: topbarmenubuttonRef, type: "button", className: "p-link layout-topbar-menu-button layout-topbar-button", onClick: showProfileSidebar, children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-ellipsis-v" }) }), (0, jsx_runtime_1.jsxs)("div", { ref: topbarmenuRef, className: (0, utils_1.classNames)('layout-topbar-menu', {
|
|
77
78
|
'layout-topbar-menu-mobile-active': layoutState.profileSidebarVisible,
|
|
78
|
-
}), children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "p-link layout-topbar-button", children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-calendar" }), (0, jsx_runtime_1.jsx)("span", { children: t('topbar.calendar') })] }), (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "p-link layout-topbar-button", onClick: () => navigate(props.profileTo ?? '/profile'), children: [(0, jsx_runtime_1.jsx)(
|
|
79
|
+
}), children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "p-link layout-topbar-button", children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-calendar" }), (0, jsx_runtime_1.jsx)("span", { children: t('topbar.calendar') })] }), (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "p-link layout-topbar-button", onClick: () => navigate(props.profileTo ?? '/profile'), children: [(0, jsx_runtime_1.jsx)(SmartAvatar_1.SmartAvatar, { src: avatarUrl, name: displayName, size: 24, alt: t('topbar.profile') }), (0, jsx_runtime_1.jsx)("span", { children: t('topbar.profile') })] }), (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "p-link layout-topbar-button", onClick: (e) => profileOverlayRef.current?.toggle(e), children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-cog" }), (0, jsx_runtime_1.jsx)("span", { children: t('topbar.settings') })] })] }), (0, jsx_runtime_1.jsxs)(overlaypanel_1.OverlayPanel, { ref: profileOverlayRef, className: "p-3 w-19rem", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex align-items-center mb-3 gap-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)(SmartAvatar_1.SmartAvatar, { src: avatarUrl, name: displayName, size: 48, alt: "Profile avatar", onClick: handlePickAvatar, style: { cursor: 'pointer' } }), (0, jsx_runtime_1.jsx)("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: (e) => void handleAvatarSelected(e) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "min-w-0", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-900 font-semibold truncate", children: displayName }), (0, jsx_runtime_1.jsx)("div", { className: "text-600 text-sm truncate", children: userEmail })] })] }), avatarError && (0, jsx_runtime_1.jsx)("div", { className: "p-error mb-2", children: avatarError }), (0, jsx_runtime_1.jsxs)("div", { className: "surface-50 border-round p-3 mb-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-900 font-medium mb-2", children: t('topbar.quickActions') }), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2 flex-column", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { label: t('topbar.settingsPage'), icon: "pi pi-sliders-h", className: "p-button-sm w-full", onClick: () => {
|
|
79
80
|
profileOverlayRef.current?.hide();
|
|
80
81
|
navigate(props.settingsTo ?? '/settings');
|
|
81
82
|
} }), (0, jsx_runtime_1.jsx)(react_router_dom_1.Link, { className: "w-full", to: props.profileTo ?? '/profile', children: (0, jsx_runtime_1.jsx)(button_1.Button, { label: t('topbar.profile'), icon: "pi pi-user", className: "p-button-outlined p-button-sm w-full", onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppTopbar.js","sourceRoot":"","sources":["../../src/layout/AppTopbar.tsx"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,iCAOe;AACf,2DAAwD;AACxD,0DAAuD;AACvD,8CAA2C;AAC3C,uDAAqD;
|
|
1
|
+
{"version":3,"file":"AppTopbar.js","sourceRoot":"","sources":["../../src/layout/AppTopbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RidinProviders.d.ts","sourceRoot":"","sources":["../../src/providers/RidinProviders.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RidinProviders.d.ts","sourceRoot":"","sources":["../../src/providers/RidinProviders.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAWnE"}
|
|
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RidinProviders = RidinProviders;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const api_1 = require("primereact/api");
|
|
6
|
+
const SmartDialogProvider_1 = require("./SmartDialogProvider");
|
|
6
7
|
function RidinProviders({ children }) {
|
|
7
8
|
return ((0, jsx_runtime_1.jsx)(api_1.PrimeReactProvider, { value: {
|
|
8
9
|
ripple: true,
|
|
9
10
|
hideOverlaysOnDocumentScrolling: false,
|
|
10
|
-
}, children: children }));
|
|
11
|
+
}, children: (0, jsx_runtime_1.jsx)(SmartDialogProvider_1.SmartDialogProvider, { children: children }) }));
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=RidinProviders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RidinProviders.js","sourceRoot":"","sources":["../../src/providers/RidinProviders.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"RidinProviders.js","sourceRoot":"","sources":["../../src/providers/RidinProviders.tsx"],"names":[],"mappings":";;AAIA,wCAWC;;AAdD,wCAAoD;AACpD,+DAA4D;AAE5D,SAAgB,cAAc,CAAC,EAAE,QAAQ,EAA2B;IAClE,OAAO,CACL,uBAAC,wBAAkB,IACjB,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,+BAA+B,EAAE,KAAK;SACvC,YAED,uBAAC,yCAAmB,cAAE,QAAQ,GAAuB,GAClC,CACtB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
type SmartDialogVariant = 'info' | 'success' | 'warning' | 'error';
|
|
3
|
+
type SmartDialogOptions = {
|
|
4
|
+
title?: ReactNode;
|
|
5
|
+
message: ReactNode;
|
|
6
|
+
variant?: SmartDialogVariant;
|
|
7
|
+
confirmLabel?: string;
|
|
8
|
+
cancelLabel?: string;
|
|
9
|
+
};
|
|
10
|
+
type SmartDialogContextValue = {
|
|
11
|
+
alert: (options: SmartDialogOptions) => Promise<void>;
|
|
12
|
+
confirm: (options: SmartDialogOptions) => Promise<boolean>;
|
|
13
|
+
};
|
|
14
|
+
export declare function SmartDialogProvider({ children }: {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function useSmartDialog(): SmartDialogContextValue;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=SmartDialogProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartDialogProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SmartDialogProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,KAAK,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAQF,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D,CAAC;AAqBF,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAsGxE;AAED,wBAAgB,cAAc,4BAM7B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SmartDialogProvider = SmartDialogProvider;
|
|
7
|
+
exports.useSmartDialog = useSmartDialog;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
|
+
const button_1 = require("primereact/button");
|
|
11
|
+
const dialog_1 = require("primereact/dialog");
|
|
12
|
+
const SmartDialogContext = react_1.default.createContext(null);
|
|
13
|
+
const VARIANT_META = {
|
|
14
|
+
info: { icon: 'pi pi-info-circle', color: '#2563eb' },
|
|
15
|
+
success: { icon: 'pi pi-check-circle', color: '#059669' },
|
|
16
|
+
warning: { icon: 'pi pi-exclamation-triangle', color: '#d97706' },
|
|
17
|
+
error: { icon: 'pi pi-times-circle', color: '#dc2626' },
|
|
18
|
+
};
|
|
19
|
+
const DEFAULT_CANCEL_LABEL = 'Cancel';
|
|
20
|
+
const DEFAULT_CONFIRM_LABEL = {
|
|
21
|
+
alert: 'OK',
|
|
22
|
+
confirm: 'Yes',
|
|
23
|
+
};
|
|
24
|
+
function getDefaultTitle(type) {
|
|
25
|
+
return type === 'confirm' ? 'Confirm action' : 'Notice';
|
|
26
|
+
}
|
|
27
|
+
function SmartDialogProvider({ children }) {
|
|
28
|
+
const [activeDialog, setActiveDialog] = react_1.default.useState(null);
|
|
29
|
+
const showDialog = react_1.default.useCallback((options, type) => {
|
|
30
|
+
return new Promise((resolve) => {
|
|
31
|
+
setActiveDialog({
|
|
32
|
+
...options,
|
|
33
|
+
variant: options.variant ?? (type === 'confirm' ? 'warning' : 'info'),
|
|
34
|
+
type,
|
|
35
|
+
resolve,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}, []);
|
|
39
|
+
const alert = react_1.default.useCallback((options) => showDialog(options, 'alert'), [showDialog]);
|
|
40
|
+
const confirm = react_1.default.useCallback((options) => showDialog(options, 'confirm'), [showDialog]);
|
|
41
|
+
const handleConfirm = react_1.default.useCallback(() => {
|
|
42
|
+
setActiveDialog((current) => {
|
|
43
|
+
if (current) {
|
|
44
|
+
current.resolve(current.type === 'confirm' ? true : undefined);
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
});
|
|
48
|
+
}, []);
|
|
49
|
+
const handleCancel = react_1.default.useCallback(() => {
|
|
50
|
+
setActiveDialog((current) => {
|
|
51
|
+
if (current) {
|
|
52
|
+
current.resolve(false);
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
});
|
|
56
|
+
}, []);
|
|
57
|
+
const footer = react_1.default.useMemo(() => {
|
|
58
|
+
if (!activeDialog)
|
|
59
|
+
return null;
|
|
60
|
+
const confirmSeverity = activeDialog.variant === 'error' ? 'danger' : activeDialog.variant;
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-content-end gap-2", children: [activeDialog.type === 'confirm' && ((0, jsx_runtime_1.jsx)(button_1.Button, { label: activeDialog.cancelLabel ?? DEFAULT_CANCEL_LABEL, onClick: handleCancel, severity: "secondary", type: "button" })), (0, jsx_runtime_1.jsx)(button_1.Button, { label: activeDialog.confirmLabel ?? DEFAULT_CONFIRM_LABEL[activeDialog.type], onClick: handleConfirm, severity: confirmSeverity, autoFocus: true, type: "button" })] }));
|
|
62
|
+
}, [activeDialog, handleCancel, handleConfirm]);
|
|
63
|
+
const title = activeDialog?.title ?? (activeDialog ? getDefaultTitle(activeDialog.type) : undefined);
|
|
64
|
+
const meta = activeDialog ? VARIANT_META[activeDialog.variant] : null;
|
|
65
|
+
return ((0, jsx_runtime_1.jsxs)(SmartDialogContext.Provider, { value: { alert, confirm }, children: [children, (0, jsx_runtime_1.jsx)(dialog_1.Dialog, { visible: Boolean(activeDialog), header: title, onHide: activeDialog?.type === 'confirm' ? handleCancel : handleConfirm, modal: true, closable: false, dismissableMask: false, breakpoints: { '640px': '90vw' }, style: { minWidth: '360px' }, footer: footer, focusOnShow: true, children: activeDialog && ((0, jsx_runtime_1.jsxs)("div", { className: "flex gap-4", children: [meta && ((0, jsx_runtime_1.jsx)("span", { style: { fontSize: '1.6rem', color: meta.color }, children: (0, jsx_runtime_1.jsx)("i", { className: meta.icon, "aria-hidden": true }) })), (0, jsx_runtime_1.jsx)("div", { className: "flex-1", children: (0, jsx_runtime_1.jsx)("p", { className: "m-0", children: activeDialog.message }) })] })) })] }));
|
|
66
|
+
}
|
|
67
|
+
function useSmartDialog() {
|
|
68
|
+
const context = react_1.default.useContext(SmartDialogContext);
|
|
69
|
+
if (!context) {
|
|
70
|
+
throw new Error('useSmartDialog must be used within a SmartDialogProvider');
|
|
71
|
+
}
|
|
72
|
+
return context;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=SmartDialogProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartDialogProvider.js","sourceRoot":"","sources":["../../src/providers/SmartDialogProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.sakai-smart-checkbox {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: 0.25rem;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.sakai-smart-checkbox__row {
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
gap: 0.5rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sakai-smart-checkbox__label {
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
user-select: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.sakai-smart-checkbox--disabled .sakai-smart-checkbox__label {
|
|
19
|
+
cursor: default;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.sakai-smart-checkbox__required {
|
|
23
|
+
color: var(--red-500, #ef4444);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.sakai-smart-checkbox__helper {
|
|
27
|
+
font-size: 0.875rem;
|
|
28
|
+
color: var(--text-color-secondary, #6b7280);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.sakai-smart-checkbox--invalid .sakai-smart-checkbox__helper {
|
|
32
|
+
color: var(--red-500, #ef4444);
|
|
33
|
+
}
|
package/dist/styles/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ import 'primeflex/primeflex.css';
|
|
|
2
2
|
import 'primereact/resources/primereact.min.css';
|
|
3
3
|
import 'primeicons/primeicons.css';
|
|
4
4
|
import './components/filepicker.css';
|
|
5
|
+
import './components/smartcheckbox.css';
|
|
5
6
|
import './layout/layout.scss';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,yCAAyC,CAAC;AACjD,OAAO,2BAA2B,CAAC;AACnC,OAAO,6BAA6B,CAAC;AACrC,OAAO,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,yCAAyC,CAAC;AACjD,OAAO,2BAA2B,CAAC;AACnC,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sBAAsB,CAAC"}
|
package/dist/styles/index.js
CHANGED
|
@@ -4,5 +4,6 @@ require("primeflex/primeflex.css");
|
|
|
4
4
|
require("primereact/resources/primereact.min.css");
|
|
5
5
|
require("primeicons/primeicons.css");
|
|
6
6
|
require("./components/filepicker.css");
|
|
7
|
+
require("./components/smartcheckbox.css");
|
|
7
8
|
require("./layout/layout.scss");
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/styles/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":";;AAAA,mCAAiC;AACjC,mDAAiD;AACjD,qCAAmC;AACnC,uCAAqC;AACrC,gCAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":";;AAAA,mCAAiC;AACjC,mDAAiD;AACjD,qCAAmC;AACnC,uCAAqC;AACrC,0CAAwC;AACxC,gCAA8B"}
|
package/dist/styles/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ziky/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Shared UI components/layout for RIDIN MFEs",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"sideEffects": ["**/*.css", "**/*.scss", "**/*.sass"],
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "npm run build:lib",
|
|
19
19
|
"build:lib": "node scripts/build.mjs",
|
|
20
|
+
"prepare": "npm run build:lib",
|
|
21
|
+
"prepack": "npm run build:lib",
|
|
20
22
|
"storybook": "storybook dev -p 6006 --disable-telemetry",
|
|
21
23
|
"build-storybook": "storybook build --disable-telemetry",
|
|
22
24
|
"prepublishOnly": "npm run build:lib",
|