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,654 @@
1
+ declare module "dom-generators/types" {
2
+ /**
3
+ * Represents a single DOM element in a tree structure.
4
+ * DOM Generator functions return trees of NodeDescriptor objects
5
+ * which framework wrappers convert to rendered output.
6
+ */
7
+ export interface NodeDescriptor {
8
+ tag: string;
9
+ props: {
10
+ className?: string;
11
+ id?: string;
12
+ role?: string;
13
+ tabIndex?: number;
14
+ [key: string]: string | boolean | number | undefined;
15
+ };
16
+ children: (NodeDescriptor | string)[];
17
+ }
18
+ /**
19
+ * Error thrown when a DOM Generator receives an invalid prop value.
20
+ * Provides detailed context about which component, prop, and value caused the issue.
21
+ */
22
+ export class DOMGeneratorValidationError extends Error {
23
+ componentName: string;
24
+ propName: string;
25
+ propValue: unknown;
26
+ expectedType: string;
27
+ constructor(componentName: string, propName: string, propValue: unknown, expectedType: string);
28
+ }
29
+ }
30
+ declare module "dom-generators/id-generator" {
31
+ /**
32
+ * Generates a unique ID by combining the given prefix with an incrementing counter.
33
+ * Produces IDs like `ux4g-dropdown-1`, `ux4g-tab-panel-2`, etc.
34
+ */
35
+ export function generateId(prefix: string): string;
36
+ /**
37
+ * Resets the ID counter to zero. Useful for testing to ensure deterministic output.
38
+ */
39
+ export function resetIdCounter(): void;
40
+ }
41
+ declare module "dom-generators/validate" {
42
+ /**
43
+ * Throws if the value is null or undefined.
44
+ */
45
+ export function validateRequired(componentName: string, propName: string, value: unknown): void;
46
+ /**
47
+ * Throws if typeof value does not match the expected type string.
48
+ */
49
+ export function validateType(componentName: string, propName: string, value: unknown, expectedType: string): void;
50
+ /**
51
+ * Throws if the value is not a member of the allowed values set.
52
+ */
53
+ export function validateEnum(componentName: string, propName: string, value: unknown, allowedValues: readonly unknown[]): void;
54
+ /**
55
+ * Throws if the numeric value is outside the given [min, max] range (inclusive).
56
+ */
57
+ export function validateRange(componentName: string, propName: string, value: unknown, min: number, max: number): void;
58
+ /**
59
+ * Throws if the value is not an array.
60
+ */
61
+ export function validateArray(componentName: string, propName: string, value: unknown): void;
62
+ }
63
+ declare module "types" {
64
+ export type ButtonVariant = 'primary' | 'outline-primary' | 'text-primary' | 'tonal-primary' | 'danger' | 'outline-danger' | 'text-danger' | 'tonal-danger' | 'outline-neutral' | 'text-neutral';
65
+ export type ButtonSize = 'xl' | 'lg' | 'md' | 'sm' | 'xs';
66
+ export type ButtonShape = 'rectangle' | 'pill';
67
+ export const VARIANT_CLASS_MAP: Record<ButtonVariant, string>;
68
+ export const SIZE_CLASS_MAP: Record<ButtonSize, string | null>;
69
+ export function buildButtonClasses(variant: ButtonVariant, size: ButtonSize, disabled: boolean, loading: boolean, shape?: ButtonShape, extra?: string): string;
70
+ export type SpinnerVariant = 'primary' | 'inverse' | 'danger';
71
+ export type SpinnerSize = 'xl' | 'lg' | 'md' | 'sm' | 'xs';
72
+ export type SpinnerType = 'full' | 'split' | 'partial';
73
+ export const SPINNER_VARIANT_CLASS_PART: Record<SpinnerVariant, string>;
74
+ export const SPINNER_SIZE_CLASS_PART: Record<SpinnerSize, string>;
75
+ export const SPINNER_TYPE_CLASS_PART: Record<SpinnerType, string>;
76
+ /** Returns the CSS class(es) for a spinner.
77
+ * Base class: `ux4g-spinner-{variant}-{type}` (always present)
78
+ * Size class: `ux4g-spinner-{size}` (omitted when size is 'md' — the default)
79
+ * e.g. `ux4g-spinner-primary-full` (md default)
80
+ * `ux4g-spinner-primary-full ux4g-spinner-xl` (xl size)
81
+ */
82
+ export function buildSpinnerClasses(variant: SpinnerVariant, size: SpinnerSize, type: SpinnerType, extra?: string): string;
83
+ export type LinkVariant = 'default' | 'neutral';
84
+ export type LinkSize = 'sm' | 'md';
85
+ export function buildLinkClasses(variant: LinkVariant, size: LinkSize, extra?: string): string;
86
+ export type BadgeType = 'dot' | 'icon' | 'digit';
87
+ export type BadgeColor = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'secondary' | 'tertiary' | 'neutral';
88
+ export type BadgeSize = 's' | 'm' | 'l' | 'profile-l' | 'profile-xl' | 'profile-2xl' | 'profile-3xl';
89
+ export function buildBadgeClasses(type: BadgeType, color: BadgeColor, size?: BadgeSize, extra?: string): string;
90
+ export type AvatarType = 'status' | 'profile' | 'group';
91
+ export type AvatarSize = 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl';
92
+ export function buildAvatarClasses(avatarType: AvatarType, size?: AvatarSize, extra?: string): string;
93
+ export type ImageRatio = '1-1' | '4-3' | '3-2' | '16-10' | '16-9' | '2-1' | '5-2' | '3-1' | '1-16' | '2-3' | '3-4';
94
+ export type ImageOverlayPosition = 'bottom' | 'top';
95
+ export function buildImageContainerClasses(ratio?: ImageRatio, rounded?: boolean, overlay?: boolean, extra?: string): string;
96
+ export type ChipType = 'filter' | 'choice' | 'input';
97
+ export type ChipSize = 'md' | 'sm' | 'xs';
98
+ export function buildChipClasses(chipType: ChipType, size: ChipSize, active?: boolean, extra?: string): string;
99
+ export type TagVariant = 'tonal' | 'filled' | 'outline' | 'text';
100
+ export type TagColor = 'neutral' | 'brand' | 'success' | 'warning' | 'error' | 'info';
101
+ export function buildTagClasses(variant: TagVariant, color: TagColor, small?: boolean, extra?: string): string;
102
+ export type DividerOrientation = 'horizontal' | 'vertical';
103
+ export function buildDividerClasses(orientation: DividerOrientation, extra?: string): string;
104
+ export type BreadcrumbSeparator = 'divider' | 'icon';
105
+ export function buildBreadcrumbClasses(separator: BreadcrumbSeparator, extra?: string): string;
106
+ export type CheckboxSize = 'sm' | 'md' | 'lg';
107
+ export function buildCheckboxClasses(size: CheckboxSize, error?: boolean, extra?: string): string;
108
+ export type RadioSize = 'sm' | 'md' | 'lg';
109
+ export function buildRadioClasses(size: RadioSize, error?: boolean, extra?: string): string;
110
+ export type SwitchSize = 'sm' | 'md' | 'lg';
111
+ export function buildSwitchClasses(size: SwitchSize, extra?: string): string;
112
+ export type CardVariant = 'solid' | 'outline' | 'no-fill';
113
+ export type CardLayout = 'vertical' | 'horizontal';
114
+ export function buildCardClasses(variant: CardVariant, layout: CardLayout, extra?: string): string;
115
+ export type InputSize = 'sm' | 'md' | 'lg' | 'xl';
116
+ export type InputState = 'default' | 'error' | 'success' | 'warning';
117
+ export function buildInputContainerClasses(size: InputSize, state: InputState, extra?: string): string;
118
+ export type ListVariant = 'default' | 'error' | 'success' | 'warning';
119
+ export type ListSize = 's' | 'm' | 'l' | 'xl';
120
+ export function buildListClasses(variant: ListVariant, size: ListSize, extra?: string): string;
121
+ export type DropdownType = 'selection' | 'button' | 'overflow';
122
+ export type DropdownMode = 'single' | 'multi';
123
+ export type DropdownSize = 'sm' | 'md' | 'lg';
124
+ export type DropdownState = 'default' | 'error' | 'success' | 'warning';
125
+ export function buildDropdownClasses(type: DropdownType, mode: DropdownMode, size: DropdownSize, state: DropdownState, open?: boolean, extra?: string): string;
126
+ export type ComboboxType = 'single' | 'multi';
127
+ export type ComboboxSize = 'sm' | 'md' | 'lg';
128
+ export type ComboboxState = 'default' | 'error' | 'success' | 'warning';
129
+ export function buildComboboxClasses(type: ComboboxType, size: ComboboxSize, state: ComboboxState, open?: boolean, extra?: string): string;
130
+ export type ModalSize = 's' | 'm' | 'l';
131
+ export type ModalOpacity = '25' | '50' | '75';
132
+ export function buildModalBackdropClasses(opacity: ModalOpacity, blur?: boolean, open?: boolean, extra?: string): string;
133
+ export function buildModalBoxClasses(size: ModalSize, centerContent?: boolean, extra?: string): string;
134
+ export type AlertVariant = 'info' | 'success' | 'warning' | 'error';
135
+ export type AlertLayout = 'fluid' | 'center' | 'wide';
136
+ export type AlertPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
137
+ export function buildAlertClasses(variant: AlertVariant, layout?: AlertLayout, extra?: string): string;
138
+ export function buildContextAlertClasses(variant: AlertVariant, extra?: string): string;
139
+ export function buildAlertContainerClasses(position: AlertPosition, extra?: string): string;
140
+ export type SearchSize = 's' | 'm' | 'lg';
141
+ export function buildSearchContainerClasses(size: SearchSize, extra?: string): string;
142
+ export type PaginationVariant = 'default' | 'dotted';
143
+ export type PaginationStyle = 'default' | 'solid' | 'translucent';
144
+ export function buildPaginationClasses(variant: PaginationVariant, paginationStyle?: PaginationStyle, extra?: string): string;
145
+ export type TableSize = 's' | 'm' | 'lg';
146
+ export type TableDivider = 'row' | 'column' | 'none';
147
+ export type TableZebra = 'none' | 'rows' | 'cols';
148
+ export function buildTableClasses(size: TableSize, divider?: TableDivider, zebra?: TableZebra, interactive?: boolean, sortable?: boolean, resizable?: boolean, headerBrand?: boolean, extra?: string): string;
149
+ export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
150
+ export function buildPopoverClasses(placement: PopoverPlacement, show?: boolean, extra?: string): string;
151
+ export type TooltipPlacement = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-center' | 'right-center';
152
+ export type TooltipSize = 's' | 'xs';
153
+ export function buildTooltipClasses(placement: TooltipPlacement, size: TooltipSize, extra?: string): string;
154
+ export type TabVariant = 'underline' | 'pill';
155
+ export type TabSize = 'sm' | 'md' | 'lg';
156
+ export function buildTabClasses(variant: TabVariant, size: TabSize, vertical?: boolean, extra?: string): string;
157
+ export type IconButtonVariant = 'primary' | 'outline-primary' | 'tonal-primary' | 'text-primary';
158
+ export type IconButtonSize = 'xl' | 'lg' | 'md' | 'sm' | 'xs';
159
+ export function buildIconButtonClasses(variant: IconButtonVariant, size: IconButtonSize, pill?: boolean, extra?: string): string;
160
+ export function buildAccessibilityBarClasses(extra?: string): string;
161
+ export type AccordionArrowPosition = 'right' | 'left';
162
+ export type AccordionVariant = 'default' | 'bordered';
163
+ export function buildAccordionClasses(arrowPosition?: AccordionArrowPosition, variant?: AccordionVariant, extra?: string): string;
164
+ export type StepperOrientation = 'horizontal' | 'vertical';
165
+ export type StepperAlignment = 'default' | 'center' | 'left';
166
+ export type StepperVariant = 'default' | 'bottom-line' | 'bottom-line-fill' | 'mobile' | 'progress';
167
+ export type StepperSize = 'default' | 's';
168
+ export function buildStepperClasses(orientation?: StepperOrientation, alignment?: StepperAlignment, variant?: StepperVariant, size?: StepperSize, extra?: string): string;
169
+ export type SliderSize = 'sm' | 'md';
170
+ export function buildSliderFieldClasses(size?: SliderSize, extra?: string): string;
171
+ export type DrawerPlacement = 'right' | 'left' | 'top' | 'bottom';
172
+ export function buildDrawerClasses(placement: DrawerPlacement, open?: boolean, extra?: string): string;
173
+ export type DateTimePickerMode = 'date' | 'time';
174
+ export function buildDateTimePickerClasses(mode: DateTimePickerMode, extra?: string): string;
175
+ export type StatusPipelineOrientation = 'horizontal' | 'vertical';
176
+ export type StatusPipelineAlignment = 'default' | 'center' | 'left';
177
+ export type StatusPipelineVariant = 'default' | 'bottom-line' | 'bottom-line-fill' | 'mobile' | 'progress';
178
+ export type StatusPipelineSize = 'default' | 's';
179
+ export function buildStatusPipelineClasses(orientation?: StatusPipelineOrientation, alignment?: StatusPipelineAlignment, variant?: StatusPipelineVariant, size?: StatusPipelineSize, extra?: string): string;
180
+ export type JourneyTimelineOrientation = 'vertical' | 'horizontal';
181
+ export function buildJourneyTimelineClasses(orientation?: JourneyTimelineOrientation, extra?: string): string;
182
+ export function buildFormFieldGroupClasses(extra?: string): string;
183
+ export type OtpInputState = 'default' | 'success' | 'error' | 'locked';
184
+ export function buildOtpInputClasses(state?: OtpInputState, extra?: string): string;
185
+ export type FileUploadState = 'default' | 'default-vle' | 'selecting' | 'scanning' | 'uploaded' | 'uploaded-vle' | 'error';
186
+ export function buildFileUploadClasses(state?: FileUploadState, extra?: string): string;
187
+ export type ProgressIndicatorType = 'bar' | 'circle';
188
+ export type ProgressIndicatorSize = 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl';
189
+ export function buildProgressIndicatorClasses(type: ProgressIndicatorType, extra?: string): string;
190
+ export function buildFeedbackClasses(extra?: string): string;
191
+ export type DraftStatusBannerVariant = 'default' | 'auto' | 'success';
192
+ export function buildDraftStatusBannerClasses(variant?: DraftStatusBannerVariant, extra?: string): string;
193
+ export type SlaProgressIndicatorType = 'circle' | 'linear' | 'badge';
194
+ export function buildSlaProgressIndicatorClasses(type: SlaProgressIndicatorType, extra?: string): string;
195
+ export function buildCarouselClasses(extra?: string): string;
196
+ export function buildEmptyStateClasses(extra?: string): string;
197
+ export type ChipGroupVariant = 'filter' | 'choice';
198
+ export function buildChipGroupClasses(variant?: ChipGroupVariant, active?: boolean, extra?: string): string;
199
+ export function buildNavbarClasses(extra?: string): string;
200
+ export type SocialLinksSize = 'sm' | 'md' | 'lg';
201
+ export function buildSocialLinksClasses(size?: SocialLinksSize, extra?: string): string;
202
+ export type SlotGridVariant = 'weekly' | 'compact';
203
+ export function buildSlotGridClasses(variant?: SlotGridVariant, extra?: string): string;
204
+ export type FooterTheme = 'default' | 'primary' | 'dark';
205
+ export function buildFooterClasses(theme?: FooterTheme, extra?: string): string;
206
+ export type ResultListRowVariation = 'default' | 'v1' | 'v2' | 'v3' | 'v4' | 'v5';
207
+ export function buildResultListRowClasses(variation?: ResultListRowVariation, extra?: string): string;
208
+ /** Returns the CSS class string for the mega-menu root element.
209
+ * Base class: `ux4g-mega-menu` (always present)
210
+ * Dropdown: `ux4g-mega-menu--dropdown` (when dropdown is true)
211
+ * Right: `ux4g-mega-menu--dropdown-right` (only when BOTH dropdown AND dropdownRight are true)
212
+ */
213
+ export function buildMegaMenuClasses(dropdown?: boolean, dropdownRight?: boolean, extra?: string): string;
214
+ /** Returns the CSS class string for the mega-menu wrapper element (dropdown positioning context).
215
+ * Base class: `ux4g-mega-menu-wrapper` (always present)
216
+ * Active: `ux4g-mega-menu-wrapper--active` (when active is true)
217
+ */
218
+ export function buildMegaMenuWrapperClasses(active?: boolean, extra?: string): string;
219
+ }
220
+ declare module "dom-generators/modal" {
221
+ import { NodeDescriptor } from "dom-generators/types";
222
+ import { ModalSize, ModalOpacity } from "types";
223
+ export interface ModalGeneratorProps {
224
+ open?: boolean;
225
+ size?: ModalSize;
226
+ title?: string;
227
+ closable?: boolean;
228
+ backdropOpacity?: ModalOpacity;
229
+ backdropBlur?: boolean;
230
+ }
231
+ /**
232
+ * Generates a complete Modal DOM descriptor tree.
233
+ *
234
+ * Produces a backdrop element and a modal dialog box with `role="dialog"`,
235
+ * `aria-modal="true"`, an optional close button with `data-ux4g-modal-close`,
236
+ * and an optional title heading. Compatible with Runtime_JS
237
+ * MutationObserver-based initialization.
238
+ */
239
+ export function generateModalDOM(props: ModalGeneratorProps): NodeDescriptor;
240
+ }
241
+ declare module "dom-generators/carousel" {
242
+ import { NodeDescriptor } from "dom-generators/types";
243
+ export interface CarouselGeneratorProps {
244
+ slides: Array<{
245
+ content: string;
246
+ label?: string;
247
+ }>;
248
+ activeIndex?: number;
249
+ showIndicators?: boolean;
250
+ showNavigation?: boolean;
251
+ }
252
+ /**
253
+ * Generates a complete Carousel DOM descriptor tree.
254
+ *
255
+ * Produces a root element with `aria-roledescription="carousel"`, slide items with
256
+ * `role="group"` and `aria-roledescription="slide"`, navigation buttons with
257
+ * `data-ux4g-carousel-prev` and `data-ux4g-carousel-next` for Runtime_JS, and
258
+ * indicator dots for slide navigation.
259
+ */
260
+ export function generateCarouselDOM(props: CarouselGeneratorProps): NodeDescriptor;
261
+ }
262
+ declare module "dom-generators/dropdown" {
263
+ import { NodeDescriptor } from "dom-generators/types";
264
+ import { DropdownSize, DropdownState } from "types";
265
+ export interface DropdownGeneratorProps {
266
+ options: Array<{
267
+ label: string;
268
+ value: string;
269
+ disabled?: boolean;
270
+ group?: string;
271
+ }>;
272
+ value?: string | string[];
273
+ placeholder?: string;
274
+ searchable?: boolean;
275
+ multiple?: boolean;
276
+ disabled?: boolean;
277
+ size?: DropdownSize;
278
+ state?: DropdownState;
279
+ open?: boolean;
280
+ }
281
+ /**
282
+ * Generates a complete Dropdown DOM descriptor tree.
283
+ *
284
+ * Produces a trigger button with `data-ux4g-dropdown-toggle`, a menu container
285
+ * with `role="listbox"`, and option items with `role="option"` and `aria-selected`.
286
+ * Compatible with Runtime_JS MutationObserver-based initialization.
287
+ */
288
+ export function generateDropdownDOM(props: DropdownGeneratorProps): NodeDescriptor;
289
+ }
290
+ declare module "dom-generators/tabs" {
291
+ import { NodeDescriptor } from "dom-generators/types";
292
+ import { TabVariant, TabSize } from "types";
293
+ export interface TabsGeneratorProps {
294
+ tabs: Array<{
295
+ label: string;
296
+ content: string;
297
+ disabled?: boolean;
298
+ }>;
299
+ activeIndex?: number;
300
+ variant?: TabVariant;
301
+ size?: TabSize;
302
+ vertical?: boolean;
303
+ }
304
+ /**
305
+ * Generates a complete Tabs DOM descriptor tree.
306
+ *
307
+ * Produces a tablist container with `role="tablist"`, individual tabs with
308
+ * `role="tab"` and `aria-selected`, and corresponding panels with
309
+ * `role="tabpanel"` and `aria-labelledby`.
310
+ */
311
+ export function generateTabsDOM(props: TabsGeneratorProps): NodeDescriptor;
312
+ }
313
+ declare module "dom-generators/accordion" {
314
+ import { NodeDescriptor } from "dom-generators/types";
315
+ import { AccordionArrowPosition, AccordionVariant } from "types";
316
+ export interface AccordionGeneratorProps {
317
+ items: Array<{
318
+ header: string;
319
+ content: string;
320
+ expanded?: boolean;
321
+ disabled?: boolean;
322
+ }>;
323
+ arrowPosition?: AccordionArrowPosition;
324
+ variant?: AccordionVariant;
325
+ multiExpand?: boolean;
326
+ }
327
+ /**
328
+ * Generates a complete Accordion DOM descriptor tree.
329
+ *
330
+ * Produces headers with `data-ux4g-accordion-toggle` for Runtime_JS,
331
+ * panels with unique IDs, aria-expanded on toggles, aria-controls
332
+ * referencing panel IDs, and role="region" on panels.
333
+ */
334
+ export function generateAccordionDOM(props: AccordionGeneratorProps): NodeDescriptor;
335
+ }
336
+ declare module "dom-generators/time-picker" {
337
+ import { NodeDescriptor } from "dom-generators/types";
338
+ export interface TimePickerGeneratorProps {
339
+ value?: string;
340
+ min?: string;
341
+ max?: string;
342
+ step?: number;
343
+ format?: '12h' | '24h';
344
+ }
345
+ /**
346
+ * Generates a complete TimePicker DOM descriptor tree.
347
+ *
348
+ * Produces hour, minute, and (for 12h format) period spinbutton elements
349
+ * with appropriate ARIA attributes: `role="spinbutton"`, `aria-valuemin`,
350
+ * `aria-valuemax`, `aria-valuenow`, and `aria-label`.
351
+ *
352
+ * The root element uses CSS classes from `buildDateTimePickerClasses('time')`.
353
+ */
354
+ export function generateTimePickerDOM(props: TimePickerGeneratorProps): NodeDescriptor;
355
+ }
356
+ declare module "dom-generators/search" {
357
+ import { NodeDescriptor } from "dom-generators/types";
358
+ import { SearchSize } from "types";
359
+ export interface SearchGeneratorProps {
360
+ value?: string;
361
+ placeholder?: string;
362
+ suggestions?: Array<{
363
+ label: string;
364
+ value: string;
365
+ }>;
366
+ showSuggestions?: boolean;
367
+ size?: SearchSize;
368
+ }
369
+ /**
370
+ * Generates a complete Search DOM descriptor tree.
371
+ *
372
+ * Produces a search input with `role="searchbox"`, a clear button visible when
373
+ * there is a value, and a suggestions listbox with `role="listbox"`.
374
+ * Compatible with Runtime_JS MutationObserver-based initialization.
375
+ */
376
+ export function generateSearchDOM(props: SearchGeneratorProps): NodeDescriptor;
377
+ }
378
+ declare module "dom-generators/drawer" {
379
+ import { NodeDescriptor } from "dom-generators/types";
380
+ import { DrawerPlacement } from "types";
381
+ export interface DrawerGeneratorProps {
382
+ open?: boolean;
383
+ placement?: DrawerPlacement;
384
+ title?: string;
385
+ closable?: boolean;
386
+ }
387
+ /**
388
+ * Generates a complete Drawer DOM descriptor tree.
389
+ *
390
+ * Produces a backdrop element and a drawer panel with `role="dialog"`,
391
+ * `aria-modal="true"`, an optional close button with `data-ux4g-drawer-close`,
392
+ * and an optional title heading. Compatible with Runtime_JS
393
+ * MutationObserver-based initialization.
394
+ */
395
+ export function generateDrawerDOM(props: DrawerGeneratorProps): NodeDescriptor;
396
+ }
397
+ declare module "dom-generators/combobox" {
398
+ import { NodeDescriptor } from "dom-generators/types";
399
+ import { ComboboxSize, ComboboxState } from "types";
400
+ export interface ComboboxGeneratorProps {
401
+ options: Array<{
402
+ label: string;
403
+ value: string;
404
+ disabled?: boolean;
405
+ }>;
406
+ value?: string | string[];
407
+ inputValue?: string;
408
+ placeholder?: string;
409
+ multiple?: boolean;
410
+ disabled?: boolean;
411
+ size?: ComboboxSize;
412
+ state?: ComboboxState;
413
+ open?: boolean;
414
+ }
415
+ /**
416
+ * Generates a complete Combobox DOM descriptor tree.
417
+ *
418
+ * Produces an input with `role="combobox"` and `aria-autocomplete="list"`,
419
+ * a listbox with `role="listbox"`, and option items with `role="option"`.
420
+ * Supports `aria-activedescendant` pointing to the first selected option.
421
+ * Compatible with Runtime_JS MutationObserver-based initialization.
422
+ */
423
+ export function generateComboboxDOM(props: ComboboxGeneratorProps): NodeDescriptor;
424
+ }
425
+ declare module "dom-generators/date-picker" {
426
+ import { NodeDescriptor } from "dom-generators/types";
427
+ export interface DatePickerGeneratorProps {
428
+ value?: string;
429
+ min?: string;
430
+ max?: string;
431
+ locale?: string;
432
+ displayMonth?: number;
433
+ displayYear?: number;
434
+ }
435
+ /**
436
+ * Generates a complete DatePicker DOM descriptor tree.
437
+ *
438
+ * Produces a calendar grid with `role="grid"`, day cells with `role="gridcell"`,
439
+ * month/year navigation buttons, weekday column headers with `role="columnheader"`,
440
+ * and full accessibility attributes including `aria-label` on each day cell and
441
+ * `aria-selected`/`aria-disabled` states.
442
+ */
443
+ export function generateDatePickerDOM(props: DatePickerGeneratorProps): NodeDescriptor;
444
+ }
445
+ declare module "dom-generators/stepper" {
446
+ import { NodeDescriptor } from "dom-generators/types";
447
+ import { StepperOrientation, StepperVariant, StepperSize } from "types";
448
+ export interface StepperGeneratorProps {
449
+ steps: Array<{
450
+ label: string;
451
+ description?: string;
452
+ }>;
453
+ activeStep: number;
454
+ orientation?: StepperOrientation;
455
+ variant?: StepperVariant;
456
+ size?: StepperSize;
457
+ }
458
+ /**
459
+ * Generates a complete Stepper DOM descriptor tree.
460
+ *
461
+ * Produces step indicators with completed/current/pending states.
462
+ * Steps before `activeStep` are marked as completed, the step at
463
+ * `activeStep` has `aria-current="step"`, and subsequent steps
464
+ * are marked as pending.
465
+ */
466
+ export function generateStepperDOM(props: StepperGeneratorProps): NodeDescriptor;
467
+ }
468
+ declare module "dom-generators/file-upload" {
469
+ import { NodeDescriptor } from "dom-generators/types";
470
+ import { FileUploadState } from "types";
471
+ export interface FileUploadGeneratorProps {
472
+ files?: Array<{
473
+ name: string;
474
+ size: number;
475
+ }>;
476
+ accept?: string;
477
+ maxSizeBytes?: number;
478
+ multiple?: boolean;
479
+ state?: FileUploadState;
480
+ }
481
+ /**
482
+ * Generates a complete FileUpload DOM descriptor tree.
483
+ *
484
+ * Produces a drop zone with `role="button"`, a visually hidden file input,
485
+ * and a file list displaying name and size of each selected file.
486
+ * Compatible with Runtime_JS MutationObserver-based initialization.
487
+ */
488
+ export function generateFileUploadDOM(props: FileUploadGeneratorProps): NodeDescriptor;
489
+ }
490
+ declare module "dom-generators/progress" {
491
+ import { NodeDescriptor } from "dom-generators/types";
492
+ import { ProgressIndicatorType, ProgressIndicatorSize } from "types";
493
+ export interface ProgressGeneratorProps {
494
+ value: number;
495
+ type?: ProgressIndicatorType;
496
+ size?: ProgressIndicatorSize;
497
+ label?: string;
498
+ }
499
+ /**
500
+ * Generates a complete Progress Indicator DOM descriptor tree.
501
+ *
502
+ * Produces a progress element with `role="progressbar"`,
503
+ * `aria-valuenow`, `aria-valuemin`, and `aria-valuemax`.
504
+ * Supports both 'bar' and 'circle' visualization types.
505
+ */
506
+ export function generateProgressDOM(props: ProgressGeneratorProps): NodeDescriptor;
507
+ }
508
+ declare module "dom-generators/table" {
509
+ import { NodeDescriptor } from "dom-generators/types";
510
+ import { TableSize, TableDivider, TableZebra } from "types";
511
+ export interface TableGeneratorProps {
512
+ columns: Array<{
513
+ key: string;
514
+ label: string;
515
+ sortable?: boolean;
516
+ width?: string;
517
+ }>;
518
+ data: Array<Record<string, unknown>>;
519
+ size?: TableSize;
520
+ divider?: TableDivider;
521
+ zebra?: TableZebra;
522
+ interactive?: boolean;
523
+ }
524
+ /**
525
+ * Generates a complete Table DOM descriptor tree.
526
+ *
527
+ * Produces a `<table>` with `<thead>` containing one `<th>` per column
528
+ * and `<tbody>` containing one `<tr>` per data row, each with one `<td>` per column.
529
+ * Sortable columns receive `aria-sort="none"` on their `<th>`.
530
+ */
531
+ export function generateTableDOM(props: TableGeneratorProps): NodeDescriptor;
532
+ }
533
+ declare module "dom-generators/otp" {
534
+ import { NodeDescriptor } from "dom-generators/types";
535
+ import { OtpInputState } from "types";
536
+ export interface OtpGeneratorProps {
537
+ length: number;
538
+ values?: string[];
539
+ state?: OtpInputState;
540
+ disabled?: boolean;
541
+ }
542
+ /**
543
+ * Generates a complete OTP Input DOM descriptor tree.
544
+ *
545
+ * Produces individual `<input>` cells each accepting a single character,
546
+ * with maxLength=1. The root container gets CSS classes from `buildOtpInputClasses(state)`.
547
+ * When disabled, each cell receives `aria-disabled="true"` and `disabled=true`.
548
+ */
549
+ export function generateOtpDOM(props: OtpGeneratorProps): NodeDescriptor;
550
+ }
551
+ declare module "dom-generators/avatar" {
552
+ import { NodeDescriptor } from "dom-generators/types";
553
+ import { AvatarSize } from "types";
554
+ export interface AvatarNativeGeneratorProps {
555
+ src?: string;
556
+ alt?: string;
557
+ size?: AvatarSize;
558
+ status?: 'online' | 'offline' | 'busy' | 'away';
559
+ fallbackInitials?: string;
560
+ }
561
+ /**
562
+ * Generates a complete Avatar DOM descriptor tree.
563
+ *
564
+ * Produces a container with avatar classes from buildAvatarClasses(),
565
+ * an img element with alt text (or fallback initials span),
566
+ * and an optional status indicator element.
567
+ */
568
+ export function generateAvatarDOM(props: AvatarNativeGeneratorProps): NodeDescriptor;
569
+ }
570
+ declare module "dom-generators/tooltip" {
571
+ import { NodeDescriptor } from "dom-generators/types";
572
+ import { TooltipPlacement, TooltipSize } from "types";
573
+ export interface TooltipGeneratorProps {
574
+ text: string;
575
+ placement?: TooltipPlacement;
576
+ size?: TooltipSize;
577
+ triggerId?: string;
578
+ }
579
+ /**
580
+ * Generates a complete Tooltip DOM descriptor tree.
581
+ *
582
+ * Produces a tooltip container with `role="tooltip"`, an arrow element,
583
+ * `data-ux4g-tooltip` on the trigger element, `data-placement` for positioning,
584
+ * and `aria-describedby` on the trigger referencing the tooltip ID.
585
+ * Compatible with Runtime_JS MutationObserver-based initialization.
586
+ */
587
+ export function generateTooltipDOM(props: TooltipGeneratorProps): NodeDescriptor;
588
+ }
589
+ declare module "dom-generators/chip" {
590
+ import { NodeDescriptor } from "dom-generators/types";
591
+ import { ChipType, ChipSize } from "types";
592
+ export interface ChipNativeGeneratorProps {
593
+ label: string;
594
+ type?: ChipType;
595
+ size?: ChipSize;
596
+ active?: boolean;
597
+ dismissible?: boolean;
598
+ }
599
+ /**
600
+ * Generates a complete Chip DOM descriptor tree.
601
+ *
602
+ * Produces a chip container with CSS classes from `buildChipClasses()`,
603
+ * a label span, and an optional dismiss button with `aria-label="Remove {label}"`.
604
+ */
605
+ export function generateChipDOM(props: ChipNativeGeneratorProps): NodeDescriptor;
606
+ }
607
+ declare module "dom-generators/popover" {
608
+ import { NodeDescriptor } from "dom-generators/types";
609
+ import { PopoverPlacement } from "types";
610
+ export interface PopoverGeneratorProps {
611
+ placement?: PopoverPlacement;
612
+ show?: boolean;
613
+ triggerId?: string;
614
+ }
615
+ /**
616
+ * Generates a complete Popover DOM descriptor tree.
617
+ *
618
+ * Produces a trigger wrapper element with `data-ux4g-popover` and
619
+ * `aria-describedby` referencing the popover content container.
620
+ * The popover container uses CSS classes from `buildPopoverClasses()`
621
+ * for placement and visibility. Compatible with Runtime_JS
622
+ * MutationObserver-based initialization.
623
+ */
624
+ export function generatePopoverDOM(props: PopoverGeneratorProps): NodeDescriptor;
625
+ }
626
+ declare module "dom-generators/index" {
627
+ export { NodeDescriptor, DOMGeneratorValidationError } from "dom-generators/types";
628
+ export { generateId, resetIdCounter } from "dom-generators/id-generator";
629
+ export { validateRequired, validateType, validateEnum, validateRange, validateArray, } from "dom-generators/validate";
630
+ export { generateModalDOM } from "dom-generators/modal";
631
+ export type { ModalGeneratorProps } from "dom-generators/modal";
632
+ export { generateCarouselDOM, CarouselGeneratorProps } from "dom-generators/carousel";
633
+ export { generateDropdownDOM, DropdownGeneratorProps } from "dom-generators/dropdown";
634
+ export { generateTabsDOM, TabsGeneratorProps } from "dom-generators/tabs";
635
+ export { generateAccordionDOM, AccordionGeneratorProps } from "dom-generators/accordion";
636
+ export { generateTimePickerDOM, TimePickerGeneratorProps } from "dom-generators/time-picker";
637
+ export { generateSearchDOM, SearchGeneratorProps } from "dom-generators/search";
638
+ export { generateDrawerDOM, DrawerGeneratorProps } from "dom-generators/drawer";
639
+ export { generateComboboxDOM, ComboboxGeneratorProps } from "dom-generators/combobox";
640
+ export { generateDatePickerDOM, DatePickerGeneratorProps } from "dom-generators/date-picker";
641
+ export { generateStepperDOM, StepperGeneratorProps } from "dom-generators/stepper";
642
+ export { generateFileUploadDOM } from "dom-generators/file-upload";
643
+ export type { FileUploadGeneratorProps } from "dom-generators/file-upload";
644
+ export { generateProgressDOM, ProgressGeneratorProps } from "dom-generators/progress";
645
+ export { generateTableDOM, TableGeneratorProps } from "dom-generators/table";
646
+ export { generateOtpDOM, OtpGeneratorProps } from "dom-generators/otp";
647
+ export { generateAvatarDOM } from "dom-generators/avatar";
648
+ export type { AvatarNativeGeneratorProps } from "dom-generators/avatar";
649
+ export { generateTooltipDOM } from "dom-generators/tooltip";
650
+ export type { TooltipGeneratorProps } from "dom-generators/tooltip";
651
+ export { generateChipDOM } from "dom-generators/chip";
652
+ export type { ChipNativeGeneratorProps } from "dom-generators/chip";
653
+ export { generatePopoverDOM, PopoverGeneratorProps } from "dom-generators/popover";
654
+ }