@arclux/arc-ui-angular 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/package.json +71 -0
- package/src/application/AppShell.ts +14 -0
- package/src/application/AuthShell.ts +14 -0
- package/src/application/Breadcrumb.ts +15 -0
- package/src/application/BreadcrumbItem.ts +14 -0
- package/src/application/Container.ts +14 -0
- package/src/application/DashboardGrid.ts +16 -0
- package/src/application/Footer.ts +15 -0
- package/src/application/NavItem.ts +16 -0
- package/src/application/NavigationMenu.ts +15 -0
- package/src/application/NotificationPanel.ts +18 -0
- package/src/application/PageHeader.ts +15 -0
- package/src/application/PageLayout.ts +16 -0
- package/src/application/Resizable.ts +19 -0
- package/src/application/ScrollSpy.ts +18 -0
- package/src/application/Section.ts +14 -0
- package/src/application/SettingsLayout.ts +14 -0
- package/src/application/Sidebar.ts +18 -0
- package/src/application/SidebarLink.ts +15 -0
- package/src/application/SidebarSection.ts +17 -0
- package/src/application/SplitPane.ts +18 -0
- package/src/application/SpyLink.ts +14 -0
- package/src/application/StatusBar.ts +14 -0
- package/src/application/Toolbar.ts +16 -0
- package/src/application/TopBar.ts +17 -0
- package/src/application/index.ts +23 -0
- package/src/content/Accordion.ts +15 -0
- package/src/content/AccordionItem.ts +14 -0
- package/src/content/AnimatedNumber.ts +20 -0
- package/src/content/AspectRatio.ts +14 -0
- package/src/content/Avatar.ts +16 -0
- package/src/content/AvatarGroup.ts +15 -0
- package/src/content/Badge.ts +14 -0
- package/src/content/Callout.ts +14 -0
- package/src/content/Card.ts +14 -0
- package/src/content/Carousel.ts +21 -0
- package/src/content/CodeBlock.ts +17 -0
- package/src/content/Collapsible.ts +16 -0
- package/src/content/ColorSwatch.ts +16 -0
- package/src/content/Column.ts +17 -0
- package/src/content/DataTable.ts +23 -0
- package/src/content/Divider.ts +16 -0
- package/src/content/EmptyState.ts +15 -0
- package/src/content/FeatureCard.ts +17 -0
- package/src/content/Highlight.ts +16 -0
- package/src/content/Icon.ts +16 -0
- package/src/content/InfiniteScroll.ts +18 -0
- package/src/content/Kbd.ts +13 -0
- package/src/content/Link.ts +17 -0
- package/src/content/Markdown.ts +14 -0
- package/src/content/Marquee.ts +17 -0
- package/src/content/Meter.ts +20 -0
- package/src/content/ScrollArea.ts +15 -0
- package/src/content/Skeleton.ts +16 -0
- package/src/content/Spinner.ts +15 -0
- package/src/content/Stack.ts +18 -0
- package/src/content/Stat.ts +15 -0
- package/src/content/Step.ts +14 -0
- package/src/content/Stepper.ts +15 -0
- package/src/content/Table.ts +17 -0
- package/src/content/Tag.ts +17 -0
- package/src/content/Text.ts +15 -0
- package/src/content/Timeline.ts +14 -0
- package/src/content/TimelineItem.ts +15 -0
- package/src/content/Truncate.ts +16 -0
- package/src/content/ValueCard.ts +16 -0
- package/src/content/index.ts +37 -0
- package/src/feedback/Alert.ts +17 -0
- package/src/feedback/CommandItem.ts +15 -0
- package/src/feedback/CommandPalette.ts +20 -0
- package/src/feedback/ContextMenu.ts +21 -0
- package/src/feedback/Dialog.ts +19 -0
- package/src/feedback/DropdownMenu.ts +18 -0
- package/src/feedback/HoverCard.ts +19 -0
- package/src/feedback/Modal.ts +19 -0
- package/src/feedback/NotificationPanel.ts +18 -0
- package/src/feedback/Popover.ts +17 -0
- package/src/feedback/Progress.ts +18 -0
- package/src/feedback/Sheet.ts +18 -0
- package/src/feedback/Toast.ts +17 -0
- package/src/feedback/Tooltip.ts +17 -0
- package/src/index.ts +116 -0
- package/src/input/Button.ts +18 -0
- package/src/input/Calendar.ts +21 -0
- package/src/input/Checkbox.ts +20 -0
- package/src/input/Chip.ts +17 -0
- package/src/input/ColorPicker.ts +24 -0
- package/src/input/Combobox.ts +22 -0
- package/src/input/CopyButton.ts +17 -0
- package/src/input/DatePicker.ts +24 -0
- package/src/input/FileUpload.ts +22 -0
- package/src/input/Form.ts +18 -0
- package/src/input/IconButton.ts +21 -0
- package/src/input/Input.ts +24 -0
- package/src/input/MultiSelect.ts +22 -0
- package/src/input/NumberInput.ts +20 -0
- package/src/input/OtpInput.ts +18 -0
- package/src/input/PinInput.ts +22 -0
- package/src/input/Radio.ts +15 -0
- package/src/input/RadioGroup.ts +19 -0
- package/src/input/Rating.ts +18 -0
- package/src/input/Search.ts +25 -0
- package/src/input/SegmentedControl.ts +17 -0
- package/src/input/Select.ts +21 -0
- package/src/input/Slider.ts +21 -0
- package/src/input/SortableList.ts +20 -0
- package/src/input/Suggestion.ts +14 -0
- package/src/input/Textarea.ts +24 -0
- package/src/input/ThemeToggle.ts +17 -0
- package/src/input/Toggle.ts +18 -0
- package/src/layout/AppShell.ts +17 -0
- package/src/layout/AuthShell.ts +14 -0
- package/src/layout/Container.ts +14 -0
- package/src/layout/DashboardGrid.ts +16 -0
- package/src/layout/PageHeader.ts +15 -0
- package/src/layout/PageLayout.ts +16 -0
- package/src/layout/Resizable.ts +19 -0
- package/src/layout/Section.ts +14 -0
- package/src/layout/SettingsLayout.ts +14 -0
- package/src/layout/SplitPane.ts +18 -0
- package/src/layout/StatusBar.ts +14 -0
- package/src/layout/Toolbar.ts +16 -0
- package/src/navigation/Breadcrumb.ts +15 -0
- package/src/navigation/BreadcrumbItem.ts +14 -0
- package/src/navigation/Drawer.ts +17 -0
- package/src/navigation/Footer.ts +15 -0
- package/src/navigation/Link.ts +17 -0
- package/src/navigation/NavItem.ts +16 -0
- package/src/navigation/NavigationMenu.ts +19 -0
- package/src/navigation/Pagination.ts +17 -0
- package/src/navigation/ScrollSpy.ts +18 -0
- package/src/navigation/ScrollToTop.ts +18 -0
- package/src/navigation/Sidebar.ts +18 -0
- package/src/navigation/SidebarLink.ts +15 -0
- package/src/navigation/SidebarSection.ts +17 -0
- package/src/navigation/SpyLink.ts +14 -0
- package/src/navigation/Tab.ts +14 -0
- package/src/navigation/Tabs.ts +17 -0
- package/src/navigation/TopBar.ts +18 -0
- package/src/navigation/TreeItem.ts +16 -0
- package/src/navigation/TreeView.ts +17 -0
- package/src/reactive/Accordion.ts +15 -0
- package/src/reactive/AccordionItem.ts +14 -0
- package/src/reactive/Alert.ts +17 -0
- package/src/reactive/Button.ts +18 -0
- package/src/reactive/Calendar.ts +21 -0
- package/src/reactive/Carousel.ts +21 -0
- package/src/reactive/Checkbox.ts +20 -0
- package/src/reactive/Chip.ts +17 -0
- package/src/reactive/Collapsible.ts +16 -0
- package/src/reactive/ColorPicker.ts +24 -0
- package/src/reactive/Column.ts +17 -0
- package/src/reactive/Combobox.ts +22 -0
- package/src/reactive/CommandItem.ts +15 -0
- package/src/reactive/CommandPalette.ts +20 -0
- package/src/reactive/ContextMenu.ts +21 -0
- package/src/reactive/CopyButton.ts +17 -0
- package/src/reactive/DataTable.ts +23 -0
- package/src/reactive/DatePicker.ts +24 -0
- package/src/reactive/Dialog.ts +19 -0
- package/src/reactive/Drawer.ts +17 -0
- package/src/reactive/DropdownMenu.ts +18 -0
- package/src/reactive/FileUpload.ts +22 -0
- package/src/reactive/Form.ts +18 -0
- package/src/reactive/HoverCard.ts +19 -0
- package/src/reactive/IconButton.ts +21 -0
- package/src/reactive/InfiniteScroll.ts +18 -0
- package/src/reactive/Input.ts +24 -0
- package/src/reactive/Modal.ts +19 -0
- package/src/reactive/MultiSelect.ts +22 -0
- package/src/reactive/NumberInput.ts +20 -0
- package/src/reactive/OtpInput.ts +18 -0
- package/src/reactive/Pagination.ts +17 -0
- package/src/reactive/PinInput.ts +22 -0
- package/src/reactive/Popover.ts +17 -0
- package/src/reactive/Progress.ts +18 -0
- package/src/reactive/Radio.ts +15 -0
- package/src/reactive/RadioGroup.ts +19 -0
- package/src/reactive/Rating.ts +18 -0
- package/src/reactive/ScrollToTop.ts +18 -0
- package/src/reactive/Search.ts +25 -0
- package/src/reactive/SegmentedControl.ts +17 -0
- package/src/reactive/Select.ts +21 -0
- package/src/reactive/Sheet.ts +18 -0
- package/src/reactive/Slider.ts +21 -0
- package/src/reactive/SortableList.ts +20 -0
- package/src/reactive/Suggestion.ts +14 -0
- package/src/reactive/Tab.ts +14 -0
- package/src/reactive/Tabs.ts +17 -0
- package/src/reactive/Tag.ts +17 -0
- package/src/reactive/Textarea.ts +24 -0
- package/src/reactive/ThemeToggle.ts +17 -0
- package/src/reactive/Toast.ts +17 -0
- package/src/reactive/Toggle.ts +18 -0
- package/src/reactive/Tooltip.ts +17 -0
- package/src/reactive/TreeItem.ts +16 -0
- package/src/reactive/TreeView.ts +17 -0
- package/src/reactive/Truncate.ts +16 -0
- package/src/reactive/index.ts +53 -0
- package/src/shared/MenuDivider.ts +13 -0
- package/src/shared/MenuItem.ts +16 -0
- package/src/shared/Option.ts +16 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Arclight Digital, LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @arclux/arc-ui-angular
|
|
2
|
+
|
|
3
|
+
Angular standalone component wrappers for [ARC UI](https://arcui.dev) web components.
|
|
4
|
+
|
|
5
|
+
> **Auto-generated** -- this package is produced by [Prism](../../prism.config.js) from the canonical source in [`@arclux/arc-ui`](../web-components/). Do not edit by hand.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @arclux/arc-ui-angular @arclux/arc-ui
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Requires `@angular/core >= 17.0.0`.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { Component } from '@angular/core';
|
|
19
|
+
import { Button, Card, Input } from '@arclux/arc-ui-angular';
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
standalone: true,
|
|
23
|
+
imports: [Button, Card, Input],
|
|
24
|
+
template: `
|
|
25
|
+
<arc-button variant="primary" (click)="onClick()">Get Started</arc-button>
|
|
26
|
+
<arc-card>
|
|
27
|
+
<h3>Card Title</h3>
|
|
28
|
+
<p>Card content.</p>
|
|
29
|
+
</arc-card>
|
|
30
|
+
<arc-input label="Email" type="email" placeholder="you@example.com"></arc-input>
|
|
31
|
+
`,
|
|
32
|
+
})
|
|
33
|
+
export class AppComponent {
|
|
34
|
+
onClick() {
|
|
35
|
+
console.log('clicked');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Components are organized by category and can be imported from subpaths:
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { Button } from '@arclux/arc-ui-angular/input';
|
|
44
|
+
import { Card } from '@arclux/arc-ui-angular/content';
|
|
45
|
+
import { AppShell } from '@arclux/arc-ui-angular/layout';
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Documentation
|
|
49
|
+
|
|
50
|
+
Full component docs and interactive examples: [arcui.dev](https://arcui.dev)
|
|
51
|
+
|
|
52
|
+
## Links
|
|
53
|
+
|
|
54
|
+
- [Canonical source (`@arclux/arc-ui`)](../web-components/)
|
|
55
|
+
- [Root README](../../README.md)
|
|
56
|
+
- [License](../../LICENSE)
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arclux/arc-ui-angular",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Angular standalone component wrappers for ARC UI Web Components.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
7
|
+
"module": "src/index.ts",
|
|
8
|
+
"types": "src/index.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./src/index.ts",
|
|
12
|
+
"default": "./src/index.ts"
|
|
13
|
+
},
|
|
14
|
+
"./content": {
|
|
15
|
+
"types": "./src/content/index.ts",
|
|
16
|
+
"default": "./src/content/index.ts"
|
|
17
|
+
},
|
|
18
|
+
"./input": {
|
|
19
|
+
"types": "./src/input/index.ts",
|
|
20
|
+
"default": "./src/input/index.ts"
|
|
21
|
+
},
|
|
22
|
+
"./feedback": {
|
|
23
|
+
"types": "./src/feedback/index.ts",
|
|
24
|
+
"default": "./src/feedback/index.ts"
|
|
25
|
+
},
|
|
26
|
+
"./navigation": {
|
|
27
|
+
"types": "./src/navigation/index.ts",
|
|
28
|
+
"default": "./src/navigation/index.ts"
|
|
29
|
+
},
|
|
30
|
+
"./layout": {
|
|
31
|
+
"types": "./src/layout/index.ts",
|
|
32
|
+
"default": "./src/layout/index.ts"
|
|
33
|
+
},
|
|
34
|
+
"./shared": {
|
|
35
|
+
"types": "./src/shared/index.ts",
|
|
36
|
+
"default": "./src/shared/index.ts"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"src/"
|
|
41
|
+
],
|
|
42
|
+
"sideEffects": false,
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@angular/core": ">=17.0.0"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@arclux/arc-ui": "1.0.0"
|
|
48
|
+
},
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"keywords": [
|
|
51
|
+
"angular",
|
|
52
|
+
"web-components",
|
|
53
|
+
"design-system",
|
|
54
|
+
"arclight"
|
|
55
|
+
],
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "https://github.com/arclight-digital/arc-ui",
|
|
59
|
+
"directory": "packages/angular"
|
|
60
|
+
},
|
|
61
|
+
"homepage": "https://arcui.dev",
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/arclight-digital/arc-ui/issues"
|
|
64
|
+
},
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"access": "public"
|
|
67
|
+
},
|
|
68
|
+
"scripts": {
|
|
69
|
+
"build": "echo 'Consumed directly via workspace — no build step required'"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-app-shell',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-app-shell [sidebarOpen]="sidebarOpen"><ng-content /></arc-app-shell>`,
|
|
11
|
+
})
|
|
12
|
+
export class AppShell {
|
|
13
|
+
@Input() sidebarOpen: boolean = false;
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-auth-shell',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-auth-shell [attr.variant]="variant"><ng-content /></arc-auth-shell>`,
|
|
11
|
+
})
|
|
12
|
+
export class AuthShell {
|
|
13
|
+
@Input() variant: string = 'centered';
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-breadcrumb',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-breadcrumb [attr._items]="_items" (arc-navigate)="arcNavigate.emit($event)"><ng-content /></arc-breadcrumb>`,
|
|
11
|
+
})
|
|
12
|
+
export class Breadcrumb {
|
|
13
|
+
@Input() _items: string = [];
|
|
14
|
+
@Output() arcNavigate = new EventEmitter<CustomEvent>();
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-breadcrumb-item',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-breadcrumb-item [attr.href]="href"><ng-content /></arc-breadcrumb-item>`,
|
|
11
|
+
})
|
|
12
|
+
export class BreadcrumbItem {
|
|
13
|
+
@Input() href: string = '';
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-container',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-container [narrow]="narrow"><ng-content /></arc-container>`,
|
|
11
|
+
})
|
|
12
|
+
export class Container {
|
|
13
|
+
@Input() narrow: boolean = false;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-dashboard-grid',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-dashboard-grid [attr.columns]="columns" [attr.gap]="gap" [attr.minColumnWidth]="minColumnWidth"><ng-content /></arc-dashboard-grid>`,
|
|
11
|
+
})
|
|
12
|
+
export class DashboardGrid {
|
|
13
|
+
@Input() columns: number = 3;
|
|
14
|
+
@Input() gap: string = 'var(--space-lg)';
|
|
15
|
+
@Input() minColumnWidth: string = '280px';
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-footer',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-footer [compact]="compact" [border]="border"><ng-content /></arc-footer>`,
|
|
11
|
+
})
|
|
12
|
+
export class Footer {
|
|
13
|
+
@Input() compact: boolean = false;
|
|
14
|
+
@Input() border: boolean = true;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-nav-item',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-nav-item [attr.href]="href" [active]="active" [attr.description]="description"><ng-content /></arc-nav-item>`,
|
|
11
|
+
})
|
|
12
|
+
export class NavItem {
|
|
13
|
+
@Input() href: string = '';
|
|
14
|
+
@Input() active: boolean = false;
|
|
15
|
+
@Input() description: string = '';
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-navigation-menu',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-navigation-menu [attr._items]="_items" [attr._openIndex]="_openIndex"><ng-content /></arc-navigation-menu>`,
|
|
11
|
+
})
|
|
12
|
+
export class NavigationMenu {
|
|
13
|
+
@Input() _items: string = [];
|
|
14
|
+
@Input() _openIndex: string = -1;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-notification-panel',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-notification-panel [open]="open" [attr.position]="position" [attr.maxHeight]="maxHeight" (arc-open)="arcOpen.emit($event)" (arc-close)="arcClose.emit($event)"><ng-content /></arc-notification-panel>`,
|
|
11
|
+
})
|
|
12
|
+
export class NotificationPanel {
|
|
13
|
+
@Input() open: boolean = false;
|
|
14
|
+
@Input() position: string = 'top-right';
|
|
15
|
+
@Input() maxHeight: string = '400px';
|
|
16
|
+
@Output() arcOpen = new EventEmitter<CustomEvent>();
|
|
17
|
+
@Output() arcClose = new EventEmitter<CustomEvent>();
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-page-header',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-page-header [attr.heading]="heading" [attr.description]="description"><ng-content /></arc-page-header>`,
|
|
11
|
+
})
|
|
12
|
+
export class PageHeader {
|
|
13
|
+
@Input() heading: string = '';
|
|
14
|
+
@Input() description: string = '';
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-page-layout',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-page-layout [attr.layout]="layout" [attr.maxWidth]="maxWidth" [attr.gap]="gap"><ng-content /></arc-page-layout>`,
|
|
11
|
+
})
|
|
12
|
+
export class PageLayout {
|
|
13
|
+
@Input() layout: string = 'centered';
|
|
14
|
+
@Input() maxWidth: string = '1120px';
|
|
15
|
+
@Input() gap: string = 'var(--space-xl)';
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-resizable',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-resizable [attr.direction]="direction" [attr.minSize]="minSize" [attr.maxSize]="maxSize" [attr.size]="size" [attr._dragging]="_dragging" (arc-resize)="arcResize.emit($event)"><ng-content /></arc-resizable>`,
|
|
11
|
+
})
|
|
12
|
+
export class Resizable {
|
|
13
|
+
@Input() direction: 'horizontal' | 'vertical' = 'horizontal';
|
|
14
|
+
@Input() minSize: number = 100;
|
|
15
|
+
@Input() maxSize: number = Infinity;
|
|
16
|
+
@Input() size: number = 300;
|
|
17
|
+
@Input() _dragging: string = false;
|
|
18
|
+
@Output() arcResize = new EventEmitter<CustomEvent>();
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-scroll-spy',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-scroll-spy [attr.active]="active" [attr.offset]="offset" [attr._active]="_active" [attr._links]="_links" (arc-change)="arcChange.emit($event)"><ng-content /></arc-scroll-spy>`,
|
|
11
|
+
})
|
|
12
|
+
export class ScrollSpy {
|
|
13
|
+
@Input() active: string = '';
|
|
14
|
+
@Input() offset: number = 80;
|
|
15
|
+
@Input() _active: string = '';
|
|
16
|
+
@Input() _links: string = [];
|
|
17
|
+
@Output() arcChange = new EventEmitter<CustomEvent>();
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-section',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-section [attr.label]="label"><ng-content /></arc-section>`,
|
|
11
|
+
})
|
|
12
|
+
export class Section {
|
|
13
|
+
@Input() label: string = '';
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-settings-layout',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-settings-layout [attr.navPosition]="navPosition"><ng-content /></arc-settings-layout>`,
|
|
11
|
+
})
|
|
12
|
+
export class SettingsLayout {
|
|
13
|
+
@Input() navPosition: string = 'left';
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-sidebar',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-sidebar [attr.active]="active" [collapsed]="collapsed" [attr.width]="width" [glow]="glow" [attr._sections]="_sections"><ng-content /></arc-sidebar>`,
|
|
11
|
+
})
|
|
12
|
+
export class Sidebar {
|
|
13
|
+
@Input() active: string = '';
|
|
14
|
+
@Input() collapsed: boolean = false;
|
|
15
|
+
@Input() width: string = '260px';
|
|
16
|
+
@Input() glow: boolean = false;
|
|
17
|
+
@Input() _sections: string = [];
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-sidebar-link',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-sidebar-link [attr.href]="href" [active]="active"><ng-content /></arc-sidebar-link>`,
|
|
11
|
+
})
|
|
12
|
+
export class SidebarLink {
|
|
13
|
+
@Input() href: string = '';
|
|
14
|
+
@Input() active: boolean = false;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-sidebar-section',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-sidebar-section [attr.heading]="heading" [collapsible]="collapsible" [open]="open" (arc-toggle)="arcToggle.emit($event)"><ng-content /></arc-sidebar-section>`,
|
|
11
|
+
})
|
|
12
|
+
export class SidebarSection {
|
|
13
|
+
@Input() heading: string = '';
|
|
14
|
+
@Input() collapsible: boolean = false;
|
|
15
|
+
@Input() open: boolean = true;
|
|
16
|
+
@Output() arcToggle = new EventEmitter<CustomEvent>();
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-split-pane',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-split-pane [attr.orientation]="orientation" [attr.ratio]="ratio" [attr.minRatio]="minRatio" [attr.maxRatio]="maxRatio" (arc-resize)="arcResize.emit($event)"><ng-content /></arc-split-pane>`,
|
|
11
|
+
})
|
|
12
|
+
export class SplitPane {
|
|
13
|
+
@Input() orientation: string = 'horizontal';
|
|
14
|
+
@Input() ratio: number = 0.5;
|
|
15
|
+
@Input() minRatio: number = 0.15;
|
|
16
|
+
@Input() maxRatio: number = 0.85;
|
|
17
|
+
@Output() arcResize = new EventEmitter<CustomEvent>();
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-spy-link',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-spy-link [attr.target]="target"><ng-content /></arc-spy-link>`,
|
|
11
|
+
})
|
|
12
|
+
export class SpyLink {
|
|
13
|
+
@Input() target: string = '';
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-status-bar',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-status-bar [attr.position]="position"><ng-content /></arc-status-bar>`,
|
|
11
|
+
})
|
|
12
|
+
export class StatusBar {
|
|
13
|
+
@Input() position: string = 'static';
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-toolbar',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-toolbar [sticky]="sticky" [attr.size]="size" [border]="border"><ng-content /></arc-toolbar>`,
|
|
11
|
+
})
|
|
12
|
+
export class Toolbar {
|
|
13
|
+
@Input() sticky: boolean = false;
|
|
14
|
+
@Input() size: string = 'md';
|
|
15
|
+
@Input() border: boolean = true;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output, EventEmitter } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-top-bar',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-top-bar [attr.heading]="heading" [fixed]="fixed" [menuOpen]="menuOpen" (arc-toggle)="arcToggle.emit($event)"><ng-content /></arc-top-bar>`,
|
|
11
|
+
})
|
|
12
|
+
export class TopBar {
|
|
13
|
+
@Input() heading: string = '';
|
|
14
|
+
@Input() fixed: boolean = false;
|
|
15
|
+
@Input() menuOpen: boolean = false;
|
|
16
|
+
@Output() arcToggle = new EventEmitter<CustomEvent>();
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
export { AppShell } from './AppShell.js';
|
|
3
|
+
export { AuthShell } from './AuthShell.js';
|
|
4
|
+
export { BreadcrumbItem } from './BreadcrumbItem.js';
|
|
5
|
+
export { Container } from './Container.js';
|
|
6
|
+
export { DashboardGrid } from './DashboardGrid.js';
|
|
7
|
+
export { Footer } from './Footer.js';
|
|
8
|
+
export { NavItem } from './NavItem.js';
|
|
9
|
+
export { NavigationMenu } from './NavigationMenu.js';
|
|
10
|
+
export { NotificationPanel } from './NotificationPanel.js';
|
|
11
|
+
export { PageHeader } from './PageHeader.js';
|
|
12
|
+
export { PageLayout } from './PageLayout.js';
|
|
13
|
+
export { Resizable } from './Resizable.js';
|
|
14
|
+
export { ScrollSpy } from './ScrollSpy.js';
|
|
15
|
+
export { Section } from './Section.js';
|
|
16
|
+
export { SettingsLayout } from './SettingsLayout.js';
|
|
17
|
+
export { SidebarLink } from './SidebarLink.js';
|
|
18
|
+
export { SidebarSection } from './SidebarSection.js';
|
|
19
|
+
export { SplitPane } from './SplitPane.js';
|
|
20
|
+
export { SpyLink } from './SpyLink.js';
|
|
21
|
+
export { StatusBar } from './StatusBar.js';
|
|
22
|
+
export { Toolbar } from './Toolbar.js';
|
|
23
|
+
export { TopBar } from './TopBar.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-accordion',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-accordion [attr._items]="_items" [attr._openItems]="_openItems"><ng-content /></arc-accordion>`,
|
|
11
|
+
})
|
|
12
|
+
export class Accordion {
|
|
13
|
+
@Input() _items: string = [];
|
|
14
|
+
@Input() _openItems: string = 'new Set()';
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-accordion-item',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-accordion-item [attr.question]="question"><ng-content /></arc-accordion-item>`,
|
|
11
|
+
})
|
|
12
|
+
export class AccordionItem {
|
|
13
|
+
@Input() question: string = '';
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-animated-number',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-animated-number [attr.value]="value" [attr.duration]="duration" [attr.format]="format" [attr.prefix]="prefix" [attr.suffix]="suffix" [attr.decimals]="decimals" [attr.locale]="locale"><ng-content /></arc-animated-number>`,
|
|
11
|
+
})
|
|
12
|
+
export class AnimatedNumber {
|
|
13
|
+
@Input() value: number = 0;
|
|
14
|
+
@Input() duration: number = 1000;
|
|
15
|
+
@Input() format: string = 'number';
|
|
16
|
+
@Input() prefix: string = '';
|
|
17
|
+
@Input() suffix: string = '';
|
|
18
|
+
@Input() decimals: number = 0;
|
|
19
|
+
@Input() locale: string = 'en-US';
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by @arclux/prism — do not edit manually
|
|
2
|
+
|
|
3
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
4
|
+
import '@arclux/arc-ui';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'arc-aspect-ratio',
|
|
8
|
+
standalone: true,
|
|
9
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
10
|
+
template: `<arc-aspect-ratio [attr.ratio]="ratio"><ng-content /></arc-aspect-ratio>`,
|
|
11
|
+
})
|
|
12
|
+
export class AspectRatio {
|
|
13
|
+
@Input() ratio: string = '16/9';
|
|
14
|
+
}
|