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,58 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, Popover, Typography } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Input as RacInput } from "react-aria-components";
|
|
5
|
+
|
|
6
|
+
/** RAC `ColorPicker.Field` + `EyeDropperButton`, area and hue slider (playground `features`). */
|
|
7
|
+
export function FieldEyedropperExample() {
|
|
8
|
+
const [open, setOpen] = React.useState(false);
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<ColorPicker.Root defaultValue="hsl(340, 82%, 52%)">
|
|
12
|
+
<Popover.Root onOpenChange={setOpen} open={open}>
|
|
13
|
+
<Popover.Trigger asChild>
|
|
14
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
15
|
+
<ColorPicker.TriggerSwatch />
|
|
16
|
+
Field + eyedropper
|
|
17
|
+
</Button.Root>
|
|
18
|
+
</Popover.Trigger>
|
|
19
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
20
|
+
<div style={{ width: "19.5rem", maxWidth: "100%", minWidth: 0 }}>
|
|
21
|
+
<ColorPicker.FormatProvider>
|
|
22
|
+
<Typography.Root as="p" tone="muted" variant="body-small" weight="medium">
|
|
23
|
+
Hex via ColorField + RAC Input; eyedropper uses Web API when available.
|
|
24
|
+
</Typography.Root>
|
|
25
|
+
<div
|
|
26
|
+
style={{
|
|
27
|
+
display: "flex",
|
|
28
|
+
alignItems: "flex-start",
|
|
29
|
+
gap: "var(--prime-sys-spacing-x2, 0.5rem)",
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
<div style={{ flex: 1, minWidth: 0 }}>
|
|
33
|
+
<ColorPicker.Field aria-label="Hex color code">
|
|
34
|
+
<RacInput />
|
|
35
|
+
</ColorPicker.Field>
|
|
36
|
+
</div>
|
|
37
|
+
<ColorPicker.EyeDropperButton aria-label="Eyedropper">
|
|
38
|
+
<Button.Icon>
|
|
39
|
+
<Pipette aria-hidden size={18} strokeWidth={1.75} />
|
|
40
|
+
</Button.Icon>
|
|
41
|
+
</ColorPicker.EyeDropperButton>
|
|
42
|
+
</div>
|
|
43
|
+
<ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
|
|
44
|
+
<ColorPicker.AreaThumb />
|
|
45
|
+
</ColorPicker.Area>
|
|
46
|
+
<ColorPicker.Slider channel="hue" colorSpace="hsl">
|
|
47
|
+
<ColorPicker.SliderMeta label="Hue, °" />
|
|
48
|
+
<ColorPicker.SliderTrack>
|
|
49
|
+
<ColorPicker.Thumb />
|
|
50
|
+
</ColorPicker.SliderTrack>
|
|
51
|
+
</ColorPicker.Slider>
|
|
52
|
+
</ColorPicker.FormatProvider>
|
|
53
|
+
</div>
|
|
54
|
+
</Popover.Content>
|
|
55
|
+
</Popover.Root>
|
|
56
|
+
</ColorPicker.Root>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, type ColorValueFormat, Popover, Typography } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
function FormatPopover({
|
|
6
|
+
title,
|
|
7
|
+
defaultFormat,
|
|
8
|
+
}: {
|
|
9
|
+
title: string;
|
|
10
|
+
defaultFormat: ColorValueFormat;
|
|
11
|
+
}) {
|
|
12
|
+
const [open, setOpen] = React.useState(false);
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<div style={{ display: "flex", minWidth: 0, flexDirection: "column", gap: "0.5rem" }}>
|
|
16
|
+
<Typography.Root as="p" variant="body-small" weight="medium">
|
|
17
|
+
{title}
|
|
18
|
+
</Typography.Root>
|
|
19
|
+
<ColorPicker.Root defaultValue="hsl(200, 75%, 52%)">
|
|
20
|
+
<Popover.Root onOpenChange={setOpen} open={open}>
|
|
21
|
+
<Popover.Trigger asChild>
|
|
22
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
23
|
+
<ColorPicker.TriggerSwatch />
|
|
24
|
+
Open ({defaultFormat.toUpperCase()})
|
|
25
|
+
</Button.Root>
|
|
26
|
+
</Popover.Trigger>
|
|
27
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
28
|
+
<ColorPicker.FormatProvider defaultFormat={defaultFormat}>
|
|
29
|
+
<ColorPicker.FormatSelect />
|
|
30
|
+
<ColorPicker.ChannelStrip
|
|
31
|
+
pipetteIcon={<Pipette aria-hidden size={18} strokeWidth={1.75} />}
|
|
32
|
+
/>
|
|
33
|
+
</ColorPicker.FormatProvider>
|
|
34
|
+
</Popover.Content>
|
|
35
|
+
</Popover.Root>
|
|
36
|
+
</ColorPicker.Root>
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Three `FormatProvider` defaults: HSL, RGB, hex channel strip (playground `format-variants`). */
|
|
42
|
+
export function FormatVariantsExample() {
|
|
43
|
+
return (
|
|
44
|
+
<div
|
|
45
|
+
style={{
|
|
46
|
+
display: "grid",
|
|
47
|
+
width: "100%",
|
|
48
|
+
maxWidth: "100%",
|
|
49
|
+
gap: "1rem",
|
|
50
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(12rem, 1fr))",
|
|
51
|
+
}}
|
|
52
|
+
>
|
|
53
|
+
<FormatPopover defaultFormat="hsl" title="HSL channels + alpha" />
|
|
54
|
+
<FormatPopover defaultFormat="rgb" title="RGB channels + alpha" />
|
|
55
|
+
<FormatPopover defaultFormat="hex" title="Hex #RRGGBB" />
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, Popover } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
/** Wide `Popover.Content` and inner surface stretched to full width (playground `full-width`). */
|
|
6
|
+
export function FullWidthPanelExample() {
|
|
7
|
+
const [open, setOpen] = React.useState(false);
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<ColorPicker.Root defaultValue="hsl(30, 85%, 52%)">
|
|
11
|
+
<Popover.Root onOpenChange={setOpen} open={open}>
|
|
12
|
+
<Popover.Trigger asChild>
|
|
13
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
14
|
+
<ColorPicker.TriggerSwatch />
|
|
15
|
+
Full-width panel
|
|
16
|
+
</Button.Root>
|
|
17
|
+
</Popover.Trigger>
|
|
18
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
19
|
+
<div style={{ minWidth: "min(100vw - 2rem, 28rem)" }}>
|
|
20
|
+
<ColorPicker.FormatProvider>
|
|
21
|
+
<div
|
|
22
|
+
style={{
|
|
23
|
+
display: "flex",
|
|
24
|
+
width: "100%",
|
|
25
|
+
maxWidth: "min(28rem, 100%)",
|
|
26
|
+
flexDirection: "column",
|
|
27
|
+
gap: "var(--prime-sys-spacing-x3, 0.75rem)",
|
|
28
|
+
}}
|
|
29
|
+
>
|
|
30
|
+
<ColorPicker.FormatSelect />
|
|
31
|
+
<ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
|
|
32
|
+
<ColorPicker.AreaThumb />
|
|
33
|
+
</ColorPicker.Area>
|
|
34
|
+
<ColorPicker.Slider channel="hue" colorSpace="hsl">
|
|
35
|
+
<ColorPicker.SliderTrack>
|
|
36
|
+
<ColorPicker.Thumb />
|
|
37
|
+
</ColorPicker.SliderTrack>
|
|
38
|
+
</ColorPicker.Slider>
|
|
39
|
+
<ColorPicker.ChannelStrip
|
|
40
|
+
pipetteIcon={<Pipette aria-hidden size={18} strokeWidth={1.75} />}
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
</ColorPicker.FormatProvider>
|
|
44
|
+
</div>
|
|
45
|
+
</Popover.Content>
|
|
46
|
+
</Popover.Root>
|
|
47
|
+
</ColorPicker.Root>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Button, ColorPicker, Popover } from "prime-ui-kit";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
|
|
4
|
+
const SIZES = ["s", "m", "l", "xl"] as const;
|
|
5
|
+
|
|
6
|
+
function HexSizePopover({ size }: { size: (typeof SIZES)[number] }) {
|
|
7
|
+
const [open, setOpen] = React.useState(false);
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<ColorPicker.Root defaultValue="#3b82f6">
|
|
11
|
+
<Popover.Root onOpenChange={setOpen} open={open}>
|
|
12
|
+
<Popover.Trigger asChild>
|
|
13
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
14
|
+
Hex ({size})
|
|
15
|
+
</Button.Root>
|
|
16
|
+
</Popover.Trigger>
|
|
17
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
18
|
+
<ColorPicker.HexInput label={`Hex (${size})`} size={size} />
|
|
19
|
+
</Popover.Content>
|
|
20
|
+
</Popover.Root>
|
|
21
|
+
</ColorPicker.Root>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** HexInput `size` axis (`s`–`xl`); each control uses its own popover (playground `hex-input-sizes`). */
|
|
26
|
+
export function HexInputSizesExample() {
|
|
27
|
+
return (
|
|
28
|
+
<div style={{ display: "flex", flexWrap: "wrap", alignItems: "flex-end", gap: "1rem" }}>
|
|
29
|
+
{SIZES.map((size) => (
|
|
30
|
+
<HexSizePopover key={size} size={size} />
|
|
31
|
+
))}
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, Popover, Typography } from "prime-ui-kit";
|
|
3
|
+
|
|
4
|
+
const PRESETS = ["#6366f1", "#a855f7", "#ec4899", "#f97316"];
|
|
5
|
+
|
|
6
|
+
function Panel() {
|
|
7
|
+
return (
|
|
8
|
+
<ColorPicker.FormatProvider>
|
|
9
|
+
<ColorPicker.FormatSelect />
|
|
10
|
+
<ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
|
|
11
|
+
<ColorPicker.AreaThumb />
|
|
12
|
+
</ColorPicker.Area>
|
|
13
|
+
<ColorPicker.Slider channel="hue" colorSpace="hsl">
|
|
14
|
+
<ColorPicker.SliderTrack>
|
|
15
|
+
<ColorPicker.Thumb />
|
|
16
|
+
</ColorPicker.SliderTrack>
|
|
17
|
+
</ColorPicker.Slider>
|
|
18
|
+
<ColorPicker.ChannelStrip
|
|
19
|
+
pipetteIcon={<Pipette aria-hidden size={18} strokeWidth={1.75} />}
|
|
20
|
+
/>
|
|
21
|
+
<Typography.Root as="p" tone="muted" variant="body-small" weight="medium">
|
|
22
|
+
Presets
|
|
23
|
+
</Typography.Root>
|
|
24
|
+
<ColorPicker.SwatchPicker aria-label="Quick colors">
|
|
25
|
+
{PRESETS.map((c) => (
|
|
26
|
+
<ColorPicker.SwatchPickerItem key={c} color={c}>
|
|
27
|
+
<ColorPicker.Swatch />
|
|
28
|
+
</ColorPicker.SwatchPickerItem>
|
|
29
|
+
))}
|
|
30
|
+
</ColorPicker.SwatchPicker>
|
|
31
|
+
</ColorPicker.FormatProvider>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Same panel with `Popover.Content` `side="bottom"` vs `side="top"` (playground `panel-placement`). */
|
|
36
|
+
export function PanelPlacementExample() {
|
|
37
|
+
return (
|
|
38
|
+
<div style={{ display: "flex", flexWrap: "wrap", gap: "1rem", alignItems: "flex-start" }}>
|
|
39
|
+
<ColorPicker.Root defaultValue="hsl(265, 80%, 55%)">
|
|
40
|
+
<Popover.Root>
|
|
41
|
+
<Popover.Trigger asChild>
|
|
42
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
43
|
+
<ColorPicker.TriggerSwatch />
|
|
44
|
+
Bottom
|
|
45
|
+
</Button.Root>
|
|
46
|
+
</Popover.Trigger>
|
|
47
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
48
|
+
<Panel />
|
|
49
|
+
</Popover.Content>
|
|
50
|
+
</Popover.Root>
|
|
51
|
+
</ColorPicker.Root>
|
|
52
|
+
|
|
53
|
+
<ColorPicker.Root defaultValue="hsl(200, 70%, 48%)">
|
|
54
|
+
<Popover.Root>
|
|
55
|
+
<Popover.Trigger asChild>
|
|
56
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
57
|
+
<ColorPicker.TriggerSwatch />
|
|
58
|
+
Top
|
|
59
|
+
</Button.Root>
|
|
60
|
+
</Popover.Trigger>
|
|
61
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="top">
|
|
62
|
+
<Panel />
|
|
63
|
+
</Popover.Content>
|
|
64
|
+
</Popover.Root>
|
|
65
|
+
</ColorPicker.Root>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, type ColorPickerColorValue, Popover, parseColor } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
const PRESETS = ["#ef4444", "#f97316", "#eab308", "#22c55e", "#14b8a6", "#3b82f6", "#8b5cf6"];
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Custom color square on the trigger (`style.backgroundColor`) instead of `TriggerSwatch`;
|
|
9
|
+
* `ColorPicker.Root` lives inside `Popover.Content` (playground `popover`).
|
|
10
|
+
*/
|
|
11
|
+
export function ReadoutTriggerExample() {
|
|
12
|
+
const [color, setColor] = React.useState<ColorPickerColorValue | undefined>(
|
|
13
|
+
parseColor("#3b82f6"),
|
|
14
|
+
);
|
|
15
|
+
const [open, setOpen] = React.useState(false);
|
|
16
|
+
|
|
17
|
+
const colorString = color?.toString("css") ?? "#000000";
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<Popover.Root onOpenChange={setOpen} open={open}>
|
|
21
|
+
<Popover.Trigger asChild>
|
|
22
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
23
|
+
<span
|
|
24
|
+
aria-hidden
|
|
25
|
+
style={{
|
|
26
|
+
boxSizing: "border-box",
|
|
27
|
+
display: "inline-block",
|
|
28
|
+
flexShrink: 0,
|
|
29
|
+
width: "1rem",
|
|
30
|
+
height: "1rem",
|
|
31
|
+
borderRadius: "var(--prime-sys-shape-radius-s, 0.25rem)",
|
|
32
|
+
border: "1px solid var(--prime-sys-color-border-primary, currentColor)",
|
|
33
|
+
backgroundColor: colorString,
|
|
34
|
+
}}
|
|
35
|
+
/>
|
|
36
|
+
{colorString}
|
|
37
|
+
</Button.Root>
|
|
38
|
+
</Popover.Trigger>
|
|
39
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
40
|
+
<ColorPicker.Root onChange={setColor} value={color}>
|
|
41
|
+
<ColorPicker.FormatProvider>
|
|
42
|
+
<ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
|
|
43
|
+
<ColorPicker.AreaThumb />
|
|
44
|
+
</ColorPicker.Area>
|
|
45
|
+
<ColorPicker.Slider channel="hue" colorSpace="hsl">
|
|
46
|
+
<ColorPicker.SliderTrack>
|
|
47
|
+
<ColorPicker.Thumb />
|
|
48
|
+
</ColorPicker.SliderTrack>
|
|
49
|
+
</ColorPicker.Slider>
|
|
50
|
+
<ColorPicker.Slider channel="alpha">
|
|
51
|
+
<ColorPicker.SliderTrack>
|
|
52
|
+
<ColorPicker.Thumb />
|
|
53
|
+
</ColorPicker.SliderTrack>
|
|
54
|
+
</ColorPicker.Slider>
|
|
55
|
+
<ColorPicker.ChannelStrip
|
|
56
|
+
pipetteIcon={<Pipette aria-hidden size={18} strokeWidth={1.75} />}
|
|
57
|
+
/>
|
|
58
|
+
<ColorPicker.SwatchPicker aria-label="Quick colors">
|
|
59
|
+
{PRESETS.map((c) => (
|
|
60
|
+
<ColorPicker.SwatchPickerItem key={c} color={c}>
|
|
61
|
+
<ColorPicker.Swatch />
|
|
62
|
+
</ColorPicker.SwatchPickerItem>
|
|
63
|
+
))}
|
|
64
|
+
</ColorPicker.SwatchPicker>
|
|
65
|
+
</ColorPicker.FormatProvider>
|
|
66
|
+
</ColorPicker.Root>
|
|
67
|
+
</Popover.Content>
|
|
68
|
+
</Popover.Root>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Pipette } from "lucide-react";
|
|
2
|
+
import { Button, ColorPicker, Popover } from "prime-ui-kit";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
const PRESETS = ["#ef4444", "#22c55e", "#3b82f6"];
|
|
6
|
+
|
|
7
|
+
/** Disabled `SwatchPickerItem` and disabled hue `Slider` (playground `states`). */
|
|
8
|
+
export function StatesExample() {
|
|
9
|
+
const [openSwatch, setOpenSwatch] = React.useState(false);
|
|
10
|
+
const [openSlider, setOpenSlider] = React.useState(false);
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<div style={{ display: "flex", flexWrap: "wrap", gap: "2rem", alignItems: "flex-start" }}>
|
|
14
|
+
<div>
|
|
15
|
+
<p style={{ margin: "0 0 0.5rem", fontSize: "0.875rem", opacity: 0.8 }}>
|
|
16
|
+
Preset with isDisabled
|
|
17
|
+
</p>
|
|
18
|
+
<ColorPicker.Root defaultValue="#22c55e">
|
|
19
|
+
<Popover.Root onOpenChange={setOpenSwatch} open={openSwatch}>
|
|
20
|
+
<Popover.Trigger asChild>
|
|
21
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
22
|
+
<ColorPicker.TriggerSwatch />
|
|
23
|
+
Palette
|
|
24
|
+
</Button.Root>
|
|
25
|
+
</Popover.Trigger>
|
|
26
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
27
|
+
<ColorPicker.FormatProvider>
|
|
28
|
+
<ColorPicker.SwatchPicker aria-label="Palette with one disabled swatch">
|
|
29
|
+
{PRESETS.map((c, i) => (
|
|
30
|
+
<ColorPicker.SwatchPickerItem key={c} color={c} isDisabled={i === 0}>
|
|
31
|
+
<ColorPicker.Swatch />
|
|
32
|
+
</ColorPicker.SwatchPickerItem>
|
|
33
|
+
))}
|
|
34
|
+
</ColorPicker.SwatchPicker>
|
|
35
|
+
</ColorPicker.FormatProvider>
|
|
36
|
+
</Popover.Content>
|
|
37
|
+
</Popover.Root>
|
|
38
|
+
</ColorPicker.Root>
|
|
39
|
+
</div>
|
|
40
|
+
<div>
|
|
41
|
+
<p style={{ margin: "0 0 0.5rem", fontSize: "0.875rem", opacity: 0.8 }}>
|
|
42
|
+
Hue slider with isDisabled
|
|
43
|
+
</p>
|
|
44
|
+
<ColorPicker.Root defaultValue="hsl(200, 75%, 52%)">
|
|
45
|
+
<Popover.Root onOpenChange={setOpenSlider} open={openSlider}>
|
|
46
|
+
<Popover.Trigger asChild>
|
|
47
|
+
<Button.Root mode="stroke" size="m" variant="neutral">
|
|
48
|
+
<ColorPicker.TriggerSwatch />
|
|
49
|
+
Disabled slider
|
|
50
|
+
</Button.Root>
|
|
51
|
+
</Popover.Trigger>
|
|
52
|
+
<Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
|
|
53
|
+
<ColorPicker.FormatProvider>
|
|
54
|
+
<div
|
|
55
|
+
style={{
|
|
56
|
+
display: "flex",
|
|
57
|
+
width: "12.5rem",
|
|
58
|
+
maxWidth: "100%",
|
|
59
|
+
flexDirection: "column",
|
|
60
|
+
gap: "0.5rem",
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
<ColorPicker.Slider channel="hue" colorSpace="hsl" isDisabled>
|
|
64
|
+
<ColorPicker.SliderTrack>
|
|
65
|
+
<ColorPicker.Thumb />
|
|
66
|
+
</ColorPicker.SliderTrack>
|
|
67
|
+
</ColorPicker.Slider>
|
|
68
|
+
<ColorPicker.ChannelStrip
|
|
69
|
+
pipetteIcon={<Pipette aria-hidden size={18} strokeWidth={1.75} />}
|
|
70
|
+
/>
|
|
71
|
+
</div>
|
|
72
|
+
</ColorPicker.FormatProvider>
|
|
73
|
+
</Popover.Content>
|
|
74
|
+
</Popover.Root>
|
|
75
|
+
</ColorPicker.Root>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- **Filtering:** case-insensitive match on **`Item`** **`value`** + **`keywords`**; empty query shows all non-disabled items. **`disabled`** items are **dropped from the visible list and keyboard order** (not grayed in-place).
|
|
11
11
|
- **Input:** uncontrolled by default; **`value`** / **`onChange`** for controlled. **`type`** is fixed to `search`. From the combobox: ArrowUp/Down, Home, End, Enter (activate), Escape closes via Modal.
|
|
12
12
|
- **Remount:** opening a fresh dialog subtree resets search, active id, and focuses the input on the next frame.
|
|
13
|
-
- **
|
|
13
|
+
- **Demos:** playground snippets in **`playground/snippets/command-menu/`** (order matches **`playground/sections/CommandMenuSection.tsx`**); package recipes in **`examples/`** (see **Playground snippets** + **Package examples** below).
|
|
14
14
|
|
|
15
15
|
## Extended
|
|
16
16
|
|
|
@@ -63,16 +63,35 @@ export function Example() {
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
###
|
|
66
|
+
### Playground snippets
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|------|----------|
|
|
70
|
-
| [examples/app-palette.tsx](./examples/app-palette.tsx) | Global app palette (pages + settings), ⌘K, footer key hints |
|
|
71
|
-
| [examples/file-search.tsx](./examples/file-search.tsx) | File list: **`value`** / **`keywords`** for paths and tokens, **`ItemIcon`** |
|
|
72
|
-
| [examples/quick-actions.tsx](./examples/quick-actions.tsx) | Contextual quick actions (clipboard, people) in groups |
|
|
73
|
-
| [examples/disabled-items.tsx](./examples/disabled-items.tsx) | **`disabled`** excludes items from the list (not inactive rows) |
|
|
68
|
+
Same order as **`playground/sections/CommandMenuSection.tsx`**. Sources use `@/` under **`playground/snippets/command-menu/`**:
|
|
74
69
|
|
|
75
|
-
|
|
70
|
+
| Block | File | What it shows |
|
|
71
|
+
|-------|------|----------------|
|
|
72
|
+
| **Варианты** | [`variants-density-items.tsx`](../../../playground/snippets/command-menu/variants-density-items.tsx) | **`InputRow`** **`density`** (`compact` / `comfortable`) and **`Item`** **`size`** (`s` / `m`). |
|
|
73
|
+
| **Состояния** | [`states-disabled-filter.tsx`](../../../playground/snippets/command-menu/states-disabled-filter.tsx) | **`disabled`** (excluded from navigation), empty **`value`** (always in results), footer note on empty filter. |
|
|
74
|
+
| **Контролируемый режим** | [`controlled-open-search.tsx`](../../../playground/snippets/command-menu/controlled-open-search.tsx) | **`Dialog`** **`open`** / **`onOpenChange`** and controlled **`Input`** **`value`** / **`onChange`**. |
|
|
75
|
+
| **Композиция** | [`composition-tags-footer.tsx`](../../../playground/snippets/command-menu/composition-tags-footer.tsx) | Custom title, **`InputRow`** **`leading`** / **`trailing`** (**`Kbd`**, close), **`TagSection`**, **`ItemIcon`**, **`Footer`**. |
|
|
76
|
+
| **Full width** | [`full-width-panel.tsx`](../../../playground/snippets/command-menu/full-width-panel.tsx) | Wider panel via **`className`** on **`Dialog`** (playground: demo class; apps: e.g. **`dialogContentWide`** from **`CommandMenu.module.css`**). |
|
|
77
|
+
| **Полиморфная разметка** | [`item-icon-as.tsx`](../../../playground/snippets/command-menu/item-icon-as.tsx) | **`ItemIcon`** **`as`** — SVG component or **`span`**. |
|
|
78
|
+
| **Специфичные фичи** | [`features-keyboard-search.tsx`](../../../playground/snippets/command-menu/features-keyboard-search.tsx) | Global ⌘K / Ctrl+K, **`keywords`**, **`FooterKeyBox`** hints. |
|
|
79
|
+
|
|
80
|
+
### Package examples (`examples/`)
|
|
81
|
+
|
|
82
|
+
Runnable recipes use **`@/`** imports in-repo (consumers: **`prime-ui-kit`**). Aligned with the playground blocks above where noted.
|
|
83
|
+
|
|
84
|
+
| Playground block | File |
|
|
85
|
+
|------------------|------|
|
|
86
|
+
| Варианты | [`variants-density-items.tsx`](./examples/variants-density-items.tsx) |
|
|
87
|
+
| Состояния | [`disabled-items.tsx`](./examples/disabled-items.tsx) |
|
|
88
|
+
| Контролируемый режим | [`controlled-open-search.tsx`](./examples/controlled-open-search.tsx) |
|
|
89
|
+
| Композиция | [`composition-tags-footer.tsx`](./examples/composition-tags-footer.tsx) |
|
|
90
|
+
| Full width | [`full-width-panel.tsx`](./examples/full-width-panel.tsx) |
|
|
91
|
+
| Полиморфная разметка | [`item-icon-as.tsx`](./examples/item-icon-as.tsx) |
|
|
92
|
+
| Специфичные фичи | [`app-palette.tsx`](./examples/app-palette.tsx) |
|
|
93
|
+
| (extra) File list + **`keywords`** | [`file-search.tsx`](./examples/file-search.tsx) |
|
|
94
|
+
| (extra) Grouped quick actions | [`quick-actions.tsx`](./examples/quick-actions.tsx) |
|
|
76
95
|
|
|
77
96
|
### Rules
|
|
78
97
|
|
|
@@ -125,7 +144,7 @@ Playground mirrors: `playground/snippets/command-menu/*`.
|
|
|
125
144
|
|
|
126
145
|
| Prop | Type | Default | Required | Description |
|
|
127
146
|
|------|------|---------|----------|-------------|
|
|
128
|
-
| value | `string
|
|
147
|
+
| value | `string \| number \| readonly string[]` | — | no | Controlled value; when set, filters sync from this value |
|
|
129
148
|
| onChange | `React.ChangeEventHandler<HTMLInputElement>` | — | no | Standard change handler; internal state updates when uncontrolled |
|
|
130
149
|
| className | `string` | — | no | Input class |
|
|
131
150
|
| …rest | `Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" \| "type">` | — | no | Other attributes except `size` and `type` (`type` is fixed to `search`) |
|
|
@@ -192,4 +211,4 @@ Polymorphic icon slot: `as` (element type, default `"span"`), `className`, and r
|
|
|
192
211
|
|
|
193
212
|
## LLM note
|
|
194
213
|
|
|
195
|
-
When generating or refactoring CommandMenu usage: import **`CommandMenu`** from **`prime-ui-kit`** only; do not reimplement modal, listbox, or filter logic. Always pass **`open`** / **`onOpenChange`** (or **`defaultOpen`**) on **`Dialog`**, put **`Input`** inside **`InputRow`** for standard chrome, and give **`Input`** an **`aria-label`** (or associated label). Every **`Item`** needs a **`value`** string; add **`keywords`** for synonyms and path segments. Do not set **`disabled`** expecting a visible inactive row—those entries are removed from the palette; use conditional JSX or a non-**`Item`** hint if the UX must mention unavailable actions. For global palettes, document **`aria-labelledby`** + **`DialogTitle`** **`id`**.
|
|
214
|
+
When generating or refactoring CommandMenu usage: import **`CommandMenu`** from **`prime-ui-kit`** only; do not reimplement modal, listbox, or filter logic. Always pass **`open`** / **`onOpenChange`** (or **`defaultOpen`**) on **`Dialog`**, put **`Input`** inside **`InputRow`** for standard chrome, and give **`Input`** an **`aria-label`** (or associated label). Every **`Item`** needs a **`value`** string (use **`""`** only when the row must stay visible for any query); add **`keywords`** for synonyms and path segments. Do not set **`disabled`** expecting a visible inactive row—those entries are removed from the palette; use conditional JSX or a non-**`Item`** hint if the UX must mention unavailable actions. For global palettes, document **`aria-labelledby`** + **`DialogTitle`** **`id`**. Mirror **`playground/snippets/command-menu/*`** and **`examples/*.tsx`** for density, controlled search, composition, wide panel, **`ItemIcon`**, keyboard shortcut + footer, file search, quick actions, and disabled / empty-value behavior.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { FileText, Search, Settings, Sparkles, X } 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 { Kbd } from "@/components/kbd/Kbd";
|
|
7
|
+
import { Tag } from "@/components/tag/Tag";
|
|
8
|
+
import { Typography } from "@/components/typography/Typography";
|
|
9
|
+
|
|
10
|
+
const inputIconStyle: React.CSSProperties = {
|
|
11
|
+
width: "var(--prime-sys-size-control-m-icon)",
|
|
12
|
+
height: "var(--prime-sys-size-control-m-icon)",
|
|
13
|
+
color: "var(--prime-sys-color-content-muted)",
|
|
14
|
+
flexShrink: 0,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const dialogHeaderPadStyle: React.CSSProperties = {
|
|
18
|
+
padding: "var(--prime-sys-spacing-x4) var(--prime-sys-spacing-x4) 0",
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const dialogHeaderLeadStyle: React.CSSProperties = {
|
|
22
|
+
marginTop: "var(--prime-sys-spacing-x1)",
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const footerMutedStyle: React.CSSProperties = {
|
|
26
|
+
background: "var(--prime-sys-color-surface-default)",
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Custom header, `InputRow` slots, `TagSection`, `ItemIcon`, muted `Footer` (playground `composition-tags-footer.tsx`).
|
|
31
|
+
*/
|
|
32
|
+
export default function CommandMenuExampleCompositionTagsFooter() {
|
|
33
|
+
const [open, setOpen] = React.useState(false);
|
|
34
|
+
const [scopes, setScopes] = React.useState(["Docs", "Commands"]);
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<>
|
|
38
|
+
<Button.Root size="m" variant="neutral" mode="stroke" onClick={() => setOpen(true)}>
|
|
39
|
+
Full composition
|
|
40
|
+
</Button.Root>
|
|
41
|
+
|
|
42
|
+
<CommandMenu.Dialog
|
|
43
|
+
open={open}
|
|
44
|
+
onOpenChange={setOpen}
|
|
45
|
+
aria-labelledby="cmd-composition-title"
|
|
46
|
+
>
|
|
47
|
+
<div style={dialogHeaderPadStyle}>
|
|
48
|
+
<Typography.Root
|
|
49
|
+
as="div"
|
|
50
|
+
id="cmd-composition-title"
|
|
51
|
+
role="heading"
|
|
52
|
+
aria-level={2}
|
|
53
|
+
variant="body-large"
|
|
54
|
+
weight="semibold"
|
|
55
|
+
>
|
|
56
|
+
Palette
|
|
57
|
+
</Typography.Root>
|
|
58
|
+
<Typography.Root variant="body-small" tone="muted" style={dialogHeaderLeadStyle}>
|
|
59
|
+
Search sections and run quick actions
|
|
60
|
+
</Typography.Root>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
<CommandMenu.InputRow
|
|
64
|
+
leading={<Search style={inputIconStyle} strokeWidth={2} aria-hidden />}
|
|
65
|
+
trailing={
|
|
66
|
+
<>
|
|
67
|
+
<Kbd.Root aria-label="Open shortcut">⌘K</Kbd.Root>
|
|
68
|
+
<Button.Root
|
|
69
|
+
size="m"
|
|
70
|
+
variant="neutral"
|
|
71
|
+
mode="ghost"
|
|
72
|
+
aria-label="Close"
|
|
73
|
+
onClick={() => setOpen(false)}
|
|
74
|
+
>
|
|
75
|
+
<Button.Icon>
|
|
76
|
+
<X size={18} strokeWidth={2} aria-hidden />
|
|
77
|
+
</Button.Icon>
|
|
78
|
+
</Button.Root>
|
|
79
|
+
</>
|
|
80
|
+
}
|
|
81
|
+
>
|
|
82
|
+
<CommandMenu.Input placeholder="Where to…" aria-label="Search" />
|
|
83
|
+
</CommandMenu.InputRow>
|
|
84
|
+
|
|
85
|
+
<CommandMenu.TagSection>
|
|
86
|
+
<CommandMenu.TagSectionLabel>
|
|
87
|
+
<Typography.Root variant="body-compact" tone="muted">
|
|
88
|
+
Scope
|
|
89
|
+
</Typography.Root>
|
|
90
|
+
</CommandMenu.TagSectionLabel>
|
|
91
|
+
<CommandMenu.TagRow>
|
|
92
|
+
{scopes.map((s) => (
|
|
93
|
+
<Tag.Root
|
|
94
|
+
key={s}
|
|
95
|
+
size="m"
|
|
96
|
+
onRemove={() => setScopes((p) => p.filter((x) => x !== s))}
|
|
97
|
+
>
|
|
98
|
+
{s}
|
|
99
|
+
</Tag.Root>
|
|
100
|
+
))}
|
|
101
|
+
</CommandMenu.TagRow>
|
|
102
|
+
</CommandMenu.TagSection>
|
|
103
|
+
|
|
104
|
+
<CommandMenu.List>
|
|
105
|
+
<CommandMenu.Group heading="File">
|
|
106
|
+
<CommandMenu.Item value="new document" onSelect={() => setOpen(false)}>
|
|
107
|
+
<CommandMenu.ItemIcon as={FileText} strokeWidth={2} />
|
|
108
|
+
New document
|
|
109
|
+
</CommandMenu.Item>
|
|
110
|
+
</CommandMenu.Group>
|
|
111
|
+
<CommandMenu.Group heading="System">
|
|
112
|
+
<CommandMenu.Item
|
|
113
|
+
value="settings"
|
|
114
|
+
keywords="preferences profile"
|
|
115
|
+
onSelect={() => setOpen(false)}
|
|
116
|
+
>
|
|
117
|
+
<CommandMenu.ItemIcon as={Settings} strokeWidth={2} />
|
|
118
|
+
Settings
|
|
119
|
+
</CommandMenu.Item>
|
|
120
|
+
<CommandMenu.Item value="tips" keywords="help tips" onSelect={() => setOpen(false)}>
|
|
121
|
+
<CommandMenu.ItemIcon as={Sparkles} strokeWidth={2} />
|
|
122
|
+
Tips
|
|
123
|
+
</CommandMenu.Item>
|
|
124
|
+
</CommandMenu.Group>
|
|
125
|
+
</CommandMenu.List>
|
|
126
|
+
|
|
127
|
+
<CommandMenu.Footer style={footerMutedStyle}>
|
|
128
|
+
<Typography.Root variant="body-compact" tone="muted">
|
|
129
|
+
Arrows and Enter work from the search field; groups hide when they have no visible
|
|
130
|
+
items.
|
|
131
|
+
</Typography.Root>
|
|
132
|
+
</CommandMenu.Footer>
|
|
133
|
+
</CommandMenu.Dialog>
|
|
134
|
+
</>
|
|
135
|
+
);
|
|
136
|
+
}
|