@atelier-ui/react 0.1.12 → 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 +26 -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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
## 0.2.0 (2026-07-21)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- ⚠️ **docs:** rename Llm prefix to Atl across docs, generated artifacts, and tooling docs ([965787d](https://github.com/DominikPieper/atelier-ui/commit/965787d))
|
|
6
|
+
- ⚠️ **react:** rename Llm prefix to Atl across the React library ([ae4ea31](https://github.com/DominikPieper/atelier-ui/commit/ae4ea31))
|
|
7
|
+
- ⚠️ **spec:** rename Llm prefix to Atl in spec contract ([6860cc4](https://github.com/DominikPieper/atelier-ui/commit/6860cc4))
|
|
8
|
+
|
|
9
|
+
### ⚠️ Breaking Changes
|
|
10
|
+
|
|
11
|
+
- **docs:** rename Llm prefix to Atl across docs, generated artifacts, and tooling docs ([965787d](https://github.com/DominikPieper/atelier-ui/commit/965787d))
|
|
12
|
+
- **react:** rename Llm prefix to Atl across the React library ([ae4ea31](https://github.com/DominikPieper/atelier-ui/commit/ae4ea31))
|
|
13
|
+
every React component, prop type, and CSS class
|
|
14
|
+
renamed Llm/llm- -> Atl/atl- (ADR-0029), including the mid-word
|
|
15
|
+
Toast case (useLlmToast -> useAtlToast, LlmToastProvider ->
|
|
16
|
+
AtlToastProvider, LlmToastContainer -> AtlToastContainer).
|
|
17
|
+
nx lint/test/build react all green (392/392 tests).
|
|
18
|
+
- **spec:** rename Llm prefix to Atl in spec contract ([6860cc4](https://github.com/DominikPieper/atelier-ui/commit/6860cc4))
|
|
19
|
+
every exported spec type/interface renamed
|
|
20
|
+
Llm* -> Atl* (ADR-0029). Framework libs will fail to typecheck
|
|
21
|
+
until each is renamed in turn (next commits) — expected mid-migration.
|
|
22
|
+
|
|
23
|
+
### ❤️ Thank You
|
|
24
|
+
|
|
25
|
+
- Dominik Pieper @DominikPieper
|
|
26
|
+
|
|
1
27
|
## 0.1.12 (2026-07-21)
|
|
2
28
|
|
|
3
29
|
This was a version bump only for react to align it with other projects, there were no code changes.
|
package/README.md
CHANGED
|
@@ -24,11 +24,11 @@ Add the design tokens to your global `index.css`:
|
|
|
24
24
|
## Usage
|
|
25
25
|
|
|
26
26
|
```tsx
|
|
27
|
-
import {
|
|
27
|
+
import { AtlButton } from '@atelier-ui/react';
|
|
28
28
|
|
|
29
29
|
export const MyComponent = () => (
|
|
30
|
-
<
|
|
30
|
+
<AtlButton variant="primary" onClick={() => console.log('save')}>
|
|
31
31
|
Save
|
|
32
|
-
</
|
|
32
|
+
</AtlButton>
|
|
33
33
|
);
|
|
34
34
|
```
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export * from './lib/accordion/
|
|
2
|
-
export * from './lib/alert/
|
|
3
|
-
export * from './lib/avatar/
|
|
4
|
-
export * from './lib/badge/
|
|
5
|
-
export * from './lib/icon/
|
|
6
|
-
export * from './lib/breadcrumbs/
|
|
7
|
-
export * from './lib/button/
|
|
8
|
-
export * from './lib/card/
|
|
9
|
-
export * from './lib/checkbox/
|
|
10
|
-
export * from './lib/dialog/
|
|
11
|
-
export * from './lib/drawer/
|
|
12
|
-
export * from './lib/input/
|
|
13
|
-
export * from './lib/menu/
|
|
14
|
-
export * from './lib/pagination/
|
|
15
|
-
export * from './lib/progress/
|
|
16
|
-
export * from './lib/radio-group/
|
|
17
|
-
export * from './lib/radio/
|
|
18
|
-
export * from './lib/select/
|
|
19
|
-
export * from './lib/combobox/
|
|
20
|
-
export * from './lib/skeleton/
|
|
21
|
-
export * from './lib/table/
|
|
22
|
-
export * from './lib/tabs/
|
|
23
|
-
export * from './lib/textarea/
|
|
24
|
-
export * from './lib/toast/
|
|
25
|
-
export * from './lib/stepper/
|
|
26
|
-
export * from './lib/toggle/
|
|
27
|
-
export * from './lib/tooltip/
|
|
28
|
-
export * from './lib/code-block/
|
|
29
|
-
export * from './lib/chat/
|
|
1
|
+
export * from './lib/accordion/atl-accordion';
|
|
2
|
+
export * from './lib/alert/atl-alert';
|
|
3
|
+
export * from './lib/avatar/atl-avatar';
|
|
4
|
+
export * from './lib/badge/atl-badge';
|
|
5
|
+
export * from './lib/icon/atl-icon';
|
|
6
|
+
export * from './lib/breadcrumbs/atl-breadcrumbs';
|
|
7
|
+
export * from './lib/button/atl-button';
|
|
8
|
+
export * from './lib/card/atl-card';
|
|
9
|
+
export * from './lib/checkbox/atl-checkbox';
|
|
10
|
+
export * from './lib/dialog/atl-dialog';
|
|
11
|
+
export * from './lib/drawer/atl-drawer';
|
|
12
|
+
export * from './lib/input/atl-input';
|
|
13
|
+
export * from './lib/menu/atl-menu';
|
|
14
|
+
export * from './lib/pagination/atl-pagination';
|
|
15
|
+
export * from './lib/progress/atl-progress';
|
|
16
|
+
export * from './lib/radio-group/atl-radio-group';
|
|
17
|
+
export * from './lib/radio/atl-radio';
|
|
18
|
+
export * from './lib/select/atl-select';
|
|
19
|
+
export * from './lib/combobox/atl-combobox';
|
|
20
|
+
export * from './lib/skeleton/atl-skeleton';
|
|
21
|
+
export * from './lib/table/atl-table';
|
|
22
|
+
export * from './lib/tabs/atl-tabs';
|
|
23
|
+
export * from './lib/textarea/atl-textarea';
|
|
24
|
+
export * from './lib/toast/atl-toast';
|
|
25
|
+
export * from './lib/stepper/atl-stepper';
|
|
26
|
+
export * from './lib/toggle/atl-toggle';
|
|
27
|
+
export * from './lib/tooltip/atl-tooltip';
|
|
28
|
+
export * from './lib/code-block/atl-code-block';
|
|
29
|
+
export * from './lib/chat/atl-chat';
|
|
30
30
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export * from './lib/accordion/
|
|
2
|
-
export * from './lib/alert/
|
|
3
|
-
export * from './lib/avatar/
|
|
4
|
-
export * from './lib/badge/
|
|
5
|
-
export * from './lib/icon/
|
|
6
|
-
export * from './lib/breadcrumbs/
|
|
7
|
-
export * from './lib/button/
|
|
8
|
-
export * from './lib/card/
|
|
9
|
-
export * from './lib/checkbox/
|
|
10
|
-
export * from './lib/dialog/
|
|
11
|
-
export * from './lib/drawer/
|
|
12
|
-
export * from './lib/input/
|
|
13
|
-
export * from './lib/menu/
|
|
14
|
-
export * from './lib/pagination/
|
|
15
|
-
export * from './lib/progress/
|
|
16
|
-
export * from './lib/radio-group/
|
|
17
|
-
export * from './lib/radio/
|
|
18
|
-
export * from './lib/select/
|
|
19
|
-
export * from './lib/combobox/
|
|
20
|
-
export * from './lib/skeleton/
|
|
21
|
-
export * from './lib/table/
|
|
22
|
-
export * from './lib/tabs/
|
|
23
|
-
export * from './lib/textarea/
|
|
24
|
-
export * from './lib/toast/
|
|
25
|
-
export * from './lib/stepper/
|
|
26
|
-
export * from './lib/toggle/
|
|
27
|
-
export * from './lib/tooltip/
|
|
28
|
-
export * from './lib/code-block/
|
|
29
|
-
export * from './lib/chat/
|
|
1
|
+
export * from './lib/accordion/atl-accordion';
|
|
2
|
+
export * from './lib/alert/atl-alert';
|
|
3
|
+
export * from './lib/avatar/atl-avatar';
|
|
4
|
+
export * from './lib/badge/atl-badge';
|
|
5
|
+
export * from './lib/icon/atl-icon';
|
|
6
|
+
export * from './lib/breadcrumbs/atl-breadcrumbs';
|
|
7
|
+
export * from './lib/button/atl-button';
|
|
8
|
+
export * from './lib/card/atl-card';
|
|
9
|
+
export * from './lib/checkbox/atl-checkbox';
|
|
10
|
+
export * from './lib/dialog/atl-dialog';
|
|
11
|
+
export * from './lib/drawer/atl-drawer';
|
|
12
|
+
export * from './lib/input/atl-input';
|
|
13
|
+
export * from './lib/menu/atl-menu';
|
|
14
|
+
export * from './lib/pagination/atl-pagination';
|
|
15
|
+
export * from './lib/progress/atl-progress';
|
|
16
|
+
export * from './lib/radio-group/atl-radio-group';
|
|
17
|
+
export * from './lib/radio/atl-radio';
|
|
18
|
+
export * from './lib/select/atl-select';
|
|
19
|
+
export * from './lib/combobox/atl-combobox';
|
|
20
|
+
export * from './lib/skeleton/atl-skeleton';
|
|
21
|
+
export * from './lib/table/atl-table';
|
|
22
|
+
export * from './lib/tabs/atl-tabs';
|
|
23
|
+
export * from './lib/textarea/atl-textarea';
|
|
24
|
+
export * from './lib/toast/atl-toast';
|
|
25
|
+
export * from './lib/stepper/atl-stepper';
|
|
26
|
+
export * from './lib/toggle/atl-toggle';
|
|
27
|
+
export * from './lib/tooltip/atl-tooltip';
|
|
28
|
+
export * from './lib/code-block/atl-code-block';
|
|
29
|
+
export * from './lib/chat/atl-chat';
|
|
30
30
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/react/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './lib/accordion/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/react/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC","sourcesContent":["export * from './lib/accordion/atl-accordion';\nexport * from './lib/alert/atl-alert';\nexport * from './lib/avatar/atl-avatar';\nexport * from './lib/badge/atl-badge';\nexport * from './lib/icon/atl-icon';\nexport * from './lib/breadcrumbs/atl-breadcrumbs';\nexport * from './lib/button/atl-button';\nexport * from './lib/card/atl-card';\nexport * from './lib/checkbox/atl-checkbox';\nexport * from './lib/dialog/atl-dialog';\nexport * from './lib/drawer/atl-drawer';\nexport * from './lib/input/atl-input';\nexport * from './lib/menu/atl-menu';\nexport * from './lib/pagination/atl-pagination';\nexport * from './lib/progress/atl-progress';\nexport * from './lib/radio-group/atl-radio-group';\nexport * from './lib/radio/atl-radio';\nexport * from './lib/select/atl-select';\nexport * from './lib/combobox/atl-combobox';\nexport * from './lib/skeleton/atl-skeleton';\nexport * from './lib/table/atl-table';\nexport * from './lib/tabs/atl-tabs';\nexport * from './lib/textarea/atl-textarea';\nexport * from './lib/toast/atl-toast';\nexport * from './lib/stepper/atl-stepper';\nexport * from './lib/toggle/atl-toggle';\nexport * from './lib/tooltip/atl-tooltip';\nexport * from './lib/code-block/atl-code-block';\nexport * from './lib/chat/atl-chat';\n"]}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
/* ── AccordionGroup ──────────────────────────────────────────────────────── */
|
|
2
|
-
.
|
|
2
|
+
.atl-accordion-group {
|
|
3
3
|
display: block;
|
|
4
4
|
font-family: var(--ui-font-family);
|
|
5
5
|
color: var(--ui-color-text);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
/* ── Default variant — shared borders between items ──────────────────────── */
|
|
9
|
-
.
|
|
9
|
+
.atl-accordion-group.variant-default {
|
|
10
10
|
border-top: 1px solid var(--ui-color-border);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.
|
|
13
|
+
.atl-accordion-group.variant-default .atl-accordion-item {
|
|
14
14
|
border-bottom: 1px solid var(--ui-color-border);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/* ── Bordered variant — outer border + radius ────────────────────────────── */
|
|
18
|
-
.
|
|
18
|
+
.atl-accordion-group.variant-bordered {
|
|
19
19
|
border: 1px solid var(--ui-color-border);
|
|
20
20
|
border-radius: var(--ui-radius-lg);
|
|
21
21
|
overflow: hidden;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
.
|
|
24
|
+
.atl-accordion-group.variant-bordered .atl-accordion-item:not(:last-child) {
|
|
25
25
|
border-bottom: 1px solid var(--ui-color-border);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/* ── Separated variant — card-like items with gap ────────────────────────── */
|
|
29
|
-
.
|
|
29
|
+
.atl-accordion-group.variant-separated {
|
|
30
30
|
display: flex;
|
|
31
31
|
flex-direction: column;
|
|
32
32
|
gap: var(--ui-spacing-2);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.atl-accordion-group.variant-separated .atl-accordion-item {
|
|
36
36
|
border: 1px solid var(--ui-color-border);
|
|
37
37
|
border-radius: var(--ui-radius-lg);
|
|
38
38
|
overflow: hidden;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/* ── AccordionItem ──────────────────────────────────────────────────────────── */
|
|
42
|
-
.
|
|
42
|
+
.atl-accordion-item {
|
|
43
43
|
display: block;
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode, HTMLAttributes } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
2
|
+
import type { AtlAccordionGroupSpec, AtlAccordionItemSpec } from '../spec';
|
|
3
|
+
import './atl-accordion.css';
|
|
4
4
|
/**
|
|
5
|
-
* Properties for the
|
|
5
|
+
* Properties for the AtlAccordionGroup component.
|
|
6
6
|
*/
|
|
7
|
-
export interface
|
|
7
|
+
export interface AtlAccordionGroupProps extends HTMLAttributes<HTMLDivElement>, AtlAccordionGroupSpec {
|
|
8
8
|
/**
|
|
9
9
|
* Whether multiple items can be expanded simultaneously.
|
|
10
10
|
*/
|
|
@@ -21,11 +21,11 @@ export interface LlmAccordionGroupProps extends HTMLAttributes<HTMLDivElement>,
|
|
|
21
21
|
/**
|
|
22
22
|
* A container component that manages a group of accordion items.
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function AtlAccordionGroup({ multi, variant, children, className, ...rest }: AtlAccordionGroupProps): import("react").JSX.Element;
|
|
25
25
|
/**
|
|
26
|
-
* Properties for the
|
|
26
|
+
* Properties for the AtlAccordionItem component.
|
|
27
27
|
*/
|
|
28
|
-
export interface
|
|
28
|
+
export interface AtlAccordionItemProps extends HTMLAttributes<HTMLDivElement>, AtlAccordionItemSpec {
|
|
29
29
|
/**
|
|
30
30
|
* Whether the item is currently expanded.
|
|
31
31
|
*/
|
|
@@ -44,21 +44,21 @@ export interface LlmAccordionItemProps extends HTMLAttributes<HTMLDivElement>, L
|
|
|
44
44
|
*/
|
|
45
45
|
headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
46
46
|
/**
|
|
47
|
-
* The content of the accordion item, typically including an
|
|
47
|
+
* The content of the accordion item, typically including an AtlAccordionHeader.
|
|
48
48
|
*/
|
|
49
49
|
children?: ReactNode;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* An individual item within an accordion group.
|
|
53
53
|
*/
|
|
54
|
-
export declare function
|
|
54
|
+
export declare function AtlAccordionItem({ expanded: externalExpanded, onExpandedChange, disabled, headingLevel, children, className, ...rest }: AtlAccordionItemProps): import("react").JSX.Element;
|
|
55
55
|
/**
|
|
56
|
-
* The header component for an
|
|
56
|
+
* The header component for an AtlAccordionItem.
|
|
57
57
|
*/
|
|
58
|
-
export declare function
|
|
58
|
+
export declare function AtlAccordionHeader({ children, className, ...rest }: HTMLAttributes<HTMLSpanElement> & {
|
|
59
59
|
/**
|
|
60
60
|
* The content to be rendered in the header.
|
|
61
61
|
*/
|
|
62
62
|
children?: ReactNode;
|
|
63
63
|
}): import("react").JSX.Element;
|
|
64
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=atl-accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-accordion.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/accordion/atl-accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,SAAS,EACT,cAAc,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,qBAAqB,CAAC;AAoB7B;;GAEG;AACH,MAAM,WAAW,sBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,qBAAqB;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAa,EACb,OAAmB,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,sBAAsB,+BA+DxB;AAED;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,oBAAoB;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,EAChB,QAAgB,EAChB,YAAgB,EAChB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,qBAAqB,+BAuGvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG;IACnC;;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 { createContext, useContext, useState, useRef, useId, useLayoutEffect, useCallback, } from 'react';
|
|
3
|
-
import './
|
|
3
|
+
import './atl-accordion.css';
|
|
4
4
|
const AccordionGroupContext = createContext({
|
|
5
5
|
multi: false,
|
|
6
6
|
openItems: new Set(),
|
|
@@ -12,10 +12,10 @@ const AccordionGroupContext = createContext({
|
|
|
12
12
|
/**
|
|
13
13
|
* A container component that manages a group of accordion items.
|
|
14
14
|
*/
|
|
15
|
-
export function
|
|
15
|
+
export function AtlAccordionGroup({ multi = false, variant = 'default', children, className, ...rest }) {
|
|
16
16
|
const [openItems, setOpenItems] = useState(new Set());
|
|
17
17
|
const itemsRef = useRef([]);
|
|
18
|
-
const classes = ['
|
|
18
|
+
const classes = ['atl-accordion-group', `variant-${variant}`, className]
|
|
19
19
|
.filter(Boolean)
|
|
20
20
|
.join(' ');
|
|
21
21
|
const toggleItem = useCallback((id) => {
|
|
@@ -68,7 +68,7 @@ export function LlmAccordionGroup({ multi = false, variant = 'default', children
|
|
|
68
68
|
/**
|
|
69
69
|
* An individual item within an accordion group.
|
|
70
70
|
*/
|
|
71
|
-
export function
|
|
71
|
+
export function AtlAccordionItem({ expanded: externalExpanded, onExpandedChange, disabled = false, headingLevel = 3, children, className, ...rest }) {
|
|
72
72
|
const ctx = useContext(AccordionGroupContext);
|
|
73
73
|
const id = useId();
|
|
74
74
|
const triggerId = `${id}-trigger`;
|
|
@@ -91,7 +91,7 @@ export function LlmAccordionItem({ expanded: externalExpanded, onExpandedChange,
|
|
|
91
91
|
onExpandedChange?.(next);
|
|
92
92
|
};
|
|
93
93
|
const classes = [
|
|
94
|
-
'
|
|
94
|
+
'atl-accordion-item',
|
|
95
95
|
isExpanded && 'is-expanded',
|
|
96
96
|
disabled && 'is-disabled',
|
|
97
97
|
className,
|
|
@@ -103,7 +103,7 @@ export function LlmAccordionItem({ expanded: externalExpanded, onExpandedChange,
|
|
|
103
103
|
const headerNode = childArray.find((c) => typeof c === 'object' &&
|
|
104
104
|
c !== null &&
|
|
105
105
|
'type' in c &&
|
|
106
|
-
c.type ===
|
|
106
|
+
c.type === AtlAccordionHeader);
|
|
107
107
|
const bodyNodes = childArray.filter((c) => c !== headerNode);
|
|
108
108
|
// Render the heading wrapper at the level the consumer asked for.
|
|
109
109
|
// We can't use a JSX expression as a tag, so React.createElement is
|
|
@@ -118,9 +118,9 @@ export function LlmAccordionItem({ expanded: externalExpanded, onExpandedChange,
|
|
|
118
118
|
.join(' '), children: _jsx("div", { id: panelId, role: "region", "aria-labelledby": triggerId, className: "accordion-panel", children: bodyNodes }) })] }));
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
* The header component for an
|
|
121
|
+
* The header component for an AtlAccordionItem.
|
|
122
122
|
*/
|
|
123
|
-
export function
|
|
123
|
+
export function AtlAccordionHeader({ children, className, ...rest }) {
|
|
124
124
|
return (_jsx("span", { className: ['accordion-header-content', className].filter(Boolean).join(' '), ...rest, children: children }));
|
|
125
125
|
}
|
|
126
|
-
//# sourceMappingURL=
|
|
126
|
+
//# sourceMappingURL=atl-accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-accordion.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/accordion/llm-accordion.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useRef,\n useId,\n useLayoutEffect,\n useCallback,\n ReactNode,\n HTMLAttributes,\n KeyboardEvent,\n} from 'react';\nimport type {\n LlmAccordionGroupSpec,\n LlmAccordionItemSpec,\n} from '../spec';\nimport './llm-accordion.css';\n\ninterface AccordionGroupContextValue {\n multi: boolean;\n openItems: Set<string>;\n toggleItem: (id: string) => void;\n registerItem: (id: string, ref: React.RefObject<HTMLButtonElement | null>, disabled: boolean) => void;\n unregisterItem: (id: string) => void;\n handleKeydown: (e: KeyboardEvent, id: string) => void;\n}\n\nconst AccordionGroupContext = createContext<AccordionGroupContextValue>({\n multi: false,\n openItems: new Set(),\n toggleItem: () => { /* noop */ },\n registerItem: () => { /* noop */ },\n unregisterItem: () => { /* noop */ },\n handleKeydown: () => { /* noop */ },\n});\n\n/**\n * Properties for the LlmAccordionGroup component.\n */\nexport interface LlmAccordionGroupProps\n extends HTMLAttributes<HTMLDivElement>,\n LlmAccordionGroupSpec {\n /**\n * Whether multiple items can be expanded simultaneously.\n */\n multi?: boolean;\n /**\n * The visual style variant of the accordion.\n */\n variant?: 'default' | 'bordered' | 'separated';\n /**\n * The accordion items to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A container component that manages a group of accordion items.\n */\nexport function LlmAccordionGroup({\n multi = false,\n variant = 'default',\n children,\n className,\n ...rest\n}: LlmAccordionGroupProps) {\n const [openItems, setOpenItems] = useState<Set<string>>(new Set());\n const itemsRef = useRef<{ id: string; triggerRef: React.RefObject<HTMLButtonElement | null>; disabled: boolean }[]>([]);\n\n const classes = ['llm-accordion-group', `variant-${variant}`, className]\n .filter(Boolean)\n .join(' ');\n\n const toggleItem = useCallback((id: string) => {\n setOpenItems((prev) => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n if (!multi) next.clear();\n next.add(id);\n }\n return next;\n });\n }, [multi]);\n\n const registerItem = useCallback((id: string, ref: React.RefObject<HTMLButtonElement | null>, disabled: boolean) => {\n itemsRef.current = [...itemsRef.current.filter((i) => i.id !== id), { id, triggerRef: ref, disabled }];\n }, []);\n\n const unregisterItem = useCallback((id: string) => {\n itemsRef.current = itemsRef.current.filter((i) => i.id !== id);\n }, []);\n\n const handleKeydown = useCallback((e: KeyboardEvent, currentId: string) => {\n const enabled = itemsRef.current.filter((i) => !i.disabled);\n if (enabled.length === 0) return;\n\n const pos = enabled.findIndex((i) => i.id === currentId);\n const n = enabled.length;\n let target: (typeof enabled)[0] | null = null;\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n target = enabled[(pos + 1) % n];\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n target = enabled[(pos - 1 + n) % n];\n } else if (e.key === 'Home') {\n e.preventDefault();\n target = enabled[0];\n } else if (e.key === 'End') {\n e.preventDefault();\n target = enabled[n - 1];\n }\n\n target?.triggerRef.current?.focus();\n }, []);\n\n return (\n <AccordionGroupContext.Provider\n value={{ multi, openItems, toggleItem, registerItem, unregisterItem, handleKeydown }}\n >\n <div className={classes} role=\"presentation\" {...rest}>\n {children}\n </div>\n </AccordionGroupContext.Provider>\n );\n}\n\n/**\n * Properties for the LlmAccordionItem component.\n */\nexport interface LlmAccordionItemProps\n extends HTMLAttributes<HTMLDivElement>,\n LlmAccordionItemSpec {\n /**\n * Whether the item is currently expanded.\n */\n expanded?: boolean;\n /**\n * Callback triggered when the expanded state changes.\n */\n onExpandedChange?: (expanded: boolean) => void;\n /**\n * Whether the accordion item is disabled.\n */\n disabled?: boolean;\n /**\n * HTML heading level wrapping the trigger button. Default `3`.\n * Match your page's heading outline so heading order stays valid.\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * The content of the accordion item, typically including an LlmAccordionHeader.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual item within an accordion group.\n */\nexport function LlmAccordionItem({\n expanded: externalExpanded,\n onExpandedChange,\n disabled = false,\n headingLevel = 3,\n children,\n className,\n ...rest\n}: LlmAccordionItemProps) {\n const ctx = useContext(AccordionGroupContext);\n const id = useId();\n const triggerId = `${id}-trigger`;\n const panelId = `${id}-panel`;\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const { registerItem, unregisterItem } = ctx;\n\n // Register/unregister with parent\n useLayoutEffect(() => {\n registerItem(id, triggerRef, disabled);\n return () => unregisterItem(id);\n }, [id, triggerRef, disabled, registerItem, unregisterItem]);\n\n const isControlled = externalExpanded !== undefined;\n const isExpanded = isControlled ? externalExpanded : ctx.openItems.has(id);\n\n const toggle = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (!isControlled) ctx.toggleItem(id);\n onExpandedChange?.(next);\n };\n\n const classes = [\n 'llm-accordion-item',\n isExpanded && 'is-expanded',\n disabled && 'is-disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Separate header child from body children\n const childArray = Array.isArray(children) ? children : [children];\n const headerNode = childArray.find(\n (c): c is React.ReactElement =>\n typeof c === 'object' &&\n c !== null &&\n 'type' in (c as object) &&\n (c as React.ReactElement).type === LlmAccordionHeader\n );\n const bodyNodes = childArray.filter((c) => c !== headerNode);\n\n // Render the heading wrapper at the level the consumer asked for.\n // We can't use a JSX expression as a tag, so React.createElement is\n // the cleanest path here.\n const Heading = `h${headingLevel}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div className={classes} {...rest}>\n <Heading className=\"accordion-heading\">\n <button\n ref={triggerRef}\n type=\"button\"\n id={triggerId}\n className={['accordion-trigger', disabled && 'is-disabled']\n .filter(Boolean)\n .join(' ')}\n aria-expanded={isExpanded}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={toggle}\n onKeyDown={(e) => ctx.handleKeydown(e, id)}\n >\n {headerNode}\n <svg\n className={['chevron', isExpanded && 'is-expanded']\n .filter(Boolean)\n .join(' ')}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </Heading>\n <div\n className={['accordion-panel-wrapper', isExpanded && 'is-expanded']\n .filter(Boolean)\n .join(' ')}\n >\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={triggerId}\n className=\"accordion-panel\"\n >\n {bodyNodes}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * The header component for an LlmAccordionItem.\n */\nexport function LlmAccordionHeader({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLSpanElement> & {\n /**\n * The content to be rendered in the header.\n */\n children?: ReactNode;\n}) {\n return (\n <span\n className={['accordion-header-content', className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </span>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"atl-accordion.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/accordion/atl-accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,eAAe,EACf,WAAW,GAIZ,MAAM,OAAO,CAAC;AAKf,OAAO,qBAAqB,CAAC;AAW7B,MAAM,qBAAqB,GAAG,aAAa,CAA6B;IACtE,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI,GAAG,EAAE;IACpB,UAAU,EAAE,GAAG,EAAE,GAAc,CAAC;IAChC,YAAY,EAAE,GAAG,EAAE,GAAc,CAAC;IAClC,cAAc,EAAE,GAAG,EAAE,GAAc,CAAC;IACpC,aAAa,EAAE,GAAG,EAAE,GAAc,CAAC;CACpC,CAAC,CAAC;AAsBH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACgB;IACvB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,CAA6F,EAAE,CAAC,CAAC;IAExH,MAAM,OAAO,GAAG,CAAC,qBAAqB,EAAE,WAAW,OAAO,EAAE,EAAE,SAAS,CAAC;SACrE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QAC5C,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,GAA8C,EAAE,QAAiB,EAAE,EAAE;QACjH,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QAChD,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAgB,EAAE,SAAiB,EAAE,EAAE;QACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,MAAM,GAA+B,IAAI,CAAC;QAE9C,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,qBAAqB,CAAC,QAAQ,IAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAEpF,cAAK,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,cAAc,KAAK,IAAI,YAClD,QAAQ,GACL,GACyB,CAClC,CAAC;AACJ,CAAC;AA+BD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,EAChB,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,CAAC,EAChB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACe;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,GAAG,EAAE,UAAU,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAEnD,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;IAE7C,kCAAkC;IAClC,eAAe,CAAC,GAAG,EAAE;QACnB,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAG,gBAAgB,KAAK,SAAS,CAAC;IACpD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,YAAY;YAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,oBAAoB;QACpB,UAAU,IAAI,aAAa;QAC3B,QAAQ,IAAI,aAAa;QACzB,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,2CAA2C;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAChC,CAAC,CAAC,EAA2B,EAAE,CAC7B,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,MAAM,IAAK,CAAY;QACtB,CAAwB,CAAC,IAAI,KAAK,kBAAkB,CACxD,CAAC;IACF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;IAE7D,kEAAkE;IAClE,oEAAoE;IACpE,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,YAAY,EAA6C,CAAC;IAC9E,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,KAAM,IAAI,aAC/B,KAAC,OAAO,IAAC,SAAS,EAAC,mBAAmB,YACpC,kBACE,GAAG,EAAE,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,CAAC,mBAAmB,EAAE,QAAQ,IAAI,aAAa,CAAC;yBACxD,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,CAAC,GAAG,CAAC,mBACG,UAAU,mBACV,OAAO,mBACP,QAAQ,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,aAEzC,UAAU,EACX,cACE,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,IAAI,aAAa,CAAC;iCAChD,MAAM,CAAC,OAAO,CAAC;iCACf,IAAI,CAAC,GAAG,CAAC,EACZ,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,iBACC,MAAM,YAElB,eACE,CAAC,EAAC,gBAAgB,EAClB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,GACE,IACC,GACD,EACV,cACE,SAAS,EAAE,CAAC,yBAAyB,EAAE,UAAU,IAAI,aAAa,CAAC;qBAChE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,GAAG,CAAC,YAEZ,cACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,QAAQ,qBACI,SAAS,EAC1B,SAAS,EAAC,iBAAiB,YAE1B,SAAS,GACN,GACF,IACF,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EAMR;IACC,OAAO,CACL,eACE,SAAS,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KACxE,IAAI,YAEP,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC","sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useRef,\n useId,\n useLayoutEffect,\n useCallback,\n ReactNode,\n HTMLAttributes,\n KeyboardEvent,\n} from 'react';\nimport type {\n AtlAccordionGroupSpec,\n AtlAccordionItemSpec,\n} from '../spec';\nimport './atl-accordion.css';\n\ninterface AccordionGroupContextValue {\n multi: boolean;\n openItems: Set<string>;\n toggleItem: (id: string) => void;\n registerItem: (id: string, ref: React.RefObject<HTMLButtonElement | null>, disabled: boolean) => void;\n unregisterItem: (id: string) => void;\n handleKeydown: (e: KeyboardEvent, id: string) => void;\n}\n\nconst AccordionGroupContext = createContext<AccordionGroupContextValue>({\n multi: false,\n openItems: new Set(),\n toggleItem: () => { /* noop */ },\n registerItem: () => { /* noop */ },\n unregisterItem: () => { /* noop */ },\n handleKeydown: () => { /* noop */ },\n});\n\n/**\n * Properties for the AtlAccordionGroup component.\n */\nexport interface AtlAccordionGroupProps\n extends HTMLAttributes<HTMLDivElement>,\n AtlAccordionGroupSpec {\n /**\n * Whether multiple items can be expanded simultaneously.\n */\n multi?: boolean;\n /**\n * The visual style variant of the accordion.\n */\n variant?: 'default' | 'bordered' | 'separated';\n /**\n * The accordion items to be rendered.\n */\n children?: ReactNode;\n}\n\n/**\n * A container component that manages a group of accordion items.\n */\nexport function AtlAccordionGroup({\n multi = false,\n variant = 'default',\n children,\n className,\n ...rest\n}: AtlAccordionGroupProps) {\n const [openItems, setOpenItems] = useState<Set<string>>(new Set());\n const itemsRef = useRef<{ id: string; triggerRef: React.RefObject<HTMLButtonElement | null>; disabled: boolean }[]>([]);\n\n const classes = ['atl-accordion-group', `variant-${variant}`, className]\n .filter(Boolean)\n .join(' ');\n\n const toggleItem = useCallback((id: string) => {\n setOpenItems((prev) => {\n const next = new Set(prev);\n if (next.has(id)) {\n next.delete(id);\n } else {\n if (!multi) next.clear();\n next.add(id);\n }\n return next;\n });\n }, [multi]);\n\n const registerItem = useCallback((id: string, ref: React.RefObject<HTMLButtonElement | null>, disabled: boolean) => {\n itemsRef.current = [...itemsRef.current.filter((i) => i.id !== id), { id, triggerRef: ref, disabled }];\n }, []);\n\n const unregisterItem = useCallback((id: string) => {\n itemsRef.current = itemsRef.current.filter((i) => i.id !== id);\n }, []);\n\n const handleKeydown = useCallback((e: KeyboardEvent, currentId: string) => {\n const enabled = itemsRef.current.filter((i) => !i.disabled);\n if (enabled.length === 0) return;\n\n const pos = enabled.findIndex((i) => i.id === currentId);\n const n = enabled.length;\n let target: (typeof enabled)[0] | null = null;\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n target = enabled[(pos + 1) % n];\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n target = enabled[(pos - 1 + n) % n];\n } else if (e.key === 'Home') {\n e.preventDefault();\n target = enabled[0];\n } else if (e.key === 'End') {\n e.preventDefault();\n target = enabled[n - 1];\n }\n\n target?.triggerRef.current?.focus();\n }, []);\n\n return (\n <AccordionGroupContext.Provider\n value={{ multi, openItems, toggleItem, registerItem, unregisterItem, handleKeydown }}\n >\n <div className={classes} role=\"presentation\" {...rest}>\n {children}\n </div>\n </AccordionGroupContext.Provider>\n );\n}\n\n/**\n * Properties for the AtlAccordionItem component.\n */\nexport interface AtlAccordionItemProps\n extends HTMLAttributes<HTMLDivElement>,\n AtlAccordionItemSpec {\n /**\n * Whether the item is currently expanded.\n */\n expanded?: boolean;\n /**\n * Callback triggered when the expanded state changes.\n */\n onExpandedChange?: (expanded: boolean) => void;\n /**\n * Whether the accordion item is disabled.\n */\n disabled?: boolean;\n /**\n * HTML heading level wrapping the trigger button. Default `3`.\n * Match your page's heading outline so heading order stays valid.\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * The content of the accordion item, typically including an AtlAccordionHeader.\n */\n children?: ReactNode;\n}\n\n/**\n * An individual item within an accordion group.\n */\nexport function AtlAccordionItem({\n expanded: externalExpanded,\n onExpandedChange,\n disabled = false,\n headingLevel = 3,\n children,\n className,\n ...rest\n}: AtlAccordionItemProps) {\n const ctx = useContext(AccordionGroupContext);\n const id = useId();\n const triggerId = `${id}-trigger`;\n const panelId = `${id}-panel`;\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const { registerItem, unregisterItem } = ctx;\n\n // Register/unregister with parent\n useLayoutEffect(() => {\n registerItem(id, triggerRef, disabled);\n return () => unregisterItem(id);\n }, [id, triggerRef, disabled, registerItem, unregisterItem]);\n\n const isControlled = externalExpanded !== undefined;\n const isExpanded = isControlled ? externalExpanded : ctx.openItems.has(id);\n\n const toggle = () => {\n if (disabled) return;\n const next = !isExpanded;\n if (!isControlled) ctx.toggleItem(id);\n onExpandedChange?.(next);\n };\n\n const classes = [\n 'atl-accordion-item',\n isExpanded && 'is-expanded',\n disabled && 'is-disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Separate header child from body children\n const childArray = Array.isArray(children) ? children : [children];\n const headerNode = childArray.find(\n (c): c is React.ReactElement =>\n typeof c === 'object' &&\n c !== null &&\n 'type' in (c as object) &&\n (c as React.ReactElement).type === AtlAccordionHeader\n );\n const bodyNodes = childArray.filter((c) => c !== headerNode);\n\n // Render the heading wrapper at the level the consumer asked for.\n // We can't use a JSX expression as a tag, so React.createElement is\n // the cleanest path here.\n const Heading = `h${headingLevel}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <div className={classes} {...rest}>\n <Heading className=\"accordion-heading\">\n <button\n ref={triggerRef}\n type=\"button\"\n id={triggerId}\n className={['accordion-trigger', disabled && 'is-disabled']\n .filter(Boolean)\n .join(' ')}\n aria-expanded={isExpanded}\n aria-controls={panelId}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={toggle}\n onKeyDown={(e) => ctx.handleKeydown(e, id)}\n >\n {headerNode}\n <svg\n className={['chevron', isExpanded && 'is-expanded']\n .filter(Boolean)\n .join(' ')}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </Heading>\n <div\n className={['accordion-panel-wrapper', isExpanded && 'is-expanded']\n .filter(Boolean)\n .join(' ')}\n >\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={triggerId}\n className=\"accordion-panel\"\n >\n {bodyNodes}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * The header component for an AtlAccordionItem.\n */\nexport function AtlAccordionHeader({\n children,\n className,\n ...rest\n}: HTMLAttributes<HTMLSpanElement> & {\n /**\n * The content to be rendered in the header.\n */\n children?: ReactNode;\n}) {\n return (\n <span\n className={['accordion-header-content', className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </span>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.atl-alert {
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: flex-start;
|
|
4
4
|
gap: var(--ui-spacing-3);
|
|
@@ -12,37 +12,37 @@
|
|
|
12
12
|
width: 100%;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.
|
|
15
|
+
.atl-alert .content {
|
|
16
16
|
flex: 1;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/* Variants — semantic-tinted bg + matching text + faint border. */
|
|
20
|
-
.
|
|
20
|
+
.atl-alert.variant-info {
|
|
21
21
|
background-color: var(--ui-color-info-bg);
|
|
22
22
|
color: var(--ui-color-info-text);
|
|
23
23
|
border-color: color-mix(in srgb, var(--ui-color-info-text) 20%, transparent);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.
|
|
26
|
+
.atl-alert.variant-success {
|
|
27
27
|
background-color: var(--ui-color-success-bg);
|
|
28
28
|
color: var(--ui-color-success-text);
|
|
29
29
|
border-color: color-mix(in srgb, var(--ui-color-success-text) 20%, transparent);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.
|
|
32
|
+
.atl-alert.variant-warning {
|
|
33
33
|
background-color: var(--ui-color-warning-bg);
|
|
34
34
|
color: var(--ui-color-warning-text);
|
|
35
35
|
border-color: color-mix(in srgb, var(--ui-color-warning-text) 20%, transparent);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.
|
|
38
|
+
.atl-alert.variant-danger {
|
|
39
39
|
background-color: var(--ui-color-danger-bg);
|
|
40
40
|
color: var(--ui-color-danger-text);
|
|
41
41
|
border-color: color-mix(in srgb, var(--ui-color-danger-text) 20%, transparent);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/* Dismiss button */
|
|
45
|
-
.
|
|
45
|
+
.atl-alert .dismiss {
|
|
46
46
|
display: inline-flex;
|
|
47
47
|
align-items: center;
|
|
48
48
|
justify-content: center;
|
|
@@ -60,19 +60,19 @@
|
|
|
60
60
|
line-height: 1;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
.
|
|
63
|
+
.atl-alert .dismiss:hover {
|
|
64
64
|
opacity: 1;
|
|
65
65
|
background-color: color-mix(in srgb, currentColor 10%, transparent);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
.
|
|
68
|
+
.atl-alert .dismiss:focus-visible {
|
|
69
69
|
outline: none;
|
|
70
70
|
box-shadow: var(--ui-focus-ring);
|
|
71
71
|
opacity: 1;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/* Semantic indicator glyph — non-color differentiation (WCAG 1.4.1). */
|
|
75
|
-
.
|
|
75
|
+
.atl-alert .content .variant-icon {
|
|
76
76
|
display: inline-block;
|
|
77
77
|
font-weight: 700;
|
|
78
78
|
margin-right: 0.4em;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import './
|
|
4
|
-
type
|
|
2
|
+
import type { AtlAlertSpec } from '../spec';
|
|
3
|
+
import './atl-alert.css';
|
|
4
|
+
type AtlAlertVariant = 'info' | 'success' | 'warning' | 'danger';
|
|
5
5
|
/**
|
|
6
|
-
* Properties for the
|
|
6
|
+
* Properties for the AtlAlert component.
|
|
7
7
|
*/
|
|
8
|
-
export interface
|
|
8
|
+
export interface AtlAlertProps extends HTMLAttributes<HTMLDivElement>, AtlAlertSpec {
|
|
9
9
|
/**
|
|
10
10
|
* The visual style variant of the alert.
|
|
11
11
|
*/
|
|
12
|
-
variant?:
|
|
12
|
+
variant?: AtlAlertVariant;
|
|
13
13
|
/**
|
|
14
14
|
* Whether the alert can be dismissed by the user.
|
|
15
15
|
*/
|
|
@@ -26,6 +26,6 @@ export interface LlmAlertProps extends HTMLAttributes<HTMLDivElement>, LlmAlertS
|
|
|
26
26
|
/**
|
|
27
27
|
* An alert component for displaying important messages.
|
|
28
28
|
*/
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function AtlAlert({ variant, dismissible, onDismissed, children, className, ...rest }: AtlAlertProps): import("react").JSX.Element;
|
|
30
30
|
export {};
|
|
31
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=atl-alert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-alert.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/alert/atl-alert.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,iBAAiB,CAAC;AAEzB,KAAK,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AASjE;;GAEG;AACH,MAAM,WAAW,aACf,SAAQ,cAAc,CAAC,cAAc,CAAC,EACpC,YAAY;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAgB,EAChB,WAAmB,EACnB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,aAAa,+BAoCf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import './
|
|
2
|
+
import './atl-alert.css';
|
|
3
3
|
const VARIANT_ICONS = {
|
|
4
4
|
info: 'ℹ',
|
|
5
5
|
success: '✓',
|
|
@@ -9,9 +9,9 @@ const VARIANT_ICONS = {
|
|
|
9
9
|
/**
|
|
10
10
|
* An alert component for displaying important messages.
|
|
11
11
|
*/
|
|
12
|
-
export function
|
|
13
|
-
const classes = ['
|
|
12
|
+
export function AtlAlert({ variant = 'info', dismissible = false, onDismissed, children, className, ...rest }) {
|
|
13
|
+
const classes = ['atl-alert', `variant-${variant}`, className].filter(Boolean).join(' ');
|
|
14
14
|
const ariaLive = variant === 'danger' || variant === 'warning' ? 'assertive' : 'polite';
|
|
15
15
|
return (_jsxs("div", { className: classes, role: "alert", "aria-live": ariaLive, ...rest, children: [_jsxs("span", { className: "content", children: [_jsx("span", { className: "variant-icon", "aria-hidden": "true", children: VARIANT_ICONS[variant] }), children] }), dismissible && (_jsx("button", { className: "dismiss", type: "button", "aria-label": "Dismiss", onClick: onDismissed, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", 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" })] }) }))] }));
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=atl-alert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"atl-alert.js","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/alert/atl-alert.tsx"],"names":[],"mappings":";AAEA,OAAO,iBAAiB,CAAC;AAIzB,MAAM,aAAa,GAAoC;IACrD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;CACZ,CAAC;AA0BF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,GAAG,MAAM,EAChB,WAAW,GAAG,KAAK,EACnB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACO;IACd,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExF,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,OAAO,eAAY,QAAQ,KAAM,IAAI,aACjE,gBAAM,SAAS,EAAC,SAAS,aACvB,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,YAAE,aAAa,CAAC,OAAO,CAAC,GAAQ,EAChF,QAAQ,IACJ,EACN,WAAW,IAAI,CACd,iBACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,QAAQ,gBACF,SAAS,EACpB,OAAO,EAAE,WAAW,YAEpB,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,aAElB,eAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,GAAG,EACtC,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,IAClC,GACC,CACV,IACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { HTMLAttributes, ReactNode } from 'react';\nimport type { AtlAlertSpec } from '../spec';\nimport './atl-alert.css';\n\ntype AtlAlertVariant = 'info' | 'success' | 'warning' | 'danger';\n\nconst VARIANT_ICONS: Record<AtlAlertVariant, string> = {\n info: 'ℹ',\n success: '✓',\n warning: '⚠',\n danger: '✕',\n};\n\n/**\n * Properties for the AtlAlert component.\n */\nexport interface AtlAlertProps\n extends HTMLAttributes<HTMLDivElement>,\n AtlAlertSpec {\n /**\n * The visual style variant of the alert.\n */\n variant?: AtlAlertVariant;\n /**\n * Whether the alert can be dismissed by the user.\n */\n dismissible?: boolean;\n /**\n * Callback triggered when the alert is dismissed.\n */\n onDismissed?: () => void;\n /**\n * The content to be rendered inside the alert.\n */\n children?: ReactNode;\n}\n\n/**\n * An alert component for displaying important messages.\n */\nexport function AtlAlert({\n variant = 'info',\n dismissible = false,\n onDismissed,\n children,\n className,\n ...rest\n}: AtlAlertProps) {\n const classes = ['atl-alert', `variant-${variant}`, className].filter(Boolean).join(' ');\n const ariaLive = variant === 'danger' || variant === 'warning' ? 'assertive' : 'polite';\n\n return (\n <div className={classes} role=\"alert\" aria-live={ariaLive} {...rest}>\n <span className=\"content\">\n <span className=\"variant-icon\" aria-hidden=\"true\">{VARIANT_ICONS[variant]}</span>\n {children}\n </span>\n {dismissible && (\n <button\n className=\"dismiss\"\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={onDismissed}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\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 )}\n </div>\n );\n}\n"]}
|