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
|
@@ -6,6 +6,9 @@ import styles from "./examples.module.css";
|
|
|
6
6
|
|
|
7
7
|
const MAX_SIZE = 20 * 1024 * 1024;
|
|
8
8
|
|
|
9
|
+
/** The zone names the formats the check takes. */
|
|
10
|
+
const ZONE_LABELS = { description: "PDF до 20 МБ" };
|
|
11
|
+
|
|
9
12
|
/** A picked file as a file of the set. */
|
|
10
13
|
const toFile = (file: File): FileUploadFile => ({
|
|
11
14
|
id: `${file.name}-${file.size}-${file.lastModified}`,
|
|
@@ -30,13 +33,19 @@ export default function FileUploadValidationExample() {
|
|
|
30
33
|
<FileUpload.Root
|
|
31
34
|
label="Скан договора"
|
|
32
35
|
required
|
|
33
|
-
hint="
|
|
36
|
+
hint="Все страницы, с подписями обеих сторон"
|
|
37
|
+
labels={ZONE_LABELS}
|
|
34
38
|
error={scanError(scan)}
|
|
35
39
|
value={scan}
|
|
36
40
|
onValueChange={setScan}
|
|
37
41
|
onFilesChange={(files) => setScan(files.map(toFile))}
|
|
38
42
|
/>
|
|
39
|
-
<FileUpload.Root
|
|
43
|
+
<FileUpload.Root
|
|
44
|
+
label="Доверенность"
|
|
45
|
+
optional
|
|
46
|
+
hint="Если подписывает не директор"
|
|
47
|
+
labels={ZONE_LABELS}
|
|
48
|
+
/>
|
|
40
49
|
</div>
|
|
41
50
|
);
|
|
42
51
|
}
|
|
@@ -1,32 +1,15 @@
|
|
|
1
|
-
/** How files are added: the dashed drop zone, the zone with only its fill for cards and modals, the compact picker button and the add tile
|
|
2
|
-
import { FileUpload
|
|
1
|
+
/** How files are added: the dashed drop zone, the zone with only its fill for cards and modals, the compact picker button and the add tile that starts an empty set of tiles — `variant`, `trigger`. */
|
|
2
|
+
import { FileUpload } from "prime-ui-kit";
|
|
3
3
|
|
|
4
4
|
import styles from "./examples.module.css";
|
|
5
5
|
|
|
6
|
-
const PHOTOS: readonly FileUploadFile[] = [
|
|
7
|
-
{
|
|
8
|
-
id: "dock",
|
|
9
|
-
name: "Рампа.jpg",
|
|
10
|
-
type: "image/jpeg",
|
|
11
|
-
size: 412_000,
|
|
12
|
-
src: "https://picsum.photos/seed/variants-dock/320/320",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: "racks",
|
|
16
|
-
name: "Стеллажи.jpg",
|
|
17
|
-
type: "image/jpeg",
|
|
18
|
-
size: 388_000,
|
|
19
|
-
src: "https://picsum.photos/seed/variants-racks/320/320",
|
|
20
|
-
},
|
|
21
|
-
];
|
|
22
|
-
|
|
23
6
|
export default function FileUploadVariantsExample() {
|
|
24
7
|
return (
|
|
25
8
|
<div className={styles.column}>
|
|
26
9
|
<FileUpload.Root label="dashed" variant="dashed" />
|
|
27
10
|
<FileUpload.Root label="solid" variant="solid" />
|
|
28
11
|
<FileUpload.Root label="button" trigger="button" />
|
|
29
|
-
<FileUpload.Root label="tile" trigger="tile" layout="grid"
|
|
12
|
+
<FileUpload.Root label="tile" trigger="tile" layout="grid" multiple />
|
|
30
13
|
</div>
|
|
31
14
|
);
|
|
32
15
|
}
|
|
@@ -215,9 +215,10 @@ A `tone` wins over `color`. Say the status in the label too, never only by color
|
|
|
215
215
|
| [occupancy.tsx](examples/occupancy.tsx) | Team occupancy by day: people with avatars, projects that overlap into lanes, locked vacations, a saved move held busy and a conflicting one gliding back, new work drawn on a free day — `renderRowAvatar`, `renderRow`, `onBarChange`, `onBarCreate`, `onSelect`, `readOnly`. |
|
|
216
216
|
| [large.tsx](examples/large.tsx) | Two thousand people over two years stay fast: only the rows and days in view are rendered, keyboard focus reaches any row, and new bars are drawn on empty space — `rows`, `range`, `scrollHeight`, `onBarCreate`. |
|
|
217
217
|
| [row-link.tsx](examples/row-link.tsx) | A team by client: each row header is a link to the person's profile that a plain click opens in place, each tooltip adds the client and the planned hours under the dates, and a legend of client hues stands in the toolbar — `getRowHref`, `onRowClick`, `renderBarTooltip`. |
|
|
218
|
-
| [states.tsx](examples/states.tsx) | Skeleton rows in the chart's geometry while it loads, an empty period and a
|
|
218
|
+
| [states.tsx](examples/states.tsx) | Skeleton rows in the chart's geometry while it loads, an empty period and a report you may only look at, its today line on the report day — `loading`, `empty`, `readOnly`, `today`. |
|
|
219
219
|
| [controlled.tsx](examples/controlled.tsx) | The zoom owned by the page: presets in the toolbar and the built-in switch change one state — `scale`, `onScaleChange`. |
|
|
220
220
|
| [narrow.tsx](examples/narrow.tsx) | At 360 px the first column keeps only the avatars, the toolbar moves to its own row and the axis scrolls under the pinned column — `renderRowAvatar`. |
|
|
221
|
+
| [screen.tsx](examples/screen.tsx) | A team schedule as a work screen: the title with the people shown and a PageToolbar with search, filters, team sections and the primary action in the app header over a full-height Gantt; moves saved or refused, new work drawn and named in a Modal, details in a Drawer — `scrollHeight`, `onBarChange`, `onBarCreate`, `onSelect`. |
|
|
221
222
|
|
|
222
223
|
## Mistakes
|
|
223
224
|
- Updating the rows before the request succeeds (optimistic) → the chart cannot glide back on reject; update them when `onBarChange` resolves, or before you resolve it.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* Schedule: a work screen — the header carries the title and the tools, the page fills the app
|
|
2
|
+
panel (`AppShell.Root fillViewport` + `PageContent.Root fill`) and the chart takes the free
|
|
3
|
+
height. */
|
|
4
|
+
|
|
5
|
+
/* On a short screen the chart keeps room for a few rows; the page scrolls instead. */
|
|
6
|
+
.chart {
|
|
7
|
+
min-height: calc(var(--prime-space-24) * 3);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* First column: the name over the role. */
|
|
11
|
+
.person {
|
|
12
|
+
display: grid;
|
|
13
|
+
min-width: 0;
|
|
14
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
/** A team schedule: PageToolbar with search, filters
|
|
1
|
+
/** A team schedule as a work screen: the title with the people shown and a PageToolbar with search, filters, team sections and the primary action in the app header over a full-height Gantt; moves saved or refused, new work drawn and named in a Modal, details in a Drawer — `scrollHeight`, `onBarChange`, `onBarCreate`, `onSelect`. */
|
|
2
2
|
import {
|
|
3
|
+
AppHeader,
|
|
3
4
|
Avatar,
|
|
4
5
|
Badge,
|
|
5
6
|
Button,
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
} from "prime-ui-kit";
|
|
30
31
|
import * as React from "react";
|
|
31
32
|
|
|
32
|
-
import styles from "./
|
|
33
|
+
import styles from "./screen.module.css";
|
|
33
34
|
|
|
34
35
|
type Hue = NonNullable<GanttBar["color"]>;
|
|
35
36
|
type TeamId = "rollout" | "analytics" | "support";
|
|
@@ -275,7 +276,7 @@ const wait = (ms: number) => new Promise((resolve) => window.setTimeout(resolve,
|
|
|
275
276
|
/** `yyyy-MM-dd` from the Datepicker's hidden input → a local calendar day. */
|
|
276
277
|
const parseDay = (value: FormDataEntryValue) => new Date(`${value}T00:00`);
|
|
277
278
|
|
|
278
|
-
export default function
|
|
279
|
+
export default function GanttScreenExample() {
|
|
279
280
|
const { notify } = useNotifications();
|
|
280
281
|
const formId = React.useId();
|
|
281
282
|
const [people, setPeople] = React.useState(PEOPLE);
|
|
@@ -440,15 +441,19 @@ export default function SchedulePattern() {
|
|
|
440
441
|
const detail = selected?.bar;
|
|
441
442
|
|
|
442
443
|
return (
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
444
|
+
<>
|
|
445
|
+
{/* A work screen: in an app this header fills the shell's `header` slot and carries the page —
|
|
446
|
+
the only h1 and the page's tools; main has no PageContent.Header. */}
|
|
447
|
+
<AppHeader.Root>
|
|
448
|
+
<AppHeader.Start>
|
|
449
|
+
<AppHeader.Title>
|
|
450
|
+
Загрузка команды
|
|
451
|
+
<AppHeader.Description>
|
|
452
|
+
{loading ? "Загружаем график…" : `Сотрудников: ${rows.length} из ${people.length}`}
|
|
453
|
+
</AppHeader.Description>
|
|
454
|
+
</AppHeader.Title>
|
|
455
|
+
</AppHeader.Start>
|
|
456
|
+
<AppHeader.Tools>
|
|
452
457
|
<SmartFilter.Root
|
|
453
458
|
fields={FIELDS}
|
|
454
459
|
value={filter}
|
|
@@ -456,7 +461,7 @@ export default function SchedulePattern() {
|
|
|
456
461
|
search={search}
|
|
457
462
|
onSearchChange={setSearch}
|
|
458
463
|
>
|
|
459
|
-
<PageToolbar.Root aria-label="
|
|
464
|
+
<PageToolbar.Root aria-label="Загрузка команды">
|
|
460
465
|
<PageToolbar.Tools>
|
|
461
466
|
<SmartFilter.Toolbar />
|
|
462
467
|
</PageToolbar.Tools>
|
|
@@ -498,7 +503,11 @@ export default function SchedulePattern() {
|
|
|
498
503
|
</PageToolbar.Chips>
|
|
499
504
|
</PageToolbar.Root>
|
|
500
505
|
</SmartFilter.Root>
|
|
506
|
+
</AppHeader.Tools>
|
|
507
|
+
</AppHeader.Root>
|
|
501
508
|
|
|
509
|
+
<PageContent.Root fill>
|
|
510
|
+
<PageContent.Body>
|
|
502
511
|
<Gantt<Person, Assignment>
|
|
503
512
|
aria-label="Загрузка команды внедрения"
|
|
504
513
|
className={styles.chart}
|
|
@@ -533,11 +542,6 @@ export default function SchedulePattern() {
|
|
|
533
542
|
renderBarTooltip={(bar) => (bar.client ? CLIENTS[bar.client].name : KIND[bar.kind])}
|
|
534
543
|
toolbar={
|
|
535
544
|
<>
|
|
536
|
-
<Typography as="span" variant="body-s" tone="muted">
|
|
537
|
-
{loading
|
|
538
|
-
? "Загружаем график…"
|
|
539
|
-
: `Сотрудников: ${rows.length} из ${people.length}`}
|
|
540
|
-
</Typography>
|
|
541
545
|
{/* The legend of client hues: the bar's hue repeats its client, the tooltip names it. */}
|
|
542
546
|
{(Object.keys(CLIENTS) as ClientId[]).map((client) => (
|
|
543
547
|
<Badge.Root key={client} color={CLIENTS[client].color}>
|
|
@@ -564,159 +568,159 @@ export default function SchedulePattern() {
|
|
|
564
568
|
</EmptyPage.Root>
|
|
565
569
|
}
|
|
566
570
|
/>
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
</Modal.
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
</Input.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
</Select.
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
</Select.
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
</>
|
|
639
|
-
)}
|
|
640
|
-
</Fieldset>
|
|
641
|
-
</form>
|
|
642
|
-
</Modal.Body>
|
|
643
|
-
<Modal.Footer>
|
|
644
|
-
<Modal.Close>
|
|
645
|
-
<Button.Root variant="outline" tone="neutral">
|
|
646
|
-
Отмена
|
|
647
|
-
</Button.Root>
|
|
648
|
-
</Modal.Close>
|
|
649
|
-
<Button.Root type="submit" form={formId} loading={saving}>
|
|
650
|
-
Назначить
|
|
651
|
-
</Button.Root>
|
|
652
|
-
</Modal.Footer>
|
|
653
|
-
</Modal.Content>
|
|
654
|
-
</Modal.Root>
|
|
655
|
-
|
|
656
|
-
<Drawer.Root open={detailOpen} onOpenChange={setDetailOpen}>
|
|
657
|
-
<Drawer.Content size="s">
|
|
658
|
-
<Drawer.Header>
|
|
659
|
-
<Drawer.Title>{detail?.label}</Drawer.Title>
|
|
660
|
-
<Drawer.Description>{detail ? KIND[detail.kind] : null}</Drawer.Description>
|
|
661
|
-
</Drawer.Header>
|
|
662
|
-
<Drawer.Body>
|
|
663
|
-
{selected && detail ? (
|
|
664
|
-
<DescriptionList.Root orientation="vertical">
|
|
665
|
-
<DescriptionList.Item label="Сотрудник">
|
|
666
|
-
{selected.person.name} · {selected.person.role}
|
|
667
|
-
</DescriptionList.Item>
|
|
668
|
-
<DescriptionList.Item label="Клиент">
|
|
669
|
-
{detail.client ? (
|
|
670
|
-
<Badge.Root color={CLIENTS[detail.client].color}>
|
|
671
|
-
{CLIENTS[detail.client].name}
|
|
672
|
-
</Badge.Root>
|
|
673
|
-
) : (
|
|
674
|
-
"Без клиента"
|
|
571
|
+
|
|
572
|
+
<Modal.Root open={draft !== null} onOpenChange={closeDraft}>
|
|
573
|
+
<Modal.Content size="s">
|
|
574
|
+
<Modal.Header>
|
|
575
|
+
<Modal.Title>Новая задача</Modal.Title>
|
|
576
|
+
<Modal.Description>
|
|
577
|
+
{draftPerson && draft?.dates
|
|
578
|
+
? `${draftPerson.name} · ${formatPeriod(draft.dates)}`
|
|
579
|
+
: "Сотрудник увидит задачу в своём графике."}
|
|
580
|
+
</Modal.Description>
|
|
581
|
+
</Modal.Header>
|
|
582
|
+
<Modal.Body>
|
|
583
|
+
<Modal.Guard busy={saving} />
|
|
584
|
+
<form id={formId} noValidate onSubmit={submit}>
|
|
585
|
+
<Fieldset aria-label="Задача" disabled={saving}>
|
|
586
|
+
<Input.Root id={`${formId}-title`} label="Задача" required error={errors.title}>
|
|
587
|
+
<Input.Wrapper>
|
|
588
|
+
<Input.Field name="title" placeholder="Обучение пользователей" autoFocus />
|
|
589
|
+
</Input.Wrapper>
|
|
590
|
+
</Input.Root>
|
|
591
|
+
<Select.Root
|
|
592
|
+
name="client"
|
|
593
|
+
label="Клиент"
|
|
594
|
+
required
|
|
595
|
+
placeholder="Выберите клиента"
|
|
596
|
+
error={errors.client}
|
|
597
|
+
id={`${formId}-client`}
|
|
598
|
+
>
|
|
599
|
+
<Select.Trigger>
|
|
600
|
+
<Select.Value />
|
|
601
|
+
</Select.Trigger>
|
|
602
|
+
<Select.Content>
|
|
603
|
+
{(Object.keys(CLIENTS) as ClientId[]).map((value) => (
|
|
604
|
+
<Select.Item key={value} value={value}>
|
|
605
|
+
{CLIENTS[value].name}
|
|
606
|
+
</Select.Item>
|
|
607
|
+
))}
|
|
608
|
+
</Select.Content>
|
|
609
|
+
</Select.Root>
|
|
610
|
+
{draft?.personId ? null : (
|
|
611
|
+
<>
|
|
612
|
+
<Select.Root
|
|
613
|
+
name="person"
|
|
614
|
+
label="Сотрудник"
|
|
615
|
+
required
|
|
616
|
+
placeholder="Выберите сотрудника"
|
|
617
|
+
error={errors.person}
|
|
618
|
+
id={`${formId}-person`}
|
|
619
|
+
>
|
|
620
|
+
<Select.Trigger>
|
|
621
|
+
<Select.Value />
|
|
622
|
+
</Select.Trigger>
|
|
623
|
+
<Select.Content searchable>
|
|
624
|
+
{people.map((person) => (
|
|
625
|
+
<Select.Item key={person.id} value={person.id} keywords={person.role}>
|
|
626
|
+
{person.name}
|
|
627
|
+
</Select.Item>
|
|
628
|
+
))}
|
|
629
|
+
</Select.Content>
|
|
630
|
+
</Select.Root>
|
|
631
|
+
<Datepicker.Root
|
|
632
|
+
mode="range"
|
|
633
|
+
name="period"
|
|
634
|
+
label="Период"
|
|
635
|
+
required
|
|
636
|
+
fullWidth
|
|
637
|
+
placeholder="Начало и конец работ"
|
|
638
|
+
error={errors.period}
|
|
639
|
+
id={`${formId}-period`}
|
|
640
|
+
/>
|
|
641
|
+
</>
|
|
675
642
|
)}
|
|
676
|
-
</
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
/>
|
|
688
|
-
</DescriptionList.Item>
|
|
689
|
-
)}
|
|
690
|
-
</DescriptionList.Root>
|
|
691
|
-
) : null}
|
|
692
|
-
</Drawer.Body>
|
|
693
|
-
<Drawer.Footer>
|
|
694
|
-
<Drawer.Close>
|
|
695
|
-
<Button.Root variant="outline" tone="neutral">
|
|
696
|
-
Закрыть
|
|
643
|
+
</Fieldset>
|
|
644
|
+
</form>
|
|
645
|
+
</Modal.Body>
|
|
646
|
+
<Modal.Footer>
|
|
647
|
+
<Modal.Close>
|
|
648
|
+
<Button.Root variant="outline" tone="neutral">
|
|
649
|
+
Отмена
|
|
650
|
+
</Button.Root>
|
|
651
|
+
</Modal.Close>
|
|
652
|
+
<Button.Root type="submit" form={formId} loading={saving}>
|
|
653
|
+
Назначить
|
|
697
654
|
</Button.Root>
|
|
698
|
-
</
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
>
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
655
|
+
</Modal.Footer>
|
|
656
|
+
</Modal.Content>
|
|
657
|
+
</Modal.Root>
|
|
658
|
+
|
|
659
|
+
<Drawer.Root open={detailOpen} onOpenChange={setDetailOpen}>
|
|
660
|
+
<Drawer.Content size="s">
|
|
661
|
+
<Drawer.Header>
|
|
662
|
+
<Drawer.Title>{detail?.label}</Drawer.Title>
|
|
663
|
+
<Drawer.Description>{detail ? KIND[detail.kind] : null}</Drawer.Description>
|
|
664
|
+
</Drawer.Header>
|
|
665
|
+
<Drawer.Body>
|
|
666
|
+
{selected && detail ? (
|
|
667
|
+
<DescriptionList.Root orientation="vertical">
|
|
668
|
+
<DescriptionList.Item label="Сотрудник">
|
|
669
|
+
{selected.person.name} · {selected.person.role}
|
|
670
|
+
</DescriptionList.Item>
|
|
671
|
+
<DescriptionList.Item label="Клиент">
|
|
672
|
+
{detail.client ? (
|
|
673
|
+
<Badge.Root color={CLIENTS[detail.client].color}>
|
|
674
|
+
{CLIENTS[detail.client].name}
|
|
675
|
+
</Badge.Root>
|
|
676
|
+
) : (
|
|
677
|
+
"Без клиента"
|
|
678
|
+
)}
|
|
679
|
+
</DescriptionList.Item>
|
|
680
|
+
<DescriptionList.Item label={detail.kind === "milestone" ? "Дата" : "Период"}>
|
|
681
|
+
{formatPeriod(detail)}
|
|
682
|
+
{detail.kind === "milestone" ? null : ` · ${lengthInDays(detail)} дн.`}
|
|
683
|
+
</DescriptionList.Item>
|
|
684
|
+
{detail.progress === undefined ? null : (
|
|
685
|
+
<DescriptionList.Item label="Выполнено">
|
|
686
|
+
<ProgressBar
|
|
687
|
+
value={Math.round(detail.progress * 100)}
|
|
688
|
+
showValue
|
|
689
|
+
aria-label="Выполнено"
|
|
690
|
+
/>
|
|
691
|
+
</DescriptionList.Item>
|
|
692
|
+
)}
|
|
693
|
+
</DescriptionList.Root>
|
|
694
|
+
) : null}
|
|
695
|
+
</Drawer.Body>
|
|
696
|
+
<Drawer.Footer>
|
|
697
|
+
<Drawer.Close>
|
|
698
|
+
<Button.Root variant="outline" tone="neutral">
|
|
699
|
+
Закрыть
|
|
700
|
+
</Button.Root>
|
|
701
|
+
</Drawer.Close>
|
|
702
|
+
{detail && !detail.readOnly ? (
|
|
703
|
+
<ConfirmDialog.Root
|
|
704
|
+
title={`Снять задачу «${detail.label}»?`}
|
|
705
|
+
description={`${selected?.person.name} освободится на эти дни. Задачу можно будет назначить заново.`}
|
|
706
|
+
confirmLabel="Снять задачу"
|
|
707
|
+
onConfirm={removeSelected}
|
|
708
|
+
>
|
|
709
|
+
<ConfirmDialog.Trigger>
|
|
710
|
+
<Button.Root variant="soft" tone="danger">
|
|
711
|
+
<Button.Icon>
|
|
712
|
+
<Icon name="action.delete" />
|
|
713
|
+
</Button.Icon>
|
|
714
|
+
Снять задачу
|
|
715
|
+
</Button.Root>
|
|
716
|
+
</ConfirmDialog.Trigger>
|
|
717
|
+
</ConfirmDialog.Root>
|
|
718
|
+
) : null}
|
|
719
|
+
</Drawer.Footer>
|
|
720
|
+
</Drawer.Content>
|
|
721
|
+
</Drawer.Root>
|
|
722
|
+
</PageContent.Body>
|
|
723
|
+
</PageContent.Root>
|
|
724
|
+
</>
|
|
721
725
|
);
|
|
722
726
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Skeleton rows in the chart's geometry while it loads, an empty period and a
|
|
1
|
+
/** Skeleton rows in the chart's geometry while it loads, an empty period and a report you may only look at, its today line on the report day — `loading`, `empty`, `readOnly`, `today`. */
|
|
2
2
|
import { addDays, startOfToday, startOfWeek } from "date-fns";
|
|
3
3
|
import { Gantt, type GanttBar, Typography } from "prime-ui-kit";
|
|
4
4
|
|
|
@@ -24,6 +24,9 @@ const FLEET: Vehicle[] = [
|
|
|
24
24
|
|
|
25
25
|
const NO_VEHICLES: Vehicle[] = [];
|
|
26
26
|
|
|
27
|
+
/** The day the dispatch report was made: its today line stands there, not on the real today. */
|
|
28
|
+
const REPORT_DAY = at(2);
|
|
29
|
+
|
|
27
30
|
const chartProps = {
|
|
28
31
|
defaultScale: "day",
|
|
29
32
|
getRowKey: (vehicle: Vehicle) => vehicle.id,
|
|
@@ -56,11 +59,12 @@ export default function GanttStatesExample() {
|
|
|
56
59
|
aria-label="Рейсы машин, только просмотр"
|
|
57
60
|
rows={FLEET}
|
|
58
61
|
readOnly
|
|
62
|
+
today={REPORT_DAY}
|
|
59
63
|
onBarChange={() => undefined}
|
|
60
64
|
{...chartProps}
|
|
61
65
|
/>
|
|
62
66
|
<Typography as="span" variant="caption" tone="muted">
|
|
63
|
-
readOnly
|
|
67
|
+
readOnly · today
|
|
64
68
|
</Typography>
|
|
65
69
|
</div>
|
|
66
70
|
</div>
|
|
@@ -269,12 +269,12 @@ Controlled: `value` + `onChange` (or `onValueChange`) on `Input.Field`. Uncontro
|
|
|
269
269
|
|---|---|
|
|
270
270
|
| [overview.tsx](examples/overview.tsx) | A labelled field with a hint under it — `label`, `hint`. |
|
|
271
271
|
| [sizes.tsx](examples/sizes.tsx) | Every size tier; the label and the hint follow the field tier — `size`. |
|
|
272
|
-
| [states.tsx](examples/states.tsx) | A default field next to a disabled
|
|
272
|
+
| [states.tsx](examples/states.tsx) | A default field next to a disabled, a read-only and an invalid one with no message — `disabled`, `readOnly`, `invalid`. |
|
|
273
273
|
| [validation.tsx](examples/validation.tsx) | Live validation: an error shakes the field as it arrives, drops in and leaves as soon as the value is fixed; required and optional markers, a hint and a support row that does not shift — `required`, `optional`, `hint`, `error`, `reserveSupportRow`. |
|
|
274
274
|
| [with-icon.tsx](examples/with-icon.tsx) | A decorative icon at either end of the value — `Input.Icon`, `side`. |
|
|
275
275
|
| [affixes.tsx](examples/affixes.tsx) | A fixed prefix and suffix flush with the edges and a unit next to the value — `Input.Affix`, `Input.InlineAffix`. |
|
|
276
276
|
| [without-focus-ring.tsx](examples/without-focus-ring.tsx) | A single search field where the caret and the lighter fill show focus — `focusRing`. |
|
|
277
|
-
| [password-strength.tsx](examples/password-strength.tsx) | A new password with a show toggle and a meter that fills step by step and names the level beside the hint — `Input.RevealButton`, `strength`. |
|
|
277
|
+
| [password-strength.tsx](examples/password-strength.tsx) | A new password with a show toggle and a meter that fills step by step and names the level beside the hint, and a service password measured by the company's own rule — `Input.RevealButton`, `strength`, `getStrength`. |
|
|
278
278
|
| [edge-actions.tsx](examples/edge-actions.tsx) | Actions at the field's end: a mail link with a tooltip beside copying the value, and a profile link on a read-only field — `Input.Action`, `Input.CopyButton`. |
|
|
279
279
|
| [inline-edit.tsx](examples/inline-edit.tsx) | Record card fields that save on blur and Enter, revert on Escape and show the server's refusal — `onCommit`, `error`. |
|
|
280
280
|
| [controlled.tsx](examples/controlled.tsx) | The parent owns the value: a clear button and a character counter follow it — `value`, `onValueChange`, `Input.ClearButton`, `Input.Counter`. |
|
|
@@ -8,15 +8,10 @@
|
|
|
8
8
|
width: min(100%, var(--prime-modal-width-m));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.formHeader {
|
|
12
|
-
display: flex;
|
|
13
|
-
flex-direction: column;
|
|
14
|
-
gap: var(--prime-space-1);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
11
|
.formFields {
|
|
18
12
|
display: grid;
|
|
19
|
-
|
|
13
|
+
/* Two columns while each keeps 12rem, one column in a narrower form — from its own width. */
|
|
14
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--prime-space-16) * 3)), 1fr));
|
|
20
15
|
align-items: start;
|
|
21
16
|
gap: var(--prime-space-5) var(--prime-space-4);
|
|
22
17
|
}
|
|
@@ -30,9 +25,3 @@
|
|
|
30
25
|
justify-content: flex-end;
|
|
31
26
|
gap: var(--prime-space-2);
|
|
32
27
|
}
|
|
33
|
-
|
|
34
|
-
@media (max-width: 639px) {
|
|
35
|
-
.formFields {
|
|
36
|
-
grid-template-columns: minmax(0, 1fr);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Company details form: required fields checked on submit, each error leaves as its field is fixed and a saved form turns the button green; neighbours keep their bottoms aligned — `required`, `error`, `reserveSupportRow`. */
|
|
2
|
-
import { Button, Input
|
|
2
|
+
import { Button, Input } from "prime-ui-kit";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
5
|
import styles from "./examples.module.css";
|
|
@@ -32,14 +32,6 @@ export default function InputInFormExample() {
|
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<form className={styles.form} noValidate onSubmit={submit}>
|
|
35
|
-
<div className={styles.formHeader}>
|
|
36
|
-
<Typography as="h3" variant="title-m">
|
|
37
|
-
Реквизиты компании
|
|
38
|
-
</Typography>
|
|
39
|
-
<Typography as="p" variant="body-s" tone="secondary">
|
|
40
|
-
Используются в счетах и закрывающих документах.
|
|
41
|
-
</Typography>
|
|
42
|
-
</div>
|
|
43
35
|
<div className={styles.formFields}>
|
|
44
36
|
<div className={styles.formWide}>
|
|
45
37
|
<Input.Root label="Название организации" required error={errors.name}>
|