@cueframe/kernel 0.0.1 → 0.1.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 (432) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +1 -1
  3. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -1
  4. package/dist/_members/authoring/transpileComponent.d.ts +1 -1
  5. package/dist/_members/cloud-import/CloudImportService.d.ts +35 -0
  6. package/dist/_members/cloud-import/ImportProvider.d.ts +73 -0
  7. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +27 -0
  8. package/dist/_members/cloud-import/cloudConfig.d.ts +23 -0
  9. package/dist/_members/cloud-import/index.d.ts +9 -0
  10. package/dist/_members/cloud-import/multipartUpload.d.ts +12 -0
  11. package/dist/_members/composition/ops/compositionOps.d.ts +2 -1
  12. package/dist/_members/composition/ops/types.d.ts +1 -1
  13. package/dist/_members/composition/projection/behind-readiness.d.ts +127 -0
  14. package/dist/_members/composition/projection/index.d.ts +2 -0
  15. package/dist/_members/composition/projection/reframe-readiness.d.ts +156 -0
  16. package/dist/_members/composition/timeline/placement.d.ts +1 -1
  17. package/dist/_members/composition/validators/composition.d.ts +43 -26
  18. package/dist/_members/composition/validators/render.d.ts +32 -0
  19. package/dist/_members/composition-ops/index.d.ts +1 -1
  20. package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
  21. package/dist/_members/convex-api/api.d.ts +5 -0
  22. package/dist/_members/convex-api/dataModel.d.ts +6 -0
  23. package/dist/_members/core/render/compositionRender.d.ts +17 -1
  24. package/dist/_members/core/render/exportSettings.d.ts +1 -1
  25. package/dist/_members/core/render/types.d.ts +31 -0
  26. package/dist/_members/mcp/curation.d.ts +1 -1
  27. package/dist/_members/plane/conformance.d.ts +1 -1
  28. package/dist/_members/render-harness/localRender.d.ts +1 -1
  29. package/dist/animate.js +828 -79187
  30. package/dist/authoring/build-tools.js +8 -11
  31. package/dist/authoring/context.js +5 -5
  32. package/dist/authoring/models.js +1 -2
  33. package/dist/authoring/prompts.js +1 -1
  34. package/dist/authoring/tools.js +7 -7
  35. package/dist/authoring/transpileComponent.js +3 -2220
  36. package/dist/authoring.js +30 -30
  37. package/dist/brand-derivation.js +1 -1
  38. package/dist/chunk-6IU2UQI5.js +107 -0
  39. package/dist/{chunk-5I7VDCAC.js → chunk-7FO3ZJ43.js} +4 -1
  40. package/dist/{chunk-N67PDTKQ.js → chunk-ABL557OT.js} +1 -1
  41. package/dist/{chunk-MC5DLSEV.js → chunk-AP6ZIVAV.js} +15 -15
  42. package/dist/{chunk-QLAQHR3L.js → chunk-AQBREB5O.js} +1 -1
  43. package/dist/{chunk-DSNG6WLU.js → chunk-AYVJXDLB.js} +1 -4
  44. package/dist/{chunk-6CMVBTTP.js → chunk-DK2ODBNT.js} +19 -9
  45. package/dist/chunk-DSMLHYJ4.js +82 -0
  46. package/dist/{chunk-BRKJKB33.js → chunk-FYZVH3MC.js} +1 -1
  47. package/dist/{chunk-MVEE6HEC.js → chunk-GA23TRNR.js} +5 -7
  48. package/dist/chunk-HCCBDJLW.js +68 -0
  49. package/dist/{chunk-JRQVPFLF.js → chunk-HY3RIEZW.js} +1 -1
  50. package/dist/{chunk-OIRUO5P7.js → chunk-JJ6XD7NG.js} +152 -2
  51. package/dist/{_members/primitives/chunk-IDAL6G3Y.js → chunk-JQMPHKLU.js} +19 -27
  52. package/dist/{chunk-G3PBH53P.js → chunk-MBCXCJOE.js} +1 -1
  53. package/dist/{chunk-UEI3NLNK.js → chunk-MHOQTPOB.js} +1 -4
  54. package/dist/{chunk-37NJ27UU.js → chunk-OCFDUCF4.js} +3 -0
  55. package/dist/{chunk-WZTTZHNR.js → chunk-OLFOPQCA.js} +12 -9
  56. package/dist/{chunk-P43IE4WB.js → chunk-P727GZVO.js} +2 -4
  57. package/dist/{chunk-52AHXNKM.js → chunk-PDYO3DOJ.js} +5 -5
  58. package/dist/{chunk-S3P5BFFL.js → chunk-PMY24FUD.js} +2 -4
  59. package/dist/{chunk-ATAF24QG.js → chunk-PODIYN2K.js} +10 -3
  60. package/dist/chunk-RF7U3SCL.js +606 -0
  61. package/dist/{chunk-JD77Y2WM.js → chunk-SW336CJP.js} +1 -4
  62. package/dist/{chunk-TULRCY6U.js → chunk-TOJEXFXL.js} +1 -1
  63. package/dist/{chunk-ELLSET2N.js → chunk-UHGSZZDI.js} +3 -6
  64. package/dist/{chunk-M3I5LMAB.js → chunk-UY4SWJVE.js} +1 -1
  65. package/dist/{chunk-6QJ3V3VS.js → chunk-YX2GSJK7.js} +1 -1
  66. package/dist/chunk-ZT7MHRQU.js +104 -0
  67. package/dist/{chunk-NV4I6GJV.js → chunk-ZWMV6DD2.js} +27 -4
  68. package/dist/cloud-import/multipart.d.ts +1 -0
  69. package/dist/cloud-import/multipart.js +8 -0
  70. package/dist/cloud-import.d.ts +1 -0
  71. package/dist/cloud-import.js +234 -0
  72. package/dist/compose/renderer.js +19 -22
  73. package/dist/compose.js +19 -22
  74. package/dist/composition/graphics-plan.js +3 -3
  75. package/dist/composition/ops.js +4 -4
  76. package/dist/composition/primitive-catalog.js +1 -1
  77. package/dist/composition/projection.js +21 -5
  78. package/dist/composition/validators.js +6 -4
  79. package/dist/composition-ops.js +15 -13
  80. package/dist/composition.js +26 -8
  81. package/dist/{context-CEAKQ5T7.js → context-YWUZDG5X.js} +5 -5
  82. package/dist/convex-api/dataModel.d.ts +1 -0
  83. package/dist/convex-api/dataModel.js +0 -0
  84. package/dist/convex-api.d.ts +1 -0
  85. package/dist/convex-api.js +8 -0
  86. package/dist/core/render.js +3 -3
  87. package/dist/core/select.js +2 -2
  88. package/dist/core.js +3 -3
  89. package/dist/errors.js +1 -1
  90. package/dist/mcp/adapter.js +2 -5
  91. package/dist/mcp/server.js +1 -2
  92. package/dist/mcp.js +2 -95
  93. package/dist/media-model/media-kind.js +9 -98
  94. package/dist/media-model/testing.js +1071 -718
  95. package/dist/nle-export/server.js +328 -130
  96. package/dist/nle-export/xml.js +5 -22799
  97. package/dist/nle-export.js +20 -22
  98. package/dist/primitives/backgrounds.js +2 -3
  99. package/dist/primitives/captions.js +4 -243
  100. package/dist/primitives/effects.js +2 -3
  101. package/dist/primitives/hero-text.js +2 -3
  102. package/dist/primitives/layouts.js +2 -3
  103. package/dist/primitives/lib/index.js +8 -10
  104. package/dist/primitives/lib/preview.js +1 -2
  105. package/dist/primitives/lib/schema.js +1 -2
  106. package/dist/primitives/lib/text/fitText.js +1 -2
  107. package/dist/primitives/lib.js +8 -10
  108. package/dist/primitives/scenes.js +1 -2
  109. package/dist/primitives/text.js +2 -3
  110. package/dist/primitives/ui-blocks.js +4 -5
  111. package/dist/primitives.js +19 -21
  112. package/package.json +125 -16
  113. package/dist/TextureLoader-UQOFUSAP.js +0 -422
  114. package/dist/VideoTexture-AQWSPIJG.js +0 -62
  115. package/dist/_members/account-model/index.js +0 -4
  116. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  117. package/dist/_members/account-model/testing/index.js +0 -7
  118. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  119. package/dist/_members/account-model/types/index.js +0 -1
  120. package/dist/_members/account-model/validators/contextFile.js +0 -18
  121. package/dist/_members/account-model/validators/conversation.js +0 -95
  122. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  123. package/dist/_members/account-model/validators/index.js +0 -7
  124. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  125. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  126. package/dist/_members/account-model/validators/userSettings.js +0 -12
  127. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  128. package/dist/_members/brand-derivation/constants.js +0 -20
  129. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  130. package/dist/_members/brand-derivation/index.js +0 -1
  131. package/dist/_members/composition/audio/audioMix.js +0 -61
  132. package/dist/_members/composition/audio/index.js +0 -5
  133. package/dist/_members/composition/audio/mixStaging.js +0 -195
  134. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  135. package/dist/_members/composition/audio/musicPack.js +0 -36
  136. package/dist/_members/composition/audio/pack.generated.js +0 -603
  137. package/dist/_members/composition/audio/pack.js +0 -48
  138. package/dist/_members/composition/audio/palette.js +0 -134
  139. package/dist/_members/composition/autozoom/index.js +0 -83
  140. package/dist/_members/composition/brand-kit.js +0 -45
  141. package/dist/_members/composition/brief/contract.js +0 -209
  142. package/dist/_members/composition/color-grade.js +0 -80
  143. package/dist/_members/composition/depth.js +0 -8
  144. package/dist/_members/composition/fixtures/index.js +0 -143
  145. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  146. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  147. package/dist/_members/composition/fonts.js +0 -162
  148. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  149. package/dist/_members/composition/graphics-plan/index.js +0 -10
  150. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  151. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  152. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  153. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  154. package/dist/_members/composition/index.js +0 -5
  155. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  156. package/dist/_members/composition/invariants/composition.js +0 -28
  157. package/dist/_members/composition/invariants/errors.js +0 -10
  158. package/dist/_members/composition/invariants/etag.js +0 -38
  159. package/dist/_members/composition/invariants/ids.js +0 -33
  160. package/dist/_members/composition/invariants/index.js +0 -9
  161. package/dist/_members/composition/invariants/keyframes.js +0 -45
  162. package/dist/_members/composition/invariants/markers.js +0 -29
  163. package/dist/_members/composition/invariants/time.js +0 -20
  164. package/dist/_members/composition/invariants/tracks.js +0 -304
  165. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  166. package/dist/_members/composition/ops/headlessStore.js +0 -94
  167. package/dist/_members/composition/ops/index.js +0 -4
  168. package/dist/_members/composition/ops/selectors.js +0 -118
  169. package/dist/_members/composition/ops/timeline-word.js +0 -1
  170. package/dist/_members/composition/ops/transcript.js +0 -77
  171. package/dist/_members/composition/ops/types.js +0 -16
  172. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  173. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  174. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  175. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  176. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  177. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  178. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  179. package/dist/_members/composition/projection/behind-placement.js +0 -62
  180. package/dist/_members/composition/projection/brandKit.js +0 -482
  181. package/dist/_members/composition/projection/cardTokens.js +0 -209
  182. package/dist/_members/composition/projection/composition-floor.js +0 -582
  183. package/dist/_members/composition/projection/cropProjection.js +0 -257
  184. package/dist/_members/composition/projection/index.js +0 -7
  185. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  186. package/dist/_members/composition/projection/safe-zones.js +0 -99
  187. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  188. package/dist/_members/composition/reframe/coverage.js +0 -62
  189. package/dist/_members/composition/reframe/derive.js +0 -73
  190. package/dist/_members/composition/reframe/index.js +0 -109
  191. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  192. package/dist/_members/composition/reframe/shotScale.js +0 -176
  193. package/dist/_members/composition/reframe/trajectory.js +0 -124
  194. package/dist/_members/composition/timeline/compound.js +0 -134
  195. package/dist/_members/composition/timeline/index.js +0 -9
  196. package/dist/_members/composition/timeline/intent.js +0 -228
  197. package/dist/_members/composition/timeline/keyframes.js +0 -121
  198. package/dist/_members/composition/timeline/link.js +0 -59
  199. package/dist/_members/composition/timeline/occupancy.js +0 -36
  200. package/dist/_members/composition/timeline/placement.js +0 -74
  201. package/dist/_members/composition/timeline/plan.js +0 -31
  202. package/dist/_members/composition/timeline/resolve.js +0 -170
  203. package/dist/_members/composition/timeline/trims.js +0 -278
  204. package/dist/_members/composition/types/index.js +0 -1
  205. package/dist/_members/composition/validators/brandKit.js +0 -295
  206. package/dist/_members/composition/validators/composePlan.js +0 -113
  207. package/dist/_members/composition/validators/composition.js +0 -703
  208. package/dist/_members/composition/validators/font.js +0 -34
  209. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  210. package/dist/_members/composition/validators/index.js +0 -9
  211. package/dist/_members/composition/validators/project.js +0 -29
  212. package/dist/_members/composition/validators/registry.js +0 -41
  213. package/dist/_members/composition/validators/render.js +0 -139
  214. package/dist/_members/composition/validators/session.js +0 -37
  215. package/dist/_members/composition/validators/webhook.js +0 -72
  216. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  217. package/dist/_members/composition-ops/index.js +0 -637
  218. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  219. package/dist/_members/composition-ops/opRecorder.js +0 -196
  220. package/dist/_members/composition-ops/recordingStore.js +0 -14
  221. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  222. package/dist/_members/composition-ops/testFixtures.js +0 -19
  223. package/dist/_members/core/index.js +0 -5
  224. package/dist/_members/core/render/bookends.js +0 -53
  225. package/dist/_members/core/render/captions.js +0 -127
  226. package/dist/_members/core/render/compositionRender.js +0 -1249
  227. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  228. package/dist/_members/core/render/emphasis.js +0 -16
  229. package/dist/_members/core/render/eval/cropBox.js +0 -139
  230. package/dist/_members/core/render/eval/inclusion.js +0 -96
  231. package/dist/_members/core/render/eval/index.js +0 -146
  232. package/dist/_members/core/render/eval/metrics.js +0 -94
  233. package/dist/_members/core/render/exportSettings.js +0 -65
  234. package/dist/_members/core/render/index.js +0 -20
  235. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  236. package/dist/_members/core/render/types.js +0 -8
  237. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  238. package/dist/_members/core/render/vcam/constants.js +0 -115
  239. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  240. package/dist/_members/core/render/vcam/framing.js +0 -136
  241. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  242. package/dist/_members/core/render/vcam/shots.js +0 -53
  243. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  244. package/dist/_members/core/select/errorCodes.js +0 -38
  245. package/dist/_members/core/select/index.js +0 -26
  246. package/dist/_members/core/select/model.js +0 -18
  247. package/dist/_members/core/select/select.js +0 -244
  248. package/dist/_members/core/select/stabilize.js +0 -242
  249. package/dist/_members/core/types.js +0 -7
  250. package/dist/_members/errors/index.js +0 -1
  251. package/dist/_members/errors/registry.js +0 -560
  252. package/dist/_members/foundation/codes/index.js +0 -31
  253. package/dist/_members/foundation/index.js +0 -2
  254. package/dist/_members/foundation/primitives/index.js +0 -5
  255. package/dist/_members/mcp/adapter.js +0 -771
  256. package/dist/_members/mcp/burnedNames.js +0 -73
  257. package/dist/_members/mcp/core.js +0 -390
  258. package/dist/_members/mcp/curation.js +0 -792
  259. package/dist/_members/mcp/executor.js +0 -142
  260. package/dist/_members/mcp/format.js +0 -9
  261. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  262. package/dist/_members/mcp/generated/harness.js +0 -81
  263. package/dist/_members/mcp/generated/operations.js +0 -131
  264. package/dist/_members/mcp/index.js +0 -50
  265. package/dist/_members/mcp/internalLoopTools.js +0 -109
  266. package/dist/_members/mcp/prompts.js +0 -45
  267. package/dist/_members/mcp/resources.js +0 -166
  268. package/dist/_members/mcp/server.js +0 -340
  269. package/dist/_members/mcp/wait.js +0 -378
  270. package/dist/_members/mcp/x402Meta.js +0 -66
  271. package/dist/_members/media-model/api.js +0 -175
  272. package/dist/_members/media-model/index.js +0 -1
  273. package/dist/_members/media-model/media-kind.js +0 -116
  274. package/dist/_members/media-model/testing/index.js +0 -1
  275. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  276. package/dist/_members/media-model/transcriptSearch.js +0 -70
  277. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  278. package/dist/_members/nle-export/compact-timeline.js +0 -73
  279. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  280. package/dist/_members/nle-export/composition-to-input.js +0 -147
  281. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  282. package/dist/_members/nle-export/fcpxml.js +0 -159
  283. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  284. package/dist/_members/nle-export/index.js +0 -12
  285. package/dist/_members/nle-export/index.js.map +0 -1
  286. package/dist/_members/nle-export/premiere.js +0 -161
  287. package/dist/_members/nle-export/premiere.js.map +0 -1
  288. package/dist/_members/nle-export/server/index.js +0 -2
  289. package/dist/_members/nle-export/server/index.js.map +0 -1
  290. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  291. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  292. package/dist/_members/nle-export/srt.js +0 -50
  293. package/dist/_members/nle-export/srt.js.map +0 -1
  294. package/dist/_members/nle-export/types.js +0 -9
  295. package/dist/_members/nle-export/types.js.map +0 -1
  296. package/dist/_members/nle-export/xml/index.js +0 -11
  297. package/dist/_members/nle-export/xml/index.js.map +0 -1
  298. package/dist/_members/nle-export/xml-utils.js +0 -48
  299. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  300. package/dist/_members/perception/activeSpeaker.js +0 -103
  301. package/dist/_members/perception/audioQuality.js +0 -76
  302. package/dist/_members/perception/energyBeat.js +0 -99
  303. package/dist/_members/perception/identityMatch.js +0 -91
  304. package/dist/_members/perception/index.js +0 -48
  305. package/dist/_members/perception/visualQuality.js +0 -95
  306. package/dist/_members/plane/conformance.js +0 -90
  307. package/dist/_members/plane/contract.js +0 -49
  308. package/dist/_members/plane/index.js +0 -16
  309. package/dist/_members/primitives/backgrounds/index.js +0 -32
  310. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  311. package/dist/_members/primitives/captions/index.js +0 -398
  312. package/dist/_members/primitives/captions/index.js.map +0 -1
  313. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  314. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  315. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  316. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  317. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  318. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  319. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  320. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  321. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  322. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  323. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  324. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  325. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  326. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  327. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  328. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  329. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  330. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  331. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  332. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  333. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  334. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  335. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  336. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  337. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  338. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  339. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  340. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  341. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  342. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  343. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  344. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  345. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  346. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  347. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  348. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  349. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  350. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  351. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  352. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  353. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  354. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  355. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  356. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  357. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  358. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  359. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  360. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  361. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  362. package/dist/_members/primitives/effects/index.js +0 -30
  363. package/dist/_members/primitives/effects/index.js.map +0 -1
  364. package/dist/_members/primitives/hero-text/index.js +0 -14
  365. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  366. package/dist/_members/primitives/index.js +0 -64
  367. package/dist/_members/primitives/index.js.map +0 -1
  368. package/dist/_members/primitives/layouts/index.js +0 -24
  369. package/dist/_members/primitives/layouts/index.js.map +0 -1
  370. package/dist/_members/primitives/lib/easings.js +0 -26
  371. package/dist/_members/primitives/lib/easings.js.map +0 -1
  372. package/dist/_members/primitives/lib/index.js +0 -74
  373. package/dist/_members/primitives/lib/index.js.map +0 -1
  374. package/dist/_members/primitives/lib/palette.js +0 -72
  375. package/dist/_members/primitives/lib/palette.js.map +0 -1
  376. package/dist/_members/primitives/lib/preview.js +0 -8
  377. package/dist/_members/primitives/lib/preview.js.map +0 -1
  378. package/dist/_members/primitives/lib/schema.js +0 -12
  379. package/dist/_members/primitives/lib/schema.js.map +0 -1
  380. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  381. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  382. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  383. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  384. package/dist/_members/primitives/lib/text/fill.js +0 -8
  385. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  386. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  387. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  388. package/dist/_members/primitives/lib/text/marker.js +0 -8
  389. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  390. package/dist/_members/primitives/lib/text/motion.js +0 -16
  391. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  392. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  393. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  394. package/dist/_members/primitives/lib/text/spec.js +0 -1
  395. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  396. package/dist/_members/primitives/lib/text/stage.js +0 -8
  397. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  398. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  399. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  400. package/dist/_members/primitives/lib/tokens.js +0 -24
  401. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  402. package/dist/_members/primitives/lib/types.js +0 -1
  403. package/dist/_members/primitives/lib/types.js.map +0 -1
  404. package/dist/_members/primitives/params-required.json +0 -153
  405. package/dist/_members/primitives/scenes/index.js +0 -25
  406. package/dist/_members/primitives/scenes/index.js.map +0 -1
  407. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  408. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  409. package/dist/_members/primitives/text/index.js +0 -57
  410. package/dist/_members/primitives/text/index.js.map +0 -1
  411. package/dist/_members/primitives/transitions/index.js +0 -67
  412. package/dist/_members/primitives/transitions/index.js.map +0 -1
  413. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  414. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  415. package/dist/_members/primitives/version-map.json +0 -105
  416. package/dist/_members/primitives/workspace.js +0 -60
  417. package/dist/_members/primitives/workspace.js.map +0 -1
  418. package/dist/chunk-7GISRVON.js +0 -14176
  419. package/dist/chunk-DIBOJJMU.js +0 -16838
  420. package/dist/chunk-EAUSEGB7.js +0 -420
  421. package/dist/chunk-FUWJOVVK.js +0 -3633
  422. package/dist/chunk-G75E7YA4.js +0 -11883
  423. package/dist/chunk-JCZQT7K3.js +0 -3266
  424. package/dist/chunk-KF5ETMKB.js +0 -544
  425. package/dist/chunk-NDKERSXY.js +0 -1296
  426. package/dist/chunk-V43Y7IE4.js +0 -3621
  427. package/dist/chunk-VIVQHIGZ.js +0 -4319
  428. package/dist/chunk-YA3OR2KK.js +0 -249
  429. package/dist/hls-HD4C5G6W.js +0 -33000
  430. package/dist/token-RGFIT24D.js +0 -69
  431. package/dist/token-util-GPLSGYVO.js +0 -5
  432. package/dist/vision_bundle-5Y376MAR.js +0 -4084
@@ -1,3621 +0,0 @@
1
- import {
2
- FLOORS,
3
- NEUTRAL_RAMP
4
- } from "./chunk-JF4JJAFP.js";
5
-
6
- // ../../node_modules/.pnpm/apca-w3@0.1.9/node_modules/apca-w3/src/apca-w3.js
7
- var SA98G = {
8
- mainTRC: 2.4,
9
- // 2.4 exponent for emulating actual monitor perception
10
- // For reverseAPCA
11
- get mainTRCencode() {
12
- return 1 / this.mainTRC;
13
- },
14
- // sRGB coefficients
15
- sRco: 0.2126729,
16
- sGco: 0.7151522,
17
- sBco: 0.072175,
18
- // G-4g constants for use with 2.4 exponent
19
- normBG: 0.56,
20
- normTXT: 0.57,
21
- revTXT: 0.62,
22
- revBG: 0.65,
23
- // G-4g Clamps and Scalers
24
- blkThrs: 0.022,
25
- blkClmp: 1.414,
26
- scaleBoW: 1.14,
27
- scaleWoB: 1.14,
28
- loBoWoffset: 0.027,
29
- loWoBoffset: 0.027,
30
- deltaYmin: 5e-4,
31
- loClip: 0.1,
32
- ///// MAGIC NUMBERS for UNCLAMP, for use with 0.022 & 1.414 /////
33
- // Magic Numbers for reverseAPCA
34
- mFactor: 1.9468554433171,
35
- get mFactInv() {
36
- return 1 / this.mFactor;
37
- },
38
- mOffsetIn: 0.0387393816571401,
39
- mExpAdj: 0.283343396420869,
40
- get mExp() {
41
- return this.mExpAdj / this.blkClmp;
42
- },
43
- mOffsetOut: 0.312865795870758
44
- };
45
- function APCAcontrast(txtY, bgY, places = -1) {
46
- const icp = [0, 1.1];
47
- if (isNaN(txtY) || isNaN(bgY) || Math.min(txtY, bgY) < icp[0] || Math.max(txtY, bgY) > icp[1]) {
48
- return 0;
49
- }
50
- ;
51
- let SAPC = 0;
52
- let outputContrast = 0;
53
- let polCat = "BoW";
54
- txtY = txtY > SA98G.blkThrs ? txtY : txtY + Math.pow(SA98G.blkThrs - txtY, SA98G.blkClmp);
55
- bgY = bgY > SA98G.blkThrs ? bgY : bgY + Math.pow(SA98G.blkThrs - bgY, SA98G.blkClmp);
56
- if (Math.abs(bgY - txtY) < SA98G.deltaYmin) {
57
- return 0;
58
- }
59
- if (bgY > txtY) {
60
- SAPC = (Math.pow(bgY, SA98G.normBG) - Math.pow(txtY, SA98G.normTXT)) * SA98G.scaleBoW;
61
- outputContrast = SAPC < SA98G.loClip ? 0 : SAPC - SA98G.loBoWoffset;
62
- } else {
63
- polCat = "WoB";
64
- SAPC = (Math.pow(bgY, SA98G.revBG) - Math.pow(txtY, SA98G.revTXT)) * SA98G.scaleWoB;
65
- outputContrast = SAPC > -SA98G.loClip ? 0 : SAPC + SA98G.loWoBoffset;
66
- }
67
- if (places < 0) {
68
- return outputContrast * 100;
69
- } else if (places == 0) {
70
- return Math.round(Math.abs(outputContrast) * 100) + "<sub>" + polCat + "</sub>";
71
- } else if (Number.isInteger(places)) {
72
- return (outputContrast * 100).toFixed(places);
73
- } else {
74
- return 0;
75
- }
76
- }
77
- function sRGBtoY(rgb2 = [0, 0, 0]) {
78
- function simpleExp(chan) {
79
- return Math.pow(chan / 255, SA98G.mainTRC);
80
- }
81
- ;
82
- return SA98G.sRco * simpleExp(rgb2[0]) + SA98G.sGco * simpleExp(rgb2[1]) + SA98G.sBco * simpleExp(rgb2[2]);
83
- }
84
-
85
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseNumber.js
86
- var parseNumber = (color, len) => {
87
- if (typeof color !== "number") return;
88
- if (len === 3) {
89
- return {
90
- mode: "rgb",
91
- r: (color >> 8 & 15 | color >> 4 & 240) / 255,
92
- g: (color >> 4 & 15 | color & 240) / 255,
93
- b: (color & 15 | color << 4 & 240) / 255
94
- };
95
- }
96
- if (len === 4) {
97
- return {
98
- mode: "rgb",
99
- r: (color >> 12 & 15 | color >> 8 & 240) / 255,
100
- g: (color >> 8 & 15 | color >> 4 & 240) / 255,
101
- b: (color >> 4 & 15 | color & 240) / 255,
102
- alpha: (color & 15 | color << 4 & 240) / 255
103
- };
104
- }
105
- if (len === 6) {
106
- return {
107
- mode: "rgb",
108
- r: (color >> 16 & 255) / 255,
109
- g: (color >> 8 & 255) / 255,
110
- b: (color & 255) / 255
111
- };
112
- }
113
- if (len === 8) {
114
- return {
115
- mode: "rgb",
116
- r: (color >> 24 & 255) / 255,
117
- g: (color >> 16 & 255) / 255,
118
- b: (color >> 8 & 255) / 255,
119
- alpha: (color & 255) / 255
120
- };
121
- }
122
- };
123
- var parseNumber_default = parseNumber;
124
-
125
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/colors/named.js
126
- var named = {
127
- aliceblue: 15792383,
128
- antiquewhite: 16444375,
129
- aqua: 65535,
130
- aquamarine: 8388564,
131
- azure: 15794175,
132
- beige: 16119260,
133
- bisque: 16770244,
134
- black: 0,
135
- blanchedalmond: 16772045,
136
- blue: 255,
137
- blueviolet: 9055202,
138
- brown: 10824234,
139
- burlywood: 14596231,
140
- cadetblue: 6266528,
141
- chartreuse: 8388352,
142
- chocolate: 13789470,
143
- coral: 16744272,
144
- cornflowerblue: 6591981,
145
- cornsilk: 16775388,
146
- crimson: 14423100,
147
- cyan: 65535,
148
- darkblue: 139,
149
- darkcyan: 35723,
150
- darkgoldenrod: 12092939,
151
- darkgray: 11119017,
152
- darkgreen: 25600,
153
- darkgrey: 11119017,
154
- darkkhaki: 12433259,
155
- darkmagenta: 9109643,
156
- darkolivegreen: 5597999,
157
- darkorange: 16747520,
158
- darkorchid: 10040012,
159
- darkred: 9109504,
160
- darksalmon: 15308410,
161
- darkseagreen: 9419919,
162
- darkslateblue: 4734347,
163
- darkslategray: 3100495,
164
- darkslategrey: 3100495,
165
- darkturquoise: 52945,
166
- darkviolet: 9699539,
167
- deeppink: 16716947,
168
- deepskyblue: 49151,
169
- dimgray: 6908265,
170
- dimgrey: 6908265,
171
- dodgerblue: 2003199,
172
- firebrick: 11674146,
173
- floralwhite: 16775920,
174
- forestgreen: 2263842,
175
- fuchsia: 16711935,
176
- gainsboro: 14474460,
177
- ghostwhite: 16316671,
178
- gold: 16766720,
179
- goldenrod: 14329120,
180
- gray: 8421504,
181
- green: 32768,
182
- greenyellow: 11403055,
183
- grey: 8421504,
184
- honeydew: 15794160,
185
- hotpink: 16738740,
186
- indianred: 13458524,
187
- indigo: 4915330,
188
- ivory: 16777200,
189
- khaki: 15787660,
190
- lavender: 15132410,
191
- lavenderblush: 16773365,
192
- lawngreen: 8190976,
193
- lemonchiffon: 16775885,
194
- lightblue: 11393254,
195
- lightcoral: 15761536,
196
- lightcyan: 14745599,
197
- lightgoldenrodyellow: 16448210,
198
- lightgray: 13882323,
199
- lightgreen: 9498256,
200
- lightgrey: 13882323,
201
- lightpink: 16758465,
202
- lightsalmon: 16752762,
203
- lightseagreen: 2142890,
204
- lightskyblue: 8900346,
205
- lightslategray: 7833753,
206
- lightslategrey: 7833753,
207
- lightsteelblue: 11584734,
208
- lightyellow: 16777184,
209
- lime: 65280,
210
- limegreen: 3329330,
211
- linen: 16445670,
212
- magenta: 16711935,
213
- maroon: 8388608,
214
- mediumaquamarine: 6737322,
215
- mediumblue: 205,
216
- mediumorchid: 12211667,
217
- mediumpurple: 9662683,
218
- mediumseagreen: 3978097,
219
- mediumslateblue: 8087790,
220
- mediumspringgreen: 64154,
221
- mediumturquoise: 4772300,
222
- mediumvioletred: 13047173,
223
- midnightblue: 1644912,
224
- mintcream: 16121850,
225
- mistyrose: 16770273,
226
- moccasin: 16770229,
227
- navajowhite: 16768685,
228
- navy: 128,
229
- oldlace: 16643558,
230
- olive: 8421376,
231
- olivedrab: 7048739,
232
- orange: 16753920,
233
- orangered: 16729344,
234
- orchid: 14315734,
235
- palegoldenrod: 15657130,
236
- palegreen: 10025880,
237
- paleturquoise: 11529966,
238
- palevioletred: 14381203,
239
- papayawhip: 16773077,
240
- peachpuff: 16767673,
241
- peru: 13468991,
242
- pink: 16761035,
243
- plum: 14524637,
244
- powderblue: 11591910,
245
- purple: 8388736,
246
- // Added in CSS Colors Level 4:
247
- // https://drafts.csswg.org/css-color/#changes-from-3
248
- rebeccapurple: 6697881,
249
- red: 16711680,
250
- rosybrown: 12357519,
251
- royalblue: 4286945,
252
- saddlebrown: 9127187,
253
- salmon: 16416882,
254
- sandybrown: 16032864,
255
- seagreen: 3050327,
256
- seashell: 16774638,
257
- sienna: 10506797,
258
- silver: 12632256,
259
- skyblue: 8900331,
260
- slateblue: 6970061,
261
- slategray: 7372944,
262
- slategrey: 7372944,
263
- snow: 16775930,
264
- springgreen: 65407,
265
- steelblue: 4620980,
266
- tan: 13808780,
267
- teal: 32896,
268
- thistle: 14204888,
269
- tomato: 16737095,
270
- turquoise: 4251856,
271
- violet: 15631086,
272
- wheat: 16113331,
273
- white: 16777215,
274
- whitesmoke: 16119285,
275
- yellow: 16776960,
276
- yellowgreen: 10145074
277
- };
278
- var named_default = named;
279
-
280
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseNamed.js
281
- var parseNamed = (color) => {
282
- return parseNumber_default(named_default[color.toLowerCase()], 6);
283
- };
284
- var parseNamed_default = parseNamed;
285
-
286
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseHex.js
287
- var hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;
288
- var parseHex = (color) => {
289
- let match;
290
- return (match = color.match(hex)) ? parseNumber_default(parseInt(match[1], 16), match[1].length) : void 0;
291
- };
292
- var parseHex_default = parseHex;
293
-
294
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/regex.js
295
- var num = "([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)";
296
- var num_none = `(?:${num}|none)`;
297
- var per = `${num}%`;
298
- var per_none = `(?:${num}%|none)`;
299
- var num_per = `(?:${num}%|${num})`;
300
- var num_per_none = `(?:${num}%|${num}|none)`;
301
- var hue = `(?:${num}(deg|grad|rad|turn)|${num})`;
302
- var hue_none = `(?:${num}(deg|grad|rad|turn)|${num}|none)`;
303
- var c = `\\s*,\\s*`;
304
- var rx_num_per_none = new RegExp("^" + num_per_none + "$");
305
-
306
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseRgbLegacy.js
307
- var rgb_num_old = new RegExp(
308
- `^rgba?\\(\\s*${num}${c}${num}${c}${num}\\s*(?:,\\s*${num_per}\\s*)?\\)$`
309
- );
310
- var rgb_per_old = new RegExp(
311
- `^rgba?\\(\\s*${per}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`
312
- );
313
- var parseRgbLegacy = (color) => {
314
- let res = { mode: "rgb" };
315
- let match;
316
- if (match = color.match(rgb_num_old)) {
317
- if (match[1] !== void 0) {
318
- res.r = match[1] / 255;
319
- }
320
- if (match[2] !== void 0) {
321
- res.g = match[2] / 255;
322
- }
323
- if (match[3] !== void 0) {
324
- res.b = match[3] / 255;
325
- }
326
- } else if (match = color.match(rgb_per_old)) {
327
- if (match[1] !== void 0) {
328
- res.r = match[1] / 100;
329
- }
330
- if (match[2] !== void 0) {
331
- res.g = match[2] / 100;
332
- }
333
- if (match[3] !== void 0) {
334
- res.b = match[3] / 100;
335
- }
336
- } else {
337
- return void 0;
338
- }
339
- if (match[4] !== void 0) {
340
- res.alpha = Math.max(0, Math.min(1, match[4] / 100));
341
- } else if (match[5] !== void 0) {
342
- res.alpha = Math.max(0, Math.min(1, +match[5]));
343
- }
344
- return res;
345
- };
346
- var parseRgbLegacy_default = parseRgbLegacy;
347
-
348
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/_prepare.js
349
- var prepare = (color, mode) => color === void 0 ? void 0 : typeof color !== "object" ? parse_default(color) : color.mode !== void 0 ? color : mode ? { ...color, mode } : void 0;
350
- var prepare_default = prepare;
351
-
352
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/converter.js
353
- var converter = (target_mode = "rgb") => (color) => (color = prepare_default(color, target_mode)) !== void 0 ? (
354
- // if the color's mode corresponds to our target mode
355
- color.mode === target_mode ? (
356
- // then just return the color
357
- color
358
- ) : (
359
- // otherwise check to see if we have a dedicated
360
- // converter for the target mode
361
- converters[color.mode][target_mode] ? (
362
- // and return its result...
363
- converters[color.mode][target_mode](color)
364
- ) : (
365
- // ...otherwise pass through RGB as an intermediary step.
366
- // if the target mode is RGB...
367
- target_mode === "rgb" ? (
368
- // just return the RGB
369
- converters[color.mode].rgb(color)
370
- ) : (
371
- // otherwise convert color.mode -> RGB -> target_mode
372
- converters.rgb[target_mode](converters[color.mode].rgb(color))
373
- )
374
- )
375
- )
376
- ) : void 0;
377
- var converter_default = converter;
378
-
379
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/modes.js
380
- var converters = {};
381
- var modes = {};
382
- var parsers = [];
383
- var colorProfiles = {};
384
- var identity = (v) => v;
385
- var useMode = (definition29) => {
386
- converters[definition29.mode] = {
387
- ...converters[definition29.mode],
388
- ...definition29.toMode
389
- };
390
- Object.keys(definition29.fromMode || {}).forEach((k4) => {
391
- if (!converters[k4]) {
392
- converters[k4] = {};
393
- }
394
- converters[k4][definition29.mode] = definition29.fromMode[k4];
395
- });
396
- if (!definition29.ranges) {
397
- definition29.ranges = {};
398
- }
399
- if (!definition29.difference) {
400
- definition29.difference = {};
401
- }
402
- definition29.channels.forEach((channel) => {
403
- if (definition29.ranges[channel] === void 0) {
404
- definition29.ranges[channel] = [0, 1];
405
- }
406
- if (!definition29.interpolate[channel]) {
407
- throw new Error(`Missing interpolator for: ${channel}`);
408
- }
409
- if (typeof definition29.interpolate[channel] === "function") {
410
- definition29.interpolate[channel] = {
411
- use: definition29.interpolate[channel]
412
- };
413
- }
414
- if (!definition29.interpolate[channel].fixup) {
415
- definition29.interpolate[channel].fixup = identity;
416
- }
417
- });
418
- modes[definition29.mode] = definition29;
419
- (definition29.parse || []).forEach((parser) => {
420
- useParser(parser, definition29.mode);
421
- });
422
- return converter_default(definition29.mode);
423
- };
424
- var getMode = (mode) => modes[mode];
425
- var useParser = (parser, mode) => {
426
- if (typeof parser === "string") {
427
- if (!mode) {
428
- throw new Error(`'mode' required when 'parser' is a string`);
429
- }
430
- colorProfiles[parser] = mode;
431
- } else if (typeof parser === "function") {
432
- if (parsers.indexOf(parser) < 0) {
433
- parsers.push(parser);
434
- }
435
- }
436
- };
437
-
438
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/parse.js
439
- var IdentStartCodePoint = /[^\x00-\x7F]|[a-zA-Z_]/;
440
- var IdentCodePoint = /[^\x00-\x7F]|[-\w]/;
441
- var Tok = {
442
- Function: "function",
443
- Ident: "ident",
444
- Number: "number",
445
- Percentage: "percentage",
446
- ParenClose: ")",
447
- None: "none",
448
- Hue: "hue",
449
- Alpha: "alpha"
450
- };
451
- var _i = 0;
452
- function is_num(chars) {
453
- let ch = chars[_i];
454
- let ch1 = chars[_i + 1];
455
- if (ch === "-" || ch === "+") {
456
- return /\d/.test(ch1) || ch1 === "." && /\d/.test(chars[_i + 2]);
457
- }
458
- if (ch === ".") {
459
- return /\d/.test(ch1);
460
- }
461
- return /\d/.test(ch);
462
- }
463
- function is_ident(chars) {
464
- if (_i >= chars.length) {
465
- return false;
466
- }
467
- let ch = chars[_i];
468
- if (IdentStartCodePoint.test(ch)) {
469
- return true;
470
- }
471
- if (ch === "-") {
472
- if (chars.length - _i < 2) {
473
- return false;
474
- }
475
- let ch1 = chars[_i + 1];
476
- if (ch1 === "-" || IdentStartCodePoint.test(ch1)) {
477
- return true;
478
- }
479
- return false;
480
- }
481
- return false;
482
- }
483
- var huenits = {
484
- deg: 1,
485
- rad: 180 / Math.PI,
486
- grad: 9 / 10,
487
- turn: 360
488
- };
489
- function num2(chars) {
490
- let value = "";
491
- if (chars[_i] === "-" || chars[_i] === "+") {
492
- value += chars[_i++];
493
- }
494
- value += digits(chars);
495
- if (chars[_i] === "." && /\d/.test(chars[_i + 1])) {
496
- value += chars[_i++] + digits(chars);
497
- }
498
- if (chars[_i] === "e" || chars[_i] === "E") {
499
- if ((chars[_i + 1] === "-" || chars[_i + 1] === "+") && /\d/.test(chars[_i + 2])) {
500
- value += chars[_i++] + chars[_i++] + digits(chars);
501
- } else if (/\d/.test(chars[_i + 1])) {
502
- value += chars[_i++] + digits(chars);
503
- }
504
- }
505
- if (is_ident(chars)) {
506
- let id = ident(chars);
507
- if (id === "deg" || id === "rad" || id === "turn" || id === "grad") {
508
- return { type: Tok.Hue, value: value * huenits[id] };
509
- }
510
- return void 0;
511
- }
512
- if (chars[_i] === "%") {
513
- _i++;
514
- return { type: Tok.Percentage, value: +value };
515
- }
516
- return { type: Tok.Number, value: +value };
517
- }
518
- function digits(chars) {
519
- let v = "";
520
- while (/\d/.test(chars[_i])) {
521
- v += chars[_i++];
522
- }
523
- return v;
524
- }
525
- function ident(chars) {
526
- let v = "";
527
- while (_i < chars.length && IdentCodePoint.test(chars[_i])) {
528
- v += chars[_i++];
529
- }
530
- return v;
531
- }
532
- function identlike(chars) {
533
- let v = ident(chars);
534
- if (chars[_i] === "(") {
535
- _i++;
536
- return { type: Tok.Function, value: v };
537
- }
538
- if (v === "none") {
539
- return { type: Tok.None, value: void 0 };
540
- }
541
- return { type: Tok.Ident, value: v };
542
- }
543
- function tokenize(str = "") {
544
- let chars = str.trim();
545
- let tokens = [];
546
- let ch;
547
- _i = 0;
548
- while (_i < chars.length) {
549
- ch = chars[_i++];
550
- if (ch === "\n" || ch === " " || ch === " ") {
551
- while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) {
552
- _i++;
553
- }
554
- continue;
555
- }
556
- if (ch === ",") {
557
- return void 0;
558
- }
559
- if (ch === ")") {
560
- tokens.push({ type: Tok.ParenClose });
561
- continue;
562
- }
563
- if (ch === "+") {
564
- _i--;
565
- if (is_num(chars)) {
566
- tokens.push(num2(chars));
567
- continue;
568
- }
569
- return void 0;
570
- }
571
- if (ch === "-") {
572
- _i--;
573
- if (is_num(chars)) {
574
- tokens.push(num2(chars));
575
- continue;
576
- }
577
- if (is_ident(chars)) {
578
- tokens.push({ type: Tok.Ident, value: ident(chars) });
579
- continue;
580
- }
581
- return void 0;
582
- }
583
- if (ch === ".") {
584
- _i--;
585
- if (is_num(chars)) {
586
- tokens.push(num2(chars));
587
- continue;
588
- }
589
- return void 0;
590
- }
591
- if (ch === "/") {
592
- while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) {
593
- _i++;
594
- }
595
- let alpha;
596
- if (is_num(chars)) {
597
- alpha = num2(chars);
598
- if (alpha.type !== Tok.Hue) {
599
- tokens.push({ type: Tok.Alpha, value: alpha });
600
- continue;
601
- }
602
- }
603
- if (is_ident(chars)) {
604
- if (ident(chars) === "none") {
605
- tokens.push({
606
- type: Tok.Alpha,
607
- value: { type: Tok.None, value: void 0 }
608
- });
609
- continue;
610
- }
611
- }
612
- return void 0;
613
- }
614
- if (/\d/.test(ch)) {
615
- _i--;
616
- tokens.push(num2(chars));
617
- continue;
618
- }
619
- if (IdentStartCodePoint.test(ch)) {
620
- _i--;
621
- tokens.push(identlike(chars));
622
- continue;
623
- }
624
- return void 0;
625
- }
626
- return tokens;
627
- }
628
- function parseColorSyntax(tokens) {
629
- tokens._i = 0;
630
- let token = tokens[tokens._i++];
631
- if (!token || token.type !== Tok.Function || token.value !== "color") {
632
- return void 0;
633
- }
634
- token = tokens[tokens._i++];
635
- if (token.type !== Tok.Ident) {
636
- return void 0;
637
- }
638
- const mode = colorProfiles[token.value];
639
- if (!mode) {
640
- return void 0;
641
- }
642
- const res = { mode };
643
- const coords = consumeCoords(tokens, false);
644
- if (!coords) {
645
- return void 0;
646
- }
647
- const channels = getMode(mode).channels;
648
- for (let ii = 0, c2, ch; ii < channels.length; ii++) {
649
- c2 = coords[ii];
650
- ch = channels[ii];
651
- if (c2.type !== Tok.None) {
652
- res[ch] = c2.type === Tok.Number ? c2.value : c2.value / 100;
653
- if (ch === "alpha") {
654
- res[ch] = Math.max(0, Math.min(1, res[ch]));
655
- }
656
- }
657
- }
658
- return res;
659
- }
660
- function consumeCoords(tokens, includeHue) {
661
- const coords = [];
662
- let token;
663
- while (tokens._i < tokens.length) {
664
- token = tokens[tokens._i++];
665
- if (token.type === Tok.None || token.type === Tok.Number || token.type === Tok.Alpha || token.type === Tok.Percentage || includeHue && token.type === Tok.Hue) {
666
- coords.push(token);
667
- continue;
668
- }
669
- if (token.type === Tok.ParenClose) {
670
- if (tokens._i < tokens.length) {
671
- return void 0;
672
- }
673
- continue;
674
- }
675
- return void 0;
676
- }
677
- if (coords.length < 3 || coords.length > 4) {
678
- return void 0;
679
- }
680
- if (coords.length === 4) {
681
- if (coords[3].type !== Tok.Alpha) {
682
- return void 0;
683
- }
684
- coords[3] = coords[3].value;
685
- }
686
- if (coords.length === 3) {
687
- coords.push({ type: Tok.None, value: void 0 });
688
- }
689
- return coords.every((c2) => c2.type !== Tok.Alpha) ? coords : void 0;
690
- }
691
- function parseModernSyntax(tokens, includeHue) {
692
- tokens._i = 0;
693
- let token = tokens[tokens._i++];
694
- if (!token || token.type !== Tok.Function) {
695
- return void 0;
696
- }
697
- let coords = consumeCoords(tokens, includeHue);
698
- if (!coords) {
699
- return void 0;
700
- }
701
- coords.unshift(token.value);
702
- return coords;
703
- }
704
- var parse = (color) => {
705
- if (typeof color !== "string") {
706
- return void 0;
707
- }
708
- const tokens = tokenize(color);
709
- const parsed = tokens ? parseModernSyntax(tokens, true) : void 0;
710
- let result = void 0;
711
- let i = 0;
712
- let len = parsers.length;
713
- while (i < len) {
714
- if ((result = parsers[i++](color, parsed)) !== void 0) {
715
- return result;
716
- }
717
- }
718
- return tokens ? parseColorSyntax(tokens) : void 0;
719
- };
720
- var parse_default = parse;
721
-
722
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseRgb.js
723
- function parseRgb(color, parsed) {
724
- if (!parsed || parsed[0] !== "rgb" && parsed[0] !== "rgba") {
725
- return void 0;
726
- }
727
- const res = { mode: "rgb" };
728
- const [, r, g, b, alpha] = parsed;
729
- if (r.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) {
730
- return void 0;
731
- }
732
- if (r.type !== Tok.None) {
733
- res.r = r.type === Tok.Number ? r.value / 255 : r.value / 100;
734
- }
735
- if (g.type !== Tok.None) {
736
- res.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;
737
- }
738
- if (b.type !== Tok.None) {
739
- res.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;
740
- }
741
- if (alpha.type !== Tok.None) {
742
- res.alpha = Math.min(
743
- 1,
744
- Math.max(
745
- 0,
746
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
747
- )
748
- );
749
- }
750
- return res;
751
- }
752
- var parseRgb_default = parseRgb;
753
-
754
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/parseTransparent.js
755
- var parseTransparent = (c2) => c2 === "transparent" ? { mode: "rgb", r: 0, g: 0, b: 0, alpha: 0 } : void 0;
756
- var parseTransparent_default = parseTransparent;
757
-
758
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/lerp.js
759
- var lerp = (a, b, t) => a + t * (b - a);
760
-
761
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/piecewise.js
762
- var get_classes = (arr) => {
763
- let classes = [];
764
- for (let i = 0; i < arr.length - 1; i++) {
765
- let a = arr[i];
766
- let b = arr[i + 1];
767
- if (a === void 0 && b === void 0) {
768
- classes.push(void 0);
769
- } else if (a !== void 0 && b !== void 0) {
770
- classes.push([a, b]);
771
- } else {
772
- classes.push(a !== void 0 ? [a, a] : [b, b]);
773
- }
774
- }
775
- return classes;
776
- };
777
- var interpolatorPiecewise = (interpolator) => (arr) => {
778
- let classes = get_classes(arr);
779
- return (t) => {
780
- let cls = t * classes.length;
781
- let idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);
782
- let pair = classes[idx];
783
- return pair === void 0 ? void 0 : interpolator(pair[0], pair[1], cls - idx);
784
- };
785
- };
786
-
787
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/interpolate/linear.js
788
- var interpolatorLinear = interpolatorPiecewise(lerp);
789
-
790
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/fixup/alpha.js
791
- var fixupAlpha = (arr) => {
792
- let some_defined = false;
793
- let res = arr.map((v) => {
794
- if (v !== void 0) {
795
- some_defined = true;
796
- return v;
797
- }
798
- return 1;
799
- });
800
- return some_defined ? res : arr;
801
- };
802
-
803
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rgb/definition.js
804
- var definition = {
805
- mode: "rgb",
806
- channels: ["r", "g", "b", "alpha"],
807
- parse: [
808
- parseRgb_default,
809
- parseHex_default,
810
- parseRgbLegacy_default,
811
- parseNamed_default,
812
- parseTransparent_default,
813
- "srgb"
814
- ],
815
- serialize: "srgb",
816
- interpolate: {
817
- r: interpolatorLinear,
818
- g: interpolatorLinear,
819
- b: interpolatorLinear,
820
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
821
- },
822
- gamut: true,
823
- white: { r: 1, g: 1, b: 1 },
824
- black: { r: 0, g: 0, b: 0 }
825
- };
826
- var definition_default = definition;
827
-
828
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/convertA98ToXyz65.js
829
- var linearize = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
830
- var convertA98ToXyz65 = (a982) => {
831
- let r = linearize(a982.r);
832
- let g = linearize(a982.g);
833
- let b = linearize(a982.b);
834
- let res = {
835
- mode: "xyz65",
836
- x: 0.5766690429101305 * r + 0.1855582379065463 * g + 0.1882286462349947 * b,
837
- y: 0.297344975250536 * r + 0.6273635662554661 * g + 0.0752914584939979 * b,
838
- z: 0.0270313613864123 * r + 0.0706888525358272 * g + 0.9913375368376386 * b
839
- };
840
- if (a982.alpha !== void 0) {
841
- res.alpha = a982.alpha;
842
- }
843
- return res;
844
- };
845
- var convertA98ToXyz65_default = convertA98ToXyz65;
846
-
847
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/convertXyz65ToA98.js
848
- var gamma = (v) => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);
849
- var convertXyz65ToA98 = ({ x, y, z, alpha }) => {
850
- if (x === void 0) x = 0;
851
- if (y === void 0) y = 0;
852
- if (z === void 0) z = 0;
853
- let res = {
854
- mode: "a98",
855
- r: gamma(
856
- x * 2.0415879038107465 - y * 0.5650069742788597 - 0.3447313507783297 * z
857
- ),
858
- g: gamma(
859
- x * -0.9692436362808798 + y * 1.8759675015077206 + 0.0415550574071756 * z
860
- ),
861
- b: gamma(
862
- x * 0.0134442806320312 - y * 0.1183623922310184 + 1.0151749943912058 * z
863
- )
864
- };
865
- if (alpha !== void 0) {
866
- res.alpha = alpha;
867
- }
868
- return res;
869
- };
870
- var convertXyz65ToA98_default = convertXyz65ToA98;
871
-
872
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/convertRgbToLrgb.js
873
- var fn = (c2 = 0) => {
874
- const abs2 = Math.abs(c2);
875
- if (abs2 <= 0.04045) {
876
- return c2 / 12.92;
877
- }
878
- return (Math.sign(c2) || 1) * Math.pow((abs2 + 0.055) / 1.055, 2.4);
879
- };
880
- var convertRgbToLrgb = ({ r, g, b, alpha }) => {
881
- let res = {
882
- mode: "lrgb",
883
- r: fn(r),
884
- g: fn(g),
885
- b: fn(b)
886
- };
887
- if (alpha !== void 0) res.alpha = alpha;
888
- return res;
889
- };
890
- var convertRgbToLrgb_default = convertRgbToLrgb;
891
-
892
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertRgbToXyz65.js
893
- var convertRgbToXyz65 = (rgb2) => {
894
- let { r, g, b, alpha } = convertRgbToLrgb_default(rgb2);
895
- let res = {
896
- mode: "xyz65",
897
- x: 0.4123907992659593 * r + 0.357584339383878 * g + 0.1804807884018343 * b,
898
- y: 0.2126390058715102 * r + 0.715168678767756 * g + 0.0721923153607337 * b,
899
- z: 0.0193308187155918 * r + 0.119194779794626 * g + 0.9505321522496607 * b
900
- };
901
- if (alpha !== void 0) {
902
- res.alpha = alpha;
903
- }
904
- return res;
905
- };
906
- var convertRgbToXyz65_default = convertRgbToXyz65;
907
-
908
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/convertLrgbToRgb.js
909
- var fn2 = (c2 = 0) => {
910
- const abs2 = Math.abs(c2);
911
- if (abs2 > 31308e-7) {
912
- return (Math.sign(c2) || 1) * (1.055 * Math.pow(abs2, 1 / 2.4) - 0.055);
913
- }
914
- return c2 * 12.92;
915
- };
916
- var convertLrgbToRgb = ({ r, g, b, alpha }, mode = "rgb") => {
917
- let res = {
918
- mode,
919
- r: fn2(r),
920
- g: fn2(g),
921
- b: fn2(b)
922
- };
923
- if (alpha !== void 0) res.alpha = alpha;
924
- return res;
925
- };
926
- var convertLrgbToRgb_default = convertLrgbToRgb;
927
-
928
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToRgb.js
929
- var convertXyz65ToRgb = ({ x, y, z, alpha }) => {
930
- if (x === void 0) x = 0;
931
- if (y === void 0) y = 0;
932
- if (z === void 0) z = 0;
933
- let res = convertLrgbToRgb_default({
934
- r: x * 3.2409699419045226 - y * 1.537383177570094 - 0.4986107602930034 * z,
935
- g: x * -0.9692436362808796 + y * 1.8759675015077204 + 0.0415550574071756 * z,
936
- b: x * 0.0556300796969936 - y * 0.2039769588889765 + 1.0569715142428784 * z
937
- });
938
- if (alpha !== void 0) {
939
- res.alpha = alpha;
940
- }
941
- return res;
942
- };
943
- var convertXyz65ToRgb_default = convertXyz65ToRgb;
944
-
945
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/a98/definition.js
946
- var definition2 = {
947
- ...definition_default,
948
- mode: "a98",
949
- parse: ["a98-rgb"],
950
- serialize: "a98-rgb",
951
- fromMode: {
952
- rgb: (color) => convertXyz65ToA98_default(convertRgbToXyz65_default(color)),
953
- xyz65: convertXyz65ToA98_default
954
- },
955
- toMode: {
956
- rgb: (color) => convertXyz65ToRgb_default(convertA98ToXyz65_default(color)),
957
- xyz65: convertA98ToXyz65_default
958
- }
959
- };
960
- var definition_default2 = definition2;
961
-
962
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/normalizeHue.js
963
- var normalizeHue = (hue3) => (hue3 = hue3 % 360) < 0 ? hue3 + 360 : hue3;
964
- var normalizeHue_default = normalizeHue;
965
-
966
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/fixup/hue.js
967
- var hue2 = (hues, fn5) => {
968
- return hues.map((hue3, idx, arr) => {
969
- if (hue3 === void 0) {
970
- return hue3;
971
- }
972
- let normalized = normalizeHue_default(hue3);
973
- if (idx === 0 || hues[idx - 1] === void 0) {
974
- return normalized;
975
- }
976
- return fn5(normalized - normalizeHue_default(arr[idx - 1]));
977
- }).reduce((acc, curr) => {
978
- if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
979
- acc.push(curr);
980
- return acc;
981
- }
982
- acc.push(curr + acc[acc.length - 1]);
983
- return acc;
984
- }, []);
985
- };
986
- var fixupHueShorter = (arr) => hue2(arr, (d) => Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d));
987
-
988
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/constants.js
989
- var M = [-0.14861, 1.78277, -0.29227, -0.90649, 1.97294, 0];
990
- var degToRad = Math.PI / 180;
991
- var radToDeg = 180 / Math.PI;
992
-
993
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js
994
- var DE = M[3] * M[4];
995
- var BE = M[1] * M[4];
996
- var BCAD = M[1] * M[2] - M[0] * M[3];
997
- var convertRgbToCubehelix = ({ r, g, b, alpha }) => {
998
- if (r === void 0) r = 0;
999
- if (g === void 0) g = 0;
1000
- if (b === void 0) b = 0;
1001
- let l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);
1002
- let x = b - l;
1003
- let y = (M[4] * (g - l) - M[2] * x) / M[3];
1004
- let res = {
1005
- mode: "cubehelix",
1006
- l,
1007
- s: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))
1008
- };
1009
- if (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;
1010
- if (alpha !== void 0) res.alpha = alpha;
1011
- return res;
1012
- };
1013
- var convertRgbToCubehelix_default = convertRgbToCubehelix;
1014
-
1015
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/convertCubehelixToRgb.js
1016
- var convertCubehelixToRgb = ({ h, s, l, alpha }) => {
1017
- let res = { mode: "rgb" };
1018
- h = (h === void 0 ? 0 : h + 120) * degToRad;
1019
- if (l === void 0) l = 0;
1020
- let amp = s === void 0 ? 0 : s * l * (1 - l);
1021
- let cosh = Math.cos(h);
1022
- let sinh = Math.sin(h);
1023
- res.r = l + amp * (M[0] * cosh + M[1] * sinh);
1024
- res.g = l + amp * (M[2] * cosh + M[3] * sinh);
1025
- res.b = l + amp * (M[4] * cosh + M[5] * sinh);
1026
- if (alpha !== void 0) res.alpha = alpha;
1027
- return res;
1028
- };
1029
- var convertCubehelixToRgb_default = convertCubehelixToRgb;
1030
-
1031
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/difference.js
1032
- var differenceHueSaturation = (std, smp) => {
1033
- if (std.h === void 0 || smp.h === void 0 || !std.s || !smp.s) {
1034
- return 0;
1035
- }
1036
- let std_h = normalizeHue_default(std.h);
1037
- let smp_h = normalizeHue_default(smp.h);
1038
- let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
1039
- return 2 * Math.sqrt(std.s * smp.s) * dH;
1040
- };
1041
- var differenceHueNaive = (std, smp) => {
1042
- if (std.h === void 0 || smp.h === void 0) {
1043
- return 0;
1044
- }
1045
- let std_h = normalizeHue_default(std.h);
1046
- let smp_h = normalizeHue_default(smp.h);
1047
- if (Math.abs(smp_h - std_h) > 180) {
1048
- return std_h - (smp_h - 360 * Math.sign(smp_h - std_h));
1049
- }
1050
- return smp_h - std_h;
1051
- };
1052
- var differenceHueChroma = (std, smp) => {
1053
- if (std.h === void 0 || smp.h === void 0 || !std.c || !smp.c) {
1054
- return 0;
1055
- }
1056
- let std_h = normalizeHue_default(std.h);
1057
- let smp_h = normalizeHue_default(smp.h);
1058
- let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
1059
- return 2 * Math.sqrt(std.c * smp.c) * dH;
1060
- };
1061
-
1062
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/average.js
1063
- var averageAngle = (val) => {
1064
- let sum = val.reduce(
1065
- (sum2, val2) => {
1066
- if (val2 !== void 0) {
1067
- let rad = val2 * Math.PI / 180;
1068
- sum2.sin += Math.sin(rad);
1069
- sum2.cos += Math.cos(rad);
1070
- }
1071
- return sum2;
1072
- },
1073
- { sin: 0, cos: 0 }
1074
- );
1075
- let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
1076
- return angle < 0 ? 360 + angle : angle;
1077
- };
1078
-
1079
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/cubehelix/definition.js
1080
- var definition3 = {
1081
- mode: "cubehelix",
1082
- channels: ["h", "s", "l", "alpha"],
1083
- parse: ["--cubehelix"],
1084
- serialize: "--cubehelix",
1085
- ranges: {
1086
- h: [0, 360],
1087
- s: [0, 4.614],
1088
- l: [0, 1]
1089
- },
1090
- fromMode: {
1091
- rgb: convertRgbToCubehelix_default
1092
- },
1093
- toMode: {
1094
- rgb: convertCubehelixToRgb_default
1095
- },
1096
- interpolate: {
1097
- h: {
1098
- use: interpolatorLinear,
1099
- fixup: fixupHueShorter
1100
- },
1101
- s: interpolatorLinear,
1102
- l: interpolatorLinear,
1103
- alpha: {
1104
- use: interpolatorLinear,
1105
- fixup: fixupAlpha
1106
- }
1107
- },
1108
- difference: {
1109
- h: differenceHueSaturation
1110
- },
1111
- average: {
1112
- h: averageAngle
1113
- }
1114
- };
1115
- var definition_default3 = definition3;
1116
-
1117
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/convertLabToLch.js
1118
- var convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
1119
- if (a === void 0) a = 0;
1120
- if (b === void 0) b = 0;
1121
- let c2 = Math.sqrt(a * a + b * b);
1122
- let res = { mode, l, c: c2 };
1123
- if (c2) res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
1124
- if (alpha !== void 0) res.alpha = alpha;
1125
- return res;
1126
- };
1127
- var convertLabToLch_default = convertLabToLch;
1128
-
1129
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/convertLchToLab.js
1130
- var convertLchToLab = ({ l, c: c2, h, alpha }, mode = "lab") => {
1131
- if (h === void 0) h = 0;
1132
- let res = {
1133
- mode,
1134
- l,
1135
- a: c2 ? c2 * Math.cos(h / 180 * Math.PI) : 0,
1136
- b: c2 ? c2 * Math.sin(h / 180 * Math.PI) : 0
1137
- };
1138
- if (alpha !== void 0) res.alpha = alpha;
1139
- return res;
1140
- };
1141
- var convertLchToLab_default = convertLchToLab;
1142
-
1143
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/constants.js
1144
- var k = Math.pow(29, 3) / Math.pow(3, 3);
1145
- var e = Math.pow(6, 3) / Math.pow(29, 3);
1146
-
1147
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/constants.js
1148
- var D50 = {
1149
- X: 0.3457 / 0.3585,
1150
- Y: 1,
1151
- Z: (1 - 0.3457 - 0.3585) / 0.3585
1152
- };
1153
- var D65 = {
1154
- X: 0.3127 / 0.329,
1155
- Y: 1,
1156
- Z: (1 - 0.3127 - 0.329) / 0.329
1157
- };
1158
- var k2 = Math.pow(29, 3) / Math.pow(3, 3);
1159
- var e2 = Math.pow(6, 3) / Math.pow(29, 3);
1160
-
1161
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToXyz65.js
1162
- var fn3 = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
1163
- var convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
1164
- if (l === void 0) l = 0;
1165
- if (a === void 0) a = 0;
1166
- if (b === void 0) b = 0;
1167
- let fy = (l + 16) / 116;
1168
- let fx = a / 500 + fy;
1169
- let fz = fy - b / 200;
1170
- let res = {
1171
- mode: "xyz65",
1172
- x: fn3(fx) * D65.X,
1173
- y: fn3(fy) * D65.Y,
1174
- z: fn3(fz) * D65.Z
1175
- };
1176
- if (alpha !== void 0) {
1177
- res.alpha = alpha;
1178
- }
1179
- return res;
1180
- };
1181
- var convertLab65ToXyz65_default = convertLab65ToXyz65;
1182
-
1183
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToRgb.js
1184
- var convertLab65ToRgb = (lab2) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab2));
1185
- var convertLab65ToRgb_default = convertLab65ToRgb;
1186
-
1187
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertXyz65ToLab65.js
1188
- var f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
1189
- var convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
1190
- if (x === void 0) x = 0;
1191
- if (y === void 0) y = 0;
1192
- if (z === void 0) z = 0;
1193
- let f0 = f(x / D65.X);
1194
- let f1 = f(y / D65.Y);
1195
- let f22 = f(z / D65.Z);
1196
- let res = {
1197
- mode: "lab65",
1198
- l: 116 * f1 - 16,
1199
- a: 500 * (f0 - f1),
1200
- b: 200 * (f1 - f22)
1201
- };
1202
- if (alpha !== void 0) {
1203
- res.alpha = alpha;
1204
- }
1205
- return res;
1206
- };
1207
- var convertXyz65ToLab65_default = convertXyz65ToLab65;
1208
-
1209
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/convertRgbToLab65.js
1210
- var convertRgbToLab65 = (rgb2) => {
1211
- let res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb2));
1212
- if (rgb2.r === rgb2.b && rgb2.b === rgb2.g) {
1213
- res.a = res.b = 0;
1214
- }
1215
- return res;
1216
- };
1217
- var convertRgbToLab65_default = convertRgbToLab65;
1218
-
1219
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/constants.js
1220
- var kE = 1;
1221
- var kCH = 1;
1222
- var \u03B8 = 26 / 180 * Math.PI;
1223
- var cos\u03B8 = Math.cos(\u03B8);
1224
- var sin\u03B8 = Math.sin(\u03B8);
1225
- var factor = 100 / Math.log(139 / 100);
1226
-
1227
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/convertDlchToLab65.js
1228
- var convertDlchToLab65 = ({ l, c: c2, h, alpha }) => {
1229
- if (l === void 0) l = 0;
1230
- if (c2 === void 0) c2 = 0;
1231
- if (h === void 0) h = 0;
1232
- let res = {
1233
- mode: "lab65",
1234
- l: (Math.exp(l * kE / factor) - 1) / 39e-4
1235
- };
1236
- let G = (Math.exp(0.0435 * c2 * kCH * kE) - 1) / 0.075;
1237
- let e4 = G * Math.cos(h / 180 * Math.PI - \u03B8);
1238
- let f3 = G * Math.sin(h / 180 * Math.PI - \u03B8);
1239
- res.a = e4 * cos\u03B8 - f3 / 0.83 * sin\u03B8;
1240
- res.b = e4 * sin\u03B8 + f3 / 0.83 * cos\u03B8;
1241
- if (alpha !== void 0) res.alpha = alpha;
1242
- return res;
1243
- };
1244
- var convertDlchToLab65_default = convertDlchToLab65;
1245
-
1246
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/convertLab65ToDlch.js
1247
- var convertLab65ToDlch = ({ l, a, b, alpha }) => {
1248
- if (l === void 0) l = 0;
1249
- if (a === void 0) a = 0;
1250
- if (b === void 0) b = 0;
1251
- let e4 = a * cos\u03B8 + b * sin\u03B8;
1252
- let f3 = 0.83 * (b * cos\u03B8 - a * sin\u03B8);
1253
- let G = Math.sqrt(e4 * e4 + f3 * f3);
1254
- let res = {
1255
- mode: "dlch",
1256
- l: factor / kE * Math.log(1 + 39e-4 * l),
1257
- c: Math.log(1 + 0.075 * G) / (0.0435 * kCH * kE)
1258
- };
1259
- if (res.c) {
1260
- res.h = normalizeHue_default((Math.atan2(f3, e4) + \u03B8) / Math.PI * 180);
1261
- }
1262
- if (alpha !== void 0) res.alpha = alpha;
1263
- return res;
1264
- };
1265
- var convertLab65ToDlch_default = convertLab65ToDlch;
1266
-
1267
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlab/definition.js
1268
- var convertDlabToLab65 = (c2) => convertDlchToLab65_default(convertLabToLch_default(c2, "dlch"));
1269
- var convertLab65ToDlab = (c2) => convertLchToLab_default(convertLab65ToDlch_default(c2), "dlab");
1270
- var definition4 = {
1271
- mode: "dlab",
1272
- parse: ["--din99o-lab"],
1273
- serialize: "--din99o-lab",
1274
- toMode: {
1275
- lab65: convertDlabToLab65,
1276
- rgb: (c2) => convertLab65ToRgb_default(convertDlabToLab65(c2))
1277
- },
1278
- fromMode: {
1279
- lab65: convertLab65ToDlab,
1280
- rgb: (c2) => convertLab65ToDlab(convertRgbToLab65_default(c2))
1281
- },
1282
- channels: ["l", "a", "b", "alpha"],
1283
- ranges: {
1284
- l: [0, 100],
1285
- a: [-40.09, 45.501],
1286
- b: [-40.469, 44.344]
1287
- },
1288
- interpolate: {
1289
- l: interpolatorLinear,
1290
- a: interpolatorLinear,
1291
- b: interpolatorLinear,
1292
- alpha: {
1293
- use: interpolatorLinear,
1294
- fixup: fixupAlpha
1295
- }
1296
- }
1297
- };
1298
- var definition_default4 = definition4;
1299
-
1300
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/dlch/definition.js
1301
- var definition5 = {
1302
- mode: "dlch",
1303
- parse: ["--din99o-lch"],
1304
- serialize: "--din99o-lch",
1305
- toMode: {
1306
- lab65: convertDlchToLab65_default,
1307
- dlab: (c2) => convertLchToLab_default(c2, "dlab"),
1308
- rgb: (c2) => convertLab65ToRgb_default(convertDlchToLab65_default(c2))
1309
- },
1310
- fromMode: {
1311
- lab65: convertLab65ToDlch_default,
1312
- dlab: (c2) => convertLabToLch_default(c2, "dlch"),
1313
- rgb: (c2) => convertLab65ToDlch_default(convertRgbToLab65_default(c2))
1314
- },
1315
- channels: ["l", "c", "h", "alpha"],
1316
- ranges: {
1317
- l: [0, 100],
1318
- c: [0, 51.484],
1319
- h: [0, 360]
1320
- },
1321
- interpolate: {
1322
- l: interpolatorLinear,
1323
- c: interpolatorLinear,
1324
- h: {
1325
- use: interpolatorLinear,
1326
- fixup: fixupHueShorter
1327
- },
1328
- alpha: {
1329
- use: interpolatorLinear,
1330
- fixup: fixupAlpha
1331
- }
1332
- },
1333
- difference: {
1334
- h: differenceHueChroma
1335
- },
1336
- average: {
1337
- h: averageAngle
1338
- }
1339
- };
1340
- var definition_default5 = definition5;
1341
-
1342
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/convertHsiToRgb.js
1343
- function convertHsiToRgb({ h, s, i, alpha }) {
1344
- h = normalizeHue_default(h !== void 0 ? h : 0);
1345
- if (s === void 0) s = 0;
1346
- if (i === void 0) i = 0;
1347
- let f3 = Math.abs(h / 60 % 2 - 1);
1348
- let res;
1349
- switch (Math.floor(h / 60)) {
1350
- case 0:
1351
- res = {
1352
- r: i * (1 + s * (3 / (2 - f3) - 1)),
1353
- g: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1)),
1354
- b: i * (1 - s)
1355
- };
1356
- break;
1357
- case 1:
1358
- res = {
1359
- r: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1)),
1360
- g: i * (1 + s * (3 / (2 - f3) - 1)),
1361
- b: i * (1 - s)
1362
- };
1363
- break;
1364
- case 2:
1365
- res = {
1366
- r: i * (1 - s),
1367
- g: i * (1 + s * (3 / (2 - f3) - 1)),
1368
- b: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1))
1369
- };
1370
- break;
1371
- case 3:
1372
- res = {
1373
- r: i * (1 - s),
1374
- g: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1)),
1375
- b: i * (1 + s * (3 / (2 - f3) - 1))
1376
- };
1377
- break;
1378
- case 4:
1379
- res = {
1380
- r: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1)),
1381
- g: i * (1 - s),
1382
- b: i * (1 + s * (3 / (2 - f3) - 1))
1383
- };
1384
- break;
1385
- case 5:
1386
- res = {
1387
- r: i * (1 + s * (3 / (2 - f3) - 1)),
1388
- g: i * (1 - s),
1389
- b: i * (1 + s * (3 * (1 - f3) / (2 - f3) - 1))
1390
- };
1391
- break;
1392
- default:
1393
- res = { r: i * (1 - s), g: i * (1 - s), b: i * (1 - s) };
1394
- }
1395
- res.mode = "rgb";
1396
- if (alpha !== void 0) res.alpha = alpha;
1397
- return res;
1398
- }
1399
-
1400
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/convertRgbToHsi.js
1401
- function convertRgbToHsi({ r, g, b, alpha }) {
1402
- if (r === void 0) r = 0;
1403
- if (g === void 0) g = 0;
1404
- if (b === void 0) b = 0;
1405
- let M3 = Math.max(r, g, b), m = Math.min(r, g, b);
1406
- let res = {
1407
- mode: "hsi",
1408
- s: r + g + b === 0 ? 0 : 1 - 3 * m / (r + g + b),
1409
- i: (r + g + b) / 3
1410
- };
1411
- if (M3 - m !== 0)
1412
- res.h = (M3 === r ? (g - b) / (M3 - m) + (g < b) * 6 : M3 === g ? (b - r) / (M3 - m) + 2 : (r - g) / (M3 - m) + 4) * 60;
1413
- if (alpha !== void 0) res.alpha = alpha;
1414
- return res;
1415
- }
1416
-
1417
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsi/definition.js
1418
- var definition6 = {
1419
- mode: "hsi",
1420
- toMode: {
1421
- rgb: convertHsiToRgb
1422
- },
1423
- parse: ["--hsi"],
1424
- serialize: "--hsi",
1425
- fromMode: {
1426
- rgb: convertRgbToHsi
1427
- },
1428
- channels: ["h", "s", "i", "alpha"],
1429
- ranges: {
1430
- h: [0, 360]
1431
- },
1432
- gamut: "rgb",
1433
- interpolate: {
1434
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
1435
- s: interpolatorLinear,
1436
- i: interpolatorLinear,
1437
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
1438
- },
1439
- difference: {
1440
- h: differenceHueSaturation
1441
- },
1442
- average: {
1443
- h: averageAngle
1444
- }
1445
- };
1446
- var definition_default6 = definition6;
1447
-
1448
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/convertHslToRgb.js
1449
- function convertHslToRgb({ h, s, l, alpha }) {
1450
- h = normalizeHue_default(h !== void 0 ? h : 0);
1451
- if (s === void 0) s = 0;
1452
- if (l === void 0) l = 0;
1453
- let m1 = l + s * (l < 0.5 ? l : 1 - l);
1454
- let m2 = m1 - (m1 - l) * 2 * Math.abs(h / 60 % 2 - 1);
1455
- let res;
1456
- switch (Math.floor(h / 60)) {
1457
- case 0:
1458
- res = { r: m1, g: m2, b: 2 * l - m1 };
1459
- break;
1460
- case 1:
1461
- res = { r: m2, g: m1, b: 2 * l - m1 };
1462
- break;
1463
- case 2:
1464
- res = { r: 2 * l - m1, g: m1, b: m2 };
1465
- break;
1466
- case 3:
1467
- res = { r: 2 * l - m1, g: m2, b: m1 };
1468
- break;
1469
- case 4:
1470
- res = { r: m2, g: 2 * l - m1, b: m1 };
1471
- break;
1472
- case 5:
1473
- res = { r: m1, g: 2 * l - m1, b: m2 };
1474
- break;
1475
- default:
1476
- res = { r: 2 * l - m1, g: 2 * l - m1, b: 2 * l - m1 };
1477
- }
1478
- res.mode = "rgb";
1479
- if (alpha !== void 0) res.alpha = alpha;
1480
- return res;
1481
- }
1482
-
1483
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/convertRgbToHsl.js
1484
- function convertRgbToHsl({ r, g, b, alpha }) {
1485
- if (r === void 0) r = 0;
1486
- if (g === void 0) g = 0;
1487
- if (b === void 0) b = 0;
1488
- let M3 = Math.max(r, g, b), m = Math.min(r, g, b);
1489
- let res = {
1490
- mode: "hsl",
1491
- s: M3 === m ? 0 : (M3 - m) / (1 - Math.abs(M3 + m - 1)),
1492
- l: 0.5 * (M3 + m)
1493
- };
1494
- if (M3 - m !== 0)
1495
- res.h = (M3 === r ? (g - b) / (M3 - m) + (g < b) * 6 : M3 === g ? (b - r) / (M3 - m) + 2 : (r - g) / (M3 - m) + 4) * 60;
1496
- if (alpha !== void 0) res.alpha = alpha;
1497
- return res;
1498
- }
1499
-
1500
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/util/hue.js
1501
- var hueToDeg = (val, unit) => {
1502
- switch (unit) {
1503
- case "deg":
1504
- return +val;
1505
- case "rad":
1506
- return val / Math.PI * 180;
1507
- case "grad":
1508
- return val / 10 * 9;
1509
- case "turn":
1510
- return val * 360;
1511
- }
1512
- };
1513
- var hue_default = hueToDeg;
1514
-
1515
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/parseHslLegacy.js
1516
- var hsl_old = new RegExp(
1517
- `^hsla?\\(\\s*${hue}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`
1518
- );
1519
- var parseHslLegacy = (color) => {
1520
- let match = color.match(hsl_old);
1521
- if (!match) return;
1522
- let res = { mode: "hsl" };
1523
- if (match[3] !== void 0) {
1524
- res.h = +match[3];
1525
- } else if (match[1] !== void 0 && match[2] !== void 0) {
1526
- res.h = hue_default(match[1], match[2]);
1527
- }
1528
- if (match[4] !== void 0) {
1529
- res.s = Math.min(Math.max(0, match[4] / 100), 1);
1530
- }
1531
- if (match[5] !== void 0) {
1532
- res.l = Math.min(Math.max(0, match[5] / 100), 1);
1533
- }
1534
- if (match[6] !== void 0) {
1535
- res.alpha = Math.max(0, Math.min(1, match[6] / 100));
1536
- } else if (match[7] !== void 0) {
1537
- res.alpha = Math.max(0, Math.min(1, +match[7]));
1538
- }
1539
- return res;
1540
- };
1541
- var parseHslLegacy_default = parseHslLegacy;
1542
-
1543
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/parseHsl.js
1544
- function parseHsl(color, parsed) {
1545
- if (!parsed || parsed[0] !== "hsl" && parsed[0] !== "hsla") {
1546
- return void 0;
1547
- }
1548
- const res = { mode: "hsl" };
1549
- const [, h, s, l, alpha] = parsed;
1550
- if (h.type !== Tok.None) {
1551
- if (h.type === Tok.Percentage) {
1552
- return void 0;
1553
- }
1554
- res.h = h.value;
1555
- }
1556
- if (s.type !== Tok.None) {
1557
- if (s.type === Tok.Hue) {
1558
- return void 0;
1559
- }
1560
- res.s = s.value / 100;
1561
- }
1562
- if (l.type !== Tok.None) {
1563
- if (l.type === Tok.Hue) {
1564
- return void 0;
1565
- }
1566
- res.l = l.value / 100;
1567
- }
1568
- if (alpha.type !== Tok.None) {
1569
- res.alpha = Math.min(
1570
- 1,
1571
- Math.max(
1572
- 0,
1573
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
1574
- )
1575
- );
1576
- }
1577
- return res;
1578
- }
1579
- var parseHsl_default = parseHsl;
1580
-
1581
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsl/definition.js
1582
- var definition7 = {
1583
- mode: "hsl",
1584
- toMode: {
1585
- rgb: convertHslToRgb
1586
- },
1587
- fromMode: {
1588
- rgb: convertRgbToHsl
1589
- },
1590
- channels: ["h", "s", "l", "alpha"],
1591
- ranges: {
1592
- h: [0, 360]
1593
- },
1594
- gamut: "rgb",
1595
- parse: [parseHsl_default, parseHslLegacy_default],
1596
- serialize: (c2) => `hsl(${c2.h !== void 0 ? c2.h : "none"} ${c2.s !== void 0 ? c2.s * 100 + "%" : "none"} ${c2.l !== void 0 ? c2.l * 100 + "%" : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`,
1597
- interpolate: {
1598
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
1599
- s: interpolatorLinear,
1600
- l: interpolatorLinear,
1601
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
1602
- },
1603
- difference: {
1604
- h: differenceHueSaturation
1605
- },
1606
- average: {
1607
- h: averageAngle
1608
- }
1609
- };
1610
- var definition_default7 = definition7;
1611
-
1612
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/convertHsvToRgb.js
1613
- function convertHsvToRgb({ h, s, v, alpha }) {
1614
- h = normalizeHue_default(h !== void 0 ? h : 0);
1615
- if (s === void 0) s = 0;
1616
- if (v === void 0) v = 0;
1617
- let f3 = Math.abs(h / 60 % 2 - 1);
1618
- let res;
1619
- switch (Math.floor(h / 60)) {
1620
- case 0:
1621
- res = { r: v, g: v * (1 - s * f3), b: v * (1 - s) };
1622
- break;
1623
- case 1:
1624
- res = { r: v * (1 - s * f3), g: v, b: v * (1 - s) };
1625
- break;
1626
- case 2:
1627
- res = { r: v * (1 - s), g: v, b: v * (1 - s * f3) };
1628
- break;
1629
- case 3:
1630
- res = { r: v * (1 - s), g: v * (1 - s * f3), b: v };
1631
- break;
1632
- case 4:
1633
- res = { r: v * (1 - s * f3), g: v * (1 - s), b: v };
1634
- break;
1635
- case 5:
1636
- res = { r: v, g: v * (1 - s), b: v * (1 - s * f3) };
1637
- break;
1638
- default:
1639
- res = { r: v * (1 - s), g: v * (1 - s), b: v * (1 - s) };
1640
- }
1641
- res.mode = "rgb";
1642
- if (alpha !== void 0) res.alpha = alpha;
1643
- return res;
1644
- }
1645
-
1646
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/convertRgbToHsv.js
1647
- function convertRgbToHsv({ r, g, b, alpha }) {
1648
- if (r === void 0) r = 0;
1649
- if (g === void 0) g = 0;
1650
- if (b === void 0) b = 0;
1651
- let M3 = Math.max(r, g, b), m = Math.min(r, g, b);
1652
- let res = {
1653
- mode: "hsv",
1654
- s: M3 === 0 ? 0 : 1 - m / M3,
1655
- v: M3
1656
- };
1657
- if (M3 - m !== 0)
1658
- res.h = (M3 === r ? (g - b) / (M3 - m) + (g < b) * 6 : M3 === g ? (b - r) / (M3 - m) + 2 : (r - g) / (M3 - m) + 4) * 60;
1659
- if (alpha !== void 0) res.alpha = alpha;
1660
- return res;
1661
- }
1662
-
1663
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hsv/definition.js
1664
- var definition8 = {
1665
- mode: "hsv",
1666
- toMode: {
1667
- rgb: convertHsvToRgb
1668
- },
1669
- parse: ["--hsv"],
1670
- serialize: "--hsv",
1671
- fromMode: {
1672
- rgb: convertRgbToHsv
1673
- },
1674
- channels: ["h", "s", "v", "alpha"],
1675
- ranges: {
1676
- h: [0, 360]
1677
- },
1678
- gamut: "rgb",
1679
- interpolate: {
1680
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
1681
- s: interpolatorLinear,
1682
- v: interpolatorLinear,
1683
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
1684
- },
1685
- difference: {
1686
- h: differenceHueSaturation
1687
- },
1688
- average: {
1689
- h: averageAngle
1690
- }
1691
- };
1692
- var definition_default8 = definition8;
1693
-
1694
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/convertHwbToRgb.js
1695
- function convertHwbToRgb({ h, w, b, alpha }) {
1696
- if (w === void 0) w = 0;
1697
- if (b === void 0) b = 0;
1698
- if (w + b > 1) {
1699
- let s = w + b;
1700
- w /= s;
1701
- b /= s;
1702
- }
1703
- return convertHsvToRgb({
1704
- h,
1705
- s: b === 1 ? 1 : 1 - w / (1 - b),
1706
- v: 1 - b,
1707
- alpha
1708
- });
1709
- }
1710
-
1711
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/convertRgbToHwb.js
1712
- function convertRgbToHwb(rgba) {
1713
- let hsv2 = convertRgbToHsv(rgba);
1714
- if (hsv2 === void 0) return void 0;
1715
- let s = hsv2.s !== void 0 ? hsv2.s : 0;
1716
- let v = hsv2.v !== void 0 ? hsv2.v : 0;
1717
- let res = {
1718
- mode: "hwb",
1719
- w: (1 - s) * v,
1720
- b: 1 - v
1721
- };
1722
- if (hsv2.h !== void 0) res.h = hsv2.h;
1723
- if (hsv2.alpha !== void 0) res.alpha = hsv2.alpha;
1724
- return res;
1725
- }
1726
-
1727
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/parseHwb.js
1728
- function ParseHwb(color, parsed) {
1729
- if (!parsed || parsed[0] !== "hwb") {
1730
- return void 0;
1731
- }
1732
- const res = { mode: "hwb" };
1733
- const [, h, w, b, alpha] = parsed;
1734
- if (h.type !== Tok.None) {
1735
- if (h.type === Tok.Percentage) {
1736
- return void 0;
1737
- }
1738
- res.h = h.value;
1739
- }
1740
- if (w.type !== Tok.None) {
1741
- if (w.type === Tok.Hue) {
1742
- return void 0;
1743
- }
1744
- res.w = w.value / 100;
1745
- }
1746
- if (b.type !== Tok.None) {
1747
- if (b.type === Tok.Hue) {
1748
- return void 0;
1749
- }
1750
- res.b = b.value / 100;
1751
- }
1752
- if (alpha.type !== Tok.None) {
1753
- res.alpha = Math.min(
1754
- 1,
1755
- Math.max(
1756
- 0,
1757
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
1758
- )
1759
- );
1760
- }
1761
- return res;
1762
- }
1763
- var parseHwb_default = ParseHwb;
1764
-
1765
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hwb/definition.js
1766
- var definition9 = {
1767
- mode: "hwb",
1768
- toMode: {
1769
- rgb: convertHwbToRgb
1770
- },
1771
- fromMode: {
1772
- rgb: convertRgbToHwb
1773
- },
1774
- channels: ["h", "w", "b", "alpha"],
1775
- ranges: {
1776
- h: [0, 360]
1777
- },
1778
- gamut: "rgb",
1779
- parse: [parseHwb_default],
1780
- serialize: (c2) => `hwb(${c2.h !== void 0 ? c2.h : "none"} ${c2.w !== void 0 ? c2.w * 100 + "%" : "none"} ${c2.b !== void 0 ? c2.b * 100 + "%" : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`,
1781
- interpolate: {
1782
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
1783
- w: interpolatorLinear,
1784
- b: interpolatorLinear,
1785
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
1786
- },
1787
- difference: {
1788
- h: differenceHueNaive
1789
- },
1790
- average: {
1791
- h: averageAngle
1792
- }
1793
- };
1794
- var definition_default9 = definition9;
1795
-
1796
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hdr/constants.js
1797
- var YW = 203;
1798
-
1799
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/hdr/transfer.js
1800
- var M1 = 0.1593017578125;
1801
- var M2 = 78.84375;
1802
- var C1 = 0.8359375;
1803
- var C2 = 18.8515625;
1804
- var C3 = 18.6875;
1805
- function transferPqDecode(v) {
1806
- if (v < 0) return 0;
1807
- const c2 = Math.pow(v, 1 / M2);
1808
- return 1e4 * Math.pow(Math.max(0, c2 - C1) / (C2 - C3 * c2), 1 / M1);
1809
- }
1810
- function transferPqEncode(v) {
1811
- if (v < 0) return 0;
1812
- const c2 = Math.pow(v / 1e4, M1);
1813
- return Math.pow((C1 + C2 * c2) / (1 + C3 * c2), M2);
1814
- }
1815
-
1816
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/convertItpToXyz65.js
1817
- var toRel = (c2) => Math.max(c2 / YW, 0);
1818
- var convertItpToXyz65 = ({ i, t, p: p4, alpha }) => {
1819
- if (i === void 0) i = 0;
1820
- if (t === void 0) t = 0;
1821
- if (p4 === void 0) p4 = 0;
1822
- const l = transferPqDecode(
1823
- i + 0.008609037037932761 * t + 0.11102962500302593 * p4
1824
- );
1825
- const m = transferPqDecode(
1826
- i - 0.00860903703793275 * t - 0.11102962500302599 * p4
1827
- );
1828
- const s = transferPqDecode(
1829
- i + 0.5600313357106791 * t - 0.32062717498731885 * p4
1830
- );
1831
- const res = {
1832
- mode: "xyz65",
1833
- x: toRel(
1834
- 2.070152218389422 * l - 1.3263473389671556 * m + 0.2066510476294051 * s
1835
- ),
1836
- y: toRel(
1837
- 0.3647385209748074 * l + 0.680566024947227 * m - 0.0453045459220346 * s
1838
- ),
1839
- z: toRel(
1840
- -0.049747207535812 * l - 0.0492609666966138 * m + 1.1880659249923042 * s
1841
- )
1842
- };
1843
- if (alpha !== void 0) {
1844
- res.alpha = alpha;
1845
- }
1846
- return res;
1847
- };
1848
- var convertItpToXyz65_default = convertItpToXyz65;
1849
-
1850
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/convertXyz65ToItp.js
1851
- var toAbs = (c2 = 0) => Math.max(c2 * YW, 0);
1852
- var convertXyz65ToItp = ({ x, y, z, alpha }) => {
1853
- const absX = toAbs(x);
1854
- const absY = toAbs(y);
1855
- const absZ = toAbs(z);
1856
- const l = transferPqEncode(
1857
- 0.3592832590121217 * absX + 0.6976051147779502 * absY - 0.0358915932320289 * absZ
1858
- );
1859
- const m = transferPqEncode(
1860
- -0.1920808463704995 * absX + 1.1004767970374323 * absY + 0.0753748658519118 * absZ
1861
- );
1862
- const s = transferPqEncode(
1863
- 0.0070797844607477 * absX + 0.0748396662186366 * absY + 0.8433265453898765 * absZ
1864
- );
1865
- const i = 0.5 * l + 0.5 * m;
1866
- const t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;
1867
- const p4 = 4.378173828125 * l - 4.24560546875 * m - 0.132568359375 * s;
1868
- const res = { mode: "itp", i, t, p: p4 };
1869
- if (alpha !== void 0) {
1870
- res.alpha = alpha;
1871
- }
1872
- return res;
1873
- };
1874
- var convertXyz65ToItp_default = convertXyz65ToItp;
1875
-
1876
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/itp/definition.js
1877
- var definition10 = {
1878
- mode: "itp",
1879
- channels: ["i", "t", "p", "alpha"],
1880
- parse: ["--ictcp"],
1881
- serialize: "--ictcp",
1882
- toMode: {
1883
- xyz65: convertItpToXyz65_default,
1884
- rgb: (color) => convertXyz65ToRgb_default(convertItpToXyz65_default(color))
1885
- },
1886
- fromMode: {
1887
- xyz65: convertXyz65ToItp_default,
1888
- rgb: (color) => convertXyz65ToItp_default(convertRgbToXyz65_default(color))
1889
- },
1890
- ranges: {
1891
- i: [0, 0.581],
1892
- t: [-0.369, 0.272],
1893
- p: [-0.164, 0.331]
1894
- },
1895
- interpolate: {
1896
- i: interpolatorLinear,
1897
- t: interpolatorLinear,
1898
- p: interpolatorLinear,
1899
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
1900
- }
1901
- };
1902
- var definition_default10 = definition10;
1903
-
1904
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertXyz65ToJab.js
1905
- var p = 134.03437499999998;
1906
- var d0 = 16295499532821565e-27;
1907
- var jabPqEncode = (v) => {
1908
- if (v < 0) return 0;
1909
- let vn3 = Math.pow(v / 1e4, M1);
1910
- return Math.pow((C1 + C2 * vn3) / (1 + C3 * vn3), p);
1911
- };
1912
- var abs = (v = 0) => Math.max(v * 203, 0);
1913
- var convertXyz65ToJab = ({ x, y, z, alpha }) => {
1914
- x = abs(x);
1915
- y = abs(y);
1916
- z = abs(z);
1917
- let xp = 1.15 * x - 0.15 * z;
1918
- let yp = 0.66 * y + 0.34 * x;
1919
- let l = jabPqEncode(0.41478972 * xp + 0.579999 * yp + 0.014648 * z);
1920
- let m = jabPqEncode(-0.20151 * xp + 1.120649 * yp + 0.0531008 * z);
1921
- let s = jabPqEncode(-0.0166008 * xp + 0.2648 * yp + 0.6684799 * z);
1922
- let i = (l + m) / 2;
1923
- let res = {
1924
- mode: "jab",
1925
- j: 0.44 * i / (1 - 0.56 * i) - d0,
1926
- a: 3.524 * l - 4.066708 * m + 0.542708 * s,
1927
- b: 0.199076 * l + 1.096799 * m - 1.295875 * s
1928
- };
1929
- if (alpha !== void 0) {
1930
- res.alpha = alpha;
1931
- }
1932
- return res;
1933
- };
1934
- var convertXyz65ToJab_default = convertXyz65ToJab;
1935
-
1936
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertJabToXyz65.js
1937
- var p2 = 134.03437499999998;
1938
- var d02 = 16295499532821565e-27;
1939
- var jabPqDecode = (v) => {
1940
- if (v < 0) return 0;
1941
- let vp = Math.pow(v, 1 / p2);
1942
- return 1e4 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / M1);
1943
- };
1944
- var rel = (v) => v / 203;
1945
- var convertJabToXyz65 = ({ j, a, b, alpha }) => {
1946
- if (j === void 0) j = 0;
1947
- if (a === void 0) a = 0;
1948
- if (b === void 0) b = 0;
1949
- let i = (j + d02) / (0.44 + 0.56 * (j + d02));
1950
- let l = jabPqDecode(i + 0.13860504 * a + 0.058047316 * b);
1951
- let m = jabPqDecode(i - 0.13860504 * a - 0.058047316 * b);
1952
- let s = jabPqDecode(i - 0.096019242 * a - 0.8118919 * b);
1953
- let res = {
1954
- mode: "xyz65",
1955
- x: rel(
1956
- 1.661373024652174 * l - 0.914523081304348 * m + 0.23136208173913045 * s
1957
- ),
1958
- y: rel(
1959
- -0.3250758611844533 * l + 1.571847026732543 * m - 0.21825383453227928 * s
1960
- ),
1961
- z: rel(-0.090982811 * l - 0.31272829 * m + 1.5227666 * s)
1962
- };
1963
- if (alpha !== void 0) {
1964
- res.alpha = alpha;
1965
- }
1966
- return res;
1967
- };
1968
- var convertJabToXyz65_default = convertJabToXyz65;
1969
-
1970
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertRgbToJab.js
1971
- var convertRgbToJab = (rgb2) => {
1972
- let res = convertXyz65ToJab_default(convertRgbToXyz65_default(rgb2));
1973
- if (rgb2.r === rgb2.b && rgb2.b === rgb2.g) {
1974
- res.a = res.b = 0;
1975
- }
1976
- return res;
1977
- };
1978
- var convertRgbToJab_default = convertRgbToJab;
1979
-
1980
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/convertJabToRgb.js
1981
- var convertJabToRgb = (color) => convertXyz65ToRgb_default(convertJabToXyz65_default(color));
1982
- var convertJabToRgb_default = convertJabToRgb;
1983
-
1984
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jab/definition.js
1985
- var definition11 = {
1986
- mode: "jab",
1987
- channels: ["j", "a", "b", "alpha"],
1988
- parse: ["--jzazbz"],
1989
- serialize: "--jzazbz",
1990
- fromMode: {
1991
- rgb: convertRgbToJab_default,
1992
- xyz65: convertXyz65ToJab_default
1993
- },
1994
- toMode: {
1995
- rgb: convertJabToRgb_default,
1996
- xyz65: convertJabToXyz65_default
1997
- },
1998
- ranges: {
1999
- j: [0, 0.222],
2000
- a: [-0.109, 0.129],
2001
- b: [-0.185, 0.134]
2002
- },
2003
- interpolate: {
2004
- j: interpolatorLinear,
2005
- a: interpolatorLinear,
2006
- b: interpolatorLinear,
2007
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2008
- }
2009
- };
2010
- var definition_default11 = definition11;
2011
-
2012
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/convertJabToJch.js
2013
- var convertJabToJch = ({ j, a, b, alpha }) => {
2014
- if (a === void 0) a = 0;
2015
- if (b === void 0) b = 0;
2016
- let c2 = Math.sqrt(a * a + b * b);
2017
- let res = {
2018
- mode: "jch",
2019
- j,
2020
- c: c2
2021
- };
2022
- if (c2) {
2023
- res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
2024
- }
2025
- if (alpha !== void 0) {
2026
- res.alpha = alpha;
2027
- }
2028
- return res;
2029
- };
2030
- var convertJabToJch_default = convertJabToJch;
2031
-
2032
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/convertJchToJab.js
2033
- var convertJchToJab = ({ j, c: c2, h, alpha }) => {
2034
- if (h === void 0) h = 0;
2035
- let res = {
2036
- mode: "jab",
2037
- j,
2038
- a: c2 ? c2 * Math.cos(h / 180 * Math.PI) : 0,
2039
- b: c2 ? c2 * Math.sin(h / 180 * Math.PI) : 0
2040
- };
2041
- if (alpha !== void 0) res.alpha = alpha;
2042
- return res;
2043
- };
2044
- var convertJchToJab_default = convertJchToJab;
2045
-
2046
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/jch/definition.js
2047
- var definition12 = {
2048
- mode: "jch",
2049
- parse: ["--jzczhz"],
2050
- serialize: "--jzczhz",
2051
- toMode: {
2052
- jab: convertJchToJab_default,
2053
- rgb: (c2) => convertJabToRgb_default(convertJchToJab_default(c2))
2054
- },
2055
- fromMode: {
2056
- rgb: (c2) => convertJabToJch_default(convertRgbToJab_default(c2)),
2057
- jab: convertJabToJch_default
2058
- },
2059
- channels: ["j", "c", "h", "alpha"],
2060
- ranges: {
2061
- j: [0, 0.221],
2062
- c: [0, 0.19],
2063
- h: [0, 360]
2064
- },
2065
- interpolate: {
2066
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
2067
- c: interpolatorLinear,
2068
- j: interpolatorLinear,
2069
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2070
- },
2071
- difference: {
2072
- h: differenceHueChroma
2073
- },
2074
- average: {
2075
- h: averageAngle
2076
- }
2077
- };
2078
- var definition_default12 = definition12;
2079
-
2080
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/constants.js
2081
- var k3 = Math.pow(29, 3) / Math.pow(3, 3);
2082
- var e3 = Math.pow(6, 3) / Math.pow(29, 3);
2083
-
2084
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertLabToXyz50.js
2085
- var fn4 = (v) => Math.pow(v, 3) > e3 ? Math.pow(v, 3) : (116 * v - 16) / k3;
2086
- var convertLabToXyz50 = ({ l, a, b, alpha }) => {
2087
- if (l === void 0) l = 0;
2088
- if (a === void 0) a = 0;
2089
- if (b === void 0) b = 0;
2090
- let fy = (l + 16) / 116;
2091
- let fx = a / 500 + fy;
2092
- let fz = fy - b / 200;
2093
- let res = {
2094
- mode: "xyz50",
2095
- x: fn4(fx) * D50.X,
2096
- y: fn4(fy) * D50.Y,
2097
- z: fn4(fz) * D50.Z
2098
- };
2099
- if (alpha !== void 0) {
2100
- res.alpha = alpha;
2101
- }
2102
- return res;
2103
- };
2104
- var convertLabToXyz50_default = convertLabToXyz50;
2105
-
2106
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/convertXyz50ToRgb.js
2107
- var convertXyz50ToRgb = ({ x, y, z, alpha }) => {
2108
- if (x === void 0) x = 0;
2109
- if (y === void 0) y = 0;
2110
- if (z === void 0) z = 0;
2111
- let res = convertLrgbToRgb_default({
2112
- r: x * 3.1341359569958707 - y * 1.6173863321612538 - 0.4906619460083532 * z,
2113
- g: x * -0.978795502912089 + y * 1.916254567259524 + 0.03344273116131949 * z,
2114
- b: x * 0.07195537988411677 - y * 0.2289768264158322 + 1.405386058324125 * z
2115
- });
2116
- if (alpha !== void 0) {
2117
- res.alpha = alpha;
2118
- }
2119
- return res;
2120
- };
2121
- var convertXyz50ToRgb_default = convertXyz50ToRgb;
2122
-
2123
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertLabToRgb.js
2124
- var convertLabToRgb = (lab2) => convertXyz50ToRgb_default(convertLabToXyz50_default(lab2));
2125
- var convertLabToRgb_default = convertLabToRgb;
2126
-
2127
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/convertRgbToXyz50.js
2128
- var convertRgbToXyz50 = (rgb2) => {
2129
- let { r, g, b, alpha } = convertRgbToLrgb_default(rgb2);
2130
- let res = {
2131
- mode: "xyz50",
2132
- x: 0.436065742824811 * r + 0.3851514688337912 * g + 0.14307845442264197 * b,
2133
- y: 0.22249319175623702 * r + 0.7168870538238823 * g + 0.06061979053616537 * b,
2134
- z: 0.013923904500943465 * r + 0.09708128566574634 * g + 0.7140993584005155 * b
2135
- };
2136
- if (alpha !== void 0) {
2137
- res.alpha = alpha;
2138
- }
2139
- return res;
2140
- };
2141
- var convertRgbToXyz50_default = convertRgbToXyz50;
2142
-
2143
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertXyz50ToLab.js
2144
- var f2 = (value) => value > e3 ? Math.cbrt(value) : (k3 * value + 16) / 116;
2145
- var convertXyz50ToLab = ({ x, y, z, alpha }) => {
2146
- if (x === void 0) x = 0;
2147
- if (y === void 0) y = 0;
2148
- if (z === void 0) z = 0;
2149
- let f0 = f2(x / D50.X);
2150
- let f1 = f2(y / D50.Y);
2151
- let f22 = f2(z / D50.Z);
2152
- let res = {
2153
- mode: "lab",
2154
- l: 116 * f1 - 16,
2155
- a: 500 * (f0 - f1),
2156
- b: 200 * (f1 - f22)
2157
- };
2158
- if (alpha !== void 0) {
2159
- res.alpha = alpha;
2160
- }
2161
- return res;
2162
- };
2163
- var convertXyz50ToLab_default = convertXyz50ToLab;
2164
-
2165
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/convertRgbToLab.js
2166
- var convertRgbToLab = (rgb2) => {
2167
- let res = convertXyz50ToLab_default(convertRgbToXyz50_default(rgb2));
2168
- if (rgb2.r === rgb2.b && rgb2.b === rgb2.g) {
2169
- res.a = res.b = 0;
2170
- }
2171
- return res;
2172
- };
2173
- var convertRgbToLab_default = convertRgbToLab;
2174
-
2175
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/parseLab.js
2176
- function parseLab(color, parsed) {
2177
- if (!parsed || parsed[0] !== "lab") {
2178
- return void 0;
2179
- }
2180
- const res = { mode: "lab" };
2181
- const [, l, a, b, alpha] = parsed;
2182
- if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {
2183
- return void 0;
2184
- }
2185
- if (l.type !== Tok.None) {
2186
- res.l = Math.min(Math.max(0, l.value), 100);
2187
- }
2188
- if (a.type !== Tok.None) {
2189
- res.a = a.type === Tok.Number ? a.value : a.value * 125 / 100;
2190
- }
2191
- if (b.type !== Tok.None) {
2192
- res.b = b.type === Tok.Number ? b.value : b.value * 125 / 100;
2193
- }
2194
- if (alpha.type !== Tok.None) {
2195
- res.alpha = Math.min(
2196
- 1,
2197
- Math.max(
2198
- 0,
2199
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
2200
- )
2201
- );
2202
- }
2203
- return res;
2204
- }
2205
- var parseLab_default = parseLab;
2206
-
2207
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab/definition.js
2208
- var definition13 = {
2209
- mode: "lab",
2210
- toMode: {
2211
- xyz50: convertLabToXyz50_default,
2212
- rgb: convertLabToRgb_default
2213
- },
2214
- fromMode: {
2215
- xyz50: convertXyz50ToLab_default,
2216
- rgb: convertRgbToLab_default
2217
- },
2218
- channels: ["l", "a", "b", "alpha"],
2219
- ranges: {
2220
- l: [0, 100],
2221
- a: [-125, 125],
2222
- b: [-125, 125]
2223
- },
2224
- parse: [parseLab_default],
2225
- serialize: (c2) => `lab(${c2.l !== void 0 ? c2.l : "none"} ${c2.a !== void 0 ? c2.a : "none"} ${c2.b !== void 0 ? c2.b : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`,
2226
- interpolate: {
2227
- l: interpolatorLinear,
2228
- a: interpolatorLinear,
2229
- b: interpolatorLinear,
2230
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2231
- }
2232
- };
2233
- var definition_default13 = definition13;
2234
-
2235
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lab65/definition.js
2236
- var definition14 = {
2237
- ...definition_default13,
2238
- mode: "lab65",
2239
- parse: ["--lab-d65"],
2240
- serialize: "--lab-d65",
2241
- toMode: {
2242
- xyz65: convertLab65ToXyz65_default,
2243
- rgb: convertLab65ToRgb_default
2244
- },
2245
- fromMode: {
2246
- xyz65: convertXyz65ToLab65_default,
2247
- rgb: convertRgbToLab65_default
2248
- },
2249
- ranges: {
2250
- l: [0, 100],
2251
- a: [-125, 125],
2252
- b: [-125, 125]
2253
- }
2254
- };
2255
- var definition_default14 = definition14;
2256
-
2257
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/parseLch.js
2258
- function parseLch(color, parsed) {
2259
- if (!parsed || parsed[0] !== "lch") {
2260
- return void 0;
2261
- }
2262
- const res = { mode: "lch" };
2263
- const [, l, c2, h, alpha] = parsed;
2264
- if (l.type !== Tok.None) {
2265
- if (l.type === Tok.Hue) {
2266
- return void 0;
2267
- }
2268
- res.l = Math.min(Math.max(0, l.value), 100);
2269
- }
2270
- if (c2.type !== Tok.None) {
2271
- res.c = Math.max(
2272
- 0,
2273
- c2.type === Tok.Number ? c2.value : c2.value * 150 / 100
2274
- );
2275
- }
2276
- if (h.type !== Tok.None) {
2277
- if (h.type === Tok.Percentage) {
2278
- return void 0;
2279
- }
2280
- res.h = h.value;
2281
- }
2282
- if (alpha.type !== Tok.None) {
2283
- res.alpha = Math.min(
2284
- 1,
2285
- Math.max(
2286
- 0,
2287
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
2288
- )
2289
- );
2290
- }
2291
- return res;
2292
- }
2293
- var parseLch_default = parseLch;
2294
-
2295
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch/definition.js
2296
- var definition15 = {
2297
- mode: "lch",
2298
- toMode: {
2299
- lab: convertLchToLab_default,
2300
- rgb: (c2) => convertLabToRgb_default(convertLchToLab_default(c2))
2301
- },
2302
- fromMode: {
2303
- rgb: (c2) => convertLabToLch_default(convertRgbToLab_default(c2)),
2304
- lab: convertLabToLch_default
2305
- },
2306
- channels: ["l", "c", "h", "alpha"],
2307
- ranges: {
2308
- l: [0, 100],
2309
- c: [0, 150],
2310
- h: [0, 360]
2311
- },
2312
- parse: [parseLch_default],
2313
- serialize: (c2) => `lch(${c2.l !== void 0 ? c2.l : "none"} ${c2.c !== void 0 ? c2.c : "none"} ${c2.h !== void 0 ? c2.h : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`,
2314
- interpolate: {
2315
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
2316
- c: interpolatorLinear,
2317
- l: interpolatorLinear,
2318
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2319
- },
2320
- difference: {
2321
- h: differenceHueChroma
2322
- },
2323
- average: {
2324
- h: averageAngle
2325
- }
2326
- };
2327
- var definition_default15 = definition15;
2328
-
2329
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lch65/definition.js
2330
- var definition16 = {
2331
- ...definition_default15,
2332
- mode: "lch65",
2333
- parse: ["--lch-d65"],
2334
- serialize: "--lch-d65",
2335
- toMode: {
2336
- lab65: (c2) => convertLchToLab_default(c2, "lab65"),
2337
- rgb: (c2) => convertLab65ToRgb_default(convertLchToLab_default(c2, "lab65"))
2338
- },
2339
- fromMode: {
2340
- rgb: (c2) => convertLabToLch_default(convertRgbToLab65_default(c2), "lch65"),
2341
- lab65: (c2) => convertLabToLch_default(c2, "lch65")
2342
- },
2343
- ranges: {
2344
- l: [0, 100],
2345
- c: [0, 150],
2346
- h: [0, 360]
2347
- }
2348
- };
2349
- var definition_default16 = definition16;
2350
-
2351
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/convertLuvToLchuv.js
2352
- var convertLuvToLchuv = ({ l, u, v, alpha }) => {
2353
- if (u === void 0) u = 0;
2354
- if (v === void 0) v = 0;
2355
- let c2 = Math.sqrt(u * u + v * v);
2356
- let res = {
2357
- mode: "lchuv",
2358
- l,
2359
- c: c2
2360
- };
2361
- if (c2) {
2362
- res.h = normalizeHue_default(Math.atan2(v, u) * 180 / Math.PI);
2363
- }
2364
- if (alpha !== void 0) {
2365
- res.alpha = alpha;
2366
- }
2367
- return res;
2368
- };
2369
- var convertLuvToLchuv_default = convertLuvToLchuv;
2370
-
2371
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/convertLchuvToLuv.js
2372
- var convertLchuvToLuv = ({ l, c: c2, h, alpha }) => {
2373
- if (h === void 0) h = 0;
2374
- let res = {
2375
- mode: "luv",
2376
- l,
2377
- u: c2 ? c2 * Math.cos(h / 180 * Math.PI) : 0,
2378
- v: c2 ? c2 * Math.sin(h / 180 * Math.PI) : 0
2379
- };
2380
- if (alpha !== void 0) {
2381
- res.alpha = alpha;
2382
- }
2383
- return res;
2384
- };
2385
- var convertLchuvToLuv_default = convertLchuvToLuv;
2386
-
2387
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/convertXyz50ToLuv.js
2388
- var u_fn = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
2389
- var v_fn = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
2390
- var un = u_fn(D50.X, D50.Y, D50.Z);
2391
- var vn = v_fn(D50.X, D50.Y, D50.Z);
2392
- var l_fn = (value) => value <= e3 ? k3 * value : 116 * Math.cbrt(value) - 16;
2393
- var convertXyz50ToLuv = ({ x, y, z, alpha }) => {
2394
- if (x === void 0) x = 0;
2395
- if (y === void 0) y = 0;
2396
- if (z === void 0) z = 0;
2397
- let l = l_fn(y / D50.Y);
2398
- let u = u_fn(x, y, z);
2399
- let v = v_fn(x, y, z);
2400
- if (!isFinite(u) || !isFinite(v)) {
2401
- l = u = v = 0;
2402
- } else {
2403
- u = 13 * l * (u - un);
2404
- v = 13 * l * (v - vn);
2405
- }
2406
- let res = {
2407
- mode: "luv",
2408
- l,
2409
- u,
2410
- v
2411
- };
2412
- if (alpha !== void 0) {
2413
- res.alpha = alpha;
2414
- }
2415
- return res;
2416
- };
2417
- var convertXyz50ToLuv_default = convertXyz50ToLuv;
2418
-
2419
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/convertLuvToXyz50.js
2420
- var u_fn2 = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
2421
- var v_fn2 = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
2422
- var un2 = u_fn2(D50.X, D50.Y, D50.Z);
2423
- var vn2 = v_fn2(D50.X, D50.Y, D50.Z);
2424
- var convertLuvToXyz50 = ({ l, u, v, alpha }) => {
2425
- if (l === void 0) l = 0;
2426
- if (l === 0) {
2427
- return { mode: "xyz50", x: 0, y: 0, z: 0 };
2428
- }
2429
- if (u === void 0) u = 0;
2430
- if (v === void 0) v = 0;
2431
- let up = u / (13 * l) + un2;
2432
- let vp = v / (13 * l) + vn2;
2433
- let y = D50.Y * (l <= 8 ? l / k3 : Math.pow((l + 16) / 116, 3));
2434
- let x = y * (9 * up) / (4 * vp);
2435
- let z = y * (12 - 3 * up - 20 * vp) / (4 * vp);
2436
- let res = { mode: "xyz50", x, y, z };
2437
- if (alpha !== void 0) {
2438
- res.alpha = alpha;
2439
- }
2440
- return res;
2441
- };
2442
- var convertLuvToXyz50_default = convertLuvToXyz50;
2443
-
2444
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lchuv/definition.js
2445
- var convertRgbToLchuv = (rgb2) => convertLuvToLchuv_default(convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb2)));
2446
- var convertLchuvToRgb = (lchuv2) => convertXyz50ToRgb_default(convertLuvToXyz50_default(convertLchuvToLuv_default(lchuv2)));
2447
- var definition17 = {
2448
- mode: "lchuv",
2449
- toMode: {
2450
- luv: convertLchuvToLuv_default,
2451
- rgb: convertLchuvToRgb
2452
- },
2453
- fromMode: {
2454
- rgb: convertRgbToLchuv,
2455
- luv: convertLuvToLchuv_default
2456
- },
2457
- channels: ["l", "c", "h", "alpha"],
2458
- parse: ["--lchuv"],
2459
- serialize: "--lchuv",
2460
- ranges: {
2461
- l: [0, 100],
2462
- c: [0, 176.956],
2463
- h: [0, 360]
2464
- },
2465
- interpolate: {
2466
- h: { use: interpolatorLinear, fixup: fixupHueShorter },
2467
- c: interpolatorLinear,
2468
- l: interpolatorLinear,
2469
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2470
- },
2471
- difference: {
2472
- h: differenceHueChroma
2473
- },
2474
- average: {
2475
- h: averageAngle
2476
- }
2477
- };
2478
- var definition_default17 = definition17;
2479
-
2480
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/lrgb/definition.js
2481
- var definition18 = {
2482
- ...definition_default,
2483
- mode: "lrgb",
2484
- toMode: {
2485
- rgb: convertLrgbToRgb_default
2486
- },
2487
- fromMode: {
2488
- rgb: convertRgbToLrgb_default
2489
- },
2490
- parse: ["srgb-linear"],
2491
- serialize: "srgb-linear"
2492
- };
2493
- var definition_default18 = definition18;
2494
-
2495
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/luv/definition.js
2496
- var definition19 = {
2497
- mode: "luv",
2498
- toMode: {
2499
- xyz50: convertLuvToXyz50_default,
2500
- rgb: (luv2) => convertXyz50ToRgb_default(convertLuvToXyz50_default(luv2))
2501
- },
2502
- fromMode: {
2503
- xyz50: convertXyz50ToLuv_default,
2504
- rgb: (rgb2) => convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb2))
2505
- },
2506
- channels: ["l", "u", "v", "alpha"],
2507
- parse: ["--luv"],
2508
- serialize: "--luv",
2509
- ranges: {
2510
- l: [0, 100],
2511
- u: [-84.936, 175.042],
2512
- v: [-125.882, 87.243]
2513
- },
2514
- interpolate: {
2515
- l: interpolatorLinear,
2516
- u: interpolatorLinear,
2517
- v: interpolatorLinear,
2518
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
2519
- }
2520
- };
2521
- var definition_default19 = definition19;
2522
-
2523
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertLrgbToOklab.js
2524
- var convertLrgbToOklab = ({ r, g, b, alpha }) => {
2525
- if (r === void 0) r = 0;
2526
- if (g === void 0) g = 0;
2527
- if (b === void 0) b = 0;
2528
- let L = Math.cbrt(
2529
- 0.412221469470763 * r + 0.5363325372617348 * g + 0.0514459932675022 * b
2530
- );
2531
- let M3 = Math.cbrt(
2532
- 0.2119034958178252 * r + 0.6806995506452344 * g + 0.1073969535369406 * b
2533
- );
2534
- let S = Math.cbrt(
2535
- 0.0883024591900564 * r + 0.2817188391361215 * g + 0.6299787016738222 * b
2536
- );
2537
- let res = {
2538
- mode: "oklab",
2539
- l: 0.210454268309314 * L + 0.7936177747023054 * M3 - 0.0040720430116193 * S,
2540
- a: 1.9779985324311684 * L - 2.42859224204858 * M3 + 0.450593709617411 * S,
2541
- b: 0.0259040424655478 * L + 0.7827717124575296 * M3 - 0.8086757549230774 * S
2542
- };
2543
- if (alpha !== void 0) {
2544
- res.alpha = alpha;
2545
- }
2546
- return res;
2547
- };
2548
- var convertLrgbToOklab_default = convertLrgbToOklab;
2549
-
2550
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertRgbToOklab.js
2551
- var convertRgbToOklab = (rgb2) => {
2552
- let res = convertLrgbToOklab_default(convertRgbToLrgb_default(rgb2));
2553
- if (rgb2.r === rgb2.b && rgb2.b === rgb2.g) {
2554
- res.a = res.b = 0;
2555
- }
2556
- return res;
2557
- };
2558
- var convertRgbToOklab_default = convertRgbToOklab;
2559
-
2560
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToLrgb.js
2561
- var convertOklabToLrgb = ({ l, a, b, alpha }) => {
2562
- if (l === void 0) l = 0;
2563
- if (a === void 0) a = 0;
2564
- if (b === void 0) b = 0;
2565
- let L = Math.pow(l + 0.3963377773761749 * a + 0.2158037573099136 * b, 3);
2566
- let M3 = Math.pow(l - 0.1055613458156586 * a - 0.0638541728258133 * b, 3);
2567
- let S = Math.pow(l - 0.0894841775298119 * a - 1.2914855480194092 * b, 3);
2568
- let res = {
2569
- mode: "lrgb",
2570
- r: 4.076741636075957 * L - 3.3077115392580616 * M3 + 0.2309699031821044 * S,
2571
- g: -1.2684379732850317 * L + 2.6097573492876887 * M3 - 0.3413193760026573 * S,
2572
- b: -0.0041960761386756 * L - 0.7034186179359362 * M3 + 1.7076146940746117 * S
2573
- };
2574
- if (alpha !== void 0) {
2575
- res.alpha = alpha;
2576
- }
2577
- return res;
2578
- };
2579
- var convertOklabToLrgb_default = convertOklabToLrgb;
2580
-
2581
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToRgb.js
2582
- var convertOklabToRgb = (c2) => convertLrgbToRgb_default(convertOklabToLrgb_default(c2));
2583
- var convertOklabToRgb_default = convertOklabToRgb;
2584
-
2585
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/helpers.js
2586
- function toe(x) {
2587
- const k_1 = 0.206;
2588
- const k_2 = 0.03;
2589
- const k_3 = (1 + k_1) / (1 + k_2);
2590
- return 0.5 * (k_3 * x - k_1 + Math.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x));
2591
- }
2592
- function toe_inv(x) {
2593
- const k_1 = 0.206;
2594
- const k_2 = 0.03;
2595
- const k_3 = (1 + k_1) / (1 + k_2);
2596
- return (x * x + k_1 * x) / (k_3 * (x + k_2));
2597
- }
2598
- function compute_max_saturation(a, b) {
2599
- let k0, k1, k22, k32, k4, wl, wm, ws;
2600
- if (-1.88170328 * a - 0.80936493 * b > 1) {
2601
- k0 = 1.19086277;
2602
- k1 = 1.76576728;
2603
- k22 = 0.59662641;
2604
- k32 = 0.75515197;
2605
- k4 = 0.56771245;
2606
- wl = 4.0767416621;
2607
- wm = -3.3077115913;
2608
- ws = 0.2309699292;
2609
- } else if (1.81444104 * a - 1.19445276 * b > 1) {
2610
- k0 = 0.73956515;
2611
- k1 = -0.45954404;
2612
- k22 = 0.08285427;
2613
- k32 = 0.1254107;
2614
- k4 = 0.14503204;
2615
- wl = -1.2684380046;
2616
- wm = 2.6097574011;
2617
- ws = -0.3413193965;
2618
- } else {
2619
- k0 = 1.35733652;
2620
- k1 = -915799e-8;
2621
- k22 = -1.1513021;
2622
- k32 = -0.50559606;
2623
- k4 = 692167e-8;
2624
- wl = -0.0041960863;
2625
- wm = -0.7034186147;
2626
- ws = 1.707614701;
2627
- }
2628
- let S = k0 + k1 * a + k22 * b + k32 * a * a + k4 * a * b;
2629
- let k_l = 0.3963377774 * a + 0.2158037573 * b;
2630
- let k_m = -0.1055613458 * a - 0.0638541728 * b;
2631
- let k_s = -0.0894841775 * a - 1.291485548 * b;
2632
- {
2633
- let l_ = 1 + S * k_l;
2634
- let m_ = 1 + S * k_m;
2635
- let s_ = 1 + S * k_s;
2636
- let l = l_ * l_ * l_;
2637
- let m = m_ * m_ * m_;
2638
- let s = s_ * s_ * s_;
2639
- let l_dS = 3 * k_l * l_ * l_;
2640
- let m_dS = 3 * k_m * m_ * m_;
2641
- let s_dS = 3 * k_s * s_ * s_;
2642
- let l_dS2 = 6 * k_l * k_l * l_;
2643
- let m_dS2 = 6 * k_m * k_m * m_;
2644
- let s_dS2 = 6 * k_s * k_s * s_;
2645
- let f3 = wl * l + wm * m + ws * s;
2646
- let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
2647
- let f22 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
2648
- S = S - f3 * f1 / (f1 * f1 - 0.5 * f3 * f22);
2649
- }
2650
- return S;
2651
- }
2652
- function find_cusp(a, b) {
2653
- let S_cusp = compute_max_saturation(a, b);
2654
- let rgb2 = convertOklabToLrgb_default({ l: 1, a: S_cusp * a, b: S_cusp * b });
2655
- let L_cusp = Math.cbrt(1 / Math.max(rgb2.r, rgb2.g, rgb2.b));
2656
- let C_cusp = L_cusp * S_cusp;
2657
- return [L_cusp, C_cusp];
2658
- }
2659
- function find_gamut_intersection(a, b, L1, C12, L0, cusp = null) {
2660
- if (!cusp) {
2661
- cusp = find_cusp(a, b);
2662
- }
2663
- let t;
2664
- if ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C12 <= 0) {
2665
- t = cusp[1] * L0 / (C12 * cusp[0] + cusp[1] * (L0 - L1));
2666
- } else {
2667
- t = cusp[1] * (L0 - 1) / (C12 * (cusp[0] - 1) + cusp[1] * (L0 - L1));
2668
- {
2669
- let dL = L1 - L0;
2670
- let dC = C12;
2671
- let k_l = 0.3963377774 * a + 0.2158037573 * b;
2672
- let k_m = -0.1055613458 * a - 0.0638541728 * b;
2673
- let k_s = -0.0894841775 * a - 1.291485548 * b;
2674
- let l_dt = dL + dC * k_l;
2675
- let m_dt = dL + dC * k_m;
2676
- let s_dt = dL + dC * k_s;
2677
- {
2678
- let L = L0 * (1 - t) + t * L1;
2679
- let C = t * C12;
2680
- let l_ = L + C * k_l;
2681
- let m_ = L + C * k_m;
2682
- let s_ = L + C * k_s;
2683
- let l = l_ * l_ * l_;
2684
- let m = m_ * m_ * m_;
2685
- let s = s_ * s_ * s_;
2686
- let ldt = 3 * l_dt * l_ * l_;
2687
- let mdt = 3 * m_dt * m_ * m_;
2688
- let sdt = 3 * s_dt * s_ * s_;
2689
- let ldt2 = 6 * l_dt * l_dt * l_;
2690
- let mdt2 = 6 * m_dt * m_dt * m_;
2691
- let sdt2 = 6 * s_dt * s_dt * s_;
2692
- let r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s - 1;
2693
- let r1 = 4.0767416621 * ldt - 3.3077115913 * mdt + 0.2309699292 * sdt;
2694
- let r2 = 4.0767416621 * ldt2 - 3.3077115913 * mdt2 + 0.2309699292 * sdt2;
2695
- let u_r = r1 / (r1 * r1 - 0.5 * r * r2);
2696
- let t_r = -r * u_r;
2697
- let g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s - 1;
2698
- let g1 = -1.2684380046 * ldt + 2.6097574011 * mdt - 0.3413193965 * sdt;
2699
- let g2 = -1.2684380046 * ldt2 + 2.6097574011 * mdt2 - 0.3413193965 * sdt2;
2700
- let u_g = g1 / (g1 * g1 - 0.5 * g * g2);
2701
- let t_g = -g * u_g;
2702
- let b2 = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s - 1;
2703
- let b1 = -0.0041960863 * ldt - 0.7034186147 * mdt + 1.707614701 * sdt;
2704
- let b22 = -0.0041960863 * ldt2 - 0.7034186147 * mdt2 + 1.707614701 * sdt2;
2705
- let u_b = b1 / (b1 * b1 - 0.5 * b2 * b22);
2706
- let t_b = -b2 * u_b;
2707
- t_r = u_r >= 0 ? t_r : 1e6;
2708
- t_g = u_g >= 0 ? t_g : 1e6;
2709
- t_b = u_b >= 0 ? t_b : 1e6;
2710
- t += Math.min(t_r, Math.min(t_g, t_b));
2711
- }
2712
- }
2713
- }
2714
- return t;
2715
- }
2716
- function get_ST_max(a_, b_, cusp = null) {
2717
- if (!cusp) {
2718
- cusp = find_cusp(a_, b_);
2719
- }
2720
- let L = cusp[0];
2721
- let C = cusp[1];
2722
- return [C / L, C / (1 - L)];
2723
- }
2724
- function get_Cs(L, a_, b_) {
2725
- let cusp = find_cusp(a_, b_);
2726
- let C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);
2727
- let ST_max = get_ST_max(a_, b_, cusp);
2728
- let S_mid = 0.11516993 + 1 / (7.4477897 + 4.1590124 * b_ + a_ * (-2.19557347 + 1.75198401 * b_ + a_ * (-2.13704948 - 10.02301043 * b_ + a_ * (-4.24894561 + 5.38770819 * b_ + 4.69891013 * a_))));
2729
- let T_mid = 0.11239642 + 1 / (1.6132032 - 0.68124379 * b_ + a_ * (0.40370612 + 0.90148123 * b_ + a_ * (-0.27087943 + 0.6122399 * b_ + a_ * (299215e-8 - 0.45399568 * b_ - 0.14661872 * a_))));
2730
- let k4 = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);
2731
- let C_a = L * S_mid;
2732
- let C_b = (1 - L) * T_mid;
2733
- let C_mid = 0.9 * k4 * Math.sqrt(
2734
- Math.sqrt(
2735
- 1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))
2736
- )
2737
- );
2738
- C_a = L * 0.4;
2739
- C_b = (1 - L) * 0.8;
2740
- let C_0 = Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b)));
2741
- return [C_0, C_mid, C_max];
2742
- }
2743
-
2744
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/convertOklabToOkhsl.js
2745
- function convertOklabToOkhsl(lab2) {
2746
- const l = lab2.l !== void 0 ? lab2.l : 0;
2747
- const a = lab2.a !== void 0 ? lab2.a : 0;
2748
- const b = lab2.b !== void 0 ? lab2.b : 0;
2749
- const ret = { mode: "okhsl", l: toe(l) };
2750
- if (lab2.alpha !== void 0) {
2751
- ret.alpha = lab2.alpha;
2752
- }
2753
- let c2 = Math.sqrt(a * a + b * b);
2754
- if (!c2) {
2755
- ret.s = 0;
2756
- return ret;
2757
- }
2758
- let [C_0, C_mid, C_max] = get_Cs(l, a / c2, b / c2);
2759
- let s;
2760
- if (c2 < C_mid) {
2761
- let k_0 = 0;
2762
- let k_1 = 0.8 * C_0;
2763
- let k_2 = 1 - k_1 / C_mid;
2764
- let t = (c2 - k_0) / (k_1 + k_2 * (c2 - k_0));
2765
- s = t * 0.8;
2766
- } else {
2767
- let k_0 = C_mid;
2768
- let k_1 = 0.2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
2769
- let k_2 = 1 - k_1 / (C_max - C_mid);
2770
- let t = (c2 - k_0) / (k_1 + k_2 * (c2 - k_0));
2771
- s = 0.8 + 0.2 * t;
2772
- }
2773
- if (s) {
2774
- ret.s = s;
2775
- ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
2776
- }
2777
- return ret;
2778
- }
2779
-
2780
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/convertOkhslToOklab.js
2781
- function convertOkhslToOklab(hsl2) {
2782
- let h = hsl2.h !== void 0 ? hsl2.h : 0;
2783
- let s = hsl2.s !== void 0 ? hsl2.s : 0;
2784
- let l = hsl2.l !== void 0 ? hsl2.l : 0;
2785
- const ret = { mode: "oklab", l: toe_inv(l) };
2786
- if (hsl2.alpha !== void 0) {
2787
- ret.alpha = hsl2.alpha;
2788
- }
2789
- if (!s || l === 1) {
2790
- ret.a = ret.b = 0;
2791
- return ret;
2792
- }
2793
- let a_ = Math.cos(h / 180 * Math.PI);
2794
- let b_ = Math.sin(h / 180 * Math.PI);
2795
- let [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);
2796
- let t, k_0, k_1, k_2;
2797
- if (s < 0.8) {
2798
- t = 1.25 * s;
2799
- k_0 = 0;
2800
- k_1 = 0.8 * C_0;
2801
- k_2 = 1 - k_1 / C_mid;
2802
- } else {
2803
- t = 5 * (s - 0.8);
2804
- k_0 = C_mid;
2805
- k_1 = 0.2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
2806
- k_2 = 1 - k_1 / (C_max - C_mid);
2807
- }
2808
- let C = k_0 + t * k_1 / (1 - k_2 * t);
2809
- ret.a = C * a_;
2810
- ret.b = C * b_;
2811
- return ret;
2812
- }
2813
-
2814
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsl/modeOkhsl.js
2815
- var modeOkhsl = {
2816
- ...definition_default7,
2817
- mode: "okhsl",
2818
- channels: ["h", "s", "l", "alpha"],
2819
- parse: ["--okhsl"],
2820
- serialize: "--okhsl",
2821
- fromMode: {
2822
- oklab: convertOklabToOkhsl,
2823
- rgb: (c2) => convertOklabToOkhsl(convertRgbToOklab_default(c2))
2824
- },
2825
- toMode: {
2826
- oklab: convertOkhslToOklab,
2827
- rgb: (c2) => convertOklabToRgb_default(convertOkhslToOklab(c2))
2828
- }
2829
- };
2830
- var modeOkhsl_default = modeOkhsl;
2831
-
2832
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/convertOklabToOkhsv.js
2833
- function convertOklabToOkhsv(lab2) {
2834
- let l = lab2.l !== void 0 ? lab2.l : 0;
2835
- let a = lab2.a !== void 0 ? lab2.a : 0;
2836
- let b = lab2.b !== void 0 ? lab2.b : 0;
2837
- let c2 = Math.sqrt(a * a + b * b);
2838
- let a_ = c2 ? a / c2 : 1;
2839
- let b_ = c2 ? b / c2 : 1;
2840
- let [S_max, T] = get_ST_max(a_, b_);
2841
- let S_0 = 0.5;
2842
- let k4 = 1 - S_0 / S_max;
2843
- let t = T / (c2 + l * T);
2844
- let L_v = t * l;
2845
- let C_v = t * c2;
2846
- let L_vt = toe_inv(L_v);
2847
- let C_vt = C_v * L_vt / L_v;
2848
- let rgb_scale = convertOklabToLrgb_default({ l: L_vt, a: a_ * C_vt, b: b_ * C_vt });
2849
- let scale_L = Math.cbrt(
2850
- 1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)
2851
- );
2852
- l = l / scale_L;
2853
- c2 = c2 / scale_L * toe(l) / l;
2854
- l = toe(l);
2855
- const ret = {
2856
- mode: "okhsv",
2857
- s: c2 ? (S_0 + T) * C_v / (T * S_0 + T * k4 * C_v) : 0,
2858
- v: l ? l / L_v : 0
2859
- };
2860
- if (ret.s) {
2861
- ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
2862
- }
2863
- if (lab2.alpha !== void 0) {
2864
- ret.alpha = lab2.alpha;
2865
- }
2866
- return ret;
2867
- }
2868
-
2869
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/convertOkhsvToOklab.js
2870
- function convertOkhsvToOklab(hsv2) {
2871
- const ret = { mode: "oklab" };
2872
- if (hsv2.alpha !== void 0) {
2873
- ret.alpha = hsv2.alpha;
2874
- }
2875
- const h = hsv2.h !== void 0 ? hsv2.h : 0;
2876
- const s = hsv2.s !== void 0 ? hsv2.s : 0;
2877
- const v = hsv2.v !== void 0 ? hsv2.v : 0;
2878
- const a_ = Math.cos(h / 180 * Math.PI);
2879
- const b_ = Math.sin(h / 180 * Math.PI);
2880
- const [S_max, T] = get_ST_max(a_, b_);
2881
- const S_0 = 0.5;
2882
- const k4 = 1 - S_0 / S_max;
2883
- const L_v = 1 - s * S_0 / (S_0 + T - T * k4 * s);
2884
- const C_v = s * T * S_0 / (S_0 + T - T * k4 * s);
2885
- const L_vt = toe_inv(L_v);
2886
- const C_vt = C_v * L_vt / L_v;
2887
- const rgb_scale = convertOklabToLrgb_default({
2888
- l: L_vt,
2889
- a: a_ * C_vt,
2890
- b: b_ * C_vt
2891
- });
2892
- const scale_L = Math.cbrt(
2893
- 1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)
2894
- );
2895
- const L_new = toe_inv(v * L_v);
2896
- const C = C_v * L_new / L_v;
2897
- ret.l = L_new * scale_L;
2898
- ret.a = C * a_ * scale_L;
2899
- ret.b = C * b_ * scale_L;
2900
- return ret;
2901
- }
2902
-
2903
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/okhsv/modeOkhsv.js
2904
- var modeOkhsv = {
2905
- ...definition_default8,
2906
- mode: "okhsv",
2907
- channels: ["h", "s", "v", "alpha"],
2908
- parse: ["--okhsv"],
2909
- serialize: "--okhsv",
2910
- fromMode: {
2911
- oklab: convertOklabToOkhsv,
2912
- rgb: (c2) => convertOklabToOkhsv(convertRgbToOklab_default(c2))
2913
- },
2914
- toMode: {
2915
- oklab: convertOkhsvToOklab,
2916
- rgb: (c2) => convertOklabToRgb_default(convertOkhsvToOklab(c2))
2917
- }
2918
- };
2919
- var modeOkhsv_default = modeOkhsv;
2920
-
2921
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/parseOklab.js
2922
- function parseOklab(color, parsed) {
2923
- if (!parsed || parsed[0] !== "oklab") {
2924
- return void 0;
2925
- }
2926
- const res = { mode: "oklab" };
2927
- const [, l, a, b, alpha] = parsed;
2928
- if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {
2929
- return void 0;
2930
- }
2931
- if (l.type !== Tok.None) {
2932
- res.l = Math.min(
2933
- Math.max(0, l.type === Tok.Number ? l.value : l.value / 100),
2934
- 1
2935
- );
2936
- }
2937
- if (a.type !== Tok.None) {
2938
- res.a = a.type === Tok.Number ? a.value : a.value * 0.4 / 100;
2939
- }
2940
- if (b.type !== Tok.None) {
2941
- res.b = b.type === Tok.Number ? b.value : b.value * 0.4 / 100;
2942
- }
2943
- if (alpha.type !== Tok.None) {
2944
- res.alpha = Math.min(
2945
- 1,
2946
- Math.max(
2947
- 0,
2948
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
2949
- )
2950
- );
2951
- }
2952
- return res;
2953
- }
2954
- var parseOklab_default = parseOklab;
2955
-
2956
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklab/definition.js
2957
- var definition20 = {
2958
- ...definition_default13,
2959
- mode: "oklab",
2960
- toMode: {
2961
- lrgb: convertOklabToLrgb_default,
2962
- rgb: convertOklabToRgb_default
2963
- },
2964
- fromMode: {
2965
- lrgb: convertLrgbToOklab_default,
2966
- rgb: convertRgbToOklab_default
2967
- },
2968
- ranges: {
2969
- l: [0, 1],
2970
- a: [-0.4, 0.4],
2971
- b: [-0.4, 0.4]
2972
- },
2973
- parse: [parseOklab_default],
2974
- serialize: (c2) => `oklab(${c2.l !== void 0 ? c2.l : "none"} ${c2.a !== void 0 ? c2.a : "none"} ${c2.b !== void 0 ? c2.b : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`
2975
- };
2976
- var definition_default20 = definition20;
2977
-
2978
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklch/parseOklch.js
2979
- function parseOklch(color, parsed) {
2980
- if (!parsed || parsed[0] !== "oklch") {
2981
- return void 0;
2982
- }
2983
- const res = { mode: "oklch" };
2984
- const [, l, c2, h, alpha] = parsed;
2985
- if (l.type !== Tok.None) {
2986
- if (l.type === Tok.Hue) {
2987
- return void 0;
2988
- }
2989
- res.l = Math.min(
2990
- Math.max(0, l.type === Tok.Number ? l.value : l.value / 100),
2991
- 1
2992
- );
2993
- }
2994
- if (c2.type !== Tok.None) {
2995
- res.c = Math.max(
2996
- 0,
2997
- c2.type === Tok.Number ? c2.value : c2.value * 0.4 / 100
2998
- );
2999
- }
3000
- if (h.type !== Tok.None) {
3001
- if (h.type === Tok.Percentage) {
3002
- return void 0;
3003
- }
3004
- res.h = h.value;
3005
- }
3006
- if (alpha.type !== Tok.None) {
3007
- res.alpha = Math.min(
3008
- 1,
3009
- Math.max(
3010
- 0,
3011
- alpha.type === Tok.Number ? alpha.value : alpha.value / 100
3012
- )
3013
- );
3014
- }
3015
- return res;
3016
- }
3017
- var parseOklch_default = parseOklch;
3018
-
3019
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/oklch/definition.js
3020
- var definition21 = {
3021
- ...definition_default15,
3022
- mode: "oklch",
3023
- toMode: {
3024
- oklab: (c2) => convertLchToLab_default(c2, "oklab"),
3025
- rgb: (c2) => convertOklabToRgb_default(convertLchToLab_default(c2, "oklab"))
3026
- },
3027
- fromMode: {
3028
- rgb: (c2) => convertLabToLch_default(convertRgbToOklab_default(c2), "oklch"),
3029
- oklab: (c2) => convertLabToLch_default(c2, "oklch")
3030
- },
3031
- parse: [parseOklch_default],
3032
- serialize: (c2) => `oklch(${c2.l !== void 0 ? c2.l : "none"} ${c2.c !== void 0 ? c2.c : "none"} ${c2.h !== void 0 ? c2.h : "none"}${c2.alpha < 1 ? ` / ${c2.alpha}` : ""})`,
3033
- ranges: {
3034
- l: [0, 1],
3035
- c: [0, 0.4],
3036
- h: [0, 360]
3037
- }
3038
- };
3039
- var definition_default21 = definition21;
3040
-
3041
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/convertP3ToXyz65.js
3042
- var convertP3ToXyz65 = (rgb2) => {
3043
- let { r, g, b, alpha } = convertRgbToLrgb_default(rgb2);
3044
- let res = {
3045
- mode: "xyz65",
3046
- x: 0.486570948648216 * r + 0.265667693169093 * g + 0.1982172852343625 * b,
3047
- y: 0.2289745640697487 * r + 0.6917385218365062 * g + 0.079286914093745 * b,
3048
- z: 0 * r + 0.0451133818589026 * g + 1.043944368900976 * b
3049
- };
3050
- if (alpha !== void 0) {
3051
- res.alpha = alpha;
3052
- }
3053
- return res;
3054
- };
3055
- var convertP3ToXyz65_default = convertP3ToXyz65;
3056
-
3057
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/convertXyz65ToP3.js
3058
- var convertXyz65ToP3 = ({ x, y, z, alpha }) => {
3059
- if (x === void 0) x = 0;
3060
- if (y === void 0) y = 0;
3061
- if (z === void 0) z = 0;
3062
- let res = convertLrgbToRgb_default(
3063
- {
3064
- r: x * 2.4934969119414263 - y * 0.9313836179191242 - 0.402710784450717 * z,
3065
- g: x * -0.8294889695615749 + y * 1.7626640603183465 + 0.0236246858419436 * z,
3066
- b: x * 0.0358458302437845 - y * 0.0761723892680418 + 0.9568845240076871 * z
3067
- },
3068
- "p3"
3069
- );
3070
- if (alpha !== void 0) {
3071
- res.alpha = alpha;
3072
- }
3073
- return res;
3074
- };
3075
- var convertXyz65ToP3_default = convertXyz65ToP3;
3076
-
3077
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/p3/definition.js
3078
- var definition22 = {
3079
- ...definition_default,
3080
- mode: "p3",
3081
- parse: ["display-p3"],
3082
- serialize: "display-p3",
3083
- fromMode: {
3084
- rgb: (color) => convertXyz65ToP3_default(convertRgbToXyz65_default(color)),
3085
- xyz65: convertXyz65ToP3_default
3086
- },
3087
- toMode: {
3088
- rgb: (color) => convertXyz65ToRgb_default(convertP3ToXyz65_default(color)),
3089
- xyz65: convertP3ToXyz65_default
3090
- }
3091
- };
3092
- var definition_default22 = definition22;
3093
-
3094
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/convertXyz50ToProphoto.js
3095
- var gamma2 = (v) => {
3096
- let abs2 = Math.abs(v);
3097
- if (abs2 >= 1 / 512) {
3098
- return Math.sign(v) * Math.pow(abs2, 1 / 1.8);
3099
- }
3100
- return 16 * v;
3101
- };
3102
- var convertXyz50ToProphoto = ({ x, y, z, alpha }) => {
3103
- if (x === void 0) x = 0;
3104
- if (y === void 0) y = 0;
3105
- if (z === void 0) z = 0;
3106
- let res = {
3107
- mode: "prophoto",
3108
- r: gamma2(
3109
- x * 1.3457868816471585 - y * 0.2555720873797946 - 0.0511018649755453 * z
3110
- ),
3111
- g: gamma2(
3112
- x * -0.5446307051249019 + y * 1.5082477428451466 + 0.0205274474364214 * z
3113
- ),
3114
- b: gamma2(x * 0 + y * 0 + 1.2119675456389452 * z)
3115
- };
3116
- if (alpha !== void 0) {
3117
- res.alpha = alpha;
3118
- }
3119
- return res;
3120
- };
3121
- var convertXyz50ToProphoto_default = convertXyz50ToProphoto;
3122
-
3123
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/convertProphotoToXyz50.js
3124
- var linearize2 = (v = 0) => {
3125
- let abs2 = Math.abs(v);
3126
- if (abs2 >= 16 / 512) {
3127
- return Math.sign(v) * Math.pow(abs2, 1.8);
3128
- }
3129
- return v / 16;
3130
- };
3131
- var convertProphotoToXyz50 = (prophoto2) => {
3132
- let r = linearize2(prophoto2.r);
3133
- let g = linearize2(prophoto2.g);
3134
- let b = linearize2(prophoto2.b);
3135
- let res = {
3136
- mode: "xyz50",
3137
- x: 0.7977666449006423 * r + 0.1351812974005331 * g + 0.0313477341283922 * b,
3138
- y: 0.2880748288194013 * r + 0.7118352342418731 * g + 899369387256e-16 * b,
3139
- z: 0 * r + 0 * g + 0.8251046025104602 * b
3140
- };
3141
- if (prophoto2.alpha !== void 0) {
3142
- res.alpha = prophoto2.alpha;
3143
- }
3144
- return res;
3145
- };
3146
- var convertProphotoToXyz50_default = convertProphotoToXyz50;
3147
-
3148
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/prophoto/definition.js
3149
- var definition23 = {
3150
- ...definition_default,
3151
- mode: "prophoto",
3152
- parse: ["prophoto-rgb"],
3153
- serialize: "prophoto-rgb",
3154
- fromMode: {
3155
- xyz50: convertXyz50ToProphoto_default,
3156
- rgb: (color) => convertXyz50ToProphoto_default(convertRgbToXyz50_default(color))
3157
- },
3158
- toMode: {
3159
- xyz50: convertProphotoToXyz50_default,
3160
- rgb: (color) => convertXyz50ToRgb_default(convertProphotoToXyz50_default(color))
3161
- }
3162
- };
3163
- var definition_default23 = definition23;
3164
-
3165
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/convertXyz65ToRec2020.js
3166
- var \u03B1 = 1.09929682680944;
3167
- var \u03B2 = 0.018053968510807;
3168
- var gamma3 = (v) => {
3169
- const abs2 = Math.abs(v);
3170
- if (abs2 > \u03B2) {
3171
- return (Math.sign(v) || 1) * (\u03B1 * Math.pow(abs2, 0.45) - (\u03B1 - 1));
3172
- }
3173
- return 4.5 * v;
3174
- };
3175
- var convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {
3176
- if (x === void 0) x = 0;
3177
- if (y === void 0) y = 0;
3178
- if (z === void 0) z = 0;
3179
- let res = {
3180
- mode: "rec2020",
3181
- r: gamma3(
3182
- x * 1.7166511879712683 - y * 0.3556707837763925 - 0.2533662813736599 * z
3183
- ),
3184
- g: gamma3(
3185
- x * -0.6666843518324893 + y * 1.6164812366349395 + 0.0157685458139111 * z
3186
- ),
3187
- b: gamma3(
3188
- x * 0.0176398574453108 - y * 0.0427706132578085 + 0.9421031212354739 * z
3189
- )
3190
- };
3191
- if (alpha !== void 0) {
3192
- res.alpha = alpha;
3193
- }
3194
- return res;
3195
- };
3196
- var convertXyz65ToRec2020_default = convertXyz65ToRec2020;
3197
-
3198
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/convertRec2020ToXyz65.js
3199
- var \u03B12 = 1.09929682680944;
3200
- var \u03B22 = 0.018053968510807;
3201
- var linearize3 = (v = 0) => {
3202
- let abs2 = Math.abs(v);
3203
- if (abs2 < \u03B22 * 4.5) {
3204
- return v / 4.5;
3205
- }
3206
- return (Math.sign(v) || 1) * Math.pow((abs2 + \u03B12 - 1) / \u03B12, 1 / 0.45);
3207
- };
3208
- var convertRec2020ToXyz65 = (rec20202) => {
3209
- let r = linearize3(rec20202.r);
3210
- let g = linearize3(rec20202.g);
3211
- let b = linearize3(rec20202.b);
3212
- let res = {
3213
- mode: "xyz65",
3214
- x: 0.6369580483012911 * r + 0.1446169035862083 * g + 0.1688809751641721 * b,
3215
- y: 0.262700212011267 * r + 0.6779980715188708 * g + 0.059301716469862 * b,
3216
- z: 0 * r + 0.0280726930490874 * g + 1.0609850577107909 * b
3217
- };
3218
- if (rec20202.alpha !== void 0) {
3219
- res.alpha = rec20202.alpha;
3220
- }
3221
- return res;
3222
- };
3223
- var convertRec2020ToXyz65_default = convertRec2020ToXyz65;
3224
-
3225
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/rec2020/definition.js
3226
- var definition24 = {
3227
- ...definition_default,
3228
- mode: "rec2020",
3229
- fromMode: {
3230
- xyz65: convertXyz65ToRec2020_default,
3231
- rgb: (color) => convertXyz65ToRec2020_default(convertRgbToXyz65_default(color))
3232
- },
3233
- toMode: {
3234
- xyz65: convertRec2020ToXyz65_default,
3235
- rgb: (color) => convertXyz65ToRgb_default(convertRec2020ToXyz65_default(color))
3236
- },
3237
- parse: ["rec2020"],
3238
- serialize: "rec2020"
3239
- };
3240
- var definition_default24 = definition24;
3241
-
3242
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/constants.js
3243
- var bias = 0.0037930732552754493;
3244
- var bias_cbrt = Math.cbrt(bias);
3245
-
3246
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/convertRgbToXyb.js
3247
- var transfer = (v) => Math.cbrt(v) - bias_cbrt;
3248
- var convertRgbToXyb = (color) => {
3249
- const { r, g, b, alpha } = convertRgbToLrgb_default(color);
3250
- const l = transfer(0.3 * r + 0.622 * g + 0.078 * b + bias);
3251
- const m = transfer(0.23 * r + 0.692 * g + 0.078 * b + bias);
3252
- const s = transfer(
3253
- 0.2434226892454782 * r + 0.2047674442449682 * g + 0.5518098665095535 * b + bias
3254
- );
3255
- const res = {
3256
- mode: "xyb",
3257
- x: (l - m) / 2,
3258
- y: (l + m) / 2,
3259
- /* Apply default chroma from luma (subtract Y from B) */
3260
- b: s - (l + m) / 2
3261
- };
3262
- if (alpha !== void 0) res.alpha = alpha;
3263
- return res;
3264
- };
3265
- var convertRgbToXyb_default = convertRgbToXyb;
3266
-
3267
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/convertXybToRgb.js
3268
- var transfer2 = (v) => Math.pow(v + bias_cbrt, 3);
3269
- var convertXybToRgb = ({ x, y, b, alpha }) => {
3270
- if (x === void 0) x = 0;
3271
- if (y === void 0) y = 0;
3272
- if (b === void 0) b = 0;
3273
- const l = transfer2(x + y) - bias;
3274
- const m = transfer2(y - x) - bias;
3275
- const s = transfer2(b + y) - bias;
3276
- const res = convertLrgbToRgb_default({
3277
- r: 11.031566904639861 * l - 9.866943908131562 * m - 0.16462299650829934 * s,
3278
- g: -3.2541473810744237 * l + 4.418770377582723 * m - 0.16462299650829934 * s,
3279
- b: -3.6588512867136815 * l + 2.7129230459360922 * m + 1.9459282407775895 * s
3280
- });
3281
- if (alpha !== void 0) res.alpha = alpha;
3282
- return res;
3283
- };
3284
- var convertXybToRgb_default = convertXybToRgb;
3285
-
3286
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyb/definition.js
3287
- var definition25 = {
3288
- mode: "xyb",
3289
- channels: ["x", "y", "b", "alpha"],
3290
- parse: ["--xyb"],
3291
- serialize: "--xyb",
3292
- toMode: {
3293
- rgb: convertXybToRgb_default
3294
- },
3295
- fromMode: {
3296
- rgb: convertRgbToXyb_default
3297
- },
3298
- ranges: {
3299
- x: [-0.0154, 0.0281],
3300
- y: [0, 0.8453],
3301
- b: [-0.2778, 0.388]
3302
- },
3303
- interpolate: {
3304
- x: interpolatorLinear,
3305
- y: interpolatorLinear,
3306
- b: interpolatorLinear,
3307
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
3308
- }
3309
- };
3310
- var definition_default25 = definition25;
3311
-
3312
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz50/definition.js
3313
- var definition26 = {
3314
- mode: "xyz50",
3315
- parse: ["xyz-d50"],
3316
- serialize: "xyz-d50",
3317
- toMode: {
3318
- rgb: convertXyz50ToRgb_default,
3319
- lab: convertXyz50ToLab_default
3320
- },
3321
- fromMode: {
3322
- rgb: convertRgbToXyz50_default,
3323
- lab: convertLabToXyz50_default
3324
- },
3325
- channels: ["x", "y", "z", "alpha"],
3326
- ranges: {
3327
- x: [0, 0.964],
3328
- y: [0, 0.999],
3329
- z: [0, 0.825]
3330
- },
3331
- interpolate: {
3332
- x: interpolatorLinear,
3333
- y: interpolatorLinear,
3334
- z: interpolatorLinear,
3335
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
3336
- }
3337
- };
3338
- var definition_default26 = definition26;
3339
-
3340
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToXyz50.js
3341
- var convertXyz65ToXyz50 = (xyz652) => {
3342
- let { x, y, z, alpha } = xyz652;
3343
- if (x === void 0) x = 0;
3344
- if (y === void 0) y = 0;
3345
- if (z === void 0) z = 0;
3346
- let res = {
3347
- mode: "xyz50",
3348
- x: 1.0479298208405488 * x + 0.0229467933410191 * y - 0.0501922295431356 * z,
3349
- y: 0.0296278156881593 * x + 0.990434484573249 * y - 0.0170738250293851 * z,
3350
- z: -0.0092430581525912 * x + 0.0150551448965779 * y + 0.7518742899580008 * z
3351
- };
3352
- if (alpha !== void 0) {
3353
- res.alpha = alpha;
3354
- }
3355
- return res;
3356
- };
3357
- var convertXyz65ToXyz50_default = convertXyz65ToXyz50;
3358
-
3359
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz50ToXyz65.js
3360
- var convertXyz50ToXyz65 = (xyz502) => {
3361
- let { x, y, z, alpha } = xyz502;
3362
- if (x === void 0) x = 0;
3363
- if (y === void 0) y = 0;
3364
- if (z === void 0) z = 0;
3365
- let res = {
3366
- mode: "xyz65",
3367
- x: 0.9554734527042182 * x - 0.0230985368742614 * y + 0.0632593086610217 * z,
3368
- y: -0.0283697069632081 * x + 1.0099954580058226 * y + 0.021041398966943 * z,
3369
- z: 0.0123140016883199 * x - 0.0205076964334779 * y + 1.3303659366080753 * z
3370
- };
3371
- if (alpha !== void 0) {
3372
- res.alpha = alpha;
3373
- }
3374
- return res;
3375
- };
3376
- var convertXyz50ToXyz65_default = convertXyz50ToXyz65;
3377
-
3378
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/xyz65/definition.js
3379
- var definition27 = {
3380
- mode: "xyz65",
3381
- toMode: {
3382
- rgb: convertXyz65ToRgb_default,
3383
- xyz50: convertXyz65ToXyz50_default
3384
- },
3385
- fromMode: {
3386
- rgb: convertRgbToXyz65_default,
3387
- xyz50: convertXyz50ToXyz65_default
3388
- },
3389
- ranges: {
3390
- x: [0, 0.95],
3391
- y: [0, 1],
3392
- z: [0, 1.088]
3393
- },
3394
- channels: ["x", "y", "z", "alpha"],
3395
- parse: ["xyz", "xyz-d65"],
3396
- serialize: "xyz-d65",
3397
- interpolate: {
3398
- x: interpolatorLinear,
3399
- y: interpolatorLinear,
3400
- z: interpolatorLinear,
3401
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
3402
- }
3403
- };
3404
- var definition_default27 = definition27;
3405
-
3406
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/convertRgbToYiq.js
3407
- var convertRgbToYiq = ({ r, g, b, alpha }) => {
3408
- if (r === void 0) r = 0;
3409
- if (g === void 0) g = 0;
3410
- if (b === void 0) b = 0;
3411
- const res = {
3412
- mode: "yiq",
3413
- y: 0.29889531 * r + 0.58662247 * g + 0.11448223 * b,
3414
- i: 0.59597799 * r - 0.2741761 * g - 0.32180189 * b,
3415
- q: 0.21147017 * r - 0.52261711 * g + 0.31114694 * b
3416
- };
3417
- if (alpha !== void 0) res.alpha = alpha;
3418
- return res;
3419
- };
3420
- var convertRgbToYiq_default = convertRgbToYiq;
3421
-
3422
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/convertYiqToRgb.js
3423
- var convertYiqToRgb = ({ y, i, q, alpha }) => {
3424
- if (y === void 0) y = 0;
3425
- if (i === void 0) i = 0;
3426
- if (q === void 0) q = 0;
3427
- const res = {
3428
- mode: "rgb",
3429
- r: y + 0.95608445 * i + 0.6208885 * q,
3430
- g: y - 0.27137664 * i - 0.6486059 * q,
3431
- b: y - 1.10561724 * i + 1.70250126 * q
3432
- };
3433
- if (alpha !== void 0) res.alpha = alpha;
3434
- return res;
3435
- };
3436
- var convertYiqToRgb_default = convertYiqToRgb;
3437
-
3438
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/yiq/definition.js
3439
- var definition28 = {
3440
- mode: "yiq",
3441
- toMode: {
3442
- rgb: convertYiqToRgb_default
3443
- },
3444
- fromMode: {
3445
- rgb: convertRgbToYiq_default
3446
- },
3447
- channels: ["y", "i", "q", "alpha"],
3448
- parse: ["--yiq"],
3449
- serialize: "--yiq",
3450
- ranges: {
3451
- i: [-0.595, 0.595],
3452
- q: [-0.522, 0.522]
3453
- },
3454
- interpolate: {
3455
- y: interpolatorLinear,
3456
- i: interpolatorLinear,
3457
- q: interpolatorLinear,
3458
- alpha: { use: interpolatorLinear, fixup: fixupAlpha }
3459
- }
3460
- };
3461
- var definition_default28 = definition28;
3462
-
3463
- // ../../node_modules/.pnpm/culori@4.0.2/node_modules/culori/src/index.js
3464
- var a98 = useMode(definition_default2);
3465
- var cubehelix = useMode(definition_default3);
3466
- var dlab = useMode(definition_default4);
3467
- var dlch = useMode(definition_default5);
3468
- var hsi = useMode(definition_default6);
3469
- var hsl = useMode(definition_default7);
3470
- var hsv = useMode(definition_default8);
3471
- var hwb = useMode(definition_default9);
3472
- var itp = useMode(definition_default10);
3473
- var jab = useMode(definition_default11);
3474
- var jch = useMode(definition_default12);
3475
- var lab = useMode(definition_default13);
3476
- var lab65 = useMode(definition_default14);
3477
- var lch = useMode(definition_default15);
3478
- var lch65 = useMode(definition_default16);
3479
- var lchuv = useMode(definition_default17);
3480
- var lrgb = useMode(definition_default18);
3481
- var luv = useMode(definition_default19);
3482
- var okhsl = useMode(modeOkhsl_default);
3483
- var okhsv = useMode(modeOkhsv_default);
3484
- var oklab = useMode(definition_default20);
3485
- var oklch = useMode(definition_default21);
3486
- var p3 = useMode(definition_default22);
3487
- var prophoto = useMode(definition_default23);
3488
- var rec2020 = useMode(definition_default24);
3489
- var rgb = useMode(definition_default);
3490
- var xyb = useMode(definition_default25);
3491
- var xyz50 = useMode(definition_default26);
3492
- var xyz65 = useMode(definition_default27);
3493
- var yiq = useMode(definition_default28);
3494
-
3495
- // ../brand-derivation/src/contrastSafe.ts
3496
- var toRgb = converter_default("rgb");
3497
- function hexToRgb(hex2) {
3498
- const c2 = toRgb(hex2);
3499
- if (!c2) return [0, 0, 0];
3500
- return [Math.round(c2.r * 255), Math.round(c2.g * 255), Math.round(c2.b * 255)];
3501
- }
3502
- function colorMix(a, b, ratio) {
3503
- const [ar, ag, ab] = hexToRgb(a);
3504
- const [br, bg, bb] = hexToRgb(b);
3505
- const t = Math.max(0, Math.min(1, ratio));
3506
- const inv = 1 - t;
3507
- const r = Math.round(ar * inv + br * t);
3508
- const g = Math.round(ag * inv + bg * t);
3509
- const bl = Math.round(ab * inv + bb * t);
3510
- return "#" + [r, g, bl].map((v) => v.toString(16).padStart(2, "0")).join("");
3511
- }
3512
- function lc(fg, bg) {
3513
- return Math.abs(Number(APCAcontrast(sRGBtoY(hexToRgb(fg)), sRGBtoY(hexToRgb(bg)))));
3514
- }
3515
- function relativeLuminance(hex2) {
3516
- return sRGBtoY(hexToRgb(hex2));
3517
- }
3518
- function apcaLcFromLuminance(fgY, bgY) {
3519
- return Math.abs(Number(APCAcontrast(fgY, bgY)));
3520
- }
3521
- function apcaLc(fg, bg) {
3522
- return lc(fg, bg);
3523
- }
3524
- function clampToFloor(fg, bg, floor) {
3525
- if (lc(fg, bg) >= floor) return fg;
3526
- const candidates = [fg, NEUTRAL_RAMP.onDark, NEUTRAL_RAMP.onLight];
3527
- return candidates.reduce((best, c2) => lc(c2, bg) > lc(best, bg) ? c2 : best);
3528
- }
3529
- function deriveCaption(seedText, background) {
3530
- const onBrand = clampToFloor(seedText, background, FLOORS.body);
3531
- if (lc(onBrand, background) >= FLOORS.body) {
3532
- return { captionScrim: background, captionFg: onBrand };
3533
- }
3534
- return { captionScrim: NEUTRAL_RAMP.onLight, captionFg: NEUTRAL_RAMP.onDark };
3535
- }
3536
- function deriveContrastSafe(seed) {
3537
- const background = seed.background;
3538
- const text = clampToFloor(seed.text, background, FLOORS.body);
3539
- const accent = seed.accent;
3540
- const { captionScrim, captionFg } = deriveCaption(seed.text, background);
3541
- const surface = colorMix(background, text, 0.06);
3542
- const card = colorMix(background, text, 0.1);
3543
- const gridLine = colorMix(background, text, 0.08);
3544
- const accentMuted = colorMix(accent, background, 0.35);
3545
- const textOnAccent = clampToFloor(text, accent, FLOORS.body);
3546
- const textOnSurface = clampToFloor(text, surface, FLOORS.body);
3547
- return {
3548
- background,
3549
- text,
3550
- textMuted: clampToFloor(seed.text, background, FLOORS.nonBody),
3551
- accent,
3552
- captionScrim,
3553
- captionFg,
3554
- surface,
3555
- card,
3556
- gridLine,
3557
- accentMuted,
3558
- textOnAccent,
3559
- textOnSurface
3560
- };
3561
- }
3562
-
3563
- export {
3564
- relativeLuminance,
3565
- apcaLcFromLuminance,
3566
- apcaLc,
3567
- clampToFloor,
3568
- deriveContrastSafe
3569
- };
3570
- /*! Bundled license information:
3571
-
3572
- colorparsley/src/colorparsley.js:
3573
- (** @preserve
3574
- ///// CoLoR PaRsLeY a simple set of color parsing thingies!
3575
- ///// Beta 0.1.8 Revision date: June 04, 2022
3576
- /////
3577
- ///// Functions to parse color values and return array
3578
- ///// Copyright (c) 2019-2022 by Andrew Somers. All Rights Reserved.
3579
- ///// LICENSE: AGPL 3
3580
- ///// CONTACT: Please use the ISSUES or DISCUSSIONS tab at:
3581
- ///// https://github.com/Myndex/colorparsley/
3582
- /////
3583
- ///////////////////////////////////////////////////////////////////////////////
3584
- /////
3585
- ///// IMPORT:
3586
- ///// import { colorParsley } from 'colorparsley';
3587
- /////
3588
- ///// let rgbaArray = colorParsley('#abcdef');
3589
- /////
3590
- ///// Output as array: [r,g,b,a,isValid,colorspace]
3591
- ///// Example: [123,123,123,1.0,true,'sRGB']
3592
- // *)
3593
-
3594
- apca-w3/src/apca-w3.js:
3595
- (** @preserve
3596
- ///// SAPC APCA - Advanced Perceptual Contrast Algorithm
3597
- ///// Beta 0.1.9 W3 • contrast function only
3598
- ///// DIST: W3 • Revision date: July 3, 2022
3599
- ///// Function to parse color values and determine Lc contrast
3600
- ///// Copyright © 2019-2022 by Andrew Somers. All Rights Reserved.
3601
- ///// LICENSE: W3 LICENSE
3602
- ///// CONTACT: Please use the ISSUES or DISCUSSIONS tab at:
3603
- ///// https://github.com/Myndex/SAPC-APCA/
3604
- /////
3605
- ///////////////////////////////////////////////////////////////////////////////
3606
- /////
3607
- ///// MINIMAL IMPORTS:
3608
- ///// import { APCAcontrast, sRGBtoY, displayP3toY,
3609
- ///// calcAPCA, fontLookupAPCA } from 'apca-w3';
3610
- ///// import { colorParsley } from 'colorparsley';
3611
- /////
3612
- ///// FORWARD CONTRAST USAGE:
3613
- ///// Lc = APCAcontrast( sRGBtoY( TEXTcolor ) , sRGBtoY( BACKGNDcolor ) );
3614
- ///// Where the colors are sent as an rgba array [255,255,255,1]
3615
- /////
3616
- ///// Retrieving an array of font sizes for the contrast:
3617
- ///// fontArray = fontLookupAPCA(Lc);
3618
- /////
3619
- ///// Live Demonstrator at https://www.myndex.com/APCA/
3620
- // *)
3621
- */