@atelier-ui/react 0.1.11 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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} +13 -13
- 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} +16 -16
- 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} +15 -15
- 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} +15 -15
- 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,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.atl-button {
|
|
2
2
|
display: inline-flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
justify-content: center;
|
|
@@ -20,56 +20,56 @@
|
|
|
20
20
|
user-select: none;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.
|
|
23
|
+
.atl-button:focus-visible {
|
|
24
24
|
outline: none;
|
|
25
25
|
box-shadow: var(--ui-focus-ring);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/* Variants — flat by default; subtle state shifts only */
|
|
29
|
-
.
|
|
29
|
+
.atl-button.variant-primary {
|
|
30
30
|
background-color: var(--ui-color-primary);
|
|
31
31
|
color: var(--ui-color-text-on-primary);
|
|
32
32
|
border-color: var(--ui-color-primary);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.atl-button.variant-primary:hover:not(.is-disabled) {
|
|
36
36
|
background-color: var(--ui-color-primary-hover);
|
|
37
37
|
border-color: var(--ui-color-primary-hover);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
.
|
|
40
|
+
.atl-button.variant-primary:active:not(.is-disabled) {
|
|
41
41
|
background-color: var(--ui-color-primary-active);
|
|
42
42
|
border-color: var(--ui-color-primary-active);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.
|
|
45
|
+
.atl-button.variant-secondary {
|
|
46
46
|
background-color: var(--ui-color-secondary);
|
|
47
47
|
color: var(--ui-color-text-on-secondary);
|
|
48
48
|
border-color: var(--ui-color-secondary);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
.
|
|
51
|
+
.atl-button.variant-secondary:hover:not(.is-disabled) {
|
|
52
52
|
background-color: var(--ui-color-secondary-hover);
|
|
53
53
|
border-color: var(--ui-color-secondary-hover);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
.
|
|
56
|
+
.atl-button.variant-secondary:active:not(.is-disabled) {
|
|
57
57
|
background-color: var(--ui-color-secondary-active);
|
|
58
58
|
border-color: var(--ui-color-secondary-active);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
.
|
|
61
|
+
.atl-button.variant-outline {
|
|
62
62
|
background-color: var(--ui-color-surface-raised);
|
|
63
63
|
color: var(--ui-color-primary);
|
|
64
64
|
border-color: var(--ui-color-border-strong);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
.
|
|
67
|
+
.atl-button.variant-outline:hover:not(.is-disabled) {
|
|
68
68
|
background-color: var(--ui-color-surface-sunken);
|
|
69
69
|
border-color: var(--ui-color-primary);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
.
|
|
72
|
+
.atl-button.variant-outline:active:not(.is-disabled) {
|
|
73
73
|
background-color: var(--ui-color-surface-sunken);
|
|
74
74
|
border-color: var(--ui-color-primary-active);
|
|
75
75
|
}
|
|
@@ -77,46 +77,46 @@
|
|
|
77
77
|
/* Non-color differentiation (WCAG 1.4.1): danger variant carries
|
|
78
78
|
* a darker inset border so its silhouette is recognizable in greyscale
|
|
79
79
|
* and color-blind simulations, not only by red fill. */
|
|
80
|
-
.
|
|
80
|
+
.atl-button.variant-danger {
|
|
81
81
|
background-color: var(--ui-color-danger);
|
|
82
82
|
color: var(--ui-color-text-on-danger);
|
|
83
83
|
border-color: var(--ui-color-danger);
|
|
84
84
|
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
.
|
|
87
|
+
.atl-button.variant-danger:hover:not(.is-disabled) {
|
|
88
88
|
background-color: var(--ui-color-danger-hover);
|
|
89
89
|
border-color: var(--ui-color-danger-hover);
|
|
90
90
|
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
.
|
|
93
|
+
.atl-button.variant-danger:active:not(.is-disabled) {
|
|
94
94
|
background-color: var(--ui-color-danger-active);
|
|
95
95
|
border-color: var(--ui-color-danger-active);
|
|
96
96
|
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
/* Sizes — modern target heights (sm 32px / md 40px / lg 48px) */
|
|
100
|
-
.
|
|
100
|
+
.atl-button.size-sm {
|
|
101
101
|
padding: 0.375rem 0.875rem;
|
|
102
102
|
font-size: var(--ui-font-size-sm);
|
|
103
103
|
min-height: 2rem;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.
|
|
106
|
+
.atl-button.size-md {
|
|
107
107
|
padding: 0.5625rem 1.125rem;
|
|
108
108
|
font-size: var(--ui-font-size-md);
|
|
109
109
|
min-height: 2.5rem;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
.
|
|
112
|
+
.atl-button.size-lg {
|
|
113
113
|
padding: 0.75rem 1.5rem;
|
|
114
114
|
font-size: var(--ui-font-size-lg);
|
|
115
115
|
min-height: 3rem;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
/* Disabled */
|
|
119
|
-
.
|
|
119
|
+
.atl-button.is-disabled {
|
|
120
120
|
opacity: var(--ui-opacity-disabled);
|
|
121
121
|
cursor: not-allowed;
|
|
122
122
|
pointer-events: none;
|
|
@@ -130,10 +130,10 @@
|
|
|
130
130
|
border: 1.5px solid currentColor;
|
|
131
131
|
border-top-color: transparent;
|
|
132
132
|
border-radius: var(--ui-radius-full);
|
|
133
|
-
animation:
|
|
133
|
+
animation: atl-spin 0.7s linear infinite;
|
|
134
134
|
flex-shrink: 0;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
@keyframes
|
|
137
|
+
@keyframes atl-spin {
|
|
138
138
|
to { transform: rotate(360deg); }
|
|
139
139
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlButtonSpec } from '../spec';
|
|
3
|
+
import './atl-button.css';
|
|
4
4
|
/**
|
|
5
5
|
* Accessibility requirement: the button must carry an accessible name
|
|
6
6
|
* either as visible children OR as an `aria-label`. TypeScript catches
|
|
7
7
|
* the icon-only-without-aria-label mistake at consumer build time.
|
|
8
8
|
*/
|
|
9
|
-
type
|
|
9
|
+
type AtlButtonAccessibleName = {
|
|
10
10
|
children: ReactNode;
|
|
11
11
|
'aria-label'?: string;
|
|
12
12
|
} | {
|
|
@@ -14,12 +14,12 @@ type LlmButtonAccessibleName = {
|
|
|
14
14
|
'aria-label': string;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
* Properties for the
|
|
17
|
+
* Properties for the AtlButton component.
|
|
18
18
|
*/
|
|
19
|
-
export type
|
|
19
|
+
export type AtlButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'aria-label'> & AtlButtonSpec & AtlButtonAccessibleName;
|
|
20
20
|
/**
|
|
21
21
|
* A versatile button component that supports various styles, sizes, and states.
|
|
22
22
|
*/
|
|
23
|
-
export declare const
|
|
23
|
+
export declare const AtlButton: import("react").ForwardRefExoticComponent<AtlButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
24
24
|
export {};
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=atl-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-button.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/button/atl-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,KAAK,uBAAuB,GACxB;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,GACxB,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,GACtE,aAAa,GACb,uBAAuB,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,SAAS,8GAoCpB,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import './
|
|
3
|
+
import './atl-button.css';
|
|
4
4
|
/**
|
|
5
5
|
* A versatile button component that supports various styles, sizes, and states.
|
|
6
6
|
*/
|
|
7
|
-
export const
|
|
7
|
+
export const AtlButton = forwardRef(function AtlButton({ variant = 'primary', size = 'md', disabled = false, loading = false, children, className, ...rest }, ref) {
|
|
8
8
|
const isDisabled = disabled || loading;
|
|
9
9
|
const classes = [
|
|
10
|
-
'
|
|
10
|
+
'atl-button',
|
|
11
11
|
`variant-${variant}`,
|
|
12
12
|
`size-${size}`,
|
|
13
13
|
isDisabled && 'is-disabled',
|
|
@@ -18,4 +18,4 @@ export const LlmButton = forwardRef(function LlmButton({ variant = 'primary', si
|
|
|
18
18
|
.join(' ');
|
|
19
19
|
return (_jsxs("button", { ref: ref, className: classes, disabled: isDisabled, "aria-disabled": isDisabled || undefined, ...rest, children: [loading && _jsx("span", { className: "spinner", "aria-hidden": "true" }), children] }));
|
|
20
20
|
});
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=atl-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-button.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/button/atl-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAmC,UAAU,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,kBAAkB,CAAC;AAmB1B;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAoC,SAAS,SAAS,CACvF,EACE,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EACD,GAAG;IAEH,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG;QACd,YAAY;QACZ,WAAW,OAAO,EAAE;QACpB,QAAQ,IAAI,EAAE;QACd,UAAU,IAAI,aAAa;QAC3B,OAAO,IAAI,YAAY;QACvB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,kBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,UAAU,mBACL,UAAU,IAAI,SAAS,KAClC,IAAI,aAEP,OAAO,IAAI,eAAM,SAAS,EAAC,SAAS,iBAAa,MAAM,GAAG,EAC1D,QAAQ,IACF,CACV,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { ButtonHTMLAttributes, ReactNode, forwardRef } from 'react';\nimport type { AtlButtonSpec } from '../spec';\nimport './atl-button.css';\n\n/**\n * Accessibility requirement: the button must carry an accessible name\n * either as visible children OR as an `aria-label`. TypeScript catches\n * the icon-only-without-aria-label mistake at consumer build time.\n */\ntype AtlButtonAccessibleName =\n | { children: ReactNode; 'aria-label'?: string }\n | { children?: undefined; 'aria-label': string };\n\n/**\n * Properties for the AtlButton component.\n */\nexport type AtlButtonProps =\n Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'aria-label'>\n & AtlButtonSpec\n & AtlButtonAccessibleName;\n\n/**\n * A versatile button component that supports various styles, sizes, and states.\n */\nexport const AtlButton = forwardRef<HTMLButtonElement, AtlButtonProps>(function AtlButton(\n {\n variant = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n children,\n className,\n ...rest\n },\n ref\n) {\n const isDisabled = disabled || loading;\n const classes = [\n 'atl-button',\n `variant-${variant}`,\n `size-${size}`,\n isDisabled && 'is-disabled',\n loading && 'is-loading',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n ref={ref}\n className={classes}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n {...rest}\n >\n {loading && <span className=\"spinner\" aria-hidden=\"true\" />}\n {children}\n </button>\n );\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.atl-card {
|
|
2
2
|
display: block;
|
|
3
3
|
border-radius: var(--ui-radius-xl);
|
|
4
4
|
background-color: var(--ui-color-surface-raised);
|
|
@@ -7,47 +7,47 @@
|
|
|
7
7
|
|
|
8
8
|
/* Modernised variants — single soft shadow on elevated, no shadow on
|
|
9
9
|
* outlined or flat. Cards rest on the page; they don't float off it. */
|
|
10
|
-
.
|
|
10
|
+
.atl-card.variant-elevated {
|
|
11
11
|
box-shadow: var(--ui-shadow-sm);
|
|
12
12
|
border: 1px solid var(--ui-color-border);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.
|
|
15
|
+
.atl-card.variant-outlined {
|
|
16
16
|
border: 1px solid var(--ui-color-border);
|
|
17
17
|
background-color: var(--ui-color-surface-raised);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.
|
|
20
|
+
.atl-card.variant-flat {
|
|
21
21
|
background-color: var(--ui-color-surface-sunken);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
/* Padding on .
|
|
25
|
-
.
|
|
26
|
-
.
|
|
27
|
-
.
|
|
24
|
+
/* Padding on .atl-card directly affects all slots */
|
|
25
|
+
.atl-card.padding-none .atl-card-header,
|
|
26
|
+
.atl-card.padding-none .atl-card-content,
|
|
27
|
+
.atl-card.padding-none .atl-card-footer {
|
|
28
28
|
padding: 0;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.
|
|
32
|
-
.
|
|
33
|
-
.
|
|
31
|
+
.atl-card.padding-sm .atl-card-header,
|
|
32
|
+
.atl-card.padding-sm .atl-card-content,
|
|
33
|
+
.atl-card.padding-sm .atl-card-footer {
|
|
34
34
|
padding: var(--ui-spacing-4);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
.
|
|
38
|
-
.
|
|
39
|
-
.
|
|
37
|
+
.atl-card.padding-md .atl-card-header,
|
|
38
|
+
.atl-card.padding-md .atl-card-content,
|
|
39
|
+
.atl-card.padding-md .atl-card-footer {
|
|
40
40
|
padding: var(--ui-spacing-6);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
.
|
|
44
|
-
.
|
|
45
|
-
.
|
|
43
|
+
.atl-card.padding-lg .atl-card-header,
|
|
44
|
+
.atl-card.padding-lg .atl-card-content,
|
|
45
|
+
.atl-card.padding-lg .atl-card-footer {
|
|
46
46
|
padding: var(--ui-spacing-8);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/* Sub-component layouts */
|
|
50
|
-
.
|
|
50
|
+
.atl-card-header {
|
|
51
51
|
display: block;
|
|
52
52
|
font-size: var(--ui-font-size-lg);
|
|
53
53
|
font-weight: var(--ui-font-weight-semibold);
|
|
@@ -56,13 +56,13 @@
|
|
|
56
56
|
letter-spacing: var(--ui-letter-spacing-tight);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
.
|
|
59
|
+
.atl-card-content {
|
|
60
60
|
display: block;
|
|
61
61
|
color: var(--ui-color-text);
|
|
62
62
|
line-height: var(--ui-line-height-normal);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
.
|
|
65
|
+
.atl-card-footer {
|
|
66
66
|
display: flex;
|
|
67
67
|
align-items: center;
|
|
68
68
|
gap: var(--ui-spacing-3);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlCardSpec, AtlCardRole } from '../spec';
|
|
3
|
+
import './atl-card.css';
|
|
4
4
|
/**
|
|
5
|
-
* Properties for the
|
|
5
|
+
* Properties for the AtlCard component.
|
|
6
6
|
*/
|
|
7
|
-
export interface
|
|
7
|
+
export interface AtlCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'>, AtlCardSpec {
|
|
8
8
|
/**
|
|
9
9
|
* The visual style variant of the card.
|
|
10
10
|
*/
|
|
@@ -19,7 +19,7 @@ export interface LlmCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role
|
|
|
19
19
|
* perceivable area that needs a screen-reader stop (pair with
|
|
20
20
|
* aria-label), or `'section'` to mirror an HTML `<section>`.
|
|
21
21
|
*/
|
|
22
|
-
role?:
|
|
22
|
+
role?: AtlCardRole;
|
|
23
23
|
/**
|
|
24
24
|
* The content to be rendered inside the card.
|
|
25
25
|
*/
|
|
@@ -28,32 +28,32 @@ export interface LlmCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role
|
|
|
28
28
|
/**
|
|
29
29
|
* A card component for grouping related content.
|
|
30
30
|
*/
|
|
31
|
-
export declare function
|
|
31
|
+
export declare function AtlCard({ variant, padding, children, className, ...rest }: AtlCardProps): import("react").JSX.Element;
|
|
32
32
|
/**
|
|
33
|
-
* The header component for an
|
|
33
|
+
* The header component for an AtlCard.
|
|
34
34
|
*/
|
|
35
|
-
export declare function
|
|
35
|
+
export declare function AtlCardHeader({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
36
36
|
/**
|
|
37
37
|
* The content of the card header.
|
|
38
38
|
*/
|
|
39
39
|
children?: ReactNode;
|
|
40
|
-
}): import("react
|
|
40
|
+
}): import("react").JSX.Element;
|
|
41
41
|
/**
|
|
42
|
-
* The main content component for an
|
|
42
|
+
* The main content component for an AtlCard.
|
|
43
43
|
*/
|
|
44
|
-
export declare function
|
|
44
|
+
export declare function AtlCardContent({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
45
45
|
/**
|
|
46
46
|
* The main content of the card.
|
|
47
47
|
*/
|
|
48
48
|
children?: ReactNode;
|
|
49
|
-
}): import("react
|
|
49
|
+
}): import("react").JSX.Element;
|
|
50
50
|
/**
|
|
51
|
-
* The footer component for an
|
|
51
|
+
* The footer component for an AtlCard.
|
|
52
52
|
*/
|
|
53
|
-
export declare function
|
|
53
|
+
export declare function AtlCardFooter({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
|
|
54
54
|
/**
|
|
55
55
|
* The content of the card footer.
|
|
56
56
|
*/
|
|
57
57
|
children?: ReactNode;
|
|
58
|
-
}): import("react
|
|
59
|
-
//# sourceMappingURL=
|
|
58
|
+
}): import("react").JSX.Element;
|
|
59
|
+
//# sourceMappingURL=atl-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-card.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/card/atl-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAClD,WAAW;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC3C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAoB,EACpB,OAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,YAAY,+BASd;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAMA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAMA;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAMA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import './atl-card.css';
|
|
3
|
+
/**
|
|
4
|
+
* A card component for grouping related content.
|
|
5
|
+
*/
|
|
6
|
+
export function AtlCard({ variant = 'elevated', padding = 'md', children, className, ...rest }) {
|
|
7
|
+
const classes = ['atl-card', `variant-${variant}`, `padding-${padding}`, className]
|
|
8
|
+
.filter(Boolean)
|
|
9
|
+
.join(' ');
|
|
10
|
+
return (_jsx("div", { className: classes, ...rest, children: children }));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The header component for an AtlCard.
|
|
14
|
+
*/
|
|
15
|
+
export function AtlCardHeader({ children, className, ...rest }) {
|
|
16
|
+
return (_jsx("div", { className: ['atl-card-header', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The main content component for an AtlCard.
|
|
20
|
+
*/
|
|
21
|
+
export function AtlCardContent({ children, className, ...rest }) {
|
|
22
|
+
return (_jsx("div", { className: ['atl-card-content', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The footer component for an AtlCard.
|
|
26
|
+
*/
|
|
27
|
+
export function AtlCardFooter({ children, className, ...rest }) {
|
|
28
|
+
return (_jsx("div", { className: ['atl-card-footer', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=atl-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-card.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/card/atl-card.tsx"],"names":[],"mappings":";AAEA,OAAO,gBAAgB,CAAC;AA6BxB;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,OAAO,GAAG,UAAU,EACpB,OAAO,GAAG,IAAI,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACM;IACb,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,WAAW,OAAO,EAAE,EAAE,WAAW,OAAO,EAAE,EAAE,SAAS,CAAC;SAChF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CACL,cAAK,SAAS,EAAE,OAAO,KAAM,IAAI,YAC9B,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EAMR;IACC,OAAO,CACL,cAAK,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,IAAI,YAC/E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EAMR;IACC,OAAO,CACL,cAAK,SAAS,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,IAAI,YAChF,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EAMR;IACC,OAAO,CACL,cAAK,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,IAAI,YAC/E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes, ReactNode } from 'react';\nimport type { AtlCardSpec, AtlCardRole } from '../spec';\nimport './atl-card.css';\n\n/**\n * Properties for the AtlCard component.\n */\nexport interface AtlCardProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'role'>,\n AtlCardSpec {\n /**\n * The visual style variant of the card.\n */\n variant?: 'elevated' | 'outlined' | 'flat';\n /**\n * The padding size within the card.\n */\n padding?: 'none' | 'sm' | 'md' | 'lg';\n /**\n * Opt-in landmark role. Default is no role (plain `<div>`).\n * Pick `'article'` for self-contained content, `'region'` for a\n * perceivable area that needs a screen-reader stop (pair with\n * aria-label), or `'section'` to mirror an HTML `<section>`.\n */\n role?: AtlCardRole;\n /**\n * The content to be rendered inside the card.\n */\n children?: ReactNode;\n}\n\n/**\n * A card component for grouping related content.\n */\nexport function AtlCard({\n variant = 'elevated',\n padding = 'md',\n children,\n className,\n ...rest\n}: AtlCardProps) {\n const classes = ['atl-card', `variant-${variant}`, `padding-${padding}`, className]\n .filter(Boolean)\n .join(' ');\n return (\n <div className={classes} {...rest}>\n {children}\n </div>\n );\n}\n\n/**\n * The header component for an AtlCard.\n */\nexport function AtlCardHeader({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The content of the card header.\n */\n children?: ReactNode;\n}) {\n return (\n <div className={['atl-card-header', className].filter(Boolean).join(' ')} {...rest}>\n {children}\n </div>\n );\n}\n\n/**\n * The main content component for an AtlCard.\n */\nexport function AtlCardContent({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The main content of the card.\n */\n children?: ReactNode;\n}) {\n return (\n <div className={['atl-card-content', className].filter(Boolean).join(' ')} {...rest}>\n {children}\n </div>\n );\n}\n\n/**\n * The footer component for an AtlCard.\n */\nexport function AtlCardFooter({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * The content of the card footer.\n */\n children?: ReactNode;\n}) {\n return (\n <div className={['atl-card-footer', className].filter(Boolean).join(' ')} {...rest}>\n {children}\n </div>\n );\n}\n"]}
|