@cloudscape-design/components-themeable 3.0.768 → 3.0.770

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 (81) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/breadcrumb-group/item/styles.scss +10 -15
  3. package/lib/internal/scss/breadcrumb-group/styles.scss +15 -35
  4. package/lib/internal/scss/internal/components/button-trigger/styles.scss +7 -1
  5. package/lib/internal/scss/side-navigation/analytics-metadata/styles.scss +9 -0
  6. package/lib/internal/template/breadcrumb-group/implementation.d.ts.map +1 -1
  7. package/lib/internal/template/breadcrumb-group/implementation.js +61 -12
  8. package/lib/internal/template/breadcrumb-group/implementation.js.map +1 -1
  9. package/lib/internal/template/breadcrumb-group/interfaces.d.ts +3 -2
  10. package/lib/internal/template/breadcrumb-group/interfaces.d.ts.map +1 -1
  11. package/lib/internal/template/breadcrumb-group/interfaces.js.map +1 -1
  12. package/lib/internal/template/breadcrumb-group/item/funnel.d.ts +1 -0
  13. package/lib/internal/template/breadcrumb-group/item/funnel.d.ts.map +1 -1
  14. package/lib/internal/template/breadcrumb-group/item/funnel.js +3 -3
  15. package/lib/internal/template/breadcrumb-group/item/funnel.js.map +1 -1
  16. package/lib/internal/template/breadcrumb-group/item/item.d.ts +1 -1
  17. package/lib/internal/template/breadcrumb-group/item/item.d.ts.map +1 -1
  18. package/lib/internal/template/breadcrumb-group/item/item.js +19 -38
  19. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  20. package/lib/internal/template/breadcrumb-group/item/styles.css.js +8 -9
  21. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +33 -32
  22. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +8 -9
  23. package/lib/internal/template/breadcrumb-group/styles.css.js +8 -7
  24. package/lib/internal/template/breadcrumb-group/styles.scoped.css +17 -57
  25. package/lib/internal/template/breadcrumb-group/styles.selectors.js +8 -7
  26. package/lib/internal/template/breadcrumb-group/utils.d.ts +5 -0
  27. package/lib/internal/template/breadcrumb-group/utils.d.ts.map +1 -1
  28. package/lib/internal/template/breadcrumb-group/utils.js +56 -0
  29. package/lib/internal/template/breadcrumb-group/utils.js.map +1 -1
  30. package/lib/internal/template/file-upload/internal.js +5 -3
  31. package/lib/internal/template/file-upload/internal.js.map +1 -1
  32. package/lib/internal/template/internal/components/button-trigger/index.d.ts +1 -1
  33. package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
  34. package/lib/internal/template/internal/components/button-trigger/index.js +1 -1
  35. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  36. package/lib/internal/template/internal/components/button-trigger/styles.css.js +13 -11
  37. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +30 -26
  38. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +13 -11
  39. package/lib/internal/template/internal/environment.js +1 -1
  40. package/lib/internal/template/internal/environment.json +1 -1
  41. package/lib/internal/template/internal/hooks/use-list-focus-controller.d.ts +3 -3
  42. package/lib/internal/template/internal/hooks/use-list-focus-controller.d.ts.map +1 -1
  43. package/lib/internal/template/internal/hooks/use-list-focus-controller.js +7 -8
  44. package/lib/internal/template/internal/hooks/use-list-focus-controller.js.map +1 -1
  45. package/lib/internal/template/property-filter/filtering-token/index.d.ts.map +1 -1
  46. package/lib/internal/template/property-filter/filtering-token/index.js +6 -4
  47. package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
  48. package/lib/internal/template/property-filter/interfaces.d.ts +4 -2
  49. package/lib/internal/template/property-filter/interfaces.d.ts.map +1 -1
  50. package/lib/internal/template/property-filter/interfaces.js.map +1 -1
  51. package/lib/internal/template/property-filter/internal.d.ts.map +1 -1
  52. package/lib/internal/template/property-filter/internal.js +11 -3
  53. package/lib/internal/template/property-filter/internal.js.map +1 -1
  54. package/lib/internal/template/property-filter/token-editor.d.ts.map +1 -1
  55. package/lib/internal/template/property-filter/token-editor.js +5 -3
  56. package/lib/internal/template/property-filter/token-editor.js.map +1 -1
  57. package/lib/internal/template/select/internal.d.ts +1 -1
  58. package/lib/internal/template/select/internal.d.ts.map +1 -1
  59. package/lib/internal/template/select/internal.js +1 -1
  60. package/lib/internal/template/select/internal.js.map +1 -1
  61. package/lib/internal/template/select/parts/trigger.d.ts +1 -1
  62. package/lib/internal/template/select/parts/trigger.d.ts.map +1 -1
  63. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  64. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.d.ts +19 -0
  65. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -0
  66. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.js +4 -0
  67. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.js.map +1 -0
  68. package/lib/internal/template/side-navigation/analytics-metadata/styles.css.js +7 -0
  69. package/lib/internal/template/side-navigation/analytics-metadata/styles.scoped.css +8 -0
  70. package/lib/internal/template/side-navigation/analytics-metadata/styles.selectors.js +8 -0
  71. package/lib/internal/template/side-navigation/index.d.ts.map +1 -1
  72. package/lib/internal/template/side-navigation/index.js +10 -1
  73. package/lib/internal/template/side-navigation/index.js.map +1 -1
  74. package/lib/internal/template/side-navigation/parts.d.ts +2 -1
  75. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  76. package/lib/internal/template/side-navigation/parts.js +42 -21
  77. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  78. package/lib/internal/template/token-group/internal.d.ts.map +1 -1
  79. package/lib/internal/template/token-group/internal.js +4 -2
  80. package/lib/internal/template/token-group/internal.js.map +1 -1
  81. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/breadcrumb-group/item/item.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, useState } from 'react';\nimport clsx from 'clsx';\n\nimport InternalIcon from '../../icon/internal';\nimport Tooltip from '../../internal/components/tooltip';\nimport { fireCancelableEvent, isPlainLeftClick } from '../../internal/events';\nimport { BreadcrumbGroupProps, BreadcrumbItemProps } from '../interfaces';\nimport { getEventDetail } from '../utils';\nimport { FunnelBreadcrumbItem } from './funnel';\n\nimport styles from './styles.css.js';\n\ntype BreadcrumbItemWithPopoverProps<T extends BreadcrumbGroupProps.Item> = React.HTMLAttributes<HTMLElement> & {\n item: T;\n isLast: boolean;\n anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement>;\n};\n\nconst BreadcrumbItemWithPopover = <T extends BreadcrumbGroupProps.Item>({\n item,\n isLast,\n anchorAttributes,\n ...itemAttributes\n}: BreadcrumbItemWithPopoverProps<T>) => {\n const [showPopover, setShowPopover] = useState(false);\n const textRef = useRef<HTMLElement>(null);\n const virtualTextRef = useRef<HTMLElement>(null);\n\n const isTruncated = (textRef: React.RefObject<HTMLElement>, virtualTextRef: React.RefObject<HTMLElement>) => {\n if (!textRef || !virtualTextRef || !textRef.current || !virtualTextRef.current) {\n return false;\n }\n const virtualTextWidth = virtualTextRef.current.getBoundingClientRect().width;\n const textWidth = textRef.current.getBoundingClientRect().width;\n if (virtualTextWidth > textWidth) {\n return true;\n }\n return false;\n };\n\n const popoverContent = <Tooltip trackRef={textRef} value={item.text} />;\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setShowPopover(false);\n }\n };\n if (showPopover) {\n document.addEventListener('keydown', onKeyDown);\n }\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n }, [showPopover]);\n\n return (\n <>\n <Item\n isLast={isLast}\n {...itemAttributes}\n onFocus={() => {\n isTruncated(textRef, virtualTextRef) && setShowPopover(true);\n }}\n onBlur={() => setShowPopover(false)}\n onMouseEnter={() => {\n isTruncated(textRef, virtualTextRef) && setShowPopover(true);\n }}\n onMouseLeave={() => setShowPopover(false)}\n anchorAttributes={anchorAttributes}\n >\n <FunnelBreadcrumbItem ref={textRef} text={item.text} last={isLast} />\n <span className={styles['virtual-item']} ref={virtualTextRef}>\n {item.text}\n </span>\n </Item>\n {showPopover && popoverContent}\n </>\n );\n};\n\ntype ItemProps = React.HTMLAttributes<HTMLElement> & {\n anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement>;\n isLast: boolean;\n};\nconst Item = ({ anchorAttributes, children, isLast, ...itemAttributes }: ItemProps) =>\n isLast ? (\n <span {...itemAttributes}>{children}</span>\n ) : (\n <a {...itemAttributes} {...anchorAttributes}>\n {children}\n </a>\n );\n\nexport function BreadcrumbItem<T extends BreadcrumbGroupProps.Item>({\n item,\n onClick,\n onFollow,\n isDisplayed,\n isLast = false,\n isCompressed = false,\n}: BreadcrumbItemProps<T>) {\n const preventDefault = (event: React.MouseEvent) => event.preventDefault();\n const onClickHandler = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireCancelableEvent(onFollow, getEventDetail(item), event);\n }\n fireCancelableEvent(onClick, getEventDetail(item), event);\n };\n\n const itemAttributes: React.HTMLAttributes<HTMLElement> = {\n className: clsx(styles.anchor, { [styles.compressed]: isCompressed }),\n };\n const anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement> = {\n href: item.href || '#',\n onClick: isLast ? preventDefault : onClickHandler,\n };\n\n return (\n <div className={clsx(styles.breadcrumb, isLast && styles.last)}>\n {isDisplayed && isCompressed ? (\n <BreadcrumbItemWithPopover\n item={item}\n isLast={isLast}\n anchorAttributes={anchorAttributes}\n {...itemAttributes}\n />\n ) : (\n <Item isLast={isLast} anchorAttributes={anchorAttributes} {...itemAttributes}>\n <FunnelBreadcrumbItem text={item.text} last={isLast} />\n </Item>\n )}\n {!isLast ? (\n <span className={styles.icon}>\n <InternalIcon name=\"angle-right\" />\n </span>\n ) : null}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/breadcrumb-group/item/item.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, useState } from 'react';\nimport clsx from 'clsx';\n\nimport InternalIcon from '../../icon/internal';\nimport Tooltip from '../../internal/components/tooltip';\nimport { registerTooltip } from '../../internal/components/tooltip/registry';\nimport { fireCancelableEvent, isPlainLeftClick } from '../../internal/events';\nimport { BreadcrumbGroupProps, BreadcrumbItemProps } from '../interfaces';\nimport { getEventDetail } from '../utils';\nimport { FunnelBreadcrumbItem } from './funnel';\n\nimport styles from './styles.css.js';\n\ninterface BreadcrumbItemWithPopoverProps<T extends BreadcrumbGroupProps.Item> {\n item: T;\n isLast: boolean;\n anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement>;\n}\n\nconst BreadcrumbItemWithPopover = <T extends BreadcrumbGroupProps.Item>({\n item,\n isLast,\n anchorAttributes,\n}: BreadcrumbItemWithPopoverProps<T>) => {\n const [showPopover, setShowPopover] = useState(false);\n const textRef = useRef<HTMLElement>(null);\n const popoverContent = <Tooltip trackRef={textRef} value={item.text} size=\"medium\" />;\n\n useEffect(() => {\n if (showPopover) {\n return registerTooltip(() => {\n setShowPopover(false);\n });\n }\n }, [showPopover]);\n\n return (\n <>\n <Item\n isLast={isLast}\n onFocus={() => {\n setShowPopover(true);\n }}\n onBlur={() => setShowPopover(false)}\n onMouseEnter={() => {\n setShowPopover(true);\n }}\n onMouseLeave={() => setShowPopover(false)}\n anchorAttributes={anchorAttributes}\n {...(isLast ? { tabIndex: 0 } : {})}\n >\n <FunnelBreadcrumbItem ref={textRef} text={item.text} last={isLast} />\n </Item>\n {showPopover && popoverContent}\n </>\n );\n};\n\ntype ItemProps = React.HTMLAttributes<HTMLElement> & {\n anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement>;\n isLast: boolean;\n};\nconst Item = ({ anchorAttributes, children, isLast, ...itemAttributes }: ItemProps) =>\n isLast ? (\n <span className={styles.anchor} {...itemAttributes}>\n {children}\n </span>\n ) : (\n <a className={styles.anchor} {...itemAttributes} {...anchorAttributes}>\n {children}\n </a>\n );\n\nexport function BreadcrumbItem<T extends BreadcrumbGroupProps.Item>({\n item,\n onClick,\n onFollow,\n isLast = false,\n isGhost = false,\n isTruncated = false,\n}: BreadcrumbItemProps<T>) {\n const preventDefault = (event: React.MouseEvent) => event.preventDefault();\n const onClickHandler = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireCancelableEvent(onFollow, getEventDetail(item), event);\n }\n fireCancelableEvent(onClick, getEventDetail(item), event);\n };\n\n const anchorAttributes: React.AnchorHTMLAttributes<HTMLAnchorElement> = {\n href: item.href || '#',\n onClick: isLast ? preventDefault : onClickHandler,\n };\n if (isGhost) {\n anchorAttributes.tabIndex = -1;\n }\n\n return (\n <div className={clsx(!isGhost && styles.breadcrumb, isGhost && styles['ghost-breadcrumb'], isLast && styles.last)}>\n {isTruncated && !isGhost ? (\n <BreadcrumbItemWithPopover item={item} isLast={isLast} anchorAttributes={anchorAttributes} />\n ) : (\n <Item isLast={isLast} anchorAttributes={anchorAttributes}>\n <FunnelBreadcrumbItem text={item.text} last={isLast} ghost={isGhost} />\n </Item>\n )}\n {!isLast ? (\n <span className={styles.icon}>\n <InternalIcon name=\"angle-right\" />\n </span>\n ) : null}\n </div>\n );\n}\n"]}
@@ -1,14 +1,13 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "link": "awsui_link_1kosq_3tu5n_141",
5
- "breadcrumb": "awsui_breadcrumb_1kosq_3tu5n_145",
6
- "icon": "awsui_icon_1kosq_3tu5n_148",
7
- "anchor": "awsui_anchor_1kosq_3tu5n_153",
8
- "last": "awsui_last_1kosq_3tu5n_199",
9
- "compressed": "awsui_compressed_1kosq_3tu5n_209",
10
- "text": "awsui_text_1kosq_3tu5n_213",
11
- "virtual-item": "awsui_virtual-item_1kosq_3tu5n_220",
12
- "text-hidden": "awsui_text-hidden_1kosq_3tu5n_227"
4
+ "link": "awsui_link_1kosq_16h20_141",
5
+ "breadcrumb": "awsui_breadcrumb_1kosq_16h20_145",
6
+ "ghost-breadcrumb": "awsui_ghost-breadcrumb_1kosq_16h20_146",
7
+ "icon": "awsui_icon_1kosq_16h20_149",
8
+ "anchor": "awsui_anchor_1kosq_16h20_155",
9
+ "text": "awsui_text_1kosq_16h20_202",
10
+ "last": "awsui_last_1kosq_16h20_221",
11
+ "text-hidden": "awsui_text-hidden_1kosq_16h20_233"
13
12
  };
14
13
 
@@ -138,19 +138,22 @@
138
138
  */
139
139
  /* Style used for links in slots/components that are text heavy, to help links stand out among
140
140
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
141
- .awsui_link_1kosq_3tu5n_141:not(#\9):after {
141
+ .awsui_link_1kosq_16h20_141:not(#\9):after {
142
142
  display: none;
143
143
  }
144
144
 
145
- .awsui_breadcrumb_1kosq_3tu5n_145:not(#\9) {
145
+ .awsui_breadcrumb_1kosq_16h20_145:not(#\9),
146
+ .awsui_ghost-breadcrumb_1kosq_16h20_146:not(#\9) {
146
147
  display: flex;
147
148
  }
148
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_icon_1kosq_3tu5n_148:not(#\9) {
149
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_icon_1kosq_16h20_149:not(#\9),
150
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_icon_1kosq_16h20_149:not(#\9) {
149
151
  margin-block: 0;
150
152
  margin-inline: var(--space-xs-xf5ch3, 8px);
151
153
  color: var(--color-text-breadcrumb-icon-egad48, #687078);
152
154
  }
153
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9) {
155
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9),
156
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9) {
154
157
  color: var(--color-text-link-default-hop3gv, #0073bb);
155
158
  font-weight: inherit;
156
159
  letter-spacing: normal;
@@ -162,32 +165,46 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
162
165
  transition-duration: var(--motion-duration-refresh-only-medium-i6gkfs, 0ms);
163
166
  text-underline-offset: 0.25em;
164
167
  text-decoration-thickness: 1px;
168
+ min-inline-size: 0;
169
+ overflow: hidden;
165
170
  }
166
171
  @media (prefers-reduced-motion: reduce) {
167
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9) {
172
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9),
173
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9) {
168
174
  animation: none;
169
175
  transition: none;
170
176
  }
171
177
  }
172
- .awsui-motion-disabled .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9), .awsui-mode-entering .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9) {
178
+ .awsui-motion-disabled .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9), .awsui-mode-entering .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9), .awsui-motion-disabled .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9), .awsui-mode-entering .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9) {
173
179
  animation: none;
174
180
  transition: none;
175
181
  }
176
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):hover {
182
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):hover,
183
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):hover {
177
184
  cursor: pointer;
178
185
  color: var(--color-text-link-hover-8s5z9d, #0a4a74);
179
186
  }
180
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):focus {
187
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus,
188
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus {
181
189
  outline: none;
182
190
  }
183
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):active {
191
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):active,
192
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):active {
184
193
  color: var(--color-text-link-hover-8s5z9d, #0a4a74);
185
194
  }
186
- .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):active, .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):focus, .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):hover {
195
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):active, .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus, .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):hover, .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):active, .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus, .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):hover {
187
196
  text-decoration-line: underline;
188
197
  text-decoration-color: currentColor;
189
198
  }
190
- body[data-awsui-focus-visible=true] .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_anchor_1kosq_3tu5n_153:not(#\9):focus {
199
+ .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155 > .awsui_text_1kosq_16h20_202:not(#\9),
200
+ .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155 > .awsui_text_1kosq_16h20_202:not(#\9) {
201
+ overflow: hidden;
202
+ text-overflow: ellipsis;
203
+ white-space: nowrap;
204
+ display: block;
205
+ }
206
+ body[data-awsui-focus-visible=true] .awsui_breadcrumb_1kosq_16h20_145 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus,
207
+ body[data-awsui-focus-visible=true] .awsui_ghost-breadcrumb_1kosq_16h20_146 > .awsui_anchor_1kosq_16h20_155:not(#\9):focus {
191
208
  outline: thin dotted;
192
209
  outline: var(--border-link-focus-ring-outline-gygm43, 5px auto Highlight);
193
210
  outline-offset: 2px;
@@ -198,34 +215,18 @@ body[data-awsui-focus-visible=true] .awsui_breadcrumb_1kosq_3tu5n_145 > .awsui_a
198
215
  border-end-end-radius: var(--border-radius-control-default-focus-ring-a78bgq, 2px);
199
216
  box-shadow: 0 0 0 var(--border-link-focus-ring-shadow-spread-efbp5h, 0px) var(--color-border-item-focused-v8nq2m, #0073bb);
200
217
  }
201
- .awsui_breadcrumb_1kosq_3tu5n_145.awsui_last_1kosq_3tu5n_199 > .awsui_icon_1kosq_3tu5n_148:not(#\9) {
218
+ .awsui_breadcrumb_1kosq_16h20_145.awsui_last_1kosq_16h20_221 > .awsui_icon_1kosq_16h20_149:not(#\9),
219
+ .awsui_ghost-breadcrumb_1kosq_16h20_146.awsui_last_1kosq_16h20_221 > .awsui_icon_1kosq_16h20_149:not(#\9) {
202
220
  display: none;
203
221
  }
204
- .awsui_breadcrumb_1kosq_3tu5n_145.awsui_last_1kosq_3tu5n_199 > .awsui_anchor_1kosq_3tu5n_153:not(#\9) {
222
+ .awsui_breadcrumb_1kosq_16h20_145.awsui_last_1kosq_16h20_221 > .awsui_anchor_1kosq_16h20_155:not(#\9),
223
+ .awsui_ghost-breadcrumb_1kosq_16h20_146.awsui_last_1kosq_16h20_221 > .awsui_anchor_1kosq_16h20_155:not(#\9) {
205
224
  color: var(--color-text-breadcrumb-current-pm5uhh, #687078);
206
225
  font-weight: 700;
207
226
  text-decoration: none;
208
227
  cursor: default;
209
228
  }
210
229
 
211
- .awsui_compressed_1kosq_3tu5n_209:not(#\9) {
212
- min-inline-size: 0;
213
- overflow: hidden;
214
- }
215
- .awsui_compressed_1kosq_3tu5n_209 > .awsui_text_1kosq_3tu5n_213:not(#\9) {
216
- overflow: hidden;
217
- text-overflow: ellipsis;
218
- white-space: nowrap;
219
- display: block;
220
- }
221
-
222
- .awsui_virtual-item_1kosq_3tu5n_220:not(#\9) {
223
- position: absolute !important;
224
- inset-block-start: -9999px !important;
225
- inset-inline-start: -9999px !important;
226
- visibility: hidden;
227
- }
228
-
229
- .awsui_text-hidden_1kosq_3tu5n_227:not(#\9) {
230
+ .awsui_text-hidden_1kosq_16h20_233:not(#\9) {
230
231
  display: none;
231
232
  }
@@ -2,14 +2,13 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "link": "awsui_link_1kosq_3tu5n_141",
6
- "breadcrumb": "awsui_breadcrumb_1kosq_3tu5n_145",
7
- "icon": "awsui_icon_1kosq_3tu5n_148",
8
- "anchor": "awsui_anchor_1kosq_3tu5n_153",
9
- "last": "awsui_last_1kosq_3tu5n_199",
10
- "compressed": "awsui_compressed_1kosq_3tu5n_209",
11
- "text": "awsui_text_1kosq_3tu5n_213",
12
- "virtual-item": "awsui_virtual-item_1kosq_3tu5n_220",
13
- "text-hidden": "awsui_text-hidden_1kosq_3tu5n_227"
5
+ "link": "awsui_link_1kosq_16h20_141",
6
+ "breadcrumb": "awsui_breadcrumb_1kosq_16h20_145",
7
+ "ghost-breadcrumb": "awsui_ghost-breadcrumb_1kosq_16h20_146",
8
+ "icon": "awsui_icon_1kosq_16h20_149",
9
+ "anchor": "awsui_anchor_1kosq_16h20_155",
10
+ "text": "awsui_text_1kosq_16h20_202",
11
+ "last": "awsui_last_1kosq_16h20_221",
12
+ "text-hidden": "awsui_text-hidden_1kosq_16h20_233"
14
13
  };
15
14
 
@@ -1,12 +1,13 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "breadcrumb-group": "awsui_breadcrumb-group_d19fg_11fhg_141",
5
- "item": "awsui_item_d19fg_11fhg_179",
6
- "breadcrumb-group-list": "awsui_breadcrumb-group-list_d19fg_11fhg_214",
7
- "ellipsis": "awsui_ellipsis_d19fg_11fhg_226",
8
- "icon": "awsui_icon_d19fg_11fhg_236",
9
- "mobile": "awsui_mobile_d19fg_11fhg_241",
10
- "mobile-short": "awsui_mobile-short_d19fg_11fhg_254"
4
+ "breadcrumb-group": "awsui_breadcrumb-group_d19fg_ydqny_141",
5
+ "breadcrumb-group-list": "awsui_breadcrumb-group-list_d19fg_ydqny_179",
6
+ "ghost": "awsui_ghost_d19fg_ydqny_190",
7
+ "item": "awsui_item_d19fg_ydqny_195",
8
+ "ellipsis": "awsui_ellipsis_d19fg_ydqny_196",
9
+ "hide": "awsui_hide_d19fg_ydqny_203",
10
+ "visible": "awsui_visible_d19fg_ydqny_209",
11
+ "icon": "awsui_icon_d19fg_ydqny_213"
11
12
  };
12
13
 
@@ -138,7 +138,7 @@
138
138
  */
139
139
  /* Style used for links in slots/components that are text heavy, to help links stand out among
140
140
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
141
- .awsui_breadcrumb-group_d19fg_11fhg_141:not(#\9) {
141
+ .awsui_breadcrumb-group_d19fg_ydqny_141:not(#\9) {
142
142
  border-collapse: separate;
143
143
  border-spacing: 0;
144
144
  box-sizing: border-box;
@@ -177,43 +177,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
177
177
  padding-block: var(--space-xxs-9rrxti, 4px);
178
178
  padding-inline: 0;
179
179
  }
180
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_item_d19fg_11fhg_179:not(#\9) {
181
- border-collapse: separate;
182
- border-spacing: 0;
183
- box-sizing: border-box;
184
- caption-side: top;
185
- cursor: auto;
186
- direction: inherit;
187
- empty-cells: show;
188
- font-family: serif;
189
- font-size: medium;
190
- font-style: normal;
191
- font-variant: normal;
192
- font-weight: 400;
193
- font-stretch: normal;
194
- line-height: normal;
195
- -webkit-hyphens: none;
196
- hyphens: none;
197
- letter-spacing: normal;
198
- list-style: disc outside none;
199
- tab-size: 8;
200
- text-align: start;
201
- text-indent: 0;
202
- text-shadow: none;
203
- text-transform: none;
204
- visibility: visible;
205
- white-space: normal;
206
- word-spacing: normal;
207
- font-size: var(--font-size-body-m-pa3mqb, 14px);
208
- line-height: var(--line-height-body-m-2zx78l, 22px);
209
- color: var(--color-text-body-default-ffdwgg, #16191f);
210
- font-weight: 400;
211
- font-family: var(--font-family-base-0nmw8v, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
212
- -webkit-font-smoothing: auto;
213
- -moz-osx-font-smoothing: auto;
214
- display: inline;
215
- }
216
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_breadcrumb-group-list_d19fg_11fhg_214:not(#\9) {
180
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179:not(#\9) {
217
181
  display: flex;
218
182
  align-items: center;
219
183
  padding-block: 0;
@@ -222,37 +186,33 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
222
186
  margin-inline: 0;
223
187
  list-style: none;
224
188
  inline-size: 100%;
189
+ flex-wrap: nowrap;
190
+ }
191
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179.awsui_ghost_d19fg_ydqny_190:not(#\9) {
225
192
  flex-wrap: wrap;
193
+ position: absolute;
194
+ inset-inline-start: -9000px;
226
195
  }
227
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_item_d19fg_11fhg_179:not(#\9),
228
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_ellipsis_d19fg_11fhg_226:not(#\9) {
196
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_item_d19fg_ydqny_195:not(#\9),
197
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_ellipsis_d19fg_ydqny_196:not(#\9) {
229
198
  display: inline-block;
230
199
  padding-block: 0;
231
200
  padding-inline: 0;
232
201
  margin-block: 0;
233
202
  margin-inline: 0;
234
203
  }
235
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_ellipsis_d19fg_11fhg_226:not(#\9) {
204
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_item_d19fg_ydqny_195.awsui_hide_d19fg_ydqny_203:not(#\9) {
236
205
  display: none;
237
206
  }
238
- .awsui_breadcrumb-group_d19fg_11fhg_141 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_ellipsis_d19fg_11fhg_226 > .awsui_icon_d19fg_11fhg_236:not(#\9) {
239
- margin-block: 0;
240
- margin-inline: 10px;
241
- color: var(--color-text-breadcrumb-icon-egad48, #687078);
242
- }
243
- .awsui_breadcrumb-group_d19fg_11fhg_141.awsui_mobile_d19fg_11fhg_241 > .awsui_breadcrumb-group-list_d19fg_11fhg_214:not(#\9) {
244
- flex-wrap: nowrap;
207
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_ellipsis_d19fg_ydqny_196:not(#\9) {
208
+ display: none;
245
209
  }
246
- .awsui_breadcrumb-group_d19fg_11fhg_141.awsui_mobile_d19fg_11fhg_241 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_ellipsis_d19fg_11fhg_226:not(#\9) {
210
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_ellipsis_d19fg_ydqny_196.awsui_visible_d19fg_ydqny_209:not(#\9) {
247
211
  display: flex;
248
212
  flex-shrink: 0;
249
213
  }
250
- .awsui_breadcrumb-group_d19fg_11fhg_141.awsui_mobile_d19fg_11fhg_241 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_item_d19fg_11fhg_179:not(#\9) {
251
- min-inline-size: 0;
252
- }
253
- .awsui_breadcrumb-group_d19fg_11fhg_141.awsui_mobile_d19fg_11fhg_241 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_item_d19fg_11fhg_179:not(#\9):not(:first-child):not(:last-child) {
254
- display: none;
255
- }
256
- .awsui_breadcrumb-group_d19fg_11fhg_141.awsui_mobile-short_d19fg_11fhg_254 > .awsui_breadcrumb-group-list_d19fg_11fhg_214 > .awsui_ellipsis_d19fg_11fhg_226:not(#\9) {
257
- display: none;
214
+ .awsui_breadcrumb-group_d19fg_ydqny_141 > .awsui_breadcrumb-group-list_d19fg_ydqny_179 > .awsui_ellipsis_d19fg_ydqny_196 > .awsui_icon_d19fg_ydqny_213:not(#\9) {
215
+ margin-block: 0;
216
+ margin-inline: 10px;
217
+ color: var(--color-text-breadcrumb-icon-egad48, #687078);
258
218
  }
@@ -2,12 +2,13 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "breadcrumb-group": "awsui_breadcrumb-group_d19fg_11fhg_141",
6
- "item": "awsui_item_d19fg_11fhg_179",
7
- "breadcrumb-group-list": "awsui_breadcrumb-group-list_d19fg_11fhg_214",
8
- "ellipsis": "awsui_ellipsis_d19fg_11fhg_226",
9
- "icon": "awsui_icon_d19fg_11fhg_236",
10
- "mobile": "awsui_mobile_d19fg_11fhg_241",
11
- "mobile-short": "awsui_mobile-short_d19fg_11fhg_254"
5
+ "breadcrumb-group": "awsui_breadcrumb-group_d19fg_ydqny_141",
6
+ "breadcrumb-group-list": "awsui_breadcrumb-group-list_d19fg_ydqny_179",
7
+ "ghost": "awsui_ghost_d19fg_ydqny_190",
8
+ "item": "awsui_item_d19fg_ydqny_195",
9
+ "ellipsis": "awsui_ellipsis_d19fg_ydqny_196",
10
+ "hide": "awsui_hide_d19fg_ydqny_203",
11
+ "visible": "awsui_visible_d19fg_ydqny_209",
12
+ "icon": "awsui_icon_d19fg_ydqny_213"
12
13
  };
13
14
 
@@ -4,4 +4,9 @@ export declare const getEventDetail: <T extends BreadcrumbGroupProps.Item>(item:
4
4
  text: string;
5
5
  href: string;
6
6
  };
7
+ export declare const getItemsDisplayProperties: (itemsWidths: Array<number>, navWidth: number | null) => {
8
+ shrinkFactors: number[];
9
+ minWidths: number[];
10
+ collapsed: number;
11
+ };
7
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb-group/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;CAIzB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/breadcrumb-group/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,cAAc;;;;CAIzB,CAAC;AAKH,eAAO,MAAM,yBAAyB,gBAAiB,MAAM,MAAM,CAAC,YAAY,MAAM,GAAG,IAAI;;;;CAW5F,CAAC"}
@@ -3,4 +3,60 @@ export const getEventDetail = (item) => ({
3
3
  text: item.text,
4
4
  href: item.href,
5
5
  });
6
+ const defaultMinBreadcrumbWidth = 150;
7
+ const ellipsisWidth = 50;
8
+ export const getItemsDisplayProperties = (itemsWidths, navWidth) => {
9
+ const minBreadcrumbWidth = optimizeMinWidth(itemsWidths, navWidth);
10
+ const shrinkFactors = itemsWidths.map(width => (width <= minBreadcrumbWidth ? 0 : Math.round(width)));
11
+ const minWidths = itemsWidths.map(width => (width <= minBreadcrumbWidth ? 0 : minBreadcrumbWidth));
12
+ const collapsedWidths = itemsWidths.map(width => Math.min(width, minBreadcrumbWidth));
13
+ return {
14
+ shrinkFactors,
15
+ minWidths,
16
+ collapsed: computeNumberOfCollapsedItems(collapsedWidths, navWidth),
17
+ };
18
+ };
19
+ const computeNumberOfCollapsedItems = (collapsedWidths, navWidth) => {
20
+ if (!navWidth) {
21
+ return 0;
22
+ }
23
+ let collapsed = 0;
24
+ const itemsCount = collapsedWidths.length;
25
+ if (itemsCount > 2) {
26
+ collapsed = itemsCount - 2;
27
+ let remainingWidth = navWidth - collapsedWidths[0] - collapsedWidths[itemsCount - 1] - ellipsisWidth;
28
+ let j = 1;
29
+ while (remainingWidth > 0 && j < itemsCount - 1) {
30
+ remainingWidth -= collapsedWidths[itemsCount - 1 - j];
31
+ j++;
32
+ if (remainingWidth >= 0) {
33
+ collapsed--;
34
+ }
35
+ }
36
+ }
37
+ return collapsed;
38
+ };
39
+ const optimizeMinWidth = (itemsWidths, navWidth) => {
40
+ const collapsedWidths = itemsWidths.map(width => Math.min(width, defaultMinBreadcrumbWidth));
41
+ if (!navWidth) {
42
+ return defaultMinBreadcrumbWidth;
43
+ }
44
+ const itemsCount = collapsedWidths.length;
45
+ if (itemsCount > 2) {
46
+ const minCollapsedWidth = collapsedWidths[0] + ellipsisWidth + collapsedWidths[collapsedWidths.length - 1];
47
+ if (minCollapsedWidth > navWidth) {
48
+ return (navWidth - ellipsisWidth) / 2;
49
+ }
50
+ }
51
+ if (itemsCount === 2) {
52
+ const minCollapsedWidth = collapsedWidths[0] + collapsedWidths[1];
53
+ if (minCollapsedWidth > navWidth) {
54
+ return navWidth / 2;
55
+ }
56
+ }
57
+ if (itemsCount === 1) {
58
+ return Math.min(navWidth, collapsedWidths[0]);
59
+ }
60
+ return defaultMinBreadcrumbWidth;
61
+ };
6
62
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/breadcrumb-group/utils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAsC,IAAO,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI;IACJ,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI,EAAE,IAAI,CAAC,IAAI;CAChB,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BreadcrumbGroupProps } from './interfaces';\n\nexport const getEventDetail = <T extends BreadcrumbGroupProps.Item>(item: T) => ({\n item,\n text: item.text,\n href: item.href,\n});\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/breadcrumb-group/utils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAsC,IAAO,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI;IACJ,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,IAAI,EAAE,IAAI,CAAC,IAAI;CAChB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAA0B,EAAE,QAAuB,EAAE,EAAE;IAC/F,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnG,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEtF,OAAO;QACL,aAAa;QACb,SAAS;QACT,SAAS,EAAE,6BAA6B,CAAC,eAAe,EAAE,QAAQ,CAAC;KACpE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,eAA8B,EAAE,QAAuB,EAAU,EAAE;IACxG,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,CAAC,CAAC;KACV;IACD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAC1C,IAAI,UAAU,GAAG,CAAC,EAAE;QAClB,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;QAC3B,IAAI,cAAc,GAAG,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;QACrG,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;YAC/C,cAAc,IAAI,eAAe,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,CAAC;YACJ,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,SAAS,EAAE,CAAC;aACb;SACF;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,WAA0B,EAAE,QAAuB,EAAU,EAAE;IACvF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,yBAAyB,CAAC;KAClC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAC1C,IAAI,UAAU,GAAG,CAAC,EAAE;QAClB,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3G,IAAI,iBAAiB,GAAG,QAAQ,EAAE;YAChC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;SACvC;KACF;IACD,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,iBAAiB,GAAG,QAAQ,EAAE;YAChC,OAAO,QAAQ,GAAG,CAAC,CAAC;SACrB;KACF;IACD,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BreadcrumbGroupProps } from './interfaces';\n\nexport const getEventDetail = <T extends BreadcrumbGroupProps.Item>(item: T) => ({\n item,\n text: item.text,\n href: item.href,\n});\n\nconst defaultMinBreadcrumbWidth = 150;\nconst ellipsisWidth = 50;\n\nexport const getItemsDisplayProperties = (itemsWidths: Array<number>, navWidth: number | null) => {\n const minBreadcrumbWidth = optimizeMinWidth(itemsWidths, navWidth);\n const shrinkFactors = itemsWidths.map(width => (width <= minBreadcrumbWidth ? 0 : Math.round(width)));\n const minWidths = itemsWidths.map(width => (width <= minBreadcrumbWidth ? 0 : minBreadcrumbWidth));\n const collapsedWidths = itemsWidths.map(width => Math.min(width, minBreadcrumbWidth));\n\n return {\n shrinkFactors,\n minWidths,\n collapsed: computeNumberOfCollapsedItems(collapsedWidths, navWidth),\n };\n};\n\nconst computeNumberOfCollapsedItems = (collapsedWidths: Array<number>, navWidth: number | null): number => {\n if (!navWidth) {\n return 0;\n }\n let collapsed = 0;\n const itemsCount = collapsedWidths.length;\n if (itemsCount > 2) {\n collapsed = itemsCount - 2;\n let remainingWidth = navWidth - collapsedWidths[0] - collapsedWidths[itemsCount - 1] - ellipsisWidth;\n let j = 1;\n while (remainingWidth > 0 && j < itemsCount - 1) {\n remainingWidth -= collapsedWidths[itemsCount - 1 - j];\n j++;\n if (remainingWidth >= 0) {\n collapsed--;\n }\n }\n }\n return collapsed;\n};\n\nconst optimizeMinWidth = (itemsWidths: Array<number>, navWidth: number | null): number => {\n const collapsedWidths = itemsWidths.map(width => Math.min(width, defaultMinBreadcrumbWidth));\n if (!navWidth) {\n return defaultMinBreadcrumbWidth;\n }\n const itemsCount = collapsedWidths.length;\n if (itemsCount > 2) {\n const minCollapsedWidth = collapsedWidths[0] + ellipsisWidth + collapsedWidths[collapsedWidths.length - 1];\n if (minCollapsedWidth > navWidth) {\n return (navWidth - ellipsisWidth) / 2;\n }\n }\n if (itemsCount === 2) {\n const minCollapsedWidth = collapsedWidths[0] + collapsedWidths[1];\n if (minCollapsedWidth > navWidth) {\n return navWidth / 2;\n }\n }\n if (itemsCount === 1) {\n return Math.min(navWidth, collapsedWidths[0]);\n }\n return defaultMinBreadcrumbWidth;\n};\n"]}
@@ -28,13 +28,15 @@ function InternalFileUpload(_a, externalRef) {
28
28
  var _b;
29
29
  var { accept, ariaRequired, multiple = false, onChange, value, tokenLimit, showFileSize, showFileLastModified, showFileThumbnail, i18nStrings, __internalRootRef = null, constraintText, errorText, warningText, fileErrors, fileWarnings } = _a, restProps = __rest(_a, ["accept", "ariaRequired", "multiple", "onChange", "value", "tokenLimit", "showFileSize", "showFileLastModified", "showFileThumbnail", "i18nStrings", "__internalRootRef", "constraintText", "errorText", "warningText", "fileErrors", "fileWarnings"]);
30
30
  const [nextFocusIndex, setNextFocusIndex] = useState(null);
31
- const onFocusMoved = () => setNextFocusIndex(null);
32
31
  const tokenListRef = useListFocusController({
33
32
  nextFocusIndex,
34
- onFocusMoved,
33
+ onFocusMoved: target => {
34
+ target.focus();
35
+ setNextFocusIndex(null);
36
+ },
35
37
  listItemSelector: `.${tokenListStyles['list-item']}`,
36
38
  showMoreSelector: `.${tokenListStyles.toggle}`,
37
- outsideSelector: `.${fileInputStyles['upload-input']}`,
39
+ fallbackSelector: `.${fileInputStyles['upload-input']}`,
38
40
  });
39
41
  const baseProps = getBaseProps(restProps);
40
42
  const metadata = { showFileSize, showFileLastModified, showFileThumbnail };
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/file-upload/internal.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\n\nimport React, { ForwardedRef, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalBox from '../box/internal';\nimport { ButtonProps } from '../button/interfaces';\nimport { useFormFieldContext } from '../contexts/form-field';\nimport { ConstraintText, FormFieldError, FormFieldWarning } from '../form-field/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport TokenList from '../internal/components/token-list';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useListFocusController } from '../internal/hooks/use-list-focus-controller';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { joinStrings } from '../internal/utils/strings';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { Token } from '../token-group/token';\nimport { Dropzone, useDropzoneVisible } from './dropzone';\nimport FileInput from './file-input';\nimport { FileOption } from './file-option';\nimport { FileUploadProps } from './interfaces';\n\nimport tokenListStyles from '../internal/components/token-list/styles.css.js';\nimport fileInputStyles from './file-input/styles.css.js';\nimport styles from './styles.css.js';\n\ntype InternalFileUploadProps = FileUploadProps & InternalBaseComponentProps;\n\nexport default React.forwardRef(InternalFileUpload);\n\nfunction InternalFileUpload(\n {\n accept,\n ariaRequired,\n multiple = false,\n onChange,\n value,\n tokenLimit,\n showFileSize,\n showFileLastModified,\n showFileThumbnail,\n i18nStrings,\n __internalRootRef = null,\n constraintText,\n errorText,\n warningText,\n fileErrors,\n fileWarnings,\n ...restProps\n }: InternalFileUploadProps,\n externalRef: ForwardedRef<ButtonProps.Ref>\n) {\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const onFocusMoved = () => setNextFocusIndex(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved,\n listItemSelector: `.${tokenListStyles['list-item']}`,\n showMoreSelector: `.${tokenListStyles.toggle}`,\n outsideSelector: `.${fileInputStyles['upload-input']}`,\n });\n\n const baseProps = getBaseProps(restProps);\n const metadata = { showFileSize, showFileLastModified, showFileThumbnail };\n\n const errorId = useUniqueId('error-');\n const warningId = useUniqueId('warning-');\n const constraintTextId = useUniqueId('constraint-text-');\n\n const fileInputRef = useRef<ButtonProps.Ref>(null);\n const ref = useMergeRefs(fileInputRef, externalRef);\n\n checkControlled('FileUpload', 'value', value, 'onChange', onChange);\n\n if (!multiple && value.length > 1) {\n warnOnce('FileUpload', 'Value must be an array of size 0 or 1 when `multiple=false`.');\n }\n\n const handleFilesChange = (newFiles: File[]) => {\n const newValue = multiple ? [...value, ...newFiles] : newFiles[0] ? newFiles : [...value];\n fireNonCancelableEvent(onChange, { value: newValue });\n };\n\n const onFileRemove = (removeFileIndex: number) => {\n const newValue = value.filter((_, fileIndex) => fileIndex !== removeFileIndex);\n fireNonCancelableEvent(onChange, { value: newValue });\n setNextFocusIndex(removeFileIndex);\n };\n\n const isDropzoneVisible = useDropzoneVisible(multiple);\n\n const showWarning = warningText && !errorText;\n\n if (warningText && errorText) {\n warnOnce('FileUpload', 'Both `errorText` and `warningText` exist. `warningText` will not be shown.');\n }\n\n const formFieldContext = useFormFieldContext(restProps);\n const ariaDescribedBy = joinStrings(\n restProps.ariaDescribedby ?? formFieldContext.ariaDescribedby,\n errorText ? errorId : undefined,\n showWarning ? warningId : undefined,\n constraintText ? constraintTextId : undefined\n );\n\n const hasError = Boolean(errorText || fileErrors?.filter(Boolean).length);\n const invalid = restProps.invalid || formFieldContext.invalid || hasError;\n\n return (\n <InternalSpaceBetween\n {...baseProps}\n size=\"xs\"\n className={clsx(baseProps.className, styles.root)}\n __internalRootRef={__internalRootRef}\n ref={tokenListRef}\n >\n <InternalBox>\n {isDropzoneVisible ? (\n <Dropzone onChange={handleFilesChange}>{i18nStrings.dropzoneText(multiple)}</Dropzone>\n ) : (\n <FileInput\n ref={ref}\n accept={accept}\n ariaRequired={ariaRequired}\n multiple={multiple}\n onChange={handleFilesChange}\n value={value}\n {...restProps}\n ariaDescribedby={ariaDescribedBy}\n invalid={invalid}\n >\n {i18nStrings.uploadButtonText(multiple)}\n </FileInput>\n )}\n\n {(constraintText || errorText || warningText) && (\n <div className={styles.hints}>\n {errorText && (\n <FormFieldError id={errorId} errorIconAriaLabel={i18nStrings?.errorIconAriaLabel}>\n {errorText}\n </FormFieldError>\n )}\n {showWarning && (\n <FormFieldWarning id={warningId} warningIconAriaLabel={i18nStrings?.warningIconAriaLabel}>\n {warningText}\n </FormFieldWarning>\n )}\n {constraintText && (\n <ConstraintText id={constraintTextId} hasValidationText={!!errorText || !!warningText}>\n {constraintText}\n </ConstraintText>\n )}\n </div>\n )}\n </InternalBox>\n\n {!multiple && value.length > 0 ? (\n <InternalBox>\n <Token\n ariaLabel={value[0].name}\n dismissLabel={i18nStrings.removeFileAriaLabel(0)}\n onDismiss={() => onFileRemove(0)}\n errorText={fileErrors?.[0]}\n warningText={fileWarnings?.[0]}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n warningIconAriaLabel={i18nStrings.warningIconAriaLabel}\n data-index={0}\n >\n <FileOption file={value[0]} metadata={metadata} i18nStrings={i18nStrings} />\n </Token>\n </InternalBox>\n ) : null}\n\n {multiple && value.length > 0 ? (\n <InternalBox>\n <TokenList\n alignment=\"vertical\"\n items={value}\n renderItem={(file, fileIndex) => (\n <Token\n ariaLabel={file.name}\n dismissLabel={i18nStrings.removeFileAriaLabel(fileIndex)}\n onDismiss={() => onFileRemove(fileIndex)}\n errorText={fileErrors?.[fileIndex]}\n warningText={fileWarnings?.[fileIndex]}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n warningIconAriaLabel={i18nStrings.warningIconAriaLabel}\n data-index={fileIndex}\n >\n <FileOption file={file} metadata={metadata} i18nStrings={i18nStrings} />\n </Token>\n )}\n limit={tokenLimit}\n i18nStrings={{\n limitShowFewer: i18nStrings.limitShowFewer,\n limitShowMore: i18nStrings.limitShowMore,\n }}\n />\n </InternalBox>\n ) : null}\n </InternalSpaceBetween>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/file-upload/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,OAAO,KAAK,EAAE,EAAgB,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,eAAe,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,eAAe,MAAM,iDAAiD,CAAC;AAC9E,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,eAAe,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEpD,SAAS,kBAAkB,CACzB,EAkB0B,EAC1B,WAA0C;;QAnB1C,EACE,MAAM,EACN,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAAG,IAAI,EACxB,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,OAEY,EADrB,SAAS,cAjBd,sPAkBC,CADa;IAId,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC1C,cAAc;QACd,YAAY,EAAE,MAAM,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,gBAAgB,EAAE,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;QACpD,gBAAgB,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE;QAC9C,gBAAgB,EAAE,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE;KACxD,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAE3E,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEpD,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEpE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,QAAQ,CAAC,YAAY,EAAE,8DAA8D,CAAC,CAAC;KACxF;IAED,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1F,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,eAAuB,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC;QAC/E,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC;IAE9C,IAAI,WAAW,IAAI,SAAS,EAAE;QAC5B,QAAQ,CAAC,YAAY,EAAE,4EAA4E,CAAC,CAAC;KACtG;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,WAAW,CACjC,MAAA,SAAS,CAAC,eAAe,mCAAI,gBAAgB,CAAC,eAAe,EAC7D,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC/B,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACnC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,KAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAA,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,IAAI,QAAQ,CAAC;IAE1E,OAAO,CACL,oBAAC,oBAAoB,oBACf,SAAS,IACb,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EACjD,iBAAiB,EAAE,iBAAiB,EACpC,GAAG,EAAE,YAAY;QAEjB,oBAAC,WAAW;YACT,iBAAiB,CAAC,CAAC,CAAC,CACnB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,iBAAiB,IAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAY,CACvF,CAAC,CAAC,CAAC,CACF,oBAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,KAAK,IACR,SAAS,IACb,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,KAEf,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAC7B,CACb;YAEA,CAAC,cAAc,IAAI,SAAS,IAAI,WAAW,CAAC,IAAI,CAC/C,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK;gBACzB,SAAS,IAAI,CACZ,oBAAC,cAAc,IAAC,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,IAC7E,SAAS,CACK,CAClB;gBACA,WAAW,IAAI,CACd,oBAAC,gBAAgB,IAAC,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,oBAAoB,IACrF,WAAW,CACK,CACpB;gBACA,cAAc,IAAI,CACjB,oBAAC,cAAc,IAAC,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,IAClF,cAAc,CACA,CAClB,CACG,CACP,CACW;QAEb,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,oBAAC,WAAW;YACV,oBAAC,KAAK,IACJ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACxB,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAChD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,EAC1B,WAAW,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,CAAC,EAC9B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,EAClD,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,gBAC1C,CAAC;gBAEb,oBAAC,UAAU,IAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAI,CACtE,CACI,CACf,CAAC,CAAC,CAAC,IAAI;QAEP,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC9B,oBAAC,WAAW;YACV,oBAAC,SAAS,IACR,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAC/B,oBAAC,KAAK,IACJ,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,SAAS,CAAC,EACxD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EACxC,SAAS,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,SAAS,CAAC,EAClC,WAAW,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,SAAS,CAAC,EACtC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,EAClD,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,gBAC1C,SAAS;oBAErB,oBAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAI,CAClE,CACT,EACD,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE;oBACX,cAAc,EAAE,WAAW,CAAC,cAAc;oBAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;iBACzC,GACD,CACU,CACf,CAAC,CAAC,CAAC,IAAI,CACa,CACxB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { ForwardedRef, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalBox from '../box/internal';\nimport { ButtonProps } from '../button/interfaces';\nimport { useFormFieldContext } from '../contexts/form-field';\nimport { ConstraintText, FormFieldError, FormFieldWarning } from '../form-field/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport TokenList from '../internal/components/token-list';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useListFocusController } from '../internal/hooks/use-list-focus-controller';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { joinStrings } from '../internal/utils/strings';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { Token } from '../token-group/token';\nimport { Dropzone, useDropzoneVisible } from './dropzone';\nimport FileInput from './file-input';\nimport { FileOption } from './file-option';\nimport { FileUploadProps } from './interfaces';\n\nimport tokenListStyles from '../internal/components/token-list/styles.css.js';\nimport fileInputStyles from './file-input/styles.css.js';\nimport styles from './styles.css.js';\n\ntype InternalFileUploadProps = FileUploadProps & InternalBaseComponentProps;\n\nexport default React.forwardRef(InternalFileUpload);\n\nfunction InternalFileUpload(\n {\n accept,\n ariaRequired,\n multiple = false,\n onChange,\n value,\n tokenLimit,\n showFileSize,\n showFileLastModified,\n showFileThumbnail,\n i18nStrings,\n __internalRootRef = null,\n constraintText,\n errorText,\n warningText,\n fileErrors,\n fileWarnings,\n ...restProps\n }: InternalFileUploadProps,\n externalRef: ForwardedRef<ButtonProps.Ref>\n) {\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved: target => {\n target.focus();\n setNextFocusIndex(null);\n },\n listItemSelector: `.${tokenListStyles['list-item']}`,\n showMoreSelector: `.${tokenListStyles.toggle}`,\n fallbackSelector: `.${fileInputStyles['upload-input']}`,\n });\n\n const baseProps = getBaseProps(restProps);\n const metadata = { showFileSize, showFileLastModified, showFileThumbnail };\n\n const errorId = useUniqueId('error-');\n const warningId = useUniqueId('warning-');\n const constraintTextId = useUniqueId('constraint-text-');\n\n const fileInputRef = useRef<ButtonProps.Ref>(null);\n const ref = useMergeRefs(fileInputRef, externalRef);\n\n checkControlled('FileUpload', 'value', value, 'onChange', onChange);\n\n if (!multiple && value.length > 1) {\n warnOnce('FileUpload', 'Value must be an array of size 0 or 1 when `multiple=false`.');\n }\n\n const handleFilesChange = (newFiles: File[]) => {\n const newValue = multiple ? [...value, ...newFiles] : newFiles[0] ? newFiles : [...value];\n fireNonCancelableEvent(onChange, { value: newValue });\n };\n\n const onFileRemove = (removeFileIndex: number) => {\n const newValue = value.filter((_, fileIndex) => fileIndex !== removeFileIndex);\n fireNonCancelableEvent(onChange, { value: newValue });\n setNextFocusIndex(removeFileIndex);\n };\n\n const isDropzoneVisible = useDropzoneVisible(multiple);\n\n const showWarning = warningText && !errorText;\n\n if (warningText && errorText) {\n warnOnce('FileUpload', 'Both `errorText` and `warningText` exist. `warningText` will not be shown.');\n }\n\n const formFieldContext = useFormFieldContext(restProps);\n const ariaDescribedBy = joinStrings(\n restProps.ariaDescribedby ?? formFieldContext.ariaDescribedby,\n errorText ? errorId : undefined,\n showWarning ? warningId : undefined,\n constraintText ? constraintTextId : undefined\n );\n\n const hasError = Boolean(errorText || fileErrors?.filter(Boolean).length);\n const invalid = restProps.invalid || formFieldContext.invalid || hasError;\n\n return (\n <InternalSpaceBetween\n {...baseProps}\n size=\"xs\"\n className={clsx(baseProps.className, styles.root)}\n __internalRootRef={__internalRootRef}\n ref={tokenListRef}\n >\n <InternalBox>\n {isDropzoneVisible ? (\n <Dropzone onChange={handleFilesChange}>{i18nStrings.dropzoneText(multiple)}</Dropzone>\n ) : (\n <FileInput\n ref={ref}\n accept={accept}\n ariaRequired={ariaRequired}\n multiple={multiple}\n onChange={handleFilesChange}\n value={value}\n {...restProps}\n ariaDescribedby={ariaDescribedBy}\n invalid={invalid}\n >\n {i18nStrings.uploadButtonText(multiple)}\n </FileInput>\n )}\n\n {(constraintText || errorText || warningText) && (\n <div className={styles.hints}>\n {errorText && (\n <FormFieldError id={errorId} errorIconAriaLabel={i18nStrings?.errorIconAriaLabel}>\n {errorText}\n </FormFieldError>\n )}\n {showWarning && (\n <FormFieldWarning id={warningId} warningIconAriaLabel={i18nStrings?.warningIconAriaLabel}>\n {warningText}\n </FormFieldWarning>\n )}\n {constraintText && (\n <ConstraintText id={constraintTextId} hasValidationText={!!errorText || !!warningText}>\n {constraintText}\n </ConstraintText>\n )}\n </div>\n )}\n </InternalBox>\n\n {!multiple && value.length > 0 ? (\n <InternalBox>\n <Token\n ariaLabel={value[0].name}\n dismissLabel={i18nStrings.removeFileAriaLabel(0)}\n onDismiss={() => onFileRemove(0)}\n errorText={fileErrors?.[0]}\n warningText={fileWarnings?.[0]}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n warningIconAriaLabel={i18nStrings.warningIconAriaLabel}\n data-index={0}\n >\n <FileOption file={value[0]} metadata={metadata} i18nStrings={i18nStrings} />\n </Token>\n </InternalBox>\n ) : null}\n\n {multiple && value.length > 0 ? (\n <InternalBox>\n <TokenList\n alignment=\"vertical\"\n items={value}\n renderItem={(file, fileIndex) => (\n <Token\n ariaLabel={file.name}\n dismissLabel={i18nStrings.removeFileAriaLabel(fileIndex)}\n onDismiss={() => onFileRemove(fileIndex)}\n errorText={fileErrors?.[fileIndex]}\n warningText={fileWarnings?.[fileIndex]}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n warningIconAriaLabel={i18nStrings.warningIconAriaLabel}\n data-index={fileIndex}\n >\n <FileOption file={file} metadata={metadata} i18nStrings={i18nStrings} />\n </Token>\n )}\n limit={tokenLimit}\n i18nStrings={{\n limitShowFewer: i18nStrings.limitShowFewer,\n limitShowMore: i18nStrings.limitShowMore,\n }}\n />\n </InternalBox>\n ) : null}\n </InternalSpaceBetween>\n );\n}\n"]}
@@ -9,7 +9,7 @@ export interface ButtonTriggerProps extends BaseComponentProps {
9
9
  readOnly?: boolean;
10
10
  invalid?: boolean;
11
11
  warning?: boolean;
12
- inFilteringToken?: boolean;
12
+ inFilteringToken?: 'root' | 'nested';
13
13
  inlineTokens?: boolean;
14
14
  ariaHasPopup?: 'true' | 'listbox' | 'dialog';
15
15
  ariaControls?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/button-trigger/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAMpD,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAA0C,MAAM,cAAc,CAAC;AAM7G,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiGD,yBAAiB,kBAAkB,CAAC;IAClC,UAAiB,GAAG;QAClB,KAAK,IAAI,IAAI,CAAC;KACf;CACF;;AAED,wBAA+C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/button-trigger/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAMpD,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAA0C,MAAM,cAAc,CAAC;AAM7G,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiGD,yBAAiB,kBAAkB,CAAC;IAClC,UAAiB,GAAG;QAClB,KAAK,IAAI,IAAI,CAAC;KACf;CACF;;AAED,wBAA+C"}
@@ -12,7 +12,7 @@ import styles from './styles.css.js';
12
12
  const ButtonTrigger = (_a, ref) => {
13
13
  var { children, pressed = false, hideCaret = false, disabled = false, readOnly = false, invalid = false, warning = false, inlineTokens, inFilteringToken, ariaHasPopup, ariaLabel, ariaLabelledby, ariaDescribedby, ariaControls, onKeyDown, onKeyUp, onMouseDown, onClick, onFocus, onBlur, autoFocus } = _a, restProps = __rest(_a, ["children", "pressed", "hideCaret", "disabled", "readOnly", "invalid", "warning", "inlineTokens", "inFilteringToken", "ariaHasPopup", "ariaLabel", "ariaLabelledby", "ariaDescribedby", "ariaControls", "onKeyDown", "onKeyUp", "onMouseDown", "onClick", "onFocus", "onBlur", "autoFocus"]);
14
14
  const baseProps = getBaseProps(restProps);
15
- let attributes = Object.assign(Object.assign({}, baseProps), { type: 'button', className: clsx(styles['button-trigger'], analyticsSelectors['button-trigger'], baseProps.className, pressed && styles.pressed, disabled && styles.disabled, invalid && styles.invalid, warning && !invalid && styles.warning, !hideCaret && styles['has-caret'], readOnly && styles.readonly, inFilteringToken && styles['in-filtering-token'], inlineTokens && styles['inline-tokens']), disabled: disabled, 'aria-expanded': pressed, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'aria-haspopup': ariaHasPopup !== null && ariaHasPopup !== void 0 ? ariaHasPopup : 'listbox', 'aria-controls': ariaControls, 'aria-disabled': readOnly && !disabled ? 'true' : undefined, autoFocus });
15
+ let attributes = Object.assign(Object.assign({}, baseProps), { type: 'button', className: clsx(styles['button-trigger'], analyticsSelectors['button-trigger'], baseProps.className, pressed && styles.pressed, disabled && styles.disabled, invalid && styles.invalid, warning && !invalid && styles.warning, !hideCaret && styles['has-caret'], readOnly && styles.readonly, inFilteringToken && styles[`in-filtering-token-${inFilteringToken}`], inlineTokens && styles['inline-tokens']), disabled: disabled, 'aria-expanded': pressed, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, 'aria-haspopup': ariaHasPopup !== null && ariaHasPopup !== void 0 ? ariaHasPopup : 'listbox', 'aria-controls': ariaControls, 'aria-disabled': readOnly && !disabled ? 'true' : undefined, autoFocus });
16
16
  if (!readOnly) {
17
17
  attributes = Object.assign(Object.assign({}, attributes), { onKeyDown: onKeyDown && (event => fireKeyboardEvent(onKeyDown, event)), onKeyUp: onKeyUp && (event => fireKeyboardEvent(onKeyUp, event)), onMouseDown: onMouseDown && (event => fireCancelableEvent(onMouseDown, {}, event)), onClick: onClick && (event => fireCancelableEvent(onClick, {}, event)), onFocus: onFocus && (event => fireCancelableEvent(onFocus, {}, event)), onBlur: onBlur && (event => fireCancelableEvent(onBlur, { relatedTarget: event.relatedTarget }, event)) });
18
18
  }