@contractspec/lib.design-system 3.11.2 → 4.1.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 (409) hide show
  1. package/README.md +3 -2
  2. package/dist/browser/components/atoms/InputPassword.js +1 -0
  3. package/dist/browser/components/data-view/DataViewRenderer.js +1 -1
  4. package/dist/browser/components/forms/controls/index.js +1 -1
  5. package/dist/browser/components/legal/templates/ContactTemplate.js +1 -1
  6. package/dist/browser/components/list/List.js +1 -0
  7. package/dist/browser/components/list/index.js +1 -0
  8. package/dist/browser/components/molecules/FiltersToolbar.js +1 -1
  9. package/dist/browser/components/molecules/Tabs.js +1 -0
  10. package/dist/browser/components/typography/Typography.js +1 -0
  11. package/dist/browser/components/typography/index.js +1 -0
  12. package/dist/browser/controls.js +1 -0
  13. package/dist/browser/forms.js +1 -0
  14. package/dist/browser/hooks/useListUrlState.js +1 -1
  15. package/dist/browser/index.js +1 -1
  16. package/dist/browser/layout.js +1 -0
  17. package/dist/browser/list.js +1 -0
  18. package/dist/browser/renderers/form-contract/renderer.js +1 -1
  19. package/dist/browser/renderers/form-contract/shell.js +1 -1
  20. package/dist/browser/typography.js +1 -0
  21. package/dist/components/atoms/{ButtonLink.mobile.d.ts → ButtonLink.native.d.ts} +1 -1
  22. package/dist/components/atoms/InputPassword.d.ts +15 -0
  23. package/dist/components/atoms/InputPassword.js +1 -0
  24. package/dist/components/atoms/InputPassword.native.d.ts +17 -0
  25. package/dist/components/atoms/Link.native.d.ts +1 -1
  26. package/dist/components/data-view/DataViewRenderer.d.ts +3 -3
  27. package/dist/components/data-view/DataViewRenderer.js +1 -1
  28. package/dist/components/data-view/{DataViewRenderer.mobile.d.ts → DataViewRenderer.native.d.ts} +3 -3
  29. package/dist/components/forms/controls/index.d.ts +1 -0
  30. package/dist/components/forms/controls/index.js +1 -1
  31. package/dist/components/legal/templates/ContactTemplate.js +1 -1
  32. package/dist/components/list/List.d.ts +6 -0
  33. package/dist/components/list/List.js +1 -0
  34. package/dist/components/list/List.native.d.ts +6 -0
  35. package/dist/components/list/index.d.ts +1 -0
  36. package/dist/components/list/index.js +1 -0
  37. package/dist/components/molecules/FiltersToolbar.d.ts +1 -0
  38. package/dist/components/molecules/FiltersToolbar.js +1 -1
  39. package/dist/components/molecules/Tabs.d.ts +32 -0
  40. package/dist/components/molecules/Tabs.js +1 -0
  41. package/dist/components/molecules/Tabs.native.d.ts +32 -0
  42. package/dist/components/organisms/{AppHeader.mobile.d.ts → AppHeader.native.d.ts} +1 -1
  43. package/dist/components/typography/Typography.d.ts +19 -0
  44. package/dist/components/typography/Typography.js +1 -0
  45. package/dist/components/typography/Typography.native.d.ts +19 -0
  46. package/dist/components/typography/index.d.ts +1 -0
  47. package/dist/components/typography/index.js +1 -0
  48. package/dist/controls.d.ts +1 -0
  49. package/dist/controls.js +1 -0
  50. package/dist/forms.d.ts +1 -0
  51. package/dist/forms.js +1 -0
  52. package/dist/hooks/useListUrlState.d.ts +3 -1
  53. package/dist/hooks/useListUrlState.js +1 -1
  54. package/dist/index.d.ts +4 -0
  55. package/dist/index.js +1 -1
  56. package/dist/layout.d.ts +1 -0
  57. package/dist/layout.js +1 -0
  58. package/dist/list.d.ts +1 -0
  59. package/dist/list.js +1 -0
  60. package/dist/native/components/agent/AgentMonitor.js +1 -0
  61. package/dist/native/components/agent/ApprovalQueue.js +1 -0
  62. package/dist/native/components/atoms/ActionButtons.js +1 -0
  63. package/dist/native/components/atoms/Button.js +1 -0
  64. package/dist/native/components/atoms/ButtonLink.js +1 -0
  65. package/dist/{browser/components/atoms/ButtonLink.mobile.js → native/components/atoms/ButtonLink.native.js} +1 -1
  66. package/dist/native/components/atoms/Cta.js +1 -0
  67. package/dist/native/components/atoms/DataChips.js +1 -0
  68. package/dist/native/components/atoms/EmptyState.js +1 -0
  69. package/dist/native/components/atoms/ErrorState.js +1 -0
  70. package/dist/native/components/atoms/ErrorState.native.js +1 -0
  71. package/dist/native/components/atoms/Input.js +1 -0
  72. package/dist/native/components/atoms/InputPassword.js +1 -0
  73. package/dist/native/components/atoms/InputPassword.native.js +1 -0
  74. package/dist/native/components/atoms/Link.js +1 -0
  75. package/dist/native/components/atoms/Link.native.js +1 -0
  76. package/dist/native/components/atoms/LoaderCircular.js +1 -0
  77. package/dist/native/components/atoms/NavBrand.js +1 -0
  78. package/dist/native/components/atoms/RankBadge.js +1 -0
  79. package/dist/native/components/atoms/ScoreBar.js +1 -0
  80. package/dist/native/components/atoms/Stepper.js +1 -0
  81. package/dist/native/components/atoms/Textarea.js +1 -0
  82. package/dist/native/components/data-table/DataTable.js +1 -0
  83. package/dist/native/components/data-table/DataTableToolbar.js +1 -0
  84. package/dist/{browser/components/data-table/DataTableToolbar.mobile.js → native/components/data-table/DataTableToolbar.native.js} +1 -1
  85. package/dist/native/components/data-table/DataTableToolbar.shared.js +1 -0
  86. package/dist/native/components/data-view/DataViewDetail.js +1 -0
  87. package/dist/native/components/data-view/DataViewList.js +1 -0
  88. package/dist/native/components/data-view/DataViewRenderer.js +1 -0
  89. package/dist/native/components/data-view/DataViewRenderer.native.js +1 -0
  90. package/dist/native/components/data-view/DataViewTable.js +1 -0
  91. package/dist/native/components/data-view/utils.js +1 -0
  92. package/dist/native/components/forms/ActionForm.js +1 -0
  93. package/dist/native/components/forms/FormCardLayout.js +1 -0
  94. package/dist/native/components/forms/FormDialog.js +1 -0
  95. package/dist/native/components/forms/FormLayout.js +1 -0
  96. package/dist/native/components/forms/FormOneByOneLayout.js +1 -0
  97. package/dist/native/components/forms/FormStepsLayout.js +1 -0
  98. package/dist/native/components/forms/ZodForm.js +1 -0
  99. package/dist/native/components/forms/controls/Autocomplete.js +1 -0
  100. package/dist/native/components/forms/controls/ChoiceControls.js +1 -0
  101. package/dist/native/components/forms/controls/Combobox.js +1 -0
  102. package/dist/native/components/forms/controls/DateTimeControls.js +1 -0
  103. package/dist/{components/forms/controls/DropdownMenu.mobile.js → native/components/forms/controls/DropdownMenu.js} +1 -1
  104. package/dist/native/components/forms/controls/Field.js +1 -0
  105. package/dist/native/components/forms/controls/InputGroup.js +1 -0
  106. package/dist/native/components/forms/controls/InputOTP.js +1 -0
  107. package/dist/native/components/forms/controls/LoadingButton.js +1 -0
  108. package/dist/native/components/forms/controls/NativeSelect.js +1 -0
  109. package/dist/native/components/forms/controls/Select.js +1 -0
  110. package/dist/native/components/forms/controls/index.js +1 -0
  111. package/dist/native/components/forms/index.js +1 -0
  112. package/dist/native/components/layout/Stack.js +1 -0
  113. package/dist/native/components/layout/index.js +1 -0
  114. package/dist/native/components/legal/atoms/DefinitionList.js +1 -0
  115. package/dist/native/components/legal/atoms/KeyValueList.js +1 -0
  116. package/dist/native/components/legal/atoms/LegalCallout.js +1 -0
  117. package/dist/native/components/legal/atoms/LegalHeading.js +1 -0
  118. package/dist/native/components/legal/atoms/LegalList.js +1 -0
  119. package/dist/native/components/legal/atoms/LegalSection.js +1 -0
  120. package/dist/native/components/legal/atoms/LegalText.js +1 -0
  121. package/dist/native/components/legal/molecules/Consent.js +1 -0
  122. package/dist/native/components/legal/molecules/ContactFields.js +1 -0
  123. package/dist/native/components/legal/molecules/LegalMeta.js +1 -0
  124. package/dist/native/components/legal/molecules/LegalTOC.js +1 -0
  125. package/dist/native/components/legal/organisms/ContactForm.js +1 -0
  126. package/dist/native/components/legal/organisms/GDPRDataRequest.js +1 -0
  127. package/dist/native/components/legal/organisms/GDPRRights.js +1 -0
  128. package/dist/native/components/legal/organisms/LegalPageLayout.js +1 -0
  129. package/dist/native/components/legal/templates/ContactTemplate.js +1 -0
  130. package/dist/native/components/legal/templates/CookiesTemplate.js +1 -0
  131. package/dist/native/components/legal/templates/PrivacyTemplate.js +1 -0
  132. package/dist/native/components/legal/templates/SalesTermsTemplate.js +1 -0
  133. package/dist/native/components/legal/templates/TermsTemplate.js +1 -0
  134. package/dist/native/components/list/List.js +1 -0
  135. package/dist/native/components/list/List.native.js +1 -0
  136. package/dist/native/components/list/index.js +1 -0
  137. package/dist/native/components/marketing/MarketingCard.js +1 -0
  138. package/dist/native/components/marketing/MarketingCardsSection.js +1 -0
  139. package/dist/native/components/marketing/MarketingComparisonSection.js +1 -0
  140. package/dist/native/components/marketing/MarketingIconCard.js +1 -0
  141. package/dist/native/components/marketing/MarketingSection.js +1 -0
  142. package/dist/native/components/marketing/MarketingStepCard.js +1 -0
  143. package/dist/native/components/molecules/AiLinkButton.js +1 -0
  144. package/dist/native/components/molecules/Breadcrumbs.js +1 -0
  145. package/dist/native/components/molecules/CodeBlock/CodeBlock.js +1 -0
  146. package/dist/native/components/molecules/CodeBlock/index.js +1 -0
  147. package/dist/native/components/molecules/CommandPalette.js +1 -0
  148. package/dist/native/components/molecules/CommandSearchTrigger.js +1 -0
  149. package/dist/native/components/molecules/CommandTabs/CommandTabs.js +1 -0
  150. package/dist/native/components/molecules/CommandTabs/index.js +1 -0
  151. package/dist/native/components/molecules/CopyButton/CopyButton.js +1 -0
  152. package/dist/native/components/molecules/CopyButton/index.js +1 -0
  153. package/dist/native/components/molecules/CopyButton/types.js +0 -0
  154. package/dist/native/components/molecules/DimensionScoresCard.js +1 -0
  155. package/dist/native/components/molecules/DropdownMenu.js +0 -0
  156. package/dist/native/components/molecules/EntityCard.js +1 -0
  157. package/dist/native/components/molecules/FiltersToolbar.js +1 -0
  158. package/dist/{browser/components/molecules/FiltersToolbar.mobile.js → native/components/molecules/FiltersToolbar.native.js} +1 -1
  159. package/dist/native/components/molecules/HoverPreview.js +1 -0
  160. package/dist/native/components/molecules/InstallCommand/InstallCommand.js +1 -0
  161. package/dist/native/components/molecules/InstallCommand/index.js +1 -0
  162. package/dist/native/components/molecules/InstallCommand/types.js +0 -0
  163. package/dist/native/components/molecules/LangSwitch.js +1 -0
  164. package/dist/native/components/molecules/LangSwitchDropdown.js +1 -0
  165. package/dist/native/components/molecules/LoaderBlock.js +1 -0
  166. package/dist/{browser/components/molecules/LoaderBlock.mobile.js → native/components/molecules/LoaderBlock.native.js} +1 -1
  167. package/dist/native/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
  168. package/dist/native/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
  169. package/dist/native/components/molecules/MarkdownRenderer/index.js +1 -0
  170. package/dist/native/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
  171. package/dist/native/components/molecules/MarkdownRenderer/types.js +0 -0
  172. package/dist/native/components/molecules/MobileNavMenu.js +1 -0
  173. package/dist/native/components/molecules/NavItemCard.js +1 -0
  174. package/dist/native/components/molecules/NavMain.js +1 -0
  175. package/dist/native/components/molecules/NavUser.js +1 -0
  176. package/dist/native/components/molecules/OverviewCard.js +1 -0
  177. package/dist/native/components/molecules/SkeletonBlock/index.js +1 -0
  178. package/dist/native/components/molecules/SkeletonBlock/types.js +0 -0
  179. package/dist/native/components/molecules/SkeletonCircle/index.js +1 -0
  180. package/dist/native/components/molecules/SkeletonCircle/types.js +0 -0
  181. package/dist/native/components/molecules/SkeletonList/index.js +1 -0
  182. package/dist/native/components/molecules/SkeletonList/types.js +0 -0
  183. package/dist/native/components/molecules/StatCard.js +1 -0
  184. package/dist/native/components/molecules/StatusChip.js +1 -0
  185. package/dist/native/components/molecules/Tabs.js +1 -0
  186. package/dist/native/components/molecules/Tabs.native.js +1 -0
  187. package/dist/native/components/molecules/hover-previews/Doc.js +1 -0
  188. package/dist/native/components/molecules/hover-previews/Media.js +1 -0
  189. package/dist/native/components/molecules/hover-previews/Simple.js +1 -0
  190. package/dist/native/components/molecules/hover-previews/Stats.js +1 -0
  191. package/dist/native/components/molecules/hover-previews/User.js +1 -0
  192. package/dist/native/components/organisms/AcademyLayout.js +1 -0
  193. package/dist/native/components/organisms/AppHeader.js +1 -0
  194. package/dist/{browser/components/organisms/AppHeader.mobile.js → native/components/organisms/AppHeader.native.js} +1 -1
  195. package/dist/native/components/organisms/AppLayout.js +1 -0
  196. package/dist/native/components/organisms/AppSidebar.js +1 -0
  197. package/dist/native/components/organisms/AppSidebar.native.js +0 -0
  198. package/dist/native/components/organisms/EmptyDataList.js +1 -0
  199. package/dist/native/components/organisms/EmptyDataList.types.js +0 -0
  200. package/dist/native/components/organisms/EmptySearchResult.js +1 -0
  201. package/dist/native/components/organisms/FAQSection.js +1 -0
  202. package/dist/native/components/organisms/FeatureCarousel.js +1 -0
  203. package/dist/native/components/organisms/FeaturesSection.js +1 -0
  204. package/dist/native/components/organisms/Footer.js +1 -0
  205. package/dist/native/components/organisms/GridLayout.js +1 -0
  206. package/dist/native/components/organisms/Header.js +1 -0
  207. package/dist/native/components/organisms/HeroResponsive.js +1 -0
  208. package/dist/native/components/organisms/HeroSection.js +1 -0
  209. package/dist/native/components/organisms/ListCardPage.js +1 -0
  210. package/dist/native/components/organisms/ListGridPage.js +1 -0
  211. package/dist/native/components/organisms/ListPageResponsive.js +1 -0
  212. package/dist/native/components/organisms/ListTablePage.js +1 -0
  213. package/dist/native/components/organisms/MarketingHeader.js +1 -0
  214. package/dist/native/components/organisms/MarketingHeaderDesktop.js +1 -0
  215. package/dist/native/components/organisms/MarketingHeaderMobile.js +1 -0
  216. package/dist/native/components/organisms/MarketingLayout.js +1 -0
  217. package/dist/native/components/organisms/ModelComparisonView.js +1 -0
  218. package/dist/native/components/organisms/PageHeaderResponsive.js +1 -0
  219. package/dist/{browser/components/organisms/PageHeaderResponsive.mobile.js → native/components/organisms/PageHeaderResponsive.native.js} +1 -1
  220. package/dist/native/components/organisms/PricingCarousel.js +1 -0
  221. package/dist/native/components/organisms/PricingSection.js +1 -0
  222. package/dist/native/components/organisms/TestimonialCarousel.js +1 -0
  223. package/dist/native/components/primitives/control.js +1 -0
  224. package/dist/native/components/primitives/themed.js +1 -0
  225. package/dist/native/components/providers/PackageManagerProvider.js +1 -0
  226. package/dist/native/components/templates/lists/ListPageTemplate/index.js +1 -0
  227. package/dist/{browser/components/templates/lists/ListPageTemplate/index.mobile.js → native/components/templates/lists/ListPageTemplate/index.native.js} +1 -1
  228. package/dist/native/components/templates/lists/ListPageTemplate/types.js +0 -0
  229. package/dist/native/components/typography/Typography.js +1 -0
  230. package/dist/native/components/typography/Typography.native.js +1 -0
  231. package/dist/native/components/typography/index.js +1 -0
  232. package/dist/native/components/visualization/ComparisonView.js +1 -0
  233. package/dist/{browser/components/visualization/ComparisonView.mobile.js → native/components/visualization/ComparisonView.native.js} +1 -1
  234. package/dist/native/components/visualization/TimelineView.js +1 -0
  235. package/dist/{browser/components/visualization/TimelineView.mobile.js → native/components/visualization/TimelineView.native.js} +1 -1
  236. package/dist/native/components/visualization/VisualizationCard.js +1 -0
  237. package/dist/native/components/visualization/VisualizationCard.native.js +1 -0
  238. package/dist/native/components/visualization/VisualizationGrid.js +1 -0
  239. package/dist/native/components/visualization/VisualizationRenderer.js +1 -0
  240. package/dist/native/components/visualization/types.js +0 -0
  241. package/dist/native/contracts.typecheck.js +1 -0
  242. package/dist/native/controls.js +1 -0
  243. package/dist/native/design-system.feature.js +1 -0
  244. package/dist/native/forms.js +1 -0
  245. package/dist/native/hooks/useListUrlState.js +1 -0
  246. package/dist/native/i18n/translation.js +1 -0
  247. package/dist/native/index.js +1 -0
  248. package/dist/native/layout.js +1 -0
  249. package/dist/native/lib/keyboard.js +1 -0
  250. package/dist/native/lib/utils.js +1 -0
  251. package/dist/native/list.js +1 -0
  252. package/dist/native/platform/useColorScheme.js +1 -0
  253. package/dist/native/platform/useReducedMotion.js +1 -0
  254. package/dist/native/platform/useResponsive.js +1 -0
  255. package/dist/native/platform/withPlatformUI.js +1 -0
  256. package/dist/native/renderers/form-contract/renderer.js +1 -0
  257. package/dist/native/renderers/form-contract/rich-fields.js +1 -0
  258. package/dist/native/renderers/form-contract/shell.js +1 -0
  259. package/dist/native/renderers/form-contract/values.js +1 -0
  260. package/dist/native/renderers/form-contract.js +1 -0
  261. package/dist/native/renderers/index.js +1 -0
  262. package/dist/native/theme/contracts.js +1 -0
  263. package/dist/native/theme/index.js +1 -0
  264. package/dist/native/theme/runtime-resolvers.js +1 -0
  265. package/dist/native/theme/runtime.js +1 -0
  266. package/dist/native/theme/tailwind-config.js +1 -0
  267. package/dist/native/theme/tailwind-css.js +9 -0
  268. package/dist/native/theme/tailwind-variables.js +1 -0
  269. package/dist/native/theme/tailwind.js +1 -0
  270. package/dist/native/theme/tokenBridge.js +1 -0
  271. package/dist/native/theme/tokens.js +1 -0
  272. package/dist/native/theme/variants.js +1 -0
  273. package/dist/native/types/nativewind-env.d.js +0 -0
  274. package/dist/native/types/navigation.js +0 -0
  275. package/dist/native/typography.js +1 -0
  276. package/dist/renderers/form-contract/renderer.js +1 -1
  277. package/dist/renderers/form-contract/shell.d.ts +5 -0
  278. package/dist/renderers/form-contract/shell.js +1 -1
  279. package/dist/typography.d.ts +1 -0
  280. package/dist/typography.js +1 -0
  281. package/package.json +3052 -22
  282. package/dist/browser/components/atoms/ErrorState.mobile.js +0 -1
  283. package/dist/browser/components/data-view/DataViewRenderer.mobile.js +0 -1
  284. package/dist/browser/components/visualization/VisualizationCard.mobile.js +0 -1
  285. package/dist/components/agent/ApprovalQueue.mobile.js +0 -1
  286. package/dist/components/atoms/Button.mobile.js +0 -1
  287. package/dist/components/atoms/ButtonLink.mobile.js +0 -1
  288. package/dist/components/atoms/Cta.mobile.js +0 -1
  289. package/dist/components/atoms/ErrorState.mobile.js +0 -1
  290. package/dist/components/atoms/Input.mobile.js +0 -1
  291. package/dist/components/atoms/LoaderCircular.mobile.js +0 -1
  292. package/dist/components/atoms/Textarea.mobile.js +0 -1
  293. package/dist/components/data-table/DataTable.mobile.js +0 -1
  294. package/dist/components/data-table/DataTableToolbar.mobile.js +0 -1
  295. package/dist/components/data-view/DataViewRenderer.mobile.js +0 -1
  296. package/dist/components/data-view/DataViewTable.mobile.js +0 -1
  297. package/dist/components/forms/controls/Autocomplete.mobile.js +0 -1
  298. package/dist/components/forms/controls/ChoiceControls.mobile.js +0 -1
  299. package/dist/components/forms/controls/Combobox.mobile.js +0 -1
  300. package/dist/components/forms/controls/DateTimeControls.mobile.js +0 -1
  301. package/dist/components/forms/controls/Field.mobile.js +0 -1
  302. package/dist/components/forms/controls/InputGroup.mobile.js +0 -1
  303. package/dist/components/forms/controls/InputOTP.mobile.js +0 -1
  304. package/dist/components/forms/controls/LoadingButton.mobile.js +0 -1
  305. package/dist/components/forms/controls/NativeSelect.mobile.js +0 -1
  306. package/dist/components/forms/controls/Select.mobile.js +0 -1
  307. package/dist/components/layout/Stack.mobile.js +0 -1
  308. package/dist/components/molecules/FiltersToolbar.mobile.js +0 -1
  309. package/dist/components/molecules/LoaderBlock.mobile.js +0 -1
  310. package/dist/components/molecules/SkeletonBlock/index.mobile.js +0 -1
  311. package/dist/components/molecules/SkeletonCircle/index.mobile.js +0 -1
  312. package/dist/components/molecules/SkeletonList/index.mobile.js +0 -1
  313. package/dist/components/native/BottomTabs.mobile.js +0 -1
  314. package/dist/components/native/FlatListScreen.mobile.js +0 -1
  315. package/dist/components/native/SheetMenu.mobile.js +0 -1
  316. package/dist/components/organisms/AppHeader.mobile.js +0 -1
  317. package/dist/components/organisms/EmptyDataList.mobile.js +0 -1
  318. package/dist/components/organisms/Header.mobile.js +0 -1
  319. package/dist/components/organisms/ListTablePage.mobile.js +0 -1
  320. package/dist/components/organisms/PageHeaderResponsive.mobile.js +0 -1
  321. package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +0 -1
  322. package/dist/components/visualization/ComparisonView.mobile.js +0 -1
  323. package/dist/components/visualization/TimelineView.mobile.js +0 -1
  324. package/dist/components/visualization/VisualizationCard.mobile.js +0 -1
  325. package/dist/components/visualization/VisualizationGrid.mobile.js +0 -1
  326. package/dist/components/visualization/VisualizationRenderer.mobile.js +0 -1
  327. package/dist/platform/useColorScheme.mobile.js +0 -1
  328. package/dist/platform/useReducedMotion.mobile.js +0 -1
  329. package/dist/platform/useResponsive.mobile.js +0 -1
  330. /package/dist/components/agent/{ApprovalQueue.mobile.d.ts → ApprovalQueue.native.d.ts} +0 -0
  331. /package/dist/components/atoms/{Button.mobile.d.ts → Button.native.d.ts} +0 -0
  332. /package/dist/components/atoms/{Cta.mobile.d.ts → Cta.native.d.ts} +0 -0
  333. /package/dist/components/atoms/{ErrorState.mobile.d.ts → ErrorState.native.d.ts} +0 -0
  334. /package/dist/components/atoms/{Input.mobile.d.ts → Input.native.d.ts} +0 -0
  335. /package/dist/components/atoms/{LoaderCircular.mobile.d.ts → LoaderCircular.native.d.ts} +0 -0
  336. /package/dist/components/atoms/{Textarea.mobile.d.ts → Textarea.native.d.ts} +0 -0
  337. /package/dist/components/data-table/{DataTable.mobile.d.ts → DataTable.native.d.ts} +0 -0
  338. /package/dist/components/data-table/{DataTableToolbar.mobile.d.ts → DataTableToolbar.native.d.ts} +0 -0
  339. /package/dist/components/data-view/{DataViewTable.mobile.d.ts → DataViewTable.native.d.ts} +0 -0
  340. /package/dist/components/forms/controls/{Autocomplete.mobile.d.ts → Autocomplete.native.d.ts} +0 -0
  341. /package/dist/components/forms/controls/{ChoiceControls.mobile.d.ts → ChoiceControls.native.d.ts} +0 -0
  342. /package/dist/components/forms/controls/{Combobox.mobile.d.ts → Combobox.native.d.ts} +0 -0
  343. /package/dist/components/forms/controls/{DateTimeControls.mobile.d.ts → DateTimeControls.native.d.ts} +0 -0
  344. /package/dist/components/forms/controls/{DropdownMenu.mobile.d.ts → DropdownMenu.native.d.ts} +0 -0
  345. /package/dist/components/forms/controls/{Field.mobile.d.ts → Field.native.d.ts} +0 -0
  346. /package/dist/components/forms/controls/{InputGroup.mobile.d.ts → InputGroup.native.d.ts} +0 -0
  347. /package/dist/components/forms/controls/{InputOTP.mobile.d.ts → InputOTP.native.d.ts} +0 -0
  348. /package/dist/components/forms/controls/{LoadingButton.mobile.d.ts → LoadingButton.native.d.ts} +0 -0
  349. /package/dist/components/forms/controls/{NativeSelect.mobile.d.ts → NativeSelect.native.d.ts} +0 -0
  350. /package/dist/components/forms/controls/{Select.mobile.d.ts → Select.native.d.ts} +0 -0
  351. /package/dist/components/layout/{Stack.mobile.d.ts → Stack.native.d.ts} +0 -0
  352. /package/dist/components/molecules/{FiltersToolbar.mobile.d.ts → FiltersToolbar.native.d.ts} +0 -0
  353. /package/dist/components/molecules/{LoaderBlock.mobile.d.ts → LoaderBlock.native.d.ts} +0 -0
  354. /package/dist/components/molecules/SkeletonBlock/{index.mobile.d.ts → index.native.d.ts} +0 -0
  355. /package/dist/components/molecules/SkeletonCircle/{index.mobile.d.ts → index.native.d.ts} +0 -0
  356. /package/dist/components/molecules/SkeletonList/{index.mobile.d.ts → index.native.d.ts} +0 -0
  357. /package/dist/components/native/{BottomTabs.mobile.d.ts → BottomTabs.native.d.ts} +0 -0
  358. /package/dist/components/native/{FlatListScreen.mobile.d.ts → FlatListScreen.native.d.ts} +0 -0
  359. /package/dist/components/native/{SheetMenu.mobile.d.ts → SheetMenu.native.d.ts} +0 -0
  360. /package/dist/components/organisms/{AppSidebar.mobile.d.ts → AppSidebar.native.d.ts} +0 -0
  361. /package/dist/components/organisms/{EmptyDataList.mobile.d.ts → EmptyDataList.native.d.ts} +0 -0
  362. /package/dist/components/organisms/{Header.mobile.d.ts → Header.native.d.ts} +0 -0
  363. /package/dist/components/organisms/{ListTablePage.mobile.d.ts → ListTablePage.native.d.ts} +0 -0
  364. /package/dist/components/organisms/{PageHeaderResponsive.mobile.d.ts → PageHeaderResponsive.native.d.ts} +0 -0
  365. /package/dist/components/templates/lists/ListPageTemplate/{index.mobile.d.ts → index.native.d.ts} +0 -0
  366. /package/dist/components/visualization/{ComparisonView.mobile.d.ts → ComparisonView.native.d.ts} +0 -0
  367. /package/dist/components/visualization/{TimelineView.mobile.d.ts → TimelineView.native.d.ts} +0 -0
  368. /package/dist/components/visualization/{VisualizationCard.mobile.d.ts → VisualizationCard.native.d.ts} +0 -0
  369. /package/dist/components/visualization/{VisualizationGrid.mobile.d.ts → VisualizationGrid.native.d.ts} +0 -0
  370. /package/dist/components/visualization/{VisualizationRenderer.mobile.d.ts → VisualizationRenderer.native.d.ts} +0 -0
  371. /package/dist/{browser/components/agent/ApprovalQueue.mobile.js → native/components/agent/ApprovalQueue.native.js} +0 -0
  372. /package/dist/{browser/components/atoms/Button.mobile.js → native/components/atoms/Button.native.js} +0 -0
  373. /package/dist/{browser/components/atoms/Cta.mobile.js → native/components/atoms/Cta.native.js} +0 -0
  374. /package/dist/{browser/components/atoms/Input.mobile.js → native/components/atoms/Input.native.js} +0 -0
  375. /package/dist/{browser/components/atoms/LoaderCircular.mobile.js → native/components/atoms/LoaderCircular.native.js} +0 -0
  376. /package/dist/{browser/components/atoms/Textarea.mobile.js → native/components/atoms/Textarea.native.js} +0 -0
  377. /package/dist/{browser/components/data-table/DataTable.mobile.js → native/components/data-table/DataTable.native.js} +0 -0
  378. /package/dist/{browser/components/data-view/DataViewTable.mobile.js → native/components/data-view/DataViewTable.native.js} +0 -0
  379. /package/dist/{browser/components/forms/controls/Autocomplete.mobile.js → native/components/forms/controls/Autocomplete.native.js} +0 -0
  380. /package/dist/{browser/components/forms/controls/ChoiceControls.mobile.js → native/components/forms/controls/ChoiceControls.native.js} +0 -0
  381. /package/dist/{browser/components/forms/controls/Combobox.mobile.js → native/components/forms/controls/Combobox.native.js} +0 -0
  382. /package/dist/{browser/components/forms/controls/DateTimeControls.mobile.js → native/components/forms/controls/DateTimeControls.native.js} +0 -0
  383. /package/dist/{browser/components/forms/controls/DropdownMenu.mobile.js → native/components/forms/controls/DropdownMenu.native.js} +0 -0
  384. /package/dist/{browser/components/forms/controls/Field.mobile.js → native/components/forms/controls/Field.native.js} +0 -0
  385. /package/dist/{browser/components/forms/controls/InputGroup.mobile.js → native/components/forms/controls/InputGroup.native.js} +0 -0
  386. /package/dist/{browser/components/forms/controls/InputOTP.mobile.js → native/components/forms/controls/InputOTP.native.js} +0 -0
  387. /package/dist/{browser/components/forms/controls/LoadingButton.mobile.js → native/components/forms/controls/LoadingButton.native.js} +0 -0
  388. /package/dist/{browser/components/forms/controls/NativeSelect.mobile.js → native/components/forms/controls/NativeSelect.native.js} +0 -0
  389. /package/dist/{browser/components/forms/controls/Select.mobile.js → native/components/forms/controls/Select.native.js} +0 -0
  390. /package/dist/{browser/components/layout/Stack.mobile.js → native/components/layout/Stack.native.js} +0 -0
  391. /package/dist/{browser/components/organisms/AppSidebar.mobile.js → native/components/molecules/CodeBlock/types.js} +0 -0
  392. /package/dist/{components/organisms/AppSidebar.mobile.js → native/components/molecules/CommandTabs/types.js} +0 -0
  393. /package/dist/{browser/components/molecules/SkeletonBlock/index.mobile.js → native/components/molecules/SkeletonBlock/index.native.js} +0 -0
  394. /package/dist/{browser/components/molecules/SkeletonCircle/index.mobile.js → native/components/molecules/SkeletonCircle/index.native.js} +0 -0
  395. /package/dist/{browser/components/molecules/SkeletonList/index.mobile.js → native/components/molecules/SkeletonList/index.native.js} +0 -0
  396. /package/dist/{browser/components/native/BottomTabs.mobile.js → native/components/native/BottomTabs.native.js} +0 -0
  397. /package/dist/{browser/components/native/FlatListScreen.mobile.js → native/components/native/FlatListScreen.native.js} +0 -0
  398. /package/dist/{browser/components/native/SheetMenu.mobile.js → native/components/native/SheetMenu.native.js} +0 -0
  399. /package/dist/{browser/components/organisms/EmptyDataList.mobile.js → native/components/organisms/EmptyDataList.native.js} +0 -0
  400. /package/dist/{browser/components/organisms/Header.mobile.js → native/components/organisms/Header.native.js} +0 -0
  401. /package/dist/{browser/components/organisms/ListTablePage.mobile.js → native/components/organisms/ListTablePage.native.js} +0 -0
  402. /package/dist/{browser/components/visualization/VisualizationGrid.mobile.js → native/components/visualization/VisualizationGrid.native.js} +0 -0
  403. /package/dist/{browser/components/visualization/VisualizationRenderer.mobile.js → native/components/visualization/VisualizationRenderer.native.js} +0 -0
  404. /package/dist/{browser/platform/useColorScheme.mobile.js → native/platform/useColorScheme.native.js} +0 -0
  405. /package/dist/{browser/platform/useReducedMotion.mobile.js → native/platform/useReducedMotion.native.js} +0 -0
  406. /package/dist/{browser/platform/useResponsive.mobile.js → native/platform/useResponsive.native.js} +0 -0
  407. /package/dist/platform/{useColorScheme.mobile.d.ts → useColorScheme.native.d.ts} +0 -0
  408. /package/dist/platform/{useReducedMotion.mobile.d.ts → useReducedMotion.native.d.ts} +0 -0
  409. /package/dist/platform/{useResponsive.mobile.d.ts → useResponsive.native.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ import{jsx as C,Fragment as Q}from"react/jsx-runtime";import{useVisualizationModel as L}from"@contractspec/lib.presentation-runtime-react";import{Visualization as O}from"@contractspec/lib.ui-kit-web/ui/visualization";export function VisualizationRenderer({spec:E,data:G,className:H,height:I,emptyState:B,onDataPointPress:J}){const A=L({spec:E,data:G});if(!(A.metric?.value!=null||A.series.some((K)=>K.points.length>0)||A.table.rows.length>0)&&B)return C(Q,{children:B});return C(O,{className:H,height:I,model:A,onDataPointPress:J})}
File without changes
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export*from"./components/forms/controls";
@@ -0,0 +1 @@
1
+ import{defineFeature as g}from"@contractspec/lib.contracts-spec/features";export const DesignSystemFeature=g({meta:{key:"libs.design-system",version:"1.0.0",title:"Design System",description:"Design tokens and theming primitives",domain:"design-system",owners:["@contractspec-core"],tags:["package","libs","design-system"],stability:"experimental"}});
@@ -0,0 +1 @@
1
+ export*from"./components/forms";
@@ -0,0 +1 @@
1
+ import{createInitialListFilters as N,sanitizeListUserFilters as _}from"@contractspec/lib.presentation-runtime-core";import*as Q from"react";export function useListUrlState({defaults:E,paramKeys:h={q:"q",page:"page",limit:"limit",sort:"sort",filters:"f"},replaceState:$=!0,filterScope:J}){const Y=Q.useMemo(()=>({...N(J),..._(E.filters,J)}),[E.filters,J]),Z=Q.useCallback(()=>{if(typeof window>"u")return E;const A=new URL(window.location.href).searchParams,V=(X,M)=>{const H=X?Number(X):NaN;return Number.isFinite(H)&&H>0?H:M},C=A.get(h.filters);let B=E.filters;if(C)try{B=_(JSON.parse(C),J)}catch{B=Y}else B=Y;return{q:A.get(h.q)??E.q,page:V(A.get(h.page),E.page),limit:V(A.get(h.limit),E.limit),sort:A.get(h.sort),filters:B}},[Y,E,J,h]),[T,b]=Q.useState(Z),W=Q.useCallback((G)=>{if(typeof window>"u")return;const A=new URL(window.location.href),V=A.searchParams,C={...T,...G,filters:_(G.filters??T.filters,J)},B=(M,H)=>{if(H==null||H===""||H==="null")V.delete(M);else V.set(M,H)};B(h.q,C.q||null);B(h.page,String(C.page));B(h.limit,String(C.limit));B(h.sort,C.sort??null);try{const M=JSON.stringify(C.filters??{});B(h.filters,M==="{}"?null:M)}catch{}const X=`${A.pathname}?${V.toString()}${A.hash}`;if($)window.history.replaceState({},"",X);else window.history.pushState({},"",X);b(C)},[J,T,h,$]),I=Q.useCallback((G,A)=>{W({filters:{...T.filters,[G]:A}})},[T.filters,W]),j=Q.useCallback(()=>{W({filters:{},page:1})},[W]);Q.useEffect(()=>{const G=()=>b(Z());window.addEventListener("popstate",G);return()=>window.removeEventListener("popstate",G)},[Z]);return{state:T,setState:W,setFilter:I,clearFilters:j}}
@@ -0,0 +1 @@
1
+ import{jsx as g}from"react/jsx-runtime";import*as a from"react";const l=a.createContext(void 0);export function DesignSystemTranslationProvider({children:e,resolver:n}){return g(l.Provider,{value:n,children:e})}export function useDesignSystemTranslation(){return a.useContext(l)}export function resolveTranslationString(e,n){if(!e)return e;return n?.(e)??e}export function resolveTranslationNode(e,n){return typeof e==="string"?resolveTranslationString(e,n):e}export function createTranslationResolver({registry:e,locale:n,fallbackLocale:o,specKeys:c=[]}){return(i)=>{const r=i.match(/^([^:]+)::(.+)$/);if(r?.[1]&&r[2]){const[,s,t]=r;return e.getWithFallback(s,t,n,o)?.message.value}for(const s of c){const t=e.getWithFallback(s,i,n,o);if(t)return t.message.value}return}}
@@ -0,0 +1 @@
1
+ export{AgentMonitor}from"./components/agent/AgentMonitor";export{ApprovalQueue}from"./components/agent/ApprovalQueue";export{DeleteButton,EditButton,ToggleButton,ToggleLeftButton,ToggleRightButton,ViewButton}from"./components/atoms/ActionButtons";export{Button}from"./components/atoms/Button";export{ButtonLink}from"./components/atoms/ButtonLink";export{Cta}from"./components/atoms/Cta";export{DateChip,DurationChip,PlaceChip,TimeChip}from"./components/atoms/DataChips";export{EmptyState}from"./components/atoms/EmptyState";export{ErrorState}from"./components/atoms/ErrorState";export{Input}from"./components/atoms/Input";export{InputPassword}from"./components/atoms/InputPassword";export{Link}from"./components/atoms/Link";export{LoaderCircular}from"./components/atoms/LoaderCircular";export{NavBrand}from"./components/atoms/NavBrand";export{RankBadge}from"./components/atoms/RankBadge";export{ScoreBar}from"./components/atoms/ScoreBar";export{Stepper}from"./components/atoms/Stepper";export{Textarea}from"./components/atoms/Textarea";export{DataTable}from"./components/data-table/DataTable";export{DataTableToolbar}from"./components/data-table/DataTableToolbar";export{DataViewDetail}from"./components/data-view/DataViewDetail";export{DataViewList}from"./components/data-view/DataViewList";export{DataViewRenderer}from"./components/data-view/DataViewRenderer";export{DataViewTable}from"./components/data-view/DataViewTable";export*from"./components/forms";export*from"./components/layout";export{DefinitionList}from"./components/legal/atoms/DefinitionList";export{KeyValueList}from"./components/legal/atoms/KeyValueList";export{LegalCallout}from"./components/legal/atoms/LegalCallout";export{LegalHeading}from"./components/legal/atoms/LegalHeading";export{LegalList}from"./components/legal/atoms/LegalList";export{LegalSection}from"./components/legal/atoms/LegalSection";export{LegalText}from"./components/legal/atoms/LegalText";export{ConsentItem,ConsentList}from"./components/legal/molecules/Consent";export{ContactFields}from"./components/legal/molecules/ContactFields";export{LegalMeta}from"./components/legal/molecules/LegalMeta";export{LegalTOC}from"./components/legal/molecules/LegalTOC";export*from"./components/legal/organisms/ContactForm";export*from"./components/legal/organisms/GDPRDataRequest";export*from"./components/legal/organisms/GDPRRights";export*from"./components/legal/organisms/LegalPageLayout";export{ContactTemplate}from"./components/legal/templates/ContactTemplate";export{CookiesTemplate}from"./components/legal/templates/CookiesTemplate";export{PrivacyTemplate}from"./components/legal/templates/PrivacyTemplate";export{SalesTermsTemplate}from"./components/legal/templates/SalesTermsTemplate";export{TermsTemplate}from"./components/legal/templates/TermsTemplate";export{List,ListItem}from"./components/list";export{MarketingCard,MarketingCardContent,MarketingCardDescription,MarketingCardHeader,MarketingCardTitle}from"./components/marketing/MarketingCard";export{MarketingCardsSection}from"./components/marketing/MarketingCardsSection";export{MarketingComparisonSection}from"./components/marketing/MarketingComparisonSection";export{MarketingIconCard}from"./components/marketing/MarketingIconCard";export{MarketingSection}from"./components/marketing/MarketingSection";export{MarketingStepCard}from"./components/marketing/MarketingStepCard";export{AiLinkButton}from"./components/molecules/AiLinkButton";export{Breadcrumbs}from"./components/molecules/Breadcrumbs";export{CodeBlock}from"./components/molecules/CodeBlock";export{CommandPalette}from"./components/molecules/CommandPalette";export{CommandSearchTrigger}from"./components/molecules/CommandSearchTrigger";export{CommandTabs}from"./components/molecules/CommandTabs";export{CopyButton}from"./components/molecules/CopyButton";export{DimensionScoresCard}from"./components/molecules/DimensionScoresCard";export{EntityCard}from"./components/molecules/EntityCard";export{FiltersToolbar}from"./components/molecules/FiltersToolbar";export{HoverPreview}from"./components/molecules/HoverPreview";export{HoverPreviewDoc}from"./components/molecules/hover-previews/Doc";export{HoverPreviewMedia}from"./components/molecules/hover-previews/Media";export{HoverPreviewSimple}from"./components/molecules/hover-previews/Simple";export{HoverPreviewStats}from"./components/molecules/hover-previews/Stats";export{HoverPreviewUser}from"./components/molecules/hover-previews/User";export{InstallCommand}from"./components/molecules/InstallCommand";export{LangSwitch}from"./components/molecules/LangSwitch";export{LoaderBlock}from"./components/molecules/LoaderBlock";export{MarkdownRenderer}from"./components/molecules/MarkdownRenderer";export{NavMain}from"./components/molecules/NavMain";export{NavUser}from"./components/molecules/NavUser";export{OverviewCard}from"./components/molecules/OverviewCard";export{SkeletonBlock}from"./components/molecules/SkeletonBlock";export{SkeletonCircle}from"./components/molecules/SkeletonCircle";export{SkeletonList}from"./components/molecules/SkeletonList";export{StatCard,StatCardGroup}from"./components/molecules/StatCard";export{StatusChip}from"./components/molecules/StatusChip";export{Tabs,TabsContent,TabsList,TabsTrigger}from"./components/molecules/Tabs";export{AcademyLayout}from"./components/organisms/AcademyLayout";export{AppHeader}from"./components/organisms/AppHeader";export{AppLayout}from"./components/organisms/AppLayout";export{AppSidebar}from"./components/organisms/AppSidebar";export{EmptyDataList}from"./components/organisms/EmptyDataList";export{EmptySearchResult}from"./components/organisms/EmptySearchResult";export{FAQSection}from"./components/organisms/FAQSection";export{FeatureCarousel}from"./components/organisms/FeatureCarousel";export{FeaturesSection}from"./components/organisms/FeaturesSection";export{Footer}from"./components/organisms/Footer";export{DesktopHeader,Header,MobileHeader}from"./components/organisms/Header";export{HeroResponsive}from"./components/organisms/HeroResponsive";export{HeroSection}from"./components/organisms/HeroSection";export{ListCardPage}from"./components/organisms/ListCardPage";export{ListGridPage}from"./components/organisms/ListGridPage";export{ListPageResponsive}from"./components/organisms/ListPageResponsive";export{ListTablePage}from"./components/organisms/ListTablePage";export{MarketingHeader}from"./components/organisms/MarketingHeader";export{MarketingHeaderDesktop}from"./components/organisms/MarketingHeaderDesktop";export{MarketingHeaderMobile}from"./components/organisms/MarketingHeaderMobile";export{MarketingLayout}from"./components/organisms/MarketingLayout";export{ModelComparisonView}from"./components/organisms/ModelComparisonView";export{PageHeaderResponsive}from"./components/organisms/PageHeaderResponsive";export{PricingCarousel}from"./components/organisms/PricingCarousel";export{PricingSection}from"./components/organisms/PricingSection";export{TestimonialCarousel}from"./components/organisms/TestimonialCarousel";export{PackageManagerProvider,usePackageManager}from"./components/providers/PackageManagerProvider";export{ListPageTemplate}from"./components/templates/lists/ListPageTemplate";export{BlockQuote,Code,H1,H2,H3,H4,Large,Lead,Muted,P,Small,Text}from"./components/typography";export{ComparisonView}from"./components/visualization/ComparisonView";export{TimelineView}from"./components/visualization/TimelineView";export{VisualizationCard}from"./components/visualization/VisualizationCard";export{VisualizationGrid}from"./components/visualization/VisualizationGrid";export{VisualizationRenderer}from"./components/visualization/VisualizationRenderer";export*from"./design-system.feature";export{useListUrlState}from"./hooks/useListUrlState";export*from"./i18n/translation";export{useColorScheme}from"./platform/useColorScheme";export{useReducedMotion}from"./platform/useReducedMotion";export{useResponsive}from"./platform/useResponsive";export*from"./platform/withPlatformUI";export*from"./renderers";export*from"./theme";export*from"./types/navigation";
@@ -0,0 +1 @@
1
+ export*from"./components/layout";
@@ -0,0 +1 @@
1
+ function w(h){if(!h)return;switch(h){case"email":return"email";case"url":return"url";case"username":return"username";case"new-password":return"new-password";case"current-password":return"password";case"one-time-code":return"otp";case"tel":case"tel-country-code":case"tel-national":case"tel-area-code":case"tel-local":case"tel-local-prefix":case"tel-local-suffix":case"tel-extension":return"tel";case"postal-code":case"cc-number":case"cc-csc":case"bday-day":case"bday-month":case"bday-year":return"int";case"cc-exp":case"cc-exp-month":case"cc-exp-year":return"numbers-and-punctuation";case"bday":return"date";default:return"text"}}function x(h,j){if(!j)return;if(["name","given-name","additional-name","family-name","honorific-prefix","honorific-suffix","nickname","organization","organization-title","cc-name","cc-given-name","cc-additional-name","cc-family-name"].includes(j))h.autoCapitalize="words";if(["username","new-password","current-password","one-time-code","email","url"].includes(j))h.autoCapitalize="none"}function z(h,j){if(!j)return;const q={name:"name","given-name":"givenName","additional-name":"middleName","family-name":"familyName",username:"username","current-password":"password","new-password":"newPassword",email:"emailAddress",url:"URL",tel:"telephoneNumber","address-line1":"streetAddressLine1","address-line2":"streetAddressLine2","postal-code":"postalCode",organization:"organizationName","organization-title":"jobTitle","one-time-code":"oneTimeCode"}[j];if(q)h.textContentType=q;if(["name","given-name","additional-name","family-name","honorific-prefix","honorific-suffix","nickname","organization","organization-title","cc-name","cc-given-name","cc-additional-name","cc-family-name"].includes(j))h.autoCapitalize="words";if(["username","new-password","current-password","one-time-code","email","url"].includes(j))h.autoCapitalize="none"}export function mapKeyboardToWeb(h){const j=h?.kind??w(h?.autoComplete)??"text",g={};switch(j){case"password":g.type="password";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"current-password";if(h?.autoCorrect!=null)g.autoCorrect=h.autoCorrect;break;case"new-password":g.type="password";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"new-password";if(h?.autoCorrect!=null)g.autoCorrect=h.autoCorrect;break;case"username":g.type="text";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"username";break;case"email":g.type="email";g.inputMode="email";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"email";break;case"url":g.type="url";g.inputMode="url";g.autoComplete=h?.autoComplete??"url";break;case"search":g.type="search";g.inputMode="search";g.enterKeyHint=h?.enterKeyHint??"search";g.autoComplete=h?.autoComplete??"off";break;case"phone":case"tel":g.type="tel";g.inputMode="tel";g.autoComplete=h?.autoComplete??"tel";break;case"number":case"int":g.type="text";g.inputMode="numeric";g.pattern="[0-9]*";break;case"decimal":g.type="text";g.inputMode="decimal";g.step="any";break;case"numbers-and-punctuation":g.type="text";g.inputMode="text";g.pattern="[0-9.,-]*";break;case"otp":g.type="text";g.inputMode="numeric";g.autoComplete=h?.autoComplete??"one-time-code";g.autoCapitalize="none";break;case"name":g.type="text";g.autoComplete=h?.autoComplete??"name";g.autoCapitalize=h?.autoCapitalize??"words";break;case"given-name":g.type="text";g.autoComplete=h?.autoComplete??"given-name";g.autoCapitalize=h?.autoCapitalize??"words";break;case"family-name":g.type="text";g.autoComplete=h?.autoComplete??"family-name";g.autoCapitalize=h?.autoCapitalize??"words";break;case"address-line1":g.type="text";g.autoComplete=h?.autoComplete??"address-line1";break;case"address-line2":g.type="text";g.autoComplete=h?.autoComplete??"address-line2";break;case"postal-code":g.type="text";g.inputMode="numeric";g.pattern="[0-9]*";g.autoComplete=h?.autoComplete??"postal-code";break;case"cc-number":g.type="text";g.inputMode="numeric";g.pattern="[0-9]*";g.autoComplete=h?.autoComplete??"cc-number";break;case"cc-exp":g.type="text";g.inputMode="numeric";g.pattern="[0-9/]*";g.autoComplete=h?.autoComplete??"cc-exp";break;case"cc-csc":g.type="text";g.inputMode="numeric";g.pattern="[0-9]*";g.autoComplete=h?.autoComplete??"cc-csc";break;case"off":g.type="text";g.autoComplete="off";break;case"date":g.type="date";g.inputMode="date";g.pattern="[0-9./-]*";break;default:g.type="text";break}if(h?.autoCapitalize)g.autoCapitalize=h.autoCapitalize;if(h?.autoComplete)g.autoComplete=h.autoComplete;if(h?.autoCorrect!=null)g.autoCorrect=h.autoCorrect;if(h?.enterKeyHint)g.enterKeyHint=h.enterKeyHint;x(g,h?.autoComplete);return g}export function mapKeyboardToNative(h){const j=h?.kind??w(h?.autoComplete)??"text",g={};switch(j){case"password":g.secureTextEntry=!0;g.textContentType="password";g.keyboardType="default";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"password";break;case"new-password":g.secureTextEntry=!0;g.textContentType="newPassword";g.keyboardType="default";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"new-password";break;case"username":g.textContentType="username";g.keyboardType="default";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"username";break;case"email":g.keyboardType="email-address";g.textContentType="emailAddress";g.autoCapitalize="none";g.autoComplete=h?.autoComplete??"email";break;case"url":g.keyboardType="url";g.textContentType="URL";g.autoComplete=h?.autoComplete??"url";break;case"search":g.keyboardType="default";g.returnKeyType="search";g.autoComplete=h?.autoComplete??"off";break;case"phone":case"tel":g.keyboardType="phone-pad";g.textContentType="telephoneNumber";g.autoComplete=h?.autoComplete??"tel";break;case"number":case"int":g.keyboardType="number-pad";break;case"decimal":g.keyboardType="decimal-pad";break;case"numbers-and-punctuation":g.keyboardType="numbers-and-punctuation";break;case"otp":g.keyboardType="number-pad";g.textContentType="oneTimeCode";g.autoComplete=h?.autoComplete??"one-time-code";g.autoCapitalize="none";break;case"name":g.textContentType="name";g.autoCapitalize="words";g.autoComplete=h?.autoComplete??"name";break;case"given-name":g.textContentType="givenName";g.autoCapitalize="words";g.autoComplete=h?.autoComplete??"given-name";break;case"family-name":g.textContentType="familyName";g.autoCapitalize="words";g.autoComplete=h?.autoComplete??"family-name";break;case"address-line1":g.textContentType="streetAddressLine1";g.autoComplete=h?.autoComplete??"address-line1";break;case"address-line2":g.textContentType="streetAddressLine2";g.autoComplete=h?.autoComplete??"address-line2";break;case"postal-code":g.keyboardType="numbers-and-punctuation";g.textContentType="postalCode";g.autoComplete=h?.autoComplete??"postal-code";break;case"cc-number":g.keyboardType="number-pad";g.textContentType="creditCardNumber";g.autoComplete=h?.autoComplete??"cc-number";break;case"cc-exp":g.keyboardType="numbers-and-punctuation";g.autoComplete=h?.autoComplete??"cc-exp";break;case"cc-csc":g.keyboardType="number-pad";g.autoComplete=h?.autoComplete??"cc-csc";break;case"off":g.autoComplete="off";break;case"date":g.keyboardType="default";break;default:g.keyboardType="default";break}if(h?.autoCapitalize)g.autoCapitalize=h.autoCapitalize;if(h?.autoCorrect!=null)g.autoCorrect=h.autoCorrect;if(h?.enterKeyHint){const q={enter:"default",done:"done",go:"go",next:"next",search:"search",send:"send"};g.returnKeyType=q[h.enterKeyHint]??"default"}z(g,h?.autoComplete);return g}
@@ -0,0 +1 @@
1
+ import{clsx as e}from"clsx";import{twMerge as t}from"tailwind-merge";export function cn(...r){return t(e(r))}
@@ -0,0 +1 @@
1
+ export*from"./components/list";
@@ -0,0 +1 @@
1
+ import*as o from"react";export function useColorScheme(){const[r,c]=o.useState("light");o.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>c(e.matches?"dark":"light");t();e.addEventListener?.("change",t);return()=>e.removeEventListener?.("change",t)},[]);return r}
@@ -0,0 +1 @@
1
+ import*as n from"react";export function useReducedMotion(){const[d,c]=n.useState(!1);n.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>c(e.matches);t();e.addEventListener?.("change",t);return()=>e.removeEventListener?.("change",t)},[]);return d}
@@ -0,0 +1 @@
1
+ import*as t from"react";const u={sm:640,md:768,lg:1024,xl:1280};export function useResponsive(s){const e=t.useMemo(()=>({...u,...s}),[s]),[n,d]=t.useState(typeof window<"u"?window.innerWidth:e.md);t.useEffect(()=>{if(typeof window>"u")return;const r=()=>d(window.innerWidth);window.addEventListener("resize",r);return()=>window.removeEventListener("resize",r)},[]);const i=n>=e.sm,m=n>=e.md,o=n>=e.lg,c=n>=e.xl;return{width:n,breakpoints:e,isSM:i,isMD:m,isLG:o,isXL:c,screen:o?"desktop":i?"tablet":"mobile"}}
@@ -0,0 +1 @@
1
+ export const DEFAULT_BREAKPOINTS={sm:640,md:768,lg:1024,xl:1280};export function withPlatformUI(j){const q=j.platform??"web",y={...DEFAULT_BREAKPOINTS,...j.breakpoints};return{platform:q,tokens:j.tokens,breakpoints:y}}
@@ -0,0 +1 @@
1
+ import{shadcnDriver as j}from"@contractspec/lib.contracts-runtime-client-react/drivers/shadcn";import{createFormRenderer as q}from"@contractspec/lib.contracts-runtime-client-react/form-render";import{Autocomplete as z}from"../../components/forms/controls/Autocomplete";import{Checkbox as H,RadioGroup as J,Switch as K}from"../../components/forms/controls/ChoiceControls";import{DatePicker as M,DateTimePicker as N,TimePicker as O}from"../../components/forms/controls/DateTimeControls";import{FieldContent as Q,FieldGroup as U,FieldLegend as V,FieldSet as X,Field as Y,InputGroup as Z,InputGroupAddon as _}from"../../components/forms/controls/Field";import{Select as $}from"../../components/forms/controls/Select";import{AddressField as g,PhoneField as v}from"./rich-fields";import{Actions as B,FieldArray as E,FieldArrayItem as W,FormRoot as b,InputGroupIcon as f,TranslatedButton as w,TranslatedFieldDescription as y,TranslatedFieldError as C,TranslatedFieldLabel as L,TranslatedInput as R,TranslatedInputGroupInput as k,TranslatedInputGroupText as x,TranslatedInputGroupTextarea as D,TranslatedPasswordInput as S,TranslatedTextarea as P}from"./shell";export const formRenderer=q({submitMode:"button",driver:j({FormRoot:b,Field:Y,FieldLabel:L,FieldDescription:y,FieldError:C,FieldContent:Q,FieldGroup:U,FieldSet:X,FieldLegend:V,FieldArray:E,FieldArrayItem:W,Actions:B,Input:R,PasswordInput:S,Textarea:P,InputGroup:Z,InputGroupAddon:_,InputGroupInput:k,InputGroupTextarea:D,InputGroupText:x,InputGroupIcon:f,Select:$,Checkbox:H,RadioGroup:J,Switch:K,Autocomplete:z,AddressField:g,PhoneField:v,DateField:M,TimeField:O,DateTimeField:N,Button:w})});
@@ -0,0 +1 @@
1
+ import{jsx as q,jsxs as Z}from"react/jsx-runtime";import{Input as D}from"../../components/atoms/Input";import{Select as Q}from"../../components/forms/controls/Select";import{VStack as U}from"../../components/layout/Stack";import{inputValue as G,optionValue as W}from"../../components/primitives/control";import{useTranslatedText as Y}from"../../components/primitives/themed";import{FORM_FALLBACK_TEXT as H,updateAddress as J,updatePhone as N}from"./values";export const AddressField=(b)=>{const z=Y();return Z(U,{gap:"sm",children:[q(D,{value:b.value?.line1??"",onChange:(g)=>b.onChange?.(J(b.value,"line1",G(g))),placeholder:z(b.parts?.placeholdersI18n?.line1??H.addressLine1),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.line2??"",onChange:(g)=>b.onChange?.(J(b.value,"line2",G(g))),placeholder:z(b.parts?.placeholdersI18n?.line2??H.addressLine2),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.city??"",onChange:(g)=>b.onChange?.(J(b.value,"city",G(g))),placeholder:z(b.parts?.placeholdersI18n?.city??H.city),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.region??"",onChange:(g)=>b.onChange?.(J(b.value,"region",G(g))),placeholder:z(b.parts?.placeholdersI18n?.region??H.region),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.postalCode??"",onChange:(g)=>b.onChange?.(J(b.value,"postalCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.postalCode??H.postalCode),readOnly:b.readOnly,disabled:b.disabled}),b.countryOptions?.length?q(Q,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(J(b.value,"countryCode",W(g))),options:b.countryOptions,disabled:b.disabled||b.readOnly}):q(D,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(J(b.value,"countryCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.countryCode??H.countryCode),readOnly:b.readOnly,disabled:b.disabled})]})},PhoneField=(b)=>{const z=Y();return Z(U,{gap:"sm",children:[b.countryOptions?.length?q(Q,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(N(b.value,"countryCode",W(g))),options:b.countryOptions,disabled:b.disabled||b.readOnly}):q(D,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(N(b.value,"countryCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.countryCode??H.countryCode),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.nationalNumber??"",onChange:(g)=>b.onChange?.(N(b.value,"nationalNumber",G(g))),placeholder:z(b.parts?.placeholdersI18n?.nationalNumber??H.phoneNumber),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.extension??"",onChange:(g)=>b.onChange?.(N(b.value,"extension",G(g))),placeholder:z(b.parts?.placeholdersI18n?.extension??H.extension),readOnly:b.readOnly,disabled:b.disabled})]})};
@@ -0,0 +1 @@
1
+ import{jsx as z}from"react/jsx-runtime";import{CalendarIcon as Y,ClockIcon as Z,InfoIcon as X,MailIcon as $,SearchIcon as v,UserIcon as B}from"lucide-react";import{Button as D}from"../../components/atoms/Button";import{Input as E}from"../../components/atoms/Input";import{InputPassword as H}from"../../components/atoms/InputPassword";import{Textarea as M}from"../../components/atoms/Textarea";import{FieldDescription as U,FieldError as K,FieldLabel as F,InputGroupInput as L,InputGroupText as V,InputGroupTextarea as G}from"../../components/forms/controls/Field";import{HStack as P,VStack as W}from"../../components/layout/Stack";import{useTranslatedNode as J,useTranslatedText as O}from"../../components/primitives/themed";export const TranslatedFieldLabel=(g)=>{const q=J();return z(F,{...g,children:q(g.children)})},TranslatedFieldDescription=(g)=>{const q=J();return z(U,{...g,children:q(g.children)})},TranslatedFieldError=(g)=>{const q=J();return z(K,{...g,children:q(g.children)})},TranslatedInput=(g)=>{const q=O();return z(E,{...g,placeholder:q(g.placeholder)})},TranslatedPasswordInput=(g)=>{const q=O(),{showLabelI18n:A,hideLabelI18n:Q,...R}=g;return z(H,{...R,placeholder:q(g.placeholder),showLabel:q(A??g.showLabel),hideLabel:q(Q??g.hideLabel)})},TranslatedTextarea=(g)=>{const q=O();return z(M,{...g,placeholder:q(g.placeholder)})},TranslatedInputGroupInput=(g)=>{const q=O();return z(L,{...g,placeholder:q(g.placeholder)})},TranslatedInputGroupTextarea=(g)=>{const q=O();return z(G,{...g,placeholder:q(g.placeholder)})},TranslatedInputGroupText=(g)=>{const q=J();return z(V,{...g,children:q(g.children)})};const S={calendar:Y,clock:Z,info:X,mail:$,search:v,user:B};export const InputGroupIcon=({iconKey:g,label:q})=>{const A=S[g]??X;return z(A,{"aria-hidden":q?void 0:!0,"aria-label":q,className:"size-4"})},TranslatedButton=({children:g,onClick:q,onPress:A,...Q})=>{const R=J();return z(D,{...Q,onClick:q?()=>q():void 0,onPress:A??q,children:R(g)})},FormRoot=({children:g,className:q})=>z(W,{gap:"lg",className:q,children:g}),FieldArray=({children:g,className:q})=>z(W,{gap:"md",className:q,children:g}),FieldArrayItem=({children:g,className:q})=>z(W,{gap:"sm",className:q,children:g}),Actions=({children:g,className:q})=>z(P,{gap:"sm",wrap:"wrap",className:q,children:g});
@@ -0,0 +1 @@
1
+ export const FORM_FALLBACK_TEXT={addressLine1:"Address line 1",addressLine2:"Address line 2",city:"City",countryCode:"Country code",extension:"Extension",phoneNumber:"Phone number",postalCode:"Postal code",region:"Region"};export function updateAddress(e,o,n){return{line1:e?.line1??"",line2:e?.line2,city:e?.city,region:e?.region,postalCode:e?.postalCode,countryCode:e?.countryCode,[o]:n}}export function updatePhone(e,o,n){return{countryCode:e?.countryCode??"",nationalNumber:e?.nationalNumber??"",extension:e?.extension,e164:e?.e164,[o]:n}}
@@ -0,0 +1 @@
1
+ export{formRenderer}from"./form-contract/renderer";
@@ -0,0 +1 @@
1
+ export*from"./form-contract";
@@ -0,0 +1 @@
1
+ import{mapTokensForPlatform as f}from"./tokenBridge";import{defaultTokens as T}from"./tokens";function m(e,o){if(!o)return e;const n={...e},t=n;for(const[s,r]of Object.entries(o))if(r?.value!=null)t[s]=r.value;return n}export function mergeThemeTokens(e,o){if(!o)return e;return{...e,colors:m(e.colors,o.colors),radii:m(e.radii,o.radii),space:m(e.space,o.space),typography:m(e.typography,o.typography)}}function a(e,o){if(!o?.targets?.length)return!0;return o.targets.includes(e.target)}export function resolveThemeSpecTokens(e,o,n=T){let t=mergeThemeTokens(n,e.tokens);const s=o?.mode;if(s)t=mergeThemeTokens(t,e.modes?.[s]?.tokens);for(const r of e.overrides??[])if(a(r,o)){t=mergeThemeTokens(t,r.tokens);if(s)t=mergeThemeTokens(t,r.modes?.[s]?.tokens)}return t}export function resolveThemeRefTokens(e,o,n){const t=e.get(o.key,o.version);if(!t)return T;const s=t.meta.extends?resolveThemeRefTokens(e,t.meta.extends,n):T;return resolveThemeSpecTokens(t,n,s)}export function resolveThemeModeTokens(e,o,n,t){if("tokens"in e){const i=e,h=o,c=n,d=t;return resolveThemeSpecTokens(i,{...c,mode:h},d??T)}return resolveThemeRefTokens(e,o,{...t,mode:n})}export function resolvePlatformTheme(e,o,n,t){if("tokens"in e){const i=e,h=o,c=resolveThemeSpecTokens(i,n);return f(h,c)}const s=e,r=o,u=n,l=resolveThemeRefTokens(s,r,t);return f(u,l)}
@@ -0,0 +1 @@
1
+ export*from"./contracts";export*from"./runtime";export*from"./tailwind";export{mapTokensForPlatform}from"./tokenBridge";export*from"./tokens";export*from"./variants";
@@ -0,0 +1 @@
1
+ import{resolveThemeModeTokens as m}from"./contracts";import{themeSpecToCssVariables as u}from"./tailwind";import{defaultTokens as a}from"./tokens";export function resolveRuntimeTokens({tokens:e,theme:n,registry:o,themeRef:t,context:r,mode:s}){if(n)return m(n,s,r,e??a);if(o&&t)return m(o,t,s,r);return e??a}function d(e,n){if(!n?.targets?.length)return!0;return n.targets.includes(e.target)}function c(...e){const n=new Map;for(const o of e)for(const t of o??[]){const r=n.get(t.component);n.set(t.component,{component:t.component,variants:{...r?.variants,...t.variants}})}return n.size?[...n.values()]:void 0}function p(e,n){const o=n?.mode,t=(e.overrides??[]).filter((r)=>d(r,n)).flatMap((r)=>[r.components,o?r.modes?.[o]?.components:void 0]);return c(e.components,o?e.modes?.[o]?.components:void 0,...t)}function f(e,n,o){const t=e.get(n.key,n.version);if(!t)return;const r=t.meta.extends?f(e,t.meta.extends,o):void 0;return c(r,p(t,o))}export function resolveRuntimeComponents({theme:e,registry:n,themeRef:o,context:t}){if(e)return p(e,t);if(n&&o)return f(n,o,t);return}export function resolveRuntimeCssVariables({theme:e,registry:n,themeRef:o,context:t,mode:r}){if(e)return u(e,{context:t}).modes[r];if(n&&o)return u(n,o,{context:t}).modes[r];return}export function componentTokensToCssVars(e){if(!e)return;const n={};for(const[o,t]of Object.entries(e)){const r=t??{};for(const[s,i]of Object.entries(r))if(i?.value!=null)n[`--ds-${T(o)}-${l(s)}`]=i.value}return n}function T(e){if(e==="colors")return"color";if(e==="radii")return"radius";return e}function l(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}
@@ -0,0 +1 @@
1
+ import{jsx as f}from"react/jsx-runtime";import*as s from"react";import{componentTokensToCssVars,resolveRuntimeComponents as C,resolveRuntimeCssVariables as g,resolveRuntimeTokens as v}from"./runtime-resolvers";import{mapTokensForPlatform as x}from"./tokenBridge";const l=s.createContext(void 0);export function DesignSystemThemeProvider({children:r,platform:t="web",tokens:i,theme:e,registry:m,themeRef:p,targets:a,mode:n="light",applyCssVariables:h}){const o=s.useMemo(()=>a?.length?{targets:a,mode:n}:{mode:n},[a,n]),T=s.useMemo(()=>v({tokens:i,theme:e,registry:m,themeRef:p,context:o,mode:n}),[i,e,m,p,o,n]),u=s.useMemo(()=>C({theme:e,registry:m,themeRef:p,context:o}),[e,m,p,o]),c=s.useMemo(()=>g({theme:e,registry:m,themeRef:p,context:o,mode:n}),[e,m,p,o,n]),d=s.useMemo(()=>({platform:t,tokens:T,platformTokens:x(t,T),components:u,mode:n,cssVariables:c,context:o}),[t,T,u,n,c,o]),k=h&&c?f("div",{style:c,children:r}):r;return f(l.Provider,{value:d,children:k})}export function useDesignSystemTheme(){return s.useContext(l)}function S(r,t,i){return r?.find((e)=>e.component===t)?.variants?.[i]}export function useComponentTheme(r,t="default"){const i=useDesignSystemTheme(),e=S(i?.components,r,t);return{props:e?.props??{},tokens:e?.tokens}}export{componentTokensToCssVars};
@@ -0,0 +1 @@
1
+ function n(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}function c(e){const r={};for(const o of Object.keys(e.colors)){if(o.endsWith("Foreground"))continue;const t=n(o),s=`${o}Foreground`,i=`var(--ds-color-${t})`;r[t]=s in e.colors?{DEFAULT:i,foreground:`var(--ds-color-${n(s)})`}:i}return r}export function themeSpecToTailwindTheme(e){return{colors:c(e),borderRadius:Object.fromEntries(Object.keys(e.radii).map((r)=>[n(r),`var(--ds-radius-${n(r)})`])),spacing:Object.fromEntries(Object.keys(e.space).map((r)=>[n(r),`var(--ds-space-${n(r)})`])),fontSize:Object.fromEntries(Object.keys(e.typography).map((r)=>[n(r),`var(--ds-typography-${n(r)})`]))}}export function themeSpecToTailwindPreset(e){return{darkMode:["class"],theme:{extend:themeSpecToTailwindTheme(e)}}}
@@ -0,0 +1,9 @@
1
+ const a=["light","dark"];function n(e,s){const r=Object.entries(s).sort(([t],[i])=>t.localeCompare(i)).map(([t,i])=>` ${t}: ${i};`).join(`
2
+ `);return`${e} {
3
+ ${r}
4
+ }`}function l(e){return Object.assign({},...Object.values(e.modes))}function d(e){if(e.startsWith("--ds-color-"))return`--color-${e.slice(11)}`;if(e.startsWith("--ds-radius-"))return`--radius-${e.slice(12)}`;if(e.startsWith("--ds-space-"))return`--spacing-${e.slice(11)}`;if(e.startsWith("--ds-typography-"))return`--text-${e.slice(16)}`;return}function o(e){return`@theme inline {
5
+ ${Object.keys(l(e)).sort().flatMap((r)=>{const t=d(r);return t?[` ${t}: var(${r});`]:[]}).join(`
6
+ `)}
7
+ }`}export function themeSpecToTailwindCss(e,s={}){return[s.includeCustomVariant?"@custom-variant dark (&:where(.dark, .dark *));":void 0,n(s.rootSelector??":root",e.light),n(s.darkSelector??".dark",e.dark),...Object.entries(e.modes).filter(([t])=>!a.includes(t)).map(([t,i])=>n(`[data-theme="${t}"]`,i)),s.includeTheme===!1?void 0:o(e)].filter(Boolean).join(`
8
+
9
+ `)}
@@ -0,0 +1 @@
1
+ import{resolveThemeModeTokens as T}from"./contracts";const p=["light","dark"];function l(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}function d(e,t){return{...e?.context,targets:e?.targets??e?.context?.targets,mode:t}}function f(e){return typeof e==="number"?`${e}px`:e}function a(e,t){return Object.fromEntries(Object.entries(t).map(([n,i])=>[`--ds-${e}-${l(n)}`,f(i)]))}function u(e){return{...a("color",e.colors),...a("radius",e.radii),...a("space",e.space),...a("typography",e.typography),...a("icon",e.icons)}}function g(e){return Object.keys(e?.modes??{})}function h(e,t,n=new Set){const i=`${t.key}@${t.version}`;if(n.has(i))return[];n.add(i);const s=e.get(t.key,t.version);return[...b(e,s,n),...g(s)]}function b(e,t,n){if(!t?.meta.extends)return[];return h(e,t.meta.extends,n)}function y(e,t,n){const i="tokens"in e?g(e):h(e,t);return Array.from(new Set([...p,...i,...n?.modes??[],...!("tokens"in e)?[]:t?.modes??[]]))}function c(e,t,n,i){if("tokens"in e){const o=t;return T(e,o,d(n,o))}const s=t,r=n;return T(e,s,r,d(i,r))}export function themeSpecToCssVariables(e,t,n){const i="tokens"in e?t:n,s=y(e,t,i),r=Object.fromEntries(s.map((o)=>{const m="tokens"in e?c(e,o,i):c(e,t,o,i);return[o,u(m)]}));return{light:r.light??{},dark:r.dark??{},modes:r}}
@@ -0,0 +1 @@
1
+ export*from"./tailwind-config";export{themeSpecToTailwindCss}from"./tailwind-css";export*from"./tailwind-variables";
@@ -0,0 +1 @@
1
+ import{defaultTokens as y}from"./tokens";export function mapTokensForPlatform(j,b=y){if(j==="web")return b;const{space:q,radii:w,icons:x}=b;return{colors:b.colors,spacing:q,typography:{h1:b.typography.h1,body:b.typography.body},radii:w,icons:x}}
@@ -0,0 +1 @@
1
+ export const defaultTokens={colors:{background:"#ffffff",foreground:"#0a0a0a",muted:"#f4f4f5",mutedForeground:"#71717a",primary:"#0f49a0",primaryForeground:"#ffffff",accent:"#16a34a",accentForeground:"#ffffff",destructive:"#ef4444",destructiveForeground:"#ffffff",border:"#e4e4e7",ring:"#2563eb"},radii:{sm:4,md:8,lg:12,xl:16,full:9999},space:{xs:4,sm:8,md:12,lg:16,xl:24},typography:{h1:30,h2:24,h3:20,body:16,small:14},icons:{sm:16,md:20,lg:24}};
@@ -0,0 +1 @@
1
+ import{cva as b}from"class-variance-authority";export const dsBaseVariants=b("",{variants:{size:{sm:"",md:"",lg:""},density:{compact:"",comfortable:""},tone:{neutral:"",info:"",success:"",warning:"",danger:""},emphasis:{default:"",subtle:"",strong:""}},defaultVariants:{size:"md",density:"comfortable",tone:"neutral",emphasis:"default"}});
File without changes
File without changes
@@ -0,0 +1 @@
1
+ export*from"./components/typography";
@@ -1 +1 @@
1
- import{shadcnDriver as j}from"@contractspec/lib.contracts-runtime-client-react/drivers/shadcn";import{createFormRenderer as q}from"@contractspec/lib.contracts-runtime-client-react/form-render";import{Autocomplete as z}from"../../components/forms/controls/Autocomplete";import{Checkbox as H,RadioGroup as J,Switch as K}from"../../components/forms/controls/ChoiceControls";import{DatePicker as M,DateTimePicker as N,TimePicker as O}from"../../components/forms/controls/DateTimeControls";import{FieldContent as Q,FieldGroup as U,FieldLegend as V,FieldSet as X,Field as Y,InputGroup as Z,InputGroupAddon as _}from"../../components/forms/controls/Field";import{Select as $}from"../../components/forms/controls/Select";import{AddressField as g,PhoneField as v}from"./rich-fields";import{Actions as w,FieldArray as B,FieldArrayItem as E,FormRoot as W,InputGroupIcon as b,TranslatedButton as f,TranslatedFieldDescription as y,TranslatedFieldError as C,TranslatedFieldLabel as L,TranslatedInput as R,TranslatedInputGroupInput as k,TranslatedInputGroupText as x,TranslatedInputGroupTextarea as D,TranslatedTextarea as P}from"./shell";export const formRenderer=q({submitMode:"button",driver:j({FormRoot:W,Field:Y,FieldLabel:L,FieldDescription:y,FieldError:C,FieldContent:Q,FieldGroup:U,FieldSet:X,FieldLegend:V,FieldArray:B,FieldArrayItem:E,Actions:w,Input:R,Textarea:P,InputGroup:Z,InputGroupAddon:_,InputGroupInput:k,InputGroupTextarea:D,InputGroupText:x,InputGroupIcon:b,Select:$,Checkbox:H,RadioGroup:J,Switch:K,Autocomplete:z,AddressField:g,PhoneField:v,DateField:M,TimeField:O,DateTimeField:N,Button:f})});
1
+ import{shadcnDriver as j}from"@contractspec/lib.contracts-runtime-client-react/drivers/shadcn";import{createFormRenderer as q}from"@contractspec/lib.contracts-runtime-client-react/form-render";import{Autocomplete as z}from"../../components/forms/controls/Autocomplete";import{Checkbox as H,RadioGroup as J,Switch as K}from"../../components/forms/controls/ChoiceControls";import{DatePicker as M,DateTimePicker as N,TimePicker as O}from"../../components/forms/controls/DateTimeControls";import{FieldContent as Q,FieldGroup as U,FieldLegend as V,FieldSet as X,Field as Y,InputGroup as Z,InputGroupAddon as _}from"../../components/forms/controls/Field";import{Select as $}from"../../components/forms/controls/Select";import{AddressField as g,PhoneField as v}from"./rich-fields";import{Actions as B,FieldArray as E,FieldArrayItem as W,FormRoot as b,InputGroupIcon as f,TranslatedButton as w,TranslatedFieldDescription as y,TranslatedFieldError as C,TranslatedFieldLabel as L,TranslatedInput as R,TranslatedInputGroupInput as k,TranslatedInputGroupText as x,TranslatedInputGroupTextarea as D,TranslatedPasswordInput as S,TranslatedTextarea as P}from"./shell";export const formRenderer=q({submitMode:"button",driver:j({FormRoot:b,Field:Y,FieldLabel:L,FieldDescription:y,FieldError:C,FieldContent:Q,FieldGroup:U,FieldSet:X,FieldLegend:V,FieldArray:E,FieldArrayItem:W,Actions:B,Input:R,PasswordInput:S,Textarea:P,InputGroup:Z,InputGroupAddon:_,InputGroupInput:k,InputGroupTextarea:D,InputGroupText:x,InputGroupIcon:f,Select:$,Checkbox:H,RadioGroup:J,Switch:K,Autocomplete:z,AddressField:g,PhoneField:v,DateField:M,TimeField:O,DateTimeField:N,Button:w})});
@@ -1,12 +1,17 @@
1
1
  import type * as React from 'react';
2
2
  import { Button } from '../../components/atoms/Button';
3
3
  import { Input } from '../../components/atoms/Input';
4
+ import { InputPassword } from '../../components/atoms/InputPassword';
4
5
  import { Textarea } from '../../components/atoms/Textarea';
5
6
  import { FieldDescription, FieldError, FieldLabel, InputGroupInput, InputGroupText, InputGroupTextarea } from '../../components/forms/controls/Field';
6
7
  export declare const TranslatedFieldLabel: (props: React.ComponentProps<typeof FieldLabel>) => import("react/jsx-runtime").JSX.Element;
7
8
  export declare const TranslatedFieldDescription: (props: React.ComponentProps<typeof FieldDescription>) => import("react/jsx-runtime").JSX.Element;
8
9
  export declare const TranslatedFieldError: (props: React.ComponentProps<typeof FieldError>) => import("react/jsx-runtime").JSX.Element;
9
10
  export declare const TranslatedInput: (props: React.ComponentProps<typeof Input>) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const TranslatedPasswordInput: (props: React.ComponentProps<typeof InputPassword> & {
12
+ showLabelI18n?: string;
13
+ hideLabelI18n?: string;
14
+ }) => import("react/jsx-runtime").JSX.Element;
10
15
  export declare const TranslatedTextarea: (props: React.ComponentProps<typeof Textarea>) => import("react/jsx-runtime").JSX.Element;
11
16
  export declare const TranslatedInputGroupInput: (props: React.ComponentProps<typeof InputGroupInput>) => import("react/jsx-runtime").JSX.Element;
12
17
  export declare const TranslatedInputGroupTextarea: (props: React.ComponentProps<typeof InputGroupTextarea>) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as z}from"react/jsx-runtime";import{CalendarIcon as Y,ClockIcon as Z,InfoIcon as R,MailIcon as $,SearchIcon as v,UserIcon as B}from"lucide-react";import{Button as D}from"../../components/atoms/Button";import{Input as E}from"../../components/atoms/Input";import{Textarea as H}from"../../components/atoms/Textarea";import{FieldDescription as L,FieldError as M,FieldLabel as U,InputGroupInput as K,InputGroupText as P,InputGroupTextarea as F}from"../../components/forms/controls/Field";import{HStack as V,VStack as Q}from"../../components/layout/Stack";import{useTranslatedNode as A,useTranslatedText as J}from"../../components/primitives/themed";export const TranslatedFieldLabel=(g)=>{const q=A();return z(U,{...g,children:q(g.children)})};export const TranslatedFieldDescription=(g)=>{const q=A();return z(L,{...g,children:q(g.children)})};export const TranslatedFieldError=(g)=>{const q=A();return z(M,{...g,children:q(g.children)})};export const TranslatedInput=(g)=>{const q=J();return z(E,{...g,placeholder:q(g.placeholder)})};export const TranslatedTextarea=(g)=>{const q=J();return z(H,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupInput=(g)=>{const q=J();return z(K,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupTextarea=(g)=>{const q=J();return z(F,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupText=(g)=>{const q=A();return z(P,{...g,children:q(g.children)})};const G={calendar:Y,clock:Z,info:R,mail:$,search:v,user:B};export const InputGroupIcon=({iconKey:g,label:q})=>{const O=G[g]??R;return z(O,{"aria-hidden":q?void 0:!0,"aria-label":q,className:"size-4"})};export const TranslatedButton=({children:g,onClick:q,onPress:O,...W})=>{const X=A();return z(D,{...W,onClick:q?()=>q():void 0,onPress:O??q,children:X(g)})};export const FormRoot=({children:g,className:q})=>z(Q,{gap:"lg",className:q,children:g});export const FieldArray=({children:g,className:q})=>z(Q,{gap:"md",className:q,children:g});export const FieldArrayItem=({children:g,className:q})=>z(Q,{gap:"sm",className:q,children:g});export const Actions=({children:g,className:q})=>z(V,{gap:"sm",wrap:"wrap",className:q,children:g});
1
+ import{jsx as z}from"react/jsx-runtime";import{CalendarIcon as Y,ClockIcon as Z,InfoIcon as X,MailIcon as $,SearchIcon as v,UserIcon as B}from"lucide-react";import{Button as D}from"../../components/atoms/Button";import{Input as E}from"../../components/atoms/Input";import{InputPassword as H}from"../../components/atoms/InputPassword";import{Textarea as M}from"../../components/atoms/Textarea";import{FieldDescription as U,FieldError as K,FieldLabel as F,InputGroupInput as L,InputGroupText as V,InputGroupTextarea as G}from"../../components/forms/controls/Field";import{HStack as P,VStack as W}from"../../components/layout/Stack";import{useTranslatedNode as J,useTranslatedText as O}from"../../components/primitives/themed";export const TranslatedFieldLabel=(g)=>{const q=J();return z(F,{...g,children:q(g.children)})};export const TranslatedFieldDescription=(g)=>{const q=J();return z(U,{...g,children:q(g.children)})};export const TranslatedFieldError=(g)=>{const q=J();return z(K,{...g,children:q(g.children)})};export const TranslatedInput=(g)=>{const q=O();return z(E,{...g,placeholder:q(g.placeholder)})};export const TranslatedPasswordInput=(g)=>{const q=O(),{showLabelI18n:A,hideLabelI18n:Q,...R}=g;return z(H,{...R,placeholder:q(g.placeholder),showLabel:q(A??g.showLabel),hideLabel:q(Q??g.hideLabel)})};export const TranslatedTextarea=(g)=>{const q=O();return z(M,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupInput=(g)=>{const q=O();return z(L,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupTextarea=(g)=>{const q=O();return z(G,{...g,placeholder:q(g.placeholder)})};export const TranslatedInputGroupText=(g)=>{const q=J();return z(V,{...g,children:q(g.children)})};const S={calendar:Y,clock:Z,info:X,mail:$,search:v,user:B};export const InputGroupIcon=({iconKey:g,label:q})=>{const A=S[g]??X;return z(A,{"aria-hidden":q?void 0:!0,"aria-label":q,className:"size-4"})};export const TranslatedButton=({children:g,onClick:q,onPress:A,...Q})=>{const R=J();return z(D,{...Q,onClick:q?()=>q():void 0,onPress:A??q,children:R(g)})};export const FormRoot=({children:g,className:q})=>z(W,{gap:"lg",className:q,children:g});export const FieldArray=({children:g,className:q})=>z(W,{gap:"md",className:q,children:g});export const FieldArrayItem=({children:g,className:q})=>z(W,{gap:"sm",className:q,children:g});export const Actions=({children:g,className:q})=>z(P,{gap:"sm",wrap:"wrap",className:q,children:g});
@@ -0,0 +1 @@
1
+ export * from './components/typography';
@@ -0,0 +1 @@
1
+ export*from"./components/typography";