@govtechsg/sgds-web-component 3.26.0 → 3.26.1-rc.1

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 (130) hide show
  1. package/base/option-element.d.ts +1 -0
  2. package/base/option-element.js +8 -0
  3. package/base/option-element.js.map +1 -1
  4. package/components/Checkbox/index.umd.min.js +233 -233
  5. package/components/Checkbox/index.umd.min.js.map +1 -1
  6. package/components/Checkbox/sgds-checkbox.d.ts +1 -0
  7. package/components/Checkbox/sgds-checkbox.js +6 -1
  8. package/components/Checkbox/sgds-checkbox.js.map +1 -1
  9. package/components/ComboBox/index.umd.min.js +241 -241
  10. package/components/ComboBox/index.umd.min.js.map +1 -1
  11. package/components/DataTable/data-table.js +6 -0
  12. package/components/DataTable/data-table.js.map +1 -0
  13. package/components/DataTable/index.d.ts +12 -0
  14. package/components/DataTable/index.js +11 -0
  15. package/components/DataTable/index.js.map +1 -0
  16. package/components/DataTable/index.umd.min.js +2634 -0
  17. package/components/DataTable/index.umd.min.js.map +1 -0
  18. package/components/DataTable/sgds-data-table-cell.d.ts +15 -0
  19. package/components/DataTable/sgds-data-table-cell.js +32 -0
  20. package/components/DataTable/sgds-data-table-cell.js.map +1 -0
  21. package/components/DataTable/sgds-data-table-head.d.ts +28 -0
  22. package/components/DataTable/sgds-data-table-head.js +69 -0
  23. package/components/DataTable/sgds-data-table-head.js.map +1 -0
  24. package/components/DataTable/sgds-data-table-row.d.ts +76 -0
  25. package/components/DataTable/sgds-data-table-row.js +333 -0
  26. package/components/DataTable/sgds-data-table-row.js.map +1 -0
  27. package/components/DataTable/sgds-data-table.d.ts +82 -0
  28. package/components/DataTable/sgds-data-table.js +405 -0
  29. package/components/DataTable/sgds-data-table.js.map +1 -0
  30. package/components/Datepicker/index.umd.min.js +86 -86
  31. package/components/Datepicker/index.umd.min.js.map +1 -1
  32. package/components/Input/index.umd.min.js +2 -2
  33. package/components/Input/index.umd.min.js.map +1 -1
  34. package/components/Input/input.js +1 -1
  35. package/components/Modal/index.umd.min.js +1 -1
  36. package/components/Modal/index.umd.min.js.map +1 -1
  37. package/components/Modal/sgds-modal.js +1 -1
  38. package/components/Modal/sgds-modal.js.map +1 -1
  39. package/components/QuantityToggle/index.umd.min.js +2 -2
  40. package/components/QuantityToggle/index.umd.min.js.map +1 -1
  41. package/components/QuantityToggle/sgds-quantity-toggle.js +9 -11
  42. package/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  43. package/components/Select/index.umd.min.js +29 -29
  44. package/components/Select/index.umd.min.js.map +1 -1
  45. package/components/Tab/index.umd.min.js +1 -1
  46. package/components/Tab/index.umd.min.js.map +1 -1
  47. package/components/Tab/tab-panel.js +1 -1
  48. package/components/Textarea/index.umd.min.js +1 -1
  49. package/components/index.d.ts +4 -0
  50. package/components/index.js +4 -0
  51. package/components/index.js.map +1 -1
  52. package/components/index.umd.min.js +575 -481
  53. package/components/index.umd.min.js.map +1 -1
  54. package/css/fouc.css +5 -1
  55. package/custom-elements.json +4061 -2672
  56. package/index.d.ts +1 -0
  57. package/index.js +1 -0
  58. package/index.js.map +1 -1
  59. package/index.umd.min.js +404 -310
  60. package/index.umd.min.js.map +1 -1
  61. package/package.json +1 -1
  62. package/react/base/option-element.cjs.js +8 -0
  63. package/react/base/option-element.cjs.js.map +1 -1
  64. package/react/base/option-element.js +8 -0
  65. package/react/base/option-element.js.map +1 -1
  66. package/react/components/Checkbox/sgds-checkbox.cjs.js +6 -1
  67. package/react/components/Checkbox/sgds-checkbox.cjs.js.map +1 -1
  68. package/react/components/Checkbox/sgds-checkbox.js +6 -1
  69. package/react/components/Checkbox/sgds-checkbox.js.map +1 -1
  70. package/react/components/DataTable/data-table.cjs.js +11 -0
  71. package/react/components/DataTable/data-table.cjs.js.map +1 -0
  72. package/react/components/DataTable/data-table.js +7 -0
  73. package/react/components/DataTable/data-table.js.map +1 -0
  74. package/react/components/DataTable/sgds-data-table-cell.cjs.js +38 -0
  75. package/react/components/DataTable/sgds-data-table-cell.cjs.js.map +1 -0
  76. package/react/components/DataTable/sgds-data-table-cell.js +33 -0
  77. package/react/components/DataTable/sgds-data-table-cell.js.map +1 -0
  78. package/react/components/DataTable/sgds-data-table-head.cjs.js +75 -0
  79. package/react/components/DataTable/sgds-data-table-head.cjs.js.map +1 -0
  80. package/react/components/DataTable/sgds-data-table-head.js +70 -0
  81. package/react/components/DataTable/sgds-data-table-head.js.map +1 -0
  82. package/react/components/DataTable/sgds-data-table-row.cjs.js +339 -0
  83. package/react/components/DataTable/sgds-data-table-row.cjs.js.map +1 -0
  84. package/react/components/DataTable/sgds-data-table-row.js +334 -0
  85. package/react/components/DataTable/sgds-data-table-row.js.map +1 -0
  86. package/react/components/DataTable/sgds-data-table.cjs.js +411 -0
  87. package/react/components/DataTable/sgds-data-table.cjs.js.map +1 -0
  88. package/react/components/DataTable/sgds-data-table.js +406 -0
  89. package/react/components/DataTable/sgds-data-table.js.map +1 -0
  90. package/react/components/Input/input.cjs.js +1 -1
  91. package/react/components/Input/input.js +1 -1
  92. package/react/components/Modal/sgds-modal.cjs.js +1 -1
  93. package/react/components/Modal/sgds-modal.cjs.js.map +1 -1
  94. package/react/components/Modal/sgds-modal.js +1 -1
  95. package/react/components/Modal/sgds-modal.js.map +1 -1
  96. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js +9 -11
  97. package/react/components/QuantityToggle/sgds-quantity-toggle.cjs.js.map +1 -1
  98. package/react/components/QuantityToggle/sgds-quantity-toggle.js +9 -11
  99. package/react/components/QuantityToggle/sgds-quantity-toggle.js.map +1 -1
  100. package/react/components/Tab/tab-panel.cjs.js +1 -1
  101. package/react/components/Tab/tab-panel.js +1 -1
  102. package/react/data-table/index.cjs.js +44 -0
  103. package/react/data-table/index.cjs.js.map +1 -0
  104. package/react/data-table/index.d.ts +4 -0
  105. package/react/data-table/index.js +20 -0
  106. package/react/data-table/index.js.map +1 -0
  107. package/react/data-table-cell/index.cjs.js +40 -0
  108. package/react/data-table-cell/index.cjs.js.map +1 -0
  109. package/react/data-table-cell/index.d.ts +4 -0
  110. package/react/data-table-cell/index.js +16 -0
  111. package/react/data-table-cell/index.js.map +1 -0
  112. package/react/data-table-head/index.cjs.js +40 -0
  113. package/react/data-table-head/index.cjs.js.map +1 -0
  114. package/react/data-table-head/index.d.ts +4 -0
  115. package/react/data-table-head/index.js +16 -0
  116. package/react/data-table-head/index.js.map +1 -0
  117. package/react/data-table-row/index.cjs.js +45 -0
  118. package/react/data-table-row/index.cjs.js.map +1 -0
  119. package/react/data-table-row/index.d.ts +4 -0
  120. package/react/data-table-row/index.js +21 -0
  121. package/react/data-table-row/index.js.map +1 -0
  122. package/react/index.cjs.js +132 -124
  123. package/react/index.cjs.js.map +1 -1
  124. package/react/index.d.ts +5 -1
  125. package/react/index.js +5 -1
  126. package/react/index.js.map +1 -1
  127. package/react/styles/form-text-control.cjs.js +1 -1
  128. package/react/styles/form-text-control.js +1 -1
  129. package/styles/form-text-control.js +1 -1
  130. package/types/react.d.ts +109 -16
package/types/react.d.ts CHANGED
@@ -193,20 +193,6 @@ Variants include: `primary`, `accent`, `success`, `danger`, `warning`, `cyan`, `
193
193
  onSgdsAfterHide?: SgdsEventHandler;
194
194
  }
195
195
 
196
- // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
197
-
198
- export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
199
- /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
200
- active?: boolean;
201
- }
202
-
203
- // ── Breadcrumb ─────────────────────────────────────────────────────────────
204
-
205
- export interface SgdsBreadcrumbProps extends SgdsBaseProps {
206
- /** The aria-label of nav element within breadcrumb component. */
207
- ariaLabel?: string;
208
- }
209
-
210
196
  // ── Button ─────────────────────────────────────────────────────────────
211
197
 
212
198
  export interface SgdsButtonProps extends SgdsBaseProps {
@@ -263,6 +249,20 @@ value of this attribute must be an id of a form in the same document or shadow r
263
249
  onSgdsFocus?: SgdsEventHandler;
264
250
  }
265
251
 
252
+ // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
253
+
254
+ export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
255
+ /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
256
+ active?: boolean;
257
+ }
258
+
259
+ // ── Breadcrumb ─────────────────────────────────────────────────────────────
260
+
261
+ export interface SgdsBreadcrumbProps extends SgdsBaseProps {
262
+ /** The aria-label of nav element within breadcrumb component. */
263
+ ariaLabel?: string;
264
+ }
265
+
266
266
  // ── Card ─────────────────────────────────────────────────────────────
267
267
 
268
268
  export interface SgdsCardProps extends SgdsBaseProps {
@@ -483,6 +483,91 @@ value: string;
483
483
  onSgdsAfterHide?: SgdsEventHandler;
484
484
  }
485
485
 
486
+ // ── DataTableCell ─────────────────────────────────────────────────────────────
487
+
488
+ export interface SgdsDataTableCellProps extends SgdsBaseProps {
489
+ /** Number of columns this cell spans. */
490
+ colspan?: number | undefined;
491
+ /** Number of rows this cell spans. */
492
+ rowspan?: number | undefined;
493
+ }
494
+
495
+ // ── DataTableHead ─────────────────────────────────────────────────────────────
496
+
497
+ export interface SgdsDataTableHeadProps extends SgdsBaseProps {
498
+ /** Sets the column width. */
499
+ width?: string | undefined;
500
+ /** Number of columns this cell spans. */
501
+ colspan?: number | undefined;
502
+ /** Number of rows this cell spans. */
503
+ rowspan?: number | undefined;
504
+ /** Text alignment for the header content. */
505
+ textAlign?: "left" | "right";
506
+ /** Current sort direction for this column. */
507
+ ariasort?: "ascending" | "descending" | "none" | "other" | undefined;
508
+ /** When true, clicking this header cycles through ascending → descending → none sort. */
509
+ sorting?: boolean;
510
+ /** Column key emitted in the row's internal sort payload, used to identify which column to sort. */
511
+ sortKey?: string;
512
+ }
513
+
514
+ // ── DataTableRow ─────────────────────────────────────────────────────────────
515
+
516
+ export interface SgdsDataTableRowProps extends SgdsBaseProps {
517
+ /** Arbitrary data associated with this row. Returned in event detail on row selection. */
518
+ rowData?: Record<string, unknown>;
519
+ /** When true, the row has an expandable content area toggled by a chevron. */
520
+ expand?: boolean;
521
+ /** When true, the expandable content area is open. */
522
+ open?: boolean;
523
+ /** When true, the row is checked. */
524
+ checked?: boolean;
525
+ /** The checkbox rendered inside this row, if `showCheckbox` is true. */
526
+ checkbox?: SgdsCheckbox | null;
527
+ "onsgds-show"?: SgdsEventHandler;
528
+ onSgdsShow?: SgdsEventHandler;
529
+ "onsgds-after-show"?: SgdsEventHandler;
530
+ onSgdsAfterShow?: SgdsEventHandler;
531
+ "onsgds-hide"?: SgdsEventHandler;
532
+ onSgdsHide?: SgdsEventHandler;
533
+ "onsgds-after-hide"?: SgdsEventHandler;
534
+ onSgdsAfterHide?: SgdsEventHandler;
535
+ }
536
+
537
+ // ── DataTable ─────────────────────────────────────────────────────────────
538
+
539
+ export interface SgdsDataTableProps extends SgdsBaseProps {
540
+ /** If true, renders a checkbox column for row selection. */
541
+ multiSelect?: boolean;
542
+ /** Total number of data items (for server-side pagination). */
543
+ dataLength?: number;
544
+ /** Current page (1-based). */
545
+ currentPage?: number;
546
+ /** Number of rows per page. */
547
+ itemsPerPage?: number;
548
+ /** Custom text shown on the footer's left side. */
549
+ footerText?: string;
550
+ /** If true, hides the footer (summary text and pagination controls). */
551
+ hideFooter?: boolean;
552
+ /** When true, shows a loading state and hides body rows. */
553
+ isLoading?: boolean;
554
+ /** When true, emits sort events for external handling instead of local sorting. */
555
+ serverSort?: boolean;
556
+ /** Controls the CSS `table-layout` algorithm.
557
+ Use "auto" to let the browser size columns based on content, or "fixed" to distribute column widths evenly regardless of content. */
558
+ layout?: "auto" | "fixed";
559
+ /** Pagination mode. `client` (default) slices rows and renders pagination controls.
560
+ `server` renders all slotted rows as-is — the caller is responsible for passing
561
+ the correct page of data and handling `sgds-page-change` externally. */
562
+ mode?: "client" | "server";
563
+ "onsgds-row-select"?: SgdsEventHandler;
564
+ onSgdsRowSelect?: SgdsEventHandler;
565
+ "onsgds-sort"?: SgdsEventHandler;
566
+ onSgdsSort?: SgdsEventHandler;
567
+ "onsgds-page-change"?: SgdsEventHandler;
568
+ onSgdsPageChange?: SgdsEventHandler;
569
+ }
570
+
486
571
  // ── Datepicker ─────────────────────────────────────────────────────────────
487
572
 
488
573
  export interface SgdsDatepickerProps extends SgdsBaseProps {
@@ -1740,15 +1825,19 @@ declare module "react" {
1740
1825
  "sgds-alert-link": React.DetailedHTMLProps<SgdsAlertLinkProps, HTMLElement>;
1741
1826
  "sgds-alert": React.DetailedHTMLProps<SgdsAlertProps, HTMLElement>;
1742
1827
  "sgds-badge": React.DetailedHTMLProps<SgdsBadgeProps, HTMLElement>;
1828
+ "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1743
1829
  "sgds-breadcrumb-item": React.DetailedHTMLProps<SgdsBreadcrumbItemProps, HTMLElement>;
1744
1830
  "sgds-breadcrumb": React.DetailedHTMLProps<SgdsBreadcrumbProps, HTMLElement>;
1745
- "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1746
1831
  "sgds-card": React.DetailedHTMLProps<SgdsCardProps, HTMLElement>;
1747
1832
  "sgds-checkbox-group": React.DetailedHTMLProps<SgdsCheckboxGroupProps, HTMLElement>;
1748
1833
  "sgds-checkbox": React.DetailedHTMLProps<SgdsCheckboxProps, HTMLElement>;
1749
1834
  "sgds-close-button": React.DetailedHTMLProps<SgdsCloseButtonProps, HTMLElement>;
1750
1835
  "sgds-combo-box-option": React.DetailedHTMLProps<SgdsComboBoxOptionProps, HTMLElement>;
1751
1836
  "sgds-combo-box": React.DetailedHTMLProps<SgdsComboBoxProps, HTMLElement>;
1837
+ "sgds-data-table-cell": React.DetailedHTMLProps<SgdsDataTableCellProps, HTMLElement>;
1838
+ "sgds-data-table-head": React.DetailedHTMLProps<SgdsDataTableHeadProps, HTMLElement>;
1839
+ "sgds-data-table-row": React.DetailedHTMLProps<SgdsDataTableRowProps, HTMLElement>;
1840
+ "sgds-data-table": React.DetailedHTMLProps<SgdsDataTableProps, HTMLElement>;
1752
1841
  "sgds-datepicker": React.DetailedHTMLProps<SgdsDatepickerProps, HTMLElement>;
1753
1842
  "sgds-description-list-group": React.DetailedHTMLProps<SgdsDescriptionListGroupProps, HTMLElement>;
1754
1843
  "sgds-description-list": React.DetailedHTMLProps<SgdsDescriptionListProps, HTMLElement>;
@@ -1823,15 +1912,19 @@ declare global {
1823
1912
  "sgds-alert-link": HTMLElement;
1824
1913
  "sgds-alert": HTMLElement;
1825
1914
  "sgds-badge": HTMLElement;
1915
+ "sgds-button": HTMLElement;
1826
1916
  "sgds-breadcrumb-item": HTMLElement;
1827
1917
  "sgds-breadcrumb": HTMLElement;
1828
- "sgds-button": HTMLElement;
1829
1918
  "sgds-card": HTMLElement;
1830
1919
  "sgds-checkbox-group": HTMLElement;
1831
1920
  "sgds-checkbox": HTMLElement;
1832
1921
  "sgds-close-button": HTMLElement;
1833
1922
  "sgds-combo-box-option": HTMLElement;
1834
1923
  "sgds-combo-box": HTMLElement;
1924
+ "sgds-data-table-cell": HTMLElement;
1925
+ "sgds-data-table-head": HTMLElement;
1926
+ "sgds-data-table-row": HTMLElement;
1927
+ "sgds-data-table": HTMLElement;
1835
1928
  "sgds-datepicker": HTMLElement;
1836
1929
  "sgds-description-list-group": HTMLElement;
1837
1930
  "sgds-description-list": HTMLElement;