@cloudscape-design/components-themeable 3.0.1137 → 3.0.1139

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 (827) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +127 -99
  3. package/lib/internal/scss/progress-bar/styles.scss +39 -25
  4. package/lib/internal/scss/prompt-input/styles.scss +75 -13
  5. package/lib/internal/scss/radio-group/analytics-metadata/styles.scss +8 -0
  6. package/lib/internal/template/alert/actions-wrapper/index.js +3 -3
  7. package/lib/internal/template/alert/actions-wrapper/index.js.map +1 -1
  8. package/lib/internal/template/alert/index.js +2 -4
  9. package/lib/internal/template/alert/index.js.map +1 -1
  10. package/lib/internal/template/alert/internal.js +8 -10
  11. package/lib/internal/template/alert/internal.js.map +1 -1
  12. package/lib/internal/template/alert/style.js +12 -5
  13. package/lib/internal/template/alert/style.js.map +1 -1
  14. package/lib/internal/template/alert/styles.css.js +27 -27
  15. package/lib/internal/template/alert/styles.scoped.css +50 -50
  16. package/lib/internal/template/alert/styles.selectors.js +27 -27
  17. package/lib/internal/template/anchor-navigation/anchor-item/index.js +1 -1
  18. package/lib/internal/template/anchor-navigation/anchor-item/index.js.map +1 -1
  19. package/lib/internal/template/anchor-navigation/index.js +2 -4
  20. package/lib/internal/template/anchor-navigation/index.js.map +1 -1
  21. package/lib/internal/template/anchor-navigation/internal.js +2 -4
  22. package/lib/internal/template/anchor-navigation/internal.js.map +1 -1
  23. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  24. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +32 -32
  25. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  26. package/lib/internal/template/annotation-context/index.js +3 -4
  27. package/lib/internal/template/annotation-context/index.js.map +1 -1
  28. package/lib/internal/template/app-layout/classic.js +20 -17
  29. package/lib/internal/template/app-layout/classic.js.map +1 -1
  30. package/lib/internal/template/app-layout/defaults.js +8 -3
  31. package/lib/internal/template/app-layout/defaults.js.map +1 -1
  32. package/lib/internal/template/app-layout/drawer/resizable-drawer.js +8 -10
  33. package/lib/internal/template/app-layout/drawer/resizable-drawer.js.map +1 -1
  34. package/lib/internal/template/app-layout/index.js +24 -21
  35. package/lib/internal/template/app-layout/index.js.map +1 -1
  36. package/lib/internal/template/app-layout/internal.js +3 -3
  37. package/lib/internal/template/app-layout/internal.js.map +1 -1
  38. package/lib/internal/template/app-layout/notifications/index.js +3 -5
  39. package/lib/internal/template/app-layout/notifications/index.js.map +1 -1
  40. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  41. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  42. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  43. package/lib/internal/template/app-layout/runtime-drawer/index.js +36 -18
  44. package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
  45. package/lib/internal/template/app-layout/split-panel/provider.js +2 -4
  46. package/lib/internal/template/app-layout/split-panel/provider.js.map +1 -1
  47. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js +1 -1
  48. package/lib/internal/template/app-layout/utils/use-app-layout-placement.js.map +1 -1
  49. package/lib/internal/template/app-layout/utils/use-drawers.js +9 -3
  50. package/lib/internal/template/app-layout/utils/use-drawers.js.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh/context.js +28 -11
  52. package/lib/internal/template/app-layout/visual-refresh/context.js.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh/drawers.js +3 -1
  54. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  55. package/lib/internal/template/app-layout/visual-refresh/index.js +1 -1
  56. package/lib/internal/template/app-layout/visual-refresh/index.js.map +1 -1
  57. package/lib/internal/template/app-layout/visual-refresh/layout.js +9 -1
  58. package/lib/internal/template/app-layout/visual-refresh/layout.js.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh/main.js +4 -1
  60. package/lib/internal/template/app-layout/visual-refresh/main.js.map +1 -1
  61. package/lib/internal/template/app-layout/visual-refresh/split-panel.js +1 -1
  62. package/lib/internal/template/app-layout/visual-refresh/split-panel.js.map +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  64. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  65. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  66. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +6 -3
  67. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +5 -2
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +8 -4
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js +9 -6
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js.map +1 -1
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +7 -3
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +8 -4
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +30 -30
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +87 -87
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +30 -30
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js +10 -10
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js.map +1 -1
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js +5 -2
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/slots.js.map +1 -1
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +27 -27
  89. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +54 -54
  90. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +27 -27
  91. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js +2 -2
  92. package/lib/internal/template/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  93. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +7 -2
  94. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  95. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js +1 -1
  96. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-ai-drawer.js.map +1 -1
  97. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +19 -12
  98. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  99. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js +5 -2
  100. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js.map +1 -1
  101. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +10 -6
  102. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  103. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +4 -1
  104. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  105. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +1 -1
  106. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  107. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +8 -8
  108. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  109. package/lib/internal/template/app-layout-toolbar/index.js +24 -21
  110. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  111. package/lib/internal/template/area-chart/chart-container.js +1 -1
  112. package/lib/internal/template/area-chart/chart-container.js.map +1 -1
  113. package/lib/internal/template/area-chart/elements/chart-popover.js +1 -1
  114. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  115. package/lib/internal/template/area-chart/elements/threshold-series.js +1 -1
  116. package/lib/internal/template/area-chart/elements/threshold-series.js.map +1 -1
  117. package/lib/internal/template/area-chart/index.js +2 -4
  118. package/lib/internal/template/area-chart/index.js.map +1 -1
  119. package/lib/internal/template/area-chart/internal.js +2 -4
  120. package/lib/internal/template/area-chart/internal.js.map +1 -1
  121. package/lib/internal/template/area-chart/model/interactions-store.js +39 -9
  122. package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
  123. package/lib/internal/template/attribute-editor/index.d.ts.map +1 -1
  124. package/lib/internal/template/attribute-editor/index.js +4 -6
  125. package/lib/internal/template/attribute-editor/index.js.map +1 -1
  126. package/lib/internal/template/attribute-editor/interfaces.d.ts +8 -0
  127. package/lib/internal/template/attribute-editor/interfaces.d.ts.map +1 -1
  128. package/lib/internal/template/attribute-editor/interfaces.js.map +1 -1
  129. package/lib/internal/template/attribute-editor/internal.d.ts.map +1 -1
  130. package/lib/internal/template/attribute-editor/internal.js +14 -10
  131. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  132. package/lib/internal/template/attribute-editor/row.js +1 -1
  133. package/lib/internal/template/attribute-editor/row.js.map +1 -1
  134. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  135. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  136. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  137. package/lib/internal/template/autosuggest/autosuggest-option.js +3 -5
  138. package/lib/internal/template/autosuggest/autosuggest-option.js.map +1 -1
  139. package/lib/internal/template/autosuggest/index.js +2 -4
  140. package/lib/internal/template/autosuggest/index.js.map +1 -1
  141. package/lib/internal/template/autosuggest/internal.js +10 -5
  142. package/lib/internal/template/autosuggest/internal.js.map +1 -1
  143. package/lib/internal/template/autosuggest/options-controller.js +15 -8
  144. package/lib/internal/template/autosuggest/options-controller.js.map +1 -1
  145. package/lib/internal/template/autosuggest/plain-list.js +3 -3
  146. package/lib/internal/template/autosuggest/plain-list.js.map +1 -1
  147. package/lib/internal/template/autosuggest/virtual-list.js +2 -2
  148. package/lib/internal/template/autosuggest/virtual-list.js.map +1 -1
  149. package/lib/internal/template/badge/index.js +2 -4
  150. package/lib/internal/template/badge/index.js.map +1 -1
  151. package/lib/internal/template/bar-chart/index.js +2 -4
  152. package/lib/internal/template/bar-chart/index.js.map +1 -1
  153. package/lib/internal/template/box/index.js +2 -4
  154. package/lib/internal/template/box/index.js.map +1 -1
  155. package/lib/internal/template/box/internal.js +2 -4
  156. package/lib/internal/template/box/internal.js.map +1 -1
  157. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +3 -3
  158. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -1
  159. package/lib/internal/template/breadcrumb-group/implementation.js +9 -8
  160. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  161. package/lib/internal/template/breadcrumb-group/index.js +3 -5
  162. package/lib/internal/template/breadcrumb-group/index.js.map +1 -1
  163. package/lib/internal/template/breadcrumb-group/item/funnel.js +1 -1
  164. package/lib/internal/template/breadcrumb-group/item/funnel.js.map +1 -1
  165. package/lib/internal/template/breadcrumb-group/item/item.js +5 -7
  166. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  167. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  168. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  169. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  170. package/lib/internal/template/button/icon-helper.js +3 -5
  171. package/lib/internal/template/button/icon-helper.js.map +1 -1
  172. package/lib/internal/template/button/index.js +2 -4
  173. package/lib/internal/template/button/index.js.map +1 -1
  174. package/lib/internal/template/button/internal.js +31 -14
  175. package/lib/internal/template/button/internal.js.map +1 -1
  176. package/lib/internal/template/button/style.js +38 -27
  177. package/lib/internal/template/button/style.js.map +1 -1
  178. package/lib/internal/template/button/styles.css.js +22 -22
  179. package/lib/internal/template/button/styles.scoped.css +256 -256
  180. package/lib/internal/template/button/styles.selectors.js +22 -22
  181. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +11 -11
  182. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  183. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js +12 -12
  184. package/lib/internal/template/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  185. package/lib/internal/template/button-dropdown/index.js +4 -6
  186. package/lib/internal/template/button-dropdown/index.js.map +1 -1
  187. package/lib/internal/template/button-dropdown/internal.js +36 -25
  188. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  189. package/lib/internal/template/button-dropdown/item-element/index.js +25 -17
  190. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  191. package/lib/internal/template/button-dropdown/item-element/styles.css.js +16 -16
  192. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +27 -27
  193. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +16 -16
  194. package/lib/internal/template/button-dropdown/tooltip.js +1 -1
  195. package/lib/internal/template/button-dropdown/tooltip.js.map +1 -1
  196. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +1 -2
  197. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  198. package/lib/internal/template/button-group/index.js +2 -4
  199. package/lib/internal/template/button-group/index.js.map +1 -1
  200. package/lib/internal/template/button-group/internal.js +2 -4
  201. package/lib/internal/template/button-group/internal.js.map +1 -1
  202. package/lib/internal/template/button-group/item-element.js +4 -4
  203. package/lib/internal/template/button-group/item-element.js.map +1 -1
  204. package/lib/internal/template/button-group/menu-dropdown-item.js +1 -1
  205. package/lib/internal/template/button-group/menu-dropdown-item.js.map +1 -1
  206. package/lib/internal/template/button-group/style.js +34 -20
  207. package/lib/internal/template/button-group/style.js.map +1 -1
  208. package/lib/internal/template/calendar/grid/index.js +2 -3
  209. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  210. package/lib/internal/template/calendar/index.js +2 -4
  211. package/lib/internal/template/calendar/index.js.map +1 -1
  212. package/lib/internal/template/calendar/internal.js +2 -4
  213. package/lib/internal/template/calendar/internal.js.map +1 -1
  214. package/lib/internal/template/cards/index.js +17 -19
  215. package/lib/internal/template/cards/index.js.map +1 -1
  216. package/lib/internal/template/checkbox/index.js +2 -4
  217. package/lib/internal/template/checkbox/index.js.map +1 -1
  218. package/lib/internal/template/checkbox/internal.js +4 -6
  219. package/lib/internal/template/checkbox/internal.js.map +1 -1
  220. package/lib/internal/template/checkbox/styles.css.js +3 -3
  221. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  222. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  223. package/lib/internal/template/code-editor/index.js +2 -3
  224. package/lib/internal/template/code-editor/index.js.map +1 -1
  225. package/lib/internal/template/code-editor/use-editor.js +4 -1
  226. package/lib/internal/template/code-editor/use-editor.js.map +1 -1
  227. package/lib/internal/template/code-editor/util.js +4 -1
  228. package/lib/internal/template/code-editor/util.js.map +1 -1
  229. package/lib/internal/template/collection-preferences/content-display/index.js +1 -1
  230. package/lib/internal/template/collection-preferences/content-display/index.js.map +1 -1
  231. package/lib/internal/template/collection-preferences/content-display/utils.js +1 -1
  232. package/lib/internal/template/collection-preferences/content-display/utils.js.map +1 -1
  233. package/lib/internal/template/collection-preferences/index.js +20 -13
  234. package/lib/internal/template/collection-preferences/index.js.map +1 -1
  235. package/lib/internal/template/collection-preferences/utils.js +9 -9
  236. package/lib/internal/template/collection-preferences/utils.js.map +1 -1
  237. package/lib/internal/template/collection-preferences/visible-content.js +8 -8
  238. package/lib/internal/template/collection-preferences/visible-content.js.map +1 -1
  239. package/lib/internal/template/column-layout/index.js +2 -4
  240. package/lib/internal/template/column-layout/index.js.map +1 -1
  241. package/lib/internal/template/column-layout/internal.js +2 -4
  242. package/lib/internal/template/column-layout/internal.js.map +1 -1
  243. package/lib/internal/template/container/index.js +2 -4
  244. package/lib/internal/template/container/index.js.map +1 -1
  245. package/lib/internal/template/container/internal.js +11 -9
  246. package/lib/internal/template/container/internal.js.map +1 -1
  247. package/lib/internal/template/container/style.js +11 -2
  248. package/lib/internal/template/container/style.js.map +1 -1
  249. package/lib/internal/template/content-layout/index.js +1 -1
  250. package/lib/internal/template/content-layout/index.js.map +1 -1
  251. package/lib/internal/template/content-layout/internal.js +3 -5
  252. package/lib/internal/template/content-layout/internal.js.map +1 -1
  253. package/lib/internal/template/content-layout/styles.css.js +14 -14
  254. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  255. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  256. package/lib/internal/template/copy-to-clipboard/index.js +2 -4
  257. package/lib/internal/template/copy-to-clipboard/index.js.map +1 -1
  258. package/lib/internal/template/copy-to-clipboard/internal.js +2 -4
  259. package/lib/internal/template/copy-to-clipboard/internal.js.map +1 -1
  260. package/lib/internal/template/date-input/index.js +1 -1
  261. package/lib/internal/template/date-input/index.js.map +1 -1
  262. package/lib/internal/template/date-input/internal.js +6 -8
  263. package/lib/internal/template/date-input/internal.js.map +1 -1
  264. package/lib/internal/template/date-picker/index.js +9 -6
  265. package/lib/internal/template/date-picker/index.js.map +1 -1
  266. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js +3 -4
  267. package/lib/internal/template/date-range-picker/calendar/grids/grid-cell.js.map +1 -1
  268. package/lib/internal/template/date-range-picker/calendar/grids/grid.js +8 -8
  269. package/lib/internal/template/date-range-picker/calendar/grids/grid.js.map +1 -1
  270. package/lib/internal/template/date-range-picker/calendar/grids/index.js +2 -2
  271. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  272. package/lib/internal/template/date-range-picker/calendar/index.js +5 -2
  273. package/lib/internal/template/date-range-picker/calendar/index.js.map +1 -1
  274. package/lib/internal/template/date-range-picker/index.js +8 -6
  275. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  276. package/lib/internal/template/date-range-picker/utils.js +8 -2
  277. package/lib/internal/template/date-range-picker/utils.js.map +1 -1
  278. package/lib/internal/template/drawer/implementation.js +7 -6
  279. package/lib/internal/template/drawer/implementation.js.map +1 -1
  280. package/lib/internal/template/drawer/index.js +1 -1
  281. package/lib/internal/template/drawer/index.js.map +1 -1
  282. package/lib/internal/template/expandable-section/expandable-section-container.js +3 -5
  283. package/lib/internal/template/expandable-section/expandable-section-container.js.map +1 -1
  284. package/lib/internal/template/expandable-section/expandable-section-header.js +8 -8
  285. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  286. package/lib/internal/template/expandable-section/index.js +2 -4
  287. package/lib/internal/template/expandable-section/index.js.map +1 -1
  288. package/lib/internal/template/expandable-section/internal.js +2 -4
  289. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  290. package/lib/internal/template/file-dropzone/index.js +1 -1
  291. package/lib/internal/template/file-dropzone/index.js.map +1 -1
  292. package/lib/internal/template/file-dropzone/internal.js +3 -5
  293. package/lib/internal/template/file-dropzone/internal.js.map +1 -1
  294. package/lib/internal/template/file-input/index.js +2 -4
  295. package/lib/internal/template/file-input/index.js.map +1 -1
  296. package/lib/internal/template/file-input/internal.js +11 -8
  297. package/lib/internal/template/file-input/internal.js.map +1 -1
  298. package/lib/internal/template/file-token-group/default-formatters.js +3 -3
  299. package/lib/internal/template/file-token-group/default-formatters.js.map +1 -1
  300. package/lib/internal/template/file-token-group/index.js +2 -4
  301. package/lib/internal/template/file-token-group/index.js.map +1 -1
  302. package/lib/internal/template/file-token-group/internal.js +2 -4
  303. package/lib/internal/template/file-token-group/internal.js.map +1 -1
  304. package/lib/internal/template/file-upload/index.js +2 -4
  305. package/lib/internal/template/file-upload/index.js.map +1 -1
  306. package/lib/internal/template/file-upload/internal.js +5 -7
  307. package/lib/internal/template/file-upload/internal.js.map +1 -1
  308. package/lib/internal/template/flashbar/collapsible-flashbar.js +33 -23
  309. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  310. package/lib/internal/template/flashbar/common.js +1 -3
  311. package/lib/internal/template/flashbar/common.js.map +1 -1
  312. package/lib/internal/template/flashbar/flash.js +4 -6
  313. package/lib/internal/template/flashbar/flash.js.map +1 -1
  314. package/lib/internal/template/flashbar/implementation.js +2 -2
  315. package/lib/internal/template/flashbar/implementation.js.map +1 -1
  316. package/lib/internal/template/flashbar/index.js +1 -1
  317. package/lib/internal/template/flashbar/index.js.map +1 -1
  318. package/lib/internal/template/flashbar/non-collapsible-flashbar.js +10 -9
  319. package/lib/internal/template/flashbar/non-collapsible-flashbar.js.map +1 -1
  320. package/lib/internal/template/flashbar/style.js +50 -32
  321. package/lib/internal/template/flashbar/style.js.map +1 -1
  322. package/lib/internal/template/flashbar/styles.css.js +50 -50
  323. package/lib/internal/template/flashbar/styles.scoped.css +187 -187
  324. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  325. package/lib/internal/template/flashbar/utils.js +2 -2
  326. package/lib/internal/template/flashbar/utils.js.map +1 -1
  327. package/lib/internal/template/form/index.js +4 -7
  328. package/lib/internal/template/form/index.js.map +1 -1
  329. package/lib/internal/template/form/internal.js +2 -4
  330. package/lib/internal/template/form/internal.js.map +1 -1
  331. package/lib/internal/template/form-field/index.js +7 -9
  332. package/lib/internal/template/form-field/index.js.map +1 -1
  333. package/lib/internal/template/form-field/internal.js +6 -5
  334. package/lib/internal/template/form-field/internal.js.map +1 -1
  335. package/lib/internal/template/grid/index.js +2 -4
  336. package/lib/internal/template/grid/index.js.map +1 -1
  337. package/lib/internal/template/grid/internal.js +2 -4
  338. package/lib/internal/template/grid/internal.js.map +1 -1
  339. package/lib/internal/template/header/analytics/use-table-integration.d.ts +2 -1
  340. package/lib/internal/template/header/analytics/use-table-integration.d.ts.map +1 -1
  341. package/lib/internal/template/header/analytics/use-table-integration.js +8 -1
  342. package/lib/internal/template/header/analytics/use-table-integration.js.map +1 -1
  343. package/lib/internal/template/header/index.js +2 -4
  344. package/lib/internal/template/header/index.js.map +1 -1
  345. package/lib/internal/template/header/interfaces.d.ts +2 -2
  346. package/lib/internal/template/header/interfaces.d.ts.map +1 -1
  347. package/lib/internal/template/header/interfaces.js.map +1 -1
  348. package/lib/internal/template/header/internal.js +4 -6
  349. package/lib/internal/template/header/internal.js.map +1 -1
  350. package/lib/internal/template/help-panel/implementation.js +7 -6
  351. package/lib/internal/template/help-panel/implementation.js.map +1 -1
  352. package/lib/internal/template/help-panel/index.js +1 -1
  353. package/lib/internal/template/help-panel/index.js.map +1 -1
  354. package/lib/internal/template/help-panel/styles.css.js +6 -6
  355. package/lib/internal/template/help-panel/styles.scoped.css +73 -73
  356. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  357. package/lib/internal/template/hotspot/index.js +3 -5
  358. package/lib/internal/template/hotspot/index.js.map +1 -1
  359. package/lib/internal/template/icon/index.js +2 -4
  360. package/lib/internal/template/icon/index.js.map +1 -1
  361. package/lib/internal/template/icon/internal.js +4 -6
  362. package/lib/internal/template/icon/internal.js.map +1 -1
  363. package/lib/internal/template/icon-provider/index.js +1 -1
  364. package/lib/internal/template/icon-provider/index.js.map +1 -1
  365. package/lib/internal/template/icon-provider/internal.js +2 -2
  366. package/lib/internal/template/icon-provider/internal.js.map +1 -1
  367. package/lib/internal/template/input/index.js +5 -5
  368. package/lib/internal/template/input/index.js.map +1 -1
  369. package/lib/internal/template/input/internal.js +10 -12
  370. package/lib/internal/template/input/internal.js.map +1 -1
  371. package/lib/internal/template/input/styles.css.js +13 -13
  372. package/lib/internal/template/input/styles.js +42 -30
  373. package/lib/internal/template/input/styles.js.map +1 -1
  374. package/lib/internal/template/input/styles.scoped.css +65 -65
  375. package/lib/internal/template/input/styles.selectors.js +13 -13
  376. package/lib/internal/template/internal/analytics/components/analytics-funnel.js +9 -12
  377. package/lib/internal/template/internal/analytics/components/analytics-funnel.js.map +1 -1
  378. package/lib/internal/template/internal/analytics/hooks/use-funnel.js +5 -6
  379. package/lib/internal/template/internal/analytics/hooks/use-funnel.js.map +1 -1
  380. package/lib/internal/template/internal/animate.js +1 -1
  381. package/lib/internal/template/internal/animate.js.map +1 -1
  382. package/lib/internal/template/internal/base-component/index.js +1 -1
  383. package/lib/internal/template/internal/base-component/index.js.map +1 -1
  384. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  385. package/lib/internal/template/internal/components/abstract-switch/index.js +21 -20
  386. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  387. package/lib/internal/template/internal/components/autosuggest-input/index.js +3 -5
  388. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  389. package/lib/internal/template/internal/components/button-trigger/index.js +25 -6
  390. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  391. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js +1 -1
  392. package/lib/internal/template/internal/components/cartesian-chart/inline-start-labels.js.map +1 -1
  393. package/lib/internal/template/internal/components/chart-filter/index.js +2 -4
  394. package/lib/internal/template/internal/components/chart-filter/index.js.map +1 -1
  395. package/lib/internal/template/internal/components/chart-plot/index.js +2 -2
  396. package/lib/internal/template/internal/components/chart-plot/index.js.map +1 -1
  397. package/lib/internal/template/internal/components/chart-popover/index.js +3 -5
  398. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  399. package/lib/internal/template/internal/components/chart-series-details/index.js +2 -4
  400. package/lib/internal/template/internal/components/chart-series-details/index.js.map +1 -1
  401. package/lib/internal/template/internal/components/chart-wrapper/index.js +3 -5
  402. package/lib/internal/template/internal/components/chart-wrapper/index.js.map +1 -1
  403. package/lib/internal/template/internal/components/checkbox-icon/index.js +5 -7
  404. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  405. package/lib/internal/template/internal/components/drag-handle/button.js +5 -5
  406. package/lib/internal/template/internal/components/drag-handle/button.js.map +1 -1
  407. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js +17 -4
  408. package/lib/internal/template/internal/components/drag-handle/hooks/use-drag-handle-interaction-state.js.map +1 -1
  409. package/lib/internal/template/internal/components/drag-handle/index.js +1 -3
  410. package/lib/internal/template/internal/components/drag-handle/index.js.map +1 -1
  411. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +20 -20
  412. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +48 -48
  413. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +20 -20
  414. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  415. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +38 -38
  416. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  417. package/lib/internal/template/internal/components/masked-input/index.js +12 -8
  418. package/lib/internal/template/internal/components/masked-input/index.js.map +1 -1
  419. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js +6 -1
  420. package/lib/internal/template/internal/components/masked-input/utils/mask-format.js.map +1 -1
  421. package/lib/internal/template/internal/components/menu-dropdown/index.js +2 -4
  422. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  423. package/lib/internal/template/internal/components/option/index.js +6 -8
  424. package/lib/internal/template/internal/components/option/index.js.map +1 -1
  425. package/lib/internal/template/internal/components/option/option-parts.js +1 -1
  426. package/lib/internal/template/internal/components/option/option-parts.js.map +1 -1
  427. package/lib/internal/template/internal/components/option/utils/flatten-options.js +1 -2
  428. package/lib/internal/template/internal/components/option/utils/flatten-options.js.map +1 -1
  429. package/lib/internal/template/internal/components/options-list/index.js +2 -4
  430. package/lib/internal/template/internal/components/options-list/index.js.map +1 -1
  431. package/lib/internal/template/internal/components/screenreader-only/index.js +1 -1
  432. package/lib/internal/template/internal/components/screenreader-only/index.js.map +1 -1
  433. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js +1 -3
  434. package/lib/internal/template/internal/components/selectable-item/analytics-metadata/utils.js.map +1 -1
  435. package/lib/internal/template/internal/components/selectable-item/index.js +5 -7
  436. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  437. package/lib/internal/template/internal/components/sortable-area/index.js +19 -6
  438. package/lib/internal/template/internal/components/sortable-area/index.js.map +1 -1
  439. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  440. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  441. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  442. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +1 -1
  443. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
  444. package/lib/internal/template/internal/components/tooltip/index.js +1 -1
  445. package/lib/internal/template/internal/components/tooltip/index.js.map +1 -1
  446. package/lib/internal/template/internal/components/transition/index.js +3 -5
  447. package/lib/internal/template/internal/components/transition/index.js.map +1 -1
  448. package/lib/internal/template/internal/environment.js +2 -2
  449. package/lib/internal/template/internal/environment.json +2 -2
  450. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +28 -0
  451. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  452. package/lib/internal/template/internal/generated/custom-css-properties/index.js +126 -98
  453. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  454. package/lib/internal/template/internal/generated/styles/tokens.d.ts +50 -75
  455. package/lib/internal/template/internal/generated/styles/tokens.js +50 -75
  456. package/lib/internal/template/internal/generated/theming/index.cjs +305 -461
  457. package/lib/internal/template/internal/generated/theming/index.js +305 -461
  458. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js +1 -1
  459. package/lib/internal/template/internal/hooks/use-intersection-observer/index.js.map +1 -1
  460. package/lib/internal/template/internal/hooks/use-performance-marks/index.js +12 -2
  461. package/lib/internal/template/internal/hooks/use-performance-marks/index.js.map +1 -1
  462. package/lib/internal/template/internal/hooks/use-virtual/index.js +5 -2
  463. package/lib/internal/template/internal/hooks/use-virtual/index.js.map +1 -1
  464. package/lib/internal/template/internal/plugins/controllers/drawers.js +4 -6
  465. package/lib/internal/template/internal/plugins/controllers/drawers.js.map +1 -1
  466. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js +4 -6
  467. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
  468. package/lib/internal/template/internal/plugins/widget/index.js +1 -1
  469. package/lib/internal/template/internal/plugins/widget/index.js.map +1 -1
  470. package/lib/internal/template/internal/utils/with-native-attributes.js +4 -6
  471. package/lib/internal/template/internal/utils/with-native-attributes.js.map +1 -1
  472. package/lib/internal/template/internal/widgets/index.js +2 -2
  473. package/lib/internal/template/internal/widgets/index.js.map +1 -1
  474. package/lib/internal/template/internal/widgets/loader-mock.js +2 -2
  475. package/lib/internal/template/internal/widgets/loader-mock.js.map +1 -1
  476. package/lib/internal/template/key-value-pairs/index.js +2 -4
  477. package/lib/internal/template/key-value-pairs/index.js.map +1 -1
  478. package/lib/internal/template/key-value-pairs/internal.js +4 -6
  479. package/lib/internal/template/key-value-pairs/internal.js.map +1 -1
  480. package/lib/internal/template/line-chart/index.js +2 -4
  481. package/lib/internal/template/line-chart/index.js.map +1 -1
  482. package/lib/internal/template/link/index.js +2 -4
  483. package/lib/internal/template/link/index.js.map +1 -1
  484. package/lib/internal/template/link/internal.js +13 -6
  485. package/lib/internal/template/link/internal.js.map +1 -1
  486. package/lib/internal/template/link/style.js +12 -9
  487. package/lib/internal/template/link/style.js.map +1 -1
  488. package/lib/internal/template/link/styles.css.js +20 -20
  489. package/lib/internal/template/link/styles.scoped.css +103 -103
  490. package/lib/internal/template/link/styles.selectors.js +20 -20
  491. package/lib/internal/template/list/index.js +1 -1
  492. package/lib/internal/template/list/index.js.map +1 -1
  493. package/lib/internal/template/list/internal.js +6 -8
  494. package/lib/internal/template/list/internal.js.map +1 -1
  495. package/lib/internal/template/live-region/index.js +2 -4
  496. package/lib/internal/template/live-region/index.js.map +1 -1
  497. package/lib/internal/template/live-region/internal.js +2 -4
  498. package/lib/internal/template/live-region/internal.js.map +1 -1
  499. package/lib/internal/template/mixed-line-bar-chart/bar-series.js +3 -3
  500. package/lib/internal/template/mixed-line-bar-chart/bar-series.js.map +1 -1
  501. package/lib/internal/template/mixed-line-bar-chart/chart-container.js +7 -9
  502. package/lib/internal/template/mixed-line-bar-chart/chart-container.js.map +1 -1
  503. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +4 -1
  504. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  505. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js +1 -1
  506. package/lib/internal/template/mixed-line-bar-chart/hooks/use-navigation.js.map +1 -1
  507. package/lib/internal/template/mixed-line-bar-chart/index.js +2 -4
  508. package/lib/internal/template/mixed-line-bar-chart/index.js.map +1 -1
  509. package/lib/internal/template/mixed-line-bar-chart/internal.js +2 -4
  510. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  511. package/lib/internal/template/mixed-line-bar-chart/line-series.js +3 -3
  512. package/lib/internal/template/mixed-line-bar-chart/line-series.js.map +1 -1
  513. package/lib/internal/template/modal/index.js +5 -8
  514. package/lib/internal/template/modal/index.js.map +1 -1
  515. package/lib/internal/template/modal/internal.js +11 -14
  516. package/lib/internal/template/modal/internal.js.map +1 -1
  517. package/lib/internal/template/multiselect/embedded.js +15 -6
  518. package/lib/internal/template/multiselect/embedded.js.map +1 -1
  519. package/lib/internal/template/multiselect/index.js +2 -4
  520. package/lib/internal/template/multiselect/index.js.map +1 -1
  521. package/lib/internal/template/multiselect/internal.js +13 -12
  522. package/lib/internal/template/multiselect/internal.js.map +1 -1
  523. package/lib/internal/template/multiselect/use-multiselect.js +9 -5
  524. package/lib/internal/template/multiselect/use-multiselect.js.map +1 -1
  525. package/lib/internal/template/navigable-group/index.js +2 -4
  526. package/lib/internal/template/navigable-group/index.js.map +1 -1
  527. package/lib/internal/template/navigable-group/internal.js +2 -4
  528. package/lib/internal/template/navigable-group/internal.js.map +1 -1
  529. package/lib/internal/template/pagination/index.js +10 -10
  530. package/lib/internal/template/pagination/index.js.map +1 -1
  531. package/lib/internal/template/pagination/internal.js +36 -40
  532. package/lib/internal/template/pagination/internal.js.map +1 -1
  533. package/lib/internal/template/pie-chart/index.js +4 -6
  534. package/lib/internal/template/pie-chart/index.js.map +1 -1
  535. package/lib/internal/template/pie-chart/labels.js +2 -2
  536. package/lib/internal/template/pie-chart/labels.js.map +1 -1
  537. package/lib/internal/template/pie-chart/segments.js +1 -1
  538. package/lib/internal/template/pie-chart/segments.js.map +1 -1
  539. package/lib/internal/template/pie-chart/utils.js +17 -5
  540. package/lib/internal/template/pie-chart/utils.js.map +1 -1
  541. package/lib/internal/template/popover/body.js +3 -3
  542. package/lib/internal/template/popover/body.js.map +1 -1
  543. package/lib/internal/template/popover/container.js +1 -1
  544. package/lib/internal/template/popover/container.js.map +1 -1
  545. package/lib/internal/template/popover/index.js +2 -4
  546. package/lib/internal/template/popover/index.js.map +1 -1
  547. package/lib/internal/template/popover/internal.js +4 -6
  548. package/lib/internal/template/popover/internal.js.map +1 -1
  549. package/lib/internal/template/progress-bar/index.d.ts +1 -1
  550. package/lib/internal/template/progress-bar/index.d.ts.map +1 -1
  551. package/lib/internal/template/progress-bar/index.js +3 -5
  552. package/lib/internal/template/progress-bar/index.js.map +1 -1
  553. package/lib/internal/template/progress-bar/interfaces.d.ts +19 -0
  554. package/lib/internal/template/progress-bar/interfaces.d.ts.map +1 -1
  555. package/lib/internal/template/progress-bar/interfaces.js.map +1 -1
  556. package/lib/internal/template/progress-bar/internal.d.ts +2 -1
  557. package/lib/internal/template/progress-bar/internal.d.ts.map +1 -1
  558. package/lib/internal/template/progress-bar/internal.js +10 -3
  559. package/lib/internal/template/progress-bar/internal.js.map +1 -1
  560. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  561. package/lib/internal/template/progress-bar/styles.d.ts +16 -0
  562. package/lib/internal/template/progress-bar/styles.d.ts.map +1 -0
  563. package/lib/internal/template/progress-bar/styles.js +33 -0
  564. package/lib/internal/template/progress-bar/styles.js.map +1 -0
  565. package/lib/internal/template/progress-bar/styles.scoped.css +56 -56
  566. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  567. package/lib/internal/template/prompt-input/index.js +2 -4
  568. package/lib/internal/template/prompt-input/index.js.map +1 -1
  569. package/lib/internal/template/prompt-input/interfaces.d.ts +48 -0
  570. package/lib/internal/template/prompt-input/interfaces.d.ts.map +1 -1
  571. package/lib/internal/template/prompt-input/interfaces.js.map +1 -1
  572. package/lib/internal/template/prompt-input/internal.d.ts.map +1 -1
  573. package/lib/internal/template/prompt-input/internal.js +5 -6
  574. package/lib/internal/template/prompt-input/internal.js.map +1 -1
  575. package/lib/internal/template/prompt-input/styles.css.js +17 -17
  576. package/lib/internal/template/prompt-input/styles.d.ts +5 -0
  577. package/lib/internal/template/prompt-input/styles.d.ts.map +1 -0
  578. package/lib/internal/template/prompt-input/styles.js +44 -0
  579. package/lib/internal/template/prompt-input/styles.js.map +1 -0
  580. package/lib/internal/template/prompt-input/styles.scoped.css +73 -61
  581. package/lib/internal/template/prompt-input/styles.selectors.js +17 -17
  582. package/lib/internal/template/property-filter/controller.js +6 -6
  583. package/lib/internal/template/property-filter/controller.js.map +1 -1
  584. package/lib/internal/template/property-filter/filter-options.js +1 -1
  585. package/lib/internal/template/property-filter/filter-options.js.map +1 -1
  586. package/lib/internal/template/property-filter/filtering-token/index.js +11 -14
  587. package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
  588. package/lib/internal/template/property-filter/i18n-utils.js +48 -11
  589. package/lib/internal/template/property-filter/i18n-utils.js.map +1 -1
  590. package/lib/internal/template/property-filter/index.js +4 -6
  591. package/lib/internal/template/property-filter/index.js.map +1 -1
  592. package/lib/internal/template/property-filter/internal.js +15 -13
  593. package/lib/internal/template/property-filter/internal.js.map +1 -1
  594. package/lib/internal/template/property-filter/property-editor.js +1 -1
  595. package/lib/internal/template/property-filter/property-editor.js.map +1 -1
  596. package/lib/internal/template/property-filter/property-filter-autosuggest.js +8 -4
  597. package/lib/internal/template/property-filter/property-filter-autosuggest.js.map +1 -1
  598. package/lib/internal/template/property-filter/token-editor-inputs.js +10 -9
  599. package/lib/internal/template/property-filter/token-editor-inputs.js.map +1 -1
  600. package/lib/internal/template/property-filter/token-editor.js +10 -10
  601. package/lib/internal/template/property-filter/token-editor.js.map +1 -1
  602. package/lib/internal/template/property-filter/token.js +8 -8
  603. package/lib/internal/template/property-filter/token.js.map +1 -1
  604. package/lib/internal/template/property-filter/use-load-items.js +6 -1
  605. package/lib/internal/template/property-filter/use-load-items.js.map +1 -1
  606. package/lib/internal/template/radio-group/analytics-metadata/interfaces.d.ts +1 -0
  607. package/lib/internal/template/radio-group/analytics-metadata/interfaces.d.ts.map +1 -1
  608. package/lib/internal/template/radio-group/analytics-metadata/interfaces.js.map +1 -1
  609. package/lib/internal/template/radio-group/analytics-metadata/styles.css.js +6 -0
  610. package/lib/internal/template/radio-group/analytics-metadata/styles.scoped.css +7 -0
  611. package/lib/internal/template/radio-group/analytics-metadata/styles.selectors.js +7 -0
  612. package/lib/internal/template/radio-group/index.d.ts.map +1 -1
  613. package/lib/internal/template/radio-group/index.js +10 -8
  614. package/lib/internal/template/radio-group/index.js.map +1 -1
  615. package/lib/internal/template/radio-group/internal.d.ts.map +1 -1
  616. package/lib/internal/template/radio-group/internal.js +11 -12
  617. package/lib/internal/template/radio-group/internal.js.map +1 -1
  618. package/lib/internal/template/radio-group/radio-button.js +4 -6
  619. package/lib/internal/template/radio-group/radio-button.js.map +1 -1
  620. package/lib/internal/template/radio-group/styles.css.js +10 -10
  621. package/lib/internal/template/radio-group/styles.scoped.css +22 -22
  622. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  623. package/lib/internal/template/s3-resource-selector/index.js +3 -5
  624. package/lib/internal/template/s3-resource-selector/index.js.map +1 -1
  625. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js +1 -1
  626. package/lib/internal/template/s3-resource-selector/s3-in-context/index.js.map +1 -1
  627. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js +1 -1
  628. package/lib/internal/template/s3-resource-selector/s3-in-context/search-input.js.map +1 -1
  629. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js +4 -7
  630. package/lib/internal/template/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  631. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js +13 -1
  632. package/lib/internal/template/s3-resource-selector/s3-modal/buckets-table.js.map +1 -1
  633. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +4 -1
  634. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  635. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js +14 -2
  636. package/lib/internal/template/s3-resource-selector/s3-modal/objects-table.js.map +1 -1
  637. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js +13 -1
  638. package/lib/internal/template/s3-resource-selector/s3-modal/versions-table.js.map +1 -1
  639. package/lib/internal/template/segmented-control/index.js +1 -1
  640. package/lib/internal/template/segmented-control/index.js.map +1 -1
  641. package/lib/internal/template/segmented-control/internal.js +6 -8
  642. package/lib/internal/template/segmented-control/internal.js.map +1 -1
  643. package/lib/internal/template/segmented-control/segment.js +1 -1
  644. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  645. package/lib/internal/template/select/index.js +2 -4
  646. package/lib/internal/template/select/index.js.map +1 -1
  647. package/lib/internal/template/select/internal.js +13 -10
  648. package/lib/internal/template/select/internal.js.map +1 -1
  649. package/lib/internal/template/select/parts/filter.js +9 -4
  650. package/lib/internal/template/select/parts/filter.js.map +1 -1
  651. package/lib/internal/template/select/parts/item.js +3 -5
  652. package/lib/internal/template/select/parts/item.js.map +1 -1
  653. package/lib/internal/template/select/parts/multiselect-item.js +3 -5
  654. package/lib/internal/template/select/parts/multiselect-item.js.map +1 -1
  655. package/lib/internal/template/select/parts/plain-list.js +1 -1
  656. package/lib/internal/template/select/parts/plain-list.js.map +1 -1
  657. package/lib/internal/template/select/parts/trigger.js +2 -2
  658. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  659. package/lib/internal/template/select/parts/virtual-list.js +3 -3
  660. package/lib/internal/template/select/parts/virtual-list.js.map +1 -1
  661. package/lib/internal/template/select/utils/get-item-props.js +7 -1
  662. package/lib/internal/template/select/utils/get-item-props.js.map +1 -1
  663. package/lib/internal/template/select/utils/render-options.js +1 -1
  664. package/lib/internal/template/select/utils/render-options.js.map +1 -1
  665. package/lib/internal/template/side-navigation/implementation.js +2 -4
  666. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  667. package/lib/internal/template/side-navigation/index.js +2 -4
  668. package/lib/internal/template/side-navigation/index.js.map +1 -1
  669. package/lib/internal/template/side-navigation/parts.js +4 -4
  670. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  671. package/lib/internal/template/slider/index.js +2 -4
  672. package/lib/internal/template/slider/index.js.map +1 -1
  673. package/lib/internal/template/slider/internal.js +2 -4
  674. package/lib/internal/template/slider/internal.js.map +1 -1
  675. package/lib/internal/template/slider/styles.css.js +26 -26
  676. package/lib/internal/template/slider/styles.scoped.css +86 -86
  677. package/lib/internal/template/slider/styles.selectors.js +26 -26
  678. package/lib/internal/template/slider/tick-marks.js +3 -3
  679. package/lib/internal/template/slider/tick-marks.js.map +1 -1
  680. package/lib/internal/template/space-between/index.js +2 -4
  681. package/lib/internal/template/space-between/index.js.map +1 -1
  682. package/lib/internal/template/space-between/internal.js +2 -4
  683. package/lib/internal/template/space-between/internal.js.map +1 -1
  684. package/lib/internal/template/spinner/index.js +2 -4
  685. package/lib/internal/template/spinner/index.js.map +1 -1
  686. package/lib/internal/template/spinner/internal.js +2 -4
  687. package/lib/internal/template/spinner/internal.js.map +1 -1
  688. package/lib/internal/template/spinner/styles.css.js +13 -13
  689. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  690. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  691. package/lib/internal/template/split-panel/bottom.js +2 -2
  692. package/lib/internal/template/split-panel/bottom.js.map +1 -1
  693. package/lib/internal/template/split-panel/implementation.js +2 -4
  694. package/lib/internal/template/split-panel/implementation.js.map +1 -1
  695. package/lib/internal/template/split-panel/index.js +16 -4
  696. package/lib/internal/template/split-panel/index.js.map +1 -1
  697. package/lib/internal/template/split-panel/side.js +6 -2
  698. package/lib/internal/template/split-panel/side.js.map +1 -1
  699. package/lib/internal/template/status-indicator/index.js +2 -4
  700. package/lib/internal/template/status-indicator/index.js.map +1 -1
  701. package/lib/internal/template/status-indicator/internal.js +3 -5
  702. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  703. package/lib/internal/template/steps/index.js +2 -4
  704. package/lib/internal/template/steps/index.js.map +1 -1
  705. package/lib/internal/template/steps/internal.js +2 -4
  706. package/lib/internal/template/steps/internal.js.map +1 -1
  707. package/lib/internal/template/table/body-cell/disabled-inline-editor.js +4 -6
  708. package/lib/internal/template/table/body-cell/disabled-inline-editor.js.map +1 -1
  709. package/lib/internal/template/table/body-cell/index.js +9 -11
  710. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  711. package/lib/internal/template/table/body-cell/inline-editor.js +18 -21
  712. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  713. package/lib/internal/template/table/body-cell/td-element.js +3 -5
  714. package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
  715. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js +1 -1
  716. package/lib/internal/template/table/expandable-rows/expandable-rows-utils.js.map +1 -1
  717. package/lib/internal/template/table/header-cell/index.js +20 -20
  718. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  719. package/lib/internal/template/table/header-cell/th-element.js +3 -5
  720. package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
  721. package/lib/internal/template/table/index.js +14 -10
  722. package/lib/internal/template/table/index.js.map +1 -1
  723. package/lib/internal/template/table/internal.js +47 -34
  724. package/lib/internal/template/table/internal.js.map +1 -1
  725. package/lib/internal/template/table/progressive-loading/loader-cell.js +2 -4
  726. package/lib/internal/template/table/progressive-loading/loader-cell.js.map +1 -1
  727. package/lib/internal/template/table/selection/selection-cell.js +8 -11
  728. package/lib/internal/template/table/selection/selection-cell.js.map +1 -1
  729. package/lib/internal/template/table/selection/selection-control.js +10 -12
  730. package/lib/internal/template/table/selection/selection-control.js.map +1 -1
  731. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js +1 -1
  732. package/lib/internal/template/table/sticky-columns/use-sticky-columns.js.map +1 -1
  733. package/lib/internal/template/table/sticky-header.js +2 -2
  734. package/lib/internal/template/table/sticky-header.js.map +1 -1
  735. package/lib/internal/template/table/thead.js +5 -5
  736. package/lib/internal/template/table/thead.js.map +1 -1
  737. package/lib/internal/template/table/use-cell-editing.js +3 -4
  738. package/lib/internal/template/table/use-cell-editing.js.map +1 -1
  739. package/lib/internal/template/table/utils.js +1 -1
  740. package/lib/internal/template/table/utils.js.map +1 -1
  741. package/lib/internal/template/tabs/index.js +6 -8
  742. package/lib/internal/template/tabs/index.js.map +1 -1
  743. package/lib/internal/template/tabs/tab-header-bar.js +12 -5
  744. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  745. package/lib/internal/template/tag-editor/index.js +7 -9
  746. package/lib/internal/template/tag-editor/index.js.map +1 -1
  747. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  748. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  749. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  750. package/lib/internal/template/text-content/index.js +2 -4
  751. package/lib/internal/template/text-content/index.js.map +1 -1
  752. package/lib/internal/template/text-content/styles.css.js +1 -1
  753. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  754. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  755. package/lib/internal/template/text-filter/index.js +1 -1
  756. package/lib/internal/template/text-filter/index.js.map +1 -1
  757. package/lib/internal/template/text-filter/internal.js +2 -4
  758. package/lib/internal/template/text-filter/internal.js.map +1 -1
  759. package/lib/internal/template/textarea/index.js +3 -5
  760. package/lib/internal/template/textarea/index.js.map +1 -1
  761. package/lib/internal/template/textarea/styles.css.js +5 -5
  762. package/lib/internal/template/textarea/styles.js +42 -30
  763. package/lib/internal/template/textarea/styles.js.map +1 -1
  764. package/lib/internal/template/textarea/styles.scoped.css +41 -41
  765. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  766. package/lib/internal/template/tiles/index.js +3 -3
  767. package/lib/internal/template/tiles/index.js.map +1 -1
  768. package/lib/internal/template/tiles/internal.js +12 -14
  769. package/lib/internal/template/tiles/internal.js.map +1 -1
  770. package/lib/internal/template/tiles/tile.js +3 -5
  771. package/lib/internal/template/tiles/tile.js.map +1 -1
  772. package/lib/internal/template/time-input/index.js +2 -4
  773. package/lib/internal/template/time-input/index.js.map +1 -1
  774. package/lib/internal/template/time-input/internal.js +2 -4
  775. package/lib/internal/template/time-input/internal.js.map +1 -1
  776. package/lib/internal/template/toggle/index.js +1 -1
  777. package/lib/internal/template/toggle/index.js.map +1 -1
  778. package/lib/internal/template/toggle/internal.js +5 -7
  779. package/lib/internal/template/toggle/internal.js.map +1 -1
  780. package/lib/internal/template/toggle/styles.css.js +10 -10
  781. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  782. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  783. package/lib/internal/template/toggle-button/index.js +2 -4
  784. package/lib/internal/template/toggle-button/index.js.map +1 -1
  785. package/lib/internal/template/toggle-button/internal.js +3 -5
  786. package/lib/internal/template/toggle-button/internal.js.map +1 -1
  787. package/lib/internal/template/token/dismiss-button.js +2 -2
  788. package/lib/internal/template/token/dismiss-button.js.map +1 -1
  789. package/lib/internal/template/token/index.js +1 -1
  790. package/lib/internal/template/token/index.js.map +1 -1
  791. package/lib/internal/template/token/internal.js +20 -14
  792. package/lib/internal/template/token/internal.js.map +1 -1
  793. package/lib/internal/template/token-group/index.js +2 -4
  794. package/lib/internal/template/token-group/index.js.map +1 -1
  795. package/lib/internal/template/token-group/internal.js +6 -8
  796. package/lib/internal/template/token-group/internal.js.map +1 -1
  797. package/lib/internal/template/top-navigation/index.js +2 -4
  798. package/lib/internal/template/top-navigation/index.js.map +1 -1
  799. package/lib/internal/template/top-navigation/internal.js +2 -4
  800. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  801. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +7 -11
  802. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  803. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js +2 -2
  804. package/lib/internal/template/top-navigation/parts/overflow-menu/views/submenu.js.map +1 -1
  805. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js +1 -1
  806. package/lib/internal/template/top-navigation/parts/overflow-menu/views/utilities.js.map +1 -1
  807. package/lib/internal/template/top-navigation/parts/utility.js +1 -1
  808. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  809. package/lib/internal/template/tree-view/index.js +1 -1
  810. package/lib/internal/template/tree-view/index.js.map +1 -1
  811. package/lib/internal/template/tree-view/internal.js +2 -4
  812. package/lib/internal/template/tree-view/internal.js.map +1 -1
  813. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js +1 -1
  814. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  815. package/lib/internal/template/tutorial-panel/index.js +2 -4
  816. package/lib/internal/template/tutorial-panel/index.js.map +1 -1
  817. package/lib/internal/template/wizard/index.js +2 -4
  818. package/lib/internal/template/wizard/index.js.map +1 -1
  819. package/lib/internal/template/wizard/internal.js +23 -10
  820. package/lib/internal/template/wizard/internal.js.map +1 -1
  821. package/lib/internal/template/wizard/wizard-actions.js +3 -3
  822. package/lib/internal/template/wizard/wizard-actions.js.map +1 -1
  823. package/lib/internal/template/wizard/wizard-form.js +2 -2
  824. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  825. package/lib/internal/template/wizard/wizard-navigation.js +7 -7
  826. package/lib/internal/template/wizard/wizard-navigation.js.map +1 -1
  827. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAO,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAE7E,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EAWmB,EACnB,GAA8B,EAC9B,EAAE;QAbF,EACE,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,EACzB,qBAAqB,OAEJ,EADd,IAAI,cAVT,0IAWC,CADQ;IAIT,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAA,QAAQ,CAAC,OAAO,0CAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,MAAM,KAA4B,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAC5B,KAAK;QACL,QAAQ;QACR,OAAO;QACP,yBAAyB;QACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC;QAC1F,SAAS,EAAE,CAAC,KAAkB,EAAE,EAAE,CAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACpF,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAC5C,WAAW,EAAE,iBAAiB;QAC9B,iBAAiB;KAClB,CAAC,EAZI,EAAE,OAAO,OAYb,EAZkB,SAAS,cAAvB,WAAyB,CAY7B,CAAC;IAEH,MAAM,UAAU,6EACX,IAAI,GACJ,SAAS,GACT,gBAAgB,GAChB,SAAS,KACZ,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GACnD,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CACL,oBAAC,aAAa,oBACR,UAAU,IACd,GAAG,EAAE,SAAS,EACd,qBAAqB,EAAE,iBAAiB,CACtC;YACE,OAAO;SACR,EACD,qBAAqB,EACrB,aAAa,CACd,IACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAGF,eAAe,WAAW,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useLayoutEffect, useState } from 'react';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalInput from '../../../input/internal';\nimport { getBaseProps } from '../../base-component';\nimport { useFormFieldContext } from '../../context/form-field-context';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../../events';\nimport { processAttributes } from '../../utils/with-native-attributes';\nimport { MaskedInputProps } from './interfaces';\nimport useMask from './use-mask';\nimport MaskFormat from './utils/mask-format';\n\nconst MaskedInput = React.forwardRef(\n (\n {\n value,\n onBlur,\n onChange,\n onKeyDown,\n mask,\n autofix = false,\n disableAutocompleteOnBlur = false,\n showUnmaskedValue = false,\n nativeInputAttributes,\n ...rest\n }: MaskedInputProps,\n ref: Ref<MaskedInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const formFieldContext = useFormFieldContext(rest);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [cursorPosition, setCursorPosition] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n if (cursorPosition !== null) {\n inputRef.current?.setSelectionRange(cursorPosition, cursorPosition);\n }\n }, [cursorPosition, inputRef]);\n\n const { onPaste, ...maskProps } = useMask({\n format: new MaskFormat(mask),\n value,\n inputRef,\n autofix,\n disableAutocompleteOnBlur,\n onChange: (value: string) => !rest.readOnly && fireNonCancelableEvent(onChange, { value }),\n onKeyDown: (event: CustomEvent) =>\n !rest.readOnly && onKeyDown && fireCancelableEvent(onKeyDown, event.detail, event),\n onBlur: () => fireNonCancelableEvent(onBlur),\n setPosition: setCursorPosition,\n showUnmaskedValue,\n });\n\n const inputProps = {\n ...rest,\n ...baseProps,\n ...formFieldContext,\n ...maskProps,\n value: showUnmaskedValue ? value : maskProps.value,\n };\n\n const mergedRef = useMergeRefs(ref, inputRef);\n return (\n <InternalInput\n {...inputProps}\n ref={mergedRef}\n nativeInputAttributes={processAttributes(\n {\n onPaste,\n },\n nativeInputAttributes,\n 'MaskedInput'\n )}\n />\n );\n }\n);\n\nexport { MaskedInputProps };\nexport default MaskedInput;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAO,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAE7E,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EACE,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,EACzB,qBAAqB,EACrB,GAAG,IAAI,EACU,EACnB,GAA8B,EAC9B,EAAE;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAA,QAAQ,CAAC,OAAO,0CAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAC5B,KAAK;QACL,QAAQ;QACR,OAAO;QACP,yBAAyB;QACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC;QAC1F,SAAS,EAAE,CAAC,KAAkB,EAAE,EAAE,CAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACpF,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAC5C,WAAW,EAAE,iBAAiB;QAC9B,iBAAiB;KAClB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI;QACP,GAAG,SAAS;QACZ,GAAG,gBAAgB;QACnB,GAAG,SAAS;QACZ,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;KACnD,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CACL,oBAAC,aAAa,OACR,UAAU,EACd,GAAG,EAAE,SAAS,EACd,qBAAqB,EAAE,iBAAiB,CACtC;YACE,OAAO;SACR,EACD,qBAAqB,EACrB,aAAa,CACd,GACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAGF,eAAe,WAAW,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useLayoutEffect, useState } from 'react';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalInput from '../../../input/internal';\nimport { getBaseProps } from '../../base-component';\nimport { useFormFieldContext } from '../../context/form-field-context';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../../events';\nimport { processAttributes } from '../../utils/with-native-attributes';\nimport { MaskedInputProps } from './interfaces';\nimport useMask from './use-mask';\nimport MaskFormat from './utils/mask-format';\n\nconst MaskedInput = React.forwardRef(\n (\n {\n value,\n onBlur,\n onChange,\n onKeyDown,\n mask,\n autofix = false,\n disableAutocompleteOnBlur = false,\n showUnmaskedValue = false,\n nativeInputAttributes,\n ...rest\n }: MaskedInputProps,\n ref: Ref<MaskedInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const formFieldContext = useFormFieldContext(rest);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [cursorPosition, setCursorPosition] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n if (cursorPosition !== null) {\n inputRef.current?.setSelectionRange(cursorPosition, cursorPosition);\n }\n }, [cursorPosition, inputRef]);\n\n const { onPaste, ...maskProps } = useMask({\n format: new MaskFormat(mask),\n value,\n inputRef,\n autofix,\n disableAutocompleteOnBlur,\n onChange: (value: string) => !rest.readOnly && fireNonCancelableEvent(onChange, { value }),\n onKeyDown: (event: CustomEvent) =>\n !rest.readOnly && onKeyDown && fireCancelableEvent(onKeyDown, event.detail, event),\n onBlur: () => fireNonCancelableEvent(onBlur),\n setPosition: setCursorPosition,\n showUnmaskedValue,\n });\n\n const inputProps = {\n ...rest,\n ...baseProps,\n ...formFieldContext,\n ...maskProps,\n value: showUnmaskedValue ? value : maskProps.value,\n };\n\n const mergedRef = useMergeRefs(ref, inputRef);\n return (\n <InternalInput\n {...inputProps}\n ref={mergedRef}\n nativeInputAttributes={processAttributes(\n {\n onPaste,\n },\n nativeInputAttributes,\n 'MaskedInput'\n )}\n />\n );\n }\n);\n\nexport { MaskedInputProps };\nexport default MaskedInput;\n"]}
@@ -265,7 +265,12 @@ class MaskFormat {
265
265
  let position = 0;
266
266
  for (const segment of segments) {
267
267
  const max = segment.max;
268
- const fullSegment = Object.assign(Object.assign({}, segment), { max: typeof max === 'number' ? () => max : max, start: position, end: position + segment.length });
268
+ const fullSegment = {
269
+ ...segment,
270
+ max: typeof max === 'number' ? () => max : max,
271
+ start: position,
272
+ end: position + segment.length,
273
+ };
269
274
  this.segments.push(fullSegment);
270
275
  // Insert this format segment for every char in the max value.
271
276
  for (let j = 0; j < fullSegment.length; j++) {
@@ -1 +1 @@
1
- {"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA0BrC,MAAM,UAAU;IAMd,YAAY,EAAE,SAAS,EAAE,eAAe,GAAG,EAAE,EAAE,QAAQ,EAAY;QAF3D,oBAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAG7D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,eAAe,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,KAAa;QAC9B,MAAM,aAAa,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,oFAAoF;QACpF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEjC,0BAA0B;YAC1B,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;gBACxB,6DAA6D;gBAC7D,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,uBAAuB;YACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,+CAA+C;YAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3E,OAAO,KAAK,CAAC;YACf,CAAC;YACD,yBAAyB;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAE5C,6DAA6D;YAC7D,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,+CAA+C;gBAC/C,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC3E,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,GAAG,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;YAED,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC,QAAQ,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAEhC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,MAAM,CAAC,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEhE,iEAAiE;QACjE,sBAAsB;QACtB,MAAM,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAEvF,8DAA8D;QAC9D,MAAM,OAAO,GAAG,CAAC,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC7E,OAAO,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B,CAAC,QAAgB,EAAE,KAAa,EAAE,YAAoB;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACpD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,uBAAuB,CAAC,KAAa,EAAE,WAAmB,EAAE,SAAiB;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEvF,yDAAyD;QACzD,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YACvD,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/F,WAAW,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,6DAA6D;QAC7D,IAAI,cAAiC,CAAC;QACtC,OAAO,WAAW,GAAG,SAAS,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;YAChG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YAC7D,KAAK,GAAG,QAAQ,CACd,KAAK,EACL,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,EACrD,cAAc,CAAC,KAAK,EACpB,YAAY,CACb,CAAC;YACF,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO;YACL,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,KAAa,EAAE,QAAgB;QAClD,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YACpD,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC/D,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAClE,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO;gBACL,KAAK;gBACL,QAAQ,EAAE,KAAK,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,QAAgB;QAClC,OAAO,CAAC,GAAG,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;IAC5G,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,OAAO,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB,CAAC,KAAa,EAAE,QAAgB;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB,CAAC,KAAa,EAAE,QAAgB;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC;IACjD,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,QAAgB;QAC7C,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEzD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACtC,QAAQ,EAAE,QAAQ,GAAG,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,QAAgB;QACzC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAErD,gCAAgC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACtC,QAAQ,EAAE,QAAQ,GAAG,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACrC,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClD,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;gBAC9B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,KAAa,EAAE,WAAmB,EAAE,SAAiB;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,QAAQ,GAAG,WAAW,CAAC;QAE3B,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,8DAA8D;QAC9D,iFAAiF;QACjF,IAAI,SAAS,GAAG,WAAW,IAAI,SAAS,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1D,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACpC,MAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC9D,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,GAAW,EAAE,eAAuB;QACnE,IAAI,KAAK,GAAG,YAAY,CAAC;QACzB,IAAI,QAAQ,GAAG,eAAe,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACrB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACjE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzF,MAAM,eAAe,GAAG,aAAa,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;YAC7E,MAAM,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,eAAe,IAAI,iBAAiB,CAAC;YAEvG,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,8BAA8B;gBAC9B,yBAAyB;gBACzB,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC3D,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,GAAG,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3E,gCAAgC;gBAChC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC1G,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;YAC/C,CAAC;iBAAM,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;gBAC1C,gCAAgC;gBAChC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC/E,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,GAAG,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5E,yBAAyB;gBACzB,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC3E,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACrD,QAAQ,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEvC,6EAA6E;QAC7E,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB,CAAC,YAAoB,EAAE,OAA0B;QAC1E,IAAI,YAAY,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpG,CAAC;IAEO,wBAAwB,CAAC,QAAyB;QACxD,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,MAAM,WAAW,mCACZ,OAAO,KACV,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC9C,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAC/B,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,8DAA8D;YAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC;YACD,iCAAiC;YACjC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,eAAe,UAAU,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\ninterface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n // No inputSeparators will be present as they are replaced with the separator prior.\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // Disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\").\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // Only allow numerals.\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // Disallow incomplete segments, except at end.\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // Limit numerical value.\n const intValue = parseInt(segmentValue, 10);\n\n // Handle values padded with 0s that are lost during parsing.\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // Allow incomplete segments in final position.\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // If the last segment isn't complete, pad it with a preceding 0,\n // e.g. 10:1 -> 10:01.\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // Recombine, and pad with extra segments for the full format.\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // Move selection forwards if it starts with a separator.\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // First, insert zeros in a partial segment at beginning of selection.\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // Then, loop through remaining segments, filling with zeros.\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // If a selection range captures the end of the current value,\n // we replace it with the value in buffer even if the value in buffer is shorter.\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character.\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // Insert this format segment for every char in the max value.\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // Skip a position for separator.\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
1
+ {"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\ninterface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n // No inputSeparators will be present as they are replaced with the separator prior.\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // Disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\").\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // Only allow numerals.\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // Disallow incomplete segments, except at end.\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // Limit numerical value.\n const intValue = parseInt(segmentValue, 10);\n\n // Handle values padded with 0s that are lost during parsing.\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // Allow incomplete segments in final position.\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // If the last segment isn't complete, pad it with a preceding 0,\n // e.g. 10:1 -> 10:01.\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // Recombine, and pad with extra segments for the full format.\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // Move selection forwards if it starts with a separator.\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // First, insert zeros in a partial segment at beginning of selection.\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // Then, loop through remaining segments, filling with zeros.\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // If a selection range captures the end of the current value,\n // we replace it with the value in buffer even if the value in buffer is shorter.\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character.\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // Insert this format segment for every char in the max value.\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // Skip a position for separator.\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import React from 'react';
@@ -22,13 +21,12 @@ export const ButtonTrigger = React.forwardRef(({ testUtilsClass, iconName, iconU
22
21
  children && React.createElement("span", { className: styles.text }, children),
23
22
  children && (React.createElement(InternalIcon, { name: "caret-down-filled", className: spinWhenOpen(buttonDropdownStyles, 'rotate', !!expanded) }))));
24
23
  });
25
- const MenuDropdown = (_a) => {
26
- var { iconName, iconUrl, iconAlt, iconSvg, badge, offsetRight, children } = _a, props = __rest(_a, ["iconName", "iconUrl", "iconAlt", "iconSvg", "badge", "offsetRight", "children"]);
24
+ const MenuDropdown = ({ iconName, iconUrl, iconAlt, iconSvg, badge, offsetRight, children, ...props }) => {
27
25
  const baseProps = getBaseProps(props);
28
26
  const dropdownTrigger = ({ triggerRef, ariaLabel, isOpen, testUtilsClass, disabled, onClick, }) => {
29
27
  return (React.createElement(ButtonTrigger, { testUtilsClass: testUtilsClass, ref: triggerRef, disabled: disabled, expanded: isOpen, iconName: iconName, iconUrl: iconUrl, iconAlt: iconAlt, iconSvg: iconSvg, badge: badge, ariaLabel: ariaLabel, offsetRight: offsetRight, onClick: onClick }, children));
30
28
  };
31
- return (React.createElement(InternalButtonDropdown, Object.assign({}, baseProps, props, { variant: "navigation", customTriggerBuilder: dropdownTrigger, preferCenter: true })));
29
+ return (React.createElement(InternalButtonDropdown, { ...baseProps, ...props, variant: "navigation", customTriggerBuilder: dropdownTrigger, preferCenter: true }));
32
30
  };
33
31
  applyDisplayName(MenuDropdown, 'MenuDropdown');
34
32
  export default MenuDropdown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/menu-dropdown/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { CustomTriggerProps } from '../../../button-dropdown/interfaces';\nimport InternalButtonDropdown from '../../../button-dropdown/internal';\nimport InternalIcon from '../../../icon/internal';\nimport { getBaseProps } from '../../base-component';\nimport { spinWhenOpen } from '../../styles/motion/utils';\nimport { applyDisplayName } from '../../utils/apply-display-name';\nimport { ButtonTriggerProps, MenuDropdownProps } from './interfaces';\n\nimport buttonDropdownStyles from '../../../button-dropdown/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { MenuDropdownProps };\n\nexport const ButtonTrigger = React.forwardRef(\n (\n {\n testUtilsClass,\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n disabled,\n expanded,\n children,\n onClick,\n }: ButtonTriggerProps,\n ref: React.Ref<any>\n ) => {\n const hasIcon = iconName || iconUrl || iconSvg;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(styles.button, styles[`offset-right-${offsetRight}`], testUtilsClass, {\n [styles.expanded]: expanded,\n })}\n aria-label={ariaLabel}\n aria-expanded={!!expanded}\n aria-haspopup={true}\n disabled={disabled}\n onClick={event => {\n event.preventDefault();\n onClick?.();\n }}\n >\n {hasIcon && (\n <InternalIcon\n className={styles.icon}\n name={iconName}\n url={iconUrl}\n alt={iconAlt}\n svg={iconSvg}\n badge={badge}\n />\n )}\n {children && <span className={styles.text}>{children}</span>}\n {children && (\n <InternalIcon name=\"caret-down-filled\" className={spinWhenOpen(buttonDropdownStyles, 'rotate', !!expanded)} />\n )}\n </button>\n );\n }\n);\n\nconst MenuDropdown = ({\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n offsetRight,\n children,\n ...props\n}: MenuDropdownProps) => {\n const baseProps = getBaseProps(props);\n\n const dropdownTrigger = ({\n triggerRef,\n ariaLabel,\n isOpen,\n testUtilsClass,\n disabled,\n onClick,\n }: CustomTriggerProps) => {\n return (\n <ButtonTrigger\n testUtilsClass={testUtilsClass}\n ref={triggerRef}\n disabled={disabled}\n expanded={isOpen}\n iconName={iconName}\n iconUrl={iconUrl}\n iconAlt={iconAlt}\n iconSvg={iconSvg}\n badge={badge}\n ariaLabel={ariaLabel}\n offsetRight={offsetRight}\n onClick={onClick}\n >\n {children}\n </ButtonTrigger>\n );\n };\n\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...props}\n variant=\"navigation\"\n customTriggerBuilder={dropdownTrigger}\n preferCenter={true}\n />\n );\n};\n\napplyDisplayName(MenuDropdown, 'MenuDropdown');\nexport default MenuDropdown;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/menu-dropdown/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AACvE,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,oBAAoB,MAAM,wCAAwC,CAAC;AAC1E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAC3C,CACE,EACE,cAAc,EACd,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACY,EACrB,GAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC;IAE/C,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE;YACpF,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;SAC5B,CAAC,gBACU,SAAS,mBACN,CAAC,CAAC,QAAQ,mBACV,IAAI,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;QACd,CAAC;QAEA,OAAO,IAAI,CACV,oBAAC,YAAY,IACX,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,GACZ,CACH;QACA,QAAQ,IAAI,8BAAM,SAAS,EAAE,MAAM,CAAC,IAAI,IAAG,QAAQ,CAAQ;QAC3D,QAAQ,IAAI,CACX,oBAAC,YAAY,IAAC,IAAI,EAAC,mBAAmB,EAAC,SAAS,EAAE,YAAY,CAAC,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAI,CAC/G,CACM,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACU,EAAE,EAAE;IACtB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,eAAe,GAAG,CAAC,EACvB,UAAU,EACV,SAAS,EACT,MAAM,EACN,cAAc,EACd,QAAQ,EACR,OAAO,GACY,EAAE,EAAE;QACvB,OAAO,CACL,oBAAC,aAAa,IACZ,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,IAEf,QAAQ,CACK,CACjB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,sBAAsB,OACjB,SAAS,KACT,KAAK,EACT,OAAO,EAAC,YAAY,EACpB,oBAAoB,EAAE,eAAe,EACrC,YAAY,EAAE,IAAI,GAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC/C,eAAe,YAAY,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { CustomTriggerProps } from '../../../button-dropdown/interfaces';\nimport InternalButtonDropdown from '../../../button-dropdown/internal';\nimport InternalIcon from '../../../icon/internal';\nimport { getBaseProps } from '../../base-component';\nimport { spinWhenOpen } from '../../styles/motion/utils';\nimport { applyDisplayName } from '../../utils/apply-display-name';\nimport { ButtonTriggerProps, MenuDropdownProps } from './interfaces';\n\nimport buttonDropdownStyles from '../../../button-dropdown/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { MenuDropdownProps };\n\nexport const ButtonTrigger = React.forwardRef(\n (\n {\n testUtilsClass,\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n disabled,\n expanded,\n children,\n onClick,\n }: ButtonTriggerProps,\n ref: React.Ref<any>\n ) => {\n const hasIcon = iconName || iconUrl || iconSvg;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(styles.button, styles[`offset-right-${offsetRight}`], testUtilsClass, {\n [styles.expanded]: expanded,\n })}\n aria-label={ariaLabel}\n aria-expanded={!!expanded}\n aria-haspopup={true}\n disabled={disabled}\n onClick={event => {\n event.preventDefault();\n onClick?.();\n }}\n >\n {hasIcon && (\n <InternalIcon\n className={styles.icon}\n name={iconName}\n url={iconUrl}\n alt={iconAlt}\n svg={iconSvg}\n badge={badge}\n />\n )}\n {children && <span className={styles.text}>{children}</span>}\n {children && (\n <InternalIcon name=\"caret-down-filled\" className={spinWhenOpen(buttonDropdownStyles, 'rotate', !!expanded)} />\n )}\n </button>\n );\n }\n);\n\nconst MenuDropdown = ({\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n offsetRight,\n children,\n ...props\n}: MenuDropdownProps) => {\n const baseProps = getBaseProps(props);\n\n const dropdownTrigger = ({\n triggerRef,\n ariaLabel,\n isOpen,\n testUtilsClass,\n disabled,\n onClick,\n }: CustomTriggerProps) => {\n return (\n <ButtonTrigger\n testUtilsClass={testUtilsClass}\n ref={triggerRef}\n disabled={disabled}\n expanded={isOpen}\n iconName={iconName}\n iconUrl={iconUrl}\n iconAlt={iconAlt}\n iconSvg={iconSvg}\n badge={badge}\n ariaLabel={ariaLabel}\n offsetRight={offsetRight}\n onClick={onClick}\n >\n {children}\n </ButtonTrigger>\n );\n };\n\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...props}\n variant=\"navigation\"\n customTriggerBuilder={dropdownTrigger}\n preferCenter={true}\n />\n );\n};\n\napplyDisplayName(MenuDropdown, 'MenuDropdown');\nexport default MenuDropdown;\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import React from 'react';
@@ -14,9 +13,8 @@ function validateStringValue(value, propertyName) {
14
13
  warnOnce('DropdownOption', `This component only supports string values, but "option.${propertyName}" has ${typeof value} type. The component may work incorrectly.`);
15
14
  }
16
15
  }
17
- const Option = (_a) => {
18
- var _b, _c, _d, _e;
19
- var { option, highlightText, triggerVariant = false, isGroupOption = false, highlightedOption = false, selectedOption = false, disableTitleTooltip = false, labelContainerRef, labelRef, labelId } = _a, restProps = __rest(_a, ["option", "highlightText", "triggerVariant", "isGroupOption", "highlightedOption", "selectedOption", "disableTitleTooltip", "labelContainerRef", "labelRef", "labelId"]);
16
+ const Option = ({ option, highlightText, triggerVariant = false, isGroupOption = false, highlightedOption = false, selectedOption = false, disableTitleTooltip = false, labelContainerRef, labelRef, labelId, ...restProps }) => {
17
+ var _a, _b, _c, _d;
20
18
  if (!option) {
21
19
  return null;
22
20
  }
@@ -27,20 +25,20 @@ const Option = (_a) => {
27
25
  validateStringValue(option.label, 'label');
28
26
  validateStringValue(option.description, 'description');
29
27
  validateStringValue(option.labelTag, 'labelTag');
30
- (_b = option.tags) === null || _b === void 0 ? void 0 : _b.forEach((tag, index) => {
28
+ (_a = option.tags) === null || _a === void 0 ? void 0 : _a.forEach((tag, index) => {
31
29
  validateStringValue(tag, `tags[${index}]`);
32
30
  });
33
- (_c = option.filteringTags) === null || _c === void 0 ? void 0 : _c.forEach((tag, index) => {
31
+ (_b = option.filteringTags) === null || _b === void 0 ? void 0 : _b.forEach((tag, index) => {
34
32
  validateStringValue(tag, `filteringTags[${index}]`);
35
33
  });
36
34
  }
37
35
  const className = clsx(styles.option, disabled && styles.disabled, isGroupOption && styles.parent, highlightedOption && styles.highlighted, baseProps.className);
38
36
  const icon = option.__customIcon || (React.createElement(OptionIcon, { name: option.iconName, url: option.iconUrl, svg: option.iconSvg, alt: option.iconAlt, ariaLabel: option.iconAriaLabel, size: "normal" }));
39
- return (React.createElement(SpanOrDivTag, Object.assign({}, baseProps, { "data-value": option.value, className: className, lang: option.lang, title: !disableTitleTooltip ? ((_d = option.label) !== null && _d !== void 0 ? _d : option.value) : undefined }),
37
+ return (React.createElement(SpanOrDivTag, { ...baseProps, "data-value": option.value, className: className, lang: option.lang, title: !disableTitleTooltip ? ((_c = option.label) !== null && _c !== void 0 ? _c : option.value) : undefined },
40
38
  icon,
41
39
  React.createElement(SpanOrDivTag, { className: styles.content },
42
40
  React.createElement(SpanOrDivTag, { className: styles['label-content'] },
43
- option.labelContent ? (React.createElement(SpanOrDivTag, { className: clsx(styles.label, analyticsSelectors.label) }, option.labelContent)) : (React.createElement(Label, { labelContainerRef: labelContainerRef, labelRef: labelRef, labelId: labelId, label: (_e = option.label) !== null && _e !== void 0 ? _e : option.value, prefix: option.__labelPrefix, highlightText: highlightText, triggerVariant: triggerVariant })),
41
+ option.labelContent ? (React.createElement(SpanOrDivTag, { className: clsx(styles.label, analyticsSelectors.label) }, option.labelContent)) : (React.createElement(Label, { labelContainerRef: labelContainerRef, labelRef: labelRef, labelId: labelId, label: (_d = option.label) !== null && _d !== void 0 ? _d : option.value, prefix: option.__labelPrefix, highlightText: highlightText, triggerVariant: triggerVariant })),
44
42
  React.createElement(LabelTag, { labelTag: option.labelTag, highlightText: highlightText, triggerVariant: triggerVariant })),
45
43
  React.createElement(Description, { description: option.description, highlightedOption: highlightedOption, selectedOption: selectedOption, highlightText: highlightText, triggerVariant: triggerVariant }),
46
44
  React.createElement(Tags, { tags: option.tags, highlightedOption: highlightedOption, selectedOption: selectedOption, highlightText: highlightText, triggerVariant: triggerVariant }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../../base-component';\nimport { isDevelopment } from '../../is-development';\nimport { OptionProps } from './interfaces';\nimport { Description, FilteringTags, Label, LabelTag, OptionIcon, Tags } from './option-parts';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { OptionProps };\n\nfunction validateStringValue(value: string | undefined, propertyName: string) {\n if (typeof value !== 'undefined' && typeof value !== 'string') {\n warnOnce(\n 'DropdownOption',\n `This component only supports string values, but \"option.${propertyName}\" has ${typeof value} type. The component may work incorrectly.`\n );\n }\n}\n\nconst Option = ({\n option,\n highlightText,\n triggerVariant = false,\n isGroupOption = false,\n highlightedOption = false,\n selectedOption = false,\n disableTitleTooltip = false,\n labelContainerRef,\n labelRef,\n labelId,\n ...restProps\n}: OptionProps) => {\n if (!option) {\n return null;\n }\n const { disabled } = option;\n const baseProps = getBaseProps(restProps);\n const SpanOrDivTag = option.labelContent ? 'div' : 'span';\n\n if (isDevelopment) {\n validateStringValue(option.label, 'label');\n validateStringValue(option.description, 'description');\n validateStringValue(option.labelTag, 'labelTag');\n option.tags?.forEach((tag, index) => {\n validateStringValue(tag, `tags[${index}]`);\n });\n option.filteringTags?.forEach((tag, index) => {\n validateStringValue(tag, `filteringTags[${index}]`);\n });\n }\n\n const className = clsx(\n styles.option,\n disabled && styles.disabled,\n isGroupOption && styles.parent,\n highlightedOption && styles.highlighted,\n baseProps.className\n );\n\n const icon = option.__customIcon || (\n <OptionIcon\n name={option.iconName}\n url={option.iconUrl}\n svg={option.iconSvg}\n alt={option.iconAlt}\n ariaLabel={option.iconAriaLabel}\n size=\"normal\"\n />\n );\n\n return (\n <SpanOrDivTag\n {...baseProps}\n data-value={option.value}\n className={className}\n lang={option.lang}\n title={!disableTitleTooltip ? (option.label ?? option.value) : undefined}\n >\n {icon}\n <SpanOrDivTag className={styles.content}>\n <SpanOrDivTag className={styles['label-content']}>\n {option.labelContent ? (\n <SpanOrDivTag className={clsx(styles.label, analyticsSelectors.label)}>{option.labelContent}</SpanOrDivTag>\n ) : (\n <Label\n labelContainerRef={labelContainerRef}\n labelRef={labelRef}\n labelId={labelId}\n label={option.label ?? option.value}\n prefix={option.__labelPrefix}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n )}\n <LabelTag labelTag={option.labelTag} highlightText={highlightText} triggerVariant={triggerVariant} />\n </SpanOrDivTag>\n <Description\n description={option.description}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n <Tags\n tags={option.tags}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n <FilteringTags\n filteringTags={option.filteringTags}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n </SpanOrDivTag>\n </SpanOrDivTag>\n );\n};\n\nexport default Option;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../../base-component';\nimport { isDevelopment } from '../../is-development';\nimport { OptionProps } from './interfaces';\nimport { Description, FilteringTags, Label, LabelTag, OptionIcon, Tags } from './option-parts';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { OptionProps };\n\nfunction validateStringValue(value: string | undefined, propertyName: string) {\n if (typeof value !== 'undefined' && typeof value !== 'string') {\n warnOnce(\n 'DropdownOption',\n `This component only supports string values, but \"option.${propertyName}\" has ${typeof value} type. The component may work incorrectly.`\n );\n }\n}\n\nconst Option = ({\n option,\n highlightText,\n triggerVariant = false,\n isGroupOption = false,\n highlightedOption = false,\n selectedOption = false,\n disableTitleTooltip = false,\n labelContainerRef,\n labelRef,\n labelId,\n ...restProps\n}: OptionProps) => {\n if (!option) {\n return null;\n }\n const { disabled } = option;\n const baseProps = getBaseProps(restProps);\n const SpanOrDivTag = option.labelContent ? 'div' : 'span';\n\n if (isDevelopment) {\n validateStringValue(option.label, 'label');\n validateStringValue(option.description, 'description');\n validateStringValue(option.labelTag, 'labelTag');\n option.tags?.forEach((tag, index) => {\n validateStringValue(tag, `tags[${index}]`);\n });\n option.filteringTags?.forEach((tag, index) => {\n validateStringValue(tag, `filteringTags[${index}]`);\n });\n }\n\n const className = clsx(\n styles.option,\n disabled && styles.disabled,\n isGroupOption && styles.parent,\n highlightedOption && styles.highlighted,\n baseProps.className\n );\n\n const icon = option.__customIcon || (\n <OptionIcon\n name={option.iconName}\n url={option.iconUrl}\n svg={option.iconSvg}\n alt={option.iconAlt}\n ariaLabel={option.iconAriaLabel}\n size=\"normal\"\n />\n );\n\n return (\n <SpanOrDivTag\n {...baseProps}\n data-value={option.value}\n className={className}\n lang={option.lang}\n title={!disableTitleTooltip ? (option.label ?? option.value) : undefined}\n >\n {icon}\n <SpanOrDivTag className={styles.content}>\n <SpanOrDivTag className={styles['label-content']}>\n {option.labelContent ? (\n <SpanOrDivTag className={clsx(styles.label, analyticsSelectors.label)}>{option.labelContent}</SpanOrDivTag>\n ) : (\n <Label\n labelContainerRef={labelContainerRef}\n labelRef={labelRef}\n labelId={labelId}\n label={option.label ?? option.value}\n prefix={option.__labelPrefix}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n )}\n <LabelTag labelTag={option.labelTag} highlightText={highlightText} triggerVariant={triggerVariant} />\n </SpanOrDivTag>\n <Description\n description={option.description}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n <Tags\n tags={option.tags}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n <FilteringTags\n filteringTags={option.filteringTags}\n highlightedOption={highlightedOption}\n selectedOption={selectedOption}\n highlightText={highlightText}\n triggerVariant={triggerVariant}\n />\n </SpanOrDivTag>\n </SpanOrDivTag>\n );\n};\n\nexport default Option;\n"]}
@@ -48,6 +48,6 @@ export const OptionIcon = (props) => {
48
48
  return null;
49
49
  }
50
50
  return (React.createElement("span", { className: styles.icon },
51
- React.createElement(InternalIcon, Object.assign({}, props))));
51
+ React.createElement(InternalIcon, { ...props })));
52
52
  };
53
53
  //# sourceMappingURL=option-parts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"option-parts.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/option-parts.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport InternalIcon from '../../../icon/internal';\nimport HighlightMatch from './highlight-match';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\ninterface LabelProps {\n labelContainerRef?: React.RefObject<HTMLSpanElement>;\n labelRef?: React.RefObject<HTMLSpanElement>;\n labelId?: string;\n label?: string;\n prefix?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const Label = ({\n labelContainerRef,\n labelRef,\n labelId,\n label,\n prefix,\n highlightText,\n triggerVariant,\n}: LabelProps) => {\n return (\n <span\n id={labelId}\n ref={labelContainerRef}\n className={clsx(styles.label, analyticsSelectors.label, triggerVariant && styles['trigger-variant'])}\n >\n {prefix && (\n <span className={clsx(styles['label-prefix'], triggerVariant && styles['trigger-variant'])}>{prefix} </span>\n )}\n <HighlightMatch labelRef={labelRef} str={label} highlightText={highlightText} />\n </span>\n );\n};\n\ninterface LabelTagProps {\n labelTag?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const LabelTag = ({ labelTag, highlightText, triggerVariant }: LabelTagProps) =>\n labelTag ? (\n <span className={clsx(styles['label-tag'], triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={labelTag} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface DescriptionProps {\n description?: string;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Description = ({\n description,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: DescriptionProps) =>\n description ? (\n <span\n className={clsx(styles.description, {\n [styles['trigger-variant']]: triggerVariant,\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n <HighlightMatch str={description} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface TagsProps {\n tags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Tags = ({ tags, highlightedOption, highlightText, selectedOption, triggerVariant }: TagsProps) =>\n tags ? (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {tags.map((tag, idx) => (\n <span key={idx} className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={tag} highlightText={highlightText} />\n </span>\n ))}\n </span>\n ) : null;\n\ninterface FilteringTagProps {\n filteringTags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const FilteringTags = ({\n filteringTags,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: FilteringTagProps) => {\n if (!highlightText || !filteringTags) {\n return null;\n }\n\n const searchElement = highlightText.toLowerCase();\n\n return (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {filteringTags.map((filteringTag, key) => {\n const match = filteringTag.toLowerCase().indexOf(searchElement) !== -1;\n if (match) {\n return (\n <span className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])} key={key}>\n <HighlightMatch str={filteringTag} highlightText={highlightText} />\n </span>\n );\n }\n return null;\n })}\n </span>\n );\n};\n\nexport const OptionIcon = (props: IconProps) => {\n if (!props.name && !props.url && !props.svg) {\n return null;\n }\n\n return (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"option-parts.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/option-parts.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAWrC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,aAAa,EACb,cAAc,GACH,EAAE,EAAE;IACf,OAAO,CACL,8BACE,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,cAAc,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEnG,MAAM,IAAI,CACT,8BAAM,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,cAAc,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAAG,MAAM;gBAAS,CAC7G;QACD,oBAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,CAC3E,CACR,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAiB,EAAE,EAAE,CACrF,QAAQ,CAAC,CAAC,CAAC,CACT,8BAAM,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACrF,oBAAC,cAAc,IAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,GAAI,CAC1D,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AASX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,GACG,EAAE,EAAE,CACrB,WAAW,CAAC,CAAC,CAAC,CACZ,8BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAClC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,cAAc;QAC3C,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,iBAAiB;QACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc;KAClC,CAAC;IAEF,oBAAC,cAAc,IAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,GAAI,CAC7D,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AASX,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAa,EAAE,EAAE,CAC5G,IAAI,CAAC,CAAC,CAAC,CACL,8BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,iBAAiB;QACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc;KAClC,CAAC,IAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CACtB,8BAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACtF,oBAAC,cAAc,IAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,aAAa,GAAI,CACrD,CACR,CAAC,CACG,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;AASX,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,GACI,EAAE,EAAE;IACtB,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAElD,OAAO,CACL,8BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,iBAAiB;YACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc;SAClC,CAAC,IAED,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CACL,8BAAM,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG;gBACtF,oBAAC,cAAc,IAAC,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,GAAI,CAC9D,CACR,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACG,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,EAAE;IAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,8BAAM,SAAS,EAAE,MAAM,CAAC,IAAI;QAC1B,oBAAC,YAAY,OAAK,KAAK,GAAI,CACtB,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport InternalIcon from '../../../icon/internal';\nimport HighlightMatch from './highlight-match';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\ninterface LabelProps {\n labelContainerRef?: React.RefObject<HTMLSpanElement>;\n labelRef?: React.RefObject<HTMLSpanElement>;\n labelId?: string;\n label?: string;\n prefix?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const Label = ({\n labelContainerRef,\n labelRef,\n labelId,\n label,\n prefix,\n highlightText,\n triggerVariant,\n}: LabelProps) => {\n return (\n <span\n id={labelId}\n ref={labelContainerRef}\n className={clsx(styles.label, analyticsSelectors.label, triggerVariant && styles['trigger-variant'])}\n >\n {prefix && (\n <span className={clsx(styles['label-prefix'], triggerVariant && styles['trigger-variant'])}>{prefix} </span>\n )}\n <HighlightMatch labelRef={labelRef} str={label} highlightText={highlightText} />\n </span>\n );\n};\n\ninterface LabelTagProps {\n labelTag?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const LabelTag = ({ labelTag, highlightText, triggerVariant }: LabelTagProps) =>\n labelTag ? (\n <span className={clsx(styles['label-tag'], triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={labelTag} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface DescriptionProps {\n description?: string;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Description = ({\n description,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: DescriptionProps) =>\n description ? (\n <span\n className={clsx(styles.description, {\n [styles['trigger-variant']]: triggerVariant,\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n <HighlightMatch str={description} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface TagsProps {\n tags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Tags = ({ tags, highlightedOption, highlightText, selectedOption, triggerVariant }: TagsProps) =>\n tags ? (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {tags.map((tag, idx) => (\n <span key={idx} className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={tag} highlightText={highlightText} />\n </span>\n ))}\n </span>\n ) : null;\n\ninterface FilteringTagProps {\n filteringTags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const FilteringTags = ({\n filteringTags,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: FilteringTagProps) => {\n if (!highlightText || !filteringTags) {\n return null;\n }\n\n const searchElement = highlightText.toLowerCase();\n\n return (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {filteringTags.map((filteringTag, key) => {\n const match = filteringTag.toLowerCase().indexOf(searchElement) !== -1;\n if (match) {\n return (\n <span className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])} key={key}>\n <HighlightMatch str={filteringTag} highlightText={highlightText} />\n </span>\n );\n }\n return null;\n })}\n </span>\n );\n};\n\nexport const OptionIcon = (props: IconProps) => {\n if (!props.name && !props.url && !props.svg) {\n return null;\n }\n\n return (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n );\n};\n"]}
@@ -1,10 +1,9 @@
1
- import { __rest } from "tslib";
2
1
  import { isGroup } from './filter-options';
3
2
  export const flattenOptions = (options) => {
4
3
  const parentMap = new Map();
5
4
  const flatOptions = options.reduce((acc, option) => {
6
5
  if (isGroup(option)) {
7
- const { options } = option, rest = __rest(option, ["options"]);
6
+ const { options, ...rest } = option;
8
7
  const parentDropdownOption = { type: 'parent', option };
9
8
  const allOptionsDisabled = options.every(option => option.disabled);
10
9
  if (option.disabled || allOptionsDisabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-options.js","sourceRoot":"","sources":["../../../../../../src/internal/components/option/utils/flatten-options.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAsD,EAAE,EAAE;IACvF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE5D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACnE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,OAAO,KAAc,MAAM,EAAf,IAAI,UAAK,MAAM,EAA7B,WAAoB,CAAS,CAAC;YACpC,MAAM,oBAAoB,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACxE,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpE,IAAI,MAAM,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;gBAC1C,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,mBAAmB,GAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC7E,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtC,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YACjC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../interfaces';\nimport { isGroup } from './filter-options';\n\nexport const flattenOptions = (options: ReadonlyArray<OptionDefinition | OptionGroup>) => {\n const parentMap = new Map<DropdownOption, DropdownOption>();\n\n const flatOptions = options.reduce<DropdownOption[]>((acc, option) => {\n if (isGroup(option)) {\n const { options, ...rest } = option;\n const parentDropdownOption: DropdownOption = { type: 'parent', option };\n const allOptionsDisabled = options.every(option => option.disabled);\n if (option.disabled || allOptionsDisabled) {\n parentDropdownOption.disabled = true;\n }\n acc.push(parentDropdownOption);\n options.forEach(child => {\n const childDropdownOption: DropdownOption = { type: 'child', option: child };\n if (rest.disabled || child.disabled) {\n childDropdownOption.disabled = true;\n }\n acc.push(childDropdownOption);\n parentMap.set(childDropdownOption, parentDropdownOption);\n });\n } else {\n const dropdownOption: DropdownOption = { option };\n if (option.disabled) {\n dropdownOption.disabled = true;\n }\n acc.push(dropdownOption);\n }\n\n return acc;\n }, []);\n\n return {\n flatOptions,\n parentMap,\n };\n};\n"]}
1
+ {"version":3,"file":"flatten-options.js","sourceRoot":"","sources":["../../../../../../src/internal/components/option/utils/flatten-options.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAsD,EAAE,EAAE;IACvF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE5D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACnE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YACpC,MAAM,oBAAoB,GAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACxE,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpE,IAAI,MAAM,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;gBAC1C,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,mBAAmB,GAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC7E,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtC,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YACjC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../interfaces';\nimport { isGroup } from './filter-options';\n\nexport const flattenOptions = (options: ReadonlyArray<OptionDefinition | OptionGroup>) => {\n const parentMap = new Map<DropdownOption, DropdownOption>();\n\n const flatOptions = options.reduce<DropdownOption[]>((acc, option) => {\n if (isGroup(option)) {\n const { options, ...rest } = option;\n const parentDropdownOption: DropdownOption = { type: 'parent', option };\n const allOptionsDisabled = options.every(option => option.disabled);\n if (option.disabled || allOptionsDisabled) {\n parentDropdownOption.disabled = true;\n }\n acc.push(parentDropdownOption);\n options.forEach(child => {\n const childDropdownOption: DropdownOption = { type: 'child', option: child };\n if (rest.disabled || child.disabled) {\n childDropdownOption.disabled = true;\n }\n acc.push(childDropdownOption);\n parentMap.set(childDropdownOption, parentDropdownOption);\n });\n } else {\n const dropdownOption: DropdownOption = { option };\n if (option.disabled) {\n dropdownOption.disabled = true;\n }\n acc.push(dropdownOption);\n }\n\n return acc;\n }, []);\n\n return {\n flatOptions,\n parentMap,\n };\n};\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import React, { useEffect, useRef } from 'react';
@@ -14,8 +13,7 @@ const getItemIndex = (containerRef, event) => {
14
13
  const mouseTarget = target === null || target === void 0 ? void 0 : target.dataset.mouseTarget;
15
14
  return mouseTarget ? parseInt(mouseTarget) : -1;
16
15
  };
17
- const OptionsList = (_a, ref) => {
18
- var { open, statusType, children, nativeAttributes = {}, onKeyDown, onBlur, onFocus, onLoadMore, onMouseUp, onMouseMove, position = 'relative', role = 'listbox', tagOverride: Tag = 'div', decreaseBlockMargin = false, ariaLabel, ariaLabelledby, ariaDescribedby, embedded, stickyItemBlockSize } = _a, restProps = __rest(_a, ["open", "statusType", "children", "nativeAttributes", "onKeyDown", "onBlur", "onFocus", "onLoadMore", "onMouseUp", "onMouseMove", "position", "role", "tagOverride", "decreaseBlockMargin", "ariaLabel", "ariaLabelledby", "ariaDescribedby", "embedded", "stickyItemBlockSize"]);
16
+ const OptionsList = ({ open, statusType, children, nativeAttributes = {}, onKeyDown, onBlur, onFocus, onLoadMore, onMouseUp, onMouseMove, position = 'relative', role = 'listbox', tagOverride: Tag = 'div', decreaseBlockMargin = false, ariaLabel, ariaLabelledby, ariaDescribedby, embedded, stickyItemBlockSize, ...restProps }, ref) => {
19
17
  const baseProps = getBaseProps(restProps);
20
18
  const menuRef = useRef(null);
21
19
  const handleScroll = useStableCallback(() => {
@@ -38,7 +36,7 @@ const OptionsList = (_a, ref) => {
38
36
  [styles['options-list-embedded']]: embedded,
39
37
  });
40
38
  const mergedRef = useMergeRefs(ref, menuRef);
41
- return (React.createElement(Tag, Object.assign({}, baseProps, nativeAttributes, { className: className, ref: mergedRef, style: { position, scrollPaddingBlockStart: stickyItemBlockSize !== null && stickyItemBlockSize !== void 0 ? stickyItemBlockSize : undefined }, role: role, onScroll: handleScroll, onKeyDown: event => fireKeyboardEvent(onKeyDown, event), onMouseMove: event => onMouseMove === null || onMouseMove === void 0 ? void 0 : onMouseMove(getItemIndex(menuRef, event)), onMouseUp: event => onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(getItemIndex(menuRef, event)), onBlur: event => fireNonCancelableEvent(onBlur, { relatedTarget: event.relatedTarget }), onFocus: () => fireNonCancelableEvent(onFocus), tabIndex: embedded ? 0 : -1, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby }), open && children));
39
+ return (React.createElement(Tag, { ...baseProps, ...nativeAttributes, className: className, ref: mergedRef, style: { position, scrollPaddingBlockStart: stickyItemBlockSize !== null && stickyItemBlockSize !== void 0 ? stickyItemBlockSize : undefined }, role: role, onScroll: handleScroll, onKeyDown: event => fireKeyboardEvent(onKeyDown, event), onMouseMove: event => onMouseMove === null || onMouseMove === void 0 ? void 0 : onMouseMove(getItemIndex(menuRef, event)), onMouseUp: event => onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(getItemIndex(menuRef, event)), onBlur: event => fireNonCancelableEvent(onBlur, { relatedTarget: event.relatedTarget }), onFocus: () => fireNonCancelableEvent(onFocus), tabIndex: embedded ? 0 : -1, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby }, open && children));
42
40
  };
43
41
  export default React.forwardRef(OptionsList);
44
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/options-list/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\nimport { useMergeRefs, useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport {\n BaseKeyDetail,\n CancelableEventHandler,\n fireKeyboardEvent,\n fireNonCancelableEvent,\n NonCancelableEventHandler,\n} from '../../events';\nimport { DropdownStatusProps } from '../dropdown-status';\n\nimport styles from './styles.css.js';\n\nexport interface OptionsListProps extends BaseComponentProps {\n open?: boolean;\n statusType: DropdownStatusProps.StatusType;\n /**\n * Options list\n */\n children: React.ReactNode;\n nativeAttributes?: Record<string, any>;\n /**\n * Called when more items need to be loaded.\n */\n onLoadMore?: NonCancelableEventHandler;\n onKeyDown?: CancelableEventHandler<BaseKeyDetail>;\n onBlur?: NonCancelableEventHandler<{ relatedTarget: Node | null }>;\n onFocus?: NonCancelableEventHandler;\n onMouseUp?: (itemIndex: number) => void;\n onMouseMove?: (itemIndex: number) => void;\n position?: React.CSSProperties['position'];\n tagOverride?: 'div' | 'ul';\n role?: 'listbox' | 'list' | 'menu';\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescribedby?: string;\n decreaseBlockMargin?: boolean;\n embedded?: boolean;\n stickyItemBlockSize?: number | null;\n}\n\nconst BOTTOM_TRIGGER_OFFSET = 80;\n\nconst getItemIndex = (containerRef: React.RefObject<HTMLElement>, event: React.MouseEvent) => {\n const target = findUpUntil(\n event.target as HTMLElement,\n element => element === containerRef.current || !!element.dataset.mouseTarget\n );\n const mouseTarget = target?.dataset.mouseTarget;\n return mouseTarget ? parseInt(mouseTarget) : -1;\n};\n\nconst OptionsList = (\n {\n open,\n statusType,\n children,\n nativeAttributes = {},\n onKeyDown,\n onBlur,\n onFocus,\n onLoadMore,\n onMouseUp,\n onMouseMove,\n position = 'relative',\n role = 'listbox',\n tagOverride: Tag = 'div',\n decreaseBlockMargin = false,\n ariaLabel,\n ariaLabelledby,\n ariaDescribedby,\n embedded,\n stickyItemBlockSize,\n ...restProps\n }: OptionsListProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const baseProps = getBaseProps(restProps);\n const menuRef = useRef<HTMLElement>(null);\n\n const handleScroll = useStableCallback(() => {\n const scrollContainer = menuRef?.current;\n if (scrollContainer) {\n const bottomEdgePosition = scrollContainer.scrollTop + scrollContainer.clientHeight;\n const remainingScrollHeight = scrollContainer.scrollHeight - bottomEdgePosition;\n if (remainingScrollHeight < BOTTOM_TRIGGER_OFFSET) {\n fireNonCancelableEvent(onLoadMore);\n }\n }\n });\n\n useEffect(() => {\n if (open && statusType === 'pending') {\n handleScroll();\n }\n }, [open, statusType, handleScroll]);\n\n const className = clsx(styles['options-list'], {\n [styles['decrease-block-margin']]: decreaseBlockMargin,\n [styles['options-list-embedded']]: embedded,\n });\n\n const mergedRef = useMergeRefs(ref, menuRef);\n\n return (\n <Tag\n {...baseProps}\n {...nativeAttributes}\n className={className}\n ref={mergedRef}\n style={{ position, scrollPaddingBlockStart: stickyItemBlockSize ?? undefined }}\n role={role}\n onScroll={handleScroll}\n onKeyDown={event => fireKeyboardEvent(onKeyDown, event)}\n onMouseMove={event => onMouseMove?.(getItemIndex(menuRef, event))}\n onMouseUp={event => onMouseUp?.(getItemIndex(menuRef, event))}\n onBlur={event => fireNonCancelableEvent(onBlur, { relatedTarget: event.relatedTarget })}\n onFocus={() => fireNonCancelableEvent(onFocus)}\n tabIndex={embedded ? 0 : -1}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n >\n {open && children}\n </Tag>\n );\n};\n\nexport default React.forwardRef(OptionsList);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/options-list/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAEhG,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAGL,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,cAAc,CAAC;AAGtB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AA8BrC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,YAAY,GAAG,CAAC,YAA0C,EAAE,KAAuB,EAAE,EAAE;IAC3F,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,CAAC,MAAqB,EAC3B,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAC7E,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,WAAW,CAAC;IAChD,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,EACE,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,gBAAgB,GAAG,EAAE,EACrB,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,GAAG,UAAU,EACrB,IAAI,GAAG,SAAS,EAChB,WAAW,EAAE,GAAG,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,SAAS,EACT,cAAc,EACd,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,GAAG,SAAS,EACK,EACnB,GAA8B,EAC9B,EAAE;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,EAAE;QAC1C,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC;QACzC,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,kBAAkB,GAAG,eAAe,CAAC,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC;YACpF,MAAM,qBAAqB,GAAG,eAAe,CAAC,YAAY,GAAG,kBAAkB,CAAC;YAChF,IAAI,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;gBAClD,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;QAC7C,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,mBAAmB;QACtD,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ;KAC5C,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE7C,OAAO,CACL,oBAAC,GAAG,OACE,SAAS,KACT,gBAAgB,EACpB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,SAAS,EAAE,EAC9E,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EACvD,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EACjE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAC7D,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAC9C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBACf,SAAS,qBACJ,cAAc,sBACb,eAAe,IAEhC,IAAI,IAAI,QAAQ,CACb,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\nimport { useMergeRefs, useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport {\n BaseKeyDetail,\n CancelableEventHandler,\n fireKeyboardEvent,\n fireNonCancelableEvent,\n NonCancelableEventHandler,\n} from '../../events';\nimport { DropdownStatusProps } from '../dropdown-status';\n\nimport styles from './styles.css.js';\n\nexport interface OptionsListProps extends BaseComponentProps {\n open?: boolean;\n statusType: DropdownStatusProps.StatusType;\n /**\n * Options list\n */\n children: React.ReactNode;\n nativeAttributes?: Record<string, any>;\n /**\n * Called when more items need to be loaded.\n */\n onLoadMore?: NonCancelableEventHandler;\n onKeyDown?: CancelableEventHandler<BaseKeyDetail>;\n onBlur?: NonCancelableEventHandler<{ relatedTarget: Node | null }>;\n onFocus?: NonCancelableEventHandler;\n onMouseUp?: (itemIndex: number) => void;\n onMouseMove?: (itemIndex: number) => void;\n position?: React.CSSProperties['position'];\n tagOverride?: 'div' | 'ul';\n role?: 'listbox' | 'list' | 'menu';\n ariaLabel?: string;\n ariaLabelledby?: string;\n ariaDescribedby?: string;\n decreaseBlockMargin?: boolean;\n embedded?: boolean;\n stickyItemBlockSize?: number | null;\n}\n\nconst BOTTOM_TRIGGER_OFFSET = 80;\n\nconst getItemIndex = (containerRef: React.RefObject<HTMLElement>, event: React.MouseEvent) => {\n const target = findUpUntil(\n event.target as HTMLElement,\n element => element === containerRef.current || !!element.dataset.mouseTarget\n );\n const mouseTarget = target?.dataset.mouseTarget;\n return mouseTarget ? parseInt(mouseTarget) : -1;\n};\n\nconst OptionsList = (\n {\n open,\n statusType,\n children,\n nativeAttributes = {},\n onKeyDown,\n onBlur,\n onFocus,\n onLoadMore,\n onMouseUp,\n onMouseMove,\n position = 'relative',\n role = 'listbox',\n tagOverride: Tag = 'div',\n decreaseBlockMargin = false,\n ariaLabel,\n ariaLabelledby,\n ariaDescribedby,\n embedded,\n stickyItemBlockSize,\n ...restProps\n }: OptionsListProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const baseProps = getBaseProps(restProps);\n const menuRef = useRef<HTMLElement>(null);\n\n const handleScroll = useStableCallback(() => {\n const scrollContainer = menuRef?.current;\n if (scrollContainer) {\n const bottomEdgePosition = scrollContainer.scrollTop + scrollContainer.clientHeight;\n const remainingScrollHeight = scrollContainer.scrollHeight - bottomEdgePosition;\n if (remainingScrollHeight < BOTTOM_TRIGGER_OFFSET) {\n fireNonCancelableEvent(onLoadMore);\n }\n }\n });\n\n useEffect(() => {\n if (open && statusType === 'pending') {\n handleScroll();\n }\n }, [open, statusType, handleScroll]);\n\n const className = clsx(styles['options-list'], {\n [styles['decrease-block-margin']]: decreaseBlockMargin,\n [styles['options-list-embedded']]: embedded,\n });\n\n const mergedRef = useMergeRefs(ref, menuRef);\n\n return (\n <Tag\n {...baseProps}\n {...nativeAttributes}\n className={className}\n ref={mergedRef}\n style={{ position, scrollPaddingBlockStart: stickyItemBlockSize ?? undefined }}\n role={role}\n onScroll={handleScroll}\n onKeyDown={event => fireKeyboardEvent(onKeyDown, event)}\n onMouseMove={event => onMouseMove?.(getItemIndex(menuRef, event))}\n onMouseUp={event => onMouseUp?.(getItemIndex(menuRef, event))}\n onBlur={event => fireNonCancelableEvent(onBlur, { relatedTarget: event.relatedTarget })}\n onFocus={() => fireNonCancelableEvent(onFocus)}\n tabIndex={embedded ? 0 : -1}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n >\n {open && children}\n </Tag>\n );\n};\n\nexport default React.forwardRef(OptionsList);\n"]}
@@ -18,6 +18,6 @@ import styles from './styles.css.js';
18
18
  * ```
19
19
  */
20
20
  export default function ScreenreaderOnly(props) {
21
- return React.createElement("span", Object.assign({}, props, { className: clsx(styles.root, props.className) }));
21
+ return React.createElement("span", { ...props, className: clsx(styles.root, props.className) });
22
22
  }
23
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAQrC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAA4B;IACnE,OAAO,8CAAU,KAAK,IAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;AAC5E,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport styles from './styles.css.js';\n\ninterface ScreenreaderOnlyProps {\n id?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Makes content now shown on a screen but still announced by screen-reader users.\n * The component is suitable when the aria-label cannot be used, e.g. to avoid elemnts being announced as \"blank\".\n *\n * To exclude screenreader-only content use `:not(.${screenreaderOnlyStyles.root})` selector, for example:\n *\n * ```\n * import screenreaderOnlyStyles from '~internal/components/screenreader-only/styles.css.js'\n *\n * let visibleContent = wrapper.find(`${styles.label}`).find(`:not(.${screenreaderOnlyStyles.root})`).getElement().textContent\n *\n * let screenreaderContent = wrapper.find(`${styles.label}`).find(`.${screenreaderOnlyStyles.root}`).getElement().textContent\n * ```\n */\nexport default function ScreenreaderOnly(props: ScreenreaderOnlyProps) {\n return <span {...props} className={clsx(styles.root, props.className)} />;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/screenreader-only/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAQrC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,KAA4B;IACnE,OAAO,iCAAU,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,GAAI,CAAC;AAC5E,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport styles from './styles.css.js';\n\ninterface ScreenreaderOnlyProps {\n id?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Makes content now shown on a screen but still announced by screen-reader users.\n * The component is suitable when the aria-label cannot be used, e.g. to avoid elemnts being announced as \"blank\".\n *\n * To exclude screenreader-only content use `:not(.${screenreaderOnlyStyles.root})` selector, for example:\n *\n * ```\n * import screenreaderOnlyStyles from '~internal/components/screenreader-only/styles.css.js'\n *\n * let visibleContent = wrapper.find(`${styles.label}`).find(`:not(.${screenreaderOnlyStyles.root})`).getElement().textContent\n *\n * let screenreaderContent = wrapper.find(`${styles.label}`).find(`.${screenreaderOnlyStyles.root}`).getElement().textContent\n * ```\n */\nexport default function ScreenreaderOnly(props: ScreenreaderOnlyProps) {\n return <span {...props} className={clsx(styles.root, props.className)} />;\n}\n"]}
@@ -1,10 +1,8 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { __rest } from "tslib";
4
3
  import optionAnalyticsSelectors from './../../option/analytics-metadata/styles.css.js';
5
4
  import analyticsSelectors from './styles.css.js';
6
- export const getAnalyticsSelectActionMetadata = (_a) => {
7
- var { isChild, value } = _a, restProps = __rest(_a, ["isChild", "value"]);
5
+ export const getAnalyticsSelectActionMetadata = ({ isChild, value, ...restProps }) => {
8
6
  const dataAttributes = restProps;
9
7
  const analyticsMetadata = {
10
8
  action: 'select',
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAKtC,OAAO,wBAAwB,MAAM,iDAAiD,CAAC;AACvF,OAAO,kBAAkB,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAIlB,EAAkD,EAAE;QAJlC,EAC/C,OAAO,EACP,KAAK,OAEwB,EAD1B,SAAS,cAHmC,oBAIhD,CADa;IAEZ,MAAM,cAAc,GAAG,SAA+B,CAAC;IAEvD,MAAM,iBAAiB,GAAmD;QACxE,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC,IAAI,wBAAwB,CAAC,KAAK,EAAE,EAAE,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;aAC7F;SACF;KACF,CAAC;IAEF,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IACE,CAAC,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACxF,cAAc,CAAC,kBAAkB,CAAC,EAClC,CAAC;QACD,QAAQ,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACpI,CAAC;SAAM,IAAI,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7C,QAAQ,GAAG,GAAG,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,iBAAiB,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,iBAAiB,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,iBAAiB,CAAC,MAAM,CAAC,UAAU,GAAG;YACpC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI,kBAAkB,CAAC,MAAM,sBAAsB,cAAc,CAAC,kBAAkB,CAAC,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;SAC7I,CAAC;IACJ,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ItemDataAttributes, SelectableItemProps } from '../interfaces';\nimport { GeneratedAnalyticsMetadataSelectableItemSelect } from './interfaces';\n\nimport optionAnalyticsSelectors from './../../option/analytics-metadata/styles.css.js';\nimport analyticsSelectors from './styles.css.js';\n\nexport const getAnalyticsSelectActionMetadata = ({\n isChild,\n value,\n ...restProps\n}: Partial<SelectableItemProps>): GeneratedAnalyticsMetadataSelectableItemSelect => {\n const dataAttributes = restProps as ItemDataAttributes;\n\n const analyticsMetadata: GeneratedAnalyticsMetadataSelectableItemSelect = {\n action: 'select',\n detail: {\n label: {\n selector: [`.${optionAnalyticsSelectors.label}`, `.${analyticsSelectors['option-content']}`],\n },\n },\n };\n\n let position = undefined;\n if (\n (isChild && dataAttributes['data-group-index'] && dataAttributes['data-in-group-index']) ||\n dataAttributes['data-child-index']\n ) {\n position = `${dataAttributes['data-group-index']},${dataAttributes['data-in-group-index'] || dataAttributes['data-child-index']}`;\n } else if (dataAttributes['data-test-index']) {\n position = `${dataAttributes['data-test-index']}`;\n }\n if (position) {\n analyticsMetadata.detail.position = position;\n }\n if (value) {\n analyticsMetadata.detail.value = value;\n }\n if (isChild) {\n analyticsMetadata.detail.groupLabel = {\n root: 'body',\n selector: `.${analyticsSelectors.parent}[data-group-index=\"${dataAttributes['data-group-index']}\"] .${analyticsSelectors['option-content']}`,\n };\n }\n return analyticsMetadata;\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAKtC,OAAO,wBAAwB,MAAM,iDAAiD,CAAC;AACvF,OAAO,kBAAkB,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,OAAO,EACP,KAAK,EACL,GAAG,SAAS,EACiB,EAAkD,EAAE;IACjF,MAAM,cAAc,GAAG,SAA+B,CAAC;IAEvD,MAAM,iBAAiB,GAAmD;QACxE,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC,IAAI,wBAAwB,CAAC,KAAK,EAAE,EAAE,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;aAC7F;SACF;KACF,CAAC;IAEF,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IACE,CAAC,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACxF,cAAc,CAAC,kBAAkB,CAAC,EAClC,CAAC;QACD,QAAQ,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACpI,CAAC;SAAM,IAAI,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7C,QAAQ,GAAG,GAAG,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,iBAAiB,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,iBAAiB,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,iBAAiB,CAAC,MAAM,CAAC,UAAU,GAAG;YACpC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI,kBAAkB,CAAC,MAAM,sBAAsB,cAAc,CAAC,kBAAkB,CAAC,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;SAC7I,CAAC;IACJ,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ItemDataAttributes, SelectableItemProps } from '../interfaces';\nimport { GeneratedAnalyticsMetadataSelectableItemSelect } from './interfaces';\n\nimport optionAnalyticsSelectors from './../../option/analytics-metadata/styles.css.js';\nimport analyticsSelectors from './styles.css.js';\n\nexport const getAnalyticsSelectActionMetadata = ({\n isChild,\n value,\n ...restProps\n}: Partial<SelectableItemProps>): GeneratedAnalyticsMetadataSelectableItemSelect => {\n const dataAttributes = restProps as ItemDataAttributes;\n\n const analyticsMetadata: GeneratedAnalyticsMetadataSelectableItemSelect = {\n action: 'select',\n detail: {\n label: {\n selector: [`.${optionAnalyticsSelectors.label}`, `.${analyticsSelectors['option-content']}`],\n },\n },\n };\n\n let position = undefined;\n if (\n (isChild && dataAttributes['data-group-index'] && dataAttributes['data-in-group-index']) ||\n dataAttributes['data-child-index']\n ) {\n position = `${dataAttributes['data-group-index']},${dataAttributes['data-in-group-index'] || dataAttributes['data-child-index']}`;\n } else if (dataAttributes['data-test-index']) {\n position = `${dataAttributes['data-test-index']}`;\n }\n if (position) {\n analyticsMetadata.detail.position = position;\n }\n if (value) {\n analyticsMetadata.detail.value = value;\n }\n if (isChild) {\n analyticsMetadata.detail.groupLabel = {\n root: 'body',\n selector: `.${analyticsSelectors.parent}[data-group-index=\"${dataAttributes['data-group-index']}\"] .${analyticsSelectors['option-content']}`,\n };\n }\n return analyticsMetadata;\n};\n"]}
@@ -1,4 +1,3 @@
1
- import { __rest } from "tslib";
2
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
2
  // SPDX-License-Identifier: Apache-2.0
4
3
  import React, { useLayoutEffect, useRef } from 'react';
@@ -9,10 +8,9 @@ import { getBaseProps } from '../../base-component';
9
8
  import { getAnalyticsSelectActionMetadata } from './analytics-metadata/utils';
10
9
  import analyticsSelectors from './analytics-metadata/styles.css.js';
11
10
  import styles from './styles.css.js';
12
- const SelectableItem = (_a, ref) => {
13
- var { children: content, ariaSelected, ariaChecked, selected, highlighted, disabled, hasBackground, isParent, isChild, isSelectAll, virtualPosition, padBottom, isNextSelected, isPreviousSelected, useInteractiveGroups, screenReaderContent, ariaPosinset, ariaSetsize, highlightType, value, sticky, afterHeader, withScrollbar } = _a, restProps = __rest(_a, ["children", "ariaSelected", "ariaChecked", "selected", "highlighted", "disabled", "hasBackground", "isParent", "isChild", "isSelectAll", "virtualPosition", "padBottom", "isNextSelected", "isPreviousSelected", "useInteractiveGroups", "screenReaderContent", "ariaPosinset", "ariaSetsize", "highlightType", "value", "sticky", "afterHeader", "withScrollbar"]);
11
+ const SelectableItem = ({ children: content, ariaSelected, ariaChecked, selected, highlighted, disabled, hasBackground, isParent, isChild, isSelectAll, virtualPosition, padBottom, isNextSelected, isPreviousSelected, useInteractiveGroups, screenReaderContent, ariaPosinset, ariaSetsize, highlightType, value, sticky, afterHeader, withScrollbar, ...restProps }, ref) => {
14
12
  const isVisualRefresh = useVisualRefresh();
15
- const _b = getBaseProps(restProps), { className } = _b, rest = __rest(_b, ["className"]);
13
+ const { className, ...rest } = getBaseProps(restProps);
16
14
  const classNames = clsx(className, styles['selectable-item'], {
17
15
  [styles.selected]: selected,
18
16
  [styles.highlighted]: highlighted,
@@ -77,9 +75,9 @@ const SelectableItem = (_a, ref) => {
77
75
  a11yProperties['aria-describedby'] = restProps.ariaDescribedby;
78
76
  }
79
77
  }
80
- return (React.createElement("div", Object.assign({ className: classNames, style: style }, a11yProperties, rest, (isParent || disabled
81
- ? {}
82
- : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata(Object.assign({ isChild, value }, restProps))))),
78
+ return (React.createElement("div", { className: classNames, style: style, ...a11yProperties, ...rest, ...(isParent || disabled
79
+ ? {}
80
+ : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata({ isChild, value, ...restProps }))) },
83
81
  React.createElement("div", { className: clsx(styles['option-content'], analyticsSelectors['option-content']), ref: contentRef }, content),
84
82
  React.createElement("div", { className: styles['measure-strut'], ref: ref }),
85
83
  React.createElement("div", { className: styles['screenreader-content'], ref: screenReaderContentRef })));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useVisualRefresh } from '../../../internal/hooks/use-visual-mode';\nimport { getBaseProps } from '../../base-component';\nimport { getAnalyticsSelectActionMetadata } from './analytics-metadata/utils';\nimport { SelectableItemProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { SelectableItemProps };\n\nconst SelectableItem = (\n {\n children: content,\n ariaSelected,\n ariaChecked,\n selected,\n highlighted,\n disabled,\n hasBackground,\n isParent,\n isChild,\n isSelectAll,\n virtualPosition,\n padBottom,\n isNextSelected,\n isPreviousSelected,\n useInteractiveGroups,\n screenReaderContent,\n ariaPosinset,\n ariaSetsize,\n highlightType,\n value,\n sticky,\n afterHeader,\n withScrollbar,\n ...restProps\n }: SelectableItemProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const isVisualRefresh = useVisualRefresh();\n const { className, ...rest } = getBaseProps(restProps);\n const classNames = clsx(className, styles['selectable-item'], {\n [styles.selected]: selected,\n [styles.highlighted]: highlighted,\n [styles['has-background']]: hasBackground,\n [styles.parent]: isParent,\n [analyticsSelectors.parent]: isParent,\n [styles.child]: isChild,\n [styles['select-all']]: isSelectAll,\n [styles['is-keyboard']]: highlightType === 'keyboard',\n [styles.disabled]: disabled,\n [styles.virtual]: virtualPosition !== undefined && !sticky,\n [styles['pad-bottom']]: padBottom,\n [styles['next-item-selected']]: isNextSelected,\n [styles['previous-item-selected']]: isPreviousSelected,\n [styles.interactiveGroups]: useInteractiveGroups,\n [styles.sticky]: sticky,\n [styles['after-header']]: !!afterHeader,\n [styles['with-scrollbar']]: withScrollbar,\n [styles['visual-refresh']]: isVisualRefresh,\n });\n\n const contentRef = useRef<HTMLDivElement>(null);\n const screenReaderContentRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n // the state of aria-hidden and announcement is not set back because NVDA+Firefox would announce\n // the item which lost highlight\n // set aria-hidden true when there is announcement content, so that screen reader still announce\n // meaningful content when navigate with screen reader cursor\n // imperatively update to avoid announcement made multiple times when content updates\n if (highlighted && screenReaderContent) {\n if (contentRef.current) {\n contentRef.current.setAttribute('aria-hidden', 'true');\n }\n if (screenReaderContentRef.current) {\n screenReaderContentRef.current.textContent = screenReaderContent;\n }\n }\n }, [highlighted, screenReaderContent, contentRef, screenReaderContentRef]);\n\n const style =\n virtualPosition !== undefined\n ? {\n transform: `translateY(${virtualPosition}px)`,\n }\n : undefined;\n\n const a11yProperties: Record<string, string | number | boolean | undefined> = {};\n\n if (isParent && ariaChecked === undefined) {\n a11yProperties.role = 'presentation';\n } else {\n a11yProperties.role = 'option';\n a11yProperties['aria-disabled'] = disabled;\n\n if (ariaSelected !== undefined) {\n a11yProperties['aria-selected'] = ariaSelected;\n }\n\n // Safari+VO needs aria-checked for multi-selection. Otherwise it only announces selected option even though another option is highlighted.\n if (ariaChecked !== undefined) {\n a11yProperties['aria-checked'] = ariaChecked;\n }\n\n if (ariaPosinset && ariaSetsize) {\n a11yProperties['aria-posinset'] = ariaPosinset;\n a11yProperties['aria-setsize'] = ariaSetsize;\n }\n\n if (restProps.ariaDescribedby) {\n a11yProperties['aria-describedby'] = restProps.ariaDescribedby;\n }\n }\n\n return (\n <div\n className={classNames}\n style={style}\n {...a11yProperties}\n {...rest}\n {...(isParent || disabled\n ? {}\n : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata({ isChild, value, ...restProps })))}\n >\n <div className={clsx(styles['option-content'], analyticsSelectors['option-content'])} ref={contentRef}>\n {content}\n </div>\n <div className={styles['measure-strut']} ref={ref} />\n <div className={styles['screenreader-content']} ref={screenReaderContentRef}></div>\n </div>\n );\n};\n\nexport default React.forwardRef(SelectableItem);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useVisualRefresh } from '../../../internal/hooks/use-visual-mode';\nimport { getBaseProps } from '../../base-component';\nimport { getAnalyticsSelectActionMetadata } from './analytics-metadata/utils';\nimport { SelectableItemProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { SelectableItemProps };\n\nconst SelectableItem = (\n {\n children: content,\n ariaSelected,\n ariaChecked,\n selected,\n highlighted,\n disabled,\n hasBackground,\n isParent,\n isChild,\n isSelectAll,\n virtualPosition,\n padBottom,\n isNextSelected,\n isPreviousSelected,\n useInteractiveGroups,\n screenReaderContent,\n ariaPosinset,\n ariaSetsize,\n highlightType,\n value,\n sticky,\n afterHeader,\n withScrollbar,\n ...restProps\n }: SelectableItemProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const isVisualRefresh = useVisualRefresh();\n const { className, ...rest } = getBaseProps(restProps);\n const classNames = clsx(className, styles['selectable-item'], {\n [styles.selected]: selected,\n [styles.highlighted]: highlighted,\n [styles['has-background']]: hasBackground,\n [styles.parent]: isParent,\n [analyticsSelectors.parent]: isParent,\n [styles.child]: isChild,\n [styles['select-all']]: isSelectAll,\n [styles['is-keyboard']]: highlightType === 'keyboard',\n [styles.disabled]: disabled,\n [styles.virtual]: virtualPosition !== undefined && !sticky,\n [styles['pad-bottom']]: padBottom,\n [styles['next-item-selected']]: isNextSelected,\n [styles['previous-item-selected']]: isPreviousSelected,\n [styles.interactiveGroups]: useInteractiveGroups,\n [styles.sticky]: sticky,\n [styles['after-header']]: !!afterHeader,\n [styles['with-scrollbar']]: withScrollbar,\n [styles['visual-refresh']]: isVisualRefresh,\n });\n\n const contentRef = useRef<HTMLDivElement>(null);\n const screenReaderContentRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n // the state of aria-hidden and announcement is not set back because NVDA+Firefox would announce\n // the item which lost highlight\n // set aria-hidden true when there is announcement content, so that screen reader still announce\n // meaningful content when navigate with screen reader cursor\n // imperatively update to avoid announcement made multiple times when content updates\n if (highlighted && screenReaderContent) {\n if (contentRef.current) {\n contentRef.current.setAttribute('aria-hidden', 'true');\n }\n if (screenReaderContentRef.current) {\n screenReaderContentRef.current.textContent = screenReaderContent;\n }\n }\n }, [highlighted, screenReaderContent, contentRef, screenReaderContentRef]);\n\n const style =\n virtualPosition !== undefined\n ? {\n transform: `translateY(${virtualPosition}px)`,\n }\n : undefined;\n\n const a11yProperties: Record<string, string | number | boolean | undefined> = {};\n\n if (isParent && ariaChecked === undefined) {\n a11yProperties.role = 'presentation';\n } else {\n a11yProperties.role = 'option';\n a11yProperties['aria-disabled'] = disabled;\n\n if (ariaSelected !== undefined) {\n a11yProperties['aria-selected'] = ariaSelected;\n }\n\n // Safari+VO needs aria-checked for multi-selection. Otherwise it only announces selected option even though another option is highlighted.\n if (ariaChecked !== undefined) {\n a11yProperties['aria-checked'] = ariaChecked;\n }\n\n if (ariaPosinset && ariaSetsize) {\n a11yProperties['aria-posinset'] = ariaPosinset;\n a11yProperties['aria-setsize'] = ariaSetsize;\n }\n\n if (restProps.ariaDescribedby) {\n a11yProperties['aria-describedby'] = restProps.ariaDescribedby;\n }\n }\n\n return (\n <div\n className={classNames}\n style={style}\n {...a11yProperties}\n {...rest}\n {...(isParent || disabled\n ? {}\n : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata({ isChild, value, ...restProps })))}\n >\n <div className={clsx(styles['option-content'], analyticsSelectors['option-content'])} ref={contentRef}>\n {content}\n </div>\n <div className={styles['measure-strut']} ref={ref} />\n <div className={styles['screenreader-content']} ref={screenReaderContentRef}></div>\n </div>\n );\n};\n\nexport default React.forwardRef(SelectableItem);\n"]}