@fangxinyan/lumina 0.1.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/LICENSE +15 -0
- package/README.md +110 -0
- package/dist/Accordion-GSBY5T5U.css +38 -0
- package/dist/Accordion.cjs +13 -0
- package/dist/Accordion.cjs.map +1 -0
- package/dist/Accordion.d.cts +21 -0
- package/dist/Accordion.d.ts +21 -0
- package/dist/Accordion.js +4 -0
- package/dist/Accordion.js.map +1 -0
- package/dist/Alert-LSKBYDRI.css +35 -0
- package/dist/Alert.cjs +13 -0
- package/dist/Alert.cjs.map +1 -0
- package/dist/Alert.d.cts +17 -0
- package/dist/Alert.d.ts +17 -0
- package/dist/Alert.js +4 -0
- package/dist/Alert.js.map +1 -0
- package/dist/AppShell-RCALXUCZ.css +162 -0
- package/dist/AppShell.cjs +24 -0
- package/dist/AppShell.cjs.map +1 -0
- package/dist/AppShell.d.cts +68 -0
- package/dist/AppShell.d.ts +68 -0
- package/dist/AppShell.js +3 -0
- package/dist/AppShell.js.map +1 -0
- package/dist/Avatar-OXDSG5Q6.css +36 -0
- package/dist/Avatar.cjs +12 -0
- package/dist/Avatar.cjs.map +1 -0
- package/dist/Avatar.d.cts +15 -0
- package/dist/Avatar.d.ts +15 -0
- package/dist/Avatar.js +3 -0
- package/dist/Avatar.js.map +1 -0
- package/dist/Button-5UI7QXGU.css +96 -0
- package/dist/Button.cjs +17 -0
- package/dist/Button.cjs.map +1 -0
- package/dist/Button.d.cts +41 -0
- package/dist/Button.d.ts +41 -0
- package/dist/Button.js +4 -0
- package/dist/Button.js.map +1 -0
- package/dist/Calendar-LHZELUDL.css +65 -0
- package/dist/Calendar.cjs +13 -0
- package/dist/Calendar.cjs.map +1 -0
- package/dist/Calendar.d.cts +16 -0
- package/dist/Calendar.d.ts +16 -0
- package/dist/Calendar.js +4 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Card-2CHHFD4Y.css +28 -0
- package/dist/Card.cjs +16 -0
- package/dist/Card.cjs.map +1 -0
- package/dist/Card.d.cts +25 -0
- package/dist/Card.d.ts +25 -0
- package/dist/Card.js +3 -0
- package/dist/Card.js.map +1 -0
- package/dist/Cascader-TO2QMSLJ.css +76 -0
- package/dist/Cascader.cjs +13 -0
- package/dist/Cascader.cjs.map +1 -0
- package/dist/Cascader.d.cts +23 -0
- package/dist/Cascader.d.ts +23 -0
- package/dist/Cascader.js +4 -0
- package/dist/Cascader.js.map +1 -0
- package/dist/Checkbox-SKJATVSN.css +72 -0
- package/dist/Checkbox.cjs +17 -0
- package/dist/Checkbox.cjs.map +1 -0
- package/dist/Checkbox.d.cts +33 -0
- package/dist/Checkbox.d.ts +33 -0
- package/dist/Checkbox.js +4 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Divider-Z37INS5E.css +49 -0
- package/dist/Divider.cjs +12 -0
- package/dist/Divider.cjs.map +1 -0
- package/dist/Divider.d.cts +12 -0
- package/dist/Divider.d.ts +12 -0
- package/dist/Divider.js +3 -0
- package/dist/Divider.js.map +1 -0
- package/dist/Empty-VM23UNLQ.css +138 -0
- package/dist/Empty.cjs +20 -0
- package/dist/Empty.cjs.map +1 -0
- package/dist/Empty.d.cts +37 -0
- package/dist/Empty.d.ts +37 -0
- package/dist/Empty.js +3 -0
- package/dist/Empty.js.map +1 -0
- package/dist/Icon.cjs +16 -0
- package/dist/Icon.cjs.map +1 -0
- package/dist/Icon.d.cts +21 -0
- package/dist/Icon.d.ts +21 -0
- package/dist/Icon.js +3 -0
- package/dist/Icon.js.map +1 -0
- package/dist/Image-WYWORJT4.css +106 -0
- package/dist/Image.cjs +17 -0
- package/dist/Image.cjs.map +1 -0
- package/dist/Image.d.cts +30 -0
- package/dist/Image.d.ts +30 -0
- package/dist/Image.js +4 -0
- package/dist/Image.js.map +1 -0
- package/dist/Input-Z526ARZP.css +66 -0
- package/dist/Input.cjs +17 -0
- package/dist/Input.cjs.map +1 -0
- package/dist/Input.d.cts +36 -0
- package/dist/Input.d.ts +36 -0
- package/dist/Input.js +4 -0
- package/dist/Input.js.map +1 -0
- package/dist/List-W5BW4D2P.css +26 -0
- package/dist/List.cjs +12 -0
- package/dist/List.cjs.map +1 -0
- package/dist/List.d.cts +20 -0
- package/dist/List.d.ts +20 -0
- package/dist/List.js +3 -0
- package/dist/List.js.map +1 -0
- package/dist/Modal-AYKNIWWQ.css +79 -0
- package/dist/Modal.cjs +18 -0
- package/dist/Modal.cjs.map +1 -0
- package/dist/Modal.d.cts +27 -0
- package/dist/Modal.d.ts +27 -0
- package/dist/Modal.js +5 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Pagination-6FFOI4NM.css +35 -0
- package/dist/Pagination.cjs +13 -0
- package/dist/Pagination.cjs.map +1 -0
- package/dist/Pagination.d.cts +19 -0
- package/dist/Pagination.d.ts +19 -0
- package/dist/Pagination.js +4 -0
- package/dist/Pagination.js.map +1 -0
- package/dist/Popover-WXEVUYBG.css +15 -0
- package/dist/Popover.cjs +12 -0
- package/dist/Popover.cjs.map +1 -0
- package/dist/Popover.d.cts +16 -0
- package/dist/Popover.d.ts +16 -0
- package/dist/Popover.js +3 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Progress-IXRSO5TW.css +63 -0
- package/dist/Progress.cjs +16 -0
- package/dist/Progress.cjs.map +1 -0
- package/dist/Progress.d.cts +26 -0
- package/dist/Progress.d.ts +26 -0
- package/dist/Progress.js +3 -0
- package/dist/Progress.js.map +1 -0
- package/dist/Select-DDJJBQEL.css +263 -0
- package/dist/Select.cjs +14 -0
- package/dist/Select.cjs.map +1 -0
- package/dist/Select.d.cts +68 -0
- package/dist/Select.d.ts +68 -0
- package/dist/Select.js +5 -0
- package/dist/Select.js.map +1 -0
- package/dist/Slider-RE4HZQKF.css +59 -0
- package/dist/Slider.cjs +12 -0
- package/dist/Slider.cjs.map +1 -0
- package/dist/Slider.d.cts +18 -0
- package/dist/Slider.d.ts +18 -0
- package/dist/Slider.js +3 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Switch-NP7KKJOX.css +44 -0
- package/dist/Switch.cjs +12 -0
- package/dist/Switch.cjs.map +1 -0
- package/dist/Switch.d.cts +18 -0
- package/dist/Switch.d.ts +18 -0
- package/dist/Switch.js +3 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Table-ZDPGWLH3.css +139 -0
- package/dist/Table.cjs +18 -0
- package/dist/Table.cjs.map +1 -0
- package/dist/Table.d.cts +57 -0
- package/dist/Table.d.ts +57 -0
- package/dist/Table.js +5 -0
- package/dist/Table.js.map +1 -0
- package/dist/Tabs-A27TSZOP.css +95 -0
- package/dist/Tabs.cjs +16 -0
- package/dist/Tabs.cjs.map +1 -0
- package/dist/Tabs.d.cts +35 -0
- package/dist/Tabs.d.ts +35 -0
- package/dist/Tabs.js +3 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tag-EYOY3UWG.css +49 -0
- package/dist/Tag.cjs +17 -0
- package/dist/Tag.cjs.map +1 -0
- package/dist/Tag.d.cts +27 -0
- package/dist/Tag.d.ts +27 -0
- package/dist/Tag.js +4 -0
- package/dist/Tag.js.map +1 -0
- package/dist/Theme.cjs +44 -0
- package/dist/Theme.cjs.map +1 -0
- package/dist/Theme.d.cts +127 -0
- package/dist/Theme.d.ts +127 -0
- package/dist/Theme.js +3 -0
- package/dist/Theme.js.map +1 -0
- package/dist/Toast-ERHDN3WG.css +45 -0
- package/dist/Toast.cjs +17 -0
- package/dist/Toast.cjs.map +1 -0
- package/dist/Toast.d.cts +26 -0
- package/dist/Toast.d.ts +26 -0
- package/dist/Toast.js +4 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Tooltip-RT4BOVTD.css +23 -0
- package/dist/Tooltip.cjs +12 -0
- package/dist/Tooltip.cjs.map +1 -0
- package/dist/Tooltip.d.cts +13 -0
- package/dist/Tooltip.d.ts +13 -0
- package/dist/Tooltip.js +3 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/chunk-2VA2HSL4.cjs +121 -0
- package/dist/chunk-2VA2HSL4.cjs.map +1 -0
- package/dist/chunk-2W2AJUZW.js +118 -0
- package/dist/chunk-2W2AJUZW.js.map +1 -0
- package/dist/chunk-3QWHDCHJ.js +53 -0
- package/dist/chunk-3QWHDCHJ.js.map +1 -0
- package/dist/chunk-3WAFIUDQ.js +85 -0
- package/dist/chunk-3WAFIUDQ.js.map +1 -0
- package/dist/chunk-4AA22BOG.js +63 -0
- package/dist/chunk-4AA22BOG.js.map +1 -0
- package/dist/chunk-4GT5TOHP.js +18 -0
- package/dist/chunk-4GT5TOHP.js.map +1 -0
- package/dist/chunk-5EYI27B6.js +64 -0
- package/dist/chunk-5EYI27B6.js.map +1 -0
- package/dist/chunk-6YVW3VYL.js +51 -0
- package/dist/chunk-6YVW3VYL.js.map +1 -0
- package/dist/chunk-77NP67ML.cjs +70 -0
- package/dist/chunk-77NP67ML.cjs.map +1 -0
- package/dist/chunk-7CKHWCEA.cjs +110 -0
- package/dist/chunk-7CKHWCEA.cjs.map +1 -0
- package/dist/chunk-7H453VPW.cjs +20 -0
- package/dist/chunk-7H453VPW.cjs.map +1 -0
- package/dist/chunk-7NM5BRUX.js +91 -0
- package/dist/chunk-7NM5BRUX.js.map +1 -0
- package/dist/chunk-7U6I44RV.cjs +283 -0
- package/dist/chunk-7U6I44RV.cjs.map +1 -0
- package/dist/chunk-AAMYURWQ.cjs +87 -0
- package/dist/chunk-AAMYURWQ.cjs.map +1 -0
- package/dist/chunk-ALFDP5WX.cjs +70 -0
- package/dist/chunk-ALFDP5WX.cjs.map +1 -0
- package/dist/chunk-C5TGQ7CV.cjs +114 -0
- package/dist/chunk-C5TGQ7CV.cjs.map +1 -0
- package/dist/chunk-F3NHM4GX.js +20 -0
- package/dist/chunk-F3NHM4GX.js.map +1 -0
- package/dist/chunk-FI7QO3I5.cjs +90 -0
- package/dist/chunk-FI7QO3I5.cjs.map +1 -0
- package/dist/chunk-FMG3ZPGK.js +88 -0
- package/dist/chunk-FMG3ZPGK.js.map +1 -0
- package/dist/chunk-G3UWXSNQ.js +71 -0
- package/dist/chunk-G3UWXSNQ.js.map +1 -0
- package/dist/chunk-GEYMWUW6.js +146 -0
- package/dist/chunk-GEYMWUW6.js.map +1 -0
- package/dist/chunk-HTP6UEVR.js +48 -0
- package/dist/chunk-HTP6UEVR.js.map +1 -0
- package/dist/chunk-I2ERCHFV.cjs +58 -0
- package/dist/chunk-I2ERCHFV.cjs.map +1 -0
- package/dist/chunk-I7SSCSFH.js +253 -0
- package/dist/chunk-I7SSCSFH.js.map +1 -0
- package/dist/chunk-IGHLSNXT.cjs +109 -0
- package/dist/chunk-IGHLSNXT.cjs.map +1 -0
- package/dist/chunk-IKI5CS4L.cjs +91 -0
- package/dist/chunk-IKI5CS4L.cjs.map +1 -0
- package/dist/chunk-ITGCHU3Y.cjs +94 -0
- package/dist/chunk-ITGCHU3Y.cjs.map +1 -0
- package/dist/chunk-JNFCTYJT.cjs +31 -0
- package/dist/chunk-JNFCTYJT.cjs.map +1 -0
- package/dist/chunk-JWFVSBVX.cjs +30 -0
- package/dist/chunk-JWFVSBVX.cjs.map +1 -0
- package/dist/chunk-K5MHL732.js +81 -0
- package/dist/chunk-K5MHL732.js.map +1 -0
- package/dist/chunk-K67KIKX4.cjs +67 -0
- package/dist/chunk-K67KIKX4.cjs.map +1 -0
- package/dist/chunk-KF4MCHZL.cjs +105 -0
- package/dist/chunk-KF4MCHZL.cjs.map +1 -0
- package/dist/chunk-M6CGYGEO.js +91 -0
- package/dist/chunk-M6CGYGEO.js.map +1 -0
- package/dist/chunk-M6OTFXZA.js +48 -0
- package/dist/chunk-M6OTFXZA.js.map +1 -0
- package/dist/chunk-NWJW5KLN.js +29 -0
- package/dist/chunk-NWJW5KLN.js.map +1 -0
- package/dist/chunk-NXOAYNG2.cjs +52 -0
- package/dist/chunk-NXOAYNG2.cjs.map +1 -0
- package/dist/chunk-NZPJ7BUB.cjs +22 -0
- package/dist/chunk-NZPJ7BUB.cjs.map +1 -0
- package/dist/chunk-OUJBCNWD.js +52 -0
- package/dist/chunk-OUJBCNWD.js.map +1 -0
- package/dist/chunk-OXYFB2ZI.js +35 -0
- package/dist/chunk-OXYFB2ZI.js.map +1 -0
- package/dist/chunk-Q33V7MSK.js +79 -0
- package/dist/chunk-Q33V7MSK.js.map +1 -0
- package/dist/chunk-QESLHLTG.cjs +107 -0
- package/dist/chunk-QESLHLTG.cjs.map +1 -0
- package/dist/chunk-QPZZNSRB.js +65 -0
- package/dist/chunk-QPZZNSRB.js.map +1 -0
- package/dist/chunk-QT7SJITQ.cjs +114 -0
- package/dist/chunk-QT7SJITQ.cjs.map +1 -0
- package/dist/chunk-RMD6KQ4H.cjs +56 -0
- package/dist/chunk-RMD6KQ4H.cjs.map +1 -0
- package/dist/chunk-T5AH4FCV.js +280 -0
- package/dist/chunk-T5AH4FCV.js.map +1 -0
- package/dist/chunk-U6ODMPTI.cjs +74 -0
- package/dist/chunk-U6ODMPTI.cjs.map +1 -0
- package/dist/chunk-V2ZUOEXM.cjs +73 -0
- package/dist/chunk-V2ZUOEXM.cjs.map +1 -0
- package/dist/chunk-VJN637MT.js +49 -0
- package/dist/chunk-VJN637MT.js.map +1 -0
- package/dist/chunk-VMHNKD3N.cjs +56 -0
- package/dist/chunk-VMHNKD3N.cjs.map +1 -0
- package/dist/chunk-VXITDXLW.js +28 -0
- package/dist/chunk-VXITDXLW.js.map +1 -0
- package/dist/chunk-XFRP2MBR.js +87 -0
- package/dist/chunk-XFRP2MBR.js.map +1 -0
- package/dist/chunk-XRZ5OKZH.js +101 -0
- package/dist/chunk-XRZ5OKZH.js.map +1 -0
- package/dist/chunk-Y6FVCCUE.js +34 -0
- package/dist/chunk-Y6FVCCUE.js.map +1 -0
- package/dist/chunk-YVO7XO4W.cjs +149 -0
- package/dist/chunk-YVO7XO4W.cjs.map +1 -0
- package/dist/chunk-ZMDVK2U3.cjs +302 -0
- package/dist/chunk-ZMDVK2U3.cjs.map +1 -0
- package/dist/chunk-ZXM247EM.cjs +123 -0
- package/dist/chunk-ZXM247EM.cjs.map +1 -0
- package/dist/index.cjs +249 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/shared-NJHRNLRH.css +4 -0
- package/dist/styles.css +2068 -0
- package/dist/tokens-HWQ7KWPG.css +153 -0
- package/dist/tokens.css +153 -0
- package/package.json +77 -0
package/dist/Select.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IconName } from './Icon.js';
|
|
3
|
+
|
|
4
|
+
interface SelectOption<T extends string | number = string> {
|
|
5
|
+
value: T;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
/** Searchable text — used by default filter when `label` isn't a string. */
|
|
8
|
+
text?: string;
|
|
9
|
+
/** Secondary line shown beneath the label. */
|
|
10
|
+
description?: React.ReactNode;
|
|
11
|
+
/** Leading icon. */
|
|
12
|
+
icon?: IconName;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface SelectOptionGroup<T extends string | number = string> {
|
|
16
|
+
/** Group heading. */
|
|
17
|
+
label: React.ReactNode;
|
|
18
|
+
options: SelectOption<T>[];
|
|
19
|
+
}
|
|
20
|
+
type SelectItem<T extends string | number = string> = SelectOption<T> | SelectOptionGroup<T>;
|
|
21
|
+
interface BaseSelectProps<T extends string | number = string> {
|
|
22
|
+
/** Flat or mixed (groups + options) item list. */
|
|
23
|
+
options: SelectItem<T>[];
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
size?: "sm" | "md" | "lg";
|
|
27
|
+
/** Show invalid (red) ring. */
|
|
28
|
+
invalid?: boolean;
|
|
29
|
+
/** Show a small × to clear the selection (single mode) or all selections (multi). */
|
|
30
|
+
clearable?: boolean;
|
|
31
|
+
/** Add a search input at the top of the menu. */
|
|
32
|
+
searchable?: boolean;
|
|
33
|
+
/** Custom filter — defaults to label/text/value substring match. */
|
|
34
|
+
filterOption?: (input: string, option: SelectOption<T>) => boolean;
|
|
35
|
+
/** Show spinner instead of options. */
|
|
36
|
+
loading?: boolean;
|
|
37
|
+
/** Custom empty content when no options match. */
|
|
38
|
+
emptyContent?: React.ReactNode;
|
|
39
|
+
/** Controlled open state. */
|
|
40
|
+
open?: boolean;
|
|
41
|
+
defaultOpen?: boolean;
|
|
42
|
+
onOpenChange?: (open: boolean) => void;
|
|
43
|
+
className?: string;
|
|
44
|
+
/** Class for the popped-out menu. */
|
|
45
|
+
menuClassName?: string;
|
|
46
|
+
}
|
|
47
|
+
interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
|
|
48
|
+
multiple?: false;
|
|
49
|
+
value?: T;
|
|
50
|
+
defaultValue?: T;
|
|
51
|
+
onChange?: (value: T) => void;
|
|
52
|
+
/** Fired when user clears the selection via the × button. */
|
|
53
|
+
onClear?: () => void;
|
|
54
|
+
}
|
|
55
|
+
interface MultiSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
|
|
56
|
+
multiple: true;
|
|
57
|
+
value?: T[];
|
|
58
|
+
defaultValue?: T[];
|
|
59
|
+
onChange?: (value: T[]) => void;
|
|
60
|
+
/** Max selected items shown as tags before collapsing to "+N". */
|
|
61
|
+
maxTagCount?: number;
|
|
62
|
+
}
|
|
63
|
+
type SelectProps<T extends string | number = string> = SingleSelectProps<T> | MultiSelectProps<T>;
|
|
64
|
+
/** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */
|
|
65
|
+
declare function Select<T extends string | number = string>(props: SingleSelectProps<T>): React.ReactElement;
|
|
66
|
+
declare function Select<T extends string | number = string>(props: MultiSelectProps<T>): React.ReactElement;
|
|
67
|
+
|
|
68
|
+
export { type MultiSelectProps, Select, type SelectItem, type SelectOption, type SelectOptionGroup, type SelectProps, type SingleSelectProps };
|
package/dist/Select.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Select.js"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/* ============ Slider ============ */
|
|
2
|
+
.slider {
|
|
3
|
+
position: relative;
|
|
4
|
+
height: 36px;
|
|
5
|
+
width: 100%;
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
}
|
|
10
|
+
.slider.disabled { opacity: 0.5; cursor: not-allowed; }
|
|
11
|
+
.slider-track {
|
|
12
|
+
position: relative;
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: 10px;
|
|
15
|
+
border-radius: 999px;
|
|
16
|
+
background: var(--bg);
|
|
17
|
+
box-shadow: var(--neu-in-sm);
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
}
|
|
20
|
+
.slider-fill {
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: 0; left: 0; bottom: 0;
|
|
23
|
+
background: linear-gradient(90deg, color-mix(in oklch, var(--accent) 70%, white), var(--accent));
|
|
24
|
+
box-shadow: 0 0 12px var(--accent-glow);
|
|
25
|
+
border-radius: 999px;
|
|
26
|
+
transition: width var(--dur-fast) var(--ease);
|
|
27
|
+
}
|
|
28
|
+
.slider-thumb {
|
|
29
|
+
position: absolute;
|
|
30
|
+
top: 50%;
|
|
31
|
+
width: 22px; height: 22px;
|
|
32
|
+
border-radius: 999px;
|
|
33
|
+
background: var(--bg-raised);
|
|
34
|
+
box-shadow: var(--neu-out-sm);
|
|
35
|
+
transform: translate(-50%, -50%);
|
|
36
|
+
transition: all var(--dur-fast) var(--ease);
|
|
37
|
+
display: grid; place-items: center;
|
|
38
|
+
}
|
|
39
|
+
.slider-thumb::after {
|
|
40
|
+
content: "";
|
|
41
|
+
width: 6px; height: 6px;
|
|
42
|
+
border-radius: 999px;
|
|
43
|
+
background: var(--accent);
|
|
44
|
+
}
|
|
45
|
+
.slider:hover .slider-thumb { transform: translate(-50%, -50%) scale(1.08); }
|
|
46
|
+
.slider input[type="range"] {
|
|
47
|
+
position: absolute;
|
|
48
|
+
inset: 0;
|
|
49
|
+
width: 100%; height: 100%;
|
|
50
|
+
opacity: 0;
|
|
51
|
+
cursor: inherit;
|
|
52
|
+
}
|
|
53
|
+
.slider-value { font-family: var(--font-mono); font-size: 12px; color: var(--accent-ink); margin-left: 10px; }
|
|
54
|
+
.slider.success .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--success) 70%, white), var(--success)); box-shadow: 0 0 10px color-mix(in oklch, var(--success) 35%, transparent); }
|
|
55
|
+
.slider.success .slider-thumb::after { background: var(--success); }
|
|
56
|
+
.slider.warning .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--warning) 70%, white), var(--warning)); box-shadow: 0 0 10px color-mix(in oklch, var(--warning) 35%, transparent); }
|
|
57
|
+
.slider.warning .slider-thumb::after { background: var(--warning); }
|
|
58
|
+
.slider.danger .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--danger) 70%, white), var(--danger)); box-shadow: 0 0 10px color-mix(in oklch, var(--danger) 35%, transparent); }
|
|
59
|
+
.slider.danger .slider-thumb::after { background: var(--danger); }
|
package/dist/Slider.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkV2ZUOEXM_cjs = require('./chunk-V2ZUOEXM.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Slider", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkV2ZUOEXM_cjs.Slider; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=Slider.cjs.map
|
|
12
|
+
//# sourceMappingURL=Slider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Slider.cjs"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface SliderProps {
|
|
4
|
+
value?: number;
|
|
5
|
+
defaultValue?: number;
|
|
6
|
+
onChange?: (value: number) => void;
|
|
7
|
+
min?: number;
|
|
8
|
+
max?: number;
|
|
9
|
+
step?: number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
showValue?: boolean;
|
|
12
|
+
tone?: "accent" | "success" | "warning" | "danger";
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/** `Slider` — neumorphic range input with grooved track. */
|
|
16
|
+
declare const Slider: React.FC<SliderProps>;
|
|
17
|
+
|
|
18
|
+
export { Slider, type SliderProps };
|
package/dist/Slider.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface SliderProps {
|
|
4
|
+
value?: number;
|
|
5
|
+
defaultValue?: number;
|
|
6
|
+
onChange?: (value: number) => void;
|
|
7
|
+
min?: number;
|
|
8
|
+
max?: number;
|
|
9
|
+
step?: number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
showValue?: boolean;
|
|
12
|
+
tone?: "accent" | "success" | "warning" | "danger";
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/** `Slider` — neumorphic range input with grooved track. */
|
|
16
|
+
declare const Slider: React.FC<SliderProps>;
|
|
17
|
+
|
|
18
|
+
export { Slider, type SliderProps };
|
package/dist/Slider.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Slider.js"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* ============ Switch ============ */
|
|
2
|
+
.switch {
|
|
3
|
+
--w: 46px;
|
|
4
|
+
--h: 26px;
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
gap: 10px;
|
|
8
|
+
font-size: 13px;
|
|
9
|
+
color: var(--fg);
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
user-select: none;
|
|
12
|
+
}
|
|
13
|
+
.switch.disabled { opacity: 0.5; cursor: not-allowed; }
|
|
14
|
+
.switch-track {
|
|
15
|
+
position: relative;
|
|
16
|
+
width: var(--w);
|
|
17
|
+
height: var(--h);
|
|
18
|
+
border: none;
|
|
19
|
+
padding: 0;
|
|
20
|
+
border-radius: 999px;
|
|
21
|
+
background: var(--bg);
|
|
22
|
+
box-shadow: var(--neu-in-sm);
|
|
23
|
+
cursor: inherit;
|
|
24
|
+
flex-shrink: 0;
|
|
25
|
+
transition: all var(--dur) var(--ease);
|
|
26
|
+
}
|
|
27
|
+
.switch.sm { --w: 36px; --h: 20px; }
|
|
28
|
+
.switch.lg { --w: 58px; --h: 32px; }
|
|
29
|
+
.switch-thumb {
|
|
30
|
+
position: absolute;
|
|
31
|
+
top: 3px;
|
|
32
|
+
left: 3px;
|
|
33
|
+
width: calc(var(--h) - 6px);
|
|
34
|
+
height: calc(var(--h) - 6px);
|
|
35
|
+
border-radius: 999px;
|
|
36
|
+
background: var(--bg-raised);
|
|
37
|
+
box-shadow: var(--neu-out-sm);
|
|
38
|
+
transition: all var(--dur) var(--ease);
|
|
39
|
+
}
|
|
40
|
+
.switch.on .switch-thumb {
|
|
41
|
+
transform: translateX(calc(var(--w) - var(--h)));
|
|
42
|
+
background: var(--accent);
|
|
43
|
+
box-shadow: 0 2px 8px var(--accent-glow), 0 0 0 1px color-mix(in oklch, var(--accent) 40%, transparent);
|
|
44
|
+
}
|
package/dist/Switch.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkALFDP5WX_cjs = require('./chunk-ALFDP5WX.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Switch", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkALFDP5WX_cjs.Switch; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=Switch.cjs.map
|
|
12
|
+
//# sourceMappingURL=Switch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Switch.cjs"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface SwitchProps {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
defaultChecked?: boolean;
|
|
6
|
+
onChange?: (checked: boolean) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
label?: React.ReactNode;
|
|
9
|
+
size?: "sm" | "md";
|
|
10
|
+
className?: string;
|
|
11
|
+
id?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `Switch` — on/off toggle. Controlled or uncontrolled.
|
|
15
|
+
*/
|
|
16
|
+
declare const Switch: React.FC<SwitchProps>;
|
|
17
|
+
|
|
18
|
+
export { Switch, type SwitchProps };
|
package/dist/Switch.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface SwitchProps {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
defaultChecked?: boolean;
|
|
6
|
+
onChange?: (checked: boolean) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
label?: React.ReactNode;
|
|
9
|
+
size?: "sm" | "md";
|
|
10
|
+
className?: string;
|
|
11
|
+
id?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* `Switch` — on/off toggle. Controlled or uncontrolled.
|
|
15
|
+
*/
|
|
16
|
+
declare const Switch: React.FC<SwitchProps>;
|
|
17
|
+
|
|
18
|
+
export { Switch, type SwitchProps };
|
package/dist/Switch.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Switch.js"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/* ============ Table ============ */
|
|
2
|
+
.table-card {
|
|
3
|
+
border-radius: var(--r-lg);
|
|
4
|
+
background: var(--bg);
|
|
5
|
+
box-shadow: var(--neu-out-sm);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
}
|
|
8
|
+
.table-wrap {
|
|
9
|
+
border-radius: var(--r-lg);
|
|
10
|
+
background: var(--bg);
|
|
11
|
+
box-shadow: var(--neu-in-sm);
|
|
12
|
+
overflow: auto;
|
|
13
|
+
}
|
|
14
|
+
.table {
|
|
15
|
+
width: 100%;
|
|
16
|
+
border-collapse: separate;
|
|
17
|
+
border-spacing: 0;
|
|
18
|
+
font-size: 13px;
|
|
19
|
+
}
|
|
20
|
+
.table th {
|
|
21
|
+
text-align: left;
|
|
22
|
+
padding: 14px 18px;
|
|
23
|
+
background: var(--bg);
|
|
24
|
+
font-size: 11px;
|
|
25
|
+
font-weight: 700;
|
|
26
|
+
letter-spacing: 0.08em;
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
color: var(--fg-subtle);
|
|
29
|
+
border-bottom: 1px solid var(--divider);
|
|
30
|
+
position: sticky; top: 0;
|
|
31
|
+
z-index: 1;
|
|
32
|
+
}
|
|
33
|
+
.table th.sortable { cursor: pointer; user-select: none; }
|
|
34
|
+
.table th.sortable:hover { color: var(--fg); }
|
|
35
|
+
.table th .sort-ind {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
width: 16px; height: 16px;
|
|
38
|
+
border-radius: 6px;
|
|
39
|
+
background: var(--bg);
|
|
40
|
+
box-shadow: var(--neu-flat);
|
|
41
|
+
align-items: center; justify-content: center;
|
|
42
|
+
margin-left: 6px;
|
|
43
|
+
color: var(--fg-subtle);
|
|
44
|
+
vertical-align: middle;
|
|
45
|
+
}
|
|
46
|
+
.table th.sorted .sort-ind { color: var(--accent); box-shadow: var(--neu-in-sm); }
|
|
47
|
+
.table td {
|
|
48
|
+
padding: 12px 18px;
|
|
49
|
+
border-bottom: 1px solid var(--divider);
|
|
50
|
+
vertical-align: middle;
|
|
51
|
+
}
|
|
52
|
+
.table.hoverable tbody tr:hover td { background: color-mix(in oklch, var(--accent-soft) 40%, transparent); }
|
|
53
|
+
.table tbody tr.clickable { cursor: pointer; }
|
|
54
|
+
.table tbody tr.selected td { background: color-mix(in oklch, var(--accent-soft) 80%, transparent); color: var(--accent-ink); }
|
|
55
|
+
.table tbody tr:last-child td { border-bottom: none; }
|
|
56
|
+
.table.striped tbody tr:nth-child(even) td {
|
|
57
|
+
background: color-mix(in oklch, var(--bg-sunken) 40%, transparent);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Embossed: each row sits on the surface */
|
|
61
|
+
.table.embossed { border-spacing: 0; }
|
|
62
|
+
.table.embossed tbody td {
|
|
63
|
+
background: var(--bg);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Card-row variant: each row is its own raised pill */
|
|
67
|
+
.table.cards {
|
|
68
|
+
border-collapse: separate;
|
|
69
|
+
border-spacing: 0 10px;
|
|
70
|
+
padding: 10px;
|
|
71
|
+
background: transparent;
|
|
72
|
+
box-shadow: none;
|
|
73
|
+
}
|
|
74
|
+
.table.cards thead th {
|
|
75
|
+
background: transparent;
|
|
76
|
+
border-bottom: none;
|
|
77
|
+
padding-top: 0;
|
|
78
|
+
padding-bottom: 6px;
|
|
79
|
+
}
|
|
80
|
+
.table.cards tbody td {
|
|
81
|
+
background: var(--bg);
|
|
82
|
+
border-bottom: none;
|
|
83
|
+
padding: 14px 18px;
|
|
84
|
+
}
|
|
85
|
+
.table.cards tbody td:first-child {
|
|
86
|
+
border-radius: var(--r-md) 0 0 var(--r-md);
|
|
87
|
+
box-shadow: -4px 4px 8px var(--shadow-dark), -4px -4px 8px var(--shadow-light);
|
|
88
|
+
}
|
|
89
|
+
.table.cards tbody td:last-child {
|
|
90
|
+
border-radius: 0 var(--r-md) var(--r-md) 0;
|
|
91
|
+
box-shadow: 4px 4px 8px var(--shadow-dark), 4px -4px 8px var(--shadow-light);
|
|
92
|
+
}
|
|
93
|
+
.table.cards tbody td:not(:first-child):not(:last-child) {
|
|
94
|
+
box-shadow: 0 4px 8px var(--shadow-dark), 0 -4px 8px var(--shadow-light);
|
|
95
|
+
}
|
|
96
|
+
.table.cards.hoverable tbody tr:hover td { background: var(--bg); transform: translateY(-1px); }
|
|
97
|
+
|
|
98
|
+
.table .row-check { width: 36px; }
|
|
99
|
+
.table-empty { padding: 60px 20px; text-align: center; color: var(--fg-muted); }
|
|
100
|
+
|
|
101
|
+
/* Pro: card-wrap with toolbar + table + footer */
|
|
102
|
+
.table-card {
|
|
103
|
+
border-radius: var(--r-lg);
|
|
104
|
+
background: var(--bg);
|
|
105
|
+
box-shadow: var(--neu-out-sm);
|
|
106
|
+
overflow: hidden;
|
|
107
|
+
}
|
|
108
|
+
.table-card .table-wrap { background: transparent; box-shadow: none; border-radius: 0; }
|
|
109
|
+
.table-card .table-wrap.joined { border-radius: 0; }
|
|
110
|
+
.table-toolbar {
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
gap: var(--gap-3);
|
|
114
|
+
padding: 14px 16px;
|
|
115
|
+
border-bottom: 1px solid var(--divider);
|
|
116
|
+
}
|
|
117
|
+
.table-toolbar .table-title {
|
|
118
|
+
font-size: 14px;
|
|
119
|
+
font-weight: 600;
|
|
120
|
+
margin-right: 8px;
|
|
121
|
+
}
|
|
122
|
+
.table-toolbar-main {
|
|
123
|
+
flex: 1;
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: center;
|
|
126
|
+
gap: 10px;
|
|
127
|
+
min-width: 0;
|
|
128
|
+
}
|
|
129
|
+
.table-toolbar-actions {
|
|
130
|
+
display: flex;
|
|
131
|
+
align-items: center;
|
|
132
|
+
gap: 8px;
|
|
133
|
+
flex-shrink: 0;
|
|
134
|
+
}
|
|
135
|
+
.table-footer {
|
|
136
|
+
padding: 10px 16px;
|
|
137
|
+
border-top: 1px solid var(--divider);
|
|
138
|
+
background: color-mix(in oklch, var(--bg-sunken) 30%, transparent);
|
|
139
|
+
}
|
package/dist/Table.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk2VA2HSL4_cjs = require('./chunk-2VA2HSL4.cjs');
|
|
4
|
+
require('./chunk-C5TGQ7CV.cjs');
|
|
5
|
+
require('./chunk-YVO7XO4W.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "Table", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunk2VA2HSL4_cjs.Table; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "TablePro", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return chunk2VA2HSL4_cjs.TablePro; }
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=Table.cjs.map
|
|
18
|
+
//# sourceMappingURL=Table.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Table.cjs"}
|
package/dist/Table.d.cts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
interface TableColumn<Row = any> {
|
|
5
|
+
key: string;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
/** Data key to read from row, or custom render. */
|
|
8
|
+
dataIndex?: keyof Row;
|
|
9
|
+
render?: (value: any, row: Row, index: number) => React.ReactNode;
|
|
10
|
+
width?: number | string;
|
|
11
|
+
align?: "left" | "center" | "right";
|
|
12
|
+
sortable?: boolean;
|
|
13
|
+
}
|
|
14
|
+
type TableVariant = "default" | "striped" | "embossed" | "cards";
|
|
15
|
+
interface TableProps<Row = any> {
|
|
16
|
+
columns: TableColumn<Row>[];
|
|
17
|
+
data: Row[];
|
|
18
|
+
rowKey?: keyof Row | ((row: Row) => string | number);
|
|
19
|
+
/** Visual variant. */
|
|
20
|
+
variant?: TableVariant;
|
|
21
|
+
/** Hoverable rows. */
|
|
22
|
+
hoverable?: boolean;
|
|
23
|
+
/** Striped rows (shortcut for variant="striped"). */
|
|
24
|
+
striped?: boolean;
|
|
25
|
+
/** Sort state — controlled. */
|
|
26
|
+
sortKey?: string;
|
|
27
|
+
sortDir?: "asc" | "desc";
|
|
28
|
+
onSort?: (key: string) => void;
|
|
29
|
+
/** Row selection — controlled list of selected row keys. */
|
|
30
|
+
selectable?: boolean;
|
|
31
|
+
selected?: (string | number)[];
|
|
32
|
+
onSelect?: (keys: (string | number)[]) => void;
|
|
33
|
+
/** Called when user clicks a row. */
|
|
34
|
+
onRowClick?: (row: Row, index: number) => void;
|
|
35
|
+
/** Empty state. */
|
|
36
|
+
empty?: React.ReactNode;
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/** `Table` — neumorphic data table with sorting, selection and visual variants. */
|
|
40
|
+
declare function Table<Row extends Record<string, any> = any>({ columns, data, rowKey, variant, hoverable, striped, sortKey, sortDir, onSort, selectable, selected, onSelect, onRowClick, empty, className, }: TableProps<Row>): react_jsx_runtime.JSX.Element;
|
|
41
|
+
interface TableProProps<Row = any> extends TableProps<Row> {
|
|
42
|
+
/** Toolbar slot — search input, filter, etc. */
|
|
43
|
+
toolbar?: React.ReactNode;
|
|
44
|
+
/** Right-aligned actions slot in toolbar. */
|
|
45
|
+
actions?: React.ReactNode;
|
|
46
|
+
/** Footer slot — usually <Pagination />. */
|
|
47
|
+
footer?: React.ReactNode;
|
|
48
|
+
/** Title shown above the toolbar. */
|
|
49
|
+
title?: React.ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
|
|
53
|
+
* variants, and a footer slot for pagination.
|
|
54
|
+
*/
|
|
55
|
+
declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
|
|
56
|
+
|
|
57
|
+
export { Table, type TableColumn, TablePro, type TableProProps, type TableProps, type TableVariant };
|
package/dist/Table.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
interface TableColumn<Row = any> {
|
|
5
|
+
key: string;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
/** Data key to read from row, or custom render. */
|
|
8
|
+
dataIndex?: keyof Row;
|
|
9
|
+
render?: (value: any, row: Row, index: number) => React.ReactNode;
|
|
10
|
+
width?: number | string;
|
|
11
|
+
align?: "left" | "center" | "right";
|
|
12
|
+
sortable?: boolean;
|
|
13
|
+
}
|
|
14
|
+
type TableVariant = "default" | "striped" | "embossed" | "cards";
|
|
15
|
+
interface TableProps<Row = any> {
|
|
16
|
+
columns: TableColumn<Row>[];
|
|
17
|
+
data: Row[];
|
|
18
|
+
rowKey?: keyof Row | ((row: Row) => string | number);
|
|
19
|
+
/** Visual variant. */
|
|
20
|
+
variant?: TableVariant;
|
|
21
|
+
/** Hoverable rows. */
|
|
22
|
+
hoverable?: boolean;
|
|
23
|
+
/** Striped rows (shortcut for variant="striped"). */
|
|
24
|
+
striped?: boolean;
|
|
25
|
+
/** Sort state — controlled. */
|
|
26
|
+
sortKey?: string;
|
|
27
|
+
sortDir?: "asc" | "desc";
|
|
28
|
+
onSort?: (key: string) => void;
|
|
29
|
+
/** Row selection — controlled list of selected row keys. */
|
|
30
|
+
selectable?: boolean;
|
|
31
|
+
selected?: (string | number)[];
|
|
32
|
+
onSelect?: (keys: (string | number)[]) => void;
|
|
33
|
+
/** Called when user clicks a row. */
|
|
34
|
+
onRowClick?: (row: Row, index: number) => void;
|
|
35
|
+
/** Empty state. */
|
|
36
|
+
empty?: React.ReactNode;
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/** `Table` — neumorphic data table with sorting, selection and visual variants. */
|
|
40
|
+
declare function Table<Row extends Record<string, any> = any>({ columns, data, rowKey, variant, hoverable, striped, sortKey, sortDir, onSort, selectable, selected, onSelect, onRowClick, empty, className, }: TableProps<Row>): react_jsx_runtime.JSX.Element;
|
|
41
|
+
interface TableProProps<Row = any> extends TableProps<Row> {
|
|
42
|
+
/** Toolbar slot — search input, filter, etc. */
|
|
43
|
+
toolbar?: React.ReactNode;
|
|
44
|
+
/** Right-aligned actions slot in toolbar. */
|
|
45
|
+
actions?: React.ReactNode;
|
|
46
|
+
/** Footer slot — usually <Pagination />. */
|
|
47
|
+
footer?: React.ReactNode;
|
|
48
|
+
/** Title shown above the toolbar. */
|
|
49
|
+
title?: React.ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `TablePro` — full-featured table card with toolbar, sortable/selectable rows,
|
|
53
|
+
* variants, and a footer slot for pagination.
|
|
54
|
+
*/
|
|
55
|
+
declare function TablePro<Row extends Record<string, any> = any>({ toolbar, actions, footer, title, className, ...tableProps }: TableProProps<Row>): react_jsx_runtime.JSX.Element;
|
|
56
|
+
|
|
57
|
+
export { Table, type TableColumn, TablePro, type TableProProps, type TableProps, type TableVariant };
|
package/dist/Table.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"Table.js"}
|