@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":"tabs.js","sourceRoot":"","sources":["../../../../src/components/sections/tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\n\nimport {\n TabsCompound,\n createCompoundPreset,\n cn,\n useUI,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { FrontendComponentType, SelectableVariant, SurfaceVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\n\n/**\n * Orientation shared from TabsRoot down to List/Trigger so each sub-component can\n * choose the right `SELECTABLE` recipe. Radix exposes orientation only as a\n * `data-orientation` DOM attribute, but a recipe's utility strings (which already\n * carry `data-[state=active]:…`) can't be re-scoped per orientation from a class\n * list — so the choice is made in JS here.\n *\n * Horizontal tabs use `UNDERLINE` (a bottom-border indicator on separated items —\n * the canonical modern-SaaS navigation-tab look: \"separated = tabs, connected by\n * a track = segmented control\"). The vertical rail keeps `FILLED` (a soft fill on\n * the selected rail item).\n */\nconst TabsOrientationContext = React.createContext<'horizontal' | 'vertical'>('horizontal')\n\nfunction TabsRoot({\n className,\n orientation = 'horizontal',\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>): React.JSX.Element {\n const resolved = orientation === 'vertical' ? 'vertical' : 'horizontal'\n return (\n <TabsOrientationContext.Provider value={resolved}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n orientation={orientation}\n className={cn(\"flex flex-col gap-element data-[orientation=vertical]:flex-row data-[orientation=vertical]:gap-card\", className)}\n {...props}\n />\n </TabsOrientationContext.Provider>\n )\n}\n\n/**\n * Overflow state of the horizontal scrollport — which edges have more content.\n *\n * Updated from three signals, because each misses a case the others catch: the\n * `scroll` listener (user scrolled), a `ResizeObserver` on the list (viewport\n * grew/shrank — the common \"window resized\" case), and a per-render effect\n * (tab COUNT changed — children resizing does not move the list's own box, so\n * the observer cannot see it).\n */\nfunction useHorizontalOverflow(ref: React.RefObject<HTMLElement | null>): { start: boolean; end: boolean } {\n const [overflow, setOverflow] = React.useState({ start: false, end: false })\n\n const update = React.useCallback(() => {\n const el = ref.current\n if (!el) return\n // 1px slack: fractional layout widths make scrollLeft/scrollWidth disagree by <1.\n const start = el.scrollLeft > 1\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setOverflow((prev) => (prev.start === start && prev.end === end ? prev : { start, end }))\n }, [ref])\n\n React.useEffect(() => {\n const el = ref.current\n if (!el) return\n el.addEventListener('scroll', update, { passive: true })\n const observer = new ResizeObserver(update)\n observer.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n observer.disconnect()\n }\n }, [ref, update])\n\n // No dependency array on purpose — re-measures after every render, which is\n // what catches content-only changes (a tab added/removed, a label resolving\n // from i18n). Three numeric reads; cheap enough not to gate.\n React.useEffect(update)\n\n return overflow\n}\n\n/** Width of each fade/affordance zone. One constant so the mask and the button agree. */\nconst TABS_FADE_ZONE = '2.5rem'\n\n/**\n * The edge fade, as a MASK on the strip rather than a gradient painted over it.\n *\n * A painted gradient has to name the colour it fades FROM, and no colour is\n * right: measured on the workbench, the strip sits on `bg-surface-raised`\n * (oklch 0.208) while `--background` is oklch 0.129, so an overlay fading to\n * the background token washed a visibly wrong band across the strip — and it\n * would be wrong differently on every surface a tab strip can sit on (card,\n * dialog, panel) and in every theme.\n *\n * Masking fades the CONTENT to transparency instead, revealing whatever is\n * actually behind it. It needs no colour token, so it is correct on every\n * surface and every theme by construction.\n */\nfunction edgeFadeMask(overflow: { start: boolean; end: boolean }): string | undefined {\n if (!overflow.start && !overflow.end) return undefined\n const stops = [\n overflow.start ? `transparent 0, black ${TABS_FADE_ZONE}` : 'black 0',\n overflow.end ? `black calc(100% - ${TABS_FADE_ZONE}), transparent 100%` : 'black 100%',\n ]\n return `linear-gradient(to right, ${stops.join(', ')})`\n}\n\n/**\n * One edge's slide affordance: the DISCREET control the design asks for — a\n * quiet chevron over the faded zone, with no box and no background of its own\n * (the mask above is what makes room for it). Mouse-only by intent\n * (`aria-hidden`, unfocusable): keyboard users already reach every tab through\n * the tab list's roving arrow-key focus, so exposing this to the tab order\n * would add a stop that does nothing arrows don't.\n */\nfunction TabsListSlideAffordance({ side, onSlide }: { side: 'start' | 'end'; onSlide: () => void }): React.JSX.Element {\n const Chevron = side === 'start' ? ChevronLeft : ChevronRight\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n data-slot=\"tabs-list-slide\"\n data-side={side}\n onClick={onSlide}\n style={{ width: TABS_FADE_ZONE }}\n className={cn(\n \"absolute inset-y-0 z-10 flex cursor-pointer items-center border-0 bg-transparent p-0\",\n side === 'start' ? \"left-0 justify-start\" : \"right-0 justify-end\",\n )}\n >\n <Chevron className=\"size-4 text-muted-foreground opacity-60 transition-opacity hover:opacity-100\" />\n </button>\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const listRef = React.useRef<HTMLDivElement>(null)\n const overflow = useHorizontalOverflow(listRef)\n\n /*\n * Vertical wheel input slides the strip horizontally — the strip is a\n * one-axis surface, so a wheel over it can only mean \"move along it\". A\n * NATIVE non-passive listener, not React `onWheel`: React registers wheel\n * passively at the root, so `preventDefault()` there is ignored and every\n * translated tick would also scroll the page behind the strip.\n */\n React.useEffect(() => {\n const el = listRef.current\n if (!el || isVertical) return\n const onWheel = (event: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return\n const delta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (delta === 0) return\n el.scrollLeft += delta\n event.preventDefault()\n }\n el.addEventListener('wheel', onWheel, { passive: false })\n return () => el.removeEventListener('wheel', onWheel)\n }, [isVertical])\n\n const fadeMask = edgeFadeMask(overflow)\n\n const slideBy = React.useCallback((direction: 1 | -1) => {\n const el = listRef.current\n if (!el) return\n el.scrollBy({ left: direction * el.clientWidth * 0.6, behavior: 'smooth' })\n }, [])\n\n if (isVertical) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n // Vertical: clean nav rail (column of items, no boxed container).\n className={cn(\"flex flex-col items-stretch justify-start gap-item-xs\", className)}\n {...props}\n />\n )\n }\n\n /*\n * Horizontal: underline tab bar that SCROLLS when it overflows, instead of\n * widening the page (measured on the workbench artifact list, whose concern\n * tabs outgrew the viewport).\n *\n * ## Why the bottom rule is a wrapper layer, not `border-b` on the list\n *\n * Becoming a scrollport is what forces the restructure: `overflow-x: auto`\n * makes `overflow-y` compute to a clipping value, and the old geometry —\n * `border-b` on the list with `-mb-px` triggers overlapping their 2px\n * indicator onto the 1px rule — needs the trigger to paint one pixel PAST\n * the list's content edge, which a scrollport clips. So the rule is drawn by\n * a non-scrolling absolutely-positioned layer in a wrapper, the triggers\n * drop the overlap trick, and the indicator's bottom pixel lands on the rule\n * because both sit on the wrapper's last pixel row. Same rendered result,\n * scroll-safe.\n *\n * The scrollbar itself is suppressed on every engine (`scrollbar-width` for\n * Firefox, the `::-webkit-scrollbar` pseudo elsewhere): a native horizontal\n * scrollbar under a tab strip — Windows most visibly — reads as a broken\n * layout, and the gradient affordances + wheel translation replace what it\n * afforded.\n */\n return (\n <div data-slot=\"tabs-list-scrollport\" className=\"relative w-full\">\n {/* The full-width rule lives OUTSIDE the masked strip, so the edge fade never eats it. */}\n <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border\" />\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n style={{ maskImage: fadeMask, WebkitMaskImage: fadeMask }}\n className={cn(\n \"relative flex w-full items-center gap-card overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n {overflow.start && <TabsListSlideAffordance side=\"start\" onSlide={() => slideBy(-1)} />}\n {overflow.end && <TabsListSlideAffordance side=\"end\" onSlide={() => slideBy(1)} />}\n </div>\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const { getRecipe } = useUI()\n // Vertical rail → FILLED (soft fill on select); horizontal → UNDERLINE.\n const recipe = getRecipe(UIBehavior.SELECTABLE, isVertical ? SelectableVariant.FILLED : SelectableVariant.UNDERLINE)\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n // `cursor-pointer` sits here rather than in the recipe, matching the\n // accordion trigger: an element that switches the visible panel must\n // read as clickable whatever the theme dresses it in.\n \"inline-flex cursor-pointer items-center gap-1.5 text-sm font-medium whitespace-nowrap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n isVertical\n // Vertical: full-width, left-aligned rail item (FILLED recipe fills it).\n ? \"w-full justify-start rounded-md px-card-sm py-item\"\n // Horizontal: content-width underline tab (UNDERLINE recipe draws the\n // bottom border). No `-mb-px` overlap here: the list is a scrollport\n // (which would clip it) and the 1px rule is the wrapper's own layer,\n // sharing the wrapper's last pixel row with this indicator.\n : \"justify-center px-card-sm py-item\",\n // Style from the orientation-appropriate SELECTABLE recipe.\n recipe.base,\n recipe.states.focus,\n recipe.states.selected,\n recipe.states.disabled,\n recipe.motion.transition,\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element {\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.TAB_PANEL}>\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n </Surface>\n )\n}\n\nexport const Tabs = createCompoundPreset<TabsCompound>(TabsRoot, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent })\n"]}
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../../../src/components/sections/tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\n\nimport {\n TabsCompound,\n TabsLevel,\n TabsLevelContext,\n createCompoundPreset,\n cn,\n useUI,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\nimport type { TabsProps, TabsTriggerProps } from '@wildo-ai/saas-frontend-lib';\n\nimport { IndicatorVariant, SelectableVariant, SurfaceVariant, UIBehavior } from \"@wildo-ai/presets-components-models\"\n\n/**\n * Orientation shared from TabsRoot down to List/Trigger so each sub-component can\n * choose the right `SELECTABLE` recipe. Radix exposes orientation only as a\n * `data-orientation` DOM attribute, but a recipe's utility strings (which already\n * carry `data-[state=active]:…`) can't be re-scoped per orientation from a class\n * list — so the choice is made in JS here.\n *\n * Horizontal tabs use `UNDERLINE` (a bottom-border indicator on separated items —\n * the canonical modern-SaaS navigation-tab look: \"separated = tabs, connected by\n * a track = segmented control\"). The vertical rail keeps `FILLED` (a soft fill on\n * the selected rail item).\n */\nconst TabsOrientationContext = React.createContext<'horizontal' | 'vertical'>('horizontal')\n\nfunction TabsRoot({\n className,\n orientation = 'horizontal',\n level,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root> & Pick<TabsProps, 'level'>): React.JSX.Element {\n const resolved = orientation === 'vertical' ? 'vertical' : 'horizontal'\n /*\n * The LEVEL defaults from nesting (`TabsLevel`): inside another tab set this one is SECONDARY\n * unless the caller says otherwise. Read from the contract's own context so every preset —\n * and the section pipeline, which never names a level — takes part in the same rule.\n */\n const enclosing = React.useContext(TabsLevelContext)\n const resolvedLevel = level ?? (enclosing === null ? TabsLevel.PRIMARY : TabsLevel.SECONDARY)\n return (\n <TabsOrientationContext.Provider value={resolved}>\n <TabsLevelContext.Provider value={resolvedLevel}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-level={resolvedLevel}\n orientation={orientation}\n className={cn(\"flex flex-col gap-element data-[orientation=vertical]:flex-row data-[orientation=vertical]:gap-card\", className)}\n {...props}\n />\n </TabsLevelContext.Provider>\n </TabsOrientationContext.Provider>\n )\n}\n\n/**\n * The COUNT on a trigger — how many things are behind the tab — through the theme's INDICATOR\n * recipe so its tone is the same tone a badge of that kind wears anywhere else. Nothing renders for\n * zero: an empty count is not information (see the contract). `tabular-nums` so `2` and `14` sit\n * on the same baseline as the strip re-counts.\n */\nfunction TabsTriggerCount({ count, tone }: { count: number; tone: IndicatorVariant }): React.JSX.Element {\n const { getRecipe } = useUI()\n const recipe = getRecipe(UIBehavior.INDICATOR, tone)\n return (\n <span\n data-slot=\"tabs-trigger-count\"\n data-tone={tone}\n className={cn(\n \"inline-flex min-w-5 items-center justify-center font-semibold leading-4 tabular-nums\",\n recipe.base,\n // The recipe's chip geometry is for a badge; a count in a tab is a smaller, rounder thing.\n \"rounded-full px-1.5 py-0 text-2xs\",\n )}\n >\n {count}\n </span>\n )\n}\n\n/**\n * Overflow state of the horizontal scrollport — which edges have more content.\n *\n * Updated from three signals, because each misses a case the others catch: the\n * `scroll` listener (user scrolled), a `ResizeObserver` on the list (viewport\n * grew/shrank — the common \"window resized\" case), and a per-render effect\n * (tab COUNT changed — children resizing does not move the list's own box, so\n * the observer cannot see it).\n */\nfunction useHorizontalOverflow(ref: React.RefObject<HTMLElement | null>): { start: boolean; end: boolean } {\n const [overflow, setOverflow] = React.useState({ start: false, end: false })\n\n const update = React.useCallback(() => {\n const el = ref.current\n if (!el) return\n // 1px slack: fractional layout widths make scrollLeft/scrollWidth disagree by <1.\n const start = el.scrollLeft > 1\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setOverflow((prev) => (prev.start === start && prev.end === end ? prev : { start, end }))\n }, [ref])\n\n React.useEffect(() => {\n const el = ref.current\n if (!el) return\n el.addEventListener('scroll', update, { passive: true })\n const observer = new ResizeObserver(update)\n observer.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n observer.disconnect()\n }\n }, [ref, update])\n\n // No dependency array on purpose — re-measures after every render, which is\n // what catches content-only changes (a tab added/removed, a label resolving\n // from i18n). Three numeric reads; cheap enough not to gate.\n React.useEffect(update)\n\n return overflow\n}\n\n/** Width of each fade/affordance zone. One constant so the mask and the button agree. */\nconst TABS_FADE_ZONE = '2.5rem'\n\n/**\n * The edge fade, as a MASK on the strip rather than a gradient painted over it.\n *\n * A painted gradient has to name the colour it fades FROM, and no colour is\n * right: measured on the workbench, the strip sits on `bg-surface-raised`\n * (oklch 0.208) while `--background` is oklch 0.129, so an overlay fading to\n * the background token washed a visibly wrong band across the strip — and it\n * would be wrong differently on every surface a tab strip can sit on (card,\n * dialog, panel) and in every theme.\n *\n * Masking fades the CONTENT to transparency instead, revealing whatever is\n * actually behind it. It needs no colour token, so it is correct on every\n * surface and every theme by construction.\n */\nfunction edgeFadeMask(overflow: { start: boolean; end: boolean }): string | undefined {\n if (!overflow.start && !overflow.end) return undefined\n const stops = [\n overflow.start ? `transparent 0, black ${TABS_FADE_ZONE}` : 'black 0',\n overflow.end ? `black calc(100% - ${TABS_FADE_ZONE}), transparent 100%` : 'black 100%',\n ]\n return `linear-gradient(to right, ${stops.join(', ')})`\n}\n\n/**\n * One edge's slide affordance: the DISCREET control the design asks for — a\n * quiet chevron over the faded zone, with no box and no background of its own\n * (the mask above is what makes room for it). Mouse-only by intent\n * (`aria-hidden`, unfocusable): keyboard users already reach every tab through\n * the tab list's roving arrow-key focus, so exposing this to the tab order\n * would add a stop that does nothing arrows don't.\n */\nfunction TabsListSlideAffordance({ side, onSlide }: { side: 'start' | 'end'; onSlide: () => void }): React.JSX.Element {\n const Chevron = side === 'start' ? ChevronLeft : ChevronRight\n return (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n data-slot=\"tabs-list-slide\"\n data-side={side}\n onClick={onSlide}\n style={{ width: TABS_FADE_ZONE }}\n className={cn(\n \"absolute inset-y-0 z-10 flex cursor-pointer items-center border-0 bg-transparent p-0\",\n side === 'start' ? \"left-0 justify-start\" : \"right-0 justify-end\",\n )}\n >\n <Chevron className=\"size-4 text-muted-foreground opacity-60 transition-opacity hover:opacity-100\" />\n </button>\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const isSecondary = React.useContext(TabsLevelContext) === TabsLevel.SECONDARY\n const listRef = React.useRef<HTMLDivElement>(null)\n const overflow = useHorizontalOverflow(listRef)\n\n /*\n * Vertical wheel input slides the strip horizontally — the strip is a\n * one-axis surface, so a wheel over it can only mean \"move along it\". A\n * NATIVE non-passive listener, not React `onWheel`: React registers wheel\n * passively at the root, so `preventDefault()` there is ignored and every\n * translated tick would also scroll the page behind the strip.\n */\n React.useEffect(() => {\n const el = listRef.current\n if (!el || isVertical) return\n const onWheel = (event: WheelEvent) => {\n if (el.scrollWidth <= el.clientWidth) return\n const delta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (delta === 0) return\n el.scrollLeft += delta\n event.preventDefault()\n }\n el.addEventListener('wheel', onWheel, { passive: false })\n return () => el.removeEventListener('wheel', onWheel)\n }, [isVertical])\n\n const fadeMask = edgeFadeMask(overflow)\n\n const slideBy = React.useCallback((direction: 1 | -1) => {\n const el = listRef.current\n if (!el) return\n el.scrollBy({ left: direction * el.clientWidth * 0.6, behavior: 'smooth' })\n }, [])\n\n if (isVertical) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n // Vertical: clean nav rail (column of items, no boxed container).\n className={cn(\"flex flex-col items-stretch justify-start gap-item-xs\", className)}\n {...props}\n />\n )\n }\n\n /*\n * SECONDARY: a wrapping row of pills with NO rule beneath it. The rule is what makes a strip read\n * as the page's navigation; a nested set must not claim that, and pills wrap rather than scroll\n * because a record's seven tabs on a narrow pane are better on two lines than behind a fade.\n */\n if (isSecondary) {\n return (\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n className={cn(\"flex w-full flex-wrap items-center gap-item-xs\", className)}\n {...props}\n />\n )\n }\n\n /*\n * Horizontal: underline tab bar that SCROLLS when it overflows, instead of\n * widening the page (measured on the workbench artifact list, whose concern\n * tabs outgrew the viewport).\n *\n * ## Why the bottom rule is a wrapper layer, not `border-b` on the list\n *\n * Becoming a scrollport is what forces the restructure: `overflow-x: auto`\n * makes `overflow-y` compute to a clipping value, and the old geometry —\n * `border-b` on the list with `-mb-px` triggers overlapping their 2px\n * indicator onto the 1px rule — needs the trigger to paint one pixel PAST\n * the list's content edge, which a scrollport clips. So the rule is drawn by\n * a non-scrolling absolutely-positioned layer in a wrapper, the triggers\n * drop the overlap trick, and the indicator's bottom pixel lands on the rule\n * because both sit on the wrapper's last pixel row. Same rendered result,\n * scroll-safe.\n *\n * The scrollbar itself is suppressed on every engine (`scrollbar-width` for\n * Firefox, the `::-webkit-scrollbar` pseudo elsewhere): a native horizontal\n * scrollbar under a tab strip — Windows most visibly — reads as a broken\n * layout, and the gradient affordances + wheel translation replace what it\n * afforded.\n */\n return (\n <div data-slot=\"tabs-list-scrollport\" className=\"relative w-full\">\n {/* The full-width rule lives OUTSIDE the masked strip, so the edge fade never eats it. */}\n <span aria-hidden=\"true\" className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border\" />\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n style={{ maskImage: fadeMask, WebkitMaskImage: fadeMask }}\n className={cn(\n \"relative flex w-full items-center gap-card overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n {overflow.start && <TabsListSlideAffordance side=\"start\" onSlide={() => slideBy(-1)} />}\n {overflow.end && <TabsListSlideAffordance side=\"end\" onSlide={() => slideBy(1)} />}\n </div>\n )\n}\n\nfunction TabsTrigger({\n className,\n count,\n countTone = IndicatorVariant.NEUTRAL,\n children,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger> & Pick<TabsTriggerProps, 'count' | 'countTone'>): React.JSX.Element {\n const isVertical = React.useContext(TabsOrientationContext) === 'vertical'\n const isSecondary = React.useContext(TabsLevelContext) === TabsLevel.SECONDARY\n const { getRecipe } = useUI()\n // Vertical rail → FILLED (soft fill on select); horizontal → UNDERLINE; a nested set → PILL.\n const variant = isVertical\n ? SelectableVariant.FILLED\n : isSecondary ? SelectableVariant.PILL : SelectableVariant.UNDERLINE\n const recipe = getRecipe(UIBehavior.SELECTABLE, variant)\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n // `cursor-pointer` sits here rather than in the recipe, matching the\n // accordion trigger: an element that switches the visible panel must\n // read as clickable whatever the theme dresses it in.\n \"inline-flex cursor-pointer items-center gap-1.5 text-sm font-medium whitespace-nowrap [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n isVertical\n // Vertical: full-width, left-aligned rail item (FILLED recipe fills it).\n ? \"w-full justify-start rounded-md px-card-sm py-item\"\n : isSecondary\n // Nested: a small pill (the PILL recipe's `sm` size draws the shape).\n ? cn(\"justify-center\", recipe.sizes?.sm)\n // Horizontal: content-width underline tab (UNDERLINE recipe draws the\n // bottom border). No `-mb-px` overlap here: the list is a scrollport\n // (which would clip it) and the 1px rule is the wrapper's own layer,\n // sharing the wrapper's last pixel row with this indicator.\n : \"justify-center px-card-sm py-item\",\n // Style from the orientation-appropriate SELECTABLE recipe.\n recipe.base,\n recipe.states.focus,\n recipe.states.selected,\n recipe.states.disabled,\n recipe.motion.transition,\n className\n )}\n {...props}\n >\n {children}\n {/* The space is the accessible name's separator: without it \"Your move\" and \"2\" read as one word. */}\n {count !== undefined && count > 0 && <>{' '}<TabsTriggerCount count={count} tone={countTone} /></>}\n </TabsPrimitive.Trigger>\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element {\n const isSecondary = React.useContext(TabsLevelContext) === TabsLevel.SECONDARY\n /*\n * A nested set draws NO panel surface: the enclosing panel already frames it, and a `TAB_PANEL`\n * inside a `TAB_PANEL` is the frame-in-a-frame the level exists to remove. Plain content, and\n * a little air under the pills.\n */\n if (isSecondary) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 pt-item outline-none\", className)}\n {...props}\n />\n )\n }\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.TAB_PANEL}>\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n </Surface>\n )\n}\n\nexport const Tabs = createCompoundPreset<TabsCompound>(TabsRoot, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent })\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/tabs.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"tabs.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/sections/tabs.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE/D,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkB3F;AAED,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkB9F"}
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE/D,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkB3F;AAED,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkB9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"heading.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/heading.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAAO,CAAC;AAG/D,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"heading.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/heading.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAAO,CAAC;AAG/D,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmBhC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmBhC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"label.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/label.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"label.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/label.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA4C7D,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,yBAAyB,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CA2E7F,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAkD7D,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,yBAAyB,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CA2E7F,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -20,7 +20,13 @@ const linkUnderlineClasses = {
20
20
  [LinkVariants_Underline.ALWAYS]: "underline underline-offset-4 decoration-current",
21
21
  [LinkVariants_Underline.NONE]: "no-underline",
22
22
  };
23
- /** Size classes */
23
+ /**
24
+ * Size classes, applied ONLY when a size is requested.
25
+ *
26
+ * An unset size adds no font-size class, so the link takes the size of the text it sits in. A link is
27
+ * inline typography: defaulting it to `text-base` made every "Forgot password?" / "Sign up" render one
28
+ * step larger than the `text-sm` body copy around it.
29
+ */
24
30
  const linkSizeClasses = {
25
31
  [ButtonSize.XS]: "text-xs",
26
32
  [ButtonSize.SM]: "text-sm",
@@ -41,7 +47,7 @@ function isHttpUrl(h) {
41
47
  function isHashOrRelative(h) {
42
48
  return !!h && (h.startsWith("#") || h.startsWith("/"));
43
49
  }
44
- const Link = React.forwardRef(({ asChild, className, variant = LinkVariants_Variant.DEFAULT, underline = LinkVariants_Underline.HOVER, size = ButtonSize.MD, weight = LinkVariants_Weight.MEDIUM, href, external, externalIcon, leftIcon, rightIcon, disabled, onClick, ...props }, ref) => {
50
+ const Link = React.forwardRef(({ asChild, className, variant = LinkVariants_Variant.DEFAULT, underline = LinkVariants_Underline.HOVER, size, weight = LinkVariants_Weight.MEDIUM, href, external, externalIcon, leftIcon, rightIcon, disabled, onClick, ...props }, ref) => {
45
51
  const Comp = asChild ? Slot : "a";
46
52
  const { getRecipe } = useUI();
47
53
  const recipe = getRecipe(UIBehavior.INTERACTIVE, InteractiveVariant.LINK);
@@ -66,7 +72,7 @@ const Link = React.forwardRef(({ asChild, className, variant = LinkVariants_Vari
66
72
  // Color variant
67
73
  linkColorClasses[variant],
68
74
  // Underline, size, weight
69
- linkUnderlineClasses[underline], linkSizeClasses[size], linkWeightClasses[weight], className), href: asChild ? undefined : href, target: target, rel: rel, "aria-disabled": disabled || undefined, tabIndex: disabled ? -1 : props.tabIndex, onClick: handleClick, ...props, children: [leftIcon ? _jsx("span", { className: "shrink-0", children: leftIcon }) : null, _jsx("span", { className: "truncate", children: props.children }), isExternal && externalIcon ? (_jsx("span", { "aria-hidden": "true", className: "shrink-0", children: externalIcon })) : null, rightIcon ? _jsx("span", { className: "shrink-0", children: rightIcon }) : null] }));
75
+ linkUnderlineClasses[underline], size !== undefined && linkSizeClasses[size], linkWeightClasses[weight], className), href: asChild ? undefined : href, target: target, rel: rel, "aria-disabled": disabled || undefined, tabIndex: disabled ? -1 : props.tabIndex, onClick: handleClick, ...props, children: [leftIcon ? _jsx("span", { className: "shrink-0", children: leftIcon }) : null, _jsx("span", { className: "truncate", children: props.children }), isExternal && externalIcon ? (_jsx("span", { "aria-hidden": "true", className: "shrink-0", children: externalIcon })) : null, rightIcon ? _jsx("span", { className: "shrink-0", children: rightIcon }) : null] }));
70
76
  });
71
77
  Link.displayName = "Link";
72
78
  export { Link };
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../src/components/typography/link.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn, useUI } from \"@wildo-ai/saas-frontend-lib\";\nimport { FrontendComponentType, InteractiveVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport { LinkVariants_Variant, LinkVariants_Underline, LinkVariants_Weight } from '@wildo-ai/saas-frontend-lib';\nimport type { LinkProps } from '@wildo-ai/saas-frontend-lib';\nimport { ButtonSize } from '@wildo-ai/presets-components-models';\n\n/** Color variant → token-based text color + hover */\nconst linkColorClasses: Record<LinkVariants_Variant, string> = {\n [LinkVariants_Variant.DEFAULT]: \"text-primary hover:text-primary/80\",\n [LinkVariants_Variant.MUTED]: \"text-muted-foreground hover:text-foreground\",\n [LinkVariants_Variant.CONTRAST]: \"text-foreground hover:text-foreground/80\",\n [LinkVariants_Variant.DESTRUCTIVE]: \"text-destructive hover:text-destructive/80\",\n [LinkVariants_Variant.SUCCESS]: \"text-success hover:text-success/80\",\n [LinkVariants_Variant.INHERIT]: \"text-inherit hover:opacity-[var(--opacity-hover)]\",\n}\n\n/** Underline style classes */\nconst linkUnderlineClasses: Record<LinkVariants_Underline, string> = {\n [LinkVariants_Underline.HOVER]: \"underline underline-offset-4 decoration-current/40 hover:decoration-current\",\n [LinkVariants_Underline.ALWAYS]: \"underline underline-offset-4 decoration-current\",\n [LinkVariants_Underline.NONE]: \"no-underline\",\n}\n\n/** Size classes */\nconst linkSizeClasses: Record<ButtonSize, string> = {\n [ButtonSize.XS]: \"text-xs\",\n [ButtonSize.SM]: \"text-sm\",\n [ButtonSize.MD]: \"text-base\",\n [ButtonSize.LG]: \"text-lg\",\n [ButtonSize.ICON]: \"text-base\",\n [ButtonSize.ICON_SM]: \"text-sm\",\n}\n\n/** Weight classes */\nconst linkWeightClasses: Record<LinkVariants_Weight, string> = {\n [LinkVariants_Weight.NORMAL]: \"font-normal\",\n [LinkVariants_Weight.MEDIUM]: \"font-medium\",\n [LinkVariants_Weight.SEMIBOLD]: \"font-semibold\",\n}\n\nfunction isHttpUrl(h?: string) {\n return !!h && (h.startsWith(\"http://\") || h.startsWith(\"https://\"));\n}\nfunction isHashOrRelative(h?: string) {\n return !!h && (h.startsWith(\"#\") || h.startsWith(\"/\"));\n}\n\nconst Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>> = React.forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n asChild,\n className,\n variant = LinkVariants_Variant.DEFAULT,\n underline = LinkVariants_Underline.HOVER,\n size = ButtonSize.MD,\n weight = LinkVariants_Weight.MEDIUM,\n href,\n external,\n externalIcon,\n leftIcon,\n rightIcon,\n disabled,\n onClick,\n ...props\n },\n ref\n ): React.JSX.Element => {\n const Comp = asChild ? Slot : \"a\";\n const { getRecipe } = useUI();\n const recipe = getRecipe(UIBehavior.INTERACTIVE, InteractiveVariant.LINK);\n\n // External detection: only auto-newtab for http(s) absolute URLs\n const isExternal = external ?? (isHttpUrl(href) && !isHashOrRelative(href));\n const target = isExternal ? \"_blank\" : props.target;\n const rel =\n isExternal ? [\"noopener\", \"noreferrer\", props.rel].filter(Boolean).join(\" \") : props.rel;\n\n // Prevent navigation when disabled\n function handleClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onClick?.(e);\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n // Structure\n \"inline-flex items-center gap-item-xs\",\n // Style from INTERACTIVE.LINK recipe\n recipe.states.focus,\n recipe.states.disabled,\n recipe.motion.transition,\n // Color variant\n linkColorClasses[variant],\n // Underline, size, weight\n linkUnderlineClasses[underline],\n linkSizeClasses[size],\n linkWeightClasses[weight],\n className\n )}\n href={asChild ? undefined : href}\n target={target}\n rel={rel}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : props.tabIndex}\n onClick={handleClick}\n {...props}\n >\n {leftIcon ? <span className=\"shrink-0\">{leftIcon}</span> : null}\n <span className=\"truncate\">{props.children}</span>\n {isExternal && externalIcon ? (\n <span aria-hidden=\"true\" className=\"shrink-0\">{externalIcon}</span>\n ) : null}\n {rightIcon ? <span className=\"shrink-0\">{rightIcon}</span> : null}\n </Comp>\n );\n }\n);\nLink.displayName = \"Link\";\n\nexport { Link }\n"]}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../src/components/typography/link.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn, useUI } from \"@wildo-ai/saas-frontend-lib\";\nimport { FrontendComponentType, InteractiveVariant, UIBehavior } from \"@wildo-ai/presets-components-models\";\nimport { LinkVariants_Variant, LinkVariants_Underline, LinkVariants_Weight } from '@wildo-ai/saas-frontend-lib';\nimport type { LinkProps } from '@wildo-ai/saas-frontend-lib';\nimport { ButtonSize } from '@wildo-ai/presets-components-models';\n\n/** Color variant → token-based text color + hover */\nconst linkColorClasses: Record<LinkVariants_Variant, string> = {\n [LinkVariants_Variant.DEFAULT]: \"text-primary hover:text-primary/80\",\n [LinkVariants_Variant.MUTED]: \"text-muted-foreground hover:text-foreground\",\n [LinkVariants_Variant.CONTRAST]: \"text-foreground hover:text-foreground/80\",\n [LinkVariants_Variant.DESTRUCTIVE]: \"text-destructive hover:text-destructive/80\",\n [LinkVariants_Variant.SUCCESS]: \"text-success hover:text-success/80\",\n [LinkVariants_Variant.INHERIT]: \"text-inherit hover:opacity-[var(--opacity-hover)]\",\n}\n\n/** Underline style classes */\nconst linkUnderlineClasses: Record<LinkVariants_Underline, string> = {\n [LinkVariants_Underline.HOVER]: \"underline underline-offset-4 decoration-current/40 hover:decoration-current\",\n [LinkVariants_Underline.ALWAYS]: \"underline underline-offset-4 decoration-current\",\n [LinkVariants_Underline.NONE]: \"no-underline\",\n}\n\n/**\n * Size classes, applied ONLY when a size is requested.\n *\n * An unset size adds no font-size class, so the link takes the size of the text it sits in. A link is\n * inline typography: defaulting it to `text-base` made every \"Forgot password?\" / \"Sign up\" render one\n * step larger than the `text-sm` body copy around it.\n */\nconst linkSizeClasses: Record<ButtonSize, string> = {\n [ButtonSize.XS]: \"text-xs\",\n [ButtonSize.SM]: \"text-sm\",\n [ButtonSize.MD]: \"text-base\",\n [ButtonSize.LG]: \"text-lg\",\n [ButtonSize.ICON]: \"text-base\",\n [ButtonSize.ICON_SM]: \"text-sm\",\n}\n\n/** Weight classes */\nconst linkWeightClasses: Record<LinkVariants_Weight, string> = {\n [LinkVariants_Weight.NORMAL]: \"font-normal\",\n [LinkVariants_Weight.MEDIUM]: \"font-medium\",\n [LinkVariants_Weight.SEMIBOLD]: \"font-semibold\",\n}\n\nfunction isHttpUrl(h?: string) {\n return !!h && (h.startsWith(\"http://\") || h.startsWith(\"https://\"));\n}\nfunction isHashOrRelative(h?: string) {\n return !!h && (h.startsWith(\"#\") || h.startsWith(\"/\"));\n}\n\nconst Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>> = React.forwardRef<HTMLAnchorElement, LinkProps>(\n (\n {\n asChild,\n className,\n variant = LinkVariants_Variant.DEFAULT,\n underline = LinkVariants_Underline.HOVER,\n size,\n weight = LinkVariants_Weight.MEDIUM,\n href,\n external,\n externalIcon,\n leftIcon,\n rightIcon,\n disabled,\n onClick,\n ...props\n },\n ref\n ): React.JSX.Element => {\n const Comp = asChild ? Slot : \"a\";\n const { getRecipe } = useUI();\n const recipe = getRecipe(UIBehavior.INTERACTIVE, InteractiveVariant.LINK);\n\n // External detection: only auto-newtab for http(s) absolute URLs\n const isExternal = external ?? (isHttpUrl(href) && !isHashOrRelative(href));\n const target = isExternal ? \"_blank\" : props.target;\n const rel =\n isExternal ? [\"noopener\", \"noreferrer\", props.rel].filter(Boolean).join(\" \") : props.rel;\n\n // Prevent navigation when disabled\n function handleClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onClick?.(e);\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n // Structure\n \"inline-flex items-center gap-item-xs\",\n // Style from INTERACTIVE.LINK recipe\n recipe.states.focus,\n recipe.states.disabled,\n recipe.motion.transition,\n // Color variant\n linkColorClasses[variant],\n // Underline, size, weight\n linkUnderlineClasses[underline],\n size !== undefined && linkSizeClasses[size],\n linkWeightClasses[weight],\n className\n )}\n href={asChild ? undefined : href}\n target={target}\n rel={rel}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : props.tabIndex}\n onClick={handleClick}\n {...props}\n >\n {leftIcon ? <span className=\"shrink-0\">{leftIcon}</span> : null}\n <span className=\"truncate\">{props.children}</span>\n {isExternal && externalIcon ? (\n <span aria-hidden=\"true\" className=\"shrink-0\">{externalIcon}</span>\n ) : null}\n {rightIcon ? <span className=\"shrink-0\">{rightIcon}</span> : null}\n </Comp>\n );\n }\n);\nLink.displayName = \"Link\";\n\nexport { Link }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"link.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/link.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"link.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/link.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -6,7 +6,7 @@ export { TextVariant, TextSize };
6
6
  type PresetTextProps = TextProps & {
7
7
  truncate?: boolean | TextTruncationStrategy;
8
8
  };
9
- export declare function Text({ className, variant, size, as: Tag, truncate, children, style, ...props }: PresetTextProps): React.JSX.Element;
9
+ export declare function Text({ className, variant, size, typography, as: Tag, truncate, children, style, ...props }: PresetTextProps): React.JSX.Element;
10
10
  export declare function TextLink({ className, ...props }: React.ComponentPropsWithoutRef<typeof Link>): React.JSX.Element;
11
11
  export declare function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>): React.JSX.Element;
12
12
  export declare function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAA+B,IAAI,EAAiB,MAAM,6BAA6B,CAAA;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAyB,QAAQ,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAiC,MAAM,qCAAqC,CAAA;AAE9J,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AAGhC,KAAK,eAAe,GAAG,SAAS,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC7C,CAAC;AA6FF,wBAAgB,IAAI,CAAC,EACnB,SAAS,EACT,OAA6B,EAC7B,IAAoB,EACpB,EAAE,EAAE,GAAS,EACb,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+CrC;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUhH;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAE3G;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAavG"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAA+B,IAAI,EAAiB,MAAM,6BAA6B,CAAA;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAyB,QAAQ,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAiC,MAAM,qCAAqC,CAAA;AAE9J,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AAGhC,KAAK,eAAe,GAAG,SAAS,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;CAC7C,CAAC;AA8FF,wBAAgB,IAAI,CAAC,EACnB,SAAS,EACT,OAA6B,EAC7B,IAAoB,EACpB,UAAmC,EACnC,EAAE,EAAE,GAAS,EACb,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+CrC;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUhH;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAE3G;AAED,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAavG"}
@@ -5,6 +5,7 @@ export { TextVariant, TextSize };
5
5
  const textVariantColors = {
6
6
  [TextVariant.DEFAULT]: "text-foreground",
7
7
  [TextVariant.MUTED]: "text-muted-foreground",
8
+ [TextVariant.SUBTLE]: "text-foreground-subtle",
8
9
  [TextVariant.CONTRAST]: "text-foreground",
9
10
  [TextVariant.DESTRUCTIVE]: "text-destructive",
10
11
  [TextVariant.SUCCESS]: "text-success",
@@ -87,10 +88,10 @@ function multilineClampStyle(value, style) {
87
88
  ...style,
88
89
  };
89
90
  }
90
- export function Text({ className, variant = TextVariant.DEFAULT, size = TextSize.BASE, as: Tag = 'p', truncate, children, style, ...props }) {
91
+ export function Text({ className, variant = TextVariant.DEFAULT, size = TextSize.BASE, typography = TypographyVariant.BODY, as: Tag = 'p', truncate, children, style, ...props }) {
91
92
  const { getRecipe } = useUI();
92
93
  const policy = useSurfacePolicy();
93
- const recipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.BODY);
94
+ const recipe = getRecipe(UIBehavior.TYPOGRAPHY, typography);
94
95
  const resolvedTruncation = resolveTextTruncation(truncate, policy.content?.textTruncation);
95
96
  // A single-line truncation (`ellipsis-line` → `truncate`/`white-space:nowrap`,
96
97
  // or `fade`) is contradictory with a WRAP strategy: a `text-wrap`/`text-balance`
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../../src/components/typography/text.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { cn, useSurfacePolicy, useUI, Link, TruncatedText } from '@wildo-ai/saas-frontend-lib'\nimport type { TextProps } from '@wildo-ai/saas-frontend-lib'\nimport { FrontendComponentType, TextSize, type TextTruncationStrategy, TextVariant, TypographyVariant, UIBehavior } from '@wildo-ai/presets-components-models'\n\nexport { TextVariant, TextSize }\n\ntype ResolvedTextTruncation = TextTruncationStrategy | 'reset';\ntype PresetTextProps = TextProps & {\n truncate?: boolean | TextTruncationStrategy;\n};\n\nconst textVariantColors: Record<TextVariant, string> = {\n [TextVariant.DEFAULT]: \"text-foreground\",\n [TextVariant.MUTED]: \"text-muted-foreground\",\n [TextVariant.CONTRAST]: \"text-foreground\",\n [TextVariant.DESTRUCTIVE]: \"text-destructive\",\n [TextVariant.SUCCESS]: \"text-success\",\n [TextVariant.INHERIT]: \"text-inherit\",\n}\n\n/**\n * Maps `TextSize` to Tailwind v4 utilities. These resolve to\n * `var(--font-size-xs|sm|lg)` via the `@theme inline` mapping, so size\n * tokens defined at runtime through `applyTypographyConfiguration`\n * propagate automatically. `BASE` emits no class — the body recipe wins.\n */\nconst textSizeClasses: Record<TextSize, string> = {\n [TextSize.XXS]: \"text-2xs\",\n [TextSize.XS]: \"text-xs\",\n [TextSize.SM]: \"text-sm\",\n [TextSize.BASE]: \"\",\n [TextSize.LG]: \"text-lg\",\n}\n\nfunction resolveTextTruncation(\n truncate: boolean | TextTruncationStrategy | undefined,\n policyValue: ResolvedTextTruncation | undefined,\n): TextTruncationStrategy | undefined {\n if (truncate === true) return 'ellipsis-line';\n if (truncate === false) return 'none';\n if (policyValue === 'reset') return undefined;\n return truncate ?? policyValue;\n}\n\nfunction textTruncationClass(value: TextTruncationStrategy | undefined): string | undefined {\n if (!value || value === 'none') return undefined;\n if (value === 'ellipsis-line') return 'min-w-0 truncate';\n if (value.startsWith('ellipsis-multiline:')) return 'overflow-hidden';\n if (value === 'fade') return 'min-w-0 overflow-hidden whitespace-nowrap';\n return undefined;\n}\n\nfunction textWrapClass(value: string | undefined): string | undefined {\n switch (value) {\n case 'nowrap':\n return 'text-nowrap';\n case 'balance':\n return 'text-balance';\n case 'pretty':\n return 'text-pretty';\n case 'wrap':\n return 'text-wrap';\n default:\n return undefined;\n }\n}\n\nfunction numericAlignmentClass(value: string | undefined): string | undefined {\n switch (value) {\n case 'tabular':\n return 'tabular-nums';\n case 'lining':\n return 'lining-nums';\n default:\n return undefined;\n }\n}\n\nfunction multilineClampStyle(\n value: TextTruncationStrategy | undefined,\n style: React.CSSProperties | undefined,\n): React.CSSProperties | undefined {\n if (value === 'fade') {\n return {\n WebkitMaskImage: 'linear-gradient(to right, black calc(100% - 2rem), transparent)',\n maskImage: 'linear-gradient(to right, black calc(100% - 2rem), transparent)',\n ...style,\n };\n }\n\n if (!value?.startsWith('ellipsis-multiline:')) return style;\n const lines = Number(value.slice('ellipsis-multiline:'.length));\n if (!Number.isFinite(lines) || lines < 1) return style;\n\n return {\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n ...style,\n };\n}\n\nexport function Text({\n className,\n variant = TextVariant.DEFAULT,\n size = TextSize.BASE,\n as: Tag = 'p',\n truncate,\n children,\n style,\n ...props\n}: PresetTextProps): React.JSX.Element {\n const { getRecipe } = useUI()\n const policy = useSurfacePolicy()\n const recipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.BODY)\n const resolvedTruncation = resolveTextTruncation(truncate, policy.content?.textTruncation)\n // A single-line truncation (`ellipsis-line` → `truncate`/`white-space:nowrap`,\n // or `fade`) is contradictory with a WRAP strategy: a `text-wrap`/`text-balance`\n // class re-enables wrapping and (source-order dependent) defeats the nowrap, so\n // the element wraps and — in a shrink-to-zero flex slot — balloons vertically\n // (the 420px summary-title card bug). Single-line truncation therefore SUPPRESSES\n // the policy wrap class; multi-line strategies (`ellipsis-multiline:N`) keep it.\n const isSingleLineTruncation = resolvedTruncation === 'ellipsis-line' || resolvedTruncation === 'fade'\n const resolvedClassName = cn(\n recipe.base,\n textVariantColors[variant],\n textSizeClasses[size],\n isSingleLineTruncation ? undefined : textWrapClass(policy.content?.wrapStrategy),\n numericAlignmentClass(policy.content?.numericAlignment),\n textTruncationClass(resolvedTruncation),\n className\n )\n const resolvedStyle = multilineClampStyle(resolvedTruncation, style)\n\n if (policy.content?.tooltipOnTruncate === true && resolvedTruncation === 'ellipsis-line') {\n return (\n <TruncatedText\n as={Tag}\n data-slot=\"text\"\n {...props}\n style={resolvedStyle}\n textClassName={resolvedClassName}\n >\n {children}\n </TruncatedText>\n )\n }\n\n return (\n <Tag\n data-slot=\"text\"\n {...props}\n style={resolvedStyle}\n className={resolvedClassName}\n >\n {children}\n </Tag>\n )\n}\n\nexport function TextLink({ className, ...props }: React.ComponentPropsWithoutRef<typeof Link>): React.JSX.Element {\n return (\n <Link\n {...props}\n className={cn(\n 'text-foreground underline decoration-foreground/50 data-hover:decoration-foreground',\n className\n )}\n />\n )\n}\n\nexport function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>): React.JSX.Element {\n return <strong {...props} className={cn('font-medium text-foreground', className)} />\n}\n\nexport function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>): React.JSX.Element {\n return (\n <code\n {...props}\n className={cn(\n // Structure\n 'rounded-sm px-0.5',\n // Style — uses tokens for colors\n 'border border-border bg-muted text-sm font-medium text-foreground sm:text-[0.8125rem]',\n className\n )}\n />\n )\n}\n"]}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../../src/components/typography/text.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { cn, useSurfacePolicy, useUI, Link, TruncatedText } from '@wildo-ai/saas-frontend-lib'\nimport type { TextProps } from '@wildo-ai/saas-frontend-lib'\nimport { FrontendComponentType, TextSize, type TextTruncationStrategy, TextVariant, TypographyVariant, UIBehavior } from '@wildo-ai/presets-components-models'\n\nexport { TextVariant, TextSize }\n\ntype ResolvedTextTruncation = TextTruncationStrategy | 'reset';\ntype PresetTextProps = TextProps & {\n truncate?: boolean | TextTruncationStrategy;\n};\n\nconst textVariantColors: Record<TextVariant, string> = {\n [TextVariant.DEFAULT]: \"text-foreground\",\n [TextVariant.MUTED]: \"text-muted-foreground\",\n [TextVariant.SUBTLE]: \"text-foreground-subtle\",\n [TextVariant.CONTRAST]: \"text-foreground\",\n [TextVariant.DESTRUCTIVE]: \"text-destructive\",\n [TextVariant.SUCCESS]: \"text-success\",\n [TextVariant.INHERIT]: \"text-inherit\",\n}\n\n/**\n * Maps `TextSize` to Tailwind v4 utilities. These resolve to\n * `var(--font-size-xs|sm|lg)` via the `@theme inline` mapping, so size\n * tokens defined at runtime through `applyTypographyConfiguration`\n * propagate automatically. `BASE` emits no class — the body recipe wins.\n */\nconst textSizeClasses: Record<TextSize, string> = {\n [TextSize.XXS]: \"text-2xs\",\n [TextSize.XS]: \"text-xs\",\n [TextSize.SM]: \"text-sm\",\n [TextSize.BASE]: \"\",\n [TextSize.LG]: \"text-lg\",\n}\n\nfunction resolveTextTruncation(\n truncate: boolean | TextTruncationStrategy | undefined,\n policyValue: ResolvedTextTruncation | undefined,\n): TextTruncationStrategy | undefined {\n if (truncate === true) return 'ellipsis-line';\n if (truncate === false) return 'none';\n if (policyValue === 'reset') return undefined;\n return truncate ?? policyValue;\n}\n\nfunction textTruncationClass(value: TextTruncationStrategy | undefined): string | undefined {\n if (!value || value === 'none') return undefined;\n if (value === 'ellipsis-line') return 'min-w-0 truncate';\n if (value.startsWith('ellipsis-multiline:')) return 'overflow-hidden';\n if (value === 'fade') return 'min-w-0 overflow-hidden whitespace-nowrap';\n return undefined;\n}\n\nfunction textWrapClass(value: string | undefined): string | undefined {\n switch (value) {\n case 'nowrap':\n return 'text-nowrap';\n case 'balance':\n return 'text-balance';\n case 'pretty':\n return 'text-pretty';\n case 'wrap':\n return 'text-wrap';\n default:\n return undefined;\n }\n}\n\nfunction numericAlignmentClass(value: string | undefined): string | undefined {\n switch (value) {\n case 'tabular':\n return 'tabular-nums';\n case 'lining':\n return 'lining-nums';\n default:\n return undefined;\n }\n}\n\nfunction multilineClampStyle(\n value: TextTruncationStrategy | undefined,\n style: React.CSSProperties | undefined,\n): React.CSSProperties | undefined {\n if (value === 'fade') {\n return {\n WebkitMaskImage: 'linear-gradient(to right, black calc(100% - 2rem), transparent)',\n maskImage: 'linear-gradient(to right, black calc(100% - 2rem), transparent)',\n ...style,\n };\n }\n\n if (!value?.startsWith('ellipsis-multiline:')) return style;\n const lines = Number(value.slice('ellipsis-multiline:'.length));\n if (!Number.isFinite(lines) || lines < 1) return style;\n\n return {\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n ...style,\n };\n}\n\nexport function Text({\n className,\n variant = TextVariant.DEFAULT,\n size = TextSize.BASE,\n typography = TypographyVariant.BODY,\n as: Tag = 'p',\n truncate,\n children,\n style,\n ...props\n}: PresetTextProps): React.JSX.Element {\n const { getRecipe } = useUI()\n const policy = useSurfacePolicy()\n const recipe = getRecipe(UIBehavior.TYPOGRAPHY, typography)\n const resolvedTruncation = resolveTextTruncation(truncate, policy.content?.textTruncation)\n // A single-line truncation (`ellipsis-line` → `truncate`/`white-space:nowrap`,\n // or `fade`) is contradictory with a WRAP strategy: a `text-wrap`/`text-balance`\n // class re-enables wrapping and (source-order dependent) defeats the nowrap, so\n // the element wraps and — in a shrink-to-zero flex slot — balloons vertically\n // (the 420px summary-title card bug). Single-line truncation therefore SUPPRESSES\n // the policy wrap class; multi-line strategies (`ellipsis-multiline:N`) keep it.\n const isSingleLineTruncation = resolvedTruncation === 'ellipsis-line' || resolvedTruncation === 'fade'\n const resolvedClassName = cn(\n recipe.base,\n textVariantColors[variant],\n textSizeClasses[size],\n isSingleLineTruncation ? undefined : textWrapClass(policy.content?.wrapStrategy),\n numericAlignmentClass(policy.content?.numericAlignment),\n textTruncationClass(resolvedTruncation),\n className\n )\n const resolvedStyle = multilineClampStyle(resolvedTruncation, style)\n\n if (policy.content?.tooltipOnTruncate === true && resolvedTruncation === 'ellipsis-line') {\n return (\n <TruncatedText\n as={Tag}\n data-slot=\"text\"\n {...props}\n style={resolvedStyle}\n textClassName={resolvedClassName}\n >\n {children}\n </TruncatedText>\n )\n }\n\n return (\n <Tag\n data-slot=\"text\"\n {...props}\n style={resolvedStyle}\n className={resolvedClassName}\n >\n {children}\n </Tag>\n )\n}\n\nexport function TextLink({ className, ...props }: React.ComponentPropsWithoutRef<typeof Link>): React.JSX.Element {\n return (\n <Link\n {...props}\n className={cn(\n 'text-foreground underline decoration-foreground/50 data-hover:decoration-foreground',\n className\n )}\n />\n )\n}\n\nexport function Strong({ className, ...props }: React.ComponentPropsWithoutRef<'strong'>): React.JSX.Element {\n return <strong {...props} className={cn('font-medium text-foreground', className)} />\n}\n\nexport function Code({ className, ...props }: React.ComponentPropsWithoutRef<'code'>): React.JSX.Element {\n return (\n <code\n {...props}\n className={cn(\n // Structure\n 'rounded-sm px-0.5',\n // Style — uses tokens for colors\n 'border border-border bg-muted text-sm font-medium text-foreground sm:text-[0.8125rem]',\n className\n )}\n />\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"text.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/text.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC;AAG5D,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC;AAG9D,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC;AAG5D,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
1
+ {"version":3,"file":"text.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/text.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC;AAG5D,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAAO,CAAC;AAG9D,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC;AAG5D,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"truncated-text.d.ts","sourceRoot":"","sources":["../../../../src/components/typography/truncated-text.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,iBAAS,aAAa,CAAC,EACrB,EAAE,EAAE,WAAoB,EACxB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAiB,EACjB,WAA+B,EAC/B,oBAA0B,EAC1B,iBAAyB,EACzB,GAAG,KAAK,EACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgExC;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"truncated-text.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/truncated-text.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,iBAAS,aAAa,CAAC,EACrB,EAAE,EAAE,WAAoB,EACxB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,QAAiB,EACjB,WAA+B,EAC/B,oBAA0B,EAC1B,iBAAyB,EACzB,GAAG,KAAK,EACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgExC;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"billing-shell.presets.d.ts","sourceRoot":"","sources":["../../../src/config/billing-shell.presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,6BAA6B,CAAC;AAQrC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,GACpC,8BAA8B,CA0ChC"}
1
+ {"version":3,"file":"billing-shell.presets.d.ts","sourceRoot":"","sources":["../../../../src/config/billing-shell.presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,6BAA6B,CAAC;AAQrC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,GACpC,8BAA8B,CA0ChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"preset-design-system.d.ts","sourceRoot":"","sources":["../../../src/config/preset-design-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-design-system.d.ts","sourceRoot":"","sources":["../../../../src/config/preset-design-system.ts"],"names":[],"mappings":"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"}
@@ -95,17 +95,48 @@ export const UI_PALETTE_OCEAN = defineDesignTokenMap({
95
95
  darkValue: "0.704 0.04 256",
96
96
  description: "Muted text color",
97
97
  },
98
+ /**
99
+ * THE INTERACTION TINT — the wash an interactive surface takes on hover, selection, focus and
100
+ * open. NOT a brand colour, and this is the whole of issue #184.
101
+ *
102
+ * It used to be `0.606 0.25 292` / `0.702 0.183 293`, described as "Accent color (violet)", and
103
+ * every other palette overrode it with its own saturated hue — amber, gold, cyan, pink, lime,
104
+ * teal. That is what the ten palettes SAID. What the framework DOES with the token is paint it,
105
+ * solid, on every hovered menu item, dropdown row, toggle, command-palette row, calendar range
106
+ * and selected list row: `default.theme.ts` alone reaches for `bg-accent` nine times, and
107
+ * `ACCENT_FOREGROUND` was white, which only makes sense laid on a solid fill.
108
+ *
109
+ * Two dialects, one word, and the recipes' dialect had already won everywhere it mattered. Every
110
+ * generated `index.css` in this repository emits a neutral `--accent`, because each application
111
+ * hand-authored the correction in its own source config — wonder-todos says so in prose: "It must
112
+ * stay a SUBTLE wash of the page palette, not a brand color... (This config previously authored a
113
+ * saturated violet — that was the source of the purple selected rows/options everywhere.)" So did
114
+ * `DEFAULT_DESIGN_SYSTEM_SOURCE_CONFIG`, which sets `accent` to its own `secondary` and
115
+ * `accent-foreground` to its own `foreground`.
116
+ *
117
+ * The palettes were the last dissenters, and they were the dangerous ones: an application
118
+ * selecting `UI_DESIGN_SYSTEM_WARM` and authoring no override still got amber hovers throughout.
119
+ *
120
+ * **accent = secondary, accent-foreground = foreground** is now stated once, here, and inherited
121
+ * by every palette — the same relation all three shipped configurations independently reached,
122
+ * and shadcn's own default, whose recipes this framework's are derived from.
123
+ *
124
+ * A palette's saturated character lives in `accentGradient` (`--accent-gradient-from/via/to`),
125
+ * which is a separate source-config section and is what the ACCENT interactive recipe actually
126
+ * paints. Nothing is lost by the values leaving here: not one of them ever reached a brand
127
+ * surface.
128
+ */
98
129
  [DesignSystemToken.ACCENT]: {
99
130
  type: DesignTokenValueType.COLOR,
100
- lightValue: "0.606 0.25 292",
101
- darkValue: "0.702 0.183 293",
102
- description: "Accent color (violet)",
131
+ lightValue: "0.929 0.013 255",
132
+ darkValue: "0.279 0.041 260",
133
+ description: "Interaction tint — hovered/selected/focused surfaces (tracks `secondary`)",
103
134
  },
104
135
  [DesignSystemToken.ACCENT_FOREGROUND]: {
105
136
  type: DesignTokenValueType.COLOR,
106
- lightValue: "1 0 0",
107
- darkValue: "0.129 0.042 264",
108
- description: "Accent text color",
137
+ lightValue: "0.208 0.042 265",
138
+ darkValue: "0.968 0.007 247",
139
+ description: "Text on the interaction tint (tracks `foreground`)",
109
140
  },
110
141
  [DesignSystemToken.DESTRUCTIVE]: {
111
142
  type: DesignTokenValueType.COLOR,
@@ -189,12 +220,6 @@ export const UI_PALETTE_EMBER = defineDesignTokenMap({
189
220
  darkValue: "0.78 0.14 40",
190
221
  description: "Primary brand color (coral)",
191
222
  },
192
- [DesignSystemToken.ACCENT]: {
193
- type: DesignTokenValueType.COLOR,
194
- lightValue: "0.75 0.18 75",
195
- darkValue: "0.8 0.16 80",
196
- description: "Accent color (amber)",
197
- },
198
223
  });
199
224
  /** Dusk palette — premium, dark-first. Deep indigo primary, gold accent. */
200
225
  export const UI_PALETTE_DUSK = defineDesignTokenMap({
@@ -205,12 +230,6 @@ export const UI_PALETTE_DUSK = defineDesignTokenMap({
205
230
  darkValue: "0.55 0.14 265",
206
231
  description: "Primary brand color (indigo)",
207
232
  },
208
- [DesignSystemToken.ACCENT]: {
209
- type: DesignTokenValueType.COLOR,
210
- lightValue: "0.78 0.14 85",
211
- darkValue: "0.82 0.12 88",
212
- description: "Accent color (gold)",
213
- },
214
233
  });
215
234
  /** Lagoon palette — balanced, modern. Teal primary, cyan accent. */
216
235
  export const UI_PALETTE_LAGOON = defineDesignTokenMap({
@@ -221,12 +240,6 @@ export const UI_PALETTE_LAGOON = defineDesignTokenMap({
221
240
  darkValue: "0.62 0.14 192",
222
241
  description: "Primary brand color (teal)",
223
242
  },
224
- [DesignSystemToken.ACCENT]: {
225
- type: DesignTokenValueType.COLOR,
226
- lightValue: "0.65 0.15 220",
227
- darkValue: "0.7 0.14 225",
228
- description: "Accent color (cyan)",
229
- },
230
243
  });
231
244
  /** Sage palette — organic, calm. Sage green primary, warm brown accent. */
232
245
  export const UI_PALETTE_SAGE = defineDesignTokenMap({
@@ -237,12 +250,6 @@ export const UI_PALETTE_SAGE = defineDesignTokenMap({
237
250
  darkValue: "0.6 0.12 150",
238
251
  description: "Primary brand color (sage green)",
239
252
  },
240
- [DesignSystemToken.ACCENT]: {
241
- type: DesignTokenValueType.COLOR,
242
- lightValue: "0.55 0.08 65",
243
- darkValue: "0.6 0.1 60",
244
- description: "Accent color (warm brown)",
245
- },
246
253
  });
247
254
  /** Sunset palette — creative, expressive. Orange-red primary, pink accent. */
248
255
  export const UI_PALETTE_SUNSET = defineDesignTokenMap({
@@ -253,12 +260,6 @@ export const UI_PALETTE_SUNSET = defineDesignTokenMap({
253
260
  darkValue: "0.7 0.18 30",
254
261
  description: "Primary brand color (orange-red)",
255
262
  },
256
- [DesignSystemToken.ACCENT]: {
257
- type: DesignTokenValueType.COLOR,
258
- lightValue: "0.7 0.18 350",
259
- darkValue: "0.75 0.16 355",
260
- description: "Accent color (pink)",
261
- },
262
263
  });
263
264
  /** Forest palette — grounded, reliable. Deep green primary, lime accent. */
264
265
  export const UI_PALETTE_FOREST = defineDesignTokenMap({
@@ -269,12 +270,6 @@ export const UI_PALETTE_FOREST = defineDesignTokenMap({
269
270
  darkValue: "0.52 0.14 140",
270
271
  description: "Primary brand color (deep green)",
271
272
  },
272
- [DesignSystemToken.ACCENT]: {
273
- type: DesignTokenValueType.COLOR,
274
- lightValue: "0.7 0.18 130",
275
- darkValue: "0.75 0.16 128",
276
- description: "Accent color (lime)",
277
- },
278
273
  });
279
274
  /** Ink palette — minimal, editorial. Neutral gray scale, single accent. */
280
275
  export const UI_PALETTE_INK = defineDesignTokenMap({
@@ -285,12 +280,6 @@ export const UI_PALETTE_INK = defineDesignTokenMap({
285
280
  darkValue: "0.5 0.03 265",
286
281
  description: "Primary brand color (neutral gray)",
287
282
  },
288
- [DesignSystemToken.ACCENT]: {
289
- type: DesignTokenValueType.COLOR,
290
- lightValue: "0.55 0.12 241",
291
- darkValue: "0.65 0.14 238",
292
- description: "Accent color (subtle blue)",
293
- },
294
283
  });
295
284
  /** Aurora palette — futuristic, AI-native. Lavender/purple primary, cyan accent. */
296
285
  export const UI_PALETTE_AURORA = defineDesignTokenMap({
@@ -301,12 +290,6 @@ export const UI_PALETTE_AURORA = defineDesignTokenMap({
301
290
  darkValue: "0.7 0.16 295",
302
291
  description: "Primary brand color (lavender)",
303
292
  },
304
- [DesignSystemToken.ACCENT]: {
305
- type: DesignTokenValueType.COLOR,
306
- lightValue: "0.65 0.15 220",
307
- darkValue: "0.7 0.14 218",
308
- description: "Accent color (cyan)",
309
- },
310
293
  });
311
294
  /** Slate palette — serious, enterprise. Blue-gray primary, teal accent. */
312
295
  export const UI_PALETTE_SLATE = defineDesignTokenMap({
@@ -317,12 +300,6 @@ export const UI_PALETTE_SLATE = defineDesignTokenMap({
317
300
  darkValue: "0.58 0.08 248",
318
301
  description: "Primary brand color (blue-gray)",
319
302
  },
320
- [DesignSystemToken.ACCENT]: {
321
- type: DesignTokenValueType.COLOR,
322
- lightValue: "0.55 0.12 195",
323
- darkValue: "0.62 0.14 192",
324
- description: "Accent color (teal)",
325
- },
326
303
  });
327
304
  // ═══════════════════════════════════════════════════════════════════════════════
328
305
  // Surface Tokens