@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/checkbox/checkbox.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-checkbox>
|
|
7
|
+
*
|
|
8
|
+
* @summary Allows users to select one or more options from a list or toggle single options on and off.
|
|
9
|
+
* @tag sigvelo-checkbox
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/checkbox
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @dependency sigvelo-icon
|
|
15
|
+
*
|
|
16
|
+
* @slot - The checkbox's label. For plain-text labels, you can use the `label` attribute instead.
|
|
17
|
+
* @slot description - The checkbox's description. For plain-text descriptions, you can use the `description` attribute
|
|
18
|
+
* instead.
|
|
19
|
+
*
|
|
20
|
+
* @event sigvelo-blur - Emitted when the checkbox loses focus. This event does not bubble.
|
|
21
|
+
* @event sigvelo-change - Emitted when the user commits changes to the checkbox's value.
|
|
22
|
+
* @event sigvelo-focus - Emitted when the checkbox receives focus. This event does not bubble.
|
|
23
|
+
* @event sigvelo-input - Emitted when the checkbox receives input.
|
|
24
|
+
*
|
|
25
|
+
* @csspart label - The `<label>` that wraps the entire control.
|
|
26
|
+
* @csspart description - The element that contains the checkbox's description.
|
|
27
|
+
* @csspart visual-box - The element that wraps the internal checkbox.
|
|
28
|
+
* @csspart check-icon - The check icon, a `<sigvelo-icon>` element.
|
|
29
|
+
* @csspart check-icon__svg - The check icon's `svg` part.
|
|
30
|
+
* @csspart indeterminate-icon - The indeterminate icon, a `<sigvelo-icon>` element.
|
|
31
|
+
* @csspart indeterminate-icon__svg - The indeterminate icon's `<svg>` part.
|
|
32
|
+
*
|
|
33
|
+
* @cssstate checked - Applied when the checkbox is checked.
|
|
34
|
+
* @cssstate disabled - Applied when the checkbox is disabled.
|
|
35
|
+
* @cssstate focused - Applied when the checkbox has focus.
|
|
36
|
+
* @cssstate user-valid - Applied when the checkbox is valid and the user has sufficiently interacted with it.
|
|
37
|
+
* @cssstate user-invalid - Applied when the checkbox is invalid and the user has sufficiently interacted with it.
|
|
38
|
+
*
|
|
39
|
+
* @example Default
|
|
40
|
+
* ```html
|
|
41
|
+
* <sigvelo-checkbox name="feed" value="yes">I will feed the cats</sigvelo-checkbox>
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example Labels and descriptions
|
|
45
|
+
* The checkbox's label is provided via its default slot. You can use the `description` attribute to provide a plain text description. If you want to provide HTML, use the `description` slot instead.
|
|
46
|
+
*
|
|
47
|
+
* ```html
|
|
48
|
+
* <sigvelo-checkbox name="terms" value="accepted">
|
|
49
|
+
* I agree to the terms and conditions
|
|
50
|
+
* <span slot="description">
|
|
51
|
+
* By checking this box, you agree to our <a href="#">catnip usage policy</a>
|
|
52
|
+
* </span>
|
|
53
|
+
* </sigvelo-checkbox>
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Checked initially
|
|
57
|
+
* Add the `checked` attribute to check the checkbox initially.
|
|
58
|
+
*
|
|
59
|
+
* ```html
|
|
60
|
+
* <sigvelo-checkbox name="feed" value="yes" checked>I will feed the cats</sigvelo-checkbox>
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @example Filled checkboxes
|
|
64
|
+
* Set the `variant` attribute to `filled` to change the checkbox's variant.
|
|
65
|
+
*
|
|
66
|
+
* ```html
|
|
67
|
+
* <sigvelo-checkbox variant="filled">Filled checkbox</sigvelo-checkbox>
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @example Changing the size
|
|
71
|
+
* Use the `size` attribute to change the checkbox's size.
|
|
72
|
+
*
|
|
73
|
+
* ```html
|
|
74
|
+
* <sigvelo-checkbox size="xs">Extra small</sigvelo-checkbox><br>
|
|
75
|
+
* <sigvelo-checkbox size="sm">Small</sigvelo-checkbox><br>
|
|
76
|
+
* <sigvelo-checkbox size="md">Medium</sigvelo-checkbox><br>
|
|
77
|
+
* <sigvelo-checkbox size="lg">Large</sigvelo-checkbox><br>
|
|
78
|
+
* <sigvelo-checkbox size="xl">Extra large</sigvelo-checkbox>
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @example Indeterminate
|
|
82
|
+
* Use the `indeterminate` attribute to put the checkbox in an indeterminate state. This can be used to show a mixed selection in a group of "child" checkboxes.
|
|
83
|
+
*
|
|
84
|
+
* ```html
|
|
85
|
+
* <sigvelo-checkbox indeterminate>Indeterminate</sigvelo-checkbox>
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @example Disabling
|
|
89
|
+
* Use the `disabled` attribute to disable the checkbox.
|
|
90
|
+
*
|
|
91
|
+
* ```html
|
|
92
|
+
* <sigvelo-checkbox disabled>Unchecked and disabled</sigvelo-checkbox><br>
|
|
93
|
+
* <sigvelo-checkbox checked disabled>Checked and disabled</sigvelo-checkbox><br>
|
|
94
|
+
* <sigvelo-checkbox indeterminate disabled>Indeterminate and disabled</sigvelo-checkbox>
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* @example Validation
|
|
98
|
+
* The `required` attribute can be applied to enable validation using the Constraint Validation API. This will prevent form submission until the checkbox is checked.
|
|
99
|
+
*
|
|
100
|
+
* ```html
|
|
101
|
+
* <form action="about:blank" method="get" target="_blank">
|
|
102
|
+
* <sigvelo-checkbox name="feed" value="yes" required>I will feed the cats</sigvelo-checkbox>
|
|
103
|
+
* <br><br>
|
|
104
|
+
* <sigvelo-button type="submit" color="primary">Submit</sigvelo-button>
|
|
105
|
+
* <sigvelo-button type="reset">Reset</sigvelo-button>
|
|
106
|
+
* </form>
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @example Using custom validation
|
|
110
|
+
* Use the `setCustomValidity()` method to make the checkbox invalid and show a custom error message on submit. This will override all other validation parameters. To clear the error, remove the attribute or set it to an empty string.
|
|
111
|
+
*
|
|
112
|
+
* ```html
|
|
113
|
+
* <form action="about:blank" method="get" target="_blank" id="checkbox__custom-validation">
|
|
114
|
+
* <sigvelo-checkbox name="feed" value="yes" required>I will feed the cats</sigvelo-checkbox>
|
|
115
|
+
* <br><br>
|
|
116
|
+
* <sigvelo-button type="submit" color="primary">Submit</sigvelo-button>
|
|
117
|
+
* <sigvelo-button type="reset">Reset</sigvelo-button>
|
|
118
|
+
* </form>
|
|
119
|
+
*
|
|
120
|
+
* <script type="module">
|
|
121
|
+
* import { allDefined } from '/dist/sigvelo.js';
|
|
122
|
+
*
|
|
123
|
+
* await allDefined();
|
|
124
|
+
*
|
|
125
|
+
* const form = document.getElementById('checkbox__custom-validation');
|
|
126
|
+
* const checkbox = form.querySelector('sigvelo-checkbox');
|
|
127
|
+
*
|
|
128
|
+
* checkbox.setCustomValidity('Not so fast, bubba!');
|
|
129
|
+
* </script>
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example Styling validation
|
|
133
|
+
* You can style valid and invalid checkboxes using the `:valid` and `:invalid` pseudo classes.
|
|
134
|
+
*
|
|
135
|
+
* ```html
|
|
136
|
+
* <form action="about:blank" method="get" target="_blank" class="checkbox__validation-pseudo">
|
|
137
|
+
* <sigvelo-checkbox name="feed" value="yes" required>I will feed the cats</sigvelo-checkbox>
|
|
138
|
+
* <br><br>
|
|
139
|
+
* <sigvelo-button type="submit" color="primary">Submit</sigvelo-button>
|
|
140
|
+
* <sigvelo-button type="reset">Reset</sigvelo-button>
|
|
141
|
+
* </form>
|
|
142
|
+
*
|
|
143
|
+
* <style>
|
|
144
|
+
* .checkbox__validation-pseudo {
|
|
145
|
+
* sigvelo-checkbox:valid {
|
|
146
|
+
* outline: solid 2px var(--sigvelo-color-success-border);
|
|
147
|
+
* outline-offset: .5rem;
|
|
148
|
+
* }
|
|
149
|
+
*
|
|
150
|
+
* sigvelo-checkbox:invalid {
|
|
151
|
+
* outline: solid 2px var(--sigvelo-color-danger-border);
|
|
152
|
+
* outline-offset: .5rem;
|
|
153
|
+
* }
|
|
154
|
+
* }
|
|
155
|
+
* </style>
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* However, these selectors will match even before the user has had a chance to fill out the form. More often than not, you'll want to use the `user-valid` and `user-invalid` custom states instead. This way, validation styles are only shown _after_ the user interacts with the form control or when the form is submitted.
|
|
159
|
+
*
|
|
160
|
+
* ```html
|
|
161
|
+
* <form action="about:blank" method="get" target="_blank" class="checkbox__validation-custom">
|
|
162
|
+
* <sigvelo-checkbox name="feed" value="yes" required>I will feed the cats</sigvelo-checkbox>
|
|
163
|
+
* <br><br>
|
|
164
|
+
* <sigvelo-button type="submit" color="primary">Submit</sigvelo-button>
|
|
165
|
+
* <sigvelo-button type="reset">Reset</sigvelo-button>
|
|
166
|
+
* </form>
|
|
167
|
+
*
|
|
168
|
+
* <style>
|
|
169
|
+
* .checkbox__validation-custom {
|
|
170
|
+
* sigvelo-checkbox:state(user-valid) {
|
|
171
|
+
* outline: solid 2px var(--sigvelo-color-success-border);
|
|
172
|
+
* outline-offset: .5rem;
|
|
173
|
+
* }
|
|
174
|
+
*
|
|
175
|
+
* sigvelo-checkbox:state(user-invalid) {
|
|
176
|
+
* outline: solid 2px var(--sigvelo-color-danger-border);
|
|
177
|
+
* outline-offset: .5rem;
|
|
178
|
+
* }
|
|
179
|
+
* }
|
|
180
|
+
* </style>
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
183
|
+
* @example Styling checkboxes
|
|
184
|
+
* Checkboxes come with a simple, minimal appearance. Feel free to customize them with your own styles. Here's a quick way to turn a checkbox into a selectable tile.
|
|
185
|
+
*
|
|
186
|
+
* ```html
|
|
187
|
+
* <sigvelo-checkbox checked class="checkbox__tile">
|
|
188
|
+
* <sigvelo-icon name="ball-basketball"></sigvelo-icon>
|
|
189
|
+
* <span>Basketball</span>
|
|
190
|
+
* </sigvelo-checkbox>
|
|
191
|
+
*
|
|
192
|
+
* <sigvelo-checkbox class="checkbox__tile">
|
|
193
|
+
* <sigvelo-icon name="ball-american-football"></sigvelo-icon>
|
|
194
|
+
* <span>Football</span>
|
|
195
|
+
* </sigvelo-checkbox>
|
|
196
|
+
*
|
|
197
|
+
* <sigvelo-checkbox class="checkbox__tile">
|
|
198
|
+
* <sigvelo-icon name="ping-pong"></sigvelo-icon>
|
|
199
|
+
* <span>Ping-pong</span>
|
|
200
|
+
* </sigvelo-checkbox>
|
|
201
|
+
*
|
|
202
|
+
* <style>
|
|
203
|
+
* .checkbox__tile {
|
|
204
|
+
* position: relative;
|
|
205
|
+
* border: solid 1px var(--sigvelo-color-neutral-border-muted);
|
|
206
|
+
* border-radius: var(--sigvelo-radius-md);
|
|
207
|
+
* box-shadow: var(--sigvelo-elevation-hairline);
|
|
208
|
+
*
|
|
209
|
+
* &::part(label) {
|
|
210
|
+
* display: flex;
|
|
211
|
+
* flex-direction: column;
|
|
212
|
+
* gap: .5rem;
|
|
213
|
+
* padding: 2rem 1.5rem .5rem 1.5rem;
|
|
214
|
+
* }
|
|
215
|
+
*
|
|
216
|
+
* &::part(visual-box) {
|
|
217
|
+
* position: absolute;
|
|
218
|
+
* top: 0.5rem;
|
|
219
|
+
* left: 0.5rem;
|
|
220
|
+
* }
|
|
221
|
+
*
|
|
222
|
+
* sigvelo-icon {
|
|
223
|
+
* font-size: 4rem;
|
|
224
|
+
* stroke-width: .75px;
|
|
225
|
+
* }
|
|
226
|
+
*
|
|
227
|
+
* span {
|
|
228
|
+
* font-size: .875rem;
|
|
229
|
+
* color: var(--sigvelo-color-primary-text-on-subtle);
|
|
230
|
+
* }
|
|
231
|
+
*
|
|
232
|
+
* &:state(checked) {
|
|
233
|
+
* background-color: var(--sigvelo-color-primary-bg-subtle);
|
|
234
|
+
* border-color: var(--sigvelo-color-primary-border);
|
|
235
|
+
* }
|
|
236
|
+
* }
|
|
237
|
+
* </style>
|
|
238
|
+
* ```
|
|
239
|
+
*
|
|
240
|
+
* ```html
|
|
241
|
+
* <sigvelo-checkbox checked class="checkbox__image">
|
|
242
|
+
* <img draggable="false" src="https://images.unsplash.com/photo-1620196244888-d31ff5bbf163?q=80&w=400&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="A gray kitten plays with a blue toy mouse">
|
|
243
|
+
* </sigvelo-checkbox>
|
|
244
|
+
*
|
|
245
|
+
* <sigvelo-checkbox class="checkbox__image">
|
|
246
|
+
* <img draggable="false" src="https://images.unsplash.com/photo-1597239351814-a5f03b4663c0?q=80&w=400&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="A gray kitten practices prowling on a brown floor">
|
|
247
|
+
* </sigvelo-checkbox>
|
|
248
|
+
*
|
|
249
|
+
* <sigvelo-checkbox class="checkbox__image">
|
|
250
|
+
* <img draggable="false" src="https://images.unsplash.com/photo-1503844281047-cf42eade5ca5?q=80&w=400&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="A gray kitten looks at the camera from behind a tree">
|
|
251
|
+
* </sigvelo-checkbox>
|
|
252
|
+
*
|
|
253
|
+
* <style>
|
|
254
|
+
* .checkbox__image {
|
|
255
|
+
* isolation: isolate;
|
|
256
|
+
* position: relative;
|
|
257
|
+
*
|
|
258
|
+
* img {
|
|
259
|
+
* display: block;
|
|
260
|
+
* width: 150px;
|
|
261
|
+
* height: 150px;
|
|
262
|
+
* object-fit: cover;
|
|
263
|
+
* border-radius: .25rem;
|
|
264
|
+
* }
|
|
265
|
+
*
|
|
266
|
+
* &::part(visual-box) {
|
|
267
|
+
* position: absolute;
|
|
268
|
+
* bottom: .5rem;
|
|
269
|
+
* left: .5rem;
|
|
270
|
+
* width: 1.5rem;
|
|
271
|
+
* height: 1.5rem;
|
|
272
|
+
* border: none;
|
|
273
|
+
* background-color: color-mix(in oklab, black, transparent 50%);
|
|
274
|
+
* }
|
|
275
|
+
*
|
|
276
|
+
* &:state(checked)::part(visual-box) {
|
|
277
|
+
* background-color: var(--sigvelo-color-primary-bg);
|
|
278
|
+
* }
|
|
279
|
+
*
|
|
280
|
+
* &::part(check-icon) {
|
|
281
|
+
* scale: .75;
|
|
282
|
+
* }
|
|
283
|
+
* }
|
|
284
|
+
* </style>
|
|
285
|
+
* ```
|
|
286
|
+
*
|
|
287
|
+
* **Warning:** It's not recommended to hide the checkbox unless your styles make it very clear to users that the control is checkable.
|
|
288
|
+
*/
|
|
289
|
+
declare class SigveloCheckbox extends SigveloFormControlElement {
|
|
290
|
+
static formAssociated: boolean;
|
|
291
|
+
static observeSlots: boolean;
|
|
292
|
+
static styles: CSSResultGroup;
|
|
293
|
+
protected get focusableAnchor(): HTMLInputElement;
|
|
294
|
+
private checkbox;
|
|
295
|
+
isInvalid: boolean;
|
|
296
|
+
hadUserInteraction: boolean;
|
|
297
|
+
wasSubmitted: boolean;
|
|
298
|
+
/**
|
|
299
|
+
* The checkbox's label. If you need to provide HTML in the label, use the `label` slot instead.
|
|
300
|
+
*/
|
|
301
|
+
label: string;
|
|
302
|
+
/** The checkbox's description. If you need to provide HTML in the description, use the `description` slot instead. */
|
|
303
|
+
description: string;
|
|
304
|
+
/** The name of the checkbox. This will be submitted with the form as a name/value pair. */
|
|
305
|
+
name: string;
|
|
306
|
+
/** The checkbox's value. */
|
|
307
|
+
value: string;
|
|
308
|
+
/** The checkbox's checked state. */
|
|
309
|
+
checked: boolean;
|
|
310
|
+
/** Puts the checkbox in an indeterminate state. */
|
|
311
|
+
indeterminate: boolean;
|
|
312
|
+
/** Disables the checkbox. */
|
|
313
|
+
disabled: boolean;
|
|
314
|
+
/** The type of checkbox to render. */
|
|
315
|
+
variant: "normal" | "filled";
|
|
316
|
+
/** The checkbox's size. */
|
|
317
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
318
|
+
/**
|
|
319
|
+
* The form to associate this control with. If omitted, the closest containing `<form>` will be used. The value of
|
|
320
|
+
* this attribute must be an ID of a form in the same document or shadow root.
|
|
321
|
+
*/
|
|
322
|
+
form: string;
|
|
323
|
+
/**
|
|
324
|
+
* Makes the checkbox required. Form submission will not be allowed until the checkbox is checked.
|
|
325
|
+
*/
|
|
326
|
+
required: boolean;
|
|
327
|
+
connectedCallback(): void;
|
|
328
|
+
disconnectedCallback(): void;
|
|
329
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
330
|
+
/** @internal Called when a containing fieldset is disabled. */
|
|
331
|
+
formDisabledCallback(isDisabled: boolean): void;
|
|
332
|
+
/** @internal Called when the form is reset. */
|
|
333
|
+
formResetCallback(): void;
|
|
334
|
+
private handleClick;
|
|
335
|
+
private handleBlur;
|
|
336
|
+
private handleChange;
|
|
337
|
+
private handleInput;
|
|
338
|
+
private handleFocus;
|
|
339
|
+
private handleHostInvalid;
|
|
340
|
+
/** Sets the form control's validity */
|
|
341
|
+
private updateValidity;
|
|
342
|
+
/** Sets focus to the checkbox. */
|
|
343
|
+
focus(): void;
|
|
344
|
+
/** Removes focus from the checkbox. */
|
|
345
|
+
blur(): void;
|
|
346
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
347
|
+
}
|
|
348
|
+
declare global {
|
|
349
|
+
interface HTMLElementTagNameMap {
|
|
350
|
+
"sigvelo-checkbox": SigveloCheckbox;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
//#endregion
|
|
354
|
+
export { SigveloCheckbox as t };
|
|
@@ -0,0 +1,201 @@
|
|
|
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
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
7
|
+
import formControlStyles from "@mcp-b/wc-support/styles/form-control.styles";
|
|
8
|
+
//#region src/components/checkbox-group/checkbox-group.styles.ts
|
|
9
|
+
var checkbox_group_styles_default = css`
|
|
10
|
+
:host {
|
|
11
|
+
--gap: 1rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
#group {
|
|
15
|
+
display: flex;
|
|
16
|
+
margin-block-start: 0.5rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:host([orientation="horizontal"]) #group {
|
|
20
|
+
flex-wrap: wrap;
|
|
21
|
+
gap: var(--gap);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:host([orientation="vertical"]) #group {
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
gap: 0.5rem;
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/components/checkbox-group/checkbox-group.ts
|
|
31
|
+
/**
|
|
32
|
+
* <sigvelo-checkbox-group>
|
|
33
|
+
*
|
|
34
|
+
* @summary Attaches a label and description to a group of related checkboxes or switches.
|
|
35
|
+
* @tag sigvelo-checkbox-group
|
|
36
|
+
* @documentation https://design-system.sigvelo.com/docs/components/checkbox-group
|
|
37
|
+
* @status stable
|
|
38
|
+
* @since 1.0
|
|
39
|
+
*
|
|
40
|
+
* @slot - The checkboxes to place in the group.
|
|
41
|
+
* @slot label - The checkbox's label. For plain-text labels, you can use the `label` attribute instead.
|
|
42
|
+
* @slot description - The checkbox's description. For plain-text descriptions, you can use the `description`
|
|
43
|
+
* attribute instead.
|
|
44
|
+
*
|
|
45
|
+
* @csspart label - The element that contains the checkbox group's label.
|
|
46
|
+
* @csspart description - The element that contains the checkbox group's description.
|
|
47
|
+
* @csspart group - The element that wraps the grouped checkboxes.
|
|
48
|
+
*
|
|
49
|
+
* @cssproperty [--gap=1em] - The gap between checkboxes.
|
|
50
|
+
*
|
|
51
|
+
* @example Default
|
|
52
|
+
* You can use checkboxes without grouping them but, when you want to apply a label and description to a group of related checkboxes, this component will come in handy.
|
|
53
|
+
*
|
|
54
|
+
* You can also use checkbox groups with toggle icons and toggle tags.
|
|
55
|
+
*
|
|
56
|
+
* ```html
|
|
57
|
+
* <sigvelo-checkbox-group label="Things for the cats" description="Select as few or as many as you'd like.">
|
|
58
|
+
* <sigvelo-checkbox name="catnip">Catnip</sigvelo-checkbox>
|
|
59
|
+
* <sigvelo-checkbox name="food">Food</sigvelo-checkbox>
|
|
60
|
+
* <sigvelo-checkbox name="litter">Litter</sigvelo-checkbox>
|
|
61
|
+
* <sigvelo-checkbox name="treats">Treats</sigvelo-checkbox>
|
|
62
|
+
* </sigvelo-checkbox-group>
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example Labels and descriptions
|
|
66
|
+
* You can use the `label` and `description` attributes to provide plain text labels and descriptions for the checkbox group. If you want to provide HTML, use the `label` and `description` slots instead.
|
|
67
|
+
*
|
|
68
|
+
* ```html
|
|
69
|
+
* <sigvelo-checkbox-group label="Things for the cats">
|
|
70
|
+
* <span slot="description">
|
|
71
|
+
* For more information, <a href="https://example.com/" target="_blank">visit our website</a>.
|
|
72
|
+
* </span>
|
|
73
|
+
* <sigvelo-checkbox name="catnip">Catnip</sigvelo-checkbox>
|
|
74
|
+
* <sigvelo-checkbox name="food">Food</sigvelo-checkbox>
|
|
75
|
+
* <sigvelo-checkbox name="litter">Litter</sigvelo-checkbox>
|
|
76
|
+
* <sigvelo-checkbox name="treats">Treats</sigvelo-checkbox>
|
|
77
|
+
* </sigvelo-checkbox-group>
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example Changing the orientation
|
|
81
|
+
* To stack checkboxes on top of each other instead of side by side, set the `orientation` attribute to `vertical`.
|
|
82
|
+
*
|
|
83
|
+
* ```html
|
|
84
|
+
* <sigvelo-checkbox-group label="Places to hide" orientation="vertical">
|
|
85
|
+
* <sigvelo-checkbox name="couch">Behind the couch</sigvelo-checkbox>
|
|
86
|
+
* <sigvelo-checkbox name="backyard">In the backyard</sigvelo-checkbox>
|
|
87
|
+
* <sigvelo-checkbox name="fridge">On top of the refrigerator</sigvelo-checkbox>
|
|
88
|
+
* <sigvelo-checkbox name="bed">Under the bed</sigvelo-checkbox>
|
|
89
|
+
* </sigvelo-checkbox-group>
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @example Grouping switches
|
|
93
|
+
* You can also group switches in a checkbox group. For best results, avoid mixing checkboxes and switches in the same group.
|
|
94
|
+
*
|
|
95
|
+
* ```html
|
|
96
|
+
* <sigvelo-checkbox-group
|
|
97
|
+
* label="Remote control kitty"
|
|
98
|
+
* description="Toggle an option and watch your cat react instantly!"
|
|
99
|
+
* >
|
|
100
|
+
* <sigvelo-switch name="eating">Eating</sigvelo-switch>
|
|
101
|
+
* <sigvelo-switch name="hiding">Hiding</sigvelo-switch>
|
|
102
|
+
* <sigvelo-switch name="purring">Purring</sigvelo-switch>
|
|
103
|
+
* <sigvelo-switch name="sleeping">Sleeping</sigvelo-switch>
|
|
104
|
+
* </sigvelo-checkbox-group>
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @example Adding a required indicator
|
|
108
|
+
* Use the `required` attribute to show a required indicator in the checkbox group's label. This just adds a visual indicator. To perform validation, use the checkbox's `required` attribute and/or `setCustomValidity()` method.
|
|
109
|
+
*
|
|
110
|
+
* ```html
|
|
111
|
+
* <form action="about:blank" method="get" target="_blank" id="checkbox-group__required">
|
|
112
|
+
* <sigvelo-checkbox-group
|
|
113
|
+
* label="Things for the cats"
|
|
114
|
+
* description="Please select at least two items."
|
|
115
|
+
* required
|
|
116
|
+
* >
|
|
117
|
+
* <sigvelo-checkbox name="catnip">Catnip</sigvelo-checkbox>
|
|
118
|
+
* <sigvelo-checkbox name="food">Food</sigvelo-checkbox>
|
|
119
|
+
* <sigvelo-checkbox name="litter">Litter</sigvelo-checkbox>
|
|
120
|
+
* <sigvelo-checkbox name="treats">Treats</sigvelo-checkbox>
|
|
121
|
+
* </sigvelo-checkbox-group>
|
|
122
|
+
* <br>
|
|
123
|
+
* <sigvelo-button type="submit" color="primary">Submit</sigvelo-button>
|
|
124
|
+
* </form>
|
|
125
|
+
*
|
|
126
|
+
* <script type="module">
|
|
127
|
+
* import { allDefined } from '/dist/sigvelo.js';
|
|
128
|
+
*
|
|
129
|
+
* await allDefined();
|
|
130
|
+
*
|
|
131
|
+
* const form = document.getElementById('checkbox-group__required');
|
|
132
|
+
* const checkboxes = form.querySelectorAll('sigvelo-checkbox');
|
|
133
|
+
* const firstCheckbox = checkboxes[0];
|
|
134
|
+
* const validationMessage = 'Select at least two items before continuing.';
|
|
135
|
+
*
|
|
136
|
+
* firstCheckbox.setCustomValidity(validationMessage);
|
|
137
|
+
*
|
|
138
|
+
* // Listen for checkboxes to be checked
|
|
139
|
+
* form.addEventListener('sigvelo-input', () => {
|
|
140
|
+
* const numChecked = [...checkboxes].filter(checkbox => checkbox.checked).length;
|
|
141
|
+
*
|
|
142
|
+
* // If less than two are checked, set the custom validation message. Otherwise, remove it.
|
|
143
|
+
* if (numChecked < 2) {
|
|
144
|
+
* firstCheckbox.setCustomValidity(validationMessage);
|
|
145
|
+
* } else {
|
|
146
|
+
* firstCheckbox.setCustomValidity('');
|
|
147
|
+
* }
|
|
148
|
+
* });
|
|
149
|
+
* <\/script>
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
var SigveloCheckboxGroup = class extends SigveloElement {
|
|
153
|
+
constructor(..._args) {
|
|
154
|
+
super(..._args);
|
|
155
|
+
this.orientation = "horizontal";
|
|
156
|
+
this.required = false;
|
|
157
|
+
}
|
|
158
|
+
static {
|
|
159
|
+
this.observeSlots = true;
|
|
160
|
+
}
|
|
161
|
+
static {
|
|
162
|
+
this.styles = [
|
|
163
|
+
hostStyles,
|
|
164
|
+
formControlStyles,
|
|
165
|
+
checkbox_group_styles_default
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
render() {
|
|
169
|
+
const hasLabel = this.label || this.slotsWithContent.has("label");
|
|
170
|
+
const hasDescription = this.description || this.slotsWithContent.has("description");
|
|
171
|
+
return html`
|
|
172
|
+
<label id="label" part="label" for="text-box" class=${classMap({ vh: !hasLabel })}>
|
|
173
|
+
<slot name="label">${this.label}</slot>
|
|
174
|
+
</label>
|
|
175
|
+
|
|
176
|
+
<div id="description" part="description" class=${classMap({ vh: !hasDescription })}>
|
|
177
|
+
<slot name="description">${this.description}</slot>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div
|
|
181
|
+
id="group"
|
|
182
|
+
part="group"
|
|
183
|
+
role="group"
|
|
184
|
+
aria-labelledby="label"
|
|
185
|
+
aria-describedby="description"
|
|
186
|
+
>
|
|
187
|
+
<slot></slot>
|
|
188
|
+
</div>
|
|
189
|
+
`;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
__decorate([property()], SigveloCheckboxGroup.prototype, "label", void 0);
|
|
193
|
+
__decorate([property()], SigveloCheckboxGroup.prototype, "description", void 0);
|
|
194
|
+
__decorate([property({ reflect: true })], SigveloCheckboxGroup.prototype, "orientation", void 0);
|
|
195
|
+
__decorate([property({
|
|
196
|
+
type: Boolean,
|
|
197
|
+
reflect: true
|
|
198
|
+
})], SigveloCheckboxGroup.prototype, "required", void 0);
|
|
199
|
+
customElements.define("sigvelo-checkbox-group", SigveloCheckboxGroup);
|
|
200
|
+
//#endregion
|
|
201
|
+
export { SigveloCheckboxGroup as t };
|