@primer/react 38.38.0 → 38.39.0-rc.411be1ab4
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 +10 -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 +54 -27
- 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 +6 -6
- package/dist/DataTable/Table-7f5cb3e4.css +0 -2
- package/dist/DataTable/Table-7f5cb3e4.css.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
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
|
+
|
|
3
13
|
## 38.38.0
|
|
4
14
|
|
|
5
15
|
### 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);
|
|
@@ -285,56 +298,70 @@ function TableRow(t0) {
|
|
|
285
298
|
return t2;
|
|
286
299
|
}
|
|
287
300
|
function TableCell(t0) {
|
|
288
|
-
const $ = c(
|
|
301
|
+
const $ = c(21);
|
|
289
302
|
let align;
|
|
290
303
|
let children;
|
|
291
304
|
let className;
|
|
305
|
+
let headers;
|
|
292
306
|
let rest;
|
|
293
307
|
let scope;
|
|
294
308
|
if ($[0] !== t0) {
|
|
295
|
-
({align, className, children, scope, ...rest} = t0);
|
|
309
|
+
({align, className, children, scope, headers, ...rest} = t0);
|
|
296
310
|
$[0] = t0;
|
|
297
311
|
$[1] = align;
|
|
298
312
|
$[2] = children;
|
|
299
313
|
$[3] = className;
|
|
300
|
-
$[4] =
|
|
301
|
-
$[5] =
|
|
314
|
+
$[4] = headers;
|
|
315
|
+
$[5] = rest;
|
|
316
|
+
$[6] = scope;
|
|
302
317
|
} else {
|
|
303
318
|
align = $[1];
|
|
304
319
|
children = $[2];
|
|
305
320
|
className = $[3];
|
|
306
|
-
|
|
307
|
-
|
|
321
|
+
headers = $[4];
|
|
322
|
+
rest = $[5];
|
|
323
|
+
scope = $[6];
|
|
308
324
|
}
|
|
309
325
|
const BaseComponent = scope ? "th" : "td";
|
|
310
326
|
const role = scope ? "rowheader" : "cell";
|
|
327
|
+
const group = useContext(TableGroupContext);
|
|
311
328
|
let t1;
|
|
312
|
-
if ($[
|
|
313
|
-
t1 =
|
|
314
|
-
$[
|
|
315
|
-
$[
|
|
316
|
-
|
|
329
|
+
if ($[7] !== (group === null || group === void 0 ? void 0 : group.headerId) || $[8] !== headers) {
|
|
330
|
+
t1 = [group === null || group === void 0 ? void 0 : group.headerId, headers].filter(Boolean).join(" ") || void 0;
|
|
331
|
+
$[7] = group === null || group === void 0 ? void 0 : group.headerId;
|
|
332
|
+
$[8] = headers;
|
|
333
|
+
$[9] = t1;
|
|
334
|
+
} else t1 = $[9];
|
|
335
|
+
const resolvedHeaders = t1;
|
|
317
336
|
let t2;
|
|
318
|
-
if ($[
|
|
319
|
-
t2 =
|
|
337
|
+
if ($[10] !== className) {
|
|
338
|
+
t2 = clsx("TableCell", className, Table_module_css_default.TableCell);
|
|
339
|
+
$[10] = className;
|
|
340
|
+
$[11] = t2;
|
|
341
|
+
} else t2 = $[11];
|
|
342
|
+
let t3;
|
|
343
|
+
if ($[12] !== BaseComponent || $[13] !== align || $[14] !== children || $[15] !== resolvedHeaders || $[16] !== rest || $[17] !== role || $[18] !== scope || $[19] !== t2) {
|
|
344
|
+
t3 = /*#__PURE__*/ jsx(BaseComponent, {
|
|
320
345
|
...rest,
|
|
321
|
-
className:
|
|
346
|
+
className: t2,
|
|
322
347
|
scope,
|
|
323
348
|
role,
|
|
324
349
|
"data-cell-align": align,
|
|
325
350
|
"data-component": "Table.Cell",
|
|
351
|
+
headers: resolvedHeaders,
|
|
326
352
|
children
|
|
327
353
|
});
|
|
328
|
-
$[
|
|
329
|
-
$[
|
|
330
|
-
$[
|
|
331
|
-
$[
|
|
332
|
-
$[
|
|
333
|
-
$[
|
|
334
|
-
$[
|
|
335
|
-
$[
|
|
336
|
-
|
|
337
|
-
|
|
354
|
+
$[12] = BaseComponent;
|
|
355
|
+
$[13] = align;
|
|
356
|
+
$[14] = children;
|
|
357
|
+
$[15] = resolvedHeaders;
|
|
358
|
+
$[16] = rest;
|
|
359
|
+
$[17] = role;
|
|
360
|
+
$[18] = scope;
|
|
361
|
+
$[19] = t2;
|
|
362
|
+
$[20] = t3;
|
|
363
|
+
} else t3 = $[20];
|
|
364
|
+
return t3;
|
|
338
365
|
}
|
|
339
366
|
function TableCellPlaceholder(t0) {
|
|
340
367
|
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.411be1ab4",
|
|
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",
|
|
@@ -170,7 +170,7 @@
|
|
|
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"]}
|