@atelier-ui/react 0.1.12 → 0.2.1
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/CHANGELOG.md +30 -0
- package/README.md +3 -3
- package/package.json +1 -1
- package/src/index.d.ts +29 -29
- package/src/index.js +29 -29
- package/src/index.js.map +1 -1
- package/src/lib/accordion/{llm-accordion.css → atl-accordion.css} +8 -8
- package/src/lib/accordion/{llm-accordion.d.ts → atl-accordion.d.ts} +12 -12
- package/src/lib/accordion/{llm-accordion.d.ts.map → atl-accordion.d.ts.map} +1 -1
- package/src/lib/accordion/{llm-accordion.js → atl-accordion.js} +9 -9
- package/src/lib/accordion/{llm-accordion.js.map → atl-accordion.js.map} +1 -1
- package/src/lib/alert/{llm-alert.css → atl-alert.css} +10 -10
- package/src/lib/alert/{llm-alert.d.ts → atl-alert.d.ts} +8 -8
- package/src/lib/alert/{llm-alert.d.ts.map → atl-alert.d.ts.map} +1 -1
- package/src/lib/alert/{llm-alert.js → atl-alert.js} +4 -4
- package/src/lib/alert/{llm-alert.js.map → atl-alert.js.map} +1 -1
- package/src/lib/avatar/{llm-avatar.css → atl-avatar.css} +20 -20
- package/src/lib/avatar/{llm-avatar.d.ts → atl-avatar.d.ts} +10 -10
- package/src/lib/avatar/{llm-avatar.d.ts.map → atl-avatar.d.ts.map} +1 -1
- package/src/lib/avatar/{llm-avatar.js → atl-avatar.js} +6 -6
- package/src/lib/avatar/{llm-avatar.js.map → atl-avatar.js.map} +1 -1
- package/src/lib/badge/{llm-badge.css → atl-badge.css} +9 -9
- package/src/lib/badge/atl-badge.d.ts +27 -0
- package/src/lib/badge/{llm-badge.d.ts.map → atl-badge.d.ts.map} +1 -1
- package/src/lib/badge/{llm-badge.js → atl-badge.js} +4 -4
- package/src/lib/badge/{llm-badge.js.map → atl-badge.js.map} +1 -1
- package/src/lib/breadcrumbs/{llm-breadcrumbs.css → atl-breadcrumbs.css} +11 -11
- package/src/lib/breadcrumbs/atl-breadcrumbs.d.ts +38 -0
- package/src/lib/breadcrumbs/{llm-breadcrumbs.d.ts.map → atl-breadcrumbs.d.ts.map} +1 -1
- package/src/lib/breadcrumbs/{llm-breadcrumbs.js → atl-breadcrumbs.js} +7 -7
- package/src/lib/breadcrumbs/{llm-breadcrumbs.js.map → atl-breadcrumbs.js.map} +1 -1
- package/src/lib/button/{llm-button.css → atl-button.css} +20 -20
- package/src/lib/button/{llm-button.d.ts → atl-button.d.ts} +7 -7
- package/src/lib/button/{llm-button.d.ts.map → atl-button.d.ts.map} +1 -1
- package/src/lib/button/{llm-button.js → atl-button.js} +4 -4
- package/src/lib/button/{llm-button.js.map → atl-button.js.map} +1 -1
- package/src/lib/card/{llm-card.css → atl-card.css} +20 -20
- package/src/lib/card/{llm-card.d.ts → atl-card.d.ts} +13 -13
- package/src/lib/card/{llm-card.d.ts.map → atl-card.d.ts.map} +1 -1
- package/src/lib/card/atl-card.js +30 -0
- package/src/lib/card/{llm-card.js.map → atl-card.js.map} +1 -1
- package/src/lib/chat/{llm-chat.css → atl-chat.css} +55 -55
- package/src/lib/chat/{llm-chat.d.ts → atl-chat.d.ts} +26 -26
- package/src/lib/chat/{llm-chat.d.ts.map → atl-chat.d.ts.map} +1 -1
- package/src/lib/chat/{llm-chat.js → atl-chat.js} +21 -21
- package/src/lib/chat/{llm-chat.js.map → atl-chat.js.map} +1 -1
- package/src/lib/checkbox/{llm-checkbox.css → atl-checkbox.css} +19 -19
- package/src/lib/checkbox/{llm-checkbox.d.ts → atl-checkbox.d.ts} +6 -6
- package/src/lib/checkbox/{llm-checkbox.d.ts.map → atl-checkbox.d.ts.map} +1 -1
- package/src/lib/checkbox/{llm-checkbox.js → atl-checkbox.js} +4 -4
- package/src/lib/checkbox/{llm-checkbox.js.map → atl-checkbox.js.map} +1 -1
- package/src/lib/code-block/{llm-code-block.css → atl-code-block.css} +2 -2
- package/src/lib/code-block/{llm-code-block.d.ts → atl-code-block.d.ts} +4 -4
- package/src/lib/code-block/{llm-code-block.d.ts.map → atl-code-block.d.ts.map} +1 -1
- package/src/lib/code-block/{llm-code-block.js → atl-code-block.js} +4 -4
- package/src/lib/code-block/{llm-code-block.js.map → atl-code-block.js.map} +1 -1
- package/src/lib/combobox/{llm-combobox.css → atl-combobox.css} +24 -24
- package/src/lib/combobox/{llm-combobox.d.ts → atl-combobox.d.ts} +7 -7
- package/src/lib/combobox/{llm-combobox.d.ts.map → atl-combobox.d.ts.map} +1 -1
- package/src/lib/combobox/{llm-combobox.js → atl-combobox.js} +8 -8
- package/src/lib/combobox/{llm-combobox.js.map → atl-combobox.js.map} +1 -1
- package/src/lib/dialog/{llm-dialog.css → atl-dialog.css} +18 -18
- package/src/lib/dialog/{llm-dialog.d.ts → atl-dialog.d.ts} +12 -12
- package/src/lib/dialog/{llm-dialog.d.ts.map → atl-dialog.d.ts.map} +1 -1
- package/src/lib/dialog/{llm-dialog.js → atl-dialog.js} +13 -13
- package/src/lib/dialog/{llm-dialog.js.map → atl-dialog.js.map} +1 -1
- package/src/lib/drawer/{llm-drawer.css → atl-drawer.css} +35 -35
- package/src/lib/drawer/{llm-drawer.d.ts → atl-drawer.d.ts} +12 -12
- package/src/lib/drawer/{llm-drawer.d.ts.map → atl-drawer.d.ts.map} +1 -1
- package/src/lib/drawer/{llm-drawer.js → atl-drawer.js} +13 -13
- package/src/lib/drawer/{llm-drawer.js.map → atl-drawer.js.map} +1 -1
- package/src/lib/icon/{llm-icon.css → atl-icon.css} +4 -4
- package/src/lib/icon/atl-icon.d.ts +24 -0
- package/src/lib/icon/{llm-icon.d.ts.map → atl-icon.d.ts.map} +1 -1
- package/src/lib/icon/{llm-icon.js → atl-icon.js} +5 -5
- package/src/lib/icon/{llm-icon.js.map → atl-icon.js.map} +1 -1
- package/src/lib/input/{llm-input.css → atl-input.css} +14 -14
- package/src/lib/input/{llm-input.d.ts → atl-input.d.ts} +6 -6
- package/src/lib/input/{llm-input.d.ts.map → atl-input.d.ts.map} +1 -1
- package/src/lib/input/{llm-input.js → atl-input.js} +4 -4
- package/src/lib/input/{llm-input.js.map → atl-input.js.map} +1 -1
- package/src/lib/menu/{llm-menu.css → atl-menu.css} +11 -11
- package/src/lib/menu/{llm-menu.d.ts → atl-menu.d.ts} +13 -13
- package/src/lib/menu/{llm-menu.d.ts.map → atl-menu.d.ts.map} +1 -1
- package/src/lib/menu/{llm-menu.js → atl-menu.js} +10 -10
- package/src/lib/menu/{llm-menu.js.map → atl-menu.js.map} +1 -1
- package/src/lib/pagination/{llm-pagination.css → atl-pagination.css} +1 -1
- package/src/lib/pagination/{llm-pagination.d.ts → atl-pagination.d.ts} +6 -6
- package/src/lib/pagination/{llm-pagination.d.ts.map → atl-pagination.d.ts.map} +1 -1
- package/src/lib/pagination/{llm-pagination.js → atl-pagination.js} +4 -4
- package/src/lib/pagination/{llm-pagination.js.map → atl-pagination.js.map} +1 -1
- package/src/lib/progress/{llm-progress.css → atl-progress.css} +9 -9
- package/src/lib/progress/{llm-progress.d.ts → atl-progress.d.ts} +6 -6
- package/src/lib/progress/{llm-progress.d.ts.map → atl-progress.d.ts.map} +1 -1
- package/src/lib/progress/{llm-progress.js → atl-progress.js} +4 -4
- package/src/lib/progress/{llm-progress.js.map → atl-progress.js.map} +1 -1
- package/src/lib/radio/{llm-radio.css → atl-radio.css} +11 -11
- package/src/lib/radio/{llm-radio.d.ts → atl-radio.d.ts} +7 -7
- package/src/lib/radio/{llm-radio.d.ts.map → atl-radio.d.ts.map} +1 -1
- package/src/lib/radio/{llm-radio.js → atl-radio.js} +6 -6
- package/src/lib/radio/{llm-radio.js.map → atl-radio.js.map} +1 -1
- package/src/lib/radio-group/{llm-radio-group.css → atl-radio-group.css} +6 -6
- package/src/lib/radio-group/{llm-radio-group.d.ts → atl-radio-group.d.ts} +6 -6
- package/src/lib/radio-group/{llm-radio-group.d.ts.map → atl-radio-group.d.ts.map} +1 -1
- package/src/lib/radio-group/{llm-radio-group.js → atl-radio-group.js} +4 -4
- package/src/lib/radio-group/{llm-radio-group.js.map → atl-radio-group.js.map} +1 -1
- package/src/lib/select/{llm-select.css → atl-select.css} +11 -11
- package/src/lib/select/{llm-select.d.ts → atl-select.d.ts} +10 -10
- package/src/lib/select/{llm-select.d.ts.map → atl-select.d.ts.map} +1 -1
- package/src/lib/select/{llm-select.js → atl-select.js} +6 -6
- package/src/lib/select/{llm-select.js.map → atl-select.js.map} +1 -1
- package/src/lib/skeleton/{llm-skeleton.css → atl-skeleton.css} +6 -6
- package/src/lib/skeleton/{llm-skeleton.d.ts → atl-skeleton.d.ts} +6 -6
- package/src/lib/skeleton/{llm-skeleton.d.ts.map → atl-skeleton.d.ts.map} +1 -1
- package/src/lib/skeleton/{llm-skeleton.js → atl-skeleton.js} +4 -4
- package/src/lib/skeleton/{llm-skeleton.js.map → atl-skeleton.js.map} +1 -1
- package/src/lib/spec.d.ts +120 -120
- package/src/lib/spec.js.map +1 -1
- package/src/lib/stepper/{llm-stepper.css → atl-stepper.css} +5 -5
- package/src/lib/stepper/{llm-stepper.d.ts → atl-stepper.d.ts} +9 -9
- package/src/lib/stepper/{llm-stepper.d.ts.map → atl-stepper.d.ts.map} +1 -1
- package/src/lib/stepper/{llm-stepper.js → atl-stepper.js} +11 -11
- package/src/lib/stepper/{llm-stepper.js.map → atl-stepper.js.map} +1 -1
- package/src/lib/table/{llm-table.css → atl-table.css} +30 -30
- package/src/lib/table/atl-table.d.ts +40 -0
- package/src/lib/table/{llm-table.d.ts.map → atl-table.d.ts.map} +1 -1
- package/src/lib/table/{llm-table.js → atl-table.js} +14 -14
- package/src/lib/table/{llm-table.js.map → atl-table.js.map} +1 -1
- package/src/lib/tabs/{llm-tabs.css → atl-tabs.css} +17 -17
- package/src/lib/tabs/{llm-tabs.d.ts → atl-tabs.d.ts} +12 -12
- package/src/lib/tabs/{llm-tabs.d.ts.map → atl-tabs.d.ts.map} +1 -1
- package/src/lib/tabs/{llm-tabs.js → atl-tabs.js} +11 -11
- package/src/lib/tabs/{llm-tabs.js.map → atl-tabs.js.map} +1 -1
- package/src/lib/textarea/{llm-textarea.css → atl-textarea.css} +15 -15
- package/src/lib/textarea/{llm-textarea.d.ts → atl-textarea.d.ts} +6 -6
- package/src/lib/textarea/{llm-textarea.d.ts.map → atl-textarea.d.ts.map} +1 -1
- package/src/lib/textarea/{llm-textarea.js → atl-textarea.js} +4 -4
- package/src/lib/textarea/{llm-textarea.js.map → atl-textarea.js.map} +1 -1
- package/src/lib/toast/{llm-toast.css → atl-toast.css} +16 -16
- package/src/lib/toast/atl-toast.d.ts +54 -0
- package/src/lib/toast/{llm-toast.d.ts.map → atl-toast.d.ts.map} +1 -1
- package/src/lib/toast/{llm-toast.js → atl-toast.js} +12 -12
- package/src/lib/toast/{llm-toast.js.map → atl-toast.js.map} +1 -1
- package/src/lib/toggle/{llm-toggle.css → atl-toggle.css} +16 -16
- package/src/lib/toggle/{llm-toggle.d.ts → atl-toggle.d.ts} +6 -6
- package/src/lib/toggle/{llm-toggle.d.ts.map → atl-toggle.d.ts.map} +1 -1
- package/src/lib/toggle/{llm-toggle.js → atl-toggle.js} +4 -4
- package/src/lib/toggle/{llm-toggle.js.map → atl-toggle.js.map} +1 -1
- package/src/lib/tooltip/{llm-tooltip.css → atl-tooltip.css} +12 -12
- package/src/lib/tooltip/atl-tooltip.d.ts +17 -0
- package/src/lib/tooltip/{llm-tooltip.d.ts.map → atl-tooltip.d.ts.map} +1 -1
- package/src/lib/tooltip/{llm-tooltip.js → atl-tooltip.js} +7 -7
- package/src/lib/tooltip/{llm-tooltip.js.map → atl-tooltip.js.map} +1 -1
- package/src/lib/badge/llm-badge.d.ts +0 -27
- package/src/lib/breadcrumbs/llm-breadcrumbs.d.ts +0 -38
- package/src/lib/card/llm-card.js +0 -30
- package/src/lib/icon/llm-icon.d.ts +0 -24
- package/src/lib/table/llm-table.d.ts +0 -40
- package/src/lib/toast/llm-toast.d.ts +0 -54
- package/src/lib/tooltip/llm-tooltip.d.ts +0 -17
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlDrawerSpec } from '../spec';
|
|
3
|
+
import './atl-drawer.css';
|
|
4
4
|
/**
|
|
5
|
-
* Properties for the
|
|
5
|
+
* Properties for the AtlDrawer component.
|
|
6
6
|
*/
|
|
7
|
-
export interface
|
|
7
|
+
export interface AtlDrawerProps extends AtlDrawerSpec {
|
|
8
8
|
/**
|
|
9
9
|
* Whether the drawer is open.
|
|
10
10
|
*/
|
|
@@ -33,32 +33,32 @@ export interface LlmDrawerProps extends LlmDrawerSpec {
|
|
|
33
33
|
/**
|
|
34
34
|
* A drawer component that slides in from the edge of the screen.
|
|
35
35
|
*/
|
|
36
|
-
export declare function
|
|
36
|
+
export declare function AtlDrawer({ open, onOpenChange, position, size, closeOnBackdrop, children, }: AtlDrawerProps): import("react").JSX.Element;
|
|
37
37
|
/**
|
|
38
|
-
* The header component for an
|
|
38
|
+
* The header component for an AtlDrawer.
|
|
39
39
|
*/
|
|
40
|
-
export declare function
|
|
40
|
+
export declare function AtlDrawerHeader({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
41
41
|
/**
|
|
42
42
|
* The content of the drawer header.
|
|
43
43
|
*/
|
|
44
44
|
children?: ReactNode;
|
|
45
45
|
}): import("react").JSX.Element;
|
|
46
46
|
/**
|
|
47
|
-
* The main content component for an
|
|
47
|
+
* The main content component for an AtlDrawer.
|
|
48
48
|
*/
|
|
49
|
-
export declare function
|
|
49
|
+
export declare function AtlDrawerContent({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
50
50
|
/**
|
|
51
51
|
* The main content of the drawer.
|
|
52
52
|
*/
|
|
53
53
|
children?: ReactNode;
|
|
54
54
|
}): import("react").JSX.Element;
|
|
55
55
|
/**
|
|
56
|
-
* The footer component for an
|
|
56
|
+
* The footer component for an AtlDrawer.
|
|
57
57
|
*/
|
|
58
|
-
export declare function
|
|
58
|
+
export declare function AtlDrawerFooter({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
59
59
|
/**
|
|
60
60
|
* The content of the drawer footer.
|
|
61
61
|
*/
|
|
62
62
|
children?: ReactNode;
|
|
63
63
|
}): import("react").JSX.Element;
|
|
64
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=atl-drawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-drawer.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/drawer/atl-drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,cAAc,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,kBAAkB,CAAC;AAY1B;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC/C;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAY,EACZ,YAAY,EACZ,QAAkB,EAClB,IAAW,EACX,eAAsB,EACtB,QAAQ,GACT,EAAE,cAAc,+BAkEhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAiCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BASA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BASA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useId, createContext, useContext, } from 'react';
|
|
3
|
-
import './
|
|
3
|
+
import './atl-drawer.css';
|
|
4
4
|
const DrawerContext = createContext({
|
|
5
5
|
headerId: '',
|
|
6
6
|
close: () => undefined,
|
|
@@ -8,7 +8,7 @@ const DrawerContext = createContext({
|
|
|
8
8
|
/**
|
|
9
9
|
* A drawer component that slides in from the edge of the screen.
|
|
10
10
|
*/
|
|
11
|
-
export function
|
|
11
|
+
export function AtlDrawer({ open = false, onOpenChange, position = 'right', size = 'md', closeOnBackdrop = true, children, }) {
|
|
12
12
|
const dialogRef = useRef(null);
|
|
13
13
|
const headerId = useId();
|
|
14
14
|
const triggerElRef = useRef(null);
|
|
@@ -52,7 +52,7 @@ export function LlmDrawer({ open = false, onOpenChange, position = 'right', size
|
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
const hostClass = [
|
|
55
|
-
'
|
|
55
|
+
'atl-drawer-host',
|
|
56
56
|
`position-${position}`,
|
|
57
57
|
`size-${size}`,
|
|
58
58
|
open && 'is-open',
|
|
@@ -62,22 +62,22 @@ export function LlmDrawer({ open = false, onOpenChange, position = 'right', size
|
|
|
62
62
|
return (_jsx(DrawerContext.Provider, { value: { headerId, close: () => onOpenChange?.(false) }, children: _jsx("div", { className: hostClass, children: _jsx("dialog", { ref: dialogRef, "aria-labelledby": headerId, "aria-modal": "true", onClick: handleBackdropClick, children: _jsx("div", { className: "panel", onClick: (e) => e.stopPropagation(), children: children }) }) }) }));
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
|
-
* The header component for an
|
|
65
|
+
* The header component for an AtlDrawer.
|
|
66
66
|
*/
|
|
67
|
-
export function
|
|
67
|
+
export function AtlDrawerHeader({ children, className, ...rest }) {
|
|
68
68
|
const ctx = useContext(DrawerContext);
|
|
69
|
-
return (_jsxs("div", { id: ctx.headerId, className: ['
|
|
69
|
+
return (_jsxs("div", { id: ctx.headerId, className: ['atl-drawer-header', className].filter(Boolean).join(' '), ...rest, children: [children, _jsx("button", { className: "close-btn", type: "button", "aria-label": "Close drawer", onClick: ctx.close, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] }));
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* The main content component for an
|
|
72
|
+
* The main content component for an AtlDrawer.
|
|
73
73
|
*/
|
|
74
|
-
export function
|
|
75
|
-
return (_jsx("div", { className: ['
|
|
74
|
+
export function AtlDrawerContent({ children, className, ...rest }) {
|
|
75
|
+
return (_jsx("div", { className: ['atl-drawer-content', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* The footer component for an
|
|
78
|
+
* The footer component for an AtlDrawer.
|
|
79
79
|
*/
|
|
80
|
-
export function
|
|
81
|
-
return (_jsx("div", { className: ['
|
|
80
|
+
export function AtlDrawerFooter({ children, className, ...rest }) {
|
|
81
|
+
return (_jsx("div", { className: ['atl-drawer-footer', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
82
82
|
}
|
|
83
|
-
//# sourceMappingURL=
|
|
83
|
+
//# sourceMappingURL=atl-drawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-drawer.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/drawer/atl-drawer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useEffect,\n useRef,\n useId,\n createContext,\n useContext,\n ReactNode,\n HTMLAttributes,\n MouseEvent,\n} from 'react';\nimport type { AtlDrawerSpec } from '../spec';\nimport './atl-drawer.css';\n\ninterface DrawerContextValue {\n headerId: string;\n close: () => void;\n}\n\nconst DrawerContext = createContext<DrawerContextValue>({\n headerId: '',\n close: () => undefined,\n});\n\n/**\n * Properties for the AtlDrawer component.\n */\nexport interface AtlDrawerProps extends AtlDrawerSpec {\n /**\n * Whether the drawer is open.\n */\n open?: boolean;\n /**\n * Callback triggered when the open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * The position of the drawer on the screen.\n */\n position?: 'left' | 'right' | 'top' | 'bottom';\n /**\n * The size of the drawer.\n */\n size?: 'sm' | 'md' | 'lg' | 'full';\n /**\n * Whether to close the drawer when clicking on the backdrop.\n */\n closeOnBackdrop?: boolean;\n /**\n * The content of the drawer.\n */\n children?: ReactNode;\n}\n\n/**\n * A drawer component that slides in from the edge of the screen.\n */\nexport function AtlDrawer({\n open = false,\n onOpenChange,\n position = 'right',\n size = 'md',\n closeOnBackdrop = true,\n children,\n}: AtlDrawerProps) {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const headerId = useId();\n const triggerElRef = useRef<Element | null>(null);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (open) {\n triggerElRef.current = document.activeElement;\n if (!dialog.open) dialog.showModal();\n } else {\n if (dialog.open) dialog.close();\n (triggerElRef.current as HTMLElement | null)?.focus();\n triggerElRef.current = null;\n }\n }, [open]);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n const onClose = () => onOpenChange?.(false);\n const onCancel = (e: Event) => {\n e.preventDefault();\n onOpenChange?.(false);\n };\n dialog.addEventListener('close', onClose);\n dialog.addEventListener('cancel', onCancel);\n return () => {\n dialog.removeEventListener('close', onClose);\n dialog.removeEventListener('cancel', onCancel);\n };\n }, [onOpenChange]);\n\n const handleBackdropClick = (e: MouseEvent<HTMLDialogElement>) => {\n if (!closeOnBackdrop) return;\n if (e.target === dialogRef.current) {\n onOpenChange?.(false);\n }\n };\n\n const hostClass = [\n 'atl-drawer-host',\n `position-${position}`,\n `size-${size}`,\n open && 'is-open',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <DrawerContext.Provider value={{ headerId, close: () => onOpenChange?.(false) }}>\n <div className={hostClass}>\n <dialog\n ref={dialogRef}\n aria-labelledby={headerId}\n aria-modal=\"true\"\n onClick={handleBackdropClick}\n >\n <div className=\"panel\" onClick={(e) => e.stopPropagation()}>\n {children}\n </div>\n </dialog>\n </div>\n </DrawerContext.Provider>\n );\n}\n\n/**\n * The header component for an AtlDrawer.\n */\nexport function AtlDrawerHeader({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The content of the drawer header.\n */\n children?: ReactNode;\n}) {\n const ctx = useContext(DrawerContext);\n return (\n <div\n id={ctx.headerId}\n className={['atl-drawer-header', className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n <button\n className=\"close-btn\"\n type=\"button\"\n aria-label=\"Close drawer\"\n onClick={ctx.close}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n );\n}\n\n/**\n * The main content component for an AtlDrawer.\n */\nexport function AtlDrawerContent({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The main content of the drawer.\n */\n children?: ReactNode;\n}) {\n return (\n <div\n className={['atl-drawer-content', className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/**\n * The footer component for an AtlDrawer.\n */\nexport function AtlDrawerFooter({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The content of the drawer footer.\n */\n children?: ReactNode;\n}) {\n return (\n <div\n className={['atl-drawer-footer', className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.atl-icon {
|
|
2
2
|
display: inline-flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
justify-content: center;
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
flex-shrink: 0;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.
|
|
13
|
+
.atl-icon.size-sm {
|
|
14
14
|
width: 1rem;
|
|
15
15
|
height: 1rem;
|
|
16
16
|
font-size: var(--ui-font-size-sm);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
.
|
|
19
|
+
.atl-icon.size-md {
|
|
20
20
|
width: 1.25rem;
|
|
21
21
|
height: 1.25rem;
|
|
22
22
|
font-size: var(--ui-font-size-md);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.
|
|
25
|
+
.atl-icon.size-lg {
|
|
26
26
|
width: 1.5rem;
|
|
27
27
|
height: 1.5rem;
|
|
28
28
|
font-size: var(--ui-font-size-lg);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
import type { AtlIconName, AtlIconSize, AtlIconSpec } from '../spec';
|
|
3
|
+
import './atl-icon.css';
|
|
4
|
+
/**
|
|
5
|
+
* Properties for the AtlIcon component.
|
|
6
|
+
*/
|
|
7
|
+
export interface AtlIconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'aria-label'>, AtlIconSpec {
|
|
8
|
+
/** The icon name. */
|
|
9
|
+
name: AtlIconName;
|
|
10
|
+
/** The icon size. */
|
|
11
|
+
size?: AtlIconSize;
|
|
12
|
+
/**
|
|
13
|
+
* Accessible label. When provided, the icon is announced as an image with
|
|
14
|
+
* this label. When omitted, the icon is hidden from assistive tech.
|
|
15
|
+
*/
|
|
16
|
+
label?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Pictogram glyph icon. 21 named variants matching the Figma `AtlIcon`
|
|
20
|
+
* component set. Decorative by default; pass `label` to announce a meaning
|
|
21
|
+
* to assistive tech.
|
|
22
|
+
*/
|
|
23
|
+
export declare function AtlIcon({ name, size, label, className, ...rest }: AtlIconProps): import("react").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=atl-icon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-icon.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/icon/atl-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,gBAAgB,CAAC;AA0BxB;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,EACzD,WAAW;IACb,qBAAqB;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,qBAAqB;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,IAAW,EACX,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACR,EAAE,YAAY,+BAUd"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import './
|
|
2
|
+
import './atl-icon.css';
|
|
3
3
|
const ICON_GLYPHS = {
|
|
4
4
|
success: '✓',
|
|
5
5
|
warning: '⚠',
|
|
@@ -24,15 +24,15 @@ const ICON_GLYPHS = {
|
|
|
24
24
|
'default-toast': '💬',
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
|
-
* Pictogram glyph icon. 21 named variants matching the Figma `
|
|
27
|
+
* Pictogram glyph icon. 21 named variants matching the Figma `AtlIcon`
|
|
28
28
|
* component set. Decorative by default; pass `label` to announce a meaning
|
|
29
29
|
* to assistive tech.
|
|
30
30
|
*/
|
|
31
|
-
export function
|
|
32
|
-
const classes = ['
|
|
31
|
+
export function AtlIcon({ name, size = 'md', label, className, ...rest }) {
|
|
32
|
+
const classes = ['atl-icon', `size-${size}`, className].filter(Boolean).join(' ');
|
|
33
33
|
const accessibilityProps = label
|
|
34
34
|
? { role: 'img', 'aria-label': label }
|
|
35
35
|
: { 'aria-hidden': true };
|
|
36
36
|
return (_jsx("span", { className: classes, ...accessibilityProps, ...rest, children: ICON_GLYPHS[name] }));
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=atl-icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-icon.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/icon/atl-icon.tsx"],"names":[],"mappings":";AAEA,OAAO,gBAAgB,CAAC;AAExB,MAAM,WAAW,GAAgC;IAC/C,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,eAAe,EAAE,IAAI;CACtB,CAAC;AAmBF;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,KAAK,EACL,SAAS,EACT,GAAG,IAAI,EACM;IACb,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,KAAK;QAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QACtC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,CAAC;IACrC,OAAO,CACL,eAAM,SAAS,EAAE,OAAO,KAAM,kBAAkB,KAAM,IAAI,YACvD,WAAW,CAAC,IAAI,CAAC,GACb,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes } from 'react';\nimport type { AtlIconName, AtlIconSize, AtlIconSpec } from '../spec';\nimport './atl-icon.css';\n\nconst ICON_GLYPHS: Record<AtlIconName, string> = {\n success: '✓',\n warning: '⚠',\n danger: '✕',\n info: 'ℹ',\n error: '!',\n 'chevron-up': '▲',\n 'chevron-down': '▼',\n 'chevron-left': '‹',\n 'chevron-right': '›',\n 'sort-asc': '↑',\n 'sort-desc': '↓',\n 'arrow-right': '→',\n 'arrow-left': '←',\n copy: '⎘',\n paste: '⎗',\n add: '⊕',\n edit: '✏',\n delete: '🗑',\n close: '×',\n more: '…',\n 'default-toast': '💬',\n};\n\n/**\n * Properties for the AtlIcon component.\n */\nexport interface AtlIconProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, 'aria-label'>,\n AtlIconSpec {\n /** The icon name. */\n name: AtlIconName;\n /** The icon size. */\n size?: AtlIconSize;\n /**\n * Accessible label. When provided, the icon is announced as an image with\n * this label. When omitted, the icon is hidden from assistive tech.\n */\n label?: string;\n}\n\n/**\n * Pictogram glyph icon. 21 named variants matching the Figma `AtlIcon`\n * component set. Decorative by default; pass `label` to announce a meaning\n * to assistive tech.\n */\nexport function AtlIcon({\n name,\n size = 'md',\n label,\n className,\n ...rest\n}: AtlIconProps) {\n const classes = ['atl-icon', `size-${size}`, className].filter(Boolean).join(' ');\n const accessibilityProps = label\n ? { role: 'img', 'aria-label': label }\n : { 'aria-hidden': true as const };\n return (\n <span className={classes} {...accessibilityProps} {...rest}>\n {ICON_GLYPHS[name]}\n </span>\n );\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
.
|
|
1
|
+
.atl-input {
|
|
2
2
|
display: block;
|
|
3
3
|
font-family: var(--ui-font-family);
|
|
4
4
|
font-size: var(--ui-font-size-md);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.
|
|
7
|
+
.atl-input input {
|
|
8
8
|
display: block;
|
|
9
9
|
width: 100%;
|
|
10
10
|
min-height: 2.5rem;
|
|
@@ -23,37 +23,37 @@
|
|
|
23
23
|
box-sizing: border-box;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.
|
|
26
|
+
.atl-input input::placeholder {
|
|
27
27
|
color: var(--ui-color-placeholder);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.
|
|
30
|
+
.atl-input input:hover:not(:disabled):not(:read-only) {
|
|
31
31
|
border-color: var(--ui-color-input-border-hover);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.
|
|
34
|
+
.atl-input input:focus {
|
|
35
35
|
border-color: var(--ui-color-input-border-focus);
|
|
36
36
|
background-color: var(--ui-color-input-bg-focus);
|
|
37
37
|
box-shadow: var(--ui-focus-ring);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
.
|
|
40
|
+
.atl-input .input-field {
|
|
41
41
|
position: relative;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/* Invalid state */
|
|
45
|
-
.
|
|
45
|
+
.atl-input.is-invalid input {
|
|
46
46
|
border-color: var(--ui-color-input-border-invalid);
|
|
47
47
|
padding-right: 2.25rem;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.
|
|
50
|
+
.atl-input.is-invalid input:focus {
|
|
51
51
|
border-color: var(--ui-color-input-border-invalid);
|
|
52
52
|
box-shadow: 0 0 0 2px var(--ui-color-surface), 0 0 0 4px var(--ui-color-danger);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/* Non-color invalid indicator (WCAG 1.4.1) */
|
|
56
|
-
.
|
|
56
|
+
.atl-input.is-invalid .input-field::before {
|
|
57
57
|
content: '✕';
|
|
58
58
|
position: absolute;
|
|
59
59
|
top: 50%;
|
|
@@ -66,27 +66,27 @@
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
/* Disabled state */
|
|
69
|
-
.
|
|
69
|
+
.atl-input.is-disabled {
|
|
70
70
|
opacity: var(--ui-opacity-disabled);
|
|
71
71
|
cursor: not-allowed;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
.
|
|
74
|
+
.atl-input.is-disabled input {
|
|
75
75
|
cursor: not-allowed;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/* Readonly state */
|
|
79
|
-
.
|
|
79
|
+
.atl-input.is-readonly input {
|
|
80
80
|
background-color: var(--ui-color-surface-sunken);
|
|
81
81
|
cursor: default;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/* Error messages */
|
|
85
|
-
.
|
|
85
|
+
.atl-input .errors {
|
|
86
86
|
margin-top: var(--ui-spacing-2);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
.
|
|
89
|
+
.atl-input .error-message {
|
|
90
90
|
margin: 0;
|
|
91
91
|
font-size: var(--ui-font-size-sm);
|
|
92
92
|
color: var(--ui-color-error-text);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlInputSpec } from '../spec';
|
|
3
|
+
import './atl-input.css';
|
|
4
4
|
/**
|
|
5
|
-
* Properties for the
|
|
5
|
+
* Properties for the AtlInput component.
|
|
6
6
|
*/
|
|
7
|
-
export interface
|
|
7
|
+
export interface AtlInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'readOnly'>, AtlInputSpec {
|
|
8
8
|
/**
|
|
9
9
|
* The type of input to render.
|
|
10
10
|
*/
|
|
@@ -37,5 +37,5 @@ export interface LlmInputProps extends Omit<InputHTMLAttributes<HTMLInputElement
|
|
|
37
37
|
/**
|
|
38
38
|
* A versatile input component for text entry.
|
|
39
39
|
*/
|
|
40
|
-
export declare function
|
|
41
|
-
//# sourceMappingURL=
|
|
40
|
+
export declare function AtlInput({ type, value, onChange, onValueChange, invalid, errors, disabled, readOnly: reactReadOnly, readonly: specReadOnly, required, label, className, id, ...rest }: AtlInputProps): import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=atl-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-input.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/input/atl-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,EACtE,YAAY;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IAChE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,aAAa,EACb,OAAe,EACf,MAAW,EACX,QAAgB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,YAAY,EACtB,QAAgB,EAChB,KAAK,EACL,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACR,EAAE,aAAa,+BAkDf"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import './
|
|
2
|
+
import './atl-input.css';
|
|
3
3
|
/**
|
|
4
4
|
* A versatile input component for text entry.
|
|
5
5
|
*/
|
|
6
|
-
export function
|
|
6
|
+
export function AtlInput({ type = 'text', value, onChange, onValueChange, invalid = false, errors = [], disabled = false, readOnly: reactReadOnly, readonly: specReadOnly, required = false, label, className, id, ...rest }) {
|
|
7
7
|
const readOnly = reactReadOnly ?? specReadOnly ?? false;
|
|
8
8
|
const inputId = id || (label ? `input-${label.toLowerCase().replace(/\s+/g, '-')}` : undefined);
|
|
9
9
|
const classes = [
|
|
10
|
-
'
|
|
10
|
+
'atl-input',
|
|
11
11
|
invalid && 'is-invalid',
|
|
12
12
|
disabled && 'is-disabled',
|
|
13
13
|
readOnly && 'is-readonly',
|
|
@@ -22,4 +22,4 @@ export function LlmInput({ type = 'text', value, onChange, onValueChange, invali
|
|
|
22
22
|
const errorId = inputId ? `${inputId}-errors` : undefined;
|
|
23
23
|
return (_jsxs("div", { className: classes, children: [label && _jsx("label", { htmlFor: inputId, children: label }), _jsx("div", { className: "input-field", children: _jsx("input", { id: inputId, type: type, value: value, onChange: handleChange, disabled: disabled, readOnly: readOnly, required: required, "aria-invalid": invalid || undefined, "aria-required": required || undefined, "aria-describedby": errors.length > 0 ? errorId : undefined, ...rest }) }), errors.length > 0 && (_jsx("div", { className: "errors", id: errorId, "aria-live": "polite", children: errors.map((err, i) => (_jsx("p", { className: "error-message", children: err }, i))) }))] }));
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=atl-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-input.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/input/atl-input.tsx"],"names":[],"mappings":";AAEA,OAAO,iBAAiB,CAAC;AAsCzB;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,aAAa,EACb,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,EAAE,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,SAAS,EACT,EAAE,EACF,GAAG,IAAI,EACO;IACd,MAAM,QAAQ,GAAG,aAAa,IAAI,YAAY,IAAI,KAAK,CAAC;IACxD,MAAM,OAAO,GACX,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG;QACd,WAAW;QACX,OAAO,IAAI,YAAY;QACvB,QAAQ,IAAI,aAAa;QACzB,QAAQ,IAAI,aAAa;QACzB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACd,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1D,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,aACpB,KAAK,IAAI,gBAAO,OAAO,EAAE,OAAO,YAAG,KAAK,GAAS,EAClD,cAAK,SAAS,EAAC,aAAa,YAC1B,gBACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,kBACJ,OAAO,IAAI,SAAS,mBACnB,QAAQ,IAAI,SAAS,sBAClB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KACrD,IAAI,GACR,GACE,EACL,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAE,OAAO,eAAY,QAAQ,YACpD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,YAAW,SAAS,EAAC,eAAe,YACjC,GAAG,IADE,CAAC,CAEL,CACL,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { InputHTMLAttributes } from 'react';\nimport type { AtlInputSpec } from '../spec';\nimport './atl-input.css';\n\n/**\n * Properties for the AtlInput component.\n */\nexport interface AtlInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'readOnly'>,\n AtlInputSpec {\n /**\n * The type of input to render.\n */\n type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';\n /**\n * The current value of the input.\n */\n value?: string;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange?: (value: string) => void;\n /**\n * Whether the input is in an invalid state.\n */\n invalid?: boolean;\n /**\n * Array of error messages to display.\n */\n errors?: string[];\n /**\n * The label for the input.\n */\n label?: string;\n /**\n * Whether the input is read-only.\n */\n readOnly?: boolean;\n}\n\n/**\n * A versatile input component for text entry.\n */\nexport function AtlInput({\n type = 'text',\n value,\n onChange,\n onValueChange,\n invalid = false,\n errors = [],\n disabled = false,\n readOnly: reactReadOnly,\n readonly: specReadOnly,\n required = false,\n label,\n className,\n id,\n ...rest\n}: AtlInputProps) {\n const readOnly = reactReadOnly ?? specReadOnly ?? false;\n const inputId =\n id || (label ? `input-${label.toLowerCase().replace(/\\s+/g, '-')}` : undefined);\n const classes = [\n 'atl-input',\n invalid && 'is-invalid',\n disabled && 'is-disabled',\n readOnly && 'is-readonly',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n };\n\n const errorId = inputId ? `${inputId}-errors` : undefined;\n\n return (\n <div className={classes}>\n {label && <label htmlFor={inputId}>{label}</label>}\n <div className=\"input-field\">\n <input\n id={inputId}\n type={type}\n value={value}\n onChange={handleChange}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n aria-describedby={errors.length > 0 ? errorId : undefined}\n {...rest}\n />\n </div>\n {errors.length > 0 && (\n <div className=\"errors\" id={errorId} aria-live=\"polite\">\n {errors.map((err, i) => (\n <p key={i} className=\"error-message\">\n {err}\n </p>\n ))}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* Menu panel */
|
|
2
|
-
.
|
|
2
|
+
.atl-menu {
|
|
3
3
|
display: block;
|
|
4
4
|
min-width: 12rem;
|
|
5
5
|
padding: var(--ui-spacing-2) 0;
|
|
@@ -14,20 +14,20 @@
|
|
|
14
14
|
overflow: hidden;
|
|
15
15
|
|
|
16
16
|
/* Entry animation */
|
|
17
|
-
animation:
|
|
17
|
+
animation: atl-menu-enter var(--ui-duration-normal) var(--ui-ease-out) forwards;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.
|
|
20
|
+
.atl-menu.variant-compact {
|
|
21
21
|
font-size: var(--ui-font-size-sm);
|
|
22
22
|
padding: var(--ui-spacing-1) 0;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.
|
|
25
|
+
.atl-menu.variant-compact .atl-menu-item {
|
|
26
26
|
min-height: 2rem;
|
|
27
27
|
padding: var(--ui-spacing-1) var(--ui-spacing-3);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
@keyframes
|
|
30
|
+
@keyframes atl-menu-enter {
|
|
31
31
|
from {
|
|
32
32
|
opacity: 0;
|
|
33
33
|
transform: translateY(-4px);
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/* Menu item */
|
|
42
|
-
.
|
|
42
|
+
.atl-menu-item {
|
|
43
43
|
display: flex;
|
|
44
44
|
align-items: center;
|
|
45
45
|
gap: var(--ui-spacing-3);
|
|
@@ -56,18 +56,18 @@
|
|
|
56
56
|
text-align: start;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
.
|
|
60
|
-
.
|
|
59
|
+
.atl-menu-item:hover,
|
|
60
|
+
.atl-menu-item:focus-visible {
|
|
61
61
|
background: var(--ui-color-surface-sunken);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
.
|
|
64
|
+
.atl-menu-item.is-disabled {
|
|
65
65
|
opacity: var(--ui-opacity-disabled);
|
|
66
66
|
cursor: not-allowed;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/* Separator */
|
|
70
|
-
.
|
|
70
|
+
.atl-menu-separator {
|
|
71
71
|
display: block;
|
|
72
72
|
height: 1px;
|
|
73
73
|
margin: var(--ui-spacing-2) 0;
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/* Trigger panel — positioned absolutely below trigger */
|
|
79
|
-
.
|
|
79
|
+
.atl-menu-panel {
|
|
80
80
|
position: absolute;
|
|
81
81
|
z-index: var(--ui-z-dropdown, 100);
|
|
82
82
|
top: calc(100% + var(--ui-spacing-2));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode, HTMLAttributes, RefObject } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlMenuSpec, AtlMenuItemSpec } from '../spec';
|
|
3
|
+
import './atl-menu.css';
|
|
4
4
|
/**
|
|
5
|
-
* Properties for the
|
|
5
|
+
* Properties for the AtlMenu component.
|
|
6
6
|
*/
|
|
7
|
-
export interface
|
|
7
|
+
export interface AtlMenuProps extends HTMLAttributes<HTMLDivElement>, AtlMenuSpec {
|
|
8
8
|
/**
|
|
9
9
|
* The visual style variant of the menu.
|
|
10
10
|
*/
|
|
@@ -17,11 +17,11 @@ export interface LlmMenuProps extends HTMLAttributes<HTMLDivElement>, LlmMenuSpe
|
|
|
17
17
|
/**
|
|
18
18
|
* A menu component for displaying a list of choices.
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function AtlMenu({ variant, children, className, ...rest }: AtlMenuProps): import("react").JSX.Element;
|
|
21
21
|
/**
|
|
22
|
-
* Properties for the
|
|
22
|
+
* Properties for the AtlMenuItem component.
|
|
23
23
|
*/
|
|
24
|
-
export interface
|
|
24
|
+
export interface AtlMenuItemProps extends HTMLAttributes<HTMLButtonElement>, AtlMenuItemSpec {
|
|
25
25
|
/**
|
|
26
26
|
* Whether the menu item is disabled.
|
|
27
27
|
*/
|
|
@@ -38,15 +38,15 @@ export interface LlmMenuItemProps extends HTMLAttributes<HTMLButtonElement>, Llm
|
|
|
38
38
|
/**
|
|
39
39
|
* An individual item within a menu.
|
|
40
40
|
*/
|
|
41
|
-
export declare function
|
|
41
|
+
export declare function AtlMenuItem({ disabled, onTriggered, children, className, onClick, ...rest }: AtlMenuItemProps): import("react").JSX.Element;
|
|
42
42
|
/**
|
|
43
43
|
* A separator for dividing groups of menu items.
|
|
44
44
|
*/
|
|
45
|
-
export declare function
|
|
45
|
+
export declare function AtlMenuSeparator(): import("react").JSX.Element;
|
|
46
46
|
/**
|
|
47
|
-
* Properties for the
|
|
47
|
+
* Properties for the AtlMenuTrigger component.
|
|
48
48
|
*/
|
|
49
|
-
export interface
|
|
49
|
+
export interface AtlMenuTriggerProps {
|
|
50
50
|
/**
|
|
51
51
|
* The menu to be displayed.
|
|
52
52
|
*/
|
|
@@ -62,5 +62,5 @@ export interface LlmMenuTriggerProps {
|
|
|
62
62
|
/**
|
|
63
63
|
* A component that manages the state of a menu and its trigger.
|
|
64
64
|
*/
|
|
65
|
-
export declare function
|
|
66
|
-
//# sourceMappingURL=
|
|
65
|
+
export declare function AtlMenuTrigger({ menu, children }: AtlMenuTriggerProps): import("react").JSX.Element;
|
|
66
|
+
//# sourceMappingURL=atl-menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-menu.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/menu/atl-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,cAAc,EACd,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,gBAAgB,CAAC;AAQxB;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC,EAAE,WAAW;IAC/E;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,OAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,+BAO1F;AAED;;GAEG;AACH,MAAM,WAAW,gBACf,SAAQ,cAAc,CAAC,iBAAiB,CAAC,EACvC,eAAe;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAgB,EAChB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,OAAO,EACP,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAyBlB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,gCAE/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE;QAChB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;KACpC,KAAK,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,mBAAmB,+BA4CrE"}
|