@hug/hospitality 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (36) hide show
  1. package/fesm2022/buttons.mjs +69 -0
  2. package/fesm2022/buttons.mjs.map +1 -0
  3. package/fesm2022/checkbox.mjs +26 -0
  4. package/fesm2022/checkbox.mjs.map +1 -0
  5. package/fesm2022/chips.mjs +49 -0
  6. package/fesm2022/chips.mjs.map +1 -0
  7. package/fesm2022/form-field.mjs +20 -1
  8. package/fesm2022/form-field.mjs.map +1 -1
  9. package/fesm2022/overlay-selection-list.mjs +114 -0
  10. package/fesm2022/overlay-selection-list.mjs.map +1 -0
  11. package/fesm2022/tokens.mjs +3226 -2856
  12. package/fesm2022/tokens.mjs.map +1 -1
  13. package/material/app-bar/app-bar.scss +0 -5
  14. package/material/button/button.scss +51 -37
  15. package/material/checkbox/checkbox.scss +16 -0
  16. package/material/chips/chips.scss +139 -0
  17. package/material/dialog/dialog.scss +26 -5
  18. package/material/filters-group/filters-group.scss +14 -0
  19. package/material/form-field/form-field.scss +19 -15
  20. package/material/icon/icon.scss +37 -0
  21. package/material/overlay-selection-list/overlay-selection-list.scss +145 -0
  22. package/material/scrollbar/scrollbar.scss +14 -0
  23. package/material/theme/theme.scss +141 -19
  24. package/package.json +27 -15
  25. package/tokens/tokens.css +258 -329
  26. package/types/buttons.d.ts +25 -0
  27. package/types/checkbox.d.ts +9 -0
  28. package/types/chips.d.ts +18 -0
  29. package/types/form-field.d.ts +9 -1
  30. package/types/overlay-selection-list.d.ts +19 -0
  31. package/types/tokens.d.ts +8 -2
  32. package/material/actions-group/actions-group.scss +0 -10
  33. package/material/layout/layout.scss +0 -6
  34. package/material/main-bar/main-bar.scss +0 -6
  35. package/material/panel/panel.scss +0 -8
  36. package/material/search-bar-container/search-bar-container.scss +0 -13
@@ -0,0 +1,69 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
3
+
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ class HyButtonAppearanceDirective {
6
+ hyAppearance = input(null, ...(ngDevMode ? [{ debugName: "hyAppearance" }] : []));
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyButtonAppearanceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyButtonAppearanceDirective, isStandalone: true, selector: "button[matButton]:not([matButton=\"outlined\"]):not([matButton=\"tonal\"]):not([matButton=\"elevated\"])", inputs: { hyAppearance: { classPropertyName: "hyAppearance", publicName: "hyAppearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hyAppearance": "hyAppearance()" } }, ngImport: i0 });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyButtonAppearanceDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'button[matButton]:not([matButton="outlined"]):not([matButton="tonal"]):not([matButton="elevated"])',
14
+ standalone: true,
15
+ host: {
16
+ '[attr.hyAppearance]': 'hyAppearance()'
17
+ }
18
+ }]
19
+ }], propDecorators: { hyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "hyAppearance", required: false }] }] } });
20
+
21
+ /* eslint-disable @typescript-eslint/naming-convention */
22
+ class HyButtonSizeDirective {
23
+ hySize = input(null, ...(ngDevMode ? [{ debugName: "hySize" }] : []));
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyButtonSizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
25
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyButtonSizeDirective, isStandalone: true, selector: "button[hySize]", inputs: { hySize: { classPropertyName: "hySize", publicName: "hySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hySize": "hySize()" } }, ngImport: i0 });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyButtonSizeDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: 'button[hySize]',
31
+ standalone: true,
32
+ host: {
33
+ '[attr.hySize]': 'hySize()'
34
+ }
35
+ }]
36
+ }], propDecorators: { hySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hySize", required: false }] }] } });
37
+
38
+ /* eslint-disable @typescript-eslint/naming-convention */
39
+ class HyIconButtonAppearanceDirective {
40
+ hyAppearance = input(null, ...(ngDevMode ? [{ debugName: "hyAppearance" }] : []));
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyIconButtonAppearanceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyIconButtonAppearanceDirective, isStandalone: true, selector: "\n button[matIconButton][hyAppearance]\n ", inputs: { hyAppearance: { classPropertyName: "hyAppearance", publicName: "hyAppearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hyAppearance": "hyAppearance()" } }, ngImport: i0 });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyIconButtonAppearanceDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: `
48
+ button[matIconButton][hyAppearance]
49
+ `,
50
+ standalone: true,
51
+ host: {
52
+ '[attr.hyAppearance]': 'hyAppearance()'
53
+ }
54
+ }]
55
+ }], propDecorators: { hyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "hyAppearance", required: false }] }] } });
56
+
57
+ // eslint-disable-next-line @typescript-eslint/naming-convention
58
+ const HyButtonStylingDirectives = [
59
+ HyButtonSizeDirective,
60
+ HyButtonAppearanceDirective,
61
+ HyIconButtonAppearanceDirective
62
+ ];
63
+
64
+ /**
65
+ * Generated bundle index. Do not edit.
66
+ */
67
+
68
+ export { HyButtonAppearanceDirective, HyButtonSizeDirective, HyButtonStylingDirectives, HyIconButtonAppearanceDirective };
69
+ //# sourceMappingURL=buttons.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttons.mjs","sources":["../../material/button/directives/button-appearance.directive.ts","../../material/button/directives/button-size.directive.ts","../../material/button/directives/icon-button-appearance.directive.ts","../../material/button/directives/button-styling.directives.ts","../../material/button/buttons.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HyAppearanceType = 'warning';\n\n@Directive({\n selector: 'button[matButton]:not([matButton=\"outlined\"]):not([matButton=\"tonal\"]):not([matButton=\"elevated\"])',\n standalone: true,\n host: {\n '[attr.hyAppearance]': 'hyAppearance()'\n }\n})\nexport class HyButtonAppearanceDirective {\n public hyAppearance = input<HyAppearanceType | null>(null);\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HySizeType = 'small' | 'medium' | 'x-large';\n\n@Directive({\n selector: 'button[hySize]',\n standalone: true,\n host: {\n '[attr.hySize]': 'hySize()'\n }\n})\nexport class HyButtonSizeDirective {\n public hySize = input<HySizeType | null>(null);\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HyAppearanceIconType = 'warning' | 'warning-filled' | 'tonal' | 'filled';\n\n@Directive({\n selector: `\n button[matIconButton][hyAppearance]\n `,\n standalone: true,\n host: {\n '[attr.hyAppearance]': 'hyAppearance()'\n }\n})\nexport class HyIconButtonAppearanceDirective {\n public hyAppearance = input<HyAppearanceIconType | null>(null);\n}\n","import { HyButtonAppearanceDirective } from './button-appearance.directive';\nimport { HyButtonSizeDirective } from './button-size.directive';\nimport { HyIconButtonAppearanceDirective } from './icon-button-appearance.directive';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const HyButtonStylingDirectives = [\n HyButtonSizeDirective,\n HyButtonAppearanceDirective,\n HyIconButtonAppearanceDirective\n] as const;\n\nexport {\n HyButtonAppearanceDirective, HyButtonSizeDirective, HyIconButtonAppearanceDirective\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;MAYa,2BAA2B,CAAA;AAC7B,IAAA,YAAY,GAAG,KAAK,CAA0B,IAAI,wDAAC;uGADjD,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0GAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oGAAoG;AAC9G,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE;AAC1B;AACJ,iBAAA;;;ACXD;MAYa,qBAAqB,CAAA;AACvB,IAAA,MAAM,GAAG,KAAK,CAAoB,IAAI,kDAAC;uGADrC,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE;AACpB;AACJ,iBAAA;;;ACXD;MAca,+BAA+B,CAAA;AACjC,IAAA,YAAY,GAAG,KAAK,CAA8B,IAAI,wDAAC;uGADrD,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAT3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;;AAET,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE;AAC1B;AACJ,iBAAA;;;ACTD;AACO,MAAM,yBAAyB,GAAG;IACrC,qBAAqB;IACrB,2BAA2B;IAC3B;;;ACRJ;;AAEG;;;;"}
@@ -0,0 +1,26 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
3
+
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ class HyCheckboxAppearanceDirective {
6
+ hyAppearance = input(null, ...(ngDevMode ? [{ debugName: "hyAppearance" }] : []));
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyCheckboxAppearanceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyCheckboxAppearanceDirective, isStandalone: true, selector: "mat-checkbox[hyAppearance]", inputs: { hyAppearance: { classPropertyName: "hyAppearance", publicName: "hyAppearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hyAppearance": "hyAppearance()" } }, ngImport: i0 });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyCheckboxAppearanceDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'mat-checkbox[hyAppearance]',
14
+ standalone: true,
15
+ host: {
16
+ '[attr.hyAppearance]': 'hyAppearance()'
17
+ }
18
+ }]
19
+ }], propDecorators: { hyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "hyAppearance", required: false }] }] } });
20
+
21
+ /**
22
+ * Generated bundle index. Do not edit.
23
+ */
24
+
25
+ export { HyCheckboxAppearanceDirective };
26
+ //# sourceMappingURL=checkbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.mjs","sources":["../../material/checkbox/checkbox-appearance.directive.ts","../../material/checkbox/checkbox.ts"],"sourcesContent":["\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HyCheckboxAppearanceType = 'error';\n\n@Directive({\n selector: 'mat-checkbox[hyAppearance]',\n standalone: true,\n host: {\n '[attr.hyAppearance]': 'hyAppearance()'\n }\n})\nexport class HyCheckboxAppearanceDirective {\n public hyAppearance = input<HyCheckboxAppearanceType | null>(null);\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AACA;MAYa,6BAA6B,CAAA;AAC/B,IAAA,YAAY,GAAG,KAAK,CAAkC,IAAI,wDAAC;uGADzD,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,qBAAqB,EAAE;AAC1B;AACJ,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -0,0 +1,49 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
3
+
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ class HyChipColorDirective {
6
+ hyColor = input(false, ...(ngDevMode ? [{ debugName: "hyColor" }] : []));
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyChipColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyChipColorDirective, isStandalone: true, selector: "mat-chip[hyColor]", inputs: { hyColor: { classPropertyName: "hyColor", publicName: "hyColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hyColor": "hyColor() ? \"\" : null" } }, ngImport: i0 });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyChipColorDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'mat-chip[hyColor]',
14
+ standalone: true,
15
+ host: {
16
+ '[attr.hyColor]': 'hyColor() ? "" : null'
17
+ }
18
+ }]
19
+ }], propDecorators: { hyColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "hyColor", required: false }] }] } });
20
+
21
+ /* eslint-disable @typescript-eslint/naming-convention */
22
+ class HyChipSizeDirective {
23
+ hySize = input(null, ...(ngDevMode ? [{ debugName: "hySize" }] : []));
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyChipSizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
25
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyChipSizeDirective, isStandalone: true, selector: "mat-chip[hySize]", inputs: { hySize: { classPropertyName: "hySize", publicName: "hySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hySize": "hySize()" } }, ngImport: i0 });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyChipSizeDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: 'mat-chip[hySize]',
31
+ standalone: true,
32
+ host: {
33
+ '[attr.hySize]': 'hySize()'
34
+ }
35
+ }]
36
+ }], propDecorators: { hySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hySize", required: false }] }] } });
37
+
38
+ // eslint-disable-next-line @typescript-eslint/naming-convention
39
+ const HyChipStylingDirectives = [
40
+ HyChipSizeDirective,
41
+ HyChipColorDirective
42
+ ];
43
+
44
+ /**
45
+ * Generated bundle index. Do not edit.
46
+ */
47
+
48
+ export { HyChipColorDirective, HyChipSizeDirective, HyChipStylingDirectives };
49
+ //# sourceMappingURL=chips.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips.mjs","sources":["../../material/chips/directives/chips-color.directive.ts","../../material/chips/directives/chips-size.directive.ts","../../material/chips/directives/chips-styling.directives.ts","../../material/chips/chips.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\n@Directive({\n selector: 'mat-chip[hyColor]',\n standalone: true,\n host: {\n '[attr.hyColor]': 'hyColor() ? \"\" : null'\n }\n})\nexport class HyChipColorDirective {\n public hyColor = input<boolean>(false);\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HySizeType = 'x-small' | 'medium';\n\n@Directive({\n selector: 'mat-chip[hySize]',\n standalone: true,\n host: {\n '[attr.hySize]': 'hySize()'\n }\n})\nexport class HyChipSizeDirective {\n public hySize = input<HySizeType | null>(null);\n}\n","import { HyChipColorDirective } from './chips-color.directive';\nimport { HyChipSizeDirective } from './chips-size.directive';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const HyChipStylingDirectives = [\n HyChipSizeDirective,\n HyChipColorDirective\n] as const;\n\nexport {\n HyChipColorDirective, HyChipSizeDirective\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;MAUa,oBAAoB,CAAA;AACtB,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;uGAD7B,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,gBAAgB,EAAE;AACrB;AACJ,iBAAA;;;ACTD;MAYa,mBAAmB,CAAA;AACrB,IAAA,MAAM,GAAG,KAAK,CAAoB,IAAI,kDAAC;uGADrC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE;AACpB;AACJ,iBAAA;;;ACRD;AACO,MAAM,uBAAuB,GAAG;IACnC,mBAAmB;IACnB;;;ACNJ;;AAEG;;;;"}
@@ -1,5 +1,24 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
1
3
  import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
2
4
 
5
+ /* eslint-disable @typescript-eslint/naming-convention */
6
+ class HyFormFieldSizeDirective {
7
+ hySize = input(null, ...(ngDevMode ? [{ debugName: "hySize" }] : []));
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyFormFieldSizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: HyFormFieldSizeDirective, isStandalone: true, selector: "mat-form-field[hySize]", inputs: { hySize: { classPropertyName: "hySize", publicName: "hySize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.hySize": "hySize()" } }, ngImport: i0 });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HyFormFieldSizeDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: 'mat-form-field[hySize]',
15
+ standalone: true,
16
+ host: {
17
+ '[attr.hySize]': 'hySize()'
18
+ }
19
+ }]
20
+ }], propDecorators: { hySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hySize", required: false }] }] } });
21
+
3
22
  const provideHyFormField = () => ({
4
23
  provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
5
24
  useValue: { appearance: 'outline' }
@@ -9,5 +28,5 @@ const provideHyFormField = () => ({
9
28
  * Generated bundle index. Do not edit.
10
29
  */
11
30
 
12
- export { provideHyFormField };
31
+ export { HyFormFieldSizeDirective, provideHyFormField };
13
32
  //# sourceMappingURL=form-field.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.mjs","sources":["../../material/form-field/form-field.provider.ts","../../material/form-field/form-field.ts"],"sourcesContent":["import type { Provider } from '@angular/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\nexport const provideHyFormField = (): Provider => ({\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: 'outline' }\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAGO,MAAM,kBAAkB,GAAG,OAAiB;AAC/C,IAAA,OAAO,EAAE,8BAA8B;AACvC,IAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS;AACpC,CAAA;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"form-field.mjs","sources":["../../material/form-field/form-field-size.directive.ts","../../material/form-field/form-field.provider.ts","../../material/form-field/form-field.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Directive, input } from '@angular/core';\n\nexport type HyFormFieldSizeType = 'small' | 'medium' | 'large';\n\n@Directive({\n selector: 'mat-form-field[hySize]',\n standalone: true,\n host: {\n '[attr.hySize]': 'hySize()'\n }\n})\nexport class HyFormFieldSizeDirective {\n public hySize = input<HyFormFieldSizeType | null>(null);\n}\n","import type { Provider } from '@angular/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\nexport const provideHyFormField = (): Provider => ({\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: 'outline' }\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;MAYa,wBAAwB,CAAA;AAC1B,IAAA,MAAM,GAAG,KAAK,CAA6B,IAAI,kDAAC;uGAD9C,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE;AACpB;AACJ,iBAAA;;;ACRM,MAAM,kBAAkB,GAAG,OAAiB;AAC/C,IAAA,OAAO,EAAE,8BAA8B;AACvC,IAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS;AACpC,CAAA;;ACND;;AAEG;;;;"}
@@ -0,0 +1,114 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, DestroyRef, NgZone, ElementRef, ContentChildren, Directive } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { NgControl, NgModel } from '@angular/forms';
5
+ import { MatSelectionList, MatListOption } from '@angular/material/list';
6
+
7
+ class HySingleSelectionToggleDirective {
8
+ options;
9
+ elements;
10
+ ngControl = inject(NgControl, {
11
+ self: true,
12
+ optional: true
13
+ });
14
+ selectionList = inject(MatSelectionList);
15
+ destroyRef = inject(DestroyRef);
16
+ zone = inject(NgZone);
17
+ optionCleanups = new Map();
18
+ ngAfterContentInit() {
19
+ if (!this.ngControl?.control) {
20
+ return;
21
+ }
22
+ const syncOptionListeners = () => {
23
+ this.optionCleanups.forEach(cleanup => {
24
+ cleanup();
25
+ });
26
+ this.optionCleanups.clear();
27
+ this.options.forEach((option, index) => {
28
+ const element = this.elements.get(index);
29
+ if (!element) {
30
+ return;
31
+ }
32
+ this.optionCleanups.set(option, this.attachOptionListeners(option, element.nativeElement));
33
+ });
34
+ };
35
+ syncOptionListeners();
36
+ this.options.changes
37
+ .pipe(takeUntilDestroyed(this.destroyRef))
38
+ .subscribe(syncOptionListeners);
39
+ this.elements.changes
40
+ .pipe(takeUntilDestroyed(this.destroyRef))
41
+ .subscribe(syncOptionListeners);
42
+ this.destroyRef.onDestroy(() => {
43
+ this.optionCleanups.forEach(cleanup => {
44
+ cleanup();
45
+ });
46
+ this.optionCleanups.clear();
47
+ });
48
+ }
49
+ attachOptionListeners(option, element) {
50
+ const isToggleBlocked = () => option.disabled || this.selectionList.multiple;
51
+ const toggleOption = () => {
52
+ this.zone.run(() => {
53
+ option.toggle();
54
+ this.updateFormValue();
55
+ });
56
+ };
57
+ const handleClick = (event) => {
58
+ if (isToggleBlocked()) {
59
+ return;
60
+ }
61
+ event.preventDefault();
62
+ event.stopImmediatePropagation();
63
+ toggleOption();
64
+ };
65
+ const handleKeydown = (event) => {
66
+ if (isToggleBlocked() ||
67
+ event.repeat ||
68
+ (event.key !== 'Enter' && event.key !== ' ')) {
69
+ return;
70
+ }
71
+ event.preventDefault();
72
+ event.stopImmediatePropagation();
73
+ toggleOption();
74
+ };
75
+ element.addEventListener('click', handleClick, true);
76
+ element.addEventListener('keydown', handleKeydown, true);
77
+ return () => {
78
+ element.removeEventListener('click', handleClick, true);
79
+ element.removeEventListener('keydown', handleKeydown, true);
80
+ };
81
+ }
82
+ updateFormValue() {
83
+ const value = this.selectionList.selectedOptions.selected.map((option) => option.value);
84
+ this.ngControl?.control?.setValue(value);
85
+ if (this.ngControl instanceof NgModel) {
86
+ this.ngControl.viewToModelUpdate(value);
87
+ }
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HySingleSelectionToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
90
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: HySingleSelectionToggleDirective, isStandalone: true, selector: "mat-selection-list[hySingleSelectionToggle]", queries: [{ propertyName: "options", predicate: MatListOption, descendants: true }, { propertyName: "elements", predicate: MatListOption, descendants: true, read: ElementRef }], ngImport: i0 });
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: HySingleSelectionToggleDirective, decorators: [{
93
+ type: Directive,
94
+ args: [{
95
+ selector: 'mat-selection-list[hySingleSelectionToggle]',
96
+ standalone: true
97
+ }]
98
+ }], propDecorators: { options: [{
99
+ type: ContentChildren,
100
+ args: [MatListOption, { descendants: true }]
101
+ }], elements: [{
102
+ type: ContentChildren,
103
+ args: [MatListOption, {
104
+ descendants: true,
105
+ read: ElementRef
106
+ }]
107
+ }] } });
108
+
109
+ /**
110
+ * Generated bundle index. Do not edit.
111
+ */
112
+
113
+ export { HySingleSelectionToggleDirective };
114
+ //# sourceMappingURL=overlay-selection-list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-selection-list.mjs","sources":["../../material/overlay-selection-list/single-selection-toggle.directive.ts","../../material/overlay-selection-list/overlay-selection-list.ts"],"sourcesContent":["import {\n type AfterContentInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n NgZone,\n type QueryList\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl, NgModel } from '@angular/forms';\nimport {\n MatListOption,\n MatSelectionList\n} from '@angular/material/list';\n\n@Directive({\n selector: 'mat-selection-list[hySingleSelectionToggle]',\n standalone: true\n})\nexport class HySingleSelectionToggleDirective implements AfterContentInit {\n @ContentChildren(MatListOption, { descendants: true })\n private readonly options!: QueryList<MatListOption>;\n\n @ContentChildren(MatListOption, {\n descendants: true,\n read: ElementRef\n })\n private readonly elements!: QueryList<ElementRef<HTMLElement>>;\n\n private readonly ngControl = inject(NgControl, {\n self: true,\n optional: true\n });\n\n private readonly selectionList = inject(MatSelectionList);\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly optionCleanups = new Map<MatListOption, () => void>();\n\n public ngAfterContentInit(): void {\n if (!this.ngControl?.control) {\n return;\n }\n\n const syncOptionListeners = (): void => {\n this.optionCleanups.forEach(cleanup => {\n cleanup();\n });\n this.optionCleanups.clear();\n\n this.options.forEach((option, index) => {\n const element = this.elements.get(index);\n\n if (!element) {\n return;\n }\n\n this.optionCleanups.set(\n option,\n this.attachOptionListeners(option, element.nativeElement)\n );\n });\n };\n\n syncOptionListeners();\n\n this.options.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(syncOptionListeners);\n\n this.elements.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(syncOptionListeners);\n\n this.destroyRef.onDestroy(() => {\n this.optionCleanups.forEach(cleanup => {\n cleanup();\n });\n this.optionCleanups.clear();\n });\n }\n\n private attachOptionListeners(\n option: MatListOption,\n element: HTMLElement\n ): () => void {\n const isToggleBlocked = (): boolean =>\n option.disabled || this.selectionList.multiple;\n\n const toggleOption = (): void => {\n this.zone.run(() => {\n option.toggle();\n this.updateFormValue();\n });\n };\n\n const handleClick = (event: MouseEvent): void => {\n if (isToggleBlocked()) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n toggleOption();\n };\n\n const handleKeydown = (event: KeyboardEvent): void => {\n if (\n isToggleBlocked() ||\n event.repeat ||\n (event.key !== 'Enter' && event.key !== ' ')\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n toggleOption();\n };\n\n element.addEventListener('click', handleClick, true);\n element.addEventListener('keydown', handleKeydown, true);\n\n return (): void => {\n element.removeEventListener('click', handleClick, true);\n element.removeEventListener('keydown', handleKeydown, true);\n };\n }\n\n private updateFormValue(): void {\n const value = this.selectionList.selectedOptions.selected.map(\n (option): unknown => option.value\n );\n\n this.ngControl?.control?.setValue(value);\n\n if (this.ngControl instanceof NgModel) {\n this.ngControl.viewToModelUpdate(value);\n }\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}