@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,155 @@
|
|
|
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 { clamp } from "@mcp-b/wc-support/utilities/math";
|
|
7
|
+
//#region src/components/meter/meter.styles.ts
|
|
8
|
+
var meter_styles_default = css`
|
|
9
|
+
:host {
|
|
10
|
+
--track-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
11
|
+
--track-size: 0.5rem;
|
|
12
|
+
|
|
13
|
+
display: block;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([color="primary"]) {
|
|
17
|
+
--indicator-color: var(--sigvelo-color-primary-bg);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:host([color="success"]) {
|
|
21
|
+
--indicator-color: var(--sigvelo-color-success-bg);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:host([color="warning"]) {
|
|
25
|
+
--indicator-color: var(--sigvelo-color-warning-bg);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:host([color="destructive"]) {
|
|
29
|
+
--indicator-color: var(--sigvelo-color-danger-bg);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
#label {
|
|
33
|
+
display: flex;
|
|
34
|
+
justify-content: space-between;
|
|
35
|
+
align-items: baseline;
|
|
36
|
+
margin-block-end: 0.5em;
|
|
37
|
+
font-size: 0.875em;
|
|
38
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
39
|
+
color: var(--sigvelo-color-text);
|
|
40
|
+
|
|
41
|
+
::slotted([slot="value"]) {
|
|
42
|
+
font-variant-numeric: tabular-nums;
|
|
43
|
+
color: var(--sigvelo-color-text-muted);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
#track {
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: var(--track-size);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
border-radius: var(--sigvelo-radius-full);
|
|
52
|
+
background-color: var(--track-color);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#indicator {
|
|
56
|
+
width: calc(var(--percentage, 0) * 1%);
|
|
57
|
+
height: 100%;
|
|
58
|
+
border-radius: inherit;
|
|
59
|
+
background-color: var(--indicator-color);
|
|
60
|
+
transition: var(--sigvelo-motion-duration-layout) width ease;
|
|
61
|
+
}
|
|
62
|
+
`;
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region src/components/meter/meter.ts
|
|
65
|
+
/**
|
|
66
|
+
* <sigvelo-meter>
|
|
67
|
+
*
|
|
68
|
+
* @summary Displays a static gauge representing a value within a known range.
|
|
69
|
+
* @tag sigvelo-meter
|
|
70
|
+
* @status experimental
|
|
71
|
+
* @since 1.0
|
|
72
|
+
*
|
|
73
|
+
* @slot - Optional label content displayed above the meter.
|
|
74
|
+
* @slot value - Optional formatted value displayed to the right of the label.
|
|
75
|
+
*
|
|
76
|
+
* @cssproperty [--track-color=var(--sigvelo-color-neutral-bg-subtle)] - The color of the meter's track.
|
|
77
|
+
* @cssproperty [--track-size=0.5rem] - The height of the meter track.
|
|
78
|
+
* @cssproperty [--indicator-color] - The color of the meter's indicator. Defaults to the color intent.
|
|
79
|
+
*
|
|
80
|
+
* @csspart track - The meter's track element.
|
|
81
|
+
* @csspart indicator - The meter's value indicator.
|
|
82
|
+
* @csspart label - The container for the label and value.
|
|
83
|
+
*
|
|
84
|
+
* @example Default
|
|
85
|
+
* ```html
|
|
86
|
+
* <sigvelo-meter label="Disk usage" value="72" style="width: 300px;">
|
|
87
|
+
* <span slot="value">72%</span>
|
|
88
|
+
* </sigvelo-meter>
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* @example Color intents
|
|
92
|
+
* ```html
|
|
93
|
+
* <div style="display: flex; flex-direction: column; gap: 1rem; width: 300px;">
|
|
94
|
+
* <sigvelo-meter label="CPU" value="25" color="primary">
|
|
95
|
+
* <span slot="value">25%</span>
|
|
96
|
+
* </sigvelo-meter>
|
|
97
|
+
* <sigvelo-meter label="Memory" value="55" color="success">
|
|
98
|
+
* <span slot="value">55%</span>
|
|
99
|
+
* </sigvelo-meter>
|
|
100
|
+
* <sigvelo-meter label="Disk" value="78" color="warning">
|
|
101
|
+
* <span slot="value">78%</span>
|
|
102
|
+
* </sigvelo-meter>
|
|
103
|
+
* <sigvelo-meter label="Network" value="92" color="destructive">
|
|
104
|
+
* <span slot="value">92%</span>
|
|
105
|
+
* </sigvelo-meter>
|
|
106
|
+
* </div>
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
var SigveloMeter = class extends SigveloElement {
|
|
110
|
+
constructor(..._args) {
|
|
111
|
+
super(..._args);
|
|
112
|
+
this.min = 0;
|
|
113
|
+
this.max = 100;
|
|
114
|
+
this.value = 0;
|
|
115
|
+
this.color = "primary";
|
|
116
|
+
}
|
|
117
|
+
static {
|
|
118
|
+
this.styles = [hostStyles, meter_styles_default];
|
|
119
|
+
}
|
|
120
|
+
/** The percentage of the meter filled (readonly). */
|
|
121
|
+
get percentage() {
|
|
122
|
+
return (this.value - this.min) / (this.max - this.min) * 100;
|
|
123
|
+
}
|
|
124
|
+
firstUpdated() {
|
|
125
|
+
this.setAttribute("role", "meter");
|
|
126
|
+
}
|
|
127
|
+
updated(changedProperties) {
|
|
128
|
+
if (changedProperties.has("label")) this.setAttribute("aria-label", this.label);
|
|
129
|
+
if (changedProperties.has("min") || changedProperties.has("max") || changedProperties.has("value")) {
|
|
130
|
+
this.style.setProperty("--percentage", `${clamp(this.percentage, 0, 100)}`);
|
|
131
|
+
this.setAttribute("aria-valuemin", String(this.min));
|
|
132
|
+
this.setAttribute("aria-valuemax", String(this.max));
|
|
133
|
+
this.setAttribute("aria-valuenow", String(this.value));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
render() {
|
|
137
|
+
return html`
|
|
138
|
+
<div id="label" part="label">
|
|
139
|
+
<slot>${this.label}</slot>
|
|
140
|
+
<slot name="value"></slot>
|
|
141
|
+
</div>
|
|
142
|
+
<div id="track" part="track">
|
|
143
|
+
<div id="indicator" part="indicator"></div>
|
|
144
|
+
</div>
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
__decorate([property()], SigveloMeter.prototype, "label", void 0);
|
|
149
|
+
__decorate([property({ type: Number })], SigveloMeter.prototype, "min", void 0);
|
|
150
|
+
__decorate([property({ type: Number })], SigveloMeter.prototype, "max", void 0);
|
|
151
|
+
__decorate([property({ type: Number })], SigveloMeter.prototype, "value", void 0);
|
|
152
|
+
__decorate([property({ reflect: true })], SigveloMeter.prototype, "color", void 0);
|
|
153
|
+
customElements.define("sigvelo-meter", SigveloMeter);
|
|
154
|
+
//#endregion
|
|
155
|
+
export { SigveloMeter as t };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CSSResultGroup } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/metric/metric.d.ts
|
|
5
|
+
type MetricFormat = "number" | "compact" | "currency" | "percent";
|
|
6
|
+
/**
|
|
7
|
+
* <sigvelo-metric>
|
|
8
|
+
*
|
|
9
|
+
* @summary Displays a labeled key metric with consistent number formatting.
|
|
10
|
+
* @tag sigvelo-metric
|
|
11
|
+
* @documentation https://design-system.sigvelo.com/docs/components/metric
|
|
12
|
+
* @status stable
|
|
13
|
+
* @since 1.0
|
|
14
|
+
*
|
|
15
|
+
* @csspart label - The metric label.
|
|
16
|
+
* @csspart value - The formatted metric value.
|
|
17
|
+
*/
|
|
18
|
+
declare class SigveloMetric extends SigveloElement {
|
|
19
|
+
static styles: CSSResultGroup;
|
|
20
|
+
/** The visible metric label. */
|
|
21
|
+
label: string;
|
|
22
|
+
/** The metric value. Numbers are formatted according to `format`. */
|
|
23
|
+
value: string | number | null;
|
|
24
|
+
/** Number formatting applied to numeric values. */
|
|
25
|
+
format: MetricFormat;
|
|
26
|
+
/** ISO 4217 currency code used when `format` is `currency`. */
|
|
27
|
+
currency: string;
|
|
28
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
29
|
+
}
|
|
30
|
+
declare global {
|
|
31
|
+
interface HTMLElementTagNameMap {
|
|
32
|
+
"sigvelo-metric": SigveloMetric;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { SigveloMetric as n, MetricFormat as t };
|
|
@@ -0,0 +1,86 @@
|
|
|
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/metric/metric.styles.ts
|
|
7
|
+
var metric_styles_default = css`
|
|
8
|
+
:host {
|
|
9
|
+
display: block;
|
|
10
|
+
min-inline-size: 9rem;
|
|
11
|
+
padding: var(--sigvelo-spacing-4);
|
|
12
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
13
|
+
var(--sigvelo-color-neutral-border-subtle);
|
|
14
|
+
border-radius: var(--sigvelo-radius-lg);
|
|
15
|
+
background: var(--sigvelo-color-surface);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#label {
|
|
19
|
+
color: var(--sigvelo-color-text-muted);
|
|
20
|
+
font-size: var(--sigvelo-text-sm);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
#value {
|
|
24
|
+
margin-block-start: var(--sigvelo-spacing-1);
|
|
25
|
+
color: var(--sigvelo-color-text);
|
|
26
|
+
font-size: 1.75rem;
|
|
27
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
28
|
+
line-height: 1.15;
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/components/metric/metric.ts
|
|
33
|
+
function formatValue(value, format, currency) {
|
|
34
|
+
if (value === null || value === "") return "—";
|
|
35
|
+
if (typeof value === "string") return value;
|
|
36
|
+
if (format === "currency") return new Intl.NumberFormat(void 0, {
|
|
37
|
+
style: "currency",
|
|
38
|
+
currency,
|
|
39
|
+
maximumFractionDigits: 2
|
|
40
|
+
}).format(value);
|
|
41
|
+
if (format === "percent") return new Intl.NumberFormat(void 0, {
|
|
42
|
+
style: "percent",
|
|
43
|
+
maximumFractionDigits: 1
|
|
44
|
+
}).format(value);
|
|
45
|
+
return new Intl.NumberFormat(void 0, {
|
|
46
|
+
notation: format === "compact" ? "compact" : "standard",
|
|
47
|
+
maximumFractionDigits: 2
|
|
48
|
+
}).format(value);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* <sigvelo-metric>
|
|
52
|
+
*
|
|
53
|
+
* @summary Displays a labeled key metric with consistent number formatting.
|
|
54
|
+
* @tag sigvelo-metric
|
|
55
|
+
* @documentation https://design-system.sigvelo.com/docs/components/metric
|
|
56
|
+
* @status stable
|
|
57
|
+
* @since 1.0
|
|
58
|
+
*
|
|
59
|
+
* @csspart label - The metric label.
|
|
60
|
+
* @csspart value - The formatted metric value.
|
|
61
|
+
*/
|
|
62
|
+
var SigveloMetric = class extends SigveloElement {
|
|
63
|
+
constructor(..._args) {
|
|
64
|
+
super(..._args);
|
|
65
|
+
this.label = "";
|
|
66
|
+
this.value = null;
|
|
67
|
+
this.format = "number";
|
|
68
|
+
this.currency = "USD";
|
|
69
|
+
}
|
|
70
|
+
static {
|
|
71
|
+
this.styles = [hostStyles, metric_styles_default];
|
|
72
|
+
}
|
|
73
|
+
render() {
|
|
74
|
+
return html`
|
|
75
|
+
<div id="label" part="label">${this.label}</div>
|
|
76
|
+
<div id="value" part="value">${formatValue(this.value, this.format, this.currency)}</div>
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
__decorate([property()], SigveloMetric.prototype, "label", void 0);
|
|
81
|
+
__decorate([property()], SigveloMetric.prototype, "value", void 0);
|
|
82
|
+
__decorate([property({ reflect: true })], SigveloMetric.prototype, "format", void 0);
|
|
83
|
+
__decorate([property()], SigveloMetric.prototype, "currency", void 0);
|
|
84
|
+
customElements.define("sigvelo-metric", SigveloMetric);
|
|
85
|
+
//#endregion
|
|
86
|
+
export { SigveloMetric as t };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { css, html } from "lit";
|
|
2
|
+
import hostStyles from "@mcp-b/wc-support/styles/host.styles";
|
|
3
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
4
|
+
//#region src/components/metric-grid/metric-grid.styles.ts
|
|
5
|
+
var metric_grid_styles_default = css`
|
|
6
|
+
:host {
|
|
7
|
+
display: grid;
|
|
8
|
+
grid-template-columns: repeat(auto-fit, minmax(var(--metric-min-width, 9rem), 1fr));
|
|
9
|
+
gap: var(--sigvelo-spacing-3);
|
|
10
|
+
min-inline-size: 0;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/components/metric-grid/metric-grid.ts
|
|
15
|
+
/**
|
|
16
|
+
* <sigvelo-metric-grid>
|
|
17
|
+
*
|
|
18
|
+
* @summary Arranges metrics in a responsive grid.
|
|
19
|
+
* @tag sigvelo-metric-grid
|
|
20
|
+
* @documentation https://design-system.sigvelo.com/docs/components/metric-grid
|
|
21
|
+
* @status stable
|
|
22
|
+
* @since 1.0
|
|
23
|
+
*
|
|
24
|
+
* @slot - One or more `sigvelo-metric` elements.
|
|
25
|
+
* @cssproperty [--metric-min-width=9rem] - Minimum width of each grid item.
|
|
26
|
+
*/
|
|
27
|
+
var SigveloMetricGrid = class extends SigveloElement {
|
|
28
|
+
static {
|
|
29
|
+
this.styles = [hostStyles, metric_grid_styles_default];
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
return html`<slot></slot>`;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
customElements.define("sigvelo-metric-grid", SigveloMetricGrid);
|
|
36
|
+
//#endregion
|
|
37
|
+
export { SigveloMetricGrid as t };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CSSResultGroup } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/metric-grid/metric-grid.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-metric-grid>
|
|
7
|
+
*
|
|
8
|
+
* @summary Arranges metrics in a responsive grid.
|
|
9
|
+
* @tag sigvelo-metric-grid
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/metric-grid
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @slot - One or more `sigvelo-metric` elements.
|
|
15
|
+
* @cssproperty [--metric-min-width=9rem] - Minimum width of each grid item.
|
|
16
|
+
*/
|
|
17
|
+
declare class SigveloMetricGrid extends SigveloElement {
|
|
18
|
+
static styles: CSSResultGroup;
|
|
19
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
20
|
+
}
|
|
21
|
+
declare global {
|
|
22
|
+
interface HTMLElementTagNameMap {
|
|
23
|
+
"sigvelo-metric-grid": SigveloMetricGrid;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { SigveloMetricGrid as t };
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/mutation-observer/mutation-observer.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-mutation-observer>
|
|
7
|
+
*
|
|
8
|
+
* @summary Watches child elements and dispatches an event when they mutate.
|
|
9
|
+
* @tag sigvelo-mutation-observer
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/mutation
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @slot - The elements to observe. All direct children of the host element are observed, but not nested elements.
|
|
15
|
+
*
|
|
16
|
+
* @event sigvelo-mutation - Emitted when a slotted element is mutated. The `event.detail.record` property contains a
|
|
17
|
+
* [`MutationRecord`](https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord) with information about
|
|
18
|
+
* the mutation.
|
|
19
|
+
*
|
|
20
|
+
* @example Default
|
|
21
|
+
* The component uses a MutationObserver to monitor when its direct children are added, removed, or modified. A `sigvelo-mutation` event is dispatched for each observed change, providing detailed information about what was mutated.
|
|
22
|
+
*
|
|
23
|
+
* The component is styled with `display: contents`, allowing you to easily apply flex and grid layouts to the containing element without the component interfering.
|
|
24
|
+
*
|
|
25
|
+
* ```html
|
|
26
|
+
* <div id="mutation__overview">
|
|
27
|
+
* <sigvelo-mutation-observer child-list>
|
|
28
|
+
* <div class="box">1 <button aria-label="Remove">✕</button></div>
|
|
29
|
+
* <div class="box">2 <button aria-label="Remove">✕</button></div>
|
|
30
|
+
* <div class="box">3 <button aria-label="Remove">✕</button></div>
|
|
31
|
+
* </sigvelo-mutation-observer>
|
|
32
|
+
* </div>
|
|
33
|
+
*
|
|
34
|
+
* <sigvelo-button>Add box</sigvelo-button>
|
|
35
|
+
*
|
|
36
|
+
* <small>Add and remove some items, then open the console to inspect the output.</small>
|
|
37
|
+
*
|
|
38
|
+
* <script>
|
|
39
|
+
* const container = document.getElementById('mutation__overview');
|
|
40
|
+
* const mutationObserver = container.querySelector('sigvelo-mutation-observer');
|
|
41
|
+
* const appendButton = container.nextElementSibling;
|
|
42
|
+
* let count = mutationObserver.querySelectorAll('.box').length;
|
|
43
|
+
*
|
|
44
|
+
* // Listen for mutations
|
|
45
|
+
* mutationObserver.addEventListener('sigvelo-mutation', event => {
|
|
46
|
+
* console.log(event.detail.record);
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // Remove a card
|
|
50
|
+
* mutationObserver.addEventListener('click', event => {
|
|
51
|
+
* const button = event.target.closest('button');
|
|
52
|
+
* const box = button?.closest('.box');
|
|
53
|
+
* box?.remove();
|
|
54
|
+
* });
|
|
55
|
+
*
|
|
56
|
+
* // Append a box
|
|
57
|
+
* appendButton.addEventListener('click', () => {
|
|
58
|
+
* const html = `<div class="box">${++count} <button aria-label="Remove">✕</button></div>`;
|
|
59
|
+
* mutationObserver.insertAdjacentHTML('beforeEnd', html);
|
|
60
|
+
* });
|
|
61
|
+
* </script>
|
|
62
|
+
*
|
|
63
|
+
* <style>
|
|
64
|
+
* #mutation__overview {
|
|
65
|
+
* display: flex;
|
|
66
|
+
* flex-wrap: wrap;
|
|
67
|
+
* gap: 1.5rem;
|
|
68
|
+
* min-height: 5rem;
|
|
69
|
+
* margin-block-end: 1rem;
|
|
70
|
+
*
|
|
71
|
+
* .box {
|
|
72
|
+
* display: flex;
|
|
73
|
+
* align-items: center;
|
|
74
|
+
* justify-content: center;
|
|
75
|
+
* position: relative;
|
|
76
|
+
* min-width: 5rem;
|
|
77
|
+
* height: 5rem;
|
|
78
|
+
* border-radius: var(--sigvelo-radius-md);
|
|
79
|
+
* background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
80
|
+
* box-shadow: var(--sigvelo-elevation-hairline);
|
|
81
|
+
* text-align: center;
|
|
82
|
+
* padding: 1rem;
|
|
83
|
+
*
|
|
84
|
+
* button {
|
|
85
|
+
* display: flex;
|
|
86
|
+
* align-items: center;
|
|
87
|
+
* justify-content: center;
|
|
88
|
+
* background-color: var(--sigvelo-color-neutral-bg-strong);
|
|
89
|
+
* color: var(--sigvelo-color-neutral-text-on-strong);
|
|
90
|
+
* font-size: .75em;
|
|
91
|
+
* padding: 0;
|
|
92
|
+
* width: 1.25rem;
|
|
93
|
+
* height: 1.25rem;
|
|
94
|
+
* min-height: 0;
|
|
95
|
+
* position: absolute;
|
|
96
|
+
* top: -0.625rem;
|
|
97
|
+
* right: -0.625rem;
|
|
98
|
+
* border-radius: var(--sigvelo-radius-circle);
|
|
99
|
+
* }
|
|
100
|
+
* }
|
|
101
|
+
*
|
|
102
|
+
* ~ small {
|
|
103
|
+
* display: block;
|
|
104
|
+
* margin-block-start: 1rem;
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
* </style>
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* **Note:** Remember that only direct children of the host element are observed. Nested elements will not trigger mutation events unless the `subtree` attribute is enabled.
|
|
111
|
+
*
|
|
112
|
+
* @example Providing content
|
|
113
|
+
* Slot one or more elements into the mutation observer and listen for the `sigvelo-mutation` event. The event includes `event.detail.record`, which is a `MutationRecord` object that corresponds to the mutated element.
|
|
114
|
+
*
|
|
115
|
+
* In its simplest form, a mutation observer can be used like this.
|
|
116
|
+
*
|
|
117
|
+
* ```html
|
|
118
|
+
* <sigvelo-mutation-observer child-list>
|
|
119
|
+
* <div>Item 1</div>
|
|
120
|
+
* <div>Item 2</div>
|
|
121
|
+
* <div>Item 3</div>
|
|
122
|
+
* </sigvelo-mutation-observer>
|
|
123
|
+
*
|
|
124
|
+
* <script>
|
|
125
|
+
* const mutationObserver = document.querySelector('sigvelo-mutation-observer');
|
|
126
|
+
*
|
|
127
|
+
* // Listen for mutations
|
|
128
|
+
* mutationObserver.addEventListener('sigvelo-mutation', event => {
|
|
129
|
+
* console.log(event.detail.record); // MutationRecord
|
|
130
|
+
* });
|
|
131
|
+
* </script>
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* @example Observing attribute changes
|
|
135
|
+
* Use the `attr` attribute to monitor changes to element attributes. You can optionally specify `attr-old-value` to record the previous attribute value.
|
|
136
|
+
*
|
|
137
|
+
* ```html
|
|
138
|
+
* <sigvelo-mutation-observer attr attr-old-value>
|
|
139
|
+
* <div id="target" class="example">Watch my attributes</div>
|
|
140
|
+
* </sigvelo-mutation-observer>
|
|
141
|
+
*
|
|
142
|
+
* <script>
|
|
143
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
144
|
+
* const target = observer.querySelector('#target');
|
|
145
|
+
*
|
|
146
|
+
* observer.addEventListener('sigvelo-mutation', event => {
|
|
147
|
+
* const record = event.detail.record;
|
|
148
|
+
* console.log(`Attribute "${record.attributeName}" changed`);
|
|
149
|
+
* console.log(`Old value: ${record.oldValue}`);
|
|
150
|
+
* console.log(`New value: ${record.target.getAttribute(record.attributeName)}`);
|
|
151
|
+
* });
|
|
152
|
+
*
|
|
153
|
+
* // Change an attribute to trigger the observer
|
|
154
|
+
* target.className = 'modified';
|
|
155
|
+
* </script>
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* @example Filtering specific attributes
|
|
159
|
+
* Limit observations to specific attributes using the `attr-filter` attribute. Separate multiple attribute names with spaces.
|
|
160
|
+
*
|
|
161
|
+
* ```html
|
|
162
|
+
* <sigvelo-mutation-observer attr attr-filter="class data-state">
|
|
163
|
+
* <div class="example" data-state="active" id="example">
|
|
164
|
+
* Only class and data-state changes are observed
|
|
165
|
+
* </div>
|
|
166
|
+
* </sigvelo-mutation-observer>
|
|
167
|
+
*
|
|
168
|
+
* <script>
|
|
169
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
170
|
+
* const target = observer.querySelector('#example');
|
|
171
|
+
*
|
|
172
|
+
* observer.addEventListener('sigvelo-mutation', event => {
|
|
173
|
+
* console.log(`Observed attribute: ${event.detail.record.attributeName}`);
|
|
174
|
+
* });
|
|
175
|
+
*
|
|
176
|
+
* // These will trigger events
|
|
177
|
+
* target.className = 'modified';
|
|
178
|
+
* target.setAttribute('data-state', 'inactive');
|
|
179
|
+
*
|
|
180
|
+
* // This will NOT trigger an event
|
|
181
|
+
* target.id = 'new-id';
|
|
182
|
+
* </script>
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @example Observing text content changes
|
|
186
|
+
* Use the `character-data` attribute to monitor changes to text nodes. The `character-data-old-value` attribute records the previous text content.
|
|
187
|
+
*
|
|
188
|
+
* ```html
|
|
189
|
+
* <sigvelo-mutation-observer character-data character-data-old-value subtree>
|
|
190
|
+
* <p id="text-content">Original text content</p>
|
|
191
|
+
* </sigvelo-mutation-observer>
|
|
192
|
+
*
|
|
193
|
+
* <script>
|
|
194
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
195
|
+
* const paragraph = observer.querySelector('#text-content');
|
|
196
|
+
*
|
|
197
|
+
* observer.addEventListener('sigvelo-mutation', event => {
|
|
198
|
+
* const record = event.detail.record;
|
|
199
|
+
* console.log(`Text changed from "${record.oldValue}" to "${record.target.textContent}"`);
|
|
200
|
+
* });
|
|
201
|
+
*
|
|
202
|
+
* // Change text content to trigger the observer
|
|
203
|
+
* paragraph.textContent = 'Updated text content';
|
|
204
|
+
* </script>
|
|
205
|
+
* ```
|
|
206
|
+
*
|
|
207
|
+
* @example Observing nested elements
|
|
208
|
+
* By default, only direct children are observed. Add the `subtree` attribute to observe changes in nested elements as well.
|
|
209
|
+
*
|
|
210
|
+
* ```html
|
|
211
|
+
* <sigvelo-mutation-observer child-list subtree>
|
|
212
|
+
* <div class="container">
|
|
213
|
+
* <div class="nested">
|
|
214
|
+
* <span>Nested content</span>
|
|
215
|
+
* </div>
|
|
216
|
+
* </div>
|
|
217
|
+
* </sigvelo-mutation-observer>
|
|
218
|
+
*
|
|
219
|
+
* <script>
|
|
220
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
221
|
+
* const nested = observer.querySelector('.nested');
|
|
222
|
+
*
|
|
223
|
+
* observer.addEventListener('sigvelo-mutation', event => {
|
|
224
|
+
* console.log('Mutation detected in subtree:', event.detail.record);
|
|
225
|
+
* });
|
|
226
|
+
*
|
|
227
|
+
* // This will trigger the observer even though span is deeply nested
|
|
228
|
+
* nested.innerHTML = '<span>New nested content</span>';
|
|
229
|
+
* </script>
|
|
230
|
+
* ```
|
|
231
|
+
*
|
|
232
|
+
* @example Combining multiple observation types
|
|
233
|
+
* You can observe multiple types of mutations simultaneously by combining attributes.
|
|
234
|
+
*
|
|
235
|
+
* ```html
|
|
236
|
+
* <sigvelo-mutation-observer
|
|
237
|
+
* child-list
|
|
238
|
+
* attr
|
|
239
|
+
* character-data
|
|
240
|
+
* subtree
|
|
241
|
+
* attr-old-value
|
|
242
|
+
* character-data-old-value
|
|
243
|
+
* >
|
|
244
|
+
* <div class="comprehensive-example">
|
|
245
|
+
* <p>This observer watches everything</p>
|
|
246
|
+
* </div>
|
|
247
|
+
* </sigvelo-mutation-observer>
|
|
248
|
+
*
|
|
249
|
+
* <script>
|
|
250
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
251
|
+
*
|
|
252
|
+
* observer.addEventListener('sigvelo-mutation', event => {
|
|
253
|
+
* const record = event.detail.record;
|
|
254
|
+
*
|
|
255
|
+
* switch (record.type) {
|
|
256
|
+
* case 'childList':
|
|
257
|
+
* console.log('Child nodes changed');
|
|
258
|
+
* break;
|
|
259
|
+
* case 'attributes':
|
|
260
|
+
* console.log(`Attribute "${record.attributeName}" changed`);
|
|
261
|
+
* break;
|
|
262
|
+
* case 'characterData':
|
|
263
|
+
* console.log('Text content changed');
|
|
264
|
+
* break;
|
|
265
|
+
* }
|
|
266
|
+
* });
|
|
267
|
+
* </script>
|
|
268
|
+
* ```
|
|
269
|
+
*
|
|
270
|
+
* @example Disabling the observer
|
|
271
|
+
* Use the `disabled` attribute to temporarily stop observing mutations without removing the component.
|
|
272
|
+
*
|
|
273
|
+
* ```html
|
|
274
|
+
* <sigvelo-mutation-observer child-list disabled>
|
|
275
|
+
* <div>Changes to this content won't be observed</div>
|
|
276
|
+
* </sigvelo-mutation-observer>
|
|
277
|
+
*
|
|
278
|
+
* <script>
|
|
279
|
+
* const observer = document.querySelector('sigvelo-mutation-observer');
|
|
280
|
+
*
|
|
281
|
+
* // Re-enable observation
|
|
282
|
+
* observer.disabled = false;
|
|
283
|
+
*
|
|
284
|
+
* // Disable observation again
|
|
285
|
+
* observer.disabled = true;
|
|
286
|
+
* </script>
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
declare class SigveloMutationObserver extends SigveloElement {
|
|
290
|
+
static styles: CSSResultGroup;
|
|
291
|
+
private mutationObserver;
|
|
292
|
+
/** Disables the mutation observer. */
|
|
293
|
+
disabled: boolean;
|
|
294
|
+
/** Indicates whether attributes should be observed. */
|
|
295
|
+
attr: boolean;
|
|
296
|
+
/** Indicates whether attribute old value should be recorded. */
|
|
297
|
+
attrOldValue: boolean;
|
|
298
|
+
/**
|
|
299
|
+
* One or more attributes to limit observations to, separate by a space. When not specified, all attributes are
|
|
300
|
+
* observed.
|
|
301
|
+
*/
|
|
302
|
+
attrFilter: string;
|
|
303
|
+
/** Indicates whether mutations to target's children are to be observed. */
|
|
304
|
+
childList: boolean;
|
|
305
|
+
/** Indicates whether mutations to target's descendants are to be observed. */
|
|
306
|
+
subtree: boolean;
|
|
307
|
+
/** Indicates whether character data should be observed. */
|
|
308
|
+
characterData: boolean;
|
|
309
|
+
/** Indicates whether character data old value should be recorded. */
|
|
310
|
+
characterDataOldValue: boolean;
|
|
311
|
+
connectedCallback(): void;
|
|
312
|
+
disconnectedCallback(): void;
|
|
313
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
314
|
+
/** Starts or restarts the mutation observer. */
|
|
315
|
+
private startObserver;
|
|
316
|
+
/** Stops the mutation observer. */
|
|
317
|
+
private stopObserver;
|
|
318
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
319
|
+
}
|
|
320
|
+
declare global {
|
|
321
|
+
interface HTMLElementTagNameMap {
|
|
322
|
+
"sigvelo-mutation-observer": SigveloMutationObserver;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//#endregion
|
|
326
|
+
export { SigveloMutationObserver as t };
|