@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,100 @@
|
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
//#region src/components/copy/copy.styles.ts
|
|
3
|
+
/** NOTE: these styles are also used by <sigvelo-share> */
|
|
4
|
+
var copy_styles_default = css`
|
|
5
|
+
:host {
|
|
6
|
+
display: inline-block;
|
|
7
|
+
position: relative;
|
|
8
|
+
white-space: normal;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
sigvelo-button,
|
|
12
|
+
::slotted(*) {
|
|
13
|
+
cursor: copy !important;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
#feedback {
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0;
|
|
19
|
+
left: 0;
|
|
20
|
+
width: fit-content;
|
|
21
|
+
margin: 0;
|
|
22
|
+
padding-inline: 0.5rem;
|
|
23
|
+
padding-block: 0.25rem;
|
|
24
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
25
|
+
var(--sigvelo-color-neutral-bg-strong);
|
|
26
|
+
border-radius: var(--sigvelo-radius-md);
|
|
27
|
+
background-color: var(--sigvelo-color-neutral-bg-strong);
|
|
28
|
+
box-shadow: var(--sigvelo-elevation-raised);
|
|
29
|
+
color: var(--sigvelo-color-neutral-text-on-strong);
|
|
30
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
31
|
+
font-size: 0.75rem;
|
|
32
|
+
text-align: center;
|
|
33
|
+
text-transform: uppercase;
|
|
34
|
+
pointer-events: none;
|
|
35
|
+
user-select: none;
|
|
36
|
+
|
|
37
|
+
&.show {
|
|
38
|
+
animation: show 1s ease;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#feedback[data-placement="top"] {
|
|
43
|
+
--translate-x-start: 0;
|
|
44
|
+
--translate-x-end: 0;
|
|
45
|
+
--translate-y-start: -0.25rem;
|
|
46
|
+
--translate-y-end: -0.75rem;
|
|
47
|
+
translate: 0 -0.25rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#feedback[data-placement="right"] {
|
|
51
|
+
--translate-x-start: 0.25rem;
|
|
52
|
+
--translate-x-end: 0.75rem;
|
|
53
|
+
--translate-y-start: 0;
|
|
54
|
+
--translate-y-end: 0;
|
|
55
|
+
translate: 0.25rem 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#feedback[data-placement="bottom"] {
|
|
59
|
+
--translate-x-start: 0;
|
|
60
|
+
--translate-x-end: 0;
|
|
61
|
+
--translate-y-start: 0.25rem;
|
|
62
|
+
--translate-y-end: 0.75rem;
|
|
63
|
+
translate: 0 0.25rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#feedback[data-placement="left"] {
|
|
67
|
+
--translate-x-start: -0.25rem;
|
|
68
|
+
--translate-x-end: -0.75rem;
|
|
69
|
+
--translate-y-start: 0;
|
|
70
|
+
--translate-y-end: 0;
|
|
71
|
+
translate: -0.25rem 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@keyframes show {
|
|
75
|
+
0% {
|
|
76
|
+
transform: translate(var(--translate-x-start), var(--translate-y-start));
|
|
77
|
+
scale: 0.95;
|
|
78
|
+
opacity: 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
20% {
|
|
82
|
+
transform: translate(var(--translate-x-end), var(--translate-y-end));
|
|
83
|
+
scale: 1;
|
|
84
|
+
opacity: 1;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
80% {
|
|
88
|
+
transform: translate(var(--translate-x-start), var(--translate-y-start));
|
|
89
|
+
scale: 1;
|
|
90
|
+
opacity: 1;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
100% {
|
|
94
|
+
scale: 0.95;
|
|
95
|
+
opacity: 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
`;
|
|
99
|
+
//#endregion
|
|
100
|
+
export { copy_styles_default as t };
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { t as __decorate } from "./decorate-DcF3lt7P.js";
|
|
2
|
+
import { css, html, nothing } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import hostStyles from "@mcp-b/wc-support/styles/host.styles";
|
|
5
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
6
|
+
import { map } from "lit/directives/map.js";
|
|
7
|
+
import { SigveloRowSelectEvent, SigveloRowSelectEvent as SigveloRowSelectEvent$1 } from "@mcp-b/wc-support/events/row";
|
|
8
|
+
//#region src/components/data-table/data-table.styles.ts
|
|
9
|
+
var data_table_styles_default = css`
|
|
10
|
+
:host {
|
|
11
|
+
display: block;
|
|
12
|
+
min-inline-size: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#scroller {
|
|
16
|
+
max-inline-size: 100%;
|
|
17
|
+
overflow-x: auto;
|
|
18
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
19
|
+
var(--sigvelo-color-neutral-border-subtle);
|
|
20
|
+
border-radius: var(--sigvelo-radius-lg);
|
|
21
|
+
background: var(--sigvelo-color-surface);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
table {
|
|
25
|
+
inline-size: 100%;
|
|
26
|
+
border-collapse: collapse;
|
|
27
|
+
color: var(--sigvelo-color-text);
|
|
28
|
+
font: inherit;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
caption {
|
|
32
|
+
padding: var(--sigvelo-spacing-3) var(--sigvelo-spacing-4);
|
|
33
|
+
color: var(--sigvelo-color-text);
|
|
34
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
35
|
+
text-align: start;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
th,
|
|
39
|
+
td {
|
|
40
|
+
padding: var(--sigvelo-spacing-3) var(--sigvelo-spacing-3-5);
|
|
41
|
+
border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
42
|
+
var(--sigvelo-color-neutral-border-subtle);
|
|
43
|
+
text-align: start;
|
|
44
|
+
vertical-align: middle;
|
|
45
|
+
white-space: nowrap;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
th {
|
|
49
|
+
color: var(--sigvelo-color-text-muted);
|
|
50
|
+
font-size: var(--sigvelo-text-sm);
|
|
51
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
tbody tr:last-child td {
|
|
55
|
+
border-block-end: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
tbody tr[aria-selected="true"] {
|
|
59
|
+
background: var(--sigvelo-color-primary-bg-subtle);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.select-cell {
|
|
63
|
+
inline-size: 1%;
|
|
64
|
+
padding-inline-end: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
input {
|
|
68
|
+
inline-size: 1rem;
|
|
69
|
+
block-size: 1rem;
|
|
70
|
+
margin: 0;
|
|
71
|
+
accent-color: var(--sigvelo-color-primary-bg);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
input:focus-visible {
|
|
75
|
+
outline: var(--sigvelo-focus-ring);
|
|
76
|
+
outline-offset: var(--sigvelo-focus-offset);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.sr-only {
|
|
80
|
+
position: absolute;
|
|
81
|
+
inline-size: 1px;
|
|
82
|
+
block-size: 1px;
|
|
83
|
+
overflow: hidden;
|
|
84
|
+
clip-path: inset(50%);
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.empty {
|
|
89
|
+
padding: var(--sigvelo-spacing-6);
|
|
90
|
+
color: var(--sigvelo-color-text-muted);
|
|
91
|
+
text-align: center;
|
|
92
|
+
}
|
|
93
|
+
`;
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/components/data-table/data-table.ts
|
|
96
|
+
function displayCell(value) {
|
|
97
|
+
if (value === null || value === void 0 || value === "") return "—";
|
|
98
|
+
if (typeof value === "boolean") return value ? "Yes" : "No";
|
|
99
|
+
return String(value);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* <sigvelo-data-table>
|
|
103
|
+
*
|
|
104
|
+
* @summary Presents structured rows in an accessible, responsive table with optional single or multiple selection.
|
|
105
|
+
* @tag sigvelo-data-table
|
|
106
|
+
* @documentation https://design-system.sigvelo.com/docs/components/data-table
|
|
107
|
+
* @status stable
|
|
108
|
+
* @since 1.0
|
|
109
|
+
*
|
|
110
|
+
* @event sigvelo-row-select - Emitted when a selectable row changes. The detail contains `rowKey`, `selected`, and the complete `selectedKeys` array.
|
|
111
|
+
*
|
|
112
|
+
* @csspart scroller - The horizontally scrollable table container.
|
|
113
|
+
* @csspart table - The native `<table>` element.
|
|
114
|
+
* @csspart caption - The table caption.
|
|
115
|
+
* @csspart header - The table header.
|
|
116
|
+
* @csspart header-cell - A column heading.
|
|
117
|
+
* @csspart body - The table body.
|
|
118
|
+
* @csspart row - A body row.
|
|
119
|
+
* @csspart cell - A body cell.
|
|
120
|
+
* @csspart selection-cell - A cell containing a row selection control.
|
|
121
|
+
* @csspart empty - The empty-result cell.
|
|
122
|
+
*
|
|
123
|
+
* @example Default
|
|
124
|
+
* ```html
|
|
125
|
+
* <sigvelo-data-table id="team"></sigvelo-data-table>
|
|
126
|
+
* <script type="module">
|
|
127
|
+
* const table = document.querySelector('#team');
|
|
128
|
+
* table.columns = [
|
|
129
|
+
* { key: 'name', label: 'Name' },
|
|
130
|
+
* { key: 'role', label: 'Role' },
|
|
131
|
+
* { key: 'score', label: 'Score', align: 'end' }
|
|
132
|
+
* ];
|
|
133
|
+
* table.rows = [
|
|
134
|
+
* { id: 'ada', name: 'Ada Lovelace', role: 'Engineering', score: 96 },
|
|
135
|
+
* { id: 'grace', name: 'Grace Hopper', role: 'Engineering', score: 94 }
|
|
136
|
+
* ];
|
|
137
|
+
* <\/script>
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @example Multiple selection
|
|
141
|
+
* Set `selection` to `multiple` and provide a stable `keyField`. Listen for
|
|
142
|
+
* `sigvelo-row-select` to observe selection changes.
|
|
143
|
+
*
|
|
144
|
+
* ```html
|
|
145
|
+
* <sigvelo-data-table id="selectable-team" selection="multiple"></sigvelo-data-table>
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
var SigveloDataTable = class extends SigveloElement {
|
|
149
|
+
constructor(..._args) {
|
|
150
|
+
super(..._args);
|
|
151
|
+
this.columns = [];
|
|
152
|
+
this.rows = [];
|
|
153
|
+
this.keyField = "id";
|
|
154
|
+
this.selection = "none";
|
|
155
|
+
this.selectedKeys = [];
|
|
156
|
+
this.emptyText = "No results";
|
|
157
|
+
}
|
|
158
|
+
static {
|
|
159
|
+
this.styles = [hostStyles, data_table_styles_default];
|
|
160
|
+
}
|
|
161
|
+
#rowKey(row, index) {
|
|
162
|
+
const value = row[this.keyField];
|
|
163
|
+
return value === null || value === void 0 ? String(index) : String(value);
|
|
164
|
+
}
|
|
165
|
+
#rowLabel(row, index) {
|
|
166
|
+
const firstColumn = this.columns[0];
|
|
167
|
+
return firstColumn ? displayCell(row[firstColumn.key]) : `row ${index + 1}`;
|
|
168
|
+
}
|
|
169
|
+
#select(rowKey, selected) {
|
|
170
|
+
if (this.selection === "none") return;
|
|
171
|
+
const current = new Set(this.selectedKeys);
|
|
172
|
+
if (this.selection === "single") current.clear();
|
|
173
|
+
if (selected) current.add(rowKey);
|
|
174
|
+
else current.delete(rowKey);
|
|
175
|
+
this.selectedKeys = [...current];
|
|
176
|
+
this.dispatchEvent(new SigveloRowSelectEvent({
|
|
177
|
+
rowKey,
|
|
178
|
+
selected,
|
|
179
|
+
selectedKeys: this.selectedKeys
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
render() {
|
|
183
|
+
const selectable = this.selection !== "none";
|
|
184
|
+
const selected = new Set(this.selectedKeys);
|
|
185
|
+
return html`
|
|
186
|
+
<div id="scroller" part="scroller">
|
|
187
|
+
<table part="table" aria-label=${this.caption ? nothing : "Data table"}>
|
|
188
|
+
${this.caption ? html`<caption part="caption">
|
|
189
|
+
${this.caption}
|
|
190
|
+
</caption>` : nothing}
|
|
191
|
+
<thead part="header">
|
|
192
|
+
<tr>
|
|
193
|
+
${selectable ? html`<th class="select-cell" part="header-cell selection-cell">
|
|
194
|
+
<span class="sr-only">Select</span>
|
|
195
|
+
</th>` : nothing}
|
|
196
|
+
${map(this.columns, (column) => html`
|
|
197
|
+
<th part="header-cell" style=${`text-align:${column.align ?? "start"}`}>
|
|
198
|
+
${column.label}
|
|
199
|
+
</th>
|
|
200
|
+
`)}
|
|
201
|
+
</tr>
|
|
202
|
+
</thead>
|
|
203
|
+
<tbody part="body">
|
|
204
|
+
${this.rows.length === 0 ? html`<tr part="row">
|
|
205
|
+
<td
|
|
206
|
+
class="empty"
|
|
207
|
+
part="cell empty"
|
|
208
|
+
colspan=${this.columns.length + (selectable ? 1 : 0)}
|
|
209
|
+
>
|
|
210
|
+
${this.emptyText}
|
|
211
|
+
</td>
|
|
212
|
+
</tr>` : map(this.rows, (row, index) => {
|
|
213
|
+
const rowKey = this.#rowKey(row, index);
|
|
214
|
+
const isSelected = selected.has(rowKey);
|
|
215
|
+
return html`<tr part="row" aria-selected=${selectable ? isSelected : nothing}>
|
|
216
|
+
${selectable ? html`<td class="select-cell" part="cell selection-cell">
|
|
217
|
+
<input
|
|
218
|
+
type=${this.selection === "single" ? "radio" : "checkbox"}
|
|
219
|
+
name="selection"
|
|
220
|
+
aria-label=${`Select ${this.#rowLabel(row, index)}`}
|
|
221
|
+
.checked=${isSelected}
|
|
222
|
+
@change=${(event) => this.#select(rowKey, event.currentTarget.checked)}
|
|
223
|
+
/>
|
|
224
|
+
</td>` : nothing}
|
|
225
|
+
${map(this.columns, (column) => html`
|
|
226
|
+
<td part="cell" style=${`text-align:${column.align ?? "start"}`}>
|
|
227
|
+
${displayCell(row[column.key])}
|
|
228
|
+
</td>
|
|
229
|
+
`)}
|
|
230
|
+
</tr>`;
|
|
231
|
+
})}
|
|
232
|
+
</tbody>
|
|
233
|
+
</table>
|
|
234
|
+
</div>
|
|
235
|
+
`;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
__decorate([property({ attribute: false })], SigveloDataTable.prototype, "columns", void 0);
|
|
239
|
+
__decorate([property({ attribute: false })], SigveloDataTable.prototype, "rows", void 0);
|
|
240
|
+
__decorate([property({ attribute: "key-field" })], SigveloDataTable.prototype, "keyField", void 0);
|
|
241
|
+
__decorate([property({ reflect: true })], SigveloDataTable.prototype, "selection", void 0);
|
|
242
|
+
__decorate([property({ attribute: false })], SigveloDataTable.prototype, "selectedKeys", void 0);
|
|
243
|
+
__decorate([property()], SigveloDataTable.prototype, "caption", void 0);
|
|
244
|
+
__decorate([property({ attribute: "empty-text" })], SigveloDataTable.prototype, "emptyText", void 0);
|
|
245
|
+
customElements.define("sigvelo-data-table", SigveloDataTable);
|
|
246
|
+
//#endregion
|
|
247
|
+
export { SigveloRowSelectEvent$1 as n, SigveloDataTable as t };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { CSSResultGroup } from "lit";
|
|
2
|
+
import { SigveloElement } from "@mcp-b/wc-support/base/sigvelo-element";
|
|
3
|
+
import { SigveloRowSelectEvent as SigveloRowSelectEvent$1 } from "@mcp-b/wc-support/events/row";
|
|
4
|
+
|
|
5
|
+
//#region src/components/data-table/data-table.d.ts
|
|
6
|
+
type DataTablePrimitive = string | number | boolean | null;
|
|
7
|
+
type DataTableRow = Readonly<Record<string, DataTablePrimitive>>;
|
|
8
|
+
type DataTableSelection = "none" | "single" | "multiple";
|
|
9
|
+
interface DataTableColumn {
|
|
10
|
+
/** The row field displayed in this column. */
|
|
11
|
+
key: string;
|
|
12
|
+
/** The visible column heading. */
|
|
13
|
+
label: string;
|
|
14
|
+
/** Horizontal alignment for the heading and cells. */
|
|
15
|
+
align?: "start" | "center" | "end";
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* <sigvelo-data-table>
|
|
19
|
+
*
|
|
20
|
+
* @summary Presents structured rows in an accessible, responsive table with optional single or multiple selection.
|
|
21
|
+
* @tag sigvelo-data-table
|
|
22
|
+
* @documentation https://design-system.sigvelo.com/docs/components/data-table
|
|
23
|
+
* @status stable
|
|
24
|
+
* @since 1.0
|
|
25
|
+
*
|
|
26
|
+
* @event sigvelo-row-select - Emitted when a selectable row changes. The detail contains `rowKey`, `selected`, and the complete `selectedKeys` array.
|
|
27
|
+
*
|
|
28
|
+
* @csspart scroller - The horizontally scrollable table container.
|
|
29
|
+
* @csspart table - The native `<table>` element.
|
|
30
|
+
* @csspart caption - The table caption.
|
|
31
|
+
* @csspart header - The table header.
|
|
32
|
+
* @csspart header-cell - A column heading.
|
|
33
|
+
* @csspart body - The table body.
|
|
34
|
+
* @csspart row - A body row.
|
|
35
|
+
* @csspart cell - A body cell.
|
|
36
|
+
* @csspart selection-cell - A cell containing a row selection control.
|
|
37
|
+
* @csspart empty - The empty-result cell.
|
|
38
|
+
*
|
|
39
|
+
* @example Default
|
|
40
|
+
* ```html
|
|
41
|
+
* <sigvelo-data-table id="team"></sigvelo-data-table>
|
|
42
|
+
* <script type="module">
|
|
43
|
+
* const table = document.querySelector('#team');
|
|
44
|
+
* table.columns = [
|
|
45
|
+
* { key: 'name', label: 'Name' },
|
|
46
|
+
* { key: 'role', label: 'Role' },
|
|
47
|
+
* { key: 'score', label: 'Score', align: 'end' }
|
|
48
|
+
* ];
|
|
49
|
+
* table.rows = [
|
|
50
|
+
* { id: 'ada', name: 'Ada Lovelace', role: 'Engineering', score: 96 },
|
|
51
|
+
* { id: 'grace', name: 'Grace Hopper', role: 'Engineering', score: 94 }
|
|
52
|
+
* ];
|
|
53
|
+
* </script>
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Multiple selection
|
|
57
|
+
* Set `selection` to `multiple` and provide a stable `keyField`. Listen for
|
|
58
|
+
* `sigvelo-row-select` to observe selection changes.
|
|
59
|
+
*
|
|
60
|
+
* ```html
|
|
61
|
+
* <sigvelo-data-table id="selectable-team" selection="multiple"></sigvelo-data-table>
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
declare class SigveloDataTable extends SigveloElement {
|
|
65
|
+
#private;
|
|
66
|
+
static styles: CSSResultGroup;
|
|
67
|
+
/** Column definitions, in display order. */
|
|
68
|
+
columns: readonly DataTableColumn[];
|
|
69
|
+
/** Row objects displayed by the table. */
|
|
70
|
+
rows: readonly DataTableRow[];
|
|
71
|
+
/** The row field used as its stable selection key. */
|
|
72
|
+
keyField: string;
|
|
73
|
+
/** Enables no selection, single selection, or multiple selection. */
|
|
74
|
+
selection: DataTableSelection;
|
|
75
|
+
/** The currently selected row keys. */
|
|
76
|
+
selectedKeys: readonly string[];
|
|
77
|
+
/** Optional visible table caption. */
|
|
78
|
+
caption?: string;
|
|
79
|
+
/** Message displayed when there are no rows. */
|
|
80
|
+
emptyText: string;
|
|
81
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
82
|
+
}
|
|
83
|
+
declare global {
|
|
84
|
+
interface HTMLElementTagNameMap {
|
|
85
|
+
"sigvelo-data-table": SigveloDataTable;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { SigveloDataTable as a, DataTableSelection as i, DataTablePrimitive as n, SigveloRowSelectEvent$1 as o, DataTableRow as r, DataTableColumn as t };
|
|
@@ -0,0 +1,146 @@
|
|
|
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/date/date.styles.ts
|
|
8
|
+
var date_styles_default = css`
|
|
9
|
+
:host {
|
|
10
|
+
display: inline;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/components/date/date.ts
|
|
15
|
+
/**
|
|
16
|
+
* <sigvelo-date>
|
|
17
|
+
*
|
|
18
|
+
* @summary Outputs a date or time in the specified format.
|
|
19
|
+
* @tag sigvelo-date
|
|
20
|
+
* @documentation https://design-system.sigvelo.com/docs/components/date
|
|
21
|
+
* @status stable
|
|
22
|
+
* @since 1.0
|
|
23
|
+
*
|
|
24
|
+
* @example Default
|
|
25
|
+
* ```html
|
|
26
|
+
* <sigvelo-date></sigvelo-date>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* **Note:** If you pass a string to the `date` attribute, always use the [ISO 8601 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString). Otherwise, ambiguous dates such as 01/02/2000 can be parsed as January 2 or February 1 depending on the client's locale.
|
|
30
|
+
*
|
|
31
|
+
* @example Simple formatting
|
|
32
|
+
* This component supports most options from `Intl.DateTimeFormat()` in a declarative syntax. It's very flexible, but it can be a bit verbose to output a simple date or time with individual properties. Fortunately, there are two shortcuts you can use to easily output dates and times in desirable formats.
|
|
33
|
+
*
|
|
34
|
+
* The `date-style` and `time-style` attributes both accept `full`, `long`, `medium`, and `short` as options. These attributes can be used together, but they cannot be combined with other date-time formatting options.
|
|
35
|
+
*
|
|
36
|
+
* ```html
|
|
37
|
+
* <h4>Date style</h4>
|
|
38
|
+
* <sigvelo-date date-style="short" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
39
|
+
* <sigvelo-date date-style="medium" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
40
|
+
* <sigvelo-date date-style="long" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
41
|
+
* <sigvelo-date date-style="full" date="2024-01-01 12:00:00"></sigvelo-date>
|
|
42
|
+
*
|
|
43
|
+
* <h4>Time style</h4>
|
|
44
|
+
* <sigvelo-date time-style="short" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
45
|
+
* <sigvelo-date time-style="medium" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
46
|
+
* <sigvelo-date time-style="long" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
47
|
+
* <sigvelo-date time-style="full" date="2024-01-01 12:00:00"></sigvelo-date>
|
|
48
|
+
*
|
|
49
|
+
* <h4>Date + time style</h4>
|
|
50
|
+
* <sigvelo-date date-style="short" time-style="short" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
51
|
+
* <sigvelo-date date-style="medium" time-style="medium" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
52
|
+
* <sigvelo-date date-style="long" time-style="long" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
53
|
+
* <sigvelo-date date-style="full" time-style="full" date="2024-01-01 12:00:00"></sigvelo-date>
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Advanced formatting
|
|
57
|
+
* More advanced formatting can be achieved through other formatting properties. The presence of an option tells the component to output a corresponding value.
|
|
58
|
+
*
|
|
59
|
+
* To show the current time with hours and minutes using a 24 hour clock, use the `hour`, `minute`, and `hour-format` attributes.
|
|
60
|
+
*
|
|
61
|
+
* ```html
|
|
62
|
+
* <sigvelo-date hour="numeric" minute="numeric" hour-format="24"></sigvelo-date>
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* Similarly, to show a date with just the month and day, use the `month` and `day` attributes.
|
|
66
|
+
*
|
|
67
|
+
* ```html
|
|
68
|
+
* <sigvelo-date month="long" day="numeric"></sigvelo-date>
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* You can combine options to format a more complex date. The order of the attributes doesn't matter. The output will be rendered in a logical order.
|
|
72
|
+
*
|
|
73
|
+
* ```html
|
|
74
|
+
* <sigvelo-date weekday="long" month="short" day="numeric" year="numeric"></sigvelo-date>
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* **Note:** Refer to the [`Intl.DateTimeFormat()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) documentation for more information about what options do and the values they accept.
|
|
78
|
+
*
|
|
79
|
+
* @example Localization
|
|
80
|
+
* Set the `lang` attribute on the element to change the language.
|
|
81
|
+
*
|
|
82
|
+
* ```html
|
|
83
|
+
* <sigvelo-date lang="es" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
84
|
+
* <sigvelo-date lang="de" date="2024-01-01 12:00:00"></sigvelo-date><br>
|
|
85
|
+
* <sigvelo-date lang="ru" date="2024-01-01 12:00:00"></sigvelo-date>
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* **Note:** This component also updates based on the page's language, which can be set using `<html lang="…">`.
|
|
89
|
+
*/
|
|
90
|
+
var SigveloDate = class extends SigveloElement {
|
|
91
|
+
constructor(..._args) {
|
|
92
|
+
super(..._args);
|
|
93
|
+
this.localize = new Localize(this);
|
|
94
|
+
this.date = /* @__PURE__ */ new Date();
|
|
95
|
+
this.hourFormat = "auto";
|
|
96
|
+
}
|
|
97
|
+
static {
|
|
98
|
+
this.styles = [hostStyles, date_styles_default];
|
|
99
|
+
}
|
|
100
|
+
render() {
|
|
101
|
+
const date = new Date(this.date);
|
|
102
|
+
if (isNaN(date.getMilliseconds())) return "";
|
|
103
|
+
return html`<time datetime=${date.toISOString()}>${this.localize.date(date, {
|
|
104
|
+
dateStyle: this.dateStyle,
|
|
105
|
+
timeStyle: this.timeStyle,
|
|
106
|
+
hour12: this.hourFormat === "auto" ? void 0 : this.hourFormat === "12",
|
|
107
|
+
hourCycle: this.hourCycle,
|
|
108
|
+
timeZone: this.timeZone,
|
|
109
|
+
weekday: this.weekday,
|
|
110
|
+
era: this.era,
|
|
111
|
+
year: this.year,
|
|
112
|
+
month: this.month,
|
|
113
|
+
day: this.day,
|
|
114
|
+
dayPeriod: this.dayPeriod,
|
|
115
|
+
hour: this.hour,
|
|
116
|
+
minute: this.minute,
|
|
117
|
+
second: this.second,
|
|
118
|
+
fractionalSecondDigits: this.fractionalSecondDigits,
|
|
119
|
+
timeZoneName: this.timeZoneName
|
|
120
|
+
})}</time>`;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
__decorate([property()], SigveloDate.prototype, "date", void 0);
|
|
124
|
+
__decorate([property({ attribute: "date-style" })], SigveloDate.prototype, "dateStyle", void 0);
|
|
125
|
+
__decorate([property({ attribute: "time-style" })], SigveloDate.prototype, "timeStyle", void 0);
|
|
126
|
+
__decorate([property({ attribute: "hour-format" })], SigveloDate.prototype, "hourFormat", void 0);
|
|
127
|
+
__decorate([property()], SigveloDate.prototype, "hourCycle", void 0);
|
|
128
|
+
__decorate([property({ attribute: "time-zone" })], SigveloDate.prototype, "timeZone", void 0);
|
|
129
|
+
__decorate([property()], SigveloDate.prototype, "weekday", void 0);
|
|
130
|
+
__decorate([property()], SigveloDate.prototype, "era", void 0);
|
|
131
|
+
__decorate([property()], SigveloDate.prototype, "year", void 0);
|
|
132
|
+
__decorate([property()], SigveloDate.prototype, "month", void 0);
|
|
133
|
+
__decorate([property()], SigveloDate.prototype, "day", void 0);
|
|
134
|
+
__decorate([property({ attribute: "day-period" })], SigveloDate.prototype, "dayPeriod", void 0);
|
|
135
|
+
__decorate([property()], SigveloDate.prototype, "hour", void 0);
|
|
136
|
+
__decorate([property()], SigveloDate.prototype, "minute", void 0);
|
|
137
|
+
__decorate([property()], SigveloDate.prototype, "second", void 0);
|
|
138
|
+
__decorate([property({
|
|
139
|
+
attribute: "fractional-second-digits",
|
|
140
|
+
type: Number
|
|
141
|
+
})], SigveloDate.prototype, "fractionalSecondDigits", void 0);
|
|
142
|
+
__decorate([property({ attribute: "time-zone-name" })], SigveloDate.prototype, "timeZoneName", void 0);
|
|
143
|
+
__decorate([property({ attribute: "format-matcher" })], SigveloDate.prototype, "formatMatcher", void 0);
|
|
144
|
+
customElements.define("sigvelo-date", SigveloDate);
|
|
145
|
+
//#endregion
|
|
146
|
+
export { SigveloDate as t };
|