@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.
- package/README.md +192 -5
- package/dist/browser/components/agent/AgentMonitor.js +1 -0
- package/dist/browser/components/agent/ApprovalQueue.js +1 -0
- package/dist/browser/components/agent/ApprovalQueue.mobile.js +1 -0
- package/dist/browser/components/atoms/ActionButtons.js +1 -0
- package/dist/browser/components/atoms/Button.js +1 -0
- package/dist/browser/components/atoms/Button.mobile.js +1 -0
- package/dist/browser/components/atoms/ButtonLink.js +1 -0
- package/dist/browser/components/atoms/ButtonLink.mobile.js +1 -0
- package/dist/browser/components/atoms/Cta.js +1 -0
- package/dist/browser/components/atoms/Cta.mobile.js +1 -0
- package/dist/browser/components/atoms/DataChips.js +1 -0
- package/dist/browser/components/atoms/EmptyState.js +1 -0
- package/dist/browser/components/atoms/ErrorState.js +1 -0
- package/dist/browser/components/atoms/ErrorState.mobile.js +1 -0
- package/dist/browser/components/atoms/Input.js +1 -0
- package/dist/browser/components/atoms/Input.mobile.js +1 -0
- package/dist/browser/components/atoms/Link.js +1 -0
- package/dist/browser/components/atoms/Link.web.js +1 -0
- package/dist/browser/components/atoms/LoaderCircular.js +1 -0
- package/dist/browser/components/atoms/LoaderCircular.mobile.js +1 -0
- package/dist/browser/components/atoms/NavBrand.js +1 -0
- package/dist/browser/components/atoms/RankBadge.js +1 -0
- package/dist/browser/components/atoms/ScoreBar.js +1 -0
- package/dist/browser/components/atoms/Stepper.js +1 -0
- package/dist/browser/components/atoms/Textarea.js +1 -0
- package/dist/browser/components/atoms/Textarea.mobile.js +1 -0
- package/dist/browser/components/data-table/DataTable.js +1 -0
- package/dist/browser/components/data-table/DataTable.mobile.js +1 -0
- package/dist/browser/components/data-table/DataTableToolbar.js +1 -0
- package/dist/browser/components/data-table/DataTableToolbar.mobile.js +1 -0
- package/dist/browser/components/data-table/DataTableToolbar.shared.js +1 -0
- package/dist/browser/components/data-view/DataViewDetail.js +1 -0
- package/dist/browser/components/data-view/DataViewList.js +1 -0
- package/dist/browser/components/data-view/DataViewRenderer.js +1 -0
- package/dist/browser/components/data-view/DataViewRenderer.mobile.js +1 -0
- package/dist/browser/components/data-view/DataViewTable.js +1 -0
- package/dist/browser/components/data-view/DataViewTable.mobile.js +1 -0
- package/dist/browser/components/data-view/utils.js +1 -0
- package/dist/browser/components/forms/ActionForm.js +1 -0
- package/dist/browser/components/forms/FormCardLayout.js +1 -0
- package/dist/browser/components/forms/FormDialog.js +1 -0
- package/dist/browser/components/forms/FormLayout.js +1 -0
- package/dist/browser/components/forms/FormOneByOneLayout.js +1 -0
- package/dist/browser/components/forms/FormStepsLayout.js +1 -0
- package/dist/browser/components/forms/ZodForm.js +1 -0
- package/dist/browser/components/forms/controls/Autocomplete.js +1 -0
- package/dist/browser/components/forms/controls/Autocomplete.mobile.js +1 -0
- package/dist/browser/components/forms/controls/ChoiceControls.js +1 -0
- package/dist/browser/components/forms/controls/ChoiceControls.mobile.js +1 -0
- package/dist/browser/components/forms/controls/Combobox.js +1 -0
- package/dist/browser/components/forms/controls/Combobox.mobile.js +1 -0
- package/dist/browser/components/forms/controls/DateTimeControls.js +1 -0
- package/dist/browser/components/forms/controls/DateTimeControls.mobile.js +1 -0
- package/dist/browser/components/forms/controls/DropdownMenu.js +1 -0
- package/dist/browser/components/forms/controls/DropdownMenu.mobile.js +1 -0
- package/dist/browser/components/forms/controls/Field.js +1 -0
- package/dist/browser/components/forms/controls/Field.mobile.js +1 -0
- package/dist/browser/components/forms/controls/InputGroup.js +1 -0
- package/dist/browser/components/forms/controls/InputGroup.mobile.js +1 -0
- package/dist/browser/components/forms/controls/InputOTP.js +1 -0
- package/dist/browser/components/forms/controls/InputOTP.mobile.js +1 -0
- package/dist/browser/components/forms/controls/LoadingButton.js +1 -0
- package/dist/browser/components/forms/controls/LoadingButton.mobile.js +1 -0
- package/dist/browser/components/forms/controls/NativeSelect.js +1 -0
- package/dist/browser/components/forms/controls/NativeSelect.mobile.js +1 -0
- package/dist/browser/components/forms/controls/Select.js +1 -0
- package/dist/browser/components/forms/controls/Select.mobile.js +1 -0
- package/dist/browser/components/forms/controls/index.js +1 -0
- package/dist/browser/components/forms/index.js +1 -0
- package/dist/browser/components/layout/Stack.js +1 -0
- package/dist/browser/components/layout/Stack.mobile.js +1 -0
- package/dist/browser/components/layout/index.js +1 -0
- package/dist/browser/components/legal/atoms/DefinitionList.js +1 -0
- package/dist/browser/components/legal/atoms/KeyValueList.js +1 -0
- package/dist/browser/components/legal/atoms/LegalCallout.js +1 -0
- package/dist/browser/components/legal/atoms/LegalHeading.js +1 -0
- package/dist/browser/components/legal/atoms/LegalList.js +1 -0
- package/dist/browser/components/legal/atoms/LegalSection.js +1 -0
- package/dist/browser/components/legal/atoms/LegalText.js +1 -0
- package/dist/browser/components/legal/molecules/Consent.js +1 -0
- package/dist/browser/components/legal/molecules/ContactFields.js +1 -0
- package/dist/browser/components/legal/molecules/LegalMeta.js +1 -0
- package/dist/browser/components/legal/molecules/LegalTOC.js +1 -0
- package/dist/browser/components/legal/organisms/ContactForm.js +1 -0
- package/dist/browser/components/legal/organisms/GDPRDataRequest.js +1 -0
- package/dist/browser/components/legal/organisms/GDPRRights.js +1 -0
- package/dist/browser/components/legal/organisms/LegalPageLayout.js +1 -0
- package/dist/browser/components/legal/templates/ContactTemplate.js +1 -0
- package/dist/browser/components/legal/templates/CookiesTemplate.js +1 -0
- package/dist/browser/components/legal/templates/PrivacyTemplate.js +1 -0
- package/dist/browser/components/legal/templates/SalesTermsTemplate.js +1 -0
- package/dist/browser/components/legal/templates/TermsTemplate.js +1 -0
- package/dist/browser/components/marketing/MarketingCard.js +1 -0
- package/dist/browser/components/marketing/MarketingCardsSection.js +1 -0
- package/dist/browser/components/marketing/MarketingComparisonSection.js +1 -0
- package/dist/browser/components/marketing/MarketingIconCard.js +1 -0
- package/dist/browser/components/marketing/MarketingSection.js +1 -0
- package/dist/browser/components/marketing/MarketingStepCard.js +1 -0
- package/dist/browser/components/molecules/AiLinkButton.js +1 -0
- package/dist/browser/components/molecules/Breadcrumbs.js +1 -0
- package/dist/browser/components/molecules/CodeBlock/CodeBlock.js +1 -0
- package/dist/browser/components/molecules/CodeBlock/index.js +1 -0
- package/dist/browser/components/molecules/CodeBlock/types.js +0 -0
- package/dist/browser/components/molecules/CommandPalette.js +1 -0
- package/dist/browser/components/molecules/CommandSearchTrigger.js +1 -0
- package/dist/browser/components/molecules/CommandTabs/CommandTabs.js +1 -0
- package/dist/browser/components/molecules/CommandTabs/index.js +1 -0
- package/dist/browser/components/molecules/CommandTabs/types.js +0 -0
- package/dist/browser/components/molecules/CopyButton/CopyButton.js +1 -0
- package/dist/browser/components/molecules/CopyButton/index.js +1 -0
- package/dist/browser/components/molecules/CopyButton/types.js +0 -0
- package/dist/browser/components/molecules/DimensionScoresCard.js +1 -0
- package/dist/browser/components/molecules/DropdownMenu.js +0 -0
- package/dist/browser/components/molecules/EntityCard.js +1 -0
- package/dist/browser/components/molecules/FiltersToolbar.js +1 -0
- package/dist/browser/components/molecules/FiltersToolbar.mobile.js +1 -0
- package/dist/browser/components/molecules/HoverPreview.js +1 -0
- package/dist/browser/components/molecules/InstallCommand/InstallCommand.js +1 -0
- package/dist/browser/components/molecules/InstallCommand/index.js +1 -0
- package/dist/browser/components/molecules/InstallCommand/types.js +0 -0
- package/dist/browser/components/molecules/LangSwitch.js +1 -0
- package/dist/browser/components/molecules/LangSwitchDropdown.js +1 -0
- package/dist/browser/components/molecules/LoaderBlock.js +1 -0
- package/dist/browser/components/molecules/LoaderBlock.mobile.js +1 -0
- package/dist/browser/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
- package/dist/browser/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
- package/dist/browser/components/molecules/MarkdownRenderer/index.js +1 -0
- package/dist/browser/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
- package/dist/browser/components/molecules/MarkdownRenderer/types.js +0 -0
- package/dist/browser/components/molecules/MobileNavMenu.js +1 -0
- package/dist/browser/components/molecules/NavItemCard.js +1 -0
- package/dist/browser/components/molecules/NavMain.js +1 -0
- package/dist/browser/components/molecules/NavUser.js +1 -0
- package/dist/browser/components/molecules/OverviewCard.js +1 -0
- package/dist/browser/components/molecules/SkeletonBlock/index.js +1 -0
- package/dist/browser/components/molecules/SkeletonBlock/index.mobile.js +1 -0
- package/dist/browser/components/molecules/SkeletonBlock/index.web.js +1 -0
- package/dist/browser/components/molecules/SkeletonBlock/types.js +0 -0
- package/dist/browser/components/molecules/SkeletonCircle/index.js +1 -0
- package/dist/browser/components/molecules/SkeletonCircle/index.mobile.js +1 -0
- package/dist/browser/components/molecules/SkeletonCircle/index.web.js +1 -0
- package/dist/browser/components/molecules/SkeletonCircle/types.js +0 -0
- package/dist/browser/components/molecules/SkeletonList/index.js +1 -0
- package/dist/browser/components/molecules/SkeletonList/index.mobile.js +1 -0
- package/dist/browser/components/molecules/SkeletonList/index.web.js +1 -0
- package/dist/browser/components/molecules/SkeletonList/types.js +0 -0
- package/dist/browser/components/molecules/StatCard.js +1 -0
- package/dist/browser/components/molecules/StatusChip.js +1 -0
- package/dist/browser/components/molecules/hover-previews/Doc.js +1 -0
- package/dist/browser/components/molecules/hover-previews/Media.js +1 -0
- package/dist/browser/components/molecules/hover-previews/Simple.js +1 -0
- package/dist/browser/components/molecules/hover-previews/Stats.js +1 -0
- package/dist/browser/components/molecules/hover-previews/User.js +1 -0
- package/dist/browser/components/native/BottomTabs.mobile.js +1 -0
- package/dist/browser/components/native/FlatListScreen.mobile.js +1 -0
- package/dist/browser/components/native/SheetMenu.mobile.js +1 -0
- package/dist/browser/components/organisms/AcademyLayout.js +1 -0
- package/dist/browser/components/organisms/AppHeader.js +1 -0
- package/dist/browser/components/organisms/AppHeader.mobile.js +1 -0
- package/dist/browser/components/organisms/AppLayout.js +1 -0
- package/dist/browser/components/organisms/AppSidebar.js +1 -0
- package/dist/browser/components/organisms/AppSidebar.mobile.js +0 -0
- package/dist/browser/components/organisms/EmptyDataList.js +1 -0
- package/dist/browser/components/organisms/EmptyDataList.mobile.js +1 -0
- package/dist/browser/components/organisms/EmptyDataList.types.js +0 -0
- package/dist/browser/components/organisms/EmptySearchResult.js +1 -0
- package/dist/browser/components/organisms/FAQSection.js +1 -0
- package/dist/browser/components/organisms/FeatureCarousel.js +1 -0
- package/dist/browser/components/organisms/FeaturesSection.js +1 -0
- package/dist/browser/components/organisms/Footer.js +1 -0
- package/dist/browser/components/organisms/GridLayout.js +1 -0
- package/dist/browser/components/organisms/Header.js +1 -0
- package/dist/browser/components/organisms/Header.mobile.js +1 -0
- package/dist/browser/components/organisms/HeroResponsive.js +1 -0
- package/dist/browser/components/organisms/HeroSection.js +1 -0
- package/dist/browser/components/organisms/ListCardPage.js +1 -0
- package/dist/browser/components/organisms/ListGridPage.js +1 -0
- package/dist/browser/components/organisms/ListPageResponsive.js +1 -0
- package/dist/browser/components/organisms/ListTablePage.js +1 -0
- package/dist/browser/components/organisms/ListTablePage.mobile.js +1 -0
- package/dist/browser/components/organisms/MarketingHeader.js +1 -0
- package/dist/browser/components/organisms/MarketingHeaderDesktop.js +1 -0
- package/dist/browser/components/organisms/MarketingHeaderMobile.js +1 -0
- package/dist/browser/components/organisms/MarketingLayout.js +1 -0
- package/dist/browser/components/organisms/ModelComparisonView.js +1 -0
- package/dist/browser/components/organisms/PageHeaderResponsive.js +1 -0
- package/dist/browser/components/organisms/PageHeaderResponsive.mobile.js +1 -0
- package/dist/browser/components/organisms/PricingCarousel.js +1 -0
- package/dist/browser/components/organisms/PricingSection.js +1 -0
- package/dist/browser/components/organisms/TestimonialCarousel.js +1 -0
- package/dist/browser/components/primitives/control.js +1 -0
- package/dist/browser/components/primitives/themed.js +1 -0
- package/dist/browser/components/providers/PackageManagerProvider.js +1 -0
- package/dist/browser/components/templates/lists/ListPageTemplate/index.js +1 -0
- package/dist/browser/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
- package/dist/browser/components/templates/lists/ListPageTemplate/index.web.js +1 -0
- package/dist/browser/components/templates/lists/ListPageTemplate/types.js +0 -0
- package/dist/browser/components/visualization/ComparisonView.js +1 -0
- package/dist/browser/components/visualization/ComparisonView.mobile.js +1 -0
- package/dist/browser/components/visualization/TimelineView.js +1 -0
- package/dist/browser/components/visualization/TimelineView.mobile.js +1 -0
- package/dist/browser/components/visualization/VisualizationCard.js +1 -0
- package/dist/browser/components/visualization/VisualizationCard.mobile.js +1 -0
- package/dist/browser/components/visualization/VisualizationGrid.js +1 -0
- package/dist/browser/components/visualization/VisualizationGrid.mobile.js +1 -0
- package/dist/browser/components/visualization/VisualizationRenderer.js +1 -0
- package/dist/browser/components/visualization/VisualizationRenderer.mobile.js +1 -0
- package/dist/browser/components/visualization/types.js +0 -0
- package/dist/browser/contracts.typecheck.js +1 -0
- package/dist/browser/design-system.feature.js +1 -0
- package/dist/browser/hooks/useListUrlState.js +1 -0
- package/dist/browser/i18n/translation.js +1 -0
- package/dist/browser/index.js +1 -1
- package/dist/browser/lib/keyboard.js +1 -0
- package/dist/browser/lib/utils.js +1 -0
- package/dist/browser/platform/useColorScheme.js +1 -0
- package/dist/browser/platform/useColorScheme.mobile.js +1 -0
- package/dist/browser/platform/useReducedMotion.js +1 -0
- package/dist/browser/platform/useReducedMotion.mobile.js +1 -0
- package/dist/browser/platform/useResponsive.js +1 -0
- package/dist/browser/platform/useResponsive.mobile.js +1 -0
- package/dist/browser/platform/withPlatformUI.js +1 -0
- package/dist/browser/renderers/form-contract/renderer.js +1 -0
- package/dist/browser/renderers/form-contract/rich-fields.js +1 -0
- package/dist/browser/renderers/form-contract/shell.js +1 -0
- package/dist/browser/renderers/form-contract/values.js +1 -0
- package/dist/browser/renderers/form-contract.js +1 -0
- package/dist/browser/renderers/index.js +1 -0
- package/dist/browser/theme/contracts.js +1 -0
- package/dist/browser/theme/index.js +1 -0
- package/dist/browser/theme/runtime-resolvers.js +1 -0
- package/dist/browser/theme/runtime.js +1 -0
- package/dist/browser/theme/tailwind-config.js +1 -0
- package/dist/browser/theme/tailwind-css.js +9 -0
- package/dist/browser/theme/tailwind-variables.js +1 -0
- package/dist/browser/theme/tailwind.js +1 -0
- package/dist/browser/theme/tokenBridge.js +1 -0
- package/dist/browser/theme/tokens.js +1 -0
- package/dist/browser/theme/variants.js +1 -0
- package/dist/browser/types/nativewind-env.d.js +0 -0
- package/dist/browser/types/navigation.js +0 -0
- package/dist/components/agent/AgentMonitor.js +1 -0
- package/dist/components/agent/ApprovalQueue.js +1 -0
- package/dist/components/agent/ApprovalQueue.mobile.js +1 -0
- package/dist/components/atoms/ActionButtons.js +1 -0
- package/dist/components/atoms/Button.d.ts +3 -2
- package/dist/components/atoms/Button.js +1 -0
- package/dist/components/atoms/Button.mobile.d.ts +3 -2
- package/dist/components/atoms/Button.mobile.js +1 -0
- package/dist/components/atoms/ButtonLink.js +1 -0
- package/dist/components/atoms/ButtonLink.mobile.js +1 -0
- package/dist/components/atoms/Cta.js +1 -0
- package/dist/components/atoms/Cta.mobile.js +1 -0
- package/dist/components/atoms/DataChips.js +1 -0
- package/dist/components/atoms/EmptyState.js +1 -0
- package/dist/components/atoms/ErrorState.js +1 -0
- package/dist/components/atoms/ErrorState.mobile.js +1 -0
- package/dist/components/atoms/Input.d.ts +4 -12
- package/dist/components/atoms/Input.js +1 -0
- package/dist/components/atoms/Input.mobile.d.ts +4 -13
- package/dist/components/atoms/Input.mobile.js +1 -0
- package/dist/components/atoms/Link.js +1 -0
- package/dist/components/atoms/Link.web.js +1 -0
- package/dist/components/atoms/LoaderCircular.js +1 -0
- package/dist/components/atoms/LoaderCircular.mobile.js +1 -0
- package/dist/components/atoms/NavBrand.js +1 -0
- package/dist/components/atoms/RankBadge.js +1 -0
- package/dist/components/atoms/ScoreBar.js +1 -0
- package/dist/components/atoms/Stepper.js +1 -0
- package/dist/components/atoms/Textarea.d.ts +4 -10
- package/dist/components/atoms/Textarea.js +1 -0
- package/dist/components/atoms/Textarea.mobile.d.ts +4 -13
- package/dist/components/atoms/Textarea.mobile.js +1 -0
- package/dist/components/data-table/DataTable.js +1 -0
- package/dist/components/data-table/DataTable.mobile.js +1 -0
- package/dist/components/data-table/DataTableToolbar.d.ts +3 -0
- package/dist/components/data-table/DataTableToolbar.js +1 -0
- package/dist/components/data-table/DataTableToolbar.mobile.d.ts +3 -0
- package/dist/components/data-table/DataTableToolbar.mobile.js +1 -0
- package/dist/components/data-table/DataTableToolbar.shared.d.ts +23 -0
- package/dist/components/data-table/DataTableToolbar.shared.js +1 -0
- package/dist/components/data-view/DataViewDetail.js +1 -0
- package/dist/components/data-view/DataViewList.js +1 -0
- package/dist/components/data-view/DataViewRenderer.d.ts +3 -1
- package/dist/components/data-view/DataViewRenderer.js +1 -0
- package/dist/components/data-view/DataViewRenderer.mobile.d.ts +3 -1
- package/dist/components/data-view/DataViewRenderer.mobile.js +1 -0
- package/dist/components/data-view/DataViewTable.d.ts +4 -2
- package/dist/components/data-view/DataViewTable.js +1 -0
- package/dist/components/data-view/DataViewTable.mobile.d.ts +4 -2
- package/dist/components/data-view/DataViewTable.mobile.js +1 -0
- package/dist/components/data-view/utils.js +1 -0
- package/dist/components/forms/ActionForm.js +1 -0
- package/dist/components/forms/FormCardLayout.js +1 -0
- package/dist/components/forms/FormDialog.js +1 -0
- package/dist/components/forms/FormLayout.js +1 -0
- package/dist/components/forms/FormOneByOneLayout.js +1 -0
- package/dist/components/forms/FormStepsLayout.js +1 -0
- package/dist/components/forms/ZodForm.js +1 -0
- package/dist/components/forms/controls/Autocomplete.d.ts +17 -0
- package/dist/components/forms/controls/Autocomplete.js +1 -0
- package/dist/components/forms/controls/Autocomplete.mobile.d.ts +17 -0
- package/dist/components/forms/controls/Autocomplete.mobile.js +1 -0
- package/dist/components/forms/controls/ChoiceControls.d.ts +26 -0
- package/dist/components/forms/controls/ChoiceControls.js +1 -0
- package/dist/components/forms/controls/ChoiceControls.mobile.d.ts +26 -0
- package/dist/components/forms/controls/ChoiceControls.mobile.js +1 -0
- package/dist/components/forms/controls/Combobox.d.ts +4 -0
- package/dist/components/forms/controls/Combobox.js +1 -0
- package/dist/components/forms/controls/Combobox.mobile.d.ts +2 -0
- package/dist/components/forms/controls/Combobox.mobile.js +1 -0
- package/dist/components/forms/controls/DateTimeControls.d.ts +20 -0
- package/dist/components/forms/controls/DateTimeControls.js +1 -0
- package/dist/components/forms/controls/DateTimeControls.mobile.d.ts +20 -0
- package/dist/components/forms/controls/DateTimeControls.mobile.js +1 -0
- package/dist/components/forms/controls/DropdownMenu.d.ts +1 -0
- package/dist/components/forms/controls/DropdownMenu.js +1 -0
- package/dist/components/forms/controls/DropdownMenu.mobile.d.ts +1 -0
- package/dist/components/forms/controls/DropdownMenu.mobile.js +1 -0
- package/dist/components/forms/controls/Field.d.ts +27 -0
- package/dist/components/forms/controls/Field.js +1 -0
- package/dist/components/forms/controls/Field.mobile.d.ts +2 -0
- package/dist/components/forms/controls/Field.mobile.js +1 -0
- package/dist/components/forms/controls/InputGroup.d.ts +1 -0
- package/dist/components/forms/controls/InputGroup.js +1 -0
- package/dist/components/forms/controls/InputGroup.mobile.d.ts +5 -0
- package/dist/components/forms/controls/InputGroup.mobile.js +1 -0
- package/dist/components/forms/controls/InputOTP.d.ts +1 -0
- package/dist/components/forms/controls/InputOTP.js +1 -0
- package/dist/components/forms/controls/InputOTP.mobile.d.ts +2 -0
- package/dist/components/forms/controls/InputOTP.mobile.js +1 -0
- package/dist/components/forms/controls/LoadingButton.d.ts +4 -0
- package/dist/components/forms/controls/LoadingButton.js +1 -0
- package/dist/components/forms/controls/LoadingButton.mobile.d.ts +4 -0
- package/dist/components/forms/controls/LoadingButton.mobile.js +1 -0
- package/dist/components/forms/controls/NativeSelect.d.ts +7 -0
- package/dist/components/forms/controls/NativeSelect.js +1 -0
- package/dist/components/forms/controls/NativeSelect.mobile.d.ts +2 -0
- package/dist/components/forms/controls/NativeSelect.mobile.js +1 -0
- package/dist/components/forms/controls/Select.d.ts +15 -0
- package/dist/components/forms/controls/Select.js +1 -0
- package/dist/components/forms/controls/Select.mobile.d.ts +13 -0
- package/dist/components/forms/controls/Select.mobile.js +1 -0
- package/dist/components/forms/controls/index.d.ts +11 -0
- package/dist/components/forms/controls/index.js +1 -0
- package/dist/components/forms/index.d.ts +8 -0
- package/dist/components/forms/index.js +1 -0
- package/dist/components/layout/Stack.d.ts +9 -0
- package/dist/components/layout/Stack.js +1 -0
- package/dist/components/layout/Stack.mobile.d.ts +13 -0
- package/dist/components/layout/Stack.mobile.js +1 -0
- package/dist/components/layout/index.d.ts +1 -0
- package/dist/components/layout/index.js +1 -0
- package/dist/components/legal/atoms/DefinitionList.js +1 -0
- package/dist/components/legal/atoms/KeyValueList.js +1 -0
- package/dist/components/legal/atoms/LegalCallout.d.ts +1 -1
- package/dist/components/legal/atoms/LegalCallout.js +1 -0
- package/dist/components/legal/atoms/LegalHeading.js +1 -0
- package/dist/components/legal/atoms/LegalList.d.ts +1 -1
- package/dist/components/legal/atoms/LegalList.js +1 -0
- package/dist/components/legal/atoms/LegalSection.d.ts +1 -1
- package/dist/components/legal/atoms/LegalSection.js +1 -0
- package/dist/components/legal/atoms/LegalText.js +1 -0
- package/dist/components/legal/molecules/Consent.js +1 -0
- package/dist/components/legal/molecules/ContactFields.js +1 -0
- package/dist/components/legal/molecules/LegalMeta.js +1 -0
- package/dist/components/legal/molecules/LegalTOC.js +1 -0
- package/dist/components/legal/organisms/ContactForm.js +1 -0
- package/dist/components/legal/organisms/GDPRDataRequest.js +1 -0
- package/dist/components/legal/organisms/GDPRRights.js +1 -0
- package/dist/components/legal/organisms/LegalPageLayout.js +1 -0
- package/dist/components/legal/templates/ContactTemplate.js +1 -0
- package/dist/components/legal/templates/CookiesTemplate.js +1 -0
- package/dist/components/legal/templates/PrivacyTemplate.js +1 -0
- package/dist/components/legal/templates/SalesTermsTemplate.js +1 -0
- package/dist/components/legal/templates/TermsTemplate.js +1 -0
- package/dist/components/marketing/MarketingCard.js +1 -0
- package/dist/components/marketing/MarketingCardsSection.js +1 -0
- package/dist/components/marketing/MarketingComparisonSection.js +1 -0
- package/dist/components/marketing/MarketingIconCard.js +1 -0
- package/dist/components/marketing/MarketingSection.js +1 -0
- package/dist/components/marketing/MarketingStepCard.js +1 -0
- package/dist/components/molecules/AiLinkButton.js +1 -0
- package/dist/components/molecules/Breadcrumbs.js +1 -0
- package/dist/components/molecules/CodeBlock/CodeBlock.js +1 -0
- package/dist/components/molecules/CodeBlock/index.js +1 -0
- package/dist/components/molecules/CodeBlock/types.js +0 -0
- package/dist/components/molecules/CommandPalette.js +1 -0
- package/dist/components/molecules/CommandSearchTrigger.js +1 -0
- package/dist/components/molecules/CommandTabs/CommandTabs.js +1 -0
- package/dist/components/molecules/CommandTabs/index.js +1 -0
- package/dist/components/molecules/CommandTabs/types.js +0 -0
- package/dist/components/molecules/CopyButton/CopyButton.js +1 -0
- package/dist/components/molecules/CopyButton/index.js +1 -0
- package/dist/components/molecules/CopyButton/types.js +0 -0
- package/dist/components/molecules/DimensionScoresCard.js +1 -0
- package/dist/components/molecules/DropdownMenu.js +0 -0
- package/dist/components/molecules/EntityCard.js +1 -0
- package/dist/components/molecules/FiltersToolbar.js +1 -0
- package/dist/components/molecules/FiltersToolbar.mobile.d.ts +1 -1
- package/dist/components/molecules/FiltersToolbar.mobile.js +1 -0
- package/dist/components/molecules/HoverPreview.js +1 -0
- package/dist/components/molecules/InstallCommand/InstallCommand.js +1 -0
- package/dist/components/molecules/InstallCommand/index.js +1 -0
- package/dist/components/molecules/InstallCommand/types.js +0 -0
- package/dist/components/molecules/LangSwitch.js +1 -0
- package/dist/components/molecules/LangSwitchDropdown.js +1 -0
- package/dist/components/molecules/LoaderBlock.js +1 -0
- package/dist/components/molecules/LoaderBlock.mobile.js +1 -0
- package/dist/components/molecules/MarkdownRenderer/MarkdownRenderer.js +2 -0
- package/dist/components/molecules/MarkdownRenderer/formatInlineMarkdown.js +1 -0
- package/dist/components/molecules/MarkdownRenderer/index.js +1 -0
- package/dist/components/molecules/MarkdownRenderer/renderMarkdownTable.js +1 -0
- package/dist/components/molecules/MarkdownRenderer/types.js +0 -0
- package/dist/components/molecules/MobileNavMenu.js +1 -0
- package/dist/components/molecules/NavItemCard.js +1 -0
- package/dist/components/molecules/NavMain.js +1 -0
- package/dist/components/molecules/NavUser.js +1 -0
- package/dist/components/molecules/OverviewCard.js +1 -0
- package/dist/components/molecules/SkeletonBlock/index.js +1 -0
- package/dist/components/molecules/SkeletonBlock/index.mobile.js +1 -0
- package/dist/components/molecules/SkeletonBlock/index.web.js +1 -0
- package/dist/components/molecules/SkeletonBlock/types.js +0 -0
- package/dist/components/molecules/SkeletonCircle/index.js +1 -0
- package/dist/components/molecules/SkeletonCircle/index.mobile.js +1 -0
- package/dist/components/molecules/SkeletonCircle/index.web.js +1 -0
- package/dist/components/molecules/SkeletonCircle/types.js +0 -0
- package/dist/components/molecules/SkeletonList/index.js +1 -0
- package/dist/components/molecules/SkeletonList/index.mobile.js +1 -0
- package/dist/components/molecules/SkeletonList/index.web.js +1 -0
- package/dist/components/molecules/SkeletonList/types.js +0 -0
- package/dist/components/molecules/StatCard.js +1 -0
- package/dist/components/molecules/StatusChip.d.ts +1 -1
- package/dist/components/molecules/StatusChip.js +1 -0
- package/dist/components/molecules/hover-previews/Doc.js +1 -0
- package/dist/components/molecules/hover-previews/Media.js +1 -0
- package/dist/components/molecules/hover-previews/Simple.js +1 -0
- package/dist/components/molecules/hover-previews/Stats.js +1 -0
- package/dist/components/molecules/hover-previews/User.js +1 -0
- package/dist/components/native/BottomTabs.mobile.js +1 -0
- package/dist/components/native/FlatListScreen.mobile.js +1 -0
- package/dist/components/native/SheetMenu.mobile.js +1 -0
- package/dist/components/organisms/AcademyLayout.js +1 -0
- package/dist/components/organisms/AppHeader.js +1 -0
- package/dist/components/organisms/AppHeader.mobile.js +1 -0
- package/dist/components/organisms/AppLayout.js +1 -0
- package/dist/components/organisms/AppSidebar.js +1 -0
- package/dist/components/organisms/AppSidebar.mobile.js +0 -0
- package/dist/components/organisms/EmptyDataList.js +1 -0
- package/dist/components/organisms/EmptyDataList.mobile.js +1 -0
- package/dist/components/organisms/EmptyDataList.types.js +0 -0
- package/dist/components/organisms/EmptySearchResult.js +1 -0
- package/dist/components/organisms/FAQSection.js +1 -0
- package/dist/components/organisms/FeatureCarousel.js +1 -0
- package/dist/components/organisms/FeaturesSection.js +1 -0
- package/dist/components/organisms/Footer.js +1 -0
- package/dist/components/organisms/GridLayout.js +1 -0
- package/dist/components/organisms/Header.js +1 -0
- package/dist/components/organisms/Header.mobile.js +1 -0
- package/dist/components/organisms/HeroResponsive.js +1 -0
- package/dist/components/organisms/HeroSection.js +1 -0
- package/dist/components/organisms/ListCardPage.js +1 -0
- package/dist/components/organisms/ListGridPage.js +1 -0
- package/dist/components/organisms/ListPageResponsive.js +1 -0
- package/dist/components/organisms/ListTablePage.js +1 -0
- package/dist/components/organisms/ListTablePage.mobile.js +1 -0
- package/dist/components/organisms/MarketingHeader.js +1 -0
- package/dist/components/organisms/MarketingHeaderDesktop.js +1 -0
- package/dist/components/organisms/MarketingHeaderMobile.js +1 -0
- package/dist/components/organisms/MarketingLayout.js +1 -0
- package/dist/components/organisms/ModelComparisonView.js +1 -0
- package/dist/components/organisms/PageHeaderResponsive.js +1 -0
- package/dist/components/organisms/PageHeaderResponsive.mobile.js +1 -0
- package/dist/components/organisms/PricingCarousel.js +1 -0
- package/dist/components/organisms/PricingSection.js +1 -0
- package/dist/components/organisms/TestimonialCarousel.js +1 -0
- package/dist/components/primitives/control.d.ts +894 -0
- package/dist/components/primitives/control.js +1 -0
- package/dist/components/primitives/themed.d.ts +881 -0
- package/dist/components/primitives/themed.js +1 -0
- package/dist/components/providers/PackageManagerProvider.js +1 -0
- package/dist/components/templates/lists/ListPageTemplate/index.js +1 -0
- package/dist/components/templates/lists/ListPageTemplate/index.mobile.js +1 -0
- package/dist/components/templates/lists/ListPageTemplate/index.web.js +1 -0
- package/dist/components/templates/lists/ListPageTemplate/types.js +0 -0
- package/dist/components/visualization/ComparisonView.js +1 -0
- package/dist/components/visualization/ComparisonView.mobile.js +1 -0
- package/dist/components/visualization/TimelineView.js +1 -0
- package/dist/components/visualization/TimelineView.mobile.js +1 -0
- package/dist/components/visualization/VisualizationCard.js +1 -0
- package/dist/components/visualization/VisualizationCard.mobile.js +1 -0
- package/dist/components/visualization/VisualizationGrid.js +1 -0
- package/dist/components/visualization/VisualizationGrid.mobile.js +1 -0
- package/dist/components/visualization/VisualizationRenderer.js +1 -0
- package/dist/components/visualization/VisualizationRenderer.mobile.js +1 -0
- package/dist/components/visualization/types.js +0 -0
- package/dist/contracts.typecheck.js +1 -0
- package/dist/design-system.feature.d.ts +1 -0
- package/dist/design-system.feature.js +1 -0
- package/dist/hooks/useListUrlState.js +1 -0
- package/dist/i18n/translation.js +1 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.js +1 -2
- package/dist/lib/keyboard.js +1 -0
- package/dist/lib/utils.js +1 -0
- package/dist/platform/useColorScheme.js +1 -0
- package/dist/platform/useColorScheme.mobile.js +1 -0
- package/dist/platform/useReducedMotion.js +1 -0
- package/dist/platform/useReducedMotion.mobile.js +1 -0
- package/dist/platform/useResponsive.js +1 -0
- package/dist/platform/useResponsive.mobile.js +1 -0
- package/dist/platform/withPlatformUI.js +1 -0
- package/dist/renderers/form-contract/renderer.d.ts +3 -0
- package/dist/renderers/form-contract/renderer.js +1 -0
- package/dist/renderers/form-contract/rich-fields.d.ts +23 -0
- package/dist/renderers/form-contract/rich-fields.js +1 -0
- package/dist/renderers/form-contract/shell.d.ts +35 -0
- package/dist/renderers/form-contract/shell.js +1 -0
- package/dist/renderers/form-contract/values.d.ts +27 -0
- package/dist/renderers/form-contract/values.js +1 -0
- package/dist/renderers/form-contract.d.ts +1 -3
- package/dist/renderers/form-contract.js +1 -0
- package/dist/renderers/index.js +1 -0
- package/dist/theme/contracts.d.ts +3 -0
- package/dist/theme/contracts.js +1 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.js +1 -0
- package/dist/theme/runtime-resolvers.d.ts +26 -0
- package/dist/theme/runtime-resolvers.js +1 -0
- package/dist/theme/runtime.d.ts +34 -0
- package/dist/theme/runtime.js +1 -0
- package/dist/theme/tailwind-config.d.ts +15 -0
- package/dist/theme/tailwind-config.js +1 -0
- package/dist/theme/tailwind-css.d.ts +2 -0
- package/dist/theme/tailwind-css.js +9 -0
- package/dist/theme/tailwind-variables.d.ts +19 -0
- package/dist/theme/tailwind-variables.js +1 -0
- package/dist/theme/tailwind.d.ts +3 -0
- package/dist/theme/tailwind.js +1 -0
- package/dist/theme/tokenBridge.js +1 -0
- package/dist/theme/tokens.js +1 -0
- package/dist/theme/variants.d.ts +1 -1
- package/dist/theme/variants.js +1 -0
- package/dist/types/nativewind-env.d.js +0 -0
- package/dist/types/navigation.js +0 -0
- package/package.json +70 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cn as H}from"@contractspec/lib.ui-kit-core/utils";import*as x from"react";import{resolveTranslationNode as I,resolveTranslationString as J,useDesignSystemTranslation as z}from"../../i18n/translation";import{componentTokensToCssVars as L,useComponentTheme as M}from"../../theme/runtime";export function useThemedPrimitive({defaultComponentKey:j,componentKey:q,themeVariant:A,className:B,style:E}){const w=M(q??j,A),F=typeof w.props.className==="string"?w.props.className:void 0,G=L(w.tokens);return{props:w.props,className:H(F,B),style:{...G,...E}}}export function useTranslatedText(){const j=z();return x.useCallback((q)=>J(q,j),[j])}export function useTranslatedNode(){const j=z();return x.useCallback((q)=>I(q,j),[j])}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as X}from"react/jsx-runtime";import{createContext as N,useCallback as Q,useContext as U,useEffect as V,useState as W}from"react";const B="package-manager-preference";const D=N(null);export function PackageManagerProvider({children:F,defaultPreference:I="bun"}){const[J,z]=W(I);V(()=>{try{const q=localStorage.getItem(B);if(q&&["bun","npm","yarn","pnpm"].includes(q))z(q)}catch{}},[]);const L=Q((q)=>{z(q);try{localStorage.setItem(B,q)}catch{}},[]);return X(D.Provider,{value:{preference:J,setPreference:L},children:F})}export function usePackageManager(){return U(D)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./index.web";export*from"./types";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as k,jsxs as D,Fragment as q}from"react/jsx-runtime";import{FiltersToolbar as X}from"../../../molecules/FiltersToolbar.mobile";import{FlatListScreen as Y}from"../../../native/FlatListScreen.mobile";import{EmptyDataList as Z}from"../../../organisms/EmptyDataList.mobile";import{PageHeaderResponsive as $}from"../../../organisms/PageHeaderResponsive.mobile";export*from"./types";export function ListPageTemplate({children:E,title:A,description:B,breadcrumb:G,actions:J,searchPlaceholder:K,searchValue:M,onSearchChange:N,onSearchSubmit:O,isLoading:Q,data:U,renderItem:W,emptyProps:z}){return k(Y,{refreshing:Q,header:D(q,{children:[k($,{title:A,subtitle:B,breadcrumb:G,actions:J}),k(X,{searchPlaceholder:K,searchValue:M,onSearchChange:N,onSearchSubmit:O})]}),data:U??[],renderItem:W,showsVerticalScrollIndicator:!1,padding:"md",emptyComponent:z?k(Z,{...z}):void 0})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as z,jsxs as K,Fragment as S}from"react/jsx-runtime";import{Card as F,CardContent as I}from"@contractspec/lib.ui-kit-web/ui/card";import{Skeleton as N}from"@contractspec/lib.ui-kit-web/ui/skeleton";import{cn as R}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as V}from"class-variance-authority";import*as v from"react";import{AiLinkButton as H}from"../../../molecules/AiLinkButton";import{FiltersToolbar as L}from"../../../molecules/FiltersToolbar";import{EmptyDataList as C}from"../../../organisms/EmptyDataList";import{PageHeaderResponsive as P}from"../../../organisms/PageHeaderResponsive";const b=V("space-y-4 md:space-y-6");export*from"./types";export function ListPageTemplate({children:Q,title:U,description:W,breadcrumb:X,actions:Y,className:Z,searchPlaceholder:$,searchValue:q,onSearchChange:A,onSearchSubmit:B,isLoading:D,data:M,renderItem:T,emptyProps:k}){const O=v.useMemo(()=>{if(typeof window>"u")return;const G=new URL(window.location.href);G.pathname=G.pathname.replace(/\/$/,"")+".md";return G.toString()},[]),E=()=>{return z(F,{children:z(I,{children:z(C,{...k})})})};return K("div",{className:R(b(),Z),children:[z(P,{title:U,subtitle:W,breadcrumb:X,actions:K(S,{children:[Y,O&&z(H,{href:O})]})}),z(L,{searchPlaceholder:$,searchValue:q,onSearchChange:A,onSearchSubmit:B}),K("div",{className:"space-y-2",children:[M?.map((G,J)=>z("div",{children:T({item:G,index:J})},J)),!M?.length&&(D?Array.from({length:10}).map((G,J)=>z(N,{className:"h-20 w-full rounded-md"},J)):E())]}),Q]})}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as A,jsxs as G}from"react/jsx-runtime";import{cn as K}from"@contractspec/lib.ui-kit-web/ui/utils";import{resolveTranslationNode as F,useDesignSystemTranslation as L}from"../../i18n/translation";import{VisualizationCard as M}from"./VisualizationCard";export function ComparisonView({items:H,title:I="Comparison",description:B,className:J}){const E=L();return G("section",{className:K("space-y-4",J),children:[G("div",{className:"space-y-1",children:[A("h3",{className:"font-semibold text-lg",children:F(I,E)}),B?A("p",{className:"text-muted-foreground text-sm",children:F(B,E)}):null]}),A("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:H.map((q)=>A(M,{className:q.className,data:q.data,description:q.description,footer:q.footer,height:q.height,spec:q.spec,title:q.title},q.key))})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as A,jsxs as I}from"react/jsx-runtime";import{VStack as F}from"@contractspec/lib.ui-kit/ui/stack";import{Text as G}from"@contractspec/lib.ui-kit/ui/text";import{resolveTranslationNode as H,useDesignSystemTranslation as M}from"../../i18n/translation";import{VisualizationCard as O}from"./VisualizationCard.mobile";export function ComparisonView({items:J,title:K="Comparison",description:B,className:L}){const E=M();return I(F,{gap:"md",className:L,children:[I(F,{gap:"xs",children:[A(G,{className:"font-semibold text-xl",children:H(K,E)}),B?A(G,{className:"text-muted-foreground text-sm",children:H(B,E)}):null]}),J.map((q)=>A(O,{className:q.className,data:q.data,description:q.description,footer:q.footer,height:q.height,spec:q.spec,title:q.title},q.key))]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as A,jsxs as G}from"react/jsx-runtime";import{cn as K}from"@contractspec/lib.ui-kit-web/ui/utils";import{resolveTranslationNode as F,useDesignSystemTranslation as L}from"../../i18n/translation";import{VisualizationCard as M}from"./VisualizationCard";export function TimelineView({items:H,title:I="Timeline",description:B,className:J}){const E=L();return G("section",{className:K("space-y-4",J),children:[G("div",{className:"space-y-1",children:[A("h3",{className:"font-semibold text-lg",children:F(I,E)}),B?A("p",{className:"text-muted-foreground text-sm",children:F(B,E)}):null]}),A("div",{className:"space-y-4",children:H.map((q)=>A(M,{className:q.className,data:q.data,description:q.description,footer:q.footer,height:q.height,spec:q.spec,title:q.title},q.key))})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as A,jsxs as I}from"react/jsx-runtime";import{VStack as F}from"@contractspec/lib.ui-kit/ui/stack";import{Text as G}from"@contractspec/lib.ui-kit/ui/text";import{resolveTranslationNode as H,useDesignSystemTranslation as M}from"../../i18n/translation";import{VisualizationCard as O}from"./VisualizationCard.mobile";export function TimelineView({items:J,title:K="Timeline",description:B,className:L}){const E=M();return I(F,{gap:"md",className:L,children:[I(F,{gap:"xs",children:[A(G,{className:"font-semibold text-xl",children:H(K,E)}),B?A(G,{className:"text-muted-foreground text-sm",children:H(B,E)}):null]}),J.map((q)=>A(O,{className:q.className,data:q.data,description:q.description,footer:q.footer,height:q.height,spec:q.spec,title:q.title},q.key))]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as q,jsxs as J}from"react/jsx-runtime";import{Card as U,CardContent as W,CardDescription as X,CardFooter as Y,CardHeader as Z,CardTitle as $}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as k}from"@contractspec/lib.ui-kit-web/ui/utils";import{resolveTranslationNode as F,resolveTranslationString as H,useDesignSystemTranslation as b}from"../../i18n/translation";import{VisualizationRenderer as z}from"./VisualizationRenderer";export function VisualizationCard({spec:E,data:K,title:L,description:M,footer:G,className:O,contentClassName:P,height:Q}){const I=b(),A=L??F(E.meta.title,I),B=M??H(E.meta.description,I);return J(U,{className:O,children:[A||B?J(Z,{className:"gap-2",children:[A?q($,{children:A}):null,B?q(X,{children:B}):null]}):null,q(W,{className:k(A||B?"pt-0":"",P),children:q(z,{data:K,height:Q,spec:E})}),G?q(Y,{children:G}):null]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as q,jsxs as J}from"react/jsx-runtime";import{Card as U,CardContent as W,CardDescription as X,CardFooter as Y,CardHeader as Z,CardTitle as $}from"@contractspec/lib.ui-kit/ui/card";import{cn as k}from"@contractspec/lib.ui-kit/ui/utils";import{resolveTranslationNode as F,resolveTranslationString as H,useDesignSystemTranslation as b}from"../../i18n/translation";import{VisualizationRenderer as z}from"./VisualizationRenderer.mobile";export function VisualizationCard({spec:E,data:K,title:L,description:M,footer:G,className:O,contentClassName:P,height:Q}){const I=b(),A=L??F(E.meta.title,I),B=M??H(E.meta.description,I);return J(U,{className:O,children:[A||B?J(Z,{children:[A?q($,{children:A}):null,B?q(X,{children:B}):null]}):null,q(W,{className:k(A||B?"pt-0":"",P),children:q(z,{data:K,height:Q,spec:E})}),G?q(Y,{children:G}):null]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as z}from"react/jsx-runtime";import{cn as v}from"@contractspec/lib.ui-kit-web/ui/utils";export function VisualizationGrid({children:g,className:q}){return z("div",{className:v("grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3",q),children:g})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as z}from"react/jsx-runtime";import{VStack as v}from"@contractspec/lib.ui-kit/ui/stack";export function VisualizationGrid({children:g,className:q}){return z(v,{gap:"md",className:q,children:g})}
|
|
@@ -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})}
|
|
@@ -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/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 declare const DesignSystemFeature: import("@contractspec/lib.contracts-spec").FeatureModuleSpec;
|
|
@@ -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
|
+
import*as a from"react";export function useListUrlState({defaults:n,paramKeys:t={q:"q",page:"page",limit:"limit",sort:"sort",filters:"f"},replaceState:d=!0}){const w=a.useCallback(()=>{if(typeof window>"u")return n;const e=new URL(window.location.href).searchParams,c=(f,o)=>{const s=f?Number(f):NaN;return Number.isFinite(s)&&s>0?s:o},r=e.get(t.filters);let i=n.filters;if(r)try{i=JSON.parse(r)}catch{i=n.filters}return{q:e.get(t.q)??n.q,page:c(e.get(t.page),n.page),limit:c(e.get(t.limit),n.limit),sort:e.get(t.sort),filters:i}},[n,t]),[g,F]=a.useState(w),u=a.useCallback((l)=>{if(typeof window>"u")return;const e=new URL(window.location.href),c=e.searchParams,r={...g,...l},i=(o,s)=>{if(s==null||s===""||s==="null")c.delete(o);else c.set(o,s)};i(t.q,r.q||null);i(t.page,String(r.page));i(t.limit,String(r.limit));i(t.sort,r.sort??null);try{const o=JSON.stringify(r.filters??{});i(t.filters,o==="{}"?null:o)}catch{}const f=`${e.pathname}?${c.toString()}${e.hash}`;if(d)window.history.replaceState({},"",f);else window.history.pushState({},"",f);F(r)},[g,t,d]),S=a.useCallback((l,e)=>{u({filters:{...g.filters,[l]:e}})},[g.filters,u]),T=a.useCallback(()=>{u({filters:{},page:1})},[u]);a.useEffect(()=>{const l=()=>F(w());window.addEventListener("popstate",l);return()=>window.removeEventListener("popstate",l)},[w]);return{state:g,setState:u,setFilter:S,clearFilters:T}}
|
|
@@ -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}}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,17 +16,13 @@ export { ScoreBar, type ScoreBarProps } from './components/atoms/ScoreBar';
|
|
|
16
16
|
export { Stepper } from './components/atoms/Stepper';
|
|
17
17
|
export { Textarea } from './components/atoms/Textarea';
|
|
18
18
|
export { DataTable, type DataTableProps, } from './components/data-table/DataTable';
|
|
19
|
+
export { DataTableToolbar, type DataTableToolbarProps, } from './components/data-table/DataTableToolbar';
|
|
19
20
|
export { DataViewDetail } from './components/data-view/DataViewDetail';
|
|
20
21
|
export { DataViewList } from './components/data-view/DataViewList';
|
|
21
22
|
export { DataViewRenderer } from './components/data-view/DataViewRenderer';
|
|
22
23
|
export { DataViewTable } from './components/data-view/DataViewTable';
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export { FormDialog } from './components/forms/FormDialog';
|
|
26
|
-
export { FormGrid, FormRow, FormSection } from './components/forms/FormLayout';
|
|
27
|
-
export { FormOneByOneLayout } from './components/forms/FormOneByOneLayout';
|
|
28
|
-
export { FormStepsLayout } from './components/forms/FormStepsLayout';
|
|
29
|
-
export { ZodForm } from './components/forms/ZodForm';
|
|
24
|
+
export * from './components/forms';
|
|
25
|
+
export * from './components/layout';
|
|
30
26
|
export { DefinitionList } from './components/legal/atoms/DefinitionList';
|
|
31
27
|
export { KeyValueList } from './components/legal/atoms/KeyValueList';
|
|
32
28
|
export { LegalCallout } from './components/legal/atoms/LegalCallout';
|
|
@@ -115,6 +111,7 @@ export type { VisualizationSurfaceItem } from './components/visualization/types'
|
|
|
115
111
|
export { VisualizationCard, type VisualizationCardProps, } from './components/visualization/VisualizationCard';
|
|
116
112
|
export { VisualizationGrid, type VisualizationGridProps, } from './components/visualization/VisualizationGrid';
|
|
117
113
|
export { VisualizationRenderer, type VisualizationRendererProps, } from './components/visualization/VisualizationRenderer';
|
|
114
|
+
export * from './design-system.feature';
|
|
118
115
|
export { useListUrlState } from './hooks/useListUrlState';
|
|
119
116
|
export * from './i18n/translation';
|
|
120
117
|
export { useColorScheme } from './platform/useColorScheme';
|
|
@@ -122,8 +119,5 @@ export { useReducedMotion } from './platform/useReducedMotion';
|
|
|
122
119
|
export { useResponsive } from './platform/useResponsive';
|
|
123
120
|
export * from './platform/withPlatformUI';
|
|
124
121
|
export * from './renderers';
|
|
125
|
-
export * from './theme
|
|
126
|
-
export { mapTokensForPlatform } from './theme/tokenBridge';
|
|
127
|
-
export * from './theme/tokens';
|
|
128
|
-
export * from './theme/variants';
|
|
122
|
+
export * from './theme';
|
|
129
123
|
export * from './types/navigation';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import*as j from"react";import{Button as Hf}from"@contractspec/lib.ui-kit-web/ui/button";import{Loader2 as p}from"lucide-react";import{jsx as x,jsxs as zf,Fragment as Df}from"react/jsx-runtime";function z({children:f,loading:g,spinnerPlacement:m="start",onPress:R,onPressIn:y,onPressOut:G,onLongPress:$,onTouchStart:q,onTouchEnd:Y,onTouchCancel:H,onMouseDown:W,onMouseUp:B,onClick:U,className:w,disabled:V,...M}){let O=Boolean(V||g),u=R?()=>{R()}:U,hf=!M.asChild?zf(Df,{children:[g&&m==="start"?x(p,{className:"h-4 w-4 animate-spin"}):null,f,g&&m==="end"?x(p,{className:"h-4 w-4 animate-spin"}):null]}):f;return x(Hf,{...M,className:w,disabled:O,"aria-busy":g?!0:void 0,"aria-disabled":O?!0:void 0,onClick:u,onMouseDown:W||y,onMouseUp:B||G,onTouchStart:q,onTouchEnd:Y||G,onTouchCancel:H||G,type:M?.type??"button",children:hf})}import{Label as C}from"@contractspec/lib.ui-kit-web/ui/label";import{Input as Wf}from"@contractspec/lib.ui-kit-web/ui/input";function Pf(f){if(!f)return;switch(f){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 Sf(f,g){if(!g)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(g))f.autoCapitalize="words";if(["username","new-password","current-password","one-time-code","email","url"].includes(g))f.autoCapitalize="none"}function _(f){let g=f?.kind??Pf(f?.autoComplete)??"text",m={};switch(g){case"password":if(m.type="password",m.autoCapitalize="none",m.autoComplete=f?.autoComplete??"current-password",f?.autoCorrect!=null)m.autoCorrect=f.autoCorrect;break;case"new-password":if(m.type="password",m.autoCapitalize="none",m.autoComplete=f?.autoComplete??"new-password",f?.autoCorrect!=null)m.autoCorrect=f.autoCorrect;break;case"username":m.type="text",m.autoCapitalize="none",m.autoComplete=f?.autoComplete??"username";break;case"email":m.type="email",m.inputMode="email",m.autoCapitalize="none",m.autoComplete=f?.autoComplete??"email";break;case"url":m.type="url",m.inputMode="url",m.autoComplete=f?.autoComplete??"url";break;case"search":m.type="search",m.inputMode="search",m.enterKeyHint=f?.enterKeyHint??"search",m.autoComplete=f?.autoComplete??"off";break;case"phone":case"tel":m.type="tel",m.inputMode="tel",m.autoComplete=f?.autoComplete??"tel";break;case"number":case"int":m.type="text",m.inputMode="numeric",m.pattern="[0-9]*";break;case"decimal":m.type="text",m.inputMode="decimal",m.step="any";break;case"numbers-and-punctuation":m.type="text",m.inputMode="text",m.pattern="[0-9.,-]*";break;case"otp":m.type="text",m.inputMode="numeric",m.autoComplete=f?.autoComplete??"one-time-code",m.autoCapitalize="none";break;case"name":m.type="text",m.autoComplete=f?.autoComplete??"name",m.autoCapitalize=f?.autoCapitalize??"words";break;case"given-name":m.type="text",m.autoComplete=f?.autoComplete??"given-name",m.autoCapitalize=f?.autoCapitalize??"words";break;case"family-name":m.type="text",m.autoComplete=f?.autoComplete??"family-name",m.autoCapitalize=f?.autoCapitalize??"words";break;case"address-line1":m.type="text",m.autoComplete=f?.autoComplete??"address-line1";break;case"address-line2":m.type="text",m.autoComplete=f?.autoComplete??"address-line2";break;case"postal-code":m.type="text",m.inputMode="numeric",m.pattern="[0-9]*",m.autoComplete=f?.autoComplete??"postal-code";break;case"cc-number":m.type="text",m.inputMode="numeric",m.pattern="[0-9]*",m.autoComplete=f?.autoComplete??"cc-number";break;case"cc-exp":m.type="text",m.inputMode="numeric",m.pattern="[0-9/]*",m.autoComplete=f?.autoComplete??"cc-exp";break;case"cc-csc":m.type="text",m.inputMode="numeric",m.pattern="[0-9]*",m.autoComplete=f?.autoComplete??"cc-csc";break;case"off":m.type="text",m.autoComplete="off";break;case"date":m.type="date",m.inputMode="date",m.pattern="[0-9./-]*";break;default:m.type="text";break}if(f?.autoCapitalize)m.autoCapitalize=f.autoCapitalize;if(f?.autoComplete)m.autoComplete=f.autoComplete;if(f?.autoCorrect!=null)m.autoCorrect=f.autoCorrect;if(f?.enterKeyHint)m.enterKeyHint=f.enterKeyHint;return Sf(m,f?.autoComplete),m}import{jsx as Kf}from"react/jsx-runtime";function J({value:f,defaultValue:g,onChange:m,onSubmit:R,onFocus:y,onBlur:G,placeholder:$,disabled:q,readOnly:Y,maxLength:H,name:W,className:B,keyboard:U,...w}){let V=_(U);return Kf(Wf,{...w,className:B,value:f,defaultValue:g,onChange:m,onFocus:y,onBlur:G,placeholder:$,disabled:q,readOnly:Y,maxLength:H,name:W,...V})}import{Textarea as Xf}from"@contractspec/lib.ui-kit-web/ui/textarea";import*as ff from"react";import{jsx as Ef}from"react/jsx-runtime";function b({value:f,defaultValue:g,onChange:m,onSubmit:R,onFocus:y,onBlur:G,placeholder:$,disabled:q,readOnly:Y,maxLength:H,name:W,className:B,rows:U,keyboard:w,...V}){let M=_(w),O=ff.useCallback((u)=>m?.(u),[m]);return Ef(Xf,{...V,className:B,value:f,defaultValue:g,onChange:O,onFocus:y,onBlur:G,placeholder:$,disabled:q,readOnly:Y,maxLength:H,name:W,rows:U,...M})}import{jsx as P,jsxs as N}from"react/jsx-runtime";function mf({value:f,onChange:g,disabled:m}){return N("div",{className:"space-y-4",children:[N("div",{className:"space-y-2",children:[P(C,{children:"Nom"}),P(J,{value:f.name,onChange:(R)=>g({...f,name:R.target.value}),disabled:m})]}),N("div",{className:"space-y-2",children:[P(C,{children:"Email"}),P(J,{type:"email",value:f.email,onChange:(R)=>g({...f,email:R.target.value}),disabled:m})]}),N("div",{className:"space-y-2",children:[P(C,{children:"Objet"}),P(J,{value:f.subject,onChange:(R)=>g({...f,subject:R.target.value}),disabled:m})]}),N("div",{className:"space-y-2",children:[P(C,{children:"Message"}),P(b,{value:f.message,onChange:(R)=>g({...f,message:R.target.value}),disabled:m,rows:6})]})]})}import{jsx as gf,jsxs as Bf}from"react/jsx-runtime";function Tg({labels:f={submit:"Envoyer"},initialValue:g={name:"",email:"",subject:"",message:""},disabled:m,onSubmit:R}){let[y,G]=j.useState(g),[$,q]=j.useState(!1);return Bf("form",{onSubmit:async(H)=>{if(H.preventDefault(),!R)return;q(!0);try{await R(y)}finally{q(!1)}},className:"space-y-6",children:[gf(mf,{value:y,onChange:G,disabled:m||$}),gf(z,{disabled:m||$,type:"submit",children:$?"Envoi\u2026":f.submit})]})}import*as Tf from"react";import{cn as Uf}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as wf}from"class-variance-authority";import{jsx as Mf}from"react/jsx-runtime";var Vf=wf("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"}});function X({as:f,level:g,tone:m,spacing:R,className:y,...G}){return Mf(f??g??"h2",{className:Uf(Vf({level:g,tone:m,spacing:R}),y),...G})}import{cn as Nf}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as kf}from"class-variance-authority";import{jsx as Of}from"react/jsx-runtime";var If=kf("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"}});function L({spacing:f,border:g,tone:m,className:R,...y}){return Of("div",{className:Nf(If({spacing:f,border:g,tone:m}),R),...y})}import{cn as _f}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as bf}from"class-variance-authority";import{jsx as Lf}from"react/jsx-runtime";var Cf=bf("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"}});function Rf({as:f="p",tone:g,size:m,spacing:R,className:y,...G}){return Lf(f,{className:_f(Cf({tone:g,size:m,spacing:R}),y),...G})}import{jsx as d,jsxs as yf}from"react/jsx-runtime";function Ug({onExport:f,onDelete:g,labels:m={export:"Demander une copie",delete:"Demander la suppression"}}){let[R,y]=Tf.useState(null),G=async($)=>{let q=$==="export"?f:g;if(!q)return;y($);try{await q()}finally{y(null)}};return yf(L,{border:"top",className:"space-y-3",children:[d(X,{as:"h2",level:"h2",children:"Demandes de donn\xE9es"}),d(Rf,{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."}),yf("div",{className:"flex flex-wrap gap-3",children:[d(z,{onPress:()=>G("export"),disabled:R!==null,children:R==="export"?"Envoi\u2026":m.export}),d(z,{variant:"destructive",onPress:()=>G("delete"),disabled:R!==null,children:R==="delete"?"Envoi\u2026":m.delete})]})]})}import{cn as df}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as Ff}from"class-variance-authority";import{jsx as cf}from"react/jsx-runtime";var Af=Ff("",{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"}});function qf({type:f,spacing:g,className:m,children:R,...y}){return cf(f==="ordered"?"ol":"ul",{className:df(Af({type:f,spacing:g}),m),...y,children:R})}import{jsx as v,jsxs as uf}from"react/jsx-runtime";function Cg({title:f="Vos droits RGPD",rights:g=["Acc\xE8s \xE0 vos donn\xE9es","Rectification","Effacement (droit \xE0 l\u2019oubli)","Opposition et limitation","Portabilit\xE9"]}){return uf(L,{border:"top",children:[v(X,{as:"h2",level:"h2",children:f}),v(qf,{type:"unordered",children:g.map((m,R)=>v("li",{children:m},R))})]})}import{cn as lf}from"@contractspec/lib.ui-kit-web/ui/utils";import{cn as xf}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as jf,jsxs as i}from"react/jsx-runtime";function Gf({lastUpdated:f,version:g,className:m}){let R=(y)=>{if(!y)return null;try{return(typeof y==="string"?new Date(y):y).toLocaleDateString()}catch{return String(y)}};return i("div",{className:xf("text-base text-muted-foreground",m),children:[g&&i("span",{children:["Version ",g]}),g&&f&&jf("span",{className:"mx-2",children:"\u2022"}),f&&i("span",{children:["Derni\xE8re mise \xE0 jour: ",R(f)]})]})}import{cn as n}from"@contractspec/lib.ui-kit-web/ui/utils";import{cva as vf}from"class-variance-authority";import{jsx as k}from"react/jsx-runtime";var nf=vf("text-base",{variants:{variant:{sidebar:"space-y-2",inline:"flex flex-wrap gap-3"},size:{sm:"",md:"text-base"}},defaultVariants:{variant:"sidebar",size:"md"}});function l({items:f,activeHref:g,onNavigate:m,variant:R,size:y,className:G,...$}){return k("nav",{"aria-label":"Table of contents",className:n(nf({variant:R,size:y}),G),...$,children:R==="inline"?f.map((q)=>k("a",{href:q.href,onClick:(Y)=>{m?.(q.href)},className:n("rounded-xs px-2 py-1 hover:bg-accent hover:text-accent-foreground",g===q.href&&"bg-accent text-accent-foreground"),children:q.label},q.href)):k("ul",{className:"list-none space-y-2 pl-0",children:f.map((q)=>k("li",{children:k("a",{href:q.href,onClick:()=>m?.(q.href),className:n("block rounded-xs px-2 py-1 hover:bg-accent hover:text-accent-foreground",g===q.href&&"bg-accent text-accent-foreground"),children:q.label})},q.href))})})}import{jsx as S,jsxs as e}from"react/jsx-runtime";function rg({title:f,meta:g,toc:m,children:R,className:y}){return e("div",{className:lf("mx-auto w-full max-w-6xl px-4 py-8 md:py-12",y),children:[e("div",{className:"mb-6 space-y-2",children:[S(X,{as:"h1",level:"h1",spacing:"sm",children:f}),g&&S(Gf,{lastUpdated:g.lastUpdated,version:g.version})]}),m&&m.length>0&&S("div",{className:"mb-6 md:hidden",children:S(l,{items:m,variant:"inline"})}),e("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-[220px_minmax(0,1fr)]",children:[m&&m.length>0?S("aside",{className:"sticky top-24 hidden self-start md:block",children:S(l,{items:m,variant:"sidebar"})}):S("div",{className:"hidden md:block"}),S("article",{className:"prose max-w-none text-foreground",children:R})]})]})}import*as F from"react";import{jsx as ef}from"react/jsx-runtime";var $f=F.createContext(void 0);function ag({children:f,resolver:g}){return ef($f.Provider,{value:g,children:f})}function r(){return F.useContext($f)}function t(f,g){if(!f)return f;return g?.(f)??f}function Jf(f,g){return typeof f==="string"?t(f,g):f}function sg({registry:f,locale:g,fallbackLocale:m,specKeys:R=[]}){return(y)=>{let G=y.match(/^([^:]+)::(.+)$/);if(G?.[1]&&G[2]){let[,$,q]=G;return f.getWithFallback($,q,g,m)?.message.value}for(let $ of R){let q=f.getWithFallback($,y,g,m);if(q)return q.message.value}return}}var rf={sm:640,md:768,lg:1024,xl:1280};function mR(f){let g=f.platform??"web",m={...rf,...f.breakpoints};return{platform:g,tokens:f.tokens,breakpoints:m}}import{shadcnDriver as tf}from"@contractspec/lib.contracts-runtime-client-react/drivers/shadcn";import{createFormRenderer as of}from"@contractspec/lib.contracts-runtime-client-react/form-render";import{Checkbox as af}from"@contractspec/lib.ui-kit-web/ui/checkbox";import{Command as sf,CommandEmpty as pf,CommandGroup as fm,CommandInput as mm,CommandItem as gm,CommandList as Rm}from"@contractspec/lib.ui-kit-web/ui/command";import{DatePicker as ym}from"@contractspec/lib.ui-kit-web/ui/date-picker";import{DateTimePicker as Tm}from"@contractspec/lib.ui-kit-web/ui/datetime-picker";import{FieldDescription as qm,FieldError as Gm,FieldGroup as $m,FieldLabel as Jm,Field as Qm}from"@contractspec/lib.ui-kit-web/ui/field";import{Label as Ym}from"@contractspec/lib.ui-kit-web/ui/label";import{RadioGroupItem as Zm,RadioGroup as hm}from"@contractspec/lib.ui-kit-web/ui/radio-group";import{SelectContent as Hm,SelectGroup as Dm,SelectItem as zm,SelectTrigger as Pm,Select as Sm,SelectValue as Wm}from"@contractspec/lib.ui-kit-web/ui/select";import{Switch as Km}from"@contractspec/lib.ui-kit-web/ui/switch";import{TimePicker as Xm}from"@contractspec/lib.ui-kit-web/ui/time-picker";import{jsx as T,jsxs as D}from"react/jsx-runtime";function Z(f){return typeof f==="string"?f:String(f??"")}var Q={addressLine1:"Address line 1",addressLine2:"Address line 2",city:"City",countryCode:"Country code",extension:"Extension",noResultsFound:"No results found.",phoneNumber:"Phone number",postalCode:"Postal code",region:"Region",search:"Search",selected:"Selected"};function h(){let f=r();return(g)=>t(g,f)}function o(f,g,m){return f(g)??m}function I(){let f=r();return(g)=>Jf(g,f)}var a=(f)=>{let g=h(),{options:m,value:R,onChange:y,placeholder:G,...$}=f;return D(Sm,{value:R==null?"":Z(R),onValueChange:(q)=>y?.(q),...$,children:[T(Pm,{className:"w-full",children:T(Wm,{placeholder:g(G)})}),T(Hm,{children:T(Dm,{children:m?.map((q,Y)=>T(zm,{value:Z(q.value),disabled:q.disabled,children:g(q.labelI18n)},`${Z(q.value)}-${Y}`))})})]})},Em=(f)=>T(af,{checked:Boolean(f.checked),onCheckedChange:(g)=>f.onCheckedChange?.(Boolean(g))}),Bm=(f)=>{let g=h();return T(hm,{value:f.value==null?"":Z(f.value),onValueChange:(m)=>f.onValueChange?.(m),disabled:f.disabled,children:f.options?.map((m)=>{let R=Z(m.value);return D("div",{className:"flex items-center gap-3",children:[T(Zm,{value:R,id:R}),T(Ym,{htmlFor:R,children:g(m.labelI18n)})]},R)})})},Um=(f)=>T(Km,{checked:Boolean(f.checked),onCheckedChange:(g)=>f.onCheckedChange?.(Boolean(g))}),wm=(f)=>{let g=h();return D("div",{className:"space-y-2",children:[D(sf,{shouldFilter:!1,className:"rounded-md border border-input",children:[T(mm,{value:f.query,onValueChange:f.onQueryChange,placeholder:o(g,f.placeholder,Q.search),disabled:f.disabled||f.readOnly}),D(Rm,{children:[T(pf,{children:o(g,Q.noResultsFound,Q.noResultsFound)}),T(fm,{children:f.options.map((m)=>{let R=f.selectedOptions.some((y)=>Z(y.value)===Z(m.value));return D(gm,{value:g(m.labelI18n)??m.labelI18n,onSelect:()=>f.onSelectOption?.(m),disabled:f.disabled||m.disabled||f.readOnly,children:[D("div",{className:"flex flex-col",children:[T("span",{children:g(m.labelI18n)}),m.descriptionI18n?T("span",{className:"text-muted-foreground text-xs",children:g(m.descriptionI18n)}):null]}),R?T("span",{className:"ml-auto text-muted-foreground text-xs",children:o(g,Q.selected,Q.selected)}):null]},Z(m.value))})})]})]}),f.selectedOptions.length?T("div",{className:"flex flex-wrap gap-2",children:f.selectedOptions.map((m)=>T(z,{type:"button",variant:"outline",size:"sm",onClick:()=>f.onRemoveOption?.(m),disabled:!f.multiple||f.readOnly||f.disabled,children:g(m.labelI18n)},`selected-${Z(m.value)}`))}):null]})};function K(f,g,m){return{line1:f?.line1??"",line2:f?.line2,city:f?.city,region:f?.region,postalCode:f?.postalCode,countryCode:f?.countryCode,[g]:m}}var Vm=(f)=>{let g=h();return D("div",{className:"grid gap-3 md:grid-cols-2",children:[T(J,{value:f.value?.line1??"",onChange:(m)=>f.onChange?.(K(f.value,"line1",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.line1??Q.addressLine1),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.line2??"",onChange:(m)=>f.onChange?.(K(f.value,"line2",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.line2??Q.addressLine2),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.city??"",onChange:(m)=>f.onChange?.(K(f.value,"city",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.city??Q.city),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.region??"",onChange:(m)=>f.onChange?.(K(f.value,"region",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.region??Q.region),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.postalCode??"",onChange:(m)=>f.onChange?.(K(f.value,"postalCode",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.postalCode??Q.postalCode),readOnly:f.readOnly,disabled:f.disabled}),f.countryOptions?.length?T(a,{value:f.value?.countryCode??"",onChange:(m)=>f.onChange?.(K(f.value,"countryCode",Z(m))),options:f.countryOptions,disabled:f.disabled||f.readOnly}):T(J,{value:f.value?.countryCode??"",onChange:(m)=>f.onChange?.(K(f.value,"countryCode",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.countryCode??Q.countryCode),readOnly:f.readOnly,disabled:f.disabled})]})};function A(f,g,m){return{countryCode:f?.countryCode??"",nationalNumber:f?.nationalNumber??"",extension:f?.extension,e164:f?.e164,[g]:m}}var Mm=(f)=>{let g=h();return D("div",{className:"grid gap-3 md:grid-cols-3",children:[f.countryOptions?.length?T(a,{value:f.value?.countryCode??"",onChange:(m)=>f.onChange?.(A(f.value,"countryCode",Z(m))),options:f.countryOptions,disabled:f.disabled||f.readOnly}):T(J,{value:f.value?.countryCode??"",onChange:(m)=>f.onChange?.(A(f.value,"countryCode",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.countryCode??Q.countryCode),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.nationalNumber??"",onChange:(m)=>f.onChange?.(A(f.value,"nationalNumber",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.nationalNumber??Q.phoneNumber),readOnly:f.readOnly,disabled:f.disabled}),T(J,{value:f.value?.extension??"",onChange:(m)=>f.onChange?.(A(f.value,"extension",m.currentTarget.value)),placeholder:g(f.parts?.placeholdersI18n?.extension??Q.extension),readOnly:f.readOnly,disabled:f.disabled})]})},Nm=(f)=>{let g=h();return T(ym,{value:f.value??null,onChange:f.onChange??(()=>{return}),disabled:f.disabled,placeholder:g(f.placeholder),minDate:f.minDate,maxDate:f.maxDate})},km=(f)=>{let g=h();return T(Xm,{value:f.value??null,onChange:f.onChange??(()=>{return}),disabled:f.disabled,placeholder:g(f.placeholder),is24Hour:f.is24Hour})},Im=(f)=>{let g=h();return T(Tm,{value:f.value??null,onChange:f.onChange??(()=>{return}),disabled:f.disabled,datePlaceholder:g(f.datePlaceholder),timePlaceholder:g(f.timePlaceholder),minDate:f.minDate,maxDate:f.maxDate,is24Hour:f.is24Hour})},Om=(f)=>{let g=I();return T(Jm,{...f,children:g(f.children)})},_m=(f)=>{let g=I();return T(qm,{...f,children:g(f.children)})},bm=(f)=>{let g=I();return T(Gm,{...f,children:g(f.children)})},Cm=(f)=>{let g=h();return T(J,{...f,placeholder:g(f.placeholder)})},Lm=(f)=>{let g=h();return T(b,{...f,placeholder:g(f.placeholder)})},dm=(f)=>{let g=I();return T(z,{...f,children:g(f.children)})},WR=of({driver:tf({Field:Qm,FieldLabel:Om,FieldDescription:_m,FieldError:bm,FieldGroup:$m,FieldSet:(f)=>T("fieldset",{...f}),FieldLegend:(f)=>{let g=I();return T("legend",{...f,children:g(f.children)})},Input:Cm,Textarea:Lm,Select:a,Checkbox:Em,RadioGroup:Bm,Switch:Um,Autocomplete:wm,AddressField:Vm,PhoneField:Mm,DateField:Nm,TimeField:km,DateTimeField:Im,Button:dm})});var E={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}};function s(f,g=E){if(f==="web")return g;let{space:m,radii:R,icons:y}=g;return{colors:g.colors,spacing:m,typography:{h1:g.typography.h1,body:g.typography.body},radii:R,icons:y}}function c(f,g){if(!g)return f;let m={...f},R=m;for(let[y,G]of Object.entries(g))if(G?.value!=null)R[y]=G.value;return m}function Qf(f,g){if(!g)return f;return{...f,colors:c(f.colors,g.colors),radii:c(f.radii,g.radii),space:c(f.space,g.space),typography:c(f.typography,g.typography)}}function Fm(f,g){if(!g?.targets?.length)return!0;return g.targets.includes(f.target)}function Yf(f,g,m=E){let R=Qf(m,f.tokens);for(let y of f.overrides??[])if(Fm(y,g))R=Qf(R,y.tokens);return R}function Zf(f,g,m){let R=f.get(g.key,g.version);if(!R)return E;let y=R.meta.extends?Zf(f,R.meta.extends,m):E;return Yf(R,m,y)}function MR(f,g,m,R){if("tokens"in f){let Y=f,H=g,W=Yf(Y,m);return s(H,W)}let y=f,G=g,$=m,q=Zf(y,G,R);return s($,q)}import{cva as Am}from"class-variance-authority";var IR=Am("",{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"}});export{mR as withPlatformUI,S2 as useResponsive,z2 as useReducedMotion,a1 as usePackageManager,Y2 as useListUrlState,r as useDesignSystemTranslation,H2 as useColorScheme,t as resolveTranslationString,Jf as resolveTranslationNode,Yf as resolveThemeSpecTokens,Zf as resolveThemeRefTokens,MR as resolvePlatformTheme,Qf as mergeThemeTokens,B2 as mapTokensForPlatform,WR as formRenderer,IR as dsBaseVariants,E as defaultTokens,sg as createTranslationResolver,ly as ZodForm,J2 as VisualizationRenderer,G2 as VisualizationGrid,T2 as VisualizationCard,vR as ViewButton,jR as ToggleRightButton,xR as ToggleLeftButton,uR as ToggleButton,R2 as TimelineView,fy as TimeChip,Ky as Textarea,r1 as TestimonialCarousel,kT as TermsTemplate,Sy as Stepper,r4 as StatusChip,l4 as StatCardGroup,n4 as StatCard,v4 as SkeletonList,x4 as SkeletonCircle,c4 as SkeletonBlock,zy as ScoreBar,MT as SalesTermsTemplate,Hy as RankBadge,wT as PrivacyTemplate,l1 as PricingSection,i1 as PricingCarousel,pR as PlaceChip,j1 as PageHeaderResponsive,o1 as PackageManagerProvider,F4 as OverviewCard,L4 as NavUser,b4 as NavMain,Zy as NavBrand,u1 as ModelComparisonView,S1 as MobileHeader,nT as MarketingStepCard,vT as MarketingSection,A1 as MarketingLayout,xT as MarketingIconCard,d1 as MarketingHeaderMobile,C1 as MarketingHeaderDesktop,_1 as MarketingHeader,cT as MarketingComparisonSection,FT as MarketingCardsSection,LT as MarketingCardTitle,CT as MarketingCardHeader,bT as MarketingCardDescription,_T as MarketingCardContent,OT as MarketingCard,O4 as MarkdownRenderer,Qy as LoaderCircular,k4 as LoaderBlock,I1 as ListTablePage,p1 as ListPageTemplate,N1 as ListPageResponsive,V1 as ListGridPage,U1 as ListCardPage,$y as Link,qT as LegalText,DT as LegalTOC,yT as LegalSection,rg as LegalPageLayout,hT as LegalMeta,gT as LegalList,fT as LegalHeading,sy as LegalCallout,M4 as LangSwitch,oy as KeyValueList,w4 as InstallCommand,qy as Input,B4 as HoverPreviewUser,X4 as HoverPreviewStats,W4 as HoverPreviewSimple,P4 as HoverPreviewMedia,D4 as HoverPreviewDoc,h4 as HoverPreview,E1 as HeroSection,K1 as HeroResponsive,P1 as Header,Cg as GDPRRights,Ug as GDPRDataRequest,iy as FormStepsLayout,uy as FormSection,cy as FormRow,jy as FormOneByOneLayout,Ay as FormGrid,dy as FormDialog,Cy as FormCardLayout,H1 as Footer,Y4 as FiltersToolbar,Z1 as FeaturesSection,Q1 as FeatureCarousel,$1 as FAQSection,yy as ErrorState,J4 as EntityCard,gy as EmptyState,q1 as EmptySearchResult,y1 as EmptyDataList,cR as EditButton,sR as DurationChip,G4 as DimensionScoresCard,z1 as DesktopHeader,ag as DesignSystemTranslationProvider,AR as DeleteButton,ry as DefinitionList,aR as DateChip,Iy as DataViewTable,Ny as DataViewRenderer,Vy as DataViewList,Uy as DataViewDetail,Ey as DataTable,rf as DEFAULT_BREAKPOINTS,tR as Cta,T4 as CopyButton,BT as CookiesTemplate,XT as ContactTemplate,Tg as ContactForm,YT as ContactFields,JT as ConsentList,$T as ConsentItem,m2 as ComparisonView,R4 as CommandTabs,m4 as CommandSearchTrigger,pT as CommandPalette,aT as CodeBlock,eR as ButtonLink,nR as Button,tT as Breadcrumbs,dR as ApprovalQueue,g1 as AppSidebar,f1 as AppLayout,s4 as AppHeader,eT as AiLinkButton,CR as AgentMonitor,_y as ActionForm,o4 as AcademyLayout};
|
|
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{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{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{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{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
|
+
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
|
+
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 f from"react";import{Appearance as g}from"react-native";export function useColorScheme(){const[j,k]=f.useState(()=>g.getColorScheme?.()==="dark"?"dark":"light");f.useEffect(()=>{const q=({colorScheme:z})=>{k(z==="dark"?"dark":"light")},w=g.addChangeListener?.(q);return()=>w?.remove?.()},[]);return j}
|
|
@@ -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 z from"react";import{AccessibilityInfo as k}from"react-native";export function useReducedMotion(){const[B,q]=z.useState(!1);z.useEffect(()=>{let g=!0;k?.isReduceMotionEnabled().then((j)=>{if(g)q(Boolean(j))});const w=(j)=>{if(g)q(Boolean(j))},C=k?.addEventListener?.("reduceMotionChanged",w);return()=>{g=!1;C?.remove?.();k?.removeEventListener?.("reduceMotionChanged",w)}},[]);return B}
|
|
@@ -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
|
+
import{useEffect as I,useMemo as J,useState as K}from"react";import{Dimensions as y}from"react-native";const O={sm:640,md:768,lg:1024,xl:1280};export function useResponsive(k){const g=J(()=>({...O,...k}),[k]),[j,z]=K(y.get("window").width);I(()=>{const x=y.addEventListener("change",({window:H})=>{z(H.width)});return()=>{if(typeof x?.remove==="function")x.remove()}},[]);const l=j>=g.sm,B=j>=g.md,q=j>=g.lg,C=j>=g.xl;return{width:j,breakpoints:g,isSM:l,isMD:B,isLG:q,isXL:C,screen:q?"desktop":l?"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,3 @@
|
|
|
1
|
+
export declare const formRenderer: {
|
|
2
|
+
render: (spec: import("@contractspec/lib.contracts-spec").FormSpec<import("@contractspec/lib.schema").AnySchemaModel>, options?: import("@contractspec/lib.contracts-runtime-client-react/form-render.impl").RenderOptions<unknown> | undefined) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
};
|
|
@@ -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 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})});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AddressFormValue, FormOption, PhoneFormValue } from '@contractspec/lib.contracts-spec/forms';
|
|
2
|
+
export declare const AddressField: (props: {
|
|
3
|
+
value?: AddressFormValue | null;
|
|
4
|
+
onChange?: (value: AddressFormValue) => void;
|
|
5
|
+
parts?: {
|
|
6
|
+
labelsI18n?: Partial<Record<keyof AddressFormValue, string>>;
|
|
7
|
+
placeholdersI18n?: Partial<Record<keyof AddressFormValue, string>>;
|
|
8
|
+
};
|
|
9
|
+
countryOptions?: FormOption[];
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare const PhoneField: (props: {
|
|
14
|
+
value?: PhoneFormValue | null;
|
|
15
|
+
onChange?: (value: PhoneFormValue) => void;
|
|
16
|
+
parts?: {
|
|
17
|
+
labelsI18n?: Partial<Record<keyof PhoneFormValue, string>>;
|
|
18
|
+
placeholdersI18n?: Partial<Record<keyof PhoneFormValue, string>>;
|
|
19
|
+
};
|
|
20
|
+
countryOptions?: FormOption[];
|
|
21
|
+
readOnly?: boolean;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -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})]})};export const 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,35 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import { Button } from '../../components/atoms/Button';
|
|
3
|
+
import { Input } from '../../components/atoms/Input';
|
|
4
|
+
import { Textarea } from '../../components/atoms/Textarea';
|
|
5
|
+
import { FieldDescription, FieldError, FieldLabel, InputGroupInput, InputGroupText, InputGroupTextarea } from '../../components/forms/controls/Field';
|
|
6
|
+
export declare const TranslatedFieldLabel: (props: React.ComponentProps<typeof FieldLabel>) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const TranslatedFieldDescription: (props: React.ComponentProps<typeof FieldDescription>) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const TranslatedFieldError: (props: React.ComponentProps<typeof FieldError>) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare const TranslatedInput: (props: React.ComponentProps<typeof Input>) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const TranslatedTextarea: (props: React.ComponentProps<typeof Textarea>) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const TranslatedInputGroupInput: (props: React.ComponentProps<typeof InputGroupInput>) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const TranslatedInputGroupTextarea: (props: React.ComponentProps<typeof InputGroupTextarea>) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare const TranslatedInputGroupText: (props: React.ComponentProps<typeof InputGroupText>) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const InputGroupIcon: ({ iconKey, label, }: {
|
|
15
|
+
iconKey: string;
|
|
16
|
+
label?: string;
|
|
17
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
type TranslatedButtonProps = Omit<React.ComponentProps<typeof Button>, 'onClick' | 'onPress'> & {
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
onPress?: () => void;
|
|
21
|
+
};
|
|
22
|
+
export declare const TranslatedButton: ({ children, onClick, onPress, ...props }: TranslatedButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare const FormRoot: ({ children, className, }: React.PropsWithChildren<{
|
|
24
|
+
className?: string;
|
|
25
|
+
}>) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare const FieldArray: ({ children, className, }: React.PropsWithChildren<{
|
|
27
|
+
className?: string;
|
|
28
|
+
}>) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare const FieldArrayItem: ({ children, className, }: React.PropsWithChildren<{
|
|
30
|
+
className?: string;
|
|
31
|
+
}>) => import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare const Actions: ({ children, className, }: React.PropsWithChildren<{
|
|
33
|
+
className?: string;
|
|
34
|
+
}>) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export {};
|
|
@@ -0,0 +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});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AddressFormValue, PhoneFormValue } from '@contractspec/lib.contracts-spec/forms';
|
|
2
|
+
export declare const FORM_FALLBACK_TEXT: {
|
|
3
|
+
readonly addressLine1: "Address line 1";
|
|
4
|
+
readonly addressLine2: "Address line 2";
|
|
5
|
+
readonly city: "City";
|
|
6
|
+
readonly countryCode: "Country code";
|
|
7
|
+
readonly extension: "Extension";
|
|
8
|
+
readonly phoneNumber: "Phone number";
|
|
9
|
+
readonly postalCode: "Postal code";
|
|
10
|
+
readonly region: "Region";
|
|
11
|
+
};
|
|
12
|
+
export declare function updateAddress(value: AddressFormValue | null | undefined, key: keyof AddressFormValue, next: string): {
|
|
13
|
+
[key]: string;
|
|
14
|
+
line1: string;
|
|
15
|
+
line2: string | undefined;
|
|
16
|
+
city: string | undefined;
|
|
17
|
+
region: string | undefined;
|
|
18
|
+
postalCode: string | undefined;
|
|
19
|
+
countryCode: string | undefined;
|
|
20
|
+
};
|
|
21
|
+
export declare function updatePhone(value: PhoneFormValue | null | undefined, key: keyof PhoneFormValue, next: string): {
|
|
22
|
+
[key]: string;
|
|
23
|
+
countryCode: string;
|
|
24
|
+
nationalNumber: string;
|
|
25
|
+
extension: string | undefined;
|
|
26
|
+
e164: string | undefined;
|
|
27
|
+
};
|
|
@@ -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}}
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
render: (spec: import("@contractspec/lib.contracts-spec").FormSpec<import("@contractspec/lib.schema").AnySchemaModel>, options?: import("@contractspec/lib.contracts-runtime-client-react/form-render.impl").RenderOptions<unknown> | undefined) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
};
|
|
1
|
+
export { formRenderer } from './form-contract/renderer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{formRenderer}from"./form-contract/renderer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./form-contract";
|
|
@@ -3,9 +3,12 @@ import type { BridgedTokens, PlatformKind } from './tokenBridge';
|
|
|
3
3
|
import { type ThemeTokens } from './tokens';
|
|
4
4
|
export interface ThemeResolutionContext {
|
|
5
5
|
targets?: string[];
|
|
6
|
+
mode?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function mergeThemeTokens(base: ThemeTokens, tokens?: ContractThemeTokens): ThemeTokens;
|
|
8
9
|
export declare function resolveThemeSpecTokens(spec: ThemeSpec, context?: ThemeResolutionContext, baseTokens?: ThemeTokens): ThemeTokens;
|
|
9
10
|
export declare function resolveThemeRefTokens(registry: ThemeRegistry, ref: ThemeRef, context?: ThemeResolutionContext): ThemeTokens;
|
|
11
|
+
export declare function resolveThemeModeTokens(spec: ThemeSpec, mode: string, context?: ThemeResolutionContext, baseTokens?: ThemeTokens): ThemeTokens;
|
|
12
|
+
export declare function resolveThemeModeTokens(registry: ThemeRegistry, ref: ThemeRef, mode: string, context?: ThemeResolutionContext): ThemeTokens;
|
|
10
13
|
export declare function resolvePlatformTheme(spec: ThemeSpec, platform: PlatformKind, context?: ThemeResolutionContext): BridgedTokens;
|
|
11
14
|
export declare function resolvePlatformTheme(registry: ThemeRegistry, ref: ThemeRef, platform: PlatformKind, context?: ThemeResolutionContext): BridgedTokens;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mapTokensForPlatform as f}from"./tokenBridge";import{defaultTokens as m}from"./tokens";function T(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:T(e.colors,o.colors),radii:T(e.radii,o.radii),space:T(e.space,o.space),typography:T(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=m){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 m;const s=t.meta.extends?resolveThemeRefTokens(e,t.meta.extends,n):m;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??m)}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,26 @@
|
|
|
1
|
+
import type { ComponentVariantSpec, ThemeTokens as ContractThemeTokens, ThemeRef, ThemeRegistry, ThemeSpec } from '@contractspec/lib.contracts-spec/themes';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
import { type ThemeResolutionContext } from './contracts';
|
|
4
|
+
import { type ThemeTokens } from './tokens';
|
|
5
|
+
export declare function resolveRuntimeTokens({ tokens, theme, registry, themeRef, context, mode, }: {
|
|
6
|
+
tokens?: ThemeTokens;
|
|
7
|
+
theme?: ThemeSpec;
|
|
8
|
+
registry?: ThemeRegistry;
|
|
9
|
+
themeRef?: ThemeRef;
|
|
10
|
+
context?: ThemeResolutionContext;
|
|
11
|
+
mode: string;
|
|
12
|
+
}): ThemeTokens;
|
|
13
|
+
export declare function resolveRuntimeComponents({ theme, registry, themeRef, context, }: {
|
|
14
|
+
theme?: ThemeSpec;
|
|
15
|
+
registry?: ThemeRegistry;
|
|
16
|
+
themeRef?: ThemeRef;
|
|
17
|
+
context?: ThemeResolutionContext;
|
|
18
|
+
}): ComponentVariantSpec[] | undefined;
|
|
19
|
+
export declare function resolveRuntimeCssVariables({ theme, registry, themeRef, context, mode, }: {
|
|
20
|
+
theme?: ThemeSpec;
|
|
21
|
+
registry?: ThemeRegistry;
|
|
22
|
+
themeRef?: ThemeRef;
|
|
23
|
+
context?: ThemeResolutionContext;
|
|
24
|
+
mode: string;
|
|
25
|
+
}): React.CSSProperties | undefined;
|
|
26
|
+
export declare function componentTokensToCssVars(tokens?: ContractThemeTokens): React.CSSProperties | undefined;
|
|
@@ -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,34 @@
|
|
|
1
|
+
import type { ThemeTokens as ContractThemeTokens, ThemeRef, ThemeRegistry, ThemeSpec } from '@contractspec/lib.contracts-spec/themes';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import type { ThemeResolutionContext } from './contracts';
|
|
4
|
+
import { componentTokensToCssVars } from './runtime-resolvers';
|
|
5
|
+
import type { BridgedTokens, PlatformKind } from './tokenBridge';
|
|
6
|
+
import type { ThemeTokens } from './tokens';
|
|
7
|
+
export interface DesignSystemThemeProviderProps {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
platform?: PlatformKind;
|
|
10
|
+
tokens?: ThemeTokens;
|
|
11
|
+
theme?: ThemeSpec;
|
|
12
|
+
registry?: ThemeRegistry;
|
|
13
|
+
themeRef?: ThemeRef;
|
|
14
|
+
targets?: string[];
|
|
15
|
+
mode?: string;
|
|
16
|
+
applyCssVariables?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ComponentThemeResult {
|
|
19
|
+
props: Record<string, unknown>;
|
|
20
|
+
tokens?: ContractThemeTokens;
|
|
21
|
+
}
|
|
22
|
+
interface DesignSystemThemeContextValue {
|
|
23
|
+
platform: PlatformKind;
|
|
24
|
+
tokens: ThemeTokens;
|
|
25
|
+
platformTokens: BridgedTokens;
|
|
26
|
+
components: ThemeSpec['components'];
|
|
27
|
+
mode: string;
|
|
28
|
+
cssVariables?: React.CSSProperties;
|
|
29
|
+
context?: ThemeResolutionContext;
|
|
30
|
+
}
|
|
31
|
+
export declare function DesignSystemThemeProvider({ children, platform, tokens, theme, registry, themeRef, targets, mode, applyCssVariables, }: DesignSystemThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function useDesignSystemTheme(): DesignSystemThemeContextValue | undefined;
|
|
33
|
+
export declare function useComponentTheme(componentKey: string, themeVariant?: string): ComponentThemeResult;
|
|
34
|
+
export { componentTokensToCssVars };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as l}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 f=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?l("div",{style:c,children:r}):r;return l(f.Provider,{value:d,children:k})}export function useDesignSystemTheme(){return s.useContext(f)}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,15 @@
|
|
|
1
|
+
import type { ThemeTokens } from './tokens';
|
|
2
|
+
export interface TailwindThemeFragment {
|
|
3
|
+
colors: Record<string, unknown>;
|
|
4
|
+
borderRadius: Record<string, string>;
|
|
5
|
+
spacing: Record<string, string>;
|
|
6
|
+
fontSize: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export interface TailwindPresetFragment {
|
|
9
|
+
darkMode: ['class'];
|
|
10
|
+
theme: {
|
|
11
|
+
extend: TailwindThemeFragment;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function themeSpecToTailwindTheme(tokens: ThemeTokens): TailwindThemeFragment;
|
|
15
|
+
export declare function themeSpecToTailwindPreset(tokens: ThemeTokens): TailwindPresetFragment;
|
|
@@ -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
|
+
`)}
|