@donotdev/components 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced/Bento/Bento.d.ts +0 -9
- package/dist/advanced/Bento/Bento.d.ts.map +1 -1
- package/dist/advanced/Bento/Bento.js +10 -0
- package/dist/advanced/Code/Code.d.ts +1 -9
- package/dist/advanced/Code/Code.d.ts.map +1 -1
- package/dist/atomic/Accordion/index.d.ts.map +1 -1
- package/dist/atomic/Accordion/index.js +1 -1
- package/dist/atomic/ActionButton/index.d.ts.map +1 -1
- package/dist/atomic/AlertDialog/AlertDialogPrimitive.d.ts.map +1 -1
- package/dist/atomic/AlertDialog/index.js +2 -2
- package/dist/atomic/Avatar/AvatarPrimitive.d.ts +1 -1
- package/dist/atomic/Avatar/AvatarPrimitive.d.ts.map +1 -1
- package/dist/atomic/Avatar/AvatarPrimitive.js +0 -1
- package/dist/atomic/Blockquote/index.d.ts +1 -9
- package/dist/atomic/Blockquote/index.d.ts.map +1 -1
- package/dist/atomic/Button/index.d.ts +18 -1
- package/dist/atomic/Button/index.d.ts.map +1 -1
- package/dist/atomic/Button/index.js +19 -6
- package/dist/atomic/Calendar/index.d.ts.map +1 -1
- package/dist/atomic/Calendar/index.js +4 -3
- package/dist/atomic/Checkbox/CheckboxPrimitive.d.ts +1 -1
- package/dist/atomic/Checkbox/CheckboxPrimitive.d.ts.map +1 -1
- package/dist/atomic/Checkbox/CheckboxPrimitive.js +0 -1
- package/dist/atomic/Checkbox/index.d.ts +1 -1
- package/dist/atomic/Checkbox/index.d.ts.map +1 -1
- package/dist/atomic/Checkbox/index.js +2 -2
- package/dist/atomic/Collapsible/CollapsiblePrimitive.d.ts +1 -1
- package/dist/atomic/Collapsible/CollapsiblePrimitive.d.ts.map +1 -1
- package/dist/atomic/Collapsible/CollapsiblePrimitive.js +0 -1
- package/dist/atomic/Collapsible/index.d.ts.map +1 -1
- package/dist/atomic/Collapsible/index.js +2 -6
- package/dist/atomic/Combobox/index.d.ts +9 -47
- package/dist/atomic/Combobox/index.d.ts.map +1 -1
- package/dist/atomic/Combobox/index.js +136 -88
- package/dist/atomic/CommandDialog/index.d.ts.map +1 -1
- package/dist/atomic/CommandDialog/index.js +1 -1
- package/dist/atomic/ContextMenu/ContextMenuPrimitive.d.ts +1 -1
- package/dist/atomic/ContextMenu/ContextMenuPrimitive.d.ts.map +1 -1
- package/dist/atomic/ContextMenu/ContextMenuPrimitive.js +0 -1
- package/dist/atomic/ContextMenu/index.d.ts.map +1 -1
- package/dist/atomic/Dialog/DialogPrimitive.d.ts.map +1 -1
- package/dist/atomic/Dialog/index.d.ts.map +1 -1
- package/dist/atomic/Dialog/index.js +2 -2
- package/dist/atomic/DropdownMenu/index.d.ts.map +1 -1
- package/dist/atomic/DropdownMenu/index.js +18 -4
- package/dist/atomic/DualCard/index.d.ts +10 -2
- package/dist/atomic/DualCard/index.d.ts.map +1 -1
- package/dist/atomic/DualCard/index.js +3 -3
- package/dist/atomic/FeatureFallback/index.js +1 -1
- package/dist/atomic/HoverCard/HoverCardPrimitive.d.ts +1 -1
- package/dist/atomic/HoverCard/HoverCardPrimitive.d.ts.map +1 -1
- package/dist/atomic/HoverCard/HoverCardPrimitive.js +0 -1
- package/dist/atomic/HoverCard/index.js +1 -1
- package/dist/atomic/Input/index.d.ts +1 -1
- package/dist/atomic/Input/index.d.ts.map +1 -1
- package/dist/atomic/Input/index.js +13 -22
- package/dist/atomic/Label/FloatingLabel.d.ts +45 -0
- package/dist/atomic/Label/FloatingLabel.d.ts.map +1 -0
- package/dist/atomic/Label/FloatingLabel.js +34 -0
- package/dist/atomic/Label/index.d.ts +5 -1
- package/dist/atomic/Label/index.d.ts.map +1 -1
- package/dist/atomic/Label/index.js +8 -2
- package/dist/atomic/List/index.d.ts +8 -0
- package/dist/atomic/List/index.d.ts.map +1 -1
- package/dist/atomic/List/index.js +1 -1
- package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.d.ts +1 -1
- package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.d.ts.map +1 -1
- package/dist/atomic/NavigationMenu/NavigationMenuPrimitive.js +0 -1
- package/dist/atomic/NavigationMenu/index.d.ts +1 -1
- package/dist/atomic/NavigationMenu/index.d.ts.map +1 -1
- package/dist/atomic/NavigationMenu/index.js +10 -1
- package/dist/atomic/Pagination/index.d.ts +1 -1
- package/dist/atomic/Pagination/index.d.ts.map +1 -1
- package/dist/atomic/PasswordInput/index.d.ts +9 -10
- package/dist/atomic/PasswordInput/index.d.ts.map +1 -1
- package/dist/atomic/PasswordInput/index.js +14 -30
- package/dist/atomic/Popover/index.d.ts +0 -8
- package/dist/atomic/Popover/index.d.ts.map +1 -1
- package/dist/atomic/Popover/index.js +1 -1
- package/dist/atomic/PortalButton/index.d.ts +8 -0
- package/dist/atomic/PortalButton/index.d.ts.map +1 -1
- package/dist/atomic/PortalButton/index.js +1 -1
- package/dist/atomic/Progress/ProgressPrimitive.d.ts +1 -1
- package/dist/atomic/Progress/ProgressPrimitive.d.ts.map +1 -1
- package/dist/atomic/Progress/ProgressPrimitive.js +0 -1
- package/dist/atomic/Progress/index.d.ts +8 -0
- package/dist/atomic/Progress/index.d.ts.map +1 -1
- package/dist/atomic/Progress/index.js +1 -1
- package/dist/atomic/RadioGroup/index.d.ts +0 -9
- package/dist/atomic/RadioGroup/index.d.ts.map +1 -1
- package/dist/atomic/RadioGroup/index.js +2 -2
- package/dist/atomic/ScrollArea/ScrollAreaPrimitive.d.ts +1 -1
- package/dist/atomic/ScrollArea/ScrollAreaPrimitive.d.ts.map +1 -1
- package/dist/atomic/ScrollArea/ScrollAreaPrimitive.js +0 -1
- package/dist/atomic/Section/index.d.ts +0 -32
- package/dist/atomic/Section/index.d.ts.map +1 -1
- package/dist/atomic/Section/index.js +6 -7
- package/dist/atomic/Select/SelectPrimitive.d.ts +1 -1
- package/dist/atomic/Select/SelectPrimitive.d.ts.map +1 -1
- package/dist/atomic/Select/SelectPrimitive.js +0 -1
- package/dist/atomic/Select/index.d.ts +3 -1
- package/dist/atomic/Select/index.d.ts.map +1 -1
- package/dist/atomic/Select/index.js +14 -24
- package/dist/atomic/Separator/SeparatorPrimitive.d.ts +1 -1
- package/dist/atomic/Separator/SeparatorPrimitive.d.ts.map +1 -1
- package/dist/atomic/Separator/SeparatorPrimitive.js +0 -1
- package/dist/atomic/Separator/index.d.ts +1 -1
- package/dist/atomic/Separator/index.d.ts.map +1 -1
- package/dist/atomic/Separator/index.js +0 -1
- package/dist/atomic/Sheet/index.d.ts +3 -1
- package/dist/atomic/Sheet/index.d.ts.map +1 -1
- package/dist/atomic/Sheet/index.js +3 -3
- package/dist/atomic/Skeleton/index.d.ts.map +1 -1
- package/dist/atomic/Skeleton/index.js +6 -3
- package/dist/atomic/Slider/SliderPrimitive.d.ts +1 -1
- package/dist/atomic/Slider/SliderPrimitive.d.ts.map +1 -1
- package/dist/atomic/Slider/SliderPrimitive.js +0 -1
- package/dist/atomic/Slider/index.d.ts +3 -2
- package/dist/atomic/Slider/index.d.ts.map +1 -1
- package/dist/atomic/Slider/index.js +2 -3
- package/dist/atomic/Slot/index.d.ts.map +1 -1
- package/dist/atomic/Stepper/index.js +1 -1
- package/dist/atomic/Switch/SwitchPrimitive.d.ts +1 -1
- package/dist/atomic/Switch/SwitchPrimitive.d.ts.map +1 -1
- package/dist/atomic/Switch/SwitchPrimitive.js +0 -1
- package/dist/atomic/Switch/index.d.ts +21 -6
- package/dist/atomic/Switch/index.d.ts.map +1 -1
- package/dist/atomic/Switch/index.js +27 -9
- package/dist/atomic/Table/index.d.ts +19 -7
- package/dist/atomic/Table/index.d.ts.map +1 -1
- package/dist/atomic/Table/index.js +25 -5
- package/dist/atomic/Tabs/TabsPrimitive.d.ts +1 -1
- package/dist/atomic/Tabs/TabsPrimitive.d.ts.map +1 -1
- package/dist/atomic/Tabs/TabsPrimitive.js +0 -1
- package/dist/atomic/Tabs/index.js +1 -1
- package/dist/atomic/Tag/index.d.ts +8 -0
- package/dist/atomic/Tag/index.d.ts.map +1 -1
- package/dist/atomic/Tag/index.js +1 -1
- package/dist/atomic/Text/index.js +1 -1
- package/dist/atomic/Textarea/index.d.ts.map +1 -1
- package/dist/atomic/ToggleGroup/ToggleGroupPrimitive.d.ts +1 -1
- package/dist/atomic/ToggleGroup/ToggleGroupPrimitive.d.ts.map +1 -1
- package/dist/atomic/Tooltip/TooltipPrimitive.d.ts +1 -1
- package/dist/atomic/Tooltip/TooltipPrimitive.d.ts.map +1 -1
- package/dist/atomic/Tooltip/TooltipPrimitive.js +0 -1
- package/dist/atomic/Tooltip/index.d.ts +6 -12
- package/dist/atomic/Tooltip/index.d.ts.map +1 -1
- package/dist/atomic/Tooltip/index.js +13 -23
- package/dist/atomic/VideoPlayer/index.js +1 -1
- package/dist/atomic/VisuallyHidden/VisuallyHiddenPrimitive.d.ts.map +1 -1
- package/dist/atomic/index.d.ts +2 -3
- package/dist/atomic/index.d.ts.map +1 -1
- package/dist/atomic/index.js +1 -2
- package/dist/hooks/useToast.d.ts +1 -25
- package/dist/hooks/useToast.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/styles/index.css +627 -68
- package/dist/utils/variants.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/atomic/Combobox/ComboboxPrimitive.d.ts +0 -18
- package/dist/atomic/Combobox/ComboboxPrimitive.d.ts.map +0 -1
- package/dist/atomic/Combobox/ComboboxPrimitive.js +0 -14
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// packages/components/src/atomic/Switch/index.tsx
|
|
3
3
|
/**
|
|
4
4
|
* @fileoverview Switch component
|
|
5
5
|
* @description Accessible switch component built on Radix UI primitives with semantic color variants.
|
|
6
|
+
* Supports optional labels for binary choices (e.g., Manual/Automatic).
|
|
6
7
|
*
|
|
7
|
-
* @version 0.0.
|
|
8
|
+
* @version 0.0.2
|
|
8
9
|
* @since 0.0.1
|
|
9
10
|
* @author AMBROISE PARK Consulting
|
|
10
11
|
*/
|
|
11
12
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
12
13
|
import { cva } from 'class-variance-authority';
|
|
13
|
-
import {} from 'react';
|
|
14
|
-
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
15
|
-
import { CONTROL_VARIANT } from '../../utils/constants';
|
|
16
14
|
import SwitchPrimitive from './SwitchPrimitive';
|
|
15
|
+
import { CONTROL_VARIANT } from '../../utils/constants';
|
|
16
|
+
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
17
17
|
import './Switch.css';
|
|
18
18
|
const switchVariants = cva('dndev-switch', {
|
|
19
19
|
variants: {
|
|
@@ -34,20 +34,38 @@ const switchVariants = cva('dndev-switch', {
|
|
|
34
34
|
});
|
|
35
35
|
/**
|
|
36
36
|
* Accessible switch control with semantic color variants.
|
|
37
|
-
* Supports
|
|
37
|
+
* Supports optional labels for binary choices with automatic active/inactive styling.
|
|
38
38
|
*
|
|
39
39
|
* @component
|
|
40
40
|
* @example
|
|
41
41
|
* ```tsx
|
|
42
|
+
* // Simple switch without labels
|
|
42
43
|
* <Switch checked={enabled} onCheckedChange={setEnabled} variant="success" />
|
|
43
|
-
*
|
|
44
|
+
*
|
|
45
|
+
* // Switch with labels (Manual/Automatic)
|
|
46
|
+
* <Switch
|
|
47
|
+
* checked={isAutomatic}
|
|
48
|
+
* onCheckedChange={setIsAutomatic}
|
|
49
|
+
* uncheckedLabel="Manual"
|
|
50
|
+
* checkedLabel="Automatic"
|
|
51
|
+
* variant="muted"
|
|
52
|
+
* />
|
|
44
53
|
* ```
|
|
45
54
|
* @param {SwitchProps} props - The props for the switch
|
|
46
55
|
* @returns {JSX.Element} The rendered switch
|
|
47
56
|
*/
|
|
48
|
-
const Switch = ({ className, variant, ...props }) => {
|
|
57
|
+
const Switch = ({ className, variant, uncheckedLabel, checkedLabel, checked, ...props }) => {
|
|
49
58
|
const variantAttrs = getVariantDataAttrs({ variant });
|
|
50
|
-
|
|
59
|
+
const hasLabels = uncheckedLabel || checkedLabel;
|
|
60
|
+
const switchElement = (_jsx(SwitchPrimitives.Root, { className: cn(switchVariants({ variant }), className), ...variantAttrs, checked: checked, ...props, children: _jsx(SwitchPrimitives.Thumb, { className: cn('dndev-switch-thumb') }) }));
|
|
61
|
+
// If no labels, return just the switch
|
|
62
|
+
if (!hasLabels) {
|
|
63
|
+
return switchElement;
|
|
64
|
+
}
|
|
65
|
+
// With labels: render [uncheckedLabel] [Switch] [checkedLabel]
|
|
66
|
+
// Add data-checked attribute to container for CSS styling
|
|
67
|
+
const isChecked = checked ?? false;
|
|
68
|
+
return (_jsxs("div", { className: "dndev-switch-with-labels", "data-checked": isChecked ? 'true' : 'false', children: [uncheckedLabel && (_jsx("span", { className: "dndev-switch-label dndev-switch-label-unchecked", children: uncheckedLabel })), switchElement, checkedLabel && (_jsx("span", { className: "dndev-switch-label dndev-switch-label-checked", children: checkedLabel }))] }));
|
|
51
69
|
};
|
|
52
70
|
export default Switch;
|
|
53
71
|
export { SwitchPrimitive, CONTROL_VARIANT as SWITCH_VARIANT };
|
|
@@ -3,9 +3,10 @@ import './Table.css';
|
|
|
3
3
|
/**
|
|
4
4
|
* Table column configuration
|
|
5
5
|
*
|
|
6
|
-
* LAYOUT
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* LAYOUT EXCEPTIONS:
|
|
7
|
+
* - `width`: Layout control for structural column layout (not styling)
|
|
8
|
+
* - `render`: Render prop pattern for custom cell content (modern children pattern)
|
|
9
|
+
* This is the preferred way to handle dynamic cell content vs nested component composition.
|
|
9
10
|
*
|
|
10
11
|
* @version 0.0.1
|
|
11
12
|
* @since 0.0.1
|
|
@@ -13,10 +14,16 @@ import './Table.css';
|
|
|
13
14
|
*/
|
|
14
15
|
export interface TableColumn<T = any> {
|
|
15
16
|
key: string;
|
|
16
|
-
|
|
17
|
+
/** Column header - can be a string or ReactNode (e.g., Button, icon) */
|
|
18
|
+
title: string | ReactNode;
|
|
17
19
|
dataIndex?: keyof T;
|
|
18
20
|
sortable?: boolean;
|
|
19
21
|
filterable?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Render prop for custom cell content - RENDER PROP EXCEPTION
|
|
24
|
+
* Modern pattern for dynamic content generation. Preferred over nested component composition.
|
|
25
|
+
* Allows rendering custom components (buttons, inputs, etc.) within table cells.
|
|
26
|
+
*/
|
|
20
27
|
render?: (value: any, record: T, index: number) => ReactNode;
|
|
21
28
|
/**
|
|
22
29
|
* Column width - LAYOUT EXCEPTION
|
|
@@ -26,9 +33,10 @@ export interface TableColumn<T = any> {
|
|
|
26
33
|
width?: string | number;
|
|
27
34
|
/**
|
|
28
35
|
* Text alignment - LAYOUT CONTROL
|
|
29
|
-
* Semantic alignment for data presentation (
|
|
36
|
+
* Semantic alignment for data presentation (start for text, end for numbers).
|
|
37
|
+
* Uses logical alignment for RTL support.
|
|
30
38
|
*/
|
|
31
|
-
align?: '
|
|
39
|
+
align?: 'start' | 'center' | 'end';
|
|
32
40
|
}
|
|
33
41
|
/**
|
|
34
42
|
* Data table component props
|
|
@@ -56,6 +64,8 @@ export interface DataTableProps<T = any> {
|
|
|
56
64
|
pageSize?: number;
|
|
57
65
|
/** Loading state */
|
|
58
66
|
loading?: boolean;
|
|
67
|
+
/** Excel-like grid lines (borders on all cells) */
|
|
68
|
+
gridLines?: boolean;
|
|
59
69
|
/** Callback when sorting changes */
|
|
60
70
|
onSort?: (column: string, direction: 'asc' | 'desc') => void;
|
|
61
71
|
/** Callback when selection changes */
|
|
@@ -64,6 +74,8 @@ export interface DataTableProps<T = any> {
|
|
|
64
74
|
onSearch?: (query: string) => void;
|
|
65
75
|
/** Callback when filters change */
|
|
66
76
|
onFilter?: (filters: Record<string, any>) => void;
|
|
77
|
+
/** Callback when a row is clicked */
|
|
78
|
+
onRowClick?: (row: T) => void;
|
|
67
79
|
/** Additional CSS classes */
|
|
68
80
|
className?: string;
|
|
69
81
|
}
|
|
@@ -98,7 +110,7 @@ declare function TableCaption({ className, ...props }: HTMLAttributes<HTMLTableC
|
|
|
98
110
|
* @param {DataTableProps} props - The props for the data table
|
|
99
111
|
* @returns {ReactNode} The rendered data table
|
|
100
112
|
*/
|
|
101
|
-
declare const DataTable: <T = any>({ data, columns, sortable, selectable, searchable, filterable, pagination, pageSize, loading, onSort, onSelect, onSearch, onFilter, className, }: DataTableProps<T>) => ReactNode;
|
|
113
|
+
declare const DataTable: <T = any>({ data, columns, sortable, selectable, searchable, filterable, pagination, pageSize, loading, gridLines, onSort, onSelect, onSearch, onFilter, onRowClick, className, }: DataTableProps<T>) => ReactNode;
|
|
102
114
|
export default Table;
|
|
103
115
|
export { TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, DataTable, };
|
|
104
116
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Table/index.tsx"],"names":[],"mappings":"AAYA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Table/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import Checkbox from '../Checkbox';
|
|
|
16
16
|
import Input from '../Input';
|
|
17
17
|
import Skeleton from '../Skeleton';
|
|
18
18
|
import Stack from '../Stack';
|
|
19
|
+
import Text from '../Text';
|
|
19
20
|
import './Table.css';
|
|
20
21
|
/**
|
|
21
22
|
* Basic Table wrapper component.
|
|
@@ -65,7 +66,7 @@ function TableCaption({ className, ...props }) {
|
|
|
65
66
|
* @param {DataTableProps} props - The props for the data table
|
|
66
67
|
* @returns {ReactNode} The rendered data table
|
|
67
68
|
*/
|
|
68
|
-
const DataTable = ({ data, columns, sortable = true, selectable = false, searchable = true, filterable = false, pagination = true, pageSize = 10, loading = false, onSort, onSelect, onSearch, onFilter, className, }) => {
|
|
69
|
+
const DataTable = ({ data, columns, sortable = true, selectable = false, searchable = true, filterable = false, pagination = true, pageSize = 10, loading = false, gridLines = false, onSort, onSelect, onSearch, onFilter, onRowClick, className, }) => {
|
|
69
70
|
const [sortColumn, setSortColumn] = useState('');
|
|
70
71
|
const [sortDirection, setSortDirection] = useState('asc');
|
|
71
72
|
const [searchQuery, setSearchQuery] = useState('');
|
|
@@ -126,13 +127,32 @@ const DataTable = ({ data, columns, sortable = true, selectable = false, searcha
|
|
|
126
127
|
setSearchQuery(query);
|
|
127
128
|
onSearch?.(query);
|
|
128
129
|
};
|
|
130
|
+
// Skeleton loading state - show real headers with simple skeleton rows
|
|
129
131
|
if (loading) {
|
|
130
|
-
return (_jsxs(Stack, { gap: "medium", children: [_jsxs(Stack, { direction: "row", align: "center", justify: "between", children: [_jsx(Skeleton, { className: "dndev-h-touch dndev-
|
|
132
|
+
return (_jsxs(Stack, { gap: "medium", children: [(searchable || filterable) && (_jsxs(Stack, { direction: "row", align: "center", justify: "between", gap: "tight", children: [searchable && (_jsx(Skeleton, { className: "dndev-h-touch dndev-flex-1" })), filterable && (_jsx(Skeleton, { className: "dndev-h-touch dndev-w-24" }))] })), _jsxs(Table, { className: cn(gridLines && 'dndev-table-grid'), children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [selectable && (_jsx(TableHead, { className: "dndev-w-touch", children: _jsx(Checkbox, { checked: false, disabled: true, "aria-label": "Select all rows" }) })), columns.map((column) => (_jsx(TableHead, { className: cn(column.sortable && 'dndev-cursor-default'), "data-sortable": column.sortable, "data-align": column.align, style: { width: column.width }, children: _jsxs(Stack, { direction: "row", align: "center", gap: "tight", children: [typeof column.title === 'string' ? (_jsx(Text, { level: "body", style: { paddingInline: 'var(--gap-sm)' }, children: column.title })) : (column.title), column.sortable && (_jsx(ChevronUp, { className: "dndev-size-md dndev-opacity-30" }))] }) }, column.key)))] }) }), _jsx(TableBody, { children: Array.from({ length: 3 }, (_, rowIndex) => (_jsxs(TableRow, { children: [selectable && (_jsx(TableCell, { className: "dndev-w-touch", children: _jsx(Skeleton, { className: "dndev-h-4 dndev-w-4" }) })), columns.map((column) => (_jsx(TableCell, { "data-align": column.align, style: { width: column.width }, children: _jsx(Skeleton, { size: "text" }) }, `skeleton-cell-${rowIndex}-${column.key}`)))] }, `skeleton-row-${rowIndex}`))) })] })] }));
|
|
131
133
|
}
|
|
132
|
-
return (_jsxs(Stack, { gap: "medium", children: [(searchable || filterable) && (_jsxs(Stack, { direction: "row", align: "center", justify: "between", gap: "tight", children: [searchable && (_jsxs(Stack, { direction: "row", align: "center", className: "dndev-relative dndev-flex-1 dndev-table-search-container", children: [_jsx(Search, { className: "dndev-table-search-icon" }), _jsx(Input, { placeholder: "Search...", value: searchQuery, onChange: (e) => handleSearch(e.target.value), className: "dndev-table-search-input" })] })), filterable && (_jsx(Button, { variant: BUTTON_VARIANT.OUTLINE, icon: Filter, children: "Filters" }))] })), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [selectable && (_jsx(TableHead, { className: "dndev-w-touch", children: _jsx(Checkbox, { checked: selectedRows.length === paginatedData.length &&
|
|
133
|
-
paginatedData.length > 0, onCheckedChange: handleSelectAll, "aria-label": "Select all rows" }) })), columns.map((column) => (_jsx(TableHead, { className: cn(column.sortable && 'dndev-cursor-pointer'), "data-sortable": column.sortable, "data-align": column.align, style: { width: column.width }, onClick: () =>
|
|
134
|
+
return (_jsxs(Stack, { gap: "medium", children: [(searchable || filterable) && (_jsxs(Stack, { direction: "row", align: "center", justify: "between", gap: "tight", children: [searchable && (_jsxs(Stack, { direction: "row", align: "center", className: "dndev-relative dndev-flex-1 dndev-table-search-container", children: [_jsx(Search, { className: "dndev-table-search-icon" }), _jsx(Input, { placeholder: "Search...", value: searchQuery, onChange: (e) => handleSearch(e.target.value), className: "dndev-table-search-input" })] })), filterable && (_jsx(Button, { variant: BUTTON_VARIANT.OUTLINE, icon: Filter, children: "Filters" }))] })), _jsxs(Table, { className: cn(gridLines && 'dndev-table-grid'), children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [selectable && (_jsx(TableHead, { className: "dndev-w-touch", children: _jsx(Checkbox, { checked: selectedRows.length === paginatedData.length &&
|
|
135
|
+
paginatedData.length > 0, onCheckedChange: handleSelectAll, "aria-label": "Select all rows" }) })), columns.map((column) => (_jsx(TableHead, { className: cn(column.sortable && 'dndev-cursor-pointer'), "data-sortable": column.sortable, "data-align": column.align, style: { width: column.width }, onClick: (e) => {
|
|
136
|
+
// Only sort if clicking on header, not on interactive elements (buttons, inputs, etc.)
|
|
137
|
+
if (column.sortable) {
|
|
138
|
+
const target = e.target;
|
|
139
|
+
const isInteractive = target.closest('button, input, a, [role="button"]');
|
|
140
|
+
if (!isInteractive) {
|
|
141
|
+
handleSort(column.key);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}, children: _jsxs(Stack, { direction: "row", align: "center", gap: "tight", children: [typeof column.title === 'string' ? (_jsx(Text, { level: "body", style: { paddingInline: 'var(--gap-sm)' }, children: column.title })) : (column.title), column.sortable &&
|
|
134
145
|
sortColumn === column.key &&
|
|
135
|
-
(sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "dndev-size-md" })) : (_jsx(ChevronDown, { className: "dndev-size-md" })))] }) }, column.key)))] }) }), _jsx(TableBody, { children: paginatedData.map((row, index) => (_jsxs(TableRow, {
|
|
146
|
+
(sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "dndev-size-md" })) : (_jsx(ChevronDown, { className: "dndev-size-md" })))] }) }, column.key)))] }) }), _jsx(TableBody, { children: paginatedData.map((row, index) => (_jsxs(TableRow, { onClick: (e) => {
|
|
147
|
+
if (onRowClick) {
|
|
148
|
+
const target = e.target;
|
|
149
|
+
// Prevent row click if clicking interactive elements
|
|
150
|
+
const isInteractive = target.closest('button, a, input, [role="button"], label');
|
|
151
|
+
if (!isInteractive) {
|
|
152
|
+
onRowClick(row);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}, className: cn(onRowClick && 'dndev-cursor-pointer dndev-hover-bg-muted'), children: [selectable && (_jsx(TableCell, { children: _jsx(Checkbox, { checked: selectedRows.includes(row), onCheckedChange: (checked) => handleSelectRow(row, !!checked), "aria-label": `Select row ${index + 1}` }) })), columns.map((column) => (_jsx(TableCell, { "data-align": column.align, children: column.render
|
|
136
156
|
? column.render(column.dataIndex ? row[column.dataIndex] : null, row, index)
|
|
137
157
|
: column.dataIndex
|
|
138
158
|
? String(row[column.dataIndex] || '')
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @author AMBROISE PARK Consulting
|
|
8
8
|
*/
|
|
9
9
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
10
|
-
import {
|
|
10
|
+
import type { ComponentProps } from 'react';
|
|
11
11
|
declare const TabsPrimitiveRoot: import("react").ForwardRefExoticComponent<TabsPrimitive.TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
12
|
declare const TabsListPrimitive: ({ className, ...props }: ComponentProps<typeof TabsPrimitive.List>) => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
declare const TabsTriggerPrimitive: ({ className, ...props }: ComponentProps<typeof TabsPrimitive.Trigger>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tabs/TabsPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"TabsPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tabs/TabsPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAItD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,iBAAiB,oHAAqB,CAAC;AAE7C,QAAA,MAAM,iBAAiB,GAAI,yBAGxB,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,4CAE3C,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAI,yBAG3B,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,4CAM9C,CAAC;AAEF,KAAK,yBAAyB,GAAG,cAAc,CAC7C,OAAO,aAAa,CAAC,OAAO,CAC7B,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAI,qCAI3B,yBAAyB,4CAM3B,CAAC;AAEF,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -9,7 +9,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
9
9
|
* @author AMBROISE PARK Consulting
|
|
10
10
|
*/
|
|
11
11
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
12
|
-
import {} from 'react';
|
|
13
12
|
import { cn } from '../../utils/helpers';
|
|
14
13
|
const TabsPrimitiveRoot = TabsPrimitive.Root;
|
|
15
14
|
const TabsListPrimitive = ({ className, ...props }) => (_jsx(TabsPrimitive.List, { className: cn(className), ...props }));
|
|
@@ -10,8 +10,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
*/
|
|
11
11
|
import { cva } from 'class-variance-authority';
|
|
12
12
|
import TabsPrimitive, { TabsListPrimitive, TabsTriggerPrimitive, TabsContentPrimitive, } from './TabsPrimitive';
|
|
13
|
-
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
14
13
|
import { THEME_VARIANT } from '../../utils/constants';
|
|
14
|
+
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
15
15
|
const tabsVariants = cva('', {
|
|
16
16
|
variants: {
|
|
17
17
|
variant: {
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tag component
|
|
3
|
+
* @description Interactive tag component for categorization and filters
|
|
4
|
+
*
|
|
5
|
+
* @version 0.0.1
|
|
6
|
+
* @since 0.0.1
|
|
7
|
+
* @author AMBROISE PARK Consulting
|
|
8
|
+
*/
|
|
1
9
|
import { type VariantProps } from 'class-variance-authority';
|
|
2
10
|
import './Tag.css';
|
|
3
11
|
import type { HTMLAttributes, ReactNode } from 'react';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tag/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tag/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,QAAA,MAAM,WAAW;;;8EAiBf,CAAC;AAEH,MAAM,WAAW,QACf,SACE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,EAChD,YAAY,CAAC,OAAO,WAAW,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,GAAG,GAAI,4FAUV,QAAQ,4CAkCV,CAAC;AAEF,eAAe,GAAG,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/atomic/Tag/index.js
CHANGED
|
@@ -8,8 +8,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
8
8
|
* @since 0.0.1
|
|
9
9
|
* @author AMBROISE PARK Consulting
|
|
10
10
|
*/
|
|
11
|
-
import { X } from 'lucide-react';
|
|
12
11
|
import { cva } from 'class-variance-authority';
|
|
12
|
+
import { X } from 'lucide-react';
|
|
13
13
|
import { cn } from '../../utils/helpers';
|
|
14
14
|
import Icon from '../Icons/Icon';
|
|
15
15
|
import './Tag.css';
|
|
@@ -9,8 +9,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
* @author AMBROISE PARK Consulting
|
|
10
10
|
*/
|
|
11
11
|
import { createElement, forwardRef, } from 'react';
|
|
12
|
-
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
13
12
|
import { THEME_VARIANT } from '../../utils/constants';
|
|
13
|
+
import { cn, getVariantDataAttrs } from '../../utils/helpers';
|
|
14
14
|
/**
|
|
15
15
|
* Text variant constants - THEME_VARIANT + CODE (Text-specific)
|
|
16
16
|
* Color variants for text styling via data-variant attribute
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Textarea/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Textarea/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,qBAAqB,CAAC,UAAU,CAAC;CAAG;AAE3E;;GAEG;AACH,QAAA,MAAM,QAAQ,4HAMb,CAAC;AAIF,eAAe,QAAQ,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @author AMBROISE PARK Consulting
|
|
9
9
|
*/
|
|
10
10
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
11
|
-
import {
|
|
11
|
+
import type { ComponentProps } from 'react';
|
|
12
12
|
export type ToggleGroupPrimitiveProps = ComponentProps<typeof ToggleGroupPrimitive.Root> & {
|
|
13
13
|
'data-variant'?: string;
|
|
14
14
|
'data-size'?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroupPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/ToggleGroup/ToggleGroupPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ToggleGroupPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/ToggleGroup/ToggleGroupPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAC;AAKrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAY5C,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,OAAO,oBAAoB,CAAC,IAAI,CACjC,GAAG;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,iBAAS,6BAA6B,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,cAAc,EAAE,WAAW,EAC3B,WAAW,EAAE,QAAQ,EACrB,GAAG,KAAK,EACT,EAAE,yBAAyB,2CAkB3B;AAED,MAAM,WAAW,6BAA8B,SAAQ,cAAc,CACnE,OAAO,oBAAoB,CAAC,IAAI,CACjC;IACC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,cAAc,EAAE,WAAW,EAC3B,WAAW,EAAE,QAAQ,EACrB,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAe/B;AAED,eAAe,6BAA6B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @author AMBROISE PARK Consulting
|
|
8
8
|
*/
|
|
9
9
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
10
|
-
import {
|
|
10
|
+
import type { ComponentProps } from 'react';
|
|
11
11
|
declare const TooltipProvider: import("react").FC<TooltipPrimitive.TooltipProviderProps>;
|
|
12
12
|
declare const TooltipPrimitiveComponent: import("react").FC<TooltipPrimitive.TooltipProps>;
|
|
13
13
|
declare const TooltipTrigger: import("react").ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tooltip/TooltipPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"TooltipPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tooltip/TooltipPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,eAAe,2DAA4B,CAAC;AAClD,QAAA,MAAM,yBAAyB,mDAAwB,CAAC;AACxD,QAAA,MAAM,cAAc,oIAA2B,CAAC;AAEhD,UAAU,mBAAoB,SAAQ,cAAc,CAClD,OAAO,gBAAgB,CAAC,OAAO,CAChC;IACC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAarB;AAED,eAAe,yBAAyB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -9,7 +9,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
9
9
|
* @author AMBROISE PARK Consulting
|
|
10
10
|
*/
|
|
11
11
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
12
|
-
import {} from 'react';
|
|
13
12
|
import { cn } from '../../utils/helpers';
|
|
14
13
|
const TooltipProvider = TooltipPrimitive.Provider;
|
|
15
14
|
const TooltipPrimitiveComponent = TooltipPrimitive.Root;
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tooltip component
|
|
3
|
-
* @description Accessible tooltip built on Radix UI primitives.
|
|
4
|
-
*
|
|
5
|
-
* Positioning: prop > CSS --tooltip-side > 'bottom'
|
|
6
|
-
* Smart hiding: Tooltip auto-hides when trigger has visible label
|
|
7
|
-
*
|
|
8
|
-
* @version 0.0.6
|
|
9
|
-
* @since 0.0.1
|
|
10
|
-
* @author AMBROISE PARK Consulting
|
|
11
|
-
*/
|
|
12
1
|
import { TooltipProvider } from './TooltipPrimitive';
|
|
13
2
|
import { type FloatingVariant } from '../../utils/constants';
|
|
14
3
|
import type { ReactNode } from 'react';
|
|
@@ -28,6 +17,11 @@ export interface TooltipProps {
|
|
|
28
17
|
* Auto-hides when trigger has visible label (e.g., button not in compact mode).
|
|
29
18
|
* Only shows tooltip when label is hidden, avoiding redundant information.
|
|
30
19
|
*
|
|
20
|
+
* Positioning priority:
|
|
21
|
+
* 1. Explicit `side` prop
|
|
22
|
+
* 2. CSS `--tooltip-side` property (set by container like Sidebar)
|
|
23
|
+
* 3. Default 'bottom'
|
|
24
|
+
*
|
|
31
25
|
* @example
|
|
32
26
|
* // Explicit side
|
|
33
27
|
* <Tooltip content="Help" side="right">...</Tooltip>
|
|
@@ -36,7 +30,7 @@ export interface TooltipProps {
|
|
|
36
30
|
* // Container-aware (sidebar sets --tooltip-side: right)
|
|
37
31
|
* <Tooltip content="Help">...</Tooltip>
|
|
38
32
|
*/
|
|
39
|
-
declare
|
|
33
|
+
declare function Tooltip({ content, children, side, align, delayDuration, variant, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
40
34
|
export default Tooltip;
|
|
41
35
|
export { TooltipProvider };
|
|
42
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tooltip/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Tooltip/index.tsx"],"names":[],"mappings":"AAiBA,OAAyB,EAGvB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,KAAK,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAS,OAAO,CAAC,EACf,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAgB,EAChB,aAAmB,EACnB,OAAO,GACR,EAAE,YAAY,2CAqDd;AAED,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
3
|
// packages/components/src/atomic/Tooltip/index.tsx
|
|
3
4
|
/**
|
|
@@ -7,36 +8,23 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
7
8
|
* Positioning: prop > CSS --tooltip-side > 'bottom'
|
|
8
9
|
* Smart hiding: Tooltip auto-hides when trigger has visible label
|
|
9
10
|
*
|
|
10
|
-
* @version 0.0.
|
|
11
|
+
* @version 0.0.7
|
|
11
12
|
* @since 0.0.1
|
|
12
13
|
* @author AMBROISE PARK Consulting
|
|
13
14
|
*/
|
|
15
|
+
import { useCallback, useRef, useState } from 'react';
|
|
14
16
|
import TooltipPrimitive, { TooltipTrigger, TooltipContent, TooltipProvider, } from './TooltipPrimitive';
|
|
15
17
|
import { FLOATING_VARIANT } from '../../utils/constants';
|
|
16
18
|
import { getVariantDataAttrs } from '../../utils/helpers';
|
|
17
|
-
import { useCallback, useRef, useState } from 'react';
|
|
18
19
|
/**
|
|
19
20
|
* Check if trigger element has a visible label.
|
|
20
|
-
*
|
|
21
|
-
* falls back to checking if label has content and isn't hidden.
|
|
21
|
+
* Returns true if label exists and has width (not hidden).
|
|
22
22
|
*/
|
|
23
23
|
function hasVisibleLabel(element) {
|
|
24
24
|
if (!element)
|
|
25
25
|
return false;
|
|
26
26
|
const label = element.querySelector('.dndev-interactive-label');
|
|
27
|
-
|
|
28
|
-
return false;
|
|
29
|
-
// Modern browsers: use checkVisibility() - avoids forced reflow
|
|
30
|
-
if ('checkVisibility' in label &&
|
|
31
|
-
typeof label.checkVisibility === 'function') {
|
|
32
|
-
return label.checkVisibility({
|
|
33
|
-
checkOpacity: true,
|
|
34
|
-
checkVisibilityCSS: true,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
// Fallback: check if element is in DOM and not display:none
|
|
38
|
-
// offsetParent is null for hidden elements (still forces reflow but only in older browsers)
|
|
39
|
-
return label.offsetParent !== null;
|
|
27
|
+
return label instanceof HTMLElement && label.offsetWidth > 0;
|
|
40
28
|
}
|
|
41
29
|
/**
|
|
42
30
|
* Accessible tooltip component.
|
|
@@ -44,6 +32,11 @@ function hasVisibleLabel(element) {
|
|
|
44
32
|
* Auto-hides when trigger has visible label (e.g., button not in compact mode).
|
|
45
33
|
* Only shows tooltip when label is hidden, avoiding redundant information.
|
|
46
34
|
*
|
|
35
|
+
* Positioning priority:
|
|
36
|
+
* 1. Explicit `side` prop
|
|
37
|
+
* 2. CSS `--tooltip-side` property (set by container like Sidebar)
|
|
38
|
+
* 3. Default 'bottom'
|
|
39
|
+
*
|
|
47
40
|
* @example
|
|
48
41
|
* // Explicit side
|
|
49
42
|
* <Tooltip content="Help" side="right">...</Tooltip>
|
|
@@ -52,7 +45,7 @@ function hasVisibleLabel(element) {
|
|
|
52
45
|
* // Container-aware (sidebar sets --tooltip-side: right)
|
|
53
46
|
* <Tooltip content="Help">...</Tooltip>
|
|
54
47
|
*/
|
|
55
|
-
|
|
48
|
+
function Tooltip({ content, children, side, align = 'center', delayDuration = 300, variant, }) {
|
|
56
49
|
const [mounted, setMounted] = useState(false);
|
|
57
50
|
const [cssSide, setCssSide] = useState(null);
|
|
58
51
|
const [open, setOpen] = useState(false);
|
|
@@ -71,13 +64,11 @@ const Tooltip = ({ content, children, side, align = 'center', delayDuration = 30
|
|
|
71
64
|
}, []);
|
|
72
65
|
// Handle open change - skip if label is visible
|
|
73
66
|
const handleOpenChange = useCallback((nextOpen) => {
|
|
74
|
-
if (!mounted)
|
|
75
|
-
return; // SSR: no-op
|
|
76
67
|
if (nextOpen && hasVisibleLabel(triggerElement.current)) {
|
|
77
68
|
return; // Label visible, don't show tooltip
|
|
78
69
|
}
|
|
79
70
|
setOpen(nextOpen);
|
|
80
|
-
}, [
|
|
71
|
+
}, []);
|
|
81
72
|
// Priority: prop > CSS > 'bottom'
|
|
82
73
|
const finalSide = side ?? cssSide ?? 'bottom';
|
|
83
74
|
const variantAttrs = getVariantDataAttrs({
|
|
@@ -85,8 +76,7 @@ const Tooltip = ({ content, children, side, align = 'center', delayDuration = 30
|
|
|
85
76
|
});
|
|
86
77
|
// Always pass open/onOpenChange to avoid controlled/uncontrolled switch
|
|
87
78
|
// During SSR (!mounted), open=false keeps it controlled but closed
|
|
88
|
-
// Wrap with TooltipProvider for SSR/static generation safety (nesting is fine)
|
|
89
79
|
return (_jsx(TooltipProvider, { children: _jsxs(TooltipPrimitive, { delayDuration: delayDuration, open: mounted ? open : false, onOpenChange: handleOpenChange, children: [_jsx(TooltipTrigger, { asChild: true, ref: triggerRef, children: children }), mounted && (_jsx(TooltipContent, { side: finalSide, align: align, ...variantAttrs, children: content }))] }) }));
|
|
90
|
-
}
|
|
80
|
+
}
|
|
91
81
|
export default Tooltip;
|
|
92
82
|
export { TooltipProvider };
|
|
@@ -10,8 +10,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
*/
|
|
11
11
|
import { Play } from 'lucide-react';
|
|
12
12
|
import { useState, useEffect, useRef } from 'react';
|
|
13
|
-
import { useTranslation } from '@donotdev/core';
|
|
14
13
|
import { useIntersectionObserver } from '@donotdev/components';
|
|
14
|
+
import { useTranslation } from '@donotdev/core';
|
|
15
15
|
import { cn } from '../../utils/helpers';
|
|
16
16
|
import Button, { BUTTON_VARIANT } from '../Button';
|
|
17
17
|
import Dialog from '../Dialog';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisuallyHiddenPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/VisuallyHidden/VisuallyHiddenPrimitive.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"VisuallyHiddenPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/VisuallyHidden/VisuallyHiddenPrimitive.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;AAIvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,uBAAuB,GAAI,yBAG9B,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,4CAEjD,CAAC;AAEF,eAAe,uBAAuB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
package/dist/atomic/index.d.ts
CHANGED
|
@@ -47,7 +47,6 @@ export { default as Collapsible } from './Collapsible';
|
|
|
47
47
|
export * from './Collapsible/CollapsiblePrimitive';
|
|
48
48
|
export type { CollapsibleProps } from './Collapsible';
|
|
49
49
|
export { default as Combobox, COMBOBOX_VARIANT } from './Combobox';
|
|
50
|
-
export * from './Combobox/ComboboxPrimitive';
|
|
51
50
|
export type { ComboboxProps, ComboboxOption, ComboboxVariant, } from './Combobox';
|
|
52
51
|
export { default as Command } from './Command';
|
|
53
52
|
export type { CommandProps, CommandItem, CommandGroup } from './Command';
|
|
@@ -79,9 +78,9 @@ export { default as InfiniteScroll } from './InfiniteScroll';
|
|
|
79
78
|
export type { InfiniteScrollProps } from './InfiniteScroll';
|
|
80
79
|
export { default as Input } from './Input';
|
|
81
80
|
export type { InputProps } from './Input';
|
|
82
|
-
export { default as Label } from './Label';
|
|
81
|
+
export { default as Label, FloatingLabel } from './Label';
|
|
83
82
|
export * from './Label/LabelPrimitive';
|
|
84
|
-
export type { LabelProps } from './Label';
|
|
83
|
+
export type { LabelProps, FloatingLabelProps } from './Label';
|
|
85
84
|
export { default as List } from './List';
|
|
86
85
|
export type { ListProps, ListItem } from './List';
|
|
87
86
|
export { default as NavigationMenu } from './NavigationMenu';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/atomic/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/atomic/index.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,YAAY,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAChE,cAAc,kCAAkC,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrD,YAAY,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChE,cAAc,4BAA4B,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,cAAc,0CAA0C,CAAC"}
|
package/dist/atomic/index.js
CHANGED
|
@@ -34,7 +34,6 @@ export * from './Checkbox/CheckboxPrimitive';
|
|
|
34
34
|
export { default as Collapsible } from './Collapsible';
|
|
35
35
|
export * from './Collapsible/CollapsiblePrimitive';
|
|
36
36
|
export { default as Combobox, COMBOBOX_VARIANT } from './Combobox';
|
|
37
|
-
export * from './Combobox/ComboboxPrimitive';
|
|
38
37
|
export { default as Command } from './Command';
|
|
39
38
|
export { default as CommandDialog } from './CommandDialog';
|
|
40
39
|
export { default as ContextMenu } from './ContextMenu';
|
|
@@ -53,7 +52,7 @@ export * from './HoverCard/HoverCardPrimitive';
|
|
|
53
52
|
export * from './Icons';
|
|
54
53
|
export { default as InfiniteScroll } from './InfiniteScroll';
|
|
55
54
|
export { default as Input } from './Input';
|
|
56
|
-
export { default as Label } from './Label';
|
|
55
|
+
export { default as Label, FloatingLabel } from './Label';
|
|
57
56
|
export * from './Label/LabelPrimitive';
|
|
58
57
|
export { default as List } from './List';
|
|
59
58
|
export { default as NavigationMenu } from './NavigationMenu';
|
package/dist/hooks/useToast.d.ts
CHANGED
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Industry-standard toast notification system
|
|
3
|
-
* @description React 19+ compatible, CSR/SSR safe toast implementation
|
|
4
|
-
*
|
|
5
|
-
* **Architecture:**
|
|
6
|
-
* - Singleton pub-sub pattern with module-level state
|
|
7
|
-
* - Zero React Context overhead
|
|
8
|
-
* - Works across component boundaries
|
|
9
|
-
* - Can be called from anywhere (even non-React code)
|
|
10
|
-
*
|
|
11
|
-
* **React 19 Compatibility:**
|
|
12
|
-
* - Uses stable setState functions (no re-subscription needed)
|
|
13
|
-
* - Empty dependency array in useEffect (best practice)
|
|
14
|
-
* - 'use client' directive for Next.js App Router
|
|
15
|
-
*
|
|
16
|
-
* **CSR/SSR Safety:**
|
|
17
|
-
* - Client-only execution via 'use client'
|
|
18
|
-
* - No hydration mismatches (toasts are ephemeral)
|
|
19
|
-
* - Module state resets on navigation (expected behavior)
|
|
20
|
-
*
|
|
21
|
-
* @version 0.0.1
|
|
22
|
-
* @since 0.0.1
|
|
23
|
-
* @author AMBROISE PARK Consulting
|
|
24
|
-
*/
|
|
25
|
-
import { type ReactNode } from 'react';
|
|
26
1
|
import type { ToastActionElement, ToastProps as ToastPrimitiveProps } from '../atomic/Toaster/ToastPrimitive';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
27
3
|
/**
|
|
28
4
|
* Toast type variants
|
|
29
5
|
*
|