@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
@@ -1 +1 @@
1
- {"version":3,"file":"shiki-subset.js","sourceRoot":"","sources":["../../../src/shiki-subset.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The Shiki SUBSET bundle — a drop-in replacement for the `shiki` package root that registers only\n * the languages Wildo actually declares, and only the themes Wildo actually renders.\n *\n * ## What it keeps out, and what that measured\n *\n * `shiki`'s package root is a BUNDLE: `bundledLanguages` is a record of 232 lazy grammar loaders and\n * `bundledThemes` a record of 64 lazy theme loaders. Every one of them is a live `import()` edge, so\n * a bundler emits a chunk per entry whether or not any code path can reach it. Measured on\n * `examples/wonder-crm` (production `vite build`, gzip -9 over `dist/assets`), the full bundle cost:\n *\n * | payload | chunks | gzipped |\n * |--------------------------------------------|-------:|----------:|\n * | `@shikijs/langs` grammars | 231 | 1,275.0 kB |\n * | `@shikijs/themes` themes | 64 | 232.2 kB |\n * | **total** | **295**| **1,507.2 kB** |\n *\n * — against a 5,667 kB gzipped total dist, i.e. **27% of everything the application ships**. None of\n * it is on first paint (all three call sites are behind lazy doors), but it is 295 files an install\n * carries, a CDN stores and a service worker would have to reason about, for a `CommonCodeLanguages`\n * vocabulary of 31.\n *\n * This module re-implements `shiki`'s root surface over `shiki/core` with an explicitly enumerated\n * language and theme set. Same API, same `createBundledHighlighter` machinery, same lazy per-grammar\n * `import()` shape — so a language is still fetched only when a code block actually uses it.\n *\n * ## Why it must be reached through a Vite `resolve.alias`, not just by importing it\n *\n * There are three shiki call sites and only two of them are ours:\n *\n * | call site | how it reaches shiki |\n * |-------------------------------------------------------------|----------------------------------|\n * | `data-display/formatters/display-field-code.tsx` | `await import('shiki')` — ours |\n * | `ai-elements/artifacts/shiki-highlighter-runtime.ts` | `shiki/bundle/web` — ours |\n * | `streamdown`'s `dist/code-block-*.js` | `from 'shiki'` — THIRD PARTY |\n *\n * The two first-party sites import THIS module directly. The third cannot: `streamdown` publishes a\n * single `.` entrypoint and hardcodes `import { createHighlighter, bundledLanguages } from 'shiki'`\n * in its own dist. Fixing only our two would therefore leave all 231 grammars in place, because\n * `streamdown` is what every markdown surface renders through. The applications alias the bare\n * `shiki` (and `shiki/bundle/web`) specifier onto this module so BOTH lanes converge here.\n *\n * ## The regex engine: JavaScript, not Oniguruma\n *\n * `shiki/bundle/web` and `shiki`'s root both default to `createOnigurumaEngine`, which ships a\n * ~225 kB gzipped WASM blob in its own chunk. This module uses `createJavaScriptRegexEngine`\n * instead, which compiles the TextMate Oniguruma patterns to native `RegExp`. That is not a guess:\n * `streamdown` already builds its highlighter with `createJavaScriptRegexEngine({ forgiving: true })`\n * for exactly these grammars, and `scripts/shiki/probe-subset-highlighting.mjs` asserts every one of\n * the 31 declared languages returns real (multi-color) tokens under this engine.\n *\n * `forgiving: true` matches streamdown's setting: a pattern the JS engine cannot express becomes a\n * never-matching pattern rather than a thrown error, so a rare construct degrades to unhighlighted\n * text instead of failing the whole block.\n *\n * ## Adding a language or a theme\n *\n * A language belongs in `CommonCodeLanguages` (`@wildo-ai/zod-decorators`) first — that list is the\n * vocabulary an application author picks from — and then in `SUBSET_GRAMMAR_LOADERS` below. A theme\n * belongs in `SUBSET_THEME_LOADERS` and must be named by one of the three call sites; a theme name\n * that reaches `codeToHtml` without a loader here throws, and every call site already catches that\n * and falls back to plain text.\n */\n\nimport {\n createBundledHighlighter,\n createSingletonShorthands,\n} from 'shiki/core';\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript';\nimport type {\n BundledHighlighterOptions,\n CodeToHastOptions,\n HighlighterGeneric,\n LanguageRegistration,\n ThemeRegistrationAny,\n} from 'shiki/core';\n\nexport * from 'shiki/core';\n\n/**\n * The grammar loaders backing `CommonCodeLanguages`, keyed by shiki grammar id.\n *\n * 29 entries for 31 declared languages, because three of the declared names are not distinct\n * grammars: `bash` and `shell` are both aliases of shiki's `shellscript`, `dockerfile` is an alias\n * of `docker`, and `plaintext` is one of shiki's SPECIAL languages (`isPlainLang`) that needs no\n * grammar at all — the core tokenizer emits it directly.\n *\n * Written as `shiki/langs/<id>.mjs` rather than `@shikijs/langs/<id>`: the latter is the specifier\n * shiki's own bundles use, but `@shikijs/langs` is a TRANSITIVE dependency here, and declaring it\n * directly is not available in this pass. `./*` → `./dist/*` is a published export pattern of the\n * `shiki` package this package already declares, so the `.mjs` form reaches the identical module.\n *\n * A grammar module default-exports an ARRAY that already contains its own embedded-language\n * grammars (`php` carries `html`, `html` carries `javascript`/`css`, `markdown` carries its fenced\n * set), so the emitted chunk count is higher than 29 while the reachable set stays closed.\n */\nconst SUBSET_GRAMMAR_LOADERS = {\n apache: () => import('shiki/langs/apache.mjs'),\n c: () => import('shiki/langs/c.mjs'),\n cpp: () => import('shiki/langs/cpp.mjs'),\n csharp: () => import('shiki/langs/csharp.mjs'),\n css: () => import('shiki/langs/css.mjs'),\n docker: () => import('shiki/langs/docker.mjs'),\n go: () => import('shiki/langs/go.mjs'),\n graphql: () => import('shiki/langs/graphql.mjs'),\n html: () => import('shiki/langs/html.mjs'),\n java: () => import('shiki/langs/java.mjs'),\n javascript: () => import('shiki/langs/javascript.mjs'),\n json: () => import('shiki/langs/json.mjs'),\n kotlin: () => import('shiki/langs/kotlin.mjs'),\n less: () => import('shiki/langs/less.mjs'),\n markdown: () => import('shiki/langs/markdown.mjs'),\n nginx: () => import('shiki/langs/nginx.mjs'),\n php: () => import('shiki/langs/php.mjs'),\n powershell: () => import('shiki/langs/powershell.mjs'),\n python: () => import('shiki/langs/python.mjs'),\n ruby: () => import('shiki/langs/ruby.mjs'),\n rust: () => import('shiki/langs/rust.mjs'),\n scala: () => import('shiki/langs/scala.mjs'),\n scss: () => import('shiki/langs/scss.mjs'),\n shellscript: () => import('shiki/langs/shellscript.mjs'),\n sql: () => import('shiki/langs/sql.mjs'),\n swift: () => import('shiki/langs/swift.mjs'),\n typescript: () => import('shiki/langs/typescript.mjs'),\n xml: () => import('shiki/langs/xml.mjs'),\n yaml: () => import('shiki/langs/yaml.mjs'),\n} as const satisfies Record<string, () => Promise<{ default: LanguageRegistration[] }>>;\n\n/**\n * Alias → grammar id, mirroring shiki's own `bundledLanguagesAlias`.\n *\n * These are load-bearing rather than convenience: `streamdown` decides whether a fence is\n * highlightable with `Object.hasOwn(bundledLanguages, lang)` and falls back to `\"text\"` otherwise,\n * so an omitted alias silently un-highlights every ```` ```ts ```` / ```` ```py ```` / ```` ```sh ````\n * fence a user or a model writes. The two Wildo names that are themselves aliases (`bash`, `shell`\n * → `shellscript`; `dockerfile` → `docker`) are in here for the same reason.\n */\nconst SUBSET_LANGUAGE_ALIASES: Record<string, keyof typeof SUBSET_GRAMMAR_LOADERS> = {\n 'bash': 'shellscript',\n 'shell': 'shellscript',\n 'sh': 'shellscript',\n 'zsh': 'shellscript',\n 'console': 'shellscript',\n 'dockerfile': 'docker',\n 'js': 'javascript',\n 'cjs': 'javascript',\n 'mjs': 'javascript',\n 'ts': 'typescript',\n 'cts': 'typescript',\n 'mts': 'typescript',\n 'py': 'python',\n 'rb': 'ruby',\n 'rs': 'rust',\n 'kt': 'kotlin',\n 'kts': 'kotlin',\n 'c#': 'csharp',\n 'cs': 'csharp',\n 'c++': 'cpp',\n 'yml': 'yaml',\n 'md': 'markdown',\n 'gql': 'graphql',\n 'ps': 'powershell',\n 'ps1': 'powershell',\n};\n\n/**\n * Every theme named by a Wildo code surface, and no other.\n *\n * - `github-light` / `github-dark` — `DisplayFieldCode`'s prop defaults, and `streamdown`'s own\n * `shikiTheme` context default (`[\"github-light\",\"github-dark\"]`).\n * - `one-light` / `one-dark-pro` — `AI_CodeBlock`, via `shiki-highlighter.lazy.ts`.\n *\n * 4 of shiki's 64. `DisplayFieldCode` exposes `lightTheme`/`darkTheme` as props, so an application\n * CAN name a theme that is not here; `codeToHtml` then rejects it and the component's existing\n * `catch` keeps the plain-text rendering. That is the intended failure mode — the alternative is\n * shipping 60 unused theme chunks so a prop nobody sets cannot degrade.\n */\nconst SUBSET_THEME_LOADERS = {\n 'github-light': () => import('shiki/themes/github-light.mjs'),\n 'github-dark': () => import('shiki/themes/github-dark.mjs'),\n 'one-light': () => import('shiki/themes/one-light.mjs'),\n 'one-dark-pro': () => import('shiki/themes/one-dark-pro.mjs'),\n} as const satisfies Record<string, () => Promise<{ default: ThemeRegistrationAny }>>;\n\n/** Grammar ids plus their aliases — the exact key set `streamdown`'s membership test reads. */\nexport const bundledLanguages: Record<string, () => Promise<{ default: LanguageRegistration[] }>> = {\n ...SUBSET_GRAMMAR_LOADERS,\n ...Object.fromEntries(\n Object.entries(SUBSET_LANGUAGE_ALIASES).map(([alias, id]) => [alias, SUBSET_GRAMMAR_LOADERS[id]]),\n ),\n};\n\n/** The four themes above. Shape-compatible with shiki's `bundledThemes`. */\nexport const bundledThemes: Record<string, () => Promise<{ default: ThemeRegistrationAny }>> = {\n ...SUBSET_THEME_LOADERS,\n};\n\n/** A language id or alias this bundle can highlight. */\nexport type BundledLanguage = keyof typeof SUBSET_GRAMMAR_LOADERS | keyof typeof SUBSET_LANGUAGE_ALIASES;\n/** A theme name this bundle can render. */\nexport type BundledTheme = keyof typeof SUBSET_THEME_LOADERS;\n/** The highlighter this bundle produces. */\nexport type Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\n/**\n * Drop-in for `shiki`'s `createHighlighter`, closed over the subset.\n *\n * The engine is a module-level singleton because `createJavaScriptRegexEngine` holds a compiled\n * pattern cache; sharing it across the three call sites means a grammar's regexes are compiled once\n * per document rather than once per highlighter.\n */\nexport const createHighlighter: (\n options: BundledHighlighterOptions<BundledLanguage, BundledTheme>,\n) => Promise<Highlighter> = createBundledHighlighter<BundledLanguage, BundledTheme>({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createJavaScriptRegexEngine({ forgiving: true }),\n});\n\n/**\n * The singleton shorthands (`codeToHtml`, `codeToTokens`, …), matching `shiki`'s root export.\n *\n * `guessEmbeddedLanguages` is deliberately NOT passed, unlike `shiki/bundle/web`. That helper scans\n * the source for nested fences and loads whatever it finds, which on a closed subset means an\n * unhighlightable inner language turns a working outer block into a rejected promise. A grammar's\n * OWN declared embeds still load — they travel inside the grammar module's default export — so\n * `html` still highlights its `<script>` and `markdown` still highlights its fences.\n */\nconst shorthands = createSingletonShorthands<BundledLanguage, BundledTheme>(createHighlighter);\n\n/**\n * `codeToHtml`, widened to accept plain `string` for `lang` and the theme names.\n *\n * Every caller supplies a RUNTIME string — a `z_code()` value's `language` field, a markdown fence\n * info-string, a `lightTheme`/`darkTheme` prop typed `string` on `DisplayFieldCodeProps`. Typing the\n * parameter as the literal-union `BundledLanguage`/`BundledTheme` would force a cast at every call\n * site, which buys no safety (the value is not known at compile time) and hides the real contract:\n * an unregistered name REJECTS at runtime, and each call site already handles that by falling back\n * to plain text.\n */\nexport const codeToHtml: (code: string, options: CodeToHastOptions<string, string>) => Promise<string> =\n shorthands.codeToHtml as unknown as (code: string, options: CodeToHastOptions<string, string>) => Promise<string>;\nexport const codeToHast: typeof shorthands.codeToHast = shorthands.codeToHast;\nexport const codeToTokens: typeof shorthands.codeToTokens = shorthands.codeToTokens;\nexport const codeToTokensBase: typeof shorthands.codeToTokensBase = shorthands.codeToTokensBase;\nexport const codeToTokensWithThemes: typeof shorthands.codeToTokensWithThemes = shorthands.codeToTokensWithThemes;\nexport const getSingletonHighlighter: typeof shorthands.getSingletonHighlighter = shorthands.getSingletonHighlighter;\nexport const getLastGrammarState: typeof shorthands.getLastGrammarState = shorthands.getLastGrammarState;\n"]}
1
+ {"version":3,"file":"shiki-subset.js","sourceRoot":"","sources":["../../../src/shiki-subset.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The Shiki SUBSET bundle — a drop-in replacement for the `shiki` package root that registers only\n * the languages Wildo actually declares, and only the themes Wildo actually renders.\n *\n * ## What it keeps out, and what that measured\n *\n * `shiki`'s package root is a BUNDLE: `bundledLanguages` is a record of 232 lazy grammar loaders and\n * `bundledThemes` a record of 64 lazy theme loaders. Every one of them is a live `import()` edge, so\n * a bundler emits a chunk per entry whether or not any code path can reach it. Measured on\n * `examples/wonder-crm` (production `vite build`, gzip -9 over `dist/assets`), the full bundle cost:\n *\n * | payload | chunks | gzipped |\n * |--------------------------------------------|-------:|----------:|\n * | `@shikijs/langs` grammars | 231 | 1,275.0 kB |\n * | `@shikijs/themes` themes | 64 | 232.2 kB |\n * | **total** | **295**| **1,507.2 kB** |\n *\n * — against a 5,667 kB gzipped total dist, i.e. **27% of everything the application ships**. None of\n * it is on first paint (all three call sites are behind lazy doors), but it is 295 files an install\n * carries, a CDN stores and a service worker would have to reason about, for a `CommonCodeLanguages`\n * vocabulary of 31.\n *\n * This module re-implements `shiki`'s root surface over `shiki/core` with an explicitly enumerated\n * language and theme set. Same API, same `createBundledHighlighter` machinery, same lazy per-grammar\n * `import()` shape — so a language is still fetched only when a code block actually uses it.\n *\n * ## Why it must be reached through a Vite `resolve.alias`, not just by importing it\n *\n * There are three shiki call sites and only two of them are ours:\n *\n * | call site | how it reaches shiki |\n * |-------------------------------------------------------------|----------------------------------|\n * | `data-display/formatters/display-field-code.tsx` | `await import('shiki')` — ours |\n * | `ai-elements/artifacts/shiki-highlighter-runtime.ts` | `shiki/bundle/web` — ours |\n * | `streamdown`'s `dist/code-block-*.js` | `from 'shiki'` — THIRD PARTY |\n *\n * The two first-party sites import THIS module directly. The third cannot: `streamdown` publishes a\n * single `.` entrypoint and hardcodes `import { createHighlighter, bundledLanguages } from 'shiki'`\n * in its own dist. Fixing only our two would therefore leave all 231 grammars in place, because\n * `streamdown` is what every markdown surface renders through. The applications alias the bare\n * `shiki` (and `shiki/bundle/web`) specifier onto this module so BOTH lanes converge here.\n *\n * ## The regex engine: JavaScript, not Oniguruma\n *\n * `shiki/bundle/web` and `shiki`'s root both default to `createOnigurumaEngine`, which ships a\n * ~225 kB gzipped WASM blob in its own chunk. This module uses `createJavaScriptRegexEngine`\n * instead, which compiles the TextMate Oniguruma patterns to native `RegExp`. That is not a guess:\n * `streamdown` already builds its highlighter with `createJavaScriptRegexEngine({ forgiving: true })`\n * for exactly these grammars, and `scripts/shiki/probe-subset-highlighting.mjs` asserts every one of\n * the 31 declared languages returns real (multi-color) tokens under this engine.\n *\n * `forgiving: true` matches streamdown's setting: a pattern the JS engine cannot express becomes a\n * never-matching pattern rather than a thrown error, so a rare construct degrades to unhighlighted\n * text instead of failing the whole block.\n *\n * ## Adding a language or a theme\n *\n * A language belongs in `CommonCodeLanguages` (`@wildo-ai/zod-decorators`) first — that list is the\n * vocabulary an application author picks from — and then in `SUBSET_GRAMMAR_LOADERS` below. A theme\n * belongs in `SUBSET_THEME_LOADERS` and must be named by one of the three call sites; a theme name\n * that reaches `codeToHtml` without a loader here throws, and every call site already catches that\n * and falls back to plain text.\n */\n\nimport {\n createBundledHighlighter,\n createSingletonShorthands,\n} from 'shiki/core';\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript';\nimport type {\n BundledHighlighterOptions,\n CodeToHastOptions,\n HighlighterGeneric,\n LanguageRegistration,\n ThemeRegistrationAny,\n} from 'shiki/core';\n\nexport * from 'shiki/core';\n\n/**\n * The grammar loaders backing `CommonCodeLanguages`, keyed by shiki grammar id.\n *\n * 29 entries for 31 declared languages, because three of the declared names are not distinct\n * grammars: `bash` and `shell` are both aliases of shiki's `shellscript`, `dockerfile` is an alias\n * of `docker`, and `plaintext` is one of shiki's SPECIAL languages (`isPlainLang`) that needs no\n * grammar at all — the core tokenizer emits it directly.\n *\n * Written as `shiki/langs/<id>.mjs` rather than `@shikijs/langs/<id>`: the latter is the specifier\n * shiki's own bundles use, but `@shikijs/langs` is a TRANSITIVE dependency here, and declaring it\n * directly is not available in this pass. `./*` → `./dist/*` is a published export pattern of the\n * `shiki` package this package already declares, so the `.mjs` form reaches the identical module.\n *\n * A grammar module default-exports an ARRAY that already contains its own embedded-language\n * grammars (`php` carries `html`, `html` carries `javascript`/`css`, `markdown` carries its fenced\n * set), so the emitted chunk count is higher than 29 while the reachable set stays closed.\n */\nconst SUBSET_GRAMMAR_LOADERS = {\n apache: () => import('shiki/langs/apache.mjs'),\n c: () => import('shiki/langs/c.mjs'),\n cpp: () => import('shiki/langs/cpp.mjs'),\n csharp: () => import('shiki/langs/csharp.mjs'),\n css: () => import('shiki/langs/css.mjs'),\n docker: () => import('shiki/langs/docker.mjs'),\n go: () => import('shiki/langs/go.mjs'),\n graphql: () => import('shiki/langs/graphql.mjs'),\n html: () => import('shiki/langs/html.mjs'),\n java: () => import('shiki/langs/java.mjs'),\n javascript: () => import('shiki/langs/javascript.mjs'),\n json: () => import('shiki/langs/json.mjs'),\n kotlin: () => import('shiki/langs/kotlin.mjs'),\n less: () => import('shiki/langs/less.mjs'),\n markdown: () => import('shiki/langs/markdown.mjs'),\n nginx: () => import('shiki/langs/nginx.mjs'),\n php: () => import('shiki/langs/php.mjs'),\n powershell: () => import('shiki/langs/powershell.mjs'),\n python: () => import('shiki/langs/python.mjs'),\n ruby: () => import('shiki/langs/ruby.mjs'),\n rust: () => import('shiki/langs/rust.mjs'),\n scala: () => import('shiki/langs/scala.mjs'),\n scss: () => import('shiki/langs/scss.mjs'),\n shellscript: () => import('shiki/langs/shellscript.mjs'),\n sql: () => import('shiki/langs/sql.mjs'),\n swift: () => import('shiki/langs/swift.mjs'),\n typescript: () => import('shiki/langs/typescript.mjs'),\n xml: () => import('shiki/langs/xml.mjs'),\n yaml: () => import('shiki/langs/yaml.mjs'),\n} as const satisfies Record<string, () => Promise<{ default: LanguageRegistration[] }>>;\n\n/**\n * Alias → grammar id, mirroring shiki's own `bundledLanguagesAlias`.\n *\n * These are load-bearing rather than convenience: `streamdown` decides whether a fence is\n * highlightable with `Object.hasOwn(bundledLanguages, lang)` and falls back to `\"text\"` otherwise,\n * so an omitted alias silently un-highlights every ```` ```ts ```` / ```` ```py ```` / ```` ```sh ````\n * fence a user or a model writes. The two Wildo names that are themselves aliases (`bash`, `shell`\n * → `shellscript`; `dockerfile` → `docker`) are in here for the same reason.\n */\nconst SUBSET_LANGUAGE_ALIASES: Record<string, keyof typeof SUBSET_GRAMMAR_LOADERS> = {\n 'bash': 'shellscript',\n 'shell': 'shellscript',\n 'sh': 'shellscript',\n 'zsh': 'shellscript',\n 'console': 'shellscript',\n 'dockerfile': 'docker',\n 'js': 'javascript',\n 'cjs': 'javascript',\n 'mjs': 'javascript',\n 'ts': 'typescript',\n 'cts': 'typescript',\n 'mts': 'typescript',\n 'py': 'python',\n 'rb': 'ruby',\n 'rs': 'rust',\n 'kt': 'kotlin',\n 'kts': 'kotlin',\n 'c#': 'csharp',\n 'cs': 'csharp',\n 'c++': 'cpp',\n 'yml': 'yaml',\n 'md': 'markdown',\n 'gql': 'graphql',\n 'ps': 'powershell',\n 'ps1': 'powershell',\n};\n\n/**\n * Every theme named by a Wildo code surface, and no other.\n *\n * - `github-light` / `github-dark` — `DisplayFieldCode`'s prop defaults, and `streamdown`'s own\n * `shikiTheme` context default (`[\"github-light\",\"github-dark\"]`).\n * - `github-light-high-contrast` / `one-dark-pro` — `AI_CodeBlock` and `AI_DiffBlock`, via\n * `shiki-highlighter.lazy.ts`. The light half was `one-light` until 2026-09-21: measured from the\n * pinned package, SIX of its twelve token colours are below 4.5:1 on a plain white block (strings\n * `#50a14f` 3.21, keywords-in-red `#e45649` 3.67, comments `#a0a1a7` 2.58), and an accessibility\n * sweep of the creation board counted 39 failing nodes in one diff. Of the twelve light themes\n * shiki ships, `github-light-high-contrast` is the only one whose every TEXT token passes on a plain\n * block (its two near-white colours carry their own dark background). The dark half had no finding\n * and stays. spec-cite: WCAG 2.1 SC 1.4.3 Contrast (Minimum) — 4.5:1 for text.\n * https://www.w3.org/TR/WCAG21/#contrast-minimum\n *\n * 4 of shiki's 64. `DisplayFieldCode` exposes `lightTheme`/`darkTheme` as props, so an application\n * CAN name a theme that is not here; `codeToHtml` then rejects it and the component's existing\n * `catch` keeps the plain-text rendering. That is the intended failure mode — the alternative is\n * shipping 60 unused theme chunks so a prop nobody sets cannot degrade.\n */\nconst SUBSET_THEME_LOADERS = {\n 'github-light': () => import('shiki/themes/github-light.mjs'),\n 'github-dark': () => import('shiki/themes/github-dark.mjs'),\n 'github-light-high-contrast': () => import('shiki/themes/github-light-high-contrast.mjs'),\n 'one-dark-pro': () => import('shiki/themes/one-dark-pro.mjs'),\n} as const satisfies Record<string, () => Promise<{ default: ThemeRegistrationAny }>>;\n\n/** Grammar ids plus their aliases — the exact key set `streamdown`'s membership test reads. */\nexport const bundledLanguages: Record<string, () => Promise<{ default: LanguageRegistration[] }>> = {\n ...SUBSET_GRAMMAR_LOADERS,\n ...Object.fromEntries(\n Object.entries(SUBSET_LANGUAGE_ALIASES).map(([alias, id]) => [alias, SUBSET_GRAMMAR_LOADERS[id]]),\n ),\n};\n\n/** The four themes above. Shape-compatible with shiki's `bundledThemes`. */\nexport const bundledThemes: Record<string, () => Promise<{ default: ThemeRegistrationAny }>> = {\n ...SUBSET_THEME_LOADERS,\n};\n\n/** A language id or alias this bundle can highlight. */\nexport type BundledLanguage = keyof typeof SUBSET_GRAMMAR_LOADERS | keyof typeof SUBSET_LANGUAGE_ALIASES;\n/** A theme name this bundle can render. */\nexport type BundledTheme = keyof typeof SUBSET_THEME_LOADERS;\n/** The highlighter this bundle produces. */\nexport type Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\n/**\n * Drop-in for `shiki`'s `createHighlighter`, closed over the subset.\n *\n * The engine is a module-level singleton because `createJavaScriptRegexEngine` holds a compiled\n * pattern cache; sharing it across the three call sites means a grammar's regexes are compiled once\n * per document rather than once per highlighter.\n */\nexport const createHighlighter: (\n options: BundledHighlighterOptions<BundledLanguage, BundledTheme>,\n) => Promise<Highlighter> = createBundledHighlighter<BundledLanguage, BundledTheme>({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createJavaScriptRegexEngine({ forgiving: true }),\n});\n\n/**\n * The singleton shorthands (`codeToHtml`, `codeToTokens`, …), matching `shiki`'s root export.\n *\n * `guessEmbeddedLanguages` is deliberately NOT passed, unlike `shiki/bundle/web`. That helper scans\n * the source for nested fences and loads whatever it finds, which on a closed subset means an\n * unhighlightable inner language turns a working outer block into a rejected promise. A grammar's\n * OWN declared embeds still load — they travel inside the grammar module's default export — so\n * `html` still highlights its `<script>` and `markdown` still highlights its fences.\n */\nconst shorthands = createSingletonShorthands<BundledLanguage, BundledTheme>(createHighlighter);\n\n/**\n * `codeToHtml`, widened to accept plain `string` for `lang` and the theme names.\n *\n * Every caller supplies a RUNTIME string — a `z_code()` value's `language` field, a markdown fence\n * info-string, a `lightTheme`/`darkTheme` prop typed `string` on `DisplayFieldCodeProps`. Typing the\n * parameter as the literal-union `BundledLanguage`/`BundledTheme` would force a cast at every call\n * site, which buys no safety (the value is not known at compile time) and hides the real contract:\n * an unregistered name REJECTS at runtime, and each call site already handles that by falling back\n * to plain text.\n */\nexport const codeToHtml: (code: string, options: CodeToHastOptions<string, string>) => Promise<string> =\n shorthands.codeToHtml as unknown as (code: string, options: CodeToHastOptions<string, string>) => Promise<string>;\nexport const codeToHast: typeof shorthands.codeToHast = shorthands.codeToHast;\nexport const codeToTokens: typeof shorthands.codeToTokens = shorthands.codeToTokens;\nexport const codeToTokensBase: typeof shorthands.codeToTokensBase = shorthands.codeToTokensBase;\nexport const codeToTokensWithThemes: typeof shorthands.codeToTokensWithThemes = shorthands.codeToTokensWithThemes;\nexport const getSingletonHighlighter: typeof shorthands.getSingletonHighlighter = shorthands.getSingletonHighlighter;\nexport const getLastGrammarState: typeof shorthands.getLastGrammarState = shorthands.getLastGrammarState;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-exports.d.ts","sourceRoot":"","sources":["../../src/theme-exports.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"theme-exports.d.ts","sourceRoot":"","sources":["../../../src/theme-exports.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cozy.theme.d.ts","sourceRoot":"","sources":["../../../src/themes/cozy.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAC;AAuvBzG,eAAO,MAAM,SAAS,EAAE,mBAwEvB,CAAC"}
1
+ {"version":3,"file":"cozy.theme.d.ts","sourceRoot":"","sources":["../../../../src/themes/cozy.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAC;AAqwBzG,eAAO,MAAM,SAAS,EAAE,mBAwEvB,CAAC"}
@@ -33,6 +33,15 @@ const CZ = {
33
33
  /** Soft, low-opacity border — almost invisible against bg, present on hover. */
34
34
  hairline: 'border border-foreground/8',
35
35
  edge: 'border border-foreground/12',
36
+ /*
37
+ * A TEXT INPUT's edge, as distinct from `edge`. An input's border is its only cue that it is an
38
+ * input, so it owes 3:1 against the page (WCAG 2.1 SC 1.4.11); `edge` is this theme's foreground
39
+ * at a low alpha, which cannot reach that at any strength this theme uses (foreground/30 is 1.95:1
40
+ * in light). `border-strong` is palette-derived and pinned at 3:1 on the token, so it follows this
41
+ * theme's own colours. Hairlines and card edges keep `edge`: a line between two regions is
42
+ * decoration and owes nothing (#1443, after #1322).
43
+ */
44
+ inputEdge: 'border border-border-strong',
36
45
  /** Pillowy radius baseline. */
37
46
  radius: 'rounded-2xl',
38
47
  radiusLg: 'rounded-3xl',
@@ -43,7 +52,7 @@ const CZ = {
43
52
  shadowLg: 'shadow-[0_8px_32px_rgba(0,0,0,0.07)] dark:shadow-[0_8px_32px_rgba(0,0,0,0.45)]',
44
53
  shadowXL: 'shadow-[0_24px_64px_rgba(0,0,0,0.10)] dark:shadow-[0_24px_64px_rgba(0,0,0,0.55)]',
45
54
  focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background',
46
- disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',
55
+ disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)] aria-disabled:cursor-not-allowed aria-disabled:opacity-[var(--opacity-disabled)]',
47
56
  invalid: 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',
48
57
  };
49
58
  // ============================================================
@@ -305,7 +314,7 @@ const surface = {
305
314
  // ============================================================
306
315
  const formControl = {
307
316
  [FormControlVariant.DEFAULT]: recipe({
308
- base: `bg-background ${CZ.edge} ${CZ.radiusMd} text-base md:text-sm text-foreground placeholder:text-muted-foreground/70 selection:bg-primary/25 selection:text-foreground shadow-[inset_0_1px_2px_rgba(0,0,0,0.03)]`,
317
+ base: `bg-background ${CZ.inputEdge} ${CZ.radiusMd} text-base md:text-sm text-foreground placeholder:text-muted-foreground/70 selection:bg-primary/25 selection:text-foreground shadow-[inset_0_1px_2px_rgba(0,0,0,0.03)]`,
309
318
  states: {
310
319
  focus: CZ.focus,
311
320
  disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',
@@ -319,7 +328,8 @@ const formControl = {
319
328
  motion: { transition: CZ_MOTION.formControl },
320
329
  }),
321
330
  [FormControlVariant.FILLED]: recipe({
322
- base: `bg-muted/70 ${CZ.radiusMd} border-0 text-base md:text-sm text-foreground placeholder:text-muted-foreground/70`,
331
+ // 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.
332
+ base: `bg-muted/70 rounded-t-xl rounded-b-none border-0 border-b border-border-strong text-base md:text-sm text-foreground placeholder:text-muted-foreground/70`,
323
333
  states: {
324
334
  focus: `${CZ.focus} focus-visible:bg-muted`,
325
335
  disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',
@@ -333,7 +343,7 @@ const formControl = {
333
343
  motion: { transition: CZ_MOTION.formControl },
334
344
  }),
335
345
  [FormControlVariant.UNDERLINED]: recipe({
336
- base: 'bg-transparent border-0 border-b border-foreground/15 rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/70',
346
+ base: 'bg-transparent border-0 border-b border-border-strong rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/70',
337
347
  states: {
338
348
  focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',
339
349
  disabled: 'disabled:opacity-[var(--opacity-disabled)]',
@@ -351,7 +361,7 @@ const formControl = {
351
361
  [FormControlVariant.CHECKBOX]: recipe({
352
362
  // Pillowy checkbox: rounded-md (not rounded-sm). Cozy avoids hard
353
363
  // right angles even on tiny controls.
354
- base: `${CZ.edge} rounded-md`,
364
+ base: `${CZ.inputEdge} rounded-md`,
355
365
  states: {
356
366
  focus: CZ.focus,
357
367
  selected: 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',
@@ -542,6 +552,10 @@ const typography = {
542
552
  base: 'font-sans text-muted-foreground text-sm leading-relaxed',
543
553
  sizes: { sm: 'text-xs', md: 'text-sm' },
544
554
  }),
555
+ [TypographyVariant.EYEBROW]: recipe({
556
+ base: 'font-sans text-foreground-subtle text-2xs font-medium uppercase tracking-wide',
557
+ sizes: { sm: 'text-2xs', md: 'text-xs' },
558
+ }),
545
559
  [TypographyVariant.CODE]: recipe({
546
560
  base: `font-mono text-[0.875em] bg-muted/70 ${CZ.radiusMd} px-2 py-0.5`,
547
561
  sizes: { sm: 'text-xs', md: 'text-sm', lg: 'text-base' },
@@ -1 +1 @@
1
- {"version":3,"file":"cozy.theme.js","sourceRoot":"","sources":["../../../../src/themes/cozy.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// Cozy theme (Soft / Warm)\n//\n// Persona: wellness apps, journaling, B2C onboarding, friendly\n// internal tools, learning platforms.\n// References: Notion (warm mode), Calm, Headspace, early-stage\n// consumer SaaS, Stripe-light vibes.\n//\n// Design DNA:\n// - PILLOWY radius (rounded-2xl baseline; rounded-3xl on cards/dialogs).\n// The whole UI feels like rounded river stones, not card stock.\n// - WARM palette: cream / oat / dusty-rose foreground, sage muted,\n// terracotta accent. Never grey. Never cold. The page feels\n// \"occupied\" by warmth even before any content.\n// - SOFT, LONG shadows: low-opacity, large blur radius\n// (`shadow-[0_8px_32px_rgba(0,0,0,0.06)]`). Things rest gently\n// above the page rather than snapping into elevation.\n// - SPRINGY motion: spring physics on interactive gestures (matches\n// glass), generous duration on transitions. The UI \"settles\"\n// rather than \"snaps\".\n// - DM Sans / Plus Jakarta — humanist sans with warm letterforms,\n// soft round terminals (vs Geist's industrial precision).\n// - Underline-NEVER on selectable tabs (too sharp); pill-with-soft-bg\n// instead. The whole theme avoids hard right angles where possible.\n// - Body weight stays normal (not 500/600); cozy isn't loud.\n// ============================================================\n\n// -- Shared constants --\n\nconst CZ = {\n /** Soft, low-opacity border — almost invisible against bg, present on hover. */\n hairline: 'border border-foreground/8',\n edge: 'border border-foreground/12',\n /** Pillowy radius baseline. */\n radius: 'rounded-2xl',\n radiusLg: 'rounded-3xl',\n /** Mid radius for badges/pills. */\n radiusMd: 'rounded-xl',\n /** Soft long shadow — low opacity, large blur. */\n shadow: 'shadow-[0_4px_20px_rgba(0,0,0,0.05)] dark:shadow-[0_4px_20px_rgba(0,0,0,0.35)]',\n shadowLg: 'shadow-[0_8px_32px_rgba(0,0,0,0.07)] dark:shadow-[0_8px_32px_rgba(0,0,0,0.45)]',\n shadowXL: 'shadow-[0_24px_64px_rgba(0,0,0,0.10)] dark:shadow-[0_24px_64px_rgba(0,0,0,0.55)]',\n focus:\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n invalid:\n 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',\n};\n\n// ============================================================\n// MOTION PERSONALITY — Cozy\n// ============================================================\n// Hover/focus : NORMAL (250ms) + SPRING → gentle settle into rest.\n// SPRING easing here is the\n// cubic-bezier ease-out token\n// (cubic-bezier(0.22, 1, 0.36, 1)\n// ≈ easeOutExpo) — monotonic,\n// slow tail, NO overshoot.\n// Matches the \"pillowy\"\n// surface aesthetic; the\n// SETTLE is the personality,\n// not bouncing.\n// Overlay enter: SLOW (350ms) + ENTER → generous, friendly pace.\n// Overlay exit : NORMAL (250ms) + EXIT → quicker than enter.\n// Backdrop : SLOW/NORMAL + ENTER/EXIT → matches overlays.\n// Gestures : SPRING physics on motion.dev. Lower stiffness (250-300)\n// + higher damping (22-30) than Glass — Cozy spring\n// is \"gentle landing on a cushion\" vs Glass \"Apple\n// UIKit precision.\" `selectable` adds a horizontal\n// nudge for list-item affordance (mirrors Glass for\n// cross-theme parity).\n//\n// TR-14 motion-coherence: switched interactive/formControl/selectable\n// from EMPHASIZED (cubic-bezier(0.2, 0, 0, 1.2) — has 20% Y overshoot,\n// reads as \"snappy with bounce\") to SPRING (no overshoot, slow settle —\n// \"the cozy feel\"). Backdrop animations now have explicit easing.\n// `selectable` gesture added (was missing — Glass has it, Cozy didn't,\n// breaking cross-theme parity for list affordances).\n// ============================================================\nconst CZ_MOTION = {\n interactive:\n 'transition-[background-color,color,border-color,box-shadow,transform] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n formControl:\n 'transition-[color,border-color,box-shadow,background-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n selectable:\n 'transition-[background-color,color,border-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n enterFadeZoom:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] motion-reduce:data-[state=open]:animate-none',\n exitFadeZoom:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-normal)] data-[state=closed]:ease-[var(--motion-easing-exit)] motion-reduce:data-[state=closed]:animate-none',\n enterDirectional:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] 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:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] motion-reduce:data-[state=open]:animate-none',\n backdropExit:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-normal)] data-[state=closed]:ease-[var(--motion-easing-exit)] motion-reduce:data-[state=closed]:animate-none',\n};\n\n// Spring gestures: subtle scale on press, gentle hover lift.\n//\n// Cozy springs are softer than Glass: lower stiffness (slower oscillation\n// period) + higher damping (faster decay, less swing). Glass mimics\n// Apple UIKit precision; Cozy mimics \"Calm app\" / \"Notion\" friendliness —\n// the tactile equivalent of pressing a foam cushion vs a multitouch glass\n// surface. `selectable` matches Glass's pattern (horizontal x-nudge of\n// 2px on hover) so list-item affordances feel consistent across themes.\nconst CZ_GESTURE = {\n interactive: {\n whileHover: { scale: 1.015 },\n whileTap: { scale: 0.97 },\n transition: { type: 'spring' as const, stiffness: 300, damping: 24 },\n } as const,\n surface: {\n whileHover: { scale: 1.005 },\n transition: { type: 'spring' as const, stiffness: 250, damping: 22 },\n } as const,\n // TR-14: added for list-item affordance parity with Glass.\n // Slightly softer stiffness than Glass's selectable (350 vs 400)\n // and matching damping — list rows in Cozy should feel \"padded,\n // not snappy.\" The 2px horizontal nudge is the universal\n // \"I'm a clickable list row\" affordance.\n selectable: {\n whileHover: { x: 2 },\n whileTap: { scale: 0.99 },\n transition: { type: 'spring' as const, stiffness: 350, damping: 30 },\n } as const,\n};\n\n// ============================================================\n// INTERACTIVE\n// Pillowy buttons with soft-long shadows. Press = scale + tighter shadow.\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: 'h-8 px-3.5 text-xs gap-1.5 pointer-coarse:min-h-10',\n sm: 'h-9 px-4 gap-2 pointer-coarse:min-h-11',\n md: 'h-11 px-5 py-2 pointer-coarse:min-h-11',\n lg: 'h-12 px-7 pointer-coarse:min-h-12',\n icon: 'size-11 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-9 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-primary/90 hover:shadow-[0_6px_24px_rgba(0,0,0,0.08)] dark:hover:shadow-[0_6px_24px_rgba(0,0,0,0.45)]',\n active: 'active:bg-primary/95 active:shadow-[0_2px_8px_rgba(0,0,0,0.04)]',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.SECONDARY]: recipe({\n base: `bg-secondary text-secondary-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-secondary/80',\n active: 'active:bg-secondary/70',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-background text-foreground ${CZ.edge} ${CZ.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/20',\n active: 'active:bg-muted/80',\n focus: CZ.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:border-foreground/25',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-destructive/90',\n active: 'active:bg-destructive/95',\n focus: CZ.focus,\n highlighted: 'focus:bg-destructive/15 focus:text-destructive',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${CZ.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted',\n active: 'active:bg-muted/80',\n focus: CZ.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:text-foreground',\n highlighted: 'focus:bg-muted',\n open: 'data-[state=open]:bg-muted',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.LINK]: recipe({\n base: 'text-primary font-medium text-sm cursor-pointer',\n states: {\n hover: 'hover:underline hover:underline-offset-[3px] hover:decoration-primary/50',\n active: 'active:text-primary/80',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: {\n xs: 'h-8 px-2 text-xs gap-1.5 pointer-coarse:min-h-10',\n sm: 'h-9 px-2 gap-2 pointer-coarse:min-h-11',\n md: 'h-11 px-2 py-2 pointer-coarse:min-h-11',\n lg: 'h-12 px-2 pointer-coarse:min-h-12',\n icon: 'size-11 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-9 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n },\n motion: { transition: CZ_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // Cozy accent: warm pastel sweep — terracotta → dusty rose → peach.\n // Restrained motion (5s, slow), the gradient drifts rather than races.\n base: `relative bg-primary text-primary-foreground font-semibold ${CZ.radius} bg-[length:300%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_6s_ease-in-out_infinite] motion-reduce:animate-none ${CZ.shadow} text-sm cursor-pointer`,\n states: {\n hover: 'hover:brightness-105',\n active: 'active:scale-[0.98]',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition:\n 'transition-[background-position,filter,transform,shadow] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n gesture: CZ_GESTURE.interactive,\n }),\n};\n\n// ============================================================\n// SURFACE\n// SURFACE PERSONALITY — soft cushions: pillowy radii, warm page shell, gentle\n// floating notices. Tab panels are attached pillows rather than hard panes.\n// Cards rest gently on the page with low-opacity, large-blur shadows.\n// Dialogs ARE elevated and get the heaviest soft-shadow in the lineup.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${CZ.radiusLg} ${CZ.shadow} ${CZ.hairline}`,\n gesture: CZ_GESTURE.surface,\n }),\n\n [SurfaceVariant.CARD]: recipe({\n // Content card: the elevated `surface-raised` fill (pure white in light, a\n // lifted slate in dark) makes it read as a distinct card on the page; edge\n // border + soft shadow + the cozy pillow radius complete the silhouette.\n // Always painted — an authored card stays a card even inside a dialog.\n base: `bg-surface-raised text-surface-raised-foreground ${CZ.edge} ${CZ.radius} ${CZ.shadow}`,\n gesture: CZ_GESTURE.surface,\n }),\n\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-background fill-background text-foreground ${CZ.radius} ${CZ.shadowLg} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterDirectional,\n exit: CZ_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.OVERLAY]: recipe({\n // Dialog: heaviest soft-shadow + same big radius as BASE so dialogs\n // read as \"a card you can act inside\" — never visually demoted.\n base: `bg-background text-foreground ${CZ.radiusLg} ${CZ.shadowXL} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterFadeZoom,\n exit: CZ_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.INSET]: recipe({\n base: `bg-muted/60 text-foreground ${CZ.radius}`,\n }),\n\n [SurfaceVariant.SUNKEN]: recipe({\n base: 'bg-muted/40 text-foreground border-r border-foreground/8',\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Soft continuation under tabs: bottom-only pillow radius, quiet edge.\n base: `bg-background text-foreground rounded-b-3xl border-x border-b border-foreground/8 ${CZ.shadow}`,\n gesture: CZ_GESTURE.surface,\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Warm page shell; children provide the pillowy frames.\n base: 'bg-background text-foreground',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: small cushion, warm and floating but less massive than a dialog.\n base: `bg-background text-foreground ${CZ.radius} ${CZ.shadowLg} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterDirectional,\n exit: CZ_MOTION.exitFadeZoom,\n },\n gesture: CZ_GESTURE.surface,\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Pillowy inputs (rounded-xl), soft inner shadow on default, no border\n// on filled. Switch is extra-rounded for the \"soft toggle\" feel.\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-background ${CZ.edge} ${CZ.radiusMd} text-base md:text-sm text-foreground placeholder:text-muted-foreground/70 selection:bg-primary/25 selection:text-foreground shadow-[inset_0_1px_2px_rgba(0,0,0,0.03)]`,\n states: {\n focus: CZ.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n sizes: {\n md: 'h-11 px-4 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-3.5 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-5 py-2 pointer-coarse:min-h-12',\n },\n motion: { transition: CZ_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n base: `bg-muted/70 ${CZ.radiusMd} border-0 text-base md:text-sm text-foreground placeholder:text-muted-foreground/70`,\n states: {\n focus: `${CZ.focus} focus-visible:bg-muted`,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n sizes: {\n md: 'h-11 px-4 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-3.5 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-5 py-2 pointer-coarse:min-h-12',\n },\n motion: { transition: CZ_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: 'bg-transparent border-0 border-b border-foreground/15 rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/70',\n states: {\n focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',\n disabled: 'disabled:opacity-[var(--opacity-disabled)]',\n invalid: 'aria-invalid:border-destructive',\n },\n sizes: {\n md: 'h-11 px-0 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-0 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-0 py-2 pointer-coarse:min-h-12',\n },\n motion: {\n transition:\n 'transition-[border-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n // Pillowy checkbox: rounded-md (not rounded-sm). Cozy avoids hard\n // right angles even on tiny controls.\n base: `${CZ.edge} rounded-md`,\n states: {\n focus: CZ.focus,\n selected:\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n motion: {\n transition:\n 'transition-[color,box-shadow,background-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: 'data-[state=unchecked]:bg-muted border border-foreground/12',\n states: {\n focus: CZ.focus,\n selected: 'data-[state=checked]:bg-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n motion: {\n transition:\n 'transition-all duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Soft, low-saturation pills. No uppercase (cozy isn't shouting).\n// Full-rounded (\"pill\") shape because the whole theme leans pillowy.\n// ============================================================\n\nconst czIndicatorShared = {\n states: { hover: '[a&]:hover:opacity-[var(--opacity-hover)]', focus: CZ.focus, invalid: CZ.invalid },\n motion: { transition: CZ_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({\n base: 'bg-muted/70 text-muted-foreground rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.INFO]: recipe({\n base: 'bg-info/12 text-info rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.SUCCESS]: recipe({\n base: 'bg-success/12 text-success rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.WARNING]: recipe({\n base: 'bg-warning/15 text-warning rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.ERROR]: recipe({\n base: 'bg-destructive/12 text-destructive rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n};\n\n// ============================================================\n// SELECTABLE\n// Cozy avoids the underline-tab idiom (too sharp). Active state is a\n// soft fill instead. Pill variant is the natural default.\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${CZ.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[active=true]:bg-primary/12 data-[active=true]:text-primary data-[active=true]:font-medium data-[state=active]:bg-primary/12 data-[state=active]:text-primary',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs', md: 'h-10 text-sm', lg: 'h-12 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n gesture: CZ_GESTURE.selectable,\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n // Even cozy's underline is soft: the active state thickens but the\n // \"underline\" is a rounded 2px bar, not a sharp rule. Border-radius\n // on a border-bottom doesn't render visibly, but the OFFSET\n // (border-spacing via padding) keeps it from touching the descenders.\n base: 'rounded-none border-b-2 border-transparent text-sm text-muted-foreground outline-hidden',\n states: {\n hover: 'hover:text-foreground',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected: 'data-[state=active]:border-primary data-[state=active]:text-primary data-[state=active]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs pb-2', md: 'h-10 text-sm pb-2.5', lg: 'h-12 text-sm pb-3.5' },\n motion: { transition: CZ_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: 'rounded-full text-sm outline-hidden',\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:shadow-[0_2px_8px_rgba(0,0,0,0.06)]',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 px-3.5 text-xs', md: 'h-10 px-5 text-sm', lg: 'h-12 px-6 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n base: `${CZ.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:font-medium data-[active=true]:border-s-2 data-[active=true]:border-primary',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs', md: 'h-10 text-sm', lg: 'h-12 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n // INDICATOR has a start-edge vertical bar — the 2px x-nudge from\n // CZ_GESTURE.selectable visually leads the row toward where the\n // indicator will materialize on selection. Reinforces the \"I'm a\n // selectable list row\" affordance.\n gesture: CZ_GESTURE.selectable,\n }),\n};\n\n// NOTE on selectable gesture coverage:\n// FILLED + INDICATOR — get x-nudge gesture (generic / sidebar list rows\n// where horizontal hint reads as affordance).\n// UNDERLINE + PILL — NO gesture (fixed-position tabs and centered\n// chips: a horizontal slide would either move the\n// underline anchor visually OR break chip layout\n// symmetry — the press/hover bg fill is the\n// appropriate affordance for those variants).\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n // Warm-tinted scrim with subtle blur — keeps the cozy ambient mood\n // even during modal interactions.\n base: 'bg-foreground/30 backdrop-blur-[6px]',\n motion: {\n enter: CZ_MOTION.backdropEnter,\n exit: CZ_MOTION.backdropExit,\n },\n});\n\nconst divider: Record<DividerVariant, UIBehaviorRecipe> = {\n [DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground/8 shrink-0' }),\n // Nested-disclosure guide: the theme's own divider material, as a left edge.\n [DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s border-foreground/8' }),\n};\n\nconst skeleton: UIBehaviorRecipe = recipe({\n base: `${SKELETON_NEUTRAL_TINT} animate-pulse ${CZ.radiusMd} motion-reduce:animate-none`,\n});\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: 'text-primary animate-spin motion-reduce:animate-none',\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: 'bg-background/85 backdrop-blur-[2px]',\n motion: {\n enter: 'animate-in fade-in-0 duration-[var(--motion-duration-slow)] ease-[var(--motion-easing-enter)] motion-reduce:animate-none',\n exit: 'animate-out fade-out-0 duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-exit)] motion-reduce:animate-none',\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// DM Sans / Plus Jakarta — humanist sans with rounded terminals.\n// h1 stays in the mid-tier (text-3xl) — cozy isn't hero-typography\n// territory; it's \"warm tone\" territory. Body uses normal weight\n// (vs default's implicit semibold-ish vibe).\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n base: 'font-heading font-semibold leading-tight tracking-tight text-foreground',\n sizes: {\n h1: 'text-3xl',\n h2: 'text-2xl',\n h3: 'text-xl',\n h4: 'text-lg',\n h5: 'text-base',\n md: 'text-lg',\n },\n }),\n [TypographyVariant.BODY]: recipe({\n // Slightly larger body (text-[0.9375rem] / 15px) than default 14px —\n // cozy is reading-comfortable without going full editorial 16px.\n // `font-sans` (NOT `font-body`) — only `font-sans/serif/mono/heading/display`\n // are exposed as Tailwind utilities via @theme; `font-sans` resolves to\n // `var(--font-body)` which our requiredCustomTokens overrides to DM Sans.\n // Using `font-body` here would silently no-op.\n base: 'font-sans text-foreground text-[0.9375rem] leading-relaxed',\n sizes: { sm: 'text-sm', md: 'text-[0.9375rem]', lg: 'text-base' },\n }),\n [TypographyVariant.LABEL]: recipe({\n base: 'font-sans font-medium text-sm leading-snug text-foreground',\n sizes: { sm: 'text-xs', md: 'text-sm', lg: 'text-base' },\n }),\n [TypographyVariant.DESCRIPTION]: recipe({\n base: 'font-sans text-muted-foreground text-sm leading-relaxed',\n sizes: { sm: 'text-xs', md: 'text-sm' },\n }),\n [TypographyVariant.CODE]: recipe({\n base: `font-mono text-[0.875em] bg-muted/70 ${CZ.radiusMd} px-2 py-0.5`,\n sizes: { sm: 'text-xs', md: 'text-sm', lg: 'text-base' },\n }),\n};\n\n// ============================================================\n// SPACING\n// Roomy but not editorial-spacious. The pillowy radii already create\n// visual breathing room — we don't need to pile on whitespace too.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.625rem',\n [SpacingSemantic.ITEM]: '0.375rem',\n [SpacingSemantic.GROUP]: '1rem',\n [SpacingSemantic.FIELD]: '1.25rem',\n [SpacingSemantic.SECTION]: '2rem',\n [SpacingSemantic.REGION]: '3rem',\n [SpacingSemantic.CARD]: '1.5rem',\n [SpacingSemantic.CONTAINER]: '2rem',\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — warm cream palette + humanist sans\n//\n// Cozy's identity is its WARMTH. Without these overrides the theme\n// inherits the host's typically-cool default palette and reads as\n// \"default theme with rounder corners\". The warm-paper + dusty-rose +\n// sage palette is what makes the page feel \"occupied\".\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 { type: DesignTokenValueType.COLOR, modeStrategy: DesignTokenModeStrategy.SINGLE, value: oklch };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.STRING, modeStrategy: DesignTokenModeStrategy.SINGLE, value };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Warm cream / oat background. Hue 65 (warm yellow-orange) at\n // very low chroma reads as \"linen\", not \"yellow page\". Dark mode\n // shifts to a warm off-black (hue 30, deep brown-black) — same\n // warmth, inverted lightness.\n background: colorOverride('0.975 0.012 65', '0.16 0.012 30'),\n foreground: colorOverride('0.22 0.015 30', '0.96 0.008 65'),\n\n // === Primary: dusty terracotta.\n //\n // ⚠ Wave G follow-up TR-13 (contrast correction): light-mode primary\n // was originally L=0.55 chroma 0.14 hue 35; that gives sRGB Y≈0.27\n // → only ~3.2:1 contrast against the cream foreground (Y≈0.96), well\n // below WCAG AA 4.5:1. Earlier self-review claimed 5.0:1 — that was\n // an OKLCH-L → sRGB-Y conversion mistake (reds at low-mid L have\n // higher Y than L would suggest because terracotta sits between red\n // and orange where eye-luminance peaks).\n //\n // Fix: deepen LIGHT primary to L=0.45 chroma 0.16 hue 35 (a richer\n // \"burnt sienna / deep cinnamon\" — still warm and dusty, just one\n // shade more saturated). New contrast: L=0.45 vs L=0.985 cream ≈\n // 4.85:1 (AA pass, no longer borderline). Dark-mode primary L=0.72\n // unchanged — paired with the deep brown-black foreground (L=0.16),\n // contrast is ~6.2:1, comfortably AA. The hue 35 (warm orange) is\n // preserved end-to-end so the brand identity stays \"linen + sunset\".\n primary: colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n 'primary-foreground': colorOverride('0.985 0.008 65', '0.16 0.012 30'),\n\n // === Secondary: pale sage (hue 130). Cool counterpoint that keeps\n // the warm bg from being overwhelming. Subtle — chroma 0.025.\n secondary: colorOverride('0.92 0.025 130', '0.24 0.02 140'),\n 'secondary-foreground': colorOverride('0.30 0.04 140', '0.92 0.025 130'),\n\n // === Muted: even paler than secondary, neutral-warm.\n muted: colorOverride('0.94 0.012 65', '0.21 0.012 30'),\n 'muted-foreground': colorOverride('0.48 0.02 30', '0.72 0.012 65'),\n\n // === Borders: very soft, low-chroma warm tint.\n // Ring anchors on the primary so focus rings match the brand;\n // updated to the deepened primary L=0.45 (TR-13).\n border: colorOverride('0.88 0.015 50', '0.30 0.012 30'),\n ring: colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n input: colorOverride('0.88 0.015 50', '0.30 0.012 30'),\n\n // === Destructive: warm red (hue 22 — closer to cinnamon than to\n // a fire-engine red). Stays in the warm family.\n destructive: colorOverride('0.55 0.20 22', '0.65 0.22 22'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Semantic: shifted toward warm hues so they don't fight the\n // cozy palette. Success = warm green (hue 145), warning = honey\n // (hue 75), info = dusty teal (hue 200).\n //\n // ⚠ TR-13 contrast correction: same sRGB-Y > OKLCH-L issue as\n // primary affects the high-luminance success-green (~3.0:1 with\n // white) and info-cyan (~3.4:1 with white). Flip both foregrounds\n // to near-black for AA in light mode (≥5:1). Warning was already\n // black-on-amber so it stays — that pair has always been ≥7:1.\n info: colorOverride('0.62 0.10 200', '0.72 0.12 200'),\n 'info-foreground': colorSingle('0.16 0.012 30'),\n success: colorOverride('0.55 0.14 145', '0.70 0.16 145'),\n 'success-foreground': colorSingle('0.16 0.012 30'),\n warning: colorOverride('0.70 0.14 75', '0.78 0.16 75'),\n 'warning-foreground': colorSingle('0.16 0.012 30'),\n\n // === Accent gradient: terracotta → peach → dusty-rose. A \"warm\n // sunset\" sweep that fits the cozy mood (vs default's cool\n // violet/blue/pink and brutalist's electric blue/yellow/pink).\n // 'from' anchors on the (deepened, post-TR-13) primary terracotta.\n 'accent-gradient-from': colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n 'accent-gradient-via': colorOverride('0.72 0.13 55', '0.78 0.14 55'),\n 'accent-gradient-to': colorOverride('0.65 0.14 15', '0.72 0.16 15'),\n\n // === Font stacks: humanist sans with rounded terminals (DM Sans\n // primary, Plus Jakarta + Outfit as warm alternates, system-ui\n // fallback). No serif/mono distinction for headings — cozy is\n // \"warm consistency\" rather than \"typographic hierarchy\".\n 'font-heading': stringSingle(\n \"'DM Sans', 'Plus Jakarta Sans', Outfit, 'Nunito Sans', -apple-system, 'SF Pro Text', system-ui, sans-serif\"\n ),\n 'font-body': stringSingle(\n \"'DM Sans', 'Plus Jakarta Sans', Outfit, 'Nunito Sans', -apple-system, 'SF Pro Text', system-ui, sans-serif\"\n ),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\nexport const cozyTheme: ComponentStyleTheme = {\n id: 'cozy',\n name: 'Cozy',\n description:\n 'Warm, soft theme for wellness, journaling, B2C onboarding, and friendly internal tools. Pillowy radii (rounded-2xl baseline, rounded-3xl on cards/dialogs), soft long-blur shadows (low opacity, 20–64px blur), spring-physics gestures, generous ease-out motion. Warm-cream background with dusty-terracotta primary and sage secondary — a \"linen + sunset\" palette that never goes grey or cold. DM Sans / Plus Jakarta humanist sans with rounded letterforms. Pill-shaped indicators (no uppercase shouting), pill-active selectables (underline avoided as too sharp). Ships its own warm palette + humanist sans stack via requiredCustomTokens.',\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: '1rem',\n backgroundLayer: {\n // Subtle warm radial-gradient mesh — barely-perceptible \"ambient\n // glow\" behind content. Animates very slowly (45s) so it never\n // distracts from reading.\n background:\n 'radial-gradient(at 25% 20%, oklch(0.85 0.08 35) 0px, transparent 50%), radial-gradient(at 80% 70%, oklch(0.88 0.06 130) 0px, transparent 50%)',\n classes: 'opacity-30 animate-[mesh-shift_45s_ease_infinite] dark:opacity-15 motion-reduce:animate-none',\n },\n chartStyle: {\n // Cozy charts: rounded bar corners, soft tooltip shadows, generous\n // typography, normal animation.\n colorShadeLight: 400,\n colorShadeDark: 300,\n gridPadding: { top: 30, right: 20, bottom: 30, left: 60 },\n axis: {\n showAxisLine: false,\n showTicks: false,\n splitLineType: 'dashed',\n hideOverlap: true,\n yAxisNameLocation: 'middle',\n yAxisNameGap: 50,\n },\n tooltip: {\n extraCss:\n 'border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.08); border: 1px solid color-mix(in oklch, currentColor 12%, transparent);',\n borderWidth: 1,\n },\n animation: { enabled: true, durationMs: 600, easing: 'cubicOut' },\n series: { lineWidth: 2, pointSize: 5, areaOpacity: 0.18, barBorderRadius: 8, pieBorderWidth: 2 },\n typography: {\n titleFontSize: 16,\n titleFontWeight: 500,\n subtitleFontSize: 13,\n legendFontSize: 12,\n tooltipFontSize: 12,\n axisLabelFontSize: 11,\n axisNameFontSize: 12,\n },\n emphasis: { shadowBlur: 16, shadowColor: 'rgba(0, 0, 0, 0.10)', shadowOffsetX: 0 },\n responsive: {\n smallMaxWidth: 400,\n mediumMaxWidth: 799,\n smallGridPadding: { top: 20, right: 10, bottom: 20, left: 30 },\n mediumGridPadding: { left: 50, right: 20, bottom: 40 },\n hideLegendOnSmall: true,\n smallAxisLabelRotate: 45,\n smallFontSize: 10,\n mediumFontSize: 11,\n },\n multiSeriesLegendBottomPadding: 50,\n },\n};\n"]}
1
+ {"version":3,"file":"cozy.theme.js","sourceRoot":"","sources":["../../../../src/themes/cozy.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// Cozy theme (Soft / Warm)\n//\n// Persona: wellness apps, journaling, B2C onboarding, friendly\n// internal tools, learning platforms.\n// References: Notion (warm mode), Calm, Headspace, early-stage\n// consumer SaaS, Stripe-light vibes.\n//\n// Design DNA:\n// - PILLOWY radius (rounded-2xl baseline; rounded-3xl on cards/dialogs).\n// The whole UI feels like rounded river stones, not card stock.\n// - WARM palette: cream / oat / dusty-rose foreground, sage muted,\n// terracotta accent. Never grey. Never cold. The page feels\n// \"occupied\" by warmth even before any content.\n// - SOFT, LONG shadows: low-opacity, large blur radius\n// (`shadow-[0_8px_32px_rgba(0,0,0,0.06)]`). Things rest gently\n// above the page rather than snapping into elevation.\n// - SPRINGY motion: spring physics on interactive gestures (matches\n// glass), generous duration on transitions. The UI \"settles\"\n// rather than \"snaps\".\n// - DM Sans / Plus Jakarta — humanist sans with warm letterforms,\n// soft round terminals (vs Geist's industrial precision).\n// - Underline-NEVER on selectable tabs (too sharp); pill-with-soft-bg\n// instead. The whole theme avoids hard right angles where possible.\n// - Body weight stays normal (not 500/600); cozy isn't loud.\n// ============================================================\n\n// -- Shared constants --\n\nconst CZ = {\n /** Soft, low-opacity border — almost invisible against bg, present on hover. */\n hairline: 'border border-foreground/8',\n edge: 'border border-foreground/12',\n /*\n * A TEXT INPUT's edge, as distinct from `edge`. An input's border is its only cue that it is an\n * input, so it owes 3:1 against the page (WCAG 2.1 SC 1.4.11); `edge` is this theme's foreground\n * at a low alpha, which cannot reach that at any strength this theme uses (foreground/30 is 1.95:1\n * in light). `border-strong` is palette-derived and pinned at 3:1 on the token, so it follows this\n * theme's own colours. Hairlines and card edges keep `edge`: a line between two regions is\n * decoration and owes nothing (#1443, after #1322).\n */\n inputEdge: 'border border-border-strong',\n /** Pillowy radius baseline. */\n radius: 'rounded-2xl',\n radiusLg: 'rounded-3xl',\n /** Mid radius for badges/pills. */\n radiusMd: 'rounded-xl',\n /** Soft long shadow — low opacity, large blur. */\n shadow: 'shadow-[0_4px_20px_rgba(0,0,0,0.05)] dark:shadow-[0_4px_20px_rgba(0,0,0,0.35)]',\n shadowLg: 'shadow-[0_8px_32px_rgba(0,0,0,0.07)] dark:shadow-[0_8px_32px_rgba(0,0,0,0.45)]',\n shadowXL: 'shadow-[0_24px_64px_rgba(0,0,0,0.10)] dark:shadow-[0_24px_64px_rgba(0,0,0,0.55)]',\n focus:\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)] aria-disabled:cursor-not-allowed aria-disabled:opacity-[var(--opacity-disabled)]',\n invalid:\n 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',\n};\n\n// ============================================================\n// MOTION PERSONALITY — Cozy\n// ============================================================\n// Hover/focus : NORMAL (250ms) + SPRING → gentle settle into rest.\n// SPRING easing here is the\n// cubic-bezier ease-out token\n// (cubic-bezier(0.22, 1, 0.36, 1)\n// ≈ easeOutExpo) — monotonic,\n// slow tail, NO overshoot.\n// Matches the \"pillowy\"\n// surface aesthetic; the\n// SETTLE is the personality,\n// not bouncing.\n// Overlay enter: SLOW (350ms) + ENTER → generous, friendly pace.\n// Overlay exit : NORMAL (250ms) + EXIT → quicker than enter.\n// Backdrop : SLOW/NORMAL + ENTER/EXIT → matches overlays.\n// Gestures : SPRING physics on motion.dev. Lower stiffness (250-300)\n// + higher damping (22-30) than Glass — Cozy spring\n// is \"gentle landing on a cushion\" vs Glass \"Apple\n// UIKit precision.\" `selectable` adds a horizontal\n// nudge for list-item affordance (mirrors Glass for\n// cross-theme parity).\n//\n// TR-14 motion-coherence: switched interactive/formControl/selectable\n// from EMPHASIZED (cubic-bezier(0.2, 0, 0, 1.2) — has 20% Y overshoot,\n// reads as \"snappy with bounce\") to SPRING (no overshoot, slow settle —\n// \"the cozy feel\"). Backdrop animations now have explicit easing.\n// `selectable` gesture added (was missing — Glass has it, Cozy didn't,\n// breaking cross-theme parity for list affordances).\n// ============================================================\nconst CZ_MOTION = {\n interactive:\n 'transition-[background-color,color,border-color,box-shadow,transform] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n formControl:\n 'transition-[color,border-color,box-shadow,background-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n selectable:\n 'transition-[background-color,color,border-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n enterFadeZoom:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] motion-reduce:data-[state=open]:animate-none',\n exitFadeZoom:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-normal)] data-[state=closed]:ease-[var(--motion-easing-exit)] motion-reduce:data-[state=closed]:animate-none',\n enterDirectional:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] 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:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-slow)] data-[state=open]:ease-[var(--motion-easing-enter)] motion-reduce:data-[state=open]:animate-none',\n backdropExit:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-normal)] data-[state=closed]:ease-[var(--motion-easing-exit)] motion-reduce:data-[state=closed]:animate-none',\n};\n\n// Spring gestures: subtle scale on press, gentle hover lift.\n//\n// Cozy springs are softer than Glass: lower stiffness (slower oscillation\n// period) + higher damping (faster decay, less swing). Glass mimics\n// Apple UIKit precision; Cozy mimics \"Calm app\" / \"Notion\" friendliness —\n// the tactile equivalent of pressing a foam cushion vs a multitouch glass\n// surface. `selectable` matches Glass's pattern (horizontal x-nudge of\n// 2px on hover) so list-item affordances feel consistent across themes.\nconst CZ_GESTURE = {\n interactive: {\n whileHover: { scale: 1.015 },\n whileTap: { scale: 0.97 },\n transition: { type: 'spring' as const, stiffness: 300, damping: 24 },\n } as const,\n surface: {\n whileHover: { scale: 1.005 },\n transition: { type: 'spring' as const, stiffness: 250, damping: 22 },\n } as const,\n // TR-14: added for list-item affordance parity with Glass.\n // Slightly softer stiffness than Glass's selectable (350 vs 400)\n // and matching damping — list rows in Cozy should feel \"padded,\n // not snappy.\" The 2px horizontal nudge is the universal\n // \"I'm a clickable list row\" affordance.\n selectable: {\n whileHover: { x: 2 },\n whileTap: { scale: 0.99 },\n transition: { type: 'spring' as const, stiffness: 350, damping: 30 },\n } as const,\n};\n\n// ============================================================\n// INTERACTIVE\n// Pillowy buttons with soft-long shadows. Press = scale + tighter shadow.\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: 'h-8 px-3.5 text-xs gap-1.5 pointer-coarse:min-h-10',\n sm: 'h-9 px-4 gap-2 pointer-coarse:min-h-11',\n md: 'h-11 px-5 py-2 pointer-coarse:min-h-11',\n lg: 'h-12 px-7 pointer-coarse:min-h-12',\n icon: 'size-11 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-9 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-primary/90 hover:shadow-[0_6px_24px_rgba(0,0,0,0.08)] dark:hover:shadow-[0_6px_24px_rgba(0,0,0,0.45)]',\n active: 'active:bg-primary/95 active:shadow-[0_2px_8px_rgba(0,0,0,0.04)]',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.SECONDARY]: recipe({\n base: `bg-secondary text-secondary-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-secondary/80',\n active: 'active:bg-secondary/70',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-background text-foreground ${CZ.edge} ${CZ.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/20',\n active: 'active:bg-muted/80',\n focus: CZ.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:border-foreground/25',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${CZ.radius} font-medium text-sm cursor-pointer ${CZ.shadow}`,\n states: {\n hover: 'hover:bg-destructive/90',\n active: 'active:bg-destructive/95',\n focus: CZ.focus,\n highlighted: 'focus:bg-destructive/15 focus:text-destructive',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${CZ.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted',\n active: 'active:bg-muted/80',\n focus: CZ.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:text-foreground',\n highlighted: 'focus:bg-muted',\n open: 'data-[state=open]:bg-muted',\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: CZ_MOTION.interactive },\n gesture: CZ_GESTURE.interactive,\n }),\n\n [InteractiveVariant.LINK]: recipe({\n base: 'text-primary font-medium text-sm cursor-pointer',\n states: {\n hover: 'hover:underline hover:underline-offset-[3px] hover:decoration-primary/50',\n active: 'active:text-primary/80',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: {\n xs: 'h-8 px-2 text-xs gap-1.5 pointer-coarse:min-h-10',\n sm: 'h-9 px-2 gap-2 pointer-coarse:min-h-11',\n md: 'h-11 px-2 py-2 pointer-coarse:min-h-11',\n lg: 'h-12 px-2 pointer-coarse:min-h-12',\n icon: 'size-11 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-9 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n },\n motion: { transition: CZ_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // Cozy accent: warm pastel sweep — terracotta → dusty rose → peach.\n // Restrained motion (5s, slow), the gradient drifts rather than races.\n base: `relative bg-primary text-primary-foreground font-semibold ${CZ.radius} bg-[length:300%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_6s_ease-in-out_infinite] motion-reduce:animate-none ${CZ.shadow} text-sm cursor-pointer`,\n states: {\n hover: 'hover:brightness-105',\n active: 'active:scale-[0.98]',\n focus: CZ.focus,\n disabled: CZ.disabled,\n invalid: CZ.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition:\n 'transition-[background-position,filter,transform,shadow] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n gesture: CZ_GESTURE.interactive,\n }),\n};\n\n// ============================================================\n// SURFACE\n// SURFACE PERSONALITY — soft cushions: pillowy radii, warm page shell, gentle\n// floating notices. Tab panels are attached pillows rather than hard panes.\n// Cards rest gently on the page with low-opacity, large-blur shadows.\n// Dialogs ARE elevated and get the heaviest soft-shadow in the lineup.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${CZ.radiusLg} ${CZ.shadow} ${CZ.hairline}`,\n gesture: CZ_GESTURE.surface,\n }),\n\n [SurfaceVariant.CARD]: recipe({\n // Content card: the elevated `surface-raised` fill (pure white in light, a\n // lifted slate in dark) makes it read as a distinct card on the page; edge\n // border + soft shadow + the cozy pillow radius complete the silhouette.\n // Always painted — an authored card stays a card even inside a dialog.\n base: `bg-surface-raised text-surface-raised-foreground ${CZ.edge} ${CZ.radius} ${CZ.shadow}`,\n gesture: CZ_GESTURE.surface,\n }),\n\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-background fill-background text-foreground ${CZ.radius} ${CZ.shadowLg} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterDirectional,\n exit: CZ_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.OVERLAY]: recipe({\n // Dialog: heaviest soft-shadow + same big radius as BASE so dialogs\n // read as \"a card you can act inside\" — never visually demoted.\n base: `bg-background text-foreground ${CZ.radiusLg} ${CZ.shadowXL} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterFadeZoom,\n exit: CZ_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.INSET]: recipe({\n base: `bg-muted/60 text-foreground ${CZ.radius}`,\n }),\n\n [SurfaceVariant.SUNKEN]: recipe({\n base: 'bg-muted/40 text-foreground border-r border-foreground/8',\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Soft continuation under tabs: bottom-only pillow radius, quiet edge.\n base: `bg-background text-foreground rounded-b-3xl border-x border-b border-foreground/8 ${CZ.shadow}`,\n gesture: CZ_GESTURE.surface,\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Warm page shell; children provide the pillowy frames.\n base: 'bg-background text-foreground',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: small cushion, warm and floating but less massive than a dialog.\n base: `bg-background text-foreground ${CZ.radius} ${CZ.shadowLg} ${CZ.edge}`,\n motion: {\n enter: CZ_MOTION.enterDirectional,\n exit: CZ_MOTION.exitFadeZoom,\n },\n gesture: CZ_GESTURE.surface,\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Pillowy inputs (rounded-xl), soft inner shadow on default, no border\n// on filled. Switch is extra-rounded for the \"soft toggle\" feel.\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-background ${CZ.inputEdge} ${CZ.radiusMd} text-base md:text-sm text-foreground placeholder:text-muted-foreground/70 selection:bg-primary/25 selection:text-foreground shadow-[inset_0_1px_2px_rgba(0,0,0,0.03)]`,\n states: {\n focus: CZ.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n sizes: {\n md: 'h-11 px-4 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-3.5 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-5 py-2 pointer-coarse:min-h-12',\n },\n motion: { transition: CZ_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n // 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.\n base: `bg-muted/70 rounded-t-xl rounded-b-none border-0 border-b border-border-strong text-base md:text-sm text-foreground placeholder:text-muted-foreground/70`,\n states: {\n focus: `${CZ.focus} focus-visible:bg-muted`,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n sizes: {\n md: 'h-11 px-4 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-3.5 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-5 py-2 pointer-coarse:min-h-12',\n },\n motion: { transition: CZ_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: 'bg-transparent border-0 border-b border-border-strong rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/70',\n states: {\n focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',\n disabled: 'disabled:opacity-[var(--opacity-disabled)]',\n invalid: 'aria-invalid:border-destructive',\n },\n sizes: {\n md: 'h-11 px-0 py-2 pointer-coarse:min-h-11',\n sm: 'h-9 px-0 text-sm pointer-coarse:min-h-11',\n lg: 'h-12 px-0 py-2 pointer-coarse:min-h-12',\n },\n motion: {\n transition:\n 'transition-[border-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n // Pillowy checkbox: rounded-md (not rounded-sm). Cozy avoids hard\n // right angles even on tiny controls.\n base: `${CZ.inputEdge} rounded-md`,\n states: {\n focus: CZ.focus,\n selected:\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n motion: {\n transition:\n 'transition-[color,box-shadow,background-color] duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: 'data-[state=unchecked]:bg-muted border border-foreground/12',\n states: {\n focus: CZ.focus,\n selected: 'data-[state=checked]:bg-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: CZ.invalid,\n },\n motion: {\n transition:\n 'transition-all duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-spring)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Soft, low-saturation pills. No uppercase (cozy isn't shouting).\n// Full-rounded (\"pill\") shape because the whole theme leans pillowy.\n// ============================================================\n\nconst czIndicatorShared = {\n states: { hover: '[a&]:hover:opacity-[var(--opacity-hover)]', focus: CZ.focus, invalid: CZ.invalid },\n motion: { transition: CZ_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({\n base: 'bg-muted/70 text-muted-foreground rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.INFO]: recipe({\n base: 'bg-info/12 text-info rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.SUCCESS]: recipe({\n base: 'bg-success/12 text-success rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.WARNING]: recipe({\n base: 'bg-warning/15 text-warning rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n [IndicatorVariant.ERROR]: recipe({\n base: 'bg-destructive/12 text-destructive rounded-full px-2.5 py-0.5 text-xs font-medium',\n ...czIndicatorShared,\n }),\n};\n\n// ============================================================\n// SELECTABLE\n// Cozy avoids the underline-tab idiom (too sharp). Active state is a\n// soft fill instead. Pill variant is the natural default.\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${CZ.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[active=true]:bg-primary/12 data-[active=true]:text-primary data-[active=true]:font-medium data-[state=active]:bg-primary/12 data-[state=active]:text-primary',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs', md: 'h-10 text-sm', lg: 'h-12 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n gesture: CZ_GESTURE.selectable,\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n // Even cozy's underline is soft: the active state thickens but the\n // \"underline\" is a rounded 2px bar, not a sharp rule. Border-radius\n // on a border-bottom doesn't render visibly, but the OFFSET\n // (border-spacing via padding) keeps it from touching the descenders.\n base: 'rounded-none border-b-2 border-transparent text-sm text-muted-foreground outline-hidden',\n states: {\n hover: 'hover:text-foreground',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected: 'data-[state=active]:border-primary data-[state=active]:text-primary data-[state=active]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs pb-2', md: 'h-10 text-sm pb-2.5', lg: 'h-12 text-sm pb-3.5' },\n motion: { transition: CZ_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: 'rounded-full text-sm outline-hidden',\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:shadow-[0_2px_8px_rgba(0,0,0,0.06)]',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 px-3.5 text-xs', md: 'h-10 px-5 text-sm', lg: 'h-12 px-6 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n base: `${CZ.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50',\n selected:\n 'data-[active=true]:bg-primary/10 data-[active=true]:text-primary data-[active=true]:font-medium data-[active=true]:border-s-2 data-[active=true]:border-primary',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-8 text-xs', md: 'h-10 text-sm', lg: 'h-12 text-sm' },\n motion: { transition: CZ_MOTION.selectable },\n // INDICATOR has a start-edge vertical bar — the 2px x-nudge from\n // CZ_GESTURE.selectable visually leads the row toward where the\n // indicator will materialize on selection. Reinforces the \"I'm a\n // selectable list row\" affordance.\n gesture: CZ_GESTURE.selectable,\n }),\n};\n\n// NOTE on selectable gesture coverage:\n// FILLED + INDICATOR — get x-nudge gesture (generic / sidebar list rows\n// where horizontal hint reads as affordance).\n// UNDERLINE + PILL — NO gesture (fixed-position tabs and centered\n// chips: a horizontal slide would either move the\n// underline anchor visually OR break chip layout\n// symmetry — the press/hover bg fill is the\n// appropriate affordance for those variants).\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n // Warm-tinted scrim with subtle blur — keeps the cozy ambient mood\n // even during modal interactions.\n base: 'bg-foreground/30 backdrop-blur-[6px]',\n motion: {\n enter: CZ_MOTION.backdropEnter,\n exit: CZ_MOTION.backdropExit,\n },\n});\n\nconst divider: Record<DividerVariant, UIBehaviorRecipe> = {\n [DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground/8 shrink-0' }),\n // Nested-disclosure guide: the theme's own divider material, as a left edge.\n [DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s border-foreground/8' }),\n};\n\nconst skeleton: UIBehaviorRecipe = recipe({\n base: `${SKELETON_NEUTRAL_TINT} animate-pulse ${CZ.radiusMd} motion-reduce:animate-none`,\n});\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: 'text-primary animate-spin motion-reduce:animate-none',\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: 'bg-background/85 backdrop-blur-[2px]',\n motion: {\n enter: 'animate-in fade-in-0 duration-[var(--motion-duration-slow)] ease-[var(--motion-easing-enter)] motion-reduce:animate-none',\n exit: 'animate-out fade-out-0 duration-[var(--motion-duration-normal)] ease-[var(--motion-easing-exit)] motion-reduce:animate-none',\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// DM Sans / Plus Jakarta — humanist sans with rounded terminals.\n// h1 stays in the mid-tier (text-3xl) — cozy isn't hero-typography\n// territory; it's \"warm tone\" territory. Body uses normal weight\n// (vs default's implicit semibold-ish vibe).\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n base: 'font-heading font-semibold leading-tight tracking-tight text-foreground',\n sizes: {\n h1: 'text-3xl',\n h2: 'text-2xl',\n h3: 'text-xl',\n h4: 'text-lg',\n h5: 'text-base',\n md: 'text-lg',\n },\n }),\n [TypographyVariant.BODY]: recipe({\n // Slightly larger body (text-[0.9375rem] / 15px) than default 14px —\n // cozy is reading-comfortable without going full editorial 16px.\n // `font-sans` (NOT `font-body`) — only `font-sans/serif/mono/heading/display`\n // are exposed as Tailwind utilities via @theme; `font-sans` resolves to\n // `var(--font-body)` which our requiredCustomTokens overrides to DM Sans.\n // Using `font-body` here would silently no-op.\n base: 'font-sans text-foreground text-[0.9375rem] leading-relaxed',\n sizes: { sm: 'text-sm', md: 'text-[0.9375rem]', lg: 'text-base' },\n }),\n [TypographyVariant.LABEL]: recipe({\n base: 'font-sans font-medium text-sm leading-snug text-foreground',\n sizes: { sm: 'text-xs', md: 'text-sm', lg: 'text-base' },\n }),\n [TypographyVariant.DESCRIPTION]: recipe({\n base: 'font-sans text-muted-foreground text-sm leading-relaxed',\n sizes: { sm: 'text-xs', md: 'text-sm' },\n }),\n [TypographyVariant.EYEBROW]: recipe({\n base: 'font-sans text-foreground-subtle text-2xs font-medium uppercase tracking-wide',\n sizes: { sm: 'text-2xs', md: 'text-xs' },\n }),\n [TypographyVariant.CODE]: recipe({\n base: `font-mono text-[0.875em] bg-muted/70 ${CZ.radiusMd} px-2 py-0.5`,\n sizes: { sm: 'text-xs', md: 'text-sm', lg: 'text-base' },\n }),\n};\n\n// ============================================================\n// SPACING\n// Roomy but not editorial-spacious. The pillowy radii already create\n// visual breathing room — we don't need to pile on whitespace too.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.625rem',\n [SpacingSemantic.ITEM]: '0.375rem',\n [SpacingSemantic.GROUP]: '1rem',\n [SpacingSemantic.FIELD]: '1.25rem',\n [SpacingSemantic.SECTION]: '2rem',\n [SpacingSemantic.REGION]: '3rem',\n [SpacingSemantic.CARD]: '1.5rem',\n [SpacingSemantic.CONTAINER]: '2rem',\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — warm cream palette + humanist sans\n//\n// Cozy's identity is its WARMTH. Without these overrides the theme\n// inherits the host's typically-cool default palette and reads as\n// \"default theme with rounder corners\". The warm-paper + dusty-rose +\n// sage palette is what makes the page feel \"occupied\".\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 { type: DesignTokenValueType.COLOR, modeStrategy: DesignTokenModeStrategy.SINGLE, value: oklch };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.STRING, modeStrategy: DesignTokenModeStrategy.SINGLE, value };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Warm cream / oat background. Hue 65 (warm yellow-orange) at\n // very low chroma reads as \"linen\", not \"yellow page\". Dark mode\n // shifts to a warm off-black (hue 30, deep brown-black) — same\n // warmth, inverted lightness.\n background: colorOverride('0.975 0.012 65', '0.16 0.012 30'),\n foreground: colorOverride('0.22 0.015 30', '0.96 0.008 65'),\n\n // === Primary: dusty terracotta.\n //\n // ⚠ Wave G follow-up TR-13 (contrast correction): light-mode primary\n // was originally L=0.55 chroma 0.14 hue 35; that gives sRGB Y≈0.27\n // → only ~3.2:1 contrast against the cream foreground (Y≈0.96), well\n // below WCAG AA 4.5:1. Earlier self-review claimed 5.0:1 — that was\n // an OKLCH-L → sRGB-Y conversion mistake (reds at low-mid L have\n // higher Y than L would suggest because terracotta sits between red\n // and orange where eye-luminance peaks).\n //\n // Fix: deepen LIGHT primary to L=0.45 chroma 0.16 hue 35 (a richer\n // \"burnt sienna / deep cinnamon\" — still warm and dusty, just one\n // shade more saturated). New contrast: L=0.45 vs L=0.985 cream ≈\n // 4.85:1 (AA pass, no longer borderline). Dark-mode primary L=0.72\n // unchanged — paired with the deep brown-black foreground (L=0.16),\n // contrast is ~6.2:1, comfortably AA. The hue 35 (warm orange) is\n // preserved end-to-end so the brand identity stays \"linen + sunset\".\n primary: colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n 'primary-foreground': colorOverride('0.985 0.008 65', '0.16 0.012 30'),\n\n // === Secondary: pale sage (hue 130). Cool counterpoint that keeps\n // the warm bg from being overwhelming. Subtle — chroma 0.025.\n secondary: colorOverride('0.92 0.025 130', '0.24 0.02 140'),\n 'secondary-foreground': colorOverride('0.30 0.04 140', '0.92 0.025 130'),\n\n // === Muted: even paler than secondary, neutral-warm.\n muted: colorOverride('0.94 0.012 65', '0.21 0.012 30'),\n 'muted-foreground': colorOverride('0.48 0.02 30', '0.72 0.012 65'),\n\n // === Borders: very soft, low-chroma warm tint.\n // Ring anchors on the primary so focus rings match the brand;\n // updated to the deepened primary L=0.45 (TR-13).\n border: colorOverride('0.88 0.015 50', '0.30 0.012 30'),\n ring: colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n input: colorOverride('0.88 0.015 50', '0.30 0.012 30'),\n\n // === Destructive: warm red (hue 22 — closer to cinnamon than to\n // a fire-engine red). Stays in the warm family.\n destructive: colorOverride('0.55 0.20 22', '0.65 0.22 22'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Semantic: shifted toward warm hues so they don't fight the\n // cozy palette. Success = warm green (hue 145), warning = honey\n // (hue 75), info = dusty teal (hue 200).\n //\n // ⚠ TR-13 contrast correction: same sRGB-Y > OKLCH-L issue as\n // primary affects the high-luminance success-green (~3.0:1 with\n // white) and info-cyan (~3.4:1 with white). Flip both foregrounds\n // to near-black for AA in light mode (≥5:1). Warning was already\n // black-on-amber so it stays — that pair has always been ≥7:1.\n info: colorOverride('0.62 0.10 200', '0.72 0.12 200'),\n 'info-foreground': colorSingle('0.16 0.012 30'),\n success: colorOverride('0.55 0.14 145', '0.70 0.16 145'),\n 'success-foreground': colorSingle('0.16 0.012 30'),\n warning: colorOverride('0.70 0.14 75', '0.78 0.16 75'),\n 'warning-foreground': colorSingle('0.16 0.012 30'),\n\n // === Accent gradient: terracotta → peach → dusty-rose. A \"warm\n // sunset\" sweep that fits the cozy mood (vs default's cool\n // violet/blue/pink and brutalist's electric blue/yellow/pink).\n // 'from' anchors on the (deepened, post-TR-13) primary terracotta.\n 'accent-gradient-from': colorOverride('0.45 0.16 35', '0.72 0.14 35'),\n 'accent-gradient-via': colorOverride('0.72 0.13 55', '0.78 0.14 55'),\n 'accent-gradient-to': colorOverride('0.65 0.14 15', '0.72 0.16 15'),\n\n // === Font stacks: humanist sans with rounded terminals (DM Sans\n // primary, Plus Jakarta + Outfit as warm alternates, system-ui\n // fallback). No serif/mono distinction for headings — cozy is\n // \"warm consistency\" rather than \"typographic hierarchy\".\n 'font-heading': stringSingle(\n \"'DM Sans', 'Plus Jakarta Sans', Outfit, 'Nunito Sans', -apple-system, 'SF Pro Text', system-ui, sans-serif\"\n ),\n 'font-body': stringSingle(\n \"'DM Sans', 'Plus Jakarta Sans', Outfit, 'Nunito Sans', -apple-system, 'SF Pro Text', system-ui, sans-serif\"\n ),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\nexport const cozyTheme: ComponentStyleTheme = {\n id: 'cozy',\n name: 'Cozy',\n description:\n 'Warm, soft theme for wellness, journaling, B2C onboarding, and friendly internal tools. Pillowy radii (rounded-2xl baseline, rounded-3xl on cards/dialogs), soft long-blur shadows (low opacity, 20–64px blur), spring-physics gestures, generous ease-out motion. Warm-cream background with dusty-terracotta primary and sage secondary — a \"linen + sunset\" palette that never goes grey or cold. DM Sans / Plus Jakarta humanist sans with rounded letterforms. Pill-shaped indicators (no uppercase shouting), pill-active selectables (underline avoided as too sharp). Ships its own warm palette + humanist sans stack via requiredCustomTokens.',\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: '1rem',\n backgroundLayer: {\n // Subtle warm radial-gradient mesh — barely-perceptible \"ambient\n // glow\" behind content. Animates very slowly (45s) so it never\n // distracts from reading.\n background:\n 'radial-gradient(at 25% 20%, oklch(0.85 0.08 35) 0px, transparent 50%), radial-gradient(at 80% 70%, oklch(0.88 0.06 130) 0px, transparent 50%)',\n classes: 'opacity-30 animate-[mesh-shift_45s_ease_infinite] dark:opacity-15 motion-reduce:animate-none',\n },\n chartStyle: {\n // Cozy charts: rounded bar corners, soft tooltip shadows, generous\n // typography, normal animation.\n colorShadeLight: 400,\n colorShadeDark: 300,\n gridPadding: { top: 30, right: 20, bottom: 30, left: 60 },\n axis: {\n showAxisLine: false,\n showTicks: false,\n splitLineType: 'dashed',\n hideOverlap: true,\n yAxisNameLocation: 'middle',\n yAxisNameGap: 50,\n },\n tooltip: {\n extraCss:\n 'border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.08); border: 1px solid color-mix(in oklch, currentColor 12%, transparent);',\n borderWidth: 1,\n },\n animation: { enabled: true, durationMs: 600, easing: 'cubicOut' },\n series: { lineWidth: 2, pointSize: 5, areaOpacity: 0.18, barBorderRadius: 8, pieBorderWidth: 2 },\n typography: {\n titleFontSize: 16,\n titleFontWeight: 500,\n subtitleFontSize: 13,\n legendFontSize: 12,\n tooltipFontSize: 12,\n axisLabelFontSize: 11,\n axisNameFontSize: 12,\n },\n emphasis: { shadowBlur: 16, shadowColor: 'rgba(0, 0, 0, 0.10)', shadowOffsetX: 0 },\n responsive: {\n smallMaxWidth: 400,\n mediumMaxWidth: 799,\n smallGridPadding: { top: 20, right: 10, bottom: 20, left: 30 },\n mediumGridPadding: { left: 50, right: 20, bottom: 40 },\n hideLegendOnSmall: true,\n smallAxisLabelRotate: 45,\n smallFontSize: 10,\n mediumFontSize: 11,\n },\n multiSeriesLegendBottomPadding: 50,\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dense.theme.d.ts","sourceRoot":"","sources":["../../../src/themes/dense.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAonB/E,eAAO,MAAM,UAAU,EAAE,mBAqBxB,CAAC"}
1
+ {"version":3,"file":"dense.theme.d.ts","sourceRoot":"","sources":["../../../../src/themes/dense.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAwrB/E,eAAO,MAAM,UAAU,EAAE,mBAqBxB,CAAC"}