@wildo-ai/presets-components 1.1.4 → 1.1.6

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 (780) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  2. package/dist/esm/components/actions/action-bar.js +65 -8
  3. package/dist/esm/components/actions/action-bar.js.map +1 -1
  4. package/dist/esm/components/actions/action-bar.labels.d.ts.map +1 -1
  5. package/dist/esm/components/actions/action-button.d.ts.map +1 -1
  6. package/dist/esm/components/actions/action-button.js +3 -3
  7. package/dist/esm/components/actions/action-button.js.map +1 -1
  8. package/dist/esm/components/actions/action-button.labels.d.ts.map +1 -1
  9. package/dist/esm/components/actions/button-group.d.ts.map +1 -1
  10. package/dist/esm/components/actions/button.d.ts.map +1 -1
  11. package/dist/esm/components/actions/button.js +62 -3
  12. package/dist/esm/components/actions/button.js.map +1 -1
  13. package/dist/esm/components/actions/button.labels.d.ts.map +1 -1
  14. package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -1
  15. package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
  16. package/dist/esm/components/ai-elements/artifacts/artifact.labels.d.ts.map +1 -1
  17. package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
  18. package/dist/esm/components/ai-elements/artifacts/code-block.js +1 -1
  19. package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -1
  20. package/dist/esm/components/ai-elements/artifacts/code-block.labels.d.ts.map +1 -1
  21. package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts +4 -0
  22. package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts.map +1 -0
  23. package/dist/esm/components/ai-elements/artifacts/diff-block.js +165 -0
  24. package/dist/esm/components/ai-elements/artifacts/diff-block.js.map +1 -0
  25. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts +3 -0
  26. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts.map +1 -0
  27. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js +63 -0
  28. package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js.map +1 -0
  29. package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
  30. package/dist/esm/components/ai-elements/artifacts/image.labels.d.ts.map +1 -1
  31. package/dist/esm/components/ai-elements/artifacts/shiki-highlighter-runtime.d.ts.map +1 -1
  32. package/dist/esm/components/ai-elements/artifacts/shiki-highlighter.lazy.d.ts.map +1 -1
  33. package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
  34. package/dist/esm/components/ai-elements/artifacts/web-preview.labels.d.ts.map +1 -1
  35. package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
  36. package/dist/esm/components/ai-elements/chat/conversation.labels.d.ts.map +1 -1
  37. package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
  38. package/dist/esm/components/ai-elements/chat/message.labels.d.ts.map +1 -1
  39. package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
  40. package/dist/esm/components/ai-elements/chat/prompt-input.labels.d.ts.map +1 -1
  41. package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
  42. package/dist/esm/components/ai-elements/chat/sources.labels.d.ts.map +1 -1
  43. package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
  44. package/dist/esm/components/ai-elements/chat/suggestion.js +8 -1
  45. package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
  46. package/dist/esm/components/ai-elements/chat/suggestion.labels.d.ts.map +1 -1
  47. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts +68 -0
  48. package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts.map +1 -0
  49. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js +208 -0
  50. package/dist/esm/components/ai-elements/decision/approval-argument-fields.js.map +1 -0
  51. package/dist/esm/components/ai-elements/decision/approval.d.ts +124 -17
  52. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  53. package/dist/esm/components/ai-elements/decision/approval.js +105 -13
  54. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  55. package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -1
  56. package/dist/esm/components/ai-elements/decision/decision-request.labels.d.ts.map +1 -1
  57. package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
  58. package/dist/esm/components/ai-elements/execution/confirmation.labels.d.ts.map +1 -1
  59. package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
  60. package/dist/esm/components/ai-elements/execution/queue.labels.d.ts.map +1 -1
  61. package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
  62. package/dist/esm/components/ai-elements/execution/task.js +1 -1
  63. package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
  64. package/dist/esm/components/ai-elements/execution/task.labels.d.ts.map +1 -1
  65. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  66. package/dist/esm/components/ai-elements/execution/tool.js +8 -1
  67. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  68. package/dist/esm/components/ai-elements/execution/tool.labels.d.ts.map +1 -1
  69. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  70. package/dist/esm/components/ai-elements/graph/canvas.labels.d.ts.map +1 -1
  71. package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
  72. package/dist/esm/components/ai-elements/graph/connection.labels.d.ts.map +1 -1
  73. package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
  74. package/dist/esm/components/ai-elements/graph/controls.labels.d.ts.map +1 -1
  75. package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
  76. package/dist/esm/components/ai-elements/graph/edge.labels.d.ts.map +1 -1
  77. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts +3 -1
  78. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
  79. package/dist/esm/components/ai-elements/graph/graph-runtime.js +3 -1
  80. package/dist/esm/components/ai-elements/graph/graph-runtime.js.map +1 -1
  81. package/dist/esm/components/ai-elements/graph/graph.lazy.d.ts.map +1 -1
  82. package/dist/esm/components/ai-elements/graph/graph.lazy.js +15 -15
  83. package/dist/esm/components/ai-elements/graph/graph.lazy.js.map +1 -1
  84. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  85. package/dist/esm/components/ai-elements/graph/node.labels.d.ts.map +1 -1
  86. package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
  87. package/dist/esm/components/ai-elements/graph/panel.labels.d.ts.map +1 -1
  88. package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
  89. package/dist/esm/components/ai-elements/graph/toolbar.labels.d.ts.map +1 -1
  90. package/dist/esm/components/ai-elements/meta/agent.d.ts +0 -1
  91. package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
  92. package/dist/esm/components/ai-elements/meta/agent.js +23 -18
  93. package/dist/esm/components/ai-elements/meta/agent.js.map +1 -1
  94. package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
  95. package/dist/esm/components/ai-elements/meta/context.labels.d.ts.map +1 -1
  96. package/dist/esm/components/ai-elements/meta/context.lazy.d.ts.map +1 -1
  97. package/dist/esm/components/ai-elements/meta/context.lazy.js +13 -11
  98. package/dist/esm/components/ai-elements/meta/context.lazy.js.map +1 -1
  99. package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
  100. package/dist/esm/components/ai-elements/meta/model-selector.labels.d.ts.map +1 -1
  101. package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
  102. package/dist/esm/components/ai-elements/meta/open-in-chat.labels.d.ts.map +1 -1
  103. package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
  104. package/dist/esm/components/ai-elements/shared/loader.labels.d.ts.map +1 -1
  105. package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
  106. package/dist/esm/components/ai-elements/shared/shimmer.labels.d.ts.map +1 -1
  107. package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
  108. package/dist/esm/components/ai-elements/stream/execution-stream.labels.d.ts.map +1 -1
  109. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts +6 -0
  110. package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
  111. package/dist/esm/components/ai-elements/trace/chain-of-thought.js +13 -1
  112. package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -1
  113. package/dist/esm/components/ai-elements/trace/chain-of-thought.labels.d.ts.map +1 -1
  114. package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
  115. package/dist/esm/components/ai-elements/trace/checkpoint.labels.d.ts.map +1 -1
  116. package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
  117. package/dist/esm/components/ai-elements/trace/inline-citation.labels.d.ts.map +1 -1
  118. package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
  119. package/dist/esm/components/ai-elements/trace/plan.labels.d.ts.map +1 -1
  120. package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
  121. package/dist/esm/components/ai-elements/trace/reasoning.labels.d.ts.map +1 -1
  122. package/dist/esm/components/app/app-layout-consent-gate.d.ts +23 -0
  123. package/dist/esm/components/app/app-layout-consent-gate.d.ts.map +1 -0
  124. package/dist/esm/components/app/app-layout-consent-gate.js +133 -0
  125. package/dist/esm/components/app/app-layout-consent-gate.js.map +1 -0
  126. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts +19 -0
  127. package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts.map +1 -0
  128. package/dist/esm/components/app/app-layout-document-acceptance-gate.js +56 -0
  129. package/dist/esm/components/app/app-layout-document-acceptance-gate.js.map +1 -0
  130. package/dist/esm/components/app/app-layout-main-container.d.ts +9 -0
  131. package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
  132. package/dist/esm/components/app/app-layout-main-container.js +17 -23
  133. package/dist/esm/components/app/app-layout-main-container.js.map +1 -1
  134. package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
  135. package/dist/esm/components/app/app-layout-main-container.labels.js +48 -0
  136. package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
  137. package/dist/esm/components/app/public-layout-main-container.d.ts +1 -1
  138. package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
  139. package/dist/esm/components/app/public-layout-main-container.js +9 -8
  140. package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
  141. package/dist/esm/components/app/public-layout-main-container.labels.d.ts.map +1 -1
  142. package/dist/esm/components/app/public-layout-terms.d.ts +46 -0
  143. package/dist/esm/components/app/public-layout-terms.d.ts.map +1 -0
  144. package/dist/esm/components/app/public-layout-terms.js +137 -0
  145. package/dist/esm/components/app/public-layout-terms.js.map +1 -0
  146. package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
  147. package/dist/esm/components/billing/billing-invoice-history.d.ts +1 -1
  148. package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
  149. package/dist/esm/components/billing/billing-invoice-history.js +3 -1
  150. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  151. package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
  152. package/dist/esm/components/billing/billing-invoice-history.labels.js +1 -0
  153. package/dist/esm/components/billing/billing-invoice-history.labels.js.map +1 -1
  154. package/dist/esm/components/billing/billing-plan-change-preview.d.ts +5 -0
  155. package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -0
  156. package/dist/esm/components/billing/billing-plan-change-preview.js +25 -0
  157. package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -0
  158. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +3 -0
  159. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +1 -0
  160. package/dist/esm/components/billing/billing-plan-change-preview.labels.js +22 -0
  161. package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +1 -0
  162. package/dist/esm/components/billing/billing-portal-link.d.ts +1 -1
  163. package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
  164. package/dist/esm/components/billing/billing-portal-link.js +3 -1
  165. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  166. package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
  167. package/dist/esm/components/billing/billing-portal-link.labels.js +1 -0
  168. package/dist/esm/components/billing/billing-portal-link.labels.js.map +1 -1
  169. package/dist/esm/components/billing/billing-pricing-table.d.ts +1 -1
  170. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  171. package/dist/esm/components/billing/billing-pricing-table.js +10 -4
  172. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  173. package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
  174. package/dist/esm/components/billing/billing-pricing-table.labels.js +8 -1
  175. package/dist/esm/components/billing/billing-pricing-table.labels.js.map +1 -1
  176. package/dist/esm/components/billing/billing-subscription-status.d.ts +1 -1
  177. package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
  178. package/dist/esm/components/billing/billing-subscription-status.js +3 -1
  179. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  180. package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
  181. package/dist/esm/components/billing/billing-subscription-status.labels.js +1 -0
  182. package/dist/esm/components/billing/billing-subscription-status.labels.js.map +1 -1
  183. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +1 -1
  184. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  185. package/dist/esm/components/billing/billing-usage-dashboard.js +10 -7
  186. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  187. package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
  188. package/dist/esm/components/billing/billing-usage-dashboard.labels.js +4 -1
  189. package/dist/esm/components/billing/billing-usage-dashboard.labels.js.map +1 -1
  190. package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
  191. package/dist/esm/components/data-display/avatar.labels.d.ts.map +1 -1
  192. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  193. package/dist/esm/components/data-display/badge.js +16 -15
  194. package/dist/esm/components/data-display/badge.js.map +1 -1
  195. package/dist/esm/components/data-display/badge.labels.d.ts.map +1 -1
  196. package/dist/esm/components/data-display/description-list.d.ts +2 -1
  197. package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
  198. package/dist/esm/components/data-display/description-list.js +24 -8
  199. package/dist/esm/components/data-display/description-list.js.map +1 -1
  200. package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
  201. package/dist/esm/components/data-display/duration.d.ts +15 -0
  202. package/dist/esm/components/data-display/duration.d.ts.map +1 -0
  203. package/dist/esm/components/data-display/duration.js +50 -0
  204. package/dist/esm/components/data-display/duration.js.map +1 -0
  205. package/dist/esm/components/data-display/duration.labels.d.ts +15 -0
  206. package/dist/esm/components/data-display/duration.labels.d.ts.map +1 -0
  207. package/dist/esm/components/data-display/duration.labels.js +35 -0
  208. package/dist/esm/components/data-display/duration.labels.js.map +1 -0
  209. package/dist/esm/components/data-display/formatters/display-field-address.d.ts +21 -0
  210. package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -0
  211. package/dist/esm/components/data-display/formatters/display-field-address.js +75 -0
  212. package/dist/esm/components/data-display/formatters/display-field-address.js.map +1 -0
  213. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts +3 -0
  214. package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts.map +1 -0
  215. package/dist/esm/components/data-display/formatters/display-field-address.labels.js +13 -0
  216. package/dist/esm/components/data-display/formatters/display-field-address.labels.js.map +1 -0
  217. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
  218. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js +6 -2
  219. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -1
  220. package/dist/esm/components/data-display/formatters/display-field-bigdecimal.labels.d.ts.map +1 -1
  221. package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
  222. package/dist/esm/components/data-display/formatters/display-field-boolean.js +2 -2
  223. package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
  224. package/dist/esm/components/data-display/formatters/display-field-boolean.labels.d.ts.map +1 -1
  225. package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
  226. package/dist/esm/components/data-display/formatters/display-field-code.js +2 -2
  227. package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -1
  228. package/dist/esm/components/data-display/formatters/display-field-code.labels.d.ts.map +1 -1
  229. package/dist/esm/components/data-display/formatters/display-field-date.d.ts +3 -3
  230. package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
  231. package/dist/esm/components/data-display/formatters/display-field-date.js +17 -4
  232. package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -1
  233. package/dist/esm/components/data-display/formatters/display-field-date.labels.d.ts.map +1 -1
  234. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts +3 -3
  235. package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
  236. package/dist/esm/components/data-display/formatters/display-field-datetime.js +17 -4
  237. package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -1
  238. package/dist/esm/components/data-display/formatters/display-field-datetime.labels.d.ts.map +1 -1
  239. package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
  240. package/dist/esm/components/data-display/formatters/display-field-duration.labels.d.ts.map +1 -1
  241. package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
  242. package/dist/esm/components/data-display/formatters/display-field-enum.js +29 -11
  243. package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
  244. package/dist/esm/components/data-display/formatters/display-field-enum.labels.d.ts.map +1 -1
  245. package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
  246. package/dist/esm/components/data-display/formatters/display-field-file-audio.js +2 -1
  247. package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -1
  248. package/dist/esm/components/data-display/formatters/display-field-file-audio.labels.d.ts.map +1 -1
  249. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts +4 -1
  250. package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
  251. package/dist/esm/components/data-display/formatters/display-field-file-document.js +18 -5
  252. package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -1
  253. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.d.ts.map +1 -1
  254. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js +20 -0
  255. package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js.map +1 -1
  256. package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
  257. package/dist/esm/components/data-display/formatters/display-field-file-gallery.labels.d.ts.map +1 -1
  258. package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
  259. package/dist/esm/components/data-display/formatters/display-field-file-image.js +3 -1
  260. package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -1
  261. package/dist/esm/components/data-display/formatters/display-field-file-image.labels.d.ts.map +1 -1
  262. package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
  263. package/dist/esm/components/data-display/formatters/display-field-file-video.labels.d.ts.map +1 -1
  264. package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
  265. package/dist/esm/components/data-display/formatters/display-field-file.js +14 -15
  266. package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
  267. package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
  268. package/dist/esm/components/data-display/formatters/display-field-file.labels.js +2 -0
  269. package/dist/esm/components/data-display/formatters/display-field-file.labels.js.map +1 -1
  270. package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -1
  271. package/dist/esm/components/data-display/formatters/display-field-i18n.utils.d.ts.map +1 -1
  272. package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
  273. package/dist/esm/components/data-display/formatters/display-field-money.labels.d.ts.map +1 -1
  274. package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
  275. package/dist/esm/components/data-display/formatters/display-field-number.js +8 -3
  276. package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
  277. package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
  278. package/dist/esm/components/data-display/formatters/display-field-number.labels.js +5 -2
  279. package/dist/esm/components/data-display/formatters/display-field-number.labels.js.map +1 -1
  280. package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
  281. package/dist/esm/components/data-display/formatters/display-field-phone.labels.d.ts.map +1 -1
  282. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
  283. package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.labels.d.ts.map +1 -1
  284. package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
  285. package/dist/esm/components/data-display/formatters/display-field-range-date.labels.d.ts.map +1 -1
  286. package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
  287. package/dist/esm/components/data-display/formatters/display-field-range-datetime.labels.d.ts.map +1 -1
  288. package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
  289. package/dist/esm/components/data-display/formatters/display-field-range-money.labels.d.ts.map +1 -1
  290. package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
  291. package/dist/esm/components/data-display/formatters/display-field-range-number.labels.d.ts.map +1 -1
  292. package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
  293. package/dist/esm/components/data-display/formatters/display-field-range-time.labels.d.ts.map +1 -1
  294. package/dist/esm/components/data-display/formatters/display-field-string.d.ts +1 -1
  295. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  296. package/dist/esm/components/data-display/formatters/display-field-string.js +129 -15
  297. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  298. package/dist/esm/components/data-display/formatters/display-field-string.labels.d.ts.map +1 -1
  299. package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
  300. package/dist/esm/components/data-display/formatters/display-field-time.labels.d.ts.map +1 -1
  301. package/dist/esm/components/data-display/identifier.d.ts +19 -0
  302. package/dist/esm/components/data-display/identifier.d.ts.map +1 -0
  303. package/dist/esm/components/data-display/identifier.js +21 -0
  304. package/dist/esm/components/data-display/identifier.js.map +1 -0
  305. package/dist/esm/components/data-display/kbd.d.ts +17 -0
  306. package/dist/esm/components/data-display/kbd.d.ts.map +1 -0
  307. package/dist/esm/components/data-display/kbd.js +18 -0
  308. package/dist/esm/components/data-display/kbd.js.map +1 -0
  309. package/dist/esm/components/data-display/markdown-content.d.ts.map +1 -1
  310. package/dist/esm/components/data-display/markdown-stream-runtime.d.ts.map +1 -1
  311. package/dist/esm/components/data-display/markdown-stream.lazy.d.ts.map +1 -1
  312. package/dist/esm/components/data-display/markdown-stream.lazy.js +13 -2
  313. package/dist/esm/components/data-display/markdown-stream.lazy.js.map +1 -1
  314. package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
  315. package/dist/esm/components/data-display/notification-indicator.js +3 -11
  316. package/dist/esm/components/data-display/notification-indicator.js.map +1 -1
  317. package/dist/esm/components/data-display/notification-indicator.labels.d.ts.map +1 -1
  318. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts +63 -0
  319. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts.map +1 -0
  320. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js +75 -0
  321. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js.map +1 -0
  322. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts +32 -0
  323. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts.map +1 -0
  324. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js +36 -0
  325. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js.map +1 -0
  326. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts +46 -6
  327. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  328. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js +70 -46
  329. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js.map +1 -1
  330. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts +12 -2
  331. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
  332. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js +3 -2
  333. package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js.map +1 -1
  334. package/dist/esm/components/data-display/timeline.d.ts +3 -0
  335. package/dist/esm/components/data-display/timeline.d.ts.map +1 -0
  336. package/dist/esm/components/data-display/timeline.js +92 -0
  337. package/dist/esm/components/data-display/timeline.js.map +1 -0
  338. package/dist/esm/components/data-display/untrusted-html-content.d.ts +55 -0
  339. package/dist/esm/components/data-display/untrusted-html-content.d.ts.map +1 -0
  340. package/dist/esm/components/data-display/untrusted-html-content.js +67 -0
  341. package/dist/esm/components/data-display/untrusted-html-content.js.map +1 -0
  342. package/dist/esm/components/feedback/celebration-overlay.d.ts +13 -4
  343. package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
  344. package/dist/esm/components/feedback/celebration-overlay.js +146 -22
  345. package/dist/esm/components/feedback/celebration-overlay.js.map +1 -1
  346. package/dist/esm/components/feedback/celebration-overlay.labels.d.ts.map +1 -1
  347. package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
  348. package/dist/esm/components/feedback/danger-zone.labels.d.ts.map +1 -1
  349. package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
  350. package/dist/esm/components/feedback/empty-state.js.map +1 -1
  351. package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
  352. package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
  353. package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
  354. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  355. package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
  356. package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
  357. package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
  358. package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
  359. package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
  360. package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
  361. package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
  362. package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
  363. package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
  364. package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
  365. package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
  366. package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
  367. package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
  368. package/dist/esm/components/feedback/notification-center.js +5 -5
  369. package/dist/esm/components/feedback/notification-center.js.map +1 -1
  370. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +1 -1
  371. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  372. package/dist/esm/components/feedback/operations-confirm-critical.js +9 -7
  373. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  374. package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
  375. package/dist/esm/components/feedback/progress.d.ts.map +1 -1
  376. package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
  377. package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
  378. package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
  379. package/dist/esm/components/feedback/toast.d.ts.map +1 -1
  380. package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
  381. package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
  382. package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
  383. package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
  384. package/dist/esm/components/form/chromes/field.js +11 -3
  385. package/dist/esm/components/form/chromes/field.js.map +1 -1
  386. package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
  387. package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
  388. package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
  389. package/dist/esm/components/form/chromes/form-primitive.labels.js +37 -0
  390. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  391. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  392. package/dist/esm/components/form/combobox.js +14 -13
  393. package/dist/esm/components/form/combobox.js.map +1 -1
  394. package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
  395. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts +42 -0
  396. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts.map +1 -0
  397. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js +120 -0
  398. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js.map +1 -0
  399. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts +16 -0
  400. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts.map +1 -0
  401. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js +8 -0
  402. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js.map +1 -0
  403. package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
  404. package/dist/esm/components/form/controls/boolean/checkbox.js +2 -2
  405. package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -1
  406. package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
  407. package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
  408. package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
  409. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
  410. package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
  411. package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
  412. package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
  413. package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
  414. package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
  415. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
  416. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js +11 -2
  417. package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js.map +1 -1
  418. package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
  419. package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
  420. package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
  421. package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
  422. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  423. package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  425. package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
  426. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  427. package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
  428. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  429. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
  430. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js +11 -2
  431. package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js.map +1 -1
  432. package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
  433. package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
  434. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  435. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
  436. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js +11 -2
  437. package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js.map +1 -1
  438. package/dist/esm/components/form/controls/enum/radio.d.ts +1 -1
  439. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  440. package/dist/esm/components/form/controls/enum/radio.js +13 -12
  441. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  442. package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
  443. package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
  444. package/dist/esm/components/form/controls/enum/select-multiple.js +5 -3
  445. package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -1
  446. package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
  447. package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
  448. package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
  449. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  450. package/dist/esm/components/form/controls/enum/toggle-group.js +96 -5
  451. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  452. package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
  453. package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
  454. package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
  455. package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
  456. package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
  457. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts +44 -0
  458. package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts.map +1 -0
  459. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js +137 -0
  460. package/dist/esm/components/form/controls/file/providers/dropbox-picker.js.map +1 -0
  461. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts +22 -0
  462. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts.map +1 -0
  463. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js +27 -0
  464. package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js.map +1 -0
  465. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +3 -1
  466. package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -1
  467. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +3 -1
  468. package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -1
  469. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +6 -0
  470. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -1
  471. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +8 -1
  472. package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -1
  473. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +6 -2
  474. package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -1
  475. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +6 -2
  476. package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -1
  477. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +6 -0
  478. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -1
  479. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +8 -1
  480. package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -1
  481. package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
  482. package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
  483. package/dist/esm/components/form/controls/input.d.ts.map +1 -1
  484. package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
  485. package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
  486. package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
  487. package/dist/esm/components/form/controls/number/slider.labels.js +9 -2
  488. package/dist/esm/components/form/controls/number/slider.labels.js.map +1 -1
  489. package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
  490. package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
  491. package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
  492. package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
  493. package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
  494. package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
  495. package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
  496. package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
  497. package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
  498. package/dist/esm/components/form/controls/string/password-input.labels.js +9 -2
  499. package/dist/esm/components/form/controls/string/password-input.labels.js.map +1 -1
  500. package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
  501. package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
  502. package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
  503. package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
  504. package/dist/esm/components/layout/carousel.d.ts.map +1 -1
  505. package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
  506. package/dist/esm/components/layout/divider.d.ts.map +1 -1
  507. package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
  508. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  509. package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
  510. package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
  511. package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
  512. package/dist/esm/components/layout/separator.d.ts.map +1 -1
  513. package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
  514. package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
  515. package/dist/esm/components/navigation/app-level/activity-bar.js +2 -2
  516. package/dist/esm/components/navigation/app-level/activity-bar.js.map +1 -1
  517. package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
  518. package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/command-menu.js +2 -2
  520. package/dist/esm/components/navigation/app-level/command-menu.js.map +1 -1
  521. package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
  523. package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  525. package/dist/esm/components/navigation/app-level/menu-user-org.js +10 -4
  526. package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -1
  527. package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
  528. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js +7 -0
  529. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js.map +1 -1
  530. package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/menubar.js +36 -14
  532. package/dist/esm/components/navigation/app-level/menubar.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
  535. package/dist/esm/components/navigation/app-level/navigation-back.js +31 -5
  536. package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -1
  537. package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
  539. package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
  540. package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
  541. package/dist/esm/components/navigation/app-level/notification-center.labels.js +15 -0
  542. package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
  543. package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
  544. package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js +4 -0
  546. package/dist/esm/components/navigation/app-level/quick-action-button.labels.js.map +1 -1
  547. package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
  548. package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
  549. package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
  550. package/dist/esm/components/navigation/app-level/sidebar.js +41 -25
  551. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  552. package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
  553. package/dist/esm/components/navigation/app-level/sidebar.labels.js +1 -0
  554. package/dist/esm/components/navigation/app-level/sidebar.labels.js.map +1 -1
  555. package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
  556. package/dist/esm/components/navigation/app-level/status-bar.js +2 -2
  557. package/dist/esm/components/navigation/app-level/status-bar.js.map +1 -1
  558. package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
  559. package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
  560. package/dist/esm/components/navigation/app-level/toolbar.js +2 -2
  561. package/dist/esm/components/navigation/app-level/toolbar.js.map +1 -1
  562. package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
  563. package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
  564. package/dist/esm/components/navigation/app-level/utility-panel.js +24 -6
  565. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  566. package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
  567. package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
  568. package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
  569. package/dist/esm/components/navigation/breadcrumb.js +1 -1
  570. package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
  571. package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
  572. package/dist/esm/components/navigation/command.d.ts.map +1 -1
  573. package/dist/esm/components/navigation/command.js +2 -2
  574. package/dist/esm/components/navigation/command.js.map +1 -1
  575. package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
  576. package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
  577. package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
  578. package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
  579. package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
  580. package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
  581. package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
  582. package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
  583. package/dist/esm/components/overlays/containers/alert-dialog.js +11 -1
  584. package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -1
  585. package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
  586. package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
  587. package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
  588. package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
  589. package/dist/esm/components/overlays/containers/dialog.js +11 -1
  590. package/dist/esm/components/overlays/containers/dialog.js.map +1 -1
  591. package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
  592. package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
  593. package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
  594. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  595. package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
  596. package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
  597. package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
  598. package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
  599. package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
  600. package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
  601. package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
  602. package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
  603. package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
  604. package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
  605. package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
  606. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  607. package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
  608. package/dist/esm/components/sections/card.d.ts.map +1 -1
  609. package/dist/esm/components/sections/card.js +71 -6
  610. package/dist/esm/components/sections/card.js.map +1 -1
  611. package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
  612. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  613. package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
  614. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  615. package/dist/esm/components/sections/content-section.js +36 -6
  616. package/dist/esm/components/sections/content-section.js.map +1 -1
  617. package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
  618. package/dist/esm/components/sections/option-gesture.d.ts +15 -0
  619. package/dist/esm/components/sections/option-gesture.d.ts.map +1 -0
  620. package/dist/esm/components/sections/option-gesture.js +66 -0
  621. package/dist/esm/components/sections/option-gesture.js.map +1 -0
  622. package/dist/esm/components/sections/pagination.d.ts.map +1 -1
  623. package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
  624. package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
  625. package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
  626. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  627. package/dist/esm/components/sections/stepper.js +5 -3
  628. package/dist/esm/components/sections/stepper.js.map +1 -1
  629. package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
  630. package/dist/esm/components/sections/table.d.ts.map +1 -1
  631. package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
  632. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  633. package/dist/esm/components/sections/tabs.js +60 -15
  634. package/dist/esm/components/sections/tabs.js.map +1 -1
  635. package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
  636. package/dist/esm/components/typography/heading.d.ts.map +1 -1
  637. package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
  638. package/dist/esm/components/typography/label.d.ts.map +1 -1
  639. package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
  640. package/dist/esm/components/typography/link.d.ts.map +1 -1
  641. package/dist/esm/components/typography/link.js +9 -3
  642. package/dist/esm/components/typography/link.js.map +1 -1
  643. package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
  644. package/dist/esm/components/typography/text.d.ts +1 -1
  645. package/dist/esm/components/typography/text.d.ts.map +1 -1
  646. package/dist/esm/components/typography/text.js +3 -2
  647. package/dist/esm/components/typography/text.js.map +1 -1
  648. package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
  649. package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
  650. package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
  651. package/dist/esm/config/index.d.ts.map +1 -1
  652. package/dist/esm/config/preset-design-system.d.ts.map +1 -1
  653. package/dist/esm/config/preset-design-system.js +37 -60
  654. package/dist/esm/config/preset-design-system.js.map +1 -1
  655. package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
  656. package/dist/esm/config/preset-kits.d.ts.map +1 -1
  657. package/dist/esm/config/preset-navigation.d.ts.map +1 -1
  658. package/dist/esm/config/preset-navigation.js +23 -7
  659. package/dist/esm/config/preset-navigation.js.map +1 -1
  660. package/dist/esm/config/preset-resources.d.ts.map +1 -1
  661. package/dist/esm/config/preset-shell.d.ts.map +1 -1
  662. package/dist/esm/config/preset-utils.d.ts.map +1 -1
  663. package/dist/esm/config/presets.d.ts.map +1 -1
  664. package/dist/esm/config/resources/agent-work.resource-presets.d.ts +4 -0
  665. package/dist/esm/config/resources/agent-work.resource-presets.d.ts.map +1 -0
  666. package/dist/esm/config/resources/agent-work.resource-presets.js +115 -0
  667. package/dist/esm/config/resources/agent-work.resource-presets.js.map +1 -0
  668. package/dist/esm/config/resources/api-key-rotation-window.d.ts +22 -0
  669. package/dist/esm/config/resources/api-key-rotation-window.d.ts.map +1 -0
  670. package/dist/esm/config/resources/api-key-rotation-window.js +45 -0
  671. package/dist/esm/config/resources/api-key-rotation-window.js.map +1 -0
  672. package/dist/esm/config/resources/application.resource-presets.d.ts +2 -0
  673. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  674. package/dist/esm/config/resources/application.resource-presets.js +268 -26
  675. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  676. package/dist/esm/config/resources/billing.resource-presets.d.ts +4 -3
  677. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  678. package/dist/esm/config/resources/billing.resource-presets.js +241 -111
  679. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  680. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts +4 -0
  681. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts.map +1 -0
  682. package/dist/esm/config/resources/conversation-threads.resource-presets.js +105 -0
  683. package/dist/esm/config/resources/conversation-threads.resource-presets.js.map +1 -0
  684. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  685. package/dist/esm/config/resources/guidance.resource-presets.js +39 -16
  686. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  687. package/dist/esm/config/resources/identity.resource-presets.d.ts +0 -13
  688. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  689. package/dist/esm/config/resources/identity.resource-presets.js +71 -17
  690. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  691. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts +6 -0
  692. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts.map +1 -0
  693. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js +112 -0
  694. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js.map +1 -0
  695. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts +4 -0
  696. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts.map +1 -0
  697. package/dist/esm/config/resources/inbound-email.resource-presets.js +182 -0
  698. package/dist/esm/config/resources/inbound-email.resource-presets.js.map +1 -0
  699. package/dist/esm/config/resources/index.d.ts.map +1 -1
  700. package/dist/esm/config/resources/index.js +9 -2
  701. package/dist/esm/config/resources/index.js.map +1 -1
  702. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts +4 -0
  703. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts.map +1 -0
  704. package/dist/esm/config/resources/legal-holds.resource-presets.js +76 -0
  705. package/dist/esm/config/resources/legal-holds.resource-presets.js.map +1 -0
  706. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  707. package/dist/esm/config/resources/organizations.resource-presets.js +216 -35
  708. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  709. package/dist/esm/config/resources/resource.config.utils.d.ts +20 -0
  710. package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
  711. package/dist/esm/config/resources/resource.config.utils.js +20 -0
  712. package/dist/esm/config/resources/resource.config.utils.js.map +1 -1
  713. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts +5 -0
  714. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts.map +1 -0
  715. package/dist/esm/config/resources/retention-enforcement.resource-presets.js +74 -0
  716. package/dist/esm/config/resources/retention-enforcement.resource-presets.js.map +1 -0
  717. package/dist/esm/config/resources/security.resource-presets.d.ts +11 -3
  718. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  719. package/dist/esm/config/resources/security.resource-presets.js +685 -99
  720. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  721. package/dist/esm/config/resources/service-providers.resource-presets.d.ts +4 -0
  722. package/dist/esm/config/resources/service-providers.resource-presets.d.ts.map +1 -0
  723. package/dist/esm/config/resources/service-providers.resource-presets.js +321 -0
  724. package/dist/esm/config/resources/service-providers.resource-presets.js.map +1 -0
  725. package/dist/esm/config/resources/webhooks.resource-presets.d.ts +4 -3
  726. package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
  727. package/dist/esm/config/resources/webhooks.resource-presets.js +102 -26
  728. package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
  729. package/dist/esm/index.d.ts +7 -1
  730. package/dist/esm/index.d.ts.map +1 -1
  731. package/dist/esm/index.js +7 -1
  732. package/dist/esm/index.js.map +1 -1
  733. package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
  734. package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
  735. package/dist/esm/mermaid-stub.d.ts.map +1 -1
  736. package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
  737. package/dist/esm/registration/register-common-enums.js +63 -34
  738. package/dist/esm/registration/register-common-enums.js.map +1 -1
  739. package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
  740. package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
  741. package/dist/esm/registration/register-default-icons.js +3 -1
  742. package/dist/esm/registration/register-default-icons.js.map +1 -1
  743. package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
  744. package/dist/esm/registration/register-default-presets.js +32 -4
  745. package/dist/esm/registration/register-default-presets.js.map +1 -1
  746. package/dist/esm/registration/register-provider-components.d.ts.map +1 -1
  747. package/dist/esm/registration/register-provider-components.js +11 -0
  748. package/dist/esm/registration/register-provider-components.js.map +1 -1
  749. package/dist/esm/shiki-subset.d.ts +11 -3
  750. package/dist/esm/shiki-subset.d.ts.map +1 -1
  751. package/dist/esm/shiki-subset.js +10 -2
  752. package/dist/esm/shiki-subset.js.map +1 -1
  753. package/dist/esm/theme-exports.d.ts.map +1 -1
  754. package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
  755. package/dist/esm/themes/cozy.theme.js +19 -5
  756. package/dist/esm/themes/cozy.theme.js.map +1 -1
  757. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  758. package/dist/esm/themes/dense.theme.js +76 -10
  759. package/dist/esm/themes/dense.theme.js.map +1 -1
  760. package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
  761. package/dist/esm/themes/editorial.theme.js +19 -5
  762. package/dist/esm/themes/editorial.theme.js.map +1 -1
  763. package/dist/esm/themes/glass.theme.d.ts.map +1 -1
  764. package/dist/esm/themes/glass.theme.js +5 -1
  765. package/dist/esm/themes/glass.theme.js.map +1 -1
  766. package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
  767. package/dist/esm/themes/neo-brutalist.theme.js +9 -2
  768. package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
  769. package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
  770. package/dist/esm/themes/terminal.theme.js +19 -5
  771. package/dist/esm/themes/terminal.theme.js.map +1 -1
  772. package/dist/esm/themes/trading.theme.d.ts.map +1 -1
  773. package/dist/esm/themes/trading.theme.js +22 -6
  774. package/dist/esm/themes/trading.theme.js.map +1 -1
  775. package/dist/tsconfig.build.tsbuildinfo +1 -1
  776. package/package.json +31 -45
  777. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +0 -16
  778. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +0 -1
  779. package/dist/esm/components/form/controls/form-field-checkbox-group.js +0 -143
  780. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +0 -1
@@ -37,7 +37,7 @@ const NB = {
37
37
  shadow: "shadow-[4px_4px_0px_0px_var(--foreground)]",
38
38
  hover: "hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none",
39
39
  focus: "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2",
40
- disabled: "disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]",
40
+ disabled: "disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)] aria-disabled:cursor-not-allowed aria-disabled:opacity-[var(--opacity-disabled)]",
41
41
  invalid: "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
42
42
  };
43
43
  // ============================================================
@@ -125,7 +125,10 @@ const interactive = {
125
125
  hover: "hover:bg-primary hover:text-primary-foreground hover:border-foreground",
126
126
  active: "active:bg-primary/80 active:text-primary-foreground",
127
127
  focus: NB.focus,
128
- selected: "data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground",
128
+ /* SELECTED IS NOT HOVER: this theme says "chosen" with its hard offset shadow, exactly
129
+ * as its own OUTLINE variant already does. Without it, hover and selected were the
130
+ * same three classes. */
131
+ selected: "data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground data-[state=on]:shadow-[2px_2px_0px_0px_var(--foreground)]",
129
132
  highlighted: "focus:bg-primary focus:text-primary-foreground focus:border-foreground",
130
133
  open: "data-[state=open]:bg-primary data-[state=open]:text-primary-foreground data-[state=open]:border-foreground",
131
134
  disabled: NB.disabled, invalid: NB.invalid,
@@ -412,6 +415,10 @@ const typography = {
412
415
  base: "text-foreground text-sm font-medium",
413
416
  sizes: { sm: "text-xs", md: "text-sm" },
414
417
  }),
418
+ [TypographyVariant.EYEBROW]: recipe({
419
+ base: "text-foreground text-xs font-bold uppercase tracking-widest",
420
+ sizes: { sm: "text-2xs", md: "text-xs" },
421
+ }),
415
422
  [TypographyVariant.CODE]: recipe({
416
423
  base: `font-mono text-sm bg-secondary ${NB.border} border-foreground/20 ${NB.radius} px-1.5 py-0.5`,
417
424
  sizes: { sm: "text-xs", md: "text-sm", lg: "text-base" },
@@ -1 +1 @@
1
- {"version":3,"file":"neo-brutalist.theme.js","sourceRoot":"","sources":["../../../../src/themes/neo-brutalist.theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentStyleTheme, DesignTokenConfiguration } from '@wildo-ai/presets-components-models';\nimport {\n DividerVariant,\n InteractiveVariant,\n SurfaceVariant,\n FormControlVariant,\n IndicatorVariant,\n SelectableVariant,\n TypographyVariant,\n SpacingSemantic,\n DesignTokenModeStrategy,\n DesignTokenValueType,\n SKELETON_NEUTRAL_TINT,\n} from '@wildo-ai/presets-components-models';\nimport type { UIBehaviorRecipe } from '@wildo-ai/presets-components-models';\n\nfunction recipe(r: Partial<UIBehaviorRecipe> & { base: string }): UIBehaviorRecipe {\n return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };\n}\n\n// ============================================================\n// Neo-Brutalist theme\n//\n// Extracted from neobrutalism.dev v3 reference repo (exact classes).\n//\n// Design tokens (from reference CSS variables):\n// --border-radius: 5px → rounded-lg (via global --radius token)\n// --shadow: 4px 4px 0px 0px var(--border) → shadow-[4px_4px_0px_0px_var(--foreground)]\n// --heading-font-weight: 700 → font-bold\n// --base-font-weight: 500 → font-medium\n// border: 2px solid → border-2 border-foreground\n// overlay: rgba(0,0,0,0.8) → bg-black/80\n//\n// Hover pattern: translate toward shadow + flatten (press-in)\n// hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none\n//\n// Key differences from shadcn:\n// - Card bg = primary (main) color, not white\n// - Select/dropdown bg = primary color\n// - Tooltip bg = primary color\n// - Close buttons: opacity-100 (no subtlety)\n// - Sidebar header/footer: border-b-2/border-t-2\n// - Accordion trigger: bg-primary, text-primary-foreground\n// - Skeleton: border-2 on skeleton\n// - Progress bar indicator: border-r-2\n// ============================================================\n\n// -- Shared constants matching reference --\n\nconst NB = {\n // References the global --radius token (set to 5px by theme.radius below).\n // Always use rounded-* tiers, never hardcoded rounded-[Npx].\n radius: \"rounded-lg\",\n border: \"border-2 border-foreground\",\n shadow: \"shadow-[4px_4px_0px_0px_var(--foreground)]\",\n hover: \"hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none\",\n focus: \"focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n invalid: \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n};\n\n// ============================================================\n// MOTION PERSONALITY — Neo-Brutalist\n// ============================================================\n// Hover/focus : INSTANT (50ms) + LINEAR → abrupt, no polish.\n// The 4px translate-x/-y on\n// press is THE motion (the\n// button \"lands\" against\n// the hard-offset shadow).\n// Overlay enter: FAST (150ms) + LINEAR → directional slide-2.\n// Overlay exit : INSTANT (50ms) + LINEAR → close = vanish (matches\n// the abrupt press feedback).\n// Backdrop : FAST/INSTANT + LINEAR → consistent.\n// Gestures : NONE — CSS translate IS the press feedback. Adding\n// motion.dev springs would soften the \"thud\" that is\n// the brutalist signature.\n//\n// Why LINEAR explicitly: previously overlay/backdrop omitted ease-,\n// so Tailwind/browser fell back to the soft `ease` curve — quietly\n// undermining the abrupt brutalist personality. TR-14 motion-coherence\n// pass adds explicit LINEAR easing to every overlay/backdrop.\n// ============================================================\nconst NB_MOTION = {\n interactive: \"transition-[background-color,color,border-color,box-shadow,transform] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n formControl: \"transition-[color,border-color,box-shadow] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n selectable: \"transition-[background-color,color,border-color,outline-color] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n enterFadeZoom: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none\",\n exitFadeZoom: \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none\",\n enterDirectional: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 motion-reduce:data-[state=open]:animate-none\",\n backdropEnter: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none\",\n backdropExit: \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none\",\n};\n\n// ============================================================\n// INTERACTIVE\n// Reference: button.tsx variants\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: \"h-8 px-2.5 text-xs gap-1 pointer-coarse:min-h-10\",\n sm: \"h-9 px-3 pointer-coarse:min-h-11\",\n md: \"h-10 px-4 py-2 pointer-coarse:min-h-11\",\n lg: \"h-11 px-8 pointer-coarse:min-h-11\",\n icon: \"size-10 pointer-coarse:min-h-11 pointer-coarse:min-w-11\",\n \"icon-sm\": \"size-8 pointer-coarse:min-h-9 pointer-coarse:min-w-9\",\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n // Reference variant: \"default\" → bg-main text-main-foreground shadow-shadow hover:shift\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"neutral\" → bg-bw (secondary bg) text-text shadow-shadow hover:shift\n [InteractiveVariant.SECONDARY]: recipe({\n base: `bg-secondary text-secondary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"reverse\" → bg-main, NO shadow, gains shadow on hover\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:-translate-x-[4px] hover:-translate-y-[4px] hover:shadow-[4px_4px_0px_0px_var(--foreground)]\",\n active: \"active:translate-x-0 active:translate-y-0 active:shadow-none\",\n focus: NB.focus,\n selected: \"data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground data-[state=on]:shadow-[2px_2px_0px_0px_var(--foreground)]\",\n disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Destructive — same pattern as primary but destructive colors\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, highlighted: \"focus:bg-destructive focus:text-destructive-foreground focus:border-foreground\", disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"noShadow\" → bg-main, border, no shadow, no hover shift\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${NB.border} border-transparent ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:bg-primary hover:text-primary-foreground hover:border-foreground\",\n active: \"active:bg-primary/80 active:text-primary-foreground\",\n focus: NB.focus,\n selected: \"data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground\",\n highlighted: \"focus:bg-primary focus:text-primary-foreground focus:border-foreground\",\n open: \"data-[state=open]:bg-primary data-[state=open]:text-primary-foreground data-[state=open]:border-foreground\",\n disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n [InteractiveVariant.LINK]: recipe({\n base: `text-primary underline underline-offset-4 decoration-2 ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:decoration-foreground\",\n active: \"active:text-primary/80\",\n focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: { xs: \"h-8 px-2.5 text-xs gap-1 pointer-coarse:min-h-10\", sm: \"h-9 px-3 pointer-coarse:min-h-11\", md: \"h-10 px-4 py-2 pointer-coarse:min-h-11\", lg: \"h-11 px-8 pointer-coarse:min-h-11\", icon: \"size-10 pointer-coarse:min-h-11 pointer-coarse:min-w-11\", \"icon-sm\": \"size-8 pointer-coarse:min-h-9 pointer-coarse:min-w-9\" },\n motion: { transition: NB_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // TT-2: Reuse the same theme-resolvable accent-gradient stops as the\n // default theme so tenant rebrands flow through (was hardcoded\n // violet/pink/amber). The neo-brutalist motion + border treatment is\n // unchanged.\n base: `bg-primary text-primary-foreground font-black ${NB.border} shadow-[4px_4px_0px_0px_var(--foreground)] bg-[length:300%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_4s_steps(8)_infinite] motion-reduce:animate-none ${NB.radius} text-sm cursor-pointer`,\n states: {\n hover: 'hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none',\n active: 'active:translate-x-[4px] active:translate-y-[4px] active:shadow-none',\n focus: 'focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2',\n disabled: NB.disabled,\n invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition: 'transition-[transform,shadow,background-position] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// SURFACE\n// Reference: card.tsx, dialog.tsx, select.tsx (content), tooltip.tsx\n// SURFACE PERSONALITY — poster-board panels: hard borders, hard shadows,\n// saturated callouts. New variants keep the same physical cut-paper logic.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n // Reference card: \"bg-background text-foreground border-2 border-border shadow-shadow rounded-base font-base\"\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n }),\n\n // Reference card with a lifted fill: hard border + offset shadow over the\n // elevated `surface-raised` so the card reads against the page. Always painted.\n [SurfaceVariant.CARD]: recipe({\n base: `bg-surface-raised text-surface-raised-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n }),\n\n // Reference dropdown/tooltip: \"bg-main text-main-foreground border-2 border-border rounded-base\"\n // Popovers/dropdowns use primary color bg in neo-brutalism\n [SurfaceVariant.RAISED]: recipe({\n // `fill-*` mirrors `bg-*` so the Tooltip's Radix arrow (an SVG painted via\n // `fill`, inherited across Radix's arrow-wrapper span) matches the body.\n base: `bg-primary fill-primary text-primary-foreground ${NB.border} ${NB.radius} font-medium`,\n motion: {\n enter: NB_MOTION.enterDirectional,\n exit: NB_MOTION.exitFadeZoom,\n },\n }),\n\n // Reference dialog: \"bg-background border-2 border-border shadow-shadow rounded-base\"\n [SurfaceVariant.OVERLAY]: recipe({\n base: `bg-background text-foreground ${NB.border} ${NB.shadow} ${NB.radius}`,\n motion: {\n enter: NB_MOTION.enterFadeZoom + \" data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\n exit: NB_MOTION.exitFadeZoom + \" data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\",\n },\n }),\n\n // Reference sidebar inset: \"bg-secondary-background\"\n [SurfaceVariant.INSET]: recipe({\n base: `bg-secondary text-foreground ${NB.radius}`,\n }),\n\n // Reference sidebar: \"bg-secondary-background text-foreground\" + border-r-2\n [SurfaceVariant.SUNKEN]: recipe({\n base: \"bg-secondary text-foreground\",\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Tab panel is still loud, but drops the top border so it locks to the tabs.\n base: `bg-background text-foreground border-x-2 border-b-2 border-border ${NB.shadow} rounded-b-lg font-medium`,\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Page shell: flat poster background; children carry the hard frames.\n base: 'bg-background text-foreground font-medium',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: punchy callout, primary color plus the signature hard shadow.\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n motion: {\n enter: NB_MOTION.enterDirectional,\n exit: NB_MOTION.exitFadeZoom,\n },\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Reference: input.tsx, textarea.tsx, select trigger\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n // Reference input: \"bg-secondary-background border-2 border-border rounded-base text-sm font-base text-foreground placeholder:text-foreground/50\"\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-secondary ${NB.border} ${NB.radius} text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50 selection:bg-primary selection:text-primary-foreground`,\n states: { focus: NB.focus, disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\", invalid: NB.invalid },\n sizes: { md: \"h-10 px-3 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-3 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-4 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: NB_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n base: `bg-muted ${NB.border} ${NB.radius} text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50`,\n states: { focus: NB.focus, disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\", invalid: NB.invalid },\n sizes: { md: \"h-10 px-3 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-3 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-4 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: NB_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: `bg-transparent border-0 border-b-2 border-foreground rounded-none text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50`,\n states: { focus: \"focus-visible:border-primary\", disabled: \"disabled:opacity-[var(--opacity-disabled)]\", invalid: \"aria-invalid:border-destructive\" },\n sizes: { md: \"h-10 px-0 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-0 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-0 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: \"transition-[border-color] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n base: `${NB.border} ${NB.radius} shadow-[2px_2px_0px_0px_var(--foreground)]`,\n states: {\n focus: NB.focus,\n selected: `data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-foreground`,\n disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\",\n invalid: NB.invalid,\n },\n motion: { transition: \"transition-[color,box-shadow] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: `data-[state=unchecked]:bg-secondary ${NB.border} shadow-[2px_2px_0px_0px_var(--foreground)]`,\n states: {\n focus: NB.focus,\n selected: \"data-[state=checked]:bg-primary\",\n disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\",\n invalid: NB.invalid,\n },\n motion: { transition: \"transition-all duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Reference: badge.tsx — \"border-2 border-border rounded-base px-2.5 py-0.5 text-xs font-base\"\n// ============================================================\n\nconst nbIndicatorShared = {\n states: { hover: \"[a&]:hover:opacity-[var(--opacity-hover)]\", focus: NB.focus, invalid: NB.invalid },\n motion: { transition: NB_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({ base: `bg-secondary text-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.INFO]: recipe({ base: `bg-info text-info-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.SUCCESS]: recipe({ base: `bg-success text-success-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.WARNING]: recipe({ base: `bg-warning text-warning-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.ERROR]: recipe({ base: `bg-destructive text-destructive-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n};\n\n// ============================================================\n// SELECTABLE\n// Reference: tabs.tsx trigger, sidebar menu-button\n// TabsTrigger: \"rounded-base border-2 border-transparent ... data-[state=active]:bg-main data-[state=active]:text-main-foreground data-[state=active]:border-border\"\n// SidebarMenuButton: \"hover:bg-main hover:text-main-foreground hover:outline-border\"\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${NB.radius} text-sm font-medium outline-hidden border-2 border-transparent`,\n states: {\n hover: \"hover:bg-primary hover:text-primary-foreground hover:border-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n active: \"active:bg-primary active:text-primary-foreground\",\n selected: \"data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:border-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-foreground\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-7 text-xs\", md: \"h-8 text-sm\", lg: \"h-12 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n // Tailwind v4 only ships `border-{0,2,4,8}` utilities by default — `border-b-3`\n // would silently produce no underline. Use the arbitrary `[3px]` value so the\n // brutalist heavier-than-base underline (2px badges, 3px tab indicator) renders.\n base: \"rounded-none border-b-[3px] border-transparent text-sm font-medium outline-hidden\",\n states: {\n hover: \"hover:text-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: \"data-[state=active]:border-foreground data-[state=active]:text-foreground data-[state=active]:font-bold\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 text-xs pb-1\", md: \"h-9 text-sm pb-2\", lg: \"h-11 text-sm pb-3\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: `${NB.radius} border-2 border-transparent text-sm font-medium outline-hidden`,\n states: {\n hover: \"hover:border-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: `data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-foreground data-[state=active]:shadow-[2px_2px_0px_0px_var(--foreground)]`,\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 px-3 text-xs\", md: \"h-9 px-4 text-sm\", lg: \"h-11 px-5 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n // Same Tailwind v4 caveat as UNDERLINE: `border-s-3` is not a built-in utility\n // and would silently fail. Use arbitrary `[3px]` so the brutalist start-edge\n // indicator stays visually heavier than its 2px peers.\n base: `${NB.radius} text-sm font-medium outline-hidden border-s-[3px] border-transparent`,\n states: {\n hover: \"hover:bg-accent\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: \"data-[active=true]:border-foreground data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:font-bold\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 text-xs\", md: \"h-9 text-sm\", lg: \"h-12 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n};\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// Reference: dialog overlay \"bg-overlay\" = rgba(0,0,0,0.8)\n// Reference: skeleton \"border-2 border-border bg-secondary-background animate-pulse rounded-base\"\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n base: \"bg-black/80\",\n motion: {\n enter: NB_MOTION.backdropEnter,\n exit: NB_MOTION.backdropExit,\n },\n});\n\n// Reference: dropdown separator \"-mx-1 my-1 h-0.5 bg-border\"\nconst divider: Record<DividerVariant, UIBehaviorRecipe> = {\n [DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground shrink-0' }),\n // Nested-disclosure guide: the theme's own divider material, as a left edge.\n [DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s-2 border-foreground' }),\n};\n\n// Reference: skeleton \"animate-pulse rounded-base bg-secondary-background border-2 border-border\"\nconst skeleton: UIBehaviorRecipe = recipe({ base: `${SKELETON_NEUTRAL_TINT} ${NB.border} animate-pulse ${NB.radius} motion-reduce:animate-none` });\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: `text-foreground animate-spin ${NB.border} motion-reduce:animate-none`,\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: `bg-background/80 ${NB.border}`,\n motion: {\n enter: \"animate-in fade-in-0 duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none\",\n exit: \"animate-out fade-out-0 duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none\",\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// Reference: CardTitle \"font-heading leading-none\"\n// Reference: CardDescription \"text-sm font-base\"\n// Reference: DialogTitle \"text-lg font-heading leading-none tracking-tight\"\n// Reference: Label \"text-sm font-heading leading-none\"\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n // Neo-brutalist typography is loud by definition. Pump h1 a full step\n // above the default theme (text-5xl vs text-4xl) so headings land with\n // the same weight as the 2px borders + 4px hard shadows — anything\n // smaller looks visually outweighed by the chrome. `display` is wired\n // here for future hero/marketing surfaces; the current Heading component\n // looks up `h{level}`, so it's an opt-in via `getRecipe(...).sizes.display`\n // until a `Display`/`Hero` companion ships (tracked in audit doc).\n base: \"font-bold leading-none tracking-tight\",\n sizes: {\n display: \"text-6xl\",\n h1: \"text-5xl\",\n h2: \"text-3xl\",\n h3: \"text-2xl\",\n h4: \"text-xl\",\n h5: \"text-lg\",\n md: \"text-xl\",\n },\n }),\n [TypographyVariant.BODY]: recipe({\n base: \"text-foreground text-sm font-medium\",\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n // Reference: Label \"text-sm font-heading\"\n [TypographyVariant.LABEL]: recipe({\n base: \"font-bold text-sm leading-none\",\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n // Reference: DialogDescription \"text-sm font-base text-foreground\" (NOT muted — brutalism is direct)\n [TypographyVariant.DESCRIPTION]: recipe({\n base: \"text-foreground text-sm font-medium\",\n sizes: { sm: \"text-xs\", md: \"text-sm\" },\n }),\n [TypographyVariant.CODE]: recipe({\n base: `font-mono text-sm bg-secondary ${NB.border} border-foreground/20 ${NB.radius} px-1.5 py-0.5`,\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\n// ============================================================\n// SPACING\n//\n// Neo-brutalism is graphic and chunky: 2px borders and 4px hard\n// shadows add visual weight around every element. The spacing\n// scale accounts for this by:\n// - Enlarging card/container padding so content doesn't bump\n// into thick borders.\n// - Slightly increasing field/section gaps so adjacent shadows\n// never overlap.\n// - Item/element gaps stay close to default since inline items\n// don't carry their own shadow boxes.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.625rem', // 10px (default 8px) — room for shadow offsets\n [SpacingSemantic.ITEM]: '0.375rem', // 6px (default 4px) — slightly roomier list items\n [SpacingSemantic.GROUP]: '0.875rem', // 14px (default 12px) — groups stand out more\n [SpacingSemantic.FIELD]: '1.25rem', // 20px (default 16px) — shadow-friendly field gaps\n [SpacingSemantic.SECTION]: '1.75rem', // 28px (default 24px) — sections breathe around shadows\n [SpacingSemantic.REGION]: '2.5rem', // 40px (default 32px) — regions clearly separated\n [SpacingSemantic.CARD]: '1.25rem', // 20px (default 16px) — internal padding clears 2px border\n [SpacingSemantic.CONTAINER]: '1.75rem', // 28px (default 24px) — page padding accommodates shadow\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — palette + font overrides\n//\n// Neo-brutalism is defined as much by its palette/typography as by its\n// borders and shadows. Without these overrides, the theme inherited the\n// host's corporate primary (a soft sky blue) and the host font stack\n// (Inter), which fought the brutalist DNA — heavy borders + hard shadows\n// against a polite, conventional palette read as \"shadcn with extra\n// outlines\" rather than the neobrutalism.dev v3 reference.\n//\n// `requiredCustomTokens` is consumed by UIContext at theme-apply time\n// (see `mergeThemeRequiredCustomTokens` + `applyCustomTokens`), which\n// writes each entry as `--<key>: <value>` onto `document.documentElement`\n// via `style.setProperty`. Inline-style precedence (1,0,0,0) beats the\n// `:root` rules emitted by the design-token CSS generator (0,1,0), so\n// these declarations override the standard `--primary`, `--background`,\n// etc. tokens for the lifetime of the theme.\n//\n// Palette is derived from neobrutalism.dev v3 reference variables:\n// --main: #88aaee (light) / #4a7dde (dark) → primary brutalist blue\n// --bg: #f5f5f5 (light) / #272933 (dark) → page background\n// --text: #000 (light) / #fff (dark) → high-contrast foreground\n// --border: same as text → \"drawn-with-marker\" outlines\n// ============================================================\n\nfunction colorOverride(lightOklch: string, darkOklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.LIGHT_DARK,\n lightValue: lightOklch,\n darkValue: darkOklch,\n };\n}\n\nfunction colorSingle(oklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.SINGLE,\n value: oklch,\n };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.STRING,\n modeStrategy: DesignTokenModeStrategy.SINGLE,\n value,\n };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Brutalist blue (~#88aaee in light, ~#7da0e8 in dark) — the chrome\n // accent on which cards, popovers, dropdowns and tooltips paint themselves.\n //\n // Both lightness values are deliberately above L≈0.68 so the always-black\n // primary-foreground keeps a comfortable ≥4.5:1 contrast (WCAG AA body).\n // An earlier draft used L=0.58 in dark, which dipped to ~3.9:1 — the\n // brutalist DNA explicitly demands \"high contrast everything\", so we trade\n // a touch of dark-mode chroma for legibility instead of switching the text\n // to white (which would soften the brutalist look).\n primary: colorOverride('0.74 0.115 264', '0.70 0.135 264'),\n // Pure black on the chrome accent — brutalism is high contrast, not soft.\n 'primary-foreground': colorSingle('0 0 0'),\n\n // === Page background: warm off-white in light, deep slate in dark\n // (matches neobrutalism.dev `--bg` / `--bg-dark` variables).\n background: colorOverride('0.965 0 0', '0.272 0.013 280'),\n // === Body text: pure black on light, pure white on dark — high contrast\n // is non-negotiable for the brutalist style.\n foreground: colorOverride('0 0 0', '1 0 0'),\n\n // === Borders + focus rings: same as foreground so the 2px outlines read\n // as \"drawn with a marker\" and the focus ring picks up the same color.\n border: colorOverride('0 0 0', '1 0 0'),\n ring: colorOverride('0 0 0', '1 0 0'),\n input: colorOverride('0 0 0', '1 0 0'),\n\n // === Secondary surface: pure white in light (the classic \"white card\"),\n // and the same deep slate as bg in dark for visual continuity.\n secondary: colorOverride('1 0 0', '0.21 0.013 280'),\n 'secondary-foreground': colorOverride('0 0 0', '1 0 0'),\n\n // === Muted backgrounds: a faint blue tint of the primary so muted\n // surfaces stay \"in the family\" instead of going neutral grey.\n muted: colorOverride('0.95 0.015 264', '0.32 0.02 280'),\n 'muted-foreground': colorOverride('0.30 0.02 264', '0.78 0.02 264'),\n\n // === Destructive: hot brutalist red (#ff3838) — the OG \"stop\" color, not\n // the muted desaturated red the corporate default ships.\n destructive: colorOverride('0.65 0.26 27', '0.62 0.26 27'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Accent (the rotating gradient stops): keep them in the brutalist\n // blue family rather than violet/blue/pink — uniform color story. Dark\n // value matches `primary` (0.70) so the gradient stays bright on dark\n // backgrounds where ACCENT chrome is most visible.\n 'accent-gradient-from': colorOverride('0.74 0.115 264', '0.70 0.135 264'),\n 'accent-gradient-via': colorOverride('0.85 0.18 90', '0.80 0.20 90'), // electric yellow midpoint\n 'accent-gradient-to': colorOverride('0.62 0.24 0', '0.58 0.26 0'), // hot pink endpoint\n\n // === Font stack: prefer architectural / monospaced-leaning families that\n // ship with most OSes, falling through to system. The brutalist DNA still\n // mostly comes from the borders + shadows + colors, but a more rigid\n // letterform reinforces it. Hosts wanting full fidelity (Public Sans,\n // Archivo Black, IBM Plex Sans) should @font-face them in app CSS — the\n // declarations below will pick them up automatically once available.\n 'font-body': stringSingle(\"'Public Sans', 'IBM Plex Sans', Inter, ui-sans-serif, system-ui, sans-serif\"),\n 'font-heading': stringSingle(\"'Archivo Black', 'Public Sans', 'IBM Plex Sans', Inter, ui-sans-serif, system-ui, sans-serif\"),\n};\n\nexport const neoBrutalistTheme: ComponentStyleTheme = {\n id: 'neo-brutalist',\n name: 'Neo-Brutalist',\n description: 'Based on neobrutalism.dev v3. 2px borders, 4px hard-offset shadows, 5px radius, 700/500 font weight split, heavy 80% overlay, primary-colored dropdowns/tooltips. Ships its own brutalist palette (#88aaee chrome blue, pure black/white duotone, hot red destructive) and architectural font stack via requiredCustomTokens — host palette/fonts are fully overridden when this theme is active.',\n\n requiredCustomTokens,\n spacing,\n\n interactive,\n surface,\n formControl,\n indicator,\n selectable,\n overlayBackdrop,\n divider,\n skeleton,\n loadingSpinner,\n loadingOverlay,\n typography,\n radius: '5px',\n backgroundLayer: undefined,\n chartStyle: {\n colorShadeLight: 600,\n colorShadeDark: 500,\n gridPadding: { top: 30, right: 20, bottom: 30, left: 60 },\n axis: { showAxisLine: true, showTicks: true, splitLineType: 'solid', hideOverlap: true, yAxisNameLocation: 'middle', yAxisNameGap: 50 },\n tooltip: { extraCss: 'border: 2px solid currentColor; box-shadow: 4px 4px 0 currentColor;', borderWidth: 0 },\n animation: { enabled: true, durationMs: 100, easing: 'linear' },\n series: { lineWidth: 3, pointSize: 6, areaOpacity: 0.4, barBorderRadius: 0, pieBorderWidth: 3 },\n typography: { titleFontSize: 18, titleFontWeight: 800, subtitleFontSize: 14, legendFontSize: 13, tooltipFontSize: 13, axisLabelFontSize: 12, axisNameFontSize: 13 },\n emphasis: { shadowBlur: 0, shadowColor: 'transparent', shadowOffsetX: 0 },\n responsive: { smallMaxWidth: 400, mediumMaxWidth: 799, smallGridPadding: { top: 20, right: 10, bottom: 20, left: 30 }, mediumGridPadding: { left: 50, right: 20, bottom: 40 }, hideLegendOnSmall: true, smallAxisLabelRotate: 45, smallFontSize: 11, mediumFontSize: 12 },\n multiSeriesLegendBottomPadding: 50,\n },\n};\n"]}
1
+ {"version":3,"file":"neo-brutalist.theme.js","sourceRoot":"","sources":["../../../../src/themes/neo-brutalist.theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentStyleTheme, DesignTokenConfiguration } from '@wildo-ai/presets-components-models';\nimport {\n DividerVariant,\n InteractiveVariant,\n SurfaceVariant,\n FormControlVariant,\n IndicatorVariant,\n SelectableVariant,\n TypographyVariant,\n SpacingSemantic,\n DesignTokenModeStrategy,\n DesignTokenValueType,\n SKELETON_NEUTRAL_TINT,\n} from '@wildo-ai/presets-components-models';\nimport type { UIBehaviorRecipe } from '@wildo-ai/presets-components-models';\n\nfunction recipe(r: Partial<UIBehaviorRecipe> & { base: string }): UIBehaviorRecipe {\n return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };\n}\n\n// ============================================================\n// Neo-Brutalist theme\n//\n// Extracted from neobrutalism.dev v3 reference repo (exact classes).\n//\n// Design tokens (from reference CSS variables):\n// --border-radius: 5px → rounded-lg (via global --radius token)\n// --shadow: 4px 4px 0px 0px var(--border) → shadow-[4px_4px_0px_0px_var(--foreground)]\n// --heading-font-weight: 700 → font-bold\n// --base-font-weight: 500 → font-medium\n// border: 2px solid → border-2 border-foreground\n// overlay: rgba(0,0,0,0.8) → bg-black/80\n//\n// Hover pattern: translate toward shadow + flatten (press-in)\n// hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none\n//\n// Key differences from shadcn:\n// - Card bg = primary (main) color, not white\n// - Select/dropdown bg = primary color\n// - Tooltip bg = primary color\n// - Close buttons: opacity-100 (no subtlety)\n// - Sidebar header/footer: border-b-2/border-t-2\n// - Accordion trigger: bg-primary, text-primary-foreground\n// - Skeleton: border-2 on skeleton\n// - Progress bar indicator: border-r-2\n// ============================================================\n\n// -- Shared constants matching reference --\n\nconst NB = {\n // References the global --radius token (set to 5px by theme.radius below).\n // Always use rounded-* tiers, never hardcoded rounded-[Npx].\n radius: \"rounded-lg\",\n border: \"border-2 border-foreground\",\n shadow: \"shadow-[4px_4px_0px_0px_var(--foreground)]\",\n hover: \"hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none\",\n focus: \"focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)] aria-disabled:cursor-not-allowed aria-disabled:opacity-[var(--opacity-disabled)]\",\n invalid: \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n};\n\n// ============================================================\n// MOTION PERSONALITY — Neo-Brutalist\n// ============================================================\n// Hover/focus : INSTANT (50ms) + LINEAR → abrupt, no polish.\n// The 4px translate-x/-y on\n// press is THE motion (the\n// button \"lands\" against\n// the hard-offset shadow).\n// Overlay enter: FAST (150ms) + LINEAR → directional slide-2.\n// Overlay exit : INSTANT (50ms) + LINEAR → close = vanish (matches\n// the abrupt press feedback).\n// Backdrop : FAST/INSTANT + LINEAR → consistent.\n// Gestures : NONE — CSS translate IS the press feedback. Adding\n// motion.dev springs would soften the \"thud\" that is\n// the brutalist signature.\n//\n// Why LINEAR explicitly: previously overlay/backdrop omitted ease-,\n// so Tailwind/browser fell back to the soft `ease` curve — quietly\n// undermining the abrupt brutalist personality. TR-14 motion-coherence\n// pass adds explicit LINEAR easing to every overlay/backdrop.\n// ============================================================\nconst NB_MOTION = {\n interactive: \"transition-[background-color,color,border-color,box-shadow,transform] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n formControl: \"transition-[color,border-color,box-shadow] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n selectable: \"transition-[background-color,color,border-color,outline-color] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\",\n enterFadeZoom: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none\",\n exitFadeZoom: \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none\",\n enterDirectional: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 motion-reduce:data-[state=open]:animate-none\",\n backdropEnter: \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none\",\n backdropExit: \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none\",\n};\n\n// ============================================================\n// INTERACTIVE\n// Reference: button.tsx variants\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: \"h-8 px-2.5 text-xs gap-1 pointer-coarse:min-h-10\",\n sm: \"h-9 px-3 pointer-coarse:min-h-11\",\n md: \"h-10 px-4 py-2 pointer-coarse:min-h-11\",\n lg: \"h-11 px-8 pointer-coarse:min-h-11\",\n icon: \"size-10 pointer-coarse:min-h-11 pointer-coarse:min-w-11\",\n \"icon-sm\": \"size-8 pointer-coarse:min-h-9 pointer-coarse:min-w-9\",\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n // Reference variant: \"default\" → bg-main text-main-foreground shadow-shadow hover:shift\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"neutral\" → bg-bw (secondary bg) text-text shadow-shadow hover:shift\n [InteractiveVariant.SECONDARY]: recipe({\n base: `bg-secondary text-secondary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"reverse\" → bg-main, NO shadow, gains shadow on hover\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:-translate-x-[4px] hover:-translate-y-[4px] hover:shadow-[4px_4px_0px_0px_var(--foreground)]\",\n active: \"active:translate-x-0 active:translate-y-0 active:shadow-none\",\n focus: NB.focus,\n selected: \"data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground data-[state=on]:shadow-[2px_2px_0px_0px_var(--foreground)]\",\n disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Destructive — same pattern as primary but destructive colors\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium text-sm cursor-pointer`,\n states: { hover: NB.hover, active: \"active:translate-x-[4px] active:translate-y-[4px] active:shadow-none\", focus: NB.focus, highlighted: \"focus:bg-destructive focus:text-destructive-foreground focus:border-foreground\", disabled: NB.disabled, invalid: NB.invalid },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n // Reference variant: \"noShadow\" → bg-main, border, no shadow, no hover shift\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${NB.border} border-transparent ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:bg-primary hover:text-primary-foreground hover:border-foreground\",\n active: \"active:bg-primary/80 active:text-primary-foreground\",\n focus: NB.focus,\n /* SELECTED IS NOT HOVER: this theme says \"chosen\" with its hard offset shadow, exactly\n * as its own OUTLINE variant already does. Without it, hover and selected were the\n * same three classes. */\n selected: \"data-[state=on]:bg-primary data-[state=on]:text-primary-foreground data-[state=on]:border-foreground data-[state=on]:shadow-[2px_2px_0px_0px_var(--foreground)]\",\n highlighted: \"focus:bg-primary focus:text-primary-foreground focus:border-foreground\",\n open: \"data-[state=open]:bg-primary data-[state=open]:text-primary-foreground data-[state=open]:border-foreground\",\n disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: NB_MOTION.interactive },\n }),\n\n [InteractiveVariant.LINK]: recipe({\n base: `text-primary underline underline-offset-4 decoration-2 ${NB.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: \"hover:decoration-foreground\",\n active: \"active:text-primary/80\",\n focus: NB.focus, disabled: NB.disabled, invalid: NB.invalid,\n },\n sizes: { xs: \"h-8 px-2.5 text-xs gap-1 pointer-coarse:min-h-10\", sm: \"h-9 px-3 pointer-coarse:min-h-11\", md: \"h-10 px-4 py-2 pointer-coarse:min-h-11\", lg: \"h-11 px-8 pointer-coarse:min-h-11\", icon: \"size-10 pointer-coarse:min-h-11 pointer-coarse:min-w-11\", \"icon-sm\": \"size-8 pointer-coarse:min-h-9 pointer-coarse:min-w-9\" },\n motion: { transition: NB_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // TT-2: Reuse the same theme-resolvable accent-gradient stops as the\n // default theme so tenant rebrands flow through (was hardcoded\n // violet/pink/amber). The neo-brutalist motion + border treatment is\n // unchanged.\n base: `bg-primary text-primary-foreground font-black ${NB.border} shadow-[4px_4px_0px_0px_var(--foreground)] bg-[length:300%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_4s_steps(8)_infinite] motion-reduce:animate-none ${NB.radius} text-sm cursor-pointer`,\n states: {\n hover: 'hover:translate-x-[4px] hover:translate-y-[4px] hover:shadow-none',\n active: 'active:translate-x-[4px] active:translate-y-[4px] active:shadow-none',\n focus: 'focus-visible:ring-2 focus-visible:ring-foreground focus-visible:ring-offset-2',\n disabled: NB.disabled,\n invalid: NB.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition: 'transition-[transform,shadow,background-position] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// SURFACE\n// Reference: card.tsx, dialog.tsx, select.tsx (content), tooltip.tsx\n// SURFACE PERSONALITY — poster-board panels: hard borders, hard shadows,\n// saturated callouts. New variants keep the same physical cut-paper logic.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n // Reference card: \"bg-background text-foreground border-2 border-border shadow-shadow rounded-base font-base\"\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n }),\n\n // Reference card with a lifted fill: hard border + offset shadow over the\n // elevated `surface-raised` so the card reads against the page. Always painted.\n [SurfaceVariant.CARD]: recipe({\n base: `bg-surface-raised text-surface-raised-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n }),\n\n // Reference dropdown/tooltip: \"bg-main text-main-foreground border-2 border-border rounded-base\"\n // Popovers/dropdowns use primary color bg in neo-brutalism\n [SurfaceVariant.RAISED]: recipe({\n // `fill-*` mirrors `bg-*` so the Tooltip's Radix arrow (an SVG painted via\n // `fill`, inherited across Radix's arrow-wrapper span) matches the body.\n base: `bg-primary fill-primary text-primary-foreground ${NB.border} ${NB.radius} font-medium`,\n motion: {\n enter: NB_MOTION.enterDirectional,\n exit: NB_MOTION.exitFadeZoom,\n },\n }),\n\n // Reference dialog: \"bg-background border-2 border-border shadow-shadow rounded-base\"\n [SurfaceVariant.OVERLAY]: recipe({\n base: `bg-background text-foreground ${NB.border} ${NB.shadow} ${NB.radius}`,\n motion: {\n enter: NB_MOTION.enterFadeZoom + \" data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\n exit: NB_MOTION.exitFadeZoom + \" data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\",\n },\n }),\n\n // Reference sidebar inset: \"bg-secondary-background\"\n [SurfaceVariant.INSET]: recipe({\n base: `bg-secondary text-foreground ${NB.radius}`,\n }),\n\n // Reference sidebar: \"bg-secondary-background text-foreground\" + border-r-2\n [SurfaceVariant.SUNKEN]: recipe({\n base: \"bg-secondary text-foreground\",\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Tab panel is still loud, but drops the top border so it locks to the tabs.\n base: `bg-background text-foreground border-x-2 border-b-2 border-border ${NB.shadow} rounded-b-lg font-medium`,\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Page shell: flat poster background; children carry the hard frames.\n base: 'bg-background text-foreground font-medium',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: punchy callout, primary color plus the signature hard shadow.\n base: `bg-primary text-primary-foreground ${NB.border} ${NB.shadow} ${NB.radius} font-medium`,\n motion: {\n enter: NB_MOTION.enterDirectional,\n exit: NB_MOTION.exitFadeZoom,\n },\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Reference: input.tsx, textarea.tsx, select trigger\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n // Reference input: \"bg-secondary-background border-2 border-border rounded-base text-sm font-base text-foreground placeholder:text-foreground/50\"\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-secondary ${NB.border} ${NB.radius} text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50 selection:bg-primary selection:text-primary-foreground`,\n states: { focus: NB.focus, disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\", invalid: NB.invalid },\n sizes: { md: \"h-10 px-3 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-3 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-4 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: NB_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n base: `bg-muted ${NB.border} ${NB.radius} text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50`,\n states: { focus: NB.focus, disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\", invalid: NB.invalid },\n sizes: { md: \"h-10 px-3 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-3 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-4 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: NB_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: `bg-transparent border-0 border-b-2 border-foreground rounded-none text-base md:text-sm font-medium text-foreground placeholder:text-foreground/50`,\n states: { focus: \"focus-visible:border-primary\", disabled: \"disabled:opacity-[var(--opacity-disabled)]\", invalid: \"aria-invalid:border-destructive\" },\n sizes: { md: \"h-10 px-0 py-2 pointer-coarse:min-h-11\", sm: \"h-9 px-0 text-sm pointer-coarse:min-h-11\", lg: \"h-12 px-0 py-2 pointer-coarse:min-h-12\" },\n motion: { transition: \"transition-[border-color] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n base: `${NB.border} ${NB.radius} shadow-[2px_2px_0px_0px_var(--foreground)]`,\n states: {\n focus: NB.focus,\n selected: `data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-foreground`,\n disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\",\n invalid: NB.invalid,\n },\n motion: { transition: \"transition-[color,box-shadow] duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: `data-[state=unchecked]:bg-secondary ${NB.border} shadow-[2px_2px_0px_0px_var(--foreground)]`,\n states: {\n focus: NB.focus,\n selected: \"data-[state=checked]:bg-primary\",\n disabled: \"disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]\",\n invalid: NB.invalid,\n },\n motion: { transition: \"transition-all duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none\" },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Reference: badge.tsx — \"border-2 border-border rounded-base px-2.5 py-0.5 text-xs font-base\"\n// ============================================================\n\nconst nbIndicatorShared = {\n states: { hover: \"[a&]:hover:opacity-[var(--opacity-hover)]\", focus: NB.focus, invalid: NB.invalid },\n motion: { transition: NB_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({ base: `bg-secondary text-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.INFO]: recipe({ base: `bg-info text-info-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.SUCCESS]: recipe({ base: `bg-success text-success-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.WARNING]: recipe({ base: `bg-warning text-warning-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n [IndicatorVariant.ERROR]: recipe({ base: `bg-destructive text-destructive-foreground ${NB.border} ${NB.radius} px-2.5 py-0.5 text-xs font-medium`, ...nbIndicatorShared }),\n};\n\n// ============================================================\n// SELECTABLE\n// Reference: tabs.tsx trigger, sidebar menu-button\n// TabsTrigger: \"rounded-base border-2 border-transparent ... data-[state=active]:bg-main data-[state=active]:text-main-foreground data-[state=active]:border-border\"\n// SidebarMenuButton: \"hover:bg-main hover:text-main-foreground hover:outline-border\"\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${NB.radius} text-sm font-medium outline-hidden border-2 border-transparent`,\n states: {\n hover: \"hover:bg-primary hover:text-primary-foreground hover:border-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n active: \"active:bg-primary active:text-primary-foreground\",\n selected: \"data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:border-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-foreground\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-7 text-xs\", md: \"h-8 text-sm\", lg: \"h-12 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n // Tailwind v4 only ships `border-{0,2,4,8}` utilities by default — `border-b-3`\n // would silently produce no underline. Use the arbitrary `[3px]` value so the\n // brutalist heavier-than-base underline (2px badges, 3px tab indicator) renders.\n base: \"rounded-none border-b-[3px] border-transparent text-sm font-medium outline-hidden\",\n states: {\n hover: \"hover:text-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: \"data-[state=active]:border-foreground data-[state=active]:text-foreground data-[state=active]:font-bold\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 text-xs pb-1\", md: \"h-9 text-sm pb-2\", lg: \"h-11 text-sm pb-3\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: `${NB.radius} border-2 border-transparent text-sm font-medium outline-hidden`,\n states: {\n hover: \"hover:border-foreground\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: `data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-foreground data-[state=active]:shadow-[2px_2px_0px_0px_var(--foreground)]`,\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 px-3 text-xs\", md: \"h-9 px-4 text-sm\", lg: \"h-11 px-5 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n // Same Tailwind v4 caveat as UNDERLINE: `border-s-3` is not a built-in utility\n // and would silently fail. Use arbitrary `[3px]` so the brutalist start-edge\n // indicator stays visually heavier than its 2px peers.\n base: `${NB.radius} text-sm font-medium outline-hidden border-s-[3px] border-transparent`,\n states: {\n hover: \"hover:bg-accent\",\n focus: \"focus-visible:ring-2 focus-visible:ring-foreground\",\n selected: \"data-[active=true]:border-foreground data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:font-bold\",\n disabled: \"disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]\",\n },\n sizes: { sm: \"h-8 text-xs\", md: \"h-9 text-sm\", lg: \"h-12 text-sm\" },\n motion: { transition: NB_MOTION.selectable },\n }),\n};\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// Reference: dialog overlay \"bg-overlay\" = rgba(0,0,0,0.8)\n// Reference: skeleton \"border-2 border-border bg-secondary-background animate-pulse rounded-base\"\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n base: \"bg-black/80\",\n motion: {\n enter: NB_MOTION.backdropEnter,\n exit: NB_MOTION.backdropExit,\n },\n});\n\n// Reference: dropdown separator \"-mx-1 my-1 h-0.5 bg-border\"\nconst divider: Record<DividerVariant, UIBehaviorRecipe> = {\n [DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground shrink-0' }),\n // Nested-disclosure guide: the theme's own divider material, as a left edge.\n [DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s-2 border-foreground' }),\n};\n\n// Reference: skeleton \"animate-pulse rounded-base bg-secondary-background border-2 border-border\"\nconst skeleton: UIBehaviorRecipe = recipe({ base: `${SKELETON_NEUTRAL_TINT} ${NB.border} animate-pulse ${NB.radius} motion-reduce:animate-none` });\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: `text-foreground animate-spin ${NB.border} motion-reduce:animate-none`,\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: `bg-background/80 ${NB.border}`,\n motion: {\n enter: \"animate-in fade-in-0 duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none\",\n exit: \"animate-out fade-out-0 duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none\",\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// Reference: CardTitle \"font-heading leading-none\"\n// Reference: CardDescription \"text-sm font-base\"\n// Reference: DialogTitle \"text-lg font-heading leading-none tracking-tight\"\n// Reference: Label \"text-sm font-heading leading-none\"\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n // Neo-brutalist typography is loud by definition. Pump h1 a full step\n // above the default theme (text-5xl vs text-4xl) so headings land with\n // the same weight as the 2px borders + 4px hard shadows — anything\n // smaller looks visually outweighed by the chrome. `display` is wired\n // here for future hero/marketing surfaces; the current Heading component\n // looks up `h{level}`, so it's an opt-in via `getRecipe(...).sizes.display`\n // until a `Display`/`Hero` companion ships (tracked in audit doc).\n base: \"font-bold leading-none tracking-tight\",\n sizes: {\n display: \"text-6xl\",\n h1: \"text-5xl\",\n h2: \"text-3xl\",\n h3: \"text-2xl\",\n h4: \"text-xl\",\n h5: \"text-lg\",\n md: \"text-xl\",\n },\n }),\n [TypographyVariant.BODY]: recipe({\n base: \"text-foreground text-sm font-medium\",\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n // Reference: Label \"text-sm font-heading\"\n [TypographyVariant.LABEL]: recipe({\n base: \"font-bold text-sm leading-none\",\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n // Reference: DialogDescription \"text-sm font-base text-foreground\" (NOT muted — brutalism is direct)\n [TypographyVariant.DESCRIPTION]: recipe({\n base: \"text-foreground text-sm font-medium\",\n sizes: { sm: \"text-xs\", md: \"text-sm\" },\n }),\n [TypographyVariant.EYEBROW]: recipe({\n base: \"text-foreground text-xs font-bold uppercase tracking-widest\",\n sizes: { sm: \"text-2xs\", md: \"text-xs\" },\n }),\n [TypographyVariant.CODE]: recipe({\n base: `font-mono text-sm bg-secondary ${NB.border} border-foreground/20 ${NB.radius} px-1.5 py-0.5`,\n sizes: { sm: \"text-xs\", md: \"text-sm\", lg: \"text-base\" },\n }),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\n// ============================================================\n// SPACING\n//\n// Neo-brutalism is graphic and chunky: 2px borders and 4px hard\n// shadows add visual weight around every element. The spacing\n// scale accounts for this by:\n// - Enlarging card/container padding so content doesn't bump\n// into thick borders.\n// - Slightly increasing field/section gaps so adjacent shadows\n// never overlap.\n// - Item/element gaps stay close to default since inline items\n// don't carry their own shadow boxes.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.625rem', // 10px (default 8px) — room for shadow offsets\n [SpacingSemantic.ITEM]: '0.375rem', // 6px (default 4px) — slightly roomier list items\n [SpacingSemantic.GROUP]: '0.875rem', // 14px (default 12px) — groups stand out more\n [SpacingSemantic.FIELD]: '1.25rem', // 20px (default 16px) — shadow-friendly field gaps\n [SpacingSemantic.SECTION]: '1.75rem', // 28px (default 24px) — sections breathe around shadows\n [SpacingSemantic.REGION]: '2.5rem', // 40px (default 32px) — regions clearly separated\n [SpacingSemantic.CARD]: '1.25rem', // 20px (default 16px) — internal padding clears 2px border\n [SpacingSemantic.CONTAINER]: '1.75rem', // 28px (default 24px) — page padding accommodates shadow\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — palette + font overrides\n//\n// Neo-brutalism is defined as much by its palette/typography as by its\n// borders and shadows. Without these overrides, the theme inherited the\n// host's corporate primary (a soft sky blue) and the host font stack\n// (Inter), which fought the brutalist DNA — heavy borders + hard shadows\n// against a polite, conventional palette read as \"shadcn with extra\n// outlines\" rather than the neobrutalism.dev v3 reference.\n//\n// `requiredCustomTokens` is consumed by UIContext at theme-apply time\n// (see `mergeThemeRequiredCustomTokens` + `applyCustomTokens`), which\n// writes each entry as `--<key>: <value>` onto `document.documentElement`\n// via `style.setProperty`. Inline-style precedence (1,0,0,0) beats the\n// `:root` rules emitted by the design-token CSS generator (0,1,0), so\n// these declarations override the standard `--primary`, `--background`,\n// etc. tokens for the lifetime of the theme.\n//\n// Palette is derived from neobrutalism.dev v3 reference variables:\n// --main: #88aaee (light) / #4a7dde (dark) → primary brutalist blue\n// --bg: #f5f5f5 (light) / #272933 (dark) → page background\n// --text: #000 (light) / #fff (dark) → high-contrast foreground\n// --border: same as text → \"drawn-with-marker\" outlines\n// ============================================================\n\nfunction colorOverride(lightOklch: string, darkOklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.LIGHT_DARK,\n lightValue: lightOklch,\n darkValue: darkOklch,\n };\n}\n\nfunction colorSingle(oklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.SINGLE,\n value: oklch,\n };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.STRING,\n modeStrategy: DesignTokenModeStrategy.SINGLE,\n value,\n };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Brutalist blue (~#88aaee in light, ~#7da0e8 in dark) — the chrome\n // accent on which cards, popovers, dropdowns and tooltips paint themselves.\n //\n // Both lightness values are deliberately above L≈0.68 so the always-black\n // primary-foreground keeps a comfortable ≥4.5:1 contrast (WCAG AA body).\n // An earlier draft used L=0.58 in dark, which dipped to ~3.9:1 — the\n // brutalist DNA explicitly demands \"high contrast everything\", so we trade\n // a touch of dark-mode chroma for legibility instead of switching the text\n // to white (which would soften the brutalist look).\n primary: colorOverride('0.74 0.115 264', '0.70 0.135 264'),\n // Pure black on the chrome accent — brutalism is high contrast, not soft.\n 'primary-foreground': colorSingle('0 0 0'),\n\n // === Page background: warm off-white in light, deep slate in dark\n // (matches neobrutalism.dev `--bg` / `--bg-dark` variables).\n background: colorOverride('0.965 0 0', '0.272 0.013 280'),\n // === Body text: pure black on light, pure white on dark — high contrast\n // is non-negotiable for the brutalist style.\n foreground: colorOverride('0 0 0', '1 0 0'),\n\n // === Borders + focus rings: same as foreground so the 2px outlines read\n // as \"drawn with a marker\" and the focus ring picks up the same color.\n border: colorOverride('0 0 0', '1 0 0'),\n ring: colorOverride('0 0 0', '1 0 0'),\n input: colorOverride('0 0 0', '1 0 0'),\n\n // === Secondary surface: pure white in light (the classic \"white card\"),\n // and the same deep slate as bg in dark for visual continuity.\n secondary: colorOverride('1 0 0', '0.21 0.013 280'),\n 'secondary-foreground': colorOverride('0 0 0', '1 0 0'),\n\n // === Muted backgrounds: a faint blue tint of the primary so muted\n // surfaces stay \"in the family\" instead of going neutral grey.\n muted: colorOverride('0.95 0.015 264', '0.32 0.02 280'),\n 'muted-foreground': colorOverride('0.30 0.02 264', '0.78 0.02 264'),\n\n // === Destructive: hot brutalist red (#ff3838) — the OG \"stop\" color, not\n // the muted desaturated red the corporate default ships.\n destructive: colorOverride('0.65 0.26 27', '0.62 0.26 27'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Accent (the rotating gradient stops): keep them in the brutalist\n // blue family rather than violet/blue/pink — uniform color story. Dark\n // value matches `primary` (0.70) so the gradient stays bright on dark\n // backgrounds where ACCENT chrome is most visible.\n 'accent-gradient-from': colorOverride('0.74 0.115 264', '0.70 0.135 264'),\n 'accent-gradient-via': colorOverride('0.85 0.18 90', '0.80 0.20 90'), // electric yellow midpoint\n 'accent-gradient-to': colorOverride('0.62 0.24 0', '0.58 0.26 0'), // hot pink endpoint\n\n // === Font stack: prefer architectural / monospaced-leaning families that\n // ship with most OSes, falling through to system. The brutalist DNA still\n // mostly comes from the borders + shadows + colors, but a more rigid\n // letterform reinforces it. Hosts wanting full fidelity (Public Sans,\n // Archivo Black, IBM Plex Sans) should @font-face them in app CSS — the\n // declarations below will pick them up automatically once available.\n 'font-body': stringSingle(\"'Public Sans', 'IBM Plex Sans', Inter, ui-sans-serif, system-ui, sans-serif\"),\n 'font-heading': stringSingle(\"'Archivo Black', 'Public Sans', 'IBM Plex Sans', Inter, ui-sans-serif, system-ui, sans-serif\"),\n};\n\nexport const neoBrutalistTheme: ComponentStyleTheme = {\n id: 'neo-brutalist',\n name: 'Neo-Brutalist',\n description: 'Based on neobrutalism.dev v3. 2px borders, 4px hard-offset shadows, 5px radius, 700/500 font weight split, heavy 80% overlay, primary-colored dropdowns/tooltips. Ships its own brutalist palette (#88aaee chrome blue, pure black/white duotone, hot red destructive) and architectural font stack via requiredCustomTokens — host palette/fonts are fully overridden when this theme is active.',\n\n requiredCustomTokens,\n spacing,\n\n interactive,\n surface,\n formControl,\n indicator,\n selectable,\n overlayBackdrop,\n divider,\n skeleton,\n loadingSpinner,\n loadingOverlay,\n typography,\n radius: '5px',\n backgroundLayer: undefined,\n chartStyle: {\n colorShadeLight: 600,\n colorShadeDark: 500,\n gridPadding: { top: 30, right: 20, bottom: 30, left: 60 },\n axis: { showAxisLine: true, showTicks: true, splitLineType: 'solid', hideOverlap: true, yAxisNameLocation: 'middle', yAxisNameGap: 50 },\n tooltip: { extraCss: 'border: 2px solid currentColor; box-shadow: 4px 4px 0 currentColor;', borderWidth: 0 },\n animation: { enabled: true, durationMs: 100, easing: 'linear' },\n series: { lineWidth: 3, pointSize: 6, areaOpacity: 0.4, barBorderRadius: 0, pieBorderWidth: 3 },\n typography: { titleFontSize: 18, titleFontWeight: 800, subtitleFontSize: 14, legendFontSize: 13, tooltipFontSize: 13, axisLabelFontSize: 12, axisNameFontSize: 13 },\n emphasis: { shadowBlur: 0, shadowColor: 'transparent', shadowOffsetX: 0 },\n responsive: { smallMaxWidth: 400, mediumMaxWidth: 799, smallGridPadding: { top: 20, right: 10, bottom: 20, left: 30 }, mediumGridPadding: { left: 50, right: 20, bottom: 40 }, hideLegendOnSmall: true, smallAxisLabelRotate: 45, smallFontSize: 11, mediumFontSize: 12 },\n multiSeriesLegendBottomPadding: 50,\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.theme.d.ts","sourceRoot":"","sources":["../../../src/themes/terminal.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAC;AAuqBzG,eAAO,MAAM,aAAa,EAAE,mBAgE3B,CAAC"}
1
+ {"version":3,"file":"terminal.theme.d.ts","sourceRoot":"","sources":["../../../../src/themes/terminal.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAC;AAqrBzG,eAAO,MAAM,aAAa,EAAE,mBAgE3B,CAAC"}
@@ -32,10 +32,19 @@ function recipe(r) {
32
32
  const TM = {
33
33
  hairline: 'border border-foreground/15',
34
34
  edge: 'border border-foreground/20',
35
+ /*
36
+ * A TEXT INPUT's edge, as distinct from `edge`. An input's border is its only cue that it is an
37
+ * input, so it owes 3:1 against the page (WCAG 2.1 SC 1.4.11); `edge` is this theme's foreground
38
+ * at a low alpha, which cannot reach that at any strength this theme uses (foreground/30 is 1.95:1
39
+ * in light). `border-strong` is palette-derived and pinned at 3:1 on the token, so it follows this
40
+ * theme's own colours. Hairlines and card edges keep `edge`: a line between two regions is
41
+ * decoration and owes nothing (#1443, after #1322).
42
+ */
43
+ inputEdge: 'border border-border-strong',
35
44
  radius: 'rounded-md',
36
45
  radiusTight: 'rounded-sm',
37
46
  focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70 focus-visible:ring-offset-1 focus-visible:ring-offset-background',
38
- disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',
47
+ disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)] aria-disabled:cursor-not-allowed aria-disabled:opacity-[var(--opacity-disabled)]',
39
48
  invalid: 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',
40
49
  };
41
50
  // ============================================================
@@ -251,7 +260,7 @@ const surface = {
251
260
  // ============================================================
252
261
  const formControl = {
253
262
  [FormControlVariant.DEFAULT]: recipe({
254
- base: `bg-background ${TM.edge} ${TM.radius} text-base md:text-sm text-foreground placeholder:text-muted-foreground/60 selection:bg-primary/30 selection:text-foreground`,
263
+ base: `bg-background ${TM.inputEdge} ${TM.radius} text-base md:text-sm text-foreground placeholder:text-muted-foreground/60 selection:bg-primary/30 selection:text-foreground`,
255
264
  states: {
256
265
  focus: TM.focus,
257
266
  disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',
@@ -265,7 +274,8 @@ const formControl = {
265
274
  motion: { transition: TM_MOTION.formControl },
266
275
  }),
267
276
  [FormControlVariant.FILLED]: recipe({
268
- base: `bg-muted/60 ${TM.radius} border-0 text-base md:text-sm text-foreground placeholder:text-muted-foreground/60`,
277
+ // Fill PLUS a bottom indicator line: a fill alone (about 1.3:1) marks nothing as an input, and `invalid` sets a border colour a borderless field cannot show.
278
+ base: `bg-muted/60 rounded-t-md rounded-b-none border-0 border-b border-border-strong text-base md:text-sm text-foreground placeholder:text-muted-foreground/60`,
269
279
  states: {
270
280
  focus: TM.focus,
271
281
  disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',
@@ -279,7 +289,7 @@ const formControl = {
279
289
  motion: { transition: TM_MOTION.formControl },
280
290
  }),
281
291
  [FormControlVariant.UNDERLINED]: recipe({
282
- base: 'bg-transparent border-0 border-b border-foreground/25 rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/60',
292
+ base: 'bg-transparent border-0 border-b border-border-strong rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/60',
283
293
  states: {
284
294
  focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',
285
295
  disabled: 'disabled:opacity-[var(--opacity-disabled)]',
@@ -296,7 +306,7 @@ const formControl = {
296
306
  }),
297
307
  [FormControlVariant.CHECKBOX]: recipe({
298
308
  // `rounded-sm` (3px) — feels like a TTY checkbox `[x]`, not a pill.
299
- base: `${TM.edge} ${TM.radiusTight}`,
309
+ base: `${TM.inputEdge} ${TM.radiusTight}`,
300
310
  states: {
301
311
  focus: TM.focus,
302
312
  selected: 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',
@@ -469,6 +479,10 @@ const typography = {
469
479
  base: 'font-sans text-muted-foreground text-xs leading-snug',
470
480
  sizes: { sm: 'text-[0.6875rem]', md: 'text-xs' },
471
481
  }),
482
+ [TypographyVariant.EYEBROW]: recipe({
483
+ base: 'font-mono text-foreground-subtle text-[0.6875rem] uppercase tracking-wider',
484
+ sizes: { sm: 'text-2xs', md: 'text-[0.6875rem]' },
485
+ }),
472
486
  [TypographyVariant.CODE]: recipe({
473
487
  // Inline code: tighter padding, mono, sharp corners.
474
488
  base: 'font-mono text-[0.85em] bg-muted/60 rounded-sm px-1 py-0.5 border border-foreground/10',