@magmonium/one 0.4.47 → 0.4.49

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 (190) hide show
  1. package/assets/i18n/af.json +53 -11
  2. package/assets/i18n/am.json +61 -15
  3. package/assets/i18n/ar.json +59 -27
  4. package/assets/i18n/as.json +56 -16
  5. package/assets/i18n/az.json +56 -14
  6. package/assets/i18n/ba.json +50 -11
  7. package/assets/i18n/be.json +53 -12
  8. package/assets/i18n/bg.json +54 -13
  9. package/assets/i18n/bn.json +64 -13
  10. package/assets/i18n/br.json +51 -10
  11. package/assets/i18n/brx.json +50 -1
  12. package/assets/i18n/bs.json +55 -14
  13. package/assets/i18n/ca.json +53 -11
  14. package/assets/i18n/ceb.json +57 -14
  15. package/assets/i18n/cnr.json +54 -12
  16. package/assets/i18n/co.json +56 -14
  17. package/assets/i18n/cs.json +54 -11
  18. package/assets/i18n/cy.json +49 -11
  19. package/assets/i18n/da.json +54 -11
  20. package/assets/i18n/de.json +50 -21
  21. package/assets/i18n/doi.json +55 -13
  22. package/assets/i18n/el.json +55 -14
  23. package/assets/i18n/en.json +2 -2
  24. package/assets/i18n/eo.json +55 -12
  25. package/assets/i18n/es.json +51 -24
  26. package/assets/i18n/et.json +50 -8
  27. package/assets/i18n/eu.json +54 -12
  28. package/assets/i18n/fa.json +53 -12
  29. package/assets/i18n/fi.json +53 -11
  30. package/assets/i18n/fr.json +54 -24
  31. package/assets/i18n/fy.json +56 -12
  32. package/assets/i18n/ga.json +50 -11
  33. package/assets/i18n/gd.json +52 -13
  34. package/assets/i18n/gl.json +56 -12
  35. package/assets/i18n/gu.json +64 -13
  36. package/assets/i18n/ha.json +58 -13
  37. package/assets/i18n/haw.json +48 -12
  38. package/assets/i18n/he.json +51 -10
  39. package/assets/i18n/hi.json +61 -26
  40. package/assets/i18n/hmn.json +53 -12
  41. package/assets/i18n/hr.json +54 -11
  42. package/assets/i18n/hu.json +54 -13
  43. package/assets/i18n/hy.json +59 -12
  44. package/assets/i18n/id.json +48 -9
  45. package/assets/i18n/ie.json +48 -2
  46. package/assets/i18n/ig.json +50 -9
  47. package/assets/i18n/ilo.json +40 -9
  48. package/assets/i18n/is.json +53 -11
  49. package/assets/i18n/it.json +50 -21
  50. package/assets/i18n/iw.json +51 -10
  51. package/assets/i18n/ja.json +56 -26
  52. package/assets/i18n/jw.json +48 -10
  53. package/assets/i18n/ka.json +54 -10
  54. package/assets/i18n/kk.json +49 -10
  55. package/assets/i18n/km.json +53 -12
  56. package/assets/i18n/kn.json +62 -11
  57. package/assets/i18n/ko.json +53 -22
  58. package/assets/i18n/kok.json +53 -11
  59. package/assets/i18n/ks.json +49 -1
  60. package/assets/i18n/ku.json +52 -13
  61. package/assets/i18n/ky.json +52 -12
  62. package/assets/i18n/la.json +52 -9
  63. package/assets/i18n/lb.json +54 -9
  64. package/assets/i18n/lo.json +50 -9
  65. package/assets/i18n/lt.json +55 -10
  66. package/assets/i18n/lv.json +54 -9
  67. package/assets/i18n/ma.json +54 -1
  68. package/assets/i18n/mai.json +50 -10
  69. package/assets/i18n/me.json +49 -0
  70. package/assets/i18n/mg.json +55 -10
  71. package/assets/i18n/mi.json +55 -12
  72. package/assets/i18n/mk.json +52 -8
  73. package/assets/i18n/ml.json +59 -8
  74. package/assets/i18n/mn.json +54 -10
  75. package/assets/i18n/mni.json +52 -0
  76. package/assets/i18n/mr.json +61 -10
  77. package/assets/i18n/ms.json +52 -8
  78. package/assets/i18n/mt.json +54 -10
  79. package/assets/i18n/my.json +54 -11
  80. package/assets/i18n/ne.json +53 -10
  81. package/assets/i18n/nl.json +51 -22
  82. package/assets/i18n/no.json +52 -9
  83. package/assets/i18n/ny.json +53 -11
  84. package/assets/i18n/or.json +61 -9
  85. package/assets/i18n/pa.json +61 -9
  86. package/assets/i18n/pl.json +48 -20
  87. package/assets/i18n/ps.json +50 -8
  88. package/assets/i18n/pt.json +50 -20
  89. package/assets/i18n/rm.json +50 -1
  90. package/assets/i18n/ro.json +52 -10
  91. package/assets/i18n/ru.json +50 -20
  92. package/assets/i18n/sa.json +54 -11
  93. package/assets/i18n/sat.json +55 -11
  94. package/assets/i18n/sc.json +50 -1
  95. package/assets/i18n/sd.json +48 -10
  96. package/assets/i18n/si.json +50 -12
  97. package/assets/i18n/sk.json +48 -9
  98. package/assets/i18n/sl.json +46 -7
  99. package/assets/i18n/sm.json +52 -12
  100. package/assets/i18n/sn.json +48 -9
  101. package/assets/i18n/so.json +50 -11
  102. package/assets/i18n/sq.json +57 -9
  103. package/assets/i18n/sr.json +49 -11
  104. package/assets/i18n/st.json +47 -10
  105. package/assets/i18n/su.json +49 -11
  106. package/assets/i18n/sv.json +44 -6
  107. package/assets/i18n/sw.json +33 -10
  108. package/assets/i18n/ta.json +61 -10
  109. package/assets/i18n/te.json +62 -11
  110. package/assets/i18n/tg.json +50 -11
  111. package/assets/i18n/th.json +51 -12
  112. package/assets/i18n/tl.json +51 -9
  113. package/assets/i18n/tr.json +49 -23
  114. package/assets/i18n/uk.json +47 -9
  115. package/assets/i18n/ur.json +54 -11
  116. package/assets/i18n/uz.json +49 -11
  117. package/assets/i18n/vi.json +47 -7
  118. package/assets/i18n/xh.json +50 -13
  119. package/assets/i18n/yi.json +51 -11
  120. package/assets/i18n/yo.json +51 -11
  121. package/assets/i18n/zh.json +52 -25
  122. package/assets/i18n/zu.json +48 -10
  123. package/assets/icons/svg.json +1 -0
  124. package/assets/icons/wrench.svg +3 -0
  125. package/assets/index.json +1 -1
  126. package/assets/modal/authenticate.json +1 -1
  127. package/fesm2022/{magmonium-one-attribute-value-C1lqou2L.mjs → magmonium-one-attribute-value-DnctyCKp.mjs} +3 -3
  128. package/fesm2022/{magmonium-one-attribute-value-C1lqou2L.mjs.map → magmonium-one-attribute-value-DnctyCKp.mjs.map} +1 -1
  129. package/fesm2022/{magmonium-one-base-checkbox-CIxAiA4Q.mjs → magmonium-one-base-checkbox-D3Z1FTXU.mjs} +2 -2
  130. package/fesm2022/{magmonium-one-base-checkbox-CIxAiA4Q.mjs.map → magmonium-one-base-checkbox-D3Z1FTXU.mjs.map} +1 -1
  131. package/fesm2022/{magmonium-one-base-dropdown-XpTWe4Ii.mjs → magmonium-one-base-dropdown-DIaimBpG.mjs} +10 -10
  132. package/fesm2022/{magmonium-one-base-dropdown-XpTWe4Ii.mjs.map → magmonium-one-base-dropdown-DIaimBpG.mjs.map} +1 -1
  133. package/fesm2022/{magmonium-one-base-input-C1Ek0Ezm.mjs → magmonium-one-base-input-CZyIcKrn.mjs} +2 -2
  134. package/fesm2022/{magmonium-one-base-input-C1Ek0Ezm.mjs.map → magmonium-one-base-input-CZyIcKrn.mjs.map} +1 -1
  135. package/fesm2022/{magmonium-one-base-text-Di2V2ojp.mjs → magmonium-one-base-text-6T8KrJbz.mjs} +2 -2
  136. package/fesm2022/{magmonium-one-base-text-Di2V2ojp.mjs.map → magmonium-one-base-text-6T8KrJbz.mjs.map} +1 -1
  137. package/fesm2022/{magmonium-one-button-DZ4wCJgb.mjs → magmonium-one-button-BKGxIBhw.mjs} +7 -7
  138. package/fesm2022/{magmonium-one-button-DZ4wCJgb.mjs.map → magmonium-one-button-BKGxIBhw.mjs.map} +1 -1
  139. package/fesm2022/{magmonium-one-checkbox-R-hPZrCa.mjs → magmonium-one-checkbox-D1W18OGo.mjs} +5 -5
  140. package/fesm2022/{magmonium-one-checkbox-R-hPZrCa.mjs.map → magmonium-one-checkbox-D1W18OGo.mjs.map} +1 -1
  141. package/fesm2022/{magmonium-one-color-utl-DI5p24iQ.mjs → magmonium-one-color-utl-DklqRa3m.mjs} +38 -13
  142. package/fesm2022/magmonium-one-color-utl-DklqRa3m.mjs.map +1 -0
  143. package/fesm2022/{magmonium-one-directives-B93p5bAL.mjs → magmonium-one-directives-R099YTUd.mjs} +217 -217
  144. package/fesm2022/magmonium-one-directives-R099YTUd.mjs.map +1 -0
  145. package/fesm2022/{magmonium-one-group-B7YeUd1u.mjs → magmonium-one-group-Blvejahi.mjs} +7 -7
  146. package/fesm2022/{magmonium-one-group-B7YeUd1u.mjs.map → magmonium-one-group-Blvejahi.mjs.map} +1 -1
  147. package/fesm2022/{magmonium-one-header-DUiBhPUP.mjs → magmonium-one-header-qoXWebFN.mjs} +4 -4
  148. package/fesm2022/{magmonium-one-header-DUiBhPUP.mjs.map → magmonium-one-header-qoXWebFN.mjs.map} +1 -1
  149. package/fesm2022/{magmonium-one-icon-C3jwzbb2.mjs → magmonium-one-icon-Ce44a1mo.mjs} +5 -4
  150. package/fesm2022/magmonium-one-icon-Ce44a1mo.mjs.map +1 -0
  151. package/fesm2022/{magmonium-one-image-editor-BRTk8i4O.mjs → magmonium-one-image-editor-DKiscgQU.mjs} +4 -4
  152. package/fesm2022/{magmonium-one-image-editor-BRTk8i4O.mjs.map → magmonium-one-image-editor-DKiscgQU.mjs.map} +1 -1
  153. package/fesm2022/{magmonium-one-label-D_rU82nD.mjs → magmonium-one-label-lYMBMB7p.mjs} +2 -2
  154. package/fesm2022/{magmonium-one-label-D_rU82nD.mjs.map → magmonium-one-label-lYMBMB7p.mjs.map} +1 -1
  155. package/fesm2022/{magmonium-one-m-ref-CEms7B6-.mjs → magmonium-one-m-ref-DVe-WAYR.mjs} +2 -2
  156. package/fesm2022/{magmonium-one-m-ref-CEms7B6-.mjs.map → magmonium-one-m-ref-DVe-WAYR.mjs.map} +1 -1
  157. package/fesm2022/{magmonium-one-menu-cO34OcJc.mjs → magmonium-one-menu-DcqfcU1p.mjs} +6 -6
  158. package/fesm2022/{magmonium-one-menu-cO34OcJc.mjs.map → magmonium-one-menu-DcqfcU1p.mjs.map} +1 -1
  159. package/fesm2022/{magmonium-one-multi-range-Bq3_3NHg.mjs → magmonium-one-multi-range-m86SzSZO.mjs} +3 -3
  160. package/fesm2022/{magmonium-one-multi-range-Bq3_3NHg.mjs.map → magmonium-one-multi-range-m86SzSZO.mjs.map} +1 -1
  161. package/fesm2022/{magmonium-one-options-asset-BMd7W0Mk.mjs → magmonium-one-options-asset-CIKSNq4B.mjs} +2 -2
  162. package/fesm2022/{magmonium-one-options-asset-BMd7W0Mk.mjs.map → magmonium-one-options-asset-CIKSNq4B.mjs.map} +1 -1
  163. package/fesm2022/{magmonium-one-otp-V2tFztLx.mjs → magmonium-one-otp-BrR0mijm.mjs} +5 -5
  164. package/fesm2022/{magmonium-one-otp-V2tFztLx.mjs.map → magmonium-one-otp-BrR0mijm.mjs.map} +1 -1
  165. package/fesm2022/{magmonium-one-password-IdllPMUw.mjs → magmonium-one-password-CKIAFzs9.mjs} +6 -6
  166. package/fesm2022/{magmonium-one-password-IdllPMUw.mjs.map → magmonium-one-password-CKIAFzs9.mjs.map} +1 -1
  167. package/fesm2022/{magmonium-one-radio-BAL3-3j5.mjs → magmonium-one-radio-6oN9j_F6.mjs} +3 -3
  168. package/fesm2022/{magmonium-one-radio-BAL3-3j5.mjs.map → magmonium-one-radio-6oN9j_F6.mjs.map} +1 -1
  169. package/fesm2022/{magmonium-one-range-Cf7yUnhN.mjs → magmonium-one-range-BmimLpG6.mjs} +4 -4
  170. package/fesm2022/{magmonium-one-range-Cf7yUnhN.mjs.map → magmonium-one-range-BmimLpG6.mjs.map} +1 -1
  171. package/fesm2022/{magmonium-one-selector-DAEI_0JX.mjs → magmonium-one-selector-CLSwVQCJ.mjs} +4 -4
  172. package/fesm2022/{magmonium-one-selector-DAEI_0JX.mjs.map → magmonium-one-selector-CLSwVQCJ.mjs.map} +1 -1
  173. package/fesm2022/{magmonium-one-size-converter-BOBD8nHy.mjs → magmonium-one-size-converter-DFIowQHO.mjs} +13 -2
  174. package/fesm2022/magmonium-one-size-converter-DFIowQHO.mjs.map +1 -0
  175. package/fesm2022/{magmonium-one-text-BnTkYLJe.mjs → magmonium-one-text-evdqwPEz.mjs} +6 -6
  176. package/fesm2022/{magmonium-one-text-BnTkYLJe.mjs.map → magmonium-one-text-evdqwPEz.mjs.map} +1 -1
  177. package/fesm2022/{magmonium-one-text-output-BZU61QIF.mjs → magmonium-one-text-output-BnS5Skz-.mjs} +4 -4
  178. package/fesm2022/{magmonium-one-text-output-BZU61QIF.mjs.map → magmonium-one-text-output-BnS5Skz-.mjs.map} +1 -1
  179. package/fesm2022/magmonium-one-theme-DPBeYB-G.mjs +1 -0
  180. package/fesm2022/{magmonium-one-toggle-V_YnZXx5.mjs → magmonium-one-toggle-BIoiSggh.mjs} +3 -3
  181. package/fesm2022/{magmonium-one-toggle-V_YnZXx5.mjs.map → magmonium-one-toggle-BIoiSggh.mjs.map} +1 -1
  182. package/fesm2022/magmonium-one.mjs +10695 -10491
  183. package/fesm2022/magmonium-one.mjs.map +1 -1
  184. package/package.json +1 -1
  185. package/types/magmonium-one.d.ts +95 -21
  186. package/fesm2022/magmonium-one-color-utl-DI5p24iQ.mjs.map +0 -1
  187. package/fesm2022/magmonium-one-directives-B93p5bAL.mjs.map +0 -1
  188. package/fesm2022/magmonium-one-icon-C3jwzbb2.mjs.map +0 -1
  189. package/fesm2022/magmonium-one-size-converter-BOBD8nHy.mjs.map +0 -1
  190. package/fesm2022/magmonium-one-theme-DYvNIWmo.mjs +0 -1
@@ -1,8 +1,219 @@
1
- import { B as IS_DESIGN_MODE, a as resolveSpacing } from "./magmonium-one-size-converter-BOBD8nHy.mjs";
2
- import "./magmonium-one-selector-DAEI_0JX.mjs";
3
- import "./magmonium-one-m-ref-CEms7B6-.mjs";
1
+ import { V as IS_DESIGN_MODE, a as resolveSpacing } from "./magmonium-one-size-converter-DFIowQHO.mjs";
2
+ import "./magmonium-one-selector-CLSwVQCJ.mjs";
3
+ import "./magmonium-one-m-ref-DVe-WAYR.mjs";
4
4
  import * as i0 from "@angular/core";
5
5
  import { Directive, ElementRef, HostListener, InjectionToken, Input, Renderer2, afterRenderEffect, booleanAttribute, computed, effect, inject, input, model, output, signal } from "@angular/core";
6
+ const SPACING_INWARD = new InjectionToken("SPACING_INWARD");
7
+ const isBlank = (value) => value === void 0 || value === null || typeof value === "string" && value.trim() === "";
8
+ const axis = (own, shorthand) => resolveSpacing(isBlank(own) ? shorthand : own);
9
+ var PaddingDirective = class PaddingDirective {
10
+ mPadding = input(void 0, ...ngDevMode ? [{ debugName: "mPadding" }] : /* istanbul ignore next */ []);
11
+ mPaddingX = input(void 0, ...ngDevMode ? [{ debugName: "mPaddingX" }] : /* istanbul ignore next */ []);
12
+ mPaddingY = input(void 0, ...ngDevMode ? [{ debugName: "mPaddingY" }] : /* istanbul ignore next */ []);
13
+ inward = !!inject(SPACING_INWARD, {
14
+ self: true,
15
+ optional: true
16
+ })?.padding;
17
+ inline = computed(() => axis(this.mPaddingX(), this.mPadding()), ...ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []);
18
+ block = computed(() => axis(this.mPaddingY(), this.mPadding()), ...ngDevMode ? [{ debugName: "block" }] : /* istanbul ignore next */ []);
19
+ static ɵfac = i0.ɵɵngDeclareFactory({
20
+ minVersion: "12.0.0",
21
+ version: "22.2.1",
22
+ ngImport: i0,
23
+ type: PaddingDirective,
24
+ deps: [],
25
+ target: i0.ɵɵFactoryTarget.Directive
26
+ });
27
+ static ɵdir = i0.ɵɵngDeclareDirective({
28
+ minVersion: "17.1.0",
29
+ version: "22.2.1",
30
+ type: PaddingDirective,
31
+ isStandalone: true,
32
+ selector: "[mPadding],[mPaddingX],[mPaddingY]",
33
+ inputs: {
34
+ mPadding: {
35
+ classPropertyName: "mPadding",
36
+ publicName: "mPadding",
37
+ isSignal: true,
38
+ isRequired: false,
39
+ transformFunction: null
40
+ },
41
+ mPaddingX: {
42
+ classPropertyName: "mPaddingX",
43
+ publicName: "mPaddingX",
44
+ isSignal: true,
45
+ isRequired: false,
46
+ transformFunction: null
47
+ },
48
+ mPaddingY: {
49
+ classPropertyName: "mPaddingY",
50
+ publicName: "mPaddingY",
51
+ isSignal: true,
52
+ isRequired: false,
53
+ transformFunction: null
54
+ }
55
+ },
56
+ host: {
57
+ properties: {
58
+ "style.--m-padding-inline": "inline()",
59
+ "style.--m-padding-block": "block()",
60
+ "style.padding-inline": "inward ? null : inline()",
61
+ "style.padding-block": "inward ? null : block()"
62
+ },
63
+ classAttribute: "m-padded"
64
+ },
65
+ ngImport: i0
66
+ });
67
+ };
68
+ i0.ɵɵngDeclareClassMetadata({
69
+ minVersion: "12.0.0",
70
+ version: "22.2.1",
71
+ ngImport: i0,
72
+ type: PaddingDirective,
73
+ decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ selector: "[mPadding],[mPaddingX],[mPaddingY]",
77
+ host: {
78
+ class: "m-padded",
79
+ "[style.--m-padding-inline]": "inline()",
80
+ "[style.--m-padding-block]": "block()",
81
+ "[style.padding-inline]": "inward ? null : inline()",
82
+ "[style.padding-block]": "inward ? null : block()"
83
+ }
84
+ }]
85
+ }],
86
+ propDecorators: {
87
+ mPadding: [{
88
+ type: i0.Input,
89
+ args: [{
90
+ isSignal: true,
91
+ alias: "mPadding",
92
+ required: false
93
+ }]
94
+ }],
95
+ mPaddingX: [{
96
+ type: i0.Input,
97
+ args: [{
98
+ isSignal: true,
99
+ alias: "mPaddingX",
100
+ required: false
101
+ }]
102
+ }],
103
+ mPaddingY: [{
104
+ type: i0.Input,
105
+ args: [{
106
+ isSignal: true,
107
+ alias: "mPaddingY",
108
+ required: false
109
+ }]
110
+ }]
111
+ }
112
+ });
113
+ var MarginDirective = class MarginDirective {
114
+ mMargin = input(void 0, ...ngDevMode ? [{ debugName: "mMargin" }] : /* istanbul ignore next */ []);
115
+ mMarginX = input(void 0, ...ngDevMode ? [{ debugName: "mMarginX" }] : /* istanbul ignore next */ []);
116
+ mMarginY = input(void 0, ...ngDevMode ? [{ debugName: "mMarginY" }] : /* istanbul ignore next */ []);
117
+ inward = !!inject(SPACING_INWARD, {
118
+ self: true,
119
+ optional: true
120
+ })?.margin;
121
+ inline = computed(() => axis(this.mMarginX(), this.mMargin()), ...ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []);
122
+ block = computed(() => axis(this.mMarginY(), this.mMargin()), ...ngDevMode ? [{ debugName: "block" }] : /* istanbul ignore next */ []);
123
+ static ɵfac = i0.ɵɵngDeclareFactory({
124
+ minVersion: "12.0.0",
125
+ version: "22.2.1",
126
+ ngImport: i0,
127
+ type: MarginDirective,
128
+ deps: [],
129
+ target: i0.ɵɵFactoryTarget.Directive
130
+ });
131
+ static ɵdir = i0.ɵɵngDeclareDirective({
132
+ minVersion: "17.1.0",
133
+ version: "22.2.1",
134
+ type: MarginDirective,
135
+ isStandalone: true,
136
+ selector: "[mMargin],[mMarginX],[mMarginY]",
137
+ inputs: {
138
+ mMargin: {
139
+ classPropertyName: "mMargin",
140
+ publicName: "mMargin",
141
+ isSignal: true,
142
+ isRequired: false,
143
+ transformFunction: null
144
+ },
145
+ mMarginX: {
146
+ classPropertyName: "mMarginX",
147
+ publicName: "mMarginX",
148
+ isSignal: true,
149
+ isRequired: false,
150
+ transformFunction: null
151
+ },
152
+ mMarginY: {
153
+ classPropertyName: "mMarginY",
154
+ publicName: "mMarginY",
155
+ isSignal: true,
156
+ isRequired: false,
157
+ transformFunction: null
158
+ }
159
+ },
160
+ host: {
161
+ properties: {
162
+ "style.--m-margin-inline": "inline()",
163
+ "style.--m-margin-block": "block()",
164
+ "style.margin-inline": "inward ? null : inline()",
165
+ "style.margin-block": "block()"
166
+ },
167
+ classAttribute: "m-spaced"
168
+ },
169
+ ngImport: i0
170
+ });
171
+ };
172
+ i0.ɵɵngDeclareClassMetadata({
173
+ minVersion: "12.0.0",
174
+ version: "22.2.1",
175
+ ngImport: i0,
176
+ type: MarginDirective,
177
+ decorators: [{
178
+ type: Directive,
179
+ args: [{
180
+ selector: "[mMargin],[mMarginX],[mMarginY]",
181
+ host: {
182
+ class: "m-spaced",
183
+ "[style.--m-margin-inline]": "inline()",
184
+ "[style.--m-margin-block]": "block()",
185
+ "[style.margin-inline]": "inward ? null : inline()",
186
+ "[style.margin-block]": "block()"
187
+ }
188
+ }]
189
+ }],
190
+ propDecorators: {
191
+ mMargin: [{
192
+ type: i0.Input,
193
+ args: [{
194
+ isSignal: true,
195
+ alias: "mMargin",
196
+ required: false
197
+ }]
198
+ }],
199
+ mMarginX: [{
200
+ type: i0.Input,
201
+ args: [{
202
+ isSignal: true,
203
+ alias: "mMarginX",
204
+ required: false
205
+ }]
206
+ }],
207
+ mMarginY: [{
208
+ type: i0.Input,
209
+ args: [{
210
+ isSignal: true,
211
+ alias: "mMarginY",
212
+ required: false
213
+ }]
214
+ }]
215
+ }
216
+ });
6
217
  function isWithinBoundary(value, draggable, axis) {
7
218
  const maxVal = draggable.max?.[axis] ?? (axis === "x" ? window.innerWidth : window.innerHeight);
8
219
  const minVal = draggable.min?.[axis] ?? 0;
@@ -33,7 +244,7 @@ function getCursor({ direction }) {
33
244
  default: return "move";
34
245
  }
35
246
  }
36
- const INTERACTIVE_SELECTOR = "button, a, input, textarea, select, [contenteditable=\"true\"]";
247
+ const INTERACTIVE_SELECTOR = "button, a, input, textarea, select, [role=\"button\"], [contenteditable=\"true\"]";
37
248
  const shouldIgnorePointer = (target) => target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable || !!target.closest(INTERACTIVE_SELECTOR);
38
249
  var DraggableDirective = class DraggableDirective {
39
250
  mDraggable = model.required(...ngDevMode ? [{ debugName: "mDraggable" }] : /* istanbul ignore next */ []);
@@ -1069,217 +1280,6 @@ i0.ɵɵngDeclareClassMetadata({
1069
1280
  }]
1070
1281
  }
1071
1282
  });
1072
- const SPACING_INWARD = new InjectionToken("SPACING_INWARD");
1073
- const isBlank = (value) => value === void 0 || value === null || typeof value === "string" && value.trim() === "";
1074
- const axis = (own, shorthand) => resolveSpacing(isBlank(own) ? shorthand : own);
1075
- var PaddingDirective = class PaddingDirective {
1076
- mPadding = input(void 0, ...ngDevMode ? [{ debugName: "mPadding" }] : /* istanbul ignore next */ []);
1077
- mPaddingX = input(void 0, ...ngDevMode ? [{ debugName: "mPaddingX" }] : /* istanbul ignore next */ []);
1078
- mPaddingY = input(void 0, ...ngDevMode ? [{ debugName: "mPaddingY" }] : /* istanbul ignore next */ []);
1079
- inward = !!inject(SPACING_INWARD, {
1080
- self: true,
1081
- optional: true
1082
- })?.padding;
1083
- inline = computed(() => axis(this.mPaddingX(), this.mPadding()), ...ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []);
1084
- block = computed(() => axis(this.mPaddingY(), this.mPadding()), ...ngDevMode ? [{ debugName: "block" }] : /* istanbul ignore next */ []);
1085
- static ɵfac = i0.ɵɵngDeclareFactory({
1086
- minVersion: "12.0.0",
1087
- version: "22.2.1",
1088
- ngImport: i0,
1089
- type: PaddingDirective,
1090
- deps: [],
1091
- target: i0.ɵɵFactoryTarget.Directive
1092
- });
1093
- static ɵdir = i0.ɵɵngDeclareDirective({
1094
- minVersion: "17.1.0",
1095
- version: "22.2.1",
1096
- type: PaddingDirective,
1097
- isStandalone: true,
1098
- selector: "[mPadding],[mPaddingX],[mPaddingY]",
1099
- inputs: {
1100
- mPadding: {
1101
- classPropertyName: "mPadding",
1102
- publicName: "mPadding",
1103
- isSignal: true,
1104
- isRequired: false,
1105
- transformFunction: null
1106
- },
1107
- mPaddingX: {
1108
- classPropertyName: "mPaddingX",
1109
- publicName: "mPaddingX",
1110
- isSignal: true,
1111
- isRequired: false,
1112
- transformFunction: null
1113
- },
1114
- mPaddingY: {
1115
- classPropertyName: "mPaddingY",
1116
- publicName: "mPaddingY",
1117
- isSignal: true,
1118
- isRequired: false,
1119
- transformFunction: null
1120
- }
1121
- },
1122
- host: {
1123
- properties: {
1124
- "style.--m-padding-inline": "inline()",
1125
- "style.--m-padding-block": "block()",
1126
- "style.padding-inline": "inward ? null : inline()",
1127
- "style.padding-block": "inward ? null : block()"
1128
- },
1129
- classAttribute: "m-padded"
1130
- },
1131
- ngImport: i0
1132
- });
1133
- };
1134
- i0.ɵɵngDeclareClassMetadata({
1135
- minVersion: "12.0.0",
1136
- version: "22.2.1",
1137
- ngImport: i0,
1138
- type: PaddingDirective,
1139
- decorators: [{
1140
- type: Directive,
1141
- args: [{
1142
- selector: "[mPadding],[mPaddingX],[mPaddingY]",
1143
- host: {
1144
- class: "m-padded",
1145
- "[style.--m-padding-inline]": "inline()",
1146
- "[style.--m-padding-block]": "block()",
1147
- "[style.padding-inline]": "inward ? null : inline()",
1148
- "[style.padding-block]": "inward ? null : block()"
1149
- }
1150
- }]
1151
- }],
1152
- propDecorators: {
1153
- mPadding: [{
1154
- type: i0.Input,
1155
- args: [{
1156
- isSignal: true,
1157
- alias: "mPadding",
1158
- required: false
1159
- }]
1160
- }],
1161
- mPaddingX: [{
1162
- type: i0.Input,
1163
- args: [{
1164
- isSignal: true,
1165
- alias: "mPaddingX",
1166
- required: false
1167
- }]
1168
- }],
1169
- mPaddingY: [{
1170
- type: i0.Input,
1171
- args: [{
1172
- isSignal: true,
1173
- alias: "mPaddingY",
1174
- required: false
1175
- }]
1176
- }]
1177
- }
1178
- });
1179
- var MarginDirective = class MarginDirective {
1180
- mMargin = input(void 0, ...ngDevMode ? [{ debugName: "mMargin" }] : /* istanbul ignore next */ []);
1181
- mMarginX = input(void 0, ...ngDevMode ? [{ debugName: "mMarginX" }] : /* istanbul ignore next */ []);
1182
- mMarginY = input(void 0, ...ngDevMode ? [{ debugName: "mMarginY" }] : /* istanbul ignore next */ []);
1183
- inward = !!inject(SPACING_INWARD, {
1184
- self: true,
1185
- optional: true
1186
- })?.margin;
1187
- inline = computed(() => axis(this.mMarginX(), this.mMargin()), ...ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []);
1188
- block = computed(() => axis(this.mMarginY(), this.mMargin()), ...ngDevMode ? [{ debugName: "block" }] : /* istanbul ignore next */ []);
1189
- static ɵfac = i0.ɵɵngDeclareFactory({
1190
- minVersion: "12.0.0",
1191
- version: "22.2.1",
1192
- ngImport: i0,
1193
- type: MarginDirective,
1194
- deps: [],
1195
- target: i0.ɵɵFactoryTarget.Directive
1196
- });
1197
- static ɵdir = i0.ɵɵngDeclareDirective({
1198
- minVersion: "17.1.0",
1199
- version: "22.2.1",
1200
- type: MarginDirective,
1201
- isStandalone: true,
1202
- selector: "[mMargin],[mMarginX],[mMarginY]",
1203
- inputs: {
1204
- mMargin: {
1205
- classPropertyName: "mMargin",
1206
- publicName: "mMargin",
1207
- isSignal: true,
1208
- isRequired: false,
1209
- transformFunction: null
1210
- },
1211
- mMarginX: {
1212
- classPropertyName: "mMarginX",
1213
- publicName: "mMarginX",
1214
- isSignal: true,
1215
- isRequired: false,
1216
- transformFunction: null
1217
- },
1218
- mMarginY: {
1219
- classPropertyName: "mMarginY",
1220
- publicName: "mMarginY",
1221
- isSignal: true,
1222
- isRequired: false,
1223
- transformFunction: null
1224
- }
1225
- },
1226
- host: {
1227
- properties: {
1228
- "style.--m-margin-inline": "inline()",
1229
- "style.--m-margin-block": "block()",
1230
- "style.margin-inline": "inward ? null : inline()",
1231
- "style.margin-block": "block()"
1232
- },
1233
- classAttribute: "m-spaced"
1234
- },
1235
- ngImport: i0
1236
- });
1237
- };
1238
- i0.ɵɵngDeclareClassMetadata({
1239
- minVersion: "12.0.0",
1240
- version: "22.2.1",
1241
- ngImport: i0,
1242
- type: MarginDirective,
1243
- decorators: [{
1244
- type: Directive,
1245
- args: [{
1246
- selector: "[mMargin],[mMarginX],[mMarginY]",
1247
- host: {
1248
- class: "m-spaced",
1249
- "[style.--m-margin-inline]": "inline()",
1250
- "[style.--m-margin-block]": "block()",
1251
- "[style.margin-inline]": "inward ? null : inline()",
1252
- "[style.margin-block]": "block()"
1253
- }
1254
- }]
1255
- }],
1256
- propDecorators: {
1257
- mMargin: [{
1258
- type: i0.Input,
1259
- args: [{
1260
- isSignal: true,
1261
- alias: "mMargin",
1262
- required: false
1263
- }]
1264
- }],
1265
- mMarginX: [{
1266
- type: i0.Input,
1267
- args: [{
1268
- isSignal: true,
1269
- alias: "mMarginX",
1270
- required: false
1271
- }]
1272
- }],
1273
- mMarginY: [{
1274
- type: i0.Input,
1275
- args: [{
1276
- isSignal: true,
1277
- alias: "mMarginY",
1278
- required: false
1279
- }]
1280
- }]
1281
- }
1282
- });
1283
- export { stringToColor as a, ToolTipDirective as c, DragListItemDirective as d, DragListDirective as f, MHeroColorDirective as i, FileUploadDirective as l, PaddingDirective as n, HighlightDirective as o, DraggableDirective as p, SPACING_INWARD as r, PositionDirective as s, MarginDirective as t, AutosizeDirective as u };
1283
+ export { ToolTipDirective as a, DragListItemDirective as c, MarginDirective as d, PaddingDirective as f, PositionDirective as i, DragListDirective as l, stringToColor as n, FileUploadDirective as o, SPACING_INWARD as p, HighlightDirective as r, AutosizeDirective as s, MHeroColorDirective as t, DraggableDirective as u };
1284
1284
 
1285
- //# sourceMappingURL=magmonium-one-directives-B93p5bAL.mjs.map
1285
+ //# sourceMappingURL=magmonium-one-directives-R099YTUd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magmonium-one-directives-R099YTUd.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/directives/spacing/spacing.ts","../../../../libs/one/src/lib/shared/directives/draggable/lib/function/position.ts","../../../../libs/one/src/lib/shared/directives/draggable/lib/function/cursor.ts","../../../../libs/one/src/lib/shared/directives/draggable/draggable.ts","../../../../libs/one/src/lib/shared/directives/drag-list/drag-list.ts","../../../../libs/one/src/lib/shared/directives/drag-list/drag-list-item.ts","../../../../libs/one/src/lib/shared/directives/autosize/autosize.ts","../../../../libs/one/src/lib/shared/directives/file-upload/file-upload.ts","../../../../libs/one/src/lib/shared/directives/tooltip/tooltip.ts","../../../../libs/one/src/lib/shared/directives/position/position.ts","../../../../libs/one/src/lib/shared/ui/table/lib/directives/highlight.ts","../../../../libs/one/src/lib/shared/functions/string/color.ts","../../../../libs/one/src/lib/shared/directives/color/m-hero-color.directive.ts"],"sourcesContent":["import {\n computed,\n Directive,\n inject,\n InjectionToken,\n input,\n} from '@angular/core';\nimport { resolveSpacing } from '../../functions/size/size-converter';\n\ntype SpacingValue = number | string | undefined | null;\n\n/**\n * Which of the two spacings a primitive takes inward rather than on its host.\n * Provided in a component's own `providers`, so the directive on that host\n * reads it from the same element and nowhere else.\n *\n * `padding` — the primitive draws a box of its own inside the host (a Card's\n * header, main and footer) and pads that box from `--m-padding-inline` /\n * `--m-padding-block` in place of its built-in padding. Padding the host too\n * would pad it twice.\n *\n * `margin` — the primitive stretches to its container's width, so a margin on\n * the host pushes it past the edge. It reads `--m-margin-inline` and narrows\n * itself instead.\n */\nexport type SpacingInward = { padding?: boolean; margin?: boolean };\n\nexport const SPACING_INWARD = new InjectionToken<SpacingInward>(\n 'SPACING_INWARD'\n);\n\n// A blank axis is unset, not a value: an inspector form hands back every\n// untouched text field as `''`, and `??` alone would let it blank the\n// shorthand the User did type.\nconst isBlank = (value: SpacingValue): boolean =>\n value === undefined ||\n value === null ||\n (typeof value === 'string' && value.trim() === '');\n\nconst axis = (own: SpacingValue, shorthand: SpacingValue): string | undefined =>\n resolveSpacing(isBlank(own) ? shorthand : own);\n\n/**\n * Space inside any element. A bare number is `em`, any other CSS length\n * passes through; the axis inputs win over the shorthand on their own axis.\n * Always writes the resolved lengths as `--m-padding-inline` /\n * `--m-padding-block`, and pads the host itself unless the host takes padding\n * inward (`SPACING_INWARD`).\n */\n@Directive({\n selector: '[mPadding],[mPaddingX],[mPaddingY]',\n host: {\n class: 'm-padded',\n '[style.--m-padding-inline]': 'inline()',\n '[style.--m-padding-block]': 'block()',\n '[style.padding-inline]': 'inward ? null : inline()',\n '[style.padding-block]': 'inward ? null : block()',\n },\n})\nexport class PaddingDirective {\n readonly mPadding = input<SpacingValue>(undefined);\n readonly mPaddingX = input<SpacingValue>(undefined);\n readonly mPaddingY = input<SpacingValue>(undefined);\n\n protected readonly inward = !!inject(SPACING_INWARD, {\n self: true,\n optional: true,\n })?.padding;\n\n protected readonly inline = computed(() =>\n axis(this.mPaddingX(), this.mPadding())\n );\n protected readonly block = computed(() =>\n axis(this.mPaddingY(), this.mPadding())\n );\n}\n\n/**\n * Space around any element, on `PaddingDirective`'s scale. Writes\n * `--m-margin-inline` / `--m-margin-block` always; the block margin is set on\n * the host always, the inline one only when the host does not take it inward\n * (`SPACING_INWARD`) — a full-width host narrows by it instead.\n */\n@Directive({\n selector: '[mMargin],[mMarginX],[mMarginY]',\n host: {\n class: 'm-spaced',\n '[style.--m-margin-inline]': 'inline()',\n '[style.--m-margin-block]': 'block()',\n '[style.margin-inline]': 'inward ? null : inline()',\n '[style.margin-block]': 'block()',\n },\n})\nexport class MarginDirective {\n readonly mMargin = input<SpacingValue>(undefined);\n readonly mMarginX = input<SpacingValue>(undefined);\n readonly mMarginY = input<SpacingValue>(undefined);\n\n protected readonly inward = !!inject(SPACING_INWARD, {\n self: true,\n optional: true,\n })?.margin;\n\n protected readonly inline = computed(() =>\n axis(this.mMarginX(), this.mMargin())\n );\n protected readonly block = computed(() =>\n axis(this.mMarginY(), this.mMargin())\n );\n}\n","import { Draggable } from '../../type';\nimport { Position } from '../../../../type/screen/position';\n\nfunction isWithinBoundary(\n value: number,\n draggable: Draggable,\n axis: 'x' | 'y'\n): boolean {\n const maxVal =\n draggable.max?.[axis] ??\n (axis === 'x' ? window.innerWidth : window.innerHeight);\n const minVal = draggable.min?.[axis] ?? 0;\n return value <= maxVal && value >= minVal;\n}\n\nexport function getNewPosition(\n draggable: Draggable,\n event: MouseEvent | TouchEvent,\n delta: Position\n): Position {\n let { x, y } = draggable.position;\n\n const isTouch = 'touches' in event;\n const touch = isTouch ? event.touches[0] || event.changedTouches[0] : null;\n const screenX = touch ? touch.screenX : (event as MouseEvent).screenX;\n const screenY = touch ? touch.screenY : (event as MouseEvent).screenY;\n\n if (draggable.direction !== 'y') {\n const dx = screenX - (delta.x ?? 0);\n if (isWithinBoundary(dx, draggable, 'x')) {\n x = dx;\n }\n }\n\n if (draggable.direction !== 'x') {\n const dy = screenY - (delta.y ?? 0);\n if (isWithinBoundary(dy, draggable, 'y')) {\n y = dy;\n }\n }\n\n return { x, y };\n}\n","import { Draggable } from '../../type';\n\nexport function getCursor({ direction }: Draggable) {\n switch (direction) {\n case 'x':\n return 'ew-resize';\n case 'y':\n return 'ns-resize';\n default:\n return 'move';\n }\n}\n","import { computed, Directive, HostListener, Input, model, input, output } from '@angular/core';\nimport { Draggable, DraggableState } from './type';\nimport { getCursor, getNewPosition } from './lib';\n// The type's own file rather than the shared barrel: that barrel reaches every\n// UI slice, so a directive importing it is a cycle back into the components\n// that declare this directive — and a half-initialised cycle leaves\n// `DraggableDirective` undefined in whichever of them is evaluated first.\nimport { Position } from '../../type/screen/position';\n\n/** Buttons/links inside a handle must keep their click — not start a drag. */\nconst INTERACTIVE_SELECTOR =\n 'button, a, input, textarea, select, [role=\"button\"], [contenteditable=\"true\"]';\n\nconst shouldIgnorePointer = (target: HTMLElement): boolean =>\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SELECT' ||\n target.isContentEditable ||\n !!target.closest(INTERACTIVE_SELECTOR);\n\n@Directive({\n selector: '[mDraggable]',\n host: {\n '[class.draggable]': \"mDraggable()?.direction !== 'none'\",\n '[class.dragging]': 'this.state.dragging',\n '[style.position]':\n \"mDraggable()?.direction !== 'none' ? (mDraggable()?.positionType ?? 'absolute') : null\",\n '[style.top.px]':\n \"mDraggable()?.direction !== 'none' && mDraggable()?.direction !== 'x' ? mDraggable()?.position?.y : null\",\n '[style.left.px]':\n \"mDraggable()?.direction !== 'none' && mDraggable()?.direction !== 'y' ? mDraggable()?.position?.x : null\",\n '[style.cursor]': \"mDraggable()?.direction !== 'none' ? cursor() : null\",\n },\n})\nexport class DraggableDirective {\n mDraggable = model.required<Draggable>();\n handleSelector = input<string>();\n\n /**\n * The bounds, read at drag time and never written into `mDraggable`.\n *\n * They used to be merged in by a setter, which lost them the moment a parent\n * replaced its Draggable — a `linkedSignal` recomputed from the value the\n * drag itself writes back, which is what both Ranges do. Angular memoizes an\n * inline object literal in a template, so `[min]=\"{ x: 0, y: 3 }\"` is the\n * same reference on the next pass and its setter never fires again to put\n * the bound back. The config then had no `max`, `isWithinBoundary` fell\n * through to `window.innerWidth`, and the thumb slid off the track.\n *\n * A bound is what the caller says the drag may not pass, not state the drag\n * mutates — so it stays an input and the two never share an object.\n */\n readonly min = input<Position | undefined>(undefined);\n readonly max = input<Position | undefined>(undefined);\n\n readonly dragStart = output<void>();\n readonly dragEnd = output<void>();\n\n protected readonly cursor = computed(() => getCursor(this.mDraggable()));\n protected state = <DraggableState>{\n dragging: false,\n delta: { x: 0, y: 0 },\n };\n\n @Input() set pos(position: Position) {\n this.mDraggable.update((config) => ({\n ...config,\n position,\n }));\n }\n\n /**\n * The config a move is clamped against: the bounds on the tag win, and a\n * caller that carries them inside its own Draggable keeps working.\n */\n private readonly bounded = (config: Draggable): Draggable => ({\n ...config,\n min: this.min() ?? config.min,\n max: this.max() ?? config.max,\n });\n\n @HostListener('mousedown', ['$event'])\n protected handleMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement;\n if (\n this.mDraggable()?.direction === 'none' ||\n shouldIgnorePointer(target)\n ) {\n return;\n }\n const selector = this.handleSelector();\n if (selector && !target.closest(selector)) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n this.state.dragging = true;\n this.dragStart.emit();\n const { screenX, screenY } = event;\n const { x, y } = this.mDraggable()?.position ?? {};\n this.state.delta.x = screenX - (x ?? 0);\n this.state.delta.y = screenY - (y ?? 0);\n }\n\n @HostListener('window:mousemove', ['$event'])\n protected handleMouseMove(event: MouseEvent): void {\n if (!this.state.dragging) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.mDraggable.update((config) => ({\n ...config,\n position: getNewPosition(this.bounded(config), event, this.state.delta),\n }));\n }\n\n @HostListener('window:mouseup', ['$event'])\n protected handleMouseUp(event: MouseEvent): void {\n if (!this.state.dragging) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n this.state.dragging = false;\n this.dragEnd.emit();\n }\n\n @HostListener('touchstart', ['$event'])\n protected handleTouchStart(event: TouchEvent) {\n const target = event.target as HTMLElement;\n if (\n this.mDraggable()?.direction === 'none' ||\n shouldIgnorePointer(target)\n ) {\n return;\n }\n const selector = this.handleSelector();\n if (selector && !target.closest(selector)) {\n return;\n }\n event.stopPropagation();\n this.state.dragging = true;\n this.dragStart.emit();\n const touch = event.touches[0];\n const { screenX, screenY } = touch;\n const { x, y } = this.mDraggable()?.position ?? {};\n this.state.delta.x = screenX - (x ?? 0);\n this.state.delta.y = screenY - (y ?? 0);\n }\n\n @HostListener('window:touchmove', ['$event'])\n protected handleTouchMove(event: TouchEvent): void {\n if (!this.state.dragging) {\n return;\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n this.mDraggable.update((config) => ({\n ...config,\n position: getNewPosition(this.bounded(config), event, this.state.delta),\n }));\n }\n\n @HostListener('window:touchend', ['$event'])\n protected handleTouchEnd(event: TouchEvent): void {\n if (!this.state.dragging) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n this.state.dragging = false;\n this.dragEnd.emit();\n }\n}\n","import {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\n\nexport interface DragListReorder {\n from: number;\n to: number;\n}\n\n/**\n * Container side of HTML5 drag-to-reorder. Put on the element wrapping the\n * items, pair with [mDragListItem] on each item. Emits (reordered) with\n * {from, to} — the consumer owns the array move. Auto-scrolls any scrollable\n * ancestor (and the viewport) while the pointer is within 150px of its edge.\n * With removeOnDragOut, dropping an item outside the container emits\n * (removed) with its index — the consumer owns the actual removal.\n */\n@Directive({\n selector: '[mDragList]',\n host: {\n '(dragover)': 'onContainerDragOver($event)',\n },\n})\nexport class DragListDirective implements OnDestroy {\n readonly removeOnDragOut = input(false, { transform: booleanAttribute });\n\n readonly reordered = output<DragListReorder>();\n readonly removed = output<number>();\n\n readonly draggedIndex = signal<number | null>(null);\n readonly dragOverIndex = signal<number | null>(null);\n\n readonly #elementRef = inject(ElementRef);\n\n #scrollAnimationFrameId: number | null = null;\n #dragPointerX = 0;\n #dragPointerY = 0;\n #scrollContainers: HTMLElement[] = [];\n\n readonly startDrag = (index: number, clientX: number, clientY: number): void => {\n this.draggedIndex.set(index);\n this.#dragPointerX = clientX;\n this.#dragPointerY = clientY;\n this.#startScrollLoop();\n };\n\n readonly trackPointer = (clientX: number, clientY: number): void => {\n // Firefox reports client coords 0 on drag events — ignore those samples.\n if (clientX !== 0 || clientY !== 0) {\n this.#dragPointerX = clientX;\n this.#dragPointerY = clientY;\n }\n };\n\n readonly endDrag = (): void => {\n this.draggedIndex.set(null);\n this.dragOverIndex.set(null);\n this.#stopScrollLoop();\n };\n\n // Called on dragend — fires only when no drop() consumed the drag (drop on\n // an item clears draggedIndex first). Pointer outside the container at\n // release means the item was dragged out.\n readonly dragEnded = (event: DragEvent): void => {\n const from = this.draggedIndex();\n if (from !== null && this.removeOnDragOut() && this.#isPointerOutside(event)) {\n this.endDrag();\n this.removed.emit(from);\n return;\n }\n this.endDrag();\n };\n\n readonly #isPointerOutside = (event: DragEvent): boolean => {\n const x = event.clientX || this.#dragPointerX;\n const y = event.clientY || this.#dragPointerY;\n const rect = (this.#elementRef.nativeElement as HTMLElement).getBoundingClientRect();\n return x < rect.left || x > rect.right || y < rect.top || y > rect.bottom;\n };\n\n readonly drop = (index: number): void => {\n const from = this.draggedIndex();\n this.endDrag();\n if (from !== null && from !== index) {\n this.reordered.emit({ from, to: index });\n }\n };\n\n protected readonly onContainerDragOver = (event: DragEvent): void => {\n event.preventDefault();\n this.trackPointer(event.clientX, event.clientY);\n };\n\n readonly #getScrollContainers = (): HTMLElement[] => {\n const list: HTMLElement[] = [];\n let el: HTMLElement | null = this.#elementRef.nativeElement;\n while (el && el !== document.body) {\n const style = window.getComputedStyle(el);\n const overflowY = style.overflowY || style.overflow;\n const isScrollable =\n overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'hidden';\n if (isScrollable && el.scrollHeight > el.clientHeight) {\n list.push(el);\n }\n el = el.parentElement;\n }\n list.push(document.documentElement);\n return list;\n };\n\n readonly #startScrollLoop = (): void => {\n this.#stopScrollLoop();\n this.#scrollContainers = this.#getScrollContainers();\n\n window.addEventListener('dragover', this.#onGlobalDragOver, true);\n window.addEventListener('drag', this.#onGlobalDrag, true);\n\n const loop = (): void => {\n if (this.draggedIndex() === null) {\n this.#stopScrollLoop();\n return;\n }\n\n for (const container of this.#scrollContainers) {\n const isRoot = container === document.documentElement;\n const rect = container.getBoundingClientRect();\n const topThreshold = isRoot ? 150 : rect.top + 150;\n const bottomThreshold = isRoot\n ? window.innerHeight - 150\n : rect.bottom - 150;\n\n if (this.#dragPointerY < topThreshold) {\n const diff = topThreshold - this.#dragPointerY;\n const speed = Math.min(25, Math.max(2, Math.floor(diff / 4)));\n if (isRoot) {\n window.scrollBy(0, -speed);\n } else {\n container.scrollTop -= speed;\n }\n } else if (this.#dragPointerY > bottomThreshold) {\n const diff = this.#dragPointerY - bottomThreshold;\n const speed = Math.min(25, Math.max(2, Math.floor(diff / 4)));\n if (isRoot) {\n window.scrollBy(0, speed);\n } else {\n container.scrollTop += speed;\n }\n }\n }\n\n this.#scrollAnimationFrameId = requestAnimationFrame(loop);\n };\n\n this.#scrollAnimationFrameId = requestAnimationFrame(loop);\n };\n\n readonly #stopScrollLoop = (): void => {\n window.removeEventListener('dragover', this.#onGlobalDragOver, true);\n window.removeEventListener('drag', this.#onGlobalDrag, true);\n if (this.#scrollAnimationFrameId !== null) {\n cancelAnimationFrame(this.#scrollAnimationFrameId);\n this.#scrollAnimationFrameId = null;\n }\n this.#scrollContainers = [];\n };\n\n // Global listeners: dragover fires reliably everywhere once preventDefault'd,\n // drag covers browsers that skip dragover outside drop targets.\n readonly #onGlobalDragOver = (event: DragEvent): void => {\n event.preventDefault();\n this.trackPointer(event.clientX, event.clientY);\n };\n\n readonly #onGlobalDrag = (event: DragEvent): void => {\n this.trackPointer(event.clientX, event.clientY);\n };\n\n ngOnDestroy(): void {\n this.#stopScrollLoop();\n }\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DragListDirective } from './drag-list';\n\n/**\n * Item side of HTML5 drag-to-reorder. Put on each repeated element inside an\n * [mDragList] container, bound to the item's index: [mDragListItem]=\"i\".\n * Adds `is-dragging` on the dragged item and `is-drag-over` on the current\n * drop target — style them in the consumer.\n */\n@Directive({\n selector: '[mDragListItem]',\n host: {\n draggable: 'true',\n '[class.is-dragging]': 'isDragging()',\n '[class.is-drag-over]': 'isDragOver()',\n '(dragstart)': 'onDragStart($event)',\n '(dragover)': 'onDragOver($event)',\n '(dragenter)': 'onDragEnter()',\n '(dragleave)': 'onDragLeave()',\n '(dragend)': 'onDragEnd($event)',\n '(drop)': 'onDrop($event)',\n '(drag)': 'onDrag($event)',\n },\n})\nexport class DragListItemDirective {\n readonly mDragListItem = input.required<number>();\n\n readonly #list = inject(DragListDirective);\n readonly #elementRef = inject(ElementRef);\n\n protected readonly isDragging = computed(\n () => this.#list.draggedIndex() === this.mDragListItem()\n );\n protected readonly isDragOver = computed(\n () => this.#list.dragOverIndex() === this.mDragListItem()\n );\n\n protected readonly onDragStart = (event: DragEvent): void => {\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', this.mDragListItem().toString());\n this.#setDragGhost(event);\n }\n this.#list.startDrag(this.mDragListItem(), event.clientX, event.clientY);\n };\n\n // Replaces the browser's flat snapshot ghost with a lifted, tilted clone so\n // the item visibly \"picks up\". Clone keeps _ngcontent attributes, so the\n // consumer's scoped styles still apply to it.\n readonly #setDragGhost = (event: DragEvent): void => {\n const host = this.#elementRef.nativeElement as HTMLElement;\n const rect = host.getBoundingClientRect();\n const padding = 24;\n\n const ghost = host.cloneNode(true) as HTMLElement;\n ghost.style.width = `${rect.width}px`;\n ghost.style.margin = '0';\n ghost.style.transform = 'rotate(2.5deg) scale(1.04)';\n ghost.style.boxShadow = '0 16px 40px rgba(0, 0, 0, 0.4)';\n ghost.style.opacity = '0.95';\n\n // Wrapper gives the rotation and shadow room to render without clipping;\n // must be in the document (offscreen) for setDragImage to rasterize it.\n const wrapper = document.createElement('div');\n wrapper.style.position = 'fixed';\n wrapper.style.top = '-10000px';\n wrapper.style.left = '-10000px';\n wrapper.style.padding = `${padding}px`;\n wrapper.style.pointerEvents = 'none';\n wrapper.appendChild(ghost);\n document.body.appendChild(wrapper);\n\n event.dataTransfer?.setDragImage(\n wrapper,\n event.clientX - rect.left + padding,\n event.clientY - rect.top + padding\n );\n\n // Browser rasterizes the ghost synchronously within dragstart — safe to\n // drop the DOM node right after.\n setTimeout(() => wrapper.remove(), 0);\n };\n\n protected readonly onDrag = (event: DragEvent): void => {\n this.#list.trackPointer(event.clientX, event.clientY);\n };\n\n protected readonly onDragOver = (event: DragEvent): void => {\n if (this.#list.draggedIndex() === this.mDragListItem()) return;\n event.preventDefault();\n this.#list.trackPointer(event.clientX, event.clientY);\n };\n\n protected readonly onDragEnter = (): void => {\n if (this.#list.draggedIndex() === this.mDragListItem()) return;\n this.#list.dragOverIndex.set(this.mDragListItem());\n };\n\n protected readonly onDragLeave = (): void => {\n if (this.#list.dragOverIndex() === this.mDragListItem()) {\n this.#list.dragOverIndex.set(null);\n }\n };\n\n protected readonly onDragEnd = (event: DragEvent): void => {\n this.#list.dragEnded(event);\n };\n\n protected readonly onDrop = (event: DragEvent): void => {\n event.preventDefault();\n this.#list.drop(this.mDragListItem());\n };\n}\n","import {\n AfterViewChecked,\n Directive,\n ElementRef,\n HostListener,\n inject,\n} from '@angular/core';\nimport { IS_DESIGN_MODE } from '../../config/tokens';\n\n@Directive({\n selector: '[mAutosize]',\n})\nexport class AutosizeDirective implements AfterViewChecked {\n readonly _el = inject(ElementRef);\n\n // DesignMode: the canvas runs change detection on every hover, select and\n // drag, and each pass re-measured the field — collapsing it to `0px` and\n // growing it back — so the editor's overlay chased a box that kept\n // resizing and flickered. On the canvas the field keeps its intrinsic\n // `rows` height and is never resized.\n readonly #isDesignMode = !!inject(IS_DESIGN_MODE, { optional: true });\n\n // What the height was last measured against. Outside the canvas, change\n // detection still runs on every hover, select and drag; re-measuring on each\n // pass collapsed the field to `0px` for a moment, which clamps the scrollTop\n // of any scrolling ancestor — the panel jumped and the field flickered. Only\n // a new value or a new width can change the height, so nothing else measures.\n #measuredValue: string | null = null;\n #measuredWidth = -1;\n\n @HostListener('input', [])\n @HostListener('window:resize', [])\n onInput(): void {\n if (!this.#isDesignMode) this.#adjust();\n }\n\n ngAfterViewChecked(): void {\n if (this.#isDesignMode) return;\n if (this._el.nativeElement.offsetParent != null) setTimeout(this.#adjust);\n }\n\n // `0px`, not `auto`, as the height the text is measured against. `auto` is an\n // indefinite cross size, so any ancestor that stretches its children —\n // `.m-section__body` is `align-items: stretch`, and a Screen nests those —\n // resolves it to the stretched box, and `scrollHeight` then reports that\n // box rather than the text in it. Written back on every `ngAfterViewChecked`,\n // that ratchets the field up to whatever caps the chain: inside a Modal, the\n // pop-up's own `max-height`, at which point the field *is* the modal and the\n // Screen around it is scrolled out of reach. `0px` is definite, so nothing\n // stretches it and `scrollHeight` is the content alone.\n #adjust = (): void => {\n const el = this._el.nativeElement as HTMLTextAreaElement;\n const width = el.clientWidth;\n if (el.value === this.#measuredValue && width === this.#measuredWidth) {\n return;\n }\n this.#measuredValue = el.value;\n this.#measuredWidth = width;\n el.style.overflow = 'hidden';\n el.style.height = '0px';\n el.style.height = `${el.scrollHeight}px`;\n };\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n output,\n} from '@angular/core';\n\nexport interface FileUploadConfig {\n accept?: string[];\n multiple?: boolean;\n maxSize?: number;\n}\n\nexport interface FileUploadEvent {\n files: File[];\n}\n\n@Directive({\n selector: '[mFileUpload]',\n host: {\n '[style.cursor]': '\"pointer\"',\n },\n})\nexport class FileUploadDirective {\n mFileUpload = input<FileUploadConfig>({});\n readonly fileSelect = output<FileUploadEvent>();\n\n private readonly elementRef = inject(ElementRef);\n private fileInput: HTMLInputElement | null = null;\n\n @HostListener('click')\n protected openFilePicker(): void {\n if (!this.fileInput) {\n this.fileInput = document.createElement('input');\n this.fileInput.type = 'file';\n this.fileInput.style.display = 'none';\n this.fileInput.addEventListener('change', this.onFileChange);\n this.elementRef.nativeElement.appendChild(this.fileInput);\n }\n\n const config = this.mFileUpload();\n this.fileInput.accept = config.accept?.join(',') ?? '*';\n this.fileInput.multiple = config.multiple ?? false;\n this.fileInput.click();\n }\n\n private readonly onFileChange = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n const files = Array.from(input.files ?? []);\n\n if (files.length === 0) return;\n\n const config = this.mFileUpload();\n const maxSize = config.maxSize;\n\n const validFiles = maxSize ? files.filter((f) => f.size <= maxSize) : files;\n\n if (validFiles.length > 0) {\n this.fileSelect.emit({ files: validFiles });\n }\n\n input.value = '';\n };\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\n@Directive({\n selector: '[mToolTip]',\n})\nexport class ToolTipDirective implements OnDestroy {\n mToolTip = input<string>('');\n\n private readonly elementRef = inject(ElementRef);\n private tooltipElement: HTMLElement | null = null;\n\n @HostListener('mouseenter')\n protected showTooltip(): void {\n const text = this.mToolTip();\n if (!text) return;\n\n this.tooltipElement = document.createElement('div');\n this.tooltipElement.textContent = text;\n Object.assign(this.tooltipElement.style, {\n position: 'fixed',\n background: 'rgba(0, 0, 0, 0.8)',\n color: '#fff',\n padding: '4px 8px',\n borderRadius: '4px',\n fontSize: '12px',\n zIndex: '10000',\n pointerEvents: 'none',\n whiteSpace: 'nowrap',\n });\n\n document.body.appendChild(this.tooltipElement);\n this.positionTooltip();\n }\n\n @HostListener('mouseleave')\n protected hideTooltip(): void {\n this.removeTooltip();\n }\n\n ngOnDestroy(): void {\n this.removeTooltip();\n }\n\n private positionTooltip(): void {\n if (!this.tooltipElement) return;\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const tooltipRect = this.tooltipElement.getBoundingClientRect();\n this.tooltipElement.style.left = `${rect.left + rect.width / 2 - tooltipRect.width / 2}px`;\n this.tooltipElement.style.top = `${rect.top - tooltipRect.height - 6}px`;\n }\n\n private removeTooltip(): void {\n this.tooltipElement?.remove();\n this.tooltipElement = null;\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n signal,\n} from '@angular/core';\n\ntype Direction = 'above' | 'below' | 'left' | 'right';\n\n@Directive({\n selector: '[mPosition]',\n host: {\n '[class.m-pos--above]': 'direction() === \"above\"',\n '[class.m-pos--below]': 'direction() === \"below\"',\n '[class.m-pos--left]': 'direction() === \"left\"',\n '[class.m-pos--right]': 'direction() === \"right\"',\n },\n})\nexport class PositionDirective {\n private readonly el = inject(ElementRef<HTMLElement>);\n protected readonly direction = signal<Direction>('below');\n\n @HostListener('mouseenter')\n detect(): void {\n const rect = this.el.nativeElement.getBoundingClientRect();\n const spaces: Record<Direction, number> = {\n below: window.innerHeight - rect.bottom,\n above: rect.top,\n right: window.innerWidth - rect.right,\n left: rect.left,\n };\n const best = (Object.entries(spaces) as [Direction, number][]).reduce(\n (best, [dir, space]) => (space > best.space ? { dir, space } : best),\n { dir: 'below' as Direction, space: spaces.below }\n );\n this.direction.set(best.dir);\n }\n}\n","import {\n afterRenderEffect,\n Directive,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\n\n@Directive({\n selector: '[mHighlight]',\n})\nexport class HighlightDirective {\n readonly mHighlight = input<string>('');\n readonly mHighlightText = input<string>('');\n\n private readonly el = inject(ElementRef);\n\n constructor() {\n afterRenderEffect(() => {\n const query = this.mHighlight().trim();\n const text = this.mHighlightText();\n if (!query) {\n this.el.nativeElement.innerHTML = this.escapeHtml(text);\n return;\n }\n const escaped = query.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(`(${escaped})`, 'gi');\n this.el.nativeElement.innerHTML = this.escapeHtml(text).replace(\n regex,\n '<mark class=\"m-table__highlight\">$1</mark>'\n );\n });\n }\n\n private readonly escapeHtml = (str: string): string =>\n String(str ?? '')\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;');\n}\n","/**\n * Generates a consistent HSL color based on the input string.\n * Used for wallet backgrounds and other items where visual consistency is needed.\n */\nexport function stringToColor(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = (Math.imul(31, hash) + str.charCodeAt(i)) | 0;\n }\n\n // Use hash to generate H, S, L\n const h = Math.abs(hash) % 360;\n const s = 65 + (Math.abs(hash >> 8) % 20); // 65-85% saturation for vibrancy\n const l = 45 + (Math.abs(hash >> 16) % 15); // 45-60% lightness for readability\n\n return `hsl(${h}, ${s}%, ${l}%)`;\n}\n","import {\n Directive,\n ElementRef,\n inject,\n input,\n effect,\n Renderer2,\n} from '@angular/core';\nimport { stringToColor } from '../../functions/string/color';\n\n@Directive({\n selector: '[mHeroColor]',\n})\nexport class MHeroColorDirective {\n /** The string to generate the color from (e.g., coin name, wallet name) */\n mHeroColor = input.required<string>();\n\n /** The CSS variable name to set (defaults to --hero-accent-color) */\n mHeroColorVar = input<string>('--hero-accent-color');\n\n #el = inject(ElementRef);\n #renderer = inject(Renderer2);\n\n constructor() {\n effect(() => {\n const source = this.mHeroColor();\n const varName = this.mHeroColorVar();\n\n if (source) {\n const color = stringToColor(source);\n this.#renderer.setStyle(this.#el.nativeElement, varName, color);\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { i as resolveSize, t as coerceSize } from "./magmonium-one-size-converter-BOBD8nHy.mjs";
2
- import { r as deriveContrastColor } from "./magmonium-one-color-utl-DI5p24iQ.mjs";
3
- import { o as injectParentSize, s as provideSizeContext } from "./magmonium-one-icon-C3jwzbb2.mjs";
4
- import { r as ConfigComponent } from "./magmonium-one-attribute-value-C1lqou2L.mjs";
5
- import { i as deriveGroupClass, t as ButtonComponent } from "./magmonium-one-button-DZ4wCJgb.mjs";
6
- import { t as ContextMenuComponent } from "./magmonium-one-menu-cO34OcJc.mjs";
1
+ import { i as resolveSize, t as coerceSize } from "./magmonium-one-size-converter-DFIowQHO.mjs";
2
+ import { r as deriveContrastColor } from "./magmonium-one-color-utl-DklqRa3m.mjs";
3
+ import { o as injectParentSize, s as provideSizeContext } from "./magmonium-one-icon-Ce44a1mo.mjs";
4
+ import { r as ConfigComponent } from "./magmonium-one-attribute-value-DnctyCKp.mjs";
5
+ import { i as deriveGroupClass, t as ButtonComponent } from "./magmonium-one-button-BKGxIBhw.mjs";
6
+ import { t as ContextMenuComponent } from "./magmonium-one-menu-DcqfcU1p.mjs";
7
7
  import * as i0 from "@angular/core";
8
8
  import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, effect, forwardRef, input, output } from "@angular/core";
9
9
  import { forkJoin, map, of } from "rxjs";
@@ -425,4 +425,4 @@ i0.ɵɵngDeclareClassMetadata({
425
425
  });
426
426
  export { mergeUniqueWith as i, mergeUnique as n, mergeUniqueBy as r, ButtonGroupComponent as t };
427
427
 
428
- //# sourceMappingURL=magmonium-one-group-B7YeUd1u.mjs.map
428
+ //# sourceMappingURL=magmonium-one-group-Blvejahi.mjs.map