ux4g-components-angular 1.0.0 → 1.1.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/README.md +87 -0
- package/dist/accessibility-bar/README.md +87 -0
- package/dist/accessibility-bar/fesm2022/ux4g-components-angular-accessibility-bar.mjs +1 -0
- package/dist/accessibility-bar/fesm2022/ux4g-components-angular-accessibility-bar.mjs.map +1 -1
- package/dist/accessibility-bar/public-api.d.ts +1 -0
- package/dist/accessibility-bar/public-api.d.ts.map +1 -1
- package/dist/accordion/README.md +87 -0
- package/dist/accordion/fesm2022/ux4g-components-angular-accordion.mjs +1 -0
- package/dist/accordion/fesm2022/ux4g-components-angular-accordion.mjs.map +1 -1
- package/dist/accordion/public-api.d.ts +1 -0
- package/dist/accordion/public-api.d.ts.map +1 -1
- package/dist/alert/README.md +87 -0
- package/dist/alert/fesm2022/ux4g-components-angular-alert.mjs +1 -0
- package/dist/alert/fesm2022/ux4g-components-angular-alert.mjs.map +1 -1
- package/dist/alert/public-api.d.ts +1 -0
- package/dist/alert/public-api.d.ts.map +1 -1
- package/dist/avatar/README.md +87 -0
- package/dist/avatar/fesm2022/ux4g-components-angular-avatar.mjs +1 -0
- package/dist/avatar/fesm2022/ux4g-components-angular-avatar.mjs.map +1 -1
- package/dist/avatar/public-api.d.ts +1 -0
- package/dist/avatar/public-api.d.ts.map +1 -1
- package/dist/badge/README.md +87 -0
- package/dist/badge/fesm2022/ux4g-components-angular-badge.mjs +1 -0
- package/dist/badge/fesm2022/ux4g-components-angular-badge.mjs.map +1 -1
- package/dist/badge/public-api.d.ts +1 -0
- package/dist/badge/public-api.d.ts.map +1 -1
- package/dist/breadcrumb/README.md +87 -0
- package/dist/breadcrumb/fesm2022/ux4g-components-angular-breadcrumb.mjs +1 -0
- package/dist/breadcrumb/fesm2022/ux4g-components-angular-breadcrumb.mjs.map +1 -1
- package/dist/breadcrumb/public-api.d.ts +1 -0
- package/dist/breadcrumb/public-api.d.ts.map +1 -1
- package/dist/button/README.md +87 -0
- package/dist/button/fesm2022/ux4g-components-angular-button.mjs +1 -0
- package/dist/button/fesm2022/ux4g-components-angular-button.mjs.map +1 -1
- package/dist/button/public-api.d.ts +1 -0
- package/dist/button/public-api.d.ts.map +1 -1
- package/dist/card/README.md +87 -0
- package/dist/card/fesm2022/ux4g-components-angular-card.mjs +1 -0
- package/dist/card/fesm2022/ux4g-components-angular-card.mjs.map +1 -1
- package/dist/card/public-api.d.ts +1 -0
- package/dist/card/public-api.d.ts.map +1 -1
- package/dist/carousel/README.md +87 -0
- package/dist/carousel/fesm2022/ux4g-components-angular-carousel.mjs +1 -0
- package/dist/carousel/fesm2022/ux4g-components-angular-carousel.mjs.map +1 -1
- package/dist/carousel/public-api.d.ts +1 -0
- package/dist/carousel/public-api.d.ts.map +1 -1
- package/dist/checkbox/README.md +87 -0
- package/dist/checkbox/fesm2022/ux4g-components-angular-checkbox.mjs +1 -0
- package/dist/checkbox/fesm2022/ux4g-components-angular-checkbox.mjs.map +1 -1
- package/dist/checkbox/public-api.d.ts +1 -0
- package/dist/checkbox/public-api.d.ts.map +1 -1
- package/dist/chip/README.md +87 -0
- package/dist/chip/fesm2022/ux4g-components-angular-chip.mjs +1 -0
- package/dist/chip/fesm2022/ux4g-components-angular-chip.mjs.map +1 -1
- package/dist/chip/public-api.d.ts +1 -0
- package/dist/chip/public-api.d.ts.map +1 -1
- package/dist/chip-group/README.md +87 -0
- package/dist/chip-group/fesm2022/ux4g-components-angular-chip-group.mjs +1 -0
- package/dist/chip-group/fesm2022/ux4g-components-angular-chip-group.mjs.map +1 -1
- package/dist/chip-group/public-api.d.ts +1 -0
- package/dist/chip-group/public-api.d.ts.map +1 -1
- package/dist/combobox/README.md +87 -0
- package/dist/combobox/fesm2022/ux4g-components-angular-combobox.mjs +1 -0
- package/dist/combobox/fesm2022/ux4g-components-angular-combobox.mjs.map +1 -1
- package/dist/combobox/public-api.d.ts +1 -0
- package/dist/combobox/public-api.d.ts.map +1 -1
- package/dist/date-time-picker/README.md +87 -0
- package/dist/date-time-picker/fesm2022/ux4g-components-angular-date-time-picker.mjs +1 -0
- package/dist/date-time-picker/fesm2022/ux4g-components-angular-date-time-picker.mjs.map +1 -1
- package/dist/date-time-picker/public-api.d.ts +1 -0
- package/dist/date-time-picker/public-api.d.ts.map +1 -1
- package/dist/divider/README.md +87 -0
- package/dist/divider/fesm2022/ux4g-components-angular-divider.mjs +1 -0
- package/dist/divider/fesm2022/ux4g-components-angular-divider.mjs.map +1 -1
- package/dist/divider/public-api.d.ts +1 -0
- package/dist/divider/public-api.d.ts.map +1 -1
- package/dist/draft-status-banner/README.md +87 -0
- package/dist/draft-status-banner/fesm2022/ux4g-components-angular-draft-status-banner.mjs +1 -0
- package/dist/draft-status-banner/fesm2022/ux4g-components-angular-draft-status-banner.mjs.map +1 -1
- package/dist/draft-status-banner/public-api.d.ts +1 -0
- package/dist/draft-status-banner/public-api.d.ts.map +1 -1
- package/dist/drawer/README.md +87 -0
- package/dist/drawer/fesm2022/ux4g-components-angular-drawer.mjs +1 -0
- package/dist/drawer/fesm2022/ux4g-components-angular-drawer.mjs.map +1 -1
- package/dist/drawer/public-api.d.ts +1 -0
- package/dist/drawer/public-api.d.ts.map +1 -1
- package/dist/dropdown/README.md +87 -0
- package/dist/dropdown/fesm2022/ux4g-components-angular-dropdown.mjs +1 -0
- package/dist/dropdown/fesm2022/ux4g-components-angular-dropdown.mjs.map +1 -1
- package/dist/dropdown/public-api.d.ts +1 -0
- package/dist/dropdown/public-api.d.ts.map +1 -1
- package/dist/empty-state/README.md +87 -0
- package/dist/empty-state/fesm2022/ux4g-components-angular-empty-state.mjs +1 -0
- package/dist/empty-state/fesm2022/ux4g-components-angular-empty-state.mjs.map +1 -1
- package/dist/empty-state/public-api.d.ts +1 -0
- package/dist/empty-state/public-api.d.ts.map +1 -1
- package/dist/feedback/README.md +87 -0
- package/dist/feedback/fesm2022/ux4g-components-angular-feedback.mjs +1 -0
- package/dist/feedback/fesm2022/ux4g-components-angular-feedback.mjs.map +1 -1
- package/dist/feedback/public-api.d.ts +1 -0
- package/dist/feedback/public-api.d.ts.map +1 -1
- package/dist/footer/README.md +87 -0
- package/dist/footer/fesm2022/ux4g-components-angular-footer.mjs +1 -0
- package/dist/footer/fesm2022/ux4g-components-angular-footer.mjs.map +1 -1
- package/dist/footer/public-api.d.ts +1 -0
- package/dist/footer/public-api.d.ts.map +1 -1
- package/dist/form-field-group/README.md +87 -0
- package/dist/form-field-group/fesm2022/ux4g-components-angular-form-field-group.mjs +1 -0
- package/dist/form-field-group/fesm2022/ux4g-components-angular-form-field-group.mjs.map +1 -1
- package/dist/form-field-group/public-api.d.ts +1 -0
- package/dist/form-field-group/public-api.d.ts.map +1 -1
- package/dist/icon-button/README.md +87 -0
- package/dist/icon-button/fesm2022/ux4g-components-angular-icon-button.mjs +1 -0
- package/dist/icon-button/fesm2022/ux4g-components-angular-icon-button.mjs.map +1 -1
- package/dist/icon-button/public-api.d.ts +1 -0
- package/dist/icon-button/public-api.d.ts.map +1 -1
- package/dist/image/README.md +87 -0
- package/dist/image/fesm2022/ux4g-components-angular-image.mjs +1 -0
- package/dist/image/fesm2022/ux4g-components-angular-image.mjs.map +1 -1
- package/dist/image/public-api.d.ts +1 -0
- package/dist/image/public-api.d.ts.map +1 -1
- package/dist/input/README.md +87 -0
- package/dist/input/fesm2022/ux4g-components-angular-input.mjs +1 -0
- package/dist/input/fesm2022/ux4g-components-angular-input.mjs.map +1 -1
- package/dist/input/public-api.d.ts +1 -0
- package/dist/input/public-api.d.ts.map +1 -1
- package/dist/journey-timeline/README.md +87 -0
- package/dist/journey-timeline/fesm2022/ux4g-components-angular-journey-timeline.mjs +1 -0
- package/dist/journey-timeline/fesm2022/ux4g-components-angular-journey-timeline.mjs.map +1 -1
- package/dist/journey-timeline/public-api.d.ts +1 -0
- package/dist/journey-timeline/public-api.d.ts.map +1 -1
- package/dist/link/README.md +87 -0
- package/dist/link/fesm2022/ux4g-components-angular-link.mjs +1 -0
- package/dist/link/fesm2022/ux4g-components-angular-link.mjs.map +1 -1
- package/dist/link/public-api.d.ts +1 -0
- package/dist/link/public-api.d.ts.map +1 -1
- package/dist/list/README.md +87 -0
- package/dist/list/fesm2022/ux4g-components-angular-list.mjs +1 -0
- package/dist/list/fesm2022/ux4g-components-angular-list.mjs.map +1 -1
- package/dist/list/public-api.d.ts +1 -0
- package/dist/list/public-api.d.ts.map +1 -1
- package/dist/modal/README.md +87 -0
- package/dist/modal/fesm2022/ux4g-components-angular-modal.mjs +1 -0
- package/dist/modal/fesm2022/ux4g-components-angular-modal.mjs.map +1 -1
- package/dist/modal/public-api.d.ts +1 -0
- package/dist/modal/public-api.d.ts.map +1 -1
- package/dist/navbar/README.md +87 -0
- package/dist/navbar/fesm2022/ux4g-components-angular-navbar.mjs +1 -0
- package/dist/navbar/fesm2022/ux4g-components-angular-navbar.mjs.map +1 -1
- package/dist/navbar/public-api.d.ts +1 -0
- package/dist/navbar/public-api.d.ts.map +1 -1
- package/dist/otp-input/README.md +87 -0
- package/dist/otp-input/fesm2022/ux4g-components-angular-otp-input.mjs +1 -0
- package/dist/otp-input/fesm2022/ux4g-components-angular-otp-input.mjs.map +1 -1
- package/dist/otp-input/public-api.d.ts +1 -0
- package/dist/otp-input/public-api.d.ts.map +1 -1
- package/dist/pagination/README.md +87 -0
- package/dist/pagination/fesm2022/ux4g-components-angular-pagination.mjs +1 -0
- package/dist/pagination/fesm2022/ux4g-components-angular-pagination.mjs.map +1 -1
- package/dist/pagination/public-api.d.ts +1 -0
- package/dist/pagination/public-api.d.ts.map +1 -1
- package/dist/popover/README.md +87 -0
- package/dist/popover/fesm2022/ux4g-components-angular-popover.mjs +1 -0
- package/dist/popover/fesm2022/ux4g-components-angular-popover.mjs.map +1 -1
- package/dist/popover/public-api.d.ts +1 -0
- package/dist/popover/public-api.d.ts.map +1 -1
- package/dist/progress-indicator/README.md +87 -0
- package/dist/progress-indicator/fesm2022/ux4g-components-angular-progress-indicator.mjs +1 -0
- package/dist/progress-indicator/fesm2022/ux4g-components-angular-progress-indicator.mjs.map +1 -1
- package/dist/progress-indicator/public-api.d.ts +1 -0
- package/dist/progress-indicator/public-api.d.ts.map +1 -1
- package/dist/radio/README.md +87 -0
- package/dist/radio/fesm2022/ux4g-components-angular-radio.mjs +1 -0
- package/dist/radio/fesm2022/ux4g-components-angular-radio.mjs.map +1 -1
- package/dist/radio/public-api.d.ts +1 -0
- package/dist/radio/public-api.d.ts.map +1 -1
- package/dist/result-list-row/README.md +87 -0
- package/dist/result-list-row/fesm2022/ux4g-components-angular-result-list-row.mjs +1 -0
- package/dist/result-list-row/fesm2022/ux4g-components-angular-result-list-row.mjs.map +1 -1
- package/dist/result-list-row/public-api.d.ts +1 -0
- package/dist/result-list-row/public-api.d.ts.map +1 -1
- package/dist/search/README.md +87 -0
- package/dist/search/fesm2022/ux4g-components-angular-search.mjs +1 -0
- package/dist/search/fesm2022/ux4g-components-angular-search.mjs.map +1 -1
- package/dist/search/public-api.d.ts +1 -0
- package/dist/search/public-api.d.ts.map +1 -1
- package/dist/sla-progress-indicator/README.md +87 -0
- package/dist/sla-progress-indicator/fesm2022/ux4g-components-angular-sla-progress-indicator.mjs +1 -0
- package/dist/sla-progress-indicator/fesm2022/ux4g-components-angular-sla-progress-indicator.mjs.map +1 -1
- package/dist/sla-progress-indicator/public-api.d.ts +1 -0
- package/dist/sla-progress-indicator/public-api.d.ts.map +1 -1
- package/dist/slider/README.md +87 -0
- package/dist/slider/fesm2022/ux4g-components-angular-slider.mjs +1 -0
- package/dist/slider/fesm2022/ux4g-components-angular-slider.mjs.map +1 -1
- package/dist/slider/public-api.d.ts +1 -0
- package/dist/slider/public-api.d.ts.map +1 -1
- package/dist/slot-grid/README.md +87 -0
- package/dist/slot-grid/fesm2022/ux4g-components-angular-slot-grid.mjs +1 -0
- package/dist/slot-grid/fesm2022/ux4g-components-angular-slot-grid.mjs.map +1 -1
- package/dist/slot-grid/public-api.d.ts +1 -0
- package/dist/slot-grid/public-api.d.ts.map +1 -1
- package/dist/social-links/README.md +87 -0
- package/dist/social-links/fesm2022/ux4g-components-angular-social-links.mjs +1 -0
- package/dist/social-links/fesm2022/ux4g-components-angular-social-links.mjs.map +1 -1
- package/dist/social-links/public-api.d.ts +1 -0
- package/dist/social-links/public-api.d.ts.map +1 -1
- package/dist/spinner/README.md +87 -0
- package/dist/spinner/fesm2022/ux4g-components-angular-spinner.mjs +1 -0
- package/dist/spinner/fesm2022/ux4g-components-angular-spinner.mjs.map +1 -1
- package/dist/spinner/public-api.d.ts +1 -0
- package/dist/spinner/public-api.d.ts.map +1 -1
- package/dist/status-pipeline/README.md +87 -0
- package/dist/status-pipeline/fesm2022/ux4g-components-angular-status-pipeline.mjs +1 -0
- package/dist/status-pipeline/fesm2022/ux4g-components-angular-status-pipeline.mjs.map +1 -1
- package/dist/status-pipeline/public-api.d.ts +1 -0
- package/dist/status-pipeline/public-api.d.ts.map +1 -1
- package/dist/stepper/README.md +87 -0
- package/dist/stepper/fesm2022/ux4g-components-angular-stepper.mjs +1 -0
- package/dist/stepper/fesm2022/ux4g-components-angular-stepper.mjs.map +1 -1
- package/dist/stepper/public-api.d.ts +1 -0
- package/dist/stepper/public-api.d.ts.map +1 -1
- package/dist/switch/README.md +87 -0
- package/dist/switch/fesm2022/ux4g-components-angular-switch.mjs +1 -0
- package/dist/switch/fesm2022/ux4g-components-angular-switch.mjs.map +1 -1
- package/dist/switch/public-api.d.ts +1 -0
- package/dist/switch/public-api.d.ts.map +1 -1
- package/dist/tab/README.md +87 -0
- package/dist/tab/fesm2022/ux4g-components-angular-tab.mjs +1 -0
- package/dist/tab/fesm2022/ux4g-components-angular-tab.mjs.map +1 -1
- package/dist/tab/public-api.d.ts +1 -0
- package/dist/tab/public-api.d.ts.map +1 -1
- package/dist/table/README.md +87 -0
- package/dist/table/fesm2022/ux4g-components-angular-table.mjs +1 -0
- package/dist/table/fesm2022/ux4g-components-angular-table.mjs.map +1 -1
- package/dist/table/public-api.d.ts +1 -0
- package/dist/table/public-api.d.ts.map +1 -1
- package/dist/tag/README.md +87 -0
- package/dist/tag/fesm2022/ux4g-components-angular-tag.mjs +1 -0
- package/dist/tag/fesm2022/ux4g-components-angular-tag.mjs.map +1 -1
- package/dist/tag/public-api.d.ts +1 -0
- package/dist/tag/public-api.d.ts.map +1 -1
- package/dist/tooltip/README.md +87 -0
- package/dist/tooltip/fesm2022/ux4g-components-angular-tooltip.mjs +1 -0
- package/dist/tooltip/fesm2022/ux4g-components-angular-tooltip.mjs.map +1 -1
- package/dist/tooltip/public-api.d.ts +1 -0
- package/dist/tooltip/public-api.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/file-upload/fesm2022/ux4g-components-angular-file-upload.mjs +0 -45
- package/dist/file-upload/fesm2022/ux4g-components-angular-file-upload.mjs.map +0 -1
- package/dist/file-upload/index.d.ts +0 -6
- package/dist/file-upload/public-api.d.ts +0 -4
- package/dist/file-upload/public-api.d.ts.map +0 -1
- package/dist/file-upload/ux4g-components-angular-file-upload.d.ts.map +0 -1
- package/dist/file-upload/ux4g-file-upload.component.d.ts +0 -9
- package/dist/file-upload/ux4g-file-upload.component.d.ts.map +0 -1
- package/dist/file-upload/ux4g-file-upload.module.d.ts +0 -9
- package/dist/file-upload/ux4g-file-upload.module.d.ts.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ux4g-components-angular
|
|
2
|
+
|
|
3
|
+
Angular wrapper components for the UX4G Design System.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ux4g-components-angular ux4g-components-web
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Add the CSS bundle to your `angular.json` styles array:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"styles": [
|
|
18
|
+
"node_modules/ux4g-components-web/styles/ux4g.css",
|
|
19
|
+
"src/styles.css"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
// app.module.ts
|
|
28
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
29
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
imports: [UX4GButtonModule, UX4GSpinnerModule],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- app.component.html -->
|
|
39
|
+
<ux4g-button variant="primary" size="md" (buttonClick)="onSave()">
|
|
40
|
+
Save
|
|
41
|
+
</ux4g-button>
|
|
42
|
+
|
|
43
|
+
<ux4g-spinner variant="primary" size="md" type="full"></ux4g-spinner>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Available Components (50)
|
|
47
|
+
|
|
48
|
+
Each component is available as a sub-path import:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
52
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
53
|
+
import { UX4GBadgeModule } from 'ux4g-components-angular/badge';
|
|
54
|
+
import { UX4GCardModule } from 'ux4g-components-angular/card';
|
|
55
|
+
// ... and 46 more
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Full list: `accessibility-bar`, `accordion`, `alert`, `avatar`, `badge`, `breadcrumb`, `button`, `card`, `carousel`, `checkbox`, `chip`, `chip-group`, `combobox`, `date-time-picker`, `divider`, `draft-status-banner`, `drawer`, `dropdown`, `empty-state`, `feedback`, `file-upload`, `footer`, `form-field-group`, `icon-button`, `image`, `input`, `journey-timeline`, `link`, `list`, `modal`, `navbar`, `otp-input`, `pagination`, `popover`, `progress-indicator`, `radio`, `result-list-row`, `search`, `sla-progress-indicator`, `slider`, `slot-grid`, `social-links`, `spinner`, `status-pipeline`, `stepper`, `switch`, `tab`, `table`, `tag`, `tooltip`
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
This package follows a CSS-first architecture:
|
|
63
|
+
|
|
64
|
+
- **CSS is the source of truth** — all visual decisions live in CSS
|
|
65
|
+
- **Wrappers are thin** — they map typed inputs to CSS class strings via `buildXxxClasses()` functions
|
|
66
|
+
- **No inline styles, no CSS-in-JS** — only `[class]` bindings
|
|
67
|
+
- **No local `types.ts` copies** — all Class_Builder functions are imported from `ux4g-components-web/types`
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Angular >= 15.0.0
|
|
72
|
+
- Built with Ivy partial compilation (compatible with Angular 15–19+)
|
|
73
|
+
- `typesVersions` included for `moduleResolution: node` compatibility
|
|
74
|
+
|
|
75
|
+
## Peer Dependencies
|
|
76
|
+
|
|
77
|
+
- `@angular/core >= 15.0.0`
|
|
78
|
+
- `@angular/common >= 15.0.0`
|
|
79
|
+
|
|
80
|
+
## Related Packages
|
|
81
|
+
|
|
82
|
+
- [`ux4g-components-web`](https://www.npmjs.com/package/ux4g-components-web) — CSS bundle and shared types (required)
|
|
83
|
+
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ux4g-components-angular-radio.mjs","sources":["../../../src/radio/ux4g-radio.component.ts","../../../src/radio/ux4g-radio.module.ts","../../../src/radio/ux4g-components-angular-radio.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { RadioSize, buildRadioClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-radio',\r\n standalone: false,\r\n template: `\r\n <label [className]=\"radioClasses\">\r\n <input class=\"ux4g-radio-input\"\r\n type=\"radio\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled || null\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n (change)=\"onChange($event)\" />\r\n <div class=\"ux4g-radio-control\">\r\n <span class=\"ux4g-radiomark\"></span>\r\n </div>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GRadioComponent {\r\n @Input() size: RadioSize = 'md';\r\n @Input() checked: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() error: boolean = false;\r\n @Input() name: string = '';\r\n @Input() value: string = '';\r\n @Output() changed = new EventEmitter<Event>();\r\n\r\n get radioClasses(): string {\r\n return buildRadioClasses(this.size, this.error);\r\n }\r\n\r\n onChange(event: Event): void {\r\n this.changed.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GRadioComponent } from './ux4g-radio.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GRadioComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GRadioComponent],\r\n})\r\nexport class UX4GRadioModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ux4g-components-angular-radio.mjs","sources":["../../../src/radio/ux4g-radio.component.ts","../../../src/radio/ux4g-radio.module.ts","../../../src/radio/ux4g-components-angular-radio.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { RadioSize, buildRadioClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-radio',\r\n standalone: false,\r\n template: `\r\n <label [className]=\"radioClasses\">\r\n <input class=\"ux4g-radio-input\"\r\n type=\"radio\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled || null\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n (change)=\"onChange($event)\" />\r\n <div class=\"ux4g-radio-control\">\r\n <span class=\"ux4g-radiomark\"></span>\r\n </div>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GRadioComponent {\r\n @Input() size: RadioSize = 'md';\r\n @Input() checked: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() error: boolean = false;\r\n @Input() name: string = '';\r\n @Input() value: string = '';\r\n @Output() changed = new EventEmitter<Event>();\r\n\r\n get radioClasses(): string {\r\n return buildRadioClasses(this.size, this.error);\r\n }\r\n\r\n onChange(event: Event): void {\r\n this.changed.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GRadioComponent } from './ux4g-radio.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GRadioComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GRadioComponent],\r\n})\r\nexport class UX4GRadioModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAsBa,kBAAkB,CAAA;AAnB/B,IAAA,WAAA,GAAA;QAoBW,IAAA,CAAA,IAAI,GAAc,IAAI;QACtB,IAAA,CAAA,OAAO,GAAY,KAAK;QACxB,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,KAAK,GAAY,KAAK;QACtB,IAAA,CAAA,IAAI,GAAW,EAAE;QACjB,IAAA,CAAA,KAAK,GAAW,EAAE;AACjB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS;AAS9C,IAAA;AAPC,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;IACjD;AAEA,IAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;+GAfW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBnB,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAnB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,OAAO,EAAA,CAAA;sBAAhB;;;MCpBU,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,CAJX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,YAAY,aACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9B,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/radio/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/radio/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ux4g-components-angular
|
|
2
|
+
|
|
3
|
+
Angular wrapper components for the UX4G Design System.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ux4g-components-angular ux4g-components-web
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Add the CSS bundle to your `angular.json` styles array:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"styles": [
|
|
18
|
+
"node_modules/ux4g-components-web/styles/ux4g.css",
|
|
19
|
+
"src/styles.css"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
// app.module.ts
|
|
28
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
29
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
imports: [UX4GButtonModule, UX4GSpinnerModule],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- app.component.html -->
|
|
39
|
+
<ux4g-button variant="primary" size="md" (buttonClick)="onSave()">
|
|
40
|
+
Save
|
|
41
|
+
</ux4g-button>
|
|
42
|
+
|
|
43
|
+
<ux4g-spinner variant="primary" size="md" type="full"></ux4g-spinner>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Available Components (50)
|
|
47
|
+
|
|
48
|
+
Each component is available as a sub-path import:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
52
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
53
|
+
import { UX4GBadgeModule } from 'ux4g-components-angular/badge';
|
|
54
|
+
import { UX4GCardModule } from 'ux4g-components-angular/card';
|
|
55
|
+
// ... and 46 more
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Full list: `accessibility-bar`, `accordion`, `alert`, `avatar`, `badge`, `breadcrumb`, `button`, `card`, `carousel`, `checkbox`, `chip`, `chip-group`, `combobox`, `date-time-picker`, `divider`, `draft-status-banner`, `drawer`, `dropdown`, `empty-state`, `feedback`, `file-upload`, `footer`, `form-field-group`, `icon-button`, `image`, `input`, `journey-timeline`, `link`, `list`, `modal`, `navbar`, `otp-input`, `pagination`, `popover`, `progress-indicator`, `radio`, `result-list-row`, `search`, `sla-progress-indicator`, `slider`, `slot-grid`, `social-links`, `spinner`, `status-pipeline`, `stepper`, `switch`, `tab`, `table`, `tag`, `tooltip`
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
This package follows a CSS-first architecture:
|
|
63
|
+
|
|
64
|
+
- **CSS is the source of truth** — all visual decisions live in CSS
|
|
65
|
+
- **Wrappers are thin** — they map typed inputs to CSS class strings via `buildXxxClasses()` functions
|
|
66
|
+
- **No inline styles, no CSS-in-JS** — only `[class]` bindings
|
|
67
|
+
- **No local `types.ts` copies** — all Class_Builder functions are imported from `ux4g-components-web/types`
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Angular >= 15.0.0
|
|
72
|
+
- Built with Ivy partial compilation (compatible with Angular 15–19+)
|
|
73
|
+
- `typesVersions` included for `moduleResolution: node` compatibility
|
|
74
|
+
|
|
75
|
+
## Peer Dependencies
|
|
76
|
+
|
|
77
|
+
- `@angular/core >= 15.0.0`
|
|
78
|
+
- `@angular/common >= 15.0.0`
|
|
79
|
+
|
|
80
|
+
## Related Packages
|
|
81
|
+
|
|
82
|
+
- [`ux4g-components-web`](https://www.npmjs.com/package/ux4g-components-web) — CSS bundle and shared types (required)
|
|
83
|
+
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ux4g-components-angular-result-list-row.mjs","sources":["../../../src/result-list-row/ux4g-result-list-row.component.ts","../../../src/result-list-row/ux4g-result-list-row.module.ts","../../../src/result-list-row/ux4g-components-angular-result-list-row.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ResultListRowVariation, buildResultListRowClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-result-list-row',\r\n standalone: false,\r\n template: `<div [className]=\"resultListRowClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GResultListRowComponent {\r\n @Input() variation: ResultListRowVariation = 'default';\r\n\r\n get resultListRowClasses(): string {\r\n return buildResultListRowClasses(this.variation);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GResultListRowComponent } from './ux4g-result-list-row.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GResultListRowComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GResultListRowComponent],\r\n})\r\nexport class UX4GResultListRowModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ux4g-components-angular-result-list-row.mjs","sources":["../../../src/result-list-row/ux4g-result-list-row.component.ts","../../../src/result-list-row/ux4g-result-list-row.module.ts","../../../src/result-list-row/ux4g-components-angular-result-list-row.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ResultListRowVariation, buildResultListRowClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-result-list-row',\r\n standalone: false,\r\n template: `<div [className]=\"resultListRowClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GResultListRowComponent {\r\n @Input() variation: ResultListRowVariation = 'default';\r\n\r\n get resultListRowClasses(): string {\r\n return buildResultListRowClasses(this.variation);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GResultListRowComponent } from './ux4g-result-list-row.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GResultListRowComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GResultListRowComponent],\r\n})\r\nexport class UX4GResultListRowModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,0BAA0B,CAAA;AANvC,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,SAAS,GAA2B,SAAS;AAKvD,IAAA;AAHC,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;IAClD;+GALW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,qHAH3B,CAAA,uEAAA,CAAyE,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGxE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA,uEAAA,CAAyE;oBACnF,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,SAAS,EAAA,CAAA;sBAAjB;;;MCDU,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,CAJnB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC/B,YAAY,aACZ,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAEzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAHxB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACtC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'ux4g-components-web/runtime/bootstrap';
|
|
1
2
|
export { UX4GResultListRowComponent } from './ux4g-result-list-row.component';
|
|
2
3
|
export { UX4GResultListRowModule } from './ux4g-result-list-row.module';
|
|
3
4
|
export { ResultListRowVariation, buildResultListRowClasses } from 'ux4g-components-web/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/result-list-row/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/result-list-row/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ux4g-components-angular
|
|
2
|
+
|
|
3
|
+
Angular wrapper components for the UX4G Design System.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ux4g-components-angular ux4g-components-web
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Add the CSS bundle to your `angular.json` styles array:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"styles": [
|
|
18
|
+
"node_modules/ux4g-components-web/styles/ux4g.css",
|
|
19
|
+
"src/styles.css"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
// app.module.ts
|
|
28
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
29
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
imports: [UX4GButtonModule, UX4GSpinnerModule],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- app.component.html -->
|
|
39
|
+
<ux4g-button variant="primary" size="md" (buttonClick)="onSave()">
|
|
40
|
+
Save
|
|
41
|
+
</ux4g-button>
|
|
42
|
+
|
|
43
|
+
<ux4g-spinner variant="primary" size="md" type="full"></ux4g-spinner>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Available Components (50)
|
|
47
|
+
|
|
48
|
+
Each component is available as a sub-path import:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
52
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
53
|
+
import { UX4GBadgeModule } from 'ux4g-components-angular/badge';
|
|
54
|
+
import { UX4GCardModule } from 'ux4g-components-angular/card';
|
|
55
|
+
// ... and 46 more
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Full list: `accessibility-bar`, `accordion`, `alert`, `avatar`, `badge`, `breadcrumb`, `button`, `card`, `carousel`, `checkbox`, `chip`, `chip-group`, `combobox`, `date-time-picker`, `divider`, `draft-status-banner`, `drawer`, `dropdown`, `empty-state`, `feedback`, `file-upload`, `footer`, `form-field-group`, `icon-button`, `image`, `input`, `journey-timeline`, `link`, `list`, `modal`, `navbar`, `otp-input`, `pagination`, `popover`, `progress-indicator`, `radio`, `result-list-row`, `search`, `sla-progress-indicator`, `slider`, `slot-grid`, `social-links`, `spinner`, `status-pipeline`, `stepper`, `switch`, `tab`, `table`, `tag`, `tooltip`
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
This package follows a CSS-first architecture:
|
|
63
|
+
|
|
64
|
+
- **CSS is the source of truth** — all visual decisions live in CSS
|
|
65
|
+
- **Wrappers are thin** — they map typed inputs to CSS class strings via `buildXxxClasses()` functions
|
|
66
|
+
- **No inline styles, no CSS-in-JS** — only `[class]` bindings
|
|
67
|
+
- **No local `types.ts` copies** — all Class_Builder functions are imported from `ux4g-components-web/types`
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Angular >= 15.0.0
|
|
72
|
+
- Built with Ivy partial compilation (compatible with Angular 15–19+)
|
|
73
|
+
- `typesVersions` included for `moduleResolution: node` compatibility
|
|
74
|
+
|
|
75
|
+
## Peer Dependencies
|
|
76
|
+
|
|
77
|
+
- `@angular/core >= 15.0.0`
|
|
78
|
+
- `@angular/common >= 15.0.0`
|
|
79
|
+
|
|
80
|
+
## Related Packages
|
|
81
|
+
|
|
82
|
+
- [`ux4g-components-web`](https://www.npmjs.com/package/ux4g-components-web) — CSS bundle and shared types (required)
|
|
83
|
+
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ux4g-components-angular-search.mjs","sources":["../../../src/search/ux4g-search-container.component.ts","../../../src/search/ux4g-search.module.ts","../../../src/search/ux4g-components-angular-search.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SearchSize, buildSearchContainerClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-search-container',\r\n standalone: false,\r\n template: `\r\n <div [className]=\"searchClasses\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSearchContainerComponent {\r\n @Input() size: SearchSize = 'm';\r\n\r\n get searchClasses(): string {\r\n return buildSearchContainerClasses(this.size);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSearchContainerComponent } from './ux4g-search-container.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSearchContainerComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSearchContainerComponent],\r\n})\r\nexport class UX4GSearchModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ux4g-components-angular-search.mjs","sources":["../../../src/search/ux4g-search-container.component.ts","../../../src/search/ux4g-search.module.ts","../../../src/search/ux4g-components-angular-search.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SearchSize, buildSearchContainerClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-search-container',\r\n standalone: false,\r\n template: `\r\n <div [className]=\"searchClasses\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSearchContainerComponent {\r\n @Input() size: SearchSize = 'm';\r\n\r\n get searchClasses(): string {\r\n return buildSearchContainerClasses(this.size);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSearchContainerComponent } from './ux4g-search-container.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSearchContainerComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSearchContainerComponent],\r\n})\r\nexport class UX4GSearchModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAaa,4BAA4B,CAAA;AAVzC,IAAA,WAAA,GAAA;QAWW,IAAA,CAAA,IAAI,GAAe,GAAG;AAKhC,IAAA;AAHC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/C;+GALW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAP7B,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;;;MCLU,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,CAJZ,4BAA4B,CAAA,EAAA,OAAA,EAAA,CACjC,YAAY,aACZ,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAE3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHjB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;oBAC5C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACxC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/search/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/search/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ux4g-components-angular
|
|
2
|
+
|
|
3
|
+
Angular wrapper components for the UX4G Design System.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ux4g-components-angular ux4g-components-web
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Add the CSS bundle to your `angular.json` styles array:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"styles": [
|
|
18
|
+
"node_modules/ux4g-components-web/styles/ux4g.css",
|
|
19
|
+
"src/styles.css"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
// app.module.ts
|
|
28
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
29
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
imports: [UX4GButtonModule, UX4GSpinnerModule],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- app.component.html -->
|
|
39
|
+
<ux4g-button variant="primary" size="md" (buttonClick)="onSave()">
|
|
40
|
+
Save
|
|
41
|
+
</ux4g-button>
|
|
42
|
+
|
|
43
|
+
<ux4g-spinner variant="primary" size="md" type="full"></ux4g-spinner>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Available Components (50)
|
|
47
|
+
|
|
48
|
+
Each component is available as a sub-path import:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
52
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
53
|
+
import { UX4GBadgeModule } from 'ux4g-components-angular/badge';
|
|
54
|
+
import { UX4GCardModule } from 'ux4g-components-angular/card';
|
|
55
|
+
// ... and 46 more
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Full list: `accessibility-bar`, `accordion`, `alert`, `avatar`, `badge`, `breadcrumb`, `button`, `card`, `carousel`, `checkbox`, `chip`, `chip-group`, `combobox`, `date-time-picker`, `divider`, `draft-status-banner`, `drawer`, `dropdown`, `empty-state`, `feedback`, `file-upload`, `footer`, `form-field-group`, `icon-button`, `image`, `input`, `journey-timeline`, `link`, `list`, `modal`, `navbar`, `otp-input`, `pagination`, `popover`, `progress-indicator`, `radio`, `result-list-row`, `search`, `sla-progress-indicator`, `slider`, `slot-grid`, `social-links`, `spinner`, `status-pipeline`, `stepper`, `switch`, `tab`, `table`, `tag`, `tooltip`
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
This package follows a CSS-first architecture:
|
|
63
|
+
|
|
64
|
+
- **CSS is the source of truth** — all visual decisions live in CSS
|
|
65
|
+
- **Wrappers are thin** — they map typed inputs to CSS class strings via `buildXxxClasses()` functions
|
|
66
|
+
- **No inline styles, no CSS-in-JS** — only `[class]` bindings
|
|
67
|
+
- **No local `types.ts` copies** — all Class_Builder functions are imported from `ux4g-components-web/types`
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Angular >= 15.0.0
|
|
72
|
+
- Built with Ivy partial compilation (compatible with Angular 15–19+)
|
|
73
|
+
- `typesVersions` included for `moduleResolution: node` compatibility
|
|
74
|
+
|
|
75
|
+
## Peer Dependencies
|
|
76
|
+
|
|
77
|
+
- `@angular/core >= 15.0.0`
|
|
78
|
+
- `@angular/common >= 15.0.0`
|
|
79
|
+
|
|
80
|
+
## Related Packages
|
|
81
|
+
|
|
82
|
+
- [`ux4g-components-web`](https://www.npmjs.com/package/ux4g-components-web) — CSS bundle and shared types (required)
|
|
83
|
+
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
package/dist/sla-progress-indicator/fesm2022/ux4g-components-angular-sla-progress-indicator.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ux4g-components-angular-sla-progress-indicator.mjs","sources":["../../../src/sla-progress-indicator/ux4g-sla-progress-indicator.component.ts","../../../src/sla-progress-indicator/ux4g-sla-progress-indicator.module.ts","../../../src/sla-progress-indicator/ux4g-components-angular-sla-progress-indicator.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SlaProgressIndicatorType, buildSlaProgressIndicatorClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-sla-progress-indicator',\r\n standalone: false,\r\n template: `<div [className]=\"slaProgressIndicatorClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSlaProgressIndicatorComponent {\r\n @Input() type!: SlaProgressIndicatorType;\r\n\r\n get slaProgressIndicatorClasses(): string {\r\n return buildSlaProgressIndicatorClasses(this.type);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSlaProgressIndicatorComponent } from './ux4g-sla-progress-indicator.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSlaProgressIndicatorComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSlaProgressIndicatorComponent],\r\n})\r\nexport class UX4GSlaProgressIndicatorModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ux4g-components-angular-sla-progress-indicator.mjs","sources":["../../../src/sla-progress-indicator/ux4g-sla-progress-indicator.component.ts","../../../src/sla-progress-indicator/ux4g-sla-progress-indicator.module.ts","../../../src/sla-progress-indicator/ux4g-components-angular-sla-progress-indicator.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SlaProgressIndicatorType, buildSlaProgressIndicatorClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-sla-progress-indicator',\r\n standalone: false,\r\n template: `<div [className]=\"slaProgressIndicatorClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSlaProgressIndicatorComponent {\r\n @Input() type!: SlaProgressIndicatorType;\r\n\r\n get slaProgressIndicatorClasses(): string {\r\n return buildSlaProgressIndicatorClasses(this.type);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSlaProgressIndicatorComponent } from './ux4g-sla-progress-indicator.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSlaProgressIndicatorComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSlaProgressIndicatorComponent],\r\n})\r\nexport class UX4GSlaProgressIndicatorModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,iCAAiC,CAAA;AAG5C,IAAA,IAAI,2BAA2B,GAAA;AAC7B,QAAA,OAAO,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpD;+GALW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,kHAHlC,CAAA,8EAAA,CAAgF,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAG/E,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA,8EAAA,CAAgF;oBAC1F,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;;;MCDU,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,CAJ1B,iCAAiC,CAAA,EAAA,OAAA,EAAA,CACtC,YAAY,aACZ,iCAAiC,CAAA,EAAA,CAAA,CAAA;AAEhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,YAH/B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iCAAiC,CAAC;oBACjD,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iCAAiC,CAAC;AAC7C,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'ux4g-components-web/runtime/bootstrap';
|
|
1
2
|
export { UX4GSlaProgressIndicatorComponent } from './ux4g-sla-progress-indicator.component';
|
|
2
3
|
export { UX4GSlaProgressIndicatorModule } from './ux4g-sla-progress-indicator.module';
|
|
3
4
|
export { SlaProgressIndicatorType, buildSlaProgressIndicatorClasses } from 'ux4g-components-web/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/sla-progress-indicator/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/sla-progress-indicator/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# ux4g-components-angular
|
|
2
|
+
|
|
3
|
+
Angular wrapper components for the UX4G Design System.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ux4g-components-angular ux4g-components-web
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Setup
|
|
12
|
+
|
|
13
|
+
Add the CSS bundle to your `angular.json` styles array:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"styles": [
|
|
18
|
+
"node_modules/ux4g-components-web/styles/ux4g.css",
|
|
19
|
+
"src/styles.css"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
// app.module.ts
|
|
28
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
29
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
imports: [UX4GButtonModule, UX4GSpinnerModule],
|
|
33
|
+
})
|
|
34
|
+
export class AppModule {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- app.component.html -->
|
|
39
|
+
<ux4g-button variant="primary" size="md" (buttonClick)="onSave()">
|
|
40
|
+
Save
|
|
41
|
+
</ux4g-button>
|
|
42
|
+
|
|
43
|
+
<ux4g-spinner variant="primary" size="md" type="full"></ux4g-spinner>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Available Components (50)
|
|
47
|
+
|
|
48
|
+
Each component is available as a sub-path import:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { UX4GButtonModule } from 'ux4g-components-angular/button';
|
|
52
|
+
import { UX4GSpinnerModule } from 'ux4g-components-angular/spinner';
|
|
53
|
+
import { UX4GBadgeModule } from 'ux4g-components-angular/badge';
|
|
54
|
+
import { UX4GCardModule } from 'ux4g-components-angular/card';
|
|
55
|
+
// ... and 46 more
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Full list: `accessibility-bar`, `accordion`, `alert`, `avatar`, `badge`, `breadcrumb`, `button`, `card`, `carousel`, `checkbox`, `chip`, `chip-group`, `combobox`, `date-time-picker`, `divider`, `draft-status-banner`, `drawer`, `dropdown`, `empty-state`, `feedback`, `file-upload`, `footer`, `form-field-group`, `icon-button`, `image`, `input`, `journey-timeline`, `link`, `list`, `modal`, `navbar`, `otp-input`, `pagination`, `popover`, `progress-indicator`, `radio`, `result-list-row`, `search`, `sla-progress-indicator`, `slider`, `slot-grid`, `social-links`, `spinner`, `status-pipeline`, `stepper`, `switch`, `tab`, `table`, `tag`, `tooltip`
|
|
59
|
+
|
|
60
|
+
## Architecture
|
|
61
|
+
|
|
62
|
+
This package follows a CSS-first architecture:
|
|
63
|
+
|
|
64
|
+
- **CSS is the source of truth** — all visual decisions live in CSS
|
|
65
|
+
- **Wrappers are thin** — they map typed inputs to CSS class strings via `buildXxxClasses()` functions
|
|
66
|
+
- **No inline styles, no CSS-in-JS** — only `[class]` bindings
|
|
67
|
+
- **No local `types.ts` copies** — all Class_Builder functions are imported from `ux4g-components-web/types`
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
- Angular >= 15.0.0
|
|
72
|
+
- Built with Ivy partial compilation (compatible with Angular 15–19+)
|
|
73
|
+
- `typesVersions` included for `moduleResolution: node` compatibility
|
|
74
|
+
|
|
75
|
+
## Peer Dependencies
|
|
76
|
+
|
|
77
|
+
- `@angular/core >= 15.0.0`
|
|
78
|
+
- `@angular/common >= 15.0.0`
|
|
79
|
+
|
|
80
|
+
## Related Packages
|
|
81
|
+
|
|
82
|
+
- [`ux4g-components-web`](https://www.npmjs.com/package/ux4g-components-web) — CSS bundle and shared types (required)
|
|
83
|
+
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ux4g-components-angular-slider.mjs","sources":["../../../src/slider/ux4g-slider-field.component.ts","../../../src/slider/ux4g-slider-field.module.ts","../../../src/slider/ux4g-components-angular-slider.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SliderSize, buildSliderFieldClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-slider-field',\r\n standalone: false,\r\n template: `<div [className]=\"sliderFieldClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSliderFieldComponent {\r\n @Input() size: SliderSize = 'sm';\r\n\r\n get sliderFieldClasses(): string {\r\n return buildSliderFieldClasses(this.size);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSliderFieldComponent } from './ux4g-slider-field.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSliderFieldComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSliderFieldComponent],\r\n})\r\nexport class UX4GSliderFieldModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ux4g-components-angular-slider.mjs","sources":["../../../src/slider/ux4g-slider-field.component.ts","../../../src/slider/ux4g-slider-field.module.ts","../../../src/slider/ux4g-components-angular-slider.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { SliderSize, buildSliderFieldClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-slider-field',\r\n standalone: false,\r\n template: `<div [className]=\"sliderFieldClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GSliderFieldComponent {\r\n @Input() size: SliderSize = 'sm';\r\n\r\n get sliderFieldClasses(): string {\r\n return buildSliderFieldClasses(this.size);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GSliderFieldComponent } from './ux4g-slider-field.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GSliderFieldComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GSliderFieldComponent],\r\n})\r\nexport class UX4GSliderFieldModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,IAAI,GAAe,IAAI;AAKjC,IAAA;AAHC,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C;+GALW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,wGAHzB,CAAA,qEAAA,CAAuE,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGtE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA,qEAAA,CAAuE;oBACjF,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;;;MCDU,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,CAJjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAC7B,YAAY,aACZ,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAEvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAHtB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'ux4g-components-web/runtime/bootstrap';
|
|
1
2
|
export { UX4GSliderFieldComponent } from './ux4g-slider-field.component';
|
|
2
3
|
export { UX4GSliderFieldModule } from './ux4g-slider-field.module';
|
|
3
4
|
export { SliderSize, buildSliderFieldClasses } from 'ux4g-components-web/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/slider/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/slider/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|