@ds-mo/ui 15.5.1 → 15.6.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.
Files changed (250) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +46 -21
  4. package/dist/angular/ds-data-preferences.d.ts +1 -1
  5. package/dist/angular/ds-data-preferences.js +3 -3
  6. package/dist/angular/ds-menu.d.ts +7 -1
  7. package/dist/angular/ds-menu.js +5 -2
  8. package/dist/angular/ds-table.d.ts +1 -1
  9. package/dist/angular/ds-table.js +3 -3
  10. package/dist/components/THIRD-PARTY-NOTICES +1 -1
  11. package/dist/components/bundled-dependencies.json +1 -1
  12. package/dist/components/ds-agent-questionnaire.js +1 -1
  13. package/dist/components/ds-agent-response.js +1 -1
  14. package/dist/components/ds-banner.js +1 -1
  15. package/dist/components/ds-bar-nav.js +1 -1
  16. package/dist/components/ds-bar-page-title.js +1 -1
  17. package/dist/components/ds-bar-title.js +1 -1
  18. package/dist/components/ds-bar-workflow.js +1 -1
  19. package/dist/components/ds-button-unfilled.js +1 -1
  20. package/dist/components/ds-calendar.js +1 -1
  21. package/dist/components/ds-card-chart.js +1 -1
  22. package/dist/components/ds-card-overview.js +1 -1
  23. package/dist/components/ds-card-setting.js +1 -1
  24. package/dist/components/ds-code-block.js +1 -1
  25. package/dist/components/ds-data-customize.js +1 -1
  26. package/dist/components/ds-data-filter.js +1 -1
  27. package/dist/components/ds-data-group.js +1 -1
  28. package/dist/components/ds-data-preferences.js +1 -1
  29. package/dist/components/ds-data-preferences.js.map +1 -1
  30. package/dist/components/ds-data-saved-views.js +1 -1
  31. package/dist/components/ds-data-search.js +1 -1
  32. package/dist/components/ds-data-search.js.map +1 -1
  33. package/dist/components/ds-data-sort.js +1 -1
  34. package/dist/components/ds-filter-menu.js +1 -1
  35. package/dist/components/ds-input-date.js +1 -1
  36. package/dist/components/ds-input-time.js +1 -1
  37. package/dist/components/ds-input.js +1 -1
  38. package/dist/components/ds-markdown.js +1 -1
  39. package/dist/components/ds-menu.js +1 -1
  40. package/dist/components/ds-message-actions.js +1 -1
  41. package/dist/components/ds-message-composer.js +1 -1
  42. package/dist/components/ds-message-scroller.js +1 -1
  43. package/dist/components/ds-mobile-header.js +1 -1
  44. package/dist/components/ds-mobile-section-switcher.js +1 -1
  45. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  46. package/dist/components/ds-modal.js +1 -1
  47. package/dist/components/ds-pagination.js +1 -1
  48. package/dist/components/ds-panel-nav.js +1 -1
  49. package/dist/components/ds-panel-tool-header.js +1 -1
  50. package/dist/components/ds-panel-tool-search.js +1 -1
  51. package/dist/components/ds-panel-tools.js +1 -1
  52. package/dist/components/ds-select.js +1 -1
  53. package/dist/components/ds-shell-app.js +1 -1
  54. package/dist/components/ds-shell-tools.js +1 -1
  55. package/dist/components/ds-table.js +1 -1
  56. package/dist/components/ds-table.js.map +1 -1
  57. package/dist/components/ds-toast.js +1 -1
  58. package/dist/components/ds-toast.js.map +1 -1
  59. package/dist/components/ds-tooltip.js +1 -1
  60. package/dist/components/{p-sDm8BEMy.js → p-B-pkoIX9.js} +2 -2
  61. package/dist/components/{p-DYsRXun3.js → p-B3o9zn3Y.js} +2 -2
  62. package/dist/components/p-BR9Pjp15.js +2 -0
  63. package/dist/components/{p-CXlklL-0.js.map → p-BR9Pjp15.js.map} +1 -1
  64. package/dist/components/{p-CcwxySms.js → p-BZY40-pE.js} +2 -2
  65. package/dist/components/{p-BLeHHoVb.js → p-BqipGGua.js} +2 -2
  66. package/dist/components/{p-BuDxlhnQ.js → p-C6kUn-vb.js} +2 -2
  67. package/dist/components/p-CElsKlxj.js +2 -0
  68. package/dist/components/{p-CzdE3M3g.js.map → p-CElsKlxj.js.map} +1 -1
  69. package/dist/components/p-CIMyD_6H.js +2 -0
  70. package/dist/components/{p-C5BBIDVm.js.map → p-CIMyD_6H.js.map} +1 -1
  71. package/dist/components/{p-C35Tki38.js → p-CSxwWcwW.js} +2 -2
  72. package/dist/components/p-CUYLGe5d.js +2 -0
  73. package/dist/components/{p-D9_iDlkT.js.map → p-CUYLGe5d.js.map} +1 -1
  74. package/dist/components/{p-BlbfbYg6.js → p-CaFXrn_8.js} +2 -2
  75. package/dist/components/{p-DZLtFn-r.js → p-DObhRLBa.js} +2 -2
  76. package/dist/components/{p-bQE1NZVe.js → p-DP07JCed.js} +2 -2
  77. package/dist/components/p-DYGllrVT.js +2 -0
  78. package/dist/components/{p-CNeDJTGX.js.map → p-DYGllrVT.js.map} +1 -1
  79. package/dist/components/{p-C378wwRj.js → p-DYtVsnDS.js} +2 -2
  80. package/dist/components/p-DbW8S5qe.js +2 -0
  81. package/dist/components/p-DbW8S5qe.js.map +1 -0
  82. package/dist/components/p-DcxY_pdJ.js +2 -0
  83. package/dist/components/{p-Df9S0aWi.js.map → p-DcxY_pdJ.js.map} +1 -1
  84. package/dist/components/{p-C9H-3JOA.js → p-DdFeWC-e.js} +2 -2
  85. package/dist/components/p-DlCLfwP4.js +2 -0
  86. package/dist/components/p-DuCfCvPs.js +2 -0
  87. package/dist/components/p-DuCfCvPs.js.map +1 -0
  88. package/dist/components/{p-BYrBU_U9.js → p-HMDczkQf.js} +2 -2
  89. package/dist/components/p-HfZ1gI2q.js +2 -0
  90. package/dist/components/{p-Da3aFRk2.js.map → p-HfZ1gI2q.js.map} +1 -1
  91. package/dist/components/{p--VQc5GDy.js → p-KA8srEed.js} +2 -2
  92. package/dist/components/{p-BfVMaZZE.js → p-OJ5WeR05.js} +2 -2
  93. package/dist/components/p-Ouk6FCxc.js +2 -0
  94. package/dist/components/{p-a-cIN_BX.js.map → p-Ouk6FCxc.js.map} +1 -1
  95. package/dist/components/p-leZFu-cd.js +2 -0
  96. package/dist/components/{p-BuGlC5r8.js.map → p-leZFu-cd.js.map} +1 -1
  97. package/dist/components/{p-DPwptvZl.js → p-wXKIVUTn.js} +2 -2
  98. package/dist/components/p-xMBaOeKa.js +2 -0
  99. package/dist/components/p-xMBaOeKa.js.map +1 -0
  100. package/dist/docs/components.json +207 -29
  101. package/dist/lint/index.js +1 -1
  102. package/dist/mcp-data/registry/agent-activity.json +1 -1
  103. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  104. package/dist/mcp-data/registry/agent-response.json +1 -1
  105. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  106. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  107. package/dist/mcp-data/registry/attachment-list.json +1 -1
  108. package/dist/mcp-data/registry/avatar.json +1 -1
  109. package/dist/mcp-data/registry/badge.json +1 -1
  110. package/dist/mcp-data/registry/banner.json +1 -1
  111. package/dist/mcp-data/registry/bar-action.json +1 -1
  112. package/dist/mcp-data/registry/bar-nav.json +1 -1
  113. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  114. package/dist/mcp-data/registry/bar-title.json +1 -1
  115. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  116. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  117. package/dist/mcp-data/registry/button-filled.json +1 -1
  118. package/dist/mcp-data/registry/button-inverted.json +1 -1
  119. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  120. package/dist/mcp-data/registry/calendar.json +1 -1
  121. package/dist/mcp-data/registry/card-action-center.json +1 -1
  122. package/dist/mcp-data/registry/card-chart.json +1 -1
  123. package/dist/mcp-data/registry/card-navigation.json +1 -1
  124. package/dist/mcp-data/registry/card-overview.json +1 -1
  125. package/dist/mcp-data/registry/card-setting.json +1 -1
  126. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  127. package/dist/mcp-data/registry/chart-legend.json +1 -1
  128. package/dist/mcp-data/registry/chart.json +1 -1
  129. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  130. package/dist/mcp-data/registry/checkbox.json +1 -1
  131. package/dist/mcp-data/registry/chip.json +1 -1
  132. package/dist/mcp-data/registry/code-block.json +1 -1
  133. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  134. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  135. package/dist/mcp-data/registry/conversation-list.json +1 -1
  136. package/dist/mcp-data/registry/data-customize.json +1 -1
  137. package/dist/mcp-data/registry/data-filter.json +1 -1
  138. package/dist/mcp-data/registry/data-group.json +1 -1
  139. package/dist/mcp-data/registry/data-preferences.json +22 -6
  140. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  141. package/dist/mcp-data/registry/data-search.json +1 -1
  142. package/dist/mcp-data/registry/data-sort.json +1 -1
  143. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  144. package/dist/mcp-data/registry/divider.json +1 -1
  145. package/dist/mcp-data/registry/empty-state.json +1 -1
  146. package/dist/mcp-data/registry/field.json +1 -1
  147. package/dist/mcp-data/registry/filter-menu.json +1 -1
  148. package/dist/mcp-data/registry/icon.json +1 -1
  149. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  150. package/dist/mcp-data/registry/input-date.json +1 -1
  151. package/dist/mcp-data/registry/input-time.json +1 -1
  152. package/dist/mcp-data/registry/input.json +1 -1
  153. package/dist/mcp-data/registry/loader.json +1 -1
  154. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  155. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  156. package/dist/mcp-data/registry/markdown.json +1 -1
  157. package/dist/mcp-data/registry/menu.json +31 -12
  158. package/dist/mcp-data/registry/message-actions.json +1 -1
  159. package/dist/mcp-data/registry/message-bubble.json +1 -1
  160. package/dist/mcp-data/registry/message-composer.json +1 -1
  161. package/dist/mcp-data/registry/message-scroller.json +1 -1
  162. package/dist/mcp-data/registry/message.json +1 -1
  163. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  164. package/dist/mcp-data/registry/mobile-header.json +1 -1
  165. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  166. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  167. package/dist/mcp-data/registry/modal.json +1 -1
  168. package/dist/mcp-data/registry/pagination.json +1 -1
  169. package/dist/mcp-data/registry/panel-nav.json +1 -1
  170. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  171. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  172. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  173. package/dist/mcp-data/registry/panel-tools.json +1 -1
  174. package/dist/mcp-data/registry/paper-texture.json +1 -1
  175. package/dist/mcp-data/registry/radio-tile.json +1 -1
  176. package/dist/mcp-data/registry/radio.json +1 -1
  177. package/dist/mcp-data/registry/registry.json +46 -21
  178. package/dist/mcp-data/registry/score.json +1 -1
  179. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  180. package/dist/mcp-data/registry/select.json +1 -1
  181. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  182. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  183. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  184. package/dist/mcp-data/registry/shell-app.json +1 -1
  185. package/dist/mcp-data/registry/shell-page.json +1 -1
  186. package/dist/mcp-data/registry/shell-tools.json +1 -1
  187. package/dist/mcp-data/registry/skeleton.json +1 -1
  188. package/dist/mcp-data/registry/slider.json +1 -1
  189. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  190. package/dist/mcp-data/registry/switch.json +1 -1
  191. package/dist/mcp-data/registry/tab-group.json +1 -1
  192. package/dist/mcp-data/registry/table.json +59 -19
  193. package/dist/mcp-data/registry/tag.json +1 -1
  194. package/dist/mcp-data/registry/text.json +1 -1
  195. package/dist/mcp-data/registry/textarea.json +1 -1
  196. package/dist/mcp-data/registry/time-picker.json +1 -1
  197. package/dist/mcp-data/registry/toast.json +1 -1
  198. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  199. package/dist/mcp-data/registry/tooltip.json +1 -1
  200. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  201. package/dist/react/ds-menu.d.ts +2 -1
  202. package/dist/react/ds-menu.js +1 -0
  203. package/dist/styles/table.css +41 -0
  204. package/dist/types/components/DataPreferences/DataPreferences.d.ts +3 -0
  205. package/dist/types/components/Menu/Menu.d.ts +5 -1
  206. package/dist/types/components/Menu/menu-types.d.ts +36 -0
  207. package/dist/types/components/Table/Table.d.ts +11 -2
  208. package/dist/types/components/Table/index.d.ts +1 -1
  209. package/dist/types/components/Table/table-column-customizer.d.ts +23 -4
  210. package/dist/types/components/Table/table-layout-controller.d.ts +2 -1
  211. package/dist/types/components/Table/table-types.d.ts +3 -1
  212. package/dist/types/components.d.ts +42 -6
  213. package/dist/vue/ds-data-preferences.js +1 -0
  214. package/dist/vue/ds-menu.js +2 -0
  215. package/dist/vue/ds-table.js +2 -0
  216. package/package.json +3 -3
  217. package/dist/components/p-BuGlC5r8.js +0 -2
  218. package/dist/components/p-C5BBIDVm.js +0 -2
  219. package/dist/components/p-CE6MaXBg.js +0 -2
  220. package/dist/components/p-CE6MaXBg.js.map +0 -1
  221. package/dist/components/p-CNeDJTGX.js +0 -2
  222. package/dist/components/p-CXlklL-0.js +0 -2
  223. package/dist/components/p-CzdE3M3g.js +0 -2
  224. package/dist/components/p-D9_iDlkT.js +0 -2
  225. package/dist/components/p-Da3aFRk2.js +0 -2
  226. package/dist/components/p-Df9S0aWi.js +0 -2
  227. package/dist/components/p-DvGrsLgt.js +0 -2
  228. package/dist/components/p-DvGrsLgt.js.map +0 -1
  229. package/dist/components/p-a-cIN_BX.js +0 -2
  230. package/dist/components/p-aD5cw_m2.js +0 -2
  231. package/dist/components/p-aD5cw_m2.js.map +0 -1
  232. package/dist/components/p-kDZ0sEII.js +0 -2
  233. package/dist/components/p-t2Ebn8si.js +0 -2
  234. package/dist/components/p-t2Ebn8si.js.map +0 -1
  235. /package/dist/components/{p-sDm8BEMy.js.map → p-B-pkoIX9.js.map} +0 -0
  236. /package/dist/components/{p-DYsRXun3.js.map → p-B3o9zn3Y.js.map} +0 -0
  237. /package/dist/components/{p-CcwxySms.js.map → p-BZY40-pE.js.map} +0 -0
  238. /package/dist/components/{p-BLeHHoVb.js.map → p-BqipGGua.js.map} +0 -0
  239. /package/dist/components/{p-BuDxlhnQ.js.map → p-C6kUn-vb.js.map} +0 -0
  240. /package/dist/components/{p-C35Tki38.js.map → p-CSxwWcwW.js.map} +0 -0
  241. /package/dist/components/{p-BlbfbYg6.js.map → p-CaFXrn_8.js.map} +0 -0
  242. /package/dist/components/{p-DZLtFn-r.js.map → p-DObhRLBa.js.map} +0 -0
  243. /package/dist/components/{p-bQE1NZVe.js.map → p-DP07JCed.js.map} +0 -0
  244. /package/dist/components/{p-C378wwRj.js.map → p-DYtVsnDS.js.map} +0 -0
  245. /package/dist/components/{p-C9H-3JOA.js.map → p-DdFeWC-e.js.map} +0 -0
  246. /package/dist/components/{p-kDZ0sEII.js.map → p-DlCLfwP4.js.map} +0 -0
  247. /package/dist/components/{p-BYrBU_U9.js.map → p-HMDczkQf.js.map} +0 -0
  248. /package/dist/components/{p--VQc5GDy.js.map → p-KA8srEed.js.map} +0 -0
  249. /package/dist/components/{p-BfVMaZZE.js.map → p-OJ5WeR05.js.map} +0 -0
  250. /package/dist/components/{p-DPwptvZl.js.map → p-wXKIVUTn.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["dataGroupCss","DEFAULT_ORDER_OPTIONS","label","direction","tableGroupSeq","DataGroup","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","vertical","embedded","options","grouping","ariaLabel","open","emptyMessage","clearLabel","shouldRender","closing","positionReady","pos","x","y","focusRingVisible","componentId","triggerId","popupId","triggerElement","pendingInitialFocusVisible","closeTimer","loaded","tasks","ConnectionTasks","el","isConnected","position","AnchoredPositionController","getAnchor","getPopup","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","TOKEN_CSS_LENGTHS","alignOffsetPx","resolveChoicePopupAlignOffset","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","componentDidLoad","onOpenChange","connectedCallback","disconnectedCallback","teardown","isOpen","connect","observe","schedule","focusInitialDataPoint","cancel","disconnect","unobserve","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","handleKeyDown","event","key","preventDefault","tabLeavesPopup","moveFocusAfterTab","shiftKey","menuWidthLg","menuFallbackHeight","clearTimeout","toggle","fromKeyboard","dsOpenChange","emit","restoreFocus","focusAnchor","matches","hidePopover","frame","selected","CSS","escape","fieldId","initial","focus","selectData","option","value","dsClear","isInactive","dsGroupChange","initialOrder","orderOptions","orderBy","activeOrderOptions","configured","find","length","selectedOrderIndex","exact","findIndex","undefined","selectOrder","index","moveFocus","selector","currentIndex","oppositeSelector","includes","items","Array","from","querySelectorAll","filter","item","getAttribute","next","renderDataOption","h","ChoiceOptionRow","id","active","usesSubtext","Boolean","description","tabIndex","onHover","onSelect","onKeyDown","candidate","renderOrder","String","render","name","trim","popupStyle","left","top","transform","Math","round","zIndex","visibility","Host","class","hidden","ref","element","variant","size","icon","labelEmphasis","pressScale","haspopup","collapseLabel","expanded","surfaceOpen","controls","onDsClick","detail","popover","style","role","ChoiceListSection","heading","className","map","type","onClick","as","color","body"],"sources":["src/wc/components/DataGroup/DataGroup.css?tag=ds-data-group&encapsulation=scoped","src/wc/components/DataGroup/DataGroup.tsx"],"sourcesContent":["@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/table-caption-control.css';\n\n:host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.data-group__body {\n display: grid;\n grid-template-columns: var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);\n min-height: calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));\n max-height: calc(100vh - var(--dimension-size-800) - var(--dimension-size-600));\n}\n\n.data-group__data-pane,\n.data-group__order-pane {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n}\n\n.data-group__data-pane {\n border-inline-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.data-group__list {\n flex: 1 1 auto;\n}\n\n.data-group__empty {\n flex: 1 1 auto;\n}\n\n.data-group__footer {\n flex: 0 0 auto;\n}\n\n.data-group__footer .ds-choice-footer__content {\n justify-content: flex-start;\n}\n\n.data-group__footer[aria-hidden='true']::before {\n visibility: hidden;\n}\n\n.data-group__footer[aria-hidden='true'] .ds-choice-footer__content {\n visibility: hidden;\n}\n\n@media (forced-colors: active) {\n .data-group__data-pane {\n border-inline-end-color: var(--ds-forced-color-content);\n }\n}\n\n.data-preferences-embedded {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n color: var(--color-foreground-secondary);\n}\n\n:host:has(.data-preferences-embedded) {\n display: block;\n max-inline-size: none;\n}\n.data-preferences-embedded .data-group__body {\n grid-template-columns: min(var(--dimension-menu-width-xs), 40%) minmax(0, 1fr);\n}\n\n:host(.data-group-vertical) .data-group__body {\n grid-template-columns: minmax(0, 1fr);\n}\n:host(.data-group-vertical) .data-group__data-pane {\n border-inline-end: 0;\n}\n\n:host(.data-group-vertical) .data-group__footer {\n display: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { ConnectionTasks } from '../../utils/connection-tasks';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { ChoiceListSection, ChoiceOptionRow } from '../../utils/choice-list-parts';\nimport type { DataGroupingState, DataSortDirection } from '../Table/table-types';\n\nexport interface TableGroupOrderOption {\n label: string;\n direction: DataSortDirection;\n /** Optional application-owned data point used to order the group sections. */\n orderBy?: string;\n}\n\nexport interface DataGroupOption {\n label: string;\n value: string;\n description?: string;\n isInactive?: boolean;\n /** Product-owned order choices for this grouping data point. */\n orderOptions?: TableGroupOrderOption[];\n}\n\nconst DEFAULT_ORDER_OPTIONS: TableGroupOrderOption[] = [\n { label: 'Ascending', direction: 'asc' },\n { label: 'Descending', direction: 'desc' },\n];\n\nlet tableGroupSeq = 0;\n\n@Component({\n tag: 'ds-data-group',\n styleUrl: 'DataGroup.css',\n scoped: true,\n})\nexport class DataGroup {\n @Element() private el!: HTMLElement;\n\n /** Product-owned data points that may group the table. */\n /** Render content inside a parent-owned surface; the parent owns dismissal and positioning. */\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() vertical: boolean = false;\n @Prop() embedded: boolean = false;\n @Prop() options: DataGroupOption[] = [];\n /** Controlled grouping field and the order of its group sections. */\n @Prop() grouping: DataGroupingState | null = null;\n /** Accessible name for the trigger and non-modal dialog. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Controlled popup visibility. */\n @Prop({ mutable: true }) open = false;\n /** Empty message kept in the order pane until a grouping data point is selected. */\n @Prop() emptyMessage = 'Select a group to choose its order.';\n /** Clear action label. */\n @Prop() clearLabel = 'Clear';\n\n /** Requests replacement of the complete controlled grouping state. */\n @Event() dsGroupChange!: EventEmitter<DataGroupingState>;\n /** Requests removal of the controlled grouping state. */\n @Event() dsClear!: EventEmitter<void>;\n /** Reports controlled popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n @State() private focusRingVisible = false;\n\n private readonly componentId = `ds-data-group-${++tableGroupSeq}`;\n private readonly triggerId = `${this.componentId}-trigger`;\n private readonly popupId = `${this.componentId}-popup`;\n private triggerElement: HTMLElement | null = null;\n private pendingInitialFocusVisible = false;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private loaded = false;\n private readonly tasks = new ConnectionTasks(() => this.el.isConnected);\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.data-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_CSS_LENGTHS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.data-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n\n componentDidLoad() {\n this.loaded = true;\n if (this.open) this.onOpenChange(true);\n }\n\n connectedCallback() {\n if (this.loaded && this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.teardown();\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.pendingInitialFocusVisible = false;\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (this.embedded || !this.loaded || !this.el.isConnected) return;\n if (isOpen) {\n this.teardown();\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.focusRingVisible = this.pendingInitialFocusVisible;\n this.interaction.connect();\n this.position.observe();\n this.position.schedule(() => this.focusInitialDataPoint());\n return;\n }\n if (!this.shouldRender || this.closing) return;\n this.tasks.cancel();\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) this.finishClose();\n else this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.embedded && (event.key === 'Escape' || event.key === 'Tab')) return;\n if ((!this.shouldRender && !this.embedded) || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key !== 'Tab' || !this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthLg, TOKEN_DEFAULTS.menuWidthLg);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private teardown() {\n this.tasks.cancel();\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private toggle(fromKeyboard = false) {\n if (this.open) {\n this.close();\n return;\n }\n this.pendingInitialFocusVisible = fromKeyboard;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private close(restoreFocus = true) {\n if (restoreFocus) this.interaction.focusAnchor();\n this.open = false;\n this.dsOpenChange.emit(false);\n this.onOpenChange(false);\n }\n\n private finishClose() {\n if (this.open || !this.closing || !this.el.isConnected) return;\n const popup = this.el.querySelector<HTMLElement>('.data-group-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private focusInitialDataPoint() {\n this.tasks.frame(() => {\n if (!this.open || this.closing) return;\n const selected = this.grouping\n ? this.el.querySelector<HTMLElement>(\n `[data-group-value=\"${CSS.escape(this.grouping.fieldId)}\"] [role=\"option\"]`\n )\n : null;\n const initial =\n selected ??\n this.el.querySelector<HTMLElement>(\n '[data-group-value] [role=\"option\"]:not([aria-disabled=\"true\"])'\n );\n initial?.focus();\n this.pendingInitialFocusVisible = false;\n });\n }\n\n private selectData(option: DataGroupOption) {\n if (option.value === '__none__') {\n this.dsClear.emit();\n return;\n }\n if (option.isInactive) return;\n if (this.grouping?.fieldId === option.value) {\n this.dsGroupChange.emit({ ...this.grouping });\n return;\n }\n const initialOrder = option.orderOptions?.[0];\n this.dsGroupChange.emit({\n fieldId: option.value,\n direction: initialOrder?.direction ?? 'asc',\n ...(initialOrder?.orderBy ? { orderBy: initialOrder.orderBy } : {}),\n });\n }\n\n private get activeOrderOptions(): TableGroupOrderOption[] {\n const configured = this.options.find(\n option => option.value === this.grouping?.fieldId\n )?.orderOptions;\n return configured?.length ? configured : DEFAULT_ORDER_OPTIONS;\n }\n\n private get selectedOrderIndex(): number {\n if (!this.grouping) return -1;\n const exact = this.activeOrderOptions.findIndex(\n option =>\n option.direction === this.grouping?.direction && option.orderBy === this.grouping?.orderBy\n );\n if (exact >= 0) return exact;\n if (this.grouping.orderBy === undefined) {\n return this.activeOrderOptions.findIndex(\n option => option.direction === this.grouping?.direction\n );\n }\n return -1;\n }\n\n private selectOrder(option: TableGroupOrderOption, index: number) {\n if (!this.grouping || this.selectedOrderIndex === index) return;\n const grouping: DataGroupingState = {\n fieldId: this.grouping.fieldId,\n direction: option.direction,\n };\n if (option.orderBy) grouping.orderBy = option.orderBy;\n this.dsGroupChange.emit(grouping);\n }\n\n private moveFocus(\n event: KeyboardEvent,\n selector: string,\n currentIndex: number,\n oppositeSelector?: string\n ) {\n if (oppositeSelector && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventDefault();\n this.focusRingVisible = true;\n this.el.querySelector<HTMLElement>(oppositeSelector)?.focus();\n return;\n }\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n const items = Array.from(this.el.querySelectorAll<HTMLElement>(selector)).filter(\n item => item.getAttribute('aria-disabled') !== 'true'\n );\n if (!items.length) return;\n let next: number;\n if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = items.length - 1;\n else next = (currentIndex + (event.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;\n this.focusRingVisible = true;\n items[next]?.focus();\n }\n\n private renderDataOption(option: DataGroupOption, index: number) {\n const selected =\n option.value === '__none__' ? !this.grouping : option.value === this.grouping?.fieldId;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-data-${index}`}\n option={{ ...option }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={Boolean(option.description)}\n tabIndex={selected || (!this.grouping && index === 0) ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectData(option)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectData(option);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-value] [role=\"option\"]',\n this.options\n .filter(candidate => !candidate.isInactive)\n .findIndex(candidate => candidate.value === option.value),\n this.grouping\n ? `[data-group-order-index=\"${this.selectedOrderIndex}\"] [role=\"option\"]`\n : undefined\n );\n }}\n />\n );\n }\n\n private renderOrder(option: TableGroupOrderOption, index: number) {\n const selected = index === this.selectedOrderIndex;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-order-${index}`}\n option={{ label: option.label, value: String(index) }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={false}\n tabIndex={selected ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectOrder(option, index)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOrder(option, index);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-order-index] [role=\"option\"]',\n index,\n `[data-group-value=\"${CSS.escape(this.grouping?.fieldId ?? '')}\"] [role=\"option\"]`\n );\n }}\n />\n );\n }\n\n render() {\n const name = this.ariaLabel?.trim() || 'Group table';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{ 'data-group-vertical': this.vertical }}\n hidden={this.options.length === 0 ? true : undefined}\n >\n {this.options.length && !this.embedded ? (\n <ds-button-unfilled\n hasBorder={this.hasBorder}\n ref={element => {\n this.triggerElement = (element as HTMLElement) ?? null;\n }}\n id={this.triggerId}\n variant=\"icon-label\"\n size=\"md\"\n icon=\"SectionList\"\n label=\"Group\"\n labelEmphasis={false}\n pressScale={false}\n aria-label={name}\n haspopup=\"dialog\"\n collapseLabel={true}\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.popupId}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.toggle(event.detail.detail === 0)}\n />\n ) : null}\n\n {this.shouldRender || this.embedded ? (\n <div\n id={this.popupId}\n popover={this.embedded ? undefined : 'manual'}\n class={{\n 'data-group-popup': true,\n 'ds-choice-popup': !this.embedded,\n 'data-preferences-embedded': this.embedded,\n 'ds-choice-popup--closing': this.closing,\n }}\n style={this.embedded ? undefined : popupStyle}\n role=\"dialog\"\n aria-label={name}\n >\n <div class=\"data-group__body\">\n <div class=\"data-group__data-pane\">\n <ChoiceListSection\n heading=\"Data\"\n ariaLabel=\"Group data\"\n className=\"data-group__list\"\n >\n {this.vertical &&\n this.renderDataOption({ label: 'No grouping', value: '__none__' }, -1)}\n {this.options.map((option, index) => (\n <div data-group-value={option.value}>\n {this.renderDataOption(option, index)}\n </div>\n ))}\n </ChoiceListSection>\n <div\n hidden={this.vertical}\n class=\"data-group__footer ds-choice-footer\"\n aria-hidden={!this.grouping ? 'true' : undefined}\n >\n <div class=\"ds-choice-footer__content ds-control--md\">\n {this.grouping ? (\n <button\n class=\"ds-choice-footer__clear ds-text-action ds-focus-ring\"\n type=\"button\"\n onClick={() => this.dsClear.emit()}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n ) : null}\n </div>\n </div>\n </div>\n\n <div class=\"data-group__order-pane\">\n {this.grouping ? (\n <ChoiceListSection\n heading=\"Order\"\n ariaLabel=\"Group order\"\n className=\"data-group__list\"\n >\n {this.activeOrderOptions.map((option, index) => (\n <div data-group-order-index={index}>{this.renderOrder(option, index)}</div>\n ))}\n </ChoiceListSection>\n ) : (\n <div class=\"data-group__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body={this.emptyMessage} />\n </div>\n )}\n </div>\n </div>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["dataGroupCss","DEFAULT_ORDER_OPTIONS","label","direction","tableGroupSeq","DataGroup","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","hasBorder","vertical","embedded","options","grouping","ariaLabel","open","emptyMessage","clearLabel","shouldRender","closing","positionReady","pos","x","y","focusRingVisible","componentId","triggerId","popupId","triggerElement","pendingInitialFocusVisible","closeTimer","loaded","tasks","ConnectionTasks","el","isConnected","position","AnchoredPositionController","getAnchor","getPopup","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","TOKEN_CSS_LENGTHS","alignOffsetPx","resolveChoicePopupAlignOffset","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","close","componentDidLoad","onOpenChange","connectedCallback","disconnectedCallback","teardown","isOpen","connect","observe","schedule","focusInitialDataPoint","cancel","disconnect","unobserve","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","handleKeyDown","event","key","preventDefault","tabLeavesPopup","moveFocusAfterTab","shiftKey","menuWidthLg","menuFallbackHeight","clearTimeout","toggle","fromKeyboard","dsOpenChange","emit","restoreFocus","focusAnchor","matches","hidePopover","frame","selected","CSS","escape","fieldId","initial","focus","selectData","option","value","dsClear","isInactive","dsGroupChange","initialOrder","orderOptions","orderBy","activeOrderOptions","configured","find","length","selectedOrderIndex","exact","findIndex","undefined","selectOrder","index","moveFocus","selector","currentIndex","oppositeSelector","includes","items","Array","from","querySelectorAll","filter","item","getAttribute","next","renderDataOption","h","ChoiceOptionRow","id","active","usesSubtext","Boolean","description","tabIndex","onHover","onSelect","onKeyDown","candidate","renderOrder","String","render","name","trim","popupStyle","left","top","transform","Math","round","zIndex","visibility","Host","class","hidden","ref","element","variant","size","icon","labelEmphasis","pressScale","haspopup","collapseLabel","expanded","surfaceOpen","controls","onDsClick","detail","popover","style","role","ChoiceListSection","heading","className","map","type","onClick","as","color","body"],"sources":["src/wc/components/DataGroup/DataGroup.css?tag=ds-data-group&encapsulation=scoped","src/wc/components/DataGroup/DataGroup.tsx"],"sourcesContent":["@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/table-caption-control.css';\n\n:host {\n display: inline-flex;\n min-inline-size: 0;\n max-inline-size: var(--dimension-menu-width-xs);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.data-group__body {\n display: grid;\n grid-template-columns: var(--dimension-menu-width-xs) var(--dimension-menu-width-sm);\n min-height: calc(var(--dimension-size-800) * 4 + var(--dimension-space-150));\n max-height: calc(100vh - var(--dimension-size-800) - var(--dimension-size-600));\n}\n\n.data-group__data-pane,\n.data-group__order-pane {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n}\n\n.data-group__data-pane {\n border-inline-end: var(--dimension-stroke-width-012) solid var(--color-border-tertiary);\n}\n\n.data-group__list {\n flex: 1 1 auto;\n}\n\n.data-group__empty {\n flex: 1 1 auto;\n}\n\n.data-group__footer {\n flex: 0 0 auto;\n}\n\n.data-group__footer .ds-choice-footer__content {\n justify-content: flex-start;\n}\n\n.data-group__footer[aria-hidden='true']::before {\n visibility: hidden;\n}\n\n.data-group__footer[aria-hidden='true'] .ds-choice-footer__content {\n visibility: hidden;\n}\n\n@media (forced-colors: active) {\n .data-group__data-pane {\n border-inline-end-color: var(--ds-forced-color-content);\n }\n}\n\n.data-preferences-embedded {\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n color: var(--color-foreground-secondary);\n}\n\n:host:has(.data-preferences-embedded) {\n display: block;\n max-inline-size: none;\n}\n.data-preferences-embedded .data-group__body {\n grid-template-columns: min(var(--dimension-menu-width-xs), 40%) minmax(0, 1fr);\n}\n\n:host(.data-group-vertical) .data-group__body {\n grid-template-columns: minmax(0, 1fr);\n}\n:host(.data-group-vertical) .data-group__data-pane {\n border-inline-end: 0;\n}\n\n:host(.data-group-vertical) .data-group__footer {\n display: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { ConnectionTasks } from '../../utils/connection-tasks';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\nimport { ChoiceListSection, ChoiceOptionRow } from '../../utils/choice-list-parts';\nimport type { DataGroupingState, DataSortDirection } from '../Table/table-types';\n\nexport interface TableGroupOrderOption {\n label: string;\n direction: DataSortDirection;\n /** Optional application-owned data point used to order the group sections. */\n orderBy?: string;\n}\n\nexport interface DataGroupOption {\n label: string;\n value: string;\n description?: string;\n isInactive?: boolean;\n /** Product-owned order choices for this grouping data point. */\n orderOptions?: TableGroupOrderOption[];\n}\n\nconst DEFAULT_ORDER_OPTIONS: TableGroupOrderOption[] = [\n { label: 'Ascending', direction: 'asc' },\n { label: 'Descending', direction: 'desc' },\n];\n\nlet tableGroupSeq = 0;\n\n@Component({\n tag: 'ds-data-group',\n styleUrl: 'DataGroup.css',\n scoped: true,\n})\nexport class DataGroup {\n @Element() private el!: HTMLElement;\n\n /** Product-owned data points that may group the table. */\n /** Render content inside a parent-owned surface; the parent owns dismissal and positioning. */\n /** Show the trigger border. */\n @Prop() hasBorder: boolean = true;\n @Prop() vertical: boolean = false;\n @Prop() embedded: boolean = false;\n @Prop() options: DataGroupOption[] = [];\n /** Controlled grouping field and the order of its group sections. */\n @Prop() grouping: DataGroupingState | null = null;\n /** Accessible name for the trigger and non-modal dialog. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Controlled popup visibility. */\n @Prop({ mutable: true }) open = false;\n /** Empty message kept in the order pane until a grouping data point is selected. */\n @Prop() emptyMessage = 'Select a group to choose its order.';\n /** Clear action label. */\n @Prop() clearLabel = 'Clear';\n\n /** Requests replacement of the complete controlled grouping state. */\n @Event() dsGroupChange!: EventEmitter<DataGroupingState>;\n /** Requests removal of the controlled grouping state. */\n @Event() dsClear!: EventEmitter<void>;\n /** Reports controlled popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n @State() private focusRingVisible = false;\n\n private readonly componentId = `ds-data-group-${++tableGroupSeq}`;\n private readonly triggerId = `${this.componentId}-trigger`;\n private readonly popupId = `${this.componentId}-popup`;\n private triggerElement: HTMLElement | null = null;\n private pendingInitialFocusVisible = false;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private loaded = false;\n private readonly tasks = new ConnectionTasks(() => this.el.isConnected);\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.data-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_CSS_LENGTHS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.triggerElement,\n getPopup: () => this.el.querySelector<HTMLElement>('.data-group-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.close(),\n });\n\n componentDidLoad() {\n this.loaded = true;\n if (this.open) this.onOpenChange(true);\n }\n\n connectedCallback() {\n if (this.loaded && this.open) this.onOpenChange(true);\n }\n\n disconnectedCallback() {\n this.teardown();\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.pendingInitialFocusVisible = false;\n }\n\n @Watch('open')\n onOpenChange(isOpen: boolean) {\n if (this.embedded || !this.loaded || !this.el.isConnected) return;\n if (isOpen) {\n this.teardown();\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.focusRingVisible = this.pendingInitialFocusVisible;\n this.interaction.connect();\n this.position.observe();\n this.position.schedule(() => this.focusInitialDataPoint());\n return;\n }\n if (!this.shouldRender || this.closing) return;\n this.tasks.cancel();\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) this.finishClose();\n else this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.embedded && (event.key === 'Escape' || event.key === 'Tab')) return;\n if ((!this.shouldRender && !this.embedded) || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n return;\n }\n if (event.key !== 'Tab' || !this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.close(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthLg, TOKEN_DEFAULTS.menuWidthLg);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private teardown() {\n this.tasks.cancel();\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private toggle(fromKeyboard = false) {\n if (this.open) {\n this.close();\n return;\n }\n this.pendingInitialFocusVisible = fromKeyboard;\n this.open = true;\n this.dsOpenChange.emit(true);\n this.onOpenChange(true);\n }\n\n private close(restoreFocus = true) {\n if (restoreFocus) this.interaction.focusAnchor();\n this.open = false;\n this.dsOpenChange.emit(false);\n this.onOpenChange(false);\n }\n\n private finishClose() {\n if (this.open || !this.closing || !this.el.isConnected) return;\n const popup = this.el.querySelector<HTMLElement>('.data-group-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private focusInitialDataPoint() {\n this.tasks.frame(() => {\n if (!this.open || this.closing) return;\n const selected = this.grouping\n ? this.el.querySelector<HTMLElement>(\n `[data-group-value=\"${CSS.escape(this.grouping.fieldId)}\"] [role=\"option\"]`\n )\n : null;\n const initial =\n selected ??\n this.el.querySelector<HTMLElement>(\n '[data-group-value] [role=\"option\"]:not([aria-disabled=\"true\"])'\n );\n initial?.focus();\n this.pendingInitialFocusVisible = false;\n });\n }\n\n private selectData(option: DataGroupOption) {\n if (option.value === '__none__') {\n this.dsClear.emit();\n return;\n }\n if (option.isInactive) return;\n if (this.grouping?.fieldId === option.value) {\n this.dsGroupChange.emit({ ...this.grouping });\n return;\n }\n const initialOrder = option.orderOptions?.[0];\n this.dsGroupChange.emit({\n fieldId: option.value,\n direction: initialOrder?.direction ?? 'asc',\n ...(initialOrder?.orderBy ? { orderBy: initialOrder.orderBy } : {}),\n });\n }\n\n private get activeOrderOptions(): TableGroupOrderOption[] {\n const configured = this.options.find(\n option => option.value === this.grouping?.fieldId\n )?.orderOptions;\n return configured?.length ? configured : DEFAULT_ORDER_OPTIONS;\n }\n\n private get selectedOrderIndex(): number {\n if (!this.grouping) return -1;\n const exact = this.activeOrderOptions.findIndex(\n option =>\n option.direction === this.grouping?.direction && option.orderBy === this.grouping?.orderBy\n );\n if (exact >= 0) return exact;\n if (this.grouping.orderBy === undefined) {\n return this.activeOrderOptions.findIndex(\n option => option.direction === this.grouping?.direction\n );\n }\n return -1;\n }\n\n private selectOrder(option: TableGroupOrderOption, index: number) {\n if (!this.grouping || this.selectedOrderIndex === index) return;\n const grouping: DataGroupingState = {\n fieldId: this.grouping.fieldId,\n direction: option.direction,\n };\n if (option.orderBy) grouping.orderBy = option.orderBy;\n this.dsGroupChange.emit(grouping);\n }\n\n private moveFocus(\n event: KeyboardEvent,\n selector: string,\n currentIndex: number,\n oppositeSelector?: string\n ) {\n if (oppositeSelector && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventDefault();\n this.focusRingVisible = true;\n this.el.querySelector<HTMLElement>(oppositeSelector)?.focus();\n return;\n }\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\n event.preventDefault();\n const items = Array.from(this.el.querySelectorAll<HTMLElement>(selector)).filter(\n item => item.getAttribute('aria-disabled') !== 'true'\n );\n if (!items.length) return;\n let next: number;\n if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = items.length - 1;\n else next = (currentIndex + (event.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;\n this.focusRingVisible = true;\n items[next]?.focus();\n }\n\n private renderDataOption(option: DataGroupOption, index: number) {\n const selected =\n option.value === '__none__' ? !this.grouping : option.value === this.grouping?.fieldId;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-data-${index}`}\n option={{ ...option }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={Boolean(option.description)}\n tabIndex={selected || (!this.grouping && index === 0) ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectData(option)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectData(option);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-value] [role=\"option\"]',\n this.options\n .filter(candidate => !candidate.isInactive)\n .findIndex(candidate => candidate.value === option.value),\n this.grouping\n ? `[data-group-order-index=\"${this.selectedOrderIndex}\"] [role=\"option\"]`\n : undefined\n );\n }}\n />\n );\n }\n\n private renderOrder(option: TableGroupOrderOption, index: number) {\n const selected = index === this.selectedOrderIndex;\n return (\n <ChoiceOptionRow\n id={`${this.componentId}-order-${index}`}\n option={{ label: option.label, value: String(index) }}\n selected={selected}\n active={selected}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={false}\n tabIndex={selected ? 0 : -1}\n onHover={() => {\n this.focusRingVisible = false;\n }}\n onSelect={() => this.selectOrder(option, index)}\n onKeyDown={(event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.selectOrder(option, index);\n return;\n }\n this.moveFocus(\n event,\n '[data-group-order-index] [role=\"option\"]',\n index,\n `[data-group-value=\"${CSS.escape(this.grouping?.fieldId ?? '')}\"] [role=\"option\"]`\n );\n }}\n />\n );\n }\n\n render() {\n const name = this.ariaLabel?.trim() || 'Group table';\n const popupStyle: Record<string, string> = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: '9998',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{ 'data-group-vertical': this.vertical }}\n hidden={this.options.length === 0 ? true : undefined}\n >\n {this.options.length && !this.embedded ? (\n <ds-button-unfilled\n hasBorder={this.hasBorder}\n ref={element => {\n this.triggerElement = (element as HTMLElement) ?? null;\n }}\n id={this.triggerId}\n variant=\"icon-label\"\n size=\"md\"\n icon=\"SectionList\"\n label=\"Group\"\n labelEmphasis={false}\n pressScale={false}\n aria-label={name}\n haspopup=\"dialog\"\n collapseLabel={true}\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.popupId}\n onDsClick={(event: CustomEvent<MouseEvent>) => this.toggle(event.detail.detail === 0)}\n />\n ) : null}\n\n {this.shouldRender || this.embedded ? (\n <div\n id={this.popupId}\n popover={this.embedded ? undefined : 'manual'}\n class={{\n 'data-group-popup': true,\n 'ds-choice-popup': !this.embedded,\n 'data-preferences-embedded': this.embedded,\n 'ds-choice-popup--closing': this.closing,\n }}\n style={this.embedded ? undefined : popupStyle}\n role=\"dialog\"\n aria-label={name}\n >\n <div class=\"data-group__body\">\n <div class=\"data-group__data-pane\">\n <ChoiceListSection\n heading=\"Data\"\n ariaLabel=\"Group data\"\n className=\"data-group__list\"\n >\n {this.vertical &&\n this.renderDataOption({ label: 'No grouping', value: '__none__' }, -1)}\n {this.options.map((option, index) => (\n <div data-group-value={option.value}>\n {this.renderDataOption(option, index)}\n </div>\n ))}\n </ChoiceListSection>\n <div\n hidden={this.vertical}\n class=\"data-group__footer ds-choice-footer\"\n aria-hidden={!this.grouping ? 'true' : undefined}\n >\n <div class=\"ds-choice-footer__content ds-control--md\">\n {this.grouping ? (\n <button\n class=\"ds-choice-footer__clear ds-text-action ds-focus-ring\"\n type=\"button\"\n onClick={() => this.dsClear.emit()}\n >\n <ds-text as=\"span\" variant=\"text-body-medium\" color=\"inherit\">\n {this.clearLabel}\n </ds-text>\n </button>\n ) : null}\n </div>\n </div>\n </div>\n\n <div class=\"data-group__order-pane\">\n {this.grouping ? (\n <ChoiceListSection\n heading=\"Order\"\n ariaLabel=\"Group order\"\n className=\"data-group__list\"\n >\n {this.activeOrderOptions.map((option, index) => (\n <div data-group-order-index={index}>{this.renderOrder(option, index)}</div>\n ))}\n </ChoiceListSection>\n ) : (\n <div class=\"data-group__empty ds-choice-empty ds-empty-region\">\n <ds-empty-state body={this.emptyMessage} />\n </div>\n )}\n </div>\n </div>\n </div>\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{p as t,H as i,c as e,h as s,a as n,t as d}from"./index.js";import{A as o,r,d as a}from"./p-DbW8S5qe.js";import{A as c}from"./p-CwUXroLs.js";import{d as l}from"./p-CwdRaJER.js";import{d as p}from"./p-BqipGGua.js";import{i as u,f as h,b as f,d as v}from"./p-CSxwWcwW.js";import{d as g}from"./p-pPtjNRqC.js";import{d as m}from"./p-0XTyQNRG.js";import{d as b}from"./p-D8OWhnID.js";import{D as y}from"./p-DOUk4KoT.js";import{r as x}from"./p-ioGH5SoA.js";import{r as w}from"./p-DhKvqh5G.js";import{s as k,r as z}from"./p-DGVZhrMd.js";import{b as C,T as I}from"./p-CeXf9-X3.js";import{C as F}from"./p-CuwopElg.js";import{c as T}from"./p-DuFm-ieS.js";const _=()=>`@media (forced-colors: active){.sc-ds-input-date:root,.sc-ds-input-date-h,.ds-forced-colors-scope.sc-ds-input-date{--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-interaction-fill.sc-ds-input-date-h,.ds-interaction-fill.sc-ds-input-date{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-input-date-h::before,.ds-interaction-fill.sc-ds-input-date::before,.ds-interaction-fill.sc-ds-input-date-h::after,.ds-interaction-fill.sc-ds-input-date::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-input-date-h::before,.ds-interaction-fill.sc-ds-input-date::before{z-index:1}.ds-interaction-fill.sc-ds-input-date-h::after,.ds-interaction-fill.sc-ds-input-date::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-input-date-h,.ds-interaction-fill--bordered.sc-ds-input-date{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-input-date-h::before,.ds-interaction-fill--selected.sc-ds-input-date::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-input-date-h,.ds-interaction-fill--selected.sc-ds-input-date{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-input-date-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-input-date:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-input-date-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-input-date:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-input-date-h::after,.ds-interaction-fill--grouped.sc-ds-input-date::after,.ds-interaction-fill--grouped.sc-ds-input-date-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-input-date:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-input-date-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-input-date:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-input-date-h,.ds-interaction-fill--grouped.sc-ds-input-date{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-input-date-h>.ds-interaction-fill__content.sc-ds-input-date,.ds-interaction-fill.sc-ds-input-date>.ds-interaction-fill__content.sc-ds-input-date,.ds-interaction-fill__content.sc-ds-input-date{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-input-date-h,.ds-interaction-fill--on-faint.sc-ds-input-date{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-input-date-h,.ds-interaction-fill--on-medium.sc-ds-input-date{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-input-date-h,.ds-interaction-fill--on-bold.sc-ds-input-date{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-input-date-h,.ds-interaction-fill--on-strong.sc-ds-input-date{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-input-date-h,.ds-interaction-fill--on-translucent.sc-ds-input-date{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-input-date-h,.ds-interaction-fill--on-inverted.sc-ds-input-date{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-input-date-h,.ds-interaction-fill--on-media.sc-ds-input-date{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-input-date-h,.ds-interaction-fill--on-always-dark.sc-ds-input-date{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-input-date-h,.ds-interaction-fill--on-chrome.sc-ds-input-date{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-input-date-h,.ds-interaction-fill--on-navigation.sc-ds-input-date{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-input-date-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-input-date:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-input-date-h::after,.ds-interaction-fill.sc-ds-input-date::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-input-date-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-input-date:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-input-date-h::before,.ds-interaction-fill--selected.sc-ds-input-date::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-input-date-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-input-date:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-input-date:root,.sc-ds-input-date-h,.ds-forced-colors-scope.sc-ds-input-date{--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-input-date-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-input-date-h,.ds-focus-ring.sc-ds-input-date,.ds-focus-ring-inset.sc-ds-input-date-h,.ds-focus-ring-inset.sc-ds-input-date{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-input-date-h:focus-visible,.ds-focus-ring.sc-ds-input-date:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-input-date-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-input-date{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-input-date-h:focus-visible,.ds-focus-ring-inset.sc-ds-input-date:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-input-date-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-input-date:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-date-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-date{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-date-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-input-date::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-input-date-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-input-date:root,.sc-ds-input-date-h,.ds-forced-colors-scope.sc-ds-input-date{--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-input-date-h,.ds-control-inactive.sc-ds-input-date{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-input-date-h,.ds-control-inactive.sc-ds-input-date{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-input-date-h,.sc-ds-input-date:where(.ds-table),.sc-ds-input-date:where(.tooltip-popup),.sc-ds-input-date:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-input-date,.ds-control--lg.sc-ds-input-date-h,.ds-control--md.sc-ds-input-date-h,.ds-control--md.sc-ds-input-date,.ds-control--sm.sc-ds-input-date-h,.ds-control--sm.sc-ds-input-date,.ds-control--xs.sc-ds-input-date-h,.ds-control--xs.sc-ds-input-date{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-input-date-h,.ds-control--lg.sc-ds-input-date{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-input-date-h,.ds-control--md.sc-ds-input-date{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-input-date-h,.ds-control--sm.sc-ds-input-date{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-input-date-h,.ds-control--xs.sc-ds-input-date{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control-frame.sc-ds-input-date{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-input-date{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-input-date{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-input-date{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-input-date{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-input-date{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-control-width--hug.sc-ds-input-date-h,.ds-control-width--hug.sc-ds-input-date{width:fit-content;max-width:100%;flex:0 0 auto}.ds-control-width--fill.sc-ds-input-date-h,.ds-control-width--fill.sc-ds-input-date{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.ds-field-stack.sc-ds-input-date-h,.ds-field-stack.sc-ds-input-date{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-date-h .error-text.sc-ds-input-date,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-date .error-text.sc-ds-input-date,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-date .field__description.sc-ds-input-date,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-input-date .field__error.sc-ds-input-date{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-text--display-medium.sc-ds-input-date-h,.ds-text--display-medium.sc-ds-input-date{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-input-date-h,.ds-text--display-small.sc-ds-input-date{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-input-date-h,.ds-text--title-large.sc-ds-input-date{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-input-date-h,.ds-text--title-medium.sc-ds-input-date{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-input-date-h,.ds-text--title-small.sc-ds-input-date{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-input-date-h,.ds-text--body-large.sc-ds-input-date{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-input-date-h,.ds-text--body-medium.sc-ds-input-date{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-input-date-h,.ds-text--body-small.sc-ds-input-date{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-input-date-h,.ds-text--caption.sc-ds-input-date{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-input-date-h,.ds-text--display-small.ds-text--emphasis.sc-ds-input-date-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-input-date,.ds-text--display-small.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-input-date-h,.ds-text--display-small.ds-text--regular.sc-ds-input-date-h,.ds-text--display-medium.ds-text--regular.sc-ds-input-date,.ds-text--display-small.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-input-date-h,.ds-text--title-large.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-input-date-h,.ds-text--title-large.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-input-date-h,.ds-text--title-small.ds-text--emphasis.sc-ds-input-date-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-input-date,.ds-text--title-small.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-input-date-h,.ds-text--title-small.ds-text--regular.sc-ds-input-date-h,.ds-text--title-medium.ds-text--regular.sc-ds-input-date,.ds-text--title-small.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-input-date-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-input-date-h,.ds-text--body-large.ds-text--emphasis.sc-ds-input-date,.ds-text--body-medium.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-input-date-h,.ds-text--body-medium.ds-text--regular.sc-ds-input-date-h,.ds-text--body-large.ds-text--regular.sc-ds-input-date,.ds-text--body-medium.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-input-date-h,.ds-text--body-small.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-input-date-h,.ds-text--body-small.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-input-date-h,.ds-text--caption.ds-text--emphasis.sc-ds-input-date{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-input-date-h,.ds-text--caption.ds-text--regular.sc-ds-input-date{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}@media (forced-colors: active){.sc-ds-input-date:root,.sc-ds-input-date-h,.ds-forced-colors-scope.sc-ds-input-date{--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}}.input-host.sc-ds-input-date-h{display:inline-flex;--ds-input-fg:var(--color-foreground-primary);--ds-input-placeholder:var(--color-foreground-secondary);--ds-input-placeholder-active:var(--color-foreground-quaternary);--ds-input-adornment-fg:var(--color-foreground-secondary);--ds-input-border:var(--color-border-secondary)}.ds-control-width--fill.sc-ds-input-date-h,.ds-control-width--fill.sc-ds-input-date-h .input-control.sc-ds-input-date{width:100%}.input-control.sc-ds-input-date{overflow:hidden;background:transparent;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));color:var(--ds-input-fg)}.input-control--bordered.sc-ds-input-date{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-input-border)}.input-control--error.sc-ds-input-date{--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-negative)}.input-control--bordered.sc-ds-input-date:focus-within:not(.input-control--error){--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-brand)}.ds-control-inactive.sc-ds-input-date-h .input-control.sc-ds-input-date::after{background:transparent}.native-input.sc-ds-input-date{position:relative;z-index:2;flex:1 1 auto;min-width:0;height:100%;background:transparent;border:none;border-radius:inherit;outline:none;color:var(--ds-input-fg);font-family:inherit;letter-spacing:inherit;text-overflow:ellipsis;-webkit-appearance:none;appearance:none;color-scheme:inherit}.native-input--align-start.sc-ds-input-date{text-align:start}.native-input.sc-ds-input-date:disabled{cursor:not-allowed}.native-input.sc-ds-input-date:read-only:not(:disabled){cursor:default}.native-input.sc-ds-input-date::-webkit-calendar-picker-indicator{display:none}.native-input.sc-ds-input-date::-webkit-inner-spin-button,.native-input.sc-ds-input-date::-webkit-clear-button{display:none}.native-input.sc-ds-input-date::-webkit-datetime-edit,.native-input.sc-ds-input-date::-webkit-datetime-edit-fields-wrapper,.native-input.sc-ds-input-date::-webkit-datetime-edit-text,.native-input.sc-ds-input-date::-webkit-datetime-edit-month-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-day-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-year-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-hour-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-minute-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-second-field,.native-input.sc-ds-input-date::-webkit-datetime-edit-ampm-field{padding:0;color:inherit;font:inherit;letter-spacing:inherit}.input-control__prefix.sc-ds-input-date{position:relative;z-index:2;color:var(--ds-input-adornment-fg)}.input-control.sc-ds-input-date>.input-control__datetime-action.sc-ds-input-date{position:relative;z-index:2;flex-shrink:0;align-self:center}.ds-control-inactive.sc-ds-input-date-h .input-control.sc-ds-input-date>.input-control__datetime-action.sc-ds-input-date{--effect-opacity-medium:1}.input-control.sc-ds-input-date:has(.input-control__datetime-action){padding-inline-end:var(--dimension-space-025)}.error-text.sc-ds-input-date{width:100%}@media (forced-colors: active){.input-control--bordered.sc-ds-input-date:focus-within:not(.input-control--error)::after{outline-color:var(--ds-forced-color-selected)}.input-control--error.sc-ds-input-date::after{outline-style:dashed}}.ds-choice-popup.sc-ds-input-date{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-input-date::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-input-date{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-input-date{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-input-date{opacity:0}}@media (forced-colors: active){.ds-choice-popup.sc-ds-input-date{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-input-date::after{box-shadow:none}}.ds-chrome-space--sm.sc-ds-input-date-h,.ds-chrome-space--sm.sc-ds-input-date{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-input-date-h,.ds-chrome-space--md.sc-ds-input-date{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-input-date-h,.ds-chrome-space--lg.sc-ds-input-date{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-input-date-h,.ds-chrome-row.sc-ds-input-date,.ds-chrome-column.sc-ds-input-date-h,.ds-chrome-column.sc-ds-input-date,.ds-chrome-grid.sc-ds-input-date-h,.ds-chrome-grid.sc-ds-input-date{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-input-date-h,.ds-chrome-row.sc-ds-input-date{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-input-date-h,.ds-chrome-column.sc-ds-input-date{flex-direction:column}.ds-chrome-grid.sc-ds-input-date-h,.ds-chrome-grid.sc-ds-input-date{display:grid;align-items:center}.input-date-popup.ds-choice-popup.sc-ds-input-date{--ds-calendar-padding:0;padding:var(--dimension-space-050)}`;let D=0;const j="Enter a valid date.";const E="Date is before the minimum allowed date.";const O="Date is after the maximum allowed date.";const q=t(class t extends i{constructor(t){super();if(t!==false){this.__registerHost()}this.dsChange=e(this,"dsChange",7);this.internals=this.attachInternals();this.generatedId=`ds-input-date-${++D}`;this.errorId=`${this.generatedId}-error`;this.popupId=`${this.generatedId}-popup`;this.value="";this.disabled=false;this.readOnly=false;this.required=false;this.requiredMessage=y;this.size="md";this.width="fill";this.hasBorder=true;this.hasInteractionFill=true;this.isInactive=false;this.autoFocus=false;this.error=false;this.ariaLabel=null;this.initialValue="";this.closeTimer=null;this.formDisabled=false;this.focused=false;this.touched=false;this.draftText="";this.open=false;this.shouldRender=false;this.closing=false;this.positionReady=false;this.pos={x:0,y:0};this.position=new o({getAnchor:()=>this.controlEl??null,getPopup:()=>this.el.querySelector(".input-date-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(t,i)=>{if(!this.open)return null;const e=x(I.space050,I.space050);return{anchorRect:t.getBoundingClientRect(),popupWidth:i.offsetWidth||this.popupFallbackWidth,popupHeight:i.offsetHeight||this.popupFallbackHeight,side:"bottom",align:"end",sideOffsetPx:x(I.space050,I.space050),alignOffsetPx:w({align:"end",alignOffsetPx:0,sectionInsetPx:e,anchorAlignment:"popup-frame"}),viewportPadPx:x(I.space050,I.space050),viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:r(t)}},apply:({x:t,y:i})=>{this.pos={x:t,y:i}},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",observeResize:true,topLayer:true});this.interaction=new c({getAnchor:()=>this.controlEl??null,getPopup:()=>this.el.querySelector(".input-date-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.closePicker(false)});this.togglePicker=()=>{if(this.isInactive||this.disabled||this.formDisabled||this.readOnly)return;if(this.open)this.closePicker("button");else this.openPicker()};this.handleInput=t=>{if(this.pickerInactive)return;this.draftText=t.target.value;const i=this.parseDraft(this.draftText);if(i===null)return;this.commitIso(i)};this.handleFocus=()=>{this.draftText=this.displayValue||this.value;this.focused=true};this.handleBlur=()=>{this.focused=false;this.touched=true;if(this.pickerInactive){this.draftText=this.displayValue;return}const t=this.parseDraft(this.draftText);if(t===null){this.draftText=this.displayValue;return}this.commitIso(t)};this.handleCalendarChange=t=>{t.stopPropagation();if(this.pickerInactive)return;const i=this.parseDraft(t.detail);if(i===null)return;this.commitIso(i);this.closePicker("input")}}get popupFallbackWidth(){return x(I.menuWidthXs,I.menuWidthXs)}get popupFallbackHeight(){return x(I.menuFallbackHeight,I.menuFallbackHeight)}get formInactive(){return this.isInactive||this.disabled||this.formDisabled}get pickerInactive(){return this.formInactive||this.readOnly}get hasConstraintError(){if(!this.value)return false;if(!u(this.value))return true;if(this.min&&u(this.min)&&this.value<this.min)return true;if(this.max&&u(this.max)&&this.value>this.max)return true;return false}get isInvalid(){return this.error||!this.formInactive&&(this.required&&this.value.length===0||this.hasConstraintError)}componentWillLoad(){this.initialValue=this.value;this.syncFormValue()}disconnectedCallback(){this.teardownListeners();this.open=false;this.shouldRender=false;this.closing=false;this.positionReady=false;this.focused=false}syncFormValue(){const t=this.formInactive;k(this.internals,this.value,{inactive:t});const i={};let e="";if(!t){if(this.required&&this.value.length===0){i.valueMissing=true;e=this.requiredMessage}else if(this.value&&!u(this.value)){i.badInput=true;e=j}else if(this.value&&this.min&&u(this.min)&&this.value<this.min){i.rangeUnderflow=true;e=E}else if(this.value&&this.max&&u(this.max)&&this.value>this.max){i.rangeOverflow=true;e=O}}this.internals.setValidity(i,e)}onInteractionStateChange(){this.syncFormValue();if(this.pickerInactive&&this.shouldRender)this.closePicker(false)}formDisabledCallback(t){this.formDisabled=t;this.onInteractionStateChange()}formResetCallback(){this.value=this.initialValue;this.draftText=this.displayValue}formStateRestoreCallback(t){this.value=z(t);this.draftText=this.displayValue}async setFocus(){this.inputEl?.focus()}handleHostKeyDown(t){if(!this.shouldRender||this.closing)return;if(t.key==="Escape"){t.preventDefault();this.closePicker("button");return}if(t.key!=="Tab")return;const i=this.el.querySelector(".input-date-popup");if(!i||!t.composedPath().includes(i))return;if(!this.interaction.tabLeavesPopup(t))return;t.preventDefault();this.closePicker(false);this.interaction.moveFocusAfterTab(t.shiftKey)}get displayValue(){return h(this.value)}parseDraft(t){const i=t.trim();if(!i)return"";const e=f(i);if(!e)return null;if(this.min&&u(this.min)&&e<this.min)return null;if(this.max&&u(this.max)&&e>this.max)return null;return e}commitIso(t,i=true){if(this.value!==t){this.value=t;if(i)this.dsChange.emit(t)}this.draftText=h(t)}teardownListeners(){this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}openPicker(){const t=this.isInactive||this.disabled||this.formDisabled||this.readOnly;if(t||this.open||!this.el.isConnected)return;this.shouldRender=true;this.closing=false;this.positionReady=false;this.open=true;this.teardownListeners();this.interaction.connect();this.position.observe();this.position.schedule()}closePicker(t){if(!this.shouldRender||this.closing)return;this.open=false;this.position.cancel();this.closing=true;this.interaction.disconnect();this.position.unobserve();if(t==="input")this.inputEl?.focus();if(t==="button")void this.calendarButton?.setFocus();const i=C(I.motionShort2,I.animationDurationShort3);if(i<=0){this.finishClose();return}this.closeTimer=setTimeout((()=>this.finishClose()),i)}finishClose(){const t=this.el.querySelector(".input-date-popup");if(t?.matches(":popover-open"))t.hidePopover();this.shouldRender=false;this.closing=false;this.closeTimer=null}render(){const t=this.inputId??this.generatedId;const i=this.formInactive;const e=this.pickerInactive;const d=this.value.length>0;const o=this.value!==this.initialValue;const r=this.error&&Boolean(this.errorMessage);const a=F[this.size];const c=`ds-text--${a.replace("text-","")}`;const l=[this.ariaDescribedby,r?this.errorId:undefined].filter(Boolean).join(" ")||undefined;const p={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"var(--dimension-z-index-floating)",visibility:this.positionReady?"visible":"hidden"};return s(n,{key:"ac8e4290fedd83cb179be3f213537de046d9e5b0",class:{"input-host":true,"ds-field-stack":true,"ds-field-stack--supporting-inset":!this.hasBorder,"ds-control-inactive":i,[`ds-control--${this.size}`]:true,...T(this.width)},"data-disabled":i?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-required":this.required?"":undefined,"data-invalid":this.isInvalid?"":undefined,"data-filled":d?"":undefined,"data-focused":this.focused?"":undefined,"data-dirty":o?"":undefined,"data-touched":this.touched?"":undefined},s("div",{key:"2fa530c300aa0d43e3944ca3bfd3049e85e35a71",ref:t=>{this.controlEl=t},class:{"input-control":true,"ds-control-frame":true,"input-control--bordered":this.hasBorder,"input-control--error":this.hasBorder&&this.error,"ds-interaction-fill":this.hasInteractionFill,[`ds-control--${this.size}`]:true}},s("input",{key:"5395306010f31d64c9f1f2d15fce6e5e0918b400",ref:t=>{this.inputEl=t},type:"text",id:t,value:this.focused?this.draftText:this.displayValue,disabled:i,readOnly:this.readOnly,required:this.required,autoFocus:this.autoFocus,autoComplete:"off",spellcheck:false,class:{"native-input":true,"native-input--align-start":true,"ds-control-label-box":true,[c]:true,"ds-text--regular":true},"aria-label":this.ariaLabel,"aria-labelledby":this.ariaLabelledby,"aria-describedby":l,"aria-invalid":this.isInvalid?"true":undefined,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur}),s("ds-button-unfilled",{key:"69968fcade07b16bb789b7f76b2866f29961a846",ref:t=>{this.calendarButton=t},class:"input-control__datetime-action",variant:"icon",size:this.size,icon:"Calendar",hasBorder:false,isInset:true,isInactive:e,ariaLabel:"Choose date",haspopup:"dialog",expanded:this.open,surfaceOpen:this.open||this.closing,controls:this.open?this.popupId:undefined,onDsClick:this.togglePicker})),this.shouldRender?s("div",{id:this.popupId,popover:"manual",class:{"input-date-popup":true,"ds-choice-popup":true,"ds-choice-popup--closing":this.closing,"ds-chrome-column":true,"ds-chrome-space--sm":true},style:p,role:"dialog","aria-label":"Choose date"},s("ds-calendar",{selectionMode:"single",value:this.value,min:this.min,max:this.max,isInactive:e,autoFocus:true,onDsChange:this.handleCalendarChange})):null,r&&s("ds-text",{key:"aedd6c998da63bb1dc73db4b8045fac5bfbb220c",class:"error-text",as:"div",variant:"text-body-small",color:"negative",textId:this.errorId,role:"alert"},this.errorMessage))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],disabled:[{onInteractionStateChange:0}],isInactive:[{onInteractionStateChange:0}],readOnly:[{onInteractionStateChange:0}]}}static get style(){return _()}},[66,"ds-input-date",{value:[1025],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],required:[516],requiredMessage:[1,"required-message"],min:[1],max:[1],size:[1],width:[1],hasBorder:[4,"has-border"],hasInteractionFill:[4,"has-interaction-fill"],isInactive:[4,"is-inactive"],autoFocus:[4,"auto-focus"],error:[4],errorMessage:[1,"error-message"],inputId:[1,"input-id"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],formDisabled:[32],focused:[32],touched:[32],draftText:[32],open:[32],shouldRender:[32],closing:[32],positionReady:[32],pos:[32],setFocus:[64]},[[0,"keydown","handleHostKeyDown"]],{value:[{syncFormValue:0}],required:[{syncFormValue:0}],requiredMessage:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],disabled:[{onInteractionStateChange:0}],isInactive:[{onInteractionStateChange:0}],readOnly:[{onInteractionStateChange:0}]}]);function H(){if(typeof customElements==="undefined"){return}const t=["ds-input-date","ds-badge","ds-button-unfilled","ds-calendar","ds-icon","ds-loader","ds-text","ds-tooltip"];t.forEach((t=>{switch(t){case"ds-input-date":if(!customElements.get(d(t))){customElements.define(d(t),q)}break;case"ds-badge":if(!customElements.get(d(t))){l()}break;case"ds-button-unfilled":if(!customElements.get(d(t))){p()}break;case"ds-calendar":if(!customElements.get(d(t))){v()}break;case"ds-icon":if(!customElements.get(d(t))){g()}break;case"ds-loader":if(!customElements.get(d(t))){m()}break;case"ds-text":if(!customElements.get(d(t))){b()}break;case"ds-tooltip":if(!customElements.get(d(t))){a()}break}}))}H();export{q as I,H as d};
2
+ //# sourceMappingURL=p-leZFu-cd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["inputDateCss","idCounter","INVALID_DATE_MESSAGE","DATE_BEFORE_MIN_MESSAGE","DATE_AFTER_MAX_MESSAGE","InputDate","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","generatedId","errorId","popupId","value","disabled","readOnly","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","size","width","hasBorder","hasInteractionFill","isInactive","autoFocus","error","ariaLabel","initialValue","closeTimer","formDisabled","focused","touched","draftText","open","shouldRender","closing","positionReady","pos","x","y","position","AnchoredPositionController","getAnchor","controlEl","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","anchorAlignment","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","closePicker","togglePicker","openPicker","handleInput","event","pickerInactive","target","parsed","parseDraft","commitIso","handleFocus","displayValue","handleBlur","handleCalendarChange","stopPropagation","detail","menuWidthXs","menuFallbackHeight","formInactive","hasConstraintError","isIsoCalendarDate","min","max","isInvalid","length","componentWillLoad","syncFormValue","disconnectedCallback","teardownListeners","inactive","setFormControlValue","internals","flags","message","valueMissing","badInput","rangeUnderflow","rangeOverflow","setValidity","onInteractionStateChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","state","restoreStringFormState","setFocus","inputEl","focus","handleHostKeyDown","key","preventDefault","composedPath","includes","tabLeavesPopup","moveFocusAfterTab","shiftKey","formatIsoCalendarDateLabel","text","trimmed","trim","iso","parseLooseCalendarDate","emit","dsChange","unobserve","disconnect","clearTimeout","isConnected","connect","observe","schedule","restore","cancel","calendarButton","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","matches","hidePopover","render","inputId","filled","dirty","showError","Boolean","errorMessage","textVariant","CONTROL_TEXT_VARIANT","textClass","replace","describedBy","ariaDescribedby","undefined","filter","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","h","Host","class","controlWidthClass","ref","element","type","id","autoComplete","spellcheck","ariaLabelledby","onInput","onFocus","onBlur","variant","icon","isInset","haspopup","expanded","surfaceOpen","controls","onDsClick","popover","style","role","selectionMode","onDsChange","as","color","textId"],"sources":["src/wc/components/InputDate/InputDate.css?tag=ds-input-date&encapsulation=scoped","src/wc/components/InputDate/InputDate.tsx"],"sourcesContent":["@import '../../utils/datetime-input-control.css';\n@import '../../utils/choice-popup.css';\n@import '../../utils/chrome-layout.css';\n\n.input-date-popup.ds-choice-popup {\n --ds-calendar-padding: 0;\n padding: var(--dimension-space-050);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Prop,\n State,\n Event,\n EventEmitter,\n Listen,\n Method,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n formatIsoCalendarDateLabel,\n isIsoCalendarDate,\n parseLooseCalendarDate,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n restoreStringFormState,\n setFormControlValue,\n TOKEN_DEFAULTS,\n type ControlSize,\n type ControlWidth,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\n\nexport type InputDateSize = ControlSize;\nexport type InputDateWidth = ControlWidth;\n\nlet idCounter = 0;\n\nconst INVALID_DATE_MESSAGE = 'Enter a valid date.';\nconst DATE_BEFORE_MIN_MESSAGE = 'Date is before the minimum allowed date.';\nconst DATE_AFTER_MAX_MESSAGE = 'Date is after the maximum allowed date.';\n\n@Component({\n tag: 'ds-input-date',\n styleUrl: 'InputDate.css',\n scoped: true,\n formAssociated: true,\n})\nexport class InputDate {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private generatedId = `ds-input-date-${++idCounter}`;\n private errorId = `${this.generatedId}-error`;\n private popupId = `${this.generatedId}-popup`;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop({ reflect: true }) required: boolean = false;\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n @Prop() size: InputDateSize = 'md';\n @Prop() width: InputDateWidth = 'fill';\n @Prop() hasBorder: boolean = true;\n @Prop() hasInteractionFill: boolean = true;\n @Prop() isInactive: boolean = false;\n @Prop() autoFocus: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string | undefined;\n @Prop() inputId: string | undefined;\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n @Event() dsChange!: EventEmitter<string>;\n\n private initialValue = '';\n private inputEl?: HTMLInputElement;\n private controlEl?: HTMLElement;\n private calendarButton?: HTMLDsButtonUnfilledElement;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n @State() private formDisabled = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private draftText = '';\n @State() private open = false;\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-date-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n anchorAlignment: 'popup-frame',\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-date-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closePicker(false),\n });\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private get formInactive(): boolean {\n return this.isInactive || this.disabled || this.formDisabled;\n }\n\n private get pickerInactive(): boolean {\n return this.formInactive || this.readOnly;\n }\n\n private get hasConstraintError(): boolean {\n if (!this.value) return false;\n if (!isIsoCalendarDate(this.value)) return true;\n if (this.min && isIsoCalendarDate(this.min) && this.value < this.min) return true;\n if (this.max && isIsoCalendarDate(this.max) && this.value > this.max) return true;\n return false;\n }\n\n private get isInvalid(): boolean {\n return (\n this.error ||\n (!this.formInactive &&\n ((this.required && this.value.length === 0) || this.hasConstraintError))\n );\n }\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.syncFormValue();\n }\n\n disconnectedCallback() {\n this.teardownListeners();\n this.open = false;\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.focused = false;\n }\n\n @Watch('value')\n @Watch('required')\n @Watch('requiredMessage')\n @Watch('min')\n @Watch('max')\n syncFormValue() {\n const inactive = this.formInactive;\n setFormControlValue(this.internals, this.value, { inactive });\n const flags: ValidityStateFlags = {};\n let message = '';\n if (!inactive) {\n if (this.required && this.value.length === 0) {\n flags.valueMissing = true;\n message = this.requiredMessage;\n } else if (this.value && !isIsoCalendarDate(this.value)) {\n flags.badInput = true;\n message = INVALID_DATE_MESSAGE;\n } else if (this.value && this.min && isIsoCalendarDate(this.min) && this.value < this.min) {\n flags.rangeUnderflow = true;\n message = DATE_BEFORE_MIN_MESSAGE;\n } else if (this.value && this.max && isIsoCalendarDate(this.max) && this.value > this.max) {\n flags.rangeOverflow = true;\n message = DATE_AFTER_MAX_MESSAGE;\n }\n }\n this.internals.setValidity(flags, message);\n }\n\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('readOnly')\n onInteractionStateChange() {\n this.syncFormValue();\n if (this.pickerInactive && this.shouldRender) this.closePicker(false);\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.onInteractionStateChange();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n this.draftText = this.displayValue;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this.value = restoreStringFormState(state);\n this.draftText = this.displayValue;\n }\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n @Listen('keydown')\n handleHostKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closePicker('button');\n return;\n }\n if (event.key !== 'Tab') return;\n const popup = this.el.querySelector<HTMLElement>('.input-date-popup');\n if (!popup || !event.composedPath().includes(popup)) return;\n if (!this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.closePicker(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get displayValue(): string {\n return formatIsoCalendarDateLabel(this.value);\n }\n\n private parseDraft(text: string): string | null {\n const trimmed = text.trim();\n if (!trimmed) return '';\n const iso = parseLooseCalendarDate(trimmed);\n if (!iso) return null;\n if (this.min && isIsoCalendarDate(this.min) && iso < this.min) return null;\n if (this.max && isIsoCalendarDate(this.max) && iso > this.max) return null;\n return iso;\n }\n\n private commitIso(iso: string, emit = true) {\n if (this.value !== iso) {\n this.value = iso;\n if (emit) this.dsChange.emit(iso);\n }\n this.draftText = formatIsoCalendarDateLabel(iso);\n }\n\n private teardownListeners() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private openPicker() {\n const inactive = this.isInactive || this.disabled || this.formDisabled || this.readOnly;\n if (inactive || this.open || !this.el.isConnected) return;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.open = true;\n this.teardownListeners();\n this.interaction.connect();\n this.position.observe();\n this.position.schedule();\n }\n\n private closePicker(restore: 'input' | 'button' | false) {\n if (!this.shouldRender || this.closing) return;\n this.open = false;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n if (restore === 'input') this.inputEl?.focus();\n if (restore === 'button') void this.calendarButton?.setFocus();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.input-date-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private togglePicker = () => {\n if (this.isInactive || this.disabled || this.formDisabled || this.readOnly) return;\n if (this.open) this.closePicker('button');\n else this.openPicker();\n };\n\n private handleInput = (event: Event) => {\n if (this.pickerInactive) return;\n this.draftText = (event.target as HTMLInputElement).value;\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n private handleFocus = () => {\n this.draftText = this.displayValue || this.value;\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n this.touched = true;\n if (this.pickerInactive) {\n this.draftText = this.displayValue;\n return;\n }\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) {\n this.draftText = this.displayValue;\n return;\n }\n this.commitIso(parsed);\n };\n\n private handleCalendarChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n if (this.pickerInactive) return;\n const parsed = this.parseDraft(event.detail);\n if (parsed === null) return;\n this.commitIso(parsed);\n this.closePicker('input');\n };\n\n render() {\n const inputId = this.inputId ?? this.generatedId;\n const inactive = this.formInactive;\n const pickerInactive = this.pickerInactive;\n const filled = this.value.length > 0;\n const dirty = this.value !== this.initialValue;\n const showError = this.error && Boolean(this.errorMessage);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const textClass = `ds-text--${textVariant.replace('text-', '')}`;\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{\n 'input-host': true,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n ...controlWidthClass(this.width),\n }}\n data-disabled={inactive ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-required={this.required ? '' : undefined}\n data-invalid={this.isInvalid ? '' : undefined}\n data-filled={filled ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element;\n }}\n class={{\n 'input-control': true,\n 'ds-control-frame': true,\n 'input-control--bordered': this.hasBorder,\n 'input-control--error': this.hasBorder && this.error,\n 'ds-interaction-fill': this.hasInteractionFill,\n [`ds-control--${this.size}`]: true,\n }}\n >\n <input\n ref={element => {\n this.inputEl = element;\n }}\n type=\"text\"\n id={inputId}\n value={this.focused ? this.draftText : this.displayValue}\n disabled={inactive}\n readOnly={this.readOnly}\n required={this.required}\n autoFocus={this.autoFocus}\n autoComplete=\"off\"\n spellcheck={false}\n class={{\n 'native-input': true,\n 'native-input--align-start': true,\n 'ds-control-label-box': true,\n [textClass]: true,\n 'ds-text--regular': true,\n }}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.isInvalid ? 'true' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n <ds-button-unfilled\n ref={element => {\n this.calendarButton = element as HTMLDsButtonUnfilledElement | undefined;\n }}\n class=\"input-control__datetime-action\"\n variant=\"icon\"\n size={this.size}\n icon=\"Calendar\"\n hasBorder={false}\n isInset\n isInactive={pickerInactive}\n ariaLabel=\"Choose date\"\n haspopup=\"dialog\"\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.open ? this.popupId : undefined}\n onDsClick={this.togglePicker}\n />\n </div>\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'input-date-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label=\"Choose date\"\n >\n <ds-calendar\n selectionMode=\"single\"\n value={this.value}\n min={this.min}\n max={this.max}\n isInactive={pickerInactive}\n autoFocus\n onDsChange={this.handleCalendarChange}\n />\n </div>\n ) : null}\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["inputDateCss","idCounter","INVALID_DATE_MESSAGE","DATE_BEFORE_MIN_MESSAGE","DATE_AFTER_MAX_MESSAGE","InputDate","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","generatedId","errorId","popupId","value","disabled","readOnly","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","size","width","hasBorder","hasInteractionFill","isInactive","autoFocus","error","ariaLabel","initialValue","closeTimer","formDisabled","focused","touched","draftText","open","shouldRender","closing","positionReady","pos","x","y","position","AnchoredPositionController","getAnchor","controlEl","getPopup","el","querySelector","getOwnerDocument","ownerDocument","measure","anchor","popup","sectionInsetPx","resolveCssLengthPx","TOKEN_DEFAULTS","space050","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","popupFallbackWidth","popupHeight","offsetHeight","popupFallbackHeight","side","align","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","anchorAlignment","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","apply","onReady","liveUpdate","observeResize","topLayer","interaction","AnchoredOverlayInteractionController","onOutsideActivation","closePicker","togglePicker","openPicker","handleInput","event","pickerInactive","target","parsed","parseDraft","commitIso","handleFocus","displayValue","handleBlur","handleCalendarChange","stopPropagation","detail","menuWidthXs","menuFallbackHeight","formInactive","hasConstraintError","isIsoCalendarDate","min","max","isInvalid","length","componentWillLoad","syncFormValue","disconnectedCallback","teardownListeners","inactive","setFormControlValue","internals","flags","message","valueMissing","badInput","rangeUnderflow","rangeOverflow","setValidity","onInteractionStateChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","state","restoreStringFormState","setFocus","inputEl","focus","handleHostKeyDown","key","preventDefault","composedPath","includes","tabLeavesPopup","moveFocusAfterTab","shiftKey","formatIsoCalendarDateLabel","text","trimmed","trim","iso","parseLooseCalendarDate","emit","dsChange","unobserve","disconnect","clearTimeout","isConnected","connect","observe","schedule","restore","cancel","calendarButton","duration","resolveMotionTimeMs","motionShort2","animationDurationShort3","finishClose","setTimeout","matches","hidePopover","render","inputId","filled","dirty","showError","Boolean","errorMessage","textVariant","CONTROL_TEXT_VARIANT","textClass","replace","describedBy","ariaDescribedby","undefined","filter","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","h","Host","class","controlWidthClass","ref","element","type","id","autoComplete","spellcheck","ariaLabelledby","onInput","onFocus","onBlur","variant","icon","isInset","haspopup","expanded","surfaceOpen","controls","onDsClick","popover","style","role","selectionMode","onDsChange","as","color","textId"],"sources":["src/wc/components/InputDate/InputDate.css?tag=ds-input-date&encapsulation=scoped","src/wc/components/InputDate/InputDate.tsx"],"sourcesContent":["@import '../../utils/datetime-input-control.css';\n@import '../../utils/choice-popup.css';\n@import '../../utils/chrome-layout.css';\n\n.input-date-popup.ds-choice-popup {\n --ds-calendar-padding: 0;\n padding: var(--dimension-space-050);\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Prop,\n State,\n Event,\n EventEmitter,\n Listen,\n Method,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n formatIsoCalendarDateLabel,\n isIsoCalendarDate,\n parseLooseCalendarDate,\n resolveChoicePopupAlignOffset,\n resolveCssLengthPx,\n resolveMotionTimeMs,\n restoreStringFormState,\n setFormControlValue,\n TOKEN_DEFAULTS,\n type ControlSize,\n type ControlWidth,\n} from '../../utils';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport { AnchoredOverlayInteractionController } from '../../utils/anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from '../../utils/anchored-overlay-boundary';\n\nexport type InputDateSize = ControlSize;\nexport type InputDateWidth = ControlWidth;\n\nlet idCounter = 0;\n\nconst INVALID_DATE_MESSAGE = 'Enter a valid date.';\nconst DATE_BEFORE_MIN_MESSAGE = 'Date is before the minimum allowed date.';\nconst DATE_AFTER_MAX_MESSAGE = 'Date is after the maximum allowed date.';\n\n@Component({\n tag: 'ds-input-date',\n styleUrl: 'InputDate.css',\n scoped: true,\n formAssociated: true,\n})\nexport class InputDate {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private generatedId = `ds-input-date-${++idCounter}`;\n private errorId = `${this.generatedId}-error`;\n private popupId = `${this.generatedId}-popup`;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop({ reflect: true }) required: boolean = false;\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n @Prop() size: InputDateSize = 'md';\n @Prop() width: InputDateWidth = 'fill';\n @Prop() hasBorder: boolean = true;\n @Prop() hasInteractionFill: boolean = true;\n @Prop() isInactive: boolean = false;\n @Prop() autoFocus: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string | undefined;\n @Prop() inputId: string | undefined;\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n @Event() dsChange!: EventEmitter<string>;\n\n private initialValue = '';\n private inputEl?: HTMLInputElement;\n private controlEl?: HTMLElement;\n private calendarButton?: HTMLDsButtonUnfilledElement;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n @State() private formDisabled = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private draftText = '';\n @State() private open = false;\n @State() private shouldRender = false;\n @State() private closing = false;\n @State() private positionReady = false;\n @State() private pos = { x: 0, y: 0 };\n\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-date-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, popup) => {\n if (!this.open) return null;\n const sectionInsetPx = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n return {\n anchorRect: anchor.getBoundingClientRect(),\n popupWidth: popup.offsetWidth || this.popupFallbackWidth,\n popupHeight: popup.offsetHeight || this.popupFallbackHeight,\n side: 'bottom',\n align: 'end',\n sideOffsetPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align: 'end',\n alignOffsetPx: 0,\n sectionInsetPx,\n anchorAlignment: 'popup-frame',\n }),\n viewportPadPx: resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050),\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor),\n };\n },\n apply: ({ x, y }) => {\n this.pos = { x, y };\n },\n onReady: () => {\n this.positionReady = true;\n },\n liveUpdate: 'double-frame',\n observeResize: true,\n topLayer: true,\n });\n private readonly interaction = new AnchoredOverlayInteractionController({\n getAnchor: () => this.controlEl ?? null,\n getPopup: () => this.el.querySelector<HTMLElement>('.input-date-popup'),\n getOwnerDocument: () => this.el.ownerDocument,\n onOutsideActivation: () => this.closePicker(false),\n });\n\n private get popupFallbackWidth(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);\n }\n\n private get popupFallbackHeight(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);\n }\n\n private get formInactive(): boolean {\n return this.isInactive || this.disabled || this.formDisabled;\n }\n\n private get pickerInactive(): boolean {\n return this.formInactive || this.readOnly;\n }\n\n private get hasConstraintError(): boolean {\n if (!this.value) return false;\n if (!isIsoCalendarDate(this.value)) return true;\n if (this.min && isIsoCalendarDate(this.min) && this.value < this.min) return true;\n if (this.max && isIsoCalendarDate(this.max) && this.value > this.max) return true;\n return false;\n }\n\n private get isInvalid(): boolean {\n return (\n this.error ||\n (!this.formInactive &&\n ((this.required && this.value.length === 0) || this.hasConstraintError))\n );\n }\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.syncFormValue();\n }\n\n disconnectedCallback() {\n this.teardownListeners();\n this.open = false;\n this.shouldRender = false;\n this.closing = false;\n this.positionReady = false;\n this.focused = false;\n }\n\n @Watch('value')\n @Watch('required')\n @Watch('requiredMessage')\n @Watch('min')\n @Watch('max')\n syncFormValue() {\n const inactive = this.formInactive;\n setFormControlValue(this.internals, this.value, { inactive });\n const flags: ValidityStateFlags = {};\n let message = '';\n if (!inactive) {\n if (this.required && this.value.length === 0) {\n flags.valueMissing = true;\n message = this.requiredMessage;\n } else if (this.value && !isIsoCalendarDate(this.value)) {\n flags.badInput = true;\n message = INVALID_DATE_MESSAGE;\n } else if (this.value && this.min && isIsoCalendarDate(this.min) && this.value < this.min) {\n flags.rangeUnderflow = true;\n message = DATE_BEFORE_MIN_MESSAGE;\n } else if (this.value && this.max && isIsoCalendarDate(this.max) && this.value > this.max) {\n flags.rangeOverflow = true;\n message = DATE_AFTER_MAX_MESSAGE;\n }\n }\n this.internals.setValidity(flags, message);\n }\n\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('readOnly')\n onInteractionStateChange() {\n this.syncFormValue();\n if (this.pickerInactive && this.shouldRender) this.closePicker(false);\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.onInteractionStateChange();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n this.draftText = this.displayValue;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this.value = restoreStringFormState(state);\n this.draftText = this.displayValue;\n }\n\n @Method()\n async setFocus() {\n this.inputEl?.focus();\n }\n\n @Listen('keydown')\n handleHostKeyDown(event: KeyboardEvent) {\n if (!this.shouldRender || this.closing) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closePicker('button');\n return;\n }\n if (event.key !== 'Tab') return;\n const popup = this.el.querySelector<HTMLElement>('.input-date-popup');\n if (!popup || !event.composedPath().includes(popup)) return;\n if (!this.interaction.tabLeavesPopup(event)) return;\n event.preventDefault();\n this.closePicker(false);\n this.interaction.moveFocusAfterTab(event.shiftKey);\n }\n\n private get displayValue(): string {\n return formatIsoCalendarDateLabel(this.value);\n }\n\n private parseDraft(text: string): string | null {\n const trimmed = text.trim();\n if (!trimmed) return '';\n const iso = parseLooseCalendarDate(trimmed);\n if (!iso) return null;\n if (this.min && isIsoCalendarDate(this.min) && iso < this.min) return null;\n if (this.max && isIsoCalendarDate(this.max) && iso > this.max) return null;\n return iso;\n }\n\n private commitIso(iso: string, emit = true) {\n if (this.value !== iso) {\n this.value = iso;\n if (emit) this.dsChange.emit(iso);\n }\n this.draftText = formatIsoCalendarDateLabel(iso);\n }\n\n private teardownListeners() {\n this.position.unobserve();\n this.interaction.disconnect();\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private openPicker() {\n const inactive = this.isInactive || this.disabled || this.formDisabled || this.readOnly;\n if (inactive || this.open || !this.el.isConnected) return;\n this.shouldRender = true;\n this.closing = false;\n this.positionReady = false;\n this.open = true;\n this.teardownListeners();\n this.interaction.connect();\n this.position.observe();\n this.position.schedule();\n }\n\n private closePicker(restore: 'input' | 'button' | false) {\n if (!this.shouldRender || this.closing) return;\n this.open = false;\n this.position.cancel();\n this.closing = true;\n this.interaction.disconnect();\n this.position.unobserve();\n if (restore === 'input') this.inputEl?.focus();\n if (restore === 'button') void this.calendarButton?.setFocus();\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (duration <= 0) {\n this.finishClose();\n return;\n }\n this.closeTimer = setTimeout(() => this.finishClose(), duration);\n }\n\n private finishClose() {\n const popup = this.el.querySelector<HTMLElement>('.input-date-popup');\n if (popup?.matches(':popover-open')) popup.hidePopover();\n this.shouldRender = false;\n this.closing = false;\n this.closeTimer = null;\n }\n\n private togglePicker = () => {\n if (this.isInactive || this.disabled || this.formDisabled || this.readOnly) return;\n if (this.open) this.closePicker('button');\n else this.openPicker();\n };\n\n private handleInput = (event: Event) => {\n if (this.pickerInactive) return;\n this.draftText = (event.target as HTMLInputElement).value;\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) return;\n this.commitIso(parsed);\n };\n\n private handleFocus = () => {\n this.draftText = this.displayValue || this.value;\n this.focused = true;\n };\n\n private handleBlur = () => {\n this.focused = false;\n this.touched = true;\n if (this.pickerInactive) {\n this.draftText = this.displayValue;\n return;\n }\n const parsed = this.parseDraft(this.draftText);\n if (parsed === null) {\n this.draftText = this.displayValue;\n return;\n }\n this.commitIso(parsed);\n };\n\n private handleCalendarChange = (event: CustomEvent<string>) => {\n event.stopPropagation();\n if (this.pickerInactive) return;\n const parsed = this.parseDraft(event.detail);\n if (parsed === null) return;\n this.commitIso(parsed);\n this.closePicker('input');\n };\n\n render() {\n const inputId = this.inputId ?? this.generatedId;\n const inactive = this.formInactive;\n const pickerInactive = this.pickerInactive;\n const filled = this.value.length > 0;\n const dirty = this.value !== this.initialValue;\n const showError = this.error && Boolean(this.errorMessage);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const textClass = `ds-text--${textVariant.replace('text-', '')}`;\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n\n return (\n <Host\n class={{\n 'input-host': true,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n ...controlWidthClass(this.width),\n }}\n data-disabled={inactive ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-required={this.required ? '' : undefined}\n data-invalid={this.isInvalid ? '' : undefined}\n data-filled={filled ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n >\n <div\n ref={element => {\n this.controlEl = element;\n }}\n class={{\n 'input-control': true,\n 'ds-control-frame': true,\n 'input-control--bordered': this.hasBorder,\n 'input-control--error': this.hasBorder && this.error,\n 'ds-interaction-fill': this.hasInteractionFill,\n [`ds-control--${this.size}`]: true,\n }}\n >\n <input\n ref={element => {\n this.inputEl = element;\n }}\n type=\"text\"\n id={inputId}\n value={this.focused ? this.draftText : this.displayValue}\n disabled={inactive}\n readOnly={this.readOnly}\n required={this.required}\n autoFocus={this.autoFocus}\n autoComplete=\"off\"\n spellcheck={false}\n class={{\n 'native-input': true,\n 'native-input--align-start': true,\n 'ds-control-label-box': true,\n [textClass]: true,\n 'ds-text--regular': true,\n }}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.isInvalid ? 'true' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n <ds-button-unfilled\n ref={element => {\n this.calendarButton = element as HTMLDsButtonUnfilledElement | undefined;\n }}\n class=\"input-control__datetime-action\"\n variant=\"icon\"\n size={this.size}\n icon=\"Calendar\"\n hasBorder={false}\n isInset\n isInactive={pickerInactive}\n ariaLabel=\"Choose date\"\n haspopup=\"dialog\"\n expanded={this.open}\n surfaceOpen={this.open || this.closing}\n controls={this.open ? this.popupId : undefined}\n onDsClick={this.togglePicker}\n />\n </div>\n {this.shouldRender ? (\n <div\n id={this.popupId}\n popover=\"manual\"\n class={{\n 'input-date-popup': true,\n 'ds-choice-popup': true,\n 'ds-choice-popup--closing': this.closing,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n }}\n style={popupStyle}\n role=\"dialog\"\n aria-label=\"Choose date\"\n >\n <ds-calendar\n selectionMode=\"single\"\n value={this.value}\n min={this.min}\n max={this.max}\n isInactive={pickerInactive}\n autoFocus\n onDsChange={this.handleCalendarChange}\n />\n </div>\n ) : null}\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as i,c as t,h as a,a as s,t as n}from"./index.js";import{o,d}from"./p-BLeHHoVb.js";import{d as r}from"./p-CwdRaJER.js";import{d as c}from"./p--pJyciTI.js";import{d as l}from"./p-DfMTDFcE.js";import{d as p}from"./p-D_iZPukF.js";import{d as g}from"./p-5-gQbIIz.js";import{d as f}from"./p-pPtjNRqC.js";import{d as h}from"./p-CNeDJTGX.js";import{d as b}from"./p-0XTyQNRG.js";import{d as u}from"./p-CzdE3M3g.js";import{d as m}from"./p-D8OWhnID.js";import{d as v}from"./p-DvGrsLgt.js";const z=[25,50,100,200];function y(e){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):0}function S(e,i){return Number.isFinite(e)&&e>0?Math.trunc(e):i}function _(e){const i=S(e.pageSize,z[0]);const t=e.pageSizeMode==="fit"?"fit":"fixed";const a=y(e.totalItems);const s=Math.max(1,Math.ceil(a/i));const n=Math.min(y(e.pageIndex),s-1);const o=(e.pageSizeOptions?.length?e.pageSizeOptions:z).map((e=>S(e,0))).filter((e=>e>0));const d=[...new Set(t==="fixed"?[...o,i]:o)].sort(((e,i)=>e-i));const r=a===0?0:n*i+1;const c=a===0?0:Math.min(a,r+i-1);return{pageIndex:n,pageSize:i,pageSizeMode:t,totalItems:a,totalPages:s,firstItem:r,lastItem:c,pageSizeOptions:d}}const x=()=>`.ds-visually-hidden.sc-ds-pagination-h,.ds-visually-hidden.sc-ds-pagination{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sc-ds-pagination-h{display:block;box-sizing:border-box;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}.sc-ds-pagination-h::-webkit-scrollbar{display:none}.pagination.sc-ds-pagination,.pagination__page-size.sc-ds-pagination,.pagination__navigation.sc-ds-pagination{display:flex;align-items:center;box-sizing:border-box}.pagination.sc-ds-pagination{width:max-content;min-width:100%;gap:var(--dimension-space-100)}.pagination__page-size.sc-ds-pagination,.pagination__navigation.sc-ds-pagination{flex:0 0 auto}.pagination__page-size.sc-ds-pagination{gap:0}.pagination__navigation.sc-ds-pagination{gap:var(--dimension-space-050)}.pagination__page.sc-ds-pagination,.pagination__label.sc-ds-pagination{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap}.pagination.sc-ds-pagination .pagination__page-size-select.sc-ds-pagination{--ds-select-fg-active:var(--color-foreground-secondary)}.pagination__page.sc-ds-pagination{justify-content:center;min-inline-size:0;padding-inline:var(--dimension-space-100)}.pagination--table-compact.sc-ds-pagination .pagination__boundary.sc-ds-pagination{display:none}`;let k=0;const L=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.pageIndex=0;this.pageSize=25;this.pageSizeMode="fixed";this.totalItems=0;this.pageSizeOptions=[25,50,100,200];this.fitToPage=false;this.fitToPageInactive=false;this.fitPageSizeLabel="Fit to page";this.fitPageSizeTriggerLabel="Fit";this.itemLabel="items";this.pageSizeLabel="Items";this.label="Pagination";this.showFirstLastButtons=false;this.loading=false;this.tableCompact=false;this.pageSizeControlId=`ds-pagination-${++k}-page-size`;this.hasLoaded=false}componentDidLoad(){this.hasLoaded=true;this.syncTableCompactObserver()}connectedCallback(){if(this.hasLoaded)this.syncTableCompactObserver()}disconnectedCallback(){this.tableCompactDisconnect?.();this.tableCompactDisconnect=undefined}syncTableCompactObserver(){this.tableCompactDisconnect?.();this.tableCompactDisconnect=o(this.el,(e=>{if(this.tableCompact!==e)this.tableCompact=e}))}requestPage(e){const i=this.resolvedState;if(this.loading||e===i.pageIndex||e<0||e>=i.totalPages){return}this.dsChange.emit({pageIndex:e,pageSize:i.pageSize,pageSizeMode:i.pageSizeMode,totalItems:i.totalItems,pageSizeOptions:i.pageSizeOptions,fitToPage:this.fitToPage,fitToPageInactive:this.fitToPageInactive,fitPageSize:this.resolvedFitPageSize,fitPageSizeLabel:this.fitPageSizeLabel,fitPageSizeTriggerLabel:this.fitPageSizeTriggerLabel,itemLabel:this.itemLabel,pageSizeLabel:this.pageSizeLabel,ariaLabel:this.label,showFirstLastButtons:this.showFirstLastButtons,previousPageIndex:i.pageIndex,previousPageSize:i.pageSize,previousPageSizeMode:i.pageSizeMode,reason:"page"})}requestPageSize(e){if(this.loading||typeof e!=="string"||e==="fit"&&this.fitToPageInactive)return;const i=this.resolvedState;const t=e==="fit"?"fit":"fixed";const a=t==="fit"?this.resolvedFitPageSize:Number(e);if(!a||a===i.pageSize&&t===i.pageSizeMode)return;this.dsChange.emit({pageIndex:0,pageSize:Math.trunc(a),pageSizeMode:t,totalItems:i.totalItems,pageSizeOptions:i.pageSizeOptions,fitToPage:this.fitToPage,fitToPageInactive:this.fitToPageInactive,fitPageSize:this.resolvedFitPageSize,fitPageSizeLabel:this.fitPageSizeLabel,fitPageSizeTriggerLabel:this.fitPageSizeTriggerLabel,itemLabel:this.itemLabel,pageSizeLabel:this.pageSizeLabel,ariaLabel:this.label,showFirstLastButtons:this.showFirstLastButtons,previousPageIndex:i.pageIndex,previousPageSize:i.pageSize,previousPageSizeMode:i.pageSizeMode,reason:"page-size"})}handleKeyDown(e){if(e.defaultPrevented||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey){return}const t=e.composedPath().some((e=>e instanceof i&&(e.tagName==="DS-SELECT"||["INPUT","SELECT","TEXTAREA"].includes(e.tagName))));if(t||e.key!=="ArrowLeft"&&e.key!=="ArrowRight")return;const a=this.resolvedState;const s=e.key==="ArrowLeft"?a.pageIndex-1:a.pageIndex+1;if(this.loading||s<0||s>=a.totalPages)return;e.preventDefault();this.requestPage(s)}get resolvedFitPageSize(){return Number.isFinite(this.fitPageSize)&&Number(this.fitPageSize)>0?Math.trunc(Number(this.fitPageSize)):undefined}get resolvedState(){return _({pageIndex:this.pageIndex,pageSize:this.pageSize,pageSizeMode:this.pageSizeMode,totalItems:this.totalItems,pageSizeOptions:this.pageSizeOptions})}render(){const e=this.resolvedState;const i=e.pageIndex===0;const t=e.pageIndex===e.totalPages-1;const n=`${e.pageIndex+1} of ${e.totalPages}`;const o=`${e.firstItem}–${e.lastItem} of ${e.totalItems}`;const d=`Page ${e.pageIndex+1} of ${e.totalPages}`;const r=this.pageSizeAriaLabel??`${this.pageSizeLabel} per page`;const c=e.pageSizeOptions.map((e=>({label:String(e),value:String(e)})));if(this.fitToPage){c.push({label:this.fitPageSizeLabel,value:"fit",isInactive:this.fitToPageInactive||this.resolvedFitPageSize===undefined})}return a(s,{key:"dab7688d572c5fbce07ee4ef23ac1dc163b4a9c3"},a("nav",{key:"b1205870bc76749d45a4f6c67cd76663ea019654",class:{pagination:true,"pagination--table-compact":this.tableCompact},"aria-label":this.label,"aria-busy":this.loading?"true":undefined,onKeyDown:e=>this.handleKeyDown(e)},a("div",{key:"b127a3f5ec449cec0406972c70a92177f593c325",class:"pagination__page-size"},a("ds-text",{key:"31cac6c4863160cf4bb0837177bdf570cb51ba12",class:"pagination__label",as:"span",variant:"text-body-medium",color:"secondary","aria-hidden":"true"},this.pageSizeLabel,":"),a("span",{key:"36eed422dcb522422c4e963d3c082d1d372d083e",id:`${this.pageSizeControlId}-label`,class:"ds-visually-hidden"},r),a("ds-select",{key:"733bac9cf7c2689a41ca12688e6edfe7daec58f1",class:"pagination__page-size-select",size:"md",inputId:this.pageSizeControlId,ariaLabelledby:`${this.pageSizeControlId}-label`,options:c,value:e.pageSizeMode==="fit"?"fit":String(e.pageSize),triggerLabel:e.pageSizeMode==="fit"?this.fitPageSizeTriggerLabel:undefined,indicator:"up-down",allowClear:false,activeFill:false,hasBorder:false,isInactive:this.loading,onDsChange:e=>{e.stopPropagation();this.requestPageSize(e.detail)}})),a("ds-divider",{key:"6746fca6e69ea262b0511dc0e86425d9414e967b",class:"pagination__divider",orientation:"vertical",length:"var(--dimension-size-250)"}),a("div",{key:"a8a7f94371425a6aa5e60d24ee44c53aaba03054",class:"pagination__navigation"},this.showFirstLastButtons?a("ds-button-unfilled",{class:"pagination__boundary",variant:"icon",size:"md",icon:"ChevronLeftDouble",ariaLabel:"First page",hasBorder:false,isInactive:this.loading||i,onDsClick:()=>this.requestPage(0)}):null,a("ds-button-unfilled",{key:"f7b9b5838fe5bf4e1a91f0c648f1fffa7ea01e98",variant:"icon",size:"md",icon:"ChevronLeft",ariaLabel:"Previous page",hasBorder:false,isInactive:this.loading||i,onDsClick:()=>this.requestPage(e.pageIndex-1)}),a("ds-text",{key:"420cd025b74ff511621f1d0b7e613be14a82d0bd",class:"pagination__page",as:"span",variant:"text-body-medium",color:"secondary",fontFeature:"tabular-nums"},n),a("ds-button-unfilled",{key:"d37bb0c06f96b50fc790f536f175862b6d262424",variant:"icon",size:"md",icon:"ChevronRight",ariaLabel:"Next page",hasBorder:false,isInactive:this.loading||t,onDsClick:()=>this.requestPage(e.pageIndex+1)}),this.showFirstLastButtons?a("ds-button-unfilled",{class:"pagination__boundary",variant:"icon",size:"md",icon:"ChevronRightDouble",ariaLabel:"Last page",hasBorder:false,isInactive:this.loading||t,onDsClick:()=>this.requestPage(e.totalPages-1)}):null),a("span",{key:"2f4b9e7bd9344e5165bcd2ee54bd3ddff5f1354d",class:"ds-visually-hidden",role:"status","aria-live":"polite","aria-atomic":"true"},o," ",this.itemLabel,". ",d,".")))}get el(){return this}static get style(){return x()}},[2,"ds-pagination",{pageIndex:[2,"page-index"],pageSize:[2,"page-size"],pageSizeMode:[1,"page-size-mode"],totalItems:[2,"total-items"],pageSizeOptions:[16],fitToPage:[4,"fit-to-page"],fitToPageInactive:[4,"fit-to-page-inactive"],fitPageSize:[2,"fit-page-size"],fitPageSizeLabel:[1,"fit-page-size-label"],fitPageSizeTriggerLabel:[1,"fit-page-size-trigger-label"],itemLabel:[1,"item-label"],pageSizeLabel:[1,"page-size-label"],pageSizeAriaLabel:[1,"page-size-aria-label"],label:[1],showFirstLastButtons:[4,"show-first-last-buttons"],loading:[4],tableCompact:[32]}]);function P(){if(typeof customElements==="undefined"){return}const e=["ds-pagination","ds-badge","ds-button-unfilled","ds-checkbox","ds-chip","ds-divider","ds-empty-state","ds-icon","ds-input","ds-loader","ds-select","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-pagination":if(!customElements.get(n(e))){customElements.define(n(e),L)}break;case"ds-badge":if(!customElements.get(n(e))){r()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){d()}break;case"ds-checkbox":if(!customElements.get(n(e))){c()}break;case"ds-chip":if(!customElements.get(n(e))){l()}break;case"ds-divider":if(!customElements.get(n(e))){p()}break;case"ds-empty-state":if(!customElements.get(n(e))){g()}break;case"ds-icon":if(!customElements.get(n(e))){f()}break;case"ds-input":if(!customElements.get(n(e))){h()}break;case"ds-loader":if(!customElements.get(n(e))){b()}break;case"ds-select":if(!customElements.get(n(e))){u()}break;case"ds-text":if(!customElements.get(n(e))){m()}break;case"ds-tooltip":if(!customElements.get(n(e))){v()}break}}))}P();export{L as P,P as d,_ as r};
2
- //# sourceMappingURL=p-DPwptvZl.js.map
1
+ import{p as e,H as i,c as t,h as a,a as s,t as n}from"./index.js";import{o,d}from"./p-BqipGGua.js";import{d as r}from"./p-CwdRaJER.js";import{d as c}from"./p--pJyciTI.js";import{d as l}from"./p-DfMTDFcE.js";import{d as p}from"./p-D_iZPukF.js";import{d as g}from"./p-5-gQbIIz.js";import{d as f}from"./p-pPtjNRqC.js";import{d as h}from"./p-DYGllrVT.js";import{d as b}from"./p-0XTyQNRG.js";import{d as u}from"./p-CElsKlxj.js";import{d as m}from"./p-D8OWhnID.js";import{d as v}from"./p-DbW8S5qe.js";const z=[25,50,100,200];function S(e){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):0}function y(e,i){return Number.isFinite(e)&&e>0?Math.trunc(e):i}function x(e){const i=y(e.pageSize,z[0]);const t=e.pageSizeMode==="fit"?"fit":"fixed";const a=S(e.totalItems);const s=Math.max(1,Math.ceil(a/i));const n=Math.min(S(e.pageIndex),s-1);const o=(e.pageSizeOptions?.length?e.pageSizeOptions:z).map((e=>y(e,0))).filter((e=>e>0));const d=[...new Set(t==="fixed"?[...o,i]:o)].sort(((e,i)=>e-i));const r=a===0?0:n*i+1;const c=a===0?0:Math.min(a,r+i-1);return{pageIndex:n,pageSize:i,pageSizeMode:t,totalItems:a,totalPages:s,firstItem:r,lastItem:c,pageSizeOptions:d}}const _=()=>`.ds-visually-hidden.sc-ds-pagination-h,.ds-visually-hidden.sc-ds-pagination{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sc-ds-pagination-h{display:block;box-sizing:border-box;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}.sc-ds-pagination-h::-webkit-scrollbar{display:none}.pagination.sc-ds-pagination,.pagination__page-size.sc-ds-pagination,.pagination__navigation.sc-ds-pagination{display:flex;align-items:center;box-sizing:border-box}.pagination.sc-ds-pagination{width:max-content;min-width:100%;gap:var(--dimension-space-100)}.pagination__page-size.sc-ds-pagination,.pagination__navigation.sc-ds-pagination{flex:0 0 auto}.pagination__page-size.sc-ds-pagination{gap:0}.pagination__navigation.sc-ds-pagination{gap:var(--dimension-space-050)}.pagination__page.sc-ds-pagination,.pagination__label.sc-ds-pagination{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap}.pagination.sc-ds-pagination .pagination__page-size-select.sc-ds-pagination{--ds-select-fg-active:var(--color-foreground-secondary)}.pagination__page.sc-ds-pagination{justify-content:center;min-inline-size:0;padding-inline:var(--dimension-space-100)}.pagination--table-compact.sc-ds-pagination .pagination__boundary.sc-ds-pagination{display:none}`;let k=0;const L=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.pageIndex=0;this.pageSize=25;this.pageSizeMode="fixed";this.totalItems=0;this.pageSizeOptions=[25,50,100,200];this.fitToPage=false;this.fitToPageInactive=false;this.fitPageSizeLabel="Fit to page";this.fitPageSizeTriggerLabel="Fit";this.itemLabel="items";this.pageSizeLabel="Items";this.label="Pagination";this.showFirstLastButtons=false;this.loading=false;this.tableCompact=false;this.pageSizeControlId=`ds-pagination-${++k}-page-size`;this.hasLoaded=false}componentDidLoad(){this.hasLoaded=true;this.syncTableCompactObserver()}connectedCallback(){if(this.hasLoaded)this.syncTableCompactObserver()}disconnectedCallback(){this.tableCompactDisconnect?.();this.tableCompactDisconnect=undefined}syncTableCompactObserver(){this.tableCompactDisconnect?.();this.tableCompactDisconnect=o(this.el,(e=>{if(this.tableCompact!==e)this.tableCompact=e}))}requestPage(e){const i=this.resolvedState;if(this.loading||e===i.pageIndex||e<0||e>=i.totalPages){return}this.dsChange.emit({pageIndex:e,pageSize:i.pageSize,pageSizeMode:i.pageSizeMode,totalItems:i.totalItems,pageSizeOptions:i.pageSizeOptions,fitToPage:this.fitToPage,fitToPageInactive:this.fitToPageInactive,fitPageSize:this.resolvedFitPageSize,fitPageSizeLabel:this.fitPageSizeLabel,fitPageSizeTriggerLabel:this.fitPageSizeTriggerLabel,itemLabel:this.itemLabel,pageSizeLabel:this.pageSizeLabel,ariaLabel:this.label,showFirstLastButtons:this.showFirstLastButtons,previousPageIndex:i.pageIndex,previousPageSize:i.pageSize,previousPageSizeMode:i.pageSizeMode,reason:"page"})}requestPageSize(e){if(this.loading||typeof e!=="string"||e==="fit"&&this.fitToPageInactive)return;const i=this.resolvedState;const t=e==="fit"?"fit":"fixed";const a=t==="fit"?this.resolvedFitPageSize:Number(e);if(!a||a===i.pageSize&&t===i.pageSizeMode)return;this.dsChange.emit({pageIndex:0,pageSize:Math.trunc(a),pageSizeMode:t,totalItems:i.totalItems,pageSizeOptions:i.pageSizeOptions,fitToPage:this.fitToPage,fitToPageInactive:this.fitToPageInactive,fitPageSize:this.resolvedFitPageSize,fitPageSizeLabel:this.fitPageSizeLabel,fitPageSizeTriggerLabel:this.fitPageSizeTriggerLabel,itemLabel:this.itemLabel,pageSizeLabel:this.pageSizeLabel,ariaLabel:this.label,showFirstLastButtons:this.showFirstLastButtons,previousPageIndex:i.pageIndex,previousPageSize:i.pageSize,previousPageSizeMode:i.pageSizeMode,reason:"page-size"})}handleKeyDown(e){if(e.defaultPrevented||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey){return}const t=e.composedPath().some((e=>e instanceof i&&(e.tagName==="DS-SELECT"||["INPUT","SELECT","TEXTAREA"].includes(e.tagName))));if(t||e.key!=="ArrowLeft"&&e.key!=="ArrowRight")return;const a=this.resolvedState;const s=e.key==="ArrowLeft"?a.pageIndex-1:a.pageIndex+1;if(this.loading||s<0||s>=a.totalPages)return;e.preventDefault();this.requestPage(s)}get resolvedFitPageSize(){return Number.isFinite(this.fitPageSize)&&Number(this.fitPageSize)>0?Math.trunc(Number(this.fitPageSize)):undefined}get resolvedState(){return x({pageIndex:this.pageIndex,pageSize:this.pageSize,pageSizeMode:this.pageSizeMode,totalItems:this.totalItems,pageSizeOptions:this.pageSizeOptions})}render(){const e=this.resolvedState;const i=e.pageIndex===0;const t=e.pageIndex===e.totalPages-1;const n=`${e.pageIndex+1} of ${e.totalPages}`;const o=`${e.firstItem}–${e.lastItem} of ${e.totalItems}`;const d=`Page ${e.pageIndex+1} of ${e.totalPages}`;const r=this.pageSizeAriaLabel??`${this.pageSizeLabel} per page`;const c=e.pageSizeOptions.map((e=>({label:String(e),value:String(e)})));if(this.fitToPage){c.push({label:this.fitPageSizeLabel,value:"fit",isInactive:this.fitToPageInactive||this.resolvedFitPageSize===undefined})}return a(s,{key:"dab7688d572c5fbce07ee4ef23ac1dc163b4a9c3"},a("nav",{key:"b1205870bc76749d45a4f6c67cd76663ea019654",class:{pagination:true,"pagination--table-compact":this.tableCompact},"aria-label":this.label,"aria-busy":this.loading?"true":undefined,onKeyDown:e=>this.handleKeyDown(e)},a("div",{key:"b127a3f5ec449cec0406972c70a92177f593c325",class:"pagination__page-size"},a("ds-text",{key:"31cac6c4863160cf4bb0837177bdf570cb51ba12",class:"pagination__label",as:"span",variant:"text-body-medium",color:"secondary","aria-hidden":"true"},this.pageSizeLabel,":"),a("span",{key:"36eed422dcb522422c4e963d3c082d1d372d083e",id:`${this.pageSizeControlId}-label`,class:"ds-visually-hidden"},r),a("ds-select",{key:"733bac9cf7c2689a41ca12688e6edfe7daec58f1",class:"pagination__page-size-select",size:"md",inputId:this.pageSizeControlId,ariaLabelledby:`${this.pageSizeControlId}-label`,options:c,value:e.pageSizeMode==="fit"?"fit":String(e.pageSize),triggerLabel:e.pageSizeMode==="fit"?this.fitPageSizeTriggerLabel:undefined,indicator:"up-down",allowClear:false,activeFill:false,hasBorder:false,isInactive:this.loading,onDsChange:e=>{e.stopPropagation();this.requestPageSize(e.detail)}})),a("ds-divider",{key:"6746fca6e69ea262b0511dc0e86425d9414e967b",class:"pagination__divider",orientation:"vertical",length:"var(--dimension-size-250)"}),a("div",{key:"a8a7f94371425a6aa5e60d24ee44c53aaba03054",class:"pagination__navigation"},this.showFirstLastButtons?a("ds-button-unfilled",{class:"pagination__boundary",variant:"icon",size:"md",icon:"ChevronLeftDouble",ariaLabel:"First page",hasBorder:false,isInactive:this.loading||i,onDsClick:()=>this.requestPage(0)}):null,a("ds-button-unfilled",{key:"f7b9b5838fe5bf4e1a91f0c648f1fffa7ea01e98",variant:"icon",size:"md",icon:"ChevronLeft",ariaLabel:"Previous page",hasBorder:false,isInactive:this.loading||i,onDsClick:()=>this.requestPage(e.pageIndex-1)}),a("ds-text",{key:"420cd025b74ff511621f1d0b7e613be14a82d0bd",class:"pagination__page",as:"span",variant:"text-body-medium",color:"secondary",fontFeature:"tabular-nums"},n),a("ds-button-unfilled",{key:"d37bb0c06f96b50fc790f536f175862b6d262424",variant:"icon",size:"md",icon:"ChevronRight",ariaLabel:"Next page",hasBorder:false,isInactive:this.loading||t,onDsClick:()=>this.requestPage(e.pageIndex+1)}),this.showFirstLastButtons?a("ds-button-unfilled",{class:"pagination__boundary",variant:"icon",size:"md",icon:"ChevronRightDouble",ariaLabel:"Last page",hasBorder:false,isInactive:this.loading||t,onDsClick:()=>this.requestPage(e.totalPages-1)}):null),a("span",{key:"2f4b9e7bd9344e5165bcd2ee54bd3ddff5f1354d",class:"ds-visually-hidden",role:"status","aria-live":"polite","aria-atomic":"true"},o," ",this.itemLabel,". ",d,".")))}get el(){return this}static get style(){return _()}},[2,"ds-pagination",{pageIndex:[2,"page-index"],pageSize:[2,"page-size"],pageSizeMode:[1,"page-size-mode"],totalItems:[2,"total-items"],pageSizeOptions:[16],fitToPage:[4,"fit-to-page"],fitToPageInactive:[4,"fit-to-page-inactive"],fitPageSize:[2,"fit-page-size"],fitPageSizeLabel:[1,"fit-page-size-label"],fitPageSizeTriggerLabel:[1,"fit-page-size-trigger-label"],itemLabel:[1,"item-label"],pageSizeLabel:[1,"page-size-label"],pageSizeAriaLabel:[1,"page-size-aria-label"],label:[1],showFirstLastButtons:[4,"show-first-last-buttons"],loading:[4],tableCompact:[32]}]);function P(){if(typeof customElements==="undefined"){return}const e=["ds-pagination","ds-badge","ds-button-unfilled","ds-checkbox","ds-chip","ds-divider","ds-empty-state","ds-icon","ds-input","ds-loader","ds-select","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-pagination":if(!customElements.get(n(e))){customElements.define(n(e),L)}break;case"ds-badge":if(!customElements.get(n(e))){r()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){d()}break;case"ds-checkbox":if(!customElements.get(n(e))){c()}break;case"ds-chip":if(!customElements.get(n(e))){l()}break;case"ds-divider":if(!customElements.get(n(e))){p()}break;case"ds-empty-state":if(!customElements.get(n(e))){g()}break;case"ds-icon":if(!customElements.get(n(e))){f()}break;case"ds-input":if(!customElements.get(n(e))){h()}break;case"ds-loader":if(!customElements.get(n(e))){b()}break;case"ds-select":if(!customElements.get(n(e))){u()}break;case"ds-text":if(!customElements.get(n(e))){m()}break;case"ds-tooltip":if(!customElements.get(n(e))){v()}break}}))}P();export{L as P,P as d,x as r};
2
+ //# sourceMappingURL=p-wXKIVUTn.js.map