@studiolxd/brand 38.12.4
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/CHANGELOG.md +5643 -0
- package/README.md +73 -0
- package/dist/_shared/appshellcontext.js +10 -0
- package/dist/_shared/calendargrid.js +199 -0
- package/dist/_shared/copy-to-clipboard.js +30 -0
- package/dist/_shared/css-properties.js +12 -0
- package/dist/_shared/datepicker.js +172 -0
- package/dist/_shared/dialogsurface.js +23 -0
- package/dist/_shared/dropdownitems.js +80 -0
- package/dist/_shared/env.js +6 -0
- package/dist/_shared/field-labels.js +9 -0
- package/dist/_shared/form-size.js +9 -0
- package/dist/_shared/imagecropdialog.js +504 -0
- package/dist/_shared/logo.js +19 -0
- package/dist/_shared/logoassets.js +18 -0
- package/dist/_shared/messagetimestamp.js +16 -0
- package/dist/_shared/progressbar.js +216 -0
- package/dist/_shared/radiogroupcontext.js +8 -0
- package/dist/_shared/sidebarcontext.js +8 -0
- package/dist/_shared/togglegroupcontext.js +8 -0
- package/dist/_shared/tokens.js +3281 -0
- package/dist/_shared/untrustedtext.js +43 -0
- package/dist/_shared/validate.js +9 -0
- package/dist/_types/assets/brand-assets.d.ts +83 -0
- package/dist/_types/atoms/Accordion/Accordion.d.ts +56 -0
- package/dist/_types/atoms/Accordion/AccordionContext.d.ts +13 -0
- package/dist/_types/atoms/Arrow/Arrow.d.ts +6 -0
- package/dist/_types/atoms/AsyncMultiSelect/AsyncMultiSelect.d.ts +83 -0
- package/dist/_types/atoms/AsyncSelect/AsyncSelect.d.ts +74 -0
- package/dist/_types/atoms/Avatar/Avatar.d.ts +21 -0
- package/dist/_types/atoms/Button/Button.d.ts +64 -0
- package/dist/_types/atoms/Checkbox/Checkbox.d.ts +22 -0
- package/dist/_types/atoms/CloseButton/CloseButton.d.ts +25 -0
- package/dist/_types/atoms/Code/Code.d.ts +21 -0
- package/dist/_types/atoms/Collapsible/Collapsible.d.ts +37 -0
- package/dist/_types/atoms/Columns/Columns.d.ts +39 -0
- package/dist/_types/atoms/Container/Container.d.ts +48 -0
- package/dist/_types/atoms/CopyableValue/CopyableValue.d.ts +25 -0
- package/dist/_types/atoms/DescriptionList/DescriptionList.d.ts +78 -0
- package/dist/_types/atoms/DotsButton/DotsButton.d.ts +14 -0
- package/dist/_types/atoms/ErrorBoundary/ErrorBoundary.d.ts +25 -0
- package/dist/_types/atoms/ErrorText/ErrorText.d.ts +34 -0
- package/dist/_types/atoms/Fieldset/Fieldset.d.ts +22 -0
- package/dist/_types/atoms/Figure/Figure.d.ts +44 -0
- package/dist/_types/atoms/FileUpload/FileUpload.d.ts +66 -0
- package/dist/_types/atoms/FileUpload/validate.d.ts +14 -0
- package/dist/_types/atoms/Heading/Heading.d.ts +20 -0
- package/dist/_types/atoms/Icon/Icon.d.ts +335 -0
- package/dist/_types/atoms/Inline/Inline.d.ts +34 -0
- package/dist/_types/atoms/Input/Input.d.ts +23 -0
- package/dist/_types/atoms/InputPhone/InputPhone.d.ts +51 -0
- package/dist/_types/atoms/Kbd/Kbd.d.ts +16 -0
- package/dist/_types/atoms/Label/Label.d.ts +24 -0
- package/dist/_types/atoms/Link/Link.d.ts +34 -0
- package/dist/_types/atoms/List/List.d.ts +36 -0
- package/dist/_types/atoms/Logo/Logo.d.ts +15 -0
- package/dist/_types/atoms/Logo/index.d.ts +3 -0
- package/dist/_types/atoms/Logo/logoAssets.d.ts +10 -0
- package/dist/_types/atoms/Logomark/Logomark.d.ts +20 -0
- package/dist/_types/atoms/Logomark/index.d.ts +3 -0
- package/dist/_types/atoms/Logomark/logomarkAssets.d.ts +14 -0
- package/dist/_types/atoms/MenuButton/MenuButton.d.ts +18 -0
- package/dist/_types/atoms/MessageBubble/MessageBubble.d.ts +20 -0
- package/dist/_types/atoms/MultiSelect/MultiSelect.d.ts +57 -0
- package/dist/_types/atoms/NumberBadge/NumberBadge.d.ts +19 -0
- package/dist/_types/atoms/NumberInput/NumberInput.d.ts +42 -0
- package/dist/_types/atoms/OtpInput/OtpInput.d.ts +51 -0
- package/dist/_types/atoms/Paragraph/Paragraph.d.ts +7 -0
- package/dist/_types/atoms/Popover/Popover.d.ts +70 -0
- package/dist/_types/atoms/ProgressBar/ProgressBar.d.ts +19 -0
- package/dist/_types/atoms/Radio/Radio.d.ts +19 -0
- package/dist/_types/atoms/RadioGroup/RadioGroup.d.ts +41 -0
- package/dist/_types/atoms/RadioGroup/RadioGroupContext.d.ts +15 -0
- package/dist/_types/atoms/ScrollArea/ScrollArea.d.ts +30 -0
- package/dist/_types/atoms/Select/Select.d.ts +139 -0
- package/dist/_types/atoms/Separator/Separator.d.ts +25 -0
- package/dist/_types/atoms/Skeleton/Skeleton.d.ts +22 -0
- package/dist/_types/atoms/SkipLink/SkipLink.d.ts +15 -0
- package/dist/_types/atoms/Slider/Slider.d.ts +39 -0
- package/dist/_types/atoms/Sparkline/Sparkline.d.ts +41 -0
- package/dist/_types/atoms/Spinner/Spinner.d.ts +10 -0
- package/dist/_types/atoms/Stack/Stack.d.ts +39 -0
- package/dist/_types/atoms/StarRating/StarRating.d.ts +55 -0
- package/dist/_types/atoms/StepMarker/StepMarker.d.ts +35 -0
- package/dist/_types/atoms/Switcher/Switcher.d.ts +22 -0
- package/dist/_types/atoms/Tabs/Tabs.d.ts +35 -0
- package/dist/_types/atoms/Tag/Tag.d.ts +12 -0
- package/dist/_types/atoms/Text/Text.d.ts +55 -0
- package/dist/_types/atoms/Textarea/Textarea.d.ts +25 -0
- package/dist/_types/atoms/TimeSelect/TimeSelect.d.ts +48 -0
- package/dist/_types/atoms/Toggle/Toggle.d.ts +42 -0
- package/dist/_types/atoms/ToggleGroup/ToggleGroup.d.ts +41 -0
- package/dist/_types/atoms/ToggleGroup/ToggleGroupContext.d.ts +7 -0
- package/dist/_types/atoms/Tooltip/Tooltip.d.ts +61 -0
- package/dist/_types/atoms/TypingIndicator/TypingIndicator.d.ts +7 -0
- package/dist/_types/atoms/VisuallyHidden/VisuallyHidden.d.ts +19 -0
- package/dist/_types/constants/copy-to-clipboard.d.ts +34 -0
- package/dist/_types/constants/css-properties.d.ts +23 -0
- package/dist/_types/constants/env.d.ts +7 -0
- package/dist/_types/constants/field-labels.d.ts +15 -0
- package/dist/_types/constants/form-size.d.ts +8 -0
- package/dist/_types/data/home.d.ts +83 -0
- package/dist/_types/email/Email.d.ts +6 -0
- package/dist/_types/email/EmailLayout.d.ts +96 -0
- package/dist/_types/email/EmailPreview.d.ts +6 -0
- package/dist/_types/email/EmailPrimitives.d.ts +164 -0
- package/dist/_types/email/emailTheme.d.ts +225 -0
- package/dist/_types/email/emailTokens.d.ts +70 -0
- package/dist/_types/molecules/Alert/Alert.d.ts +39 -0
- package/dist/_types/molecules/AppLauncher/AppLauncher.d.ts +42 -0
- package/dist/_types/molecules/AssistantMessage/AssistantMessage.d.ts +34 -0
- package/dist/_types/molecules/AsyncMultiSelectField/AsyncMultiSelectField.d.ts +54 -0
- package/dist/_types/molecules/AsyncSelectField/AsyncSelectField.d.ts +53 -0
- package/dist/_types/molecules/AvatarUpload/AvatarUpload.d.ts +125 -0
- package/dist/_types/molecules/Banner/Banner.d.ts +40 -0
- package/dist/_types/molecules/Breadcrumb/Breadcrumb.d.ts +23 -0
- package/dist/_types/molecules/Calendar/Calendar.d.ts +58 -0
- package/dist/_types/molecules/CalendarPlanner/CalendarPlanner.d.ts +71 -0
- package/dist/_types/molecules/CalendarRoster/CalendarRoster.d.ts +78 -0
- package/dist/_types/molecules/Card/Card.d.ts +141 -0
- package/dist/_types/molecules/Carousel/Carousel.d.ts +75 -0
- package/dist/_types/molecules/CheckboxField/CheckboxField.d.ts +41 -0
- package/dist/_types/molecules/CodeBlock/CodeBlock.d.ts +72 -0
- package/dist/_types/molecules/CommandPalette/CommandPalette.d.ts +60 -0
- package/dist/_types/molecules/ConfirmDialog/ConfirmDialog.d.ts +84 -0
- package/dist/_types/molecules/Consent/Consent.d.ts +127 -0
- package/dist/_types/molecules/ContextMenu/ContextMenu.d.ts +25 -0
- package/dist/_types/molecules/ConversationList/ConversationList.d.ts +55 -0
- package/dist/_types/molecules/CopyButton/CopyButton.d.ts +57 -0
- package/dist/_types/molecules/DatePicker/DatePicker.d.ts +87 -0
- package/dist/_types/molecules/DatePicker/dateMask.d.ts +21 -0
- package/dist/_types/molecules/DatePickerField/DatePickerField.d.ts +26 -0
- package/dist/_types/molecules/DateTimeField/DateTimeField.d.ts +69 -0
- package/dist/_types/molecules/DocsSearch/DocsSearch.d.ts +95 -0
- package/dist/_types/molecules/DropdownField/DropdownField.d.ts +47 -0
- package/dist/_types/molecules/EmptyState/EmptyState.d.ts +14 -0
- package/dist/_types/molecules/FieldRow/FieldRow.d.ts +70 -0
- package/dist/_types/molecules/FileUploadField/FileUploadField.d.ts +30 -0
- package/dist/_types/molecules/FilterBar/FilterBar.d.ts +44 -0
- package/dist/_types/molecules/Form/Form.d.ts +34 -0
- package/dist/_types/molecules/FormField/FormField.d.ts +70 -0
- package/dist/_types/molecules/ImageCropDialog/ImageCropDialog.d.ts +42 -0
- package/dist/_types/molecules/ImageCropDialog/crop.d.ts +33 -0
- package/dist/_types/molecules/InputField/InputField.d.ts +60 -0
- package/dist/_types/molecules/InputPhoneField/InputPhoneField.d.ts +45 -0
- package/dist/_types/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +58 -0
- package/dist/_types/molecules/Menu/Menu.d.ts +39 -0
- package/dist/_types/molecules/MessageComposer/MessageComposer.d.ts +45 -0
- package/dist/_types/molecules/Modal/Modal.d.ts +71 -0
- package/dist/_types/molecules/MultiSelectField/MultiSelectField.d.ts +42 -0
- package/dist/_types/molecules/NotificationButton/NotificationButton.d.ts +25 -0
- package/dist/_types/molecules/NotificationList/NotificationList.d.ts +85 -0
- package/dist/_types/molecules/NotificationPanel/NotificationPanel.d.ts +94 -0
- package/dist/_types/molecules/NumberInputField/NumberInputField.d.ts +38 -0
- package/dist/_types/molecules/OrgSwitcher/OrgSwitcher.d.ts +23 -0
- package/dist/_types/molecules/OtpField/OtpField.d.ts +41 -0
- package/dist/_types/molecules/PageIntro/PageIntro.d.ts +48 -0
- package/dist/_types/molecules/Pagination/Pagination.d.ts +92 -0
- package/dist/_types/molecules/PasswordField/PasswordField.d.ts +40 -0
- package/dist/_types/molecules/PrevNextNav/PrevNextNav.d.ts +50 -0
- package/dist/_types/molecules/ProjectCard/ProjectCard.d.ts +48 -0
- package/dist/_types/molecules/Prose/Prose.d.ts +36 -0
- package/dist/_types/molecules/RadioField/RadioField.d.ts +29 -0
- package/dist/_types/molecules/RecoveryCodes/RecoveryCodes.d.ts +48 -0
- package/dist/_types/molecules/SearchForm/SearchForm.d.ts +66 -0
- package/dist/_types/molecules/SelectField/SelectField.d.ts +44 -0
- package/dist/_types/molecules/Sheet/Sheet.d.ts +56 -0
- package/dist/_types/molecules/SidebarNav/SidebarNav.d.ts +59 -0
- package/dist/_types/molecules/SiteNav/SiteNav.d.ts +52 -0
- package/dist/_types/molecules/StatTile/StatTile.d.ts +47 -0
- package/dist/_types/molecules/Stepper/Stepper.d.ts +88 -0
- package/dist/_types/molecules/SwitcherField/SwitcherField.d.ts +42 -0
- package/dist/_types/molecules/Table/Table.d.ts +103 -0
- package/dist/_types/molecules/TableOfContents/TableOfContents.d.ts +49 -0
- package/dist/_types/molecules/TextareaField/TextareaField.d.ts +35 -0
- package/dist/_types/molecules/ThemeSwitcher/ThemeSwitcher.d.ts +42 -0
- package/dist/_types/molecules/TimeField/TimeField.d.ts +44 -0
- package/dist/_types/molecules/Toast/Toaster.d.ts +42 -0
- package/dist/_types/molecules/Toast/toast.d.ts +101 -0
- package/dist/_types/molecules/TreeView/TreeView.d.ts +93 -0
- package/dist/_types/molecules/UptimeBars/UptimeBars.d.ts +64 -0
- package/dist/_types/molecules/UptimeBars/uptimeStatus.d.ts +17 -0
- package/dist/_types/molecules/UserMenu/UserMenu.d.ts +19 -0
- package/dist/_types/molecules/UserMessage/UserMessage.d.ts +35 -0
- package/dist/_types/molecules/_shared/calendarGrid.d.ts +114 -0
- package/dist/_types/molecules/_shared/dialogSurface.d.ts +30 -0
- package/dist/_types/molecules/_shared/dropdownItems.d.ts +71 -0
- package/dist/_types/molecules/_shared/messageTimestamp.d.ts +20 -0
- package/dist/_types/og/index.d.ts +5 -0
- package/dist/_types/og/ogCard.d.ts +27 -0
- package/dist/_types/og/ogFonts.d.ts +22 -0
- package/dist/_types/og/ogTypeface.d.ts +12 -0
- package/dist/_types/organisms/AnnotationThread/AnnotationThread.d.ts +61 -0
- package/dist/_types/organisms/Chart/Chart.d.ts +114 -0
- package/dist/_types/organisms/ConversationThread/ConversationThread.d.ts +44 -0
- package/dist/_types/organisms/DataTable/DataTable.d.ts +100 -0
- package/dist/_types/organisms/Steps/Steps.d.ts +69 -0
- package/dist/_types/pages/Auth/AuthPage.d.ts +24 -0
- package/dist/_types/pages/Onboarding/OnboardingPage.d.ts +37 -0
- package/dist/_types/pages/Status/StatusPage.d.ts +37 -0
- package/dist/_types/pages/Status/_datos.d.ts +47 -0
- package/dist/_types/sections/AppHeader/AppHeader.d.ts +23 -0
- package/dist/_types/sections/AppRoot/AppRoot.d.ts +16 -0
- package/dist/_types/sections/AppShell/AppShell.d.ts +30 -0
- package/dist/_types/sections/AppShell/AppShellContext.d.ts +16 -0
- package/dist/_types/sections/AppShell/_datos.d.ts +6 -0
- package/dist/_types/sections/FloatingDock/FloatingDock.d.ts +72 -0
- package/dist/_types/sections/Hero/Hero.d.ts +28 -0
- package/dist/_types/sections/Highlight/Highlight.d.ts +42 -0
- package/dist/_types/sections/LegalFooter/LegalFooter.d.ts +35 -0
- package/dist/_types/sections/Sidebar/Sidebar.d.ts +37 -0
- package/dist/_types/sections/Sidebar/SidebarContext.d.ts +6 -0
- package/dist/_types/sections/SiteFooter/SiteFooter.d.ts +68 -0
- package/dist/_types/sections/SiteHeader/SiteHeader.d.ts +58 -0
- package/dist/_types/sections/SiteShell/SiteShell.d.ts +26 -0
- package/dist/_types/templates/ChatShell/ChatShell.d.ts +53 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorAuthShell.d.ts +73 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorConsentPage.d.ts +129 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorExternalSignInPage.d.ts +87 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorRejectionPage.d.ts +69 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorRequestSummary.d.ts +74 -0
- package/dist/_types/templates/ConnectorAuth/ConnectorSignInPage.d.ts +69 -0
- package/dist/_types/templates/ConnectorAuth/UntrustedText.d.ts +55 -0
- package/dist/_types/templates/ErrorPage/ErrorPage.d.ts +35 -0
- package/dist/_types/templates/NotFoundPage/NotFoundPage.d.ts +30 -0
- package/dist/_types/templates/OnboardingShell/OnboardingShell.d.ts +104 -0
- package/dist/_types/templates/PublicPageShell/PublicPageShell.d.ts +59 -0
- package/dist/_types/tokens/tokens.d.ts +24 -0
- package/dist/_types/utils/chromaticModes.d.ts +46 -0
- package/dist/_types/utils/storyDate.d.ts +11 -0
- package/dist/accordion.css +1 -0
- package/dist/accordion.js +89 -0
- package/dist/alert.css +1 -0
- package/dist/alert.js +78 -0
- package/dist/annotation-thread.css +1 -0
- package/dist/annotation-thread.js +98 -0
- package/dist/app-header.css +1 -0
- package/dist/app-header.js +37 -0
- package/dist/app-launcher.css +1 -0
- package/dist/app-launcher.js +119 -0
- package/dist/app-root.js +11 -0
- package/dist/app-shell.css +1 -0
- package/dist/app-shell.js +83 -0
- package/dist/arrow.css +1 -0
- package/dist/arrow.js +24 -0
- package/dist/assets/email/google-sans-flex-normal-latin-v1.woff2 +0 -0
- package/dist/assets/email/logo-v3.png +0 -0
- package/dist/assets/fonts/google-sans-code/LICENSE.txt +93 -0
- package/dist/assets/fonts/google-sans-code/google-sans-code-italic-latin-ext.woff2 +0 -0
- package/dist/assets/fonts/google-sans-code/google-sans-code-italic-latin.woff2 +0 -0
- package/dist/assets/fonts/google-sans-code/google-sans-code-normal-latin-ext.woff2 +0 -0
- package/dist/assets/fonts/google-sans-code/google-sans-code-normal-latin.woff2 +0 -0
- package/dist/assets/fonts/google-sans-flex/LICENSE.txt +91 -0
- package/dist/assets/fonts/google-sans-flex/README.md +29 -0
- package/dist/assets/fonts/google-sans-flex/google-sans-flex-normal-300.ttf +0 -0
- package/dist/assets/fonts/google-sans-flex/google-sans-flex-normal-500.ttf +0 -0
- package/dist/assets/fonts/google-sans-flex/google-sans-flex-normal-latin-ext.woff2 +0 -0
- package/dist/assets/fonts/google-sans-flex/google-sans-flex-normal-latin.woff2 +0 -0
- package/dist/assets/fonts/libre-bodoni/LICENSE.txt +93 -0
- package/dist/assets/fonts/libre-bodoni/libre-bodoni-italic-latin-ext.woff2 +0 -0
- package/dist/assets/fonts/libre-bodoni/libre-bodoni-italic-latin.woff2 +0 -0
- package/dist/assets/fonts/libre-bodoni/libre-bodoni-normal-latin-ext.woff2 +0 -0
- package/dist/assets/fonts/libre-bodoni/libre-bodoni-normal-latin.woff2 +0 -0
- package/dist/assets/icons/apple-touch-icon.png +0 -0
- package/dist/assets/icons/favicon.ico +0 -0
- package/dist/assets/icons/icon-192.png +0 -0
- package/dist/assets/icons/icon-512-maskable.png +0 -0
- package/dist/assets/icons/icon-512.png +0 -0
- package/dist/assets/icons/icon.svg +8 -0
- package/dist/assets/icons/manifest.webmanifest +25 -0
- package/dist/assets/logo.svg +12 -0
- package/dist/assets/logomark-safe.svg +7 -0
- package/dist/assets/logomark.svg +6 -0
- package/dist/assistant-message.css +1 -0
- package/dist/assistant-message.js +32 -0
- package/dist/async-multi-select-field.css +1 -0
- package/dist/async-multi-select-field.js +58 -0
- package/dist/async-multi-select.css +1 -0
- package/dist/async-multi-select.js +196 -0
- package/dist/async-select-field.css +1 -0
- package/dist/async-select-field.js +57 -0
- package/dist/async-select.css +1 -0
- package/dist/async-select.js +172 -0
- package/dist/avatar-upload.css +1 -0
- package/dist/avatar-upload.js +176 -0
- package/dist/avatar.css +1 -0
- package/dist/avatar.js +34 -0
- package/dist/banner.css +1 -0
- package/dist/banner.js +39 -0
- package/dist/brand-assets.js +75 -0
- package/dist/brand.css +6644 -0
- package/dist/breadcrumb.css +1 -0
- package/dist/breadcrumb.js +39 -0
- package/dist/button.css +1 -0
- package/dist/button.js +60 -0
- package/dist/calendar-planner.css +1 -0
- package/dist/calendar-planner.js +123 -0
- package/dist/calendar-roster.css +1 -0
- package/dist/calendar-roster.js +143 -0
- package/dist/calendar.css +1 -0
- package/dist/calendar.js +178 -0
- package/dist/card.css +1 -0
- package/dist/card.js +115 -0
- package/dist/carousel.css +1 -0
- package/dist/carousel.js +124 -0
- package/dist/chart.css +1 -0
- package/dist/chart.js +670 -0
- package/dist/chat-shell.css +1 -0
- package/dist/chat-shell.js +83 -0
- package/dist/checkbox-field.css +1 -0
- package/dist/checkbox-field.js +55 -0
- package/dist/checkbox.css +1 -0
- package/dist/checkbox.js +35 -0
- package/dist/close-button.css +1 -0
- package/dist/close-button.js +22 -0
- package/dist/code-block.css +1 -0
- package/dist/code-block.js +77 -0
- package/dist/code.css +1 -0
- package/dist/code.js +14 -0
- package/dist/collapsible.css +1 -0
- package/dist/collapsible.js +41 -0
- package/dist/columns.css +1 -0
- package/dist/columns.js +26 -0
- package/dist/command-palette.css +1 -0
- package/dist/command-palette.js +77 -0
- package/dist/confirm-dialog.css +1 -0
- package/dist/confirm-dialog.js +64 -0
- package/dist/connector-auth-shell.js +37 -0
- package/dist/connector-consent-page.js +89 -0
- package/dist/connector-external-sign-in-page.js +71 -0
- package/dist/connector-rejection-page.js +77 -0
- package/dist/connector-request-summary.css +1 -0
- package/dist/connector-request-summary.js +36 -0
- package/dist/connector-sign-in-page.js +65 -0
- package/dist/consent.css +1 -0
- package/dist/consent.js +109 -0
- package/dist/container.css +1 -0
- package/dist/container.js +28 -0
- package/dist/context-menu.js +23 -0
- package/dist/conversation-list.css +1 -0
- package/dist/conversation-list.js +100 -0
- package/dist/conversation-thread.css +1 -0
- package/dist/conversation-thread.js +42 -0
- package/dist/copy-button.css +1 -0
- package/dist/copy-button.js +45 -0
- package/dist/copyable-value.css +1 -0
- package/dist/copyable-value.js +100 -0
- package/dist/data-table.css +1 -0
- package/dist/data-table.js +1677 -0
- package/dist/date-picker-field.css +1 -0
- package/dist/date-picker-field.js +44 -0
- package/dist/date-picker.js +3 -0
- package/dist/date-time-field.css +1 -0
- package/dist/date-time-field.js +104 -0
- package/dist/datepicker.css +1 -0
- package/dist/description-list.css +1 -0
- package/dist/description-list.js +45 -0
- package/dist/dialogsurface.css +1 -0
- package/dist/docs-search.css +1 -0
- package/dist/docs-search.js +78 -0
- package/dist/dots-button.css +1 -0
- package/dist/dots-button.js +29 -0
- package/dist/dropdown-field.css +1 -0
- package/dist/dropdown-field.js +73 -0
- package/dist/email.js +440 -0
- package/dist/empty-state.css +1 -0
- package/dist/empty-state.js +39 -0
- package/dist/error-boundary.js +18 -0
- package/dist/error-page.js +28 -0
- package/dist/error-text.css +1 -0
- package/dist/error-text.js +15 -0
- package/dist/field-row.css +1 -0
- package/dist/field-row.js +55 -0
- package/dist/fieldset.css +1 -0
- package/dist/fieldset.js +22 -0
- package/dist/figure.css +1 -0
- package/dist/figure.js +40 -0
- package/dist/file-upload-field.css +1 -0
- package/dist/file-upload-field.js +43 -0
- package/dist/file-upload.css +1 -0
- package/dist/file-upload.js +199 -0
- package/dist/filter-bar.css +1 -0
- package/dist/filter-bar.js +31 -0
- package/dist/floating-dock.css +1 -0
- package/dist/floating-dock.js +79 -0
- package/dist/fonts.css +113 -0
- package/dist/form-field.css +1 -0
- package/dist/form-field.js +110 -0
- package/dist/form.css +1 -0
- package/dist/form.js +63 -0
- package/dist/heading.css +1 -0
- package/dist/heading.js +19 -0
- package/dist/hero.css +1 -0
- package/dist/hero.js +41 -0
- package/dist/highlight.css +1 -0
- package/dist/highlight.js +54 -0
- package/dist/icon.css +1 -0
- package/dist/icon.js +1745 -0
- package/dist/image-crop-dialog.js +3 -0
- package/dist/imagecropdialog.css +1 -0
- package/dist/inline.css +1 -0
- package/dist/inline.js +18 -0
- package/dist/input-field.css +1 -0
- package/dist/input-field.js +100 -0
- package/dist/input-phone-field.css +1 -0
- package/dist/input-phone-field.js +55 -0
- package/dist/input-phone.css +1 -0
- package/dist/input-phone.js +88 -0
- package/dist/input.css +1 -0
- package/dist/input.js +22 -0
- package/dist/kbd.css +1 -0
- package/dist/kbd.js +18 -0
- package/dist/label.css +1 -0
- package/dist/label.js +19 -0
- package/dist/language-switcher.css +1 -0
- package/dist/language-switcher.js +77 -0
- package/dist/legal-footer.css +1 -0
- package/dist/legal-footer.js +42 -0
- package/dist/link.css +1 -0
- package/dist/link.js +45 -0
- package/dist/list.css +1 -0
- package/dist/list.js +25 -0
- package/dist/logo.css +1 -0
- package/dist/logo.js +4 -0
- package/dist/logomark.css +1 -0
- package/dist/logomark.js +26 -0
- package/dist/menu-button.css +1 -0
- package/dist/menu-button.js +27 -0
- package/dist/menu.css +1 -0
- package/dist/menu.js +51 -0
- package/dist/message-bubble.css +1 -0
- package/dist/message-bubble.js +18 -0
- package/dist/message-composer.css +1 -0
- package/dist/message-composer.js +57 -0
- package/dist/modal.css +1 -0
- package/dist/modal.js +61 -0
- package/dist/multi-select-field.css +1 -0
- package/dist/multi-select-field.js +54 -0
- package/dist/multi-select.css +1 -0
- package/dist/multi-select.js +192 -0
- package/dist/not-found-page.js +20 -0
- package/dist/notification-button.css +1 -0
- package/dist/notification-button.js +32 -0
- package/dist/notification-list.css +1 -0
- package/dist/notification-list.js +71 -0
- package/dist/notification-panel.css +1 -0
- package/dist/notification-panel.js +145 -0
- package/dist/number-badge.css +1 -0
- package/dist/number-badge.js +19 -0
- package/dist/number-input-field.css +1 -0
- package/dist/number-input-field.js +52 -0
- package/dist/number-input.css +1 -0
- package/dist/number-input.js +89 -0
- package/dist/og.js +121 -0
- package/dist/onboarding-shell.css +1 -0
- package/dist/onboarding-shell.js +69 -0
- package/dist/org-switcher.css +1 -0
- package/dist/org-switcher.js +81 -0
- package/dist/otp-field.css +1 -0
- package/dist/otp-field.js +54 -0
- package/dist/otp-input.css +1 -0
- package/dist/otp-input.js +115 -0
- package/dist/page-intro.css +1 -0
- package/dist/page-intro.js +31 -0
- package/dist/pagination.css +1 -0
- package/dist/pagination.js +178 -0
- package/dist/paragraph.css +1 -0
- package/dist/paragraph.js +18 -0
- package/dist/password-field.css +1 -0
- package/dist/password-field.js +65 -0
- package/dist/popover.css +1 -0
- package/dist/popover.js +36 -0
- package/dist/prev-next-nav.css +1 -0
- package/dist/prev-next-nav.js +82 -0
- package/dist/progress-bar.js +2 -0
- package/dist/progressbar.css +1 -0
- package/dist/project-card.css +1 -0
- package/dist/project-card.js +55 -0
- package/dist/prose.css +1 -0
- package/dist/prose.js +19 -0
- package/dist/public-page-shell.css +1 -0
- package/dist/public-page-shell.js +34 -0
- package/dist/radio-field.css +1 -0
- package/dist/radio-field.js +49 -0
- package/dist/radio-group.css +1 -0
- package/dist/radio-group.js +33 -0
- package/dist/radio.css +1 -0
- package/dist/radio.js +30 -0
- package/dist/recovery-codes.css +1 -0
- package/dist/recovery-codes.js +35 -0
- package/dist/scroll-area.css +1 -0
- package/dist/scroll-area.js +37 -0
- package/dist/search-form.css +1 -0
- package/dist/search-form.js +55 -0
- package/dist/select-field.css +1 -0
- package/dist/select-field.js +67 -0
- package/dist/select.css +1 -0
- package/dist/select.js +156 -0
- package/dist/separator.css +1 -0
- package/dist/separator.js +19 -0
- package/dist/sheet.css +1 -0
- package/dist/sheet.js +53 -0
- package/dist/sidebar-nav.css +1 -0
- package/dist/sidebar-nav.js +225 -0
- package/dist/sidebar.css +1 -0
- package/dist/sidebar.js +122 -0
- package/dist/site-footer.css +1 -0
- package/dist/site-footer.js +72 -0
- package/dist/site-header.css +1 -0
- package/dist/site-header.js +80 -0
- package/dist/site-nav.css +1 -0
- package/dist/site-nav.js +54 -0
- package/dist/site-shell.css +1 -0
- package/dist/site-shell.js +20 -0
- package/dist/skeleton.css +1 -0
- package/dist/skeleton.js +18 -0
- package/dist/skip-link.css +1 -0
- package/dist/skip-link.js +18 -0
- package/dist/slider.css +1 -0
- package/dist/slider.js +35 -0
- package/dist/sparkline.css +1 -0
- package/dist/sparkline.js +55 -0
- package/dist/spinner.css +1 -0
- package/dist/spinner.js +34 -0
- package/dist/stack.css +1 -0
- package/dist/stack.js +18 -0
- package/dist/star-rating.css +1 -0
- package/dist/star-rating.js +80 -0
- package/dist/stat-tile.css +1 -0
- package/dist/stat-tile.js +64 -0
- package/dist/step-marker.css +1 -0
- package/dist/step-marker.js +26 -0
- package/dist/stepper.css +1 -0
- package/dist/stepper.js +67 -0
- package/dist/steps.css +1 -0
- package/dist/steps.js +94 -0
- package/dist/switcher-field.css +1 -0
- package/dist/switcher-field.js +61 -0
- package/dist/switcher.css +1 -0
- package/dist/switcher.js +32 -0
- package/dist/table-of-contents.css +1 -0
- package/dist/table-of-contents.js +45 -0
- package/dist/table.css +1 -0
- package/dist/table.js +122 -0
- package/dist/tabs.css +1 -0
- package/dist/tabs.js +43 -0
- package/dist/tag.css +1 -0
- package/dist/tag.js +18 -0
- package/dist/text.css +1 -0
- package/dist/text.js +24 -0
- package/dist/textarea-field.css +1 -0
- package/dist/textarea-field.js +53 -0
- package/dist/textarea.css +1 -0
- package/dist/textarea.js +22 -0
- package/dist/theme-switcher.css +1 -0
- package/dist/theme-switcher.js +106 -0
- package/dist/time-field.css +1 -0
- package/dist/time-field.js +54 -0
- package/dist/time-select.css +1 -0
- package/dist/time-select.js +84 -0
- package/dist/toast.js +88 -0
- package/dist/toaster.css +1 -0
- package/dist/toaster.js +80 -0
- package/dist/toggle-group.css +1 -0
- package/dist/toggle-group.js +30 -0
- package/dist/toggle.css +1 -0
- package/dist/toggle.js +23 -0
- package/dist/tokens.css +6545 -0
- package/dist/tokens.js +2 -0
- package/dist/tooltip.css +1 -0
- package/dist/tooltip.js +60 -0
- package/dist/tree-view.css +1 -0
- package/dist/tree-view.js +165 -0
- package/dist/typing-indicator.css +1 -0
- package/dist/typing-indicator.js +27 -0
- package/dist/untrustedtext.css +1 -0
- package/dist/uptime-bars.css +1 -0
- package/dist/uptime-bars.js +100 -0
- package/dist/user-menu.css +1 -0
- package/dist/user-menu.js +85 -0
- package/dist/user-message.css +1 -0
- package/dist/user-message.js +31 -0
- package/dist/visually-hidden.js +14 -0
- package/dist/visuallyhidden.css +1 -0
- package/package.json +786 -0
- package/src/tokens/border.ts +13 -0
- package/src/tokens/breakpoint.ts +4 -0
- package/src/tokens/chart-palette.ts +5 -0
- package/src/tokens/colors.ts +168 -0
- package/src/tokens/components/accordion.css +32 -0
- package/src/tokens/components/accordion.ts +7 -0
- package/src/tokens/components/alert.ts +14 -0
- package/src/tokens/components/app-header.css +24 -0
- package/src/tokens/components/app-header.ts +4 -0
- package/src/tokens/components/app-launcher.ts +7 -0
- package/src/tokens/components/arrow.css +9 -0
- package/src/tokens/components/arrow.ts +4 -0
- package/src/tokens/components/assistant-message.ts +7 -0
- package/src/tokens/components/async-multi-select.css +64 -0
- package/src/tokens/components/async-multi-select.ts +13 -0
- package/src/tokens/components/async-select.css +56 -0
- package/src/tokens/components/async-select.ts +13 -0
- package/src/tokens/components/avatar.css +33 -0
- package/src/tokens/components/avatar.ts +4 -0
- package/src/tokens/components/breadcrumb.css +34 -0
- package/src/tokens/components/breadcrumb.ts +7 -0
- package/src/tokens/components/button.css +230 -0
- package/src/tokens/components/button.ts +13 -0
- package/src/tokens/components/card.css +43 -0
- package/src/tokens/components/card.ts +7 -0
- package/src/tokens/components/chat-shell.ts +7 -0
- package/src/tokens/components/chat.css +7 -0
- package/src/tokens/components/checkbox.css +44 -0
- package/src/tokens/components/checkbox.ts +9 -0
- package/src/tokens/components/close-button.css +22 -0
- package/src/tokens/components/close-button.ts +4 -0
- package/src/tokens/components/code-block.css +62 -0
- package/src/tokens/components/code-block.ts +11 -0
- package/src/tokens/components/code.css +13 -0
- package/src/tokens/components/code.ts +4 -0
- package/src/tokens/components/collapsible.css +29 -0
- package/src/tokens/components/collapsible.ts +7 -0
- package/src/tokens/components/columns.css +13 -0
- package/src/tokens/components/columns.ts +4 -0
- package/src/tokens/components/container.css +17 -0
- package/src/tokens/components/container.ts +7 -0
- package/src/tokens/components/control.css +22 -0
- package/src/tokens/components/conversation-list.ts +10 -0
- package/src/tokens/components/conversation-thread.ts +4 -0
- package/src/tokens/components/copyable-value.css +7 -0
- package/src/tokens/components/copyable-value.ts +4 -0
- package/src/tokens/components/description-list.css +31 -0
- package/src/tokens/components/description-list.ts +7 -0
- package/src/tokens/components/empty-state.ts +7 -0
- package/src/tokens/components/figure.css +24 -0
- package/src/tokens/components/figure.ts +7 -0
- package/src/tokens/components/file-upload.css +101 -0
- package/src/tokens/components/file-upload.ts +16 -0
- package/src/tokens/components/floating-dock.css +50 -0
- package/src/tokens/components/floating-dock.ts +4 -0
- package/src/tokens/components/floating-panel.css +22 -0
- package/src/tokens/components/hero.css +13 -0
- package/src/tokens/components/hero.ts +4 -0
- package/src/tokens/components/highlight.css +11 -0
- package/src/tokens/components/highlight.ts +4 -0
- package/src/tokens/components/icon.css +11 -0
- package/src/tokens/components/image-crop-dialog.ts +7 -0
- package/src/tokens/components/inline.css +9 -0
- package/src/tokens/components/inline.ts +4 -0
- package/src/tokens/components/input-phone.css +29 -0
- package/src/tokens/components/input-phone.ts +4 -0
- package/src/tokens/components/input.css +64 -0
- package/src/tokens/components/input.ts +11 -0
- package/src/tokens/components/kbd.css +35 -0
- package/src/tokens/components/kbd.ts +8 -0
- package/src/tokens/components/label.css +21 -0
- package/src/tokens/components/label.ts +10 -0
- package/src/tokens/components/legal-footer.css +10 -0
- package/src/tokens/components/legal-footer.ts +4 -0
- package/src/tokens/components/link.css +35 -0
- package/src/tokens/components/link.ts +4 -0
- package/src/tokens/components/logo.css +19 -0
- package/src/tokens/components/logo.ts +4 -0
- package/src/tokens/components/logomark.css +18 -0
- package/src/tokens/components/logomark.ts +4 -0
- package/src/tokens/components/menu-button.css +24 -0
- package/src/tokens/components/menu-button.ts +4 -0
- package/src/tokens/components/menu.ts +9 -0
- package/src/tokens/components/message-bubble.css +29 -0
- package/src/tokens/components/message-bubble.ts +8 -0
- package/src/tokens/components/message-composer.ts +9 -0
- package/src/tokens/components/modal.ts +7 -0
- package/src/tokens/components/multi-select.css +72 -0
- package/src/tokens/components/multi-select.ts +11 -0
- package/src/tokens/components/number-badge.css +39 -0
- package/src/tokens/components/number-badge.ts +7 -0
- package/src/tokens/components/number-input.css +54 -0
- package/src/tokens/components/number-input.ts +11 -0
- package/src/tokens/components/org-switcher.ts +4 -0
- package/src/tokens/components/otp-input.css +8 -0
- package/src/tokens/components/otp-input.ts +4 -0
- package/src/tokens/components/popover.css +27 -0
- package/src/tokens/components/popover.ts +7 -0
- package/src/tokens/components/progress-bar.css +47 -0
- package/src/tokens/components/progress-bar.ts +10 -0
- package/src/tokens/components/radio-group.css +8 -0
- package/src/tokens/components/radio-group.ts +4 -0
- package/src/tokens/components/radio.css +39 -0
- package/src/tokens/components/radio.ts +11 -0
- package/src/tokens/components/scroll-area.css +25 -0
- package/src/tokens/components/scroll-area.ts +7 -0
- package/src/tokens/components/select.css +57 -0
- package/src/tokens/components/select.ts +8 -0
- package/src/tokens/components/separator.css +18 -0
- package/src/tokens/components/separator.ts +8 -0
- package/src/tokens/components/sheet.ts +4 -0
- package/src/tokens/components/sidebar-nav.ts +4 -0
- package/src/tokens/components/sidebar.css +42 -0
- package/src/tokens/components/sidebar.ts +4 -0
- package/src/tokens/components/site-footer.css +26 -0
- package/src/tokens/components/site-footer.ts +7 -0
- package/src/tokens/components/site-header.css +35 -0
- package/src/tokens/components/site-header.ts +4 -0
- package/src/tokens/components/site-shell.css +22 -0
- package/src/tokens/components/site-shell.ts +9 -0
- package/src/tokens/components/skeleton.css +20 -0
- package/src/tokens/components/skeleton.ts +7 -0
- package/src/tokens/components/skip-link.css +25 -0
- package/src/tokens/components/skip-link.ts +4 -0
- package/src/tokens/components/slider.css +40 -0
- package/src/tokens/components/slider.ts +7 -0
- package/src/tokens/components/sparkline.css +23 -0
- package/src/tokens/components/sparkline.ts +4 -0
- package/src/tokens/components/spinner.css +13 -0
- package/src/tokens/components/spinner.ts +4 -0
- package/src/tokens/components/stack.css +9 -0
- package/src/tokens/components/stack.ts +4 -0
- package/src/tokens/components/star-rating.css +29 -0
- package/src/tokens/components/star-rating.ts +7 -0
- package/src/tokens/components/step.css +56 -0
- package/src/tokens/components/switcher.css +44 -0
- package/src/tokens/components/switcher.ts +10 -0
- package/src/tokens/components/tabs.css +43 -0
- package/src/tokens/components/tabs.ts +7 -0
- package/src/tokens/components/tag.css +43 -0
- package/src/tokens/components/tag.ts +21 -0
- package/src/tokens/components/text-inline.css +19 -0
- package/src/tokens/components/text-inline.ts +7 -0
- package/src/tokens/components/text.css +91 -0
- package/src/tokens/components/text.ts +24 -0
- package/src/tokens/components/textarea.css +78 -0
- package/src/tokens/components/textarea.ts +13 -0
- package/src/tokens/components/time-select.css +17 -0
- package/src/tokens/components/time-select.ts +7 -0
- package/src/tokens/components/toast.ts +4 -0
- package/src/tokens/components/toggle-group.css +7 -0
- package/src/tokens/components/toggle-group.ts +4 -0
- package/src/tokens/components/toggle.css +50 -0
- package/src/tokens/components/toggle.ts +7 -0
- package/src/tokens/components/tooltip.css +27 -0
- package/src/tokens/components/tooltip.ts +7 -0
- package/src/tokens/components/typing-indicator.css +21 -0
- package/src/tokens/components/typing-indicator.ts +7 -0
- package/src/tokens/components/user-menu.ts +4 -0
- package/src/tokens/components/user-message.ts +7 -0
- package/src/tokens/form.ts +23 -0
- package/src/tokens/global/border.css +18 -0
- package/src/tokens/global/breakpoint.css +12 -0
- package/src/tokens/global/colors.css +105 -0
- package/src/tokens/global/form.css +39 -0
- package/src/tokens/global/motion.css +15 -0
- package/src/tokens/global/opacity.css +10 -0
- package/src/tokens/global/section.css +12 -0
- package/src/tokens/global/shadow.css +12 -0
- package/src/tokens/global/size.css +11 -0
- package/src/tokens/global/spacing.css +14 -0
- package/src/tokens/global/typography.css +39 -0
- package/src/tokens/global/z-index.css +12 -0
- package/src/tokens/icon.ts +4 -0
- package/src/tokens/index.css +174 -0
- package/src/tokens/layer.ts +4 -0
- package/src/tokens/layout.ts +4 -0
- package/src/tokens/molecules/alert.css +46 -0
- package/src/tokens/molecules/annotation-thread.css +43 -0
- package/src/tokens/molecules/annotation-thread.ts +7 -0
- package/src/tokens/molecules/app-launcher.css +67 -0
- package/src/tokens/molecules/assistant-message.css +24 -0
- package/src/tokens/molecules/async-multi-select-field.css +25 -0
- package/src/tokens/molecules/async-multi-select-field.ts +8 -0
- package/src/tokens/molecules/async-select-field.css +25 -0
- package/src/tokens/molecules/async-select-field.ts +8 -0
- package/src/tokens/molecules/avatar-upload.css +35 -0
- package/src/tokens/molecules/avatar-upload.ts +7 -0
- package/src/tokens/molecules/banner.css +21 -0
- package/src/tokens/molecules/banner.ts +14 -0
- package/src/tokens/molecules/calendar-planner.css +70 -0
- package/src/tokens/molecules/calendar-planner.ts +7 -0
- package/src/tokens/molecules/calendar-roster.css +69 -0
- package/src/tokens/molecules/calendar-roster.ts +7 -0
- package/src/tokens/molecules/calendar.css +90 -0
- package/src/tokens/molecules/calendar.ts +7 -0
- package/src/tokens/molecules/carousel.css +27 -0
- package/src/tokens/molecules/carousel.ts +7 -0
- package/src/tokens/molecules/chart.css +123 -0
- package/src/tokens/molecules/chart.ts +4 -0
- package/src/tokens/molecules/chat-shell.css +20 -0
- package/src/tokens/molecules/checkbox-field.css +43 -0
- package/src/tokens/molecules/checkbox-field.ts +9 -0
- package/src/tokens/molecules/command-palette.css +50 -0
- package/src/tokens/molecules/command-palette.ts +7 -0
- package/src/tokens/molecules/confirm-dialog.css +7 -0
- package/src/tokens/molecules/confirm-dialog.ts +4 -0
- package/src/tokens/molecules/connector-auth.css +13 -0
- package/src/tokens/molecules/consent.css +30 -0
- package/src/tokens/molecules/consent.ts +8 -0
- package/src/tokens/molecules/conversation-list.css +38 -0
- package/src/tokens/molecules/conversation-thread.css +7 -0
- package/src/tokens/molecules/copy-button.css +7 -0
- package/src/tokens/molecules/copy-button.ts +4 -0
- package/src/tokens/molecules/data-table.css +9 -0
- package/src/tokens/molecules/data-table.ts +4 -0
- package/src/tokens/molecules/date-picker-field.css +25 -0
- package/src/tokens/molecules/date-picker-field.ts +8 -0
- package/src/tokens/molecules/date-picker.css +40 -0
- package/src/tokens/molecules/date-picker.ts +4 -0
- package/src/tokens/molecules/date-time-field.css +26 -0
- package/src/tokens/molecules/date-time-field.ts +8 -0
- package/src/tokens/molecules/docs-search.css +42 -0
- package/src/tokens/molecules/docs-search.ts +7 -0
- package/src/tokens/molecules/dropdown-field.css +57 -0
- package/src/tokens/molecules/dropdown-field.ts +4 -0
- package/src/tokens/molecules/empty-state.css +31 -0
- package/src/tokens/molecules/field-row.css +31 -0
- package/src/tokens/molecules/field-row.ts +7 -0
- package/src/tokens/molecules/file-upload-field.css +25 -0
- package/src/tokens/molecules/file-upload-field.ts +8 -0
- package/src/tokens/molecules/filter-bar.css +11 -0
- package/src/tokens/molecules/filter-bar.ts +5 -0
- package/src/tokens/molecules/form-field.css +7 -0
- package/src/tokens/molecules/image-crop-dialog.css +19 -0
- package/src/tokens/molecules/input-field.css +43 -0
- package/src/tokens/molecules/input-field.ts +12 -0
- package/src/tokens/molecules/input-phone-field.css +25 -0
- package/src/tokens/molecules/input-phone-field.ts +8 -0
- package/src/tokens/molecules/language-switcher.css +19 -0
- package/src/tokens/molecules/language-switcher.ts +4 -0
- package/src/tokens/molecules/menu.css +63 -0
- package/src/tokens/molecules/message-composer.css +37 -0
- package/src/tokens/molecules/modal.css +50 -0
- package/src/tokens/molecules/multi-select-field.css +25 -0
- package/src/tokens/molecules/multi-select-field.ts +8 -0
- package/src/tokens/molecules/notification-button.css +9 -0
- package/src/tokens/molecules/notification-button.ts +4 -0
- package/src/tokens/molecules/notification-list.css +30 -0
- package/src/tokens/molecules/notification-list.ts +4 -0
- package/src/tokens/molecules/notification-panel.css +41 -0
- package/src/tokens/molecules/notification-panel.ts +4 -0
- package/src/tokens/molecules/number-input-field.css +25 -0
- package/src/tokens/molecules/number-input-field.ts +8 -0
- package/src/tokens/molecules/onboarding-shell.css +18 -0
- package/src/tokens/molecules/org-switcher.css +57 -0
- package/src/tokens/molecules/otp-field.css +25 -0
- package/src/tokens/molecules/otp-field.ts +8 -0
- package/src/tokens/molecules/page-intro.css +10 -0
- package/src/tokens/molecules/pagination.css +68 -0
- package/src/tokens/molecules/pagination.ts +9 -0
- package/src/tokens/molecules/password-field.css +29 -0
- package/src/tokens/molecules/prev-next-nav.css +42 -0
- package/src/tokens/molecules/prev-next-nav.ts +7 -0
- package/src/tokens/molecules/project-card.css +21 -0
- package/src/tokens/molecules/project-card.ts +7 -0
- package/src/tokens/molecules/prose.css +58 -0
- package/src/tokens/molecules/prose.ts +7 -0
- package/src/tokens/molecules/public-page-shell.css +8 -0
- package/src/tokens/molecules/radio-field.css +42 -0
- package/src/tokens/molecules/radio-field.ts +9 -0
- package/src/tokens/molecules/recovery-codes.css +23 -0
- package/src/tokens/molecules/recovery-codes.ts +4 -0
- package/src/tokens/molecules/search-form.css +34 -0
- package/src/tokens/molecules/search-form.ts +7 -0
- package/src/tokens/molecules/select-field.css +25 -0
- package/src/tokens/molecules/select-field.ts +4 -0
- package/src/tokens/molecules/sheet.css +33 -0
- package/src/tokens/molecules/sidebar-nav.css +53 -0
- package/src/tokens/molecules/site-nav.css +31 -0
- package/src/tokens/molecules/site-nav.ts +4 -0
- package/src/tokens/molecules/stat-tile.css +45 -0
- package/src/tokens/molecules/stat-tile.ts +7 -0
- package/src/tokens/molecules/stepper.css +41 -0
- package/src/tokens/molecules/steps.css +11 -0
- package/src/tokens/molecules/steps.ts +7 -0
- package/src/tokens/molecules/switcher-field.css +42 -0
- package/src/tokens/molecules/switcher-field.ts +9 -0
- package/src/tokens/molecules/table-of-contents.css +42 -0
- package/src/tokens/molecules/table-of-contents.ts +7 -0
- package/src/tokens/molecules/table.css +60 -0
- package/src/tokens/molecules/table.ts +14 -0
- package/src/tokens/molecules/textarea-field.css +25 -0
- package/src/tokens/molecules/textarea-field.ts +10 -0
- package/src/tokens/molecules/theme-switcher.css +20 -0
- package/src/tokens/molecules/theme-switcher.ts +4 -0
- package/src/tokens/molecules/time-field.css +25 -0
- package/src/tokens/molecules/time-field.ts +8 -0
- package/src/tokens/molecules/toast.css +17 -0
- package/src/tokens/molecules/tree-view.css +47 -0
- package/src/tokens/molecules/tree-view.ts +7 -0
- package/src/tokens/molecules/uptime-bars.css +40 -0
- package/src/tokens/molecules/uptime-bars.ts +7 -0
- package/src/tokens/molecules/user-menu.css +73 -0
- package/src/tokens/molecules/user-message.css +24 -0
- package/src/tokens/motion.ts +6 -0
- package/src/tokens/opacity.ts +4 -0
- package/src/tokens/scss/_index.legacy.scss +163 -0
- package/src/tokens/scss/_index.scss +163 -0
- package/src/tokens/scss/components/_accordion.scss +20 -0
- package/src/tokens/scss/components/_app-header.scss +13 -0
- package/src/tokens/scss/components/_arrow.scss +6 -0
- package/src/tokens/scss/components/_async-multi-select.scss +52 -0
- package/src/tokens/scss/components/_async-select.scss +44 -0
- package/src/tokens/scss/components/_avatar.scss +22 -0
- package/src/tokens/scss/components/_breadcrumb.scss +20 -0
- package/src/tokens/scss/components/_button.scss +187 -0
- package/src/tokens/scss/components/_card.scss +31 -0
- package/src/tokens/scss/components/_chat.scss +4 -0
- package/src/tokens/scss/components/_checkbox.scss +28 -0
- package/src/tokens/scss/components/_close-button.scss +11 -0
- package/src/tokens/scss/components/_code-block.scss +36 -0
- package/src/tokens/scss/components/_code.scss +10 -0
- package/src/tokens/scss/components/_collapsible.scss +18 -0
- package/src/tokens/scss/components/_columns.scss +10 -0
- package/src/tokens/scss/components/_container.scss +14 -0
- package/src/tokens/scss/components/_control.scss +19 -0
- package/src/tokens/scss/components/_copyable-value.scss +4 -0
- package/src/tokens/scss/components/_description-list.scss +19 -0
- package/src/tokens/scss/components/_figure.scss +13 -0
- package/src/tokens/scss/components/_file-upload.scss +72 -0
- package/src/tokens/scss/components/_floating-dock.scss +40 -0
- package/src/tokens/scss/components/_floating-panel.scss +11 -0
- package/src/tokens/scss/components/_hero.scss +10 -0
- package/src/tokens/scss/components/_highlight.scss +8 -0
- package/src/tokens/scss/components/_icon.scss +8 -0
- package/src/tokens/scss/components/_inline.scss +6 -0
- package/src/tokens/scss/components/_input-phone.scss +17 -0
- package/src/tokens/scss/components/_input.scss +40 -0
- package/src/tokens/scss/components/_kbd.scss +23 -0
- package/src/tokens/scss/components/_label.scss +11 -0
- package/src/tokens/scss/components/_legal-footer.scss +7 -0
- package/src/tokens/scss/components/_link.scss +20 -0
- package/src/tokens/scss/components/_logo.scss +9 -0
- package/src/tokens/scss/components/_logomark.scss +8 -0
- package/src/tokens/scss/components/_menu-button.scss +13 -0
- package/src/tokens/scss/components/_message-bubble.scss +17 -0
- package/src/tokens/scss/components/_multi-select.scss +51 -0
- package/src/tokens/scss/components/_number-badge.scss +26 -0
- package/src/tokens/scss/components/_number-input.scss +43 -0
- package/src/tokens/scss/components/_otp-input.scss +5 -0
- package/src/tokens/scss/components/_popover.scss +17 -0
- package/src/tokens/scss/components/_progress-bar.scss +32 -0
- package/src/tokens/scss/components/_radio-group.scss +5 -0
- package/src/tokens/scss/components/_radio.scss +26 -0
- package/src/tokens/scss/components/_scroll-area.scss +13 -0
- package/src/tokens/scss/components/_select.scss +38 -0
- package/src/tokens/scss/components/_separator.scss +8 -0
- package/src/tokens/scss/components/_sidebar.scss +29 -0
- package/src/tokens/scss/components/_site-footer.scss +16 -0
- package/src/tokens/scss/components/_site-header.scss +24 -0
- package/src/tokens/scss/components/_site-shell.scss +19 -0
- package/src/tokens/scss/components/_skeleton.scss +9 -0
- package/src/tokens/scss/components/_skip-link.scss +13 -0
- package/src/tokens/scss/components/_slider.scss +25 -0
- package/src/tokens/scss/components/_sparkline.scss +11 -0
- package/src/tokens/scss/components/_spinner.scss +10 -0
- package/src/tokens/scss/components/_stack.scss +6 -0
- package/src/tokens/scss/components/_star-rating.scss +17 -0
- package/src/tokens/scss/components/_step.scss +37 -0
- package/src/tokens/scss/components/_switcher.scss +30 -0
- package/src/tokens/scss/components/_tabs.scss +26 -0
- package/src/tokens/scss/components/_tag.scss +30 -0
- package/src/tokens/scss/components/_text-inline.scss +7 -0
- package/src/tokens/scss/components/_text.scss +73 -0
- package/src/tokens/scss/components/_textarea.scss +54 -0
- package/src/tokens/scss/components/_time-select.scss +7 -0
- package/src/tokens/scss/components/_toggle-group.scss +4 -0
- package/src/tokens/scss/components/_toggle.scss +34 -0
- package/src/tokens/scss/components/_tooltip.scss +16 -0
- package/src/tokens/scss/components/_typing-indicator.scss +11 -0
- package/src/tokens/scss/global/_border.scss +15 -0
- package/src/tokens/scss/global/_breakpoint.scss +9 -0
- package/src/tokens/scss/global/_colors.scss +102 -0
- package/src/tokens/scss/global/_form.scss +27 -0
- package/src/tokens/scss/global/_motion.scss +12 -0
- package/src/tokens/scss/global/_opacity.scss +7 -0
- package/src/tokens/scss/global/_section.scss +9 -0
- package/src/tokens/scss/global/_shadow.scss +9 -0
- package/src/tokens/scss/global/_size.scss +8 -0
- package/src/tokens/scss/global/_spacing.scss +11 -0
- package/src/tokens/scss/global/_typography.scss +36 -0
- package/src/tokens/scss/global/_z-index.scss +9 -0
- package/src/tokens/scss/molecules/_alert.scss +33 -0
- package/src/tokens/scss/molecules/_annotation-thread.scss +28 -0
- package/src/tokens/scss/molecules/_app-launcher.scss +46 -0
- package/src/tokens/scss/molecules/_assistant-message.scss +13 -0
- package/src/tokens/scss/molecules/_async-multi-select-field.scss +14 -0
- package/src/tokens/scss/molecules/_async-select-field.scss +14 -0
- package/src/tokens/scss/molecules/_avatar-upload.scss +23 -0
- package/src/tokens/scss/molecules/_banner.scss +18 -0
- package/src/tokens/scss/molecules/_calendar-planner.scss +46 -0
- package/src/tokens/scss/molecules/_calendar-roster.scss +45 -0
- package/src/tokens/scss/molecules/_calendar.scss +67 -0
- package/src/tokens/scss/molecules/_carousel.scss +15 -0
- package/src/tokens/scss/molecules/_chart.scss +82 -0
- package/src/tokens/scss/molecules/_chat-shell.scss +10 -0
- package/src/tokens/scss/molecules/_checkbox-field.scss +31 -0
- package/src/tokens/scss/molecules/_command-palette.scss +33 -0
- package/src/tokens/scss/molecules/_confirm-dialog.scss +4 -0
- package/src/tokens/scss/molecules/_connector-auth.scss +10 -0
- package/src/tokens/scss/molecules/_consent.scss +18 -0
- package/src/tokens/scss/molecules/_conversation-list.scss +23 -0
- package/src/tokens/scss/molecules/_conversation-thread.scss +4 -0
- package/src/tokens/scss/molecules/_copy-button.scss +4 -0
- package/src/tokens/scss/molecules/_data-table.scss +6 -0
- package/src/tokens/scss/molecules/_date-picker-field.scss +14 -0
- package/src/tokens/scss/molecules/_date-picker.scss +26 -0
- package/src/tokens/scss/molecules/_date-time-field.scss +15 -0
- package/src/tokens/scss/molecules/_docs-search.scss +27 -0
- package/src/tokens/scss/molecules/_dropdown-field.scss +41 -0
- package/src/tokens/scss/molecules/_empty-state.scss +19 -0
- package/src/tokens/scss/molecules/_field-row.scss +21 -0
- package/src/tokens/scss/molecules/_file-upload-field.scss +14 -0
- package/src/tokens/scss/molecules/_filter-bar.scss +8 -0
- package/src/tokens/scss/molecules/_form-field.scss +4 -0
- package/src/tokens/scss/molecules/_image-crop-dialog.scss +9 -0
- package/src/tokens/scss/molecules/_input-field.scss +28 -0
- package/src/tokens/scss/molecules/_input-phone-field.scss +14 -0
- package/src/tokens/scss/molecules/_language-switcher.scss +9 -0
- package/src/tokens/scss/molecules/_menu.scss +46 -0
- package/src/tokens/scss/molecules/_message-composer.scss +21 -0
- package/src/tokens/scss/molecules/_modal.scss +35 -0
- package/src/tokens/scss/molecules/_multi-select-field.scss +14 -0
- package/src/tokens/scss/molecules/_notification-button.scss +6 -0
- package/src/tokens/scss/molecules/_notification-list.scss +20 -0
- package/src/tokens/scss/molecules/_notification-panel.scss +31 -0
- package/src/tokens/scss/molecules/_number-input-field.scss +14 -0
- package/src/tokens/scss/molecules/_onboarding-shell.scss +15 -0
- package/src/tokens/scss/molecules/_org-switcher.scss +39 -0
- package/src/tokens/scss/molecules/_otp-field.scss +14 -0
- package/src/tokens/scss/molecules/_page-intro.scss +7 -0
- package/src/tokens/scss/molecules/_pagination.scss +46 -0
- package/src/tokens/scss/molecules/_password-field.scss +17 -0
- package/src/tokens/scss/molecules/_prev-next-nav.scss +25 -0
- package/src/tokens/scss/molecules/_project-card.scss +11 -0
- package/src/tokens/scss/molecules/_prose.scss +47 -0
- package/src/tokens/scss/molecules/_public-page-shell.scss +5 -0
- package/src/tokens/scss/molecules/_radio-field.scss +30 -0
- package/src/tokens/scss/molecules/_recovery-codes.scss +12 -0
- package/src/tokens/scss/molecules/_search-form.scss +21 -0
- package/src/tokens/scss/molecules/_select-field.scss +14 -0
- package/src/tokens/scss/molecules/_sheet.scss +30 -0
- package/src/tokens/scss/molecules/_sidebar-nav.scss +37 -0
- package/src/tokens/scss/molecules/_site-nav.scss +18 -0
- package/src/tokens/scss/molecules/_stat-tile.scss +32 -0
- package/src/tokens/scss/molecules/_stepper.scss +26 -0
- package/src/tokens/scss/molecules/_steps.scss +8 -0
- package/src/tokens/scss/molecules/_switcher-field.scss +30 -0
- package/src/tokens/scss/molecules/_table-of-contents.scss +27 -0
- package/src/tokens/scss/molecules/_table.scss +40 -0
- package/src/tokens/scss/molecules/_textarea-field.scss +14 -0
- package/src/tokens/scss/molecules/_theme-switcher.scss +10 -0
- package/src/tokens/scss/molecules/_time-field.scss +14 -0
- package/src/tokens/scss/molecules/_toast.scss +14 -0
- package/src/tokens/scss/molecules/_tree-view.scss +34 -0
- package/src/tokens/scss/molecules/_uptime-bars.scss +25 -0
- package/src/tokens/scss/molecules/_user-menu.scss +53 -0
- package/src/tokens/scss/molecules/_user-message.scss +13 -0
- package/src/tokens/shadow.ts +6 -0
- package/src/tokens/size.ts +6 -0
- package/src/tokens/spacing.ts +4 -0
- package/src/tokens/surface-dark-derived.css +88 -0
- package/src/tokens/surface-invert.css +682 -0
- package/src/tokens/surface-public.css +151 -0
- package/src/tokens/tokens.json +3267 -0
- package/src/tokens/tokens.ts +59 -0
- package/src/tokens/typography.ts +91 -0
- package/src/tokens/utils.test.ts +86 -0
- package/src/tokens/utils.ts +37 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import './FieldRow.css';
|
|
3
|
+
/** Ancho de una celda de la fila. `grow` absorbe el sobrante; el resto son anchos propios. */
|
|
4
|
+
export type FieldRowWidth = 'grow' | 'sm' | 'md' | 'lg' | 'auto';
|
|
5
|
+
export interface FieldRowsProps extends ComponentPropsWithoutRef<'div'> {
|
|
6
|
+
/**
|
|
7
|
+
* Dónde se ven las etiquetas de los campos: solo en la primera fila (por
|
|
8
|
+
* defecto, que es como se lee una lista en columnas) o en todas. En las
|
|
9
|
+
* filas sin etiqueta visible el `<label>` sigue ahí, oculto: el campo
|
|
10
|
+
* conserva su nombre accesible.
|
|
11
|
+
* @default 'first-row'
|
|
12
|
+
*/
|
|
13
|
+
labels?: 'first-row' | 'every-row';
|
|
14
|
+
/** Qué pintar cuando no queda ninguna fila. Sin él, la lista no ocupa nada. */
|
|
15
|
+
empty?: ReactNode;
|
|
16
|
+
/** Las filas: una `FieldRow` por cada elemento de la lista editable. */
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
/** Se añade DESPUÉS de las clases propias. */
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* La lista de filas editables: invitar personas, dominios, redirecciones,
|
|
23
|
+
* variables de entorno. Solo aporta el aire entre filas y **la posición**: es
|
|
24
|
+
* lo que le permite decidir qué fila enseña las etiquetas, en vez de que cada
|
|
25
|
+
* consumidor se acuerde de pasar `labelHidden={i > 0}` fila a fila.
|
|
26
|
+
*
|
|
27
|
+
* `{...rest}` (`role`, `aria-label`, `id`, `data-*`…) va al `<div>`: la lista
|
|
28
|
+
* puede ser un grupo con nombre sin envolverla en otro elemento.
|
|
29
|
+
*/
|
|
30
|
+
export declare function FieldRows({ labels, empty, children, className, ...rest }: FieldRowsProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export interface FieldRowProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
|
|
32
|
+
/**
|
|
33
|
+
* Ancho de cada celda, por posición: `grow` absorbe el sobrante, `sm`/`md`/`lg`
|
|
34
|
+
* son anchos propios y `auto` deja mandar al contenido. Sin la prop, la
|
|
35
|
+
* primera celda crece y las demás van a `md`.
|
|
36
|
+
*/
|
|
37
|
+
widths?: FieldRowWidth[];
|
|
38
|
+
/**
|
|
39
|
+
* La acción sobre la fila entera (quitarla, normalmente un `Button iconOnly`).
|
|
40
|
+
* Va en su propia celda al final, **fuera de la columna de cualquier campo**:
|
|
41
|
+
* no cuelga de la etiqueta de otra cosa ni ocupa su sitio. Su nombre accesible
|
|
42
|
+
* lo pone el consumidor, y nombra la fila («Quitar a nuria@…»), no la columna.
|
|
43
|
+
*/
|
|
44
|
+
action?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Si esta fila enseña las etiquetas de sus campos. Dentro de `FieldRows` lo
|
|
47
|
+
* decide la lista (solo la primera); suelta, la fila las enseña.
|
|
48
|
+
*/
|
|
49
|
+
labelled?: boolean;
|
|
50
|
+
/** Talla de los campos, para alinear la acción con los controles. Se hereda del `Form`. */
|
|
51
|
+
size?: 'sm' | 'md' | 'lg';
|
|
52
|
+
/** Las celdas, en orden: un campo por celda. */
|
|
53
|
+
children: ReactNode;
|
|
54
|
+
/** Se añade DESPUÉS de las clases propias. */
|
|
55
|
+
className?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Una fila de campos con una acción al final: **reparto mixto** —una celda que
|
|
59
|
+
* crece, otras con su ancho propio y la acción ocupando lo justo—, que es lo
|
|
60
|
+
* que `Columns` no hace (reparte proporciones sobre celdas iguales).
|
|
61
|
+
*
|
|
62
|
+
* Por debajo de `md` los campos se apilan a ancho completo y la acción cae al
|
|
63
|
+
* final, alineada al margen: sigue leyéndose como lo último que afecta a todo
|
|
64
|
+
* lo de arriba, y queda donde la mano ya la busca en escritorio.
|
|
65
|
+
*
|
|
66
|
+
* Habilitar o deshabilitar la acción —la lista con una sola fila, que no se
|
|
67
|
+
* puede quitar— es del consumidor: la fila no cuenta filas ni sabe qué hace su
|
|
68
|
+
* acción. El `disabled` va en el botón que se le pasa.
|
|
69
|
+
*/
|
|
70
|
+
export declare function FieldRow({ widths, action, labelled: labelledProp, size: sizeProp, children, className, ...rest }: FieldRowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import './FileUploadField.css';
|
|
2
|
+
import type { FileUploadProps } from '../../atoms/FileUpload/FileUpload';
|
|
3
|
+
export interface FileUploadFieldProps extends Omit<FileUploadProps, 'describedBy' | 'ariaLabel' | 'aria-describedby' | 'id'> {
|
|
4
|
+
/** `id` del control. Si no se pasa, se genera con `useId`. */
|
|
5
|
+
id?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* Oculta la etiqueta a la vista (sigue leyéndola el lector de pantalla).
|
|
9
|
+
* Por defecto `false`: la etiqueta se ve, como en el resto de campos.
|
|
10
|
+
* Sin valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no
|
|
11
|
+
* es la primera de la lista, la etiqueta se oculta sola.
|
|
12
|
+
*/
|
|
13
|
+
labelHidden?: boolean;
|
|
14
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
15
|
+
errorMessage?: string;
|
|
16
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
17
|
+
helperText?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Talla del sistema: mueve la etiqueta y la zona de arrastre a la vez (aire,
|
|
20
|
+
* cuerpo del texto, icono y miniatura de cada archivo).
|
|
21
|
+
* Sin ella, la del `Form` que lo envuelva; sin `Form`, `md`.
|
|
22
|
+
*/
|
|
23
|
+
size?: 'sm' | 'md' | 'lg';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* El `FileUpload` como campo de formulario. El `ref` va al `<input type="file">`
|
|
27
|
+
* real (react-hook-form lo registra y lo enfoca al fallar la validación); el
|
|
28
|
+
* `className`, al contenedor.
|
|
29
|
+
*/
|
|
30
|
+
export declare const FileUploadField: import("react").ForwardRefExoticComponent<FileUploadFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import './FilterBar.css';
|
|
3
|
+
export interface FilterBarProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* El buscador: el campo de búsqueda del sistema —un `InputField kind="search"`,
|
|
6
|
+
* que es el que trae la lupa, o el `SearchForm` cuando la consulta viaja a
|
|
7
|
+
* otra página—. Ocupa **su propia línea entera**, siempre: es lo primero que
|
|
8
|
+
* se toca y lo que más se escribe.
|
|
9
|
+
*/
|
|
10
|
+
search?: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Los filtros: un campo del sistema por filtro (`SelectField`,
|
|
13
|
+
* `DatePickerField`…), **con su etiqueta visible**. Un filtro sin rótulo
|
|
14
|
+
* obliga a abrirlo para saber qué filtra. En escritorio se reparten en
|
|
15
|
+
* columnas; en móvil se apilan a ancho completo.
|
|
16
|
+
*/
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Acciones sobre los filtros —«Limpiar filtros», normalmente—, al final de
|
|
20
|
+
* la fila de filtros y alineadas con los controles, no con sus rótulos.
|
|
21
|
+
*/
|
|
22
|
+
actions?: ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* Nombre accesible del punto de referencia `search` que es la barra.
|
|
25
|
+
* Default: «Filtros» (castellano). Una app multiidioma debe pasarlo traducido.
|
|
26
|
+
*/
|
|
27
|
+
ariaLabel?: string;
|
|
28
|
+
/** Se añade DESPUÉS de las clases propias. */
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* La barra de filtros de un listado: el buscador en su línea y, debajo, los
|
|
33
|
+
* filtros en columnas. Es **maqueta y nada más** —no sabe qué se filtra, no
|
|
34
|
+
* guarda estado y no pide datos—: cada filtro es un campo controlado por el
|
|
35
|
+
* consumidor, igual que en un formulario.
|
|
36
|
+
*
|
|
37
|
+
* Existe porque montarla a mano en un `Inline` se rompe en móvil: los campos
|
|
38
|
+
* no encogen por debajo de su contenido y la fila se sale. Aquí la rejilla es
|
|
39
|
+
* `auto-fit` sobre un ancho mínimo por token, así que el número de columnas lo
|
|
40
|
+
* decide el sitio disponible y en pantalla estrecha queda una sola.
|
|
41
|
+
*
|
|
42
|
+
* `{...rest}` (`id`, `data-*`, `aria-*`…) va al `<div>`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function FilterBar({ search, children, actions, ariaLabel, className, ...rest }: FilterBarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
2
|
+
import { type FormSize } from '../../constants/form-size';
|
|
3
|
+
import './Form.css';
|
|
4
|
+
export interface FormProps extends Omit<ComponentProps<'form'>, 'children'> {
|
|
5
|
+
/** Los campos. Opcional: un formulario puede ser solo acciones (reenviar un correo, aceptar o rechazar). */
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
/** Errores del formulario entero (los que no cuelgan de un campo): el fallo del servidor, por ejemplo. */
|
|
8
|
+
errors?: string[];
|
|
9
|
+
/** La acción principal (y, si hay, la secundaria): botones. */
|
|
10
|
+
actions?: ReactNode;
|
|
11
|
+
/** Enlaces secundarios bajo las acciones: «¿Has olvidado la contraseña?», o con texto delante (punto fuera del enlace): `<Paragraph>¿No tienes cuenta? <Link>Regístrate</Link>.</Paragraph>`. */
|
|
12
|
+
links?: ReactNode;
|
|
13
|
+
/** El captcha (Turnstile, reCAPTCHA…): entre los campos y las acciones, con su propio aire. */
|
|
14
|
+
captcha?: ReactNode;
|
|
15
|
+
/** Otras formas de hacer lo mismo: acceso con Google, enlace mágico… Van separadas del bloque principal. */
|
|
16
|
+
alternatives?: ReactNode;
|
|
17
|
+
/** Rótulo sobre las alternativas: «o continúa con». */
|
|
18
|
+
alternativesLabel?: string;
|
|
19
|
+
/** Talla de todos los campos y botones (32/40/48): `lg` en superficies públicas, `md` dentro de las aplicaciones. */
|
|
20
|
+
size?: FormSize;
|
|
21
|
+
/** Acciones en bloque: los botones a todo el ancho, apilados, también en escritorio (acceso, registro…). */
|
|
22
|
+
blockActions?: boolean;
|
|
23
|
+
/** Mensaje de éxito que sustituye al formulario («Gracias — tu mensaje se ha enviado.»): texto anunciado (`role="status"`), sin caja. Con `success`, no se pintan campos ni acciones; `links` sí. */
|
|
24
|
+
success?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* El formulario del sistema: solo estructura y aire. Campos apilados, los
|
|
28
|
+
* errores del formulario, las acciones, los enlaces secundarios y las
|
|
29
|
+
* alternativas, cada bloque con su separación por tokens; y la talla, que
|
|
30
|
+
* reparte a todo lo de dentro. Lo que hay dentro de cada campo (etiqueta,
|
|
31
|
+
* control, ayuda, error) es de los `*Field`; el estado y la validación, del
|
|
32
|
+
* producto (`FormField` para react-hook-form).
|
|
33
|
+
*/
|
|
34
|
+
export declare const Form: import("react").ForwardRefExoticComponent<Omit<FormProps, "ref"> & import("react").RefAttributes<HTMLFormElement>>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
|
+
import { FormProvider as RhfFormProvider, type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
|
|
3
|
+
import { Label } from '../../atoms/Label/Label';
|
|
4
|
+
import './FormField.css';
|
|
5
|
+
type Translate = (message: string) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Proveedor del formulario: el `FormProvider` de react-hook-form, expuesto
|
|
8
|
+
* desde el DS para que los consumidores no tengan que importar dos sitios
|
|
9
|
+
* para montar un campo, más `translate`: si los mensajes de error del
|
|
10
|
+
* esquema son claves de traducción (una política compartida con el
|
|
11
|
+
* servidor, por ejemplo), `FormMessage` y `FormRootMessage` las pasan por
|
|
12
|
+
* aquí antes de pintarlas.
|
|
13
|
+
*/
|
|
14
|
+
export declare function FormProvider<TFieldValues extends FieldValues = FieldValues, TContext = unknown, TTransformedValues = TFieldValues>({ translate, children, ...form }: ComponentProps<typeof RhfFormProvider<TFieldValues, TContext, TTransformedValues>> & {
|
|
15
|
+
translate?: Translate;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* Un campo controlado: envuelve el `Controller` de react-hook-form y publica
|
|
19
|
+
* su `name` para que el resto de piezas del campo (label, control, mensaje)
|
|
20
|
+
* sepan a qué error mirar.
|
|
21
|
+
*/
|
|
22
|
+
export declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TTransformedValues = TFieldValues>({ ...props }: ControllerProps<TFieldValues, TName, TTransformedValues>) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Estado e ids del campo en el que se está: quién es, si tiene error y con
|
|
25
|
+
* qué ids se enlazan su control, su ayuda y su mensaje.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useFormField(): {
|
|
28
|
+
invalid: boolean;
|
|
29
|
+
isDirty: boolean;
|
|
30
|
+
isTouched: boolean;
|
|
31
|
+
isValidating: boolean;
|
|
32
|
+
error?: import("react-hook-form").FieldError | undefined;
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
formItemId: string;
|
|
36
|
+
formDescriptionId: string;
|
|
37
|
+
formMessageId: string;
|
|
38
|
+
described: {
|
|
39
|
+
description: boolean;
|
|
40
|
+
message: boolean;
|
|
41
|
+
};
|
|
42
|
+
register: (part: "description" | "message", present: boolean) => void;
|
|
43
|
+
};
|
|
44
|
+
/** Contenedor de un campo: reserva los ids que enlazan sus partes. */
|
|
45
|
+
export declare function FormItem({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
/** Etiqueta del campo, ya apuntada a su control y marcada si hay error. */
|
|
47
|
+
export declare function FormLabel({ ...props }: ComponentProps<typeof Label>): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
/**
|
|
49
|
+
* Envoltorio del control real (input, select, textarea…). No renderiza nodo
|
|
50
|
+
* propio: fusiona en su hijo el `id`, el `aria-describedby` y el
|
|
51
|
+
* `aria-invalid` que corresponden al campo.
|
|
52
|
+
*/
|
|
53
|
+
export declare function FormControl({ children, ...props }: {
|
|
54
|
+
children: React.ReactElement<Record<string, unknown>>;
|
|
55
|
+
} & Record<string, unknown>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
56
|
+
/** Texto de ayuda del campo, enlazado al control por `aria-describedby`. */
|
|
57
|
+
export declare function FormDescription({ className, ...props }: ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
/**
|
|
59
|
+
* Mensaje de error del campo. Renderiza el error de react-hook-form si lo
|
|
60
|
+
* hay, o sus children si no; sin ninguno de los dos no renderiza nada.
|
|
61
|
+
*/
|
|
62
|
+
export declare function FormMessage({ className, children, ...props }: ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element | null;
|
|
63
|
+
/**
|
|
64
|
+
* Error del formulario entero (p. ej. "usuario o contraseña incorrectos"),
|
|
65
|
+
* el que se pone con `form.setError("root", …)` y no cuelga de ningún campo.
|
|
66
|
+
* Se coloca una vez al final del formulario: a diferencia de `FormMessage`
|
|
67
|
+
* no tiene campo del que leer, así que va directo al `formState`.
|
|
68
|
+
*/
|
|
69
|
+
export declare function FormRootMessage({ className, ...props }: ComponentProps<'p'>): import("react/jsx-runtime").JSX.Element | null;
|
|
70
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import 'react-image-crop/dist/ReactCrop.css';
|
|
3
|
+
import './ImageCropDialog.css';
|
|
4
|
+
export interface ImageCropDialogProps {
|
|
5
|
+
/** Object URL del fichero elegido; el diálogo está abierto mientras no sea null. */
|
|
6
|
+
sourceUrl: string | null;
|
|
7
|
+
title: string;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
/** Selección circular (avatares). El blob resultante sigue siendo cuadrado. */
|
|
10
|
+
circularCrop?: boolean;
|
|
11
|
+
aspect?: number;
|
|
12
|
+
/** Lado mayor del blob producido, en píxeles. */
|
|
13
|
+
outputSize?: number;
|
|
14
|
+
outputMimeType: 'image/jpeg' | 'image/png' | 'image/webp';
|
|
15
|
+
/** Deshabilita ambas acciones y bloquea el cierre mientras el consumidor sube. */
|
|
16
|
+
busy?: boolean;
|
|
17
|
+
cancelLabel: ReactNode;
|
|
18
|
+
confirmLabel: ReactNode;
|
|
19
|
+
/** Etiqueta del botón de cierre del diálogo. */
|
|
20
|
+
closeLabel?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Lo que se dice mientras la imagen se descarga y descodifica. Se anuncia y
|
|
23
|
+
* se ve. Default castellano: «Cargando imagen…».
|
|
24
|
+
*/
|
|
25
|
+
loadingLabel?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Lo que se dice cuando la imagen no se puede cargar. Default castellano:
|
|
28
|
+
* «No hemos podido cargar la imagen. Prueba con otro archivo.».
|
|
29
|
+
*/
|
|
30
|
+
errorMessage?: string;
|
|
31
|
+
onConfirm: (blob: Blob) => void | Promise<void>;
|
|
32
|
+
onClose: () => void;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Diálogo de recorte de imagen para subidas de avatar y logo: elige una
|
|
37
|
+
* región sobre la imagen y devuelve el recorte ya reescalado como `Blob`.
|
|
38
|
+
*
|
|
39
|
+
* `react-image-crop` aporta el gesto de selección; el DS pone el diálogo, las
|
|
40
|
+
* acciones y el volcado a lienzo (`cropImageToBlob`).
|
|
41
|
+
*/
|
|
42
|
+
export declare function ImageCropDialog({ sourceUrl, title, description, circularCrop, aspect, outputSize, outputMimeType, busy, cancelLabel, confirmLabel, closeLabel, loadingLabel, errorMessage, onConfirm, onClose, className, }: ImageCropDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Crop } from 'react-image-crop';
|
|
2
|
+
export type CropRegion = {
|
|
3
|
+
/** Desplazamiento en píxeles sobre la imagen mostrada. */
|
|
4
|
+
x: number;
|
|
5
|
+
/** Desplazamiento en píxeles sobre la imagen mostrada. */
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
export type CropToBlobOptions = {
|
|
11
|
+
/** Lado del lienzo de salida en píxeles (cuadrado). Por defecto 512. */
|
|
12
|
+
outputSize?: number;
|
|
13
|
+
/** Tipo MIME de salida. Por defecto image/jpeg. */
|
|
14
|
+
mimeType?: 'image/jpeg' | 'image/png' | 'image/webp';
|
|
15
|
+
/** Calidad 0–1 para formatos con pérdida. Por defecto 0.9. */
|
|
16
|
+
quality?: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Vuelca una región de un `<img>` en un lienzo nuevo, reescalada a una salida
|
|
20
|
+
* cuadrada, y devuelve el resultado como Blob listo para subir.
|
|
21
|
+
*
|
|
22
|
+
* La región va en píxeles *mostrados* (los que ve el usuario en
|
|
23
|
+
* react-image-crop); aquí se escala a la resolución natural de la fuente para
|
|
24
|
+
* recortar siempre sobre los píxeles originales.
|
|
25
|
+
*/
|
|
26
|
+
export declare function cropImageToBlob(src: HTMLImageElement, region: CropRegion, opts?: CropToBlobOptions): Promise<Blob>;
|
|
27
|
+
/**
|
|
28
|
+
* La selección inicial es la mayor que cabe con la proporción pedida, centrada:
|
|
29
|
+
* en una imagen cuadrada (para `aspect` 1) lo ocupa todo; en una vertical va
|
|
30
|
+
* al 100 % de ancho, centrada en vertical; en una apaisada, al 100 % de alto,
|
|
31
|
+
* centrada en horizontal. Quien recorta parte del máximo y reduce, no al revés.
|
|
32
|
+
*/
|
|
33
|
+
export declare function initialCrop(aspect: number, width: number, height: number): Crop;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import './InputField.css';
|
|
3
|
+
export interface InputFieldProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type' | 'value' | 'defaultValue'> {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
/**
|
|
7
|
+
* Oculta la etiqueta a la vista (sigue leyéndola el lector de pantalla).
|
|
8
|
+
* Por defecto `false`: la etiqueta se ve, como en `SelectField`.
|
|
9
|
+
* Con la etiqueta oculta y sin `placeholder`, el control usa el texto de la
|
|
10
|
+
* etiqueta como placeholder para no quedarse sin pista visible.
|
|
11
|
+
* Sin valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no
|
|
12
|
+
* es la primera de la lista, la etiqueta se oculta sola.
|
|
13
|
+
*/
|
|
14
|
+
labelHidden?: boolean;
|
|
15
|
+
name?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Tipo del `<input>`. **`search` no está**: el tipo nativo pinta el aspa de
|
|
18
|
+
* borrado del navegador, distinta en cada uno y fuera del sistema. Para un
|
|
19
|
+
* campo de búsqueda, `kind="search"`.
|
|
20
|
+
*/
|
|
21
|
+
type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
|
|
22
|
+
/**
|
|
23
|
+
* Naturaleza del campo. `search` lo convierte en campo de búsqueda: `type="text"`
|
|
24
|
+
* (nunca `type="search"`), sin autocompletado, con la tecla de intro rotulada
|
|
25
|
+
* «buscar» y una **lupa fija** al inicio que dice que lo escrito filtra.
|
|
26
|
+
* @default 'text'
|
|
27
|
+
*/
|
|
28
|
+
kind?: 'text' | 'search';
|
|
29
|
+
/**
|
|
30
|
+
* Solo con `kind="search"`: pinta un botón-aspa al final del campo cuando hay
|
|
31
|
+
* texto. Vacía el campo y devuelve el foco al control.
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
clearable?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Nombre accesible del botón de borrado. Default castellano.
|
|
37
|
+
* @default 'Borrar'
|
|
38
|
+
*/
|
|
39
|
+
clearLabel?: string;
|
|
40
|
+
/** Se llama tras vaciar el campo desde el aspa, ya con el foco devuelto. */
|
|
41
|
+
onClear?: () => void;
|
|
42
|
+
placeholder?: string;
|
|
43
|
+
value?: string;
|
|
44
|
+
defaultValue?: string;
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
readOnly?: boolean;
|
|
47
|
+
error?: boolean;
|
|
48
|
+
errorMessage?: string;
|
|
49
|
+
helperText?: string;
|
|
50
|
+
size?: 'sm' | 'md' | 'lg';
|
|
51
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
52
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
53
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* El `ref` y el resto de props nativas de `<input>` van al `<input>` interno
|
|
57
|
+
* (react-hook-form `register()`, `autoComplete`, `aria-*`, `data-*`…); el
|
|
58
|
+
* `className` va al contenedor.
|
|
59
|
+
*/
|
|
60
|
+
export declare const InputField: import("react").ForwardRefExoticComponent<InputFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Country } from 'react-phone-number-input';
|
|
2
|
+
import './InputPhoneField.css';
|
|
3
|
+
export interface InputPhoneFieldProps {
|
|
4
|
+
/** `id` del control. Si no se pasa, se genera con `useId`. */
|
|
5
|
+
id?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* Oculta la etiqueta a la vista (sigue leyéndola el lector de pantalla).
|
|
9
|
+
* Por defecto `false`: la etiqueta se ve, como en el resto de campos.
|
|
10
|
+
* Sin valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no
|
|
11
|
+
* es la primera de la lista, la etiqueta se oculta sola.
|
|
12
|
+
*/
|
|
13
|
+
labelHidden?: boolean;
|
|
14
|
+
value?: string;
|
|
15
|
+
defaultCountry?: Country;
|
|
16
|
+
placeholder?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
readOnly?: boolean;
|
|
19
|
+
required?: boolean;
|
|
20
|
+
name?: string;
|
|
21
|
+
autoComplete?: string;
|
|
22
|
+
/** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
|
|
23
|
+
error?: boolean;
|
|
24
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
25
|
+
errorMessage?: string;
|
|
26
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
27
|
+
helperText?: string;
|
|
28
|
+
size?: 'sm' | 'md' | 'lg';
|
|
29
|
+
/** Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye). */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** aria-label del selector de país. Default: "País" (castellano). */
|
|
32
|
+
countryLabel?: string;
|
|
33
|
+
/** Lo que enseña el selector sin país elegido. Default: "🌐". */
|
|
34
|
+
internationalLabel?: string;
|
|
35
|
+
/** Recibe el número en formato E.164, no el evento. */
|
|
36
|
+
onChange?: (value: string | undefined) => void;
|
|
37
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
38
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* El `InputPhone` como campo de formulario. El `ref` va al `<input>` del
|
|
42
|
+
* número (react-hook-form lo registra y lo enfoca al fallar la validación);
|
|
43
|
+
* el `className`, al contenedor.
|
|
44
|
+
*/
|
|
45
|
+
export declare const InputPhoneField: import("react").ForwardRefExoticComponent<InputPhoneFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import './LanguageSwitcher.css';
|
|
3
|
+
export interface Language {
|
|
4
|
+
/** Código BCP 47 (`es`, `en`, `pt-BR`). Es el valor; en el control se muestra el nombre. */
|
|
5
|
+
code: string;
|
|
6
|
+
/** Nombre del idioma **en ese idioma**: "Español", "English", "Deutsch". Es como cada quien reconoce el suyo. */
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
9
|
+
export type LanguageSwitcherRenderLinkProps = {
|
|
10
|
+
href: string;
|
|
11
|
+
lang: string;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
className: string;
|
|
14
|
+
'aria-current'?: 'true';
|
|
15
|
+
};
|
|
16
|
+
export interface LanguageSwitcherProps {
|
|
17
|
+
languages: Language[];
|
|
18
|
+
/** Código del idioma actual. */
|
|
19
|
+
value: string;
|
|
20
|
+
/** Cambio de idioma. Qué hacer con él (enrutar, persistir) es del producto. */
|
|
21
|
+
onChange?: (code: string) => void;
|
|
22
|
+
/** Nombre accesible del control (la etiqueta del campo). */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** `id` del control en compacto (enlaza la etiqueta). */
|
|
25
|
+
id?: string;
|
|
26
|
+
/** Oculta la etiqueta (visible por defecto: en el panel va con su nombre, como el de tema). */
|
|
27
|
+
labelHidden?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* `compact`: un campo desplegable con el nombre del idioma actual, en su idioma, que abre un menú — el de los ajustes y la barra.
|
|
30
|
+
* `list`: los idiomas desplegados en línea — el del pie.
|
|
31
|
+
*/
|
|
32
|
+
variant?: 'compact' | 'list';
|
|
33
|
+
/**
|
|
34
|
+
* Solo en `list`: enlace por idioma (para que cada versión tenga su URL).
|
|
35
|
+
* Sin él, la lista es de botones y usa `onChange`.
|
|
36
|
+
*/
|
|
37
|
+
hrefFor?: (code: string) => string;
|
|
38
|
+
renderLink?: (props: LanguageSwitcherRenderLinkProps) => ReactNode;
|
|
39
|
+
/**
|
|
40
|
+
* Disposición de la etiqueta. `inline` (por defecto) la pone delante del
|
|
41
|
+
* control, que es como va en la barra y en el panel; `stacked` la pone
|
|
42
|
+
* encima con el control a todo el ancho, que es la forma del resto de
|
|
43
|
+
* campos de un formulario — la de «Mi cuenta», donde este selector es un
|
|
44
|
+
* ajuste más y no un control de chrome.
|
|
45
|
+
*/
|
|
46
|
+
layout?: 'inline' | 'stacked';
|
|
47
|
+
/** Talla del control compacto (32/40/48): `lg` en superficies públicas, `md` en las aplicaciones. */
|
|
48
|
+
size?: 'sm' | 'md' | 'lg';
|
|
49
|
+
className?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Selector de idioma: el mismo campo desplegable que el de tema (`DropdownField`),
|
|
53
|
+
* con su etiqueta visible. Nunca un icono: el código de dos letras lo lee cualquiera
|
|
54
|
+
* aunque no entienda la interfaz, y las opciones van en su propio idioma. Es un
|
|
55
|
+
* componente del sistema porque aparece en el menú y en el pie de todos los
|
|
56
|
+
* sitios; el enrutado y la persistencia se quedan en el producto.
|
|
57
|
+
*/
|
|
58
|
+
export declare function LanguageSwitcher({ languages, value, onChange, label, id, labelHidden, variant, layout, size, hrefFor, renderLink, className, }: LanguageSwitcherProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type MenuItem, type MenuRenderLinkProps } from '../_shared/dropdownItems';
|
|
3
|
+
import './Menu.css';
|
|
4
|
+
export type { MenuItem, MenuButtonItem, MenuLinkItem, MenuSeparatorItem, MenuLabelItem, MenuRadioItem, MenuRenderLinkProps, } from '../_shared/dropdownItems';
|
|
5
|
+
export interface MenuProps {
|
|
6
|
+
/**
|
|
7
|
+
* Elemento que abre el menú. Recibe las props del trigger por `render`,
|
|
8
|
+
* así que vale cualquier cosa que las reenvíe (un `Button`, un icono, un
|
|
9
|
+
* avatar…). `ContextMenu` (tres puntos) y `UserMenu` (avatar) son este
|
|
10
|
+
* menú con un disparador fijado.
|
|
11
|
+
*/
|
|
12
|
+
trigger: ReactNode;
|
|
13
|
+
items: MenuItem[];
|
|
14
|
+
/** Valor activo del grupo de radio. Obligatorio si hay ítems `radio`. */
|
|
15
|
+
value?: string;
|
|
16
|
+
onValueChange?: (value: string) => void;
|
|
17
|
+
renderLink?: (props: MenuRenderLinkProps) => ReactNode;
|
|
18
|
+
open?: boolean;
|
|
19
|
+
defaultOpen?: boolean;
|
|
20
|
+
onOpenChange?: (open: boolean) => void;
|
|
21
|
+
/** Abre también al pasar el ratón por el disparador (flyout). Pulsar sigue funcionando. */
|
|
22
|
+
openOnHover?: boolean;
|
|
23
|
+
/** Retardo del hover, en ms. */
|
|
24
|
+
hoverDelay?: number;
|
|
25
|
+
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
26
|
+
align?: 'start' | 'center' | 'end';
|
|
27
|
+
sideOffset?: number;
|
|
28
|
+
minWidth?: string;
|
|
29
|
+
maxWidth?: string;
|
|
30
|
+
/** Talla de los ítems, la del disparador (32/40/48): el panel desplegado casa con el control plegado, como en el Select. */
|
|
31
|
+
size?: 'sm' | 'md' | 'lg';
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* El menú desplegable del sistema: define el vocabulario de ítems y la cara
|
|
36
|
+
* (tokens `menu.*`) de todos los menús; `ContextMenu`, `UserMenu`,
|
|
37
|
+
* `OrgSwitcher` o `DropdownField` son este menú con un disparador concreto.
|
|
38
|
+
*/
|
|
39
|
+
export declare function Menu({ trigger, items, value, onValueChange, renderLink, open, defaultOpen, onOpenChange, openOnHover, hoverDelay, side, align, sideOffset, minWidth, maxWidth, size, className, }: MenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
2
|
+
import './MessageComposer.css';
|
|
3
|
+
export interface MessageComposerProps extends Omit<ComponentProps<'div'>, 'onChange'> {
|
|
4
|
+
value: string;
|
|
5
|
+
onChange: (value: string) => void;
|
|
6
|
+
onSend: () => void;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Texto del botón de enviar. Es también su nombre accesible: no hay `aria-label` que lo contradiga. */
|
|
10
|
+
sendLabel?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Línea de ayuda bajo el marco, enlazada al campo con `aria-describedby`
|
|
13
|
+
* (el atajo de teclado, un aviso de privacidad…). **Sin valor por defecto en
|
|
14
|
+
* ningún idioma**: es la única prop de texto del sistema que no lo tiene,
|
|
15
|
+
* porque su contenido depende del producto y no de la traducción de una
|
|
16
|
+
* cadena. Sin ella no se pinta la línea.
|
|
17
|
+
*/
|
|
18
|
+
helperText?: ReactNode;
|
|
19
|
+
/** Contenido extra a la derecha del botón de enviar (p. ej. un botón de detener envío, o un selector de modelo). */
|
|
20
|
+
actions?: ReactNode;
|
|
21
|
+
/** `id` del textarea interno, para asociarlo con un `<label htmlFor>` externo. */
|
|
22
|
+
inputId?: string;
|
|
23
|
+
/** `aria-label` del textarea interno. */
|
|
24
|
+
inputLabel?: string;
|
|
25
|
+
/** `aria-labelledby` del textarea interno, alternativa a `inputLabel`. */
|
|
26
|
+
inputLabelledBy?: string;
|
|
27
|
+
/** Líneas que mide el campo en reposo. */
|
|
28
|
+
rows?: number;
|
|
29
|
+
/** Se añade DESPUÉS de las clases propias del componente (el consumidor añade, no sustituye). */
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* La caja de escribir de un chat: el campo, el botón de enviar y la línea que
|
|
34
|
+
* cuenta el atajo de teclado, todo dentro de un solo marco.
|
|
35
|
+
*
|
|
36
|
+
* La línea de ayuda (`helperText`) no trae texto por defecto: lo pone el
|
|
37
|
+
* producto, en su idioma.
|
|
38
|
+
*
|
|
39
|
+
* El campo es un `Textarea` en variante `bare` —sin caja propia—, así que el
|
|
40
|
+
* marco, el fondo y el anillo de foco los dibuja el composer: el átomo no se
|
|
41
|
+
* pisa desde fuera.
|
|
42
|
+
*
|
|
43
|
+
* Reenvía el resto de props del `<div>` (`data-*`, `id`…) y el `ref`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const MessageComposer: import("react").ForwardRefExoticComponent<Omit<MessageComposerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Dialog } from '@base-ui/react/dialog';
|
|
2
|
+
import './Modal.css';
|
|
3
|
+
export interface ModalProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title' | 'className'> {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
title?: string;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Nombre accesible del aspa de cierre. Default: «Cerrar» (castellano).
|
|
10
|
+
* Una app multiidioma debe pasarlo traducido.
|
|
11
|
+
*/
|
|
12
|
+
closeLabel?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Nombre accesible del diálogo cuando no hay `title`. Default: «Diálogo»
|
|
15
|
+
* (castellano). Una app multiidioma debe pasarlo traducido.
|
|
16
|
+
*/
|
|
17
|
+
fallbackTitle?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Nodo DOM donde montar el portal del modal (reenviado a Base UI
|
|
20
|
+
* `Portal.container`). Por defecto se monta en `document.body`, que
|
|
21
|
+
* hereda el tema activado a nivel raíz (`html.dark`/`[data-theme="dark"]`)
|
|
22
|
+
* sin configuración adicional. Solo hace falta pasarlo cuando el Modal
|
|
23
|
+
* vive dentro de un `.surface-dark` **anidado** (no en la raíz), ya que
|
|
24
|
+
* ese contexto no llega a `document.body` por la cascada.
|
|
25
|
+
*/
|
|
26
|
+
container?: React.ComponentPropsWithoutRef<typeof Dialog.Portal>['container'];
|
|
27
|
+
/**
|
|
28
|
+
* Descripción accesible del modal, renderizada bajo el título como
|
|
29
|
+
* `Dialog.Description` — Base UI se encarga de enlazarla al diálogo. Úsala
|
|
30
|
+
* cuando el texto descriptivo lo aporte el propio Modal.
|
|
31
|
+
*/
|
|
32
|
+
description?: React.ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Id del elemento que describe el modal, reenviado a `Dialog.Popup`. Para
|
|
35
|
+
* adaptadores que renderizan su propio nodo de descripción dentro de
|
|
36
|
+
* `children`. Tiene prioridad sobre `description` si se pasan ambas.
|
|
37
|
+
*/
|
|
38
|
+
'aria-describedby'?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Elemento que recibe el foco al abrir, reenviado a Base UI. Por defecto el
|
|
41
|
+
* foco entra en el panel por su primer elemento focable (el aspa de cerrar).
|
|
42
|
+
* Pásalo cuando el diálogo tenga un destino mejor —la salida segura de una
|
|
43
|
+
* confirmación, el buscador de una paleta— en vez de mover el foco a mano
|
|
44
|
+
* desde fuera: el gestor de foco de Base UI corre después y ganaría él.
|
|
45
|
+
*/
|
|
46
|
+
initialFocus?: React.ComponentPropsWithoutRef<typeof Dialog.Popup>['initialFocus'];
|
|
47
|
+
/**
|
|
48
|
+
* Fila de acciones al pie del diálogo. Es el sitio de los botones: el pie
|
|
49
|
+
* los reparte a la derecha en una fila y, por debajo del punto de ruptura,
|
|
50
|
+
* los apila a todo el ancho con la acción principal arriba — el mismo
|
|
51
|
+
* criterio (y el mismo orden) que las acciones de `Form`. Pásalos en el
|
|
52
|
+
* orden de la fila: la principal, la última.
|
|
53
|
+
*/
|
|
54
|
+
footer?: React.ReactNode;
|
|
55
|
+
/** Se añade DESPUÉS de las clases propias del pie. */
|
|
56
|
+
footerClassName?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Diálogo centrado sobre un velo. El motor (portal, velo, trampa de foco,
|
|
60
|
+
* cierre con Escape) es Base UI Dialog; el DS pone la superficie.
|
|
61
|
+
*
|
|
62
|
+
* `{...rest}` (`id`, `data-*`, `aria-*` y los **handlers de evento**) se
|
|
63
|
+
* reenvía al popup. Los handlers son lo que permite montar la barrera de
|
|
64
|
+
* eventos cuando el modal se abre desde dentro de una tarjeta clicable —
|
|
65
|
+
* `onClick`/`onPointerDown` con `stopPropagation` en el propio popup— sin
|
|
66
|
+
* envolverlo en `div`s de producto.
|
|
67
|
+
*
|
|
68
|
+
* `className` **no** se reenvía a propósito: la cara del diálogo la pone el
|
|
69
|
+
* sistema, y se personaliza por tokens.
|
|
70
|
+
*/
|
|
71
|
+
export declare function Modal({ open, onClose, title, children, closeLabel, fallbackTitle, container, description, 'aria-describedby': ariaDescribedBy, initialFocus, footer, footerClassName, ...rest }: ModalProps): import("react/jsx-runtime").JSX.Element;
|