@ds-mo/ui 15.2.0 → 15.4.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/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +3 -3
- package/dist/agent.json +936 -80
- package/dist/angular/ds-card-setting.d.ts +1 -1
- package/dist/angular/ds-card-setting.js +3 -3
- package/dist/angular/ds-checkbox-group.d.ts +12 -0
- package/dist/angular/ds-checkbox-group.js +38 -0
- package/dist/angular/ds-checkbox.d.ts +1 -1
- package/dist/angular/ds-checkbox.js +3 -3
- package/dist/angular/ds-inline-banner-settings.d.ts +12 -0
- package/dist/angular/ds-inline-banner-settings.js +38 -0
- package/dist/angular/ds-input-time.d.ts +1 -1
- package/dist/angular/ds-input-time.js +3 -3
- package/dist/angular/ds-input.d.ts +5 -1
- package/dist/angular/ds-input.js +10 -4
- package/dist/angular/ds-map-entity-marker.d.ts +1 -1
- package/dist/angular/ds-map-entity-marker.js +3 -3
- package/dist/angular/ds-radio-tile.d.ts +15 -0
- package/dist/angular/ds-radio-tile.js +43 -0
- package/dist/angular/ds-radio.d.ts +1 -1
- package/dist/angular/ds-radio.js +3 -3
- package/dist/angular/ds-setting-row-checkbox.d.ts +12 -0
- package/dist/angular/ds-setting-row-checkbox.js +38 -0
- package/dist/angular/ds-setting-row-radio.d.ts +12 -0
- package/dist/angular/ds-setting-row-radio.js +38 -0
- package/dist/angular/ds-setting-row-toggle.d.ts +18 -0
- package/dist/angular/ds-setting-row-toggle.js +42 -0
- package/dist/angular/ds-slider.d.ts +1 -1
- package/dist/angular/ds-slider.js +3 -3
- package/dist/angular/ds-textarea.d.ts +1 -1
- package/dist/angular/ds-textarea.js +3 -3
- package/dist/angular/ds-time-picker.d.ts +1 -1
- package/dist/angular/ds-time-picker.js +3 -3
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +6 -0
- package/dist/angular/number-value-accessor.d.ts +9 -0
- package/dist/angular/number-value-accessor.js +39 -0
- package/dist/angular/proxies.d.ts +6 -0
- package/dist/angular/proxies.js +6 -0
- package/dist/angular/radio-value-accessor.d.ts +1 -1
- package/dist/angular/radio-value-accessor.js +2 -2
- package/dist/angular/select-value-accessor.d.ts +1 -1
- package/dist/angular/select-value-accessor.js +2 -2
- package/dist/angular/text-value-accessor.d.ts +1 -1
- package/dist/angular/text-value-accessor.js +2 -2
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-response.js.map +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-page-title.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-breadcrumb.js +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-inverted.js +1 -1
- package/dist/components/ds-button-inverted.js.map +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-calendar.js +1 -1
- package/dist/components/ds-card-action-center.js +1 -1
- package/dist/components/ds-card-action-center.js.map +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-navigation.js +1 -1
- package/dist/components/ds-card-navigation.js.map +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-overview.js.map +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-setting.js.map +1 -1
- package/dist/components/ds-card-settings-scope.js +1 -1
- package/dist/components/ds-card-settings-scope.js.map +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-legend.js.map +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-checkbox-group.d.ts +11 -0
- package/dist/components/ds-checkbox-group.js +2 -0
- package/dist/components/ds-checkbox-group.js.map +1 -0
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-data-customize.js +1 -1
- package/dist/components/ds-data-customize.js.map +1 -1
- package/dist/components/ds-data-filter.js +1 -1
- package/dist/components/ds-data-filter.js.map +1 -1
- package/dist/components/ds-data-group.js +1 -1
- package/dist/components/ds-data-preferences.js +1 -1
- package/dist/components/ds-data-preferences.js.map +1 -1
- package/dist/components/ds-data-saved-views.js +1 -1
- package/dist/components/ds-data-saved-views.js.map +1 -1
- package/dist/components/ds-data-search.js +1 -1
- package/dist/components/ds-data-search.js.map +1 -1
- package/dist/components/ds-data-sort.js +1 -1
- package/dist/components/ds-data-toolbar.js +1 -1
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-inline-banner-settings.d.ts +11 -0
- package/dist/components/ds-inline-banner-settings.js +2 -0
- package/dist/components/ds-inline-banner-settings.js.map +1 -0
- package/dist/components/ds-input-date.js +1 -1
- package/dist/components/ds-input-date.js.map +1 -1
- package/dist/components/ds-input-time.js +1 -1
- package/dist/components/ds-input-time.js.map +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-map-cluster-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js +1 -1
- package/dist/components/ds-map-entity-marker.js.map +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-bubble.js +1 -1
- package/dist/components/ds-message-bubble.js.map +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-mobile-bar-nav.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-sub-nav.js.map +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tool-search.js.map +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-paper-texture.js +1 -1
- package/dist/components/ds-radio-tile.d.ts +11 -0
- package/dist/components/ds-radio-tile.js +2 -0
- package/dist/components/ds-radio-tile.js.map +1 -0
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-score.js +1 -1
- package/dist/components/ds-scroll-overlay.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-setting-row-checkbox.d.ts +11 -0
- package/dist/components/ds-setting-row-checkbox.js +2 -0
- package/dist/components/ds-setting-row-checkbox.js.map +1 -0
- package/dist/components/ds-setting-row-radio.d.ts +11 -0
- package/dist/components/ds-setting-row-radio.js +2 -0
- package/dist/components/ds-setting-row-radio.js.map +1 -0
- package/dist/components/ds-setting-row-toggle.d.ts +11 -0
- package/dist/components/ds-setting-row-toggle.js +2 -0
- package/dist/components/ds-setting-row-toggle.js.map +1 -0
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-textarea.js +1 -1
- package/dist/components/ds-textarea.js.map +1 -1
- package/dist/components/ds-time-picker.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/p-7TVdPhGR.js +2 -0
- package/dist/components/{p-YrnU2fM7.js.map → p-7TVdPhGR.js.map} +1 -1
- package/dist/components/{p-7V1AhetH.js → p-B0BQCVkq.js} +2 -2
- package/dist/components/p-B0EpvBDs.js +2 -0
- package/dist/components/{p-lamoJZE4.js.map → p-B0EpvBDs.js.map} +1 -1
- package/dist/components/{p-Cu8o2rOz.js → p-B39iJO8F.js} +2 -2
- package/dist/components/p-B9TM6FqC.js +2 -0
- package/dist/components/{p-BJJh-Bf7.js.map → p-B9TM6FqC.js.map} +1 -1
- package/dist/components/{p-B6qQaYkB.js → p-B9y6azEw.js} +2 -2
- package/dist/components/p-BDdlJZyL.js +2 -0
- package/dist/components/{p-CZ7hxDy_.js.map → p-BDdlJZyL.js.map} +1 -1
- package/dist/components/{p-5SVmAjXY.js → p-BERXvOCf.js} +2 -2
- package/dist/components/{p-xhn1cZgU.js → p-BFHpU-uU.js} +2 -2
- package/dist/components/{p-CuWPWC3t.js → p-BQspV5U7.js} +2 -2
- package/dist/components/p-BWSIw8AQ.js +2 -0
- package/dist/components/p-BWSIw8AQ.js.map +1 -0
- package/dist/components/p-BhjqYTiY.js +2 -0
- package/dist/components/p-BhjqYTiY.js.map +1 -0
- package/dist/components/{p-BOhefRMt.js → p-Bk3poU91.js} +2 -2
- package/dist/components/{p-QWukusRL.js → p-BnuNaXR2.js} +2 -2
- package/dist/components/p-BwdnVqAY.js +2 -0
- package/dist/components/p-BwdnVqAY.js.map +1 -0
- package/dist/components/p-C4huuwed.js +2 -0
- package/dist/components/{p-CRk0TjQv.js.map → p-C4huuwed.js.map} +1 -1
- package/dist/components/{p-BtnTQp4K.js → p-C8V4lkVy.js} +2 -2
- package/dist/components/p-CJ1NnOEW.js +2 -0
- package/dist/components/p-CJ1NnOEW.js.map +1 -0
- package/dist/components/p-CPamUzaj.js +2 -0
- package/dist/components/{p-CNZ6-kWd.js.map → p-CPamUzaj.js.map} +1 -1
- package/dist/components/{p-Dqfc6Nvd.js → p-CUDocY23.js} +2 -2
- package/dist/components/{p-Dqfc6Nvd.js.map → p-CUDocY23.js.map} +1 -1
- package/dist/components/p-CX6ZxUQT.js +2 -0
- package/dist/components/p-CX6ZxUQT.js.map +1 -0
- package/dist/components/p-CZNZTcYS.js +2 -0
- package/dist/components/p-CZNZTcYS.js.map +1 -0
- package/dist/components/p-CbCN9ew9.js +2 -0
- package/dist/components/p-CbCN9ew9.js.map +1 -0
- package/dist/components/p-CeXf9-X3.js.map +1 -1
- package/dist/components/p-Cgn-BORA.js +2 -0
- package/dist/components/p-Cgn-BORA.js.map +1 -0
- package/dist/components/{p-mux14tWZ.js → p-Co1rUdOR.js} +2 -2
- package/dist/components/p-Co1rUdOR.js.map +1 -0
- package/dist/components/{p-CGidq1iC.js → p-CuwopElg.js} +2 -2
- package/dist/components/p-CwUXroLs.js +2 -0
- package/dist/components/{p-etg-Uk1u.js.map → p-CwUXroLs.js.map} +1 -1
- package/dist/components/{p-Cn6AfzeF.js → p-CwdRaJER.js} +2 -2
- package/dist/components/p-D6FRqNhN.js +2 -0
- package/dist/components/p-D6FRqNhN.js.map +1 -0
- package/dist/components/{p-ZwRLjD5M.js → p-D8OWhnID.js} +2 -2
- package/dist/components/p-DCyJ3_PL.js +2 -0
- package/dist/components/{p-BZ_e69zx.js.map → p-DCyJ3_PL.js.map} +1 -1
- package/dist/components/{p-C_Ma6Xa-.js → p-DIQiHX0q.js} +2 -2
- package/dist/components/{p-B3CZvMXs.js → p-DJDbskZf.js} +2 -2
- package/dist/components/p-DRdoGSGX.js +2 -0
- package/dist/components/{p-CTGgXIXM.js.map → p-DRdoGSGX.js.map} +1 -1
- package/dist/components/{p-C1gaWjOm.js → p-DSZPO06T.js} +2 -2
- package/dist/components/{p-uADksYMl.js → p-DSmDyI2o.js} +2 -2
- package/dist/components/{p-UY63jmrO.js → p-DVEx-Xg9.js} +2 -2
- package/dist/components/p-DXk1eml1.js +2 -0
- package/dist/components/{p-Dlp1HqgS.js.map → p-DXk1eml1.js.map} +1 -1
- package/dist/components/{p-p0FVyEFa.js → p-DYQa1DVF.js} +2 -2
- package/dist/components/p-DYQa1DVF.js.map +1 -0
- package/dist/components/p-DYsE6HLk.js +2 -0
- package/dist/components/p-DYsE6HLk.js.map +1 -0
- package/dist/components/{p-vfCu7XSc.js → p-DZ58Sg5a.js} +2 -2
- package/dist/components/p-DebLYW7A.js +2 -0
- package/dist/components/p-DebLYW7A.js.map +1 -0
- package/dist/components/p-DhKvqh5G.js +2 -0
- package/dist/components/p-DhKvqh5G.js.map +1 -0
- package/dist/components/{p-DFO5lV_A.js → p-DmSnHVW6.js} +2 -2
- package/dist/components/p-Dnt5xUBD.js +2 -0
- package/dist/components/{p-BR5OC2PX.js.map → p-Dnt5xUBD.js.map} +1 -1
- package/dist/components/p-Doa2blZT.js +2 -0
- package/dist/components/{p-BLuqpHvp.js.map → p-Doa2blZT.js.map} +1 -1
- package/dist/components/{p-DsLXlxt3.js → p-Dyqd-cub.js} +2 -2
- package/dist/components/p-Dyqd-cub.js.map +1 -0
- package/dist/components/p-DzvTC27M.js +2 -0
- package/dist/components/p-DzvTC27M.js.map +1 -0
- package/dist/components/p-JBki_jyY.js +2 -0
- package/dist/components/{p-C0JkLR83.js.map → p-JBki_jyY.js.map} +1 -1
- package/dist/components/p-MOJmB6vX.js +2 -0
- package/dist/components/{p-BzYW1IqO.js.map → p-MOJmB6vX.js.map} +1 -1
- package/dist/components/p-TVkFIMXz.js +2 -0
- package/dist/components/p-TVkFIMXz.js.map +1 -0
- package/dist/components/{p-ER5M085B.js → p-UJMEz8_O.js} +2 -2
- package/dist/components/{p-CR-Jjdcn.js → p-_IqSPt5V.js} +2 -2
- package/dist/components/p-g0jsfEXz.js +2 -0
- package/dist/components/{p-BfF4RZdp.js.map → p-g0jsfEXz.js.map} +1 -1
- package/dist/components/{p-BLSSaVWm.js → p-pp1IQN4Z.js} +2 -2
- package/dist/docs/components.json +2901 -835
- package/dist/framework/angular.d.ts +1 -0
- package/dist/framework/angular.js +1 -0
- package/dist/lib/shell/index.js +1 -1
- package/dist/lib/shell/index.js.map +1 -1
- package/dist/lint/index.js +1 -1
- package/dist/mcp-data/registry/agent-activity.json +2 -2
- package/dist/mcp-data/registry/agent-questionnaire.json +2 -2
- package/dist/mcp-data/registry/agent-response.json +3 -3
- package/dist/mcp-data/registry/agent-source-list.json +2 -2
- package/dist/mcp-data/registry/agent-tool-call.json +2 -2
- package/dist/mcp-data/registry/attachment-list.json +2 -2
- package/dist/mcp-data/registry/avatar.json +2 -2
- package/dist/mcp-data/registry/badge.json +2 -2
- package/dist/mcp-data/registry/banner.json +2 -2
- package/dist/mcp-data/registry/bar-action.json +2 -2
- package/dist/mcp-data/registry/bar-nav.json +5 -5
- package/dist/mcp-data/registry/bar-page-title.json +4 -4
- package/dist/mcp-data/registry/bar-title.json +4 -4
- package/dist/mcp-data/registry/bar-workflow.json +2 -2
- package/dist/mcp-data/registry/breadcrumb.json +2 -2
- package/dist/mcp-data/registry/button-filled.json +2 -2
- package/dist/mcp-data/registry/button-inverted.json +2 -2
- package/dist/mcp-data/registry/button-unfilled.json +9 -9
- package/dist/mcp-data/registry/calendar.json +2 -2
- package/dist/mcp-data/registry/card-action-center.json +2 -2
- package/dist/mcp-data/registry/card-chart.json +2 -2
- package/dist/mcp-data/registry/card-navigation.json +2 -2
- package/dist/mcp-data/registry/card-overview.json +2 -2
- package/dist/mcp-data/registry/card-setting.json +50 -15
- package/dist/mcp-data/registry/card-settings-scope.json +2 -2
- package/dist/mcp-data/registry/chart-legend.json +2 -2
- package/dist/mcp-data/registry/chart.json +2 -2
- package/dist/mcp-data/registry/checkbox-group.json +246 -0
- package/dist/mcp-data/registry/checkbox.json +26 -6
- package/dist/mcp-data/registry/chip.json +2 -2
- package/dist/mcp-data/registry/code-block.json +2 -2
- package/dist/mcp-data/registry/conversation-list-item.json +2 -2
- package/dist/mcp-data/registry/conversation-list-section.json +2 -2
- package/dist/mcp-data/registry/conversation-list.json +2 -2
- package/dist/mcp-data/registry/data-customize.json +3 -3
- package/dist/mcp-data/registry/data-filter.json +2 -2
- package/dist/mcp-data/registry/data-group.json +2 -2
- package/dist/mcp-data/registry/data-preferences.json +2 -2
- package/dist/mcp-data/registry/data-saved-views.json +2 -2
- package/dist/mcp-data/registry/data-search.json +2 -2
- package/dist/mcp-data/registry/data-sort.json +2 -2
- package/dist/mcp-data/registry/data-toolbar.json +2 -2
- package/dist/mcp-data/registry/divider.json +2 -2
- package/dist/mcp-data/registry/empty-state.json +27 -14
- package/dist/mcp-data/registry/field.json +6 -5
- package/dist/mcp-data/registry/filter-menu.json +2 -2
- package/dist/mcp-data/registry/icon.json +2 -2
- package/dist/mcp-data/registry/inline-banner-settings.json +175 -0
- package/dist/mcp-data/registry/input-date.json +2 -2
- package/dist/mcp-data/registry/input-time.json +26 -7
- package/dist/mcp-data/registry/input.json +265 -15
- package/dist/mcp-data/registry/loader.json +2 -2
- package/dist/mcp-data/registry/map-cluster-marker.json +3 -3
- package/dist/mcp-data/registry/map-entity-marker.json +56 -56
- package/dist/mcp-data/registry/markdown.json +2 -2
- package/dist/mcp-data/registry/menu.json +2 -2
- package/dist/mcp-data/registry/message-actions.json +2 -2
- package/dist/mcp-data/registry/message-bubble.json +5 -5
- package/dist/mcp-data/registry/message-composer.json +7 -7
- package/dist/mcp-data/registry/message-scroller.json +2 -2
- package/dist/mcp-data/registry/message.json +3 -3
- package/dist/mcp-data/registry/mobile-bar-nav.json +2 -2
- package/dist/mcp-data/registry/mobile-header.json +2 -2
- package/dist/mcp-data/registry/mobile-section-switcher.json +2 -2
- package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
- package/dist/mcp-data/registry/modal.json +2 -2
- package/dist/mcp-data/registry/pagination.json +2 -2
- package/dist/mcp-data/registry/panel-nav.json +4 -4
- package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
- package/dist/mcp-data/registry/panel-tool-header.json +4 -4
- package/dist/mcp-data/registry/panel-tool-search.json +3 -3
- package/dist/mcp-data/registry/panel-tools.json +4 -4
- package/dist/mcp-data/registry/paper-texture.json +2 -2
- package/dist/mcp-data/registry/radio-tile.json +399 -0
- package/dist/mcp-data/registry/radio.json +51 -9
- package/dist/mcp-data/registry/registry.json +954 -80
- package/dist/mcp-data/registry/score.json +2 -2
- package/dist/mcp-data/registry/scroll-overlay.json +2 -2
- package/dist/mcp-data/registry/select.json +2 -2
- package/dist/mcp-data/registry/setting-row-checkbox.json +197 -0
- package/dist/mcp-data/registry/setting-row-radio.json +196 -0
- package/dist/mcp-data/registry/setting-row-toggle.json +233 -0
- package/dist/mcp-data/registry/shell-app.json +4 -4
- package/dist/mcp-data/registry/shell-page.json +2 -2
- package/dist/mcp-data/registry/shell-tools.json +2 -2
- package/dist/mcp-data/registry/skeleton.json +2 -2
- package/dist/mcp-data/registry/slider.json +32 -12
- package/dist/mcp-data/registry/swatch-picker.json +2 -2
- package/dist/mcp-data/registry/switch.json +4 -4
- package/dist/mcp-data/registry/tab-group.json +2 -2
- package/dist/mcp-data/registry/table.json +5 -5
- package/dist/mcp-data/registry/tag.json +2 -2
- package/dist/mcp-data/registry/text.json +2 -2
- package/dist/mcp-data/registry/textarea.json +72 -5
- package/dist/mcp-data/registry/time-picker.json +28 -9
- package/dist/mcp-data/registry/toast.json +2 -2
- package/dist/mcp-data/registry/tooltip-chart.json +2 -2
- package/dist/mcp-data/registry/tooltip.json +2 -2
- package/dist/mcp-data/registry/typing-indicator.json +2 -2
- package/dist/react/components.d.ts +6 -0
- package/dist/react/components.js +6 -0
- package/dist/react/ds-checkbox-group.d.ts +9 -0
- package/dist/react/ds-checkbox-group.js +12 -0
- package/dist/react/ds-inline-banner-settings.d.ts +9 -0
- package/dist/react/ds-inline-banner-settings.js +12 -0
- package/dist/react/ds-input.d.ts +2 -0
- package/dist/react/ds-input.js +2 -0
- package/dist/react/ds-radio-tile.d.ts +12 -0
- package/dist/react/ds-radio-tile.js +12 -0
- package/dist/react/ds-setting-row-checkbox.d.ts +9 -0
- package/dist/react/ds-setting-row-checkbox.js +12 -0
- package/dist/react/ds-setting-row-radio.d.ts +9 -0
- package/dist/react/ds-setting-row-radio.js +12 -0
- package/dist/react/ds-setting-row-toggle.d.ts +12 -0
- package/dist/react/ds-setting-row-toggle.js +12 -0
- package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +2 -0
- package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +4 -0
- package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +5 -2
- package/dist/types/components/CardSetting/CardSetting.d.ts +15 -3
- package/dist/types/components/CardSetting/index.d.ts +1 -1
- package/dist/types/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts +20 -0
- package/dist/types/components/EmptyState/EmptyState.d.ts +3 -0
- package/dist/types/components/Field/Field.d.ts +4 -0
- package/dist/types/components/InlineBannerSettings/InlineBannerSettings.d.ts +6 -0
- package/dist/types/components/Input/Input.d.ts +50 -1
- package/dist/types/components/InputTime/InputTime.d.ts +3 -0
- package/dist/types/components/MapEntityMarker/MapEntityMarker.d.ts +5 -5
- package/dist/types/components/Radio/Radio.d.ts +8 -0
- package/dist/types/components/RadioTile/RadioTile.d.ts +40 -0
- package/dist/types/components/RadioTile/index.d.ts +2 -0
- package/dist/types/components/SettingRowCheckbox/SettingRowCheckbox.d.ts +19 -0
- package/dist/types/components/SettingRowRadio/SettingRowRadio.d.ts +19 -0
- package/dist/types/components/SettingRowToggle/SettingRowToggle.d.ts +21 -0
- package/dist/types/components/Slider/Slider.d.ts +8 -1
- package/dist/types/components/Slider/index.d.ts +1 -1
- package/dist/types/components/Switch/Switch.d.ts +7 -0
- package/dist/types/components/Textarea/Textarea.d.ts +12 -0
- package/dist/types/components/TimePicker/TimePicker.d.ts +4 -0
- package/dist/types/components.d.ts +728 -37
- package/dist/types/utils/text-constraints.d.ts +20 -0
- package/dist/vue/components.d.ts +6 -0
- package/dist/vue/components.js +6 -0
- package/dist/vue/ds-card-setting.js +1 -0
- package/dist/vue/ds-checkbox-group.d.ts +3 -0
- package/dist/vue/ds-checkbox-group.js +12 -0
- package/dist/vue/ds-checkbox.js +1 -0
- package/dist/vue/ds-inline-banner-settings.d.ts +3 -0
- package/dist/vue/ds-inline-banner-settings.js +8 -0
- package/dist/vue/ds-input-time.js +1 -0
- package/dist/vue/ds-input.js +17 -0
- package/dist/vue/ds-map-entity-marker.js +2 -2
- package/dist/vue/ds-radio-tile.d.ts +3 -0
- package/dist/vue/ds-radio-tile.js +24 -0
- package/dist/vue/ds-radio.js +2 -0
- package/dist/vue/ds-setting-row-checkbox.d.ts +3 -0
- package/dist/vue/ds-setting-row-checkbox.js +11 -0
- package/dist/vue/ds-setting-row-radio.d.ts +3 -0
- package/dist/vue/ds-setting-row-radio.js +11 -0
- package/dist/vue/ds-setting-row-toggle.d.ts +3 -0
- package/dist/vue/ds-setting-row-toggle.js +15 -0
- package/dist/vue/ds-slider.d.ts +1 -1
- package/dist/vue/ds-slider.js +2 -1
- package/dist/vue/ds-textarea.js +4 -0
- package/dist/vue/ds-time-picker.js +1 -0
- package/package.json +5 -5
- package/dist/components/p-BCnzbfma.js +0 -2
- package/dist/components/p-BCnzbfma.js.map +0 -1
- package/dist/components/p-BJJh-Bf7.js +0 -2
- package/dist/components/p-BLuqpHvp.js +0 -2
- package/dist/components/p-BR5OC2PX.js +0 -2
- package/dist/components/p-BX506yEW.js +0 -2
- package/dist/components/p-BX506yEW.js.map +0 -1
- package/dist/components/p-BZ_e69zx.js +0 -2
- package/dist/components/p-BfF4RZdp.js +0 -2
- package/dist/components/p-Br5e83Fr.js +0 -2
- package/dist/components/p-Br5e83Fr.js.map +0 -1
- package/dist/components/p-Bv9rSkp0.js +0 -2
- package/dist/components/p-Bv9rSkp0.js.map +0 -1
- package/dist/components/p-BzYW1IqO.js +0 -2
- package/dist/components/p-C0JkLR83.js +0 -2
- package/dist/components/p-C6Aavz9h.js +0 -2
- package/dist/components/p-C6Aavz9h.js.map +0 -1
- package/dist/components/p-C6zycbhC.js +0 -2
- package/dist/components/p-C6zycbhC.js.map +0 -1
- package/dist/components/p-CNZ6-kWd.js +0 -2
- package/dist/components/p-CRk0TjQv.js +0 -2
- package/dist/components/p-CTGgXIXM.js +0 -2
- package/dist/components/p-CZ7hxDy_.js +0 -2
- package/dist/components/p-Cc3ZUQlJ.js +0 -2
- package/dist/components/p-Cc3ZUQlJ.js.map +0 -1
- package/dist/components/p-D5HxZrMA.js +0 -2
- package/dist/components/p-D5HxZrMA.js.map +0 -1
- package/dist/components/p-D7K1ZHML.js +0 -2
- package/dist/components/p-D7K1ZHML.js.map +0 -1
- package/dist/components/p-Dlp1HqgS.js +0 -2
- package/dist/components/p-DsLXlxt3.js.map +0 -1
- package/dist/components/p-YrnU2fM7.js +0 -2
- package/dist/components/p-ZYWnJaye.js +0 -2
- package/dist/components/p-ZYWnJaye.js.map +0 -1
- package/dist/components/p-etg-Uk1u.js +0 -2
- package/dist/components/p-lamoJZE4.js +0 -2
- package/dist/components/p-mV4vSjSK.js +0 -2
- package/dist/components/p-mV4vSjSK.js.map +0 -1
- package/dist/components/p-mux14tWZ.js.map +0 -1
- package/dist/components/p-mxZoWfnS.js +0 -2
- package/dist/components/p-mxZoWfnS.js.map +0 -1
- package/dist/components/p-p0FVyEFa.js.map +0 -1
- package/dist/components/p-xtGGIZmU.js +0 -2
- package/dist/components/p-xtGGIZmU.js.map +0 -1
- /package/dist/components/{p-7V1AhetH.js.map → p-B0BQCVkq.js.map} +0 -0
- /package/dist/components/{p-Cu8o2rOz.js.map → p-B39iJO8F.js.map} +0 -0
- /package/dist/components/{p-B6qQaYkB.js.map → p-B9y6azEw.js.map} +0 -0
- /package/dist/components/{p-5SVmAjXY.js.map → p-BERXvOCf.js.map} +0 -0
- /package/dist/components/{p-xhn1cZgU.js.map → p-BFHpU-uU.js.map} +0 -0
- /package/dist/components/{p-CuWPWC3t.js.map → p-BQspV5U7.js.map} +0 -0
- /package/dist/components/{p-BOhefRMt.js.map → p-Bk3poU91.js.map} +0 -0
- /package/dist/components/{p-QWukusRL.js.map → p-BnuNaXR2.js.map} +0 -0
- /package/dist/components/{p-BtnTQp4K.js.map → p-C8V4lkVy.js.map} +0 -0
- /package/dist/components/{p-CGidq1iC.js.map → p-CuwopElg.js.map} +0 -0
- /package/dist/components/{p-Cn6AfzeF.js.map → p-CwdRaJER.js.map} +0 -0
- /package/dist/components/{p-ZwRLjD5M.js.map → p-D8OWhnID.js.map} +0 -0
- /package/dist/components/{p-C_Ma6Xa-.js.map → p-DIQiHX0q.js.map} +0 -0
- /package/dist/components/{p-B3CZvMXs.js.map → p-DJDbskZf.js.map} +0 -0
- /package/dist/components/{p-C1gaWjOm.js.map → p-DSZPO06T.js.map} +0 -0
- /package/dist/components/{p-uADksYMl.js.map → p-DSmDyI2o.js.map} +0 -0
- /package/dist/components/{p-UY63jmrO.js.map → p-DVEx-Xg9.js.map} +0 -0
- /package/dist/components/{p-vfCu7XSc.js.map → p-DZ58Sg5a.js.map} +0 -0
- /package/dist/components/{p-DFO5lV_A.js.map → p-DmSnHVW6.js.map} +0 -0
- /package/dist/components/{p-ER5M085B.js.map → p-UJMEz8_O.js.map} +0 -0
- /package/dist/components/{p-CR-Jjdcn.js.map → p-_IqSPt5V.js.map} +0 -0
- /package/dist/components/{p-BLSSaVWm.js.map → p-pp1IQN4Z.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-BFHpU-uU.js";const p=o;const t=s;export{p as DsShellPage,t as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-shell-page.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-B39iJO8F.js";const t=o;const p=s;export{t as DsShellTools,p as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-shell-tools.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as
|
|
1
|
+
import{S as o,d as s}from"./p-DSmDyI2o.js";const t=o;const m=s;export{t as DsSkeleton,m as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-skeleton.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as s,H as i,c as t,h as e,a as r,t as d}from"./index.js";import{d as a}from"./p-ZwRLjD5M.js";import{a as l,s as o,c as n,r as c}from"./p-C0qN3PSb.js";const h=()=>`@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{color:var(--ds-forced-color-disabled);opacity:1}}.ds-field-stack.sc-ds-slider-h,.ds-field-stack.sc-ds-slider{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider-h .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__description.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__error.sc-ds-slider{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-400);--ds-slider-thumb-size:var(--dimension-size-200);--ds-slider-track-size:var(--dimension-size-100);--ds-slider-track-stroke:var(--dimension-stroke-width-012);--ds-slider-vertical-length:calc(var(--dimension-size-800) * 3);box-sizing:border-box;width:100%;color:var(--color-foreground-primary)}.slider--sm.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-300);--ds-slider-thumb-size:var(--dimension-size-150);--ds-slider-track-size:var(--dimension-size-075)}.slider--xs.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-200);--ds-slider-thumb-size:var(--dimension-size-100);--ds-slider-track-size:var(--dimension-size-050)}.slider--vertical.sc-ds-slider-h{width:fit-content;min-width:var(--dimension-form-width-xs)}.slider__label-row.sc-ds-slider{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dimension-space-100);min-width:0}.slider__label.sc-ds-slider{min-width:0}.slider__value.sc-ds-slider{flex-shrink:0}.slider__control.sc-ds-slider{position:relative;width:100%;height:var(--ds-slider-control-size);border-radius:var(--dimension-radius-half);cursor:default;touch-action:none;user-select:none}.slider--vertical.sc-ds-slider-h .slider__control.sc-ds-slider{align-self:center;width:var(--ds-slider-control-size);height:var(--ds-slider-vertical-length)}.slider--readonly.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:default}.ds-control-inactive.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:not-allowed}.slider__rail.sc-ds-slider{position:absolute;top:50%;right:0;left:0;height:var(--ds-slider-track-size);overflow:hidden;border-radius:var(--dimension-radius-025);background-color:transparent;box-shadow:inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);transform:translateY(-50%);pointer-events:none}.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{right:calc(var(--ds-slider-thumb-size) / 2);left:calc(var(--ds-slider-thumb-size) / 2)}.slider__indicator.sc-ds-slider{position:absolute;top:0;bottom:0;left:0;width:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );border-radius:inherit;background-color:var(--color-background-bold-brand)}.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );width:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc(var(--ds-slider-start-pct, 0) * 1%);width:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider__thumb.sc-ds-slider{position:absolute;top:50%;left:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));width:var(--ds-slider-thumb-size);height:var(--ds-slider-thumb-size);transform:translateY(-50%);z-index:1}.slider__thumb--active.sc-ds-slider{z-index:2}.slider__input.sc-ds-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;appearance:none;pointer-events:none;z-index:2}.slider__thumb-visual.sc-ds-slider{position:absolute;inset:0;box-sizing:border-box;overflow:visible;border-radius:var(--dimension-radius-025);background-color:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-sm);pointer-events:none;transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.slider__thumb-wash.sc-ds-slider{position:absolute;inset:0;border-radius:inherit;background-color:transparent;transition:background-color var(--effect-motion-short-2)}@media (hover: hover) and (pointer: fine){.sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb.sc-ds-slider:hover .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-hover)}}[data-dragging].sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb--active.sc-ds-slider .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-pressed)}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.slider--vertical.sc-ds-slider-h .slider__rail.sc-ds-slider{top:0;right:auto;bottom:0;left:50%;width:var(--ds-slider-track-size);height:auto;transform:translateX(-50%)}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{top:calc(var(--ds-slider-thumb-size) / 2);bottom:calc(var(--ds-slider-thumb-size) / 2)}.slider--vertical.sc-ds-slider-h .slider__indicator.sc-ds-slider{top:auto;right:0;bottom:0;left:0;width:auto;height:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );height:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc(var(--ds-slider-start-pct, 0) * 1%);height:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider--vertical.sc-ds-slider-h .slider__thumb.sc-ds-slider{top:auto;bottom:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));left:50%;transform:translateX(-50%)}@media (prefers-reduced-motion: reduce){.slider__thumb-visual.sc-ds-slider,.slider__thumb-wash.sc-ds-slider{transition:none}}@media (forced-colors: active){.slider__rail.sc-ds-slider{border:var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);box-shadow:none}.slider__indicator.sc-ds-slider{background-color:var(--ds-forced-color-selected)}.slider__thumb-visual.sc-ds-slider{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);background-color:var(--ds-forced-color-surface);box-shadow:none}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline-color:var(--ds-forced-color-selected)}}`;let u=0;let m=0;const f=s(class s extends i{constructor(s){super();if(s!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsCommit=t(this,"dsCommit",7);this.internals=this.attachInternals();this.value=0;this.min=0;this.max=100;this.step=1;this.minStepsBetweenValues=0;this.showValue=true;this.size="md";this.orientation="horizontal";this.thumbAlignment="edge";this.disabled=false;this.readOnly=false;this.isInactive=false;this.ariaLabel=null;this.startLabel="Minimum value";this.endLabel="Maximum value";this.valueTexts=[];this.valuePrefix="";this.valueSuffix="";this.rangeSeparator="–";this.formDisabled=false;this.dragging=false;this.focused=false;this.touched=false;this.activeThumbIndex=0;this.generatedId=`ds-slider-${++u}`;this.labelId=`${this.generatedId}-label`;this.initialValue=0;this.lastCommittedValue=0;this.pointerId=null;this.pointerStartValue=0;this.controlEl=null;this.handleNativeInput=(s,i)=>{const t=s.target;this.activeThumbIndex=i;if(this.readOnly||this.isDisabled){t.value=String(this.resolvedValues[i]);return}this.setValueAt(i,Number(t.value))};this.handleNativeChange=()=>{if(!this.readOnly&&!this.isDisabled)this.commitIfChanged()};this.handleKeyDown=s=>{if(!this.readOnly)return;if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(s.key)){s.preventDefault()}};this.handleFocus=s=>{this.activeThumbIndex=s;this.focused=true};this.handleBlur=s=>{const i=s.relatedTarget;if(i instanceof Node&&this.el.contains(i))return;this.focused=false;this.touched=true};this.handleHostClick=s=>{if(s.target!==this.el||this.isDisabled)return;const i=this.el.querySelectorAll(".slider__input");i[Math.min(this.activeThumbIndex,i.length-1)]?.focus()};this.handlePointerDown=s=>{if(s.button!==0||this.isDisabled||this.readOnly)return;s.preventDefault();const i=this.valueFromPointer(s);const t=this.closestThumbIndex(i,s.target);this.activeThumbIndex=t;this.pointerId=s.pointerId;this.pointerStartValue=this.cloneValue(this.publicValue);this.dragging=true;this.setValueAt(t,i);this.controlEl?.setPointerCapture(s.pointerId);requestAnimationFrame((()=>{const s=this.el.querySelectorAll(".slider__input")[t];s?.focus({preventScroll:true})}))};this.handlePointerMove=s=>{if(this.pointerId!==s.pointerId||!this.dragging)return;s.preventDefault();this.setValueAt(this.activeThumbIndex,this.valueFromPointer(s))}}componentWillLoad(){this.initialValue=this.cloneValue(this.publicValue);this.lastCommittedValue=this.cloneValue(this.publicValue);this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}syncFormValue(){const s=this.resolvedValues;if(this.isRange){l(this.internals,this.name,s,{inactive:this.isDisabled})}else{const i=String(s[0]);o(this.internals,this.name?i:null,{inactive:this.isDisabled,state:i})}}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.value=this.cloneValue(this.initialValue);this.lastCommittedValue=this.cloneValue(this.initialValue);this.dragging=false;this.focused=false;this.touched=false}formStateRestoreCallback(s){if(this.isRange){const i=n(s,2);this.value=i.length?i:this.cloneValue(this.initialValue)}else{const i=Number(c(s,"NaN"));if(Number.isFinite(i))this.value=i}this.lastCommittedValue=this.cloneValue(this.publicValue)}async setFocus(s=0){const i=this.el.querySelectorAll(".slider__input");i[Math.max(0,Math.min(s,i.length-1))]?.focus()}get isDisabled(){return this.disabled||this.isInactive||this.formDisabled}get isRange(){return Array.isArray(this.value)}get safeStep(){return Number.isFinite(this.step)&&this.step>0?this.step:1}get safeMin(){return Number.isFinite(this.min)?this.min:0}get safeMax(){const s=this.safeMin;return Number.isFinite(this.max)&&this.max>s?this.max:s+this.safeStep}get minimumGap(){const s=Number.isFinite(this.minStepsBetweenValues)?Math.max(0,Math.floor(this.minStepsBetweenValues)):0;return s*this.safeStep}get resolvedValues(){const s=this.safeMin;const i=this.safeMax;if(!this.isRange)return[this.snap(Number(this.value))];const t=this.value;let e=this.snap(Number(t[0]??s));let r=this.snap(Number(t[1]??i));if(e>r)[e,r]=[r,e];const d=Math.min(this.minimumGap,i-s);if(r-e<d){r=Math.min(i,this.snap(e+d));e=Math.max(s,this.snap(r-d))}return[e,r]}get publicValue(){const s=this.resolvedValues;return this.isRange?[...s]:s[0]}cloneValue(s){return Array.isArray(s)?[...s]:s}valuesEqual(s,i){if(Array.isArray(s)&&Array.isArray(i)){return s.length===i.length&&s.every(((s,t)=>s===i[t]))}return!Array.isArray(s)&&!Array.isArray(i)&&s===i}decimalPlaces(s){const i=String(s).toLowerCase();if(i.includes("e-"))return Number(i.split("e-")[1])||0;return i.includes(".")?i.split(".")[1].length:0}snap(s){const i=this.safeMin;const t=this.safeMax;const e=Number.isFinite(s)?s:i;const r=i+Math.round((e-i)/this.safeStep)*this.safeStep;const d=Math.min(10,Math.max(this.decimalPlaces(i),this.decimalPlaces(t),this.decimalPlaces(this.safeStep)));return Number(Math.min(t,Math.max(i,r)).toFixed(d))}percent(s){return(s-this.safeMin)/(this.safeMax-this.safeMin)*100}allowedMin(s,i=this.resolvedValues){return this.isRange&&s===1?Math.min(this.safeMax,i[0]+this.minimumGap):this.safeMin}allowedMax(s,i=this.resolvedValues){return this.isRange&&s===0?Math.max(this.safeMin,i[1]-this.minimumGap):this.safeMax}setValueAt(s,i){const t=this.publicValue;const e=this.resolvedValues;const r=Math.min(this.allowedMax(s,e),Math.max(this.allowedMin(s,e),this.snap(i)));e[s]=r;const d=this.isRange?[...e]:e[0];if(this.valuesEqual(t,d))return false;this.value=d;this.dsChange.emit(this.cloneValue(d));return true}commitIfChanged(){const s=this.publicValue;if(this.valuesEqual(s,this.lastCommittedValue))return;this.lastCommittedValue=this.cloneValue(s);this.dsCommit.emit(this.cloneValue(s))}syncNativeLabels(){if(this.label||this.ariaLabel||this.ariaLabelledby||this.isRange)return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-slider-label-${++m}`;return s.id}));if(s.length)this.externalLabelledby=s.join(" ")}formattedValue(s,i){const t=this.valueTexts[i]??this.valueText;if(t)return t;let e;try{e=new Intl.NumberFormat(this.locale,this.formatOptions).format(s)}catch{e=String(s)}return`${this.valuePrefix}${e}${this.valueSuffix}`}ariaValueText(s,i){if(this.valueTexts[i]||this.valueText||this.valuePrefix||this.valueSuffix||this.formatOptions){return this.formattedValue(s,i)}return undefined}pointerPercent(s){const i=this.controlEl;if(!i)return 0;const t=i.getBoundingClientRect();const e=this.el.querySelector(".slider__thumb");const r=e?this.orientation==="horizontal"?e.offsetWidth:e.offsetHeight:0;const d=r/2;if(this.orientation==="vertical"){const i=Math.max(1,t.height-d*2);return Math.min(1,Math.max(0,(t.bottom-d-s.clientY)/i))}const a=Math.max(1,t.width-d*2);const l=(s.clientX-t.left-d)/a;return Math.min(1,Math.max(0,l))}valueFromPointer(s){return this.snap(this.safeMin+this.pointerPercent(s)*(this.safeMax-this.safeMin))}closestThumbIndex(s,t){const e=t instanceof i?t.closest(".slider__thumb"):null;if(e?.dataset["index"])return Number(e.dataset["index"]);if(!this.isRange)return 0;const r=this.resolvedValues;const d=Math.abs(s-r[0]);const a=Math.abs(s-r[1]);if(d===a)return s>=r[0]?1:0;return d<a?0:1}endPointerInteraction(s,i){if(this.pointerId!==s.pointerId)return;if(this.controlEl?.hasPointerCapture(s.pointerId))this.controlEl.releasePointerCapture(s.pointerId);this.pointerId=null;this.dragging=false;this.touched=true;if(!i&&!this.valuesEqual(this.pointerStartValue,this.publicValue))this.commitIfChanged()}renderThumb(s,i){const t=i===0?this.inputId??`${this.generatedId}-input`:`${this.inputId??`${this.generatedId}-input`}-end`;const r=i===0?this.startLabel:this.endLabel;const d=this.isRange?undefined:this.ariaLabelledby??(this.label?this.labelId:this.externalLabelledby);const a=this.isRange?r:d?undefined:this.ariaLabel;return e("div",{class:{slider__thumb:true,"slider__thumb--active":i===this.activeThumbIndex},"data-index":String(i),style:{"--ds-slider-thumb-pct":String(this.percent(s))}},e("input",{class:"slider__input",type:"range",id:t,min:this.allowedMin(i),max:this.allowedMax(i),step:this.safeStep,value:s,disabled:this.isDisabled,"aria-label":a,"aria-labelledby":d,"aria-describedby":this.ariaDescribedby,"aria-valuetext":this.ariaValueText(s,i),"aria-orientation":this.orientation==="vertical"?"vertical":undefined,"aria-readonly":this.readOnly?"true":undefined,onInput:s=>this.handleNativeInput(s,i),onChange:this.handleNativeChange,onKeyDown:this.handleKeyDown,onFocus:()=>this.handleFocus(i),onBlur:this.handleBlur}),e("span",{class:"slider__thumb-visual","aria-hidden":"true"},e("span",{class:"slider__thumb-wash"})))}render(){const s=this.resolvedValues;const i=s[0];const t=s[s.length-1];const d=this.inputId??`${this.generatedId}-input`;const a=!this.valuesEqual(this.publicValue,this.initialValue);const l=s.map(((s,i)=>this.formattedValue(s,i))).join(` ${this.rangeSeparator} `);return e(r,{key:"022a0d88f2b192ca41fecaefa779e4457a03924d","aria-disabled":this.isDisabled?"true":undefined,class:{slider:true,"ds-field-stack":true,[`slider--${this.size}`]:true,[`slider--${this.orientation}`]:true,[`slider--thumb-${this.thumbAlignment}`]:true,"slider--range":this.isRange,"slider--readonly":this.readOnly,"ds-control-inactive":this.isDisabled},"data-orientation":this.orientation,"data-disabled":this.isDisabled?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-dragging":this.dragging?"":undefined,"data-focused":this.focused?"":undefined,"data-filled":"","data-dirty":a?"":undefined,"data-touched":this.touched?"":undefined,"data-valid":!this.isDisabled?"":undefined,onClick:this.handleHostClick},(this.label||this.showValue)&&e("div",{key:"d7690e288b4d1986bf9d24f6bb713b9ea9689408",class:"slider__label-row"},this.label&&e("ds-text",{key:"3cd8429a453acabfed389b61a443cd29a560cc63",class:"slider__label",as:"label",variant:"text-body-small",color:"primary",emphasis:true,for:d,textId:this.labelId},this.label),this.showValue&&e("ds-text",{key:"9b75d75a4b848b1bb42c9ca4fc72795d729e3d94",class:"slider__value",as:"span",variant:"text-body-small",color:"primary",fontFeature:"tabular-nums"},l)),e("div",{key:"8d8074d5d7c25a2eddf40f7a3e73c417faf70188",class:"slider__control",ref:s=>{this.controlEl=s??null},style:{"--ds-slider-start-pct":String(this.isRange?this.percent(i):0),"--ds-slider-end-pct":String(this.percent(t))},onPointerDown:this.handlePointerDown,onPointerMove:this.handlePointerMove,onPointerUp:s=>this.endPointerInteraction(s,false),onPointerCancel:s=>this.endPointerInteraction(s,true)},e("div",{key:"72be913ebbc9f90e4ac57d1decafe21bd239de71",class:"slider__rail","aria-hidden":"true"},e("div",{key:"32ea2cf36669a93efada112dacd2477a420fdf30",class:"slider__indicator"})),s.map(((s,i)=>this.renderThumb(s,i)))))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}}static get style(){return h()}},[66,"ds-slider",{value:[1026],min:[2],max:[2],step:[2],minStepsBetweenValues:[2,"min-steps-between-values"],label:[1],showValue:[4,"show-value"],size:[1],orientation:[1],thumbAlignment:[1,"thumb-alignment"],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],isInactive:[4,"is-inactive"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],startLabel:[1,"start-label"],endLabel:[1,"end-label"],valueText:[1,"value-text"],valueTexts:[16],locale:[1],formatOptions:[16],valuePrefix:[1,"value-prefix"],valueSuffix:[1,"value-suffix"],rangeSeparator:[1,"range-separator"],inputId:[1,"input-id"],formDisabled:[32],dragging:[32],focused:[32],touched:[32],activeThumbIndex:[32],externalLabelledby:[32],setFocus:[64]},undefined,{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}]);function b(){if(typeof customElements==="undefined"){return}const s=["ds-slider","ds-text"];s.forEach((s=>{switch(s){case"ds-slider":if(!customElements.get(d(s))){customElements.define(d(s),f)}break;case"ds-text":if(!customElements.get(d(s))){a()}break}}))}b();const v=f;const p=b;export{v as DsSlider,p as defineCustomElement};
|
|
1
|
+
import{p as s,H as i,c as t,h as e,a as r,t as d}from"./index.js";import{d as a}from"./p-D8OWhnID.js";import{a as l,s as n,c as o,r as c}from"./p-C0qN3PSb.js";const h=()=>`@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{color:var(--ds-forced-color-disabled);opacity:1}}.ds-field-stack.sc-ds-slider-h,.ds-field-stack.sc-ds-slider{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider-h .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__description.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__error.sc-ds-slider{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-400);--ds-slider-thumb-size:var(--dimension-size-200);--ds-slider-track-size:var(--dimension-size-100);--ds-slider-track-stroke:var(--dimension-stroke-width-012);--ds-slider-vertical-length:calc(var(--dimension-size-800) * 3);box-sizing:border-box;width:100%;color:var(--color-foreground-primary)}.slider--sm.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-300);--ds-slider-thumb-size:var(--dimension-size-150);--ds-slider-track-size:var(--dimension-size-075)}.slider--xs.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-200);--ds-slider-thumb-size:var(--dimension-size-100);--ds-slider-track-size:var(--dimension-size-050)}.slider--vertical.sc-ds-slider-h{width:fit-content;min-width:var(--dimension-form-width-xs)}.slider__label-row.sc-ds-slider{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dimension-space-100);min-width:0}.slider__label.sc-ds-slider{min-width:0}.slider__value.sc-ds-slider{flex-shrink:0}.slider__control.sc-ds-slider{position:relative;width:100%;height:var(--ds-slider-control-size);border-radius:var(--dimension-radius-half);cursor:default;touch-action:none;user-select:none}.slider--vertical.sc-ds-slider-h .slider__control.sc-ds-slider{align-self:center;width:var(--ds-slider-control-size);height:var(--ds-slider-vertical-length)}.slider--readonly.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:default}.ds-control-inactive.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:not-allowed}.slider__rail.sc-ds-slider{position:absolute;top:50%;right:0;left:0;height:var(--ds-slider-track-size);overflow:hidden;border-radius:var(--dimension-radius-025);background-color:transparent;box-shadow:inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);transform:translateY(-50%);pointer-events:none}.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{right:calc(var(--ds-slider-thumb-size) / 2);left:calc(var(--ds-slider-thumb-size) / 2)}.slider__indicator.sc-ds-slider{position:absolute;top:0;bottom:0;left:0;width:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );border-radius:inherit;background-color:var(--color-background-bold-brand)}.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );width:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc(var(--ds-slider-start-pct, 0) * 1%);width:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider__thumb.sc-ds-slider{position:absolute;top:50%;left:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));width:var(--ds-slider-thumb-size);height:var(--ds-slider-thumb-size);transform:translateY(-50%);z-index:1}.slider__thumb--active.sc-ds-slider{z-index:2}.slider__input.sc-ds-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;appearance:none;pointer-events:none;z-index:2}.slider__thumb-visual.sc-ds-slider{position:absolute;inset:0;box-sizing:border-box;overflow:visible;border-radius:var(--dimension-radius-025);background-color:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-sm);pointer-events:none;transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.slider__thumb-wash.sc-ds-slider{position:absolute;inset:0;border-radius:inherit;background-color:transparent;transition:background-color var(--effect-motion-short-2)}@media (hover: hover) and (pointer: fine){.sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb.sc-ds-slider:hover .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-hover)}}[data-dragging].sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb--active.sc-ds-slider .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-pressed)}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.slider--vertical.sc-ds-slider-h .slider__rail.sc-ds-slider{top:0;right:auto;bottom:0;left:50%;width:var(--ds-slider-track-size);height:auto;transform:translateX(-50%)}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{top:calc(var(--ds-slider-thumb-size) / 2);bottom:calc(var(--ds-slider-thumb-size) / 2)}.slider--vertical.sc-ds-slider-h .slider__indicator.sc-ds-slider{top:auto;right:0;bottom:0;left:0;width:auto;height:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );height:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc(var(--ds-slider-start-pct, 0) * 1%);height:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider--vertical.sc-ds-slider-h .slider__thumb.sc-ds-slider{top:auto;bottom:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));left:50%;transform:translateX(-50%)}@media (prefers-reduced-motion: reduce){.slider__thumb-visual.sc-ds-slider,.slider__thumb-wash.sc-ds-slider{transition:none}}@media (forced-colors: active){.slider__rail.sc-ds-slider{border:var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);box-shadow:none}.slider__indicator.sc-ds-slider{background-color:var(--ds-forced-color-selected)}.slider__thumb-visual.sc-ds-slider{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);background-color:var(--ds-forced-color-surface);box-shadow:none}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline-color:var(--ds-forced-color-selected)}}.slider__tick.sc-ds-slider{position:absolute;top:calc( 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012) );left:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-thumb-size)) );transform:translateX(-50%);pointer-events:none}.slider__tick-mark.sc-ds-slider{display:block;width:var(--dimension-stroke-width-025);height:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-half);background:var(--color-foreground-tertiary)}.slider__tick-label.sc-ds-slider{width:max-content;max-width:none;position:absolute;top:calc(100% + var(--dimension-space-050));left:50%;transform:translateX(-50%);white-space:nowrap}.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{container-type:inline-size}.sc-ds-slider-h:not(.slider--vertical) .slider__tick-label.sc-ds-slider{--ds-slider-label-anchor:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100cqw - var(--ds-slider-thumb-size)) );transform:translateX( clamp( calc(-1 * var(--ds-slider-label-anchor)), -50%, calc(100cqw - var(--ds-slider-label-anchor) - 100%) ) )}.slider--tick-labels.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{margin-bottom:var(--dimension-space-200)}.slider--vertical.sc-ds-slider-h .slider__tick.sc-ds-slider{top:auto;bottom:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-thumb-size)) );left:calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));transform:translateY(50%)}.slider--vertical.sc-ds-slider-h .slider__tick-label.sc-ds-slider{top:50%;left:calc(100% + var(--dimension-space-050));transform:translateY(-50%)}`;let u=0;let m=0;const f=s(class s extends i{constructor(s){super();if(s!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsCommit=t(this,"dsCommit",7);this.internals=this.attachInternals();this.value=0;this.min=0;this.max=100;this.step=1;this.ticks=[];this.minStepsBetweenValues=0;this.showValue=true;this.size="md";this.orientation="horizontal";this.thumbAlignment="edge";this.disabled=false;this.readOnly=false;this.isInactive=false;this.ariaLabel=null;this.startLabel="Minimum value";this.endLabel="Maximum value";this.valueTexts=[];this.valuePrefix="";this.valueSuffix="";this.rangeSeparator="–";this.formDisabled=false;this.dragging=false;this.focused=false;this.touched=false;this.activeThumbIndex=0;this.generatedId=`ds-slider-${++u}`;this.labelId=`${this.generatedId}-label`;this.initialValue=0;this.lastCommittedValue=0;this.pointerId=null;this.pointerStartValue=0;this.controlEl=null;this.handleNativeInput=(s,i)=>{const t=s.target;this.activeThumbIndex=i;if(this.readOnly||this.isDisabled){t.value=String(this.resolvedValues[i]);return}this.setValueAt(i,Number(t.value))};this.handleNativeChange=()=>{if(!this.readOnly&&!this.isDisabled)this.commitIfChanged()};this.handleKeyDown=(s,i)=>{const t=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"];if(!this.readOnly&&this.resolvedTicks.length&&t.includes(s.key)){s.preventDefault();if(this.isDisabled)return;const t=this.resolvedTicks.filter((s=>s.value>=this.allowedMin(i)&&s.value<=this.allowedMax(i)));const e=this.resolvedValues[i];const r=["ArrowRight","ArrowUp","PageUp"].includes(s.key);const d=s.key==="Home"?t[0]:s.key==="End"?t[t.length-1]:r?t.find((s=>s.value>e)):[...t].reverse().find((s=>s.value<e));if(d&&this.setValueAt(i,d.value))this.commitIfChanged();return}if(!this.readOnly)return;if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(s.key)){s.preventDefault()}};this.handleFocus=s=>{this.activeThumbIndex=s;this.focused=true};this.handleBlur=s=>{const i=s.relatedTarget;if(i instanceof Node&&this.el.contains(i))return;this.focused=false;this.touched=true};this.handleHostClick=s=>{if(s.target!==this.el||this.isDisabled)return;const i=this.el.querySelectorAll(".slider__input");i[Math.min(this.activeThumbIndex,i.length-1)]?.focus()};this.handlePointerDown=s=>{if(s.button!==0||this.isDisabled||this.readOnly)return;s.preventDefault();const i=this.valueFromPointer(s);const t=this.closestThumbIndex(i,s.target);this.activeThumbIndex=t;this.pointerId=s.pointerId;this.pointerStartValue=this.cloneValue(this.publicValue);this.dragging=true;this.setValueAt(t,i);this.controlEl?.setPointerCapture(s.pointerId);requestAnimationFrame((()=>{const s=this.el.querySelectorAll(".slider__input")[t];s?.focus({preventScroll:true})}))};this.handlePointerMove=s=>{if(this.pointerId!==s.pointerId||!this.dragging)return;s.preventDefault();this.setValueAt(this.activeThumbIndex,this.valueFromPointer(s))}}componentWillLoad(){this.initialValue=this.cloneValue(this.publicValue);this.lastCommittedValue=this.cloneValue(this.publicValue);this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}syncFormValue(){const s=this.resolvedValues;if(this.isRange){l(this.internals,this.name,s,{inactive:this.isDisabled})}else{const i=String(s[0]);n(this.internals,this.name?i:null,{inactive:this.isDisabled,state:i})}}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.value=this.cloneValue(this.initialValue);this.lastCommittedValue=this.cloneValue(this.initialValue);this.dragging=false;this.focused=false;this.touched=false}formStateRestoreCallback(s){if(this.isRange){const i=o(s,2);this.value=i.length?i:this.cloneValue(this.initialValue)}else{const i=Number(c(s,"NaN"));if(Number.isFinite(i))this.value=i}this.lastCommittedValue=this.cloneValue(this.publicValue)}async setFocus(s=0){const i=this.el.querySelectorAll(".slider__input");i[Math.max(0,Math.min(s,i.length-1))]?.focus()}get isDisabled(){return this.disabled||this.isInactive||this.formDisabled}get isRange(){return Array.isArray(this.value)}get safeStep(){const s=Number(this.step);return Number.isFinite(s)&&s>0?s:1}get resolvedTicks(){const s=new Map;for(const i of this.ticks){if(Number.isFinite(i.value)&&i.value>=this.safeMin&&i.value<=this.safeMax)s.set(i.value,i)}return[...s.values()].sort(((s,i)=>s.value-i.value))}get safeMin(){return Number.isFinite(this.min)?this.min:0}get safeMax(){const s=this.safeMin;return Number.isFinite(this.max)&&this.max>s?this.max:s+this.safeStep}get minimumGap(){const s=Number.isFinite(this.minStepsBetweenValues)?Math.max(0,Math.floor(this.minStepsBetweenValues)):0;const i=this.resolvedTicks;const t=i.length?i[i.length-1].value-i[0].value:this.safeMax-this.safeMin;return Math.min(t,s*this.safeStep)}get resolvedValues(){const s=this.safeMin;const i=this.safeMax;if(!this.isRange)return[this.snap(Number(this.value))];const t=this.value;let e=this.snap(Number(t[0]??s));let r=this.snap(Number(t[1]??i));if(e>r)[e,r]=[r,e];const d=Math.min(this.minimumGap,i-s);if(r-e<d){r=Math.min(i,this.snap(e+d));e=Math.max(s,this.snap(r-d));const t=this.resolvedTicks;if(t.length&&r-e<d){r=t.find((s=>s.value>=e+d))?.value??t[t.length-1].value;e=[...t].reverse().find((s=>s.value<=r-d))?.value??t[0].value}}return[e,r]}get publicValue(){const s=this.resolvedValues;return this.isRange?[...s]:s[0]}cloneValue(s){return Array.isArray(s)?[...s]:s}valuesEqual(s,i){if(Array.isArray(s)&&Array.isArray(i)){return s.length===i.length&&s.every(((s,t)=>s===i[t]))}return!Array.isArray(s)&&!Array.isArray(i)&&s===i}decimalPlaces(s){const i=String(s).toLowerCase();if(i.includes("e-"))return Number(i.split("e-")[1])||0;return i.includes(".")?i.split(".")[1].length:0}snap(s,i=this.safeMin,t=this.safeMax){const e=this.resolvedTicks.filter((s=>s.value>=i&&s.value<=t));if(e.length)return e.reduce(((i,t)=>Math.abs(t.value-s)<Math.abs(i.value-s)?t:i)).value;if(this.step==="any")return Math.min(t,Math.max(i,Number.isFinite(s)?s:i));const r=Number.isFinite(s)?s:i;const d=i+Math.round((r-i)/this.safeStep)*this.safeStep;const a=Math.min(10,Math.max(this.decimalPlaces(i),this.decimalPlaces(t),this.decimalPlaces(this.safeStep)));return Number(Math.min(t,Math.max(i,d)).toFixed(a))}percent(s){return(s-this.safeMin)/(this.safeMax-this.safeMin)*100}allowedMin(s,i=this.resolvedValues){return this.isRange&&s===1?Math.min(this.safeMax,i[0]+this.minimumGap):this.safeMin}allowedMax(s,i=this.resolvedValues){return this.isRange&&s===0?Math.max(this.safeMin,i[1]-this.minimumGap):this.safeMax}setValueAt(s,i){const t=this.publicValue;const e=this.resolvedValues;const r=Math.min(this.allowedMax(s,e),Math.max(this.allowedMin(s,e),this.snap(i,this.allowedMin(s,e),this.allowedMax(s,e))));e[s]=r;const d=this.isRange?[...e]:e[0];if(this.valuesEqual(t,d))return false;this.value=d;this.dsChange.emit(this.cloneValue(d));return true}commitIfChanged(){const s=this.publicValue;if(this.valuesEqual(s,this.lastCommittedValue))return;this.lastCommittedValue=this.cloneValue(s);this.dsCommit.emit(this.cloneValue(s))}syncNativeLabels(){if(this.label||this.ariaLabel||this.ariaLabelledby||this.isRange)return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-slider-label-${++m}`;return s.id}));if(s.length)this.externalLabelledby=s.join(" ")}formattedValue(s,i){const t=this.valueTexts[i]??this.valueText??this.resolvedTicks.find((i=>i.value===s))?.label;if(t)return t;let e;try{e=new Intl.NumberFormat(this.locale,this.formatOptions).format(s)}catch{e=String(s)}return`${this.valuePrefix}${e}${this.valueSuffix}`}ariaValueText(s,i){if(this.resolvedTicks.some((i=>i.value===s&&i.label))||this.valueTexts[i]||this.valueText||this.valuePrefix||this.valueSuffix||this.formatOptions){return this.formattedValue(s,i)}return undefined}pointerPercent(s){const i=this.controlEl;if(!i)return 0;const t=i.getBoundingClientRect();const e=this.el.querySelector(".slider__thumb");const r=e?this.orientation==="horizontal"?e.offsetWidth:e.offsetHeight:0;const d=r/2;if(this.orientation==="vertical"){const i=Math.max(1,t.height-d*2);return Math.min(1,Math.max(0,(t.bottom-d-s.clientY)/i))}const a=Math.max(1,t.width-d*2);const l=(s.clientX-t.left-d)/a;return Math.min(1,Math.max(0,l))}valueFromPointer(s){return this.snap(this.safeMin+this.pointerPercent(s)*(this.safeMax-this.safeMin))}closestThumbIndex(s,t){const e=t instanceof i?t.closest(".slider__thumb"):null;if(e?.dataset["index"])return Number(e.dataset["index"]);if(!this.isRange)return 0;const r=this.resolvedValues;const d=Math.abs(s-r[0]);const a=Math.abs(s-r[1]);if(d===a)return s>=r[0]?1:0;return d<a?0:1}endPointerInteraction(s,i){if(this.pointerId!==s.pointerId)return;if(this.controlEl?.hasPointerCapture(s.pointerId))this.controlEl.releasePointerCapture(s.pointerId);this.pointerId=null;this.dragging=false;this.touched=true;if(!i&&!this.valuesEqual(this.pointerStartValue,this.publicValue))this.commitIfChanged()}renderThumb(s,i){const t=i===0?this.inputId??`${this.generatedId}-input`:`${this.inputId??`${this.generatedId}-input`}-end`;const r=i===0?this.startLabel:this.endLabel;const d=this.isRange?undefined:this.ariaLabelledby??(this.label?this.labelId:this.externalLabelledby);const a=this.isRange?r:d?undefined:this.ariaLabel;return e("div",{class:{slider__thumb:true,"slider__thumb--active":i===this.activeThumbIndex},"data-index":String(i),style:{"--ds-slider-thumb-pct":String(this.percent(s))}},e("input",{class:"slider__input",type:"range",id:t,min:this.allowedMin(i),max:this.allowedMax(i),step:this.resolvedTicks.length||this.step==="any"?"any":this.safeStep,value:s,disabled:this.isDisabled,"aria-label":a,"aria-labelledby":d,"aria-describedby":this.ariaDescribedby,"aria-valuetext":this.ariaValueText(s,i),"aria-orientation":this.orientation==="vertical"?"vertical":undefined,"aria-readonly":this.readOnly?"true":undefined,onInput:s=>this.handleNativeInput(s,i),onChange:this.handleNativeChange,onKeyDown:s=>this.handleKeyDown(s,i),onFocus:()=>this.handleFocus(i),onBlur:this.handleBlur}),e("span",{class:"slider__thumb-visual","aria-hidden":"true"},e("span",{class:"slider__thumb-wash"})))}render(){const s=this.resolvedValues;const i=s[0];const t=s[s.length-1];const d=this.inputId??`${this.generatedId}-input`;const a=!this.valuesEqual(this.publicValue,this.initialValue);const l=s.map(((s,i)=>this.formattedValue(s,i))).join(` ${this.rangeSeparator} `);return e(r,{key:"eb85fed128846422f93314eda725d54db0cf5ca8","aria-disabled":this.isDisabled?"true":undefined,class:{slider:true,"ds-field-stack":true,[`slider--${this.size}`]:true,[`slider--${this.orientation}`]:true,[`slider--thumb-${this.thumbAlignment}`]:true,"slider--range":this.isRange,"slider--ticks":this.resolvedTicks.length>0,"slider--tick-labels":this.resolvedTicks.some((s=>Boolean(s.label))),"slider--readonly":this.readOnly,"ds-control-inactive":this.isDisabled},"data-orientation":this.orientation,"data-disabled":this.isDisabled?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-dragging":this.dragging?"":undefined,"data-focused":this.focused?"":undefined,"data-filled":"","data-dirty":a?"":undefined,"data-touched":this.touched?"":undefined,"data-valid":!this.isDisabled?"":undefined,onClick:this.handleHostClick},(this.label||this.showValue)&&e("div",{key:"c0073287ba8cf39a97474f00471b49b572a298ec",class:"slider__label-row"},this.label&&e("ds-text",{key:"ec357f3a6e3c6302d5399a67db7321e2b6baddd3",class:"slider__label",as:"label",variant:"text-body-small",color:"primary",emphasis:true,for:d,textId:this.labelId},this.label),this.showValue&&e("ds-text",{key:"3aefe3998f442c98b2151a9f1a7e1997c5ea618b",class:"slider__value",as:"span",variant:"text-body-small",color:"primary",fontFeature:"tabular-nums"},l)),e("div",{key:"ec9ab84d1183c75b111a881de89f006fd49223e6",class:"slider__control",ref:s=>{this.controlEl=s??null},style:{"--ds-slider-start-pct":String(this.isRange?this.percent(i):0),"--ds-slider-end-pct":String(this.percent(t))},onPointerDown:this.handlePointerDown,onPointerMove:this.handlePointerMove,onPointerUp:s=>this.endPointerInteraction(s,false),onPointerCancel:s=>this.endPointerInteraction(s,true)},e("div",{key:"82fc212045692f4f1422f7f9b3fe298e9d09b70e",class:"slider__rail","aria-hidden":"true"},e("div",{key:"5a415c664346efc66b2ca56828d4ad7422a6f115",class:"slider__indicator"})),this.resolvedTicks.map((s=>e("span",{class:"slider__tick","data-edge":s.value===this.safeMin?"start":s.value===this.safeMax?"end":undefined,"aria-hidden":"true",style:{"--ds-slider-tick-pct":String(this.percent(s.value))}},e("span",{class:"slider__tick-mark"}),s.label&&e("ds-text",{class:"slider__tick-label",as:"span",variant:"text-caption",color:"secondary"},s.label)))),s.map(((s,i)=>this.renderThumb(s,i)))))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}}static get style(){return h()}},[66,"ds-slider",{value:[1026],min:[2],max:[2],step:[8],ticks:[16],minStepsBetweenValues:[2,"min-steps-between-values"],label:[1],showValue:[4,"show-value"],size:[1],orientation:[1],thumbAlignment:[1,"thumb-alignment"],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],isInactive:[4,"is-inactive"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],startLabel:[1,"start-label"],endLabel:[1,"end-label"],valueText:[1,"value-text"],valueTexts:[16],locale:[1],formatOptions:[16],valuePrefix:[1,"value-prefix"],valueSuffix:[1,"value-suffix"],rangeSeparator:[1,"range-separator"],inputId:[1,"input-id"],formDisabled:[32],dragging:[32],focused:[32],touched:[32],activeThumbIndex:[32],externalLabelledby:[32],setFocus:[64]},undefined,{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}]);function b(){if(typeof customElements==="undefined"){return}const s=["ds-slider","ds-text"];s.forEach((s=>{switch(s){case"ds-slider":if(!customElements.get(d(s))){customElements.define(d(s),f)}break;case"ds-text":if(!customElements.get(d(s))){a()}break}}))}b();const v=f;const p=b;export{v as DsSlider,p as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-slider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sliderCss","sliderId","sliderExternalLabelId","Slider","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","min","max","step","minStepsBetweenValues","showValue","size","orientation","thumbAlignment","disabled","readOnly","isInactive","ariaLabel","startLabel","endLabel","valueTexts","valuePrefix","valueSuffix","rangeSeparator","formDisabled","dragging","focused","touched","activeThumbIndex","generatedId","labelId","initialValue","lastCommittedValue","pointerId","pointerStartValue","controlEl","handleNativeInput","event","index","input","target","isDisabled","String","resolvedValues","setValueAt","Number","handleNativeChange","commitIfChanged","handleKeyDown","includes","key","preventDefault","handleFocus","handleBlur","next","relatedTarget","Node","el","contains","handleHostClick","inputs","querySelectorAll","Math","length","focus","handlePointerDown","button","valueFromPointer","closestThumbIndex","cloneValue","publicValue","setPointerCapture","requestAnimationFrame","preventScroll","handlePointerMove","componentWillLoad","syncFormValue","componentDidLoad","syncNativeLabels","values","isRange","setRepeatedFormControlValue","internals","name","inactive","setFormControlValue","state","formDisabledCallback","formResetCallback","formStateRestoreCallback","restored","restoreNumberArrayFormState","restoreStringFormState","isFinite","setFocus","Array","isArray","safeStep","safeMin","safeMax","minimum","minimumGap","steps","floor","maximum","snap","raw","lower","upper","gap","valuesEqual","a","b","every","decimalPlaces","text","toLowerCase","split","candidate","stepped","round","precision","toFixed","percent","allowedMin","allowedMax","previous","constrained","nextValue","dsChange","emit","current","dsCommit","label","ariaLabelledby","ids","from","labels","map","id","externalLabelledby","join","formattedValue","authored","valueText","number","Intl","NumberFormat","locale","formatOptions","format","ariaValueText","undefined","pointerPercent","control","rect","getBoundingClientRect","thumb","querySelector","thumbSize","offsetWidth","offsetHeight","inset","travel","height","bottom","clientY","width","clientX","left","targetElement","closest","dataset","lowerDistance","abs","upperDistance","endPointerInteraction","canceled","hasPointerCapture","releasePointerCapture","renderThumb","inputId","rangeLabel","labelledby","directLabel","h","class","slider__thumb","style","type","ariaDescribedby","onInput","onChange","onKeyDown","onFocus","onBlur","render","first","last","firstInputId","dirty","valueDisplay","Host","slider","onClick","as","variant","color","emphasis","for","textId","fontFeature","ref","element","onPointerDown","onPointerMove","onPointerUp","onPointerCancel"],"sources":["src/wc/components/Slider/Slider.css?tag=ds-slider&encapsulation=scoped","src/wc/components/Slider/Slider.tsx"],"sourcesContent":["@import '../../utils/control-inactive.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-thumb-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n box-sizing: border-box;\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-thumb-size: var(--dimension-size-150);\n --ds-slider-track-size: var(--dimension-size-075);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-thumb-size: var(--dimension-size-100);\n --ds-slider-track-size: var(--dimension-size-050);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: default;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (50% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-025);\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-025);\n background-color: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-sm);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb:hover\n .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n }\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active\n .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .slider__rail {\n border: var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .slider__indicator {\n background-color: var(--ds-forced-color-selected);\n }\n\n .slider__thumb-visual {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n background-color: var(--ds-forced-color-surface);\n box-shadow: none;\n }\n\n .slider__input:focus-visible + .slider__thumb-visual,\n :host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n restoreNumberArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n} from '../../utils';\n\nexport type SliderValue = number | number[];\nexport type SliderSize = 'md' | 'sm' | 'xs';\nexport type SliderOrientation = 'horizontal' | 'vertical';\nexport type SliderThumbAlignment = 'edge' | 'center';\n\nlet sliderId = 0;\nlet sliderExternalLabelId = 0;\n\n@Component({\n tag: 'ds-slider',\n styleUrl: 'Slider.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Slider {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Current value. Assign a two-number array through the JavaScript property for a range slider. */\n @Prop({ mutable: true }) value: SliderValue = 0;\n @Prop() min: number = 0;\n @Prop() max: number = 100;\n @Prop() step: number = 1;\n /** Minimum number of steps kept between two range thumbs. */\n @Prop() minStepsBetweenValues: number = 0;\n /** Visible field label. Supply aria-label when the label is intentionally hidden. */\n @Prop() label: string | undefined;\n /** Show the formatted current value beside the visible label. */\n @Prop() showValue: boolean = true;\n @Prop() size: SliderSize = 'md';\n @Prop() orientation: SliderOrientation = 'horizontal';\n /** Align the thumb edge with full-width rail endpoints, or its center with inset rail endpoints. */\n @Prop() thumbAlignment: SliderThumbAlignment = 'edge';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Keep the value focusable and submittable while preventing changes. */\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop() isInactive: boolean = false;\n /** Direct accessible name for a single-thumb slider without a visible label. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Id references for a visible single-thumb slider label. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Id references for supporting guidance or error text. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n /** Accessible label for the lower thumb in a range slider. */\n @Prop() startLabel: string = 'Minimum value';\n /** Accessible label for the upper thumb in a range slider. */\n @Prop() endLabel: string = 'Maximum value';\n /** Human-readable value text for a single slider or both range thumbs. */\n @Prop() valueText: string | undefined;\n /** Per-thumb human-readable value text for a range slider. Assign through the JavaScript property. */\n @Prop() valueTexts: string[] = [];\n /** Locale used by Intl.NumberFormat for the visible value. */\n @Prop() locale: string | undefined;\n /** Intl.NumberFormat options. Assign objects through the JavaScript property. */\n @Prop() formatOptions: Intl.NumberFormatOptions | undefined;\n @Prop() valuePrefix: string = '';\n @Prop() valueSuffix: string = '';\n @Prop() rangeSeparator: string = '–';\n /** Id applied to the first native range input. */\n @Prop() inputId: string | undefined;\n\n /** Emitted continuously while the value changes. */\n @Event() dsChange!: EventEmitter<SliderValue>;\n /** Emitted when a pointer or keyboard value change is committed. */\n @Event() dsCommit!: EventEmitter<SliderValue>;\n\n @State() private formDisabled = false;\n @State() private dragging = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private activeThumbIndex = 0;\n @State() private externalLabelledby: string | undefined;\n\n private readonly generatedId = `ds-slider-${++sliderId}`;\n private readonly labelId = `${this.generatedId}-label`;\n private initialValue: SliderValue = 0;\n private lastCommittedValue: SliderValue = 0;\n private pointerId: number | null = null;\n private pointerStartValue: SliderValue = 0;\n private controlEl: HTMLDivElement | null = null;\n\n componentWillLoad() {\n this.initialValue = this.cloneValue(this.publicValue);\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.syncNativeLabels();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n @Watch('minStepsBetweenValues')\n @Watch('name')\n @Watch('disabled')\n @Watch('isInactive')\n syncFormValue() {\n const values = this.resolvedValues;\n if (this.isRange) {\n setRepeatedFormControlValue(this.internals, this.name, values, {\n inactive: this.isDisabled,\n });\n } else {\n const value = String(values[0]);\n setFormControlValue(this.internals, this.name ? value : null, {\n inactive: this.isDisabled,\n state: value,\n });\n }\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.cloneValue(this.initialValue);\n this.lastCommittedValue = this.cloneValue(this.initialValue);\n this.dragging = false;\n this.focused = false;\n this.touched = false;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (this.isRange) {\n const restored = restoreNumberArrayFormState(state, 2);\n this.value = restored.length ? restored : this.cloneValue(this.initialValue);\n } else {\n const restored = Number(restoreStringFormState(state, 'NaN'));\n if (Number.isFinite(restored)) this.value = restored;\n }\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n }\n\n @Method()\n async setFocus(index: number = 0) {\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.max(0, Math.min(index, inputs.length - 1))]?.focus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private get isRange(): boolean {\n return Array.isArray(this.value);\n }\n\n private get safeStep(): number {\n return Number.isFinite(this.step) && this.step > 0 ? this.step : 1;\n }\n\n private get safeMin(): number {\n return Number.isFinite(this.min) ? this.min : 0;\n }\n\n private get safeMax(): number {\n const minimum = this.safeMin;\n return Number.isFinite(this.max) && this.max > minimum ? this.max : minimum + this.safeStep;\n }\n\n private get minimumGap(): number {\n const steps = Number.isFinite(this.minStepsBetweenValues)\n ? Math.max(0, Math.floor(this.minStepsBetweenValues))\n : 0;\n return steps * this.safeStep;\n }\n\n private get resolvedValues(): number[] {\n const minimum = this.safeMin;\n const maximum = this.safeMax;\n if (!this.isRange) return [this.snap(Number(this.value))];\n\n const raw = this.value as number[];\n let lower = this.snap(Number(raw[0] ?? minimum));\n let upper = this.snap(Number(raw[1] ?? maximum));\n if (lower > upper) [lower, upper] = [upper, lower];\n\n const gap = Math.min(this.minimumGap, maximum - minimum);\n if (upper - lower < gap) {\n upper = Math.min(maximum, this.snap(lower + gap));\n lower = Math.max(minimum, this.snap(upper - gap));\n }\n return [lower, upper];\n }\n\n private get publicValue(): SliderValue {\n const values = this.resolvedValues;\n return this.isRange ? [...values] : values[0];\n }\n\n private cloneValue(value: SliderValue): SliderValue {\n return Array.isArray(value) ? [...value] : value;\n }\n\n private valuesEqual(a: SliderValue, b: SliderValue): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n }\n return !Array.isArray(a) && !Array.isArray(b) && a === b;\n }\n\n private decimalPlaces(value: number): number {\n const text = String(value).toLowerCase();\n if (text.includes('e-')) return Number(text.split('e-')[1]) || 0;\n return text.includes('.') ? text.split('.')[1].length : 0;\n }\n\n private snap(value: number): number {\n const minimum = this.safeMin;\n const maximum = this.safeMax;\n const candidate = Number.isFinite(value) ? value : minimum;\n const stepped = minimum + Math.round((candidate - minimum) / this.safeStep) * this.safeStep;\n const precision = Math.min(\n 10,\n Math.max(\n this.decimalPlaces(minimum),\n this.decimalPlaces(maximum),\n this.decimalPlaces(this.safeStep)\n )\n );\n return Number(Math.min(maximum, Math.max(minimum, stepped)).toFixed(precision));\n }\n\n private percent(value: number): number {\n return ((value - this.safeMin) / (this.safeMax - this.safeMin)) * 100;\n }\n\n private allowedMin(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 1\n ? Math.min(this.safeMax, values[0] + this.minimumGap)\n : this.safeMin;\n }\n\n private allowedMax(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 0\n ? Math.max(this.safeMin, values[1] - this.minimumGap)\n : this.safeMax;\n }\n\n private setValueAt(index: number, next: number): boolean {\n const previous = this.publicValue;\n const values = this.resolvedValues;\n const constrained = Math.min(\n this.allowedMax(index, values),\n Math.max(this.allowedMin(index, values), this.snap(next))\n );\n values[index] = constrained;\n const nextValue: SliderValue = this.isRange ? [...values] : values[0];\n if (this.valuesEqual(previous, nextValue)) return false;\n\n this.value = nextValue;\n this.dsChange.emit(this.cloneValue(nextValue));\n return true;\n }\n\n private commitIfChanged() {\n const current = this.publicValue;\n if (this.valuesEqual(current, this.lastCommittedValue)) return;\n this.lastCommittedValue = this.cloneValue(current);\n this.dsCommit.emit(this.cloneValue(current));\n }\n\n private syncNativeLabels() {\n if (this.label || this.ariaLabel || this.ariaLabelledby || this.isRange) return;\n const ids = (Array.from(this.internals.labels) as HTMLLabelElement[]).map(label => {\n if (!label.id) label.id = `ds-slider-label-${++sliderExternalLabelId}`;\n return label.id;\n });\n if (ids.length) this.externalLabelledby = ids.join(' ');\n }\n\n private formattedValue(value: number, index: number): string {\n const authored = this.valueTexts[index] ?? this.valueText;\n if (authored) return authored;\n let number: string;\n try {\n number = new Intl.NumberFormat(this.locale, this.formatOptions).format(value);\n } catch {\n number = String(value);\n }\n return `${this.valuePrefix}${number}${this.valueSuffix}`;\n }\n\n private ariaValueText(value: number, index: number): string | undefined {\n if (\n this.valueTexts[index] ||\n this.valueText ||\n this.valuePrefix ||\n this.valueSuffix ||\n this.formatOptions\n ) {\n return this.formattedValue(value, index);\n }\n return undefined;\n }\n\n private handleNativeInput = (event: Event, index: number) => {\n const input = event.target as HTMLInputElement;\n this.activeThumbIndex = index;\n if (this.readOnly || this.isDisabled) {\n input.value = String(this.resolvedValues[index]);\n return;\n }\n this.setValueAt(index, Number(input.value));\n };\n\n private handleNativeChange = () => {\n if (!this.readOnly && !this.isDisabled) this.commitIfChanged();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.readOnly) return;\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ].includes(event.key)\n ) {\n event.preventDefault();\n }\n };\n\n private handleFocus = (index: number) => {\n this.activeThumbIndex = index;\n this.focused = true;\n };\n\n private handleBlur = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && this.el.contains(next)) return;\n this.focused = false;\n this.touched = true;\n };\n\n private handleHostClick = (event: MouseEvent) => {\n if (event.target !== this.el || this.isDisabled) return;\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.min(this.activeThumbIndex, inputs.length - 1)]?.focus();\n };\n\n private pointerPercent(event: PointerEvent): number {\n const control = this.controlEl;\n if (!control) return 0;\n const rect = control.getBoundingClientRect();\n const thumb = this.el.querySelector<HTMLElement>('.slider__thumb');\n const thumbSize = thumb\n ? this.orientation === 'horizontal'\n ? thumb.offsetWidth\n : thumb.offsetHeight\n : 0;\n // Both alignment modes keep the complete thumb inside the control. Edge\n // alignment lets the rail span the control while center alignment insets\n // the rail to the same thumb-center travel.\n const inset = thumbSize / 2;\n\n if (this.orientation === 'vertical') {\n const travel = Math.max(1, rect.height - inset * 2);\n return Math.min(1, Math.max(0, (rect.bottom - inset - event.clientY) / travel));\n }\n\n const travel = Math.max(1, rect.width - inset * 2);\n const percent = (event.clientX - rect.left - inset) / travel;\n return Math.min(1, Math.max(0, percent));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n return this.snap(this.safeMin + this.pointerPercent(event) * (this.safeMax - this.safeMin));\n }\n\n private closestThumbIndex(value: number, target: EventTarget | null): number {\n const targetElement =\n target instanceof HTMLElement ? target.closest<HTMLElement>('.slider__thumb') : null;\n if (targetElement?.dataset['index']) return Number(targetElement.dataset['index']);\n if (!this.isRange) return 0;\n\n const values = this.resolvedValues;\n const lowerDistance = Math.abs(value - values[0]);\n const upperDistance = Math.abs(value - values[1]);\n if (lowerDistance === upperDistance) return value >= values[0] ? 1 : 0;\n return lowerDistance < upperDistance ? 0 : 1;\n }\n\n private handlePointerDown = (event: PointerEvent) => {\n if (event.button !== 0 || this.isDisabled || this.readOnly) return;\n event.preventDefault();\n const value = this.valueFromPointer(event);\n const index = this.closestThumbIndex(value, event.target);\n this.activeThumbIndex = index;\n this.pointerId = event.pointerId;\n this.pointerStartValue = this.cloneValue(this.publicValue);\n this.dragging = true;\n this.setValueAt(index, value);\n this.controlEl?.setPointerCapture(event.pointerId);\n requestAnimationFrame(() => {\n const input = this.el.querySelectorAll<HTMLInputElement>('.slider__input')[index];\n input?.focus({ preventScroll: true });\n });\n };\n\n private handlePointerMove = (event: PointerEvent) => {\n if (this.pointerId !== event.pointerId || !this.dragging) return;\n event.preventDefault();\n this.setValueAt(this.activeThumbIndex, this.valueFromPointer(event));\n };\n\n private endPointerInteraction(event: PointerEvent, canceled: boolean) {\n if (this.pointerId !== event.pointerId) return;\n if (this.controlEl?.hasPointerCapture(event.pointerId))\n this.controlEl.releasePointerCapture(event.pointerId);\n this.pointerId = null;\n this.dragging = false;\n this.touched = true;\n if (!canceled && !this.valuesEqual(this.pointerStartValue, this.publicValue))\n this.commitIfChanged();\n }\n\n private renderThumb(value: number, index: number) {\n const inputId =\n index === 0\n ? (this.inputId ?? `${this.generatedId}-input`)\n : `${this.inputId ?? `${this.generatedId}-input`}-end`;\n const rangeLabel = index === 0 ? this.startLabel : this.endLabel;\n const labelledby = this.isRange\n ? undefined\n : (this.ariaLabelledby ?? (this.label ? this.labelId : this.externalLabelledby));\n const directLabel = this.isRange ? rangeLabel : labelledby ? undefined : this.ariaLabel;\n\n return (\n <div\n class={{\n slider__thumb: true,\n 'slider__thumb--active': index === this.activeThumbIndex,\n }}\n data-index={String(index)}\n style={{ '--ds-slider-thumb-pct': String(this.percent(value)) } as Record<string, string>}\n >\n <input\n class=\"slider__input\"\n type=\"range\"\n id={inputId}\n min={this.allowedMin(index)}\n max={this.allowedMax(index)}\n step={this.safeStep}\n value={value}\n disabled={this.isDisabled}\n aria-label={directLabel}\n aria-labelledby={labelledby}\n aria-describedby={this.ariaDescribedby}\n aria-valuetext={this.ariaValueText(value, index)}\n aria-orientation={this.orientation === 'vertical' ? 'vertical' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n onInput={(event: Event) => this.handleNativeInput(event, index)}\n onChange={this.handleNativeChange}\n onKeyDown={this.handleKeyDown}\n onFocus={() => this.handleFocus(index)}\n onBlur={this.handleBlur}\n />\n <span class=\"slider__thumb-visual\" aria-hidden=\"true\">\n <span class=\"slider__thumb-wash\" />\n </span>\n </div>\n );\n }\n\n render() {\n const values = this.resolvedValues;\n const first = values[0];\n const last = values[values.length - 1];\n const firstInputId = this.inputId ?? `${this.generatedId}-input`;\n const dirty = !this.valuesEqual(this.publicValue, this.initialValue);\n const valueDisplay = values\n .map((value, index) => this.formattedValue(value, index))\n .join(` ${this.rangeSeparator} `);\n\n return (\n <Host\n aria-disabled={this.isDisabled ? 'true' : undefined}\n class={{\n slider: true,\n 'ds-field-stack': true,\n [`slider--${this.size}`]: true,\n [`slider--${this.orientation}`]: true,\n [`slider--thumb-${this.thumbAlignment}`]: true,\n 'slider--range': this.isRange,\n 'slider--readonly': this.readOnly,\n 'ds-control-inactive': this.isDisabled,\n }}\n data-orientation={this.orientation}\n data-disabled={this.isDisabled ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-dragging={this.dragging ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-filled=\"\"\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n data-valid={!this.isDisabled ? '' : undefined}\n onClick={this.handleHostClick}\n >\n {(this.label || this.showValue) && (\n <div class=\"slider__label-row\">\n {this.label && (\n <ds-text\n class=\"slider__label\"\n as=\"label\"\n variant=\"text-body-small\"\n color=\"primary\"\n emphasis\n for={firstInputId}\n textId={this.labelId}\n >\n {this.label}\n </ds-text>\n )}\n {this.showValue && (\n <ds-text\n class=\"slider__value\"\n as=\"span\"\n variant=\"text-body-small\"\n color=\"primary\"\n fontFeature=\"tabular-nums\"\n >\n {valueDisplay}\n </ds-text>\n )}\n </div>\n )}\n <div\n class=\"slider__control\"\n ref={element => {\n this.controlEl = element ?? null;\n }}\n style={\n {\n '--ds-slider-start-pct': String(this.isRange ? this.percent(first) : 0),\n '--ds-slider-end-pct': String(this.percent(last)),\n } as Record<string, string>\n }\n onPointerDown={this.handlePointerDown}\n onPointerMove={this.handlePointerMove}\n onPointerUp={(event: PointerEvent) => this.endPointerInteraction(event, false)}\n onPointerCancel={(event: PointerEvent) => this.endPointerInteraction(event, true)}\n >\n <div class=\"slider__rail\" aria-hidden=\"true\">\n <div class=\"slider__indicator\" />\n </div>\n {values.map((value, index) => this.renderThumb(value, index))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"+JAAA,MAAMA,EAAY,IAAM,ykQCyBxB,IAAIC,EAAW,EACf,IAAIC,EAAwB,E,MAQfC,EAAMC,EAAA,MAAAD,UAAAE,EANnB,WAAAC,CAAAC,G,wJAW2BC,KAAAC,MAAqB,EACtCD,KAAAE,IAAc,EACdF,KAAAG,IAAc,IACdH,KAAAI,KAAe,EAEfJ,KAAAK,sBAAgC,EAIhCL,KAAAM,UAAqB,KACrBN,KAAAO,KAAmB,KACnBP,KAAAQ,YAAiC,aAEjCR,KAAAS,eAAuC,OAGtBT,KAAAU,SAAoB,MAEpBV,KAAAW,SAAoB,MACrCX,KAAAY,WAAsB,MAEKZ,KAAAa,UAA2B,KAMtDb,KAAAc,WAAqB,gBAErBd,KAAAe,SAAmB,gBAInBf,KAAAgB,WAAuB,GAKvBhB,KAAAiB,YAAsB,GACtBjB,KAAAkB,YAAsB,GACtBlB,KAAAmB,eAAyB,IAShBnB,KAAAoB,aAAe,MACfpB,KAAAqB,SAAW,MACXrB,KAAAsB,QAAU,MACVtB,KAAAuB,QAAU,MACVvB,KAAAwB,iBAAmB,EAGnBxB,KAAAyB,YAAc,eAAehC,IAC7BO,KAAA0B,QAAU,GAAG1B,KAAKyB,oBAC3BzB,KAAA2B,aAA4B,EAC5B3B,KAAA4B,mBAAkC,EAClC5B,KAAA6B,UAA2B,KAC3B7B,KAAA8B,kBAAiC,EACjC9B,KAAA+B,UAAmC,KA8NnC/B,KAAAgC,kBAAoB,CAACC,EAAcC,KACzC,MAAMC,EAAQF,EAAMG,OACpBpC,KAAKwB,iBAAmBU,EACxB,GAAIlC,KAAKW,UAAYX,KAAKqC,WAAY,CACpCF,EAAMlC,MAAQqC,OAAOtC,KAAKuC,eAAeL,IACzC,M,CAEFlC,KAAKwC,WAAWN,EAAOO,OAAON,EAAMlC,OAAO,EAGrCD,KAAA0C,mBAAqB,KAC3B,IAAK1C,KAAKW,WAAaX,KAAKqC,WAAYrC,KAAK2C,iBAAiB,EAGxD3C,KAAA4C,cAAiBX,IACvB,IAAKjC,KAAKW,SAAU,OACpB,GACE,CACE,YACA,aACA,UACA,YACA,OACA,MACA,SACA,YACAkC,SAASZ,EAAMa,KACjB,CACAb,EAAMc,gB,GAIF/C,KAAAgD,YAAed,IACrBlC,KAAKwB,iBAAmBU,EACxBlC,KAAKsB,QAAU,IAAI,EAGbtB,KAAAiD,WAAchB,IACpB,MAAMiB,EAAOjB,EAAMkB,cACnB,GAAID,aAAgBE,MAAQpD,KAAKqD,GAAGC,SAASJ,GAAO,OACpDlD,KAAKsB,QAAU,MACftB,KAAKuB,QAAU,IAAI,EAGbvB,KAAAuD,gBAAmBtB,IACzB,GAAIA,EAAMG,SAAWpC,KAAKqD,IAAMrD,KAAKqC,WAAY,OACjD,MAAMmB,EAASxD,KAAKqD,GAAGI,iBAAmC,kBAC1DD,EAAOE,KAAKxD,IAAIF,KAAKwB,iBAAkBgC,EAAOG,OAAS,KAAKC,OAAO,EA6C7D5D,KAAA6D,kBAAqB5B,IAC3B,GAAIA,EAAM6B,SAAW,GAAK9D,KAAKqC,YAAcrC,KAAKW,SAAU,OAC5DsB,EAAMc,iBACN,MAAM9C,EAAQD,KAAK+D,iBAAiB9B,GACpC,MAAMC,EAAQlC,KAAKgE,kBAAkB/D,EAAOgC,EAAMG,QAClDpC,KAAKwB,iBAAmBU,EACxBlC,KAAK6B,UAAYI,EAAMJ,UACvB7B,KAAK8B,kBAAoB9B,KAAKiE,WAAWjE,KAAKkE,aAC9ClE,KAAKqB,SAAW,KAChBrB,KAAKwC,WAAWN,EAAOjC,GACvBD,KAAK+B,WAAWoC,kBAAkBlC,EAAMJ,WACxCuC,uBAAsB,KACpB,MAAMjC,EAAQnC,KAAKqD,GAAGI,iBAAmC,kBAAkBvB,GAC3EC,GAAOyB,MAAM,CAAES,cAAe,MAAO,GACrC,EAGIrE,KAAAsE,kBAAqBrC,IAC3B,GAAIjC,KAAK6B,YAAcI,EAAMJ,YAAc7B,KAAKqB,SAAU,OAC1DY,EAAMc,iBACN/C,KAAKwC,WAAWxC,KAAKwB,iBAAkBxB,KAAK+D,iBAAiB9B,GAAO,CAoJvE,CAheC,iBAAAsC,GACEvE,KAAK2B,aAAe3B,KAAKiE,WAAWjE,KAAKkE,aACzClE,KAAK4B,mBAAqB5B,KAAKiE,WAAWjE,KAAKkE,aAC/ClE,KAAKwE,e,CAGP,gBAAAC,GACEzE,KAAK0E,kB,CAWP,aAAAF,GACE,MAAMG,EAAS3E,KAAKuC,eACpB,GAAIvC,KAAK4E,QAAS,CAChBC,EAA4B7E,KAAK8E,UAAW9E,KAAK+E,KAAMJ,EAAQ,CAC7DK,SAAUhF,KAAKqC,Y,KAEZ,CACL,MAAMpC,EAAQqC,OAAOqC,EAAO,IAC5BM,EAAoBjF,KAAK8E,UAAW9E,KAAK+E,KAAO9E,EAAQ,KAAM,CAC5D+E,SAAUhF,KAAKqC,WACf6C,MAAOjF,G,EAKb,oBAAAkF,CAAqBzE,GACnBV,KAAKoB,aAAeV,EACpBV,KAAKwE,e,CAGP,iBAAAY,GACEpF,KAAKC,MAAQD,KAAKiE,WAAWjE,KAAK2B,cAClC3B,KAAK4B,mBAAqB5B,KAAKiE,WAAWjE,KAAK2B,cAC/C3B,KAAKqB,SAAW,MAChBrB,KAAKsB,QAAU,MACftB,KAAKuB,QAAU,K,CAGjB,wBAAA8D,CAAyBH,GACvB,GAAIlF,KAAK4E,QAAS,CAChB,MAAMU,EAAWC,EAA4BL,EAAO,GACpDlF,KAAKC,MAAQqF,EAAS3B,OAAS2B,EAAWtF,KAAKiE,WAAWjE,KAAK2B,a,KAC1D,CACL,MAAM2D,EAAW7C,OAAO+C,EAAuBN,EAAO,QACtD,GAAIzC,OAAOgD,SAASH,GAAWtF,KAAKC,MAAQqF,C,CAE9CtF,KAAK4B,mBAAqB5B,KAAKiE,WAAWjE,KAAKkE,Y,CAIjD,cAAMwB,CAASxD,EAAgB,GAC7B,MAAMsB,EAASxD,KAAKqD,GAAGI,iBAAmC,kBAC1DD,EAAOE,KAAKvD,IAAI,EAAGuD,KAAKxD,IAAIgC,EAAOsB,EAAOG,OAAS,MAAMC,O,CAG3D,cAAYvB,GACV,OAAOrC,KAAKU,UAAYV,KAAKY,YAAcZ,KAAKoB,Y,CAGlD,WAAYwD,GACV,OAAOe,MAAMC,QAAQ5F,KAAKC,M,CAG5B,YAAY4F,GACV,OAAOpD,OAAOgD,SAASzF,KAAKI,OAASJ,KAAKI,KAAO,EAAIJ,KAAKI,KAAO,C,CAGnE,WAAY0F,GACV,OAAOrD,OAAOgD,SAASzF,KAAKE,KAAOF,KAAKE,IAAM,C,CAGhD,WAAY6F,GACV,MAAMC,EAAUhG,KAAK8F,QACrB,OAAOrD,OAAOgD,SAASzF,KAAKG,MAAQH,KAAKG,IAAM6F,EAAUhG,KAAKG,IAAM6F,EAAUhG,KAAK6F,Q,CAGrF,cAAYI,GACV,MAAMC,EAAQzD,OAAOgD,SAASzF,KAAKK,uBAC/BqD,KAAKvD,IAAI,EAAGuD,KAAKyC,MAAMnG,KAAKK,wBAC5B,EACJ,OAAO6F,EAAQlG,KAAK6F,Q,CAGtB,kBAAYtD,GACV,MAAMyD,EAAUhG,KAAK8F,QACrB,MAAMM,EAAUpG,KAAK+F,QACrB,IAAK/F,KAAK4E,QAAS,MAAO,CAAC5E,KAAKqG,KAAK5D,OAAOzC,KAAKC,SAEjD,MAAMqG,EAAMtG,KAAKC,MACjB,IAAIsG,EAAQvG,KAAKqG,KAAK5D,OAAO6D,EAAI,IAAMN,IACvC,IAAIQ,EAAQxG,KAAKqG,KAAK5D,OAAO6D,EAAI,IAAMF,IACvC,GAAIG,EAAQC,GAAQD,EAAOC,GAAS,CAACA,EAAOD,GAE5C,MAAME,EAAM/C,KAAKxD,IAAIF,KAAKiG,WAAYG,EAAUJ,GAChD,GAAIQ,EAAQD,EAAQE,EAAK,CACvBD,EAAQ9C,KAAKxD,IAAIkG,EAASpG,KAAKqG,KAAKE,EAAQE,IAC5CF,EAAQ7C,KAAKvD,IAAI6F,EAAShG,KAAKqG,KAAKG,EAAQC,G,CAE9C,MAAO,CAACF,EAAOC,E,CAGjB,eAAYtC,GACV,MAAMS,EAAS3E,KAAKuC,eACpB,OAAOvC,KAAK4E,QAAU,IAAID,GAAUA,EAAO,E,CAGrC,UAAAV,CAAWhE,GACjB,OAAO0F,MAAMC,QAAQ3F,GAAS,IAAIA,GAASA,C,CAGrC,WAAAyG,CAAYC,EAAgBC,GAClC,GAAIjB,MAAMC,QAAQe,IAAMhB,MAAMC,QAAQgB,GAAI,CACxC,OAAOD,EAAEhD,SAAWiD,EAAEjD,QAAUgD,EAAEE,OAAM,CAAC5G,EAAOiC,IAAUjC,IAAU2G,EAAE1E,I,CAExE,OAAQyD,MAAMC,QAAQe,KAAOhB,MAAMC,QAAQgB,IAAMD,IAAMC,C,CAGjD,aAAAE,CAAc7G,GACpB,MAAM8G,EAAOzE,OAAOrC,GAAO+G,cAC3B,GAAID,EAAKlE,SAAS,MAAO,OAAOJ,OAAOsE,EAAKE,MAAM,MAAM,KAAO,EAC/D,OAAOF,EAAKlE,SAAS,KAAOkE,EAAKE,MAAM,KAAK,GAAGtD,OAAS,C,CAGlD,IAAA0C,CAAKpG,GACX,MAAM+F,EAAUhG,KAAK8F,QACrB,MAAMM,EAAUpG,KAAK+F,QACrB,MAAMmB,EAAYzE,OAAOgD,SAASxF,GAASA,EAAQ+F,EACnD,MAAMmB,EAAUnB,EAAUtC,KAAK0D,OAAOF,EAAYlB,GAAWhG,KAAK6F,UAAY7F,KAAK6F,SACnF,MAAMwB,EAAY3D,KAAKxD,IACrB,GACAwD,KAAKvD,IACHH,KAAK8G,cAAcd,GACnBhG,KAAK8G,cAAcV,GACnBpG,KAAK8G,cAAc9G,KAAK6F,YAG5B,OAAOpD,OAAOiB,KAAKxD,IAAIkG,EAAS1C,KAAKvD,IAAI6F,EAASmB,IAAUG,QAAQD,G,CAG9D,OAAAE,CAAQtH,GACd,OAASA,EAAQD,KAAK8F,UAAY9F,KAAK+F,QAAU/F,KAAK8F,SAAY,G,CAG5D,UAAA0B,CAAWtF,EAAeyC,EAAS3E,KAAKuC,gBAC9C,OAAOvC,KAAK4E,SAAW1C,IAAU,EAC7BwB,KAAKxD,IAAIF,KAAK+F,QAASpB,EAAO,GAAK3E,KAAKiG,YACxCjG,KAAK8F,O,CAGH,UAAA2B,CAAWvF,EAAeyC,EAAS3E,KAAKuC,gBAC9C,OAAOvC,KAAK4E,SAAW1C,IAAU,EAC7BwB,KAAKvD,IAAIH,KAAK8F,QAASnB,EAAO,GAAK3E,KAAKiG,YACxCjG,KAAK+F,O,CAGH,UAAAvD,CAAWN,EAAegB,GAChC,MAAMwE,EAAW1H,KAAKkE,YACtB,MAAMS,EAAS3E,KAAKuC,eACpB,MAAMoF,EAAcjE,KAAKxD,IACvBF,KAAKyH,WAAWvF,EAAOyC,GACvBjB,KAAKvD,IAAIH,KAAKwH,WAAWtF,EAAOyC,GAAS3E,KAAKqG,KAAKnD,KAErDyB,EAAOzC,GAASyF,EAChB,MAAMC,EAAyB5H,KAAK4E,QAAU,IAAID,GAAUA,EAAO,GACnE,GAAI3E,KAAK0G,YAAYgB,EAAUE,GAAY,OAAO,MAElD5H,KAAKC,MAAQ2H,EACb5H,KAAK6H,SAASC,KAAK9H,KAAKiE,WAAW2D,IACnC,OAAO,I,CAGD,eAAAjF,GACN,MAAMoF,EAAU/H,KAAKkE,YACrB,GAAIlE,KAAK0G,YAAYqB,EAAS/H,KAAK4B,oBAAqB,OACxD5B,KAAK4B,mBAAqB5B,KAAKiE,WAAW8D,GAC1C/H,KAAKgI,SAASF,KAAK9H,KAAKiE,WAAW8D,G,CAG7B,gBAAArD,GACN,GAAI1E,KAAKiI,OAASjI,KAAKa,WAAab,KAAKkI,gBAAkBlI,KAAK4E,QAAS,OACzE,MAAMuD,EAAOxC,MAAMyC,KAAKpI,KAAK8E,UAAUuD,QAA+BC,KAAIL,IACxE,IAAKA,EAAMM,GAAIN,EAAMM,GAAK,qBAAqB7I,IAC/C,OAAOuI,EAAMM,EAAE,IAEjB,GAAIJ,EAAIxE,OAAQ3D,KAAKwI,mBAAqBL,EAAIM,KAAK,I,CAG7C,cAAAC,CAAezI,EAAeiC,GACpC,MAAMyG,EAAW3I,KAAKgB,WAAWkB,IAAUlC,KAAK4I,UAChD,GAAID,EAAU,OAAOA,EACrB,IAAIE,EACJ,IACEA,EAAS,IAAIC,KAAKC,aAAa/I,KAAKgJ,OAAQhJ,KAAKiJ,eAAeC,OAAOjJ,E,CACvE,MACA4I,EAASvG,OAAOrC,E,CAElB,MAAO,GAAGD,KAAKiB,cAAc4H,IAAS7I,KAAKkB,a,CAGrC,aAAAiI,CAAclJ,EAAeiC,GACnC,GACElC,KAAKgB,WAAWkB,IAChBlC,KAAK4I,WACL5I,KAAKiB,aACLjB,KAAKkB,aACLlB,KAAKiJ,cACL,CACA,OAAOjJ,KAAK0I,eAAezI,EAAOiC,E,CAEpC,OAAOkH,S,CAqDD,cAAAC,CAAepH,GACrB,MAAMqH,EAAUtJ,KAAK+B,UACrB,IAAKuH,EAAS,OAAO,EACrB,MAAMC,EAAOD,EAAQE,wBACrB,MAAMC,EAAQzJ,KAAKqD,GAAGqG,cAA2B,kBACjD,MAAMC,EAAYF,EACdzJ,KAAKQ,cAAgB,aACnBiJ,EAAMG,YACNH,EAAMI,aACR,EAIJ,MAAMC,EAAQH,EAAY,EAE1B,GAAI3J,KAAKQ,cAAgB,WAAY,CACnC,MAAMuJ,EAASrG,KAAKvD,IAAI,EAAGoJ,EAAKS,OAASF,EAAQ,GACjD,OAAOpG,KAAKxD,IAAI,EAAGwD,KAAKvD,IAAI,GAAIoJ,EAAKU,OAASH,EAAQ7H,EAAMiI,SAAWH,G,CAGzE,MAAMA,EAASrG,KAAKvD,IAAI,EAAGoJ,EAAKY,MAAQL,EAAQ,GAChD,MAAMvC,GAAWtF,EAAMmI,QAAUb,EAAKc,KAAOP,GAASC,EACtD,OAAOrG,KAAKxD,IAAI,EAAGwD,KAAKvD,IAAI,EAAGoH,G,CAGzB,gBAAAxD,CAAiB9B,GACvB,OAAOjC,KAAKqG,KAAKrG,KAAK8F,QAAU9F,KAAKqJ,eAAepH,IAAUjC,KAAK+F,QAAU/F,KAAK8F,S,CAG5E,iBAAA9B,CAAkB/D,EAAemC,GACvC,MAAMkI,EACJlI,aAAkBvC,EAAcuC,EAAOmI,QAAqB,kBAAoB,KAClF,GAAID,GAAeE,QAAQ,SAAU,OAAO/H,OAAO6H,EAAcE,QAAQ,UACzE,IAAKxK,KAAK4E,QAAS,OAAO,EAE1B,MAAMD,EAAS3E,KAAKuC,eACpB,MAAMkI,EAAgB/G,KAAKgH,IAAIzK,EAAQ0E,EAAO,IAC9C,MAAMgG,EAAgBjH,KAAKgH,IAAIzK,EAAQ0E,EAAO,IAC9C,GAAI8F,IAAkBE,EAAe,OAAO1K,GAAS0E,EAAO,GAAK,EAAI,EACrE,OAAO8F,EAAgBE,EAAgB,EAAI,C,CA0BrC,qBAAAC,CAAsB3I,EAAqB4I,GACjD,GAAI7K,KAAK6B,YAAcI,EAAMJ,UAAW,OACxC,GAAI7B,KAAK+B,WAAW+I,kBAAkB7I,EAAMJ,WAC1C7B,KAAK+B,UAAUgJ,sBAAsB9I,EAAMJ,WAC7C7B,KAAK6B,UAAY,KACjB7B,KAAKqB,SAAW,MAChBrB,KAAKuB,QAAU,KACf,IAAKsJ,IAAa7K,KAAK0G,YAAY1G,KAAK8B,kBAAmB9B,KAAKkE,aAC9DlE,KAAK2C,iB,CAGD,WAAAqI,CAAY/K,EAAeiC,GACjC,MAAM+I,EACJ/I,IAAU,EACLlC,KAAKiL,SAAW,GAAGjL,KAAKyB,oBACzB,GAAGzB,KAAKiL,SAAW,GAAGjL,KAAKyB,0BACjC,MAAMyJ,EAAahJ,IAAU,EAAIlC,KAAKc,WAAad,KAAKe,SACxD,MAAMoK,EAAanL,KAAK4E,QACpBwE,UACCpJ,KAAKkI,iBAAmBlI,KAAKiI,MAAQjI,KAAK0B,QAAU1B,KAAKwI,oBAC9D,MAAM4C,EAAcpL,KAAK4E,QAAUsG,EAAaC,EAAa/B,UAAYpJ,KAAKa,UAE9E,OACEwK,EAAA,OACEC,MAAO,CACLC,cAAe,KACf,wBAAyBrJ,IAAUlC,KAAKwB,kBACzC,aACWc,OAAOJ,GACnBsJ,MAAO,CAAE,wBAAyBlJ,OAAOtC,KAAKuH,QAAQtH,MAEtDoL,EAAA,SACEC,MAAM,gBACNG,KAAK,QACLlD,GAAI0C,EACJ/K,IAAKF,KAAKwH,WAAWtF,GACrB/B,IAAKH,KAAKyH,WAAWvF,GACrB9B,KAAMJ,KAAK6F,SACX5F,MAAOA,EACPS,SAAUV,KAAKqC,WAAU,aACb+I,EAAW,kBACND,EAAU,mBACTnL,KAAK0L,gBAAe,iBACtB1L,KAAKmJ,cAAclJ,EAAOiC,GAAM,mBAC9BlC,KAAKQ,cAAgB,WAAa,WAAa4I,UAAS,gBAC3DpJ,KAAKW,SAAW,OAASyI,UACxCuC,QAAU1J,GAAiBjC,KAAKgC,kBAAkBC,EAAOC,GACzD0J,SAAU5L,KAAK0C,mBACfmJ,UAAW7L,KAAK4C,cAChBkJ,QAAS,IAAM9L,KAAKgD,YAAYd,GAChC6J,OAAQ/L,KAAKiD,aAEfoI,EAAA,QAAMC,MAAM,uBAAsB,cAAa,QAC7CD,EAAA,QAAMC,MAAM,wB,CAMpB,MAAAU,GACE,MAAMrH,EAAS3E,KAAKuC,eACpB,MAAM0J,EAAQtH,EAAO,GACrB,MAAMuH,EAAOvH,EAAOA,EAAOhB,OAAS,GACpC,MAAMwI,EAAenM,KAAKiL,SAAW,GAAGjL,KAAKyB,oBAC7C,MAAM2K,GAASpM,KAAK0G,YAAY1G,KAAKkE,YAAalE,KAAK2B,cACvD,MAAM0K,EAAe1H,EAClB2D,KAAI,CAACrI,EAAOiC,IAAUlC,KAAK0I,eAAezI,EAAOiC,KACjDuG,KAAK,IAAIzI,KAAKmB,mBAEjB,OACEkK,EAACiB,EAAI,CAAAxJ,IAAA,2DACY9C,KAAKqC,WAAa,OAAS+G,UAC1CkC,MAAO,CACLiB,OAAQ,KACR,iBAAkB,KAClB,CAAC,WAAWvM,KAAKO,QAAS,KAC1B,CAAC,WAAWP,KAAKQ,eAAgB,KACjC,CAAC,iBAAiBR,KAAKS,kBAAmB,KAC1C,gBAAiBT,KAAK4E,QACtB,mBAAoB5E,KAAKW,SACzB,sBAAuBX,KAAKqC,YAC7B,mBACiBrC,KAAKQ,YAAW,gBACnBR,KAAKqC,WAAa,GAAK+G,UAAS,gBAChCpJ,KAAKW,SAAW,GAAKyI,UAAS,gBAC9BpJ,KAAKqB,SAAW,GAAK+H,UAAS,eAC/BpJ,KAAKsB,QAAU,GAAK8H,UAAS,cAC/B,GAAE,aACFgD,EAAQ,GAAKhD,UAAS,eACpBpJ,KAAKuB,QAAU,GAAK6H,UAAS,cAC9BpJ,KAAKqC,WAAa,GAAK+G,UACpCoD,QAASxM,KAAKuD,kBAEZvD,KAAKiI,OAASjI,KAAKM,YACnB+K,EAAA,OAAAvI,IAAA,2CAAKwI,MAAM,qBACRtL,KAAKiI,OACJoD,EAAA,WAAAvI,IAAA,2CACEwI,MAAM,gBACNmB,GAAG,QACHC,QAAQ,kBACRC,MAAM,UACNC,SAAQ,KACRC,IAAKV,EACLW,OAAQ9M,KAAK0B,SAEZ1B,KAAKiI,OAGTjI,KAAKM,WACJ+K,EAAA,WAAAvI,IAAA,2CACEwI,MAAM,gBACNmB,GAAG,OACHC,QAAQ,kBACRC,MAAM,UACNI,YAAY,gBAEXV,IAKThB,EAAA,OAAAvI,IAAA,2CACEwI,MAAM,kBACN0B,IAAKC,IACHjN,KAAK+B,UAAYkL,GAAW,IAAI,EAElCzB,MACE,CACE,wBAAyBlJ,OAAOtC,KAAK4E,QAAU5E,KAAKuH,QAAQ0E,GAAS,GACrE,sBAAuB3J,OAAOtC,KAAKuH,QAAQ2E,KAG/CgB,cAAelN,KAAK6D,kBACpBsJ,cAAenN,KAAKsE,kBACpB8I,YAAcnL,GAAwBjC,KAAK4K,sBAAsB3I,EAAO,OACxEoL,gBAAkBpL,GAAwBjC,KAAK4K,sBAAsB3I,EAAO,OAE5EoJ,EAAA,OAAAvI,IAAA,2CAAKwI,MAAM,eAAc,cAAa,QACpCD,EAAA,OAAAvI,IAAA,2CAAKwI,MAAM,uBAEZ3G,EAAO2D,KAAI,CAACrI,EAAOiC,IAAUlC,KAAKgL,YAAY/K,EAAOiC,M","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["sliderCss","sliderId","sliderExternalLabelId","Slider","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","min","max","step","ticks","minStepsBetweenValues","showValue","size","orientation","thumbAlignment","disabled","readOnly","isInactive","ariaLabel","startLabel","endLabel","valueTexts","valuePrefix","valueSuffix","rangeSeparator","formDisabled","dragging","focused","touched","activeThumbIndex","generatedId","labelId","initialValue","lastCommittedValue","pointerId","pointerStartValue","controlEl","handleNativeInput","event","index","input","target","isDisabled","String","resolvedValues","setValueAt","Number","handleNativeChange","commitIfChanged","handleKeyDown","keys","resolvedTicks","length","includes","key","preventDefault","filter","tick","allowedMin","allowedMax","current","forward","next","find","reverse","handleFocus","handleBlur","relatedTarget","Node","el","contains","handleHostClick","inputs","querySelectorAll","Math","focus","handlePointerDown","button","valueFromPointer","closestThumbIndex","cloneValue","publicValue","setPointerCapture","requestAnimationFrame","preventScroll","handlePointerMove","componentWillLoad","syncFormValue","componentDidLoad","syncNativeLabels","values","isRange","setRepeatedFormControlValue","internals","name","inactive","setFormControlValue","state","formDisabledCallback","formResetCallback","formStateRestoreCallback","restored","restoreNumberArrayFormState","restoreStringFormState","isFinite","setFocus","Array","isArray","safeStep","unique","Map","safeMin","safeMax","set","sort","a","b","minimum","minimumGap","steps","floor","span","maximum","snap","raw","lower","upper","gap","valuesEqual","every","decimalPlaces","text","toLowerCase","split","reduce","nearest","abs","candidate","stepped","round","precision","toFixed","percent","previous","constrained","nextValue","dsChange","emit","dsCommit","label","ariaLabelledby","ids","from","labels","map","id","externalLabelledby","join","formattedValue","authored","valueText","number","Intl","NumberFormat","locale","formatOptions","format","ariaValueText","some","undefined","pointerPercent","control","rect","getBoundingClientRect","thumb","querySelector","thumbSize","offsetWidth","offsetHeight","inset","travel","height","bottom","clientY","width","clientX","left","targetElement","closest","dataset","lowerDistance","upperDistance","endPointerInteraction","canceled","hasPointerCapture","releasePointerCapture","renderThumb","inputId","rangeLabel","labelledby","directLabel","h","class","slider__thumb","style","type","ariaDescribedby","onInput","onChange","onKeyDown","onFocus","onBlur","render","first","last","firstInputId","dirty","valueDisplay","Host","slider","Boolean","onClick","as","variant","color","emphasis","for","textId","fontFeature","ref","element","onPointerDown","onPointerMove","onPointerUp","onPointerCancel"],"sources":["src/wc/components/Slider/Slider.css?tag=ds-slider&encapsulation=scoped","src/wc/components/Slider/Slider.tsx"],"sourcesContent":["@import '../../utils/control-inactive.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-thumb-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n box-sizing: border-box;\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-thumb-size: var(--dimension-size-150);\n --ds-slider-track-size: var(--dimension-size-075);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-thumb-size: var(--dimension-size-100);\n --ds-slider-track-size: var(--dimension-size-050);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: default;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (50% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-025);\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-025);\n background-color: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-sm);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb:hover\n .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n }\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active\n .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .slider__rail {\n border: var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .slider__indicator {\n background-color: var(--ds-forced-color-selected);\n }\n\n .slider__thumb-visual {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n background-color: var(--ds-forced-color-surface);\n box-shadow: none;\n }\n\n .slider__input:focus-visible + .slider__thumb-visual,\n :host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n\n.slider__tick {\n position: absolute;\n top: calc(\n 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012)\n );\n left: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n transform: translateX(-50%);\n pointer-events: none;\n}\n.slider__tick-mark {\n display: block;\n width: var(--dimension-stroke-width-025);\n height: var(--dimension-stroke-width-025);\n border-radius: var(--dimension-radius-half);\n background: var(--color-foreground-tertiary);\n}\n.slider__tick-label {\n width: max-content;\n max-width: none;\n position: absolute;\n top: calc(100% + var(--dimension-space-050));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n}\n:host(:not(.slider--vertical)) .slider__control {\n container-type: inline-size;\n}\n:host(:not(.slider--vertical)) .slider__tick-label {\n /* Center on the tick, clamping only when the text reaches the control edges. */\n --ds-slider-label-anchor: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100cqw - var(--ds-slider-thumb-size))\n );\n transform: translateX(\n clamp(\n calc(-1 * var(--ds-slider-label-anchor)),\n -50%,\n calc(100cqw - var(--ds-slider-label-anchor) - 100%)\n )\n );\n}\n:host(.slider--tick-labels:not(.slider--vertical)) .slider__control {\n margin-bottom: var(--dimension-space-200);\n}\n:host(.slider--vertical) .slider__tick {\n top: auto;\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n left: calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));\n transform: translateY(50%);\n}\n:host(.slider--vertical) .slider__tick-label {\n top: 50%;\n left: calc(100% + var(--dimension-space-050));\n transform: translateY(-50%);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n restoreNumberArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n} from '../../utils';\n\nexport interface SliderTick {\n value: number;\n label?: string;\n}\n\nexport type SliderValue = number | number[];\nexport type SliderSize = 'md' | 'sm' | 'xs';\nexport type SliderOrientation = 'horizontal' | 'vertical';\nexport type SliderThumbAlignment = 'edge' | 'center';\n\nlet sliderId = 0;\nlet sliderExternalLabelId = 0;\n\n@Component({\n tag: 'ds-slider',\n styleUrl: 'Slider.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Slider {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Current value. Assign a two-number array through the JavaScript property for a range slider. */\n @Prop({ mutable: true }) value: SliderValue = 0;\n @Prop() min: number = 0;\n @Prop() max: number = 100;\n @Prop() step: number | 'any' = 1;\n /** Explicit ticks are the selectable snap points. Empty ticks with step='any' allow smooth adjustment. */\n @Prop() ticks: SliderTick[] = [];\n /** Minimum number of steps kept between two range thumbs. */\n @Prop() minStepsBetweenValues: number = 0;\n /** Visible field label. Supply aria-label when the label is intentionally hidden. */\n @Prop() label: string | undefined;\n /** Show the formatted current value beside the visible label. */\n @Prop() showValue: boolean = true;\n @Prop() size: SliderSize = 'md';\n @Prop() orientation: SliderOrientation = 'horizontal';\n /** Align the thumb edge with full-width rail endpoints, or its center with inset rail endpoints. */\n @Prop() thumbAlignment: SliderThumbAlignment = 'edge';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Keep the value focusable and submittable while preventing changes. */\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop() isInactive: boolean = false;\n /** Direct accessible name for a single-thumb slider without a visible label. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Id references for a visible single-thumb slider label. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Id references for supporting guidance or error text. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n /** Accessible label for the lower thumb in a range slider. */\n @Prop() startLabel: string = 'Minimum value';\n /** Accessible label for the upper thumb in a range slider. */\n @Prop() endLabel: string = 'Maximum value';\n /** Human-readable value text for a single slider or both range thumbs. */\n @Prop() valueText: string | undefined;\n /** Per-thumb human-readable value text for a range slider. Assign through the JavaScript property. */\n @Prop() valueTexts: string[] = [];\n /** Locale used by Intl.NumberFormat for the visible value. */\n @Prop() locale: string | undefined;\n /** Intl.NumberFormat options. Assign objects through the JavaScript property. */\n @Prop() formatOptions: Intl.NumberFormatOptions | undefined;\n @Prop() valuePrefix: string = '';\n @Prop() valueSuffix: string = '';\n @Prop() rangeSeparator: string = '–';\n /** Id applied to the first native range input. */\n @Prop() inputId: string | undefined;\n\n /** Emitted continuously while the value changes. */\n @Event() dsChange!: EventEmitter<SliderValue>;\n /** Emitted when a pointer or keyboard value change is committed. */\n @Event() dsCommit!: EventEmitter<SliderValue>;\n\n @State() private formDisabled = false;\n @State() private dragging = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private activeThumbIndex = 0;\n @State() private externalLabelledby: string | undefined;\n\n private readonly generatedId = `ds-slider-${++sliderId}`;\n private readonly labelId = `${this.generatedId}-label`;\n private initialValue: SliderValue = 0;\n private lastCommittedValue: SliderValue = 0;\n private pointerId: number | null = null;\n private pointerStartValue: SliderValue = 0;\n private controlEl: HTMLDivElement | null = null;\n\n componentWillLoad() {\n this.initialValue = this.cloneValue(this.publicValue);\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.syncNativeLabels();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n @Watch('ticks')\n @Watch('minStepsBetweenValues')\n @Watch('name')\n @Watch('disabled')\n @Watch('isInactive')\n syncFormValue() {\n const values = this.resolvedValues;\n if (this.isRange) {\n setRepeatedFormControlValue(this.internals, this.name, values, {\n inactive: this.isDisabled,\n });\n } else {\n const value = String(values[0]);\n setFormControlValue(this.internals, this.name ? value : null, {\n inactive: this.isDisabled,\n state: value,\n });\n }\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.cloneValue(this.initialValue);\n this.lastCommittedValue = this.cloneValue(this.initialValue);\n this.dragging = false;\n this.focused = false;\n this.touched = false;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (this.isRange) {\n const restored = restoreNumberArrayFormState(state, 2);\n this.value = restored.length ? restored : this.cloneValue(this.initialValue);\n } else {\n const restored = Number(restoreStringFormState(state, 'NaN'));\n if (Number.isFinite(restored)) this.value = restored;\n }\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n }\n\n @Method()\n async setFocus(index: number = 0) {\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.max(0, Math.min(index, inputs.length - 1))]?.focus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private get isRange(): boolean {\n return Array.isArray(this.value);\n }\n\n private get safeStep(): number {\n const step = Number(this.step);\n return Number.isFinite(step) && step > 0 ? step : 1;\n }\n\n private get resolvedTicks(): SliderTick[] {\n const unique = new Map<number, SliderTick>();\n for (const tick of this.ticks) {\n if (Number.isFinite(tick.value) && tick.value >= this.safeMin && tick.value <= this.safeMax)\n unique.set(tick.value, tick);\n }\n return [...unique.values()].sort((a, b) => a.value - b.value);\n }\n\n private get safeMin(): number {\n return Number.isFinite(this.min) ? this.min : 0;\n }\n\n private get safeMax(): number {\n const minimum = this.safeMin;\n return Number.isFinite(this.max) && this.max > minimum ? this.max : minimum + this.safeStep;\n }\n\n private get minimumGap(): number {\n const steps = Number.isFinite(this.minStepsBetweenValues)\n ? Math.max(0, Math.floor(this.minStepsBetweenValues))\n : 0;\n const ticks = this.resolvedTicks;\n const span = ticks.length\n ? ticks[ticks.length - 1].value - ticks[0].value\n : this.safeMax - this.safeMin;\n return Math.min(span, steps * this.safeStep);\n }\n\n private get resolvedValues(): number[] {\n const minimum = this.safeMin;\n const maximum = this.safeMax;\n if (!this.isRange) return [this.snap(Number(this.value))];\n\n const raw = this.value as number[];\n let lower = this.snap(Number(raw[0] ?? minimum));\n let upper = this.snap(Number(raw[1] ?? maximum));\n if (lower > upper) [lower, upper] = [upper, lower];\n\n const gap = Math.min(this.minimumGap, maximum - minimum);\n if (upper - lower < gap) {\n upper = Math.min(maximum, this.snap(lower + gap));\n lower = Math.max(minimum, this.snap(upper - gap));\n const ticks = this.resolvedTicks;\n if (ticks.length && upper - lower < gap) {\n upper =\n ticks.find(tick => tick.value >= lower + gap)?.value ?? ticks[ticks.length - 1].value;\n lower =\n [...ticks].reverse().find(tick => tick.value <= upper - gap)?.value ?? ticks[0].value;\n }\n }\n return [lower, upper];\n }\n\n private get publicValue(): SliderValue {\n const values = this.resolvedValues;\n return this.isRange ? [...values] : values[0];\n }\n\n private cloneValue(value: SliderValue): SliderValue {\n return Array.isArray(value) ? [...value] : value;\n }\n\n private valuesEqual(a: SliderValue, b: SliderValue): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n }\n return !Array.isArray(a) && !Array.isArray(b) && a === b;\n }\n\n private decimalPlaces(value: number): number {\n const text = String(value).toLowerCase();\n if (text.includes('e-')) return Number(text.split('e-')[1]) || 0;\n return text.includes('.') ? text.split('.')[1].length : 0;\n }\n\n private snap(value: number, minimum = this.safeMin, maximum = this.safeMax): number {\n const ticks = this.resolvedTicks.filter(tick => tick.value >= minimum && tick.value <= maximum);\n if (ticks.length)\n return ticks.reduce((nearest, tick) =>\n Math.abs(tick.value - value) < Math.abs(nearest.value - value) ? tick : nearest\n ).value;\n if (this.step === 'any')\n return Math.min(maximum, Math.max(minimum, Number.isFinite(value) ? value : minimum));\n const candidate = Number.isFinite(value) ? value : minimum;\n const stepped = minimum + Math.round((candidate - minimum) / this.safeStep) * this.safeStep;\n const precision = Math.min(\n 10,\n Math.max(\n this.decimalPlaces(minimum),\n this.decimalPlaces(maximum),\n this.decimalPlaces(this.safeStep)\n )\n );\n return Number(Math.min(maximum, Math.max(minimum, stepped)).toFixed(precision));\n }\n\n private percent(value: number): number {\n return ((value - this.safeMin) / (this.safeMax - this.safeMin)) * 100;\n }\n\n private allowedMin(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 1\n ? Math.min(this.safeMax, values[0] + this.minimumGap)\n : this.safeMin;\n }\n\n private allowedMax(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 0\n ? Math.max(this.safeMin, values[1] - this.minimumGap)\n : this.safeMax;\n }\n\n private setValueAt(index: number, next: number): boolean {\n const previous = this.publicValue;\n const values = this.resolvedValues;\n const constrained = Math.min(\n this.allowedMax(index, values),\n Math.max(\n this.allowedMin(index, values),\n this.snap(next, this.allowedMin(index, values), this.allowedMax(index, values))\n )\n );\n values[index] = constrained;\n const nextValue: SliderValue = this.isRange ? [...values] : values[0];\n if (this.valuesEqual(previous, nextValue)) return false;\n\n this.value = nextValue;\n this.dsChange.emit(this.cloneValue(nextValue));\n return true;\n }\n\n private commitIfChanged() {\n const current = this.publicValue;\n if (this.valuesEqual(current, this.lastCommittedValue)) return;\n this.lastCommittedValue = this.cloneValue(current);\n this.dsCommit.emit(this.cloneValue(current));\n }\n\n private syncNativeLabels() {\n if (this.label || this.ariaLabel || this.ariaLabelledby || this.isRange) return;\n const ids = (Array.from(this.internals.labels) as HTMLLabelElement[]).map(label => {\n if (!label.id) label.id = `ds-slider-label-${++sliderExternalLabelId}`;\n return label.id;\n });\n if (ids.length) this.externalLabelledby = ids.join(' ');\n }\n\n private formattedValue(value: number, index: number): string {\n const authored =\n this.valueTexts[index] ??\n this.valueText ??\n this.resolvedTicks.find(tick => tick.value === value)?.label;\n if (authored) return authored;\n let number: string;\n try {\n number = new Intl.NumberFormat(this.locale, this.formatOptions).format(value);\n } catch {\n number = String(value);\n }\n return `${this.valuePrefix}${number}${this.valueSuffix}`;\n }\n\n private ariaValueText(value: number, index: number): string | undefined {\n if (\n this.resolvedTicks.some(tick => tick.value === value && tick.label) ||\n this.valueTexts[index] ||\n this.valueText ||\n this.valuePrefix ||\n this.valueSuffix ||\n this.formatOptions\n ) {\n return this.formattedValue(value, index);\n }\n return undefined;\n }\n\n private handleNativeInput = (event: Event, index: number) => {\n const input = event.target as HTMLInputElement;\n this.activeThumbIndex = index;\n if (this.readOnly || this.isDisabled) {\n input.value = String(this.resolvedValues[index]);\n return;\n }\n this.setValueAt(index, Number(input.value));\n };\n\n private handleNativeChange = () => {\n if (!this.readOnly && !this.isDisabled) this.commitIfChanged();\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n const keys = [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!this.readOnly && this.resolvedTicks.length && keys.includes(event.key)) {\n event.preventDefault();\n if (this.isDisabled) return;\n const ticks = this.resolvedTicks.filter(\n tick => tick.value >= this.allowedMin(index) && tick.value <= this.allowedMax(index)\n );\n const current = this.resolvedValues[index];\n const forward = ['ArrowRight', 'ArrowUp', 'PageUp'].includes(event.key);\n const next =\n event.key === 'Home'\n ? ticks[0]\n : event.key === 'End'\n ? ticks[ticks.length - 1]\n : forward\n ? ticks.find(tick => tick.value > current)\n : [...ticks].reverse().find(tick => tick.value < current);\n if (next && this.setValueAt(index, next.value)) this.commitIfChanged();\n return;\n }\n if (!this.readOnly) return;\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ].includes(event.key)\n ) {\n event.preventDefault();\n }\n };\n\n private handleFocus = (index: number) => {\n this.activeThumbIndex = index;\n this.focused = true;\n };\n\n private handleBlur = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && this.el.contains(next)) return;\n this.focused = false;\n this.touched = true;\n };\n\n private handleHostClick = (event: MouseEvent) => {\n if (event.target !== this.el || this.isDisabled) return;\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.min(this.activeThumbIndex, inputs.length - 1)]?.focus();\n };\n\n private pointerPercent(event: PointerEvent): number {\n const control = this.controlEl;\n if (!control) return 0;\n const rect = control.getBoundingClientRect();\n const thumb = this.el.querySelector<HTMLElement>('.slider__thumb');\n const thumbSize = thumb\n ? this.orientation === 'horizontal'\n ? thumb.offsetWidth\n : thumb.offsetHeight\n : 0;\n // Both alignment modes keep the complete thumb inside the control. Edge\n // alignment lets the rail span the control while center alignment insets\n // the rail to the same thumb-center travel.\n const inset = thumbSize / 2;\n\n if (this.orientation === 'vertical') {\n const travel = Math.max(1, rect.height - inset * 2);\n return Math.min(1, Math.max(0, (rect.bottom - inset - event.clientY) / travel));\n }\n\n const travel = Math.max(1, rect.width - inset * 2);\n const percent = (event.clientX - rect.left - inset) / travel;\n return Math.min(1, Math.max(0, percent));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n return this.snap(this.safeMin + this.pointerPercent(event) * (this.safeMax - this.safeMin));\n }\n\n private closestThumbIndex(value: number, target: EventTarget | null): number {\n const targetElement =\n target instanceof HTMLElement ? target.closest<HTMLElement>('.slider__thumb') : null;\n if (targetElement?.dataset['index']) return Number(targetElement.dataset['index']);\n if (!this.isRange) return 0;\n\n const values = this.resolvedValues;\n const lowerDistance = Math.abs(value - values[0]);\n const upperDistance = Math.abs(value - values[1]);\n if (lowerDistance === upperDistance) return value >= values[0] ? 1 : 0;\n return lowerDistance < upperDistance ? 0 : 1;\n }\n\n private handlePointerDown = (event: PointerEvent) => {\n if (event.button !== 0 || this.isDisabled || this.readOnly) return;\n event.preventDefault();\n const value = this.valueFromPointer(event);\n const index = this.closestThumbIndex(value, event.target);\n this.activeThumbIndex = index;\n this.pointerId = event.pointerId;\n this.pointerStartValue = this.cloneValue(this.publicValue);\n this.dragging = true;\n this.setValueAt(index, value);\n this.controlEl?.setPointerCapture(event.pointerId);\n requestAnimationFrame(() => {\n const input = this.el.querySelectorAll<HTMLInputElement>('.slider__input')[index];\n input?.focus({ preventScroll: true });\n });\n };\n\n private handlePointerMove = (event: PointerEvent) => {\n if (this.pointerId !== event.pointerId || !this.dragging) return;\n event.preventDefault();\n this.setValueAt(this.activeThumbIndex, this.valueFromPointer(event));\n };\n\n private endPointerInteraction(event: PointerEvent, canceled: boolean) {\n if (this.pointerId !== event.pointerId) return;\n if (this.controlEl?.hasPointerCapture(event.pointerId))\n this.controlEl.releasePointerCapture(event.pointerId);\n this.pointerId = null;\n this.dragging = false;\n this.touched = true;\n if (!canceled && !this.valuesEqual(this.pointerStartValue, this.publicValue))\n this.commitIfChanged();\n }\n\n private renderThumb(value: number, index: number) {\n const inputId =\n index === 0\n ? (this.inputId ?? `${this.generatedId}-input`)\n : `${this.inputId ?? `${this.generatedId}-input`}-end`;\n const rangeLabel = index === 0 ? this.startLabel : this.endLabel;\n const labelledby = this.isRange\n ? undefined\n : (this.ariaLabelledby ?? (this.label ? this.labelId : this.externalLabelledby));\n const directLabel = this.isRange ? rangeLabel : labelledby ? undefined : this.ariaLabel;\n\n return (\n <div\n class={{\n slider__thumb: true,\n 'slider__thumb--active': index === this.activeThumbIndex,\n }}\n data-index={String(index)}\n style={{ '--ds-slider-thumb-pct': String(this.percent(value)) } as Record<string, string>}\n >\n <input\n class=\"slider__input\"\n type=\"range\"\n id={inputId}\n min={this.allowedMin(index)}\n max={this.allowedMax(index)}\n step={this.resolvedTicks.length || this.step === 'any' ? 'any' : this.safeStep}\n value={value}\n disabled={this.isDisabled}\n aria-label={directLabel}\n aria-labelledby={labelledby}\n aria-describedby={this.ariaDescribedby}\n aria-valuetext={this.ariaValueText(value, index)}\n aria-orientation={this.orientation === 'vertical' ? 'vertical' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n onInput={(event: Event) => this.handleNativeInput(event, index)}\n onChange={this.handleNativeChange}\n onKeyDown={event => this.handleKeyDown(event, index)}\n onFocus={() => this.handleFocus(index)}\n onBlur={this.handleBlur}\n />\n <span class=\"slider__thumb-visual\" aria-hidden=\"true\">\n <span class=\"slider__thumb-wash\" />\n </span>\n </div>\n );\n }\n\n render() {\n const values = this.resolvedValues;\n const first = values[0];\n const last = values[values.length - 1];\n const firstInputId = this.inputId ?? `${this.generatedId}-input`;\n const dirty = !this.valuesEqual(this.publicValue, this.initialValue);\n const valueDisplay = values\n .map((value, index) => this.formattedValue(value, index))\n .join(` ${this.rangeSeparator} `);\n\n return (\n <Host\n aria-disabled={this.isDisabled ? 'true' : undefined}\n class={{\n slider: true,\n 'ds-field-stack': true,\n [`slider--${this.size}`]: true,\n [`slider--${this.orientation}`]: true,\n [`slider--thumb-${this.thumbAlignment}`]: true,\n 'slider--range': this.isRange,\n 'slider--ticks': this.resolvedTicks.length > 0,\n 'slider--tick-labels': this.resolvedTicks.some(tick => Boolean(tick.label)),\n 'slider--readonly': this.readOnly,\n 'ds-control-inactive': this.isDisabled,\n }}\n data-orientation={this.orientation}\n data-disabled={this.isDisabled ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-dragging={this.dragging ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-filled=\"\"\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n data-valid={!this.isDisabled ? '' : undefined}\n onClick={this.handleHostClick}\n >\n {(this.label || this.showValue) && (\n <div class=\"slider__label-row\">\n {this.label && (\n <ds-text\n class=\"slider__label\"\n as=\"label\"\n variant=\"text-body-small\"\n color=\"primary\"\n emphasis\n for={firstInputId}\n textId={this.labelId}\n >\n {this.label}\n </ds-text>\n )}\n {this.showValue && (\n <ds-text\n class=\"slider__value\"\n as=\"span\"\n variant=\"text-body-small\"\n color=\"primary\"\n fontFeature=\"tabular-nums\"\n >\n {valueDisplay}\n </ds-text>\n )}\n </div>\n )}\n <div\n class=\"slider__control\"\n ref={element => {\n this.controlEl = element ?? null;\n }}\n style={\n {\n '--ds-slider-start-pct': String(this.isRange ? this.percent(first) : 0),\n '--ds-slider-end-pct': String(this.percent(last)),\n } as Record<string, string>\n }\n onPointerDown={this.handlePointerDown}\n onPointerMove={this.handlePointerMove}\n onPointerUp={(event: PointerEvent) => this.endPointerInteraction(event, false)}\n onPointerCancel={(event: PointerEvent) => this.endPointerInteraction(event, true)}\n >\n <div class=\"slider__rail\" aria-hidden=\"true\">\n <div class=\"slider__indicator\" />\n </div>\n {this.resolvedTicks.map(tick => (\n <span\n class=\"slider__tick\"\n data-edge={\n tick.value === this.safeMin\n ? 'start'\n : tick.value === this.safeMax\n ? 'end'\n : undefined\n }\n aria-hidden=\"true\"\n style={{ '--ds-slider-tick-pct': String(this.percent(tick.value)) }}\n >\n <span class=\"slider__tick-mark\" />\n {tick.label && (\n <ds-text\n class=\"slider__tick-label\"\n as=\"span\"\n variant=\"text-caption\"\n color=\"secondary\"\n >\n {tick.label}\n </ds-text>\n )}\n </span>\n ))}\n {values.map((value, index) => this.renderThumb(value, index))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"+JAAA,MAAMA,EAAY,IAAM,k1TC8BxB,IAAIC,EAAW,EACf,IAAIC,EAAwB,E,MAQfC,EAAMC,EAAA,MAAAD,UAAAE,EANnB,WAAAC,CAAAC,G,wJAW2BC,KAAAC,MAAqB,EACtCD,KAAAE,IAAc,EACdF,KAAAG,IAAc,IACdH,KAAAI,KAAuB,EAEvBJ,KAAAK,MAAsB,GAEtBL,KAAAM,sBAAgC,EAIhCN,KAAAO,UAAqB,KACrBP,KAAAQ,KAAmB,KACnBR,KAAAS,YAAiC,aAEjCT,KAAAU,eAAuC,OAGtBV,KAAAW,SAAoB,MAEpBX,KAAAY,SAAoB,MACrCZ,KAAAa,WAAsB,MAEKb,KAAAc,UAA2B,KAMtDd,KAAAe,WAAqB,gBAErBf,KAAAgB,SAAmB,gBAInBhB,KAAAiB,WAAuB,GAKvBjB,KAAAkB,YAAsB,GACtBlB,KAAAmB,YAAsB,GACtBnB,KAAAoB,eAAyB,IAShBpB,KAAAqB,aAAe,MACfrB,KAAAsB,SAAW,MACXtB,KAAAuB,QAAU,MACVvB,KAAAwB,QAAU,MACVxB,KAAAyB,iBAAmB,EAGnBzB,KAAA0B,YAAc,eAAejC,IAC7BO,KAAA2B,QAAU,GAAG3B,KAAK0B,oBAC3B1B,KAAA4B,aAA4B,EAC5B5B,KAAA6B,mBAAkC,EAClC7B,KAAA8B,UAA2B,KAC3B9B,KAAA+B,kBAAiC,EACjC/B,KAAAgC,UAAmC,KAgQnChC,KAAAiC,kBAAoB,CAACC,EAAcC,KACzC,MAAMC,EAAQF,EAAMG,OACpBrC,KAAKyB,iBAAmBU,EACxB,GAAInC,KAAKY,UAAYZ,KAAKsC,WAAY,CACpCF,EAAMnC,MAAQsC,OAAOvC,KAAKwC,eAAeL,IACzC,M,CAEFnC,KAAKyC,WAAWN,EAAOO,OAAON,EAAMnC,OAAO,EAGrCD,KAAA2C,mBAAqB,KAC3B,IAAK3C,KAAKY,WAAaZ,KAAKsC,WAAYtC,KAAK4C,iBAAiB,EAGxD5C,KAAA6C,cAAgB,CAACX,EAAsBC,KAC7C,MAAMW,EAAO,CACX,YACA,aACA,UACA,YACA,OACA,MACA,SACA,YAEF,IAAK9C,KAAKY,UAAYZ,KAAK+C,cAAcC,QAAUF,EAAKG,SAASf,EAAMgB,KAAM,CAC3EhB,EAAMiB,iBACN,GAAInD,KAAKsC,WAAY,OACrB,MAAMjC,EAAQL,KAAK+C,cAAcK,QAC/BC,GAAQA,EAAKpD,OAASD,KAAKsD,WAAWnB,IAAUkB,EAAKpD,OAASD,KAAKuD,WAAWpB,KAEhF,MAAMqB,EAAUxD,KAAKwC,eAAeL,GACpC,MAAMsB,EAAU,CAAC,aAAc,UAAW,UAAUR,SAASf,EAAMgB,KACnE,MAAMQ,EACJxB,EAAMgB,MAAQ,OACV7C,EAAM,GACN6B,EAAMgB,MAAQ,MACZ7C,EAAMA,EAAM2C,OAAS,GACrBS,EACEpD,EAAMsD,MAAKN,GAAQA,EAAKpD,MAAQuD,IAChC,IAAInD,GAAOuD,UAAUD,MAAKN,GAAQA,EAAKpD,MAAQuD,IACzD,GAAIE,GAAQ1D,KAAKyC,WAAWN,EAAOuB,EAAKzD,OAAQD,KAAK4C,kBACrD,M,CAEF,IAAK5C,KAAKY,SAAU,OACpB,GACE,CACE,YACA,aACA,UACA,YACA,OACA,MACA,SACA,YACAqC,SAASf,EAAMgB,KACjB,CACAhB,EAAMiB,gB,GAIFnD,KAAA6D,YAAe1B,IACrBnC,KAAKyB,iBAAmBU,EACxBnC,KAAKuB,QAAU,IAAI,EAGbvB,KAAA8D,WAAc5B,IACpB,MAAMwB,EAAOxB,EAAM6B,cACnB,GAAIL,aAAgBM,MAAQhE,KAAKiE,GAAGC,SAASR,GAAO,OACpD1D,KAAKuB,QAAU,MACfvB,KAAKwB,QAAU,IAAI,EAGbxB,KAAAmE,gBAAmBjC,IACzB,GAAIA,EAAMG,SAAWrC,KAAKiE,IAAMjE,KAAKsC,WAAY,OACjD,MAAM8B,EAASpE,KAAKiE,GAAGI,iBAAmC,kBAC1DD,EAAOE,KAAKpE,IAAIF,KAAKyB,iBAAkB2C,EAAOpB,OAAS,KAAKuB,OAAO,EA6C7DvE,KAAAwE,kBAAqBtC,IAC3B,GAAIA,EAAMuC,SAAW,GAAKzE,KAAKsC,YAActC,KAAKY,SAAU,OAC5DsB,EAAMiB,iBACN,MAAMlD,EAAQD,KAAK0E,iBAAiBxC,GACpC,MAAMC,EAAQnC,KAAK2E,kBAAkB1E,EAAOiC,EAAMG,QAClDrC,KAAKyB,iBAAmBU,EACxBnC,KAAK8B,UAAYI,EAAMJ,UACvB9B,KAAK+B,kBAAoB/B,KAAK4E,WAAW5E,KAAK6E,aAC9C7E,KAAKsB,SAAW,KAChBtB,KAAKyC,WAAWN,EAAOlC,GACvBD,KAAKgC,WAAW8C,kBAAkB5C,EAAMJ,WACxCiD,uBAAsB,KACpB,MAAM3C,EAAQpC,KAAKiE,GAAGI,iBAAmC,kBAAkBlC,GAC3EC,GAAOmC,MAAM,CAAES,cAAe,MAAO,GACrC,EAGIhF,KAAAiF,kBAAqB/C,IAC3B,GAAIlC,KAAK8B,YAAcI,EAAMJ,YAAc9B,KAAKsB,SAAU,OAC1DY,EAAMiB,iBACNnD,KAAKyC,WAAWzC,KAAKyB,iBAAkBzB,KAAK0E,iBAAiBxC,GAAO,CAgLvE,CA3jBC,iBAAAgD,GACElF,KAAK4B,aAAe5B,KAAK4E,WAAW5E,KAAK6E,aACzC7E,KAAK6B,mBAAqB7B,KAAK4E,WAAW5E,KAAK6E,aAC/C7E,KAAKmF,e,CAGP,gBAAAC,GACEpF,KAAKqF,kB,CAYP,aAAAF,GACE,MAAMG,EAAStF,KAAKwC,eACpB,GAAIxC,KAAKuF,QAAS,CAChBC,EAA4BxF,KAAKyF,UAAWzF,KAAK0F,KAAMJ,EAAQ,CAC7DK,SAAU3F,KAAKsC,Y,KAEZ,CACL,MAAMrC,EAAQsC,OAAO+C,EAAO,IAC5BM,EAAoB5F,KAAKyF,UAAWzF,KAAK0F,KAAOzF,EAAQ,KAAM,CAC5D0F,SAAU3F,KAAKsC,WACfuD,MAAO5F,G,EAKb,oBAAA6F,CAAqBnF,GACnBX,KAAKqB,aAAeV,EACpBX,KAAKmF,e,CAGP,iBAAAY,GACE/F,KAAKC,MAAQD,KAAK4E,WAAW5E,KAAK4B,cAClC5B,KAAK6B,mBAAqB7B,KAAK4E,WAAW5E,KAAK4B,cAC/C5B,KAAKsB,SAAW,MAChBtB,KAAKuB,QAAU,MACfvB,KAAKwB,QAAU,K,CAGjB,wBAAAwE,CAAyBH,GACvB,GAAI7F,KAAKuF,QAAS,CAChB,MAAMU,EAAWC,EAA4BL,EAAO,GACpD7F,KAAKC,MAAQgG,EAASjD,OAASiD,EAAWjG,KAAK4E,WAAW5E,KAAK4B,a,KAC1D,CACL,MAAMqE,EAAWvD,OAAOyD,EAAuBN,EAAO,QACtD,GAAInD,OAAO0D,SAASH,GAAWjG,KAAKC,MAAQgG,C,CAE9CjG,KAAK6B,mBAAqB7B,KAAK4E,WAAW5E,KAAK6E,Y,CAIjD,cAAMwB,CAASlE,EAAgB,GAC7B,MAAMiC,EAASpE,KAAKiE,GAAGI,iBAAmC,kBAC1DD,EAAOE,KAAKnE,IAAI,EAAGmE,KAAKpE,IAAIiC,EAAOiC,EAAOpB,OAAS,MAAMuB,O,CAG3D,cAAYjC,GACV,OAAOtC,KAAKW,UAAYX,KAAKa,YAAcb,KAAKqB,Y,CAGlD,WAAYkE,GACV,OAAOe,MAAMC,QAAQvG,KAAKC,M,CAG5B,YAAYuG,GACV,MAAMpG,EAAOsC,OAAO1C,KAAKI,MACzB,OAAOsC,OAAO0D,SAAShG,IAASA,EAAO,EAAIA,EAAO,C,CAGpD,iBAAY2C,GACV,MAAM0D,EAAS,IAAIC,IACnB,IAAK,MAAMrD,KAAQrD,KAAKK,MAAO,CAC7B,GAAIqC,OAAO0D,SAAS/C,EAAKpD,QAAUoD,EAAKpD,OAASD,KAAK2G,SAAWtD,EAAKpD,OAASD,KAAK4G,QAClFH,EAAOI,IAAIxD,EAAKpD,MAAOoD,E,CAE3B,MAAO,IAAIoD,EAAOnB,UAAUwB,MAAK,CAACC,EAAGC,IAAMD,EAAE9G,MAAQ+G,EAAE/G,O,CAGzD,WAAY0G,GACV,OAAOjE,OAAO0D,SAASpG,KAAKE,KAAOF,KAAKE,IAAM,C,CAGhD,WAAY0G,GACV,MAAMK,EAAUjH,KAAK2G,QACrB,OAAOjE,OAAO0D,SAASpG,KAAKG,MAAQH,KAAKG,IAAM8G,EAAUjH,KAAKG,IAAM8G,EAAUjH,KAAKwG,Q,CAGrF,cAAYU,GACV,MAAMC,EAAQzE,OAAO0D,SAASpG,KAAKM,uBAC/BgE,KAAKnE,IAAI,EAAGmE,KAAK8C,MAAMpH,KAAKM,wBAC5B,EACJ,MAAMD,EAAQL,KAAK+C,cACnB,MAAMsE,EAAOhH,EAAM2C,OACf3C,EAAMA,EAAM2C,OAAS,GAAG/C,MAAQI,EAAM,GAAGJ,MACzCD,KAAK4G,QAAU5G,KAAK2G,QACxB,OAAOrC,KAAKpE,IAAImH,EAAMF,EAAQnH,KAAKwG,S,CAGrC,kBAAYhE,GACV,MAAMyE,EAAUjH,KAAK2G,QACrB,MAAMW,EAAUtH,KAAK4G,QACrB,IAAK5G,KAAKuF,QAAS,MAAO,CAACvF,KAAKuH,KAAK7E,OAAO1C,KAAKC,SAEjD,MAAMuH,EAAMxH,KAAKC,MACjB,IAAIwH,EAAQzH,KAAKuH,KAAK7E,OAAO8E,EAAI,IAAMP,IACvC,IAAIS,EAAQ1H,KAAKuH,KAAK7E,OAAO8E,EAAI,IAAMF,IACvC,GAAIG,EAAQC,GAAQD,EAAOC,GAAS,CAACA,EAAOD,GAE5C,MAAME,EAAMrD,KAAKpE,IAAIF,KAAKkH,WAAYI,EAAUL,GAChD,GAAIS,EAAQD,EAAQE,EAAK,CACvBD,EAAQpD,KAAKpE,IAAIoH,EAAStH,KAAKuH,KAAKE,EAAQE,IAC5CF,EAAQnD,KAAKnE,IAAI8G,EAASjH,KAAKuH,KAAKG,EAAQC,IAC5C,MAAMtH,EAAQL,KAAK+C,cACnB,GAAI1C,EAAM2C,QAAU0E,EAAQD,EAAQE,EAAK,CACvCD,EACErH,EAAMsD,MAAKN,GAAQA,EAAKpD,OAASwH,EAAQE,KAAM1H,OAASI,EAAMA,EAAM2C,OAAS,GAAG/C,MAClFwH,EACE,IAAIpH,GAAOuD,UAAUD,MAAKN,GAAQA,EAAKpD,OAASyH,EAAQC,KAAM1H,OAASI,EAAM,GAAGJ,K,EAGtF,MAAO,CAACwH,EAAOC,E,CAGjB,eAAY7C,GACV,MAAMS,EAAStF,KAAKwC,eACpB,OAAOxC,KAAKuF,QAAU,IAAID,GAAUA,EAAO,E,CAGrC,UAAAV,CAAW3E,GACjB,OAAOqG,MAAMC,QAAQtG,GAAS,IAAIA,GAASA,C,CAGrC,WAAA2H,CAAYb,EAAgBC,GAClC,GAAIV,MAAMC,QAAQQ,IAAMT,MAAMC,QAAQS,GAAI,CACxC,OAAOD,EAAE/D,SAAWgE,EAAEhE,QAAU+D,EAAEc,OAAM,CAAC5H,EAAOkC,IAAUlC,IAAU+G,EAAE7E,I,CAExE,OAAQmE,MAAMC,QAAQQ,KAAOT,MAAMC,QAAQS,IAAMD,IAAMC,C,CAGjD,aAAAc,CAAc7H,GACpB,MAAM8H,EAAOxF,OAAOtC,GAAO+H,cAC3B,GAAID,EAAK9E,SAAS,MAAO,OAAOP,OAAOqF,EAAKE,MAAM,MAAM,KAAO,EAC/D,OAAOF,EAAK9E,SAAS,KAAO8E,EAAKE,MAAM,KAAK,GAAGjF,OAAS,C,CAGlD,IAAAuE,CAAKtH,EAAegH,EAAUjH,KAAK2G,QAASW,EAAUtH,KAAK4G,SACjE,MAAMvG,EAAQL,KAAK+C,cAAcK,QAAOC,GAAQA,EAAKpD,OAASgH,GAAW5D,EAAKpD,OAASqH,IACvF,GAAIjH,EAAM2C,OACR,OAAO3C,EAAM6H,QAAO,CAACC,EAAS9E,IAC5BiB,KAAK8D,IAAI/E,EAAKpD,MAAQA,GAASqE,KAAK8D,IAAID,EAAQlI,MAAQA,GAASoD,EAAO8E,IACxElI,MACJ,GAAID,KAAKI,OAAS,MAChB,OAAOkE,KAAKpE,IAAIoH,EAAShD,KAAKnE,IAAI8G,EAASvE,OAAO0D,SAASnG,GAASA,EAAQgH,IAC9E,MAAMoB,EAAY3F,OAAO0D,SAASnG,GAASA,EAAQgH,EACnD,MAAMqB,EAAUrB,EAAU3C,KAAKiE,OAAOF,EAAYpB,GAAWjH,KAAKwG,UAAYxG,KAAKwG,SACnF,MAAMgC,EAAYlE,KAAKpE,IACrB,GACAoE,KAAKnE,IACHH,KAAK8H,cAAcb,GACnBjH,KAAK8H,cAAcR,GACnBtH,KAAK8H,cAAc9H,KAAKwG,YAG5B,OAAO9D,OAAO4B,KAAKpE,IAAIoH,EAAShD,KAAKnE,IAAI8G,EAASqB,IAAUG,QAAQD,G,CAG9D,OAAAE,CAAQzI,GACd,OAASA,EAAQD,KAAK2G,UAAY3G,KAAK4G,QAAU5G,KAAK2G,SAAY,G,CAG5D,UAAArD,CAAWnB,EAAemD,EAAStF,KAAKwC,gBAC9C,OAAOxC,KAAKuF,SAAWpD,IAAU,EAC7BmC,KAAKpE,IAAIF,KAAK4G,QAAStB,EAAO,GAAKtF,KAAKkH,YACxClH,KAAK2G,O,CAGH,UAAApD,CAAWpB,EAAemD,EAAStF,KAAKwC,gBAC9C,OAAOxC,KAAKuF,SAAWpD,IAAU,EAC7BmC,KAAKnE,IAAIH,KAAK2G,QAASrB,EAAO,GAAKtF,KAAKkH,YACxClH,KAAK4G,O,CAGH,UAAAnE,CAAWN,EAAeuB,GAChC,MAAMiF,EAAW3I,KAAK6E,YACtB,MAAMS,EAAStF,KAAKwC,eACpB,MAAMoG,EAActE,KAAKpE,IACvBF,KAAKuD,WAAWpB,EAAOmD,GACvBhB,KAAKnE,IACHH,KAAKsD,WAAWnB,EAAOmD,GACvBtF,KAAKuH,KAAK7D,EAAM1D,KAAKsD,WAAWnB,EAAOmD,GAAStF,KAAKuD,WAAWpB,EAAOmD,MAG3EA,EAAOnD,GAASyG,EAChB,MAAMC,EAAyB7I,KAAKuF,QAAU,IAAID,GAAUA,EAAO,GACnE,GAAItF,KAAK4H,YAAYe,EAAUE,GAAY,OAAO,MAElD7I,KAAKC,MAAQ4I,EACb7I,KAAK8I,SAASC,KAAK/I,KAAK4E,WAAWiE,IACnC,OAAO,I,CAGD,eAAAjG,GACN,MAAMY,EAAUxD,KAAK6E,YACrB,GAAI7E,KAAK4H,YAAYpE,EAASxD,KAAK6B,oBAAqB,OACxD7B,KAAK6B,mBAAqB7B,KAAK4E,WAAWpB,GAC1CxD,KAAKgJ,SAASD,KAAK/I,KAAK4E,WAAWpB,G,CAG7B,gBAAA6B,GACN,GAAIrF,KAAKiJ,OAASjJ,KAAKc,WAAad,KAAKkJ,gBAAkBlJ,KAAKuF,QAAS,OACzE,MAAM4D,EAAO7C,MAAM8C,KAAKpJ,KAAKyF,UAAU4D,QAA+BC,KAAIL,IACxE,IAAKA,EAAMM,GAAIN,EAAMM,GAAK,qBAAqB7J,IAC/C,OAAOuJ,EAAMM,EAAE,IAEjB,GAAIJ,EAAInG,OAAQhD,KAAKwJ,mBAAqBL,EAAIM,KAAK,I,CAG7C,cAAAC,CAAezJ,EAAekC,GACpC,MAAMwH,EACJ3J,KAAKiB,WAAWkB,IAChBnC,KAAK4J,WACL5J,KAAK+C,cAAcY,MAAKN,GAAQA,EAAKpD,QAAUA,KAAQgJ,MACzD,GAAIU,EAAU,OAAOA,EACrB,IAAIE,EACJ,IACEA,EAAS,IAAIC,KAAKC,aAAa/J,KAAKgK,OAAQhK,KAAKiK,eAAeC,OAAOjK,E,CACvE,MACA4J,EAAStH,OAAOtC,E,CAElB,MAAO,GAAGD,KAAKkB,cAAc2I,IAAS7J,KAAKmB,a,CAGrC,aAAAgJ,CAAclK,EAAekC,GACnC,GACEnC,KAAK+C,cAAcqH,MAAK/G,GAAQA,EAAKpD,QAAUA,GAASoD,EAAK4F,SAC7DjJ,KAAKiB,WAAWkB,IAChBnC,KAAK4J,WACL5J,KAAKkB,aACLlB,KAAKmB,aACLnB,KAAKiK,cACL,CACA,OAAOjK,KAAK0J,eAAezJ,EAAOkC,E,CAEpC,OAAOkI,S,CAkFD,cAAAC,CAAepI,GACrB,MAAMqI,EAAUvK,KAAKgC,UACrB,IAAKuI,EAAS,OAAO,EACrB,MAAMC,EAAOD,EAAQE,wBACrB,MAAMC,EAAQ1K,KAAKiE,GAAG0G,cAA2B,kBACjD,MAAMC,EAAYF,EACd1K,KAAKS,cAAgB,aACnBiK,EAAMG,YACNH,EAAMI,aACR,EAIJ,MAAMC,EAAQH,EAAY,EAE1B,GAAI5K,KAAKS,cAAgB,WAAY,CACnC,MAAMuK,EAAS1G,KAAKnE,IAAI,EAAGqK,EAAKS,OAASF,EAAQ,GACjD,OAAOzG,KAAKpE,IAAI,EAAGoE,KAAKnE,IAAI,GAAIqK,EAAKU,OAASH,EAAQ7I,EAAMiJ,SAAWH,G,CAGzE,MAAMA,EAAS1G,KAAKnE,IAAI,EAAGqK,EAAKY,MAAQL,EAAQ,GAChD,MAAMrC,GAAWxG,EAAMmJ,QAAUb,EAAKc,KAAOP,GAASC,EACtD,OAAO1G,KAAKpE,IAAI,EAAGoE,KAAKnE,IAAI,EAAGuI,G,CAGzB,gBAAAhE,CAAiBxC,GACvB,OAAOlC,KAAKuH,KAAKvH,KAAK2G,QAAU3G,KAAKsK,eAAepI,IAAUlC,KAAK4G,QAAU5G,KAAK2G,S,CAG5E,iBAAAhC,CAAkB1E,EAAeoC,GACvC,MAAMkJ,EACJlJ,aAAkBxC,EAAcwC,EAAOmJ,QAAqB,kBAAoB,KAClF,GAAID,GAAeE,QAAQ,SAAU,OAAO/I,OAAO6I,EAAcE,QAAQ,UACzE,IAAKzL,KAAKuF,QAAS,OAAO,EAE1B,MAAMD,EAAStF,KAAKwC,eACpB,MAAMkJ,EAAgBpH,KAAK8D,IAAInI,EAAQqF,EAAO,IAC9C,MAAMqG,EAAgBrH,KAAK8D,IAAInI,EAAQqF,EAAO,IAC9C,GAAIoG,IAAkBC,EAAe,OAAO1L,GAASqF,EAAO,GAAK,EAAI,EACrE,OAAOoG,EAAgBC,EAAgB,EAAI,C,CA0BrC,qBAAAC,CAAsB1J,EAAqB2J,GACjD,GAAI7L,KAAK8B,YAAcI,EAAMJ,UAAW,OACxC,GAAI9B,KAAKgC,WAAW8J,kBAAkB5J,EAAMJ,WAC1C9B,KAAKgC,UAAU+J,sBAAsB7J,EAAMJ,WAC7C9B,KAAK8B,UAAY,KACjB9B,KAAKsB,SAAW,MAChBtB,KAAKwB,QAAU,KACf,IAAKqK,IAAa7L,KAAK4H,YAAY5H,KAAK+B,kBAAmB/B,KAAK6E,aAC9D7E,KAAK4C,iB,CAGD,WAAAoJ,CAAY/L,EAAekC,GACjC,MAAM8J,EACJ9J,IAAU,EACLnC,KAAKiM,SAAW,GAAGjM,KAAK0B,oBACzB,GAAG1B,KAAKiM,SAAW,GAAGjM,KAAK0B,0BACjC,MAAMwK,EAAa/J,IAAU,EAAInC,KAAKe,WAAaf,KAAKgB,SACxD,MAAMmL,EAAanM,KAAKuF,QACpB8E,UACCrK,KAAKkJ,iBAAmBlJ,KAAKiJ,MAAQjJ,KAAK2B,QAAU3B,KAAKwJ,oBAC9D,MAAM4C,EAAcpM,KAAKuF,QAAU2G,EAAaC,EAAa9B,UAAYrK,KAAKc,UAE9E,OACEuL,EAAA,OACEC,MAAO,CACLC,cAAe,KACf,wBAAyBpK,IAAUnC,KAAKyB,kBACzC,aACWc,OAAOJ,GACnBqK,MAAO,CAAE,wBAAyBjK,OAAOvC,KAAK0I,QAAQzI,MAEtDoM,EAAA,SACEC,MAAM,gBACNG,KAAK,QACLlD,GAAI0C,EACJ/L,IAAKF,KAAKsD,WAAWnB,GACrBhC,IAAKH,KAAKuD,WAAWpB,GACrB/B,KAAMJ,KAAK+C,cAAcC,QAAUhD,KAAKI,OAAS,MAAQ,MAAQJ,KAAKwG,SACtEvG,MAAOA,EACPU,SAAUX,KAAKsC,WAAU,aACb8J,EAAW,kBACND,EAAU,mBACTnM,KAAK0M,gBAAe,iBACtB1M,KAAKmK,cAAclK,EAAOkC,GAAM,mBAC9BnC,KAAKS,cAAgB,WAAa,WAAa4J,UAAS,gBAC3DrK,KAAKY,SAAW,OAASyJ,UACxCsC,QAAUzK,GAAiBlC,KAAKiC,kBAAkBC,EAAOC,GACzDyK,SAAU5M,KAAK2C,mBACfkK,UAAW3K,GAASlC,KAAK6C,cAAcX,EAAOC,GAC9C2K,QAAS,IAAM9M,KAAK6D,YAAY1B,GAChC4K,OAAQ/M,KAAK8D,aAEfuI,EAAA,QAAMC,MAAM,uBAAsB,cAAa,QAC7CD,EAAA,QAAMC,MAAM,wB,CAMpB,MAAAU,GACE,MAAM1H,EAAStF,KAAKwC,eACpB,MAAMyK,EAAQ3H,EAAO,GACrB,MAAM4H,EAAO5H,EAAOA,EAAOtC,OAAS,GACpC,MAAMmK,EAAenN,KAAKiM,SAAW,GAAGjM,KAAK0B,oBAC7C,MAAM0L,GAASpN,KAAK4H,YAAY5H,KAAK6E,YAAa7E,KAAK4B,cACvD,MAAMyL,EAAe/H,EAClBgE,KAAI,CAACrJ,EAAOkC,IAAUnC,KAAK0J,eAAezJ,EAAOkC,KACjDsH,KAAK,IAAIzJ,KAAKoB,mBAEjB,OACEiL,EAACiB,EAAI,CAAApK,IAAA,2DACYlD,KAAKsC,WAAa,OAAS+H,UAC1CiC,MAAO,CACLiB,OAAQ,KACR,iBAAkB,KAClB,CAAC,WAAWvN,KAAKQ,QAAS,KAC1B,CAAC,WAAWR,KAAKS,eAAgB,KACjC,CAAC,iBAAiBT,KAAKU,kBAAmB,KAC1C,gBAAiBV,KAAKuF,QACtB,gBAAiBvF,KAAK+C,cAAcC,OAAS,EAC7C,sBAAuBhD,KAAK+C,cAAcqH,MAAK/G,GAAQmK,QAAQnK,EAAK4F,SACpE,mBAAoBjJ,KAAKY,SACzB,sBAAuBZ,KAAKsC,YAC7B,mBACiBtC,KAAKS,YAAW,gBACnBT,KAAKsC,WAAa,GAAK+H,UAAS,gBAChCrK,KAAKY,SAAW,GAAKyJ,UAAS,gBAC9BrK,KAAKsB,SAAW,GAAK+I,UAAS,eAC/BrK,KAAKuB,QAAU,GAAK8I,UAAS,cAC/B,GAAE,aACF+C,EAAQ,GAAK/C,UAAS,eACpBrK,KAAKwB,QAAU,GAAK6I,UAAS,cAC9BrK,KAAKsC,WAAa,GAAK+H,UACpCoD,QAASzN,KAAKmE,kBAEZnE,KAAKiJ,OAASjJ,KAAKO,YACnB8L,EAAA,OAAAnJ,IAAA,2CAAKoJ,MAAM,qBACRtM,KAAKiJ,OACJoD,EAAA,WAAAnJ,IAAA,2CACEoJ,MAAM,gBACNoB,GAAG,QACHC,QAAQ,kBACRC,MAAM,UACNC,SAAQ,KACRC,IAAKX,EACLY,OAAQ/N,KAAK2B,SAEZ3B,KAAKiJ,OAGTjJ,KAAKO,WACJ8L,EAAA,WAAAnJ,IAAA,2CACEoJ,MAAM,gBACNoB,GAAG,OACHC,QAAQ,kBACRC,MAAM,UACNI,YAAY,gBAEXX,IAKThB,EAAA,OAAAnJ,IAAA,2CACEoJ,MAAM,kBACN2B,IAAKC,IACHlO,KAAKgC,UAAYkM,GAAW,IAAI,EAElC1B,MACE,CACE,wBAAyBjK,OAAOvC,KAAKuF,QAAUvF,KAAK0I,QAAQuE,GAAS,GACrE,sBAAuB1K,OAAOvC,KAAK0I,QAAQwE,KAG/CiB,cAAenO,KAAKwE,kBACpB4J,cAAepO,KAAKiF,kBACpBoJ,YAAcnM,GAAwBlC,KAAK4L,sBAAsB1J,EAAO,OACxEoM,gBAAkBpM,GAAwBlC,KAAK4L,sBAAsB1J,EAAO,OAE5EmK,EAAA,OAAAnJ,IAAA,2CAAKoJ,MAAM,eAAc,cAAa,QACpCD,EAAA,OAAAnJ,IAAA,2CAAKoJ,MAAM,uBAEZtM,KAAK+C,cAAcuG,KAAIjG,GACtBgJ,EAAA,QACEC,MAAM,eAAc,YAElBjJ,EAAKpD,QAAUD,KAAK2G,QAChB,QACAtD,EAAKpD,QAAUD,KAAK4G,QAClB,MACAyD,UAAS,cAEL,OACZmC,MAAO,CAAE,uBAAwBjK,OAAOvC,KAAK0I,QAAQrF,EAAKpD,UAE1DoM,EAAA,QAAMC,MAAM,sBACXjJ,EAAK4F,OACJoD,EAAA,WACEC,MAAM,qBACNoB,GAAG,OACHC,QAAQ,eACRC,MAAM,aAELvK,EAAK4F,UAKb3D,EAAOgE,KAAI,CAACrJ,EAAOkC,IAAUnC,KAAKgM,YAAY/L,EAAOkC,M","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-B9y6azEw.js";const t=o;const a=s;export{t as DsSwatchPicker,a as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-swatch-picker.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{S as o,d as s}from"./p-
|
|
1
|
+
import{S as o,d as s}from"./p-Cgn-BORA.js";const t=o;const n=s;export{t as DsSwitch,n as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-switch.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as o,d as s}from"./p-
|
|
1
|
+
import{T as o,d as s}from"./p-DRdoGSGX.js";const t=o;const p=s;export{t as DsTabGroup,p as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=ds-tab-group.js.map
|