prime-ui-kit 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -74
- package/dist/chunks/{chunk-Q3BFRQHZ.js → chunk-2ODXLPW3.js} +169 -10
- package/dist/chunks/{chunk-XJAVS6FH.js → chunk-7WWZYGRC.js} +5482 -4179
- package/dist/chunks/{chunk-THFZIHKU.js → chunk-A4WE3UNC.js} +28219 -27605
- package/dist/chunks/{chunk-6TI4DSM5.js → chunk-PRP4B6OG.js} +1 -1
- package/dist/chunks/{chunk-2IKH55MI.js → chunk-SVFWPLNW.js} +215 -154
- package/dist/color-picker.d.ts +1 -1
- package/dist/color-picker.js +3 -3
- package/dist/components/accordion/Accordion.d.ts +52 -5
- package/dist/components/avatar/Avatar.d.ts +31 -8
- package/dist/components/badge/Badge.d.ts +93 -25
- package/dist/components/banner/Banner.d.ts +17 -10
- package/dist/components/breadcrumb/Breadcrumb.d.ts +18 -5
- package/dist/components/button/Button.d.ts +102 -43
- package/dist/components/button-group/ButtonGroup.d.ts +32 -8
- package/dist/components/card/Card.d.ts +15 -9
- package/dist/components/chart-frame/ChartFrame.d.ts +58 -51
- package/dist/components/chat/Chat.d.ts +77 -38
- package/dist/components/chat/ChatPinned.d.ts +20 -8
- package/dist/components/chat/ChatRows.d.ts +8 -1
- package/dist/components/chat/MessageList.d.ts +14 -19
- package/dist/components/chat/chatContext.d.ts +3 -3
- package/dist/components/chat/messageFlow.d.ts +1 -1
- package/dist/components/chat-list/ChatList.d.ts +88 -34
- package/dist/components/checkbox/Checkbox.d.ts +61 -12
- package/dist/components/code-block/CodeBlock.d.ts +11 -5
- package/dist/components/color-field/ColorField.d.ts +54 -14
- package/dist/components/color-picker/ColorPicker.d.ts +81 -30
- package/dist/components/color-picker/ColorPresets.d.ts +68 -13
- package/dist/components/color-swatches/ColorSwatches.d.ts +90 -18
- package/dist/components/command-menu/CommandMenu.d.ts +86 -27
- package/dist/components/composer/Composer.d.ts +82 -41
- package/dist/components/composer/useRecorder.d.ts +0 -2
- package/dist/components/confirm-dialog/ConfirmDialog.d.ts +40 -16
- package/dist/components/crossfade/Crossfade.d.ts +5 -8
- package/dist/components/data-table/ColumnsMenu.d.ts +6 -2
- package/dist/components/data-table/DataTable.d.ts +157 -58
- package/dist/components/data-table/Footer.d.ts +2 -4
- package/dist/components/data-table/Row.d.ts +1 -1
- package/dist/components/data-table/StateRows.d.ts +2 -2
- package/dist/components/data-table/reorder.d.ts +10 -10
- package/dist/components/data-table/types.d.ts +5 -0
- package/dist/components/data-table/useInfiniteRows.d.ts +3 -3
- package/dist/components/datepicker/Datepicker.d.ts +61 -12
- package/dist/components/datepicker/DatepickerPanel.d.ts +76 -16
- package/dist/components/datepicker/panelLayout.d.ts +6 -11
- package/dist/components/description-list/DescriptionList.d.ts +40 -11
- package/dist/components/digit-input/DigitInput.d.ts +50 -19
- package/dist/components/divider/Divider.d.ts +15 -5
- package/dist/components/dnd/Dnd.d.ts +152 -41
- package/dist/components/dnd/geometry.d.ts +0 -8
- package/dist/components/dnd/labels.d.ts +1 -1
- package/dist/components/dnd/useDropTarget.d.ts +0 -2
- package/dist/components/dnd/useSortableList.d.ts +6 -1
- package/dist/components/drawer/Drawer.d.ts +39 -18
- package/dist/components/dropdown/Dropdown.d.ts +90 -19
- package/dist/components/empty-page/EmptyPage.d.ts +14 -15
- package/dist/components/example-frame/ExampleFrame.d.ts +38 -8
- package/dist/components/field-list/FieldList.d.ts +57 -19
- package/dist/components/fieldset/Fieldset.d.ts +12 -7
- package/dist/components/file-upload/FileUpload.d.ts +119 -42
- package/dist/components/gallery/Gallery.d.ts +44 -16
- package/dist/components/gallery/layout.d.ts +4 -1
- package/dist/components/gantt/Gantt.d.ts +69 -34
- package/dist/components/gantt/GanttRow.d.ts +2 -2
- package/dist/components/hint/Hint.d.ts +10 -4
- package/dist/components/index.d.ts +18 -21
- package/dist/components/input/Input.d.ts +78 -25
- package/dist/components/kanban/Kanban.d.ts +64 -36
- package/dist/components/kbd/Kbd.d.ts +3 -1
- package/dist/components/label/Label.d.ts +33 -4
- package/dist/components/link-button/LinkButton.d.ts +40 -10
- package/dist/components/list/List.d.ts +48 -26
- package/dist/components/login-form/LoginForm.d.ts +66 -7
- package/dist/components/media-viewer/MediaViewer.d.ts +46 -18
- package/dist/components/media-viewer/physics.d.ts +0 -2
- package/dist/components/media-viewer/viewerEngine.d.ts +0 -1
- package/dist/components/message/Message.d.ts +27 -16
- package/dist/components/message/MessageCards.d.ts +49 -10
- package/dist/components/message/MessageFile.d.ts +19 -5
- package/dist/components/message/MessageParts.d.ts +44 -18
- package/dist/components/message/MessageReactionBar.d.ts +3 -1
- package/dist/components/message/MessageTyping.d.ts +10 -6
- package/dist/components/message/bubbleMorph.d.ts +2 -0
- package/dist/components/modal/Modal.d.ts +6 -6
- package/dist/components/native-select/NativeSelect.d.ts +22 -7
- package/dist/components/notification/Notification.d.ts +35 -11
- package/dist/components/notification/NotificationStore.d.ts +12 -3
- package/dist/components/pagination/Pagination.d.ts +29 -6
- package/dist/components/popover/Popover.d.ts +54 -31
- package/dist/components/progress-bar/ProgressBar.d.ts +37 -12
- package/dist/components/progress-circle/ProgressCircle.d.ts +32 -13
- package/dist/components/radio/Radio.d.ts +58 -15
- package/dist/components/scroll-container/ScrollContainer.d.ts +28 -14
- package/dist/components/scroll-container/useScrollEdges.d.ts +1 -24
- package/dist/components/segmented-control/SegmentedControl.d.ts +73 -15
- package/dist/components/select/Select.d.ts +104 -30
- package/dist/components/select/SelectItem.d.ts +35 -8
- package/dist/components/select/selectContext.d.ts +7 -19
- package/dist/components/sheet/Sheet.d.ts +32 -15
- package/dist/components/skeleton/Skeleton.d.ts +9 -3
- package/dist/components/slider/Slider.d.ts +55 -15
- package/dist/components/smart-filter/SmartFilter.d.ts +39 -13
- package/dist/components/sparkline/Sparkline.d.ts +42 -19
- package/dist/components/spinner/Spinner.d.ts +11 -5
- package/dist/components/stepper/Stepper.d.ts +41 -19
- package/dist/components/switch/Switch.d.ts +37 -12
- package/dist/components/tabs/Tabs.d.ts +61 -18
- package/dist/components/tag-select/TagSelect.d.ts +74 -20
- package/dist/components/textarea/Textarea.d.ts +52 -25
- package/dist/components/thumbnail/Thumbnail.d.ts +50 -20
- package/dist/components/timeline/Timeline.d.ts +85 -66
- package/dist/components/tooltip/Tooltip.d.ts +47 -17
- package/dist/components/typography/Typography.d.ts +32 -6
- package/dist/components/video-note/VideoNote.d.ts +7 -1
- package/dist/{internal → components/visually-hidden}/VisuallyHidden.d.ts +5 -5
- package/dist/components/voice-player/VoicePlayer.d.ts +16 -3
- package/dist/hooks/breakpoints.d.ts +10 -0
- package/dist/hooks/floatingPosition.d.ts +42 -0
- package/dist/hooks/useDraft.d.ts +12 -0
- package/dist/hooks/useEdgeOverflow.d.ts +5 -3
- package/dist/hooks/useElementSize.d.ts +31 -0
- package/dist/hooks/useEnterConfirm.d.ts +2 -1
- package/dist/hooks/useImageStatus.d.ts +12 -5
- package/dist/hooks/useLoadMore.d.ts +28 -0
- package/dist/hooks/useMediaQuery.d.ts +1 -3
- package/dist/hooks/useMergedRefs.d.ts +10 -4
- package/dist/hooks/useModalLayer.d.ts +13 -7
- package/dist/hooks/usePosition.d.ts +4 -42
- package/dist/hooks/usePresence.d.ts +4 -7
- package/dist/hooks/useScrollRegion.d.ts +28 -0
- package/dist/hooks/useStableValue.d.ts +6 -0
- package/dist/hooks/useSwipeDismiss.d.ts +38 -17
- package/dist/hooks/useVirtualRows.d.ts +9 -3
- package/dist/icon-set.js +2 -2
- package/dist/icons/Icon.d.ts +1 -1
- package/dist/icons/glyph.d.ts +9 -2
- package/dist/index.css +1 -1
- package/dist/index.js +15 -9
- package/dist/internal/AnchorRectContext.d.ts +2 -1
- package/dist/internal/ChartTooltip.d.ts +1 -1
- package/dist/internal/CheckMark.d.ts +2 -2
- package/dist/internal/ChoiceField.d.ts +29 -10
- package/dist/internal/ControlSizeContext.d.ts +16 -0
- package/dist/internal/Disclosure.d.ts +38 -9
- package/dist/internal/FieldAction.d.ts +20 -12
- package/dist/internal/FieldCommit.d.ts +8 -11
- package/dist/internal/FieldFrame.d.ts +100 -21
- package/dist/internal/MenuGroup.d.ts +3 -1
- package/dist/internal/MorphText.d.ts +2 -1
- package/dist/internal/ProgressLegend.d.ts +3 -2
- package/dist/internal/RegionSwap.d.ts +41 -0
- package/dist/internal/RollingNumber.d.ts +10 -1
- package/dist/internal/RowAction.d.ts +26 -0
- package/dist/internal/SwitcherScroller.d.ts +11 -0
- package/dist/internal/attachmentTile.d.ts +1 -1
- package/dist/internal/audio.d.ts +13 -0
- package/dist/internal/barPlan.d.ts +44 -0
- package/dist/{components/badge/tier.d.ts → internal/chipTier.d.ts} +7 -5
- package/dist/internal/context.d.ts +10 -1
- package/dist/internal/controlValue.d.ts +7 -0
- package/dist/internal/edgeAutoScroll.d.ts +43 -25
- package/dist/internal/fieldCell.d.ts +4 -3
- package/dist/internal/fieldClasses.d.ts +15 -2
- package/dist/internal/fileSize.d.ts +5 -1
- package/dist/internal/formatClock.d.ts +2 -0
- package/dist/internal/formatNumber.d.ts +6 -0
- package/dist/internal/glyphSwap.d.ts +5 -9
- package/dist/internal/hasContent.d.ts +6 -0
- package/dist/internal/highlightTsx.d.ts +12 -0
- package/dist/internal/iconBox.d.ts +6 -0
- package/dist/internal/iconLayout.d.ts +2 -1
- package/dist/internal/imageSlot.d.ts +6 -1
- package/dist/internal/interactiveElement.d.ts +41 -0
- package/dist/internal/labels.d.ts +6 -0
- package/dist/internal/leaveInPlace.d.ts +6 -5
- package/dist/internal/listPresence.d.ts +32 -0
- package/dist/internal/listbox.d.ts +71 -31
- package/dist/internal/longPress.d.ts +42 -0
- package/dist/internal/mediaDisk.d.ts +7 -4
- package/dist/internal/mediaPlayer.d.ts +91 -27
- package/dist/internal/mediaSession.d.ts +0 -6
- package/dist/internal/messageList.d.ts +4 -3
- package/dist/internal/motionTiming.d.ts +34 -0
- package/dist/internal/namedRole.d.ts +13 -0
- package/dist/internal/nodeText.d.ts +6 -0
- package/dist/{components/modal → internal/overlay}/DialogGuard.d.ts +3 -5
- package/dist/{components/modal → internal/overlay}/DialogParts.d.ts +86 -89
- package/dist/internal/overlay/FloatingPanel.d.ts +27 -5
- package/dist/internal/overlay/ModalDialog.d.ts +59 -0
- package/dist/internal/overlay/focus.d.ts +31 -6
- package/dist/internal/overlay/layerStack.d.ts +8 -5
- package/dist/internal/overlay/useAnchorName.d.ts +14 -0
- package/dist/internal/overlay/useContainScroll.d.ts +7 -0
- package/dist/internal/overlay/useFloatingLayer.d.ts +43 -14
- package/dist/internal/overlay/useOpenState.d.ts +22 -0
- package/dist/internal/partPresence.d.ts +31 -0
- package/dist/internal/parts.d.ts +39 -0
- package/dist/internal/progressSegments.d.ts +52 -12
- package/dist/internal/richText.d.ts +6 -34
- package/dist/internal/ring.d.ts +18 -8
- package/dist/internal/rovingFocus.d.ts +10 -5
- package/dist/{components/data-table/rowEvents.d.ts → internal/rowLink.d.ts} +0 -5
- package/dist/internal/scrollAncestors.d.ts +14 -0
- package/dist/internal/selectionIndicator.d.ts +27 -0
- package/dist/internal/slot.d.ts +23 -5
- package/dist/internal/states.d.ts +61 -0
- package/dist/internal/sticky.d.ts +5 -1
- package/dist/internal/swallowNextClick.d.ts +9 -0
- package/dist/internal/swatch.d.ts +59 -15
- package/dist/internal/textFormatting.d.ts +2 -1
- package/dist/internal/textFormattingToolbar.d.ts +3 -2
- package/dist/internal/tokenDefaults.d.ts +21 -0
- package/dist/internal/touchTarget.d.ts +5 -0
- package/dist/internal/transcript.d.ts +19 -18
- package/dist/internal/transfer.d.ts +22 -8
- package/dist/internal/transferDisk.d.ts +2 -3
- package/dist/internal/useFlipList.d.ts +44 -0
- package/dist/internal/useNearView.d.ts +4 -3
- package/dist/internal/usePendingChanges.d.ts +23 -0
- package/dist/internal/useRangeSelection.d.ts +2 -1
- package/dist/layout/app-shell/AppShell.d.ts +63 -18
- package/dist/layout/bottom-nav/BottomNav.d.ts +58 -22
- package/dist/layout/index.d.ts +4 -4
- package/dist/layout/page/Page.d.ts +263 -0
- package/dist/layout/sidebar/Sidebar.d.ts +232 -101
- package/dist/skill/SKILL.md +16 -16
- package/dist/skill/anti-slop.md +204 -27
- package/dist/skill/api-contract.md +115 -35
- package/dist/skill/cheatsheet.md +60 -55
- package/dist/skill/checklist.md +61 -89
- package/dist/skill/choosing.md +26 -27
- package/dist/skill/components.md +50 -50
- package/dist/skill/composition.md +220 -185
- package/dist/skill/foundations.md +39 -32
- package/dist/skill/layouts.md +82 -143
- package/dist/skill/motion.md +26 -31
- package/dist/skill/reference/components/accordion/COMPONENT.md +16 -9
- package/dist/skill/reference/components/accordion/examples/overview.tsx +2 -2
- package/dist/skill/reference/components/accordion/examples/sizes.tsx +6 -8
- package/dist/skill/reference/components/accordion/examples/states.tsx +27 -24
- package/dist/skill/reference/components/accordion/examples/variants.tsx +6 -8
- package/dist/skill/reference/components/accordion/examples/with-icon.tsx +22 -19
- package/dist/skill/reference/components/avatar/COMPONENT.md +24 -17
- package/dist/skill/reference/components/avatar/examples/examples.module.css +1 -4
- package/dist/skill/reference/components/avatar/examples/overview.tsx +3 -3
- package/dist/skill/reference/components/avatar/examples/presence.tsx +4 -4
- package/dist/skill/reference/components/avatar/examples/src-from-state.tsx +3 -3
- package/dist/skill/reference/components/avatar/examples/states.tsx +4 -4
- package/dist/skill/reference/components/avatar/examples/team-group.tsx +3 -3
- package/dist/skill/reference/components/badge/COMPONENT.md +66 -34
- package/dist/skill/reference/components/badge/examples/controlled.tsx +32 -0
- package/dist/skill/reference/components/badge/examples/examples.module.css +2 -2
- package/dist/skill/reference/components/badge/examples/filter-values.tsx +4 -6
- package/dist/skill/reference/components/badge/examples/in-controls.tsx +1 -1
- package/dist/skill/reference/components/badge/examples/overview.tsx +6 -5
- package/dist/skill/reference/components/badge/examples/square.tsx +21 -0
- package/dist/skill/reference/components/badge/examples/states.tsx +4 -4
- package/dist/skill/reference/components/badge/examples/with-icon.tsx +10 -1
- package/dist/skill/reference/components/banner/COMPONENT.md +13 -9
- package/dist/skill/reference/components/banner/examples/dismissible.tsx +3 -19
- package/dist/skill/reference/components/banner/examples/examples.module.css +6 -1
- package/dist/skill/reference/components/banner/examples/overview.tsx +1 -1
- package/dist/skill/reference/components/banner/examples/page-strip.tsx +24 -22
- package/dist/skill/reference/components/breadcrumb/COMPONENT.md +23 -16
- package/dist/skill/reference/components/breadcrumb/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +1 -1
- package/dist/skill/reference/components/breadcrumb/examples/sizes.tsx +6 -8
- package/dist/skill/reference/components/breadcrumb/examples/with-icon.tsx +15 -8
- package/dist/skill/reference/components/button/COMPONENT.md +67 -30
- package/dist/skill/reference/components/button/examples/align.tsx +25 -0
- package/dist/skill/reference/components/button/examples/controlled.tsx +21 -0
- package/dist/skill/reference/components/button/examples/density.tsx +45 -0
- package/dist/skill/reference/components/button/examples/examples.module.css +14 -25
- package/dist/skill/reference/components/button/examples/hold-to-confirm.tsx +1 -1
- package/dist/skill/reference/components/button/examples/label-morph.tsx +1 -1
- package/dist/skill/reference/components/button/examples/on-colored-host.tsx +19 -19
- package/dist/skill/reference/components/button/examples/over-media.tsx +7 -1
- package/dist/skill/reference/components/button/examples/toggle.tsx +2 -10
- package/dist/skill/reference/components/button-group/COMPONENT.md +21 -15
- package/dist/skill/reference/components/button-group/examples/controlled.tsx +1 -1
- package/dist/skill/reference/components/card/COMPONENT.md +21 -10
- package/dist/skill/reference/components/card/examples/content-templates.tsx +8 -2
- package/dist/skill/reference/components/card/examples/examples.module.css +4 -16
- package/dist/skill/reference/components/card/examples/overview.tsx +11 -11
- package/dist/skill/reference/components/card/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/card/examples/screen.tsx +185 -198
- package/dist/skill/reference/components/card/examples/variants.tsx +74 -47
- package/dist/skill/reference/components/chart-frame/COMPONENT.md +24 -28
- package/dist/skill/reference/components/chart-frame/examples/controlled.tsx +9 -7
- package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +13 -15
- package/dist/skill/reference/components/chart-frame/examples/narrow.tsx +24 -5
- package/dist/skill/reference/components/chart-frame/examples/overview.tsx +5 -2
- package/dist/skill/reference/components/chart-frame/examples/states.tsx +72 -64
- package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +27 -26
- package/dist/skill/reference/components/chat/COMPONENT.md +39 -26
- package/dist/skill/reference/components/chat/examples/group-chat.tsx +2 -2
- package/dist/skill/reference/components/chat/examples/overview.tsx +119 -130
- package/dist/skill/reference/components/chat/examples/reactions.tsx +18 -23
- package/dist/skill/reference/components/chat/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/chat/examples/screen.tsx +212 -242
- package/dist/skill/reference/components/chat/examples/states.tsx +23 -22
- package/dist/skill/reference/components/chat-list/COMPONENT.md +11 -6
- package/dist/skill/reference/components/chat-list/examples/controlled.tsx +2 -2
- package/dist/skill/reference/components/chat-list/examples/examples.module.css +8 -8
- package/dist/skill/reference/components/chat-list/examples/live.tsx +29 -22
- package/dist/skill/reference/components/chat-list/examples/sizes.tsx +6 -8
- package/dist/skill/reference/components/chat-list/examples/states.tsx +42 -38
- package/dist/skill/reference/components/checkbox/COMPONENT.md +27 -14
- package/dist/skill/reference/components/checkbox/examples/controlled.tsx +18 -16
- package/dist/skill/reference/components/checkbox/examples/examples.module.css +15 -56
- package/dist/skill/reference/components/checkbox/examples/in-form.tsx +16 -16
- package/dist/skill/reference/components/checkbox/examples/indicator.tsx +19 -64
- package/dist/skill/reference/components/checkbox/examples/overview.tsx +1 -1
- package/dist/skill/reference/components/checkbox/examples/states.tsx +1 -1
- package/dist/skill/reference/components/checkbox/examples/without-label.tsx +1 -1
- package/dist/skill/reference/components/code-block/COMPONENT.md +16 -12
- package/dist/skill/reference/components/code-block/examples/color-scheme.tsx +2 -4
- package/dist/skill/reference/components/code-block/examples/examples.module.css +1 -9
- package/dist/skill/reference/components/code-block/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/color-field/COMPONENT.md +15 -9
- package/dist/skill/reference/components/color-field/examples/examples.module.css +4 -5
- package/dist/skill/reference/components/color-field/examples/in-form.tsx +15 -13
- package/dist/skill/reference/components/color-field/examples/sizes.tsx +5 -1
- package/dist/skill/reference/components/color-field/examples/states.tsx +15 -3
- package/dist/skill/reference/components/color-picker/COMPONENT.md +69 -22
- package/dist/skill/reference/components/color-picker/examples/controlled.tsx +16 -5
- package/dist/skill/reference/components/color-picker/examples/examples.module.css +8 -12
- package/dist/skill/reference/components/color-picker/examples/in-form.tsx +24 -22
- package/dist/skill/reference/components/color-picker/examples/overview.tsx +6 -11
- package/dist/skill/reference/components/color-picker/examples/panel.tsx +1 -1
- package/dist/skill/reference/components/color-picker/examples/sizes.tsx +10 -16
- package/dist/skill/reference/components/color-picker/examples/states.tsx +28 -23
- package/dist/skill/reference/components/color-swatches/COMPONENT.md +22 -8
- package/dist/skill/reference/components/color-swatches/examples/examples.module.css +3 -4
- package/dist/skill/reference/components/color-swatches/examples/in-form.tsx +19 -17
- package/dist/skill/reference/components/color-swatches/examples/palette.tsx +24 -0
- package/dist/skill/reference/components/color-swatches/examples/wrapping.tsx +17 -2
- package/dist/skill/reference/components/command-menu/COMPONENT.md +60 -20
- package/dist/skill/reference/components/command-menu/examples/sizes.tsx +20 -15
- package/dist/skill/reference/components/command-menu/examples/states.tsx +46 -24
- package/dist/skill/reference/components/composer/COMPONENT.md +42 -24
- package/dist/skill/reference/components/composer/examples/examples.module.css +0 -9
- package/dist/skill/reference/components/composer/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/composer/examples/reply-edit.tsx +3 -3
- package/dist/skill/reference/components/composer/examples/sizes.tsx +3 -5
- package/dist/skill/reference/components/composer/examples/states.tsx +4 -6
- package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +26 -13
- package/dist/skill/reference/components/confirm-dialog/examples/dismiss.tsx +27 -0
- package/dist/skill/reference/components/confirm-dialog/examples/failure.tsx +9 -16
- package/dist/skill/reference/components/crossfade/COMPONENT.md +13 -7
- package/dist/skill/reference/components/crossfade/examples/examples.module.css +1 -40
- package/dist/skill/reference/components/crossfade/examples/fill.tsx +16 -19
- package/dist/skill/reference/components/crossfade/examples/overview.tsx +14 -16
- package/dist/skill/reference/components/crossfade/examples/record-switch.tsx +6 -11
- package/dist/skill/reference/components/crossfade/examples/screen.module.css +1 -24
- package/dist/skill/reference/components/crossfade/examples/screen.tsx +108 -124
- package/dist/skill/reference/components/data-table/COMPONENT.md +36 -26
- package/dist/skill/reference/components/data-table/examples/controlled.tsx +14 -2
- package/dist/skill/reference/components/data-table/examples/examples.module.css +10 -9
- package/dist/skill/reference/components/data-table/examples/narrow.tsx +5 -1
- package/dist/skill/reference/components/data-table/examples/row-link.tsx +2 -1
- package/dist/skill/reference/components/data-table/examples/screen.module.css +2 -2
- package/dist/skill/reference/components/data-table/examples/screen.tsx +53 -62
- package/dist/skill/reference/components/data-table/examples/server.tsx +6 -2
- package/dist/skill/reference/components/data-table/examples/sizes.tsx +17 -17
- package/dist/skill/reference/components/data-table/examples/states.tsx +37 -29
- package/dist/skill/reference/components/datepicker/COMPONENT.md +53 -22
- package/dist/skill/reference/components/datepicker/examples/dismiss.tsx +15 -0
- package/dist/skill/reference/components/datepicker/examples/examples.module.css +9 -2
- package/dist/skill/reference/components/datepicker/examples/in-form.tsx +33 -25
- package/dist/skill/reference/components/datepicker/examples/inline-panel.tsx +3 -1
- package/dist/skill/reference/components/datepicker/examples/sizes.tsx +2 -2
- package/dist/skill/reference/components/datepicker/examples/states.tsx +2 -2
- package/dist/skill/reference/components/datepicker/examples/validation.tsx +3 -3
- package/dist/skill/reference/components/description-list/COMPONENT.md +24 -9
- package/dist/skill/reference/components/description-list/examples/examples.module.css +4 -24
- package/dist/skill/reference/components/description-list/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/description-list/examples/screen.module.css +0 -18
- package/dist/skill/reference/components/description-list/examples/screen.tsx +119 -134
- package/dist/skill/reference/components/description-list/examples/sizes.tsx +2 -4
- package/dist/skill/reference/components/description-list/examples/structure.tsx +6 -7
- package/dist/skill/reference/components/description-list/examples/totals.tsx +40 -0
- package/dist/skill/reference/components/digit-input/COMPONENT.md +12 -6
- package/dist/skill/reference/components/digit-input/examples/examples.module.css +2 -2
- package/dist/skill/reference/components/digit-input/examples/grouped.tsx +4 -4
- package/dist/skill/reference/components/digit-input/examples/in-form.tsx +1 -1
- package/dist/skill/reference/components/digit-input/examples/sizes.tsx +5 -3
- package/dist/skill/reference/components/digit-input/examples/states.tsx +14 -6
- package/dist/skill/reference/components/digit-input/examples/validation.tsx +1 -1
- package/dist/skill/reference/components/divider/COMPONENT.md +28 -14
- package/dist/skill/reference/components/divider/examples/align.tsx +2 -4
- package/dist/skill/reference/components/divider/examples/examples.module.css +16 -17
- package/dist/skill/reference/components/divider/examples/or-separator.tsx +3 -5
- package/dist/skill/reference/components/divider/examples/overview.tsx +18 -16
- package/dist/skill/reference/components/divider/examples/vertical.tsx +25 -8
- package/dist/skill/reference/components/divider/examples/with-icon.tsx +1 -1
- package/dist/skill/reference/components/dnd/COMPONENT.md +52 -34
- package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +1 -1
- package/dist/skill/reference/components/dnd/examples/examples.module.css +7 -7
- package/dist/skill/reference/components/dnd/examples/states.tsx +41 -35
- package/dist/skill/reference/components/drawer/COMPONENT.md +38 -15
- package/dist/skill/reference/components/drawer/examples/guard.tsx +1 -3
- package/dist/skill/reference/components/drawer/examples/header-actions.tsx +1 -1
- package/dist/skill/reference/components/drawer/examples/in-form.tsx +31 -31
- package/dist/skill/reference/components/drawer/examples/placement.tsx +1 -1
- package/dist/skill/reference/components/drawer/examples/screen.tsx +137 -160
- package/dist/skill/reference/components/drawer/examples/sizes.tsx +32 -27
- package/dist/skill/reference/components/dropdown/COMPONENT.md +59 -24
- package/dist/skill/reference/components/dropdown/examples/context-menu.tsx +75 -0
- package/dist/skill/reference/components/dropdown/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/dropdown/examples/sizes.tsx +39 -34
- package/dist/skill/reference/components/dropdown/examples/states.tsx +37 -29
- package/dist/skill/reference/components/empty-page/COMPONENT.md +20 -9
- package/dist/skill/reference/components/empty-page/examples/compact.tsx +28 -18
- package/dist/skill/reference/components/empty-page/examples/examples.module.css +0 -43
- package/dist/skill/reference/components/empty-page/examples/narrow.tsx +3 -3
- package/dist/skill/reference/components/empty-page/examples/region-error.tsx +6 -11
- package/dist/skill/reference/components/empty-page/examples/sizes.tsx +13 -13
- package/dist/skill/reference/components/empty-page/examples/variants.tsx +34 -30
- package/dist/skill/reference/components/example-frame/COMPONENT.md +23 -11
- package/dist/skill/reference/components/example-frame/examples/controlled.tsx +3 -3
- package/dist/skill/reference/components/field-list/COMPONENT.md +14 -8
- package/dist/skill/reference/components/field-list/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/field-list/examples/screen.tsx +19 -19
- package/dist/skill/reference/components/field-list/examples/sizes.tsx +32 -26
- package/dist/skill/reference/components/field-list/examples/states.tsx +37 -31
- package/dist/skill/reference/components/fieldset/COMPONENT.md +11 -6
- package/dist/skill/reference/components/fieldset/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/fieldset/examples/states.tsx +1 -1
- package/dist/skill/reference/components/file-upload/COMPONENT.md +68 -30
- package/dist/skill/reference/components/file-upload/examples/avatar-upload.tsx +5 -5
- package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +12 -7
- package/dist/skill/reference/components/file-upload/examples/examples.module.css +4 -4
- package/dist/skill/reference/components/file-upload/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +4 -4
- package/dist/skill/reference/components/file-upload/examples/screen.module.css +4 -4
- package/dist/skill/reference/components/file-upload/examples/screen.tsx +70 -84
- package/dist/skill/reference/components/file-upload/examples/sizes.tsx +1 -3
- package/dist/skill/reference/components/file-upload/examples/states.tsx +1 -3
- package/dist/skill/reference/components/file-upload/examples/variants.tsx +13 -7
- package/dist/skill/reference/components/gallery/COMPONENT.md +17 -7
- package/dist/skill/reference/components/gallery/examples/album-sizes.tsx +52 -0
- package/dist/skill/reference/components/gallery/examples/controlled.tsx +40 -0
- package/dist/skill/reference/components/gallery/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/gallery/examples/overview.tsx +15 -43
- package/dist/skill/reference/components/gallery/examples/transfer.tsx +22 -13
- package/dist/skill/reference/components/gantt/COMPONENT.md +21 -15
- package/dist/skill/reference/components/gantt/examples/examples.module.css +0 -16
- package/dist/skill/reference/components/gantt/examples/occupancy.tsx +2 -2
- package/dist/skill/reference/components/gantt/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/gantt/examples/screen.tsx +56 -74
- package/dist/skill/reference/components/gantt/examples/sizes.tsx +16 -16
- package/dist/skill/reference/components/gantt/examples/states.tsx +34 -30
- package/dist/skill/reference/components/gantt/examples/variants.tsx +27 -25
- package/dist/skill/reference/components/hint/COMPONENT.md +24 -14
- package/dist/skill/reference/components/hint/examples/examples.module.css +10 -1
- package/dist/skill/reference/components/hint/examples/hint-or-error.tsx +2 -2
- package/dist/skill/reference/components/hint/examples/overview.tsx +10 -11
- package/dist/skill/reference/components/hint/examples/sizes.tsx +1 -1
- package/dist/skill/reference/components/input/COMPONENT.md +10 -6
- package/dist/skill/reference/components/input/examples/affixes.tsx +2 -2
- package/dist/skill/reference/components/input/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/input/examples/sizes.tsx +9 -5
- package/dist/skill/reference/components/input/examples/states.tsx +39 -23
- package/dist/skill/reference/components/input/examples/with-icon.tsx +24 -16
- package/dist/skill/reference/components/kanban/COMPONENT.md +30 -24
- package/dist/skill/reference/components/kanban/examples/columns.tsx +14 -19
- package/dist/skill/reference/components/kanban/examples/item-link.tsx +2 -2
- package/dist/skill/reference/components/kanban/examples/limits.tsx +1 -1
- package/dist/skill/reference/components/kanban/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/kanban/examples/screen.module.css +2 -4
- package/dist/skill/reference/components/kanban/examples/screen.tsx +55 -68
- package/dist/skill/reference/components/kanban/examples/states.tsx +37 -58
- package/dist/skill/reference/components/kanban/examples/variants.tsx +0 -3
- package/dist/skill/reference/components/kbd/COMPONENT.md +11 -7
- package/dist/skill/reference/components/kbd/examples/examples.module.css +1 -20
- package/dist/skill/reference/components/kbd/examples/in-controls.tsx +2 -2
- package/dist/skill/reference/components/kbd/examples/shortcut-list.tsx +14 -26
- package/dist/skill/reference/components/label/COMPONENT.md +26 -11
- package/dist/skill/reference/components/label/examples/examples.module.css +12 -9
- package/dist/skill/reference/components/label/examples/overview.tsx +6 -10
- package/dist/skill/reference/components/label/examples/structure.tsx +2 -2
- package/dist/skill/reference/components/link-button/COMPONENT.md +33 -20
- package/dist/skill/reference/components/link-button/examples/as-child.tsx +1 -1
- package/dist/skill/reference/components/link-button/examples/external-link.tsx +1 -1
- package/dist/skill/reference/components/link-button/examples/overview.tsx +4 -2
- package/dist/skill/reference/components/link-button/examples/variants.tsx +2 -2
- package/dist/skill/reference/components/list/COMPONENT.md +24 -16
- package/dist/skill/reference/components/list/examples/examples.module.css +0 -8
- package/dist/skill/reference/components/list/examples/overflow.tsx +1 -1
- package/dist/skill/reference/components/list/examples/overview.tsx +31 -30
- package/dist/skill/reference/components/list/examples/sizes.tsx +23 -23
- package/dist/skill/reference/components/list/examples/states.tsx +38 -21
- package/dist/skill/reference/components/list/examples/with-icon.tsx +16 -14
- package/dist/skill/reference/components/login-form/COMPONENT.md +69 -16
- package/dist/skill/reference/components/login-form/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/login-form/examples/register.tsx +1 -1
- package/dist/skill/reference/components/media-viewer/COMPONENT.md +12 -8
- package/dist/skill/reference/components/media-viewer/examples/controlled.tsx +16 -16
- package/dist/skill/reference/components/media-viewer/examples/examples.module.css +3 -5
- package/dist/skill/reference/components/media-viewer/examples/video.tsx +1 -1
- package/dist/skill/reference/components/message/COMPONENT.md +102 -46
- package/dist/skill/reference/components/message/examples/typing.tsx +5 -5
- package/dist/skill/reference/components/modal/COMPONENT.md +71 -37
- package/dist/skill/reference/components/modal/examples/dismiss.tsx +35 -27
- package/dist/skill/reference/components/modal/examples/enter-key.tsx +22 -25
- package/dist/skill/reference/components/modal/examples/examples.module.css +0 -7
- package/dist/skill/reference/components/modal/examples/guard.tsx +2 -4
- package/dist/skill/reference/components/modal/examples/in-form.tsx +28 -28
- package/dist/skill/reference/components/modal/examples/long-content.tsx +6 -4
- package/dist/skill/reference/components/modal/examples/sizes.tsx +36 -31
- package/dist/skill/reference/components/modal/examples/structure.tsx +1 -1
- package/dist/skill/reference/components/native-select/COMPONENT.md +7 -3
- package/dist/skill/reference/components/native-select/examples/examples.module.css +3 -3
- package/dist/skill/reference/components/native-select/examples/in-form.tsx +28 -29
- package/dist/skill/reference/components/native-select/examples/sizes.tsx +2 -2
- package/dist/skill/reference/components/native-select/examples/states.tsx +2 -2
- package/dist/skill/reference/components/notification/COMPONENT.md +36 -31
- package/dist/skill/reference/components/notification/examples/examples.module.css +1 -2
- package/dist/skill/reference/components/notification/examples/in-form.tsx +28 -20
- package/dist/skill/reference/components/notification/examples/sizes.tsx +16 -12
- package/dist/skill/reference/components/notification/examples/undo.tsx +7 -15
- package/dist/skill/reference/components/pagination/COMPONENT.md +29 -18
- package/dist/skill/reference/components/pagination/examples/controlled.tsx +2 -1
- package/dist/skill/reference/components/pagination/examples/narrow.tsx +5 -5
- package/dist/skill/reference/components/popover/COMPONENT.md +44 -20
- package/dist/skill/reference/components/popover/examples/controlled-open.tsx +6 -4
- package/dist/skill/reference/components/popover/examples/dismiss.tsx +37 -28
- package/dist/skill/reference/components/popover/examples/examples.module.css +2 -2
- package/dist/skill/reference/components/popover/examples/sizes.tsx +32 -27
- package/dist/skill/reference/components/popover/examples/width.tsx +57 -0
- package/dist/skill/reference/components/progress-bar/COMPONENT.md +21 -29
- package/dist/skill/reference/components/progress-bar/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/progress-circle/COMPONENT.md +21 -29
- package/dist/skill/reference/components/progress-circle/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/progress-circle/examples/on-color.tsx +16 -0
- package/dist/skill/reference/components/progress-circle/examples/variants.tsx +1 -0
- package/dist/skill/reference/components/radio/COMPONENT.md +13 -4
- package/dist/skill/reference/components/radio/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/scroll-container/COMPONENT.md +18 -12
- package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +8 -4
- package/dist/skill/reference/components/scroll-container/examples/edges.tsx +4 -4
- package/dist/skill/reference/components/scroll-container/examples/examples.module.css +7 -51
- package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +4 -4
- package/dist/skill/reference/components/scroll-container/examples/lock.tsx +4 -4
- package/dist/skill/reference/components/scroll-container/examples/log.tsx +97 -0
- package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +4 -4
- package/dist/skill/reference/components/scroll-container/examples/overview.tsx +5 -5
- package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +4 -4
- package/dist/skill/reference/components/scroll-container/examples/snap.tsx +2 -2
- package/dist/skill/reference/components/scroll-container/examples/variants.tsx +1 -0
- package/dist/skill/reference/components/segmented-control/COMPONENT.md +24 -12
- package/dist/skill/reference/components/segmented-control/examples/controlled.tsx +2 -4
- package/dist/skill/reference/components/segmented-control/examples/examples.module.css +0 -8
- package/dist/skill/reference/components/segmented-control/examples/scroll.tsx +1 -1
- package/dist/skill/reference/components/select/COMPONENT.md +33 -9
- package/dist/skill/reference/components/select/examples/dismiss.tsx +26 -0
- package/dist/skill/reference/components/select/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/select/examples/server-search.tsx +6 -2
- package/dist/skill/reference/components/select/examples/sizes.tsx +2 -2
- package/dist/skill/reference/components/select/examples/states.tsx +2 -2
- package/dist/skill/reference/components/select/examples/with-icon.tsx +20 -18
- package/dist/skill/reference/components/sheet/COMPONENT.md +44 -21
- package/dist/skill/reference/components/sheet/examples/header-actions.tsx +23 -4
- package/dist/skill/reference/components/sheet/examples/overview.tsx +25 -10
- package/dist/skill/reference/components/skeleton/COMPONENT.md +8 -4
- package/dist/skill/reference/components/skeleton/examples/examples.module.css +1 -13
- package/dist/skill/reference/components/skeleton/examples/with-crossfade.tsx +7 -7
- package/dist/skill/reference/components/slider/COMPONENT.md +13 -8
- package/dist/skill/reference/components/slider/examples/examples.module.css +6 -7
- package/dist/skill/reference/components/slider/examples/hint-and-error.tsx +3 -5
- package/dist/skill/reference/components/slider/examples/in-form.tsx +21 -19
- package/dist/skill/reference/components/slider/examples/states.tsx +14 -10
- package/dist/skill/reference/components/smart-filter/COMPONENT.md +42 -22
- package/dist/skill/reference/components/smart-filter/examples/examples.module.css +3 -21
- package/dist/skill/reference/components/smart-filter/examples/many-values.tsx +12 -8
- package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +2 -1
- package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +9 -7
- package/dist/skill/reference/components/sparkline/COMPONENT.md +8 -3
- package/dist/skill/reference/components/sparkline/examples/curve.tsx +16 -11
- package/dist/skill/reference/components/sparkline/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/sparkline/examples/signed-bars.tsx +2 -2
- package/dist/skill/reference/components/sparkline/examples/states.tsx +14 -10
- package/dist/skill/reference/components/spinner/COMPONENT.md +15 -9
- package/dist/skill/reference/components/spinner/examples/examples.module.css +2 -14
- package/dist/skill/reference/components/spinner/examples/overview.tsx +1 -1
- package/dist/skill/reference/components/stepper/COMPONENT.md +50 -41
- package/dist/skill/reference/components/stepper/examples/examples.module.css +1 -6
- package/dist/skill/reference/components/stepper/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/stepper/examples/sizes.tsx +6 -8
- package/dist/skill/reference/components/stepper/examples/states.tsx +44 -43
- package/dist/skill/reference/components/stepper/examples/with-icon.tsx +19 -17
- package/dist/skill/reference/components/switch/COMPONENT.md +22 -9
- package/dist/skill/reference/components/switch/examples/examples.module.css +2 -2
- package/dist/skill/reference/components/switch/examples/states.tsx +3 -3
- package/dist/skill/reference/components/tabs/COMPONENT.md +21 -16
- package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +1 -1
- package/dist/skill/reference/components/tabs/examples/sizes.tsx +5 -10
- package/dist/skill/reference/components/tabs/examples/variants.tsx +19 -23
- package/dist/skill/reference/components/tag-select/COMPONENT.md +19 -6
- package/dist/skill/reference/components/tag-select/examples/creatable.tsx +2 -2
- package/dist/skill/reference/components/tag-select/examples/dismiss.tsx +23 -0
- package/dist/skill/reference/components/tag-select/examples/examples.module.css +3 -3
- package/dist/skill/reference/components/tag-select/examples/in-form.tsx +31 -32
- package/dist/skill/reference/components/tag-select/examples/sizes.tsx +2 -2
- package/dist/skill/reference/components/tag-select/examples/states.tsx +2 -2
- package/dist/skill/reference/components/textarea/COMPONENT.md +10 -6
- package/dist/skill/reference/components/textarea/examples/examples.module.css +3 -10
- package/dist/skill/reference/components/textarea/examples/in-form.tsx +3 -3
- package/dist/skill/reference/components/textarea/examples/sizes.tsx +10 -7
- package/dist/skill/reference/components/textarea/examples/states.tsx +29 -13
- package/dist/skill/reference/components/textarea/examples/validation.tsx +45 -36
- package/dist/skill/reference/components/thumbnail/COMPONENT.md +17 -13
- package/dist/skill/reference/components/thumbnail/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/thumbnail/examples/states.tsx +1 -1
- package/dist/skill/reference/components/thumbnail/examples/variants.tsx +12 -1
- package/dist/skill/reference/components/timeline/COMPONENT.md +51 -35
- package/dist/skill/reference/components/timeline/examples/links.tsx +14 -14
- package/dist/skill/reference/components/timeline/examples/narrow.tsx +6 -6
- package/dist/skill/reference/components/timeline/examples/overview.tsx +6 -6
- package/dist/skill/reference/components/timeline/examples/sizes.tsx +28 -23
- package/dist/skill/reference/components/timeline/examples/structure.tsx +30 -30
- package/dist/skill/reference/components/timeline/examples/variants.tsx +40 -28
- package/dist/skill/reference/components/tooltip/COMPONENT.md +10 -6
- package/dist/skill/reference/components/tooltip/examples/examples.module.css +1 -5
- package/dist/skill/reference/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
- package/dist/skill/reference/components/tooltip/examples/sizes.tsx +17 -10
- package/dist/skill/reference/components/typography/COMPONENT.md +18 -3
- package/dist/skill/reference/components/typography/examples/examples.module.css +3 -6
- package/dist/skill/reference/components/typography/examples/numeric.tsx +16 -0
- package/dist/skill/reference/components/video-note/COMPONENT.md +11 -7
- package/dist/skill/reference/components/visually-hidden/COMPONENT.md +8 -4
- package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +1 -1
- package/dist/skill/reference/components/visually-hidden/examples/overview.tsx +17 -7
- package/dist/skill/reference/components/voice-player/COMPONENT.md +15 -7
- package/dist/skill/reference/foundation.md +568 -0
- package/dist/skill/reference/layout/app-shell/COMPONENT.md +53 -36
- package/dist/skill/reference/layout/app-shell/examples/examples.module.css +2 -22
- package/dist/skill/reference/layout/app-shell/examples/footer.tsx +10 -10
- package/dist/skill/reference/layout/app-shell/examples/overview.tsx +21 -25
- package/dist/skill/reference/layout/app-shell/examples/screen.module.css +2 -2
- package/dist/skill/reference/layout/app-shell/examples/screen.tsx +48 -47
- package/dist/skill/reference/layout/app-shell/examples/template.tsx +13 -17
- package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +30 -20
- package/dist/skill/reference/layout/bottom-nav/examples/examples.module.css +2 -7
- package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +10 -19
- package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +10 -19
- package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
- package/dist/skill/reference/layout/bottom-nav/examples/router.tsx +6 -5
- package/dist/skill/reference/layout/page/COMPONENT.md +353 -0
- package/dist/skill/reference/layout/page/examples/actions-collapse.tsx +45 -0
- package/dist/skill/reference/layout/page/examples/collapse.tsx +68 -0
- package/dist/skill/reference/{components/page-content → layout/page}/examples/examples.module.css +32 -16
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/grid.tsx +18 -16
- package/dist/skill/reference/layout/page/examples/list-detail.tsx +112 -0
- package/dist/skill/reference/layout/page/examples/narrow.tsx +75 -0
- package/dist/skill/reference/layout/page/examples/overview.tsx +57 -0
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.module.css +1 -1
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.tsx +29 -19
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/sections.tsx +17 -24
- package/dist/skill/reference/layout/page/examples/structure.tsx +41 -0
- package/dist/skill/reference/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
- package/dist/skill/reference/layout/page/examples/top-bar.tsx +85 -0
- package/dist/skill/reference/{components/page-content → layout/page}/examples/variants.tsx +13 -13
- package/dist/skill/reference/layout/sidebar/COMPONENT.md +51 -40
- package/dist/skill/reference/layout/sidebar/examples/account.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/brand-header.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/controlled-open.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/controlled.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +50 -0
- package/dist/skill/reference/layout/sidebar/examples/examples.module.css +7 -32
- package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +47 -42
- package/dist/skill/reference/layout/sidebar/examples/nested-items.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/overview.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/persist.tsx +1 -3
- package/dist/skill/reference/layout/sidebar/examples/router.tsx +12 -13
- package/dist/skill/reference/layout/sidebar/examples/sizes.tsx +6 -6
- package/dist/skill/responsive.md +116 -105
- package/dist/skill/ux.md +21 -9
- package/dist/theme/applyTheme.d.ts +7 -6
- package/dist/tokens/hues.d.ts +8 -0
- package/dist/tokens/layers.d.ts +5 -16
- package/dist/tokens/offGrid.d.ts +7 -0
- package/dist/tokens/primitives.d.ts +34 -9
- package/dist/tokens/semantic.d.ts +208 -51
- package/dist/tokens/themes/dark.d.ts +39 -33
- package/package.json +5 -3
- package/src/components/accordion/COMPONENT.md +16 -9
- package/src/components/accordion/examples/overview.tsx +2 -2
- package/src/components/accordion/examples/sizes.tsx +6 -8
- package/src/components/accordion/examples/states.tsx +27 -24
- package/src/components/accordion/examples/variants.tsx +6 -8
- package/src/components/accordion/examples/with-icon.tsx +22 -19
- package/src/components/avatar/COMPONENT.md +24 -17
- package/src/components/avatar/examples/examples.module.css +1 -4
- package/src/components/avatar/examples/overview.tsx +3 -3
- package/src/components/avatar/examples/presence.tsx +4 -4
- package/src/components/avatar/examples/src-from-state.tsx +3 -3
- package/src/components/avatar/examples/states.tsx +4 -4
- package/src/components/avatar/examples/team-group.tsx +3 -3
- package/src/components/badge/COMPONENT.md +66 -34
- package/src/components/badge/examples/controlled.tsx +32 -0
- package/src/components/badge/examples/examples.module.css +2 -2
- package/src/components/badge/examples/filter-values.tsx +4 -6
- package/src/components/badge/examples/in-controls.tsx +1 -1
- package/src/components/badge/examples/overview.tsx +6 -5
- package/src/components/badge/examples/square.tsx +21 -0
- package/src/components/badge/examples/states.tsx +4 -4
- package/src/components/badge/examples/with-icon.tsx +10 -1
- package/src/components/banner/COMPONENT.md +13 -9
- package/src/components/banner/examples/dismissible.tsx +3 -19
- package/src/components/banner/examples/examples.module.css +6 -1
- package/src/components/banner/examples/overview.tsx +1 -1
- package/src/components/banner/examples/page-strip.tsx +24 -22
- package/src/components/breadcrumb/COMPONENT.md +23 -16
- package/src/components/breadcrumb/examples/examples.module.css +1 -1
- package/src/components/breadcrumb/examples/overflow.tsx +1 -1
- package/src/components/breadcrumb/examples/sizes.tsx +6 -8
- package/src/components/breadcrumb/examples/with-icon.tsx +15 -8
- package/src/components/button/COMPONENT.md +67 -30
- package/src/components/button/examples/align.tsx +25 -0
- package/src/components/button/examples/controlled.tsx +21 -0
- package/src/components/button/examples/density.tsx +45 -0
- package/src/components/button/examples/examples.module.css +14 -25
- package/src/components/button/examples/hold-to-confirm.tsx +1 -1
- package/src/components/button/examples/label-morph.tsx +1 -1
- package/src/components/button/examples/on-colored-host.tsx +19 -19
- package/src/components/button/examples/over-media.tsx +7 -1
- package/src/components/button/examples/toggle.tsx +2 -10
- package/src/components/button-group/COMPONENT.md +21 -15
- package/src/components/button-group/examples/controlled.tsx +1 -1
- package/src/components/card/COMPONENT.md +21 -10
- package/src/components/card/examples/content-templates.tsx +8 -2
- package/src/components/card/examples/examples.module.css +4 -16
- package/src/components/card/examples/overview.tsx +11 -11
- package/src/components/card/examples/screen.module.css +1 -1
- package/src/components/card/examples/screen.tsx +185 -198
- package/src/components/card/examples/variants.tsx +74 -47
- package/src/components/chart-frame/COMPONENT.md +24 -28
- package/src/components/chart-frame/examples/controlled.tsx +9 -7
- package/src/components/chart-frame/examples/fill-height.tsx +13 -15
- package/src/components/chart-frame/examples/narrow.tsx +24 -5
- package/src/components/chart-frame/examples/overview.tsx +5 -2
- package/src/components/chart-frame/examples/states.tsx +72 -64
- package/src/components/chart-frame/examples/tooltip.tsx +27 -26
- package/src/components/chat/COMPONENT.md +39 -26
- package/src/components/chat/examples/group-chat.tsx +2 -2
- package/src/components/chat/examples/overview.tsx +119 -130
- package/src/components/chat/examples/reactions.tsx +18 -23
- package/src/components/chat/examples/screen.module.css +1 -1
- package/src/components/chat/examples/screen.tsx +212 -242
- package/src/components/chat/examples/states.tsx +23 -22
- package/src/components/chat-list/COMPONENT.md +11 -6
- package/src/components/chat-list/examples/controlled.tsx +2 -2
- package/src/components/chat-list/examples/examples.module.css +8 -8
- package/src/components/chat-list/examples/live.tsx +29 -22
- package/src/components/chat-list/examples/sizes.tsx +6 -8
- package/src/components/chat-list/examples/states.tsx +42 -38
- package/src/components/checkbox/COMPONENT.md +27 -14
- package/src/components/checkbox/examples/controlled.tsx +18 -16
- package/src/components/checkbox/examples/examples.module.css +15 -56
- package/src/components/checkbox/examples/in-form.tsx +16 -16
- package/src/components/checkbox/examples/indicator.tsx +19 -64
- package/src/components/checkbox/examples/overview.tsx +1 -1
- package/src/components/checkbox/examples/states.tsx +1 -1
- package/src/components/checkbox/examples/without-label.tsx +1 -1
- package/src/components/code-block/COMPONENT.md +16 -12
- package/src/components/code-block/examples/color-scheme.tsx +2 -4
- package/src/components/code-block/examples/examples.module.css +1 -9
- package/src/components/code-block/examples/narrow.tsx +1 -1
- package/src/components/color-field/COMPONENT.md +15 -9
- package/src/components/color-field/examples/examples.module.css +4 -5
- package/src/components/color-field/examples/in-form.tsx +15 -13
- package/src/components/color-field/examples/sizes.tsx +5 -1
- package/src/components/color-field/examples/states.tsx +15 -3
- package/src/components/color-picker/COMPONENT.md +69 -22
- package/src/components/color-picker/examples/controlled.tsx +16 -5
- package/src/components/color-picker/examples/examples.module.css +8 -12
- package/src/components/color-picker/examples/in-form.tsx +24 -22
- package/src/components/color-picker/examples/overview.tsx +6 -11
- package/src/components/color-picker/examples/panel.tsx +1 -1
- package/src/components/color-picker/examples/sizes.tsx +10 -16
- package/src/components/color-picker/examples/states.tsx +28 -23
- package/src/components/color-swatches/COMPONENT.md +22 -8
- package/src/components/color-swatches/examples/examples.module.css +3 -4
- package/src/components/color-swatches/examples/in-form.tsx +19 -17
- package/src/components/color-swatches/examples/palette.tsx +24 -0
- package/src/components/color-swatches/examples/wrapping.tsx +17 -2
- package/src/components/command-menu/COMPONENT.md +60 -20
- package/src/components/command-menu/examples/sizes.tsx +20 -15
- package/src/components/command-menu/examples/states.tsx +46 -24
- package/src/components/composer/COMPONENT.md +42 -24
- package/src/components/composer/examples/examples.module.css +0 -9
- package/src/components/composer/examples/narrow.tsx +1 -1
- package/src/components/composer/examples/reply-edit.tsx +3 -3
- package/src/components/composer/examples/sizes.tsx +3 -5
- package/src/components/composer/examples/states.tsx +4 -6
- package/src/components/confirm-dialog/COMPONENT.md +26 -13
- package/src/components/confirm-dialog/examples/dismiss.tsx +27 -0
- package/src/components/confirm-dialog/examples/failure.tsx +9 -16
- package/src/components/crossfade/COMPONENT.md +13 -7
- package/src/components/crossfade/examples/examples.module.css +1 -40
- package/src/components/crossfade/examples/fill.tsx +16 -19
- package/src/components/crossfade/examples/overview.tsx +14 -16
- package/src/components/crossfade/examples/record-switch.tsx +6 -11
- package/src/components/crossfade/examples/screen.module.css +1 -24
- package/src/components/crossfade/examples/screen.tsx +108 -124
- package/src/components/data-table/COMPONENT.md +36 -26
- package/src/components/data-table/examples/controlled.tsx +14 -2
- package/src/components/data-table/examples/examples.module.css +10 -9
- package/src/components/data-table/examples/narrow.tsx +5 -1
- package/src/components/data-table/examples/row-link.tsx +2 -1
- package/src/components/data-table/examples/screen.module.css +2 -2
- package/src/components/data-table/examples/screen.tsx +53 -62
- package/src/components/data-table/examples/server.tsx +6 -2
- package/src/components/data-table/examples/sizes.tsx +17 -17
- package/src/components/data-table/examples/states.tsx +37 -29
- package/src/components/datepicker/COMPONENT.md +53 -22
- package/src/components/datepicker/examples/dismiss.tsx +15 -0
- package/src/components/datepicker/examples/examples.module.css +9 -2
- package/src/components/datepicker/examples/in-form.tsx +33 -25
- package/src/components/datepicker/examples/inline-panel.tsx +3 -1
- package/src/components/datepicker/examples/sizes.tsx +2 -2
- package/src/components/datepicker/examples/states.tsx +2 -2
- package/src/components/datepicker/examples/validation.tsx +3 -3
- package/src/components/description-list/COMPONENT.md +24 -9
- package/src/components/description-list/examples/examples.module.css +4 -24
- package/src/components/description-list/examples/narrow.tsx +1 -1
- package/src/components/description-list/examples/screen.module.css +0 -18
- package/src/components/description-list/examples/screen.tsx +119 -134
- package/src/components/description-list/examples/sizes.tsx +2 -4
- package/src/components/description-list/examples/structure.tsx +6 -7
- package/src/components/description-list/examples/totals.tsx +40 -0
- package/src/components/digit-input/COMPONENT.md +12 -6
- package/src/components/digit-input/examples/examples.module.css +2 -2
- package/src/components/digit-input/examples/grouped.tsx +4 -4
- package/src/components/digit-input/examples/in-form.tsx +1 -1
- package/src/components/digit-input/examples/sizes.tsx +5 -3
- package/src/components/digit-input/examples/states.tsx +14 -6
- package/src/components/digit-input/examples/validation.tsx +1 -1
- package/src/components/divider/COMPONENT.md +28 -14
- package/src/components/divider/examples/align.tsx +2 -4
- package/src/components/divider/examples/examples.module.css +16 -17
- package/src/components/divider/examples/or-separator.tsx +3 -5
- package/src/components/divider/examples/overview.tsx +18 -16
- package/src/components/divider/examples/vertical.tsx +25 -8
- package/src/components/divider/examples/with-icon.tsx +1 -1
- package/src/components/dnd/COMPONENT.md +52 -34
- package/src/components/dnd/examples/drop-zones.tsx +1 -1
- package/src/components/dnd/examples/examples.module.css +7 -7
- package/src/components/dnd/examples/states.tsx +41 -35
- package/src/components/drawer/COMPONENT.md +38 -15
- package/src/components/drawer/examples/guard.tsx +1 -3
- package/src/components/drawer/examples/header-actions.tsx +1 -1
- package/src/components/drawer/examples/in-form.tsx +31 -31
- package/src/components/drawer/examples/placement.tsx +1 -1
- package/src/components/drawer/examples/screen.tsx +137 -160
- package/src/components/drawer/examples/sizes.tsx +32 -27
- package/src/components/dropdown/COMPONENT.md +59 -24
- package/src/components/dropdown/examples/context-menu.tsx +75 -0
- package/src/components/dropdown/examples/examples.module.css +1 -1
- package/src/components/dropdown/examples/sizes.tsx +39 -34
- package/src/components/dropdown/examples/states.tsx +37 -29
- package/src/components/empty-page/COMPONENT.md +20 -9
- package/src/components/empty-page/examples/compact.tsx +28 -18
- package/src/components/empty-page/examples/examples.module.css +0 -43
- package/src/components/empty-page/examples/narrow.tsx +3 -3
- package/src/components/empty-page/examples/region-error.tsx +6 -11
- package/src/components/empty-page/examples/sizes.tsx +13 -13
- package/src/components/empty-page/examples/variants.tsx +34 -30
- package/src/components/example-frame/COMPONENT.md +23 -11
- package/src/components/example-frame/examples/controlled.tsx +3 -3
- package/src/components/field-list/COMPONENT.md +14 -8
- package/src/components/field-list/examples/screen.module.css +1 -1
- package/src/components/field-list/examples/screen.tsx +19 -19
- package/src/components/field-list/examples/sizes.tsx +32 -26
- package/src/components/field-list/examples/states.tsx +37 -31
- package/src/components/fieldset/COMPONENT.md +11 -6
- package/src/components/fieldset/examples/examples.module.css +1 -1
- package/src/components/fieldset/examples/states.tsx +1 -1
- package/src/components/file-upload/COMPONENT.md +68 -30
- package/src/components/file-upload/examples/avatar-upload.tsx +5 -5
- package/src/components/file-upload/examples/custom-body.tsx +12 -7
- package/src/components/file-upload/examples/examples.module.css +4 -4
- package/src/components/file-upload/examples/narrow.tsx +1 -1
- package/src/components/file-upload/examples/row-parts.tsx +4 -4
- package/src/components/file-upload/examples/screen.module.css +4 -4
- package/src/components/file-upload/examples/screen.tsx +70 -84
- package/src/components/file-upload/examples/sizes.tsx +1 -3
- package/src/components/file-upload/examples/states.tsx +1 -3
- package/src/components/file-upload/examples/variants.tsx +13 -7
- package/src/components/gallery/COMPONENT.md +17 -7
- package/src/components/gallery/examples/album-sizes.tsx +52 -0
- package/src/components/gallery/examples/controlled.tsx +40 -0
- package/src/components/gallery/examples/examples.module.css +1 -1
- package/src/components/gallery/examples/overview.tsx +15 -43
- package/src/components/gallery/examples/transfer.tsx +22 -13
- package/src/components/gantt/COMPONENT.md +21 -15
- package/src/components/gantt/examples/examples.module.css +0 -16
- package/src/components/gantt/examples/occupancy.tsx +2 -2
- package/src/components/gantt/examples/screen.module.css +1 -1
- package/src/components/gantt/examples/screen.tsx +56 -74
- package/src/components/gantt/examples/sizes.tsx +16 -16
- package/src/components/gantt/examples/states.tsx +34 -30
- package/src/components/gantt/examples/variants.tsx +27 -25
- package/src/components/hint/COMPONENT.md +24 -14
- package/src/components/hint/examples/examples.module.css +10 -1
- package/src/components/hint/examples/hint-or-error.tsx +2 -2
- package/src/components/hint/examples/overview.tsx +10 -11
- package/src/components/hint/examples/sizes.tsx +1 -1
- package/src/components/input/COMPONENT.md +10 -6
- package/src/components/input/examples/affixes.tsx +2 -2
- package/src/components/input/examples/examples.module.css +1 -1
- package/src/components/input/examples/sizes.tsx +9 -5
- package/src/components/input/examples/states.tsx +39 -23
- package/src/components/input/examples/with-icon.tsx +24 -16
- package/src/components/kanban/COMPONENT.md +30 -24
- package/src/components/kanban/examples/columns.tsx +14 -19
- package/src/components/kanban/examples/item-link.tsx +2 -2
- package/src/components/kanban/examples/limits.tsx +1 -1
- package/src/components/kanban/examples/narrow.tsx +1 -1
- package/src/components/kanban/examples/screen.module.css +2 -4
- package/src/components/kanban/examples/screen.tsx +55 -68
- package/src/components/kanban/examples/states.tsx +37 -58
- package/src/components/kanban/examples/variants.tsx +0 -3
- package/src/components/kbd/COMPONENT.md +11 -7
- package/src/components/kbd/examples/examples.module.css +1 -20
- package/src/components/kbd/examples/in-controls.tsx +2 -2
- package/src/components/kbd/examples/shortcut-list.tsx +14 -26
- package/src/components/label/COMPONENT.md +26 -11
- package/src/components/label/examples/examples.module.css +12 -9
- package/src/components/label/examples/overview.tsx +6 -10
- package/src/components/label/examples/structure.tsx +2 -2
- package/src/components/link-button/COMPONENT.md +33 -20
- package/src/components/link-button/examples/as-child.tsx +1 -1
- package/src/components/link-button/examples/external-link.tsx +1 -1
- package/src/components/link-button/examples/overview.tsx +4 -2
- package/src/components/link-button/examples/variants.tsx +2 -2
- package/src/components/list/COMPONENT.md +24 -16
- package/src/components/list/examples/examples.module.css +0 -8
- package/src/components/list/examples/overflow.tsx +1 -1
- package/src/components/list/examples/overview.tsx +31 -30
- package/src/components/list/examples/sizes.tsx +23 -23
- package/src/components/list/examples/states.tsx +38 -21
- package/src/components/list/examples/with-icon.tsx +16 -14
- package/src/components/login-form/COMPONENT.md +69 -16
- package/src/components/login-form/examples/narrow.tsx +1 -1
- package/src/components/login-form/examples/register.tsx +1 -1
- package/src/components/media-viewer/COMPONENT.md +12 -8
- package/src/components/media-viewer/examples/controlled.tsx +16 -16
- package/src/components/media-viewer/examples/examples.module.css +3 -5
- package/src/components/media-viewer/examples/video.tsx +1 -1
- package/src/components/message/COMPONENT.md +102 -46
- package/src/components/message/examples/typing.tsx +5 -5
- package/src/components/modal/COMPONENT.md +71 -37
- package/src/components/modal/examples/dismiss.tsx +35 -27
- package/src/components/modal/examples/enter-key.tsx +22 -25
- package/src/components/modal/examples/examples.module.css +0 -7
- package/src/components/modal/examples/guard.tsx +2 -4
- package/src/components/modal/examples/in-form.tsx +28 -28
- package/src/components/modal/examples/long-content.tsx +6 -4
- package/src/components/modal/examples/sizes.tsx +36 -31
- package/src/components/modal/examples/structure.tsx +1 -1
- package/src/components/native-select/COMPONENT.md +7 -3
- package/src/components/native-select/examples/examples.module.css +3 -3
- package/src/components/native-select/examples/in-form.tsx +28 -29
- package/src/components/native-select/examples/sizes.tsx +2 -2
- package/src/components/native-select/examples/states.tsx +2 -2
- package/src/components/notification/COMPONENT.md +36 -31
- package/src/components/notification/examples/examples.module.css +1 -2
- package/src/components/notification/examples/in-form.tsx +28 -20
- package/src/components/notification/examples/sizes.tsx +16 -12
- package/src/components/notification/examples/undo.tsx +7 -15
- package/src/components/pagination/COMPONENT.md +29 -18
- package/src/components/pagination/examples/controlled.tsx +2 -1
- package/src/components/pagination/examples/narrow.tsx +5 -5
- package/src/components/popover/COMPONENT.md +44 -20
- package/src/components/popover/examples/controlled-open.tsx +6 -4
- package/src/components/popover/examples/dismiss.tsx +37 -28
- package/src/components/popover/examples/examples.module.css +2 -2
- package/src/components/popover/examples/sizes.tsx +32 -27
- package/src/components/popover/examples/width.tsx +57 -0
- package/src/components/progress-bar/COMPONENT.md +21 -29
- package/src/components/progress-bar/examples/examples.module.css +1 -1
- package/src/components/progress-circle/COMPONENT.md +21 -29
- package/src/components/progress-circle/examples/examples.module.css +1 -1
- package/src/components/progress-circle/examples/on-color.tsx +16 -0
- package/src/components/progress-circle/examples/variants.tsx +1 -0
- package/src/components/radio/COMPONENT.md +13 -4
- package/src/components/radio/examples/examples.module.css +1 -1
- package/src/components/scroll-container/COMPONENT.md +18 -12
- package/src/components/scroll-container/examples/auto-scroll.tsx +8 -4
- package/src/components/scroll-container/examples/edges.tsx +4 -4
- package/src/components/scroll-container/examples/examples.module.css +7 -51
- package/src/components/scroll-container/examples/load-more.tsx +4 -4
- package/src/components/scroll-container/examples/lock.tsx +4 -4
- package/src/components/scroll-container/examples/log.tsx +97 -0
- package/src/components/scroll-container/examples/overscroll.tsx +4 -4
- package/src/components/scroll-container/examples/overview.tsx +5 -5
- package/src/components/scroll-container/examples/scrollbar.tsx +4 -4
- package/src/components/scroll-container/examples/snap.tsx +2 -2
- package/src/components/scroll-container/examples/variants.tsx +1 -0
- package/src/components/segmented-control/COMPONENT.md +24 -12
- package/src/components/segmented-control/examples/controlled.tsx +2 -4
- package/src/components/segmented-control/examples/examples.module.css +0 -8
- package/src/components/segmented-control/examples/scroll.tsx +1 -1
- package/src/components/select/COMPONENT.md +33 -9
- package/src/components/select/examples/dismiss.tsx +26 -0
- package/src/components/select/examples/examples.module.css +1 -1
- package/src/components/select/examples/server-search.tsx +6 -2
- package/src/components/select/examples/sizes.tsx +2 -2
- package/src/components/select/examples/states.tsx +2 -2
- package/src/components/select/examples/with-icon.tsx +20 -18
- package/src/components/sheet/COMPONENT.md +44 -21
- package/src/components/sheet/examples/header-actions.tsx +23 -4
- package/src/components/sheet/examples/overview.tsx +25 -10
- package/src/components/skeleton/COMPONENT.md +8 -4
- package/src/components/skeleton/examples/examples.module.css +1 -13
- package/src/components/skeleton/examples/with-crossfade.tsx +7 -7
- package/src/components/slider/COMPONENT.md +13 -8
- package/src/components/slider/examples/examples.module.css +6 -7
- package/src/components/slider/examples/hint-and-error.tsx +3 -5
- package/src/components/slider/examples/in-form.tsx +21 -19
- package/src/components/slider/examples/states.tsx +14 -10
- package/src/components/smart-filter/COMPONENT.md +42 -22
- package/src/components/smart-filter/examples/examples.module.css +3 -21
- package/src/components/smart-filter/examples/many-values.tsx +12 -8
- package/src/components/smart-filter/examples/ranges.tsx +2 -1
- package/src/components/smart-filter/examples/sizes.tsx +9 -7
- package/src/components/sparkline/COMPONENT.md +8 -3
- package/src/components/sparkline/examples/curve.tsx +16 -11
- package/src/components/sparkline/examples/examples.module.css +1 -1
- package/src/components/sparkline/examples/signed-bars.tsx +2 -2
- package/src/components/sparkline/examples/states.tsx +14 -10
- package/src/components/spinner/COMPONENT.md +15 -9
- package/src/components/spinner/examples/examples.module.css +2 -14
- package/src/components/spinner/examples/overview.tsx +1 -1
- package/src/components/stepper/COMPONENT.md +50 -41
- package/src/components/stepper/examples/examples.module.css +1 -6
- package/src/components/stepper/examples/narrow.tsx +1 -1
- package/src/components/stepper/examples/sizes.tsx +6 -8
- package/src/components/stepper/examples/states.tsx +44 -43
- package/src/components/stepper/examples/with-icon.tsx +19 -17
- package/src/components/switch/COMPONENT.md +22 -9
- package/src/components/switch/examples/examples.module.css +2 -2
- package/src/components/switch/examples/states.tsx +3 -3
- package/src/components/tabs/COMPONENT.md +21 -16
- package/src/components/tabs/examples/in-drawer.tsx +1 -1
- package/src/components/tabs/examples/sizes.tsx +5 -10
- package/src/components/tabs/examples/variants.tsx +19 -23
- package/src/components/tag-select/COMPONENT.md +19 -6
- package/src/components/tag-select/examples/creatable.tsx +2 -2
- package/src/components/tag-select/examples/dismiss.tsx +23 -0
- package/src/components/tag-select/examples/examples.module.css +3 -3
- package/src/components/tag-select/examples/in-form.tsx +31 -32
- package/src/components/tag-select/examples/sizes.tsx +2 -2
- package/src/components/tag-select/examples/states.tsx +2 -2
- package/src/components/textarea/COMPONENT.md +10 -6
- package/src/components/textarea/examples/examples.module.css +3 -10
- package/src/components/textarea/examples/in-form.tsx +3 -3
- package/src/components/textarea/examples/sizes.tsx +10 -7
- package/src/components/textarea/examples/states.tsx +29 -13
- package/src/components/textarea/examples/validation.tsx +45 -36
- package/src/components/thumbnail/COMPONENT.md +17 -13
- package/src/components/thumbnail/examples/examples.module.css +1 -1
- package/src/components/thumbnail/examples/states.tsx +1 -1
- package/src/components/thumbnail/examples/variants.tsx +12 -1
- package/src/components/timeline/COMPONENT.md +51 -35
- package/src/components/timeline/examples/links.tsx +14 -14
- package/src/components/timeline/examples/narrow.tsx +6 -6
- package/src/components/timeline/examples/overview.tsx +6 -6
- package/src/components/timeline/examples/sizes.tsx +28 -23
- package/src/components/timeline/examples/structure.tsx +30 -30
- package/src/components/timeline/examples/variants.tsx +40 -28
- package/src/components/tooltip/COMPONENT.md +10 -6
- package/src/components/tooltip/examples/examples.module.css +1 -5
- package/src/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
- package/src/components/tooltip/examples/sizes.tsx +17 -10
- package/src/components/typography/COMPONENT.md +18 -3
- package/src/components/typography/examples/examples.module.css +3 -6
- package/src/components/typography/examples/numeric.tsx +16 -0
- package/src/components/video-note/COMPONENT.md +11 -7
- package/src/components/visually-hidden/COMPONENT.md +8 -4
- package/src/components/visually-hidden/examples/assertive.tsx +1 -1
- package/src/components/visually-hidden/examples/overview.tsx +17 -7
- package/src/components/voice-player/COMPONENT.md +15 -7
- package/src/layout/app-shell/COMPONENT.md +53 -36
- package/src/layout/app-shell/examples/examples.module.css +2 -22
- package/src/layout/app-shell/examples/footer.tsx +10 -10
- package/src/layout/app-shell/examples/overview.tsx +21 -25
- package/src/layout/app-shell/examples/screen.module.css +2 -2
- package/src/layout/app-shell/examples/screen.tsx +48 -47
- package/src/layout/app-shell/examples/template.tsx +13 -17
- package/src/layout/bottom-nav/COMPONENT.md +30 -20
- package/src/layout/bottom-nav/examples/examples.module.css +2 -7
- package/src/layout/bottom-nav/examples/floating-action.tsx +10 -19
- package/src/layout/bottom-nav/examples/floating.tsx +10 -19
- package/src/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
- package/src/layout/bottom-nav/examples/router.tsx +6 -5
- package/src/layout/page/COMPONENT.md +353 -0
- package/src/layout/page/examples/actions-collapse.tsx +45 -0
- package/src/layout/page/examples/collapse.tsx +68 -0
- package/src/{components/page-content → layout/page}/examples/examples.module.css +32 -16
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/grid.tsx +18 -16
- package/src/layout/page/examples/list-detail.tsx +112 -0
- package/src/layout/page/examples/narrow.tsx +75 -0
- package/src/layout/page/examples/overview.tsx +57 -0
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.module.css +1 -1
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.tsx +29 -19
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/sections.tsx +17 -24
- package/src/layout/page/examples/structure.tsx +41 -0
- package/src/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
- package/src/layout/page/examples/top-bar.tsx +85 -0
- package/src/{components/page-content → layout/page}/examples/variants.tsx +13 -13
- package/src/layout/sidebar/COMPONENT.md +51 -40
- package/src/layout/sidebar/examples/account.tsx +1 -3
- package/src/layout/sidebar/examples/brand-header.tsx +1 -3
- package/src/layout/sidebar/examples/collapsible-groups.tsx +1 -3
- package/src/layout/sidebar/examples/controlled-open.tsx +1 -3
- package/src/layout/sidebar/examples/controlled.tsx +1 -3
- package/src/layout/sidebar/examples/custom-part.tsx +1 -3
- package/src/layout/sidebar/examples/dismiss.tsx +50 -0
- package/src/layout/sidebar/examples/examples.module.css +7 -32
- package/src/layout/sidebar/examples/narrow.tsx +47 -42
- package/src/layout/sidebar/examples/nested-items.tsx +1 -3
- package/src/layout/sidebar/examples/overview.tsx +1 -3
- package/src/layout/sidebar/examples/persist.tsx +1 -3
- package/src/layout/sidebar/examples/router.tsx +12 -13
- package/src/layout/sidebar/examples/sizes.tsx +6 -6
- package/src/styles/controls.css +2 -2
- package/src/styles/fonts.css +22 -0
- package/src/styles/globals.css +89 -12
- package/src/styles/theme-dark.css +25 -24
- package/src/styles/theme-light.css +70 -23
- package/src/styles/tokens.css +17 -5
- package/dist/components/dnd/useFlipList.d.ts +0 -17
- package/dist/components/gantt/useEdgeAutoScroll.d.ts +0 -12
- package/dist/components/modal/ModalDialog.d.ts +0 -46
- package/dist/components/page-content/PageContent.d.ts +0 -173
- package/dist/components/page-toolbar/PageToolbar.d.ts +0 -54
- package/dist/hooks/useStateSwap.d.ts +0 -8
- package/dist/internal/highlightTsxHtml.d.ts +0 -2
- package/dist/internal/layoutPxFromPrimitives.d.ts +0 -6
- package/dist/internal/mergeRefs.d.ts +0 -6
- package/dist/layout/app-header/AppHeader.d.ts +0 -109
- package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -8
- package/dist/skill/reference/components/page-content/COMPONENT.md +0 -272
- package/dist/skill/reference/components/page-content/examples/list-detail.tsx +0 -106
- package/dist/skill/reference/components/page-content/examples/narrow.tsx +0 -25
- package/dist/skill/reference/components/page-content/examples/overview.tsx +0 -41
- package/dist/skill/reference/components/page-toolbar/COMPONENT.md +0 -143
- package/dist/skill/reference/components/page-toolbar/examples/examples.module.css +0 -16
- package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +0 -113
- package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +0 -40
- package/dist/skill/reference/components/page-toolbar/examples/without-search.tsx +0 -60
- package/dist/skill/reference/components/popover/examples/match-trigger-width.tsx +0 -23
- package/dist/skill/reference/components/scroll-container/examples/chat.tsx +0 -101
- package/dist/skill/reference/components/spinner/examples/loading-region.tsx +0 -22
- package/dist/skill/reference/layout/app-header/COMPONENT.md +0 -186
- package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +0 -37
- package/dist/skill/reference/layout/app-header/examples/examples.module.css +0 -47
- package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +0 -69
- package/dist/skill/reference/layout/app-header/examples/narrow.tsx +0 -28
- package/dist/skill/reference/layout/app-header/examples/overview.tsx +0 -34
- package/dist/skill/reference/layout/app-header/examples/page-title.tsx +0 -78
- package/dist/skill/reference/layout/app-shell/examples/contained.tsx +0 -30
- package/src/components/drawer/examples/examples.module.css +0 -8
- package/src/components/page-content/COMPONENT.md +0 -272
- package/src/components/page-content/examples/list-detail.tsx +0 -106
- package/src/components/page-content/examples/narrow.tsx +0 -25
- package/src/components/page-content/examples/overview.tsx +0 -41
- package/src/components/page-toolbar/COMPONENT.md +0 -143
- package/src/components/page-toolbar/examples/examples.module.css +0 -16
- package/src/components/page-toolbar/examples/overview.tsx +0 -113
- package/src/components/page-toolbar/examples/save-changes.tsx +0 -40
- package/src/components/page-toolbar/examples/without-search.tsx +0 -60
- package/src/components/popover/examples/match-trigger-width.tsx +0 -23
- package/src/components/scroll-container/examples/chat.tsx +0 -101
- package/src/components/spinner/examples/loading-region.tsx +0 -22
- package/src/layout/app-header/COMPONENT.md +0 -186
- package/src/layout/app-header/examples/breadcrumbs.tsx +0 -37
- package/src/layout/app-header/examples/examples.module.css +0 -47
- package/src/layout/app-header/examples/in-app-shell.tsx +0 -69
- package/src/layout/app-header/examples/narrow.tsx +0 -28
- package/src/layout/app-header/examples/overview.tsx +0 -34
- package/src/layout/app-header/examples/page-title.tsx +0 -78
- package/src/layout/app-shell/examples/contained.tsx +0 -30
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Foundations — do it this way
|
|
2
2
|
|
|
3
|
-
Condensed from the kit's design contract (
|
|
3
|
+
Condensed from the kit's design contract, [foundation.md](reference/foundation.md). Use semantic
|
|
4
4
|
tokens `--prime-*` only.
|
|
5
5
|
|
|
6
6
|
## 1. 4px grid
|
|
@@ -29,18 +29,18 @@ Things that belong together sit closer than things that do not.
|
|
|
29
29
|
|---|---|---|
|
|
30
30
|
| label → field | 4–8 | built into fields (`label` prop) — do not add |
|
|
31
31
|
| field → hint/error | 4 | built into fields — do not add |
|
|
32
|
-
| a hand-built field (your own control + `Label.Root` + `Hint.Root`) | label 4–8, hint 4 |
|
|
32
|
+
| a hand-built field (your own control + `Label.Root` + `Hint.Root`) | label 4–8, hint 4 | [the recipe](api-contract.md#your-own-control-without-a-frame) |
|
|
33
33
|
| group heading → its fields | 16 | `--prime-space-4` |
|
|
34
34
|
| field → field in a form | 20 | `--prime-space-5` |
|
|
35
35
|
| inline controls in a row (buttons, filters) | 8 | `--prime-space-2` |
|
|
36
36
|
| switch → switch in a settings list | 20 | `--prime-space-5` |
|
|
37
37
|
| group → group (fieldset, form section) | 32 | `--prime-space-8` |
|
|
38
|
-
| tile → tile, both axes (KPI cards, charts, panels) | 16 | `--prime-space-4` — `
|
|
39
|
-
| block → block on a page (page header → body too) | 24 | `--prime-space-6` — `
|
|
40
|
-
| section → section on a page (a new topic with an `h2`) | 40 | `
|
|
38
|
+
| tile → tile, both axes (KPI cards, charts, panels) | 16 | `--prime-space-4` — `Page.Grid` already does it |
|
|
39
|
+
| block → block on a page (page header → body too) | 24 | `--prime-space-6` — `Page` already does it |
|
|
40
|
+
| section → section on a page (a new topic with an `h2`) | 40 | `Page.Section` already does it |
|
|
41
41
|
|
|
42
|
-
`
|
|
43
|
-
neighbours, `
|
|
42
|
+
`Page.Body` already spaces its direct blocks 24 apart, a `Page.Section` 40 from its
|
|
43
|
+
neighbours, `Page.Grid` its tiles 16 on both axes, and `AppShell.Main` already hands the page its
|
|
44
44
|
gutters — do not add your own outer padding.
|
|
45
45
|
|
|
46
46
|
## 3. Size axis
|
|
@@ -69,12 +69,19 @@ gutters — do not add your own outer padding.
|
|
|
69
69
|
nest components, never set backgrounds yourself.
|
|
70
70
|
- Separate blocks by fill and air. Hairlines (`Divider`) only inside a block: list rows, table rows,
|
|
71
71
|
between a form and its footer.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
|
|
73
|
+
### Card in a card
|
|
74
|
+
|
|
75
|
+
Allowed — a card inside a card becomes the next layer by itself — but avoided by default: a section
|
|
76
|
+
heading inside one card usually reads better. Never a card around a `DataTable` (it already is a
|
|
77
|
+
filled block), a single field or a whole page. The ladder stops at layer 4.
|
|
78
|
+
|
|
79
|
+
### Your own bounded block
|
|
80
|
+
|
|
81
|
+
A `Card` (it takes the right layer wherever it lands). The one background you may set yourself: a
|
|
82
|
+
plain tile with no controls inside on `background: var(--prime-color-layer-nested)` with
|
|
83
|
+
`border-radius: var(--prime-card-radius)`. Never a transparent box with a border, never a
|
|
84
|
+
hard-coded `--prime-color-layer-<n>-*`.
|
|
78
85
|
|
|
79
86
|
## 5. Nested radius
|
|
80
87
|
|
|
@@ -87,8 +94,10 @@ Inner radius = outer radius − padding. Panel 12 with padding 4 → items 8. Us
|
|
|
87
94
|
- `color` is decoration from the palette: `gray · blue · green · orange · red · yellow · purple · sky ·
|
|
88
95
|
pink · teal` — Badge, Avatar, Thumbnail, SegmentedControl dots, count badges of Tabs,
|
|
89
96
|
SegmentedControl, Sidebar and BottomNav, FileUpload format badges, Timeline dots, TagSelect tags,
|
|
90
|
-
Kanban column counts, Gantt bars, the author hue of a chat (`Message.Author`).
|
|
91
|
-
across the product
|
|
97
|
+
Kanban column counts, Gantt bars, the author hue of a chat (`Message.Author`). A category keeps one
|
|
98
|
+
hue across the product: keep one `Record<Category, PaletteColor>` map.
|
|
99
|
+
- A status wears a `tone` (a Badge `tone`: «Оплачен» is `success` everywhere), never a palette hue;
|
|
100
|
+
keep one status → tone map.
|
|
92
101
|
- Never convey meaning by color alone: a status badge has text.
|
|
93
102
|
|
|
94
103
|
### Charts and categorical colors
|
|
@@ -109,8 +118,8 @@ A chart color does one job, and the job picks the colors:
|
|
|
109
118
|
`green` → `chart-6`, `purple` → `chart-7`, `red` → `chart-8`, `gray` → `chart-other`), so a
|
|
110
119
|
ProgressBar share and a line in a chart library match. `sky` has no chart step (it sits too close to
|
|
111
120
|
blue).
|
|
112
|
-
- The
|
|
113
|
-
|
|
121
|
+
- The tokens and their contrast guarantee are in
|
|
122
|
+
[foundation.md → Chart palette](reference/foundation.md#chart-palette). In scatter-like charts, where
|
|
114
123
|
any two marks can meet, keep to the first three series or facet.
|
|
115
124
|
- A chart library takes the colors as strings: `chartColors.series[i]`, `chartColors.grid`,
|
|
116
125
|
`chartColors.axis`, `chartColors.scale[i]` (each a `var(--prime-color-chart-*)`, so the theme
|
|
@@ -134,10 +143,10 @@ A chart color does one job, and the job picks the colors:
|
|
|
134
143
|
| `body-m` | 14/20 | default text |
|
|
135
144
|
| `body-l` | 16/24 | reading text |
|
|
136
145
|
| `title-s` | 14/20 600 | card title, group heading inside a card or form |
|
|
137
|
-
| `title-m` | 16/24 600 | page section heading (`
|
|
146
|
+
| `title-m` | 16/24 600 | page section heading (`Page.Section` draws it), modal title |
|
|
138
147
|
| `title-l` | 18/24 600 | large block title |
|
|
139
148
|
| `heading-s` | 20/28 600 | page sub-heading |
|
|
140
|
-
| `heading-m` | 24/32 600 | the title
|
|
149
|
+
| `heading-m` | 24/32 600 | the page title in the flow (`Page.Title` of a document page or an overview); in `Page.TopBar` the same `Page.Title` is `title-m` |
|
|
141
150
|
| `heading-l` | 30/36 600 | marketing / auth title |
|
|
142
151
|
| `display-*` | 36–60 | hero numbers only |
|
|
143
152
|
| `code` | 13/20 mono | identifiers, inline code |
|
|
@@ -145,8 +154,13 @@ A chart color does one job, and the job picks the colors:
|
|
|
145
154
|
`variant` is required on `Typography`. Weights only 400/500/600. Numbers in tables, prices, dates:
|
|
146
155
|
tabular (the kit does it in DataTable `numeric` columns and `Card.Value`; your own amounts take
|
|
147
156
|
`font-variant-numeric: tabular-nums`). Reading text max width `--prime-layout-reading-max-width`
|
|
148
|
-
(`
|
|
149
|
-
|
|
157
|
+
(`Page.Root maxWidth="readable"`).
|
|
158
|
+
|
|
159
|
+
### Text colour
|
|
160
|
+
|
|
161
|
+
Text takes its colour from `Typography tone` (`secondary`, `muted`, `accent`, `success`, `warning`,
|
|
162
|
+
`danger`) or from the kit part it sits in — never `color` in your CSS. A `--prime-color-*` token in
|
|
163
|
+
your CSS colours only what is not text: a fill, a tile, a line.
|
|
150
164
|
|
|
151
165
|
## 8. Hierarchy through air
|
|
152
166
|
|
|
@@ -156,18 +170,11 @@ level of air: a page with uniform 16px gaps everywhere reads as a list of unrela
|
|
|
156
170
|
## 9. Responsive
|
|
157
171
|
|
|
158
172
|
- Flexbox for rows/stacks, Grid for two-dimensional layouts; spacing via `gap`.
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
- Touch follows input, not width: your `:hover` styles only inside `@media (hover: hover)`; nothing is
|
|
163
|
-
hover-only; the kit keeps field text at 16px and gives small controls a 44px hit area on coarse
|
|
164
|
-
pointers — do not wrap kit fields to change that.
|
|
173
|
+
- Every screen works from 320px and at 400% zoom: [responsive.md](responsive.md) holds the rules —
|
|
174
|
+
the [breakpoints and their scope](responsive.md#breakpoints), the
|
|
175
|
+
[intrinsic grids](responsive.md#intrinsic-grids), what the kit adapts by itself and touch.
|
|
165
176
|
- Flex children with text: `min-width: 0` + ellipsis or `overflow-wrap: anywhere`.
|
|
166
|
-
-
|
|
167
|
-
chooser through `hiddenColumns`; never let the page scroll sideways.
|
|
168
|
-
- Card grids on a page: `PageContent.Grid` + `PageContent.Cell span` (folds by its own width); inside one block: `repeat(auto-fill, minmax(min(100%, …), 1fr))`.
|
|
169
|
-
- A page panel with sections, filter and search, view and the primary action is `PageToolbar`.
|
|
170
|
-
- Sticky parts come from the kit: `AppHeader` (with the `PageToolbar` in `AppHeader.Tools`), the
|
|
177
|
+
- Sticky parts come from the kit: `Page.TopBar` (with all its groups), the
|
|
171
178
|
DataTable head and `stickyFirstColumn`, the Gantt header and first column — each sticks inside its
|
|
172
179
|
own scroller, and the top ones let go on screens lower than 480px. Never a `position: sticky` bar of your own.
|
|
173
180
|
|
package/dist/skill/layouts.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Layouts — app frame, page wrappers, auth
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
the nav rail one layer above it). The
|
|
5
|
-
the page's
|
|
6
|
-
`
|
|
7
|
-
|
|
8
|
-
Main
|
|
3
|
+
The app is navigation and the page: `AppShell.Root` with the Sidebar in `AppShell.Nav` and
|
|
4
|
+
`AppShell.Main` (the content panel is the page, the nav rail one layer above it). The frame is the
|
|
5
|
+
app's; everything inside Main is the page's — a screen renders one `Page.Root` with its own top
|
|
6
|
+
(`Page.TopBar`: the page title and the page's tools, [composition.md](composition.md#1-page-skeleton))
|
|
7
|
+
and its body in `Page.Body`.
|
|
8
|
+
`AppShell.Main` hands the page its gutters and top air and `Page` spaces it — blocks 24, a titled
|
|
9
|
+
`Page.Section` 40, tiles in a `Page.Grid` 16 on both axes — so your code adds **no outer padding and no margins**. Your CSS only lays out the inside of a block (grids, rows) with `gap` on `--prime-space-*`.
|
|
10
|
+
The page's top air is part of the frame — 24, then 32 from 1024px: the page's first block
|
|
9
11
|
starts there; never cancel it with a negative margin or a padding override.
|
|
10
12
|
|
|
11
13
|
The page recipes are whole, working screens — the `screen.tsx` example of their main component
|
|
@@ -13,41 +15,31 @@ The page recipes are whole, working screens — the `screen.tsx` example of thei
|
|
|
13
15
|
|
|
14
16
|
## App frame (once per app)
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
`
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
The frame is the root layout and nothing else: the providers, `AppShell.Root`, the Sidebar in
|
|
19
|
+
`AppShell.Nav` and `AppShell.Main` around the page. It holds no header and no menu state:
|
|
20
|
+
|
|
21
|
+
- **Everything at the top belongs to the page.** There is no app-wide header and no global search:
|
|
22
|
+
every page renders its own `Page.TopBar` with only what it needs. Its title row is as high as the
|
|
23
|
+
Sidebar brand row, so the brand and the title read as one line.
|
|
24
|
+
- **The phone menu comes with the frame.** Below 768px the Sidebar becomes an off-canvas panel
|
|
25
|
+
(`offCanvas="auto"`) and `Page.TopBar` leads with the menu button that opens it by itself — never a
|
|
26
|
+
menu state or a menu button wired by hand. A trigger outside the rail (a BottomNav «Ещё», your own
|
|
27
|
+
button) reads the shell's navigation with `useAppShellNav()` (`open`, `setOpen`, `navId`; see
|
|
28
|
+
[the app frame screen](reference/layout/app-shell/examples/screen.tsx)).
|
|
29
|
+
- **Every Sidebar item is a link** (`href`, or `asChild` with the router's `NavLink`); `current`
|
|
30
|
+
marks the current page (`aria-current`), a router link sets it itself. Icons and counts follow the
|
|
31
|
+
[navigation structure](#navigation-structure-the-sidebars-content).
|
|
25
32
|
|
|
26
33
|
```tsx
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
34
|
+
import { AppShell, Icon, NotificationProvider, Sidebar } from "prime-ui-kit";
|
|
35
|
+
import type { ReactNode } from "react";
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
/** The page title — the page's h1; leave it out on a document page (its title is in main). */
|
|
32
|
-
title?: ReactNode;
|
|
33
|
-
/** One line of data under the title. */
|
|
34
|
-
description?: ReactNode;
|
|
35
|
-
/** The path up on a nested record: a `Breadcrumb.Root`. */
|
|
36
|
-
path?: ReactNode;
|
|
37
|
-
/** The page's own buttons in the title row. */
|
|
38
|
-
actions?: ReactNode;
|
|
39
|
-
/** The page's tools: a `PageToolbar.Root`. */
|
|
40
|
-
tools?: ReactNode;
|
|
41
|
-
children: ReactNode;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export function AppLayout({ title, description, path, actions, tools, children }: AppLayoutProps) {
|
|
45
|
-
const [menuOpen, setMenuOpen] = useState(false);
|
|
37
|
+
export function AppFrame({ children }: { children: ReactNode }) {
|
|
46
38
|
return (
|
|
47
39
|
<NotificationProvider>
|
|
48
40
|
<AppShell.Root fillViewport>
|
|
49
41
|
<AppShell.Nav>
|
|
50
|
-
<Sidebar.Root
|
|
42
|
+
<Sidebar.Root>
|
|
51
43
|
<Sidebar.Header>
|
|
52
44
|
<Sidebar.Brand href="/" description="Интернет-магазин">
|
|
53
45
|
<Sidebar.BrandLogo>
|
|
@@ -58,7 +50,7 @@ export function AppLayout({ title, description, path, actions, tools, children }
|
|
|
58
50
|
<Sidebar.Toggle variant="header" />
|
|
59
51
|
</Sidebar.Header>
|
|
60
52
|
<Sidebar.Content>
|
|
61
|
-
<Sidebar.Group
|
|
53
|
+
<Sidebar.Group>
|
|
62
54
|
<Sidebar.Item href="/" current>
|
|
63
55
|
<Sidebar.ItemIcon>
|
|
64
56
|
<Icon name="nav.dashboard" />
|
|
@@ -90,25 +82,6 @@ export function AppLayout({ title, description, path, actions, tools, children }
|
|
|
90
82
|
</Sidebar.Footer>
|
|
91
83
|
</Sidebar.Root>
|
|
92
84
|
</AppShell.Nav>
|
|
93
|
-
<AppHeader.Root>
|
|
94
|
-
<AppHeader.Start>
|
|
95
|
-
<AppHeader.MenuButton aria-expanded={menuOpen} onClick={() => setMenuOpen(true)} />
|
|
96
|
-
{path ? (
|
|
97
|
-
<>
|
|
98
|
-
{path}
|
|
99
|
-
<AppHeader.Separator />
|
|
100
|
-
</>
|
|
101
|
-
) : null}
|
|
102
|
-
{title ? (
|
|
103
|
-
<AppHeader.Title>
|
|
104
|
-
{title}
|
|
105
|
-
{description ? <AppHeader.Description>{description}</AppHeader.Description> : null}
|
|
106
|
-
</AppHeader.Title>
|
|
107
|
-
) : null}
|
|
108
|
-
</AppHeader.Start>
|
|
109
|
-
{actions ? <AppHeader.Actions>{actions}</AppHeader.Actions> : null}
|
|
110
|
-
{tools ? <AppHeader.Tools>{tools}</AppHeader.Tools> : null}
|
|
111
|
-
</AppHeader.Root>
|
|
112
85
|
<AppShell.Main>{children}</AppShell.Main>
|
|
113
86
|
</AppShell.Root>
|
|
114
87
|
</NotificationProvider>
|
|
@@ -116,10 +89,34 @@ export function AppLayout({ title, description, path, actions, tools, children }
|
|
|
116
89
|
}
|
|
117
90
|
```
|
|
118
91
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
92
|
+
Every page renders its top and its body in one `Page.Root`:
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
import { Page } from "prime-ui-kit";
|
|
96
|
+
|
|
97
|
+
export function OrdersPage() {
|
|
98
|
+
return (
|
|
99
|
+
<Page.Root>
|
|
100
|
+
<Page.TopBar>
|
|
101
|
+
<Page.Heading>
|
|
102
|
+
<Page.Title>Заказы</Page.Title>
|
|
103
|
+
<Page.Description>128 в работе · 6 ждут оплаты</Page.Description>
|
|
104
|
+
</Page.Heading>
|
|
105
|
+
</Page.TopBar>
|
|
106
|
+
<Page.Body>{/* the page's blocks */}</Page.Body>
|
|
107
|
+
</Page.Root>
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
What stands in the bar — the path ending in the title, the tools, every button, the active filters —
|
|
113
|
+
is [the top bar](composition.md#the-top-bar); where the title stands on a document page or an
|
|
114
|
+
overview is [the page skeleton](composition.md#1-page-skeleton).
|
|
115
|
+
|
|
116
|
+
With React Router the frame's `children` is `<Outlet />` and every item is `Sidebar.Item asChild`
|
|
117
|
+
around a `NavLink` ([the router example](reference/layout/sidebar/examples/router.tsx)). The same frame
|
|
118
|
+
as one component is `AppShell.Template` (`nav`, `footer`, `mainProps`, the page as children); give it the
|
|
119
|
+
pathname as `scrollResetKey`, so a new page opens at the top.
|
|
123
120
|
|
|
124
121
|
Phone navigation for 2–6 main sections is a `BottomNav.Root` in `AppShell.Footer` (the last child of
|
|
125
122
|
`AppShell.Root`, or the Template `footer` prop) — never in Main, never `position: fixed`, never behind
|
|
@@ -127,107 +124,49 @@ your own media query. The shell hides the footer while the Sidebar rail is on sc
|
|
|
127
124
|
while the Sidebar is off-canvas, so the bar and the rail never appear together.
|
|
128
125
|
|
|
129
126
|
Next.js App Router: the package is marked `"use client"`, but a server component cannot dot into it
|
|
130
|
-
(`<Button.Root>`) or pass it callbacks. Put
|
|
127
|
+
(`<Button.Root>`) or pass it callbacks. Put the frame and every screen in a file that starts with
|
|
131
128
|
`"use client"` and render them from `app/layout.tsx` and the pages; import `bundle.css` in the root
|
|
132
129
|
layout and put `data-theme` on `<html>` there.
|
|
133
130
|
|
|
134
|
-
A nested record page puts the path up before its title in the header — `Breadcrumb` (the list it
|
|
135
|
-
belongs to), `AppHeader.Separator`, `AppHeader.Title` with the record's name and its status as
|
|
136
|
-
the description ([the detail page](reference/components/description-list/examples/screen.tsx)). With
|
|
137
|
-
`offCanvas="always"` pass `show="always"` to the menu button.
|
|
138
|
-
|
|
139
|
-
### The page's tools in the header
|
|
140
|
-
|
|
141
|
-
The page's tools — its own search and filters, sections, the period or view, the primary action —
|
|
142
|
-
go into `AppHeader.Tools` as a `PageToolbar.Root`: the header's second row, full width, sticky with
|
|
143
|
-
it. The toolbar lays itself out from that width (one row when wide, stacked rows on a phone, the
|
|
144
|
-
primary action on its own row when the search would be squeezed), so the tools wrap under the title
|
|
145
|
-
instead of squeezing it. `AppHeader.Actions` keeps the page's other buttons (export, a more menu) in
|
|
146
|
-
the title row.
|
|
147
|
-
|
|
148
|
-
```tsx
|
|
149
|
-
import { AppHeader, Button, Icon, PageToolbar, SegmentedControl } from "prime-ui-kit";
|
|
150
|
-
|
|
151
|
-
type DealsHeaderProps = { view: string; onViewChange: (view: string) => void };
|
|
152
|
-
|
|
153
|
-
export function DealsHeader({ view, onViewChange }: DealsHeaderProps) {
|
|
154
|
-
return (
|
|
155
|
-
<AppHeader.Root>
|
|
156
|
-
<AppHeader.Start>
|
|
157
|
-
<AppHeader.Title>
|
|
158
|
-
Сделки
|
|
159
|
-
<AppHeader.Description>7 сделок в работе · 6 461 750 ₽</AppHeader.Description>
|
|
160
|
-
</AppHeader.Title>
|
|
161
|
-
</AppHeader.Start>
|
|
162
|
-
<AppHeader.Tools>
|
|
163
|
-
<PageToolbar.Root aria-label="Сделки">
|
|
164
|
-
<PageToolbar.Sections>
|
|
165
|
-
<SegmentedControl.Root
|
|
166
|
-
fullWidth
|
|
167
|
-
value={view}
|
|
168
|
-
onValueChange={onViewChange}
|
|
169
|
-
aria-label="Вид"
|
|
170
|
-
>
|
|
171
|
-
<SegmentedControl.Item value="board">Доска</SegmentedControl.Item>
|
|
172
|
-
<SegmentedControl.Item value="list">Список</SegmentedControl.Item>
|
|
173
|
-
</SegmentedControl.Root>
|
|
174
|
-
</PageToolbar.Sections>
|
|
175
|
-
<PageToolbar.Actions>
|
|
176
|
-
<Button.Root>
|
|
177
|
-
<Button.Icon>
|
|
178
|
-
<Icon name="action.add" />
|
|
179
|
-
</Button.Icon>
|
|
180
|
-
Новая сделка
|
|
181
|
-
</Button.Root>
|
|
182
|
-
</PageToolbar.Actions>
|
|
183
|
-
</PageToolbar.Root>
|
|
184
|
-
</AppHeader.Tools>
|
|
185
|
-
</AppHeader.Root>
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
With React Router put `<Outlet />` as the child and pass `NavLink` through `Sidebar.Item asChild`
|
|
191
|
-
(see `src/layout/sidebar/examples/router.tsx`).
|
|
192
|
-
|
|
193
131
|
## Navigation structure (the sidebar's content)
|
|
194
132
|
|
|
195
133
|
The sidebar is the product's map: people scan it, remember where things are and come back. Build it
|
|
196
|
-
from what people do, not from how the backend is split. The
|
|
134
|
+
from what people do, not from how the backend is split. The criteria — how many items, what folds,
|
|
135
|
+
when a count gets a colour — are in
|
|
197
136
|
[Sidebar COMPONENT.md → Building the navigation](reference/layout/sidebar/COMPONENT.md#building-the-navigation).
|
|
198
137
|
|
|
199
|
-
| Level | Kit part |
|
|
200
|
-
|
|
201
|
-
| Everyday places | `Sidebar.Group` without `label` at the top
|
|
202
|
-
| Category of work | `Sidebar.Group label collapsible` |
|
|
203
|
-
| Views of one section | `Sidebar.Sub
|
|
204
|
-
| Meta | `Sidebar.Footer
|
|
138
|
+
| Level | Kit part |
|
|
139
|
+
|---|---|
|
|
140
|
+
| Everyday places | `Sidebar.Group` without `label` at the top, never folded |
|
|
141
|
+
| Category of work | `Sidebar.Group label collapsible` |
|
|
142
|
+
| Views of one section | `Sidebar.Sub`, one level only |
|
|
143
|
+
| Meta | `Sidebar.Footer`: help, settings, then `Sidebar.Account` with its menu last |
|
|
144
|
+
|
|
145
|
+
### Sidebar icons
|
|
205
146
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
unanswered, 2 overdue) — it becomes a dot on the rail and on every folded parent, so keep it rare:
|
|
209
|
-
red for blocked or overdue, blue for new or unread.
|
|
210
|
-
- `persistKey` on `Sidebar.Root` keeps the rail mode and folded groups across reloads; give groups an
|
|
211
|
-
`id` when labels are translated.
|
|
147
|
+
An icon on every top-level item and every sub-list parent, each a distinct shape (the compact rail
|
|
148
|
+
shows only icons); none on the children of a sub-list.
|
|
212
149
|
|
|
213
150
|
## Page wrapper
|
|
214
151
|
|
|
215
|
-
- App pages (dashboard, list, detail, a board): `
|
|
216
|
-
page's title and tools are in its `
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
(
|
|
152
|
+
- App pages (dashboard, list, detail, a board): `Page.Root` — the full width of the panel; the
|
|
153
|
+
page's title and tools are in its `Page.TopBar`, its blocks go into `Page.Body`
|
|
154
|
+
([the page skeleton](composition.md#1-page-skeleton)).
|
|
155
|
+
- Document pages — settings and long forms: `Page.Root maxWidth="wide"` with `Page.Header` in the
|
|
156
|
+
flow (the page's h1) and a `Page.Section layout="aside"` (heading column + panel) per section
|
|
157
|
+
([the settings page](reference/layout/page/examples/screen.tsx)), or `maxWidth="readable"` for a single
|
|
220
158
|
narrow column of fields.
|
|
221
|
-
- Long reading text (terms, help): `
|
|
159
|
+
- Long reading text (terms, help): `Page.Root maxWidth="readable"` with `Page.Header` in the flow.
|
|
222
160
|
- A page as high as the panel (a log, a board, a chat): `AppShell.Root fillViewport` +
|
|
223
|
-
`
|
|
224
|
-
`scrollHeight="fill"`, Crossfade `fill`, `
|
|
225
|
-
- List + detail (mail, a messenger, a ticket queue): `
|
|
226
|
-
`
|
|
227
|
-
at a time below it with `
|
|
161
|
+
`Page.Root fill`; the body passes its free height to a filling child — DataTable
|
|
162
|
+
`scrollHeight="fill"`, Crossfade `fill`, `Page.Split`. Never compute heights from `100vh`.
|
|
163
|
+
- List + detail (mail, a messenger, a ticket queue): `Page.Split` with `Page.List` and
|
|
164
|
+
`Page.Detail` in a filling page. Side by side from 48rem of the split's own width, one pane
|
|
165
|
+
at a time below it with `Page.BackButton` first in the detail's header; `open` is «a record
|
|
228
166
|
is chosen». Each pane gives its last child the free height: a Card with its own `ScrollContainer`
|
|
229
167
|
(`anchor="end"` for a thread). The records in the list pane are a `List` (`current` on the open
|
|
230
|
-
one)
|
|
168
|
+
one), the conversations of a messenger a `ChatList`. Details that open over a table and close
|
|
169
|
+
again are a Drawer instead.
|
|
231
170
|
|
|
232
171
|
## Which screen to start from
|
|
233
172
|
|
package/dist/skill/motion.md
CHANGED
|
@@ -5,8 +5,8 @@ the kit's author would make it move: every state change is continuous, every pre
|
|
|
5
5
|
flips — and nothing moves without a reason. Most of it is already inside the components; your job is
|
|
6
6
|
to use them so it can happen, and to add motion only where the kit leaves the choice to you.
|
|
7
7
|
|
|
8
|
-
The full design contract
|
|
9
|
-
to apply it on a screen
|
|
8
|
+
The full design contract is [foundation.md → Motion and micro-animation](reference/foundation.md#motion-and-micro-animation);
|
|
9
|
+
this file is how to apply it on a screen.
|
|
10
10
|
|
|
11
11
|
## 1. What the kit already animates — do not rebuild it
|
|
12
12
|
|
|
@@ -23,8 +23,8 @@ Use the component and the motion comes with it. Never re-animate these with your
|
|
|
23
23
|
| Check / uncheck | the check draws in with a stroke, leaves fast | `Checkbox`, `Checkbox.Indicator`, `ColorSwatches` |
|
|
24
24
|
| Toggle | the thumb slides | `Switch` |
|
|
25
25
|
| One of a few | the indicator glides to the choice | `SegmentedControl`, `Tabs` |
|
|
26
|
-
|
|
|
27
|
-
| A chat message changes size (a reaction
|
|
26
|
+
| A part that folds open or closed | it opens on the enter clock and closes faster, the content fading as the height glides; the chevron turns | `Accordion`, `Sidebar.Group collapsible`, `Sidebar.Sub`, DataTable expanded rows |
|
|
27
|
+
| A chat message changes size (a reaction, a transcript, an edit, an upload state) | one stroke: the bubble glides to its new size with its parts, the time and the tail still ([Message → States](reference/components/message/COMPONENT.md#states)) | `Message.Root` (built in) |
|
|
28
28
|
| A counter or a count | digits roll like an odometer | `Badge` with a number child, the `counter` of `Input` / `Textarea` |
|
|
29
29
|
| A field with an error | the control shakes once, sharply, when the error arrives or changes; the label stays, the message drops in | `error` (or `invalid`) on any field, `Checkbox.Root`, `Switch.Root`, `Radio.Group` — not for an error the field mounts with |
|
|
30
30
|
| Password strength | stepped bar fills cell by cell, the level word flows in | `Input.Root strength` |
|
|
@@ -36,11 +36,11 @@ Use the component and the motion comes with it. Never re-animate these with your
|
|
|
36
36
|
| Tooltips along a toolbar | the first waits, the next ones show at once | `Tooltip` (shared warm window) |
|
|
37
37
|
| Toast stack | depth stack, expands on hover | `NotificationProvider` + `useNotifications` |
|
|
38
38
|
| Loading → data → empty → error | the region cross-fades and glides its height; loading is a skeleton of the data | `Crossfade` around the region, `Skeleton` in the data's geometry |
|
|
39
|
-
| Drag | the carried piece lifts, its neighbours glide apart, the drop glides into place; while its save runs the piece
|
|
39
|
+
| Drag | the carried piece lifts, its neighbours glide apart, the drop glides into place; while its save runs the piece stays still and its grip turns busy, and a refused save glides it back — across columns too | `Dnd`, `Kanban` cards and columns, DataTable and `List` `onReorder`, `FileUpload` tiles |
|
|
40
40
|
| A setting saved on the server | the thumb moves at once and a spinner turns inside it (a slider thumb dims); a refused save glides it back | `Switch` (`onCheckedChange` returns a Promise, or `loading`), `Slider` (`onCommit`) |
|
|
41
41
|
| A chip or a file row removed | it waits dimmed with a spinner on its ×; once gone it fades and closes up, the next ones glide into its place; refused, it stays | `Badge` `onRemove`, `FileUpload` `onValueChange`, TagSelect chips |
|
|
42
42
|
| A schedule bar moved, stretched or drawn | the bar lifts and steps by whole days under the pointer with a dates tooltip; a drawn bar is a ghost that turns into a pulsing Skeleton while `onBarCreate` runs; a refused change glides back, a refused bar fades out; the zoom cross-fades around the day in the middle | `Gantt` (`onBarChange`, `onBarCreate`, `scale`) |
|
|
43
|
-
| Messages | a message new at the end
|
|
43
|
+
| Messages | a message new at the end floats up a little and fades in; the first render, history loaded above and rows scrolled into view never move; a jumped-to message stays bright while the others step back; «печатает…», reactions, selection and the ticks move by themselves ([Chat → States](reference/components/chat/COMPONENT.md#states), [Message → States](reference/components/message/COMPONENT.md#states)) | `Chat` (`selected`, `search`, `typing`, `jumpTo`, `Chat.Pinned`), `Message` (`onReactionToggle`, `Message.Typing`, `Message.Reply target`) |
|
|
44
44
|
| Writing a message | the send glyph turns into place as text appears; the reply / edit bar enters; a paused recording stills its dot into a pause glyph and freezes the timer and the waveform; the recording bar cross-fades over the field inside the row's height, the hint slides and fades with the finger, the dot breathes and the live waveform follows the voice; the formatting toolbar fades in over a selection | `Composer` |
|
|
45
45
|
| Playing a voice message | the waveform fills as it plays and is the seek slider; play and pause cross-fade; the speed label flows into the next rate | `VoicePlayer` |
|
|
46
46
|
| A rare milestone | a short confetti burst | `celebrate({ origin })` |
|
|
@@ -66,24 +66,18 @@ under it. Easing starts when the hand lets go.
|
|
|
66
66
|
|
|
67
67
|
## 3. Tokens — the only durations and curves
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
| `--prime-motion-blur` | 2 px | hiding a change of shape while two states swap |
|
|
82
|
-
| `--prime-motion-press-scale` / `-compact` | 0.98 / 0.96 | `:active` scale |
|
|
83
|
-
|
|
84
|
-
Under `prefers-reduced-motion` the durations and stagger go to 0 and the press scale to 1 globally —
|
|
85
|
-
token-based CSS honours it for free. `--prime-motion-loop` stays: a loading loop is information and
|
|
86
|
-
keeps running, slower. Anything you drive from JS checks the media query itself.
|
|
69
|
+
Every duration, curve and scale is a `--prime-motion-*` token; the table with values and uses is
|
|
70
|
+
[foundation.md → Motion and micro-animation](reference/foundation.md#motion-and-micro-animation). In
|
|
71
|
+
short: movement runs on `--prime-motion-duration-xfast · fast · base · slow` with the `enter`, `exit`,
|
|
72
|
+
`standard` or `emphasized` easing; opacity and color changes run on the
|
|
73
|
+
`--prime-motion-fade-xfast · fast · base · slow` group; sizes you start from or pass through come
|
|
74
|
+
from the `--prime-motion-scale-*` ladder.
|
|
75
|
+
|
|
76
|
+
Under `prefers-reduced-motion` the movement durations and stagger go to 0 and the press scale to 1
|
|
77
|
+
globally — token-based CSS honours it for free. Fades stay: a transition on the
|
|
78
|
+
`--prime-motion-fade-*` group still eases a state in instead of flipping it, and a loading loop
|
|
79
|
+
(`--prime-motion-loop`) keeps running, slower. Anything you drive from JS checks the media query
|
|
80
|
+
itself.
|
|
87
81
|
|
|
88
82
|
## 4. Rules for your own motion
|
|
89
83
|
|
|
@@ -95,8 +89,9 @@ keeps running, slower. Anything you drive from JS checks the media query itself.
|
|
|
95
89
|
- Never from nothing: appear from `opacity: 0` plus a small offset (`--prime-space-1`/`-2`) or
|
|
96
90
|
`scale(0.96)`, never `scale(0)`.
|
|
97
91
|
- State moves, it does not swap: a selection travels, a check draws, a counter rolls, two contents
|
|
98
|
-
cross-fade.
|
|
99
|
-
|
|
92
|
+
cross-fade. Foundation §7 rule 9: «Toggled state uses CSS transitions (retarget mid-flight), not
|
|
93
|
+
keyframes. Keyframes only for one-shot enter/exit … and one-shot gestures»; rule 3: «Durations and
|
|
94
|
+
easings come from `--prime-motion-*`; never a raw `ms` or `cubic-bezier`».
|
|
100
95
|
- Hover movement only inside `@media (hover: hover)`; nothing is hover-only.
|
|
101
96
|
- Stagger only the first render of a short group (≤ 6 items) and never block interaction with it.
|
|
102
97
|
- A gesture clock (a hold, a countdown) is information, not motion: it keeps running under reduced
|
|
@@ -129,10 +124,8 @@ export function ExportButton({ progress, ready }: { progress?: number; ready: bo
|
|
|
129
124
|
**Save → saved.** `loading` while the request runs, then change the label; the kit morphs it. Return
|
|
130
125
|
to the idle label after about two seconds.
|
|
131
126
|
|
|
132
|
-
**Delete without a dialog.**
|
|
133
|
-
|
|
134
|
-
the undo recipe below. Irreversible loss of work → a `ConfirmDialog`. (The rule:
|
|
135
|
-
[choosing.md](choosing.md), «ConfirmDialog / Modal / `holdToConfirm` / undo».)
|
|
127
|
+
**Delete without a dialog.** When [friction](ux.md#5-friction-matches-the-cost-of-a-mistake) asks for
|
|
128
|
+
a held press, `holdToConfirm` with the action in `onConfirm`:
|
|
136
129
|
|
|
137
130
|
```tsx
|
|
138
131
|
import { Button, Icon } from "prime-ui-kit";
|
|
@@ -165,7 +158,9 @@ hint that states the rule in words.
|
|
|
165
158
|
**Removing a row with undo.** Remove the row from the data, show a notification with an «Отменить»
|
|
166
159
|
action, put the row back on undo — undo beats a confirm dialog for reversible deletes. When the delete
|
|
167
160
|
reaches the server only after the chance to undo has passed, send it from the notification's
|
|
168
|
-
`onDismiss
|
|
161
|
+
`onDismiss(reason)`: every reason but `"action"` (the toast timed out, was closed, swiped or pushed
|
|
162
|
+
out of the stack) means the person let it go; the «Отменить» action closes its toast by itself with
|
|
163
|
+
`"action"` ([the undo example](reference/components/notification/examples/undo.tsx)).
|
|
169
164
|
|
|
170
165
|
**A rare achievement.** Say it in words (a `Banner`, the progress label turning success), then call
|
|
171
166
|
`celebrate({ origin: element })` once. Only for something that happens rarely — a quarter closed, the
|