@mastra/playground-ui 42.0.0-alpha.3 → 42.0.0-alpha.8

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 (214) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/Card-BOmiCU4T.js +64 -0
  3. package/dist/Card-BOmiCU4T.js.map +1 -0
  4. package/dist/Card-CHeBhO_f.cjs +90 -0
  5. package/dist/Card-CHeBhO_f.cjs.map +1 -0
  6. package/dist/{buttons-group-b6an6uao.js → buttons-group-DJh4wnMs.js} +4 -4
  7. package/dist/{buttons-group-b6an6uao.js.map → buttons-group-DJh4wnMs.js.map} +1 -1
  8. package/dist/{buttons-group-C0fJastT.cjs → buttons-group-Dw8Wu4sj.cjs} +4 -4
  9. package/dist/{buttons-group-C0fJastT.cjs.map → buttons-group-Dw8Wu4sj.cjs.map} +1 -1
  10. package/dist/components/ButtonsGroup.cjs.js +1 -1
  11. package/dist/components/ButtonsGroup.es.js +1 -1
  12. package/dist/components/Card.cjs.js +7 -84
  13. package/dist/components/Card.cjs.js.map +1 -1
  14. package/dist/components/Card.es.js +1 -63
  15. package/dist/components/Card.es.js.map +1 -1
  16. package/dist/components/ContentBlocks.cjs.js.map +1 -1
  17. package/dist/components/ContentBlocks.es.js.map +1 -1
  18. package/dist/components/DataCodeSection.cjs.js +1 -1
  19. package/dist/components/DataCodeSection.es.js +1 -1
  20. package/dist/components/DataDetailsPanel.cjs.js +4 -4
  21. package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
  22. package/dist/components/DataDetailsPanel.es.js +4 -4
  23. package/dist/components/DataDetailsPanel.es.js.map +1 -1
  24. package/dist/components/DataPanel.cjs.js +1 -1
  25. package/dist/components/DataPanel.es.js +1 -1
  26. package/dist/components/DateTimePicker.cjs.js +1 -1
  27. package/dist/components/DateTimePicker.es.js +1 -1
  28. package/dist/components/Drawer.cjs.js +1 -1
  29. package/dist/components/Drawer.es.js +1 -1
  30. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  31. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  32. package/dist/components/FormFieldBlocks.cjs.js +4 -4
  33. package/dist/components/FormFieldBlocks.es.js +4 -4
  34. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  35. package/dist/components/JSONSchemaForm.es.js +2 -2
  36. package/dist/components/ListSearch.cjs.js +1 -1
  37. package/dist/components/ListSearch.es.js +1 -1
  38. package/dist/components/MainContent.cjs.js +3 -3
  39. package/dist/components/MainContent.cjs.js.map +1 -1
  40. package/dist/components/MainContent.es.js +3 -3
  41. package/dist/components/MainContent.es.js.map +1 -1
  42. package/dist/components/MainSidebar.cjs.js +1 -1
  43. package/dist/components/MainSidebar.es.js +1 -1
  44. package/dist/components/PrevNextNav.cjs.js +1 -1
  45. package/dist/components/PrevNextNav.es.js +1 -1
  46. package/dist/components/PropertyFilter.cjs.js +1 -1
  47. package/dist/components/PropertyFilter.es.js +2 -2
  48. package/dist/components/SankeyChart.cjs.js +68 -75
  49. package/dist/components/SankeyChart.cjs.js.map +1 -1
  50. package/dist/components/SankeyChart.es.js +60 -71
  51. package/dist/components/SankeyChart.es.js.map +1 -1
  52. package/dist/components/SideDialog.cjs.js +2 -2
  53. package/dist/components/SideDialog.es.js +2 -2
  54. package/dist/components/ai/ask-user.cjs.js +147 -0
  55. package/dist/components/ai/ask-user.cjs.js.map +1 -0
  56. package/dist/components/ai/ask-user.d.ts +2 -0
  57. package/dist/components/ai/ask-user.es.js +136 -0
  58. package/dist/components/ai/ask-user.es.js.map +1 -0
  59. package/dist/components/ai/task-list.cjs.js +90 -0
  60. package/dist/components/ai/task-list.cjs.js.map +1 -0
  61. package/dist/components/ai/task-list.d.ts +2 -0
  62. package/dist/components/ai/task-list.es.js +80 -0
  63. package/dist/components/ai/task-list.es.js.map +1 -0
  64. package/dist/{data-code-section-Crs5wpnX.js → data-code-section-CGy0owio.js} +3 -3
  65. package/dist/{data-code-section-Crs5wpnX.js.map → data-code-section-CGy0owio.js.map} +1 -1
  66. package/dist/{data-code-section-DYy_n9I1.cjs → data-code-section-D5yXGjk5.cjs} +3 -3
  67. package/dist/{data-code-section-DYy_n9I1.cjs.map → data-code-section-D5yXGjk5.cjs.map} +1 -1
  68. package/dist/{data-panel-Otc4qdKL.js → data-panel-BELvPVPG.js} +3 -3
  69. package/dist/{data-panel-Otc4qdKL.js.map → data-panel-BELvPVPG.js.map} +1 -1
  70. package/dist/{data-panel-CAbxKoPF.cjs → data-panel-C6Aa1nFn.cjs} +3 -3
  71. package/dist/{data-panel-CAbxKoPF.cjs.map → data-panel-C6Aa1nFn.cjs.map} +1 -1
  72. package/dist/domains/logs/components/log-details-view.cjs.js +1 -1
  73. package/dist/domains/logs/components/log-details-view.es.js +1 -1
  74. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  75. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  76. package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
  77. package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
  78. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
  79. package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
  80. package/dist/domains/traces/components/traces-toolbar.cjs.js +1 -1
  81. package/dist/domains/traces/components/traces-toolbar.es.js +1 -1
  82. package/dist/{drawer-DtEZQBXj.cjs → drawer-DvuUmhic.cjs} +3 -3
  83. package/dist/{drawer-DtEZQBXj.cjs.map → drawer-DvuUmhic.cjs.map} +1 -1
  84. package/dist/{drawer-Djerm1Lo.js → drawer-Dyx25o_o.js} +3 -3
  85. package/dist/{drawer-Djerm1Lo.js.map → drawer-Dyx25o_o.js.map} +1 -1
  86. package/dist/ee/signals/components/signals-empty-state.cjs.js +152 -0
  87. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -0
  88. package/dist/ee/signals/components/signals-empty-state.d.ts +2 -0
  89. package/dist/ee/signals/components/signals-empty-state.es.js +148 -0
  90. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -0
  91. package/dist/ee/signals/components/signals-overview-page.cjs.js +3 -201
  92. package/dist/ee/signals/components/signals-overview-page.cjs.js.map +1 -1
  93. package/dist/ee/signals/components/signals-overview-page.es.js +5 -201
  94. package/dist/ee/signals/components/signals-overview-page.es.js.map +1 -1
  95. package/dist/ee/signals/components.cjs.js +0 -10
  96. package/dist/ee/signals/components.cjs.js.map +1 -1
  97. package/dist/ee/signals/components.es.js +1 -3
  98. package/dist/ee/signals/components.es.js.map +1 -1
  99. package/dist/ee/signals/signal-colors.cjs.js +28 -0
  100. package/dist/ee/signals/signal-colors.cjs.js.map +1 -0
  101. package/dist/ee/signals/signal-colors.d.ts +2 -0
  102. package/dist/ee/signals/signal-colors.es.js +23 -0
  103. package/dist/ee/signals/signal-colors.es.js.map +1 -0
  104. package/dist/ee/signals.cjs.js +3 -27
  105. package/dist/ee/signals.cjs.js.map +1 -1
  106. package/dist/ee/signals.es.js +2 -7
  107. package/dist/ee/signals.es.js.map +1 -1
  108. package/dist/{field-block-CC_EYPWe.js → field-block-CBdMcT-i.js} +2 -2
  109. package/dist/{field-block-CC_EYPWe.js.map → field-block-CBdMcT-i.js.map} +1 -1
  110. package/dist/{field-block-Dx-fDIP9.cjs → field-block-CEbnWKc0.cjs} +2 -2
  111. package/dist/{field-block-Dx-fDIP9.cjs.map → field-block-CEbnWKc0.cjs.map} +1 -1
  112. package/dist/primitives/portal-container.cjs.js.map +1 -1
  113. package/dist/primitives/portal-container.es.js.map +1 -1
  114. package/dist/{property-filter-applied-Ca0UdU5P.js → property-filter-applied-Bs1Ck691.js} +2 -2
  115. package/dist/{property-filter-applied-Ca0UdU5P.js.map → property-filter-applied-Bs1Ck691.js.map} +1 -1
  116. package/dist/{property-filter-applied-BYKTDczo.cjs → property-filter-applied-DgmkZVbl.cjs} +2 -2
  117. package/dist/{property-filter-applied-BYKTDczo.cjs.map → property-filter-applied-DgmkZVbl.cjs.map} +1 -1
  118. package/dist/resize/panel-drawer.cjs.js +1 -1
  119. package/dist/resize/panel-drawer.es.js +1 -1
  120. package/dist/sankeyColor-CQ5nkgtL.js +48 -0
  121. package/dist/sankeyColor-CQ5nkgtL.js.map +1 -0
  122. package/dist/sankeyColor-DONd5cg9.cjs +53 -0
  123. package/dist/sankeyColor-DONd5cg9.cjs.map +1 -0
  124. package/dist/{search-field-block-C4njnmUx.cjs → search-field-block-BFY5jn1F.cjs} +2 -2
  125. package/dist/{search-field-block-C4njnmUx.cjs.map → search-field-block-BFY5jn1F.cjs.map} +1 -1
  126. package/dist/{search-field-block-e9qthuwY.js → search-field-block-DaXYck0w.js} +2 -2
  127. package/dist/{search-field-block-e9qthuwY.js.map → search-field-block-DaXYck0w.js.map} +1 -1
  128. package/dist/{select-field-block-dq1ZmZVb.cjs → select-field-block-BI_NZs2R.cjs} +2 -2
  129. package/dist/{select-field-block-dq1ZmZVb.cjs.map → select-field-block-BI_NZs2R.cjs.map} +1 -1
  130. package/dist/{select-field-block-BWuqWh4k.js → select-field-block-BSlngEHK.js} +2 -2
  131. package/dist/{select-field-block-BWuqWh4k.js.map → select-field-block-BSlngEHK.js.map} +1 -1
  132. package/dist/signals-empty-state.css +54 -0
  133. package/dist/src/ds/components/SankeyChart/index.d.ts +2 -1
  134. package/dist/src/ds/components/SankeyChart/sankey-chart-utils.d.ts +2 -1
  135. package/dist/src/ds/components/SankeyChart/sankey-chart.d.ts +4 -2
  136. package/dist/src/ds/components/SankeyChart/sankey-context.d.ts +3 -1
  137. package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +42 -0
  138. package/dist/src/ds/components/ai/ask-user/ask-user.stories.d.ts +11 -0
  139. package/dist/src/ds/components/ai/ask-user/index.d.ts +1 -0
  140. package/dist/src/ds/components/ai/task-list/index.d.ts +1 -0
  141. package/dist/src/ds/components/ai/task-list/task-list.d.ts +31 -0
  142. package/dist/src/ds/components/ai/task-list/task-list.stories.d.ts +9 -0
  143. package/dist/src/ee/signals/components/index.d.ts +0 -2
  144. package/dist/src/ee/signals/components/signals-empty-state.d.ts +7 -0
  145. package/dist/src/ee/signals/components/signals-overview-page.d.ts +2 -22
  146. package/dist/src/ee/signals/index.d.ts +1 -4
  147. package/dist/src/ee/signals/signal-colors.d.ts +7 -0
  148. package/dist/style.css +246 -40
  149. package/dist/{text-field-block-CpKq1NCV.cjs → text-field-block-BUvxjW9m.cjs} +2 -2
  150. package/dist/{text-field-block-CpKq1NCV.cjs.map → text-field-block-BUvxjW9m.cjs.map} +1 -1
  151. package/dist/{text-field-block-CrFqgdKx.js → text-field-block-DxtR1Ft4.js} +2 -2
  152. package/dist/{text-field-block-CrFqgdKx.js.map → text-field-block-DxtR1Ft4.js.map} +1 -1
  153. package/package.json +11 -11
  154. package/theme.css +1 -0
  155. package/dist/ee/signals/components/signal-details-page.cjs.js +0 -288
  156. package/dist/ee/signals/components/signal-details-page.cjs.js.map +0 -1
  157. package/dist/ee/signals/components/signal-details-page.d.ts +0 -2
  158. package/dist/ee/signals/components/signal-details-page.es.js +0 -280
  159. package/dist/ee/signals/components/signal-details-page.es.js.map +0 -1
  160. package/dist/ee/signals/components/signals-entity-filter.cjs.js +0 -27
  161. package/dist/ee/signals/components/signals-entity-filter.cjs.js.map +0 -1
  162. package/dist/ee/signals/components/signals-entity-filter.d.ts +0 -2
  163. package/dist/ee/signals/components/signals-entity-filter.es.js +0 -23
  164. package/dist/ee/signals/components/signals-entity-filter.es.js.map +0 -1
  165. package/dist/ee/signals/hooks/use-entity-learning-config.cjs.js +0 -35
  166. package/dist/ee/signals/hooks/use-entity-learning-config.cjs.js.map +0 -1
  167. package/dist/ee/signals/hooks/use-entity-learning-config.d.ts +0 -2
  168. package/dist/ee/signals/hooks/use-entity-learning-config.es.js +0 -31
  169. package/dist/ee/signals/hooks/use-entity-learning-config.es.js.map +0 -1
  170. package/dist/ee/signals/hooks/use-entity-learning.cjs.js +0 -96
  171. package/dist/ee/signals/hooks/use-entity-learning.cjs.js.map +0 -1
  172. package/dist/ee/signals/hooks/use-entity-learning.d.ts +0 -2
  173. package/dist/ee/signals/hooks/use-entity-learning.es.js +0 -84
  174. package/dist/ee/signals/hooks/use-entity-learning.es.js.map +0 -1
  175. package/dist/ee/signals/hooks.cjs.js +0 -20
  176. package/dist/ee/signals/hooks.cjs.js.map +0 -1
  177. package/dist/ee/signals/hooks.d.ts +0 -2
  178. package/dist/ee/signals/hooks.es.js +0 -3
  179. package/dist/ee/signals/hooks.es.js.map +0 -1
  180. package/dist/ee/signals/services/entity-learning-service.cjs.js +0 -88
  181. package/dist/ee/signals/services/entity-learning-service.cjs.js.map +0 -1
  182. package/dist/ee/signals/services/entity-learning-service.d.ts +0 -2
  183. package/dist/ee/signals/services/entity-learning-service.es.js +0 -84
  184. package/dist/ee/signals/services/entity-learning-service.es.js.map +0 -1
  185. package/dist/ee/signals/services/entity-learning-types.cjs.js +0 -3
  186. package/dist/ee/signals/services/entity-learning-types.cjs.js.map +0 -1
  187. package/dist/ee/signals/services/entity-learning-types.d.ts +0 -1
  188. package/dist/ee/signals/services/entity-learning-types.es.js +0 -2
  189. package/dist/ee/signals/services/entity-learning-types.es.js.map +0 -1
  190. package/dist/ee/signals/services.cjs.js +0 -10
  191. package/dist/ee/signals/services.cjs.js.map +0 -1
  192. package/dist/ee/signals/services.d.ts +0 -2
  193. package/dist/ee/signals/services.es.js +0 -2
  194. package/dist/ee/signals/services.es.js.map +0 -1
  195. package/dist/ee/signals/signals-data.cjs.js +0 -53
  196. package/dist/ee/signals/signals-data.cjs.js.map +0 -1
  197. package/dist/ee/signals/signals-data.d.ts +0 -2
  198. package/dist/ee/signals/signals-data.es.js +0 -48
  199. package/dist/ee/signals/signals-data.es.js.map +0 -1
  200. package/dist/ee/signals/types.cjs.js +0 -3
  201. package/dist/ee/signals/types.cjs.js.map +0 -1
  202. package/dist/ee/signals/types.d.ts +0 -1
  203. package/dist/ee/signals/types.es.js +0 -2
  204. package/dist/ee/signals/types.es.js.map +0 -1
  205. package/dist/src/ee/signals/components/signal-details-page.d.ts +0 -40
  206. package/dist/src/ee/signals/components/signals-entity-filter.d.ts +0 -13
  207. package/dist/src/ee/signals/hooks/index.d.ts +0 -2
  208. package/dist/src/ee/signals/hooks/use-entity-learning-config.d.ts +0 -14
  209. package/dist/src/ee/signals/hooks/use-entity-learning.d.ts +0 -24
  210. package/dist/src/ee/signals/services/entity-learning-service.d.ts +0 -43
  211. package/dist/src/ee/signals/services/entity-learning-types.d.ts +0 -123
  212. package/dist/src/ee/signals/services/index.d.ts +0 -2
  213. package/dist/src/ee/signals/signals-data.d.ts +0 -10
  214. package/dist/src/ee/signals/types.d.ts +0 -15
package/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # @mastra/playground-ui
2
2
 
3
+ ## 42.0.0-alpha.8
4
+
5
+ ### Patch Changes
6
+
7
+ - dependencies updates: ([#19388](https://github.com/mastra-ai/mastra/pull/19388))
8
+ - Updated dependency [`prettier@^3.9.5` ↗︎](https://www.npmjs.com/package/prettier/v/3.9.5) (from `^3.8.3`, in `dependencies`)
9
+ - Updated dependencies [[`3b77e77`](https://github.com/mastra-ai/mastra/commit/3b77e7704936522e4769d29de1b5ea6901f302bd), [`6b1bf3b`](https://github.com/mastra-ai/mastra/commit/6b1bf3b9494bd51aa8f654c68c9355d6046fa2a1), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9)]:
10
+ - @mastra/core@1.52.0-alpha.8
11
+ - @mastra/client-js@1.33.0-alpha.8
12
+ - @mastra/react@1.2.6-alpha.8
13
+
14
+ ## 42.0.0-alpha.7
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [[`b7e79c3`](https://github.com/mastra-ai/mastra/commit/b7e79c3c02ac5cd415db34ba0975ceafc1464333), [`b75d749`](https://github.com/mastra-ai/mastra/commit/b75d749621ff5d17e86bcb4ee809d301fb4f7cf3), [`a8799bb`](https://github.com/mastra-ai/mastra/commit/a8799bb8e44f4a60d01e4e2acd3448ff80bf14f8)]:
19
+ - @mastra/core@1.52.0-alpha.7
20
+ - @mastra/client-js@1.33.0-alpha.7
21
+ - @mastra/react@1.2.6-alpha.7
22
+
23
+ ## 42.0.0-alpha.6
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [[`a40adeb`](https://github.com/mastra-ai/mastra/commit/a40adeb222b961a56a58af56a106106525721b74), [`821648b`](https://github.com/mastra-ai/mastra/commit/821648bf2871ef840100c7bacbecf676010bd12a), [`11f6cd9`](https://github.com/mastra-ai/mastra/commit/11f6cd96fe42582403416608beb212cc1a2cc79e)]:
28
+ - @mastra/core@1.52.0-alpha.6
29
+ - @mastra/client-js@1.33.0-alpha.6
30
+ - @mastra/react@1.2.6-alpha.6
31
+
32
+ ## 42.0.0-alpha.5
33
+
34
+ ### Minor Changes
35
+
36
+ - Added reusable Ask User and Task List components for agent interfaces. ([#19624](https://github.com/mastra-ai/mastra/pull/19624))
37
+
38
+ ### Patch Changes
39
+
40
+ - Fixed named form fields adding a second page scrollbar inside app scroll containers. ([#19617](https://github.com/mastra-ai/mastra/pull/19617))
41
+
42
+ - Updated dependencies [[`ec857fc`](https://github.com/mastra-ai/mastra/commit/ec857fc79c264b53b38e16478c789b7177f2ad59), [`e1f2fae`](https://github.com/mastra-ai/mastra/commit/e1f2faebaf048c3d4c2e2c01d293767c195d5794), [`63aa799`](https://github.com/mastra-ai/mastra/commit/63aa799c6b44eacc7806cda6846b7c5bbee06b37), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`76b7181`](https://github.com/mastra-ai/mastra/commit/76b71810366e6d90b9d3973149d1c7ba3659ffb9), [`0c0e8d7`](https://github.com/mastra-ai/mastra/commit/0c0e8d7becd4d1445c656b78d5d845f606c1ff9d), [`39c6753`](https://github.com/mastra-ai/mastra/commit/39c6753788a8d17278531b3381eb508747495b67), [`39c6753`](https://github.com/mastra-ai/mastra/commit/39c6753788a8d17278531b3381eb508747495b67), [`9f7c67a`](https://github.com/mastra-ai/mastra/commit/9f7c67abeeb52c41c51a9b5edee60b62afe7cd8d), [`0c52047`](https://github.com/mastra-ai/mastra/commit/0c520470a4547666156b2f18eb794eb8bd2676c8), [`3b65e68`](https://github.com/mastra-ai/mastra/commit/3b65e68d7f1c771c7a70eea42d83fefdd28cad88), [`e3868e2`](https://github.com/mastra-ai/mastra/commit/e3868e22babfffd0133771669ca724501c2dd58e)]:
43
+ - @mastra/core@1.52.0-alpha.5
44
+ - @mastra/react@1.2.6-alpha.5
45
+ - @mastra/client-js@1.33.0-alpha.5
46
+ - @mastra/memory@1.23.1-alpha.1
47
+
48
+ ## 42.0.0-alpha.4
49
+
50
+ ### Patch Changes
51
+
52
+ - Updated dependencies [[`4cfdd64`](https://github.com/mastra-ai/mastra/commit/4cfdd645794feaea0c4ea711e70ecdfbef0c5b8e)]:
53
+ - @mastra/core@1.52.0-alpha.4
54
+ - @mastra/client-js@1.33.0-alpha.4
55
+ - @mastra/react@1.2.6-alpha.4
56
+
3
57
  ## 42.0.0-alpha.3
4
58
 
5
59
  ### Minor Changes
@@ -0,0 +1,64 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { c as cva } from './index-CSm06eOE.js';
3
+ import * as React from 'react';
4
+ import { c as cn } from './cn-BakJzhuv.js';
5
+
6
+ const cardVariants = cva(
7
+ // Base styles
8
+ "duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom",
9
+ {
10
+ variants: {
11
+ elevation: {
12
+ flat: "",
13
+ raised: "shadow-card",
14
+ elevated: "shadow-elevated"
15
+ },
16
+ interactive: {
17
+ true: "active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3",
18
+ false: ""
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ elevation: "flat",
23
+ interactive: false
24
+ }
25
+ }
26
+ );
27
+ const Card = React.forwardRef(
28
+ ({ className, elevation, interactive, as, ...props }, ref) => {
29
+ const Component = as || "div";
30
+ return /* @__PURE__ */ jsx(
31
+ Component,
32
+ {
33
+ ref,
34
+ className: cn(cardVariants({ elevation, interactive }), className),
35
+ role: interactive ? "button" : void 0,
36
+ tabIndex: interactive ? 0 : void 0,
37
+ ...props
38
+ }
39
+ );
40
+ }
41
+ );
42
+ Card.displayName = "Card";
43
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
44
+ CardHeader.displayName = "CardHeader";
45
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
46
+ "h3",
47
+ {
48
+ ref,
49
+ className: cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
50
+ ...props
51
+ }
52
+ ));
53
+ CardTitle.displayName = "CardTitle";
54
+ const CardDescription = React.forwardRef(
55
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-ui-sm text-neutral3", className), ...props })
56
+ );
57
+ CardDescription.displayName = "CardDescription";
58
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-4", className), ...props }));
59
+ CardContent.displayName = "CardContent";
60
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-4 pt-0", className), ...props }));
61
+ CardFooter.displayName = "CardFooter";
62
+
63
+ export { Card as C, CardContent as a, CardDescription as b, CardFooter as c, CardHeader as d, CardTitle as e };
64
+ //# sourceMappingURL=Card-BOmiCU4T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card-BOmiCU4T.js","sources":["../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom',\n {\n variants: {\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3',\n false: '',\n },\n },\n defaultVariants: {\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, elevation, interactive, as, ...props }, ref) => {\n const Component = as || 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(cardVariants({ elevation, interactive }), className)}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-4', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":[],"mappings":";;;;;AAKA,MAAM,YAAA,GAAe,GAAA;AAAA;AAAA,EAEnB,6FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,yEAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,MAAA;AAAA,MACX,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAOO,MAAM,OAAO,KAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,aAAa,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,IAAA,MAAM,YAAY,EAAA,IAAM,KAAA;AAExB,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,GAAG,YAAA,CAAa,EAAE,WAAW,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,QACjE,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC3B,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKZ,MAAM,UAAA,GAAa,MAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC3F;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAKlB,MAAM,SAAA,GAAY,MAAM,UAAA,CAA+C,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtG,GAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oEAAA,EAAsE,SAAS,CAAA;AAAA,IAC5F,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAKjB,MAAM,kBAAkB,KAAA,CAAM,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQ,GAAA,CAAC,GAAA,EAAA,EAAE,GAAA,EAAU,WAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAClH;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAKvB,MAAM,WAAA,GAAc,MAAM,UAAA,CAA6C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACrG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,KAAA,EAAO,SAAS,CAAA,EAAI,GAAG,OAAO,CAC5D;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAKnB,MAAM,UAAA,GAAa,MAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,OAAO,CACnF;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;;;;"}
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const index = require('./index-C-Lt4Bx_.cjs');
5
+ const React = require('react');
6
+ const utils_cn = require('./cn-vA5sWo9W.cjs');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
10
+ if (e) {
11
+ for (const k in e) {
12
+ if (k !== 'default') {
13
+ const d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: () => e[k]
17
+ });
18
+ }
19
+ }
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ const cardVariants = index.cva(
28
+ // Base styles
29
+ "duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom",
30
+ {
31
+ variants: {
32
+ elevation: {
33
+ flat: "",
34
+ raised: "shadow-card",
35
+ elevated: "shadow-elevated"
36
+ },
37
+ interactive: {
38
+ true: "active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3",
39
+ false: ""
40
+ }
41
+ },
42
+ defaultVariants: {
43
+ elevation: "flat",
44
+ interactive: false
45
+ }
46
+ }
47
+ );
48
+ const Card = React__namespace.forwardRef(
49
+ ({ className, elevation, interactive, as, ...props }, ref) => {
50
+ const Component = as || "div";
51
+ return /* @__PURE__ */ jsxRuntime.jsx(
52
+ Component,
53
+ {
54
+ ref,
55
+ className: utils_cn.cn(cardVariants({ elevation, interactive }), className),
56
+ role: interactive ? "button" : void 0,
57
+ tabIndex: interactive ? 0 : void 0,
58
+ ...props
59
+ }
60
+ );
61
+ }
62
+ );
63
+ Card.displayName = "Card";
64
+ const CardHeader = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
65
+ CardHeader.displayName = "CardHeader";
66
+ const CardTitle = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
67
+ "h3",
68
+ {
69
+ ref,
70
+ className: utils_cn.cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
71
+ ...props
72
+ }
73
+ ));
74
+ CardTitle.displayName = "CardTitle";
75
+ const CardDescription = React__namespace.forwardRef(
76
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: utils_cn.cn("text-ui-sm text-neutral3", className), ...props })
77
+ );
78
+ CardDescription.displayName = "CardDescription";
79
+ const CardContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("p-4", className), ...props }));
80
+ CardContent.displayName = "CardContent";
81
+ const CardFooter = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex items-center p-4 pt-0", className), ...props }));
82
+ CardFooter.displayName = "CardFooter";
83
+
84
+ exports.Card = Card;
85
+ exports.CardContent = CardContent;
86
+ exports.CardDescription = CardDescription;
87
+ exports.CardFooter = CardFooter;
88
+ exports.CardHeader = CardHeader;
89
+ exports.CardTitle = CardTitle;
90
+ //# sourceMappingURL=Card-CHeBhO_f.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card-CHeBhO_f.cjs","sources":["../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom',\n {\n variants: {\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3',\n false: '',\n },\n },\n defaultVariants: {\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, elevation, interactive, as, ...props }, ref) => {\n const Component = as || 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(cardVariants({ elevation, interactive }), className)}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-4', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":["cva","React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,YAAA,GAAeA,SAAA;AAAA;AAAA,EAEnB,6FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,yEAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,MAAA;AAAA,MACX,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAOO,MAAM,OAAOC,gBAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,aAAa,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,IAAA,MAAM,YAAY,EAAA,IAAM,KAAA;AAExB,IAAA,uBACEC,cAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,YAAG,YAAA,CAAa,EAAE,WAAW,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,QACjE,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC3B,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKZ,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC3F;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAKlB,MAAM,SAAA,GAAYF,iBAAM,UAAA,CAA+C,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtGC,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,WAAA,CAAG,oEAAA,EAAsE,SAAS,CAAA;AAAA,IAC5F,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAKjB,MAAM,kBAAkBF,gBAAA,CAAM,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQC,cAAA,CAAC,GAAA,EAAA,EAAE,GAAA,EAAU,WAAWC,WAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAClH;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAKvB,MAAM,WAAA,GAAcF,iBAAM,UAAA,CAA6C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACrG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,KAAA,EAAO,SAAS,CAAA,EAAI,GAAG,OAAO,CAC5D;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAKnB,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,OAAO,CACnF;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;;;;;;;;;"}
@@ -123,9 +123,9 @@ const ButtonsGroupSeparator = React.forwardRef(
123
123
  ButtonsGroupSeparator.displayName = "ButtonsGroupSeparator";
124
124
  const buttonsGroupTextVariants = cva(
125
125
  cn(
126
- "inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none",
127
- "rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0",
128
- "[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50"
126
+ "inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none",
127
+ "shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap",
128
+ "[&>svg]:size-[1.1em] [&>svg]:opacity-50"
129
129
  ),
130
130
  {
131
131
  variants: {
@@ -158,4 +158,4 @@ const ButtonsGroupText = React.forwardRef(
158
158
  ButtonsGroupText.displayName = "ButtonsGroupText";
159
159
 
160
160
  export { ButtonsGroup as B, ButtonsGroupSeparator as a, ButtonsGroupText as b, buttonsGroupVariants as c };
161
- //# sourceMappingURL=buttons-group-b6an6uao.js.map
161
+ //# sourceMappingURL=buttons-group-DJh4wnMs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buttons-group-b6an6uao.js","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none',\n 'rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buttons-group-DJh4wnMs.js","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none',\n 'shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap',\n '[&>svg]:size-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":[],"mappings":"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"}
@@ -144,9 +144,9 @@ const ButtonsGroupSeparator = React__namespace.forwardRef(
144
144
  ButtonsGroupSeparator.displayName = "ButtonsGroupSeparator";
145
145
  const buttonsGroupTextVariants = index.cva(
146
146
  utils_cn.cn(
147
- "inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none",
148
- "rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0",
149
- "[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50"
147
+ "inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none",
148
+ "shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap",
149
+ "[&>svg]:size-[1.1em] [&>svg]:opacity-50"
150
150
  ),
151
151
  {
152
152
  variants: {
@@ -182,4 +182,4 @@ exports.ButtonsGroup = ButtonsGroup;
182
182
  exports.ButtonsGroupSeparator = ButtonsGroupSeparator;
183
183
  exports.ButtonsGroupText = ButtonsGroupText;
184
184
  exports.buttonsGroupVariants = buttonsGroupVariants;
185
- //# sourceMappingURL=buttons-group-C0fJastT.cjs.map
185
+ //# sourceMappingURL=buttons-group-Dw8Wu4sj.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"buttons-group-C0fJastT.cjs","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none',\n 'rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":["React","cva","cn","jsx","controlSizeClasses"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,8BAAA,GAAiCA,gBAAA,CAAM,aAAA,CAA2B,YAAY,CAAA;AAEpF,MAAM,oBAAA,GAAuBC,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3BC,WAAA;AAAA,IACE,MAAA;AAAA,IACA,uCAAA;AAAA,IACA,uDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,UAAA,EAAY,uBAAA;AAAA,QACZ,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,OAAA;AAAA,QACT,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB;AAAA,QACE,WAAA,EAAa,YAAA;AAAA,QACb,OAAA,EAAS,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQT,SAAA,EAAWA,WAAA;AAAA,UACT,wGAAA;AAAA,UACA,iHAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMA,kJAAA;AAAA,UACA,sTAAA;AAAA;AAAA,UAEA,oHAAA;AAAA;AAAA,UAEA,4GAAA;AAAA;AAAA;AAAA,UAGA,+EAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA;AAAA,QACE,WAAA,EAAa,UAAA;AAAA,QACb,OAAA,EAAS,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMT,SAAA,EAAWA,WAAA;AAAA,UACT,uCAAA;AAAA,UACA,wCAAA;AAAA,UACA,+BAAA;AAAA,UACA,8BAAA;AAAA,UACA,yEAAA;AAAA,UACA,6OAAA;AAAA,UACA,4FAAA;AAAA,UACA;AAAA;AACF;AACF,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa,YAAA;AAAA,MACb,OAAA,EAAS;AAAA;AACX;AAEJ;AAWO,MAAM,eAAeF,gBAAA,CAAM,UAAA;AAAA,EAChC,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,OAAA,GAAU,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3F,IAAA,uBACEG,cAAA,CAAC,8BAAA,CAA+B,QAAA,EAA/B,EAAwC,OAAO,WAAA,EAC9C,QAAA,kBAAAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,eAAA;AAAA,QACV,kBAAA,EAAkB,WAAA;AAAA,QAClB,SAAA,EAAWD,YAAG,oBAAA,CAAqB,EAAE,aAAa,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACtE,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA;AAMpB,MAAM,wBAAwBF,gBAAA,CAAM,UAAA;AAAA,EACzC,CAAC,EAAE,SAAA,EAAW,aAAa,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC7C,IAAA,MAAM,iBAAA,GAAoBA,gBAAA,CAAM,UAAA,CAAW,8BAA8B,CAAA;AAEzE,IAAA,MAAM,QAAA,GAAW,WAAA,KAAgB,iBAAA,KAAsB,UAAA,GAAa,YAAA,GAAe,UAAA,CAAA;AACnF,IAAA,uBACEG,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,WAAA;AAAA,QACL,kBAAA,EAAkB,QAAA;AAAA,QAClB,WAAA,EAAU,yBAAA;AAAA,QACV,WAAWD,WAAA,CAAG,yBAAA,EAA2B,aAAa,UAAA,GAAa,MAAA,GAAS,QAAQ,SAAS,CAAA;AAAA,QAC5F,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,qBAAA,CAAsB,WAAA,GAAc,uBAAA;AAEpC,MAAM,wBAAA,GAA2BD,SAAA;AAAA,EAC/BC,WAAA;AAAA,IACE,qGAAA;AAAA,IACA,8DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,IAAIE,yCAAA,CAAmB,EAAA;AAAA,QACvB,IAAIA,yCAAA,CAAmB,EAAA;AAAA,QACvB,IAAIA,yCAAA,CAAmB,EAAA;AAAA,QACvB,SAASA,yCAAA,CAAmB,OAAA;AAAA,QAC5B,IAAIA,yCAAA,CAAmB;AAAA;AACzB,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAMO,MAAM,mBAAmBJ,gBAAA,CAAM,UAAA;AAAA,EACpC,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClD,IAAA,uBACEG,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,oBAAA;AAAA,QACV,WAAWD,WAAA,CAAG,wBAAA,CAAyB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QAC1D,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;;;;;;"}
1
+ {"version":3,"file":"buttons-group-Dw8Wu4sj.cjs","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none',\n 'shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap',\n '[&>svg]:size-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":["React","cva","cn","jsx","controlSizeClasses"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const buttonsGroup = require('../buttons-group-C0fJastT.cjs');
5
+ const buttonsGroup = require('../buttons-group-Dw8Wu4sj.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { B as ButtonsGroup, a as ButtonsGroupSeparator, b as ButtonsGroupText, c as buttonsGroupVariants } from '../buttons-group-b6an6uao.js';
1
+ export { B as ButtonsGroup, a as ButtonsGroupSeparator, b as ButtonsGroupText, c as buttonsGroupVariants } from '../buttons-group-DJh4wnMs.js';
2
2
  //# sourceMappingURL=ButtonsGroup.es.js.map
@@ -2,91 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const jsxRuntime = require('react/jsx-runtime');
6
- const index = require('../index-C-Lt4Bx_.cjs');
7
- const React = require('react');
8
- const utils_cn = require('../cn-vA5sWo9W.cjs');
5
+ const Card = require('../Card-CHeBhO_f.cjs');
9
6
 
10
- function _interopNamespaceDefault(e) {
11
- const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
12
- if (e) {
13
- for (const k in e) {
14
- if (k !== 'default') {
15
- const d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: () => e[k]
19
- });
20
- }
21
- }
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
7
 
27
- const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
8
 
29
- const cardVariants = index.cva(
30
- // Base styles
31
- "duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom",
32
- {
33
- variants: {
34
- elevation: {
35
- flat: "",
36
- raised: "shadow-card",
37
- elevated: "shadow-elevated"
38
- },
39
- interactive: {
40
- true: "active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3",
41
- false: ""
42
- }
43
- },
44
- defaultVariants: {
45
- elevation: "flat",
46
- interactive: false
47
- }
48
- }
49
- );
50
- const Card = React__namespace.forwardRef(
51
- ({ className, elevation, interactive, as, ...props }, ref) => {
52
- const Component = as || "div";
53
- return /* @__PURE__ */ jsxRuntime.jsx(
54
- Component,
55
- {
56
- ref,
57
- className: utils_cn.cn(cardVariants({ elevation, interactive }), className),
58
- role: interactive ? "button" : void 0,
59
- tabIndex: interactive ? 0 : void 0,
60
- ...props
61
- }
62
- );
63
- }
64
- );
65
- Card.displayName = "Card";
66
- const CardHeader = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
67
- CardHeader.displayName = "CardHeader";
68
- const CardTitle = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
69
- "h3",
70
- {
71
- ref,
72
- className: utils_cn.cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
73
- ...props
74
- }
75
- ));
76
- CardTitle.displayName = "CardTitle";
77
- const CardDescription = React__namespace.forwardRef(
78
- ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: utils_cn.cn("text-ui-sm text-neutral3", className), ...props })
79
- );
80
- CardDescription.displayName = "CardDescription";
81
- const CardContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("p-4", className), ...props }));
82
- CardContent.displayName = "CardContent";
83
- const CardFooter = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex items-center p-4 pt-0", className), ...props }));
84
- CardFooter.displayName = "CardFooter";
85
-
86
- exports.Card = Card;
87
- exports.CardContent = CardContent;
88
- exports.CardDescription = CardDescription;
89
- exports.CardFooter = CardFooter;
90
- exports.CardHeader = CardHeader;
91
- exports.CardTitle = CardTitle;
9
+ exports.Card = Card.Card;
10
+ exports.CardContent = Card.CardContent;
11
+ exports.CardDescription = Card.CardDescription;
12
+ exports.CardFooter = Card.CardFooter;
13
+ exports.CardHeader = Card.CardHeader;
14
+ exports.CardTitle = Card.CardTitle;
92
15
  //# sourceMappingURL=Card.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.cjs.js","sources":["../../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom',\n {\n variants: {\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3',\n false: '',\n },\n },\n defaultVariants: {\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, elevation, interactive, as, ...props }, ref) => {\n const Component = as || 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(cardVariants({ elevation, interactive }), className)}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-4', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":["cva","React","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM,YAAA,GAAeA,SAAA;AAAA;AAAA,EAEnB,6FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,yEAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,MAAA;AAAA,MACX,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAOO,MAAM,OAAOC,gBAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,aAAa,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,IAAA,MAAM,YAAY,EAAA,IAAM,KAAA;AAExB,IAAA,uBACEC,cAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,YAAG,YAAA,CAAa,EAAE,WAAW,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,QACjE,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC3B,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKZ,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC3F;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAKlB,MAAM,SAAA,GAAYF,iBAAM,UAAA,CAA+C,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtGC,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,WAAA,CAAG,oEAAA,EAAsE,SAAS,CAAA;AAAA,IAC5F,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAKjB,MAAM,kBAAkBF,gBAAA,CAAM,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQC,cAAA,CAAC,GAAA,EAAA,EAAE,GAAA,EAAU,WAAWC,WAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAClH;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAKvB,MAAM,WAAA,GAAcF,iBAAM,UAAA,CAA6C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACrG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,KAAA,EAAO,SAAS,CAAA,EAAI,GAAG,OAAO,CAC5D;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAKnB,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,OAAO,CACnF;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;;;;;;;;;"}
1
+ {"version":3,"file":"Card.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,64 +1,2 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { c as cva } from '../index-CSm06eOE.js';
3
- import * as React from 'react';
4
- import { c as cn } from '../cn-BakJzhuv.js';
5
-
6
- const cardVariants = cva(
7
- // Base styles
8
- "duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom",
9
- {
10
- variants: {
11
- elevation: {
12
- flat: "",
13
- raised: "shadow-card",
14
- elevated: "shadow-elevated"
15
- },
16
- interactive: {
17
- true: "active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3",
18
- false: ""
19
- }
20
- },
21
- defaultVariants: {
22
- elevation: "flat",
23
- interactive: false
24
- }
25
- }
26
- );
27
- const Card = React.forwardRef(
28
- ({ className, elevation, interactive, as, ...props }, ref) => {
29
- const Component = as || "div";
30
- return /* @__PURE__ */ jsx(
31
- Component,
32
- {
33
- ref,
34
- className: cn(cardVariants({ elevation, interactive }), className),
35
- role: interactive ? "button" : void 0,
36
- tabIndex: interactive ? 0 : void 0,
37
- ...props
38
- }
39
- );
40
- }
41
- );
42
- Card.displayName = "Card";
43
- const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
44
- CardHeader.displayName = "CardHeader";
45
- const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
46
- "h3",
47
- {
48
- ref,
49
- className: cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
50
- ...props
51
- }
52
- ));
53
- CardTitle.displayName = "CardTitle";
54
- const CardDescription = React.forwardRef(
55
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-ui-sm text-neutral3", className), ...props })
56
- );
57
- CardDescription.displayName = "CardDescription";
58
- const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-4", className), ...props }));
59
- CardContent.displayName = "CardContent";
60
- const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-4 pt-0", className), ...props }));
61
- CardFooter.displayName = "CardFooter";
62
-
63
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
1
+ export { C as Card, a as CardContent, b as CardDescription, c as CardFooter, d as CardHeader, e as CardTitle } from '../Card-BOmiCU4T.js';
64
2
  //# sourceMappingURL=Card.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.es.js","sources":["../../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg border border-border1 bg-surface2 transition-all ease-out-custom',\n {\n variants: {\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'active:scale-0.99 cursor-pointer hover:border-border2 hover:bg-surface3',\n false: '',\n },\n },\n defaultVariants: {\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, elevation, interactive, as, ...props }, ref) => {\n const Component = as || 'div';\n\n return (\n <Component\n ref={ref}\n className={cn(cardVariants({ elevation, interactive }), className)}\n role={interactive ? 'button' : undefined}\n tabIndex={interactive ? 0 : undefined}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-4', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":[],"mappings":";;;;;AAKA,MAAM,YAAA,GAAe,GAAA;AAAA;AAAA,EAEnB,6FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,yEAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,MAAA;AAAA,MACX,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAOO,MAAM,OAAO,KAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,SAAA,EAAW,aAAa,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,IAAA,MAAM,YAAY,EAAA,IAAM,KAAA;AAExB,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,GAAG,YAAA,CAAa,EAAE,WAAW,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,QACjE,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC3B,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAKZ,MAAM,UAAA,GAAa,MAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC3F;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAKlB,MAAM,SAAA,GAAY,MAAM,UAAA,CAA+C,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtG,GAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oEAAA,EAAsE,SAAS,CAAA;AAAA,IAC5F,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAKjB,MAAM,kBAAkB,KAAA,CAAM,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQ,GAAA,CAAC,GAAA,EAAA,EAAE,GAAA,EAAU,WAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAClH;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAKvB,MAAM,WAAA,GAAc,MAAM,UAAA,CAA6C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACrG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,KAAA,EAAO,SAAS,CAAA,EAAI,GAAG,OAAO,CAC5D;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAKnB,MAAM,UAAA,GAAa,MAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,yBACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,OAAO,CACnF;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;;;;"}
1
+ {"version":3,"file":"Card.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}