@vireo-ai/trellis-ui 0.1.59 → 0.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/README.md +0 -1
  2. package/THIRD_PARTY_NOTICES.md +2 -0
  3. package/package.json +49 -40
  4. package/packages/client/src/components/field/styles.css +2 -1
  5. package/packages/client/src/styles/components.css +1 -0
  6. package/packages/client/src/styles/static.css +0 -1
  7. package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
  8. package/packages/client/types/capabilities/anchor.d.ts +7 -0
  9. package/packages/client/types/capabilities/anchor.entry.generated.d.ts +3 -0
  10. package/packages/client/types/components/accordion/runtime-docs.d.ts +1 -0
  11. package/packages/client/types/components/checkbox/runtime-docs.d.ts +1 -0
  12. package/packages/client/types/components/data-grid/runtime-docs.d.ts +1 -0
  13. package/packages/client/types/components/date-picker/runtime-docs.d.ts +1 -0
  14. package/packages/client/types/components/direct-upload/runtime-docs.d.ts +1 -0
  15. package/packages/client/types/components/dropdown/runtime-docs.d.ts +1 -0
  16. package/packages/client/types/components/entry.generated.d.ts +1 -0
  17. package/packages/client/types/components/field/runtime-docs.d.ts +1 -0
  18. package/packages/client/types/components/file-upload/index.d.ts +3 -2
  19. package/packages/client/types/components/file-upload/runtime-docs.d.ts +1 -0
  20. package/packages/client/types/components/formset/runtime-docs.d.ts +1 -0
  21. package/packages/client/types/components/image/contract.d.ts +1 -1
  22. package/packages/client/types/components/modal/runtime-docs.d.ts +1 -0
  23. package/packages/client/types/components/panels/runtime-docs.d.ts +1 -0
  24. package/packages/client/types/components/radio/runtime-docs.d.ts +1 -0
  25. package/packages/client/types/components/scroll-area/runtime-docs.d.ts +1 -0
  26. package/packages/client/types/components/select/index.d.ts +3 -2
  27. package/packages/client/types/components/select/runtime-docs.d.ts +1 -0
  28. package/packages/client/types/components/sidebar/runtime-docs.d.ts +1 -0
  29. package/packages/client/types/components/slider/runtime-docs.d.ts +1 -0
  30. package/packages/client/types/components/switch/runtime-docs.d.ts +1 -0
  31. package/packages/client/types/components/tabs/runtime-docs.d.ts +1 -0
  32. package/packages/client/types/components/toast/runtime-docs.d.ts +1 -0
  33. package/packages/client/types/components/tooltip/runtime-docs.d.ts +1 -0
  34. package/packages/client/types/components/virtualizer/runtime-docs.d.ts +1 -0
  35. package/packages/client/types/directives/anchor.d.ts +26 -0
  36. package/packages/client/types/directives/index.d.ts +1 -0
  37. package/packages/client/types/runtime/anchored-popover.d.ts +4 -2
  38. package/packages/client/types/runtime/item-template.d.ts +13 -0
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis-103fb43eb5e1.css +14030 -0
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +23 -23
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-584dec82495c.css +2 -0
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-COxhbtRZ.js +1 -0
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge.js +1 -1
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +386 -346
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor-B-CbpFFU.js +2 -0
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor-B-CbpFFU.js.map +1 -0
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor.js +2 -0
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js +2 -0
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js.map +1 -0
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +2 -2
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-Ctqx_OoS.js +2 -0
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-Ctqx_OoS.js.map +1 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +2 -2
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-D2NgvMgw.js +2 -0
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-D2NgvMgw.js.map +1 -0
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +2 -2
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable-CbIOS4Lm.js +2 -0
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable-CbIOS4Lm.js.map +1 -0
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -2
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js +2 -0
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js.map +1 -0
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js +2 -0
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-D_BJBnwB.js.map → capability-motion-B32HePGn.js.map} +1 -1
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js +5 -0
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-BDbURlVO.js.map → capability-sortable-Bl6ng6Hd.js.map} +1 -1
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js.map +1 -1
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js +2 -0
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{core-Ybm_WmKr.js.map → core-BxNepYBE.js.map} +1 -1
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js +2 -0
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js.map +1 -0
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DDrayI_M.js → entry.generated-BRaKxvab.js} +2 -2
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DDrayI_M.js.map → entry.generated-BRaKxvab.js.map} +1 -1
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +1 -1
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-OT_bt7F2.js → entry.generated-BzLNUDzF.js} +2 -2
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js.map +1 -0
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js +2 -0
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js.map +1 -0
  79. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js +2 -0
  80. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js.map +1 -0
  81. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BgGSoQFS.js → entry.generated-Cbyseoex.js} +2 -2
  82. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js.map +1 -0
  83. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js +2 -0
  84. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js.map +1 -0
  85. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +1 -1
  86. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js +2 -0
  87. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js.map +1 -0
  88. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-dcqwycC7.js → entry.generated-Ct9H8Hlf.js} +2 -2
  89. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js.map +1 -0
  90. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js.map +1 -1
  91. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js +2 -0
  92. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js.map +1 -0
  93. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js +2 -0
  94. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js.map +1 -0
  95. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js +2 -0
  96. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js.map +1 -0
  97. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-crNQSZEa.js → flip-BKThFI4L.js} +2 -2
  98. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{flip-crNQSZEa.js.map → flip-BKThFI4L.js.map} +1 -1
  99. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/item-template-DSfME41Q.js +2 -0
  100. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/item-template-DSfME41Q.js.map +1 -0
  101. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B90yNOaV.js → motion-RwlK04Cy.js} +2 -2
  102. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-B90yNOaV.js.map → motion-RwlK04Cy.js.map} +1 -1
  103. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CQDZhwd_.js.map +1 -1
  104. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{ui-CTQoglp3.js → ui-Bg44ZmC3.js} +4 -4
  105. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js.map +1 -0
  106. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/warn-BbGtqbh1.js +2 -0
  107. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/warn-BbGtqbh1.js.map +1 -0
  108. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DpoqsP_I.js +1 -0
  109. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +2 -1
  110. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-Dnf0aKac.js +1 -0
  111. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button.js +2 -1
  112. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-BpFFtrfY.js +1 -0
  113. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +2 -1
  114. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-CCPYnOuT.js +1 -0
  115. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +2 -1
  116. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-BCkP5gtC.js +1 -0
  117. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +2 -1
  118. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-DaT6-YFL.js +1 -0
  119. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +2 -1
  120. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-Cc84envj.js +1 -0
  121. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +2 -1
  122. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-CtQbyblj.js +1 -0
  123. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +2 -1
  124. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DARtpJDT.js +1 -0
  125. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +2 -1
  126. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-CPO4XZkB.js +1 -0
  127. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +2 -1
  128. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-C-3lKsKm.js +1 -0
  129. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +2 -1
  130. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js +2 -0
  131. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js.map +1 -0
  132. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +2 -2
  133. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-BKEbDkKa.js +1 -0
  134. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +2 -1
  135. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-RIi2q1IT.js +1 -0
  136. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +2 -1
  137. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-MUHGUsup.js +1 -0
  138. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +2 -1
  139. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-DNAroAhk.js +1 -0
  140. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +2 -1
  141. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-DrGFMWGq.js +1 -0
  142. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +2 -1
  143. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-CyUCAbgG.js +1 -0
  144. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +2 -1
  145. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-BjLF548F.js +1 -0
  146. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +2 -1
  147. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-GpvEBW3K.js +1 -0
  148. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +2 -1
  149. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-OztnTlqr.js +1 -0
  150. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +2 -1
  151. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CZ7aiASg.js +1 -0
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +2 -1
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-G3G5d2Eo.js +1 -0
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +2 -1
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-bq7j1uwx.js +1 -0
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +2 -1
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DkP0-rBO.js +1 -0
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +2 -1
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-OITEWczP.js +1 -0
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +2 -1
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-CkRX2qVO.js +1 -0
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +2 -1
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-Z4zMCScs.js +1 -0
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +2 -1
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js +2 -0
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js.map +1 -0
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +2 -2
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +160 -132
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-ecb43dfd3b7b.js +11 -0
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +7 -7
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-ecb43dfd3b7b.js +11 -0
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +7 -7
  173. package/packages/theme-engine/README.md +221 -0
  174. package/packages/theme-engine/THEME_AUTHORING.md +44 -0
  175. package/packages/theme-engine/dist/trellis.js +16935 -0
  176. package/packages/theme-engine/generated/knobs/v1/color-alpha.json +2426 -0
  177. package/packages/theme-engine/generated/knobs/v1/color-foundations.json +1582 -0
  178. package/packages/theme-engine/generated/knobs/v1/color-ink.json +6541 -0
  179. package/packages/theme-engine/generated/knobs/v1/color-lighting.json +3056 -0
  180. package/packages/theme-engine/generated/knobs/v1/color-normalization.json +1685 -0
  181. package/packages/theme-engine/generated/knobs/v1/color-ramps.json +14304 -0
  182. package/packages/theme-engine/generated/knobs/v1/composition.json +881 -0
  183. package/packages/theme-engine/generated/knobs/v1/depth.json +1705 -0
  184. package/packages/theme-engine/generated/knobs/v1/edges.json +326 -0
  185. package/packages/theme-engine/generated/knobs/v1/index.json +20096 -0
  186. package/packages/theme-engine/generated/knobs/v1/manifest.json +719 -0
  187. package/packages/theme-engine/generated/knobs/v1/motion.json +128 -0
  188. package/packages/theme-engine/generated/knobs/v1/radii.json +331 -0
  189. package/packages/theme-engine/generated/knobs/v1/semantic-actions.json +1814 -0
  190. package/packages/theme-engine/generated/knobs/v1/semantic-disabled.json +759 -0
  191. package/packages/theme-engine/generated/knobs/v1/semantic-disclosure.json +59 -0
  192. package/packages/theme-engine/generated/knobs/v1/semantic-intents.json +4841 -0
  193. package/packages/theme-engine/generated/knobs/v1/semantic-scrim.json +308 -0
  194. package/packages/theme-engine/generated/knobs/v1/semantic-selection.json +940 -0
  195. package/packages/theme-engine/generated/knobs/v1/semantic-structure.json +365 -0
  196. package/packages/theme-engine/generated/knobs/v1/sizing-anatomy.json +3112 -0
  197. package/packages/theme-engine/generated/knobs/v1/sizing-controls.json +599 -0
  198. package/packages/theme-engine/generated/knobs/v1/sizing-measures.json +1089 -0
  199. package/packages/theme-engine/generated/knobs/v1/spacing.json +1246 -0
  200. package/packages/theme-engine/generated/knobs/v1/substrates.json +315 -0
  201. package/packages/theme-engine/generated/knobs/v1/surfaces.json +870 -0
  202. package/packages/theme-engine/generated/knobs/v1/typography-anatomy.json +1754 -0
  203. package/packages/theme-engine/generated/knobs/v1/typography-fonts.json +711 -0
  204. package/packages/theme-engine/generated/knobs/v1/typography-scale.json +329 -0
  205. package/packages/theme-engine/generated/schemas/theme-config-v1.json +3987 -0
  206. package/packages/theme-engine/generated/schemas/theme-manifest-v1.json +79 -0
  207. package/packages/theme-engine/skills/create-trellis-theme/SKILL.md +108 -0
  208. package/packages/client/types/components/runtime-docs.d.ts +0 -2
  209. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js.map +0 -1
  210. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js.map +0 -1
  211. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js.map +0 -1
  212. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js.map +0 -1
  213. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js +0 -2
  214. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/anchored-popover-BwQbt4V2.js.map +0 -1
  215. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-D_BJBnwB.js +0 -2
  216. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BDbURlVO.js +0 -5
  217. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Ybm_WmKr.js +0 -2
  218. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-18lXAVBg.js +0 -2
  219. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-18lXAVBg.js.map +0 -1
  220. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2YvnuzOD.js +0 -2
  221. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-2YvnuzOD.js.map +0 -1
  222. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BITa8xFV.js +0 -2
  223. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BITa8xFV.js.map +0 -1
  224. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BSVJpGWu.js +0 -2
  225. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BSVJpGWu.js.map +0 -1
  226. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BgGSoQFS.js.map +0 -1
  227. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bp3Npe3t.js +0 -2
  228. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bp3Npe3t.js.map +0 -1
  229. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ce_fpT15.js +0 -2
  230. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ce_fpT15.js.map +0 -1
  231. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DDJEGHq-.js +0 -2
  232. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DDJEGHq-.js.map +0 -1
  233. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-OT_bt7F2.js.map +0 -1
  234. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-WRveW7p9.js +0 -2
  235. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-WRveW7p9.js.map +0 -1
  236. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-dcqwycC7.js.map +0 -1
  237. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CTQoglp3.js.map +0 -1
  238. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +0 -1
  239. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +0 -1
@@ -0,0 +1,3987 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://trellis.build/schemas/theme-config-v1.json",
4
+ "additionalProperties": false,
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "color"
9
+ ],
10
+ "properties": {
11
+ "$schema": {
12
+ "type": "string"
13
+ },
14
+ "schemaVersion": {
15
+ "const": 1,
16
+ "type": "number"
17
+ },
18
+ "color": {
19
+ "additionalProperties": false,
20
+ "type": "object",
21
+ "required": [
22
+ "appearances",
23
+ "families"
24
+ ],
25
+ "properties": {
26
+ "appearances": {
27
+ "additionalProperties": false,
28
+ "type": "object",
29
+ "required": [
30
+ "light",
31
+ "dark"
32
+ ],
33
+ "properties": {
34
+ "light": {
35
+ "$ref": "#/$defs/Appearance"
36
+ },
37
+ "dark": {
38
+ "$ref": "#/$defs/Appearance"
39
+ }
40
+ }
41
+ },
42
+ "policies": {
43
+ "$ref": "#/$defs/ColorPolicies"
44
+ },
45
+ "families": {
46
+ "additionalProperties": false,
47
+ "type": "object",
48
+ "required": [
49
+ "neutral",
50
+ "accent"
51
+ ],
52
+ "properties": {
53
+ "neutral": {
54
+ "$ref": "#/$defs/Family"
55
+ },
56
+ "accent": {
57
+ "$ref": "#/$defs/Family"
58
+ },
59
+ "status": {
60
+ "additionalProperties": false,
61
+ "type": "object",
62
+ "properties": {
63
+ "success": {
64
+ "$ref": "#/$defs/Family"
65
+ },
66
+ "warning": {
67
+ "$ref": "#/$defs/Family"
68
+ },
69
+ "danger": {
70
+ "$ref": "#/$defs/Family"
71
+ },
72
+ "information": {
73
+ "$ref": "#/$defs/Family"
74
+ }
75
+ }
76
+ },
77
+ "supporting": {
78
+ "$ref": "#/$defs/FamilyRecord"
79
+ },
80
+ "named": {
81
+ "$ref": "#/$defs/FamilyRecord"
82
+ }
83
+ }
84
+ }
85
+ }
86
+ },
87
+ "surface": {
88
+ "$ref": "#/$defs/SurfaceConfig"
89
+ },
90
+ "substrate": {
91
+ "$ref": "#/$defs/SubstrateConfig"
92
+ },
93
+ "depth": {
94
+ "$ref": "#/$defs/DepthConfig"
95
+ },
96
+ "composition": {
97
+ "$ref": "#/$defs/CompositionConfig"
98
+ },
99
+ "edge": {
100
+ "$ref": "#/$defs/EdgeConfig"
101
+ },
102
+ "radius": {
103
+ "$ref": "#/$defs/RadiusConfig"
104
+ },
105
+ "spacing": {
106
+ "$ref": "#/$defs/SpacingConfig"
107
+ },
108
+ "typography": {
109
+ "$ref": "#/$defs/TypographyConfig"
110
+ },
111
+ "sizing": {
112
+ "$ref": "#/$defs/SizingConfig"
113
+ },
114
+ "motion": {
115
+ "$ref": "#/$defs/MotionConfig"
116
+ },
117
+ "semantic": {
118
+ "$ref": "#/$defs/SemanticConfig"
119
+ }
120
+ },
121
+ "$defs": {
122
+ "RadixStep": {
123
+ "anyOf": [
124
+ {
125
+ "const": 1,
126
+ "type": "number"
127
+ },
128
+ {
129
+ "const": 2,
130
+ "type": "number"
131
+ },
132
+ {
133
+ "const": 3,
134
+ "type": "number"
135
+ },
136
+ {
137
+ "const": 4,
138
+ "type": "number"
139
+ },
140
+ {
141
+ "const": 5,
142
+ "type": "number"
143
+ },
144
+ {
145
+ "const": 6,
146
+ "type": "number"
147
+ },
148
+ {
149
+ "const": 7,
150
+ "type": "number"
151
+ },
152
+ {
153
+ "const": 8,
154
+ "type": "number"
155
+ },
156
+ {
157
+ "const": 9,
158
+ "type": "number"
159
+ },
160
+ {
161
+ "const": 10,
162
+ "type": "number"
163
+ },
164
+ {
165
+ "const": 11,
166
+ "type": "number"
167
+ },
168
+ {
169
+ "const": 12,
170
+ "type": "number"
171
+ }
172
+ ]
173
+ },
174
+ "UnitIntervalTuple": {
175
+ "type": "array",
176
+ "minItems": 12,
177
+ "maxItems": 12,
178
+ "prefixItems": [
179
+ {
180
+ "minimum": 0,
181
+ "maximum": 1,
182
+ "type": "number"
183
+ },
184
+ {
185
+ "minimum": 0,
186
+ "maximum": 1,
187
+ "type": "number"
188
+ },
189
+ {
190
+ "minimum": 0,
191
+ "maximum": 1,
192
+ "type": "number"
193
+ },
194
+ {
195
+ "minimum": 0,
196
+ "maximum": 1,
197
+ "type": "number"
198
+ },
199
+ {
200
+ "minimum": 0,
201
+ "maximum": 1,
202
+ "type": "number"
203
+ },
204
+ {
205
+ "minimum": 0,
206
+ "maximum": 1,
207
+ "type": "number"
208
+ },
209
+ {
210
+ "minimum": 0,
211
+ "maximum": 1,
212
+ "type": "number"
213
+ },
214
+ {
215
+ "minimum": 0,
216
+ "maximum": 1,
217
+ "type": "number"
218
+ },
219
+ {
220
+ "minimum": 0,
221
+ "maximum": 1,
222
+ "type": "number"
223
+ },
224
+ {
225
+ "minimum": 0,
226
+ "maximum": 1,
227
+ "type": "number"
228
+ },
229
+ {
230
+ "minimum": 0,
231
+ "maximum": 1,
232
+ "type": "number"
233
+ },
234
+ {
235
+ "minimum": 0,
236
+ "maximum": 1,
237
+ "type": "number"
238
+ }
239
+ ],
240
+ "items": false
241
+ },
242
+ "NonnegativeTuple": {
243
+ "type": "array",
244
+ "minItems": 12,
245
+ "maxItems": 12,
246
+ "prefixItems": [
247
+ {
248
+ "minimum": 0,
249
+ "maximum": 2,
250
+ "type": "number"
251
+ },
252
+ {
253
+ "minimum": 0,
254
+ "maximum": 2,
255
+ "type": "number"
256
+ },
257
+ {
258
+ "minimum": 0,
259
+ "maximum": 2,
260
+ "type": "number"
261
+ },
262
+ {
263
+ "minimum": 0,
264
+ "maximum": 2,
265
+ "type": "number"
266
+ },
267
+ {
268
+ "minimum": 0,
269
+ "maximum": 2,
270
+ "type": "number"
271
+ },
272
+ {
273
+ "minimum": 0,
274
+ "maximum": 2,
275
+ "type": "number"
276
+ },
277
+ {
278
+ "minimum": 0,
279
+ "maximum": 2,
280
+ "type": "number"
281
+ },
282
+ {
283
+ "minimum": 0,
284
+ "maximum": 2,
285
+ "type": "number"
286
+ },
287
+ {
288
+ "minimum": 0,
289
+ "maximum": 2,
290
+ "type": "number"
291
+ },
292
+ {
293
+ "minimum": 0,
294
+ "maximum": 2,
295
+ "type": "number"
296
+ },
297
+ {
298
+ "minimum": 0,
299
+ "maximum": 2,
300
+ "type": "number"
301
+ },
302
+ {
303
+ "minimum": 0,
304
+ "maximum": 2,
305
+ "type": "number"
306
+ }
307
+ ],
308
+ "items": false
309
+ },
310
+ "AdjacentDeltaETuple": {
311
+ "type": "array",
312
+ "minItems": 11,
313
+ "maxItems": 11,
314
+ "prefixItems": [
315
+ {
316
+ "minimum": 0,
317
+ "maximum": 0.5,
318
+ "type": "number"
319
+ },
320
+ {
321
+ "minimum": 0,
322
+ "maximum": 0.5,
323
+ "type": "number"
324
+ },
325
+ {
326
+ "minimum": 0,
327
+ "maximum": 0.5,
328
+ "type": "number"
329
+ },
330
+ {
331
+ "minimum": 0,
332
+ "maximum": 0.5,
333
+ "type": "number"
334
+ },
335
+ {
336
+ "minimum": 0,
337
+ "maximum": 0.5,
338
+ "type": "number"
339
+ },
340
+ {
341
+ "minimum": 0,
342
+ "maximum": 0.5,
343
+ "type": "number"
344
+ },
345
+ {
346
+ "minimum": 0,
347
+ "maximum": 0.5,
348
+ "type": "number"
349
+ },
350
+ {
351
+ "minimum": 0,
352
+ "maximum": 0.5,
353
+ "type": "number"
354
+ },
355
+ {
356
+ "minimum": 0,
357
+ "maximum": 0.5,
358
+ "type": "number"
359
+ },
360
+ {
361
+ "minimum": 0,
362
+ "maximum": 0.5,
363
+ "type": "number"
364
+ },
365
+ {
366
+ "minimum": 0,
367
+ "maximum": 0.5,
368
+ "type": "number"
369
+ }
370
+ ],
371
+ "items": false
372
+ },
373
+ "ColorInput": {
374
+ "minLength": 1,
375
+ "type": "string"
376
+ },
377
+ "SurfaceTuple": {
378
+ "type": "array",
379
+ "minItems": 8,
380
+ "maxItems": 8,
381
+ "prefixItems": [
382
+ {
383
+ "minimum": -1,
384
+ "maximum": 1,
385
+ "type": "number"
386
+ },
387
+ {
388
+ "minimum": -1,
389
+ "maximum": 1,
390
+ "type": "number"
391
+ },
392
+ {
393
+ "minimum": -1,
394
+ "maximum": 1,
395
+ "type": "number"
396
+ },
397
+ {
398
+ "minimum": -1,
399
+ "maximum": 1,
400
+ "type": "number"
401
+ },
402
+ {
403
+ "minimum": -1,
404
+ "maximum": 1,
405
+ "type": "number"
406
+ },
407
+ {
408
+ "minimum": -1,
409
+ "maximum": 1,
410
+ "type": "number"
411
+ },
412
+ {
413
+ "minimum": -1,
414
+ "maximum": 1,
415
+ "type": "number"
416
+ },
417
+ {
418
+ "minimum": -1,
419
+ "maximum": 1,
420
+ "type": "number"
421
+ }
422
+ ],
423
+ "items": false
424
+ },
425
+ "SurfaceInfluenceTuple": {
426
+ "type": "array",
427
+ "minItems": 8,
428
+ "maxItems": 8,
429
+ "prefixItems": [
430
+ {
431
+ "minimum": 0,
432
+ "maximum": 1,
433
+ "type": "number"
434
+ },
435
+ {
436
+ "minimum": 0,
437
+ "maximum": 1,
438
+ "type": "number"
439
+ },
440
+ {
441
+ "minimum": 0,
442
+ "maximum": 1,
443
+ "type": "number"
444
+ },
445
+ {
446
+ "minimum": 0,
447
+ "maximum": 1,
448
+ "type": "number"
449
+ },
450
+ {
451
+ "minimum": 0,
452
+ "maximum": 1,
453
+ "type": "number"
454
+ },
455
+ {
456
+ "minimum": 0,
457
+ "maximum": 1,
458
+ "type": "number"
459
+ },
460
+ {
461
+ "minimum": 0,
462
+ "maximum": 1,
463
+ "type": "number"
464
+ },
465
+ {
466
+ "minimum": 0,
467
+ "maximum": 1,
468
+ "type": "number"
469
+ }
470
+ ],
471
+ "items": false
472
+ },
473
+ "ShadowLength": {
474
+ "additionalProperties": false,
475
+ "type": "object",
476
+ "required": [
477
+ "value",
478
+ "unit"
479
+ ],
480
+ "properties": {
481
+ "value": {
482
+ "minimum": -200,
483
+ "maximum": 200,
484
+ "type": "number"
485
+ },
486
+ "unit": {
487
+ "anyOf": [
488
+ {
489
+ "const": "px",
490
+ "type": "string"
491
+ },
492
+ {
493
+ "const": "rem",
494
+ "type": "string"
495
+ }
496
+ ]
497
+ }
498
+ }
499
+ },
500
+ "NonnegativeShadowLength": {
501
+ "additionalProperties": false,
502
+ "type": "object",
503
+ "required": [
504
+ "value",
505
+ "unit"
506
+ ],
507
+ "properties": {
508
+ "value": {
509
+ "minimum": 0,
510
+ "maximum": 200,
511
+ "type": "number"
512
+ },
513
+ "unit": {
514
+ "anyOf": [
515
+ {
516
+ "const": "px",
517
+ "type": "string"
518
+ },
519
+ {
520
+ "const": "rem",
521
+ "type": "string"
522
+ }
523
+ ]
524
+ }
525
+ }
526
+ },
527
+ "ShadowLengthTuple": {
528
+ "type": "array",
529
+ "minItems": 8,
530
+ "maxItems": 8,
531
+ "prefixItems": [
532
+ {
533
+ "$ref": "#/$defs/ShadowLength"
534
+ },
535
+ {
536
+ "$ref": "#/$defs/ShadowLength"
537
+ },
538
+ {
539
+ "$ref": "#/$defs/ShadowLength"
540
+ },
541
+ {
542
+ "$ref": "#/$defs/ShadowLength"
543
+ },
544
+ {
545
+ "$ref": "#/$defs/ShadowLength"
546
+ },
547
+ {
548
+ "$ref": "#/$defs/ShadowLength"
549
+ },
550
+ {
551
+ "$ref": "#/$defs/ShadowLength"
552
+ },
553
+ {
554
+ "$ref": "#/$defs/ShadowLength"
555
+ }
556
+ ],
557
+ "items": false
558
+ },
559
+ "NonnegativeShadowLengthTuple": {
560
+ "type": "array",
561
+ "minItems": 8,
562
+ "maxItems": 8,
563
+ "prefixItems": [
564
+ {
565
+ "$ref": "#/$defs/NonnegativeShadowLength"
566
+ },
567
+ {
568
+ "$ref": "#/$defs/NonnegativeShadowLength"
569
+ },
570
+ {
571
+ "$ref": "#/$defs/NonnegativeShadowLength"
572
+ },
573
+ {
574
+ "$ref": "#/$defs/NonnegativeShadowLength"
575
+ },
576
+ {
577
+ "$ref": "#/$defs/NonnegativeShadowLength"
578
+ },
579
+ {
580
+ "$ref": "#/$defs/NonnegativeShadowLength"
581
+ },
582
+ {
583
+ "$ref": "#/$defs/NonnegativeShadowLength"
584
+ },
585
+ {
586
+ "$ref": "#/$defs/NonnegativeShadowLength"
587
+ }
588
+ ],
589
+ "items": false
590
+ },
591
+ "AppearanceShadowLengths": {
592
+ "additionalProperties": false,
593
+ "type": "object",
594
+ "required": [
595
+ "light",
596
+ "dark"
597
+ ],
598
+ "properties": {
599
+ "light": {
600
+ "$ref": "#/$defs/ShadowLengthTuple"
601
+ },
602
+ "dark": {
603
+ "$ref": "#/$defs/ShadowLengthTuple"
604
+ }
605
+ }
606
+ },
607
+ "AppearanceNonnegativeShadowLengths": {
608
+ "additionalProperties": false,
609
+ "type": "object",
610
+ "required": [
611
+ "light",
612
+ "dark"
613
+ ],
614
+ "properties": {
615
+ "light": {
616
+ "$ref": "#/$defs/NonnegativeShadowLengthTuple"
617
+ },
618
+ "dark": {
619
+ "$ref": "#/$defs/NonnegativeShadowLengthTuple"
620
+ }
621
+ }
622
+ },
623
+ "EdgeStep": {
624
+ "anyOf": [
625
+ {
626
+ "const": 0,
627
+ "type": "number"
628
+ },
629
+ {
630
+ "const": 1,
631
+ "type": "number"
632
+ },
633
+ {
634
+ "const": 2,
635
+ "type": "number"
636
+ },
637
+ {
638
+ "const": 3,
639
+ "type": "number"
640
+ }
641
+ ]
642
+ },
643
+ "EdgeRole": {
644
+ "anyOf": [
645
+ {
646
+ "const": "perimeter",
647
+ "type": "string"
648
+ },
649
+ {
650
+ "const": "control",
651
+ "type": "string"
652
+ },
653
+ {
654
+ "const": "separator",
655
+ "type": "string"
656
+ },
657
+ {
658
+ "const": "divider",
659
+ "type": "string"
660
+ }
661
+ ]
662
+ },
663
+ "NamedCurve": {
664
+ "anyOf": [
665
+ {
666
+ "const": "linear",
667
+ "type": "string"
668
+ },
669
+ {
670
+ "const": "ease-in",
671
+ "type": "string"
672
+ },
673
+ {
674
+ "const": "ease-out",
675
+ "type": "string"
676
+ },
677
+ {
678
+ "const": "ease-in-out",
679
+ "type": "string"
680
+ }
681
+ ]
682
+ },
683
+ "Curve": {
684
+ "anyOf": [
685
+ {
686
+ "additionalProperties": false,
687
+ "type": "object",
688
+ "required": [
689
+ "kind",
690
+ "name"
691
+ ],
692
+ "properties": {
693
+ "kind": {
694
+ "const": "named",
695
+ "type": "string"
696
+ },
697
+ "name": {
698
+ "$ref": "#/$defs/NamedCurve"
699
+ }
700
+ }
701
+ },
702
+ {
703
+ "additionalProperties": false,
704
+ "type": "object",
705
+ "required": [
706
+ "kind",
707
+ "values"
708
+ ],
709
+ "properties": {
710
+ "kind": {
711
+ "const": "samples",
712
+ "type": "string"
713
+ },
714
+ "values": {
715
+ "$ref": "#/$defs/UnitIntervalTuple"
716
+ }
717
+ }
718
+ }
719
+ ]
720
+ },
721
+ "ToneTarget": {
722
+ "anyOf": [
723
+ {
724
+ "additionalProperties": false,
725
+ "type": "object",
726
+ "required": [
727
+ "kind",
728
+ "deltaE"
729
+ ],
730
+ "properties": {
731
+ "kind": {
732
+ "const": "canvas-delta",
733
+ "type": "string"
734
+ },
735
+ "deltaE": {
736
+ "minimum": 0,
737
+ "maximum": 0.25,
738
+ "type": "number"
739
+ }
740
+ }
741
+ },
742
+ {
743
+ "additionalProperties": false,
744
+ "type": "object",
745
+ "required": [
746
+ "kind",
747
+ "lightness"
748
+ ],
749
+ "properties": {
750
+ "kind": {
751
+ "const": "seed-offset",
752
+ "type": "string"
753
+ },
754
+ "lightness": {
755
+ "minimum": -0.25,
756
+ "maximum": 0.25,
757
+ "type": "number"
758
+ }
759
+ }
760
+ },
761
+ {
762
+ "additionalProperties": false,
763
+ "type": "object",
764
+ "required": [
765
+ "kind",
766
+ "against",
767
+ "wcag"
768
+ ],
769
+ "properties": {
770
+ "kind": {
771
+ "const": "contrast",
772
+ "type": "string"
773
+ },
774
+ "against": {
775
+ "anyOf": [
776
+ {
777
+ "const": "canvas",
778
+ "type": "string"
779
+ },
780
+ {
781
+ "const": "step-1",
782
+ "type": "string"
783
+ },
784
+ {
785
+ "const": "step-2",
786
+ "type": "string"
787
+ }
788
+ ]
789
+ },
790
+ "wcag": {
791
+ "minimum": 1,
792
+ "maximum": 21,
793
+ "type": "number"
794
+ },
795
+ "apcaLc": {
796
+ "minimum": 0,
797
+ "maximum": 108,
798
+ "type": "number"
799
+ }
800
+ }
801
+ },
802
+ {
803
+ "additionalProperties": false,
804
+ "type": "object",
805
+ "required": [
806
+ "kind",
807
+ "lightness"
808
+ ],
809
+ "properties": {
810
+ "kind": {
811
+ "const": "absolute",
812
+ "type": "string"
813
+ },
814
+ "lightness": {
815
+ "minimum": 0,
816
+ "maximum": 1,
817
+ "type": "number"
818
+ }
819
+ }
820
+ }
821
+ ]
822
+ },
823
+ "ToneTargets": {
824
+ "type": "object",
825
+ "patternProperties": {
826
+ "^(?:[1-9]|1[0-2])$": {
827
+ "$ref": "#/$defs/ToneTarget"
828
+ }
829
+ }
830
+ },
831
+ "RampPolicy": {
832
+ "additionalProperties": false,
833
+ "type": "object",
834
+ "required": [
835
+ "strategy",
836
+ "version"
837
+ ],
838
+ "properties": {
839
+ "strategy": {
840
+ "const": "functional-curve",
841
+ "type": "string"
842
+ },
843
+ "version": {
844
+ "const": 1,
845
+ "type": "number"
846
+ },
847
+ "tone": {
848
+ "additionalProperties": false,
849
+ "type": "object",
850
+ "properties": {
851
+ "light": {
852
+ "$ref": "#/$defs/ToneTargets"
853
+ },
854
+ "dark": {
855
+ "$ref": "#/$defs/ToneTargets"
856
+ },
857
+ "distribution": {
858
+ "additionalProperties": false,
859
+ "type": "object",
860
+ "properties": {
861
+ "light": {
862
+ "$ref": "#/$defs/Curve"
863
+ },
864
+ "dark": {
865
+ "$ref": "#/$defs/Curve"
866
+ }
867
+ }
868
+ },
869
+ "bias": {
870
+ "additionalProperties": false,
871
+ "type": "object",
872
+ "properties": {
873
+ "light": {
874
+ "minimum": -1,
875
+ "maximum": 1,
876
+ "type": "number"
877
+ },
878
+ "dark": {
879
+ "minimum": -1,
880
+ "maximum": 1,
881
+ "type": "number"
882
+ }
883
+ }
884
+ }
885
+ }
886
+ },
887
+ "chroma": {
888
+ "additionalProperties": false,
889
+ "type": "object",
890
+ "properties": {
891
+ "light": {
892
+ "$ref": "#/$defs/NonnegativeTuple"
893
+ },
894
+ "dark": {
895
+ "$ref": "#/$defs/NonnegativeTuple"
896
+ },
897
+ "scale": {
898
+ "anyOf": [
899
+ {
900
+ "const": "seed-ratio",
901
+ "type": "string"
902
+ },
903
+ {
904
+ "const": "absolute",
905
+ "type": "string"
906
+ }
907
+ ]
908
+ },
909
+ "maximum": {
910
+ "minimum": 0,
911
+ "maximum": 0.5,
912
+ "type": "number"
913
+ }
914
+ }
915
+ },
916
+ "hue": {
917
+ "additionalProperties": false,
918
+ "type": "object",
919
+ "properties": {
920
+ "path": {
921
+ "anyOf": [
922
+ {
923
+ "const": "shorter",
924
+ "type": "string"
925
+ },
926
+ {
927
+ "const": "longer",
928
+ "type": "string"
929
+ },
930
+ {
931
+ "const": "increasing",
932
+ "type": "string"
933
+ },
934
+ {
935
+ "const": "decreasing",
936
+ "type": "string"
937
+ },
938
+ {
939
+ "const": "constant",
940
+ "type": "string"
941
+ }
942
+ ]
943
+ },
944
+ "maximumShift": {
945
+ "minimum": 0,
946
+ "maximum": 180,
947
+ "type": "number"
948
+ },
949
+ "curve": {
950
+ "$ref": "#/$defs/Curve"
951
+ }
952
+ }
953
+ },
954
+ "separation": {
955
+ "additionalProperties": false,
956
+ "type": "object",
957
+ "properties": {
958
+ "metric": {
959
+ "const": "delta-e-ok",
960
+ "type": "string"
961
+ },
962
+ "targets": {
963
+ "additionalProperties": false,
964
+ "type": "object",
965
+ "required": [
966
+ "light",
967
+ "dark"
968
+ ],
969
+ "properties": {
970
+ "light": {
971
+ "$ref": "#/$defs/AdjacentDeltaETuple"
972
+ },
973
+ "dark": {
974
+ "$ref": "#/$defs/AdjacentDeltaETuple"
975
+ }
976
+ }
977
+ },
978
+ "tolerance": {
979
+ "minimum": 0.0001,
980
+ "maximum": 0.05,
981
+ "type": "number"
982
+ }
983
+ }
984
+ },
985
+ "seedFidelity": {
986
+ "additionalProperties": false,
987
+ "type": "object",
988
+ "properties": {
989
+ "strength": {
990
+ "minimum": 0,
991
+ "maximum": 1,
992
+ "type": "number"
993
+ },
994
+ "exact": {
995
+ "type": "boolean"
996
+ },
997
+ "maximumDeltaE": {
998
+ "minimum": 0,
999
+ "maximum": 0.25,
1000
+ "type": "number"
1001
+ }
1002
+ }
1003
+ }
1004
+ }
1005
+ },
1006
+ "LightingPolicy": {
1007
+ "additionalProperties": false,
1008
+ "type": "object",
1009
+ "required": [
1010
+ "strategy",
1011
+ "version"
1012
+ ],
1013
+ "properties": {
1014
+ "strategy": {
1015
+ "const": "canvas-relative",
1016
+ "type": "string"
1017
+ },
1018
+ "version": {
1019
+ "const": 1,
1020
+ "type": "number"
1021
+ },
1022
+ "influence": {
1023
+ "minimum": 0,
1024
+ "maximum": 1,
1025
+ "type": "number"
1026
+ },
1027
+ "toneAdaptation": {
1028
+ "minimum": 0,
1029
+ "maximum": 1,
1030
+ "type": "number"
1031
+ },
1032
+ "chromaAdaptation": {
1033
+ "minimum": 0,
1034
+ "maximum": 1,
1035
+ "type": "number"
1036
+ },
1037
+ "hueAdaptation": {
1038
+ "minimum": 0,
1039
+ "maximum": 1,
1040
+ "type": "number"
1041
+ },
1042
+ "preserveSolid": {
1043
+ "minimum": 0,
1044
+ "maximum": 1,
1045
+ "type": "number"
1046
+ },
1047
+ "stepInfluence": {
1048
+ "additionalProperties": false,
1049
+ "type": "object",
1050
+ "properties": {
1051
+ "light": {
1052
+ "$ref": "#/$defs/UnitIntervalTuple"
1053
+ },
1054
+ "dark": {
1055
+ "$ref": "#/$defs/UnitIntervalTuple"
1056
+ }
1057
+ }
1058
+ }
1059
+ }
1060
+ },
1061
+ "ConstraintName": {
1062
+ "anyOf": [
1063
+ {
1064
+ "const": "accessibility",
1065
+ "type": "string"
1066
+ },
1067
+ {
1068
+ "const": "functional-order",
1069
+ "type": "string"
1070
+ },
1071
+ {
1072
+ "const": "seed-fidelity",
1073
+ "type": "string"
1074
+ }
1075
+ ]
1076
+ },
1077
+ "NormalizationPolicy": {
1078
+ "additionalProperties": false,
1079
+ "type": "object",
1080
+ "required": [
1081
+ "strategy",
1082
+ "version"
1083
+ ],
1084
+ "properties": {
1085
+ "strategy": {
1086
+ "const": "constraint-priority",
1087
+ "type": "string"
1088
+ },
1089
+ "version": {
1090
+ "const": 1,
1091
+ "type": "number"
1092
+ },
1093
+ "priorities": {
1094
+ "minItems": 3,
1095
+ "maxItems": 3,
1096
+ "uniqueItems": true,
1097
+ "type": "array",
1098
+ "items": {
1099
+ "$ref": "#/$defs/ConstraintName"
1100
+ }
1101
+ },
1102
+ "maximumToneAdjustment": {
1103
+ "minimum": 0,
1104
+ "maximum": 0.5,
1105
+ "type": "number"
1106
+ },
1107
+ "maximumChromaAdjustment": {
1108
+ "minimum": 0,
1109
+ "maximum": 0.5,
1110
+ "type": "number"
1111
+ },
1112
+ "maximumHueAdjustment": {
1113
+ "minimum": 0,
1114
+ "maximum": 180,
1115
+ "type": "number"
1116
+ },
1117
+ "impossible": {
1118
+ "anyOf": [
1119
+ {
1120
+ "const": "error",
1121
+ "type": "string"
1122
+ },
1123
+ {
1124
+ "const": "constrain",
1125
+ "type": "string"
1126
+ }
1127
+ ]
1128
+ }
1129
+ }
1130
+ },
1131
+ "InkTarget": {
1132
+ "additionalProperties": false,
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "minimumWcagRatio": {
1136
+ "minimum": 1,
1137
+ "maximum": 21,
1138
+ "type": "number"
1139
+ },
1140
+ "targetWcagRatio": {
1141
+ "minimum": 1,
1142
+ "maximum": 21,
1143
+ "type": "number"
1144
+ },
1145
+ "targetApcaLc": {
1146
+ "minimum": 0,
1147
+ "maximum": 108,
1148
+ "type": "number"
1149
+ },
1150
+ "maximumChroma": {
1151
+ "minimum": 0,
1152
+ "maximum": 0.2,
1153
+ "type": "number"
1154
+ }
1155
+ }
1156
+ },
1157
+ "PairingPolicy": {
1158
+ "additionalProperties": false,
1159
+ "type": "object",
1160
+ "required": [
1161
+ "strategy",
1162
+ "version"
1163
+ ],
1164
+ "properties": {
1165
+ "strategy": {
1166
+ "const": "accessible-ink",
1167
+ "type": "string"
1168
+ },
1169
+ "version": {
1170
+ "const": 1,
1171
+ "type": "number"
1172
+ },
1173
+ "ink": {
1174
+ "$ref": "#/$defs/InkTarget"
1175
+ },
1176
+ "inkSubtle": {
1177
+ "$ref": "#/$defs/InkTarget"
1178
+ },
1179
+ "inkMuted": {
1180
+ "$ref": "#/$defs/InkTarget"
1181
+ },
1182
+ "additional": {
1183
+ "type": "object",
1184
+ "patternProperties": {
1185
+ "^[a-z][a-z0-9-]*$": {
1186
+ "$ref": "#/$defs/InkTarget"
1187
+ }
1188
+ }
1189
+ },
1190
+ "polarity": {
1191
+ "anyOf": [
1192
+ {
1193
+ "const": "auto",
1194
+ "type": "string"
1195
+ },
1196
+ {
1197
+ "const": "lighter",
1198
+ "type": "string"
1199
+ },
1200
+ {
1201
+ "const": "darker",
1202
+ "type": "string"
1203
+ }
1204
+ ]
1205
+ },
1206
+ "polarityPivot": {
1207
+ "minimum": 0,
1208
+ "maximum": 1,
1209
+ "type": "number"
1210
+ },
1211
+ "chromaInfluence": {
1212
+ "minimum": 0,
1213
+ "maximum": 1,
1214
+ "type": "number"
1215
+ }
1216
+ }
1217
+ },
1218
+ "AlphaPolicy": {
1219
+ "additionalProperties": false,
1220
+ "type": "object",
1221
+ "required": [
1222
+ "strategy",
1223
+ "version"
1224
+ ],
1225
+ "properties": {
1226
+ "strategy": {
1227
+ "const": "substrate-composite",
1228
+ "type": "string"
1229
+ },
1230
+ "version": {
1231
+ "const": 1,
1232
+ "type": "number"
1233
+ },
1234
+ "opacity": {
1235
+ "additionalProperties": false,
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "light": {
1239
+ "$ref": "#/$defs/UnitIntervalTuple"
1240
+ },
1241
+ "dark": {
1242
+ "$ref": "#/$defs/UnitIntervalTuple"
1243
+ }
1244
+ }
1245
+ },
1246
+ "substrates": {
1247
+ "minItems": 1,
1248
+ "uniqueItems": true,
1249
+ "type": "array",
1250
+ "items": {
1251
+ "anyOf": [
1252
+ {
1253
+ "const": "canvas",
1254
+ "type": "string"
1255
+ },
1256
+ {
1257
+ "const": "step-1",
1258
+ "type": "string"
1259
+ },
1260
+ {
1261
+ "const": "step-2",
1262
+ "type": "string"
1263
+ }
1264
+ ]
1265
+ }
1266
+ },
1267
+ "mismatch": {
1268
+ "anyOf": [
1269
+ {
1270
+ "const": "error",
1271
+ "type": "string"
1272
+ },
1273
+ {
1274
+ "const": "best-fit",
1275
+ "type": "string"
1276
+ }
1277
+ ]
1278
+ },
1279
+ "maximumDeltaE": {
1280
+ "minimum": 0,
1281
+ "maximum": 0.25,
1282
+ "type": "number"
1283
+ },
1284
+ "maximumOpacityAdjustment": {
1285
+ "minimum": 0,
1286
+ "maximum": 1,
1287
+ "type": "number"
1288
+ }
1289
+ }
1290
+ },
1291
+ "ColorPolicies": {
1292
+ "additionalProperties": false,
1293
+ "type": "object",
1294
+ "properties": {
1295
+ "ramp": {
1296
+ "$ref": "#/$defs/RampPolicy"
1297
+ },
1298
+ "lighting": {
1299
+ "$ref": "#/$defs/LightingPolicy"
1300
+ },
1301
+ "normalization": {
1302
+ "$ref": "#/$defs/NormalizationPolicy"
1303
+ },
1304
+ "pairing": {
1305
+ "$ref": "#/$defs/PairingPolicy"
1306
+ },
1307
+ "alpha": {
1308
+ "$ref": "#/$defs/AlphaPolicy"
1309
+ }
1310
+ }
1311
+ },
1312
+ "SeedSource": {
1313
+ "additionalProperties": false,
1314
+ "type": "object",
1315
+ "required": [
1316
+ "kind",
1317
+ "color",
1318
+ "anchor"
1319
+ ],
1320
+ "properties": {
1321
+ "kind": {
1322
+ "const": "seed",
1323
+ "type": "string"
1324
+ },
1325
+ "color": {
1326
+ "$ref": "#/$defs/ColorInput"
1327
+ },
1328
+ "anchor": {
1329
+ "$ref": "#/$defs/RadixStep"
1330
+ }
1331
+ }
1332
+ },
1333
+ "ExplicitRampSource": {
1334
+ "additionalProperties": false,
1335
+ "type": "object",
1336
+ "required": [
1337
+ "kind",
1338
+ "appearances"
1339
+ ],
1340
+ "properties": {
1341
+ "kind": {
1342
+ "const": "steps",
1343
+ "type": "string"
1344
+ },
1345
+ "appearances": {
1346
+ "additionalProperties": false,
1347
+ "type": "object",
1348
+ "required": [
1349
+ "light",
1350
+ "dark"
1351
+ ],
1352
+ "properties": {
1353
+ "light": {
1354
+ "type": "array",
1355
+ "minItems": 12,
1356
+ "maxItems": 12,
1357
+ "prefixItems": [
1358
+ {
1359
+ "$ref": "#/$defs/ColorInput"
1360
+ },
1361
+ {
1362
+ "$ref": "#/$defs/ColorInput"
1363
+ },
1364
+ {
1365
+ "$ref": "#/$defs/ColorInput"
1366
+ },
1367
+ {
1368
+ "$ref": "#/$defs/ColorInput"
1369
+ },
1370
+ {
1371
+ "$ref": "#/$defs/ColorInput"
1372
+ },
1373
+ {
1374
+ "$ref": "#/$defs/ColorInput"
1375
+ },
1376
+ {
1377
+ "$ref": "#/$defs/ColorInput"
1378
+ },
1379
+ {
1380
+ "$ref": "#/$defs/ColorInput"
1381
+ },
1382
+ {
1383
+ "$ref": "#/$defs/ColorInput"
1384
+ },
1385
+ {
1386
+ "$ref": "#/$defs/ColorInput"
1387
+ },
1388
+ {
1389
+ "$ref": "#/$defs/ColorInput"
1390
+ },
1391
+ {
1392
+ "$ref": "#/$defs/ColorInput"
1393
+ }
1394
+ ],
1395
+ "items": false
1396
+ },
1397
+ "dark": {
1398
+ "type": "array",
1399
+ "minItems": 12,
1400
+ "maxItems": 12,
1401
+ "prefixItems": [
1402
+ {
1403
+ "$ref": "#/$defs/ColorInput"
1404
+ },
1405
+ {
1406
+ "$ref": "#/$defs/ColorInput"
1407
+ },
1408
+ {
1409
+ "$ref": "#/$defs/ColorInput"
1410
+ },
1411
+ {
1412
+ "$ref": "#/$defs/ColorInput"
1413
+ },
1414
+ {
1415
+ "$ref": "#/$defs/ColorInput"
1416
+ },
1417
+ {
1418
+ "$ref": "#/$defs/ColorInput"
1419
+ },
1420
+ {
1421
+ "$ref": "#/$defs/ColorInput"
1422
+ },
1423
+ {
1424
+ "$ref": "#/$defs/ColorInput"
1425
+ },
1426
+ {
1427
+ "$ref": "#/$defs/ColorInput"
1428
+ },
1429
+ {
1430
+ "$ref": "#/$defs/ColorInput"
1431
+ },
1432
+ {
1433
+ "$ref": "#/$defs/ColorInput"
1434
+ },
1435
+ {
1436
+ "$ref": "#/$defs/ColorInput"
1437
+ }
1438
+ ],
1439
+ "items": false
1440
+ }
1441
+ }
1442
+ }
1443
+ }
1444
+ },
1445
+ "Family": {
1446
+ "additionalProperties": false,
1447
+ "type": "object",
1448
+ "required": [
1449
+ "source"
1450
+ ],
1451
+ "properties": {
1452
+ "source": {
1453
+ "anyOf": [
1454
+ {
1455
+ "$ref": "#/$defs/SeedSource"
1456
+ },
1457
+ {
1458
+ "$ref": "#/$defs/ExplicitRampSource"
1459
+ }
1460
+ ]
1461
+ },
1462
+ "policies": {
1463
+ "$ref": "#/$defs/ColorPolicies"
1464
+ }
1465
+ }
1466
+ },
1467
+ "FamilyName": {
1468
+ "type": "string",
1469
+ "pattern": "^[a-z][a-z0-9-]*$"
1470
+ },
1471
+ "FamilyRecord": {
1472
+ "type": "object",
1473
+ "patternProperties": {
1474
+ "^[a-z][a-z0-9-]*$": {
1475
+ "$ref": "#/$defs/Family"
1476
+ }
1477
+ }
1478
+ },
1479
+ "AppearanceFamilyId": {
1480
+ "type": "string",
1481
+ "pattern": "^(?:neutral|accent|(?:status|supporting|named)\\.[a-z][a-z0-9-]*)$"
1482
+ },
1483
+ "AppearanceFamilyOverride": {
1484
+ "additionalProperties": false,
1485
+ "type": "object",
1486
+ "properties": {
1487
+ "source": {
1488
+ "$ref": "#/$defs/SeedSource"
1489
+ },
1490
+ "policies": {
1491
+ "$ref": "#/$defs/ColorPolicies"
1492
+ }
1493
+ }
1494
+ },
1495
+ "Appearance": {
1496
+ "additionalProperties": false,
1497
+ "type": "object",
1498
+ "required": [
1499
+ "canvas"
1500
+ ],
1501
+ "properties": {
1502
+ "canvas": {
1503
+ "$ref": "#/$defs/ColorInput"
1504
+ },
1505
+ "lighting": {
1506
+ "$ref": "#/$defs/LightingPolicy"
1507
+ },
1508
+ "families": {
1509
+ "additionalProperties": false,
1510
+ "type": "object",
1511
+ "patternProperties": {
1512
+ "^(?:neutral|accent|(?:status|supporting|named)\\.[a-z][a-z0-9-]*)$": {
1513
+ "$ref": "#/$defs/AppearanceFamilyOverride"
1514
+ }
1515
+ }
1516
+ }
1517
+ }
1518
+ },
1519
+ "SurfaceConfig": {
1520
+ "additionalProperties": false,
1521
+ "type": "object",
1522
+ "required": [
1523
+ "strategy",
1524
+ "version"
1525
+ ],
1526
+ "properties": {
1527
+ "strategy": {
1528
+ "const": "perceptual-ladder",
1529
+ "type": "string"
1530
+ },
1531
+ "version": {
1532
+ "const": 1,
1533
+ "type": "number"
1534
+ },
1535
+ "background": {
1536
+ "additionalProperties": false,
1537
+ "type": "object",
1538
+ "properties": {
1539
+ "plateau": {
1540
+ "additionalProperties": false,
1541
+ "type": "object",
1542
+ "required": [
1543
+ "light"
1544
+ ],
1545
+ "properties": {
1546
+ "light": {
1547
+ "anyOf": [
1548
+ {
1549
+ "minimum": 1,
1550
+ "maximum": 8,
1551
+ "type": "integer"
1552
+ },
1553
+ {
1554
+ "type": "null"
1555
+ }
1556
+ ]
1557
+ }
1558
+ }
1559
+ },
1560
+ "toneOffset": {
1561
+ "additionalProperties": false,
1562
+ "type": "object",
1563
+ "required": [
1564
+ "light",
1565
+ "dark"
1566
+ ],
1567
+ "properties": {
1568
+ "light": {
1569
+ "$ref": "#/$defs/SurfaceTuple"
1570
+ },
1571
+ "dark": {
1572
+ "$ref": "#/$defs/SurfaceTuple"
1573
+ }
1574
+ }
1575
+ },
1576
+ "neutral": {
1577
+ "additionalProperties": false,
1578
+ "type": "object",
1579
+ "properties": {
1580
+ "step": {
1581
+ "$ref": "#/$defs/RadixStep"
1582
+ },
1583
+ "influence": {
1584
+ "additionalProperties": false,
1585
+ "type": "object",
1586
+ "required": [
1587
+ "light",
1588
+ "dark"
1589
+ ],
1590
+ "properties": {
1591
+ "light": {
1592
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1593
+ },
1594
+ "dark": {
1595
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1596
+ }
1597
+ }
1598
+ }
1599
+ }
1600
+ },
1601
+ "accent": {
1602
+ "additionalProperties": false,
1603
+ "type": "object",
1604
+ "properties": {
1605
+ "step": {
1606
+ "$ref": "#/$defs/RadixStep"
1607
+ },
1608
+ "influence": {
1609
+ "additionalProperties": false,
1610
+ "type": "object",
1611
+ "required": [
1612
+ "light",
1613
+ "dark"
1614
+ ],
1615
+ "properties": {
1616
+ "light": {
1617
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1618
+ },
1619
+ "dark": {
1620
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1621
+ }
1622
+ }
1623
+ }
1624
+ }
1625
+ }
1626
+ }
1627
+ }
1628
+ }
1629
+ },
1630
+ "SubstrateConfig": {
1631
+ "additionalProperties": false,
1632
+ "type": "object",
1633
+ "required": [
1634
+ "strategy",
1635
+ "version"
1636
+ ],
1637
+ "properties": {
1638
+ "strategy": {
1639
+ "const": "region-substrates",
1640
+ "type": "string"
1641
+ },
1642
+ "version": {
1643
+ "const": 1,
1644
+ "type": "number"
1645
+ },
1646
+ "workspace": {
1647
+ "additionalProperties": false,
1648
+ "type": "object",
1649
+ "required": [
1650
+ "kind"
1651
+ ],
1652
+ "properties": {
1653
+ "kind": {
1654
+ "const": "canvas",
1655
+ "type": "string"
1656
+ }
1657
+ }
1658
+ },
1659
+ "chrome": {
1660
+ "additionalProperties": false,
1661
+ "type": "object",
1662
+ "properties": {
1663
+ "source": {
1664
+ "additionalProperties": false,
1665
+ "type": "object",
1666
+ "required": [
1667
+ "kind",
1668
+ "family"
1669
+ ],
1670
+ "properties": {
1671
+ "kind": {
1672
+ "const": "family",
1673
+ "type": "string"
1674
+ },
1675
+ "family": {
1676
+ "$ref": "#/$defs/SemanticFamily"
1677
+ },
1678
+ "step": {
1679
+ "$ref": "#/$defs/RadixStep"
1680
+ }
1681
+ }
1682
+ },
1683
+ "separation": {
1684
+ "additionalProperties": false,
1685
+ "type": "object",
1686
+ "required": [
1687
+ "light",
1688
+ "dark"
1689
+ ],
1690
+ "properties": {
1691
+ "light": {
1692
+ "minimum": 0,
1693
+ "maximum": 1,
1694
+ "type": "number"
1695
+ },
1696
+ "dark": {
1697
+ "minimum": 0,
1698
+ "maximum": 1,
1699
+ "type": "number"
1700
+ }
1701
+ }
1702
+ },
1703
+ "maximumInfluence": {
1704
+ "minimum": 0,
1705
+ "maximum": 1,
1706
+ "type": "number"
1707
+ }
1708
+ }
1709
+ }
1710
+ }
1711
+ },
1712
+ "ShadowColorSource": {
1713
+ "anyOf": [
1714
+ {
1715
+ "additionalProperties": false,
1716
+ "type": "object",
1717
+ "required": [
1718
+ "kind",
1719
+ "family",
1720
+ "step"
1721
+ ],
1722
+ "properties": {
1723
+ "kind": {
1724
+ "const": "palette",
1725
+ "type": "string"
1726
+ },
1727
+ "family": {
1728
+ "$ref": "#/$defs/SemanticFamily"
1729
+ },
1730
+ "step": {
1731
+ "$ref": "#/$defs/RadixStep"
1732
+ }
1733
+ }
1734
+ },
1735
+ {
1736
+ "additionalProperties": false,
1737
+ "type": "object",
1738
+ "required": [
1739
+ "kind",
1740
+ "family",
1741
+ "step"
1742
+ ],
1743
+ "properties": {
1744
+ "kind": {
1745
+ "const": "alpha-palette",
1746
+ "type": "string"
1747
+ },
1748
+ "family": {
1749
+ "$ref": "#/$defs/SemanticFamily"
1750
+ },
1751
+ "step": {
1752
+ "$ref": "#/$defs/RadixStep"
1753
+ }
1754
+ }
1755
+ },
1756
+ {
1757
+ "additionalProperties": false,
1758
+ "type": "object",
1759
+ "required": [
1760
+ "kind",
1761
+ "toneOffset",
1762
+ "chromaInfluence"
1763
+ ],
1764
+ "properties": {
1765
+ "kind": {
1766
+ "const": "canvas-relative",
1767
+ "type": "string"
1768
+ },
1769
+ "toneOffset": {
1770
+ "minimum": -1,
1771
+ "maximum": 1,
1772
+ "type": "number"
1773
+ },
1774
+ "chromaInfluence": {
1775
+ "minimum": 0,
1776
+ "maximum": 1,
1777
+ "type": "number"
1778
+ }
1779
+ }
1780
+ },
1781
+ {
1782
+ "additionalProperties": false,
1783
+ "type": "object",
1784
+ "required": [
1785
+ "kind",
1786
+ "appearances"
1787
+ ],
1788
+ "properties": {
1789
+ "kind": {
1790
+ "const": "color",
1791
+ "type": "string"
1792
+ },
1793
+ "appearances": {
1794
+ "additionalProperties": false,
1795
+ "type": "object",
1796
+ "required": [
1797
+ "light",
1798
+ "dark"
1799
+ ],
1800
+ "properties": {
1801
+ "light": {
1802
+ "$ref": "#/$defs/ColorInput"
1803
+ },
1804
+ "dark": {
1805
+ "$ref": "#/$defs/ColorInput"
1806
+ }
1807
+ }
1808
+ }
1809
+ }
1810
+ }
1811
+ ]
1812
+ },
1813
+ "ShadowLayer": {
1814
+ "additionalProperties": false,
1815
+ "type": "object",
1816
+ "required": [
1817
+ "name",
1818
+ "kind",
1819
+ "color",
1820
+ "offsetX",
1821
+ "offsetY",
1822
+ "blur",
1823
+ "spread",
1824
+ "opacity"
1825
+ ],
1826
+ "properties": {
1827
+ "name": {
1828
+ "$ref": "#/$defs/SelectionTreatmentName"
1829
+ },
1830
+ "kind": {
1831
+ "anyOf": [
1832
+ {
1833
+ "const": "outer",
1834
+ "type": "string"
1835
+ },
1836
+ {
1837
+ "const": "inner",
1838
+ "type": "string"
1839
+ }
1840
+ ]
1841
+ },
1842
+ "color": {
1843
+ "$ref": "#/$defs/ShadowColorSource"
1844
+ },
1845
+ "offsetX": {
1846
+ "$ref": "#/$defs/AppearanceShadowLengths"
1847
+ },
1848
+ "offsetY": {
1849
+ "$ref": "#/$defs/AppearanceShadowLengths"
1850
+ },
1851
+ "blur": {
1852
+ "$ref": "#/$defs/AppearanceNonnegativeShadowLengths"
1853
+ },
1854
+ "spread": {
1855
+ "anyOf": [
1856
+ {
1857
+ "$ref": "#/$defs/AppearanceShadowLengths"
1858
+ },
1859
+ {
1860
+ "additionalProperties": false,
1861
+ "type": "object",
1862
+ "required": [
1863
+ "kind",
1864
+ "role"
1865
+ ],
1866
+ "properties": {
1867
+ "kind": {
1868
+ "const": "edge-width",
1869
+ "type": "string"
1870
+ },
1871
+ "role": {
1872
+ "$ref": "#/$defs/EdgeRole"
1873
+ }
1874
+ }
1875
+ }
1876
+ ]
1877
+ },
1878
+ "opacity": {
1879
+ "additionalProperties": false,
1880
+ "type": "object",
1881
+ "required": [
1882
+ "light",
1883
+ "dark"
1884
+ ],
1885
+ "properties": {
1886
+ "light": {
1887
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1888
+ },
1889
+ "dark": {
1890
+ "$ref": "#/$defs/SurfaceInfluenceTuple"
1891
+ }
1892
+ }
1893
+ }
1894
+ }
1895
+ },
1896
+ "DepthConfig": {
1897
+ "additionalProperties": false,
1898
+ "type": "object",
1899
+ "required": [
1900
+ "strategy",
1901
+ "version"
1902
+ ],
1903
+ "properties": {
1904
+ "strategy": {
1905
+ "const": "layered-shadow",
1906
+ "type": "string"
1907
+ },
1908
+ "version": {
1909
+ "const": 1,
1910
+ "type": "number"
1911
+ },
1912
+ "layers": {
1913
+ "type": "array",
1914
+ "items": {
1915
+ "$ref": "#/$defs/ShadowLayer"
1916
+ }
1917
+ }
1918
+ }
1919
+ },
1920
+ "CompositionBreakpoint": {
1921
+ "anyOf": [
1922
+ {
1923
+ "const": "sm",
1924
+ "type": "string"
1925
+ },
1926
+ {
1927
+ "const": "md",
1928
+ "type": "string"
1929
+ },
1930
+ {
1931
+ "const": "lg",
1932
+ "type": "string"
1933
+ },
1934
+ {
1935
+ "const": "xl",
1936
+ "type": "string"
1937
+ },
1938
+ {
1939
+ "const": "2xl",
1940
+ "type": "string"
1941
+ }
1942
+ ]
1943
+ },
1944
+ "CompositionColumn": {
1945
+ "anyOf": [
1946
+ {
1947
+ "const": 1,
1948
+ "type": "number"
1949
+ },
1950
+ {
1951
+ "const": 2,
1952
+ "type": "number"
1953
+ },
1954
+ {
1955
+ "const": 3,
1956
+ "type": "number"
1957
+ },
1958
+ {
1959
+ "const": 4,
1960
+ "type": "number"
1961
+ },
1962
+ {
1963
+ "const": 5,
1964
+ "type": "number"
1965
+ },
1966
+ {
1967
+ "const": 6,
1968
+ "type": "number"
1969
+ }
1970
+ ]
1971
+ },
1972
+ "CompositionColumnRecipe": {
1973
+ "additionalProperties": false,
1974
+ "type": "object",
1975
+ "properties": {
1976
+ "base": {
1977
+ "$ref": "#/$defs/CompositionColumn"
1978
+ },
1979
+ "sm": {
1980
+ "$ref": "#/$defs/CompositionColumn"
1981
+ },
1982
+ "md": {
1983
+ "$ref": "#/$defs/CompositionColumn"
1984
+ },
1985
+ "lg": {
1986
+ "$ref": "#/$defs/CompositionColumn"
1987
+ },
1988
+ "xl": {
1989
+ "$ref": "#/$defs/CompositionColumn"
1990
+ },
1991
+ "2xl": {
1992
+ "$ref": "#/$defs/CompositionColumn"
1993
+ }
1994
+ }
1995
+ },
1996
+ "CompositionConfig": {
1997
+ "additionalProperties": false,
1998
+ "type": "object",
1999
+ "required": [
2000
+ "strategy",
2001
+ "version"
2002
+ ],
2003
+ "properties": {
2004
+ "strategy": {
2005
+ "const": "discrete-responsive-layout",
2006
+ "type": "string"
2007
+ },
2008
+ "version": {
2009
+ "const": 1,
2010
+ "type": "number"
2011
+ },
2012
+ "breakpoints": {
2013
+ "additionalProperties": false,
2014
+ "type": "object",
2015
+ "properties": {
2016
+ "sm": {
2017
+ "exclusiveMinimum": 0,
2018
+ "type": "number"
2019
+ },
2020
+ "md": {
2021
+ "exclusiveMinimum": 0,
2022
+ "type": "number"
2023
+ },
2024
+ "lg": {
2025
+ "exclusiveMinimum": 0,
2026
+ "type": "number"
2027
+ },
2028
+ "xl": {
2029
+ "exclusiveMinimum": 0,
2030
+ "type": "number"
2031
+ },
2032
+ "2xl": {
2033
+ "exclusiveMinimum": 0,
2034
+ "type": "number"
2035
+ }
2036
+ }
2037
+ },
2038
+ "grid": {
2039
+ "additionalProperties": false,
2040
+ "type": "object",
2041
+ "properties": {
2042
+ "columns": {
2043
+ "additionalProperties": false,
2044
+ "type": "object",
2045
+ "properties": {
2046
+ "1": {
2047
+ "$ref": "#/$defs/CompositionColumnRecipe"
2048
+ },
2049
+ "2": {
2050
+ "$ref": "#/$defs/CompositionColumnRecipe"
2051
+ },
2052
+ "3": {
2053
+ "$ref": "#/$defs/CompositionColumnRecipe"
2054
+ },
2055
+ "4": {
2056
+ "$ref": "#/$defs/CompositionColumnRecipe"
2057
+ },
2058
+ "5": {
2059
+ "$ref": "#/$defs/CompositionColumnRecipe"
2060
+ },
2061
+ "6": {
2062
+ "$ref": "#/$defs/CompositionColumnRecipe"
2063
+ }
2064
+ }
2065
+ }
2066
+ }
2067
+ },
2068
+ "shell": {
2069
+ "additionalProperties": false,
2070
+ "type": "object",
2071
+ "properties": {
2072
+ "sidebarBreakpoint": {
2073
+ "$ref": "#/$defs/CompositionBreakpoint"
2074
+ }
2075
+ }
2076
+ }
2077
+ }
2078
+ },
2079
+ "EdgeConfig": {
2080
+ "additionalProperties": false,
2081
+ "type": "object",
2082
+ "required": [
2083
+ "strategy",
2084
+ "version"
2085
+ ],
2086
+ "properties": {
2087
+ "strategy": {
2088
+ "const": "fixed-line-weights",
2089
+ "type": "string"
2090
+ },
2091
+ "version": {
2092
+ "const": 1,
2093
+ "type": "number"
2094
+ },
2095
+ "widths": {
2096
+ "additionalProperties": false,
2097
+ "type": "object",
2098
+ "properties": {
2099
+ "0": {
2100
+ "minimum": 0,
2101
+ "maximum": 8,
2102
+ "type": "number"
2103
+ },
2104
+ "1": {
2105
+ "minimum": 0,
2106
+ "maximum": 8,
2107
+ "type": "number"
2108
+ },
2109
+ "2": {
2110
+ "minimum": 0,
2111
+ "maximum": 8,
2112
+ "type": "number"
2113
+ },
2114
+ "3": {
2115
+ "minimum": 0,
2116
+ "maximum": 8,
2117
+ "type": "number"
2118
+ }
2119
+ }
2120
+ },
2121
+ "anatomy": {
2122
+ "additionalProperties": false,
2123
+ "type": "object",
2124
+ "properties": {
2125
+ "perimeter": {
2126
+ "$ref": "#/$defs/EdgeStep"
2127
+ },
2128
+ "control": {
2129
+ "$ref": "#/$defs/EdgeStep"
2130
+ },
2131
+ "separator": {
2132
+ "$ref": "#/$defs/EdgeStep"
2133
+ },
2134
+ "divider": {
2135
+ "$ref": "#/$defs/EdgeStep"
2136
+ }
2137
+ }
2138
+ }
2139
+ }
2140
+ },
2141
+ "RadiusConfig": {
2142
+ "additionalProperties": false,
2143
+ "type": "object",
2144
+ "required": [
2145
+ "strategy",
2146
+ "version"
2147
+ ],
2148
+ "properties": {
2149
+ "strategy": {
2150
+ "const": "power-scale",
2151
+ "type": "string"
2152
+ },
2153
+ "version": {
2154
+ "const": 1,
2155
+ "type": "number"
2156
+ },
2157
+ "base": {
2158
+ "minimum": 0,
2159
+ "maximum": 64,
2160
+ "type": "number"
2161
+ },
2162
+ "exponent": {
2163
+ "exclusiveMinimum": 0,
2164
+ "maximum": 4,
2165
+ "type": "number"
2166
+ },
2167
+ "minimum": {
2168
+ "minimum": 0,
2169
+ "maximum": 128,
2170
+ "type": "number"
2171
+ },
2172
+ "maximum": {
2173
+ "minimum": 0,
2174
+ "maximum": 128,
2175
+ "type": "number"
2176
+ },
2177
+ "precision": {
2178
+ "exclusiveMinimum": 0,
2179
+ "maximum": 4,
2180
+ "type": "number"
2181
+ },
2182
+ "roles": {
2183
+ "additionalProperties": false,
2184
+ "type": "object",
2185
+ "properties": {
2186
+ "control": {
2187
+ "$ref": "#/$defs/CompositionColumn"
2188
+ },
2189
+ "surface": {
2190
+ "$ref": "#/$defs/CompositionColumn"
2191
+ },
2192
+ "overlay": {
2193
+ "$ref": "#/$defs/CompositionColumn"
2194
+ }
2195
+ }
2196
+ }
2197
+ }
2198
+ },
2199
+ "SpacingStep": {
2200
+ "minimum": 0,
2201
+ "maximum": 12,
2202
+ "multipleOf": 0.5,
2203
+ "type": "number"
2204
+ },
2205
+ "ControlSpacing": {
2206
+ "additionalProperties": false,
2207
+ "type": "object",
2208
+ "properties": {
2209
+ "xs": {
2210
+ "$ref": "#/$defs/SpacingStep"
2211
+ },
2212
+ "sm": {
2213
+ "$ref": "#/$defs/SpacingStep"
2214
+ },
2215
+ "md": {
2216
+ "$ref": "#/$defs/SpacingStep"
2217
+ },
2218
+ "lg": {
2219
+ "$ref": "#/$defs/SpacingStep"
2220
+ },
2221
+ "xlg": {
2222
+ "$ref": "#/$defs/SpacingStep"
2223
+ }
2224
+ }
2225
+ },
2226
+ "SpacingConfig": {
2227
+ "additionalProperties": false,
2228
+ "type": "object",
2229
+ "required": [
2230
+ "strategy",
2231
+ "version"
2232
+ ],
2233
+ "properties": {
2234
+ "strategy": {
2235
+ "const": "progressive-fluid-scale",
2236
+ "type": "string"
2237
+ },
2238
+ "version": {
2239
+ "const": 1,
2240
+ "type": "number"
2241
+ },
2242
+ "viewport": {
2243
+ "additionalProperties": false,
2244
+ "type": "object",
2245
+ "properties": {
2246
+ "minimum": {
2247
+ "minimum": 240,
2248
+ "maximum": 2560,
2249
+ "type": "number"
2250
+ },
2251
+ "maximum": {
2252
+ "minimum": 320,
2253
+ "maximum": 5120,
2254
+ "type": "number"
2255
+ }
2256
+ }
2257
+ },
2258
+ "progression": {
2259
+ "additionalProperties": false,
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "base": {
2263
+ "exclusiveMinimum": 0,
2264
+ "maximum": 4,
2265
+ "type": "number"
2266
+ },
2267
+ "exponent": {
2268
+ "exclusiveMinimum": 0,
2269
+ "maximum": 3,
2270
+ "type": "number"
2271
+ },
2272
+ "precision": {
2273
+ "exclusiveMinimum": 0,
2274
+ "maximum": 4,
2275
+ "type": "number"
2276
+ }
2277
+ }
2278
+ },
2279
+ "expansion": {
2280
+ "additionalProperties": false,
2281
+ "type": "object",
2282
+ "properties": {
2283
+ "pivot": {
2284
+ "minimum": 0,
2285
+ "maximum": 12,
2286
+ "type": "number"
2287
+ },
2288
+ "strength": {
2289
+ "minimum": 0,
2290
+ "maximum": 4,
2291
+ "type": "number"
2292
+ },
2293
+ "exponent": {
2294
+ "exclusiveMinimum": 0,
2295
+ "maximum": 3,
2296
+ "type": "number"
2297
+ },
2298
+ "maximum": {
2299
+ "minimum": 0,
2300
+ "maximum": 24,
2301
+ "type": "number"
2302
+ }
2303
+ }
2304
+ },
2305
+ "anatomy": {
2306
+ "additionalProperties": false,
2307
+ "type": "object",
2308
+ "properties": {
2309
+ "control": {
2310
+ "additionalProperties": false,
2311
+ "type": "object",
2312
+ "properties": {
2313
+ "gap": {
2314
+ "$ref": "#/$defs/SpacingStep"
2315
+ },
2316
+ "paddingInline": {
2317
+ "$ref": "#/$defs/ControlSpacing"
2318
+ }
2319
+ }
2320
+ },
2321
+ "badge": {
2322
+ "additionalProperties": false,
2323
+ "type": "object",
2324
+ "properties": {
2325
+ "paddingInline": {
2326
+ "$ref": "#/$defs/ControlSpacing"
2327
+ }
2328
+ }
2329
+ },
2330
+ "popover": {
2331
+ "additionalProperties": false,
2332
+ "type": "object",
2333
+ "properties": {
2334
+ "padding": {
2335
+ "$ref": "#/$defs/SpacingStep"
2336
+ }
2337
+ }
2338
+ },
2339
+ "menuItem": {
2340
+ "additionalProperties": false,
2341
+ "type": "object",
2342
+ "properties": {
2343
+ "paddingInline": {
2344
+ "$ref": "#/$defs/SpacingStep"
2345
+ }
2346
+ }
2347
+ },
2348
+ "app": {
2349
+ "additionalProperties": false,
2350
+ "type": "object",
2351
+ "properties": {
2352
+ "regionGap": {
2353
+ "$ref": "#/$defs/SpacingStep"
2354
+ },
2355
+ "regionPaddingInline": {
2356
+ "$ref": "#/$defs/SpacingStep"
2357
+ },
2358
+ "regionPaddingBlock": {
2359
+ "$ref": "#/$defs/SpacingStep"
2360
+ }
2361
+ }
2362
+ },
2363
+ "sidebar": {
2364
+ "additionalProperties": false,
2365
+ "type": "object",
2366
+ "properties": {
2367
+ "headerGap": {
2368
+ "$ref": "#/$defs/SpacingStep"
2369
+ },
2370
+ "headerPaddingInline": {
2371
+ "$ref": "#/$defs/SpacingStep"
2372
+ },
2373
+ "headerPaddingBlock": {
2374
+ "$ref": "#/$defs/SpacingStep"
2375
+ },
2376
+ "contentGap": {
2377
+ "$ref": "#/$defs/SpacingStep"
2378
+ },
2379
+ "contentPaddingInline": {
2380
+ "$ref": "#/$defs/SpacingStep"
2381
+ },
2382
+ "contentPaddingBlock": {
2383
+ "$ref": "#/$defs/SpacingStep"
2384
+ }
2385
+ }
2386
+ }
2387
+ }
2388
+ }
2389
+ }
2390
+ },
2391
+ "TypeStep": {
2392
+ "anyOf": [
2393
+ {
2394
+ "const": 1,
2395
+ "type": "number"
2396
+ },
2397
+ {
2398
+ "const": 2,
2399
+ "type": "number"
2400
+ },
2401
+ {
2402
+ "const": 3,
2403
+ "type": "number"
2404
+ },
2405
+ {
2406
+ "const": 4,
2407
+ "type": "number"
2408
+ },
2409
+ {
2410
+ "const": 5,
2411
+ "type": "number"
2412
+ },
2413
+ {
2414
+ "const": 6,
2415
+ "type": "number"
2416
+ },
2417
+ {
2418
+ "const": 7,
2419
+ "type": "number"
2420
+ },
2421
+ {
2422
+ "const": 8,
2423
+ "type": "number"
2424
+ },
2425
+ {
2426
+ "const": 9,
2427
+ "type": "number"
2428
+ },
2429
+ {
2430
+ "const": 10,
2431
+ "type": "number"
2432
+ },
2433
+ {
2434
+ "const": 11,
2435
+ "type": "number"
2436
+ },
2437
+ {
2438
+ "const": 12,
2439
+ "type": "number"
2440
+ },
2441
+ {
2442
+ "const": 13,
2443
+ "type": "number"
2444
+ }
2445
+ ]
2446
+ },
2447
+ "TypeScalarBounds": {
2448
+ "additionalProperties": false,
2449
+ "type": "object",
2450
+ "required": [
2451
+ "minimum",
2452
+ "maximum"
2453
+ ],
2454
+ "properties": {
2455
+ "minimum": {
2456
+ "exclusiveMinimum": 0,
2457
+ "maximum": 512,
2458
+ "type": "number"
2459
+ },
2460
+ "maximum": {
2461
+ "exclusiveMinimum": 0,
2462
+ "maximum": 512,
2463
+ "type": "number"
2464
+ }
2465
+ }
2466
+ },
2467
+ "TypeStepConfig": {
2468
+ "additionalProperties": false,
2469
+ "type": "object",
2470
+ "required": [
2471
+ "size",
2472
+ "lineHeight",
2473
+ "tracking"
2474
+ ],
2475
+ "properties": {
2476
+ "size": {
2477
+ "$ref": "#/$defs/TypeScalarBounds"
2478
+ },
2479
+ "lineHeight": {
2480
+ "$ref": "#/$defs/TypeScalarBounds"
2481
+ },
2482
+ "tracking": {
2483
+ "minimum": -0.2,
2484
+ "maximum": 0.5,
2485
+ "type": "number"
2486
+ }
2487
+ }
2488
+ },
2489
+ "FontWeightRange": {
2490
+ "additionalProperties": false,
2491
+ "type": "object",
2492
+ "required": [
2493
+ "minimum",
2494
+ "maximum"
2495
+ ],
2496
+ "properties": {
2497
+ "minimum": {
2498
+ "minimum": 1,
2499
+ "maximum": 1000,
2500
+ "type": "integer"
2501
+ },
2502
+ "maximum": {
2503
+ "minimum": 1,
2504
+ "maximum": 1000,
2505
+ "type": "integer"
2506
+ }
2507
+ }
2508
+ },
2509
+ "FontResource": {
2510
+ "anyOf": [
2511
+ {
2512
+ "additionalProperties": false,
2513
+ "type": "object",
2514
+ "required": [
2515
+ "type",
2516
+ "url"
2517
+ ],
2518
+ "properties": {
2519
+ "type": {
2520
+ "const": "bunny",
2521
+ "type": "string"
2522
+ },
2523
+ "url": {
2524
+ "minLength": 1,
2525
+ "maxLength": 2048,
2526
+ "type": "string"
2527
+ }
2528
+ }
2529
+ },
2530
+ {
2531
+ "additionalProperties": false,
2532
+ "type": "object",
2533
+ "required": [
2534
+ "type",
2535
+ "faces"
2536
+ ],
2537
+ "properties": {
2538
+ "type": {
2539
+ "const": "local",
2540
+ "type": "string"
2541
+ },
2542
+ "faces": {
2543
+ "minItems": 1,
2544
+ "type": "array",
2545
+ "items": {
2546
+ "additionalProperties": false,
2547
+ "type": "object",
2548
+ "required": [
2549
+ "family",
2550
+ "src",
2551
+ "format",
2552
+ "weight",
2553
+ "style"
2554
+ ],
2555
+ "properties": {
2556
+ "family": {
2557
+ "minLength": 1,
2558
+ "maxLength": 128,
2559
+ "type": "string"
2560
+ },
2561
+ "src": {
2562
+ "minLength": 1,
2563
+ "maxLength": 2048,
2564
+ "type": "string"
2565
+ },
2566
+ "format": {
2567
+ "anyOf": [
2568
+ {
2569
+ "const": "woff2",
2570
+ "type": "string"
2571
+ },
2572
+ {
2573
+ "const": "woff",
2574
+ "type": "string"
2575
+ },
2576
+ {
2577
+ "const": "opentype",
2578
+ "type": "string"
2579
+ },
2580
+ {
2581
+ "const": "truetype",
2582
+ "type": "string"
2583
+ }
2584
+ ]
2585
+ },
2586
+ "weight": {
2587
+ "$ref": "#/$defs/FontWeightRange"
2588
+ },
2589
+ "style": {
2590
+ "anyOf": [
2591
+ {
2592
+ "const": "normal",
2593
+ "type": "string"
2594
+ },
2595
+ {
2596
+ "const": "italic",
2597
+ "type": "string"
2598
+ },
2599
+ {
2600
+ "const": "oblique",
2601
+ "type": "string"
2602
+ }
2603
+ ]
2604
+ }
2605
+ }
2606
+ }
2607
+ }
2608
+ }
2609
+ }
2610
+ ]
2611
+ },
2612
+ "FontFamilyBinding": {
2613
+ "additionalProperties": false,
2614
+ "type": "object",
2615
+ "required": [
2616
+ "resource",
2617
+ "family",
2618
+ "fallback"
2619
+ ],
2620
+ "properties": {
2621
+ "resource": {
2622
+ "$ref": "#/$defs/FamilyName"
2623
+ },
2624
+ "family": {
2625
+ "minLength": 1,
2626
+ "maxLength": 128,
2627
+ "type": "string"
2628
+ },
2629
+ "fallback": {
2630
+ "minItems": 1,
2631
+ "type": "array",
2632
+ "items": {
2633
+ "minLength": 1,
2634
+ "maxLength": 128,
2635
+ "type": "string"
2636
+ }
2637
+ }
2638
+ }
2639
+ },
2640
+ "TypographyDefaultRole": {
2641
+ "additionalProperties": false,
2642
+ "type": "object",
2643
+ "properties": {
2644
+ "family": {
2645
+ "$ref": "#/$defs/FamilyName"
2646
+ },
2647
+ "defaultStep": {
2648
+ "$ref": "#/$defs/TypeStep"
2649
+ },
2650
+ "weight": {
2651
+ "anyOf": [
2652
+ {
2653
+ "const": "normal",
2654
+ "type": "string"
2655
+ },
2656
+ {
2657
+ "const": "medium",
2658
+ "type": "string"
2659
+ },
2660
+ {
2661
+ "const": "semibold",
2662
+ "type": "string"
2663
+ },
2664
+ {
2665
+ "const": "bold",
2666
+ "type": "string"
2667
+ }
2668
+ ]
2669
+ }
2670
+ }
2671
+ },
2672
+ "TypographyFixedRole": {
2673
+ "additionalProperties": false,
2674
+ "type": "object",
2675
+ "properties": {
2676
+ "family": {
2677
+ "$ref": "#/$defs/FamilyName"
2678
+ },
2679
+ "step": {
2680
+ "$ref": "#/$defs/TypeStep"
2681
+ },
2682
+ "weight": {
2683
+ "anyOf": [
2684
+ {
2685
+ "const": "normal",
2686
+ "type": "string"
2687
+ },
2688
+ {
2689
+ "const": "medium",
2690
+ "type": "string"
2691
+ },
2692
+ {
2693
+ "const": "semibold",
2694
+ "type": "string"
2695
+ },
2696
+ {
2697
+ "const": "bold",
2698
+ "type": "string"
2699
+ }
2700
+ ]
2701
+ }
2702
+ }
2703
+ },
2704
+ "TypographyLabelRole": {
2705
+ "additionalProperties": false,
2706
+ "type": "object",
2707
+ "properties": {
2708
+ "family": {
2709
+ "$ref": "#/$defs/FamilyName"
2710
+ },
2711
+ "step": {
2712
+ "$ref": "#/$defs/TypeStep"
2713
+ },
2714
+ "weight": {
2715
+ "anyOf": [
2716
+ {
2717
+ "const": "normal",
2718
+ "type": "string"
2719
+ },
2720
+ {
2721
+ "const": "medium",
2722
+ "type": "string"
2723
+ },
2724
+ {
2725
+ "const": "semibold",
2726
+ "type": "string"
2727
+ },
2728
+ {
2729
+ "const": "bold",
2730
+ "type": "string"
2731
+ }
2732
+ ]
2733
+ },
2734
+ "emphasis": {
2735
+ "minimum": 0,
2736
+ "maximum": 1,
2737
+ "type": "number"
2738
+ }
2739
+ }
2740
+ },
2741
+ "TypographySizedRole": {
2742
+ "additionalProperties": false,
2743
+ "type": "object",
2744
+ "properties": {
2745
+ "family": {
2746
+ "$ref": "#/$defs/FamilyName"
2747
+ },
2748
+ "weight": {
2749
+ "anyOf": [
2750
+ {
2751
+ "const": "normal",
2752
+ "type": "string"
2753
+ },
2754
+ {
2755
+ "const": "medium",
2756
+ "type": "string"
2757
+ },
2758
+ {
2759
+ "const": "semibold",
2760
+ "type": "string"
2761
+ },
2762
+ {
2763
+ "const": "bold",
2764
+ "type": "string"
2765
+ }
2766
+ ]
2767
+ },
2768
+ "steps": {
2769
+ "additionalProperties": false,
2770
+ "type": "object",
2771
+ "properties": {
2772
+ "xs": {
2773
+ "$ref": "#/$defs/TypeStep"
2774
+ },
2775
+ "sm": {
2776
+ "$ref": "#/$defs/TypeStep"
2777
+ },
2778
+ "md": {
2779
+ "$ref": "#/$defs/TypeStep"
2780
+ },
2781
+ "lg": {
2782
+ "$ref": "#/$defs/TypeStep"
2783
+ },
2784
+ "xlg": {
2785
+ "$ref": "#/$defs/TypeStep"
2786
+ }
2787
+ }
2788
+ }
2789
+ }
2790
+ },
2791
+ "TypographyConfig": {
2792
+ "additionalProperties": false,
2793
+ "type": "object",
2794
+ "required": [
2795
+ "strategy",
2796
+ "version"
2797
+ ],
2798
+ "properties": {
2799
+ "strategy": {
2800
+ "const": "fluid-type-scale",
2801
+ "type": "string"
2802
+ },
2803
+ "version": {
2804
+ "const": 1,
2805
+ "type": "number"
2806
+ },
2807
+ "viewport": {
2808
+ "additionalProperties": false,
2809
+ "type": "object",
2810
+ "properties": {
2811
+ "minimum": {
2812
+ "minimum": 240,
2813
+ "maximum": 2560,
2814
+ "type": "number"
2815
+ },
2816
+ "maximum": {
2817
+ "minimum": 320,
2818
+ "maximum": 5120,
2819
+ "type": "number"
2820
+ }
2821
+ }
2822
+ },
2823
+ "resources": {
2824
+ "type": "object",
2825
+ "patternProperties": {
2826
+ "^[a-z][a-z0-9-]*$": {
2827
+ "$ref": "#/$defs/FontResource"
2828
+ }
2829
+ }
2830
+ },
2831
+ "families": {
2832
+ "type": "object",
2833
+ "patternProperties": {
2834
+ "^[a-z][a-z0-9-]*$": {
2835
+ "$ref": "#/$defs/FontFamilyBinding"
2836
+ }
2837
+ }
2838
+ },
2839
+ "steps": {
2840
+ "type": "object",
2841
+ "patternProperties": {
2842
+ "^(?:[1-9]|1[0-3])$": {
2843
+ "$ref": "#/$defs/TypeStepConfig"
2844
+ }
2845
+ }
2846
+ },
2847
+ "weights": {
2848
+ "additionalProperties": false,
2849
+ "type": "object",
2850
+ "properties": {
2851
+ "normal": {
2852
+ "minimum": 1,
2853
+ "maximum": 1000,
2854
+ "type": "integer"
2855
+ },
2856
+ "medium": {
2857
+ "minimum": 1,
2858
+ "maximum": 1000,
2859
+ "type": "integer"
2860
+ },
2861
+ "semibold": {
2862
+ "minimum": 1,
2863
+ "maximum": 1000,
2864
+ "type": "integer"
2865
+ },
2866
+ "bold": {
2867
+ "minimum": 1,
2868
+ "maximum": 1000,
2869
+ "type": "integer"
2870
+ }
2871
+ }
2872
+ },
2873
+ "anatomy": {
2874
+ "additionalProperties": false,
2875
+ "type": "object",
2876
+ "properties": {
2877
+ "body": {
2878
+ "$ref": "#/$defs/TypographyDefaultRole"
2879
+ },
2880
+ "heading": {
2881
+ "$ref": "#/$defs/TypographyDefaultRole"
2882
+ },
2883
+ "code": {
2884
+ "$ref": "#/$defs/TypographyDefaultRole"
2885
+ },
2886
+ "control": {
2887
+ "$ref": "#/$defs/TypographySizedRole"
2888
+ },
2889
+ "badge": {
2890
+ "$ref": "#/$defs/TypographySizedRole"
2891
+ },
2892
+ "label": {
2893
+ "$ref": "#/$defs/TypographyLabelRole"
2894
+ },
2895
+ "description": {
2896
+ "$ref": "#/$defs/TypographyFixedRole"
2897
+ },
2898
+ "metadata": {
2899
+ "$ref": "#/$defs/TypographyFixedRole"
2900
+ },
2901
+ "menuItem": {
2902
+ "$ref": "#/$defs/TypographyFixedRole"
2903
+ }
2904
+ }
2905
+ }
2906
+ }
2907
+ },
2908
+ "SizingScalarBounds": {
2909
+ "additionalProperties": false,
2910
+ "type": "object",
2911
+ "properties": {
2912
+ "minimum": {
2913
+ "minimum": 0,
2914
+ "maximum": 8192,
2915
+ "type": "number"
2916
+ },
2917
+ "maximum": {
2918
+ "minimum": 0,
2919
+ "maximum": 8192,
2920
+ "type": "number"
2921
+ }
2922
+ }
2923
+ },
2924
+ "PanelMeasureRecipe": {
2925
+ "additionalProperties": false,
2926
+ "type": "object",
2927
+ "properties": {
2928
+ "minimum": {
2929
+ "$ref": "#/$defs/SizingScalarBounds"
2930
+ },
2931
+ "preferred": {
2932
+ "$ref": "#/$defs/SizingScalarBounds"
2933
+ },
2934
+ "maximum": {
2935
+ "$ref": "#/$defs/SizingScalarBounds"
2936
+ }
2937
+ }
2938
+ },
2939
+ "SizedSizingScalars": {
2940
+ "additionalProperties": false,
2941
+ "type": "object",
2942
+ "properties": {
2943
+ "xs": {
2944
+ "$ref": "#/$defs/SizingScalarBounds"
2945
+ },
2946
+ "sm": {
2947
+ "$ref": "#/$defs/SizingScalarBounds"
2948
+ },
2949
+ "md": {
2950
+ "$ref": "#/$defs/SizingScalarBounds"
2951
+ },
2952
+ "lg": {
2953
+ "$ref": "#/$defs/SizingScalarBounds"
2954
+ },
2955
+ "xlg": {
2956
+ "$ref": "#/$defs/SizingScalarBounds"
2957
+ }
2958
+ }
2959
+ },
2960
+ "ControlSize": {
2961
+ "anyOf": [
2962
+ {
2963
+ "const": "xs",
2964
+ "type": "string"
2965
+ },
2966
+ {
2967
+ "const": "sm",
2968
+ "type": "string"
2969
+ },
2970
+ {
2971
+ "const": "md",
2972
+ "type": "string"
2973
+ },
2974
+ {
2975
+ "const": "lg",
2976
+ "type": "string"
2977
+ },
2978
+ {
2979
+ "const": "xlg",
2980
+ "type": "string"
2981
+ }
2982
+ ]
2983
+ },
2984
+ "SizingConfig": {
2985
+ "additionalProperties": false,
2986
+ "type": "object",
2987
+ "required": [
2988
+ "strategy",
2989
+ "version"
2990
+ ],
2991
+ "properties": {
2992
+ "strategy": {
2993
+ "const": "bounded-fluid-lengths",
2994
+ "type": "string"
2995
+ },
2996
+ "version": {
2997
+ "const": 1,
2998
+ "type": "number"
2999
+ },
3000
+ "viewport": {
3001
+ "additionalProperties": false,
3002
+ "type": "object",
3003
+ "properties": {
3004
+ "minimum": {
3005
+ "minimum": 240,
3006
+ "maximum": 2560,
3007
+ "type": "number"
3008
+ },
3009
+ "maximum": {
3010
+ "minimum": 320,
3011
+ "maximum": 5120,
3012
+ "type": "number"
3013
+ }
3014
+ }
3015
+ },
3016
+ "control": {
3017
+ "additionalProperties": false,
3018
+ "type": "object",
3019
+ "properties": {
3020
+ "height": {
3021
+ "$ref": "#/$defs/SizedSizingScalars"
3022
+ },
3023
+ "multilineMinHeight": {
3024
+ "$ref": "#/$defs/SizedSizingScalars"
3025
+ }
3026
+ }
3027
+ },
3028
+ "icon": {
3029
+ "$ref": "#/$defs/SizedSizingScalars"
3030
+ },
3031
+ "anatomy": {
3032
+ "additionalProperties": false,
3033
+ "type": "object",
3034
+ "properties": {
3035
+ "brand": {
3036
+ "additionalProperties": false,
3037
+ "type": "object",
3038
+ "properties": {
3039
+ "logo": {
3040
+ "$ref": "#/$defs/SizedSizingScalars"
3041
+ }
3042
+ }
3043
+ },
3044
+ "badge": {
3045
+ "additionalProperties": false,
3046
+ "type": "object",
3047
+ "properties": {
3048
+ "close": {
3049
+ "$ref": "#/$defs/SizedSizingScalars"
3050
+ }
3051
+ }
3052
+ },
3053
+ "checkbox": {
3054
+ "additionalProperties": false,
3055
+ "type": "object",
3056
+ "properties": {
3057
+ "indicator": {
3058
+ "$ref": "#/$defs/SizedSizingScalars"
3059
+ }
3060
+ }
3061
+ },
3062
+ "radio": {
3063
+ "additionalProperties": false,
3064
+ "type": "object",
3065
+ "properties": {
3066
+ "indicator": {
3067
+ "$ref": "#/$defs/SizedSizingScalars"
3068
+ },
3069
+ "dot": {
3070
+ "$ref": "#/$defs/SizedSizingScalars"
3071
+ }
3072
+ }
3073
+ },
3074
+ "switch": {
3075
+ "additionalProperties": false,
3076
+ "type": "object",
3077
+ "properties": {
3078
+ "trackWidth": {
3079
+ "$ref": "#/$defs/SizedSizingScalars"
3080
+ },
3081
+ "trackHeight": {
3082
+ "$ref": "#/$defs/SizedSizingScalars"
3083
+ },
3084
+ "thumb": {
3085
+ "$ref": "#/$defs/SizedSizingScalars"
3086
+ },
3087
+ "inset": {
3088
+ "$ref": "#/$defs/SizingScalarBounds"
3089
+ }
3090
+ }
3091
+ },
3092
+ "slider": {
3093
+ "additionalProperties": false,
3094
+ "type": "object",
3095
+ "properties": {
3096
+ "track": {
3097
+ "$ref": "#/$defs/SizedSizingScalars"
3098
+ },
3099
+ "thumb": {
3100
+ "$ref": "#/$defs/SizedSizingScalars"
3101
+ }
3102
+ }
3103
+ },
3104
+ "scrollArea": {
3105
+ "additionalProperties": false,
3106
+ "type": "object",
3107
+ "properties": {
3108
+ "scrollbar": {
3109
+ "$ref": "#/$defs/SizingScalarBounds"
3110
+ },
3111
+ "inset": {
3112
+ "$ref": "#/$defs/SizingScalarBounds"
3113
+ }
3114
+ }
3115
+ },
3116
+ "menu": {
3117
+ "additionalProperties": false,
3118
+ "type": "object",
3119
+ "properties": {
3120
+ "minimumWidth": {
3121
+ "$ref": "#/$defs/SizingScalarBounds"
3122
+ }
3123
+ }
3124
+ },
3125
+ "menuItem": {
3126
+ "additionalProperties": false,
3127
+ "type": "object",
3128
+ "properties": {
3129
+ "controlSize": {
3130
+ "$ref": "#/$defs/ControlSize"
3131
+ }
3132
+ }
3133
+ },
3134
+ "keybinding": {
3135
+ "additionalProperties": false,
3136
+ "type": "object",
3137
+ "properties": {
3138
+ "key": {
3139
+ "$ref": "#/$defs/SizingScalarBounds"
3140
+ }
3141
+ }
3142
+ },
3143
+ "select": {
3144
+ "additionalProperties": false,
3145
+ "type": "object",
3146
+ "properties": {
3147
+ "listboxMaxHeight": {
3148
+ "$ref": "#/$defs/SizingScalarBounds"
3149
+ }
3150
+ }
3151
+ },
3152
+ "panel": {
3153
+ "additionalProperties": false,
3154
+ "type": "object",
3155
+ "properties": {
3156
+ "collapsed": {
3157
+ "$ref": "#/$defs/SizingScalarBounds"
3158
+ },
3159
+ "resizeHandleHitArea": {
3160
+ "$ref": "#/$defs/SizingScalarBounds"
3161
+ },
3162
+ "resizeHandleCoarseHitArea": {
3163
+ "$ref": "#/$defs/SizingScalarBounds"
3164
+ }
3165
+ }
3166
+ },
3167
+ "sidebar": {
3168
+ "additionalProperties": false,
3169
+ "type": "object",
3170
+ "properties": {
3171
+ "width": {
3172
+ "$ref": "#/$defs/SizingScalarBounds"
3173
+ },
3174
+ "drawerWidth": {
3175
+ "$ref": "#/$defs/SizingScalarBounds"
3176
+ },
3177
+ "minimumWidth": {
3178
+ "$ref": "#/$defs/SizingScalarBounds"
3179
+ },
3180
+ "maximumWidth": {
3181
+ "$ref": "#/$defs/SizingScalarBounds"
3182
+ },
3183
+ "minimumHeight": {
3184
+ "$ref": "#/$defs/SizingScalarBounds"
3185
+ },
3186
+ "maximumHeight": {
3187
+ "$ref": "#/$defs/SizingScalarBounds"
3188
+ }
3189
+ }
3190
+ }
3191
+ }
3192
+ },
3193
+ "measure": {
3194
+ "additionalProperties": false,
3195
+ "type": "object",
3196
+ "properties": {
3197
+ "container": {
3198
+ "additionalProperties": false,
3199
+ "type": "object",
3200
+ "properties": {
3201
+ "3xs": {
3202
+ "$ref": "#/$defs/SizingScalarBounds"
3203
+ },
3204
+ "2xs": {
3205
+ "$ref": "#/$defs/SizingScalarBounds"
3206
+ },
3207
+ "xs": {
3208
+ "$ref": "#/$defs/SizingScalarBounds"
3209
+ },
3210
+ "sm": {
3211
+ "$ref": "#/$defs/SizingScalarBounds"
3212
+ },
3213
+ "md": {
3214
+ "$ref": "#/$defs/SizingScalarBounds"
3215
+ },
3216
+ "lg": {
3217
+ "$ref": "#/$defs/SizingScalarBounds"
3218
+ },
3219
+ "xl": {
3220
+ "$ref": "#/$defs/SizingScalarBounds"
3221
+ },
3222
+ "2xl": {
3223
+ "$ref": "#/$defs/SizingScalarBounds"
3224
+ },
3225
+ "3xl": {
3226
+ "$ref": "#/$defs/SizingScalarBounds"
3227
+ },
3228
+ "4xl": {
3229
+ "$ref": "#/$defs/SizingScalarBounds"
3230
+ },
3231
+ "5xl": {
3232
+ "$ref": "#/$defs/SizingScalarBounds"
3233
+ },
3234
+ "6xl": {
3235
+ "$ref": "#/$defs/SizingScalarBounds"
3236
+ },
3237
+ "7xl": {
3238
+ "$ref": "#/$defs/SizingScalarBounds"
3239
+ }
3240
+ }
3241
+ },
3242
+ "proseCharacters": {
3243
+ "minimum": 35,
3244
+ "maximum": 100,
3245
+ "type": "number"
3246
+ },
3247
+ "modal": {
3248
+ "additionalProperties": false,
3249
+ "type": "object",
3250
+ "properties": {
3251
+ "sm": {
3252
+ "$ref": "#/$defs/SizingScalarBounds"
3253
+ },
3254
+ "md": {
3255
+ "$ref": "#/$defs/SizingScalarBounds"
3256
+ },
3257
+ "lg": {
3258
+ "$ref": "#/$defs/SizingScalarBounds"
3259
+ },
3260
+ "xl": {
3261
+ "$ref": "#/$defs/SizingScalarBounds"
3262
+ }
3263
+ }
3264
+ },
3265
+ "panel": {
3266
+ "additionalProperties": false,
3267
+ "type": "object",
3268
+ "properties": {
3269
+ "1": {
3270
+ "$ref": "#/$defs/PanelMeasureRecipe"
3271
+ },
3272
+ "2": {
3273
+ "$ref": "#/$defs/PanelMeasureRecipe"
3274
+ },
3275
+ "3": {
3276
+ "$ref": "#/$defs/PanelMeasureRecipe"
3277
+ },
3278
+ "4": {
3279
+ "$ref": "#/$defs/PanelMeasureRecipe"
3280
+ },
3281
+ "5": {
3282
+ "$ref": "#/$defs/PanelMeasureRecipe"
3283
+ },
3284
+ "6": {
3285
+ "$ref": "#/$defs/PanelMeasureRecipe"
3286
+ }
3287
+ }
3288
+ }
3289
+ }
3290
+ }
3291
+ }
3292
+ },
3293
+ "SemanticFamily": {
3294
+ "pattern": "^(?:neutral|accent|status\\.[a-z][a-z0-9-]*|supporting\\.[a-z][a-z0-9-]*|named\\.[a-z][a-z0-9-]*)$",
3295
+ "type": "string"
3296
+ },
3297
+ "SemanticColorReference": {
3298
+ "anyOf": [
3299
+ {
3300
+ "additionalProperties": false,
3301
+ "type": "object",
3302
+ "required": [
3303
+ "kind",
3304
+ "step"
3305
+ ],
3306
+ "properties": {
3307
+ "kind": {
3308
+ "const": "step",
3309
+ "type": "string"
3310
+ },
3311
+ "step": {
3312
+ "$ref": "#/$defs/RadixStep"
3313
+ }
3314
+ }
3315
+ },
3316
+ {
3317
+ "additionalProperties": false,
3318
+ "type": "object",
3319
+ "required": [
3320
+ "kind",
3321
+ "step"
3322
+ ],
3323
+ "properties": {
3324
+ "kind": {
3325
+ "const": "alpha-step",
3326
+ "type": "string"
3327
+ },
3328
+ "step": {
3329
+ "$ref": "#/$defs/RadixStep"
3330
+ }
3331
+ }
3332
+ }
3333
+ ]
3334
+ },
3335
+ "MinimumDeltaEStrength": {
3336
+ "additionalProperties": false,
3337
+ "type": "object",
3338
+ "required": [
3339
+ "kind",
3340
+ "minimum",
3341
+ "maximumOpacity"
3342
+ ],
3343
+ "properties": {
3344
+ "kind": {
3345
+ "const": "minimum-delta-e",
3346
+ "type": "string"
3347
+ },
3348
+ "minimum": {
3349
+ "exclusiveMinimum": 0,
3350
+ "maximum": 1,
3351
+ "type": "number"
3352
+ },
3353
+ "maximumOpacity": {
3354
+ "exclusiveMinimum": 0,
3355
+ "maximum": 1,
3356
+ "type": "number"
3357
+ }
3358
+ }
3359
+ },
3360
+ "StateLayerStrength": {
3361
+ "anyOf": [
3362
+ {
3363
+ "minimum": 0,
3364
+ "maximum": 1,
3365
+ "type": "number"
3366
+ },
3367
+ {
3368
+ "$ref": "#/$defs/MinimumDeltaEStrength"
3369
+ }
3370
+ ]
3371
+ },
3372
+ "IntentRoleProfile": {
3373
+ "additionalProperties": false,
3374
+ "type": "object",
3375
+ "properties": {
3376
+ "family": {
3377
+ "$ref": "#/$defs/SemanticFamily"
3378
+ },
3379
+ "text": {
3380
+ "additionalProperties": false,
3381
+ "type": "object",
3382
+ "properties": {
3383
+ "rest": {
3384
+ "$ref": "#/$defs/SemanticColorReference"
3385
+ },
3386
+ "hover": {
3387
+ "$ref": "#/$defs/SemanticColorReference"
3388
+ }
3389
+ }
3390
+ },
3391
+ "soft": {
3392
+ "additionalProperties": false,
3393
+ "type": "object",
3394
+ "properties": {
3395
+ "rest": {
3396
+ "$ref": "#/$defs/SemanticColorReference"
3397
+ },
3398
+ "hover": {
3399
+ "$ref": "#/$defs/SemanticColorReference"
3400
+ },
3401
+ "pressed": {
3402
+ "$ref": "#/$defs/SemanticColorReference"
3403
+ },
3404
+ "foreground": {
3405
+ "$ref": "#/$defs/SemanticColorReference"
3406
+ },
3407
+ "foregroundMuted": {
3408
+ "$ref": "#/$defs/SemanticColorReference"
3409
+ }
3410
+ }
3411
+ },
3412
+ "solid": {
3413
+ "additionalProperties": false,
3414
+ "type": "object",
3415
+ "properties": {
3416
+ "rest": {
3417
+ "$ref": "#/$defs/SemanticColorReference"
3418
+ },
3419
+ "hover": {
3420
+ "$ref": "#/$defs/SemanticColorReference"
3421
+ },
3422
+ "pressed": {
3423
+ "$ref": "#/$defs/SemanticColorReference"
3424
+ },
3425
+ "pairing": {
3426
+ "$ref": "#/$defs/SelectionTreatmentName"
3427
+ },
3428
+ "separation": {
3429
+ "additionalProperties": false,
3430
+ "type": "object",
3431
+ "properties": {
3432
+ "hover": {
3433
+ "additionalProperties": false,
3434
+ "type": "object",
3435
+ "properties": {
3436
+ "light": {
3437
+ "exclusiveMinimum": 0,
3438
+ "maximum": 0.5,
3439
+ "type": "number"
3440
+ },
3441
+ "dark": {
3442
+ "exclusiveMinimum": 0,
3443
+ "maximum": 0.5,
3444
+ "type": "number"
3445
+ }
3446
+ }
3447
+ },
3448
+ "pressed": {
3449
+ "additionalProperties": false,
3450
+ "type": "object",
3451
+ "properties": {
3452
+ "light": {
3453
+ "exclusiveMinimum": 0,
3454
+ "maximum": 0.5,
3455
+ "type": "number"
3456
+ },
3457
+ "dark": {
3458
+ "exclusiveMinimum": 0,
3459
+ "maximum": 0.5,
3460
+ "type": "number"
3461
+ }
3462
+ }
3463
+ }
3464
+ }
3465
+ }
3466
+ }
3467
+ },
3468
+ "edge": {
3469
+ "additionalProperties": false,
3470
+ "type": "object",
3471
+ "properties": {
3472
+ "rest": {
3473
+ "$ref": "#/$defs/SemanticColorReference"
3474
+ },
3475
+ "hover": {
3476
+ "$ref": "#/$defs/SemanticColorReference"
3477
+ },
3478
+ "strong": {
3479
+ "$ref": "#/$defs/SemanticColorReference"
3480
+ },
3481
+ "strength": {
3482
+ "additionalProperties": false,
3483
+ "type": "object",
3484
+ "properties": {
3485
+ "rest": {
3486
+ "$ref": "#/$defs/MinimumDeltaEStrength"
3487
+ },
3488
+ "hover": {
3489
+ "$ref": "#/$defs/MinimumDeltaEStrength"
3490
+ },
3491
+ "strong": {
3492
+ "$ref": "#/$defs/MinimumDeltaEStrength"
3493
+ }
3494
+ }
3495
+ }
3496
+ }
3497
+ },
3498
+ "focus": {
3499
+ "additionalProperties": false,
3500
+ "type": "object",
3501
+ "properties": {
3502
+ "color": {
3503
+ "$ref": "#/$defs/SemanticColorReference"
3504
+ },
3505
+ "opacity": {
3506
+ "minimum": 0,
3507
+ "maximum": 1,
3508
+ "type": "number"
3509
+ },
3510
+ "width": {
3511
+ "$ref": "#/$defs/NonnegativeShadowLength"
3512
+ }
3513
+ }
3514
+ }
3515
+ }
3516
+ },
3517
+ "StateLayerReference": {
3518
+ "additionalProperties": false,
3519
+ "type": "object",
3520
+ "required": [
3521
+ "family",
3522
+ "color"
3523
+ ],
3524
+ "properties": {
3525
+ "family": {
3526
+ "$ref": "#/$defs/SemanticFamily"
3527
+ },
3528
+ "color": {
3529
+ "$ref": "#/$defs/SemanticColorReference"
3530
+ },
3531
+ "strength": {
3532
+ "$ref": "#/$defs/StateLayerStrength"
3533
+ }
3534
+ }
3535
+ },
3536
+ "SelectionTreatmentName": {
3537
+ "pattern": "^[a-z][a-z0-9-]*$",
3538
+ "type": "string"
3539
+ },
3540
+ "SelectionBackground": {
3541
+ "additionalProperties": false,
3542
+ "type": "object",
3543
+ "required": [
3544
+ "kind"
3545
+ ],
3546
+ "properties": {
3547
+ "kind": {
3548
+ "const": "state-layer",
3549
+ "type": "string"
3550
+ },
3551
+ "color": {
3552
+ "$ref": "#/$defs/SemanticColorReference"
3553
+ },
3554
+ "strength": {
3555
+ "$ref": "#/$defs/StateLayerStrength"
3556
+ }
3557
+ }
3558
+ },
3559
+ "SelectionTreatment": {
3560
+ "additionalProperties": false,
3561
+ "type": "object",
3562
+ "required": [
3563
+ "family"
3564
+ ],
3565
+ "properties": {
3566
+ "family": {
3567
+ "$ref": "#/$defs/SemanticFamily"
3568
+ },
3569
+ "background": {
3570
+ "$ref": "#/$defs/SelectionBackground"
3571
+ },
3572
+ "backgroundHover": {
3573
+ "$ref": "#/$defs/SelectionBackground"
3574
+ },
3575
+ "foreground": {
3576
+ "$ref": "#/$defs/SemanticColorReference"
3577
+ }
3578
+ }
3579
+ },
3580
+ "DisabledInteraction": {
3581
+ "additionalProperties": false,
3582
+ "type": "object",
3583
+ "properties": {
3584
+ "opacity": {
3585
+ "minimum": 0,
3586
+ "maximum": 1,
3587
+ "type": "number"
3588
+ },
3589
+ "foreground": {
3590
+ "$ref": "#/$defs/SelectionTreatmentName"
3591
+ },
3592
+ "fill": {
3593
+ "$ref": "#/$defs/StateLayerReference"
3594
+ },
3595
+ "edge": {
3596
+ "$ref": "#/$defs/StateLayerReference"
3597
+ }
3598
+ }
3599
+ },
3600
+ "InteractionConfigV1": {
3601
+ "additionalProperties": false,
3602
+ "type": "object",
3603
+ "required": [
3604
+ "strategy",
3605
+ "version"
3606
+ ],
3607
+ "properties": {
3608
+ "strategy": {
3609
+ "const": "substrate-state-layers",
3610
+ "type": "string"
3611
+ },
3612
+ "version": {
3613
+ "const": 1,
3614
+ "type": "number"
3615
+ },
3616
+ "neutral": {
3617
+ "additionalProperties": false,
3618
+ "type": "object",
3619
+ "properties": {
3620
+ "hover": {
3621
+ "$ref": "#/$defs/StateLayerReference"
3622
+ },
3623
+ "pressed": {
3624
+ "$ref": "#/$defs/StateLayerReference"
3625
+ },
3626
+ "selected": {
3627
+ "$ref": "#/$defs/StateLayerReference"
3628
+ },
3629
+ "selectedHover": {
3630
+ "$ref": "#/$defs/StateLayerReference"
3631
+ }
3632
+ }
3633
+ },
3634
+ "disabled": {
3635
+ "$ref": "#/$defs/DisabledInteraction"
3636
+ }
3637
+ }
3638
+ },
3639
+ "InteractionConfigV2": {
3640
+ "additionalProperties": false,
3641
+ "type": "object",
3642
+ "required": [
3643
+ "strategy",
3644
+ "version"
3645
+ ],
3646
+ "properties": {
3647
+ "strategy": {
3648
+ "const": "substrate-state-layers",
3649
+ "type": "string"
3650
+ },
3651
+ "version": {
3652
+ "const": 2,
3653
+ "type": "number"
3654
+ },
3655
+ "actions": {
3656
+ "additionalProperties": false,
3657
+ "type": "object",
3658
+ "properties": {
3659
+ "hover": {
3660
+ "$ref": "#/$defs/StateLayerReference"
3661
+ },
3662
+ "pressed": {
3663
+ "$ref": "#/$defs/StateLayerReference"
3664
+ }
3665
+ }
3666
+ },
3667
+ "selection": {
3668
+ "additionalProperties": false,
3669
+ "type": "object",
3670
+ "properties": {
3671
+ "default": {
3672
+ "$ref": "#/$defs/SelectionTreatmentName"
3673
+ },
3674
+ "treatments": {
3675
+ "type": "object",
3676
+ "patternProperties": {
3677
+ "^[a-z][a-z0-9-]*$": {
3678
+ "$ref": "#/$defs/SelectionTreatment"
3679
+ }
3680
+ }
3681
+ }
3682
+ }
3683
+ },
3684
+ "disabled": {
3685
+ "$ref": "#/$defs/DisabledInteraction"
3686
+ }
3687
+ }
3688
+ },
3689
+ "ExpandedTreatment": {
3690
+ "anyOf": [
3691
+ {
3692
+ "const": "rest",
3693
+ "type": "string"
3694
+ },
3695
+ {
3696
+ "const": "emphasized",
3697
+ "type": "string"
3698
+ },
3699
+ {
3700
+ "const": "focus",
3701
+ "type": "string"
3702
+ }
3703
+ ]
3704
+ },
3705
+ "InteractionConfigV3": {
3706
+ "additionalProperties": false,
3707
+ "type": "object",
3708
+ "required": [
3709
+ "strategy",
3710
+ "version"
3711
+ ],
3712
+ "properties": {
3713
+ "strategy": {
3714
+ "const": "substrate-state-layers",
3715
+ "type": "string"
3716
+ },
3717
+ "version": {
3718
+ "const": 3,
3719
+ "type": "number"
3720
+ },
3721
+ "actions": {
3722
+ "additionalProperties": false,
3723
+ "type": "object",
3724
+ "properties": {
3725
+ "hover": {
3726
+ "$ref": "#/$defs/StateLayerReference"
3727
+ },
3728
+ "pressed": {
3729
+ "$ref": "#/$defs/StateLayerReference"
3730
+ }
3731
+ }
3732
+ },
3733
+ "selection": {
3734
+ "additionalProperties": false,
3735
+ "type": "object",
3736
+ "properties": {
3737
+ "default": {
3738
+ "$ref": "#/$defs/SelectionTreatmentName"
3739
+ },
3740
+ "treatments": {
3741
+ "type": "object",
3742
+ "patternProperties": {
3743
+ "^[a-z][a-z0-9-]*$": {
3744
+ "$ref": "#/$defs/SelectionTreatment"
3745
+ }
3746
+ }
3747
+ }
3748
+ }
3749
+ },
3750
+ "disclosure": {
3751
+ "additionalProperties": false,
3752
+ "type": "object",
3753
+ "properties": {
3754
+ "expandedTreatment": {
3755
+ "$ref": "#/$defs/ExpandedTreatment"
3756
+ }
3757
+ }
3758
+ },
3759
+ "disabled": {
3760
+ "$ref": "#/$defs/DisabledInteraction"
3761
+ }
3762
+ }
3763
+ },
3764
+ "SemanticConfig": {
3765
+ "additionalProperties": false,
3766
+ "type": "object",
3767
+ "properties": {
3768
+ "roles": {
3769
+ "additionalProperties": false,
3770
+ "type": "object",
3771
+ "required": [
3772
+ "strategy",
3773
+ "version"
3774
+ ],
3775
+ "properties": {
3776
+ "strategy": {
3777
+ "const": "functional-role-graph",
3778
+ "type": "string"
3779
+ },
3780
+ "version": {
3781
+ "const": 1,
3782
+ "type": "number"
3783
+ },
3784
+ "structure": {
3785
+ "additionalProperties": false,
3786
+ "type": "object",
3787
+ "properties": {
3788
+ "separator": {
3789
+ "additionalProperties": false,
3790
+ "type": "object",
3791
+ "properties": {
3792
+ "color": {
3793
+ "$ref": "#/$defs/StateLayerReference"
3794
+ },
3795
+ "mutedOpacity": {
3796
+ "minimum": 0,
3797
+ "maximum": 1,
3798
+ "type": "number"
3799
+ }
3800
+ }
3801
+ }
3802
+ }
3803
+ },
3804
+ "intents": {
3805
+ "additionalProperties": false,
3806
+ "type": "object",
3807
+ "properties": {
3808
+ "neutral": {
3809
+ "$ref": "#/$defs/IntentRoleProfile"
3810
+ },
3811
+ "accent": {
3812
+ "$ref": "#/$defs/IntentRoleProfile"
3813
+ },
3814
+ "information": {
3815
+ "$ref": "#/$defs/IntentRoleProfile"
3816
+ },
3817
+ "success": {
3818
+ "$ref": "#/$defs/IntentRoleProfile"
3819
+ },
3820
+ "warning": {
3821
+ "$ref": "#/$defs/IntentRoleProfile"
3822
+ },
3823
+ "danger": {
3824
+ "$ref": "#/$defs/IntentRoleProfile"
3825
+ }
3826
+ }
3827
+ }
3828
+ }
3829
+ },
3830
+ "interactions": {
3831
+ "anyOf": [
3832
+ {
3833
+ "$ref": "#/$defs/InteractionConfigV1"
3834
+ },
3835
+ {
3836
+ "$ref": "#/$defs/InteractionConfigV2"
3837
+ },
3838
+ {
3839
+ "$ref": "#/$defs/InteractionConfigV3"
3840
+ }
3841
+ ]
3842
+ },
3843
+ "composites": {
3844
+ "additionalProperties": false,
3845
+ "type": "object",
3846
+ "properties": {
3847
+ "scrim": {
3848
+ "additionalProperties": false,
3849
+ "type": "object",
3850
+ "required": [
3851
+ "strategy",
3852
+ "version"
3853
+ ],
3854
+ "properties": {
3855
+ "strategy": {
3856
+ "const": "appearance-composite",
3857
+ "type": "string"
3858
+ },
3859
+ "version": {
3860
+ "const": 1,
3861
+ "type": "number"
3862
+ },
3863
+ "source": {
3864
+ "anyOf": [
3865
+ {
3866
+ "additionalProperties": false,
3867
+ "type": "object",
3868
+ "required": [
3869
+ "kind",
3870
+ "appearances"
3871
+ ],
3872
+ "properties": {
3873
+ "kind": {
3874
+ "const": "color",
3875
+ "type": "string"
3876
+ },
3877
+ "appearances": {
3878
+ "additionalProperties": false,
3879
+ "type": "object",
3880
+ "required": [
3881
+ "light",
3882
+ "dark"
3883
+ ],
3884
+ "properties": {
3885
+ "light": {
3886
+ "$ref": "#/$defs/ColorInput"
3887
+ },
3888
+ "dark": {
3889
+ "$ref": "#/$defs/ColorInput"
3890
+ }
3891
+ }
3892
+ }
3893
+ }
3894
+ },
3895
+ {
3896
+ "additionalProperties": false,
3897
+ "type": "object",
3898
+ "required": [
3899
+ "kind",
3900
+ "family",
3901
+ "appearances"
3902
+ ],
3903
+ "properties": {
3904
+ "kind": {
3905
+ "const": "family",
3906
+ "type": "string"
3907
+ },
3908
+ "family": {
3909
+ "$ref": "#/$defs/SemanticFamily"
3910
+ },
3911
+ "appearances": {
3912
+ "additionalProperties": false,
3913
+ "type": "object",
3914
+ "required": [
3915
+ "light",
3916
+ "dark"
3917
+ ],
3918
+ "properties": {
3919
+ "light": {
3920
+ "$ref": "#/$defs/RadixStep"
3921
+ },
3922
+ "dark": {
3923
+ "$ref": "#/$defs/RadixStep"
3924
+ }
3925
+ }
3926
+ }
3927
+ }
3928
+ }
3929
+ ]
3930
+ },
3931
+ "opacity": {
3932
+ "additionalProperties": false,
3933
+ "type": "object",
3934
+ "properties": {
3935
+ "light": {
3936
+ "minimum": 0.1,
3937
+ "maximum": 1,
3938
+ "type": "number"
3939
+ },
3940
+ "dark": {
3941
+ "minimum": 0.1,
3942
+ "maximum": 1,
3943
+ "type": "number"
3944
+ }
3945
+ }
3946
+ }
3947
+ }
3948
+ }
3949
+ }
3950
+ }
3951
+ }
3952
+ },
3953
+ "MotionConfig": {
3954
+ "additionalProperties": false,
3955
+ "type": "object",
3956
+ "required": [
3957
+ "strategy",
3958
+ "version"
3959
+ ],
3960
+ "properties": {
3961
+ "strategy": {
3962
+ "const": "semantic-motion",
3963
+ "type": "string"
3964
+ },
3965
+ "version": {
3966
+ "const": 1,
3967
+ "type": "number"
3968
+ },
3969
+ "tempo": {
3970
+ "minimum": 0,
3971
+ "maximum": 1,
3972
+ "type": "number"
3973
+ },
3974
+ "elasticity": {
3975
+ "minimum": 0,
3976
+ "maximum": 1,
3977
+ "type": "number"
3978
+ },
3979
+ "displacement": {
3980
+ "minimum": 0,
3981
+ "maximum": 1,
3982
+ "type": "number"
3983
+ }
3984
+ }
3985
+ }
3986
+ }
3987
+ }