@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,354 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { SigveloFormControlElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/button/button.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-button>
|
|
7
|
+
*
|
|
8
|
+
* @summary Allows users to navigate, submit forms, and perform other actions.
|
|
9
|
+
* @tag sigvelo-button
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/button
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @dependency sigvelo-icon
|
|
15
|
+
* @dependency sigvelo-spinner
|
|
16
|
+
*
|
|
17
|
+
* @slot - The button's label.
|
|
18
|
+
* @slot start - An icon or similar element to place before the label. Works great with `<sigvelo-icon>`.
|
|
19
|
+
* @slot end - An icon or similar element to place after the label. Works great with `<sigvelo-icon>`.
|
|
20
|
+
*
|
|
21
|
+
* @event sigvelo-blur - Emitted when the button loses focus. This event does not bubble.
|
|
22
|
+
* @event sigvelo-long-press - Emitted when the button is pressed and held by tapping or with the mouse. You can look at
|
|
23
|
+
* `event.detail.originalEvent.type` to see the type of event that initiated the long press.
|
|
24
|
+
* @event sigvelo-focus - Emitted when the button receives focus. This event does not bubble.
|
|
25
|
+
*
|
|
26
|
+
* @csspart button - The internal `<button>` element. Other than `width`, this is where most custom styles should be
|
|
27
|
+
* applied.
|
|
28
|
+
* @csspart caret - The caret icon, a `<sigvelo-icon>` element. Only present with the `with-caret` attribute.
|
|
29
|
+
* @csspart caret__svg - The caret icon's `<svg>` part.
|
|
30
|
+
* @csspart spinner - The loading indicator, a `<sigvelo-spinner>` element. Only present with the `loading` attribute.
|
|
31
|
+
* @csspart toggle-indicator - When the button is a toggle button, this is the indicator that shows the current state.
|
|
32
|
+
|
|
33
|
+
* @cssstate disabled - Applied when the button is disabled.
|
|
34
|
+
* @cssstate focused - Applied when the button has focus.
|
|
35
|
+
* @cssstate loading - Applied when a toggle button is loading.
|
|
36
|
+
* @cssstate toggled - Applied when a toggle button is activated.
|
|
37
|
+
*
|
|
38
|
+
* @example Variants
|
|
39
|
+
* Set the `color` attribute to `neutral`, `primary`, or `destructive` to change the button's color.
|
|
40
|
+
*
|
|
41
|
+
* ```html
|
|
42
|
+
* <sigvelo-button color="neutral">
|
|
43
|
+
* Neutral
|
|
44
|
+
* </sigvelo-button>
|
|
45
|
+
*
|
|
46
|
+
* <sigvelo-button color="primary">
|
|
47
|
+
* Primary
|
|
48
|
+
* </sigvelo-button>
|
|
49
|
+
*
|
|
50
|
+
* <sigvelo-button color="destructive">
|
|
51
|
+
* Destructive
|
|
52
|
+
* </sigvelo-button>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* **Note:** There is no `success` button by design. Use the `primary` color for success actions.
|
|
56
|
+
*
|
|
57
|
+
* @example Start & end icons
|
|
58
|
+
* Use the `start` and `end` slots to add icons. For best results, use a `<sigvelo-icon>` or an `<svg>` element.
|
|
59
|
+
*
|
|
60
|
+
* ```html
|
|
61
|
+
* <sigvelo-button>
|
|
62
|
+
* <sigvelo-icon slot="start" name="settings"></sigvelo-icon>
|
|
63
|
+
* Settings
|
|
64
|
+
* </sigvelo-button>
|
|
65
|
+
*
|
|
66
|
+
* <sigvelo-button>
|
|
67
|
+
* Favorite
|
|
68
|
+
* <sigvelo-icon slot="end" name="heart"></sigvelo-icon>
|
|
69
|
+
* </sigvelo-button>
|
|
70
|
+
*
|
|
71
|
+
* <sigvelo-button>
|
|
72
|
+
* <sigvelo-icon slot="start" name="link"></sigvelo-icon>
|
|
73
|
+
* Open
|
|
74
|
+
* <sigvelo-icon slot="end" name="external-link"></sigvelo-icon>
|
|
75
|
+
* </sigvelo-button>
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @example Link buttons
|
|
79
|
+
* Any button can be rendered as a link by setting the `href` attribute. This is useful to allow buttons to act as navigation. When `href` is present, other link options such as `download`, `rel`, and `target` also become available.
|
|
80
|
+
*
|
|
81
|
+
* ```html
|
|
82
|
+
* <sigvelo-button href="https://example.com/" target="_blank" rel="noreferrer noopener">
|
|
83
|
+
* I'm secretly a link
|
|
84
|
+
* </sigvelo-button>
|
|
85
|
+
*
|
|
86
|
+
* <sigvelo-button href="/assets/images/logo-light.svg" download>
|
|
87
|
+
* Download the logo
|
|
88
|
+
* </sigvelo-button>
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* **Note:** Because link buttons become anchors, they cannot be used with `disabled` or `loading`.
|
|
92
|
+
*
|
|
93
|
+
* @example Changing the width
|
|
94
|
+
* To change a button's width, use the CSS `width` property.
|
|
95
|
+
*
|
|
96
|
+
* ```html
|
|
97
|
+
* <sigvelo-button style="width: 100%">
|
|
98
|
+
* I'm much longer now
|
|
99
|
+
* </sigvelo-button>
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* @example Changing the size
|
|
103
|
+
* Use the `size` attribute to change the button's size. Available sizes include `xs`, `sm`, `md`, `lg`, and `xl`, with the default being `sm`.
|
|
104
|
+
*
|
|
105
|
+
* ```html
|
|
106
|
+
* <sigvelo-button size="xs">Extra small</sigvelo-button>
|
|
107
|
+
* <sigvelo-button size="sm">Small</sigvelo-button>
|
|
108
|
+
* <sigvelo-button size="md">Medium</sigvelo-button>
|
|
109
|
+
* <sigvelo-button size="lg">Large</sigvelo-button>
|
|
110
|
+
* <sigvelo-button size="xl">Extra large</sigvelo-button>
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* @example Outline buttons
|
|
114
|
+
* Set the `variant` attribute to `outline` to draw outlined buttons.
|
|
115
|
+
*
|
|
116
|
+
* ```html
|
|
117
|
+
* <sigvelo-button variant="outline" color="neutral">
|
|
118
|
+
* Neutral
|
|
119
|
+
* </sigvelo-button>
|
|
120
|
+
*
|
|
121
|
+
* <sigvelo-button variant="outline" color="primary">
|
|
122
|
+
* Primary
|
|
123
|
+
* </sigvelo-button>
|
|
124
|
+
*
|
|
125
|
+
* <sigvelo-button variant="outline" color="destructive">
|
|
126
|
+
* Destructive
|
|
127
|
+
* </sigvelo-button>
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* Set `variant="surface"` for a raised neutral action surface.
|
|
131
|
+
*
|
|
132
|
+
* ```html
|
|
133
|
+
* <sigvelo-button variant="surface">Open details</sigvelo-button>
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @example Text buttons
|
|
137
|
+
* Set the `variant` attribute to `ghost` to draw ghost buttons. Ghost buttons share the same size and padding as normal buttons, but don't have a background.
|
|
138
|
+
*
|
|
139
|
+
* ```html
|
|
140
|
+
* <sigvelo-button variant="ghost">
|
|
141
|
+
* I'm text
|
|
142
|
+
* </sigvelo-button>
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* @example Pill-shaped buttons
|
|
146
|
+
* Buttons can be rendered with pill-shaped edges by adding the `pill` attribute.
|
|
147
|
+
*
|
|
148
|
+
* ```html
|
|
149
|
+
* <sigvelo-button pill color="neutral">
|
|
150
|
+
* Neutral
|
|
151
|
+
* </sigvelo-button>
|
|
152
|
+
*
|
|
153
|
+
* <sigvelo-button pill color="primary">
|
|
154
|
+
* Primary
|
|
155
|
+
* </sigvelo-button>
|
|
156
|
+
*
|
|
157
|
+
* <sigvelo-button pill color="destructive">
|
|
158
|
+
* Destructive
|
|
159
|
+
* </sigvelo-button>
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @example Icon buttons
|
|
163
|
+
* To create an icon button, place an icon into the button's default slot and set the `icon-label` attribute to an appropriate label. The label won't be visible, but it will be available to assistive devices.
|
|
164
|
+
*
|
|
165
|
+
* ```html
|
|
166
|
+
* <sigvelo-button icon-label="Accept" color="primary">
|
|
167
|
+
* <sigvelo-icon name="check"></sigvelo-icon>
|
|
168
|
+
* </sigvelo-button>
|
|
169
|
+
*
|
|
170
|
+
* <sigvelo-button icon-label="Reload">
|
|
171
|
+
* <sigvelo-icon name="refresh"></sigvelo-icon>
|
|
172
|
+
* </sigvelo-button>
|
|
173
|
+
*
|
|
174
|
+
* <sigvelo-button icon-label="Delete" color="destructive">
|
|
175
|
+
* <sigvelo-icon name="trash"></sigvelo-icon>
|
|
176
|
+
* </sigvelo-button>
|
|
177
|
+
*
|
|
178
|
+
* <sigvelo-button icon-label="Close" variant="ghost">
|
|
179
|
+
* <sigvelo-icon name="x"></sigvelo-icon>
|
|
180
|
+
* </sigvelo-button>
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
183
|
+
* @example Toggle buttons
|
|
184
|
+
* Create a toggle button by adding the `toggle="off"` attribute. To make it active by default, use `toggle="on"` instead. An indicator is shown to make it obvious when the toggle is selected.
|
|
185
|
+
*
|
|
186
|
+
* ```html
|
|
187
|
+
* <sigvelo-button color="neutral" toggle="off" icon-label="Filter">
|
|
188
|
+
* <sigvelo-icon name="filter"></sigvelo-icon>
|
|
189
|
+
* </sigvelo-button>
|
|
190
|
+
*
|
|
191
|
+
* <sigvelo-button color="primary" toggle="off" icon-label="Alarm">
|
|
192
|
+
* <sigvelo-icon name="bell"></sigvelo-icon>
|
|
193
|
+
* </sigvelo-button>
|
|
194
|
+
*
|
|
195
|
+
* <sigvelo-button color="destructive" toggle="off" icon-label="Record">
|
|
196
|
+
* <sigvelo-icon name="microphone"></sigvelo-icon>
|
|
197
|
+
* </sigvelo-button>
|
|
198
|
+
*
|
|
199
|
+
* <sigvelo-button variant="ghost" toggle="off" icon-label="Mute">
|
|
200
|
+
* <sigvelo-icon name="volume-3"></sigvelo-icon>
|
|
201
|
+
* </sigvelo-button>
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* **Warning:** Toggle buttons cannot be used with link buttons or submit buttons.
|
|
205
|
+
*
|
|
206
|
+
* @example Loading buttons
|
|
207
|
+
* To show the button in a loading state, add the `loading` attribute. When a button is loading, it is effectively disabled and `click` events will not be emitted.
|
|
208
|
+
*
|
|
209
|
+
* ```html
|
|
210
|
+
* <sigvelo-button loading>
|
|
211
|
+
* I'm loading
|
|
212
|
+
* </sigvelo-button>
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* @example Disabling
|
|
216
|
+
* To disable a button, add the `disabled` attribute. When a button is disabled, the `click` event will not be emitted.
|
|
217
|
+
*
|
|
218
|
+
* ```html
|
|
219
|
+
* <sigvelo-button disabled>Regular button</sigvelo-button>
|
|
220
|
+
* <sigvelo-button href="https://example.com/" disabled>Link button</sigvelo-button>
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* @example Adding a dropdown caret
|
|
224
|
+
* A caret can be shown to indicate the button opens a dropdown menu by adding the `with-caret` attribute.
|
|
225
|
+
*
|
|
226
|
+
* ```html
|
|
227
|
+
* <sigvelo-button with-caret>Dropdown</sigvelo-button>
|
|
228
|
+
* ```
|
|
229
|
+
*
|
|
230
|
+
* @example Listening for long press
|
|
231
|
+
* You can detect long presses by listening to the `sigvelo-long-press` event. The event is dispatched when the button is clicked or tapped and held for 700 milliseconds.
|
|
232
|
+
*
|
|
233
|
+
* You can determine if the initiating event was a click (`pointer`) or tap (`touch`) by looking at `event.detail.type`. You can also look at `event.detail.originalEvent` to get the coordinates and other details.
|
|
234
|
+
*
|
|
235
|
+
* ```html
|
|
236
|
+
* <sigvelo-button id="button__long-press">Press and hold</sigvelo-button>
|
|
237
|
+
*
|
|
238
|
+
* <script>
|
|
239
|
+
* const button = document.getElementById('button__long-press');
|
|
240
|
+
*
|
|
241
|
+
* button.addEventListener('sigvelo-long-press', async event => {
|
|
242
|
+
* // Log the coordinates and the type of event that initiated the
|
|
243
|
+
* // long press, i.e. pointer (mouse) or touch (tap)
|
|
244
|
+
* const type = event.detail.type;
|
|
245
|
+
* const { clientX, clientY } = event.detail.originalEvent;
|
|
246
|
+
*
|
|
247
|
+
* console.log(`${type} at ${parseInt(clientX)}×${parseInt(clientY)}`);
|
|
248
|
+
*
|
|
249
|
+
* // Animate the button
|
|
250
|
+
* button.animate([
|
|
251
|
+
* { scale: 1, offset: 0 },
|
|
252
|
+
* { scale: 1.2, offset: 0.1 },
|
|
253
|
+
* { scale: 1, offset: 1 }
|
|
254
|
+
* ], {
|
|
255
|
+
* duration: 500,
|
|
256
|
+
* easing: 'linear'
|
|
257
|
+
* });
|
|
258
|
+
* });
|
|
259
|
+
* </script>
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
declare class SigveloButton extends SigveloFormControlElement {
|
|
263
|
+
static formAssociated: boolean;
|
|
264
|
+
static shadowRootOptions: {
|
|
265
|
+
delegatesFocus: boolean;
|
|
266
|
+
clonable?: boolean;
|
|
267
|
+
customElementRegistry?: CustomElementRegistry | null;
|
|
268
|
+
mode: ShadowRootMode;
|
|
269
|
+
serializable?: boolean;
|
|
270
|
+
slotAssignment?: SlotAssignmentMode;
|
|
271
|
+
};
|
|
272
|
+
static styles: CSSResultGroup;
|
|
273
|
+
protected internals: ElementInternals;
|
|
274
|
+
private longPress;
|
|
275
|
+
protected get focusableAnchor(): HTMLButtonElement;
|
|
276
|
+
/** Determines the button's variant. */
|
|
277
|
+
variant: "normal" | "surface" | "outline" | "ghost" | "link";
|
|
278
|
+
/** The semantic color intent of the button. */
|
|
279
|
+
color: "neutral" | "primary" | "destructive";
|
|
280
|
+
/** Disables the button. */
|
|
281
|
+
disabled: boolean;
|
|
282
|
+
/** Draws the button in a loading state. */
|
|
283
|
+
loading: boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Turns the button into a two-state toggle button. Clicking once will turn it on. Clicking again will turn it off.
|
|
286
|
+
* Cannot be used with links buttons or submit buttons.
|
|
287
|
+
*/
|
|
288
|
+
toggle?: "on" | "off";
|
|
289
|
+
/** The button's size. */
|
|
290
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
291
|
+
/**
|
|
292
|
+
* To create an icon button, slot an icon into the button's default slot and set this attribute to an appropriate
|
|
293
|
+
* label. The label won't be visible, but it will be available to assistive devices.
|
|
294
|
+
*/
|
|
295
|
+
iconLabel: string;
|
|
296
|
+
/** Draws the button in a pill shape. */
|
|
297
|
+
pill: boolean;
|
|
298
|
+
/** Determines the button's type. */
|
|
299
|
+
type: "button" | "submit" | "reset";
|
|
300
|
+
/** The name to submit when the button is used to submit the form. */
|
|
301
|
+
name: string;
|
|
302
|
+
/** The value to submit when the button is used to submit the form. */
|
|
303
|
+
value: string;
|
|
304
|
+
/** When true, the button will be rendered with a caret to indicate a dropdown menu. */
|
|
305
|
+
withCaret: boolean;
|
|
306
|
+
/**
|
|
307
|
+
* Set this to render the button as an `<a>` tag instead of a `<button>`. The button will act as a link. When this is
|
|
308
|
+
* set, form attributes and features will not work.
|
|
309
|
+
*/
|
|
310
|
+
href: string;
|
|
311
|
+
/** Opens the link in the specified target. Only works with link buttons. */
|
|
312
|
+
target: "_blank" | "_parent" | "_self" | "_top" | undefined;
|
|
313
|
+
/**
|
|
314
|
+
* Sets the link's `rel` attribute. Only works with link buttons. When linking to an external domain, you should
|
|
315
|
+
* probably set this to `noreferrer noopener`.
|
|
316
|
+
*/
|
|
317
|
+
rel?: string;
|
|
318
|
+
/** Sets the link's `download` attribute, causing the linked file to be downloaded. Only works with link buttons. */
|
|
319
|
+
download?: string;
|
|
320
|
+
/**
|
|
321
|
+
* The form to associate this control with. If omitted, the closest containing `<form>` will be used. The value of
|
|
322
|
+
* this attribute must be an ID of a form in the same document or shadow root.
|
|
323
|
+
*/
|
|
324
|
+
form: string;
|
|
325
|
+
/** Overrides the containing form's `action` attribute. */
|
|
326
|
+
formAction: string | undefined;
|
|
327
|
+
/** Overrides the containing form's `enctype` attribute. */
|
|
328
|
+
formEnctype: "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain" | undefined;
|
|
329
|
+
/** Overrides the containing form's `method` attribute. */
|
|
330
|
+
formMethod: "post" | "get" | undefined;
|
|
331
|
+
/** Overrides the containing form's `novalidate` attribute. */
|
|
332
|
+
formNoValidate: boolean | undefined;
|
|
333
|
+
/**
|
|
334
|
+
* Overrides the containing form's `target` attribute.
|
|
335
|
+
*
|
|
336
|
+
* `string & {}` keeps the four browsing-context keywords in autocomplete
|
|
337
|
+
* while still accepting an arbitrary frame name; a bare `| string` would
|
|
338
|
+
* absorb the literals and offer no suggestions at all.
|
|
339
|
+
*/
|
|
340
|
+
formTarget: "_self" | "_blank" | "_parent" | "_top" | (string & {}) | undefined;
|
|
341
|
+
firstUpdated(): void;
|
|
342
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
343
|
+
private handleBlur;
|
|
344
|
+
private handleFocus;
|
|
345
|
+
private handleClick;
|
|
346
|
+
render(): import("lit-html").TemplateResult;
|
|
347
|
+
}
|
|
348
|
+
declare global {
|
|
349
|
+
interface HTMLElementTagNameMap {
|
|
350
|
+
"sigvelo-button": SigveloButton;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
//#endregion
|
|
354
|
+
export { SigveloButton as t };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { t as __decorate } from "./decorate-DcF3lt7P.js";
|
|
2
|
+
import { css, html } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import hostStyles from "@mcp-b/wc-support/styles/host.styles";
|
|
5
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
6
|
+
//#region src/components/button-group/button-group.styles.ts
|
|
7
|
+
var button_group_styles_default = css`
|
|
8
|
+
:host {
|
|
9
|
+
display: flex;
|
|
10
|
+
position: relative;
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
gap: min(var(--sigvelo-border-width), 0.125rem);
|
|
13
|
+
isolation: isolate;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([orientation="vertical"]) {
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Show the focus indicator above other buttons */
|
|
21
|
+
::slotted(:focus) {
|
|
22
|
+
z-index: 1 !important;
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/components/button-group/button-group.ts
|
|
27
|
+
/**
|
|
28
|
+
* <sigvelo-button-group>
|
|
29
|
+
*
|
|
30
|
+
* @summary Displays related buttons in a stylized group.
|
|
31
|
+
* @tag sigvelo-button-group
|
|
32
|
+
* @documentation https://design-system.sigvelo.com/docs/components/button-group
|
|
33
|
+
* @status stable
|
|
34
|
+
* @since 1.0
|
|
35
|
+
*
|
|
36
|
+
* @slot - One or more `<sigvelo-button>` elements to place in the button group.
|
|
37
|
+
*
|
|
38
|
+
* @example Default
|
|
39
|
+
* ```html
|
|
40
|
+
* <sigvelo-button-group>
|
|
41
|
+
* <sigvelo-button>
|
|
42
|
+
* <sigvelo-icon slot="start" name="plus"></sigvelo-icon>
|
|
43
|
+
* New
|
|
44
|
+
* </sigvelo-button>
|
|
45
|
+
* <sigvelo-button>
|
|
46
|
+
* <sigvelo-icon slot="start" name="folder-open"></sigvelo-icon>
|
|
47
|
+
* Open
|
|
48
|
+
* </sigvelo-button>
|
|
49
|
+
* <sigvelo-button>
|
|
50
|
+
* <sigvelo-icon slot="start" name="device-floppy"></sigvelo-icon>
|
|
51
|
+
* Save
|
|
52
|
+
* </sigvelo-button>
|
|
53
|
+
* <sigvelo-button>
|
|
54
|
+
* <sigvelo-icon slot="start" name="printer"></sigvelo-icon>
|
|
55
|
+
* Print
|
|
56
|
+
* </sigvelo-button>
|
|
57
|
+
* </sigvelo-button-group>
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* **Note:** Button groups work really well in conjunction with the [toolbar component](/docs/components/toolbar).
|
|
61
|
+
*
|
|
62
|
+
* @example With dropdowns
|
|
63
|
+
* You can nest dropdowns inside button groups to give users additional options.
|
|
64
|
+
*
|
|
65
|
+
* ```html
|
|
66
|
+
* <sigvelo-button-group label="Options">
|
|
67
|
+
* <sigvelo-button>
|
|
68
|
+
* <sigvelo-icon slot="start" name="photo"></sigvelo-icon>
|
|
69
|
+
* Details
|
|
70
|
+
* </sigvelo-button>
|
|
71
|
+
* <sigvelo-button>
|
|
72
|
+
* <sigvelo-icon slot="start" name="message-circle"></sigvelo-icon>
|
|
73
|
+
* Comments
|
|
74
|
+
* </sigvelo-button>
|
|
75
|
+
* <sigvelo-dropdown>
|
|
76
|
+
* <sigvelo-button slot="trigger" with-caret>
|
|
77
|
+
* <sigvelo-icon slot="start" name="download"></sigvelo-icon>
|
|
78
|
+
* Download
|
|
79
|
+
* </sigvelo-button>
|
|
80
|
+
* <sigvelo-dropdown-item value="sm">Small <span slot="details">640×480</span></sigvelo-dropdown-item>
|
|
81
|
+
* <sigvelo-dropdown-item value="md">Medium <span slot="details">800×600</span></sigvelo-dropdown-item>
|
|
82
|
+
* <sigvelo-dropdown-item value="lg">Large <span slot="details">1280×1024</span></sigvelo-dropdown-item>
|
|
83
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
84
|
+
* <sigvelo-dropdown-item value="og">Custom…</sigvelo-dropdown-item>
|
|
85
|
+
* </sigvelo-dropdown>
|
|
86
|
+
* </sigvelo-button-group>
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example Adding tooltips
|
|
90
|
+
* You can add tooltips to improve the user experience of your button groups.
|
|
91
|
+
*
|
|
92
|
+
* ```html
|
|
93
|
+
* <sigvelo-button-group label="Options">
|
|
94
|
+
* <sigvelo-button icon-label="View image details" id="button-group__tooltip-image">
|
|
95
|
+
* <sigvelo-icon name="photo"></sigvelo-icon>
|
|
96
|
+
* </sigvelo-button>
|
|
97
|
+
* <sigvelo-button icon-label="Leave a comment" id="button-group__tooltip-comments">
|
|
98
|
+
* <sigvelo-icon name="message-circle"></sigvelo-icon>
|
|
99
|
+
* </sigvelo-button>
|
|
100
|
+
* <sigvelo-button icon-label="Save this image" id="button-group__tooltip-download">
|
|
101
|
+
* <sigvelo-icon name="download"></sigvelo-icon>
|
|
102
|
+
* </sigvelo-button>
|
|
103
|
+
* </sigvelo-button-group>
|
|
104
|
+
*
|
|
105
|
+
* <sigvelo-tooltip for="button-group__tooltip-image">Details</sigvelo-tooltip>
|
|
106
|
+
* <sigvelo-tooltip for="button-group__tooltip-comments">Comments</sigvelo-tooltip>
|
|
107
|
+
* <sigvelo-tooltip for="button-group__tooltip-download">Download</sigvelo-tooltip>
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @example Vertical button groups
|
|
111
|
+
* To make a vertical button group, set the `orientation` attribute to `vertical`.
|
|
112
|
+
*
|
|
113
|
+
* ```html
|
|
114
|
+
* <sigvelo-button-group orientation="vertical" label="Options" style="max-width: 60px;">
|
|
115
|
+
* <sigvelo-button>
|
|
116
|
+
* <sigvelo-icon slot="start" name="plus"></sigvelo-icon>
|
|
117
|
+
* New
|
|
118
|
+
* </sigvelo-button>
|
|
119
|
+
* <sigvelo-button>
|
|
120
|
+
* <sigvelo-icon slot="start" name="folder-open"></sigvelo-icon>
|
|
121
|
+
* Open
|
|
122
|
+
* </sigvelo-button>
|
|
123
|
+
* <sigvelo-button>
|
|
124
|
+
* <sigvelo-icon slot="start" name="device-floppy"></sigvelo-icon>
|
|
125
|
+
* Save
|
|
126
|
+
* </sigvelo-button>
|
|
127
|
+
* <sigvelo-button>
|
|
128
|
+
* <sigvelo-icon slot="start" name="printer"></sigvelo-icon>
|
|
129
|
+
* Print
|
|
130
|
+
* </sigvelo-button>
|
|
131
|
+
* </sigvelo-button-group>
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* @example Making a split button
|
|
135
|
+
* Create a split button by placing a button and a dropdown inside a button group.
|
|
136
|
+
*
|
|
137
|
+
* ```html
|
|
138
|
+
* <sigvelo-button-group label="Options">
|
|
139
|
+
* <sigvelo-button>
|
|
140
|
+
* <sigvelo-icon name="share-2" slot="start"></sigvelo-icon>
|
|
141
|
+
* Share
|
|
142
|
+
* </sigvelo-button>
|
|
143
|
+
* <sigvelo-dropdown placement="bottom-end">
|
|
144
|
+
* <sigvelo-button slot="trigger" icon-label="Save options" with-caret></sigvelo-button>
|
|
145
|
+
* <sigvelo-dropdown-item value="cats">Share with cats</sigvelo-dropdown-item>
|
|
146
|
+
* <sigvelo-dropdown-item value="dogs" disabled>Share with dogs</sigvelo-dropdown-item>
|
|
147
|
+
* <sigvelo-divider></sigvelo-divider>
|
|
148
|
+
* <sigvelo-dropdown-item value="url">Copy URL</sigvelo-dropdown-item>
|
|
149
|
+
* <sigvelo-dropdown-item value="embed">Copy embed code</sigvelo-dropdown-item>
|
|
150
|
+
* </sigvelo-dropdown>
|
|
151
|
+
* </sigvelo-button-group>
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
var SigveloButtonGroup = class extends SigveloElement {
|
|
155
|
+
constructor(..._args) {
|
|
156
|
+
super(..._args);
|
|
157
|
+
this.label = "";
|
|
158
|
+
this.orientation = "horizontal";
|
|
159
|
+
}
|
|
160
|
+
static {
|
|
161
|
+
this.styles = [hostStyles, button_group_styles_default];
|
|
162
|
+
}
|
|
163
|
+
firstUpdated() {
|
|
164
|
+
this.setAttribute("role", "group");
|
|
165
|
+
}
|
|
166
|
+
updated(changedProperties) {
|
|
167
|
+
if (changedProperties.has("label")) {
|
|
168
|
+
if (this.label) this.setAttribute("aria-label", this.label);
|
|
169
|
+
else this.removeAttribute("aria-label");
|
|
170
|
+
this.updateClassNames();
|
|
171
|
+
}
|
|
172
|
+
if (changedProperties.has("orientation")) this.updateClassNames();
|
|
173
|
+
}
|
|
174
|
+
/** Gets an array of buttons slotted into the button group. Includes slotted buttons, such as dropdown triggers. */
|
|
175
|
+
getButtons() {
|
|
176
|
+
return [...this.querySelectorAll("sigvelo-button")];
|
|
177
|
+
}
|
|
178
|
+
/** Updates slotted button class names so they get the correct button styles. */
|
|
179
|
+
updateClassNames() {
|
|
180
|
+
const buttons = this.getButtons();
|
|
181
|
+
buttons.forEach((button, index) => {
|
|
182
|
+
button.toggleAttribute("data-button-group-horizontal", this.orientation === "horizontal");
|
|
183
|
+
button.toggleAttribute("data-button-group-vertical", this.orientation === "vertical");
|
|
184
|
+
button.toggleAttribute("data-button-group-first", index === 0);
|
|
185
|
+
button.toggleAttribute("data-button-group-middle", index > 0 && index < buttons.length - 1);
|
|
186
|
+
button.toggleAttribute("data-button-group-last", index === buttons.length - 1);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
render() {
|
|
190
|
+
return html`<slot @slotchange=${this.updateClassNames}></slot>`;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
__decorate([property()], SigveloButtonGroup.prototype, "label", void 0);
|
|
194
|
+
__decorate([property({ reflect: true })], SigveloButtonGroup.prototype, "orientation", void 0);
|
|
195
|
+
customElements.define("sigvelo-button-group", SigveloButtonGroup);
|
|
196
|
+
//#endregion
|
|
197
|
+
export { SigveloButtonGroup as t };
|