ux4g-components-web 1.4.0 → 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.
Files changed (124) hide show
  1. package/README.md +76 -0
  2. package/dist/__tests__/css-bundle.integration.test.d.ts +11 -0
  3. package/dist/__tests__/css-bundle.integration.test.js +1102 -0
  4. package/dist/__tests__/css-bundle.phase10.property.test.d.ts +9 -0
  5. package/dist/__tests__/css-bundle.phase10.property.test.js +64 -0
  6. package/dist/__tests__/css-bundle.phase5.property.test.d.ts +9 -0
  7. package/dist/__tests__/css-bundle.phase5.property.test.js +126 -0
  8. package/dist/__tests__/css-bundle.phase6.property.test.d.ts +9 -0
  9. package/dist/__tests__/css-bundle.phase6.property.test.js +73 -0
  10. package/dist/__tests__/css-bundle.phase7.property.test.d.ts +9 -0
  11. package/dist/__tests__/css-bundle.phase7.property.test.js +76 -0
  12. package/dist/__tests__/css-bundle.phase8.property.test.d.ts +9 -0
  13. package/dist/__tests__/css-bundle.phase8.property.test.js +67 -0
  14. package/dist/__tests__/css-bundle.phase9.property.test.d.ts +9 -0
  15. package/dist/__tests__/css-bundle.phase9.property.test.js +93 -0
  16. package/dist/__tests__/css-bundle.property.test.d.ts +14 -0
  17. package/dist/__tests__/css-bundle.property.test.js +393 -0
  18. package/dist/__tests__/dom-generators.determinism.property.test.d.ts +1 -0
  19. package/dist/__tests__/dom-generators.determinism.property.test.js +71 -0
  20. package/dist/__tests__/dom-generators.id.property.test.d.ts +1 -0
  21. package/dist/__tests__/dom-generators.id.property.test.js +99 -0
  22. package/dist/__tests__/dom-generators.otp.property.test.d.ts +1 -0
  23. package/dist/__tests__/dom-generators.property.test.d.ts +1 -0
  24. package/dist/__tests__/dom-generators.property.test.js +205 -0
  25. package/dist/__tests__/dom-generators.states.property.test.d.ts +1 -0
  26. package/dist/__tests__/dom-generators.table.property.test.d.ts +1 -0
  27. package/dist/__tests__/dom-generators.tier1.property.test.d.ts +1 -0
  28. package/dist/__tests__/dom-generators.tier1.property.test.js +403 -0
  29. package/dist/__tests__/dom-generators.validation.property.test.d.ts +1 -0
  30. package/dist/__tests__/dom-generators.validation.property.test.js +327 -0
  31. package/dist/__tests__/megamenu.classbuilder.property.test.d.ts +1 -0
  32. package/dist/__tests__/megamenu.classbuilder.property.test.js +88 -0
  33. package/dist/__tests__/smoke.test.d.ts +1 -0
  34. package/dist/__tests__/smoke.test.js +65 -0
  35. package/dist/__tests__/types.phase10.property.test.d.ts +1 -0
  36. package/dist/__tests__/types.phase10.property.test.js +166 -0
  37. package/dist/__tests__/types.phase10.test.d.ts +1 -0
  38. package/dist/__tests__/types.phase10.test.js +76 -0
  39. package/dist/__tests__/types.phase3.property.test.d.ts +1 -0
  40. package/dist/__tests__/types.phase3.property.test.js +83 -0
  41. package/dist/__tests__/types.phase3.test.d.ts +1 -0
  42. package/dist/__tests__/types.phase3.test.js +76 -0
  43. package/dist/__tests__/types.phase4.property.test.d.ts +1 -0
  44. package/dist/__tests__/types.phase4.property.test.js +119 -0
  45. package/dist/__tests__/types.phase4.test.d.ts +1 -0
  46. package/dist/__tests__/types.phase4.test.js +70 -0
  47. package/dist/__tests__/types.phase5.property.test.d.ts +1 -0
  48. package/dist/__tests__/types.phase5.property.test.js +120 -0
  49. package/dist/__tests__/types.phase5.test.d.ts +1 -0
  50. package/dist/__tests__/types.phase5.test.js +64 -0
  51. package/dist/__tests__/types.phase6.property.test.d.ts +1 -0
  52. package/dist/__tests__/types.phase6.property.test.js +189 -0
  53. package/dist/__tests__/types.phase6.test.d.ts +1 -0
  54. package/dist/__tests__/types.phase6.test.js +121 -0
  55. package/dist/__tests__/types.phase7.property.test.d.ts +1 -0
  56. package/dist/__tests__/types.phase7.property.test.js +217 -0
  57. package/dist/__tests__/types.phase7.test.d.ts +1 -0
  58. package/dist/__tests__/types.phase7.test.js +106 -0
  59. package/dist/__tests__/types.phase8.property.test.d.ts +1 -0
  60. package/dist/__tests__/types.phase8.property.test.js +224 -0
  61. package/dist/__tests__/types.phase8.test.d.ts +1 -0
  62. package/dist/__tests__/types.phase8.test.js +114 -0
  63. package/dist/__tests__/types.phase9.property.test.d.ts +1 -0
  64. package/dist/__tests__/types.phase9.property.test.js +347 -0
  65. package/dist/__tests__/types.phase9.test.d.ts +1 -0
  66. package/dist/__tests__/types.phase9.test.js +226 -0
  67. package/dist/__tests__/types.restructure.property.test.d.ts +1 -0
  68. package/dist/__tests__/types.restructure.property.test.js +76 -0
  69. package/dist/__tests__/types.test.d.ts +1 -0
  70. package/dist/__tests__/types.test.js +175 -0
  71. package/dist/dom-generators/accordion.d.ts +23 -0
  72. package/dist/dom-generators/avatar.d.ts +19 -0
  73. package/dist/dom-generators/carousel.d.ts +20 -0
  74. package/dist/dom-generators/chip.d.ts +18 -0
  75. package/dist/dom-generators/combobox.d.ts +28 -0
  76. package/dist/dom-generators/date-picker.d.ts +19 -0
  77. package/dist/dom-generators/dom-generators/accordion.d.ts +21 -0
  78. package/dist/dom-generators/dom-generators/avatar.d.ts +17 -0
  79. package/dist/dom-generators/dom-generators/carousel.d.ts +19 -0
  80. package/dist/dom-generators/dom-generators/chip.d.ts +16 -0
  81. package/dist/dom-generators/dom-generators/combobox.d.ts +26 -0
  82. package/dist/dom-generators/dom-generators/date-picker.d.ts +18 -0
  83. package/dist/dom-generators/dom-generators/drawer.d.ts +17 -0
  84. package/dist/dom-generators/dom-generators/dropdown.d.ts +26 -0
  85. package/dist/dom-generators/dom-generators/file-upload.d.ts +20 -0
  86. package/dist/dom-generators/dom-generators/id-generator.d.ts +9 -0
  87. package/dist/dom-generators/dom-generators/index.d.ts +27 -0
  88. package/dist/dom-generators/dom-generators/modal.d.ts +19 -0
  89. package/dist/dom-generators/dom-generators/otp.d.ts +16 -0
  90. package/dist/dom-generators/dom-generators/popover.d.ts +17 -0
  91. package/dist/dom-generators/dom-generators/progress.d.ts +16 -0
  92. package/dist/dom-generators/dom-generators/search.d.ts +20 -0
  93. package/dist/dom-generators/dom-generators/stepper.d.ts +21 -0
  94. package/dist/dom-generators/dom-generators/table.d.ts +23 -0
  95. package/dist/dom-generators/dom-generators/tabs.d.ts +21 -0
  96. package/dist/dom-generators/dom-generators/time-picker.d.ts +18 -0
  97. package/dist/dom-generators/dom-generators/tooltip.d.ts +17 -0
  98. package/dist/dom-generators/dom-generators/types.d.ts +27 -0
  99. package/dist/dom-generators/dom-generators/validate.d.ts +20 -0
  100. package/dist/dom-generators/drawer.d.ts +19 -0
  101. package/dist/dom-generators/dropdown.d.ts +28 -0
  102. package/dist/dom-generators/file-upload.d.ts +22 -0
  103. package/dist/dom-generators/id-generator.d.ts +9 -0
  104. package/dist/dom-generators/index.bundled.d.ts +654 -0
  105. package/dist/dom-generators/index.cjs +2029 -0
  106. package/dist/dom-generators/index.d.ts +27 -0
  107. package/dist/dom-generators/index.mjs +2001 -0
  108. package/dist/dom-generators/modal.d.ts +21 -0
  109. package/dist/dom-generators/otp.d.ts +18 -0
  110. package/dist/dom-generators/popover.d.ts +19 -0
  111. package/dist/dom-generators/progress.d.ts +18 -0
  112. package/dist/dom-generators/search.d.ts +22 -0
  113. package/dist/dom-generators/stepper.d.ts +23 -0
  114. package/dist/dom-generators/table.d.ts +25 -0
  115. package/dist/dom-generators/tabs.d.ts +23 -0
  116. package/dist/dom-generators/time-picker.d.ts +19 -0
  117. package/dist/dom-generators/tooltip.d.ts +19 -0
  118. package/dist/dom-generators/types.d.ts +155 -0
  119. package/dist/dom-generators/validate.d.ts +20 -0
  120. package/dist/runtime/bootstrap.js +59 -0
  121. package/dist/runtime/index.js +55 -0
  122. package/dist/types.d.ts +155 -0
  123. package/dist/types.js +552 -0
  124. package/package.json +12 -2
@@ -0,0 +1,21 @@
1
+ import { NodeDescriptor } from './types.js';
2
+ import { StepperOrientation, StepperVariant, StepperSize } from '../types.js';
3
+ export interface StepperGeneratorProps {
4
+ steps: Array<{
5
+ label: string;
6
+ description?: string;
7
+ }>;
8
+ activeStep: number;
9
+ orientation?: StepperOrientation;
10
+ variant?: StepperVariant;
11
+ size?: StepperSize;
12
+ }
13
+ /**
14
+ * Generates a complete Stepper DOM descriptor tree.
15
+ *
16
+ * Produces step indicators with completed/current/pending states.
17
+ * Steps before `activeStep` are marked as completed, the step at
18
+ * `activeStep` has `aria-current="step"`, and subsequent steps
19
+ * are marked as pending.
20
+ */
21
+ export declare function generateStepperDOM(props: StepperGeneratorProps): NodeDescriptor;
@@ -0,0 +1,23 @@
1
+ import { NodeDescriptor } from './types.js';
2
+ import { TableSize, TableDivider, TableZebra } from '../types.js';
3
+ export interface TableGeneratorProps {
4
+ columns: Array<{
5
+ key: string;
6
+ label: string;
7
+ sortable?: boolean;
8
+ width?: string;
9
+ }>;
10
+ data: Array<Record<string, unknown>>;
11
+ size?: TableSize;
12
+ divider?: TableDivider;
13
+ zebra?: TableZebra;
14
+ interactive?: boolean;
15
+ }
16
+ /**
17
+ * Generates a complete Table DOM descriptor tree.
18
+ *
19
+ * Produces a `<table>` with `<thead>` containing one `<th>` per column
20
+ * and `<tbody>` containing one `<tr>` per data row, each with one `<td>` per column.
21
+ * Sortable columns receive `aria-sort="none"` on their `<th>`.
22
+ */
23
+ export declare function generateTableDOM(props: TableGeneratorProps): NodeDescriptor;
@@ -0,0 +1,21 @@
1
+ import { NodeDescriptor } from './types.js';
2
+ import { TabVariant, TabSize } from '../types.js';
3
+ export interface TabsGeneratorProps {
4
+ tabs: Array<{
5
+ label: string;
6
+ content: string;
7
+ disabled?: boolean;
8
+ }>;
9
+ activeIndex?: number;
10
+ variant?: TabVariant;
11
+ size?: TabSize;
12
+ vertical?: boolean;
13
+ }
14
+ /**
15
+ * Generates a complete Tabs DOM descriptor tree.
16
+ *
17
+ * Produces a tablist container with `role="tablist"`, individual tabs with
18
+ * `role="tab"` and `aria-selected`, and corresponding panels with
19
+ * `role="tabpanel"` and `aria-labelledby`.
20
+ */
21
+ export declare function generateTabsDOM(props: TabsGeneratorProps): NodeDescriptor;
@@ -0,0 +1,18 @@
1
+ import { NodeDescriptor } from './types.js';
2
+ export interface TimePickerGeneratorProps {
3
+ value?: string;
4
+ min?: string;
5
+ max?: string;
6
+ step?: number;
7
+ format?: '12h' | '24h';
8
+ }
9
+ /**
10
+ * Generates a complete TimePicker DOM descriptor tree.
11
+ *
12
+ * Produces hour, minute, and (for 12h format) period spinbutton elements
13
+ * with appropriate ARIA attributes: `role="spinbutton"`, `aria-valuemin`,
14
+ * `aria-valuemax`, `aria-valuenow`, and `aria-label`.
15
+ *
16
+ * The root element uses CSS classes from `buildDateTimePickerClasses('time')`.
17
+ */
18
+ export declare function generateTimePickerDOM(props: TimePickerGeneratorProps): NodeDescriptor;
@@ -0,0 +1,17 @@
1
+ import { NodeDescriptor } from './types.js';
2
+ import { TooltipPlacement, TooltipSize } from '../types.js';
3
+ export interface TooltipGeneratorProps {
4
+ text: string;
5
+ placement?: TooltipPlacement;
6
+ size?: TooltipSize;
7
+ triggerId?: string;
8
+ }
9
+ /**
10
+ * Generates a complete Tooltip DOM descriptor tree.
11
+ *
12
+ * Produces a tooltip container with `role="tooltip"`, an arrow element,
13
+ * `data-ux4g-tooltip` on the trigger element, `data-placement` for positioning,
14
+ * and `aria-describedby` on the trigger referencing the tooltip ID.
15
+ * Compatible with Runtime_JS MutationObserver-based initialization.
16
+ */
17
+ export declare function generateTooltipDOM(props: TooltipGeneratorProps): NodeDescriptor;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Represents a single DOM element in a tree structure.
3
+ * DOM Generator functions return trees of NodeDescriptor objects
4
+ * which framework wrappers convert to rendered output.
5
+ */
6
+ export interface NodeDescriptor {
7
+ tag: string;
8
+ props: {
9
+ className?: string;
10
+ id?: string;
11
+ role?: string;
12
+ tabIndex?: number;
13
+ [key: string]: string | boolean | number | undefined;
14
+ };
15
+ children: (NodeDescriptor | string)[];
16
+ }
17
+ /**
18
+ * Error thrown when a DOM Generator receives an invalid prop value.
19
+ * Provides detailed context about which component, prop, and value caused the issue.
20
+ */
21
+ export declare class DOMGeneratorValidationError extends Error {
22
+ componentName: string;
23
+ propName: string;
24
+ propValue: unknown;
25
+ expectedType: string;
26
+ constructor(componentName: string, propName: string, propValue: unknown, expectedType: string);
27
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Throws if the value is null or undefined.
3
+ */
4
+ export declare function validateRequired(componentName: string, propName: string, value: unknown): void;
5
+ /**
6
+ * Throws if typeof value does not match the expected type string.
7
+ */
8
+ export declare function validateType(componentName: string, propName: string, value: unknown, expectedType: string): void;
9
+ /**
10
+ * Throws if the value is not a member of the allowed values set.
11
+ */
12
+ export declare function validateEnum(componentName: string, propName: string, value: unknown, allowedValues: readonly unknown[]): void;
13
+ /**
14
+ * Throws if the numeric value is outside the given [min, max] range (inclusive).
15
+ */
16
+ export declare function validateRange(componentName: string, propName: string, value: unknown, min: number, max: number): void;
17
+ /**
18
+ * Throws if the value is not an array.
19
+ */
20
+ export declare function validateArray(componentName: string, propName: string, value: unknown): void;
@@ -0,0 +1,19 @@
1
+ import { NodeDescriptor } from './types';
2
+ import { DrawerPlacement } from '../types.js';
3
+ export interface DrawerGeneratorProps {
4
+ open?: boolean;
5
+ placement?: DrawerPlacement;
6
+ title?: string;
7
+ closable?: boolean;
8
+ }
9
+ /**
10
+ * Generates a complete Drawer DOM descriptor tree.
11
+ *
12
+ * Produces a backdrop element and a drawer panel with `role="dialog"`,
13
+ * `aria-modal="true"`, an optional close button with `data-ux4g-drawer-close`,
14
+ * and an optional title heading. Compatible with Runtime_JS
15
+ * MutationObserver-based initialization.
16
+ */
17
+ export declare function generateDrawerDOM(props: DrawerGeneratorProps): NodeDescriptor;
18
+
19
+
@@ -0,0 +1,28 @@
1
+ import { NodeDescriptor } from './types';
2
+ import { DropdownSize, DropdownState } from '../types.js';
3
+ export interface DropdownGeneratorProps {
4
+ options: Array<{
5
+ label: string;
6
+ value: string;
7
+ disabled?: boolean;
8
+ group?: string;
9
+ }>;
10
+ value?: string | string[];
11
+ placeholder?: string;
12
+ searchable?: boolean;
13
+ multiple?: boolean;
14
+ disabled?: boolean;
15
+ size?: DropdownSize;
16
+ state?: DropdownState;
17
+ open?: boolean;
18
+ }
19
+ /**
20
+ * Generates a complete Dropdown DOM descriptor tree.
21
+ *
22
+ * Produces a trigger button with `data-ux4g-dropdown-toggle`, a menu container
23
+ * with `role="listbox"`, and option items with `role="option"` and `aria-selected`.
24
+ * Compatible with Runtime_JS MutationObserver-based initialization.
25
+ */
26
+ export declare function generateDropdownDOM(props: DropdownGeneratorProps): NodeDescriptor;
27
+
28
+
@@ -0,0 +1,22 @@
1
+ import { NodeDescriptor } from './types';
2
+ import { FileUploadState } from '../types.js';
3
+ export interface FileUploadGeneratorProps {
4
+ files?: Array<{
5
+ name: string;
6
+ size: number;
7
+ }>;
8
+ accept?: string;
9
+ maxSizeBytes?: number;
10
+ multiple?: boolean;
11
+ state?: FileUploadState;
12
+ }
13
+ /**
14
+ * Generates a complete FileUpload DOM descriptor tree.
15
+ *
16
+ * Produces a drop zone with `role="button"`, a visually hidden file input,
17
+ * and a file list displaying name and size of each selected file.
18
+ * Compatible with Runtime_JS MutationObserver-based initialization.
19
+ */
20
+ export declare function generateFileUploadDOM(props: FileUploadGeneratorProps): NodeDescriptor;
21
+
22
+
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generates a unique ID by combining the given prefix with an incrementing counter.
3
+ * Produces IDs like `ux4g-dropdown-1`, `ux4g-tab-panel-2`, etc.
4
+ */
5
+ export declare function generateId(prefix: string): string;
6
+ /**
7
+ * Resets the ID counter to zero. Useful for testing to ensure deterministic output.
8
+ */
9
+ export declare function resetIdCounter(): void;