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,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** The orders page's tools in its top bar: sections with counts, search and filter, the period, in the order written; the active filters on a line under everything — `Page.Tools`, `Page.Chips`. */
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
Icon,
|
|
5
|
-
|
|
5
|
+
Page,
|
|
6
6
|
SegmentedControl,
|
|
7
7
|
Select,
|
|
8
8
|
SmartFilter,
|
|
@@ -11,17 +11,17 @@ import {
|
|
|
11
11
|
} from "prime-ui-kit";
|
|
12
12
|
import * as React from "react";
|
|
13
13
|
|
|
14
|
-
import styles from "./examples.module.css";
|
|
15
|
-
|
|
16
14
|
const SECTIONS = [
|
|
17
15
|
{ value: "all", label: "Все", count: 128 },
|
|
18
16
|
{ value: "active", label: "В работе", count: 12 },
|
|
19
17
|
{ value: "done", label: "Доставлены", count: 96 },
|
|
18
|
+
{ value: "cancelled", label: "Отменены", count: 20 },
|
|
20
19
|
];
|
|
21
20
|
|
|
22
21
|
const PERIODS = [
|
|
23
22
|
{ value: "7d", label: "7 дней" },
|
|
24
23
|
{ value: "30d", label: "30 дней" },
|
|
24
|
+
{ value: "quarter", label: "Квартал" },
|
|
25
25
|
];
|
|
26
26
|
|
|
27
27
|
const FIELDS: SmartFilterField[] = [
|
|
@@ -31,38 +31,42 @@ const FIELDS: SmartFilterField[] = [
|
|
|
31
31
|
options: [
|
|
32
32
|
{ value: "msk", label: "Москва" },
|
|
33
33
|
{ value: "spb", label: "Санкт-Петербург" },
|
|
34
|
+
{ value: "kzn", label: "Казань" },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: "payment",
|
|
39
|
+
label: "Оплата",
|
|
40
|
+
options: [
|
|
41
|
+
{ value: "card", label: "Картой" },
|
|
42
|
+
{ value: "invoice", label: "По счёту" },
|
|
34
43
|
],
|
|
35
44
|
},
|
|
36
45
|
];
|
|
37
46
|
|
|
38
|
-
export default function
|
|
47
|
+
export default function PageToolsExample() {
|
|
39
48
|
const [section, setSection] = React.useState("all");
|
|
40
|
-
const [period, setPeriod] = React.useState("
|
|
49
|
+
const [period, setPeriod] = React.useState("30d");
|
|
41
50
|
const [filter, setFilter] = React.useState<SmartFilterValue>({
|
|
42
51
|
city: { include: ["msk"], exclude: [] },
|
|
43
52
|
});
|
|
44
53
|
const [search, setSearch] = React.useState("");
|
|
45
54
|
|
|
46
55
|
return (
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
>
|
|
55
|
-
<
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
</
|
|
59
|
-
<
|
|
60
|
-
<SegmentedControl.Root
|
|
61
|
-
fullWidth
|
|
62
|
-
value={section}
|
|
63
|
-
onValueChange={setSection}
|
|
64
|
-
aria-label="Раздел"
|
|
65
|
-
>
|
|
56
|
+
<SmartFilter.Root
|
|
57
|
+
fields={FIELDS}
|
|
58
|
+
value={filter}
|
|
59
|
+
onValueChange={setFilter}
|
|
60
|
+
search={search}
|
|
61
|
+
onSearchChange={setSearch}
|
|
62
|
+
>
|
|
63
|
+
<Page.Root>
|
|
64
|
+
<Page.TopBar sticky={false}>
|
|
65
|
+
<Page.Heading>
|
|
66
|
+
<Page.Title>Заказы</Page.Title>
|
|
67
|
+
</Page.Heading>
|
|
68
|
+
<Page.Tools aria-label="Заказы">
|
|
69
|
+
<SegmentedControl.Root value={section} onValueChange={setSection} aria-label="Раздел">
|
|
66
70
|
{SECTIONS.map((item) => (
|
|
67
71
|
<SegmentedControl.Item key={item.value} value={item.value}>
|
|
68
72
|
{item.label}
|
|
@@ -70,8 +74,7 @@ export default function PageToolbarNarrowExample() {
|
|
|
70
74
|
</SegmentedControl.Item>
|
|
71
75
|
))}
|
|
72
76
|
</SegmentedControl.Root>
|
|
73
|
-
|
|
74
|
-
<PageToolbar.View>
|
|
77
|
+
<SmartFilter.Toolbar />
|
|
75
78
|
<Select.Root value={period} onValueChange={setPeriod}>
|
|
76
79
|
<Select.Trigger aria-label="Период">
|
|
77
80
|
<Select.TriggerIcon>
|
|
@@ -87,20 +90,20 @@ export default function PageToolbarNarrowExample() {
|
|
|
87
90
|
))}
|
|
88
91
|
</Select.Content>
|
|
89
92
|
</Select.Root>
|
|
90
|
-
</
|
|
91
|
-
<
|
|
93
|
+
</Page.Tools>
|
|
94
|
+
<Page.Actions>
|
|
92
95
|
<Button.Root>
|
|
93
96
|
<Button.Icon>
|
|
94
97
|
<Icon name="action.add" />
|
|
95
98
|
</Button.Icon>
|
|
96
99
|
Новый заказ
|
|
97
100
|
</Button.Root>
|
|
98
|
-
</
|
|
99
|
-
<
|
|
101
|
+
</Page.Actions>
|
|
102
|
+
<Page.Chips>
|
|
100
103
|
<SmartFilter.Chips />
|
|
101
|
-
</
|
|
102
|
-
</
|
|
103
|
-
</
|
|
104
|
-
</
|
|
104
|
+
</Page.Chips>
|
|
105
|
+
</Page.TopBar>
|
|
106
|
+
</Page.Root>
|
|
107
|
+
</SmartFilter.Root>
|
|
105
108
|
);
|
|
106
109
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/** A nested record in the top bar: the path ending in the title, a line of data, the page's tools and its buttons — `Page.TopBar`, `Page.Heading`, `Page.Tools`, `Page.Actions`. */
|
|
2
|
+
import { Breadcrumb, Button, Icon, Input, Page, SegmentedControl } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
const SECTIONS = [
|
|
6
|
+
{ value: "all", label: "Все" },
|
|
7
|
+
{ value: "mine", label: "Мои" },
|
|
8
|
+
{ value: "overdue", label: "Просрочены" },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
const VIEWS = [
|
|
12
|
+
{ value: "board", label: "Доска" },
|
|
13
|
+
{ value: "list", label: "Список" },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
export default function PageTopBarExample() {
|
|
17
|
+
const [section, setSection] = React.useState("all");
|
|
18
|
+
const [view, setView] = React.useState("board");
|
|
19
|
+
const [query, setQuery] = React.useState("");
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<Page.Root>
|
|
23
|
+
<Page.TopBar sticky={false}>
|
|
24
|
+
<Page.Heading>
|
|
25
|
+
<Breadcrumb.Root>
|
|
26
|
+
<Breadcrumb.Item href="#clients">Клиенты</Breadcrumb.Item>
|
|
27
|
+
<Breadcrumb.Item href="#north">ООО «Север»</Breadcrumb.Item>
|
|
28
|
+
</Breadcrumb.Root>
|
|
29
|
+
<Page.Title>Сделка № 2026-418</Page.Title>
|
|
30
|
+
<Page.Description>7 в работе · 6,5 млн ₽ · обновлено 9:40</Page.Description>
|
|
31
|
+
</Page.Heading>
|
|
32
|
+
<Page.Tools aria-label="Сделка № 2026-418">
|
|
33
|
+
<SegmentedControl.Root value={section} onValueChange={setSection} aria-label="Раздел">
|
|
34
|
+
{SECTIONS.map((item) => (
|
|
35
|
+
<SegmentedControl.Item key={item.value} value={item.value}>
|
|
36
|
+
{item.label}
|
|
37
|
+
</SegmentedControl.Item>
|
|
38
|
+
))}
|
|
39
|
+
</SegmentedControl.Root>
|
|
40
|
+
<Input.Root>
|
|
41
|
+
<Input.Wrapper>
|
|
42
|
+
<Input.Icon side="start">
|
|
43
|
+
<Icon name="action.search" tone="secondary" />
|
|
44
|
+
</Input.Icon>
|
|
45
|
+
<Input.Field
|
|
46
|
+
type="search"
|
|
47
|
+
aria-label="Поиск по задачам"
|
|
48
|
+
placeholder="Поиск"
|
|
49
|
+
value={query}
|
|
50
|
+
onValueChange={setQuery}
|
|
51
|
+
/>
|
|
52
|
+
</Input.Wrapper>
|
|
53
|
+
</Input.Root>
|
|
54
|
+
<SegmentedControl.Root value={view} onValueChange={setView} aria-label="Вид">
|
|
55
|
+
{VIEWS.map((item) => (
|
|
56
|
+
<SegmentedControl.Item key={item.value} value={item.value}>
|
|
57
|
+
{item.label}
|
|
58
|
+
</SegmentedControl.Item>
|
|
59
|
+
))}
|
|
60
|
+
</SegmentedControl.Root>
|
|
61
|
+
</Page.Tools>
|
|
62
|
+
<Page.Actions>
|
|
63
|
+
<Button.Root variant="soft" tone="neutral">
|
|
64
|
+
<Button.Icon>
|
|
65
|
+
<Icon name="action.forward" />
|
|
66
|
+
</Button.Icon>
|
|
67
|
+
Поделиться
|
|
68
|
+
</Button.Root>
|
|
69
|
+
<Button.Root variant="soft" tone="neutral">
|
|
70
|
+
<Button.Icon>
|
|
71
|
+
<Icon name="action.download" />
|
|
72
|
+
</Button.Icon>
|
|
73
|
+
Экспорт
|
|
74
|
+
</Button.Root>
|
|
75
|
+
<Button.Root>
|
|
76
|
+
<Button.Icon>
|
|
77
|
+
<Icon name="action.add" />
|
|
78
|
+
</Button.Icon>
|
|
79
|
+
Новая сделка
|
|
80
|
+
</Button.Root>
|
|
81
|
+
</Page.Actions>
|
|
82
|
+
</Page.TopBar>
|
|
83
|
+
</Page.Root>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** The same page
|
|
2
|
-
import { Card,
|
|
1
|
+
/** The same page at three caps: the whole main, a wide dashboard column, a reading column — `maxWidth`. */
|
|
2
|
+
import { Card, Page, Typography } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
@@ -9,13 +9,13 @@ const WIDTHS = [
|
|
|
9
9
|
{ value: "readable", text: "Условия использования: не шире колонки для чтения, по центру." },
|
|
10
10
|
] as const;
|
|
11
11
|
|
|
12
|
-
export default function
|
|
12
|
+
export default function PageVariantsExample() {
|
|
13
13
|
return (
|
|
14
14
|
<>
|
|
15
15
|
{WIDTHS.map(({ value, text }) => (
|
|
16
16
|
<div key={value} className={styles.main}>
|
|
17
|
-
<
|
|
18
|
-
<
|
|
17
|
+
<Page.Root maxWidth={value}>
|
|
18
|
+
<Page.Body>
|
|
19
19
|
<Card.Root>
|
|
20
20
|
<Card.Body>
|
|
21
21
|
<Typography variant="body-s" tone="secondary">
|
|
@@ -23,8 +23,8 @@ export default function PageContentVariantsExample() {
|
|
|
23
23
|
</Typography>
|
|
24
24
|
</Card.Body>
|
|
25
25
|
</Card.Root>
|
|
26
|
-
</
|
|
27
|
-
</
|
|
26
|
+
</Page.Body>
|
|
27
|
+
</Page.Root>
|
|
28
28
|
</div>
|
|
29
29
|
))}
|
|
30
30
|
</>
|
|
@@ -89,7 +89,7 @@ useSidebar() state hook for custom parts inside Root (useA
|
|
|
89
89
|
| `onModeChange` | `(mode: SidebarMode) => void` | — | Called with the new mode (Toggle, `useSidebar().setMode`). |
|
|
90
90
|
| `open` | `boolean` | — | Off-canvas panel on narrow viewports (controlled). |
|
|
91
91
|
| `defaultOpen` | `boolean` | `false` | Initial off-canvas state (uncontrolled). |
|
|
92
|
-
| `onOpenChange` | `(open: boolean) => void` | — | Off-canvas open / close: Toggle, the
|
|
92
|
+
| `onOpenChange` | `(open: boolean) => void` | — | Off-canvas open / close: Toggle, the menu button of `Page.TopBar`, scrim, Escape, an activated item, leaving the narrow viewport. |
|
|
93
93
|
| `offCanvas` | `"auto" \| "always" \| "never"` | `"auto"` | When the rail becomes an off-canvas panel opened by `open`: `auto` — below 768px (viewport); `always` — at any width; `never` — always a rail. |
|
|
94
94
|
| `closeOnOutsideClick` | `boolean` | `true` | A press on the scrim (outside the off-canvas panel) closes the panel. |
|
|
95
95
|
| `closeOnEscape` | `boolean` | `true` | Escape closes the off-canvas panel. |
|
|
@@ -294,13 +294,15 @@ The rail width does not depend on `size`.
|
|
|
294
294
|
| `closeOnEscape` (Root) | Escape closes the off-canvas panel | default; turn off with `closeOnOutsideClick` for a panel only its toggle closes | on |
|
|
295
295
|
| `asChild` (ItemAction) | the row action is the consumer's link with the button look | the action opens a page or `mailto:` | off |
|
|
296
296
|
|
|
297
|
-
Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header, or `Sidebar.Toggle` in the footer for a rail without a brand. Inside an `AppShell` the Sidebar publishes its navigation to the shell: on phones (`offCanvas="auto"`) or always (`offCanvas="always"`) the `
|
|
297
|
+
Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header, or `Sidebar.Toggle` in the footer for a rail without a brand. Inside an `AppShell` the Sidebar publishes its navigation to the shell: on phones (`offCanvas="auto"`) or always (`offCanvas="always"`) the page's `Page.TopBar` draws the menu button that opens the panel by itself, a `Sidebar.Toggle` outside the rail brings back a hidden one, and other triggers (a BottomNav «Ещё») read `useAppShellNav()`. One current item at a time; give every top-level item an icon when the rail can go compact (child items need none).
|
|
298
298
|
|
|
299
299
|
## States
|
|
300
300
|
| State | Driven by | DOM |
|
|
301
301
|
|---|---|---|
|
|
302
|
+
| held | a `Page.Guard` that is `busy` or `dirty` on the page | a press on `Sidebar.Item` or `Sidebar.Brand` stops before it navigates (a router link included) and the panel stays; `dirty` asks first, then repeats it |
|
|
302
303
|
| mode | `mode` / `defaultMode` | Root `data-mode`, `data-panel-mode` (the last visible mode while hidden); `<nav inert>` while hidden |
|
|
303
304
|
| off-canvas | `offCanvas="always"`, or `"auto"` + viewport < 768px | Root `data-off-canvas`, `data-state="open" \| "closed"`; `<nav inert>` while closed; the kit scrim (`role="presentation"`) while open; in an `AppShell` the shell Root `data-off-canvas` |
|
|
305
|
+
| placing | the viewport crossed the off-canvas breakpoint (not a person's choice) | Root `data-placing` for one painted frame: the rail lands at its new width with no motion (no growing from 0, no folding rows, no sliding panel) |
|
|
304
306
|
| dismiss | `closeOnOutsideClick`, `closeOnEscape` | a press on the scrim / Escape closes the open panel, or not |
|
|
305
307
|
| current | `current` or a router's `aria-current` | Item `aria-current="page"`, `data-state="active"` |
|
|
306
308
|
| active path | a child of a Sub (or an item of a Group) is current | SubTrigger (or the `…` row of a folded Group) `data-active-path`; a closed Sub opens, a closed Group opens off the compact rail |
|
|
@@ -364,7 +366,7 @@ Leaving the narrow viewport closes the off-canvas panel; activating an item (a l
|
|
|
364
366
|
- A row action is its own button next to the item (never nested), named by `label` with a tooltip.
|
|
365
367
|
- The account avatar is hidden from screen readers; the name and the muted line name the button.
|
|
366
368
|
- Off-canvas: a decorative scrim (a press on it is a press outside, `closeOnOutsideClick`), focus trap and Escape (`closeOnEscape`); focus returns to the opener.
|
|
367
|
-
- Toggle, the
|
|
369
|
+
- Toggle, the menu button of `Page.TopBar` and `useAppShellNav` triggers: `aria-expanded`, `aria-controls` → the `<nav>`, label from `labels`.
|
|
368
370
|
|
|
369
371
|
### Labels
|
|
370
372
|
<!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
|
|
@@ -392,7 +394,7 @@ Leaving the narrow viewport closes the off-canvas panel; activating an item (a l
|
|
|
392
394
|
| [dismiss.tsx](examples/dismiss.tsx) | An off-canvas panel only its own toggle closes: a press on the scrim and Escape leave it open, a picked item still closes it — `closeOnOutsideClick`, `closeOnEscape`. |
|
|
393
395
|
| [controlled.tsx](examples/controlled.tsx) | The parent owns the rail mode: expanded, an icon rail with tooltips, or hidden; every switch is one synchronous movement — `mode`, `onModeChange`. |
|
|
394
396
|
| [controlled-open.tsx](examples/controlled-open.tsx) | Navigation behind a menu button at any width: the parent opens the off-canvas panel, the scrim, Escape, the header toggle or a navigation closes it — `offCanvas`, `open`, `onOpenChange`. |
|
|
395
|
-
| [narrow.tsx](examples/narrow.tsx) | Below 768px the rail leaves the layout and slides in over the page from the menu button the
|
|
397
|
+
| [narrow.tsx](examples/narrow.tsx) | Below 768px the rail leaves the layout and slides in over the page from the menu button the page top bar draws by itself; from 768px it is the rail again, and the button leaves — `AppShell`, `labels`. |
|
|
396
398
|
|
|
397
399
|
## Mistakes
|
|
398
400
|
- `icon={…}` / `badge={…}` props → use the `Sidebar.ItemIcon` and `Sidebar.ItemCount` parts.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** An off-canvas panel only its own toggle closes: a press on the scrim and Escape leave it open, a picked item still closes it — `closeOnOutsideClick`, `closeOnEscape`. */
|
|
2
|
-
import {
|
|
2
|
+
import { AppShell, Icon, Page, Sidebar } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
@@ -35,12 +35,15 @@ export default function SidebarDismissExample() {
|
|
|
35
35
|
</Sidebar.Content>
|
|
36
36
|
</Sidebar.Root>
|
|
37
37
|
</AppShell.Nav>
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
<AppShell.Main>
|
|
39
|
+
<Page.Root>
|
|
40
|
+
<Page.TopBar>
|
|
41
|
+
<Page.Heading>
|
|
42
|
+
<Page.Title>Сборка заказов</Page.Title>
|
|
43
|
+
</Page.Heading>
|
|
44
|
+
</Page.TopBar>
|
|
45
|
+
</Page.Root>
|
|
46
|
+
</AppShell.Main>
|
|
44
47
|
</AppShell.Root>
|
|
45
48
|
</div>
|
|
46
49
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Below 768px the rail leaves the layout and slides in over the page from the menu button the
|
|
2
|
-
import {
|
|
1
|
+
/** Below 768px the rail leaves the layout and slides in over the page from the menu button the page top bar draws by itself; from 768px it is the rail again, and the button leaves — `AppShell`, `labels`. */
|
|
2
|
+
import { AppShell, Icon, Page, Sidebar } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
@@ -43,12 +43,15 @@ export default function SidebarNarrowExample() {
|
|
|
43
43
|
</Sidebar.Content>
|
|
44
44
|
</Sidebar.Root>
|
|
45
45
|
</AppShell.Nav>
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
<AppShell.Main>
|
|
47
|
+
<Page.Root>
|
|
48
|
+
<Page.TopBar>
|
|
49
|
+
<Page.Heading>
|
|
50
|
+
<Page.Title>Сделки</Page.Title>
|
|
51
|
+
</Page.Heading>
|
|
52
|
+
</Page.TopBar>
|
|
53
|
+
</Page.Root>
|
|
54
|
+
</AppShell.Main>
|
|
52
55
|
</AppShell.Root>
|
|
53
56
|
</div>
|
|
54
57
|
);
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
--prime-color-chart-scale-5: var(--prime-ref-color-cobalt-200);
|
|
33
33
|
--prime-color-chart-scale-fg: var(--prime-ref-color-gray-950);
|
|
34
34
|
--prime-color-control-thumb: var(--prime-ref-color-gray-100);
|
|
35
|
+
--prime-color-control-thumb-disabled: var(--prime-ref-color-gray-600);
|
|
35
36
|
--prime-color-danger-border: var(--prime-ref-color-red-400);
|
|
36
37
|
--prime-color-danger-hover: var(--prime-ref-color-red-500);
|
|
37
38
|
--prime-color-danger-soft: color-mix(in srgb, var(--prime-ref-color-red-500) 16%, transparent);
|
|
@@ -50,35 +51,35 @@
|
|
|
50
51
|
--prime-color-layer-0-bg: #0d0f13;
|
|
51
52
|
--prime-color-layer-0-fill: #14161a;
|
|
52
53
|
--prime-color-layer-0-fill-hover: #1a1c21;
|
|
53
|
-
--prime-color-layer-0-selected: #
|
|
54
|
+
--prime-color-layer-0-selected: #303237;
|
|
54
55
|
--prime-color-layer-1-bg: #14161a;
|
|
55
56
|
--prime-color-layer-1-fill: #1a1c21;
|
|
56
57
|
--prime-color-layer-1-fill-hover: #212428;
|
|
57
|
-
--prime-color-layer-1-selected: #
|
|
58
|
+
--prime-color-layer-1-selected: #383a3f;
|
|
58
59
|
--prime-color-layer-2-bg: #1a1c21;
|
|
59
60
|
--prime-color-layer-2-fill: #212428;
|
|
60
61
|
--prime-color-layer-2-fill-hover: #292b2f;
|
|
61
|
-
--prime-color-layer-2-selected: #
|
|
62
|
+
--prime-color-layer-2-selected: #3f4247;
|
|
62
63
|
--prime-color-layer-3-bg: #212428;
|
|
63
64
|
--prime-color-layer-3-fill: #292b2f;
|
|
64
65
|
--prime-color-layer-3-fill-hover: #303237;
|
|
65
|
-
--prime-color-layer-3-selected: #
|
|
66
|
+
--prime-color-layer-3-selected: #474a4f;
|
|
66
67
|
--prime-color-layer-4-bg: #292b2f;
|
|
67
68
|
--prime-color-layer-4-fill: #303237;
|
|
68
69
|
--prime-color-layer-4-fill-hover: #383a3f;
|
|
69
|
-
--prime-color-layer-4-selected: #
|
|
70
|
+
--prime-color-layer-4-selected: #4f5257;
|
|
70
71
|
--prime-color-layer-floating-bg: #1a1c21;
|
|
71
72
|
--prime-color-layer-floating-fill: #212428;
|
|
72
73
|
--prime-color-layer-floating-fill-hover: #292b2f;
|
|
73
|
-
--prime-color-layer-floating-selected: #
|
|
74
|
+
--prime-color-layer-floating-selected: #3f4247;
|
|
74
75
|
--prime-color-layer-floating1-bg: #212328;
|
|
75
76
|
--prime-color-layer-floating1-fill: #282a2f;
|
|
76
77
|
--prime-color-layer-floating1-fill-hover: #303237;
|
|
77
|
-
--prime-color-layer-floating1-selected: #
|
|
78
|
+
--prime-color-layer-floating1-selected: #47494e;
|
|
78
79
|
--prime-color-layer-floating2-bg: #282a2f;
|
|
79
80
|
--prime-color-layer-floating2-fill: #303237;
|
|
80
81
|
--prime-color-layer-floating2-fill-hover: #373a3e;
|
|
81
|
-
--prime-color-layer-floating2-selected: #
|
|
82
|
+
--prime-color-layer-floating2-selected: #4f5257;
|
|
82
83
|
--prime-color-message-outgoing-accent: var(--prime-ref-color-white);
|
|
83
84
|
--prime-color-message-outgoing-accent-fg: var(--prime-ref-color-cobalt-700);
|
|
84
85
|
--prime-color-message-outgoing-bg: var(--prime-ref-color-cobalt-700);
|
|
@@ -128,6 +129,7 @@
|
|
|
128
129
|
--prime-color-palette-yellow-soft: color-mix(in srgb, var(--prime-ref-color-yellow-500) 16%, transparent);
|
|
129
130
|
--prime-color-palette-yellow-solid-fg: var(--prime-ref-color-gray-950);
|
|
130
131
|
--prime-color-palette-yellow-text: var(--prime-ref-color-yellow-300);
|
|
132
|
+
--prime-color-skeleton-fill: color-mix(in srgb, var(--prime-ref-color-gray-100) 10%, transparent);
|
|
131
133
|
--prime-color-success-default: var(--prime-ref-color-green-400);
|
|
132
134
|
--prime-color-success-fg: var(--prime-ref-color-gray-950);
|
|
133
135
|
--prime-color-success-hover: var(--prime-ref-color-green-300);
|
|
@@ -135,8 +137,8 @@
|
|
|
135
137
|
--prime-color-success-text: var(--prime-ref-color-green-300);
|
|
136
138
|
--prime-color-text-disabled: var(--prime-ref-color-gray-600);
|
|
137
139
|
--prime-color-text-inverse: var(--prime-ref-color-gray-925);
|
|
138
|
-
--prime-color-text-muted: var(--prime-ref-color-gray-
|
|
139
|
-
--prime-color-text-placeholder: var(--prime-ref-color-gray-
|
|
140
|
+
--prime-color-text-muted: var(--prime-ref-color-gray-350);
|
|
141
|
+
--prime-color-text-placeholder: var(--prime-ref-color-gray-350);
|
|
140
142
|
--prime-color-text-primary: var(--prime-ref-color-gray-100);
|
|
141
143
|
--prime-color-text-secondary: var(--prime-ref-color-gray-300);
|
|
142
144
|
--prime-color-tooltip-bg: var(--prime-ref-color-gray-100);
|
|
@@ -97,6 +97,7 @@
|
|
|
97
97
|
--prime-color-chart-scale-5: var(--prime-ref-color-cobalt-800);
|
|
98
98
|
--prime-color-chart-scale-fg: var(--prime-ref-color-white);
|
|
99
99
|
--prime-color-control-thumb: var(--prime-ref-color-white);
|
|
100
|
+
--prime-color-control-thumb-disabled: var(--prime-ref-color-white);
|
|
100
101
|
--prime-color-danger-border: var(--prime-ref-color-red-500);
|
|
101
102
|
--prime-color-danger-default: var(--prime-ref-color-red-600);
|
|
102
103
|
--prime-color-danger-fg: var(--prime-ref-color-white);
|
|
@@ -203,6 +204,7 @@
|
|
|
203
204
|
--prime-color-palette-yellow-solid: var(--prime-ref-color-yellow-400);
|
|
204
205
|
--prime-color-palette-yellow-solid-fg: var(--prime-ref-color-gray-925);
|
|
205
206
|
--prime-color-palette-yellow-text: var(--prime-ref-color-yellow-800);
|
|
207
|
+
--prime-color-skeleton-fill: color-mix(in srgb, var(--prime-ref-color-gray-925) 6%, transparent);
|
|
206
208
|
--prime-color-success-default: var(--prime-ref-color-green-700);
|
|
207
209
|
--prime-color-success-fg: var(--prime-ref-color-white);
|
|
208
210
|
--prime-color-success-hover: var(--prime-ref-color-green-800);
|
|
@@ -318,6 +320,7 @@
|
|
|
318
320
|
--prime-focus-offset-inset: -2px;
|
|
319
321
|
--prime-focus-space: 4px;
|
|
320
322
|
--prime-focus-width: 2px;
|
|
323
|
+
--prime-font-family-key: var(--prime-ref-font-family-key);
|
|
321
324
|
--prime-font-family-mono: var(--prime-ref-font-family-mono);
|
|
322
325
|
--prime-font-family-sans: var(--prime-ref-font-family-sans);
|
|
323
326
|
--prime-font-tracking-normal: var(--prime-ref-font-tracking-normal);
|
|
@@ -364,6 +367,7 @@
|
|
|
364
367
|
--prime-message-padding-x: var(--prime-ref-space-3);
|
|
365
368
|
--prime-message-padding-y: var(--prime-ref-space-2);
|
|
366
369
|
--prime-message-radius: var(--prime-ref-radius-14);
|
|
370
|
+
--prime-message-sticker: 10rem;
|
|
367
371
|
--prime-message-tail-height: var(--prime-ref-space-4);
|
|
368
372
|
--prime-message-tail-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16' preserveAspectRatio='none'%3E%3Cpath d='M8 0C8 7 6.5 12.5 0.6 15.3C0.2 15.5 0.3 16 0.8 16H8Z'/%3E%3C/svg%3E");
|
|
369
373
|
--prime-message-tail-width: var(--prime-ref-space-2);
|
package/src/styles/tokens.css
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
--prime-ref-color-gray-100: #e8eaee;
|
|
29
29
|
--prime-ref-color-gray-150: #e0e3e8;
|
|
30
30
|
--prime-ref-color-gray-300: #b9bec8;
|
|
31
|
+
--prime-ref-color-gray-350: #a1a8b6;
|
|
31
32
|
--prime-ref-color-gray-400: #949bab;
|
|
32
33
|
--prime-ref-color-gray-50: #f3f4f6;
|
|
33
34
|
--prime-ref-color-gray-500: #636a79;
|
|
@@ -100,6 +101,7 @@
|
|
|
100
101
|
--prime-ref-easing-enter: cubic-bezier(0, 0, 0, 1);
|
|
101
102
|
--prime-ref-easing-exit: cubic-bezier(0.23, 1, 0.32, 1);
|
|
102
103
|
--prime-ref-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
104
|
+
--prime-ref-font-family-key: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, system-ui, -apple-system, "Segoe UI Symbol", Menlo, Consolas, monospace;
|
|
103
105
|
--prime-ref-font-family-mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
104
106
|
--prime-ref-font-family-sans: "Golos Text", "Golos Text Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
105
107
|
--prime-ref-font-line-height-12: 0.75rem;
|
|
@@ -145,7 +147,7 @@
|
|
|
145
147
|
--prime-ref-radius-6: 6px;
|
|
146
148
|
--prime-ref-radius-8: 8px;
|
|
147
149
|
--prime-ref-radius-full: 9999px;
|
|
148
|
-
--prime-ref-space-0:
|
|
150
|
+
--prime-ref-space-0: 0rem;
|
|
149
151
|
--prime-ref-space-1: 0.25rem;
|
|
150
152
|
--prime-ref-space-10: 2.5rem;
|
|
151
153
|
--prime-ref-space-12: 3rem;
|