prime-ui-kit 0.13.1 → 0.15.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 +20 -20
- package/dist/chunks/{chunk-XNOJEX55.js → chunk-2IKH55MI.js} +1 -1
- package/dist/chunks/{chunk-JV2KB5JZ.js → chunk-THFZIHKU.js} +3761 -3041
- package/dist/chunks/{chunk-PK2GC77E.js → chunk-XJAVS6FH.js} +213 -188
- package/dist/color-picker.js +2 -2
- package/dist/components/banner/Banner.d.ts +5 -2
- package/dist/components/chart-frame/ChartFrame.d.ts +19 -6
- package/dist/components/chat/Chat.d.ts +2 -2
- package/dist/components/chat/ChatPinned.d.ts +2 -2
- package/dist/components/chat/MessageList.d.ts +1 -1
- package/dist/components/chat/chatContext.d.ts +1 -1
- package/dist/components/dnd/Dnd.d.ts +1 -1
- package/dist/components/field-list/FieldList.d.ts +90 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/components/input/Input.d.ts +2 -2
- package/dist/components/kanban/Kanban.d.ts +6 -3
- package/dist/components/login-form/LoginForm.d.ts +5 -1
- package/dist/components/page-content/PageContent.d.ts +55 -4
- package/dist/components/sparkline/Sparkline.d.ts +64 -15
- package/dist/components/sparkline/geometry.d.ts +26 -0
- package/dist/components/tooltip/Tooltip.d.ts +5 -2
- package/dist/hooks/usePosition.d.ts +15 -4
- package/dist/index.css +1 -1
- package/dist/index.js +4 -2
- package/dist/internal/ChartTooltip.d.ts +26 -0
- package/dist/internal/FieldAction.d.ts +6 -7
- package/dist/internal/fieldCell.d.ts +21 -0
- package/dist/internal/messageList.d.ts +2 -2
- package/dist/internal/palette.d.ts +7 -0
- package/dist/internal/swatch.d.ts +6 -2
- package/dist/layout/app-header/AppHeader.d.ts +9 -28
- package/dist/layout/index.d.ts +1 -1
- package/dist/skill/SKILL.md +32 -20
- package/dist/skill/anti-slop.md +77 -4
- package/dist/skill/api-contract.md +2 -2
- package/dist/skill/cheatsheet.md +33 -7
- package/dist/skill/checklist.md +28 -6
- package/dist/skill/choosing.md +17 -14
- package/dist/skill/components.md +9 -15
- package/dist/skill/composition.md +301 -61
- package/dist/skill/foundations.md +9 -7
- package/dist/skill/layouts.md +70 -37
- package/dist/skill/reference/components/avatar/COMPONENT.md +4 -4
- package/dist/skill/reference/components/avatar/examples/presence.tsx +1 -1
- package/dist/skill/reference/components/avatar/examples/states.tsx +5 -5
- package/dist/skill/reference/components/badge/examples/applied-filters.tsx +13 -19
- package/dist/skill/reference/components/badge/examples/examples.module.css +1 -8
- package/dist/skill/reference/components/badge/examples/server-tags.tsx +2 -6
- package/dist/skill/reference/components/banner/COMPONENT.md +6 -6
- package/dist/skill/reference/components/banner/examples/dismissible.tsx +22 -11
- package/dist/skill/reference/components/banner/examples/examples.module.css +4 -8
- package/dist/skill/reference/components/banner/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/banner/examples/page-strip.tsx +16 -22
- package/dist/skill/reference/components/breadcrumb/COMPONENT.md +5 -4
- package/dist/skill/reference/components/breadcrumb/examples/ellipsis.tsx +2 -2
- package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +1 -1
- package/dist/skill/reference/components/button-group/COMPONENT.md +2 -2
- package/dist/skill/reference/components/button-group/examples/in-form.tsx +22 -2
- package/dist/skill/reference/components/button-group/examples/states.tsx +10 -1
- package/dist/skill/reference/components/card/COMPONENT.md +7 -5
- package/dist/skill/reference/components/card/examples/examples.module.css +0 -28
- package/dist/skill/reference/components/card/examples/kpi-media.tsx +13 -11
- package/dist/skill/reference/components/card/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/card/examples/panel-chart.tsx +45 -22
- package/dist/skill/reference/components/card/examples/screen.module.css +14 -0
- package/dist/skill/reference/components/card/examples/screen.tsx +362 -0
- package/dist/skill/reference/components/card/examples/variants.tsx +15 -1
- package/dist/skill/reference/components/chart-frame/COMPONENT.md +12 -8
- package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +119 -0
- package/dist/skill/reference/components/chart-frame/examples/states.tsx +3 -1
- package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +20 -24
- package/dist/skill/reference/components/chat/COMPONENT.md +6 -4
- package/dist/skill/reference/components/chat/examples/group-chat.tsx +15 -2
- package/dist/skill/reference/components/chat/examples/reactions.tsx +121 -0
- package/dist/skill/reference/components/chat/examples/screen.module.css +9 -0
- package/dist/skill/{patterns/chat.tsx → reference/components/chat/examples/screen.tsx} +187 -350
- package/dist/skill/reference/components/chat/examples/search.tsx +1 -1
- package/dist/skill/reference/components/chat-list/COMPONENT.md +2 -1
- package/dist/skill/reference/components/chat-list/examples/links.tsx +72 -0
- package/dist/skill/reference/components/checkbox/COMPONENT.md +1 -1
- package/dist/skill/reference/components/checkbox/examples/examples.module.css +5 -1
- package/dist/skill/reference/components/checkbox/examples/indicator.tsx +37 -9
- package/dist/skill/reference/components/checkbox/examples/states.tsx +6 -1
- package/dist/skill/reference/components/color-field/COMPONENT.md +1 -1
- package/dist/skill/reference/components/color-picker/COMPONENT.md +6 -5
- package/dist/skill/reference/components/color-picker/examples/controlled-open.tsx +37 -0
- package/dist/skill/reference/components/color-picker/examples/presets.tsx +2 -2
- package/dist/skill/reference/components/color-picker/examples/states.tsx +23 -14
- package/dist/skill/reference/components/color-swatches/COMPONENT.md +1 -0
- package/dist/skill/reference/components/composer/COMPONENT.md +2 -1
- package/dist/skill/reference/components/composer/examples/attach-menu.tsx +78 -0
- package/dist/skill/reference/components/composer/examples/attachments.tsx +2 -2
- package/dist/skill/reference/components/crossfade/COMPONENT.md +1 -0
- package/dist/skill/{patterns/screen-states.module.css → reference/components/crossfade/examples/screen.module.css} +3 -17
- package/dist/skill/reference/components/crossfade/examples/screen.tsx +197 -0
- package/dist/skill/reference/components/data-table/COMPONENT.md +3 -2
- package/dist/skill/reference/components/data-table/examples/detail-panel.tsx +36 -37
- package/dist/skill/reference/components/data-table/examples/examples.module.css +0 -12
- package/dist/skill/reference/components/data-table/examples/numeric.tsx +36 -4
- package/dist/skill/reference/components/data-table/examples/overview.tsx +1 -0
- package/dist/skill/reference/components/data-table/examples/row-open.tsx +7 -36
- package/dist/skill/{patterns/list-page.module.css → reference/components/data-table/examples/screen.module.css} +1 -7
- package/dist/skill/{patterns/list-page.tsx → reference/components/data-table/examples/screen.tsx} +84 -64
- package/dist/skill/reference/components/datepicker/COMPONENT.md +6 -4
- package/dist/skill/reference/components/datepicker/examples/examples.module.css +2 -6
- package/dist/skill/reference/components/datepicker/examples/in-form.tsx +47 -55
- package/dist/skill/reference/components/datepicker/examples/locale.tsx +35 -0
- package/dist/skill/reference/components/datepicker/examples/range-presets.tsx +11 -2
- package/dist/skill/reference/components/datepicker/examples/states.tsx +9 -1
- package/dist/skill/reference/components/description-list/COMPONENT.md +1 -0
- package/dist/skill/{patterns/detail-page.module.css → reference/components/description-list/examples/screen.module.css} +2 -12
- package/dist/skill/reference/components/description-list/examples/screen.tsx +214 -0
- package/dist/skill/reference/components/description-list/examples/structure.tsx +1 -1
- package/dist/skill/reference/components/digit-input/COMPONENT.md +3 -1
- package/dist/skill/reference/components/digit-input/examples/states.tsx +3 -1
- package/dist/skill/reference/components/digit-input/examples/without-focus-ring.tsx +13 -0
- package/dist/skill/reference/components/divider/examples/with-icon.tsx +2 -2
- package/dist/skill/reference/components/dnd/COMPONENT.md +7 -5
- package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +82 -49
- package/dist/skill/reference/components/dnd/examples/examples.module.css +50 -0
- package/dist/skill/reference/components/dnd/examples/states.tsx +54 -0
- package/dist/skill/reference/components/dnd/examples/table.tsx +113 -0
- package/dist/skill/reference/components/drawer/COMPONENT.md +1 -0
- package/dist/skill/reference/components/drawer/examples/dismiss.tsx +5 -3
- package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -13
- package/dist/skill/reference/components/drawer/examples/header-actions.tsx +5 -9
- package/dist/skill/reference/components/drawer/examples/overview.tsx +6 -18
- package/dist/skill/reference/components/drawer/examples/screen.tsx +298 -0
- package/dist/skill/reference/components/dropdown/examples/examples.module.css +1 -5
- package/dist/skill/reference/components/empty-page/COMPONENT.md +1 -1
- package/dist/skill/reference/components/empty-page/examples/region-error.tsx +8 -2
- package/dist/skill/reference/components/example-frame/COMPONENT.md +3 -2
- package/dist/skill/reference/components/example-frame/examples/initial-view.tsx +44 -0
- package/dist/skill/reference/components/field-list/COMPONENT.md +165 -0
- package/dist/skill/reference/components/field-list/examples/base-row.tsx +76 -0
- package/dist/skill/reference/components/field-list/examples/controlled.tsx +72 -0
- package/dist/skill/reference/components/field-list/examples/errors.tsx +88 -0
- package/dist/skill/reference/components/field-list/examples/examples.module.css +34 -0
- package/dist/skill/reference/components/field-list/examples/limits.tsx +55 -0
- package/dist/skill/reference/components/field-list/examples/locked.tsx +139 -0
- package/dist/skill/reference/components/field-list/examples/narrow.tsx +68 -0
- package/dist/skill/reference/components/field-list/examples/overview.tsx +66 -0
- package/dist/skill/reference/components/field-list/examples/reorder.tsx +42 -0
- package/dist/skill/reference/components/field-list/examples/screen.module.css +18 -0
- package/dist/skill/reference/components/field-list/examples/screen.tsx +316 -0
- package/dist/skill/reference/components/field-list/examples/sizes.tsx +42 -0
- package/dist/skill/reference/components/field-list/examples/states.tsx +51 -0
- package/dist/skill/reference/components/file-upload/COMPONENT.md +7 -6
- package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +2 -1
- package/dist/skill/reference/components/file-upload/examples/examples.module.css +1 -7
- package/dist/skill/reference/components/file-upload/examples/file-cards.tsx +10 -1
- package/dist/skill/reference/components/file-upload/examples/gallery.tsx +2 -2
- package/dist/skill/reference/components/file-upload/examples/in-form.tsx +4 -9
- package/dist/skill/reference/components/file-upload/examples/overview.tsx +5 -1
- package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +24 -1
- package/dist/skill/{patterns/media-library.module.css → reference/components/file-upload/examples/screen.module.css} +2 -23
- package/dist/skill/reference/components/file-upload/examples/screen.tsx +646 -0
- package/dist/skill/reference/components/file-upload/examples/states.tsx +6 -2
- package/dist/skill/reference/components/file-upload/examples/validation.tsx +11 -2
- package/dist/skill/reference/components/file-upload/examples/variants.tsx +3 -20
- package/dist/skill/reference/components/gantt/COMPONENT.md +2 -1
- package/dist/skill/reference/components/gantt/examples/screen.module.css +14 -0
- package/dist/skill/{patterns/schedule.tsx → reference/components/gantt/examples/screen.tsx} +174 -170
- package/dist/skill/reference/components/gantt/examples/states.tsx +6 -2
- package/dist/skill/reference/components/input/COMPONENT.md +2 -2
- package/dist/skill/reference/components/input/examples/examples.module.css +2 -13
- package/dist/skill/reference/components/input/examples/in-form.tsx +1 -9
- package/dist/skill/reference/components/input/examples/password-strength.tsx +34 -8
- package/dist/skill/reference/components/input/examples/states.tsx +6 -1
- package/dist/skill/reference/components/kanban/COMPONENT.md +16 -11
- package/dist/skill/reference/components/kanban/examples/columns.tsx +8 -5
- package/dist/skill/reference/components/kanban/examples/limits.tsx +2 -1
- package/dist/skill/reference/components/kanban/examples/screen.module.css +17 -0
- package/dist/skill/{patterns/kanban-board.tsx → reference/components/kanban/examples/screen.tsx} +132 -172
- package/dist/skill/reference/components/kanban/examples/states.tsx +17 -6
- package/dist/skill/reference/components/kanban/examples/variants.tsx +16 -8
- package/dist/skill/reference/components/list/COMPONENT.md +1 -1
- package/dist/skill/reference/components/login-form/COMPONENT.md +6 -5
- package/dist/skill/reference/components/login-form/examples/examples.module.css +2 -21
- package/dist/skill/reference/components/login-form/examples/forgot-password.tsx +28 -32
- package/dist/skill/reference/components/login-form/examples/narrow.tsx +1 -1
- package/dist/skill/reference/components/login-form/examples/overview.tsx +45 -47
- package/dist/skill/reference/components/login-form/examples/register.tsx +64 -68
- package/dist/skill/reference/components/login-form/examples/reset-password.tsx +50 -47
- package/dist/skill/reference/components/login-form/examples/sizes.tsx +4 -6
- package/dist/skill/reference/components/login-form/examples/states.tsx +53 -57
- package/dist/skill/reference/components/login-form/examples/structure.tsx +18 -22
- package/dist/skill/reference/components/login-form/examples/verification-code.tsx +41 -45
- package/dist/skill/reference/components/media-viewer/COMPONENT.md +3 -3
- package/dist/skill/reference/components/media-viewer/examples/dismiss.tsx +5 -1
- package/dist/skill/reference/components/message/COMPONENT.md +6 -5
- package/dist/skill/reference/components/message/examples/file.tsx +5 -1
- package/dist/skill/reference/components/message/examples/media-open.tsx +48 -0
- package/dist/skill/reference/components/message/examples/status.tsx +21 -3
- package/dist/skill/reference/components/message/examples/text-formatting.tsx +7 -1
- package/dist/skill/reference/components/modal/COMPONENT.md +2 -1
- package/dist/skill/reference/components/modal/examples/custom-container.tsx +20 -20
- package/dist/skill/reference/components/modal/examples/dismiss.tsx +5 -3
- package/dist/skill/reference/components/modal/examples/enter-key.tsx +116 -0
- package/dist/skill/reference/components/modal/examples/examples.module.css +7 -13
- package/dist/skill/reference/components/modal/examples/structure.tsx +5 -2
- package/dist/skill/reference/components/native-select/COMPONENT.md +1 -1
- package/dist/skill/reference/components/native-select/examples/states.tsx +5 -1
- package/dist/skill/reference/components/notification/COMPONENT.md +2 -1
- package/dist/skill/reference/components/notification/examples/dismiss.tsx +2 -2
- package/dist/skill/reference/components/page-content/COMPONENT.md +71 -14
- package/dist/skill/reference/components/page-content/examples/grid.tsx +107 -0
- package/dist/skill/reference/components/page-content/examples/list-detail.tsx +0 -3
- package/dist/skill/reference/components/page-content/examples/overview.tsx +2 -2
- package/dist/skill/{patterns/settings-page.module.css → reference/components/page-content/examples/screen.module.css} +1 -21
- package/dist/skill/{patterns/settings-page.tsx → reference/components/page-content/examples/screen.tsx} +61 -82
- package/dist/skill/reference/components/page-content/examples/sections.tsx +81 -0
- package/dist/skill/reference/components/page-content/examples/variants.tsx +4 -11
- package/dist/skill/reference/components/page-toolbar/COMPONENT.md +18 -16
- package/dist/skill/reference/components/page-toolbar/examples/narrow.tsx +6 -3
- package/dist/skill/reference/components/pagination/examples/controlled.tsx +29 -29
- package/dist/skill/reference/components/pagination/examples/examples.module.css +0 -2
- package/dist/skill/reference/components/progress-bar/COMPONENT.md +1 -1
- package/dist/skill/reference/components/progress-bar/examples/segments.tsx +2 -2
- package/dist/skill/reference/components/progress-circle/COMPONENT.md +1 -1
- package/dist/skill/reference/components/progress-circle/examples/segments.tsx +8 -3
- package/dist/skill/reference/components/radio/COMPONENT.md +1 -0
- package/dist/skill/reference/components/radio/examples/examples.module.css +14 -0
- package/dist/skill/reference/components/radio/examples/in-form.tsx +45 -0
- package/dist/skill/reference/components/scroll-container/COMPONENT.md +1 -0
- package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +3 -3
- package/dist/skill/reference/components/scroll-container/examples/chat.tsx +3 -3
- package/dist/skill/reference/components/scroll-container/examples/edges.tsx +6 -3
- package/dist/skill/reference/components/scroll-container/examples/examples.module.css +4 -17
- package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +51 -0
- package/dist/skill/reference/components/scroll-container/examples/lock.tsx +3 -5
- package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +3 -3
- package/dist/skill/reference/components/scroll-container/examples/overview.tsx +3 -3
- package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +13 -7
- package/dist/skill/reference/components/scroll-container/examples/variants.tsx +13 -7
- package/dist/skill/reference/components/segmented-control/COMPONENT.md +3 -2
- package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +5 -1
- package/dist/skill/reference/components/segmented-control/examples/states.tsx +10 -1
- package/dist/skill/reference/components/select/COMPONENT.md +5 -3
- package/dist/skill/reference/components/select/examples/examples.module.css +2 -7
- package/dist/skill/reference/components/select/examples/icon-only.tsx +38 -0
- package/dist/skill/reference/components/select/examples/states.tsx +13 -1
- package/dist/skill/reference/components/sheet/COMPONENT.md +2 -0
- package/dist/skill/reference/components/sheet/examples/guard.tsx +72 -0
- package/dist/skill/reference/components/sheet/examples/header-actions.tsx +56 -0
- package/dist/skill/reference/components/slider/COMPONENT.md +2 -1
- package/dist/skill/reference/components/slider/examples/examples.module.css +8 -0
- package/dist/skill/reference/components/slider/examples/in-form.tsx +47 -0
- package/dist/skill/reference/components/slider/examples/states.tsx +4 -1
- package/dist/skill/reference/components/smart-filter/COMPONENT.md +1 -1
- package/dist/skill/reference/components/smart-filter/examples/controlled.tsx +3 -3
- package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +44 -10
- package/dist/skill/reference/components/sparkline/COMPONENT.md +83 -30
- package/dist/skill/reference/components/sparkline/examples/compact.tsx +1 -1
- package/dist/skill/reference/components/sparkline/examples/curve.tsx +28 -0
- package/dist/skill/reference/components/sparkline/examples/gaps.tsx +33 -0
- package/dist/skill/reference/components/sparkline/examples/overview.tsx +11 -2
- package/dist/skill/reference/components/sparkline/examples/period.tsx +7 -2
- package/dist/skill/reference/components/sparkline/examples/reference.tsx +38 -0
- package/dist/skill/reference/components/sparkline/examples/variants.tsx +2 -2
- package/dist/skill/reference/components/tabs/COMPONENT.md +1 -1
- package/dist/skill/reference/components/tabs/examples/examples.module.css +0 -6
- package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +11 -13
- package/dist/skill/reference/components/tabs/examples/sizes.tsx +1 -1
- package/dist/skill/reference/components/tag-select/COMPONENT.md +1 -1
- package/dist/skill/reference/components/tag-select/examples/states.tsx +8 -1
- package/dist/skill/reference/components/textarea/COMPONENT.md +1 -1
- package/dist/skill/reference/components/textarea/examples/examples.module.css +0 -6
- package/dist/skill/reference/components/textarea/examples/in-form.tsx +1 -9
- package/dist/skill/reference/components/textarea/examples/states.tsx +2 -1
- package/dist/skill/reference/components/thumbnail/COMPONENT.md +2 -1
- package/dist/skill/reference/components/thumbnail/examples/examples.module.css +1 -1
- package/dist/skill/reference/components/thumbnail/examples/fit.tsx +24 -0
- package/dist/skill/reference/components/thumbnail/examples/video.tsx +20 -1
- package/dist/skill/reference/components/timeline/COMPONENT.md +1 -1
- package/dist/skill/reference/components/timeline/examples/examples.module.css +0 -8
- package/dist/skill/reference/components/timeline/examples/links.tsx +55 -14
- package/dist/skill/reference/components/timeline/examples/narrow.tsx +2 -2
- package/dist/skill/reference/components/timeline/examples/sizes.tsx +3 -3
- package/dist/skill/reference/components/timeline/examples/variants.tsx +4 -4
- package/dist/skill/reference/components/tooltip/COMPONENT.md +7 -5
- package/dist/skill/reference/components/tooltip/examples/placement.tsx +2 -1
- package/dist/skill/reference/components/tooltip/examples/toolbar.tsx +2 -2
- package/dist/skill/reference/components/typography/examples/weights.tsx +3 -0
- package/dist/skill/reference/components/video-note/COMPONENT.md +3 -3
- package/dist/skill/reference/components/video-note/examples/controlled.tsx +19 -2
- package/dist/skill/reference/components/video-note/examples/in-message.tsx +5 -2
- package/dist/skill/reference/components/visually-hidden/COMPONENT.md +2 -1
- package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +39 -0
- package/dist/skill/reference/components/voice-player/COMPONENT.md +3 -3
- package/dist/skill/reference/components/voice-player/examples/call-recording.tsx +19 -9
- package/dist/skill/reference/components/voice-player/examples/controlled.tsx +20 -3
- package/dist/skill/reference/layout/app-header/COMPONENT.md +46 -63
- package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +10 -9
- package/dist/skill/reference/layout/app-header/examples/examples.module.css +1 -1
- package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +2 -3
- package/dist/skill/reference/layout/app-header/examples/narrow.tsx +4 -5
- package/dist/skill/reference/layout/app-header/examples/overview.tsx +8 -10
- package/dist/skill/reference/layout/app-header/examples/page-title.tsx +3 -10
- package/dist/skill/reference/layout/app-shell/COMPONENT.md +5 -4
- package/dist/skill/reference/layout/app-shell/examples/footer.tsx +2 -2
- package/dist/skill/reference/layout/app-shell/examples/overview.tsx +17 -32
- package/dist/skill/{patterns/app-shell.module.css → reference/layout/app-shell/examples/screen.module.css} +1 -8
- package/dist/skill/reference/layout/app-shell/examples/screen.tsx +262 -0
- package/dist/skill/reference/layout/app-shell/examples/template.tsx +31 -11
- package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +2 -2
- package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +2 -2
- package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
- package/dist/skill/reference/layout/sidebar/COMPONENT.md +7 -4
- package/dist/skill/reference/layout/sidebar/examples/account.tsx +2 -2
- package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +12 -4
- package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +53 -0
- package/dist/skill/reference/layout/sidebar/examples/examples.module.css +5 -0
- package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +53 -0
- package/dist/skill/reference/layout/sidebar/examples/persist.tsx +57 -0
- package/dist/skill/reference/layout/sidebar/examples/router.tsx +14 -2
- package/dist/skill/reference/layout/sidebar/examples/structure.tsx +7 -2
- package/dist/skill/responsive.md +7 -5
- package/dist/skill/ux.md +145 -0
- package/dist/tokens/semantic.d.ts +2 -0
- package/package.json +1 -1
- package/src/components/avatar/COMPONENT.md +4 -4
- package/src/components/avatar/examples/presence.tsx +1 -1
- package/src/components/avatar/examples/states.tsx +5 -5
- package/src/components/badge/examples/applied-filters.tsx +13 -19
- package/src/components/badge/examples/examples.module.css +1 -8
- package/src/components/badge/examples/server-tags.tsx +2 -6
- package/src/components/banner/COMPONENT.md +6 -6
- package/src/components/banner/examples/dismissible.tsx +22 -11
- package/src/components/banner/examples/examples.module.css +4 -8
- package/src/components/banner/examples/narrow.tsx +1 -1
- package/src/components/banner/examples/page-strip.tsx +16 -22
- package/src/components/breadcrumb/COMPONENT.md +5 -4
- package/src/components/breadcrumb/examples/ellipsis.tsx +2 -2
- package/src/components/breadcrumb/examples/overflow.tsx +1 -1
- package/src/components/button-group/COMPONENT.md +2 -2
- package/src/components/button-group/examples/in-form.tsx +22 -2
- package/src/components/button-group/examples/states.tsx +10 -1
- package/src/components/card/COMPONENT.md +7 -5
- package/src/components/card/examples/examples.module.css +0 -28
- package/src/components/card/examples/kpi-media.tsx +13 -11
- package/src/components/card/examples/narrow.tsx +1 -1
- package/src/components/card/examples/panel-chart.tsx +45 -22
- package/src/components/card/examples/screen.module.css +14 -0
- package/src/components/card/examples/screen.tsx +362 -0
- package/src/components/card/examples/variants.tsx +15 -1
- package/src/components/chart-frame/COMPONENT.md +12 -8
- package/src/components/chart-frame/examples/fill-height.tsx +119 -0
- package/src/components/chart-frame/examples/states.tsx +3 -1
- package/src/components/chart-frame/examples/tooltip.tsx +20 -24
- package/src/components/chat/COMPONENT.md +6 -4
- package/src/components/chat/examples/group-chat.tsx +15 -2
- package/src/components/chat/examples/reactions.tsx +121 -0
- package/src/components/chat/examples/screen.module.css +9 -0
- package/src/components/chat/examples/screen.tsx +718 -0
- package/src/components/chat/examples/search.tsx +1 -1
- package/src/components/chat-list/COMPONENT.md +2 -1
- package/src/components/chat-list/examples/links.tsx +72 -0
- package/src/components/checkbox/COMPONENT.md +1 -1
- package/src/components/checkbox/examples/examples.module.css +5 -1
- package/src/components/checkbox/examples/indicator.tsx +37 -9
- package/src/components/checkbox/examples/states.tsx +6 -1
- package/src/components/color-field/COMPONENT.md +1 -1
- package/src/components/color-picker/COMPONENT.md +6 -5
- package/src/components/color-picker/examples/controlled-open.tsx +37 -0
- package/src/components/color-picker/examples/presets.tsx +2 -2
- package/src/components/color-picker/examples/states.tsx +23 -14
- package/src/components/color-swatches/COMPONENT.md +1 -0
- package/src/components/composer/COMPONENT.md +2 -1
- package/src/components/composer/examples/attach-menu.tsx +78 -0
- package/src/components/composer/examples/attachments.tsx +2 -2
- package/src/components/crossfade/COMPONENT.md +1 -0
- package/src/components/crossfade/examples/screen.module.css +40 -0
- package/src/components/crossfade/examples/screen.tsx +197 -0
- package/src/components/data-table/COMPONENT.md +3 -2
- package/src/components/data-table/examples/detail-panel.tsx +36 -37
- package/src/components/data-table/examples/examples.module.css +0 -12
- package/src/components/data-table/examples/numeric.tsx +36 -4
- package/src/components/data-table/examples/overview.tsx +1 -0
- package/src/components/data-table/examples/row-open.tsx +7 -36
- package/src/components/data-table/examples/screen.module.css +13 -0
- package/src/components/data-table/examples/screen.tsx +354 -0
- package/src/components/datepicker/COMPONENT.md +6 -4
- package/src/components/datepicker/examples/examples.module.css +2 -6
- package/src/components/datepicker/examples/in-form.tsx +47 -55
- package/src/components/datepicker/examples/locale.tsx +35 -0
- package/src/components/datepicker/examples/range-presets.tsx +11 -2
- package/src/components/datepicker/examples/states.tsx +9 -1
- package/src/components/description-list/COMPONENT.md +1 -0
- package/src/components/description-list/examples/screen.module.css +64 -0
- package/src/components/description-list/examples/screen.tsx +214 -0
- package/src/components/description-list/examples/structure.tsx +1 -1
- package/src/components/digit-input/COMPONENT.md +3 -1
- package/src/components/digit-input/examples/states.tsx +3 -1
- package/src/components/digit-input/examples/without-focus-ring.tsx +13 -0
- package/src/components/divider/examples/with-icon.tsx +2 -2
- package/src/components/dnd/COMPONENT.md +7 -5
- package/src/components/dnd/examples/drop-zones.tsx +82 -49
- package/src/components/dnd/examples/examples.module.css +50 -0
- package/src/components/dnd/examples/states.tsx +54 -0
- package/src/components/dnd/examples/table.tsx +113 -0
- package/src/components/drawer/COMPONENT.md +1 -0
- package/src/components/drawer/examples/dismiss.tsx +5 -3
- package/src/components/drawer/examples/examples.module.css +0 -13
- package/src/components/drawer/examples/header-actions.tsx +5 -9
- package/src/components/drawer/examples/overview.tsx +6 -18
- package/src/components/drawer/examples/screen.module.css +14 -0
- package/src/components/drawer/examples/screen.tsx +298 -0
- package/src/components/dropdown/examples/examples.module.css +1 -5
- package/src/components/empty-page/COMPONENT.md +1 -1
- package/src/components/empty-page/examples/region-error.tsx +8 -2
- package/src/components/example-frame/COMPONENT.md +3 -2
- package/src/components/example-frame/examples/initial-view.tsx +44 -0
- package/src/components/field-list/COMPONENT.md +165 -0
- package/src/components/field-list/examples/base-row.tsx +76 -0
- package/src/components/field-list/examples/controlled.tsx +72 -0
- package/src/components/field-list/examples/errors.tsx +88 -0
- package/src/components/field-list/examples/examples.module.css +34 -0
- package/src/components/field-list/examples/limits.tsx +55 -0
- package/src/components/field-list/examples/locked.tsx +139 -0
- package/src/components/field-list/examples/narrow.tsx +68 -0
- package/src/components/field-list/examples/overview.tsx +66 -0
- package/src/components/field-list/examples/reorder.tsx +42 -0
- package/src/components/field-list/examples/screen.module.css +18 -0
- package/src/components/field-list/examples/screen.tsx +316 -0
- package/src/components/field-list/examples/sizes.tsx +42 -0
- package/src/components/field-list/examples/states.tsx +51 -0
- package/src/components/file-upload/COMPONENT.md +7 -6
- package/src/components/file-upload/examples/custom-body.tsx +2 -1
- package/src/components/file-upload/examples/examples.module.css +1 -7
- package/src/components/file-upload/examples/file-cards.tsx +10 -1
- package/src/components/file-upload/examples/gallery.tsx +2 -2
- package/src/components/file-upload/examples/in-form.tsx +4 -9
- package/src/components/file-upload/examples/overview.tsx +5 -1
- package/src/components/file-upload/examples/row-parts.tsx +24 -1
- package/src/components/file-upload/examples/screen.module.css +45 -0
- package/src/components/file-upload/examples/screen.tsx +646 -0
- package/src/components/file-upload/examples/states.tsx +6 -2
- package/src/components/file-upload/examples/validation.tsx +11 -2
- package/src/components/file-upload/examples/variants.tsx +3 -20
- package/src/components/gantt/COMPONENT.md +2 -1
- package/src/components/gantt/examples/screen.module.css +14 -0
- package/src/components/gantt/examples/screen.tsx +726 -0
- package/src/components/gantt/examples/states.tsx +6 -2
- package/src/components/input/COMPONENT.md +2 -2
- package/src/components/input/examples/examples.module.css +2 -13
- package/src/components/input/examples/in-form.tsx +1 -9
- package/src/components/input/examples/password-strength.tsx +34 -8
- package/src/components/input/examples/states.tsx +6 -1
- package/src/components/kanban/COMPONENT.md +16 -11
- package/src/components/kanban/examples/columns.tsx +8 -5
- package/src/components/kanban/examples/limits.tsx +2 -1
- package/src/components/kanban/examples/screen.module.css +17 -0
- package/src/components/kanban/examples/screen.tsx +572 -0
- package/src/components/kanban/examples/states.tsx +17 -6
- package/src/components/kanban/examples/variants.tsx +16 -8
- package/src/components/list/COMPONENT.md +1 -1
- package/src/components/login-form/COMPONENT.md +6 -5
- package/src/components/login-form/examples/examples.module.css +2 -21
- package/src/components/login-form/examples/forgot-password.tsx +28 -32
- package/src/components/login-form/examples/narrow.tsx +1 -1
- package/src/components/login-form/examples/overview.tsx +45 -47
- package/src/components/login-form/examples/register.tsx +64 -68
- package/src/components/login-form/examples/reset-password.tsx +50 -47
- package/src/components/login-form/examples/sizes.tsx +4 -6
- package/src/components/login-form/examples/states.tsx +53 -57
- package/src/components/login-form/examples/structure.tsx +18 -22
- package/src/components/login-form/examples/verification-code.tsx +41 -45
- package/src/components/media-viewer/COMPONENT.md +3 -3
- package/src/components/media-viewer/examples/dismiss.tsx +5 -1
- package/src/components/message/COMPONENT.md +6 -5
- package/src/components/message/examples/file.tsx +5 -1
- package/src/components/message/examples/media-open.tsx +48 -0
- package/src/components/message/examples/status.tsx +21 -3
- package/src/components/message/examples/text-formatting.tsx +7 -1
- package/src/components/modal/COMPONENT.md +2 -1
- package/src/components/modal/examples/custom-container.tsx +20 -20
- package/src/components/modal/examples/dismiss.tsx +5 -3
- package/src/components/modal/examples/enter-key.tsx +116 -0
- package/src/components/modal/examples/examples.module.css +7 -13
- package/src/components/modal/examples/structure.tsx +5 -2
- package/src/components/native-select/COMPONENT.md +1 -1
- package/src/components/native-select/examples/states.tsx +5 -1
- package/src/components/notification/COMPONENT.md +2 -1
- package/src/components/notification/examples/dismiss.tsx +2 -2
- package/src/components/page-content/COMPONENT.md +71 -14
- package/src/components/page-content/examples/grid.tsx +107 -0
- package/src/components/page-content/examples/list-detail.tsx +0 -3
- package/src/components/page-content/examples/overview.tsx +2 -2
- package/src/components/page-content/examples/screen.module.css +27 -0
- package/src/components/page-content/examples/screen.tsx +196 -0
- package/src/components/page-content/examples/sections.tsx +81 -0
- package/src/components/page-content/examples/variants.tsx +4 -11
- package/src/components/page-toolbar/COMPONENT.md +18 -16
- package/src/components/page-toolbar/examples/narrow.tsx +6 -3
- package/src/components/pagination/examples/controlled.tsx +29 -29
- package/src/components/pagination/examples/examples.module.css +0 -2
- package/src/components/progress-bar/COMPONENT.md +1 -1
- package/src/components/progress-bar/examples/segments.tsx +2 -2
- package/src/components/progress-circle/COMPONENT.md +1 -1
- package/src/components/progress-circle/examples/segments.tsx +8 -3
- package/src/components/radio/COMPONENT.md +1 -0
- package/src/components/radio/examples/examples.module.css +14 -0
- package/src/components/radio/examples/in-form.tsx +45 -0
- package/src/components/scroll-container/COMPONENT.md +1 -0
- package/src/components/scroll-container/examples/auto-scroll.tsx +3 -3
- package/src/components/scroll-container/examples/chat.tsx +3 -3
- package/src/components/scroll-container/examples/edges.tsx +6 -3
- package/src/components/scroll-container/examples/examples.module.css +4 -17
- package/src/components/scroll-container/examples/load-more.tsx +51 -0
- package/src/components/scroll-container/examples/lock.tsx +3 -5
- package/src/components/scroll-container/examples/overscroll.tsx +3 -3
- package/src/components/scroll-container/examples/overview.tsx +3 -3
- package/src/components/scroll-container/examples/scrollbar.tsx +13 -7
- package/src/components/scroll-container/examples/variants.tsx +13 -7
- package/src/components/segmented-control/COMPONENT.md +3 -2
- package/src/components/segmented-control/examples/in-form.tsx +5 -1
- package/src/components/segmented-control/examples/states.tsx +10 -1
- package/src/components/select/COMPONENT.md +5 -3
- package/src/components/select/examples/examples.module.css +2 -7
- package/src/components/select/examples/icon-only.tsx +38 -0
- package/src/components/select/examples/states.tsx +13 -1
- package/src/components/sheet/COMPONENT.md +2 -0
- package/src/components/sheet/examples/guard.tsx +72 -0
- package/src/components/sheet/examples/header-actions.tsx +56 -0
- package/src/components/slider/COMPONENT.md +2 -1
- package/src/components/slider/examples/examples.module.css +8 -0
- package/src/components/slider/examples/in-form.tsx +47 -0
- package/src/components/slider/examples/states.tsx +4 -1
- package/src/components/smart-filter/COMPONENT.md +1 -1
- package/src/components/smart-filter/examples/controlled.tsx +3 -3
- package/src/components/smart-filter/examples/ranges.tsx +44 -10
- package/src/components/sparkline/COMPONENT.md +83 -30
- package/src/components/sparkline/examples/compact.tsx +1 -1
- package/src/components/sparkline/examples/curve.tsx +28 -0
- package/src/components/sparkline/examples/gaps.tsx +33 -0
- package/src/components/sparkline/examples/overview.tsx +11 -2
- package/src/components/sparkline/examples/period.tsx +7 -2
- package/src/components/sparkline/examples/reference.tsx +38 -0
- package/src/components/sparkline/examples/variants.tsx +2 -2
- package/src/components/tabs/COMPONENT.md +1 -1
- package/src/components/tabs/examples/examples.module.css +0 -6
- package/src/components/tabs/examples/in-drawer.tsx +11 -13
- package/src/components/tabs/examples/sizes.tsx +1 -1
- package/src/components/tag-select/COMPONENT.md +1 -1
- package/src/components/tag-select/examples/states.tsx +8 -1
- package/src/components/textarea/COMPONENT.md +1 -1
- package/src/components/textarea/examples/examples.module.css +0 -6
- package/src/components/textarea/examples/in-form.tsx +1 -9
- package/src/components/textarea/examples/states.tsx +2 -1
- package/src/components/thumbnail/COMPONENT.md +2 -1
- package/src/components/thumbnail/examples/examples.module.css +1 -1
- package/src/components/thumbnail/examples/fit.tsx +24 -0
- package/src/components/thumbnail/examples/video.tsx +20 -1
- package/src/components/timeline/COMPONENT.md +1 -1
- package/src/components/timeline/examples/examples.module.css +0 -8
- package/src/components/timeline/examples/links.tsx +55 -14
- package/src/components/timeline/examples/narrow.tsx +2 -2
- package/src/components/timeline/examples/sizes.tsx +3 -3
- package/src/components/timeline/examples/variants.tsx +4 -4
- package/src/components/tooltip/COMPONENT.md +7 -5
- package/src/components/tooltip/examples/placement.tsx +2 -1
- package/src/components/tooltip/examples/toolbar.tsx +2 -2
- package/src/components/typography/examples/weights.tsx +3 -0
- package/src/components/video-note/COMPONENT.md +3 -3
- package/src/components/video-note/examples/controlled.tsx +19 -2
- package/src/components/video-note/examples/in-message.tsx +5 -2
- package/src/components/visually-hidden/COMPONENT.md +2 -1
- package/src/components/visually-hidden/examples/assertive.tsx +39 -0
- package/src/components/voice-player/COMPONENT.md +3 -3
- package/src/components/voice-player/examples/call-recording.tsx +19 -9
- package/src/components/voice-player/examples/controlled.tsx +20 -3
- package/src/layout/app-header/COMPONENT.md +46 -63
- package/src/layout/app-header/examples/breadcrumbs.tsx +10 -9
- package/src/layout/app-header/examples/examples.module.css +1 -1
- package/src/layout/app-header/examples/in-app-shell.tsx +2 -3
- package/src/layout/app-header/examples/narrow.tsx +4 -5
- package/src/layout/app-header/examples/overview.tsx +8 -10
- package/src/layout/app-header/examples/page-title.tsx +3 -10
- package/src/layout/app-shell/COMPONENT.md +5 -4
- package/src/layout/app-shell/examples/footer.tsx +2 -2
- package/src/layout/app-shell/examples/overview.tsx +17 -32
- package/src/layout/app-shell/examples/screen.module.css +11 -0
- package/src/layout/app-shell/examples/screen.tsx +262 -0
- package/src/layout/app-shell/examples/template.tsx +31 -11
- package/src/layout/bottom-nav/examples/floating-action.tsx +2 -2
- package/src/layout/bottom-nav/examples/floating.tsx +2 -2
- package/src/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
- package/src/layout/sidebar/COMPONENT.md +7 -4
- package/src/layout/sidebar/examples/account.tsx +2 -2
- package/src/layout/sidebar/examples/collapsible-groups.tsx +12 -4
- package/src/layout/sidebar/examples/custom-part.tsx +53 -0
- package/src/layout/sidebar/examples/examples.module.css +5 -0
- package/src/layout/sidebar/examples/narrow.tsx +53 -0
- package/src/layout/sidebar/examples/persist.tsx +57 -0
- package/src/layout/sidebar/examples/router.tsx +14 -2
- package/src/layout/sidebar/examples/structure.tsx +7 -2
- package/src/styles/theme-light.css +1 -0
- package/dist/skill/patterns/app-shell.tsx +0 -301
- package/dist/skill/patterns/chat.module.css +0 -8
- package/dist/skill/patterns/dashboard.module.css +0 -44
- package/dist/skill/patterns/dashboard.tsx +0 -326
- package/dist/skill/patterns/detail-page.tsx +0 -209
- package/dist/skill/patterns/form-drawer.tsx +0 -240
- package/dist/skill/patterns/kanban-board.module.css +0 -28
- package/dist/skill/patterns/media-library.tsx +0 -638
- package/dist/skill/patterns/schedule.module.css +0 -22
- package/dist/skill/patterns/screen-states.tsx +0 -186
- /package/dist/skill/{patterns/form-drawer.module.css → reference/components/drawer/examples/screen.module.css} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/** Screen states: the title and the date of the statement in the app header, a page-level error in a Banner with a retry, a region loading with a Skeleton of its rows and a table skeleton, the table error in place and a first-run EmptyPage; regions cross-fade between states — `state`. */
|
|
2
|
+
import {
|
|
3
|
+
AppHeader,
|
|
4
|
+
Banner,
|
|
5
|
+
Button,
|
|
6
|
+
Card,
|
|
7
|
+
Crossfade,
|
|
8
|
+
DataTable,
|
|
9
|
+
type DataTableColumn,
|
|
10
|
+
EmptyPage,
|
|
11
|
+
Icon,
|
|
12
|
+
PageContent,
|
|
13
|
+
Skeleton,
|
|
14
|
+
Typography,
|
|
15
|
+
useNotifications,
|
|
16
|
+
} from "prime-ui-kit";
|
|
17
|
+
import * as React from "react";
|
|
18
|
+
|
|
19
|
+
import styles from "./screen.module.css";
|
|
20
|
+
|
|
21
|
+
type Status = "error" | "loading" | "ready";
|
|
22
|
+
type Payment = { id: string; payer: string; purpose: string; amount: number };
|
|
23
|
+
|
|
24
|
+
const PAYMENTS: Payment[] = [
|
|
25
|
+
{ id: "b1", payer: "ООО «Гранит»", purpose: "Оплата по сч. 2026-0414", amount: 94_750 },
|
|
26
|
+
{ id: "b2", payer: "ИП Орлов Д. С.", purpose: "Предоплата за обучение", amount: 18_000 },
|
|
27
|
+
{ id: "b3", payer: "АО «Альфа Медиа»", purpose: "Без указания счёта", amount: 380_000 },
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const ACCOUNTS = [
|
|
31
|
+
{ name: "Т-Банк, расчётный", balance: "4 812 300 ₽" },
|
|
32
|
+
{ name: "Сбербанк, расчётный", balance: "1 207 950 ₽" },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const MONEY = new Intl.NumberFormat("ru-RU", {
|
|
36
|
+
style: "currency",
|
|
37
|
+
currency: "RUB",
|
|
38
|
+
maximumFractionDigits: 0,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const COLUMNS: DataTableColumn<Payment>[] = [
|
|
42
|
+
{ id: "payer", header: "Плательщик", accessor: "payer" },
|
|
43
|
+
{ id: "purpose", header: "Назначение", accessor: "purpose" },
|
|
44
|
+
{
|
|
45
|
+
id: "amount",
|
|
46
|
+
header: "Сумма",
|
|
47
|
+
numeric: true,
|
|
48
|
+
headerAlign: "end",
|
|
49
|
+
cell: (row) => MONEY.format(row.amount),
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
export default function CrossfadeScreenExample() {
|
|
54
|
+
const { notify } = useNotifications();
|
|
55
|
+
const [status, setStatus] = React.useState<Status>("error");
|
|
56
|
+
|
|
57
|
+
const retry = () => {
|
|
58
|
+
setStatus("loading");
|
|
59
|
+
window.setTimeout(() => {
|
|
60
|
+
setStatus("ready");
|
|
61
|
+
notify({
|
|
62
|
+
tone: "success",
|
|
63
|
+
title: "Выписка получена",
|
|
64
|
+
description: "3 платежа ждут разнесения",
|
|
65
|
+
});
|
|
66
|
+
}, 1500);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<>
|
|
71
|
+
{/* The header carries the page: the only h1 and a line of data, here the date of the last
|
|
72
|
+
statement — it moves on once the statement arrives. Main has no PageContent.Header. */}
|
|
73
|
+
<AppHeader.Root>
|
|
74
|
+
<AppHeader.Start>
|
|
75
|
+
<AppHeader.Title>
|
|
76
|
+
Сверка с банком
|
|
77
|
+
<AppHeader.Description>
|
|
78
|
+
2 счёта · выписка на {status === "ready" ? "7" : "6"} октября
|
|
79
|
+
</AppHeader.Description>
|
|
80
|
+
</AppHeader.Title>
|
|
81
|
+
</AppHeader.Start>
|
|
82
|
+
</AppHeader.Root>
|
|
83
|
+
|
|
84
|
+
<PageContent.Root>
|
|
85
|
+
<PageContent.Body>
|
|
86
|
+
{/* The page banner and the panels are one block: the banner, with the 40 below it, comes and
|
|
87
|
+
goes inside a Crossfade, so the panels glide instead of jumping. */}
|
|
88
|
+
<div className={styles.lead}>
|
|
89
|
+
<Crossfade state={status === "error" ? "error" : "ok"}>
|
|
90
|
+
{status === "error" ? (
|
|
91
|
+
<div className={styles.bannerSlot}>
|
|
92
|
+
<Banner.Root tone="danger">
|
|
93
|
+
<Banner.Content>
|
|
94
|
+
<Banner.Icon>
|
|
95
|
+
<Icon name="status.danger" />
|
|
96
|
+
</Banner.Icon>
|
|
97
|
+
<Banner.Title>Выписка за 7 октября не получена</Banner.Title>
|
|
98
|
+
<Banner.Description>
|
|
99
|
+
Т-Банк не ответил на запрос. Остатки показаны на 6 октября.
|
|
100
|
+
</Banner.Description>
|
|
101
|
+
<Banner.Actions>
|
|
102
|
+
<Button.Root tone="danger" onClick={retry}>
|
|
103
|
+
Повторить
|
|
104
|
+
</Button.Root>
|
|
105
|
+
</Banner.Actions>
|
|
106
|
+
</Banner.Content>
|
|
107
|
+
</Banner.Root>
|
|
108
|
+
</div>
|
|
109
|
+
) : null}
|
|
110
|
+
</Crossfade>
|
|
111
|
+
|
|
112
|
+
<PageContent.Grid>
|
|
113
|
+
<PageContent.Cell span={6}>
|
|
114
|
+
<Card.Root variant="panel" aria-busy={status === "loading"}>
|
|
115
|
+
<Card.Header>
|
|
116
|
+
<Card.Title as="h2">Остатки</Card.Title>
|
|
117
|
+
<Typography as="span" variant="caption" tone="muted">
|
|
118
|
+
{status === "ready" ? "на 7 октября" : "на 6 октября"}
|
|
119
|
+
</Typography>
|
|
120
|
+
</Card.Header>
|
|
121
|
+
<Card.Body>
|
|
122
|
+
{/* Loading ↔ data cross-fade in place; the table below swaps its body the same way. */}
|
|
123
|
+
<Crossfade state={status === "loading" ? "loading" : "ready"}>
|
|
124
|
+
{status === "loading" ? (
|
|
125
|
+
<ul className={styles.accounts}>
|
|
126
|
+
{ACCOUNTS.map((account) => (
|
|
127
|
+
<li key={account.name} className={styles.account}>
|
|
128
|
+
<Skeleton className={styles.nameBar} />
|
|
129
|
+
{/* title-m is the l text tier: 16 / 24. */}
|
|
130
|
+
<Skeleton size="l" className={styles.balanceBar} />
|
|
131
|
+
</li>
|
|
132
|
+
))}
|
|
133
|
+
</ul>
|
|
134
|
+
) : (
|
|
135
|
+
<ul className={styles.accounts}>
|
|
136
|
+
{ACCOUNTS.map((account) => (
|
|
137
|
+
<li key={account.name} className={styles.account}>
|
|
138
|
+
<Typography as="span" variant="body-m" tone="secondary">
|
|
139
|
+
{account.name}
|
|
140
|
+
</Typography>
|
|
141
|
+
<Typography as="span" variant="title-m" className={styles.amount}>
|
|
142
|
+
{account.balance}
|
|
143
|
+
</Typography>
|
|
144
|
+
</li>
|
|
145
|
+
))}
|
|
146
|
+
</ul>
|
|
147
|
+
)}
|
|
148
|
+
</Crossfade>
|
|
149
|
+
</Card.Body>
|
|
150
|
+
</Card.Root>
|
|
151
|
+
</PageContent.Cell>
|
|
152
|
+
|
|
153
|
+
<PageContent.Cell span={6}>
|
|
154
|
+
<Card.Root variant="panel">
|
|
155
|
+
<Card.Header>
|
|
156
|
+
<Card.Title as="h2">Правила разнесения</Card.Title>
|
|
157
|
+
</Card.Header>
|
|
158
|
+
<Card.Body>
|
|
159
|
+
<EmptyPage.Root size="s" aria-labelledby="rules-empty">
|
|
160
|
+
<EmptyPage.Icon tone="accent">
|
|
161
|
+
<Icon name="action.filter" />
|
|
162
|
+
</EmptyPage.Icon>
|
|
163
|
+
<EmptyPage.Title as="h3" id="rules-empty">
|
|
164
|
+
Правил пока нет
|
|
165
|
+
</EmptyPage.Title>
|
|
166
|
+
<EmptyPage.Description>
|
|
167
|
+
Правило свяжет платёж со счётом по ИНН или назначению.
|
|
168
|
+
</EmptyPage.Description>
|
|
169
|
+
<EmptyPage.Actions>
|
|
170
|
+
<Button.Root variant="soft" tone="neutral">
|
|
171
|
+
Создать правило
|
|
172
|
+
</Button.Root>
|
|
173
|
+
</EmptyPage.Actions>
|
|
174
|
+
</EmptyPage.Root>
|
|
175
|
+
</Card.Body>
|
|
176
|
+
</Card.Root>
|
|
177
|
+
</PageContent.Cell>
|
|
178
|
+
</PageContent.Grid>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<PageContent.Section label="Неразнесённые платежи">
|
|
182
|
+
<DataTable
|
|
183
|
+
columns={COLUMNS}
|
|
184
|
+
rows={status === "ready" ? PAYMENTS : []}
|
|
185
|
+
getRowKey={(row) => row.id}
|
|
186
|
+
paging="none"
|
|
187
|
+
loading={status === "loading"}
|
|
188
|
+
loadingRows={3}
|
|
189
|
+
error={status === "error" ? "Платежи появятся после загрузки выписки" : undefined}
|
|
190
|
+
empty="Все платежи разнесены"
|
|
191
|
+
/>
|
|
192
|
+
</PageContent.Section>
|
|
193
|
+
</PageContent.Body>
|
|
194
|
+
</PageContent.Root>
|
|
195
|
+
</>
|
|
196
|
+
);
|
|
197
|
+
}
|
|
@@ -327,7 +327,7 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
|
|
|
327
327
|
|---|---|
|
|
328
328
|
| [overview.tsx](examples/overview.tsx) | Recent orders: sortable columns, a status Badge, numeric sums and five rows per page — `columns`, `getRowKey`, `pageSize`. |
|
|
329
329
|
| [sizes.tsx](examples/sizes.tsx) | Every density: rows from 36 to 52 px, the head at the control height of the tier — `size`. |
|
|
330
|
-
| [numeric.tsx](examples/numeric.tsx) | An inventory report: number columns align to the end in tabular figures, a long name stays on one line with a title — `numeric`, `truncate`, `maxWidth`. |
|
|
330
|
+
| [numeric.tsx](examples/numeric.tsx) | An inventory report: number columns align to the end in tabular figures, a long name stays on one line with a title, formatted cells sort by their raw number and article numbers in natural order — `numeric`, `truncate`, `maxWidth`, `sortAccessor`, `sortComparator`. |
|
|
331
331
|
| [heatmap.tsx](examples/heatmap.tsx) | Deals closed per manager and month as a heatmap: each count shades its cell on the chart scale and stays readable in it — `scale`, `numeric`. |
|
|
332
332
|
| [trend.tsx](examples/trend.tsx) | Clients with revenue by month as a compact Sparkline in a cell of each row, next to the half-year total — `cell`, `width`. |
|
|
333
333
|
| [content-width.tsx](examples/content-width.tsx) | A short lookup table sized by its content with a centered column, and a `grow` column that takes the free width and wraps — `fullWidth`, `align`, `grow`. |
|
|
@@ -335,7 +335,7 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
|
|
|
335
335
|
| [toolbar.tsx](examples/toolbar.tsx) | A campaign list with search, a status filter and export above the table; the empty text when nothing matches — `toolbar`, `empty`. |
|
|
336
336
|
| [selection.tsx](examples/selection.tsx) | Team members with checkboxes: Shift+click range, press-and-drag, «select all» and bulk actions in the toolbar — `selectable`, `selected`, `onSelectedChange`, `getRowLabel`. |
|
|
337
337
|
| [nested-rows.tsx](examples/nested-rows.tsx) | Partners with their expense lines: sub-rows indented under the parent's name, a chevron toggle, together with selection and sorting — `getRowChildren`, `expanded`, `onExpandedChange`. |
|
|
338
|
-
| [detail-panel.tsx](examples/detail-panel.tsx) | Order details in a full-width row under an expanded order, aligned with the first content column — `renderExpanded`, `defaultExpanded`. |
|
|
338
|
+
| [detail-panel.tsx](examples/detail-panel.tsx) | Order details in a full-width row under an expanded order, aligned with the first content column; a cancelled order has nothing to show and gets no toggle — `renderExpanded`, `defaultExpanded`, `isRowExpandable`. |
|
|
339
339
|
| [sticky.tsx](examples/sticky.tsx) | Monthly sales by region in a 280 px window: the head and the region column stay while scrolling both ways — `stickyHeader`, `stickyFirstColumn`, `scrollHeight`. |
|
|
340
340
|
| [row-link.tsx](examples/row-link.tsx) | Invoices whose rows are links: ⌘-click or a middle click opens a new tab, a plain click routes inside the app, the totals row and the ⋯ menu never open a row — `getRowHref`, `onRowClick`, `isRowClickable`. |
|
|
341
341
|
| [row-open.tsx](examples/row-open.tsx) | Deals that open in a side panel: a click, or Enter and Space on the focused row; the panel keeps the last deal while it slides away — `onRowClick`. |
|
|
@@ -348,6 +348,7 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
|
|
|
348
348
|
| [states.tsx](examples/states.tsx) | Loading skeleton, an empty period and a load error with a retry: the head stays, only the body changes — `loading`, `loadingRows`, `empty`, `error`. |
|
|
349
349
|
| [controlled.tsx](examples/controlled.tsx) | Sort and page owned by the parent (a URL or a store): a header click goes asc → desc → none, a new sort returns to page 1 — `sort`, `onSortChange`, `page`, `onPageChange`. |
|
|
350
350
|
| [narrow.tsx](examples/narrow.tsx) | A 320 px support queue: columns scroll inside the table with the first one pinned, the toolbar and footer reflow and the pager turns compact — `stickyFirstColumn`, `size`. |
|
|
351
|
+
| [screen.tsx](examples/screen.tsx) | A list page: the title, a line of figures, search, filters and the one primary action in the app header, a DataTable of invoices with statuses, row actions, pages and a filtered empty state — `empty`, `pageSize`, `stickyFirstColumn`. |
|
|
351
352
|
|
|
352
353
|
## Mistakes
|
|
353
354
|
- No `getRowKey` with `selectable`, expansion or sorting → selection follows positions, not records.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
/** Order details in a full-width row under an expanded order, aligned with the first content column — `renderExpanded`, `defaultExpanded`. */
|
|
2
|
-
import { DataTable, type DataTableColumn,
|
|
3
|
-
|
|
4
|
-
import styles from "./examples.module.css";
|
|
1
|
+
/** Order details in a full-width row under an expanded order, aligned with the first content column; a cancelled order has nothing to show and gets no toggle — `renderExpanded`, `defaultExpanded`, `isRowExpandable`. */
|
|
2
|
+
import { DataTable, type DataTableColumn, DescriptionList } from "prime-ui-kit";
|
|
5
3
|
|
|
6
4
|
type Order = {
|
|
7
5
|
id: string;
|
|
@@ -9,8 +7,8 @@ type Order = {
|
|
|
9
7
|
customer: string;
|
|
10
8
|
date: string;
|
|
11
9
|
total: number;
|
|
12
|
-
|
|
13
|
-
items: string;
|
|
10
|
+
/** Delivery details; a cancelled order has none. */
|
|
11
|
+
delivery: { address: string; items: string } | null;
|
|
14
12
|
};
|
|
15
13
|
|
|
16
14
|
const ORDERS: Order[] = [
|
|
@@ -20,8 +18,10 @@ const ORDERS: Order[] = [
|
|
|
20
18
|
customer: "Анна Соколова",
|
|
21
19
|
date: "07.10.26",
|
|
22
20
|
total: 12_480,
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
delivery: {
|
|
22
|
+
address: "Москва, ул. Тверская, 12, кв. 45",
|
|
23
|
+
items: "Кабель USB-C, 2 м × 2, док-станция × 1",
|
|
24
|
+
},
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
id: "o2",
|
|
@@ -29,17 +29,23 @@ const ORDERS: Order[] = [
|
|
|
29
29
|
customer: "Дмитрий Орлов",
|
|
30
30
|
date: "06.10.26",
|
|
31
31
|
total: 34_900,
|
|
32
|
-
address: "Санкт-Петербург, Невский пр., 28",
|
|
33
|
-
items: 'Монитор 27" × 1',
|
|
32
|
+
delivery: { address: "Санкт-Петербург, Невский пр., 28", items: 'Монитор 27" × 1' },
|
|
34
33
|
},
|
|
35
34
|
{
|
|
36
35
|
id: "o3",
|
|
36
|
+
number: "№ 10 479",
|
|
37
|
+
customer: "Игорь Белов",
|
|
38
|
+
date: "06.10.26",
|
|
39
|
+
total: 2_990,
|
|
40
|
+
delivery: null,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "o4",
|
|
37
44
|
number: "№ 10 477",
|
|
38
45
|
customer: "Мария Ким",
|
|
39
46
|
date: "05.10.26",
|
|
40
47
|
total: 4_350,
|
|
41
|
-
address: "Казань, ул. Баумана, 7",
|
|
42
|
-
items: "Клавиатура × 1",
|
|
48
|
+
delivery: { address: "Казань, ул. Баумана, 7", items: "Клавиатура × 1" },
|
|
43
49
|
},
|
|
44
50
|
];
|
|
45
51
|
|
|
@@ -51,7 +57,13 @@ const RUB = new Intl.NumberFormat("ru-RU", {
|
|
|
51
57
|
|
|
52
58
|
const COLUMNS: DataTableColumn<Order>[] = [
|
|
53
59
|
{ id: "number", header: "Заказ", accessor: "number", minWidth: "8rem" },
|
|
54
|
-
{
|
|
60
|
+
{
|
|
61
|
+
id: "customer",
|
|
62
|
+
header: "Покупатель",
|
|
63
|
+
accessor: "customer",
|
|
64
|
+
sortable: true,
|
|
65
|
+
cell: (row) => (row.delivery ? row.customer : `${row.customer} · отменён`),
|
|
66
|
+
},
|
|
55
67
|
{ id: "date", header: "Дата", accessor: "date", numeric: true },
|
|
56
68
|
{
|
|
57
69
|
id: "total",
|
|
@@ -70,30 +82,17 @@ export default function DataTableDetailPanelExample() {
|
|
|
70
82
|
rows={ORDERS}
|
|
71
83
|
getRowKey={(row) => row.id}
|
|
72
84
|
getRowLabel={(row) => row.number}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
</dd>
|
|
85
|
-
<dt>
|
|
86
|
-
<Typography as="span" variant="body-s" tone="muted">
|
|
87
|
-
Состав
|
|
88
|
-
</Typography>
|
|
89
|
-
</dt>
|
|
90
|
-
<dd>
|
|
91
|
-
<Typography as="span" variant="body-s">
|
|
92
|
-
{row.items}
|
|
93
|
-
</Typography>
|
|
94
|
-
</dd>
|
|
95
|
-
</dl>
|
|
96
|
-
)}
|
|
85
|
+
isRowExpandable={(row) => row.delivery !== null}
|
|
86
|
+
renderExpanded={(row) =>
|
|
87
|
+
row.delivery ? (
|
|
88
|
+
<DescriptionList.Root size="s">
|
|
89
|
+
<DescriptionList.Item label="Адрес доставки">
|
|
90
|
+
{row.delivery.address}
|
|
91
|
+
</DescriptionList.Item>
|
|
92
|
+
<DescriptionList.Item label="Состав">{row.delivery.items}</DescriptionList.Item>
|
|
93
|
+
</DescriptionList.Root>
|
|
94
|
+
) : null
|
|
95
|
+
}
|
|
97
96
|
defaultExpanded={["o1"]}
|
|
98
97
|
paging="none"
|
|
99
98
|
/>
|
|
@@ -57,18 +57,6 @@
|
|
|
57
57
|
min-width: 0;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
.details {
|
|
61
|
-
display: grid;
|
|
62
|
-
grid-template-columns: max-content minmax(0, 1fr);
|
|
63
|
-
gap: var(--prime-space-1) var(--prime-space-4);
|
|
64
|
-
margin: 0;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.details dd {
|
|
68
|
-
margin: 0;
|
|
69
|
-
min-width: 0;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
60
|
/* fill-height: a panel of a fixed height (the rest of a page, a pane) the table fills. */
|
|
73
61
|
.fillStage {
|
|
74
62
|
display: flex;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** An inventory report: number columns align to the end in tabular figures, a long name stays on one line with a title — `numeric`, `truncate`, `maxWidth`. */
|
|
1
|
+
/** An inventory report: number columns align to the end in tabular figures, a long name stays on one line with a title, formatted cells sort by their raw number and article numbers in natural order — `numeric`, `truncate`, `maxWidth`, `sortAccessor`, `sortComparator`. */
|
|
2
2
|
import { DataTable, type DataTableColumn } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
type Sku = {
|
|
@@ -22,18 +22,50 @@ const SKUS: Sku[] = [
|
|
|
22
22
|
{ sku: "MS-044", name: "Мышь оптическая", stock: 86, price: 1290, sold: 1204, margin: 0.312 },
|
|
23
23
|
{ sku: "MN-27Q", name: 'Монитор 27" QHD IPS', stock: 12, price: 32_900, sold: 41, margin: 0.118 },
|
|
24
24
|
{ sku: "HB-7P", name: "USB-хаб на 7 портов", stock: 530, price: 2190, sold: 97, margin: 0.402 },
|
|
25
|
+
{
|
|
26
|
+
sku: "HB-10P",
|
|
27
|
+
name: "USB-хаб на 10 портов",
|
|
28
|
+
stock: 210,
|
|
29
|
+
price: 3490,
|
|
30
|
+
sold: 64,
|
|
31
|
+
margin: 0.356,
|
|
32
|
+
},
|
|
25
33
|
];
|
|
26
34
|
|
|
27
35
|
const INT = new Intl.NumberFormat("ru-RU");
|
|
28
36
|
const PCT = new Intl.NumberFormat("ru-RU", { style: "percent", maximumFractionDigits: 1 });
|
|
29
37
|
|
|
38
|
+
/** Article numbers in natural order: HB-7P before HB-10P. */
|
|
39
|
+
const NATURAL = new Intl.Collator("ru-RU", { numeric: true });
|
|
40
|
+
|
|
30
41
|
const COLUMNS: DataTableColumn<Sku>[] = [
|
|
31
|
-
{
|
|
42
|
+
{
|
|
43
|
+
id: "sku",
|
|
44
|
+
header: "Артикул",
|
|
45
|
+
accessor: "sku",
|
|
46
|
+
width: "6rem",
|
|
47
|
+
sortable: true,
|
|
48
|
+
sortComparator: (a, b) => NATURAL.compare(a.sku, b.sku),
|
|
49
|
+
},
|
|
32
50
|
{ id: "name", header: "Товар", accessor: "name", truncate: true, maxWidth: "14rem" },
|
|
33
|
-
{
|
|
51
|
+
{
|
|
52
|
+
id: "stock",
|
|
53
|
+
header: "Остаток, шт",
|
|
54
|
+
numeric: true,
|
|
55
|
+
sortable: true,
|
|
56
|
+
sortAccessor: (row) => row.stock,
|
|
57
|
+
cell: (row) => INT.format(row.stock),
|
|
58
|
+
},
|
|
34
59
|
{ id: "price", header: "Цена, ₽", numeric: true, cell: (row) => INT.format(row.price) },
|
|
35
60
|
{ id: "sold", header: "Продано", numeric: true, cell: (row) => INT.format(row.sold) },
|
|
36
|
-
{
|
|
61
|
+
{
|
|
62
|
+
id: "margin",
|
|
63
|
+
header: "Маржа",
|
|
64
|
+
numeric: true,
|
|
65
|
+
sortable: true,
|
|
66
|
+
sortAccessor: (row) => row.margin,
|
|
67
|
+
cell: (row) => PCT.format(row.margin),
|
|
68
|
+
},
|
|
37
69
|
];
|
|
38
70
|
|
|
39
71
|
export default function DataTableNumericExample() {
|
|
@@ -34,6 +34,7 @@ const COLUMNS: DataTableColumn<Order>[] = [
|
|
|
34
34
|
header: "Статус",
|
|
35
35
|
accessor: "status",
|
|
36
36
|
sortable: true,
|
|
37
|
+
sortAccessor: (row) => STATUS[row.status].label,
|
|
37
38
|
cell: (row) => (
|
|
38
39
|
<Badge.Root color={STATUS[row.status].color}>{STATUS[row.status].label}</Badge.Root>
|
|
39
40
|
),
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/** Deals that open in a side panel: a click, or Enter and Space on the focused row; the panel keeps the last deal while it slides away — `onRowClick`. */
|
|
2
|
-
import { Badge, DataTable, type DataTableColumn,
|
|
2
|
+
import { Badge, DataTable, type DataTableColumn, DescriptionList, Drawer } from "prime-ui-kit";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
|
-
import styles from "./examples.module.css";
|
|
6
|
-
|
|
7
5
|
type Stage = "new" | "talks" | "won";
|
|
8
6
|
type Deal = { id: string; title: string; client: string; owner: string; stage: Stage; sum: number };
|
|
9
7
|
|
|
@@ -47,7 +45,7 @@ const RUB = new Intl.NumberFormat("ru-RU", {
|
|
|
47
45
|
});
|
|
48
46
|
|
|
49
47
|
const COLUMNS: DataTableColumn<Deal>[] = [
|
|
50
|
-
{ id: "title", header: "Сделка", accessor: "title"
|
|
48
|
+
{ id: "title", header: "Сделка", accessor: "title" },
|
|
51
49
|
{ id: "client", header: "Клиент", accessor: "client" },
|
|
52
50
|
{
|
|
53
51
|
id: "stage",
|
|
@@ -88,38 +86,11 @@ export default function DataTableRowOpenExample() {
|
|
|
88
86
|
</Drawer.Header>
|
|
89
87
|
<Drawer.Body>
|
|
90
88
|
{deal ? (
|
|
91
|
-
<
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
</dt>
|
|
97
|
-
<dd>
|
|
98
|
-
<Typography as="span" variant="body-m">
|
|
99
|
-
{deal.client}
|
|
100
|
-
</Typography>
|
|
101
|
-
</dd>
|
|
102
|
-
<dt>
|
|
103
|
-
<Typography as="span" variant="body-m" tone="muted">
|
|
104
|
-
Ответственный
|
|
105
|
-
</Typography>
|
|
106
|
-
</dt>
|
|
107
|
-
<dd>
|
|
108
|
-
<Typography as="span" variant="body-m">
|
|
109
|
-
{deal.owner}
|
|
110
|
-
</Typography>
|
|
111
|
-
</dd>
|
|
112
|
-
<dt>
|
|
113
|
-
<Typography as="span" variant="body-m" tone="muted">
|
|
114
|
-
Сумма
|
|
115
|
-
</Typography>
|
|
116
|
-
</dt>
|
|
117
|
-
<dd>
|
|
118
|
-
<Typography as="span" variant="body-m">
|
|
119
|
-
{RUB.format(deal.sum)}
|
|
120
|
-
</Typography>
|
|
121
|
-
</dd>
|
|
122
|
-
</dl>
|
|
89
|
+
<DescriptionList.Root>
|
|
90
|
+
<DescriptionList.Item label="Клиент">{deal.client}</DescriptionList.Item>
|
|
91
|
+
<DescriptionList.Item label="Ответственный">{deal.owner}</DescriptionList.Item>
|
|
92
|
+
<DescriptionList.Item label="Сумма">{RUB.format(deal.sum)}</DescriptionList.Item>
|
|
93
|
+
</DescriptionList.Root>
|
|
123
94
|
) : null}
|
|
124
95
|
</Drawer.Body>
|
|
125
96
|
</Drawer.Content>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* List page: the header carries the title and the tools; this module lays out table cells only. */
|
|
2
|
+
|
|
3
|
+
/* Client cell: avatar, then the name over the tax id. On a phone the table scrolls sideways. */
|
|
4
|
+
.client {
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
gap: var(--prime-space-3);
|
|
8
|
+
white-space: nowrap;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.clientText {
|
|
12
|
+
display: grid;
|
|
13
|
+
}
|