@design-edito/tools 0.1.65 → 0.1.68

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 (239) hide show
  1. package/agnostic/arrays/index.js +7 -7
  2. package/agnostic/arrays/random-pick/index.js +4 -4
  3. package/agnostic/colors/index.js +8 -8
  4. package/agnostic/css/index.js +13 -13
  5. package/agnostic/css/styles-set/index.js +4 -4
  6. package/agnostic/html/hyper-json/cast/index.js +2 -2
  7. package/agnostic/html/hyper-json/index.js +3 -3
  8. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +2 -2
  9. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +2 -2
  10. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +2 -2
  11. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +2 -2
  12. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +2 -2
  13. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +2 -2
  14. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +2 -2
  15. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +2 -2
  16. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +2 -2
  17. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +2 -2
  18. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +2 -2
  19. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +2 -2
  20. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +2 -2
  21. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +2 -2
  22. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +2 -2
  23. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +2 -2
  24. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +2 -2
  25. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +2 -2
  26. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +2 -2
  27. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +2 -2
  28. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +2 -2
  29. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +2 -2
  30. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -2
  31. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +2 -2
  32. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +2 -2
  33. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +2 -2
  34. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +2 -2
  35. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +2 -2
  36. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +2 -2
  37. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +2 -2
  38. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +2 -2
  39. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +2 -2
  40. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +2 -2
  41. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +2 -2
  42. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +2 -2
  43. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +2 -2
  44. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +2 -2
  45. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +2 -2
  46. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +2 -2
  47. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +2 -2
  48. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +2 -2
  49. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +2 -2
  50. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +2 -2
  51. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +2 -2
  52. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +2 -2
  53. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +2 -2
  54. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +2 -2
  55. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +2 -2
  56. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +2 -2
  57. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +2 -2
  58. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +2 -2
  59. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +2 -2
  60. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +2 -2
  61. package/agnostic/html/hyper-json/smart-tags/isolated/global/index.js +2 -2
  62. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +2 -2
  63. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +2 -2
  64. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +2 -2
  65. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +2 -2
  66. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +2 -2
  67. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +2 -2
  68. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
  69. package/agnostic/html/hyper-json/tree/index.js +2 -2
  70. package/agnostic/html/hyper-json/utils/index.js +2 -2
  71. package/agnostic/html/index.js +14 -14
  72. package/agnostic/html/sanitize/index.js +4 -4
  73. package/agnostic/html/selector-to-element/index.js +4 -4
  74. package/agnostic/html/string-to-nodes/index.js +5 -5
  75. package/agnostic/misc/crossenv/index.js +2 -2
  76. package/agnostic/misc/index.js +27 -27
  77. package/agnostic/misc/logs/index.js +2 -2
  78. package/agnostic/misc/lorem-ipsum/index.js +11 -11
  79. package/agnostic/numbers/index.js +7 -7
  80. package/agnostic/objects/index.js +6 -6
  81. package/agnostic/optim/index.js +3 -3
  82. package/agnostic/strings/index.js +6 -6
  83. package/agnostic/time/index.js +3 -3
  84. package/chunks/chunk-236C4IHT.js +98 -0
  85. package/chunks/chunk-2HU2AWWJ.js +35 -0
  86. package/chunks/chunk-2KT7AKRW.js +17 -0
  87. package/chunks/chunk-3CZNTEF7.js +151 -0
  88. package/chunks/chunk-3UM5CZA5.js +18 -0
  89. package/chunks/chunk-4ARTWFW5.js +164 -0
  90. package/chunks/chunk-4PJWXOLA.js +16 -0
  91. package/chunks/chunk-4QHGUANF.js +19 -0
  92. package/chunks/chunk-65YZMVWZ.js +35 -0
  93. package/chunks/chunk-662SOZWA.js +19 -0
  94. package/chunks/chunk-6EIF24H5.js +35 -0
  95. package/chunks/chunk-6IZ5HUJJ.js +21 -0
  96. package/chunks/chunk-6Z6GDMOR.js +28 -0
  97. package/chunks/chunk-72NLUT3X.js +29 -0
  98. package/chunks/chunk-72U4TDEB.js +127 -0
  99. package/chunks/chunk-7OK5NZTY.js +18 -0
  100. package/chunks/chunk-7YW5HL6N.js +168 -0
  101. package/chunks/chunk-7Z7CKAOH.js +98 -0
  102. package/chunks/chunk-B4XUXE7E.js +18 -0
  103. package/chunks/chunk-BGZ5OVVN.js +20 -0
  104. package/chunks/chunk-BZHH4R64.js +20 -0
  105. package/chunks/chunk-C3ZKLONL.js +21 -0
  106. package/chunks/chunk-C4Q4PC53.js +63 -0
  107. package/chunks/chunk-C7SRAQMW.js +29 -0
  108. package/chunks/chunk-CHA42BGS.js +48 -0
  109. package/chunks/chunk-CM6AHRTS.js +16 -0
  110. package/chunks/chunk-CQEDNACN.js +28 -0
  111. package/chunks/chunk-D33KC6NN.js +18 -0
  112. package/chunks/chunk-D47ZPEUU.js +22 -0
  113. package/chunks/chunk-E3GK7YZ7.js +65 -0
  114. package/chunks/chunk-E4FJHD5R.js +67 -0
  115. package/chunks/chunk-E6HDM2M4.js +191 -0
  116. package/chunks/chunk-FCLAFRIW.js +177 -0
  117. package/chunks/chunk-FHHXI6WC.js +31 -0
  118. package/chunks/chunk-FRP47Y6H.js +2456 -0
  119. package/chunks/chunk-G2M3VECP.js +20 -0
  120. package/chunks/chunk-G3HAKMUB.js +79 -0
  121. package/chunks/chunk-GE7DNPF6.js +63 -0
  122. package/chunks/chunk-GGT2PUZH.js +21 -0
  123. package/chunks/chunk-GOTTGEXI.js +23 -0
  124. package/chunks/chunk-HALUZA2X.js +16 -0
  125. package/chunks/chunk-HFIE4SBE.js +16 -0
  126. package/chunks/chunk-IYV3EEYX.js +20 -0
  127. package/chunks/chunk-J35QFU6O.js +21 -0
  128. package/chunks/chunk-JQRLQUMJ.js +16 -0
  129. package/chunks/chunk-JR76DLSV.js +151 -0
  130. package/chunks/chunk-JX45LILQ.js +164 -0
  131. package/chunks/chunk-KL6EJPC3.js +35 -0
  132. package/chunks/chunk-KN23H4CI.js +20 -0
  133. package/chunks/chunk-LH6Z6NJY.js +191 -0
  134. package/chunks/chunk-LNSDOGTR.js +63 -0
  135. package/chunks/chunk-LSOHLSF5.js +32 -0
  136. package/chunks/chunk-MFK63FMI.js +31 -0
  137. package/chunks/chunk-MKHTR43Q.js +231 -0
  138. package/chunks/chunk-MTT7TVR3.js +127 -0
  139. package/chunks/chunk-MW3KNVTG.js +29 -0
  140. package/chunks/chunk-MXGGOCLX.js +56 -0
  141. package/chunks/chunk-NA7PT2KE.js +21 -0
  142. package/chunks/chunk-NAP2XNYN.js +23 -0
  143. package/chunks/chunk-NFIEXASV.js +164 -0
  144. package/chunks/chunk-P2H6PV4O.js +26 -0
  145. package/chunks/chunk-P5OGBBGM.js +37 -0
  146. package/chunks/chunk-PENYZ6S7.js +31 -0
  147. package/chunks/chunk-PSP2DKDH.js +151 -0
  148. package/chunks/chunk-Q2ZS3QNB.js +151 -0
  149. package/chunks/chunk-RCWLMVSZ.js +164 -0
  150. package/chunks/chunk-RDQJSWRC.js +127 -0
  151. package/chunks/chunk-SAFV7TBT.js +31 -0
  152. package/chunks/chunk-SJLH36CH.js +26 -0
  153. package/chunks/chunk-SLCGLOYM.js +37 -0
  154. package/chunks/chunk-SUWMOLXI.js +191 -0
  155. package/chunks/chunk-SY65O2JU.js +98 -0
  156. package/chunks/chunk-T2T5BYTW.js +18 -0
  157. package/chunks/chunk-T6IC7JVI.js +37 -0
  158. package/chunks/chunk-TP6V6CBV.js +177 -0
  159. package/chunks/chunk-U3L3X27Q.js +177 -0
  160. package/chunks/chunk-U5WEI3QA.js +18 -0
  161. package/chunks/chunk-U7R6TPHR.js +15 -0
  162. package/chunks/chunk-UERX6XGZ.js +21 -0
  163. package/chunks/chunk-UFKH5WD2.js +21 -0
  164. package/chunks/chunk-UNHNZAVP.js +18 -0
  165. package/chunks/chunk-UODICVLG.js +173 -0
  166. package/chunks/chunk-UUU6DWRQ.js +79 -0
  167. package/chunks/chunk-VDT6ODFV.js +20 -0
  168. package/chunks/chunk-VHPX7UA3.js +177 -0
  169. package/chunks/chunk-VQUF2TSY.js +191 -0
  170. package/chunks/chunk-VR5JHUKK.js +32 -0
  171. package/chunks/chunk-VSBRIQPH.js +48 -0
  172. package/chunks/chunk-W6JPRXQ4.js +16 -0
  173. package/chunks/chunk-WC2LQPQP.js +26 -0
  174. package/chunks/chunk-WH5V6GK7.js +56 -0
  175. package/chunks/chunk-WIJBRYJ6.js +20 -0
  176. package/chunks/chunk-WP7L5ZFP.js +173 -0
  177. package/chunks/chunk-WR64YJNW.js +20 -0
  178. package/chunks/chunk-WRRA3BN4.js +31 -0
  179. package/chunks/chunk-WTILPGGX.js +69 -0
  180. package/chunks/chunk-X244JGZD.js +69 -0
  181. package/chunks/chunk-X34YXAEL.js +31 -0
  182. package/chunks/chunk-X5HMM3LD.js +35 -0
  183. package/chunks/chunk-X6WCMUOP.js +18 -0
  184. package/chunks/chunk-XB3ZOIHH.js +2456 -0
  185. package/chunks/chunk-XJ23DJY4.js +173 -0
  186. package/chunks/chunk-XQMUFSLU.js +16 -0
  187. package/chunks/chunk-XTOAQTLP.js +98 -0
  188. package/chunks/chunk-Y7YEYHRZ.js +69 -0
  189. package/chunks/chunk-YCSC7QNV.js +30 -0
  190. package/chunks/chunk-YE67BQQN.js +4072 -0
  191. package/chunks/chunk-YEYXAV23.js +16 -0
  192. package/chunks/chunk-YLJBKSLO.js +56 -0
  193. package/chunks/chunk-YMRGCRQ4.js +48 -0
  194. package/chunks/chunk-Z2CU55CF.js +20 -0
  195. package/chunks/chunk-Z4PVE6SR.js +21 -0
  196. package/chunks/chunk-ZMMNN3QA.js +16 -0
  197. package/chunks/chunk-ZNPRJEP5.js +28 -0
  198. package/chunks/chunk-ZQ7ZC7TZ.js +56 -0
  199. package/chunks/chunk-ZVBMPJLH.js +48 -0
  200. package/node/@google-cloud/index.js +8 -8
  201. package/node/@google-cloud/storage/bucket/index.js +4 -4
  202. package/node/@google-cloud/storage/file/index.js +12 -12
  203. package/node/@google-cloud/storage/index.js +8 -8
  204. package/node/cloud-storage/index.js +7 -7
  205. package/node/cloud-storage/operations/download/index.js +3 -3
  206. package/node/cloud-storage/operations/index.js +7 -7
  207. package/node/cloud-storage/operations/upload/index.js +3 -3
  208. package/node/encryption/index.js +3 -3
  209. package/node/files/index.js +3 -3
  210. package/node/images/index.js +32 -32
  211. package/node/images/prepare/index.js +32 -32
  212. package/node/images/transform/_utils/color-schema/index.js +2 -2
  213. package/node/images/transform/_utils/positions/index.js +2 -2
  214. package/node/images/transform/blur/index.js +2 -2
  215. package/node/images/transform/brighten/index.js +2 -2
  216. package/node/images/transform/compose/index.js +4 -4
  217. package/node/images/transform/extend/index.js +3 -3
  218. package/node/images/transform/extract/index.js +2 -2
  219. package/node/images/transform/flatten/index.js +3 -3
  220. package/node/images/transform/flip/index.js +2 -2
  221. package/node/images/transform/flop/index.js +2 -2
  222. package/node/images/transform/frame/backgrounds/create-line-background/index.js +2 -2
  223. package/node/images/transform/frame/backgrounds/create-tile-background/index.js +2 -2
  224. package/node/images/transform/frame/index.js +6 -6
  225. package/node/images/transform/hue-rotate/index.js +2 -2
  226. package/node/images/transform/index.js +31 -31
  227. package/node/images/transform/lighten/index.js +2 -2
  228. package/node/images/transform/lineate-levels/index.js +2 -2
  229. package/node/images/transform/modulate/index.js +2 -2
  230. package/node/images/transform/normalize/index.js +2 -2
  231. package/node/images/transform/operations/_utils/frame/backgrounds/create-line-background/index.js +2 -2
  232. package/node/images/transform/operations/_utils/frame/backgrounds/create-tile-background/index.js +2 -2
  233. package/node/images/transform/operations/_utils/frame/create-color-palette/index.js +3 -3
  234. package/node/images/transform/operations/_utils/frame/index.js +7 -7
  235. package/node/images/transform/resize/index.js +3 -3
  236. package/node/images/transform/rotate/index.js +2 -2
  237. package/node/images/transform/saturate/index.js +2 -2
  238. package/node/images/transform/scale/index.js +3 -3
  239. package/package.json +11 -12
@@ -0,0 +1,191 @@
1
+ import {
2
+ Random
3
+ } from "./chunk-S32K7POB.js";
4
+ import {
5
+ Arrays
6
+ } from "./chunk-FHHXI6WC.js";
7
+
8
+ // src/agnostic/misc/lorem-ipsum/index.ts
9
+ var LoremIpsum;
10
+ ((LoremIpsum2) => {
11
+ LoremIpsum2.words = [
12
+ "a",
13
+ "ac",
14
+ "accumsan",
15
+ "adipiscing",
16
+ "aenean",
17
+ "aliquam",
18
+ "aliquet",
19
+ "amet",
20
+ "ante",
21
+ "arcu",
22
+ "at",
23
+ "auctor",
24
+ "augue",
25
+ "bibendum",
26
+ "blandit",
27
+ "condimentum",
28
+ "consectetur",
29
+ "consequat",
30
+ "convallis",
31
+ "cras",
32
+ "curabitur",
33
+ "cursus",
34
+ "dapibus",
35
+ "diam",
36
+ "dictum",
37
+ "dictumst",
38
+ "dignissim",
39
+ "dolor",
40
+ "donec",
41
+ "dui",
42
+ "duis",
43
+ "efficitur",
44
+ "egestas",
45
+ "eget",
46
+ "eleifend",
47
+ "elementum",
48
+ "elit",
49
+ "enim",
50
+ "erat",
51
+ "eros",
52
+ "est",
53
+ "et",
54
+ "eu",
55
+ "euismod",
56
+ "ex",
57
+ "facilisis",
58
+ "faucibus",
59
+ "felis",
60
+ "feugiat",
61
+ "finibus",
62
+ "fringilla",
63
+ "fusce",
64
+ "gravida",
65
+ "habitasse",
66
+ "hac",
67
+ "hendrerit",
68
+ "iaculis",
69
+ "id",
70
+ "imperdiet",
71
+ "in",
72
+ "integer",
73
+ "interdum",
74
+ "ipsum",
75
+ "justo",
76
+ "lacinia",
77
+ "lacus",
78
+ "laoreet",
79
+ "lectus",
80
+ "leo",
81
+ "libero",
82
+ "ligula",
83
+ "lobortis",
84
+ "lorem",
85
+ "luctus",
86
+ "maecenas",
87
+ "magna",
88
+ "malesuada",
89
+ "massa",
90
+ "mattis",
91
+ "mauris",
92
+ "maximus",
93
+ "metus",
94
+ "mi",
95
+ "molestie",
96
+ "mollis",
97
+ "morbi",
98
+ "nam",
99
+ "nec",
100
+ "neque",
101
+ "nibh",
102
+ "nisi",
103
+ "nisl",
104
+ "non",
105
+ "nulla",
106
+ "nullam",
107
+ "nunc",
108
+ "odio",
109
+ "orci",
110
+ "ornare",
111
+ "pellentesque",
112
+ "pharetra",
113
+ "phasellus",
114
+ "placerat",
115
+ "platea",
116
+ "porta",
117
+ "porttitor",
118
+ "posuere",
119
+ "praesent",
120
+ "pulvinar",
121
+ "purus",
122
+ "quam",
123
+ "quis",
124
+ "quisque",
125
+ "risus",
126
+ "rutrum",
127
+ "sagittis",
128
+ "sapien",
129
+ "sed",
130
+ "sem",
131
+ "semper",
132
+ "sit",
133
+ "sodales",
134
+ "sollicitudin",
135
+ "suscipit",
136
+ "suspendisse",
137
+ "tellus",
138
+ "tempor",
139
+ "tempus",
140
+ "tincidunt",
141
+ "tortor",
142
+ "tristique",
143
+ "turpis",
144
+ "ultrices",
145
+ "ultricies",
146
+ "urna",
147
+ "ut",
148
+ "vehicula",
149
+ "vel",
150
+ "velit",
151
+ "venenatis",
152
+ "vestibulum",
153
+ "vitae",
154
+ "vivamus",
155
+ "viverra",
156
+ "volutpat",
157
+ "vulputate"
158
+ ];
159
+ LoremIpsum2.generateSentence = (wordCount) => {
160
+ const resultArr = [];
161
+ let currentWordCound = wordCount;
162
+ for (let i = 0; i < currentWordCound; i++) {
163
+ const picked = Arrays.randomPick(LoremIpsum2.words);
164
+ if (typeof picked === "string") resultArr.push(picked);
165
+ else {
166
+ currentWordCound += 1;
167
+ }
168
+ }
169
+ const [firstWord, ...otherWords] = resultArr;
170
+ if (firstWord === void 0) return "";
171
+ const capFirstLetter = firstWord?.charAt(0).toUpperCase();
172
+ const restOfFirstWord = firstWord?.slice(1);
173
+ const sentence = [
174
+ `${capFirstLetter}${restOfFirstWord}`,
175
+ ...otherWords
176
+ ].join(" ");
177
+ return `${sentence}.`;
178
+ };
179
+ LoremIpsum2.generateSentences = (sentencesCount, maxSentenceLength = 12, minSentenceLength = 4) => {
180
+ const sentences = [];
181
+ for (let i = 0; i < sentencesCount; i++) {
182
+ const length = Random.randomInt(maxSentenceLength, minSentenceLength) ?? 8;
183
+ sentences.push((0, LoremIpsum2.generateSentence)(length));
184
+ }
185
+ return sentences;
186
+ };
187
+ })(LoremIpsum || (LoremIpsum = {}));
188
+
189
+ export {
190
+ LoremIpsum
191
+ };
@@ -0,0 +1,63 @@
1
+ import {
2
+ lightenColor,
3
+ setColorLuminance
4
+ } from "./chunk-U57Q62IN.js";
5
+ import {
6
+ saturateColor,
7
+ setColorSaturation
8
+ } from "./chunk-MB7HWF22.js";
9
+ import {
10
+ complementColor
11
+ } from "./chunk-2POD3TAX.js";
12
+
13
+ // src/node/images/transform/operations/_utils/frame/backgrounds/create-line-background/index.ts
14
+ async function createLineBackground(background, dimensions, palette) {
15
+ const lineDimensions = {
16
+ widthPx: dimensions.widthPx,
17
+ heightPx: Math.round(dimensions.heightPx / background.params.nbLines)
18
+ };
19
+ const sharpOverlays = [];
20
+ const maxPaletteLength = palette.length;
21
+ const selectedColorIndex = background.params.colors.selectColorPaletteIndex === "first" ? 0 : background.params.colors.selectColorPaletteIndex === "last" ? palette.length - 1 : background.params.colors.selectColorPaletteIndex;
22
+ for (let i = 0; i < background.params.nbLines; i++) {
23
+ const indexPalette = Math.min(Math.max(0, selectedColorIndex), maxPaletteLength);
24
+ const RGBColor = palette[indexPalette] || [0, 0, 0];
25
+ const primaryRGBColor = applyColorTransformations(RGBColor, background.params.colors.primaryTransformations);
26
+ const secondaryRGBColor = applyColorTransformations(RGBColor, background.params.colors.secondaryTransformations);
27
+ const outputRGBColor = i % 2 === 0 ? primaryRGBColor : secondaryRGBColor;
28
+ const topPx = Math.min(lineDimensions.heightPx * i, dimensions.heightPx);
29
+ sharpOverlays.push({
30
+ input: {
31
+ create: {
32
+ width: lineDimensions.widthPx,
33
+ height: i === background.params.nbLines - 1 ? dimensions.heightPx - topPx : lineDimensions.heightPx,
34
+ channels: 4,
35
+ background: { r: outputRGBColor[0], g: outputRGBColor[1], b: outputRGBColor[2], alpha: 1 }
36
+ }
37
+ },
38
+ left: 0,
39
+ top: topPx
40
+ });
41
+ }
42
+ return sharpOverlays;
43
+ }
44
+ function applyColorTransformations(RGBColor, transformations) {
45
+ transformations.forEach((transformation) => {
46
+ RGBColor = transformColor(RGBColor, transformation);
47
+ });
48
+ return RGBColor;
49
+ }
50
+ function transformColor(RGBColor, transformation) {
51
+ switch (transformation.type) {
52
+ case "saturate":
53
+ return transformation.intensityMode === "add" ? saturateColor(RGBColor, transformation.intensity) : setColorSaturation(RGBColor, transformation.intensity);
54
+ case "lighten":
55
+ return transformation.intensityMode === "add" ? lightenColor(RGBColor, transformation.intensity) : setColorLuminance(RGBColor, transformation.intensity);
56
+ case "complement":
57
+ return complementColor(RGBColor);
58
+ }
59
+ }
60
+
61
+ export {
62
+ createLineBackground
63
+ };
@@ -0,0 +1,32 @@
1
+ import {
2
+ colorSchema
3
+ } from "./chunk-U7R6TPHR.js";
4
+ import {
5
+ OperationNames
6
+ } from "./chunk-MOVLLUDL.js";
7
+ import {
8
+ esm_default
9
+ } from "./chunk-YE67BQQN.js";
10
+
11
+ // src/node/images/transform/resize/index.ts
12
+ var resizeSchema = esm_default.object({
13
+ name: esm_default.literal(OperationNames.Resize),
14
+ params: esm_default.object({
15
+ width: esm_default.number().min(0),
16
+ height: esm_default.number().min(0),
17
+ options: esm_default.object({
18
+ background: esm_default.optional(colorSchema),
19
+ fit: esm_default.enum([
20
+ "contain",
21
+ "cover",
22
+ "fill",
23
+ "inside",
24
+ "outside"
25
+ ]).optional()
26
+ }).optional()
27
+ })
28
+ });
29
+
30
+ export {
31
+ resizeSchema
32
+ };
@@ -0,0 +1,31 @@
1
+ import {
2
+ colorSchema
3
+ } from "./chunk-U7R6TPHR.js";
4
+ import {
5
+ esm_default
6
+ } from "./chunk-YE67BQQN.js";
7
+ import {
8
+ OperationNames
9
+ } from "./chunk-MOVLLUDL.js";
10
+
11
+ // src/node/images/transform/extend/index.ts
12
+ var extendSchema = esm_default.object({
13
+ name: esm_default.literal(OperationNames.Extend),
14
+ params: esm_default.object({
15
+ top: esm_default.number(),
16
+ left: esm_default.number(),
17
+ right: esm_default.number(),
18
+ bottom: esm_default.number(),
19
+ background: colorSchema,
20
+ extendWith: esm_default.optional(esm_default.enum([
21
+ "background",
22
+ "copy",
23
+ "repeat",
24
+ "mirror"
25
+ ]))
26
+ })
27
+ });
28
+
29
+ export {
30
+ extendSchema
31
+ };
@@ -0,0 +1,231 @@
1
+ import {
2
+ Transitions
3
+ } from "./chunk-ENMBK6H7.js";
4
+ import {
5
+ clamp
6
+ } from "./chunk-OSAXBA7G.js";
7
+ import {
8
+ shuffle
9
+ } from "./chunk-VJJIYJMY.js";
10
+ import {
11
+ randomInt
12
+ } from "./chunk-D3ERTRDW.js";
13
+
14
+ // src/node/images/transform/operations/_utils/frame/backgrounds/create-tile-background/index.ts
15
+ var DEFAULT_CREATE_BACKGROUND_TILE_PARAMS = {
16
+ coverageRatio: 0.5,
17
+ densityA: { min: 0, max: 0 },
18
+ densityB: { min: 0, max: 0 },
19
+ format: "random",
20
+ xEasing: "linear",
21
+ yEasing: "linear"
22
+ };
23
+ async function createTileBackground(background, dimensions, imageCoordinates, colorPalette) {
24
+ background = {
25
+ ...background,
26
+ params: {
27
+ ...DEFAULT_CREATE_BACKGROUND_TILE_PARAMS,
28
+ ...background.params
29
+ }
30
+ };
31
+ const tileCoordinatesList = getPackedTilesCoordinatesList(
32
+ {
33
+ x: imageCoordinates.x,
34
+ y: imageCoordinates.y,
35
+ w: imageCoordinates.w,
36
+ h: imageCoordinates.h
37
+ },
38
+ dimensions,
39
+ background.params.coverageRatio,
40
+ {
41
+ A: background.params.densityA,
42
+ B: background.params.densityB
43
+ },
44
+ {
45
+ X: background.params.xEasing,
46
+ Y: background.params.yEasing
47
+ },
48
+ background.params.format
49
+ );
50
+ return createSharpOverlaysFromCoordinatesList(
51
+ tileCoordinatesList,
52
+ colorPalette
53
+ );
54
+ }
55
+ function getPackedTilesCoordinatesList(coordinatesToAvoid, dimensions, tileCoverageRatio, tileDensity, tileEasing, tileFormat) {
56
+ const areaCoordinatesList = [];
57
+ const baseFormat = {
58
+ nbCells: 9,
59
+ cellAvoidIndex: 4,
60
+ nbRows: 3,
61
+ nbColumns: 3
62
+ };
63
+ const positionsToAvoid = {
64
+ top: Math.ceil(coordinatesToAvoid.y),
65
+ bottom: Math.ceil(coordinatesToAvoid.y + coordinatesToAvoid.h),
66
+ left: Math.ceil(coordinatesToAvoid.x),
67
+ right: Math.ceil(coordinatesToAvoid.x + coordinatesToAvoid.w)
68
+ };
69
+ for (let i = 0; i < baseFormat.nbCells; i++) {
70
+ if (i === baseFormat.cellAvoidIndex) {
71
+ continue;
72
+ }
73
+ const middleColumn = i % baseFormat.nbColumns === 1;
74
+ const rightColumn = i % baseFormat.nbColumns === 2;
75
+ const topRow = i < baseFormat.nbRows;
76
+ const middleRow = !topRow && i < baseFormat.nbRows * 2;
77
+ const bottomRow = !topRow && !middleRow;
78
+ areaCoordinatesList[i] = { x: 0, y: 0, w: positionsToAvoid.left, h: positionsToAvoid.top };
79
+ if (middleColumn) {
80
+ areaCoordinatesList[i].x = positionsToAvoid.left;
81
+ areaCoordinatesList[i].w = coordinatesToAvoid.w;
82
+ }
83
+ if (rightColumn) {
84
+ areaCoordinatesList[i].x = positionsToAvoid.right;
85
+ }
86
+ if (middleRow) {
87
+ areaCoordinatesList[i].y = positionsToAvoid.top;
88
+ areaCoordinatesList[i].h = coordinatesToAvoid.h;
89
+ }
90
+ if (bottomRow) {
91
+ areaCoordinatesList[i].y = positionsToAvoid.bottom;
92
+ areaCoordinatesList[i].h = dimensions.heightPx - positionsToAvoid.bottom;
93
+ }
94
+ }
95
+ const filteredAreaCoordinatesList = shuffle(areaCoordinatesList.filter((areaCoordinate) => areaCoordinate.w !== 0 && areaCoordinate.h !== 0));
96
+ const subTiles = [];
97
+ const nbAreas = filteredAreaCoordinatesList.length;
98
+ const nbAreasToCover = Math.round(nbAreas * tileCoverageRatio);
99
+ if (tileDensity.A.min > 1 || tileDensity.A.max > 1 || tileDensity.B.min > 1 || tileDensity.B.max > 1) {
100
+ filteredAreaCoordinatesList.forEach((areaCoordinates, index) => {
101
+ if (index > nbAreasToCover) {
102
+ subTiles.push(areaCoordinates);
103
+ return;
104
+ }
105
+ const { nbRows, nbColumns } = getNbRowsAndColumnsForFormat(
106
+ randomInt(tileDensity.A.min, tileDensity.A.max) || 0,
107
+ randomInt(tileDensity.B.min, tileDensity.B.max) || 0,
108
+ { widthPx: areaCoordinates.w, heightPx: areaCoordinates.h },
109
+ tileFormat
110
+ );
111
+ const XEasingFunc = (tileEasing.X && tileEasing.X in Transitions.easings ? Transitions.easings[tileEasing.X] : Transitions.easings.linear) || function(x) {
112
+ return x;
113
+ };
114
+ const YEasingFunc = (tileEasing.Y in Transitions.easings ? Transitions.easings[tileEasing.Y] : Transitions.easings.linear) || function(x) {
115
+ return x;
116
+ };
117
+ const tiles = [];
118
+ for (let i = 0; i < nbRows; i++) {
119
+ for (let j = 0; j < nbColumns; j++) {
120
+ const columnI = j;
121
+ const rowI = i;
122
+ const x = Math.ceil(areaCoordinates.w * XEasingFunc(columnI / nbColumns));
123
+ const y = Math.ceil(areaCoordinates.h * YEasingFunc(rowI / nbRows));
124
+ tiles.push({
125
+ x: areaCoordinates.x + x,
126
+ y: areaCoordinates.y + y
127
+ });
128
+ }
129
+ }
130
+ const nbTiles = tiles.length;
131
+ tiles.forEach((subTileCoord, i) => {
132
+ const tileNum = i + 1;
133
+ const nextTileX = tileNum % nbColumns > 0 ? tiles[i + 1] : null;
134
+ const nextTileY = i + nbColumns < nbTiles ? tiles[i + nbColumns] : null;
135
+ const subTileBounds = {
136
+ x: nextTileX ? nextTileX.x : areaCoordinates.x + areaCoordinates.w,
137
+ y: nextTileY ? nextTileY.y : areaCoordinates.y + areaCoordinates.h
138
+ };
139
+ subTiles.push({
140
+ x: subTileCoord.x,
141
+ y: subTileCoord.y,
142
+ w: subTileBounds.x - subTileCoord.x,
143
+ h: subTileBounds.y - subTileCoord.y
144
+ });
145
+ });
146
+ });
147
+ }
148
+ return (subTiles.length ? subTiles : filteredAreaCoordinatesList).map((tile) => ({
149
+ w: clamp(tile.w, 0, dimensions.widthPx),
150
+ h: clamp(tile.h, 0, dimensions.heightPx),
151
+ x: clamp(tile.x, 0, dimensions.widthPx),
152
+ y: clamp(tile.y, 0, dimensions.heightPx)
153
+ })).filter((tile) => tile.w > 0 && tile.h > 0);
154
+ }
155
+ function getNbRowsAndColumnsForFormat(tileDensityA, tileDensityB, tileDimensions, tileFormat) {
156
+ switch (tileFormat) {
157
+ case "random":
158
+ const random = Math.random() > Math.random();
159
+ return {
160
+ nbRows: random ? tileDensityA : tileDensityB,
161
+ nbColumns: random ? tileDensityB : tileDensityA
162
+ };
163
+ case "portrait":
164
+ return {
165
+ nbRows: tileDensityA,
166
+ nbColumns: tileDensityB
167
+ };
168
+ case "landscape":
169
+ return {
170
+ nbRows: tileDensityB,
171
+ nbColumns: tileDensityA
172
+ };
173
+ default:
174
+ return {
175
+ nbRows: tileDimensions.widthPx > tileDimensions.heightPx ? tileDensityA : tileDensityB,
176
+ nbColumns: tileDimensions.widthPx > tileDimensions.heightPx ? tileDensityB : tileDensityA
177
+ };
178
+ }
179
+ }
180
+ function createSharpOverlaysFromCoordinatesList(tileCoordinatesList, colorPalette) {
181
+ let usedColorsIndexes = [];
182
+ const colorPaletteLength = colorPalette.length;
183
+ const getRGBColor = () => {
184
+ const getUnusedColorIndex = () => {
185
+ const paletteIndex = randomInt(0, colorPaletteLength) || 0;
186
+ resetUnusedColorIndexesIfNeeded();
187
+ if (usedColorsIndexes.includes(paletteIndex)) {
188
+ return getUnusedColorIndex();
189
+ }
190
+ usedColorsIndexes.push(paletteIndex);
191
+ return paletteIndex;
192
+ };
193
+ const resetUnusedColorIndexesIfNeeded = () => {
194
+ if (usedColorsIndexes.length !== colorPaletteLength) {
195
+ return;
196
+ }
197
+ usedColorsIndexes = [];
198
+ };
199
+ const colorPaletteIndex = getUnusedColorIndex();
200
+ const RGBColor = colorPalette[colorPaletteIndex];
201
+ if (!RGBColor) {
202
+ return [0, 0, 0];
203
+ }
204
+ return RGBColor;
205
+ };
206
+ return tileCoordinatesList.map((tileCoordinates) => {
207
+ const RGBColor = getRGBColor();
208
+ return {
209
+ top: Math.floor(tileCoordinates.y),
210
+ left: Math.floor(tileCoordinates.x),
211
+ input: {
212
+ create: {
213
+ width: Math.round(tileCoordinates.w),
214
+ height: Math.round(tileCoordinates.h),
215
+ channels: 4,
216
+ background: {
217
+ r: RGBColor[0],
218
+ g: RGBColor[1],
219
+ b: RGBColor[2],
220
+ alpha: 1
221
+ }
222
+ }
223
+ }
224
+ };
225
+ });
226
+ }
227
+
228
+ export {
229
+ DEFAULT_CREATE_BACKGROUND_TILE_PARAMS,
230
+ createTileBackground
231
+ };
@@ -0,0 +1,127 @@
1
+ import {
2
+ register
3
+ } from "./chunk-WC2LQPQP.js";
4
+
5
+ // src/agnostic/html/sanitize/index.ts
6
+ var Sanitize;
7
+ ((Sanitize2) => {
8
+ Sanitize2.defaultOptions = { depth: 20 };
9
+ function sanitize(inputStr, options = Sanitize2.defaultOptions) {
10
+ const actualDocument = options.documentObj ?? window.document;
11
+ if (actualDocument === null) throw register.getError("no-window-document-on-runtime-please-provide" /* NO_DOCUMENT_PLEASE_PROVIDE */, "See documentObj in the options object");
12
+ const wrapperDiv = actualDocument.createElement("div");
13
+ const { inputFreeTransform } = options;
14
+ wrapperDiv.innerHTML = inputFreeTransform !== void 0 ? inputFreeTransform(inputStr) : inputStr;
15
+ const sanitizedWrapper = sanitizeElement(wrapperDiv, options);
16
+ const returned = sanitizedWrapper?.innerHTML;
17
+ return returned ?? "";
18
+ }
19
+ Sanitize2.sanitize = sanitize;
20
+ function sanitizeElement(element, options = Sanitize2.defaultOptions) {
21
+ const actualDocument = options.documentObj ?? window.document;
22
+ if (actualDocument === null) throw register.getError("no-window-document-on-runtime-please-provide" /* NO_DOCUMENT_PLEASE_PROVIDE */, "See documentObj in the options object");
23
+ const { tagName, attributes, childNodes } = element;
24
+ const {
25
+ allowedTags = [],
26
+ allowedAttributes = {},
27
+ forbiddenTags = [],
28
+ forbiddenAttributes = {},
29
+ depth = 20,
30
+ verbose = false
31
+ } = options;
32
+ if (depth <= 0) {
33
+ console.warn("Max depth reached");
34
+ return null;
35
+ }
36
+ const normalizedTagName = tagName.toLowerCase().trim();
37
+ const tagIsInForbidden = forbiddenTags.includes("*") || forbiddenTags.includes(normalizedTagName);
38
+ if (tagIsInForbidden) {
39
+ if (verbose === true) console.warn(tagName, "tag is forbidden");
40
+ return null;
41
+ }
42
+ const tagIsInAllowed = allowedTags.includes("*") || allowedTags.includes(normalizedTagName);
43
+ if (!tagIsInAllowed) {
44
+ if (verbose === true) console.warn(tagName, "tag is not allowed");
45
+ return null;
46
+ }
47
+ const returnedElement = actualDocument.createElement(tagName);
48
+ const returnedAttributes = Array.from(attributes).filter(({ name: attributeName, value: attributeValue }) => {
49
+ const allTagsForbiddenAttributes = forbiddenAttributes["*"] ?? [];
50
+ const thisTagForbiddenAttributes = forbiddenAttributes[normalizedTagName] ?? [];
51
+ const mergedForbiddenAttributes = [...allTagsForbiddenAttributes, ...thisTagForbiddenAttributes];
52
+ const isInForbidden = mergedForbiddenAttributes.some(({
53
+ attributeName: nameTester,
54
+ attributeValues: valTesters
55
+ }) => {
56
+ if (typeof nameTester === "string" && nameTester !== "*" && attributeName !== nameTester) return false;
57
+ if (typeof nameTester !== "string" && !nameTester.test(attributeName)) return false;
58
+ if (valTesters === void 0) {
59
+ if (verbose === true) console.warn(attributeName, "attribute on", tagName, "tag is forbidden");
60
+ return true;
61
+ }
62
+ if (valTesters.includes("*")) {
63
+ if (verbose === true) console.warn(attributeName, "attribute on", tagName, "tag is forbidden");
64
+ return true;
65
+ }
66
+ return valTesters.some((valTester) => {
67
+ if (typeof valTester === "string" && attributeValue === valTester) {
68
+ if (verbose === true) console.warn(attributeValue, "value for", attributeName, "attribute on", tagName, "tag is forbidden. Rule:", valTester);
69
+ return true;
70
+ }
71
+ if (typeof valTester !== "string" && valTester.test(attributeValue)) {
72
+ if (verbose === true) console.warn(attributeValue, "value for", attributeName, "attribute on", tagName, "tag is forbidden. Rule:", valTester);
73
+ return true;
74
+ }
75
+ return false;
76
+ });
77
+ });
78
+ if (isInForbidden) return false;
79
+ const allTagsAllowedAttributes = allowedAttributes["*"] ?? [];
80
+ const thisTagAllowedAttributes = allowedAttributes[normalizedTagName] ?? [];
81
+ const mergedAllowedAttributes = [...allTagsAllowedAttributes, ...thisTagAllowedAttributes];
82
+ let latestNotAllowedReason = [tagName, "has no allowed attributes"];
83
+ const isInAllowed = mergedAllowedAttributes.some(({
84
+ attributeName: nameTester,
85
+ attributeValues: valTesters
86
+ }) => {
87
+ if (typeof nameTester === "string" && nameTester !== "*" && attributeName !== nameTester) {
88
+ latestNotAllowedReason = [attributeName, "attribute on", tagName, "tag is not allowed"];
89
+ return false;
90
+ }
91
+ if (typeof nameTester !== "string" && !nameTester.test(attributeName)) {
92
+ latestNotAllowedReason = [attributeName, "attribute on", tagName, "tag is not allowed"];
93
+ return false;
94
+ }
95
+ if (valTesters === void 0) return true;
96
+ if (valTesters.includes("*")) return true;
97
+ return valTesters.some((valTester) => {
98
+ if (typeof valTester === "string" && attributeValue === valTester) return true;
99
+ if (typeof valTester !== "string" && valTester.test(attributeValue)) return true;
100
+ latestNotAllowedReason = [attributeValue, "value for", attributeName, "attribute on", tagName, "tag is not allowed"];
101
+ return false;
102
+ });
103
+ });
104
+ if (!isInAllowed) {
105
+ if (verbose === true) console.warn(...latestNotAllowedReason);
106
+ return false;
107
+ }
108
+ return true;
109
+ });
110
+ returnedAttributes.forEach(({ name, value }) => {
111
+ returnedElement.setAttribute(name, value);
112
+ });
113
+ const sanitizedChildNodes = Array.from(childNodes).map((node) => {
114
+ if (node.nodeType === Node.ELEMENT_NODE) return sanitizeElement(node, { ...options, depth: depth - 1 });
115
+ else if (node.nodeType === Node.TEXT_NODE) return node;
116
+ else if (options.keepComments === true && node.nodeType === Node.COMMENT_NODE) return node;
117
+ return null;
118
+ }).filter((elt) => elt !== null);
119
+ returnedElement.replaceChildren(...sanitizedChildNodes);
120
+ return returnedElement;
121
+ }
122
+ Sanitize2.sanitizeElement = sanitizeElement;
123
+ })(Sanitize || (Sanitize = {}));
124
+
125
+ export {
126
+ Sanitize
127
+ };