@cloudscape-design/components 3.0.353 → 3.0.355
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alert/internal.d.ts.map +1 -1
- package/alert/internal.js +15 -13
- package/alert/internal.js.map +1 -1
- package/attribute-editor/styles.css.js +14 -14
- package/attribute-editor/styles.scoped.css +28 -29
- package/attribute-editor/styles.selectors.js +14 -14
- package/breadcrumb-group/item/styles.css.js +9 -9
- package/breadcrumb-group/item/styles.scoped.css +19 -19
- package/breadcrumb-group/item/styles.selectors.js +9 -9
- package/cards/index.d.ts.map +1 -1
- package/cards/index.js +9 -7
- package/cards/index.js.map +1 -1
- package/cards/interfaces.d.ts +1 -1
- package/cards/interfaces.js.map +1 -1
- package/help-panel/index.d.ts.map +1 -1
- package/help-panel/index.js +3 -1
- package/help-panel/index.js.map +1 -1
- package/help-panel/styles.css.js +4 -4
- package/help-panel/styles.scoped.css +67 -68
- package/help-panel/styles.selectors.js +4 -4
- package/internal/base-component/styles.scoped.css +0 -8
- package/internal/context/link-default-variant-context.d.ts +6 -0
- package/internal/context/link-default-variant-context.d.ts.map +1 -0
- package/internal/context/link-default-variant-context.js +7 -0
- package/internal/context/link-default-variant-context.js.map +1 -0
- package/internal/environment.js +1 -1
- package/internal/environment.json +1 -1
- package/internal/generated/theming/index.cjs +0 -40
- package/internal/generated/theming/index.js +0 -40
- package/internal/manifest.json +1 -1
- package/link/index.d.ts.map +1 -1
- package/link/index.js +2 -2
- package/link/index.js.map +1 -1
- package/link/interfaces.d.ts +7 -0
- package/link/interfaces.d.ts.map +1 -1
- package/link/interfaces.js.map +1 -1
- package/link/internal.d.ts.map +1 -1
- package/link/internal.js +4 -1
- package/link/internal.js.map +1 -1
- package/link/styles.css.js +20 -20
- package/link/styles.scoped.css +79 -78
- package/link/styles.selectors.js +20 -20
- package/package.json +1 -1
- package/popover/internal.d.ts.map +1 -1
- package/popover/internal.js +3 -1
- package/popover/internal.js.map +1 -1
- package/table/internal.d.ts.map +1 -1
- package/table/internal.js +58 -56
- package/table/internal.js.map +1 -1
- package/text-content/styles.css.js +1 -1
- package/text-content/styles.scoped.css +68 -70
- package/text-content/styles.selectors.js +1 -1
- package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js +1 -1
- package/tutorial-panel/components/tutorial-detail-view/congratulation-screen.js.map +1 -1
- package/tutorial-panel/components/tutorial-list/index.js +1 -1
- package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
- package/wizard/wizard-navigation.js +1 -1
- package/wizard/wizard-navigation.js.map +1 -1
|
@@ -1541,10 +1541,6 @@ module.exports.preset = {
|
|
|
1541
1541
|
"light": "transparent",
|
|
1542
1542
|
"dark": "transparent"
|
|
1543
1543
|
},
|
|
1544
|
-
"colorTextLinkPrimaryUnderline": {
|
|
1545
|
-
"light": "{colorTextLinkDefault}",
|
|
1546
|
-
"dark": "{colorTextLinkDefault}"
|
|
1547
|
-
},
|
|
1548
1544
|
"colorTextNotificationDefault": {
|
|
1549
1545
|
"light": "{colorGrey100}",
|
|
1550
1546
|
"dark": "{colorGrey100}"
|
|
@@ -1676,9 +1672,6 @@ module.exports.preset = {
|
|
|
1676
1672
|
"fontBoxValueLargeWeight": "700",
|
|
1677
1673
|
"fontLinkButtonLetterSpacing": "{fontButtonLetterSpacing}",
|
|
1678
1674
|
"fontLinkButtonWeight": "{fontButtonWeight}",
|
|
1679
|
-
"fontLinkPrimaryDecoration": "underline",
|
|
1680
|
-
"fontLinkPrimaryLetterSpacing": "\"inherit\"",
|
|
1681
|
-
"fontLinkPrimaryWeight": "\"inherit\"",
|
|
1682
1675
|
"fontPanelHeaderLineHeight": "{fontHeadingMLineHeight}",
|
|
1683
1676
|
"fontPanelHeaderSize": "{fontHeadingMSize}",
|
|
1684
1677
|
"fontSmoothingWebkit": "antialiased",
|
|
@@ -3562,10 +3555,6 @@ module.exports.preset = {
|
|
|
3562
3555
|
"light": "transparent",
|
|
3563
3556
|
"dark": "transparent"
|
|
3564
3557
|
},
|
|
3565
|
-
"colorTextLinkPrimaryUnderline": {
|
|
3566
|
-
"light": "{colorTextLinkDefault}",
|
|
3567
|
-
"dark": "{colorTextLinkDefault}"
|
|
3568
|
-
},
|
|
3569
3558
|
"colorTextNotificationDefault": {
|
|
3570
3559
|
"light": "{colorGrey100}",
|
|
3571
3560
|
"dark": "{colorGrey100}"
|
|
@@ -4568,10 +4557,6 @@ module.exports.preset = {
|
|
|
4568
4557
|
"light": "transparent",
|
|
4569
4558
|
"dark": "transparent"
|
|
4570
4559
|
},
|
|
4571
|
-
"colorTextLinkPrimaryUnderline": {
|
|
4572
|
-
"light": "{colorTextLinkDefault}",
|
|
4573
|
-
"dark": "{colorTextLinkDefault}"
|
|
4574
|
-
},
|
|
4575
4560
|
"colorTextNotificationDefault": {
|
|
4576
4561
|
"light": "{colorGrey100}",
|
|
4577
4562
|
"dark": "{colorGrey100}"
|
|
@@ -5506,10 +5491,6 @@ module.exports.preset = {
|
|
|
5506
5491
|
"light": "transparent",
|
|
5507
5492
|
"dark": "transparent"
|
|
5508
5493
|
},
|
|
5509
|
-
"colorTextLinkPrimaryUnderline": {
|
|
5510
|
-
"light": "{colorTextLinkDefault}",
|
|
5511
|
-
"dark": "{colorTextLinkDefault}"
|
|
5512
|
-
},
|
|
5513
5494
|
"colorTextNotificationDefault": {
|
|
5514
5495
|
"light": "{colorGrey100}",
|
|
5515
5496
|
"dark": "{colorGrey100}"
|
|
@@ -6444,10 +6425,6 @@ module.exports.preset = {
|
|
|
6444
6425
|
"light": "transparent",
|
|
6445
6426
|
"dark": "transparent"
|
|
6446
6427
|
},
|
|
6447
|
-
"colorTextLinkPrimaryUnderline": {
|
|
6448
|
-
"light": "{colorTextLinkDefault}",
|
|
6449
|
-
"dark": "{colorTextLinkDefault}"
|
|
6450
|
-
},
|
|
6451
6428
|
"colorTextNotificationDefault": {
|
|
6452
6429
|
"light": "{colorTextNotificationYellow}",
|
|
6453
6430
|
"dark": "{colorTextNotificationYellow}"
|
|
@@ -7382,10 +7359,6 @@ module.exports.preset = {
|
|
|
7382
7359
|
"light": "transparent",
|
|
7383
7360
|
"dark": "transparent"
|
|
7384
7361
|
},
|
|
7385
|
-
"colorTextLinkPrimaryUnderline": {
|
|
7386
|
-
"light": "{colorTextLinkDefault}",
|
|
7387
|
-
"dark": "{colorTextLinkDefault}"
|
|
7388
|
-
},
|
|
7389
7362
|
"colorTextNotificationDefault": {
|
|
7390
7363
|
"light": "{colorGrey100}",
|
|
7391
7364
|
"dark": "{colorGrey100}"
|
|
@@ -8320,10 +8293,6 @@ module.exports.preset = {
|
|
|
8320
8293
|
"light": "transparent",
|
|
8321
8294
|
"dark": "transparent"
|
|
8322
8295
|
},
|
|
8323
|
-
"colorTextLinkPrimaryUnderline": {
|
|
8324
|
-
"light": "{colorTextLinkDefault}",
|
|
8325
|
-
"dark": "{colorTextLinkDefault}"
|
|
8326
|
-
},
|
|
8327
8296
|
"colorTextNotificationDefault": {
|
|
8328
8297
|
"light": "{colorGrey100}",
|
|
8329
8298
|
"dark": "{colorGrey100}"
|
|
@@ -8783,7 +8752,6 @@ module.exports.preset = {
|
|
|
8783
8752
|
"colorTextLinkInvertedHover": "color",
|
|
8784
8753
|
"colorTextLinkButtonUnderline": "color",
|
|
8785
8754
|
"colorTextLinkButtonUnderlineHover": "color",
|
|
8786
|
-
"colorTextLinkPrimaryUnderline": "color",
|
|
8787
8755
|
"colorTextNotificationDefault": "color",
|
|
8788
8756
|
"colorTextNotificationStackBar": "color",
|
|
8789
8757
|
"colorTextNotificationYellow": "color",
|
|
@@ -9870,7 +9838,6 @@ module.exports.preset = {
|
|
|
9870
9838
|
"colorTextLinkInvertedHover": "color-text-link-inverted-hover",
|
|
9871
9839
|
"colorTextLinkButtonUnderline": "color-text-link-button-underline",
|
|
9872
9840
|
"colorTextLinkButtonUnderlineHover": "color-text-link-button-underline-hover",
|
|
9873
|
-
"colorTextLinkPrimaryUnderline": "color-text-link-primary-underline",
|
|
9874
9841
|
"colorTextNotificationDefault": "color-text-notification-default",
|
|
9875
9842
|
"colorTextNotificationStackBar": "color-text-notification-stack-bar",
|
|
9876
9843
|
"colorTextNotificationYellow": "color-text-notification-yellow",
|
|
@@ -9933,9 +9900,6 @@ module.exports.preset = {
|
|
|
9933
9900
|
"fontBoxValueLargeWeight": "font-box-value-large-weight",
|
|
9934
9901
|
"fontLinkButtonLetterSpacing": "font-link-button-letter-spacing",
|
|
9935
9902
|
"fontLinkButtonWeight": "font-link-button-weight",
|
|
9936
|
-
"fontLinkPrimaryDecoration": "font-link-primary-decoration",
|
|
9937
|
-
"fontLinkPrimaryLetterSpacing": "font-link-primary-letter-spacing",
|
|
9938
|
-
"fontLinkPrimaryWeight": "font-link-primary-weight",
|
|
9939
9903
|
"fontPanelHeaderLineHeight": "font-panel-header-line-height",
|
|
9940
9904
|
"fontPanelHeaderSize": "font-panel-header-size",
|
|
9941
9905
|
"fontSmoothingWebkit": "font-smoothing-webkit",
|
|
@@ -10553,7 +10517,6 @@ module.exports.preset = {
|
|
|
10553
10517
|
"colorTextLinkInvertedHover": "--color-text-link-inverted-hover-09cw7h",
|
|
10554
10518
|
"colorTextLinkButtonUnderline": "--color-text-link-button-underline-ik5r9i",
|
|
10555
10519
|
"colorTextLinkButtonUnderlineHover": "--color-text-link-button-underline-hover-gyir88",
|
|
10556
|
-
"colorTextLinkPrimaryUnderline": "--color-text-link-primary-underline-gvxbge",
|
|
10557
10520
|
"colorTextNotificationDefault": "--color-text-notification-default-rdawv9",
|
|
10558
10521
|
"colorTextNotificationStackBar": "--color-text-notification-stack-bar-jc9tvx",
|
|
10559
10522
|
"colorTextNotificationYellow": "--color-text-notification-yellow-p027cz",
|
|
@@ -10616,9 +10579,6 @@ module.exports.preset = {
|
|
|
10616
10579
|
"fontBoxValueLargeWeight": "--font-box-value-large-weight-onoq9k",
|
|
10617
10580
|
"fontLinkButtonLetterSpacing": "--font-link-button-letter-spacing-yi9f0l",
|
|
10618
10581
|
"fontLinkButtonWeight": "--font-link-button-weight-jephf1",
|
|
10619
|
-
"fontLinkPrimaryDecoration": "--font-link-primary-decoration-cp88s8",
|
|
10620
|
-
"fontLinkPrimaryLetterSpacing": "--font-link-primary-letter-spacing-uqaf5f",
|
|
10621
|
-
"fontLinkPrimaryWeight": "--font-link-primary-weight-k726vk",
|
|
10622
10582
|
"fontPanelHeaderLineHeight": "--font-panel-header-line-height-kxi4u2",
|
|
10623
10583
|
"fontPanelHeaderSize": "--font-panel-header-size-edjz3l",
|
|
10624
10584
|
"fontSmoothingWebkit": "--font-smoothing-webkit-m8nc84",
|
|
@@ -1541,10 +1541,6 @@ export var preset = {
|
|
|
1541
1541
|
"light": "transparent",
|
|
1542
1542
|
"dark": "transparent"
|
|
1543
1543
|
},
|
|
1544
|
-
"colorTextLinkPrimaryUnderline": {
|
|
1545
|
-
"light": "{colorTextLinkDefault}",
|
|
1546
|
-
"dark": "{colorTextLinkDefault}"
|
|
1547
|
-
},
|
|
1548
1544
|
"colorTextNotificationDefault": {
|
|
1549
1545
|
"light": "{colorGrey100}",
|
|
1550
1546
|
"dark": "{colorGrey100}"
|
|
@@ -1676,9 +1672,6 @@ export var preset = {
|
|
|
1676
1672
|
"fontBoxValueLargeWeight": "700",
|
|
1677
1673
|
"fontLinkButtonLetterSpacing": "{fontButtonLetterSpacing}",
|
|
1678
1674
|
"fontLinkButtonWeight": "{fontButtonWeight}",
|
|
1679
|
-
"fontLinkPrimaryDecoration": "underline",
|
|
1680
|
-
"fontLinkPrimaryLetterSpacing": "\"inherit\"",
|
|
1681
|
-
"fontLinkPrimaryWeight": "\"inherit\"",
|
|
1682
1675
|
"fontPanelHeaderLineHeight": "{fontHeadingMLineHeight}",
|
|
1683
1676
|
"fontPanelHeaderSize": "{fontHeadingMSize}",
|
|
1684
1677
|
"fontSmoothingWebkit": "antialiased",
|
|
@@ -3562,10 +3555,6 @@ export var preset = {
|
|
|
3562
3555
|
"light": "transparent",
|
|
3563
3556
|
"dark": "transparent"
|
|
3564
3557
|
},
|
|
3565
|
-
"colorTextLinkPrimaryUnderline": {
|
|
3566
|
-
"light": "{colorTextLinkDefault}",
|
|
3567
|
-
"dark": "{colorTextLinkDefault}"
|
|
3568
|
-
},
|
|
3569
3558
|
"colorTextNotificationDefault": {
|
|
3570
3559
|
"light": "{colorGrey100}",
|
|
3571
3560
|
"dark": "{colorGrey100}"
|
|
@@ -4568,10 +4557,6 @@ export var preset = {
|
|
|
4568
4557
|
"light": "transparent",
|
|
4569
4558
|
"dark": "transparent"
|
|
4570
4559
|
},
|
|
4571
|
-
"colorTextLinkPrimaryUnderline": {
|
|
4572
|
-
"light": "{colorTextLinkDefault}",
|
|
4573
|
-
"dark": "{colorTextLinkDefault}"
|
|
4574
|
-
},
|
|
4575
4560
|
"colorTextNotificationDefault": {
|
|
4576
4561
|
"light": "{colorGrey100}",
|
|
4577
4562
|
"dark": "{colorGrey100}"
|
|
@@ -5506,10 +5491,6 @@ export var preset = {
|
|
|
5506
5491
|
"light": "transparent",
|
|
5507
5492
|
"dark": "transparent"
|
|
5508
5493
|
},
|
|
5509
|
-
"colorTextLinkPrimaryUnderline": {
|
|
5510
|
-
"light": "{colorTextLinkDefault}",
|
|
5511
|
-
"dark": "{colorTextLinkDefault}"
|
|
5512
|
-
},
|
|
5513
5494
|
"colorTextNotificationDefault": {
|
|
5514
5495
|
"light": "{colorGrey100}",
|
|
5515
5496
|
"dark": "{colorGrey100}"
|
|
@@ -6444,10 +6425,6 @@ export var preset = {
|
|
|
6444
6425
|
"light": "transparent",
|
|
6445
6426
|
"dark": "transparent"
|
|
6446
6427
|
},
|
|
6447
|
-
"colorTextLinkPrimaryUnderline": {
|
|
6448
|
-
"light": "{colorTextLinkDefault}",
|
|
6449
|
-
"dark": "{colorTextLinkDefault}"
|
|
6450
|
-
},
|
|
6451
6428
|
"colorTextNotificationDefault": {
|
|
6452
6429
|
"light": "{colorTextNotificationYellow}",
|
|
6453
6430
|
"dark": "{colorTextNotificationYellow}"
|
|
@@ -7382,10 +7359,6 @@ export var preset = {
|
|
|
7382
7359
|
"light": "transparent",
|
|
7383
7360
|
"dark": "transparent"
|
|
7384
7361
|
},
|
|
7385
|
-
"colorTextLinkPrimaryUnderline": {
|
|
7386
|
-
"light": "{colorTextLinkDefault}",
|
|
7387
|
-
"dark": "{colorTextLinkDefault}"
|
|
7388
|
-
},
|
|
7389
7362
|
"colorTextNotificationDefault": {
|
|
7390
7363
|
"light": "{colorGrey100}",
|
|
7391
7364
|
"dark": "{colorGrey100}"
|
|
@@ -8320,10 +8293,6 @@ export var preset = {
|
|
|
8320
8293
|
"light": "transparent",
|
|
8321
8294
|
"dark": "transparent"
|
|
8322
8295
|
},
|
|
8323
|
-
"colorTextLinkPrimaryUnderline": {
|
|
8324
|
-
"light": "{colorTextLinkDefault}",
|
|
8325
|
-
"dark": "{colorTextLinkDefault}"
|
|
8326
|
-
},
|
|
8327
8296
|
"colorTextNotificationDefault": {
|
|
8328
8297
|
"light": "{colorGrey100}",
|
|
8329
8298
|
"dark": "{colorGrey100}"
|
|
@@ -8783,7 +8752,6 @@ export var preset = {
|
|
|
8783
8752
|
"colorTextLinkInvertedHover": "color",
|
|
8784
8753
|
"colorTextLinkButtonUnderline": "color",
|
|
8785
8754
|
"colorTextLinkButtonUnderlineHover": "color",
|
|
8786
|
-
"colorTextLinkPrimaryUnderline": "color",
|
|
8787
8755
|
"colorTextNotificationDefault": "color",
|
|
8788
8756
|
"colorTextNotificationStackBar": "color",
|
|
8789
8757
|
"colorTextNotificationYellow": "color",
|
|
@@ -9870,7 +9838,6 @@ export var preset = {
|
|
|
9870
9838
|
"colorTextLinkInvertedHover": "color-text-link-inverted-hover",
|
|
9871
9839
|
"colorTextLinkButtonUnderline": "color-text-link-button-underline",
|
|
9872
9840
|
"colorTextLinkButtonUnderlineHover": "color-text-link-button-underline-hover",
|
|
9873
|
-
"colorTextLinkPrimaryUnderline": "color-text-link-primary-underline",
|
|
9874
9841
|
"colorTextNotificationDefault": "color-text-notification-default",
|
|
9875
9842
|
"colorTextNotificationStackBar": "color-text-notification-stack-bar",
|
|
9876
9843
|
"colorTextNotificationYellow": "color-text-notification-yellow",
|
|
@@ -9933,9 +9900,6 @@ export var preset = {
|
|
|
9933
9900
|
"fontBoxValueLargeWeight": "font-box-value-large-weight",
|
|
9934
9901
|
"fontLinkButtonLetterSpacing": "font-link-button-letter-spacing",
|
|
9935
9902
|
"fontLinkButtonWeight": "font-link-button-weight",
|
|
9936
|
-
"fontLinkPrimaryDecoration": "font-link-primary-decoration",
|
|
9937
|
-
"fontLinkPrimaryLetterSpacing": "font-link-primary-letter-spacing",
|
|
9938
|
-
"fontLinkPrimaryWeight": "font-link-primary-weight",
|
|
9939
9903
|
"fontPanelHeaderLineHeight": "font-panel-header-line-height",
|
|
9940
9904
|
"fontPanelHeaderSize": "font-panel-header-size",
|
|
9941
9905
|
"fontSmoothingWebkit": "font-smoothing-webkit",
|
|
@@ -10553,7 +10517,6 @@ export var preset = {
|
|
|
10553
10517
|
"colorTextLinkInvertedHover": "--color-text-link-inverted-hover-09cw7h",
|
|
10554
10518
|
"colorTextLinkButtonUnderline": "--color-text-link-button-underline-ik5r9i",
|
|
10555
10519
|
"colorTextLinkButtonUnderlineHover": "--color-text-link-button-underline-hover-gyir88",
|
|
10556
|
-
"colorTextLinkPrimaryUnderline": "--color-text-link-primary-underline-gvxbge",
|
|
10557
10520
|
"colorTextNotificationDefault": "--color-text-notification-default-rdawv9",
|
|
10558
10521
|
"colorTextNotificationStackBar": "--color-text-notification-stack-bar-jc9tvx",
|
|
10559
10522
|
"colorTextNotificationYellow": "--color-text-notification-yellow-p027cz",
|
|
@@ -10616,9 +10579,6 @@ export var preset = {
|
|
|
10616
10579
|
"fontBoxValueLargeWeight": "--font-box-value-large-weight-onoq9k",
|
|
10617
10580
|
"fontLinkButtonLetterSpacing": "--font-link-button-letter-spacing-yi9f0l",
|
|
10618
10581
|
"fontLinkButtonWeight": "--font-link-button-weight-jephf1",
|
|
10619
|
-
"fontLinkPrimaryDecoration": "--font-link-primary-decoration-cp88s8",
|
|
10620
|
-
"fontLinkPrimaryLetterSpacing": "--font-link-primary-letter-spacing-uqaf5f",
|
|
10621
|
-
"fontLinkPrimaryWeight": "--font-link-primary-weight-k726vk",
|
|
10622
10582
|
"fontPanelHeaderLineHeight": "--font-panel-header-line-height-kxi4u2",
|
|
10623
10583
|
"fontPanelHeaderSize": "--font-panel-header-size-edjz3l",
|
|
10624
10584
|
"fontSmoothingWebkit": "--font-smoothing-webkit-m8nc84",
|
package/internal/manifest.json
CHANGED
package/link/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,QAAA,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,QAAA,MAAM,IAAI,iFAcT,CAAC;AAGF,eAAe,IAAI,CAAC"}
|
package/link/index.js
CHANGED
|
@@ -6,9 +6,9 @@ import useBaseComponent from '../internal/hooks/use-base-component';
|
|
|
6
6
|
import { applyDisplayName } from '../internal/utils/apply-display-name';
|
|
7
7
|
import InternalLink from './internal';
|
|
8
8
|
const Link = React.forwardRef((_a, ref) => {
|
|
9
|
-
var {
|
|
9
|
+
var { fontSize = 'body-m', color = 'normal', external = false } = _a, props = __rest(_a, ["fontSize", "color", "external"]);
|
|
10
10
|
const baseComponentProps = useBaseComponent('Link');
|
|
11
|
-
return (React.createElement(InternalLink, Object.assign({
|
|
11
|
+
return (React.createElement(InternalLink, Object.assign({ fontSize: fontSize, color: color, external: external }, props, baseComponentProps, { ref: ref })));
|
|
12
12
|
});
|
|
13
13
|
applyDisplayName(Link, 'Link');
|
|
14
14
|
export default Link;
|
package/link/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["link/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,YAAY,MAAM,YAAY,CAAC;AAItC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["link/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,YAAY,MAAM,YAAY,CAAC;AAItC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CAAC,EAAgF,EAAE,GAA6B,EAAE,EAAE;QAAnH,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAAE,QAAQ,GAAG,KAAK,OAAuB,EAAlB,KAAK,cAAnE,iCAAqE,CAAF;IAClE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,CACL,oBAAC,YAAY,kBACX,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,IACd,KAAK,EACL,kBAAkB,IACtB,GAAG,EAAE,GAAG,IACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,eAAe,IAAI,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { LinkProps } from './interfaces';\nimport InternalLink from './internal';\n\nexport { LinkProps };\n\nconst Link = React.forwardRef(\n ({ fontSize = 'body-m', color = 'normal', external = false, ...props }: LinkProps, ref: React.Ref<LinkProps.Ref>) => {\n const baseComponentProps = useBaseComponent('Link');\n return (\n <InternalLink\n fontSize={fontSize}\n color={color}\n external={external}\n {...props}\n {...baseComponentProps}\n ref={ref}\n />\n );\n }\n);\n\napplyDisplayName(Link, 'Link');\nexport default Link;\n"]}
|
package/link/interfaces.d.ts
CHANGED
|
@@ -11,6 +11,13 @@ export interface LinkProps extends BaseComponentProps {
|
|
|
11
11
|
* This can be used in cases where the interactivity is strongly implied by its context,
|
|
12
12
|
* such as in a table or a list of external links.
|
|
13
13
|
* - `info` - Use for "info" links that link to content in a help panel.
|
|
14
|
+
*
|
|
15
|
+
* The default is `secondary`, except inside the following components where it defaults to `primary`:
|
|
16
|
+
* - Table
|
|
17
|
+
* - Cards
|
|
18
|
+
* - Alert
|
|
19
|
+
* - Popover
|
|
20
|
+
* - Help Panel (main `content` only)
|
|
14
21
|
*/
|
|
15
22
|
variant?: LinkProps.Variant;
|
|
16
23
|
/**
|
package/link/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["link/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["link/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;IAE9B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAE1D;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,yBAAiB,SAAS,CAAC;IACzB,KAAY,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,mBAAmB,CAAC;IAC7E,KAAY,QAAQ,GAChB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;IACd,KAAY,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE1C,KAAY,YAAY,GAAG,oBAAoB,CAAC;IAEhD,UAAiB,GAAG;QAClB;;WAEG;QACH,KAAK,IAAI,IAAI,CAAC;KACf;CACF"}
|
package/link/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["link/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport React from 'react';\nimport { BaseNavigationDetail, CancelableEventHandler } from '../internal/events';\n\nexport interface LinkProps extends BaseComponentProps {\n /**\n * Determines the visual style of the link as follows:\n * - `primary` - Displays the link text with bold styling for sufficient contrast with surrounding text.\n * Use this for links where the context doesn't imply interactivity such as\n * \"Learn more\" links and links within paragraphs.\n * - `secondary` - Does not provide any additional indicators for interactivity (except for an underline when the user hovers over or focuses the link).\n * This can be used in cases where the interactivity is strongly implied by its context,\n * such as in a table or a list of external links.\n * - `info` - Use for \"info\" links that link to content in a help panel.\n */\n variant?: LinkProps.Variant;\n\n /**\n * Determines the font size and line height.\n * This property is overridden if the variant is `info`.\n */\n fontSize?: LinkProps.FontSize;\n\n /**\n * Determines the text color of the link and its icon.\n * - `normal`: Use in most cases where a link is required.\n * - `inverted`: Use to style links inside Flashbars.\n *\n * This property is overridden if the variant is `info`.\n */\n color?: LinkProps.Color;\n\n /**\n * Marks the link as external by adding an icon after the text. If `href`\n * is provided, opens the link in a new tab when clicked.\n */\n external?: boolean;\n\n /**\n * Specifies where to open the linked URL. Set this to `_blank` to open the URL\n * in a new tab. If you set this property to `_blank`, the component\n * automatically adds `rel=\"noopener noreferrer\"` to avoid performance\n * and security issues.\n *\n * For other options see the documentation for <a> tag's\n * [target attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target).\n */\n target?: string;\n\n /**\n * The URL that the link points to.\n * If an `href` is not provided, the component will render using a\n * \"button\" role and `target` will not be used.\n */\n href?: string;\n\n /**\n * The text to render inside the link.\n */\n children?: React.ReactNode;\n\n /**\n * Adds an aria-label to the HTML element.\n */\n ariaLabel?: string;\n\n /**\n * Adds an aria-label to the external icon.\n * @i18n\n */\n externalIconAriaLabel?: string;\n\n /**\n * Called when a link is clicked without any modifier keys. If the link has no `href` provided, it will be called on\n * all clicks.\n *\n * If you want to implement client-side routing yourself, use this event and prevent default browser navigation\n * (by calling `preventDefault`).\n */\n onFollow?: CancelableEventHandler<LinkProps.FollowDetail>;\n\n /**\n * Adds a `rel` attribute to the link. If the `rel` property is provided, it overrides the default behaviour.\n * By default, the component sets the `rel` attribute to \"noopener noreferrer\" when `external` is `true` or `target` is `\"_blank\"`.\n */\n rel?: string;\n}\n\nexport namespace LinkProps {\n export type Variant = 'primary' | 'secondary' | 'info' | 'awsui-value-large';\n export type FontSize =\n | 'body-s'\n | 'body-m'\n | 'heading-xs'\n | 'heading-s'\n | 'heading-m'\n | 'heading-l'\n | 'heading-xl'\n | 'display-l'\n | 'inherit';\n export type Color = 'normal' | 'inverted';\n\n export type FollowDetail = BaseNavigationDetail;\n\n export interface Ref {\n /**\n * Sets the browser focus on the anchor element.\n */\n focus(): void;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["link/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\nimport React from 'react';\nimport { BaseNavigationDetail, CancelableEventHandler } from '../internal/events';\n\nexport interface LinkProps extends BaseComponentProps {\n /**\n * Determines the visual style of the link as follows:\n * - `primary` - Displays the link text with bold styling for sufficient contrast with surrounding text.\n * Use this for links where the context doesn't imply interactivity such as\n * \"Learn more\" links and links within paragraphs.\n * - `secondary` - Does not provide any additional indicators for interactivity (except for an underline when the user hovers over or focuses the link).\n * This can be used in cases where the interactivity is strongly implied by its context,\n * such as in a table or a list of external links.\n * - `info` - Use for \"info\" links that link to content in a help panel.\n *\n * The default is `secondary`, except inside the following components where it defaults to `primary`:\n * - Table\n * - Cards\n * - Alert\n * - Popover\n * - Help Panel (main `content` only)\n */\n variant?: LinkProps.Variant;\n\n /**\n * Determines the font size and line height.\n * This property is overridden if the variant is `info`.\n */\n fontSize?: LinkProps.FontSize;\n\n /**\n * Determines the text color of the link and its icon.\n * - `normal`: Use in most cases where a link is required.\n * - `inverted`: Use to style links inside Flashbars.\n *\n * This property is overridden if the variant is `info`.\n */\n color?: LinkProps.Color;\n\n /**\n * Marks the link as external by adding an icon after the text. If `href`\n * is provided, opens the link in a new tab when clicked.\n */\n external?: boolean;\n\n /**\n * Specifies where to open the linked URL. Set this to `_blank` to open the URL\n * in a new tab. If you set this property to `_blank`, the component\n * automatically adds `rel=\"noopener noreferrer\"` to avoid performance\n * and security issues.\n *\n * For other options see the documentation for <a> tag's\n * [target attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target).\n */\n target?: string;\n\n /**\n * The URL that the link points to.\n * If an `href` is not provided, the component will render using a\n * \"button\" role and `target` will not be used.\n */\n href?: string;\n\n /**\n * The text to render inside the link.\n */\n children?: React.ReactNode;\n\n /**\n * Adds an aria-label to the HTML element.\n */\n ariaLabel?: string;\n\n /**\n * Adds an aria-label to the external icon.\n * @i18n\n */\n externalIconAriaLabel?: string;\n\n /**\n * Called when a link is clicked without any modifier keys. If the link has no `href` provided, it will be called on\n * all clicks.\n *\n * If you want to implement client-side routing yourself, use this event and prevent default browser navigation\n * (by calling `preventDefault`).\n */\n onFollow?: CancelableEventHandler<LinkProps.FollowDetail>;\n\n /**\n * Adds a `rel` attribute to the link. If the `rel` property is provided, it overrides the default behaviour.\n * By default, the component sets the `rel` attribute to \"noopener noreferrer\" when `external` is `true` or `target` is `\"_blank\"`.\n */\n rel?: string;\n}\n\nexport namespace LinkProps {\n export type Variant = 'primary' | 'secondary' | 'info' | 'awsui-value-large';\n export type FontSize =\n | 'body-s'\n | 'body-m'\n | 'heading-xs'\n | 'heading-s'\n | 'heading-m'\n | 'heading-l'\n | 'heading-xl'\n | 'display-l'\n | 'inherit';\n export type Color = 'normal' | 'inverted';\n\n export type FollowDetail = BaseNavigationDetail;\n\n export interface Ref {\n /**\n * Sets the browser focus on the anchor element.\n */\n focus(): void;\n }\n}\n"]}
|
package/link/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["link/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAQlD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["link/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAQlD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAuBlF,QAAA,MAAM,YAAY;cAHJ,SAAS,CAAC,SAAS,CAAC,GAAG,gBAAgB,GAAG,MAAM,GAAG,UAAU;uCA4K1E,CAAC;AAqBF,eAAe,YAAY,CAAC"}
|
package/link/internal.js
CHANGED
|
@@ -18,10 +18,13 @@ import { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytic
|
|
|
18
18
|
import { FunnelMetrics } from '../internal/analytics';
|
|
19
19
|
import { useUniqueId } from '../internal/hooks/use-unique-id';
|
|
20
20
|
import { DATA_ATTR_FUNNEL_VALUE, getFunnelValueSelector, getNameFromSelector, getSubStepAllSelector, } from '../internal/analytics/selectors';
|
|
21
|
+
import { LinkDefaultVariantContext } from '../internal/context/link-default-variant-context';
|
|
21
22
|
const InternalLink = React.forwardRef((_a, ref) => {
|
|
22
|
-
var { variant
|
|
23
|
+
var { variant: providedVariant, fontSize = 'body-m', color = 'normal', external = false, target, href, rel, ariaLabel, externalIconAriaLabel, onFollow, children, __internalRootRef = null } = _a, props = __rest(_a, ["variant", "fontSize", "color", "external", "target", "href", "rel", "ariaLabel", "externalIconAriaLabel", "onFollow", "children", "__internalRootRef"]);
|
|
23
24
|
checkSafeUrl('Link', href);
|
|
24
25
|
const isButton = !href;
|
|
26
|
+
const { defaultVariant } = useContext(LinkDefaultVariantContext);
|
|
27
|
+
const variant = providedVariant || defaultVariant;
|
|
25
28
|
const specialStyles = ['top-navigation', 'link', 'recovery'];
|
|
26
29
|
const hasSpecialStyle = specialStyles.indexOf(variant) > -1;
|
|
27
30
|
const i18n = useInternalI18n('link');
|
package/link/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["link/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\nimport React, { useContext, useRef } from 'react';\nimport clsx from 'clsx';\nimport InternalIcon from '../icon/internal';\nimport styles from './styles.css.js';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { KeyCode } from '../internal/keycode';\nimport { LinkProps } from './interfaces';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport { useInternalI18n } from '../i18n/context';\nimport { InfoLinkLabelContext } from '../internal/context/info-link-label-context';\nimport { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\n\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport {\n DATA_ATTR_FUNNEL_VALUE,\n getFunnelValueSelector,\n getNameFromSelector,\n getSubStepAllSelector,\n} from '../internal/analytics/selectors';\n\ntype InternalLinkProps = InternalBaseComponentProps &\n Omit<LinkProps, 'variant'> & {\n variant?: LinkProps['variant'] | 'top-navigation' | 'link' | 'recovery';\n };\n\nconst InternalLink = React.forwardRef(\n (\n {\n variant = 'secondary',\n fontSize = 'body-m',\n color = 'normal',\n external = false,\n target,\n href,\n rel,\n ariaLabel,\n externalIconAriaLabel,\n onFollow,\n children,\n __internalRootRef = null,\n ...props\n }: InternalLinkProps,\n ref: React.Ref<LinkProps.Ref>\n ) => {\n checkSafeUrl('Link', href);\n const isButton = !href;\n const specialStyles = ['top-navigation', 'link', 'recovery'];\n const hasSpecialStyle = specialStyles.indexOf(variant) > -1;\n\n const i18n = useInternalI18n('link');\n const baseProps = getBaseProps(props);\n const anchorTarget = target ?? (external ? '_blank' : undefined);\n const anchorRel = rel ?? (anchorTarget === '_blank' ? 'noopener noreferrer' : undefined);\n const uniqueId = useUniqueId('link');\n const linkId = useUniqueId('link-self');\n const infoId = useUniqueId('link-info');\n\n const infoLinkLabelFromContext = useContext(InfoLinkLabelContext);\n\n const { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n const { subStepSelector, subStepNameSelector } = useFunnelSubStep();\n\n const fireFunnelEvent = (funnelInteractionId: string) => {\n if (variant === 'info') {\n const stepName = getNameFromSelector(stepNameSelector);\n const subStepName = getNameFromSelector(subStepNameSelector);\n\n FunnelMetrics.helpPanelInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n } else if (external) {\n const stepName = getNameFromSelector(stepNameSelector);\n const subStepName = getNameFromSelector(subStepNameSelector);\n\n FunnelMetrics.externalLinkInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n };\n\n const fireFollowEvent = (event: React.SyntheticEvent) => {\n if (funnelInteractionId) {\n fireFunnelEvent(funnelInteractionId);\n }\n\n fireCancelableEvent(onFollow, { href, external, target: anchorTarget }, event);\n };\n\n const handleLinkClick = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollowEvent(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent) => {\n fireFollowEvent(event);\n };\n\n const handleButtonKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n fireFollowEvent(event);\n }\n };\n\n const linkRef = useRef<HTMLElement>(null);\n const isVisualRefresh = useVisualRefresh();\n useForwardFocus(ref, linkRef);\n\n // Visual refresh should only add styles to buttons that don't already have unique styles (e.g. primary/secondary variants)\n const applyButtonStyles = isButton && isVisualRefresh && !hasSpecialStyle;\n\n const sharedProps = {\n id: linkId,\n ...baseProps,\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: useMergeRefs(linkRef as any, __internalRootRef),\n className: clsx(\n styles.link,\n baseProps.className,\n applyButtonStyles ? styles.button : null,\n styles[getVariantStyle(variant)],\n styles[getFontSizeStyle(variant, fontSize)],\n styles[getColorStyle(variant, color)]\n ),\n 'aria-label': ariaLabel,\n 'aria-labelledby': '',\n [DATA_ATTR_FUNNEL_VALUE]: uniqueId,\n };\n\n if (variant === 'info' && infoLinkLabelFromContext && !ariaLabel) {\n sharedProps['aria-labelledby'] = `${sharedProps.id} ${infoId} ${infoLinkLabelFromContext}`;\n }\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', externalIconAriaLabel);\n const content = (\n <>\n {children}\n {external && (\n <span className={styles['icon-wrapper']}>\n \n <span\n className={styles.icon}\n aria-label={renderedExternalIconAriaLabel}\n role={renderedExternalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" size=\"inherit\" />\n </span>\n </span>\n )}\n {variant === 'info' && (\n <span hidden={true} id={infoId}>\n :\n </span>\n )}\n </>\n );\n\n if (isButton) {\n return (\n <a {...sharedProps} role=\"button\" tabIndex={0} onKeyDown={handleButtonKeyDown} onClick={handleButtonClick}>\n {content}\n </a>\n );\n }\n\n return (\n // we dynamically set proper rel in the code above\n // eslint-disable-next-line react/jsx-no-target-blank\n <a {...sharedProps} target={anchorTarget} rel={anchorRel} href={href} onClick={handleLinkClick}>\n {content}\n </a>\n );\n }\n);\n\nfunction getVariantStyle(variant: Exclude<InternalLinkProps['variant'], undefined>) {\n return `variant-${variant.replace(/^awsui-/, '')}`;\n}\n\nfunction getFontSizeStyle(variant: InternalLinkProps['variant'], fontSize: InternalLinkProps['fontSize']) {\n switch (variant) {\n case 'info':\n return 'font-size-body-s';\n case 'awsui-value-large':\n return 'font-size-display-l';\n default:\n return `font-size-${fontSize}`;\n }\n}\n\nfunction getColorStyle(variant: InternalLinkProps['variant'], color: InternalLinkProps['color']) {\n return `color-${variant === 'info' ? 'normal' : color}`;\n}\n\nexport default InternalLink;\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"lib/default/","sources":["link/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\nimport React, { useContext, useRef } from 'react';\nimport clsx from 'clsx';\nimport InternalIcon from '../icon/internal';\nimport styles from './styles.css.js';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { KeyCode } from '../internal/keycode';\nimport { LinkProps } from './interfaces';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport { useInternalI18n } from '../i18n/context';\nimport { InfoLinkLabelContext } from '../internal/context/info-link-label-context';\nimport { useFunnel, useFunnelStep, useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\n\nimport { FunnelMetrics } from '../internal/analytics';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport {\n DATA_ATTR_FUNNEL_VALUE,\n getFunnelValueSelector,\n getNameFromSelector,\n getSubStepAllSelector,\n} from '../internal/analytics/selectors';\nimport { LinkDefaultVariantContext } from '../internal/context/link-default-variant-context';\n\ntype InternalLinkProps = InternalBaseComponentProps &\n Omit<LinkProps, 'variant'> & {\n variant?: LinkProps['variant'] | 'top-navigation' | 'link' | 'recovery';\n };\n\nconst InternalLink = React.forwardRef(\n (\n {\n variant: providedVariant,\n fontSize = 'body-m',\n color = 'normal',\n external = false,\n target,\n href,\n rel,\n ariaLabel,\n externalIconAriaLabel,\n onFollow,\n children,\n __internalRootRef = null,\n ...props\n }: InternalLinkProps,\n ref: React.Ref<LinkProps.Ref>\n ) => {\n checkSafeUrl('Link', href);\n const isButton = !href;\n const { defaultVariant } = useContext(LinkDefaultVariantContext);\n const variant = providedVariant || defaultVariant;\n const specialStyles = ['top-navigation', 'link', 'recovery'];\n const hasSpecialStyle = specialStyles.indexOf(variant) > -1;\n\n const i18n = useInternalI18n('link');\n const baseProps = getBaseProps(props);\n const anchorTarget = target ?? (external ? '_blank' : undefined);\n const anchorRel = rel ?? (anchorTarget === '_blank' ? 'noopener noreferrer' : undefined);\n const uniqueId = useUniqueId('link');\n const linkId = useUniqueId('link-self');\n const infoId = useUniqueId('link-info');\n\n const infoLinkLabelFromContext = useContext(InfoLinkLabelContext);\n\n const { funnelInteractionId } = useFunnel();\n const { stepNumber, stepNameSelector } = useFunnelStep();\n const { subStepSelector, subStepNameSelector } = useFunnelSubStep();\n\n const fireFunnelEvent = (funnelInteractionId: string) => {\n if (variant === 'info') {\n const stepName = getNameFromSelector(stepNameSelector);\n const subStepName = getNameFromSelector(subStepNameSelector);\n\n FunnelMetrics.helpPanelInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n } else if (external) {\n const stepName = getNameFromSelector(stepNameSelector);\n const subStepName = getNameFromSelector(subStepNameSelector);\n\n FunnelMetrics.externalLinkInteracted({\n funnelInteractionId,\n stepNumber,\n stepName,\n stepNameSelector,\n subStepSelector,\n subStepName,\n subStepNameSelector,\n elementSelector: getFunnelValueSelector(uniqueId),\n subStepAllSelector: getSubStepAllSelector(),\n });\n }\n };\n\n const fireFollowEvent = (event: React.SyntheticEvent) => {\n if (funnelInteractionId) {\n fireFunnelEvent(funnelInteractionId);\n }\n\n fireCancelableEvent(onFollow, { href, external, target: anchorTarget }, event);\n };\n\n const handleLinkClick = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollowEvent(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent) => {\n fireFollowEvent(event);\n };\n\n const handleButtonKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n fireFollowEvent(event);\n }\n };\n\n const linkRef = useRef<HTMLElement>(null);\n const isVisualRefresh = useVisualRefresh();\n useForwardFocus(ref, linkRef);\n\n // Visual refresh should only add styles to buttons that don't already have unique styles (e.g. primary/secondary variants)\n const applyButtonStyles = isButton && isVisualRefresh && !hasSpecialStyle;\n\n const sharedProps = {\n id: linkId,\n ...baseProps,\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: useMergeRefs(linkRef as any, __internalRootRef),\n className: clsx(\n styles.link,\n baseProps.className,\n applyButtonStyles ? styles.button : null,\n styles[getVariantStyle(variant)],\n styles[getFontSizeStyle(variant, fontSize)],\n styles[getColorStyle(variant, color)]\n ),\n 'aria-label': ariaLabel,\n 'aria-labelledby': '',\n [DATA_ATTR_FUNNEL_VALUE]: uniqueId,\n };\n\n if (variant === 'info' && infoLinkLabelFromContext && !ariaLabel) {\n sharedProps['aria-labelledby'] = `${sharedProps.id} ${infoId} ${infoLinkLabelFromContext}`;\n }\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', externalIconAriaLabel);\n const content = (\n <>\n {children}\n {external && (\n <span className={styles['icon-wrapper']}>\n \n <span\n className={styles.icon}\n aria-label={renderedExternalIconAriaLabel}\n role={renderedExternalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" size=\"inherit\" />\n </span>\n </span>\n )}\n {variant === 'info' && (\n <span hidden={true} id={infoId}>\n :\n </span>\n )}\n </>\n );\n\n if (isButton) {\n return (\n <a {...sharedProps} role=\"button\" tabIndex={0} onKeyDown={handleButtonKeyDown} onClick={handleButtonClick}>\n {content}\n </a>\n );\n }\n\n return (\n // we dynamically set proper rel in the code above\n // eslint-disable-next-line react/jsx-no-target-blank\n <a {...sharedProps} target={anchorTarget} rel={anchorRel} href={href} onClick={handleLinkClick}>\n {content}\n </a>\n );\n }\n);\n\nfunction getVariantStyle(variant: Exclude<InternalLinkProps['variant'], undefined>) {\n return `variant-${variant.replace(/^awsui-/, '')}`;\n}\n\nfunction getFontSizeStyle(variant: InternalLinkProps['variant'], fontSize: InternalLinkProps['fontSize']) {\n switch (variant) {\n case 'info':\n return 'font-size-body-s';\n case 'awsui-value-large':\n return 'font-size-display-l';\n default:\n return `font-size-${fontSize}`;\n }\n}\n\nfunction getColorStyle(variant: InternalLinkProps['variant'], color: InternalLinkProps['color']) {\n return `color-${variant === 'info' ? 'normal' : color}`;\n}\n\nexport default InternalLink;\n"]}
|
package/link/styles.css.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"link": "
|
|
5
|
-
"variant-secondary": "awsui_variant-
|
|
6
|
-
"variant-primary": "awsui_variant-
|
|
7
|
-
"variant-info": "awsui_variant-
|
|
8
|
-
"variant-value-large": "awsui_variant-value-
|
|
9
|
-
"variant-top-navigation": "awsui_variant-top-
|
|
10
|
-
"variant-recovery": "awsui_variant-
|
|
11
|
-
"button": "
|
|
12
|
-
"color-inverted": "awsui_color-
|
|
13
|
-
"font-size-body-s": "awsui_font-size-body-
|
|
14
|
-
"font-size-body-m": "awsui_font-size-body-
|
|
15
|
-
"font-size-heading-xs": "awsui_font-size-heading-
|
|
16
|
-
"font-size-heading-s": "awsui_font-size-heading-
|
|
17
|
-
"font-size-heading-m": "awsui_font-size-heading-
|
|
18
|
-
"font-size-heading-l": "awsui_font-size-heading-
|
|
19
|
-
"font-size-heading-xl": "awsui_font-size-heading-
|
|
20
|
-
"font-size-display-l": "awsui_font-size-display-
|
|
21
|
-
"font-size-inherit": "awsui_font-size-
|
|
22
|
-
"icon-wrapper": "awsui_icon-
|
|
23
|
-
"icon": "
|
|
4
|
+
"link": "awsui_link_4c84z_r9eng_93",
|
|
5
|
+
"variant-secondary": "awsui_variant-secondary_4c84z_r9eng_140",
|
|
6
|
+
"variant-primary": "awsui_variant-primary_4c84z_r9eng_177",
|
|
7
|
+
"variant-info": "awsui_variant-info_4c84z_r9eng_212",
|
|
8
|
+
"variant-value-large": "awsui_variant-value-large_4c84z_r9eng_249",
|
|
9
|
+
"variant-top-navigation": "awsui_variant-top-navigation_4c84z_r9eng_285",
|
|
10
|
+
"variant-recovery": "awsui_variant-recovery_4c84z_r9eng_320",
|
|
11
|
+
"button": "awsui_button_4c84z_r9eng_355",
|
|
12
|
+
"color-inverted": "awsui_color-inverted_4c84z_r9eng_392",
|
|
13
|
+
"font-size-body-s": "awsui_font-size-body-s_4c84z_r9eng_411",
|
|
14
|
+
"font-size-body-m": "awsui_font-size-body-m_4c84z_r9eng_416",
|
|
15
|
+
"font-size-heading-xs": "awsui_font-size-heading-xs_4c84z_r9eng_420",
|
|
16
|
+
"font-size-heading-s": "awsui_font-size-heading-s_4c84z_r9eng_424",
|
|
17
|
+
"font-size-heading-m": "awsui_font-size-heading-m_4c84z_r9eng_429",
|
|
18
|
+
"font-size-heading-l": "awsui_font-size-heading-l_4c84z_r9eng_434",
|
|
19
|
+
"font-size-heading-xl": "awsui_font-size-heading-xl_4c84z_r9eng_439",
|
|
20
|
+
"font-size-display-l": "awsui_font-size-display-l_4c84z_r9eng_444",
|
|
21
|
+
"font-size-inherit": "awsui_font-size-inherit_4c84z_r9eng_449",
|
|
22
|
+
"icon-wrapper": "awsui_icon-wrapper_4c84z_r9eng_455",
|
|
23
|
+
"icon": "awsui_icon_4c84z_r9eng_455"
|
|
24
24
|
};
|
|
25
25
|
|