@contractspec/lib.design-system 3.10.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 +116 -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.js +1 -0
- package/dist/components/data-table/DataTableToolbar.mobile.js +1 -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.js +1 -0
- package/dist/components/data-view/DataViewRenderer.mobile.js +1 -0
- package/dist/components/data-view/DataViewTable.d.ts +1 -1
- package/dist/components/data-view/DataViewTable.js +1 -0
- package/dist/components/data-view/DataViewTable.mobile.d.ts +1 -1
- 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.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 +4 -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{jsx as q,jsxs as F}from"react/jsx-runtime";import{Card as K,CardContent as L,CardHeader as Q,CardTitle as U}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as I}from"@contractspec/lib.ui-kit-web/ui/utils";import{RankBadge as V}from"../atoms/RankBadge";import{DimensionScoresCard as W}from"../molecules/DimensionScoresCard";import{StatCard as X}from"../molecules/StatCard";export function ModelComparisonView({models:A,title:G="Model Comparison",className:z}){if(A.length===0)return q(K,{className:z,children:q(L,{className:"py-8 text-center",children:q("p",{className:"text-muted-foreground",children:"No models selected for comparison."})})});return F("div",{className:I("flex flex-col gap-4",z),children:[q("h2",{className:"font-semibold text-xl",children:G}),q("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-4",children:A.map((v)=>q(X,{label:v.displayName??v.modelId,value:Math.round(v.compositeScore*10)/10,hint:v.providerKey,icon:q(V,{rank:v.rank,previousRank:v.previousRank,size:"sm"})},v.modelId))}),q("div",{className:I("grid gap-4",A.length===1&&"grid-cols-1",A.length===2&&"grid-cols-1 md:grid-cols-2",A.length>=3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3"),children:A.map((v)=>q(W,{dimensionScores:v.dimensionScores,title:v.displayName??v.modelId,size:"sm"},v.modelId))}),A.length>=2&&q(Y,{models:A})]})}function Y({models:A}){const G=Array.from(new Set(A.flatMap((z)=>Object.keys(z.dimensionScores)))).sort();if(G.length===0)return null;return F(K,{children:[q(Q,{className:"pb-2",children:q(U,{className:"text-base",children:"Head-to-Head"})}),q(L,{className:"overflow-x-auto",children:F("table",{className:"w-full text-sm",children:[q("thead",{children:F("tr",{className:"border-b",children:[q("th",{className:"py-2 text-left font-medium text-muted-foreground",children:"Dimension"}),A.map((z)=>q("th",{className:"py-2 text-right font-medium text-muted-foreground",children:z.displayName??z.modelId},z.modelId))]})}),F("tbody",{children:[G.map((z)=>{const v=A.map((E)=>E.dimensionScores[z]?.score??null),M=Math.max(...v.filter((E)=>E!==null));return F("tr",{className:"border-b last:border-0",children:[q("td",{className:"py-2 capitalize",children:z}),v.map((E,O)=>{const J=A[O];if(!J)return null;return q("td",{className:I("py-2 text-right tabular-nums",E===M&&v.filter((P)=>P!==null).length>1?"font-semibold text-green-600 dark:text-green-400":""),children:E!=null?(Math.round(E*10)/10).toFixed(1):"–"},J.modelId)})]},z)}),F("tr",{className:"border-t-2 font-semibold",children:[q("td",{className:"py-2",children:"Composite"}),A.map((z)=>q("td",{className:"py-2 text-right tabular-nums",children:(Math.round(z.compositeScore*10)/10).toFixed(1)},z.modelId))]})]})]})})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as D}from"react/jsx-runtime";import{PageHeader as B}from"@contractspec/lib.ui-kit-web/ui/page-header";import{useResponsive as C}from"../../platform/useResponsive";export function PageHeaderResponsive(q){const{screen:z}=C(),A=z==="desktop"?"lg":z==="tablet"?"md":"sm";return D(B,{...q,spacing:q.spacing??A})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as F,jsxs as A}from"react/jsx-runtime";import{HStack as L,VStack as D}from"@contractspec/lib.ui-kit/ui/stack";import{Text as E}from"@contractspec/lib.ui-kit/ui/text";import{useResponsive as M}from"../../platform/useResponsive.mobile";export function PageHeaderResponsive({title:z,subtitle:q,actions:G,breadcrumb:I,spacing:J,className:K}){const{screen:B}=M(),C=J??(B==="desktop"?"lg":B==="tablet"?"md":"sm");return A(D,{className:[C==="lg"?"gap-4":C==="md"?"gap-3":"gap-2",K].filter(Boolean).join(" "),children:[I,A(L,{className:"items-start justify-between",children:[A(D,{className:"gap-1",children:[typeof z==="string"?F(E,{className:"font-bold text-2xl",children:z}):z,q?typeof q==="string"?F(E,{className:"text-base text-muted-foreground",children:q}):q:null]}),G]})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as g,jsxs as z}from"react/jsx-runtime";import{Card as H,CardContent as J}from"@contractspec/lib.ui-kit-web/ui/card";import{Carousel as K,CarouselContent as M,CarouselItem as O,CarouselNext as Q,CarouselPrevious as R}from"@contractspec/lib.ui-kit-web/ui/carousel";import{Button as S}from"../atoms/Button";import{ButtonLink as T}from"../atoms/ButtonLink";export function PricingCarousel({tiers:A,className:D}){return g("div",{className:D,children:z(K,{children:[g(M,{children:A.map((q,E)=>g(O,{children:g(H,{className:q.highlighted?"border-primary shadow-lg":void 0,children:z(J,{className:"p-6",children:[g("div",{className:"mb-2 font-medium text-base text-muted-foreground",children:q.name}),g("div",{className:"font-semibold text-3xl",children:q.price}),q.tagline&&g("div",{className:"mt-1 text-base text-muted-foreground",children:q.tagline}),g("ul",{className:"mt-4 space-y-2 text-base",children:q.features.map((F,G)=>z("li",{className:"flex items-start gap-2",children:[g("span",{className:"mt-1 h-1.5 w-1.5 rounded-full bg-primary"}),g("span",{children:F})]},G))}),q.cta&&g("div",{className:"mt-6",children:q.cta.href?g(T,{className:"w-full",href:q.cta.href,children:q.cta.label}):g(S,{className:"w-full",onPress:q.cta.onPress,children:q.cta.label})})]})})},E))}),g(R,{}),g(Q,{})]})})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as d,jsxs as z}from"react/jsx-runtime";import{PricingTable as C}from"@contractspec/lib.ui-kit-web/ui/marketing/PricingTable";export function PricingSection({tiers:A,title:q,subtitle:v,className:B}){return d("section",{className:`py-12 sm:py-16 lg:py-24 ${B||""}`,children:z("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[q?z("div",{className:"mb-8 text-center",children:[d("h2",{className:"font-bold text-3xl md:text-4xl",children:q}),v?d("p",{className:"mx-auto mt-2 max-w-2xl text-base text-muted-foreground",children:v}):null]}):null,d(C,{tiers:A})]})})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as g,jsxs as z}from"react/jsx-runtime";import{Card as E,CardContent as F}from"@contractspec/lib.ui-kit-web/ui/card";import{Carousel as G,CarouselContent as H,CarouselItem as J,CarouselNext as K,CarouselPrevious as L}from"@contractspec/lib.ui-kit-web/ui/carousel";export function TestimonialCarousel({testimonials:A,className:B}){return g("div",{className:B,children:z(G,{children:[g(H,{children:A.map((q,D)=>g(J,{children:g(E,{children:z(F,{className:"p-6",children:[g("div",{className:"text-lg",children:q.quote}),z("div",{className:"mt-4 flex items-center gap-3",children:[q.avatar,z("div",{className:"text-base",children:[g("div",{className:"font-medium",children:q.author}),q.role&&g("div",{className:"text-muted-foreground",children:q.role})]})]})]})})},D))}),g(L,{}),g(K,{})]})})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useThemedPrimitive as l,useTranslatedText as m}from"./themed";export function optionValue(e){return typeof e==="string"?e:String(e??"")}export function inputValue(e){if(typeof e==="string")return e;if(typeof e==="object"&&e!==null&&"currentTarget"in e){const t=e.currentTarget;if(typeof t==="object"&&t!==null&&"value"in t)return optionValue(t.value)}return optionValue(e)}export function useThemedTextField({defaultComponentKey:e,componentKey:t,themeVariant:n,className:o,style:i,placeholder:s,placeholderI18n:a,ariaLabelI18n:p}){const d=l({defaultComponentKey:e,componentKey:t,themeVariant:n,className:o,style:i}),r=m();return{themed:d,placeholder:r(a??s),ariaLabel:r(p)}}
|
|
@@ -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",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
|
+
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/browser/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
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…":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ées"}),d(Rf,{children:"Vous pouvez demander une copie de vos données ou solliciter leur suppression. Ces demandes nécessitent une vérification d’identité et sont traitées dans les délais légaux."}),yf("div",{className:"flex flex-wrap gap-3",children:[d(z,{onPress:()=>G("export"),disabled:R!==null,children:R==="export"?"Envoi…":m.export}),d(z,{variant:"destructive",onPress:()=>G("delete"),disabled:R!==null,children:R==="delete"?"Envoi…":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ès à vos données","Rectification","Effacement (droit à l’oubli)","Opposition et limitation","Portabilité"]}){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:"•"}),f&&i("span",{children:["Dernière mise à 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,K2 as useResponsive,S2 as useReducedMotion,p1 as usePackageManager,h2 as useListUrlState,r as useDesignSystemTranslation,z2 as useColorScheme,t as resolveTranslationString,Jf as resolveTranslationNode,Yf as resolveThemeSpecTokens,Zf as resolveThemeRefTokens,MR as resolvePlatformTheme,Qf as mergeThemeTokens,w2 as mapTokensForPlatform,WR as formRenderer,IR as dsBaseVariants,E as defaultTokens,sg as createTranslationResolver,ry as ZodForm,Y2 as VisualizationRenderer,J2 as VisualizationGrid,G2 as VisualizationCard,vR as ViewButton,jR as ToggleRightButton,xR as ToggleLeftButton,uR as ToggleButton,T2 as TimelineView,fy as TimeChip,Ky as Textarea,o1 as TestimonialCarousel,OT as TermsTemplate,Sy as Stepper,o4 as StatusChip,r4 as StatCardGroup,e4 as StatCard,n4 as SkeletonList,v4 as SkeletonCircle,x4 as SkeletonBlock,zy as ScoreBar,kT as SalesTermsTemplate,Hy as RankBadge,MT as PrivacyTemplate,r1 as PricingSection,l1 as PricingCarousel,pR as PlaceChip,i1 as PageHeaderResponsive,s1 as PackageManagerProvider,c4 as OverviewCard,F4 as NavUser,L4 as NavMain,Zy as NavBrand,j1 as ModelComparisonView,K1 as MobileHeader,eT as MarketingStepCard,nT as MarketingSection,u1 as MarketingLayout,vT as MarketingIconCard,A1 as MarketingHeaderMobile,d1 as MarketingHeaderDesktop,C1 as MarketingHeader,xT as MarketingComparisonSection,cT as MarketingCardsSection,FT as MarketingCardTitle,dT as MarketingCardHeader,LT as MarketingCardDescription,CT as MarketingCardContent,bT as MarketingCard,b4 as MarkdownRenderer,Qy as LoaderCircular,O4 as LoaderBlock,_1 as ListTablePage,m2 as ListPageTemplate,I1 as ListPageResponsive,N1 as ListGridPage,V1 as ListCardPage,$y as Link,$T as LegalText,PT as LegalTOC,qT as LegalSection,rg as LegalPageLayout,DT as LegalMeta,yT as LegalList,gT as LegalHeading,fT as LegalCallout,k4 as LangSwitch,sy as KeyValueList,M4 as InstallCommand,qy as Input,w4 as HoverPreviewUser,B4 as HoverPreviewStats,X4 as HoverPreviewSimple,W4 as HoverPreviewMedia,P4 as HoverPreviewDoc,D4 as HoverPreview,U1 as HeroSection,E1 as HeroResponsive,W1 as Header,Cg as GDPRRights,Ug as GDPRDataRequest,ly as FormStepsLayout,jy as FormSection,xy as FormRow,iy as FormOneByOneLayout,uy as FormGrid,Ay as FormDialog,dy as FormCardLayout,z1 as Footer,h4 as FiltersToolbar,H1 as FeaturesSection,Z1 as FeatureCarousel,Q1 as FAQSection,yy as ErrorState,Y4 as EntityCard,gy as EmptyState,$1 as EmptySearchResult,q1 as EmptyDataList,cR as EditButton,sR as DurationChip,J4 as DimensionScoresCard,S1 as DesktopHeader,ag as DesignSystemTranslationProvider,AR as DeleteButton,oy as DefinitionList,aR as DateChip,_y as DataViewTable,Iy as DataViewRenderer,Ny as DataViewList,Vy as DataViewDetail,Uy as DataTableToolbar,Ey as DataTable,rf as DEFAULT_BREAKPOINTS,tR as Cta,G4 as CopyButton,wT as CookiesTemplate,BT as ContactTemplate,Tg as ContactForm,hT as ContactFields,YT as ConsentList,QT as ConsentItem,R2 as ComparisonView,T4 as CommandTabs,R4 as CommandSearchTrigger,m4 as CommandPalette,pT as CodeBlock,eR as ButtonLink,nR as Button,aT as Breadcrumbs,dR as ApprovalQueue,y1 as AppSidebar,g1 as AppLayout,f1 as AppHeader,tT as AiLinkButton,CR as AgentMonitor,Cy as ActionForm,s4 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 @@
|
|
|
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 @@
|
|
|
1
|
+
import{jsx as q,jsxs as Z}from"react/jsx-runtime";import{Input as D}from"../../components/atoms/Input";import{Select as Q}from"../../components/forms/controls/Select";import{VStack as U}from"../../components/layout/Stack";import{inputValue as G,optionValue as W}from"../../components/primitives/control";import{useTranslatedText as Y}from"../../components/primitives/themed";import{FORM_FALLBACK_TEXT as H,updateAddress as J,updatePhone as N}from"./values";export const AddressField=(b)=>{const z=Y();return Z(U,{gap:"sm",children:[q(D,{value:b.value?.line1??"",onChange:(g)=>b.onChange?.(J(b.value,"line1",G(g))),placeholder:z(b.parts?.placeholdersI18n?.line1??H.addressLine1),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.line2??"",onChange:(g)=>b.onChange?.(J(b.value,"line2",G(g))),placeholder:z(b.parts?.placeholdersI18n?.line2??H.addressLine2),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.city??"",onChange:(g)=>b.onChange?.(J(b.value,"city",G(g))),placeholder:z(b.parts?.placeholdersI18n?.city??H.city),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.region??"",onChange:(g)=>b.onChange?.(J(b.value,"region",G(g))),placeholder:z(b.parts?.placeholdersI18n?.region??H.region),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.postalCode??"",onChange:(g)=>b.onChange?.(J(b.value,"postalCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.postalCode??H.postalCode),readOnly:b.readOnly,disabled:b.disabled}),b.countryOptions?.length?q(Q,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(J(b.value,"countryCode",W(g))),options:b.countryOptions,disabled:b.disabled||b.readOnly}):q(D,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(J(b.value,"countryCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.countryCode??H.countryCode),readOnly:b.readOnly,disabled:b.disabled})]})},PhoneField=(b)=>{const z=Y();return Z(U,{gap:"sm",children:[b.countryOptions?.length?q(Q,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(N(b.value,"countryCode",W(g))),options:b.countryOptions,disabled:b.disabled||b.readOnly}):q(D,{value:b.value?.countryCode??"",onChange:(g)=>b.onChange?.(N(b.value,"countryCode",G(g))),placeholder:z(b.parts?.placeholdersI18n?.countryCode??H.countryCode),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.nationalNumber??"",onChange:(g)=>b.onChange?.(N(b.value,"nationalNumber",G(g))),placeholder:z(b.parts?.placeholdersI18n?.nationalNumber??H.phoneNumber),readOnly:b.readOnly,disabled:b.disabled}),q(D,{value:b.value?.extension??"",onChange:(g)=>b.onChange?.(N(b.value,"extension",G(g))),placeholder:z(b.parts?.placeholdersI18n?.extension??H.extension),readOnly:b.readOnly,disabled:b.disabled})]})};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as z}from"react/jsx-runtime";import{CalendarIcon as Y,ClockIcon as Z,InfoIcon as 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)})},TranslatedFieldDescription=(g)=>{const q=A();return z(L,{...g,children:q(g.children)})},TranslatedFieldError=(g)=>{const q=A();return z(M,{...g,children:q(g.children)})},TranslatedInput=(g)=>{const q=J();return z(E,{...g,placeholder:q(g.placeholder)})},TranslatedTextarea=(g)=>{const q=J();return z(H,{...g,placeholder:q(g.placeholder)})},TranslatedInputGroupInput=(g)=>{const q=J();return z(K,{...g,placeholder:q(g.placeholder)})},TranslatedInputGroupTextarea=(g)=>{const q=J();return z(F,{...g,placeholder:q(g.placeholder)})},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"})},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)})},FormRoot=({children:g,className:q})=>z(Q,{gap:"lg",className:q,children:g}),FieldArray=({children:g,className:q})=>z(Q,{gap:"md",className:q,children:g}),FieldArrayItem=({children:g,className:q})=>z(Q,{gap:"sm",className:q,children:g}),Actions=({children:g,className:q})=>z(V,{gap:"sm",wrap:"wrap",className:q,children:g});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const FORM_FALLBACK_TEXT={addressLine1:"Address line 1",addressLine2:"Address line 2",city:"City",countryCode:"Country code",extension:"Extension",phoneNumber:"Phone number",postalCode:"Postal code",region:"Region"};export function updateAddress(e,o,n){return{line1:e?.line1??"",line2:e?.line2,city:e?.city,region:e?.region,postalCode:e?.postalCode,countryCode:e?.countryCode,[o]:n}}export function updatePhone(e,o,n){return{countryCode:e?.countryCode??"",nationalNumber:e?.nationalNumber??"",extension:e?.extension,e164:e?.e164,[o]:n}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{formRenderer}from"./form-contract/renderer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./form-contract";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mapTokensForPlatform as f}from"./tokenBridge";import{defaultTokens as T}from"./tokens";function m(e,o){if(!o)return e;const n={...e},t=n;for(const[s,r]of Object.entries(o))if(r?.value!=null)t[s]=r.value;return n}export function mergeThemeTokens(e,o){if(!o)return e;return{...e,colors:m(e.colors,o.colors),radii:m(e.radii,o.radii),space:m(e.space,o.space),typography:m(e.typography,o.typography)}}function a(e,o){if(!o?.targets?.length)return!0;return o.targets.includes(e.target)}export function resolveThemeSpecTokens(e,o,n=T){let t=mergeThemeTokens(n,e.tokens);const s=o?.mode;if(s)t=mergeThemeTokens(t,e.modes?.[s]?.tokens);for(const r of e.overrides??[])if(a(r,o)){t=mergeThemeTokens(t,r.tokens);if(s)t=mergeThemeTokens(t,r.modes?.[s]?.tokens)}return t}export function resolveThemeRefTokens(e,o,n){const t=e.get(o.key,o.version);if(!t)return T;const s=t.meta.extends?resolveThemeRefTokens(e,t.meta.extends,n):T;return resolveThemeSpecTokens(t,n,s)}export function resolveThemeModeTokens(e,o,n,t){if("tokens"in e){const i=e,h=o,c=n,d=t;return resolveThemeSpecTokens(i,{...c,mode:h},d??T)}return resolveThemeRefTokens(e,o,{...t,mode:n})}export function resolvePlatformTheme(e,o,n,t){if("tokens"in e){const i=e,h=o,c=resolveThemeSpecTokens(i,n);return f(h,c)}const s=e,r=o,u=n,l=resolveThemeRefTokens(s,r,t);return f(u,l)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./contracts";export*from"./runtime";export*from"./tailwind";export{mapTokensForPlatform}from"./tokenBridge";export*from"./tokens";export*from"./variants";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{resolveThemeModeTokens as m}from"./contracts";import{themeSpecToCssVariables as u}from"./tailwind";import{defaultTokens as a}from"./tokens";export function resolveRuntimeTokens({tokens:e,theme:n,registry:o,themeRef:t,context:r,mode:s}){if(n)return m(n,s,r,e??a);if(o&&t)return m(o,t,s,r);return e??a}function d(e,n){if(!n?.targets?.length)return!0;return n.targets.includes(e.target)}function c(...e){const n=new Map;for(const o of e)for(const t of o??[]){const r=n.get(t.component);n.set(t.component,{component:t.component,variants:{...r?.variants,...t.variants}})}return n.size?[...n.values()]:void 0}function p(e,n){const o=n?.mode,t=(e.overrides??[]).filter((r)=>d(r,n)).flatMap((r)=>[r.components,o?r.modes?.[o]?.components:void 0]);return c(e.components,o?e.modes?.[o]?.components:void 0,...t)}function f(e,n,o){const t=e.get(n.key,n.version);if(!t)return;const r=t.meta.extends?f(e,t.meta.extends,o):void 0;return c(r,p(t,o))}export function resolveRuntimeComponents({theme:e,registry:n,themeRef:o,context:t}){if(e)return p(e,t);if(n&&o)return f(n,o,t);return}export function resolveRuntimeCssVariables({theme:e,registry:n,themeRef:o,context:t,mode:r}){if(e)return u(e,{context:t}).modes[r];if(n&&o)return u(n,o,{context:t}).modes[r];return}export function componentTokensToCssVars(e){if(!e)return;const n={};for(const[o,t]of Object.entries(e)){const r=t??{};for(const[s,i]of Object.entries(r))if(i?.value!=null)n[`--ds-${T(o)}-${l(s)}`]=i.value}return n}function T(e){if(e==="colors")return"color";if(e==="radii")return"radius";return e}function l(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as f}from"react/jsx-runtime";import*as s from"react";import{componentTokensToCssVars,resolveRuntimeComponents as C,resolveRuntimeCssVariables as g,resolveRuntimeTokens as v}from"./runtime-resolvers";import{mapTokensForPlatform as x}from"./tokenBridge";const l=s.createContext(void 0);export function DesignSystemThemeProvider({children:r,platform:t="web",tokens:i,theme:e,registry:m,themeRef:p,targets:a,mode:n="light",applyCssVariables:h}){const o=s.useMemo(()=>a?.length?{targets:a,mode:n}:{mode:n},[a,n]),T=s.useMemo(()=>v({tokens:i,theme:e,registry:m,themeRef:p,context:o,mode:n}),[i,e,m,p,o,n]),u=s.useMemo(()=>C({theme:e,registry:m,themeRef:p,context:o}),[e,m,p,o]),c=s.useMemo(()=>g({theme:e,registry:m,themeRef:p,context:o,mode:n}),[e,m,p,o,n]),d=s.useMemo(()=>({platform:t,tokens:T,platformTokens:x(t,T),components:u,mode:n,cssVariables:c,context:o}),[t,T,u,n,c,o]),k=h&&c?f("div",{style:c,children:r}):r;return f(l.Provider,{value:d,children:k})}export function useDesignSystemTheme(){return s.useContext(l)}function S(r,t,i){return r?.find((e)=>e.component===t)?.variants?.[i]}export function useComponentTheme(r,t="default"){const i=useDesignSystemTheme(),e=S(i?.components,r,t);return{props:e?.props??{},tokens:e?.tokens}}export{componentTokensToCssVars};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}function c(e){const r={};for(const o of Object.keys(e.colors)){if(o.endsWith("Foreground"))continue;const t=n(o),s=`${o}Foreground`,i=`var(--ds-color-${t})`;r[t]=s in e.colors?{DEFAULT:i,foreground:`var(--ds-color-${n(s)})`}:i}return r}export function themeSpecToTailwindTheme(e){return{colors:c(e),borderRadius:Object.fromEntries(Object.keys(e.radii).map((r)=>[n(r),`var(--ds-radius-${n(r)})`])),spacing:Object.fromEntries(Object.keys(e.space).map((r)=>[n(r),`var(--ds-space-${n(r)})`])),fontSize:Object.fromEntries(Object.keys(e.typography).map((r)=>[n(r),`var(--ds-typography-${n(r)})`]))}}export function themeSpecToTailwindPreset(e){return{darkMode:["class"],theme:{extend:themeSpecToTailwindTheme(e)}}}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const a=["light","dark"];function n(e,s){const r=Object.entries(s).sort(([t],[i])=>t.localeCompare(i)).map(([t,i])=>` ${t}: ${i};`).join(`
|
|
2
|
+
`);return`${e} {
|
|
3
|
+
${r}
|
|
4
|
+
}`}function l(e){return Object.assign({},...Object.values(e.modes))}function d(e){if(e.startsWith("--ds-color-"))return`--color-${e.slice(11)}`;if(e.startsWith("--ds-radius-"))return`--radius-${e.slice(12)}`;if(e.startsWith("--ds-space-"))return`--spacing-${e.slice(11)}`;if(e.startsWith("--ds-typography-"))return`--text-${e.slice(16)}`;return}function o(e){return`@theme inline {
|
|
5
|
+
${Object.keys(l(e)).sort().flatMap((r)=>{const t=d(r);return t?[` ${t}: var(${r});`]:[]}).join(`
|
|
6
|
+
`)}
|
|
7
|
+
}`}export function themeSpecToTailwindCss(e,s={}){return[s.includeCustomVariant?"@custom-variant dark (&:where(.dark, .dark *));":void 0,n(s.rootSelector??":root",e.light),n(s.darkSelector??".dark",e.dark),...Object.entries(e.modes).filter(([t])=>!a.includes(t)).map(([t,i])=>n(`[data-theme="${t}"]`,i)),s.includeTheme===!1?void 0:o(e)].filter(Boolean).join(`
|
|
8
|
+
|
|
9
|
+
`)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{resolveThemeModeTokens as T}from"./contracts";const p=["light","dark"];function l(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase()}function d(e,t){return{...e?.context,targets:e?.targets??e?.context?.targets,mode:t}}function f(e){return typeof e==="number"?`${e}px`:e}function a(e,t){return Object.fromEntries(Object.entries(t).map(([n,i])=>[`--ds-${e}-${l(n)}`,f(i)]))}function u(e){return{...a("color",e.colors),...a("radius",e.radii),...a("space",e.space),...a("typography",e.typography),...a("icon",e.icons)}}function g(e){return Object.keys(e?.modes??{})}function h(e,t,n=new Set){const i=`${t.key}@${t.version}`;if(n.has(i))return[];n.add(i);const s=e.get(t.key,t.version);return[...b(e,s,n),...g(s)]}function b(e,t,n){if(!t?.meta.extends)return[];return h(e,t.meta.extends,n)}function y(e,t,n){const i="tokens"in e?g(e):h(e,t);return Array.from(new Set([...p,...i,...n?.modes??[],...!("tokens"in e)?[]:t?.modes??[]]))}function c(e,t,n,i){if("tokens"in e){const o=t;return T(e,o,d(n,o))}const s=t,r=n;return T(e,s,r,d(i,r))}export function themeSpecToCssVariables(e,t,n){const i="tokens"in e?t:n,s=y(e,t,i),r=Object.fromEntries(s.map((o)=>{const m="tokens"in e?c(e,o,i):c(e,t,o,i);return[o,u(m)]}));return{light:r.light??{},dark:r.dark??{},modes:r}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./tailwind-config";export{themeSpecToTailwindCss}from"./tailwind-css";export*from"./tailwind-variables";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defaultTokens as y}from"./tokens";export function mapTokensForPlatform(j,b=y){if(j==="web")return b;const{space:q,radii:w,icons:x}=b;return{colors:b.colors,spacing:q,typography:{h1:b.typography.h1,body:b.typography.body},radii:w,icons:x}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const defaultTokens={colors:{background:"#ffffff",foreground:"#0a0a0a",muted:"#f4f4f5",mutedForeground:"#71717a",primary:"#0f49a0",primaryForeground:"#ffffff",accent:"#16a34a",accentForeground:"#ffffff",destructive:"#ef4444",destructiveForeground:"#ffffff",border:"#e4e4e7",ring:"#2563eb"},radii:{sm:4,md:8,lg:12,xl:16,full:9999},space:{xs:4,sm:8,md:12,lg:16,xl:24},typography:{h1:30,h2:24,h3:20,body:16,small:14},icons:{sm:16,md:20,lg:24}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cva as b}from"class-variance-authority";export const dsBaseVariants=b("",{variants:{size:{sm:"",md:"",lg:""},density:{compact:"",comfortable:""},tone:{neutral:"",info:"",success:"",warning:"",danger:""},emphasis:{default:"",subtle:"",strong:""}},defaultVariants:{size:"md",density:"comfortable",tone:"neutral",emphasis:"default"}});
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as E,jsxs as A}from"react/jsx-runtime";import{Badge as L}from"@contractspec/lib.ui-kit-web/ui/badge";import{Card as O,CardContent as Q,CardHeader as T}from"@contractspec/lib.ui-kit-web/ui/card";import{cn as K}from"@contractspec/lib.ui-kit-web/ui/utils";export function AgentMonitor({title:G="Agent Activity",sessions:z,highlightStatus:I="escalated",onSelectSession:F,className:J}){return A(O,{className:J,children:[E(T,{children:E("h3",{className:"font-semibold text-xl",children:G})}),E(Q,{className:"space-y-3",children:z.length===0?E("p",{className:"text-muted-foreground text-sm",children:"No active sessions in the last hour."}):E("div",{className:"divide-y divide-border rounded-md border",children:z.map((q)=>A("button",{type:"button",onClick:()=>F?.(q),className:K("flex w-full items-center gap-4 px-4 py-3 text-left transition hover:bg-muted/40",!F&&"cursor-default"),children:[A("div",{className:"min-w-0 flex-1",children:[A("p",{className:"font-medium",children:[q.agent," ",A("span",{className:"text-muted-foreground text-sm",children:["\xB7 ",q.tenantId??"global"]})]}),A("p",{className:"text-muted-foreground text-sm",children:[q.iterations??0," turns \xB7 Updated"," ",V(q.updatedAt)]})]}),A("div",{className:"flex items-center gap-3",children:[typeof q.confidence==="number"&&E(U,{value:q.confidence}),E(L,{variant:q.status===I?"destructive":"secondary",children:q.status})]})]},q.sessionId))})})]})}function U({value:G}){const z=Math.round(G*100);return A("div",{className:K("rounded-full px-3 py-1 font-medium text-sm",z>=75?"bg-emerald-500/15 text-emerald-500":"bg-amber-500/15 text-amber-600"),children:[z,"%"]})}function V(G){const z=new Intl.RelativeTimeFormat(void 0,{numeric:"auto"}),I=Math.round((Date.now()-new Date(G).getTime())/60000);if(Math.abs(I)<60)return z.format(-I,"minute");const F=Math.round(I/60);if(Math.abs(F)<24)return z.format(-F,"hour");const J=Math.round(F/24);return z.format(-J,"day")}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as E,jsxs as C}from"react/jsx-runtime";import{useContractTable as W}from"@contractspec/lib.presentation-runtime-react";import{Badge as X}from"@contractspec/lib.ui-kit-web/ui/badge";import{HStack as Y}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as L}from"@contractspec/lib.ui-kit-web/ui/text";import{Button as O}from"../atoms/Button";import{DataTable as Z}from"../data-table/DataTable";export function ApprovalQueue({title:F="Approvals",description:G="Requests escalated by AI agents",requests:I,onApprove:J,onReject:K,className:P,emptyState:Q=E(L,{className:"text-muted-foreground",children:"Nothing waiting for review."})}){const U=W({data:I,columns:[{id:"agent",header:"Agent",accessor:(z)=>z.agentId,cell:({item:z})=>E(L,{className:"font-medium",children:z.agentId})},{id:"reason",header:"Reason",accessor:(z)=>z.reason,cell:({item:z})=>E(L,{className:"max-w-sm",children:z.reason})},{id:"tenant",header:"Tenant",accessor:(z)=>z.tenantId??"\u2014"},{id:"requested",header:"Requested",accessor:(z)=>h(z.requestedAt)},{id:"status",header:"Status",accessor:(z)=>z.status,cell:({item:z})=>E(X,{variant:$(z.status),children:z.status})},{id:"actions",header:"Actions",canSort:!1,canHide:!1,canResize:!1,cell:({item:z})=>C(Y,{gap:"sm",children:[E(O,{size:"sm",variant:"secondary",disabled:z.status!=="pending",onPress:()=>K?.(z),children:"Reject"}),E(O,{size:"sm",disabled:z.status!=="pending",onPress:()=>J?.(z),children:"Approve"})]})}]});return E(Z,{controller:U,title:F,description:G,className:P,emptyState:Q})}function $(F){switch(F){case"approved":return"default";case"rejected":return"destructive";default:return"secondary"}}function h(F){const G=new Intl.RelativeTimeFormat(void 0,{numeric:"auto"}),I=Math.round((Date.now()-new Date(F).getTime())/60000);if(Math.abs(I)<60)return G.format(-I,"minute");const J=Math.round(I/60);if(Math.abs(J)<24)return G.format(-J,"hour");const K=Math.round(J/24);return G.format(-K,"day")}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as E,jsxs as C}from"react/jsx-runtime";import{useContractTable as W}from"@contractspec/lib.presentation-runtime-react";import{Badge as X}from"@contractspec/lib.ui-kit/ui/badge";import{HStack as Y}from"@contractspec/lib.ui-kit/ui/stack";import{Text as L}from"@contractspec/lib.ui-kit/ui/text";import{Button as O}from"../atoms/Button";import{DataTable as Z}from"../data-table/DataTable";export function ApprovalQueue({title:F="Approvals",description:G="Requests escalated by AI agents",requests:I,onApprove:J,onReject:K,className:P,emptyState:Q=E(L,{className:"text-muted-foreground",children:"Nothing waiting for review."})}){const U=W({data:I,columns:[{id:"agent",header:"Agent",accessor:(z)=>z.agentId,cell:({item:z})=>E(L,{className:"font-medium",children:z.agentId})},{id:"reason",header:"Reason",accessor:(z)=>z.reason,cell:({item:z})=>E(L,{className:"max-w-sm",children:z.reason})},{id:"tenant",header:"Tenant",accessor:(z)=>z.tenantId??"\u2014"},{id:"requested",header:"Requested",accessor:(z)=>h(z.requestedAt)},{id:"status",header:"Status",accessor:(z)=>z.status,cell:({item:z})=>E(X,{variant:$(z.status),children:z.status})},{id:"actions",header:"Actions",canSort:!1,canHide:!1,canResize:!1,cell:({item:z})=>C(Y,{gap:"sm",children:[E(O,{size:"sm",variant:"secondary",disabled:z.status!=="pending",onPress:()=>K?.(z),children:"Reject"}),E(O,{size:"sm",disabled:z.status!=="pending",onPress:()=>J?.(z),children:"Approve"})]})}]});return E(Z,{controller:U,title:F,description:G,className:P,emptyState:Q})}function $(F){switch(F){case"approved":return"default";case"rejected":return"destructive";default:return"secondary"}}function h(F){const G=new Intl.RelativeTimeFormat(void 0,{numeric:"auto"}),I=Math.round((Date.now()-new Date(F).getTime())/60000);if(Math.abs(I)<60)return G.format(-I,"minute");const J=Math.round(I/60);if(Math.abs(J)<24)return G.format(-J,"hour");const K=Math.round(J/24);return G.format(-K,"day")}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as C,jsxs as k}from"react/jsx-runtime";import{Box as O}from"@contractspec/lib.ui-kit-web/ui/stack";import{Text as P}from"@contractspec/lib.ui-kit-web/ui/text";import{cva as Q}from"class-variance-authority";import{Trash2 as U,Edit as W,ToggleLeft as K,ToggleRight as M,Eye as X}from"lucide-react";import{Button as Y}from"./Button";const R=Q("",{variants:{tone:{neutral:"default",danger:"destructive",subtle:"secondary",outline:"outline"},size:{sm:"sm",md:"default",lg:"lg",icon:"icon"}},defaultVariants:{tone:"neutral",size:"md"}});function Z(q){switch(q){case"danger":return"destructive";case"subtle":return"secondary";case"outline":return"outline";default:return"default"}}function $(q){switch(q){case"sm":return"sm";case"lg":return"lg";case"icon":return"icon";default:return"default"}}function F({tone:q="neutral",size:G="md",label:H,iconLeft:J,...N}){return k(Y,{variant:Z(q||"neutral"),size:$(G||"md"),...N,children:[J?C(O,{className:"mr-2 inline-flex h-4 w-4",children:J}):null,C(P,{children:H})]})}export function EditButton(q){return C(F,{iconLeft:C(W,{className:"h-4 w-4"}),...q})}export function DeleteButton(q){return C(F,{iconLeft:C(U,{className:"h-4 w-4"}),tone:"danger",...q})}export function ViewButton(q){return C(F,{iconLeft:C(X,{className:"h-4 w-4"}),...q})}export function ToggleButton(q){const{active:G,...H}=q;return C(F,{iconLeft:G?C(K,{className:"h-4 w-4"}):C(M,{className:"h-4 w-4"}),...H})}export function ToggleLeftButton(q){return C(F,{iconLeft:C(K,{className:"h-4 w-4"}),...q})}export function ToggleRightButton(q){return C(F,{iconLeft:C(M,{className:"h-4 w-4"}),...q})}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ButtonProps as WebButtonProps } from '@contractspec/lib.ui-kit-web/ui/button';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { type ThemedPrimitiveProps } from '../primitives/themed';
|
|
3
4
|
type SpinnerPlacement = 'start' | 'end';
|
|
4
5
|
export type ButtonProps = Omit<WebButtonProps, 'onClick' | 'disabled' | 'children'> & {
|
|
5
6
|
children: React.ReactNode;
|
|
@@ -12,6 +13,6 @@ export type ButtonProps = Omit<WebButtonProps, 'onClick' | 'disabled' | 'childre
|
|
|
12
13
|
onLongPress?: () => void;
|
|
13
14
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
14
15
|
disabled?: boolean;
|
|
15
|
-
};
|
|
16
|
-
export declare function Button({ children, loading, spinnerPlacement, onPress, onPressIn, onPressOut, onLongPress, onTouchStart, onTouchEnd, onTouchCancel, onMouseDown, onMouseUp, onClick, className, disabled, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
} & ThemedPrimitiveProps;
|
|
17
|
+
export declare function Button({ children, loading, spinnerPlacement, onPress, onPressIn, onPressOut, onLongPress, onTouchStart, onTouchEnd, onTouchCancel, onMouseDown, onMouseUp, onClick, className, disabled, componentKey, themeVariant, labelI18n, ariaLabelI18n, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as H,jsxs as _,Fragment as O}from"react/jsx-runtime";import{Button as C}from"@contractspec/lib.ui-kit-web/ui/button";import{Loader2 as q}from"lucide-react";import{useThemedPrimitive as N,useTranslatedNode as j,useTranslatedText as w}from"../primitives/themed";export function Button({children:J,loading:z,spinnerPlacement:Q="start",onPress:R,onPressIn:B,onPressOut:A,onLongPress:x,onTouchStart:F,onTouchEnd:W,onTouchCancel:E,onMouseDown:K,onMouseUp:S,onClick:U,className:V,disabled:f,componentKey:v,themeVariant:k,labelI18n:X,ariaLabelI18n:D,...G}){const Y=N({defaultComponentKey:"Button",componentKey:v,themeVariant:k,className:V}),Z=j(),L=w(),$=Boolean(f||z),M=R?()=>{R()}:U,y=!G.asChild?_(O,{children:[z&&Q==="start"?H(q,{className:"h-4 w-4 animate-spin"}):null,Z(X??J),z&&Q==="end"?H(q,{className:"h-4 w-4 animate-spin"}):null]}):Z(X??J);return H(C,{...Y.props,...G,className:Y.className,disabled:$,"aria-busy":z?!0:void 0,"aria-disabled":$?!0:void 0,"aria-label":L(D),onClick:M,onMouseDown:K||B,onMouseUp:S||A,onTouchStart:F,onTouchEnd:W||A,onTouchCancel:E||A,type:G?.type??"button",children:y})}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type ButtonProps as NativeButtonProps } from '@contractspec/lib.ui-kit/ui/button';
|
|
2
2
|
import { type PressableProps } from 'react-native';
|
|
3
|
+
import { type ThemedPrimitiveProps } from '../primitives/themed';
|
|
3
4
|
type SpinnerPlacement = 'start' | 'end';
|
|
4
5
|
export type ButtonProps = NativeButtonProps & Omit<PressableProps, 'disabled'> & {
|
|
5
6
|
loading?: boolean;
|
|
6
7
|
loadingText?: string;
|
|
7
8
|
spinnerPlacement?: SpinnerPlacement;
|
|
8
|
-
};
|
|
9
|
-
export declare function Button({ children, loading, loadingText, spinnerPlacement, disabled, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
} & ThemedPrimitiveProps;
|
|
10
|
+
export declare function Button({ children, loading, loadingText, spinnerPlacement, disabled, className, componentKey, themeVariant, labelI18n, ariaLabelI18n, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
export default Button;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as q,jsxs as L}from"react/jsx-runtime";import{Button as H}from"@contractspec/lib.ui-kit/ui/button";import{HStack as S}from"@contractspec/lib.ui-kit/ui/stack";import{Text as k}from"@contractspec/lib.ui-kit/ui/text";import{ActivityIndicator as G}from"react-native";import{useThemedPrimitive as A,useTranslatedNode as B,useTranslatedText as K}from"../primitives/themed";export function Button({children:J,loading:C,loadingText:M,spinnerPlacement:E="start",disabled:O,className:Q,componentKey:R,themeVariant:U,labelI18n:W,ariaLabelI18n:X,...z}){const F=A({defaultComponentKey:"Button",componentKey:R,themeVariant:U,className:Q}),Y=B(),Z=K(),$=Boolean(O||C),D=C?L(S,{className:"items-center gap-x-2",children:[E==="start"?q(G,{size:"small",color:z.variant==="outline"?"#6b7280":"#ffffff"}):null,q(k,{children:M||"Loading\u2026"}),E==="end"?q(G,{size:"small",color:z.variant==="outline"?"#6b7280":"#ffffff"}):null]}):Y(W??J);return q(H,{...F.props,disabled:$,className:F.className,accessibilityLabel:Z(X),...z,children:D})}export default Button;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import*as s from"react";import{Button as B}from"./Button";import{Link as L}from"./Link.web";export function ButtonLink({href:p,target:l,rel:a,replace:P,loading:o,disabled:n,children:c,onClick:e,...k}){const r=Boolean(n||o),u=s.useCallback((t)=>{if(r){t.preventDefault();t.stopPropagation();return}e?.(t)},[r,e]);return i(B,{...k,disabled:n,loading:o,asChild:!0,children:i(L,{href:p,target:l,rel:a,onClick:u,children:c})})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var {require}=import.meta;import{jsx as U}from"react/jsx-runtime";import*as S from"react";import{Linking as K}from"react-native";import{Button as T}from"./Button.mobile";export function ButtonLink({href:q,replace:D,loading:F,disabled:G,onPressIn:M,onPressOut:N,...H}){const J=Boolean(G||F),Q=S.useCallback(()=>{if(J)return;try{const A=require("expo-router");if(A?.Link){const z=A.router??A.useRouter?.();if(z?.replace&&D)z.replace(q);else if(z?.push)z.push(q);else K.openURL(q);return}}catch{}K.openURL(q)},[J,q,D]);return U(T,{...H,onPress:Q,loading:F,disabled:G,onPressIn:M,onPressOut:N,children:H.children})}export default ButtonLink;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{cva as f}from"class-variance-authority";import{Button as h}from"./Button";import{ButtonLink as B}from"./ButtonLink";const k=f("",{variants:{size:{sm:"sm",md:"md",lg:"lg",touch:"touch"},emphasis:{default:"default",subtle:"secondary",strong:"default"}},defaultVariants:{size:"touch",emphasis:"default"}});export function Cta({capture:t,ctaName:n,as:u="button",href:c,onClick:l,size:m="touch",emphasis:p="default",children:a,...e}){const o=(d)=>{if(n)try{if(t)t(n)}catch{}l?.(d)},s=m,r=p==="subtle"?"secondary":"default";if(u==="a")return i(B,{size:s,variant:r,...e,href:c,onClick:o,children:a});return i(h,{size:s,variant:r,onClick:o,...e,children:a})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var {require}=import.meta;import{jsx as K}from"react/jsx-runtime";import{Button as J}from"./Button";export function Cta({capture:D,ctaName:q,size:E="touch",onClick:F,children:G,ref:H,...I}){return K(J,{size:E,onPress:()=>{try{if(q){if(D)D(q);let v;try{v=require("posthog-react-native").default??require("posthog-react-native")}catch{}if(v&&typeof v.capture==="function")v.capture("cta_click",{cta:q});else{const A=globalThis.posthog;if(A&&typeof A.capture==="function")A.capture("cta_click",{cta:q})}}}catch{}F?.()},ref:H,...I,children:G})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as i,jsxs as o}from"react/jsx-runtime";import{cva as l}from"class-variance-authority";import{Calendar as c,Clock as p,MapPin as m}from"lucide-react";const r=l("inline-flex items-center gap-1 text-base text-muted-foreground",{variants:{size:{sm:"text-sm",md:"text-base"},tone:{default:"",muted:"opacity-85"}},defaultVariants:{size:"md",tone:"default"}});export function DateChip({value:t,...a}){if(!t)return null;let n="";try{n=(typeof t==="string"?new Date(t):t).toLocaleDateString()}catch{n=String(t)}return o("span",{className:r(a),children:[i(c,{className:"h-4 w-4"})," ",n]})}export function TimeChip({value:t,...a}){if(!t)return null;let n="";try{n=(typeof t==="string"?new Date(t):t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{n=String(t)}return o("span",{className:r(a),children:[i(p,{className:"h-4 w-4"})," ",n]})}export function PlaceChip({label:t,...a}){if(!t)return null;return o("span",{className:r(a),children:[i(m,{className:"h-4 w-4"})," ",t]})}export function DurationChip({minutes:t,...a}){if(t==null)return null;const n=Math.floor(t/60),e=t%60,s=n>0?`${n}h${e>0?String(e).padStart(2,"0"):""}`:`${e}min`;return o("span",{className:r(a),children:[i(p,{className:"h-4 w-4"})," ",s]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as h}from"react/jsx-runtime";import{EmptyState as g}from"@contractspec/lib.ui-kit-web/ui/empty-state";export function EmptyState(d){return h(g,{...d})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as g,jsxs as q}from"react/jsx-runtime";import{Empty as Q,EmptyContent as U,EmptyDescription as V,EmptyHeader as W,EmptyTitle as X}from"@contractspec/lib.ui-kit-web/ui/empty";import{Button as I}from"../atoms/Button";import{ButtonLink as Y}from"../atoms/ButtonLink";export function ErrorState({title:J="Something went wrong",description:v,icon:K,onRetry:z,retryLabel:M="Retry",supportHref:A,onContactSupport:F,supportLabel:G="Contact support",className:O}){const P=(()=>{if(A)return g(Y,{variant:"ghost",href:A,children:G});if(F)return g(I,{variant:"ghost",onPress:F,children:G});return null})();return q(Q,{className:O,children:[q(W,{children:[K,g(X,{children:J}),v?g(V,{children:v}):null]}),g(U,{children:q("div",{className:"flex flex-wrap items-center gap-2",children:[z?g(I,{onPress:z,children:M}):null,P]})})]})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as t,jsxs as l}from"react/jsx-runtime";import*as N from"react";import{Linking as g,Text as n,View as c}from"react-native";import{Button as i}from"../atoms/Button.mobile";export function ErrorState({title:m="Something went wrong",description:o,icon:p,onRetry:r,retryLabel:s="Retry",supportHref:e,onContactSupport:a,supportLabel:u="Contact support",className:R}){const d=N.useCallback(()=>{if(e)g.openURL(e).catch(()=>{});else a?.()},[e,a]);return l(c,{className:["items-center p-6",R].filter(Boolean).join(" "),children:[p,t(n,{className:"font-medium text-lg",children:m}),o?t(n,{className:"mt-1 text-base text-muted-foreground",children:o}):null,l(c,{className:"mt-3 flex-row items-center gap-2",children:[r?t(i,{onPress:r,children:s}):null,t(i,{variant:"ghost",onPress:d,children:u})]})]})}export default ErrorState;
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import { type InputProps as WebInputProps } from '@contractspec/lib.ui-kit-web/ui/input';
|
|
2
|
-
import { type
|
|
3
|
-
interface
|
|
4
|
-
onSubmit?: () => void;
|
|
5
|
-
onFocus?: () => void;
|
|
6
|
-
placeholder?: string;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
readOnly?: boolean;
|
|
9
|
-
maxLength?: number;
|
|
2
|
+
import { type ControlThemeProps, type TextFieldBaseProps } from '../primitives/control';
|
|
3
|
+
interface InputBaseProps extends TextFieldBaseProps {
|
|
10
4
|
name?: string;
|
|
11
|
-
className?: string;
|
|
12
|
-
keyboard?: KeyboardOptions;
|
|
13
5
|
}
|
|
14
|
-
export type InputProps = Omit<WebInputProps, 'input'> &
|
|
15
|
-
export declare function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, keyboard, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export type InputProps = Omit<WebInputProps, 'input'> & InputBaseProps & ControlThemeProps;
|
|
7
|
+
export declare function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, name, className, keyboard, componentKey, themeVariant, placeholderI18n, ariaLabelI18n, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
16
8
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as N}from"react/jsx-runtime";import{Input as j}from"@contractspec/lib.ui-kit-web/ui/input";import{mapKeyboardToWeb as B}from"../../lib/keyboard";import{useThemedTextField as C}from"../primitives/control";export function Input({value:A,defaultValue:D,onChange:E,onSubmit:O,onFocus:G,onBlur:H,placeholder:J,disabled:M,readOnly:P,maxLength:Q,name:R,className:S,keyboard:U,componentKey:X,themeVariant:Y,placeholderI18n:Z,ariaLabelI18n:$,...z}){const _=B(U),q=C({defaultComponentKey:"Input",componentKey:X,themeVariant:Y,className:S,style:z.style,placeholder:J,placeholderI18n:Z,ariaLabelI18n:$});return N(j,{...q.themed.props,...z,className:q.themed.className,style:q.themed.style,value:A,defaultValue:D,onChange:E,onFocus:G,onBlur:H,placeholder:q.placeholder,"aria-label":q.ariaLabel,disabled:M,readOnly:P,maxLength:Q,name:R,..._})}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import { Input as NativeInput } from '@contractspec/lib.ui-kit/ui/input';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { type
|
|
4
|
-
interface
|
|
3
|
+
import { type ControlThemeProps, type TextFieldBaseProps } from '../primitives/control';
|
|
4
|
+
interface InputBaseProps extends TextFieldBaseProps {
|
|
5
5
|
value?: string;
|
|
6
6
|
defaultValue?: string;
|
|
7
7
|
onChange?: (text: string) => void;
|
|
8
|
-
onSubmit?: () => void;
|
|
9
|
-
onFocus?: () => void;
|
|
10
|
-
onBlur?: () => void;
|
|
11
|
-
placeholder?: string;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
readOnly?: boolean;
|
|
14
|
-
maxLength?: number;
|
|
15
|
-
className?: string;
|
|
16
|
-
keyboard?: KeyboardOptions;
|
|
17
8
|
}
|
|
18
9
|
type NativeInputComponentProps = React.ComponentProps<typeof NativeInput>;
|
|
19
|
-
export type InputProps = Omit<NativeInputComponentProps, 'onChangeText' | 'value' | 'defaultValue'> &
|
|
20
|
-
export declare function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, className, keyboard, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export type InputProps = Omit<NativeInputComponentProps, 'onChangeText' | 'value' | 'defaultValue'> & InputBaseProps & ControlThemeProps;
|
|
11
|
+
export declare function Input({ value, defaultValue, onChange, onSubmit, onFocus, onBlur, placeholder, disabled, readOnly, maxLength, className, keyboard, componentKey, themeVariant, placeholderI18n, ariaLabelI18n, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
21
12
|
export default Input;
|