prime-ui-kit 0.3.2 → 0.4.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 +3 -3
- package/dist/components/accordion/examples/01-faq-marketing.d.ts.map +1 -1
- package/dist/components/accordion/examples/02-settings-panels.d.ts.map +1 -1
- package/dist/components/accordion/examples/03-checkout-order-summary.d.ts.map +1 -1
- package/dist/components/accordion/examples/04-api-docs-sections.d.ts.map +1 -1
- package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts.map +1 -1
- package/dist/components/avatar/examples/group-three.d.ts +5 -0
- package/dist/components/avatar/examples/group-three.d.ts.map +1 -0
- package/dist/components/avatar/examples/sizes.d.ts +5 -0
- package/dist/components/avatar/examples/sizes.d.ts.map +1 -0
- package/dist/components/avatar/examples/src-from-state.d.ts +5 -0
- package/dist/components/avatar/examples/src-from-state.d.ts.map +1 -0
- package/dist/components/avatar/examples/states.d.ts +5 -0
- package/dist/components/avatar/examples/states.d.ts.map +1 -0
- package/dist/components/banner/examples/controlled-visibility.d.ts +3 -0
- package/dist/components/banner/examples/controlled-visibility.d.ts.map +1 -0
- package/dist/components/banner/examples/dismiss-close-button.d.ts +6 -0
- package/dist/components/banner/examples/dismiss-close-button.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/composition.d.ts +3 -0
- package/dist/components/breadcrumb/examples/composition.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/full-width.d.ts +5 -0
- package/dist/components/breadcrumb/examples/full-width.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/sizes.d.ts +3 -0
- package/dist/components/breadcrumb/examples/sizes.d.ts.map +1 -0
- package/dist/components/breadcrumb/examples/states.d.ts +6 -0
- package/dist/components/breadcrumb/examples/states.d.ts.map +1 -0
- package/dist/components/button/examples/full-width-stack.d.ts +5 -0
- package/dist/components/button/examples/full-width-stack.d.ts.map +1 -0
- package/dist/components/button/examples/icon-composition.d.ts +6 -0
- package/dist/components/button/examples/icon-composition.d.ts.map +1 -0
- package/dist/components/button/examples/sizes-ladder.d.ts +5 -0
- package/dist/components/button/examples/sizes-ladder.d.ts.map +1 -0
- package/dist/components/button-group/examples/full-width.d.ts +5 -0
- package/dist/components/button-group/examples/full-width.d.ts.map +1 -0
- package/dist/components/card/examples/mini-kpi.d.ts +3 -0
- package/dist/components/card/examples/mini-kpi.d.ts.map +1 -0
- package/dist/components/checkbox/examples/empty-label-form.d.ts +6 -0
- package/dist/components/checkbox/examples/empty-label-form.d.ts.map +1 -0
- package/dist/components/code-block/examples/controlled.d.ts +3 -0
- package/dist/components/code-block/examples/controlled.d.ts.map +1 -0
- package/dist/components/color-picker/examples/field-eyedropper.d.ts +3 -0
- package/dist/components/color-picker/examples/field-eyedropper.d.ts.map +1 -0
- package/dist/components/color-picker/examples/format-variants.d.ts +3 -0
- package/dist/components/color-picker/examples/format-variants.d.ts.map +1 -0
- package/dist/components/color-picker/examples/full-width.d.ts +3 -0
- package/dist/components/color-picker/examples/full-width.d.ts.map +1 -0
- package/dist/components/color-picker/examples/hex-input-sizes.d.ts +3 -0
- package/dist/components/color-picker/examples/hex-input-sizes.d.ts.map +1 -0
- package/dist/components/color-picker/examples/panel-placement.d.ts +3 -0
- package/dist/components/color-picker/examples/panel-placement.d.ts.map +1 -0
- package/dist/components/color-picker/examples/readout-trigger.d.ts +6 -0
- package/dist/components/color-picker/examples/readout-trigger.d.ts.map +1 -0
- package/dist/components/color-picker/examples/states.d.ts +3 -0
- package/dist/components/color-picker/examples/states.d.ts.map +1 -0
- package/dist/components/command-menu/examples/composition-tags-footer.d.ts +5 -0
- package/dist/components/command-menu/examples/composition-tags-footer.d.ts.map +1 -0
- package/dist/components/command-menu/examples/controlled-open-search.d.ts +5 -0
- package/dist/components/command-menu/examples/controlled-open-search.d.ts.map +1 -0
- package/dist/components/command-menu/examples/disabled-items.d.ts +2 -2
- package/dist/components/command-menu/examples/disabled-items.d.ts.map +1 -1
- package/dist/components/command-menu/examples/full-width-panel.d.ts +6 -0
- package/dist/components/command-menu/examples/full-width-panel.d.ts.map +1 -0
- package/dist/components/command-menu/examples/item-icon-as.d.ts +5 -0
- package/dist/components/command-menu/examples/item-icon-as.d.ts.map +1 -0
- package/dist/components/command-menu/examples/variants-density-items.d.ts +5 -0
- package/dist/components/command-menu/examples/variants-density-items.d.ts.map +1 -0
- package/dist/components/data-table/examples/composition.d.ts +3 -0
- package/dist/components/data-table/examples/composition.d.ts.map +1 -0
- package/dist/components/data-table/examples/divider-styles.d.ts +3 -0
- package/dist/components/data-table/examples/divider-styles.d.ts.map +1 -0
- package/dist/components/data-table/examples/full-width.d.ts +3 -0
- package/dist/components/data-table/examples/full-width.d.ts.map +1 -0
- package/dist/components/data-table/examples/highlight-and-striped.d.ts +3 -0
- package/dist/components/data-table/examples/highlight-and-striped.d.ts.map +1 -0
- package/dist/components/data-table/examples/sizes.d.ts +3 -0
- package/dist/components/data-table/examples/sizes.d.ts.map +1 -0
- package/dist/components/data-table/examples/sorting-pagination.d.ts +3 -0
- package/dist/components/data-table/examples/sorting-pagination.d.ts.map +1 -0
- package/dist/components/data-table/examples/states.d.ts +3 -0
- package/dist/components/data-table/examples/states.d.ts.map +1 -0
- package/dist/components/data-table/examples/sticky-and-headers.d.ts +3 -0
- package/dist/components/data-table/examples/sticky-and-headers.d.ts.map +1 -0
- package/dist/components/digit-input/examples/composition.d.ts +6 -0
- package/dist/components/digit-input/examples/composition.d.ts.map +1 -0
- package/dist/components/digit-input/examples/controlled.d.ts +6 -0
- package/dist/components/digit-input/examples/controlled.d.ts.map +1 -0
- package/dist/components/digit-input/examples/features.d.ts +6 -0
- package/dist/components/digit-input/examples/features.d.ts.map +1 -0
- package/dist/components/digit-input/examples/sizes.d.ts +6 -0
- package/dist/components/digit-input/examples/sizes.d.ts.map +1 -0
- package/dist/components/digit-input/examples/states.d.ts +6 -0
- package/dist/components/digit-input/examples/states.d.ts.map +1 -0
- package/dist/components/dropdown/examples/as-child.d.ts +3 -0
- package/dist/components/dropdown/examples/as-child.d.ts.map +1 -0
- package/dist/components/dropdown/examples/composition.d.ts +3 -0
- package/dist/components/dropdown/examples/composition.d.ts.map +1 -0
- package/dist/components/dropdown/examples/controlled.d.ts +3 -0
- package/dist/components/dropdown/examples/controlled.d.ts.map +1 -0
- package/dist/components/dropdown/examples/full-width.d.ts +3 -0
- package/dist/components/dropdown/examples/full-width.d.ts.map +1 -0
- package/dist/components/dropdown/examples/inset.d.ts +3 -0
- package/dist/components/dropdown/examples/inset.d.ts.map +1 -0
- package/dist/components/dropdown/examples/sizes.d.ts +3 -0
- package/dist/components/dropdown/examples/sizes.d.ts.map +1 -0
- package/dist/components/dropdown/examples/states.d.ts +3 -0
- package/dist/components/dropdown/examples/states.d.ts.map +1 -0
- package/dist/components/dropdown/examples/variants.d.ts +3 -0
- package/dist/components/dropdown/examples/variants.d.ts.map +1 -0
- package/dist/components/file-upload/examples/custom-children.d.ts +6 -0
- package/dist/components/file-upload/examples/custom-children.d.ts.map +1 -0
- package/dist/components/file-upload/examples/full-width.d.ts +6 -0
- package/dist/components/file-upload/examples/full-width.d.ts.map +1 -0
- package/dist/components/hint/examples/a11y-describedby.d.ts +3 -0
- package/dist/components/hint/examples/a11y-describedby.d.ts.map +1 -0
- package/dist/components/hint/examples/controlled-variant.d.ts +3 -0
- package/dist/components/hint/examples/controlled-variant.d.ts.map +1 -0
- package/dist/components/hint/examples/field-states.d.ts +3 -0
- package/dist/components/hint/examples/field-states.d.ts.map +1 -0
- package/dist/components/hint/examples/sizes.d.ts +3 -0
- package/dist/components/hint/examples/sizes.d.ts.map +1 -0
- package/dist/components/hint/examples/variants.d.ts +3 -0
- package/dist/components/hint/examples/variants.d.ts.map +1 -0
- package/dist/components/index.css +8 -0
- package/dist/components/index.css.map +3 -3
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +76 -66
- package/dist/components/index.js.map +3 -3
- package/dist/components/input/examples/affix-url-and-amount.d.ts +5 -0
- package/dist/components/input/examples/affix-url-and-amount.d.ts.map +1 -0
- package/dist/components/input/examples/search.d.ts.map +1 -1
- package/dist/components/kbd/examples/composition-chord-icon.d.ts +3 -0
- package/dist/components/kbd/examples/composition-chord-icon.d.ts.map +1 -0
- package/dist/components/kbd/examples/context-inherit-size.d.ts +6 -0
- package/dist/components/kbd/examples/context-inherit-size.d.ts.map +1 -0
- package/dist/components/kbd/examples/sizes-ladder.d.ts +3 -0
- package/dist/components/kbd/examples/sizes-ladder.d.ts.map +1 -0
- package/dist/components/kbd/examples/states-title.d.ts +3 -0
- package/dist/components/kbd/examples/states-title.d.ts.map +1 -0
- package/dist/components/label/examples/mixed-required-optional.d.ts +3 -0
- package/dist/components/label/examples/mixed-required-optional.d.ts.map +1 -0
- package/dist/components/label/examples/sizes.d.ts +3 -0
- package/dist/components/label/examples/sizes.d.ts.map +1 -0
- package/dist/components/label/examples/states.d.ts +3 -0
- package/dist/components/label/examples/states.d.ts.map +1 -0
- package/dist/components/label/examples/sub-line.d.ts +3 -0
- package/dist/components/label/examples/sub-line.d.ts.map +1 -0
- package/dist/components/link-button/examples/composition.d.ts +3 -0
- package/dist/components/link-button/examples/composition.d.ts.map +1 -0
- package/dist/components/link-button/examples/disabled.d.ts +1 -0
- package/dist/components/link-button/examples/disabled.d.ts.map +1 -1
- package/dist/components/link-button/examples/external.d.ts +1 -1
- package/dist/components/link-button/examples/external.d.ts.map +1 -1
- package/dist/components/link-button/examples/sizes.d.ts +3 -0
- package/dist/components/link-button/examples/sizes.d.ts.map +1 -0
- package/dist/components/modal/examples/pattern-close-behavior.d.ts +3 -0
- package/dist/components/modal/examples/pattern-close-behavior.d.ts.map +1 -0
- package/dist/components/modal/examples/pattern-controlled.d.ts +3 -0
- package/dist/components/modal/examples/pattern-controlled.d.ts.map +1 -0
- package/dist/components/modal/examples/pattern-full-width-footer.d.ts +3 -0
- package/dist/components/modal/examples/pattern-full-width-footer.d.ts.map +1 -0
- package/dist/components/modal/examples/pattern-portal-and-scroll.d.ts +3 -0
- package/dist/components/modal/examples/pattern-portal-and-scroll.d.ts.map +1 -0
- package/dist/components/notification/examples/composition.d.ts +2 -0
- package/dist/components/notification/examples/composition.d.ts.map +1 -0
- package/dist/components/notification/examples/controlled.d.ts +2 -0
- package/dist/components/notification/examples/controlled.d.ts.map +1 -0
- package/dist/components/notification/examples/features.d.ts +2 -0
- package/dist/components/notification/examples/features.d.ts.map +1 -0
- package/dist/components/notification/examples/notification-store.d.ts +4 -1
- package/dist/components/notification/examples/notification-store.d.ts.map +1 -1
- package/dist/components/notification/examples/sizes.d.ts +2 -0
- package/dist/components/notification/examples/sizes.d.ts.map +1 -0
- package/dist/components/notification/examples/states.d.ts +2 -0
- package/dist/components/notification/examples/states.d.ts.map +1 -0
- package/dist/components/notification/examples/toast-queue.d.ts +4 -1
- package/dist/components/notification/examples/toast-queue.d.ts.map +1 -1
- package/dist/components/notification/examples/variants.d.ts +2 -0
- package/dist/components/notification/examples/variants.d.ts.map +1 -0
- package/dist/components/page-content/PageContent.d.ts +13 -0
- package/dist/components/page-content/PageContent.d.ts.map +1 -1
- package/dist/components/pagination/examples/controlled-page.d.ts +1 -1
- package/dist/components/pagination/examples/controlled-page.d.ts.map +1 -1
- package/dist/components/pagination/examples/features.d.ts +6 -0
- package/dist/components/pagination/examples/features.d.ts.map +1 -0
- package/dist/components/pagination/examples/full-width-list.d.ts +1 -1
- package/dist/components/pagination/examples/full-width-list.d.ts.map +1 -1
- package/dist/components/pagination/examples/range-modes.d.ts +6 -0
- package/dist/components/pagination/examples/range-modes.d.ts.map +1 -0
- package/dist/components/pagination/examples/sizes.d.ts +6 -0
- package/dist/components/pagination/examples/sizes.d.ts.map +1 -0
- package/dist/components/pagination/examples/states.d.ts +6 -0
- package/dist/components/pagination/examples/states.d.ts.map +1 -0
- package/dist/components/popover/examples/as-child.d.ts +5 -0
- package/dist/components/popover/examples/as-child.d.ts.map +1 -0
- package/dist/components/popover/examples/composition.d.ts +5 -0
- package/dist/components/popover/examples/composition.d.ts.map +1 -0
- package/dist/components/popover/examples/controlled.d.ts +5 -0
- package/dist/components/popover/examples/controlled.d.ts.map +1 -0
- package/dist/components/popover/examples/features.d.ts +5 -0
- package/dist/components/popover/examples/features.d.ts.map +1 -0
- package/dist/components/popover/examples/full-width.d.ts +5 -0
- package/dist/components/popover/examples/full-width.d.ts.map +1 -0
- package/dist/components/popover/examples/inset-variants.d.ts +5 -0
- package/dist/components/popover/examples/inset-variants.d.ts.map +1 -0
- package/dist/components/popover/examples/placement.d.ts +1 -1
- package/dist/components/popover/examples/placement.d.ts.map +1 -1
- package/dist/components/popover/examples/sizes.d.ts +5 -0
- package/dist/components/popover/examples/sizes.d.ts.map +1 -0
- package/dist/components/popover/examples/states.d.ts +5 -0
- package/dist/components/popover/examples/states.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/labeled.d.ts +1 -1
- package/dist/components/progress-bar/examples/labeled.d.ts.map +1 -1
- package/dist/components/progress-bar/examples/sizes.d.ts +3 -0
- package/dist/components/progress-bar/examples/sizes.d.ts.map +1 -0
- package/dist/components/progress-bar/examples/values.d.ts +3 -0
- package/dist/components/progress-bar/examples/values.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/a11y-label.d.ts +1 -0
- package/dist/components/progress-circle/examples/a11y-label.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/composition.d.ts +1 -1
- package/dist/components/progress-circle/examples/composition.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/controlled.d.ts +1 -1
- package/dist/components/progress-circle/examples/controlled.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/dashboard-ring.d.ts +1 -1
- package/dist/components/progress-circle/examples/dashboard-ring.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/max-scale.d.ts +1 -1
- package/dist/components/progress-circle/examples/max-scale.d.ts.map +1 -1
- package/dist/components/progress-circle/examples/sizes.d.ts +3 -0
- package/dist/components/progress-circle/examples/sizes.d.ts.map +1 -0
- package/dist/components/progress-circle/examples/states.d.ts +6 -0
- package/dist/components/progress-circle/examples/states.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/composition.d.ts +3 -0
- package/dist/components/segmented-control/examples/composition.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/controlled.d.ts +3 -0
- package/dist/components/segmented-control/examples/controlled.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/features.d.ts +3 -0
- package/dist/components/segmented-control/examples/features.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/full-width.d.ts +3 -0
- package/dist/components/segmented-control/examples/full-width.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/sizes.d.ts +3 -0
- package/dist/components/segmented-control/examples/sizes.d.ts.map +1 -0
- package/dist/components/segmented-control/examples/states.d.ts +3 -0
- package/dist/components/segmented-control/examples/states.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-composition.d.ts +3 -0
- package/dist/components/select/examples/pattern-composition.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-controlled.d.ts +3 -0
- package/dist/components/select/examples/pattern-controlled.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-features.d.ts +3 -0
- package/dist/components/select/examples/pattern-features.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-full-width.d.ts +3 -0
- package/dist/components/select/examples/pattern-full-width.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-native.d.ts +3 -0
- package/dist/components/select/examples/pattern-native.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-sizes.d.ts +3 -0
- package/dist/components/select/examples/pattern-sizes.d.ts.map +1 -0
- package/dist/components/select/examples/pattern-states.d.ts +3 -0
- package/dist/components/select/examples/pattern-states.d.ts.map +1 -0
- package/dist/components/slider/examples/composition.d.ts +6 -0
- package/dist/components/slider/examples/composition.d.ts.map +1 -0
- package/dist/components/slider/examples/controlled.d.ts +3 -0
- package/dist/components/slider/examples/controlled.d.ts.map +1 -0
- package/dist/components/slider/examples/features.d.ts +3 -0
- package/dist/components/slider/examples/features.d.ts.map +1 -0
- package/dist/components/slider/examples/full-width.d.ts +3 -0
- package/dist/components/slider/examples/full-width.d.ts.map +1 -0
- package/dist/components/slider/examples/sizes.d.ts +5 -0
- package/dist/components/slider/examples/sizes.d.ts.map +1 -0
- package/dist/components/slider/examples/states.d.ts +3 -0
- package/dist/components/slider/examples/states.d.ts.map +1 -0
- package/dist/components/stepper/examples/composition.d.ts +3 -0
- package/dist/components/stepper/examples/composition.d.ts.map +1 -0
- package/dist/components/stepper/examples/controlled.d.ts +3 -0
- package/dist/components/stepper/examples/controlled.d.ts.map +1 -0
- package/dist/components/stepper/examples/features.d.ts +3 -0
- package/dist/components/stepper/examples/features.d.ts.map +1 -0
- package/dist/components/stepper/examples/full-width.d.ts +3 -0
- package/dist/components/stepper/examples/full-width.d.ts.map +1 -0
- package/dist/components/stepper/examples/low-level-api.d.ts +3 -0
- package/dist/components/stepper/examples/low-level-api.d.ts.map +1 -0
- package/dist/components/stepper/examples/orientation.d.ts +3 -0
- package/dist/components/stepper/examples/orientation.d.ts.map +1 -0
- package/dist/components/stepper/examples/polymorphic-as.d.ts +3 -0
- package/dist/components/stepper/examples/polymorphic-as.d.ts.map +1 -0
- package/dist/components/stepper/examples/sizes.d.ts +3 -0
- package/dist/components/stepper/examples/sizes.d.ts.map +1 -0
- package/dist/components/stepper/examples/states.d.ts +3 -0
- package/dist/components/stepper/examples/states.d.ts.map +1 -0
- package/dist/components/switch/examples/composition.d.ts +3 -0
- package/dist/components/switch/examples/composition.d.ts.map +1 -0
- package/dist/components/switch/examples/controlled.d.ts +3 -0
- package/dist/components/switch/examples/controlled.d.ts.map +1 -0
- package/dist/components/switch/examples/form-features.d.ts +3 -0
- package/dist/components/switch/examples/form-features.d.ts.map +1 -0
- package/dist/components/switch/examples/full-width.d.ts +3 -0
- package/dist/components/switch/examples/full-width.d.ts.map +1 -0
- package/dist/components/switch/examples/sizes.d.ts +3 -0
- package/dist/components/switch/examples/sizes.d.ts.map +1 -0
- package/dist/components/switch/examples/states.d.ts +3 -0
- package/dist/components/switch/examples/states.d.ts.map +1 -0
- package/dist/components/switch/examples/variants.d.ts +3 -0
- package/dist/components/switch/examples/variants.d.ts.map +1 -0
- package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts +3 -2
- package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts.map +1 -1
- package/dist/components/tabs/examples/06-sizes-s-m-l-xl.d.ts +6 -0
- package/dist/components/tabs/examples/06-sizes-s-m-l-xl.d.ts.map +1 -0
- package/dist/components/tabs/examples/07-horizontal-disabled.d.ts +6 -0
- package/dist/components/tabs/examples/07-horizontal-disabled.d.ts.map +1 -0
- package/dist/components/tag/examples/basic.d.ts +3 -0
- package/dist/components/tag/examples/basic.d.ts.map +1 -0
- package/dist/components/tag/examples/composition.d.ts +3 -0
- package/dist/components/tag/examples/composition.d.ts.map +1 -0
- package/dist/components/tag/examples/context-size.d.ts +3 -0
- package/dist/components/tag/examples/context-size.d.ts.map +1 -0
- package/dist/components/tag/examples/controlled.d.ts +3 -0
- package/dist/components/tag/examples/controlled.d.ts.map +1 -0
- package/dist/components/tag/examples/disabled.d.ts +3 -0
- package/dist/components/tag/examples/disabled.d.ts.map +1 -0
- package/dist/components/tag/examples/removable.d.ts +3 -0
- package/dist/components/tag/examples/removable.d.ts.map +1 -0
- package/dist/components/tag/examples/sizes.d.ts +3 -0
- package/dist/components/tag/examples/sizes.d.ts.map +1 -0
- package/dist/components/tag/examples/states.d.ts +3 -0
- package/dist/components/tag/examples/states.d.ts.map +1 -0
- package/dist/components/tag/examples/with-icon.d.ts +3 -0
- package/dist/components/tag/examples/with-icon.d.ts.map +1 -0
- package/dist/components/textarea/examples/composition.d.ts +3 -0
- package/dist/components/textarea/examples/composition.d.ts.map +1 -0
- package/dist/components/textarea/examples/controlled.d.ts +3 -0
- package/dist/components/textarea/examples/controlled.d.ts.map +1 -0
- package/dist/components/textarea/examples/features.d.ts +3 -0
- package/dist/components/textarea/examples/features.d.ts.map +1 -0
- package/dist/components/textarea/examples/full-width.d.ts +3 -0
- package/dist/components/textarea/examples/full-width.d.ts.map +1 -0
- package/dist/components/textarea/examples/sizes.d.ts +3 -0
- package/dist/components/textarea/examples/sizes.d.ts.map +1 -0
- package/dist/components/textarea/examples/states.d.ts +3 -0
- package/dist/components/textarea/examples/states.d.ts.map +1 -0
- package/dist/components/textarea/examples/variants.d.ts +3 -0
- package/dist/components/textarea/examples/variants.d.ts.map +1 -0
- package/dist/components/tooltip/examples/composition.d.ts +3 -0
- package/dist/components/tooltip/examples/composition.d.ts.map +1 -0
- package/dist/components/tooltip/examples/controlled.d.ts +3 -0
- package/dist/components/tooltip/examples/controlled.d.ts.map +1 -0
- package/dist/components/tooltip/examples/delay.d.ts +3 -0
- package/dist/components/tooltip/examples/delay.d.ts.map +1 -0
- package/dist/components/tooltip/examples/long-content.d.ts +3 -0
- package/dist/components/tooltip/examples/long-content.d.ts.map +1 -0
- package/dist/components/tooltip/examples/side.d.ts +3 -0
- package/dist/components/tooltip/examples/side.d.ts.map +1 -0
- package/dist/components/tooltip/examples/sizes.d.ts +3 -0
- package/dist/components/tooltip/examples/sizes.d.ts.map +1 -0
- package/dist/components/tooltip/examples/states.d.ts +3 -0
- package/dist/components/tooltip/examples/states.d.ts.map +1 -0
- package/dist/components/tooltip/examples/surfaces.d.ts +3 -0
- package/dist/components/tooltip/examples/surfaces.d.ts.map +1 -0
- package/dist/components/typography/examples/as-prop.d.ts +3 -0
- package/dist/components/typography/examples/as-prop.d.ts.map +1 -0
- package/dist/components/typography/examples/composition.d.ts +6 -0
- package/dist/components/typography/examples/composition.d.ts.map +1 -0
- package/dist/components/typography/examples/full-width.d.ts +6 -0
- package/dist/components/typography/examples/full-width.d.ts.map +1 -0
- package/dist/components/typography/examples/reading-and-form.d.ts +6 -0
- package/dist/components/typography/examples/reading-and-form.d.ts.map +1 -0
- package/dist/components/typography/examples/states.d.ts +3 -0
- package/dist/components/typography/examples/states.d.ts.map +1 -0
- package/dist/components/typography/examples/variant-catalog.d.ts +3 -0
- package/dist/components/typography/examples/variant-catalog.d.ts.map +1 -0
- package/dist/components/typography/examples/variants.d.ts +3 -0
- package/dist/components/typography/examples/variants.d.ts.map +1 -0
- package/dist/index.css +8 -0
- package/dist/index.css.map +3 -3
- package/dist/index.js +76 -66
- package/dist/index.js.map +3 -3
- package/dist/layout/sidebar/Sidebar.d.ts +10 -7
- package/dist/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/layout/sidebar/SidebarRoot.d.ts.map +1 -1
- package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts +1 -0
- package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts.map +1 -1
- package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts +2 -2
- package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts.map +1 -1
- package/dist/layout/sidebar/examples/03-controlled-state.d.ts +1 -1
- package/dist/layout/sidebar/examples/03-controlled-state.d.ts.map +1 -1
- package/dist/layout/sidebar/examples/04-router-navigation.d.ts.map +1 -1
- package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/accordion/COMPONENT.md +31 -8
- package/src/components/accordion/examples/01-faq-marketing.tsx +2 -1
- package/src/components/accordion/examples/02-settings-panels.tsx +2 -1
- package/src/components/accordion/examples/03-checkout-order-summary.tsx +3 -1
- package/src/components/accordion/examples/04-api-docs-sections.tsx +5 -2
- package/src/components/accordion/examples/05-knowledge-base-categories.tsx +2 -1
- package/src/components/avatar/COMPONENT.md +11 -3
- package/src/components/avatar/examples/group-three.tsx +28 -0
- package/src/components/avatar/examples/sizes.tsx +24 -0
- package/src/components/avatar/examples/src-from-state.tsx +35 -0
- package/src/components/avatar/examples/states.tsx +26 -0
- package/src/components/badge/COMPONENT.md +15 -1
- package/src/components/banner/COMPONENT.md +28 -1
- package/src/components/banner/examples/controlled-visibility.tsx +42 -0
- package/src/components/banner/examples/dismiss-close-button.tsx +26 -0
- package/src/components/breadcrumb/COMPONENT.md +15 -3
- package/src/components/breadcrumb/examples/composition.tsx +25 -0
- package/src/components/breadcrumb/examples/full-width.tsx +24 -0
- package/src/components/breadcrumb/examples/sizes.tsx +25 -0
- package/src/components/breadcrumb/examples/states.tsx +26 -0
- package/src/components/button/COMPONENT.md +6 -1
- package/src/components/button/examples/full-width-stack.tsx +23 -0
- package/src/components/button/examples/icon-composition.tsx +63 -0
- package/src/components/button/examples/sizes-ladder.tsx +30 -0
- package/src/components/button-group/COMPONENT.md +13 -1
- package/src/components/button-group/examples/full-width.tsx +22 -0
- package/src/components/card/COMPONENT.md +23 -3
- package/src/components/card/examples/mini-kpi.tsx +16 -0
- package/src/components/checkbox/COMPONENT.md +22 -12
- package/src/components/checkbox/examples/empty-label-form.tsx +24 -0
- package/src/components/code-block/COMPONENT.md +26 -11
- package/src/components/code-block/examples/controlled.tsx +43 -0
- package/src/components/color-picker/COMPONENT.md +36 -12
- package/src/components/color-picker/examples/field-eyedropper.tsx +58 -0
- package/src/components/color-picker/examples/format-variants.tsx +58 -0
- package/src/components/color-picker/examples/full-width.tsx +49 -0
- package/src/components/color-picker/examples/hex-input-sizes.tsx +34 -0
- package/src/components/color-picker/examples/panel-placement.tsx +68 -0
- package/src/components/color-picker/examples/readout-trigger.tsx +70 -0
- package/src/components/color-picker/examples/states.tsx +79 -0
- package/src/components/command-menu/COMPONENT.md +30 -11
- package/src/components/command-menu/examples/composition-tags-footer.tsx +136 -0
- package/src/components/command-menu/examples/controlled-open-search.tsx +76 -0
- package/src/components/command-menu/examples/disabled-items.tsx +7 -3
- package/src/components/command-menu/examples/full-width-panel.tsx +52 -0
- package/src/components/command-menu/examples/item-icon-as.tsx +48 -0
- package/src/components/command-menu/examples/variants-density-items.tsx +85 -0
- package/src/components/data-table/COMPONENT.md +25 -1
- package/src/components/data-table/examples/composition.tsx +91 -0
- package/src/components/data-table/examples/divider-styles.tsx +67 -0
- package/src/components/data-table/examples/examples-demos.module.css +78 -0
- package/src/components/data-table/examples/full-width.tsx +39 -0
- package/src/components/data-table/examples/highlight-and-striped.tsx +71 -0
- package/src/components/data-table/examples/sizes.tsx +85 -0
- package/src/components/data-table/examples/sorting-pagination.tsx +76 -0
- package/src/components/data-table/examples/states.tsx +44 -0
- package/src/components/data-table/examples/sticky-and-headers.tsx +113 -0
- package/src/components/datepicker/COMPONENT.md +28 -5
- package/src/components/digit-input/COMPONENT.md +18 -2
- package/src/components/digit-input/examples/composition.tsx +24 -0
- package/src/components/digit-input/examples/controlled.tsx +26 -0
- package/src/components/digit-input/examples/features.tsx +30 -0
- package/src/components/digit-input/examples/sizes.tsx +23 -0
- package/src/components/digit-input/examples/states.tsx +22 -0
- package/src/components/divider/COMPONENT.md +6 -2
- package/src/components/drawer/COMPONENT.md +63 -22
- package/src/components/dropdown/COMPONENT.md +34 -10
- package/src/components/dropdown/examples/as-child.tsx +26 -0
- package/src/components/dropdown/examples/composition.tsx +93 -0
- package/src/components/dropdown/examples/controlled.tsx +31 -0
- package/src/components/dropdown/examples/dropdown-examples.module.css +33 -0
- package/src/components/dropdown/examples/full-width.tsx +28 -0
- package/src/components/dropdown/examples/inset.tsx +51 -0
- package/src/components/dropdown/examples/sizes.tsx +99 -0
- package/src/components/dropdown/examples/states.tsx +20 -0
- package/src/components/dropdown/examples/variants.tsx +21 -0
- package/src/components/file-upload/COMPONENT.md +29 -8
- package/src/components/file-upload/examples/custom-children.tsx +21 -0
- package/src/components/file-upload/examples/full-width.tsx +32 -0
- package/src/components/hint/COMPONENT.md +21 -9
- package/src/components/hint/examples/a11y-describedby.tsx +23 -0
- package/src/components/hint/examples/controlled-variant.tsx +23 -0
- package/src/components/hint/examples/field-states.tsx +44 -0
- package/src/components/hint/examples/sizes.tsx +13 -0
- package/src/components/hint/examples/variants.tsx +18 -0
- package/src/components/input/COMPONENT.md +4 -3
- package/src/components/input/examples/affix-url-and-amount.tsx +24 -0
- package/src/components/input/examples/search.tsx +1 -0
- package/src/components/kbd/COMPONENT.md +6 -2
- package/src/components/kbd/examples/composition-chord-icon.tsx +34 -0
- package/src/components/kbd/examples/context-inherit-size.tsx +46 -0
- package/src/components/kbd/examples/sizes-ladder.tsx +21 -0
- package/src/components/kbd/examples/states-title.tsx +19 -0
- package/src/components/label/COMPONENT.md +36 -6
- package/src/components/label/examples/mixed-required-optional.tsx +17 -0
- package/src/components/label/examples/sizes.tsx +37 -0
- package/src/components/label/examples/states.tsx +17 -0
- package/src/components/label/examples/sub-line.tsx +11 -0
- package/src/components/link-button/COMPONENT.md +33 -4
- package/src/components/link-button/examples/composition.tsx +27 -0
- package/src/components/link-button/examples/disabled.tsx +1 -0
- package/src/components/link-button/examples/external.tsx +1 -1
- package/src/components/link-button/examples/sizes.tsx +21 -0
- package/src/components/modal/COMPONENT.md +21 -7
- package/src/components/modal/examples/pattern-close-behavior.tsx +52 -0
- package/src/components/modal/examples/pattern-controlled.tsx +39 -0
- package/src/components/modal/examples/pattern-full-width-footer.tsx +46 -0
- package/src/components/modal/examples/pattern-portal-and-scroll.tsx +82 -0
- package/src/components/notification/COMPONENT.md +12 -6
- package/src/components/notification/examples/composition.tsx +90 -0
- package/src/components/notification/examples/controlled.tsx +87 -0
- package/src/components/notification/examples/features.tsx +102 -0
- package/src/components/notification/examples/notification-store.tsx +4 -57
- package/src/components/notification/examples/sizes.tsx +53 -0
- package/src/components/notification/examples/states.tsx +143 -0
- package/src/components/notification/examples/toast-queue.tsx +4 -62
- package/src/components/notification/examples/variants.tsx +68 -0
- package/src/components/page-content/COMPONENT.md +123 -0
- package/src/components/pagination/COMPONENT.md +28 -6
- package/src/components/pagination/examples/controlled-page.tsx +1 -1
- package/src/components/pagination/examples/features.tsx +107 -0
- package/src/components/pagination/examples/full-width-list.tsx +1 -1
- package/src/components/pagination/examples/range-modes.tsx +60 -0
- package/src/components/pagination/examples/sizes.tsx +50 -0
- package/src/components/pagination/examples/states.tsx +80 -0
- package/src/components/popover/COMPONENT.md +23 -34
- package/src/components/popover/examples/as-child.tsx +24 -0
- package/src/components/popover/examples/composition.tsx +42 -0
- package/src/components/popover/examples/controlled.tsx +40 -0
- package/src/components/popover/examples/features.tsx +65 -0
- package/src/components/popover/examples/full-width.tsx +34 -0
- package/src/components/popover/examples/inset-variants.tsx +46 -0
- package/src/components/popover/examples/placement.tsx +10 -10
- package/src/components/popover/examples/popover-examples.module.css +104 -0
- package/src/components/popover/examples/sizes.tsx +30 -0
- package/src/components/popover/examples/states.tsx +36 -0
- package/src/components/progress-bar/COMPONENT.md +25 -8
- package/src/components/progress-bar/examples/labeled.tsx +2 -2
- package/src/components/progress-bar/examples/sizes.tsx +13 -0
- package/src/components/progress-bar/examples/values.tsx +13 -0
- package/src/components/progress-circle/COMPONENT.md +9 -5
- package/src/components/progress-circle/examples/a11y-label.tsx +1 -0
- package/src/components/progress-circle/examples/composition.tsx +2 -2
- package/src/components/progress-circle/examples/controlled.tsx +2 -7
- package/src/components/progress-circle/examples/dashboard-ring.tsx +1 -1
- package/src/components/progress-circle/examples/max-scale.tsx +1 -1
- package/src/components/progress-circle/examples/sizes.tsx +77 -0
- package/src/components/progress-circle/examples/states.tsx +95 -0
- package/src/components/radio/COMPONENT.md +34 -20
- package/src/components/segmented-control/COMPONENT.md +20 -7
- package/src/components/segmented-control/examples/composition.tsx +55 -0
- package/src/components/segmented-control/examples/controlled.tsx +23 -0
- package/src/components/segmented-control/examples/features.tsx +45 -0
- package/src/components/segmented-control/examples/full-width.tsx +16 -0
- package/src/components/segmented-control/examples/segmented-examples.module.css +29 -0
- package/src/components/segmented-control/examples/sizes.tsx +51 -0
- package/src/components/segmented-control/examples/states.tsx +43 -0
- package/src/components/segmented-progress-bar/COMPONENT.md +23 -8
- package/src/components/select/COMPONENT.md +39 -9
- package/src/components/select/examples/examples.module.css +11 -0
- package/src/components/select/examples/pattern-composition.tsx +40 -0
- package/src/components/select/examples/pattern-controlled.tsx +29 -0
- package/src/components/select/examples/pattern-features.tsx +33 -0
- package/src/components/select/examples/pattern-full-width.tsx +21 -0
- package/src/components/select/examples/pattern-native.tsx +14 -0
- package/src/components/select/examples/pattern-sizes.tsx +51 -0
- package/src/components/select/examples/pattern-states.tsx +47 -0
- package/src/components/slider/COMPONENT.md +24 -16
- package/src/components/slider/examples/composition.tsx +14 -0
- package/src/components/slider/examples/controlled.tsx +23 -0
- package/src/components/slider/examples/examples.module.css +20 -0
- package/src/components/slider/examples/features.tsx +17 -0
- package/src/components/slider/examples/full-width.tsx +12 -0
- package/src/components/slider/examples/sizes.tsx +15 -0
- package/src/components/slider/examples/states.tsx +11 -0
- package/src/components/stepper/COMPONENT.md +21 -11
- package/src/components/stepper/examples/composition.tsx +31 -0
- package/src/components/stepper/examples/controlled.tsx +49 -0
- package/src/components/stepper/examples/examples.module.css +65 -0
- package/src/components/stepper/examples/features.tsx +29 -0
- package/src/components/stepper/examples/full-width.tsx +34 -0
- package/src/components/stepper/examples/low-level-api.tsx +58 -0
- package/src/components/stepper/examples/orientation.tsx +52 -0
- package/src/components/stepper/examples/polymorphic-as.tsx +51 -0
- package/src/components/stepper/examples/sizes.tsx +71 -0
- package/src/components/stepper/examples/states.tsx +44 -0
- package/src/components/switch/COMPONENT.md +18 -6
- package/src/components/switch/examples/composition.tsx +24 -0
- package/src/components/switch/examples/controlled.tsx +18 -0
- package/src/components/switch/examples/examples.module.css +9 -0
- package/src/components/switch/examples/form-features.tsx +31 -0
- package/src/components/switch/examples/full-width.tsx +15 -0
- package/src/components/switch/examples/sizes.tsx +23 -0
- package/src/components/switch/examples/states.tsx +32 -0
- package/src/components/switch/examples/variants.tsx +19 -0
- package/src/components/tabs/COMPONENT.md +30 -24
- package/src/components/tabs/examples/03-tab-triggers-with-icons.tsx +30 -17
- package/src/components/tabs/examples/06-sizes-s-m-l-xl.tsx +58 -0
- package/src/components/tabs/examples/07-horizontal-disabled.tsx +40 -0
- package/src/components/tabs/examples/examples.module.css +21 -0
- package/src/components/tag/COMPONENT.md +21 -6
- package/src/components/tag/examples/basic.tsx +14 -0
- package/src/components/tag/examples/composition.tsx +19 -0
- package/src/components/tag/examples/context-size.tsx +17 -0
- package/src/components/tag/examples/controlled.tsx +31 -0
- package/src/components/tag/examples/disabled.tsx +15 -0
- package/src/components/tag/examples/removable.tsx +22 -0
- package/src/components/tag/examples/sizes.tsx +15 -0
- package/src/components/tag/examples/states.tsx +17 -0
- package/src/components/tag/examples/with-icon.tsx +23 -0
- package/src/components/textarea/COMPONENT.md +20 -8
- package/src/components/textarea/examples/composition.tsx +21 -0
- package/src/components/textarea/examples/controlled.tsx +18 -0
- package/src/components/textarea/examples/examples.module.css +12 -0
- package/src/components/textarea/examples/features.tsx +65 -0
- package/src/components/textarea/examples/full-width.tsx +14 -0
- package/src/components/textarea/examples/sizes.tsx +21 -0
- package/src/components/textarea/examples/states.tsx +19 -0
- package/src/components/textarea/examples/variants.tsx +15 -0
- package/src/components/tooltip/COMPONENT.md +16 -11
- package/src/components/tooltip/examples/composition.tsx +44 -0
- package/src/components/tooltip/examples/{scenario-controlled-programmatic.tsx → controlled.tsx} +6 -7
- package/src/components/tooltip/examples/delay.tsx +31 -0
- package/src/components/tooltip/examples/examples.module.css +64 -3
- package/src/components/tooltip/examples/long-content.tsx +34 -0
- package/src/components/tooltip/examples/side.tsx +69 -0
- package/src/components/tooltip/examples/sizes.tsx +69 -0
- package/src/components/tooltip/examples/states.tsx +57 -0
- package/src/components/tooltip/examples/surfaces.tsx +54 -0
- package/src/components/typography/COMPONENT.md +22 -8
- package/src/components/typography/examples/as-prop.tsx +25 -0
- package/src/components/typography/examples/composition.tsx +29 -0
- package/src/components/typography/examples/examples.module.css +65 -0
- package/src/components/typography/examples/full-width.tsx +32 -0
- package/src/components/typography/examples/reading-and-form.tsx +40 -0
- package/src/components/typography/examples/states.tsx +27 -0
- package/src/components/typography/examples/variant-catalog.tsx +107 -0
- package/src/components/typography/examples/variants.tsx +61 -0
- package/src/layout/sidebar/COMPONENT.md +32 -10
- package/src/layout/sidebar/examples/01-app-shell-nav.tsx +13 -2
- package/src/layout/sidebar/examples/02-collapsible-desktop.tsx +15 -5
- package/src/layout/sidebar/examples/03-controlled-state.tsx +13 -3
- package/src/layout/sidebar/examples/04-router-navigation.tsx +12 -2
- package/src/layout/sidebar/examples/05-responsive-behavior.tsx +14 -4
- package/dist/components/slider/examples/01-volume.d.ts +0 -5
- package/dist/components/slider/examples/01-volume.d.ts.map +0 -1
- package/dist/components/slider/examples/02-price-range.d.ts +0 -5
- package/dist/components/slider/examples/02-price-range.d.ts.map +0 -1
- package/dist/components/slider/examples/03-controlled.d.ts +0 -5
- package/dist/components/slider/examples/03-controlled.d.ts.map +0 -1
- package/dist/components/slider/examples/04-disabled.d.ts +0 -5
- package/dist/components/slider/examples/04-disabled.d.ts.map +0 -1
- package/dist/components/tag/examples/04-tag-sizes.d.ts +0 -3
- package/dist/components/tag/examples/04-tag-sizes.d.ts.map +0 -1
- package/dist/components/textarea/examples/03-controlled.d.ts +0 -5
- package/dist/components/textarea/examples/03-controlled.d.ts.map +0 -1
- package/dist/components/textarea/examples/04-full-width.d.ts +0 -5
- package/dist/components/textarea/examples/04-full-width.d.ts.map +0 -1
- package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts +0 -5
- package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts.map +0 -1
- package/dist/components/tooltip/examples/scenario-delay-provider.d.ts +0 -5
- package/dist/components/tooltip/examples/scenario-delay-provider.d.ts.map +0 -1
- package/dist/components/tooltip/examples/scenario-long-content.d.ts +0 -5
- package/dist/components/tooltip/examples/scenario-long-content.d.ts.map +0 -1
- package/dist/components/tooltip/examples/scenario-side-bottom.d.ts +0 -5
- package/dist/components/tooltip/examples/scenario-side-bottom.d.ts.map +0 -1
- package/src/components/slider/examples/01-volume.tsx +0 -17
- package/src/components/slider/examples/02-price-range.tsx +0 -18
- package/src/components/slider/examples/03-controlled.tsx +0 -30
- package/src/components/slider/examples/04-disabled.tsx +0 -25
- package/src/components/tag/examples/04-tag-sizes.tsx +0 -18
- package/src/components/textarea/examples/03-controlled.tsx +0 -27
- package/src/components/textarea/examples/04-full-width.tsx +0 -23
- package/src/components/tooltip/examples/scenario-delay-provider.tsx +0 -19
- package/src/components/tooltip/examples/scenario-long-content.tsx +0 -22
- package/src/components/tooltip/examples/scenario-side-bottom.tsx +0 -21
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Search } from "lucide-react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import { Button } from "@/components/button/Button";
|
|
5
|
+
import { CommandMenu } from "@/components/command-menu/CommandMenu";
|
|
6
|
+
import { Typography } from "@/components/typography/Typography";
|
|
7
|
+
|
|
8
|
+
const inputIconStyle: React.CSSProperties = {
|
|
9
|
+
width: "var(--prime-sys-size-control-m-icon)",
|
|
10
|
+
height: "var(--prime-sys-size-control-m-icon)",
|
|
11
|
+
color: "var(--prime-sys-color-content-muted)",
|
|
12
|
+
flexShrink: 0,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const toolbarStyle: React.CSSProperties = {
|
|
16
|
+
display: "flex",
|
|
17
|
+
flexWrap: "wrap",
|
|
18
|
+
gap: "var(--prime-sys-spacing-x3)",
|
|
19
|
+
alignItems: "center",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Controlled `Dialog` and controlled `Input` value synced with parent state (playground `controlled-open-search.tsx`).
|
|
24
|
+
*/
|
|
25
|
+
export default function CommandMenuExampleControlledOpenSearch() {
|
|
26
|
+
const [open, setOpen] = React.useState(false);
|
|
27
|
+
const [query, setQuery] = React.useState("");
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<>
|
|
31
|
+
<div style={toolbarStyle}>
|
|
32
|
+
<Typography.Root variant="body-small" tone="muted">
|
|
33
|
+
External query: «{query || "…"}»
|
|
34
|
+
</Typography.Root>
|
|
35
|
+
<Button.Root size="m" variant="primary" onClick={() => setOpen(true)}>
|
|
36
|
+
Open with external search string
|
|
37
|
+
</Button.Root>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<CommandMenu.Dialog
|
|
41
|
+
open={open}
|
|
42
|
+
onOpenChange={(next) => {
|
|
43
|
+
setOpen(next);
|
|
44
|
+
if (!next) setQuery("");
|
|
45
|
+
}}
|
|
46
|
+
>
|
|
47
|
+
<CommandMenu.InputRow
|
|
48
|
+
leading={<Search style={inputIconStyle} strokeWidth={2} aria-hidden />}
|
|
49
|
+
>
|
|
50
|
+
<CommandMenu.Input
|
|
51
|
+
placeholder="Search synced with parent…"
|
|
52
|
+
aria-label="Search"
|
|
53
|
+
value={query}
|
|
54
|
+
onChange={(e) => setQuery(e.target.value)}
|
|
55
|
+
/>
|
|
56
|
+
</CommandMenu.InputRow>
|
|
57
|
+
<CommandMenu.List>
|
|
58
|
+
<CommandMenu.Group heading="Commands">
|
|
59
|
+
<CommandMenu.Item
|
|
60
|
+
value="clear filter"
|
|
61
|
+
keywords="clear reset"
|
|
62
|
+
onSelect={() => {
|
|
63
|
+
setQuery("");
|
|
64
|
+
}}
|
|
65
|
+
>
|
|
66
|
+
Clear filter
|
|
67
|
+
</CommandMenu.Item>
|
|
68
|
+
<CommandMenu.Item value="done" onSelect={() => setOpen(false)}>
|
|
69
|
+
Close palette
|
|
70
|
+
</CommandMenu.Item>
|
|
71
|
+
</CommandMenu.Group>
|
|
72
|
+
</CommandMenu.List>
|
|
73
|
+
</CommandMenu.Dialog>
|
|
74
|
+
</>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
@@ -17,8 +17,8 @@ const footerStyle: React.CSSProperties = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* Disabled items, empty `value` (always visible in results), and notes on empty filter UX.
|
|
21
|
+
* `disabled` rows are omitted from the list and keyboard order — not grayed in place.
|
|
22
22
|
*/
|
|
23
23
|
export default function CommandMenuExampleDisabledItems() {
|
|
24
24
|
const [open, setOpen] = React.useState(false);
|
|
@@ -48,6 +48,9 @@ export default function CommandMenuExampleDisabledItems() {
|
|
|
48
48
|
>
|
|
49
49
|
Publish
|
|
50
50
|
</CommandMenu.Item>
|
|
51
|
+
<CommandMenu.Item value="" keywords="" onSelect={() => setOpen(false)}>
|
|
52
|
+
Always visible — empty value ignores the filter query
|
|
53
|
+
</CommandMenu.Item>
|
|
51
54
|
</CommandMenu.Group>
|
|
52
55
|
{/* `disabled` items are excluded from visible options — this row never appears in the listbox */}
|
|
53
56
|
<CommandMenu.Group heading="Hidden when disabled">
|
|
@@ -64,7 +67,8 @@ export default function CommandMenuExampleDisabledItems() {
|
|
|
64
67
|
<CommandMenu.Footer style={footerStyle}>
|
|
65
68
|
<Typography.Root variant="body-compact" tone="muted">
|
|
66
69
|
Searching “delete” finds no option: the dangerous action is disabled and removed from
|
|
67
|
-
the palette, not listed as inactive.
|
|
70
|
+
the palette, not listed as inactive. If nothing matches, groups collapse — add your own
|
|
71
|
+
empty state below the list if needed.
|
|
68
72
|
</Typography.Root>
|
|
69
73
|
</CommandMenu.Footer>
|
|
70
74
|
</CommandMenu.Dialog>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Search } from "lucide-react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import { Button } from "@/components/button/Button";
|
|
5
|
+
import { CommandMenu } from "@/components/command-menu/CommandMenu";
|
|
6
|
+
import commandMenuStyles from "@/components/command-menu/CommandMenu.module.css";
|
|
7
|
+
|
|
8
|
+
const inputIconStyle: React.CSSProperties = {
|
|
9
|
+
width: "var(--prime-sys-size-control-m-icon)",
|
|
10
|
+
height: "var(--prime-sys-size-control-m-icon)",
|
|
11
|
+
color: "var(--prime-sys-color-content-muted)",
|
|
12
|
+
flexShrink: 0,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Wider panel via `dialogContentWide` from the CommandMenu CSS module on `Dialog` `className`
|
|
17
|
+
* (playground `full-width-panel.tsx` uses a local demo class with the same width token).
|
|
18
|
+
*/
|
|
19
|
+
export default function CommandMenuExampleFullWidthPanel() {
|
|
20
|
+
const [open, setOpen] = React.useState(false);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<>
|
|
24
|
+
<Button.Root size="m" variant="neutral" mode="stroke" onClick={() => setOpen(true)}>
|
|
25
|
+
Wide panel
|
|
26
|
+
</Button.Root>
|
|
27
|
+
|
|
28
|
+
<CommandMenu.Dialog
|
|
29
|
+
open={open}
|
|
30
|
+
onOpenChange={setOpen}
|
|
31
|
+
className={commandMenuStyles.dialogContentWide}
|
|
32
|
+
>
|
|
33
|
+
<CommandMenu.InputRow
|
|
34
|
+
leading={<Search style={inputIconStyle} strokeWidth={2} aria-hidden />}
|
|
35
|
+
>
|
|
36
|
+
<CommandMenu.Input placeholder="Wider than default max-width…" aria-label="Search" />
|
|
37
|
+
</CommandMenu.InputRow>
|
|
38
|
+
<CommandMenu.List>
|
|
39
|
+
<CommandMenu.Group heading="Layout">
|
|
40
|
+
<CommandMenu.Item
|
|
41
|
+
value="dialog content wide class"
|
|
42
|
+
keywords="layout"
|
|
43
|
+
onSelect={() => setOpen(false)}
|
|
44
|
+
>
|
|
45
|
+
Panel className from CommandMenu.module.css
|
|
46
|
+
</CommandMenu.Item>
|
|
47
|
+
</CommandMenu.Group>
|
|
48
|
+
</CommandMenu.List>
|
|
49
|
+
</CommandMenu.Dialog>
|
|
50
|
+
</>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Circle, Square, Triangle } from "lucide-react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import { Button } from "@/components/button/Button";
|
|
5
|
+
import { CommandMenu } from "@/components/command-menu/CommandMenu";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* `ItemIcon` `as` prop: SVG components or native `span` (playground `item-icon-as.tsx`).
|
|
9
|
+
*/
|
|
10
|
+
export default function CommandMenuExampleItemIconAs() {
|
|
11
|
+
const [open, setOpen] = React.useState(false);
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<>
|
|
15
|
+
<Button.Root size="m" variant="neutral" mode="stroke" onClick={() => setOpen(true)}>
|
|
16
|
+
ItemIcon polymorphism
|
|
17
|
+
</Button.Root>
|
|
18
|
+
|
|
19
|
+
<CommandMenu.Dialog open={open} onOpenChange={setOpen}>
|
|
20
|
+
<CommandMenu.InputRow>
|
|
21
|
+
<CommandMenu.Input placeholder="Icons as components…" aria-label="Search" />
|
|
22
|
+
</CommandMenu.InputRow>
|
|
23
|
+
<CommandMenu.List>
|
|
24
|
+
<CommandMenu.Group heading="Polymorphic ItemIcon">
|
|
25
|
+
<CommandMenu.Item value="circle" onSelect={() => setOpen(false)}>
|
|
26
|
+
<CommandMenu.ItemIcon as={Circle} strokeWidth={2} aria-hidden />
|
|
27
|
+
Circle
|
|
28
|
+
</CommandMenu.Item>
|
|
29
|
+
<CommandMenu.Item value="square" onSelect={() => setOpen(false)}>
|
|
30
|
+
<CommandMenu.ItemIcon as={Square} strokeWidth={2} aria-hidden />
|
|
31
|
+
Square
|
|
32
|
+
</CommandMenu.Item>
|
|
33
|
+
<CommandMenu.Item value="triangle" onSelect={() => setOpen(false)}>
|
|
34
|
+
<CommandMenu.ItemIcon as={Triangle} strokeWidth={2} aria-hidden />
|
|
35
|
+
Triangle
|
|
36
|
+
</CommandMenu.Item>
|
|
37
|
+
<CommandMenu.Item value="label" onSelect={() => setOpen(false)}>
|
|
38
|
+
<CommandMenu.ItemIcon as="span" aria-hidden>
|
|
39
|
+
●
|
|
40
|
+
</CommandMenu.ItemIcon>
|
|
41
|
+
Text mark in span
|
|
42
|
+
</CommandMenu.Item>
|
|
43
|
+
</CommandMenu.Group>
|
|
44
|
+
</CommandMenu.List>
|
|
45
|
+
</CommandMenu.Dialog>
|
|
46
|
+
</>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Search } from "lucide-react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import { Button } from "@/components/button/Button";
|
|
5
|
+
import { CommandMenu } from "@/components/command-menu/CommandMenu";
|
|
6
|
+
|
|
7
|
+
const inputIconStyle: React.CSSProperties = {
|
|
8
|
+
width: "var(--prime-sys-size-control-m-icon)",
|
|
9
|
+
height: "var(--prime-sys-size-control-m-icon)",
|
|
10
|
+
color: "var(--prime-sys-color-content-muted)",
|
|
11
|
+
flexShrink: 0,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const triggerRowStyle: React.CSSProperties = {
|
|
15
|
+
display: "flex",
|
|
16
|
+
flexWrap: "wrap",
|
|
17
|
+
gap: "var(--prime-sys-spacing-x3)",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
type DensityDemo = "compact" | "comfortable";
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* `InputRow` `density` and list row scale via `Item` `size` (playground `variants-density-items.tsx`).
|
|
25
|
+
*/
|
|
26
|
+
export default function CommandMenuExampleVariantsDensityItems() {
|
|
27
|
+
const [open, setOpen] = React.useState(false);
|
|
28
|
+
const [density, setDensity] = React.useState<DensityDemo>("compact");
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<>
|
|
32
|
+
<div style={triggerRowStyle}>
|
|
33
|
+
<Button.Root
|
|
34
|
+
size="m"
|
|
35
|
+
variant="neutral"
|
|
36
|
+
mode="stroke"
|
|
37
|
+
onClick={() => {
|
|
38
|
+
setDensity("compact");
|
|
39
|
+
setOpen(true);
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
42
|
+
Compact density
|
|
43
|
+
</Button.Root>
|
|
44
|
+
<Button.Root
|
|
45
|
+
size="m"
|
|
46
|
+
variant="neutral"
|
|
47
|
+
mode="stroke"
|
|
48
|
+
onClick={() => {
|
|
49
|
+
setDensity("comfortable");
|
|
50
|
+
setOpen(true);
|
|
51
|
+
}}
|
|
52
|
+
>
|
|
53
|
+
Comfortable density
|
|
54
|
+
</Button.Root>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<CommandMenu.Dialog open={open} onOpenChange={setOpen}>
|
|
58
|
+
<CommandMenu.InputRow
|
|
59
|
+
density={density}
|
|
60
|
+
leading={<Search style={inputIconStyle} strokeWidth={2} aria-hidden />}
|
|
61
|
+
>
|
|
62
|
+
<CommandMenu.Input placeholder="Search…" aria-label="Search" />
|
|
63
|
+
</CommandMenu.InputRow>
|
|
64
|
+
<CommandMenu.List>
|
|
65
|
+
<CommandMenu.Group heading='Items size="s"'>
|
|
66
|
+
<CommandMenu.Item value="short list" size="s" onSelect={() => setOpen(false)}>
|
|
67
|
+
Compact row
|
|
68
|
+
</CommandMenu.Item>
|
|
69
|
+
<CommandMenu.Item value="another s" size="s" onSelect={() => setOpen(false)}>
|
|
70
|
+
Second compact row
|
|
71
|
+
</CommandMenu.Item>
|
|
72
|
+
</CommandMenu.Group>
|
|
73
|
+
<CommandMenu.Group heading='Items size="m"'>
|
|
74
|
+
<CommandMenu.Item value="tall row" size="m" onSelect={() => setOpen(false)}>
|
|
75
|
+
Taller list row
|
|
76
|
+
</CommandMenu.Item>
|
|
77
|
+
<CommandMenu.Item value="another m" size="m" onSelect={() => setOpen(false)}>
|
|
78
|
+
Another size m item
|
|
79
|
+
</CommandMenu.Item>
|
|
80
|
+
</CommandMenu.Group>
|
|
81
|
+
</CommandMenu.List>
|
|
82
|
+
</CommandMenu.Dialog>
|
|
83
|
+
</>
|
|
84
|
+
);
|
|
85
|
+
}
|
|
@@ -18,7 +18,31 @@
|
|
|
18
18
|
- **Public API** — a single compound entry: `DataTable` with `Root` (`DataTableRoot`). There are no other exported subcomponents.
|
|
19
19
|
- **Structure** — `ControlSizeProvider` wraps a root `div` (data attributes for size, dividers, header visibility, stickiness, table width mode, hover highlights, zebra). Inside: `ScrollContainer` viewport → `<table>`, optional `<thead>` (`<th>` per column), `<tbody>` with rows, and an `aria-hidden` sentinel at the bottom when `infiniteScroll` is on (for `IntersectionObserver` or scroll fallback).
|
|
20
20
|
- **Footer** — always shows a “shown range / total” line; if not `infiniteScroll` and `showPagination` and there is more than one page, it renders `Pagination.Root`; in infinite mode it may show a short status when more rows can be revealed or loaded.
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
### Playground snippets
|
|
23
|
+
|
|
24
|
+
Demos match **`playground/sections/DataTableSection.tsx`** (order and intent). Snippets under **`playground/snippets/data-table/`** use `@/` imports; runnable twins under **`examples/`** use **`prime-ui-kit`** (shared layout tokens in [`examples/examples-demos.module.css`](./examples/examples-demos.module.css) where needed).
|
|
25
|
+
|
|
26
|
+
| Block | Snippet | Runnable example |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| **Sizes** | [`sizes.tsx`](../../../playground/snippets/data-table/sizes.tsx) | [`examples/sizes.tsx`](./examples/sizes.tsx) — `size` `s`–`xl`; `Tag` / `Badge` inherit `ControlSizeProvider`; `paginationSize` follows table `size`. |
|
|
29
|
+
| **Divider styles** | [`divider-styles.tsx`](../../../playground/snippets/data-table/divider-styles.tsx) | [`examples/divider-styles.tsx`](./examples/divider-styles.tsx) — `dividerStyle` `standard` / `dashed` / `dotted` / `none`. |
|
|
30
|
+
| **States** | [`states.tsx`](../../../playground/snippets/data-table/states.tsx) | [`examples/states.tsx`](./examples/states.tsx) — `loading` + `loadingText` vs `emptyText`. |
|
|
31
|
+
| **Sticky + headers** | [`sticky-and-headers.tsx`](../../../playground/snippets/data-table/sticky-and-headers.tsx) | [`examples/sticky-and-headers.tsx`](./examples/sticky-and-headers.tsx) — `showHeader`, `stickyHeader`, `stickyFirstColumn` with `infiniteScroll` + `scrollHeight`. |
|
|
32
|
+
| **Controlled** | [`controlled.tsx`](../../../playground/snippets/data-table/controlled.tsx) | [`examples/controlled-sort-and-page.tsx`](./examples/controlled-sort-and-page.tsx) — `sort` / `onSortChange` / `page` / `onPageChange` (parent resets page on sort). |
|
|
33
|
+
| **Composition** | [`composition.tsx`](../../../playground/snippets/data-table/composition.tsx) | [`examples/composition.tsx`](./examples/composition.tsx) — rich `header` / `cell`, `getRowKey`, `onRowClick`, `onCellClick` (+ keyboard). |
|
|
34
|
+
| **Full width** | [`full-width.tsx`](../../../playground/snippets/data-table/full-width.tsx) | [`examples/full-width.tsx`](./examples/full-width.tsx) — narrow parent; default `fillWidth`. |
|
|
35
|
+
| **Highlight + striped** | [`highlight-and-striped.tsx`](../../../playground/snippets/data-table/highlight-and-striped.tsx) | [`examples/highlight-and-striped.tsx`](./examples/highlight-and-striped.tsx) — toggles for `highlightRowOnHover`, `highlightColumnOnHover`, `striped`. |
|
|
36
|
+
| **Infinite scroll** | [`infinite-scroll.tsx`](../../../playground/snippets/data-table/infinite-scroll.tsx) | [`examples/infinite-scroll-load-more.tsx`](./examples/infinite-scroll-load-more.tsx) — `infiniteScroll`, `hasMore`, `loadingMore`, `onLoadMore`, `scrollHeight` (snippet uses a larger generated dataset; same props). |
|
|
37
|
+
| **Sort + pagination (uncontrolled)** | [`sorting-pagination.tsx`](../../../playground/snippets/data-table/sorting-pagination.tsx) | [`examples/sorting-pagination.tsx`](./examples/sorting-pagination.tsx) — `defaultSort` and built-in `Pagination`. |
|
|
38
|
+
|
|
39
|
+
### Extra recipes (`examples/`)
|
|
40
|
+
|
|
41
|
+
| Recipe | File | Notes |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| Sticky header + first column (compact) | [`sticky-header-first-column.tsx`](./examples/sticky-header-first-column.tsx) | Russian copy; one combined sticky demo (subset of the snippet tour above). |
|
|
44
|
+
| Orders + row open affordance | [`canonical-orders.tsx`](./examples/canonical-orders.tsx) | `defaultSort`, `pageSize`, `onRowClick`, `Tag` / `Badge` cells. |
|
|
45
|
+
| Row selection with `Checkbox` | [`row-selection.tsx`](./examples/row-selection.tsx) | No built-in multi-select; header + row checkboxes in column definitions. |
|
|
22
46
|
|
|
23
47
|
### Minimal example
|
|
24
48
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ExternalLink, Mail } from "lucide-react";
|
|
2
|
+
import { DataTable, type DataTableColumn, LinkButton } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
import styles from "./examples-demos.module.css";
|
|
6
|
+
|
|
7
|
+
type ContactRow = {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
email: string;
|
|
11
|
+
channel: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const rows: ContactRow[] = [
|
|
15
|
+
{ id: "c1", name: "Ирина Соколова", email: "i.sokolova@example.com", channel: "Email" },
|
|
16
|
+
{ id: "c2", name: "Павел Орлов", email: "p.orlov@example.com", channel: "Личный кабинет" },
|
|
17
|
+
{ id: "c3", name: "Марина Волкова", email: "m.volkova@example.com", channel: "Телеграм-бот" },
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const columns: DataTableColumn<ContactRow>[] = [
|
|
21
|
+
{
|
|
22
|
+
id: "name",
|
|
23
|
+
header: (
|
|
24
|
+
<span className={styles.inlineIconRow}>
|
|
25
|
+
<Mail size={14} strokeWidth={2} aria-hidden />
|
|
26
|
+
Контакт
|
|
27
|
+
</span>
|
|
28
|
+
),
|
|
29
|
+
accessor: "name",
|
|
30
|
+
sortable: true,
|
|
31
|
+
minWidth: "11rem",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: "email",
|
|
35
|
+
header: "Адрес",
|
|
36
|
+
accessor: "email",
|
|
37
|
+
sortable: true,
|
|
38
|
+
minWidth: "14rem",
|
|
39
|
+
align: "center",
|
|
40
|
+
cell: (row) => (
|
|
41
|
+
<LinkButton.Root size="s" href={`mailto:${row.email}`}>
|
|
42
|
+
{row.email}
|
|
43
|
+
</LinkButton.Root>
|
|
44
|
+
),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "channel",
|
|
48
|
+
header: "Канал",
|
|
49
|
+
accessor: "channel",
|
|
50
|
+
sortable: true,
|
|
51
|
+
minWidth: "10rem",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "open",
|
|
55
|
+
header: "",
|
|
56
|
+
sortable: false,
|
|
57
|
+
align: "end",
|
|
58
|
+
minWidth: "7rem",
|
|
59
|
+
onCellClick: (row) => {
|
|
60
|
+
window.open(`mailto:${row.email}`, "_blank", "noopener,noreferrer");
|
|
61
|
+
},
|
|
62
|
+
cell: () => (
|
|
63
|
+
<span className={styles.inlineIconRowTight}>
|
|
64
|
+
<ExternalLink size={14} strokeWidth={2} aria-hidden />
|
|
65
|
+
Написать
|
|
66
|
+
</span>
|
|
67
|
+
),
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
/** Соответствует `playground/snippets/data-table/composition.tsx`. */
|
|
72
|
+
export default function DataTableCompositionExample() {
|
|
73
|
+
const [last, setLast] = React.useState<string | null>(null);
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<div>
|
|
77
|
+
<p className={styles.lead}>
|
|
78
|
+
{last ? `Последний клик по строке: ${last}` : "Клик по строке обновляет подпись ниже."}
|
|
79
|
+
</p>
|
|
80
|
+
<DataTable.Root
|
|
81
|
+
columns={columns}
|
|
82
|
+
rows={rows}
|
|
83
|
+
getRowKey={(row) => row.id}
|
|
84
|
+
onRowClick={(row) => setLast(row.name)}
|
|
85
|
+
showPagination={false}
|
|
86
|
+
pageSize={10}
|
|
87
|
+
highlightRowOnHover
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Badge, DataTable, type DataTableColumn, type DataTableDividerStyle } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
import styles from "./examples-demos.module.css";
|
|
4
|
+
|
|
5
|
+
type Row = {
|
|
6
|
+
id: string;
|
|
7
|
+
member: string;
|
|
8
|
+
role: string;
|
|
9
|
+
status: "Online" | "Busy" | "Offline";
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const rows: Row[] = [
|
|
13
|
+
{ id: "r1", member: "James Brown", role: "Product Manager", status: "Online" },
|
|
14
|
+
{ id: "r2", member: "Sophia Williams", role: "Designer", status: "Busy" },
|
|
15
|
+
{ id: "r3", member: "Arthur Taylor", role: "Frontend Engineer", status: "Offline" },
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
function mapStatus(status: Row["status"]): "online" | "busy" | "offline" {
|
|
19
|
+
if (status === "Online") return "online";
|
|
20
|
+
if (status === "Busy") return "busy";
|
|
21
|
+
return "offline";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const columns: DataTableColumn<Row>[] = [
|
|
25
|
+
{ id: "member", header: "Member", accessor: "member", sortable: true, minWidth: "11rem" },
|
|
26
|
+
{ id: "role", header: "Role", accessor: "role", sortable: true, minWidth: "12rem" },
|
|
27
|
+
{
|
|
28
|
+
id: "status",
|
|
29
|
+
header: "Status",
|
|
30
|
+
accessor: "status",
|
|
31
|
+
sortable: true,
|
|
32
|
+
minWidth: "8rem",
|
|
33
|
+
cell: (row) => (
|
|
34
|
+
<Badge.Root variant="status" status={mapStatus(row.status)} label={row.status}>
|
|
35
|
+
{row.status}
|
|
36
|
+
</Badge.Root>
|
|
37
|
+
),
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
function DividerRow({ divider }: { divider: DataTableDividerStyle }) {
|
|
42
|
+
return (
|
|
43
|
+
<>
|
|
44
|
+
<p className={styles.demoLabel}>dividerStyle = {divider}</p>
|
|
45
|
+
<DataTable.Root
|
|
46
|
+
className={styles.demoTable}
|
|
47
|
+
columns={columns}
|
|
48
|
+
rows={rows}
|
|
49
|
+
dividerStyle={divider}
|
|
50
|
+
pageSize={3}
|
|
51
|
+
showPagination={false}
|
|
52
|
+
/>
|
|
53
|
+
</>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Соответствует `playground/snippets/data-table/divider-styles.tsx`. */
|
|
58
|
+
export default function DataTableDividerStylesExample() {
|
|
59
|
+
return (
|
|
60
|
+
<>
|
|
61
|
+
<DividerRow divider="standard" />
|
|
62
|
+
<DividerRow divider="dashed" />
|
|
63
|
+
<DividerRow divider="dotted" />
|
|
64
|
+
<DividerRow divider="none" />
|
|
65
|
+
</>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* Layout helpers for runnable examples (mirrors playground/snippets/data-table/*.module.css). */
|
|
2
|
+
|
|
3
|
+
.demoLabel {
|
|
4
|
+
margin: var(--prime-sys-spacing-x4) 0 var(--prime-sys-spacing-x2);
|
|
5
|
+
font-size: var(--prime-sys-size-control-s-supportText);
|
|
6
|
+
font-weight: var(--prime-sys-typography-weight-medium);
|
|
7
|
+
color: var(--prime-sys-color-content-secondary);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.demoLabel:first-child {
|
|
11
|
+
margin-top: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.demoTable {
|
|
15
|
+
margin-bottom: var(--prime-sys-spacing-x3);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.narrowCard {
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
width: 100%;
|
|
21
|
+
max-width: 28rem;
|
|
22
|
+
padding: var(--prime-sys-spacing-x3);
|
|
23
|
+
border-radius: var(--prime-sys-shape-radius-m);
|
|
24
|
+
border: 1px dashed var(--prime-sys-color-border-subtle);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.lead {
|
|
28
|
+
margin: 0 0 var(--prime-sys-spacing-x3);
|
|
29
|
+
font-size: var(--prime-sys-size-control-s-supportText);
|
|
30
|
+
color: var(--prime-sys-color-content-secondary);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.leadTight {
|
|
34
|
+
margin: 0 0 var(--prime-sys-spacing-x2);
|
|
35
|
+
font-size: var(--prime-sys-size-control-s-supportText);
|
|
36
|
+
color: var(--prime-sys-color-content-secondary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.statesStack {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
gap: var(--prime-sys-spacing-x6);
|
|
43
|
+
width: 100%;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.inlineIconRow {
|
|
47
|
+
display: inline-flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: var(--prime-sys-spacing-x2);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.inlineIconRowTight {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
gap: var(--prime-sys-spacing-x1);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.optionsFieldset {
|
|
59
|
+
margin: 0 0 var(--prime-sys-spacing-x4);
|
|
60
|
+
padding: var(--prime-sys-spacing-x3) var(--prime-sys-spacing-x4);
|
|
61
|
+
border: 1px solid var(--prime-sys-color-border-subtle);
|
|
62
|
+
border-radius: var(--prime-sys-shape-radius-m);
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-wrap: wrap;
|
|
65
|
+
gap: var(--prime-sys-spacing-x4) var(--prime-sys-spacing-x6);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.optionsLegend {
|
|
69
|
+
padding: 0 var(--prime-sys-spacing-x2);
|
|
70
|
+
font-size: var(--prime-sys-typography-support-xs);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.optionLabel {
|
|
74
|
+
display: inline-flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
gap: var(--prime-sys-spacing-x3);
|
|
77
|
+
cursor: pointer;
|
|
78
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DataTable, type DataTableColumn } from "prime-ui-kit";
|
|
2
|
+
|
|
3
|
+
import styles from "./examples-demos.module.css";
|
|
4
|
+
|
|
5
|
+
type Row = { id: string; task: string; hours: number };
|
|
6
|
+
|
|
7
|
+
const rows: Row[] = [
|
|
8
|
+
{ id: "T-12", task: "Сверстать отчёт по спринту", hours: 3 },
|
|
9
|
+
{ id: "T-13", task: "Проверить миграции БД", hours: 1.5 },
|
|
10
|
+
{ id: "T-14", task: "Обновить подсказки в форме входа", hours: 2 },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
const columns: DataTableColumn<Row>[] = [
|
|
14
|
+
{ id: "id", header: "Задача", accessor: "id", sortable: true, minWidth: "6rem" },
|
|
15
|
+
{ id: "task", header: "Описание", accessor: "task", sortable: true, minWidth: "12rem" },
|
|
16
|
+
{
|
|
17
|
+
id: "hours",
|
|
18
|
+
header: "Часы",
|
|
19
|
+
accessor: "hours",
|
|
20
|
+
sortable: true,
|
|
21
|
+
align: "end",
|
|
22
|
+
minWidth: "5rem",
|
|
23
|
+
cell: (row) =>
|
|
24
|
+
row.hours.toLocaleString("ru-RU", { minimumFractionDigits: 0, maximumFractionDigits: 1 }),
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
/** Соответствует `playground/snippets/data-table/full-width.tsx`. */
|
|
29
|
+
export default function DataTableFullWidthExample() {
|
|
30
|
+
return (
|
|
31
|
+
<div className={styles.narrowCard}>
|
|
32
|
+
<p className={styles.lead}>
|
|
33
|
+
Узкий контейнер: корень таблицы тянется на 100% ширины родителя (сетка карточки, колонка
|
|
34
|
+
формы).
|
|
35
|
+
</p>
|
|
36
|
+
<DataTable.Root columns={columns} rows={rows} showPagination={false} pageSize={10} />
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { DataTable, type DataTableColumn } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
import styles from "./examples-demos.module.css";
|
|
5
|
+
|
|
6
|
+
type Row = { id: string; product: string; qty: number; price: number };
|
|
7
|
+
|
|
8
|
+
const rows: Row[] = [
|
|
9
|
+
{ id: "1", product: "Notebook", qty: 2, price: 1200 },
|
|
10
|
+
{ id: "2", product: "Mouse", qty: 5, price: 45 },
|
|
11
|
+
{ id: "3", product: "Keyboard", qty: 1, price: 180 },
|
|
12
|
+
{ id: "4", product: "Display", qty: 1, price: 420 },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const columns: DataTableColumn<Row>[] = [
|
|
16
|
+
{ id: "product", header: "Товар", accessor: "product", sortable: true, minWidth: "10rem" },
|
|
17
|
+
{ id: "qty", header: "Кол-во", accessor: "qty", sortable: true, align: "end", minWidth: "6rem" },
|
|
18
|
+
{
|
|
19
|
+
id: "price",
|
|
20
|
+
header: "Цена",
|
|
21
|
+
accessor: "price",
|
|
22
|
+
sortable: true,
|
|
23
|
+
align: "end",
|
|
24
|
+
minWidth: "7rem",
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
/** Соответствует `playground/snippets/data-table/highlight-and-striped.tsx`. */
|
|
29
|
+
export default function DataTableHighlightAndStripedExample() {
|
|
30
|
+
const [highlightRowOnHover, setHighlightRowOnHover] = React.useState(true);
|
|
31
|
+
const [highlightColumnOnHover, setHighlightColumnOnHover] = React.useState(false);
|
|
32
|
+
const [striped, setStriped] = React.useState(false);
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div>
|
|
36
|
+
<fieldset className={styles.optionsFieldset}>
|
|
37
|
+
<legend className={styles.optionsLegend}>Опции таблицы</legend>
|
|
38
|
+
<label className={styles.optionLabel}>
|
|
39
|
+
<input
|
|
40
|
+
type="checkbox"
|
|
41
|
+
checked={highlightRowOnHover}
|
|
42
|
+
onChange={(e) => setHighlightRowOnHover(e.target.checked)}
|
|
43
|
+
/>
|
|
44
|
+
Подсветка строки при наведении
|
|
45
|
+
</label>
|
|
46
|
+
<label className={styles.optionLabel}>
|
|
47
|
+
<input
|
|
48
|
+
type="checkbox"
|
|
49
|
+
checked={highlightColumnOnHover}
|
|
50
|
+
onChange={(e) => setHighlightColumnOnHover(e.target.checked)}
|
|
51
|
+
/>
|
|
52
|
+
Подсветка колонки при наведении
|
|
53
|
+
</label>
|
|
54
|
+
<label className={styles.optionLabel}>
|
|
55
|
+
<input type="checkbox" checked={striped} onChange={(e) => setStriped(e.target.checked)} />
|
|
56
|
+
Чередование строк (зебра)
|
|
57
|
+
</label>
|
|
58
|
+
</fieldset>
|
|
59
|
+
|
|
60
|
+
<DataTable.Root
|
|
61
|
+
columns={columns}
|
|
62
|
+
rows={rows}
|
|
63
|
+
pageSize={10}
|
|
64
|
+
showPagination={false}
|
|
65
|
+
highlightRowOnHover={highlightRowOnHover}
|
|
66
|
+
highlightColumnOnHover={highlightColumnOnHover}
|
|
67
|
+
striped={striped}
|
|
68
|
+
/>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|