@xui/accordion 2.0.0-alpha.20 → 2.0.0-alpha.21
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.
|
@@ -18,8 +18,10 @@ import { XuiIcon } from '@xui/icon';
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
class XuiAccordion {
|
|
21
|
+
/** Extra classes, merged into the component's own rather than replacing them. */
|
|
21
22
|
class = input('', /* @ts-ignore */
|
|
22
23
|
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
24
|
+
/** Let several items be open at once. By default opening one closes the rest. */
|
|
23
25
|
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
24
26
|
/** The values of the currently open items. */
|
|
25
27
|
value = model([], /* @ts-ignore */
|
|
@@ -61,10 +63,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
61
63
|
*/
|
|
62
64
|
class XuiAccordionItem {
|
|
63
65
|
accordion = inject(XuiAccordion);
|
|
66
|
+
/** The item's key, used by the accordion to track which items are expanded. Must be unique within the accordion. */
|
|
64
67
|
value = input.required(/* @ts-ignore */
|
|
65
68
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
69
|
+
/** The header text. Project `[xuiAccordionTitle]` content instead when the header needs markup. */
|
|
66
70
|
title = input('', /* @ts-ignore */
|
|
67
71
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
72
|
+
/** Make the item unopenable. The header stays visible but no longer toggles. */
|
|
68
73
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
69
74
|
open = computed(() => this.accordion.isExpanded(this.value()), /* @ts-ignore */
|
|
70
75
|
...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xui-accordion.mjs","sources":["../../../../../../libs/ui/accordion/xui/src/lib/accordion.ts","../../../../../../libs/ui/accordion/xui/src/lib/accordion-item.ts","../../../../../../libs/ui/accordion/xui/src/index.ts","../../../../../../libs/ui/accordion/xui/src/xui-accordion.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation\n} from '@angular/core';\nimport { xui } from '@xui/core';\nimport type { ClassValue } from 'clsx';\n\n/**\n * A vertical stack of expandable sections. By default one panel is open at a\n * time; set `multiple` to let several stay open. `value` is the two-way bindable\n * list of open item values.\n *\n * ```html\n * <xui-accordion [(value)]=\"open\">\n * <xui-accordion-item value=\"a\" title=\"First\">…</xui-accordion-item>\n * <xui-accordion-item value=\"b\" title=\"Second\">…</xui-accordion-item>\n * </xui-accordion>\n * ```\n */\n@Component({\n selector: 'xui-accordion',\n template: `<ng-content />`,\n host: {\n '[class]': 'computedClass()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiAccordion {\n readonly class = input<ClassValue>('');\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /** The values of the currently open items. */\n readonly value = model<string[]>([]);\n\n isExpanded(value: string): boolean {\n return this.value().includes(value);\n }\n\n toggle(value: string): void {\n const open = this.value();\n if (open.includes(value)) {\n this.value.set(open.filter(v => v !== value));\n } else {\n this.value.set(this.multiple() ? [...open, value] : [value]);\n }\n }\n\n protected readonly computedClass = computed(() =>\n xui('divide-border border-border block divide-y overflow-hidden rounded-lg border', this.class())\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matExpandMoreRound } from '@ng-icons/material-icons/round';\nimport { xui } from '@xui/core';\nimport { XuiIcon } from '@xui/icon';\nimport { XuiAccordion } from './accordion';\n\n/**\n * One section of an {@link XuiAccordion}. `value` identifies it within the group;\n * `title` is the header label (or project `[xuiAccordionTitle]` for rich content).\n * The body is the default projected content.\n */\n@Component({\n selector: 'xui-accordion-item',\n template: `\n <h3 class=\"flex\">\n <button\n type=\"button\"\n [class]=\"triggerClass()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"toggle()\"\n >\n <span class=\"flex-1 text-start\">{{ title() }}<ng-content select=\"[xuiAccordionTitle]\" /></span>\n <ng-icon\n xui\n size=\"sm\"\n color=\"muted\"\n name=\"matExpandMoreRound\"\n class=\"duration-base shrink-0 transition-transform\"\n [class.rotate-180]=\"open()\"\n />\n </button>\n </h3>\n\n <div [class]=\"regionClass()\" role=\"region\" [attr.aria-hidden]=\"!open()\">\n <div class=\"min-h-0 overflow-hidden\">\n <div class=\"text-foreground-muted px-4 pt-0 pb-4 text-sm\">\n <ng-content />\n </div>\n </div>\n </div>\n `,\n host: {\n class: 'block'\n },\n imports: [NgIcon, XuiIcon],\n viewProviders: [provideIcons({ matExpandMoreRound })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiAccordionItem {\n private readonly accordion = inject(XuiAccordion);\n\n readonly value = input.required<string>();\n readonly title = input<string>('');\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly open = computed(() => this.accordion.isExpanded(this.value()));\n\n protected toggle(): void {\n if (!this.disabled()) {\n this.accordion.toggle(this.value());\n }\n }\n\n protected readonly triggerClass = computed(() =>\n xui(\n 'text-foreground hover:bg-surface-inset flex flex-1 items-center gap-2 px-4 py-3 text-sm font-medium outline-none disabled:opacity-50',\n 'focus-visible:ring-focus focus-visible:ring-2 focus-visible:ring-inset'\n )\n );\n\n // A grid collapsing from 1fr → 0fr animates the height without measuring it.\n protected readonly regionClass = computed(() =>\n xui('grid transition-[grid-template-rows] duration-base', this.open() ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]')\n );\n}\n","import { XuiAccordion } from './lib/accordion';\nimport { XuiAccordionItem } from './lib/accordion-item';\n\nexport * from './lib/accordion';\nexport * from './lib/accordion-item';\n\nexport const XuiAccordionImports = [XuiAccordion, XuiAccordionItem] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAaA;;;;;;;;;;;AAWG;MAUU,YAAY,CAAA
|
|
1
|
+
{"version":3,"file":"xui-accordion.mjs","sources":["../../../../../../libs/ui/accordion/xui/src/lib/accordion.ts","../../../../../../libs/ui/accordion/xui/src/lib/accordion-item.ts","../../../../../../libs/ui/accordion/xui/src/index.ts","../../../../../../libs/ui/accordion/xui/src/xui-accordion.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation\n} from '@angular/core';\nimport { xui } from '@xui/core';\nimport type { ClassValue } from 'clsx';\n\n/**\n * A vertical stack of expandable sections. By default one panel is open at a\n * time; set `multiple` to let several stay open. `value` is the two-way bindable\n * list of open item values.\n *\n * ```html\n * <xui-accordion [(value)]=\"open\">\n * <xui-accordion-item value=\"a\" title=\"First\">…</xui-accordion-item>\n * <xui-accordion-item value=\"b\" title=\"Second\">…</xui-accordion-item>\n * </xui-accordion>\n * ```\n */\n@Component({\n selector: 'xui-accordion',\n template: `<ng-content />`,\n host: {\n '[class]': 'computedClass()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiAccordion {\n /** Extra classes, merged into the component's own rather than replacing them. */\n readonly class = input<ClassValue>('');\n /** Let several items be open at once. By default opening one closes the rest. */\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /** The values of the currently open items. */\n readonly value = model<string[]>([]);\n\n isExpanded(value: string): boolean {\n return this.value().includes(value);\n }\n\n toggle(value: string): void {\n const open = this.value();\n if (open.includes(value)) {\n this.value.set(open.filter(v => v !== value));\n } else {\n this.value.set(this.multiple() ? [...open, value] : [value]);\n }\n }\n\n protected readonly computedClass = computed(() =>\n xui('divide-border border-border block divide-y overflow-hidden rounded-lg border', this.class())\n );\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matExpandMoreRound } from '@ng-icons/material-icons/round';\nimport { xui } from '@xui/core';\nimport { XuiIcon } from '@xui/icon';\nimport { XuiAccordion } from './accordion';\n\n/**\n * One section of an {@link XuiAccordion}. `value` identifies it within the group;\n * `title` is the header label (or project `[xuiAccordionTitle]` for rich content).\n * The body is the default projected content.\n */\n@Component({\n selector: 'xui-accordion-item',\n template: `\n <h3 class=\"flex\">\n <button\n type=\"button\"\n [class]=\"triggerClass()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"toggle()\"\n >\n <span class=\"flex-1 text-start\">{{ title() }}<ng-content select=\"[xuiAccordionTitle]\" /></span>\n <ng-icon\n xui\n size=\"sm\"\n color=\"muted\"\n name=\"matExpandMoreRound\"\n class=\"duration-base shrink-0 transition-transform\"\n [class.rotate-180]=\"open()\"\n />\n </button>\n </h3>\n\n <div [class]=\"regionClass()\" role=\"region\" [attr.aria-hidden]=\"!open()\">\n <div class=\"min-h-0 overflow-hidden\">\n <div class=\"text-foreground-muted px-4 pt-0 pb-4 text-sm\">\n <ng-content />\n </div>\n </div>\n </div>\n `,\n host: {\n class: 'block'\n },\n imports: [NgIcon, XuiIcon],\n viewProviders: [provideIcons({ matExpandMoreRound })],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiAccordionItem {\n private readonly accordion = inject(XuiAccordion);\n\n /** The item's key, used by the accordion to track which items are expanded. Must be unique within the accordion. */\n readonly value = input.required<string>();\n /** The header text. Project `[xuiAccordionTitle]` content instead when the header needs markup. */\n readonly title = input<string>('');\n /** Make the item unopenable. The header stays visible but no longer toggles. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly open = computed(() => this.accordion.isExpanded(this.value()));\n\n protected toggle(): void {\n if (!this.disabled()) {\n this.accordion.toggle(this.value());\n }\n }\n\n protected readonly triggerClass = computed(() =>\n xui(\n 'text-foreground hover:bg-surface-inset flex flex-1 items-center gap-2 px-4 py-3 text-sm font-medium outline-none disabled:opacity-50',\n 'focus-visible:ring-focus focus-visible:ring-2 focus-visible:ring-inset'\n )\n );\n\n // A grid collapsing from 1fr → 0fr animates the height without measuring it.\n protected readonly regionClass = computed(() =>\n xui('grid transition-[grid-template-rows] duration-base', this.open() ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]')\n );\n}\n","import { XuiAccordion } from './lib/accordion';\nimport { XuiAccordionItem } from './lib/accordion-item';\n\nexport * from './lib/accordion';\nexport * from './lib/accordion-item';\n\nexport const XuiAccordionImports = [XuiAccordion, XuiAccordionItem] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xui/accordion",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.21",
|
|
4
4
|
"description": "Modern Angular 22 UI Library based on TailwindCSS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"@angular/core": "22",
|
|
41
41
|
"@ng-icons/core": "34",
|
|
42
42
|
"@ng-icons/material-icons": "34",
|
|
43
|
-
"@xui/core": "2.0.0-alpha.
|
|
44
|
-
"@xui/icon": "2.0.0-alpha.
|
|
43
|
+
"@xui/core": "2.0.0-alpha.21",
|
|
44
|
+
"@xui/icon": "2.0.0-alpha.21",
|
|
45
45
|
"clsx": "^2.1.1"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
package/types/xui-accordion.d.ts
CHANGED
|
@@ -15,7 +15,9 @@ import { ClassValue } from 'clsx';
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
declare class XuiAccordion {
|
|
18
|
+
/** Extra classes, merged into the component's own rather than replacing them. */
|
|
18
19
|
readonly class: _angular_core.InputSignal<ClassValue>;
|
|
20
|
+
/** Let several items be open at once. By default opening one closes the rest. */
|
|
19
21
|
readonly multiple: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
20
22
|
/** The values of the currently open items. */
|
|
21
23
|
readonly value: _angular_core.ModelSignal<string[]>;
|
|
@@ -33,8 +35,11 @@ declare class XuiAccordion {
|
|
|
33
35
|
*/
|
|
34
36
|
declare class XuiAccordionItem {
|
|
35
37
|
private readonly accordion;
|
|
38
|
+
/** The item's key, used by the accordion to track which items are expanded. Must be unique within the accordion. */
|
|
36
39
|
readonly value: _angular_core.InputSignal<string>;
|
|
40
|
+
/** The header text. Project `[xuiAccordionTitle]` content instead when the header needs markup. */
|
|
37
41
|
readonly title: _angular_core.InputSignal<string>;
|
|
42
|
+
/** Make the item unopenable. The header stays visible but no longer toggles. */
|
|
38
43
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
39
44
|
protected readonly open: _angular_core.Signal<boolean>;
|
|
40
45
|
protected toggle(): void;
|