@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,188 @@
|
|
|
1
|
+
import { Localize } from "./utilities/localize.js";
|
|
2
|
+
import { t as __decorate } from "./decorate-DcF3lt7P.js";
|
|
3
|
+
import { css, html } from "lit";
|
|
4
|
+
import { property } from "lit/decorators.js";
|
|
5
|
+
import hostStyles from "@mcp-b/wc-support/styles/host.styles";
|
|
6
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
7
|
+
//#region src/components/spinner/spinner.styles.ts
|
|
8
|
+
var spinner_styles_default = css`
|
|
9
|
+
:host {
|
|
10
|
+
--indicator-color: var(--sigvelo-color-primary-bg);
|
|
11
|
+
--track-color: color-mix(in oklab, var(--sigvelo-color-neutral-bg), transparent 75%);
|
|
12
|
+
--speed: 0.75s;
|
|
13
|
+
|
|
14
|
+
display: inline-flex;
|
|
15
|
+
width: 1em;
|
|
16
|
+
height: 1em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Default spinner */
|
|
20
|
+
svg {
|
|
21
|
+
transform-origin: center;
|
|
22
|
+
animation: rotate var(--speed) linear infinite;
|
|
23
|
+
|
|
24
|
+
&:dir(rtl) {
|
|
25
|
+
animation-name: rotate-rtl;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#track {
|
|
30
|
+
stroke: var(--track-color);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#indicator {
|
|
34
|
+
stroke: var(--indicator-color);
|
|
35
|
+
stroke-dasharray: 30, 50;
|
|
36
|
+
stroke-dashoffset: -5;
|
|
37
|
+
stroke-linecap: round;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Custom spinners */
|
|
41
|
+
::slotted(img),
|
|
42
|
+
::slotted(svg) {
|
|
43
|
+
min-width: 1em;
|
|
44
|
+
min-height: 1em;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@keyframes rotate {
|
|
48
|
+
0% {
|
|
49
|
+
transform: rotate(0deg);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
100% {
|
|
53
|
+
transform: rotate(360deg);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@keyframes rotate-rtl {
|
|
58
|
+
0% {
|
|
59
|
+
transform: rotate(360deg);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
100% {
|
|
63
|
+
transform: rotate(0deg);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
`;
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/components/spinner/spinner.ts
|
|
69
|
+
/**
|
|
70
|
+
* <sigvelo-spinner>
|
|
71
|
+
*
|
|
72
|
+
* @summary Tells the user that content is loading or a request is processing in the background.
|
|
73
|
+
* @tag sigvelo-spinner
|
|
74
|
+
* @documentation https://design-system.sigvelo.com/docs/components/spinner
|
|
75
|
+
* @status stable
|
|
76
|
+
* @since 1.0
|
|
77
|
+
*
|
|
78
|
+
* @slot - A custom spinner to show in lieu of the default one. Works best with `<img>` and `<svg>` elements. Custom
|
|
79
|
+
* spinners will not be animated, allowing you to use animated GIF, APNG, and SVG animations without conflict.
|
|
80
|
+
*
|
|
81
|
+
* @csspart track - the spinner's track, a `<circle>` SVG element.
|
|
82
|
+
* @csspart indicator - the spinner's indicator, a `<circle>` SVG element.
|
|
83
|
+
*
|
|
84
|
+
* @cssproperty [--indicator-color=var(--sigvelo-color-primary-bg)] - The color of the spinner's indicator.
|
|
85
|
+
* @cssproperty [--track-color=color-mix(in oklab, var(--sigvelo-color-neutral-bg), transparent 75%)] - The color of the
|
|
86
|
+
* spinner's track.
|
|
87
|
+
* @cssproperty [--speed=0.75s] - The speed for one complete rotation.
|
|
88
|
+
*
|
|
89
|
+
* @example Default
|
|
90
|
+
* ```html
|
|
91
|
+
* <sigvelo-spinner></sigvelo-spinner>
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @example Changing the size
|
|
95
|
+
* Spinners are sized relative to the current font size. This allows you to place them into many contexts without having to explicitly size them. To change the size, set the `font-size` property on the spinner or an ancestor element.
|
|
96
|
+
*
|
|
97
|
+
* ```html
|
|
98
|
+
* <sigvelo-spinner style="font-size: 1rem;"></sigvelo-spinner>
|
|
99
|
+
* <sigvelo-spinner style="font-size: 2rem;"></sigvelo-spinner>
|
|
100
|
+
* <sigvelo-spinner style="font-size: 3rem;"></sigvelo-spinner>
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* @example Changing the colors
|
|
104
|
+
* To change the spinner's colors, set the `--indicator-color` and `--track-color` custom properties on the spinner.
|
|
105
|
+
*
|
|
106
|
+
* ```html
|
|
107
|
+
* <div style="font-size: 2rem;">
|
|
108
|
+
* <sigvelo-spinner style="--indicator-color: royalblue;"></sigvelo-spinner>
|
|
109
|
+
* <sigvelo-spinner style="--indicator-color: deeppink;"></sigvelo-spinner>
|
|
110
|
+
* <sigvelo-spinner style="--indicator-color: forestgreen;"></sigvelo-spinner>
|
|
111
|
+
* </div>
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @example Using a custom spinner
|
|
115
|
+
* To use a custom spinner, slot in an `<img>` or `<svg>` element. When using custom spinners, the default animation _will not_ be applied. This allows you to use GIF, APNG, or custom SVG images of your own. The spinner will still be correctly recognized by assistive devices as an indeterminate progress bar.
|
|
116
|
+
*
|
|
117
|
+
* Here's an example using an <abbr title="Animated PNG">APNG</abbr> image. You can <a href="/assets/examples/spinner.png" download>download it here</a> if you want to use it.
|
|
118
|
+
*
|
|
119
|
+
* ```html
|
|
120
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
121
|
+
* <img src="/assets/examples/spinner.png" alt=""></img>
|
|
122
|
+
* </sigvelo-spinner>
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* Here are some examples using animated SVGs from the SVG spinners library. These SVGs are available under the MIT License. Note that `fill="currentColor"` has been added to match the text color.
|
|
126
|
+
*
|
|
127
|
+
* ```html
|
|
128
|
+
* <!-- Rotating dots -->
|
|
129
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
130
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><circle cx="12" cy="2.5" r="1.5" opacity=".14"/><circle cx="16.75" cy="3.77" r="1.5" opacity=".29"/><circle cx="20.23" cy="7.25" r="1.5" opacity=".43"/><circle cx="21.50" cy="12.00" r="1.5" opacity=".57"/><circle cx="20.23" cy="16.75" r="1.5" opacity=".71"/><circle cx="16.75" cy="20.23" r="1.5" opacity=".86"/><circle cx="12" cy="21.5" r="1.5"/><animateTransform attributeName="transform" type="rotate" calcMode="discrete" dur="0.75s" values="0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12" repeatCount="indefinite"/></g></svg>
|
|
131
|
+
* </sigvelo-spinner>
|
|
132
|
+
*
|
|
133
|
+
* <!-- Bouncing dots -->
|
|
134
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
135
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="4" cy="12" r="3"><animate id="spinner_qFRN" begin="0;spinner_OcgL.end+0.25s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle><circle cx="12" cy="12" r="3"><animate begin="spinner_qFRN.begin+0.1s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle><circle cx="20" cy="12" r="3"><animate id="spinner_OcgL" begin="spinner_qFRN.begin+0.2s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle></svg>
|
|
136
|
+
* </sigvelo-spinner>
|
|
137
|
+
*
|
|
138
|
+
* <!-- Bars -->
|
|
139
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
140
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="6" width="2.8" height="12"><animate id="spinner_CcmT" begin="0;spinner_IzZB.end-0.1s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="0;spinner_IzZB.end-0.1s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="5.8" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.1s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.1s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="10.6" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.2s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.2s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="15.4" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.3s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.3s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="20.2" y="6" width="2.8" height="12"><animate id="spinner_IzZB" begin="spinner_CcmT.begin+0.4s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.4s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect></svg>
|
|
141
|
+
* </sigvelo-spinner>
|
|
142
|
+
*
|
|
143
|
+
* <!-- Pulse -->
|
|
144
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
145
|
+
* <svg fill="currentColor" width="36" height="36" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.spinner_ngNb{animation:spinner_ZRWK 1.2s cubic-bezier(0.52,.6,.25,.99) infinite}.spinner_6TBP{animation-delay:.6s}@keyframes spinner_ZRWK{0%{transform:translate(12px,12px) scale(0);opacity:1}100%{transform:translate(0,0) scale(1);opacity:0}}</style><path class="spinner_ngNb" d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,20a9,9,0,1,1,9-9A9,9,0,0,1,12,21Z" transform="translate(12, 12) scale(0)"/><path class="spinner_ngNb spinner_6TBP" d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,20a9,9,0,1,1,9-9A9,9,0,0,1,12,21Z" transform="translate(12, 12) scale(0)"/></svg>
|
|
146
|
+
* </sigvelo-spinner>
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
var SigveloSpinner = class extends SigveloElement {
|
|
150
|
+
constructor(..._args) {
|
|
151
|
+
super(..._args);
|
|
152
|
+
this.localize = new Localize(this);
|
|
153
|
+
this.label = "";
|
|
154
|
+
}
|
|
155
|
+
static {
|
|
156
|
+
this.styles = [hostStyles, spinner_styles_default];
|
|
157
|
+
}
|
|
158
|
+
firstUpdated() {
|
|
159
|
+
const label = this.label || this.localize.term("loading");
|
|
160
|
+
this.setAttribute("role", "progressbar");
|
|
161
|
+
this.setAttribute("aria-label", label);
|
|
162
|
+
}
|
|
163
|
+
render() {
|
|
164
|
+
return html`
|
|
165
|
+
<slot>
|
|
166
|
+
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
167
|
+
<circle id="track" part="track" cx="12" cy="12" r="10" fill="none" stroke-width="3" />
|
|
168
|
+
<circle
|
|
169
|
+
id="indicator"
|
|
170
|
+
part="indicator"
|
|
171
|
+
cx="12"
|
|
172
|
+
cy="12"
|
|
173
|
+
r="10"
|
|
174
|
+
fill="none"
|
|
175
|
+
stroke-width="3"
|
|
176
|
+
/>
|
|
177
|
+
</svg>
|
|
178
|
+
</slot>
|
|
179
|
+
`;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
__decorate([property({
|
|
183
|
+
type: String,
|
|
184
|
+
attribute: "label"
|
|
185
|
+
})], SigveloSpinner.prototype, "label", void 0);
|
|
186
|
+
customElements.define("sigvelo-spinner", SigveloSpinner);
|
|
187
|
+
//#endregion
|
|
188
|
+
export { SigveloSpinner as t };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { CSSResultGroup } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/spinner/spinner.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-spinner>
|
|
7
|
+
*
|
|
8
|
+
* @summary Tells the user that content is loading or a request is processing in the background.
|
|
9
|
+
* @tag sigvelo-spinner
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/spinner
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @slot - A custom spinner to show in lieu of the default one. Works best with `<img>` and `<svg>` elements. Custom
|
|
15
|
+
* spinners will not be animated, allowing you to use animated GIF, APNG, and SVG animations without conflict.
|
|
16
|
+
*
|
|
17
|
+
* @csspart track - the spinner's track, a `<circle>` SVG element.
|
|
18
|
+
* @csspart indicator - the spinner's indicator, a `<circle>` SVG element.
|
|
19
|
+
*
|
|
20
|
+
* @cssproperty [--indicator-color=var(--sigvelo-color-primary-bg)] - The color of the spinner's indicator.
|
|
21
|
+
* @cssproperty [--track-color=color-mix(in oklab, var(--sigvelo-color-neutral-bg), transparent 75%)] - The color of the
|
|
22
|
+
* spinner's track.
|
|
23
|
+
* @cssproperty [--speed=0.75s] - The speed for one complete rotation.
|
|
24
|
+
*
|
|
25
|
+
* @example Default
|
|
26
|
+
* ```html
|
|
27
|
+
* <sigvelo-spinner></sigvelo-spinner>
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example Changing the size
|
|
31
|
+
* Spinners are sized relative to the current font size. This allows you to place them into many contexts without having to explicitly size them. To change the size, set the `font-size` property on the spinner or an ancestor element.
|
|
32
|
+
*
|
|
33
|
+
* ```html
|
|
34
|
+
* <sigvelo-spinner style="font-size: 1rem;"></sigvelo-spinner>
|
|
35
|
+
* <sigvelo-spinner style="font-size: 2rem;"></sigvelo-spinner>
|
|
36
|
+
* <sigvelo-spinner style="font-size: 3rem;"></sigvelo-spinner>
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example Changing the colors
|
|
40
|
+
* To change the spinner's colors, set the `--indicator-color` and `--track-color` custom properties on the spinner.
|
|
41
|
+
*
|
|
42
|
+
* ```html
|
|
43
|
+
* <div style="font-size: 2rem;">
|
|
44
|
+
* <sigvelo-spinner style="--indicator-color: royalblue;"></sigvelo-spinner>
|
|
45
|
+
* <sigvelo-spinner style="--indicator-color: deeppink;"></sigvelo-spinner>
|
|
46
|
+
* <sigvelo-spinner style="--indicator-color: forestgreen;"></sigvelo-spinner>
|
|
47
|
+
* </div>
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example Using a custom spinner
|
|
51
|
+
* To use a custom spinner, slot in an `<img>` or `<svg>` element. When using custom spinners, the default animation _will not_ be applied. This allows you to use GIF, APNG, or custom SVG images of your own. The spinner will still be correctly recognized by assistive devices as an indeterminate progress bar.
|
|
52
|
+
*
|
|
53
|
+
* Here's an example using an <abbr title="Animated PNG">APNG</abbr> image. You can <a href="/assets/examples/spinner.png" download>download it here</a> if you want to use it.
|
|
54
|
+
*
|
|
55
|
+
* ```html
|
|
56
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
57
|
+
* <img src="/assets/examples/spinner.png" alt=""></img>
|
|
58
|
+
* </sigvelo-spinner>
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* Here are some examples using animated SVGs from the SVG spinners library. These SVGs are available under the MIT License. Note that `fill="currentColor"` has been added to match the text color.
|
|
62
|
+
*
|
|
63
|
+
* ```html
|
|
64
|
+
* <!-- Rotating dots -->
|
|
65
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
66
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><circle cx="12" cy="2.5" r="1.5" opacity=".14"/><circle cx="16.75" cy="3.77" r="1.5" opacity=".29"/><circle cx="20.23" cy="7.25" r="1.5" opacity=".43"/><circle cx="21.50" cy="12.00" r="1.5" opacity=".57"/><circle cx="20.23" cy="16.75" r="1.5" opacity=".71"/><circle cx="16.75" cy="20.23" r="1.5" opacity=".86"/><circle cx="12" cy="21.5" r="1.5"/><animateTransform attributeName="transform" type="rotate" calcMode="discrete" dur="0.75s" values="0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12" repeatCount="indefinite"/></g></svg>
|
|
67
|
+
* </sigvelo-spinner>
|
|
68
|
+
*
|
|
69
|
+
* <!-- Bouncing dots -->
|
|
70
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
71
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="4" cy="12" r="3"><animate id="spinner_qFRN" begin="0;spinner_OcgL.end+0.25s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle><circle cx="12" cy="12" r="3"><animate begin="spinner_qFRN.begin+0.1s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle><circle cx="20" cy="12" r="3"><animate id="spinner_OcgL" begin="spinner_qFRN.begin+0.2s" attributeName="cy" calcMode="spline" dur="0.6s" values="12;6;12" keySplines=".33,.66,.66,1;.33,0,.66,.33"/></circle></svg>
|
|
72
|
+
* </sigvelo-spinner>
|
|
73
|
+
*
|
|
74
|
+
* <!-- Bars -->
|
|
75
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
76
|
+
* <svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="6" width="2.8" height="12"><animate id="spinner_CcmT" begin="0;spinner_IzZB.end-0.1s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="0;spinner_IzZB.end-0.1s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="5.8" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.1s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.1s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="10.6" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.2s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.2s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="15.4" y="6" width="2.8" height="12"><animate begin="spinner_CcmT.begin+0.3s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.3s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect><rect x="20.2" y="6" width="2.8" height="12"><animate id="spinner_IzZB" begin="spinner_CcmT.begin+0.4s" attributeName="y" calcMode="spline" dur="0.6s" values="6;1;6" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/><animate begin="spinner_CcmT.begin+0.4s" attributeName="height" calcMode="spline" dur="0.6s" values="12;22;12" keySplines=".36,.61,.3,.98;.36,.61,.3,.98"/></rect></svg>
|
|
77
|
+
* </sigvelo-spinner>
|
|
78
|
+
*
|
|
79
|
+
* <!-- Pulse -->
|
|
80
|
+
* <sigvelo-spinner style="font-size: 2rem;">
|
|
81
|
+
* <svg fill="currentColor" width="36" height="36" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><style>.spinner_ngNb{animation:spinner_ZRWK 1.2s cubic-bezier(0.52,.6,.25,.99) infinite}.spinner_6TBP{animation-delay:.6s}@keyframes spinner_ZRWK{0%{transform:translate(12px,12px) scale(0);opacity:1}100%{transform:translate(0,0) scale(1);opacity:0}}</style><path class="spinner_ngNb" d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,20a9,9,0,1,1,9-9A9,9,0,0,1,12,21Z" transform="translate(12, 12) scale(0)"/><path class="spinner_ngNb spinner_6TBP" d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,20a9,9,0,1,1,9-9A9,9,0,0,1,12,21Z" transform="translate(12, 12) scale(0)"/></svg>
|
|
82
|
+
* </sigvelo-spinner>
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
declare class SigveloSpinner extends SigveloElement {
|
|
86
|
+
static styles: CSSResultGroup;
|
|
87
|
+
private localize;
|
|
88
|
+
/** A custom label for screen readers. */
|
|
89
|
+
label: string;
|
|
90
|
+
firstUpdated(): void;
|
|
91
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
92
|
+
}
|
|
93
|
+
declare global {
|
|
94
|
+
interface HTMLElementTagNameMap {
|
|
95
|
+
"sigvelo-spinner": SigveloSpinner;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//#endregion
|
|
99
|
+
export { SigveloSpinner as t };
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import { CSSResultGroup, PropertyValues } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
|
|
4
|
+
//#region src/components/splitter/splitter.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* <sigvelo-splitter>
|
|
7
|
+
*
|
|
8
|
+
* @summary A draggable splitter that separates two panels, allowing users to resize them.
|
|
9
|
+
* @tag sigvelo-splitter
|
|
10
|
+
* @documentation https://design-system.sigvelo.com/docs/components/splitter
|
|
11
|
+
* @status stable
|
|
12
|
+
* @since 1.0
|
|
13
|
+
*
|
|
14
|
+
* @slot start - The content for the primary (start) panel.
|
|
15
|
+
* @slot end - The content for the secondary (end) panel.
|
|
16
|
+
* @slot handle - The draggable handle that separates the panels.
|
|
17
|
+
*
|
|
18
|
+
* @event sigvelo-resize - Dispatched when the splitter's handle is moved.
|
|
19
|
+
*
|
|
20
|
+
* @csspart start - The content to show in the first (start) panel.
|
|
21
|
+
* @csspart end - The content to show in the second (end) panel.
|
|
22
|
+
* @csspart divider - The draggable divider that separates the panels.
|
|
23
|
+
* @csspart handle - The visual handle within the divider (only present when not using the `handle` slot).
|
|
24
|
+
*
|
|
25
|
+
* @cssstate disabled - Applied when the splitter is disabled.
|
|
26
|
+
* @cssstate dragging - Applied when the splitter is being dragged.
|
|
27
|
+
* @cssstate focused - Applied when the splitter has focus.
|
|
28
|
+
*
|
|
29
|
+
* @cssproperty [--divider-min-position=0%] - Minimum position of the divider (as a percentage or pixel value).
|
|
30
|
+
* @cssproperty [--divider-max-position=100%] - Maximum position of the divider (as a percentage or pixel value).
|
|
31
|
+
* @cssproperty [--divider-draggable-area=1rem] - The size of the divider's draggable area (can be larger than the
|
|
32
|
+
* visible area).
|
|
33
|
+
* @cssproperty [--divider-width=0.125rem] - The width of the visual divider.
|
|
34
|
+
*
|
|
35
|
+
* @example Default
|
|
36
|
+
* Splitters follow the ARIA APG window splitter pattern for accessibility. They consist of a draggable separator positioned between two resizable panels.
|
|
37
|
+
*
|
|
38
|
+
* ```html
|
|
39
|
+
* <sigvelo-splitter id="splitter__overview">
|
|
40
|
+
* <div slot="start">Start panel</div>
|
|
41
|
+
* <div slot="end">End panel</div>
|
|
42
|
+
* </sigvelo-splitter>
|
|
43
|
+
*
|
|
44
|
+
* <style>
|
|
45
|
+
* #splitter__overview {
|
|
46
|
+
* height: 200px;
|
|
47
|
+
*
|
|
48
|
+
* <!-- Center the text for the demo -->
|
|
49
|
+
* [slot="start"],
|
|
50
|
+
* [slot="end"] {
|
|
51
|
+
* display: flex;
|
|
52
|
+
* align-items: center;
|
|
53
|
+
* justify-content: center;
|
|
54
|
+
* height: 100%;
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* </style>
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
*
|
|
61
|
+
*
|
|
62
|
+
* You can set the initial position of the divider using the `position` attribute or update it programmatically via JavaScript. The value is a number from 0 to 1 representing the divider's position as a percentage.
|
|
63
|
+
*
|
|
64
|
+
* ```html
|
|
65
|
+
* <sigvelo-splitter position=".75" id="splitter__position">
|
|
66
|
+
* <div slot="start">Start panel</div>
|
|
67
|
+
* <div slot="end">End panel</div>
|
|
68
|
+
* </sigvelo-splitter>
|
|
69
|
+
*
|
|
70
|
+
* <style>
|
|
71
|
+
* #splitter__position {
|
|
72
|
+
* height: 200px;
|
|
73
|
+
*
|
|
74
|
+
* <!-- Center the text for the demo -->
|
|
75
|
+
* [slot="start"],
|
|
76
|
+
* [slot="end"] {
|
|
77
|
+
* display: flex;
|
|
78
|
+
* align-items: center;
|
|
79
|
+
* justify-content: center;
|
|
80
|
+
* height: 100%;
|
|
81
|
+
* }
|
|
82
|
+
* }
|
|
83
|
+
* </style>
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @example Constraining the divider
|
|
87
|
+
* Set the `--divider-min-position` and `--divider-max-position` custom properties to limit the range of the divider's movement. In this example, the divider is constrained between 25% and 75% of the splitter's size.
|
|
88
|
+
*
|
|
89
|
+
* ```html
|
|
90
|
+
* <sigvelo-splitter style="--divider-min-position: 25%; --divider-max-position: 75%;" id="splitter__constraints">
|
|
91
|
+
* <div slot="start">Start panel</div>
|
|
92
|
+
* <div slot="end">End panel</div>
|
|
93
|
+
* </sigvelo-splitter>
|
|
94
|
+
*
|
|
95
|
+
* <style>
|
|
96
|
+
* #splitter__constraints {
|
|
97
|
+
* height: 200px;
|
|
98
|
+
*
|
|
99
|
+
* <!-- Center the text for the demo -->
|
|
100
|
+
* [slot="start"],
|
|
101
|
+
* [slot="end"] {
|
|
102
|
+
* display: flex;
|
|
103
|
+
* align-items: center;
|
|
104
|
+
* justify-content: center;
|
|
105
|
+
* height: 100%;
|
|
106
|
+
* }
|
|
107
|
+
* }
|
|
108
|
+
* </style>
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @example Changing the orientation
|
|
112
|
+
* Set the `orientation` attribute to `vertical` to change the splitter's orientation.
|
|
113
|
+
*
|
|
114
|
+
* ```html
|
|
115
|
+
* <sigvelo-splitter orientation="vertical" id="splitter__orientation">
|
|
116
|
+
* <div slot="start">Start panel</div>
|
|
117
|
+
* <div slot="end">End panel</div>
|
|
118
|
+
* </sigvelo-splitter>
|
|
119
|
+
*
|
|
120
|
+
* <style>
|
|
121
|
+
* #splitter__orientation {
|
|
122
|
+
* height: 400px;
|
|
123
|
+
*
|
|
124
|
+
* <!-- Center the text for the demo -->
|
|
125
|
+
* [slot="start"],
|
|
126
|
+
* [slot="end"] {
|
|
127
|
+
* display: flex;
|
|
128
|
+
* align-items: center;
|
|
129
|
+
* justify-content: center;
|
|
130
|
+
* height: 100%;
|
|
131
|
+
* }
|
|
132
|
+
* }
|
|
133
|
+
* </style>
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @example Snapping
|
|
137
|
+
* Set the `snap` attribute to a space-separated list of positions at which to snap. Only percentages are supported, e.g. `snap="25% 50% 75%"`. Use the `snap-threshold` attribute to change the proximity at which snapping occurs.
|
|
138
|
+
*
|
|
139
|
+
* ```html
|
|
140
|
+
* <div id="splitter__snap">
|
|
141
|
+
* <sigvelo-splitter snap="25% 50% 75%">
|
|
142
|
+
* <div slot="start">Start panel</div>
|
|
143
|
+
* <div slot="end">End panel</div>
|
|
144
|
+
* </sigvelo-splitter>
|
|
145
|
+
*
|
|
146
|
+
* <div class="snap-dots">
|
|
147
|
+
* <span class="snap-dot" style="left: 25%;"></span>
|
|
148
|
+
* <span class="snap-dot" style="left: 50%;"></span>
|
|
149
|
+
* <span class="snap-dot" style="left: 75%;"></span>
|
|
150
|
+
* </div>
|
|
151
|
+
* </div>
|
|
152
|
+
*
|
|
153
|
+
* <style>
|
|
154
|
+
* #splitter__snap {
|
|
155
|
+
* sigvelo-splitter {
|
|
156
|
+
* height: 200px;
|
|
157
|
+
* }
|
|
158
|
+
*
|
|
159
|
+
* <!-- Center the text for the demo -->
|
|
160
|
+
* [slot="start"],
|
|
161
|
+
* [slot="end"] {
|
|
162
|
+
* display: flex;
|
|
163
|
+
* align-items: center;
|
|
164
|
+
* justify-content: center;
|
|
165
|
+
* height: 100%;
|
|
166
|
+
* }
|
|
167
|
+
*
|
|
168
|
+
* .snap-dots {
|
|
169
|
+
* position: relative;
|
|
170
|
+
* width: 100%;
|
|
171
|
+
* margin-top: .5rem;
|
|
172
|
+
* }
|
|
173
|
+
*
|
|
174
|
+
* .snap-dot {
|
|
175
|
+
* position: absolute;
|
|
176
|
+
* width: 4px;
|
|
177
|
+
* height: 4px;
|
|
178
|
+
* background-color: gray;
|
|
179
|
+
* border-radius: var(--sigvelo-radius-circle);
|
|
180
|
+
* transform: translateX(-50%);
|
|
181
|
+
* }
|
|
182
|
+
* }
|
|
183
|
+
* </style>
|
|
184
|
+
* ```
|
|
185
|
+
*
|
|
186
|
+
* @example Disabling
|
|
187
|
+
* When the `disabled` attribute is set, the divider cannot be dragged or focused and the handle is hidden, though the divider line remains visible.
|
|
188
|
+
*
|
|
189
|
+
* ```html
|
|
190
|
+
* <sigvelo-splitter disabled id="splitter__disabled">
|
|
191
|
+
* <div slot="start">Start panel</div>
|
|
192
|
+
* <div slot="end">End panel</div>
|
|
193
|
+
* </sigvelo-splitter>
|
|
194
|
+
*
|
|
195
|
+
* <style>
|
|
196
|
+
* #splitter__disabled {
|
|
197
|
+
* height: 200px;
|
|
198
|
+
*
|
|
199
|
+
* <!-- Center the text for the demo -->
|
|
200
|
+
* [slot="start"],
|
|
201
|
+
* [slot="end"] {
|
|
202
|
+
* display: flex;
|
|
203
|
+
* align-items: center;
|
|
204
|
+
* justify-content: center;
|
|
205
|
+
* height: 100%;
|
|
206
|
+
* }
|
|
207
|
+
* }
|
|
208
|
+
* </style>
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @example Nested splitters
|
|
212
|
+
* Splitters can be nested to create advanced layouts.
|
|
213
|
+
*
|
|
214
|
+
* ```html
|
|
215
|
+
* <sigvelo-splitter id="splitter__nested">
|
|
216
|
+
* <div slot="start">
|
|
217
|
+
* Panel 1
|
|
218
|
+
* </div>
|
|
219
|
+
* <div slot="end">
|
|
220
|
+
* <sigvelo-splitter orientation="vertical">
|
|
221
|
+
* <div slot="start">
|
|
222
|
+
* Panel 2
|
|
223
|
+
* </div>
|
|
224
|
+
* <div slot="end">
|
|
225
|
+
* Panel 3
|
|
226
|
+
* </div>
|
|
227
|
+
* </sigvelo-splitter>
|
|
228
|
+
* </div>
|
|
229
|
+
* </sigvelo-splitter>
|
|
230
|
+
*
|
|
231
|
+
* <style>
|
|
232
|
+
* #splitter__nested {
|
|
233
|
+
* height: 300px;
|
|
234
|
+
*
|
|
235
|
+
* sigvelo-splitter {
|
|
236
|
+
* height: 100%;
|
|
237
|
+
* border-radius: 0;
|
|
238
|
+
* border: none;
|
|
239
|
+
*
|
|
240
|
+
* > div {
|
|
241
|
+
* height: 100%;
|
|
242
|
+
* }
|
|
243
|
+
* }
|
|
244
|
+
*
|
|
245
|
+
* <!-- Center the text for the demo -->
|
|
246
|
+
* [slot="start"],
|
|
247
|
+
* [slot="end"] {
|
|
248
|
+
* display: flex;
|
|
249
|
+
* align-items: center;
|
|
250
|
+
* justify-content: center;
|
|
251
|
+
* height: 100%;
|
|
252
|
+
* }
|
|
253
|
+
* }
|
|
254
|
+
* </style>
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* @example Styling the divider
|
|
258
|
+
* You can customize the divider by slotting content such as an icon into the `handle` slot. To change the divider's width, set the `--divider-width` custom property.
|
|
259
|
+
*
|
|
260
|
+
* ```html
|
|
261
|
+
* <sigvelo-splitter style="height: 200px;" id="splitter__custom-divider">
|
|
262
|
+
* <div slot="start">Start panel</div>
|
|
263
|
+
* <sigvelo-icon slot="handle" name="grip-vertical"></sigvelo-icon>
|
|
264
|
+
* <div slot="end">End panel</div>
|
|
265
|
+
* </sigvelo-splitter>
|
|
266
|
+
*
|
|
267
|
+
* <style>
|
|
268
|
+
* #splitter__custom-divider {
|
|
269
|
+
* --divider-width: 1rem;
|
|
270
|
+
*
|
|
271
|
+
* <!-- Center the text for the demo -->
|
|
272
|
+
* [slot="start"],
|
|
273
|
+
* [slot="end"] {
|
|
274
|
+
* display: flex;
|
|
275
|
+
* align-items: center;
|
|
276
|
+
* justify-content: center;
|
|
277
|
+
* height: 100%;
|
|
278
|
+
* }
|
|
279
|
+
* }
|
|
280
|
+
* </style>
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
declare class SigveloSplitter extends SigveloElement {
|
|
284
|
+
static styles: CSSResultGroup;
|
|
285
|
+
private localize;
|
|
286
|
+
private dragHandler?;
|
|
287
|
+
private previousPosition;
|
|
288
|
+
private dragStartPosition;
|
|
289
|
+
private dragStartClientX;
|
|
290
|
+
private dragStartClientY;
|
|
291
|
+
private divider;
|
|
292
|
+
isCollapsed: boolean;
|
|
293
|
+
isDragging: boolean;
|
|
294
|
+
/** The current position of the divider as a decimal (0-1). */
|
|
295
|
+
position: number;
|
|
296
|
+
/** The orientation of the splitter. */
|
|
297
|
+
orientation: "horizontal" | "vertical";
|
|
298
|
+
/** Disables the splitter, preventing it from being focused and resized. */
|
|
299
|
+
disabled: boolean;
|
|
300
|
+
/** A space-separated list of percentage snap points, e.g. "25% 50% 75%". */
|
|
301
|
+
snap: string;
|
|
302
|
+
/** The maximum distance (in pixels) within which the divider will snap to a specified snap point. */
|
|
303
|
+
snapThreshold: number;
|
|
304
|
+
firstUpdated(): void;
|
|
305
|
+
updated(changedProperties: PropertyValues<this>): void;
|
|
306
|
+
disconnectedCallback(): void;
|
|
307
|
+
private handleFocus;
|
|
308
|
+
private handleBlur;
|
|
309
|
+
private getSnapPoints;
|
|
310
|
+
private snapToNearest;
|
|
311
|
+
private getDividerConstraint;
|
|
312
|
+
private clampPosition;
|
|
313
|
+
private setupDragging;
|
|
314
|
+
private updateGridTemplate;
|
|
315
|
+
private updateAriaValue;
|
|
316
|
+
private handleKeydown;
|
|
317
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
318
|
+
}
|
|
319
|
+
declare global {
|
|
320
|
+
interface HTMLElementTagNameMap {
|
|
321
|
+
"sigvelo-splitter": SigveloSplitter;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
//#endregion
|
|
325
|
+
export { SigveloSplitter as t };
|