prime-ui-kit 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -58
- package/bin/prime-ui-kit.js +52 -0
- package/dist/chunks/{chunk-EJ2ZVQYL.js → chunk-6TI4DSM5.js} +1904 -2040
- package/dist/chunks/chunk-CUH6DJ57.js +29335 -0
- package/dist/chunks/{chunk-T7CLQXGB.js → chunk-GKX3QAUC.js} +159 -6
- package/dist/chunks/chunk-Q3BFRQHZ.js +1729 -0
- package/dist/chunks/chunk-WDTSHOTD.js +6841 -0
- package/dist/color-picker.d.ts +5 -3
- package/dist/color-picker.js +7 -3
- package/dist/components/accordion/Accordion.d.ts +1 -1
- package/dist/components/avatar/Avatar.d.ts +2 -2
- package/dist/components/badge/Badge.d.ts +17 -5
- package/dist/components/badge/tier.d.ts +6 -2
- package/dist/components/banner/Banner.d.ts +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/button/Button.d.ts +42 -10
- package/dist/components/button-group/ButtonGroup.d.ts +22 -5
- package/dist/components/card/Card.d.ts +19 -3
- package/dist/components/chart-frame/ChartFrame.d.ts +229 -0
- package/dist/components/chat/Chat.d.ts +192 -0
- package/dist/components/chat/ChatPinned.d.ts +44 -0
- package/dist/components/chat/ChatRows.d.ts +30 -0
- package/dist/components/chat/MessageList.d.ts +95 -0
- package/dist/components/chat/chatContext.d.ts +54 -0
- package/dist/components/chat/groupMessages.d.ts +50 -0
- package/dist/components/chat/messageFlow.d.ts +42 -0
- package/dist/components/checkbox/Checkbox.d.ts +9 -4
- package/dist/components/code-block/CodeBlock.d.ts +1 -1
- package/dist/components/color-field/ColorField.d.ts +44 -0
- package/dist/components/color-picker/ColorPicker.d.ts +5 -4
- package/dist/components/color-picker/ColorPresets.d.ts +22 -14
- package/dist/components/color-swatches/ColorSwatches.d.ts +9 -4
- package/dist/components/command-menu/CommandMenu.d.ts +41 -11
- package/dist/components/composer/Composer.d.ts +234 -0
- package/dist/components/composer/format.d.ts +39 -0
- package/dist/components/composer/liveWave.d.ts +30 -0
- package/dist/components/composer/useRecorder.d.ts +72 -0
- package/dist/components/confirm-dialog/ConfirmDialog.d.ts +57 -0
- package/dist/components/crossfade/Crossfade.d.ts +8 -2
- package/dist/components/data-table/ColumnsMenu.d.ts +19 -0
- package/dist/components/data-table/DataTable.d.ts +72 -8
- package/dist/components/data-table/Footer.d.ts +1 -1
- package/dist/components/data-table/Head.d.ts +6 -2
- package/dist/components/data-table/Row.d.ts +33 -5
- package/dist/components/data-table/StateRows.d.ts +4 -2
- package/dist/components/data-table/context.d.ts +14 -0
- package/dist/components/data-table/reorder.d.ts +86 -0
- package/dist/components/data-table/rowEvents.d.ts +14 -0
- package/dist/components/data-table/rows.d.ts +17 -1
- package/dist/components/data-table/serverMode.d.ts +8 -0
- package/dist/components/data-table/types.d.ts +16 -0
- package/dist/components/data-table/useColumnHover.d.ts +2 -1
- package/dist/components/data-table/useInfiniteRows.d.ts +4 -1
- package/dist/components/data-table/useRowSelection.d.ts +5 -4
- package/dist/components/datepicker/Datepicker.d.ts +8 -3
- package/dist/components/datepicker/DatepickerPanel.d.ts +2 -2
- package/dist/components/datepicker/panelLayout.d.ts +2 -2
- package/dist/components/description-list/DescriptionList.d.ts +59 -0
- package/dist/components/digit-input/DigitInput.d.ts +12 -5
- package/dist/components/divider/Divider.d.ts +1 -1
- package/dist/components/dnd/Dnd.d.ts +48 -20
- package/dist/components/dnd/dragSession.d.ts +27 -2
- package/dist/components/dnd/geometry.d.ts +12 -4
- package/dist/components/dnd/labels.d.ts +12 -1
- package/dist/components/dnd/useDragSource.d.ts +2 -0
- package/dist/components/dnd/useDropTarget.d.ts +6 -3
- package/dist/components/dnd/useFlipList.d.ts +8 -2
- package/dist/components/dnd/useSortableList.d.ts +13 -10
- package/dist/components/drawer/Drawer.d.ts +14 -12
- package/dist/components/dropdown/Dropdown.d.ts +23 -4
- package/dist/components/empty-page/EmptyPage.d.ts +35 -5
- package/dist/components/fieldset/Fieldset.d.ts +24 -0
- package/dist/components/file-upload/FileUpload.d.ts +152 -14
- package/dist/components/gallery/Gallery.d.ts +79 -0
- package/dist/components/gallery/layout.d.ts +34 -0
- package/dist/components/gantt/Gantt.d.ts +102 -0
- package/dist/components/gantt/GanttBar.d.ts +51 -0
- package/dist/components/gantt/GanttRow.d.ts +75 -0
- package/dist/components/gantt/ganttModel.d.ts +133 -0
- package/dist/components/gantt/useEdgeAutoScroll.d.ts +12 -0
- package/dist/components/hint/Hint.d.ts +1 -1
- package/dist/components/index.d.ts +53 -22
- package/dist/components/input/Input.d.ts +58 -4
- package/dist/components/kanban/Kanban.d.ts +77 -12
- package/dist/components/kbd/Kbd.d.ts +1 -1
- package/dist/components/label/Label.d.ts +1 -1
- package/dist/components/link-button/LinkButton.d.ts +2 -2
- package/dist/components/login-form/LoginForm.d.ts +1 -1
- package/dist/components/media-viewer/MediaViewer.d.ts +55 -0
- package/dist/components/media-viewer/ViewerVideo.d.ts +53 -0
- package/dist/components/media-viewer/originShape.d.ts +17 -0
- package/dist/components/media-viewer/physics.d.ts +81 -0
- package/dist/components/media-viewer/types.d.ts +59 -0
- package/dist/components/media-viewer/viewerEngine.d.ts +202 -0
- package/dist/components/message/Message.d.ts +83 -0
- package/dist/components/message/MessageCards.d.ts +64 -0
- package/dist/components/message/MessageFile.d.ts +36 -0
- package/dist/components/message/MessageMedia.d.ts +12 -0
- package/dist/components/message/MessageParts.d.ts +206 -0
- package/dist/components/message/MessageReactionBar.d.ts +35 -0
- package/dist/components/message/MessageTyping.d.ts +25 -0
- package/dist/components/message/bubbleHug.d.ts +10 -0
- package/dist/components/message/bubbleMorph.d.ts +43 -0
- package/dist/components/message/formatMessageTime.d.ts +2 -0
- package/dist/components/message/types.d.ts +21 -0
- package/dist/components/modal/DialogGuard.d.ts +21 -0
- package/dist/components/modal/DialogParts.d.ts +90 -15
- package/dist/components/modal/Modal.d.ts +9 -47
- package/dist/components/modal/ModalDialog.d.ts +46 -0
- package/dist/components/native-select/NativeSelect.d.ts +3 -3
- package/dist/components/notification/Notification.d.ts +7 -1
- package/dist/components/page-content/PageContent.d.ts +58 -1
- package/dist/components/page-toolbar/PageToolbar.d.ts +8 -7
- package/dist/components/pagination/Pagination.d.ts +1 -1
- package/dist/components/popover/Popover.d.ts +12 -4
- package/dist/components/progress-bar/ProgressBar.d.ts +30 -10
- package/dist/components/progress-circle/ProgressCircle.d.ts +42 -7
- package/dist/components/radio/Radio.d.ts +4 -4
- package/dist/components/scroll-container/ScrollContainer.d.ts +27 -7
- package/dist/components/scroll-container/useFitFlag.d.ts +5 -0
- package/dist/components/scroll-container/useScrollEdges.d.ts +53 -0
- package/dist/components/scroll-container/useWheelToInline.d.ts +10 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +23 -6
- package/dist/components/select/Select.d.ts +38 -8
- package/dist/components/select/SelectItem.d.ts +7 -4
- package/dist/components/select/selectContext.d.ts +12 -3
- package/dist/components/sheet/Sheet.d.ts +49 -0
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/slider/Slider.d.ts +17 -3
- package/dist/components/smart-filter/SmartFilter.d.ts +48 -6
- package/dist/components/smart-filter/model.d.ts +31 -11
- package/dist/components/sparkline/Sparkline.d.ts +19 -4
- package/dist/components/spinner/Spinner.d.ts +4 -3
- package/dist/components/stepper/Stepper.d.ts +2 -2
- package/dist/components/switch/Switch.d.ts +14 -4
- package/dist/components/tabs/Tabs.d.ts +5 -3
- package/dist/components/tag-select/TagOptionMenu.d.ts +6 -2
- package/dist/components/tag-select/TagSelect.d.ts +27 -9
- package/dist/components/tag-select/VirtualOptions.d.ts +24 -0
- package/dist/components/textarea/Textarea.d.ts +48 -2
- package/dist/components/thumbnail/Thumbnail.d.ts +48 -6
- package/dist/components/timeline/Timeline.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +9 -4
- package/dist/components/typography/Typography.d.ts +1 -1
- package/dist/components/video-note/VideoNote.d.ts +27 -0
- package/dist/components/voice-player/VoicePlayer.d.ts +33 -0
- package/dist/components/voice-player/getWaveform.d.ts +7 -0
- package/dist/hooks/useEdgeOverflow.d.ts +17 -8
- package/dist/hooks/useImageStatus.d.ts +10 -10
- package/dist/hooks/useModalLayer.d.ts +6 -4
- package/dist/hooks/usePosition.d.ts +16 -1
- package/dist/hooks/usePresence.d.ts +1 -1
- package/dist/hooks/useSwipeDismiss.d.ts +11 -19
- package/dist/hooks/useTokenValue.d.ts +10 -0
- package/dist/hooks/useUploadQueue.d.ts +60 -0
- package/dist/hooks/useVirtualRows.d.ts +74 -0
- package/dist/icon-set.d.ts +29 -0
- package/dist/{icons.js → icon-set.js} +75 -15
- package/dist/icons/Icon.d.ts +6 -5
- package/dist/icons/glyph.d.ts +18 -3
- package/dist/icons/glyphs/bike.d.ts +2 -0
- package/dist/icons/glyphs/captions.d.ts +2 -0
- package/dist/icons/glyphs/chart-gantt.d.ts +2 -0
- package/dist/icons/glyphs/circle-alert.d.ts +2 -0
- package/dist/icons/glyphs/code.d.ts +2 -0
- package/dist/icons/glyphs/columns-3.d.ts +2 -0
- package/dist/icons/glyphs/crown.d.ts +2 -0
- package/dist/icons/glyphs/disc.d.ts +2 -0
- package/dist/icons/glyphs/file.d.ts +2 -0
- package/dist/icons/glyphs/flag.d.ts +2 -0
- package/dist/icons/glyphs/forward.d.ts +2 -0
- package/dist/icons/glyphs/fuel.d.ts +2 -0
- package/dist/icons/glyphs/funnel.d.ts +2 -0
- package/dist/icons/glyphs/globe.d.ts +2 -0
- package/dist/icons/glyphs/headset.d.ts +2 -0
- package/dist/icons/glyphs/megaphone.d.ts +2 -0
- package/dist/icons/glyphs/motorbike.d.ts +2 -0
- package/dist/icons/glyphs/pin.d.ts +2 -0
- package/dist/icons/glyphs/reply.d.ts +2 -0
- package/dist/icons/glyphs/scale.d.ts +2 -0
- package/dist/icons/glyphs/star.d.ts +2 -0
- package/dist/icons/glyphs/strikethrough.d.ts +2 -0
- package/dist/icons/glyphs/text-quote.d.ts +2 -0
- package/dist/icons/glyphs/trophy.d.ts +2 -0
- package/dist/icons/glyphs/video.d.ts +2 -0
- package/dist/icons/glyphs/volume-2.d.ts +2 -0
- package/dist/icons/glyphs/volume-x.d.ts +2 -0
- package/dist/icons/glyphs/zoom-in.d.ts +2 -0
- package/dist/icons/glyphs/zoom-out.d.ts +2 -0
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/registry.d.ts +59 -0
- package/dist/index.css +1 -13089
- package/dist/index.d.ts +7 -2
- package/dist/index.js +57 -9
- package/dist/internal/AnchorRectContext.d.ts +9 -0
- package/dist/internal/ChoiceField.d.ts +2 -2
- package/dist/internal/ControlSizeContext.d.ts +1 -1
- package/dist/internal/Disclosure.d.ts +15 -0
- package/dist/internal/FieldAction.d.ts +38 -0
- package/dist/internal/FieldCommit.d.ts +46 -0
- package/dist/internal/FieldFrame.d.ts +1 -1
- package/dist/internal/HighlightMatch.d.ts +5 -3
- package/dist/internal/MorphText.d.ts +3 -2
- package/dist/internal/ProgressLegend.d.ts +18 -0
- package/dist/internal/VisuallyHidden.d.ts +5 -1
- package/dist/internal/attachmentTile.d.ts +64 -0
- package/dist/internal/attachmentTile.module.css.d.ts +2 -0
- package/dist/internal/disabledContext.d.ts +7 -0
- package/dist/internal/edgeAutoScroll.d.ts +30 -0
- package/dist/internal/fileFormat.d.ts +5 -0
- package/dist/internal/fileName.d.ts +9 -0
- package/dist/internal/fileSize.d.ts +2 -0
- package/dist/internal/formatClock.d.ts +2 -0
- package/dist/internal/glyphSwap.d.ts +19 -0
- package/dist/internal/iconBox.module.css.d.ts +2 -0
- package/dist/internal/imageSlot.d.ts +3 -1
- package/dist/internal/leaveInPlace.d.ts +9 -0
- package/dist/internal/listbox.d.ts +19 -0
- package/dist/internal/mediaDisk.d.ts +14 -0
- package/dist/internal/mediaFrame.d.ts +2 -0
- package/dist/internal/mediaKind.d.ts +7 -0
- package/dist/internal/mediaPlayer.d.ts +135 -0
- package/dist/internal/mediaSession.d.ts +13 -0
- package/dist/internal/messageList.d.ts +121 -0
- package/dist/internal/messagePart.d.ts +106 -0
- package/dist/internal/overlay/FloatingPanel.d.ts +1 -1
- package/dist/internal/overlay/focus.d.ts +23 -2
- package/dist/internal/overlay/useFloatingLayer.d.ts +2 -2
- package/dist/internal/palette.d.ts +7 -0
- package/dist/internal/progressSegments.d.ts +39 -2
- package/dist/internal/readReceipts.d.ts +11 -0
- package/dist/internal/richText.d.ts +40 -0
- package/dist/internal/ring.d.ts +64 -0
- package/dist/internal/sticky.d.ts +2 -0
- package/dist/internal/surfaceDepth.d.ts +2 -0
- package/dist/internal/transcript.d.ts +73 -0
- package/dist/internal/transfer.d.ts +79 -0
- package/dist/internal/transferDisk.d.ts +76 -0
- package/dist/internal/useNearView.d.ts +7 -0
- package/dist/internal/usePendingChanges.d.ts +18 -0
- package/dist/internal/useRangeSelection.d.ts +41 -0
- package/dist/layout/app-header/AppHeader.d.ts +21 -3
- package/dist/layout/bottom-nav/BottomNav.d.ts +27 -7
- package/dist/layout/index.d.ts +2 -2
- package/dist/layout/sidebar/Sidebar.d.ts +1 -1
- package/dist/skill/SKILL.md +130 -0
- package/dist/skill/anti-slop.md +224 -0
- package/dist/skill/api-contract.md +295 -0
- package/dist/skill/cheatsheet.md +317 -0
- package/dist/skill/checklist.md +91 -0
- package/dist/skill/choosing.md +164 -0
- package/dist/skill/components.md +177 -0
- package/dist/skill/composition.md +312 -0
- package/dist/skill/foundations.md +186 -0
- package/dist/skill/layouts.md +262 -0
- package/dist/skill/motion.md +211 -0
- package/dist/skill/patterns/chat.module.css +33 -0
- package/dist/skill/patterns/chat.tsx +838 -0
- package/dist/skill/patterns/dashboard.module.css +44 -0
- package/dist/skill/patterns/dashboard.tsx +326 -0
- package/dist/skill/patterns/detail-page.module.css +74 -0
- package/dist/skill/patterns/detail-page.tsx +209 -0
- package/dist/skill/patterns/form-drawer.module.css +14 -0
- package/dist/skill/patterns/form-drawer.tsx +240 -0
- package/dist/skill/patterns/list-page.module.css +19 -0
- package/dist/skill/patterns/list-page.tsx +334 -0
- package/dist/skill/patterns/screen-states.module.css +54 -0
- package/dist/skill/patterns/screen-states.tsx +186 -0
- package/dist/skill/patterns/settings-page.module.css +47 -0
- package/dist/skill/patterns/settings-page.tsx +217 -0
- package/dist/skill/reference/components/accordion/COMPONENT.md +175 -0
- package/dist/skill/reference/components/accordion/examples/collapsible.tsx +27 -0
- package/dist/skill/reference/components/accordion/examples/controlled.tsx +36 -0
- package/dist/skill/reference/components/accordion/examples/examples.module.css +10 -0
- package/dist/skill/reference/components/accordion/examples/multiple.tsx +31 -0
- package/dist/skill/reference/components/accordion/examples/overview.tsx +39 -0
- package/dist/skill/reference/components/accordion/examples/sizes.tsx +28 -0
- package/dist/skill/reference/components/accordion/examples/states.tsx +31 -0
- package/dist/skill/reference/components/accordion/examples/variants.tsx +35 -0
- package/dist/skill/reference/components/accordion/examples/with-icon.tsx +47 -0
- package/dist/skill/reference/components/avatar/COMPONENT.md +166 -0
- package/dist/skill/reference/components/avatar/examples/examples.module.css +25 -0
- package/dist/skill/reference/components/avatar/examples/overview.tsx +18 -0
- package/dist/skill/reference/components/avatar/examples/presence.tsx +47 -0
- package/dist/skill/reference/components/avatar/examples/sizes.tsx +21 -0
- package/dist/skill/reference/components/avatar/examples/src-from-state.tsx +30 -0
- package/dist/skill/reference/components/avatar/examples/states.tsx +39 -0
- package/dist/skill/reference/components/avatar/examples/team-group.tsx +41 -0
- package/dist/skill/reference/components/avatar/examples/variants.tsx +40 -0
- package/dist/skill/reference/components/badge/COMPONENT.md +193 -0
- package/dist/skill/reference/components/badge/examples/applied-filters.tsx +47 -0
- package/dist/skill/reference/components/badge/examples/examples.module.css +32 -0
- package/dist/skill/reference/components/badge/examples/filter-values.tsx +39 -0
- package/dist/skill/reference/components/badge/examples/in-controls.tsx +23 -0
- package/dist/skill/reference/components/badge/examples/overview.tsx +13 -0
- package/dist/skill/reference/components/badge/examples/server-tags.tsx +61 -0
- package/dist/skill/reference/components/badge/examples/sizes.tsx +21 -0
- package/dist/skill/reference/components/badge/examples/states.tsx +59 -0
- package/dist/skill/reference/components/badge/examples/variants.tsx +38 -0
- package/dist/skill/reference/components/badge/examples/with-icon.tsx +50 -0
- package/dist/skill/reference/components/banner/COMPONENT.md +165 -0
- package/dist/skill/reference/components/banner/examples/dismissible.tsx +38 -0
- package/dist/skill/reference/components/banner/examples/examples.module.css +32 -0
- package/dist/skill/reference/components/banner/examples/narrow.tsx +23 -0
- package/dist/skill/reference/components/banner/examples/overview.tsx +18 -0
- package/dist/skill/reference/components/banner/examples/page-strip.tsx +53 -0
- package/dist/skill/reference/components/banner/examples/sizes.tsx +29 -0
- package/dist/skill/reference/components/banner/examples/structure.tsx +45 -0
- package/dist/skill/reference/components/banner/examples/variants.tsx +43 -0
- package/dist/skill/reference/components/breadcrumb/COMPONENT.md +137 -0
- package/dist/skill/reference/components/breadcrumb/examples/ellipsis.tsx +12 -0
- package/dist/skill/reference/components/breadcrumb/examples/examples.module.css +11 -0
- package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +26 -0
- package/dist/skill/reference/components/breadcrumb/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/breadcrumb/examples/sizes.tsx +24 -0
- package/dist/skill/reference/components/breadcrumb/examples/with-icon.tsx +14 -0
- package/dist/skill/reference/components/button/COMPONENT.md +211 -0
- package/dist/skill/reference/components/button/examples/as-child.tsx +15 -0
- package/dist/skill/reference/components/button/examples/circle.tsx +67 -0
- package/dist/skill/reference/components/button/examples/download.tsx +45 -0
- package/dist/skill/reference/components/button/examples/examples.module.css +54 -0
- package/dist/skill/reference/components/button/examples/hold-to-confirm.tsx +34 -0
- package/dist/skill/reference/components/button/examples/in-form.tsx +45 -0
- package/dist/skill/reference/components/button/examples/label-morph.tsx +38 -0
- package/dist/skill/reference/components/button/examples/on-colored-host.tsx +29 -0
- package/dist/skill/reference/components/button/examples/over-media.tsx +36 -0
- package/dist/skill/reference/components/button/examples/overview.tsx +13 -0
- package/dist/skill/reference/components/button/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/button/examples/states.tsx +38 -0
- package/dist/skill/reference/components/button/examples/toggle.tsx +21 -0
- package/dist/skill/reference/components/button/examples/variants.tsx +32 -0
- package/dist/skill/reference/components/button/examples/with-icon.tsx +41 -0
- package/dist/skill/reference/components/button-group/COMPONENT.md +172 -0
- package/dist/skill/reference/components/button-group/examples/controlled.tsx +29 -0
- package/dist/skill/reference/components/button-group/examples/examples.module.css +8 -0
- package/dist/skill/reference/components/button-group/examples/full-width.tsx +19 -0
- package/dist/skill/reference/components/button-group/examples/in-form.tsx +55 -0
- package/dist/skill/reference/components/button-group/examples/orientation.tsx +19 -0
- package/dist/skill/reference/components/button-group/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/button-group/examples/sizes.tsx +22 -0
- package/dist/skill/reference/components/button-group/examples/states.tsx +33 -0
- package/dist/skill/reference/components/button-group/examples/with-icon.tsx +45 -0
- package/dist/skill/reference/components/card/COMPONENT.md +218 -0
- package/dist/skill/reference/components/card/examples/content-templates.tsx +67 -0
- package/dist/skill/reference/components/card/examples/examples.module.css +84 -0
- package/dist/skill/reference/components/card/examples/flat.tsx +25 -0
- package/dist/skill/reference/components/card/examples/interactive.tsx +28 -0
- package/dist/skill/reference/components/card/examples/kpi-media.tsx +42 -0
- package/dist/skill/reference/components/card/examples/narrow.tsx +47 -0
- package/dist/skill/reference/components/card/examples/overview.tsx +39 -0
- package/dist/skill/reference/components/card/examples/panel-chart.tsx +44 -0
- package/dist/skill/reference/components/card/examples/variants.tsx +40 -0
- package/dist/skill/reference/components/chart-frame/COMPONENT.md +265 -0
- package/dist/skill/reference/components/chart-frame/examples/controlled.tsx +92 -0
- package/dist/skill/reference/components/chart-frame/examples/examples.module.css +6 -0
- package/dist/skill/reference/components/chart-frame/examples/narrow.tsx +46 -0
- package/dist/skill/reference/components/chart-frame/examples/overview.tsx +127 -0
- package/dist/skill/reference/components/chart-frame/examples/states.tsx +78 -0
- package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +158 -0
- package/dist/skill/reference/components/chat/COMPONENT.md +336 -0
- package/dist/skill/reference/components/chat/examples/controlled.tsx +68 -0
- package/dist/skill/reference/components/chat/examples/examples.module.css +38 -0
- package/dist/skill/reference/components/chat/examples/group-chat.tsx +130 -0
- package/dist/skill/reference/components/chat/examples/live.tsx +89 -0
- package/dist/skill/reference/components/chat/examples/narrow.tsx +46 -0
- package/dist/skill/reference/components/chat/examples/overview.tsx +839 -0
- package/dist/skill/reference/components/chat/examples/search.tsx +61 -0
- package/dist/skill/reference/components/chat/examples/structure.tsx +28 -0
- package/dist/skill/reference/components/checkbox/COMPONENT.md +171 -0
- package/dist/skill/reference/components/checkbox/examples/controlled.tsx +41 -0
- package/dist/skill/reference/components/checkbox/examples/examples.module.css +69 -0
- package/dist/skill/reference/components/checkbox/examples/in-form.tsx +34 -0
- package/dist/skill/reference/components/checkbox/examples/indicator.tsx +54 -0
- package/dist/skill/reference/components/checkbox/examples/overview.tsx +10 -0
- package/dist/skill/reference/components/checkbox/examples/sizes.tsx +18 -0
- package/dist/skill/reference/components/checkbox/examples/states.tsx +48 -0
- package/dist/skill/reference/components/checkbox/examples/variants.tsx +30 -0
- package/dist/skill/reference/components/checkbox/examples/without-label.tsx +13 -0
- package/dist/skill/reference/components/code-block/COMPONENT.md +108 -0
- package/dist/skill/reference/components/code-block/examples/color-scheme.tsx +16 -0
- package/dist/skill/reference/components/code-block/examples/examples.module.css +21 -0
- package/dist/skill/reference/components/code-block/examples/narrow.tsx +14 -0
- package/dist/skill/reference/components/code-block/examples/overview.tsx +19 -0
- package/dist/skill/reference/components/code-block/examples/variants.tsx +21 -0
- package/dist/skill/reference/components/color-field/COMPONENT.md +163 -0
- package/dist/skill/reference/components/color-field/examples/controlled.tsx +33 -0
- package/dist/skill/reference/components/color-field/examples/examples.module.css +22 -0
- package/dist/skill/reference/components/color-field/examples/in-form.tsx +45 -0
- package/dist/skill/reference/components/color-field/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/color-field/examples/presets.tsx +20 -0
- package/dist/skill/reference/components/color-field/examples/sizes.tsx +14 -0
- package/dist/skill/reference/components/color-field/examples/states.tsx +12 -0
- package/dist/skill/reference/components/color-field/examples/validation.tsx +29 -0
- package/dist/skill/reference/components/color-picker/COMPONENT.md +339 -0
- package/dist/skill/reference/components/color-picker/examples/controlled.tsx +37 -0
- package/dist/skill/reference/components/color-picker/examples/examples.module.css +48 -0
- package/dist/skill/reference/components/color-picker/examples/formats.tsx +26 -0
- package/dist/skill/reference/components/color-picker/examples/in-form.tsx +52 -0
- package/dist/skill/reference/components/color-picker/examples/overview.tsx +37 -0
- package/dist/skill/reference/components/color-picker/examples/panel.tsx +41 -0
- package/dist/skill/reference/components/color-picker/examples/presets-sizes.tsx +28 -0
- package/dist/skill/reference/components/color-picker/examples/presets.tsx +35 -0
- package/dist/skill/reference/components/color-picker/examples/sizes.tsx +26 -0
- package/dist/skill/reference/components/color-picker/examples/states.tsx +22 -0
- package/dist/skill/reference/components/color-picker/examples/validation.tsx +24 -0
- package/dist/skill/reference/components/color-swatches/COMPONENT.md +146 -0
- package/dist/skill/reference/components/color-swatches/examples/controlled.tsx +22 -0
- package/dist/skill/reference/components/color-swatches/examples/examples.module.css +19 -0
- package/dist/skill/reference/components/color-swatches/examples/in-form.tsx +41 -0
- package/dist/skill/reference/components/color-swatches/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/color-swatches/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/color-swatches/examples/states.tsx +20 -0
- package/dist/skill/reference/components/color-swatches/examples/wrapping.tsx +12 -0
- package/dist/skill/reference/components/command-menu/COMPONENT.md +225 -0
- package/dist/skill/reference/components/command-menu/examples/controlled-open.tsx +29 -0
- package/dist/skill/reference/components/command-menu/examples/controlled.tsx +42 -0
- package/dist/skill/reference/components/command-menu/examples/dismiss.tsx +39 -0
- package/dist/skill/reference/components/command-menu/examples/load-error.tsx +65 -0
- package/dist/skill/reference/components/command-menu/examples/overview.tsx +61 -0
- package/dist/skill/reference/components/command-menu/examples/server-search.tsx +91 -0
- package/dist/skill/reference/components/command-menu/examples/sizes.tsx +53 -0
- package/dist/skill/reference/components/command-menu/examples/states.tsx +48 -0
- package/dist/skill/reference/components/command-menu/examples/structure.tsx +54 -0
- package/dist/skill/reference/components/composer/COMPONENT.md +310 -0
- package/dist/skill/reference/components/composer/examples/attachments.tsx +36 -0
- package/dist/skill/reference/components/composer/examples/controlled.tsx +46 -0
- package/dist/skill/reference/components/composer/examples/examples.module.css +30 -0
- package/dist/skill/reference/components/composer/examples/formatting.tsx +15 -0
- package/dist/skill/reference/components/composer/examples/narrow.tsx +22 -0
- package/dist/skill/reference/components/composer/examples/overview.tsx +39 -0
- package/dist/skill/reference/components/composer/examples/reply-edit.tsx +68 -0
- package/dist/skill/reference/components/composer/examples/sizes.tsx +23 -0
- package/dist/skill/reference/components/composer/examples/states.tsx +31 -0
- package/dist/skill/reference/components/composer/examples/typing.tsx +24 -0
- package/dist/skill/reference/components/composer/examples/voice.tsx +21 -0
- package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +124 -0
- package/dist/skill/reference/components/confirm-dialog/examples/controlled-open.tsx +35 -0
- package/dist/skill/reference/components/confirm-dialog/examples/failure.tsx +37 -0
- package/dist/skill/reference/components/confirm-dialog/examples/overview.tsx +24 -0
- package/dist/skill/reference/components/confirm-dialog/examples/variants.tsx +44 -0
- package/dist/skill/reference/components/crossfade/COMPONENT.md +118 -0
- package/dist/skill/reference/components/crossfade/examples/examples.module.css +93 -0
- package/dist/skill/reference/components/crossfade/examples/fill.tsx +79 -0
- package/dist/skill/reference/components/crossfade/examples/overview.tsx +102 -0
- package/dist/skill/reference/components/crossfade/examples/record-switch.tsx +67 -0
- package/dist/skill/reference/components/data-table/COMPONENT.md +366 -0
- package/dist/skill/reference/components/data-table/examples/appearance.tsx +62 -0
- package/dist/skill/reference/components/data-table/examples/columns-visibility.tsx +151 -0
- package/dist/skill/reference/components/data-table/examples/content-width.tsx +65 -0
- package/dist/skill/reference/components/data-table/examples/controlled.tsx +56 -0
- package/dist/skill/reference/components/data-table/examples/detail-panel.tsx +101 -0
- package/dist/skill/reference/components/data-table/examples/examples.module.css +86 -0
- package/dist/skill/reference/components/data-table/examples/fill-height.tsx +55 -0
- package/dist/skill/reference/components/data-table/examples/groups.tsx +73 -0
- package/dist/skill/reference/components/data-table/examples/heatmap.tsx +44 -0
- package/dist/skill/reference/components/data-table/examples/infinite-scroll.tsx +53 -0
- package/dist/skill/reference/components/data-table/examples/narrow.tsx +50 -0
- package/dist/skill/reference/components/data-table/examples/nested-rows.tsx +128 -0
- package/dist/skill/reference/components/data-table/examples/numeric.tsx +41 -0
- package/dist/skill/reference/components/data-table/examples/overview.tsx +54 -0
- package/dist/skill/reference/components/data-table/examples/reorder.tsx +61 -0
- package/dist/skill/reference/components/data-table/examples/row-link.tsx +100 -0
- package/dist/skill/reference/components/data-table/examples/row-open.tsx +129 -0
- package/dist/skill/reference/components/data-table/examples/selection.tsx +60 -0
- package/dist/skill/reference/components/data-table/examples/server.tsx +181 -0
- package/dist/skill/reference/components/data-table/examples/sizes.tsx +56 -0
- package/dist/skill/reference/components/data-table/examples/states.tsx +50 -0
- package/dist/skill/reference/components/data-table/examples/sticky.tsx +54 -0
- package/dist/skill/reference/components/data-table/examples/toolbar.tsx +124 -0
- package/dist/skill/reference/components/datepicker/COMPONENT.md +228 -0
- package/dist/skill/reference/components/datepicker/examples/controlled-open.tsx +32 -0
- package/dist/skill/reference/components/datepicker/examples/controlled.tsx +39 -0
- package/dist/skill/reference/components/datepicker/examples/examples.module.css +26 -0
- package/dist/skill/reference/components/datepicker/examples/in-form.tsx +74 -0
- package/dist/skill/reference/components/datepicker/examples/inline-panel.tsx +14 -0
- package/dist/skill/reference/components/datepicker/examples/narrow.tsx +14 -0
- package/dist/skill/reference/components/datepicker/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/datepicker/examples/range-presets.tsx +22 -0
- package/dist/skill/reference/components/datepicker/examples/sizes.tsx +22 -0
- package/dist/skill/reference/components/datepicker/examples/states.tsx +20 -0
- package/dist/skill/reference/components/datepicker/examples/validation.tsx +36 -0
- package/dist/skill/reference/components/datepicker/examples/yearless.tsx +20 -0
- package/dist/skill/reference/components/description-list/COMPONENT.md +132 -0
- package/dist/skill/reference/components/description-list/examples/examples.module.css +41 -0
- package/dist/skill/reference/components/description-list/examples/narrow.tsx +20 -0
- package/dist/skill/reference/components/description-list/examples/overview.tsx +35 -0
- package/dist/skill/reference/components/description-list/examples/sizes.tsx +24 -0
- package/dist/skill/reference/components/description-list/examples/structure.tsx +29 -0
- package/dist/skill/reference/components/description-list/examples/vertical.tsx +21 -0
- package/dist/skill/reference/components/digit-input/COMPONENT.md +165 -0
- package/dist/skill/reference/components/digit-input/examples/controlled.tsx +23 -0
- package/dist/skill/reference/components/digit-input/examples/examples.module.css +25 -0
- package/dist/skill/reference/components/digit-input/examples/full-width.tsx +13 -0
- package/dist/skill/reference/components/digit-input/examples/grouped.tsx +11 -0
- package/dist/skill/reference/components/digit-input/examples/in-form.tsx +50 -0
- package/dist/skill/reference/components/digit-input/examples/on-complete.tsx +33 -0
- package/dist/skill/reference/components/digit-input/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/digit-input/examples/sizes.tsx +14 -0
- package/dist/skill/reference/components/digit-input/examples/states.tsx +11 -0
- package/dist/skill/reference/components/digit-input/examples/validation.tsx +24 -0
- package/dist/skill/reference/components/divider/COMPONENT.md +113 -0
- package/dist/skill/reference/components/divider/examples/align.tsx +14 -0
- package/dist/skill/reference/components/divider/examples/examples.module.css +30 -0
- package/dist/skill/reference/components/divider/examples/or-separator.tsx +19 -0
- package/dist/skill/reference/components/divider/examples/overview.tsx +30 -0
- package/dist/skill/reference/components/divider/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/divider/examples/vertical.tsx +21 -0
- package/dist/skill/reference/components/divider/examples/with-icon.tsx +26 -0
- package/dist/skill/reference/components/dnd/COMPONENT.md +260 -0
- package/dist/skill/reference/components/dnd/examples/board.tsx +91 -0
- package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +82 -0
- package/dist/skill/reference/components/dnd/examples/examples.module.css +112 -0
- package/dist/skill/reference/components/dnd/examples/grid.tsx +48 -0
- package/dist/skill/reference/components/dnd/examples/handle.tsx +58 -0
- package/dist/skill/reference/components/dnd/examples/locked.tsx +57 -0
- package/dist/skill/reference/components/dnd/examples/narrow.tsx +42 -0
- package/dist/skill/reference/components/dnd/examples/overview.tsx +45 -0
- package/dist/skill/reference/components/drawer/COMPONENT.md +229 -0
- package/dist/skill/reference/components/drawer/examples/controlled-open.tsx +40 -0
- package/dist/skill/reference/components/drawer/examples/dismiss.tsx +55 -0
- package/dist/skill/reference/components/drawer/examples/examples.module.css +21 -0
- package/dist/skill/reference/components/drawer/examples/guard.tsx +80 -0
- package/dist/skill/reference/components/drawer/examples/header-actions.tsx +63 -0
- package/dist/skill/reference/components/drawer/examples/in-form.tsx +87 -0
- package/dist/skill/reference/components/drawer/examples/long-content.tsx +40 -0
- package/dist/skill/reference/components/drawer/examples/overview.tsx +56 -0
- package/dist/skill/reference/components/drawer/examples/placement.tsx +40 -0
- package/dist/skill/reference/components/drawer/examples/sizes.tsx +43 -0
- package/dist/skill/reference/components/drawer/examples/structure.tsx +35 -0
- package/dist/skill/reference/components/dropdown/COMPONENT.md +235 -0
- package/dist/skill/reference/components/dropdown/examples/checkbox-items.tsx +48 -0
- package/dist/skill/reference/components/dropdown/examples/controlled-open.tsx +32 -0
- package/dist/skill/reference/components/dropdown/examples/dismiss.tsx +17 -0
- package/dist/skill/reference/components/dropdown/examples/examples.module.css +22 -0
- package/dist/skill/reference/components/dropdown/examples/item-description.tsx +30 -0
- package/dist/skill/reference/components/dropdown/examples/link-items.tsx +29 -0
- package/dist/skill/reference/components/dropdown/examples/long-list.tsx +42 -0
- package/dist/skill/reference/components/dropdown/examples/match-trigger-width.tsx +23 -0
- package/dist/skill/reference/components/dropdown/examples/overview.tsx +41 -0
- package/dist/skill/reference/components/dropdown/examples/placement.tsx +33 -0
- package/dist/skill/reference/components/dropdown/examples/sizes.tsx +43 -0
- package/dist/skill/reference/components/dropdown/examples/states.tsx +35 -0
- package/dist/skill/reference/components/dropdown/examples/structure.tsx +56 -0
- package/dist/skill/reference/components/empty-page/COMPONENT.md +167 -0
- package/dist/skill/reference/components/empty-page/examples/compact.tsx +23 -0
- package/dist/skill/reference/components/empty-page/examples/data-region.tsx +32 -0
- package/dist/skill/reference/components/empty-page/examples/examples.module.css +54 -0
- package/dist/skill/reference/components/empty-page/examples/narrow.tsx +26 -0
- package/dist/skill/reference/components/empty-page/examples/overview.tsx +22 -0
- package/dist/skill/reference/components/empty-page/examples/region-error.tsx +86 -0
- package/dist/skill/reference/components/empty-page/examples/sizes.tsx +25 -0
- package/{src/components/empty-page/examples/icon-tones.tsx → dist/skill/reference/components/empty-page/examples/variants.tsx} +10 -9
- package/dist/skill/reference/components/example-frame/COMPONENT.md +140 -0
- package/dist/skill/reference/components/example-frame/examples/controlled.tsx +42 -0
- package/dist/skill/reference/components/example-frame/examples/overview.tsx +16 -0
- package/dist/skill/reference/components/fieldset/COMPONENT.md +107 -0
- package/dist/skill/reference/components/fieldset/examples/examples.module.css +14 -0
- package/dist/skill/reference/components/fieldset/examples/in-form.tsx +59 -0
- package/dist/skill/reference/components/fieldset/examples/overview.tsx +22 -0
- package/dist/skill/reference/components/fieldset/examples/states.tsx +35 -0
- package/dist/skill/reference/components/file-upload/COMPONENT.md +407 -0
- package/dist/skill/reference/components/file-upload/examples/attachment-tray.tsx +99 -0
- package/dist/skill/reference/components/file-upload/examples/avatar-upload.tsx +56 -0
- package/dist/skill/reference/components/file-upload/examples/controlled.tsx +77 -0
- package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +44 -0
- package/dist/skill/reference/components/file-upload/examples/examples.module.css +122 -0
- package/dist/skill/reference/components/file-upload/examples/file-cards.tsx +64 -0
- package/dist/skill/reference/components/file-upload/examples/gallery.tsx +104 -0
- package/dist/skill/reference/components/file-upload/examples/in-form.tsx +79 -0
- package/dist/skill/reference/components/file-upload/examples/narrow.tsx +73 -0
- package/dist/skill/reference/components/file-upload/examples/overview.tsx +49 -0
- package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +41 -0
- package/dist/skill/reference/components/file-upload/examples/saving.tsx +71 -0
- package/dist/skill/reference/components/file-upload/examples/sizes.tsx +26 -0
- package/dist/skill/reference/components/file-upload/examples/states.tsx +23 -0
- package/dist/skill/reference/components/file-upload/examples/validation.tsx +42 -0
- package/dist/skill/reference/components/file-upload/examples/variants.tsx +32 -0
- package/dist/skill/reference/components/gallery/COMPONENT.md +151 -0
- package/dist/skill/reference/components/gallery/examples/controlled-open.tsx +39 -0
- package/dist/skill/reference/components/gallery/examples/examples.module.css +14 -0
- package/dist/skill/reference/components/gallery/examples/overview.tsx +52 -0
- package/dist/skill/reference/components/gallery/examples/transfer.tsx +45 -0
- package/dist/skill/reference/components/gantt/COMPONENT.md +224 -0
- package/dist/skill/reference/components/gantt/examples/controlled.tsx +72 -0
- package/dist/skill/reference/components/gantt/examples/examples.module.css +30 -0
- package/dist/skill/reference/components/gantt/examples/large.tsx +96 -0
- package/dist/skill/reference/components/gantt/examples/narrow.tsx +54 -0
- package/dist/skill/reference/components/gantt/examples/occupancy.tsx +149 -0
- package/dist/skill/reference/components/gantt/examples/overview.tsx +82 -0
- package/dist/skill/reference/components/gantt/examples/sizes.tsx +48 -0
- package/dist/skill/reference/components/gantt/examples/states.tsx +68 -0
- package/dist/skill/reference/components/gantt/examples/variants.tsx +82 -0
- package/dist/skill/reference/components/hint/COMPONENT.md +113 -0
- package/dist/skill/reference/components/hint/examples/examples.module.css +14 -0
- package/dist/skill/reference/components/hint/examples/hint-or-error.tsx +27 -0
- package/dist/skill/reference/components/hint/examples/overview.tsx +22 -0
- package/dist/skill/reference/components/hint/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/hint/examples/states.tsx +27 -0
- package/dist/skill/reference/components/hint/examples/with-icon.tsx +31 -0
- package/dist/skill/reference/components/input/COMPONENT.md +297 -0
- package/dist/skill/reference/components/input/examples/affixes.tsx +22 -0
- package/dist/skill/reference/components/input/examples/controlled.tsx +39 -0
- package/dist/skill/reference/components/input/examples/edge-actions.tsx +30 -0
- package/dist/skill/reference/components/input/examples/examples.module.css +38 -0
- package/dist/skill/reference/components/input/examples/in-form.tsx +107 -0
- package/dist/skill/reference/components/input/examples/inline-edit.tsx +52 -0
- package/dist/skill/reference/components/input/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/input/examples/password-strength.tsx +13 -0
- package/dist/skill/reference/components/input/examples/sizes.tsx +18 -0
- package/dist/skill/reference/components/input/examples/states.tsx +27 -0
- package/dist/skill/reference/components/input/examples/validation.tsx +60 -0
- package/dist/skill/reference/components/input/examples/with-icon.tsx +25 -0
- package/dist/skill/reference/components/input/examples/without-focus-ring.tsx +25 -0
- package/dist/skill/reference/components/kanban/COMPONENT.md +239 -0
- package/dist/skill/reference/components/kanban/examples/cards.tsx +152 -0
- package/dist/skill/reference/components/kanban/examples/columns.tsx +182 -0
- package/dist/skill/reference/components/kanban/examples/controlled.tsx +78 -0
- package/dist/skill/reference/components/kanban/examples/examples.module.css +37 -0
- package/dist/skill/reference/components/kanban/examples/limits.tsx +60 -0
- package/dist/skill/reference/components/kanban/examples/narrow.tsx +76 -0
- package/dist/skill/reference/components/kanban/examples/overview.tsx +130 -0
- package/dist/skill/reference/components/kanban/examples/saving.tsx +83 -0
- package/dist/skill/reference/components/kanban/examples/states.tsx +75 -0
- package/dist/skill/reference/components/kanban/examples/structure.tsx +76 -0
- package/dist/skill/reference/components/kanban/examples/variants.tsx +57 -0
- package/dist/skill/reference/components/kbd/COMPONENT.md +99 -0
- package/dist/skill/reference/components/kbd/examples/examples.module.css +37 -0
- package/dist/skill/reference/components/kbd/examples/in-controls.tsx +34 -0
- package/dist/skill/reference/components/kbd/examples/overview.tsx +24 -0
- package/dist/skill/reference/components/kbd/examples/shortcut-list.tsx +49 -0
- package/dist/skill/reference/components/kbd/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/label/COMPONENT.md +126 -0
- package/dist/skill/reference/components/label/examples/examples.module.css +16 -0
- package/dist/skill/reference/components/label/examples/overview.tsx +20 -0
- package/dist/skill/reference/components/label/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/label/examples/states.tsx +23 -0
- package/dist/skill/reference/components/label/examples/structure.tsx +32 -0
- package/dist/skill/reference/components/label/examples/with-icon.tsx +31 -0
- package/dist/skill/reference/components/link-button/COMPONENT.md +128 -0
- package/dist/skill/reference/components/link-button/examples/as-child.tsx +18 -0
- package/dist/skill/reference/components/link-button/examples/external-link.tsx +14 -0
- package/dist/skill/reference/components/link-button/examples/overview.tsx +11 -0
- package/dist/skill/reference/components/link-button/examples/sizes.tsx +21 -0
- package/dist/skill/reference/components/link-button/examples/states.tsx +31 -0
- package/dist/skill/reference/components/link-button/examples/variants.tsx +21 -0
- package/dist/skill/reference/components/link-button/examples/with-icon.tsx +27 -0
- package/dist/skill/reference/components/login-form/COMPONENT.md +163 -0
- package/dist/skill/reference/components/login-form/examples/examples.module.css +39 -0
- package/dist/skill/reference/components/login-form/examples/forgot-password.tsx +39 -0
- package/dist/skill/reference/components/login-form/examples/narrow.tsx +32 -0
- package/dist/skill/reference/components/login-form/examples/overview.tsx +58 -0
- package/dist/skill/reference/components/login-form/examples/register.tsx +80 -0
- package/dist/skill/reference/components/login-form/examples/reset-password.tsx +60 -0
- package/dist/skill/reference/components/login-form/examples/sizes.tsx +38 -0
- package/dist/skill/reference/components/login-form/examples/states.tsx +71 -0
- package/dist/skill/reference/components/login-form/examples/structure.tsx +28 -0
- package/dist/skill/reference/components/login-form/examples/verification-code.tsx +57 -0
- package/dist/skill/reference/components/media-viewer/COMPONENT.md +207 -0
- package/dist/skill/reference/components/media-viewer/examples/actions.tsx +86 -0
- package/dist/skill/reference/components/media-viewer/examples/controlled-open.tsx +30 -0
- package/dist/skill/reference/components/media-viewer/examples/controlled.tsx +54 -0
- package/dist/skill/reference/components/media-viewer/examples/dismiss.tsx +34 -0
- package/dist/skill/reference/components/media-viewer/examples/examples.module.css +16 -0
- package/dist/skill/reference/components/media-viewer/examples/origin.tsx +60 -0
- package/dist/skill/reference/components/media-viewer/examples/overview.tsx +75 -0
- package/dist/skill/reference/components/media-viewer/examples/thumbnails.tsx +49 -0
- package/dist/skill/reference/components/media-viewer/examples/video.tsx +55 -0
- package/dist/skill/reference/components/message/COMPONENT.md +444 -0
- package/dist/skill/reference/components/message/examples/author.tsx +74 -0
- package/dist/skill/reference/components/message/examples/contact.tsx +24 -0
- package/dist/skill/reference/components/message/examples/context-menu.tsx +71 -0
- package/dist/skill/reference/components/message/examples/examples.module.css +18 -0
- package/dist/skill/reference/components/message/examples/file.tsx +79 -0
- package/dist/skill/reference/components/message/examples/kinds.tsx +93 -0
- package/dist/skill/reference/components/message/examples/link-preview.tsx +17 -0
- package/dist/skill/reference/components/message/examples/location.tsx +30 -0
- package/dist/skill/reference/components/message/examples/media.tsx +93 -0
- package/dist/skill/reference/components/message/examples/narrow.tsx +29 -0
- package/dist/skill/reference/components/message/examples/overview.tsx +52 -0
- package/dist/skill/reference/components/message/examples/reactions.tsx +73 -0
- package/dist/skill/reference/components/message/examples/status.tsx +45 -0
- package/dist/skill/reference/components/message/examples/structure.tsx +32 -0
- package/dist/skill/reference/components/message/examples/text-formatting.tsx +27 -0
- package/dist/skill/reference/components/message/examples/typing.tsx +22 -0
- package/dist/skill/reference/components/message/examples/voice.tsx +39 -0
- package/dist/skill/reference/components/modal/COMPONENT.md +247 -0
- package/dist/skill/reference/components/modal/examples/controlled-open.tsx +33 -0
- package/dist/skill/reference/components/modal/examples/custom-container.tsx +29 -0
- package/dist/skill/reference/components/modal/examples/dismiss.tsx +54 -0
- package/dist/skill/reference/components/modal/examples/examples.module.css +21 -0
- package/dist/skill/reference/components/modal/examples/guard.tsx +87 -0
- package/dist/skill/reference/components/modal/examples/in-form.tsx +83 -0
- package/dist/skill/reference/components/modal/examples/long-content.tsx +52 -0
- package/dist/skill/reference/components/modal/examples/overview.tsx +35 -0
- package/dist/skill/reference/components/modal/examples/sizes.tsx +48 -0
- package/dist/skill/reference/components/modal/examples/structure.tsx +53 -0
- package/dist/skill/reference/components/native-select/COMPONENT.md +132 -0
- package/dist/skill/reference/components/native-select/examples/controlled.tsx +26 -0
- package/dist/skill/reference/components/native-select/examples/examples.module.css +16 -0
- package/dist/skill/reference/components/native-select/examples/in-form.tsx +58 -0
- package/dist/skill/reference/components/native-select/examples/option-groups.tsx +17 -0
- package/dist/skill/reference/components/native-select/examples/overview.tsx +16 -0
- package/dist/skill/reference/components/native-select/examples/sizes.tsx +18 -0
- package/dist/skill/reference/components/native-select/examples/states.tsx +21 -0
- package/dist/skill/reference/components/native-select/examples/validation.tsx +31 -0
- package/dist/skill/reference/components/notification/COMPONENT.md +193 -0
- package/dist/skill/reference/components/notification/examples/dismiss.tsx +50 -0
- package/dist/skill/reference/components/notification/examples/examples.module.css +52 -0
- package/dist/skill/reference/components/notification/examples/in-form.tsx +64 -0
- package/dist/skill/reference/components/notification/examples/overview.tsx +24 -0
- package/dist/skill/reference/components/notification/examples/placement.tsx +66 -0
- package/dist/skill/reference/components/notification/examples/sizes.tsx +22 -0
- package/dist/skill/reference/components/notification/examples/stacking.tsx +45 -0
- package/dist/skill/reference/components/notification/examples/structure.tsx +20 -0
- package/dist/skill/reference/components/notification/examples/tones.tsx +25 -0
- package/dist/skill/reference/components/notification/examples/undo.tsx +61 -0
- package/dist/skill/reference/components/page-content/COMPONENT.md +215 -0
- package/dist/skill/reference/components/page-content/examples/examples.module.css +76 -0
- package/dist/skill/reference/components/page-content/examples/list-detail.tsx +114 -0
- package/dist/skill/reference/components/page-content/examples/narrow.tsx +25 -0
- package/dist/skill/reference/components/page-content/examples/overview.tsx +41 -0
- package/dist/skill/reference/components/page-content/examples/variants.tsx +39 -0
- package/dist/skill/reference/components/page-toolbar/COMPONENT.md +141 -0
- package/dist/skill/reference/components/page-toolbar/examples/examples.module.css +16 -0
- package/dist/skill/reference/components/page-toolbar/examples/narrow.tsx +103 -0
- package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +113 -0
- package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +40 -0
- package/dist/skill/reference/components/page-toolbar/examples/without-search.tsx +60 -0
- package/dist/skill/reference/components/pagination/COMPONENT.md +132 -0
- package/dist/skill/reference/components/pagination/examples/controlled.tsx +51 -0
- package/dist/skill/reference/components/pagination/examples/examples.module.css +24 -0
- package/dist/skill/reference/components/pagination/examples/narrow.tsx +25 -0
- package/dist/skill/reference/components/pagination/examples/overflow.tsx +23 -0
- package/dist/skill/reference/components/pagination/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/pagination/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/popover/COMPONENT.md +183 -0
- package/dist/skill/reference/components/popover/examples/controlled-open.tsx +32 -0
- package/dist/skill/reference/components/popover/examples/dismiss.tsx +49 -0
- package/dist/skill/reference/components/popover/examples/examples.module.css +49 -0
- package/dist/skill/reference/components/popover/examples/flush.tsx +47 -0
- package/dist/skill/reference/components/popover/examples/from-menu.tsx +56 -0
- package/dist/skill/reference/components/popover/examples/in-form.tsx +76 -0
- package/dist/skill/reference/components/popover/examples/match-trigger-width.tsx +23 -0
- package/dist/skill/reference/components/popover/examples/overview.tsx +43 -0
- package/dist/skill/reference/components/popover/examples/placement.tsx +34 -0
- package/dist/skill/reference/components/popover/examples/sizes.tsx +36 -0
- package/dist/skill/reference/components/popover/examples/structure.tsx +50 -0
- package/dist/skill/reference/components/progress-bar/COMPONENT.md +199 -0
- package/dist/skill/reference/components/progress-bar/examples/custom-max.tsx +12 -0
- package/dist/skill/reference/components/progress-bar/examples/examples.module.css +17 -0
- package/dist/skill/reference/components/progress-bar/examples/legend.tsx +28 -0
- package/dist/skill/reference/components/progress-bar/examples/milestone.tsx +43 -0
- package/dist/skill/reference/components/progress-bar/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/progress-bar/examples/ranking.tsx +28 -0
- package/dist/skill/reference/components/progress-bar/examples/segments.tsx +32 -0
- package/dist/skill/reference/components/progress-bar/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/progress-bar/examples/states.tsx +43 -0
- package/dist/skill/reference/components/progress-bar/examples/steps.tsx +35 -0
- package/dist/skill/reference/components/progress-bar/examples/variants.tsx +34 -0
- package/dist/skill/reference/components/progress-circle/COMPONENT.md +189 -0
- package/dist/skill/reference/components/progress-circle/examples/examples.module.css +22 -0
- package/dist/skill/reference/components/progress-circle/examples/inner-content.tsx +35 -0
- package/dist/skill/reference/components/progress-circle/examples/legend.tsx +33 -0
- package/dist/skill/reference/components/progress-circle/examples/overview.tsx +10 -0
- package/dist/skill/reference/components/progress-circle/examples/segments.tsx +64 -0
- package/dist/skill/reference/components/progress-circle/examples/sizes.tsx +21 -0
- package/dist/skill/reference/components/progress-circle/examples/states.tsx +25 -0
- package/dist/skill/reference/components/progress-circle/examples/under-way.tsx +54 -0
- package/dist/skill/reference/components/progress-circle/examples/variants.tsx +28 -0
- package/dist/skill/reference/components/radio/COMPONENT.md +165 -0
- package/dist/skill/reference/components/radio/examples/controlled.tsx +30 -0
- package/dist/skill/reference/components/radio/examples/group.tsx +23 -0
- package/dist/skill/reference/components/radio/examples/orientation.tsx +34 -0
- package/dist/skill/reference/components/radio/examples/overview.tsx +18 -0
- package/dist/skill/reference/components/radio/examples/sizes.tsx +20 -0
- package/dist/skill/reference/components/radio/examples/states.tsx +48 -0
- package/dist/skill/reference/components/scroll-container/COMPONENT.md +179 -0
- package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +52 -0
- package/dist/skill/reference/components/scroll-container/examples/chat.tsx +101 -0
- package/dist/skill/reference/components/scroll-container/examples/edges.tsx +43 -0
- package/dist/skill/reference/components/scroll-container/examples/examples.module.css +139 -0
- package/dist/skill/reference/components/scroll-container/examples/lock.tsx +49 -0
- package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +27 -0
- package/dist/skill/reference/components/scroll-container/examples/overview.tsx +27 -0
- package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +52 -0
- package/dist/skill/reference/components/scroll-container/examples/snap.tsx +36 -0
- package/dist/skill/reference/components/scroll-container/examples/variants.tsx +54 -0
- package/dist/skill/reference/components/segmented-control/COMPONENT.md +214 -0
- package/dist/skill/reference/components/segmented-control/examples/colors.tsx +18 -0
- package/dist/skill/reference/components/segmented-control/examples/controlled.tsx +28 -0
- package/dist/skill/reference/components/segmented-control/examples/examples.module.css +20 -0
- package/dist/skill/reference/components/segmented-control/examples/full-width.tsx +12 -0
- package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +42 -0
- package/dist/skill/reference/components/segmented-control/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/segmented-control/examples/scroll.tsx +16 -0
- package/dist/skill/reference/components/segmented-control/examples/sizes.tsx +22 -0
- package/dist/skill/reference/components/segmented-control/examples/states.tsx +47 -0
- package/dist/skill/reference/components/segmented-control/examples/two-line.tsx +28 -0
- package/dist/skill/reference/components/segmented-control/examples/with-icon.tsx +52 -0
- package/dist/skill/reference/components/select/COMPONENT.md +300 -0
- package/dist/skill/reference/components/select/examples/clearable.tsx +23 -0
- package/dist/skill/reference/components/select/examples/controlled-open.tsx +30 -0
- package/dist/skill/reference/components/select/examples/controlled.tsx +34 -0
- package/dist/skill/reference/components/select/examples/examples.module.css +35 -0
- package/dist/skill/reference/components/select/examples/in-form.tsx +88 -0
- package/dist/skill/reference/components/select/examples/load-error.tsx +45 -0
- package/dist/skill/reference/components/select/examples/multiple.tsx +26 -0
- package/dist/skill/reference/components/select/examples/overview.tsx +17 -0
- package/dist/skill/reference/components/select/examples/people.tsx +53 -0
- package/dist/skill/reference/components/select/examples/rich-options.tsx +72 -0
- package/dist/skill/reference/components/select/examples/searchable.tsx +42 -0
- package/dist/skill/reference/components/select/examples/server-search.tsx +93 -0
- package/dist/skill/reference/components/select/examples/sizes.tsx +23 -0
- package/dist/skill/reference/components/select/examples/states.tsx +67 -0
- package/dist/skill/reference/components/select/examples/validation.tsx +46 -0
- package/dist/skill/reference/components/select/examples/with-icon.tsx +35 -0
- package/dist/skill/reference/components/sheet/COMPONENT.md +216 -0
- package/dist/skill/reference/components/sheet/examples/controlled-open.tsx +37 -0
- package/dist/skill/reference/components/sheet/examples/dismiss.tsx +42 -0
- package/dist/skill/reference/components/sheet/examples/examples.module.css +13 -0
- package/dist/skill/reference/components/sheet/examples/in-form.tsx +65 -0
- package/dist/skill/reference/components/sheet/examples/overview.tsx +50 -0
- package/{src/components/drawer/examples/date-sheet.tsx → dist/skill/reference/components/sheet/examples/structure.tsx} +11 -17
- package/dist/skill/reference/components/skeleton/COMPONENT.md +104 -0
- package/dist/skill/reference/components/skeleton/examples/examples.module.css +89 -0
- package/dist/skill/reference/components/skeleton/examples/form.tsx +20 -0
- package/dist/skill/reference/components/skeleton/examples/overview.tsx +21 -0
- package/dist/skill/reference/components/skeleton/examples/sizes.tsx +24 -0
- package/dist/skill/reference/components/skeleton/examples/with-crossfade.tsx +68 -0
- package/dist/skill/reference/components/slider/COMPONENT.md +186 -0
- package/dist/skill/reference/components/slider/examples/autosave.tsx +39 -0
- package/dist/skill/reference/components/slider/examples/controlled.tsx +39 -0
- package/dist/skill/reference/components/slider/examples/examples.module.css +24 -0
- package/dist/skill/reference/components/slider/examples/hint-and-error.tsx +33 -0
- package/dist/skill/reference/components/slider/examples/orientation.tsx +27 -0
- package/dist/skill/reference/components/slider/examples/overview.tsx +6 -0
- package/dist/skill/reference/components/slider/examples/range-step.tsx +19 -0
- package/dist/skill/reference/components/slider/examples/sizes.tsx +18 -0
- package/dist/skill/reference/components/slider/examples/states.tsx +18 -0
- package/dist/skill/reference/components/slider/examples/value-format.tsx +32 -0
- package/dist/skill/reference/components/slider/examples/variants.tsx +23 -0
- package/dist/skill/reference/components/smart-filter/COMPONENT.md +235 -0
- package/dist/skill/reference/components/smart-filter/examples/controlled.tsx +48 -0
- package/dist/skill/reference/components/smart-filter/examples/examples.module.css +56 -0
- package/dist/skill/reference/components/smart-filter/examples/many-values.tsx +53 -0
- package/dist/skill/reference/components/smart-filter/examples/narrow.tsx +38 -0
- package/dist/skill/reference/components/smart-filter/examples/option-groups.tsx +40 -0
- package/dist/skill/reference/components/smart-filter/examples/overview.tsx +109 -0
- package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +89 -0
- package/dist/skill/reference/components/smart-filter/examples/single-value.tsx +41 -0
- package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +33 -0
- package/dist/skill/reference/components/sparkline/COMPONENT.md +127 -0
- package/dist/skill/reference/components/sparkline/examples/examples.module.css +13 -0
- package/dist/skill/reference/components/sparkline/examples/overview.tsx +27 -0
- package/dist/skill/reference/components/sparkline/examples/period.tsx +46 -0
- package/dist/skill/reference/components/sparkline/examples/signed-bars.tsx +41 -0
- package/dist/skill/reference/components/sparkline/examples/states.tsx +30 -0
- package/dist/skill/reference/components/sparkline/examples/variants.tsx +29 -0
- package/dist/skill/reference/components/spinner/COMPONENT.md +114 -0
- package/dist/skill/reference/components/spinner/examples/examples.module.css +20 -0
- package/dist/skill/reference/components/spinner/examples/loading-region.tsx +22 -0
- package/dist/skill/reference/components/spinner/examples/overview.tsx +15 -0
- package/dist/skill/reference/components/spinner/examples/sizes.tsx +19 -0
- package/dist/skill/reference/components/spinner/examples/variants.tsx +19 -0
- package/dist/skill/reference/components/stepper/COMPONENT.md +176 -0
- package/dist/skill/reference/components/stepper/examples/controlled.tsx +46 -0
- package/dist/skill/reference/components/stepper/examples/examples.module.css +24 -0
- package/dist/skill/reference/components/stepper/examples/narrow.tsx +23 -0
- package/dist/skill/reference/components/stepper/examples/orientation.tsx +35 -0
- package/dist/skill/reference/components/stepper/examples/overview.tsx +28 -0
- package/dist/skill/reference/components/stepper/examples/sizes.tsx +31 -0
- package/dist/skill/reference/components/stepper/examples/states.tsx +49 -0
- package/dist/skill/reference/components/stepper/examples/with-icon.tsx +29 -0
- package/dist/skill/reference/components/switch/COMPONENT.md +147 -0
- package/dist/skill/reference/components/switch/examples/controlled.tsx +17 -0
- package/dist/skill/reference/components/switch/examples/examples.module.css +30 -0
- package/dist/skill/reference/components/switch/examples/in-form.tsx +36 -0
- package/dist/skill/reference/components/switch/examples/overview.tsx +10 -0
- package/dist/skill/reference/components/switch/examples/saving.tsx +53 -0
- package/dist/skill/reference/components/switch/examples/settings-row.tsx +24 -0
- package/dist/skill/reference/components/switch/examples/sizes.tsx +18 -0
- package/dist/skill/reference/components/switch/examples/states.tsx +48 -0
- package/dist/skill/reference/components/tabs/COMPONENT.md +276 -0
- package/dist/skill/reference/components/tabs/examples/closable.tsx +48 -0
- package/dist/skill/reference/components/tabs/examples/controlled.tsx +33 -0
- package/dist/skill/reference/components/tabs/examples/examples.module.css +38 -0
- package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +100 -0
- package/dist/skill/reference/components/tabs/examples/orientation.tsx +94 -0
- package/dist/skill/reference/components/tabs/examples/overflow.tsx +60 -0
- package/dist/skill/reference/components/tabs/examples/overview.tsx +30 -0
- package/dist/skill/reference/components/tabs/examples/sizes.tsx +30 -0
- package/dist/skill/reference/components/tabs/examples/states.tsx +26 -0
- package/dist/skill/reference/components/tabs/examples/two-line.tsx +56 -0
- package/dist/skill/reference/components/tabs/examples/variants.tsx +40 -0
- package/dist/skill/reference/components/tabs/examples/with-icon.tsx +44 -0
- package/dist/skill/reference/components/tag-select/COMPONENT.md +179 -0
- package/dist/skill/reference/components/tag-select/examples/confirm-delete.tsx +60 -0
- package/dist/skill/reference/components/tag-select/examples/controlled-open.tsx +29 -0
- package/dist/skill/reference/components/tag-select/examples/controlled.tsx +26 -0
- package/dist/skill/reference/components/tag-select/examples/creatable.tsx +49 -0
- package/dist/skill/reference/components/tag-select/examples/examples.module.css +16 -0
- package/dist/skill/reference/components/tag-select/examples/in-form.tsx +85 -0
- package/dist/skill/reference/components/tag-select/examples/manage-tags.tsx +38 -0
- package/dist/skill/reference/components/tag-select/examples/many-tags.tsx +20 -0
- package/dist/skill/reference/components/tag-select/examples/overview.tsx +21 -0
- package/dist/skill/reference/components/tag-select/examples/sizes.tsx +27 -0
- package/dist/skill/reference/components/tag-select/examples/states.tsx +24 -0
- package/dist/skill/reference/components/tag-select/examples/validation.tsx +40 -0
- package/dist/skill/reference/components/textarea/COMPONENT.md +206 -0
- package/dist/skill/reference/components/textarea/examples/auto-resize.tsx +28 -0
- package/dist/skill/reference/components/textarea/examples/controlled.tsx +21 -0
- package/dist/skill/reference/components/textarea/examples/edge-actions.tsx +24 -0
- package/dist/skill/reference/components/textarea/examples/examples.module.css +27 -0
- package/dist/skill/reference/components/textarea/examples/in-form.tsx +76 -0
- package/dist/skill/reference/components/textarea/examples/inline-edit.tsx +42 -0
- package/dist/skill/reference/components/textarea/examples/overview.tsx +12 -0
- package/dist/skill/reference/components/textarea/examples/sizes.tsx +20 -0
- package/dist/skill/reference/components/textarea/examples/states.tsx +21 -0
- package/dist/skill/reference/components/textarea/examples/validation.tsx +50 -0
- package/dist/skill/reference/components/textarea/examples/without-focus-ring.tsx +12 -0
- package/dist/skill/reference/components/thumbnail/COMPONENT.md +191 -0
- package/dist/skill/reference/components/thumbnail/examples/controlled.tsx +61 -0
- package/dist/skill/reference/components/thumbnail/examples/examples.module.css +76 -0
- package/dist/skill/reference/components/thumbnail/examples/full-width.tsx +45 -0
- package/dist/skill/reference/components/thumbnail/examples/overview.tsx +27 -0
- package/dist/skill/reference/components/thumbnail/examples/pressable.tsx +56 -0
- package/dist/skill/reference/components/thumbnail/examples/ratios.tsx +25 -0
- package/dist/skill/reference/components/thumbnail/examples/ring.tsx +29 -0
- package/dist/skill/reference/components/thumbnail/examples/sizes.tsx +23 -0
- package/dist/skill/reference/components/thumbnail/examples/states.tsx +38 -0
- package/dist/skill/reference/components/thumbnail/examples/variants.tsx +28 -0
- package/dist/skill/reference/components/thumbnail/examples/video.tsx +46 -0
- package/dist/skill/reference/components/timeline/COMPONENT.md +181 -0
- package/dist/skill/reference/components/timeline/examples/examples.module.css +25 -0
- package/dist/skill/reference/components/timeline/examples/links.tsx +28 -0
- package/dist/skill/reference/components/timeline/examples/narrow.tsx +41 -0
- package/dist/skill/reference/components/timeline/examples/overview.tsx +47 -0
- package/dist/skill/reference/components/timeline/examples/sizes.tsx +33 -0
- package/dist/skill/reference/components/timeline/examples/structure.tsx +56 -0
- package/dist/skill/reference/components/timeline/examples/variants.tsx +56 -0
- package/dist/skill/reference/components/tooltip/COMPONENT.md +167 -0
- package/dist/skill/reference/components/tooltip/examples/controlled-open.tsx +23 -0
- package/dist/skill/reference/components/tooltip/examples/delay.tsx +25 -0
- package/dist/skill/reference/components/tooltip/examples/disabled-trigger.tsx +13 -0
- package/dist/skill/reference/components/tooltip/examples/examples.module.css +20 -0
- package/dist/skill/reference/components/tooltip/examples/long-content.tsx +18 -0
- package/dist/skill/reference/components/tooltip/examples/non-interactive-trigger.tsx +31 -0
- package/dist/skill/reference/components/tooltip/examples/overview.tsx +17 -0
- package/dist/skill/reference/components/tooltip/examples/placement.tsx +30 -0
- package/dist/skill/reference/components/tooltip/examples/sizes.tsx +21 -0
- package/dist/skill/reference/components/tooltip/examples/toolbar.tsx +35 -0
- package/dist/skill/reference/components/typography/COMPONENT.md +126 -0
- package/dist/skill/reference/components/typography/examples/article.tsx +36 -0
- package/dist/skill/reference/components/typography/examples/examples.module.css +41 -0
- package/dist/skill/reference/components/typography/examples/inline-emphasis.tsx +20 -0
- package/dist/skill/reference/components/typography/examples/overview.tsx +20 -0
- package/dist/skill/reference/components/typography/examples/semantic-tag.tsx +17 -0
- package/dist/skill/reference/components/typography/examples/truncate.tsx +19 -0
- package/dist/skill/reference/components/typography/examples/variants.tsx +50 -0
- package/dist/skill/reference/components/typography/examples/weights.tsx +31 -0
- package/dist/skill/reference/components/video-note/COMPONENT.md +173 -0
- package/dist/skill/reference/components/video-note/examples/controlled.tsx +28 -0
- package/dist/skill/reference/components/video-note/examples/examples.module.css +4 -0
- package/dist/skill/reference/components/video-note/examples/in-message.tsx +22 -0
- package/dist/skill/reference/components/video-note/examples/overview.tsx +8 -0
- package/dist/skill/reference/components/video-note/examples/states.tsx +74 -0
- package/dist/skill/reference/components/video-note/examples/transcript.tsx +29 -0
- package/dist/skill/reference/components/video-note/examples/transfer.tsx +76 -0
- package/dist/skill/reference/components/visually-hidden/COMPONENT.md +81 -0
- package/dist/skill/reference/components/visually-hidden/examples/overview.tsx +22 -0
- package/dist/skill/reference/components/voice-player/COMPONENT.md +192 -0
- package/dist/skill/reference/components/voice-player/examples/call-recording.tsx +34 -0
- package/dist/skill/reference/components/voice-player/examples/controlled.tsx +38 -0
- package/dist/skill/reference/components/voice-player/examples/examples.module.css +23 -0
- package/dist/skill/reference/components/voice-player/examples/in-message.tsx +29 -0
- package/dist/skill/reference/components/voice-player/examples/overview.tsx +13 -0
- package/dist/skill/reference/components/voice-player/examples/states.tsx +81 -0
- package/dist/skill/reference/components/voice-player/examples/transcript.tsx +50 -0
- package/dist/skill/reference/components/voice-player/examples/transfer.tsx +88 -0
- package/dist/skill/reference/icon-set.ts +530 -0
- package/dist/skill/reference/layout/app-header/COMPONENT.md +203 -0
- package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +36 -0
- package/dist/skill/reference/layout/app-header/examples/examples.module.css +47 -0
- package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +70 -0
- package/dist/skill/reference/layout/app-header/examples/narrow.tsx +29 -0
- package/dist/skill/reference/layout/app-header/examples/overview.tsx +36 -0
- package/dist/skill/reference/layout/app-header/examples/page-title.tsx +85 -0
- package/dist/skill/reference/layout/app-shell/COMPONENT.md +156 -0
- package/dist/skill/reference/layout/app-shell/examples/contained.tsx +30 -0
- package/dist/skill/reference/layout/app-shell/examples/examples.module.css +44 -0
- package/dist/skill/reference/layout/app-shell/examples/footer.tsx +59 -0
- package/dist/skill/reference/layout/app-shell/examples/overview.tsx +83 -0
- package/dist/skill/reference/layout/app-shell/examples/template.tsx +54 -0
- package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +169 -0
- package/dist/skill/reference/layout/bottom-nav/examples/examples.module.css +46 -0
- package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +91 -0
- package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +89 -0
- package/dist/skill/reference/layout/bottom-nav/examples/icon-only.tsx +41 -0
- package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +64 -0
- package/dist/skill/reference/layout/bottom-nav/examples/overview.tsx +44 -0
- package/dist/skill/reference/layout/bottom-nav/examples/router.tsx +31 -0
- package/dist/skill/reference/layout/bottom-nav/examples/structure.tsx +47 -0
- package/dist/skill/reference/layout/sidebar/COMPONENT.md +402 -0
- package/dist/skill/reference/layout/sidebar/examples/account.tsx +88 -0
- package/dist/skill/reference/layout/sidebar/examples/brand-header.tsx +45 -0
- package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +77 -0
- package/dist/skill/reference/layout/sidebar/examples/controlled-open.tsx +55 -0
- package/dist/skill/reference/layout/sidebar/examples/controlled.tsx +68 -0
- package/dist/skill/reference/layout/sidebar/examples/examples.module.css +64 -0
- package/dist/skill/reference/layout/sidebar/examples/nested-items.tsx +74 -0
- package/dist/skill/reference/layout/sidebar/examples/overview.tsx +126 -0
- package/dist/skill/reference/layout/sidebar/examples/router.tsx +33 -0
- package/dist/skill/reference/layout/sidebar/examples/sizes.tsx +39 -0
- package/dist/skill/reference/layout/sidebar/examples/structure.tsx +81 -0
- package/dist/skill/responsive.md +274 -0
- package/dist/theme/chartColors.d.ts +20 -0
- package/dist/tokens/primitives.d.ts +30 -0
- package/dist/tokens/semantic.d.ts +188 -18
- package/dist/tokens/themes/dark.d.ts +41 -2
- package/package.json +14 -10
- package/src/components/accordion/COMPONENT.md +1 -1
- package/src/components/avatar/COMPONENT.md +5 -3
- package/src/components/avatar/examples/presence.tsx +17 -2
- package/src/components/avatar/examples/team-group.tsx +27 -7
- package/src/components/badge/COMPONENT.md +17 -6
- package/src/components/badge/examples/server-tags.tsx +61 -0
- package/src/components/badge/examples/states.tsx +9 -1
- package/src/components/banner/COMPONENT.md +1 -1
- package/src/components/breadcrumb/COMPONENT.md +2 -2
- package/src/components/button/COMPONENT.md +40 -14
- package/src/components/button/examples/circle.tsx +67 -0
- package/src/components/button/examples/examples.module.css +22 -0
- package/src/components/button/examples/hold-to-confirm.tsx +13 -2
- package/src/components/button/examples/over-media.tsx +36 -0
- package/src/components/button/examples/toggle.tsx +21 -0
- package/src/components/button-group/COMPONENT.md +30 -13
- package/src/components/button-group/examples/in-form.tsx +42 -7
- package/src/components/card/COMPONENT.md +37 -13
- package/src/components/card/examples/interactive.tsx +28 -0
- package/src/components/card/examples/panel-chart.tsx +2 -1
- package/src/components/card/examples/variants.tsx +3 -1
- package/src/components/chart-frame/COMPONENT.md +265 -0
- package/src/components/chart-frame/examples/controlled.tsx +92 -0
- package/src/components/chart-frame/examples/examples.module.css +6 -0
- package/src/components/chart-frame/examples/narrow.tsx +46 -0
- package/src/components/chart-frame/examples/overview.tsx +127 -0
- package/src/components/chart-frame/examples/states.tsx +78 -0
- package/src/components/chart-frame/examples/tooltip.tsx +158 -0
- package/src/components/chat/COMPONENT.md +336 -0
- package/src/components/chat/examples/controlled.tsx +68 -0
- package/src/components/chat/examples/examples.module.css +38 -0
- package/src/components/chat/examples/group-chat.tsx +130 -0
- package/src/components/chat/examples/live.tsx +89 -0
- package/src/components/chat/examples/narrow.tsx +46 -0
- package/src/components/chat/examples/overview.tsx +839 -0
- package/src/components/chat/examples/search.tsx +61 -0
- package/src/components/chat/examples/structure.tsx +28 -0
- package/src/components/checkbox/COMPONENT.md +14 -3
- package/src/components/checkbox/examples/variants.tsx +30 -0
- package/src/components/color-field/COMPONENT.md +163 -0
- package/src/components/color-field/examples/controlled.tsx +33 -0
- package/src/components/color-field/examples/examples.module.css +22 -0
- package/src/components/color-field/examples/in-form.tsx +45 -0
- package/src/components/color-field/examples/overview.tsx +6 -0
- package/src/components/color-field/examples/presets.tsx +20 -0
- package/src/components/color-field/examples/sizes.tsx +14 -0
- package/src/components/color-field/examples/states.tsx +12 -0
- package/src/components/color-field/examples/validation.tsx +29 -0
- package/src/components/color-picker/COMPONENT.md +26 -16
- package/src/components/color-picker/examples/overview.tsx +1 -1
- package/src/components/color-picker/examples/presets-sizes.tsx +3 -1
- package/src/components/color-picker/examples/presets.tsx +5 -3
- package/src/components/color-swatches/COMPONENT.md +13 -12
- package/src/components/color-swatches/examples/sizes.tsx +1 -1
- package/src/components/color-swatches/examples/wrapping.tsx +1 -1
- package/src/components/command-menu/COMPONENT.md +46 -17
- package/src/components/command-menu/examples/controlled.tsx +3 -3
- package/src/components/command-menu/examples/load-error.tsx +65 -0
- package/src/components/command-menu/examples/server-search.tsx +91 -0
- package/src/components/composer/COMPONENT.md +310 -0
- package/src/components/composer/examples/attachments.tsx +36 -0
- package/src/components/composer/examples/controlled.tsx +46 -0
- package/src/components/composer/examples/examples.module.css +30 -0
- package/src/components/composer/examples/formatting.tsx +15 -0
- package/src/components/composer/examples/narrow.tsx +22 -0
- package/src/components/composer/examples/overview.tsx +39 -0
- package/src/components/composer/examples/reply-edit.tsx +68 -0
- package/src/components/composer/examples/sizes.tsx +23 -0
- package/src/components/composer/examples/states.tsx +31 -0
- package/src/components/composer/examples/typing.tsx +24 -0
- package/src/components/composer/examples/voice.tsx +21 -0
- package/src/components/confirm-dialog/COMPONENT.md +124 -0
- package/src/components/confirm-dialog/examples/controlled-open.tsx +35 -0
- package/src/components/confirm-dialog/examples/failure.tsx +37 -0
- package/src/components/confirm-dialog/examples/overview.tsx +24 -0
- package/src/components/confirm-dialog/examples/variants.tsx +44 -0
- package/src/components/crossfade/COMPONENT.md +16 -2
- package/src/components/crossfade/examples/examples.module.css +28 -0
- package/src/components/crossfade/examples/fill.tsx +79 -0
- package/src/components/data-table/COMPONENT.md +136 -29
- package/src/components/data-table/examples/columns-visibility.tsx +26 -42
- package/src/components/data-table/examples/examples.module.css +9 -0
- package/src/components/data-table/examples/fill-height.tsx +55 -0
- package/src/components/data-table/examples/groups.tsx +73 -0
- package/src/components/data-table/examples/heatmap.tsx +44 -0
- package/src/components/data-table/examples/reorder.tsx +61 -0
- package/src/components/data-table/examples/row-link.tsx +100 -0
- package/src/components/data-table/examples/row-open.tsx +129 -0
- package/src/components/data-table/examples/server.tsx +181 -0
- package/src/components/datepicker/COMPONENT.md +14 -10
- package/src/components/datepicker/examples/in-form.tsx +12 -3
- package/src/components/datepicker/examples/inline-panel.tsx +9 -3
- package/src/components/description-list/COMPONENT.md +132 -0
- package/src/components/description-list/examples/examples.module.css +41 -0
- package/src/components/description-list/examples/narrow.tsx +20 -0
- package/src/components/description-list/examples/overview.tsx +35 -0
- package/src/components/description-list/examples/sizes.tsx +24 -0
- package/src/components/description-list/examples/structure.tsx +29 -0
- package/src/components/description-list/examples/vertical.tsx +21 -0
- package/src/components/digit-input/COMPONENT.md +12 -6
- package/src/components/digit-input/examples/on-complete.tsx +19 -7
- package/src/components/divider/COMPONENT.md +1 -1
- package/src/components/dnd/COMPONENT.md +93 -30
- package/src/components/dnd/examples/board.tsx +16 -8
- package/src/components/dnd/examples/drop-zones.tsx +2 -2
- package/src/components/dnd/examples/examples.module.css +23 -0
- package/src/components/dnd/examples/grid.tsx +48 -0
- package/src/components/dnd/examples/handle.tsx +7 -2
- package/src/components/dnd/examples/locked.tsx +57 -0
- package/src/components/dnd/examples/narrow.tsx +1 -1
- package/src/components/drawer/COMPONENT.md +66 -33
- package/src/components/drawer/examples/controlled-open.tsx +8 -1
- package/src/components/drawer/examples/examples.module.css +0 -5
- package/src/components/drawer/examples/guard.tsx +80 -0
- package/src/components/drawer/examples/header-actions.tsx +63 -0
- package/src/components/drawer/examples/overview.tsx +9 -1
- package/src/components/drawer/examples/placement.tsx +9 -4
- package/src/components/drawer/examples/sizes.tsx +7 -0
- package/src/components/dropdown/COMPONENT.md +35 -17
- package/src/components/dropdown/examples/item-description.tsx +30 -0
- package/src/components/dropdown/examples/link-items.tsx +29 -0
- package/src/components/dropdown/examples/overview.tsx +1 -1
- package/src/components/dropdown/examples/structure.tsx +1 -1
- package/src/components/empty-page/COMPONENT.md +44 -16
- package/src/components/empty-page/examples/examples.module.css +19 -2
- package/src/components/empty-page/examples/region-error.tsx +86 -0
- package/src/components/empty-page/examples/variants.tsx +43 -0
- package/src/components/example-frame/COMPONENT.md +3 -2
- package/src/components/fieldset/COMPONENT.md +107 -0
- package/src/components/fieldset/examples/examples.module.css +14 -0
- package/src/components/fieldset/examples/in-form.tsx +59 -0
- package/src/components/fieldset/examples/overview.tsx +22 -0
- package/src/components/fieldset/examples/states.tsx +35 -0
- package/src/components/file-upload/COMPONENT.md +254 -62
- package/src/components/file-upload/examples/attachment-tray.tsx +99 -0
- package/src/components/file-upload/examples/controlled.tsx +77 -0
- package/src/components/file-upload/examples/examples.module.css +38 -7
- package/src/components/file-upload/examples/file-cards.tsx +64 -0
- package/src/components/file-upload/examples/gallery.tsx +104 -0
- package/src/components/file-upload/examples/in-form.tsx +33 -54
- package/src/components/file-upload/examples/narrow.tsx +64 -8
- package/src/components/file-upload/examples/overview.tsx +34 -37
- package/src/components/file-upload/examples/row-parts.tsx +41 -0
- package/src/components/file-upload/examples/saving.tsx +71 -0
- package/src/components/file-upload/examples/sizes.tsx +13 -14
- package/src/components/file-upload/examples/states.tsx +12 -3
- package/src/components/file-upload/examples/validation.tsx +17 -25
- package/src/components/file-upload/examples/variants.tsx +21 -2
- package/src/components/gallery/COMPONENT.md +151 -0
- package/src/components/gallery/examples/controlled-open.tsx +39 -0
- package/src/components/gallery/examples/examples.module.css +14 -0
- package/src/components/gallery/examples/overview.tsx +52 -0
- package/src/components/gallery/examples/transfer.tsx +45 -0
- package/src/components/gantt/COMPONENT.md +224 -0
- package/src/components/gantt/examples/controlled.tsx +72 -0
- package/src/components/gantt/examples/examples.module.css +30 -0
- package/src/components/gantt/examples/large.tsx +96 -0
- package/src/components/gantt/examples/narrow.tsx +54 -0
- package/src/components/gantt/examples/occupancy.tsx +149 -0
- package/src/components/gantt/examples/overview.tsx +82 -0
- package/src/components/gantt/examples/sizes.tsx +48 -0
- package/src/components/gantt/examples/states.tsx +68 -0
- package/src/components/gantt/examples/variants.tsx +82 -0
- package/src/components/hint/COMPONENT.md +3 -3
- package/src/components/hint/examples/overview.tsx +10 -22
- package/src/components/input/COMPONENT.md +69 -13
- package/src/components/input/examples/edge-actions.tsx +30 -0
- package/src/components/input/examples/inline-edit.tsx +52 -0
- package/src/components/input/examples/password-strength.tsx +2 -1
- package/src/components/kanban/COMPONENT.md +94 -36
- package/src/components/kanban/examples/cards.tsx +152 -0
- package/src/components/kanban/examples/columns.tsx +182 -0
- package/src/components/kanban/examples/examples.module.css +6 -0
- package/src/components/kanban/examples/limits.tsx +5 -3
- package/src/components/kanban/examples/saving.tsx +83 -0
- package/src/components/kanban/examples/variants.tsx +57 -0
- package/src/components/label/COMPONENT.md +4 -4
- package/src/components/label/examples/overview.tsx +11 -8
- package/src/components/link-button/COMPONENT.md +3 -1
- package/src/components/login-form/COMPONENT.md +4 -3
- package/src/components/login-form/examples/overview.tsx +2 -2
- package/src/components/login-form/examples/register.tsx +2 -7
- package/src/components/login-form/examples/states.tsx +18 -22
- package/src/components/media-viewer/COMPONENT.md +207 -0
- package/src/components/media-viewer/examples/actions.tsx +86 -0
- package/src/components/media-viewer/examples/controlled-open.tsx +30 -0
- package/src/components/media-viewer/examples/controlled.tsx +54 -0
- package/src/components/media-viewer/examples/dismiss.tsx +34 -0
- package/src/components/media-viewer/examples/examples.module.css +16 -0
- package/src/components/media-viewer/examples/origin.tsx +60 -0
- package/src/components/media-viewer/examples/overview.tsx +75 -0
- package/src/components/media-viewer/examples/thumbnails.tsx +49 -0
- package/src/components/media-viewer/examples/video.tsx +55 -0
- package/src/components/message/COMPONENT.md +444 -0
- package/src/components/message/examples/author.tsx +74 -0
- package/src/components/message/examples/contact.tsx +24 -0
- package/src/components/message/examples/context-menu.tsx +71 -0
- package/src/components/message/examples/examples.module.css +18 -0
- package/src/components/message/examples/file.tsx +79 -0
- package/src/components/message/examples/kinds.tsx +93 -0
- package/src/components/message/examples/link-preview.tsx +17 -0
- package/src/components/message/examples/location.tsx +30 -0
- package/src/components/message/examples/media.tsx +93 -0
- package/src/components/message/examples/narrow.tsx +29 -0
- package/src/components/message/examples/overview.tsx +52 -0
- package/src/components/message/examples/reactions.tsx +73 -0
- package/src/components/message/examples/status.tsx +45 -0
- package/src/components/message/examples/structure.tsx +32 -0
- package/src/components/message/examples/text-formatting.tsx +27 -0
- package/src/components/message/examples/typing.tsx +22 -0
- package/src/components/message/examples/voice.tsx +39 -0
- package/src/components/modal/COMPONENT.md +51 -20
- package/src/components/modal/examples/guard.tsx +87 -0
- package/src/components/modal/examples/sizes.tsx +2 -1
- package/src/components/native-select/COMPONENT.md +1 -1
- package/src/components/notification/COMPONENT.md +4 -1
- package/src/components/notification/examples/examples.module.css +11 -1
- package/src/components/notification/examples/undo.tsx +61 -0
- package/src/components/page-content/COMPONENT.md +78 -11
- package/src/components/page-content/examples/examples.module.css +54 -0
- package/src/components/page-content/examples/list-detail.tsx +114 -0
- package/src/components/page-content/examples/variants.tsx +1 -1
- package/src/components/page-toolbar/COMPONENT.md +21 -22
- package/src/components/page-toolbar/examples/narrow.tsx +4 -4
- package/src/components/page-toolbar/examples/overview.tsx +4 -4
- package/src/components/pagination/COMPONENT.md +1 -1
- package/src/components/popover/COMPONENT.md +15 -7
- package/src/components/popover/examples/examples.module.css +5 -0
- package/src/components/popover/examples/from-menu.tsx +56 -0
- package/src/components/progress-bar/COMPONENT.md +57 -13
- package/src/components/progress-bar/examples/legend.tsx +28 -0
- package/src/components/progress-bar/examples/ranking.tsx +28 -0
- package/src/components/progress-bar/examples/states.tsx +43 -0
- package/src/components/progress-circle/COMPONENT.md +70 -27
- package/src/components/progress-circle/examples/examples.module.css +5 -0
- package/src/components/progress-circle/examples/legend.tsx +33 -0
- package/src/components/progress-circle/examples/states.tsx +25 -0
- package/src/components/progress-circle/examples/under-way.tsx +54 -0
- package/src/components/radio/COMPONENT.md +3 -3
- package/src/components/scroll-container/COMPONENT.md +85 -24
- package/src/components/scroll-container/examples/auto-scroll.tsx +52 -0
- package/src/components/scroll-container/examples/chat.tsx +101 -0
- package/src/components/scroll-container/examples/edges.tsx +43 -0
- package/src/components/scroll-container/examples/examples.module.css +73 -0
- package/src/components/scroll-container/examples/lock.tsx +49 -0
- package/src/components/scroll-container/examples/scrollbar.tsx +52 -0
- package/src/components/scroll-container/examples/snap.tsx +36 -0
- package/src/components/segmented-control/COMPONENT.md +32 -13
- package/src/components/segmented-control/examples/examples.module.css +11 -0
- package/src/components/segmented-control/examples/in-form.tsx +42 -0
- package/src/components/select/COMPONENT.md +89 -21
- package/src/components/select/examples/load-error.tsx +45 -0
- package/src/components/select/examples/people.tsx +53 -0
- package/src/components/select/examples/server-search.tsx +93 -0
- package/src/components/sheet/COMPONENT.md +216 -0
- package/src/components/sheet/examples/controlled-open.tsx +37 -0
- package/src/components/sheet/examples/dismiss.tsx +42 -0
- package/src/components/sheet/examples/examples.module.css +13 -0
- package/src/components/sheet/examples/in-form.tsx +65 -0
- package/src/components/sheet/examples/overview.tsx +50 -0
- package/src/components/sheet/examples/structure.tsx +35 -0
- package/src/components/skeleton/COMPONENT.md +1 -1
- package/src/components/slider/COMPONENT.md +21 -4
- package/src/components/slider/examples/autosave.tsx +39 -0
- package/src/components/slider/examples/examples.module.css +6 -0
- package/src/components/slider/examples/orientation.tsx +27 -0
- package/src/components/smart-filter/COMPONENT.md +67 -16
- package/src/components/smart-filter/examples/option-groups.tsx +40 -0
- package/src/components/smart-filter/examples/ranges.tsx +89 -0
- package/src/components/smart-filter/examples/single-value.tsx +41 -0
- package/src/components/sparkline/COMPONENT.md +48 -19
- package/src/components/sparkline/examples/signed-bars.tsx +41 -0
- package/src/components/sparkline/examples/states.tsx +30 -0
- package/src/components/sparkline/examples/variants.tsx +29 -0
- package/src/components/spinner/COMPONENT.md +10 -8
- package/src/components/stepper/COMPONENT.md +4 -0
- package/src/components/switch/COMPONENT.md +11 -5
- package/src/components/switch/examples/in-form.tsx +3 -1
- package/src/components/switch/examples/saving.tsx +53 -0
- package/src/components/switch/examples/states.tsx +6 -1
- package/src/components/tabs/COMPONENT.md +46 -26
- package/src/components/tabs/examples/examples.module.css +6 -0
- package/src/components/tabs/examples/in-drawer.tsx +100 -0
- package/src/components/tabs/examples/overview.tsx +1 -1
- package/src/components/tag-select/COMPONENT.md +34 -21
- package/src/components/tag-select/examples/confirm-delete.tsx +60 -0
- package/src/components/tag-select/examples/creatable.tsx +23 -2
- package/src/components/tag-select/examples/in-form.tsx +9 -2
- package/src/components/tag-select/examples/manage-tags.tsx +10 -6
- package/src/components/textarea/COMPONENT.md +57 -10
- package/src/components/textarea/examples/auto-resize.tsx +8 -1
- package/src/components/textarea/examples/edge-actions.tsx +24 -0
- package/src/components/textarea/examples/inline-edit.tsx +42 -0
- package/src/components/thumbnail/COMPONENT.md +51 -10
- package/src/components/thumbnail/examples/controlled.tsx +61 -0
- package/src/components/thumbnail/examples/examples.module.css +31 -0
- package/src/components/thumbnail/examples/full-width.tsx +2 -5
- package/src/components/thumbnail/examples/overview.tsx +2 -6
- package/src/components/thumbnail/examples/pressable.tsx +56 -0
- package/src/components/thumbnail/examples/video.tsx +46 -0
- package/src/components/timeline/COMPONENT.md +2 -1
- package/src/components/tooltip/COMPONENT.md +13 -7
- package/src/components/tooltip/examples/disabled-trigger.tsx +2 -7
- package/src/components/tooltip/examples/examples.module.css +6 -9
- package/src/components/tooltip/examples/non-interactive-trigger.tsx +31 -0
- package/src/components/typography/COMPONENT.md +2 -0
- package/src/components/video-note/COMPONENT.md +173 -0
- package/src/components/video-note/examples/controlled.tsx +28 -0
- package/src/components/video-note/examples/examples.module.css +4 -0
- package/src/components/video-note/examples/in-message.tsx +22 -0
- package/src/components/video-note/examples/overview.tsx +8 -0
- package/src/components/video-note/examples/states.tsx +74 -0
- package/src/components/video-note/examples/transcript.tsx +29 -0
- package/src/components/video-note/examples/transfer.tsx +76 -0
- package/src/components/visually-hidden/COMPONENT.md +81 -0
- package/src/components/visually-hidden/examples/overview.tsx +22 -0
- package/src/components/voice-player/COMPONENT.md +192 -0
- package/src/components/voice-player/examples/call-recording.tsx +34 -0
- package/src/components/voice-player/examples/controlled.tsx +38 -0
- package/src/components/voice-player/examples/examples.module.css +23 -0
- package/src/components/voice-player/examples/in-message.tsx +29 -0
- package/src/components/voice-player/examples/overview.tsx +13 -0
- package/src/components/voice-player/examples/states.tsx +81 -0
- package/src/components/voice-player/examples/transcript.tsx +50 -0
- package/src/components/voice-player/examples/transfer.tsx +88 -0
- package/src/layout/app-header/COMPONENT.md +35 -10
- package/src/layout/app-header/examples/page-title.tsx +85 -0
- package/src/layout/app-shell/COMPONENT.md +11 -5
- package/src/layout/app-shell/examples/examples.module.css +1 -1
- package/src/layout/app-shell/examples/footer.tsx +1 -1
- package/src/layout/bottom-nav/COMPONENT.md +50 -34
- package/src/layout/bottom-nav/examples/examples.module.css +8 -1
- package/src/layout/bottom-nav/examples/floating-action.tsx +91 -0
- package/src/layout/bottom-nav/examples/floating.tsx +6 -6
- package/src/layout/bottom-nav/examples/in-app-shell.tsx +1 -1
- package/src/layout/sidebar/COMPONENT.md +18 -13
- package/src/layout/sidebar/examples/account.tsx +1 -1
- package/src/layout/sidebar/examples/overview.tsx +1 -1
- package/src/styles/controls.css +138 -0
- package/src/styles/globals.css +8 -0
- package/src/styles/reset.css +34 -30
- package/src/styles/theme-dark.css +30 -2
- package/src/styles/theme-light.css +72 -6
- package/src/styles/tokens.css +17 -0
- package/dist/chunks/chunk-4TRNUP45.js +0 -4052
- package/dist/chunks/chunk-GFKDZFQR.js +0 -1208
- package/dist/chunks/chunk-K4FACFQ2.js +0 -13552
- package/dist/components/dnd/autoScroll.d.ts +0 -5
- package/src/components/file-upload/examples/upload-progress.tsx +0 -39
- package/src/components/scroll-container/examples/edge-fade.tsx +0 -53
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
**Category:** navigation
|
|
4
4
|
**Kind:** navigation
|
|
5
5
|
|
|
6
|
-
>
|
|
6
|
+
> A tab bar of folder tabs for navigating between content panels of one screen: the active tab is the host's surface rising into the strip, the panel is the host's content with no frame or padding of its own.
|
|
7
7
|
|
|
8
8
|
## When to use
|
|
9
9
|
- Splitting one screen into sections that are viewed one at a time (Overview / Orders / Reviews).
|
|
10
|
+
- Sections of a record opened in a Drawer or Modal: the tab bar runs along the bottom of the header.
|
|
10
11
|
- Settings pages with a side list of sections (`orientation="vertical"`).
|
|
11
12
|
- Dashboard sections that need a counter or a one-line summary per tab (`Tabs.Count`, `Tabs.Description`).
|
|
12
13
|
- Section bars that must survive narrow containers: with an icon on every tab they collapse to icons with tooltips.
|
|
@@ -26,7 +27,7 @@ import { Tabs } from "prime-ui-kit";
|
|
|
26
27
|
|
|
27
28
|
## Anatomy
|
|
28
29
|
```
|
|
29
|
-
Tabs.Root value, size, orientation, tone, fullWidth, min/maxItemWidth;
|
|
30
|
+
Tabs.Root value, size, orientation, tone, fullWidth, min/maxItemWidth; no surface
|
|
30
31
|
├─ Tabs.List role="tablist" on a ScrollContainer, sliding folder; collapses, then scrolls
|
|
31
32
|
│ ├─ Tabs.Item one tab (role="tab") in an item wrapper; onRemove adds a close button; parts:
|
|
32
33
|
│ │ ├─ Tabs.Icon decorative icon; hidden first, kept last
|
|
@@ -34,7 +35,7 @@ Tabs.Root value, size, orientation, tone, fullWidth, min/maxItem
|
|
|
34
35
|
│ │ ├─ Tabs.Count counter Badge, one tier below the tabs size
|
|
35
36
|
│ │ └─ Tabs.Description muted second line; makes the tab two-line
|
|
36
37
|
│ └─ Tabs.Separator Divider hairline between groups of tabs
|
|
37
|
-
└─ Tabs.Panel role="tabpanel", rendered only while its tab is active
|
|
38
|
+
└─ Tabs.Panel role="tabpanel", rendered only while its tab is active; no fill, no padding
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
## API
|
|
@@ -42,25 +43,25 @@ Tabs.Root value, size, orientation, tone, fullWidth, min/maxItem
|
|
|
42
43
|
<!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
|
|
43
44
|
|
|
44
45
|
### Tabs.Root
|
|
45
|
-
`ref` → `HTMLDivElement`. `<div>` that owns the active value, size and orientation
|
|
46
|
+
`ref` → `HTMLDivElement`. `<div>` that owns the active value, size and orientation; no surface of its own — it stands in the host's padding. In a Modal or Drawer it wraps `X.Header` (with `Tabs.List` last) and `X.Body`.
|
|
46
47
|
|
|
47
48
|
| Prop | Type | Default | Description |
|
|
48
49
|
|---|---|---|---|
|
|
49
50
|
| `value` | `string` | — | Active tab (controlled). |
|
|
50
51
|
| `defaultValue` | `string` | `""` | Initial active tab (uncontrolled). With `""` no tab is selected. |
|
|
51
52
|
| `onValueChange` | `(value: string) => void` | — | Called with the new active value. |
|
|
52
|
-
| `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` | List direction and arrow keys. Vertical: a column of sections
|
|
53
|
-
| `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Control tier: text, icon, spacing, folder radius and
|
|
54
|
-
| `fullWidth` | `boolean` | `true` | Horizontal tabs fill the list and tend to equal widths within `minItemWidth` … `maxItemWidth
|
|
53
|
+
| `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` | List direction and arrow keys. Vertical: a column of sections beside the panel, which becomes a horizontal strip in a container below 600px. |
|
|
54
|
+
| `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Control tier: text, icon, spacing, folder radius and the gap between the strip and the panel; a tab is at least the control height. |
|
|
55
|
+
| `fullWidth` | `boolean` | `true` | Horizontal tabs fill the list and tend to equal widths within `minItemWidth` … `maxItemWidth`; `false` sizes each tab to its content within the same bounds. |
|
|
55
56
|
| `tone` | `"neutral" \| "accent"` | `"neutral"` | Colour of the active tab: `neutral` is primary text with an accent icon, `accent` puts text and icon in accent. |
|
|
56
|
-
| `minItemWidth` | `number \| string` | `2.5 × control height` | Narrowest a horizontal tab with a label gets, px or a CSS length; a tab is also never narrower than its content (up to `maxItemWidth`).
|
|
57
|
+
| `minItemWidth` | `number \| string` | `2.5 × control height` | Narrowest a horizontal tab with a label gets, px or a CSS length; a tab is also never narrower than its content (up to `maxItemWidth`). |
|
|
57
58
|
| `maxItemWidth` | `number \| string` | `7 × control height` | Widest a horizontal tab gets, px or a CSS length (`"none"` lifts the cap); a longer label ends with an ellipsis. |
|
|
58
59
|
| `labels` | `Partial<TabsLabels>` | — | Built-in strings, see Labels. |
|
|
59
60
|
| `children` | `ReactNode` | — | `Tabs.List` and `Tabs.Panel`s. |
|
|
60
61
|
| `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "defaultValue">` | — | `className` and the other div attributes. |
|
|
61
62
|
|
|
62
63
|
### Tabs.List
|
|
63
|
-
`ref` → `HTMLDivElement`. `role="tablist"` on a `ScrollContainer`
|
|
64
|
+
`ref` → `HTMLDivElement`. `role="tablist"` on a `ScrollContainer` with the sliding folder. When tabs do not fit it hides icons and descriptions, then labels (only when every tab has an icon), then scrolls; the active tab stays in view.
|
|
64
65
|
|
|
65
66
|
| Prop | Type | Default | Description |
|
|
66
67
|
|---|---|---|---|
|
|
@@ -74,7 +75,7 @@ Tabs.Root value, size, orientation, tone, fullWidth, min/maxItem
|
|
|
74
75
|
|---|---|---|---|
|
|
75
76
|
| `value` | `string` | — (required) | Value that selects this tab and its panel. |
|
|
76
77
|
| `disabled` | `boolean` | `false` | Disables the tab; clicks and arrow keys skip it. |
|
|
77
|
-
| `onRemove` | `() => void
|
|
78
|
+
| `onRemove` | `() => void \| Promise<void>` | — | Makes the tab closable (close button, `Delete` / `Backspace`, middle click); remove the item from your list here. Return a promise to confirm first: rejected, the tab stays. |
|
|
78
79
|
| `children` | `ReactNode` | — (required) | Plain text, or `Tabs.Icon` / `Tabs.Label` / `Tabs.Count` / `Tabs.Description`. A description makes the tab two-line. |
|
|
79
80
|
| `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" \| "type" \| "role" \| "onClick">` | — | `className`, `aria-*` and the other button attributes; your `onKeyDown` / `onAuxClick` run first and `preventDefault()` keeps the tab open. |
|
|
80
81
|
|
|
@@ -119,7 +120,7 @@ Tabs.Root value, size, orientation, tone, fullWidth, min/maxItem
|
|
|
119
120
|
| `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "children">` | — | `className` and the other div attributes. |
|
|
120
121
|
|
|
121
122
|
### Tabs.Panel
|
|
122
|
-
`ref` → `HTMLDivElement`. `<div role="tabpanel">`, focusable, rendered only while its tab is active
|
|
123
|
+
`ref` → `HTMLDivElement`. `<div role="tabpanel">`, focusable, rendered only while its tab is active. No fill and no padding: its content is the host's content, aligned with the strip's edges. Its content enters each time it opens.
|
|
123
124
|
|
|
124
125
|
| Prop | Type | Default | Description |
|
|
125
126
|
|---|---|---|---|
|
|
@@ -128,7 +129,7 @@ Tabs.Root value, size, orientation, tone, fullWidth, min/maxItem
|
|
|
128
129
|
| `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `className` and the other div attributes. |
|
|
129
130
|
|
|
130
131
|
## Variants
|
|
131
|
-
Tabs have no `variant`: navigation tabs are always a folder — rising
|
|
132
|
+
Tabs have no `variant`: navigation tabs are always a folder — the host's surface rising into the strip from below (horizontal) or reaching into the column from its side (vertical).
|
|
132
133
|
|
|
133
134
|
### tone
|
|
134
135
|
| Value | Looks like | Use when | Default |
|
|
@@ -139,19 +140,19 @@ Tabs have no `variant`: navigation tabs are always a folder — rising from the
|
|
|
139
140
|
### orientation
|
|
140
141
|
| Value | Looks like | Use when | Default |
|
|
141
142
|
|---|---|---|---|
|
|
142
|
-
| `horizontal` | a
|
|
143
|
-
| `vertical` | the same folder on its side: a column of sections in the
|
|
143
|
+
| `horizontal` | a rounded `fill-muted-hover` strip (two steps off the host surface) above the panel, tabs edge to edge; the active tab is the host's surface (`layer-current`) rising into the strip with concave flares, gliding between tabs; primary text, medium weight, accent icon; hover is the same shape in `fill-faint` | switching sections above the content | yes |
|
|
144
|
+
| `vertical` | the same folder on its side: a column of sections in the strip at the panel's inline start; the active section is the host's surface reaching into the column, rounded on the outer side, with concave flares above and below; hover is the same shape in `fill-faint`. Below a 600px container the column becomes the horizontal strip above the panel (it scrolls, never wraps) | settings pages with a side list of sections | |
|
|
144
145
|
|
|
145
146
|
### size
|
|
146
147
|
| Value | Looks like | Use when | Default |
|
|
147
148
|
|---|---|---|---|
|
|
148
|
-
| `xs` | 12/16 text, folder radius 8, rise 4, panel
|
|
149
|
-
| `s` | 13/20, radius 8, rise 4,
|
|
150
|
-
| `m` | 14/20, radius 12, rise
|
|
151
|
-
| `l` | 16/24, radius 16, rise
|
|
152
|
-
| `xl` | 16/24, radius 16, rise
|
|
149
|
+
| `xs` | 12/16 text, folder radius 8, rise 4, panel gap 12 | dense panels | |
|
|
150
|
+
| `s` | 13/20, radius 8, rise 4, gap 16 | compact cards | |
|
|
151
|
+
| `m` | 14/20, radius 12, rise 4, gap 20 | default | yes |
|
|
152
|
+
| `l` | 16/24, radius 16, rise 8, gap 24 | page-level sections | |
|
|
153
|
+
| `xl` | 16/24, radius 16, rise 8, gap 32 | hero / landing sections | |
|
|
153
154
|
|
|
154
|
-
A
|
|
155
|
+
A tab is at least the control height of the tier, so a one-line list lines up with Button, Input and SegmentedControl of the same `size`; content sets the rest — a two-line tab grows by its lines and padding, and the tabs of a row share the tallest height. The strip adds the rise above the tabs.
|
|
155
156
|
|
|
156
157
|
### Flags
|
|
157
158
|
| Value | Looks like | Use when | Default |
|
|
@@ -172,7 +173,7 @@ A horizontal tab is the control height of the tier plus the rise above and below
|
|
|
172
173
|
| `Tabs.Icon` + `Tabs.Label` | muted icon before the label; the active tab's leading icon turns accent | sections with recognizable icons | |
|
|
173
174
|
| `Tabs.Count` | soft badge after the label, tabular numbers | showing how many items a section has | |
|
|
174
175
|
| `Tabs.Description` (two-line) | label (+ count) on line 1, `body-s` muted text on line 2; `<strong>` is primary / medium | dashboards with a summary per section | |
|
|
175
|
-
| `onRemove` on Item | a ghost close button (`action.close`, two tiers below) at the end of the tab: on the active tab, on hover and focus, always on touch screens | open documents the user closes, like browser tabs | |
|
|
176
|
+
| `onRemove` on Item | a ghost close button (`action.close`, two tiers below) at the end of the tab: on the active tab, on hover and focus, always on touch screens; the tab also closes by `Delete` / `Backspace` and a middle click, and closing the active tab selects its neighbour | open documents the user closes, like browser tabs | |
|
|
176
177
|
|
|
177
178
|
Avoid icons or descriptions on only some tabs (uneven rows; without an icon on every tab the list cannot collapse to icons) and Tabs used as a filter — use SegmentedControl.
|
|
178
179
|
|
|
@@ -185,6 +186,7 @@ Avoid icons or descriptions on only some tabs (uneven rows; without an icon on e
|
|
|
185
186
|
| focus-visible | keyboard | focus ring inside the tab, above the folder; the panel shows an inset ring |
|
|
186
187
|
| disabled | `disabled` on Item | native `disabled`, `data-disabled="true"`, `text-disabled`; a removable tab loses its close button |
|
|
187
188
|
| removable | `onRemove` on Item | item wrapper `data-removable="true"`, close button, tab `aria-keyshortcuts="Delete"` |
|
|
189
|
+
| closing, confirm pending | `onRemove` returned a promise that has not settled | the close button is `loading` (`aria-busy`); the tab, its selection and focus stay; resolved → the neighbour takes over, rejected → nothing changes |
|
|
188
190
|
| two-line | `Tabs.Description` child | `data-two-line="true"` |
|
|
189
191
|
| collapsed | tabs wider than the list, or a label that would be cut (horizontal) | list `data-collapse="full" \| "compact" \| "icon"`: `compact` hides icons and descriptions; `icon` hides labels (sr-only, shown in a `Tooltip`), counts and close buttons, only when every tab has an icon |
|
|
190
192
|
| overflow | tabs at their narrowest (content width, `minItemWidth` or icon squares) still wider than the list | `data-overflow-start` / `data-overflow-end` on the list (ScrollContainer), faded edges as deep as the hidden part at most (they grow and melt with the scroll, never switch); the active tab is kept in view and clear of the fades on mount and on every value change, the first and the last tab scroll all the way to the end — only the list scrolls, never the page |
|
|
@@ -194,8 +196,24 @@ The indicator glides (`emphasized` + `base`, `data-animate="true"`) only into a
|
|
|
194
196
|
Other attributes: Root `data-orientation`, `data-size`, `data-tone`, `data-full-width`, inline `--tabs-item-min` / `--tabs-item-max` when set; List `data-indicator="folder"`, its indicator `data-axis="x" | "y"` (follows the list's direction, so a vertical list in a narrow container gets the top folder); Item `data-value` on the tab, `data-state` / `data-disabled` on its wrapper too; Label `data-text`. Inactive panels are unmounted; a panel's content enters each time it opens.
|
|
195
197
|
|
|
196
198
|
## Layout & spacing
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
+
- Tabs are a bar, not a surface: the root has no fill, padding, radius or `data-depth`. On a page or in a `Card.Body`, put it straight into the host's padded region and the panel content straight into `Tabs.Panel`. The strip's edges and the panel content share the host's content edge; the panel stands one tier gap below the strip (`--prime-space-3` … `--prime-space-8`).
|
|
200
|
+
- In a Modal or Drawer the tabs belong to the header: `Tabs.Root` wraps `X.Header` and `X.Body`, `Tabs.List` goes last into the header, the panels into the body. The header becomes the strip (painted like it, no hairline, edge to edge — the header hands the bar its side padding as `--prime-bleed-inline`), the active tab is the body rising into it, and the root renders no box (`display: contents`), so only the body scrolls and the tabs stay in view.
|
|
201
|
+
|
|
202
|
+
```tsx
|
|
203
|
+
<Drawer.Content>
|
|
204
|
+
<Tabs.Root defaultValue="summary">
|
|
205
|
+
<Drawer.Header>
|
|
206
|
+
<Drawer.Title>Заказ № 1042</Drawer.Title>
|
|
207
|
+
<Tabs.List aria-label="Заказ № 1042">…</Tabs.List>
|
|
208
|
+
</Drawer.Header>
|
|
209
|
+
<Drawer.Body>
|
|
210
|
+
<Tabs.Panel value="summary">…</Tabs.Panel>
|
|
211
|
+
</Drawer.Body>
|
|
212
|
+
</Tabs.Root>
|
|
213
|
+
</Drawer.Content>
|
|
214
|
+
```
|
|
215
|
+
- The folder paints the host's `layer-current`, so the active tab is always the colour of the surface it stands on; controls in a panel read the host's field and fill tokens.
|
|
216
|
+
- Vertical: the column is as wide as its widest section (at least four control heights, at most 40% of the root) and as tall as its sections; the panel sits beside it, one gap away.
|
|
199
217
|
- The list never wraps: it collapses, then scrolls horizontally with faded edges (hidden scrollbar, `overscroll-behavior: contain`). Give the list's container a width (`min-width: 0` on flex children).
|
|
200
218
|
- A horizontal tab is never narrower than its content (`min-width: max-content`; the tab bounds that content between `minItemWidth` and `maxItemWidth`), so a label is never cut to make room. Full width, tabs tend to equal widths, not widths in proportion to their labels (`flex: 1 1 0`): a long label keeps its width, the short ones share the rest.
|
|
201
219
|
- A vertical Tabs.Root is a size container: give it a width (it measures itself to switch to a row).
|
|
@@ -229,7 +247,7 @@ Other attributes: Root `data-orientation`, `data-size`, `data-tone`, `data-full-
|
|
|
229
247
|
## Examples
|
|
230
248
|
| Example | Shows |
|
|
231
249
|
|---|---|
|
|
232
|
-
| [overview.tsx](examples/overview.tsx) | Sections of one screen; the active tab rises into the
|
|
250
|
+
| [overview.tsx](examples/overview.tsx) | Sections of one screen; the active tab rises into the strip and glides to the next one — `defaultValue`. |
|
|
233
251
|
| [variants.tsx](examples/variants.tsx) | The active tab in primary text with an accent icon, or all in accent — `tone`. |
|
|
234
252
|
| [sizes.tsx](examples/sizes.tsx) | Every size tier: text, icon, folder radius and spacing grow together — `size`. |
|
|
235
253
|
| [states.tsx](examples/states.tsx) | A disabled tab that clicks and arrow keys skip — `disabled`. |
|
|
@@ -238,19 +256,21 @@ Other attributes: Root `data-orientation`, `data-size`, `data-tone`, `data-full-
|
|
|
238
256
|
| [overflow.tsx](examples/overflow.tsx) | Drag the frame narrower: icons go first, then labels, and icons with tooltips stay; then the list scrolls — `Tabs.Icon`. |
|
|
239
257
|
| [closable.tsx](examples/closable.tsx) | Open order cards as browser tabs: each closes by its button, Delete or a middle click; tabs stay between two widths, and the list scrolls when they do not fit — `onRemove`, `minItemWidth`, `maxItemWidth`. |
|
|
240
258
|
| [two-line.tsx](examples/two-line.tsx) | A label and a counter on the first line, a summary on the second — `Tabs.Count`, `Tabs.Description`. |
|
|
259
|
+
| [in-drawer.tsx](examples/in-drawer.tsx) | Order details in a Drawer: the tab bar runs along the bottom of the header, the active tab is the body rising into it, and every panel is the body's own content — `Tabs.Root`, `Tabs.List`, `Tabs.Panel`. |
|
|
241
260
|
| [controlled.tsx](examples/controlled.tsx) | The active tab lives in parent state, e.g. synced with the URL — `value`, `onValueChange`. |
|
|
242
261
|
|
|
243
262
|
## Mistakes
|
|
244
263
|
- `<Tabs.Root>` without `defaultValue` / `value` → no tab is active; pass the first tab's value.
|
|
245
264
|
- `variant="pills"` / `variant="underline"` → Tabs have no variant; use `orientation`, or SegmentedControl for a pill switch.
|
|
246
265
|
- An icon on only some tabs → the list cannot collapse to icons and scrolls instead; give every tab an icon or none.
|
|
247
|
-
- Tabs
|
|
266
|
+
- Tabs or a panel wrapped in an extra padded box (`Card.Root` around the root, a padded `div` or Card inside `Tabs.Panel`) → a container in a container with doubled padding; Tabs stand in the host's padding and the panel content goes straight in.
|
|
248
267
|
- Using Tabs to filter a list → use SegmentedControl.
|
|
249
268
|
- `onClick` on `Tabs.Item` → use `onValueChange` on Root.
|
|
250
269
|
- A hand-made × inside `Tabs.Item` → a button inside a tab button; pass `onRemove` instead.
|
|
251
270
|
- `onRemove` that does not drop the tab from your list → the tab stays; the kit only moves the selection.
|
|
252
271
|
- `Tabs.List` without `aria-label` → add one.
|
|
272
|
+
- Tabs inside `Drawer.Body` / `Modal.Body` under the header → a floating strip under the header's hairline; wrap the header and the body in `Tabs.Root` and put `Tabs.List` into the header.
|
|
253
273
|
|
|
254
274
|
## Related
|
|
255
|
-
- **Built from:** [ScrollContainer](../scroll-container/COMPONENT.md), [Badge](../badge/COMPONENT.md), [Button](../button/COMPONENT.md), [Divider](../divider/COMPONENT.md), [Tooltip](../tooltip/COMPONENT.md)
|
|
275
|
+
- **Built from:** [ScrollContainer](../scroll-container/COMPONENT.md), [Badge](../badge/COMPONENT.md), [Button](../button/COMPONENT.md), [Divider](../divider/COMPONENT.md), [Tooltip](../tooltip/COMPONENT.md), Icon (`action.close`)
|
|
256
276
|
- **See also:** [SegmentedControl](../segmented-control/COMPONENT.md), [ButtonGroup](../button-group/COMPONENT.md), [Accordion](../accordion/COMPONENT.md)
|
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
max-width: calc(10 * var(--prime-control-m-height));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/* in-drawer.tsx: blocks of a panel in the drawer body, the full body width. */
|
|
26
|
+
.stack {
|
|
27
|
+
display: grid;
|
|
28
|
+
gap: var(--prime-space-5);
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
/* The same column, which the reader can drag narrower to watch the tabs collapse and scroll. */
|
|
26
32
|
.resizable {
|
|
27
33
|
composes: frame;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/** Order details in a Drawer: the tab bar runs along the bottom of the header, the active tab is the body rising into it, and every panel is the body's own content — `Tabs.Root`, `Tabs.List`, `Tabs.Panel`. */
|
|
2
|
+
import { Badge, Button, DescriptionList, Drawer, Input, Tabs, Typography } from "prime-ui-kit";
|
|
3
|
+
|
|
4
|
+
import styles from "./examples.module.css";
|
|
5
|
+
|
|
6
|
+
const ITEMS = [
|
|
7
|
+
{ name: "Кресло «Орион», графит", amount: "2 × 18 900 ₽" },
|
|
8
|
+
{ name: "Стол «Лофт 140»", amount: "1 × 24 500 ₽" },
|
|
9
|
+
{ name: "Сборка и подъём на этаж", amount: "1 × 3 200 ₽" },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
const HISTORY = [
|
|
13
|
+
"3 октября, 10:14 — заказ оформлен",
|
|
14
|
+
"3 октября, 10:20 — оплата прошла",
|
|
15
|
+
"4 октября, 16:02 — передан на склад",
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
export default function TabsInDrawerExample() {
|
|
19
|
+
return (
|
|
20
|
+
<Drawer.Root>
|
|
21
|
+
<Drawer.Trigger>
|
|
22
|
+
<Button.Root variant="soft" tone="neutral">
|
|
23
|
+
Заказ № 1042
|
|
24
|
+
</Button.Root>
|
|
25
|
+
</Drawer.Trigger>
|
|
26
|
+
<Drawer.Content>
|
|
27
|
+
<Tabs.Root defaultValue="summary">
|
|
28
|
+
<Drawer.Header>
|
|
29
|
+
<Drawer.Title>Заказ № 1042</Drawer.Title>
|
|
30
|
+
<Drawer.Description>Оформлен 3 октября · 65 500 ₽</Drawer.Description>
|
|
31
|
+
<Tabs.List aria-label="Заказ № 1042">
|
|
32
|
+
<Tabs.Item value="summary">Сводка</Tabs.Item>
|
|
33
|
+
<Tabs.Item value="items">
|
|
34
|
+
<Tabs.Label>Товары</Tabs.Label>
|
|
35
|
+
<Tabs.Count>{ITEMS.length}</Tabs.Count>
|
|
36
|
+
</Tabs.Item>
|
|
37
|
+
<Tabs.Item value="delivery">Доставка</Tabs.Item>
|
|
38
|
+
<Tabs.Item value="history">История</Tabs.Item>
|
|
39
|
+
</Tabs.List>
|
|
40
|
+
</Drawer.Header>
|
|
41
|
+
<Drawer.Body>
|
|
42
|
+
<Tabs.Panel value="summary">
|
|
43
|
+
<DescriptionList.Root>
|
|
44
|
+
<DescriptionList.Item label="Клиент">Анна Смирнова</DescriptionList.Item>
|
|
45
|
+
<DescriptionList.Item label="Статус">
|
|
46
|
+
<Badge.Root color="orange">Собирается на складе</Badge.Root>
|
|
47
|
+
</DescriptionList.Item>
|
|
48
|
+
<DescriptionList.Item label="Оплата">Картой, 3 октября</DescriptionList.Item>
|
|
49
|
+
<DescriptionList.Item label="Менеджер">Илья Соколов</DescriptionList.Item>
|
|
50
|
+
</DescriptionList.Root>
|
|
51
|
+
</Tabs.Panel>
|
|
52
|
+
|
|
53
|
+
<Tabs.Panel value="items">
|
|
54
|
+
<DescriptionList.Root>
|
|
55
|
+
{ITEMS.map((item) => (
|
|
56
|
+
<DescriptionList.Item key={item.name} label={item.name}>
|
|
57
|
+
{item.amount}
|
|
58
|
+
</DescriptionList.Item>
|
|
59
|
+
))}
|
|
60
|
+
</DescriptionList.Root>
|
|
61
|
+
</Tabs.Panel>
|
|
62
|
+
|
|
63
|
+
<Tabs.Panel value="delivery">
|
|
64
|
+
<div className={styles.stack}>
|
|
65
|
+
<Input.Root label="Адрес">
|
|
66
|
+
<Input.Wrapper>
|
|
67
|
+
<Input.Field defaultValue="Москва, Ленинградский проспект, 37, кв. 12" />
|
|
68
|
+
</Input.Wrapper>
|
|
69
|
+
</Input.Root>
|
|
70
|
+
<Input.Root label="Комментарий курьеру" hint="Виден курьеру в приложении">
|
|
71
|
+
<Input.Wrapper>
|
|
72
|
+
<Input.Field defaultValue="Позвонить за час" />
|
|
73
|
+
</Input.Wrapper>
|
|
74
|
+
</Input.Root>
|
|
75
|
+
</div>
|
|
76
|
+
</Tabs.Panel>
|
|
77
|
+
|
|
78
|
+
<Tabs.Panel value="history">
|
|
79
|
+
<div className={styles.stack}>
|
|
80
|
+
{HISTORY.map((entry) => (
|
|
81
|
+
<Typography key={entry} variant="body-m" tone="secondary">
|
|
82
|
+
{entry}
|
|
83
|
+
</Typography>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
</Tabs.Panel>
|
|
87
|
+
</Drawer.Body>
|
|
88
|
+
</Tabs.Root>
|
|
89
|
+
<Drawer.Footer>
|
|
90
|
+
<Drawer.Close>
|
|
91
|
+
<Button.Root variant="outline" tone="neutral">
|
|
92
|
+
Закрыть
|
|
93
|
+
</Button.Root>
|
|
94
|
+
</Drawer.Close>
|
|
95
|
+
<Button.Root>Изменить заказ</Button.Root>
|
|
96
|
+
</Drawer.Footer>
|
|
97
|
+
</Drawer.Content>
|
|
98
|
+
</Drawer.Root>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Sections of one screen; the active tab rises into the
|
|
1
|
+
/** Sections of one screen; the active tab rises into the strip and glides to the next one — `defaultValue`. */
|
|
2
2
|
import { Tabs, Typography } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
const SECTIONS = [
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
## When to use
|
|
9
9
|
- Several values from a dictionary shown as removable chips: labels, cities, channels, watchers.
|
|
10
10
|
- Users may add a value that is not in the list (`creatable`).
|
|
11
|
-
- Users maintain the dictionary themselves: rename, recolor or delete options from the list (`onOptionUpdate`, `onOptionDelete`).
|
|
11
|
+
- Users maintain the dictionary themselves: rename, recolor or delete options from the list (`onOptionUpdate`, `onOptionDelete`; a Promise from `onOptionDelete` holds the deletion for a confirmation or a request).
|
|
12
12
|
|
|
13
13
|
## When not to use
|
|
14
14
|
- One value → use [Select](../select/COMPONENT.md).
|
|
@@ -27,11 +27,12 @@ TagSelect field frame: label · control · hint/error (sin
|
|
|
27
27
|
├── control field fill, one row at rest, wraps when focused
|
|
28
28
|
│ ├── chip row ScrollContainer: Badge chips (one tier down) · «+N» Badge · input
|
|
29
29
|
│ │ └── <input role="combobox">
|
|
30
|
+
│ ├── input[type=hidden] × value with `name`
|
|
30
31
|
│ └── chevron
|
|
31
32
|
└── list (portal) role="listbox", multi-select
|
|
32
|
-
├── panel hint labels.panelHint
|
|
33
|
-
├── «Создать» row with `creatable
|
|
34
|
-
└── option row Checkbox.Indicator · Badge [· «⋯» Button → Popover menu]
|
|
33
|
+
├── panel hint labels.panelHint (`""` hides it)
|
|
34
|
+
├── «Создать» row with `creatable`: plus icon · labels.create · preview Badge
|
|
35
|
+
└── option row Checkbox.Indicator · Badge [· «⋯» Button → Popover menu]; picked options first
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
## API
|
|
@@ -49,12 +50,12 @@ TagSelect field frame: label · control · hint/error (sin
|
|
|
49
50
|
| `onValueChange` | `(value: string[]) => void` | — | Called with the new list after a pick, a removal or a creation. |
|
|
50
51
|
| `open` | `boolean` | — | Controlled open state of the list. |
|
|
51
52
|
| `defaultOpen` | `boolean` | `false` | Initial open state, uncontrolled. |
|
|
52
|
-
| `onOpenChange` | `(open: boolean) => void` | — | Called on every open and close: field click, Escape, an outside press. |
|
|
53
|
+
| `onOpenChange` | `(open: boolean) => void` | — | Called on every open and close: focus, a field click, typing, arrows, Escape, an outside press; typing closes it when nothing matches. |
|
|
53
54
|
| `creatable` | `boolean` | `false` | A typed text that is not an option can be added (the Create row or Enter). |
|
|
54
|
-
| `onCreate` | `(value: string) => void
|
|
55
|
+
| `onCreate` | `(value: string) => void \| Promise<void>` | — | A new value was created, not picked from `options`; it joins the selection at once. Return the save's promise: the chip waits busy; on reject it leaves again (say why with `error`). |
|
|
55
56
|
| `defaultColor` | `PaletteColor` | `"gray"` | Chip color of values without an option color, created ones included. |
|
|
56
|
-
| `onOptionUpdate` | `(value: string, updates: { label?: string; color?: PaletteColor }) => void
|
|
57
|
-
| `onOptionDelete` | `(value: string) => void
|
|
57
|
+
| `onOptionUpdate` | `(value: string, updates: { label?: string; color?: PaletteColor }) => void \| Promise<void>` | — | Enables the row «⋯» menu to rename and recolor a tag; `value` never changes. Return the save's promise and apply the change to `options` before it resolves; on reject the option goes back. |
|
|
58
|
+
| `onOptionDelete` | `(value: string) => void \| Promise<void>` | — | Enables «Удалить» in the row menu; the value also leaves the selection. A returned Promise defers it: resolve deletes, reject keeps everything (e.g. after a confirmation). |
|
|
58
59
|
| `label` | `ReactNode` | — | Field label above; names the input. |
|
|
59
60
|
| `hint` | `ReactNode` | — | Support text under the field; linked by `aria-describedby`. |
|
|
60
61
|
| `error` | `ReactNode` | — | Error message; replaces the hint and implies `invalid`. |
|
|
@@ -62,6 +63,7 @@ TagSelect field frame: label · control · hint/error (sin
|
|
|
62
63
|
| `optional` | `boolean` | — | Muted `labels.optional` after the label. |
|
|
63
64
|
| `invalid` | `boolean` | `false` | Danger inset ring and `aria-invalid`. |
|
|
64
65
|
| `disabled` | `boolean` | `false` | Disabled field and chips; the list never opens. |
|
|
66
|
+
| `name` | `string` | — | Form field name: one hidden input per selected value (read with `formData.getAll(name)`). |
|
|
65
67
|
| `placeholder` | `string` | `""` | Text in the input while no tag is picked. |
|
|
66
68
|
| `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Field tier; the list uses the same tier, chips one tier down. |
|
|
67
69
|
| `focusRing` | `boolean` | `true` | `false` hides the visual focus ring (`data-focus-ring="false"`), never focus or the error ring. |
|
|
@@ -86,42 +88,48 @@ No `variant` or `tone`. The control is the field look; chips are soft Badges on
|
|
|
86
88
|
| Value | Looks like | Use when | Default |
|
|
87
89
|
|---|---|---|---|
|
|
88
90
|
| `creatable` | a «Создать» row with the preview chip while the typed text is new | The dictionary is open | `false` |
|
|
89
|
-
| `onOptionUpdate` / `onOptionDelete` | a «⋯» button on the highlighted row opening a rename / color / delete menu | Users keep their own tags | |
|
|
90
|
-
| `disabled` | disabled fill, muted chips, no list |
|
|
91
|
+
| `onOptionUpdate` / `onOptionDelete` | a «⋯» button on the highlighted row (always shown on touch screens) opening a rename / color / delete menu | Users keep their own tags | |
|
|
92
|
+
| `disabled` | disabled fill, muted chips, no list | The value is read-only in this context | `false` |
|
|
91
93
|
| `invalid` / `error` | danger inset ring (+ the message) | Validation failed | |
|
|
92
94
|
|
|
93
95
|
## States
|
|
94
96
|
| State | Driven by | DOM |
|
|
95
97
|
|---|---|---|
|
|
96
|
-
| collapsed / expanded | focus inside or the list open | `data-expanded="true"` on the control: every chip on up to three rows (then scroll with edge fades); the height animates |
|
|
98
|
+
| collapsed / expanded | focus inside or the list open | `data-expanded="true"` on the control: every chip on up to three rows (then scroll with edge fades); the height animates. Focus leaving the field collapses it and clears the typed query |
|
|
97
99
|
| open | focus, typing, arrows | `data-state="open"` on the control; list `data-state`, `data-side` |
|
|
98
100
|
| overflow | more chips than fit at rest | a «+N» Badge button with `labels.more` and the hidden labels in `title` |
|
|
99
101
|
| invalid | `invalid` or `error` | `data-invalid="true"`, `aria-invalid` on the input; the control shakes once when an error arrives (`data-shake` on the frame) |
|
|
100
|
-
| disabled | `disabled` | `data-disabled="true"`, native `disabled` on the input |
|
|
102
|
+
| disabled | `disabled` | `data-disabled="true"`, native `disabled` on the input and the hidden `name` inputs; never expands |
|
|
101
103
|
| option highlighted / selected / disabled | keyboard and pointer / value / option `disabled` | `data-highlighted`, `aria-selected` + checked indicator, `data-disabled` |
|
|
104
|
+
| option deletion pending | `onOptionDelete` returned a Promise that has not settled | `aria-busy` + `data-pending="true"` on the row, a spinner in place of «⋯», the row cannot be picked; value and options unchanged until it resolves, kept on reject |
|
|
105
|
+
| option update pending | `onOptionUpdate` returned a Promise that has not settled | the new name or color shows at once (row, chip, menu); «⋯» is `loading` (`aria-busy`) while the menu stays open; on reject the option goes back and `labels.updateFailed` is announced |
|
|
106
|
+
| creation pending | `onCreate` returned a Promise that has not settled | the new chip is in the selection with Badge `loading`: `aria-busy`, dimmed, a spinner in its remove segment; it cannot be removed (×, Delete, Backspace) until the answer; on reject it leaves the selection and the list and `labels.createFailed` is announced |
|
|
107
|
+
| chip leaving | a chip removed by its × | the chip closes up in place (Badge's exit) and the chips after it glide in |
|
|
102
108
|
|
|
103
109
|
## Layout & spacing
|
|
104
110
|
- The field is 100% wide; set the width with the layout.
|
|
105
111
|
- Chips sit `--prime-space-1` apart; the chip row keeps `--prime-focus-space` so chip rings are never cut.
|
|
106
112
|
- The list is at least the field width and `--prime-panel-min-width`; max height `--prime-panel-max-height`, flips near the viewport edge.
|
|
113
|
+
- Pass every option: past 100 listed options the list renders only the options around the view; the highlighted option and the one whose «⋯» menu is open stay rendered, options carry `aria-posinset` / `aria-setsize`.
|
|
107
114
|
|
|
108
115
|
## Accessibility
|
|
109
116
|
|
|
110
117
|
### Keyboard
|
|
111
118
|
| Key | Action |
|
|
112
119
|
|---|---|
|
|
113
|
-
| `ArrowDown` · `ArrowUp` | Open the list and move the highlight over the options. |
|
|
114
|
-
| `Enter` | Tick or untick the highlighted option; on the Create row, create the tag. |
|
|
120
|
+
| `ArrowDown` · `ArrowUp` | Open the list (when it has something to show) and move the highlight over the options. |
|
|
121
|
+
| `Enter` | Tick or untick the highlighted option (the first one when nothing is highlighted); on the Create row, create the tag; in the row menu's name field, save the new name and close the menu. |
|
|
115
122
|
| `Space` | Types a space: a tag may have several words. |
|
|
116
|
-
| `Backspace` | In an empty input removes the last tag. |
|
|
123
|
+
| `Backspace` | In an empty input removes the last tag; on a tag removes it and focuses the previous tag. |
|
|
117
124
|
| `ArrowLeft` · `ArrowRight` | From the start of the input move focus over the tags and back to the input. |
|
|
118
|
-
| `Delete` | On a tag removes it; focus moves to the
|
|
119
|
-
| `Escape` | Closes the list. |
|
|
125
|
+
| `Delete` | On a tag removes it; focus moves to the next tag, or to the input when none is left. |
|
|
126
|
+
| `Escape` | Closes the row «⋯» menu if it is open, otherwise the list. |
|
|
120
127
|
|
|
121
128
|
### ARIA
|
|
122
129
|
- The input is `role="combobox"` with `aria-expanded` and `aria-controls`; the list is `role="listbox"` with `aria-multiselectable`, options are `role="option"` with `aria-selected`.
|
|
123
130
|
- The highlight goes through `aria-activedescendant`; the checkbox in a row is decorative.
|
|
124
131
|
- A removal is announced with `labels.removed` in a live region; the remove button is named by `labels.remove`.
|
|
132
|
+
- A tag being created has `aria-busy` on its chip, a row whose rename or recolor is saved has a busy «⋯»; a refused creation or change is announced with `labels.createFailed` / `labels.updateFailed`.
|
|
125
133
|
- The hint and the error are linked by `aria-describedby`; the error sets `aria-invalid`.
|
|
126
134
|
|
|
127
135
|
### Labels
|
|
@@ -134,6 +142,8 @@ No `variant` or `tone`. The control is the field look; chips are soft Badges on
|
|
|
134
142
|
| `remove` | `"Удалить {label}"` | Accessible name of a chip's remove button; `{label}` is the tag text. |
|
|
135
143
|
| `more` | `"Показать ещё {count}"` | Accessible name of the «+N» chip; `{count}` is the number of hidden tags. |
|
|
136
144
|
| `removed` | `"Удалено: {label}"` | Screen-reader announcement after a tag is removed. |
|
|
145
|
+
| `createFailed` | `"Не удалось создать тег «{label}»"` | Screen-reader announcement when the `onCreate` promise rejects and the new tag leaves. |
|
|
146
|
+
| `updateFailed` | `"Не удалось изменить тег «{label}»"` | Screen-reader announcement when the `onOptionUpdate` promise rejects and the option goes back. |
|
|
137
147
|
| `edit` | `"Изменить тег {label}"` | Accessible name of a row's «⋯» menu button. |
|
|
138
148
|
| `name` | `"Название тега"` | Accessible name of the tag name field in the menu. |
|
|
139
149
|
| `delete` | `"Удалить"` | Delete button in the menu. |
|
|
@@ -148,19 +158,22 @@ No `variant` or `tone`. The control is the field look; chips are soft Badges on
|
|
|
148
158
|
| [sizes.tsx](examples/sizes.tsx) | Every size tier with two picked tags; chips sit one tier below the field — `size`. |
|
|
149
159
|
| [states.tsx](examples/states.tsx) | A default field next to a disabled and an invalid one, with a disabled option in the list — `disabled`, `invalid`. |
|
|
150
160
|
| [validation.tsx](examples/validation.tsx) | Live validation: removing the last region shakes the field and drops the error in, adding one clears it; required and optional markers and a hint — `required`, `optional`, `hint`, `error`. |
|
|
151
|
-
| [creatable.tsx](examples/creatable.tsx) | A typed text that is not in the list becomes a new tag from the Create row or Enter — `creatable`, `onCreate`, `defaultColor`. |
|
|
161
|
+
| [creatable.tsx](examples/creatable.tsx) | A typed text that is not in the list becomes a new tag from the Create row or Enter and is saved on the server: the chip waits busy, and a tag the server refuses leaves again — `creatable`, `onCreate`, `defaultColor`. |
|
|
152
162
|
| [many-tags.tsx](examples/many-tags.tsx) | More tags than fit: at rest one row with «+N», focused every tag on up to three wrapped rows that scroll — `defaultValue`. |
|
|
153
|
-
| [manage-tags.tsx](examples/manage-tags.tsx) | Users keep their own tag dictionary: the row «⋯» menu renames, recolors or deletes an option — `onOptionUpdate`, `onOptionDelete`. |
|
|
163
|
+
| [manage-tags.tsx](examples/manage-tags.tsx) | Users keep their own tag dictionary on the server: the row «⋯» menu renames, recolors or deletes an option, and «⋯» spins while a change is saved — `onOptionUpdate`, `onOptionDelete`. |
|
|
164
|
+
| [confirm-delete.tsx](examples/confirm-delete.tsx) | Deleting a shared tag asks first: the row waits with a spinner while the dialog is open, cancelling keeps the tag and the selection — `onOptionDelete`. |
|
|
154
165
|
| [controlled.tsx](examples/controlled.tsx) | The parent owns the value: a preset button replaces the tags and the count follows them — `value`, `onValueChange`. |
|
|
155
166
|
| [controlled-open.tsx](examples/controlled-open.tsx) | The parent owns the list: a button opens it from code, Escape or an outside press closes it — `open`, `onOpenChange`. |
|
|
156
|
-
| [in-form.tsx](examples/in-form.tsx) | A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task — `required`, `error`, `creatable`. |
|
|
167
|
+
| [in-form.tsx](examples/in-form.tsx) | A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task; the tags go with the form — `required`, `error`, `creatable`, `name`. |
|
|
157
168
|
|
|
158
169
|
## Mistakes
|
|
159
170
|
- `TagSelect.Root` → TagSelect is a single export: `<TagSelect …/>`.
|
|
160
171
|
- Options as JSX children → pass `options` data.
|
|
161
172
|
- `onOptionUpdate` without updating your `options` → the rename disappears on the next render; keep `options` in state.
|
|
162
173
|
- A TagSelect for one value → use Select.
|
|
174
|
+
- Saving a created tag and taking it out of `value` yourself when the request fails → return the request's promise from `onCreate`; the chip waits and leaves on a rejection.
|
|
175
|
+
- Deleting a shared tag without asking, or restoring the value by hand after a cancelled confirmation → return a Promise from `onOptionDelete` that resolves on confirm and rejects on cancel; nothing changes until it resolves.
|
|
163
176
|
|
|
164
177
|
## Related
|
|
165
|
-
- **Built from:** [Badge](../badge/COMPONENT.md) (chips, «+N»), [Checkbox](../checkbox/COMPONENT.md) (`Checkbox.Indicator`), [ScrollContainer](../scroll-container/COMPONENT.md) (chip row, list), [Popover](../popover/COMPONENT.md), [Button](../button/COMPONENT.md), [Input](../input/COMPONENT.md) and [Divider](../divider/COMPONENT.md) (row menu), [Label](../label/COMPONENT.md) and [Hint](../hint/COMPONENT.md) (field frame)
|
|
178
|
+
- **Built from:** [Badge](../badge/COMPONENT.md) (chips, «+N»), [Checkbox](../checkbox/COMPONENT.md) (`Checkbox.Indicator`), [ScrollContainer](../scroll-container/COMPONENT.md) (chip row, list), [Popover](../popover/COMPONENT.md), [Button](../button/COMPONENT.md), [Input](../input/COMPONENT.md) and [Divider](../divider/COMPONENT.md) (row menu), [VisuallyHidden](../visually-hidden/COMPONENT.md) («+N» name, removal announcement), `Icon` (chevron, plus, «⋯», delete), [Label](../label/COMPONENT.md) and [Hint](../hint/COMPONENT.md) (field frame); `useVirtualRows` (the window of a long list)
|
|
166
179
|
- **See also:** [Select](../select/COMPONENT.md), [Badge](../badge/COMPONENT.md), [Checkbox](../checkbox/COMPONENT.md)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** Deleting a shared tag asks first: the row waits with a spinner while the dialog is open, cancelling keeps the tag and the selection — `onOptionDelete`. */
|
|
2
|
+
import { ConfirmDialog, TagSelect, type TagSelectOption } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
const INITIAL_OPTIONS: TagSelectOption[] = [
|
|
6
|
+
{ value: "vip", label: "VIP", color: "purple" },
|
|
7
|
+
{ value: "wholesale", label: "Опт", color: "blue" },
|
|
8
|
+
{ value: "overdue", label: "Просрочка", color: "red" },
|
|
9
|
+
{ value: "new", label: "Новый клиент", color: "green" },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
const CLIENTS_WITH_TAG: Record<string, number> = { vip: 12, wholesale: 48, overdue: 7, new: 31 };
|
|
13
|
+
|
|
14
|
+
type Answer = { resolve: () => void; reject: () => void };
|
|
15
|
+
|
|
16
|
+
export default function TagSelectConfirmDeleteExample() {
|
|
17
|
+
const [options, setOptions] = React.useState(INITIAL_OPTIONS);
|
|
18
|
+
const [open, setOpen] = React.useState(false);
|
|
19
|
+
const [target, setTarget] = React.useState<TagSelectOption>();
|
|
20
|
+
const answer = React.useRef<Answer>(null);
|
|
21
|
+
|
|
22
|
+
const askToDelete = (value: string) =>
|
|
23
|
+
new Promise<void>((resolve, reject) => {
|
|
24
|
+
answer.current = { resolve, reject };
|
|
25
|
+
setTarget(options.find((option) => option.value === value));
|
|
26
|
+
setOpen(true);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const confirm = () => {
|
|
30
|
+
setOptions((prev) => prev.filter((option) => option.value !== target?.value));
|
|
31
|
+
answer.current?.resolve();
|
|
32
|
+
answer.current = null;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<>
|
|
37
|
+
<TagSelect
|
|
38
|
+
label="Метки клиента"
|
|
39
|
+
options={options}
|
|
40
|
+
defaultValue={["vip", "wholesale"]}
|
|
41
|
+
onOptionDelete={askToDelete}
|
|
42
|
+
placeholder="Добавить метку"
|
|
43
|
+
/>
|
|
44
|
+
<ConfirmDialog.Root
|
|
45
|
+
open={open}
|
|
46
|
+
onOpenChange={(next) => {
|
|
47
|
+
setOpen(next);
|
|
48
|
+
if (next) return;
|
|
49
|
+
// Closed without the confirm: the tag stays.
|
|
50
|
+
answer.current?.reject();
|
|
51
|
+
answer.current = null;
|
|
52
|
+
}}
|
|
53
|
+
title={`Удалить метку «${target?.label ?? ""}»?`}
|
|
54
|
+
description={`Она снимется у всех клиентов с этой меткой: ${CLIENTS_WITH_TAG[target?.value ?? ""] ?? 0}.`}
|
|
55
|
+
confirmLabel="Удалить"
|
|
56
|
+
onConfirm={confirm}
|
|
57
|
+
/>
|
|
58
|
+
</>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** A typed text that is not in the list becomes a new tag from the Create row or Enter — `creatable`, `onCreate`, `defaultColor`. */
|
|
1
|
+
/** A typed text that is not in the list becomes a new tag from the Create row or Enter and is saved on the server: the chip waits busy, and a tag the server refuses leaves again — `creatable`, `onCreate`, `defaultColor`. */
|
|
2
2
|
import { TagSelect, type TagSelectOption, Typography } from "prime-ui-kit";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -7,8 +7,19 @@ const OPTIONS: TagSelectOption[] = [
|
|
|
7
7
|
{ value: "feature", label: "Новая функция", color: "blue" },
|
|
8
8
|
];
|
|
9
9
|
|
|
10
|
+
/** The server's answer a beat later: a label needs at least three letters. */
|
|
11
|
+
function saveLabel(value: string) {
|
|
12
|
+
return new Promise<void>((resolve, reject) => {
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
if (value.length < 3) reject(new Error(`Метка «${value}» короче трёх букв`));
|
|
15
|
+
else resolve();
|
|
16
|
+
}, 900);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
10
20
|
export default function TagSelectCreatableExample() {
|
|
11
21
|
const [created, setCreated] = React.useState<string[]>([]);
|
|
22
|
+
const [failure, setFailure] = React.useState<string>();
|
|
12
23
|
|
|
13
24
|
return (
|
|
14
25
|
<>
|
|
@@ -17,7 +28,17 @@ export default function TagSelectCreatableExample() {
|
|
|
17
28
|
options={OPTIONS}
|
|
18
29
|
creatable
|
|
19
30
|
defaultColor="purple"
|
|
20
|
-
|
|
31
|
+
error={failure}
|
|
32
|
+
onCreate={async (value) => {
|
|
33
|
+
setFailure(undefined);
|
|
34
|
+
try {
|
|
35
|
+
await saveLabel(value);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
setFailure(error instanceof Error ? error.message : String(error));
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
setCreated((prev) => [...prev, value]);
|
|
41
|
+
}}
|
|
21
42
|
placeholder="Найдите или создайте метку"
|
|
22
43
|
/>
|
|
23
44
|
<Typography as="p" variant="body-s" tone="secondary">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task — `required`, `error`, `creatable`. */
|
|
1
|
+
/** A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task; the tags go with the form — `required`, `error`, `creatable`, `name`. */
|
|
2
2
|
import { Button, Input, TagSelect, type TagSelectOption, Typography } from "prime-ui-kit";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -39,6 +39,7 @@ export default function TagSelectInFormExample() {
|
|
|
39
39
|
</Input.Root>
|
|
40
40
|
<TagSelect
|
|
41
41
|
label="Метки"
|
|
42
|
+
name="labels"
|
|
42
43
|
required
|
|
43
44
|
hint="Помогают фильтровать задачи"
|
|
44
45
|
error={error}
|
|
@@ -52,7 +53,13 @@ export default function TagSelectInFormExample() {
|
|
|
52
53
|
creatable
|
|
53
54
|
placeholder="Добавить метку"
|
|
54
55
|
/>
|
|
55
|
-
<TagSelect
|
|
56
|
+
<TagSelect
|
|
57
|
+
label="Наблюдатели"
|
|
58
|
+
name="watchers"
|
|
59
|
+
optional
|
|
60
|
+
options={PEOPLE}
|
|
61
|
+
placeholder="Добавить человека"
|
|
62
|
+
/>
|
|
56
63
|
<div className={styles.actions}>
|
|
57
64
|
{saved ? (
|
|
58
65
|
<Typography as="p" variant="body-s" tone="secondary">
|