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-checkbox.mjs","sources":["../../../src/checkbox/ux4g-checkbox.component.ts","../../../src/checkbox/ux4g-checkbox.module.ts","../../../src/checkbox/ux4g-components-angular-checkbox.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CheckboxSize, buildCheckboxClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-checkbox',\r\n standalone: false,\r\n template: `\r\n <label [className]=\"checkboxClasses\">\r\n <input #checkboxInput\r\n class=\"ux4g-checkbox-input\"\r\n type=\"checkbox\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled || null\"\r\n (change)=\"onChange($event)\" />\r\n <div class=\"ux4g-checkbox-control\">\r\n <span class=\"ux4g-checkmark\"></span>\r\n </div>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GCheckboxComponent implements AfterViewInit, OnChanges {\r\n @Input() size: CheckboxSize = 'md';\r\n @Input() checked: boolean = false;\r\n @Input() indeterminate: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() error: boolean = false;\r\n @Output() changed = new EventEmitter<Event>();\r\n\r\n @ViewChild('checkboxInput') checkboxInputRef!: ElementRef<HTMLInputElement>;\r\n\r\n get checkboxClasses(): string {\r\n return buildCheckboxClasses(this.size, this.error);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkboxInputRef.nativeElement.indeterminate = this.indeterminate;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['indeterminate'] && this.checkboxInputRef) {\r\n this.checkboxInputRef.nativeElement.indeterminate = this.indeterminate;\r\n }\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 { UX4GCheckboxComponent } from './ux4g-checkbox.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GCheckboxComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GCheckboxComponent],\r\n})\r\nexport class UX4GCheckboxModule {}\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-checkbox.mjs","sources":["../../../src/checkbox/ux4g-checkbox.component.ts","../../../src/checkbox/ux4g-checkbox.module.ts","../../../src/checkbox/ux4g-components-angular-checkbox.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CheckboxSize, buildCheckboxClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-checkbox',\r\n standalone: false,\r\n template: `\r\n <label [className]=\"checkboxClasses\">\r\n <input #checkboxInput\r\n class=\"ux4g-checkbox-input\"\r\n type=\"checkbox\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled || null\"\r\n (change)=\"onChange($event)\" />\r\n <div class=\"ux4g-checkbox-control\">\r\n <span class=\"ux4g-checkmark\"></span>\r\n </div>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GCheckboxComponent implements AfterViewInit, OnChanges {\r\n @Input() size: CheckboxSize = 'md';\r\n @Input() checked: boolean = false;\r\n @Input() indeterminate: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() error: boolean = false;\r\n @Output() changed = new EventEmitter<Event>();\r\n\r\n @ViewChild('checkboxInput') checkboxInputRef!: ElementRef<HTMLInputElement>;\r\n\r\n get checkboxClasses(): string {\r\n return buildCheckboxClasses(this.size, this.error);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkboxInputRef.nativeElement.indeterminate = this.indeterminate;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['indeterminate'] && this.checkboxInputRef) {\r\n this.checkboxInputRef.nativeElement.indeterminate = this.indeterminate;\r\n }\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 { UX4GCheckboxComponent } from './ux4g-checkbox.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GCheckboxComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GCheckboxComponent],\r\n})\r\nexport class UX4GCheckboxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/checkbox/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/checkbox/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,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-chip.mjs","sources":["../../../src/chip/ux4g-chip.component.ts","../../../src/chip/ux4g-chip.module.ts","../../../src/chip/ux4g-components-angular-chip.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ChipType, ChipSize, buildChipClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-chip',\r\n standalone: false,\r\n template: `\r\n <button [className]=\"chipClasses\" [disabled]=\"disabled || null\">\r\n <ng-content></ng-content>\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GChipComponent {\r\n @Input() chipType: ChipType = 'filter';\r\n @Input() size: ChipSize = 'md';\r\n @Input() active: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n get chipClasses(): string {\r\n return buildChipClasses(this.chipType, this.size, this.active);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GChipComponent } from './ux4g-chip.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GChipComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GChipComponent],\r\n})\r\nexport class UX4GChipModule {}\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-chip.mjs","sources":["../../../src/chip/ux4g-chip.component.ts","../../../src/chip/ux4g-chip.module.ts","../../../src/chip/ux4g-components-angular-chip.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ChipType, ChipSize, buildChipClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-chip',\r\n standalone: false,\r\n template: `\r\n <button [className]=\"chipClasses\" [disabled]=\"disabled || null\">\r\n <ng-content></ng-content>\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GChipComponent {\r\n @Input() chipType: ChipType = 'filter';\r\n @Input() size: ChipSize = 'md';\r\n @Input() active: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n get chipClasses(): string {\r\n return buildChipClasses(this.chipType, this.size, this.active);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GChipComponent } from './ux4g-chip.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GChipComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GChipComponent],\r\n})\r\nexport class UX4GChipModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAaa,iBAAiB,CAAA;AAV9B,IAAA,WAAA,GAAA;QAWW,IAAA,CAAA,QAAQ,GAAa,QAAQ;QAC7B,IAAA,CAAA,IAAI,GAAa,IAAI;QACrB,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,QAAQ,GAAY,KAAK;AAKnC,IAAA;AAHC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAChE;+GARW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPlB,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MCRU,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,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,cAAc,EAAA,YAAA,EAAA,CAJV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACtB,YAAY,aACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,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,cAAc,YAHf,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/chip/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/chip/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,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-chip-group.mjs","sources":["../../../src/chip-group/ux4g-chip-group.component.ts","../../../src/chip-group/ux4g-chip-group.module.ts","../../../src/chip-group/ux4g-components-angular-chip-group.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ChipGroupVariant, buildChipGroupClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-chip-group',\r\n standalone: false,\r\n template: `<div [className]=\"chipGroupClasses\" [attr.disabled]=\"disabled ? true : null\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GChipGroupComponent {\r\n @Input() variant: ChipGroupVariant = 'filter';\r\n @Input() active: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n get chipGroupClasses(): string {\r\n return buildChipGroupClasses(this.variant, this.active);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GChipGroupComponent } from './ux4g-chip-group.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GChipGroupComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GChipGroupComponent],\r\n})\r\nexport class UX4GChipGroupModule {}\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-chip-group.mjs","sources":["../../../src/chip-group/ux4g-chip-group.component.ts","../../../src/chip-group/ux4g-chip-group.module.ts","../../../src/chip-group/ux4g-components-angular-chip-group.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ChipGroupVariant, buildChipGroupClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-chip-group',\r\n standalone: false,\r\n template: `<div [className]=\"chipGroupClasses\" [attr.disabled]=\"disabled ? true : null\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GChipGroupComponent {\r\n @Input() variant: ChipGroupVariant = 'filter';\r\n @Input() active: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n get chipGroupClasses(): string {\r\n return buildChipGroupClasses(this.variant, this.active);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GChipGroupComponent } from './ux4g-chip-group.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GChipGroupComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GChipGroupComponent],\r\n})\r\nexport class UX4GChipGroupModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,OAAO,GAAqB,QAAQ;QACpC,IAAA,CAAA,MAAM,GAAY,KAAK;QACvB,IAAA,CAAA,QAAQ,GAAY,KAAK;AAKnC,IAAA;AAHC,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;IACzD;+GAPW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,oJAHvB,CAAA,4GAAA,CAA8G,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAG7G,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA,4GAAA,CAA8G;oBACxH,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,OAAO,EAAA,CAAA;sBAAf;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;MCHU,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,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,mBAAmB,EAAA,YAAA,EAAA,CAJf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAC3B,YAAY,aACZ,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAErB,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,mBAAmB,YAHpB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/chip-group/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/chip-group/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,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-combobox.mjs","sources":["../../../src/combobox/ux4g-combobox.component.ts","../../../src/combobox/ux4g-combobox.module.ts","../../../src/combobox/ux4g-components-angular-combobox.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ComboboxType, ComboboxSize, ComboboxState, buildComboboxClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-combobox',\r\n standalone: false,\r\n template: `\r\n <div [className]=\"comboboxClasses\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GComboboxComponent {\r\n @Input() type: ComboboxType = 'single';\r\n @Input() size: ComboboxSize = 'md';\r\n @Input() state: ComboboxState = 'default';\r\n @Input() open: boolean = false;\r\n\r\n get comboboxClasses(): string {\r\n return buildComboboxClasses(this.type, this.size, this.state, this.open);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GComboboxComponent } from './ux4g-combobox.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GComboboxComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GComboboxComponent],\r\n})\r\nexport class UX4GComboboxModule {}\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-combobox.mjs","sources":["../../../src/combobox/ux4g-combobox.component.ts","../../../src/combobox/ux4g-combobox.module.ts","../../../src/combobox/ux4g-components-angular-combobox.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ComboboxType, ComboboxSize, ComboboxState, buildComboboxClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-combobox',\r\n standalone: false,\r\n template: `\r\n <div [className]=\"comboboxClasses\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GComboboxComponent {\r\n @Input() type: ComboboxType = 'single';\r\n @Input() size: ComboboxSize = 'md';\r\n @Input() state: ComboboxState = 'default';\r\n @Input() open: boolean = false;\r\n\r\n get comboboxClasses(): string {\r\n return buildComboboxClasses(this.type, this.size, this.state, this.open);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GComboboxComponent } from './ux4g-combobox.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GComboboxComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GComboboxComponent],\r\n})\r\nexport class UX4GComboboxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAaa,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;QAWW,IAAA,CAAA,IAAI,GAAiB,QAAQ;QAC7B,IAAA,CAAA,IAAI,GAAiB,IAAI;QACzB,IAAA,CAAA,KAAK,GAAkB,SAAS;QAChC,IAAA,CAAA,IAAI,GAAY,KAAK;AAK/B,IAAA;AAHC,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;IAC1E;+GARW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPtB,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,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;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,IAAI,EAAA,CAAA;sBAAZ;;;MCRU,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,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,kBAAkB,EAAA,YAAA,EAAA,CAJd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,YAAY,aACZ,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,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,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/combobox/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/combobox/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,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-date-time-picker.mjs","sources":["../../../src/date-time-picker/ux4g-date-time-picker.component.ts","../../../src/date-time-picker/ux4g-date-time-picker.module.ts","../../../src/date-time-picker/ux4g-components-angular-date-time-picker.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { DateTimePickerMode, buildDateTimePickerClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-date-time-picker',\r\n standalone: false,\r\n template: `<div [className]=\"dateTimePickerClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GDateTimePickerComponent {\r\n @Input() mode: DateTimePickerMode = 'date';\r\n\r\n get dateTimePickerClasses(): string {\r\n return buildDateTimePickerClasses(this.mode);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GDateTimePickerComponent } from './ux4g-date-time-picker.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GDateTimePickerComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GDateTimePickerComponent],\r\n})\r\nexport class UX4GDateTimePickerModule {}\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-date-time-picker.mjs","sources":["../../../src/date-time-picker/ux4g-date-time-picker.component.ts","../../../src/date-time-picker/ux4g-date-time-picker.module.ts","../../../src/date-time-picker/ux4g-components-angular-date-time-picker.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { DateTimePickerMode, buildDateTimePickerClasses } from 'ux4g-components-web/types';\r\n\r\n@Component({\r\n selector: 'ux4g-date-time-picker',\r\n standalone: false,\r\n template: `<div [className]=\"dateTimePickerClasses\"><ng-content></ng-content></div>`,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UX4GDateTimePickerComponent {\r\n @Input() mode: DateTimePickerMode = 'date';\r\n\r\n get dateTimePickerClasses(): string {\r\n return buildDateTimePickerClasses(this.mode);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UX4GDateTimePickerComponent } from './ux4g-date-time-picker.component';\r\n\r\n@NgModule({\r\n declarations: [UX4GDateTimePickerComponent],\r\n imports: [CommonModule],\r\n exports: [UX4GDateTimePickerComponent],\r\n})\r\nexport class UX4GDateTimePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MASa,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,IAAI,GAAuB,MAAM;AAK3C,IAAA;AAHC,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C;+GALW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4GAH5B,CAAA,wEAAA,CAA0E,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGzE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,CAAA,wEAAA,CAA0E;oBACpF,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;;;MCDU,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,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,wBAAwB,EAAA,YAAA,EAAA,CAJpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAChC,YAAY,aACZ,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAE1B,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,wBAAwB,YAHzB,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGX,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;oBAC3C,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACvC,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'ux4g-components-web/runtime/bootstrap';
|
|
1
2
|
export { UX4GDateTimePickerComponent } from './ux4g-date-time-picker.component';
|
|
2
3
|
export { UX4GDateTimePickerModule } from './ux4g-date-time-picker.module';
|
|
3
4
|
export { DateTimePickerMode, buildDateTimePickerClasses } from 'ux4g-components-web/types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/date-time-picker/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/date-time-picker/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
|