@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,103 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import './Table.css';
|
|
3
|
+
export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Texto de `<caption>` (se oculta visualmente). **Opcional**: sin `caption` no se
|
|
6
|
+
* renderiza el `<caption>` — el consumidor decide su estrategia de accessible-name
|
|
7
|
+
* (p. ej. `aria-label` vía rest).
|
|
8
|
+
*/
|
|
9
|
+
caption?: string;
|
|
10
|
+
/** Variante de densidad. Default: "md" */
|
|
11
|
+
size?: 'sm' | 'md';
|
|
12
|
+
}
|
|
13
|
+
export interface TableHeaderProps extends React.ThHTMLAttributes<HTMLTableCellElement> {
|
|
14
|
+
/** Si esta columna admite ordenación */
|
|
15
|
+
sortable?: boolean;
|
|
16
|
+
/** Dirección activa. Solo relevante si sortable */
|
|
17
|
+
sorted?: 'asc' | 'desc' | false;
|
|
18
|
+
/** Handler de click/teclado. Solo relevante si sortable */
|
|
19
|
+
onSort?: () => void;
|
|
20
|
+
/** Marca esta columna como columna de acciones: ancho mínimo y cabecera oculta visualmente */
|
|
21
|
+
actions?: boolean;
|
|
22
|
+
/** Texto accesible de la cabecera de acciones. Default: «Acciones» (castellano). Una app multiidioma debe pasarlo traducido. */
|
|
23
|
+
actionsLabel?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Pega la columna al borde final (`inset-inline-end: 0`) cuando la tabla
|
|
26
|
+
* desborda su contenedor: la columna de acciones se queda alcanzable con
|
|
27
|
+
* scroll horizontal en vez de caer fuera del recorte. Requiere el mismo
|
|
28
|
+
* `sticky="end"` en la `Table.Cell` equivalente de cada fila.
|
|
29
|
+
*/
|
|
30
|
+
sticky?: 'end';
|
|
31
|
+
/**
|
|
32
|
+
* Texto accesible del estado de ordenación ascendente. Default: "Ordenado ascendente"
|
|
33
|
+
* (castellano). Una app multiidioma debe pasarlo traducido.
|
|
34
|
+
*/
|
|
35
|
+
sortedAscLabel?: string;
|
|
36
|
+
/** Texto accesible del estado descendente. Default: «Ordenado descendente» (castellano). Una app multiidioma debe pasarlo traducido. */
|
|
37
|
+
sortedDescLabel?: string;
|
|
38
|
+
/** Texto accesible de la columna ordenable sin ordenar. Default: «Activar ordenación» (castellano). Una app multiidioma debe pasarlo traducido. */
|
|
39
|
+
sortableLabel?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Impide que el rótulo de esta columna se parta en dos líneas. Mismo valor
|
|
42
|
+
* que el `nowrap` de la `Table.Cell` de esta columna cuando el encabezado
|
|
43
|
+
* comparte el motivo (un rótulo con una unidad pegada, «Importe (€)»).
|
|
44
|
+
*/
|
|
45
|
+
nowrap?: boolean;
|
|
46
|
+
children?: ReactNode;
|
|
47
|
+
}
|
|
48
|
+
/** onClick tipado como () => void para mantener la API de interactividad con teclado */
|
|
49
|
+
export interface TableRowProps extends Omit<React.HTMLAttributes<HTMLTableRowElement>, 'onClick'> {
|
|
50
|
+
onClick?: () => void;
|
|
51
|
+
/** Alternativa explícita a onClick para control manual */
|
|
52
|
+
interactive?: boolean;
|
|
53
|
+
/** Marca la fila como seleccionada: se dice con tinta y peso, sin fondo. */
|
|
54
|
+
selected?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Nombre accesible de la fila. Por defecto el rol `row` toma su nombre del
|
|
57
|
+
* contenido de sus celdas; pásalo solo cuando ese texto no identifique la
|
|
58
|
+
* fila (celdas de solo iconos, datos crípticos). Default: castellano — no
|
|
59
|
+
* hay texto por defecto, es el consumidor quien lo escribe.
|
|
60
|
+
*/
|
|
61
|
+
label?: string;
|
|
62
|
+
children: ReactNode;
|
|
63
|
+
}
|
|
64
|
+
export interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {
|
|
65
|
+
/**
|
|
66
|
+
* Pega la celda al borde final (`inset-inline-end: 0`) cuando la tabla
|
|
67
|
+
* desborda su contenedor. Mismo valor que el `sticky` de la `Table.Header`
|
|
68
|
+
* de esta columna.
|
|
69
|
+
*/
|
|
70
|
+
sticky?: 'end';
|
|
71
|
+
/**
|
|
72
|
+
* Marca esta celda como parte de la columna de acciones: mismo valor que el
|
|
73
|
+
* `actions` de la `Table.Header` de esta columna. Impide que su contenido
|
|
74
|
+
* (un enlace o botón de dos palabras) se parta en dos líneas cuando la
|
|
75
|
+
* columna, ya encogida a su mínimo, sobra ancho.
|
|
76
|
+
*/
|
|
77
|
+
actions?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Impide el salto de línea del contenido de esta celda: un valor que no
|
|
80
|
+
* debe partirse (una URL, un identificador). La tabla ya resuelve el
|
|
81
|
+
* desborde con scroll horizontal (`table__wrapper`) y, si la columna lo
|
|
82
|
+
* necesita, con una columna de acciones fija (`sticky`) — `nowrap` no
|
|
83
|
+
* cambia ese mecanismo, solo evita que este valor concreto se reparta en
|
|
84
|
+
* dos líneas dentro de su celda.
|
|
85
|
+
*/
|
|
86
|
+
nowrap?: boolean;
|
|
87
|
+
children?: ReactNode;
|
|
88
|
+
}
|
|
89
|
+
export declare function TableHead({ children, ...rest }: React.HTMLAttributes<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
|
|
90
|
+
export declare function TableFooter({ children, ...rest }: React.HTMLAttributes<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
export declare function TableBody({ children, ...rest }: React.HTMLAttributes<HTMLTableSectionElement>): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
export declare function TableHeader({ sortable, sorted, onSort, actions, actionsLabel, sortedAscLabel, sortedDescLabel, sortableLabel, sticky, nowrap, children, className, scope, ...rest }: TableHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
93
|
+
export declare function TableRow({ onClick, interactive, selected, label, children, className, ...rest }: TableRowProps): import("react/jsx-runtime").JSX.Element;
|
|
94
|
+
export declare function TableCell({ sticky, actions, nowrap, children, className, ...rest }: TableCellProps): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
export declare function Table({ caption, children, size, className, ...rest }: TableProps): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
export declare namespace Table {
|
|
97
|
+
var Head: typeof TableHead;
|
|
98
|
+
var Footer: typeof TableFooter;
|
|
99
|
+
var Header: typeof TableHeader;
|
|
100
|
+
var Body: typeof TableBody;
|
|
101
|
+
var Row: typeof TableRow;
|
|
102
|
+
var Cell: typeof TableCell;
|
|
103
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type MouseEvent } from 'react';
|
|
2
|
+
import './TableOfContents.css';
|
|
3
|
+
export interface TableOfContentsItem {
|
|
4
|
+
/** `id` del encabezado al que apunta la entrada. El enlace será `#id`. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Texto de la entrada: el del encabezado. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Nivel del encabezado (`2` para un `h2`, `3` para un `h3`…). La sangría es relativa al nivel más alto de la lista. */
|
|
9
|
+
level: number;
|
|
10
|
+
}
|
|
11
|
+
export interface TableOfContentsProps extends Omit<React.ComponentPropsWithoutRef<'nav'>, 'title'> {
|
|
12
|
+
/** Entradas, en el orden en que aparecen en el documento. */
|
|
13
|
+
items: TableOfContentsItem[];
|
|
14
|
+
/**
|
|
15
|
+
* `id` de la sección en la que está el lector. El scroll lo observa el
|
|
16
|
+
* consumidor: el índice solo pinta lo que le digan.
|
|
17
|
+
*/
|
|
18
|
+
activeId?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Nombre accesible del `nav`. Por defecto, en castellano.
|
|
21
|
+
* @default 'En esta página'
|
|
22
|
+
*/
|
|
23
|
+
ariaLabel?: string;
|
|
24
|
+
/** Rótulo visible sobre la lista. Sin él, no se pinta ninguno. */
|
|
25
|
+
title?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Fija el índice al hacer scroll (`position: sticky`). La distancia al borde
|
|
28
|
+
* y el alto máximo son tokens (`--table-of-contents-sticky-*`).
|
|
29
|
+
*/
|
|
30
|
+
sticky?: boolean;
|
|
31
|
+
/** Se llama al pulsar una entrada, además de seguir el ancla. Para desplazamiento suave o para cerrar un panel. */
|
|
32
|
+
onItemClick?: (item: TableOfContentsItem, event: MouseEvent<HTMLAnchorElement>) => void;
|
|
33
|
+
/** Se añade DESPUÉS de las clases propias. */
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Índice de anclas de la página: la lista de encabezados del documento, con
|
|
38
|
+
* sangría por nivel y una marca en la sección en la que está el lector.
|
|
39
|
+
*
|
|
40
|
+
* Es un componente **controlado y sin scroll propio**: no observa la página ni
|
|
41
|
+
* decide qué está a la vista. El consumidor calcula `activeId` (con un
|
|
42
|
+
* `IntersectionObserver` o con el hash de la URL) y el índice lo pinta. Así el
|
|
43
|
+
* mismo componente sirve para un índice con scroll-spy, para uno que solo
|
|
44
|
+
* sigue al hash y para uno estático.
|
|
45
|
+
*
|
|
46
|
+
* `{...rest}` (`id`, `data-*`, `role`…) se reenvía al `<nav>`. El nombre
|
|
47
|
+
* accesible sigue siendo `ariaLabel`.
|
|
48
|
+
*/
|
|
49
|
+
export declare const TableOfContents: import("react").ForwardRefExoticComponent<TableOfContentsProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import './TextareaField.css';
|
|
3
|
+
export interface TextareaFieldProps extends Omit<ComponentPropsWithoutRef<'textarea'>, 'value' | 'defaultValue' | 'rows'> {
|
|
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
|
+
placeholder?: string;
|
|
17
|
+
value?: string;
|
|
18
|
+
defaultValue?: string;
|
|
19
|
+
rows?: number;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
readOnly?: boolean;
|
|
22
|
+
error?: boolean;
|
|
23
|
+
errorMessage?: string;
|
|
24
|
+
helperText?: string;
|
|
25
|
+
size?: 'sm' | 'md' | 'lg';
|
|
26
|
+
onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
27
|
+
onBlur?: React.FocusEventHandler<HTMLTextAreaElement>;
|
|
28
|
+
onFocus?: React.FocusEventHandler<HTMLTextAreaElement>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* El `ref` y el resto de props nativas de `<textarea>` van al `<textarea>`
|
|
32
|
+
* interno (react-hook-form `register()`, `aria-*`, `data-*`…); el `className`,
|
|
33
|
+
* al contenedor.
|
|
34
|
+
*/
|
|
35
|
+
export declare const TextareaField: import("react").ForwardRefExoticComponent<TextareaFieldProps & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import './ThemeSwitcher.css';
|
|
2
|
+
export type Theme = 'light' | 'dark' | 'system';
|
|
3
|
+
export interface ThemeSwitcherLabels {
|
|
4
|
+
/** Nombre accesible del control. */
|
|
5
|
+
group?: string;
|
|
6
|
+
light?: string;
|
|
7
|
+
dark?: string;
|
|
8
|
+
system?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ThemeSwitcherProps {
|
|
11
|
+
/** Tema elegido. `system` sigue la preferencia del sistema operativo. */
|
|
12
|
+
value: Theme;
|
|
13
|
+
/** Cambio de tema. Aplicarlo (clase en `html`) y persistirlo es del producto. */
|
|
14
|
+
onChange?: (theme: Theme) => void;
|
|
15
|
+
labels?: ThemeSwitcherLabels;
|
|
16
|
+
/** `id` del control en compacto (enlaza la etiqueta). */
|
|
17
|
+
id?: string;
|
|
18
|
+
/**
|
|
19
|
+
* `compact`: un `DropdownField` (etiqueta + control rectangular) con el icono y el nombre del tema actual — el del panel.
|
|
20
|
+
* `list`: las tres opciones desplegadas en línea — el del pie.
|
|
21
|
+
* `icon`: solo el icono del tema actual, como botón de icono que abre el menú — para una barra sin sitio.
|
|
22
|
+
*/
|
|
23
|
+
variant?: 'compact' | 'list' | 'icon';
|
|
24
|
+
/** Talla del control compacto (32/40/48): `lg` en superficies públicas, `md` en las aplicaciones. */
|
|
25
|
+
/**
|
|
26
|
+
* Disposición de la etiqueta. `inline` (por defecto) la pone delante del
|
|
27
|
+
* control, que es como va en la barra y en el panel; `stacked` la pone
|
|
28
|
+
* encima con el control a todo el ancho, que es la forma del resto de
|
|
29
|
+
* campos de un formulario — la de «Mi cuenta», donde este selector es un
|
|
30
|
+
* ajuste más y no un control de chrome.
|
|
31
|
+
*/
|
|
32
|
+
layout?: 'inline' | 'stacked';
|
|
33
|
+
size?: 'sm' | 'md' | 'lg';
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Selector de tema: claro, oscuro o el del sistema. Mismo patrón que el
|
|
38
|
+
* selector de idioma: en compacto, un campo desplegable con etiqueta y
|
|
39
|
+
* opciones exclusivas; en lista, las opciones desplegadas para el pie. Aplicar el tema y
|
|
40
|
+
* recordarlo es del producto; el componente solo muestra y elige.
|
|
41
|
+
*/
|
|
42
|
+
export declare function ThemeSwitcher({ value, onChange, labels, id, variant, layout, size, className }: ThemeSwitcherProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { TimeValue } from '../../atoms/TimeSelect/TimeSelect';
|
|
2
|
+
import './TimeField.css';
|
|
3
|
+
export interface TimeFieldProps {
|
|
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?: TimeValue | null;
|
|
15
|
+
/** Paso en minutos. Default: 5. */
|
|
16
|
+
step?: number;
|
|
17
|
+
/** Nombre del campo en el formulario: se monta un input oculto con `HH:MM`. */
|
|
18
|
+
name?: string;
|
|
19
|
+
size?: 'sm' | 'md' | 'lg';
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
readOnly?: boolean;
|
|
22
|
+
/** Campo obligatorio: parte del contrato de campo del sistema. */
|
|
23
|
+
required?: boolean;
|
|
24
|
+
/** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
|
|
25
|
+
error?: boolean;
|
|
26
|
+
/** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
|
|
27
|
+
errorMessage?: string;
|
|
28
|
+
/** Texto de ayuda, enlazado por `aria-describedby`. */
|
|
29
|
+
helperText?: string;
|
|
30
|
+
/** Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye). */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** aria-label del desplegable de horas. Default: "Horas" (castellano). */
|
|
33
|
+
hoursLabel?: string;
|
|
34
|
+
/** aria-label del desplegable de minutos. Default: "Minutos" (castellano). */
|
|
35
|
+
minutesLabel?: string;
|
|
36
|
+
onChange?: (value: TimeValue) => void;
|
|
37
|
+
onBlur?: React.FocusEventHandler<HTMLButtonElement>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* El `TimeSelect` como campo de formulario. El control son dos desplegables de
|
|
41
|
+
* Base UI: el `ref` va al de horas para que react-hook-form pueda enfocarlo al
|
|
42
|
+
* fallar la validación; el `className`, al contenedor.
|
|
43
|
+
*/
|
|
44
|
+
export declare const TimeField: import("react").ForwardRefExoticComponent<TimeFieldProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ToastIntent } from './toast';
|
|
2
|
+
import './Toast.css';
|
|
3
|
+
export type ToastPosition = 'bottom-right' | 'bottom-left' | 'bottom-center' | 'top-right' | 'top-left' | 'top-center';
|
|
4
|
+
export interface ToasterProps {
|
|
5
|
+
/** Esquina de la ventana donde se monta la pila. Default: `bottom-right`. */
|
|
6
|
+
position?: ToastPosition;
|
|
7
|
+
/**
|
|
8
|
+
* Nombre accesible de la región de notificaciones. Default: «Notificaciones»
|
|
9
|
+
* (castellano). Una app multiidioma debe pasarlo traducido.
|
|
10
|
+
*/
|
|
11
|
+
containerAriaLabel?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Etiqueta accesible del aspa de cierre. Default: «Cerrar» (castellano).
|
|
14
|
+
* Una app multiidioma debe pasarla traducida.
|
|
15
|
+
*/
|
|
16
|
+
closeLabel?: string;
|
|
17
|
+
/** Muestra el aspa de cierre en cada aviso. Default: `true`. */
|
|
18
|
+
closeButton?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Milisegundos que vive un aviso antes de cerrarse solo. Default: 5000.
|
|
21
|
+
* El reloj se detiene mientras el puntero o el foco están dentro de la pila.
|
|
22
|
+
* `Infinity` (o `duration: Infinity` en la llamada) lo deja fijo.
|
|
23
|
+
*/
|
|
24
|
+
duration?: number;
|
|
25
|
+
/** Aire entre avisos desplegados, en píxeles. Default: 8 (`toast.gap`). */
|
|
26
|
+
gap?: number;
|
|
27
|
+
/** Número de avisos visibles a la vez; el resto espera turno. Default: 3. */
|
|
28
|
+
visibleToasts?: number;
|
|
29
|
+
/** Despliega la pila en vez de dejarla recogida bajo el aviso más nuevo. */
|
|
30
|
+
expand?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Punto de montaje de los avisos efímeros. Se monta **una vez** en la raíz de la
|
|
34
|
+
* aplicación; los avisos se lanzan desde cualquier sitio con `toast(...)`.
|
|
35
|
+
*
|
|
36
|
+
* La cara del aviso es la del `Alert` —mismo relleno, mismo borde, misma
|
|
37
|
+
* tipografía y las mismas cuatro intenciones, sobre el juego de tokens
|
|
38
|
+
* `alert.*`—; lo propio del toast es la capa, la posición, el apilado y el
|
|
39
|
+
* auto-cierre (`toast.*`).
|
|
40
|
+
*/
|
|
41
|
+
export declare function Toaster({ position, containerAriaLabel, closeLabel, closeButton, duration, gap, visibleToasts, expand, }: ToasterProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export type { ToastIntent };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Intención del aviso. Es la misma escala que la variante del `Alert`, más los
|
|
4
|
+
* dos casos que solo tienen sentido en una cola: `info` (que cae en el neutro,
|
|
5
|
+
* como en el `Alert`) y `loading` (un aviso que espera y no se cierra solo).
|
|
6
|
+
*/
|
|
7
|
+
export type ToastIntent = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';
|
|
8
|
+
/** Acción opcional del aviso: un botón con su rótulo y su manejador. */
|
|
9
|
+
export interface ToastActionDescriptor {
|
|
10
|
+
/** Rótulo visible del botón. Lo pone el consumidor: no hay default castellano. */
|
|
11
|
+
label: string;
|
|
12
|
+
onClick: () => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ToastOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Identificador del aviso. Si ya hay uno vivo con ese `id`, la llamada **lo
|
|
17
|
+
* actualiza en su sitio** en vez de apilar otro: es el patrón
|
|
18
|
+
* `const id = toast.loading(…)` → `toast.success(…, { id })`.
|
|
19
|
+
*/
|
|
20
|
+
id?: string;
|
|
21
|
+
/** Segunda línea del aviso, bajo el título. */
|
|
22
|
+
description?: ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* Milisegundos que vive el aviso. Por defecto, el `duration` del `Toaster`
|
|
25
|
+
* (5000). `Infinity` lo deja fijo: solo se va con el aspa.
|
|
26
|
+
*/
|
|
27
|
+
duration?: number;
|
|
28
|
+
/** Botón de acción del aviso. */
|
|
29
|
+
action?: ToastActionDescriptor;
|
|
30
|
+
/** Se llama al cerrarse el aviso, sea por el aspa o por agotar su tiempo. */
|
|
31
|
+
onClose?: () => void;
|
|
32
|
+
}
|
|
33
|
+
/** Mensaje de `toast.promise`: un rótulo suelto o el juego completo de opciones. */
|
|
34
|
+
export type ToastMessage = string | (ToastOptions & {
|
|
35
|
+
title: string;
|
|
36
|
+
});
|
|
37
|
+
export interface ToastPromiseMessages<Value> {
|
|
38
|
+
loading: ToastMessage;
|
|
39
|
+
success: ToastMessage | ((value: Value) => ToastMessage);
|
|
40
|
+
error: ToastMessage | ((error: unknown) => ToastMessage);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* La cola de Base UI. Vive fuera de React —es lo que permite lanzar un aviso
|
|
44
|
+
* desde un manejador, un `catch` o un módulo sin componente— y el `Toaster` la
|
|
45
|
+
* conecta con el árbol pasándosela a su `Toast.Provider`.
|
|
46
|
+
*/
|
|
47
|
+
export declare const toastManager: import("@base-ui/react").ToastManager<any>;
|
|
48
|
+
/**
|
|
49
|
+
* Vida por defecto de un aviso, en milisegundos. No es un token: la mide el
|
|
50
|
+
* motor de la cola en JS y un token CSS no movería nada. Cinco segundos son los
|
|
51
|
+
* que tarda en leerse un rótulo corto sin llegar a molestar; el reloj se para al
|
|
52
|
+
* pasar el ratón o al entrar el foco.
|
|
53
|
+
*/
|
|
54
|
+
export declare const TOAST_DURATION = 5000;
|
|
55
|
+
/**
|
|
56
|
+
* El `Toaster` publica aquí su `duration` para que un aviso actualizado por `id`
|
|
57
|
+
* herede la misma vida que uno recién lanzado.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
export declare function setToastDefaultDuration(duration: number): void;
|
|
61
|
+
/**
|
|
62
|
+
* El `Toaster` sincroniza aquí la lista real de avisos en pantalla: es lo que
|
|
63
|
+
* mantiene `dismiss()` sin argumento pegado a la realidad, incluidos los avisos
|
|
64
|
+
* que abre `toast.promise`.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
export declare function syncLiveToasts(ids: readonly string[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* Lanza un aviso efímero. Devuelve su `id`, que sirve para actualizarlo
|
|
70
|
+
* (`{ id }`) o para cerrarlo (`toast.dismiss(id)`).
|
|
71
|
+
*
|
|
72
|
+
* Requiere un `<Toaster />` montado en la raíz de la aplicación: la cola vive
|
|
73
|
+
* fuera de React, pero sin punto de montaje no hay dónde pintar.
|
|
74
|
+
*/
|
|
75
|
+
declare function base(title: ReactNode, options?: ToastOptions): string;
|
|
76
|
+
export declare const toast: typeof base & {
|
|
77
|
+
/** Aviso neutro, sin intención. Igual que `toast(…)`. */
|
|
78
|
+
message: (title: ReactNode, options?: ToastOptions) => string;
|
|
79
|
+
/** Algo ha salido bien. */
|
|
80
|
+
success: (title: ReactNode, options?: ToastOptions) => string;
|
|
81
|
+
/** Algo ha fallado. Interrumpe al lector de pantalla. */
|
|
82
|
+
error: (title: ReactNode, options?: ToastOptions) => string;
|
|
83
|
+
/** Algo pide atención antes de seguir. Interrumpe al lector de pantalla. */
|
|
84
|
+
warning: (title: ReactNode, options?: ToastOptions) => string;
|
|
85
|
+
/** Un dato de contexto. Sin relleno propio: cae en el neutro, como en el `Alert`. */
|
|
86
|
+
info: (title: ReactNode, options?: ToastOptions) => string;
|
|
87
|
+
/**
|
|
88
|
+
* Aviso de espera: **no se cierra solo**. Se resuelve actualizándolo con su
|
|
89
|
+
* `id` (`toast.success('Hecho', { id })`) o con `toast.dismiss(id)`.
|
|
90
|
+
*/
|
|
91
|
+
loading: (title: ReactNode, options?: ToastOptions) => string;
|
|
92
|
+
/** Cierra un aviso por `id`, o todos los que haya en pantalla si no se pasa ninguno. */
|
|
93
|
+
dismiss: (id?: string) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Sigue una promesa con un solo aviso: espera mientras corre y se convierte en
|
|
96
|
+
* éxito o error al resolverse. Devuelve la misma promesa, así que se puede
|
|
97
|
+
* seguir encadenando (y hay que capturar el rechazo igual que en el original).
|
|
98
|
+
*/
|
|
99
|
+
promise: <Value>(promise: Promise<Value>, messages: ToastPromiseMessages<Value>) => Promise<Value>;
|
|
100
|
+
};
|
|
101
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import './TreeView.css';
|
|
3
|
+
export interface TreeViewNode {
|
|
4
|
+
/** Identificador único en todo el árbol. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Rótulo de la fila. */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Marca opcional delante del rótulo (una carpeta, un tipo de contenido). */
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Marca de la rama abierta. Sin ella se usa `icon` en los dos estados: es
|
|
12
|
+
* para el par carpeta cerrada / carpeta abierta.
|
|
13
|
+
*/
|
|
14
|
+
iconExpanded?: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Ranura a la derecha de la fila: el menú de acciones de esa rama (un `Menu`
|
|
17
|
+
* con su `Button variant="ghost" iconOnly`). Se ve al pasar el puntero por
|
|
18
|
+
* la fila o cuando el foco está dentro de ella, pero **ocupa su sitio
|
|
19
|
+
* siempre**, así que el rótulo no se mueve. Los clics y el teclado de la
|
|
20
|
+
* ranura no llegan al árbol: abrir el menú no elige la fila.
|
|
21
|
+
*/
|
|
22
|
+
actions?: ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* La fila es un destino válido de lo que se está arrastrando. El arrastre lo
|
|
25
|
+
* lleva la aplicación (dnd-kit); el árbol solo lo viste.
|
|
26
|
+
*/
|
|
27
|
+
dropTarget?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* La fila NO puede recibir lo que se está arrastrando. Se atenúa y cambia el
|
|
30
|
+
* cursor, pero **sigue siendo navegable**: no es un nodo deshabilitado, así
|
|
31
|
+
* que no se anuncia con `aria-disabled`; el estado va en `data-drop`.
|
|
32
|
+
*/
|
|
33
|
+
dropDisabled?: boolean;
|
|
34
|
+
/** Ramas hijas. Un nodo sin `children` es una hoja. */
|
|
35
|
+
children?: TreeViewNode[];
|
|
36
|
+
/**
|
|
37
|
+
* No se puede elegir. Sigue siendo alcanzable con el teclado y se anuncia
|
|
38
|
+
* como deshabilitado, como pide el patrón: no desaparece del árbol.
|
|
39
|
+
*/
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface TreeViewProps extends Omit<React.ComponentPropsWithoutRef<'ul'>, 'onSelect'> {
|
|
43
|
+
/** El árbol. */
|
|
44
|
+
items: TreeViewNode[];
|
|
45
|
+
/** Ramas abiertas (controlado). */
|
|
46
|
+
expanded?: string[];
|
|
47
|
+
/** Ramas abiertas al montar (no controlado). */
|
|
48
|
+
defaultExpanded?: string[];
|
|
49
|
+
/** Se llama con la lista de ramas abiertas. */
|
|
50
|
+
onExpandedChange?: (expanded: string[]) => void;
|
|
51
|
+
/** Nodo elegido (controlado). */
|
|
52
|
+
selected?: string;
|
|
53
|
+
/** Nodo elegido al montar (no controlado). */
|
|
54
|
+
defaultSelected?: string;
|
|
55
|
+
/** Se llama con el id del nodo elegido. */
|
|
56
|
+
onSelectedChange?: (id: string) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Nombre accesible del árbol. Default: «Árbol» (castellano). Una app
|
|
59
|
+
* multiidioma debe pasarlo traducido.
|
|
60
|
+
*/
|
|
61
|
+
label?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Nivel a partir del cual el rótulo se trunca con puntos suspensivos (el
|
|
64
|
+
* nombre entero queda en `title`). Default: 4 — en una barra lateral la
|
|
65
|
+
* sangría se come el ancho antes de eso.
|
|
66
|
+
*/
|
|
67
|
+
truncateFromLevel?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Referencia al elemento de cada fila, para colgarle un destino de arrastre
|
|
70
|
+
* (`setNodeRef` de dnd-kit). Se llama con el id del nodo y con el elemento
|
|
71
|
+
* de la fila —el que se pinta como destino—, y con `null` al desmontarla.
|
|
72
|
+
* No cambia el marcado: la fila sigue siendo el `role="treeitem"`.
|
|
73
|
+
*/
|
|
74
|
+
nodeRef?: (id: string, el: HTMLElement | null) => void;
|
|
75
|
+
/** Se añade DESPUÉS de las clases propias. */
|
|
76
|
+
className?: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Un árbol con sangría: la matriz de contenidos de un curso, la estructura de
|
|
80
|
+
* carpetas de un espacio. Cada rama se abre y se cierra, y se elige un nodo.
|
|
81
|
+
*
|
|
82
|
+
* Implementa el patrón WAI-ARIA de **tree view** a mano —Base UI no trae árbol—:
|
|
83
|
+
* `role="tree"` con `treeitem` anidados, un solo punto de tabulación y recorrido
|
|
84
|
+
* completo con el teclado: flechas, Inicio/Fin, Intro/Espacio para elegir,
|
|
85
|
+
* salto por letra y `*` para abrir de una vez las ramas hermanas del nivel.
|
|
86
|
+
*
|
|
87
|
+
* Cada fila se viste como un **ítem de la barra lateral** (tokens
|
|
88
|
+
* `sidebar-nav.item-*`): la elegida se marca solo con el peso —sin color de
|
|
89
|
+
* marca— y el hover no pinta nada, como en `SidebarNav`. El relleno se reserva
|
|
90
|
+
* para el único estado que sí lo pide: la carpeta que puede recibir lo que se
|
|
91
|
+
* está arrastrando (`dropTarget`).
|
|
92
|
+
*/
|
|
93
|
+
export declare function TreeView({ items, expanded: expandedProp, defaultExpanded, onExpandedChange, selected: selectedProp, defaultSelected, onSelectedChange, label, truncateFromLevel, nodeRef, className, ...rest }: TreeViewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import { type UptimeBarsThresholds } from './uptimeStatus';
|
|
3
|
+
import './UptimeBars.css';
|
|
4
|
+
export type { UptimeBarsThresholds, UptimeBarsStatus } from './uptimeStatus';
|
|
5
|
+
/** Un punto de la serie: un día, una hora, un despliegue. La tira no lo sabe. */
|
|
6
|
+
export interface UptimeBarsPoint {
|
|
7
|
+
/**
|
|
8
|
+
* Porcentaje de disponibilidad del punto, de 0 a 100. `null` es **sin dato**
|
|
9
|
+
* —el monitor todavía no existía—, que no es lo mismo que 0 %.
|
|
10
|
+
*/
|
|
11
|
+
value: number | null;
|
|
12
|
+
/** Cómo se llama el punto, ya escrito: «5 de septiembre». */
|
|
13
|
+
label: string;
|
|
14
|
+
/** Una línea de detalle para el bocadillo: «Sin incidencias», «Caído 2 h 14 min». */
|
|
15
|
+
detail?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface UptimeBarsProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
|
|
18
|
+
/** La serie, en orden: el punto más antiguo primero. */
|
|
19
|
+
points: UptimeBarsPoint[];
|
|
20
|
+
/**
|
|
21
|
+
* La media del periodo, **ya escrita** por quien la calcula («99,98 % de
|
|
22
|
+
* disponibilidad»). Es obligatoria porque es la alternativa principal a la
|
|
23
|
+
* tira: el dato que se lee sin mirar treinta rectángulos ni abrir un bocadillo.
|
|
24
|
+
*/
|
|
25
|
+
summary: ReactNode;
|
|
26
|
+
/** Nombre accesible de la tira. Default castellano: «Disponibilidad». */
|
|
27
|
+
label?: string;
|
|
28
|
+
/** Rótulo del extremo antiguo, bajo la primera barrita: «Hace 30 días». */
|
|
29
|
+
startLabel?: ReactNode;
|
|
30
|
+
/** Rótulo del extremo reciente, bajo la última barrita: «Hoy». */
|
|
31
|
+
endLabel?: ReactNode;
|
|
32
|
+
/** Cortes de color. Sin ellos, `UPTIME_BARS_DEFAULT_THRESHOLDS`. */
|
|
33
|
+
thresholds?: UptimeBarsThresholds;
|
|
34
|
+
/** Locale para formatear el porcentaje. Default `'es-ES'`. */
|
|
35
|
+
locale?: string;
|
|
36
|
+
/** Decimales del porcentaje. Default 2. */
|
|
37
|
+
maximumFractionDigits?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Nombre accesible de cada barrita. Recibe el punto y su porcentaje ya
|
|
40
|
+
* formateado (`null` cuando no hay dato). Default castellano:
|
|
41
|
+
* «5 de septiembre: 100 %. Sin incidencias».
|
|
42
|
+
*/
|
|
43
|
+
pointLabel?: (point: UptimeBarsPoint, formattedValue: string | null) => string;
|
|
44
|
+
/** Cómo se dice que un punto no tiene dato. Default castellano: «sin datos». */
|
|
45
|
+
noDataLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Bocadillo por barrita, con ratón y con teclado. Default `true`. Sin él las
|
|
48
|
+
* barritas dejan de recibir el foco: el detalle sigue en el nombre accesible,
|
|
49
|
+
* que un lector de pantalla recorre sin necesidad de tabular.
|
|
50
|
+
*/
|
|
51
|
+
tooltips?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* La tira de disponibilidad: una barrita por punto de la serie y la media del
|
|
55
|
+
* periodo debajo.
|
|
56
|
+
*
|
|
57
|
+
* **No sabe de tiempo ni de dónde salen los datos.** No hay días, ni monitores,
|
|
58
|
+
* ni husos horarios: recibe N puntos con su porcentaje y su etiqueta, y pinta.
|
|
59
|
+
* Quien la usa decide si un punto es un día o una hora, y escribe las fechas.
|
|
60
|
+
*
|
|
61
|
+
* La lectura no depende del color: cada barrita lleva su nombre accesible
|
|
62
|
+
* completo, la serie es una lista ordenada y la media va siempre en texto.
|
|
63
|
+
*/
|
|
64
|
+
export declare const UptimeBars: import("react").ForwardRefExoticComponent<UptimeBarsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Los cortes que deciden el color de la barrita, en porcentaje. */
|
|
2
|
+
export interface UptimeBarsThresholds {
|
|
3
|
+
/** A partir de aquí, el tramo bueno (rol `success`). */
|
|
4
|
+
ok?: number;
|
|
5
|
+
/** A partir de aquí y hasta `ok`, el tramo intermedio (rol `warning`). Por debajo, el malo (rol `error`). */
|
|
6
|
+
degraded?: number;
|
|
7
|
+
}
|
|
8
|
+
export type UptimeBarsStatus = 'ok' | 'degraded' | 'down' | 'empty';
|
|
9
|
+
/**
|
|
10
|
+
* Los cortes por defecto, pensados en **tiempo caído al día**: hasta 5 minutos
|
|
11
|
+
* el día está bien (99,65 %), de 5 minutos a 1 hora está tocado (95,83 %), y de
|
|
12
|
+
* ahí para abajo está caído. El margen del verde es deliberado: un fallo
|
|
13
|
+
* aislado de comprobación no es un incidente y no debe pintar el día entero.
|
|
14
|
+
*/
|
|
15
|
+
export declare const UPTIME_BARS_DEFAULT_THRESHOLDS: Required<UptimeBarsThresholds>;
|
|
16
|
+
/** El tramo de un punto según los cortes. `null` no es 0 %: es la ausencia de medida. */
|
|
17
|
+
export declare function uptimeStatus(value: number | null, thresholds: Required<UptimeBarsThresholds>): UptimeBarsStatus;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { MenuItem, MenuRenderLinkProps } from '../Menu/Menu';
|
|
3
|
+
import './UserMenu.css';
|
|
4
|
+
export interface UserMenuProps {
|
|
5
|
+
name: string;
|
|
6
|
+
email: string;
|
|
7
|
+
avatarUrl?: string;
|
|
8
|
+
/** Nombre accesible del botón. Por defecto, «Cuenta de ‹nombre›». */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Sin nombre — avatar, badge y chevron: para la barra del AppHeader. El nombre sigue en el panel y en el nombre accesible. */
|
|
11
|
+
compact?: boolean;
|
|
12
|
+
/** Número de notificaciones sin leer. Si es 0 o undefined, no se muestra el badge. */
|
|
13
|
+
notificationCount?: number;
|
|
14
|
+
items?: MenuItem[];
|
|
15
|
+
renderLink?: (props: MenuRenderLinkProps) => ReactNode;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function UserMenu({ name, email, avatarUrl, notificationCount, items, label, compact, renderLink, onOpenChange, defaultOpen, }: UserMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type MessageTimestamp } from '../_shared/messageTimestamp';
|
|
2
|
+
import './UserMessage.css';
|
|
3
|
+
export interface UserMessageProps extends React.ComponentPropsWithoutRef<'div'> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* Nombre visible del usuario que envía el mensaje (ej. "María"). Opcional:
|
|
7
|
+
* sin él, el emisor lo dicen la alineación y la cola, como hasta ahora. Se
|
|
8
|
+
* pinta discreto sobre el globo, coherente con el nombre del modelo de
|
|
9
|
+
* `AssistantMessage` pero sin su énfasis — aquí es un dato de apoyo, no la
|
|
10
|
+
* única pista de quién habla.
|
|
11
|
+
*/
|
|
12
|
+
author?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Momento del mensaje: un `Date` o una cadena ISO 8601. Se pinta en un
|
|
15
|
+
* `<time datetime>`, así que tiene que ser el instante, no una hora ya
|
|
16
|
+
* formateada — de eso se encarga el componente con `Intl`.
|
|
17
|
+
*/
|
|
18
|
+
timestamp?: MessageTimestamp;
|
|
19
|
+
/** Locale con el que se formatea la marca de tiempo. Default `'es-ES'`. */
|
|
20
|
+
locale?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Opciones de `Intl.DateTimeFormat` para la marca de tiempo.
|
|
23
|
+
* Default: hora y minutos a dos dígitos.
|
|
24
|
+
*/
|
|
25
|
+
timestampFormat?: Intl.DateTimeFormatOptions;
|
|
26
|
+
/** Se añade DESPUÉS de las clases propias del componente (el consumidor añade, no sustituye). */
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Un mensaje del usuario dentro del hilo: el globo, alineado al lado de fin, y
|
|
31
|
+
* su marca de tiempo debajo.
|
|
32
|
+
*
|
|
33
|
+
* Reenvía el resto de props del `<div>` (`data-*`, `aria-*`, `id`…) y el `ref`.
|
|
34
|
+
*/
|
|
35
|
+
export declare const UserMessage: import("react").ForwardRefExoticComponent<UserMessageProps & import("react").RefAttributes<HTMLDivElement>>;
|