@valu/block-components 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../components/matrix/styles/tokens.ts","../../../components/matrix/styles/index.ts","../../../components/matrix/MatrixHeader.tsx","../../../components/matrix/utils.ts","../../../components/matrix/MatrixCell.tsx","../../../components/matrix/MatrixGroupSummary.tsx","../../../components/matrix/MatrixRow.tsx","../../../components/matrix/styles/emotionCache.tsx","../../../components/matrix/hooks/useExpandedGroups.ts","../../../components/matrix/Matrix.tsx"],"names":["jsx","useCallback","jsxs","ToggleControl","useState","isExpanded","useMemo"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Design tokens — CSS custom-property passthroughs with fallbacks.\n *\n * These mirror the ContentPicker tokens so the Matrix bundle stays\n * self-contained (no cross-component import). They map to the same\n * WordPress admin variables (`--wp-admin-theme-color`, `--wp-components-color-*`).\n */\nexport const tokens = {\n\taccent: 'var(--wp-admin-theme-color, #3858e9)',\n\taccentHover:\n\t\t'color-mix(in srgb, var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)) 4%, transparent)',\n\taccentActive:\n\t\t'color-mix(in srgb, var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9)) 8%, transparent)',\n\tbg: 'var(--wp-components-color-background, #ffffff)',\n\tbgMuted: 'var(--wp-components-color-gray-100, #f0f0f0)',\n\tfg: 'var(--wp-components-color-foreground, #1e1e1e)',\n\tgray100: 'var(--wp-components-color-gray-100, #f0f0f0)',\n\tgray200: 'var(--wp-components-color-gray-200, #ebebeb)',\n\tgray300: 'var(--wp-components-color-gray-300, #dcdcde)',\n\tgray600: 'var(--wp-components-color-gray-600, #757575)',\n\tgray900: 'var(--wp-components-color-gray-900, #1e1e1e)',\n\n\tradiusSm: '2px',\n\tradiusMd: '4px',\n\n\trowMinHeight: '44px',\n\n\tshadowStickyTop: 'inset 0 -1px 0 rgba(0, 0, 0, 0.08)',\n\tshadowStickyLeft: 'inset -1px 0 0 rgba(0, 0, 0, 0.08)',\n\n\tspaceXs: '4px',\n\tspaceSm: '8px',\n\tspaceMd: '12px',\n\tspaceLg: '16px',\n\n\ttransitionFast: '120ms ease-out',\n\n\tfontSizeBody: '13px',\n\tfontSizeSmall: '11px',\n\tfontWeightRegular: 400,\n\tfontWeightMedium: 500,\n\tfontWeightBold: 600,\n\n\t/** Sticky z-index layering. Row-header > master > top headers > leaf cells. */\n\tzRowHeader: 4,\n\tzMaster: 3,\n\tzHeader: 3,\n\tzCell: 1,\n} as const;\n\nexport type Tokens = typeof tokens;\n","import styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\nimport { tokens as t } from './tokens';\n\nexport const visuallyHiddenCss = css`\n\tposition: absolute !important;\n\tclip: rect(1px, 1px, 1px, 1px);\n\twidth: 1px;\n\theight: 1px;\n\toverflow: hidden;\n\twhite-space: nowrap;\n`;\n\nexport const Root = styled.div`\n\tcolor: ${t.fg};\n\tfont-size: ${t.fontSizeBody};\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n`;\n\n/** Scroll viewport — owns sticky positioning's containing block. */\nexport const Viewport = styled.div<{ $maxHeight: string }>`\n\tposition: relative;\n\toverflow: auto;\n\tmax-height: ${(p) => p.$maxHeight};\n\tborder: 1px solid ${t.gray300};\n\tborder-radius: ${t.radiusMd};\n\tbackground: ${t.bg};\n`;\n\nexport const Table = styled.table`\n\tborder-collapse: separate;\n\tborder-spacing: 0;\n\twidth: 100%;\n\tmin-width: max-content;\n\n\tcaption {\n\t\t${visuallyHiddenCss};\n\t}\n\n\tth,\n\ttd {\n\t\ttext-align: left;\n\t\tpadding: ${t.spaceSm} ${t.spaceMd};\n\t\tborder-bottom: 1px solid ${t.gray200};\n\t\tfont-weight: ${t.fontWeightRegular};\n\t\tvertical-align: middle;\n\t\tbackground: ${t.bg};\n\t}\n\n\ttbody tr:last-of-type th,\n\ttbody tr:last-of-type td {\n\t\tborder-bottom: none;\n\t}\n\n\ttbody tr:hover th,\n\ttbody tr:hover td {\n\t\tbackground: ${t.bgMuted};\n\t}\n`;\n\nexport const HeaderCell = styled.th<{\n\t$sticky?: boolean;\n\t$leftSticky?: boolean;\n\t$leftOffset?: string;\n\t$top?: string;\n\t$z?: number;\n\t$align?: 'left' | 'center';\n}>`\n\tfont-weight: ${t.fontWeightBold};\n\tfont-size: ${t.fontSizeSmall};\n\ttext-transform: uppercase;\n\tletter-spacing: 0.02em;\n\tcolor: ${t.gray900};\n\twhite-space: nowrap;\n\ttext-align: ${(p) => p.$align ?? 'left'};\n\n\t${(p) =>\n\t\tp.$sticky &&\n\t\tcss`\n\t\t\tposition: sticky;\n\t\t\ttop: ${p.$top ?? '0'};\n\t\t\tz-index: ${p.$z ?? t.zHeader};\n\t\t\tbox-shadow: ${t.shadowStickyTop};\n\t\t`};\n\n\t${(p) =>\n\t\tp.$leftSticky &&\n\t\tcss`\n\t\t\tposition: sticky;\n\t\t\tleft: ${p.$leftOffset ?? '0'};\n\t\t\tz-index: ${(p.$z ?? t.zHeader) + 1};\n\t\t\tbox-shadow: ${t.shadowStickyLeft}, ${t.shadowStickyTop};\n\t\t`};\n`;\n\nexport const GroupHeaderButton = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: ${t.spaceXs};\n\tbackground: transparent;\n\tborder: 1px solid transparent;\n\tborder-radius: ${t.radiusSm};\n\tpadding: 2px ${t.spaceXs};\n\tfont: inherit;\n\tcolor: inherit;\n\tcursor: pointer;\n\ttext-transform: inherit;\n\tletter-spacing: inherit;\n\n\t&:hover {\n\t\tbackground: ${t.accentHover};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${t.accent};\n\t\toutline-offset: 1px;\n\t}\n\n\t&[disabled] {\n\t\tcursor: default;\n\t\t&:hover {\n\t\t\tbackground: transparent;\n\t\t}\n\t}\n`;\n\nexport const Caret = styled.span<{ $open: boolean }>`\n\tdisplay: inline-block;\n\twidth: 0;\n\theight: 0;\n\tborder-left: 4px solid transparent;\n\tborder-right: 4px solid transparent;\n\tborder-top: 5px solid currentColor;\n\ttransition: transform ${t.transitionFast};\n\ttransform: ${(p) => (p.$open ? 'rotate(0deg)' : 'rotate(-90deg)')};\n`;\n\nexport const RowHeaderCell = styled.th<{ $leftSticky: boolean }>`\n\tmin-width: 220px;\n\tmax-width: 320px;\n\t${(p) =>\n\t\tp.$leftSticky &&\n\t\tcss`\n\t\t\tposition: sticky;\n\t\t\tleft: 0;\n\t\t\tz-index: ${t.zRowHeader};\n\t\t\tbox-shadow: ${t.shadowStickyLeft};\n\t\t`};\n`;\n\nexport const RowHeaderInner = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: ${t.spaceMd};\n\tmin-height: ${t.rowMinHeight};\n`;\n\nexport const RowHeaderText = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmin-width: 0;\n`;\n\nexport const RowLabel = styled.div`\n\tfont-weight: ${t.fontWeightMedium};\n\tcolor: ${t.gray900};\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n`;\n\nexport const RowSublabel = styled.div`\n\tcolor: ${t.gray600};\n\tfont-size: ${t.fontSizeSmall};\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n`;\n\nexport const RowMeta = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: ${t.spaceXs};\n\tmargin-left: auto;\n`;\n\nexport const MasterCell = styled.td<{ $leftSticky: boolean; $leftOffset: string }>`\n\tmin-width: 96px;\n\ttext-align: center;\n\t${(p) =>\n\t\tp.$leftSticky &&\n\t\tcss`\n\t\t\tposition: sticky;\n\t\t\tleft: ${p.$leftOffset};\n\t\t\tz-index: ${t.zMaster};\n\t\t\tbox-shadow: ${t.shadowStickyLeft};\n\t\t`};\n`;\n\nexport const LeafCell = styled.td`\n\tmin-width: 88px;\n\ttext-align: center;\n\n\t&[data-disabled='true'] {\n\t\topacity: 0.45;\n\t}\n`;\n\nexport const SummaryCell = styled.td`\n\tmin-width: 88px;\n\ttext-align: center;\n\tcolor: ${t.gray600};\n\tfont-variant-numeric: tabular-nums;\n`;\n\n/**\n * Trailing cell that absorbs leftover horizontal space so leaf/summary\n * cells stay at their content size (rather than auto-stretching). Borders\n * and hover-highlight match the rest of the row, so the row separator\n * still extends across the full table width.\n */\nexport const FillerCell = styled.td`\n\twidth: 100%;\n\tpadding: 0;\n`;\n\n/**\n * Header equivalent of `FillerCell`. Placed at the end of the header row.\n * Sticks to the top with the rest of the header so the empty trailing\n * space stays continuous with the bordered/shadowed header bar.\n */\nexport const FillerHeaderCell = styled.th<{ $sticky?: boolean }>`\n\twidth: 100%;\n\tpadding: 0;\n\n\t${(p) =>\n\t\tp.$sticky &&\n\t\tcss`\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\tz-index: ${t.zHeader};\n\t\t\tbackground: ${t.bg};\n\t\t\tbox-shadow: ${t.shadowStickyTop};\n\t\t`};\n`;\n\nexport const CellControlWrap = styled.div`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t/* Trim @wordpress/components default vertical margins inside table cells. */\n\t.components-checkbox-control,\n\t.components-toggle-control,\n\t.components-base-control,\n\t.components-base-control__field {\n\t\tmargin: 0;\n\t}\n\n\t.components-checkbox-control__input-container {\n\t\tmargin: 0;\n\t}\n`;\n\nexport const Caption = styled.caption`\n\t${visuallyHiddenCss};\n`;\n","import { GroupHeaderButton, Caret, FillerHeaderCell, HeaderCell } from './styles';\nimport type {\n\tMatrixColumn,\n\tMatrixColumnGroup,\n\tMatrixLabels,\n\tMatrixMasterColumn,\n} from './types';\n\ninterface MatrixHeaderProps {\n\tgroups: MatrixColumnGroup[];\n\tmaster?: MatrixMasterColumn;\n\tflat: boolean;\n\tstickyHeader: boolean;\n\tstickyFirstColumn: boolean;\n\tmasterLeftOffset: string;\n\texpandedGroups: ReadonlySet<string>;\n\tonToggleGroup: (groupId: string) => void;\n\tlabels: Required<MatrixLabels>;\n\trenderHeader?: (column: MatrixColumn) => React.ReactNode;\n\trowHeaderLabel?: string;\n}\n\nconst isExpanded = (group: MatrixColumnGroup, expanded: ReadonlySet<string>): boolean =>\n\tgroup.collapsible === false ? true : expanded.has(group.id);\n\nexport const MatrixHeader = ({\n\tgroups,\n\tmaster,\n\tflat,\n\tstickyHeader,\n\tstickyFirstColumn,\n\tmasterLeftOffset,\n\texpandedGroups,\n\tonToggleGroup,\n\tlabels,\n\trenderHeader,\n\trowHeaderLabel,\n}: MatrixHeaderProps) => {\n\t// Flat / single-row header.\n\tif (flat) {\n\t\tconst cols = groups[0]?.columns ?? [];\n\t\treturn (\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t$leftSticky={stickyFirstColumn}\n\t\t\t\t\t\t$leftOffset=\"0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{rowHeaderLabel ?? ''}\n\t\t\t\t\t</HeaderCell>\n\t\t\t\t\t{master && (\n\t\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t\t$leftSticky={stickyFirstColumn}\n\t\t\t\t\t\t\t$leftOffset={masterLeftOffset}\n\t\t\t\t\t\t\t$align=\"center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{master.label}\n\t\t\t\t\t\t</HeaderCell>\n\t\t\t\t\t)}\n\t\t\t\t\t{cols.map((col) => (\n\t\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\t\tkey={col.id}\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t\t$align=\"center\"\n\t\t\t\t\t\t\taria-description={col.description}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderHeader ? renderHeader(col) : col.label}\n\t\t\t\t\t\t</HeaderCell>\n\t\t\t\t\t))}\n\t\t\t\t\t<FillerHeaderCell aria-hidden $sticky={stickyHeader} />\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t);\n\t}\n\n\t// Grouped — two header rows.\n\tconst TOP_ROW_HEIGHT = '36px';\n\n\treturn (\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<HeaderCell\n\t\t\t\t\tscope=\"col\"\n\t\t\t\t\trowSpan={2}\n\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t$leftSticky={stickyFirstColumn}\n\t\t\t\t\t$leftOffset=\"0\"\n\t\t\t\t>\n\t\t\t\t\t{rowHeaderLabel ?? ''}\n\t\t\t\t</HeaderCell>\n\t\t\t\t{master && (\n\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\trowSpan={2}\n\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t$leftSticky={stickyFirstColumn}\n\t\t\t\t\t\t$leftOffset={masterLeftOffset}\n\t\t\t\t\t\t$align=\"center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{master.label}\n\t\t\t\t\t</HeaderCell>\n\t\t\t\t)}\n\t\t\t\t{groups.map((group) => {\n\t\t\t\t\tconst open = isExpanded(group, expandedGroups);\n\t\t\t\t\tconst span = open ? group.columns.length : 1;\n\t\t\t\t\tconst collapsible = group.collapsible !== false;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\t\tkey={group.id}\n\t\t\t\t\t\t\tscope=\"colgroup\"\n\t\t\t\t\t\t\tcolSpan={span}\n\t\t\t\t\t\t\trowSpan={open ? 1 : 2}\n\t\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t\t$align=\"center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{collapsible ? (\n\t\t\t\t\t\t\t\t<GroupHeaderButton\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\t\t\taria-label={open ? labels.collapseGroup : labels.expandGroup}\n\t\t\t\t\t\t\t\t\tonClick={() => onToggleGroup(group.id)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Caret $open={open} aria-hidden />\n\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t</GroupHeaderButton>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span>{group.label}</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</HeaderCell>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t<FillerHeaderCell aria-hidden rowSpan={2} $sticky={stickyHeader} />\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t{groups.map((group) => {\n\t\t\t\t\tconst open = isExpanded(group, expandedGroups);\n\t\t\t\t\tif (!open) return null;\n\t\t\t\t\treturn group.columns.map((col) => (\n\t\t\t\t\t\t<HeaderCell\n\t\t\t\t\t\t\tkey={`${group.id}::${col.id}`}\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t$sticky={stickyHeader}\n\t\t\t\t\t\t\t$top={TOP_ROW_HEIGHT}\n\t\t\t\t\t\t\t$align=\"center\"\n\t\t\t\t\t\t\taria-description={col.description}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderHeader ? renderHeader(col) : col.label}\n\t\t\t\t\t\t</HeaderCell>\n\t\t\t\t\t));\n\t\t\t\t})}\n\t\t\t</tr>\n\t\t</thead>\n\t);\n};\n","import type {\n\tColId,\n\tMatrixColumn,\n\tMatrixColumnGroup,\n\tMatrixLabels,\n\tRowId,\n} from './types';\n\n/** Selection-set key for a single cell. */\nexport const cellKey = (rowId: RowId, colId: ColId): string => `${rowId}::${colId}`;\n\n/**\n * Returns the column ids selected for a single row.\n *\n * @example\n * selectionByRow(value, 'user-42') // ['create', 'edit']\n */\nexport const selectionByRow = (\n\tvalue: ReadonlySet<string>,\n\trowId: RowId,\n): ColId[] => {\n\tconst prefix = `${rowId}::`;\n\tconst out: ColId[] = [];\n\tfor (const key of value) {\n\t\tif (key.startsWith(prefix)) out.push(key.slice(prefix.length));\n\t}\n\treturn out;\n};\n\n/** Toggle a single cell, returning the next Set (always a new instance). */\nexport const toggleCell = (\n\tvalue: ReadonlySet<string>,\n\trowId: RowId,\n\tcolId: ColId,\n\tchecked: boolean,\n): Set<string> => {\n\tconst next = new Set(value);\n\tif (checked) next.add(cellKey(rowId, colId));\n\telse next.delete(cellKey(rowId, colId));\n\treturn next;\n};\n\n/**\n * Normalize the public `columns | groups` choice into a single internal\n * shape. A flat `columns` list becomes one synthetic, non-collapsible group.\n */\nexport const normalizeGroups = (input: {\n\tcolumns?: MatrixColumn[];\n\tgroups?: MatrixColumnGroup[];\n}): { groups: MatrixColumnGroup[]; flat: boolean } => {\n\tif (input.groups) return { groups: input.groups, flat: false };\n\treturn {\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tid: '__flat__',\n\t\t\t\tlabel: '',\n\t\t\t\tcolumns: input.columns ?? [],\n\t\t\t\tcollapsible: false,\n\t\t\t\tdefaultExpanded: true,\n\t\t\t},\n\t\t],\n\t\tflat: true,\n\t};\n};\n\n/**\n * Default labels — used when a key isn't supplied by the consumer. English\n * only; consumers using `@wordpress/i18n` should pass translated strings.\n */\nexport const defaultLabels = (overrides: MatrixLabels = {}): Required<MatrixLabels> => ({\n\texpandGroup: overrides.expandGroup ?? 'Expand group',\n\tcollapseGroup: overrides.collapseGroup ?? 'Collapse group',\n\tgroupSummary: overrides.groupSummary ?? ((selected, total) => `${selected} / ${total}`),\n\tcellToggled:\n\t\toverrides.cellToggled ??\n\t\t((rowLabel, colLabel, checked) =>\n\t\t\tchecked ? `${colLabel} added to ${rowLabel}` : `${colLabel} removed from ${rowLabel}`),\n});\n\n/** Stringify a ReactNode as best we can for `aria-label`. */\nexport const toPlainText = (node: unknown): string => {\n\tif (node === null || node === undefined || node === false || node === true) return '';\n\tif (typeof node === 'string' || typeof node === 'number') return String(node);\n\tif (Array.isArray(node)) return node.map(toPlainText).join(' ');\n\tif (typeof node === 'object' && 'props' in (node as object)) {\n\t\tconst props = (node as { props?: { children?: unknown } }).props;\n\t\tif (props && 'children' in props) return toPlainText(props.children);\n\t}\n\treturn '';\n};\n","import { useCallback } from 'react';\nimport { CheckboxControl, ToggleControl } from '@wordpress/components';\n\nimport { CellControlWrap, LeafCell } from './styles';\nimport { cellKey, toggleCell, toPlainText } from './utils';\nimport type {\n\tCellContext,\n\tMatrixChange,\n\tMatrixColumn,\n\tMatrixRow,\n\tMatrixVariant,\n} from './types';\n\ninterface MatrixCellProps {\n\trow: MatrixRow;\n\tcolumn: MatrixColumn;\n\tvalue: ReadonlySet<string>;\n\tdisabled: boolean;\n\tvariant: MatrixVariant;\n\tonChange: (next: ReadonlySet<string>, change: MatrixChange) => void;\n\trenderCell?: (ctx: CellContext) => React.ReactNode;\n}\n\nexport const MatrixCell = ({\n\trow,\n\tcolumn,\n\tvalue,\n\tdisabled,\n\tvariant,\n\tonChange,\n\trenderCell,\n}: MatrixCellProps) => {\n\tconst key = cellKey(row.id, column.id);\n\tconst checked = value.has(key);\n\n\tconst toggle = useCallback(\n\t\t(nextChecked: boolean) => {\n\t\t\tif (disabled) return;\n\t\t\tconst next = toggleCell(value, row.id, column.id, nextChecked);\n\t\t\tonChange(next, { rowId: row.id, colId: column.id, checked: nextChecked });\n\t\t},\n\t\t[column.id, disabled, onChange, row.id, value],\n\t);\n\n\tconst ariaLabel = `${toPlainText(row.label)} — ${toPlainText(column.label)}`;\n\n\tconst content = renderCell ? (\n\t\trenderCell({ row, column, checked, disabled, toggle, selectionKey: key })\n\t) : variant === 'toggle' ? (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel=\"\"\n\t\t\tchecked={checked}\n\t\t\tdisabled={disabled}\n\t\t\taria-label={ariaLabel}\n\t\t\tonChange={toggle}\n\t\t/>\n\t) : (\n\t\t<CheckboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel=\"\"\n\t\t\tchecked={checked}\n\t\t\tdisabled={disabled}\n\t\t\taria-label={ariaLabel}\n\t\t\tonChange={toggle}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<LeafCell data-disabled={disabled || undefined}>\n\t\t\t<CellControlWrap>{content}</CellControlWrap>\n\t\t</LeafCell>\n\t);\n};\n","import { SummaryCell } from './styles';\nimport type { GroupSummaryContext, MatrixLabels } from './types';\n\ninterface MatrixGroupSummaryProps {\n\tctx: GroupSummaryContext;\n\tlabels: Required<MatrixLabels>;\n\trender?: (ctx: GroupSummaryContext) => React.ReactNode;\n}\n\nexport const MatrixGroupSummary = ({ ctx, labels, render }: MatrixGroupSummaryProps) => {\n\tif (render) return <SummaryCell>{render(ctx)}</SummaryCell>;\n\treturn <SummaryCell>{labels.groupSummary(ctx.selectedCount, ctx.totalCount)}</SummaryCell>;\n};\n","import { useCallback } from 'react';\nimport { ToggleControl } from '@wordpress/components';\n\nimport { MatrixCell } from './MatrixCell';\nimport { MatrixGroupSummary } from './MatrixGroupSummary';\nimport {\n\tCellControlWrap,\n\tFillerCell,\n\tMasterCell,\n\tRowHeaderCell,\n\tRowHeaderInner,\n\tRowLabel,\n\tRowMeta,\n\tRowSublabel,\n\tRowHeaderText,\n} from './styles';\nimport { cellKey, toggleCell, toPlainText } from './utils';\nimport type {\n\tCellContext,\n\tGroupSummaryContext,\n\tMatrixChange,\n\tMatrixColumn,\n\tMatrixColumnGroup,\n\tMatrixLabels,\n\tMatrixMasterColumn,\n\tMatrixRow as MatrixRowType,\n\tMatrixVariant,\n} from './types';\n\ninterface MatrixRowProps {\n\trow: MatrixRowType;\n\tgroups: MatrixColumnGroup[];\n\tmaster?: MatrixMasterColumn;\n\tflat: boolean;\n\tvalue: ReadonlySet<string>;\n\texpandedGroups: ReadonlySet<string>;\n\tstickyFirstColumn: boolean;\n\tmasterLeftOffset: string;\n\tvariant: MatrixVariant;\n\tonChange: (next: ReadonlySet<string>, change: MatrixChange) => void;\n\tlabels: Required<MatrixLabels>;\n\trenderCell?: (ctx: CellContext) => React.ReactNode;\n\trenderRowHeader?: (row: MatrixRowType) => React.ReactNode;\n\trenderGroupSummary?: (ctx: GroupSummaryContext) => React.ReactNode;\n}\n\nconst isGroupExpanded = (group: MatrixColumnGroup, expanded: ReadonlySet<string>): boolean =>\n\tgroup.collapsible === false ? true : expanded.has(group.id);\n\nconst countSelected = (\n\tvalue: ReadonlySet<string>,\n\trowId: string,\n\tcols: MatrixColumn[],\n): number => {\n\tlet n = 0;\n\tfor (const c of cols) if (value.has(cellKey(rowId, c.id))) n += 1;\n\treturn n;\n};\n\nexport const MatrixRowView = ({\n\trow,\n\tgroups,\n\tmaster,\n\tflat,\n\tvalue,\n\texpandedGroups,\n\tstickyFirstColumn,\n\tmasterLeftOffset,\n\tvariant,\n\tonChange,\n\tlabels,\n\trenderCell,\n\trenderRowHeader,\n\trenderGroupSummary,\n}: MatrixRowProps) => {\n\tconst masterChecked = master ? value.has(cellKey(row.id, master.id)) : true;\n\tconst masterDisablesRow = master ? master.disablesRow !== false : false;\n\tconst rowDisabled = master ? masterDisablesRow && !masterChecked : false;\n\n\tconst toggleMaster = useCallback(\n\t\t(checked: boolean) => {\n\t\t\tif (!master) return;\n\t\t\tconst next = toggleCell(value, row.id, master.id, checked);\n\t\t\tonChange(next, { rowId: row.id, colId: master.id, checked });\n\t\t},\n\t\t[master, onChange, row.id, value],\n\t);\n\n\treturn (\n\t\t<tr>\n\t\t\t<RowHeaderCell scope=\"row\" $leftSticky={stickyFirstColumn}>\n\t\t\t\t{renderRowHeader ? (\n\t\t\t\t\trenderRowHeader(row)\n\t\t\t\t) : (\n\t\t\t\t\t<RowHeaderInner>\n\t\t\t\t\t\t{row.avatar}\n\t\t\t\t\t\t<RowHeaderText>\n\t\t\t\t\t\t\t<RowLabel>{row.label}</RowLabel>\n\t\t\t\t\t\t\t{row.sublabel && <RowSublabel>{row.sublabel}</RowSublabel>}\n\t\t\t\t\t\t</RowHeaderText>\n\t\t\t\t\t\t{row.meta && <RowMeta>{row.meta}</RowMeta>}\n\t\t\t\t\t</RowHeaderInner>\n\t\t\t\t)}\n\t\t\t</RowHeaderCell>\n\n\t\t\t{master && (\n\t\t\t\t<MasterCell $leftSticky={stickyFirstColumn} $leftOffset={masterLeftOffset}>\n\t\t\t\t\t<CellControlWrap>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel=\"\"\n\t\t\t\t\t\t\tchecked={masterChecked}\n\t\t\t\t\t\t\taria-label={`${toPlainText(master.label)} — ${toPlainText(row.label)}`}\n\t\t\t\t\t\t\tonChange={toggleMaster}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</CellControlWrap>\n\t\t\t\t</MasterCell>\n\t\t\t)}\n\n\t\t\t{flat\n\t\t\t\t? groups[0]!.columns.map((col) => (\n\t\t\t\t\t\t<MatrixCell\n\t\t\t\t\t\t\tkey={col.id}\n\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\tcolumn={col}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\trenderCell={renderCell}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))\n\t\t\t\t: groups.flatMap((group) => {\n\t\t\t\t\t\tconst open = isGroupExpanded(group, expandedGroups);\n\t\t\t\t\t\tif (!open) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t<MatrixGroupSummary\n\t\t\t\t\t\t\t\t\tkey={group.id}\n\t\t\t\t\t\t\t\t\tctx={{\n\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\tgroup,\n\t\t\t\t\t\t\t\t\t\tselectedCount: countSelected(value, row.id, group.columns),\n\t\t\t\t\t\t\t\t\t\ttotalCount: group.columns.length,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tlabels={labels}\n\t\t\t\t\t\t\t\t\trender={renderGroupSummary}\n\t\t\t\t\t\t\t\t/>,\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn group.columns.map((col) => (\n\t\t\t\t\t\t\t<MatrixCell\n\t\t\t\t\t\t\t\tkey={`${group.id}::${col.id}`}\n\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\tcolumn={col}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\trenderCell={renderCell}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t));\n\t\t\t\t\t})}\n\t\t\t<FillerCell aria-hidden />\n\t\t</tr>\n\t);\n};\n","import { useCallback, useMemo, useState, type ReactNode } from 'react';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n/**\n * Emotion cache scoped to the Matrix component.\n *\n * Same pattern as ContentPicker — captures the owning document via a\n * callback ref so styles reach the iframe head when the component is rendered\n * inside the WordPress site editor.\n */\nexport const EmotionCacheProvider = ({ children }: { children: ReactNode }) => {\n\tconst [head, setHead] = useState<HTMLElement | null>(null);\n\n\tconst captureDocument = useCallback((node: HTMLDivElement | null) => {\n\t\tif (!node) return;\n\t\tconst owner = node.ownerDocument ?? document;\n\t\tsetHead((prev) => (prev === owner.head ? prev : (owner.head as HTMLElement)));\n\t}, []);\n\n\tconst cache = useMemo(() => {\n\t\tif (!head) return null;\n\t\treturn createCache({ key: 'valu-mx', container: head, prepend: true });\n\t}, [head]);\n\n\tif (!cache) {\n\t\treturn <div ref={captureDocument} style={{ display: 'contents' }} />;\n\t}\n\n\treturn (\n\t\t<CacheProvider value={cache}>\n\t\t\t<div ref={captureDocument} style={{ display: 'contents' }}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CacheProvider>\n\t);\n};\n","import { useCallback, useState } from 'react';\n\n/**\n * Controlled / uncontrolled expanded-group state.\n *\n * - Pass `expanded` to make it controlled. `onChange` fires on every toggle.\n * - Otherwise pass `defaultExpanded` for the initial state.\n */\nexport interface UseExpandedGroupsOptions {\n\texpanded?: ReadonlySet<string>;\n\tdefaultExpanded?: ReadonlySet<string>;\n\tonChange?: (next: ReadonlySet<string>) => void;\n}\n\nexport interface UseExpandedGroupsResult {\n\texpanded: ReadonlySet<string>;\n\tisExpanded: (groupId: string) => boolean;\n\ttoggle: (groupId: string) => void;\n\texpand: (groupId: string) => void;\n\tcollapse: (groupId: string) => void;\n}\n\nexport const useExpandedGroups = ({\n\texpanded: controlled,\n\tdefaultExpanded,\n\tonChange,\n}: UseExpandedGroupsOptions): UseExpandedGroupsResult => {\n\tconst [uncontrolled, setUncontrolled] = useState<ReadonlySet<string>>(\n\t\t() => defaultExpanded ?? new Set<string>(),\n\t);\n\tconst isControlled = controlled !== undefined;\n\tconst expanded = isControlled ? controlled : uncontrolled;\n\n\tconst apply = useCallback(\n\t\t(next: ReadonlySet<string>) => {\n\t\t\tif (!isControlled) setUncontrolled(next);\n\t\t\tonChange?.(next);\n\t\t},\n\t\t[isControlled, onChange],\n\t);\n\n\tconst isExpanded = useCallback((groupId: string) => expanded.has(groupId), [expanded]);\n\n\tconst toggle = useCallback(\n\t\t(groupId: string) => {\n\t\t\tconst next = new Set(expanded);\n\t\t\tif (next.has(groupId)) next.delete(groupId);\n\t\t\telse next.add(groupId);\n\t\t\tapply(next);\n\t\t},\n\t\t[apply, expanded],\n\t);\n\n\tconst expand = useCallback(\n\t\t(groupId: string) => {\n\t\t\tif (expanded.has(groupId)) return;\n\t\t\tconst next = new Set(expanded);\n\t\t\tnext.add(groupId);\n\t\t\tapply(next);\n\t\t},\n\t\t[apply, expanded],\n\t);\n\n\tconst collapse = useCallback(\n\t\t(groupId: string) => {\n\t\t\tif (!expanded.has(groupId)) return;\n\t\t\tconst next = new Set(expanded);\n\t\t\tnext.delete(groupId);\n\t\t\tapply(next);\n\t\t},\n\t\t[apply, expanded],\n\t);\n\n\treturn { expanded, isExpanded, toggle, expand, collapse };\n};\n","import { useId, useMemo } from 'react';\n\nimport { MatrixHeader } from './MatrixHeader';\nimport { MatrixRowView } from './MatrixRow';\nimport { EmotionCacheProvider } from './styles/emotionCache';\nimport { Caption, Root, Table, Viewport } from './styles';\nimport { useExpandedGroups } from './hooks/useExpandedGroups';\nimport { defaultLabels, normalizeGroups } from './utils';\nimport type { MatrixProps } from './types';\n\nconst DEFAULT_MAX_HEIGHT = 'calc(100vh - 260px)';\n\n/**\n * `<Matrix />` — abstract row × column grid of selectable cells.\n *\n * Rows × columns × cells. Each cell is identified by `${rowId}::${colId}`,\n * and the selection is a flat `Set<string>`. The component is **controlled**:\n * the consumer owns the value and the expanded-group state (or uses the\n * `defaultExpanded` escape hatch for uncontrolled expansion).\n *\n * Pass either `columns` (flat — single header row, no expand/collapse) or\n * `groups` (two header rows, collapsible). Optional sticky `master` column\n * can gate the row.\n *\n * @example flat\n * <Matrix\n * caption=\"Notification preferences\"\n * rows={users}\n * columns={[{ id: 'email', label: 'Email' }, { id: 'push', label: 'Push' }]}\n * value={selection}\n * onChange={setSelection}\n * />\n *\n * @example grouped with master\n * <Matrix\n * caption=\"User permissions\"\n * rows={users}\n * master={{ id: 'enabled', label: 'Enabled' }}\n * groups={categories}\n * value={selection}\n * onChange={setSelection}\n * />\n */\nexport const Matrix = (props: MatrixProps) => {\n\tconst {\n\t\trows,\n\t\tmaster,\n\t\tvalue,\n\t\tonChange,\n\t\texpanded,\n\t\tdefaultExpanded,\n\t\tonExpandedChange,\n\t\tvariant = 'checkbox',\n\t\trenderCell,\n\t\trenderRowHeader,\n\t\trenderGroupSummary,\n\t\trenderHeader,\n\t\tstickyHeader = true,\n\t\tstickyFirstColumn = true,\n\t\trowHeaderWidth = 220,\n\t\tmaxHeight = DEFAULT_MAX_HEIGHT,\n\t\tcaption,\n\t\tlabels,\n\t\tclassName,\n\t\tid,\n\t} = props;\n\n\tconst reactId = useId();\n\tconst rootId = id ?? `valu-mx-${reactId.replace(/:/g, '')}`;\n\n\tconst { groups, flat } = useMemo(\n\t\t() => normalizeGroups({ columns: props.columns, groups: props.groups }),\n\t\t[props.columns, props.groups],\n\t);\n\n\tconst resolvedLabels = useMemo(() => defaultLabels(labels), [labels]);\n\n\tconst { expanded: expandedGroups, toggle: toggleGroup } = useExpandedGroups({\n\t\texpanded,\n\t\tdefaultExpanded,\n\t\tonChange: onExpandedChange,\n\t});\n\n\tconst maxHeightCss = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n\tconst cssLength = (v: number | string) => (typeof v === 'number' ? `${v}px` : v);\n\tconst rowHeaderWidthCss = cssLength(rowHeaderWidth);\n\tconst masterWidthCss = master ? cssLength(master.width ?? 96) : '0';\n\tconst masterLeftOffset = rowHeaderWidthCss;\n\n\treturn (\n\t\t<EmotionCacheProvider>\n\t\t\t<Root id={rootId} className={className}>\n\t\t\t\t<Viewport $maxHeight={maxHeightCss}>\n\t\t\t\t\t<Table>\n\t\t\t\t\t\t{caption && <Caption>{caption}</Caption>}\n\t\t\t\t\t\t{/*\n\t\t\t\t\t\t * Pin the row-header and master column widths so they don't grow\n\t\t\t\t\t\t * when leaf columns are collapsed into group-summary cells. The\n\t\t\t\t\t\t * remaining cols are left without explicit widths so leftover\n\t\t\t\t\t\t * space distributes among them.\n\t\t\t\t\t\t */}\n\t\t\t\t\t\t<colgroup>\n\t\t\t\t\t\t\t<col style={{ width: rowHeaderWidthCss }} />\n\t\t\t\t\t\t\t{master && <col style={{ width: masterWidthCss }} />}\n\t\t\t\t\t\t</colgroup>\n\t\t\t\t\t\t<MatrixHeader\n\t\t\t\t\t\t\tgroups={groups}\n\t\t\t\t\t\t\tmaster={master}\n\t\t\t\t\t\t\tflat={flat}\n\t\t\t\t\t\t\tstickyHeader={stickyHeader}\n\t\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\t\tmasterLeftOffset={masterLeftOffset}\n\t\t\t\t\t\t\texpandedGroups={expandedGroups}\n\t\t\t\t\t\t\tonToggleGroup={toggleGroup}\n\t\t\t\t\t\t\tlabels={resolvedLabels}\n\t\t\t\t\t\t\trenderHeader={renderHeader}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t\t\t\t<MatrixRowView\n\t\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\t\tgroups={groups}\n\t\t\t\t\t\t\t\t\tmaster={master}\n\t\t\t\t\t\t\t\t\tflat={flat}\n\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\texpandedGroups={expandedGroups}\n\t\t\t\t\t\t\t\t\tstickyFirstColumn={stickyFirstColumn}\n\t\t\t\t\t\t\t\t\tmasterLeftOffset={masterLeftOffset}\n\t\t\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t\tlabels={resolvedLabels}\n\t\t\t\t\t\t\t\t\trenderCell={renderCell}\n\t\t\t\t\t\t\t\t\trenderRowHeader={renderRowHeader}\n\t\t\t\t\t\t\t\t\trenderGroupSummary={renderGroupSummary}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</Table>\n\t\t\t\t</Viewport>\n\t\t\t</Root>\n\t\t</EmotionCacheProvider>\n\t);\n};\n"]}