@vireo-ai/trellis-ui 0.1.61 → 0.1.63

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 (537) hide show
  1. package/THIRD_PARTY_NOTICES.md +9 -0
  2. package/package.json +15 -35
  3. package/packages/client/skills/compose-trellis-ui/SKILL.md +84 -0
  4. package/packages/client/skills/compose-trellis-ui/references/project-ui.md +40 -0
  5. package/packages/client/src/components/accordion/styles.css +21 -9
  6. package/packages/client/src/components/badge/styles.css +12 -0
  7. package/packages/client/src/components/button/styles.css +31 -5
  8. package/packages/client/src/components/card/styles.css +16 -0
  9. package/packages/client/src/components/checkbox/styles.css +29 -5
  10. package/packages/client/src/components/date-picker/styles.css +22 -17
  11. package/packages/client/src/components/field/styles.css +16 -16
  12. package/packages/client/src/components/input/styles.css +1 -0
  13. package/packages/client/src/components/keybinding/styles.css +9 -2
  14. package/packages/client/src/components/menu/styles.css +13 -0
  15. package/packages/client/src/components/panels/styles.css +12 -2
  16. package/packages/client/src/components/scroll-area/styles.css +169 -2
  17. package/packages/client/src/components/select/styles.css +28 -8
  18. package/packages/client/src/components/sidebar/styles.css +218 -0
  19. package/packages/client/src/components/slider/styles.css +57 -0
  20. package/packages/client/src/components/tabs/styles.css +26 -24
  21. package/packages/client/src/components/toast/styles.css +31 -0
  22. package/packages/client/src/directives/sortable.css +5 -0
  23. package/packages/client/src/runtime/drag-and-drop/resize-handle.css +2 -2
  24. package/packages/client/src/styles/components.css +8 -4
  25. package/packages/client/src/styles/fonts/fira-code/5.3.0/LICENSE +93 -0
  26. package/packages/client/src/styles/fonts/fira-code/5.3.0/download.json +47 -0
  27. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
  28. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
  29. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
  30. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
  31. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
  32. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
  33. package/packages/client/src/styles/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
  34. package/packages/client/src/styles/fonts/fira-code/5.3.0/font.css +62 -0
  35. package/packages/client/src/styles/fonts/fira-code/5.3.0/resource.json +82 -0
  36. package/packages/client/src/styles/fonts/inter/5.3.0/LICENSE +93 -0
  37. package/packages/client/src/styles/fonts/inter/5.3.0/download.json +47 -0
  38. package/packages/client/src/styles/fonts/inter/5.3.0/font.css +62 -0
  39. package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
  40. package/packages/client/src/styles/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
  41. package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
  42. package/packages/client/src/styles/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
  43. package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
  44. package/packages/client/src/styles/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
  45. package/packages/client/src/styles/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
  46. package/packages/client/src/styles/fonts/inter/5.3.0/resource.json +82 -0
  47. package/packages/client/src/styles/generated/theme-fonts.css +3 -3
  48. package/packages/client/src/styles/generated/theme-palette.css +1001 -634
  49. package/packages/client/src/styles/generated/theme-runtime.css +938 -607
  50. package/packages/client/src/styles/generated-sources.css +1 -1
  51. package/packages/client/src/styles/layout.css +88 -0
  52. package/packages/client/src/styles/recipes/action.css +4 -16
  53. package/packages/client/src/styles/recipes/disabled.css +8 -0
  54. package/packages/client/src/styles/recipes/option.css +0 -44
  55. package/packages/client/src/styles/recipes/selection.css +28 -39
  56. package/packages/client/src/styles/theme-support.css +26 -42
  57. package/packages/client/src/styles/typography.css +26 -0
  58. package/packages/client/types/assets/bridge.d.ts +1 -2
  59. package/packages/client/types/capabilities/collection.d.ts +7 -0
  60. package/packages/client/types/capabilities/collection.entry.generated.d.ts +3 -0
  61. package/packages/client/types/capabilities/shortcut.d.ts +4 -3
  62. package/packages/client/types/components/accordion/machine.d.ts +4 -4
  63. package/packages/client/types/components/app/contract.d.ts +5 -5
  64. package/packages/client/types/components/badge/contract.d.ts +1 -0
  65. package/packages/client/types/components/box/contract.d.ts +17 -12
  66. package/packages/client/types/components/box/index.d.ts +1 -1
  67. package/packages/client/types/components/button/contract.d.ts +3 -2
  68. package/packages/client/types/components/card/contract.d.ts +27 -16
  69. package/packages/client/types/components/checkbox/contract.d.ts +13 -13
  70. package/packages/client/types/components/common.d.ts +13 -11
  71. package/packages/client/types/components/container/contract.d.ts +4 -3
  72. package/packages/client/types/components/data-grid/contract.d.ts +3 -2
  73. package/packages/client/types/components/date-picker/contract.d.ts +2 -2
  74. package/packages/client/types/components/date-picker/machine.d.ts +11 -11
  75. package/packages/client/types/components/dropdown/contract.d.ts +1 -1
  76. package/packages/client/types/components/dropdown/machine.d.ts +5 -3
  77. package/packages/client/types/components/field/contract.d.ts +4 -4
  78. package/packages/client/types/components/file-upload/contract.d.ts +3 -3
  79. package/packages/client/types/components/file-upload/machine.d.ts +4 -4
  80. package/packages/client/types/components/flex/contract.d.ts +10 -8
  81. package/packages/client/types/components/frame/contract.d.ts +14 -11
  82. package/packages/client/types/components/grid/contract.d.ts +8 -7
  83. package/packages/client/types/components/image/contract.d.ts +1 -0
  84. package/packages/client/types/components/import-flow/contract.d.ts +1 -0
  85. package/packages/client/types/components/input/contract.d.ts +1 -0
  86. package/packages/client/types/components/input/machine.d.ts +2 -2
  87. package/packages/client/types/components/layout.d.ts +91 -35
  88. package/packages/client/types/components/menu/contract.d.ts +27 -10
  89. package/packages/client/types/components/modal/contract.d.ts +22 -5
  90. package/packages/client/types/components/panels/contract.d.ts +2 -2
  91. package/packages/client/types/components/panels/index.d.ts +2 -1
  92. package/packages/client/types/components/panels/machine.d.ts +9 -8
  93. package/packages/client/types/components/radio/contract.d.ts +8 -8
  94. package/packages/client/types/components/scroll-area/contract.d.ts +1 -20
  95. package/packages/client/types/components/section/contract.d.ts +4 -3
  96. package/packages/client/types/components/select/contract.d.ts +3 -3
  97. package/packages/client/types/components/select/machine.d.ts +13 -13
  98. package/packages/client/types/components/select/presentation.d.ts +1 -0
  99. package/packages/client/types/components/sidebar/contract.d.ts +26 -8
  100. package/packages/client/types/components/sidebar/groups.d.ts +4 -0
  101. package/packages/client/types/components/sidebar/index.d.ts +5 -4
  102. package/packages/client/types/components/slider/contract.d.ts +1 -0
  103. package/packages/client/types/components/slider/machine.d.ts +10 -5
  104. package/packages/client/types/components/stack/contract.d.ts +10 -8
  105. package/packages/client/types/components/switch/contract.d.ts +8 -8
  106. package/packages/client/types/components/table/contract.d.ts +6 -5
  107. package/packages/client/types/components/tabs/index.d.ts +2 -1
  108. package/packages/client/types/components/tabs/machine.d.ts +2 -2
  109. package/packages/client/types/components/textarea/contract.d.ts +1 -1
  110. package/packages/client/types/components/toast/machine.d.ts +2 -2
  111. package/packages/client/types/components/tooltip/contract.d.ts +13 -13
  112. package/packages/client/types/components/tooltip/machine.d.ts +3 -7
  113. package/packages/client/types/core.d.ts +3 -1
  114. package/packages/client/types/directives/anchor.d.ts +1 -0
  115. package/packages/client/types/directives/animate.d.ts +3 -0
  116. package/packages/client/types/directives/collection.d.ts +9 -0
  117. package/packages/client/types/directives/index.d.ts +2 -2
  118. package/packages/client/types/docs/transition-docs.d.ts +0 -2
  119. package/packages/client/types/motion/animate.d.ts +7 -2
  120. package/packages/client/types/motion/config.d.ts +118 -0
  121. package/packages/client/types/motion/feedback.d.ts +3 -0
  122. package/packages/client/types/motion/index.d.ts +8 -107
  123. package/packages/client/types/motion/layout.d.ts +25 -0
  124. package/packages/client/types/motion/lifecycle.d.ts +10 -0
  125. package/packages/client/types/motion/owned.d.ts +15 -4
  126. package/packages/client/types/motion/properties.d.ts +17 -0
  127. package/packages/client/types/motion/recipe.d.ts +8 -75
  128. package/packages/client/types/motion/reduced-motion.d.ts +7 -8
  129. package/packages/client/types/motion/registry.d.ts +37 -0
  130. package/packages/client/types/motion/resize-preview.d.ts +26 -0
  131. package/packages/client/types/motion/resize.d.ts +3 -1
  132. package/packages/client/types/motion/size.d.ts +7 -4
  133. package/packages/client/types/runtime/anchored-popover.d.ts +11 -2
  134. package/packages/client/types/runtime/collection-navigation.d.ts +12 -4
  135. package/packages/client/types/runtime/control-size.d.ts +4 -0
  136. package/packages/client/types/runtime/drag-and-drop/index.d.ts +10 -3
  137. package/packages/client/types/runtime/drag-and-drop/sortable/ghost.d.ts +2 -1
  138. package/packages/client/types/runtime/engine/fragment.d.ts +2 -1
  139. package/packages/client/types/runtime/engine/stream.d.ts +5 -9
  140. package/packages/client/types/runtime/focus.d.ts +3 -1
  141. package/packages/client/types/runtime/index.d.ts +2 -2
  142. package/packages/client/types/runtime/layout-participant.d.ts +10 -9
  143. package/packages/client/types/runtime/layout-task.d.ts +9 -0
  144. package/packages/client/types/runtime/morph-engine.d.ts +1 -0
  145. package/packages/client/types/runtime/option-data.d.ts +2 -1
  146. package/packages/client/types/runtime/preferences.d.ts +14 -0
  147. package/packages/client/types/runtime/scroll-area-schema.d.ts +23 -0
  148. package/packages/client/types/runtime/theme.d.ts +6 -4
  149. package/packages/client/types/runtime/ui.d.ts +5 -5
  150. package/packages/client/types/runtime/virtualizer-schema.d.ts +3 -1
  151. package/packages/client/types/runtime/virtualizer-size.d.ts +7 -0
  152. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js +2 -0
  153. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-B7apK0M-.js.map +1 -0
  154. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge.js +1 -1
  155. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +984 -1132
  156. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js → anchor-DXCLxWw-.js} +2 -2
  157. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{anchor-B-CbpFFU.js.map → anchor-DXCLxWw-.js.map} +1 -1
  158. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/anchor.js +2 -2
  159. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js +2 -0
  160. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection-CSrnChwy.js.map +1 -0
  161. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/collection.js +2 -0
  162. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-DlgeSL0c.js +2 -0
  163. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{resizable-Ctqx_OoS.js.map → resizable-DlgeSL0c.js.map} +1 -1
  164. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.js +2 -2
  165. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-Qa2EByIB.js +2 -0
  166. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{shortcut-D2NgvMgw.js.map → shortcut-Qa2EByIB.js.map} +1 -1
  167. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut.js +2 -2
  168. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable-CgP1efhO.js +2 -0
  169. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/{sortable-CbIOS4Lm.js.map → sortable-CgP1efhO.js.map} +1 -1
  170. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +2 -2
  171. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js +2 -0
  172. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-BqejlBjS.js.map +1 -0
  173. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js +2 -0
  174. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-DPMSJ1AR.js.map +1 -0
  175. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js +2 -0
  176. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-BFvGIAs8.js.map +1 -0
  177. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-CpUAUTdh.js +5 -0
  178. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-CpUAUTdh.js.map +1 -0
  179. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js +2 -0
  180. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-et2se66r.js.map +1 -0
  181. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js +2 -0
  182. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-DnEHZCqy.js.map +1 -0
  183. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js +2 -0
  184. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/control-size-BcDu1m1N.js.map +1 -0
  185. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js +2 -0
  186. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-de7TruDm.js.map +1 -0
  187. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js +2 -0
  188. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-DdiMUeJM.js.map +1 -0
  189. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js +2 -0
  190. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-MzcgNRti.js.map +1 -0
  191. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-zFOeeob-.js +6 -0
  192. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{element-adapter-native-data-key-DrqJDAVH.js.map → element-adapter-native-data-key-zFOeeob-.js.map} +1 -1
  193. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js +2 -0
  194. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/feedback-DP_ydw-J.js.map +1 -0
  195. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js +2 -0
  196. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/floating-ui.dom-B05VsV_p.js.map +1 -0
  197. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js → focus-BvBkrIcj.js} +2 -2
  198. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-pk_lz9sg.js.map → focus-BvBkrIcj.js.map} +1 -1
  199. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-DYfME-Rk.js +2 -0
  200. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{focus-scope-BrYxsrhc.js.map → focus-scope-DYfME-Rk.js.map} +1 -1
  201. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js +2 -0
  202. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-DVphuQVV.js.map +1 -0
  203. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js +2 -0
  204. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/frame-DsKHMcuL.js.map +1 -0
  205. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js +2 -0
  206. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/hover-CqeHOHpJ.js.map +1 -0
  207. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js +2 -0
  208. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/identity-BMTQyLbq.js.map +1 -0
  209. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js +2 -0
  210. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-mHPk9rxi.js.map +1 -0
  211. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js +2 -0
  212. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-task-B6P8q7BH.js.map +1 -0
  213. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js +2 -0
  214. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/layout-wLgk8rAu.js.map +1 -0
  215. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js +2 -0
  216. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-Do4tL7nc.js.map +1 -0
  217. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js +2 -0
  218. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/option-data-Du9mqQPo.js.map +1 -0
  219. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js +2 -0
  220. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preferences-BZyZ-kK6.js.map +1 -0
  221. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/preload-helper-BZ1Pz5am.js +1 -0
  222. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js +2 -0
  223. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/properties-D8pFWF8g.js.map +1 -0
  224. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js +2 -0
  225. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-DRGrWivx.js.map +1 -0
  226. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js +2 -0
  227. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/resize-preview-hnUhGcMX.js.map +1 -0
  228. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js +2 -0
  229. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/scroll-area-schema-DZgYyysJ.js.map +1 -0
  230. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js +2 -0
  231. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/size-DAtboz8G.js.map +1 -0
  232. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{styles-CQDZhwd_.js → styles-BvLCjUXV.js} +2 -2
  233. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-BvLCjUXV.js.map +1 -0
  234. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CVVSxrtG.js +4 -0
  235. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-CVVSxrtG.js.map +1 -0
  236. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js +2 -0
  237. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtualizer-size-CTy2gO64.js.map +1 -0
  238. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js +2 -0
  239. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DGWRKBdw.js.map +1 -0
  240. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +2 -2
  241. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js +2 -0
  242. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-DA4Ii46-.js.map +1 -0
  243. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button.js +2 -2
  244. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js +2 -0
  245. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-omt0I9Rh.js.map +1 -0
  246. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox.js +2 -2
  247. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Cr9kEoo9.js +2 -0
  248. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-Cr9kEoo9.js.map +1 -0
  249. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +2 -2
  250. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js +2 -0
  251. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-CtTM4Gf6.js.map +1 -0
  252. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +2 -2
  253. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js +2 -0
  254. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-B4dcq4bn.js.map +1 -0
  255. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +2 -2
  256. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js +2 -0
  257. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-BEMZqp_I.js.map +1 -0
  258. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +2 -2
  259. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js +2 -0
  260. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-BeqlTp38.js.map +1 -0
  261. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field.js +2 -2
  262. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js +2 -0
  263. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DCluNmYW.js.map +1 -0
  264. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +2 -2
  265. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js +2 -0
  266. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-DkPKkwlt.js.map +1 -0
  267. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset.js +2 -2
  268. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js +2 -0
  269. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-aSuqkRen.js.map +1 -0
  270. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper.js +2 -2
  271. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js +2 -0
  272. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-2UqpKKXs.js.map +1 -0
  273. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input.js +2 -2
  274. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js +2 -0
  275. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-DjUHW-EE.js.map +1 -0
  276. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding.js +2 -2
  277. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js +2 -0
  278. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-DYn805Mg.js.map +1 -0
  279. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +2 -2
  280. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js +2 -0
  281. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-C4TtKM8_.js.map +1 -0
  282. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +2 -2
  283. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js +2 -0
  284. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-gAYZVe11.js.map +1 -0
  285. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio.js +2 -2
  286. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js +2 -0
  287. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-SBruA-pr.js.map +1 -0
  288. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area.js +2 -2
  289. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js +2 -0
  290. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-C3hjgwMw.js.map +1 -0
  291. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +2 -2
  292. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js +2 -0
  293. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-b0T3yohM.js.map +1 -0
  294. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +2 -2
  295. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js +2 -0
  296. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-B08DRTzI.js.map +1 -0
  297. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider.js +2 -2
  298. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js +2 -0
  299. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CO-1hVz6.js.map +1 -0
  300. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch.js +2 -2
  301. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js +2 -0
  302. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-BlPgZVqW.js.map +1 -0
  303. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +2 -2
  304. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js +2 -0
  305. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-CDbYmlUb.js.map +1 -0
  306. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +2 -2
  307. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js +2 -0
  308. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-Dxht5Hhg.js.map +1 -0
  309. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +2 -2
  310. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js +2 -0
  311. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-Ck_ZV7RN.js.map +1 -0
  312. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip.js +2 -2
  313. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js +2 -0
  314. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-BfCjewp3.js.map +1 -0
  315. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +2 -2
  316. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CbDVD_pk.js +2 -0
  317. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-CbDVD_pk.js.map +1 -0
  318. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +2 -2
  319. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +299 -441
  320. package/packages/theme-engine/README.md +98 -18
  321. package/packages/theme-engine/THEME_AUTHORING.md +34 -0
  322. package/packages/theme-engine/dist/trellis.js +613 -285
  323. package/packages/theme-engine/fonts/fira-code/5.3.0/LICENSE +93 -0
  324. package/packages/theme-engine/fonts/fira-code/5.3.0/download.json +47 -0
  325. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-ext-wght-normal.woff2 +0 -0
  326. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-cyrillic-wght-normal.woff2 +0 -0
  327. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-ext-wght-normal.woff2 +0 -0
  328. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-greek-wght-normal.woff2 +0 -0
  329. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-ext-wght-normal.woff2 +0 -0
  330. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-latin-wght-normal.woff2 +0 -0
  331. package/packages/theme-engine/fonts/fira-code/5.3.0/fira-code-symbols2-wght-normal.woff2 +0 -0
  332. package/packages/theme-engine/fonts/fira-code/5.3.0/font.css +62 -0
  333. package/packages/theme-engine/fonts/fira-code/5.3.0/resource.json +82 -0
  334. package/packages/theme-engine/fonts/inter/5.3.0/LICENSE +93 -0
  335. package/packages/theme-engine/fonts/inter/5.3.0/download.json +47 -0
  336. package/packages/theme-engine/fonts/inter/5.3.0/font.css +62 -0
  337. package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-ext-standard-normal.woff2 +0 -0
  338. package/packages/theme-engine/fonts/inter/5.3.0/inter-cyrillic-standard-normal.woff2 +0 -0
  339. package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-ext-standard-normal.woff2 +0 -0
  340. package/packages/theme-engine/fonts/inter/5.3.0/inter-greek-standard-normal.woff2 +0 -0
  341. package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-ext-standard-normal.woff2 +0 -0
  342. package/packages/theme-engine/fonts/inter/5.3.0/inter-latin-standard-normal.woff2 +0 -0
  343. package/packages/theme-engine/fonts/inter/5.3.0/inter-vietnamese-standard-normal.woff2 +0 -0
  344. package/packages/theme-engine/fonts/inter/5.3.0/resource.json +82 -0
  345. package/packages/theme-engine/generated/knobs/v1/color-alpha.json +1 -1
  346. package/packages/theme-engine/generated/knobs/v1/color-foundations.json +1 -1
  347. package/packages/theme-engine/generated/knobs/v1/color-ink.json +1 -1
  348. package/packages/theme-engine/generated/knobs/v1/color-lighting.json +1 -1
  349. package/packages/theme-engine/generated/knobs/v1/color-normalization.json +1 -1
  350. package/packages/theme-engine/generated/knobs/v1/color-ramps.json +1 -1
  351. package/packages/theme-engine/generated/knobs/v1/composition.json +1 -1
  352. package/packages/theme-engine/generated/knobs/v1/depth.json +1 -1
  353. package/packages/theme-engine/generated/knobs/v1/edges.json +1 -1
  354. package/packages/theme-engine/generated/knobs/v1/index.json +572 -85
  355. package/packages/theme-engine/generated/knobs/v1/manifest.json +25 -46
  356. package/packages/theme-engine/generated/knobs/v1/radii.json +50 -1
  357. package/packages/theme-engine/generated/knobs/v1/semantic-actions.json +1 -1
  358. package/packages/theme-engine/generated/knobs/v1/semantic-disabled.json +1 -1
  359. package/packages/theme-engine/generated/knobs/v1/semantic-disclosure.json +1 -1
  360. package/packages/theme-engine/generated/knobs/v1/semantic-intents.json +856 -37
  361. package/packages/theme-engine/generated/knobs/v1/semantic-scrim.json +1 -1
  362. package/packages/theme-engine/generated/knobs/v1/semantic-selection.json +1 -1
  363. package/packages/theme-engine/generated/knobs/v1/semantic-structure.json +1 -1
  364. package/packages/theme-engine/generated/knobs/v1/semantic-text-selection.json +372 -0
  365. package/packages/theme-engine/generated/knobs/v1/sizing-anatomy.json +4 -4
  366. package/packages/theme-engine/generated/knobs/v1/sizing-controls.json +1 -1
  367. package/packages/theme-engine/generated/knobs/v1/sizing-measures.json +1 -1
  368. package/packages/theme-engine/generated/knobs/v1/spacing.json +2 -2
  369. package/packages/theme-engine/generated/knobs/v1/substrates.json +1 -1
  370. package/packages/theme-engine/generated/knobs/v1/surfaces.json +1 -1
  371. package/packages/theme-engine/generated/knobs/v1/typography-anatomy.json +1 -1
  372. package/packages/theme-engine/generated/knobs/v1/typography-fonts.json +158 -40
  373. package/packages/theme-engine/generated/knobs/v1/typography-scale.json +1 -1
  374. package/packages/theme-engine/generated/schemas/theme-config-v1.json +108 -36
  375. package/packages/theme-engine/generated/schemas/theme-manifest-v1.json +10 -37
  376. package/packages/theme-engine/skills/create-trellis-theme/SKILL.md +4 -5
  377. package/packages/client/src/components/app/styles.css +0 -1
  378. package/packages/client/src/components/brand/styles.css +0 -8
  379. package/packages/client/src/styles/motion.css +0 -26
  380. package/packages/client/src/styles/static.css +0 -3
  381. package/packages/client/types/assets/full-runtime.generated.d.ts +0 -2
  382. package/packages/client/types/capabilities/motion.d.ts +0 -6
  383. package/packages/client/types/capabilities/motion.entry.generated.d.ts +0 -3
  384. package/packages/client/types/cdn.d.ts +0 -2
  385. package/packages/client/types/components/entry.generated.d.ts +0 -37
  386. package/packages/client/types/directives/bounds.d.ts +0 -4
  387. package/packages/client/types/directives/layout.d.ts +0 -3
  388. package/packages/client/types/index.d.ts +0 -8
  389. package/packages/client/types/motion/bounds.d.ts +0 -20
  390. package/packages/client/types/motion/controller.d.ts +0 -33
  391. package/packages/client/types/motion/flip.d.ts +0 -14
  392. package/packages/client/types/motion/plan.d.ts +0 -52
  393. package/packages/client/types/motion/stream.d.ts +0 -18
  394. package/packages/client/types/motion/targets.d.ts +0 -23
  395. package/packages/client/types/motion/view.d.ts +0 -27
  396. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis-103fb43eb5e1.css +0 -14030
  397. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +0 -14030
  398. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min-584dec82495c.css +0 -2
  399. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +0 -2
  400. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/bridge-COxhbtRZ.js +0 -1
  401. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js +0 -2
  402. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion-CKiK3BQA.js.map +0 -1
  403. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +0 -2
  404. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable-Ctqx_OoS.js +0 -2
  405. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/shortcut-D2NgvMgw.js +0 -2
  406. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable-CbIOS4Lm.js +0 -2
  407. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js +0 -2
  408. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/alpine-machine-CE2UN4Qu.js.map +0 -1
  409. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js +0 -2
  410. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/bridge-DMrvM3JE.js.map +0 -1
  411. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js +0 -2
  412. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-anchor-lhqk7hfo.js.map +0 -1
  413. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js +0 -2
  414. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-B32HePGn.js.map +0 -1
  415. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js +0 -2
  416. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-resizable-ByUbMIHF.js.map +0 -1
  417. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js +0 -2
  418. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-shortcut-DZUQHJ3A.js.map +0 -1
  419. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js +0 -5
  420. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-Bl6ng6Hd.js.map +0 -1
  421. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js +0 -2
  422. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/collection-navigation-hTbwy6oQ.js.map +0 -1
  423. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js +0 -2
  424. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/common-CBK89mIt.js.map +0 -1
  425. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js +0 -2
  426. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/controller-C8xqwkr0.js.map +0 -1
  427. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js +0 -2
  428. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-BxNepYBE.js.map +0 -1
  429. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js +0 -2
  430. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/cursor-data-source-Do0FfF4Z.js.map +0 -1
  431. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js +0 -2
  432. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/dismissable-layer-BROE-Ln2.js.map +0 -1
  433. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/element-adapter-native-data-key-DrqJDAVH.js +0 -6
  434. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js +0 -2
  435. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-7hdXmBLE.js.map +0 -1
  436. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js +0 -2
  437. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BCTWp6Xu.js.map +0 -1
  438. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js +0 -2
  439. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BQNpmLZO.js.map +0 -1
  440. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js +0 -2
  441. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BRaKxvab.js.map +0 -1
  442. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js +0 -2
  443. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BZWdGtgg.js.map +0 -1
  444. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js +0 -2
  445. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BnqcHAaF.js.map +0 -1
  446. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js +0 -2
  447. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BzLNUDzF.js.map +0 -1
  448. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js +0 -2
  449. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CC6pQ0nu.js.map +0 -1
  450. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js +0 -2
  451. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CEfr2bmw.js.map +0 -1
  452. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js +0 -2
  453. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CL4bjCqf.js.map +0 -1
  454. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js +0 -2
  455. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CVWqQEed.js.map +0 -1
  456. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js +0 -2
  457. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C_SxTqg5.js.map +0 -1
  458. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js +0 -2
  459. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cbyseoex.js.map +0 -1
  460. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js +0 -2
  461. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cf2hKkwA.js.map +0 -1
  462. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js +0 -2
  463. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-CfYgsDun.js.map +0 -1
  464. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js +0 -2
  465. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Cl8rInnJ.js.map +0 -1
  466. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js +0 -2
  467. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Ct9H8Hlf.js.map +0 -1
  468. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js +0 -2
  469. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-D2es_Wi2.js.map +0 -1
  470. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js +0 -2
  471. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DQtFqG0K.js.map +0 -1
  472. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js +0 -2
  473. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-EqHVGr1d.js.map +0 -1
  474. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js +0 -2
  475. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-FCDgmA0s.js.map +0 -1
  476. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js +0 -2
  477. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-HqE8R7N1.js.map +0 -1
  478. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js +0 -2
  479. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-J0oGNBzS.js.map +0 -1
  480. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js +0 -2
  481. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-O0hEhk-2.js.map +0 -1
  482. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js +0 -2
  483. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-oJwO9fIY.js.map +0 -1
  484. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js +0 -2
  485. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-xjydizn-.js.map +0 -1
  486. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js +0 -2
  487. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/flip-BKThFI4L.js.map +0 -1
  488. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/focus-scope-BrYxsrhc.js +0 -2
  489. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js +0 -2
  490. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-9OT0mn7F.js.map +0 -1
  491. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js +0 -2
  492. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/machine-CNnHDbyo.js.map +0 -1
  493. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js +0 -3
  494. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/motion-RwlK04Cy.js.map +0 -1
  495. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js +0 -2
  496. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/pdd-BG5sXFGF.js.map +0 -1
  497. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/styles-CQDZhwd_.js.map +0 -1
  498. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js +0 -4
  499. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Bg44ZmC3.js.map +0 -1
  500. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion-DpoqsP_I.js +0 -1
  501. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/button-Dnf0aKac.js +0 -1
  502. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/checkbox-BpFFtrfY.js +0 -1
  503. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid-CCPYnOuT.js +0 -1
  504. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker-BCkP5gtC.js +0 -1
  505. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload-DaT6-YFL.js +0 -1
  506. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown-Cc84envj.js +0 -1
  507. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/field-CtQbyblj.js +0 -1
  508. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload-DARtpJDT.js +0 -1
  509. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/formset-CPO4XZkB.js +0 -1
  510. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/import-mapper-C-3lKsKm.js +0 -1
  511. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js +0 -2
  512. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index-DRH3gncZ.js.map +0 -1
  513. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +0 -2
  514. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/input-BKEbDkKa.js +0 -1
  515. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/keybinding-RIi2q1IT.js +0 -1
  516. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal-MUHGUsup.js +0 -1
  517. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels-DNAroAhk.js +0 -1
  518. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/radio-DrGFMWGq.js +0 -1
  519. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/scroll-area-CyUCAbgG.js +0 -1
  520. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select-BjLF548F.js +0 -1
  521. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar-GpvEBW3K.js +0 -1
  522. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/slider-OztnTlqr.js +0 -1
  523. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/switch-CZ7aiASg.js +0 -1
  524. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table-G3G5d2Eo.js +0 -1
  525. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs-bq7j1uwx.js +0 -1
  526. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast-DkP0-rBO.js +0 -1
  527. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tooltip-OITEWczP.js +0 -1
  528. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer-CkRX2qVO.js +0 -1
  529. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core-Z4zMCScs.js +0 -1
  530. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js +0 -2
  531. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index-DAz_hKiB.js.map +0 -1
  532. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +0 -2
  533. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis-ecb43dfd3b7b.js +0 -11
  534. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +0 -11
  535. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min-ecb43dfd3b7b.js +0 -11
  536. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +0 -11
  537. package/packages/theme-engine/generated/knobs/v1/motion.json +0 -128
@@ -40,3 +40,12 @@ FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
40
40
  DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
41
41
  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
42
42
  OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
43
+
44
+ ## Bundled fonts (SIL Open Font License 1.1)
45
+
46
+ - Inter — Fontsource variable package 5.3.0; the combined `opsz` and `wght` font files.
47
+ - Fira Code — Fontsource variable package 5.3.0.
48
+
49
+ Font binaries, full copyright and license notices, and download provenance are checked in under
50
+ `packages/theme-engine/fonts/` and included with the distributed font assets. These fonts are licensed
51
+ separately from Trellis UI under the SIL Open Font License 1.1; see each font's `LICENSE` file.
package/package.json CHANGED
@@ -1,17 +1,14 @@
1
1
  {
2
2
  "name": "@vireo-ai/trellis-ui",
3
- "version": "0.1.61",
3
+ "version": "0.1.63",
4
4
  "type": "module",
5
5
  "description": "Django-native UI toolkit for building realtime and interactive web apps.",
6
6
  "license": "MIT",
7
- "main": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js",
8
- "module": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js",
9
- "style": "./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css",
10
- "types": "./packages/client/types/index.d.ts",
7
+ "main": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js",
8
+ "module": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js",
9
+ "types": "./packages/client/types/core.d.ts",
11
10
  "sideEffects": [
12
- "./packages/client/src/**/*.css",
13
- "./packages/server/trellis_ui/static/trellis_ui/assets/css/*.css",
14
- "./packages/server/trellis_ui/static/trellis_ui/assets/js/trellis*.js"
11
+ "./packages/client/src/**/*.css"
15
12
  ],
16
13
  "files": [
17
14
  "LICENSE",
@@ -19,8 +16,6 @@
19
16
  "README.md",
20
17
  "packages/client/types/**/*.d.ts",
21
18
  "packages/client/src/**/*.css",
22
- "packages/server/trellis_ui/static/trellis_ui/assets/css/*.css",
23
- "packages/server/trellis_ui/static/trellis_ui/assets/js/*.js",
24
19
  "packages/server/trellis_ui/static/trellis_ui/assets/js/esm/**/*.js",
25
20
  "packages/server/trellis_ui/static/trellis_ui/assets/js/esm/**/*.js.map",
26
21
  "packages/server/trellis_ui/static/trellis_ui/assets/js/esm/**/*.json",
@@ -33,24 +28,22 @@
33
28
  "packages/theme-engine/generated/schemas/*.json",
34
29
  "packages/theme-engine/generated/knobs/v1/**/*.json",
35
30
  "packages/theme-engine/skills/create-trellis-theme/**",
36
- "packages/theme-engine/THEME_AUTHORING.md"
31
+ "packages/client/skills/compose-trellis-ui/**",
32
+ "packages/theme-engine/THEME_AUTHORING.md",
33
+ "packages/client/src/styles/fonts/**/*",
34
+ "packages/theme-engine/fonts/**/*"
37
35
  ],
38
36
  "exports": {
39
37
  ".": {
40
- "types": "./packages/client/types/index.d.ts",
41
- "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js",
42
- "default": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js"
38
+ "types": "./packages/client/types/core.d.ts",
39
+ "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js",
40
+ "default": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js"
43
41
  },
44
42
  "./core": {
45
43
  "types": "./packages/client/types/core.d.ts",
46
44
  "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js",
47
45
  "default": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js"
48
46
  },
49
- "./components": {
50
- "types": "./packages/client/types/components/entry.generated.d.ts",
51
- "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js",
52
- "default": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js"
53
- },
54
47
  "./components/*": {
55
48
  "types": "./packages/client/types/components/*/entry.generated.d.ts",
56
49
  "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/*.js",
@@ -61,19 +54,12 @@
61
54
  "import": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/*.js",
62
55
  "default": "./packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/*.js"
63
56
  },
64
- "./cdn": "./packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js",
65
- "./cdn.min": "./packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js",
66
- "./cdn.js": "./packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js",
67
- "./cdn.min.js": "./packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js",
68
57
  "./theme.css": "./packages/client/src/styles/theme.css",
69
58
  "./theme-support.css": "./packages/client/src/styles/theme-support.css",
70
59
  "./components.css": "./packages/client/src/styles/components.css",
71
60
  "./sources.css": "./packages/client/src/styles/generated-sources.css",
72
- "./styles.css": "./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css",
73
- "./styles.min.css": "./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css",
74
- "./cdn.css": "./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css",
75
- "./cdn.min.css": "./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css",
76
- "./package.json": "./package.json"
61
+ "./package.json": "./package.json",
62
+ "./fonts.css": "./packages/client/src/styles/generated/theme-fonts.css"
77
63
  },
78
64
  "dependencies": {
79
65
  "@atlaskit/pragmatic-drag-and-drop": "^2.0.2",
@@ -83,7 +69,7 @@
83
69
  "@types/alpinejs": "^3.13.11",
84
70
  "cally": "^0.9.2",
85
71
  "clsx": "^2.1.1",
86
- "motion": "^12.43.0",
72
+ "motion": "^14.3.0",
87
73
  "tabbable": "^6.5.0"
88
74
  },
89
75
  "peerDependencies": {
@@ -94,7 +80,6 @@
94
80
  "@microsoft/api-extractor": "^7.59.1",
95
81
  "@microsoft/api-extractor-model": "^7.33.12",
96
82
  "@playwright/test": "^1.63.0",
97
- "@tailwindcss/cli": "^4.3.3",
98
83
  "@tailwindcss/vite": "^4.3.3",
99
84
  "@types/node": "^25.9.8",
100
85
  "alpinejs": "^3.17.4",
@@ -124,14 +109,12 @@
124
109
  "prek": "uv run prek",
125
110
  "clean:types": "node scripts/build.mjs clean:types",
126
111
  "build:theme": "node scripts/build.mjs build:theme",
127
- "build:docs-theme": "node scripts/build.mjs build:docs-theme",
128
112
  "build:sources": "node scripts/build.mjs build:sources",
129
113
  "build:manifests": "node scripts/build.mjs build:manifests",
130
114
  "build:runtime-docs": "node scripts/build.mjs build:runtime-docs",
131
115
  "generate:runtime-docs": "node scripts/build.mjs generate:runtime-docs",
132
116
  "build:types": "node scripts/build.mjs build:types",
133
117
  "build:js": "node scripts/build.mjs build:js",
134
- "build:css": "node scripts/build.mjs build:css",
135
118
  "build:package": "node scripts/build.mjs build:package",
136
119
  "build:docs": "node scripts/build.mjs build:docs",
137
120
  "build": "node scripts/build.mjs build",
@@ -142,9 +125,6 @@
142
125
  "publish:npm": "pnpm run check:release && pnpm publish dist/trellis-ui.tgz --access public --ignore-scripts",
143
126
  "publish:pypi": "node scripts/build.mjs python:pack && uv publish dist/django_trellis-${npm_package_version}.tar.gz dist/django_trellis-${npm_package_version}-py3-none-any.whl",
144
127
  "publish:all": "pnpm run check:release && pnpm publish dist/trellis-ui.tgz --access public --ignore-scripts && uv publish dist/django_trellis-${npm_package_version}.tar.gz dist/django_trellis-${npm_package_version}-py3-none-any.whl",
145
- "dev:css": "pnpm run build:sources && pnpm run \"/^dev:css:(compile|assets)$/\"",
146
- "dev:css:compile": "tailwindcss -i ./packages/client/src/styles/static.css -o ./packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css --minify --watch",
147
- "dev:css:assets": "node scripts/generate_static_asset_registry.mjs --watch",
148
128
  "build:cli": "node scripts/build.mjs build:cli"
149
129
  }
150
130
  }
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: compose-trellis-ui
3
+ description: Create, revise, or audit Django screens and reusable Cotton compositions in applications using Trellis.
4
+ ---
5
+
6
+ # Compose Trellis UI
7
+
8
+ Focus on composition, spacing, content, and UI flow. Component documentation defines the APIs; `UI.md` records project composition conventions and direction; theme configuration owns parametric visual choices. Trust Trellis styling defaults, light/dark treatments, and built-in accessible interactions. Supply the labels, relationships, and reading order needed by the composition, preserving those component behaviors.
9
+
10
+ ## Read the project direction
11
+
12
+ Read the application's `UI.md` before composing or auditing. If it is missing, bootstrap it from the codebase and running application using [Project UI guidance](references/project-ui.md). Read that reference also when recording a new convention or reconciling a changed preference with existing usage. Explicit user direction takes precedence over inferred conventions.
13
+
14
+ ## Design around the user's task
15
+
16
+ - Establish what the person needs to understand or accomplish. Let that determine the content, actions, and hierarchy.
17
+ - Every added element should help someone act, make a decision, understand content, or understand the current state. Omit elements without a clear purpose.
18
+ - Do not invent dashboard metrics, summary cards, explanatory panels, badges, or secondary actions merely to fill out a screen. Add them when the brief or workflow establishes their value.
19
+ - Present information where it becomes useful. Keep frequent actions accessible; disclose secondary details when needed without hiding essential context.
20
+ - Use familiar patterns and consistent terminology. Reuse established application compositions before introducing another pattern.
21
+ - Write labels and supporting text concisely. Avoid repeating information already clear from the page title, surrounding content, or control.
22
+ - Use visual emphasis to communicate importance. Whitespace is acceptable; it does not need another component.
23
+ - Preserve information and feedback people need to complete the task, including accessible labels, errors, and recovery actions.
24
+ - Restraint must preserve substance. Remove unnecessary presentation without omitting information or actions needed for the task.
25
+
26
+ These principles draw on [Apple's design principles](https://developer.apple.com/design/human-interface-guidelines/design-principles), applied here to Trellis application composition.
27
+
28
+ ## Component and styling rules
29
+
30
+ - Preserve component styling defaults unless a visual change serves a clear purpose. Deliberately use padding, margin, gap, and other public spacing props or theme-backed layout utilities to establish consistent alignment, grouping, and room to breathe.
31
+ - Verify props and slots in available documentation, contracts, and templates. Do not invent APIs or recreate component behavior.
32
+ - Omit `as` unless behavior, accessibility, or document structure needs another element.
33
+ - Components own internal typography, padding, states, and interactions. Give each label, action, gap, and surface boundary one owner; avoid duplicate content and stacked gap/margin rules.
34
+ - Trust the Trellis styling system. Default to the public styling API through components and follow theme principles, including in new Cotton components.
35
+ - If a new Cotton component needs styling beyond that API, theme-backed Tailwind utilities are an option for keeping styling co-located with markup.
36
+ - Adding Tailwind overrides to existing components requires user approval. Custom CSS is a last resort and requires user approval, including for new Cotton components. Show the proposed styling change and explain why the existing API cannot express it before requesting approval. Existing explicit authorization covers the agreed change.
37
+
38
+ ## Create or revise
39
+
40
+ 1. Establish the task, reading order, relevant content states, and project direction. Read the relevant documentation guides, component examples, and public API. For an existing screen, inspect its current rendered behavior first; preserve routes, form behavior, data, and actions unless the requested change includes them.
41
+ 2. Build the structure through public props with deliberate spacing, representative content, and domain terminology. Check realistic content lengths, collection volumes, and relevant empty, loading, and error states. Preserve substantive content when simplifying.
42
+ 3. Render and inspect the affected composition, using screenshots to assess alignment, spacing, hierarchy, and wrapping. Refine through component choice, grouping, and justified props.
43
+ 4. Review by subtraction: remove or consolidate redundant content, competing actions, unnecessary containers, and decoration without purpose. Verify that the task remains understandable and usable.
44
+ 5. Apply the verification criteria below. Recheck after correcting observed defects.
45
+
46
+ ## Audit
47
+
48
+ Read the relevant documentation and inspect the existing composition in source and rendered output. Use the same task, styling, and verification criteria as creation. An audit request produces findings; implement corrections when the user requests fixes.
49
+
50
+ Report concrete problems with their location, evidence, effect on the task, and proposed correction. Distinguish observed defects from optional preferences or suggestions. Prioritize blocked tasks and unclear hierarchy before minor visual details. Avoid speculative findings when the relevant rendered state cannot be inspected; state the limitation. Report when there are no actionable findings.
51
+
52
+ ## Verification
53
+
54
+ Verify that the task and primary action, where applicable, are clear; related content shares consistent alignment and spacing; text is readable; and content does not unexpectedly clip or overflow. Check that controls and relevant feedback remain usable.
55
+
56
+ When working from a visual reference, compare the rendered composition against its alignment anchors, spacing relationships, and proportions; matching the same elements is insufficient. Reproduce those relationships through deliberate layout and spacing choices while retaining Trellis theme treatments.
57
+
58
+ Judge the rendered result rather than assuming the source expresses the intended hierarchy. Name visible problems precisely, such as a detached action or inconsistent content edge, and re-inspect the affected state after correcting them. Automated checks supplement this review.
59
+
60
+ Exercise viewport sizes, content lengths, and interaction states relevant to the change. Tokens handle light/dark; separate mode reviews are not required by this skill.
61
+
62
+ Correct observed defects and verify again. Report anything that could not be checked; writing markup or taking a screenshot alone does not establish that these criteria are met.
63
+
64
+ ## Documentation
65
+
66
+ The docs teach Trellis APIs and usage for humans and agents. Read only the topics needed for the task; use component examples and blocks as starting points, not required page recipes. Verify props, slots, transitions, and browser methods in the component reference rather than copying an explanation into this skill.
67
+
68
+ Resolve these paths against the actual Trellis documentation origin supplied by the project, its tooling, or the running docs site. They are documentation paths, not routes to add to the consuming application. Do not invent a deployed hostname. If docs are unavailable, inspect the installed public contracts and templates and report the limitation.
69
+
70
+ Start with `/llms.txt` to discover the current documentation, then fetch only the Markdown pages relevant to the task. Prefer these text endpoints for API and usage research; avoid loading rendered documentation into context by default.
71
+
72
+ | Need | Markdown documentation path |
73
+ | --- | --- |
74
+ | Discover guides, blocks, components, and their Markdown URLs | [`/llms.txt`](/llms.txt) |
75
+ | Understand Trellis and its application model | [`/pages/how-trellis-works.md`](/pages/how-trellis-works.md) |
76
+ | Send hypermedia requests and return HTML updates or Python effects | [`/pages/requests.md`](/pages/requests.md) |
77
+ | Render Django forms with Trellis controls | [`/pages/forms-bridge.md`](/pages/forms-bridge.md) |
78
+ | Use local state, component methods, events, and transition hooks | [`/pages/working-with-alpine.md`](/pages/working-with-alpine.md) |
79
+ | Understand theme configuration and visual relationships | [`/pages/theme-foundations.md`](/pages/theme-foundations.md) |
80
+ | Configure a theme | [`/pages/theme.md`](/pages/theme.md) |
81
+
82
+ Follow the component and block Markdown URLs listed in `/llms.txt`; component references use `/components/<slug>.md`, and blocks use `/pages/<slug>.md`. When visual understanding or interaction review is needed, open the corresponding rendered documentation page or linked demo in a browser; Markdown does not replace visual verification of the application being composed.
83
+
84
+ Project conventions and `UI.md` bootstrap/migration guidance remain in [Project UI guidance](references/project-ui.md). Component facts and composition teaching belong in the docs.
@@ -0,0 +1,40 @@
1
+ # Project UI guidance
2
+
3
+ `UI.md` is the application's persistent memory for composition choices and user direction. Read it at the application root or the user's chosen location. Keep its format free; follow the user's way of recording ideas.
4
+
5
+ ## What belongs here
6
+
7
+ Record reusable decisions that spare the user from repeating instructions, with their scope and useful examples. These could include:
8
+
9
+ - Use icon-only, full-radius button toolbars on application pages.
10
+ - Use pill tabs with keyboard shortcuts and tooltips.
11
+ - Use flush tables when they share a content edge with the surrounding section.
12
+ - For marketing pages, prefer a narrow content window with substantial isometric animation, drawing on supplied Heroku or Linear references.
13
+
14
+ These are examples of project preferences, not defaults for every Trellis application. Verify the actual component API before translating a preference into props or markup. Keep rough ideas and references without treating them as settled requirements.
15
+
16
+ Keep accent colors, palettes, font settings, radius scales, light/dark values, and other parametric visual configuration in the theme. Do not duplicate them in `UI.md` or prescribe CSS to reproduce them. Component APIs and reusable Trellis usage guidance belong in the docs; this skill owns the agent workflow. Link to existing reusable compositions instead of copying their implementation.
17
+
18
+ ## Bootstrap a missing file
19
+
20
+ Inspect before writing. A missing `UI.md` is a reason to gather project evidence, not to invent a design direction or block the requested task on a lengthy interview.
21
+
22
+ 1. Read application instructions, existing design notes, reusable Cotton components, representative templates, and relevant theme configuration. Use the theme to understand what it already controls; do not transcribe its values.
23
+ 2. Use focused subagents for independent investigations: recurring component usage and layout patterns; reusable compositions and their callers; representative application flows and states. Scale the split to the codebase, avoiding duplicate work. Ask for source locations, recurrence, exceptions, and uncertainty. If delegation is unavailable, perform those investigations directly.
24
+ 3. Use the running application to inspect representative screens and complete relevant flows. Capture screenshots that support the observed compositions, including narrow layouts or alternate content states where they affect the convention. Coordinate browser work so investigators do not operate the same session concurrently.
25
+ 4. Reconcile source findings with the rendered evidence. Repeated, consistent usage can establish an inferred convention without requiring separate approval for each finding. Note its scope and exceptions; an isolated occurrence or visible defect is not an application-wide rule.
26
+ 5. Write a concise initial `UI.md` in the application. Include useful inferred conventions, explicit user preferences already supplied, and unresolved questions where they matter. Identify which conclusions are inferred and retain source locations and screenshot references sufficient to review them. Summarize the starting point for the user and invite corrections while continuing the authorized task.
27
+
28
+ If the application cannot be run, record source-backed observations as provisional and state that rendered verification is missing. Do not invent screenshots or visual conclusions. For a new application without existing compositions, record available user direction and let conventions emerge from actual work.
29
+
30
+ Read an existing `UI.md` before changing it. Preserve unrelated content; if its purpose conflicts, propose another name or location. Do not create an application `UI.md` in the toolkit repository during skill maintenance. When deliberately testing this workflow against the docs site, treat that site as the application and scope findings to it.
31
+
32
+ ## Maintain conventions and migration scope
33
+
34
+ - Explicit user instructions supersede inferred usage. Update the affected decision rather than accumulating contradictory rules, and keep named exceptions intact unless the user changes them.
35
+ - Distinguish a local change from a convention change. A request to change one screen applies there; language such as “always,” “every page,” or “replace throughout” establishes broader scope.
36
+ - When a new instruction changes a recorded convention, audit comparable instances and shared compositions to identify the affected scope. Prefer changing the shared composition when it owns the behavior.
37
+ - If the user authorizes an application-wide migration, make the matching changes and verify representative callers. Do not ask for the same authorization again.
38
+ - If migration scope is unclear, show the affected usages and a concrete migration proposal, then confirm before changing other screens. Complete the clearly authorized local work while that question is pending. Audit discovery alone does not authorize a wider migration.
39
+ - Keep the record accurate during partial migrations: distinguish the desired convention from remaining older usage. Preserve the reason and scope when the user deliberately keeps an exception.
40
+ - Record useful new composition decisions as they emerge. Keep unresolved ideas visibly tentative and remove superseded guidance. Do not turn every implementation detail into a rule.
@@ -1,16 +1,28 @@
1
1
  @layer components {
2
- [data-ui-accordion-trigger][data-state="open"] [data-ui-accordion-icon] {
3
- transform: rotate(180deg);
2
+ [data-ui-accordion],
3
+ [data-ui-accordion-trigger][data-icon-position="trailing"] {
4
+ --ui-accordion-icon-closed: 0deg;
5
+ --ui-accordion-icon-open: 180deg;
6
+ --ui-accordion-icon-order: 0;
4
7
  }
5
8
 
6
- [data-ui-accordion-trigger][data-icon-position="leading"] [data-ui-accordion-icon],
7
- [data-ui-accordion][data-icon-position="leading"] [data-ui-accordion-trigger][data-icon-position="inherit"] [data-ui-accordion-icon] {
8
- order: -1;
9
- transform: rotate(-90deg);
9
+ [data-ui-accordion][data-icon-position="leading"],
10
+ [data-ui-accordion-trigger][data-icon-position="leading"] {
11
+ --ui-accordion-icon-closed: -90deg;
12
+ --ui-accordion-icon-open: 0deg;
13
+ --ui-accordion-icon-order: -1;
10
14
  }
11
15
 
12
- [data-ui-accordion-trigger][data-icon-position="leading"][data-state="open"] [data-ui-accordion-icon],
13
- [data-ui-accordion][data-icon-position="leading"] [data-ui-accordion-trigger][data-icon-position="inherit"][data-state="open"] [data-ui-accordion-icon] {
14
- transform: rotate(0deg);
16
+ [data-ui-accordion-trigger] {
17
+ --ui-accordion-icon-angle: var(--ui-accordion-icon-closed);
18
+ }
19
+
20
+ [data-ui-accordion-trigger][data-state="open"] {
21
+ --ui-accordion-icon-angle: var(--ui-accordion-icon-open);
22
+ }
23
+
24
+ [data-ui-accordion-icon] {
25
+ order: var(--ui-accordion-icon-order);
26
+ transform: rotate(var(--ui-accordion-icon-angle));
15
27
  }
16
28
  }
@@ -0,0 +1,12 @@
1
+ @layer components {
2
+ [data-ui-badge-close]:hover,
3
+ [data-ui-badge-close]:focus-visible:not([data-ui-focus-indicator="suppressed"]) {
4
+ background-color: color-mix(in srgb, currentColor 12%, transparent);
5
+ }
6
+
7
+ [data-ui-badge-close] {
8
+ @variant focus-visible {
9
+ box-shadow: 0 0 0 1px currentColor;
10
+ }
11
+ }
12
+ }
@@ -1,9 +1,4 @@
1
1
  @layer components {
2
- [data-ui-button] {
3
- isolation: isolate;
4
- overflow: hidden;
5
- }
6
-
7
2
  [data-ui-button][data-ui-loading] {
8
3
  cursor: wait;
9
4
  }
@@ -55,3 +50,34 @@
55
50
  border-bottom-left-radius: 0 !important;
56
51
  }
57
52
  }
53
+
54
+ /* Match accessory edge space to the control's vertical breathing room. */
55
+ @utility ui-button-padded {
56
+ --ui-button-padding-start: var(--ui-button-padding);
57
+ --ui-button-padding-end: var(--ui-button-padding);
58
+ --ui-button-padding-left: var(--ui-button-padding-start);
59
+ --ui-button-padding-right: var(--ui-button-padding-end);
60
+ padding-inline-start: var(--ui-button-padding-start);
61
+ padding-inline-end: var(--ui-button-padding-end);
62
+
63
+ &[data-variant="link"] {
64
+ padding-inline: 0;
65
+ }
66
+
67
+ &:dir(rtl) {
68
+ --ui-button-padding-left: var(--ui-button-padding-end);
69
+ --ui-button-padding-right: var(--ui-button-padding-start);
70
+ }
71
+
72
+ &:has(> [data-ui-button-content] > [data-ui-button-icon]:first-child) {
73
+ --ui-button-padding-start: calc((var(--ui-button-height) - var(--spacing-icon)) / 2);
74
+ }
75
+
76
+ &:has(> [data-ui-button-content] > [data-ui-button-icon="trailing"]) {
77
+ --ui-button-padding-end: calc((var(--ui-button-height) - var(--spacing-icon)) / 2);
78
+ }
79
+
80
+ &:has(> [data-ui-button-content] > [data-ui-button-trailing] > [data-ui-keybinding]:not([data-variant="plain"]):last-child) {
81
+ --ui-button-padding-end: calc((var(--ui-button-height) - var(--spacing-keybinding-key)) / 2);
82
+ }
83
+ }
@@ -0,0 +1,16 @@
1
+ @layer components {
2
+ @media (hover: hover) and (not (any-pointer: coarse)) {
3
+ [data-ui-card]:not(:hover):not(:focus-within) [data-ui-card-dismiss] {
4
+ opacity: 0;
5
+ pointer-events: none;
6
+ }
7
+ }
8
+
9
+ [data-ui-card][data-disabled] {
10
+ opacity: var(--opacity-interaction-disabled);
11
+ }
12
+
13
+ [data-ui-card-link][aria-disabled="true"] {
14
+ pointer-events: none;
15
+ }
16
+ }
@@ -1,8 +1,3 @@
1
- [data-ui-checkbox-indicator][data-ui-selection-recipe="indicator"]:not([data-checked]):not([data-indeterminate]) {
2
- --ui-selection-edge: var(--ui-surface-edge-strong);
3
- background-color: transparent;
4
- }
5
-
6
1
  [data-ui-checkbox][data-variant="pills"]:is(
7
2
  [data-ui-interaction="tonal"],
8
3
  [data-ui-interaction="combined"]
@@ -10,3 +5,32 @@
10
5
  background-color: var(--ui-interaction-fill);
11
6
  background-image: none;
12
7
  }
8
+
9
+ [data-ui-checkbox-group][data-variant="menu"] {
10
+ [data-ui-checkbox][data-selected]:not([data-disabled]) {
11
+ background: var(--ui-option-selected-background);
12
+ }
13
+
14
+ [data-ui-checkbox][data-selected]:not([data-disabled]):is(:hover, :active, :focus-visible, [data-active], [data-highlighted]) {
15
+ background: var(--ui-option-selected-background-hover);
16
+ }
17
+
18
+ > :is([data-ui-checkbox], [data-ui-field]):not([hidden], [data-disabled], [data-ui-menu-filtered]):not(:has([data-ui-checkbox]:is([hidden], [data-disabled], [data-ui-menu-filtered]))):has([data-ui-checkbox-input]:is([data-checked], [data-indeterminate])) {
19
+ &:has(
20
+ + [data-ui-checkbox][data-selected]:not([hidden], [data-disabled], [data-ui-menu-filtered]),
21
+ + [data-ui-field]:not([hidden]) > [data-ui-field-control] > [data-ui-checkbox][data-selected]:not([hidden], [data-disabled], [data-ui-menu-filtered])
22
+ ) {
23
+ &:is([data-ui-checkbox]), > [data-ui-field-control] > [data-ui-checkbox] {
24
+ border-end-start-radius: 0;
25
+ border-end-end-radius: 0;
26
+ }
27
+ }
28
+
29
+ & + :is([data-ui-checkbox], [data-ui-field]):not([hidden], [data-disabled], [data-ui-menu-filtered]):not(:has([data-ui-checkbox]:is([hidden], [data-disabled], [data-ui-menu-filtered]))):has([data-ui-checkbox-input]:is([data-checked], [data-indeterminate])) {
30
+ &:is([data-ui-checkbox]), > [data-ui-field-control] > [data-ui-checkbox] {
31
+ border-start-start-radius: 0;
32
+ border-start-end-radius: 0;
33
+ }
34
+ }
35
+ }
36
+ }
@@ -33,32 +33,15 @@
33
33
  }
34
34
 
35
35
  [data-ui-date-picker-panel]:not(:has([data-ui-date-picker-presets])) {
36
- inline-size: max-content;
37
36
  grid-template-columns: auto !important;
38
37
  }
39
38
 
40
- [data-ui-date-picker-panel]:not(:has([data-ui-date-picker-presets])):has([data-ui-date-picker-calendar][months="2"]) {
41
- inline-size: max-content;
42
- }
43
-
44
- [data-ui-date-picker-panel]:not(:has([data-ui-date-picker-presets])):has([data-ui-date-picker-calendar][months="3"]) {
45
- inline-size: max-content;
46
- }
47
-
48
- [data-ui-date-picker-panel]:has([data-ui-date-picker-presets]) {
49
- inline-size: max-content;
50
- }
51
-
52
39
  [data-ui-date-picker-calendar-wrap] {
53
40
  block-size: 100%;
54
41
  inline-size: 100%;
55
42
  max-inline-size: calc(100vw - 2rem);
56
43
  }
57
44
 
58
- [data-ui-date-picker-calendar-wrap]:not(:has([data-ui-date-picker-presets])) {
59
- inline-size: 100%;
60
- }
61
-
62
45
  [data-ui-date-picker-calendar-today] {
63
46
  align-items: center;
64
47
  background-color: transparent;
@@ -402,4 +385,26 @@
402
385
  grid-template-columns: minmax(var(--ui-date-picker-month-min), 1fr);
403
386
  }
404
387
  }
388
+
389
+ [data-ui-date-picker-footer] {
390
+ box-shadow: inset 0 var(--border-width-edge-separator) 0 var(--ui-surface-separator);
391
+ }
392
+
393
+ @media (min-width: 40rem) {
394
+ [data-ui-date-picker-presets][data-position="left"] {
395
+ box-shadow: inset calc(var(--border-width-edge-separator) * -1) 0 0 var(--ui-surface-separator);
396
+ }
397
+
398
+ [data-ui-date-picker-presets][data-position="right"] {
399
+ box-shadow: inset var(--border-width-edge-separator) 0 0 var(--ui-surface-separator);
400
+ }
401
+ }
402
+
403
+ [data-ui-date-picker-presets][data-position="top"] {
404
+ box-shadow: inset 0 calc(var(--border-width-edge-separator) * -1) 0 var(--ui-surface-separator);
405
+ }
406
+
407
+ [data-ui-date-picker-presets][data-position="bottom"] {
408
+ box-shadow: inset 0 var(--border-width-edge-separator) 0 var(--ui-surface-separator);
409
+ }
405
410
  }
@@ -9,14 +9,14 @@
9
9
  color: var(--color-intent-danger-text, var(--color-intent-neutral-text));
10
10
  }
11
11
 
12
- [data-ui-field][data-layout="grid"] > [data-ui-field-label] {
12
+ [data-ui-field][data-ui-layout-mode="grid"] > [data-ui-field-label] {
13
13
  grid-column: 1;
14
14
  grid-row: 1;
15
15
  }
16
16
 
17
- [data-ui-field][data-layout="grid"] > [data-ui-field-description],
18
- [data-ui-field][data-layout="grid"] > [data-ui-field-error],
19
- [data-ui-field][data-layout="grid"] > [data-ui-field-control] {
17
+ [data-ui-field][data-ui-layout-mode="grid"] > [data-ui-field-description],
18
+ [data-ui-field][data-ui-layout-mode="grid"] > [data-ui-field-error],
19
+ [data-ui-field][data-ui-layout-mode="grid"] > [data-ui-field-control] {
20
20
  grid-column: 2;
21
21
  }
22
22
  }
@@ -36,12 +36,12 @@
36
36
  box-shadow: none;
37
37
  }
38
38
 
39
- [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"]:is(:hover, :active, :focus-within):not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]),
40
- [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
39
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"]:is(:hover, :active, :focus-within):not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))),
40
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))) {
41
41
  background-color: var(--color-interaction-pressed);
42
42
  }
43
43
 
44
- [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
44
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="filled"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))) {
45
45
  background-color: color-mix(
46
46
  in oklch,
47
47
  var(--color-interaction-hover),
@@ -49,18 +49,18 @@
49
49
  );
50
50
  }
51
51
 
52
- [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
52
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))) {
53
53
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--ui-surface-edge-hover);
54
54
  }
55
55
 
56
- [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]),
57
- [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
56
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"]:focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))),
57
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"]:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))) {
58
58
  box-shadow:
59
59
  0 0 0 var(--border-width-edge-control) var(--color-intent-accent-edge-strong),
60
60
  0 0 0 var(--color-intent-accent-focus-width) var(--color-intent-accent-focus);
61
61
  }
62
62
 
63
- [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not([data-invalid]):not([aria-invalid="true"]) {
63
+ [data-ui-control][data-ui-control-recipe="field"][data-variant="outline"][data-ui-control-interaction="disclosure"][data-state="open"]:not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled):not(:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"]))) {
64
64
  box-shadow:
65
65
  0 0 0 var(--interaction-disclosure-expanded-focus-edge-width) var(--color-intent-accent-edge-strong),
66
66
  0 0 0 var(--interaction-disclosure-expanded-emphasis-edge-width) var(--ui-surface-edge-strong),
@@ -68,22 +68,22 @@
68
68
  0 0 0 var(--interaction-disclosure-expanded-accent-focus-width) var(--color-intent-accent-focus);
69
69
  }
70
70
 
71
- [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]) {
71
+ [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"])) {
72
72
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge, var(--ui-surface-edge-strong));
73
73
  }
74
74
 
75
- [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]):is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled) {
75
+ [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"])):is(:hover, :active):not(:focus-within):not([data-state="open"]):not([data-disabled]):not(:disabled) {
76
76
  box-shadow: 0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge-hover, var(--ui-surface-edge-strong));
77
77
  }
78
78
 
79
- [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"]):focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled),
80
- [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"]:is([data-invalid], [aria-invalid="true"]):is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled) {
79
+ [data-ui-control][data-ui-control-recipe="field"]:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"])):focus-within:not([data-ui-control-interaction="disclosure"]):not([data-disabled]):not(:disabled),
80
+ [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"]:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"])):is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"]))):not([data-disabled]):not(:disabled) {
81
81
  box-shadow:
82
82
  0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge-strong, var(--ui-surface-edge-strong)),
83
83
  0 0 0 var(--color-intent-danger-focus-width, var(--color-intent-accent-focus-width)) var(--color-intent-danger-focus, var(--color-intent-accent-focus));
84
84
  }
85
85
 
86
- [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"][data-state="open"]:is([data-invalid], [aria-invalid="true"]):not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled) {
86
+ [data-ui-control][data-ui-control-recipe="field"][data-ui-control-interaction="disclosure"][data-state="open"]:is([data-invalid], [aria-invalid="true"], :has([aria-invalid="true"])):not(:is(:focus-visible:not([data-ui-focus-indicator="suppressed"]), :has(:focus-visible:not([data-ui-focus-indicator="suppressed"])))):not([data-disabled]):not(:disabled) {
87
87
  box-shadow:
88
88
  0 0 0 var(--interaction-disclosure-expanded-emphasis-edge-width) var(--color-intent-danger-edge-strong, var(--ui-surface-edge-strong)),
89
89
  0 0 0 var(--border-width-edge-control) var(--color-intent-danger-edge, var(--ui-surface-edge-strong)),
@@ -2,6 +2,7 @@
2
2
  [data-ui-input-group] > [data-ui-input-root],
3
3
  [data-ui-input-group] [data-ui-input-control] {
4
4
  display: contents !important;
5
+ font: inherit !important;
5
6
  }
6
7
 
7
8
  [data-ui-input-group] > :not([data-ui-input-root]):not([data-ui-input-control]) {
@@ -15,6 +15,9 @@
15
15
  padding-inline: var(--spacing-1);
16
16
  border-radius: var(--radius-control-md);
17
17
  line-height: 1;
18
+ }
19
+
20
+ [data-ui-keybinding][data-variant="outline"] > [data-ui-keybinding-key] {
18
21
  box-shadow:
19
22
  inset 0 0 0 var(--border-width-edge-control)
20
23
  var(--ui-keybinding-edge, var(--ui-keybinding-inherited-edge));
@@ -25,14 +28,18 @@
25
28
  }
26
29
 
27
30
  [data-ui-keybinding][data-variant="surface"] > [data-ui-keybinding-key] {
28
- background-color: var(--color-interaction-hover);
31
+ background-color: var(--color-neutral-a3);
29
32
  }
30
33
 
31
34
  [data-ui-keybinding] > [data-ui-keybinding-key][data-pressed] {
32
35
  background-color: var(--color-interaction-pressed);
33
36
  }
34
37
 
35
- [data-ui-keybinding]:not([data-variant="plain"]) > [data-ui-keybinding-key][data-pressed] {
38
+ [data-ui-keybinding][data-variant="surface"] > [data-ui-keybinding-key][data-pressed] {
39
+ background-color: var(--color-neutral-a4);
40
+ }
41
+
42
+ [data-ui-keybinding][data-variant="outline"] > [data-ui-keybinding-key][data-pressed] {
36
43
  box-shadow:
37
44
  inset 0 0 0 var(--border-width-edge-control)
38
45
  var(--ui-keybinding-edge-pressed, currentColor);