@mizen-labs/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +72 -2
- package/dist/closed.d.ts +5 -0
- package/dist/closed.js +1 -0
- package/dist/components/accordion/accordion.d.ts +28 -0
- package/dist/components/accordion/accordion.js +1 -0
- package/dist/components/accordion/accordion.styles.js +1 -0
- package/dist/components/activity-feed/activity-feed.d.ts +28 -0
- package/dist/components/activity-feed/activity-feed.js +2 -0
- package/dist/components/activity-feed/activity-feed.styles.js +1 -0
- package/dist/components/agent-thinking/agent-thinking.d.ts +25 -0
- package/dist/components/agent-thinking/agent-thinking.js +16 -0
- package/dist/components/agent-thinking/agent-thinking.styles.js +3 -0
- package/dist/components/alert/alert.d.ts +14 -0
- package/dist/components/alert/alert.js +1 -0
- package/dist/components/alert/alert.styles.js +1 -0
- package/dist/components/alert/alert.stylex.js +1 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +29 -0
- package/dist/components/alert-dialog/alert-dialog.js +1 -0
- package/dist/components/alert-dialog/alert-dialog.styles.js +1 -0
- package/dist/components/approval-card/approval-card.d.ts +38 -0
- package/dist/components/approval-card/approval-card.js +8 -0
- package/dist/components/approval-card/approval-card.styles.js +1 -0
- package/dist/components/area-chart/area-chart.d.ts +29 -0
- package/dist/components/area-chart/area-chart.js +10 -0
- package/dist/components/area-chart/area-chart.styles.js +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +7 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.styles.js +1 -0
- package/dist/components/attachment/attachment.d.ts +20 -0
- package/dist/components/attachment/attachment.js +1 -0
- package/dist/components/attachment/attachment.styles.js +1 -0
- package/dist/components/avatar/avatar-character.styles.js +1 -0
- package/dist/components/avatar/avatar.d.ts +36 -0
- package/dist/components/avatar/avatar.js +4 -0
- package/dist/components/avatar/avatar.styles.js +1 -0
- package/dist/components/badge/badge.d.ts +8 -0
- package/dist/components/badge/badge.js +1 -0
- package/dist/components/badge/badge.styles.js +1 -0
- package/dist/components/bar-list/bar-list.d.ts +22 -0
- package/dist/components/bar-list/bar-list.js +4 -0
- package/dist/components/bar-list/bar-list.styles.js +1 -0
- package/dist/components/blockquote/blockquote.d.ts +12 -0
- package/dist/components/blockquote/blockquote.js +1 -0
- package/dist/components/blockquote/blockquote.styles.js +1 -0
- package/dist/components/breadcrumb/breadcrumb-link.d.ts +4 -0
- package/dist/components/breadcrumb/breadcrumb-link.js +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +16 -0
- package/dist/components/breadcrumb/breadcrumb.js +2 -0
- package/dist/components/breadcrumb/breadcrumb.styles.js +1 -0
- package/dist/components/button/button-colors.stylex.js +3 -0
- package/dist/components/button/button.css +16 -0
- package/dist/components/button/button.css.d.js +0 -0
- package/dist/components/button/button.d.ts +27 -0
- package/dist/components/button/button.js +1 -0
- package/dist/components/button/button.styles.js +3 -0
- package/dist/components/button-group/button-group.css +115 -0
- package/dist/components/button-group/button-group.d.ts +8 -0
- package/dist/components/button-group/button-group.js +3 -0
- package/dist/components/button-group/button-group.styles.js +1 -0
- package/dist/components/calendar/calendar-components.js +2 -0
- package/dist/components/calendar/calendar-context.js +1 -0
- package/dist/components/calendar/calendar-dropdowns.js +2 -0
- package/dist/components/calendar/calendar-utils.js +1 -0
- package/dist/components/calendar/calendar.d.ts +4 -0
- package/dist/components/calendar/calendar.js +1 -0
- package/dist/components/calendar/calendar.styles.js +1 -0
- package/dist/components/calendar/calendar.types.d.ts +48 -0
- package/dist/components/calendar/calendar.types.js +1 -0
- package/dist/components/calendar-heatmap/calendar-heatmap.d.ts +20 -0
- package/dist/components/calendar-heatmap/calendar-heatmap.js +9 -0
- package/dist/components/card/card.d.ts +17 -0
- package/dist/components/card/card.js +1 -0
- package/dist/components/card/card.styles.js +1 -0
- package/dist/components/carousel/carousel.d.ts +33 -0
- package/dist/components/carousel/carousel.js +21 -0
- package/dist/components/carousel/carousel.styles.js +4 -0
- package/dist/components/category-comparison/category-comparison.d.ts +30 -0
- package/dist/components/category-comparison/category-comparison.js +9 -0
- package/dist/components/category-comparison/category-comparison.styles.js +1 -0
- package/dist/components/chart-frame/arc-path.js +7 -0
- package/dist/components/chart-frame/chart-assert.js +2 -0
- package/dist/components/chart-frame/chart-colors.d.ts +10 -0
- package/dist/components/chart-frame/chart-colors.js +2 -0
- package/dist/components/chart-frame/chart-crosshair.js +6 -0
- package/dist/components/chart-frame/chart-data-table.js +4 -0
- package/dist/components/chart-frame/chart-frame.d.ts +24 -0
- package/dist/components/chart-frame/chart-frame.js +7 -0
- package/dist/components/chart-frame/chart-frame.styles.js +1 -0
- package/dist/components/chart-frame/chart-hover.js +3 -0
- package/dist/components/chart-frame/chart-loading.d.ts +22 -0
- package/dist/components/chart-frame/chart-loading.js +6 -0
- package/dist/components/chart-frame/ring-graphic.js +5 -0
- package/dist/components/chart-legend/chart-legend.d.ts +18 -0
- package/dist/components/chart-legend/chart-legend.js +1 -0
- package/dist/components/chart-legend/chart-legend.styles.js +1 -0
- package/dist/components/chart-tooltip/chart-tooltip.d.ts +14 -0
- package/dist/components/chart-tooltip/chart-tooltip.js +1 -0
- package/dist/components/chart-tooltip/chart-tooltip.styles.js +1 -0
- package/dist/components/checkbox/checkbox-card.d.ts +16 -0
- package/dist/components/checkbox/checkbox-card.js +1 -0
- package/dist/components/checkbox/checkbox-card.styles.js +1 -0
- package/dist/components/checkbox/checkbox.d.ts +13 -0
- package/dist/components/checkbox/checkbox.js +5 -0
- package/dist/components/checkbox/checkbox.styles.js +3 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts +6 -0
- package/dist/components/checkbox-group/checkbox-group.js +1 -0
- package/dist/components/checkbox-group/checkbox-group.styles.js +1 -0
- package/dist/components/citation/citation.d.ts +6 -0
- package/dist/components/citation/citation.js +1 -0
- package/dist/components/citation/citation.styles.js +1 -0
- package/dist/components/code/code.d.ts +5 -0
- package/dist/components/code/code.js +1 -0
- package/dist/components/code/code.styles.js +3 -0
- package/dist/components/code-block/code-block-copy.d.ts +6 -0
- package/dist/components/code-block/code-block-copy.js +1 -0
- package/dist/components/code-block/code-block-highlight.d.ts +31 -0
- package/dist/components/code-block/code-block-highlight.js +8 -0
- package/dist/components/code-block/code-block.d.ts +22 -0
- package/dist/components/code-block/code-block.js +4 -0
- package/dist/components/code-block/code-block.styles.js +3 -0
- package/dist/components/collapsible/collapsible.d.ts +19 -0
- package/dist/components/collapsible/collapsible.js +1 -0
- package/dist/components/collapsible/collapsible.styles.js +1 -0
- package/dist/components/combobox/combobox-chips.js +1 -0
- package/dist/components/combobox/combobox-chips.styles.js +1 -0
- package/dist/components/combobox/combobox-context.d.ts +9 -0
- package/dist/components/combobox/combobox-context.js +1 -0
- package/dist/components/combobox/combobox-field.styles.js +1 -0
- package/dist/components/combobox/combobox-input.js +1 -0
- package/dist/components/combobox/combobox-popup.js +1 -0
- package/dist/components/combobox/combobox-popup.styles.js +1 -0
- package/dist/components/combobox/combobox-structure.js +1 -0
- package/dist/components/combobox/combobox.d.ts +27 -0
- package/dist/components/combobox/combobox.js +1 -0
- package/dist/components/combobox/combobox.types.d.ts +43 -0
- package/dist/components/combobox/combobox.types.js +1 -0
- package/dist/components/command/command-dialog.js +1 -0
- package/dist/components/command/command-dialog.styles.js +1 -0
- package/dist/components/command/command-field.styles.js +1 -0
- package/dist/components/command/command-input.js +1 -0
- package/dist/components/command/command-items.js +1 -0
- package/dist/components/command/command-items.styles.js +1 -0
- package/dist/components/command/command-structure.js +1 -0
- package/dist/components/command/command.d.ts +29 -0
- package/dist/components/command/command.js +2 -0
- package/dist/components/command/command.types.d.ts +28 -0
- package/dist/components/command/command.types.js +1 -0
- package/dist/components/composer/attachment-marker.stylex.js +2 -0
- package/dist/components/composer/composer-clipboard.js +1 -0
- package/dist/components/composer/composer-context-meter.d.ts +36 -0
- package/dist/components/composer/composer-context-meter.js +6 -0
- package/dist/components/composer/composer-dictation.d.ts +17 -0
- package/dist/components/composer/composer-dictation.js +5 -0
- package/dist/components/composer/composer-document.d.ts +32 -0
- package/dist/components/composer/composer-document.js +1 -0
- package/dist/components/composer/composer-editor.d.ts +57 -0
- package/dist/components/composer/composer-editor.js +4 -0
- package/dist/components/composer/composer-history.js +1 -0
- package/dist/components/composer/composer-options.d.ts +45 -0
- package/dist/components/composer/composer-options.js +1 -0
- package/dist/components/composer/composer-parts.d.ts +36 -0
- package/dist/components/composer/composer-parts.js +4 -0
- package/dist/components/composer/composer-parts.styles.js +4 -0
- package/dist/components/composer/composer-picker.d.ts +50 -0
- package/dist/components/composer/composer-picker.js +15 -0
- package/dist/components/composer/composer-progress-ring.js +1 -0
- package/dist/components/composer/composer-query.js +1 -0
- package/dist/components/composer/composer-scroll-area.js +1 -0
- package/dist/components/composer/composer-session.js +3 -0
- package/dist/components/composer/composer-value.d.ts +45 -0
- package/dist/components/composer/composer-value.js +1 -0
- package/dist/components/composer/composer.css +80 -0
- package/dist/components/composer/composer.d.ts +72 -0
- package/dist/components/composer/composer.js +3 -0
- package/dist/components/composer/composer.styles.js +2 -0
- package/dist/components/composer/use-composer-editor.d.ts +8 -0
- package/dist/components/composer/use-composer-editor.js +2 -0
- package/dist/components/context-menu/context-menu-items.d.ts +10 -0
- package/dist/components/context-menu/context-menu-items.js +2 -0
- package/dist/components/context-menu/context-menu-utils.js +1 -0
- package/dist/components/context-menu/context-menu.d.ts +22 -0
- package/dist/components/context-menu/context-menu.js +1 -0
- package/dist/components/context-menu/context-menu.types.d.ts +57 -0
- package/dist/components/context-menu/context-menu.types.js +1 -0
- package/dist/components/conversation/conversation.d.ts +41 -0
- package/dist/components/conversation/conversation.js +6 -0
- package/dist/components/conversation/conversation.styles.js +2 -0
- package/dist/components/data-table/data-table.d.ts +30 -0
- package/dist/components/data-table/data-table.js +13 -0
- package/dist/components/data-table/data-table.styles.js +1 -0
- package/dist/components/data-table/grid-navigation.js +10 -0
- package/dist/components/date-picker/date-picker-date.js +1 -0
- package/dist/components/date-picker/date-picker-icon.js +1 -0
- package/dist/components/date-picker/date-picker-state.js +1 -0
- package/dist/components/date-picker/date-picker.d.ts +4 -0
- package/dist/components/date-picker/date-picker.js +1 -0
- package/dist/components/date-picker/date-picker.styles.js +1 -0
- package/dist/components/date-picker/date-picker.types.d.ts +28 -0
- package/dist/components/date-picker/date-picker.types.js +1 -0
- package/dist/components/date-range-picker/date-range-picker-date.js +1 -0
- package/dist/components/date-range-picker/date-range-picker-state.js +1 -0
- package/dist/components/date-range-picker/date-range-picker-views.js +1 -0
- package/dist/components/date-range-picker/date-range-picker.d.ts +4 -0
- package/dist/components/date-range-picker/date-range-picker.js +1 -0
- package/dist/components/date-range-picker/date-range-picker.styles.js +1 -0
- package/dist/components/date-range-picker/date-range-picker.types.d.ts +37 -0
- package/dist/components/date-range-picker/date-range-picker.types.js +1 -0
- package/dist/components/date-time-input/date-time-input.d.ts +13 -0
- package/dist/components/date-time-input/date-time-input.js +1 -0
- package/dist/components/diagram/diagram-renderer.js +5 -0
- package/dist/components/diagram/diagram.css +51 -0
- package/dist/components/diagram/diagram.d.ts +11 -0
- package/dist/components/diagram/diagram.js +4 -0
- package/dist/components/diagram/diagram.styles.js +6 -0
- package/dist/components/dialog/dialog.d.ts +34 -0
- package/dist/components/dialog/dialog.js +1 -0
- package/dist/components/dialog/dialog.styles.js +1 -0
- package/dist/components/distribution/distribution.d.ts +16 -0
- package/dist/components/distribution/distribution.js +6 -0
- package/dist/components/distribution/distribution.styles.js +1 -0
- package/dist/components/drawer/drawer-affordance.styles.js +1 -0
- package/dist/components/drawer/drawer-bar.js +1 -0
- package/dist/components/drawer/drawer-content.js +1 -0
- package/dist/components/drawer/drawer-layout.js +1 -0
- package/dist/components/drawer/drawer-menu.d.ts +30 -0
- package/dist/components/drawer/drawer-menu.js +1 -0
- package/dist/components/drawer/drawer-menu.styles.js +1 -0
- package/dist/components/drawer/drawer-positions.styles.js +1 -0
- package/dist/components/drawer/drawer.context.js +1 -0
- package/dist/components/drawer/drawer.d.ts +22 -0
- package/dist/components/drawer/drawer.js +2 -0
- package/dist/components/drawer/drawer.styles.js +1 -0
- package/dist/components/drawer/drawer.types.d.ts +53 -0
- package/dist/components/drawer/drawer.types.js +1 -0
- package/dist/components/empty/empty.d.ts +18 -0
- package/dist/components/empty/empty.js +1 -0
- package/dist/components/empty/empty.styles.js +1 -0
- package/dist/components/error-state/error-state.d.ts +15 -0
- package/dist/components/error-state/error-state.js +1 -0
- package/dist/components/error-state/error-state.styles.js +1 -0
- package/dist/components/field/field-context.d.ts +33 -0
- package/dist/components/field/field-context.js +1 -0
- package/dist/components/field/field.d.ts +44 -0
- package/dist/components/field/field.js +3 -0
- package/dist/components/field/field.styles.js +1 -0
- package/dist/components/fieldset/fieldset.d.ts +14 -0
- package/dist/components/fieldset/fieldset.js +1 -0
- package/dist/components/fieldset/fieldset.styles.js +1 -0
- package/dist/components/file-upload/file-upload-context.js +1 -0
- package/dist/components/file-upload/file-upload-controls.d.ts +4 -0
- package/dist/components/file-upload/file-upload-controls.js +7 -0
- package/dist/components/file-upload/file-upload-item-preview.d.ts +5 -0
- package/dist/components/file-upload/file-upload-item-preview.js +3 -0
- package/dist/components/file-upload/file-upload-items.d.ts +8 -0
- package/dist/components/file-upload/file-upload-items.js +5 -0
- package/dist/components/file-upload/file-upload-motion.js +6 -0
- package/dist/components/file-upload/file-upload-validation.d.ts +18 -0
- package/dist/components/file-upload/file-upload-validation.js +1 -0
- package/dist/components/file-upload/file-upload.d.ts +19 -0
- package/dist/components/file-upload/file-upload.js +2 -0
- package/dist/components/file-upload/file-upload.styles.js +2 -0
- package/dist/components/file-upload/file-upload.types.d.ts +87 -0
- package/dist/components/file-upload/file-upload.types.js +1 -0
- package/dist/components/frame/frame.d.ts +13 -0
- package/dist/components/frame/frame.js +1 -0
- package/dist/components/frame/frame.styles.js +1 -0
- package/dist/components/funnel/funnel-flow.js +3 -0
- package/dist/components/funnel/funnel.d.ts +31 -0
- package/dist/components/funnel/funnel.js +4 -0
- package/dist/components/funnel/funnel.styles.js +1 -0
- package/dist/components/grid/grid.d.ts +5 -0
- package/dist/components/grid/grid.js +1 -0
- package/dist/components/grid/grid.styles.js +1 -0
- package/dist/components/group/group.d.ts +5 -0
- package/dist/components/group/group.js +1 -0
- package/dist/components/group/group.styles.js +1 -0
- package/dist/components/heading/heading.d.ts +10 -0
- package/dist/components/heading/heading.js +1 -0
- package/dist/components/heading/heading.styles.js +1 -0
- package/dist/components/heatmap/heatmap-scale.js +3 -0
- package/dist/components/heatmap/heatmap.d.ts +17 -0
- package/dist/components/heatmap/heatmap.js +2 -0
- package/dist/components/inline/inline.d.ts +5 -0
- package/dist/components/inline/inline.js +1 -0
- package/dist/components/inline/inline.styles.js +1 -0
- package/dist/components/inline-citation/citation-source.d.ts +27 -0
- package/dist/components/inline-citation/citation-source.js +13 -0
- package/dist/components/inline-citation/inline-citation.d.ts +22 -0
- package/dist/components/inline-citation/inline-citation.js +10 -0
- package/dist/components/inline-citation/inline-citation.styles.js +1 -0
- package/dist/components/input/input.d.ts +17 -0
- package/dist/components/input/input.js +3 -0
- package/dist/components/input/input.styles.js +1 -0
- package/dist/components/input-group/input-group.d.ts +17 -0
- package/dist/components/input-group/input-group.js +1 -0
- package/dist/components/input-group/input-group.styles.js +1 -0
- package/dist/components/kbd/kbd.d.ts +7 -0
- package/dist/components/kbd/kbd.js +1 -0
- package/dist/components/kbd/kbd.styles.js +1 -0
- package/dist/components/label/label.d.ts +5 -0
- package/dist/components/label/label.js +1 -0
- package/dist/components/label/label.styles.js +1 -0
- package/dist/components/lightbox/lightbox-gallery.d.ts +25 -0
- package/dist/components/lightbox/lightbox-gallery.js +6 -0
- package/dist/components/lightbox/lightbox.d.ts +30 -0
- package/dist/components/lightbox/lightbox.js +6 -0
- package/dist/components/lightbox/lightbox.styles.js +3 -0
- package/dist/components/link/link.d.ts +15 -0
- package/dist/components/link/link.js +1 -0
- package/dist/components/link/link.styles.js +1 -0
- package/dist/components/list/list.d.ts +10 -0
- package/dist/components/list/list.js +2 -0
- package/dist/components/list/list.styles.js +1 -0
- package/dist/components/markdown/markdown.d.ts +34 -0
- package/dist/components/markdown/markdown.js +8 -0
- package/dist/components/markdown/markdown.styles.js +1 -0
- package/dist/components/menu/menu-align-context.js +3 -0
- package/dist/components/menu/menu.d.ts +75 -0
- package/dist/components/menu/menu.js +2 -0
- package/dist/components/menu/menu.styles.js +1 -0
- package/dist/components/menubar/menubar.d.ts +13 -0
- package/dist/components/menubar/menubar.js +1 -0
- package/dist/components/menubar/menubar.styles.js +1 -0
- package/dist/components/message/message.d.ts +47 -0
- package/dist/components/message/message.js +16 -0
- package/dist/components/message/message.styles.js +3 -0
- package/dist/components/message-scroller/message-scroller-store.d.ts +58 -0
- package/dist/components/message-scroller/message-scroller-store.js +27 -0
- package/dist/components/message-scroller/message-scroller.d.ts +76 -0
- package/dist/components/message-scroller/message-scroller.js +30 -0
- package/dist/components/message-scroller/message-scroller.styles.js +4 -0
- package/dist/components/meter/meter.d.ts +30 -0
- package/dist/components/meter/meter.js +2 -0
- package/dist/components/meter/meter.styles.js +1 -0
- package/dist/components/metric/metric.d.ts +17 -0
- package/dist/components/metric/metric.js +4 -0
- package/dist/components/metric/metric.styles.js +1 -0
- package/dist/components/metric-trend/metric-trend.d.ts +26 -0
- package/dist/components/metric-trend/metric-trend.js +6 -0
- package/dist/components/metric-trend/metric-trend.styles.js +1 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +40 -0
- package/dist/components/navigation-menu/navigation-menu.js +1 -0
- package/dist/components/navigation-menu/navigation-menu.styles.js +1 -0
- package/dist/components/number-field/number-field-context.js +1 -0
- package/dist/components/number-field/number-field.d.ts +11 -0
- package/dist/components/number-field/number-field.js +1 -0
- package/dist/components/number-field/number-field.styles.js +1 -0
- package/dist/components/number-field/number-field.types.d.ts +30 -0
- package/dist/components/number-field/number-field.types.js +1 -0
- package/dist/components/otp-field/otp-field.d.ts +21 -0
- package/dist/components/otp-field/otp-field.js +1 -0
- package/dist/components/otp-field/otp-field.styles.js +1 -0
- package/dist/components/overflow-list/overflow-list.d.ts +10 -0
- package/dist/components/overflow-list/overflow-list.js +3 -0
- package/dist/components/overflow-list/overflow-list.styles.js +1 -0
- package/dist/components/pagination/pagination-link.d.ts +10 -0
- package/dist/components/pagination/pagination-link.js +1 -0
- package/dist/components/pagination/pagination.d.ts +22 -0
- package/dist/components/pagination/pagination.js +2 -0
- package/dist/components/pagination/pagination.styles.js +1 -0
- package/dist/components/part-to-whole/part-to-whole.d.ts +18 -0
- package/dist/components/part-to-whole/part-to-whole.js +2 -0
- package/dist/components/part-to-whole/part-to-whole.styles.js +1 -0
- package/dist/components/popover/popover.d.ts +33 -0
- package/dist/components/popover/popover.js +1 -0
- package/dist/components/popover/popover.styles.js +1 -0
- package/dist/components/preview-card/preview-card.d.ts +21 -0
- package/dist/components/preview-card/preview-card.js +1 -0
- package/dist/components/preview-card/preview-card.styles.js +1 -0
- package/dist/components/progress/progress.d.ts +28 -0
- package/dist/components/progress/progress.js +1 -0
- package/dist/components/progress/progress.styles.js +1 -0
- package/dist/components/progress-rings/progress-rings.d.ts +25 -0
- package/dist/components/progress-rings/progress-rings.js +2 -0
- package/dist/components/progress-rings/progress-rings.styles.js +1 -0
- package/dist/components/property-list/property-list.d.ts +9 -0
- package/dist/components/property-list/property-list.js +1 -0
- package/dist/components/property-list/property-list.styles.js +1 -0
- package/dist/components/question-card/question-card.d.ts +35 -0
- package/dist/components/question-card/question-card.js +13 -0
- package/dist/components/question-card/question-card.styles.js +1 -0
- package/dist/components/radar-chart/radar-chart.d.ts +28 -0
- package/dist/components/radar-chart/radar-chart.js +1 -0
- package/dist/components/radial-bars/radial-bars.d.ts +19 -0
- package/dist/components/radial-bars/radial-bars.js +8 -0
- package/dist/components/radio/radio-card.d.ts +15 -0
- package/dist/components/radio/radio-card.js +1 -0
- package/dist/components/radio/radio.d.ts +9 -0
- package/dist/components/radio/radio.js +1 -0
- package/dist/components/radio/radio.styles.js +1 -0
- package/dist/components/radio-group/radio-group.d.ts +3 -0
- package/dist/components/radio-group/radio-group.js +1 -0
- package/dist/components/sankey-chart/sankey-chart.d.ts +16 -0
- package/dist/components/sankey-chart/sankey-chart.js +1 -0
- package/dist/components/sankey-chart/sankey-layout.d.ts +34 -0
- package/dist/components/sankey-chart/sankey-layout.js +5 -0
- package/dist/components/scatter-chart/scatter-chart.d.ts +30 -0
- package/dist/components/scatter-chart/scatter-chart.js +6 -0
- package/dist/components/scatter-chart/scatter-chart.styles.js +1 -0
- package/dist/components/score-gauge/score-gauge.d.ts +24 -0
- package/dist/components/score-gauge/score-gauge.js +8 -0
- package/dist/components/score-gauge/score-gauge.styles.js +1 -0
- package/dist/components/scroll-area/scroll-area.d.ts +26 -0
- package/dist/components/scroll-area/scroll-area.js +1 -0
- package/dist/components/scroll-area/scroll-area.styles.js +2 -0
- package/dist/components/section/section.d.ts +5 -0
- package/dist/components/section/section.js +1 -0
- package/dist/components/section/section.styles.js +1 -0
- package/dist/components/segmented-control/segmented-control.d.ts +10 -0
- package/dist/components/segmented-control/segmented-control.js +1 -0
- package/dist/components/segmented-control/segmented-control.styles.js +1 -0
- package/dist/components/select/select.d.ts +55 -0
- package/dist/components/select/select.js +1 -0
- package/dist/components/select/select.styles.js +1 -0
- package/dist/components/separator/separator.d.ts +5 -0
- package/dist/components/separator/separator.js +1 -0
- package/dist/components/separator/separator.styles.js +1 -0
- package/dist/components/sheet/sheet-layout.js +1 -0
- package/dist/components/sheet/sheet-positions.styles.js +1 -0
- package/dist/components/sheet/sheet.d.ts +15 -0
- package/dist/components/sheet/sheet.js +1 -0
- package/dist/components/sheet/sheet.styles.js +1 -0
- package/dist/components/sheet/sheet.types.d.ts +32 -0
- package/dist/components/sheet/sheet.types.js +1 -0
- package/dist/components/skeleton/skeleton.d.ts +8 -0
- package/dist/components/skeleton/skeleton.js +1 -0
- package/dist/components/skeleton/skeleton.styles.js +1 -0
- package/dist/components/slider/slider-context.d.ts +23 -0
- package/dist/components/slider/slider-context.js +9 -0
- package/dist/components/slider/slider-default-anatomy.js +1 -0
- package/dist/components/slider/slider-ref-utils.js +1 -0
- package/dist/components/slider/slider-slot.js +1 -0
- package/dist/components/slider/slider.d.ts +15 -0
- package/dist/components/slider/slider.js +1 -0
- package/dist/components/slider/slider.styles.js +1 -0
- package/dist/components/slider/slider.types.d.ts +36 -0
- package/dist/components/slider/slider.types.js +1 -0
- package/dist/components/sources/sources.d.ts +22 -0
- package/dist/components/sources/sources.js +6 -0
- package/dist/components/sources/sources.styles.js +3 -0
- package/dist/components/spacer/spacer.d.ts +5 -0
- package/dist/components/spacer/spacer.js +1 -0
- package/dist/components/spacer/spacer.styles.js +1 -0
- package/dist/components/spinner/spinner.d.ts +18 -0
- package/dist/components/spinner/spinner.js +9 -0
- package/dist/components/spinner/spinner.styles.js +11 -0
- package/dist/components/stack/stack.d.ts +9 -0
- package/dist/components/stack/stack.js +1 -0
- package/dist/components/stack/stack.styles.d.ts +76 -0
- package/dist/components/stack/stack.styles.js +2 -0
- package/dist/components/status-dot/status-dot.d.ts +9 -0
- package/dist/components/status-dot/status-dot.js +1 -0
- package/dist/components/status-dot/status-dot.styles.js +1 -0
- package/dist/components/stepper/stepper.d.ts +42 -0
- package/dist/components/stepper/stepper.js +2 -0
- package/dist/components/stepper/stepper.styles.js +1 -0
- package/dist/components/streaming-text/streaming-text-words.d.ts +29 -0
- package/dist/components/streaming-text/streaming-text-words.js +19 -0
- package/dist/components/streaming-text/streaming-text.d.ts +35 -0
- package/dist/components/streaming-text/streaming-text.js +13 -0
- package/dist/components/streaming-text/streaming-text.styles.js +6 -0
- package/dist/components/suggestion/suggestion.d.ts +23 -0
- package/dist/components/suggestion/suggestion.js +7 -0
- package/dist/components/suggestion/suggestion.styles.js +3 -0
- package/dist/components/switch/switch.d.ts +12 -0
- package/dist/components/switch/switch.js +1 -0
- package/dist/components/switch/switch.styles.js +1 -0
- package/dist/components/table/table.d.ts +64 -0
- package/dist/components/table/table.js +1 -0
- package/dist/components/table/table.styles.js +1 -0
- package/dist/components/tabs/tabs.d.ts +32 -0
- package/dist/components/tabs/tabs.js +1 -0
- package/dist/components/tabs/tabs.styles.js +1 -0
- package/dist/components/task-list/task-list.d.ts +34 -0
- package/dist/components/task-list/task-list.js +10 -0
- package/dist/components/task-list/task-list.styles.js +2 -0
- package/dist/components/terminal/ansi.js +11 -0
- package/dist/components/terminal/terminal.d.ts +23 -0
- package/dist/components/terminal/terminal.js +15 -0
- package/dist/components/terminal/terminal.styles.js +1 -0
- package/dist/components/text/text.d.ts +11 -0
- package/dist/components/text/text.js +1 -0
- package/dist/components/text/text.styles.js +1 -0
- package/dist/components/textarea/textarea.d.ts +13 -0
- package/dist/components/textarea/textarea.js +3 -0
- package/dist/components/textarea/textarea.styles.js +1 -0
- package/dist/components/thumbnail/thumbnail.d.ts +9 -0
- package/dist/components/thumbnail/thumbnail.js +2 -0
- package/dist/components/thumbnail/thumbnail.styles.js +1 -0
- package/dist/components/time-input/time-input.d.ts +13 -0
- package/dist/components/time-input/time-input.js +1 -0
- package/dist/components/time-series/time-format.d.ts +16 -0
- package/dist/components/time-series/time-format.js +10 -0
- package/dist/components/time-series/time-series.d.ts +30 -0
- package/dist/components/time-series/time-series.js +10 -0
- package/dist/components/time-series/time-series.styles.js +1 -0
- package/dist/components/timestamp/timestamp.d.ts +15 -0
- package/dist/components/timestamp/timestamp.js +4 -0
- package/dist/components/timestamp/timestamp.styles.js +1 -0
- package/dist/components/toast/toast-anchored.styles.js +1 -0
- package/dist/components/toast/toast-animation.styles.js +1 -0
- package/dist/components/toast/toast-icons.js +1 -0
- package/dist/components/toast/toast-stacked.styles.js +1 -0
- package/dist/components/toast/toast-utils.js +1 -0
- package/dist/components/toast/toast-views.js +1 -0
- package/dist/components/toast/toast.d.ts +8 -0
- package/dist/components/toast/toast.js +1 -0
- package/dist/components/toast/toast.styles.js +1 -0
- package/dist/components/toast/toast.types.d.ts +18 -0
- package/dist/components/toast/toast.types.js +1 -0
- package/dist/components/toggle/toggle-colors.stylex.js +2 -0
- package/dist/components/toggle/toggle.d.ts +33 -0
- package/dist/components/toggle/toggle.js +1 -0
- package/dist/components/toggle/toggle.styles.js +1 -0
- package/dist/components/token/token.d.ts +16 -0
- package/dist/components/token/token.js +1 -0
- package/dist/components/token/token.styles.js +1 -0
- package/dist/components/tool-call/tool-call-group.d.ts +17 -0
- package/dist/components/tool-call/tool-call-group.js +6 -0
- package/dist/components/tool-call/tool-call.d.ts +36 -0
- package/dist/components/tool-call/tool-call.js +12 -0
- package/dist/components/tool-call/tool-call.styles.js +3 -0
- package/dist/components/toolbar/toolbar-context.js +2 -0
- package/dist/components/toolbar/toolbar.d.ts +37 -0
- package/dist/components/toolbar/toolbar.js +1 -0
- package/dist/components/toolbar/toolbar.styles.js +1 -0
- package/dist/components/tooltip/tooltip.d.ts +25 -0
- package/dist/components/tooltip/tooltip.js +1 -0
- package/dist/components/tooltip/tooltip.styles.js +1 -0
- package/dist/components/tree/tree.d.ts +31 -0
- package/dist/components/tree/tree.js +5 -0
- package/dist/components/tree/tree.styles.js +3 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts +6 -0
- package/dist/components/visually-hidden/visually-hidden.js +1 -0
- package/dist/components/visually-hidden/visually-hidden.styles.js +1 -0
- package/dist/control-label.js +3 -0
- package/dist/copy-button.js +1 -0
- package/dist/form.d.ts +2 -0
- package/dist/form.js +2 -0
- package/dist/icon-masks.stylex.js +3 -0
- package/dist/icons.js +5 -0
- package/dist/index.d.ts +275 -0
- package/dist/index.js +1 -0
- package/dist/loading-indicator.js +3 -0
- package/dist/motion.js +9 -0
- package/dist/ref-utils.js +1 -0
- package/dist/render-utils.js +3 -0
- package/dist/styles/application-structure.stylex.js +1 -0
- package/dist/styles/colors.stylex.d.ts +50 -0
- package/dist/styles/colors.stylex.js +1 -0
- package/dist/styles/conditions.stylex.d.ts +9 -0
- package/dist/styles/conditions.stylex.js +1 -0
- package/dist/styles/dimensions.stylex.d.ts +14 -0
- package/dist/styles/dimensions.stylex.js +1 -0
- package/dist/styles/floating-item-colors.stylex.js +1 -0
- package/dist/styles/fonts.stylex.d.ts +5 -0
- package/dist/styles/fonts.stylex.js +1 -0
- package/dist/styles/interaction.stylex.d.ts +23 -0
- package/dist/styles/interaction.stylex.js +4 -0
- package/dist/styles/motion.stylex.d.ts +22 -0
- package/dist/styles/motion.stylex.js +3 -0
- package/dist/styles/overlay-layers.styles.js +1 -0
- package/dist/styles/palette.stylex.d.ts +26 -0
- package/dist/styles/palette.stylex.js +1 -0
- package/dist/styles/shadows.stylex.d.ts +10 -0
- package/dist/styles/shadows.stylex.js +1 -0
- package/dist/styles/shape.stylex.d.ts +9 -0
- package/dist/styles/shape.stylex.js +1 -0
- package/dist/styles/spacing.stylex.d.ts +14 -0
- package/dist/styles/spacing.stylex.js +3 -0
- package/dist/styles/themes.d.ts +49 -0
- package/dist/styles/themes.js +1 -0
- package/dist/styles/typography.styles.d.ts +90 -0
- package/dist/styles/typography.styles.js +8 -0
- package/dist/styles/typography.stylex.d.ts +35 -0
- package/dist/styles/typography.stylex.js +5 -0
- package/dist/styles.css +2125 -0
- package/dist/theme/index.d.ts +11 -0
- package/dist/theme/index.js +1 -0
- package/dist/theme/initialize.d.ts +4 -0
- package/dist/theme/initialize.js +1 -0
- package/dist/theme/theme-provider.d.ts +3 -0
- package/dist/theme/theme-provider.js +4 -0
- package/dist/theme/theme-root.js +1 -0
- package/dist/theme/theme-script.d.ts +3 -0
- package/dist/theme/theme-script.js +1 -0
- package/dist/theme/theme-storage.js +1 -0
- package/dist/theme/theme-tokens.js +1 -0
- package/dist/theme/theme-transition-guard.js +1 -0
- package/dist/theme/types.d.ts +25 -0
- package/dist/theme/types.js +1 -0
- package/dist/use-copy-to-clipboard.d.ts +17 -0
- package/dist/use-copy-to-clipboard.js +6 -0
- package/dist/use-elapsed.js +4 -0
- package/package.json +769 -3
- package/src/closed.ts +7 -0
- package/src/components/accordion/accordion.styles.ts +246 -0
- package/src/components/accordion/accordion.tsx +221 -0
- package/src/components/activity-feed/activity-feed.styles.ts +135 -0
- package/src/components/activity-feed/activity-feed.tsx +182 -0
- package/src/components/agent-thinking/agent-thinking.styles.ts +140 -0
- package/src/components/agent-thinking/agent-thinking.tsx +275 -0
- package/src/components/alert/alert.styles.ts +135 -0
- package/src/components/alert/alert.stylex.ts +6 -0
- package/src/components/alert/alert.tsx +123 -0
- package/src/components/alert-dialog/alert-dialog.styles.ts +29 -0
- package/src/components/alert-dialog/alert-dialog.tsx +197 -0
- package/src/components/approval-card/approval-card.styles.ts +69 -0
- package/src/components/approval-card/approval-card.tsx +379 -0
- package/src/components/area-chart/area-chart.styles.ts +14 -0
- package/src/components/area-chart/area-chart.tsx +571 -0
- package/src/components/aspect-ratio/aspect-ratio.styles.ts +20 -0
- package/src/components/aspect-ratio/aspect-ratio.tsx +43 -0
- package/src/components/attachment/attachment.styles.ts +71 -0
- package/src/components/attachment/attachment.tsx +132 -0
- package/src/components/avatar/avatar-character.styles.ts +32 -0
- package/src/components/avatar/avatar.styles.ts +118 -0
- package/src/components/avatar/avatar.tsx +262 -0
- package/src/components/badge/badge.styles.ts +116 -0
- package/src/components/badge/badge.tsx +66 -0
- package/src/components/bar-list/bar-list.styles.ts +72 -0
- package/src/components/bar-list/bar-list.tsx +157 -0
- package/src/components/blockquote/blockquote.styles.ts +26 -0
- package/src/components/blockquote/blockquote.tsx +75 -0
- package/src/components/breadcrumb/breadcrumb-link.tsx +32 -0
- package/src/components/breadcrumb/breadcrumb.styles.ts +114 -0
- package/src/components/breadcrumb/breadcrumb.tsx +137 -0
- package/src/components/button/button-colors.stylex.ts +7 -0
- package/src/components/button/button.css +16 -0
- package/src/components/button/button.css.d.ts +1 -0
- package/src/components/button/button.styles.ts +457 -0
- package/src/components/button/button.tsx +168 -0
- package/src/components/button-group/button-group.css +115 -0
- package/src/components/button-group/button-group.styles.ts +24 -0
- package/src/components/button-group/button-group.tsx +46 -0
- package/src/components/calendar/calendar-components.tsx +187 -0
- package/src/components/calendar/calendar-context.ts +16 -0
- package/src/components/calendar/calendar-dropdowns.tsx +84 -0
- package/src/components/calendar/calendar-utils.ts +67 -0
- package/src/components/calendar/calendar.styles.ts +270 -0
- package/src/components/calendar/calendar.tsx +244 -0
- package/src/components/calendar/calendar.types.ts +55 -0
- package/src/components/calendar-heatmap/calendar-heatmap.tsx +384 -0
- package/src/components/card/card.styles.ts +122 -0
- package/src/components/card/card.tsx +154 -0
- package/src/components/carousel/carousel.styles.ts +142 -0
- package/src/components/carousel/carousel.tsx +786 -0
- package/src/components/category-comparison/category-comparison.styles.ts +14 -0
- package/src/components/category-comparison/category-comparison.tsx +567 -0
- package/src/components/chart-frame/arc-path.ts +33 -0
- package/src/components/chart-frame/chart-assert.ts +47 -0
- package/src/components/chart-frame/chart-colors.ts +14 -0
- package/src/components/chart-frame/chart-crosshair.ts +129 -0
- package/src/components/chart-frame/chart-data-table.tsx +15 -0
- package/src/components/chart-frame/chart-frame.styles.ts +48 -0
- package/src/components/chart-frame/chart-frame.tsx +223 -0
- package/src/components/chart-frame/chart-hover.tsx +127 -0
- package/src/components/chart-frame/chart-loading.tsx +130 -0
- package/src/components/chart-frame/ring-graphic.tsx +100 -0
- package/src/components/chart-legend/chart-legend.styles.ts +80 -0
- package/src/components/chart-legend/chart-legend.tsx +107 -0
- package/src/components/chart-tooltip/chart-tooltip.styles.ts +71 -0
- package/src/components/chart-tooltip/chart-tooltip.tsx +94 -0
- package/src/components/checkbox/checkbox-card.styles.ts +75 -0
- package/src/components/checkbox/checkbox-card.tsx +71 -0
- package/src/components/checkbox/checkbox.styles.ts +199 -0
- package/src/components/checkbox/checkbox.tsx +104 -0
- package/src/components/checkbox-group/checkbox-group.styles.ts +11 -0
- package/src/components/checkbox-group/checkbox-group.tsx +29 -0
- package/src/components/citation/citation.styles.ts +7 -0
- package/src/components/citation/citation.tsx +30 -0
- package/src/components/code/code.styles.ts +22 -0
- package/src/components/code/code.tsx +22 -0
- package/src/components/code-block/code-block-copy.tsx +62 -0
- package/src/components/code-block/code-block-highlight.tsx +69 -0
- package/src/components/code-block/code-block.styles.ts +129 -0
- package/src/components/code-block/code-block.tsx +128 -0
- package/src/components/collapsible/collapsible.styles.ts +22 -0
- package/src/components/collapsible/collapsible.tsx +109 -0
- package/src/components/combobox/combobox-chips.styles.ts +182 -0
- package/src/components/combobox/combobox-chips.tsx +164 -0
- package/src/components/combobox/combobox-context.tsx +26 -0
- package/src/components/combobox/combobox-field.styles.ts +156 -0
- package/src/components/combobox/combobox-input.tsx +185 -0
- package/src/components/combobox/combobox-popup.styles.ts +190 -0
- package/src/components/combobox/combobox-popup.tsx +113 -0
- package/src/components/combobox/combobox-structure.tsx +138 -0
- package/src/components/combobox/combobox.tsx +162 -0
- package/src/components/combobox/combobox.types.ts +77 -0
- package/src/components/command/command-dialog.styles.ts +43 -0
- package/src/components/command/command-dialog.tsx +126 -0
- package/src/components/command/command-field.styles.ts +59 -0
- package/src/components/command/command-input.tsx +59 -0
- package/src/components/command/command-items.styles.ts +169 -0
- package/src/components/command/command-items.tsx +99 -0
- package/src/components/command/command-structure.tsx +172 -0
- package/src/components/command/command.tsx +157 -0
- package/src/components/command/command.types.ts +58 -0
- package/src/components/composer/attachment-marker.stylex.ts +4 -0
- package/src/components/composer/composer-clipboard.ts +49 -0
- package/src/components/composer/composer-context-meter.tsx +179 -0
- package/src/components/composer/composer-dictation.tsx +56 -0
- package/src/components/composer/composer-document.ts +508 -0
- package/src/components/composer/composer-editor.ts +544 -0
- package/src/components/composer/composer-history.ts +74 -0
- package/src/components/composer/composer-options.ts +51 -0
- package/src/components/composer/composer-parts.styles.ts +456 -0
- package/src/components/composer/composer-parts.tsx +245 -0
- package/src/components/composer/composer-picker.tsx +375 -0
- package/src/components/composer/composer-progress-ring.tsx +44 -0
- package/src/components/composer/composer-query.ts +52 -0
- package/src/components/composer/composer-scroll-area.tsx +29 -0
- package/src/components/composer/composer-session.ts +593 -0
- package/src/components/composer/composer-value.ts +46 -0
- package/src/components/composer/composer.css +80 -0
- package/src/components/composer/composer.styles.ts +236 -0
- package/src/components/composer/composer.tsx +581 -0
- package/src/components/composer/use-composer-editor.ts +153 -0
- package/src/components/context-menu/context-menu-items.tsx +230 -0
- package/src/components/context-menu/context-menu-utils.tsx +65 -0
- package/src/components/context-menu/context-menu.tsx +198 -0
- package/src/components/context-menu/context-menu.types.ts +97 -0
- package/src/components/conversation/conversation.styles.ts +56 -0
- package/src/components/conversation/conversation.tsx +142 -0
- package/src/components/data-table/data-table.styles.ts +63 -0
- package/src/components/data-table/data-table.tsx +723 -0
- package/src/components/data-table/grid-navigation.ts +186 -0
- package/src/components/date-picker/date-picker-date.ts +142 -0
- package/src/components/date-picker/date-picker-icon.tsx +6 -0
- package/src/components/date-picker/date-picker-state.ts +193 -0
- package/src/components/date-picker/date-picker.styles.ts +53 -0
- package/src/components/date-picker/date-picker.tsx +213 -0
- package/src/components/date-picker/date-picker.types.ts +32 -0
- package/src/components/date-range-picker/date-range-picker-date.ts +191 -0
- package/src/components/date-range-picker/date-range-picker-state.ts +235 -0
- package/src/components/date-range-picker/date-range-picker-views.tsx +144 -0
- package/src/components/date-range-picker/date-range-picker.styles.ts +80 -0
- package/src/components/date-range-picker/date-range-picker.tsx +208 -0
- package/src/components/date-range-picker/date-range-picker.types.ts +41 -0
- package/src/components/date-time-input/date-time-input.tsx +30 -0
- package/src/components/diagram/diagram-renderer.ts +35 -0
- package/src/components/diagram/diagram.css +51 -0
- package/src/components/diagram/diagram.styles.ts +130 -0
- package/src/components/diagram/diagram.tsx +238 -0
- package/src/components/dialog/dialog.styles.ts +226 -0
- package/src/components/dialog/dialog.tsx +227 -0
- package/src/components/distribution/distribution.styles.ts +14 -0
- package/src/components/distribution/distribution.tsx +450 -0
- package/src/components/drawer/drawer-affordance.styles.ts +61 -0
- package/src/components/drawer/drawer-bar.tsx +53 -0
- package/src/components/drawer/drawer-content.tsx +25 -0
- package/src/components/drawer/drawer-layout.tsx +129 -0
- package/src/components/drawer/drawer-menu.styles.ts +52 -0
- package/src/components/drawer/drawer-menu.tsx +222 -0
- package/src/components/drawer/drawer-positions.styles.ts +138 -0
- package/src/components/drawer/drawer.context.tsx +25 -0
- package/src/components/drawer/drawer.styles.ts +233 -0
- package/src/components/drawer/drawer.tsx +278 -0
- package/src/components/drawer/drawer.types.ts +85 -0
- package/src/components/empty/empty.styles.ts +118 -0
- package/src/components/empty/empty.tsx +175 -0
- package/src/components/error-state/error-state.styles.ts +97 -0
- package/src/components/error-state/error-state.tsx +151 -0
- package/src/components/field/field-context.ts +83 -0
- package/src/components/field/field.styles.ts +141 -0
- package/src/components/field/field.tsx +212 -0
- package/src/components/fieldset/fieldset.styles.ts +28 -0
- package/src/components/fieldset/fieldset.tsx +68 -0
- package/src/components/file-upload/file-upload-context.tsx +191 -0
- package/src/components/file-upload/file-upload-controls.tsx +280 -0
- package/src/components/file-upload/file-upload-item-preview.tsx +56 -0
- package/src/components/file-upload/file-upload-items.tsx +339 -0
- package/src/components/file-upload/file-upload-motion.ts +85 -0
- package/src/components/file-upload/file-upload-validation.ts +141 -0
- package/src/components/file-upload/file-upload.styles.ts +426 -0
- package/src/components/file-upload/file-upload.tsx +278 -0
- package/src/components/file-upload/file-upload.types.ts +161 -0
- package/src/components/frame/frame.styles.ts +66 -0
- package/src/components/frame/frame.tsx +126 -0
- package/src/components/funnel/funnel-flow.tsx +198 -0
- package/src/components/funnel/funnel.styles.ts +73 -0
- package/src/components/funnel/funnel.tsx +177 -0
- package/src/components/grid/grid.styles.ts +15 -0
- package/src/components/grid/grid.tsx +22 -0
- package/src/components/group/group.styles.ts +13 -0
- package/src/components/group/group.tsx +22 -0
- package/src/components/heading/heading.styles.ts +10 -0
- package/src/components/heading/heading.tsx +52 -0
- package/src/components/heatmap/heatmap-scale.tsx +92 -0
- package/src/components/heatmap/heatmap.tsx +402 -0
- package/src/components/inline/inline.styles.ts +13 -0
- package/src/components/inline/inline.tsx +22 -0
- package/src/components/inline-citation/citation-source.tsx +105 -0
- package/src/components/inline-citation/inline-citation.styles.ts +94 -0
- package/src/components/inline-citation/inline-citation.tsx +199 -0
- package/src/components/input/input.styles.ts +95 -0
- package/src/components/input/input.tsx +147 -0
- package/src/components/input-group/input-group.styles.ts +183 -0
- package/src/components/input-group/input-group.tsx +215 -0
- package/src/components/kbd/kbd.styles.ts +42 -0
- package/src/components/kbd/kbd.tsx +70 -0
- package/src/components/label/label.styles.ts +8 -0
- package/src/components/label/label.tsx +29 -0
- package/src/components/lightbox/lightbox-gallery.tsx +208 -0
- package/src/components/lightbox/lightbox.styles.ts +196 -0
- package/src/components/lightbox/lightbox.tsx +137 -0
- package/src/components/link/link.styles.ts +41 -0
- package/src/components/link/link.tsx +48 -0
- package/src/components/list/list.styles.ts +49 -0
- package/src/components/list/list.tsx +105 -0
- package/src/components/markdown/markdown.styles.ts +104 -0
- package/src/components/markdown/markdown.tsx +268 -0
- package/src/components/menu/menu-align-context.ts +8 -0
- package/src/components/menu/menu.styles.ts +281 -0
- package/src/components/menu/menu.tsx +485 -0
- package/src/components/menubar/menubar.styles.ts +97 -0
- package/src/components/menubar/menubar.tsx +89 -0
- package/src/components/message/message.styles.ts +145 -0
- package/src/components/message/message.tsx +501 -0
- package/src/components/message-scroller/message-scroller-store.ts +457 -0
- package/src/components/message-scroller/message-scroller.styles.ts +177 -0
- package/src/components/message-scroller/message-scroller.tsx +417 -0
- package/src/components/meter/meter.styles.ts +48 -0
- package/src/components/meter/meter.tsx +176 -0
- package/src/components/metric/metric.styles.ts +64 -0
- package/src/components/metric/metric.tsx +134 -0
- package/src/components/metric-trend/metric-trend.styles.ts +103 -0
- package/src/components/metric-trend/metric-trend.tsx +188 -0
- package/src/components/navigation-menu/navigation-menu.styles.ts +183 -0
- package/src/components/navigation-menu/navigation-menu.tsx +255 -0
- package/src/components/number-field/number-field-context.tsx +46 -0
- package/src/components/number-field/number-field.styles.ts +229 -0
- package/src/components/number-field/number-field.tsx +268 -0
- package/src/components/number-field/number-field.types.ts +46 -0
- package/src/components/otp-field/otp-field.styles.ts +138 -0
- package/src/components/otp-field/otp-field.tsx +174 -0
- package/src/components/overflow-list/overflow-list.styles.ts +25 -0
- package/src/components/overflow-list/overflow-list.tsx +84 -0
- package/src/components/pagination/pagination-link.tsx +96 -0
- package/src/components/pagination/pagination.styles.ts +137 -0
- package/src/components/pagination/pagination.tsx +153 -0
- package/src/components/part-to-whole/part-to-whole.styles.ts +56 -0
- package/src/components/part-to-whole/part-to-whole.tsx +329 -0
- package/src/components/popover/popover.styles.ts +177 -0
- package/src/components/popover/popover.tsx +197 -0
- package/src/components/preview-card/preview-card.styles.ts +61 -0
- package/src/components/preview-card/preview-card.tsx +94 -0
- package/src/components/progress/progress.styles.ts +82 -0
- package/src/components/progress/progress.tsx +153 -0
- package/src/components/progress-rings/progress-rings.styles.ts +65 -0
- package/src/components/progress-rings/progress-rings.tsx +163 -0
- package/src/components/property-list/property-list.styles.ts +49 -0
- package/src/components/property-list/property-list.tsx +91 -0
- package/src/components/question-card/question-card.styles.ts +106 -0
- package/src/components/question-card/question-card.tsx +525 -0
- package/src/components/radar-chart/radar-chart.tsx +281 -0
- package/src/components/radial-bars/radial-bars.tsx +197 -0
- package/src/components/radio/radio-card.tsx +57 -0
- package/src/components/radio/radio.styles.ts +57 -0
- package/src/components/radio/radio.tsx +61 -0
- package/src/components/radio-group/radio-group.tsx +29 -0
- package/src/components/sankey-chart/sankey-chart.tsx +340 -0
- package/src/components/sankey-chart/sankey-layout.ts +107 -0
- package/src/components/scatter-chart/scatter-chart.styles.ts +7 -0
- package/src/components/scatter-chart/scatter-chart.tsx +509 -0
- package/src/components/score-gauge/score-gauge.styles.ts +77 -0
- package/src/components/score-gauge/score-gauge.tsx +236 -0
- package/src/components/scroll-area/scroll-area.styles.ts +174 -0
- package/src/components/scroll-area/scroll-area.tsx +202 -0
- package/src/components/section/section.styles.ts +11 -0
- package/src/components/section/section.tsx +29 -0
- package/src/components/segmented-control/segmented-control.styles.ts +107 -0
- package/src/components/segmented-control/segmented-control.tsx +98 -0
- package/src/components/select/select.styles.ts +295 -0
- package/src/components/select/select.tsx +335 -0
- package/src/components/separator/separator.styles.ts +14 -0
- package/src/components/separator/separator.tsx +24 -0
- package/src/components/sheet/sheet-layout.tsx +92 -0
- package/src/components/sheet/sheet-positions.styles.ts +104 -0
- package/src/components/sheet/sheet.styles.ts +209 -0
- package/src/components/sheet/sheet.tsx +182 -0
- package/src/components/sheet/sheet.types.ts +67 -0
- package/src/components/skeleton/skeleton.styles.ts +52 -0
- package/src/components/skeleton/skeleton.tsx +35 -0
- package/src/components/slider/slider-context.tsx +414 -0
- package/src/components/slider/slider-default-anatomy.tsx +71 -0
- package/src/components/slider/slider-ref-utils.ts +16 -0
- package/src/components/slider/slider-slot.ts +7 -0
- package/src/components/slider/slider.styles.ts +368 -0
- package/src/components/slider/slider.tsx +303 -0
- package/src/components/slider/slider.types.ts +57 -0
- package/src/components/sources/sources.styles.ts +105 -0
- package/src/components/sources/sources.tsx +150 -0
- package/src/components/spacer/spacer.styles.ts +11 -0
- package/src/components/spacer/spacer.tsx +25 -0
- package/src/components/spinner/spinner.styles.ts +231 -0
- package/src/components/spinner/spinner.tsx +153 -0
- package/src/components/stack/stack.styles.ts +37 -0
- package/src/components/stack/stack.tsx +34 -0
- package/src/components/status-dot/status-dot.styles.ts +27 -0
- package/src/components/status-dot/status-dot.tsx +55 -0
- package/src/components/stepper/stepper.styles.ts +564 -0
- package/src/components/stepper/stepper.tsx +349 -0
- package/src/components/streaming-text/streaming-text-words.tsx +275 -0
- package/src/components/streaming-text/streaming-text.styles.ts +166 -0
- package/src/components/streaming-text/streaming-text.tsx +299 -0
- package/src/components/suggestion/suggestion.styles.ts +55 -0
- package/src/components/suggestion/suggestion.tsx +125 -0
- package/src/components/switch/switch.styles.ts +195 -0
- package/src/components/switch/switch.tsx +69 -0
- package/src/components/table/table.styles.ts +198 -0
- package/src/components/table/table.tsx +290 -0
- package/src/components/tabs/tabs.styles.ts +245 -0
- package/src/components/tabs/tabs.tsx +186 -0
- package/src/components/task-list/task-list.styles.ts +82 -0
- package/src/components/task-list/task-list.tsx +430 -0
- package/src/components/terminal/ansi.ts +86 -0
- package/src/components/terminal/terminal.styles.ts +20 -0
- package/src/components/terminal/terminal.tsx +339 -0
- package/src/components/text/text.styles.ts +8 -0
- package/src/components/text/text.tsx +47 -0
- package/src/components/textarea/textarea.styles.ts +85 -0
- package/src/components/textarea/textarea.tsx +163 -0
- package/src/components/thumbnail/thumbnail.styles.ts +33 -0
- package/src/components/thumbnail/thumbnail.tsx +63 -0
- package/src/components/time-input/time-input.tsx +30 -0
- package/src/components/time-series/time-format.ts +172 -0
- package/src/components/time-series/time-series.styles.ts +18 -0
- package/src/components/time-series/time-series.tsx +521 -0
- package/src/components/timestamp/timestamp.styles.ts +9 -0
- package/src/components/timestamp/timestamp.tsx +162 -0
- package/src/components/toast/toast-anchored.styles.ts +146 -0
- package/src/components/toast/toast-animation.styles.ts +64 -0
- package/src/components/toast/toast-icons.tsx +58 -0
- package/src/components/toast/toast-stacked.styles.ts +129 -0
- package/src/components/toast/toast-utils.ts +53 -0
- package/src/components/toast/toast-views.tsx +223 -0
- package/src/components/toast/toast.styles.ts +198 -0
- package/src/components/toast/toast.tsx +59 -0
- package/src/components/toast/toast.types.ts +41 -0
- package/src/components/toggle/toggle-colors.stylex.ts +27 -0
- package/src/components/toggle/toggle.styles.ts +267 -0
- package/src/components/toggle/toggle.tsx +193 -0
- package/src/components/token/token.styles.ts +135 -0
- package/src/components/token/token.tsx +208 -0
- package/src/components/tool-call/tool-call-group.tsx +147 -0
- package/src/components/tool-call/tool-call.styles.ts +146 -0
- package/src/components/tool-call/tool-call.tsx +324 -0
- package/src/components/toolbar/toolbar-context.ts +6 -0
- package/src/components/toolbar/toolbar.styles.ts +120 -0
- package/src/components/toolbar/toolbar.tsx +219 -0
- package/src/components/tooltip/tooltip.styles.ts +104 -0
- package/src/components/tooltip/tooltip.tsx +106 -0
- package/src/components/tree/tree.styles.ts +133 -0
- package/src/components/tree/tree.tsx +862 -0
- package/src/components/visually-hidden/visually-hidden.styles.ts +15 -0
- package/src/components/visually-hidden/visually-hidden.tsx +36 -0
- package/src/control-label.tsx +48 -0
- package/src/copy-button.tsx +38 -0
- package/src/form.ts +44 -0
- package/src/icon-masks.stylex.ts +7 -0
- package/src/icons.ts +43 -0
- package/src/index.ts +1392 -0
- package/src/loading-indicator.tsx +45 -0
- package/src/motion.tsx +124 -0
- package/src/ref-utils.ts +27 -0
- package/src/render-utils.ts +35 -0
- package/src/styles/application-structure.stylex.ts +5 -0
- package/src/styles/colors.stylex.ts +64 -0
- package/src/styles/conditions.stylex.ts +10 -0
- package/src/styles/dimensions.stylex.ts +17 -0
- package/src/styles/floating-item-colors.stylex.ts +22 -0
- package/src/styles/fonts.stylex.ts +9 -0
- package/src/styles/interaction.stylex.ts +34 -0
- package/src/styles/motion.stylex.ts +28 -0
- package/src/styles/overlay-layers.styles.ts +26 -0
- package/src/styles/palette.stylex.ts +28 -0
- package/src/styles/shadows.stylex.ts +14 -0
- package/src/styles/shape.stylex.ts +11 -0
- package/src/styles/spacing.stylex.ts +18 -0
- package/src/styles/themes.ts +57 -0
- package/src/styles/typography.styles.ts +116 -0
- package/src/styles/typography.stylex.ts +44 -0
- package/src/theme/index.ts +25 -0
- package/src/theme/initialize.ts +31 -0
- package/src/theme/theme-provider.tsx +189 -0
- package/src/theme/theme-root.ts +37 -0
- package/src/theme/theme-script.tsx +35 -0
- package/src/theme/theme-storage.ts +256 -0
- package/src/theme/theme-tokens.ts +11 -0
- package/src/theme/theme-transition-guard.ts +102 -0
- package/src/theme/types.ts +33 -0
- package/src/use-copy-to-clipboard.ts +57 -0
- package/src/use-elapsed.ts +40 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Avatar as BaseAvatar } from "@base-ui/react/avatar";
|
|
2
|
+
import type { ComponentPropsWithRef, Ref } from "react";
|
|
3
|
+
type BaseAvatarRootProps = ComponentPropsWithRef<typeof BaseAvatar.Root>;
|
|
4
|
+
type BaseAvatarImageProps = ComponentPropsWithRef<typeof BaseAvatar.Image>;
|
|
5
|
+
type BaseAvatarFallbackProps = ComponentPropsWithRef<typeof BaseAvatar.Fallback>;
|
|
6
|
+
type NativeDivProps = ComponentPropsWithRef<"div">;
|
|
7
|
+
export type AvatarSize = "default" | "lg" | "sm";
|
|
8
|
+
export type AvatarProps = Omit<BaseAvatarRootProps, "className" | "data-slot" | "style"> & {
|
|
9
|
+
ref?: BaseAvatarRootProps["ref"];
|
|
10
|
+
size?: AvatarSize;
|
|
11
|
+
};
|
|
12
|
+
export type AvatarImageProps = Omit<BaseAvatarImageProps, "alt" | "className" | "data-slot" | "style"> & {
|
|
13
|
+
alt: string;
|
|
14
|
+
ref?: BaseAvatarImageProps["ref"];
|
|
15
|
+
};
|
|
16
|
+
export type AvatarFallbackProps = Omit<BaseAvatarFallbackProps, "className" | "data-slot" | "style"> & {
|
|
17
|
+
color?: "neutral" | "blue" | "purple" | "green" | "orange";
|
|
18
|
+
ref?: BaseAvatarFallbackProps["ref"];
|
|
19
|
+
};
|
|
20
|
+
export type AvatarGroupProps = Omit<NativeDivProps, "className" | "data-slot" | "style"> & {
|
|
21
|
+
size?: AvatarSize;
|
|
22
|
+
};
|
|
23
|
+
export declare function Avatar({ ref: forwardedRef, render, size, ...rest }: AvatarProps): import("react").JSX.Element;
|
|
24
|
+
export declare function AvatarGroup({ children, ref: forwardedRef, size, ...rest }: AvatarGroupProps): import("react").JSX.Element;
|
|
25
|
+
export declare function AvatarImage({ alt, ref: forwardedRef, render, ...rest }: AvatarImageProps): import("react").JSX.Element;
|
|
26
|
+
export declare function AvatarFallback({ children, color, ref: forwardedRef, render, ...rest }: AvatarFallbackProps): import("react").JSX.Element;
|
|
27
|
+
export interface AvatarCharacterProps {
|
|
28
|
+
/** Accessible name. Omit when adjacent text already names the identity. */
|
|
29
|
+
label?: string;
|
|
30
|
+
ref?: Ref<SVGSVGElement>;
|
|
31
|
+
/** Stable identity key. Prefer an immutable ID over a display name. */
|
|
32
|
+
seed: string;
|
|
33
|
+
size?: AvatarSize;
|
|
34
|
+
}
|
|
35
|
+
export declare function AvatarCharacter({ seed, label, size, ref, }: AvatarCharacterProps): import("react").JSX.Element;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";import{Avatar as BaseAvatar}from"@base-ui/react/avatar";import{props}from"@stylexjs/stylex";import{createContext,useContext}from"react";import{controlLabel}from"../../control-label";import{protectRenderSlot}from"../../render-utils";import{avatarFallbackColors,avatarStyles}from"./avatar.styles";import{characterStyles}from"./avatar-character.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const AvatarGroupContext=createContext(null);const sizeStyles={default:avatarStyles.defaultSize,lg:avatarStyles.lg,sm:avatarStyles.sm};const groupOverlapStyles={default:avatarStyles.groupOverlapDefault,lg:avatarStyles.groupOverlapLg,sm:avatarStyles.groupOverlapSm};export function Avatar({ref:forwardedRef,render,size,...rest}){const group=useContext(AvatarGroupContext);const resolvedSize=size??group?.size??"default";const isGrouped=group!==null;return/*#__PURE__*/_jsx(BaseAvatar.Root,{...rest,"data-slot":"avatar",ref:forwardedRef,render:protectRenderSlot("avatar",render),...props(avatarStyles.root,sizeStyles[resolvedSize],isGrouped&&avatarStyles.groupRing,isGrouped&&groupOverlapStyles[resolvedSize])});}export function AvatarGroup({children,ref:forwardedRef,size="default",...rest}){return/*#__PURE__*/_jsx(AvatarGroupContext,{value:{size},children:/*#__PURE__*/_jsx("div",{...rest,"data-slot":"avatar-group",ref:forwardedRef,...props(avatarStyles.group),children:children})});}export function AvatarImage({alt,ref:forwardedRef,render,...rest}){return/*#__PURE__*/_jsx(BaseAvatar.Image,{alt:alt,...rest,"data-slot":"avatar-image",ref:forwardedRef,render:protectRenderSlot("avatar-image",render),...props(avatarStyles.image)});}export function AvatarFallback({children,color="neutral",ref:forwardedRef,render,...rest}){return/*#__PURE__*/_jsx(BaseAvatar.Fallback,{...rest,"data-slot":"avatar-fallback",ref:forwardedRef,render:protectRenderSlot("avatar-fallback",render),...props(avatarStyles.fallback,color!=="neutral"&&avatarFallbackColors[color]),children:controlLabel(children)});}const characterSizes={default:avatarStyles.defaultSize,lg:avatarStyles.lg,sm:avatarStyles.sm};const tones=[characterStyles.violet,characterStyles.blue,characterStyles.teal,characterStyles.green,characterStyles.amber,characterStyles.orange,characterStyles.rose,characterStyles.pink];// Bodies rise from the bottom edge. `face` is the eye line.
|
|
2
|
+
const bodies=[{d:"M7 52V31a17 17 0 0 1 34 0v21Z",face:30},{d:"M7 52V31a17 17 0 0 1 34 0v21ZM13 10a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Zm22 0a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11Z",face:30},{d:"M8 52V35a16 16 0 0 1 32 0v17ZM14 24V9a3.5 3.5 0 0 1 7 0v15Zm13 0V9a3.5 3.5 0 0 1 7 0v15Z",face:34},{d:"M9 52V25c0-9 5-14 15-14s15 5 15 14v27Z",face:27},{d:"M7 52V31a17 17 0 0 1 34 0v21ZM24 4a6 6 0 1 1 0 12 6 6 0 0 1 0-12Z",face:31},{d:"M3 52V37c0-10 9-15 21-15s21 5 21 15v15Z",face:35},{d:"M7 52V30c0-6 1-12 3-17 1-3 4-3 6-1l5 5h6l5-5c2-2 5-2 6 1 2 5 3 11 3 17v22Z",face:31},{d:"M12 52V22a12 12 0 0 1 24 0v30Z",face:25}];const eyeShapes=[(x,y)=>/*#__PURE__*/_jsx("circle",{cx:x,cy:y,r:"3"}),(x,y)=>/*#__PURE__*/_jsx("ellipse",{cx:x,cy:y,rx:"2.5",ry:"3.6"}),(x,y)=>/*#__PURE__*/_jsx("path",{d:`M${x-3} ${y+1}q3-4.5 6 0`,...props(characterStyles.stroke)})];// FNV-1a over UTF-16 plus the murmur3 finalizer is fixed for v1.
|
|
3
|
+
// Changing either would change existing identities.
|
|
4
|
+
/* biome-ignore-start lint/suspicious/noBitwiseOperators: Hashing needs 32-bit XOR, shifts, and multiplies. */function hashSeed(seed){let hash=2_166_136_261;for(let index=0;index<seed.length;index+=1){hash=Math.imul(hash^seed.charCodeAt(index),16_777_619);}hash=Math.imul(hash^hash>>>16,0x85_eb_ca_6b);hash=Math.imul(hash^hash>>>13,0xc2_b2_ae_35);return(hash^hash>>>16)>>>0;}/* biome-ignore-end lint/suspicious/noBitwiseOperators: Hashing needs 32-bit XOR, shifts, and multiplies. */export function AvatarCharacter({seed,label,size="default",ref}){const hash=hashSeed(seed);const body=bodies[Math.floor(hash/8)%bodies.length];const eye=eyeShapes[Math.floor(hash/64)%eyeShapes.length];const x=24+(Math.floor(hash/192)%3-1)*1.5;const spread=Math.floor(hash/576)%2?6.5:5;return/*#__PURE__*/_jsxs("svg",{"aria-hidden":label?undefined:true,"aria-label":label,"data-slot":"avatar-character",focusable:"false",ref:ref,role:label?"img":undefined,viewBox:"0 0 48 48",...props(characterStyles.root,characterSizes[size],tones[hash%tones.length]),children:[/*#__PURE__*/_jsx("path",{d:body.d,...props(characterStyles.body)}),/*#__PURE__*/_jsxs("g",{...props(characterStyles.face),children:[eye(x-spread,body.face),eye(x+spread,body.face)]})]});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/dimensions.stylex";import{controlSize}from"../../styles/dimensions.stylex";import"../../styles/palette.stylex";import{palette}from"../../styles/palette.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,lineHeight}from"../../styles/typography.stylex";export const avatarStyles={defaultSize:{kGuDYH:"x1ws78te",kZKoxP:"x1sscbzi",kzqmXN:"x14pcf9u",$$css:true},fallback:{kGNEyG:"x6s0dn4",kWkggS:"x1vs9wzj",kB7OPa:"x9f619",kMwMTN:"xbb0na1",k1xSpc:"x78zum5",k63SB2:"xuku2lm",kZKoxP:"x5yr21d",kYYq5F:"x10no89f",kkqhue:"x17y0mx6",kjj79g:"xl56j7k",kLWn49:"x1wrb330",kVAEAm:"x10l6tqk",kzqmXN:"xh8yej3",$$css:true},group:{kGNEyG:"x6s0dn4",kB7OPa:"x9f619",k1xSpc:"x3nfvp2",kXwgrk:"x1q0g3np",$$css:true},groupOverlapDefault:{keTefX:"xozkbsz x1wan5pe",$$css:true},groupOverlapLg:{keTefX:"x1jlx4w8 x1wan5pe",$$css:true},groupOverlapSm:{keTefX:"x3c7snj x1wan5pe",$$css:true},groupRing:{kGVxlE:"xj9qs6x",$$css:true},image:{kB7OPa:"x9f619",k1xSpc:"x1b10x9z x1veu2zj x1lliihq",kZKoxP:"x5yr21d",kVIFPx:"xl1xv1r",kzqmXN:"xh8yej3",$$css:true},lg:{kGuDYH:"xlh8hku",kZKoxP:"x1nwj9bq",kzqmXN:"x1kmmwjt",$$css:true},root:{kGNEyG:"x6s0dn4",kWkggS:"x1vs9wzj",kaIpWk:"x10hpsqq",kB7OPa:"x9f619",kMwMTN:"xbb0na1",k1xSpc:"x3nfvp2",kmuXW:"x2lah0s",k63SB2:"xuku2lm",kjj79g:"xl56j7k",kLWn49:"x1wrb330",kVQacm:"xb3r6kr",kVAEAm:"x1n2onr6",kfSwDN:"x87ps6o",kXLuUW:"xxymvpz",$$css:true},sm:{kGuDYH:"x1ws78te",kZKoxP:"xud2w1",kzqmXN:"x1sxroq0",$$css:true}};export const avatarFallbackColors={blue:{kWkggS:"x1o93qni",kMwMTN:"x2z7umo",$$css:true},green:{kWkggS:"x1odci6f",kMwMTN:"x2221tf",$$css:true},orange:{kWkggS:"xgkf0yf",kMwMTN:"x1scrdw2",$$css:true},purple:{kWkggS:"x1mpowjk",kMwMTN:"x1g8gvkm",$$css:true}};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
export type BadgeVariant = "default" | "destructive" | "info" | "outline" | "secondary" | "success" | "warning" | "brand";
|
|
3
|
+
export type BadgeSize = "default" | "sm" | "lg";
|
|
4
|
+
export type BadgeProps = Omit<useRender.ComponentProps<"span">, "className" | "data-slot" | "style"> & {
|
|
5
|
+
size?: BadgeSize;
|
|
6
|
+
variant?: BadgeVariant;
|
|
7
|
+
};
|
|
8
|
+
export declare function Badge({ children, ref: forwardedRef, render, size, variant, ...rest }: BadgeProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{useRender}from"@base-ui/react/use-render";import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{protectRenderSlot}from"../../render-utils";import{badgeStyles}from"./badge.styles";const variantStyles={brand:badgeStyles.brand,default:badgeStyles.default,destructive:badgeStyles.destructive,info:badgeStyles.info,outline:badgeStyles.outline,secondary:badgeStyles.secondary,success:badgeStyles.success,warning:badgeStyles.warning};const sizeStyles={default:badgeStyles.defaultSize,lg:badgeStyles.lg,sm:badgeStyles.sm};export function Badge({children,ref:forwardedRef,render,size="default",variant="default",...rest}){const normalizedRender=protectRenderSlot("badge",render);return useRender({defaultTagName:"span",props:{...rest,children:controlLabel(children),"data-slot":"badge",...props(badgeStyles.base,variantStyles[variant],sizeStyles[size])},ref:forwardedRef,render:normalizedRender});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/dimensions.stylex";import{controlSize}from"../../styles/dimensions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion,focusOutline}from"../../styles/interaction.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,lineHeight}from"../../styles/typography.stylex";export const badgeStyles={base:{kGNEyG:"x6s0dn4",k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kB7OPa:"x9f619",k1xSpc:"x3nfvp2",kmuXW:"xs83m0k",kMv6JI:"xjb2p0i",k63SB2:"xuku2lm",kOIVth:"x13hh4mm",kjj79g:"xl56j7k",ks0D6T:"x193iq5w",k7Eaqz:"xeuugli",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x7jjmpn x1w1ofmy",k3XXqK:"x9v5kkp xzc55om",kMeerF:"xm9seqh x1vhx2qj",kHjlTd:"xj0a0fe",khDVqt:"xeaf4i8",$$css:true},brand:{kWkggS:"x16d8uok",kVAM5u:"x9r1u3d",kMwMTN:"xdnyjpo",$$css:true},default:{kWkggS:"x1o7hn9x",kVAM5u:"x9r1u3d",kMwMTN:"xbb0na1",$$css:true},defaultSize:{kaIpWk:"x2b34ud",kGuDYH:"xlh8hku",kLWn49:"x2xzzt7",kAzted:"x15j2gbd",kg3NbH:"xb5xqfq",$$css:true},destructive:{kWkggS:"xyio8l9",kVAM5u:"x9r1u3d",kMwMTN:"x14tvo57",$$css:true},info:{kWkggS:"xou2r82",kVAM5u:"x9r1u3d",kMwMTN:"x1dpkydq",$$css:true},lg:{kaIpWk:"x1jw0md8",kGuDYH:"x12ama9c",kLWn49:"x1rn0pvf",kAzted:"x1vigsvi",kg3NbH:"xy7odpl",$$css:true},outline:{kWkggS:"xjbqb8w",kVAM5u:"x155xxfk",kMwMTN:"x14tvo57",$$css:true},secondary:{kWkggS:"x1vs9wzj",kVAM5u:"x9r1u3d",kMwMTN:"xbb0na1",$$css:true},sm:{kaIpWk:"x2b34ud",kGuDYH:"x1ws78te",kLWn49:"x76y1r9",kAzted:"xvfbv0m",kg3NbH:"xb5xqfq",$$css:true},success:{kWkggS:"x80umms",kVAM5u:"x9r1u3d",kMwMTN:"x19d0d4p",$$css:true},warning:{kWkggS:"xuooem1",kVAM5u:"x9r1u3d",kMwMTN:"x11ihctc",$$css:true}};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
2
|
+
import type { Closed } from "../../closed";
|
|
3
|
+
import { type ChartSeriesTone } from "../chart-frame/chart-colors";
|
|
4
|
+
export interface BarListItem {
|
|
5
|
+
/** A decorative glyph before the label, such as a device icon. */
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
id: string;
|
|
8
|
+
label: string;
|
|
9
|
+
value: number;
|
|
10
|
+
}
|
|
11
|
+
export type BarListProps = Omit<Closed<ComponentPropsWithRef<"div">>, "aria-label" | "children" | "data-slot" | "role"> & {
|
|
12
|
+
"aria-label": string;
|
|
13
|
+
formatValue?: (value: number) => string;
|
|
14
|
+
items: readonly BarListItem[];
|
|
15
|
+
locale?: string;
|
|
16
|
+
/** One hue for every bar. By default each item takes its palette color. */
|
|
17
|
+
tone?: ChartSeriesTone;
|
|
18
|
+
/** A column caption above the values, such as "Visitors". */
|
|
19
|
+
valueLabel?: string;
|
|
20
|
+
};
|
|
21
|
+
/** Ranked rows whose background bar shows each value against the largest. */
|
|
22
|
+
export declare function BarList({ "aria-label": ariaLabel, formatValue, items, locale, ref: forwardedRef, tone, valueLabel, ...rest }: BarListProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";import{props}from"@stylexjs/stylex";import{typeRoles}from"../../styles/typography.styles";import{chartColors}from"../chart-frame/chart-colors";import{useChartHover}from"../chart-frame/chart-hover";import{barListStyles}from"./bar-list.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";// Tinted enough to read as a bar, light enough to keep the label legible on it.
|
|
2
|
+
const TINT="20%";const PALETTE=["series1","series2","series3","series4","series5","series6"];// Items take palette colors in input order, so sorting never repaints one; past
|
|
3
|
+
// six, they fold into the neutral reference tone instead of cycling.
|
|
4
|
+
function toneAt(index,tone){return tone??PALETTE[index]??"muted";}function tintOf(tone){return`color-mix(in oklch, ${chartColors[tone]} ${TINT}, transparent)`;}function assertItems(items){if(!Array.isArray(items)){throw new TypeError("BarList items must be an array.");}const ids=new Set();for(const{id,label,value}of items){if(typeof id!=="string"||!id.trim()||typeof label!=="string"){throw new TypeError("BarList items require non-empty ids and labels.");}if(ids.has(id)){throw new RangeError("BarList item ids must be unique.");}if(typeof value!=="number"||!Number.isFinite(value)||value<0){throw new RangeError("BarList values must be finite and not negative.");}ids.add(id);}}function assertOptions(ariaLabel,tone){if(typeof ariaLabel!=="string"||!ariaLabel.trim()){throw new TypeError("BarList requires a non-empty aria-label.");}if(tone!==undefined&&!Object.hasOwn(chartColors,tone)){throw new RangeError("BarList tone is not a supported chart series tone.");}}/** Ranked rows whose background bar shows each value against the largest. */export function BarList({"aria-label":ariaLabel,formatValue,items,locale="en-US",ref:forwardedRef,tone,valueLabel,...rest}){assertOptions(ariaLabel,tone);assertItems(items);for(const name of["children","className","data-slot","role","style"]){Reflect.deleteProperty(rest,name);}const format=formatValue??new Intl.NumberFormat(locale).format;const{fade,linkProps}=useChartHover();const ranked=items.map((item,index)=>({...item,tone:toneAt(index,tone)})).sort((left,right)=>right.value-left.value);const max=ranked[0]?.value||1;return/*#__PURE__*/_jsxs("div",{...rest,"data-slot":"bar-list",ref:forwardedRef,...props(barListStyles.root,typeRoles.ui),children:[valueLabel?/*#__PURE__*/_jsxs("div",{"aria-hidden":"true","data-slot":"bar-list-header",...props(barListStyles.header,typeRoles.caption),children:[/*#__PURE__*/_jsx("span",{}),/*#__PURE__*/_jsx("span",{children:valueLabel})]}):null,/*#__PURE__*/_jsx("ul",{"aria-label":ariaLabel,...props(barListStyles.list),children:ranked.map(({icon,id,label,tone:itemTone,value})=>/*#__PURE__*/_jsxs("li",{"data-slot":"bar-list-item",...linkProps(id),...props(barListStyles.item),children:[/*#__PURE__*/_jsx("span",{"aria-hidden":"true","data-slot":"bar-list-bar",...props(...fade(id),barListStyles.bar(`${value/max*100}%`,tintOf(itemTone)))}),/*#__PURE__*/_jsxs("span",{"data-slot":"bar-list-label",...props(barListStyles.label),children:[icon?/*#__PURE__*/_jsx("span",{"aria-hidden":"true",...props(barListStyles.icon),children:icon}):null,label]}),/*#__PURE__*/_jsx("span",{"data-slot":"bar-list-value",...props(barListStyles.value),children:format(value)})]},id))})]});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/dimensions.stylex";import{glyphSize}from"../../styles/dimensions.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontWeight}from"../../styles/typography.stylex";const _temp={kaIpWk:"x2b34ud",kzqmXN:"x1uyokj7",kYYq5F:"x10no89f",kLqNvP:"x1o0tod",kVAEAm:"x10l6tqk","$$css":true};export const barListStyles={bar:(inlineSize,backgroundColor)=>[_temp,{kWkggS:backgroundColor!=null?"xl8spv7":backgroundColor,$$css:true},{"--x-backgroundColor":backgroundColor!=null?backgroundColor:undefined,"--x-inlineSize":(val=>typeof val==="number"?val+"px":val!=null?val:undefined)(inlineSize)}],header:{kMwMTN:"x125omll",k1xSpc:"x78zum5",kjj79g:"x1qughib",kg3NbH:"xy7odpl",$$css:true},icon:{kMwMTN:"x125omll",k1xSpc:"x3nfvp2",kmuXW:"x2lah0s",kZKoxP:"x38fy1k xt7dq6l",kzqmXN:"xw9ltxv x14atkfc",$$css:true},item:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kOIVth:"xiw8qbs",kjj79g:"x1qughib",kAzted:"x1in32aq",kg3NbH:"xy7odpl",kVAEAm:"x1n2onr6",$$css:true},label:{kGNEyG:"x6s0dn4",kMwMTN:"x14tvo57",k1xSpc:"x78zum5",kOIVth:"xp4ho6d",k7Eaqz:"xeuugli",kVQacm:"xb3r6kr",kVAEAm:"x1n2onr6",kg5iWk:"xlyipyv",khDVqt:"xuxw1ft",$$css:true},list:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"x13hh4mm",kB88ic:"xe8uvvx",kogj98:"x1ghz6dp",kmVPX3:"x1717udv",$$css:true},root:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"xp4ho6d",k7Eaqz:"xeuugli",$$css:true},value:{kMwMTN:"x14tvo57",kmuXW:"x2lah0s",kcqcaj:"xss6m8b",k63SB2:"xuku2lm",kVAEAm:"x1n2onr6",$$css:true}};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
2
|
+
import type { Closed } from "../../closed";
|
|
3
|
+
type Part<T> = Omit<Closed<T>, "children" | "data-slot" | "role"> & {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
export type BlockquoteProps = Part<ComponentPropsWithRef<"figure">>;
|
|
7
|
+
export type BlockquoteContentProps = Part<ComponentPropsWithRef<"blockquote">>;
|
|
8
|
+
export type BlockquoteAttributionProps = Part<ComponentPropsWithRef<"figcaption">>;
|
|
9
|
+
export declare function Blockquote({ children, ref: forwardedRef, ...rest }: BlockquoteProps): import("react").JSX.Element;
|
|
10
|
+
export declare function BlockquoteContent({ children, ref: forwardedRef, ...rest }: BlockquoteContentProps): import("react").JSX.Element;
|
|
11
|
+
export declare function BlockquoteAttribution({ children, ref: forwardedRef, ...rest }: BlockquoteAttributionProps): import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{props}from"@stylexjs/stylex";import{typeRoles}from"../../styles/typography.styles";import{blockquoteStyles}from"./blockquote.styles";import{jsx as _jsx}from"react/jsx-runtime";function stripReservedProps(attributes){for(const prop of["className","data-slot","role","style"]){Reflect.deleteProperty(attributes,prop);}}export function Blockquote({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("figure",{...rest,"data-slot":"blockquote",ref:forwardedRef,...props(blockquoteStyles.root,typeRoles.body),children:children});}export function BlockquoteContent({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("blockquote",{...rest,"data-slot":"blockquote-content",ref:forwardedRef,...props(blockquoteStyles.content,typeRoles.body),children:children});}export function BlockquoteAttribution({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("figcaption",{...rest,"data-slot":"blockquote-attribution",ref:forwardedRef,...props(blockquoteStyles.attribution,typeRoles.body),children:children});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";export const blockquoteStyles={attribution:{kMwMTN:"x125omll",k7Eaqz:"xeuugli",kHjlTd:"xj0a0fe",$$css:true},content:{kGJrpR:"x1uo4xkn",kVhnKS:"x1t7ytsu",k2ei4v:"xyumdvf",kogj98:"x1ghz6dp",k7Eaqz:"xeuugli",kHjlTd:"xj0a0fe",kZCmMZ:"x14s0xwm",$$css:true},root:{k1xSpc:"xrvj5dj",kOIVth:"xiw8qbs",kogj98:"x1ghz6dp",k7Eaqz:"xeuugli",$$css:true}};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import type { Closed } from "../../closed";
|
|
3
|
+
export type BreadcrumbLinkProps = Closed<useRender.ComponentProps<"a">>;
|
|
4
|
+
export declare function BreadcrumbLink({ children, ref: forwardedRef, render, ...rest }: BreadcrumbLinkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{mergeProps}from"@base-ui/react/merge-props";import{useRender}from"@base-ui/react/use-render";import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{protectRenderSlot}from"../../render-utils";import{breadcrumbStyles}from"./breadcrumb.styles";export function BreadcrumbLink({children,ref:forwardedRef,render,...rest}){return useRender({defaultTagName:"a",props:mergeProps(props(breadcrumbStyles.link,breadcrumbStyles.iconContent),rest,{children:controlLabel(children),"data-slot":"breadcrumb-link"}),ref:forwardedRef,render:protectRenderSlot("breadcrumb-link",render)});}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from "react";
|
|
2
|
+
import type { Closed } from "../../closed";
|
|
3
|
+
export type { BreadcrumbLinkProps } from "./breadcrumb-link";
|
|
4
|
+
export { BreadcrumbLink } from "./breadcrumb-link";
|
|
5
|
+
export type BreadcrumbProps = Closed<ComponentPropsWithRef<"nav">>;
|
|
6
|
+
export type BreadcrumbListProps = Closed<ComponentPropsWithRef<"ol">>;
|
|
7
|
+
export type BreadcrumbItemProps = Closed<ComponentPropsWithRef<"li">>;
|
|
8
|
+
export type BreadcrumbPageProps = Closed<ComponentPropsWithRef<"span">>;
|
|
9
|
+
export type BreadcrumbSeparatorProps = Closed<ComponentPropsWithRef<"li">>;
|
|
10
|
+
export type BreadcrumbEllipsisProps = Closed<ComponentPropsWithRef<"span">>;
|
|
11
|
+
export declare function Breadcrumb({ "aria-label": ariaLabel, children, ref: forwardedRef, ...rest }: BreadcrumbProps): import("react").JSX.Element;
|
|
12
|
+
export declare function BreadcrumbList({ children, ref: forwardedRef, ...rest }: BreadcrumbListProps): import("react").JSX.Element;
|
|
13
|
+
export declare function BreadcrumbItem({ children, ref: forwardedRef, ...rest }: BreadcrumbItemProps): import("react").JSX.Element;
|
|
14
|
+
export declare function BreadcrumbPage({ children, ref: forwardedRef, ...rest }: BreadcrumbPageProps): import("react").JSX.Element;
|
|
15
|
+
export declare function BreadcrumbSeparator({ children, ref: forwardedRef, ...rest }: BreadcrumbSeparatorProps): import("react").JSX.Element;
|
|
16
|
+
export declare function BreadcrumbEllipsis({ children: _children, ref: forwardedRef, ...rest }: BreadcrumbEllipsisProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{IconChevronRight,IconDots}from"../../icons";import{breadcrumbStyles}from"./breadcrumb.styles";import{jsx as _jsx}from"react/jsx-runtime";// biome-ignore lint/performance/noBarrelFile: Keep the link API beside the native breadcrumb anatomy.
|
|
2
|
+
export{BreadcrumbLink}from"./breadcrumb-link";function ChevronIcon(){return/*#__PURE__*/_jsx(IconChevronRight,{"aria-hidden":"true",focusable:"false",...props(breadcrumbStyles.separatorIcon),size:"1em"});}export function Breadcrumb({"aria-label":ariaLabel="breadcrumb",children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("nav",{...rest,"aria-label":ariaLabel,"data-slot":"breadcrumb",ref:forwardedRef,...props(breadcrumbStyles.root),children:children});}export function BreadcrumbList({children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("ol",{...rest,"data-slot":"breadcrumb-list",ref:forwardedRef,...props(breadcrumbStyles.list),children:children});}export function BreadcrumbItem({children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("li",{...rest,"data-slot":"breadcrumb-item",ref:forwardedRef,...props(breadcrumbStyles.item,breadcrumbStyles.iconContent),children:children});}export function BreadcrumbPage({children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("span",{"aria-current":"page",...rest,"data-slot":"breadcrumb-page",ref:forwardedRef,...props(breadcrumbStyles.page,breadcrumbStyles.iconContent),children:controlLabel(children)});}export function BreadcrumbSeparator({children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("li",{"aria-hidden":"true",role:"presentation",...rest,"data-slot":"breadcrumb-separator",ref:forwardedRef,...props(breadcrumbStyles.separator,breadcrumbStyles.iconContent),children:children??/*#__PURE__*/_jsx(ChevronIcon,{})});}export function BreadcrumbEllipsis({children:_children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx("span",{"aria-hidden":"true",role:"presentation",...rest,"data-slot":"breadcrumb-ellipsis",ref:forwardedRef,...props(breadcrumbStyles.ellipsis),children:/*#__PURE__*/_jsx(IconDots,{"aria-hidden":"true",focusable:"false",size:16})});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration}from"../../styles/motion.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,lineHeight}from"../../styles/typography.stylex";export const breadcrumbStyles={ellipsis:{kGNEyG:"x6s0dn4",k1xSpc:"x3nfvp2",kGuDYH:"x1ws78te",kjj79g:"xl56j7k",kLWn49:"x1wrb330",kfSwDN:"x87ps6o",$$css:true},iconContent:{kmuXW:"xsnv01j",kZKoxP:"xgaasie",kzqmXN:"xwe2phr",$$css:true},item:{kGNEyG:"x6s0dn4",k1xSpc:"x3nfvp2",kOIVth:"x13hh4mm",k7Eaqz:"xeuugli",$$css:true},link:{kGNEyG:"x6s0dn4",k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",kaIpWk:"xmfy946",kMwMTN:"xzr6qem x1heor9g",k1xSpc:"x3nfvp2",kOIVth:"x13hh4mm",k7Eaqz:"xeuugli",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1w1ofmy",k3XXqK:"xaatb59",kMeerF:"xm9seqh x1k57tk5",kHjlTd:"xj0a0fe",kybGjl:"x1hl2dhg",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"xt3l3uh",$$css:true},list:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kOIVth:"xp4ho6d",kB88ic:"xe8uvvx",kogj98:"x1ghz6dp",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",$$css:true},page:{kGNEyG:"x6s0dn4",kMwMTN:"x14tvo57",k1xSpc:"x3nfvp2",k63SB2:"x1lo1l87",kOIVth:"x13hh4mm",k7Eaqz:"xeuugli",kHjlTd:"xj0a0fe",$$css:true},root:{kMwMTN:"x125omll",kGuDYH:"xlh8hku",kLWn49:"x2xzzt7",$$css:true},separator:{kGNEyG:"x6s0dn4",kMwMTN:"x125omll",k1xSpc:"x3nfvp2",kUk6DE:"x1okw0bk",kGuDYH:"xlh8hku",kjj79g:"xl56j7k",kfSwDN:"x87ps6o",$$css:true},separatorIcon:{kZKoxP:"x1l36t39",k3aq6I:"x19axjrm x23xq2a x1c071of",kzqmXN:"xcdlrvm",$$css:true}};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{defineVars}from"@stylexjs/stylex";// The brand fill darkens toward this shade on hover and press. Selected
|
|
2
|
+
// states that map the fill to a system color override it to keep it solid.
|
|
3
|
+
export const buttonColors={brandShade:"var(--xo385wq)",__varGroupHash__:"x1a7nltr"};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
:is([data-slot="button"], [data-slot="toolbar-button"])
|
|
2
|
+
> svg:not([data-slot="button-loading-indicator"]) {
|
|
3
|
+
flex-shrink: 0;
|
|
4
|
+
width: 1em;
|
|
5
|
+
height: 1em;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:is([data-slot="button"], [data-slot="toolbar-button"])[data-loading]
|
|
9
|
+
> :not([data-slot="button-loading-indicator"]) {
|
|
10
|
+
opacity: 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* A toolbar scrolls instead of squeezing its buttons onto two lines. */
|
|
14
|
+
[data-slot="toolbar-button"] {
|
|
15
|
+
flex-shrink: 0;
|
|
16
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Button as BaseButton } from "@base-ui/react/button";
|
|
2
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
3
|
+
import "./button.css";
|
|
4
|
+
type BaseButtonProps = ComponentPropsWithRef<typeof BaseButton>;
|
|
5
|
+
type AccessibleIconName = {
|
|
6
|
+
"aria-label": string;
|
|
7
|
+
"aria-labelledby"?: string;
|
|
8
|
+
} | {
|
|
9
|
+
"aria-label"?: string;
|
|
10
|
+
"aria-labelledby": string;
|
|
11
|
+
};
|
|
12
|
+
export type ButtonVariant = "brand" | "default" | "destructive" | "destructive-outline" | "ghost" | "link" | "outline" | "secondary";
|
|
13
|
+
export type ButtonSize = "default" | "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "sm" | "xl" | "xs";
|
|
14
|
+
type SharedButtonProps = Omit<BaseButtonProps, "children" | "className" | "disabled" | "ref" | "style"> & {
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
ref?: BaseButtonProps["ref"];
|
|
19
|
+
variant?: ButtonVariant;
|
|
20
|
+
};
|
|
21
|
+
export type ButtonProps = SharedButtonProps & ({
|
|
22
|
+
size?: Exclude<ButtonSize, "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs">;
|
|
23
|
+
} | ({
|
|
24
|
+
size: "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs";
|
|
25
|
+
} & AccessibleIconName));
|
|
26
|
+
export declare function Button(buttonProps: ButtonProps): import("react").JSX.Element;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{Button as BaseButton}from"@base-ui/react/button";import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{LoadingIndicator}from"../../loading-indicator";import"./button.css";import{buttonStyles}from"./button.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const sizeStyles={default:buttonStyles.defaultSize,icon:buttonStyles.icon,"icon-lg":buttonStyles["icon-lg"],"icon-sm":buttonStyles["icon-sm"],"icon-xl":buttonStyles["icon-xl"],"icon-xs":buttonStyles["icon-xs"],lg:buttonStyles.lg,sm:buttonStyles.sm,xl:buttonStyles.xl,xs:buttonStyles.xs};const loadingIndicatorStyles={brand:buttonStyles.loadingIndicatorBrand,default:buttonStyles.loadingIndicatorDefault,destructive:buttonStyles.loadingIndicatorDestructive,"destructive-outline":buttonStyles.loadingIndicatorDestructiveOutline,ghost:buttonStyles.loadingIndicatorContent,link:buttonStyles.loadingIndicatorContent,outline:buttonStyles.loadingIndicatorContent,secondary:buttonStyles.loadingIndicatorSecondary};const interactionStyles={brand:buttonStyles.interactionBrand,default:buttonStyles.interactionFilled,destructive:buttonStyles.interactionDestructive,"destructive-outline":buttonStyles.interactionDestructiveOutline,ghost:buttonStyles.interactionGhost,link:buttonStyles.interactionLink,outline:buttonStyles.interactionOutline,secondary:buttonStyles.interactionSecondary};function getButtonType(render,type){return render?type:type??"button";}function getLoadingIndicatorStyle(variant){return loadingIndicatorStyles[variant];}function getButtonInteractionStyles(isDisabled,variant){return isDisabled?[buttonStyles.disabled]:[buttonStyles.press,interactionStyles[variant]];}export function Button(buttonProps){const{children,disabled,loading=false,ref:forwardedRef,size="default",variant="default",...rest}=buttonProps;const isLoading=loading;const isDisabled=Boolean(disabled||isLoading);const sizeStyle=sizeStyles[size];const loadingIndicatorStyle=getLoadingIndicatorStyle(variant);const stateStyles=getButtonInteractionStyles(isDisabled,variant);const{render,type,...nativeProps}=rest;return/*#__PURE__*/_jsxs(BaseButton,{"data-slot":"button",...nativeProps,"aria-busy":isLoading||undefined,"data-loading":isLoading?"":undefined,disabled:isDisabled,focusableWhenDisabled:buttonProps.focusableWhenDisabled??isLoading,nativeButton:buttonProps.nativeButton,ref:forwardedRef,render:render,type:getButtonType(render,type),...props(buttonStyles.base,buttonStyles[variant],sizeStyle,buttonStyles.loading,isLoading&&buttonStyles.loadingContent,...stateStyles),children:[controlLabel(children),isLoading?/*#__PURE__*/_jsx(LoadingIndicator,{"aria-hidden":"true","data-slot":"button-loading-indicator",focusable:false,indicatorStyles:[buttonStyles.loadingIndicator,loadingIndicatorStyle]}):null]});}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/dimensions.stylex";import{controlSize,glyphSize}from"../../styles/dimensions.stylex";import"../../styles/fonts.stylex";import{fonts}from"../../styles/fonts.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion,focusOutline,opacity}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing,pressSurface}from"../../styles/motion.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,letterSpacing,lineHeight}from"../../styles/typography.stylex";import"./button-colors.stylex";import{buttonColors}from"./button-colors.stylex";const HL="inset 0 1px 0 oklch(1 0 0 / 0.16)";const HLB="inset 0 1px 0 oklch(1 0 0 / 0.2)";// Labels trim to their cap box. A wrapped label needs the trimmed leading
|
|
2
|
+
// back as padding; a single line keeps the size padding.
|
|
3
|
+
const wrapLeading="calc((1lh - 1cap) / 2)";const ghostInset={hover:"2px",press:"-1px",rest:"4px"};export const buttonStyles={base:{kfXFYZ:"xhkbipy",kBjukC:"xjp5e1j",kKGWhT:"x10ojri0",kgXx4x:"x3glmed",kCyh2J:"xib5pzt",kj4x2v:"x1fo1fc9",k5Ohv7:"x3kfev1",kQmYQc:"xtql2tq",kgeoSG:"x1cpjm7i",kFcpXp:"x1h5trzc",km8f2m:"xkk1bqk",kEoFBp:"x1hmns74",kKXxxB:"x91iiuu",k7KCAZ:"x16nmtoe",kqUdNP:"x1vaxkjw",kxmVGU:"xy5mcqj",kGNEyG:"x6s0dn4",kSGwAc:"xamitd3",k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",kWkggS:"xjbqb8w",kVAM5u:"x9r1u3d",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kB7OPa:"x9f619",kkrTdU:"x1s07b3s x1ypdohk",k1xSpc:"x3nfvp2",kwnvtZ:"x1a02dak",kMv6JI:"xjb2p0i",kGuDYH:"x12ama9c",kC21eY:"x2vx8kg",k63SB2:"x1lo1l87",kOIVth:"xp4ho6d",kHBbk8:"xc8icb0",kjj79g:"xl56j7k",kLWn49:"x1wrb330",ks0D6T:"x193iq5w",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x7jjmpn x1w1ofmy",k3XXqK:"x9v5kkp xzc55om",kMeerF:"xm9seqh x1vhx2qj",kHjlTd:"x1mzt3pk",kVAEAm:"x1n2onr6",kybGjl:"x1hl2dhg",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x6ksxqd",kAMwcw:"xvhdtae",kfSwDN:"x87ps6o",$$css:true},brand:{kLkRvE:"x5f8fso",kfXFYZ:"x12s1v33",ktNmms:"x1nk83oa",kMwMTN:"xa34c4n",$$css:true},default:{kLkRvE:"x7flfcv",kfXFYZ:"xpf34ut",ktNmms:"xyo47r1",kMwMTN:"x1oiqaqn",kSiTet:"x1hc1fzr",$$css:true},defaultSize:{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x12ama9c",k63SB2:"x1lo1l87",kAzted:"x1atkrcx",k8WAf4:"xwvz0cp",kg3NbH:"x1mw7yl3",$$css:true},destructive:{kLkRvE:"x1iv8s4q",kfXFYZ:"x1fzqy7e",ktNmms:"xyo47r1",kMwMTN:"x192wzsp",kSiTet:"x1hc1fzr",$$css:true},"destructive-outline":{kLkRvE:"x1p58mzm",kfXFYZ:"x1fzqy7e",ktNmms:"xtf8gdx",kMwMTN:"x1rncs7t",kSiTet:"x1hc1fzr",$$css:true},disabled:{kkrTdU:"x1h6gzvc",kSiTet:"xd57v9i",$$css:true},ghost:{kLkRvE:"xtr8pbw",kFcpXp:"x1dxl39w",k5QlbN:"x124lp2h",kMwMTN:"x14tvo57",$$css:true},icon:{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x15hey71",kZKoxP:"x1wtl264",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",kzqmXN:"xkpcdi8",$$css:true},"icon-lg":{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x15hey71",kZKoxP:"x1nwj9bq",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",kzqmXN:"x1kmmwjt",$$css:true},"icon-sm":{kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",kGuDYH:"xopw8l1",kZKoxP:"x1sscbzi",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",kzqmXN:"x14pcf9u",$$css:true},"icon-xl":{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x1cpzgpn",kZKoxP:"x155ebd8",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",kzqmXN:"x1idgsbn",$$css:true},"icon-xs":{kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",kGuDYH:"x1eddukg",kZKoxP:"x15ja3qx",kAzted:"x2lwn1j",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",kzqmXN:"xdr7e86",$$css:true},interactionBrand:{kLkRvE:"x1sattiy x1wmmqb1 x5f8fso",ktNmms:"xmzakdu xf6rpzq x1nk83oa",$$css:true},interactionDestructive:{kLkRvE:"xuc6v1o x1rguitc x1iv8s4q",ktNmms:"xmzakdu x11vu4nf xyo47r1",$$css:true},interactionDestructiveOutline:{kLkRvE:"xjhthu2 x12pxzgx x1p58mzm",ktNmms:"xmzakdu xqay70b xtf8gdx",$$css:true},interactionFilled:{kLkRvE:"x1id3q68 x1y8g2bh x7flfcv",ktNmms:"xmzakdu x11vu4nf xyo47r1",$$css:true},interactionGhost:{kFcpXp:"x1lci40m x1iylmqd x1dxl39w",k5QlbN:"x12vk50i x1ldp1s3 x124lp2h",kKXxxB:"x1htb302 x1wpd706 x91iiuu",kqUdNP:"x14e9nd4 x1vaxkjw",$$css:true},interactionLink:{kybGjl:"x1a2ycjq x1hl2dhg",$$css:true},interactionOutline:{kLkRvE:"xvhw8o9 x1xziqyu x1p58mzm",kfXFYZ:"x1b5ku4a x12gxl8w x15a8tab",ktNmms:"xmzakdu xqay70b xtf8gdx",$$css:true},interactionSecondary:{kLkRvE:"xvhw8o9 x1xziqyu x1wdhtdm",$$css:true},lg:{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x12ama9c",k63SB2:"x1lo1l87",kAzted:"x12eq223",k8WAf4:"x14okotz",kg3NbH:"x128qzdt",$$css:true},link:{kWkggS:"xjbqb8w",kVAM5u:"x9r1u3d",kMwMTN:"x14tvo57",kybGjl:"x1hl2dhg",kcSHmL:"xwsnend",$$css:true},loading:{kVAEAm:"x1n2onr6",$$css:true},loadingContent:{kMwMTN:"x19co3pv",$$css:true},loadingIndicator:{kZKoxP:"x1a05dn3",kpwlN0:"x10a8y8t",kogj98:"x1bpp3o7",kVAEAm:"x10l6tqk",kzqmXN:"xmpb2e4",$$css:true},loadingIndicatorBrand:{kMwMTN:"xa34c4n",$$css:true},loadingIndicatorContent:{kMwMTN:"x14tvo57",$$css:true},loadingIndicatorDefault:{kMwMTN:"x1oiqaqn",$$css:true},loadingIndicatorDestructive:{kMwMTN:"x192wzsp",$$css:true},loadingIndicatorDestructiveOutline:{kMwMTN:"x1rncs7t",$$css:true},loadingIndicatorSecondary:{kMwMTN:"xbb0na1",$$css:true},outline:{kLkRvE:"x1p58mzm",kfXFYZ:"x15a8tab",ktNmms:"xtf8gdx",kMwMTN:"x14tvo57",$$css:true},press:{kFcpXp:"xcrthc2 x1h5trzc",kKXxxB:"x1htb302 x1wpd706 x91iiuu",kqUdNP:"x14e9nd4 x1vaxkjw",$$css:true},secondary:{kLkRvE:"x1wdhtdm",kMwMTN:"xbb0na1",$$css:true},sm:{kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",kGuDYH:"xlh8hku",k63SB2:"xuku2lm",kOIVth:"x13hh4mm",kLWn49:"x2xzzt7",kAzted:"x1vigsvi",k8WAf4:"x11k7c67",kg3NbH:"x1mw7yl3",$$css:true},xl:{kT0f0o:"x14h6bio",kVL7Gh:"x1r18r8a",kfmiAY:"x3q61c4",krdFHd:"x1p0g4lk",kGuDYH:"x12ama9c",k63SB2:"x1lo1l87",kAzted:"xe1x6jq",k8WAf4:"x1qm7hpq",kg3NbH:"x128qzdt",$$css:true},xs:{kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",kGuDYH:"x1ws78te",k63SB2:"xuku2lm",kOIVth:"x13hh4mm",kb6lSQ:"xdee7k9",kLWn49:"x76y1r9",kAzted:"x15j2gbd",k8WAf4:"x1n27xti",kg3NbH:"xr83e9t",$$css:true}};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/* Triggers rendered as Buttons (Menu, Popover, Dialog) carry their own slot,
|
|
2
|
+
such as menu-trigger, so they join the group too. First and last are
|
|
3
|
+
counted among items only: an open popup inserts hidden focus guards. */
|
|
4
|
+
[data-slot="button-group"]
|
|
5
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]) {
|
|
6
|
+
flex-shrink: 0;
|
|
7
|
+
align-self: stretch !important;
|
|
8
|
+
white-space: nowrap;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-slot="button-group"]
|
|
12
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):focus-visible {
|
|
13
|
+
z-index: 1;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[data-slot="button-group"]
|
|
17
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
18
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])::after {
|
|
19
|
+
position: absolute;
|
|
20
|
+
pointer-events: none;
|
|
21
|
+
content: "";
|
|
22
|
+
background-color: var(--mizen-joined-divider-color);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
26
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
27
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])::after {
|
|
28
|
+
inset-block: var(--mizen-joined-divider-inset);
|
|
29
|
+
inset-inline-start: 0;
|
|
30
|
+
inline-size: 1px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
34
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
35
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])::after {
|
|
36
|
+
inset-block-start: 0;
|
|
37
|
+
inset-inline: var(--mizen-joined-divider-inset);
|
|
38
|
+
block-size: 1px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* System-owned attached geometry overrides StyleX's atomic radius priority. */
|
|
42
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
43
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
44
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"]) {
|
|
45
|
+
margin-inline-start: -1px;
|
|
46
|
+
border-inline-start-color: transparent !important;
|
|
47
|
+
border-start-start-radius: 0 !important;
|
|
48
|
+
border-end-start-radius: 0 !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
52
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):has(
|
|
53
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])
|
|
54
|
+
) {
|
|
55
|
+
border-inline-end-color: transparent !important;
|
|
56
|
+
border-start-end-radius: 0 !important;
|
|
57
|
+
border-end-end-radius: 0 !important;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
61
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
62
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"]) {
|
|
63
|
+
margin-block-start: -1px;
|
|
64
|
+
border-block-start-color: transparent !important;
|
|
65
|
+
border-start-start-radius: 0 !important;
|
|
66
|
+
border-start-end-radius: 0 !important;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
70
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):has(
|
|
71
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])
|
|
72
|
+
) {
|
|
73
|
+
border-block-end-color: transparent !important;
|
|
74
|
+
border-end-start-radius: 0 !important;
|
|
75
|
+
border-end-end-radius: 0 !important;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Joined edges also hide the surface layer's border. */
|
|
79
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
80
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
81
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])::before {
|
|
82
|
+
border-inline-start-color: transparent !important;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
86
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):has(
|
|
87
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])
|
|
88
|
+
)::before {
|
|
89
|
+
border-inline-end-color: transparent !important;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
93
|
+
> :is([data-slot="button"], [data-slot$="-trigger"])
|
|
94
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])::before {
|
|
95
|
+
border-block-start-color: transparent !important;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
99
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):has(
|
|
100
|
+
~ :is([data-slot="button"], [data-slot$="-trigger"])
|
|
101
|
+
)::before {
|
|
102
|
+
border-block-end-color: transparent !important;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Pressing a joined button contracts only across the group, so the shared
|
|
106
|
+
outline stays continuous along it. */
|
|
107
|
+
[data-slot="button-group"]:where([data-orientation="horizontal"])
|
|
108
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):active::before {
|
|
109
|
+
inset-inline: -1px !important;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
[data-slot="button-group"]:where([data-orientation="vertical"])
|
|
113
|
+
> :is([data-slot="button"], [data-slot$="-trigger"]):active::before {
|
|
114
|
+
inset-block: -1px !important;
|
|
115
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactElement } from "react";
|
|
2
|
+
import "./button-group.css";
|
|
3
|
+
import type { Closed } from "../../closed";
|
|
4
|
+
export type ButtonGroupOrientation = "horizontal" | "vertical";
|
|
5
|
+
export type ButtonGroupProps = Omit<Closed<ComponentPropsWithRef<"div">>, "data-orientation" | "data-slot" | "role"> & {
|
|
6
|
+
orientation?: ButtonGroupOrientation;
|
|
7
|
+
};
|
|
8
|
+
export declare function ButtonGroup({ children, orientation, ref: forwardedRef, ...rest }: ButtonGroupProps): ReactElement;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference path="../button/button.css.d.ts" />
|
|
2
|
+
import{props}from"@stylexjs/stylex";import"./button-group.css";import{buttonGroupStyles}from"./button-group.styles";import{jsx as _jsx}from"react/jsx-runtime";export function ButtonGroup({children,orientation="horizontal",ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"className");Reflect.deleteProperty(rest,"data-orientation");Reflect.deleteProperty(rest,"data-slot");Reflect.deleteProperty(rest,"role");Reflect.deleteProperty(rest,"style");return(/*#__PURE__*/// biome-ignore lint/a11y/useSemanticElements: This groups actions rather than form fields.
|
|
3
|
+
_jsx("div",{...rest,"data-orientation":orientation,"data-slot":"button-group",ref:forwardedRef,role:"group",...props(buttonGroupStyles.base,orientation==="vertical"?buttonGroupStyles.vertical:buttonGroupStyles.horizontal),children:children}));}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/interaction.stylex";import{borderWidth,focus}from"../../styles/interaction.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";export const buttonGroupStyles={base:{"--mizen-joined-divider-color":"x1iscvl","--mizen-joined-divider-inset":"x1h9cdsn",kGNEyG:"x1qjc9v5",k1xSpc:"x3nfvp2",ks0D6T:"x193iq5w",k7Eaqz:"xeuugli",kzqmXN:"xeq5yr9",$$css:true},horizontal:{kXwgrk:"x1q0g3np",kXHlph:"xw2csxc",k8WAf4:"xzvoi89",kg3NbH:"x1ya0gd1",katHQp:"x1g2bcle",$$css:true},vertical:{kXwgrk:"xdt5ytf",$$css:true}};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{DayButton as DayPickerDayButton,MonthGrid as DayPickerMonthGrid,NextMonthButton as DayPickerNextMonthButton,PreviousMonthButton as DayPickerPreviousMonthButton}from"@daypicker/react";import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{IconChevronDown,IconChevronLeft,IconChevronRight,IconChevronUp}from"../../icons";import{buttonStyles}from"../button/button.styles";import{calendarStyles}from"./calendar.styles";import{useCalendarGridContext}from"./calendar-context";import{CalendarMonthsDropdown,CalendarYearsDropdown}from"./calendar-dropdowns";import{jsx as _jsx}from"react/jsx-runtime";const chevronIcons={down:IconChevronDown,left:IconChevronLeft,right:IconChevronRight,up:IconChevronUp};function CalendarChevron({disabled,orientation="right",size=16}){const Icon=chevronIcons[orientation];return/*#__PURE__*/_jsx(Icon,{"aria-hidden":"true","data-disabled":disabled?"":undefined,"data-orientation":orientation,"data-slot":"calendar-chevron",focusable:false,...props(calendarStyles.chevron),size:size});}function CalendarPreviousMonthButton(buttonProps){return/*#__PURE__*/_jsx(DayPickerPreviousMonthButton,{...buttonProps,"data-slot":"calendar-previous",...getNavigationStyles(Boolean(buttonProps.disabled||buttonProps["aria-disabled"]))});}function CalendarNextMonthButton(buttonProps){return/*#__PURE__*/_jsx(DayPickerNextMonthButton,{...buttonProps,"data-slot":"calendar-next",...getNavigationStyles(Boolean(buttonProps.disabled||buttonProps["aria-disabled"]))});}function CalendarMonthGrid(gridProps){const context=useCalendarGridContext();const baseAriaLabel=gridProps["aria-label"];let combinedAriaLabel=baseAriaLabel;if(context?.ariaLabel){combinedAriaLabel=baseAriaLabel?`${context.ariaLabel}, ${baseAriaLabel}`:context.ariaLabel;}return/*#__PURE__*/_jsx(DayPickerMonthGrid,{...gridProps,"aria-describedby":context?.ariaDescribedBy,"aria-invalid":context?.invalid?true:undefined,"aria-label":combinedAriaLabel,"aria-labelledby":context?.ariaLabelledBy,"aria-readonly":context?.readOnly?true:undefined});}export const calendarComponents={Chevron:CalendarChevron,DayButton:CalendarDayButton,MonthGrid:CalendarMonthGrid,MonthsDropdown:CalendarMonthsDropdown,NextMonthButton:CalendarNextMonthButton,PreviousMonthButton:CalendarPreviousMonthButton,YearsDropdown:CalendarYearsDropdown};function getNavigationStyles(disabled){return props(buttonStyles.base,buttonStyles.outline,buttonStyles["icon-sm"],buttonStyles.loading,calendarStyles.navigationButton,disabled?buttonStyles.disabled:buttonStyles.press,!disabled&&buttonStyles.interactionOutline);}// Ghost hides the press surface at rest; selected days show it filled.
|
|
2
|
+
function getDaySurfaceStyle(selected){return selected?calendarStyles.selectedDay:buttonStyles.ghost;}function getDayInteractionStyles(interactive,selected,today){const quietInteraction=today?calendarStyles.todayInteraction:buttonStyles.interactionGhost;return interactive?[buttonStyles.press,selected?buttonStyles.interactionBrand:quietInteraction]:[];}function CalendarDayButton({children,modifiers,...buttonProps}){const readOnly=useCalendarGridContext()?.readOnly;const selected=modifiers.selected&&!modifiers.range_middle;const interactive=!(modifiers.disabled||readOnly);return/*#__PURE__*/_jsx(DayPickerDayButton,{...buttonProps,modifiers:modifiers,...props(buttonStyles.base,getDaySurfaceStyle(Boolean(selected)),buttonStyles.icon,calendarStyles.dayButton,modifiers.today&&calendarStyles.todayButton,selected&&buttonStyles.brand,...getDayInteractionStyles(interactive,Boolean(selected),Boolean(modifiers.today)),modifiers.today&&calendarStyles.todayIndicator,modifiers.today&&selected&&calendarStyles.todayIndicatorSelected,readOnly&&calendarStyles.readOnly),children:controlLabel(children)});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createContext,useContext}from"react";export const CalendarGridContext=createContext(null);export function useCalendarGridContext(){return useContext(CalendarGridContext);}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Field as BaseField}from"@base-ui/react/field";import{useDayPicker}from"@daypicker/react";import{props}from"@stylexjs/stylex";import{useCallback}from"react";import{Select,SelectItem,SelectPopup,SelectTrigger,SelectValue}from"../select/select";import{calendarStyles}from"./calendar.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function CalendarDropdown({part,options=[],value,disabled,"aria-label":label}){const{months,goToMonth,dayPickerProps}=useDayPicker();const displayedMonth=months[0]?.date;const monthLabel=displayedMonth&&new Intl.DateTimeFormat(dayPickerProps.locale?.code??"en-US",{month:"short"}).format(displayedMonth);const items=options.map(option=>({label:option.label,value:option.value}));const changeMonth=useCallback(nextValue=>{if(nextValue===null||!displayedMonth){return;}const nextMonth=new Date(displayedMonth);nextMonth.setDate(1);if(part==="month"){nextMonth.setMonth(nextValue);}else{nextMonth.setFullYear(nextValue);}goToMonth(nextMonth);},[displayedMonth,goToMonth,part]);// Its own field root: an enclosing Field must not label or id this select.
|
|
2
|
+
return/*#__PURE__*/_jsx(BaseField.Root,{...props(calendarStyles.dropdown),children:/*#__PURE__*/_jsxs(Select,{disabled:disabled,items:items,onValueChange:changeMonth,value:Number(value),children:[/*#__PURE__*/_jsx(SelectTrigger,{"aria-label":label,size:"sm",children:/*#__PURE__*/_jsx(SelectValue,{children:part==="month"?monthLabel:null})}),/*#__PURE__*/_jsx(SelectPopup,{alignItemWithTrigger:false,children:options.map(option=>/*#__PURE__*/_jsx(SelectItem,{disabled:option.disabled,value:option.value,children:option.label},option.value))})]})});}export function CalendarMonthsDropdown(dropdownProps){return/*#__PURE__*/_jsx(CalendarDropdown,{...dropdownProps,part:"month"});}export function CalendarYearsDropdown(dropdownProps){return/*#__PURE__*/_jsx(CalendarDropdown,{...dropdownProps,part:"year"});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{props}from"@stylexjs/stylex";import{calendarStyles}from"./calendar.styles";export function normalizeCalendarRange(range){return range?.from?{from:range.from,to:range.to}:undefined;}export function buildDisabledMatchers(disabled,minValue,maxValue,isDateUnavailable){if(disabled){return[true];}const matchers=[];if(minValue){matchers.push({before:minValue});}if(maxValue){matchers.push({after:maxValue});}if(isDateUnavailable){matchers.push(isDateUnavailable);}return matchers;}export function getCalendarClassNames(mode,readOnly){return{caption_label:props(calendarStyles.captionLabel).className,day:props(calendarStyles.day).className,day_button:props(calendarStyles.dayButton,readOnly&&calendarStyles.dayButtonReadOnly).className,disabled:props(calendarStyles.dayDisabled).className,dropdowns:props(calendarStyles.dropdowns).className,focused:"",month:props(calendarStyles.month).className,month_caption:props(calendarStyles.monthCaption).className,month_grid:props(calendarStyles.monthGrid).className,months:props(calendarStyles.months).className,nav:props(calendarStyles.nav).className,outside:props(calendarStyles.outside).className,range_end:props(calendarStyles.rangeEnd).className,range_middle:props(calendarStyles.rangeMiddle).className,range_start:props(calendarStyles.rangeStart).className,root:props(calendarStyles.dayPickerRoot).className,selected:props(mode==="range"?calendarStyles.selectedRange:calendarStyles.selected).className,today:props(calendarStyles.today).className,week:props(calendarStyles.week).className,weekday:props(calendarStyles.weekday).className,weekdays:props(calendarStyles.weekdays).className,weeks:props(calendarStyles.weeks).className};}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { CalendarProps } from "./calendar.types";
|
|
3
|
+
export type { CalendarLocale, CalendarProps, CalendarRangeProps, CalendarRangeValue, CalendarSingleProps, CalendarVariant, } from "./calendar.types";
|
|
4
|
+
export declare function Calendar(calendarProps: CalendarProps): ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";import{DayPicker}from"@daypicker/react";import{props}from"@stylexjs/stylex";import{useCallback,useMemo,useState}from"react";import{calendarStyles}from"./calendar.styles";import{calendarComponents}from"./calendar-components";import{CalendarGridContext}from"./calendar-context";import{buildDisabledMatchers,getCalendarClassNames,normalizeCalendarRange}from"./calendar-utils";import{jsx as _jsx}from"react/jsx-runtime";function SingleCalendarView(singleProps){const[isControlled]=useState(()=>Object.hasOwn(singleProps,"value"));const[uncontrolled,setUncontrolled]=useState(singleProps.defaultValue);const current=isControlled?singleProps.value:uncontrolled;const{autoFocus,defaultMonth=singleProps.defaultValue??singleProps.value,dir,disabled=false,isDateUnavailable,locale,maxValue,minValue,month,onMonthChange,onValueChange,readOnly=false,required,weekStartsOn}=singleProps;const disabledMatchers=useMemo(()=>buildDisabledMatchers(disabled,minValue,maxValue,isDateUnavailable),[disabled,minValue,maxValue,isDateUnavailable]);const handleSelect=useCallback(selected=>{if(readOnly||disabled){return;}if(!isControlled){setUncontrolled(selected);}onValueChange?.(selected);},[disabled,isControlled,onValueChange,readOnly]);const classNames=useMemo(()=>getCalendarClassNames("single",readOnly),[readOnly]);return/*#__PURE__*/_jsx(DayPicker,{autoFocus:autoFocus,captionLayout:singleProps.captionLayout,classNames:classNames,components:calendarComponents,defaultMonth:defaultMonth,dir:dir,disabled:disabledMatchers,disableNavigation:disabled,endMonth:singleProps.endMonth,fixedWeeks:true,locale:locale,mode:"single",month:month,onMonthChange:onMonthChange,onSelect:handleSelect,required:required,selected:current,showOutsideDays:true,startMonth:singleProps.startMonth,weekStartsOn:weekStartsOn});}function RangeCalendarView(rangeProps){const[isControlled]=useState(()=>Object.hasOwn(rangeProps,"value"));const[uncontrolled,setUncontrolled]=useState(rangeProps.defaultValue);const current=isControlled?rangeProps.value:uncontrolled;const{autoFocus,defaultMonth=rangeProps.defaultValue?.from??rangeProps.value?.from,dir,disabled=false,isDateUnavailable,locale,maxNights,maxValue,minNights,minValue,resetOnSelect,month,onMonthChange,onValueChange,readOnly=false,required,weekStartsOn}=rangeProps;const disabledMatchers=useMemo(()=>buildDisabledMatchers(disabled,minValue,maxValue,isDateUnavailable),[disabled,minValue,maxValue,isDateUnavailable]);const handleSelect=useCallback(range=>{if(readOnly||disabled){return;}const nextRange=normalizeCalendarRange(range);if(!isControlled){setUncontrolled(nextRange);}onValueChange?.(nextRange);},[disabled,isControlled,onValueChange,readOnly]);const classNames=useMemo(()=>getCalendarClassNames("range",readOnly),[readOnly]);return/*#__PURE__*/_jsx(DayPicker,{autoFocus:autoFocus,captionLayout:rangeProps.captionLayout,classNames:classNames,components:calendarComponents,defaultMonth:defaultMonth,dir:dir,disabled:disabledMatchers,disableNavigation:disabled,endMonth:rangeProps.endMonth,excludeDisabled:true,fixedWeeks:true,locale:locale,max:maxNights,min:minNights,mode:"range",month:month,onMonthChange:onMonthChange,onSelect:handleSelect,required:required,resetOnSelect:resetOnSelect,selected:current?{from:current.from,to:current.to}:undefined,showOutsideDays:true,startMonth:rangeProps.startMonth,weekStartsOn:weekStartsOn});}function getCalendarStyles(disabled,readOnly,invalid,variant){return props(calendarStyles.root,variant==="embedded"&&calendarStyles.rootEmbedded,disabled&&calendarStyles.disabled,readOnly&&calendarStyles.readOnly,invalid&&calendarStyles.invalid);}function getWrapperProps(calendarProps){const{disabled,invalid,readOnly,ref,variant}=calendarProps;const styleProps=getCalendarStyles(disabled,readOnly,invalid,variant);return{...styleProps,"data-disabled":disabled?"":undefined,"data-invalid":invalid?"":undefined,"data-readonly":readOnly?"":undefined,"data-slot":"calendar",ref};}export function Calendar(calendarProps){const wrapperProps=getWrapperProps(calendarProps);const content=calendarProps.mode==="single"?/*#__PURE__*/_jsx(SingleCalendarView,{...calendarProps}):/*#__PURE__*/_jsx(RangeCalendarView,{...calendarProps});const{"aria-describedby":ariaDescribedBy,"aria-label":ariaLabel,"aria-labelledby":ariaLabelledBy,invalid,readOnly}=calendarProps;const gridContextValue=useMemo(()=>({ariaDescribedBy,ariaLabel,ariaLabelledBy,invalid,readOnly}),[ariaDescribedBy,ariaLabel,ariaLabelledBy,invalid,readOnly]);return/*#__PURE__*/_jsx(CalendarGridContext.Provider,{value:gridContextValue,children:/*#__PURE__*/_jsx("div",{...wrapperProps,children:content})});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,forcedColorAdjust,opacity}from"../../styles/interaction.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,lineHeight}from"../../styles/typography.stylex";import"../button/button-colors.stylex";import{buttonColors}from"../button/button-colors.stylex";export const calendarStyles={captionLabel:{kMwMTN:"x14tvo57",kGuDYH:"x12ama9c",kcqcaj:"xss6m8b",k63SB2:"x1lo1l87",$$css:true},chevron:{k1xSpc:"x1rg5ohu",kmuXW:"x2lah0s",$$css:true},day:{kcqcaj:"xss6m8b",kZKoxP:"xk8t5le xgbny6f",kmVPX3:"x1717udv",k9WMMc:"x2b8uid",kzqmXN:"x1s4ejo4 x24rnby",$$css:true},dayButton:{kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",kMwMTN:"x1heor9g",kGuDYH:"x12ama9c",k63SB2:"x1lo1l87",kZKoxP:"xk8t5le",kVAEAm:"x1n2onr6",kzqmXN:"x1s4ejo4",$$css:true},dayButtonReadOnly:{kWkggS:"x7hnrrc xjbqb8w",kkrTdU:"xt0e3qv",$$css:true},dayDisabled:{kkrTdU:"x1h6gzvc",kSiTet:"xd57v9i",$$css:true},dayPickerRoot:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"xp4ho6d",kVAEAm:"x1n2onr6",$$css:true},disabled:{kSiTet:"xd57v9i",kfzvcC:"x47corl",$$css:true},dropdown:{kmuXW:"x2lah0s",kzqmXN:"xex909m",$$css:true},dropdowns:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kOIVth:"x13hh4mm",kg3NbH:"xw4edqq",$$css:true},invalid:{kVAM5u:"xpkwx3w",$$css:true},month:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"xiw8qbs",$$css:true},monthCaption:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kZKoxP:"xk8t5le",kjj79g:"xl56j7k",kVAEAm:"x1n2onr6",$$css:true},monthGrid:{kLvRdT:"x1mwwwfo",kzqmXN:"xh8yej3",$$css:true},months:{k5JduY:"x1s928wv",krxQOp:"xj0ejgz",kJfJEs:"xbg1tna",k1xSpc:"x78zum5",kOIVth:"xiw8qbs",$$css:true},nav:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kkqhue:"x17y0mx6",kjj79g:"x1qughib",kfzvcC:"x47corl",kVAEAm:"x10l6tqk",kY2c9j:"x1vjfegm",$$css:true},navigationButton:{kfzvcC:"x67bb7w",$$css:true},outside:{kMwMTN:"x3e2zu4",$$css:true},rangeEnd:{kT0f0o:"x1hia2b7 x12i5mvm",kfmiAY:"x2dv6dr xfafljk",kMwMTN:"xdnyjpo",kAXs8y:"xg7vh0z",$$css:true},rangeMiddle:{kWkggS:"x16d8uok",kMwMTN:"x14tvo57",kAXs8y:"xg7vh0z",$$css:true},rangeStart:{kVL7Gh:"x1dz734k xmgm6ly",krdFHd:"xn5rixj x9koimc",kMwMTN:"xdnyjpo",kAXs8y:"xg7vh0z",$$css:true},readOnly:{kkrTdU:"xt0e3qv",$$css:true},root:{kWkggS:"xui3q9s",kVAM5u:"x155xxfk",kaIpWk:"x1yl01a3",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"x10ilepr",kB7OPa:"x9f619",kMwMTN:"x14tvo57",k1xSpc:"x1rg5ohu",ks0D6T:"x193iq5w",kXHlph:"xw2csxc",k8WAf4:"x391bbb",kg3NbH:"x1ya0gd1 x7e4cbm",katHQp:"x1g2bcle",kfSwDN:"x87ps6o",$$css:true},rootEmbedded:{kWkggS:"xjbqb8w",kVAM5u:"x9r1u3d",kaIpWk:"x2u8bby",kMzoRj:"xc342km",$$css:true},selected:{kMwMTN:"xa34c4n",$$css:true},selectedDay:{"--x1ijwtyn":"x10u7h9a","--x1d0vy2r":"x1x29psc","--xo385wq":"xulyzvn",kAXs8y:"xg7vh0z",$$css:true},selectedRange:{kWkggS:"x1g77xhq x16d8uok",kMwMTN:"x12fxpw x14tvo57",k63SB2:"xuku2lm",kAXs8y:"xg7vh0z",$$css:true},today:{k63SB2:"x1citsaf",$$css:true},todayButton:{kWkggS:"x16d8uok",kMwMTN:"xdnyjpo",k63SB2:"xuku2lm",$$css:true},todayIndicator:{ks3ayO:"x14ag2g1",kUfP38:"x2coff9",k8Iv0R:"x1tm3xe0",k5JduY:"x1s928wv",k4zj60:"xzgp08k",kc1e00:"x19pgp2l",kloYau:"x2q1x1w",kwXMNM:"x1j6awrg",kkgrvl:"x11lu4s1",$$css:true},todayIndicatorSelected:{ks3ayO:"x3awtke",$$css:true},todayInteraction:{kWkggS:"x1a63spv xj8gswt x16d8uok",$$css:true},week:{k1xSpc:"xf5m44m",$$css:true},weekday:{kMwMTN:"x125omll",kGuDYH:"xlh8hku",k63SB2:"x1lo1l87",kZKoxP:"xettwda",kLWn49:"x2xzzt7",k9WMMc:"x2b8uid",kzqmXN:"x1s4ejo4 x24rnby",$$css:true},weekdays:{kL6WhQ:"x9rbyu3",kfdmCh:"x1q0q8m5",kt9PQ7:"x13k63ub",$$css:true},weeks:{kogj98:"x1ghz6dp",$$css:true}};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { DayPickerLocale } from "@daypicker/react";
|
|
2
|
+
import type { ComponentPropsWithRef } from "react";
|
|
3
|
+
export type CalendarLocale = DayPickerLocale;
|
|
4
|
+
export type CalendarVariant = "default" | "embedded";
|
|
5
|
+
export interface CalendarRangeValue {
|
|
6
|
+
readonly from: Date;
|
|
7
|
+
readonly to?: Date | undefined;
|
|
8
|
+
}
|
|
9
|
+
export interface CalendarCommonProps {
|
|
10
|
+
readonly "aria-describedby"?: string | undefined;
|
|
11
|
+
readonly "aria-label"?: string | undefined;
|
|
12
|
+
readonly "aria-labelledby"?: string | undefined;
|
|
13
|
+
autoFocus?: boolean | undefined;
|
|
14
|
+
captionLayout?: "label" | "dropdown" | undefined;
|
|
15
|
+
defaultMonth?: Date | undefined;
|
|
16
|
+
dir?: "ltr" | "rtl" | undefined;
|
|
17
|
+
disabled?: boolean | undefined;
|
|
18
|
+
endMonth?: Date | undefined;
|
|
19
|
+
invalid?: boolean | undefined;
|
|
20
|
+
isDateUnavailable?: ((date: Date) => boolean) | undefined;
|
|
21
|
+
locale?: CalendarLocale | undefined;
|
|
22
|
+
maxValue?: Date | undefined;
|
|
23
|
+
minValue?: Date | undefined;
|
|
24
|
+
month?: Date | undefined;
|
|
25
|
+
onMonthChange?: ((month: Date) => void) | undefined;
|
|
26
|
+
readOnly?: boolean | undefined;
|
|
27
|
+
ref?: ComponentPropsWithRef<"div">["ref"] | undefined;
|
|
28
|
+
required?: boolean | undefined;
|
|
29
|
+
startMonth?: Date | undefined;
|
|
30
|
+
variant?: CalendarVariant | undefined;
|
|
31
|
+
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;
|
|
32
|
+
}
|
|
33
|
+
export interface CalendarSingleProps extends CalendarCommonProps {
|
|
34
|
+
defaultValue?: Date | undefined;
|
|
35
|
+
mode: "single";
|
|
36
|
+
onValueChange?: ((value: Date | undefined) => void) | undefined;
|
|
37
|
+
value?: Date | undefined;
|
|
38
|
+
}
|
|
39
|
+
export interface CalendarRangeProps extends CalendarCommonProps {
|
|
40
|
+
defaultValue?: CalendarRangeValue | undefined;
|
|
41
|
+
maxNights?: number | undefined;
|
|
42
|
+
minNights?: number | undefined;
|
|
43
|
+
mode: "range";
|
|
44
|
+
onValueChange?: ((value: CalendarRangeValue | undefined) => void) | undefined;
|
|
45
|
+
resetOnSelect?: boolean | undefined;
|
|
46
|
+
value?: CalendarRangeValue | undefined;
|
|
47
|
+
}
|
|
48
|
+
export type CalendarProps = CalendarSingleProps | CalendarRangeProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef } from "react";
|
|
2
|
+
import type { Closed } from "../../closed";
|
|
3
|
+
import type { ChartSeriesTone } from "../chart-frame/chart-colors";
|
|
4
|
+
export interface CalendarHeatmapDay {
|
|
5
|
+
/** A calendar date as YYYY-MM-DD, free of time zones. */
|
|
6
|
+
date: string;
|
|
7
|
+
value: number | null;
|
|
8
|
+
}
|
|
9
|
+
export type CalendarHeatmapProps = Omit<Closed<ComponentPropsWithRef<"div">>, "aria-label" | "children" | "data-slot" | "role"> & {
|
|
10
|
+
"aria-label": string;
|
|
11
|
+
days: readonly CalendarHeatmapDay[];
|
|
12
|
+
formatValue?: (value: number) => string;
|
|
13
|
+
locale?: string;
|
|
14
|
+
tone?: ChartSeriesTone;
|
|
15
|
+
valueLabel?: string;
|
|
16
|
+
/** 0 starts weeks on Sunday, 1 on Monday. */
|
|
17
|
+
weekStartsOn?: 0 | 1;
|
|
18
|
+
};
|
|
19
|
+
/** A grid of days, one column per week, shaded by each day's value. */
|
|
20
|
+
export declare function CalendarHeatmap({ "aria-label": ariaLabel, days, formatValue, locale, ref: forwardedRef, tone, valueLabel, weekStartsOn, ...rest }: CalendarHeatmapProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";import{create,props}from"@stylexjs/stylex";import{cell,defineChart}from"@tanstack/charts";import{scaleBand}from"@tanstack/charts/scales/band";import{tooltip as tooltipFeature}from"@tanstack/charts/tooltip";import{useMemo}from"react";import{typeRoles}from"../../styles/typography.styles";import{assertTone}from"../chart-frame/chart-assert";import{ChartDataTable}from"../chart-frame/chart-data-table";import{ChartFrame}from"../chart-frame/chart-frame";import{ChartTooltip}from"../chart-tooltip/chart-tooltip";import{COLOR_DOMAIN,colorRange,getBucket,HeatmapLegend}from"../heatmap/heatmap-scale";import{Table,TableBody,TableCaption,TableCell,TableContainer,TableHead,TableHeader,TableRow}from"../table/table";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const NAME="CalendarHeatmap";const DAY=86_400_000;// The grid fills its container with near-square days, laid out at a 16px
|
|
2
|
+
// pitch; below a 12px pitch it scrolls instead of shrinking further. The
|
|
3
|
+
// gutter holds weekday labels and the axis holds month labels.
|
|
4
|
+
const PITCH=16;const MIN_PITCH=12;const GUTTER=40;const AXIS=24;const DATE_PATTERN=/^\d{4}-\d{2}-\d{2}$/u;const _temp={k7Eaqz:"x1d6dtaj","$$css":true};const styles={plot:minInlineSize=>[_temp,{"--x-minInlineSize":(val=>typeof val==="number"?val+"px":val!=null?val:undefined)(minInlineSize)}]};function parseDate(date){const[year,month,day]=date.split("-").map(Number);const time=Date.UTC(year,month-1,day);if(!DATE_PATTERN.test(date)||new Date(time).getUTCDate()!==day){throw new RangeError(`${NAME} dates must be valid YYYY-MM-DD strings.`);}return time;}function prepareDays(days){if(!Array.isArray(days)){throw new TypeError(`${NAME} days must be an array.`);}const values=new Map();for(const{date,value}of days){const time=parseDate(date);if(values.has(time)){throw new RangeError(`${NAME} dates must be unique.`);}if(value!==null&&!(Number.isFinite(value)&&value>=0)){throw new RangeError(`${NAME} values must be finite and not negative.`);}values.set(time,value);}return values;}function weekdayLabels(locale,weekStartsOn){const format=new Intl.DateTimeFormat(locale,{timeZone:"UTC",weekday:"short"});// 2023-01-01 was a Sunday.
|
|
5
|
+
return Array.from({length:7},(_,index)=>format.format(Date.UTC(2023,0,1+(index+weekStartsOn)%7)));}function buildCells(values,weekdays,weekStartsOn){const times=[...values.keys()];const first=Math.min(...times);const last=Math.max(...times);const lead=(new Date(first).getUTCDay()-weekStartsOn+7)%7;const maximum=Math.max(0,...[...values.values()].map(value=>value??0));const cells=[];for(let time=first;time<=last;time+=DAY){const index=Math.round((time-first)/DAY)+lead;const value=values.get(time)??null;cells.push({colorKey:value===null?"missing":getBucket(value,maximum),date:new Date(time),id:String(time),value,week:String(Math.floor(index/7)),weekday:weekdays[index%7]});}return{cells,maximum,weeks:Math.floor((lead+cells.length-1)/7)+1};}// A week column shows its month's name when the month's first day falls in it.
|
|
6
|
+
function monthLabels(cells,locale){const format=new Intl.DateTimeFormat(locale,{month:"short",timeZone:"UTC"});const labels=new Map();for(const{date,week}of cells){if(date.getUTCDate()===1||cells[0].date===date){labels.set(week,format.format(date));}}return labels;}function renderTooltip(context,dateFormat,valueLabel,tone,format){const point=context.primaryPoint??context.points[0];if(!point){return null;}const{date,value}=point.datum;return/*#__PURE__*/_jsx(ChartTooltip,{items:[{id:"calendar-heatmap-value",label:valueLabel,tone,value:value===null?"No data":format(value)}],label:dateFormat.format(date)});}/** A grid of days, one column per week, shaded by each day's value. */export function CalendarHeatmap({"aria-label":ariaLabel,days,formatValue,locale="en-US",ref:forwardedRef,tone="series1",valueLabel="Value",weekStartsOn=1,...rest}){if(typeof ariaLabel!=="string"||!ariaLabel.trim()){throw new TypeError(`${NAME} requires a non-empty aria-label.`);}assertTone(NAME,tone);for(const name of["aria-label","children","className","data-slot","role","style"]){Reflect.deleteProperty(rest,name);}const values=useMemo(()=>prepareDays(days),[days]);const format=formatValue??new Intl.NumberFormat(locale).format;return/*#__PURE__*/_jsx("div",{...rest,"data-slot":"calendar-heatmap",ref:forwardedRef,...{className:"xeuugli"},children:values.size===0?/*#__PURE__*/// biome-ignore lint/a11y/useSemanticElements: Names an empty chart, not a form group; the status keeps its own text.
|
|
7
|
+
_jsx("div",{"aria-label":ariaLabel,role:"group",children:/*#__PURE__*/_jsx("p",{role:"status",...props(typeRoles.body),children:"No data available."})}):/*#__PURE__*/_jsx(CalendarHeatmapPlot,{"aria-label":ariaLabel,format:format,locale:locale,tone:tone,valueLabel:valueLabel,values:values,weekStartsOn:weekStartsOn})});}function CalendarHeatmapPlot({"aria-label":ariaLabel,format,locale,tone,valueLabel,values,weekStartsOn}){const weekdays=useMemo(()=>weekdayLabels(locale,weekStartsOn),[locale,weekStartsOn]);const{cells,maximum,weeks}=useMemo(()=>buildCells(values,weekdays,weekStartsOn),[values,weekdays,weekStartsOn]);const definition=useMemo(()=>{const months=monthLabels(cells,locale);return defineChart({color:{domain:COLOR_DOMAIN,range:colorRange(tone)},marks:[cell(cells,{color:"colorKey",id:"calendar-heatmap-days",inset:1.5,key:({id})=>id,radius:3,x:"week",y:"weekday"})],scales:{x:{// Labels are already sparse (one per month), so none are thinned.
|
|
8
|
+
axis:{tickLabels:{thin:false},ticks:{format:week=>months.get(week)??""}},scale:scaleBand().domain(Array.from({length:weeks},(_,index)=>String(index))).padding(0)},y:{// Alternate weekday labels keep the gutter readable.
|
|
9
|
+
axis:{tickLabels:{thin:false},ticks:{format:day=>weekdays.indexOf(day)%2===0?day:""}},scale:scaleBand().domain(weekdays).padding(0)}}},{tooltip:tooltipFeature});},[cells,locale,tone,weekdays,weeks]);const dateFormat=useMemo(()=>new Intl.DateTimeFormat(locale,{day:"numeric",month:"short",timeZone:"UTC",weekday:"short",year:"numeric"}),[locale]);const renderTooltipBody=useMemo(()=>context=>renderTooltip(context,dateFormat,valueLabel,tone,format),[dateFormat,format,tone,valueLabel]);const inlineSize=weeks*PITCH+GUTTER;return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx("div",{...{className:"xw2csxc"},children:/*#__PURE__*/_jsx("div",{...props(styles.plot(weeks*MIN_PITCH+GUTTER)),children:/*#__PURE__*/_jsx(ChartFrame,{"aria-label":ariaLabel,aspectRatio:inlineSize/(7*PITCH+AXIS),definition:definition,initialWidth:inlineSize,renderTooltipBody:renderTooltipBody,tabIndex:0})})}),/*#__PURE__*/_jsx(HeatmapLegend,{high:format(maximum),tone:tone,valueLabel:valueLabel}),/*#__PURE__*/_jsx(ChartDataTable,{children:/*#__PURE__*/_jsx(TableContainer,{"aria-label":`${ariaLabel} data`,children:/*#__PURE__*/_jsxs(Table,{children:[/*#__PURE__*/_jsxs(TableCaption,{children:[ariaLabel," values"]}),/*#__PURE__*/_jsx(TableHeader,{sticky:false,children:/*#__PURE__*/_jsxs(TableRow,{children:[/*#__PURE__*/_jsx(TableHead,{scope:"col",children:"Date"}),/*#__PURE__*/_jsx(TableHead,{scope:"col",children:valueLabel})]})}),/*#__PURE__*/_jsx(TableBody,{children:cells.filter(({value})=>value!==null).map(({date,id,value})=>/*#__PURE__*/_jsxs(TableRow,{children:[/*#__PURE__*/_jsx(TableHead,{scope:"row",children:dateFormat.format(date)}),/*#__PURE__*/_jsx(TableCell,{numeric:true,children:format(value??0)})]},id))})]})})})]});}
|