@tailng-ui/components 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 +26 -0
- package/package.json +14 -0
- package/src/index.d.ts +7 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +7 -0
- package/src/index.js.map +1 -0
- package/src/lib/feedback/empty/tng-empty.component.d.ts +14 -0
- package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -0
- package/src/lib/feedback/empty/tng-empty.component.js +60 -0
- package/src/lib/feedback/empty/tng-empty.component.js.map +1 -0
- package/src/lib/feedback/index.d.ts +11 -0
- package/src/lib/feedback/index.d.ts.map +1 -0
- package/src/lib/feedback/index.js +11 -0
- package/src/lib/feedback/index.js.map +1 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts +10 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +37 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts +14 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +55 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts +10 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.js +33 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -0
- package/src/lib/feedback/toast/tng-toast.component.d.ts +40 -0
- package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -0
- package/src/lib/feedback/toast/tng-toast.component.js +111 -0
- package/src/lib/feedback/toast/tng-toast.component.js.map +1 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts +26 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.js +104 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts +44 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +123 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts +14 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.js +65 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -0
- package/src/lib/form/checkbox/tng-checkbox.component.d.ts +38 -0
- package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -0
- package/src/lib/form/checkbox/tng-checkbox.component.js +138 -0
- package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -0
- package/src/lib/form/chips/tng-chips.component.d.ts +4 -0
- package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -0
- package/src/lib/form/chips/tng-chips.component.js +16 -0
- package/src/lib/form/chips/tng-chips.component.js.map +1 -0
- package/src/lib/form/combobox/tng-combobox.component.d.ts +4 -0
- package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -0
- package/src/lib/form/combobox/tng-combobox.component.js +16 -0
- package/src/lib/form/combobox/tng-combobox.component.js.map +1 -0
- package/src/lib/form/index.d.ts +37 -0
- package/src/lib/form/index.d.ts.map +1 -0
- package/src/lib/form/index.js +37 -0
- package/src/lib/form/index.js.map +1 -0
- package/src/lib/form/input/tng-input.component.d.ts +16 -0
- package/src/lib/form/input/tng-input.component.d.ts.map +1 -0
- package/src/lib/form/input/tng-input.component.js +52 -0
- package/src/lib/form/input/tng-input.component.js.map +1 -0
- package/src/lib/form/input-otp/tng-input-otp.component.d.ts +13 -0
- package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -0
- package/src/lib/form/input-otp/tng-input-otp.component.js +138 -0
- package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -0
- package/src/lib/form/label/tng-label.component.d.ts +8 -0
- package/src/lib/form/label/tng-label.component.d.ts.map +1 -0
- package/src/lib/form/label/tng-label.component.js +29 -0
- package/src/lib/form/label/tng-label.component.js.map +1 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts +55 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +126 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -0
- package/src/lib/form/multiselect/tng-multiselect.component.d.ts +49 -0
- package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -0
- package/src/lib/form/multiselect/tng-multiselect.component.js +112 -0
- package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -0
- package/src/lib/form/radio/tng-radio.component.d.ts +12 -0
- package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -0
- package/src/lib/form/radio/tng-radio.component.js +45 -0
- package/src/lib/form/radio/tng-radio.component.js.map +1 -0
- package/src/lib/form/select/tng-select.component.d.ts +40 -0
- package/src/lib/form/select/tng-select.component.d.ts.map +1 -0
- package/src/lib/form/select/tng-select.component.js +98 -0
- package/src/lib/form/select/tng-select.component.js.map +1 -0
- package/src/lib/form/select/tng-select.slots.d.ts +25 -0
- package/src/lib/form/select/tng-select.slots.d.ts.map +1 -0
- package/src/lib/form/select/tng-select.slots.js +23 -0
- package/src/lib/form/select/tng-select.slots.js.map +1 -0
- package/src/lib/form/slider/tng-slider.component.d.ts +11 -0
- package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -0
- package/src/lib/form/slider/tng-slider.component.js +48 -0
- package/src/lib/form/slider/tng-slider.component.js.map +1 -0
- package/src/lib/form/switch/tng-switch.component.d.ts +18 -0
- package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -0
- package/src/lib/form/switch/tng-switch.component.js +57 -0
- package/src/lib/form/switch/tng-switch.component.js.map +1 -0
- package/src/lib/form/textarea/tng-textarea.component.d.ts +17 -0
- package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -0
- package/src/lib/form/textarea/tng-textarea.component.js +54 -0
- package/src/lib/form/textarea/tng-textarea.component.js.map +1 -0
- package/src/lib/form/toggle/tng-toggle.component.d.ts +39 -0
- package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -0
- package/src/lib/form/toggle/tng-toggle.component.js +152 -0
- package/src/lib/form/toggle/tng-toggle.component.js.map +1 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts +3 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.js +34 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -0
- package/src/lib/layout/accordion/tng-accordion.component.d.ts +11 -0
- package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -0
- package/src/lib/layout/accordion/tng-accordion.component.js +158 -0
- package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts +4 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +16 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -0
- package/src/lib/layout/card/tng-card.component.d.ts +42 -0
- package/src/lib/layout/card/tng-card.component.d.ts.map +1 -0
- package/src/lib/layout/card/tng-card.component.js +186 -0
- package/src/lib/layout/card/tng-card.component.js.map +1 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.d.ts +11 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.js +40 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -0
- package/src/lib/layout/drawer/tng-drawer.component.d.ts +12 -0
- package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -0
- package/src/lib/layout/drawer/tng-drawer.component.js +77 -0
- package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -0
- package/src/lib/layout/grid/tng-grid.component.d.ts +4 -0
- package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -0
- package/src/lib/layout/grid/tng-grid.component.js +16 -0
- package/src/lib/layout/grid/tng-grid.component.js.map +1 -0
- package/src/lib/layout/index.d.ts +16 -0
- package/src/lib/layout/index.d.ts.map +1 -0
- package/src/lib/layout/index.js +16 -0
- package/src/lib/layout/index.js.map +1 -0
- package/src/lib/layout/separator/tng-separator.component.d.ts +6 -0
- package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -0
- package/src/lib/layout/separator/tng-separator.component.js +19 -0
- package/src/lib/layout/separator/tng-separator.component.js.map +1 -0
- package/src/lib/layout/stepper/tng-stepper.component.d.ts +4 -0
- package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -0
- package/src/lib/layout/stepper/tng-stepper.component.js +16 -0
- package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +28 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +86 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts +10 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +29 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts +3 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +15 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts +6 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +16 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts +6 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +18 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts +23 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +155 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +4 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.js +16 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts +10 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +54 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -0
- package/src/lib/navigation/index.d.ts +27 -0
- package/src/lib/navigation/index.d.ts.map +1 -0
- package/src/lib/navigation/index.js +27 -0
- package/src/lib/navigation/index.js.map +1 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts +15 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +85 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -0
- package/src/lib/navigation/menu/tng-menu.component.d.ts +13 -0
- package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/menu/tng-menu.component.js +92 -0
- package/src/lib/navigation/menu/tng-menu.component.js.map +1 -0
- package/src/lib/navigation/menubar/tng-menubar.component.d.ts +5 -0
- package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -0
- package/src/lib/navigation/menubar/tng-menubar.component.js +29 -0
- package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts +4 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +16 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -0
- package/src/lib/navigation/tabs/tng-tabs.component.d.ts +5 -0
- package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -0
- package/src/lib/navigation/tabs/tng-tabs.component.js +41 -0
- package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts +4 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.js +16 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -0
- package/src/lib/overlay/dialog/tng-dialog.component.d.ts +43 -0
- package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -0
- package/src/lib/overlay/dialog/tng-dialog.component.js +286 -0
- package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -0
- package/src/lib/overlay/index.d.ts +7 -0
- package/src/lib/overlay/index.d.ts.map +1 -0
- package/src/lib/overlay/index.js +7 -0
- package/src/lib/overlay/index.js.map +1 -0
- package/src/lib/overlay/popover/tng-popover.component.d.ts +28 -0
- package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -0
- package/src/lib/overlay/popover/tng-popover.component.js +133 -0
- package/src/lib/overlay/popover/tng-popover.component.js.map +1 -0
- package/src/lib/overlay/tng-overlay-runtime.d.ts +11 -0
- package/src/lib/overlay/tng-overlay-runtime.d.ts.map +1 -0
- package/src/lib/overlay/tng-overlay-runtime.js +11 -0
- package/src/lib/overlay/tng-overlay-runtime.js.map +1 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +31 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.js +111 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -0
- package/src/lib/utility/avatar/tng-avatar.component.d.ts +19 -0
- package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -0
- package/src/lib/utility/avatar/tng-avatar.component.js +66 -0
- package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -0
- package/src/lib/utility/badge/tng-badge.component.d.ts +4 -0
- package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -0
- package/src/lib/utility/badge/tng-badge.component.js +13 -0
- package/src/lib/utility/badge/tng-badge.component.js.map +1 -0
- package/src/lib/utility/button/tng-button.component.d.ts +18 -0
- package/src/lib/utility/button/tng-button.component.d.ts.map +1 -0
- package/src/lib/utility/button/tng-button.component.js +32 -0
- package/src/lib/utility/button/tng-button.component.js.map +1 -0
- package/src/lib/utility/code-block/highlighting.d.ts +96 -0
- package/src/lib/utility/code-block/highlighting.d.ts.map +1 -0
- package/src/lib/utility/code-block/highlighting.js +220 -0
- package/src/lib/utility/code-block/highlighting.js.map +1 -0
- package/src/lib/utility/code-block/tng-code-block.component.d.ts +118 -0
- package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -0
- package/src/lib/utility/code-block/tng-code-block.component.js +586 -0
- package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.d.ts +39 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.js +127 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -0
- package/src/lib/utility/index.d.ts +17 -0
- package/src/lib/utility/index.d.ts.map +1 -0
- package/src/lib/utility/index.js +16 -0
- package/src/lib/utility/index.js.map +1 -0
- package/src/lib/utility/tag/tng-tag.component.d.ts +10 -0
- package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -0
- package/src/lib/utility/tag/tng-tag.component.js +18 -0
- package/src/lib/utility/tag/tng-tag.component.js.map +1 -0
- package/src/lib/utility/tree/tng-tree.component.d.ts +72 -0
- package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -0
- package/src/lib/utility/tree/tng-tree.component.js +336 -0
- package/src/lib/utility/tree/tng-tree.component.js.map +1 -0
- package/src/test-setup.d.ts +3 -0
- package/src/test-setup.d.ts.map +1 -0
- package/src/test-setup.js +10 -0
- package/src/test-setup.js.map +1 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { booleanAttribute, Component, input, output } from '@angular/core';
|
|
3
|
+
import { TngSwitch as TngSwitchPrimitive } from '@tailng-ui/primitives';
|
|
4
|
+
export function toggleTngSwitchState(checked) {
|
|
5
|
+
return !checked;
|
|
6
|
+
}
|
|
7
|
+
export function resolveTngSwitchArrowKey(key) {
|
|
8
|
+
if (key === 'ArrowLeft') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (key === 'ArrowRight') {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
let TngSwitchComponent = class TngSwitchComponent {
|
|
17
|
+
ariaLabel = input(null);
|
|
18
|
+
checked = input(false, {
|
|
19
|
+
transform: booleanAttribute,
|
|
20
|
+
});
|
|
21
|
+
disabled = input(false, {
|
|
22
|
+
transform: booleanAttribute,
|
|
23
|
+
});
|
|
24
|
+
name = input(null);
|
|
25
|
+
required = input(false, {
|
|
26
|
+
transform: booleanAttribute,
|
|
27
|
+
});
|
|
28
|
+
value = input('on');
|
|
29
|
+
checkedChange = output();
|
|
30
|
+
onKeydown(event) {
|
|
31
|
+
if (this.disabled()) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const nextValue = resolveTngSwitchArrowKey(event.key);
|
|
35
|
+
if (nextValue === null || nextValue === this.checked()) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
this.checkedChange.emit(nextValue);
|
|
40
|
+
}
|
|
41
|
+
onToggle() {
|
|
42
|
+
if (this.disabled()) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.checkedChange.emit(toggleTngSwitchState(this.checked()));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
TngSwitchComponent = __decorate([
|
|
49
|
+
Component({
|
|
50
|
+
selector: 'tng-switch',
|
|
51
|
+
imports: [TngSwitchPrimitive],
|
|
52
|
+
templateUrl: './tng-switch.component.html',
|
|
53
|
+
styleUrl: './tng-switch.component.css',
|
|
54
|
+
})
|
|
55
|
+
], TngSwitchComponent);
|
|
56
|
+
export { TngSwitchComponent };
|
|
57
|
+
//# sourceMappingURL=tng-switch.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-switch.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/switch/tng-switch.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAKxE,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO,CAAC,OAAO,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACb,SAAS,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,CAA4B,KAAK,EAAE;QAChE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAClC,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,IAAI,CAAC,CAAC;IAE5B,aAAa,GAAG,MAAM,EAAW,CAAC;IAE3C,SAAS,CAAC,KAA6B;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,QAAQ;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;CACF,CAAA;AArCY,kBAAkB;IAN9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,4BAA4B;KACvC,CAAC;GACW,kBAAkB,CAqC9B","sourcesContent":["import { booleanAttribute, Component, input, output } from '@angular/core';\nimport { TngSwitch as TngSwitchPrimitive } from '@tailng-ui/primitives';\n\ntype TngSwitchKeyboardEvent = Readonly<Pick<KeyboardEvent, 'key'>> &\n Readonly<{ preventDefault: () => void }>;\n\nexport function toggleTngSwitchState(checked: boolean): boolean {\n return !checked;\n}\n\nexport function resolveTngSwitchArrowKey(key: string): boolean | null {\n if (key === 'ArrowLeft') {\n return false;\n }\n\n if (key === 'ArrowRight') {\n return true;\n }\n\n return null;\n}\n\n@Component({\n selector: 'tng-switch',\n imports: [TngSwitchPrimitive],\n templateUrl: './tng-switch.component.html',\n styleUrl: './tng-switch.component.css',\n})\nexport class TngSwitchComponent {\n public readonly ariaLabel = input<string | null>(null);\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string>('on');\n\n public readonly checkedChange = output<boolean>();\n\n public onKeydown(event: TngSwitchKeyboardEvent): void {\n if (this.disabled()) {\n return;\n }\n\n const nextValue = resolveTngSwitchArrowKey(event.key);\n if (nextValue === null || nextValue === this.checked()) {\n return;\n }\n\n event.preventDefault();\n this.checkedChange.emit(nextValue);\n }\n\n public onToggle(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checkedChange.emit(toggleTngSwitchState(this.checked()));\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type NullableBooleanInput = boolean | null | string | undefined;
|
|
2
|
+
export declare function readTngTextareaEventValue(event: unknown): string | null;
|
|
3
|
+
export declare class TngTextareaComponent {
|
|
4
|
+
readonly ariaDescribedBy: import("@angular/core").InputSignal<string | null>;
|
|
5
|
+
readonly ariaInvalid: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
|
|
6
|
+
readonly ariaRequired: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
|
|
7
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
8
|
+
readonly placeholder: import("@angular/core").InputSignal<string | null>;
|
|
9
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
10
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
11
|
+
readonly rows: import("@angular/core").InputSignalWithTransform<number, string | number>;
|
|
12
|
+
readonly value: import("@angular/core").InputSignal<string | null>;
|
|
13
|
+
readonly valueChange: import("@angular/core").OutputEmitterRef<string>;
|
|
14
|
+
onInput(event: unknown): void;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=tng-textarea.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-textarea.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/textarea/tng-textarea.component.ts"],"names":[],"mappings":"AAOA,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWvE;AAED,qBAMa,oBAAoB;IAC/B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,YAAY,yFAEzB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,WAAW,qDAA8B;IACzD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,4EAGjB;IACH,SAAgB,KAAK,qDAA8B;IAEnD,SAAgB,WAAW,mDAAoB;IAExC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAQrC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { booleanAttribute, Component, input, output } from '@angular/core';
|
|
3
|
+
import { coerceTngTextareaNullableBoolean, normalizeTngTextareaRows, TngTextarea as TngTextareaPrimitive, } from '@tailng-ui/primitives';
|
|
4
|
+
export function readTngTextareaEventValue(event) {
|
|
5
|
+
if (!(event instanceof Event)) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const target = event.target;
|
|
9
|
+
if (!(target instanceof HTMLTextAreaElement)) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return target.value;
|
|
13
|
+
}
|
|
14
|
+
let TngTextareaComponent = class TngTextareaComponent {
|
|
15
|
+
ariaDescribedBy = input(null);
|
|
16
|
+
ariaInvalid = input(null, {
|
|
17
|
+
transform: coerceTngTextareaNullableBoolean,
|
|
18
|
+
});
|
|
19
|
+
ariaRequired = input(null, {
|
|
20
|
+
transform: coerceTngTextareaNullableBoolean,
|
|
21
|
+
});
|
|
22
|
+
disabled = input(false, {
|
|
23
|
+
transform: booleanAttribute,
|
|
24
|
+
});
|
|
25
|
+
placeholder = input(null);
|
|
26
|
+
readonly = input(false, {
|
|
27
|
+
transform: booleanAttribute,
|
|
28
|
+
});
|
|
29
|
+
required = input(false, {
|
|
30
|
+
transform: booleanAttribute,
|
|
31
|
+
});
|
|
32
|
+
rows = input(3, {
|
|
33
|
+
transform: (value) => normalizeTngTextareaRows(typeof value === 'number' ? value : Number(value)),
|
|
34
|
+
});
|
|
35
|
+
value = input(null);
|
|
36
|
+
valueChange = output();
|
|
37
|
+
onInput(event) {
|
|
38
|
+
const value = readTngTextareaEventValue(event);
|
|
39
|
+
if (value === null) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.valueChange.emit(value);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
TngTextareaComponent = __decorate([
|
|
46
|
+
Component({
|
|
47
|
+
selector: 'tng-textarea',
|
|
48
|
+
imports: [TngTextareaPrimitive],
|
|
49
|
+
templateUrl: './tng-textarea.component.html',
|
|
50
|
+
styleUrl: './tng-textarea.component.css',
|
|
51
|
+
})
|
|
52
|
+
], TngTextareaComponent);
|
|
53
|
+
export { TngTextareaComponent };
|
|
54
|
+
//# sourceMappingURL=tng-textarea.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-textarea.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/textarea/tng-textarea.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,WAAW,IAAI,oBAAoB,GACpC,MAAM,uBAAuB,CAAC;AAI/B,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,mBAAmB,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAQM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACf,eAAe,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAC7C,WAAW,GAAG,KAAK,CAAuC,IAAI,EAAE;QAC9E,SAAS,EAAE,gCAAgC;KAC5C,CAAC,CAAC;IACa,YAAY,GAAG,KAAK,CAAuC,IAAI,EAAE;QAC/E,SAAS,EAAE,gCAAgC;KAC5C,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,WAAW,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACzC,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,IAAI,GAAG,KAAK,CAA0B,CAAC,EAAE;QACvD,SAAS,EAAE,CAAC,KAAsB,EAAU,EAAE,CAC5C,wBAAwB,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC9E,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAEnC,WAAW,GAAG,MAAM,EAAU,CAAC;IAExC,OAAO,CAAC,KAAc;QAC3B,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF,CAAA;AAlCY,oBAAoB;IANhC,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,oBAAoB,CAAC;QAC/B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,8BAA8B;KACzC,CAAC;GACW,oBAAoB,CAkChC","sourcesContent":["import { booleanAttribute, Component, input, output } from '@angular/core';\nimport {\n coerceTngTextareaNullableBoolean,\n normalizeTngTextareaRows,\n TngTextarea as TngTextareaPrimitive,\n} from '@tailng-ui/primitives';\n\ntype NullableBooleanInput = boolean | null | string | undefined;\n\nexport function readTngTextareaEventValue(event: unknown): string | null {\n if (!(event instanceof Event)) {\n return null;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLTextAreaElement)) {\n return null;\n }\n\n return target.value;\n}\n\n@Component({\n selector: 'tng-textarea',\n imports: [TngTextareaPrimitive],\n templateUrl: './tng-textarea.component.html',\n styleUrl: './tng-textarea.component.css',\n})\nexport class TngTextareaComponent {\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngTextareaNullableBoolean,\n });\n public readonly ariaRequired = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngTextareaNullableBoolean,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly placeholder = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly rows = input<number, number | string>(3, {\n transform: (value: number | string): number =>\n normalizeTngTextareaRows(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<string | null>(null);\n\n public readonly valueChange = output<string>();\n\n public onInput(event: unknown): void {\n const value = readTngTextareaEventValue(event);\n if (value === null) {\n return;\n }\n\n this.valueChange.emit(value);\n }\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { type ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
export declare function toggleTngToggleState(pressed: boolean): boolean;
|
|
4
|
+
export declare function resolveTngToggleAriaLabel(pressed: boolean, pressedLabel: string, unpressedLabel: string): string;
|
|
5
|
+
type NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;
|
|
6
|
+
export declare class TngToggleComponent implements ControlValueAccessor, OnInit {
|
|
7
|
+
private readonly group;
|
|
8
|
+
private readonly internalPressed;
|
|
9
|
+
private readonly cvaModeEnabled;
|
|
10
|
+
private readonly cvaPressed;
|
|
11
|
+
private readonly cvaDisabled;
|
|
12
|
+
private onControlChange;
|
|
13
|
+
private onControlTouched;
|
|
14
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
15
|
+
readonly ariaLabelledby: import("@angular/core").InputSignal<string | null>;
|
|
16
|
+
readonly ariaDescribedBy: import("@angular/core").InputSignal<string | null>;
|
|
17
|
+
readonly value: import("@angular/core").InputSignal<string | null>;
|
|
18
|
+
readonly pressed: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
|
|
19
|
+
readonly defaultPressed: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
20
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
21
|
+
readonly pressedLabel: import("@angular/core").InputSignal<string>;
|
|
22
|
+
readonly unpressedLabel: import("@angular/core").InputSignal<string>;
|
|
23
|
+
readonly pressedChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
24
|
+
protected readonly resolvedDisabled: import("@angular/core").Signal<boolean>;
|
|
25
|
+
protected readonly resolvedPressed: import("@angular/core").Signal<boolean>;
|
|
26
|
+
constructor();
|
|
27
|
+
ngOnInit(): void;
|
|
28
|
+
onBlur(): void;
|
|
29
|
+
onPrimitivePressedChange(nextPressed: boolean): void;
|
|
30
|
+
getAriaLabel(): string | null;
|
|
31
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
32
|
+
registerOnTouched(fn: () => void): void;
|
|
33
|
+
setDisabledState(isDisabled: boolean): void;
|
|
34
|
+
writeValue(value: unknown): void;
|
|
35
|
+
private groupItemValue;
|
|
36
|
+
private groupManagesState;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=tng-toggle.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-toggle.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/toggle/tng-toggle.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAOP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAO9E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAED,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAqB/E,qBAmBa,kBAAmB,YAAW,oBAAoB,EAAE,MAAM;IACrE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGnB;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,cAAc,qDAA8B;IAC5D,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,KAAK,qDAA8B;IAEnD,SAAgB,OAAO,yFAEpB;IACH,SAAgB,cAAc,8EAE3B;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,YAAY,8CAA4B;IACxD,SAAgB,cAAc,8CAA6B;IAE3D,SAAgB,aAAa,oDAAqB;IAElD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,0CAOhC;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,0CAgB/B;;IAMI,QAAQ,IAAI,IAAI;IAIhB,MAAM,IAAI,IAAI;IAId,wBAAwB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAepD,YAAY,IAAI,MAAM,GAAG,IAAI;IAkB7B,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAKpD,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKvC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { booleanAttribute, Component, computed, forwardRef, inject, input, output, signal, } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { coerceTngToggleNullableBoolean, TngToggle as TngTogglePrimitive, TngToggleGroup as TngToggleGroupPrimitive, } from '@tailng-ui/primitives';
|
|
5
|
+
export function toggleTngToggleState(pressed) {
|
|
6
|
+
return !pressed;
|
|
7
|
+
}
|
|
8
|
+
export function resolveTngToggleAriaLabel(pressed, pressedLabel, unpressedLabel) {
|
|
9
|
+
return pressed ? pressedLabel : unpressedLabel;
|
|
10
|
+
}
|
|
11
|
+
function normalizeStringValue(value) {
|
|
12
|
+
if (value === undefined || value === null) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const normalized = value.trim();
|
|
16
|
+
return normalized.length > 0 ? normalized : null;
|
|
17
|
+
}
|
|
18
|
+
const noControlChange = (_value) => undefined;
|
|
19
|
+
const noControlTouch = () => undefined;
|
|
20
|
+
function injectParentToggleGroup() {
|
|
21
|
+
return inject(TngToggleGroupPrimitive, {
|
|
22
|
+
optional: true,
|
|
23
|
+
skipSelf: true,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
let TngToggleComponent = class TngToggleComponent {
|
|
27
|
+
group = inject(TngToggleGroupPrimitive, {
|
|
28
|
+
optional: true,
|
|
29
|
+
skipSelf: true,
|
|
30
|
+
});
|
|
31
|
+
internalPressed = signal(false);
|
|
32
|
+
cvaModeEnabled = signal(false);
|
|
33
|
+
cvaPressed = signal(false);
|
|
34
|
+
cvaDisabled = signal(false);
|
|
35
|
+
onControlChange = noControlChange;
|
|
36
|
+
onControlTouched = noControlTouch;
|
|
37
|
+
ariaLabel = input(null);
|
|
38
|
+
ariaLabelledby = input(null);
|
|
39
|
+
ariaDescribedBy = input(null);
|
|
40
|
+
value = input(null);
|
|
41
|
+
pressed = input(null, {
|
|
42
|
+
transform: coerceTngToggleNullableBoolean,
|
|
43
|
+
});
|
|
44
|
+
defaultPressed = input(false, {
|
|
45
|
+
transform: booleanAttribute,
|
|
46
|
+
});
|
|
47
|
+
disabled = input(false, {
|
|
48
|
+
transform: booleanAttribute,
|
|
49
|
+
});
|
|
50
|
+
pressedLabel = input('Enabled');
|
|
51
|
+
unpressedLabel = input('Disabled');
|
|
52
|
+
pressedChange = output();
|
|
53
|
+
resolvedDisabled = computed(() => {
|
|
54
|
+
const groupDisabled = this.group?.isGroupDisabled() === true && this.groupManagesState();
|
|
55
|
+
if (this.cvaModeEnabled()) {
|
|
56
|
+
return this.cvaDisabled() || groupDisabled;
|
|
57
|
+
}
|
|
58
|
+
return this.disabled() || groupDisabled;
|
|
59
|
+
});
|
|
60
|
+
resolvedPressed = computed(() => {
|
|
61
|
+
const groupItemValue = this.groupItemValue();
|
|
62
|
+
if (groupItemValue !== null && this.group !== null) {
|
|
63
|
+
return this.group.isItemSelected(groupItemValue);
|
|
64
|
+
}
|
|
65
|
+
if (this.cvaModeEnabled()) {
|
|
66
|
+
return this.cvaPressed();
|
|
67
|
+
}
|
|
68
|
+
const controlledPressed = this.pressed();
|
|
69
|
+
if (controlledPressed !== null) {
|
|
70
|
+
return controlledPressed;
|
|
71
|
+
}
|
|
72
|
+
return this.internalPressed();
|
|
73
|
+
});
|
|
74
|
+
constructor() {
|
|
75
|
+
this.internalPressed.set(false);
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
this.internalPressed.set(this.defaultPressed());
|
|
79
|
+
}
|
|
80
|
+
onBlur() {
|
|
81
|
+
this.onControlTouched();
|
|
82
|
+
}
|
|
83
|
+
onPrimitivePressedChange(nextPressed) {
|
|
84
|
+
if (this.resolvedDisabled()) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (this.cvaModeEnabled()) {
|
|
88
|
+
this.cvaPressed.set(nextPressed);
|
|
89
|
+
this.onControlChange(nextPressed);
|
|
90
|
+
}
|
|
91
|
+
else if (this.pressed() === null && !this.groupManagesState()) {
|
|
92
|
+
this.internalPressed.set(nextPressed);
|
|
93
|
+
}
|
|
94
|
+
this.pressedChange.emit(nextPressed);
|
|
95
|
+
}
|
|
96
|
+
getAriaLabel() {
|
|
97
|
+
const explicitAriaLabel = normalizeStringValue(this.ariaLabel());
|
|
98
|
+
if (explicitAriaLabel !== null) {
|
|
99
|
+
return explicitAriaLabel;
|
|
100
|
+
}
|
|
101
|
+
const labelledby = normalizeStringValue(this.ariaLabelledby());
|
|
102
|
+
if (labelledby !== null) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
return resolveTngToggleAriaLabel(this.resolvedPressed(), this.pressedLabel(), this.unpressedLabel());
|
|
106
|
+
}
|
|
107
|
+
registerOnChange(fn) {
|
|
108
|
+
this.cvaModeEnabled.set(true);
|
|
109
|
+
this.onControlChange = fn;
|
|
110
|
+
}
|
|
111
|
+
registerOnTouched(fn) {
|
|
112
|
+
this.cvaModeEnabled.set(true);
|
|
113
|
+
this.onControlTouched = fn;
|
|
114
|
+
}
|
|
115
|
+
setDisabledState(isDisabled) {
|
|
116
|
+
this.cvaModeEnabled.set(true);
|
|
117
|
+
this.cvaDisabled.set(isDisabled);
|
|
118
|
+
}
|
|
119
|
+
writeValue(value) {
|
|
120
|
+
this.cvaModeEnabled.set(true);
|
|
121
|
+
this.cvaPressed.set(value === true);
|
|
122
|
+
}
|
|
123
|
+
groupItemValue() {
|
|
124
|
+
return normalizeStringValue(this.value());
|
|
125
|
+
}
|
|
126
|
+
groupManagesState() {
|
|
127
|
+
return this.group !== null && this.groupItemValue() !== null;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
TngToggleComponent = __decorate([
|
|
131
|
+
Component({
|
|
132
|
+
selector: 'tng-toggle',
|
|
133
|
+
imports: [TngTogglePrimitive],
|
|
134
|
+
templateUrl: './tng-toggle.component.html',
|
|
135
|
+
styleUrl: './tng-toggle.component.css',
|
|
136
|
+
viewProviders: [
|
|
137
|
+
{
|
|
138
|
+
provide: TngToggleGroupPrimitive,
|
|
139
|
+
useFactory: injectParentToggleGroup,
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
providers: [
|
|
143
|
+
{
|
|
144
|
+
provide: NG_VALUE_ACCESSOR,
|
|
145
|
+
useExisting: forwardRef(() => TngToggleComponent),
|
|
146
|
+
multi: true,
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
})
|
|
150
|
+
], TngToggleComponent);
|
|
151
|
+
export { TngToggleComponent };
|
|
152
|
+
//# sourceMappingURL=tng-toggle.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-toggle.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/toggle/tng-toggle.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n booleanAttribute,\n Component,\n OnInit,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport {\n coerceTngToggleNullableBoolean,\n TngToggle as TngTogglePrimitive,\n TngToggleGroup as TngToggleGroupPrimitive,\n} from '@tailng-ui/primitives';\n\nexport function toggleTngToggleState(pressed: boolean): boolean {\n return !pressed;\n}\n\nexport function resolveTngToggleAriaLabel(\n pressed: boolean,\n pressedLabel: string,\n unpressedLabel: string,\n): string {\n return pressed ? pressedLabel : unpressedLabel;\n}\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nconst noControlChange = (_value: boolean): void => undefined;\nconst noControlTouch = (): void => undefined;\n\nfunction injectParentToggleGroup(): TngToggleGroupPrimitive | null {\n return inject(TngToggleGroupPrimitive, {\n optional: true,\n skipSelf: true,\n });\n}\n\n@Component({\n selector: 'tng-toggle',\n imports: [TngTogglePrimitive],\n templateUrl: './tng-toggle.component.html',\n styleUrl: './tng-toggle.component.css',\n viewProviders: [\n {\n provide: TngToggleGroupPrimitive,\n useFactory: injectParentToggleGroup,\n },\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TngToggleComponent),\n multi: true,\n },\n ],\n})\nexport class TngToggleComponent implements ControlValueAccessor, OnInit {\n private readonly group = inject(TngToggleGroupPrimitive, {\n optional: true,\n skipSelf: true,\n });\n private readonly internalPressed = signal(false);\n private readonly cvaModeEnabled = signal(false);\n private readonly cvaPressed = signal(false);\n private readonly cvaDisabled = signal(false);\n\n private onControlChange: (value: boolean) => void = noControlChange;\n private onControlTouched: () => void = noControlTouch;\n\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledby = input<string | null>(null);\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly value = input<string | null>(null);\n\n public readonly pressed = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngToggleNullableBoolean,\n });\n public readonly defaultPressed = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly pressedLabel = input<string>('Enabled');\n public readonly unpressedLabel = input<string>('Disabled');\n\n public readonly pressedChange = output<boolean>();\n\n protected readonly resolvedDisabled = computed<boolean>(() => {\n const groupDisabled = this.group?.isGroupDisabled() === true && this.groupManagesState();\n if (this.cvaModeEnabled()) {\n return this.cvaDisabled() || groupDisabled;\n }\n\n return this.disabled() || groupDisabled;\n });\n\n protected readonly resolvedPressed = computed<boolean>(() => {\n const groupItemValue = this.groupItemValue();\n if (groupItemValue !== null && this.group !== null) {\n return this.group.isItemSelected(groupItemValue);\n }\n\n if (this.cvaModeEnabled()) {\n return this.cvaPressed();\n }\n\n const controlledPressed = this.pressed();\n if (controlledPressed !== null) {\n return controlledPressed;\n }\n\n return this.internalPressed();\n });\n\n public constructor() {\n this.internalPressed.set(false);\n }\n\n public ngOnInit(): void {\n this.internalPressed.set(this.defaultPressed());\n }\n\n public onBlur(): void {\n this.onControlTouched();\n }\n\n public onPrimitivePressedChange(nextPressed: boolean): void {\n if (this.resolvedDisabled()) {\n return;\n }\n\n if (this.cvaModeEnabled()) {\n this.cvaPressed.set(nextPressed);\n this.onControlChange(nextPressed);\n } else if (this.pressed() === null && !this.groupManagesState()) {\n this.internalPressed.set(nextPressed);\n }\n\n this.pressedChange.emit(nextPressed);\n }\n\n public getAriaLabel(): string | null {\n const explicitAriaLabel = normalizeStringValue(this.ariaLabel());\n if (explicitAriaLabel !== null) {\n return explicitAriaLabel;\n }\n\n const labelledby = normalizeStringValue(this.ariaLabelledby());\n if (labelledby !== null) {\n return null;\n }\n\n return resolveTngToggleAriaLabel(\n this.resolvedPressed(),\n this.pressedLabel(),\n this.unpressedLabel(),\n );\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.cvaModeEnabled.set(true);\n this.onControlTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.cvaModeEnabled.set(true);\n this.cvaDisabled.set(isDisabled);\n }\n\n public writeValue(value: unknown): void {\n this.cvaModeEnabled.set(true);\n this.cvaPressed.set(value === true);\n }\n\n private groupItemValue(): string | null {\n return normalizeStringValue(this.value());\n }\n\n private groupManagesState(): boolean {\n return this.group !== null && this.groupItemValue() !== null;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-toggle-group.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/toggle-group/tng-toggle-group.component.ts"],"names":[],"mappings":"AAGA,qBAyBa,uBAAuB;CAAG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { TngToggleGroup as TngToggleGroupPrimitive } from '@tailng-ui/primitives';
|
|
4
|
+
let TngToggleGroupComponent = class TngToggleGroupComponent {
|
|
5
|
+
};
|
|
6
|
+
TngToggleGroupComponent = __decorate([
|
|
7
|
+
Component({
|
|
8
|
+
selector: 'tng-toggle-group',
|
|
9
|
+
templateUrl: './tng-toggle-group.component.html',
|
|
10
|
+
styleUrl: './tng-toggle-group.component.css',
|
|
11
|
+
host: {
|
|
12
|
+
class: 'tng-toggle-group',
|
|
13
|
+
},
|
|
14
|
+
hostDirectives: [
|
|
15
|
+
{
|
|
16
|
+
directive: TngToggleGroupPrimitive,
|
|
17
|
+
inputs: [
|
|
18
|
+
'ariaLabel',
|
|
19
|
+
'ariaLabelledby',
|
|
20
|
+
'orientation',
|
|
21
|
+
'selectionMode',
|
|
22
|
+
'disabled',
|
|
23
|
+
'value',
|
|
24
|
+
'values',
|
|
25
|
+
'defaultValue',
|
|
26
|
+
'defaultValues',
|
|
27
|
+
],
|
|
28
|
+
outputs: ['valueChange', 'valuesChange'],
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
})
|
|
32
|
+
], TngToggleGroupComponent);
|
|
33
|
+
export { TngToggleGroupComponent };
|
|
34
|
+
//# sourceMappingURL=tng-toggle-group.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-toggle-group.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/toggle-group/tng-toggle-group.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AA2B3E,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;CAAG,CAAA;AAA1B,uBAAuB;IAzBnC,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;QAC5C,IAAI,EAAE;YACJ,KAAK,EAAE,kBAAkB;SAC1B;QACD,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,uBAAuB;gBAClC,MAAM,EAAE;oBACN,WAAW;oBACX,gBAAgB;oBAChB,aAAa;oBACb,eAAe;oBACf,UAAU;oBACV,OAAO;oBACP,QAAQ;oBACR,cAAc;oBACd,eAAe;iBAChB;gBACD,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;aACzC;SACF;KACF,CAAC;GACW,uBAAuB,CAAG","sourcesContent":["import { Component } from '@angular/core';\nimport { TngToggleGroup as TngToggleGroupPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-toggle-group',\n templateUrl: './tng-toggle-group.component.html',\n styleUrl: './tng-toggle-group.component.css',\n host: {\n class: 'tng-toggle-group',\n },\n hostDirectives: [\n {\n directive: TngToggleGroupPrimitive,\n inputs: [\n 'ariaLabel',\n 'ariaLabelledby',\n 'orientation',\n 'selectionMode',\n 'disabled',\n 'value',\n 'values',\n 'defaultValue',\n 'defaultValues',\n ],\n outputs: ['valueChange', 'valuesChange'],\n },\n ],\n})\nexport class TngToggleGroupComponent {}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class TngAccordionComponent {
|
|
2
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
3
|
+
protected get hostAriaLabel(): string;
|
|
4
|
+
}
|
|
5
|
+
export declare class TngAccordionItemComponent {
|
|
6
|
+
}
|
|
7
|
+
export declare class TngAccordionTriggerComponent {
|
|
8
|
+
}
|
|
9
|
+
export declare class TngAccordionPanelComponent {
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=tng-accordion.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-accordion.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/accordion/tng-accordion.component.ts"],"names":[],"mappings":"AAQA,qBAca,qBAAqB;IAChC,QAAQ,CAAC,SAAS,8CAA8B;IAGhD,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF;AAED,qBA0Ba,yBAAyB;CAAG;AAEzC,qBA0Ca,4BAA4B;CAAG;AAE5C,qBA6Ca,0BAA0B;CAAG"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, HostBinding, input } from '@angular/core';
|
|
3
|
+
import { TngAccordion as TngAccordionPrimitive, TngAccordionItem as TngAccordionItemPrimitive, TngAccordionPanel as TngAccordionPanelPrimitive, TngAccordionTrigger as TngAccordionTriggerPrimitive, } from '@tailng-ui/primitives';
|
|
4
|
+
let TngAccordionComponent = class TngAccordionComponent {
|
|
5
|
+
ariaLabel = input('Accordion');
|
|
6
|
+
get hostAriaLabel() {
|
|
7
|
+
return this.ariaLabel();
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
__decorate([
|
|
11
|
+
HostBinding('attr.aria-label')
|
|
12
|
+
], TngAccordionComponent.prototype, "hostAriaLabel", null);
|
|
13
|
+
TngAccordionComponent = __decorate([
|
|
14
|
+
Component({
|
|
15
|
+
selector: 'tng-accordion',
|
|
16
|
+
standalone: true,
|
|
17
|
+
hostDirectives: [
|
|
18
|
+
{
|
|
19
|
+
directive: TngAccordionPrimitive,
|
|
20
|
+
inputs: ['type', 'value', 'defaultValue', 'collapsible', 'disabled', 'loop', 'lazy', 'keepAlive'],
|
|
21
|
+
outputs: ['valueChange', 'valuesChange', 'expandedChange', 'openStart', 'opened', 'closeStart', 'closed'],
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
templateUrl: './tng-accordion.component.html',
|
|
25
|
+
styleUrl: './tng-accordion.component.css',
|
|
26
|
+
exportAs: 'tngAccordionComponent',
|
|
27
|
+
})
|
|
28
|
+
], TngAccordionComponent);
|
|
29
|
+
export { TngAccordionComponent };
|
|
30
|
+
let TngAccordionItemComponent = class TngAccordionItemComponent {
|
|
31
|
+
};
|
|
32
|
+
TngAccordionItemComponent = __decorate([
|
|
33
|
+
Component({
|
|
34
|
+
selector: 'tng-accordion-item',
|
|
35
|
+
standalone: true,
|
|
36
|
+
hostDirectives: [
|
|
37
|
+
{
|
|
38
|
+
directive: TngAccordionItemPrimitive,
|
|
39
|
+
inputs: ['value', 'disabled'],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
template: '<section class="tng-accordion__item"><ng-content /></section>',
|
|
43
|
+
styles: `
|
|
44
|
+
:host {
|
|
45
|
+
display: block;
|
|
46
|
+
border-top: 1px solid var(--tng-semantic-border-subtle);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:host(:first-child) {
|
|
50
|
+
border-top: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.tng-accordion__item {
|
|
54
|
+
display: block;
|
|
55
|
+
}
|
|
56
|
+
`,
|
|
57
|
+
exportAs: 'tngAccordionItemComponent',
|
|
58
|
+
})
|
|
59
|
+
], TngAccordionItemComponent);
|
|
60
|
+
export { TngAccordionItemComponent };
|
|
61
|
+
let TngAccordionTriggerComponent = class TngAccordionTriggerComponent {
|
|
62
|
+
};
|
|
63
|
+
TngAccordionTriggerComponent = __decorate([
|
|
64
|
+
Component({
|
|
65
|
+
selector: 'tng-accordion-trigger',
|
|
66
|
+
standalone: true,
|
|
67
|
+
hostDirectives: [TngAccordionTriggerPrimitive],
|
|
68
|
+
template: '<span class="tng-accordion__trigger-content"><ng-content /></span>',
|
|
69
|
+
styles: `
|
|
70
|
+
:host {
|
|
71
|
+
align-items: center;
|
|
72
|
+
background: var(--tng-semantic-background-surface);
|
|
73
|
+
border: 0;
|
|
74
|
+
color: var(--tng-semantic-foreground-primary);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
display: flex;
|
|
77
|
+
font: inherit;
|
|
78
|
+
gap: 0.5rem;
|
|
79
|
+
justify-content: space-between;
|
|
80
|
+
min-height: 2.75rem;
|
|
81
|
+
padding: 0.8rem 1rem;
|
|
82
|
+
user-select: none;
|
|
83
|
+
width: 100%;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host([data-disabled='true']) {
|
|
87
|
+
cursor: not-allowed;
|
|
88
|
+
opacity: 0.55;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:host(:focus-visible) {
|
|
92
|
+
outline: 2px solid var(--tng-semantic-focus-ring);
|
|
93
|
+
outline-offset: -2px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.tng-accordion__trigger-content {
|
|
97
|
+
align-items: center;
|
|
98
|
+
display: inline-flex;
|
|
99
|
+
flex: 1 1 auto;
|
|
100
|
+
justify-content: space-between;
|
|
101
|
+
width: 100%;
|
|
102
|
+
}
|
|
103
|
+
`,
|
|
104
|
+
exportAs: 'tngAccordionTriggerComponent',
|
|
105
|
+
})
|
|
106
|
+
], TngAccordionTriggerComponent);
|
|
107
|
+
export { TngAccordionTriggerComponent };
|
|
108
|
+
let TngAccordionPanelComponent = class TngAccordionPanelComponent {
|
|
109
|
+
};
|
|
110
|
+
TngAccordionPanelComponent = __decorate([
|
|
111
|
+
Component({
|
|
112
|
+
selector: 'tng-accordion-panel',
|
|
113
|
+
standalone: true,
|
|
114
|
+
hostDirectives: [TngAccordionPanelPrimitive],
|
|
115
|
+
template: '<section class="tng-accordion__panel"><ng-content /></section>',
|
|
116
|
+
styles: `
|
|
117
|
+
:host {
|
|
118
|
+
display: grid;
|
|
119
|
+
grid-template-rows: 1fr;
|
|
120
|
+
opacity: 1;
|
|
121
|
+
transition:
|
|
122
|
+
grid-template-rows 180ms ease,
|
|
123
|
+
opacity 180ms ease;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:host([hidden]) {
|
|
127
|
+
display: grid !important;
|
|
128
|
+
grid-template-rows: 0fr;
|
|
129
|
+
opacity: 0;
|
|
130
|
+
pointer-events: none;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.tng-accordion__panel {
|
|
134
|
+
background: var(--tng-semantic-background-base);
|
|
135
|
+
border-top: 1px solid var(--tng-semantic-border-subtle);
|
|
136
|
+
color: var(--tng-semantic-foreground-primary);
|
|
137
|
+
display: block;
|
|
138
|
+
min-height: 0;
|
|
139
|
+
overflow: hidden;
|
|
140
|
+
padding: 0.9rem 1rem;
|
|
141
|
+
transform: translateY(0);
|
|
142
|
+
transition:
|
|
143
|
+
border-color 180ms ease,
|
|
144
|
+
padding-block 180ms ease,
|
|
145
|
+
transform 180ms ease;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
:host([hidden]) .tng-accordion__panel {
|
|
149
|
+
border-top-color: transparent;
|
|
150
|
+
padding-block: 0;
|
|
151
|
+
transform: translateY(-4px);
|
|
152
|
+
}
|
|
153
|
+
`,
|
|
154
|
+
exportAs: 'tngAccordionPanelComponent',
|
|
155
|
+
})
|
|
156
|
+
], TngAccordionPanelComponent);
|
|
157
|
+
export { TngAccordionPanelComponent };
|
|
158
|
+
//# sourceMappingURL=tng-accordion.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-accordion.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/accordion/tng-accordion.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,YAAY,IAAI,qBAAqB,EACrC,gBAAgB,IAAI,yBAAyB,EAC7C,iBAAiB,IAAI,0BAA0B,EAC/C,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,uBAAuB,CAAC;AAgBxB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACvB,SAAS,GAAG,KAAK,CAAS,WAAW,CAAC,CAAC;IAGhD,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAHC;IADC,WAAW,CAAC,iBAAiB,CAAC;0DAG9B;AANU,qBAAqB;IAdjC,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,qBAAqB;gBAChC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;gBACjG,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC;aAC1G;SACF;QACD,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,+BAA+B;QACzC,QAAQ,EAAE,uBAAuB;KAClC,CAAC;GACW,qBAAqB,CAOjC;;AA4BM,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAAG,CAAA;AAA5B,yBAAyB;IA1BrC,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,yBAAyB;gBACpC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC9B;SACF;QACD,QAAQ,EAAE,+DAA+D;QACzE,MAAM,EAAE;;;;;;;;;;;;;GAaP;QACD,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GACW,yBAAyB,CAAG;;AA4ClC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CAAG,CAAA;AAA/B,4BAA4B;IA1CxC,SAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,CAAC,4BAA4B,CAAC;QAC9C,QAAQ,EAAE,oEAAoE;QAC9E,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCP;QACD,QAAQ,EAAE,8BAA8B;KACzC,CAAC;GACW,4BAA4B,CAAG;;AA+CrC,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAAG,CAAA;AAA7B,0BAA0B;IA7CtC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,CAAC,0BAA0B,CAAC;QAC5C,QAAQ,EAAE,gEAAgE;QAC1E,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCP;QACD,QAAQ,EAAE,4BAA4B;KACvC,CAAC;GACW,0BAA0B,CAAG","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport {\n TngAccordion as TngAccordionPrimitive,\n TngAccordionItem as TngAccordionItemPrimitive,\n TngAccordionPanel as TngAccordionPanelPrimitive,\n TngAccordionTrigger as TngAccordionTriggerPrimitive,\n} from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-accordion',\n standalone: true,\n hostDirectives: [\n {\n directive: TngAccordionPrimitive,\n inputs: ['type', 'value', 'defaultValue', 'collapsible', 'disabled', 'loop', 'lazy', 'keepAlive'],\n outputs: ['valueChange', 'valuesChange', 'expandedChange', 'openStart', 'opened', 'closeStart', 'closed'],\n },\n ],\n templateUrl: './tng-accordion.component.html',\n styleUrl: './tng-accordion.component.css',\n exportAs: 'tngAccordionComponent',\n})\nexport class TngAccordionComponent {\n readonly ariaLabel = input<string>('Accordion');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\n\n@Component({\n selector: 'tng-accordion-item',\n standalone: true,\n hostDirectives: [\n {\n directive: TngAccordionItemPrimitive,\n inputs: ['value', 'disabled'],\n },\n ],\n template: '<section class=\"tng-accordion__item\"><ng-content /></section>',\n styles: `\n :host {\n display: block;\n border-top: 1px solid var(--tng-semantic-border-subtle);\n }\n\n :host(:first-child) {\n border-top: 0;\n }\n\n .tng-accordion__item {\n display: block;\n }\n `,\n exportAs: 'tngAccordionItemComponent',\n})\nexport class TngAccordionItemComponent {}\n\n@Component({\n selector: 'tng-accordion-trigger',\n standalone: true,\n hostDirectives: [TngAccordionTriggerPrimitive],\n template: '<span class=\"tng-accordion__trigger-content\"><ng-content /></span>',\n styles: `\n :host {\n align-items: center;\n background: var(--tng-semantic-background-surface);\n border: 0;\n color: var(--tng-semantic-foreground-primary);\n cursor: pointer;\n display: flex;\n font: inherit;\n gap: 0.5rem;\n justify-content: space-between;\n min-height: 2.75rem;\n padding: 0.8rem 1rem;\n user-select: none;\n width: 100%;\n }\n\n :host([data-disabled='true']) {\n cursor: not-allowed;\n opacity: 0.55;\n }\n\n :host(:focus-visible) {\n outline: 2px solid var(--tng-semantic-focus-ring);\n outline-offset: -2px;\n }\n\n .tng-accordion__trigger-content {\n align-items: center;\n display: inline-flex;\n flex: 1 1 auto;\n justify-content: space-between;\n width: 100%;\n }\n `,\n exportAs: 'tngAccordionTriggerComponent',\n})\nexport class TngAccordionTriggerComponent {}\n\n@Component({\n selector: 'tng-accordion-panel',\n standalone: true,\n hostDirectives: [TngAccordionPanelPrimitive],\n template: '<section class=\"tng-accordion__panel\"><ng-content /></section>',\n styles: `\n :host {\n display: grid;\n grid-template-rows: 1fr;\n opacity: 1;\n transition:\n grid-template-rows 180ms ease,\n opacity 180ms ease;\n }\n\n :host([hidden]) {\n display: grid !important;\n grid-template-rows: 0fr;\n opacity: 0;\n pointer-events: none;\n }\n\n .tng-accordion__panel {\n background: var(--tng-semantic-background-base);\n border-top: 1px solid var(--tng-semantic-border-subtle);\n color: var(--tng-semantic-foreground-primary);\n display: block;\n min-height: 0;\n overflow: hidden;\n padding: 0.9rem 1rem;\n transform: translateY(0);\n transition:\n border-color 180ms ease,\n padding-block 180ms ease,\n transform 180ms ease;\n }\n\n :host([hidden]) .tng-accordion__panel {\n border-top-color: transparent;\n padding-block: 0;\n transform: translateY(-4px);\n }\n `,\n exportAs: 'tngAccordionPanelComponent',\n})\nexport class TngAccordionPanelComponent {}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-bottom-sheet.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.ts"],"names":[],"mappings":"AAGA,qBAMa,uBAAuB;IAClC,SAAgB,SAAS,8CAAiC;CAC3D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, input } from '@angular/core';
|
|
3
|
+
import { TngBottomSheet as TngBottomSheetPrimitive } from '@tailng-ui/primitives';
|
|
4
|
+
let TngBottomSheetComponent = class TngBottomSheetComponent {
|
|
5
|
+
ariaLabel = input('Bottom Sheet');
|
|
6
|
+
};
|
|
7
|
+
TngBottomSheetComponent = __decorate([
|
|
8
|
+
Component({
|
|
9
|
+
selector: 'tng-bottom-sheet',
|
|
10
|
+
imports: [TngBottomSheetPrimitive],
|
|
11
|
+
templateUrl: './tng-bottom-sheet.component.html',
|
|
12
|
+
styleUrl: './tng-bottom-sheet.component.css',
|
|
13
|
+
})
|
|
14
|
+
], TngBottomSheetComponent);
|
|
15
|
+
export { TngBottomSheetComponent };
|
|
16
|
+
//# sourceMappingURL=tng-bottom-sheet.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-bottom-sheet.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAQ3E,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,SAAS,GAAG,KAAK,CAAS,cAAc,CAAC,CAAC;CAC3D,CAAA;AAFY,uBAAuB;IANnC,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,CAAC,uBAAuB,CAAC;QAClC,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;KAC7C,CAAC;GACW,uBAAuB,CAEnC","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngBottomSheet as TngBottomSheetPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-bottom-sheet',\n imports: [TngBottomSheetPrimitive],\n templateUrl: './tng-bottom-sheet.component.html',\n styleUrl: './tng-bottom-sheet.component.css',\n})\nexport class TngBottomSheetComponent {\n public readonly ariaLabel = input<string>('Bottom Sheet');\n}\n"]}
|