@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,486 @@
|
|
|
1
|
+
import { Localize } from "./utilities/localize.js";
|
|
2
|
+
import { t as __decorate } from "./decorate-DcF3lt7P.js";
|
|
3
|
+
import { css } 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
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
8
|
+
import { html as html$1 } from "lit/static-html.js";
|
|
9
|
+
import { SigveloBlurEvent, SigveloFocusEvent } from "@mcp-b/wc-support/events/form";
|
|
10
|
+
//#region src/components/navicon/navicon.styles.ts
|
|
11
|
+
var navicon_styles_default = css`
|
|
12
|
+
:host {
|
|
13
|
+
--dot-size: 0.125em;
|
|
14
|
+
--line-width: 0.0625em;
|
|
15
|
+
--line-transition-duration: var(--sigvelo-motion-duration-presence);
|
|
16
|
+
--line-transition-easing: var(--sigvelo-ease-standard);
|
|
17
|
+
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
position: relative;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
width: 1em;
|
|
23
|
+
height: 1em;
|
|
24
|
+
padding: 0;
|
|
25
|
+
border: none;
|
|
26
|
+
border-radius: var(--sigvelo-radius-md);
|
|
27
|
+
background: none;
|
|
28
|
+
color: inherit;
|
|
29
|
+
vertical-align: middle;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
touch-action: manipulation;
|
|
32
|
+
user-select: none;
|
|
33
|
+
-webkit-user-select: none;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Faster but not instant when reduced motion is enabled */
|
|
37
|
+
@media (prefers-reduced-motion: reduce) {
|
|
38
|
+
:host {
|
|
39
|
+
--line-transition-duration: var(--sigvelo-motion-duration-interaction);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:host(:focus) {
|
|
44
|
+
outline: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:host(:focus-visible) {
|
|
48
|
+
outline: var(--sigvelo-focus-ring);
|
|
49
|
+
outline-offset: var(--sigvelo-focus-offset);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Disabled */
|
|
53
|
+
:host(:state(disabled)) {
|
|
54
|
+
cursor: not-allowed;
|
|
55
|
+
opacity: 0.5;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Lines container */
|
|
59
|
+
.lines {
|
|
60
|
+
display: flex;
|
|
61
|
+
position: relative;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
align-items: center;
|
|
64
|
+
justify-content: center;
|
|
65
|
+
width: 100%;
|
|
66
|
+
height: 100%;
|
|
67
|
+
pointer-events: none; /* Ensure clicks pass through to host */
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Individual lines */
|
|
71
|
+
.line {
|
|
72
|
+
display: block;
|
|
73
|
+
position: absolute;
|
|
74
|
+
width: 62.5%;
|
|
75
|
+
height: round(var(--line-width), 1px);
|
|
76
|
+
transform-origin: center;
|
|
77
|
+
border-radius: var(--sigvelo-radius-full);
|
|
78
|
+
background-color: currentColor;
|
|
79
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Hamburger symbol (3 lines) */
|
|
83
|
+
.lines.hamburger {
|
|
84
|
+
.top {
|
|
85
|
+
top: 25%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.middle {
|
|
89
|
+
top: 50%;
|
|
90
|
+
transform: translateY(-50%);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.bottom {
|
|
94
|
+
bottom: 25%;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
:host(:state(expanded)) .lines.hamburger .top {
|
|
99
|
+
top: 50%;
|
|
100
|
+
transform: translateY(-50%) rotate(45deg);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host(:state(expanded)) .lines.hamburger .middle {
|
|
104
|
+
transform: translateY(-50%) scale(0);
|
|
105
|
+
opacity: 0;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host(:state(expanded)) .lines.hamburger .bottom {
|
|
109
|
+
bottom: 50%;
|
|
110
|
+
transform: translateY(50%) rotate(-45deg);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Equals symbol (2 lines) */
|
|
114
|
+
.lines.equals {
|
|
115
|
+
.top {
|
|
116
|
+
top: 35%;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.bottom {
|
|
120
|
+
bottom: 35%;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
:host(:state(expanded)) .lines.equals .top {
|
|
125
|
+
top: 50%;
|
|
126
|
+
transform: translateY(-50%) rotate(45deg);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
:host(:state(expanded)) .lines.equals .bottom {
|
|
130
|
+
bottom: 50%;
|
|
131
|
+
transform: translateY(50%) rotate(-45deg);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Vertical dots symbol (3 dots arranged vertically) */
|
|
135
|
+
.dots.vertical-dots {
|
|
136
|
+
.top {
|
|
137
|
+
position: absolute;
|
|
138
|
+
top: 18%;
|
|
139
|
+
left: 50%;
|
|
140
|
+
width: round(var(--dot-size), 1px);
|
|
141
|
+
height: round(var(--dot-size), 1px);
|
|
142
|
+
transform: translateX(-50%); /* Center horizontally */
|
|
143
|
+
border-radius: 50%;
|
|
144
|
+
background-color: currentColor;
|
|
145
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.middle {
|
|
149
|
+
position: absolute;
|
|
150
|
+
top: 50%;
|
|
151
|
+
left: 50%;
|
|
152
|
+
width: round(var(--dot-size), 1px);
|
|
153
|
+
height: round(var(--dot-size), 1px);
|
|
154
|
+
transform: translate(-50%, -50%);
|
|
155
|
+
border-radius: 50%;
|
|
156
|
+
background-color: currentColor;
|
|
157
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.bottom {
|
|
161
|
+
position: absolute;
|
|
162
|
+
bottom: 18%;
|
|
163
|
+
left: 50%;
|
|
164
|
+
width: round(var(--dot-size), 1px);
|
|
165
|
+
height: round(var(--dot-size), 1px);
|
|
166
|
+
transform: translateX(-50%); /* Center horizontally */
|
|
167
|
+
border-radius: 50%;
|
|
168
|
+
background-color: currentColor;
|
|
169
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* Expanded state: vertical dots transform into X */
|
|
174
|
+
:host(:state(expanded)) .dots.vertical-dots .top {
|
|
175
|
+
top: 50%;
|
|
176
|
+
width: 62.5%;
|
|
177
|
+
height: round(var(--line-width), 1px);
|
|
178
|
+
transform: translate(-50%, -50%) rotate(45deg); /* Maintain centering with rotation */
|
|
179
|
+
border-radius: var(--sigvelo-radius-full);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
:host(:state(expanded)) .dots.vertical-dots .middle {
|
|
183
|
+
transform: translate(-50%, -50%) scale(0); /* Maintain centering while scaling */
|
|
184
|
+
opacity: 0;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
:host(:state(expanded)) .dots.vertical-dots .bottom {
|
|
188
|
+
bottom: 50%;
|
|
189
|
+
width: 62.5%;
|
|
190
|
+
height: round(var(--line-width), 1px);
|
|
191
|
+
transform: translate(-50%, 50%) rotate(-45deg); /* Maintain centering with rotation */
|
|
192
|
+
border-radius: var(--sigvelo-radius-full);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Horizontal dots symbol (3 dots arranged horizontally) */
|
|
196
|
+
.dots.horizontal-dots {
|
|
197
|
+
.top {
|
|
198
|
+
position: absolute;
|
|
199
|
+
top: 50%;
|
|
200
|
+
left: 18%;
|
|
201
|
+
width: round(var(--dot-size), 1px);
|
|
202
|
+
height: round(var(--dot-size), 1px);
|
|
203
|
+
transform: translateY(-50%); /* Center vertically */
|
|
204
|
+
border-radius: 50%;
|
|
205
|
+
background-color: currentColor;
|
|
206
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.middle {
|
|
210
|
+
position: absolute;
|
|
211
|
+
top: 50%;
|
|
212
|
+
left: 50%;
|
|
213
|
+
width: round(var(--dot-size), 1px);
|
|
214
|
+
height: round(var(--dot-size), 1px);
|
|
215
|
+
transform: translate(-50%, -50%);
|
|
216
|
+
border-radius: 50%;
|
|
217
|
+
background-color: currentColor;
|
|
218
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.bottom {
|
|
222
|
+
position: absolute;
|
|
223
|
+
top: 50%;
|
|
224
|
+
right: 18%;
|
|
225
|
+
width: round(var(--dot-size), 1px);
|
|
226
|
+
height: round(var(--dot-size), 1px);
|
|
227
|
+
transform: translateY(-50%); /* Center vertically */
|
|
228
|
+
border-radius: 50%;
|
|
229
|
+
background-color: currentColor;
|
|
230
|
+
transition: all var(--line-transition-duration) var(--line-transition-easing);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* Expanded state: horizontal dots transform into X */
|
|
235
|
+
:host(:state(expanded)) .dots.horizontal-dots .top {
|
|
236
|
+
top: 50%;
|
|
237
|
+
left: 50%;
|
|
238
|
+
width: 62.5%;
|
|
239
|
+
height: round(var(--line-width), 1px);
|
|
240
|
+
transform: translate(-50%, -50%) rotate(45deg); /* Maintain centering with rotation */
|
|
241
|
+
border-radius: var(--sigvelo-radius-full);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
:host(:state(expanded)) .dots.horizontal-dots .middle {
|
|
245
|
+
transform: translate(-50%, -50%) scale(0); /* Maintain centering while scaling */
|
|
246
|
+
opacity: 0;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
:host(:state(expanded)) .dots.horizontal-dots .bottom {
|
|
250
|
+
top: 50%;
|
|
251
|
+
right: 50%;
|
|
252
|
+
width: 62.5%;
|
|
253
|
+
height: round(var(--line-width), 1px);
|
|
254
|
+
transform: translate(50%, -50%) rotate(-45deg); /* Maintain centering with rotation */
|
|
255
|
+
border-radius: var(--sigvelo-radius-full);
|
|
256
|
+
}
|
|
257
|
+
`;
|
|
258
|
+
//#endregion
|
|
259
|
+
//#region src/components/navicon/navicon.ts
|
|
260
|
+
/**
|
|
261
|
+
* <sigvelo-navicon>
|
|
262
|
+
*
|
|
263
|
+
* @summary A navicon, or "hamburger button", is a special button used to control mobile navigation menus.
|
|
264
|
+
* @tag sigvelo-navicon
|
|
265
|
+
* @documentation https://design-system.sigvelo.com/docs/components/navicon
|
|
266
|
+
* @status stable
|
|
267
|
+
* @since 1.0
|
|
268
|
+
*
|
|
269
|
+
* @event sigvelo-blur - Emitted when the navicon loses focus. This event does not bubble.
|
|
270
|
+
* @event sigvelo-focus - Emitted when the navicon receives focus. This event does not bubble.
|
|
271
|
+
*
|
|
272
|
+
* @csspart line - The individual lines that make up the navicon symbol.
|
|
273
|
+
* @csspart line-top - The top line.
|
|
274
|
+
* @csspart line-middle - The middle line (hamburger symbol only).
|
|
275
|
+
* @csspart line-bottom - The bottom line.
|
|
276
|
+
*
|
|
277
|
+
* @cssstate expanded - Applied when the navicon is toggled on.
|
|
278
|
+
* @cssstate disabled - Applied when the navicon is disabled.
|
|
279
|
+
* @cssstate focused - Applied when the navicon has focus.
|
|
280
|
+
*
|
|
281
|
+
* @cssproperty [--dot-size=0.125em] - The width of each dot. Available when symbol is `vertical-dots` or `horizontal-dots`.
|
|
282
|
+
* @cssproperty [--line-width=0.0625em] - The width of each line. Available when symbol is `hamburger` or `equals`.
|
|
283
|
+
* @cssproperty [--line-transition-duration=200ms] - The duration of the symbol's animation.
|
|
284
|
+
* @cssproperty [--line-transition-easing=cubic-bezier(0.4, 0, 0.2, 1)] - The easing to use for the symbol's animation.
|
|
285
|
+
* @cssproperty [--dot-size=0.125em] - The size of the dots in the dots symbol.
|
|
286
|
+
*
|
|
287
|
+
* @example Default
|
|
288
|
+
* ```html
|
|
289
|
+
* <sigvelo-navicon label="Toggle menu" style="font-size: 1.75rem;"></sigvelo-navicon>
|
|
290
|
+
* ```
|
|
291
|
+
*
|
|
292
|
+
* @example Associating a menu
|
|
293
|
+
* To associate the navicon with a navigation menu, add `for="id"`, where `id` is the ID of the nav menu that will show/hide when toggled. This tells assistive devices which element the navicon controls. The nav menu must exist in the same document as the navicon to work correctly.
|
|
294
|
+
*
|
|
295
|
+
* ```html
|
|
296
|
+
* <sigvelo-navicon for="nav-menu"></sigvelo-navicon>
|
|
297
|
+
*
|
|
298
|
+
* <!-- The navicon will toggle this element -->
|
|
299
|
+
* <nav id="nav-menu">
|
|
300
|
+
* ...
|
|
301
|
+
* </nav>
|
|
302
|
+
* ```
|
|
303
|
+
*
|
|
304
|
+
* **The navicon does not show or hide the menu for you.** You must add your own JavaScript and/or CSS to toggle it. You can listen for the `click` event and manage things with JavaScript.
|
|
305
|
+
*
|
|
306
|
+
* ```js
|
|
307
|
+
* const navicon = document.querySelector('sigvelo-navicon');
|
|
308
|
+
*
|
|
309
|
+
* navicon.addEventListener('click', () => {
|
|
310
|
+
* if (navicon.expanded) {
|
|
311
|
+
* // Show the menu
|
|
312
|
+
* } else {
|
|
313
|
+
* // Hide the menu
|
|
314
|
+
* }
|
|
315
|
+
* });
|
|
316
|
+
* ```
|
|
317
|
+
*
|
|
318
|
+
* For a CSS-only solution, try using the `:has()` selector combined with `:state(expanded)` to target the nav menu when the navicon is expanded.
|
|
319
|
+
*
|
|
320
|
+
* ```css
|
|
321
|
+
* #nav-menu {
|
|
322
|
+
* <!-- Hidden menu styles -->
|
|
323
|
+
* }
|
|
324
|
+
*
|
|
325
|
+
* body:has(sigvelo-navicon:state(expanded)) #nav-menu {
|
|
326
|
+
* <!-- Visible menu styles -->
|
|
327
|
+
* }
|
|
328
|
+
* ```
|
|
329
|
+
*
|
|
330
|
+
* @example Customizing the label
|
|
331
|
+
* By default, the navicon's accessible label is a localized version of the phrase "toggle navigation." Use the `label` attribute to provide your own label. Labels aren't displayed on the screen, but they're announced by assistive devices.
|
|
332
|
+
*
|
|
333
|
+
* ```html
|
|
334
|
+
* <sigvelo-navicon label="View mobile menu" style="font-size: 1.75rem;"></sigvelo-navicon>
|
|
335
|
+
* ```
|
|
336
|
+
*
|
|
337
|
+
* @example Changing the symbol
|
|
338
|
+
* Use the `symbol` attribute to choose between the `hamburger`, `equals`, `horizontal-dots`, and `vertical-dots` symbols.
|
|
339
|
+
*
|
|
340
|
+
* ```html
|
|
341
|
+
* <div style="font-size: 1.75rem;">
|
|
342
|
+
* <sigvelo-navicon symbol="hamburger"></sigvelo-navicon>
|
|
343
|
+
* <sigvelo-navicon symbol="equals"></sigvelo-navicon>
|
|
344
|
+
* <sigvelo-navicon symbol="horizontal-dots"></sigvelo-navicon>
|
|
345
|
+
* <sigvelo-navicon symbol="vertical-dots"></sigvelo-navicon>
|
|
346
|
+
* </div>
|
|
347
|
+
* ```
|
|
348
|
+
*
|
|
349
|
+
* @example Changing the size
|
|
350
|
+
* Navicons are sized based on the current font size. You can make them bigger or smaller by changing the `font-size` property on the component or an ancestor. A good default size is 1.75rem, which equals 28×28px with a 16px root size.
|
|
351
|
+
*
|
|
352
|
+
* ```html
|
|
353
|
+
* <sigvelo-navicon style="font-size: 1rem;"></sigvelo-navicon>
|
|
354
|
+
* <sigvelo-navicon style="font-size: 1rem;" symbol="equals"></sigvelo-navicon>
|
|
355
|
+
* <sigvelo-navicon style="font-size: 1rem;" symbol="horizontal-dots"></sigvelo-navicon>
|
|
356
|
+
* <sigvelo-navicon style="font-size: 1rem;" symbol="vertical-dots"></sigvelo-navicon>
|
|
357
|
+
* <br><br>
|
|
358
|
+
* <sigvelo-navicon style="font-size: 3rem;"></sigvelo-navicon>
|
|
359
|
+
* <sigvelo-navicon style="font-size: 3rem;" symbol="equals" ></sigvelo-navicon>
|
|
360
|
+
* <sigvelo-navicon style="font-size: 3rem;" symbol="horizontal-dots" ></sigvelo-navicon>
|
|
361
|
+
* <sigvelo-navicon style="font-size: 3rem;" symbol="vertical-dots" ></sigvelo-navicon>
|
|
362
|
+
* ```
|
|
363
|
+
*
|
|
364
|
+
* @example Changing the color
|
|
365
|
+
* Set the `color` CSS property to control the color of the navicon.
|
|
366
|
+
*
|
|
367
|
+
* ```html
|
|
368
|
+
* <div style="font-size: 1.75rem;">
|
|
369
|
+
* <sigvelo-navicon style="color: deeppink;"></sigvelo-navicon>
|
|
370
|
+
* <sigvelo-navicon symbol="equals" style="color: dodgerblue;"></sigvelo-navicon>
|
|
371
|
+
* <sigvelo-navicon symbol="horizontal-dots" style="color: seagreen;"></sigvelo-navicon>
|
|
372
|
+
* <sigvelo-navicon symbol="vertical-dots" style="color: tomato;"></sigvelo-navicon>
|
|
373
|
+
* </div>
|
|
374
|
+
* ```
|
|
375
|
+
*
|
|
376
|
+
* @example Disabling
|
|
377
|
+
* Use the `disabled` attribute to disable the navicon.
|
|
378
|
+
*
|
|
379
|
+
* ```html
|
|
380
|
+
* <sigvelo-navicon disabled style="font-size: 1.75rem;"></sigvelo-navicon>
|
|
381
|
+
* ```
|
|
382
|
+
*/
|
|
383
|
+
var SigveloNavicon = class extends SigveloElement {
|
|
384
|
+
constructor(..._args) {
|
|
385
|
+
super(..._args);
|
|
386
|
+
this.localize = new Localize(this);
|
|
387
|
+
this.expanded = false;
|
|
388
|
+
this.symbol = "hamburger";
|
|
389
|
+
this.disabled = false;
|
|
390
|
+
this.label = "Toggle navigation";
|
|
391
|
+
this.handleBlur = () => {
|
|
392
|
+
this.customStates.set("focused", false);
|
|
393
|
+
this.dispatchEvent(new SigveloBlurEvent());
|
|
394
|
+
};
|
|
395
|
+
this.handleFocus = () => {
|
|
396
|
+
this.customStates.set("focused", true);
|
|
397
|
+
this.dispatchEvent(new SigveloFocusEvent());
|
|
398
|
+
};
|
|
399
|
+
this.handleClick = (event) => {
|
|
400
|
+
if (this.disabled) {
|
|
401
|
+
event.preventDefault();
|
|
402
|
+
event.stopImmediatePropagation();
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
this.expanded = !this.expanded;
|
|
406
|
+
};
|
|
407
|
+
this.handleKeyDown = (event) => {
|
|
408
|
+
if (this.disabled) {
|
|
409
|
+
event.preventDefault();
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
413
|
+
event.preventDefault();
|
|
414
|
+
this.expanded = !this.expanded;
|
|
415
|
+
}
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
static {
|
|
419
|
+
this.styles = [hostStyles, navicon_styles_default];
|
|
420
|
+
}
|
|
421
|
+
connectedCallback() {
|
|
422
|
+
super.connectedCallback();
|
|
423
|
+
this.setAttribute("role", "button");
|
|
424
|
+
this.setAttribute("tabindex", this.disabled ? "-1" : "0");
|
|
425
|
+
this.addEventListener("blur", this.handleBlur);
|
|
426
|
+
this.addEventListener("focus", this.handleFocus);
|
|
427
|
+
this.addEventListener("click", this.handleClick);
|
|
428
|
+
this.addEventListener("keydown", this.handleKeyDown);
|
|
429
|
+
}
|
|
430
|
+
disconnectedCallback() {
|
|
431
|
+
super.disconnectedCallback();
|
|
432
|
+
this.removeEventListener("blur", this.handleBlur);
|
|
433
|
+
this.removeEventListener("focus", this.handleFocus);
|
|
434
|
+
this.removeEventListener("click", this.handleClick);
|
|
435
|
+
this.removeEventListener("keydown", this.handleKeyDown);
|
|
436
|
+
}
|
|
437
|
+
updated(changedProperties) {
|
|
438
|
+
if (changedProperties.has("expanded")) {
|
|
439
|
+
this.customStates.set("expanded", this.expanded);
|
|
440
|
+
this.setAttribute("aria-expanded", this.expanded ? "true" : "false");
|
|
441
|
+
}
|
|
442
|
+
if (changedProperties.has("for")) this.setAttribute("aria-controls", this.for);
|
|
443
|
+
if (changedProperties.has("label")) this.setAttribute("aria-label", this.label || this.localize.term("toggleNavigation"));
|
|
444
|
+
if (changedProperties.has("disabled")) {
|
|
445
|
+
this.customStates.set("disabled", this.disabled);
|
|
446
|
+
this.setAttribute("tabindex", this.disabled ? "-1" : "0");
|
|
447
|
+
this.setAttribute("aria-disabled", this.disabled ? "true" : "false");
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
render() {
|
|
451
|
+
return html$1`
|
|
452
|
+
<span
|
|
453
|
+
class=${classMap({
|
|
454
|
+
lines: this.symbol === "hamburger" || this.symbol === "equals",
|
|
455
|
+
dots: this.symbol === "vertical-dots" || this.symbol === "horizontal-dots",
|
|
456
|
+
"vertical-dots": this.symbol === "vertical-dots",
|
|
457
|
+
"horizontal-dots": this.symbol === "horizontal-dots",
|
|
458
|
+
hamburger: this.symbol === "hamburger",
|
|
459
|
+
equals: this.symbol === "equals"
|
|
460
|
+
})}
|
|
461
|
+
>
|
|
462
|
+
<span part="line line-top" class="line top"></span>
|
|
463
|
+
${[
|
|
464
|
+
"hamburger",
|
|
465
|
+
"vertical-dots",
|
|
466
|
+
"horizontal-dots"
|
|
467
|
+
].includes(this.symbol) ? html$1` <span part="line line-middle" class="line middle"></span> ` : ""}
|
|
468
|
+
<span part="line line-bottom" class="line bottom"></span>
|
|
469
|
+
</span>
|
|
470
|
+
`;
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
__decorate([property({ reflect: true })], SigveloNavicon.prototype, "for", void 0);
|
|
474
|
+
__decorate([property({
|
|
475
|
+
reflect: true,
|
|
476
|
+
type: Boolean
|
|
477
|
+
})], SigveloNavicon.prototype, "expanded", void 0);
|
|
478
|
+
__decorate([property({ reflect: true })], SigveloNavicon.prototype, "symbol", void 0);
|
|
479
|
+
__decorate([property({
|
|
480
|
+
type: Boolean,
|
|
481
|
+
reflect: true
|
|
482
|
+
})], SigveloNavicon.prototype, "disabled", void 0);
|
|
483
|
+
__decorate([property()], SigveloNavicon.prototype, "label", void 0);
|
|
484
|
+
customElements.define("sigvelo-navicon", SigveloNavicon);
|
|
485
|
+
//#endregion
|
|
486
|
+
export { SigveloNavicon as t };
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Localize } from "./utilities/localize.js";
|
|
2
|
+
import { t as __decorate } from "./decorate-DcF3lt7P.js";
|
|
3
|
+
import { css } 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/number/number.styles.ts
|
|
8
|
+
var number_styles_default = css`
|
|
9
|
+
:host {
|
|
10
|
+
display: inline;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/components/number/number.ts
|
|
15
|
+
/**
|
|
16
|
+
* <sigvelo-number>
|
|
17
|
+
*
|
|
18
|
+
* @summary Outputs a formatted number with support for currency, percentages, and units.
|
|
19
|
+
* @tag sigvelo-number
|
|
20
|
+
* @documentation https://design-system.sigvelo.com/docs/components/number
|
|
21
|
+
* @status stable
|
|
22
|
+
* @since 1.0
|
|
23
|
+
*
|
|
24
|
+
* @example Default
|
|
25
|
+
* ```html
|
|
26
|
+
* <sigvelo-number number="10000000"></sigvelo-number>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Grouping
|
|
30
|
+
* The formatter groups numbers with thousands separators by default. To turn it off, set the `grouping` attribute to `never`.
|
|
31
|
+
*
|
|
32
|
+
* ```html
|
|
33
|
+
* <sigvelo-number grouping="never" number="10000000"></sigvelo-number><br>
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example Currency
|
|
37
|
+
* To format currency, set `type="currency"` and apply the appropriate ISO 4217 code to the `currency` attribute.
|
|
38
|
+
*
|
|
39
|
+
* ```html
|
|
40
|
+
* <sigvelo-number type="currency" currency="USD" number="25000"></sigvelo-number><br>
|
|
41
|
+
* <sigvelo-number type="currency" currency="EUR" number="25000"></sigvelo-number><br>
|
|
42
|
+
* <sigvelo-number type="currency" currency="RUB" number="25000"></sigvelo-number>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example Percentages
|
|
46
|
+
* To format a percentage, set `type="percent"`.
|
|
47
|
+
*
|
|
48
|
+
* ```html
|
|
49
|
+
* <sigvelo-number type="percent" number="0"></sigvelo-number><br>
|
|
50
|
+
* <sigvelo-number type="percent" number="0.5"></sigvelo-number><br>
|
|
51
|
+
* <sigvelo-number type="percent" number="1"></sigvelo-number><br>
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example Units
|
|
55
|
+
* You can format a variety of different units. Possible values can be found here.
|
|
56
|
+
*
|
|
57
|
+
* ```html
|
|
58
|
+
* <sigvelo-number type="unit" unit="kilobyte" number="5.1"></sigvelo-number><br>
|
|
59
|
+
* <sigvelo-number type="unit" unit="megabyte" number="3.45"></sigvelo-number><br>
|
|
60
|
+
* <sigvelo-number type="unit" unit="centimeter" number="2.54"></sigvelo-number><br>
|
|
61
|
+
* <sigvelo-number type="unit" unit="inch" number="1"></sigvelo-number><br>
|
|
62
|
+
* <sigvelo-number type="unit" unit="fahrenheit" number="75"></sigvelo-number><br>
|
|
63
|
+
* <sigvelo-number type="unit" unit="celsius" number="24"></sigvelo-number><br>
|
|
64
|
+
* <sigvelo-number type="unit" unit="hour" number="6"></sigvelo-number><br>
|
|
65
|
+
* <sigvelo-number type="unit" unit="minute" number="45"></sigvelo-number><br>
|
|
66
|
+
* <sigvelo-number type="unit" unit="second" number="8"></sigvelo-number><br>
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* Use the `unit-display` attribute to change how units are output. Possible values include `narrow`, `short`, and `long`.
|
|
70
|
+
*
|
|
71
|
+
* ```html
|
|
72
|
+
* <sigvelo-number type="unit" unit="hour" number="12" unit-display="narrow"></sigvelo-number><br>
|
|
73
|
+
* <sigvelo-number type="unit" unit="hour" number="12" unit-display="short"></sigvelo-number><br>
|
|
74
|
+
* <sigvelo-number type="unit" unit="hour" number="12" unit-display="long"></sigvelo-number><br>
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example Localization
|
|
78
|
+
* Set the `lang` attribute on the element to change the language.
|
|
79
|
+
*
|
|
80
|
+
* ```html
|
|
81
|
+
* <sigvelo-number lang="en" number="100000000"></sigvelo-number><br>
|
|
82
|
+
* <sigvelo-number lang="de" number="100000000"></sigvelo-number><br>
|
|
83
|
+
* <sigvelo-number lang="ru" number="100000000"></sigvelo-number>
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* **Note:** This component also updates based on the page's language, which can be set using `<html lang="…">`.
|
|
87
|
+
*/
|
|
88
|
+
var SigveloNumber = class extends SigveloElement {
|
|
89
|
+
constructor(..._args) {
|
|
90
|
+
super(..._args);
|
|
91
|
+
this.localize = new Localize(this);
|
|
92
|
+
this.number = 0;
|
|
93
|
+
this.type = "decimal";
|
|
94
|
+
this.currency = "USD";
|
|
95
|
+
this.grouping = "auto";
|
|
96
|
+
}
|
|
97
|
+
static {
|
|
98
|
+
this.styles = [hostStyles, number_styles_default];
|
|
99
|
+
}
|
|
100
|
+
render() {
|
|
101
|
+
if (isNaN(this.number)) return "";
|
|
102
|
+
return this.localize.number(this.number, {
|
|
103
|
+
style: this.type,
|
|
104
|
+
currency: this.currency,
|
|
105
|
+
currencyDisplay: this.currencyDisplay,
|
|
106
|
+
currencySign: this.currencySign,
|
|
107
|
+
unit: this.unit,
|
|
108
|
+
unitDisplay: this.unitDisplay,
|
|
109
|
+
minimumIntegerDigits: this.minimumIntegerDigits,
|
|
110
|
+
minimumFractionDigits: this.minimumFractionDigits,
|
|
111
|
+
maximumFractionDigits: this.maximumFractionDigits,
|
|
112
|
+
minimumSignificantDigits: this.minimumSignificantDigits,
|
|
113
|
+
maximumSignificantDigits: this.maximumSignificantDigits,
|
|
114
|
+
roundingPriority: this.roundingPriority,
|
|
115
|
+
roundingIncrement: this.roundingIncrement ? Number(this.roundingIncrement) : void 0,
|
|
116
|
+
roundingMode: this.roundingMode,
|
|
117
|
+
trailingZeroDisplay: this.trailingZeroDisplay,
|
|
118
|
+
notation: this.notation,
|
|
119
|
+
compactDisplay: this.compactDisplay,
|
|
120
|
+
useGrouping: this.grouping === "never" ? false : this.grouping,
|
|
121
|
+
signDisplay: this.signDisplay
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
__decorate([property({ type: Number })], SigveloNumber.prototype, "number", void 0);
|
|
126
|
+
__decorate([property()], SigveloNumber.prototype, "type", void 0);
|
|
127
|
+
__decorate([property()], SigveloNumber.prototype, "currency", void 0);
|
|
128
|
+
__decorate([property({ attribute: "currency-display" })], SigveloNumber.prototype, "currencyDisplay", void 0);
|
|
129
|
+
__decorate([property({ attribute: "currency-sign" })], SigveloNumber.prototype, "currencySign", void 0);
|
|
130
|
+
__decorate([property()], SigveloNumber.prototype, "unit", void 0);
|
|
131
|
+
__decorate([property({ attribute: "unit-display" })], SigveloNumber.prototype, "unitDisplay", void 0);
|
|
132
|
+
__decorate([property({
|
|
133
|
+
attribute: "minimum-integer-digits",
|
|
134
|
+
type: Number
|
|
135
|
+
})], SigveloNumber.prototype, "minimumIntegerDigits", void 0);
|
|
136
|
+
__decorate([property({
|
|
137
|
+
attribute: "minimum-fraction-digits",
|
|
138
|
+
type: Number
|
|
139
|
+
})], SigveloNumber.prototype, "minimumFractionDigits", void 0);
|
|
140
|
+
__decorate([property({
|
|
141
|
+
attribute: "maximum-fraction-digits",
|
|
142
|
+
type: Number
|
|
143
|
+
})], SigveloNumber.prototype, "maximumFractionDigits", void 0);
|
|
144
|
+
__decorate([property({
|
|
145
|
+
attribute: "minimum-significant-digits",
|
|
146
|
+
type: Number
|
|
147
|
+
})], SigveloNumber.prototype, "minimumSignificantDigits", void 0);
|
|
148
|
+
__decorate([property({
|
|
149
|
+
attribute: "maximum-significant-digits",
|
|
150
|
+
type: Number
|
|
151
|
+
})], SigveloNumber.prototype, "maximumSignificantDigits", void 0);
|
|
152
|
+
__decorate([property({ attribute: "rounding-priority" })], SigveloNumber.prototype, "roundingPriority", void 0);
|
|
153
|
+
__decorate([property({ attribute: "rounding-increment" })], SigveloNumber.prototype, "roundingIncrement", void 0);
|
|
154
|
+
__decorate([property({ attribute: "rounding-mode" })], SigveloNumber.prototype, "roundingMode", void 0);
|
|
155
|
+
__decorate([property({ attribute: "trailing-zero-display" })], SigveloNumber.prototype, "trailingZeroDisplay", void 0);
|
|
156
|
+
__decorate([property()], SigveloNumber.prototype, "notation", void 0);
|
|
157
|
+
__decorate([property({ attribute: "compact-display" })], SigveloNumber.prototype, "compactDisplay", void 0);
|
|
158
|
+
__decorate([property()], SigveloNumber.prototype, "grouping", void 0);
|
|
159
|
+
__decorate([property({ attribute: "sign-display" })], SigveloNumber.prototype, "signDisplay", void 0);
|
|
160
|
+
customElements.define("sigvelo-number", SigveloNumber);
|
|
161
|
+
//#endregion
|
|
162
|
+
export { SigveloNumber as t };
|