ux4g-components-web 1.4.1 → 1.5.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 +76 -0
- package/dist/__tests__/css-bundle.integration.test.d.ts +11 -0
- package/dist/__tests__/css-bundle.integration.test.js +1102 -0
- package/dist/__tests__/css-bundle.phase10.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase10.property.test.js +64 -0
- package/dist/__tests__/css-bundle.phase5.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase5.property.test.js +126 -0
- package/dist/__tests__/css-bundle.phase6.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase6.property.test.js +73 -0
- package/dist/__tests__/css-bundle.phase7.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase7.property.test.js +76 -0
- package/dist/__tests__/css-bundle.phase8.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase8.property.test.js +67 -0
- package/dist/__tests__/css-bundle.phase9.property.test.d.ts +9 -0
- package/dist/__tests__/css-bundle.phase9.property.test.js +93 -0
- package/dist/__tests__/css-bundle.property.test.d.ts +14 -0
- package/dist/__tests__/css-bundle.property.test.js +393 -0
- package/dist/__tests__/dom-generators.determinism.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.determinism.property.test.js +71 -0
- package/dist/__tests__/dom-generators.id.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.id.property.test.js +99 -0
- package/dist/__tests__/dom-generators.otp.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.property.test.js +205 -0
- package/dist/__tests__/dom-generators.states.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.table.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.tier1.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.tier1.property.test.js +403 -0
- package/dist/__tests__/dom-generators.validation.property.test.d.ts +1 -0
- package/dist/__tests__/dom-generators.validation.property.test.js +327 -0
- package/dist/__tests__/megamenu.classbuilder.property.test.d.ts +1 -0
- package/dist/__tests__/megamenu.classbuilder.property.test.js +88 -0
- package/dist/__tests__/smoke.test.d.ts +1 -0
- package/dist/__tests__/smoke.test.js +65 -0
- package/dist/__tests__/types.phase10.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase10.property.test.js +166 -0
- package/dist/__tests__/types.phase10.test.d.ts +1 -0
- package/dist/__tests__/types.phase10.test.js +76 -0
- package/dist/__tests__/types.phase3.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase3.property.test.js +83 -0
- package/dist/__tests__/types.phase3.test.d.ts +1 -0
- package/dist/__tests__/types.phase3.test.js +76 -0
- package/dist/__tests__/types.phase4.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase4.property.test.js +119 -0
- package/dist/__tests__/types.phase4.test.d.ts +1 -0
- package/dist/__tests__/types.phase4.test.js +70 -0
- package/dist/__tests__/types.phase5.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase5.property.test.js +120 -0
- package/dist/__tests__/types.phase5.test.d.ts +1 -0
- package/dist/__tests__/types.phase5.test.js +64 -0
- package/dist/__tests__/types.phase6.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase6.property.test.js +189 -0
- package/dist/__tests__/types.phase6.test.d.ts +1 -0
- package/dist/__tests__/types.phase6.test.js +121 -0
- package/dist/__tests__/types.phase7.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase7.property.test.js +217 -0
- package/dist/__tests__/types.phase7.test.d.ts +1 -0
- package/dist/__tests__/types.phase7.test.js +106 -0
- package/dist/__tests__/types.phase8.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase8.property.test.js +224 -0
- package/dist/__tests__/types.phase8.test.d.ts +1 -0
- package/dist/__tests__/types.phase8.test.js +114 -0
- package/dist/__tests__/types.phase9.property.test.d.ts +1 -0
- package/dist/__tests__/types.phase9.property.test.js +347 -0
- package/dist/__tests__/types.phase9.test.d.ts +1 -0
- package/dist/__tests__/types.phase9.test.js +226 -0
- package/dist/__tests__/types.restructure.property.test.d.ts +1 -0
- package/dist/__tests__/types.restructure.property.test.js +76 -0
- package/dist/__tests__/types.test.d.ts +1 -0
- package/dist/__tests__/types.test.js +175 -0
- package/dist/dom-generators/accordion.d.ts +23 -0
- package/dist/dom-generators/avatar.d.ts +19 -0
- package/dist/dom-generators/carousel.d.ts +20 -0
- package/dist/dom-generators/chip.d.ts +18 -0
- package/dist/dom-generators/combobox.d.ts +28 -0
- package/dist/dom-generators/date-picker.d.ts +19 -0
- package/dist/dom-generators/dom-generators/accordion.d.ts +21 -0
- package/dist/dom-generators/dom-generators/avatar.d.ts +17 -0
- package/dist/dom-generators/dom-generators/carousel.d.ts +19 -0
- package/dist/dom-generators/dom-generators/chip.d.ts +16 -0
- package/dist/dom-generators/dom-generators/combobox.d.ts +26 -0
- package/dist/dom-generators/dom-generators/date-picker.d.ts +18 -0
- package/dist/dom-generators/dom-generators/drawer.d.ts +17 -0
- package/dist/dom-generators/dom-generators/dropdown.d.ts +26 -0
- package/dist/dom-generators/dom-generators/file-upload.d.ts +20 -0
- package/dist/dom-generators/dom-generators/id-generator.d.ts +9 -0
- package/dist/dom-generators/dom-generators/index.d.ts +27 -0
- package/dist/dom-generators/dom-generators/modal.d.ts +19 -0
- package/dist/dom-generators/dom-generators/otp.d.ts +16 -0
- package/dist/dom-generators/dom-generators/popover.d.ts +17 -0
- package/dist/dom-generators/dom-generators/progress.d.ts +16 -0
- package/dist/dom-generators/dom-generators/search.d.ts +20 -0
- package/dist/dom-generators/dom-generators/stepper.d.ts +21 -0
- package/dist/dom-generators/dom-generators/table.d.ts +23 -0
- package/dist/dom-generators/dom-generators/tabs.d.ts +21 -0
- package/dist/dom-generators/dom-generators/time-picker.d.ts +18 -0
- package/dist/dom-generators/dom-generators/tooltip.d.ts +17 -0
- package/dist/dom-generators/dom-generators/types.d.ts +27 -0
- package/dist/dom-generators/dom-generators/validate.d.ts +20 -0
- package/dist/dom-generators/drawer.d.ts +19 -0
- package/dist/dom-generators/dropdown.d.ts +28 -0
- package/dist/dom-generators/file-upload.d.ts +22 -0
- package/dist/dom-generators/id-generator.d.ts +9 -0
- package/dist/dom-generators/index.bundled.d.ts +654 -0
- package/dist/dom-generators/index.cjs +2029 -0
- package/dist/dom-generators/index.d.ts +27 -0
- package/dist/dom-generators/index.mjs +2001 -0
- package/dist/dom-generators/modal.d.ts +21 -0
- package/dist/dom-generators/otp.d.ts +18 -0
- package/dist/dom-generators/popover.d.ts +19 -0
- package/dist/dom-generators/progress.d.ts +18 -0
- package/dist/dom-generators/search.d.ts +22 -0
- package/dist/dom-generators/stepper.d.ts +23 -0
- package/dist/dom-generators/table.d.ts +25 -0
- package/dist/dom-generators/tabs.d.ts +23 -0
- package/dist/dom-generators/time-picker.d.ts +19 -0
- package/dist/dom-generators/tooltip.d.ts +19 -0
- package/dist/dom-generators/types.d.ts +155 -0
- package/dist/dom-generators/validate.d.ts +20 -0
- package/dist/runtime/bootstrap.js +59 -0
- package/dist/runtime/index.js +55 -0
- package/dist/types.d.ts +155 -0
- package/dist/types.js +552 -0
- package/package.json +12 -2
package/README.md
CHANGED
|
@@ -1071,6 +1071,82 @@ UX4G provides built-in focus ring styles for keyboard accessibility. Focus rings
|
|
|
1071
1071
|
|
|
1072
1072
|
---
|
|
1073
1073
|
|
|
1074
|
+
## DOM Generators (Advanced)
|
|
1075
|
+
|
|
1076
|
+
The `./dom-generators` export provides framework-agnostic functions that produce complete UX4G-compliant DOM structure descriptors (`NodeDescriptor` trees). These are used internally by React and Angular Native Wrappers, but are also available for:
|
|
1077
|
+
|
|
1078
|
+
- **Framework authors** building wrappers for Vue, Svelte, Solid, or other frameworks
|
|
1079
|
+
- **Testing** — verify generated DOM structure without rendering in a browser
|
|
1080
|
+
- **Server-side rendering** — produce HTML from NodeDescriptor trees in Node.js
|
|
1081
|
+
- **Custom integrations** — any scenario where you need the complete UX4G markup structure as data
|
|
1082
|
+
|
|
1083
|
+
### Import
|
|
1084
|
+
|
|
1085
|
+
```ts
|
|
1086
|
+
import { generateDropdownDOM, generateAccordionDOM, generateTabsDOM } from 'ux4g-components-web/dom-generators';
|
|
1087
|
+
```
|
|
1088
|
+
|
|
1089
|
+
### Usage Example
|
|
1090
|
+
|
|
1091
|
+
```ts
|
|
1092
|
+
import { generateDropdownDOM } from 'ux4g-components-web/dom-generators';
|
|
1093
|
+
|
|
1094
|
+
const descriptor = generateDropdownDOM({
|
|
1095
|
+
options: [
|
|
1096
|
+
{ label: 'Option 1', value: '1' },
|
|
1097
|
+
{ label: 'Option 2', value: '2' },
|
|
1098
|
+
{ label: 'Option 3', value: '3', disabled: true },
|
|
1099
|
+
],
|
|
1100
|
+
value: '1',
|
|
1101
|
+
placeholder: 'Select...',
|
|
1102
|
+
size: 'md',
|
|
1103
|
+
state: 'default',
|
|
1104
|
+
});
|
|
1105
|
+
|
|
1106
|
+
// descriptor is a NodeDescriptor tree:
|
|
1107
|
+
// { tag: 'div', props: { className: '...', ... }, children: [...] }
|
|
1108
|
+
```
|
|
1109
|
+
|
|
1110
|
+
### Available Generator Functions
|
|
1111
|
+
|
|
1112
|
+
| Function | Component |
|
|
1113
|
+
|---|---|
|
|
1114
|
+
| `generateDropdownDOM()` | Dropdown |
|
|
1115
|
+
| `generateAccordionDOM()` | Accordion |
|
|
1116
|
+
| `generateTabsDOM()` | Tabs |
|
|
1117
|
+
| `generateModalDOM()` | Modal |
|
|
1118
|
+
| `generateCarouselDOM()` | Carousel |
|
|
1119
|
+
| `generateDatePickerDOM()` | Date Picker |
|
|
1120
|
+
| `generateTimePickerDOM()` | Time Picker |
|
|
1121
|
+
| `generateDrawerDOM()` | Drawer |
|
|
1122
|
+
| `generateComboboxDOM()` | Combobox |
|
|
1123
|
+
| `generateSearchDOM()` | Search |
|
|
1124
|
+
| `generateOtpDOM()` | OTP Input |
|
|
1125
|
+
| `generateProgressDOM()` | Progress Indicator |
|
|
1126
|
+
| `generateFileUploadDOM()` | File Upload |
|
|
1127
|
+
| `generateTableDOM()` | Table |
|
|
1128
|
+
| `generateStepperDOM()` | Stepper |
|
|
1129
|
+
| `generatePopoverDOM()` | Popover |
|
|
1130
|
+
| `generateTooltipDOM()` | Tooltip |
|
|
1131
|
+
| `generateAvatarDOM()` | Avatar |
|
|
1132
|
+
| `generateChipDOM()` | Chip |
|
|
1133
|
+
|
|
1134
|
+
### NodeDescriptor Type
|
|
1135
|
+
|
|
1136
|
+
```ts
|
|
1137
|
+
interface NodeDescriptor {
|
|
1138
|
+
tag: string;
|
|
1139
|
+
props: Record<string, string | boolean | number | undefined>;
|
|
1140
|
+
children: (NodeDescriptor | string)[];
|
|
1141
|
+
}
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
Each function returns a `NodeDescriptor` tree that includes all CSS classes, `data-ux4g-*` attributes for Runtime JS compatibility, and ARIA attributes for accessibility. Convert the tree to actual DOM using your framework's element creation API (e.g., `React.createElement`, Angular `Renderer2`, or `document.createElement`).
|
|
1145
|
+
|
|
1146
|
+
> **Note:** DOM Generators are pure functions with no framework dependencies. They import Class Builder functions from `./types` internally. Invalid props throw a `DOMGeneratorValidationError` with a descriptive message.
|
|
1147
|
+
|
|
1148
|
+
---
|
|
1149
|
+
|
|
1074
1150
|
## Related Packages
|
|
1075
1151
|
|
|
1076
1152
|
- [`ux4g-components-react`](https://www.npmjs.com/package/ux4g-components-react) — React wrapper components
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration tests for CSS bundle
|
|
3
|
+
* Validates: Requirements 2.7, 2.9
|
|
4
|
+
*
|
|
5
|
+
* These tests verify that the built styles/ux4g.css contains the expected
|
|
6
|
+
* selectors for dark theme support and button disabled states.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: The CSS bundle is currently built from placeholder files, so these
|
|
9
|
+
* tests will fail until real CSS is in place — that is expected.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|