@primer/react 38.38.0 → 38.39.0-rc.052483c40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/DataTable/Table-50e68700.css +2 -0
- package/dist/DataTable/Table-50e68700.css.map +1 -0
- package/dist/DataTable/Table.d.ts +1 -0
- package/dist/DataTable/Table.js +72 -42
- package/dist/DataTable/Table.module.css.js +7 -2
- package/dist/DataTable/TableGroup.d.ts +41 -0
- package/dist/DataTable/TableGroup.js +155 -0
- package/dist/DataTable/TableGroupContext.js +5 -0
- package/dist/DataTable/index.d.ts +3 -1
- package/dist/DataTable/index.js +2 -0
- package/dist/experimental/index.d.ts +2 -1
- package/dist/hooks/useOverflow.js +4 -4
- package/generated/components.json +39 -0
- package/package.json +7 -7
- package/dist/DataTable/Table-7f5cb3e4.css +0 -2
- package/dist/DataTable/Table-7f5cb3e4.css.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @primer/react
|
|
2
2
|
|
|
3
|
+
## 38.39.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#8372](https://github.com/primer/react/pull/8372) [`23185b7`](https://github.com/primer/react/commit/23185b7a6d457d8d8a2161d804bb36da5e62e301) Thanks [@rickyzhangca](https://github.com/rickyzhangca)! - DataTable: Add `Table.Group` for rendering accessible groups of table rows.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#8370](https://github.com/primer/react/pull/8370) [`56ebdc4`](https://github.com/primer/react/commit/56ebdc49f8f6c862288ee653a4cdc7a70afe829c) Thanks [@rickyzhangca](https://github.com/rickyzhangca)! - ScrollableRegion: Remove focusability when content no longer overflows
|
|
12
|
+
|
|
13
|
+
- [#8371](https://github.com/primer/react/pull/8371) [`dc8387f`](https://github.com/primer/react/commit/dc8387f4fa07cf00887cb2412d358fb7eb54be63) Thanks [@rickyzhangca](https://github.com/rickyzhangca)! - DataTable: Keep sortable column names concise and convey the next sort action as an accessible description
|
|
14
|
+
|
|
3
15
|
## 38.38.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.prc-DataTable-TableContainer-hn0p3{column-gap:var(--base-size-8,.5rem);display:grid;grid-template-areas:"title actions" "divider divider" "subtitle subtitle" "filter filter" "table table" "footer footer";grid-template-columns:1fr 1fr}.prc-DataTable-TableTitle-nM43N{align-self:center;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-semibold,600);grid-area:title;line-height:20px}.prc-DataTable-TableSubtitle--L6Ho,.prc-DataTable-TableTitle-nM43N{color:var(--fgColor-default,#1f2328);margin:0}.prc-DataTable-TableSubtitle--L6Ho{font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-normal,400);grid-area:subtitle;line-height:var(--text-title-lineHeight-small,1.5)}.prc-DataTable-TableActions-fkc2b{align-items:center;column-gap:var(--base-size-8,.5rem);display:flex;grid-area:actions;justify-self:end}.prc-DataTable-TableDivider-TRc3b{background-color:var(--borderColor-default,#d1d9e0);grid-area:divider;height:1px;margin-block-end:var(--base-size-8,.5rem);margin-block-start:var(--base-size-16,1rem);width:100%}.prc-DataTable-TableActions-fkc2b+.prc-DataTable-TableOverflowWrapper-bSqT-,.prc-DataTable-TableSubtitle--L6Ho+.prc-DataTable-TableOverflowWrapper-bSqT-,.prc-DataTable-TableTitle-nM43N+.prc-DataTable-TableOverflowWrapper-bSqT-{margin-block-start:var(--base-size-8,.5rem)}.prc-DataTable-Table-7ux1n,.prc-DataTable-TableOverflowWrapper-bSqT-{grid-area:table}.prc-DataTable-Table-7ux1n{--table-border-radius:0.375rem;--table-cell-padding:var(--cell-padding-block,0.5rem) var(--cell-padding-inline,0.75rem);--table-font-size:0.75rem;background-color:var(--bgColor-default,#fff);border-collapse:separate;border-spacing:0;display:grid;font-size:var(--table-font-size);grid-template-columns:var(--grid-template-columns);line-height:1.66667;width:100%}.prc-DataTable-Table-7ux1n:where([data-cell-padding=condensed]){--cell-padding-block:0.25rem;--cell-padding-inline:0.5rem}.prc-DataTable-Table-7ux1n:where([data-cell-padding=normal]){--cell-padding-block:0.5rem;--cell-padding-inline:0.75rem}.prc-DataTable-Table-7ux1n:where([data-cell-padding=spacious]){--cell-padding-block:0.75rem;--cell-padding-inline:1rem}.prc-DataTable-TableCell-Fk4ve:first-child,.prc-DataTable-TableHeader-eyTab:first-child{border-inline-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableCell-Fk4ve:last-child,.prc-DataTable-TableHeader-eyTab:last-child{border-inline-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableCell-Fk4ve,.prc-DataTable-TableHeader-eyTab{align-items:center;border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);display:flex;padding:var(--table-cell-padding);text-align:start}.prc-DataTable-TableCell-Fk4ve:where([data-cell-align=end]),.prc-DataTable-TableHeader-eyTab:where([data-cell-align=end]){display:flex;justify-content:flex-end;text-align:end}.prc-DataTable-TableHeader-eyTab[data-cell-align=end] .prc-DataTable-TableSortButton--aq0y{display:flex;flex-direction:row-reverse}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab{border-block-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab:first-child{border-top-left-radius:var(--table-border-radius)}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab:last-child{border-top-right-radius:var(--table-border-radius)}.prc-DataTable-TableOverflowWrapper-bSqT-:last-child .prc-DataTable-Table-7ux1n .prc-DataTable-TableBody-QKQy2:last-of-type .prc-DataTable-TableRow-Icc7F:last-of-type .prc-DataTable-TableCell-Fk4ve:first-child{border-bottom-left-radius:var(--table-border-radius)}.prc-DataTable-TableOverflowWrapper-bSqT-:last-child .prc-DataTable-Table-7ux1n .prc-DataTable-TableBody-QKQy2:last-of-type .prc-DataTable-TableRow-Icc7F:last-of-type .prc-DataTable-TableCell-Fk4ve:last-child{border-bottom-right-radius:var(--table-border-radius)}.prc-DataTable-TableRow-Icc7F>:first-child .prc-DataTable-TableCellSkeletonItem-bGhwZ,.prc-DataTable-TableRow-Icc7F>:first-child:not(.prc-DataTable-TableCellSkeleton-DMdM5){padding-inline-start:var(--base-size-16,1rem)}.prc-DataTable-TableRow-Icc7F>:last-child .prc-DataTable-TableCellSkeletonItem-bGhwZ,.prc-DataTable-TableRow-Icc7F>:last-child:not(.prc-DataTable-TableCellSkeleton-DMdM5){padding-inline-end:var(--base-size-16,1rem)}.prc-DataTable-TableHeader-eyTab{background-color:var(--bgColor-muted,#f6f8fa);border-block-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);color:var(--fgColor-muted,#59636e);font-weight:var(--base-text-weight-semibold,600)}.prc-DataTable-TableHeader-eyTab:where([aria-sort=ascending]),.prc-DataTable-TableHeader-eyTab:where([aria-sort=descending]){color:var(--fgColor-default,#1f2328)}.prc-DataTable-TableSortIcon-wHvJw{visibility:hidden}.prc-DataTable-TableHeader-eyTab .prc-DataTable-TableSortButton--aq0y:focus .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab:hover .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab[aria-sort=ascending] .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab[aria-sort=descending] .prc-DataTable-TableSortIcon--descending-hHJGo{visibility:visible}.prc-DataTable-TableRow-Icc7F:hover .prc-DataTable-TableCell-Fk4ve:not(.prc-DataTable-TableCellSkeleton-DMdM5){background-color:var(--control-transparent-bgColor-hover,#818b981a)}.prc-DataTable-TableCell-Fk4ve:where([scope=row]){align-items:center;color:var(--fgColor-default,#1f2328);display:flex;font-weight:var(--base-text-weight-semibold,600)}.prc-DataTable-TableCellSkeleton-DMdM5{padding:0}.prc-DataTable-TableCellSkeletonItems-Ljhq5{display:flex;flex-direction:column;width:100%}.prc-DataTable-TableCellSkeletonItem-bGhwZ{padding:var(--table-cell-padding)}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+1){--skeleton-item-width:85%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+2){--skeleton-item-width:67.5%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+3){--skeleton-item-width:80%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+4){--skeleton-item-width:60%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+5){--skeleton-item-width:75%}.prc-DataTable-TableCellSkeletonItem-bGhwZ [data-component=SkeletonText]{width:var(--skeleton-item-width)}.prc-DataTable-TableCellSkeletonItem-bGhwZ:not(:last-of-type){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableSortButton--aq0y{column-gap:.5rem}.prc-DataTable-TableBody-QKQy2,.prc-DataTable-TableGroupHeaderBody-K-YqR,.prc-DataTable-TableHead-4FaBf,.prc-DataTable-TableRow-Icc7F{display:contents}@supports (grid-template-columns:subgrid){.prc-DataTable-TableBody-QKQy2,.prc-DataTable-TableGroupHeaderBody-K-YqR,.prc-DataTable-TableHead-4FaBf,.prc-DataTable-TableRow-Icc7F{display:grid;grid-column:-1/1;grid-template-columns:subgrid}}.prc-DataTable-TableGroupHeaderCell-vnb30{background-color:var(--bgColor-muted,#f6f8fa);border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);border-inline-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);border-inline-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);color:var(--fgColor-muted,#59636e);grid-column:1/-1;padding:var(--table-cell-padding);text-align:start}.prc-DataTable-TableGroupHeaderCell-vnb30,.prc-DataTable-TableGroupHeaderContent-H9FbA{align-items:baseline;column-gap:var(--base-size-8,.5rem);display:flex}.prc-DataTable-TableGroupHeaderLabel--c-od{color:var(--fgColor-default,#1f2328);font-weight:var(--base-text-weight-semibold,600)}.prc-DataTable-PlaceholderText-8bHo7,.prc-DataTable-TableGroupHeaderCount-6r8Pj{color:var(--fgColor-muted,#59636e)}
|
|
2
|
+
/*# sourceMappingURL=Table-50e68700.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/DataTable/Table.module.css.js"],"names":[],"mappings":"AACA,oCAUE,mCAA8B,CAT9B,YAAa,CAEb,uHAMiB,CAPjB,6BASF,CAGA,gCAQE,iBAAkB,CANlB,8CAAuC,CACvC,gDAA6C,CAI7C,eAAgB,CAFhB,gBAIF,CAGA,mEANE,oCAA6B,CAL7B,QAkBF,CAPA,mCAEE,4CAAsC,CACtC,8CAA2C,CAG3C,kBAAmB,CAFnB,kDAGF,CAGA,kCAGE,kBAAmB,CADnB,mCAA8B,CAD9B,YAAa,CAGb,iBAAkB,CAClB,gBACF,CAGA,kCAIE,mDAA4C,CAC5C,iBAAkB,CAHlB,UAAW,CAKX,yCAAoC,CADpC,2CAAuC,CALvC,UAOF,CAGA,mOAGE,2CACF,CAOA,qEAJE,eAsCF,CAlCA,2BAEE,8BAA+B,CAC/B,wFAA2F,CAC3F,yBAA0B,CAW1B,4CAAwC,CADxC,wBAAyB,CAFzB,gBAAiB,CANjB,YAAa,CAGb,gCAAiC,CAQjC,kDAAmD,CANnD,mBAA0B,CAJ1B,UA2BF,CAdE,gEACE,4BAA6B,CAC7B,4BACF,CAEA,6DACE,2BAA4B,CAC5B,6BACF,CAEA,+DACE,4BAA6B,CAC7B,0BACF,CAIF,wFAEE,6FACF,CAEA,sFAEE,2FACF,CAEA,gEAME,kBAAmB,CACnB,0FAA0E,CAL1E,YAAa,CAEb,iCAAkC,CAClC,gBAGF,CAEA,0HAEE,YAAa,CAEb,wBAAyB,CADzB,cAEF,CAEA,2FACE,YAAa,CACb,0BACF,CAEA,4GACE,4FACF,CAIA,wHAEE,iDACF,CAGA,uHAEE,kDACF,CAGA,kNAEE,oDACF,CAGA,iNAEE,qDACF,CAMA,6KAEE,6CACF,CAEA,2KAEE,2CACF,CAGA,iCAGE,6CAAsC,CACtC,4FAA4E,CAF5E,kCAA2B,CAD3B,gDAIF,CAEA,6HAEE,oCACF,CAGA,mCACE,iBACF,CASA,yZAEE,kBACF,CAGA,+GACE,mEACF,CAGA,kDAIE,kBAAmB,CADnB,oCAA6B,CAF7B,YAAa,CACb,gDAGF,CAGA,uCACE,SACF,CAEA,4CACE,YAAa,CAEb,qBAAsB,CADtB,UAEF,CAEA,2CAEE,iCAqBF,CAnBE,6DACE,yBACF,CAEA,6DACE,2BACF,CAEA,6DACE,yBACF,CAEA,6DACE,yBACF,CAEA,6DACE,yBACF,CAGF,yEACE,gCACF,CAEA,8DACE,0FACF,CAEA,qCACE,gBACF,CAGA,sIAIE,gBACF,CAEA,0CACE,sIAIE,YAAa,CAEb,gBAAkB,CADlB,6BAEF,CACF,CAEA,0CASE,6CAAsC,CAGtC,0FAA0E,CAD1E,2FAA2E,CAD3E,6FAA6E,CAF7E,kCAA2B,CAN3B,gBAAmB,CAInB,iCAAkC,CAClC,gBAMF,CAEA,uFAZE,oBAAqB,CACrB,mCAA8B,CAH9B,YAkBF,CAEA,2CAEE,oCAA6B,CAD7B,gDAEF,CAMA,gFACE,kCACF","file":"Table-50e68700.css","sourcesContent":["/* Container ---------------------------------------------------------------- */\n.TableContainer {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n 'title actions'\n 'divider divider'\n 'subtitle subtitle'\n 'filter filter'\n 'table table'\n 'footer footer';\n column-gap: var(--base-size-8);\n}\n\n/* TableTitle */\n.TableTitle {\n margin: 0;\n font-size: var(--text-body-size-medium);\n font-weight: var(--base-text-weight-semibold);\n /* stylelint-disable-next-line primer/typography */\n line-height: 20px;\n color: var(--fgColor-default);\n grid-area: title;\n align-self: center;\n}\n\n/* TableSubtitle */\n.TableSubtitle {\n margin: 0;\n font-size: var(--text-body-size-small);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-title-lineHeight-small);\n color: var(--fgColor-default);\n grid-area: subtitle;\n}\n\n/* TableActions */\n.TableActions {\n display: flex;\n column-gap: var(--base-size-8);\n align-items: center;\n grid-area: actions;\n justify-self: end;\n}\n\n/* TableDivider */\n.TableDivider {\n width: 100%;\n height: 1px;\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--borderColor-default);\n grid-area: divider;\n margin-block-start: var(--base-size-16);\n margin-block-end: var(--base-size-8);\n}\n\n/* Spacing before the table */\n.TableTitle + .TableOverflowWrapper,\n.TableSubtitle + .TableOverflowWrapper,\n.TableActions + .TableOverflowWrapper {\n margin-block-start: var(--base-size-8);\n}\n\n.TableOverflowWrapper {\n grid-area: table;\n}\n\n/* Table -------------------------------------------------------------------- */\n.Table {\n /* Default table styles */\n --table-border-radius: 0.375rem;\n --table-cell-padding: var(--cell-padding-block, 0.5rem) var(--cell-padding-inline, 0.75rem);\n --table-font-size: 0.75rem;\n\n display: grid;\n width: 100%;\n /* stylelint-disable-next-line primer/typography */\n font-size: var(--table-font-size);\n /* stylelint-disable-next-line primer/typography */\n line-height: calc(20 / 12);\n border-spacing: 0;\n /* stylelint-disable-next-line primer/borders */\n border-collapse: separate;\n background-color: var(--bgColor-default);\n grid-area: table;\n grid-template-columns: var(--grid-template-columns);\n\n /* Density modes: condensed, normal, spacious */\n &:where([data-cell-padding='condensed']) {\n --cell-padding-block: 0.25rem;\n --cell-padding-inline: 0.5rem;\n }\n\n &:where([data-cell-padding='normal']) {\n --cell-padding-block: 0.5rem;\n --cell-padding-inline: 0.75rem;\n }\n\n &:where([data-cell-padding='spacious']) {\n --cell-padding-block: 0.75rem;\n --cell-padding-inline: 1rem;\n }\n}\n\n/* Borders */\n.TableCell:first-child,\n.TableHeader:first-child {\n border-inline-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableCell:last-child,\n.TableHeader:last-child {\n border-inline-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader,\n.TableCell {\n display: flex;\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--table-cell-padding);\n text-align: start;\n align-items: center;\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader:where([data-cell-align='end']),\n.TableCell:where([data-cell-align='end']) {\n display: flex;\n text-align: end;\n justify-content: flex-end;\n}\n\n.TableHeader[data-cell-align='end'] .TableSortButton {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.TableHead .TableRow:first-of-type .TableHeader {\n border-block-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n/* Border radius */\n/* stylelint-disable-next-line selector-max-specificity */\n.TableHead .TableRow:first-of-type .TableHeader:first-child {\n /* stylelint-disable-next-line primer/borders */\n border-top-left-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-specificity */\n.TableHead .TableRow:first-of-type .TableHeader:last-child {\n /* stylelint-disable-next-line primer/borders */\n border-top-right-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-compound-selectors,selector-max-specificity */\n.TableOverflowWrapper:last-child .Table .TableBody:last-of-type .TableRow:last-of-type .TableCell:first-child {\n /* stylelint-disable-next-line primer/borders */\n border-bottom-left-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-compound-selectors,selector-max-specificity */\n.TableOverflowWrapper:last-child .Table .TableBody:last-of-type .TableRow:last-of-type .TableCell:last-child {\n /* stylelint-disable-next-line primer/borders */\n border-bottom-right-radius: var(--table-border-radius);\n}\n\n/**\n * Offset padding to make sure type aligns regardless of cell padding\n * selection\n */\n.TableRow > *:first-child:not(.TableCellSkeleton),\n.TableRow > *:first-child .TableCellSkeletonItem {\n padding-inline-start: var(--base-size-16);\n}\n\n.TableRow > *:last-child:not(.TableCellSkeleton),\n.TableRow > *:last-child .TableCellSkeletonItem {\n padding-inline-end: var(--base-size-16);\n}\n\n/* TableHeader */\n.TableHeader {\n font-weight: var(--base-text-weight-semibold);\n color: var(--fgColor-muted);\n background-color: var(--bgColor-muted);\n border-block-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader:where([aria-sort='descending']),\n.TableHeader:where([aria-sort='ascending']) {\n color: var(--fgColor-default);\n}\n\n/* Control visibility of sort icons */\n.TableSortIcon {\n visibility: hidden;\n}\n\n/* The ASC icon is visible if the header is sortable and is hovered or focused */\n.TableHeader:hover .TableSortIcon--ascending,\n.TableHeader .TableSortButton:focus .TableSortIcon--ascending {\n visibility: visible;\n}\n\n/* Each sort icon is visible if the TableHeader is currently in the corresponding sort state */\n.TableHeader[aria-sort='ascending'] .TableSortIcon--ascending,\n.TableHeader[aria-sort='descending'] .TableSortIcon--descending {\n visibility: visible;\n}\n\n/* TableRow */\n.TableRow:hover .TableCell:not(.TableCellSkeleton) {\n background-color: var(--control-transparent-bgColor-hover);\n}\n\n/* TableCell */\n.TableCell:where([scope='row']) {\n display: flex;\n font-weight: var(--base-text-weight-semibold);\n color: var(--fgColor-default);\n align-items: center;\n}\n\n/* TableCellSkeleton */\n.TableCellSkeleton {\n padding: 0;\n}\n\n.TableCellSkeletonItems {\n display: flex;\n width: 100%;\n flex-direction: column;\n}\n\n.TableCellSkeletonItem {\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--table-cell-padding);\n\n &:nth-of-type(5n + 1) {\n --skeleton-item-width: 85%;\n }\n\n &:nth-of-type(5n + 2) {\n --skeleton-item-width: 67.5%;\n }\n\n &:nth-of-type(5n + 3) {\n --skeleton-item-width: 80%;\n }\n\n &:nth-of-type(5n + 4) {\n --skeleton-item-width: 60%;\n }\n\n &:nth-of-type(5n + 5) {\n --skeleton-item-width: 75%;\n }\n}\n\n.TableCellSkeletonItem [data-component='SkeletonText'] {\n width: var(--skeleton-item-width);\n}\n\n.TableCellSkeletonItem:not(:last-of-type) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableSortButton {\n column-gap: 0.5rem;\n}\n\n/* Grid layout */\n.TableHead,\n.TableBody,\n.TableGroupHeaderBody,\n.TableRow {\n display: contents;\n}\n\n@supports (grid-template-columns: subgrid) {\n .TableHead,\n .TableBody,\n .TableGroupHeaderBody,\n .TableRow {\n display: grid;\n grid-template-columns: subgrid;\n grid-column: -1 /1;\n }\n}\n\n.TableGroupHeaderCell {\n display: flex;\n grid-column: 1 / -1;\n align-items: baseline;\n column-gap: var(--base-size-8);\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--table-cell-padding);\n text-align: start;\n color: var(--fgColor-muted);\n background-color: var(--bgColor-muted);\n border-inline-start: var(--borderWidth-thin) solid var(--borderColor-default);\n border-inline-end: var(--borderWidth-thin) solid var(--borderColor-default);\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableGroupHeaderContent {\n display: flex;\n align-items: baseline;\n column-gap: var(--base-size-8);\n}\n\n.TableGroupHeaderLabel {\n font-weight: var(--base-text-weight-semibold);\n color: var(--fgColor-default);\n}\n\n.TableGroupHeaderCount {\n color: var(--fgColor-muted);\n}\n\n.PlaceholderText {\n color: var(--fgColor-muted);\n}\n"]}
|
package/dist/DataTable/Table.js
CHANGED
|
@@ -5,15 +5,16 @@ import { SkeletonText } from "../SkeletonText/SkeletonText.js";
|
|
|
5
5
|
import { SortDirection } from "./sorting.js";
|
|
6
6
|
import { useTableLayout } from "./useTable.js";
|
|
7
7
|
import { Button } from "../internal/components/ButtonReset.js";
|
|
8
|
+
import { TableGroupContext } from "./TableGroupContext.js";
|
|
8
9
|
import Table_module_css_default from "./Table.module.css.js";
|
|
9
10
|
import { c } from "react-compiler-runtime";
|
|
10
|
-
import React from "react";
|
|
11
|
+
import React, { useContext } from "react";
|
|
11
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
13
|
import { clsx } from "clsx";
|
|
13
14
|
import { SortAscIcon, SortDescIcon } from "@primer/octicons-react";
|
|
14
15
|
//#region src/DataTable/Table.tsx
|
|
15
16
|
const Table = /*#__PURE__*/ React.forwardRef(function Table(t0, ref) {
|
|
16
|
-
const $ = c(
|
|
17
|
+
const $ = c(24);
|
|
17
18
|
let className;
|
|
18
19
|
let gridTemplateColumns;
|
|
19
20
|
let labelledby;
|
|
@@ -35,6 +36,7 @@ const Table = /*#__PURE__*/ React.forwardRef(function Table(t0, ref) {
|
|
|
35
36
|
t1 = $[5];
|
|
36
37
|
}
|
|
37
38
|
const cellPadding = t1 === void 0 ? "normal" : t1;
|
|
39
|
+
const inheritedGroup = useContext(TableGroupContext);
|
|
38
40
|
let t2;
|
|
39
41
|
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
40
42
|
t2 = clsx("TableOverflowWrapper", Table_module_css_default.TableOverflowWrapper);
|
|
@@ -84,7 +86,18 @@ const Table = /*#__PURE__*/ React.forwardRef(function Table(t0, ref) {
|
|
|
84
86
|
$[19] = t6;
|
|
85
87
|
$[20] = t7;
|
|
86
88
|
} else t7 = $[20];
|
|
87
|
-
|
|
89
|
+
const table = t7;
|
|
90
|
+
let t8;
|
|
91
|
+
if ($[21] !== inheritedGroup || $[22] !== table) {
|
|
92
|
+
t8 = inheritedGroup ? /*#__PURE__*/ jsx(TableGroupContext.Provider, {
|
|
93
|
+
value: void 0,
|
|
94
|
+
children: table
|
|
95
|
+
}) : table;
|
|
96
|
+
$[21] = inheritedGroup;
|
|
97
|
+
$[22] = table;
|
|
98
|
+
$[23] = t8;
|
|
99
|
+
} else t8 = $[23];
|
|
100
|
+
return t8;
|
|
88
101
|
});
|
|
89
102
|
function TableHead(t0) {
|
|
90
103
|
const $ = c(3);
|
|
@@ -168,7 +181,7 @@ function TableHeader(t0) {
|
|
|
168
181
|
return t2;
|
|
169
182
|
}
|
|
170
183
|
function TableSortHeader(t0) {
|
|
171
|
-
const $ = c(
|
|
184
|
+
const $ = c(24);
|
|
172
185
|
let align;
|
|
173
186
|
let children;
|
|
174
187
|
let direction;
|
|
@@ -190,6 +203,7 @@ function TableSortHeader(t0) {
|
|
|
190
203
|
rest = $[5];
|
|
191
204
|
}
|
|
192
205
|
const ariaSort = direction === "DESC" ? "descending" : direction === "ASC" ? "ascending" : void 0;
|
|
206
|
+
const sortAction = direction === SortDirection.ASC ? "Sort descending" : "Sort ascending";
|
|
193
207
|
let t1;
|
|
194
208
|
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
195
209
|
t1 = clsx("TableSortButton", Table_module_css_default.TableSortButton);
|
|
@@ -205,7 +219,7 @@ function TableSortHeader(t0) {
|
|
|
205
219
|
} else t2 = $[8];
|
|
206
220
|
let t3;
|
|
207
221
|
if ($[9] !== direction) {
|
|
208
|
-
t3 = direction === SortDirection.NONE || direction === SortDirection.ASC ? /*#__PURE__*/
|
|
222
|
+
t3 = direction === SortDirection.NONE || direction === SortDirection.ASC ? /*#__PURE__*/ jsx(Fragment$1, { children: /*#__PURE__*/ jsx(SortAscIcon, { className: clsx("TableSortIcon", "TableSortIcon--ascending", Table_module_css_default.TableSortIcon, Table_module_css_default["TableSortIcon--ascending"]) }) }) : null;
|
|
209
223
|
$[9] = direction;
|
|
210
224
|
$[10] = t3;
|
|
211
225
|
} else t3 = $[10];
|
|
@@ -216,11 +230,12 @@ function TableSortHeader(t0) {
|
|
|
216
230
|
$[12] = t4;
|
|
217
231
|
} else t4 = $[12];
|
|
218
232
|
let t5;
|
|
219
|
-
if ($[13] !== children || $[14] !==
|
|
233
|
+
if ($[13] !== children || $[14] !== sortAction || $[15] !== t2 || $[16] !== t3 || $[17] !== t4) {
|
|
220
234
|
t5 = /*#__PURE__*/ jsxs(Button, {
|
|
221
235
|
type: "button",
|
|
222
236
|
className: t1,
|
|
223
237
|
"data-component": "Table.SortHeader.Button",
|
|
238
|
+
"aria-description": sortAction,
|
|
224
239
|
onClick: t2,
|
|
225
240
|
children: [
|
|
226
241
|
children,
|
|
@@ -229,13 +244,14 @@ function TableSortHeader(t0) {
|
|
|
229
244
|
]
|
|
230
245
|
});
|
|
231
246
|
$[13] = children;
|
|
232
|
-
$[14] =
|
|
233
|
-
$[15] =
|
|
234
|
-
$[16] =
|
|
235
|
-
$[17] =
|
|
236
|
-
|
|
247
|
+
$[14] = sortAction;
|
|
248
|
+
$[15] = t2;
|
|
249
|
+
$[16] = t3;
|
|
250
|
+
$[17] = t4;
|
|
251
|
+
$[18] = t5;
|
|
252
|
+
} else t5 = $[18];
|
|
237
253
|
let t6;
|
|
238
|
-
if ($[
|
|
254
|
+
if ($[19] !== align || $[20] !== ariaSort || $[21] !== rest || $[22] !== t5) {
|
|
239
255
|
t6 = /*#__PURE__*/ jsx(TableHeader, {
|
|
240
256
|
...rest,
|
|
241
257
|
"aria-sort": ariaSort,
|
|
@@ -243,12 +259,12 @@ function TableSortHeader(t0) {
|
|
|
243
259
|
"data-component": "Table.SortHeader",
|
|
244
260
|
children: t5
|
|
245
261
|
});
|
|
246
|
-
$[
|
|
247
|
-
$[
|
|
248
|
-
$[
|
|
249
|
-
$[
|
|
250
|
-
$[
|
|
251
|
-
} else t6 = $[
|
|
262
|
+
$[19] = align;
|
|
263
|
+
$[20] = ariaSort;
|
|
264
|
+
$[21] = rest;
|
|
265
|
+
$[22] = t5;
|
|
266
|
+
$[23] = t6;
|
|
267
|
+
} else t6 = $[23];
|
|
252
268
|
return t6;
|
|
253
269
|
}
|
|
254
270
|
function TableRow(t0) {
|
|
@@ -285,56 +301,70 @@ function TableRow(t0) {
|
|
|
285
301
|
return t2;
|
|
286
302
|
}
|
|
287
303
|
function TableCell(t0) {
|
|
288
|
-
const $ = c(
|
|
304
|
+
const $ = c(21);
|
|
289
305
|
let align;
|
|
290
306
|
let children;
|
|
291
307
|
let className;
|
|
308
|
+
let headers;
|
|
292
309
|
let rest;
|
|
293
310
|
let scope;
|
|
294
311
|
if ($[0] !== t0) {
|
|
295
|
-
({align, className, children, scope, ...rest} = t0);
|
|
312
|
+
({align, className, children, scope, headers, ...rest} = t0);
|
|
296
313
|
$[0] = t0;
|
|
297
314
|
$[1] = align;
|
|
298
315
|
$[2] = children;
|
|
299
316
|
$[3] = className;
|
|
300
|
-
$[4] =
|
|
301
|
-
$[5] =
|
|
317
|
+
$[4] = headers;
|
|
318
|
+
$[5] = rest;
|
|
319
|
+
$[6] = scope;
|
|
302
320
|
} else {
|
|
303
321
|
align = $[1];
|
|
304
322
|
children = $[2];
|
|
305
323
|
className = $[3];
|
|
306
|
-
|
|
307
|
-
|
|
324
|
+
headers = $[4];
|
|
325
|
+
rest = $[5];
|
|
326
|
+
scope = $[6];
|
|
308
327
|
}
|
|
309
328
|
const BaseComponent = scope ? "th" : "td";
|
|
310
329
|
const role = scope ? "rowheader" : "cell";
|
|
330
|
+
const group = useContext(TableGroupContext);
|
|
311
331
|
let t1;
|
|
312
|
-
if ($[
|
|
313
|
-
t1 =
|
|
314
|
-
$[
|
|
315
|
-
$[
|
|
316
|
-
|
|
332
|
+
if ($[7] !== (group === null || group === void 0 ? void 0 : group.headerId) || $[8] !== headers) {
|
|
333
|
+
t1 = [group === null || group === void 0 ? void 0 : group.headerId, headers].filter(Boolean).join(" ") || void 0;
|
|
334
|
+
$[7] = group === null || group === void 0 ? void 0 : group.headerId;
|
|
335
|
+
$[8] = headers;
|
|
336
|
+
$[9] = t1;
|
|
337
|
+
} else t1 = $[9];
|
|
338
|
+
const resolvedHeaders = t1;
|
|
317
339
|
let t2;
|
|
318
|
-
if ($[
|
|
319
|
-
t2 =
|
|
340
|
+
if ($[10] !== className) {
|
|
341
|
+
t2 = clsx("TableCell", className, Table_module_css_default.TableCell);
|
|
342
|
+
$[10] = className;
|
|
343
|
+
$[11] = t2;
|
|
344
|
+
} else t2 = $[11];
|
|
345
|
+
let t3;
|
|
346
|
+
if ($[12] !== BaseComponent || $[13] !== align || $[14] !== children || $[15] !== resolvedHeaders || $[16] !== rest || $[17] !== role || $[18] !== scope || $[19] !== t2) {
|
|
347
|
+
t3 = /*#__PURE__*/ jsx(BaseComponent, {
|
|
320
348
|
...rest,
|
|
321
|
-
className:
|
|
349
|
+
className: t2,
|
|
322
350
|
scope,
|
|
323
351
|
role,
|
|
324
352
|
"data-cell-align": align,
|
|
325
353
|
"data-component": "Table.Cell",
|
|
354
|
+
headers: resolvedHeaders,
|
|
326
355
|
children
|
|
327
356
|
});
|
|
328
|
-
$[
|
|
329
|
-
$[
|
|
330
|
-
$[
|
|
331
|
-
$[
|
|
332
|
-
$[
|
|
333
|
-
$[
|
|
334
|
-
$[
|
|
335
|
-
$[
|
|
336
|
-
|
|
337
|
-
|
|
357
|
+
$[12] = BaseComponent;
|
|
358
|
+
$[13] = align;
|
|
359
|
+
$[14] = children;
|
|
360
|
+
$[15] = resolvedHeaders;
|
|
361
|
+
$[16] = rest;
|
|
362
|
+
$[17] = role;
|
|
363
|
+
$[18] = scope;
|
|
364
|
+
$[19] = t2;
|
|
365
|
+
$[20] = t3;
|
|
366
|
+
} else t3 = $[20];
|
|
367
|
+
return t3;
|
|
338
368
|
}
|
|
339
369
|
function TableCellPlaceholder(t0) {
|
|
340
370
|
const $ = c(2);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./Table-
|
|
1
|
+
import "./Table-50e68700.css";
|
|
2
2
|
//#region src/DataTable/Table.module.css.js
|
|
3
3
|
var Table_module_css_default = {
|
|
4
4
|
"TableContainer": "prc-DataTable-TableContainer-hn0p3",
|
|
@@ -20,7 +20,12 @@ var Table_module_css_default = {
|
|
|
20
20
|
"TableSortIcon--ascending": "prc-DataTable-TableSortIcon--ascending-Lpx6z",
|
|
21
21
|
"TableSortIcon--descending": "prc-DataTable-TableSortIcon--descending-hHJGo",
|
|
22
22
|
"TableCellSkeletonItems": "prc-DataTable-TableCellSkeletonItems-Ljhq5",
|
|
23
|
-
"
|
|
23
|
+
"TableGroupHeaderBody": "prc-DataTable-TableGroupHeaderBody-K-YqR",
|
|
24
|
+
"TableGroupHeaderCell": "prc-DataTable-TableGroupHeaderCell-vnb30",
|
|
25
|
+
"TableGroupHeaderContent": "prc-DataTable-TableGroupHeaderContent-H9FbA",
|
|
26
|
+
"TableGroupHeaderLabel": "prc-DataTable-TableGroupHeaderLabel--c-od",
|
|
27
|
+
"PlaceholderText": "prc-DataTable-PlaceholderText-8bHo7",
|
|
28
|
+
"TableGroupHeaderCount": "prc-DataTable-TableGroupHeaderCount-6r8Pj"
|
|
24
29
|
};
|
|
25
30
|
//#endregion
|
|
26
31
|
export { Table_module_css_default as default };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/DataTable/TableGroup.d.ts
|
|
4
|
+
type TableGroupProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Provide a custom class name for the group header section
|
|
7
|
+
*/
|
|
8
|
+
className?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Provide a stable identifier exposed on both group sections as `data-group-id`
|
|
11
|
+
*/
|
|
12
|
+
id: string | number;
|
|
13
|
+
/**
|
|
14
|
+
* Provide a label for the group header
|
|
15
|
+
*/
|
|
16
|
+
label: string;
|
|
17
|
+
/**
|
|
18
|
+
* Specify the number of member rows in the group
|
|
19
|
+
*/
|
|
20
|
+
rowCount: number;
|
|
21
|
+
/**
|
|
22
|
+
* Provide an accessible name for the group header
|
|
23
|
+
*/
|
|
24
|
+
'aria-label'?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Specify the number of columns spanned by the group header
|
|
27
|
+
*/
|
|
28
|
+
colSpan: number;
|
|
29
|
+
children?: React.ReactNode;
|
|
30
|
+
};
|
|
31
|
+
declare function TableGroup({
|
|
32
|
+
className,
|
|
33
|
+
id,
|
|
34
|
+
label,
|
|
35
|
+
rowCount,
|
|
36
|
+
colSpan,
|
|
37
|
+
children,
|
|
38
|
+
'aria-label': ariaLabel
|
|
39
|
+
}: TableGroupProps): React.JSX.Element;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { TableGroup, TableGroupProps };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
|
|
2
|
+
import { TableGroupContext } from "./TableGroupContext.js";
|
|
3
|
+
import Table_module_css_default from "./Table.module.css.js";
|
|
4
|
+
import { TableRow } from "./Table.js";
|
|
5
|
+
import { c } from "react-compiler-runtime";
|
|
6
|
+
import { useId } from "react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
//#region src/DataTable/TableGroup.tsx
|
|
10
|
+
function TableGroup(t0) {
|
|
11
|
+
const $ = c(37);
|
|
12
|
+
const { className, id, label, rowCount, colSpan, children, "aria-label": ariaLabel } = t0;
|
|
13
|
+
const headerId = useId();
|
|
14
|
+
const accessibleName = `${label}, ${rowCount} ${rowCount === 1 ? "row" : "rows"}`;
|
|
15
|
+
let t1;
|
|
16
|
+
if ($[0] !== headerId) {
|
|
17
|
+
t1 = { headerId };
|
|
18
|
+
$[0] = headerId;
|
|
19
|
+
$[1] = t1;
|
|
20
|
+
} else t1 = $[1];
|
|
21
|
+
const contextValue = t1;
|
|
22
|
+
let t2;
|
|
23
|
+
if ($[2] !== className) {
|
|
24
|
+
t2 = clsx("TableGroupHeaderBody", Table_module_css_default.TableGroupHeaderBody, className);
|
|
25
|
+
$[2] = className;
|
|
26
|
+
$[3] = t2;
|
|
27
|
+
} else t2 = $[3];
|
|
28
|
+
let t3;
|
|
29
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
30
|
+
t3 = clsx("TableGroupHeaderCell", Table_module_css_default.TableGroupHeaderCell);
|
|
31
|
+
$[4] = t3;
|
|
32
|
+
} else t3 = $[4];
|
|
33
|
+
let t4;
|
|
34
|
+
if ($[5] !== accessibleName) {
|
|
35
|
+
t4 = /*#__PURE__*/ jsx(VisuallyHidden, { children: accessibleName });
|
|
36
|
+
$[5] = accessibleName;
|
|
37
|
+
$[6] = t4;
|
|
38
|
+
} else t4 = $[6];
|
|
39
|
+
let t5;
|
|
40
|
+
let t6;
|
|
41
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
42
|
+
t5 = clsx("TableGroupHeaderContent", Table_module_css_default.TableGroupHeaderContent);
|
|
43
|
+
t6 = clsx("TableGroupHeaderLabel", Table_module_css_default.TableGroupHeaderLabel);
|
|
44
|
+
$[7] = t5;
|
|
45
|
+
$[8] = t6;
|
|
46
|
+
} else {
|
|
47
|
+
t5 = $[7];
|
|
48
|
+
t6 = $[8];
|
|
49
|
+
}
|
|
50
|
+
let t7;
|
|
51
|
+
if ($[9] !== label) {
|
|
52
|
+
t7 = /*#__PURE__*/ jsx("span", {
|
|
53
|
+
className: t6,
|
|
54
|
+
children: label
|
|
55
|
+
});
|
|
56
|
+
$[9] = label;
|
|
57
|
+
$[10] = t7;
|
|
58
|
+
} else t7 = $[10];
|
|
59
|
+
let t8;
|
|
60
|
+
if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
61
|
+
t8 = clsx("TableGroupHeaderCount", Table_module_css_default.TableGroupHeaderCount);
|
|
62
|
+
$[11] = t8;
|
|
63
|
+
} else t8 = $[11];
|
|
64
|
+
let t9;
|
|
65
|
+
if ($[12] !== rowCount) {
|
|
66
|
+
t9 = /*#__PURE__*/ jsx("span", {
|
|
67
|
+
className: t8,
|
|
68
|
+
children: rowCount
|
|
69
|
+
});
|
|
70
|
+
$[12] = rowCount;
|
|
71
|
+
$[13] = t9;
|
|
72
|
+
} else t9 = $[13];
|
|
73
|
+
let t10;
|
|
74
|
+
if ($[14] !== t7 || $[15] !== t9) {
|
|
75
|
+
t10 = /*#__PURE__*/ jsxs("span", {
|
|
76
|
+
"aria-hidden": "true",
|
|
77
|
+
className: t5,
|
|
78
|
+
children: [t7, t9]
|
|
79
|
+
});
|
|
80
|
+
$[14] = t7;
|
|
81
|
+
$[15] = t9;
|
|
82
|
+
$[16] = t10;
|
|
83
|
+
} else t10 = $[16];
|
|
84
|
+
let t11;
|
|
85
|
+
if ($[17] !== ariaLabel || $[18] !== colSpan || $[19] !== headerId || $[20] !== t10 || $[21] !== t4) {
|
|
86
|
+
t11 = /*#__PURE__*/ jsx(TableRow, { children: /*#__PURE__*/ jsxs("th", {
|
|
87
|
+
id: headerId,
|
|
88
|
+
className: t3,
|
|
89
|
+
scope: "colgroup",
|
|
90
|
+
colSpan,
|
|
91
|
+
role: "columnheader",
|
|
92
|
+
"aria-label": ariaLabel,
|
|
93
|
+
"data-component": "Table.Group.Header",
|
|
94
|
+
children: [t4, t10]
|
|
95
|
+
}) });
|
|
96
|
+
$[17] = ariaLabel;
|
|
97
|
+
$[18] = colSpan;
|
|
98
|
+
$[19] = headerId;
|
|
99
|
+
$[20] = t10;
|
|
100
|
+
$[21] = t4;
|
|
101
|
+
$[22] = t11;
|
|
102
|
+
} else t11 = $[22];
|
|
103
|
+
let t12;
|
|
104
|
+
if ($[23] !== id || $[24] !== t11 || $[25] !== t2) {
|
|
105
|
+
t12 = /*#__PURE__*/ jsx("tbody", {
|
|
106
|
+
className: t2,
|
|
107
|
+
role: "rowgroup",
|
|
108
|
+
"data-component": "Table.Group",
|
|
109
|
+
"data-group-id": id,
|
|
110
|
+
children: t11
|
|
111
|
+
});
|
|
112
|
+
$[23] = id;
|
|
113
|
+
$[24] = t11;
|
|
114
|
+
$[25] = t2;
|
|
115
|
+
$[26] = t12;
|
|
116
|
+
} else t12 = $[26];
|
|
117
|
+
let t13;
|
|
118
|
+
if ($[27] === Symbol.for("react.memo_cache_sentinel")) {
|
|
119
|
+
t13 = clsx("TableBody", Table_module_css_default.TableBody);
|
|
120
|
+
$[27] = t13;
|
|
121
|
+
} else t13 = $[27];
|
|
122
|
+
let t14;
|
|
123
|
+
if ($[28] !== children || $[29] !== contextValue) {
|
|
124
|
+
t14 = /*#__PURE__*/ jsx(TableGroupContext.Provider, {
|
|
125
|
+
value: contextValue,
|
|
126
|
+
children
|
|
127
|
+
});
|
|
128
|
+
$[28] = children;
|
|
129
|
+
$[29] = contextValue;
|
|
130
|
+
$[30] = t14;
|
|
131
|
+
} else t14 = $[30];
|
|
132
|
+
let t15;
|
|
133
|
+
if ($[31] !== id || $[32] !== t14) {
|
|
134
|
+
t15 = /*#__PURE__*/ jsx("tbody", {
|
|
135
|
+
className: t13,
|
|
136
|
+
role: "rowgroup",
|
|
137
|
+
"data-component": "Table.Group.Body",
|
|
138
|
+
"data-group-id": id,
|
|
139
|
+
children: t14
|
|
140
|
+
});
|
|
141
|
+
$[31] = id;
|
|
142
|
+
$[32] = t14;
|
|
143
|
+
$[33] = t15;
|
|
144
|
+
} else t15 = $[33];
|
|
145
|
+
let t16;
|
|
146
|
+
if ($[34] !== t12 || $[35] !== t15) {
|
|
147
|
+
t16 = /*#__PURE__*/ jsxs(Fragment$1, { children: [t12, t15] });
|
|
148
|
+
$[34] = t12;
|
|
149
|
+
$[35] = t15;
|
|
150
|
+
$[36] = t16;
|
|
151
|
+
} else t16 = $[36];
|
|
152
|
+
return t16;
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
export { TableGroup };
|
|
@@ -5,6 +5,7 @@ import { CellAlignment, Column, ColumnWidth, createColumnHelper } from "./column
|
|
|
5
5
|
import { DataTable, DataTableProps } from "./DataTable.js";
|
|
6
6
|
import { ErrorDialog } from "./ErrorDialog.js";
|
|
7
7
|
import { Table as Table$1, TableActions, TableActionsProps, TableBody, TableBodyProps, TableCell, TableCellPlaceholder, TableCellProps, TableContainer, TableContainerProps, TableDivider, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, TableSkeleton, TableSkeletonProps, TableSubtitle, TableSubtitleProps, TableTitle, TableTitleProps } from "./Table.js";
|
|
8
|
+
import { TableGroup, TableGroupProps } from "./TableGroup.js";
|
|
8
9
|
import { Pagination } from "./Pagination.js";
|
|
9
10
|
|
|
10
11
|
//#region src/DataTable/index.d.ts
|
|
@@ -17,6 +18,7 @@ declare const Table: typeof Table$1 & SlotMarker & {
|
|
|
17
18
|
Skeleton: typeof TableSkeleton;
|
|
18
19
|
Head: typeof TableHead;
|
|
19
20
|
Body: typeof TableBody;
|
|
21
|
+
Group: typeof TableGroup;
|
|
20
22
|
Header: typeof TableHeader;
|
|
21
23
|
Row: typeof TableRow;
|
|
22
24
|
Cell: typeof TableCell;
|
|
@@ -25,4 +27,4 @@ declare const Table: typeof Table$1 & SlotMarker & {
|
|
|
25
27
|
ErrorDialog: typeof ErrorDialog;
|
|
26
28
|
};
|
|
27
29
|
//#endregion
|
|
28
|
-
export { type CellAlignment, type Column, type ColumnWidth, DataTable, type DataTableProps, type ObjectPaths, Table, type TableActionsProps, type TableBodyProps, type TableCellProps, type TableContainerProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableSubtitleProps, type TableTitleProps, type UniqueRow, createColumnHelper };
|
|
30
|
+
export { type CellAlignment, type Column, type ColumnWidth, DataTable, type DataTableProps, type ObjectPaths, Table, type TableActionsProps, type TableBodyProps, type TableCellProps, type TableContainerProps, type TableGroupProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableSubtitleProps, type TableTitleProps, type UniqueRow, createColumnHelper };
|
package/dist/DataTable/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Table as Table$1, TableActions, TableBody, TableCell, TableCellPlaceholder, TableContainer, TableDivider, TableHead, TableHeader, TableRow, TableSkeleton, TableSubtitle, TableTitle } from "./Table.js";
|
|
2
2
|
import { DataTable } from "./DataTable.js";
|
|
3
3
|
import { ErrorDialog } from "./ErrorDialog.js";
|
|
4
|
+
import { TableGroup } from "./TableGroup.js";
|
|
4
5
|
import { Pagination } from "./Pagination.js";
|
|
5
6
|
import { createColumnHelper } from "./column.js";
|
|
6
7
|
//#region src/DataTable/index.ts
|
|
@@ -13,6 +14,7 @@ const Table = Object.assign(Table$1, {
|
|
|
13
14
|
Skeleton: TableSkeleton,
|
|
14
15
|
Head: TableHead,
|
|
15
16
|
Body: TableBody,
|
|
17
|
+
Group: TableGroup,
|
|
16
18
|
Header: TableHeader,
|
|
17
19
|
Row: TableRow,
|
|
18
20
|
Cell: TableCell,
|
|
@@ -29,6 +29,7 @@ import { CardActionProps as ActionProps, CardDescriptionProps as DescriptionProp
|
|
|
29
29
|
import { Card } from "../Card/index.js";
|
|
30
30
|
import { DataTable, DataTableProps } from "../DataTable/DataTable.js";
|
|
31
31
|
import { TableActionsProps, TableBodyProps, TableCellProps, TableContainerProps, TableHeadProps, TableHeaderProps, TableProps, TableRowProps, TableSubtitleProps, TableTitleProps } from "../DataTable/Table.js";
|
|
32
|
+
import { TableGroupProps } from "../DataTable/TableGroup.js";
|
|
32
33
|
import { Table } from "../DataTable/index.js";
|
|
33
34
|
import { InlineMessage, InlineMessageProps } from "../InlineMessage/InlineMessage.js";
|
|
34
35
|
import { Hidden, HiddenProps } from "../Hidden/Hidden.js";
|
|
@@ -50,4 +51,4 @@ import { useTabPanel } from "./Tabs/useTabPanel.js";
|
|
|
50
51
|
import { TopicTagProps } from "../TopicTag/TopicTag.js";
|
|
51
52
|
import { TopicTagGroupProps } from "../TopicTag/TopicTagGroup.js";
|
|
52
53
|
import { TopicTag } from "../TopicTag/index.js";
|
|
53
|
-
export { ActionBar, type ActionBarButtonProps, type ActionBarMenuItemProps, type ActionBarMenuProps, type ActionBarProps, Announce, type AnnounceProps, AriaAlert, type AriaAlertProps, AriaStatus, type AriaStatusProps, BlankslateContainer as Blankslate, type BlankslateProps, ButtonBase, type ButtonBaseProps, Card, type ActionProps as CardActionProps, type DescriptionProps as CardDescriptionProps, type HeadingProps as CardHeadingProps, type IconProps as CardIconProps, type ImageProps as CardImageProps, type MetadataProps as CardMetadataProps, type CardProps, type CellAlignment, type Column, type ColumnWidth, DataTable, type DataTableProps, DefaultFeatureFlags, Dialog, type DialogButtonProps, type DialogHeaderProps, type DialogHeight, type DialogProps, type DialogWidth, FeatureFlags, type FeatureFlagsProps, FilteredActionList, type FilteredActionListInputProps, FilteredActionListLoadingTypes, type FilteredActionListProps, Hidden, type HiddenProps, InlineMessage, type InlineMessageProps, IssueLabel, type IssueLabelProps, KeybindingHint, type KeybindingHintProps, NavList, type NavListDividerProps, type NavListGroupProps, type NavListItemProps, type NavListLeadingVisualProps, type NavListProps, type NavListSubNavProps, type NavListTrailingVisualProps, type ObjectPaths, PageHeader, type ActionsProps as PageHeaderActionsProps, type PageHeaderProps, type TitleProps as PageHeaderTitleProps, ScrollableRegion, type ScrollableRegionProps, SelectPanel, type SelectPanelMessageProps, type SelectPanelProps, type SelectPanelSecondaryActionProps, SkeletonAvatar, type SkeletonAvatarProps, SkeletonBox, type SkeletonBoxProps, SkeletonText, type SkeletonTextProps, SlotConfig, Stack, type StackItemProps, type StackProps, type TabListProps, type TabPanelProps, type TabProps, Table, type TableActionsProps, type TableBodyProps, type TableCellProps, type TableContainerProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableSubtitleProps, type TableTitleProps, Tabs, type TabsProps, type TitleProps, Tooltip, type TooltipProps, TopicTag, type TopicTagGroupProps, type TopicTagProps, _default as UnderlinePanels, type PanelProps as UnderlinePanelsPanelProps, type UnderlinePanelsProps, type TabProps$1 as UnderlinePanelsTabProps, type UniqueRow, createColumnHelper, getAccessibleKeybindingHintString, useFeatureFlag, useOverflow, useSlots, useTab, useTabList, useTabPanel };
|
|
54
|
+
export { ActionBar, type ActionBarButtonProps, type ActionBarMenuItemProps, type ActionBarMenuProps, type ActionBarProps, Announce, type AnnounceProps, AriaAlert, type AriaAlertProps, AriaStatus, type AriaStatusProps, BlankslateContainer as Blankslate, type BlankslateProps, ButtonBase, type ButtonBaseProps, Card, type ActionProps as CardActionProps, type DescriptionProps as CardDescriptionProps, type HeadingProps as CardHeadingProps, type IconProps as CardIconProps, type ImageProps as CardImageProps, type MetadataProps as CardMetadataProps, type CardProps, type CellAlignment, type Column, type ColumnWidth, DataTable, type DataTableProps, DefaultFeatureFlags, Dialog, type DialogButtonProps, type DialogHeaderProps, type DialogHeight, type DialogProps, type DialogWidth, FeatureFlags, type FeatureFlagsProps, FilteredActionList, type FilteredActionListInputProps, FilteredActionListLoadingTypes, type FilteredActionListProps, Hidden, type HiddenProps, InlineMessage, type InlineMessageProps, IssueLabel, type IssueLabelProps, KeybindingHint, type KeybindingHintProps, NavList, type NavListDividerProps, type NavListGroupProps, type NavListItemProps, type NavListLeadingVisualProps, type NavListProps, type NavListSubNavProps, type NavListTrailingVisualProps, type ObjectPaths, PageHeader, type ActionsProps as PageHeaderActionsProps, type PageHeaderProps, type TitleProps as PageHeaderTitleProps, ScrollableRegion, type ScrollableRegionProps, SelectPanel, type SelectPanelMessageProps, type SelectPanelProps, type SelectPanelSecondaryActionProps, SkeletonAvatar, type SkeletonAvatarProps, SkeletonBox, type SkeletonBoxProps, SkeletonText, type SkeletonTextProps, SlotConfig, Stack, type StackItemProps, type StackProps, type TabListProps, type TabPanelProps, type TabProps, Table, type TableActionsProps, type TableBodyProps, type TableCellProps, type TableContainerProps, type TableGroupProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableSubtitleProps, type TableTitleProps, Tabs, type TabsProps, type TitleProps, Tooltip, type TooltipProps, TopicTag, type TopicTagGroupProps, type TopicTagProps, _default as UnderlinePanels, type PanelProps as UnderlinePanelsPanelProps, type UnderlinePanelsProps, type TabProps$1 as UnderlinePanelsTabProps, type UniqueRow, createColumnHelper, getAccessibleKeybindingHintString, useFeatureFlag, useOverflow, useSlots, useTab, useTabList, useTabPanel };
|
|
@@ -10,10 +10,7 @@ function useOverflow(ref) {
|
|
|
10
10
|
t0 = () => {
|
|
11
11
|
if (ref.current === null) return;
|
|
12
12
|
const observer = new ResizeObserver((entries) => {
|
|
13
|
-
|
|
14
|
-
setHasOverflow(true);
|
|
15
|
-
break;
|
|
16
|
-
}
|
|
13
|
+
setHasOverflow(entries.some(_temp));
|
|
17
14
|
});
|
|
18
15
|
observer.observe(ref.current);
|
|
19
16
|
return () => {
|
|
@@ -31,5 +28,8 @@ function useOverflow(ref) {
|
|
|
31
28
|
useEffect(t0, t1);
|
|
32
29
|
return hasOverflow;
|
|
33
30
|
}
|
|
31
|
+
function _temp(entry) {
|
|
32
|
+
return entry.target.scrollHeight > entry.target.clientHeight || entry.target.scrollWidth > entry.target.clientWidth;
|
|
33
|
+
}
|
|
34
34
|
//#endregion
|
|
35
35
|
export { useOverflow };
|
|
@@ -2736,6 +2736,10 @@
|
|
|
2736
2736
|
{
|
|
2737
2737
|
"id": "experimental-components-datatable-features--with-pagination",
|
|
2738
2738
|
"code": "() => {\n const pageSize = 10\n const [pageIndex, setPageIndex] = React.useState(0)\n const start = pageIndex * pageSize\n const end = start + pageSize\n const rows = repos.slice(start, end)\n return (\n <Table.Container>\n <Table.Title as=\"h2\" id=\"repositories\">\n Repositories\n </Table.Title>\n <Table.Subtitle as=\"p\" id=\"repositories-subtitle\">\n A subtitle could appear here to give extra context to the data.\n </Table.Subtitle>\n <DataTable\n aria-labelledby=\"repositories\"\n aria-describedby=\"repositories-subtitle\"\n data={rows}\n columns={[\n {\n header: 'Repository',\n field: 'name',\n rowHeader: true,\n },\n {\n header: 'Type',\n field: 'type',\n renderCell: (row) => {\n return <Label>{uppercase(row.type)}</Label>\n },\n },\n {\n header: 'Updated',\n field: 'updatedAt',\n renderCell: (row) => {\n return <RelativeTime date={new Date(row.updatedAt)} />\n },\n },\n {\n header: 'Dependabot',\n field: 'securityFeatures.dependabot',\n renderCell: (row) => {\n return row.securityFeatures.dependabot.length > 0 ? (\n <LabelGroup>\n {row.securityFeatures.dependabot.map((feature) => {\n return <Label key={feature}>{uppercase(feature)}</Label>\n })}\n </LabelGroup>\n ) : null\n },\n },\n {\n header: 'Code scanning',\n field: 'securityFeatures.codeScanning',\n renderCell: (row) => {\n return row.securityFeatures.codeScanning.length > 0 ? (\n <LabelGroup>\n {row.securityFeatures.codeScanning.map((feature) => {\n return <Label key={feature}>{uppercase(feature)}</Label>\n })}\n </LabelGroup>\n ) : null\n },\n },\n ]}\n />\n <Table.Pagination\n aria-label=\"Pagination for Repositories\"\n pageSize={pageSize}\n totalCount={repos.length}\n onChange={({ pageIndex }) => {\n setPageIndex(pageIndex)\n }}\n />\n </Table.Container>\n )\n}"
|
|
2739
|
+
},
|
|
2740
|
+
{
|
|
2741
|
+
"id": "experimental-components-datatable-features--with-groups",
|
|
2742
|
+
"code": "() => (\n <Table.Container>\n <Table.Title as=\"h2\" id=\"repositories-by-visibility\">\n Repositories by visibility\n </Table.Title>\n <Table\n aria-labelledby=\"repositories-by-visibility\"\n gridTemplateColumns=\"minmax(0, 1fr) auto\"\n >\n <Table.Head>\n <Table.Row>\n <Table.Header id={groupedColumnHeaderIds[0]}>Name</Table.Header>\n <Table.Header id={groupedColumnHeaderIds[1]}>Updated</Table.Header>\n </Table.Row>\n </Table.Head>\n {repoGroups.map((group) => (\n <Table.Group\n key={group.id}\n id={group.id}\n label={group.label}\n rowCount={group.repos.length}\n colSpan={groupedColumnHeaderIds.length}\n >\n {group.repos.map((repo) => (\n <Table.Row key={repo.id}>\n <Table.Cell scope=\"row\" headers={groupedColumnHeaderIds[0]}>\n {repo.name}\n </Table.Cell>\n <Table.Cell headers={groupedColumnHeaderIds[1]}>\n <RelativeTime date={new Date(repo.updatedAt)} />\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Group>\n ))}\n </Table>\n </Table.Container>\n)"
|
|
2739
2743
|
}
|
|
2740
2744
|
],
|
|
2741
2745
|
"importPath": "@primer/react/experimental",
|
|
@@ -2860,6 +2864,41 @@
|
|
|
2860
2864
|
}
|
|
2861
2865
|
]
|
|
2862
2866
|
},
|
|
2867
|
+
{
|
|
2868
|
+
"name": "Table.Group",
|
|
2869
|
+
"props": [
|
|
2870
|
+
{
|
|
2871
|
+
"name": "id",
|
|
2872
|
+
"type": "string | number",
|
|
2873
|
+
"description": "A stable identifier exposed on both group sections as `data-group-id`. The group header's DOM id is generated separately so it is safe for use in `headers`."
|
|
2874
|
+
},
|
|
2875
|
+
{
|
|
2876
|
+
"name": "label",
|
|
2877
|
+
"type": "string",
|
|
2878
|
+
"description": "The visible label for the group, shown in the group header and included in its accessible name along with the row count."
|
|
2879
|
+
},
|
|
2880
|
+
{
|
|
2881
|
+
"name": "rowCount",
|
|
2882
|
+
"type": "number",
|
|
2883
|
+
"description": "The number of member rows in the group. Combined with `label` to build the group header's accessible name, for example \"Admins, 2 rows\"."
|
|
2884
|
+
},
|
|
2885
|
+
{
|
|
2886
|
+
"name": "aria-label",
|
|
2887
|
+
"type": "string",
|
|
2888
|
+
"description": "Override the group header's accessible name, for example to localize its row count description."
|
|
2889
|
+
},
|
|
2890
|
+
{
|
|
2891
|
+
"name": "colSpan",
|
|
2892
|
+
"type": "number",
|
|
2893
|
+
"description": "The number of columns spanned by the group header."
|
|
2894
|
+
},
|
|
2895
|
+
{
|
|
2896
|
+
"name": "children",
|
|
2897
|
+
"type": "React.ReactNode",
|
|
2898
|
+
"description": "The group's member rows, typically a list of `Table.Row` elements. When composing a grouped table directly, use each `Table.Cell`'s native `headers` prop to reference the corresponding `Table.Header` id. The group header association is added automatically."
|
|
2899
|
+
}
|
|
2900
|
+
]
|
|
2901
|
+
},
|
|
2863
2902
|
{
|
|
2864
2903
|
"name": "Table.Row",
|
|
2865
2904
|
"props": [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primer/react",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "38.
|
|
4
|
+
"version": "38.39.0-rc.052483c40",
|
|
5
5
|
"description": "An implementation of GitHub's Primer Design System using React",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -108,12 +108,12 @@
|
|
|
108
108
|
"@primer/doc-gen": "^0.0.1",
|
|
109
109
|
"@primer/react-compiler-check": "^0.0.0",
|
|
110
110
|
"@rolldown/plugin-babel": "^0.2.3",
|
|
111
|
-
"@storybook/addon-a11y": "10.5.
|
|
112
|
-
"@storybook/addon-docs": "10.5.
|
|
113
|
-
"@storybook/addon-links": "10.5.
|
|
111
|
+
"@storybook/addon-a11y": "10.5.10",
|
|
112
|
+
"@storybook/addon-docs": "10.5.10",
|
|
113
|
+
"@storybook/addon-links": "10.5.10",
|
|
114
114
|
"@storybook/addon-mcp": "^0.7.0",
|
|
115
115
|
"@storybook/icons": "^2.1.0",
|
|
116
|
-
"@storybook/react-vite": "10.5.
|
|
116
|
+
"@storybook/react-vite": "10.5.10",
|
|
117
117
|
"@testing-library/dom": "^10.4.0",
|
|
118
118
|
"@testing-library/jest-dom": "^6.4.5",
|
|
119
119
|
"@testing-library/react": "^16.3.0",
|
|
@@ -166,11 +166,11 @@
|
|
|
166
166
|
"react-is": "18.3.1",
|
|
167
167
|
"recast": "0.23.7",
|
|
168
168
|
"rimraf": "5.0.5",
|
|
169
|
-
"rolldown": "^1.2.
|
|
169
|
+
"rolldown": "^1.2.6",
|
|
170
170
|
"rolldown-plugin-dts": "^0.26.0",
|
|
171
171
|
"rolldown-plugin-import-css": "^0.0.0",
|
|
172
172
|
"rolldown-plugin-preserve-directives": "^0.0.0",
|
|
173
|
-
"storybook": "10.5.
|
|
173
|
+
"storybook": "10.5.10",
|
|
174
174
|
"terser": "5.36.0",
|
|
175
175
|
"ts-toolbelt": "9.6.0",
|
|
176
176
|
"tsx": "4.20.3",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.prc-DataTable-TableContainer-hn0p3{column-gap:var(--base-size-8,.5rem);display:grid;grid-template-areas:"title actions" "divider divider" "subtitle subtitle" "filter filter" "table table" "footer footer";grid-template-columns:1fr 1fr}.prc-DataTable-TableTitle-nM43N{align-self:center;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-semibold,600);grid-area:title;line-height:20px}.prc-DataTable-TableSubtitle--L6Ho,.prc-DataTable-TableTitle-nM43N{color:var(--fgColor-default,#1f2328);margin:0}.prc-DataTable-TableSubtitle--L6Ho{font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-normal,400);grid-area:subtitle;line-height:var(--text-title-lineHeight-small,1.5)}.prc-DataTable-TableActions-fkc2b{align-items:center;column-gap:var(--base-size-8,.5rem);display:flex;grid-area:actions;justify-self:end}.prc-DataTable-TableDivider-TRc3b{background-color:var(--borderColor-default,#d1d9e0);grid-area:divider;height:1px;margin-block-end:var(--base-size-8,.5rem);margin-block-start:var(--base-size-16,1rem);width:100%}.prc-DataTable-TableActions-fkc2b+.prc-DataTable-TableOverflowWrapper-bSqT-,.prc-DataTable-TableSubtitle--L6Ho+.prc-DataTable-TableOverflowWrapper-bSqT-,.prc-DataTable-TableTitle-nM43N+.prc-DataTable-TableOverflowWrapper-bSqT-{margin-block-start:var(--base-size-8,.5rem)}.prc-DataTable-Table-7ux1n,.prc-DataTable-TableOverflowWrapper-bSqT-{grid-area:table}.prc-DataTable-Table-7ux1n{--table-border-radius:0.375rem;--table-cell-padding:var(--cell-padding-block,0.5rem) var(--cell-padding-inline,0.75rem);--table-font-size:0.75rem;background-color:var(--bgColor-default,#fff);border-collapse:separate;border-spacing:0;display:grid;font-size:var(--table-font-size);grid-template-columns:var(--grid-template-columns);line-height:1.66667;width:100%}.prc-DataTable-Table-7ux1n:where([data-cell-padding=condensed]){--cell-padding-block:0.25rem;--cell-padding-inline:0.5rem}.prc-DataTable-Table-7ux1n:where([data-cell-padding=normal]){--cell-padding-block:0.5rem;--cell-padding-inline:0.75rem}.prc-DataTable-Table-7ux1n:where([data-cell-padding=spacious]){--cell-padding-block:0.75rem;--cell-padding-inline:1rem}.prc-DataTable-TableCell-Fk4ve:first-child,.prc-DataTable-TableHeader-eyTab:first-child{border-inline-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableCell-Fk4ve:last-child,.prc-DataTable-TableHeader-eyTab:last-child{border-inline-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableCell-Fk4ve,.prc-DataTable-TableHeader-eyTab{align-items:center;border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);display:flex;padding:var(--table-cell-padding);text-align:start}.prc-DataTable-TableCell-Fk4ve:where([data-cell-align=end]),.prc-DataTable-TableHeader-eyTab:where([data-cell-align=end]){display:flex;justify-content:flex-end;text-align:end}.prc-DataTable-TableHeader-eyTab[data-cell-align=end] .prc-DataTable-TableSortButton--aq0y{display:flex;flex-direction:row-reverse}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab{border-block-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab:first-child{border-top-left-radius:var(--table-border-radius)}.prc-DataTable-TableHead-4FaBf .prc-DataTable-TableRow-Icc7F:first-of-type .prc-DataTable-TableHeader-eyTab:last-child{border-top-right-radius:var(--table-border-radius)}.prc-DataTable-TableOverflowWrapper-bSqT-:last-child .prc-DataTable-Table-7ux1n .prc-DataTable-TableBody-QKQy2 .prc-DataTable-TableRow-Icc7F:last-of-type .prc-DataTable-TableCell-Fk4ve:first-child{border-bottom-left-radius:var(--table-border-radius)}.prc-DataTable-TableOverflowWrapper-bSqT-:last-child .prc-DataTable-Table-7ux1n .prc-DataTable-TableBody-QKQy2 .prc-DataTable-TableRow-Icc7F:last-of-type .prc-DataTable-TableCell-Fk4ve:last-child{border-bottom-right-radius:var(--table-border-radius)}.prc-DataTable-TableRow-Icc7F>:first-child .prc-DataTable-TableCellSkeletonItem-bGhwZ,.prc-DataTable-TableRow-Icc7F>:first-child:not(.prc-DataTable-TableCellSkeleton-DMdM5){padding-inline-start:var(--base-size-16,1rem)}.prc-DataTable-TableRow-Icc7F>:last-child .prc-DataTable-TableCellSkeletonItem-bGhwZ,.prc-DataTable-TableRow-Icc7F>:last-child:not(.prc-DataTable-TableCellSkeleton-DMdM5){padding-inline-end:var(--base-size-16,1rem)}.prc-DataTable-TableHeader-eyTab{background-color:var(--bgColor-muted,#f6f8fa);border-block-start:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);color:var(--fgColor-muted,#59636e);font-weight:var(--base-text-weight-semibold,600)}.prc-DataTable-TableHeader-eyTab:where([aria-sort=ascending]),.prc-DataTable-TableHeader-eyTab:where([aria-sort=descending]){color:var(--fgColor-default,#1f2328)}.prc-DataTable-TableSortIcon-wHvJw{visibility:hidden}.prc-DataTable-TableHeader-eyTab .prc-DataTable-TableSortButton--aq0y:focus .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab:hover .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab[aria-sort=ascending] .prc-DataTable-TableSortIcon--ascending-Lpx6z,.prc-DataTable-TableHeader-eyTab[aria-sort=descending] .prc-DataTable-TableSortIcon--descending-hHJGo{visibility:visible}.prc-DataTable-TableRow-Icc7F:hover .prc-DataTable-TableCell-Fk4ve:not(.prc-DataTable-TableCellSkeleton-DMdM5){background-color:var(--control-transparent-bgColor-hover,#818b981a)}.prc-DataTable-TableCell-Fk4ve:where([scope=row]){align-items:center;color:var(--fgColor-default,#1f2328);display:flex;font-weight:var(--base-text-weight-semibold,600)}.prc-DataTable-TableCellSkeleton-DMdM5{padding:0}.prc-DataTable-TableCellSkeletonItems-Ljhq5{display:flex;flex-direction:column;width:100%}.prc-DataTable-TableCellSkeletonItem-bGhwZ{padding:var(--table-cell-padding)}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+1){--skeleton-item-width:85%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+2){--skeleton-item-width:67.5%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+3){--skeleton-item-width:80%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+4){--skeleton-item-width:60%}.prc-DataTable-TableCellSkeletonItem-bGhwZ:nth-of-type(5n+5){--skeleton-item-width:75%}.prc-DataTable-TableCellSkeletonItem-bGhwZ [data-component=SkeletonText]{width:var(--skeleton-item-width)}.prc-DataTable-TableCellSkeletonItem-bGhwZ:not(:last-of-type){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0)}.prc-DataTable-TableSortButton--aq0y{column-gap:.5rem}.prc-DataTable-TableBody-QKQy2,.prc-DataTable-TableHead-4FaBf,.prc-DataTable-TableRow-Icc7F{display:contents}@supports (grid-template-columns:subgrid){.prc-DataTable-TableBody-QKQy2,.prc-DataTable-TableHead-4FaBf,.prc-DataTable-TableRow-Icc7F{display:grid;grid-column:-1/1;grid-template-columns:subgrid}}.prc-DataTable-PlaceholderText-8bHo7{color:var(--fgColor-muted,#59636e)}
|
|
2
|
-
/*# sourceMappingURL=Table-7f5cb3e4.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/DataTable/Table.module.css.js"],"names":[],"mappings":"AACA,oCAUE,mCAA8B,CAT9B,YAAa,CAEb,uHAMiB,CAPjB,6BASF,CAGA,gCAQE,iBAAkB,CANlB,8CAAuC,CACvC,gDAA6C,CAI7C,eAAgB,CAFhB,gBAIF,CAGA,mEANE,oCAA6B,CAL7B,QAkBF,CAPA,mCAEE,4CAAsC,CACtC,8CAA2C,CAG3C,kBAAmB,CAFnB,kDAGF,CAGA,kCAGE,kBAAmB,CADnB,mCAA8B,CAD9B,YAAa,CAGb,iBAAkB,CAClB,gBACF,CAGA,kCAIE,mDAA4C,CAC5C,iBAAkB,CAHlB,UAAW,CAKX,yCAAoC,CADpC,2CAAuC,CALvC,UAOF,CAGA,mOAGE,2CACF,CAOA,qEAJE,eAsCF,CAlCA,2BAEE,8BAA+B,CAC/B,wFAA2F,CAC3F,yBAA0B,CAW1B,4CAAwC,CADxC,wBAAyB,CAFzB,gBAAiB,CANjB,YAAa,CAGb,gCAAiC,CAQjC,kDAAmD,CANnD,mBAA0B,CAJ1B,UA2BF,CAdE,gEACE,4BAA6B,CAC7B,4BACF,CAEA,6DACE,2BAA4B,CAC5B,6BACF,CAEA,+DACE,4BAA6B,CAC7B,0BACF,CAIF,wFAEE,6FACF,CAEA,sFAEE,2FACF,CAEA,gEAME,kBAAmB,CACnB,0FAA0E,CAL1E,YAAa,CAEb,iCAAkC,CAClC,gBAGF,CAEA,0HAEE,YAAa,CAEb,wBAAyB,CADzB,cAEF,CAEA,2FACE,YAAa,CACb,0BACF,CAEA,4GACE,4FACF,CAIA,wHAEE,iDACF,CAGA,uHAEE,kDACF,CAGA,qMAEE,oDACF,CAGA,oMAEE,qDACF,CAMA,6KAEE,6CACF,CAEA,2KAEE,2CACF,CAGA,iCAGE,6CAAsC,CACtC,4FAA4E,CAF5E,kCAA2B,CAD3B,gDAIF,CAEA,6HAEE,oCACF,CAGA,mCACE,iBACF,CASA,yZAEE,kBACF,CAGA,+GACE,mEACF,CAGA,kDAIE,kBAAmB,CADnB,oCAA6B,CAF7B,YAAa,CACb,gDAGF,CAGA,uCACE,SACF,CAEA,4CACE,YAAa,CAEb,qBAAsB,CADtB,UAEF,CAEA,2CAEE,iCAqBF,CAnBE,6DACE,yBACF,CAEA,6DACE,2BACF,CAEA,6DACE,yBACF,CAEA,6DACE,yBACF,CAEA,6DACE,yBACF,CAGF,yEACE,gCACF,CAEA,8DACE,0FACF,CAEA,qCACE,gBACF,CAGA,4FAGE,gBACF,CAEA,0CACE,4FAGE,YAAa,CAEb,gBAAkB,CADlB,6BAEF,CACF,CAEA,qCACE,kCACF","file":"Table-7f5cb3e4.css","sourcesContent":["/* Container ---------------------------------------------------------------- */\n.TableContainer {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n 'title actions'\n 'divider divider'\n 'subtitle subtitle'\n 'filter filter'\n 'table table'\n 'footer footer';\n column-gap: var(--base-size-8);\n}\n\n/* TableTitle */\n.TableTitle {\n margin: 0;\n font-size: var(--text-body-size-medium);\n font-weight: var(--base-text-weight-semibold);\n /* stylelint-disable-next-line primer/typography */\n line-height: 20px;\n color: var(--fgColor-default);\n grid-area: title;\n align-self: center;\n}\n\n/* TableSubtitle */\n.TableSubtitle {\n margin: 0;\n font-size: var(--text-body-size-small);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-title-lineHeight-small);\n color: var(--fgColor-default);\n grid-area: subtitle;\n}\n\n/* TableActions */\n.TableActions {\n display: flex;\n column-gap: var(--base-size-8);\n align-items: center;\n grid-area: actions;\n justify-self: end;\n}\n\n/* TableDivider */\n.TableDivider {\n width: 100%;\n height: 1px;\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--borderColor-default);\n grid-area: divider;\n margin-block-start: var(--base-size-16);\n margin-block-end: var(--base-size-8);\n}\n\n/* Spacing before the table */\n.TableTitle + .TableOverflowWrapper,\n.TableSubtitle + .TableOverflowWrapper,\n.TableActions + .TableOverflowWrapper {\n margin-block-start: var(--base-size-8);\n}\n\n.TableOverflowWrapper {\n grid-area: table;\n}\n\n/* Table -------------------------------------------------------------------- */\n.Table {\n /* Default table styles */\n --table-border-radius: 0.375rem;\n --table-cell-padding: var(--cell-padding-block, 0.5rem) var(--cell-padding-inline, 0.75rem);\n --table-font-size: 0.75rem;\n\n display: grid;\n width: 100%;\n /* stylelint-disable-next-line primer/typography */\n font-size: var(--table-font-size);\n /* stylelint-disable-next-line primer/typography */\n line-height: calc(20 / 12);\n border-spacing: 0;\n /* stylelint-disable-next-line primer/borders */\n border-collapse: separate;\n background-color: var(--bgColor-default);\n grid-area: table;\n grid-template-columns: var(--grid-template-columns);\n\n /* Density modes: condensed, normal, spacious */\n &:where([data-cell-padding='condensed']) {\n --cell-padding-block: 0.25rem;\n --cell-padding-inline: 0.5rem;\n }\n\n &:where([data-cell-padding='normal']) {\n --cell-padding-block: 0.5rem;\n --cell-padding-inline: 0.75rem;\n }\n\n &:where([data-cell-padding='spacious']) {\n --cell-padding-block: 0.75rem;\n --cell-padding-inline: 1rem;\n }\n}\n\n/* Borders */\n.TableCell:first-child,\n.TableHeader:first-child {\n border-inline-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableCell:last-child,\n.TableHeader:last-child {\n border-inline-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader,\n.TableCell {\n display: flex;\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--table-cell-padding);\n text-align: start;\n align-items: center;\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader:where([data-cell-align='end']),\n.TableCell:where([data-cell-align='end']) {\n display: flex;\n text-align: end;\n justify-content: flex-end;\n}\n\n.TableHeader[data-cell-align='end'] .TableSortButton {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.TableHead .TableRow:first-of-type .TableHeader {\n border-block-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n/* Border radius */\n/* stylelint-disable-next-line selector-max-specificity */\n.TableHead .TableRow:first-of-type .TableHeader:first-child {\n /* stylelint-disable-next-line primer/borders */\n border-top-left-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-specificity */\n.TableHead .TableRow:first-of-type .TableHeader:last-child {\n /* stylelint-disable-next-line primer/borders */\n border-top-right-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-compound-selectors,selector-max-specificity */\n.TableOverflowWrapper:last-child .Table .TableBody .TableRow:last-of-type .TableCell:first-child {\n /* stylelint-disable-next-line primer/borders */\n border-bottom-left-radius: var(--table-border-radius);\n}\n\n/* stylelint-disable-next-line selector-max-compound-selectors,selector-max-specificity */\n.TableOverflowWrapper:last-child .Table .TableBody .TableRow:last-of-type .TableCell:last-child {\n /* stylelint-disable-next-line primer/borders */\n border-bottom-right-radius: var(--table-border-radius);\n}\n\n/**\n * Offset padding to make sure type aligns regardless of cell padding\n * selection\n */\n.TableRow > *:first-child:not(.TableCellSkeleton),\n.TableRow > *:first-child .TableCellSkeletonItem {\n padding-inline-start: var(--base-size-16);\n}\n\n.TableRow > *:last-child:not(.TableCellSkeleton),\n.TableRow > *:last-child .TableCellSkeletonItem {\n padding-inline-end: var(--base-size-16);\n}\n\n/* TableHeader */\n.TableHeader {\n font-weight: var(--base-text-weight-semibold);\n color: var(--fgColor-muted);\n background-color: var(--bgColor-muted);\n border-block-start: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableHeader:where([aria-sort='descending']),\n.TableHeader:where([aria-sort='ascending']) {\n color: var(--fgColor-default);\n}\n\n/* Control visibility of sort icons */\n.TableSortIcon {\n visibility: hidden;\n}\n\n/* The ASC icon is visible if the header is sortable and is hovered or focused */\n.TableHeader:hover .TableSortIcon--ascending,\n.TableHeader .TableSortButton:focus .TableSortIcon--ascending {\n visibility: visible;\n}\n\n/* Each sort icon is visible if the TableHeader is currently in the corresponding sort state */\n.TableHeader[aria-sort='ascending'] .TableSortIcon--ascending,\n.TableHeader[aria-sort='descending'] .TableSortIcon--descending {\n visibility: visible;\n}\n\n/* TableRow */\n.TableRow:hover .TableCell:not(.TableCellSkeleton) {\n background-color: var(--control-transparent-bgColor-hover);\n}\n\n/* TableCell */\n.TableCell:where([scope='row']) {\n display: flex;\n font-weight: var(--base-text-weight-semibold);\n color: var(--fgColor-default);\n align-items: center;\n}\n\n/* TableCellSkeleton */\n.TableCellSkeleton {\n padding: 0;\n}\n\n.TableCellSkeletonItems {\n display: flex;\n width: 100%;\n flex-direction: column;\n}\n\n.TableCellSkeletonItem {\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--table-cell-padding);\n\n &:nth-of-type(5n + 1) {\n --skeleton-item-width: 85%;\n }\n\n &:nth-of-type(5n + 2) {\n --skeleton-item-width: 67.5%;\n }\n\n &:nth-of-type(5n + 3) {\n --skeleton-item-width: 80%;\n }\n\n &:nth-of-type(5n + 4) {\n --skeleton-item-width: 60%;\n }\n\n &:nth-of-type(5n + 5) {\n --skeleton-item-width: 75%;\n }\n}\n\n.TableCellSkeletonItem [data-component='SkeletonText'] {\n width: var(--skeleton-item-width);\n}\n\n.TableCellSkeletonItem:not(:last-of-type) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n}\n\n.TableSortButton {\n column-gap: 0.5rem;\n}\n\n/* Grid layout */\n.TableHead,\n.TableBody,\n.TableRow {\n display: contents;\n}\n\n@supports (grid-template-columns: subgrid) {\n .TableHead,\n .TableBody,\n .TableRow {\n display: grid;\n grid-template-columns: subgrid;\n grid-column: -1 /1;\n }\n}\n\n.PlaceholderText {\n color: var(--fgColor-muted);\n}\n"]}
|