@tailng-ui/primitives 0.1.0 → 0.11.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 (99) hide show
  1. package/package.json +9 -3
  2. package/src/index.d.ts +5 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.js +2 -1
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  9. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +2 -1
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  12. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +1 -0
  13. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  14. package/src/lib/feedback/skeleton/tng-skeleton.js +4 -0
  15. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  16. package/src/lib/form/chips/tng-chips.d.ts +53 -1
  17. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  18. package/src/lib/form/chips/tng-chips.js +281 -1
  19. package/src/lib/form/chips/tng-chips.js.map +1 -1
  20. package/src/lib/form/input-otp/tng-input-otp.d.ts +22 -0
  21. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  22. package/src/lib/form/input-otp/tng-input-otp.js +105 -1
  23. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  24. package/src/lib/form/label/tng-label.d.ts +2 -0
  25. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  26. package/src/lib/form/label/tng-label.js +9 -0
  27. package/src/lib/form/label/tng-label.js.map +1 -1
  28. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +1 -0
  29. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  30. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +26 -0
  31. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  32. package/src/lib/form/radio/tng-radio.d.ts +26 -0
  33. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  34. package/src/lib/form/radio/tng-radio.js +129 -1
  35. package/src/lib/form/radio/tng-radio.js.map +1 -1
  36. package/src/lib/form/textarea/tng-textarea.d.ts +6 -14
  37. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  38. package/src/lib/form/textarea/tng-textarea.js +42 -85
  39. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  40. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  41. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  42. package/src/lib/layout/accordion/tng-accordion.js +113 -0
  43. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  44. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +20 -0
  45. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -0
  46. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +106 -0
  47. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -0
  48. package/src/lib/layout/tree/index.d.ts +5 -0
  49. package/src/lib/layout/tree/index.d.ts.map +1 -0
  50. package/src/lib/layout/tree/index.js +5 -0
  51. package/src/lib/layout/tree/index.js.map +1 -0
  52. package/src/lib/layout/tree/tng-tree-group.d.ts +10 -0
  53. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -0
  54. package/src/lib/layout/tree/tng-tree-group.js +29 -0
  55. package/src/lib/layout/tree/tng-tree-group.js.map +1 -0
  56. package/src/lib/layout/tree/tng-tree-indicator.d.ts +8 -0
  57. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -0
  58. package/src/lib/layout/tree/tng-tree-indicator.js +36 -0
  59. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -0
  60. package/src/lib/layout/tree/tng-tree-item.d.ts +36 -0
  61. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -0
  62. package/src/lib/layout/tree/tng-tree-item.js +139 -0
  63. package/src/lib/layout/tree/tng-tree-item.js.map +1 -0
  64. package/src/lib/layout/tree/tng-tree.d.ts +64 -1
  65. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  66. package/src/lib/layout/tree/tng-tree.js +536 -1
  67. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  68. package/src/lib/layout/tree/tng-tree.transforms.d.ts +10 -0
  69. package/src/lib/layout/tree/tng-tree.transforms.d.ts.map +1 -0
  70. package/src/lib/layout/tree/tng-tree.transforms.js +46 -0
  71. package/src/lib/layout/tree/tng-tree.transforms.js.map +1 -0
  72. package/src/lib/overlay/dialog/tng-dialog.d.ts +158 -0
  73. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -0
  74. package/src/lib/overlay/dialog/tng-dialog.js +854 -0
  75. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -0
  76. package/src/lib/overlay/popover/tng-popover.d.ts +121 -0
  77. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -0
  78. package/src/lib/overlay/popover/tng-popover.js +614 -0
  79. package/src/lib/overlay/popover/tng-popover.js.map +1 -0
  80. package/src/lib/overlay/tng-overlay-runtime.d.ts +11 -0
  81. package/src/lib/overlay/tng-overlay-runtime.d.ts.map +1 -0
  82. package/src/lib/overlay/tng-overlay-runtime.js +6 -0
  83. package/src/lib/overlay/tng-overlay-runtime.js.map +1 -0
  84. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +92 -3
  85. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  86. package/src/lib/overlay/tooltip/tng-tooltip.js +474 -3
  87. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  88. package/src/lib/utility/badge/tng-badge.d.ts +6 -0
  89. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  90. package/src/lib/utility/badge/tng-badge.js +65 -0
  91. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  92. package/src/lib/utility/copy/tng-copy.d.ts +21 -10
  93. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  94. package/src/lib/utility/copy/tng-copy.js +117 -88
  95. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  96. package/src/lib/utility/tag/tng-tag.d.ts +37 -0
  97. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  98. package/src/lib/utility/tag/tng-tag.js +195 -1
  99. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -0,0 +1,46 @@
1
+ import { booleanAttribute } from '@angular/core';
2
+ export function normalizeTreeSelectionMode(value) {
3
+ if (value === 'multiple')
4
+ return 'multiple';
5
+ if (value === 'single')
6
+ return 'single';
7
+ return 'none';
8
+ }
9
+ export function normalizeTreeOrientation(value) {
10
+ return value === 'horizontal' ? 'horizontal' : 'vertical';
11
+ }
12
+ export function normalizeTreeBooleanInput(value) {
13
+ if (typeof value === 'boolean')
14
+ return value;
15
+ if (typeof value === 'string') {
16
+ const normalized = value.trim().toLowerCase();
17
+ if (normalized === '' || normalized === 'true')
18
+ return true;
19
+ if (normalized === 'false')
20
+ return false;
21
+ }
22
+ return false;
23
+ }
24
+ export function normalizeTreeValue(value) {
25
+ if (typeof value === 'number')
26
+ return value;
27
+ if (typeof value === 'string')
28
+ return value;
29
+ return String(value);
30
+ }
31
+ export function normalizeTreeValueInput(value) {
32
+ if (value === undefined)
33
+ return undefined;
34
+ if (value === null)
35
+ return null;
36
+ if (Array.isArray(value))
37
+ return value.map((entry) => normalizeTreeValue(entry));
38
+ return normalizeTreeValue(value);
39
+ }
40
+ export function normalizeOptionalBooleanAttribute(value) {
41
+ if (value === undefined) {
42
+ return undefined;
43
+ }
44
+ return booleanAttribute(value);
45
+ }
46
+ //# sourceMappingURL=tng-tree.transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-tree.transforms.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree.transforms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC5C,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5D,IAAI,UAAU,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAc;IAEd,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import { booleanAttribute } from '@angular/core';\n\nexport type TngTreeSelectionMode = 'single' | 'multiple' | 'none';\nexport type TngTreeOrientation = 'vertical' | 'horizontal';\nexport type TngTreeValue = string | number;\n\nexport function normalizeTreeSelectionMode(value: unknown): TngTreeSelectionMode {\n if (value === 'multiple') return 'multiple';\n if (value === 'single') return 'single';\n return 'none';\n}\n\nexport function normalizeTreeOrientation(value: unknown): TngTreeOrientation {\n return value === 'horizontal' ? 'horizontal' : 'vertical';\n}\n\nexport function normalizeTreeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') return value;\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') return true;\n if (normalized === 'false') return false;\n }\n return false;\n}\n\nexport function normalizeTreeValue(value: unknown): TngTreeValue {\n if (typeof value === 'number') return value;\n if (typeof value === 'string') return value;\n return String(value);\n}\n\nexport function normalizeTreeValueInput(\n value: unknown,\n): TngTreeValue | readonly TngTreeValue[] | null | undefined {\n if (value === undefined) return undefined;\n if (value === null) return null;\n if (Array.isArray(value)) return value.map((entry) => normalizeTreeValue(entry));\n return normalizeTreeValue(value);\n}\n\nexport function normalizeOptionalBooleanAttribute(value: unknown): boolean | undefined {\n if (value === undefined) {\n return undefined;\n }\n return booleanAttribute(value);\n}\n"]}
@@ -0,0 +1,158 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ export type TngDialogAutoFocus = 'dialog' | 'first-focusable' | 'none';
3
+ export type TngDialogCloseReason = 'backdrop' | 'close-button' | 'escape' | 'programmatic';
4
+ export type TngDialogSize = 'lg' | 'md' | 'sm';
5
+ type OptionalBooleanInput = boolean | null | string | undefined;
6
+ export declare function resolveTngDialogActiveElement(documentRef: unknown): HTMLElement | null;
7
+ export declare function resolveTngDialogFocusableElements(container: unknown): readonly HTMLElement[];
8
+ export declare function resolveTngDialogMarkedInitialElement(container: unknown): HTMLElement | null;
9
+ export declare class TngDialog implements OnDestroy, OnInit {
10
+ readonly openInput: import("@angular/core").InputSignalWithTransform<boolean | undefined, OptionalBooleanInput>;
11
+ readonly defaultOpen: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
12
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
13
+ readonly dismissible: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
14
+ readonly closeOnBackdropClick: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
15
+ readonly closeOnEscape: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
16
+ readonly restoreFocus: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
17
+ readonly autoFocus: import("@angular/core").InputSignalWithTransform<TngDialogAutoFocus, string>;
18
+ readonly trapFocus: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
19
+ readonly lockScroll: import("@angular/core").InputSignalWithTransform<boolean, OptionalBooleanInput>;
20
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
21
+ readonly ariaLabelledby: import("@angular/core").InputSignal<string | null>;
22
+ readonly ariaDescribedby: import("@angular/core").InputSignal<string | null>;
23
+ readonly size: import("@angular/core").InputSignal<TngDialogSize>;
24
+ readonly openChange: import("@angular/core").OutputEmitterRef<boolean>;
25
+ readonly closed: import("@angular/core").OutputEmitterRef<TngDialogCloseReason>;
26
+ private readonly hostRef;
27
+ private readonly documentRef;
28
+ private readonly injector;
29
+ private readonly instanceId;
30
+ private readonly scrollLock;
31
+ private readonly uncontrolledOpen;
32
+ private readonly openStateEffect;
33
+ private initialized;
34
+ private isActive;
35
+ private isFocusLayerRegistered;
36
+ private isOverlayLayerRegistered;
37
+ private panelElement;
38
+ private panelElementId;
39
+ private registeredTitleId;
40
+ private registeredDescriptionId;
41
+ protected readonly dataSlot = "dialog";
42
+ protected get dataOpenAttr(): 'false' | 'true';
43
+ protected get dataStateAttr(): 'closed' | 'open';
44
+ protected get dataDisabledAttr(): '' | null;
45
+ protected get dataSizeAttr(): TngDialogSize;
46
+ ngOnInit(): void;
47
+ ngOnDestroy(): void;
48
+ isOpen(): boolean;
49
+ openDialog(): void;
50
+ closeDialog(reason?: TngDialogCloseReason): void;
51
+ toggleDialog(force?: boolean): void;
52
+ requestClose(reason: TngDialogCloseReason): void;
53
+ registerPanel(panel: HTMLElement, id: string): void;
54
+ unregisterPanel(panel: HTMLElement): void;
55
+ registerTitle(id: string): void;
56
+ unregisterTitle(id: string): void;
57
+ registerDescription(id: string): void;
58
+ unregisterDescription(id: string): void;
59
+ getPanelId(): string | null;
60
+ resolveAriaLabelledby(): string | null;
61
+ resolveAriaDescribedby(): string | null;
62
+ onBackdropPointerDown(event: PointerEvent): void;
63
+ trapTabNavigation(event: unknown): void;
64
+ recordFocusedElement(target: unknown): void;
65
+ private activateDialog;
66
+ private deactivateDialog;
67
+ private focusInitialElement;
68
+ private isControlled;
69
+ private setOpenState;
70
+ private shouldCloseFromBackdrop;
71
+ private shouldCloseFromEscape;
72
+ private activateModalIsolation;
73
+ private deactivateModalIsolation;
74
+ private registerOverlayLayer;
75
+ private unregisterOverlayLayer;
76
+ private activateFocusLayer;
77
+ private deactivateFocusLayer;
78
+ private registerFocusLayer;
79
+ private unregisterFocusLayer;
80
+ private resolveFocusableMemberIds;
81
+ private ensureElementId;
82
+ private resolveElementById;
83
+ }
84
+ export declare class TngDialogPanel implements OnDestroy, OnInit {
85
+ private readonly dialog;
86
+ private readonly hostRef;
87
+ private readonly resolvedId;
88
+ protected readonly dataSlot = "dialog-panel";
89
+ protected get dataOpenAttr(): 'false' | 'true';
90
+ protected get dataSizeAttr(): TngDialogSize;
91
+ protected get dataStateAttr(): 'closed' | 'open';
92
+ protected get hiddenAttr(): '' | null;
93
+ protected get idAttr(): string;
94
+ protected readonly roleAttr = "dialog";
95
+ protected readonly tabindexAttr = "-1";
96
+ protected get ariaDescribedByAttr(): string | null;
97
+ protected get ariaLabelAttr(): string | null;
98
+ protected get ariaLabelledByAttr(): string | null;
99
+ protected get ariaModalAttr(): 'true' | null;
100
+ ngOnInit(): void;
101
+ ngOnDestroy(): void;
102
+ protected onKeydown(event: KeyboardEvent): void;
103
+ protected onFocusIn(target: unknown): void;
104
+ }
105
+ export declare class TngDialogBackdrop {
106
+ private readonly dialog;
107
+ protected readonly dataSlot = "dialog-backdrop";
108
+ protected get dataOpenAttr(): 'false' | 'true';
109
+ protected get dataStateAttr(): 'closed' | 'open';
110
+ protected get hiddenAttr(): '' | null;
111
+ protected onPointerDown(event: PointerEvent): void;
112
+ }
113
+ export declare class TngDialogTrigger {
114
+ private readonly parentDialog;
115
+ readonly dialogFor: import("@angular/core").InputSignal<TngDialog | null>;
116
+ protected readonly ariaHasPopupAttr = "dialog";
117
+ protected get ariaControlsAttr(): string | null;
118
+ protected get ariaExpandedAttr(): 'false' | 'true';
119
+ protected readonly dataSlot = "dialog-trigger";
120
+ protected get dataOpenAttr(): 'false' | 'true';
121
+ protected get dataStateAttr(): 'closed' | 'open';
122
+ protected get dataDisabledAttr(): '' | null;
123
+ protected onClick(): void;
124
+ private resolveDialog;
125
+ }
126
+ export declare class TngDialogTitle implements OnDestroy, OnInit {
127
+ private readonly dialog;
128
+ private readonly hostRef;
129
+ private readonly resolvedId;
130
+ protected readonly dataSlot = "dialog-title";
131
+ protected get idAttr(): string;
132
+ ngOnInit(): void;
133
+ ngOnDestroy(): void;
134
+ }
135
+ export declare class TngDialogDescription implements OnDestroy, OnInit {
136
+ private readonly dialog;
137
+ private readonly hostRef;
138
+ private readonly resolvedId;
139
+ protected readonly dataSlot = "dialog-description";
140
+ protected get idAttr(): string;
141
+ ngOnInit(): void;
142
+ ngOnDestroy(): void;
143
+ }
144
+ export declare class TngDialogContent {
145
+ protected readonly dataSlot = "dialog-content";
146
+ }
147
+ export declare class TngDialogActions {
148
+ protected readonly dataSlot = "dialog-actions";
149
+ }
150
+ export declare class TngDialogClose {
151
+ private readonly dialog;
152
+ readonly closeReason: import("@angular/core").InputSignal<string | null>;
153
+ protected readonly dataSlot = "dialog-close";
154
+ protected onClick(): void;
155
+ private resolveCloseReason;
156
+ }
157
+ export {};
158
+ //# sourceMappingURL=tng-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/overlay/dialog/tng-dialog.ts"],"names":[],"mappings":"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"}