@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,69 @@
1
+ import { P, match } from "ts-pattern";
2
+ import {
3
+ ControlDataTypeKey,
4
+ Types,
5
+ Schema
6
+ } from "../prop-controllers";
7
+ import { z } from "zod";
8
+ const marginSideDataSchema = z.union([
9
+ z.object({
10
+ value: z.number(),
11
+ unit: z.literal("px")
12
+ }),
13
+ z.literal("auto")
14
+ ]);
15
+ const marginDataSchema = z.object({
16
+ marginTop: marginSideDataSchema.nullable().optional(),
17
+ marginRight: marginSideDataSchema.nullable().optional(),
18
+ marginBottom: marginSideDataSchema.nullable().optional(),
19
+ marginLeft: marginSideDataSchema.nullable().optional()
20
+ }).transform((v) => ({
21
+ marginTop: v.marginTop,
22
+ marginRight: v.marginRight,
23
+ marginBottom: v.marginBottom,
24
+ marginLeft: v.marginLeft
25
+ }));
26
+ const responsiveMarginDataSchema = Schema.responsiveValue(marginDataSchema);
27
+ const marginPropControllerDataV0Schema = responsiveMarginDataSchema;
28
+ const MarginPropControllerDataV1Type = "prop-controllers::margin::v1";
29
+ const marginPropControllerDataV1Schema = z.object({
30
+ [ControlDataTypeKey]: z.literal(MarginPropControllerDataV1Type),
31
+ value: responsiveMarginDataSchema
32
+ });
33
+ const marginPropControllerDataSchema = z.union([
34
+ marginPropControllerDataV0Schema,
35
+ marginPropControllerDataV1Schema
36
+ ]);
37
+ const MarginPropControllerFormat = {
38
+ ClassName: "makeswift::prop-controllers::margin::format::class-name",
39
+ ResponsiveValue: "makeswift::prop-controllers::margin::format::responsive-value"
40
+ };
41
+ function Margin(options = {}) {
42
+ return { type: Types.Margin, version: 1, options };
43
+ }
44
+ Margin.Format = MarginPropControllerFormat;
45
+ function getMarginPropControllerDataResponsiveMarginData(data) {
46
+ return match(data).with(
47
+ { [ControlDataTypeKey]: MarginPropControllerDataV1Type },
48
+ (v1) => v1.value
49
+ ).otherwise((v0) => v0);
50
+ }
51
+ function createMarginPropControllerDataFromResponsiveMarginData(responsiveMarginData, definition) {
52
+ return match(definition).with(
53
+ { version: 1 },
54
+ P.nullish,
55
+ () => ({
56
+ [ControlDataTypeKey]: MarginPropControllerDataV1Type,
57
+ value: responsiveMarginData
58
+ })
59
+ ).otherwise(() => responsiveMarginData);
60
+ }
61
+ export {
62
+ Margin,
63
+ MarginPropControllerDataV1Type,
64
+ MarginPropControllerFormat,
65
+ createMarginPropControllerDataFromResponsiveMarginData,
66
+ getMarginPropControllerDataResponsiveMarginData,
67
+ marginPropControllerDataSchema
68
+ };
69
+ //# sourceMappingURL=margin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/margin/margin.ts"],"sourcesContent":["import { P, match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { z } from 'zod'\n\nconst marginSideDataSchema = z.union([\n z.object({\n value: z.number(),\n unit: z.literal('px'),\n }),\n z.literal('auto'),\n])\n\nexport type MarginSideData = z.infer<typeof marginSideDataSchema>\n\nconst marginDataSchema = z\n .object({\n marginTop: marginSideDataSchema.nullable().optional(),\n marginRight: marginSideDataSchema.nullable().optional(),\n marginBottom: marginSideDataSchema.nullable().optional(),\n marginLeft: marginSideDataSchema.nullable().optional(),\n })\n // To make the key required.\n .transform((v) => ({\n marginTop: v.marginTop,\n marginRight: v.marginRight,\n marginBottom: v.marginBottom,\n marginLeft: v.marginLeft,\n }))\n\nexport type MarginData = z.infer<typeof marginDataSchema>\n\nconst responsiveMarginDataSchema = Schema.responsiveValue(marginDataSchema)\n\nexport type ResponsiveMarginData = z.infer<typeof responsiveMarginDataSchema>\n\nconst marginPropControllerDataV0Schema = responsiveMarginDataSchema\n\nexport type MarginPropControllerDataV0 = z.infer<\n typeof marginPropControllerDataV0Schema\n>\n\nexport const MarginPropControllerDataV1Type = 'prop-controllers::margin::v1'\n\nconst marginPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(MarginPropControllerDataV1Type),\n value: responsiveMarginDataSchema,\n})\n\nexport type MarginPropControllerDataV1 = z.infer<\n typeof marginPropControllerDataV1Schema\n>\n\nexport const marginPropControllerDataSchema = z.union([\n marginPropControllerDataV0Schema,\n marginPropControllerDataV1Schema,\n])\n\nexport type MarginPropControllerData = z.infer<\n typeof marginPropControllerDataSchema\n>\n\nexport const MarginPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::margin::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::margin::format::responsive-value',\n} as const\n\nexport type MarginPropControllerFormat =\n (typeof MarginPropControllerFormat)[keyof typeof MarginPropControllerFormat]\n\ntype MarginOptions = {\n preset?: MarginPropControllerData\n format?: MarginPropControllerFormat\n}\n\ntype MarginDescriptorV0<\n _T = MarginPropControllerDataV0,\n U extends MarginOptions = MarginOptions,\n> = {\n type: typeof Types.Margin\n options: U\n}\n\ntype MarginDescriptorV1<\n _T = MarginPropControllerData,\n U extends MarginOptions = MarginOptions,\n> = {\n type: typeof Types.Margin\n version: 1\n options: U\n}\n\nexport type MarginDescriptor<\n _T = MarginPropControllerData,\n U extends MarginOptions = MarginOptions,\n> = MarginDescriptorV0<_T, U> | MarginDescriptorV1<_T, U>\n\nexport type ResolveMarginPropControllerValue<T extends MarginDescriptor> =\n T extends MarginDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsiveMarginData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof MarginPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof MarginPropControllerFormat.ResponsiveValue\n ? ResponsiveMarginData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Margin<T extends MarginOptions>(\n options: T & MarginOptions = {} as T,\n): MarginDescriptor<MarginPropControllerData, T> {\n return { type: Types.Margin, version: 1, options }\n}\n\nMargin.Format = MarginPropControllerFormat\n\nexport function getMarginPropControllerDataResponsiveMarginData(\n data: MarginPropControllerData | undefined,\n): ResponsiveMarginData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: MarginPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createMarginPropControllerDataFromResponsiveMarginData(\n responsiveMarginData: ResponsiveMarginData,\n definition?: MarginDescriptor,\n): MarginPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: MarginPropControllerDataV1Type,\n value: responsiveMarginData,\n }) as const,\n )\n .otherwise(() => responsiveMarginData)\n}\n"],"mappings":"AAAA,SAAS,GAAG,aAAa;AACzB;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAElB,MAAM,uBAAuB,EAAE,MAAM;AAAA,EACnC,EAAE,OAAO;AAAA,IACP,OAAO,EAAE,OAAO;AAAA,IAChB,MAAM,EAAE,QAAQ,IAAI;AAAA,EACtB,CAAC;AAAA,EACD,EAAE,QAAQ,MAAM;AAClB,CAAC;AAID,MAAM,mBAAmB,EACtB,OAAO;AAAA,EACN,WAAW,qBAAqB,SAAS,EAAE,SAAS;AAAA,EACpD,aAAa,qBAAqB,SAAS,EAAE,SAAS;AAAA,EACtD,cAAc,qBAAqB,SAAS,EAAE,SAAS;AAAA,EACvD,YAAY,qBAAqB,SAAS,EAAE,SAAS;AACvD,CAAC,EAEA,UAAU,CAAC,OAAO;AAAA,EACjB,WAAW,EAAE;AAAA,EACb,aAAa,EAAE;AAAA,EACf,cAAc,EAAE;AAAA,EAChB,YAAY,EAAE;AAChB,EAAE;AAIJ,MAAM,6BAA6B,OAAO,gBAAgB,gBAAgB;AAI1E,MAAM,mCAAmC;AAMlC,MAAM,iCAAiC;AAE9C,MAAM,mCAAmC,EAAE,OAAO;AAAA,EAChD,CAAC,kBAAkB,GAAG,EAAE,QAAQ,8BAA8B;AAAA,EAC9D,OAAO;AACT,CAAC;AAMM,MAAM,iCAAiC,EAAE,MAAM;AAAA,EACpD;AAAA,EACA;AACF,CAAC;AAMM,MAAM,6BAA6B;AAAA,EACxC,WAAW;AAAA,EACX,iBACE;AACJ;AAmDO,SAAS,OACd,UAA6B,CAAC,GACiB;AAC/C,SAAO,EAAE,MAAM,MAAM,QAAQ,SAAS,GAAG,QAAQ;AACnD;AAEA,OAAO,SAAS;AAET,SAAS,gDACd,MACkC;AAClC,SAAO,MAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,uDACd,sBACA,YAC0B;AAC1B,SAAO,MAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,EAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,oBAAoB;AACzC;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./navigation-links";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/navigation-links/index.ts"],"sourcesContent":["export * from './navigation-links'\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,199 @@
1
+ import { match } from "ts-pattern";
2
+ import {
3
+ ControlDataTypeKey,
4
+ Types,
5
+ Schema
6
+ } from "../prop-controllers";
7
+ import { z } from "zod";
8
+ import { colorDataSchema } from "../data";
9
+ import { textStyleDataSchema } from "../text-style";
10
+ import { copyLinkData, linkDataSchema } from "../link";
11
+ import { copyResponsiveColorData } from "../responsive-color";
12
+ const buttonVariantSchema = z.enum([
13
+ "flat",
14
+ "outline",
15
+ "shadow",
16
+ "clear",
17
+ "blocky",
18
+ "bubbly",
19
+ "skewed"
20
+ ]);
21
+ const buttonShapeSchema = z.enum(["pill", "rounded", "square"]);
22
+ const buttonSizeSchema = z.enum(["small", "medium", "large"]);
23
+ const navigationButtonSchema = z.object({
24
+ id: z.string(),
25
+ type: z.literal("button"),
26
+ payload: z.object({
27
+ label: z.string(),
28
+ link: linkDataSchema.optional(),
29
+ variant: Schema.responsiveValue(buttonVariantSchema).optional(),
30
+ shape: Schema.responsiveValue(buttonShapeSchema).optional(),
31
+ size: Schema.responsiveValue(buttonSizeSchema).optional(),
32
+ textColor: Schema.responsiveValue(colorDataSchema).optional(),
33
+ color: Schema.responsiveValue(colorDataSchema).optional(),
34
+ textStyle: Schema.responsiveValue(textStyleDataSchema).optional()
35
+ })
36
+ });
37
+ const navigationDropdownCaretTypeSchema = z.union([
38
+ z.literal("caret"),
39
+ z.literal("plus"),
40
+ z.literal("arrow-down"),
41
+ z.literal("chevron-down")
42
+ ]);
43
+ const navigationDropdownLinkSchema = z.object({
44
+ id: z.string(),
45
+ payload: z.object({
46
+ label: z.string(),
47
+ link: linkDataSchema.optional(),
48
+ color: Schema.responsiveValue(colorDataSchema).optional(),
49
+ textStyle: Schema.responsiveValue(textStyleDataSchema).optional()
50
+ })
51
+ });
52
+ const navigationDropdownSchema = z.object({
53
+ id: z.string(),
54
+ type: z.literal("dropdown"),
55
+ payload: z.object({
56
+ label: z.string(),
57
+ caret: navigationDropdownCaretTypeSchema.optional(),
58
+ links: z.array(navigationDropdownLinkSchema).optional(),
59
+ variant: Schema.responsiveValue(buttonVariantSchema).optional(),
60
+ shape: Schema.responsiveValue(buttonShapeSchema).optional(),
61
+ size: Schema.responsiveValue(buttonSizeSchema).optional(),
62
+ textColor: Schema.responsiveValue(colorDataSchema).optional(),
63
+ color: Schema.responsiveValue(colorDataSchema).optional(),
64
+ textStyle: Schema.responsiveValue(textStyleDataSchema).optional()
65
+ })
66
+ });
67
+ const navigationLinksDataSchema = z.array(
68
+ z.union([navigationButtonSchema, navigationDropdownSchema])
69
+ );
70
+ const navigationLinksPropControllerDataV0Schema = navigationLinksDataSchema;
71
+ const NavigationLinksPropControllerDataV1Type = "prop-controllers::navigation-links::v1";
72
+ const navigationLinksPropControllerDataV1Schema = z.object({
73
+ [ControlDataTypeKey]: z.literal(NavigationLinksPropControllerDataV1Type),
74
+ value: navigationLinksDataSchema
75
+ });
76
+ const navigationLinksPropControllerDataSchema = z.union([
77
+ navigationLinksPropControllerDataV0Schema,
78
+ navigationLinksPropControllerDataV1Schema
79
+ ]);
80
+ function NavigationLinks(options = {}) {
81
+ return { type: Types.NavigationLinks, version: 1, options };
82
+ }
83
+ function getNavigationLinksPropControllerDataNavigationLinksData(data) {
84
+ return match(data).with(
85
+ { [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type },
86
+ (v1) => v1.value
87
+ ).otherwise((v0) => v0);
88
+ }
89
+ function createNavigationLinksPropControllerDataFromNavigationLinksData(navigationLinksData, definition) {
90
+ return match(definition).with(
91
+ { version: 1 },
92
+ () => ({
93
+ [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type,
94
+ value: navigationLinksData
95
+ })
96
+ ).otherwise(() => navigationLinksData);
97
+ }
98
+ function getNavigationLinksPropControllerPageIds(data) {
99
+ if (data == null)
100
+ return [];
101
+ const value = getNavigationLinksPropControllerDataNavigationLinksData(data);
102
+ return value?.flatMap((item) => {
103
+ switch (item.type) {
104
+ case "button": {
105
+ if (item.payload.link == null)
106
+ return [];
107
+ switch (item.payload.link.type) {
108
+ case "OPEN_PAGE":
109
+ return item.payload.link.payload.pageId == null ? [] : [item.payload.link.payload.pageId];
110
+ default:
111
+ return [];
112
+ }
113
+ }
114
+ case "dropdown": {
115
+ return item.payload.links?.flatMap((link) => {
116
+ if (link.payload.link == null)
117
+ return [];
118
+ switch (link.payload.link.type) {
119
+ case "OPEN_PAGE":
120
+ return link.payload.link.payload.pageId == null ? [] : [link.payload.link.payload.pageId];
121
+ default:
122
+ return [];
123
+ }
124
+ }) ?? [];
125
+ }
126
+ }
127
+ }) ?? [];
128
+ }
129
+ function getNavigationLinksPropControllerSwatchIds(data) {
130
+ if (data == null)
131
+ return [];
132
+ const value = getNavigationLinksPropControllerDataNavigationLinksData(data);
133
+ return value?.flatMap((item) => {
134
+ switch (item.type) {
135
+ case "button":
136
+ case "dropdown":
137
+ return [
138
+ ...item.payload.color?.map((override) => override.value).map((color) => color.swatchId) ?? [],
139
+ ...item.payload.textColor?.map((override) => override.value).map((color) => color.swatchId) ?? []
140
+ ];
141
+ }
142
+ }) ?? [];
143
+ }
144
+ function copyNavigationLinksData(data, context) {
145
+ return data?.map((item) => {
146
+ switch (item.type) {
147
+ case "button": {
148
+ const { color, link } = item.payload;
149
+ return {
150
+ ...item,
151
+ payload: {
152
+ ...item.payload,
153
+ link: copyLinkData(link, context),
154
+ color: color != null ? copyResponsiveColorData(color, context) : void 0
155
+ }
156
+ };
157
+ }
158
+ case "dropdown": {
159
+ const { color, links } = item.payload;
160
+ return {
161
+ ...item,
162
+ payload: {
163
+ ...item.payload,
164
+ links: links != null ? links.map((link) => ({
165
+ ...link,
166
+ payload: {
167
+ ...link.payload,
168
+ link: copyLinkData(link.payload.link, context)
169
+ }
170
+ })) : void 0,
171
+ color: color != null ? copyResponsiveColorData(color, context) : void 0
172
+ }
173
+ };
174
+ }
175
+ default:
176
+ return item;
177
+ }
178
+ });
179
+ }
180
+ function copyNavigationLinksPropControllerData(data, context) {
181
+ return match(data).with(void 0, () => void 0).with(
182
+ { [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type },
183
+ (v1) => ({
184
+ [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type,
185
+ value: copyNavigationLinksData(v1.value, context)
186
+ })
187
+ ).otherwise((v0) => copyNavigationLinksData(v0, context));
188
+ }
189
+ export {
190
+ NavigationLinks,
191
+ NavigationLinksPropControllerDataV1Type,
192
+ copyNavigationLinksPropControllerData,
193
+ createNavigationLinksPropControllerDataFromNavigationLinksData,
194
+ getNavigationLinksPropControllerDataNavigationLinksData,
195
+ getNavigationLinksPropControllerPageIds,
196
+ getNavigationLinksPropControllerSwatchIds,
197
+ navigationLinksPropControllerDataSchema
198
+ };
199
+ //# sourceMappingURL=navigation-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/navigation-links/navigation-links.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { z } from 'zod'\nimport { colorDataSchema } from '../data'\nimport { textStyleDataSchema } from '../text-style'\nimport { copyLinkData, linkDataSchema } from '../link'\nimport { copyResponsiveColorData } from '../responsive-color'\n\nconst buttonVariantSchema = z.enum([\n 'flat',\n 'outline',\n 'shadow',\n 'clear',\n 'blocky',\n 'bubbly',\n 'skewed',\n])\n\nconst buttonShapeSchema = z.enum(['pill', 'rounded', 'square'])\n\nconst buttonSizeSchema = z.enum(['small', 'medium', 'large'])\n\nconst navigationButtonSchema = z.object({\n id: z.string(),\n type: z.literal('button'),\n payload: z.object({\n label: z.string(),\n link: linkDataSchema.optional(),\n variant: Schema.responsiveValue(buttonVariantSchema).optional(),\n shape: Schema.responsiveValue(buttonShapeSchema).optional(),\n size: Schema.responsiveValue(buttonSizeSchema).optional(),\n textColor: Schema.responsiveValue(colorDataSchema).optional(),\n color: Schema.responsiveValue(colorDataSchema).optional(),\n textStyle: Schema.responsiveValue(textStyleDataSchema).optional(),\n }),\n})\n\nexport type NavigationButtonData = z.infer<typeof navigationButtonSchema>\n\nconst navigationDropdownCaretTypeSchema = z.union([\n z.literal('caret'),\n z.literal('plus'),\n z.literal('arrow-down'),\n z.literal('chevron-down'),\n])\n\nconst navigationDropdownLinkSchema = z.object({\n id: z.string(),\n payload: z.object({\n label: z.string(),\n link: linkDataSchema.optional(),\n color: Schema.responsiveValue(colorDataSchema).optional(),\n textStyle: Schema.responsiveValue(textStyleDataSchema).optional(),\n }),\n})\n\nconst navigationDropdownSchema = z.object({\n id: z.string(),\n type: z.literal('dropdown'),\n payload: z.object({\n label: z.string(),\n caret: navigationDropdownCaretTypeSchema.optional(),\n links: z.array(navigationDropdownLinkSchema).optional(),\n variant: Schema.responsiveValue(buttonVariantSchema).optional(),\n shape: Schema.responsiveValue(buttonShapeSchema).optional(),\n size: Schema.responsiveValue(buttonSizeSchema).optional(),\n textColor: Schema.responsiveValue(colorDataSchema).optional(),\n color: Schema.responsiveValue(colorDataSchema).optional(),\n textStyle: Schema.responsiveValue(textStyleDataSchema).optional(),\n }),\n})\n\nexport type NavigationDropdownData = z.infer<typeof navigationDropdownSchema>\n\nconst navigationLinksDataSchema = z.array(\n z.union([navigationButtonSchema, navigationDropdownSchema]),\n)\n\nexport type NavigationLinksData = z.infer<typeof navigationLinksDataSchema>\n\nconst navigationLinksPropControllerDataV0Schema = navigationLinksDataSchema\n\nexport type NavigationLinksPropControllerDataV0 = z.infer<\n typeof navigationLinksPropControllerDataV0Schema\n>\n\nexport const NavigationLinksPropControllerDataV1Type =\n 'prop-controllers::navigation-links::v1'\n\nconst navigationLinksPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(NavigationLinksPropControllerDataV1Type),\n value: navigationLinksDataSchema,\n})\n\nexport type NavigationLinksPropControllerDataV1 = z.infer<\n typeof navigationLinksPropControllerDataV1Schema\n>\n\nexport const navigationLinksPropControllerDataSchema = z.union([\n navigationLinksPropControllerDataV0Schema,\n navigationLinksPropControllerDataV1Schema,\n])\n\nexport type NavigationLinksPropControllerData = z.infer<\n typeof navigationLinksPropControllerDataSchema\n>\n\ntype NavigationLinksOptions = Options<Record<string, never>>\n\ntype NavigationLinksDescriptorV0<\n _T = NavigationLinksPropControllerDataV0,\n U extends NavigationLinksOptions = NavigationLinksOptions,\n> = {\n type: typeof Types.NavigationLinks\n options: U\n}\n\ntype NavigationLinksDescriptorV1<\n _T = NavigationLinksPropControllerData,\n U extends NavigationLinksOptions = NavigationLinksOptions,\n> = {\n type: typeof Types.NavigationLinks\n version: 1\n options: U\n}\n\nexport type NavigationLinksDescriptor<\n _T = NavigationLinksPropControllerData,\n U extends NavigationLinksOptions = NavigationLinksOptions,\n> = NavigationLinksDescriptorV0<_T, U> | NavigationLinksDescriptorV1<_T, U>\n\nexport type ResolveNavigationLinksPropControllerValue<\n T extends NavigationLinksDescriptor,\n> = T extends NavigationLinksDescriptor\n ? NavigationLinksData | undefined\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function NavigationLinks(\n options: NavigationLinksOptions = {},\n): NavigationLinksDescriptor<NavigationLinksPropControllerData> {\n return { type: Types.NavigationLinks, version: 1, options }\n}\n\nexport function getNavigationLinksPropControllerDataNavigationLinksData(\n data: NavigationLinksPropControllerData | undefined,\n): NavigationLinksData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createNavigationLinksPropControllerDataFromNavigationLinksData(\n navigationLinksData: NavigationLinksData,\n definition: NavigationLinksDescriptor,\n): NavigationLinksPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type,\n value: navigationLinksData,\n }) as const,\n )\n .otherwise(() => navigationLinksData)\n}\n\nexport function getNavigationLinksPropControllerPageIds(\n data: NavigationLinksPropControllerData | null | undefined,\n): string[] {\n if (data == null) return []\n\n const value = getNavigationLinksPropControllerDataNavigationLinksData(data)\n\n return (\n value?.flatMap((item) => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap((link) => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n}\n\nexport function getNavigationLinksPropControllerSwatchIds(\n data: NavigationLinksPropControllerData | null | undefined,\n): string[] {\n if (data == null) return []\n\n const value = getNavigationLinksPropControllerDataNavigationLinksData(data)\n\n return (\n value?.flatMap((item) => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map((override) => override.value)\n .map((color) => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map((override) => override.value)\n .map((color) => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n}\n\nfunction copyNavigationLinksData(\n data: NavigationLinksData,\n context: CopyContext,\n): NavigationLinksData {\n return data?.map((item) => {\n switch (item.type) {\n case 'button': {\n const { color, link } = item.payload\n\n return {\n ...item,\n payload: {\n ...item.payload,\n link: copyLinkData(link, context),\n color:\n color != null\n ? copyResponsiveColorData(color, context)\n : undefined,\n },\n }\n }\n\n case 'dropdown': {\n const { color, links } = item.payload\n\n return {\n ...item,\n payload: {\n ...item.payload,\n links:\n links != null\n ? links.map((link) => ({\n ...link,\n payload: {\n ...link.payload,\n link: copyLinkData(link.payload.link, context),\n },\n }))\n : undefined,\n color:\n color != null\n ? copyResponsiveColorData(color, context)\n : undefined,\n },\n }\n }\n\n default:\n return item\n }\n })\n}\n\nexport function copyNavigationLinksPropControllerData(\n data: NavigationLinksPropControllerData | undefined,\n context: CopyContext,\n): NavigationLinksPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: NavigationLinksPropControllerDataV1Type,\n value: copyNavigationLinksData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyNavigationLinksData(v0, context))\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { ControlDataTypeKey, Types } from "./prop-controllers";
3
+ import { P, match } from "ts-pattern";
4
+ const numberPropControllerDataV0Schema = z.number();
5
+ const NumberPropControllerDataV1Type = "prop-controllers::number::v1";
6
+ const numberPropControllerDataV1Schema = z.object({
7
+ [ControlDataTypeKey]: z.literal(NumberPropControllerDataV1Type),
8
+ value: z.number()
9
+ });
10
+ const numberPropControllerDataSchema = z.union([
11
+ numberPropControllerDataV0Schema,
12
+ numberPropControllerDataV1Schema
13
+ ]);
14
+ function Number(options = {}) {
15
+ return { type: Types.Number, version: 1, options };
16
+ }
17
+ function getNumberPropControllerDataNumber(data) {
18
+ return match(data).with(
19
+ { [ControlDataTypeKey]: NumberPropControllerDataV1Type },
20
+ (v1) => v1.value
21
+ ).otherwise((v0) => v0);
22
+ }
23
+ function createNumberPropControllerDataFromNumber(value, definition) {
24
+ return match(definition).with(
25
+ { version: 1 },
26
+ P.nullish,
27
+ () => ({
28
+ [ControlDataTypeKey]: NumberPropControllerDataV1Type,
29
+ value
30
+ })
31
+ ).otherwise(() => value);
32
+ }
33
+ export {
34
+ Number,
35
+ createNumberPropControllerDataFromNumber,
36
+ getNumberPropControllerDataNumber,
37
+ numberPropControllerDataSchema
38
+ };
39
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/number.ts"],"sourcesContent":["import { z } from 'zod'\nimport { ControlDataTypeKey, Options, Types } from './prop-controllers'\nimport { P, match } from 'ts-pattern'\n\nconst numberPropControllerDataV0Schema = z.number()\n\ntype NumberPropControllerDataV0 = z.infer<\n typeof numberPropControllerDataV0Schema\n>\n\nconst NumberPropControllerDataV1Type = 'prop-controllers::number::v1'\n\nconst numberPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(NumberPropControllerDataV1Type),\n value: z.number(),\n})\n\ntype NumberPropControllerDataV1 = z.infer<\n typeof numberPropControllerDataV1Schema\n>\n\nexport const numberPropControllerDataSchema = z.union([\n numberPropControllerDataV0Schema,\n numberPropControllerDataV1Schema,\n])\n\nexport type NumberPropControllerData = z.infer<\n typeof numberPropControllerDataSchema\n>\n\nexport type NumberOptions = Options<{\n preset?: NumberPropControllerData\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\ntype NumberDescriptorV0<_T = NumberPropControllerDataV0> = {\n type: typeof Types.Number\n options: NumberOptions\n}\n\ntype NumberDescriptorV1<_T = NumberPropControllerDataV1> = {\n type: typeof Types.Number\n version: 1\n options: NumberOptions\n}\n\nexport type NumberDescriptor<_T = NumberPropControllerData> =\n | NumberDescriptorV0\n | NumberDescriptorV1\n\nexport type ResolveNumberPropControllerValue<T extends NumberDescriptor> =\n T extends NumberDescriptor ? number | undefined : never\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Number(options: NumberOptions = {}): NumberDescriptorV1 {\n return { type: Types.Number, version: 1, options }\n}\n\nexport function getNumberPropControllerDataNumber(\n data: NumberPropControllerData,\n): number {\n return match(data)\n .with(\n { [ControlDataTypeKey]: NumberPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createNumberPropControllerDataFromNumber(\n value: number,\n definition?: NumberDescriptor,\n): NumberPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: NumberPropControllerDataV1Type,\n value,\n } as const),\n )\n .otherwise(() => value)\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,SAAS,oBAA6B,aAAa;AACnD,SAAS,GAAG,aAAa;AAEzB,MAAM,mCAAmC,EAAE,OAAO;AAMlD,MAAM,iCAAiC;AAEvC,MAAM,mCAAmC,EAAE,OAAO;AAAA,EAChD,CAAC,kBAAkB,GAAG,EAAE,QAAQ,8BAA8B;AAAA,EAC9D,OAAO,EAAE,OAAO;AAClB,CAAC;AAMM,MAAM,iCAAiC,EAAE,MAAM;AAAA,EACpD;AAAA,EACA;AACF,CAAC;AAuCM,SAAS,OAAO,UAAyB,CAAC,GAAuB;AACtE,SAAO,EAAE,MAAM,MAAM,QAAQ,SAAS,GAAG,QAAQ;AACnD;AAEO,SAAS,kCACd,MACQ;AACR,SAAO,MAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,+BAA+B;AAAA,IACvD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yCACd,OACA,YAC0B;AAC1B,SAAO,MAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,EAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./padding";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/padding/index.ts"],"sourcesContent":["export * from './padding'\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,66 @@
1
+ import { P, match } from "ts-pattern";
2
+ import {
3
+ ControlDataTypeKey,
4
+ Types,
5
+ Schema
6
+ } from "../prop-controllers";
7
+ import { z } from "zod";
8
+ const paddingSideDataSchema = z.object({
9
+ value: z.number(),
10
+ unit: z.literal("px")
11
+ });
12
+ const paddingDataSchema = z.object({
13
+ paddingTop: paddingSideDataSchema.nullable().optional(),
14
+ paddingRight: paddingSideDataSchema.nullable().optional(),
15
+ paddingBottom: paddingSideDataSchema.nullable().optional(),
16
+ paddingLeft: paddingSideDataSchema.nullable().optional()
17
+ }).transform((v) => ({
18
+ paddingTop: v.paddingTop,
19
+ paddingRight: v.paddingRight,
20
+ paddingBottom: v.paddingBottom,
21
+ paddingLeft: v.paddingLeft
22
+ }));
23
+ const responsivePaddingDataSchema = Schema.responsiveValue(paddingDataSchema);
24
+ const paddingPropControllerDataV0Schema = responsivePaddingDataSchema;
25
+ const PaddingPropControllerDataV1Type = "prop-controllers::padding::v1";
26
+ const paddingPropControllerDataV1Schema = z.object({
27
+ [ControlDataTypeKey]: z.literal(PaddingPropControllerDataV1Type),
28
+ value: responsivePaddingDataSchema
29
+ });
30
+ const paddingPropControllerDataSchema = z.union([
31
+ paddingPropControllerDataV0Schema,
32
+ paddingPropControllerDataV1Schema
33
+ ]);
34
+ const PaddingPropControllerFormat = {
35
+ ClassName: "makeswift::prop-controllers::padding::format::class-name",
36
+ ResponsiveValue: "makeswift::prop-controllers::padding::format::responsive-value"
37
+ };
38
+ function Padding(options = {}) {
39
+ return { type: Types.Padding, version: 1, options };
40
+ }
41
+ Padding.Format = PaddingPropControllerFormat;
42
+ function getPaddingPropControllerDataResponsivePaddingData(data) {
43
+ return match(data).with(
44
+ { [ControlDataTypeKey]: PaddingPropControllerDataV1Type },
45
+ (v1) => v1.value
46
+ ).otherwise((v0) => v0);
47
+ }
48
+ function createPaddingPropControllerDataFromResponsivePaddingData(responsivePaddingData, definition) {
49
+ return match(definition).with(
50
+ { version: 1 },
51
+ P.nullish,
52
+ () => ({
53
+ [ControlDataTypeKey]: PaddingPropControllerDataV1Type,
54
+ value: responsivePaddingData
55
+ })
56
+ ).otherwise(() => responsivePaddingData);
57
+ }
58
+ export {
59
+ Padding,
60
+ PaddingPropControllerDataV1Type,
61
+ PaddingPropControllerFormat,
62
+ createPaddingPropControllerDataFromResponsivePaddingData,
63
+ getPaddingPropControllerDataResponsivePaddingData,
64
+ paddingPropControllerDataSchema
65
+ };
66
+ //# sourceMappingURL=padding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/padding/padding.ts"],"sourcesContent":["import { P, match } from 'ts-pattern'\nimport {\n ControlDataTypeKey,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { z } from 'zod'\n\nconst paddingSideDataSchema = z.object({\n value: z.number(),\n unit: z.literal('px'),\n})\n\nexport type PaddingSideData = z.infer<typeof paddingSideDataSchema>\n\nconst paddingDataSchema = z\n .object({\n paddingTop: paddingSideDataSchema.nullable().optional(),\n paddingRight: paddingSideDataSchema.nullable().optional(),\n paddingBottom: paddingSideDataSchema.nullable().optional(),\n paddingLeft: paddingSideDataSchema.nullable().optional(),\n })\n // To make the key required.\n .transform((v) => ({\n paddingTop: v.paddingTop,\n paddingRight: v.paddingRight,\n paddingBottom: v.paddingBottom,\n paddingLeft: v.paddingLeft,\n }))\n\nexport type PaddingData = z.infer<typeof paddingDataSchema>\n\nconst responsivePaddingDataSchema = Schema.responsiveValue(paddingDataSchema)\n\nexport type ResponsivePaddingData = z.infer<typeof responsivePaddingDataSchema>\n\nconst paddingPropControllerDataV0Schema = responsivePaddingDataSchema\n\nexport type PaddingPropControllerDataV0 = z.infer<\n typeof paddingPropControllerDataV0Schema\n>\n\nexport const PaddingPropControllerDataV1Type = 'prop-controllers::padding::v1'\n\nconst paddingPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(PaddingPropControllerDataV1Type),\n value: responsivePaddingDataSchema,\n})\n\nexport type PaddingPropControllerDataV1 = z.infer<\n typeof paddingPropControllerDataV1Schema\n>\n\nexport const paddingPropControllerDataSchema = z.union([\n paddingPropControllerDataV0Schema,\n paddingPropControllerDataV1Schema,\n])\n\nexport type PaddingPropControllerData = z.infer<\n typeof paddingPropControllerDataSchema\n>\n\nexport const PaddingPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::padding::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::padding::format::responsive-value',\n} as const\n\nexport type PaddingPropControllerFormat =\n (typeof PaddingPropControllerFormat)[keyof typeof PaddingPropControllerFormat]\n\ntype PaddingOptions = {\n preset?: PaddingPropControllerData\n format?: PaddingPropControllerFormat\n}\n\ntype PaddingDescriptorV0<\n _T = PaddingPropControllerDataV0,\n U extends PaddingOptions = PaddingOptions,\n> = {\n type: typeof Types.Padding\n options: U\n}\n\ntype PaddingDescriptorV1<\n _T = PaddingPropControllerData,\n U extends PaddingOptions = PaddingOptions,\n> = {\n type: typeof Types.Padding\n version: 1\n options: U\n}\n\nexport type PaddingDescriptor<\n _T = PaddingPropControllerData,\n U extends PaddingOptions = PaddingOptions,\n> = PaddingDescriptorV0<_T, U> | PaddingDescriptorV1<_T, U>\n\nexport type ResolvePaddingPropControllerValue<T extends PaddingDescriptor> =\n T extends PaddingDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsivePaddingData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof PaddingPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof PaddingPropControllerFormat.ResponsiveValue\n ? ResponsivePaddingData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Padding<T extends PaddingOptions>(\n options: T & PaddingOptions = {} as T,\n): PaddingDescriptor<PaddingPropControllerData, T> {\n return { type: Types.Padding, version: 1, options }\n}\n\nPadding.Format = PaddingPropControllerFormat\n\nexport function getPaddingPropControllerDataResponsivePaddingData(\n data: PaddingPropControllerData | undefined,\n): ResponsivePaddingData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: PaddingPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createPaddingPropControllerDataFromResponsivePaddingData(\n responsivePaddingData: ResponsivePaddingData,\n definition?: PaddingDescriptor,\n): PaddingPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: PaddingPropControllerDataV1Type,\n value: responsivePaddingData,\n }) as const,\n )\n .otherwise(() => responsivePaddingData)\n}\n"],"mappings":"AAAA,SAAS,GAAG,aAAa;AACzB;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AAElB,MAAM,wBAAwB,EAAE,OAAO;AAAA,EACrC,OAAO,EAAE,OAAO;AAAA,EAChB,MAAM,EAAE,QAAQ,IAAI;AACtB,CAAC;AAID,MAAM,oBAAoB,EACvB,OAAO;AAAA,EACN,YAAY,sBAAsB,SAAS,EAAE,SAAS;AAAA,EACtD,cAAc,sBAAsB,SAAS,EAAE,SAAS;AAAA,EACxD,eAAe,sBAAsB,SAAS,EAAE,SAAS;AAAA,EACzD,aAAa,sBAAsB,SAAS,EAAE,SAAS;AACzD,CAAC,EAEA,UAAU,CAAC,OAAO;AAAA,EACjB,YAAY,EAAE;AAAA,EACd,cAAc,EAAE;AAAA,EAChB,eAAe,EAAE;AAAA,EACjB,aAAa,EAAE;AACjB,EAAE;AAIJ,MAAM,8BAA8B,OAAO,gBAAgB,iBAAiB;AAI5E,MAAM,oCAAoC;AAMnC,MAAM,kCAAkC;AAE/C,MAAM,oCAAoC,EAAE,OAAO;AAAA,EACjD,CAAC,kBAAkB,GAAG,EAAE,QAAQ,+BAA+B;AAAA,EAC/D,OAAO;AACT,CAAC;AAMM,MAAM,kCAAkC,EAAE,MAAM;AAAA,EACrD;AAAA,EACA;AACF,CAAC;AAMM,MAAM,8BAA8B;AAAA,EACzC,WAAW;AAAA,EACX,iBACE;AACJ;AAmDO,SAAS,QACd,UAA8B,CAAC,GACkB;AACjD,SAAO,EAAE,MAAM,MAAM,SAAS,SAAS,GAAG,QAAQ;AACpD;AAEA,QAAQ,SAAS;AAEV,SAAS,kDACd,MACmC;AACnC,SAAO,MAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,gCAAgC;AAAA,IACxD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yDACd,uBACA,YAC2B;AAC3B,SAAO,MAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,EAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,qBAAqB;AAC1C;","names":[]}
@@ -0,0 +1,44 @@
1
+ import {
2
+ Schema,
3
+ ControlDataTypeKey
4
+ } from "@makeswift/controls";
5
+ const Types = {
6
+ Backgrounds: "Backgrounds",
7
+ Border: "Border",
8
+ BorderRadius: "BorderRadius",
9
+ Checkbox: "Checkbox",
10
+ Date: "Date",
11
+ ElementID: "ElementID",
12
+ Font: "Font",
13
+ GapX: "GapX",
14
+ GapY: "GapY",
15
+ Grid: "Grid",
16
+ Image: "Image",
17
+ Images: "Images",
18
+ Link: "Link",
19
+ Margin: "Margin",
20
+ NavigationLinks: "NavigationLinks",
21
+ Padding: "Padding",
22
+ Number: "Number",
23
+ Shadows: "Shadows",
24
+ ResponsiveColor: "ResponsiveColor",
25
+ ResponsiveIconRadioGroup: "ResponsiveIconRadioGroup",
26
+ ResponsiveLength: "ResponsiveLength",
27
+ ResponsiveNumber: "ResponsiveNumber",
28
+ ResponsiveOpacity: "ResponsiveOpacity",
29
+ ResponsiveSelect: "ResponsiveSelect",
30
+ SocialLinks: "SocialLinks",
31
+ TextArea: "TextArea",
32
+ TextInput: "TextInput",
33
+ Table: "Table",
34
+ TableFormFields: "TableFormFields",
35
+ TextStyle: "TextStyle",
36
+ Width: "Width",
37
+ Video: "Video"
38
+ };
39
+ export {
40
+ ControlDataTypeKey,
41
+ Schema,
42
+ Types
43
+ };
44
+ //# sourceMappingURL=prop-controllers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/prop-controllers.ts"],"sourcesContent":["import { type Device, type ResponsiveValue } from '@makeswift/controls'\n\nimport { AssociatedType } from './utils/associated-types'\n\nexport {\n type CopyContext,\n type DataType,\n type Element,\n type ElementData,\n type MergeTranslatableDataContext,\n type ReplacementContext,\n type ResponsiveValue,\n Schema,\n ControlDataTypeKey,\n} from '@makeswift/controls'\n\nexport const Types = {\n Backgrounds: 'Backgrounds',\n Border: 'Border',\n BorderRadius: 'BorderRadius',\n Checkbox: 'Checkbox',\n Date: 'Date',\n ElementID: 'ElementID',\n Font: 'Font',\n GapX: 'GapX',\n GapY: 'GapY',\n Grid: 'Grid',\n Image: 'Image',\n Images: 'Images',\n Link: 'Link',\n Margin: 'Margin',\n NavigationLinks: 'NavigationLinks',\n Padding: 'Padding',\n Number: 'Number',\n Shadows: 'Shadows',\n ResponsiveColor: 'ResponsiveColor',\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveLength: 'ResponsiveLength',\n ResponsiveNumber: 'ResponsiveNumber',\n ResponsiveOpacity: 'ResponsiveOpacity',\n ResponsiveSelect: 'ResponsiveSelect',\n SocialLinks: 'SocialLinks',\n TextArea: 'TextArea',\n TextInput: 'TextInput',\n Table: 'Table',\n TableFormFields: 'TableFormFields',\n TextStyle: 'TextStyle',\n Width: 'Width',\n Video: 'Video',\n} as const\n\nexport type Options<T> =\n | T\n | ((props: Record<string, unknown>, deviceMode: Device) => T)\n\nexport type ResolveOptions<T extends Options<unknown>> =\n T extends Options<infer U> ? U : never\n\nexport type PropType<T> = AssociatedType<T, 'Type'>\nexport type PropData<T> = AssociatedType<T, 'PropData'>\nexport type Value<T> = AssociatedType<T, 'Value'>\nexport type Descriptor<T> = AssociatedType<T, 'Descriptor'>\nexport type Discriminator<T> = AssociatedType<T, 'Discriminator'>\nexport type OptionsType<T> = AssociatedType<Descriptor<T>, 'Options'>\nexport type RawOptionsType<T> = ResolveOptions<OptionsType<T>>\n\nexport type PrimitiveValue<T> =\n Value<T> extends ResponsiveValue<infer U> ? U : Value<T>\n"],"mappings":"AAIA;AAAA,EAQE;AAAA,EACA;AAAA,OACK;AAEA,MAAM,QAAQ;AAAA,EACnB,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,EACV,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,OAAO;AAAA,EACP,OAAO;AACT;","names":[]}
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { colorDataSchema } from "./data";
3
+ import {
4
+ ControlDataTypeKey,
5
+ Types,
6
+ Schema
7
+ } from "./prop-controllers";
8
+ import { match } from "ts-pattern";
9
+ const responsiveColorDataSchema = Schema.responsiveValue(colorDataSchema);
10
+ const responsiveColorPropControllerDataV0Schema = responsiveColorDataSchema;
11
+ const ResponsiveColorPropControllerDataV1Type = "prop-controllers::responsive-color::v1";
12
+ const responsiveColorPropControllerDataV1Schema = z.object({
13
+ [ControlDataTypeKey]: z.literal(ResponsiveColorPropControllerDataV1Type),
14
+ value: responsiveColorDataSchema
15
+ });
16
+ const responsiveColorPropControllerDataSchema = z.union([
17
+ responsiveColorPropControllerDataV0Schema,
18
+ responsiveColorPropControllerDataV1Schema
19
+ ]);
20
+ function ResponsiveColor(options = {}) {
21
+ return { type: Types.ResponsiveColor, version: 1, options };
22
+ }
23
+ function getResponsiveColorPropControllerDataResponsiveColorData(data) {
24
+ return match(data).with(
25
+ { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },
26
+ (v1) => v1.value
27
+ ).otherwise((v0) => v0);
28
+ }
29
+ function createResponsiveColorPropControllerDataFromResponsiveColorData(definition, responsiveColorData) {
30
+ return match(definition).with(
31
+ { version: 1 },
32
+ () => ({
33
+ [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,
34
+ value: responsiveColorData
35
+ })
36
+ ).otherwise(() => responsiveColorData);
37
+ }
38
+ function getResponsiveColorDataSwatchIds(data) {
39
+ return data.map((override) => override.value.swatchId);
40
+ }
41
+ function getResponsiveColorPropControllerDataSawtchIds(data) {
42
+ if (data == null)
43
+ return [];
44
+ return getResponsiveColorDataSwatchIds(
45
+ getResponsiveColorPropControllerDataResponsiveColorData(data)
46
+ );
47
+ }
48
+ function copyResponsiveColorData(data, context) {
49
+ return data.map((override) => ({
50
+ ...override,
51
+ value: copyColorValue(override.value)
52
+ }));
53
+ function copyColorValue(colorValue) {
54
+ return {
55
+ ...colorValue,
56
+ swatchId: context.replacementContext.swatchIds.get(colorValue.swatchId) ?? colorValue.swatchId
57
+ };
58
+ }
59
+ }
60
+ function copyResponsiveColorPropControllerData(data, context) {
61
+ return match(data).with(void 0, () => void 0).with(
62
+ { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },
63
+ (v1) => ({
64
+ [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,
65
+ value: copyResponsiveColorData(v1.value, context)
66
+ })
67
+ ).otherwise((v0) => copyResponsiveColorData(v0, context));
68
+ }
69
+ export {
70
+ ResponsiveColor,
71
+ copyResponsiveColorData,
72
+ copyResponsiveColorPropControllerData,
73
+ createResponsiveColorPropControllerDataFromResponsiveColorData,
74
+ getResponsiveColorDataSwatchIds,
75
+ getResponsiveColorPropControllerDataResponsiveColorData,
76
+ getResponsiveColorPropControllerDataSawtchIds,
77
+ responsiveColorPropControllerDataSchema
78
+ };
79
+ //# sourceMappingURL=responsive-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/responsive-color.ts"],"sourcesContent":["import { z } from 'zod'\nimport { colorDataSchema } from './data'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from './prop-controllers'\nimport { match } from 'ts-pattern'\n\nconst responsiveColorDataSchema = Schema.responsiveValue(colorDataSchema)\n\nexport type ResponsiveColorData = z.infer<typeof responsiveColorDataSchema>\n\nconst responsiveColorPropControllerDataV0Schema = responsiveColorDataSchema\n\ntype ResponsiveColorPropControllerDataV0 = z.infer<\n typeof responsiveColorPropControllerDataV0Schema\n>\n\nconst ResponsiveColorPropControllerDataV1Type =\n 'prop-controllers::responsive-color::v1'\n\nconst responsiveColorPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(ResponsiveColorPropControllerDataV1Type),\n value: responsiveColorDataSchema,\n})\n\ntype ResponsiveColorPropControllerDataV1 = z.infer<\n typeof responsiveColorPropControllerDataV1Schema\n>\n\nexport const responsiveColorPropControllerDataSchema = z.union([\n responsiveColorPropControllerDataV0Schema,\n responsiveColorPropControllerDataV1Schema,\n])\n\nexport type ResponsiveColorPropControllerData = z.infer<\n typeof responsiveColorPropControllerDataSchema\n>\n\nexport type ResponsiveColorOptions = Options<{\n label?: string\n placeholder?: string\n hidden?: boolean\n}>\n\ntype ResponsiveColorDescriptorV0<_T = ResponsiveColorPropControllerDataV0> = {\n type: typeof Types.ResponsiveColor\n options: ResponsiveColorOptions\n}\n\ntype ResponsiveColorDescriptorV1<_T = ResponsiveColorPropControllerDataV1> = {\n type: typeof Types.ResponsiveColor\n version: 1\n options: ResponsiveColorOptions\n}\n\nexport type ResponsiveColorDescriptor<_T = ResponsiveColorPropControllerData> =\n | ResponsiveColorDescriptorV0\n | ResponsiveColorDescriptorV1\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveColor(\n options: ResponsiveColorOptions = {},\n): ResponsiveColorDescriptorV1 {\n return { type: Types.ResponsiveColor, version: 1, options }\n}\n\nexport function getResponsiveColorPropControllerDataResponsiveColorData(\n data: ResponsiveColorPropControllerData,\n): ResponsiveColorData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createResponsiveColorPropControllerDataFromResponsiveColorData(\n definition: ResponsiveColorDescriptor,\n responsiveColorData: ResponsiveColorData,\n): ResponsiveColorPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,\n value: responsiveColorData,\n }) as const,\n )\n .otherwise(() => responsiveColorData)\n}\n\nexport function getResponsiveColorDataSwatchIds(\n data: ResponsiveColorData,\n): string[] {\n return data.map((override) => override.value.swatchId)\n}\n\nexport function getResponsiveColorPropControllerDataSawtchIds(\n data: ResponsiveColorPropControllerData | undefined | null,\n): string[] {\n if (data == null) return []\n\n return getResponsiveColorDataSwatchIds(\n getResponsiveColorPropControllerDataResponsiveColorData(data),\n )\n}\n\nexport function copyResponsiveColorData(\n data: ResponsiveColorData,\n context: CopyContext,\n): ResponsiveColorData {\n return data.map((override) => ({\n ...override,\n value: copyColorValue(override.value),\n }))\n\n function copyColorValue(colorValue: any): any {\n return {\n ...colorValue,\n swatchId:\n context.replacementContext.swatchIds.get(colorValue.swatchId) ??\n colorValue.swatchId,\n }\n }\n}\n\nexport function copyResponsiveColorPropControllerData(\n data: ResponsiveColorPropControllerData | undefined,\n context: CopyContext,\n): ResponsiveColorPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,\n value: copyResponsiveColorData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveColorData(v0, context))\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa;AAEtB,MAAM,4BAA4B,OAAO,gBAAgB,eAAe;AAIxE,MAAM,4CAA4C;AAMlD,MAAM,0CACJ;AAEF,MAAM,4CAA4C,EAAE,OAAO;AAAA,EACzD,CAAC,kBAAkB,GAAG,EAAE,QAAQ,uCAAuC;AAAA,EACvE,OAAO;AACT,CAAC;AAMM,MAAM,0CAA0C,EAAE,MAAM;AAAA,EAC7D;AAAA,EACA;AACF,CAAC;AA+BM,SAAS,gBACd,UAAkC,CAAC,GACN;AAC7B,SAAO,EAAE,MAAM,MAAM,iBAAiB,SAAS,GAAG,QAAQ;AAC5D;AAEO,SAAS,wDACd,MACqB;AACrB,SAAO,MAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,wCAAwC;AAAA,IAChE,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,+DACd,YACA,qBACmC;AACnC,SAAO,MAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,mBAAmB;AACxC;AAEO,SAAS,gCACd,MACU;AACV,SAAO,KAAK,IAAI,CAAC,aAAa,SAAS,MAAM,QAAQ;AACvD;AAEO,SAAS,8CACd,MACU;AACV,MAAI,QAAQ;AAAM,WAAO,CAAC;AAE1B,SAAO;AAAA,IACL,wDAAwD,IAAI;AAAA,EAC9D;AACF;AAEO,SAAS,wBACd,MACA,SACqB;AACrB,SAAO,KAAK,IAAI,CAAC,cAAc;AAAA,IAC7B,GAAG;AAAA,IACH,OAAO,eAAe,SAAS,KAAK;AAAA,EACtC,EAAE;AAEF,WAAS,eAAe,YAAsB;AAC5C,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UACE,QAAQ,mBAAmB,UAAU,IAAI,WAAW,QAAQ,KAC5D,WAAW;AAAA,IACf;AAAA,EACF;AACF;AAEO,SAAS,sCACd,MACA,SAC+C;AAC/C,SAAO,MAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B;AAAA,IACC,EAAE,CAAC,kBAAkB,GAAG,wCAAwC;AAAA,IAChE,CAAC,QACE;AAAA,MACC,CAAC,kBAAkB,GAAG;AAAA,MACtB,OAAO,wBAAwB,GAAG,OAAO,OAAO;AAAA,IAClD;AAAA,EACJ,EACC,UAAU,CAAC,OAAO,wBAAwB,IAAI,OAAO,CAAC;AAC3D;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "./responsive-icon-radio-group";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/responsive-icon-radio-group/index.ts"],"sourcesContent":["export * from './responsive-icon-radio-group'\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,21 @@
1
+ import { Types } from "../prop-controllers";
2
+ import { responsiveIconRadioGroupValueSchema } from "../data";
3
+ import {
4
+ versionedPropDef,
5
+ typeArg
6
+ } from "../versioned";
7
+ const discriminator = {
8
+ version: 1,
9
+ dataKey: "prop-controllers::responsive-icon-radio-group::v1"
10
+ };
11
+ const ResponsiveIconRadioGroup = versionedPropDef(
12
+ Types.ResponsiveIconRadioGroup,
13
+ responsiveIconRadioGroupValueSchema,
14
+ discriminator,
15
+ typeArg(),
16
+ typeArg()
17
+ );
18
+ export {
19
+ ResponsiveIconRadioGroup
20
+ };
21
+ //# sourceMappingURL=responsive-icon-radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/responsive-icon-radio-group/responsive-icon-radio-group.ts"],"sourcesContent":["import { type Options, Types } from '../prop-controllers'\nimport { responsiveIconRadioGroupValueSchema } from '../data'\nimport {\n versionedPropDef,\n typeArg,\n type VersionedDescriptor,\n} from '../versioned'\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\nexport type IconRadioGroupOption<T extends string> = {\n value: T\n label: string\n icon: IconName\n}\n\nexport type RawIconRadioGroupOptions<\n T extends string = string,\n U extends T = T,\n> = {\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}\n\nconst discriminator = {\n version: 1,\n dataKey: 'prop-controllers::responsive-icon-radio-group::v1' as const,\n}\n\nexport interface ResponsiveIconRadioGroupCtor {\n // HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n // values provided would undergo type widening. For some reason, the extra layer of indirection\n // reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n // function is passed to another as an argument, which is common with the `registerComponent` API.\n /**\n * @deprecated Prop controllers are deprecated. Use `@makeswift/runtime/controls` instead.\n */\n <_T extends string, T extends _T, U extends T>(\n options: Options<RawIconRadioGroupOptions<T, U>>,\n ): VersionedDescriptor<\n typeof discriminator,\n typeof Types.ResponsiveIconRadioGroup,\n Options<RawIconRadioGroupOptions<T, U>>\n >\n}\n\nexport const ResponsiveIconRadioGroup = versionedPropDef(\n Types.ResponsiveIconRadioGroup,\n responsiveIconRadioGroupValueSchema,\n discriminator,\n typeArg<RawIconRadioGroupOptions>(),\n typeArg<ResponsiveIconRadioGroupCtor>(),\n)\n"],"mappings":"AAAA,SAAuB,aAAa;AACpC,SAAS,2CAA2C;AACpD;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAiDP,MAAM,gBAAgB;AAAA,EACpB,SAAS;AAAA,EACT,SAAS;AACX;AAmBO,MAAM,2BAA2B;AAAA,EACtC,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA,QAAkC;AAAA,EAClC,QAAsC;AACxC;","names":[]}