prime-ui-kit 0.16.0 → 0.18.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 +15 -18
- package/dist/chunks/{chunk-A7OQWH6R.js → chunk-IVS3J7AS.js} +1 -1
- package/dist/chunks/{chunk-6TPHKCUJ.js → chunk-MB4CXSLL.js} +27732 -26723
- package/dist/chunks/{chunk-4PSQ64S4.js → chunk-OAXJWF3L.js} +6818 -6264
- package/dist/chunks/{chunk-U3Q2I3MY.js → chunk-QFHE5GKW.js} +3 -2
- package/dist/chunks/{chunk-HDBQICPW.js → chunk-X3JT5CLR.js} +60 -20
- package/dist/color-picker.d.ts +1 -1
- package/dist/color-picker.js +3 -3
- package/dist/components/badge/Badge.d.ts +17 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +12 -3
- package/dist/components/button/Button.d.ts +1 -1
- package/dist/components/button-group/ButtonGroup.d.ts +1 -1
- package/dist/components/card/Card.d.ts +8 -4
- package/dist/components/chart-frame/ChartFrame.d.ts +1 -1
- package/dist/components/chat/Chat.d.ts +3 -3
- package/dist/components/chat/ChatRows.d.ts +5 -1
- package/dist/components/chat/MessageList.d.ts +5 -1
- package/dist/components/chat/groupMessages.d.ts +12 -4
- package/dist/components/chat-list/ChatList.d.ts +18 -9
- package/dist/components/chat-list/formatChatTime.d.ts +3 -3
- package/dist/components/checkbox/Checkbox.d.ts +6 -1
- package/dist/components/color-field/ColorField.d.ts +1 -1
- package/dist/components/color-picker/ColorPicker.d.ts +23 -1
- package/dist/components/color-picker/ColorPresets.d.ts +9 -1
- package/dist/components/crossfade/Crossfade.d.ts +1 -1
- package/dist/components/data-table/DataTable.d.ts +3 -1
- package/dist/components/data-table/Head.d.ts +3 -1
- package/dist/components/data-table/types.d.ts +5 -0
- package/dist/components/digit-input/DigitInput.d.ts +1 -1
- package/dist/components/drawer/Drawer.d.ts +3 -2
- package/dist/components/field-list/FieldList.d.ts +18 -6
- package/dist/components/hint/Hint.d.ts +8 -2
- package/dist/components/index.d.ts +6 -7
- package/dist/components/input/Input.d.ts +27 -5
- package/dist/components/input/inputSuggestions.d.ts +39 -0
- package/dist/components/kanban/Kanban.d.ts +4 -9
- package/dist/components/list/List.d.ts +19 -5
- package/dist/components/message/Message.d.ts +15 -3
- package/dist/components/message/MessageSticker.d.ts +27 -0
- package/dist/components/message/formatMessageTime.d.ts +5 -2
- package/dist/components/modal/Modal.d.ts +3 -2
- package/dist/components/native-select/NativeSelect.d.ts +1 -1
- package/dist/components/pagination/Pagination.d.ts +5 -1
- package/dist/components/popover/Popover.d.ts +1 -1
- package/dist/components/radio/Radio.d.ts +11 -2
- package/dist/components/rich-text/RichText.d.ts +23 -0
- package/dist/components/scroll-container/ScrollContainer.d.ts +1 -1
- package/dist/components/scroll-container/scrollGlide.d.ts +26 -0
- package/dist/components/scroll-container/useScrollMotion.d.ts +25 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
- package/dist/components/select/selectContext.d.ts +7 -0
- package/dist/components/slider/Slider.d.ts +2 -2
- package/dist/components/smart-filter/SmartFilter.d.ts +4 -5
- package/dist/components/switch/Switch.d.ts +6 -1
- package/dist/components/tag-select/TagSelect.d.ts +1 -1
- package/dist/components/textarea/Textarea.d.ts +6 -1
- package/dist/components/timeline/Timeline.d.ts +1 -1
- package/dist/icon-set.js +2 -2
- package/dist/index.css +1 -1
- package/dist/index.js +7 -9
- package/dist/internal/ChoiceField.d.ts +3 -1
- package/dist/internal/FieldFrame.d.ts +8 -2
- package/dist/internal/barPlan.d.ts +44 -0
- package/dist/internal/fieldCell.d.ts +1 -1
- package/dist/internal/formatClock.d.ts +23 -2
- package/dist/internal/leaveGuard.d.ts +21 -0
- package/dist/internal/messageList.d.ts +2 -0
- package/dist/internal/overlay/DialogParts.d.ts +27 -2
- package/dist/internal/overlay/FloatingPanel.d.ts +1 -1
- package/dist/internal/overlay/focus.d.ts +3 -2
- package/dist/internal/parts.d.ts +1 -1
- package/dist/internal/slot.d.ts +0 -30
- package/dist/internal/swatch.d.ts +5 -0
- package/dist/internal/tokenDefaults.d.ts +1 -0
- package/dist/layout/app-shell/AppShell.d.ts +19 -38
- package/dist/layout/index.d.ts +3 -3
- package/dist/layout/page/Page.d.ts +302 -0
- package/dist/layout/sidebar/Sidebar.d.ts +1 -1
- package/dist/skill/SKILL.md +10 -10
- package/dist/skill/anti-slop.md +106 -5
- package/dist/skill/api-contract.md +15 -8
- package/dist/skill/cheatsheet.md +46 -26
- package/dist/skill/checklist.md +12 -3
- package/dist/skill/choosing.md +34 -20
- package/dist/skill/components.md +4 -5
- package/dist/skill/composition.md +193 -154
- package/dist/skill/foundations.md +9 -9
- package/dist/skill/layouts.md +42 -99
- package/dist/skill/reference/components/avatar/COMPONENT.md +2 -2
- package/dist/skill/reference/components/avatar/examples/team-group.tsx +1 -1
- package/dist/skill/reference/components/badge/COMPONENT.md +14 -1
- package/dist/skill/reference/components/badge/examples/examples.module.css +7 -0
- package/dist/skill/reference/components/badge/examples/tag-row.tsx +34 -0
- package/dist/skill/reference/components/banner/COMPONENT.md +4 -4
- package/dist/skill/reference/components/banner/examples/examples.module.css +6 -1
- package/dist/skill/reference/components/banner/examples/page-strip.tsx +24 -22
- package/dist/skill/reference/components/breadcrumb/COMPONENT.md +18 -12
- package/dist/skill/reference/components/breadcrumb/examples/router.tsx +17 -0
- package/dist/skill/reference/components/button/COMPONENT.md +2 -1
- package/dist/skill/reference/components/button/examples/hold-to-confirm.tsx +1 -1
- package/dist/skill/reference/components/button/examples/on-colored-host.tsx +8 -8
- package/dist/skill/reference/components/button-group/COMPONENT.md +1 -0
- package/dist/skill/reference/components/card/COMPONENT.md +14 -8
- package/dist/skill/reference/components/card/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/card/examples/screen.tsx +184 -198
- package/dist/skill/reference/components/card/examples/states.tsx +59 -0
- package/dist/skill/reference/components/chart-frame/COMPONENT.md +1 -1
- package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +9 -9
- package/dist/skill/reference/components/chat/COMPONENT.md +8 -5
- package/dist/skill/reference/components/chat/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/chat/examples/screen.tsx +110 -117
- package/dist/skill/reference/components/chat/examples/time-zone.tsx +83 -0
- package/dist/skill/reference/components/chat-list/COMPONENT.md +14 -8
- package/dist/skill/reference/components/chat-list/examples/controlled.tsx +2 -2
- package/dist/skill/reference/components/chat-list/examples/examples.module.css +8 -0
- package/dist/skill/reference/components/chat-list/examples/links.tsx +1 -1
- package/dist/skill/reference/components/chat-list/examples/router.tsx +63 -0
- package/dist/skill/reference/components/checkbox/COMPONENT.md +1 -0
- package/dist/skill/reference/components/checkbox/examples/examples.module.css +3 -2
- package/dist/skill/reference/components/code-block/COMPONENT.md +1 -1
- package/dist/skill/reference/components/code-block/examples/color-scheme.tsx +2 -4
- package/dist/skill/reference/components/code-block/examples/examples.module.css +0 -11
- package/dist/skill/reference/components/color-field/COMPONENT.md +2 -1
- package/dist/skill/reference/components/color-picker/COMPONENT.md +31 -11
- package/dist/skill/reference/components/color-picker/examples/examples.module.css +2 -5
- package/dist/skill/reference/components/color-picker/examples/overview.tsx +5 -10
- package/dist/skill/reference/components/color-picker/examples/presets-custom.tsx +31 -0
- package/dist/skill/reference/components/color-picker/examples/sizes.tsx +4 -8
- package/dist/skill/reference/components/color-swatches/COMPONENT.md +1 -0
- package/dist/skill/reference/components/crossfade/COMPONENT.md +3 -3
- package/dist/skill/reference/components/crossfade/examples/screen.tsx +107 -112
- package/dist/skill/reference/components/data-table/COMPONENT.md +12 -7
- package/dist/skill/reference/components/data-table/examples/examples.module.css +9 -0
- package/dist/skill/reference/components/data-table/examples/numeric.tsx +9 -2
- package/dist/skill/reference/components/data-table/examples/screen.tsx +42 -52
- package/dist/skill/reference/components/data-table/examples/server.tsx +6 -2
- package/dist/skill/reference/components/datepicker/COMPONENT.md +3 -1
- package/dist/skill/reference/components/datepicker/examples/deadline.tsx +33 -0
- package/dist/skill/reference/components/datepicker/examples/examples.module.css +6 -0
- package/dist/skill/reference/components/datepicker/examples/inline-panel.tsx +3 -1
- package/dist/skill/reference/components/description-list/COMPONENT.md +1 -1
- package/dist/skill/reference/components/description-list/examples/screen.tsx +120 -127
- package/dist/skill/reference/components/digit-input/COMPONENT.md +1 -0
- package/dist/skill/reference/components/digit-input/examples/grouped.tsx +4 -4
- package/dist/skill/reference/components/digit-input/examples/validation.tsx +1 -1
- package/dist/skill/reference/components/divider/COMPONENT.md +2 -2
- package/dist/skill/reference/components/divider/examples/examples.module.css +4 -1
- package/dist/skill/reference/components/divider/examples/vertical.tsx +22 -9
- package/dist/skill/reference/components/dnd/examples/examples.module.css +3 -1
- package/dist/skill/reference/components/drawer/COMPONENT.md +16 -3
- package/dist/skill/reference/components/drawer/examples/client-card.tsx +32 -8
- package/dist/skill/reference/components/drawer/examples/placement.tsx +26 -31
- package/dist/skill/reference/components/drawer/examples/screen.tsx +137 -160
- package/dist/skill/reference/components/dropdown/COMPONENT.md +1 -1
- package/dist/skill/reference/components/example-frame/COMPONENT.md +3 -3
- package/dist/skill/reference/components/field-list/COMPONENT.md +15 -3
- package/dist/skill/reference/components/field-list/examples/saving.tsx +83 -0
- 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/totals.tsx +82 -0
- package/dist/skill/reference/components/fieldset/COMPONENT.md +1 -1
- package/dist/skill/reference/components/fieldset/examples/states.tsx +1 -1
- package/dist/skill/reference/components/file-upload/COMPONENT.md +2 -1
- package/dist/skill/reference/components/file-upload/examples/screen.module.css +2 -2
- package/dist/skill/reference/components/file-upload/examples/screen.tsx +65 -81
- package/dist/skill/reference/components/gallery/COMPONENT.md +1 -0
- package/dist/skill/reference/components/gantt/COMPONENT.md +1 -1
- package/dist/skill/reference/components/gantt/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/gantt/examples/screen.tsx +55 -73
- package/dist/skill/reference/components/hint/COMPONENT.md +16 -2
- package/dist/skill/reference/components/hint/examples/examples.module.css +10 -1
- package/dist/skill/reference/components/hint/examples/overview.tsx +1 -1
- package/dist/skill/reference/components/hint/examples/variants.tsx +48 -0
- package/dist/skill/reference/components/input/COMPONENT.md +39 -9
- package/dist/skill/reference/components/input/examples/affixes.tsx +4 -2
- package/dist/skill/reference/components/input/examples/dismiss.tsx +29 -0
- package/dist/skill/reference/components/input/examples/suggestions.tsx +26 -0
- package/dist/skill/reference/components/input/examples/time.tsx +24 -0
- package/dist/skill/reference/components/input/examples/with-select.tsx +44 -0
- package/dist/skill/reference/components/kanban/COMPONENT.md +7 -7
- package/dist/skill/reference/components/kanban/examples/columns.tsx +4 -2
- package/dist/skill/reference/components/kanban/examples/screen.module.css +1 -1
- package/dist/skill/reference/components/kanban/examples/screen.tsx +50 -65
- package/dist/skill/reference/components/kbd/COMPONENT.md +1 -1
- package/dist/skill/reference/components/label/examples/examples.module.css +12 -1
- package/dist/skill/reference/components/label/examples/overview.tsx +1 -1
- package/dist/skill/reference/components/list/COMPONENT.md +26 -10
- package/dist/skill/reference/components/list/examples/row-controls.tsx +80 -0
- package/dist/skill/reference/components/list/examples/with-icon.tsx +23 -2
- package/dist/skill/reference/components/login-form/COMPONENT.md +8 -7
- package/dist/skill/reference/components/login-form/examples/states.tsx +12 -14
- package/dist/skill/reference/components/media-viewer/examples/controlled.tsx +16 -16
- package/dist/skill/reference/components/media-viewer/examples/examples.module.css +1 -3
- package/dist/skill/reference/components/message/COMPONENT.md +30 -9
- package/dist/skill/reference/components/message/examples/preview.tsx +28 -0
- package/dist/skill/reference/components/message/examples/sticker.tsx +35 -0
- package/dist/skill/reference/components/modal/COMPONENT.md +15 -3
- package/dist/skill/reference/components/modal/examples/long-content.tsx +37 -18
- package/dist/skill/reference/components/native-select/COMPONENT.md +1 -0
- package/dist/skill/reference/components/notification/COMPONENT.md +1 -1
- package/dist/skill/reference/components/pagination/COMPONENT.md +11 -3
- package/dist/skill/reference/components/pagination/examples/controlled.tsx +2 -1
- package/dist/skill/reference/components/popover/COMPONENT.md +3 -2
- package/dist/skill/reference/components/popover/examples/width.tsx +13 -1
- package/dist/skill/reference/components/radio/COMPONENT.md +2 -0
- package/dist/skill/reference/components/rich-text/COMPONENT.md +93 -0
- package/dist/skill/reference/components/rich-text/examples/overview.tsx +19 -0
- package/dist/skill/reference/components/scroll-container/COMPONENT.md +8 -5
- package/dist/skill/reference/components/segmented-control/COMPONENT.md +1 -0
- package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +1 -1
- package/dist/skill/reference/components/select/COMPONENT.md +7 -3
- package/dist/skill/reference/components/slider/COMPONENT.md +4 -3
- package/dist/skill/reference/components/slider/examples/controlled.tsx +1 -1
- package/dist/skill/reference/components/slider/examples/states.tsx +14 -10
- package/dist/skill/reference/components/smart-filter/COMPONENT.md +13 -13
- package/dist/skill/reference/components/smart-filter/examples/examples.module.css +3 -0
- package/dist/skill/reference/components/smart-filter/examples/many-values.tsx +12 -8
- package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +7 -3
- package/dist/skill/reference/components/sparkline/COMPONENT.md +1 -0
- package/dist/skill/reference/components/sparkline/examples/curve.tsx +16 -11
- package/dist/skill/reference/components/sparkline/examples/states.tsx +14 -10
- package/dist/skill/reference/components/switch/COMPONENT.md +2 -1
- package/dist/skill/reference/components/tabs/COMPONENT.md +1 -1
- package/dist/skill/reference/components/tag-select/COMPONENT.md +1 -0
- package/dist/skill/reference/components/textarea/COMPONENT.md +1 -0
- package/dist/skill/reference/components/timeline/COMPONENT.md +3 -3
- package/dist/skill/reference/components/timeline/examples/structure.tsx +2 -1
- package/dist/skill/reference/components/typography/COMPONENT.md +2 -2
- package/dist/skill/reference/foundation.md +15 -11
- package/dist/skill/reference/layout/app-shell/COMPONENT.md +25 -38
- package/dist/skill/reference/layout/app-shell/examples/footer.tsx +10 -10
- package/dist/skill/reference/layout/app-shell/examples/overview.tsx +20 -22
- package/dist/skill/reference/layout/app-shell/examples/screen.module.css +2 -2
- package/dist/skill/reference/layout/app-shell/examples/screen.tsx +25 -30
- package/dist/skill/reference/layout/app-shell/examples/template.tsx +13 -17
- package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +4 -3
- 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/page/COMPONENT.md +382 -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/layout/page/examples/examples.module.css +92 -0
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/grid.tsx +15 -15
- package/dist/skill/reference/layout/page/examples/guard.tsx +87 -0
- package/dist/skill/reference/{components/page-content → layout/page}/examples/list-detail.tsx +14 -14
- package/dist/skill/reference/layout/page/examples/loading.tsx +57 -0
- package/dist/skill/reference/layout/page/examples/narrow.tsx +75 -0
- package/dist/skill/reference/layout/page/examples/overview.tsx +57 -0
- package/dist/skill/reference/{components/page-content → layout/page}/examples/screen.module.css +1 -1
- package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.tsx +29 -19
- package/dist/skill/reference/{components/page-content → 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 +7 -7
- package/dist/skill/reference/layout/sidebar/COMPONENT.md +6 -4
- package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +10 -7
- package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +11 -8
- package/dist/skill/responsive.md +94 -75
- package/dist/skill/ux.md +5 -3
- package/dist/tokens/layers.d.ts +2 -0
- package/dist/tokens/primitives.d.ts +12 -2
- package/dist/tokens/semantic.d.ts +9 -0
- package/dist/tokens/themes/dark.d.ts +7 -2
- package/package.json +2 -2
- package/src/components/avatar/COMPONENT.md +2 -2
- package/src/components/avatar/examples/team-group.tsx +1 -1
- package/src/components/badge/COMPONENT.md +14 -1
- package/src/components/badge/examples/examples.module.css +7 -0
- package/src/components/badge/examples/tag-row.tsx +34 -0
- package/src/components/banner/COMPONENT.md +4 -4
- package/src/components/banner/examples/examples.module.css +6 -1
- package/src/components/banner/examples/page-strip.tsx +24 -22
- package/src/components/breadcrumb/COMPONENT.md +18 -12
- package/src/components/breadcrumb/examples/router.tsx +17 -0
- package/src/components/button/COMPONENT.md +2 -1
- package/src/components/button/examples/hold-to-confirm.tsx +1 -1
- package/src/components/button/examples/on-colored-host.tsx +8 -8
- package/src/components/button-group/COMPONENT.md +1 -0
- package/src/components/card/COMPONENT.md +14 -8
- package/src/components/card/examples/screen.module.css +1 -1
- package/src/components/card/examples/screen.tsx +184 -198
- package/src/components/card/examples/states.tsx +59 -0
- package/src/components/chart-frame/COMPONENT.md +1 -1
- package/src/components/chart-frame/examples/fill-height.tsx +9 -9
- package/src/components/chat/COMPONENT.md +8 -5
- package/src/components/chat/examples/screen.module.css +1 -1
- package/src/components/chat/examples/screen.tsx +110 -117
- package/src/components/chat/examples/time-zone.tsx +83 -0
- package/src/components/chat-list/COMPONENT.md +14 -8
- package/src/components/chat-list/examples/controlled.tsx +2 -2
- package/src/components/chat-list/examples/examples.module.css +8 -0
- package/src/components/chat-list/examples/links.tsx +1 -1
- package/src/components/chat-list/examples/router.tsx +63 -0
- package/src/components/checkbox/COMPONENT.md +1 -0
- package/src/components/checkbox/examples/examples.module.css +3 -2
- package/src/components/code-block/COMPONENT.md +1 -1
- package/src/components/code-block/examples/color-scheme.tsx +2 -4
- package/src/components/code-block/examples/examples.module.css +0 -11
- package/src/components/color-field/COMPONENT.md +2 -1
- package/src/components/color-picker/COMPONENT.md +31 -11
- package/src/components/color-picker/examples/examples.module.css +2 -5
- package/src/components/color-picker/examples/overview.tsx +5 -10
- package/src/components/color-picker/examples/presets-custom.tsx +31 -0
- package/src/components/color-picker/examples/sizes.tsx +4 -8
- package/src/components/color-swatches/COMPONENT.md +1 -0
- package/src/components/crossfade/COMPONENT.md +3 -3
- package/src/components/crossfade/examples/screen.tsx +107 -112
- package/src/components/data-table/COMPONENT.md +12 -7
- package/src/components/data-table/examples/examples.module.css +9 -0
- package/src/components/data-table/examples/numeric.tsx +9 -2
- package/src/components/data-table/examples/screen.tsx +42 -52
- package/src/components/data-table/examples/server.tsx +6 -2
- package/src/components/datepicker/COMPONENT.md +3 -1
- package/src/components/datepicker/examples/deadline.tsx +33 -0
- package/src/components/datepicker/examples/examples.module.css +6 -0
- package/src/components/datepicker/examples/inline-panel.tsx +3 -1
- package/src/components/description-list/COMPONENT.md +1 -1
- package/src/components/description-list/examples/screen.tsx +120 -127
- package/src/components/digit-input/COMPONENT.md +1 -0
- package/src/components/digit-input/examples/grouped.tsx +4 -4
- package/src/components/digit-input/examples/validation.tsx +1 -1
- package/src/components/divider/COMPONENT.md +2 -2
- package/src/components/divider/examples/examples.module.css +4 -1
- package/src/components/divider/examples/vertical.tsx +22 -9
- package/src/components/dnd/examples/examples.module.css +3 -1
- package/src/components/drawer/COMPONENT.md +16 -3
- package/src/components/drawer/examples/client-card.tsx +32 -8
- package/src/components/drawer/examples/placement.tsx +26 -31
- package/src/components/drawer/examples/screen.tsx +137 -160
- package/src/components/dropdown/COMPONENT.md +1 -1
- package/src/components/example-frame/COMPONENT.md +3 -3
- package/src/components/field-list/COMPONENT.md +15 -3
- package/src/components/field-list/examples/saving.tsx +83 -0
- 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/totals.tsx +82 -0
- package/src/components/fieldset/COMPONENT.md +1 -1
- package/src/components/fieldset/examples/states.tsx +1 -1
- package/src/components/file-upload/COMPONENT.md +2 -1
- package/src/components/file-upload/examples/screen.module.css +2 -2
- package/src/components/file-upload/examples/screen.tsx +65 -81
- package/src/components/gallery/COMPONENT.md +1 -0
- package/src/components/gantt/COMPONENT.md +1 -1
- package/src/components/gantt/examples/screen.module.css +1 -1
- package/src/components/gantt/examples/screen.tsx +55 -73
- package/src/components/hint/COMPONENT.md +16 -2
- package/src/components/hint/examples/examples.module.css +10 -1
- package/src/components/hint/examples/overview.tsx +1 -1
- package/src/components/hint/examples/variants.tsx +48 -0
- package/src/components/input/COMPONENT.md +39 -9
- package/src/components/input/examples/affixes.tsx +4 -2
- package/src/components/input/examples/dismiss.tsx +29 -0
- package/src/components/input/examples/suggestions.tsx +26 -0
- package/src/components/input/examples/time.tsx +24 -0
- package/src/components/input/examples/with-select.tsx +44 -0
- package/src/components/kanban/COMPONENT.md +7 -7
- package/src/components/kanban/examples/columns.tsx +4 -2
- package/src/components/kanban/examples/screen.module.css +1 -1
- package/src/components/kanban/examples/screen.tsx +50 -65
- package/src/components/kbd/COMPONENT.md +1 -1
- package/src/components/label/examples/examples.module.css +12 -1
- package/src/components/label/examples/overview.tsx +1 -1
- package/src/components/list/COMPONENT.md +26 -10
- package/src/components/list/examples/row-controls.tsx +80 -0
- package/src/components/list/examples/with-icon.tsx +23 -2
- package/src/components/login-form/COMPONENT.md +8 -7
- package/src/components/login-form/examples/states.tsx +12 -14
- package/src/components/media-viewer/examples/controlled.tsx +16 -16
- package/src/components/media-viewer/examples/examples.module.css +1 -3
- package/src/components/message/COMPONENT.md +30 -9
- package/src/components/message/examples/preview.tsx +28 -0
- package/src/components/message/examples/sticker.tsx +35 -0
- package/src/components/modal/COMPONENT.md +15 -3
- package/src/components/modal/examples/long-content.tsx +37 -18
- package/src/components/native-select/COMPONENT.md +1 -0
- package/src/components/notification/COMPONENT.md +1 -1
- package/src/components/pagination/COMPONENT.md +11 -3
- package/src/components/pagination/examples/controlled.tsx +2 -1
- package/src/components/popover/COMPONENT.md +3 -2
- package/src/components/popover/examples/width.tsx +13 -1
- package/src/components/radio/COMPONENT.md +2 -0
- package/src/components/rich-text/COMPONENT.md +93 -0
- package/src/components/rich-text/examples/overview.tsx +19 -0
- package/src/components/scroll-container/COMPONENT.md +8 -5
- package/src/components/segmented-control/COMPONENT.md +1 -0
- package/src/components/segmented-control/examples/in-form.tsx +1 -1
- package/src/components/select/COMPONENT.md +7 -3
- package/src/components/slider/COMPONENT.md +4 -3
- package/src/components/slider/examples/controlled.tsx +1 -1
- package/src/components/slider/examples/states.tsx +14 -10
- package/src/components/smart-filter/COMPONENT.md +13 -13
- package/src/components/smart-filter/examples/examples.module.css +3 -0
- package/src/components/smart-filter/examples/many-values.tsx +12 -8
- package/src/components/smart-filter/examples/sizes.tsx +7 -3
- package/src/components/sparkline/COMPONENT.md +1 -0
- package/src/components/sparkline/examples/curve.tsx +16 -11
- package/src/components/sparkline/examples/states.tsx +14 -10
- package/src/components/switch/COMPONENT.md +2 -1
- package/src/components/tabs/COMPONENT.md +1 -1
- package/src/components/tag-select/COMPONENT.md +1 -0
- package/src/components/textarea/COMPONENT.md +1 -0
- package/src/components/timeline/COMPONENT.md +3 -3
- package/src/components/timeline/examples/structure.tsx +2 -1
- package/src/components/typography/COMPONENT.md +2 -2
- package/src/layout/app-shell/COMPONENT.md +25 -38
- package/src/layout/app-shell/examples/footer.tsx +10 -10
- package/src/layout/app-shell/examples/overview.tsx +20 -22
- package/src/layout/app-shell/examples/screen.module.css +2 -2
- package/src/layout/app-shell/examples/screen.tsx +25 -30
- package/src/layout/app-shell/examples/template.tsx +13 -17
- package/src/layout/bottom-nav/COMPONENT.md +4 -3
- 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/page/COMPONENT.md +382 -0
- package/src/layout/page/examples/actions-collapse.tsx +45 -0
- package/src/layout/page/examples/collapse.tsx +68 -0
- package/src/layout/page/examples/examples.module.css +92 -0
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/grid.tsx +15 -15
- package/src/layout/page/examples/guard.tsx +87 -0
- package/src/{components/page-content → layout/page}/examples/list-detail.tsx +14 -14
- package/src/layout/page/examples/loading.tsx +57 -0
- package/src/layout/page/examples/narrow.tsx +75 -0
- package/src/layout/page/examples/overview.tsx +57 -0
- package/src/{components/page-content → layout/page}/examples/screen.module.css +1 -1
- package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.tsx +29 -19
- package/src/{components/page-content → 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 +7 -7
- package/src/layout/sidebar/COMPONENT.md +6 -4
- package/src/layout/sidebar/examples/dismiss.tsx +10 -7
- package/src/layout/sidebar/examples/narrow.tsx +11 -8
- package/src/styles/theme-dark.css +12 -10
- package/src/styles/theme-light.css +4 -0
- package/src/styles/tokens.css +3 -1
- package/dist/components/page-content/PageContent.d.ts +0 -192
- package/dist/components/page-toolbar/PageToolbar.d.ts +0 -55
- package/dist/components/scroll-container/useWheelToInline.d.ts +0 -10
- package/dist/layout/app-header/AppHeader.d.ts +0 -118
- package/dist/skill/reference/components/page-content/COMPONENT.md +0 -264
- package/dist/skill/reference/components/page-content/examples/examples.module.css +0 -56
- 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 -147
- 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 -43
- package/dist/skill/reference/components/page-toolbar/examples/without-search.tsx +0 -60
- package/dist/skill/reference/layout/app-header/COMPONENT.md +0 -187
- package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +0 -37
- package/dist/skill/reference/layout/app-header/examples/examples.module.css +0 -28
- package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +0 -67
- package/dist/skill/reference/layout/app-header/examples/narrow.tsx +0 -66
- 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/page-content/COMPONENT.md +0 -264
- package/src/components/page-content/examples/examples.module.css +0 -56
- 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 -147
- 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 -43
- package/src/components/page-toolbar/examples/without-search.tsx +0 -60
- package/src/layout/app-header/COMPONENT.md +0 -187
- package/src/layout/app-header/examples/breadcrumbs.tsx +0 -37
- package/src/layout/app-header/examples/examples.module.css +0 -28
- package/src/layout/app-header/examples/in-app-shell.tsx +0 -67
- package/src/layout/app-header/examples/narrow.tsx +0 -66
- 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,5 +1,5 @@
|
|
|
1
1
|
/** A phone app without a Sidebar: the bar in the footer stays at the bottom while main scrolls under it — `AppShell.Footer`. */
|
|
2
|
-
import {
|
|
2
|
+
import { AppShell, BottomNav, Icon, Page, Typography } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
@@ -25,21 +25,21 @@ export default function AppShellFooterExample() {
|
|
|
25
25
|
return (
|
|
26
26
|
<div className={styles.phone}>
|
|
27
27
|
<AppShell.Root fillViewport className={styles.shell}>
|
|
28
|
-
<AppHeader.Root>
|
|
29
|
-
<AppHeader.Start>
|
|
30
|
-
<AppHeader.Title>Счета</AppHeader.Title>
|
|
31
|
-
</AppHeader.Start>
|
|
32
|
-
</AppHeader.Root>
|
|
33
28
|
<AppShell.Main>
|
|
34
|
-
<
|
|
35
|
-
<
|
|
29
|
+
<Page.Root>
|
|
30
|
+
<Page.TopBar>
|
|
31
|
+
<Page.Heading>
|
|
32
|
+
<Page.Title>Счета</Page.Title>
|
|
33
|
+
</Page.Heading>
|
|
34
|
+
</Page.TopBar>
|
|
35
|
+
<Page.Body>
|
|
36
36
|
{INVOICES.map((invoice) => (
|
|
37
37
|
<Typography key={invoice} variant="body-m">
|
|
38
38
|
{invoice}
|
|
39
39
|
</Typography>
|
|
40
40
|
))}
|
|
41
|
-
</
|
|
42
|
-
</
|
|
41
|
+
</Page.Body>
|
|
42
|
+
</Page.Root>
|
|
43
43
|
</AppShell.Main>
|
|
44
44
|
<AppShell.Footer>
|
|
45
45
|
<BottomNav.Root>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** The app frame: Sidebar in the nav column, the page title and
|
|
2
|
-
import {
|
|
1
|
+
/** The app frame: Sidebar in the nav column, the page in main with its title and action in its top bar; only main scrolls — `fillViewport`. */
|
|
2
|
+
import { AppShell, Button, Icon, Page, Sidebar, Typography } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
@@ -35,30 +35,28 @@ export default function AppShellOverviewExample() {
|
|
|
35
35
|
</Sidebar.Content>
|
|
36
36
|
</Sidebar.Root>
|
|
37
37
|
</AppShell.Nav>
|
|
38
|
-
<AppHeader.Root>
|
|
39
|
-
<AppHeader.Start>
|
|
40
|
-
<AppHeader.Title>
|
|
41
|
-
Обзор
|
|
42
|
-
<AppHeader.Description>Октябрь · 37 сделок в работе</AppHeader.Description>
|
|
43
|
-
</AppHeader.Title>
|
|
44
|
-
</AppHeader.Start>
|
|
45
|
-
<AppHeader.Actions>
|
|
46
|
-
<Button.Root>
|
|
47
|
-
<Button.Icon>
|
|
48
|
-
<Icon name="action.add" />
|
|
49
|
-
</Button.Icon>
|
|
50
|
-
Новая сделка
|
|
51
|
-
</Button.Root>
|
|
52
|
-
</AppHeader.Actions>
|
|
53
|
-
</AppHeader.Root>
|
|
54
38
|
<AppShell.Main>
|
|
55
|
-
<
|
|
56
|
-
<
|
|
39
|
+
<Page.Root>
|
|
40
|
+
<Page.TopBar>
|
|
41
|
+
<Page.Heading>
|
|
42
|
+
<Page.Title>Обзор</Page.Title>
|
|
43
|
+
<Page.Description>Октябрь · 37 сделок в работе</Page.Description>
|
|
44
|
+
</Page.Heading>
|
|
45
|
+
<Page.Actions>
|
|
46
|
+
<Button.Root>
|
|
47
|
+
<Button.Icon>
|
|
48
|
+
<Icon name="action.add" />
|
|
49
|
+
</Button.Icon>
|
|
50
|
+
Новая сделка
|
|
51
|
+
</Button.Root>
|
|
52
|
+
</Page.Actions>
|
|
53
|
+
</Page.TopBar>
|
|
54
|
+
<Page.Body>
|
|
57
55
|
<Typography variant="body-m" tone="secondary">
|
|
58
56
|
Выручка за месяц — 4,8 млн ₽, на 12% больше, чем в сентябре.
|
|
59
57
|
</Typography>
|
|
60
|
-
</
|
|
61
|
-
</
|
|
58
|
+
</Page.Body>
|
|
59
|
+
</Page.Root>
|
|
62
60
|
</AppShell.Main>
|
|
63
61
|
</AppShell.Root>
|
|
64
62
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* App shell: the frame (Sidebar / BottomNav /
|
|
2
|
-
home page's blocks. The rhythm comes from
|
|
1
|
+
/* App shell: the frame (Sidebar / BottomNav / the page's top bar) lays itself out; this file only
|
|
2
|
+
places the home page's blocks. The rhythm comes from Page.Body, the tiles from Page.Grid. */
|
|
3
3
|
|
|
4
4
|
/* A list row: the text at the start, the meta (time, sum) at the end. */
|
|
5
5
|
.row {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/** The app frame for desktop and phone: the Sidebar rail on a wide screen, the floating BottomNav in the footer on a phone whose More item opens the Sidebar, the
|
|
1
|
+
/** The app frame for desktop and phone: the Sidebar rail on a wide screen, the floating BottomNav in the footer on a phone whose More item opens the Sidebar, the page top bar with the menu button it draws by itself, the page title with a line of data, and a simple home page that swaps with the current section — `fillViewport`, `scrollResetKey`, `useAppShellNav`. */
|
|
2
2
|
import {
|
|
3
|
-
AppHeader,
|
|
4
3
|
AppShell,
|
|
5
4
|
BottomNav,
|
|
6
5
|
Card,
|
|
@@ -8,7 +7,7 @@ import {
|
|
|
8
7
|
Crossfade,
|
|
9
8
|
Icon,
|
|
10
9
|
type IconName,
|
|
11
|
-
|
|
10
|
+
Page,
|
|
12
11
|
Sidebar,
|
|
13
12
|
Typography,
|
|
14
13
|
useAppShellNav,
|
|
@@ -168,22 +167,6 @@ export default function AppShellScreenExample() {
|
|
|
168
167
|
<Sidebar.Footer>{MORE.map(sidebarItem)}</Sidebar.Footer>
|
|
169
168
|
</Sidebar.Root>
|
|
170
169
|
}
|
|
171
|
-
header={
|
|
172
|
-
<AppHeader.Root>
|
|
173
|
-
{/* On a phone the header leads with the menu button that opens the Sidebar by itself. */}
|
|
174
|
-
<AppHeader.Start>
|
|
175
|
-
{/* Every page titles itself here: the only h1 and a line of data under it. */}
|
|
176
|
-
<AppHeader.Title>
|
|
177
|
-
{section.label}
|
|
178
|
-
<AppHeader.Description>
|
|
179
|
-
{current === "today"
|
|
180
|
-
? `Среда, 14 октября · открытых задач: ${openTasks}`
|
|
181
|
-
: PAGES[current].description}
|
|
182
|
-
</AppHeader.Description>
|
|
183
|
-
</AppHeader.Title>
|
|
184
|
-
</AppHeader.Start>
|
|
185
|
-
</AppHeader.Root>
|
|
186
|
-
}
|
|
187
170
|
footer={
|
|
188
171
|
<BottomNav.Root floating>
|
|
189
172
|
{MAIN.map((item) => (
|
|
@@ -202,23 +185,35 @@ export default function AppShellScreenExample() {
|
|
|
202
185
|
</BottomNav.Root>
|
|
203
186
|
}
|
|
204
187
|
>
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
<
|
|
208
|
-
|
|
188
|
+
<Page.Root>
|
|
189
|
+
{/* On a phone the bar leads with the menu button that opens the Sidebar by itself. */}
|
|
190
|
+
<Page.TopBar>
|
|
191
|
+
{/* Every page titles itself here: the only h1 and a line of data under it. */}
|
|
192
|
+
<Page.Heading>
|
|
193
|
+
<Page.Title>{section.label}</Page.Title>
|
|
194
|
+
<Page.Description>
|
|
195
|
+
{current === "today"
|
|
196
|
+
? `Среда, 14 октября · открытых задач: ${openTasks}`
|
|
197
|
+
: PAGES[current].description}
|
|
198
|
+
</Page.Description>
|
|
199
|
+
</Page.Heading>
|
|
200
|
+
</Page.TopBar>
|
|
201
|
+
{/* Another section is another page: it cross-fades instead of flipping. */}
|
|
202
|
+
<Crossfade state={current}>
|
|
203
|
+
<Page.Body>
|
|
209
204
|
{current === "today" ? (
|
|
210
205
|
<>
|
|
211
|
-
<
|
|
206
|
+
<Page.Grid>
|
|
212
207
|
{KPIS.map((kpi) => (
|
|
213
|
-
<
|
|
208
|
+
<Page.Cell key={kpi.label} span={4}>
|
|
214
209
|
<Card.Root variant="stat-trend">
|
|
215
210
|
<Card.Label>{kpi.label}</Card.Label>
|
|
216
211
|
<Card.Value>{kpi.value}</Card.Value>
|
|
217
212
|
<Card.Delta tone={kpi.tone}>{kpi.delta}</Card.Delta>
|
|
218
213
|
</Card.Root>
|
|
219
|
-
</
|
|
214
|
+
</Page.Cell>
|
|
220
215
|
))}
|
|
221
|
-
</
|
|
216
|
+
</Page.Grid>
|
|
222
217
|
<Card.Root variant="list">
|
|
223
218
|
<Card.Header>
|
|
224
219
|
<Card.Title as="h2">Задачи на сегодня</Card.Title>
|
|
@@ -260,9 +255,9 @@ export default function AppShellScreenExample() {
|
|
|
260
255
|
</Card.List>
|
|
261
256
|
</Card.Root>
|
|
262
257
|
)}
|
|
263
|
-
</
|
|
264
|
-
</
|
|
265
|
-
</
|
|
258
|
+
</Page.Body>
|
|
259
|
+
</Crossfade>
|
|
260
|
+
</Page.Root>
|
|
266
261
|
</AppShell.Template>
|
|
267
262
|
);
|
|
268
263
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Root, nav,
|
|
2
|
-
import {
|
|
1
|
+
/** Root, nav, main and footer in one component; main scrolls back to the top whenever the page changes — `AppShell.Template`, `scrollResetKey`. */
|
|
2
|
+
import { AppShell, Icon, Page, Sidebar, Typography } from "prime-ui-kit";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
5
|
import styles from "./examples.module.css";
|
|
@@ -33,7 +33,7 @@ export default function AppShellTemplateExample() {
|
|
|
33
33
|
className={styles.shell}
|
|
34
34
|
scrollResetKey={pageId}
|
|
35
35
|
nav={
|
|
36
|
-
<Sidebar.Root
|
|
36
|
+
<Sidebar.Root>
|
|
37
37
|
<Sidebar.Content>
|
|
38
38
|
{PAGES.map((item) => (
|
|
39
39
|
<Sidebar.Item
|
|
@@ -50,24 +50,20 @@ export default function AppShellTemplateExample() {
|
|
|
50
50
|
</Sidebar.Content>
|
|
51
51
|
</Sidebar.Root>
|
|
52
52
|
}
|
|
53
|
-
header={
|
|
54
|
-
<AppHeader.Root>
|
|
55
|
-
<AppHeader.Start>
|
|
56
|
-
<AppHeader.Title>
|
|
57
|
-
{page.label}
|
|
58
|
-
<AppHeader.Description>{page.text}</AppHeader.Description>
|
|
59
|
-
</AppHeader.Title>
|
|
60
|
-
</AppHeader.Start>
|
|
61
|
-
</AppHeader.Root>
|
|
62
|
-
}
|
|
63
53
|
>
|
|
64
|
-
<
|
|
65
|
-
<
|
|
54
|
+
<Page.Root>
|
|
55
|
+
<Page.TopBar>
|
|
56
|
+
<Page.Heading>
|
|
57
|
+
<Page.Title>{page.label}</Page.Title>
|
|
58
|
+
<Page.Description>{page.text}</Page.Description>
|
|
59
|
+
</Page.Heading>
|
|
60
|
+
</Page.TopBar>
|
|
61
|
+
<Page.Body>
|
|
66
62
|
<Typography variant="body-m" tone="secondary">
|
|
67
63
|
{page.note}
|
|
68
64
|
</Typography>
|
|
69
|
-
</
|
|
70
|
-
</
|
|
65
|
+
</Page.Body>
|
|
66
|
+
</Page.Root>
|
|
71
67
|
</AppShell.Template>
|
|
72
68
|
</div>
|
|
73
69
|
);
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
## When not to use
|
|
13
13
|
- More than six destinations or nested sections → use [Sidebar](../sidebar/COMPONENT.md) (off-canvas on a phone), put the rest under «Ещё».
|
|
14
14
|
- Switching views inside one page → use [Tabs](../../components/tabs/COMPONENT.md) or [SegmentedControl](../../components/segmented-control/COMPONENT.md).
|
|
15
|
-
- Several actions (create, filter, export) → use [Button](../../components/button/COMPONENT.md) in the page
|
|
15
|
+
- Several actions (create, filter, export) → use [Button](../../components/button/COMPONENT.md) in the page's top bar ([Page](../page/COMPONENT.md): `Page.Actions`); the bar holds at most one main action (`BottomNav.Action`).
|
|
16
16
|
|
|
17
17
|
## Import
|
|
18
18
|
```tsx
|
|
@@ -107,6 +107,7 @@ Without flags the bar is flat at the screen edge on the surface, with a faint to
|
|
|
107
107
|
| State | Driven by | DOM |
|
|
108
108
|
|---|---|---|
|
|
109
109
|
| current | `current` or a router link setting `aria-current` | `aria-current="page"` on the item; flat, its glyph on a `fill-muted` pill |
|
|
110
|
+
| held | a `Page.Guard` that is `busy` or `dirty` on the page | a press on an item stops before it navigates (a router link included); `dirty` asks first, then repeats it |
|
|
110
111
|
| pressed | pointer down | the glyph scales to `--prime-motion-press-scale-compact` (`internal/press`), flat and floating |
|
|
111
112
|
| overflow | items wider than the bar | the items scroll inside the bar with faded edges; no label is cut |
|
|
112
113
|
| focus | keyboard | focus ring inside the item edge |
|
|
@@ -162,14 +163,14 @@ Motion: the color of the icon and the label and the flat pill change over `fast`
|
|
|
162
163
|
| [floating.tsx](examples/floating.tsx) | A glass capsule over the page across the width: the client list scrolls under its blur, the selection glides to a tapped section, with labels or icons alone — `floating`, `iconOnly`. |
|
|
163
164
|
| [floating-action.tsx](examples/floating-action.tsx) | A round action beside the glass capsule for the screen's main action, with labels or icons alone — `BottomNav.Action`, `floating`. |
|
|
164
165
|
| [router.tsx](examples/router.tsx) | A router link as the item: the router marks the open section and the item shows it as current; render it inside a router — `asChild`. |
|
|
165
|
-
| [in-app-shell.tsx](examples/in-app-shell.tsx) | The app frame on a phone: the
|
|
166
|
+
| [in-app-shell.tsx](examples/in-app-shell.tsx) | The app frame on a phone: the page with its top bar and the bar in the footer, which gives way to the Sidebar rail once one is on screen — `AppShell.Footer`. |
|
|
166
167
|
|
|
167
168
|
## Mistakes
|
|
168
169
|
- Seven or more items → keep 2–6; the rest goes to a «Ещё» section or Sidebar.
|
|
169
170
|
- Long labels («Управление заказами») → one word; a long label widens its column and the bar scrolls.
|
|
170
171
|
- `iconOnly` with icons that need a caption to be understood → keep the labels.
|
|
171
172
|
- A floating bar outside a positioned container → it sits at the bottom of the nearest positioned ancestor; put it in `AppShell.Footer`.
|
|
172
|
-
- An action as an item («Создать» among the sections) → items navigate; put the screen's one main action in `BottomNav.Action` beside the bar, the rest in the page
|
|
173
|
+
- An action as an item («Создать» among the sections) → items navigate; put the screen's one main action in `BottomNav.Action` beside the bar, the rest in the page's top bar.
|
|
173
174
|
- `BottomNav.Action` without `aria-label` → the button has no name; it is required.
|
|
174
175
|
- The bar outside `AppShell.Footer` (in Main, Root or `position: fixed` on the page) → it never leaves and shows next to the Sidebar on a desktop; put it in `AppShell.Footer` (or the Template `footer` prop).
|
|
175
176
|
- Hiding the bar with your own media query → the shell already hides the footer while the Sidebar rail is on screen.
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
/** A round action beside the glass capsule for the screen's main action, with labels or icons alone — `BottomNav.Action`, `floating`. */
|
|
2
|
-
import {
|
|
3
|
-
AppHeader,
|
|
4
|
-
AppShell,
|
|
5
|
-
Avatar,
|
|
6
|
-
BottomNav,
|
|
7
|
-
Icon,
|
|
8
|
-
PageContent,
|
|
9
|
-
Switch,
|
|
10
|
-
Typography,
|
|
11
|
-
} from "prime-ui-kit";
|
|
2
|
+
import { AppShell, Avatar, BottomNav, Icon, Page, Switch, Typography } from "prime-ui-kit";
|
|
12
3
|
import * as React from "react";
|
|
13
4
|
|
|
14
5
|
import styles from "./examples.module.css";
|
|
@@ -37,14 +28,14 @@ export default function BottomNavFloatingActionExample() {
|
|
|
37
28
|
return (
|
|
38
29
|
<div className={styles.phone}>
|
|
39
30
|
<AppShell.Root fillViewport className={styles.shell}>
|
|
40
|
-
<AppHeader.Root>
|
|
41
|
-
<AppHeader.Start>
|
|
42
|
-
<AppHeader.Title>Клиенты</AppHeader.Title>
|
|
43
|
-
</AppHeader.Start>
|
|
44
|
-
</AppHeader.Root>
|
|
45
31
|
<AppShell.Main>
|
|
46
|
-
<
|
|
47
|
-
<
|
|
32
|
+
<Page.Root>
|
|
33
|
+
<Page.TopBar>
|
|
34
|
+
<Page.Heading>
|
|
35
|
+
<Page.Title>Клиенты</Page.Title>
|
|
36
|
+
</Page.Heading>
|
|
37
|
+
</Page.TopBar>
|
|
38
|
+
<Page.Body>
|
|
48
39
|
<div className={styles.options}>
|
|
49
40
|
<Switch.Root checked={iconOnly} onCheckedChange={setIconOnly}>
|
|
50
41
|
<Switch.Label>Только иконки</Switch.Label>
|
|
@@ -63,8 +54,8 @@ export default function BottomNavFloatingActionExample() {
|
|
|
63
54
|
</div>
|
|
64
55
|
</div>
|
|
65
56
|
))}
|
|
66
|
-
</
|
|
67
|
-
</
|
|
57
|
+
</Page.Body>
|
|
58
|
+
</Page.Root>
|
|
68
59
|
</AppShell.Main>
|
|
69
60
|
<AppShell.Footer>
|
|
70
61
|
<BottomNav.Root floating iconOnly={iconOnly}>
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
/** A glass capsule over the page across the width: the client list scrolls under its blur, the selection glides to a tapped section, with labels or icons alone — `floating`, `iconOnly`. */
|
|
2
|
-
import {
|
|
3
|
-
AppHeader,
|
|
4
|
-
AppShell,
|
|
5
|
-
Avatar,
|
|
6
|
-
BottomNav,
|
|
7
|
-
Icon,
|
|
8
|
-
PageContent,
|
|
9
|
-
Switch,
|
|
10
|
-
Typography,
|
|
11
|
-
} from "prime-ui-kit";
|
|
2
|
+
import { AppShell, Avatar, BottomNav, Icon, Page, Switch, Typography } from "prime-ui-kit";
|
|
12
3
|
import * as React from "react";
|
|
13
4
|
|
|
14
5
|
import styles from "./examples.module.css";
|
|
@@ -38,14 +29,14 @@ export default function BottomNavFloatingExample() {
|
|
|
38
29
|
return (
|
|
39
30
|
<div className={styles.phone}>
|
|
40
31
|
<AppShell.Root fillViewport className={styles.shell}>
|
|
41
|
-
<AppHeader.Root>
|
|
42
|
-
<AppHeader.Start>
|
|
43
|
-
<AppHeader.Title>Клиенты</AppHeader.Title>
|
|
44
|
-
</AppHeader.Start>
|
|
45
|
-
</AppHeader.Root>
|
|
46
32
|
<AppShell.Main>
|
|
47
|
-
<
|
|
48
|
-
<
|
|
33
|
+
<Page.Root>
|
|
34
|
+
<Page.TopBar>
|
|
35
|
+
<Page.Heading>
|
|
36
|
+
<Page.Title>Клиенты</Page.Title>
|
|
37
|
+
</Page.Heading>
|
|
38
|
+
</Page.TopBar>
|
|
39
|
+
<Page.Body>
|
|
49
40
|
<div className={styles.options}>
|
|
50
41
|
<Switch.Root checked={iconOnly} onCheckedChange={setIconOnly}>
|
|
51
42
|
<Switch.Label>Только иконки</Switch.Label>
|
|
@@ -64,8 +55,8 @@ export default function BottomNavFloatingExample() {
|
|
|
64
55
|
</div>
|
|
65
56
|
</div>
|
|
66
57
|
))}
|
|
67
|
-
</
|
|
68
|
-
</
|
|
58
|
+
</Page.Body>
|
|
59
|
+
</Page.Root>
|
|
69
60
|
</AppShell.Main>
|
|
70
61
|
<AppShell.Footer>
|
|
71
62
|
<BottomNav.Root floating iconOnly={iconOnly}>
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
/** The app frame on a phone: the
|
|
2
|
-
import {
|
|
3
|
-
AppHeader,
|
|
4
|
-
AppShell,
|
|
5
|
-
BottomNav,
|
|
6
|
-
Button,
|
|
7
|
-
Icon,
|
|
8
|
-
PageContent,
|
|
9
|
-
Typography,
|
|
10
|
-
} from "prime-ui-kit";
|
|
1
|
+
/** The app frame on a phone: the page with its top bar and the bar in the footer, which gives way to the Sidebar rail once one is on screen — `AppShell.Footer`. */
|
|
2
|
+
import { AppShell, BottomNav, Button, Icon, Page, Typography } from "prime-ui-kit";
|
|
11
3
|
|
|
12
4
|
import styles from "./examples.module.css";
|
|
13
5
|
|
|
@@ -24,14 +16,14 @@ export default function BottomNavInAppShellExample() {
|
|
|
24
16
|
return (
|
|
25
17
|
<div className={styles.phone}>
|
|
26
18
|
<AppShell.Root fillViewport className={styles.shell}>
|
|
27
|
-
<AppHeader.Root>
|
|
28
|
-
<AppHeader.Start>
|
|
29
|
-
<AppHeader.Title>Заказы</AppHeader.Title>
|
|
30
|
-
</AppHeader.Start>
|
|
31
|
-
</AppHeader.Root>
|
|
32
19
|
<AppShell.Main>
|
|
33
|
-
<
|
|
34
|
-
<
|
|
20
|
+
<Page.Root>
|
|
21
|
+
<Page.TopBar>
|
|
22
|
+
<Page.Heading>
|
|
23
|
+
<Page.Title>Заказы</Page.Title>
|
|
24
|
+
</Page.Heading>
|
|
25
|
+
</Page.TopBar>
|
|
26
|
+
<Page.Body>
|
|
35
27
|
{ORDERS.map((order) => (
|
|
36
28
|
<Typography key={order} variant="body-m">
|
|
37
29
|
{order}
|
|
@@ -43,8 +35,8 @@ export default function BottomNavInAppShellExample() {
|
|
|
43
35
|
</Button.Icon>
|
|
44
36
|
Новый заказ
|
|
45
37
|
</Button.Root>
|
|
46
|
-
</
|
|
47
|
-
</
|
|
38
|
+
</Page.Body>
|
|
39
|
+
</Page.Root>
|
|
48
40
|
</AppShell.Main>
|
|
49
41
|
<AppShell.Footer>
|
|
50
42
|
<BottomNav.Root>
|