@govtechsg/sgds-web-component 3.27.0-rc.3 → 3.27.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 (202) hide show
  1. package/base/dropdown-list-element.js +2 -9
  2. package/base/dropdown-list-element.js.map +1 -1
  3. package/components/Breadcrumb/index.umd.min.js +5 -5
  4. package/components/Breadcrumb/index.umd.min.js.map +1 -1
  5. package/components/ComboBox/index.umd.min.js +1 -1
  6. package/components/ComboBox/index.umd.min.js.map +1 -1
  7. package/components/DataTable/data-table.js +1 -1
  8. package/components/DataTable/index.umd.min.js +49 -42
  9. package/components/DataTable/index.umd.min.js.map +1 -1
  10. package/components/DataTable/sgds-data-table-cell.d.ts +2 -2
  11. package/components/DataTable/sgds-data-table-cell.js.map +1 -1
  12. package/components/DataTable/sgds-data-table-head.d.ts +2 -2
  13. package/components/DataTable/sgds-data-table-head.js.map +1 -1
  14. package/components/DataTable/sgds-data-table-row.d.ts +0 -3
  15. package/components/DataTable/sgds-data-table-row.js +0 -13
  16. package/components/DataTable/sgds-data-table-row.js.map +1 -1
  17. package/components/DataTable/sgds-data-table.d.ts +7 -4
  18. package/components/DataTable/sgds-data-table.js +49 -38
  19. package/components/DataTable/sgds-data-table.js.map +1 -1
  20. package/components/DataTable/types.d.ts +7 -0
  21. package/components/Datepicker/index.umd.min.js +1 -1
  22. package/components/Dropdown/dropdown-item.js +1 -1
  23. package/components/Dropdown/index.umd.min.js +5 -5
  24. package/components/Dropdown/index.umd.min.js.map +1 -1
  25. package/components/Dropdown/sgds-dropdown-item.d.ts +0 -2
  26. package/components/Dropdown/sgds-dropdown-item.js +2 -8
  27. package/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  28. package/components/Footer/index.umd.min.js +1 -1
  29. package/components/Footer/index.umd.min.js.map +1 -1
  30. package/components/Footer/sgds-footer.js +1 -1
  31. package/components/Footer/sgds-footer.js.map +1 -1
  32. package/components/Input/index.umd.min.js +1 -1
  33. package/components/Mainnav/index.d.ts +0 -2
  34. package/components/Mainnav/index.js +0 -2
  35. package/components/Mainnav/index.js.map +1 -1
  36. package/components/Mainnav/index.umd.min.js +285 -338
  37. package/components/Mainnav/index.umd.min.js.map +1 -1
  38. package/components/Mainnav/mainnav-dropdown.js +1 -1
  39. package/components/Mainnav/mainnav-item.js +1 -1
  40. package/components/Mainnav/mainnav.js +1 -1
  41. package/components/Mainnav/sgds-mainnav.d.ts +51 -8
  42. package/components/Mainnav/sgds-mainnav.js +238 -40
  43. package/components/Mainnav/sgds-mainnav.js.map +1 -1
  44. package/components/OverflowMenu/index.umd.min.js +5 -5
  45. package/components/OverflowMenu/index.umd.min.js.map +1 -1
  46. package/components/QuantityToggle/index.umd.min.js +1 -1
  47. package/components/Select/index.umd.min.js +21 -21
  48. package/components/Select/index.umd.min.js.map +1 -1
  49. package/components/Tab/index.umd.min.js +1 -1
  50. package/components/Tab/index.umd.min.js.map +1 -1
  51. package/components/Tab/tab-panel.js +1 -1
  52. package/components/Textarea/index.umd.min.js +1 -1
  53. package/components/index.d.ts +0 -3
  54. package/components/index.js +0 -3
  55. package/components/index.js.map +1 -1
  56. package/components/index.umd.min.js +587 -665
  57. package/components/index.umd.min.js.map +1 -1
  58. package/css/fouc.css +5 -8
  59. package/custom-elements.json +15246 -17418
  60. package/index.d.ts +0 -1
  61. package/index.js +0 -1
  62. package/index.js.map +1 -1
  63. package/index.umd.min.js +353 -441
  64. package/index.umd.min.js.map +1 -1
  65. package/package.json +1 -1
  66. package/react/base/dropdown-list-element.cjs.js +2 -9
  67. package/react/base/dropdown-list-element.cjs.js.map +1 -1
  68. package/react/base/dropdown-list-element.js +2 -9
  69. package/react/base/dropdown-list-element.js.map +1 -1
  70. package/react/components/DataTable/data-table.cjs.js +1 -1
  71. package/react/components/DataTable/data-table.js +1 -1
  72. package/react/components/DataTable/sgds-data-table-cell.cjs.js.map +1 -1
  73. package/react/components/DataTable/sgds-data-table-cell.js.map +1 -1
  74. package/react/components/DataTable/sgds-data-table-head.cjs.js.map +1 -1
  75. package/react/components/DataTable/sgds-data-table-head.js.map +1 -1
  76. package/react/components/DataTable/sgds-data-table-row.cjs.js +0 -13
  77. package/react/components/DataTable/sgds-data-table-row.cjs.js.map +1 -1
  78. package/react/components/DataTable/sgds-data-table-row.js +0 -13
  79. package/react/components/DataTable/sgds-data-table-row.js.map +1 -1
  80. package/react/components/DataTable/sgds-data-table.cjs.js +49 -38
  81. package/react/components/DataTable/sgds-data-table.cjs.js.map +1 -1
  82. package/react/components/DataTable/sgds-data-table.js +49 -38
  83. package/react/components/DataTable/sgds-data-table.js.map +1 -1
  84. package/react/components/Dropdown/dropdown-item.cjs.js +1 -1
  85. package/react/components/Dropdown/dropdown-item.js +1 -1
  86. package/react/components/Dropdown/sgds-dropdown-item.cjs.js +2 -8
  87. package/react/components/Dropdown/sgds-dropdown-item.cjs.js.map +1 -1
  88. package/react/components/Dropdown/sgds-dropdown-item.js +2 -8
  89. package/react/components/Dropdown/sgds-dropdown-item.js.map +1 -1
  90. package/react/components/Footer/sgds-footer.cjs.js +1 -1
  91. package/react/components/Footer/sgds-footer.cjs.js.map +1 -1
  92. package/react/components/Footer/sgds-footer.js +1 -1
  93. package/react/components/Footer/sgds-footer.js.map +1 -1
  94. package/react/components/Mainnav/mainnav-dropdown.cjs.js +1 -1
  95. package/react/components/Mainnav/mainnav-dropdown.js +1 -1
  96. package/react/components/Mainnav/mainnav-item.cjs.js +1 -1
  97. package/react/components/Mainnav/mainnav-item.js +1 -1
  98. package/react/components/Mainnav/mainnav.cjs.js +1 -1
  99. package/react/components/Mainnav/mainnav.js +1 -1
  100. package/react/components/Mainnav/sgds-mainnav.cjs.js +237 -39
  101. package/react/components/Mainnav/sgds-mainnav.cjs.js.map +1 -1
  102. package/react/components/Mainnav/sgds-mainnav.js +238 -40
  103. package/react/components/Mainnav/sgds-mainnav.js.map +1 -1
  104. package/react/components/Tab/tab-panel.cjs.js +1 -1
  105. package/react/components/Tab/tab-panel.js +1 -1
  106. package/react/index.cjs.js +146 -152
  107. package/react/index.cjs.js.map +1 -1
  108. package/react/index.d.ts +5 -8
  109. package/react/index.js +5 -8
  110. package/react/index.js.map +1 -1
  111. package/react/styles/form-text-control.cjs.js +1 -1
  112. package/react/styles/form-text-control.js +1 -1
  113. package/styles/form-text-control.js +1 -1
  114. package/themes/blue.css +11 -11
  115. package/themes/cyan.css +10 -10
  116. package/themes/day.css +1 -1
  117. package/themes/gt/blue.css +11 -11
  118. package/themes/gt/cyan.css +10 -10
  119. package/themes/gt/magenta.css +11 -11
  120. package/themes/gt/pink.css +11 -11
  121. package/themes/gt/purple.css +11 -11
  122. package/themes/gt/red.css +11 -11
  123. package/themes/magenta.css +11 -11
  124. package/themes/pink.css +11 -11
  125. package/themes/purple.css +11 -11
  126. package/themes/red.css +11 -11
  127. package/themes/root.css +0 -5
  128. package/types/react.d.ts +97 -148
  129. package/base/nav-element.d.ts +0 -64
  130. package/base/nav-element.js +0 -263
  131. package/base/nav-element.js.map +0 -1
  132. package/base/nav-profile-element.d.ts +0 -47
  133. package/base/nav-profile-element.js +0 -191
  134. package/base/nav-profile-element.js.map +0 -1
  135. package/base/nav-profile.js +0 -6
  136. package/base/nav-profile.js.map +0 -1
  137. package/components/Appnav/appnav-context.d.ts +0 -6
  138. package/components/Appnav/appnav-context.js +0 -7
  139. package/components/Appnav/appnav-context.js.map +0 -1
  140. package/components/Appnav/appnav.js +0 -6
  141. package/components/Appnav/appnav.js.map +0 -1
  142. package/components/Appnav/index.d.ts +0 -9
  143. package/components/Appnav/index.js +0 -8
  144. package/components/Appnav/index.js.map +0 -1
  145. package/components/Appnav/index.umd.min.js +0 -2535
  146. package/components/Appnav/index.umd.min.js.map +0 -1
  147. package/components/Appnav/sgds-appnav-profile.d.ts +0 -17
  148. package/components/Appnav/sgds-appnav-profile.js +0 -31
  149. package/components/Appnav/sgds-appnav-profile.js.map +0 -1
  150. package/components/Appnav/sgds-appnav.d.ts +0 -44
  151. package/components/Appnav/sgds-appnav.js +0 -183
  152. package/components/Appnav/sgds-appnav.js.map +0 -1
  153. package/components/Mainnav/sgds-mainnav-profile.d.ts +0 -15
  154. package/components/Mainnav/sgds-mainnav-profile.js +0 -29
  155. package/components/Mainnav/sgds-mainnav-profile.js.map +0 -1
  156. package/react/appnav/index.cjs.js +0 -45
  157. package/react/appnav/index.cjs.js.map +0 -1
  158. package/react/appnav/index.d.ts +0 -4
  159. package/react/appnav/index.js +0 -21
  160. package/react/appnav/index.js.map +0 -1
  161. package/react/appnav-profile/index.cjs.js +0 -40
  162. package/react/appnav-profile/index.cjs.js.map +0 -1
  163. package/react/appnav-profile/index.d.ts +0 -4
  164. package/react/appnav-profile/index.js +0 -16
  165. package/react/appnav-profile/index.js.map +0 -1
  166. package/react/base/nav-element.cjs.js +0 -268
  167. package/react/base/nav-element.cjs.js.map +0 -1
  168. package/react/base/nav-element.js +0 -264
  169. package/react/base/nav-element.js.map +0 -1
  170. package/react/base/nav-profile-element.cjs.js +0 -196
  171. package/react/base/nav-profile-element.cjs.js.map +0 -1
  172. package/react/base/nav-profile-element.js +0 -192
  173. package/react/base/nav-profile-element.js.map +0 -1
  174. package/react/base/nav-profile.cjs.js +0 -11
  175. package/react/base/nav-profile.cjs.js.map +0 -1
  176. package/react/base/nav-profile.js +0 -7
  177. package/react/base/nav-profile.js.map +0 -1
  178. package/react/components/Appnav/appnav-context.cjs.js +0 -13
  179. package/react/components/Appnav/appnav-context.cjs.js.map +0 -1
  180. package/react/components/Appnav/appnav-context.js +0 -8
  181. package/react/components/Appnav/appnav-context.js.map +0 -1
  182. package/react/components/Appnav/appnav.cjs.js +0 -11
  183. package/react/components/Appnav/appnav.cjs.js.map +0 -1
  184. package/react/components/Appnav/appnav.js +0 -7
  185. package/react/components/Appnav/appnav.js.map +0 -1
  186. package/react/components/Appnav/sgds-appnav-profile.cjs.js +0 -37
  187. package/react/components/Appnav/sgds-appnav-profile.cjs.js.map +0 -1
  188. package/react/components/Appnav/sgds-appnav-profile.js +0 -32
  189. package/react/components/Appnav/sgds-appnav-profile.js.map +0 -1
  190. package/react/components/Appnav/sgds-appnav.cjs.js +0 -189
  191. package/react/components/Appnav/sgds-appnav.cjs.js.map +0 -1
  192. package/react/components/Appnav/sgds-appnav.js +0 -184
  193. package/react/components/Appnav/sgds-appnav.js.map +0 -1
  194. package/react/components/Mainnav/sgds-mainnav-profile.cjs.js +0 -35
  195. package/react/components/Mainnav/sgds-mainnav-profile.cjs.js.map +0 -1
  196. package/react/components/Mainnav/sgds-mainnav-profile.js +0 -30
  197. package/react/components/Mainnav/sgds-mainnav-profile.js.map +0 -1
  198. package/react/mainnav-profile/index.cjs.js +0 -40
  199. package/react/mainnav-profile/index.cjs.js.map +0 -1
  200. package/react/mainnav-profile/index.d.ts +0 -4
  201. package/react/mainnav-profile/index.js +0 -16
  202. package/react/mainnav-profile/index.js.map +0 -1
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #F6F3FB;
3
- --gt-color-200: #E5DBF2;
4
- --gt-color-300: #CEBAE7;
5
- --gt-color-400: #B598DC;
6
- --gt-color-500: #9A74CF;
7
- --gt-color-600: #8055BB;
8
- --gt-color-700: #634190;
9
- --gt-color-800: #49306B;
10
- --gt-color-900: #33214A;
11
- }
1
+ :root{
2
+ --gt-color-100: #F6F3FB;
3
+ --gt-color-200: #E5DBF2;
4
+ --gt-color-300: #CEBAE7;
5
+ --gt-color-400: #B598DC;
6
+ --gt-color-500: #9A74CF;
7
+ --gt-color-600: #8055BB;
8
+ --gt-color-700: #634190;
9
+ --gt-color-800: #49306B;
10
+ --gt-color-900: #33214A;
11
+ }
package/themes/gt/red.css CHANGED
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #FEF0F1;
3
- --gt-color-200: #FDD6D8;
4
- --gt-color-300: #FBADB1;
5
- --gt-color-400: #F88289;
6
- --gt-color-500: #F5424B;
7
- --gt-color-600: #CB2B33;
8
- --gt-color-700: #9E2127;
9
- --gt-color-800: #76191E;
10
- --gt-color-900: #531115;
11
- }
1
+ :root{
2
+ --gt-color-100: #FEF0F1;
3
+ --gt-color-200: #FDD6D8;
4
+ --gt-color-300: #FBADB1;
5
+ --gt-color-400: #F88289;
6
+ --gt-color-500: #F5424B;
7
+ --gt-color-600: #CB2B33;
8
+ --gt-color-700: #9E2127;
9
+ --gt-color-800: #76191E;
10
+ --gt-color-900: #531115;
11
+ }
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #FBF2F9;
3
- --gt-color-200: #F2D8ED;
4
- --gt-color-300: #E5B2DC;
5
- --gt-color-400: #D98BCB;
6
- --gt-color-500: #C95EB7;
7
- --gt-color-600: #B82EA0;
8
- --gt-color-700: #8E247B;
9
- --gt-color-800: #6A1B5D;
10
- --gt-color-900: #4A1341;
11
- }
1
+ :root{
2
+ --gt-color-100: #FBF2F9;
3
+ --gt-color-200: #F2D8ED;
4
+ --gt-color-300: #E5B2DC;
5
+ --gt-color-400: #D98BCB;
6
+ --gt-color-500: #C95EB7;
7
+ --gt-color-600: #B82EA0;
8
+ --gt-color-700: #8E247B;
9
+ --gt-color-800: #6A1B5D;
10
+ --gt-color-900: #4A1341;
11
+ }
package/themes/pink.css CHANGED
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #FDF0F6;
3
- --gt-color-200: #F9D6E4;
4
- --gt-color-300: #F3AECB;
5
- --gt-color-400: #ED84AF;
6
- --gt-color-500: #E54D8C;
7
- --gt-color-600: #C7286A;
8
- --gt-color-700: #991F52;
9
- --gt-color-800: #74173D;
10
- --gt-color-900: #51102B;
11
- }
1
+ :root{
2
+ --gt-color-100: #FDF0F6;
3
+ --gt-color-200: #F9D6E4;
4
+ --gt-color-300: #F3AECB;
5
+ --gt-color-400: #ED84AF;
6
+ --gt-color-500: #E54D8C;
7
+ --gt-color-600: #C7286A;
8
+ --gt-color-700: #991F52;
9
+ --gt-color-800: #74173D;
10
+ --gt-color-900: #51102B;
11
+ }
package/themes/purple.css CHANGED
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #F6F3FB;
3
- --gt-color-200: #E5DBF2;
4
- --gt-color-300: #CEBAE7;
5
- --gt-color-400: #B598DC;
6
- --gt-color-500: #9A74CF;
7
- --gt-color-600: #8055BB;
8
- --gt-color-700: #634190;
9
- --gt-color-800: #49306B;
10
- --gt-color-900: #33214A;
11
- }
1
+ :root{
2
+ --gt-color-100: #F6F3FB;
3
+ --gt-color-200: #E5DBF2;
4
+ --gt-color-300: #CEBAE7;
5
+ --gt-color-400: #B598DC;
6
+ --gt-color-500: #9A74CF;
7
+ --gt-color-600: #8055BB;
8
+ --gt-color-700: #634190;
9
+ --gt-color-800: #49306B;
10
+ --gt-color-900: #33214A;
11
+ }
package/themes/red.css CHANGED
@@ -1,11 +1,11 @@
1
- :root {
2
- --gt-color-100: #FEF0F1;
3
- --gt-color-200: #FDD6D8;
4
- --gt-color-300: #FBADB1;
5
- --gt-color-400: #F88289;
6
- --gt-color-500: #F5424B;
7
- --gt-color-600: #CB2B33;
8
- --gt-color-700: #9E2127;
9
- --gt-color-800: #76191E;
10
- --gt-color-900: #531115;
11
- }
1
+ :root{
2
+ --gt-color-100: #FEF0F1;
3
+ --gt-color-200: #FDD6D8;
4
+ --gt-color-300: #FBADB1;
5
+ --gt-color-400: #F88289;
6
+ --gt-color-500: #F5424B;
7
+ --gt-color-600: #CB2B33;
8
+ --gt-color-700: #9E2127;
9
+ --gt-color-800: #76191E;
10
+ --gt-color-900: #531115;
11
+ }
package/themes/root.css CHANGED
@@ -12,11 +12,6 @@
12
12
  --sgds-product-primary-800: #3c2b8a;
13
13
  --sgds-product-primary-900: #2a1e61;
14
14
 
15
- --sgds-gradient-1: linear-gradient(90deg, #0091B8 0%, #8055BB 100%);
16
- --sgds-gradient-2: linear-gradient(90deg, #4288D6 0%, #B82EA0 100%);
17
- --sgds-gradient-3: linear-gradient(90deg, #9A74CF 0%, #C7286A 100%);
18
- --sgds-gradient-4: linear-gradient(90deg, #C95EB7 0%, #CB2B33 100%);
19
-
20
15
  /* Primitive - Purple Color */
21
16
  --sgds-purple-100: #fbf0fe;
22
17
  --sgds-purple-200: #f2d6fc;
package/types/react.d.ts CHANGED
@@ -56,6 +56,16 @@ interface ISgdsComboBoxInputEventDetail {
56
56
  displayValue: string;
57
57
  }
58
58
 
59
+ // ── DataTable ─────────────────────────────────────────────────────────────
60
+
61
+ interface ISgdsDataTableRowSelectEventDetail {
62
+ selected: Record<string, string>[];
63
+ }
64
+ interface ISgdsDataTableSortEventDetail {
65
+ key: string;
66
+ direction: "ascending" | "descending" | "none";
67
+ }
68
+
59
69
  // ── Datepicker ─────────────────────────────────────────────────────────────
60
70
 
61
71
  type ViewEnum = "days" | "months" | "years";
@@ -167,42 +177,6 @@ export interface SgdsAlertProps extends SgdsBaseProps {
167
177
  onSgdsHide?: SgdsEventHandler;
168
178
  }
169
179
 
170
- // ── AppnavProfile ─────────────────────────────────────────────────────────────
171
-
172
- export interface SgdsAppnavProfileProps extends SgdsBaseProps {
173
- /** Primary text displayed next to the avatar in desktop (e.g. user name) */
174
- label?: string;
175
- /** Secondary text displayed below the label in desktop (e.g. agency or role) */
176
- secondaryText?: string;
177
- /** When true, disables the profile dropdown */
178
- disabled?: boolean;
179
- /** Accessible label for the profile toggle button */
180
- ariaLabel?: string;
181
- /** Controls dropdown close behavior. "default" auto-closes on item/outside click, "outside" closes only on outside click, "inside" prevents auto-close. */
182
- close?: "default" | "outside" | "inside";
183
- }
184
-
185
- // ── Appnav ─────────────────────────────────────────────────────────────
186
-
187
- export interface SgdsAppnavProps extends SgdsBaseProps {
188
- /** Sets the visual tone of the navigation bar */
189
- tone?: "brand" | "gradient-1" | "gradient-2" | "gradient-3" | "gradient-4";
190
- /** Used only for SSR to indicate the presence of the `start` slot. */
191
- hasStartSlot?: boolean;
192
- /** The href link for brand logo */
193
- brandHref?: string;
194
- /** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */
195
- expand?: "sm" | "md" | "lg" | "xl" | "xxl" | "always" | "never";
196
- "onsgds-show"?: SgdsEventHandler;
197
- onSgdsShow?: SgdsEventHandler;
198
- "onsgds-after-show"?: SgdsEventHandler;
199
- onSgdsAfterShow?: SgdsEventHandler;
200
- "onsgds-hide"?: SgdsEventHandler;
201
- onSgdsHide?: SgdsEventHandler;
202
- "onsgds-after-hide"?: SgdsEventHandler;
203
- onSgdsAfterHide?: SgdsEventHandler;
204
- }
205
-
206
180
  // ── Badge ─────────────────────────────────────────────────────────────
207
181
 
208
182
  export interface SgdsBadgeProps extends SgdsBaseProps {
@@ -542,8 +516,6 @@ export interface SgdsDataTableHeadProps extends SgdsBaseProps {
542
516
  // ── DataTableRow ─────────────────────────────────────────────────────────────
543
517
 
544
518
  export interface SgdsDataTableRowProps extends SgdsBaseProps {
545
- /** Arbitrary data associated with this row. Returned in event detail on row selection. */
546
- rowData?: Record<string, unknown>;
547
519
  /** When true, the row has an expandable content area toggled by a chevron. */
548
520
  expand?: boolean;
549
521
  /** When true, the expandable content area is open. */
@@ -574,9 +546,9 @@ export interface SgdsDataTableProps extends SgdsBaseProps {
574
546
  /** Number of rows per page. */
575
547
  itemsPerPage?: number;
576
548
  /** Custom text shown on the footer's left side. */
577
- footerText?: string;
549
+ paginationSummary?: string;
578
550
  /** When true, shows a loading state and hides body rows. */
579
- isLoading?: boolean;
551
+ loading?: boolean;
580
552
  /** When true, emits sort events for external handling instead of local sorting. */
581
553
  serverSort?: boolean;
582
554
  /** Variant forwarded to the internal pagination component. */
@@ -736,8 +708,6 @@ export interface SgdsDropdownItemProps extends SgdsBaseProps {
736
708
  active?: boolean;
737
709
  /** Disables the SgdsMainnavItem */
738
710
  disabled?: boolean;
739
- /** When true, removes interactive styles (hover, cursor) for non-navigational display items */
740
- readonly?: boolean;
741
711
  /** Forwards aria-label to the inner clickable element for accessibility */
742
712
  ariaLabel?: string;
743
713
  }
@@ -866,23 +836,6 @@ export interface SgdsIconProps extends SgdsBaseProps {
866
836
  ariaLabel?: string;
867
837
  }
868
838
 
869
- // ── IconCard ─────────────────────────────────────────────────────────────
870
-
871
- export interface SgdsIconCardProps extends SgdsBaseProps {
872
- /** Removes the card's internal padding when set to true. */
873
- noPadding?: boolean;
874
- /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
875
- stretchedLink?: boolean;
876
- /** Disables the card */
877
- disabled?: boolean;
878
- /** When true, hides the default border of the card. */
879
- hideBorder?: boolean;
880
- /** When true, applies a tinted background color to the card. */
881
- tinted?: boolean;
882
- /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
883
- orientation?: CardOrientation;
884
- }
885
-
886
839
  // ── IconButton ─────────────────────────────────────────────────────────────
887
840
 
888
841
  export interface SgdsIconButtonProps extends SgdsBaseProps {
@@ -914,6 +867,23 @@ export interface SgdsIconButtonProps extends SgdsBaseProps {
914
867
  onSgdsFocus?: SgdsEventHandler;
915
868
  }
916
869
 
870
+ // ── IconCard ─────────────────────────────────────────────────────────────
871
+
872
+ export interface SgdsIconCardProps extends SgdsBaseProps {
873
+ /** Removes the card's internal padding when set to true. */
874
+ noPadding?: boolean;
875
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
876
+ stretchedLink?: boolean;
877
+ /** Disables the card */
878
+ disabled?: boolean;
879
+ /** When true, hides the default border of the card. */
880
+ hideBorder?: boolean;
881
+ /** When true, applies a tinted background color to the card. */
882
+ tinted?: boolean;
883
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
884
+ orientation?: CardOrientation;
885
+ }
886
+
917
887
  // ── IconList ─────────────────────────────────────────────────────────────
918
888
 
919
889
  export interface SgdsIconListProps extends SgdsBaseProps {
@@ -1060,32 +1030,17 @@ export interface SgdsMainnavItemProps extends SgdsBaseProps {
1060
1030
  disabled?: boolean;
1061
1031
  }
1062
1032
 
1063
- // ── MainnavProfile ─────────────────────────────────────────────────────────────
1064
-
1065
- export interface SgdsMainnavProfileProps extends SgdsBaseProps {
1066
- /** Primary text displayed next to the avatar in desktop (e.g. user name) */
1067
- label?: string;
1068
- /** Secondary text displayed below the label in desktop (e.g. agency or role) */
1069
- secondaryText?: string;
1070
- /** When true, disables the profile dropdown */
1071
- disabled?: boolean;
1072
- /** Accessible label for the profile toggle button */
1073
- ariaLabel?: string;
1074
- /** Controls dropdown close behavior. "default" auto-closes on item/outside click, "outside" closes only on outside click, "inside" prevents auto-close. */
1075
- close?: "default" | "outside" | "inside";
1076
- }
1077
-
1078
1033
  // ── Mainnav ─────────────────────────────────────────────────────────────
1079
1034
 
1080
1035
  export interface SgdsMainnavProps extends SgdsBaseProps {
1081
1036
  /** Used only for SSR to indicate the presence of the `non-collapsible` slot. */
1082
1037
  hasNonCollapsibleSlot?: boolean;
1083
- /** When true, removes max-width constraint to allow content to stretch full screen width */
1084
- fluid?: boolean;
1085
1038
  /** The href link for brand logo */
1086
1039
  brandHref?: string;
1087
1040
  /** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */
1088
1041
  expand?: "sm" | "md" | "lg" | "xl" | "xxl" | "always" | "never";
1042
+ /** When true, removes max-width constraint to allow content to stretch full screen width */
1043
+ fluid?: boolean;
1089
1044
  "onsgds-show"?: SgdsEventHandler;
1090
1045
  onSgdsShow?: SgdsEventHandler;
1091
1046
  "onsgds-after-show"?: SgdsEventHandler;
@@ -1359,62 +1314,6 @@ value: string;
1359
1314
  onSgdsAfterHide?: SgdsEventHandler;
1360
1315
  }
1361
1316
 
1362
- // ── SidenavItem ─────────────────────────────────────────────────────────────
1363
-
1364
- export interface SgdsSidenavItemProps extends SgdsBaseProps {
1365
- body?: HTMLElement;
1366
- /** when true, toggles the sidenav-item to open on first load and set the active stylings. */
1367
- active?: boolean;
1368
- /** Disables the SgdsSidenavItem */
1369
- disabled?: boolean;
1370
- /** Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute. */
1371
- ariaLabel?: string;
1372
- "onsgds-toggle"?: SgdsEventHandler;
1373
- onSgdsToggle?: SgdsEventHandler;
1374
- "onsgds-show"?: SgdsEventHandler;
1375
- onSgdsShow?: SgdsEventHandler;
1376
- "onsgds-after-show"?: SgdsEventHandler;
1377
- onSgdsAfterShow?: SgdsEventHandler;
1378
- "onsgds-hide"?: SgdsEventHandler;
1379
- onSgdsHide?: SgdsEventHandler;
1380
- "onsgds-after-hide"?: SgdsEventHandler;
1381
- onSgdsAfterHide?: SgdsEventHandler;
1382
- }
1383
-
1384
- // ── SidenavLink ─────────────────────────────────────────────────────────────
1385
-
1386
- export interface SgdsSidenavLinkProps extends SgdsBaseProps {
1387
- /** when true, sets the active stylings of .nav-link */
1388
- active?: boolean;
1389
- /** Disables the SgdsMainnavItem */
1390
- disabled?: boolean;
1391
- }
1392
-
1393
- // ── Sidenav ─────────────────────────────────────────────────────────────
1394
-
1395
- export interface SgdsSidenavProps extends SgdsBaseProps {
1396
- /** Apply position sticky to the sidenav */
1397
- sticky?: boolean;
1398
- }
1399
-
1400
- // ── Skeleton ─────────────────────────────────────────────────────────────
1401
-
1402
- export interface SgdsSkeletonProps extends SgdsBaseProps {
1403
- /** Sets the width of skeleton. Pass value in string with length units like pixels or percentage. */
1404
- width?: string;
1405
- /** Sets the height of skeleton. Pass value in string with length units like pixels or percentage. */
1406
- height?: string;
1407
- /** Sets the border radius of skeleton. Pass value in string with length units like pixels and percentage
1408
- When `row` is defined, the borderRadius is forwarded down to the border radius of each skeleton row */
1409
- borderRadius?: string;
1410
- /** Sets the number of rows within the given height of the skeleton.
1411
- By default, the height of each row is auto-sized by taking the height of the skeleton divided by the number of rows and
1412
- taking into account that there is a gap set by root css variable `--sgds-gap-xs` between each rows */
1413
- rows?: number;
1414
- /** Adds a sheening animated effect to the skeleton */
1415
- sheen?: boolean;
1416
- }
1417
-
1418
1317
  // ── SidebarGroup ─────────────────────────────────────────────────────────────
1419
1318
 
1420
1319
  export interface SgdsSidebarGroupProps extends SgdsBaseProps {
@@ -1496,6 +1395,62 @@ Override when your page uses a more specific term (e.g. `"Dashboard navigation"`
1496
1395
  onSgdsSelect?: (event: CustomEvent<ISgdsSidebarSelectEventDetail>) => void;
1497
1396
  }
1498
1397
 
1398
+ // ── SidenavItem ─────────────────────────────────────────────────────────────
1399
+
1400
+ export interface SgdsSidenavItemProps extends SgdsBaseProps {
1401
+ body?: HTMLElement;
1402
+ /** when true, toggles the sidenav-item to open on first load and set the active stylings. */
1403
+ active?: boolean;
1404
+ /** Disables the SgdsSidenavItem */
1405
+ disabled?: boolean;
1406
+ /** Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute. */
1407
+ ariaLabel?: string;
1408
+ "onsgds-toggle"?: SgdsEventHandler;
1409
+ onSgdsToggle?: SgdsEventHandler;
1410
+ "onsgds-show"?: SgdsEventHandler;
1411
+ onSgdsShow?: SgdsEventHandler;
1412
+ "onsgds-after-show"?: SgdsEventHandler;
1413
+ onSgdsAfterShow?: SgdsEventHandler;
1414
+ "onsgds-hide"?: SgdsEventHandler;
1415
+ onSgdsHide?: SgdsEventHandler;
1416
+ "onsgds-after-hide"?: SgdsEventHandler;
1417
+ onSgdsAfterHide?: SgdsEventHandler;
1418
+ }
1419
+
1420
+ // ── SidenavLink ─────────────────────────────────────────────────────────────
1421
+
1422
+ export interface SgdsSidenavLinkProps extends SgdsBaseProps {
1423
+ /** when true, sets the active stylings of .nav-link */
1424
+ active?: boolean;
1425
+ /** Disables the SgdsMainnavItem */
1426
+ disabled?: boolean;
1427
+ }
1428
+
1429
+ // ── Sidenav ─────────────────────────────────────────────────────────────
1430
+
1431
+ export interface SgdsSidenavProps extends SgdsBaseProps {
1432
+ /** Apply position sticky to the sidenav */
1433
+ sticky?: boolean;
1434
+ }
1435
+
1436
+ // ── Skeleton ─────────────────────────────────────────────────────────────
1437
+
1438
+ export interface SgdsSkeletonProps extends SgdsBaseProps {
1439
+ /** Sets the width of skeleton. Pass value in string with length units like pixels or percentage. */
1440
+ width?: string;
1441
+ /** Sets the height of skeleton. Pass value in string with length units like pixels or percentage. */
1442
+ height?: string;
1443
+ /** Sets the border radius of skeleton. Pass value in string with length units like pixels and percentage
1444
+ When `row` is defined, the borderRadius is forwarded down to the border radius of each skeleton row */
1445
+ borderRadius?: string;
1446
+ /** Sets the number of rows within the given height of the skeleton.
1447
+ By default, the height of each row is auto-sized by taking the height of the skeleton divided by the number of rows and
1448
+ taking into account that there is a gap set by root css variable `--sgds-gap-xs` between each rows */
1449
+ rows?: number;
1450
+ /** Adds a sheening animated effect to the skeleton */
1451
+ sheen?: boolean;
1452
+ }
1453
+
1499
1454
  // ── Spinner ─────────────────────────────────────────────────────────────
1500
1455
 
1501
1456
  export interface SgdsSpinnerProps extends SgdsBaseProps {
@@ -1869,8 +1824,6 @@ declare module "react" {
1869
1824
  "sgds-accordion": React.DetailedHTMLProps<SgdsAccordionProps, HTMLElement>;
1870
1825
  "sgds-alert-link": React.DetailedHTMLProps<SgdsAlertLinkProps, HTMLElement>;
1871
1826
  "sgds-alert": React.DetailedHTMLProps<SgdsAlertProps, HTMLElement>;
1872
- "sgds-appnav-profile": React.DetailedHTMLProps<SgdsAppnavProfileProps, HTMLElement>;
1873
- "sgds-appnav": React.DetailedHTMLProps<SgdsAppnavProps, HTMLElement>;
1874
1827
  "sgds-badge": React.DetailedHTMLProps<SgdsBadgeProps, HTMLElement>;
1875
1828
  "sgds-breadcrumb-item": React.DetailedHTMLProps<SgdsBreadcrumbItemProps, HTMLElement>;
1876
1829
  "sgds-breadcrumb": React.DetailedHTMLProps<SgdsBreadcrumbProps, HTMLElement>;
@@ -1896,15 +1849,14 @@ declare module "react" {
1896
1849
  "sgds-footer-item": React.DetailedHTMLProps<SgdsFooterItemProps, HTMLElement>;
1897
1850
  "sgds-footer": React.DetailedHTMLProps<SgdsFooterProps, HTMLElement>;
1898
1851
  "sgds-icon": React.DetailedHTMLProps<SgdsIconProps, HTMLElement>;
1899
- "sgds-icon-card": React.DetailedHTMLProps<SgdsIconCardProps, HTMLElement>;
1900
1852
  "sgds-icon-button": React.DetailedHTMLProps<SgdsIconButtonProps, HTMLElement>;
1853
+ "sgds-icon-card": React.DetailedHTMLProps<SgdsIconCardProps, HTMLElement>;
1901
1854
  "sgds-icon-list": React.DetailedHTMLProps<SgdsIconListProps, HTMLElement>;
1902
1855
  "sgds-image-card": React.DetailedHTMLProps<SgdsImageCardProps, HTMLElement>;
1903
1856
  "sgds-input": React.DetailedHTMLProps<SgdsInputProps, HTMLElement>;
1904
1857
  "sgds-link": React.DetailedHTMLProps<SgdsLinkProps, HTMLElement>;
1905
1858
  "sgds-mainnav-dropdown": React.DetailedHTMLProps<SgdsMainnavDropdownProps, HTMLElement>;
1906
1859
  "sgds-mainnav-item": React.DetailedHTMLProps<SgdsMainnavItemProps, HTMLElement>;
1907
- "sgds-mainnav-profile": React.DetailedHTMLProps<SgdsMainnavProfileProps, HTMLElement>;
1908
1860
  "sgds-mainnav": React.DetailedHTMLProps<SgdsMainnavProps, HTMLElement>;
1909
1861
  "sgds-masthead": React.DetailedHTMLProps<SgdsMastheadProps, HTMLElement>;
1910
1862
  "sgds-modal": React.DetailedHTMLProps<SgdsModalProps, HTMLElement>;
@@ -1916,14 +1868,14 @@ declare module "react" {
1916
1868
  "sgds-radio": React.DetailedHTMLProps<SgdsRadioProps, HTMLElement>;
1917
1869
  "sgds-select-option": React.DetailedHTMLProps<SgdsSelectOptionProps, HTMLElement>;
1918
1870
  "sgds-select": React.DetailedHTMLProps<SgdsSelectProps, HTMLElement>;
1919
- "sgds-sidenav-item": React.DetailedHTMLProps<SgdsSidenavItemProps, HTMLElement>;
1920
- "sgds-sidenav-link": React.DetailedHTMLProps<SgdsSidenavLinkProps, HTMLElement>;
1921
- "sgds-sidenav": React.DetailedHTMLProps<SgdsSidenavProps, HTMLElement>;
1922
- "sgds-skeleton": React.DetailedHTMLProps<SgdsSkeletonProps, HTMLElement>;
1923
1871
  "sgds-sidebar-group": React.DetailedHTMLProps<SgdsSidebarGroupProps, HTMLElement>;
1924
1872
  "sgds-sidebar-item": React.DetailedHTMLProps<SgdsSidebarItemProps, HTMLElement>;
1925
1873
  "sgds-sidebar-section": React.DetailedHTMLProps<SgdsSidebarSectionProps, HTMLElement>;
1926
1874
  "sgds-sidebar": React.DetailedHTMLProps<SgdsSidebarProps, HTMLElement>;
1875
+ "sgds-sidenav-item": React.DetailedHTMLProps<SgdsSidenavItemProps, HTMLElement>;
1876
+ "sgds-sidenav-link": React.DetailedHTMLProps<SgdsSidenavLinkProps, HTMLElement>;
1877
+ "sgds-sidenav": React.DetailedHTMLProps<SgdsSidenavProps, HTMLElement>;
1878
+ "sgds-skeleton": React.DetailedHTMLProps<SgdsSkeletonProps, HTMLElement>;
1927
1879
  "sgds-spinner": React.DetailedHTMLProps<SgdsSpinnerProps, HTMLElement>;
1928
1880
  "sgds-step": React.DetailedHTMLProps<SgdsStepProps, HTMLElement>;
1929
1881
  "sgds-stepper": React.DetailedHTMLProps<SgdsStepperProps, HTMLElement>;
@@ -1959,8 +1911,6 @@ declare global {
1959
1911
  "sgds-accordion": HTMLElement;
1960
1912
  "sgds-alert-link": HTMLElement;
1961
1913
  "sgds-alert": HTMLElement;
1962
- "sgds-appnav-profile": HTMLElement;
1963
- "sgds-appnav": HTMLElement;
1964
1914
  "sgds-badge": HTMLElement;
1965
1915
  "sgds-breadcrumb-item": HTMLElement;
1966
1916
  "sgds-breadcrumb": HTMLElement;
@@ -1986,15 +1936,14 @@ declare global {
1986
1936
  "sgds-footer-item": HTMLElement;
1987
1937
  "sgds-footer": HTMLElement;
1988
1938
  "sgds-icon": HTMLElement;
1989
- "sgds-icon-card": HTMLElement;
1990
1939
  "sgds-icon-button": HTMLElement;
1940
+ "sgds-icon-card": HTMLElement;
1991
1941
  "sgds-icon-list": HTMLElement;
1992
1942
  "sgds-image-card": HTMLElement;
1993
1943
  "sgds-input": HTMLElement;
1994
1944
  "sgds-link": HTMLElement;
1995
1945
  "sgds-mainnav-dropdown": HTMLElement;
1996
1946
  "sgds-mainnav-item": HTMLElement;
1997
- "sgds-mainnav-profile": HTMLElement;
1998
1947
  "sgds-mainnav": HTMLElement;
1999
1948
  "sgds-masthead": HTMLElement;
2000
1949
  "sgds-modal": HTMLElement;
@@ -2006,14 +1955,14 @@ declare global {
2006
1955
  "sgds-radio": HTMLElement;
2007
1956
  "sgds-select-option": HTMLElement;
2008
1957
  "sgds-select": HTMLElement;
2009
- "sgds-sidenav-item": HTMLElement;
2010
- "sgds-sidenav-link": HTMLElement;
2011
- "sgds-sidenav": HTMLElement;
2012
- "sgds-skeleton": HTMLElement;
2013
1958
  "sgds-sidebar-group": HTMLElement;
2014
1959
  "sgds-sidebar-item": HTMLElement;
2015
1960
  "sgds-sidebar-section": HTMLElement;
2016
1961
  "sgds-sidebar": HTMLElement;
1962
+ "sgds-sidenav-item": HTMLElement;
1963
+ "sgds-sidenav-link": HTMLElement;
1964
+ "sgds-sidenav": HTMLElement;
1965
+ "sgds-skeleton": HTMLElement;
2017
1966
  "sgds-spinner": HTMLElement;
2018
1967
  "sgds-step": HTMLElement;
2019
1968
  "sgds-stepper": HTMLElement;
@@ -1,64 +0,0 @@
1
- import { nothing, PropertyValueMap, TemplateResult } from "lit";
2
- import SgdsElement from "./sgds-element";
3
- import SgdsIconButton from "../components/IconButton/sgds-icon-button";
4
- export type NavExpandSize = "sm" | "md" | "lg" | "xl" | "xxl" | "always" | "never";
5
- export type NavTone = "default" | "brand" | "gradient-1" | "gradient-2" | "gradient-3" | "gradient-4";
6
- /**
7
- * Base class for navigation components (sgds-mainnav and sgds-appnav).
8
- * Provides collapse/expand behavior, breakpoint handling, and animation logic.
9
- * Subclasses must implement `render()` and provide their own context.
10
- */
11
- export default abstract class NavElement extends SgdsElement {
12
- /** @internal */
13
- static dependencies: {
14
- "sgds-icon-button": typeof SgdsIconButton;
15
- };
16
- /** Indicates if mobile menu is open or closed */
17
- protected expanded: boolean;
18
- /** Denotes the transition state of mobile mainnav menu opening */
19
- protected expanding: boolean;
20
- protected nav: HTMLElement;
21
- protected navbar: HTMLElement;
22
- protected header: HTMLElement;
23
- protected body: HTMLElement;
24
- protected navScroll: HTMLElement;
25
- protected navbarEnd: HTMLElement;
26
- /** The href link for brand logo */
27
- brandHref: string;
28
- /** @internal */
29
- protected collapseId: string;
30
- /** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */
31
- expand: NavExpandSize;
32
- protected breakpointReached: boolean;
33
- /** @internal Whether sgds-*-profile is slotted in the profile slot */
34
- protected _hasProfileComponent: boolean;
35
- connectedCallback(): void;
36
- disconnectedCallback(): void;
37
- firstUpdated(changedProperties: PropertyValueMap<this>): void;
38
- private _handleClickOutsideBound;
39
- private _handleResizeBound;
40
- private _handleClickOutOfElement;
41
- protected _handleSummaryClick(): void;
42
- protected _handleResize(): void;
43
- /** Hook for subclasses to update context providers when breakpoint state changes */
44
- protected abstract _onBreakpointReached(reached: boolean): void;
45
- /** Hook for subclasses to check current breakpoint context state */
46
- protected abstract _isBreakpointReached(): boolean;
47
- private _handleMobileNavBound;
48
- protected _handleMobileNav(): Promise<void>;
49
- protected _handleDesktopNav(): void;
50
- private _animateToShow;
51
- /** Hook for subclasses to perform actions after the mobile menu opens (e.g., focus management) */
52
- protected _onMenuShown(): void;
53
- private _animateToHide;
54
- /** @internal */
55
- handleOpenChange(): Promise<void>;
56
- /** Shows the menu. For when nav is in the collapsed form */
57
- show(): Promise<void>;
58
- /** Hide the menu. For when nav is in the collapsed form */
59
- hide(): Promise<void>;
60
- /** Helper to get the expand CSS class */
61
- protected _expandClass(): string;
62
- /** Helper: renders the hamburger toggler icon-button. Subclasses should call this in their render(). */
63
- protected _renderToggler(tone?: NavTone): TemplateResult | typeof nothing;
64
- }