@makeswift/prop-controllers 0.3.0 → 0.3.1

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 (326) hide show
  1. package/dist/cjs/backgrounds/backgrounds.js +297 -0
  2. package/dist/cjs/backgrounds/backgrounds.js.map +1 -0
  3. package/dist/cjs/backgrounds/index.js +23 -0
  4. package/dist/cjs/backgrounds/index.js.map +1 -0
  5. package/dist/cjs/border/border.js +132 -0
  6. package/dist/cjs/border/border.js.map +1 -0
  7. package/dist/cjs/border/index.js +23 -0
  8. package/dist/cjs/border/index.js.map +1 -0
  9. package/dist/cjs/border-radius/border-radius.js +82 -0
  10. package/dist/cjs/border-radius/border-radius.js.map +1 -0
  11. package/dist/cjs/border-radius/index.js +23 -0
  12. package/dist/cjs/border-radius/index.js.map +1 -0
  13. package/dist/cjs/checkbox/checkbox.js +68 -0
  14. package/dist/cjs/checkbox/checkbox.js.map +1 -0
  15. package/dist/cjs/checkbox/index.js +23 -0
  16. package/dist/cjs/checkbox/index.js.map +1 -0
  17. package/dist/cjs/data.js +85 -0
  18. package/dist/cjs/data.js.map +1 -0
  19. package/dist/cjs/date/date.js +68 -0
  20. package/dist/cjs/date/date.js.map +1 -0
  21. package/dist/cjs/date/index.js +23 -0
  22. package/dist/cjs/date/index.js.map +1 -0
  23. package/dist/cjs/element-id/element-id.js +90 -0
  24. package/dist/cjs/element-id/element-id.js.map +1 -0
  25. package/dist/cjs/element-id/index.js +23 -0
  26. package/dist/cjs/element-id/index.js.map +1 -0
  27. package/dist/cjs/font/font.js +70 -0
  28. package/dist/cjs/font/font.js.map +1 -0
  29. package/dist/cjs/font/index.js +23 -0
  30. package/dist/cjs/font/index.js.map +1 -0
  31. package/dist/cjs/gap-x/gap-x.js +40 -0
  32. package/dist/cjs/gap-x/gap-x.js.map +1 -0
  33. package/dist/cjs/gap-x/index.js +23 -0
  34. package/dist/cjs/gap-x/index.js.map +1 -0
  35. package/dist/cjs/gap-y/gap-y.js +68 -0
  36. package/dist/cjs/gap-y/gap-y.js.map +1 -0
  37. package/dist/cjs/gap-y/index.js +23 -0
  38. package/dist/cjs/gap-y/index.js.map +1 -0
  39. package/dist/cjs/grid/grid.js +130 -0
  40. package/dist/cjs/grid/grid.js.map +1 -0
  41. package/dist/cjs/grid/index.js +23 -0
  42. package/dist/cjs/grid/index.js.map +1 -0
  43. package/dist/cjs/image/image.js +95 -0
  44. package/dist/cjs/image/image.js.map +1 -0
  45. package/dist/cjs/image/index.js +23 -0
  46. package/dist/cjs/image/index.js.map +1 -0
  47. package/dist/cjs/images/images.js +147 -0
  48. package/dist/cjs/images/images.js.map +1 -0
  49. package/dist/cjs/images/index.js +23 -0
  50. package/dist/cjs/images/index.js.map +1 -0
  51. package/dist/cjs/index.js +343 -0
  52. package/dist/cjs/index.js.map +1 -0
  53. package/dist/cjs/link/index.js +23 -0
  54. package/dist/cjs/link/index.js.map +1 -0
  55. package/dist/cjs/link/link.js +137 -0
  56. package/dist/cjs/link/link.js.map +1 -0
  57. package/dist/cjs/margin/index.js +23 -0
  58. package/dist/cjs/margin/index.js.map +1 -0
  59. package/dist/cjs/margin/margin.js +94 -0
  60. package/dist/cjs/margin/margin.js.map +1 -0
  61. package/dist/cjs/navigation-links/index.js +23 -0
  62. package/dist/cjs/navigation-links/index.js.map +1 -0
  63. package/dist/cjs/navigation-links/navigation-links.js +226 -0
  64. package/dist/cjs/navigation-links/navigation-links.js.map +1 -0
  65. package/dist/cjs/number.js +66 -0
  66. package/dist/cjs/number.js.map +1 -0
  67. package/dist/cjs/padding/index.js +23 -0
  68. package/dist/cjs/padding/index.js.map +1 -0
  69. package/dist/cjs/padding/padding.js +91 -0
  70. package/dist/cjs/padding/padding.js.map +1 -0
  71. package/dist/cjs/prop-controllers.js +67 -0
  72. package/dist/cjs/prop-controllers.js.map +1 -0
  73. package/dist/cjs/responsive-color.js +106 -0
  74. package/dist/cjs/responsive-color.js.map +1 -0
  75. package/dist/cjs/responsive-icon-radio-group/index.js +23 -0
  76. package/dist/cjs/responsive-icon-radio-group/index.js.map +1 -0
  77. package/dist/cjs/responsive-icon-radio-group/responsive-icon-radio-group.js +42 -0
  78. package/dist/cjs/responsive-icon-radio-group/responsive-icon-radio-group.js.map +1 -0
  79. package/dist/cjs/responsive-length.js +73 -0
  80. package/dist/cjs/responsive-length.js.map +1 -0
  81. package/dist/cjs/responsive-number/index.js +23 -0
  82. package/dist/cjs/responsive-number/index.js.map +1 -0
  83. package/dist/cjs/responsive-number/responsive-number.js +40 -0
  84. package/dist/cjs/responsive-number/responsive-number.js.map +1 -0
  85. package/dist/cjs/responsive-opacity/index.js +23 -0
  86. package/dist/cjs/responsive-opacity/index.js.map +1 -0
  87. package/dist/cjs/responsive-opacity/responsive-opacity.js +43 -0
  88. package/dist/cjs/responsive-opacity/responsive-opacity.js.map +1 -0
  89. package/dist/cjs/responsive-select/index.js +23 -0
  90. package/dist/cjs/responsive-select/index.js.map +1 -0
  91. package/dist/cjs/responsive-select/responsive-select.js +42 -0
  92. package/dist/cjs/responsive-select/responsive-select.js.map +1 -0
  93. package/dist/cjs/shadows.js +126 -0
  94. package/dist/cjs/shadows.js.map +1 -0
  95. package/dist/cjs/social-links/index.js +23 -0
  96. package/dist/cjs/social-links/index.js.map +1 -0
  97. package/dist/cjs/social-links/social-links.js +128 -0
  98. package/dist/cjs/social-links/social-links.js.map +1 -0
  99. package/dist/cjs/table/index.js +23 -0
  100. package/dist/cjs/table/index.js.map +1 -0
  101. package/dist/cjs/table/table.js +91 -0
  102. package/dist/cjs/table/table.js.map +1 -0
  103. package/dist/cjs/table-form-fields/index.js +23 -0
  104. package/dist/cjs/table-form-fields/index.js.map +1 -0
  105. package/dist/cjs/table-form-fields/table-form-fields.js +113 -0
  106. package/dist/cjs/table-form-fields/table-form-fields.js.map +1 -0
  107. package/dist/cjs/text-area/index.js +23 -0
  108. package/dist/cjs/text-area/index.js.map +1 -0
  109. package/dist/cjs/text-area/text-area.js +67 -0
  110. package/dist/cjs/text-area/text-area.js.map +1 -0
  111. package/dist/cjs/text-input/index.js +23 -0
  112. package/dist/cjs/text-input/index.js.map +1 -0
  113. package/dist/cjs/text-input/text-input.js +67 -0
  114. package/dist/cjs/text-input/text-input.js.map +1 -0
  115. package/dist/cjs/text-style/index.js +23 -0
  116. package/dist/cjs/text-style/index.js.map +1 -0
  117. package/dist/cjs/text-style/text-style.js +88 -0
  118. package/dist/cjs/text-style/text-style.js.map +1 -0
  119. package/dist/cjs/utils/associated-types.js +17 -0
  120. package/dist/cjs/utils/associated-types.js.map +1 -0
  121. package/dist/cjs/utils/utils.js +42 -0
  122. package/dist/cjs/utils/utils.js.map +1 -0
  123. package/dist/cjs/versioned.js +66 -0
  124. package/dist/cjs/versioned.js.map +1 -0
  125. package/dist/cjs/video/index.js +23 -0
  126. package/dist/cjs/video/index.js.map +1 -0
  127. package/dist/cjs/video/video.js +75 -0
  128. package/dist/cjs/video/video.js.map +1 -0
  129. package/dist/cjs/width/index.js +23 -0
  130. package/dist/cjs/width/index.js.map +1 -0
  131. package/dist/cjs/width/width.js +76 -0
  132. package/dist/cjs/width/width.js.map +1 -0
  133. package/dist/esm/backgrounds/backgrounds.js +268 -0
  134. package/dist/esm/backgrounds/backgrounds.js.map +1 -0
  135. package/dist/esm/backgrounds/index.js +2 -0
  136. package/dist/esm/backgrounds/index.js.map +1 -0
  137. package/dist/esm/border/border.js +105 -0
  138. package/dist/esm/border/border.js.map +1 -0
  139. package/dist/esm/border/index.js +2 -0
  140. package/dist/esm/border/index.js.map +1 -0
  141. package/dist/esm/border-radius/border-radius.js +58 -0
  142. package/dist/esm/border-radius/border-radius.js.map +1 -0
  143. package/dist/esm/border-radius/index.js +2 -0
  144. package/dist/esm/border-radius/index.js.map +1 -0
  145. package/dist/esm/checkbox/checkbox.js +40 -0
  146. package/dist/esm/checkbox/checkbox.js.map +1 -0
  147. package/dist/esm/checkbox/index.js +2 -0
  148. package/dist/esm/checkbox/index.js.map +1 -0
  149. package/dist/esm/data.js +52 -0
  150. package/dist/esm/data.js.map +1 -0
  151. package/dist/esm/date/date.js +40 -0
  152. package/dist/esm/date/date.js.map +1 -0
  153. package/dist/esm/date/index.js +2 -0
  154. package/dist/esm/date/index.js.map +1 -0
  155. package/dist/esm/element-id/element-id.js +64 -0
  156. package/dist/esm/element-id/element-id.js.map +1 -0
  157. package/dist/esm/element-id/index.js +2 -0
  158. package/dist/esm/element-id/index.js.map +1 -0
  159. package/dist/esm/font/font.js +42 -0
  160. package/dist/esm/font/font.js.map +1 -0
  161. package/dist/esm/font/index.js +2 -0
  162. package/dist/esm/font/index.js.map +1 -0
  163. package/dist/esm/gap-x/gap-x.js +16 -0
  164. package/dist/esm/gap-x/gap-x.js.map +1 -0
  165. package/dist/esm/gap-x/index.js +2 -0
  166. package/dist/esm/gap-x/index.js.map +1 -0
  167. package/dist/esm/gap-y/gap-y.js +40 -0
  168. package/dist/esm/gap-y/gap-y.js.map +1 -0
  169. package/dist/esm/gap-y/index.js +2 -0
  170. package/dist/esm/gap-y/index.js.map +1 -0
  171. package/dist/esm/grid/grid.js +102 -0
  172. package/dist/esm/grid/grid.js.map +1 -0
  173. package/dist/esm/grid/index.js +2 -0
  174. package/dist/esm/grid/index.js.map +1 -0
  175. package/dist/esm/image/image.js +71 -0
  176. package/dist/esm/image/image.js.map +1 -0
  177. package/dist/esm/image/index.js +2 -0
  178. package/dist/esm/image/index.js.map +1 -0
  179. package/dist/esm/images/images.js +119 -0
  180. package/dist/esm/images/images.js.map +1 -0
  181. package/dist/esm/images/index.js +2 -0
  182. package/dist/esm/images/index.js.map +1 -0
  183. package/dist/esm/index.js +336 -0
  184. package/dist/esm/index.js.map +1 -0
  185. package/dist/esm/link/index.js +2 -0
  186. package/dist/esm/link/index.js.map +1 -0
  187. package/dist/esm/link/link.js +108 -0
  188. package/dist/esm/link/link.js.map +1 -0
  189. package/dist/esm/margin/index.js +2 -0
  190. package/dist/esm/margin/index.js.map +1 -0
  191. package/dist/esm/margin/margin.js +69 -0
  192. package/dist/esm/margin/margin.js.map +1 -0
  193. package/dist/esm/navigation-links/index.js +2 -0
  194. package/dist/esm/navigation-links/index.js.map +1 -0
  195. package/dist/esm/navigation-links/navigation-links.js +199 -0
  196. package/dist/esm/navigation-links/navigation-links.js.map +1 -0
  197. package/dist/esm/number.js +39 -0
  198. package/dist/esm/number.js.map +1 -0
  199. package/dist/esm/padding/index.js +2 -0
  200. package/dist/esm/padding/index.js.map +1 -0
  201. package/dist/esm/padding/padding.js +66 -0
  202. package/dist/esm/padding/padding.js.map +1 -0
  203. package/dist/esm/prop-controllers.js +44 -0
  204. package/dist/esm/prop-controllers.js.map +1 -0
  205. package/dist/esm/responsive-color.js +79 -0
  206. package/dist/esm/responsive-color.js.map +1 -0
  207. package/dist/esm/responsive-icon-radio-group/index.js +2 -0
  208. package/dist/esm/responsive-icon-radio-group/index.js.map +1 -0
  209. package/dist/esm/responsive-icon-radio-group/responsive-icon-radio-group.js +21 -0
  210. package/dist/esm/responsive-icon-radio-group/responsive-icon-radio-group.js.map +1 -0
  211. package/dist/esm/responsive-length.js +43 -0
  212. package/dist/esm/responsive-length.js.map +1 -0
  213. package/dist/esm/responsive-number/index.js +2 -0
  214. package/dist/esm/responsive-number/index.js.map +1 -0
  215. package/dist/esm/responsive-number/responsive-number.js +16 -0
  216. package/dist/esm/responsive-number/responsive-number.js.map +1 -0
  217. package/dist/esm/responsive-opacity/index.js +2 -0
  218. package/dist/esm/responsive-opacity/index.js.map +1 -0
  219. package/dist/esm/responsive-opacity/responsive-opacity.js +18 -0
  220. package/dist/esm/responsive-opacity/responsive-opacity.js.map +1 -0
  221. package/dist/esm/responsive-select/index.js +2 -0
  222. package/dist/esm/responsive-select/index.js.map +1 -0
  223. package/dist/esm/responsive-select/responsive-select.js +21 -0
  224. package/dist/esm/responsive-select/responsive-select.js.map +1 -0
  225. package/dist/esm/shadows.js +100 -0
  226. package/dist/esm/shadows.js.map +1 -0
  227. package/dist/esm/social-links/index.js +2 -0
  228. package/dist/esm/social-links/index.js.map +1 -0
  229. package/dist/esm/social-links/social-links.js +98 -0
  230. package/dist/esm/social-links/social-links.js.map +1 -0
  231. package/dist/esm/table/index.js +2 -0
  232. package/dist/esm/table/index.js.map +1 -0
  233. package/dist/esm/table/table.js +64 -0
  234. package/dist/esm/table/table.js.map +1 -0
  235. package/dist/esm/table-form-fields/index.js +2 -0
  236. package/dist/esm/table-form-fields/index.js.map +1 -0
  237. package/dist/esm/table-form-fields/table-form-fields.js +87 -0
  238. package/dist/esm/table-form-fields/table-form-fields.js.map +1 -0
  239. package/dist/esm/text-area/index.js +2 -0
  240. package/dist/esm/text-area/index.js.map +1 -0
  241. package/dist/esm/text-area/text-area.js +39 -0
  242. package/dist/esm/text-area/text-area.js.map +1 -0
  243. package/dist/esm/text-input/index.js +2 -0
  244. package/dist/esm/text-input/index.js.map +1 -0
  245. package/dist/esm/text-input/text-input.js +39 -0
  246. package/dist/esm/text-input/text-input.js.map +1 -0
  247. package/dist/esm/text-style/index.js +2 -0
  248. package/dist/esm/text-style/index.js.map +1 -0
  249. package/dist/esm/text-style/text-style.js +59 -0
  250. package/dist/esm/text-style/text-style.js.map +1 -0
  251. package/dist/esm/utils/associated-types.js +1 -0
  252. package/dist/esm/utils/associated-types.js.map +1 -0
  253. package/dist/esm/utils/utils.js +18 -0
  254. package/dist/esm/utils/utils.js.map +1 -0
  255. package/dist/esm/versioned.js +43 -0
  256. package/dist/esm/versioned.js.map +1 -0
  257. package/dist/esm/video/index.js +2 -0
  258. package/dist/esm/video/index.js.map +1 -0
  259. package/dist/esm/video/video.js +47 -0
  260. package/dist/esm/video/video.js.map +1 -0
  261. package/dist/esm/width/index.js +2 -0
  262. package/dist/esm/width/index.js.map +1 -0
  263. package/dist/esm/width/width.js +49 -0
  264. package/dist/esm/width/width.js.map +1 -0
  265. package/dist/types/backgrounds/backgrounds.d.ts +97 -97
  266. package/dist/types/border/border.d.ts +595 -765
  267. package/dist/types/border/border.d.ts.map +1 -1
  268. package/dist/types/border/index.d.ts +1 -0
  269. package/dist/types/border/index.d.ts.map +1 -1
  270. package/dist/types/border-radius/border-radius.d.ts +23 -23
  271. package/dist/types/border-radius/border-radius.d.ts.map +1 -1
  272. package/dist/types/checkbox/checkbox.d.ts +4 -4
  273. package/dist/types/data.d.ts +5 -5
  274. package/dist/types/data.d.ts.map +1 -1
  275. package/dist/types/date/date.d.ts +4 -4
  276. package/dist/types/element-id/element-id.d.ts +4 -4
  277. package/dist/types/font/font.d.ts +9 -9
  278. package/dist/types/font/font.d.ts.map +1 -1
  279. package/dist/types/gap-x/gap-x.d.ts +204 -120
  280. package/dist/types/gap-x/gap-x.d.ts.map +1 -1
  281. package/dist/types/gap-y/gap-y.d.ts +8 -8
  282. package/dist/types/grid/grid.d.ts +854 -38
  283. package/dist/types/grid/grid.d.ts.map +1 -1
  284. package/dist/types/image/image.d.ts +4 -4
  285. package/dist/types/images/images.d.ts +94 -94
  286. package/dist/types/index.d.ts +1 -1
  287. package/dist/types/index.d.ts.map +1 -1
  288. package/dist/types/link/link.d.ts +21 -21
  289. package/dist/types/link/link.d.ts.map +1 -1
  290. package/dist/types/margin/margin.d.ts +10 -10
  291. package/dist/types/margin/margin.d.ts.map +1 -1
  292. package/dist/types/navigation-links/navigation-links.d.ts +164 -164
  293. package/dist/types/number.d.ts +4 -4
  294. package/dist/types/padding/padding.d.ts +10 -10
  295. package/dist/types/padding/padding.d.ts.map +1 -1
  296. package/dist/types/prop-controllers.d.ts +2 -99
  297. package/dist/types/prop-controllers.d.ts.map +1 -1
  298. package/dist/types/responsive-color.d.ts +9 -9
  299. package/dist/types/responsive-color.d.ts.map +1 -1
  300. package/dist/types/responsive-icon-radio-group/responsive-icon-radio-group.d.ts +88 -35
  301. package/dist/types/responsive-icon-radio-group/responsive-icon-radio-group.d.ts.map +1 -1
  302. package/dist/types/responsive-length.d.ts +14 -14
  303. package/dist/types/responsive-length.d.ts.map +1 -1
  304. package/dist/types/responsive-number/responsive-number.d.ts +118 -67
  305. package/dist/types/responsive-number/responsive-number.d.ts.map +1 -1
  306. package/dist/types/responsive-opacity/responsive-opacity.d.ts +120 -69
  307. package/dist/types/responsive-opacity/responsive-opacity.d.ts.map +1 -1
  308. package/dist/types/responsive-select/responsive-select.d.ts +88 -35
  309. package/dist/types/responsive-select/responsive-select.d.ts.map +1 -1
  310. package/dist/types/shadows.d.ts +7 -7
  311. package/dist/types/shadows.d.ts.map +1 -1
  312. package/dist/types/social-links/social-links.d.ts +4 -4
  313. package/dist/types/table/table.d.ts +4 -4
  314. package/dist/types/table-form-fields/table-form-fields.d.ts +9 -9
  315. package/dist/types/text-area/text-area.d.ts +4 -4
  316. package/dist/types/text-input/text-input.d.ts +4 -4
  317. package/dist/types/text-style/text-style.d.ts +9 -9
  318. package/dist/types/text-style/text-style.d.ts.map +1 -1
  319. package/dist/types/utils/associated-types.d.ts +4 -1
  320. package/dist/types/utils/associated-types.d.ts.map +1 -1
  321. package/dist/types/versioned.d.ts +187 -122
  322. package/dist/types/versioned.d.ts.map +1 -1
  323. package/dist/types/video/video.d.ts +4 -4
  324. package/dist/types/width/width.d.ts +12 -12
  325. package/package.json +9 -7
  326. package/dist/index.cjs +0 -2489
@@ -0,0 +1,119 @@
1
+ import { z } from "zod";
2
+ import {
3
+ ControlDataTypeKey,
4
+ Types
5
+ } from "../prop-controllers";
6
+ import { P, match } from "ts-pattern";
7
+ import { imageDataV0Schema, imageDataV1Schema } from "../data";
8
+ import { linkDataSchema } from "../link";
9
+ const imagesDataV0ItemSchema = z.object({
10
+ key: z.string(),
11
+ props: z.object({
12
+ link: linkDataSchema.optional(),
13
+ file: imageDataV0Schema.optional(),
14
+ altText: z.string().optional()
15
+ })
16
+ });
17
+ const imagesDataV0Schema = z.array(imagesDataV0ItemSchema);
18
+ const imagesDataV1ItemSchema = z.object({
19
+ key: z.string(),
20
+ version: z.literal(1),
21
+ props: z.object({
22
+ link: linkDataSchema.optional(),
23
+ file: imageDataV1Schema.optional(),
24
+ altText: z.string().optional()
25
+ })
26
+ });
27
+ const imagesDataItemSchema = z.union([
28
+ imagesDataV0ItemSchema,
29
+ imagesDataV1ItemSchema
30
+ ]);
31
+ const imagesDataSchema = z.array(imagesDataItemSchema);
32
+ const imagesPropControllerDataV0Schema = z.array(imagesDataV0ItemSchema);
33
+ const imagesPropControllerDataV1Schema = imagesDataSchema;
34
+ const ImagesPropControllerDataV2Type = "prop-controllers::images::v2";
35
+ const imagesPropControllerDataV2Schema = z.object({
36
+ [ControlDataTypeKey]: z.literal(ImagesPropControllerDataV2Type),
37
+ value: imagesPropControllerDataV1Schema
38
+ });
39
+ const imagesPropControllerDataSchema = z.union([
40
+ imagesPropControllerDataV0Schema,
41
+ imagesPropControllerDataV1Schema,
42
+ imagesPropControllerDataV2Schema
43
+ ]);
44
+ function Images(options = {}) {
45
+ return { type: Types.Images, version: 2, options };
46
+ }
47
+ function getImagesPropControllerDataImagesData(data) {
48
+ return match(data).with(
49
+ { [ControlDataTypeKey]: ImagesPropControllerDataV2Type },
50
+ (v2) => v2.value
51
+ ).otherwise((v0) => v0);
52
+ }
53
+ function createImagesPropControllerDataFromImagesData(data, definition) {
54
+ return match(definition).with(
55
+ { version: 2 },
56
+ () => ({
57
+ [ControlDataTypeKey]: ImagesPropControllerDataV2Type,
58
+ value: data
59
+ })
60
+ ).otherwise(() => data);
61
+ }
62
+ function getImagesPropControllerFileIds(data) {
63
+ const value = getImagesPropControllerDataImagesData(data);
64
+ return value?.flatMap(
65
+ (item) => match(item.props.file).with(P.string, (f) => [f]).with({ type: "makeswift-file", version: 1 }, (f) => [f.id]).with({ type: "external-file", version: 1 }, () => []).with(P.nullish, () => []).otherwise(() => [])
66
+ ) ?? [];
67
+ }
68
+ function copyImagesData(data, context) {
69
+ if (data == null)
70
+ return data;
71
+ return data.map(copyImagesPanelItem);
72
+ function copyImagesPanelItem(imagesPanelItem) {
73
+ if ("version" in imagesPanelItem) {
74
+ return {
75
+ ...imagesPanelItem,
76
+ props: {
77
+ ...imagesPanelItem.props,
78
+ file: match(imagesPanelItem.props.file).with({ type: "makeswift-file", version: 1 }, (f) => ({
79
+ ...f,
80
+ id: context.replacementContext.fileIds.get(f.id) ?? f.id
81
+ })).otherwise((f) => f)
82
+ }
83
+ };
84
+ } else {
85
+ return {
86
+ ...imagesPanelItem,
87
+ props: {
88
+ ...imagesPanelItem.props,
89
+ file: match(imagesPanelItem.props.file).with(
90
+ P.string,
91
+ (f) => context.replacementContext.fileIds.get(f) ?? f
92
+ ).otherwise((f) => f)
93
+ }
94
+ };
95
+ }
96
+ }
97
+ }
98
+ function copyImagesPropControllerData(data, context) {
99
+ return match(data).with(void 0, () => void 0).with({ [ControlDataTypeKey]: ImagesPropControllerDataV2Type }, (v1) => {
100
+ const value = copyImagesData(v1.value, context);
101
+ if (value == null)
102
+ return void 0;
103
+ return {
104
+ [ControlDataTypeKey]: ImagesPropControllerDataV2Type,
105
+ value
106
+ };
107
+ }).otherwise((v0) => copyImagesData(v0, context));
108
+ }
109
+ export {
110
+ Images,
111
+ ImagesPropControllerDataV2Type,
112
+ copyImagesPropControllerData,
113
+ createImagesPropControllerDataFromImagesData,
114
+ getImagesPropControllerDataImagesData,
115
+ getImagesPropControllerFileIds,
116
+ imagesDataSchema,
117
+ imagesPropControllerDataSchema
118
+ };
119
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/images/images.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport { imageDataV0Schema, imageDataV1Schema } from '../data'\nimport { linkDataSchema } from '../link'\n\nconst imagesDataV0ItemSchema = z.object({\n key: z.string(),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV0Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV0Item = z.infer<typeof imagesDataV0ItemSchema>\n\nconst imagesDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nexport type ImagesDataV0 = z.infer<typeof imagesDataV0Schema>\n\nconst imagesDataV1ItemSchema = z.object({\n key: z.string(),\n version: z.literal(1),\n props: z.object({\n link: linkDataSchema.optional(),\n file: imageDataV1Schema.optional(),\n altText: z.string().optional(),\n }),\n})\n\nexport type ImagesDataV1Item = z.infer<typeof imagesDataV1ItemSchema>\n\nconst imagesDataItemSchema = z.union([\n imagesDataV0ItemSchema,\n imagesDataV1ItemSchema,\n])\n\nexport type ImagesDataItem = z.infer<typeof imagesDataItemSchema>\n\nexport const imagesDataSchema = z.array(imagesDataItemSchema)\n\nexport type ImagesData = z.infer<typeof imagesDataSchema>\n\nconst imagesPropControllerDataV0Schema = z.array(imagesDataV0ItemSchema)\n\nconst imagesPropControllerDataV1Schema = imagesDataSchema\n\nexport const ImagesPropControllerDataV2Type = 'prop-controllers::images::v2'\n\nconst imagesPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(ImagesPropControllerDataV2Type),\n value: imagesPropControllerDataV1Schema,\n})\n\nexport type ImagesPropControllerDataV2 = z.infer<\n typeof imagesPropControllerDataV2Schema\n>\n\nexport const imagesPropControllerDataSchema = z.union([\n imagesPropControllerDataV0Schema,\n imagesPropControllerDataV1Schema,\n imagesPropControllerDataV2Schema,\n])\n\nexport type ImagesPropControllerData = z.infer<\n typeof imagesPropControllerDataSchema\n>\n\nexport type ImagesOptions = Options<{ preset?: ImagesPropControllerData }>\n\ntype ImagesDescriptorV0<_T = ImagesDataV0> = {\n type: typeof Types.Images\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV1<_T = ImagesData> = {\n type: typeof Types.Images\n version: 1\n options: ImagesOptions\n}\n\ntype ImagesDescriptorV2<_T = ImagesPropControllerData> = {\n type: typeof Types.Images\n version: 2\n options: ImagesOptions\n}\n\nexport type ImagesDescriptor<_T = ImagesPropControllerData> =\n | ImagesDescriptorV0\n | ImagesDescriptorV1\n | ImagesDescriptorV2\n\nexport type ResolveImagesPropControllerValue<T extends ImagesDescriptor> =\n T extends ImagesDescriptor ? ImagesData | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Images(options: ImagesOptions = {}): ImagesDescriptorV2 {\n return { type: Types.Images, version: 2, options }\n}\n\nexport function getImagesPropControllerDataImagesData(\n data: ImagesPropControllerData | undefined,\n): ImagesData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ImagesPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createImagesPropControllerDataFromImagesData(\n data: ImagesData,\n definition: ImagesDescriptor,\n): ImagesPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value: data,\n } as const),\n )\n .otherwise(() => data)\n}\n\nexport function getImagesPropControllerFileIds(\n data: ImagesPropControllerData | undefined,\n): string[] {\n const value = getImagesPropControllerDataImagesData(data)\n\n return (\n value?.flatMap((item) =>\n match(item.props.file)\n .with(P.string, (f) => [f])\n .with({ type: 'makeswift-file', version: 1 }, (f) => [f.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .with(P.nullish, () => [])\n .otherwise(() => []),\n ) ?? []\n )\n}\n\nfunction copyImagesData(\n data: ImagesData | undefined,\n context: CopyContext,\n): ImagesData | undefined {\n if (data == null) return data\n\n return data.map(copyImagesPanelItem)\n\n function copyImagesPanelItem(\n imagesPanelItem: ImagesDataItem,\n ): ImagesDataItem {\n if ('version' in imagesPanelItem) {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with({ type: 'makeswift-file', version: 1 }, (f) => ({\n ...f,\n id: context.replacementContext.fileIds.get(f.id) ?? f.id,\n }))\n .otherwise((f) => f),\n },\n }\n } else {\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match(imagesPanelItem.props.file)\n .with(\n P.string,\n (f) => context.replacementContext.fileIds.get(f) ?? f,\n )\n .otherwise((f) => f),\n },\n }\n }\n }\n}\n\nexport function copyImagesPropControllerData(\n data: ImagesPropControllerData | undefined,\n context: CopyContext,\n): ImagesPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with({ [ControlDataTypeKey]: ImagesPropControllerDataV2Type }, (v1) => {\n const value = copyImagesData(v1.value, context)\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: ImagesPropControllerDataV2Type,\n value,\n } as const\n })\n .otherwise((v0) => copyImagesData(v0, context))\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./images";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/images/index.ts"],"sourcesContent":["export * from './images'\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,336 @@
1
+ export * from "./data";
2
+ export * from "./versioned";
3
+ export * from "./prop-controllers";
4
+ export * from "./gap-x";
5
+ export * from "./responsive-icon-radio-group";
6
+ export * from "./responsive-number";
7
+ export * from "./responsive-opacity";
8
+ export * from "./responsive-select";
9
+ export * from "./backgrounds";
10
+ import {
11
+ Border,
12
+ BorderPropControllerFormat,
13
+ borderPropControllerDataSchema,
14
+ getBorderPropControllerDataResponsiveBorderData,
15
+ getBorderPropControllerDataSwatchIds,
16
+ createBorderPropControllerDataFromResponsiveBorderData,
17
+ copyBorderPropControllerData
18
+ } from "./border";
19
+ import {
20
+ BorderRadius,
21
+ BorderRadiusPropControllerFormat,
22
+ borderRadiusPropControllerDataSchema,
23
+ getBorderRadiusPropControllerDataResponsiveBorderRadiusData,
24
+ createBorderRadiusPropControllerDataFromResponsiveBorderRadiusData
25
+ } from "./border-radius";
26
+ import {
27
+ Checkbox,
28
+ checkboxPropControllerDataSchema,
29
+ getCheckboxPropControllerDataBoolean,
30
+ createCheckboxPropControllerDataFromBoolean
31
+ } from "./checkbox";
32
+ import {
33
+ Date,
34
+ datePropControllerDataSchema,
35
+ getDatePropControllerDataString,
36
+ createDatePropControllerDataFromString
37
+ } from "./date";
38
+ import {
39
+ ElementID,
40
+ elementIDPropControllerDataSchema,
41
+ getElementIDPropControllerDataElementID,
42
+ createElementIDPropControllerDataFromElementID,
43
+ copyElementIDPropControllerData
44
+ } from "./element-id";
45
+ import {
46
+ Font,
47
+ fontPropControllerDataSchema,
48
+ getFontPropControllerDataResponsiveFontData,
49
+ createFontPropControllerDataFromResponsiveFontData
50
+ } from "./font";
51
+ import {
52
+ GapY,
53
+ gapYPropControllerDataSchema,
54
+ getGapYPropControllerDataResponsiveGapData,
55
+ createGapYPropControllerDataFromResponsiveGapData
56
+ } from "./gap-y";
57
+ import {
58
+ Grid,
59
+ gridPropControllerDataSchema,
60
+ getGridPropControllerDataGridData,
61
+ createGridPropControllerDataFromGridData,
62
+ mergeGridPropControllerTranslatedData,
63
+ getGridPropControllerElementChildren,
64
+ copyGridPropControllerData,
65
+ getGridPropControllerGetElementPath
66
+ } from "./grid";
67
+ import {
68
+ Image,
69
+ imagePropControllerDataSchema,
70
+ getImagePropControllerDataImageData,
71
+ createImagePropControllerDataFromImageData,
72
+ getImagePropControllerFileIds,
73
+ copyImagePropControllerData
74
+ } from "./image";
75
+ import {
76
+ Images,
77
+ imagesPropControllerDataSchema,
78
+ getImagesPropControllerDataImagesData,
79
+ createImagesPropControllerDataFromImagesData,
80
+ getImagesPropControllerFileIds,
81
+ copyImagesPropControllerData
82
+ } from "./images";
83
+ import {
84
+ Link,
85
+ linkDataSchema,
86
+ linkPropControllerDataSchema,
87
+ getLinkPropControllerDataLinkData,
88
+ createLinkPropControllerDataFromLinkData,
89
+ getLinkPropControllerPageIds,
90
+ copyLinkPropControllerData
91
+ } from "./link";
92
+ import {
93
+ Margin,
94
+ MarginPropControllerFormat,
95
+ marginPropControllerDataSchema,
96
+ getMarginPropControllerDataResponsiveMarginData,
97
+ createMarginPropControllerDataFromResponsiveMarginData
98
+ } from "./margin";
99
+ import {
100
+ NavigationLinks,
101
+ navigationLinksPropControllerDataSchema,
102
+ getNavigationLinksPropControllerDataNavigationLinksData,
103
+ createNavigationLinksPropControllerDataFromNavigationLinksData,
104
+ getNavigationLinksPropControllerPageIds,
105
+ getNavigationLinksPropControllerSwatchIds,
106
+ copyNavigationLinksPropControllerData
107
+ } from "./navigation-links";
108
+ import {
109
+ Number,
110
+ createNumberPropControllerDataFromNumber,
111
+ getNumberPropControllerDataNumber,
112
+ numberPropControllerDataSchema
113
+ } from "./number";
114
+ import {
115
+ Padding,
116
+ PaddingPropControllerFormat,
117
+ paddingPropControllerDataSchema,
118
+ getPaddingPropControllerDataResponsivePaddingData,
119
+ createPaddingPropControllerDataFromResponsivePaddingData
120
+ } from "./padding";
121
+ import {
122
+ ResponsiveColor,
123
+ copyResponsiveColorPropControllerData,
124
+ createResponsiveColorPropControllerDataFromResponsiveColorData,
125
+ getResponsiveColorDataSwatchIds,
126
+ getResponsiveColorPropControllerDataResponsiveColorData,
127
+ getResponsiveColorPropControllerDataSawtchIds,
128
+ responsiveColorPropControllerDataSchema
129
+ } from "./responsive-color";
130
+ import {
131
+ ResponsiveLength,
132
+ ResponsiveLengthPropControllerDataV1Type,
133
+ createResponsiveLengthPropControllerDataFromResponsiveLengthData,
134
+ getResponsiveLengthPropControllerDataResponsiveLengthData,
135
+ responsiveLengthPropControllerDataSchema
136
+ } from "./responsive-length";
137
+ import {
138
+ SocialLinks,
139
+ socialLinksPropControllerDataSchema,
140
+ getSocialLinkTypes,
141
+ getSocialLinksPropControllerDataSocialLinksData,
142
+ createSocialLinksPropControllerDataFromSocialLinksData
143
+ } from "./social-links";
144
+ import {
145
+ Shadows,
146
+ copyShadowsPropControllerData,
147
+ createShadowsPropControllerDataFromResponsiveShadowsData,
148
+ getShadowsPropControllerDataResponsiveShadowsData,
149
+ getShadowsPropControllerDataSwatchIds,
150
+ shadowsPropControllerDataSchema
151
+ } from "./shadows";
152
+ import {
153
+ Table,
154
+ tablePropControllerDataSchema,
155
+ getTablePropControllerDataTableId,
156
+ createTablePropControllerDataFromTableId,
157
+ copyTablePropControllerData,
158
+ getTablePropControllerDataTableIds
159
+ } from "./table";
160
+ import {
161
+ TableFormFields,
162
+ tableFormFieldsPropControllerDataSchema,
163
+ getTableFormFieldsPropControllerDataTableFormFieldsData,
164
+ createTableFormFieldsPropControllerDataFromTableFormFieldsData,
165
+ copyTableFormFieldsPropControllerData
166
+ } from "./table-form-fields";
167
+ import {
168
+ TextArea,
169
+ textAreaPropControllerDataSchema,
170
+ getTextAreaPropControllerDataString,
171
+ createTextAreaPropControllerDataFromString
172
+ } from "./text-area";
173
+ import {
174
+ TextInput,
175
+ textInputPropControllerDataSchema,
176
+ getTextInputPropControllerDataString,
177
+ createTextInputPropControllerDataFromString
178
+ } from "./text-input";
179
+ import {
180
+ TextStyle,
181
+ textStylePropControllerDataSchema,
182
+ getTextStylePropControllerDataResponsiveTextStyleData,
183
+ createTextStylePropControllerDataFromResponsiveTextStyleData
184
+ } from "./text-style";
185
+ import {
186
+ Width,
187
+ WidthPropControllerFormat,
188
+ widthPropControllerDataSchema,
189
+ getWidthPropControllerDataResponsiveLengthData,
190
+ createWidthPropControllerDataFromResponsiveLengthData
191
+ } from "./width";
192
+ import {
193
+ Video,
194
+ videoPropControllerDataSchema,
195
+ getVideoPropControllerDataVideoData,
196
+ createVideoPropControllerDataFromVideoData
197
+ } from "./video";
198
+ export {
199
+ Border,
200
+ BorderPropControllerFormat,
201
+ BorderRadius,
202
+ BorderRadiusPropControllerFormat,
203
+ Checkbox,
204
+ Date,
205
+ ElementID,
206
+ Font,
207
+ GapY,
208
+ Grid,
209
+ Image,
210
+ Images,
211
+ Link,
212
+ Margin,
213
+ MarginPropControllerFormat,
214
+ NavigationLinks,
215
+ Number,
216
+ Padding,
217
+ PaddingPropControllerFormat,
218
+ ResponsiveColor,
219
+ ResponsiveLength,
220
+ ResponsiveLengthPropControllerDataV1Type,
221
+ Shadows,
222
+ SocialLinks,
223
+ Table,
224
+ TableFormFields,
225
+ TextArea,
226
+ TextInput,
227
+ TextStyle,
228
+ Video,
229
+ Width,
230
+ WidthPropControllerFormat,
231
+ borderPropControllerDataSchema,
232
+ borderRadiusPropControllerDataSchema,
233
+ checkboxPropControllerDataSchema,
234
+ copyBorderPropControllerData,
235
+ copyElementIDPropControllerData,
236
+ copyGridPropControllerData,
237
+ copyImagePropControllerData,
238
+ copyImagesPropControllerData,
239
+ copyLinkPropControllerData,
240
+ copyNavigationLinksPropControllerData,
241
+ copyResponsiveColorPropControllerData,
242
+ copyShadowsPropControllerData,
243
+ copyTableFormFieldsPropControllerData,
244
+ copyTablePropControllerData,
245
+ createBorderPropControllerDataFromResponsiveBorderData,
246
+ createBorderRadiusPropControllerDataFromResponsiveBorderRadiusData,
247
+ createCheckboxPropControllerDataFromBoolean,
248
+ createDatePropControllerDataFromString,
249
+ createElementIDPropControllerDataFromElementID,
250
+ createFontPropControllerDataFromResponsiveFontData,
251
+ createGapYPropControllerDataFromResponsiveGapData,
252
+ createGridPropControllerDataFromGridData,
253
+ createImagePropControllerDataFromImageData,
254
+ createImagesPropControllerDataFromImagesData,
255
+ createLinkPropControllerDataFromLinkData,
256
+ createMarginPropControllerDataFromResponsiveMarginData,
257
+ createNavigationLinksPropControllerDataFromNavigationLinksData,
258
+ createNumberPropControllerDataFromNumber,
259
+ createPaddingPropControllerDataFromResponsivePaddingData,
260
+ createResponsiveColorPropControllerDataFromResponsiveColorData,
261
+ createResponsiveLengthPropControllerDataFromResponsiveLengthData,
262
+ createShadowsPropControllerDataFromResponsiveShadowsData,
263
+ createSocialLinksPropControllerDataFromSocialLinksData,
264
+ createTableFormFieldsPropControllerDataFromTableFormFieldsData,
265
+ createTablePropControllerDataFromTableId,
266
+ createTextAreaPropControllerDataFromString,
267
+ createTextInputPropControllerDataFromString,
268
+ createTextStylePropControllerDataFromResponsiveTextStyleData,
269
+ createVideoPropControllerDataFromVideoData,
270
+ createWidthPropControllerDataFromResponsiveLengthData,
271
+ datePropControllerDataSchema,
272
+ elementIDPropControllerDataSchema,
273
+ fontPropControllerDataSchema,
274
+ gapYPropControllerDataSchema,
275
+ getBorderPropControllerDataResponsiveBorderData,
276
+ getBorderPropControllerDataSwatchIds,
277
+ getBorderRadiusPropControllerDataResponsiveBorderRadiusData,
278
+ getCheckboxPropControllerDataBoolean,
279
+ getDatePropControllerDataString,
280
+ getElementIDPropControllerDataElementID,
281
+ getFontPropControllerDataResponsiveFontData,
282
+ getGapYPropControllerDataResponsiveGapData,
283
+ getGridPropControllerDataGridData,
284
+ getGridPropControllerElementChildren,
285
+ getGridPropControllerGetElementPath,
286
+ getImagePropControllerDataImageData,
287
+ getImagePropControllerFileIds,
288
+ getImagesPropControllerDataImagesData,
289
+ getImagesPropControllerFileIds,
290
+ getLinkPropControllerDataLinkData,
291
+ getLinkPropControllerPageIds,
292
+ getMarginPropControllerDataResponsiveMarginData,
293
+ getNavigationLinksPropControllerDataNavigationLinksData,
294
+ getNavigationLinksPropControllerPageIds,
295
+ getNavigationLinksPropControllerSwatchIds,
296
+ getNumberPropControllerDataNumber,
297
+ getPaddingPropControllerDataResponsivePaddingData,
298
+ getResponsiveColorDataSwatchIds,
299
+ getResponsiveColorPropControllerDataResponsiveColorData,
300
+ getResponsiveColorPropControllerDataSawtchIds,
301
+ getResponsiveLengthPropControllerDataResponsiveLengthData,
302
+ getShadowsPropControllerDataResponsiveShadowsData,
303
+ getShadowsPropControllerDataSwatchIds,
304
+ getSocialLinkTypes,
305
+ getSocialLinksPropControllerDataSocialLinksData,
306
+ getTableFormFieldsPropControllerDataTableFormFieldsData,
307
+ getTablePropControllerDataTableId,
308
+ getTablePropControllerDataTableIds,
309
+ getTextAreaPropControllerDataString,
310
+ getTextInputPropControllerDataString,
311
+ getTextStylePropControllerDataResponsiveTextStyleData,
312
+ getVideoPropControllerDataVideoData,
313
+ getWidthPropControllerDataResponsiveLengthData,
314
+ gridPropControllerDataSchema,
315
+ imagePropControllerDataSchema,
316
+ imagesPropControllerDataSchema,
317
+ linkDataSchema,
318
+ linkPropControllerDataSchema,
319
+ marginPropControllerDataSchema,
320
+ mergeGridPropControllerTranslatedData,
321
+ navigationLinksPropControllerDataSchema,
322
+ numberPropControllerDataSchema,
323
+ paddingPropControllerDataSchema,
324
+ responsiveColorPropControllerDataSchema,
325
+ responsiveLengthPropControllerDataSchema,
326
+ shadowsPropControllerDataSchema,
327
+ socialLinksPropControllerDataSchema,
328
+ tableFormFieldsPropControllerDataSchema,
329
+ tablePropControllerDataSchema,
330
+ textAreaPropControllerDataSchema,
331
+ textInputPropControllerDataSchema,
332
+ textStylePropControllerDataSchema,
333
+ videoPropControllerDataSchema,
334
+ widthPropControllerDataSchema
335
+ };
336
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './data'\nexport * from './versioned'\nexport * from './prop-controllers'\nexport * from './gap-x'\nexport * from './responsive-icon-radio-group'\nexport * from './responsive-number'\nexport * from './responsive-opacity'\nexport * from './responsive-select'\nexport * from './backgrounds'\n\nexport {\n Border,\n BorderPropControllerFormat,\n borderPropControllerDataSchema,\n getBorderPropControllerDataResponsiveBorderData,\n getBorderPropControllerDataSwatchIds,\n createBorderPropControllerDataFromResponsiveBorderData,\n copyBorderPropControllerData,\n} from './border'\nexport type {\n ResolveBorderPropControllerValue,\n ResponsiveBorderData,\n BorderData,\n BorderSideData,\n BorderDescriptor,\n BorderPropControllerData,\n} from './border'\nexport {\n BorderRadius,\n BorderRadiusPropControllerFormat,\n borderRadiusPropControllerDataSchema,\n getBorderRadiusPropControllerDataResponsiveBorderRadiusData,\n createBorderRadiusPropControllerDataFromResponsiveBorderRadiusData,\n} from './border-radius'\nexport type {\n BorderRadiusPropControllerData,\n ResponsiveBorderRadiusData,\n ResolveBorderRadiusPropControllerValue,\n BorderRadiusDescriptor,\n} from './border-radius'\nexport {\n Checkbox,\n checkboxPropControllerDataSchema,\n getCheckboxPropControllerDataBoolean,\n createCheckboxPropControllerDataFromBoolean,\n} from './checkbox'\nexport type {\n CheckboxDescriptor,\n CheckboxOptions,\n CheckboxPropControllerData,\n ResolveCheckboxPropControllerValue,\n} from './checkbox'\nexport {\n Date,\n datePropControllerDataSchema,\n getDatePropControllerDataString,\n createDatePropControllerDataFromString,\n} from './date'\nexport type {\n DateDescriptor,\n DateOptions,\n DatePropControllerData,\n ResolveDatePropControllerValue,\n} from './date'\nexport {\n ElementID,\n elementIDPropControllerDataSchema,\n getElementIDPropControllerDataElementID,\n createElementIDPropControllerDataFromElementID,\n copyElementIDPropControllerData,\n} from './element-id'\nexport type {\n ElementIDDescriptor,\n ElementIDOptions,\n ElementIDPropControllerData,\n ResolveElementIDPropControllerValue,\n} from './element-id'\nexport {\n Font,\n fontPropControllerDataSchema,\n getFontPropControllerDataResponsiveFontData,\n createFontPropControllerDataFromResponsiveFontData,\n} from './font'\nexport type {\n ResolveFontPropControllerValue,\n ResponsiveFontData,\n FontDescriptor,\n FontPropControllerData,\n} from './font'\nexport {\n GapY,\n gapYPropControllerDataSchema,\n getGapYPropControllerDataResponsiveGapData,\n createGapYPropControllerDataFromResponsiveGapData,\n} from './gap-y'\nexport type {\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n GapYPropControllerData,\n} from './gap-y'\nexport {\n Grid,\n gridPropControllerDataSchema,\n getGridPropControllerDataGridData,\n createGridPropControllerDataFromGridData,\n mergeGridPropControllerTranslatedData,\n getGridPropControllerElementChildren,\n copyGridPropControllerData,\n getGridPropControllerGetElementPath,\n} from './grid'\nexport type {\n GridData,\n GridDescriptor,\n GridOptions,\n GridPropControllerData,\n ResolveGridPropControllerValue,\n} from './grid'\nexport {\n Image,\n imagePropControllerDataSchema,\n getImagePropControllerDataImageData,\n createImagePropControllerDataFromImageData,\n getImagePropControllerFileIds,\n copyImagePropControllerData,\n} from './image'\nexport type {\n ImageDescriptor,\n ImageOptions,\n ImagePropControllerData,\n ResolveImagePropControllerValue,\n} from './image'\nexport {\n Images,\n imagesPropControllerDataSchema,\n getImagesPropControllerDataImagesData,\n createImagesPropControllerDataFromImagesData,\n getImagesPropControllerFileIds,\n copyImagesPropControllerData,\n} from './images'\nexport type {\n ImagesData,\n ImagesDataItem,\n ImagesDescriptor,\n ImagesOptions,\n ImagesPropControllerData,\n ResolveImagesPropControllerValue,\n} from './images'\nexport {\n Link,\n linkDataSchema,\n linkPropControllerDataSchema,\n getLinkPropControllerDataLinkData,\n createLinkPropControllerDataFromLinkData,\n getLinkPropControllerPageIds,\n copyLinkPropControllerData,\n} from './link'\nexport type {\n LinkData,\n LinkDescriptor,\n LinkPropControllerData,\n ResolveLinkPropControllerValue,\n} from './link'\nexport {\n Margin,\n MarginPropControllerFormat,\n marginPropControllerDataSchema,\n getMarginPropControllerDataResponsiveMarginData,\n createMarginPropControllerDataFromResponsiveMarginData,\n} from './margin'\nexport type {\n ResolveMarginPropControllerValue,\n ResponsiveMarginData,\n MarginSideData,\n MarginDescriptor,\n MarginPropControllerData,\n} from './margin'\nexport {\n NavigationLinks,\n navigationLinksPropControllerDataSchema,\n getNavigationLinksPropControllerDataNavigationLinksData,\n createNavigationLinksPropControllerDataFromNavigationLinksData,\n getNavigationLinksPropControllerPageIds,\n getNavigationLinksPropControllerSwatchIds,\n copyNavigationLinksPropControllerData,\n} from './navigation-links'\nexport type {\n NavigationButtonData,\n NavigationDropdownData,\n NavigationLinksData,\n ResolveNavigationLinksPropControllerValue,\n NavigationLinksDescriptor,\n NavigationLinksPropControllerData,\n} from './navigation-links'\nexport {\n Number,\n createNumberPropControllerDataFromNumber,\n getNumberPropControllerDataNumber,\n numberPropControllerDataSchema,\n} from './number'\nexport type {\n NumberDescriptor,\n NumberOptions,\n NumberPropControllerData,\n ResolveNumberPropControllerValue,\n} from './number'\nexport {\n Padding,\n PaddingPropControllerFormat,\n paddingPropControllerDataSchema,\n getPaddingPropControllerDataResponsivePaddingData,\n createPaddingPropControllerDataFromResponsivePaddingData,\n} from './padding'\nexport type {\n ResolvePaddingPropControllerValue,\n ResponsivePaddingData,\n PaddingSideData,\n PaddingDescriptor,\n PaddingPropControllerData,\n} from './padding'\nexport {\n ResponsiveColor,\n copyResponsiveColorPropControllerData,\n createResponsiveColorPropControllerDataFromResponsiveColorData,\n getResponsiveColorDataSwatchIds,\n getResponsiveColorPropControllerDataResponsiveColorData,\n getResponsiveColorPropControllerDataSawtchIds,\n responsiveColorPropControllerDataSchema,\n} from './responsive-color'\nexport type {\n ResponsiveColorData,\n ResponsiveColorDescriptor,\n ResponsiveColorOptions,\n ResponsiveColorPropControllerData,\n} from './responsive-color'\nexport {\n ResponsiveLength,\n ResponsiveLengthPropControllerDataV1Type,\n createResponsiveLengthPropControllerDataFromResponsiveLengthData,\n getResponsiveLengthPropControllerDataResponsiveLengthData,\n responsiveLengthPropControllerDataSchema,\n} from './responsive-length'\nexport type {\n ResolveResponsiveLengthPropControllerValue,\n ResponsiveLengthData,\n ResponsiveLengthDescriptor,\n ResponsiveLengthOptions,\n ResponsiveLengthPropControllerData,\n} from './responsive-length'\nexport {\n SocialLinks,\n socialLinksPropControllerDataSchema,\n getSocialLinkTypes,\n getSocialLinksPropControllerDataSocialLinksData,\n createSocialLinksPropControllerDataFromSocialLinksData,\n} from './social-links'\nexport type {\n SocialLinksData,\n ResolveSocialLinksPropControllerValue,\n SocialLinksDescriptor,\n SocialLinksPropControllerData,\n} from './social-links'\nexport {\n Shadows,\n copyShadowsPropControllerData,\n createShadowsPropControllerDataFromResponsiveShadowsData,\n getShadowsPropControllerDataResponsiveShadowsData,\n getShadowsPropControllerDataSwatchIds,\n shadowsPropControllerDataSchema,\n} from './shadows'\nexport type {\n ResolveShadowsPropControllerValue,\n ShadowData,\n ShadowsData,\n ShadowsDescriptor,\n ShadowsPropControllerData,\n} from './shadows'\nexport {\n Table,\n tablePropControllerDataSchema,\n getTablePropControllerDataTableId,\n createTablePropControllerDataFromTableId,\n copyTablePropControllerData,\n getTablePropControllerDataTableIds,\n} from './table'\nexport type {\n TableDescriptor,\n TableOptions,\n TablePropControllerData,\n ResolveTablePropControllerValue,\n} from './table'\nexport {\n TableFormFields,\n tableFormFieldsPropControllerDataSchema,\n getTableFormFieldsPropControllerDataTableFormFieldsData,\n createTableFormFieldsPropControllerDataFromTableFormFieldsData,\n copyTableFormFieldsPropControllerData,\n} from './table-form-fields'\nexport type {\n TableFormFieldsData,\n TableFormFieldsDescriptor,\n TableFormFieldsOptions,\n TableFormFieldsPropControllerData,\n ResolveTableFormFieldsPropControllerValue,\n} from './table-form-fields'\nexport {\n TextArea,\n textAreaPropControllerDataSchema,\n getTextAreaPropControllerDataString,\n createTextAreaPropControllerDataFromString,\n} from './text-area'\nexport type {\n TextAreaDescriptor,\n TextAreaOptions,\n TextAreaPropControllerData,\n ResolveTextAreaPropControllerValue,\n} from './text-area'\nexport {\n TextInput,\n textInputPropControllerDataSchema,\n getTextInputPropControllerDataString,\n createTextInputPropControllerDataFromString,\n} from './text-input'\nexport type {\n TextInputDescriptor,\n TextInputOptions,\n TextInputPropControllerData,\n ResolveTextInputPropControllerValue,\n} from './text-input'\nexport {\n TextStyle,\n textStylePropControllerDataSchema,\n getTextStylePropControllerDataResponsiveTextStyleData,\n createTextStylePropControllerDataFromResponsiveTextStyleData,\n} from './text-style'\nexport type {\n TextStyleData,\n ResolveTextStylePropControllerValue,\n ResponsiveTextStyleData,\n TextStyleDescriptor,\n TextStylePropControllerData,\n} from './text-style'\nexport {\n Width,\n WidthPropControllerFormat,\n widthPropControllerDataSchema,\n getWidthPropControllerDataResponsiveLengthData,\n createWidthPropControllerDataFromResponsiveLengthData,\n} from './width'\nexport type {\n ResolveWidthPropControllerValue,\n WidthDescriptor,\n WidthPropControllerData,\n} from './width'\nexport {\n Video,\n videoPropControllerDataSchema,\n getVideoPropControllerDataVideoData,\n createVideoPropControllerDataFromVideoData,\n} from './video'\nexport type {\n ResolveVideoPropControllerValue,\n VideoData,\n VideoDescriptor,\n VideoPropControllerData,\n} from './video'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./link";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/link/index.ts"],"sourcesContent":["export * from './link'\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,108 @@
1
+ import { match } from "ts-pattern";
2
+ import {
3
+ ControlDataTypeKey,
4
+ Types
5
+ } from "../prop-controllers";
6
+ import { LinkDefinition } from "@makeswift/controls";
7
+ import { z } from "zod";
8
+ const linkDataSchema = LinkDefinition.schema.link;
9
+ const linkPropControllerDataV0Schema = linkDataSchema;
10
+ const LinkPropControllerDataV1Type = "prop-controllers::link::v1";
11
+ const linkPropControllerDataV1Schema = z.object({
12
+ [ControlDataTypeKey]: z.literal(LinkPropControllerDataV1Type),
13
+ value: linkDataSchema
14
+ });
15
+ const linkPropControllerDataSchema = z.union([
16
+ linkPropControllerDataV0Schema,
17
+ linkPropControllerDataV1Schema
18
+ ]);
19
+ function Link(options = {}) {
20
+ return { type: Types.Link, version: 1, options };
21
+ }
22
+ function getLinkPropControllerDataLinkData(data) {
23
+ return match(data).with(
24
+ { [ControlDataTypeKey]: LinkPropControllerDataV1Type },
25
+ (v1) => v1.value
26
+ ).otherwise((v0) => v0);
27
+ }
28
+ function createLinkPropControllerDataFromLinkData(value, definition) {
29
+ return match(definition).with(
30
+ { version: 1 },
31
+ () => ({
32
+ [ControlDataTypeKey]: LinkPropControllerDataV1Type,
33
+ value
34
+ })
35
+ ).otherwise(() => value);
36
+ }
37
+ function getLinkPropControllerPageIds(linkData) {
38
+ if (linkData == null)
39
+ return [];
40
+ const link = getLinkPropControllerDataLinkData(linkData);
41
+ switch (link.type) {
42
+ case "OPEN_PAGE":
43
+ return link.payload.pageId == null ? [] : [link.payload.pageId];
44
+ default:
45
+ return [];
46
+ }
47
+ }
48
+ function copyLinkData(data, context) {
49
+ let value = data;
50
+ switch (value?.type) {
51
+ case "OPEN_PAGE":
52
+ {
53
+ const pageId = value.payload.pageId;
54
+ if (pageId == null)
55
+ return value;
56
+ value = {
57
+ ...value,
58
+ payload: {
59
+ ...value.payload,
60
+ pageId: context.replacementContext.pageIds.get(pageId) ?? pageId
61
+ }
62
+ };
63
+ }
64
+ break;
65
+ case "SCROLL_TO_ELEMENT": {
66
+ const elementIdConfig = value.payload.elementIdConfig;
67
+ if (elementIdConfig == null)
68
+ return value;
69
+ value = {
70
+ ...value,
71
+ payload: {
72
+ ...value.payload,
73
+ elementIdConfig: {
74
+ ...elementIdConfig,
75
+ elementKey: context.replacementContext.elementKeys.get(
76
+ elementIdConfig.elementKey
77
+ ) ?? elementIdConfig.elementKey
78
+ }
79
+ }
80
+ };
81
+ break;
82
+ }
83
+ }
84
+ return value;
85
+ }
86
+ function copyLinkPropControllerData(data, context) {
87
+ if (data == null)
88
+ return data;
89
+ const value = copyLinkData(getLinkPropControllerDataLinkData(data), context);
90
+ if (value == null)
91
+ return value;
92
+ return match(data).with({ [ControlDataTypeKey]: LinkPropControllerDataV1Type }, (v1) => ({
93
+ ...v1,
94
+ value
95
+ })).otherwise((_) => value);
96
+ }
97
+ export {
98
+ Link,
99
+ LinkPropControllerDataV1Type,
100
+ copyLinkData,
101
+ copyLinkPropControllerData,
102
+ createLinkPropControllerDataFromLinkData,
103
+ getLinkPropControllerDataLinkData,
104
+ getLinkPropControllerPageIds,
105
+ linkDataSchema,
106
+ linkPropControllerDataSchema
107
+ };
108
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/link/link.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\n\nimport { LinkDefinition } from '@makeswift/controls'\n\nimport { z } from 'zod'\n\nexport const linkDataSchema = LinkDefinition.schema.link\n\nexport type LinkData = z.infer<typeof linkDataSchema>\n\nconst linkPropControllerDataV0Schema = linkDataSchema\n\nexport type LinkPropControllerDataV0 = z.infer<\n typeof linkPropControllerDataV0Schema\n>\n\nexport const LinkPropControllerDataV1Type = 'prop-controllers::link::v1'\nconst linkPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(LinkPropControllerDataV1Type),\n value: linkDataSchema,\n})\n\nexport type LinkPropControllerDataV1 = z.infer<\n typeof linkPropControllerDataV1Schema\n>\n\nexport const linkPropControllerDataSchema = z.union([\n linkPropControllerDataV0Schema,\n linkPropControllerDataV1Schema,\n])\n\nexport type LinkPropControllerData = z.infer<\n typeof linkPropControllerDataSchema\n>\n\ntype LinkOptions = Options<{\n preset?: LinkPropControllerData\n label?: string\n defaultValue?: LinkData\n options?: { value: LinkData['type']; label: string }[]\n hidden?: boolean\n}>\n\ntype LinkDescriptorV0<\n _T = LinkPropControllerDataV0,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n options: U\n}\n\ntype LinkDescriptorV1<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = {\n type: typeof Types.Link\n version: 1\n options: U\n}\n\nexport type LinkDescriptor<\n _T = LinkPropControllerData,\n U extends LinkOptions = LinkOptions,\n> = LinkDescriptorV0<_T, U> | LinkDescriptorV1<_T, U>\n\nexport type ResolveLinkPropControllerValue<T extends LinkDescriptor> =\n T extends LinkDescriptor ? LinkData | undefined : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Link(options: LinkOptions = {}): LinkDescriptor {\n return { type: Types.Link, version: 1, options }\n}\n\nexport function getLinkPropControllerDataLinkData(\n data: LinkPropControllerData,\n): LinkData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: LinkPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createLinkPropControllerDataFromLinkData(\n value: LinkData,\n definition: LinkDescriptor,\n): LinkPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: LinkPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nexport function getLinkPropControllerPageIds(\n linkData: LinkPropControllerData | null | undefined,\n): string[] {\n if (linkData == null) return []\n\n const link = getLinkPropControllerDataLinkData(linkData)\n\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n}\n\nexport function copyLinkData(\n data: LinkData | undefined,\n context: CopyContext,\n): LinkData | undefined {\n let value = data\n\n switch (value?.type) {\n case 'OPEN_PAGE':\n {\n const pageId = value.payload.pageId\n\n if (pageId == null) return value\n\n value = {\n ...value,\n payload: {\n ...value.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? pageId,\n },\n }\n }\n break\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = value.payload.elementIdConfig\n\n if (elementIdConfig == null) return value\n\n value = {\n ...value,\n payload: {\n ...value.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(\n elementIdConfig.elementKey,\n ) ?? elementIdConfig.elementKey,\n },\n },\n }\n break\n }\n }\n\n return value\n}\n\nexport function copyLinkPropControllerData(\n data: LinkPropControllerData | undefined,\n context: CopyContext,\n): LinkPropControllerData | undefined {\n if (data == null) return data\n\n const value = copyLinkData(getLinkPropControllerDataLinkData(data), context)\n\n if (value == null) return value\n\n return match(data)\n .with({ [ControlDataTypeKey]: LinkPropControllerDataV1Type }, (v1) => ({\n ...v1,\n value,\n }))\n .otherwise((_) => value)\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EAGA;AAAA,OACK;AAEP,SAAS,sBAAsB;AAE/B,SAAS,SAAS;AAEX,MAAM,iBAAiB,eAAe,OAAO;AAIpD,MAAM,iCAAiC;AAMhC,MAAM,+BAA+B;AAC5C,MAAM,iCAAiC,EAAE,OAAO;AAAA,EAC9C,CAAC,kBAAkB,GAAG,EAAE,QAAQ,4BAA4B;AAAA,EAC5D,OAAO;AACT,CAAC;AAMM,MAAM,+BAA+B,EAAE,MAAM;AAAA,EAClD;AAAA,EACA;AACF,CAAC;AA2CM,SAAS,KAAK,UAAuB,CAAC,GAAmB;AAC9D,SAAO,EAAE,MAAM,MAAM,MAAM,SAAS,GAAG,QAAQ;AACjD;AAEO,SAAS,kCACd,MACU;AACV,SAAO,MAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,6BAA6B;AAAA,IACrD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yCACd,OACA,YACwB;AACxB,SAAO,MAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEO,SAAS,6BACd,UACU;AACV,MAAI,YAAY;AAAM,WAAO,CAAC;AAE9B,QAAM,OAAO,kCAAkC,QAAQ;AAEvD,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK;AACH,aAAO,KAAK,QAAQ,UAAU,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM;AAAA,IAEhE;AACE,aAAO,CAAC;AAAA,EACZ;AACF;AAEO,SAAS,aACd,MACA,SACsB;AACtB,MAAI,QAAQ;AAEZ,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH;AACE,cAAM,SAAS,MAAM,QAAQ;AAE7B,YAAI,UAAU;AAAM,iBAAO;AAE3B,gBAAQ;AAAA,UACN,GAAG;AAAA,UACH,SAAS;AAAA,YACP,GAAG,MAAM;AAAA,YACT,QAAQ,QAAQ,mBAAmB,QAAQ,IAAI,MAAM,KAAK;AAAA,UAC5D;AAAA,QACF;AAAA,MACF;AACA;AAAA,IAEF,KAAK,qBAAqB;AACxB,YAAM,kBAAkB,MAAM,QAAQ;AAEtC,UAAI,mBAAmB;AAAM,eAAO;AAEpC,cAAQ;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACP,GAAG,MAAM;AAAA,UACT,iBAAiB;AAAA,YACf,GAAG;AAAA,YACH,YACE,QAAQ,mBAAmB,YAAY;AAAA,cACrC,gBAAgB;AAAA,YAClB,KAAK,gBAAgB;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,2BACd,MACA,SACoC;AACpC,MAAI,QAAQ;AAAM,WAAO;AAEzB,QAAM,QAAQ,aAAa,kCAAkC,IAAI,GAAG,OAAO;AAE3E,MAAI,SAAS;AAAM,WAAO;AAE1B,SAAO,MAAM,IAAI,EACd,KAAK,EAAE,CAAC,kBAAkB,GAAG,6BAA6B,GAAG,CAAC,QAAQ;AAAA,IACrE,GAAG;AAAA,IACH;AAAA,EACF,EAAE,EACD,UAAU,CAAC,MAAM,KAAK;AAC3B;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./margin";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/margin/index.ts"],"sourcesContent":["export * from './margin'\n"],"mappings":"AAAA,cAAc;","names":[]}