@mcp-b/web-components 0.2.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/LICENSE +21 -0
- package/README.md +49 -0
- package/dist/accordion-B1Q3kuP_.d.ts +373 -0
- package/dist/accordion-item-DvPfhpm8.js +307 -0
- package/dist/accordion-item-bPRIahNn.d.ts +63 -0
- package/dist/accordion-zDr-Br4V.js +483 -0
- package/dist/action-bar-CYsjmhwP.d.ts +29 -0
- package/dist/action-bar-CjN_UcnP.js +56 -0
- package/dist/alert-dialog-4CnO3Nb5.d.ts +60 -0
- package/dist/alert-dialog-D25Oi_TS.js +126 -0
- package/dist/avatar-Bje_KpZo.d.ts +141 -0
- package/dist/avatar-CRP0kW3x.js +224 -0
- package/dist/badge-Ct95U4UO.js +301 -0
- package/dist/badge-D1DNQrWn.d.ts +106 -0
- package/dist/breadcrumb-BxZ-nQE5.d.ts +365 -0
- package/dist/breadcrumb-item-BC454oQe.d.ts +59 -0
- package/dist/breadcrumb-item-P5pdq_gE.js +151 -0
- package/dist/breadcrumb-uURhiqWJ.js +384 -0
- package/dist/button-5k_aL_gD.js +802 -0
- package/dist/button-BQofnUt4.d.ts +354 -0
- package/dist/button-group-BydvJTQy.js +197 -0
- package/dist/button-group-COodHeuB.d.ts +155 -0
- package/dist/callout-B8zTf8Go.js +188 -0
- package/dist/callout-DFwPao36.d.ts +103 -0
- package/dist/card-BYDzdMAU.d.ts +177 -0
- package/dist/card-DIg1-X2G.js +332 -0
- package/dist/carousel-Bktu7wrD.js +843 -0
- package/dist/carousel-DQITCtEY.d.ts +423 -0
- package/dist/carousel-item-B5-X31Ha.js +79 -0
- package/dist/carousel-item-BB3jL2tk.d.ts +34 -0
- package/dist/cdn/loader.js +530 -0
- package/dist/checkbox-D6r7PVPj.js +641 -0
- package/dist/checkbox-DoFcDEKB.d.ts +354 -0
- package/dist/checkbox-group-CLvNAO_F.js +201 -0
- package/dist/checkbox-group-Cnh8rAn4.d.ts +152 -0
- package/dist/color-input-Bky89xg_.d.ts +470 -0
- package/dist/color-input-DPIxi9wR.js +894 -0
- package/dist/color-picker-adwOmtRl.js +1240 -0
- package/dist/color-picker-wQw8bPsq.d.ts +360 -0
- package/dist/combobox-B6al50UG.js +1693 -0
- package/dist/combobox-item-D2H1CMxC.d.ts +714 -0
- package/dist/combobox-item-yM6tDrGG.js +225 -0
- package/dist/comparison-B1-nMwmp.d.ts +134 -0
- package/dist/comparison-CyqKrCN-.js +435 -0
- package/dist/components/accordion/accordion.d.ts +2 -0
- package/dist/components/accordion/accordion.js +2 -0
- package/dist/components/accordion-item/accordion-item.d.ts +2 -0
- package/dist/components/accordion-item/accordion-item.js +2 -0
- package/dist/components/action-bar/action-bar.d.ts +2 -0
- package/dist/components/action-bar/action-bar.js +2 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +2 -0
- package/dist/components/alert-dialog/alert-dialog.js +2 -0
- package/dist/components/avatar/avatar.d.ts +2 -0
- package/dist/components/avatar/avatar.js +2 -0
- package/dist/components/badge/badge.d.ts +2 -0
- package/dist/components/badge/badge.js +2 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb.js +2 -0
- package/dist/components/breadcrumb-item/breadcrumb-item.d.ts +2 -0
- package/dist/components/breadcrumb-item/breadcrumb-item.js +2 -0
- package/dist/components/button/button.d.ts +2 -0
- package/dist/components/button/button.js +2 -0
- package/dist/components/button-group/button-group.d.ts +2 -0
- package/dist/components/button-group/button-group.js +2 -0
- package/dist/components/callout/callout.d.ts +2 -0
- package/dist/components/callout/callout.js +2 -0
- package/dist/components/card/card.d.ts +2 -0
- package/dist/components/card/card.js +2 -0
- package/dist/components/carousel/carousel.d.ts +2 -0
- package/dist/components/carousel/carousel.js +2 -0
- package/dist/components/carousel-item/carousel-item.d.ts +2 -0
- package/dist/components/carousel-item/carousel-item.js +2 -0
- package/dist/components/checkbox/checkbox.d.ts +2 -0
- package/dist/components/checkbox/checkbox.js +2 -0
- package/dist/components/checkbox-group/checkbox-group.d.ts +2 -0
- package/dist/components/checkbox-group/checkbox-group.js +2 -0
- package/dist/components/color-input/color-input.d.ts +2 -0
- package/dist/components/color-input/color-input.js +2 -0
- package/dist/components/color-picker/color-picker.d.ts +2 -0
- package/dist/components/color-picker/color-picker.js +2 -0
- package/dist/components/combobox/combobox.d.ts +2 -0
- package/dist/components/combobox/combobox.js +2 -0
- package/dist/components/combobox-item/combobox-item.d.ts +2 -0
- package/dist/components/combobox-item/combobox-item.js +2 -0
- package/dist/components/comparison/comparison.d.ts +2 -0
- package/dist/components/comparison/comparison.js +2 -0
- package/dist/components/copy/copy.d.ts +2 -0
- package/dist/components/copy/copy.js +291 -0
- package/dist/components/data-table/data-table.d.ts +2 -0
- package/dist/components/data-table/data-table.js +2 -0
- package/dist/components/date/date.d.ts +2 -0
- package/dist/components/date/date.js +2 -0
- package/dist/components/dialog/dialog.d.ts +2 -0
- package/dist/components/dialog/dialog.js +2 -0
- package/dist/components/divider/divider.d.ts +2 -0
- package/dist/components/divider/divider.js +2 -0
- package/dist/components/dropdown/dropdown.d.ts +2 -0
- package/dist/components/dropdown/dropdown.js +2 -0
- package/dist/components/dropdown-item/dropdown-item.d.ts +2 -0
- package/dist/components/dropdown-item/dropdown-item.js +2 -0
- package/dist/components/empty-result/empty-result.d.ts +2 -0
- package/dist/components/empty-result/empty-result.js +2 -0
- package/dist/components/empty-state/empty-state.d.ts +2 -0
- package/dist/components/empty-state/empty-state.js +2 -0
- package/dist/components/expander/expander.d.ts +2 -0
- package/dist/components/expander/expander.js +2 -0
- package/dist/components/field/field.d.ts +2 -0
- package/dist/components/field/field.js +2 -0
- package/dist/components/file-input/file-input.d.ts +2 -0
- package/dist/components/file-input/file-input.js +2 -0
- package/dist/components/filter-bar/filter-bar.d.ts +2 -0
- package/dist/components/filter-bar/filter-bar.js +2 -0
- package/dist/components/form-section/form-section.d.ts +2 -0
- package/dist/components/form-section/form-section.js +2 -0
- package/dist/components/icon/icon.d.ts +2 -0
- package/dist/components/icon/icon.js +2 -0
- package/dist/components/include/include.d.ts +2 -0
- package/dist/components/include/include.js +2 -0
- package/dist/components/index.d.ts +85 -0
- package/dist/components/index.js +86 -0
- package/dist/components/infinite-scroller/infinite-scroller.d.ts +2 -0
- package/dist/components/infinite-scroller/infinite-scroller.js +2 -0
- package/dist/components/intersection-observer/intersection-observer.d.ts +2 -0
- package/dist/components/intersection-observer/intersection-observer.js +2 -0
- package/dist/components/listbox/listbox.d.ts +2 -0
- package/dist/components/listbox/listbox.js +2 -0
- package/dist/components/listbox-item/listbox-item.d.ts +2 -0
- package/dist/components/listbox-item/listbox-item.js +2 -0
- package/dist/components/lorem-ipsum/lorem-ipsum.d.ts +2 -0
- package/dist/components/lorem-ipsum/lorem-ipsum.js +2 -0
- package/dist/components/meter/meter.d.ts +2 -0
- package/dist/components/meter/meter.js +2 -0
- package/dist/components/metric/metric.d.ts +2 -0
- package/dist/components/metric/metric.js +2 -0
- package/dist/components/metric-grid/metric-grid.d.ts +2 -0
- package/dist/components/metric-grid/metric-grid.js +2 -0
- package/dist/components/mutation-observer/mutation-observer.d.ts +2 -0
- package/dist/components/mutation-observer/mutation-observer.js +2 -0
- package/dist/components/navicon/navicon.d.ts +2 -0
- package/dist/components/navicon/navicon.js +2 -0
- package/dist/components/number/number.d.ts +2 -0
- package/dist/components/number/number.js +2 -0
- package/dist/components/number-field/number-field.d.ts +2 -0
- package/dist/components/number-field/number-field.js +2 -0
- package/dist/components/pagination/pagination.d.ts +2 -0
- package/dist/components/pagination/pagination.js +2 -0
- package/dist/components/popover/popover.d.ts +2 -0
- package/dist/components/popover/popover.js +2 -0
- package/dist/components/preview-card/preview-card.d.ts +2 -0
- package/dist/components/preview-card/preview-card.js +2 -0
- package/dist/components/progress/progress.d.ts +2 -0
- package/dist/components/progress/progress.js +2 -0
- package/dist/components/radio/radio.d.ts +2 -0
- package/dist/components/radio/radio.js +2 -0
- package/dist/components/radio-item/radio-item.d.ts +2 -0
- package/dist/components/radio-item/radio-item.js +2 -0
- package/dist/components/random-content/random-content.d.ts +2 -0
- package/dist/components/random-content/random-content.js +2 -0
- package/dist/components/rating/rating.d.ts +2 -0
- package/dist/components/rating/rating.js +2 -0
- package/dist/components/resize-observer/resize-observer.d.ts +2 -0
- package/dist/components/resize-observer/resize-observer.js +2 -0
- package/dist/components/scroll-area/scroll-area.d.ts +2 -0
- package/dist/components/scroll-area/scroll-area.js +2 -0
- package/dist/components/scroller/scroller.d.ts +2 -0
- package/dist/components/scroller/scroller.js +2 -0
- package/dist/components/search-list/search-list.d.ts +2 -0
- package/dist/components/search-list/search-list.js +2 -0
- package/dist/components/select/select.d.ts +2 -0
- package/dist/components/select/select.js +2 -0
- package/dist/components/selection-summary/selection-summary.d.ts +2 -0
- package/dist/components/selection-summary/selection-summary.js +2 -0
- package/dist/components/share/share.d.ts +2 -0
- package/dist/components/share/share.js +2 -0
- package/dist/components/slide-activator/slide-activator.d.ts +2 -0
- package/dist/components/slide-activator/slide-activator.js +2 -0
- package/dist/components/slider/slider.d.ts +2 -0
- package/dist/components/slider/slider.js +2 -0
- package/dist/components/sparkline/sparkline.d.ts +2 -0
- package/dist/components/sparkline/sparkline.js +2 -0
- package/dist/components/spinner/spinner.d.ts +2 -0
- package/dist/components/spinner/spinner.js +2 -0
- package/dist/components/splitter/splitter.d.ts +2 -0
- package/dist/components/splitter/splitter.js +2 -0
- package/dist/components/switch/switch.d.ts +2 -0
- package/dist/components/switch/switch.js +2 -0
- package/dist/components/tab/tab.d.ts +2 -0
- package/dist/components/tab/tab.js +2 -0
- package/dist/components/tab-list/tab-list.d.ts +2 -0
- package/dist/components/tab-list/tab-list.js +2 -0
- package/dist/components/tab-panel/tab-panel.d.ts +2 -0
- package/dist/components/tab-panel/tab-panel.js +2 -0
- package/dist/components/text-area/text-area.d.ts +2 -0
- package/dist/components/text-area/text-area.js +2 -0
- package/dist/components/text-field/text-field.d.ts +2 -0
- package/dist/components/text-field/text-field.js +2 -0
- package/dist/components/text-mask/text-mask.d.ts +2 -0
- package/dist/components/text-mask/text-mask.js +2 -0
- package/dist/components/timed-content/timed-content.d.ts +2 -0
- package/dist/components/timed-content/timed-content.js +2 -0
- package/dist/components/toast/toast.d.ts +2 -0
- package/dist/components/toast/toast.js +2 -0
- package/dist/components/toast-item/toast-item.d.ts +2 -0
- package/dist/components/toast-item/toast-item.js +2 -0
- package/dist/components/toggle-icon/toggle-icon.d.ts +2 -0
- package/dist/components/toggle-icon/toggle-icon.js +2 -0
- package/dist/components/toggle-tag/toggle-tag.d.ts +2 -0
- package/dist/components/toggle-tag/toggle-tag.js +2 -0
- package/dist/components/toolbar/toolbar.d.ts +2 -0
- package/dist/components/toolbar/toolbar.js +2 -0
- package/dist/components/tooltip/tooltip.d.ts +2 -0
- package/dist/components/tooltip/tooltip.js +2 -0
- package/dist/components/transition-group/transition-group.d.ts +2 -0
- package/dist/components/transition-group/transition-group.js +2 -0
- package/dist/components/zoomable-frame/zoomable-frame.d.ts +2 -0
- package/dist/components/zoomable-frame/zoomable-frame.js +2 -0
- package/dist/copy-CvC9vaGw.d.ts +206 -0
- package/dist/copy.styles-DWGvGNTP.js +100 -0
- package/dist/data-table-CITa8DSn.js +247 -0
- package/dist/data-table-DL5RhE0d.d.ts +89 -0
- package/dist/date-CJPmOdi9.js +146 -0
- package/dist/date-DtaTBM71.d.ts +142 -0
- package/dist/decorate-DcF3lt7P.js +9 -0
- package/dist/dialog-Cx46HMaZ.js +983 -0
- package/dist/dialog-N-v0woIy.d.ts +414 -0
- package/dist/divider-9vNsfHW8.js +169 -0
- package/dist/divider-DWuAxcXv.d.ts +79 -0
- package/dist/docs/custom-elements.json +29301 -0
- package/dist/dropdown-BXSKpVX9.js +1123 -0
- package/dist/dropdown-Bo00Vlr5.d.ts +537 -0
- package/dist/dropdown-item-_lIs-Tfd.d.ts +111 -0
- package/dist/dropdown-item-i77cRuN6.js +504 -0
- package/dist/empty-result-B2ln1yFL.js +65 -0
- package/dist/empty-result-B54x_Ab2.d.ts +31 -0
- package/dist/empty-state-BLWjtKUo.js +186 -0
- package/dist/empty-state-SGKjpwp3.d.ts +117 -0
- package/dist/expander-BUev0BmM.d.ts +174 -0
- package/dist/expander-Bwvxj6Oa.js +342 -0
- package/dist/field-BEyS909F.js +163 -0
- package/dist/field-ITx0jVw-.d.ts +69 -0
- package/dist/file-input-BEumLJjg.js +841 -0
- package/dist/file-input-D2D6YC0B.d.ts +378 -0
- package/dist/filter-bar-Bj2QzEn9.d.ts +35 -0
- package/dist/filter-bar-Dcs67aXo.js +66 -0
- package/dist/form-section-BchPetkj.js +83 -0
- package/dist/form-section-xFBTBULQ.d.ts +34 -0
- package/dist/icon-BPVkNsY4.js +165 -0
- package/dist/icon-Ci9CPZJV.d.ts +72 -0
- package/dist/icon-library-D_if7p2h.d.ts +2 -0
- package/dist/include-CQHVVtNs.d.ts +103 -0
- package/dist/include-qNUh_6kT.js +155 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.js +92 -0
- package/dist/infinite-scroller-BmmtnWNt.js +285 -0
- package/dist/infinite-scroller-CuUEAlB9.d.ts +174 -0
- package/dist/intersection-observer-B6TciOAQ.js +503 -0
- package/dist/intersection-observer-B7nmP7Zz.d.ts +418 -0
- package/dist/listbox-C3XXRWGX.js +1257 -0
- package/dist/listbox-DD4ujIJe.d.ts +682 -0
- package/dist/listbox-item-CwD9s3VY.js +135 -0
- package/dist/listbox-item-DQEJWp4Z.d.ts +53 -0
- package/dist/localize-322EtXNX.d.ts +66 -0
- package/dist/lorem-ipsum-B2x3V-v8.js +198 -0
- package/dist/lorem-ipsum-CR82CSuJ.d.ts +130 -0
- package/dist/meter-BC7uaJWf.d.ts +73 -0
- package/dist/meter-BIDyjwFp.js +155 -0
- package/dist/metric-CjlLq_VA.d.ts +36 -0
- package/dist/metric-DbuOcDp_.js +86 -0
- package/dist/metric-grid-C2Pb0Zl3.js +37 -0
- package/dist/metric-grid-C5Xbb1_0.d.ts +27 -0
- package/dist/mutation-observer-BmrZ-GER.d.ts +326 -0
- package/dist/mutation-observer-DS8EBuOp.js +388 -0
- package/dist/navicon-Dic5Qjzb.d.ts +159 -0
- package/dist/navicon-_yMHY27-.js +486 -0
- package/dist/number-BNtNXNF3.js +162 -0
- package/dist/number-BwbnErlB.d.ts +143 -0
- package/dist/number-field-BQHB7UYo.js +726 -0
- package/dist/number-field-odk4lKXM.d.ts +422 -0
- package/dist/pagination-6z2qcf3U.d.ts +322 -0
- package/dist/pagination-DuKPuzdb.js +679 -0
- package/dist/popover-D0sxTU6o.d.ts +259 -0
- package/dist/popover-DJBrJ0za.js +556 -0
- package/dist/preview-card-C7H1FPfd.js +287 -0
- package/dist/preview-card-DitOCZTD.d.ts +86 -0
- package/dist/progress-Db0_axHQ.d.ts +181 -0
- package/dist/progress-DzVk260j.js +494 -0
- package/dist/radio-BtDG9xJM.js +658 -0
- package/dist/radio-CieMa4zU.d.ts +460 -0
- package/dist/radio-item-DIrUStAX.js +264 -0
- package/dist/radio-item-Xq2U3cMu.d.ts +69 -0
- package/dist/random-content-BhSeJFKz.d.ts +380 -0
- package/dist/random-content-BwiirXdG.js +450 -0
- package/dist/rating-4xNsWumY.d.ts +369 -0
- package/dist/rating-C1BcJDIO.js +722 -0
- package/dist/resize-observer-BseSbVWP.d.ts +187 -0
- package/dist/resize-observer-DcrLhddo.js +236 -0
- package/dist/scroll-area-COc1857S.js +127 -0
- package/dist/scroll-area-CVYDf5qY.d.ts +61 -0
- package/dist/scroller-LYgBVyfY.js +590 -0
- package/dist/scroller-bB2rGs7b.d.ts +374 -0
- package/dist/search-list-Clmrg8EV.js +884 -0
- package/dist/search-list-n0GYO7rh.d.ts +777 -0
- package/dist/select-CkZK2jJn.d.ts +506 -0
- package/dist/select-DLIaRnA4.js +690 -0
- package/dist/selection-summary-BVnNJ8Lw.js +48 -0
- package/dist/selection-summary-DmFkGyZI.d.ts +34 -0
- package/dist/share-DPlqP2dc.d.ts +162 -0
- package/dist/share-bsgXZCl7.js +250 -0
- package/dist/sigvelo.d.ts +5 -0
- package/dist/sigvelo.js +5 -0
- package/dist/sigvelo.loader.d.ts +3 -0
- package/dist/sigvelo.loader.js +102 -0
- package/dist/slide-activator-D7bBz69E.d.ts +429 -0
- package/dist/slide-activator-DlxQt9R9.js +798 -0
- package/dist/slider-B0FVsV1o.d.ts +921 -0
- package/dist/slider-B90Il7x3.js +1744 -0
- package/dist/sparkline-CcpTaJ_Z.js +358 -0
- package/dist/sparkline-DlCIt81-.d.ts +235 -0
- package/dist/spinner-C04Dmc0H.js +188 -0
- package/dist/spinner-CZ19x_dC.d.ts +99 -0
- package/dist/splitter-DBDJAzsp.d.ts +325 -0
- package/dist/splitter-MnD4In9H.js +638 -0
- package/dist/switch-CPaEKbog.js +581 -0
- package/dist/switch-Cief9M59.d.ts +248 -0
- package/dist/tab-BcqYGsuW.d.ts +44 -0
- package/dist/tab-C-FtuNmh.js +102 -0
- package/dist/tab-list-B_Ye_Oj9.js +691 -0
- package/dist/tab-list-DDvS8qHr.d.ts +450 -0
- package/dist/tab-panel-BaBl6eep.js +60 -0
- package/dist/tab-panel-BzSJlSfd.d.ts +38 -0
- package/dist/text-area-B_mjCE9W.d.ts +327 -0
- package/dist/text-area-Czixaz-_.js +556 -0
- package/dist/text-field-BClWMp6q.d.ts +424 -0
- package/dist/text-field-inpJfp0A.js +687 -0
- package/dist/text-mask-CNKVKSFp.d.ts +336 -0
- package/dist/text-mask-DDEurj90.js +370 -0
- package/dist/themes/sigvelo.css +10 -0
- package/dist/themes/utilities.css +9 -0
- package/dist/timed-content-D2mGFamc.d.ts +181 -0
- package/dist/timed-content-pvEP4l5V.js +226 -0
- package/dist/toast-BnZaIg6Z.js +636 -0
- package/dist/toast-cEBVK9NQ.d.ts +487 -0
- package/dist/toast-item-BPpJT6vD.d.ts +159 -0
- package/dist/toast-item-IS8IFUEg.js +372 -0
- package/dist/toggle-icon-4oLDeEt4.js +752 -0
- package/dist/toggle-icon-DlwMMWZL.d.ts +359 -0
- package/dist/toggle-tag-1sfTFJtg.js +434 -0
- package/dist/toggle-tag-IVvMGT4R.d.ts +245 -0
- package/dist/toolbar-CABq0ZL1.d.ts +122 -0
- package/dist/toolbar-CEZ0-F-X.js +196 -0
- package/dist/tooltip-DbyoPFNe.js +521 -0
- package/dist/tooltip-ahFthek8.d.ts +192 -0
- package/dist/transition-group-3hnAnwSd.js +801 -0
- package/dist/transition-group-DD_CjSNC.d.ts +608 -0
- package/dist/translations/en.d.ts +6 -0
- package/dist/translations/en.js +75 -0
- package/dist/translations/es.d.ts +6 -0
- package/dist/translations/es.js +75 -0
- package/dist/types/custom-element-jsx.d.ts +13723 -0
- package/dist/utilities/icon-library.d.ts +3 -0
- package/dist/utilities/icon-library.js +93 -0
- package/dist/utilities/localize.d.ts +2 -0
- package/dist/utilities/localize.js +6 -0
- package/dist/zoomable-frame-Cldvj5sE.js +398 -0
- package/dist/zoomable-frame-r6S6587z.d.ts +162 -0
- package/package.json +83 -0
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/dropdown/dropdown.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-dropdown>
|
|
7
|
+
*
|
|
8
|
+
* @summary Provides a menu of options that appear when the corresponding trigger is activated.
|
|
9
|
+
* @tag sigvelo-dropdown
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/dropdown
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @dependency sigvelo-dropdown-item
|
|
15
|
+
*
|
|
16
|
+
* @slot - One or more `<dropdown-item>` elements to show in the dropdown. You can also use `<sigvelo-divider>` here.
|
|
17
|
+
* @slot trigger - The dropdown's trigger. Must be a `<sigvelo-button>` or `<button>` element.
|
|
18
|
+
*
|
|
19
|
+
* @event sigvelo-before-open - Emitted when the dropdown is instructed to open but before it is shown.
|
|
20
|
+
* @event sigvelo-open - Emitted when the dropdown menu has opened and the animation has completed.
|
|
21
|
+
* @event sigvelo-before-close - Emitted when the dropdown is dismissed but before it is hidden.
|
|
22
|
+
* @event sigvelo-close - Emitted when the dropdown menu has closed and the animation has completed.
|
|
23
|
+
* @event sigvelo-select - Emitted when a dropdown item has been selected. You can inspect `event.detail.item` to see the
|
|
24
|
+
* `<sigvelo-dropdown-item>` that was selected. Calling `event.preventDefault()` will keep the dropdown open.
|
|
25
|
+
*
|
|
26
|
+
* @cssproperty [--show-duration=50ms] - The duration of the show/hide animation.
|
|
27
|
+
*
|
|
28
|
+
* @csspart menu - The dropdown menu's container.
|
|
29
|
+
*
|
|
30
|
+
* @cssstate open - Applied when the dropdown is open.
|
|
31
|
+
*
|
|
32
|
+
* @example Default
|
|
33
|
+
* Dropdown menus appear when their trigger element is clicked. They are not modal, so no overlay is shown when open. Dropdowns will close when the user selects an item, clicks outside of them, or presses [[Escape]]. Only one dropdown can be open at a time.
|
|
34
|
+
*
|
|
35
|
+
* ```html
|
|
36
|
+
* <sigvelo-dropdown>
|
|
37
|
+
* <sigvelo-button slot="trigger" with-caret>
|
|
38
|
+
* <sigvelo-icon slot="start" name="mail"></sigvelo-icon>
|
|
39
|
+
* Message
|
|
40
|
+
* </sigvelo-button>
|
|
41
|
+
*
|
|
42
|
+
* <h3>Actions</h3>
|
|
43
|
+
*
|
|
44
|
+
* <sigvelo-dropdown-item value="reply">
|
|
45
|
+
* <sigvelo-icon slot="icon" name="corner-up-left"></sigvelo-icon>
|
|
46
|
+
* Reply
|
|
47
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl R" variant="unstyled"></sigvelo-hotkey>
|
|
48
|
+
* </sigvelo-dropdown-item>
|
|
49
|
+
*
|
|
50
|
+
* <sigvelo-dropdown-item value="forward">
|
|
51
|
+
* <sigvelo-icon slot="icon" name="corner-up-right"></sigvelo-icon>
|
|
52
|
+
* Forward
|
|
53
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl F" variant="unstyled"></sigvelo-hotkey>
|
|
54
|
+
* </sigvelo-dropdown-item>
|
|
55
|
+
*
|
|
56
|
+
* <sigvelo-dropdown-item value="archive">
|
|
57
|
+
* <sigvelo-icon slot="icon" name="archive"></sigvelo-icon>
|
|
58
|
+
* Archive
|
|
59
|
+
* <sigvelo-hotkey slot="details" keys="$shift $cmdctrl A" variant="unstyled"></sigvelo-hotkey>
|
|
60
|
+
* </sigvelo-dropdown-item>
|
|
61
|
+
*
|
|
62
|
+
* <sigvelo-dropdown-item value="delete" color="destructive">
|
|
63
|
+
* <sigvelo-icon slot="icon" name="trash"></sigvelo-icon>
|
|
64
|
+
* Delete
|
|
65
|
+
* <span slot="details">Del</span>
|
|
66
|
+
* </sigvelo-dropdown-item>
|
|
67
|
+
*
|
|
68
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
69
|
+
*
|
|
70
|
+
* <sigvelo-dropdown-item value="images" type="checkbox" checked>
|
|
71
|
+
* Show images
|
|
72
|
+
* </sigvelo-dropdown-item>
|
|
73
|
+
*
|
|
74
|
+
* <sigvelo-dropdown-item value="wrap" type="checkbox" checked>
|
|
75
|
+
* Word wrap
|
|
76
|
+
* </sigvelo-dropdown-item>
|
|
77
|
+
*
|
|
78
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
79
|
+
*
|
|
80
|
+
* <sigvelo-dropdown-item>
|
|
81
|
+
* <sigvelo-icon slot="icon" name="tag"></sigvelo-icon>
|
|
82
|
+
* Labels
|
|
83
|
+
* <sigvelo-dropdown-item slot="submenu" value="add-label">
|
|
84
|
+
* <sigvelo-icon slot="icon" name="plus"></sigvelo-icon>
|
|
85
|
+
* Add label
|
|
86
|
+
* </sigvelo-dropdown-item>
|
|
87
|
+
* <sigvelo-dropdown-item slot="submenu" value="manage-labels">
|
|
88
|
+
* <sigvelo-icon slot="icon" name="edit"></sigvelo-icon>
|
|
89
|
+
* Manage labels
|
|
90
|
+
* </sigvelo-dropdown-item>
|
|
91
|
+
* </sigvelo-dropdown-item>
|
|
92
|
+
*
|
|
93
|
+
* <sigvelo-dropdown-item value="preferences">
|
|
94
|
+
* <sigvelo-icon slot="icon" name="adjustments-horizontal"></sigvelo-icon>
|
|
95
|
+
* Preferences
|
|
96
|
+
* </sigvelo-dropdown-item>
|
|
97
|
+
* </sigvelo-dropdown>
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @example Getting the selected item
|
|
101
|
+
* When an item is selected, the `sigvelo-select` event will be emitted by the dropdown. You can inspect `event.detail.item` to get a reference to the selected item. If you've provided a value for each dropdown item, it will be available in `event.detail.item.value`.
|
|
102
|
+
*
|
|
103
|
+
* ```html
|
|
104
|
+
* <sigvelo-dropdown id="dropdown__selected">
|
|
105
|
+
* <sigvelo-button slot="trigger" with-caret>View</sigvelo-button>
|
|
106
|
+
* <sigvelo-dropdown-item value="full-screen">Enter full screen</sigvelo-dropdown-item>
|
|
107
|
+
* <sigvelo-dropdown-item value="actual">Actual size</sigvelo-dropdown-item>
|
|
108
|
+
* <sigvelo-dropdown-item value="zoom-in">Zoom in</sigvelo-dropdown-item>
|
|
109
|
+
* <sigvelo-dropdown-item value="zoom-out">Zoom out</sigvelo-dropdown-item>
|
|
110
|
+
* </sigvelo-dropdown>
|
|
111
|
+
*
|
|
112
|
+
* <script>
|
|
113
|
+
* const dropdown = document.getElementById('dropdown__selected');
|
|
114
|
+
*
|
|
115
|
+
* dropdown.addEventListener('sigvelo-select', event => {
|
|
116
|
+
* console.log(event.detail.item.value);
|
|
117
|
+
* });
|
|
118
|
+
* </script>
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* **Note:** To keep the dropdown open after selection, call `event.preventDefault()` in the `sigvelo-select` event's callback.
|
|
122
|
+
*
|
|
123
|
+
* @example Showing icons
|
|
124
|
+
* Use the `icon` slot to add icons to dropdown items. This works best with icon elements.
|
|
125
|
+
*
|
|
126
|
+
* ```html
|
|
127
|
+
* <sigvelo-dropdown>
|
|
128
|
+
* <sigvelo-button slot="trigger" with-caret>Edit</sigvelo-button>
|
|
129
|
+
*
|
|
130
|
+
* <sigvelo-dropdown-item value="cut">
|
|
131
|
+
* <sigvelo-icon slot="icon" name="scissors"></sigvelo-icon>
|
|
132
|
+
* Cut
|
|
133
|
+
* </sigvelo-dropdown-item>
|
|
134
|
+
*
|
|
135
|
+
* <sigvelo-dropdown-item value="copy">
|
|
136
|
+
* <sigvelo-icon slot="icon" name="clipboard-copy"></sigvelo-icon>
|
|
137
|
+
* Copy
|
|
138
|
+
* </sigvelo-dropdown-item>
|
|
139
|
+
*
|
|
140
|
+
* <sigvelo-dropdown-item value="paste">
|
|
141
|
+
* <sigvelo-icon slot="icon" name="clipboard-plus"></sigvelo-icon>
|
|
142
|
+
* Paste
|
|
143
|
+
* </sigvelo-dropdown-item>
|
|
144
|
+
*
|
|
145
|
+
* <sigvelo-dropdown-item value="delete">
|
|
146
|
+
* <sigvelo-icon slot="icon" name="backspace"></sigvelo-icon>
|
|
147
|
+
* Delete
|
|
148
|
+
* </sigvelo-dropdown-item>
|
|
149
|
+
* </sigvelo-dropdown>
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* @example Showing labels & dividers
|
|
153
|
+
* Use any heading, e.g. `<h1>`–`<h6>` to add labels and the `<sigvelo-divider>` element for separators.
|
|
154
|
+
*
|
|
155
|
+
* ```html
|
|
156
|
+
* <sigvelo-dropdown>
|
|
157
|
+
* <sigvelo-button slot="trigger" with-caret>Device</sigvelo-button>
|
|
158
|
+
* <h3>Type</h3>
|
|
159
|
+
* <sigvelo-dropdown-item value="phone">Phone</sigvelo-dropdown-item>
|
|
160
|
+
* <sigvelo-dropdown-item value="tablet">Tablet</sigvelo-dropdown-item>
|
|
161
|
+
* <sigvelo-dropdown-item value="desktop">Desktop</sigvelo-dropdown-item>
|
|
162
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
163
|
+
* <sigvelo-dropdown-item value="more">More options…</sigvelo-dropdown-item>
|
|
164
|
+
* </sigvelo-dropdown>
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* @example Showing details
|
|
168
|
+
* Use the `details` slot to display details, such as keyboard shortcuts, inside dropdown items.
|
|
169
|
+
*
|
|
170
|
+
* ```html
|
|
171
|
+
* <sigvelo-dropdown>
|
|
172
|
+
* <sigvelo-button slot="trigger" with-caret>Message</sigvelo-button>
|
|
173
|
+
*
|
|
174
|
+
* <sigvelo-dropdown-item value="reply">
|
|
175
|
+
* Reply
|
|
176
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl R" variant="unstyled"></sigvelo-hotkey>
|
|
177
|
+
* </sigvelo-dropdown-item>
|
|
178
|
+
*
|
|
179
|
+
* <sigvelo-dropdown-item value="forward">
|
|
180
|
+
* Forward
|
|
181
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl F" variant="unstyled"></sigvelo-hotkey>
|
|
182
|
+
* </sigvelo-dropdown-item>
|
|
183
|
+
*
|
|
184
|
+
* <sigvelo-dropdown-item value="move">
|
|
185
|
+
* Move
|
|
186
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl M" variant="unstyled"></sigvelo-hotkey>
|
|
187
|
+
* </sigvelo-dropdown-item>
|
|
188
|
+
*
|
|
189
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
190
|
+
*
|
|
191
|
+
* <sigvelo-dropdown-item value="archive">
|
|
192
|
+
* Archive
|
|
193
|
+
* <sigvelo-hotkey slot="details" keys="$cmdctrl A" variant="unstyled"></sigvelo-hotkey>
|
|
194
|
+
* </sigvelo-dropdown-item>
|
|
195
|
+
*
|
|
196
|
+
* <sigvelo-dropdown-item value="delete" color="destructive">
|
|
197
|
+
* Delete
|
|
198
|
+
* <span slot="details">Delete</span>
|
|
199
|
+
* </sigvelo-dropdown-item>
|
|
200
|
+
* </sigvelo-dropdown>
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @example Checkable items
|
|
204
|
+
* You can turn a dropdown item into a checkable option by setting `type="checkbox"`. Add the `checked` attribute to make it checked initially. When clicked, the item's checked state will toggle and the dropdown will close. You can cancel the `sigvelo-select` event if you want to keep it open instead.
|
|
205
|
+
*
|
|
206
|
+
* ```html
|
|
207
|
+
* <sigvelo-dropdown id="dropdown__checkboxes">
|
|
208
|
+
* <sigvelo-button slot="trigger" with-caret>View</sigvelo-button>
|
|
209
|
+
* <sigvelo-dropdown-item type="checkbox" value="canvas" checked>Show canvas</sigvelo-dropdown-item>
|
|
210
|
+
* <sigvelo-dropdown-item type="checkbox" value="grid" checked>Show grid</sigvelo-dropdown-item>
|
|
211
|
+
* <sigvelo-dropdown-item type="checkbox" value="source">Show source</sigvelo-dropdown-item>
|
|
212
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
213
|
+
* <sigvelo-dropdown-item value="preferences">Preferences…</sigvelo-dropdown-item>
|
|
214
|
+
* </sigvelo-dropdown>
|
|
215
|
+
*
|
|
216
|
+
* <script>
|
|
217
|
+
* const dropdown = document.getElementById('dropdown__checkboxes');
|
|
218
|
+
*
|
|
219
|
+
* dropdown.addEventListener('sigvelo-select', event => {
|
|
220
|
+
* if (event.detail.item.type === 'checkbox') {
|
|
221
|
+
* // Checkbox
|
|
222
|
+
* console.log(
|
|
223
|
+
* event.detail.item.value,
|
|
224
|
+
* event.detail.item.checked ? 'checked' : 'unchecked'
|
|
225
|
+
* );
|
|
226
|
+
* } else {
|
|
227
|
+
* // Not a checkbox
|
|
228
|
+
* console.log(event.detail.item.value);
|
|
229
|
+
* }
|
|
230
|
+
* });
|
|
231
|
+
* </script>
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* **Note:** When a checkable option exists anywhere in the dropdown, all of items will receive additional padding so they align properly.
|
|
235
|
+
*
|
|
236
|
+
* @example Destructive items
|
|
237
|
+
* Add `color="destructive"` to any dropdown item to highlight that it's a dangerous action.
|
|
238
|
+
*
|
|
239
|
+
* ```html
|
|
240
|
+
* <sigvelo-dropdown>
|
|
241
|
+
* <sigvelo-button slot="trigger" with-caret>Project</sigvelo-button>
|
|
242
|
+
*
|
|
243
|
+
* <sigvelo-dropdown-item value="share">
|
|
244
|
+
* <sigvelo-icon slot="icon" name="share-2"></sigvelo-icon>
|
|
245
|
+
* Share
|
|
246
|
+
* </sigvelo-dropdown-item>
|
|
247
|
+
*
|
|
248
|
+
* <sigvelo-dropdown-item value="preferences">
|
|
249
|
+
* <sigvelo-icon slot="icon" name="adjustments-horizontal"></sigvelo-icon>
|
|
250
|
+
* Preferences
|
|
251
|
+
* </sigvelo-dropdown-item>
|
|
252
|
+
*
|
|
253
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
254
|
+
*
|
|
255
|
+
* <h3>Danger zone</h3>
|
|
256
|
+
*
|
|
257
|
+
* <sigvelo-dropdown-item value="archive">
|
|
258
|
+
* <sigvelo-icon slot="icon" name="archive"></sigvelo-icon>
|
|
259
|
+
* Archive
|
|
260
|
+
* </sigvelo-dropdown-item>
|
|
261
|
+
*
|
|
262
|
+
* <sigvelo-dropdown-item value="delete" color="destructive">
|
|
263
|
+
* <sigvelo-icon slot="icon" name="trash"></sigvelo-icon>
|
|
264
|
+
* Delete
|
|
265
|
+
* </sigvelo-dropdown-item>
|
|
266
|
+
* </sigvelo-dropdown>
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @example Link items
|
|
270
|
+
* Add `href` to any dropdown item to make it behave like a link. When selected, the browser will navigate to the target URL. When creating link items, you can also use the `target`, `rel`, and `download` attributes to control how the link opens.
|
|
271
|
+
*
|
|
272
|
+
* ```html
|
|
273
|
+
* <sigvelo-dropdown>
|
|
274
|
+
* <sigvelo-button slot="trigger" with-caret>Components</sigvelo-button>
|
|
275
|
+
* <sigvelo-dropdown-item href="/docs/components/button">Button</sigvelo-dropdown-item>
|
|
276
|
+
* <sigvelo-dropdown-item href="/docs/components/checkbox">Checkbox</sigvelo-dropdown-item>
|
|
277
|
+
* <sigvelo-dropdown-item href="/docs/components/radio">Radio</sigvelo-dropdown-item>
|
|
278
|
+
* <sigvelo-dropdown-item href="/docs/components/switch">Switch</sigvelo-dropdown-item>
|
|
279
|
+
* <sigvelo-dropdown-item href="/docs/components/text-field">Text Field</sigvelo-dropdown-item>
|
|
280
|
+
* <sigvelo-dropdown-item href="/docs/components/text-area">Text Area</sigvelo-dropdown-item>
|
|
281
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
282
|
+
* <sigvelo-dropdown-item href="https://example.com/" target="_blank">
|
|
283
|
+
* Visit external website
|
|
284
|
+
* <sigvelo-icon name="external-link" slot="icon"></sigvelo-icon>
|
|
285
|
+
* </sigvelo-dropdown-item>
|
|
286
|
+
* </sigvelo-dropdown>
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* **Note:** Note that link items are not actual links! You won't see a URL when hovering and users of assistive devices will need to infer it's behavior from context. When a link item is selected, the component renders a hidden link and dispatches a synthetic event to open it. Modifier keys are passed from the original event, but only Chrome and Firefox appear to honor them. Safari opens the link, but ignores modifier keys.
|
|
290
|
+
*
|
|
291
|
+
* @example Submenus
|
|
292
|
+
* To create submenus, nest additional dropdown items in a dropdown item and assign `slot="submenu"` to them. You can also add dividers as needed.
|
|
293
|
+
*
|
|
294
|
+
* ```html
|
|
295
|
+
* <sigvelo-dropdown id="dropdown__submenus">
|
|
296
|
+
* <sigvelo-button slot="trigger" with-caret>Cat Type</sigvelo-button>
|
|
297
|
+
*
|
|
298
|
+
* <sigvelo-dropdown-item>
|
|
299
|
+
* Domestic
|
|
300
|
+
* <sigvelo-dropdown-item slot="submenu" value="shorthair">Shorthair</sigvelo-dropdown-item>
|
|
301
|
+
* <sigvelo-dropdown-item slot="submenu" value="longhair">Longhair</sigvelo-dropdown-item>
|
|
302
|
+
* </sigvelo-dropdown-item>
|
|
303
|
+
*
|
|
304
|
+
* <sigvelo-dropdown-item>
|
|
305
|
+
* Pedigree
|
|
306
|
+
* <sigvelo-dropdown-item slot="submenu">
|
|
307
|
+
* European
|
|
308
|
+
* <sigvelo-dropdown-item slot="submenu" value="british">British Shorthair</sigvelo-dropdown-item>
|
|
309
|
+
* <sigvelo-dropdown-item slot="submenu" value="scottish">Scottish Fold</sigvelo-dropdown-item>
|
|
310
|
+
* <sigvelo-dropdown-item slot="submenu" value="chartreux">Chartreux</sigvelo-dropdown-item>
|
|
311
|
+
* </sigvelo-dropdown-item>
|
|
312
|
+
*
|
|
313
|
+
* <sigvelo-dropdown-item slot="submenu">
|
|
314
|
+
* Asian
|
|
315
|
+
* <sigvelo-dropdown-item slot="submenu" value="siamese">Siamese</sigvelo-dropdown-item>
|
|
316
|
+
* <sigvelo-dropdown-item slot="submenu" value="bengal">Bengal</sigvelo-dropdown-item>
|
|
317
|
+
* <sigvelo-dropdown-item slot="submenu" value="burmese">Burmese</sigvelo-dropdown-item>
|
|
318
|
+
* </sigvelo-dropdown-item>
|
|
319
|
+
*
|
|
320
|
+
* <sigvelo-dropdown-item slot="submenu" value="american">American Breeds</sigvelo-dropdown-item>
|
|
321
|
+
* </sigvelo-dropdown-item>
|
|
322
|
+
*
|
|
323
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
324
|
+
*
|
|
325
|
+
* <sigvelo-dropdown-item>
|
|
326
|
+
* Sizes
|
|
327
|
+
* <sigvelo-dropdown-item slot="submenu" type="checkbox" value="small">Small</sigvelo-dropdown-item>
|
|
328
|
+
* <sigvelo-dropdown-item slot="submenu" type="checkbox" checked value="medium">Medium</sigvelo-dropdown-item>
|
|
329
|
+
* <sigvelo-dropdown-item slot="submenu" type="checkbox" value="large">Large</sigvelo-dropdown-item>
|
|
330
|
+
* </sigvelo-dropdown-item>
|
|
331
|
+
* </sigvelo-dropdown>
|
|
332
|
+
*
|
|
333
|
+
* <script>
|
|
334
|
+
* const dropdown = document.getElementById('dropdown__submenus');
|
|
335
|
+
*
|
|
336
|
+
* dropdown.addEventListener('sigvelo-select', event => {
|
|
337
|
+
* console.log(event.detail.item.value);
|
|
338
|
+
* });
|
|
339
|
+
* </script>
|
|
340
|
+
* ```
|
|
341
|
+
*
|
|
342
|
+
* **Note:** Dropdown items that contain a submenu will not dispatch the `sigvelo-select` event when clicked. However, items inside of the submenu will, unless they also have a submenu.
|
|
343
|
+
*
|
|
344
|
+
* @example Disabling items
|
|
345
|
+
* Add the `disabled` attribute to any dropdown item to disabled it.
|
|
346
|
+
*
|
|
347
|
+
* ```html
|
|
348
|
+
* <sigvelo-dropdown>
|
|
349
|
+
* <sigvelo-button slot="trigger" with-caret>Payment method</sigvelo-button>
|
|
350
|
+
* <sigvelo-dropdown-item value="cash">Cash</sigvelo-dropdown-item>
|
|
351
|
+
* <sigvelo-dropdown-item value="check" disabled>Personal check</sigvelo-dropdown-item>
|
|
352
|
+
* <sigvelo-dropdown-item value="credit">Credit card</sigvelo-dropdown-item>
|
|
353
|
+
* <sigvelo-dropdown-item value="gift-card">Gift card</sigvelo-dropdown-item>
|
|
354
|
+
* </sigvelo-dropdown>
|
|
355
|
+
* ```
|
|
356
|
+
*
|
|
357
|
+
* @example Changing the placement
|
|
358
|
+
* You can set the preferred placement of the dropdown menu with the `placement` attribute. The menu will shift to a more optimal location if the preferred placement doesn't have enough room.
|
|
359
|
+
*
|
|
360
|
+
* ```html
|
|
361
|
+
* <sigvelo-dropdown placement="right">
|
|
362
|
+
* <sigvelo-button slot="trigger">
|
|
363
|
+
* Types of cats
|
|
364
|
+
* <sigvelo-icon slot="end" name="chevron-right"></sigvelo-icon>
|
|
365
|
+
* </sigvelo-button>
|
|
366
|
+
* <sigvelo-dropdown-item value="bengal">Bengal</sigvelo-dropdown-item>
|
|
367
|
+
* <sigvelo-dropdown-item value="calico">Calico</sigvelo-dropdown-item>
|
|
368
|
+
* <sigvelo-dropdown-item value="maine-coon">Maine coon</sigvelo-dropdown-item>
|
|
369
|
+
* <sigvelo-dropdown-item value="siamese">Siamese</sigvelo-dropdown-item>
|
|
370
|
+
* <sigvelo-dropdown-item value="tabby">Tabby</sigvelo-dropdown-item>
|
|
371
|
+
* <sigvelo-dropdown-item value="tuxedo">Tuxedo</sigvelo-dropdown-item>
|
|
372
|
+
* </sigvelo-dropdown>
|
|
373
|
+
* ```
|
|
374
|
+
*
|
|
375
|
+
* @example Context menus
|
|
376
|
+
* To turn a dropdown menu into a context menu, omit the trigger and set the `context-menu` attribute to the ID of an element in the same document. When you right-click or long press (touch only) the target element, the context menu will be shown.
|
|
377
|
+
*
|
|
378
|
+
* ```html
|
|
379
|
+
* <div id="dropdown__context" tabindex="0">
|
|
380
|
+
* Right-click or long press here to show the context menu
|
|
381
|
+
* </div>
|
|
382
|
+
*
|
|
383
|
+
* <sigvelo-dropdown context-menu="dropdown__context">
|
|
384
|
+
* <sigvelo-dropdown-item value="cut">Cut</sigvelo-dropdown-item>
|
|
385
|
+
* <sigvelo-dropdown-item value="cut">Copy</sigvelo-dropdown-item>
|
|
386
|
+
* <sigvelo-dropdown-item value="cut">Paste</sigvelo-dropdown-item>
|
|
387
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
388
|
+
* <sigvelo-dropdown-item>
|
|
389
|
+
* Adjust
|
|
390
|
+
* <sigvelo-dropdown-item slot="submenu" value="brightness">Brightness</sigvelo-dropdown-item>
|
|
391
|
+
* <sigvelo-dropdown-item slot="submenu" value="contrast">Contrast</sigvelo-dropdown-item>
|
|
392
|
+
* </sigvelo-dropdown-item>
|
|
393
|
+
* <sigvelo-dropdown-item>
|
|
394
|
+
* Filters
|
|
395
|
+
* <sigvelo-dropdown-item slot="submenu">
|
|
396
|
+
* Artistic
|
|
397
|
+
* <sigvelo-dropdown-item slot="submenu" value="watercolor">Watercolor</sigvelo-dropdown-item>
|
|
398
|
+
* <sigvelo-dropdown-item slot="submenu" value="oil-paint">Oil Paint</sigvelo-dropdown-item>
|
|
399
|
+
* <sigvelo-dropdown-item slot="submenu" value="sketch">Sketch</sigvelo-dropdown-item>
|
|
400
|
+
* </sigvelo-dropdown-item>
|
|
401
|
+
* <sigvelo-dropdown-item slot="submenu">
|
|
402
|
+
* Color
|
|
403
|
+
* <sigvelo-dropdown-item slot="submenu" value="grayscale">Grayscale</sigvelo-dropdown-item>
|
|
404
|
+
* <sigvelo-dropdown-item slot="submenu" value="sepia">Sepia</sigvelo-dropdown-item>
|
|
405
|
+
* <sigvelo-dropdown-item slot="submenu" value="vibrance">Vibrance</sigvelo-dropdown-item>
|
|
406
|
+
* </sigvelo-dropdown-item>
|
|
407
|
+
* <sigvelo-dropdown-item slot="submenu" value="blur">Blur Effects</sigvelo-dropdown-item>
|
|
408
|
+
* </sigvelo-dropdown-item>
|
|
409
|
+
* <sigvelo-dropdown-item>
|
|
410
|
+
* Transform
|
|
411
|
+
* <sigvelo-dropdown-item slot="submenu" value="crop">Crop</sigvelo-dropdown-item>
|
|
412
|
+
* <sigvelo-dropdown-item slot="submenu" value="rotate">Rotate</sigvelo-dropdown-item>
|
|
413
|
+
* <sigvelo-dropdown-item slot="submenu" value="resize">Resize</sigvelo-dropdown-item>
|
|
414
|
+
* </sigvelo-dropdown-item>
|
|
415
|
+
* </sigvelo-dropdown>
|
|
416
|
+
*
|
|
417
|
+
* <style>
|
|
418
|
+
* #dropdown__context {
|
|
419
|
+
* display: flex;
|
|
420
|
+
* align-items: center;
|
|
421
|
+
* justify-content: center;
|
|
422
|
+
* text-align: center;
|
|
423
|
+
* min-height: 200px;
|
|
424
|
+
* color: var(--sigvelo-color-text-muted);
|
|
425
|
+
* background-color: var(--sigvelo-color-surface);
|
|
426
|
+
* border: dashed var(--sigvelo-border-width) var(--sigvelo-color-neutral-border-muted);
|
|
427
|
+
* border-radius: var(--sigvelo-radius-md);
|
|
428
|
+
* padding: 1rem;
|
|
429
|
+
*
|
|
430
|
+
* &:focus {
|
|
431
|
+
* outline: none;
|
|
432
|
+
* }
|
|
433
|
+
*
|
|
434
|
+
* &:focus-visible {
|
|
435
|
+
* outline: var(--sigvelo-focus-ring);
|
|
436
|
+
* outline-offset: calc(var(--sigvelo-border-width) * -1);
|
|
437
|
+
* }
|
|
438
|
+
* }
|
|
439
|
+
* </style>
|
|
440
|
+
* ```
|
|
441
|
+
*
|
|
442
|
+
* **Warning:** The context menu element must be in the DOM when the dropdown is connected, otherwise the dropdown won't be attached and a warning will be shown in the console.
|
|
443
|
+
*/
|
|
444
|
+
declare class SigveloDropdown extends SigveloElement {
|
|
445
|
+
static styles: CSSResultGroup;
|
|
446
|
+
private cleanup;
|
|
447
|
+
private submenuCleanups;
|
|
448
|
+
private contextMenuElement;
|
|
449
|
+
private contextMenuLongPress;
|
|
450
|
+
private contextMenuVirtualElement;
|
|
451
|
+
private localize;
|
|
452
|
+
private userTypedQuery;
|
|
453
|
+
private userTypedTimeout;
|
|
454
|
+
private openSubmenuStack;
|
|
455
|
+
defaultSlot: HTMLSlotElement;
|
|
456
|
+
private menu;
|
|
457
|
+
/** Opens or closes the dropdown. */
|
|
458
|
+
open: boolean;
|
|
459
|
+
/** The ID of an element to apply the dropdown as a context menu. */
|
|
460
|
+
contextMenu: string;
|
|
461
|
+
/**
|
|
462
|
+
* The placement of the dropdown menu in reference to the trigger. The menu will shift to a more optimal location if
|
|
463
|
+
* the preferred placement doesn't have enough room.
|
|
464
|
+
*/
|
|
465
|
+
placement: "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
|
|
466
|
+
/** The distance of the dropdown menu from its trigger. */
|
|
467
|
+
distance: number;
|
|
468
|
+
/** The offset of the dropdown menu along its trigger. */
|
|
469
|
+
offset: number;
|
|
470
|
+
disconnectedCallback(): void;
|
|
471
|
+
firstUpdated(): void;
|
|
472
|
+
updated(changedProperties: PropertyValues): void;
|
|
473
|
+
/** Gets all <sigvelo-dropdown-item> elements slotted in the menu that aren't disabled. */
|
|
474
|
+
private getItems;
|
|
475
|
+
/** Gets all dropdown items in a specific submenu. */
|
|
476
|
+
private getSubmenuItems;
|
|
477
|
+
/** Handles the submenu navigation stack */
|
|
478
|
+
private addToSubmenuStack;
|
|
479
|
+
/** Removes the last item from the submenu stack */
|
|
480
|
+
private removeFromSubmenuStack;
|
|
481
|
+
/** Gets the current active submenu item */
|
|
482
|
+
private getCurrentSubmenuItem;
|
|
483
|
+
/** Closes all submenus in the dropdown. */
|
|
484
|
+
private closeAllSubmenus;
|
|
485
|
+
/** Closes sibling submenus at the same level as the specified item. */
|
|
486
|
+
private closeSiblingSubmenus;
|
|
487
|
+
/** Get the slotted trigger button, a <sigvelo-button> or <button> element */
|
|
488
|
+
private getTrigger;
|
|
489
|
+
/** Shows the dropdown menu. This should only be called from within updated(). */
|
|
490
|
+
private showMenu;
|
|
491
|
+
/** Hides the dropdown menu. This should only be called from within updated(). */
|
|
492
|
+
private hideMenu;
|
|
493
|
+
/** Repositions the dropdown menu */
|
|
494
|
+
private reposition;
|
|
495
|
+
/** If focus is set outside of the component, close the menu. */
|
|
496
|
+
private handleDocumentFocusIn;
|
|
497
|
+
/** Handles key down events when the menu is open */
|
|
498
|
+
private handleDocumentKeyDown;
|
|
499
|
+
/** Handles pointer down events when the dropdown is open. */
|
|
500
|
+
private handleDocumentPointerDown;
|
|
501
|
+
/** Handles clicks on the menu. */
|
|
502
|
+
private handleMenuClick;
|
|
503
|
+
/** Prepares dropdown items when they get added or removed */
|
|
504
|
+
private handleMenuSlotChange;
|
|
505
|
+
/** Toggles the dropdown menu */
|
|
506
|
+
private handleTriggerClick;
|
|
507
|
+
/** Given an x and y coordinate, a virtual element for Floating UI is returned. */
|
|
508
|
+
private getContextMenuVirtualElement;
|
|
509
|
+
/** Shows the dropdown when the contextmenu event is dispatched. */
|
|
510
|
+
private handleContextMenu;
|
|
511
|
+
/** Handles submenu opening events */
|
|
512
|
+
private handleSubmenuOpening;
|
|
513
|
+
/** Sets up submenu positioning with autoUpdate */
|
|
514
|
+
private setupSubmenuPosition;
|
|
515
|
+
private static handleSubmenuSlotChange;
|
|
516
|
+
private processSubmenuItems;
|
|
517
|
+
/** Cleans up submenu positioning */
|
|
518
|
+
private cleanupSubmenuPosition;
|
|
519
|
+
/** Positions a submenu relative to its parent item */
|
|
520
|
+
private positionSubmenu;
|
|
521
|
+
/** Updates the safe triangle coordinates for a submenu */
|
|
522
|
+
private updateSafeTriangleCoordinates;
|
|
523
|
+
/** Handle global mouse movement for safe triangle logic */
|
|
524
|
+
private handleGlobalMouseMove;
|
|
525
|
+
/** Makes a selection, emits the sigvelo-select event, and closes the dropdown. */
|
|
526
|
+
private makeSelection;
|
|
527
|
+
/** Syncs aria attributes on the slotted trigger element and the menu based on the dropdown's current state */
|
|
528
|
+
private syncAriaAttributes;
|
|
529
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
530
|
+
}
|
|
531
|
+
declare global {
|
|
532
|
+
interface HTMLElementTagNameMap {
|
|
533
|
+
"sigvelo-dropdown": SigveloDropdown;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
//#endregion
|
|
537
|
+
export { SigveloDropdown as t };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/dropdown-item/dropdown-item.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-dropdown-item>
|
|
7
|
+
*
|
|
8
|
+
* @summary Can be selected from inside a dropdown menu.
|
|
9
|
+
* @tag sigvelo-dropdown-item
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/dropdown-item
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @dependency sigvelo-icon
|
|
15
|
+
*
|
|
16
|
+
* @slot - The item's label or description.
|
|
17
|
+
* @slot icon - An optional icon to show at the start of the item.
|
|
18
|
+
* @slot details - Optional details, such as a keyboard shortcut, to display at the end of the item.
|
|
19
|
+
* @slot submenu - Optional submenu items to display in a nested dropdown. For best results, use `<sigvelo-submenu-item>`
|
|
20
|
+
* and `<sigvelo-divider>` elements.
|
|
21
|
+
*
|
|
22
|
+
* @csspart checkmark - The checkmark icon that's shown when checked, a `<sigvelo-icon>` element.
|
|
23
|
+
* @csspart checkmark__svg - The checkmark icon's `svg` part.
|
|
24
|
+
* @csspart icon - The container that wraps the icon.
|
|
25
|
+
* @csspart label - The container that wraps the label.
|
|
26
|
+
* @csspart details - The container that wraps the menu item's details.
|
|
27
|
+
* @csspart submenu - The container that wraps the submenu items.
|
|
28
|
+
* @csspart submenu-icon - The icon indicating that a submenu is available.
|
|
29
|
+
* @csspart submenu-icon__svg - The submenu icon's `svg` part.
|
|
30
|
+
*
|
|
31
|
+
* @cssstate active - Applied when the dropdown item is active.
|
|
32
|
+
* @cssstate disabled - Applied when the dropdown item is disabled.
|
|
33
|
+
* @cssstate checked - Applied when the dropdown item is checked.
|
|
34
|
+
* @cssstate submenu-open - Applied when the dropdown item's submenu is open.
|
|
35
|
+
* @cssstate has-submenu - Applied when the dropdown item has a submenu.
|
|
36
|
+
*
|
|
37
|
+
* @example Default
|
|
38
|
+
* This component must only be used within a dropdown. You can see some examples of dropdown items being used in the dropdown documentation.
|
|
39
|
+
*/
|
|
40
|
+
declare class SigveloDropdownItem extends SigveloElement {
|
|
41
|
+
static styles: CSSResultGroup;
|
|
42
|
+
static observeSlots: boolean;
|
|
43
|
+
hiddenLink: HTMLAnchorElement;
|
|
44
|
+
submenuElement: HTMLDivElement;
|
|
45
|
+
/** @internal The controller will set this property to true when the item is active. */
|
|
46
|
+
active: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* @internal The controller will set this property to true when at least one checkbox exists in the dropdown. This
|
|
49
|
+
* allows non-checkbox items to draw additional space to align properly with checkbox items.
|
|
50
|
+
*/
|
|
51
|
+
checkboxAdjacent: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @internal The controller will set this property to true when at least one item with a submenu exists in the
|
|
54
|
+
* dropdown. This allows non-submenu items to draw additional space to align properly with items that have submenus.
|
|
55
|
+
*/
|
|
56
|
+
submenuAdjacent: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* An optional value for the menu item. This is useful for determining which item was selected when listening to the
|
|
59
|
+
* dropdown's `sigvelo-select` event.
|
|
60
|
+
*/
|
|
61
|
+
value: string;
|
|
62
|
+
/** Set to `checkbox` to make the item a checkbox. */
|
|
63
|
+
type: "normal" | "checkbox";
|
|
64
|
+
/** The type of menu item to render. */
|
|
65
|
+
color: "destructive" | "neutral";
|
|
66
|
+
/** Set to true to check the dropdown item. Only valid when `type` is `checkbox`. */
|
|
67
|
+
checked: boolean;
|
|
68
|
+
/** Disables the dropdown item. */
|
|
69
|
+
disabled: boolean;
|
|
70
|
+
/** Whether the submenu is currently open. */
|
|
71
|
+
submenuOpen: boolean;
|
|
72
|
+
/** Tells the dropdown item to behave like a link. When selected, the browser will navigate to the target URL. */
|
|
73
|
+
href: string;
|
|
74
|
+
/** Opens the link in the specified target. Only works when `href` is provided. */
|
|
75
|
+
target: "_blank" | "_parent" | "_self" | "_top" | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Sets the link's `rel` attribute. Only works when `href` is provided. When linking to an external domain, you should
|
|
78
|
+
* probably set this to `noreferrer noopener`.
|
|
79
|
+
*/
|
|
80
|
+
rel?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Sets the link's `download` attribute, causing the linked file to be downloaded. Only works when `href` is provided.
|
|
83
|
+
*/
|
|
84
|
+
download?: string;
|
|
85
|
+
/** @internal Store whether this item has a submenu */
|
|
86
|
+
hasSubmenu: boolean;
|
|
87
|
+
connectedCallback(): void;
|
|
88
|
+
disconnectedCallback(): void;
|
|
89
|
+
firstUpdated(): void;
|
|
90
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
91
|
+
/** Update the has-submenu custom state */
|
|
92
|
+
private updateHasSubmenuState;
|
|
93
|
+
/** Opens the submenu. */
|
|
94
|
+
openSubmenu(): Promise<void>;
|
|
95
|
+
/** Notifies the parent dropdown that this item is opening its submenu */
|
|
96
|
+
private notifyParentOfOpening;
|
|
97
|
+
/** Closes the submenu. */
|
|
98
|
+
closeSubmenu(): Promise<void>;
|
|
99
|
+
/** Gets all dropdown items in the submenu. */
|
|
100
|
+
private getSubmenuItems;
|
|
101
|
+
/** Handles mouse enter to open the submenu */
|
|
102
|
+
private handleMouseEnter;
|
|
103
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
104
|
+
}
|
|
105
|
+
declare global {
|
|
106
|
+
interface HTMLElementTagNameMap {
|
|
107
|
+
"sigvelo-dropdown-item": SigveloDropdownItem;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
export { SigveloDropdownItem as t };
|