ngx-com 0.0.21 → 0.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 +137 -33
- package/fesm2022/ngx-com-components-alert.mjs +21 -11
- package/fesm2022/ngx-com-components-alert.mjs.map +1 -1
- package/fesm2022/ngx-com-components-avatar.mjs +9 -7
- package/fesm2022/ngx-com-components-avatar.mjs.map +1 -1
- package/fesm2022/ngx-com-components-button.mjs +1 -1
- package/fesm2022/ngx-com-components-button.mjs.map +1 -1
- package/fesm2022/ngx-com-components-calendar.mjs +27 -3112
- package/fesm2022/ngx-com-components-calendar.mjs.map +1 -1
- package/fesm2022/ngx-com-components-card.mjs +8 -8
- package/fesm2022/ngx-com-components-card.mjs.map +1 -1
- package/fesm2022/ngx-com-components-carousel.mjs +16 -4
- package/fesm2022/ngx-com-components-carousel.mjs.map +1 -1
- package/fesm2022/ngx-com-components-checkbox.mjs +1 -1
- package/fesm2022/ngx-com-components-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-com-components-code-block.mjs +9 -9
- package/fesm2022/ngx-com-components-code-block.mjs.map +1 -1
- package/fesm2022/ngx-com-components-collapsible.mjs +15 -13
- package/fesm2022/ngx-com-components-collapsible.mjs.map +1 -1
- package/fesm2022/ngx-com-components-confirm.mjs +4 -4
- package/fesm2022/ngx-com-components-confirm.mjs.map +1 -1
- package/fesm2022/ngx-com-components-datepicker.mjs +2334 -0
- package/fesm2022/ngx-com-components-datepicker.mjs.map +1 -0
- package/fesm2022/ngx-com-components-dialog.mjs +47 -45
- package/fesm2022/ngx-com-components-dialog.mjs.map +1 -1
- package/fesm2022/ngx-com-components-dropdown.mjs +446 -340
- package/fesm2022/ngx-com-components-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-com-components-empty-state.mjs +5 -3
- package/fesm2022/ngx-com-components-empty-state.mjs.map +1 -1
- package/fesm2022/ngx-com-components-form-field.mjs +11 -6
- package/fesm2022/ngx-com-components-form-field.mjs.map +1 -1
- package/fesm2022/ngx-com-components-icon-lucide.mjs +41 -0
- package/fesm2022/ngx-com-components-icon-lucide.mjs.map +1 -0
- package/fesm2022/ngx-com-components-icon.mjs +89 -61
- package/fesm2022/ngx-com-components-icon.mjs.map +1 -1
- package/fesm2022/ngx-com-components-item.mjs +14 -4
- package/fesm2022/ngx-com-components-item.mjs.map +1 -1
- package/fesm2022/ngx-com-components-menu.mjs +61 -69
- package/fesm2022/ngx-com-components-menu.mjs.map +1 -1
- package/fesm2022/ngx-com-components-native-control.mjs +170 -0
- package/fesm2022/ngx-com-components-native-control.mjs.map +1 -0
- package/fesm2022/ngx-com-components-paginator.mjs +11 -3
- package/fesm2022/ngx-com-components-paginator.mjs.map +1 -1
- package/fesm2022/ngx-com-components-popover.mjs +58 -33
- package/fesm2022/ngx-com-components-popover.mjs.map +1 -1
- package/fesm2022/ngx-com-components-radio.mjs +4 -4
- package/fesm2022/ngx-com-components-radio.mjs.map +1 -1
- package/fesm2022/ngx-com-components-segmented-control.mjs +6 -4
- package/fesm2022/ngx-com-components-segmented-control.mjs.map +1 -1
- package/fesm2022/ngx-com-components-sort.mjs +63 -57
- package/fesm2022/ngx-com-components-sort.mjs.map +1 -1
- package/fesm2022/ngx-com-components-spinner.mjs +6 -6
- package/fesm2022/ngx-com-components-spinner.mjs.map +1 -1
- package/fesm2022/ngx-com-components-switch.mjs +18 -9
- package/fesm2022/ngx-com-components-switch.mjs.map +1 -1
- package/fesm2022/ngx-com-components-table.mjs +23 -9
- package/fesm2022/ngx-com-components-table.mjs.map +1 -1
- package/fesm2022/ngx-com-components-tabs.mjs +81 -58
- package/fesm2022/ngx-com-components-tabs.mjs.map +1 -1
- package/fesm2022/ngx-com-components-timepicker.mjs +1048 -0
- package/fesm2022/ngx-com-components-timepicker.mjs.map +1 -0
- package/fesm2022/ngx-com-components-toast.mjs +18 -14
- package/fesm2022/ngx-com-components-toast.mjs.map +1 -1
- package/fesm2022/ngx-com-components-tooltip.mjs +5 -5
- package/fesm2022/ngx-com-components-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-com-components.mjs +0 -13
- package/fesm2022/ngx-com-components.mjs.map +1 -1
- package/fesm2022/ngx-com-tokens.mjs +0 -8
- package/fesm2022/ngx-com-tokens.mjs.map +1 -1
- package/fesm2022/ngx-com-utils.mjs +13 -1
- package/fesm2022/ngx-com-utils.mjs.map +1 -1
- package/fesm2022/ngx-com.mjs +1 -1
- package/fesm2022/ngx-com.mjs.map +1 -1
- package/package.json +51 -8
- package/styles/animations.css +38 -0
- package/styles/candy.css +121 -0
- package/styles/dark.css +159 -0
- package/styles/forest.css +117 -0
- package/styles/ocean.css +117 -0
- package/styles/themes.css +7 -0
- package/styles/tokens.css +277 -0
- package/styles/utilities.css +16 -0
- package/types/ngx-com-components-alert.d.ts +14 -4
- package/types/ngx-com-components-avatar.d.ts +2 -0
- package/types/ngx-com-components-calendar.d.ts +3 -747
- package/types/ngx-com-components-card.d.ts +2 -2
- package/types/ngx-com-components-carousel.d.ts +11 -1
- package/types/ngx-com-components-code-block.d.ts +4 -4
- package/types/ngx-com-components-collapsible.d.ts +10 -2
- package/types/ngx-com-components-confirm.d.ts +2 -2
- package/types/ngx-com-components-datepicker.d.ts +623 -0
- package/types/ngx-com-components-dialog.d.ts +5 -2
- package/types/ngx-com-components-dropdown.d.ts +22 -4
- package/types/ngx-com-components-empty-state.d.ts +2 -0
- package/types/ngx-com-components-form-field.d.ts +4 -1
- package/types/ngx-com-components-icon-lucide.d.ts +32 -0
- package/types/ngx-com-components-icon.d.ts +49 -35
- package/types/ngx-com-components-item.d.ts +12 -2
- package/types/ngx-com-components-menu.d.ts +38 -38
- package/types/ngx-com-components-native-control.d.ts +99 -0
- package/types/ngx-com-components-paginator.d.ts +2 -0
- package/types/ngx-com-components-popover.d.ts +19 -12
- package/types/ngx-com-components-segmented-control.d.ts +3 -1
- package/types/ngx-com-components-sort.d.ts +13 -10
- package/types/ngx-com-components-switch.d.ts +7 -2
- package/types/ngx-com-components-table.d.ts +16 -2
- package/types/ngx-com-components-tabs.d.ts +46 -34
- package/types/ngx-com-components-timepicker.d.ts +273 -0
- package/types/ngx-com-components-toast.d.ts +4 -2
- package/types/ngx-com-components-tooltip.d.ts +1 -1
- package/types/ngx-com-components.d.ts +6 -7
- package/types/ngx-com-tokens.d.ts +5 -3
- package/types/ngx-com-utils.d.ts +11 -1
- package/types/ngx-com.d.ts +1 -1
|
@@ -7,6 +7,8 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
7
7
|
*
|
|
8
8
|
* Use with the star syntax inside a `comColumnDef` container.
|
|
9
9
|
*
|
|
10
|
+
* @tokens none
|
|
11
|
+
*
|
|
10
12
|
* @example
|
|
11
13
|
* ```html
|
|
12
14
|
* <ng-container comColumnDef="name">
|
|
@@ -32,6 +34,8 @@ interface CellDefContext<T> {
|
|
|
32
34
|
*
|
|
33
35
|
* Use with the star syntax inside a `comColumnDef` container.
|
|
34
36
|
*
|
|
37
|
+
* @tokens none
|
|
38
|
+
*
|
|
35
39
|
* @example
|
|
36
40
|
* ```html
|
|
37
41
|
* <ng-container comColumnDef="name">
|
|
@@ -51,6 +55,8 @@ declare class ComCellDef<T = unknown> {
|
|
|
51
55
|
*
|
|
52
56
|
* Use with the star syntax inside a `comColumnDef` container.
|
|
53
57
|
*
|
|
58
|
+
* @tokens none
|
|
59
|
+
*
|
|
54
60
|
* @example
|
|
55
61
|
* ```html
|
|
56
62
|
* <ng-container comColumnDef="amount">
|
|
@@ -71,6 +77,8 @@ declare class ComFooterCellDef {
|
|
|
71
77
|
*
|
|
72
78
|
* Contains a header cell template, a body cell template, and an optional footer cell template.
|
|
73
79
|
*
|
|
80
|
+
* @tokens none
|
|
81
|
+
*
|
|
74
82
|
* @example
|
|
75
83
|
* ```html
|
|
76
84
|
* <ng-container comColumnDef="name">
|
|
@@ -95,6 +103,8 @@ declare class ComColumnDef {
|
|
|
95
103
|
/**
|
|
96
104
|
* Defines which columns appear in the header row and their order.
|
|
97
105
|
*
|
|
106
|
+
* @tokens none
|
|
107
|
+
*
|
|
98
108
|
* @example
|
|
99
109
|
* ```html
|
|
100
110
|
* <tr comHeaderRowDef="['name', 'email', 'role']"></tr>
|
|
@@ -117,6 +127,8 @@ declare class ComHeaderRowDef {
|
|
|
117
127
|
/**
|
|
118
128
|
* Defines which columns appear in each body row and their order.
|
|
119
129
|
*
|
|
130
|
+
* @tokens none
|
|
131
|
+
*
|
|
120
132
|
* @example
|
|
121
133
|
* ```html
|
|
122
134
|
* <tr comRowDef [comRowDefColumns]="['name', 'email', 'role']"></tr>
|
|
@@ -132,6 +144,8 @@ declare class ComRowDef {
|
|
|
132
144
|
/**
|
|
133
145
|
* Defines which columns appear in the footer row and their order.
|
|
134
146
|
*
|
|
147
|
+
* @tokens none
|
|
148
|
+
*
|
|
135
149
|
* @example
|
|
136
150
|
* ```html
|
|
137
151
|
* <tr comFooterRowDef="['description', 'amount']"></tr>
|
|
@@ -149,6 +163,8 @@ declare class ComFooterRowDef {
|
|
|
149
163
|
*
|
|
150
164
|
* Place inside `com-table`. The template receives the column count for colspan.
|
|
151
165
|
*
|
|
166
|
+
* @tokens none
|
|
167
|
+
*
|
|
152
168
|
* @example
|
|
153
169
|
* ```html
|
|
154
170
|
* <com-table [dataSource]="data()">
|
|
@@ -350,8 +366,6 @@ declare class ComTable<T> {
|
|
|
350
366
|
/** @internal Map of column name → column definition for O(1) lookup. */
|
|
351
367
|
protected readonly columnDefMap: Signal<Map<string, ComColumnDef>>;
|
|
352
368
|
/** @internal Resolved render data — handles both array and DataSource inputs. */
|
|
353
|
-
private readonly dataSourceSignal;
|
|
354
|
-
/** @internal The actual data array to render. */
|
|
355
369
|
readonly renderData: Signal<readonly T[]>;
|
|
356
370
|
/** @internal Header column names. */
|
|
357
371
|
protected readonly headerColumns: Signal<string[]>;
|
|
@@ -6,7 +6,9 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
6
6
|
* Marker directive for custom tab label templates.
|
|
7
7
|
*
|
|
8
8
|
* Provides a custom label template for rich tab headers (icons, badges, counters).
|
|
9
|
-
* Applied to an `<ng-template>` inside `<
|
|
9
|
+
* Applied to an `<ng-template>` inside `<com-tab>`.
|
|
10
|
+
*
|
|
11
|
+
* @tokens none
|
|
10
12
|
*
|
|
11
13
|
* @example
|
|
12
14
|
* ```html
|
|
@@ -20,11 +22,11 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
20
22
|
* </com-tab>
|
|
21
23
|
* ```
|
|
22
24
|
*/
|
|
23
|
-
declare class
|
|
25
|
+
declare class ComTabLabel {
|
|
24
26
|
readonly templateRef: TemplateRef<void>;
|
|
25
|
-
static ngTemplateContextGuard(_dir:
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
27
|
+
static ngTemplateContextGuard(_dir: ComTabLabel, ctx: unknown): ctx is void;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTabLabel, never>;
|
|
29
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComTabLabel, "ng-template[comTabLabel]", never, {}, {}, never, never, true, never>;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -33,6 +35,8 @@ declare class TabLabelDirective {
|
|
|
33
35
|
* Content wrapped in `<ng-template comTabContent>` is only instantiated
|
|
34
36
|
* when the tab becomes active for the first time.
|
|
35
37
|
*
|
|
38
|
+
* @tokens none
|
|
39
|
+
*
|
|
36
40
|
* @example Lazy loaded content
|
|
37
41
|
* ```html
|
|
38
42
|
* <com-tab label="Analytics">
|
|
@@ -55,18 +59,20 @@ declare class TabLabelDirective {
|
|
|
55
59
|
* </com-tab>
|
|
56
60
|
* ```
|
|
57
61
|
*/
|
|
58
|
-
declare class
|
|
62
|
+
declare class ComTabContent {
|
|
59
63
|
readonly templateRef: TemplateRef<void>;
|
|
60
|
-
static ngTemplateContextGuard(_dir:
|
|
61
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
62
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
64
|
+
static ngTemplateContextGuard(_dir: ComTabContent, ctx: unknown): ctx is void;
|
|
65
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTabContent, never>;
|
|
66
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComTabContent, "ng-template[comTabContent]", never, {}, {}, never, never, true, never>;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
/**
|
|
66
70
|
* Individual tab definition component.
|
|
67
71
|
*
|
|
68
72
|
* This is a **definition component** — it doesn't render anything itself.
|
|
69
|
-
* It provides a label and content template to the parent `
|
|
73
|
+
* It provides a label and content template to the parent `ComTabGroup`.
|
|
74
|
+
*
|
|
75
|
+
* @tokens none
|
|
70
76
|
*
|
|
71
77
|
* @example Basic usage
|
|
72
78
|
* ```html
|
|
@@ -102,7 +108,7 @@ declare class TabContentDirective {
|
|
|
102
108
|
* </com-tab>
|
|
103
109
|
* ```
|
|
104
110
|
*/
|
|
105
|
-
declare class
|
|
111
|
+
declare class ComTab {
|
|
106
112
|
/** Plain text label; ignored if `[comTabLabel]` template is provided. */
|
|
107
113
|
readonly label: InputSignal<string>;
|
|
108
114
|
/** Prevents selection when true. */
|
|
@@ -112,12 +118,12 @@ declare class TabComponent {
|
|
|
112
118
|
/** Emitted when the close button is clicked. */
|
|
113
119
|
readonly closed: OutputEmitterRef<void>;
|
|
114
120
|
/** Custom label template (queried from content). */
|
|
115
|
-
readonly customLabel: Signal<
|
|
121
|
+
readonly customLabel: Signal<ComTabLabel | undefined>;
|
|
116
122
|
/** Lazy content template (queried from content). */
|
|
117
|
-
readonly lazyContent: Signal<
|
|
123
|
+
readonly lazyContent: Signal<ComTabContent | undefined>;
|
|
118
124
|
/** Implicit content template from ng-content. */
|
|
119
125
|
readonly implicitContent: Signal<TemplateRef<unknown> | undefined>;
|
|
120
|
-
/** Whether this tab is currently active. Set by
|
|
126
|
+
/** Whether this tab is currently active. Set by ComTabGroup. */
|
|
121
127
|
readonly isActive: WritableSignal<boolean>;
|
|
122
128
|
/** Whether this tab content has been rendered at least once. */
|
|
123
129
|
readonly hasBeenActivated: WritableSignal<boolean>;
|
|
@@ -134,8 +140,8 @@ declare class TabComponent {
|
|
|
134
140
|
* Whether this tab uses lazy loading.
|
|
135
141
|
*/
|
|
136
142
|
readonly isLazy: Signal<boolean>;
|
|
137
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
138
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
143
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTab, never>;
|
|
144
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComTab, "com-tab", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["customLabel", "lazyContent"], ["*"], true, never>;
|
|
139
145
|
}
|
|
140
146
|
|
|
141
147
|
type TabVariant = 'underline' | 'pill' | 'outline' | 'solid';
|
|
@@ -174,7 +180,7 @@ type TabPanelVariants = VariantProps<typeof tabPanelVariants>;
|
|
|
174
180
|
/** Event emitted when the selected tab changes. */
|
|
175
181
|
interface TabChangeEvent {
|
|
176
182
|
index: number;
|
|
177
|
-
tab:
|
|
183
|
+
tab: ComTab;
|
|
178
184
|
}
|
|
179
185
|
/**
|
|
180
186
|
* Tab group component — orchestrates tab state and renders header + panels.
|
|
@@ -223,7 +229,7 @@ interface TabChangeEvent {
|
|
|
223
229
|
* </com-tab-group>
|
|
224
230
|
* ```
|
|
225
231
|
*/
|
|
226
|
-
declare class
|
|
232
|
+
declare class ComTabGroup {
|
|
227
233
|
/** Unique ID for this tab group instance. */
|
|
228
234
|
readonly baseId: string;
|
|
229
235
|
/** Visual treatment of tab buttons. */
|
|
@@ -244,10 +250,10 @@ declare class TabGroupComponent {
|
|
|
244
250
|
readonly selectedTabChange: OutputEmitterRef<TabChangeEvent>;
|
|
245
251
|
/** Emits the index of the focused (not yet selected) tab for keyboard navigation feedback. */
|
|
246
252
|
readonly focusChange: OutputEmitterRef<number>;
|
|
247
|
-
/** All
|
|
248
|
-
readonly tabs: Signal<readonly
|
|
253
|
+
/** All ComTab children. */
|
|
254
|
+
readonly tabs: Signal<readonly ComTab[]>;
|
|
249
255
|
/** The currently active tab. */
|
|
250
|
-
readonly activeTab: Signal<
|
|
256
|
+
readonly activeTab: Signal<ComTab | undefined>;
|
|
251
257
|
/** ID of the active tab button. */
|
|
252
258
|
readonly activeTabId: Signal<string>;
|
|
253
259
|
/** ID of the active panel. */
|
|
@@ -261,12 +267,12 @@ declare class TabGroupComponent {
|
|
|
261
267
|
* Determines whether a tab's content should be rendered.
|
|
262
268
|
* For lazy tabs, content is only rendered after first activation.
|
|
263
269
|
*/
|
|
264
|
-
shouldRenderTab(tab:
|
|
270
|
+
shouldRenderTab(tab: ComTab, _index: number): boolean;
|
|
265
271
|
protected onTabSelected(index: number): void;
|
|
266
272
|
protected onTabFocused(index: number): void;
|
|
267
273
|
protected onTabClosed(index: number): void;
|
|
268
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
269
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
274
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTabGroup, never>;
|
|
275
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComTabGroup, "com-tab-group", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "animationEnabled": { "alias": "animationEnabled"; "required": false; "isSignal": true; }; "preserveContent": { "alias": "preserveContent"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "selectedTabChange": "selectedTabChange"; "focusChange": "focusChange"; }, ["tabs"], never, true, never>;
|
|
270
276
|
}
|
|
271
277
|
|
|
272
278
|
/**
|
|
@@ -275,6 +281,12 @@ declare class TabGroupComponent {
|
|
|
275
281
|
* Applied to anchor or button elements inside `com-tab-nav-bar`.
|
|
276
282
|
* Automatically detects active state from `routerLinkActive` if present.
|
|
277
283
|
*
|
|
284
|
+
* @tokens `--color-primary`, `--color-primary-foreground`, `--color-primary-subtle`,
|
|
285
|
+
* `--color-accent`, `--color-accent-foreground`, `--color-accent-subtle`,
|
|
286
|
+
* `--color-foreground`, `--color-muted-foreground`, `--color-muted`,
|
|
287
|
+
* `--color-border`, `--color-ring`,
|
|
288
|
+
* `--color-disabled`, `--color-disabled-foreground`
|
|
289
|
+
*
|
|
278
290
|
* @example Basic usage with router
|
|
279
291
|
* ```html
|
|
280
292
|
* <nav com-tab-nav-bar>
|
|
@@ -293,7 +305,7 @@ declare class TabGroupComponent {
|
|
|
293
305
|
* <a comTabLink [disabled]="true">Coming Soon</a>
|
|
294
306
|
* ```
|
|
295
307
|
*/
|
|
296
|
-
declare class
|
|
308
|
+
declare class ComTabLink {
|
|
297
309
|
private readonly routerLinkActive;
|
|
298
310
|
private readonly elementRef;
|
|
299
311
|
/** Manual active state control. */
|
|
@@ -321,8 +333,8 @@ declare class TabLinkDirective {
|
|
|
321
333
|
readonly computedClass: Signal<string>;
|
|
322
334
|
/** Focus this tab link element. */
|
|
323
335
|
focus(): void;
|
|
324
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
325
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
336
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTabLink, never>;
|
|
337
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComTabLink, "a[comTabLink], button[comTabLink]", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
326
338
|
}
|
|
327
339
|
|
|
328
340
|
/**
|
|
@@ -351,7 +363,7 @@ declare class TabLinkDirective {
|
|
|
351
363
|
* </nav>
|
|
352
364
|
* ```
|
|
353
365
|
*/
|
|
354
|
-
declare class
|
|
366
|
+
declare class ComTabNavBar {
|
|
355
367
|
private readonly destroyRef;
|
|
356
368
|
/** Unique ID for this nav bar instance. */
|
|
357
369
|
readonly baseId: string;
|
|
@@ -363,8 +375,8 @@ declare class TabNavBarComponent {
|
|
|
363
375
|
readonly color: InputSignal<TabColor>;
|
|
364
376
|
/** Tab alignment within the bar. */
|
|
365
377
|
readonly alignment: InputSignal<TabAlignment>;
|
|
366
|
-
/** All
|
|
367
|
-
readonly tabLinks: Signal<readonly
|
|
378
|
+
/** All ComTabLink children. */
|
|
379
|
+
readonly tabLinks: Signal<readonly ComTabLink[]>;
|
|
368
380
|
readonly scrollContainer: Signal<ElementRef<HTMLElement> | undefined>;
|
|
369
381
|
private readonly scrollLeftValue;
|
|
370
382
|
private readonly containerWidth;
|
|
@@ -374,7 +386,7 @@ declare class TabNavBarComponent {
|
|
|
374
386
|
private keyManager;
|
|
375
387
|
private resizeObserver;
|
|
376
388
|
/** The currently active link. */
|
|
377
|
-
readonly activeLink: Signal<
|
|
389
|
+
readonly activeLink: Signal<ComTabLink | undefined>;
|
|
378
390
|
readonly hasOverflow: Signal<boolean>;
|
|
379
391
|
readonly showScrollLeft: Signal<boolean>;
|
|
380
392
|
readonly showScrollRight: Signal<boolean>;
|
|
@@ -391,9 +403,9 @@ declare class TabNavBarComponent {
|
|
|
391
403
|
private updateScrollState;
|
|
392
404
|
private setupKeyManager;
|
|
393
405
|
private createKeyManagerItems;
|
|
394
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
395
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
406
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTabNavBar, never>;
|
|
407
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComTabNavBar, "com-tab-nav-bar, nav[com-tab-nav-bar]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; }, {}, ["tabLinks"], ["*"], true, never>;
|
|
396
408
|
}
|
|
397
409
|
|
|
398
|
-
export {
|
|
410
|
+
export { ComTab, ComTabContent, ComTabGroup, ComTabLabel, ComTabLink, ComTabNavBar, tabCloseButtonVariants, tabHeaderVariants, tabItemVariants, tabPanelVariants, tabScrollButtonVariants };
|
|
399
411
|
export type { TabAlignment, TabChangeEvent, TabCloseButtonVariants, TabColor, TabHeaderVariants, TabItemVariants, TabPanelVariants, TabScrollButtonVariants, TabSize, TabVariant };
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { ModelSignal, InputSignal, OutputEmitterRef, WritableSignal, Signal } from '@angular/core';
|
|
4
|
+
import { ControlValueAccessor, Validator, NgControl, ValidationErrors } from '@angular/forms';
|
|
5
|
+
import { FormFieldControl, ErrorStateMatcher, FormFieldAppearance } from 'ngx-com/components/form-field';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Types and interfaces for the TimePicker component.
|
|
9
|
+
*/
|
|
10
|
+
/** Value type for the standalone time picker */
|
|
11
|
+
interface ComTimeValue {
|
|
12
|
+
/** Hours (0-23, always stored in 24h format internally) */
|
|
13
|
+
hours: number;
|
|
14
|
+
/** Minutes (0-59) */
|
|
15
|
+
minutes: number;
|
|
16
|
+
/** Seconds (0-59) */
|
|
17
|
+
seconds: number;
|
|
18
|
+
}
|
|
19
|
+
/** Creates a ComTimeValue */
|
|
20
|
+
declare function createTimeValue(hours?: number, minutes?: number, seconds?: number): ComTimeValue;
|
|
21
|
+
/**
|
|
22
|
+
* Compares two ComTimeValue objects.
|
|
23
|
+
* @returns negative if a < b, 0 if equal, positive if a > b
|
|
24
|
+
*/
|
|
25
|
+
declare function compareTime(a: ComTimeValue, b: ComTimeValue): number;
|
|
26
|
+
declare function generateTimePickerId(): string;
|
|
27
|
+
/** Size variants for time picker */
|
|
28
|
+
type TimePickerSize = 'sm' | 'default' | 'lg';
|
|
29
|
+
/** Visual variant */
|
|
30
|
+
type TimePickerVariant = 'standalone' | 'embedded' | 'naked';
|
|
31
|
+
/** Validation state */
|
|
32
|
+
type TimePickerState = 'default' | 'error' | 'success';
|
|
33
|
+
/** Period for 12-hour format */
|
|
34
|
+
type TimePeriod = 'AM' | 'PM';
|
|
35
|
+
/** Segment type */
|
|
36
|
+
type TimeSegment = 'hours' | 'minutes' | 'seconds';
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* CVA variants for the time picker container.
|
|
40
|
+
*
|
|
41
|
+
* @tokens `--color-input-background`, `--color-input-foreground`, `--color-input-border`,
|
|
42
|
+
* `--color-ring`, `--color-warn`, `--color-success`, `--radius-input`
|
|
43
|
+
*/
|
|
44
|
+
declare const timepickerContainerVariants: (props?: {
|
|
45
|
+
variant?: TimePickerVariant;
|
|
46
|
+
size?: TimePickerSize;
|
|
47
|
+
state?: TimePickerState;
|
|
48
|
+
}) => string;
|
|
49
|
+
type TimepickerContainerVariants = VariantProps<typeof timepickerContainerVariants>;
|
|
50
|
+
/**
|
|
51
|
+
* CVA variants for the disabled state of time picker.
|
|
52
|
+
*
|
|
53
|
+
* @tokens `--color-disabled`, `--color-disabled-foreground`
|
|
54
|
+
*/
|
|
55
|
+
declare const timepickerDisabledVariants: () => string;
|
|
56
|
+
type TimepickerDisabledVariants = VariantProps<typeof timepickerDisabledVariants>;
|
|
57
|
+
/**
|
|
58
|
+
* CVA variants for each time segment input.
|
|
59
|
+
*
|
|
60
|
+
* @tokens `--color-primary-subtle`, `--color-primary-subtle-foreground`, `--radius-interactive-sm`
|
|
61
|
+
*/
|
|
62
|
+
declare const timepickerSegmentVariants: (props?: {
|
|
63
|
+
size?: TimePickerSize;
|
|
64
|
+
}) => string;
|
|
65
|
+
type TimepickerSegmentVariants = VariantProps<typeof timepickerSegmentVariants>;
|
|
66
|
+
/**
|
|
67
|
+
* CVA variants for the colon separator.
|
|
68
|
+
*
|
|
69
|
+
* @tokens `--color-muted-foreground`
|
|
70
|
+
*/
|
|
71
|
+
declare const timepickerSeparatorVariants: (props?: {
|
|
72
|
+
size?: TimePickerSize;
|
|
73
|
+
}) => string;
|
|
74
|
+
type TimepickerSeparatorVariants = VariantProps<typeof timepickerSeparatorVariants>;
|
|
75
|
+
/**
|
|
76
|
+
* CVA variants for the AM/PM toggle button.
|
|
77
|
+
*
|
|
78
|
+
* @tokens `--color-muted`, `--color-muted-foreground`, `--color-muted-hover`, `--color-ring`,
|
|
79
|
+
* `--radius-control-sm`
|
|
80
|
+
*/
|
|
81
|
+
declare const timepickerPeriodVariants: (props?: {
|
|
82
|
+
size?: TimePickerSize;
|
|
83
|
+
}) => string;
|
|
84
|
+
type TimepickerPeriodVariants = VariantProps<typeof timepickerPeriodVariants>;
|
|
85
|
+
/**
|
|
86
|
+
* CVA variants for the time section divider in datepicker panel.
|
|
87
|
+
*
|
|
88
|
+
* @tokens `--color-border-subtle`
|
|
89
|
+
*/
|
|
90
|
+
declare const timepickerSectionVariants: (props?: {
|
|
91
|
+
size?: TimePickerSize;
|
|
92
|
+
}) => string;
|
|
93
|
+
type TimepickerSectionVariants = VariantProps<typeof timepickerSectionVariants>;
|
|
94
|
+
/**
|
|
95
|
+
* CVA variants for time labels in date range picker.
|
|
96
|
+
*
|
|
97
|
+
* @tokens `--color-muted-foreground`
|
|
98
|
+
*/
|
|
99
|
+
declare const timepickerLabelVariants: (props?: {
|
|
100
|
+
size?: TimePickerSize;
|
|
101
|
+
}) => string;
|
|
102
|
+
type TimepickerLabelVariants = VariantProps<typeof timepickerLabelVariants>;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Time picker component with segmented numeric input fields.
|
|
106
|
+
* Supports standalone usage with ControlValueAccessor and embedded usage
|
|
107
|
+
* within datepicker/date-range-picker panels.
|
|
108
|
+
*
|
|
109
|
+
* Visual layout: `[HH] : [MM] : [SS] [AM|PM]`
|
|
110
|
+
*
|
|
111
|
+
* @tokens `--color-input-background`, `--color-input-foreground`, `--color-input-border`,
|
|
112
|
+
* `--color-ring`, `--color-primary-subtle`, `--color-primary-subtle-foreground`,
|
|
113
|
+
* `--color-muted`, `--color-muted-foreground`, `--color-muted-hover`,
|
|
114
|
+
* `--color-disabled`, `--color-disabled-foreground`,
|
|
115
|
+
* `--color-warn`, `--color-success`, `--color-border`
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```html
|
|
119
|
+
* <!-- Standalone with reactive forms -->
|
|
120
|
+
* <com-time-picker formControlName="startTime" />
|
|
121
|
+
*
|
|
122
|
+
* <!-- 12-hour format with seconds -->
|
|
123
|
+
* <com-time-picker formControlName="alarm" [use12HourFormat]="true" [showSeconds]="true" />
|
|
124
|
+
*
|
|
125
|
+
* <!-- 15-minute steps -->
|
|
126
|
+
* <com-time-picker formControlName="meeting" [minuteStep]="15" />
|
|
127
|
+
*
|
|
128
|
+
* <!-- Embedded inside datepicker panel -->
|
|
129
|
+
* <com-time-picker variant="embedded" [value]="time" (timeChange)="onTime($event)" />
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
declare class ComTimePicker implements ControlValueAccessor, FormFieldControl<ComTimeValue | null>, Validator {
|
|
133
|
+
private readonly localeId;
|
|
134
|
+
readonly ngControl: NgControl | null;
|
|
135
|
+
private readonly defaultErrorStateMatcher;
|
|
136
|
+
private readonly parentForm;
|
|
137
|
+
private readonly parentFormGroup;
|
|
138
|
+
private readonly timepickerId;
|
|
139
|
+
private readonly hoursInputRef;
|
|
140
|
+
private readonly minutesInputRef;
|
|
141
|
+
private readonly secondsInputRef;
|
|
142
|
+
private readonly periodButtonRef;
|
|
143
|
+
/** Current time value. */
|
|
144
|
+
readonly value: ModelSignal<ComTimeValue | null>;
|
|
145
|
+
/** Whether the time picker is disabled. */
|
|
146
|
+
readonly disabled: ModelSignal<boolean>;
|
|
147
|
+
/** Whether the time picker is required. */
|
|
148
|
+
readonly required: InputSignal<boolean>;
|
|
149
|
+
/** Whether to show the seconds segment. */
|
|
150
|
+
readonly showSeconds: InputSignal<boolean>;
|
|
151
|
+
/** 12h vs 24h format. `null` = auto-detect from locale. */
|
|
152
|
+
readonly use12HourFormat: InputSignal<boolean | null>;
|
|
153
|
+
/** Step interval for minutes. */
|
|
154
|
+
readonly minuteStep: InputSignal<number>;
|
|
155
|
+
/** Step interval for seconds. */
|
|
156
|
+
readonly secondStep: InputSignal<number>;
|
|
157
|
+
/** Minimum selectable time. */
|
|
158
|
+
readonly minTime: InputSignal<ComTimeValue | null>;
|
|
159
|
+
/** Maximum selectable time. */
|
|
160
|
+
readonly maxTime: InputSignal<ComTimeValue | null>;
|
|
161
|
+
/** Visual variant. */
|
|
162
|
+
readonly variant: InputSignal<TimePickerVariant>;
|
|
163
|
+
/** Size variant. */
|
|
164
|
+
readonly size: InputSignal<TimePickerSize>;
|
|
165
|
+
/** Validation state. */
|
|
166
|
+
readonly state: InputSignal<TimePickerState>;
|
|
167
|
+
/** Accessible label for the group. */
|
|
168
|
+
readonly ariaLabel: InputSignal<string | null>;
|
|
169
|
+
/** Additional CSS classes. */
|
|
170
|
+
readonly userClass: InputSignal<string>;
|
|
171
|
+
/** Placeholder text for empty segments. */
|
|
172
|
+
readonly placeholder: InputSignal<string>;
|
|
173
|
+
/** Custom error state matcher for determining when to show errors. */
|
|
174
|
+
readonly errorStateMatcher: InputSignal<ErrorStateMatcher | undefined>;
|
|
175
|
+
readonly touched: ModelSignal<boolean>;
|
|
176
|
+
readonly invalid: InputSignal<boolean>;
|
|
177
|
+
readonly sfErrors: InputSignal<readonly unknown[]>;
|
|
178
|
+
/** Emitted when time value changes. */
|
|
179
|
+
readonly timeChange: OutputEmitterRef<ComTimeValue | null>;
|
|
180
|
+
/** Internal value state. */
|
|
181
|
+
readonly internalValue: WritableSignal<ComTimeValue | null>;
|
|
182
|
+
/** Which segment is currently focused. */
|
|
183
|
+
readonly activeSegment: WritableSignal<TimeSegment | 'period' | null>;
|
|
184
|
+
/** Pending typed digits for auto-advance. */
|
|
185
|
+
readonly pendingDigits: WritableSignal<string>;
|
|
186
|
+
/** Live announcements for screen readers. */
|
|
187
|
+
readonly liveAnnouncement: WritableSignal<string>;
|
|
188
|
+
/** IDs for aria-describedby (set by form-field). */
|
|
189
|
+
private readonly _describedByIds;
|
|
190
|
+
/** Form field appearance (set by form-field). */
|
|
191
|
+
private readonly _appearance;
|
|
192
|
+
/** Whether the time picker is focused. Implements FormFieldControl. */
|
|
193
|
+
readonly focused: Signal<boolean>;
|
|
194
|
+
/** Whether the label should float. */
|
|
195
|
+
readonly shouldLabelFloat: Signal<boolean>;
|
|
196
|
+
/** Whether the control is in an error state. Implements FormFieldControl. */
|
|
197
|
+
readonly errorState: Signal<boolean>;
|
|
198
|
+
/** Structured validation errors from Signal Forms. */
|
|
199
|
+
readonly errors: Signal<readonly unknown[] | null>;
|
|
200
|
+
/** Unique ID for the control (maps to hours input). Implements FormFieldControl. */
|
|
201
|
+
readonly id: Signal<string>;
|
|
202
|
+
/**
|
|
203
|
+
* Effective state combining manual state with automatic error detection.
|
|
204
|
+
*/
|
|
205
|
+
readonly effectiveState: Signal<TimePickerState>;
|
|
206
|
+
/** Combined aria-describedby from form-field. */
|
|
207
|
+
readonly effectiveAriaDescribedBy: Signal<string | null>;
|
|
208
|
+
/** Whether to use 12-hour format. */
|
|
209
|
+
readonly is12Hour: Signal<boolean>;
|
|
210
|
+
/** Current period (AM/PM). */
|
|
211
|
+
readonly period: Signal<TimePeriod>;
|
|
212
|
+
/** Display hours (converted from 24h to 12h when needed). */
|
|
213
|
+
readonly displayHours: Signal<number | null>;
|
|
214
|
+
/** Formatted hours string. */
|
|
215
|
+
readonly formattedHours: Signal<string>;
|
|
216
|
+
/** Formatted minutes string. */
|
|
217
|
+
readonly formattedMinutes: Signal<string>;
|
|
218
|
+
/** Formatted seconds string. */
|
|
219
|
+
readonly formattedSeconds: Signal<string>;
|
|
220
|
+
/** Container classes. */
|
|
221
|
+
readonly containerClasses: Signal<string>;
|
|
222
|
+
/** Segment input classes. */
|
|
223
|
+
readonly segmentClasses: Signal<string>;
|
|
224
|
+
/** Separator classes. */
|
|
225
|
+
readonly separatorClasses: Signal<string>;
|
|
226
|
+
/** Period button classes. */
|
|
227
|
+
readonly periodClasses: Signal<string>;
|
|
228
|
+
private onChange;
|
|
229
|
+
private onTouched;
|
|
230
|
+
private onValidatorChange;
|
|
231
|
+
constructor();
|
|
232
|
+
writeValue(value: ComTimeValue | null): void;
|
|
233
|
+
registerOnChange(fn: (value: ComTimeValue | null) => void): void;
|
|
234
|
+
registerOnTouched(fn: () => void): void;
|
|
235
|
+
setDisabledState(isDisabled: boolean): void;
|
|
236
|
+
validate(): ValidationErrors | null;
|
|
237
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
238
|
+
protected onSegmentFocus(segment: TimeSegment): void;
|
|
239
|
+
protected onSegmentBlur(segment: TimeSegment): void;
|
|
240
|
+
protected onSegmentInput(event: Event, segment: TimeSegment): void;
|
|
241
|
+
protected onSegmentKeydown(event: KeyboardEvent, segment: TimeSegment): void;
|
|
242
|
+
protected onPeriodKeydown(event: KeyboardEvent): void;
|
|
243
|
+
protected togglePeriod(): void;
|
|
244
|
+
/**
|
|
245
|
+
* Called when the form field container is clicked.
|
|
246
|
+
* Implements FormFieldControl.
|
|
247
|
+
*/
|
|
248
|
+
onContainerClick(_event: MouseEvent): void;
|
|
249
|
+
/**
|
|
250
|
+
* Sets the describedBy IDs from the form field.
|
|
251
|
+
* Called by the parent form field component.
|
|
252
|
+
*/
|
|
253
|
+
setDescribedByIds(ids: string): void;
|
|
254
|
+
/**
|
|
255
|
+
* Sets the appearance for styling.
|
|
256
|
+
* Called by the parent form field component.
|
|
257
|
+
*/
|
|
258
|
+
setAppearance(appearance: FormFieldAppearance): void;
|
|
259
|
+
private setPeriod;
|
|
260
|
+
private incrementSegment;
|
|
261
|
+
private handleDigitInput;
|
|
262
|
+
private snapToStep;
|
|
263
|
+
private setSegmentToMin;
|
|
264
|
+
private setSegmentToMax;
|
|
265
|
+
private focusNextSegment;
|
|
266
|
+
private focusPrevSegment;
|
|
267
|
+
private updateValue;
|
|
268
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComTimePicker, never>;
|
|
269
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComTimePicker, "com-time-picker", ["comTimePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "use12HourFormat": { "alias": "use12HourFormat"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "secondStep": { "alias": "secondStep"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "timeChange": "timeChange"; }, never, never, true, never>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export { ComTimePicker, compareTime, createTimeValue, generateTimePickerId, timepickerContainerVariants, timepickerDisabledVariants, timepickerLabelVariants, timepickerPeriodVariants, timepickerSectionVariants, timepickerSegmentVariants, timepickerSeparatorVariants };
|
|
273
|
+
export type { ComTimeValue, TimePeriod, TimePickerSize, TimePickerState, TimePickerVariant, TimeSegment, TimepickerContainerVariants, TimepickerDisabledVariants, TimepickerLabelVariants, TimepickerPeriodVariants, TimepickerSectionVariants, TimepickerSegmentVariants, TimepickerSeparatorVariants };
|
|
@@ -187,7 +187,7 @@ declare function provideComToastConfig(config: ComToastConfig): Provider;
|
|
|
187
187
|
* `--color-warn`, `--color-warn-foreground`,
|
|
188
188
|
* `--color-warn-subtle`, `--color-warn-subtle-foreground`,
|
|
189
189
|
* `--color-primary-subtle`, `--color-primary-subtle-foreground`,
|
|
190
|
-
* `--color-border`, `--shadow-
|
|
190
|
+
* `--color-border`, `--shadow-overlay`, `--radius-card`
|
|
191
191
|
*/
|
|
192
192
|
declare const toastVariants: (props?: {
|
|
193
193
|
type?: ComToastType;
|
|
@@ -207,7 +207,9 @@ declare const toastProgressVariants: (props?: {
|
|
|
207
207
|
/**
|
|
208
208
|
* CVA variants for the toast close button.
|
|
209
209
|
*
|
|
210
|
-
* @tokens `--color-ring`, `--radius-card
|
|
210
|
+
* @tokens `--color-ring`, `--radius-card`,
|
|
211
|
+
* `--color-success-foreground-muted`, `--color-warn-subtle-foreground-muted`,
|
|
212
|
+
* `--color-warn-foreground-muted`, `--color-primary-subtle-foreground-muted`
|
|
211
213
|
*/
|
|
212
214
|
declare const toastCloseButtonVariants: (props?: {
|
|
213
215
|
type?: ComToastType;
|
|
@@ -153,7 +153,7 @@ declare class ComTooltip {
|
|
|
153
153
|
protected onFocusIn(): void;
|
|
154
154
|
protected onFocusOut(): void;
|
|
155
155
|
protected onEscapeKey(): void;
|
|
156
|
-
protected onTouchStart(
|
|
156
|
+
protected onTouchStart(_event: TouchEvent): void;
|
|
157
157
|
/** Called when mouse enters the tooltip panel. */
|
|
158
158
|
private onPanelMouseEnter;
|
|
159
159
|
/** Called when mouse leaves the tooltip panel. */
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ngx-com/components
|
|
3
|
-
* Component exports for ngx-com library
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* This secondary entry point is intentionally empty.
|
|
5
|
+
* Individual components are imported from their own entry points
|
|
6
|
+
* (e.g. `ngx-com/components/button`, `ngx-com/components/calendar`)
|
|
7
|
+
* to enable tree-shaking.
|
|
9
8
|
*/
|
|
10
|
-
|
|
9
|
+
type ComComponentsEntryPoint = never;
|
|
11
10
|
|
|
12
|
-
export {
|
|
11
|
+
export type { ComComponentsEntryPoint };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ngx-com/tokens
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Reserved secondary entry point for design token utilities.
|
|
5
|
+
* Tokens will be added here as needed.
|
|
4
6
|
*/
|
|
5
|
-
|
|
7
|
+
type ComTokensEntryPoint = never;
|
|
6
8
|
|
|
7
|
-
export {
|
|
9
|
+
export type { ComTokensEntryPoint };
|
package/types/ngx-com-utils.d.ts
CHANGED
|
@@ -15,6 +15,16 @@ import { ClassValue } from 'clsx';
|
|
|
15
15
|
*/
|
|
16
16
|
declare function mergeClasses(...inputs: ClassValue[]): string;
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Joins CSS class strings, filtering out null/undefined values.
|
|
20
|
+
* Unlike `mergeClasses` from utils, this does NOT resolve Tailwind conflicts -
|
|
21
|
+
* it simply concatenates class strings. Use when classes are guaranteed not to conflict.
|
|
22
|
+
*
|
|
23
|
+
* @param classes - Class strings (may include null/undefined)
|
|
24
|
+
* @returns Space-separated class string
|
|
25
|
+
*/
|
|
26
|
+
declare function joinClasses(...classes: (string | undefined | null)[]): string;
|
|
27
|
+
|
|
18
28
|
/**
|
|
19
29
|
* A debounced function wrapper with cancel and flush capabilities.
|
|
20
30
|
*
|
|
@@ -420,5 +430,5 @@ declare function partition<T>(array: T[], predicate: (item: T) => boolean): [T[]
|
|
|
420
430
|
*/
|
|
421
431
|
declare function groupBy<K extends string | number | symbol, V>(collection: V[], predicate: (item: V) => K): Record<K, V[]>;
|
|
422
432
|
|
|
423
|
-
export { chunk, debounce, deepClone, deepEqual, deepMerge, groupBy, isPlainObject, mergeClasses, omit, partition, pick, resolvePath, retry, throttle };
|
|
433
|
+
export { chunk, debounce, deepClone, deepEqual, deepMerge, groupBy, isPlainObject, joinClasses, mergeClasses, omit, partition, pick, resolvePath, retry, throttle };
|
|
424
434
|
export type { DebounceOptions, DebouncedFn, ResolvePath, RetryOptions, ThrottledFn };
|