@govtechsg/sgds-web-component 3.17.1-rc.0 → 3.18.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/base/card-element.d.ts +1 -0
  2. package/base/card-element.js +14 -0
  3. package/base/card-element.js.map +1 -1
  4. package/base/card.js +1 -1
  5. package/components/Breadcrumb/index.umd.min.js +10 -16
  6. package/components/Breadcrumb/index.umd.min.js.map +1 -1
  7. package/components/Card/index.umd.min.js +2 -2
  8. package/components/Card/index.umd.min.js.map +1 -1
  9. package/components/Card/sgds-card.js +3 -9
  10. package/components/Card/sgds-card.js.map +1 -1
  11. package/components/ComboBox/index.umd.min.js +1 -1
  12. package/components/ComboBox/index.umd.min.js.map +1 -1
  13. package/components/Datepicker/index.umd.min.js +1 -1
  14. package/components/Datepicker/index.umd.min.js.map +1 -1
  15. package/components/Dropdown/dropdown-menu.js +1 -1
  16. package/components/Dropdown/dropdown.js +1 -1
  17. package/components/Dropdown/index.umd.min.js +3 -9
  18. package/components/Dropdown/index.umd.min.js.map +1 -1
  19. package/components/Dropdown/sgds-dropdown.js +19 -11
  20. package/components/Dropdown/sgds-dropdown.js.map +1 -1
  21. package/components/IconCard/index.umd.min.js +3 -3
  22. package/components/IconCard/index.umd.min.js.map +1 -1
  23. package/components/IconCard/sgds-icon-card.js +3 -9
  24. package/components/IconCard/sgds-icon-card.js.map +1 -1
  25. package/components/ImageCard/index.umd.min.js +2 -2
  26. package/components/ImageCard/index.umd.min.js.map +1 -1
  27. package/components/ImageCard/sgds-image-card.js +3 -9
  28. package/components/ImageCard/sgds-image-card.js.map +1 -1
  29. package/components/Mainnav/index.umd.min.js +10 -16
  30. package/components/Mainnav/index.umd.min.js.map +1 -1
  31. package/components/OverflowMenu/index.umd.min.js +3 -9
  32. package/components/OverflowMenu/index.umd.min.js.map +1 -1
  33. package/components/Select/index.umd.min.js +1 -1
  34. package/components/Select/index.umd.min.js.map +1 -1
  35. package/components/Stepper/index.umd.min.js +5 -6
  36. package/components/Stepper/index.umd.min.js.map +1 -1
  37. package/components/Stepper/sgds-step.js +3 -4
  38. package/components/Stepper/sgds-step.js.map +1 -1
  39. package/components/Stepper/sgds-stepper.js +8 -2
  40. package/components/Stepper/sgds-stepper.js.map +1 -1
  41. package/components/Stepper/step.js +1 -1
  42. package/components/ThumbnailCard/index.umd.min.js +5 -5
  43. package/components/ThumbnailCard/index.umd.min.js.map +1 -1
  44. package/components/ThumbnailCard/sgds-thumbnail-card.js +6 -9
  45. package/components/ThumbnailCard/sgds-thumbnail-card.js.map +1 -1
  46. package/components/index.umd.min.js +8 -14
  47. package/components/index.umd.min.js.map +1 -1
  48. package/custom-elements.json +95 -1
  49. package/index.umd.min.js +12 -19
  50. package/index.umd.min.js.map +1 -1
  51. package/package.json +1 -1
  52. package/react/base/card-element.cjs.js +14 -0
  53. package/react/base/card-element.cjs.js.map +1 -1
  54. package/react/base/card-element.js +14 -0
  55. package/react/base/card-element.js.map +1 -1
  56. package/react/base/card.cjs.js +1 -1
  57. package/react/base/card.js +1 -1
  58. package/react/components/Card/sgds-card.cjs.js +3 -9
  59. package/react/components/Card/sgds-card.cjs.js.map +1 -1
  60. package/react/components/Card/sgds-card.js +3 -9
  61. package/react/components/Card/sgds-card.js.map +1 -1
  62. package/react/components/Dropdown/dropdown-menu.cjs.js +1 -1
  63. package/react/components/Dropdown/dropdown-menu.js +1 -1
  64. package/react/components/Dropdown/dropdown.cjs.js +1 -1
  65. package/react/components/Dropdown/dropdown.js +1 -1
  66. package/react/components/Dropdown/sgds-dropdown.cjs.js +19 -11
  67. package/react/components/Dropdown/sgds-dropdown.cjs.js.map +1 -1
  68. package/react/components/Dropdown/sgds-dropdown.js +19 -11
  69. package/react/components/Dropdown/sgds-dropdown.js.map +1 -1
  70. package/react/components/IconCard/sgds-icon-card.cjs.js +3 -9
  71. package/react/components/IconCard/sgds-icon-card.cjs.js.map +1 -1
  72. package/react/components/IconCard/sgds-icon-card.js +3 -9
  73. package/react/components/IconCard/sgds-icon-card.js.map +1 -1
  74. package/react/components/ImageCard/sgds-image-card.cjs.js +3 -9
  75. package/react/components/ImageCard/sgds-image-card.cjs.js.map +1 -1
  76. package/react/components/ImageCard/sgds-image-card.js +3 -9
  77. package/react/components/ImageCard/sgds-image-card.js.map +1 -1
  78. package/react/components/Stepper/sgds-step.cjs.js +3 -4
  79. package/react/components/Stepper/sgds-step.cjs.js.map +1 -1
  80. package/react/components/Stepper/sgds-step.js +3 -4
  81. package/react/components/Stepper/sgds-step.js.map +1 -1
  82. package/react/components/Stepper/sgds-stepper.cjs.js +8 -2
  83. package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
  84. package/react/components/Stepper/sgds-stepper.js +8 -2
  85. package/react/components/Stepper/sgds-stepper.js.map +1 -1
  86. package/react/components/Stepper/step.cjs.js +1 -1
  87. package/react/components/Stepper/step.js +1 -1
  88. package/react/components/ThumbnailCard/sgds-thumbnail-card.cjs.js +6 -9
  89. package/react/components/ThumbnailCard/sgds-thumbnail-card.cjs.js.map +1 -1
  90. package/react/components/ThumbnailCard/sgds-thumbnail-card.js +6 -9
  91. package/react/components/ThumbnailCard/sgds-thumbnail-card.js.map +1 -1
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var lit = require('lit');
7
7
 
8
- var css_248z = lit.css`:host{display:contents}.stepper-item-container{flex-basis:1em;flex-grow:1;flex-shrink:1;position:relative;width:fit-content}.stepper-item,.stepper-item-container{align-items:center;display:flex;flex-direction:column}.stepper-item{gap:var(--sgds-gap-sm)}.stepper-item.vertical{align-items:flex-start;flex-direction:row;margin-bottom:var(--sgds-padding-xl)}.stepper-item.clickable:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.stepper-item:not(.first):not(.vertical):before{background:var(--sgds-border-color-translucent);content:" ";height:var(--sgds-dimension-2);left:calc(-50% + 16px);position:absolute;top:15px;width:calc(100% - var(--sgds-dimension-32))}:host(:not(.last)) .stepper-item-container .stepper-item.vertical:after{background:var(--sgds-bg-translucent);content:" ";height:calc(100% - var(--sgds-dimension-32));left:15px;position:absolute;top:32px;width:var(--sgds-dimension-2)}.stepper-item-container .stepper-item.active:not(.first):before,.stepper-item-container .stepper-item.completed:not(.first):before,:host(:not(.last)) .stepper-item-container .stepper-item.completed:after{background:var(--sgds-primary-border-color-default)}.stepper-item.clickable{cursor:pointer}.stepper-marker{align-items:center;background:var(--sgds-bg-translucent);border:var(--sgds-border-width-2) solid var(--sgds-border-color-transparent);border-radius:50%;color:var(--sgds-color-default);display:flex;height:var(--sgds-dimension-32);justify-content:center;width:var(--sgds-dimension-32);z-index:1}.stepper-detail{max-width:var(--sgds-dimension-128);text-align:center}.stepper-item.vertical .stepper-detail{padding:var(--sgds-padding-2-xs) 0 0;text-align:left}.stepper-item:not(.active):not(.completed) .stepper-detail{color:var(--sgds-color-subtle)}.stepper-item.clickable:focus .stepper-marker,.stepper-item.clickable:focus-visible .stepper-marker,.stepper-item.clickable:hover .stepper-marker{background-color:var(--sgds-primary-surface-emphasis);border-color:var(--sgds-border-color-transparent);color:var(--sgds-color-fixed-light)}.stepper-item.clickable:focus .stepper-detail,.stepper-item.clickable:focus-visible .stepper-detail,.stepper-item.clickable:hover .stepper-detail{color:var(--sgds-primary-color-emphasis)}.stepper-item.clickable .stepper-detail{color:var(--sgds-primary-color-default)}.stepper-item.completed .stepper-marker{background-color:var(--sgds-bg-transparent);border:var(--sgds-border-width-2) solid var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.stepper-item.active .stepper-marker{background-color:var(--sgds-primary-surface-default);color:var(--sgds-color-fixed-light)}.stepper-slot *{font-size:var(--sgds-font-size-body-sm)}.stepper-item.disabled{opacity:var(--sgds-opacity-40)}`;
8
+ var css_248z = lit.css`:host{display:contents}.stepper-item-container{flex-basis:1em;flex-grow:1;flex-shrink:1;position:relative;width:fit-content}.stepper-item,.stepper-item-container{align-items:center;display:flex;flex-direction:column}.stepper-item{gap:var(--sgds-gap-sm)}.stepper-item.vertical{align-items:flex-start;flex-direction:row;margin-bottom:var(--sgds-padding-xl)}.stepper-item.clickable:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.stepper-item:not(.first):not(.vertical):before{background:var(--sgds-border-color-translucent);content:" ";height:var(--sgds-dimension-2);left:calc(-50% + 16px);position:absolute;top:15px;width:calc(100% - var(--sgds-dimension-32))}:host(:not(.last)) .stepper-item-container .stepper-item.vertical:after{background:var(--sgds-bg-translucent);content:" ";height:calc(100% - var(--sgds-dimension-32));left:15px;position:absolute;top:32px;width:var(--sgds-dimension-2)}.stepper-item-container .stepper-item.active:not(.first):before,.stepper-item-container .stepper-item.completed:not(.first):before,:host(:not(.last)) .stepper-item-container .stepper-item.completed:after{background:var(--sgds-primary-border-color-default)}.stepper-item.clickable{cursor:pointer}.stepper-marker{align-items:center;background:var(--sgds-bg-translucent);border:var(--sgds-border-width-2) solid var(--sgds-border-color-transparent);border-radius:50%;color:var(--sgds-color-default);display:flex;height:var(--sgds-dimension-32);justify-content:center;width:var(--sgds-dimension-32);z-index:1}.stepper-detail{display:flex;flex-direction:column;gap:var(--sgds-gap-2-xs);max-width:var(--sgds-dimension-128);text-align:center}.stepper-item.vertical .stepper-detail{padding:var(--sgds-padding-2-xs) 0 0;text-align:left}.stepper-item:not(.active):not(.completed) .stepper-label{color:var(--sgds-color-subtle)}.stepper-item.clickable:focus .stepper-marker,.stepper-item.clickable:focus-visible .stepper-marker,.stepper-item.clickable:hover .stepper-marker{background-color:var(--sgds-primary-surface-emphasis);border-color:var(--sgds-border-color-transparent);color:var(--sgds-color-fixed-light)}.stepper-item.clickable:focus .stepper-label,.stepper-item.clickable:focus-visible .stepper-label,.stepper-item.clickable:hover .stepper-label{color:var(--sgds-primary-color-emphasis)}.stepper-item.clickable .stepper-label{color:var(--sgds-primary-color-default)}.stepper-item.completed .stepper-marker{background-color:var(--sgds-bg-transparent);border:var(--sgds-border-width-2) solid var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.stepper-item.active .stepper-marker{background-color:var(--sgds-primary-surface-default);color:var(--sgds-color-fixed-light)}.stepper-slot{color:var(--sgds-color-subtle);display:flex;flex-direction:column;font-size:var(--sgds-font-size-label-sm);font-weight:var(--sgds-font-weight-regular);gap:var(--sgds-gap-xs);letter-spacing:var(--sgds-letter-spacing-normal);line-height:var(--sgds-line-height-2-xs)}.stepper-item.disabled{opacity:var(--sgds-opacity-40)}`;
9
9
 
10
10
  exports["default"] = css_248z;
11
11
  //# sourceMappingURL=step.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { css } from 'lit';
3
3
 
4
- var css_248z = css`:host{display:contents}.stepper-item-container{flex-basis:1em;flex-grow:1;flex-shrink:1;position:relative;width:fit-content}.stepper-item,.stepper-item-container{align-items:center;display:flex;flex-direction:column}.stepper-item{gap:var(--sgds-gap-sm)}.stepper-item.vertical{align-items:flex-start;flex-direction:row;margin-bottom:var(--sgds-padding-xl)}.stepper-item.clickable:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.stepper-item:not(.first):not(.vertical):before{background:var(--sgds-border-color-translucent);content:" ";height:var(--sgds-dimension-2);left:calc(-50% + 16px);position:absolute;top:15px;width:calc(100% - var(--sgds-dimension-32))}:host(:not(.last)) .stepper-item-container .stepper-item.vertical:after{background:var(--sgds-bg-translucent);content:" ";height:calc(100% - var(--sgds-dimension-32));left:15px;position:absolute;top:32px;width:var(--sgds-dimension-2)}.stepper-item-container .stepper-item.active:not(.first):before,.stepper-item-container .stepper-item.completed:not(.first):before,:host(:not(.last)) .stepper-item-container .stepper-item.completed:after{background:var(--sgds-primary-border-color-default)}.stepper-item.clickable{cursor:pointer}.stepper-marker{align-items:center;background:var(--sgds-bg-translucent);border:var(--sgds-border-width-2) solid var(--sgds-border-color-transparent);border-radius:50%;color:var(--sgds-color-default);display:flex;height:var(--sgds-dimension-32);justify-content:center;width:var(--sgds-dimension-32);z-index:1}.stepper-detail{max-width:var(--sgds-dimension-128);text-align:center}.stepper-item.vertical .stepper-detail{padding:var(--sgds-padding-2-xs) 0 0;text-align:left}.stepper-item:not(.active):not(.completed) .stepper-detail{color:var(--sgds-color-subtle)}.stepper-item.clickable:focus .stepper-marker,.stepper-item.clickable:focus-visible .stepper-marker,.stepper-item.clickable:hover .stepper-marker{background-color:var(--sgds-primary-surface-emphasis);border-color:var(--sgds-border-color-transparent);color:var(--sgds-color-fixed-light)}.stepper-item.clickable:focus .stepper-detail,.stepper-item.clickable:focus-visible .stepper-detail,.stepper-item.clickable:hover .stepper-detail{color:var(--sgds-primary-color-emphasis)}.stepper-item.clickable .stepper-detail{color:var(--sgds-primary-color-default)}.stepper-item.completed .stepper-marker{background-color:var(--sgds-bg-transparent);border:var(--sgds-border-width-2) solid var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.stepper-item.active .stepper-marker{background-color:var(--sgds-primary-surface-default);color:var(--sgds-color-fixed-light)}.stepper-slot *{font-size:var(--sgds-font-size-body-sm)}.stepper-item.disabled{opacity:var(--sgds-opacity-40)}`;
4
+ var css_248z = css`:host{display:contents}.stepper-item-container{flex-basis:1em;flex-grow:1;flex-shrink:1;position:relative;width:fit-content}.stepper-item,.stepper-item-container{align-items:center;display:flex;flex-direction:column}.stepper-item{gap:var(--sgds-gap-sm)}.stepper-item.vertical{align-items:flex-start;flex-direction:row;margin-bottom:var(--sgds-padding-xl)}.stepper-item.clickable:focus-visible{outline:var(--sgds-outline-focus);outline-offset:var(--sgds-outline-offset-focus)}.stepper-item:not(.first):not(.vertical):before{background:var(--sgds-border-color-translucent);content:" ";height:var(--sgds-dimension-2);left:calc(-50% + 16px);position:absolute;top:15px;width:calc(100% - var(--sgds-dimension-32))}:host(:not(.last)) .stepper-item-container .stepper-item.vertical:after{background:var(--sgds-bg-translucent);content:" ";height:calc(100% - var(--sgds-dimension-32));left:15px;position:absolute;top:32px;width:var(--sgds-dimension-2)}.stepper-item-container .stepper-item.active:not(.first):before,.stepper-item-container .stepper-item.completed:not(.first):before,:host(:not(.last)) .stepper-item-container .stepper-item.completed:after{background:var(--sgds-primary-border-color-default)}.stepper-item.clickable{cursor:pointer}.stepper-marker{align-items:center;background:var(--sgds-bg-translucent);border:var(--sgds-border-width-2) solid var(--sgds-border-color-transparent);border-radius:50%;color:var(--sgds-color-default);display:flex;height:var(--sgds-dimension-32);justify-content:center;width:var(--sgds-dimension-32);z-index:1}.stepper-detail{display:flex;flex-direction:column;gap:var(--sgds-gap-2-xs);max-width:var(--sgds-dimension-128);text-align:center}.stepper-item.vertical .stepper-detail{padding:var(--sgds-padding-2-xs) 0 0;text-align:left}.stepper-item:not(.active):not(.completed) .stepper-label{color:var(--sgds-color-subtle)}.stepper-item.clickable:focus .stepper-marker,.stepper-item.clickable:focus-visible .stepper-marker,.stepper-item.clickable:hover .stepper-marker{background-color:var(--sgds-primary-surface-emphasis);border-color:var(--sgds-border-color-transparent);color:var(--sgds-color-fixed-light)}.stepper-item.clickable:focus .stepper-label,.stepper-item.clickable:focus-visible .stepper-label,.stepper-item.clickable:hover .stepper-label{color:var(--sgds-primary-color-emphasis)}.stepper-item.clickable .stepper-label{color:var(--sgds-primary-color-default)}.stepper-item.completed .stepper-marker{background-color:var(--sgds-bg-transparent);border:var(--sgds-border-width-2) solid var(--sgds-primary-border-color-default);color:var(--sgds-primary-color-default)}.stepper-item.active .stepper-marker{background-color:var(--sgds-primary-surface-default);color:var(--sgds-color-fixed-light)}.stepper-slot{color:var(--sgds-color-subtle);display:flex;flex-direction:column;font-size:var(--sgds-font-size-label-sm);font-weight:var(--sgds-font-weight-regular);gap:var(--sgds-gap-xs);letter-spacing:var(--sgds-letter-spacing-normal);line-height:var(--sgds-line-height-2-xs)}.stepper-item.disabled{opacity:var(--sgds-opacity-40)}`;
5
5
 
6
6
  export { css_248z as default };
7
7
  //# sourceMappingURL=step.js.map
@@ -49,20 +49,17 @@ class SgdsThumbnailCard extends cardElement.CardElement {
49
49
  }
50
50
  }
51
51
  _handleFooterSlotChange(e) {
52
- var _a;
53
52
  const assignedElements = e.target.assignedElements({ flatten: true });
54
- const footerHref = (_a = this._getAnchorFromSlot(assignedElements)) === null || _a === void 0 ? void 0 : _a.href;
55
- if (this.stretchedLink && footerHref) {
56
- this.card.setAttribute("href", footerHref);
57
- }
53
+ const anchor = this._getAnchorFromSlot(assignedElements);
54
+ if (this.stretchedLink)
55
+ this._forwardAnchorAttributes(anchor);
58
56
  }
59
57
  _handleLinkSlotChange(e) {
60
- var _a;
61
58
  this.warnLinkSlotMisused(e);
62
59
  const assignedElements = e.target.assignedElements({ flatten: true });
63
- const linkHref = (_a = this._getAnchorFromSlot(assignedElements)) === null || _a === void 0 ? void 0 : _a.href;
64
- if (this.stretchedLink && linkHref)
65
- this.card.setAttribute("href", linkHref);
60
+ const anchor = this._getAnchorFromSlot(assignedElements);
61
+ if (this.stretchedLink)
62
+ this._forwardAnchorAttributes(anchor);
66
63
  }
67
64
  render() {
68
65
  const tag = this.stretchedLink ? staticHtml_js.literal `a` : staticHtml_js.literal `div`;
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-thumbnail-card.cjs.js","sources":["../../../../src/components/ThumbnailCard/sgds-thumbnail-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport thumbnailCardStyle from \"./thumbnail-card.css\";\n\n/**\n * @summary Thumbnail cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot thumbnail - Accepts a small image or visual element typically displayed alongside the card's title or content to provide quick visual context.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot footer - Footer area of the card. Accepts links, actions, or any custom content.\n * @slot link - (@deprecated) Deprecated since 3.3.2 in favour of `footer` slot.\n * Legacy slot for anchor elements. Use `footer` instead.\n */\nexport class SgdsThumbnailCard extends CardElement {\n static styles = [...CardElement.styles, thumbnailCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"upper\", flatten: true })\n _upperNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n private _getAnchorFromSlot(elements: Element[]): HTMLAnchorElement | null {\n if (!elements || elements.length === 0) return null;\n const element = elements[0] as HTMLElement;\n return (element.querySelector(\"a\") || element) as HTMLAnchorElement;\n }\n private _handleThumbnailSlotChange(e: Event) {\n const thumbnailNode = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n if (thumbnailNode.length === 0) {\n if ((this.orientation === \"vertical\" && this._upperNode.length === 0) || this.orientation === \"horizontal\") {\n const media = this.shadowRoot.querySelector(\".card-media\") as HTMLDivElement;\n media.style.display = \"none\";\n\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n }\n private _handleFooterSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const footerHref = this._getAnchorFromSlot(assignedElements)?.href;\n\n if (this.stretchedLink && footerHref) {\n this.card.setAttribute(\"href\", footerHref);\n }\n }\n\n private _handleLinkSlotChange(e: Event) {\n this.warnLinkSlotMisused(e);\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const linkHref = this._getAnchorFromSlot(assignedElements)?.href;\n if (this.stretchedLink && linkHref) this.card.setAttribute(\"href\", linkHref);\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n > \n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-media\">\n <slot name=\"thumbnail\" @slotchange=${this._handleThumbnailSlotChange}></slot>\n\t\t\t\t\t${this.orientation === \"vertical\" ? html`<slot name=\"upper\"></slot>` : nothing}\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t${this.orientation === \"horizontal\" ? html`<slot name=\"upper\"></slot>` : nothing}\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <slot name=\"description\"></slot>\n <slot name=\"lower\"></slot>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}>\n <slot name=\"link\" @slotchange=${this._handleLinkSlotChange}></slot>\n </slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsThumbnailCard;\n"],"names":["CardElement","literal","html","classMap","nothing","thumbnailCardStyle","__decorate","queryAssignedNodes","property"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-thumbnail-card.cjs.js","sources":["../../../../src/components/ThumbnailCard/sgds-thumbnail-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport thumbnailCardStyle from \"./thumbnail-card.css\";\n\n/**\n * @summary Thumbnail cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot thumbnail - Accepts a small image or visual element typically displayed alongside the card's title or content to provide quick visual context.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot footer - Footer area of the card. Accepts links, actions, or any custom content.\n * @slot link - (@deprecated) Deprecated since 3.3.2 in favour of `footer` slot.\n * Legacy slot for anchor elements. Use `footer` instead.\n */\nexport class SgdsThumbnailCard extends CardElement {\n static styles = [...CardElement.styles, thumbnailCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"upper\", flatten: true })\n _upperNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n private _getAnchorFromSlot(elements: Element[]): HTMLAnchorElement | null {\n if (!elements || elements.length === 0) return null;\n const element = elements[0] as HTMLElement;\n return (element.querySelector(\"a\") || element) as HTMLAnchorElement;\n }\n private _handleThumbnailSlotChange(e: Event) {\n const thumbnailNode = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n if (thumbnailNode.length === 0) {\n if ((this.orientation === \"vertical\" && this._upperNode.length === 0) || this.orientation === \"horizontal\") {\n const media = this.shadowRoot.querySelector(\".card-media\") as HTMLDivElement;\n media.style.display = \"none\";\n\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n }\n private _handleFooterSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const anchor = this._getAnchorFromSlot(assignedElements);\n if (this.stretchedLink) this._forwardAnchorAttributes(anchor);\n }\n\n private _handleLinkSlotChange(e: Event) {\n this.warnLinkSlotMisused(e);\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const anchor = this._getAnchorFromSlot(assignedElements);\n if (this.stretchedLink) this._forwardAnchorAttributes(anchor);\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n > \n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-media\">\n <slot name=\"thumbnail\" @slotchange=${this._handleThumbnailSlotChange}></slot>\n\t\t\t\t\t${this.orientation === \"vertical\" ? html`<slot name=\"upper\"></slot>` : nothing}\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t${this.orientation === \"horizontal\" ? html`<slot name=\"upper\"></slot>` : nothing}\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <slot name=\"description\"></slot>\n <slot name=\"lower\"></slot>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}>\n <slot name=\"link\" @slotchange=${this._handleLinkSlotChange}></slot>\n </slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsThumbnailCard;\n"],"names":["CardElement","literal","html","classMap","nothing","thumbnailCardStyle","__decorate","queryAssignedNodes","property"],"mappings":"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"}
@@ -45,20 +45,17 @@ class SgdsThumbnailCard extends CardElement {
45
45
  }
46
46
  }
47
47
  _handleFooterSlotChange(e) {
48
- var _a;
49
48
  const assignedElements = e.target.assignedElements({ flatten: true });
50
- const footerHref = (_a = this._getAnchorFromSlot(assignedElements)) === null || _a === void 0 ? void 0 : _a.href;
51
- if (this.stretchedLink && footerHref) {
52
- this.card.setAttribute("href", footerHref);
53
- }
49
+ const anchor = this._getAnchorFromSlot(assignedElements);
50
+ if (this.stretchedLink)
51
+ this._forwardAnchorAttributes(anchor);
54
52
  }
55
53
  _handleLinkSlotChange(e) {
56
- var _a;
57
54
  this.warnLinkSlotMisused(e);
58
55
  const assignedElements = e.target.assignedElements({ flatten: true });
59
- const linkHref = (_a = this._getAnchorFromSlot(assignedElements)) === null || _a === void 0 ? void 0 : _a.href;
60
- if (this.stretchedLink && linkHref)
61
- this.card.setAttribute("href", linkHref);
56
+ const anchor = this._getAnchorFromSlot(assignedElements);
57
+ if (this.stretchedLink)
58
+ this._forwardAnchorAttributes(anchor);
62
59
  }
63
60
  render() {
64
61
  const tag = this.stretchedLink ? literal `a` : literal `div`;
@@ -1 +1 @@
1
- {"version":3,"file":"sgds-thumbnail-card.js","sources":["../../../../src/components/ThumbnailCard/sgds-thumbnail-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport thumbnailCardStyle from \"./thumbnail-card.css\";\n\n/**\n * @summary Thumbnail cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot thumbnail - Accepts a small image or visual element typically displayed alongside the card's title or content to provide quick visual context.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot footer - Footer area of the card. Accepts links, actions, or any custom content.\n * @slot link - (@deprecated) Deprecated since 3.3.2 in favour of `footer` slot.\n * Legacy slot for anchor elements. Use `footer` instead.\n */\nexport class SgdsThumbnailCard extends CardElement {\n static styles = [...CardElement.styles, thumbnailCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"upper\", flatten: true })\n _upperNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n private _getAnchorFromSlot(elements: Element[]): HTMLAnchorElement | null {\n if (!elements || elements.length === 0) return null;\n const element = elements[0] as HTMLElement;\n return (element.querySelector(\"a\") || element) as HTMLAnchorElement;\n }\n private _handleThumbnailSlotChange(e: Event) {\n const thumbnailNode = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n if (thumbnailNode.length === 0) {\n if ((this.orientation === \"vertical\" && this._upperNode.length === 0) || this.orientation === \"horizontal\") {\n const media = this.shadowRoot.querySelector(\".card-media\") as HTMLDivElement;\n media.style.display = \"none\";\n\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n }\n private _handleFooterSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const footerHref = this._getAnchorFromSlot(assignedElements)?.href;\n\n if (this.stretchedLink && footerHref) {\n this.card.setAttribute(\"href\", footerHref);\n }\n }\n\n private _handleLinkSlotChange(e: Event) {\n this.warnLinkSlotMisused(e);\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const linkHref = this._getAnchorFromSlot(assignedElements)?.href;\n if (this.stretchedLink && linkHref) this.card.setAttribute(\"href\", linkHref);\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n > \n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-media\">\n <slot name=\"thumbnail\" @slotchange=${this._handleThumbnailSlotChange}></slot>\n\t\t\t\t\t${this.orientation === \"vertical\" ? html`<slot name=\"upper\"></slot>` : nothing}\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t${this.orientation === \"horizontal\" ? html`<slot name=\"upper\"></slot>` : nothing}\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <slot name=\"description\"></slot>\n <slot name=\"lower\"></slot>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}>\n <slot name=\"link\" @slotchange=${this._handleLinkSlotChange}></slot>\n </slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsThumbnailCard;\n"],"names":["thumbnailCardStyle"],"mappings":"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"}
1
+ {"version":3,"file":"sgds-thumbnail-card.js","sources":["../../../../src/components/ThumbnailCard/sgds-thumbnail-card.ts"],"sourcesContent":["import { nothing } from \"lit\";\nimport { property, queryAssignedNodes } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { CardElement } from \"../../base/card-element\";\nimport thumbnailCardStyle from \"./thumbnail-card.css\";\n\n/**\n * @summary Thumbnail cards can be used for headers and footers, a wide variety of content, contain contextual background colors and images.\n * @slot default - The content area of the card, placed directly under the title. Accepts any HTML or custom elements.\n * @slot thumbnail - Accepts a small image or visual element typically displayed alongside the card's title or content to provide quick visual context.\n * @slot upper - Accepts any content to be displayed at the top of the subtitle. Commonly used for badges, status indicators, or decorative elements.\n * @slot subtitle - The subtitle of the card\n * @slot title - The title of the card\n * @slot description - The paragrapher text of the card\n * @slot lower - Accepts any additional content to be displayed below the card description, such as badges, metadata, or supplementary information.\n * @slot footer - Footer area of the card. Accepts links, actions, or any custom content.\n * @slot link - (@deprecated) Deprecated since 3.3.2 in favour of `footer` slot.\n * Legacy slot for anchor elements. Use `footer` instead.\n */\nexport class SgdsThumbnailCard extends CardElement {\n static styles = [...CardElement.styles, thumbnailCardStyle];\n\n /** @internal */\n @queryAssignedNodes({ slot: \"upper\", flatten: true })\n _upperNode!: Array<Node>;\n\n /** Removes the card's internal padding when set to true. */\n @property({ type: Boolean, reflect: true }) noPadding = false;\n\n private _getAnchorFromSlot(elements: Element[]): HTMLAnchorElement | null {\n if (!elements || elements.length === 0) return null;\n const element = elements[0] as HTMLElement;\n return (element.querySelector(\"a\") || element) as HTMLAnchorElement;\n }\n private _handleThumbnailSlotChange(e: Event) {\n const thumbnailNode = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n if (thumbnailNode.length === 0) {\n if ((this.orientation === \"vertical\" && this._upperNode.length === 0) || this.orientation === \"horizontal\") {\n const media = this.shadowRoot.querySelector(\".card-media\") as HTMLDivElement;\n media.style.display = \"none\";\n\n const body = this.shadowRoot.querySelector(\".card-body\") as HTMLDivElement;\n if (this.noPadding) body.style.padding = \"0px\";\n }\n }\n }\n private _handleFooterSlotChange(e: Event) {\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const anchor = this._getAnchorFromSlot(assignedElements);\n if (this.stretchedLink) this._forwardAnchorAttributes(anchor);\n }\n\n private _handleLinkSlotChange(e: Event) {\n this.warnLinkSlotMisused(e);\n const assignedElements = (e.target as HTMLSlotElement).assignedElements({ flatten: true });\n const anchor = this._getAnchorFromSlot(assignedElements);\n if (this.stretchedLink) this._forwardAnchorAttributes(anchor);\n }\n\n render() {\n const tag = this.stretchedLink ? literal`a` : literal`div`;\n const cardTabIndex = !this.stretchedLink || this.disabled ? -1 : 0;\n\n return html`\n <${tag} \n class=\"card ${classMap({\n disabled: this.disabled\n })}\"\n tabindex=${cardTabIndex}\n > \n ${this.tinted && !this.noPadding ? html`<div class=\"card-tinted-bg\"></div>` : nothing}\n <div class=\"card-media\">\n <slot name=\"thumbnail\" @slotchange=${this._handleThumbnailSlotChange}></slot>\n\t\t\t\t\t${this.orientation === \"vertical\" ? html`<slot name=\"upper\"></slot>` : nothing}\n </div>\n <div class=\"card-body\">\n\t\t\t\t\t${this.orientation === \"horizontal\" ? html`<slot name=\"upper\"></slot>` : nothing}\n <div class=\"card-header-container\">\n <div class=\"card-header\">\n <slot name=\"subtitle\"></slot>\n <h3 class=\"card-title\"><slot name=\"title\" @slotchange=${this.handleTitleSlotChange}></slot></h3>\n </div>\n <slot></slot>\n </div>\n <slot name=\"description\"></slot>\n <slot name=\"lower\"></slot>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}>\n <slot name=\"link\" @slotchange=${this._handleLinkSlotChange}></slot>\n </slot>\n </div>\n </${tag}>\n `;\n }\n}\n\nexport default SgdsThumbnailCard;\n"],"names":["thumbnailCardStyle"],"mappings":"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"}