@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,42 @@
|
|
|
1
|
+
import './MultiSelectField.css';
|
|
2
|
+
import type { MultiSelectOption } from '../../atoms/MultiSelect/MultiSelect';
|
|
3
|
+
export type { MultiSelectOption };
|
|
4
|
+
export interface MultiSelectFieldProps {
|
|
5
|
+
/** `id` del control. Si no se pasa, se genera con `useId`. */
|
|
6
|
+
id?: string;
|
|
7
|
+
label: string;
|
|
8
|
+
/**
|
|
9
|
+
* Oculta la etiqueta a la vista (sigue leyéndola el lector de pantalla).
|
|
10
|
+
* Por defecto `false`: la etiqueta se ve.
|
|
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
|
+
options: MultiSelectOption[];
|
|
16
|
+
value?: string[];
|
|
17
|
+
defaultValue?: string[];
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
/** Nombre del campo en el formulario: se monta un input oculto por valor elegido. */
|
|
20
|
+
name?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
/** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
|
|
24
|
+
error?: boolean;
|
|
25
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
26
|
+
errorMessage?: string;
|
|
27
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
28
|
+
helperText?: string;
|
|
29
|
+
size?: 'sm' | 'md' | 'lg';
|
|
30
|
+
/** Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye). */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** aria-label del botón que quita un valor. Default: `Quitar ${etiqueta}` (castellano). */
|
|
33
|
+
removeLabel?: (label: string) => string;
|
|
34
|
+
onValueChange?: (value: string[]) => void;
|
|
35
|
+
onBlur?: React.FocusEventHandler<HTMLDivElement>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* El `MultiSelect` como campo de formulario. El control es de Base UI: el
|
|
39
|
+
* `ref` va al **disparador** para que react-hook-form pueda enfocarlo al
|
|
40
|
+
* fallar la validación; el `className`, al contenedor.
|
|
41
|
+
*/
|
|
42
|
+
export declare const MultiSelectField: import("react").ForwardRefExoticComponent<MultiSelectFieldProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ButtonBaseProps } from '../../atoms/Button/Button';
|
|
2
|
+
import './NotificationButton.css';
|
|
3
|
+
export interface NotificationButtonProps extends Omit<ButtonBaseProps, 'variant' | 'iconOnly' | 'children' | 'href' | 'size'> {
|
|
4
|
+
/** Notificaciones sin leer. Con 0 (o sin él) no hay contador. */
|
|
5
|
+
count?: number;
|
|
6
|
+
/** Tope del contador («99+»). */
|
|
7
|
+
max?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Nombre accesible cuando no hay contador. Default: «Notificaciones»
|
|
10
|
+
* (castellano). Una app multiidioma debe pasarla traducida.
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Nombre accesible cuando hay contador: recibe el número, para que la frase
|
|
15
|
+
* se pueda rehacer en cualquier idioma. Default: «Notificaciones: N sin
|
|
16
|
+
* leer» (castellano).
|
|
17
|
+
*/
|
|
18
|
+
countLabel?: (count: number) => string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* La campana de la barra de la aplicación: un botón de icono con el contador
|
|
22
|
+
* de no leídas volando sobre su esquina, en rojo. Qué abre (un panel, un
|
|
23
|
+
* menú, una página) es del producto: es un botón y sirve de disparador.
|
|
24
|
+
*/
|
|
25
|
+
export declare const NotificationButton: import("react").ForwardRefExoticComponent<NotificationButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import './NotificationList.css';
|
|
3
|
+
/** Una notificación tal y como la enseña la lista: ya resuelta, sin datos crudos. */
|
|
4
|
+
export interface NotificationListItem {
|
|
5
|
+
id: string;
|
|
6
|
+
/** Título de la notificación. Con `href`, es el enlace de la fila. */
|
|
7
|
+
title: string;
|
|
8
|
+
/** Cuerpo. En la página se lee entero: no se recorta, a diferencia del panel. */
|
|
9
|
+
body?: string;
|
|
10
|
+
/** Fecha relativa **ya formateada** por el consumidor («hace 5 min»): la lista no formatea fechas. */
|
|
11
|
+
time: string;
|
|
12
|
+
/**
|
|
13
|
+
* La misma fecha en formato máquina (`2026-09-10T09:12:00Z`). Con ella la
|
|
14
|
+
* hora se pinta en un `<time datetime>`; sin ella, en texto corriente.
|
|
15
|
+
*/
|
|
16
|
+
timeDateTime?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Sin leer: el punto del indicador. Se dice igual que en el
|
|
19
|
+
* `NotificationPanel`, con el mismo booleano y en el mismo sentido.
|
|
20
|
+
*/
|
|
21
|
+
unread: boolean;
|
|
22
|
+
/** Destino de la notificación. Sin él, el título no es un enlace. */
|
|
23
|
+
href?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Texto solo para lectores de pantalla de **esta** fila sin leer, cuando el
|
|
26
|
+
* de la lista (`unreadLabel`) no vale. Casi nunca hace falta.
|
|
27
|
+
*/
|
|
28
|
+
unreadLabel?: string;
|
|
29
|
+
}
|
|
30
|
+
/** Lo que la lista pasa al `Link` del router de la aplicación. */
|
|
31
|
+
export interface NotificationListLinkProps {
|
|
32
|
+
href: string;
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
className?: string;
|
|
35
|
+
onClick?: () => void;
|
|
36
|
+
}
|
|
37
|
+
export type RenderNotificationListLink = (props: NotificationListLinkProps) => ReactNode;
|
|
38
|
+
export interface NotificationListProps {
|
|
39
|
+
/**
|
|
40
|
+
* Las notificaciones de la página, ya ordenadas y paginadas por el
|
|
41
|
+
* consumidor: la lista no ordena, no pagina y no filtra.
|
|
42
|
+
*/
|
|
43
|
+
items: NotificationListItem[];
|
|
44
|
+
/**
|
|
45
|
+
* El `Link` del router de la aplicación (patrón de `Link.mdx`: el router es
|
|
46
|
+
* de la app). Debe propagar **todas** las props que recibe. Por defecto, un
|
|
47
|
+
* `<a>` corriente.
|
|
48
|
+
*/
|
|
49
|
+
renderLink?: RenderNotificationListLink;
|
|
50
|
+
/**
|
|
51
|
+
* Las acciones **propias del producto** de cada fila («Eliminar»…), al
|
|
52
|
+
* final de la fila. Van como `Button variant="text" size="sm"`.
|
|
53
|
+
*/
|
|
54
|
+
renderActions?: (item: NotificationListItem) => ReactNode;
|
|
55
|
+
/** Se llama al pulsar el título de una fila con `href`, antes de navegar. */
|
|
56
|
+
onItemClick?: (item: NotificationListItem) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Con ella, cada fila sin leer estrena un «Marcar como leída» delante de las
|
|
59
|
+
* acciones del producto; sin ella no se pinta.
|
|
60
|
+
*/
|
|
61
|
+
onMarkRead?: (id: string) => void;
|
|
62
|
+
/** Nombre accesible de la lista. **No se pinta**: el título lo pone la página. Default «Notificaciones». */
|
|
63
|
+
label?: string;
|
|
64
|
+
/** Texto solo para lectores de pantalla que marca una fila sin leer. Default «Sin leer». */
|
|
65
|
+
unreadLabel?: string;
|
|
66
|
+
/** Rótulo del botón de marcar una fila. Default «Marcar como leída». */
|
|
67
|
+
markReadLabel?: string;
|
|
68
|
+
/** Se añade DESPUÉS de las clases propias de la lista (el consumidor añade, no sustituye). */
|
|
69
|
+
className?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* La bandeja: **todas** las notificaciones, a página completa. La misma fila
|
|
73
|
+
* del `NotificationPanel` —punto de no leída, título y cuerpo— pero leída a la
|
|
74
|
+
* talla de la página, con el texto entero y con las acciones de cada
|
|
75
|
+
* notificación a la vista.
|
|
76
|
+
*
|
|
77
|
+
* Va a sangre en la columna de la página: sin tarjeta, sin borde alrededor y
|
|
78
|
+
* sin línea entre filas. Lo único que separa una notificación de la siguiente
|
|
79
|
+
* es el aire de la propia fila.
|
|
80
|
+
*
|
|
81
|
+
* No ordena, no pagina y no filtra: eso es de la página (`Pagination`,
|
|
82
|
+
* `FilterBar`). Con la lista vacía no pinta nada — el hueco es de un
|
|
83
|
+
* `EmptyState`.
|
|
84
|
+
*/
|
|
85
|
+
export declare function NotificationList({ items, renderLink, renderActions, onItemClick, onMarkRead, label, unreadLabel, markReadLabel, className, }: NotificationListProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PopoverChangeDetails } from '../../atoms/Popover/Popover';
|
|
3
|
+
import './NotificationPanel.css';
|
|
4
|
+
/** Una notificación tal y como la enseña el panel: ya resuelta, sin datos crudos. */
|
|
5
|
+
export interface NotificationPanelItem {
|
|
6
|
+
id: string;
|
|
7
|
+
/** Título de la notificación. Una línea. */
|
|
8
|
+
title: string;
|
|
9
|
+
/** Cuerpo. Se recorta con elipsis a las líneas del token `item-body-line-clamp`. */
|
|
10
|
+
body?: string;
|
|
11
|
+
/** Fecha relativa **ya formateada** por el consumidor («hace 5 min»): el panel no formatea fechas. */
|
|
12
|
+
time: string;
|
|
13
|
+
/** Sin leer: punto, peso en el título y tinta plena. */
|
|
14
|
+
unread: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Lo que el panel pasa al `Link` del router de la aplicación. */
|
|
17
|
+
export interface NotificationPanelLinkProps {
|
|
18
|
+
href: string;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
onClick?: () => void;
|
|
22
|
+
id?: string;
|
|
23
|
+
'aria-labelledby'?: string;
|
|
24
|
+
}
|
|
25
|
+
export type RenderNotificationPanelLink = (props: NotificationPanelLinkProps) => ReactNode;
|
|
26
|
+
export interface NotificationPanelProps {
|
|
27
|
+
/**
|
|
28
|
+
* Las notificaciones que se ven en el panel, ya recortadas por el consumidor
|
|
29
|
+
* (el adelanto son cinco como mucho): el panel no pagina ni ordena.
|
|
30
|
+
*/
|
|
31
|
+
items?: NotificationPanelItem[];
|
|
32
|
+
/**
|
|
33
|
+
* Sin leer **en total**, para el contador de la campana. No se deduce de
|
|
34
|
+
* `items`: el panel enseña un adelanto y el total suele ser mayor.
|
|
35
|
+
*/
|
|
36
|
+
count?: number;
|
|
37
|
+
/** Tope del contador de la campana («99+»). */
|
|
38
|
+
max?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Se llama al pulsar una fila sin leer. El panel la pinta como leída en el
|
|
41
|
+
* sitio sin esperar respuesta.
|
|
42
|
+
*/
|
|
43
|
+
onRead: (id: string) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Con ella se pinta «Marcar todas como leídas» bajo la lista, **y solo
|
|
46
|
+
* mientras quede alguna sin leer**; sin ella, no se pinta nunca.
|
|
47
|
+
*/
|
|
48
|
+
onMarkAllRead?: () => void;
|
|
49
|
+
/** Destino de la bandeja completa. */
|
|
50
|
+
allHref: string;
|
|
51
|
+
/** Destino de las preferencias de notificación. */
|
|
52
|
+
preferencesHref: string;
|
|
53
|
+
/**
|
|
54
|
+
* El `Link` del router de la aplicación (patrón de `Link.mdx`: el router es
|
|
55
|
+
* de la app). Debe propagar **todas** las props que recibe. Por defecto, un
|
|
56
|
+
* `<a>` corriente.
|
|
57
|
+
*/
|
|
58
|
+
renderLink?: RenderNotificationPanelLink;
|
|
59
|
+
/** Nombre accesible de la campana sin contador. Default castellano. */
|
|
60
|
+
label?: string;
|
|
61
|
+
/** Nombre accesible de la campana con contador. Recibe el número. Default castellano. */
|
|
62
|
+
countLabel?: (count: number) => string;
|
|
63
|
+
/**
|
|
64
|
+
* Nombre del panel (`role="dialog"`) y de la lista. **No se pinta**: el
|
|
65
|
+
* panel no lleva cabecera visible. Default «Notificaciones».
|
|
66
|
+
*/
|
|
67
|
+
panelLabel?: string;
|
|
68
|
+
/** Texto solo para lectores de pantalla que marca una fila sin leer. Default «Sin leer». */
|
|
69
|
+
unreadLabel?: string;
|
|
70
|
+
/** Mensaje cuando no hay notificaciones. Default «Estás al día». */
|
|
71
|
+
emptyLabel?: string;
|
|
72
|
+
/** Rótulo del enlace a la bandeja. Default «Ver todas las notificaciones». */
|
|
73
|
+
allLabel?: string;
|
|
74
|
+
/** Rótulo del enlace a las preferencias. Default «Preferencias de notificaciones». */
|
|
75
|
+
preferencesLabel?: string;
|
|
76
|
+
/** Rótulo del botón de marcar todas. Default «Marcar todas como leídas». */
|
|
77
|
+
markAllReadLabel?: string;
|
|
78
|
+
open?: boolean;
|
|
79
|
+
defaultOpen?: boolean;
|
|
80
|
+
onOpenChange?: (open: boolean, details: PopoverChangeDetails) => void;
|
|
81
|
+
/** Se añade DESPUÉS de las clases propias del panel (el consumidor añade, no sustituye). */
|
|
82
|
+
className?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* La campana de la barra con su panel: al pulsarla se abre un `Popover`
|
|
86
|
+
* anclado al botón con el adelanto de las últimas notificaciones, y debajo
|
|
87
|
+
* los enlaces a la bandeja y a las preferencias.
|
|
88
|
+
*
|
|
89
|
+
* Es un **adelanto**, no la bandeja: aquí se lee y se marca leído, y lo único
|
|
90
|
+
* que navega son los dos enlaces del pie. Pulsar una fila la marca leída y la
|
|
91
|
+
* deja donde está —el panel no se reordena bajo el dedo—; al cerrarlo, la
|
|
92
|
+
* lista vuelve a ser la que diga el consumidor.
|
|
93
|
+
*/
|
|
94
|
+
export declare function NotificationPanel({ items, count, max, onRead, onMarkAllRead, allHref, preferencesHref, renderLink, label, countLabel, panelLabel, unreadLabel, emptyLabel, allLabel, preferencesLabel, markAllReadLabel, open, defaultOpen, onOpenChange, className, }: NotificationPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import './NumberInputField.css';
|
|
3
|
+
export interface NumberInputFieldProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type' | 'value' | 'defaultValue' | 'onChange'> {
|
|
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?: number;
|
|
15
|
+
defaultValue?: number;
|
|
16
|
+
min?: number;
|
|
17
|
+
max?: number;
|
|
18
|
+
step?: number;
|
|
19
|
+
/** Admite decimales (coma o punto). */
|
|
20
|
+
decimal?: boolean;
|
|
21
|
+
/** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
|
|
22
|
+
error?: boolean;
|
|
23
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
24
|
+
errorMessage?: string;
|
|
25
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
26
|
+
helperText?: string;
|
|
27
|
+
size?: 'sm' | 'md' | 'lg';
|
|
28
|
+
/** Recibe el valor ya normalizado, no el evento. */
|
|
29
|
+
onChange?: (value: number) => void;
|
|
30
|
+
/** Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye). */
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* El `NumberInput` como campo de formulario. El `ref` y el resto de props
|
|
35
|
+
* nativas de `<input>` van al input real (react-hook-form, `name`, `onBlur`,
|
|
36
|
+
* `aria-*`, `data-*`…); el `className`, al contenedor.
|
|
37
|
+
*/
|
|
38
|
+
export declare const NumberInputField: import("react").ForwardRefExoticComponent<NumberInputFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { MenuItem, MenuRenderLinkProps } from '../Menu/Menu';
|
|
3
|
+
import './OrgSwitcher.css';
|
|
4
|
+
export interface OrgOption {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
logoUrl?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface OrgSwitcherProps {
|
|
10
|
+
/** Nombre accesible del botón. Por defecto, «Organización: ‹nombre›». */
|
|
11
|
+
label?: string;
|
|
12
|
+
/** Ocupa todo el ancho disponible (en la Sidebar). Por defecto mide lo que su contenido. */
|
|
13
|
+
block?: boolean;
|
|
14
|
+
/** Solo el logo. Sin él, lo decide la `Sidebar` (rail). */
|
|
15
|
+
compact?: boolean;
|
|
16
|
+
current: OrgOption;
|
|
17
|
+
organizations: OrgOption[];
|
|
18
|
+
onOrgChange: (id: string) => void;
|
|
19
|
+
defaultOpen?: boolean;
|
|
20
|
+
items?: MenuItem[];
|
|
21
|
+
renderLink?: (props: MenuRenderLinkProps) => ReactNode;
|
|
22
|
+
}
|
|
23
|
+
export declare function OrgSwitcher({ label, block, compact, current, organizations, onOrgChange, defaultOpen, items, renderLink }: OrgSwitcherProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import './OtpField.css';
|
|
2
|
+
export interface OtpFieldProps {
|
|
3
|
+
/** `id` del control. Si no se pasa, se genera con `useId`. */
|
|
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 el resto de campos.
|
|
9
|
+
* Sin valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no
|
|
10
|
+
* es la primera de la lista, la etiqueta se oculta sola.
|
|
11
|
+
*/
|
|
12
|
+
labelHidden?: boolean;
|
|
13
|
+
/** Número de celdas. */
|
|
14
|
+
length: number;
|
|
15
|
+
value?: string;
|
|
16
|
+
defaultValue?: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
readOnly?: boolean;
|
|
20
|
+
/** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
|
|
21
|
+
error?: boolean;
|
|
22
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
23
|
+
errorMessage?: string;
|
|
24
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
25
|
+
helperText?: string;
|
|
26
|
+
size?: 'sm' | 'md' | 'lg';
|
|
27
|
+
/** Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye). */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Etiqueta accesible de cada celda. Default: `Dígito N de M` (castellano). */
|
|
30
|
+
digitLabel?: (index: number, length: number) => string;
|
|
31
|
+
/** Recibe el código completo, no el evento. */
|
|
32
|
+
onChange?: (value: string) => void;
|
|
33
|
+
onComplete?: (value: string) => void;
|
|
34
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* El `OtpInput` como campo de formulario. El `ref` va a la primera celda, que
|
|
38
|
+
* es la que react-hook-form enfoca al fallar la validación; el `className`, al
|
|
39
|
+
* contenedor.
|
|
40
|
+
*/
|
|
41
|
+
export declare const OtpField: import("react").ForwardRefExoticComponent<OtpFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingProps } from '../../atoms/Heading/Heading';
|
|
3
|
+
import './PageIntro.css';
|
|
4
|
+
export interface PageIntroProps {
|
|
5
|
+
/** El título de la página: un `Heading` de nivel 1 (o el que diga `level`). */
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* La frase bajo el título, opcional: va como entradilla (`Paragraph
|
|
9
|
+
* size="large"`, un peldaño por encima del cuerpo).
|
|
10
|
+
*
|
|
11
|
+
* **Es una frase y termina con puntuación final** —un punto, o el signo que
|
|
12
|
+
* le toque—: no es un rótulo ni un subtítulo. Sin el punto, el párrafo se
|
|
13
|
+
* lee como un `Heading` menor y la jerarquía de la cabecera se deshace. Lo
|
|
14
|
+
* que no llegue a frase o cabe en el título, o va en `children`.
|
|
15
|
+
*/
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
/** Más texto bajo la frase (otro `Paragraph`, una lista…): mismo aire. */
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* La acción principal de la página —«Invitar miembro», «Crear webhook»—, a la
|
|
21
|
+
* derecha del título y en su misma fila. Una, o dos como mucho: la principal
|
|
22
|
+
* y una alternativa (`Button variant="outline"`), en ese orden en el JSX. Las
|
|
23
|
+
* acciones sobre los filtros van en `FilterBar actions`, y las que operan
|
|
24
|
+
* sobre la tabla, en el `toolbar` del `DataTable`.
|
|
25
|
+
*/
|
|
26
|
+
actions?: ReactNode;
|
|
27
|
+
/** Nivel del título: 1 por defecto (una cabecera de página). */
|
|
28
|
+
level?: HeadingProps['level'];
|
|
29
|
+
/** Talla tipográfica del título; si no, la que el Heading da a su nivel. */
|
|
30
|
+
size?: HeadingProps['size'];
|
|
31
|
+
/**
|
|
32
|
+
* El elemento que envuelve la cabecera: `header` por defecto. `div` para
|
|
33
|
+
* cuando la cabecera abre una sección que ya vive dentro de otro `header`, o
|
|
34
|
+
* cuando el molde de fuera necesita un elemento neutro.
|
|
35
|
+
*/
|
|
36
|
+
as?: 'header' | 'div';
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Cabecera de una página: el título y, si hace falta, una frase debajo, con
|
|
41
|
+
* el aire justo entre los dos. Es un `header`: lo que abre acceso, registro,
|
|
42
|
+
* recuperación… y cualquier página que empiece por su nombre. Va como celda
|
|
43
|
+
* de `Columns` o directamente en el `Container`.
|
|
44
|
+
*
|
|
45
|
+
* Con `actions` sirve además de cabecera de una sección dentro de la página
|
|
46
|
+
* (`level={2}`): el título a la izquierda y la acción principal a la derecha.
|
|
47
|
+
*/
|
|
48
|
+
export declare function PageIntro({ title, description, actions, level, size, as: Tag, className, children, }: PageIntroProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import type { SelectOption } from '../../atoms/Select/Select';
|
|
3
|
+
import './Pagination.css';
|
|
4
|
+
export interface PaginationProps {
|
|
5
|
+
/**
|
|
6
|
+
* Con páginas numeradas (`pages`, por defecto) o solo anterior/siguiente
|
|
7
|
+
* (`cursor`): para listados por cursor, donde no se sabe cuántas páginas hay.
|
|
8
|
+
*/
|
|
9
|
+
mode?: 'pages' | 'cursor';
|
|
10
|
+
/** Total de registros. Con `pageCount` o en modo `cursor` no hace falta. */
|
|
11
|
+
total?: number;
|
|
12
|
+
/** Número de páginas, cuando quien pagina ya lo sabe (en vez de `total` + `pageSize`). */
|
|
13
|
+
pageCount?: number;
|
|
14
|
+
/** Página activa (1-indexed). En modo `cursor`, opcional. */
|
|
15
|
+
page?: number;
|
|
16
|
+
/** Registros por página. "all" muestra todos los registros sin paginación. */
|
|
17
|
+
pageSize?: number | 'all';
|
|
18
|
+
/** Enlaces por página, ya calculados (útil desde un Server Component, donde no se puede pasar una función). */
|
|
19
|
+
hrefs?: Record<number, string>;
|
|
20
|
+
/** Modo `cursor`: enlaces de anterior/siguiente. Sin ellos, el botón va deshabilitado. */
|
|
21
|
+
previousHref?: string;
|
|
22
|
+
nextHref?: string;
|
|
23
|
+
/** Modo `cursor`: manejadores de anterior/siguiente cuando no hay enlaces. */
|
|
24
|
+
onPrevious?: () => void;
|
|
25
|
+
onNext?: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Callback al cambiar de página. Opcional cuando se usa hrefBuilder
|
|
28
|
+
* (la navegación ocurre mediante el href nativo del <a>).
|
|
29
|
+
*/
|
|
30
|
+
onPageChange?: (page: number) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Si se pasa, los botones de página y los de Anterior/Siguiente
|
|
33
|
+
* se renderizan como <a href={hrefBuilder(n)}> en lugar de <button>.
|
|
34
|
+
* Útil para SSR, SEO y comportamientos nativos del navegador.
|
|
35
|
+
*/
|
|
36
|
+
hrefBuilder?: (page: number) => string;
|
|
37
|
+
/** Si se pasa, aparece el selector de registros por página */
|
|
38
|
+
onPageSizeChange?: (size: string) => void;
|
|
39
|
+
/** Opciones del selector. Default: 10, 20, 50, 100, Todos */
|
|
40
|
+
pageSizeOptions?: SelectOption[];
|
|
41
|
+
/**
|
|
42
|
+
* Ranura a continuación del selector de registros por página, dentro del
|
|
43
|
+
* mismo grupo que el total: acciones sobre el conjunto (exportar, imprimir).
|
|
44
|
+
* Los botones de página se quedan solos al otro extremo. Con la ranura llena
|
|
45
|
+
* el nav se pinta aunque no haya páginas que recorrer.
|
|
46
|
+
*/
|
|
47
|
+
afterPageSize?: ReactNode;
|
|
48
|
+
/** Mostrar "X resultados" antes de los controles. Default: false */
|
|
49
|
+
showTotal?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Componente Link del router. Default: "a" (recarga completa).
|
|
52
|
+
* Acepta next/link, react-router Link, etc. — cualquier componente
|
|
53
|
+
* que acepte las props estándar de <a> (href, className, …).
|
|
54
|
+
*/
|
|
55
|
+
linkComponent?: ComponentType<any>;
|
|
56
|
+
/** Tamaño del componente. Default: "md" */
|
|
57
|
+
size?: 'sm' | 'md' | 'lg';
|
|
58
|
+
/** aria-label del <nav>. Default: «Paginación» (castellano). Una app multiidioma debe pasarlo traducido. */
|
|
59
|
+
ariaLabel?: string;
|
|
60
|
+
/**
|
|
61
|
+
* aria-label de cada botón/enlace de página. Default: `Página ${page}` (castellano).
|
|
62
|
+
* Una app multiidioma debe pasarla traducida.
|
|
63
|
+
*/
|
|
64
|
+
pageLabel?: (page: number) => string;
|
|
65
|
+
/**
|
|
66
|
+
* aria-label del botón "anterior". Default: "Página anterior" (castellano).
|
|
67
|
+
* Una app multiidioma debe pasarla traducida.
|
|
68
|
+
*/
|
|
69
|
+
previousLabel?: string;
|
|
70
|
+
/**
|
|
71
|
+
* aria-label del botón "siguiente". Default: "Página siguiente" (castellano).
|
|
72
|
+
* Una app multiidioma debe pasarla traducida.
|
|
73
|
+
*/
|
|
74
|
+
nextLabel?: string;
|
|
75
|
+
/**
|
|
76
|
+
* aria-label del `role="group"` que envuelve los controles de página.
|
|
77
|
+
* Default: "Páginas" (castellano). Una app multiidioma debe pasarla traducida.
|
|
78
|
+
*/
|
|
79
|
+
pagesGroupLabel?: string;
|
|
80
|
+
/**
|
|
81
|
+
* aria-label del selector de registros por página.
|
|
82
|
+
* Default: "Registros por página" (castellano). Una app multiidioma debe pasarla traducida.
|
|
83
|
+
*/
|
|
84
|
+
pageSizeLabel?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Texto del sumario que muestra `showTotal`. Default: `${total} resultados` (castellano).
|
|
87
|
+
* Una app multiidioma debe pasarla traducida.
|
|
88
|
+
*/
|
|
89
|
+
totalLabel?: (total: number) => string;
|
|
90
|
+
className?: string;
|
|
91
|
+
}
|
|
92
|
+
export declare function Pagination({ mode, total, pageCount, page, pageSize, hrefs, previousHref, nextHref, onPrevious, onNext, onPageChange, hrefBuilder: hrefBuilderProp, linkComponent, onPageSizeChange, pageSizeOptions, afterPageSize, showTotal, size, ariaLabel, pageLabel, previousLabel, nextLabel, pagesGroupLabel, pageSizeLabel, totalLabel, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import './PasswordField.css';
|
|
2
|
+
export interface PasswordFieldProps extends Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'type'> {
|
|
3
|
+
/**
|
|
4
|
+
* Etiqueta del campo. **Opcional**: si se omite, el componente renderiza solo
|
|
5
|
+
* el campo + toggle (sin `<label>`, sin error ni ayuda), para componerlo
|
|
6
|
+
* dentro de una capa de formulario propia.
|
|
7
|
+
*/
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Oculta visualmente el label (solo aplica cuando hay `label`). Default: true. */
|
|
10
|
+
labelHidden?: boolean;
|
|
11
|
+
/** Marca el estado de error (borde) y `aria-invalid` en el input. */
|
|
12
|
+
error?: boolean;
|
|
13
|
+
/** Mensaje de error propio del componente (solo se renderiza si hay `label`-mode completo). */
|
|
14
|
+
errorMessage?: string;
|
|
15
|
+
/** Texto de ayuda propio del componente. */
|
|
16
|
+
helperText?: string;
|
|
17
|
+
/** Una acción bajo el campo: «¿Olvidaste tu contraseña?» (un `Link` del router). No es ayuda: enlace normal, a la izquierda, con su aire. */
|
|
18
|
+
action?: React.ReactNode;
|
|
19
|
+
/** Tamaño del campo. */
|
|
20
|
+
size?: 'sm' | 'md' | 'lg';
|
|
21
|
+
/** aria-label del toggle cuando la contraseña está oculta. Default: "Mostrar contraseña". */
|
|
22
|
+
showPasswordLabel?: string;
|
|
23
|
+
/** aria-label del toggle cuando la contraseña es visible. Default: "Ocultar contraseña". */
|
|
24
|
+
hidePasswordLabel?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Se añade DESPUÉS de las clases propias, sobre el wrapper raíz `.password-field`.
|
|
27
|
+
* (El `ref` y el resto de props nativas — `name`, `onChange`, `data-*`, `aria-*`… —
|
|
28
|
+
* se reenvían al `<input>` interno, no al wrapper.)
|
|
29
|
+
*/
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Campo de contraseña con toggle mostrar/ocultar integrado.
|
|
34
|
+
*
|
|
35
|
+
* El `ref` y `{...rest}` (props nativas de `<input>`) se reenvían al `<input>`
|
|
36
|
+
* interno — no al wrapper — para soportar react-hook-form (`{...register()}`) y la
|
|
37
|
+
* inyección de props del consumidor (`id`, `aria-describedby`, `aria-invalid`,
|
|
38
|
+
* `data-*`…). El `className` se aplica al wrapper raíz.
|
|
39
|
+
*/
|
|
40
|
+
export declare const PasswordField: import("react").ForwardRefExoticComponent<PasswordFieldProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ComponentType, MouseEvent, ReactNode } from 'react';
|
|
2
|
+
import './PrevNextNav.css';
|
|
3
|
+
export interface PrevNextNavProps {
|
|
4
|
+
/** href del enlace anterior. Mutuamente exclusivo con prevOnClick */
|
|
5
|
+
prevHref?: string;
|
|
6
|
+
/** href del enlace siguiente. Mutuamente exclusivo con nextOnClick */
|
|
7
|
+
nextHref?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Handler del control anterior. Con `prevHref` puesto se dispara **además**
|
|
10
|
+
* del enlace: es la puerta para la navegación SPA (`preventDefault()` en el
|
|
11
|
+
* handler y ruta por el router).
|
|
12
|
+
*/
|
|
13
|
+
prevOnClick?: (event: MouseEvent<HTMLElement>) => void;
|
|
14
|
+
/** Handler del control siguiente. Mismo contrato que `prevOnClick`. */
|
|
15
|
+
nextOnClick?: (event: MouseEvent<HTMLElement>) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Rótulo del control anterior. Sin `prevTitle` es el `aria-label` del
|
|
18
|
+
* chevron; con `prevTitle` es el rótulo **visible** que lo encabeza.
|
|
19
|
+
* Default: "Anterior"
|
|
20
|
+
*/
|
|
21
|
+
prevLabel?: string;
|
|
22
|
+
/** Rótulo del control siguiente. Mismo contrato que `prevLabel`. Default: "Siguiente" */
|
|
23
|
+
nextLabel?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Título visible del destino anterior (el de la página, el capítulo…). Con
|
|
26
|
+
* él el control deja de ser un chevron pelado: se lee «Anterior ·
|
|
27
|
+
* Instalación», y ese texto visible es ya su nombre accesible.
|
|
28
|
+
*/
|
|
29
|
+
prevTitle?: string;
|
|
30
|
+
/** Título visible del destino siguiente. Mismo contrato que `prevTitle`. */
|
|
31
|
+
nextTitle?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Contenido central: texto de periodo, semana, mes, etc. Opcional — el
|
|
34
|
+
* paginador de documentación no tiene centro, solo los dos destinos.
|
|
35
|
+
*/
|
|
36
|
+
label?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* id del label central, para que otro elemento pueda tomarlo como nombre
|
|
39
|
+
* accesible (`aria-labelledby`).
|
|
40
|
+
*/
|
|
41
|
+
labelId?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Componente `Link` del router para los controles con `href`. Default: `"a"`.
|
|
44
|
+
* Recibe `href` y el resto de props tal cual.
|
|
45
|
+
*/
|
|
46
|
+
linkComponent?: ComponentType<any>;
|
|
47
|
+
/** Variante de densidad. Default: "md" */
|
|
48
|
+
size?: 'sm' | 'md';
|
|
49
|
+
}
|
|
50
|
+
export declare function PrevNextNav({ prevHref, nextHref, prevOnClick, nextOnClick, prevLabel, nextLabel, prevTitle, nextTitle, label, labelId, linkComponent, size, }: PrevNextNavProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel, type HeadingSize } from '../../atoms/Heading/Heading';
|
|
3
|
+
import { type TagVariant } from '../../atoms/Tag/Tag';
|
|
4
|
+
import type { CardMedia } from '../Card/Card';
|
|
5
|
+
import './ProjectCard.css';
|
|
6
|
+
export type { TagVariant };
|
|
7
|
+
export interface ProjectCardTag {
|
|
8
|
+
/** Clave de React. Sin ella se usa la etiqueta. */
|
|
9
|
+
id?: string;
|
|
10
|
+
label: string;
|
|
11
|
+
variant?: TagVariant;
|
|
12
|
+
}
|
|
13
|
+
export interface ProjectCardProps {
|
|
14
|
+
/** Título del proyecto. Es el enlace de la tarjeta. */
|
|
15
|
+
title: ReactNode;
|
|
16
|
+
/** Descripción breve. */
|
|
17
|
+
description?: ReactNode;
|
|
18
|
+
/** Imagen del proyecto. */
|
|
19
|
+
media?: CardMedia;
|
|
20
|
+
/** Etiquetas de categoría. */
|
|
21
|
+
tags?: ProjectCardTag[];
|
|
22
|
+
/** URL de destino. Pinta un `<a>` nativo. */
|
|
23
|
+
href?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Elemento sobre el que renderizar el enlace del título (el `Link` del
|
|
26
|
+
* router de la aplicación). Manda sobre `href`, igual que en `Card`.
|
|
27
|
+
*/
|
|
28
|
+
render?: React.ReactElement<Record<string, unknown>>;
|
|
29
|
+
/** Nivel semántico del título. Por defecto `3`. */
|
|
30
|
+
headingLevel?: HeadingLevel;
|
|
31
|
+
/** Talla del título. Por defecto `5` (24px). */
|
|
32
|
+
headingSize?: HeadingSize;
|
|
33
|
+
/** Nombre accesible de la lista de etiquetas. Por defecto «Categorías». */
|
|
34
|
+
tagsLabel?: string;
|
|
35
|
+
className?: string;
|
|
36
|
+
id?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Tarjeta de un proyecto para una portada de marketing: imagen, etiquetas de
|
|
40
|
+
* categoría, título y una descripción breve.
|
|
41
|
+
*
|
|
42
|
+
* No es una `Card` con `href`: allí el bloque entero es un enlace, aquí hay
|
|
43
|
+
* etiquetas y texto alrededor del enlace. El enlace es **el título**, y su
|
|
44
|
+
* área pulsable se estira sobre toda la tarjeta con un pseudoelemento: se
|
|
45
|
+
* puede pulsar en cualquier sitio, pero el teclado solo se para una vez y el
|
|
46
|
+
* lector de pantalla anuncia el nombre del proyecto, no la tarjeta entera.
|
|
47
|
+
*/
|
|
48
|
+
export declare function ProjectCard({ title, description, media, tags, href, render, headingLevel, headingSize, tagsLabel, className, id, }: ProjectCardProps): import("react/jsx-runtime").JSX.Element;
|