@contractspec/lib.design-system 3.9.0 → 3.11.0

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 (547) hide show
  1. package/README.md +192 -5
  2. package/dist/browser/components/agent/AgentMonitor.js +1 -0
  3. package/dist/browser/components/agent/ApprovalQueue.js +1 -0
  4. package/dist/browser/components/agent/ApprovalQueue.mobile.js +1 -0
  5. package/dist/browser/components/atoms/ActionButtons.js +1 -0
  6. package/dist/browser/components/atoms/Button.js +1 -0
  7. package/dist/browser/components/atoms/Button.mobile.js +1 -0
  8. package/dist/browser/components/atoms/ButtonLink.js +1 -0
  9. package/dist/browser/components/atoms/ButtonLink.mobile.js +1 -0
  10. package/dist/browser/components/atoms/Cta.js +1 -0
  11. package/dist/browser/components/atoms/Cta.mobile.js +1 -0
  12. package/dist/browser/components/atoms/DataChips.js +1 -0
  13. package/dist/browser/components/atoms/EmptyState.js +1 -0
  14. package/dist/browser/components/atoms/ErrorState.js +1 -0
  15. package/dist/browser/components/atoms/ErrorState.mobile.js +1 -0
  16. package/dist/browser/components/atoms/Input.js +1 -0
  17. package/dist/browser/components/atoms/Input.mobile.js +1 -0
  18. package/dist/browser/components/atoms/Link.js +1 -0
  19. package/dist/browser/components/atoms/Link.web.js +1 -0
  20. package/dist/browser/components/atoms/LoaderCircular.js +1 -0
  21. package/dist/browser/components/atoms/LoaderCircular.mobile.js +1 -0
  22. package/dist/browser/components/atoms/NavBrand.js +1 -0
  23. package/dist/browser/components/atoms/RankBadge.js +1 -0
  24. package/dist/browser/components/atoms/ScoreBar.js +1 -0
  25. package/dist/browser/components/atoms/Stepper.js +1 -0
  26. package/dist/browser/components/atoms/Textarea.js +1 -0
  27. package/dist/browser/components/atoms/Textarea.mobile.js +1 -0
  28. package/dist/browser/components/data-table/DataTable.js +1 -0
  29. package/dist/browser/components/data-table/DataTable.mobile.js +1 -0
  30. package/dist/browser/components/data-table/DataTableToolbar.js +1 -0
  31. package/dist/browser/components/data-table/DataTableToolbar.mobile.js +1 -0
  32. package/dist/browser/components/data-table/DataTableToolbar.shared.js +1 -0
  33. package/dist/browser/components/data-view/DataViewDetail.js +1 -0
  34. package/dist/browser/components/data-view/DataViewList.js +1 -0
  35. package/dist/browser/components/data-view/DataViewRenderer.js +1 -0
  36. package/dist/browser/components/data-view/DataViewRenderer.mobile.js +1 -0
  37. package/dist/browser/components/data-view/DataViewTable.js +1 -0
  38. package/dist/browser/components/data-view/DataViewTable.mobile.js +1 -0
  39. package/dist/browser/components/data-view/utils.js +1 -0
  40. package/dist/browser/components/forms/ActionForm.js +1 -0
  41. package/dist/browser/components/forms/FormCardLayout.js +1 -0
  42. package/dist/browser/components/forms/FormDialog.js +1 -0
  43. package/dist/browser/components/forms/FormLayout.js +1 -0
  44. package/dist/browser/components/forms/FormOneByOneLayout.js +1 -0
  45. package/dist/browser/components/forms/FormStepsLayout.js +1 -0
  46. package/dist/browser/components/forms/ZodForm.js +1 -0
  47. package/dist/browser/components/forms/controls/Autocomplete.js +1 -0
  48. package/dist/browser/components/forms/controls/Autocomplete.mobile.js +1 -0
  49. package/dist/browser/components/forms/controls/ChoiceControls.js +1 -0
  50. package/dist/browser/components/forms/controls/ChoiceControls.mobile.js +1 -0
  51. package/dist/browser/components/forms/controls/Combobox.js +1 -0
  52. package/dist/browser/components/forms/controls/Combobox.mobile.js +1 -0
  53. package/dist/browser/components/forms/controls/DateTimeControls.js +1 -0
  54. package/dist/browser/components/forms/controls/DateTimeControls.mobile.js +1 -0
  55. package/dist/browser/components/forms/controls/DropdownMenu.js +1 -0
  56. package/dist/browser/components/forms/controls/DropdownMenu.mobile.js +1 -0
  57. package/dist/browser/components/forms/controls/Field.js +1 -0
  58. package/dist/browser/components/forms/controls/Field.mobile.js +1 -0
  59. package/dist/browser/components/forms/controls/InputGroup.js +1 -0
  60. package/dist/browser/components/forms/controls/InputGroup.mobile.js +1 -0
  61. package/dist/browser/components/forms/controls/InputOTP.js +1 -0
  62. package/dist/browser/components/forms/controls/InputOTP.mobile.js +1 -0
  63. package/dist/browser/components/forms/controls/LoadingButton.js +1 -0
  64. package/dist/browser/components/forms/controls/LoadingButton.mobile.js +1 -0
  65. package/dist/browser/components/forms/controls/NativeSelect.js +1 -0
  66. package/dist/browser/components/forms/controls/NativeSelect.mobile.js +1 -0
  67. package/dist/browser/components/forms/controls/Select.js +1 -0
  68. package/dist/browser/components/forms/controls/Select.mobile.js +1 -0
  69. package/dist/browser/components/forms/controls/index.js +1 -0
  70. package/dist/browser/components/forms/index.js +1 -0
  71. package/dist/browser/components/layout/Stack.js +1 -0
  72. package/dist/browser/components/layout/Stack.mobile.js +1 -0
  73. package/dist/browser/components/layout/index.js +1 -0
  74. package/dist/browser/components/legal/atoms/DefinitionList.js +1 -0
  75. package/dist/browser/components/legal/atoms/KeyValueList.js +1 -0
  76. package/dist/browser/components/legal/atoms/LegalCallout.js +1 -0
  77. package/dist/browser/components/legal/atoms/LegalHeading.js +1 -0
  78. package/dist/browser/components/legal/atoms/LegalList.js +1 -0
  79. package/dist/browser/components/legal/atoms/LegalSection.js +1 -0
  80. package/dist/browser/components/legal/atoms/LegalText.js +1 -0
  81. package/dist/browser/components/legal/molecules/Consent.js +1 -0
  82. package/dist/browser/components/legal/molecules/ContactFields.js +1 -0
  83. package/dist/browser/components/legal/molecules/LegalMeta.js +1 -0
  84. package/dist/browser/components/legal/molecules/LegalTOC.js +1 -0
  85. package/dist/browser/components/legal/organisms/ContactForm.js +1 -0
  86. package/dist/browser/components/legal/organisms/GDPRDataRequest.js +1 -0
  87. package/dist/browser/components/legal/organisms/GDPRRights.js +1 -0
  88. package/dist/browser/components/legal/organisms/LegalPageLayout.js +1 -0
  89. package/dist/browser/components/legal/templates/ContactTemplate.js +1 -0
  90. package/dist/browser/components/legal/templates/CookiesTemplate.js +1 -0
  91. package/dist/browser/components/legal/templates/PrivacyTemplate.js +1 -0
  92. package/dist/browser/components/legal/templates/SalesTermsTemplate.js +1 -0
  93. package/dist/browser/components/legal/templates/TermsTemplate.js +1 -0
  94. package/dist/browser/components/marketing/MarketingCard.js +1 -0
  95. package/dist/browser/components/marketing/MarketingCardsSection.js +1 -0
  96. package/dist/browser/components/marketing/MarketingComparisonSection.js +1 -0
  97. package/dist/browser/components/marketing/MarketingIconCard.js +1 -0
  98. package/dist/browser/components/marketing/MarketingSection.js +1 -0
  99. package/dist/browser/components/marketing/MarketingStepCard.js +1 -0
  100. package/dist/browser/components/molecules/AiLinkButton.js +1 -0
  101. package/dist/browser/components/molecules/Breadcrumbs.js +1 -0
  102. package/dist/browser/components/molecules/CodeBlock/CodeBlock.js +1 -0
  103. package/dist/browser/components/molecules/CodeBlock/index.js +1 -0
  104. package/dist/browser/components/molecules/CodeBlock/types.js +0 -0
  105. package/dist/browser/components/molecules/CommandPalette.js +1 -0
  106. package/dist/browser/components/molecules/CommandSearchTrigger.js +1 -0
  107. package/dist/browser/components/molecules/CommandTabs/CommandTabs.js +1 -0
  108. package/dist/browser/components/molecules/CommandTabs/index.js +1 -0
  109. package/dist/browser/components/molecules/CommandTabs/types.js +0 -0
  110. package/dist/browser/components/molecules/CopyButton/CopyButton.js +1 -0
  111. package/dist/browser/components/molecules/CopyButton/index.js +1 -0
  112. package/dist/browser/components/molecules/CopyButton/types.js +0 -0
  113. package/dist/browser/components/molecules/DimensionScoresCard.js +1 -0
  114. package/dist/browser/components/molecules/DropdownMenu.js +0 -0
  115. package/dist/browser/components/molecules/EntityCard.js +1 -0
  116. package/dist/browser/components/molecules/FiltersToolbar.js +1 -0
  117. package/dist/browser/components/molecules/FiltersToolbar.mobile.js +1 -0
  118. package/dist/browser/components/molecules/HoverPreview.js +1 -0
  119. package/dist/browser/components/molecules/InstallCommand/InstallCommand.js +1 -0
  120. package/dist/browser/components/molecules/InstallCommand/index.js +1 -0
  121. package/dist/browser/components/molecules/InstallCommand/types.js +0 -0
  122. package/dist/browser/components/molecules/LangSwitch.js +1 -0
  123. package/dist/browser/components/molecules/LangSwitchDropdown.js +1 -0
  124. package/dist/browser/components/molecules/LoaderBlock.js +1 -0
  125. package/dist/browser/components/molecules/LoaderBlock.mobile.js +1 -0
  126. package/dist/browser/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  127. package/dist/browser/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  128. package/dist/browser/components/molecules/MarkdownRenderer/index.js +1 -0
  129. package/dist/browser/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  130. package/dist/browser/components/molecules/MarkdownRenderer/types.js +0 -0
  131. package/dist/browser/components/molecules/MobileNavMenu.js +1 -0
  132. package/dist/browser/components/molecules/NavItemCard.js +1 -0
  133. package/dist/browser/components/molecules/NavMain.js +1 -0
  134. package/dist/browser/components/molecules/NavUser.js +1 -0
  135. package/dist/browser/components/molecules/OverviewCard.js +1 -0
  136. package/dist/browser/components/molecules/SkeletonBlock/index.js +1 -0
  137. package/dist/browser/components/molecules/SkeletonBlock/index.mobile.js +1 -0
  138. package/dist/browser/components/molecules/SkeletonBlock/index.web.js +1 -0
  139. package/dist/browser/components/molecules/SkeletonBlock/types.js +0 -0
  140. package/dist/browser/components/molecules/SkeletonCircle/index.js +1 -0
  141. package/dist/browser/components/molecules/SkeletonCircle/index.mobile.js +1 -0
  142. package/dist/browser/components/molecules/SkeletonCircle/index.web.js +1 -0
  143. package/dist/browser/components/molecules/SkeletonCircle/types.js +0 -0
  144. package/dist/browser/components/molecules/SkeletonList/index.js +1 -0
  145. package/dist/browser/components/molecules/SkeletonList/index.mobile.js +1 -0
  146. package/dist/browser/components/molecules/SkeletonList/index.web.js +1 -0
  147. package/dist/browser/components/molecules/SkeletonList/types.js +0 -0
  148. package/dist/browser/components/molecules/StatCard.js +1 -0
  149. package/dist/browser/components/molecules/StatusChip.js +1 -0
  150. package/dist/browser/components/molecules/hover-previews/Doc.js +1 -0
  151. package/dist/browser/components/molecules/hover-previews/Media.js +1 -0
  152. package/dist/browser/components/molecules/hover-previews/Simple.js +1 -0
  153. package/dist/browser/components/molecules/hover-previews/Stats.js +1 -0
  154. package/dist/browser/components/molecules/hover-previews/User.js +1 -0
  155. package/dist/browser/components/native/BottomTabs.mobile.js +1 -0
  156. package/dist/browser/components/native/FlatListScreen.mobile.js +1 -0
  157. package/dist/browser/components/native/SheetMenu.mobile.js +1 -0
  158. package/dist/browser/components/organisms/AcademyLayout.js +1 -0
  159. package/dist/browser/components/organisms/AppHeader.js +1 -0
  160. package/dist/browser/components/organisms/AppHeader.mobile.js +1 -0
  161. package/dist/browser/components/organisms/AppLayout.js +1 -0
  162. package/dist/browser/components/organisms/AppSidebar.js +1 -0
  163. package/dist/browser/components/organisms/AppSidebar.mobile.js +0 -0
  164. package/dist/browser/components/organisms/EmptyDataList.js +1 -0
  165. package/dist/browser/components/organisms/EmptyDataList.mobile.js +1 -0
  166. package/dist/browser/components/organisms/EmptyDataList.types.js +0 -0
  167. package/dist/browser/components/organisms/EmptySearchResult.js +1 -0
  168. package/dist/browser/components/organisms/FAQSection.js +1 -0
  169. package/dist/browser/components/organisms/FeatureCarousel.js +1 -0
  170. package/dist/browser/components/organisms/FeaturesSection.js +1 -0
  171. package/dist/browser/components/organisms/Footer.js +1 -0
  172. package/dist/browser/components/organisms/GridLayout.js +1 -0
  173. package/dist/browser/components/organisms/Header.js +1 -0
  174. package/dist/browser/components/organisms/Header.mobile.js +1 -0
  175. package/dist/browser/components/organisms/HeroResponsive.js +1 -0
  176. package/dist/browser/components/organisms/HeroSection.js +1 -0
  177. package/dist/browser/components/organisms/ListCardPage.js +1 -0
  178. package/dist/browser/components/organisms/ListGridPage.js +1 -0
  179. package/dist/browser/components/organisms/ListPageResponsive.js +1 -0
  180. package/dist/browser/components/organisms/ListTablePage.js +1 -0
  181. package/dist/browser/components/organisms/ListTablePage.mobile.js +1 -0
  182. package/dist/browser/components/organisms/MarketingHeader.js +1 -0
  183. package/dist/browser/components/organisms/MarketingHeaderDesktop.js +1 -0
  184. package/dist/browser/components/organisms/MarketingHeaderMobile.js +1 -0
  185. package/dist/browser/components/organisms/MarketingLayout.js +1 -0
  186. package/dist/browser/components/organisms/ModelComparisonView.js +1 -0
  187. package/dist/browser/components/organisms/PageHeaderResponsive.js +1 -0
  188. package/dist/browser/components/organisms/PageHeaderResponsive.mobile.js +1 -0
  189. package/dist/browser/components/organisms/PricingCarousel.js +1 -0
  190. package/dist/browser/components/organisms/PricingSection.js +1 -0
  191. package/dist/browser/components/organisms/TestimonialCarousel.js +1 -0
  192. package/dist/browser/components/primitives/control.js +1 -0
  193. package/dist/browser/components/primitives/themed.js +1 -0
  194. package/dist/browser/components/providers/PackageManagerProvider.js +1 -0
  195. package/dist/browser/components/templates/lists/ListPageTemplate/index.js +1 -0
  196. package/dist/browser/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
  197. package/dist/browser/components/templates/lists/ListPageTemplate/index.web.js +1 -0
  198. package/dist/browser/components/templates/lists/ListPageTemplate/types.js +0 -0
  199. package/dist/browser/components/visualization/ComparisonView.js +1 -0
  200. package/dist/browser/components/visualization/ComparisonView.mobile.js +1 -0
  201. package/dist/browser/components/visualization/TimelineView.js +1 -0
  202. package/dist/browser/components/visualization/TimelineView.mobile.js +1 -0
  203. package/dist/browser/components/visualization/VisualizationCard.js +1 -0
  204. package/dist/browser/components/visualization/VisualizationCard.mobile.js +1 -0
  205. package/dist/browser/components/visualization/VisualizationGrid.js +1 -0
  206. package/dist/browser/components/visualization/VisualizationGrid.mobile.js +1 -0
  207. package/dist/browser/components/visualization/VisualizationRenderer.js +1 -0
  208. package/dist/browser/components/visualization/VisualizationRenderer.mobile.js +1 -0
  209. package/dist/browser/components/visualization/types.js +0 -0
  210. package/dist/browser/contracts.typecheck.js +1 -0
  211. package/dist/browser/design-system.feature.js +1 -0
  212. package/dist/browser/hooks/useListUrlState.js +1 -0
  213. package/dist/browser/i18n/translation.js +1 -0
  214. package/dist/browser/index.js +1 -1
  215. package/dist/browser/lib/keyboard.js +1 -0
  216. package/dist/browser/lib/utils.js +1 -0
  217. package/dist/browser/platform/useColorScheme.js +1 -0
  218. package/dist/browser/platform/useColorScheme.mobile.js +1 -0
  219. package/dist/browser/platform/useReducedMotion.js +1 -0
  220. package/dist/browser/platform/useReducedMotion.mobile.js +1 -0
  221. package/dist/browser/platform/useResponsive.js +1 -0
  222. package/dist/browser/platform/useResponsive.mobile.js +1 -0
  223. package/dist/browser/platform/withPlatformUI.js +1 -0
  224. package/dist/browser/renderers/form-contract/renderer.js +1 -0
  225. package/dist/browser/renderers/form-contract/rich-fields.js +1 -0
  226. package/dist/browser/renderers/form-contract/shell.js +1 -0
  227. package/dist/browser/renderers/form-contract/values.js +1 -0
  228. package/dist/browser/renderers/form-contract.js +1 -0
  229. package/dist/browser/renderers/index.js +1 -0
  230. package/dist/browser/theme/contracts.js +1 -0
  231. package/dist/browser/theme/index.js +1 -0
  232. package/dist/browser/theme/runtime-resolvers.js +1 -0
  233. package/dist/browser/theme/runtime.js +1 -0
  234. package/dist/browser/theme/tailwind-config.js +1 -0
  235. package/dist/browser/theme/tailwind-css.js +9 -0
  236. package/dist/browser/theme/tailwind-variables.js +1 -0
  237. package/dist/browser/theme/tailwind.js +1 -0
  238. package/dist/browser/theme/tokenBridge.js +1 -0
  239. package/dist/browser/theme/tokens.js +1 -0
  240. package/dist/browser/theme/variants.js +1 -0
  241. package/dist/browser/types/nativewind-env.d.js +0 -0
  242. package/dist/browser/types/navigation.js +0 -0
  243. package/dist/components/agent/AgentMonitor.js +1 -0
  244. package/dist/components/agent/ApprovalQueue.js +1 -0
  245. package/dist/components/agent/ApprovalQueue.mobile.js +1 -0
  246. package/dist/components/atoms/ActionButtons.js +1 -0
  247. package/dist/components/atoms/Button.d.ts +3 -2
  248. package/dist/components/atoms/Button.js +1 -0
  249. package/dist/components/atoms/Button.mobile.d.ts +3 -2
  250. package/dist/components/atoms/Button.mobile.js +1 -0
  251. package/dist/components/atoms/ButtonLink.js +1 -0
  252. package/dist/components/atoms/ButtonLink.mobile.js +1 -0
  253. package/dist/components/atoms/Cta.js +1 -0
  254. package/dist/components/atoms/Cta.mobile.js +1 -0
  255. package/dist/components/atoms/DataChips.js +1 -0
  256. package/dist/components/atoms/EmptyState.js +1 -0
  257. package/dist/components/atoms/ErrorState.js +1 -0
  258. package/dist/components/atoms/ErrorState.mobile.js +1 -0
  259. package/dist/components/atoms/Input.d.ts +4 -12
  260. package/dist/components/atoms/Input.js +1 -0
  261. package/dist/components/atoms/Input.mobile.d.ts +4 -13
  262. package/dist/components/atoms/Input.mobile.js +1 -0
  263. package/dist/components/atoms/Link.js +1 -0
  264. package/dist/components/atoms/Link.web.js +1 -0
  265. package/dist/components/atoms/LoaderCircular.js +1 -0
  266. package/dist/components/atoms/LoaderCircular.mobile.js +1 -0
  267. package/dist/components/atoms/NavBrand.js +1 -0
  268. package/dist/components/atoms/RankBadge.js +1 -0
  269. package/dist/components/atoms/ScoreBar.js +1 -0
  270. package/dist/components/atoms/Stepper.js +1 -0
  271. package/dist/components/atoms/Textarea.d.ts +4 -10
  272. package/dist/components/atoms/Textarea.js +1 -0
  273. package/dist/components/atoms/Textarea.mobile.d.ts +4 -13
  274. package/dist/components/atoms/Textarea.mobile.js +1 -0
  275. package/dist/components/data-table/DataTable.js +1 -0
  276. package/dist/components/data-table/DataTable.mobile.js +1 -0
  277. package/dist/components/data-table/DataTableToolbar.d.ts +3 -0
  278. package/dist/components/data-table/DataTableToolbar.js +1 -0
  279. package/dist/components/data-table/DataTableToolbar.mobile.d.ts +3 -0
  280. package/dist/components/data-table/DataTableToolbar.mobile.js +1 -0
  281. package/dist/components/data-table/DataTableToolbar.shared.d.ts +23 -0
  282. package/dist/components/data-table/DataTableToolbar.shared.js +1 -0
  283. package/dist/components/data-view/DataViewDetail.js +1 -0
  284. package/dist/components/data-view/DataViewList.js +1 -0
  285. package/dist/components/data-view/DataViewRenderer.d.ts +3 -1
  286. package/dist/components/data-view/DataViewRenderer.js +1 -0
  287. package/dist/components/data-view/DataViewRenderer.mobile.d.ts +3 -1
  288. package/dist/components/data-view/DataViewRenderer.mobile.js +1 -0
  289. package/dist/components/data-view/DataViewTable.d.ts +4 -2
  290. package/dist/components/data-view/DataViewTable.js +1 -0
  291. package/dist/components/data-view/DataViewTable.mobile.d.ts +4 -2
  292. package/dist/components/data-view/DataViewTable.mobile.js +1 -0
  293. package/dist/components/data-view/utils.js +1 -0
  294. package/dist/components/forms/ActionForm.js +1 -0
  295. package/dist/components/forms/FormCardLayout.js +1 -0
  296. package/dist/components/forms/FormDialog.js +1 -0
  297. package/dist/components/forms/FormLayout.js +1 -0
  298. package/dist/components/forms/FormOneByOneLayout.js +1 -0
  299. package/dist/components/forms/FormStepsLayout.js +1 -0
  300. package/dist/components/forms/ZodForm.js +1 -0
  301. package/dist/components/forms/controls/Autocomplete.d.ts +17 -0
  302. package/dist/components/forms/controls/Autocomplete.js +1 -0
  303. package/dist/components/forms/controls/Autocomplete.mobile.d.ts +17 -0
  304. package/dist/components/forms/controls/Autocomplete.mobile.js +1 -0
  305. package/dist/components/forms/controls/ChoiceControls.d.ts +26 -0
  306. package/dist/components/forms/controls/ChoiceControls.js +1 -0
  307. package/dist/components/forms/controls/ChoiceControls.mobile.d.ts +26 -0
  308. package/dist/components/forms/controls/ChoiceControls.mobile.js +1 -0
  309. package/dist/components/forms/controls/Combobox.d.ts +4 -0
  310. package/dist/components/forms/controls/Combobox.js +1 -0
  311. package/dist/components/forms/controls/Combobox.mobile.d.ts +2 -0
  312. package/dist/components/forms/controls/Combobox.mobile.js +1 -0
  313. package/dist/components/forms/controls/DateTimeControls.d.ts +20 -0
  314. package/dist/components/forms/controls/DateTimeControls.js +1 -0
  315. package/dist/components/forms/controls/DateTimeControls.mobile.d.ts +20 -0
  316. package/dist/components/forms/controls/DateTimeControls.mobile.js +1 -0
  317. package/dist/components/forms/controls/DropdownMenu.d.ts +1 -0
  318. package/dist/components/forms/controls/DropdownMenu.js +1 -0
  319. package/dist/components/forms/controls/DropdownMenu.mobile.d.ts +1 -0
  320. package/dist/components/forms/controls/DropdownMenu.mobile.js +1 -0
  321. package/dist/components/forms/controls/Field.d.ts +27 -0
  322. package/dist/components/forms/controls/Field.js +1 -0
  323. package/dist/components/forms/controls/Field.mobile.d.ts +2 -0
  324. package/dist/components/forms/controls/Field.mobile.js +1 -0
  325. package/dist/components/forms/controls/InputGroup.d.ts +1 -0
  326. package/dist/components/forms/controls/InputGroup.js +1 -0
  327. package/dist/components/forms/controls/InputGroup.mobile.d.ts +5 -0
  328. package/dist/components/forms/controls/InputGroup.mobile.js +1 -0
  329. package/dist/components/forms/controls/InputOTP.d.ts +1 -0
  330. package/dist/components/forms/controls/InputOTP.js +1 -0
  331. package/dist/components/forms/controls/InputOTP.mobile.d.ts +2 -0
  332. package/dist/components/forms/controls/InputOTP.mobile.js +1 -0
  333. package/dist/components/forms/controls/LoadingButton.d.ts +4 -0
  334. package/dist/components/forms/controls/LoadingButton.js +1 -0
  335. package/dist/components/forms/controls/LoadingButton.mobile.d.ts +4 -0
  336. package/dist/components/forms/controls/LoadingButton.mobile.js +1 -0
  337. package/dist/components/forms/controls/NativeSelect.d.ts +7 -0
  338. package/dist/components/forms/controls/NativeSelect.js +1 -0
  339. package/dist/components/forms/controls/NativeSelect.mobile.d.ts +2 -0
  340. package/dist/components/forms/controls/NativeSelect.mobile.js +1 -0
  341. package/dist/components/forms/controls/Select.d.ts +15 -0
  342. package/dist/components/forms/controls/Select.js +1 -0
  343. package/dist/components/forms/controls/Select.mobile.d.ts +13 -0
  344. package/dist/components/forms/controls/Select.mobile.js +1 -0
  345. package/dist/components/forms/controls/index.d.ts +11 -0
  346. package/dist/components/forms/controls/index.js +1 -0
  347. package/dist/components/forms/index.d.ts +8 -0
  348. package/dist/components/forms/index.js +1 -0
  349. package/dist/components/layout/Stack.d.ts +9 -0
  350. package/dist/components/layout/Stack.js +1 -0
  351. package/dist/components/layout/Stack.mobile.d.ts +13 -0
  352. package/dist/components/layout/Stack.mobile.js +1 -0
  353. package/dist/components/layout/index.d.ts +1 -0
  354. package/dist/components/layout/index.js +1 -0
  355. package/dist/components/legal/atoms/DefinitionList.js +1 -0
  356. package/dist/components/legal/atoms/KeyValueList.js +1 -0
  357. package/dist/components/legal/atoms/LegalCallout.d.ts +1 -1
  358. package/dist/components/legal/atoms/LegalCallout.js +1 -0
  359. package/dist/components/legal/atoms/LegalHeading.js +1 -0
  360. package/dist/components/legal/atoms/LegalList.d.ts +1 -1
  361. package/dist/components/legal/atoms/LegalList.js +1 -0
  362. package/dist/components/legal/atoms/LegalSection.d.ts +1 -1
  363. package/dist/components/legal/atoms/LegalSection.js +1 -0
  364. package/dist/components/legal/atoms/LegalText.js +1 -0
  365. package/dist/components/legal/molecules/Consent.js +1 -0
  366. package/dist/components/legal/molecules/ContactFields.js +1 -0
  367. package/dist/components/legal/molecules/LegalMeta.js +1 -0
  368. package/dist/components/legal/molecules/LegalTOC.js +1 -0
  369. package/dist/components/legal/organisms/ContactForm.js +1 -0
  370. package/dist/components/legal/organisms/GDPRDataRequest.js +1 -0
  371. package/dist/components/legal/organisms/GDPRRights.js +1 -0
  372. package/dist/components/legal/organisms/LegalPageLayout.js +1 -0
  373. package/dist/components/legal/templates/ContactTemplate.js +1 -0
  374. package/dist/components/legal/templates/CookiesTemplate.js +1 -0
  375. package/dist/components/legal/templates/PrivacyTemplate.js +1 -0
  376. package/dist/components/legal/templates/SalesTermsTemplate.js +1 -0
  377. package/dist/components/legal/templates/TermsTemplate.js +1 -0
  378. package/dist/components/marketing/MarketingCard.js +1 -0
  379. package/dist/components/marketing/MarketingCardsSection.js +1 -0
  380. package/dist/components/marketing/MarketingComparisonSection.js +1 -0
  381. package/dist/components/marketing/MarketingIconCard.js +1 -0
  382. package/dist/components/marketing/MarketingSection.js +1 -0
  383. package/dist/components/marketing/MarketingStepCard.js +1 -0
  384. package/dist/components/molecules/AiLinkButton.js +1 -0
  385. package/dist/components/molecules/Breadcrumbs.js +1 -0
  386. package/dist/components/molecules/CodeBlock/CodeBlock.js +1 -0
  387. package/dist/components/molecules/CodeBlock/index.js +1 -0
  388. package/dist/components/molecules/CodeBlock/types.js +0 -0
  389. package/dist/components/molecules/CommandPalette.js +1 -0
  390. package/dist/components/molecules/CommandSearchTrigger.js +1 -0
  391. package/dist/components/molecules/CommandTabs/CommandTabs.js +1 -0
  392. package/dist/components/molecules/CommandTabs/index.js +1 -0
  393. package/dist/components/molecules/CommandTabs/types.js +0 -0
  394. package/dist/components/molecules/CopyButton/CopyButton.js +1 -0
  395. package/dist/components/molecules/CopyButton/index.js +1 -0
  396. package/dist/components/molecules/CopyButton/types.js +0 -0
  397. package/dist/components/molecules/DimensionScoresCard.js +1 -0
  398. package/dist/components/molecules/DropdownMenu.js +0 -0
  399. package/dist/components/molecules/EntityCard.js +1 -0
  400. package/dist/components/molecules/FiltersToolbar.js +1 -0
  401. package/dist/components/molecules/FiltersToolbar.mobile.d.ts +1 -1
  402. package/dist/components/molecules/FiltersToolbar.mobile.js +1 -0
  403. package/dist/components/molecules/HoverPreview.js +1 -0
  404. package/dist/components/molecules/InstallCommand/InstallCommand.js +1 -0
  405. package/dist/components/molecules/InstallCommand/index.js +1 -0
  406. package/dist/components/molecules/InstallCommand/types.js +0 -0
  407. package/dist/components/molecules/LangSwitch.js +1 -0
  408. package/dist/components/molecules/LangSwitchDropdown.js +1 -0
  409. package/dist/components/molecules/LoaderBlock.js +1 -0
  410. package/dist/components/molecules/LoaderBlock.mobile.js +1 -0
  411. package/dist/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  412. package/dist/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  413. package/dist/components/molecules/MarkdownRenderer/index.js +1 -0
  414. package/dist/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  415. package/dist/components/molecules/MarkdownRenderer/types.js +0 -0
  416. package/dist/components/molecules/MobileNavMenu.js +1 -0
  417. package/dist/components/molecules/NavItemCard.js +1 -0
  418. package/dist/components/molecules/NavMain.js +1 -0
  419. package/dist/components/molecules/NavUser.js +1 -0
  420. package/dist/components/molecules/OverviewCard.js +1 -0
  421. package/dist/components/molecules/SkeletonBlock/index.js +1 -0
  422. package/dist/components/molecules/SkeletonBlock/index.mobile.js +1 -0
  423. package/dist/components/molecules/SkeletonBlock/index.web.js +1 -0
  424. package/dist/components/molecules/SkeletonBlock/types.js +0 -0
  425. package/dist/components/molecules/SkeletonCircle/index.js +1 -0
  426. package/dist/components/molecules/SkeletonCircle/index.mobile.js +1 -0
  427. package/dist/components/molecules/SkeletonCircle/index.web.js +1 -0
  428. package/dist/components/molecules/SkeletonCircle/types.js +0 -0
  429. package/dist/components/molecules/SkeletonList/index.js +1 -0
  430. package/dist/components/molecules/SkeletonList/index.mobile.js +1 -0
  431. package/dist/components/molecules/SkeletonList/index.web.js +1 -0
  432. package/dist/components/molecules/SkeletonList/types.js +0 -0
  433. package/dist/components/molecules/StatCard.js +1 -0
  434. package/dist/components/molecules/StatusChip.d.ts +1 -1
  435. package/dist/components/molecules/StatusChip.js +1 -0
  436. package/dist/components/molecules/hover-previews/Doc.js +1 -0
  437. package/dist/components/molecules/hover-previews/Media.js +1 -0
  438. package/dist/components/molecules/hover-previews/Simple.js +1 -0
  439. package/dist/components/molecules/hover-previews/Stats.js +1 -0
  440. package/dist/components/molecules/hover-previews/User.js +1 -0
  441. package/dist/components/native/BottomTabs.mobile.js +1 -0
  442. package/dist/components/native/FlatListScreen.mobile.js +1 -0
  443. package/dist/components/native/SheetMenu.mobile.js +1 -0
  444. package/dist/components/organisms/AcademyLayout.js +1 -0
  445. package/dist/components/organisms/AppHeader.js +1 -0
  446. package/dist/components/organisms/AppHeader.mobile.js +1 -0
  447. package/dist/components/organisms/AppLayout.js +1 -0
  448. package/dist/components/organisms/AppSidebar.js +1 -0
  449. package/dist/components/organisms/AppSidebar.mobile.js +0 -0
  450. package/dist/components/organisms/EmptyDataList.js +1 -0
  451. package/dist/components/organisms/EmptyDataList.mobile.js +1 -0
  452. package/dist/components/organisms/EmptyDataList.types.js +0 -0
  453. package/dist/components/organisms/EmptySearchResult.js +1 -0
  454. package/dist/components/organisms/FAQSection.js +1 -0
  455. package/dist/components/organisms/FeatureCarousel.js +1 -0
  456. package/dist/components/organisms/FeaturesSection.js +1 -0
  457. package/dist/components/organisms/Footer.js +1 -0
  458. package/dist/components/organisms/GridLayout.js +1 -0
  459. package/dist/components/organisms/Header.js +1 -0
  460. package/dist/components/organisms/Header.mobile.js +1 -0
  461. package/dist/components/organisms/HeroResponsive.js +1 -0
  462. package/dist/components/organisms/HeroSection.js +1 -0
  463. package/dist/components/organisms/ListCardPage.js +1 -0
  464. package/dist/components/organisms/ListGridPage.js +1 -0
  465. package/dist/components/organisms/ListPageResponsive.js +1 -0
  466. package/dist/components/organisms/ListTablePage.js +1 -0
  467. package/dist/components/organisms/ListTablePage.mobile.js +1 -0
  468. package/dist/components/organisms/MarketingHeader.js +1 -0
  469. package/dist/components/organisms/MarketingHeaderDesktop.js +1 -0
  470. package/dist/components/organisms/MarketingHeaderMobile.js +1 -0
  471. package/dist/components/organisms/MarketingLayout.js +1 -0
  472. package/dist/components/organisms/ModelComparisonView.js +1 -0
  473. package/dist/components/organisms/PageHeaderResponsive.js +1 -0
  474. package/dist/components/organisms/PageHeaderResponsive.mobile.js +1 -0
  475. package/dist/components/organisms/PricingCarousel.js +1 -0
  476. package/dist/components/organisms/PricingSection.js +1 -0
  477. package/dist/components/organisms/TestimonialCarousel.js +1 -0
  478. package/dist/components/primitives/control.d.ts +894 -0
  479. package/dist/components/primitives/control.js +1 -0
  480. package/dist/components/primitives/themed.d.ts +881 -0
  481. package/dist/components/primitives/themed.js +1 -0
  482. package/dist/components/providers/PackageManagerProvider.js +1 -0
  483. package/dist/components/templates/lists/ListPageTemplate/index.js +1 -0
  484. package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
  485. package/dist/components/templates/lists/ListPageTemplate/index.web.js +1 -0
  486. package/dist/components/templates/lists/ListPageTemplate/types.js +0 -0
  487. package/dist/components/visualization/ComparisonView.js +1 -0
  488. package/dist/components/visualization/ComparisonView.mobile.js +1 -0
  489. package/dist/components/visualization/TimelineView.js +1 -0
  490. package/dist/components/visualization/TimelineView.mobile.js +1 -0
  491. package/dist/components/visualization/VisualizationCard.js +1 -0
  492. package/dist/components/visualization/VisualizationCard.mobile.js +1 -0
  493. package/dist/components/visualization/VisualizationGrid.js +1 -0
  494. package/dist/components/visualization/VisualizationGrid.mobile.js +1 -0
  495. package/dist/components/visualization/VisualizationRenderer.js +1 -0
  496. package/dist/components/visualization/VisualizationRenderer.mobile.js +1 -0
  497. package/dist/components/visualization/types.js +0 -0
  498. package/dist/contracts.typecheck.js +1 -0
  499. package/dist/design-system.feature.d.ts +1 -0
  500. package/dist/design-system.feature.js +1 -0
  501. package/dist/hooks/useListUrlState.js +1 -0
  502. package/dist/i18n/translation.js +1 -0
  503. package/dist/index.d.ts +5 -11
  504. package/dist/index.js +1 -2
  505. package/dist/lib/keyboard.js +1 -0
  506. package/dist/lib/utils.js +1 -0
  507. package/dist/platform/useColorScheme.js +1 -0
  508. package/dist/platform/useColorScheme.mobile.js +1 -0
  509. package/dist/platform/useReducedMotion.js +1 -0
  510. package/dist/platform/useReducedMotion.mobile.js +1 -0
  511. package/dist/platform/useResponsive.js +1 -0
  512. package/dist/platform/useResponsive.mobile.js +1 -0
  513. package/dist/platform/withPlatformUI.js +1 -0
  514. package/dist/renderers/form-contract/renderer.d.ts +3 -0
  515. package/dist/renderers/form-contract/renderer.js +1 -0
  516. package/dist/renderers/form-contract/rich-fields.d.ts +23 -0
  517. package/dist/renderers/form-contract/rich-fields.js +1 -0
  518. package/dist/renderers/form-contract/shell.d.ts +35 -0
  519. package/dist/renderers/form-contract/shell.js +1 -0
  520. package/dist/renderers/form-contract/values.d.ts +27 -0
  521. package/dist/renderers/form-contract/values.js +1 -0
  522. package/dist/renderers/form-contract.d.ts +1 -3
  523. package/dist/renderers/form-contract.js +1 -0
  524. package/dist/renderers/index.js +1 -0
  525. package/dist/theme/contracts.d.ts +3 -0
  526. package/dist/theme/contracts.js +1 -0
  527. package/dist/theme/index.d.ts +6 -0
  528. package/dist/theme/index.js +1 -0
  529. package/dist/theme/runtime-resolvers.d.ts +26 -0
  530. package/dist/theme/runtime-resolvers.js +1 -0
  531. package/dist/theme/runtime.d.ts +34 -0
  532. package/dist/theme/runtime.js +1 -0
  533. package/dist/theme/tailwind-config.d.ts +15 -0
  534. package/dist/theme/tailwind-config.js +1 -0
  535. package/dist/theme/tailwind-css.d.ts +2 -0
  536. package/dist/theme/tailwind-css.js +9 -0
  537. package/dist/theme/tailwind-variables.d.ts +19 -0
  538. package/dist/theme/tailwind-variables.js +1 -0
  539. package/dist/theme/tailwind.d.ts +3 -0
  540. package/dist/theme/tailwind.js +1 -0
  541. package/dist/theme/tokenBridge.js +1 -0
  542. package/dist/theme/tokens.js +1 -0
  543. package/dist/theme/variants.d.ts +1 -1
  544. package/dist/theme/variants.js +1 -0
  545. package/dist/types/nativewind-env.d.js +0 -0
  546. package/dist/types/navigation.js +0 -0
  547. package/package.json +70 -9
@@ -0,0 +1 @@
1
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from '@contractspec/lib.ui-kit/ui/dropdown-menu';
@@ -0,0 +1 @@
1
+ export{DropdownMenu,DropdownMenuCheckboxItem,DropdownMenuContent,DropdownMenuGroup,DropdownMenuItem,DropdownMenuLabel,DropdownMenuPortal,DropdownMenuRadioGroup,DropdownMenuRadioItem,DropdownMenuSeparator,DropdownMenuShortcut,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuTrigger}from"@contractspec/lib.ui-kit/ui/dropdown-menu";
@@ -0,0 +1,27 @@
1
+ import { Field as WebField, FieldContent as WebFieldContent, FieldDescription as WebFieldDescription, FieldError as WebFieldError, FieldGroup as WebFieldGroup, FieldLabel as WebFieldLabel, FieldLegend as WebFieldLegend, FieldSeparator as WebFieldSeparator, FieldSet as WebFieldSet } from '@contractspec/lib.ui-kit-web/ui/field';
2
+ import * as React from 'react';
3
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
4
+ type FieldBaseProps<TProps> = TProps & ThemedPrimitiveProps;
5
+ export type FieldProps = FieldBaseProps<React.ComponentProps<typeof WebField>>;
6
+ export declare function Field({ componentKey, themeVariant, className, layout: _layout, ...props }: FieldProps & {
7
+ layout?: unknown;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export type FieldSetProps = FieldBaseProps<React.ComponentProps<typeof WebFieldSet>>;
10
+ export declare function FieldSet({ componentKey, themeVariant, className, ...props }: FieldSetProps): import("react/jsx-runtime").JSX.Element;
11
+ export type FieldLegendProps = FieldBaseProps<React.ComponentProps<typeof WebFieldLegend>>;
12
+ export declare function FieldLegend({ componentKey, themeVariant, className, children, ...props }: FieldLegendProps): import("react/jsx-runtime").JSX.Element;
13
+ export type FieldContentProps = FieldBaseProps<React.ComponentProps<typeof WebFieldContent>>;
14
+ export declare function FieldContent({ componentKey, themeVariant, className, ...props }: FieldContentProps): import("react/jsx-runtime").JSX.Element;
15
+ export type FieldGroupProps = FieldBaseProps<React.ComponentProps<typeof WebFieldGroup>> & {
16
+ layout?: unknown;
17
+ };
18
+ export declare function FieldGroup({ componentKey, themeVariant, className, layout: _layout, ...props }: FieldGroupProps): import("react/jsx-runtime").JSX.Element;
19
+ export type FieldLabelProps = FieldBaseProps<React.ComponentProps<typeof WebFieldLabel>>;
20
+ export declare function FieldLabel({ componentKey, themeVariant, className, children, ...props }: FieldLabelProps): import("react/jsx-runtime").JSX.Element;
21
+ export type FieldDescriptionProps = FieldBaseProps<React.ComponentProps<typeof WebFieldDescription>>;
22
+ export declare function FieldDescription({ componentKey, themeVariant, className, children, ...props }: FieldDescriptionProps): import("react/jsx-runtime").JSX.Element;
23
+ export type FieldErrorProps = FieldBaseProps<React.ComponentProps<typeof WebFieldError>>;
24
+ export declare function FieldError({ componentKey, themeVariant, className, children, ...props }: FieldErrorProps): import("react/jsx-runtime").JSX.Element;
25
+ export type FieldSeparatorProps = FieldBaseProps<React.ComponentProps<typeof WebFieldSeparator>>;
26
+ export declare function FieldSeparator({ componentKey, themeVariant, className, children, ...props }: FieldSeparatorProps): import("react/jsx-runtime").JSX.Element;
27
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, } from '@contractspec/lib.ui-kit-web/ui/input-group';
@@ -0,0 +1 @@
1
+ import{jsx as O}from"react/jsx-runtime";import{Field as R,FieldContent as U,FieldDescription as X,FieldError as Y,FieldGroup as Z,FieldLabel as $,FieldLegend as k,FieldSeparator as C,FieldSet as D}from"@contractspec/lib.ui-kit-web/ui/field";import{useThemedPrimitive as M,useTranslatedNode as Q}from"../../primitives/themed";export function Field({componentKey:A,themeVariant:B,className:H,layout:I,...z}){const q=M({defaultComponentKey:"Field",componentKey:A,themeVariant:B,className:H});return O(R,{...q.props,...z,className:q.className})}export function FieldSet({componentKey:A,themeVariant:B,className:H,...I}){const z=M({defaultComponentKey:"FieldSet",componentKey:A,themeVariant:B,className:H});return O(D,{...z.props,...I,className:z.className})}export function FieldLegend({componentKey:A,themeVariant:B,className:H,children:I,...z}){const q=M({defaultComponentKey:"FieldLegend",componentKey:A,themeVariant:B,className:H}),J=Q();return O(k,{...q.props,...z,className:q.className,children:J(I)})}export function FieldContent({componentKey:A,themeVariant:B,className:H,...I}){const z=M({defaultComponentKey:"FieldContent",componentKey:A,themeVariant:B,className:H});return O(U,{...z.props,...I,className:z.className})}export function FieldGroup({componentKey:A,themeVariant:B,className:H,layout:I,...z}){const q=M({defaultComponentKey:"FieldGroup",componentKey:A,themeVariant:B,className:H});return O(Z,{...q.props,...z,className:q.className})}export function FieldLabel({componentKey:A,themeVariant:B,className:H,children:I,...z}){const q=M({defaultComponentKey:"FieldLabel",componentKey:A,themeVariant:B,className:H}),J=Q();return O($,{...q.props,...z,className:q.className,children:J(I)})}export function FieldDescription({componentKey:A,themeVariant:B,className:H,children:I,...z}){const q=M({defaultComponentKey:"FieldDescription",componentKey:A,themeVariant:B,className:H}),J=Q();return O(X,{...q.props,...z,className:q.className,children:J(I)})}export function FieldError({componentKey:A,themeVariant:B,className:H,children:I,...z}){const q=M({defaultComponentKey:"FieldError",componentKey:A,themeVariant:B,className:H}),J=Q();return O(Y,{...q.props,...z,className:q.className,children:J(I)})}export function FieldSeparator({componentKey:A,themeVariant:B,className:H,children:I,...z}){const q=M({defaultComponentKey:"FieldSeparator",componentKey:A,themeVariant:B,className:H}),J=Q();return O(C,{...q.props,...z,className:q.className,children:J(I)})}export{InputGroup,InputGroupAddon,InputGroupButton,InputGroupInput,InputGroupText,InputGroupTextarea}from"@contractspec/lib.ui-kit-web/ui/input-group";
@@ -0,0 +1,2 @@
1
+ export type { FieldContentProps, FieldDescriptionProps, FieldErrorProps, FieldGroupProps, FieldLabelProps, FieldLegendProps, FieldProps, FieldSeparatorProps, FieldSetProps, } from './Field';
2
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, } from './Field';
@@ -0,0 +1 @@
1
+ export{Field,FieldContent,FieldDescription,FieldError,FieldGroup,FieldLabel,FieldLegend,FieldSeparator,FieldSet}from"./Field";
@@ -0,0 +1 @@
1
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, } from '@contractspec/lib.ui-kit-web/ui/input-group';
@@ -0,0 +1 @@
1
+ export{InputGroup,InputGroupAddon,InputGroupButton,InputGroupInput,InputGroupText,InputGroupTextarea}from"@contractspec/lib.ui-kit-web/ui/input-group";
@@ -0,0 +1,5 @@
1
+ export { Text as InputGroupText } from '@contractspec/lib.ui-kit/ui/text';
2
+ export { Button as InputGroupButton } from '../../atoms/Button';
3
+ export { Input as InputGroupInput } from '../../atoms/Input';
4
+ export { Textarea as InputGroupTextarea } from '../../atoms/Textarea';
5
+ export { HStack as InputGroup, HStack as InputGroupAddon, } from '../../layout/Stack';
@@ -0,0 +1 @@
1
+ export{Text as InputGroupText}from"@contractspec/lib.ui-kit/ui/text";export{Button as InputGroupButton}from"../../atoms/Button";export{Input as InputGroupInput}from"../../atoms/Input";export{Textarea as InputGroupTextarea}from"../../atoms/Textarea";export{HStack as InputGroup,HStack as InputGroupAddon}from"../../layout/Stack";
@@ -0,0 +1 @@
1
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from '@contractspec/lib.ui-kit-web/ui/input-otp';
@@ -0,0 +1 @@
1
+ export{InputOTP,InputOTPGroup,InputOTPSeparator,InputOTPSlot}from"@contractspec/lib.ui-kit-web/ui/input-otp";
@@ -0,0 +1,2 @@
1
+ export { Input as InputOTP } from '../../atoms/Input';
2
+ export { Box as InputOTPSlot, Box as InputOTPSeparator, HStack as InputOTPGroup, } from '../../layout/Stack';
@@ -0,0 +1 @@
1
+ export{Input as InputOTP}from"../../atoms/Input";export{Box as InputOTPSlot,Box as InputOTPSeparator,HStack as InputOTPGroup}from"../../layout/Stack";
@@ -0,0 +1,4 @@
1
+ import { type LoadingButtonProps as WebLoadingButtonProps } from '@contractspec/lib.ui-kit-web/ui/loading-button';
2
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
3
+ export type LoadingButtonProps = WebLoadingButtonProps & ThemedPrimitiveProps;
4
+ export declare function LoadingButton({ componentKey, themeVariant, className, children, loadingText, labelI18n, ...props }: LoadingButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as S}from"react/jsx-runtime";import{LoadingButton as M}from"@contractspec/lib.ui-kit-web/ui/loading-button";import{useThemedPrimitive as O,useTranslatedNode as Q,useTranslatedText as R}from"../../primitives/themed";export function LoadingButton({componentKey:z,themeVariant:A,className:C,children:D,loadingText:E,labelI18n:F,...G}){const q=O({defaultComponentKey:"LoadingButton",componentKey:z,themeVariant:A,className:C}),H=Q(),J=R();return S(M,{...q.props,...G,className:q.className,loadingText:J(E),children:H(F??D)})}
@@ -0,0 +1,4 @@
1
+ import { type LoadingButtonProps as NativeLoadingButtonProps } from '@contractspec/lib.ui-kit/ui/loading-button';
2
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
3
+ export type LoadingButtonProps = NativeLoadingButtonProps & ThemedPrimitiveProps;
4
+ export declare function LoadingButton({ componentKey, themeVariant, className, children, loadingText, labelI18n, ...props }: LoadingButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as S}from"react/jsx-runtime";import{LoadingButton as M}from"@contractspec/lib.ui-kit/ui/loading-button";import{useThemedPrimitive as O,useTranslatedNode as Q,useTranslatedText as R}from"../../primitives/themed";export function LoadingButton({componentKey:z,themeVariant:A,className:C,children:D,loadingText:E,labelI18n:F,...G}){const q=O({defaultComponentKey:"LoadingButton",componentKey:z,themeVariant:A,className:C}),H=Q(),J=R();return S(M,{...q.props,...G,className:q.className,loadingText:J(E),children:H(F??D)})}
@@ -0,0 +1,7 @@
1
+ import { NativeSelectOptGroup, NativeSelect as WebNativeSelect } from '@contractspec/lib.ui-kit-web/ui/native-select';
2
+ import * as React from 'react';
3
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
4
+ export type NativeSelectProps = React.ComponentProps<typeof WebNativeSelect> & ThemedPrimitiveProps;
5
+ export declare function NativeSelect({ componentKey, themeVariant, className, placeholderI18n: _placeholderI18n, ...props }: NativeSelectProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function NativeSelectOption(props: React.ComponentProps<'option'>): import("react/jsx-runtime").JSX.Element;
7
+ export { NativeSelectOptGroup };
@@ -0,0 +1 @@
1
+ import{jsx as A}from"react/jsx-runtime";import{NativeSelectOptGroup,NativeSelect as D,NativeSelectOption as E}from"@contractspec/lib.ui-kit-web/ui/native-select";import{useThemedPrimitive as F,useTranslatedText as H}from"../../primitives/themed";export function NativeSelect({componentKey:g,themeVariant:q,className:B,placeholderI18n:I,...C}){const z=F({defaultComponentKey:"NativeSelect",componentKey:g,themeVariant:q,className:B});return A(D,{...z.props,...C,className:z.className})}export function NativeSelectOption(g){const q=H();return A(E,{...g,children:typeof g.children==="string"?q(g.children):g.children})}export{NativeSelectOptGroup};
@@ -0,0 +1,2 @@
1
+ export type { SelectProps as NativeSelectProps } from './Select';
2
+ export { Select as NativeSelect, SelectGroup as NativeSelectOptGroup, SelectItem as NativeSelectOption, } from './Select';
@@ -0,0 +1 @@
1
+ export{Select as NativeSelect,SelectGroup as NativeSelectOptGroup,SelectItem as NativeSelectOption}from"./Select";
@@ -0,0 +1,15 @@
1
+ import type { FormOption } from '@contractspec/lib.contracts-spec/forms';
2
+ import { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@contractspec/lib.ui-kit-web/ui/select';
3
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
4
+ export interface SelectProps extends ThemedPrimitiveProps {
5
+ options?: FormOption[];
6
+ value?: unknown;
7
+ onChange?: (value: unknown) => void;
8
+ placeholder?: string;
9
+ disabled?: boolean;
10
+ id?: string;
11
+ name?: string;
12
+ className?: string;
13
+ }
14
+ export declare function Select({ options, value, onChange, placeholder, disabled, className, componentKey, themeVariant, placeholderI18n, ...props }: SelectProps): import("react/jsx-runtime").JSX.Element;
15
+ export { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue };
@@ -0,0 +1 @@
1
+ import{jsx as A,jsxs as k}from"react/jsx-runtime";import{SelectContent,SelectGroup,SelectItem,SelectTrigger,SelectValue,Select as Y}from"@contractspec/lib.ui-kit-web/ui/select";import{useThemedPrimitive as Z,useTranslatedText as $}from"../../primitives/themed";function B(z){return typeof z==="string"?z:String(z??"")}export function Select({options:z,value:D,onChange:F,placeholder:H,disabled:J,className:L,componentKey:M,themeVariant:O,placeholderI18n:Q,...R}){const E=$(),U=Z({defaultComponentKey:"Select",componentKey:M,themeVariant:O,className:L});return k(Y,{value:D==null?"":B(D),onValueChange:(q)=>F?.(q),disabled:J,...R,children:[A(SelectTrigger,{className:U.className,children:A(SelectValue,{placeholder:E(Q??H)})}),A(SelectContent,{children:A(SelectGroup,{children:z?.map((q,X)=>A(SelectItem,{value:B(q.value),disabled:q.disabled,children:E(q.labelI18n)??B(q.labelI18n)},`${B(q.value)}-${X}`))})})]})}export{SelectContent,SelectGroup,SelectItem,SelectTrigger,SelectValue};
@@ -0,0 +1,13 @@
1
+ import type { FormOption } from '@contractspec/lib.contracts-spec/forms';
2
+ import { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@contractspec/lib.ui-kit/ui/select';
3
+ import { type ThemedPrimitiveProps } from '../../primitives/themed';
4
+ export interface SelectProps extends ThemedPrimitiveProps {
5
+ options?: FormOption[];
6
+ value?: unknown;
7
+ onChange?: (value: unknown) => void;
8
+ placeholder?: string;
9
+ disabled?: boolean;
10
+ className?: string;
11
+ }
12
+ export declare function Select({ options, value, onChange, placeholder, disabled, className, componentKey, themeVariant, placeholderI18n, }: SelectProps): import("react/jsx-runtime").JSX.Element;
13
+ export { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue };
@@ -0,0 +1 @@
1
+ import{jsx as B,jsxs as $}from"react/jsx-runtime";import{Select as X,SelectContent,SelectGroup,SelectItem,SelectTrigger,SelectValue}from"@contractspec/lib.ui-kit/ui/select";import{useThemedPrimitive as Y,useTranslatedText as Z}from"../../primitives/themed";function A(z){return typeof z==="string"?z:String(z??"")}export function Select({options:z,value:D,onChange:F,placeholder:H,disabled:J,className:L,componentKey:M,themeVariant:O,placeholderI18n:Q}){const E=Z(),U=Y({defaultComponentKey:"Select",componentKey:M,themeVariant:O,className:L});return $(X,{value:D==null?void 0:{value:A(D),label:A(D)},onValueChange:(q)=>F?.(q?.value),children:[B(SelectTrigger,{disabled:J,className:U.className,children:B(SelectValue,{placeholder:E(Q??H)??""})}),B(SelectContent,{children:B(SelectGroup,{children:z?.map((q,W)=>B(SelectItem,{value:A(q.value),label:E(q.labelI18n)??A(q.labelI18n),disabled:q.disabled},`${A(q.value)}-${W}`))})})]})}export{SelectContent,SelectGroup,SelectItem,SelectTrigger,SelectValue};
@@ -0,0 +1,11 @@
1
+ export { Autocomplete, type AutocompleteProps, } from './Autocomplete';
2
+ export { Checkbox, RadioGroup, RadioGroupItem, Switch, } from './ChoiceControls';
3
+ export { Combobox, type ComboboxProps } from './Combobox';
4
+ export { DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, TimePicker, type TimePickerProps, } from './DateTimeControls';
5
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from './DropdownMenu';
6
+ export { Field, FieldContent, type FieldContentProps, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, FieldGroup, type FieldGroupProps, FieldLabel, type FieldLabelProps, FieldLegend, type FieldLegendProps, type FieldProps, FieldSeparator, type FieldSeparatorProps, FieldSet, type FieldSetProps, } from './Field';
7
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, } from './InputGroup';
8
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from './InputOTP';
9
+ export { LoadingButton, type LoadingButtonProps } from './LoadingButton';
10
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption, type NativeSelectProps, } from './NativeSelect';
11
+ export { Select, type SelectProps } from './Select';
@@ -0,0 +1 @@
1
+ export{Autocomplete}from"./Autocomplete";export{Checkbox,RadioGroup,RadioGroupItem,Switch}from"./ChoiceControls";export{Combobox}from"./Combobox";export{DatePicker,DateRangePicker,DateTimePicker,TimePicker}from"./DateTimeControls";export{DropdownMenu,DropdownMenuCheckboxItem,DropdownMenuContent,DropdownMenuGroup,DropdownMenuItem,DropdownMenuLabel,DropdownMenuPortal,DropdownMenuRadioGroup,DropdownMenuRadioItem,DropdownMenuSeparator,DropdownMenuShortcut,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuTrigger}from"./DropdownMenu";export{Field,FieldContent,FieldDescription,FieldError,FieldGroup,FieldLabel,FieldLegend,FieldSeparator,FieldSet}from"./Field";export{InputGroup,InputGroupAddon,InputGroupButton,InputGroupInput,InputGroupText,InputGroupTextarea}from"./InputGroup";export{InputOTP,InputOTPGroup,InputOTPSeparator,InputOTPSlot}from"./InputOTP";export{LoadingButton}from"./LoadingButton";export{NativeSelect,NativeSelectOptGroup,NativeSelectOption}from"./NativeSelect";export{Select}from"./Select";
@@ -0,0 +1,8 @@
1
+ export { ActionForm } from './ActionForm';
2
+ export * from './controls';
3
+ export { FormCardLayout } from './FormCardLayout';
4
+ export { FormDialog } from './FormDialog';
5
+ export { FormGrid, FormRow, FormSection } from './FormLayout';
6
+ export { FormOneByOneLayout } from './FormOneByOneLayout';
7
+ export { FormStepsLayout } from './FormStepsLayout';
8
+ export { ZodForm } from './ZodForm';
@@ -0,0 +1 @@
1
+ export{ActionForm}from"./ActionForm";export*from"./controls";export{FormCardLayout}from"./FormCardLayout";export{FormDialog}from"./FormDialog";export{FormGrid,FormRow,FormSection}from"./FormLayout";export{FormOneByOneLayout}from"./FormOneByOneLayout";export{FormStepsLayout}from"./FormStepsLayout";export{ZodForm}from"./ZodForm";
@@ -0,0 +1,9 @@
1
+ import { Box as WebBox, HStack as WebHStack, VStack as WebVStack } from '@contractspec/lib.ui-kit-web/ui/stack';
2
+ import * as React from 'react';
3
+ import { type ThemedPrimitiveProps } from '../primitives/themed';
4
+ export type BoxProps = React.ComponentProps<typeof WebBox> & ThemedPrimitiveProps;
5
+ export type HStackProps = React.ComponentProps<typeof WebHStack> & ThemedPrimitiveProps;
6
+ export type VStackProps = React.ComponentProps<typeof WebVStack> & ThemedPrimitiveProps;
7
+ export declare function Box({ componentKey, themeVariant, className, ...props }: BoxProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function HStack({ componentKey, themeVariant, className, ...props }: HStackProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function VStack({ componentKey, themeVariant, className, ...props }: VStackProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as E}from"react/jsx-runtime";import{Box as F,HStack as G,VStack as I}from"@contractspec/lib.ui-kit-web/ui/stack";import{useThemedPrimitive as D}from"../primitives/themed";export function Box({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"Box",componentKey:q,themeVariant:z,className:A});return E(F,{...g.props,...C,className:g.className})}export function HStack({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"HStack",componentKey:q,themeVariant:z,className:A});return E(G,{...g.props,...C,className:g.className})}export function VStack({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"VStack",componentKey:q,themeVariant:z,className:A});return E(I,{...g.props,...C,className:g.className})}
@@ -0,0 +1,13 @@
1
+ import { Box as NativeBox, HStack as NativeHStack, VStack as NativeVStack } from '@contractspec/lib.ui-kit/ui/stack';
2
+ import * as React from 'react';
3
+ import { type ThemedPrimitiveProps } from '../primitives/themed';
4
+ type NativeBoxProps = React.ComponentProps<typeof NativeBox>;
5
+ type NativeHStackProps = React.ComponentProps<typeof NativeHStack>;
6
+ type NativeVStackProps = React.ComponentProps<typeof NativeVStack>;
7
+ export type BoxProps = NativeBoxProps & ThemedPrimitiveProps;
8
+ export type HStackProps = NativeHStackProps & ThemedPrimitiveProps;
9
+ export type VStackProps = NativeVStackProps & ThemedPrimitiveProps;
10
+ export declare function Box({ componentKey, themeVariant, className, ...props }: BoxProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function HStack({ componentKey, themeVariant, className, ...props }: HStackProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function VStack({ componentKey, themeVariant, className, ...props }: VStackProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1 @@
1
+ import{jsx as E}from"react/jsx-runtime";import{Box as F,HStack as G,VStack as I}from"@contractspec/lib.ui-kit/ui/stack";import{useThemedPrimitive as D}from"../primitives/themed";export function Box({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"Box",componentKey:q,themeVariant:z,className:A});return E(F,{...g.props,...C,className:g.className})}export function HStack({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"HStack",componentKey:q,themeVariant:z,className:A});return E(G,{...g.props,...C,className:g.className})}export function VStack({componentKey:q,themeVariant:z,className:A,...C}){const g=D({defaultComponentKey:"VStack",componentKey:q,themeVariant:z,className:A});return E(I,{...g.props,...C,className:g.className})}
@@ -0,0 +1 @@
1
+ export { Box, type BoxProps, HStack, type HStackProps, VStack, type VStackProps, } from './Stack';
@@ -0,0 +1 @@
1
+ export{Box,HStack,VStack}from"./Stack";
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as C}from"react/jsx-runtime";import{cn as B}from"@contractspec/lib.ui-kit-web/ui/utils";export function DefinitionList({items:v,className:z}){return g("dl",{className:B("grid grid-cols-1 gap-3 md:grid-cols-3",z),children:v.map((q,A)=>C("div",{className:"col-span-1 grid grid-cols-3 gap-3 md:col-span-3",children:[g("dt",{className:"col-span-1 font-medium text-base text-foreground",children:q.term}),g("dd",{className:"col-span-2 text-base text-muted-foreground",children:q.description})]},A))})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as C}from"react/jsx-runtime";import{cn as B}from"@contractspec/lib.ui-kit-web/ui/utils";export function KeyValueList({items:v,className:z}){return g("div",{className:B("grid grid-cols-1 gap-2",z),children:v.map((q,A)=>C("div",{className:"flex items-start gap-3",children:[g("div",{className:"w-40 shrink-0 font-medium text-base text-foreground",children:q.key}),g("div",{className:"flex-1 text-base text-muted-foreground",children:q.value})]},A))})}
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const calloutVariants: (props?: ({
4
- tone?: "danger" | "info" | "warning" | null | undefined;
4
+ tone?: "info" | "warning" | "danger" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export type LegalCalloutProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof calloutVariants>;
7
7
  export declare function LegalCallout({ tone, className, ...props }: LegalCalloutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as B}from"react/jsx-runtime";import{cn as z}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as A}from"class-variance-authority";const calloutVariants=A("rounded-md border p-4",{variants:{tone:{info:"border-border bg-muted/30",warning:"border-warning/50 bg-warning/10",danger:"border-destructive/50 bg-destructive/10"}},defaultVariants:{tone:"info"}});export function LegalCallout({tone:d,className:g,...q}){return B("div",{className:z(calloutVariants({tone:d}),g),...q})}export{calloutVariants};
@@ -0,0 +1 @@
1
+ import{jsx as G}from"react/jsx-runtime";import{cn as E}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as F}from"class-variance-authority";const headingVariants=F("text-foreground tracking-tight",{variants:{level:{h1:"font-semibold text-3xl md:text-4xl",h2:"font-semibold text-2xl md:text-3xl",h3:"font-semibold text-xl md:text-2xl",h4:"font-semibold text-lg md:text-xl"},tone:{default:"",muted:"text-muted-foreground",accent:"text-primary"},spacing:{none:"",sm:"mt-4",md:"mt-6",lg:"mt-8"}},defaultVariants:{level:"h2",tone:"default",spacing:"md"}});export function LegalHeading({as:z,level:q,tone:A,spacing:B,className:C,...D}){return G(z??q??"h2",{className:E(headingVariants({level:q,tone:A,spacing:B}),C),...D})}export{headingVariants};
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const listVariants: (props?: ({
4
- type?: "none" | "unordered" | "ordered" | null | undefined;
4
+ type?: "none" | "ordered" | "unordered" | null | undefined;
5
5
  spacing?: "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type LegalListProps = React.HTMLAttributes<HTMLUListElement | HTMLOListElement> & VariantProps<typeof listVariants>;
@@ -0,0 +1 @@
1
+ import{jsx as F}from"react/jsx-runtime";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as E}from"class-variance-authority";const listVariants=E("",{variants:{type:{unordered:"list-disc pl-6",ordered:"list-decimal pl-6",none:"pl-0"},spacing:{sm:"space-y-1",md:"space-y-2",lg:"space-y-3"}},defaultVariants:{type:"unordered",spacing:"md"}});export function LegalList({type:q,spacing:z,className:A,children:B,...C}){return F(q==="ordered"?"ol":"ul",{className:D(listVariants({type:q,spacing:z}),A),...C,children:B})}export{listVariants};
@@ -2,7 +2,7 @@ import { type VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const sectionVariants: (props?: ({
4
4
  spacing?: "sm" | "md" | "lg" | null | undefined;
5
- border?: "none" | "both" | "top" | "bottom" | null | undefined;
5
+ border?: "none" | "both" | "bottom" | "top" | null | undefined;
6
6
  tone?: "subtle" | "plain" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  export type LegalSectionProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof sectionVariants>;
@@ -0,0 +1 @@
1
+ import{jsx as F}from"react/jsx-runtime";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as E}from"class-variance-authority";const sectionVariants=E("space-y-3",{variants:{spacing:{sm:"py-3",md:"py-4",lg:"py-6"},border:{none:"",top:"border-t",bottom:"border-b",both:"border-y"},tone:{plain:"",subtle:"bg-muted/30"}},defaultVariants:{spacing:"md",border:"none",tone:"plain"}});export function LegalSection({spacing:q,border:z,tone:A,className:B,...C}){return F("div",{className:D(sectionVariants({spacing:q,border:z,tone:A}),B),...C})}export{sectionVariants};
@@ -0,0 +1 @@
1
+ import{jsx as G}from"react/jsx-runtime";import{cn as E}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as F}from"class-variance-authority";const textVariants=F("text-base leading-relaxed",{variants:{tone:{default:"text-foreground",muted:"text-muted-foreground",danger:"text-destructive"},size:{base:"text-base",sm:"text-sm",lg:"text-lg"},spacing:{none:"",sm:"mt-2",md:"mt-3",lg:"mt-4"}},defaultVariants:{tone:"default",size:"base",spacing:"sm"}});export function LegalText({as:d="p",tone:q,size:A,spacing:B,className:C,...D}){return G(d,{className:E(textVariants({tone:q,size:A,spacing:B}),C),...D})}export{textVariants};
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as F}from"react/jsx-runtime";import{Checkbox as K}from"@contractspec/lib.ui-kit-web/ui/checkbox";import{cn as G}from"@contractspec/lib.ui-kit-web/ui/utils";export function ConsentItem({id:A,label:D,description:B,checked:q,onChange:E,className:H}){return F("div",{className:G("flex items-start gap-3",H),children:[z(K,{id:A,checked:q,onCheckedChange:(J)=>E(Boolean(J))}),F("div",{children:[z("label",{htmlFor:A,className:"font-medium text-base",children:D}),B&&z("div",{className:"text-base text-muted-foreground",children:B})]})]})}export function ConsentList({items:A,onChange:D,className:B}){return z("div",{className:G("space-y-3",B),children:A.map((q)=>z(ConsentItem,{...q,onChange:(E)=>D(q.id,E)},q.id))})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as B}from"react/jsx-runtime";import{Label as F}from"@contractspec/lib.ui-kit-web/ui/label";import{Input as G}from"../../atoms/Input";import{Textarea as H}from"../../atoms/Textarea";export function ContactFields({value:q,onChange:D,disabled:E}){return B("div",{className:"space-y-4",children:[B("div",{className:"space-y-2",children:[z(F,{children:"Nom"}),z(G,{value:q.name,onChange:(A)=>D({...q,name:A.target.value}),disabled:E})]}),B("div",{className:"space-y-2",children:[z(F,{children:"Email"}),z(G,{type:"email",value:q.email,onChange:(A)=>D({...q,email:A.target.value}),disabled:E})]}),B("div",{className:"space-y-2",children:[z(F,{children:"Objet"}),z(G,{value:q.subject,onChange:(A)=>D({...q,subject:A.target.value}),disabled:E})]}),B("div",{className:"space-y-2",children:[z(F,{children:"Message"}),z(H,{value:q.message,onChange:(A)=>D({...q,message:A.target.value}),disabled:E,rows:6})]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as F,jsxs as A}from"react/jsx-runtime";import{cn as E}from"@contractspec/lib.ui-kit-web/ui/utils";export function LegalMeta({lastUpdated:q,version:z,className:B}){const C=(g)=>{if(!g)return null;try{return(typeof g==="string"?new Date(g):g).toLocaleDateString()}catch{return String(g)}};return A("div",{className:E("text-base text-muted-foreground",B),children:[z&&A("span",{children:["Version ",z]}),z&&q&&F("span",{className:"mx-2",children:"\u2022"}),q&&A("span",{children:["Derni\xE8re mise \xE0 jour: ",C(q)]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q}from"react/jsx-runtime";import{cn as A}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as J}from"class-variance-authority";const tocVariants=J("text-base",{variants:{variant:{sidebar:"space-y-2",inline:"flex flex-wrap gap-3"},size:{sm:"",md:"text-base"}},defaultVariants:{variant:"sidebar",size:"md"}});export function LegalTOC({items:B,activeHref:C,onNavigate:D,variant:E,size:F,className:G,...I}){return q("nav",{"aria-label":"Table of contents",className:A(tocVariants({variant:E,size:F}),G),...I,children:E==="inline"?B.map((d)=>q("a",{href:d.href,onClick:(K)=>{D?.(d.href)},className:A("rounded-xs px-2 py-1 hover:bg-accent hover:text-accent-foreground",C===d.href&&"bg-accent text-accent-foreground"),children:d.label},d.href)):q("ul",{className:"list-none space-y-2 pl-0",children:B.map((d)=>q("li",{children:q("a",{href:d.href,onClick:()=>D?.(d.href),className:A("block rounded-xs px-2 py-1 hover:bg-accent hover:text-accent-foreground",C===d.href&&"bg-accent text-accent-foreground"),children:d.label})},d.href))})})}export{tocVariants};
@@ -0,0 +1 @@
1
+ import{jsx as o,jsxs as g}from"react/jsx-runtime";import*as s from"react";import{Button as b}from"../../atoms/Button";import{ContactFields as c}from"../molecules/ContactFields";export function ContactForm({labels:m={submit:"Envoyer"},initialValue:r={name:"",email:"",subject:"",message:""},disabled:e,onSubmit:a}){const[i,l]=s.useState(r),[t,n]=s.useState(!1);return g("form",{onSubmit:async(u)=>{u.preventDefault();if(!a)return;n(!0);try{await a(i)}finally{n(!1)}},className:"space-y-6",children:[o(c,{value:i,onChange:l,disabled:e||t}),o(b,{disabled:e||t,type:"submit",children:t?"Envoi\u2026":m.submit})]})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as d}from"react/jsx-runtime";import*as u from"react";import{Button as r}from"../../atoms/Button";import{LegalHeading as c}from"../atoms/LegalHeading";import{LegalSection as m}from"../atoms/LegalSection";import{LegalText as v}from"../atoms/LegalText";export function GDPRDataRequest({onExport:s,onDelete:p,labels:o={export:"Demander une copie",delete:"Demander la suppression"}}){const[e,n]=u.useState(null),l=async(a)=>{const i=a==="export"?s:p;if(!i)return;n(a);try{await i()}finally{n(null)}};return d(m,{border:"top",className:"space-y-3",children:[t(c,{as:"h2",level:"h2",children:"Demandes de donn\xE9es"}),t(v,{children:"Vous pouvez demander une copie de vos donn\xE9es ou solliciter leur suppression. Ces demandes n\xE9cessitent une v\xE9rification d\u2019identit\xE9 et sont trait\xE9es dans les d\xE9lais l\xE9gaux."}),d("div",{className:"flex flex-wrap gap-3",children:[t(r,{onPress:()=>l("export"),disabled:e!==null,children:e==="export"?"Envoi\u2026":o.export}),t(r,{variant:"destructive",onPress:()=>l("delete"),disabled:e!==null,children:e==="delete"?"Envoi\u2026":o.delete})]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as c}from"react/jsx-runtime";import{LegalHeading as a}from"../atoms/LegalHeading";import{LegalList as l}from"../atoms/LegalList";import{LegalSection as n}from"../atoms/LegalSection";export function GDPRRights({title:e="Vos droits RGPD",rights:i=["Acc\xE8s \xE0 vos donn\xE9es","Rectification","Effacement (droit \xE0 l\u2019oubli)","Opposition et limitation","Portabilit\xE9"]}){return c(n,{border:"top",children:[t(a,{as:"h2",level:"h2",children:e}),t(l,{type:"unordered",children:i.map((o,r)=>t("li",{children:o},r))})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as A}from"react/jsx-runtime";import{cn as G}from"@contractspec/lib.ui-kit-web/ui/utils";import{LegalHeading as I}from"../atoms/LegalHeading";import{LegalMeta as J}from"../molecules/LegalMeta";import{LegalTOC as B}from"../molecules/LegalTOC";export function LegalPageLayout({title:D,meta:z,toc:v,children:E,className:F}){return A("div",{className:G("mx-auto w-full max-w-6xl px-4 py-8 md:py-12",F),children:[A("div",{className:"mb-6 space-y-2",children:[q(I,{as:"h1",level:"h1",spacing:"sm",children:D}),z&&q(J,{lastUpdated:z.lastUpdated,version:z.version})]}),v&&v.length>0&&q("div",{className:"mb-6 md:hidden",children:q(B,{items:v,variant:"inline"})}),A("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-[220px_minmax(0,1fr)]",children:[v&&v.length>0?q("aside",{className:"sticky top-24 hidden self-start md:block",children:q(B,{items:v,variant:"sidebar"})}):q("div",{className:"hidden md:block"}),q("article",{className:"prose max-w-none text-foreground",children:E})]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as c}from"react/jsx-runtime";import*as i from"react";import{Button as u}from"../../../index";import{ContactFields as d}from"../molecules/ContactFields";import{LegalPageLayout as g}from"../organisms/LegalPageLayout";export function ContactTemplate({title:r="Contact",meta:m,onSubmit:a}){const[o,s]=i.useState({name:"",email:"",subject:"",message:""}),[t,n]=i.useState(!1);return e(g,{title:r,meta:m,children:c("form",{onSubmit:async(l)=>{l.preventDefault();if(!a)return;n(!0);try{await a(o)}finally{n(!1)}},className:"space-y-6",children:[e(d,{value:o,onChange:s,disabled:t}),e(u,{disabled:t,type:"submit",children:t?"Envoi\u2026":"Envoyer"})]})})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as i}from"react/jsx-runtime";import{KeyValueList as g}from"../atoms/KeyValueList";import{LegalHeading as d}from"../atoms/LegalHeading";import{LegalSection as a}from"../atoms/LegalSection";import{LegalText as n}from"../atoms/LegalText";import{LegalPageLayout as R}from"../organisms/LegalPageLayout";export function CookiesTemplate({title:l="Politique Cookies",meta:r,toc:c,keyValues:o,sections:m}){return i(R,{title:l,meta:r,toc:c,children:[o&&o.length>0&&t(a,{border:"bottom",children:t(g,{items:o})}),m.map((e)=>i(a,{id:e.id,border:"top",className:"scroll-mt-24",children:[t(d,{as:"h2",level:"h2",children:e.title}),t(n,{as:"div",children:e.content})]},e.id))]})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as o}from"react/jsx-runtime";import{DefinitionList as g}from"../atoms/DefinitionList";import{LegalHeading as i}from"../atoms/LegalHeading";import{LegalSection as l}from"../atoms/LegalSection";import{LegalText as m}from"../atoms/LegalText";import{LegalPageLayout as L}from"../organisms/LegalPageLayout";export function PrivacyTemplate({title:r="Politique de Confidentialit\xE9",meta:c,toc:n,sections:d,definitions:a}){return o(L,{title:r,meta:c,toc:n,children:[a&&a.length>0&&o(l,{border:"bottom",children:[t(i,{as:"h2",level:"h3",children:"D\xE9finitions"}),t(g,{items:a})]}),d.map((e)=>o(l,{id:e.id,border:"top",className:"scroll-mt-24",children:[t(i,{as:"h2",level:"h2",children:e.title}),t(m,{as:"div",children:e.content})]},e.id))]})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as g}from"react/jsx-runtime";import{LegalHeading as r}from"../atoms/LegalHeading";import{LegalSection as n}from"../atoms/LegalSection";import{LegalText as c}from"../atoms/LegalText";import{LegalPageLayout as d}from"../organisms/LegalPageLayout";export function SalesTermsTemplate({title:a="Conditions G\xE9n\xE9rales de Vente",meta:o,toc:i,sections:l}){return t(d,{title:a,meta:o,toc:i,children:l.map((e)=>g(n,{id:e.id,border:"top",className:"scroll-mt-24",children:[t(r,{as:"h2",level:"h2",children:e.title}),t(c,{as:"div",children:e.content})]},e.id))})}
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as g}from"react/jsx-runtime";import{LegalHeading as r}from"../atoms/LegalHeading";import{LegalSection as n}from"../atoms/LegalSection";import{LegalText as c}from"../atoms/LegalText";import{LegalPageLayout as d}from"../organisms/LegalPageLayout";export function TermsTemplate({title:a="Conditions G\xE9n\xE9rales d\u2019Utilisation",meta:o,toc:i,sections:l}){return t(d,{title:a,meta:o,toc:i,children:l.map((e)=>g(n,{id:e.id,border:"top",className:"scroll-mt-24",children:[t(r,{as:"h2",level:"h2",children:e.title}),t(c,{as:"div",children:e.content})]},e.id))})}
@@ -0,0 +1 @@
1
+ import{jsx as B}from"react/jsx-runtime";import{Card as v,CardContent,CardDescription,CardHeader,CardTitle}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as z}from"@contractspec/lib.ui-kit-web/ui/utils";const A={default:"border-border/60 bg-card/90",muted:"border-border/50 bg-muted/50",elevated:"border-border/50 bg-card shadow-lg shadow-black/5"};export function MarketingCard({tone:g="default",className:h,...q}){return B(v,{className:z("backdrop-blur transition-shadow",A[g],h),...q})}export{CardContent as MarketingCardContent,CardDescription as MarketingCardDescription,CardHeader as MarketingCardHeader,CardTitle as MarketingCardTitle};
@@ -0,0 +1 @@
1
+ import{jsx as q}from"react/jsx-runtime";import{cn as E}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as F}from"class-variance-authority";import{MarketingSection as G}from"./MarketingSection";const H=F("grid gap-6",{variants:{columns:{1:"grid-cols-1",2:"grid-cols-1 md:grid-cols-2",3:"grid-cols-1 md:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 md:grid-cols-2 lg:grid-cols-4"}},defaultVariants:{columns:3}});export function MarketingCardsSection({children:z,columns:A,gridClassName:B,...D}){return q(G,{...D,children:q("div",{className:E(H({columns:A}),B),children:z})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as A}from"react/jsx-runtime";import{HStack as N,VStack as z}from"@contractspec/lib.ui-kit-web/ui/stack";import{Muted as O,Small as P}from"@contractspec/lib.ui-kit-web/ui/typography";import{CheckCircle as Q}from"lucide-react";import{MarketingSection as R}from"./MarketingSection";export function MarketingComparisonSection({eyebrow:B,title:D,subtitle:E,left:F,right:G,tone:I="default",padding:J="comfortable"}){return q(R,{tone:I,padding:J,eyebrow:B,title:D,subtitle:E,align:"center",children:q("div",{className:"grid gap-8 md:grid-cols-2",children:[F,G].map((v)=>A(z,{gap:"md",align:"start",className:"rounded-xl border border-border/50 bg-card/50 p-6",children:[q(P,{className:"font-semibold text-sm",children:v.title}),q(z,{as:"div",role:"list",gap:"sm",align:"start",className:"list-none p-0",children:v.items.map((K,L)=>A(N,{as:"div",role:"listitem",gap:"sm",align:"start",children:[q(Q,{className:"mt-0.5 text-violet-400",size:18}),q(O,{className:"text-sm leading-relaxed",children:K})]},L))})]},v.title))})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as B}from"react/jsx-runtime";import{HStack as K,VStack as L}from"@contractspec/lib.ui-kit-web/ui/stack";import{Muted as O,Small as U}from"@contractspec/lib.ui-kit-web/ui/typography";import{cva as W}from"class-variance-authority";import{MarketingCard as X,MarketingCardContent as Y,MarketingCardTitle as P}from"./MarketingCard";const Z=W("w-full",{variants:{variant:{iconFirst:"space-y-3",listing:"",support:""}},defaultVariants:{variant:"iconFirst"}});export function MarketingIconCard({icon:F,title:G,description:z,tone:Q="default",iconClassName:J,headerAction:D,variant:E="iconFirst",className:R}){return q(X,{tone:Q,className:R,children:q(Y,{className:Z({variant:E}),children:E==="iconFirst"?B(L,{gap:"sm",align:"start",children:[B(K,{gap:"sm",align:"center",justify:"between",className:"w-full",children:[q(F,{className:J,size:24}),D]}),q(P,{className:"text-xl",children:G}),z?q(O,{className:"text-sm leading-relaxed",children:z}):null]}):B(K,{gap:"md",align:"start",children:[q(F,{className:J,size:E==="listing"?18:20}),B(L,{gap:"xs",align:"start",children:[q(P,{className:"font-semibold text-base",children:G}),z?q(O,{className:"text-sm leading-relaxed",children:z}):null,D?q(U,{children:D}):null]})]})})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as F}from"react/jsx-runtime";import{VStack as Q}from"@contractspec/lib.ui-kit-web/ui/stack";import{Muted as E}from"@contractspec/lib.ui-kit-web/ui/typography";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as R}from"class-variance-authority";const T=R("w-full",{variants:{tone:{default:"bg-background",muted:"border-border/60 border-b bg-muted/40",panel:"bg-card/60 shadow-[0_10px_60px_-45px_rgba(0,0,0,0.35)] backdrop-blur",gradient:"bg-gradient-to-br from-violet-500/10 via-indigo-500/5 to-blue-500/5"},padding:{compact:"py-10",comfortable:"py-16 sm:py-20",spacious:"py-20 sm:py-24"}},defaultVariants:{tone:"default",padding:"comfortable"}});export function MarketingSection({children:G,eyebrow:z,title:B,subtitle:C,align:H="center",maxWidth:I="xl",tone:J,padding:K,className:L}){const O=I==="lg"?"max-w-5xl":"max-w-6xl",P=H==="center"?"items-center text-center":"items-start text-left";return q("section",{className:D(T({tone:J,padding:K}),"transition-colors",L),children:F("div",{className:D("mx-auto w-full px-4 sm:px-6 lg:px-8",O),children:[(z||B||C)&&F(Q,{gap:"sm",className:D("mb-10",P),children:[z?q(E,{className:"font-semibold text-[11px] uppercase tracking-[0.2em]",children:z}):null,B?q("div",{className:"font-bold text-3xl leading-tight md:text-4xl",children:B}):null,C?q(E,{className:"text-base md:text-lg",children:C}):null]}),G]})})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as z}from"react/jsx-runtime";import{HStack as E,VStack as F}from"@contractspec/lib.ui-kit-web/ui/stack";import{Muted as G,Small as I}from"@contractspec/lib.ui-kit-web/ui/typography";import{MarketingCard as J,MarketingCardContent as K,MarketingCardHeader as L,MarketingCardTitle as N}from"./MarketingCard";export function MarketingStepCard({step:A,title:B,description:v,tone:D="default"}){return z(J,{tone:D,children:[q(L,{children:z(E,{gap:"md",align:"center",className:"w-full",children:[q("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-primary/15",children:q(I,{className:"font-semibold text-primary",children:A})}),q(N,{className:"text-lg",children:B})]})}),v?q(K,{children:q(F,{gap:"sm",children:q(G,{className:"text-sm leading-relaxed",children:v})})}):null]})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as O}from"react/jsx-runtime";import{DropdownMenu as W,DropdownMenuContent as X,DropdownMenuItem as H,DropdownMenuTrigger as Y}from"@contractspec/lib.ui-kit-web/ui/dropdown-menu";import*as J from"react";import{Button as Z}from"../atoms/Button";function $(q){return`Please load and use this markdown context when answering: ${q}`}function K(q,F){const A=encodeURIComponent($(F));switch(q){case"claude":return`https://claude.ai/new?prompt=${A}`;case"chatgpt":default:return`https://chatgpt.com/?q=${A}`}}export function AiLinkButton({href:q,className:F}){const A=J.useCallback(()=>{try{navigator.clipboard?.writeText(q).catch(()=>{})}catch(E){}},[q]),Q=J.useCallback(()=>{const E=K("chatgpt",q);try{navigator.clipboard?.writeText(q).catch(()=>{})}catch(V){}window.open(E,"_blank","noopener,noreferrer")},[q]),S=J.useCallback(()=>{const E=K("claude",q);try{navigator.clipboard?.writeText(q).catch(()=>{})}catch(V){}window.open(E,"_blank","noopener,noreferrer")},[q]);return O(W,{children:[z(Y,{asChild:!0,children:z(Z,{className:F,variant:"secondary","aria-label":"AI actions",children:"AI"})}),O(X,{align:"end",children:[z(H,{onClick:A,children:"Get link for AI"}),z(H,{onClick:Q,children:"Open in ChatGPT"}),z(H,{onClick:S,children:"Open in Claude"})]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as K}from"react/jsx-runtime";import{BreadcrumbItem as C,BreadcrumbLink as D,BreadcrumbList as E,BreadcrumbPage as F,BreadcrumbSeparator as G,Breadcrumb as H}from"@contractspec/lib.ui-kit-web/ui/breadcrumb";import*as J from"react";export function Breadcrumbs({items:z}){if(!z?.length)return null;return q(H,{children:q(E,{children:z.map((v,A)=>K(J.Fragment,{children:[q(C,{children:v.href?q(D,{href:v.href,children:v.label}):q(F,{children:v.label})}),A<z.length-1&&q(G,{})]},A))})})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as c}from"react/jsx-runtime";import{useEffect as f,useState as x}from"react";import{cn as n}from"../../../lib/utils";import{CopyButton as z}from"../CopyButton";export function CodeBlock({code:t,language:o="typescript",filename:i,showLineNumbers:l=!1,showCopyButton:d=!0,onCopy:m,className:s,...u}){const[p,g]=x(null),h=()=>{m?.()};f(()=>{let a=!0;async function v(){try{const{codeToHtml:r}=await import("shiki"),b=await r(t,{lang:o==="text"?"plaintext":o,theme:"vitesse-dark"});if(a)g(b)}catch(r){console.error("Failed to highlight code:",r)}}v();return()=>{a=!1}},[t,o]);return c("div",{className:n("relative overflow-hidden rounded-lg border border-zinc-800 bg-zinc-950",s),...u,children:[i&&e("div",{className:"flex items-center justify-between border-zinc-800 border-b bg-zinc-900/50 px-4 py-2 text-xs text-zinc-400",children:e("span",{children:i})}),c("div",{className:"relative",children:[d&&e(z,{value:t,className:"absolute top-3 right-3",onCopy:h}),p?e("div",{className:n("overflow-x-auto p-4 font-mono text-[13px] leading-6","[&_pre]:!m-0 [&_pre]:!bg-transparent [&_pre]:!p-0","[&_code]:!bg-transparent",l&&"line-numbers"),dangerouslySetInnerHTML:{__html:p}}):e("pre",{className:n("overflow-x-auto p-4 font-mono text-[13px] text-zinc-300 leading-6",l&&"line-numbers"),children:e("code",{children:t})})]})]})}
@@ -0,0 +1 @@
1
+ export{CodeBlock}from"./CodeBlock";
File without changes
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as J}from"react/jsx-runtime";import{CommandDialog as X,CommandEmpty as Y,CommandGroup as Z,CommandInput as $,CommandItem as k,CommandList as D,CommandSeparator as E,CommandShortcut as G}from"@contractspec/lib.ui-kit-web/ui/command";import*as P from"react";export function CommandPalette({open:K,onOpenChange:M,groups:Q,placeholder:T="Type a command or search\u2026"}){const[U,W]=P.useState(!1),N=typeof K==="boolean",F=N?K:U,H=N&&M?M:W;P.useEffect(()=>{const A=(q)=>{if((q.metaKey||q.ctrlKey)&&q.key.toLowerCase()==="k"){q.preventDefault();H(!F)}};document.addEventListener("keydown",A);return()=>document.removeEventListener("keydown",A)},[F,H]);return J(X,{open:F,onOpenChange:H,children:[z($,{placeholder:T}),J(D,{children:[z(Y,{children:"No results found."}),Q.map((A,q)=>z(Z,{heading:A.heading,children:A.items.map((B)=>J(k,{onSelect:B.onSelect,children:[z("span",{children:B.label}),B.shortcut&&z(G,{children:B.shortcut})]},B.id))},q)),z(E,{})]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as D,jsxs as E,Fragment as Y}from"react/jsx-runtime";import{cn as U}from"@contractspec/lib.ui-kit-web/ui/utils";import{SearchIcon as V}from"lucide-react";import*as J from"react";import{Button as W}from"../atoms/Button";import{CommandPalette as X}from"./CommandPalette";export function CommandSearchTrigger({groups:K,className:L,placeholder:M="Search\u2026",compact:G=!1}){const[Q,A]=J.useState(!1);J.useEffect(()=>{const H=(z)=>{if((z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="k"){z.preventDefault();A((T)=>!T)}};document.addEventListener("keydown",H);return()=>document.removeEventListener("keydown",H)},[]);return E(Y,{children:[E(W,{variant:"ghost",type:"button",onPress:()=>A(!0),className:U("group inline-flex items-center gap-2 rounded-xs border px-3 text-muted-foreground text-sm hover:bg-muted/40",G?"h-9 w-9 justify-center p-0":"h-9",L),"aria-label":"Open search",children:[D(V,{className:"h-4 w-4 opacity-70"}),!G&&E("span",{className:"whitespace-nowrap",children:[M,D("span",{className:"ml-2 hidden items-center gap-1 rounded-xs border bg-muted px-1.5 font-mono text-[10px] md:inline-flex",children:"\u2318K"})]})]}),D(X,{open:Q,onOpenChange:A,groups:K})]})}
@@ -0,0 +1 @@
1
+ import{jsx as F,jsxs as W}from"react/jsx-runtime";import{useEffect as N,useState as O}from"react";import{cn as U}from"../../../lib/utils";import{usePackageManager as R}from"../../providers/PackageManagerProvider";import{CopyButton as T}from"../CopyButton";const V="package-manager-preference";export function CommandTabs({commands:q,initialPreference:X="bun",className:Z,onCopy:$,...A}){const z=R(),[B,J]=O(()=>{return X}),Q=z?.preference??B,G=z?.setPreference??J;N(()=>{if(z)return;try{const b=localStorage.getItem(V);if(b&&q[b])J(b)}catch{}},[q,z]);const K=(b)=>{G(b);if(!z)try{localStorage.setItem(V,b)}catch{}},I=Object.keys(q);if(I.length===0)return null;const D=q[Q]?Q:I[0];if(!D)return null;const H=q[D];if(!H)return null;const L=()=>{$?.({command:H,packageManager:D})};return W("div",{className:U("relative rounded-lg border border-zinc-800 bg-zinc-950",Z),...A,children:[F("div",{className:"flex items-center border-zinc-800 border-b bg-zinc-900/50 px-2 pt-2",role:"tablist","aria-label":"Package manager selection",children:I.map((b)=>F("button",{type:"button",role:"tab","aria-selected":D===b,onClick:()=>K(b),className:U("rounded-t-md border-transparent border-t border-r border-l px-4 py-2 font-medium text-xs text-zinc-400","transition-colors hover:text-zinc-100","focus:outline-none focus:ring-2 focus:ring-zinc-600 focus:ring-offset-1 focus:ring-offset-zinc-900",D===b&&"border-zinc-800 bg-zinc-950 text-zinc-100"),children:b},b))}),W("div",{className:"relative p-4",role:"tabpanel",children:[F(T,{value:H,className:"absolute top-3 right-3",onCopy:L}),F("pre",{className:"overflow-x-auto pr-10 font-mono text-[13px] text-white leading-6",children:F("code",{children:H})})]})]})}
@@ -0,0 +1 @@
1
+ export{CommandTabs}from"./CommandTabs";
File without changes
@@ -0,0 +1 @@
1
+ import{jsx as o,jsxs as b}from"react/jsx-runtime";import{Check as p,Copy as u}from"lucide-react";import{useCallback as l,useEffect as f,useState as m}from"react";import{cn as C}from"../../../lib/utils";export function CopyButton({value:e,onCopy:r,className:i,...c}){const[t,n]=m(!1);f(()=>{if(!t)return;const a=setTimeout(()=>{n(!1)},2000);return()=>clearTimeout(a)},[t]);const s=l(async()=>{try{await navigator.clipboard.writeText(e);n(!0);r?.()}catch{return}},[e,r]);return b("button",{type:"button",className:C("relative z-10 inline-flex h-6 w-6 items-center justify-center rounded-md","border border-zinc-700 bg-zinc-800 text-zinc-400","transition-all hover:bg-zinc-700 hover:text-zinc-100","focus:outline-none focus:ring-2 focus:ring-zinc-600 focus:ring-offset-2 focus:ring-offset-zinc-900",i),onClick:s,"aria-label":t?"Copied":"Copy to clipboard",...c,children:[o("span",{className:"sr-only",children:t?"Copied":"Copy"}),t?o(p,{className:"h-3 w-3"}):o(u,{className:"h-3 w-3"})]})}
@@ -0,0 +1 @@
1
+ export{CopyButton}from"./CopyButton";
File without changes
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as v}from"react/jsx-runtime";import{Card as P,CardContent as Q,CardHeader as U,CardTitle as V}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as W}from"@contractspec/lib.ui-kit-web/ui/utils";import{ScoreBar as X}from"../atoms/ScoreBar";const Y=["coding","reasoning","agentic","cost","latency","context","safety","custom"];export function DimensionScoresCard({dimensionScores:G,title:J="Dimension Scores",size:K="md",className:L}){const A=Y.flatMap((g)=>{const F=G[g];return F?[{dimension:g,...F}]:[]});if(A.length===0)return null;return v(P,{className:W("w-full",L),children:[q(U,{className:"pb-2",children:q(V,{className:"text-base",children:J})}),q(Q,{className:"flex flex-col gap-3",children:A.map((g)=>v("div",{className:"flex flex-col gap-0.5",children:[q(X,{score:g.score,label:g.dimension,size:K}),g.confidence<0.5&&v("span",{className:"text-muted-foreground text-xs",children:["Low confidence (",Math.round(g.confidence*100),"%)"]})]},g.dimension))})]})}
File without changes
@@ -0,0 +1 @@
1
+ var {require}=import.meta;import{jsx as g,jsxs as A}from"react/jsx-runtime";import{Card as b,CardContent as v}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as F}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as Z}from"class-variance-authority";import{ChevronDown as _}from"lucide-react";import*as y from"react";const Y=Z("group transition-all duration-200 hover:shadow-md",{variants:{emphasis:{default:"",subtle:"border-muted/60 bg-muted/20",strong:"border-primary/50 bg-primary/5",accentGradient:"border-transparent bg-gradient-to-br from-primary/10 via-background to-secondary/10 ring-1 ring-primary/20"},density:{compact:"p-3",comfortable:"p-4 md:p-5"},interactive:{true:"transform-gpu cursor-pointer hover:scale-[1.02] hover:border-primary/40",false:""}},defaultVariants:{emphasis:"default",density:"comfortable",interactive:!1}});const h=Z("flex shrink-0 items-center justify-center rounded-lg",{variants:{size:{sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"},tone:{default:"bg-muted text-muted-foreground",primary:"bg-primary/10 text-primary",success:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",warning:"bg-amber-500/10 text-amber-600 dark:text-amber-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400",danger:"bg-red-500/10 text-red-600 dark:text-red-400"}},defaultVariants:{size:"md",tone:"default"}});export function EntityCard({cardTitle:$,cardSubtitle:L,icon:M,iconTone:D="default",iconSize:H="md",chips:R,meta:O,footer:Q,emphasis:W,density:z,interactive:I,className:V,contentClassName:N,href:B,preview:U,expandableContent:G,defaultExpanded:P=!1,onClick:X,...T}){const[q,k]=y.useState(P),S=B?"a":"div",E=I??!!(X||B),m=(K)=>{K.stopPropagation();k(!q)},J=g(b,{className:F(Y({emphasis:W,interactive:E}),V),onClick:X,...T,children:g(v,{className:F(Y({density:z}),N),children:A("div",{className:"space-y-3",children:[A("div",{className:"flex items-start gap-3",children:[M&&g("div",{className:h({size:H,tone:D}),children:M}),A("div",{className:"flex flex-1 items-start justify-between gap-2",children:[A("div",{className:"min-w-0 flex-1",children:[g("div",{className:"truncate font-medium text-lg transition-colors group-hover:text-primary",children:$}),L&&g("div",{className:"text-muted-foreground text-sm",children:L})]}),A("div",{className:"inline-flex shrink-0 items-center gap-2",children:[R,G&&g("button",{type:"button",onClick:m,className:"rounded-md p-1 transition-colors hover:bg-muted","aria-expanded":q,"aria-label":q?"Collapse":"Expand",children:g(_,{className:F("h-4 w-4 text-muted-foreground transition-transform duration-200",q&&"rotate-180")})})]})]})]}),O&&g("div",{className:"space-y-1",children:O}),G&&g("div",{className:F("overflow-hidden transition-all duration-200",q?"max-h-96 opacity-100":"max-h-0 opacity-0"),children:g("div",{className:"border-border/50 border-t pt-2",children:G})}),Q&&g("div",{className:"flex items-center justify-between pt-1",children:Q})]})})}),u=(()=>{if(!U)return J;try{const{HoverPreview:K}=require("./HoverPreview");return g(K,{trigger:J,content:U})}catch{return J}})();return g(S,{href:B,className:B?"block":void 0,children:u})}
@@ -0,0 +1 @@
1
+ import{jsx as E,jsxs as D}from"react/jsx-runtime";import{Badge as k}from"@contractspec/lib.ui-kit-web/ui/badge";import{cn as I}from"@contractspec/lib.ui-kit-web/ui/utils";import*as K from"react";import{Button as W}from"../atoms/Button";import{Input as N}from"../atoms/Input";export function FiltersToolbar({className:X,children:Y,right:Z,searchPlaceholder:$,searchValue:G,onSearchChange:F,onSearchSubmit:L,debounceMs:O=250,activeChips:T=[],onClearAll:H}){const[J,U]=K.useState(G??"");K.useEffect(()=>{U(G??"")},[G]);K.useEffect(()=>{if(!F)return;const z=setTimeout(()=>F(J),O);return()=>clearTimeout(z)},[J,O,F]);return D("div",{className:I("space-y-2",X),children:[D("div",{className:"flex flex-col items-stretch gap-2 md:flex-row md:items-center md:justify-between",children:[D("div",{className:"flex flex-1 items-center gap-2",children:[F?D("div",{className:"flex flex-1 items-center gap-2",children:[E(N,{value:J,onChange:(z)=>U(z.target.value),onKeyDown:(z)=>{if(z.key==="Enter")L?.()},placeholder:$,keyboard:{kind:"search"}}),E(W,{variant:"outline",onPress:()=>L?.(),className:"shrink-0",children:"Rechercher"})]}):null,Y]}),Z]}),(T.length>0||H)&&D("div",{className:"flex flex-wrap items-center gap-2",children:[T.map((z)=>D(k,{variant:"secondary",className:"inline-flex items-center gap-2",children:[E("span",{children:z.label}),z.onRemove&&E("button",{type:"button","aria-label":"Supprimer le filtre",onClick:z.onRemove,className:"rounded-xs px-1 text-base hover:bg-muted",children:"\xD7"})]},z.key)),H&&E(W,{size:"sm",variant:"ghost",onPress:H,children:"Effacer les filtres"})]})]})}
@@ -1,2 +1,2 @@
1
1
  import type { FiltersToolbarProps } from './FiltersToolbar';
2
- export declare function FiltersToolbar({ className, children, right, searchPlaceholder, searchValue, onSearchChange, onSearchSubmit, debounceMs, activeChips: _activeChips, onClearAll: _onClearAll, }: FiltersToolbarProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function FiltersToolbar({ className, children, right, searchPlaceholder, searchValue, onSearchChange, onSearchSubmit, debounceMs, activeChips, onClearAll, }: FiltersToolbarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as E,jsxs as F}from"react/jsx-runtime";import{HStack as L,VStack as P}from"@contractspec/lib.ui-kit/ui/stack";import*as O from"react";import{Button as T}from"../atoms/Button";import{Input as Q}from"../atoms/Input";export function FiltersToolbar({className:Y,children:Z,right:$,searchPlaceholder:I,searchValue:G,onSearchChange:D,onSearchSubmit:N,debounceMs:U=250,activeChips:W=[],onClearAll:J}){const[K,X]=O.useState(G??"");O.useEffect(()=>{X(G??"")},[G]);O.useEffect(()=>{if(!D)return;const z=setTimeout(()=>D(K),U);return()=>clearTimeout(z)},[K,U,D]);return F(P,{className:Y,children:[F(L,{className:"items-center gap-2",children:[D?F(L,{className:"flex-1 items-center gap-2",children:[E(Q,{value:K,onChange:(z)=>X(z.target.value),placeholder:I,keyboard:{kind:"search"}}),E(T,{variant:"outline",onPress:()=>N?.(),children:"Rechercher"})]}):null,Z,$]}),(W.length>0||J)&&F(L,{className:"mt-2 flex flex-wrap items-center gap-2",children:[W.map((z)=>E(T,{size:"sm",variant:"secondary",onPress:z.onRemove,children:z.label},z.key)),J?E(T,{size:"sm",variant:"ghost",onPress:J,children:"Effacer les filtres"}):null]})]})}
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as J}from"react/jsx-runtime";import{HoverCard as F,HoverCardContent as G,HoverCardTrigger as I}from"@contractspec/lib.ui-kit-web/ui/hover-card";export function HoverPreview({trigger:z,content:A,align:B="center",sideOffset:D=8,className:E}){return J(F,{children:[q(I,{asChild:!0,children:z}),q(G,{align:B,sideOffset:D,className:E,children:A})]})}
@@ -0,0 +1 @@
1
+ import{jsx as P}from"react/jsx-runtime";import{useMemo as L}from"react";import{CommandTabs as O}from"../CommandTabs";function H(z,E,B,F,J){const q=E.join(" ");if(B==="exec")switch(z){case"bun":return`bunx ${q}`;case"npm":return`npx ${q}`;case"yarn":return`yarn dlx ${q}`;case"pnpm":return`pnpm dlx ${q}`}if(B==="create")switch(z){case"bun":return`bun create ${q}`;case"npm":return`npm create ${q}`;case"yarn":return`yarn create ${q}`;case"pnpm":return`pnpm create ${q}`}if(B==="run")switch(z){case"bun":return`bun run ${q}`;case"npm":return`npm run ${q}`;case"yarn":return`yarn ${q}`;case"pnpm":return`pnpm ${q}`}const D=[F?z==="npm"?"--save-dev":"-D":"",J?"-g":""].filter(Boolean).join(" ");switch(z){case"bun":return`bun add ${q}${D?` ${D}`:""}`;case"npm":return`npm install ${q}${D?` ${D}`:""}`;case"yarn":return`yarn add ${q}${D?` ${D}`:""}`;case"pnpm":return`pnpm add ${q}${D?` ${D}`:""}`}}export function InstallCommand({package:z,type:E="add",dev:B=!1,global:F=!1,onCopy:J,...q}){const G=L(()=>Array.isArray(z)?z:[z],[z]),K=L(()=>({bun:H("bun",G,E,B,F),npm:H("npm",G,E,B,F),yarn:H("yarn",G,E,B,F),pnpm:H("pnpm",G,E,B,F)}),[G,E,B,F]);return P(O,{commands:K,onCopy:J,...q})}
@@ -0,0 +1 @@
1
+ export{InstallCommand}from"./InstallCommand";
@@ -0,0 +1 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{Button as r}from"../atoms/Button";export function LangSwitch({value:n,options:o,onChange:i,size:a="sm"}){return t("div",{className:"flex items-center gap-1",children:o.map((e)=>t(r,{variant:n===e.code?"default":"ghost",size:a,onPress:()=>i(e.code),children:e.label},e.code))})}
@@ -0,0 +1 @@
1
+ import{jsx as z,jsxs as E}from"react/jsx-runtime";import{DropdownMenu as K,DropdownMenuContent as L,DropdownMenuItem as O,DropdownMenuTrigger as P}from"@contractspec/lib.ui-kit-web/ui/dropdown-menu";import{Globe as Q}from"lucide-react";export function LangSwitchDropdown({value:A,options:B,onChange:F,className:H}){const J=B.find((q)=>q.code===A);return E(K,{children:[z(P,{className:H,children:E("div",{className:"inline-flex items-center gap-2 rounded-xs border px-2 py-1 text-sm hover:bg-muted/40",children:[z(Q,{className:"h-4 w-4"}),z("span",{className:"hidden sm:inline",children:J?.label??A.toUpperCase()})]})}),z(L,{align:"end",children:B.map((q)=>z(O,{onSelect:()=>F(q.code),children:q.label},q.code))})]})}
@@ -0,0 +1 @@
1
+ import{jsx as g,jsxs as F}from"react/jsx-runtime";import{cn as D}from"@contractspec/lib.ui-kit-web/ui/utils";import{LoaderCircular as E}from"../atoms/LoaderCircular";export function LoaderBlock({label:v,description:q,className:A,size:B="md"}){return g("div",{className:D("flex items-center justify-center p-6",A),children:F("div",{className:"inline-flex items-center gap-3",children:[g(E,{size:B,label:v}),q?g("span",{className:"text-base text-muted-foreground",children:q}):null]})})}
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as m}from"react/jsx-runtime";import{Text as c,View as o}from"react-native";import{LoaderCircular as i}from"../atoms/LoaderCircular.mobile";export function LoaderBlock({label:r,description:t,className:a,size:l="md"}){return e(o,{className:["items-center justify-center p-6",a].filter(Boolean).join(" "),children:m(o,{className:"flex-row items-center gap-3",children:[e(i,{size:l,label:r}),t?e(c,{className:"text-base text-muted-foreground",children:t}):null]})})}export default LoaderBlock;
@@ -0,0 +1,2 @@
1
+ import{jsx as i,jsxs as n}from"react/jsx-runtime";import{formatInlineMarkdown as o}from"./formatInlineMarkdown";import{renderMarkdownTable as c}from"./renderMarkdownTable";export function MarkdownRenderer({content:a}){const l=a.split(`
2
+ `),s=[];let t=0;while(t<l.length){const e=l[t]??"";if(e.startsWith("|")&&l[t+1]?.match(/^\|[\s-|]+\|$/)){const r=[e];t++;while(t<l.length&&(l[t]?.startsWith("|")??!1)){r.push(l[t]??"");t++}s.push(c(r,s.length));continue}if(e.startsWith("# "))s.push(i("h1",{className:"mb-4 font-bold text-2xl",children:e.slice(2)},t));else if(e.startsWith("## "))s.push(i("h2",{className:"mt-6 mb-3 font-semibold text-xl",children:e.slice(3)},t));else if(e.startsWith("### "))s.push(i("h3",{className:"mt-4 mb-2 font-medium text-lg",children:e.slice(4)},t));else if(e.startsWith("> "))s.push(i("blockquote",{className:"my-2 border-violet-500/50 border-l-4 pl-4 text-muted-foreground italic",children:e.slice(2)},t));else if(e.startsWith("- "))s.push(i("li",{className:"ml-4 list-disc",children:o(e.slice(2))},t));else if(e.startsWith("**")&&e.includes(":**")){const[r,...m]=e.split(":**");s.push(n("p",{className:"my-1",children:[n("strong",{children:[r?.slice(2),":"]}),m.join(":**")]},t))}else if(e.startsWith("_")&&e.endsWith("_"))s.push(i("p",{className:"my-1 text-muted-foreground italic",children:e.slice(1,-1)},t));else if(!e.trim())s.push(i("div",{className:"h-2"},t));else s.push(i("p",{className:"my-1",children:o(e)},t));t++}return i("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:s})}
@@ -0,0 +1 @@
1
+ import{jsx as s}from"react/jsx-runtime";export function formatInlineMarkdown(o){return o.split(/(\*\*[^*]+\*\*)/g).map((t,n)=>{if(t.startsWith("**")&&t.endsWith("**"))return s("strong",{children:t.slice(2,-2)},n);if(t.includes("`"))return t.split(/(`[^`]+`)/g).map((e,r)=>{if(e.startsWith("`")&&e.endsWith("`"))return s("code",{className:"rounded bg-violet-500/10 px-1.5 py-0.5 font-mono text-sm",children:e.slice(1,-1)},`${n}-${r}`);return e});return t})}