@sanity/table 3.1.0 → 3.1.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.
package/dist/index.js CHANGED
@@ -58,7 +58,7 @@ const TableInput = (props) => {
58
58
  setDialog({
59
59
  type: "rows",
60
60
  callback: (c2) => props.addRows(c2)
61
- });
61
+ }), setCount("");
62
62
  }, $[1] = props, $[2] = t1) : t1 = $[2];
63
63
  const addRows = t1;
64
64
  let t2;
@@ -66,7 +66,7 @@ const TableInput = (props) => {
66
66
  setDialog({
67
67
  type: "rows",
68
68
  callback: (index) => props.addRowAt(index)
69
- });
69
+ }), setCount("");
70
70
  }, $[3] = props, $[4] = t2) : t2 = $[4];
71
71
  const addRowAt = t2;
72
72
  let t3;
@@ -74,7 +74,7 @@ const TableInput = (props) => {
74
74
  setDialog({
75
75
  type: "columns",
76
76
  callback: (c_0) => props.addColumns(c_0)
77
- });
77
+ }), setCount("");
78
78
  }, $[5] = props, $[6] = t3) : t3 = $[6];
79
79
  const addColumns = t3;
80
80
  let t4;
@@ -82,24 +82,28 @@ const TableInput = (props) => {
82
82
  setDialog({
83
83
  type: "columns",
84
84
  callback: (index_0) => props.addColumnAt(index_0)
85
- });
85
+ }), setCount("");
86
86
  }, $[7] = props, $[8] = t4) : t4 = $[8];
87
87
  const addColumnsAt = t4;
88
88
  let t5;
89
89
  $[9] !== count || $[10] !== dialog ? (t5 = () => {
90
- const parsedCount = parseInt(count ?? "0", 10);
91
- parsedCount < 100 && (setDialog(null), dialog?.callback(parsedCount), setCount(void 0));
90
+ const parsedCount = parseInt(count || "0", 10);
91
+ parsedCount < 100 && (setDialog(null), dialog?.callback(parsedCount), setCount(""));
92
92
  }, $[9] = count, $[10] = dialog, $[11] = t5) : t5 = $[11];
93
93
  const onConfirm = t5;
94
94
  let t6;
95
- $[12] !== count || $[13] !== dialog || $[14] !== onConfirm ? (t6 = dialog && /* @__PURE__ */ jsx(Dialog, { header: `Add ${dialog.type}`, id: "dialog-add", onClose: () => setDialog(null), zOffset: 1e3, children: /* @__PURE__ */ jsxs(Card, { padding: 4, children: [
95
+ $[12] !== count || $[13] !== dialog || $[14] !== onConfirm ? (t6 = dialog && /* @__PURE__ */ jsx(Dialog, { header: `Add ${dialog.type}`, id: "dialog-add", onClose: () => {
96
+ setDialog(null), setCount("");
97
+ }, zOffset: 1e3, children: /* @__PURE__ */ jsxs(Card, { padding: 4, children: [
96
98
  /* @__PURE__ */ jsx(TextInput, { style: {
97
99
  textAlign: "left"
98
100
  }, fontSize: 2, padding: 3, type: "number", value: count, onChange: updateCount }),
99
101
  /* @__PURE__ */ jsx(Box, { marginTop: 4, children: /* @__PURE__ */ jsxs(Inline, { gap: 1, style: {
100
102
  textAlign: "right"
101
103
  }, children: [
102
- /* @__PURE__ */ jsx(Button, { text: "Cancel", mode: "ghost", onClick: () => setDialog(null) }),
104
+ /* @__PURE__ */ jsx(Button, { text: "Cancel", mode: "ghost", onClick: () => {
105
+ setDialog(null), setCount("");
106
+ } }),
103
107
  /* @__PURE__ */ jsx(Button, { text: "Confirm", tone: "critical", onClick: onConfirm })
104
108
  ] }) })
105
109
  ] }) }), $[12] = count, $[13] = dialog, $[14] = onConfirm, $[15] = t6) : t6 = $[15];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/TableInput.tsx","../src/components/TableMenu.tsx","../src/components/TableComponent.tsx","../src/components/TableIcon.tsx","../src/components/TablePreview.tsx","../src/index.ts"],"sourcesContent":["import {RemoveIcon} from '@sanity/icons'\nimport {Box, Button, TextInput} from '@sanity/ui'\nimport type {ChangeEvent} from 'react'\n\nimport type {TableRow} from './TableComponent'\n\ninterface TableInputProps {\n rows: TableRow[]\n updateCell: (e: ChangeEvent<HTMLInputElement>, rowIndex: number, cellIndex: number) => void\n removeRow: (index: number) => void\n removeColumn: (index: number) => void\n}\n\nexport const TableInput = (props: TableInputProps) => {\n const {rows, updateCell, removeRow, removeColumn} = props\n\n return (\n <table style={{width: '100%'}}>\n <tbody>\n {rows.map((row, rowIndex) => (\n <tr key={row._key}>\n {row.cells.map((cell, cellIndex) => (\n // Cells are plain strings; the cell position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <td key={`${row._key}-${cellIndex}`}>\n <TextInput\n fontSize={1}\n padding={3}\n value={cell}\n onChange={(e) => updateCell(e, rowIndex, cellIndex)}\n />\n </td>\n ))}\n <td key={`${row._key}-remove`}>\n <Box marginLeft={1} style={{textAlign: 'center'}}>\n <Button\n icon={RemoveIcon}\n padding={2}\n onClick={() => removeRow(rowIndex)}\n mode=\"bleed\"\n />\n </Box>\n </td>\n </tr>\n ))}\n <tr>\n {(rows[0]?.cells || []).map((_, i) => (\n // Cells are plain strings; the column position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <td key={i}>\n <Box marginTop={1} style={{textAlign: 'center'}}>\n <Button\n icon={RemoveIcon}\n padding={2}\n onClick={() => removeColumn(i)}\n mode=\"bleed\"\n />\n </Box>\n </td>\n ))}\n </tr>\n </tbody>\n </table>\n )\n}\n","import {AddIcon, ControlsIcon, WarningOutlineIcon} from '@sanity/icons'\nimport {\n Box,\n Button,\n Card,\n Dialog,\n Inline,\n Menu,\n MenuButton,\n MenuDivider,\n MenuItem,\n type Placement,\n TextInput,\n} from '@sanity/ui'\nimport {type ChangeEventHandler, useState} from 'react'\n\ninterface TableMenuProps {\n addColumns: (count: number) => void\n addColumnAt: (index: number) => void\n addRows: (count: number) => void\n addRowAt: (index: number) => void\n remove: () => void\n placement: Placement\n}\n\nexport const TableMenu = (props: TableMenuProps) => {\n const {remove: handleRemove} = props\n const [dialog, setDialog] = useState<{\n type: string\n callback: (count: number) => void\n } | null>(null)\n\n const [count, setCount] = useState<string | undefined>('')\n\n const updateCount: ChangeEventHandler<HTMLInputElement> = (e) => {\n setCount(e.currentTarget.value)\n }\n\n const addRows = () => {\n setDialog({type: 'rows', callback: (c) => props.addRows(c)})\n }\n\n const addRowAt = () => {\n setDialog({type: 'rows', callback: (index) => props.addRowAt(index)})\n }\n\n const addColumns = () => {\n setDialog({\n type: 'columns',\n callback: (c) => props.addColumns(c),\n })\n }\n\n const addColumnsAt = () => {\n setDialog({type: 'columns', callback: (index) => props.addColumnAt(index)})\n }\n\n const onConfirm = () => {\n const parsedCount = parseInt(count ?? '0', 10)\n\n if (parsedCount < 100) {\n setDialog(null)\n dialog?.callback(parsedCount)\n setCount(undefined)\n }\n }\n\n return (\n <>\n {dialog && (\n <Dialog\n header={`Add ${dialog.type}`}\n id=\"dialog-add\"\n onClose={() => setDialog(null)}\n zOffset={1000}\n >\n <Card padding={4}>\n <TextInput\n style={{textAlign: 'left'}}\n fontSize={2}\n padding={3}\n type=\"number\"\n value={count}\n onChange={updateCount}\n />\n <Box marginTop={4}>\n <Inline gap={1} style={{textAlign: 'right'}}>\n <Button text=\"Cancel\" mode=\"ghost\" onClick={() => setDialog(null)} />\n <Button text=\"Confirm\" tone=\"critical\" onClick={onConfirm} />\n </Inline>\n </Box>\n </Card>\n </Dialog>\n )}\n <MenuButton\n button={<Button icon={ControlsIcon} fontSize={1} padding={2} mode=\"ghost\" />}\n id=\"menu-button-example\"\n menu={\n <Menu>\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Row(s)\" onClick={addRows} />\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Row At Index\" onClick={addRowAt} />\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Column(s)\" onClick={addColumns} />\n <MenuItem\n icon={AddIcon}\n fontSize={1}\n text=\"Add Column At Index\"\n onClick={addColumnsAt}\n />\n <MenuDivider />\n <MenuItem\n icon={WarningOutlineIcon}\n fontSize={1}\n text=\"Remove\"\n tone=\"critical\"\n onClick={handleRemove}\n />\n </Menu>\n }\n popover={{placement: props.placement}}\n />\n </>\n )\n}\n","import {AddIcon} from '@sanity/icons'\nimport {Box, Button, Card, Dialog, Flex, Inline, Text} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {type ChangeEvent, useState} from 'react'\nimport {type ObjectInputProps, set, unset} from 'sanity'\n\nimport {TableInput} from './TableInput'\nimport {TableMenu} from './TableMenu'\n\nconst deepClone: <T>(data: T) => T =\n globalThis.structuredClone ?? ((data) => JSON.parse(JSON.stringify(data)))\n\nexport interface TableValue {\n _type?: 'table'\n rows?: TableRow[]\n}\n\nexport type TableProps = ObjectInputProps<TableValue>\n\nexport type TableRow = {\n _type: string\n _key: string\n cells: string[]\n}\n\n// TODO refactor deeplone stuff to use proper patches\n// TODO use callback all the things\n\nexport const TableComponent = (props: TableProps & {rowType?: string}) => {\n const {rowType = 'tableRow', value, onChange} = props\n const [dialog, setDialog] = useState<{\n type: string\n callback: () => void\n } | null>(null)\n\n const updateValue = (v?: Omit<TableValue, '_type'>) => {\n return onChange(set(v))\n }\n\n const resetValue = () => {\n return onChange(unset())\n }\n\n const createTable = () => {\n const newValue: Omit<TableValue, '_type'> = {\n rows: [\n {\n _type: rowType,\n _key: uuid(),\n cells: ['', ''],\n },\n {\n _type: rowType,\n _key: uuid(),\n cells: ['', ''],\n },\n ],\n }\n return updateValue({...value, ...newValue})\n }\n\n const confirmRemoveTable = () => {\n setDialog({type: 'table', callback: removeTable})\n }\n\n const removeTable = () => {\n resetValue()\n setDialog(null)\n }\n\n const addRows = (count = 1) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Calculate the column count from the first row\n const columnCount = value.rows[0]?.cells.length ?? 0\n for (let i = 0; i < count; i++) {\n // Add as many cells as we have columns\n newRows.push({\n _type: rowType,\n _key: uuid(),\n cells: Array(columnCount).fill(''),\n })\n }\n return updateValue({...value, rows: newRows})\n }\n\n const addRowAt = (index = 0) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Calculate the column count from the first row\n const columnCount = value.rows[0]?.cells.length ?? 0\n\n newRows.splice(index, 0, {\n _type: rowType,\n _key: uuid(),\n cells: Array(columnCount).fill(''),\n })\n\n return updateValue({...value, rows: newRows})\n }\n\n const removeRow = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n newRows.splice(index, 1)\n updateValue({...value, rows: newRows})\n setDialog(null)\n }\n\n const confirmRemoveRow = (index: number) => {\n if (!value?.rows) {\n return\n }\n if (value.rows.length <= 1) return confirmRemoveTable()\n return setDialog({type: 'row', callback: () => removeRow(index)})\n }\n\n const confirmRemoveColumn = (index: number) => {\n if (!value?.rows) {\n return\n }\n if ((value.rows[0]?.cells.length ?? 0) <= 1) return confirmRemoveTable()\n return setDialog({type: 'column', callback: () => removeColumn(index)})\n }\n\n const addColumns = (count: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Add a cell to each of the rows\n newRows.forEach((row) => {\n for (let j = 0; j < count; j++) {\n row.cells.push('')\n }\n })\n return updateValue({...value, rows: newRows})\n }\n\n const addColumnAt = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n\n newRows.forEach((row) => {\n row.cells.splice(index, 0, '')\n })\n\n return updateValue({...value, rows: newRows})\n }\n\n const removeColumn = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n newRows.forEach((row) => {\n row.cells.splice(index, 1)\n })\n updateValue({...value, rows: newRows})\n setDialog(null)\n }\n\n const updateCell = (e: ChangeEvent<HTMLInputElement>, rowIndex: number, cellIndex: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n const row = newRows[rowIndex]\n if (!row) {\n return\n }\n row.cells[cellIndex] = e.currentTarget.value\n return updateValue({...value, rows: newRows})\n }\n\n return (\n <div>\n {dialog && (\n <Dialog\n header={`Remove ${dialog.type}`}\n id=\"dialog-remove\"\n onClose={() => setDialog(null)}\n zOffset={1000}\n >\n <Card padding={4}>\n <Text>Are you sure you want to remove this {dialog.type}?</Text>\n <Box marginTop={4}>\n <Inline gap={1} style={{textAlign: 'right'}}>\n <Button text=\"Cancel\" mode=\"ghost\" onClick={() => setDialog(null)} />\n <Button text=\"Confirm\" tone=\"critical\" onClick={() => dialog.callback()} />\n </Inline>\n </Box>\n </Card>\n </Dialog>\n )}\n <Box>\n <Flex justify=\"flex-end\">\n {value?.rows?.length ? (\n <Inline gap={1}>\n <Button\n fontSize={1}\n padding={2}\n icon={AddIcon}\n text=\"Add row\"\n mode=\"ghost\"\n onClick={() => addRows(1)}\n />\n <Button\n fontSize={1}\n padding={2}\n icon={AddIcon}\n text=\"Add column\"\n mode=\"ghost\"\n onClick={() => addColumns(1)}\n />\n <TableMenu\n addColumns={addColumns}\n addColumnAt={addColumnAt}\n addRows={addRows}\n addRowAt={addRowAt}\n remove={confirmRemoveTable}\n placement=\"left\"\n />\n </Inline>\n ) : null}\n </Flex>\n </Box>\n {value?.rows?.length ? (\n <TableInput\n rows={value.rows}\n removeRow={confirmRemoveRow}\n removeColumn={confirmRemoveColumn}\n updateCell={updateCell}\n />\n ) : null}\n {!value || !value?.rows?.length ? (\n <Inline gap={1}>\n <Button\n fontSize={1}\n padding={3}\n icon={AddIcon}\n text=\"Create Table\"\n tone=\"primary\"\n mode=\"ghost\"\n onClick={createTable}\n />\n </Inline>\n ) : null}\n </div>\n )\n}\n\nexport function createTableComponent(rowType: string) {\n return function Table(props: TableProps) {\n return <TableComponent {...props} rowType={rowType} />\n }\n}\n","export function TableIcon() {\n return (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n >\n <path d=\"M3 3h18v18H3zM21 9H3M21 15H3M12 3v18\" />\n </svg>\n )\n}\n","import {Box, Card, Grid, Inline, Label, Text} from '@sanity/ui'\nimport type {PreviewProps} from 'sanity'\n\nimport type {TableRow} from './TableComponent'\nimport {TableIcon} from './TableIcon'\n\ninterface TablePreviewProps extends PreviewProps {\n rows?: TableRow[]\n}\n\nconst Table = ({rows}: {rows: TableRow[]}) => {\n const numCols = rows[0]?.cells.length ?? 0\n\n return (\n <Grid gridTemplateColumns={numCols} padding={2}>\n {rows.map((row) =>\n row.cells.map((cell, i) => (\n // Cells are plain strings; the cell position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <Card key={row._key + i} padding={2} style={{outline: '1px solid #DFE2E9'}}>\n <Text style={{textOverflow: 'elipsis'}}>{cell}</Text>\n </Card>\n )),\n )}\n </Grid>\n )\n}\n\nexport const TablePreview = (props: TablePreviewProps) => {\n const {schemaType, rows = [], title} = props\n const previewTitle = schemaType?.title ?? (typeof title === 'string' ? title : 'Title missing')\n\n return (\n <>\n <Box padding={3}>\n <Inline gap={3}>\n <Card>\n <Label size={4}>\n <TableIcon />\n </Label>\n </Card>\n <Card>\n <Text>{previewTitle}</Text>\n </Card>\n </Inline>\n </Box>\n <Box padding={2}>\n {rows.length === 0 ? <Label muted>Empty Table</Label> : <Table rows={rows} />}\n </Box>\n </>\n )\n}\n","import {definePlugin, defineType} from 'sanity'\n\nimport {createTableComponent, TableComponent} from './components/TableComponent'\nimport {TablePreview} from './components/TablePreview'\nexport type {TableProps, TableRow, TableValue} from './components/TableComponent'\n\nexport {TableComponent, TablePreview}\n\nexport interface TableConfig {\n rowType?: string\n}\n\nexport const table = definePlugin<TableConfig | void>((config) => {\n const tableRowSchema = defineType({\n title: 'Table Row',\n name: config?.rowType || 'tableRow',\n type: 'object',\n fields: [\n {\n name: 'cells',\n type: 'array',\n of: [{type: 'string'}],\n },\n ],\n })\n\n const tableSchema = defineType({\n title: 'Table',\n name: 'table',\n type: 'object',\n fields: [\n {\n name: 'rows',\n type: 'array',\n of: [\n {\n type: tableRowSchema.name,\n },\n ],\n },\n ],\n components: {\n input: createTableComponent(tableRowSchema.name),\n preview: TablePreview,\n },\n preview: {\n select: {\n rows: 'rows',\n title: 'title',\n },\n prepare: ({title, rows = []}) => ({\n title,\n rows,\n }),\n },\n })\n\n return {\n name: 'table',\n schema: {\n types: [tableRowSchema, tableSchema],\n },\n }\n})\n"],"names":["TableInput","props","$","_c","rows","updateCell","removeRow","removeColumn","t0","for","width","t1","t2","row","rowIndex","cells","map","cell","cellIndex","e","_key","textAlign","RemoveIcon","t3","t4","_","i","t5","TableMenu","remove","handleRemove","dialog","setDialog","useState","count","setCount","Symbol","currentTarget","value","updateCount","type","callback","c","addRows","index","addRowAt","c_0","addColumns","index_0","addColumnAt","addColumnsAt","parsedCount","parseInt","undefined","onConfirm","t6","t7","ControlsIcon","t8","AddIcon","t9","t10","t11","t12","t13","WarningOutlineIcon","t14","t15","placement","t16","t17","deepClone","globalThis","structuredClone","data","JSON","parse","stringify","TableComponent","rowType","onChange","v","set","updateValue","unset","resetValue","newValue","_type","uuid","createTable","confirmRemoveTable","removeTable","newRows","columnCount","length","push","Array","fill","newRows_0","columnCount_0","splice","newRows_1","index_1","confirmRemoveRow","confirmRemoveColumn","index_2","count_0","newRows_2","forEach","j","index_3","newRows_3","row_0","index_4","newRows_4","row_1","newRows_5","row_2","createTableComponent","TableIcon","Table","numCols","_temp","TablePreview","schemaType","title","previewTitle","outline","textOverflow","table","definePlugin","config","tableRowSchema","defineType","name","fields","of","tableSchema","components","input","preview","select","prepare","schema","types"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/TableInput.tsx","../src/components/TableMenu.tsx","../src/components/TableComponent.tsx","../src/components/TableIcon.tsx","../src/components/TablePreview.tsx","../src/index.ts"],"sourcesContent":["import {RemoveIcon} from '@sanity/icons'\nimport {Box, Button, TextInput} from '@sanity/ui'\nimport type {ChangeEvent} from 'react'\n\nimport type {TableRow} from './TableComponent'\n\ninterface TableInputProps {\n rows: TableRow[]\n updateCell: (e: ChangeEvent<HTMLInputElement>, rowIndex: number, cellIndex: number) => void\n removeRow: (index: number) => void\n removeColumn: (index: number) => void\n}\n\nexport const TableInput = (props: TableInputProps) => {\n const {rows, updateCell, removeRow, removeColumn} = props\n\n return (\n <table style={{width: '100%'}}>\n <tbody>\n {rows.map((row, rowIndex) => (\n <tr key={row._key}>\n {row.cells.map((cell, cellIndex) => (\n // Cells are plain strings; the cell position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <td key={`${row._key}-${cellIndex}`}>\n <TextInput\n fontSize={1}\n padding={3}\n value={cell}\n onChange={(e) => updateCell(e, rowIndex, cellIndex)}\n />\n </td>\n ))}\n <td key={`${row._key}-remove`}>\n <Box marginLeft={1} style={{textAlign: 'center'}}>\n <Button\n icon={RemoveIcon}\n padding={2}\n onClick={() => removeRow(rowIndex)}\n mode=\"bleed\"\n />\n </Box>\n </td>\n </tr>\n ))}\n <tr>\n {(rows[0]?.cells || []).map((_, i) => (\n // Cells are plain strings; the column position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <td key={i}>\n <Box marginTop={1} style={{textAlign: 'center'}}>\n <Button\n icon={RemoveIcon}\n padding={2}\n onClick={() => removeColumn(i)}\n mode=\"bleed\"\n />\n </Box>\n </td>\n ))}\n </tr>\n </tbody>\n </table>\n )\n}\n","import {AddIcon, ControlsIcon, WarningOutlineIcon} from '@sanity/icons'\nimport {\n Box,\n Button,\n Card,\n Dialog,\n Inline,\n Menu,\n MenuButton,\n MenuDivider,\n MenuItem,\n type Placement,\n TextInput,\n} from '@sanity/ui'\nimport {type ChangeEventHandler, useState} from 'react'\n\ninterface TableMenuProps {\n addColumns: (count: number) => void\n addColumnAt: (index: number) => void\n addRows: (count: number) => void\n addRowAt: (index: number) => void\n remove: () => void\n placement: Placement\n}\n\nexport const TableMenu = (props: TableMenuProps): React.JSX.Element => {\n const {remove: handleRemove} = props\n const [dialog, setDialog] = useState<{\n type: string\n callback: (count: number) => void\n } | null>(null)\n\n // Keep `count` always a string so the TextInput is controlled for the component lifetime.\n const [count, setCount] = useState<string>('')\n\n const updateCount: ChangeEventHandler<HTMLInputElement> = (e) => {\n setCount(e.currentTarget.value)\n }\n\n const addRows = () => {\n setDialog({type: 'rows', callback: (c) => props.addRows(c)})\n setCount('') // ensure input starts controlled when dialog opens\n }\n\n const addRowAt = () => {\n setDialog({type: 'rows', callback: (index) => props.addRowAt(index)})\n setCount('')\n }\n\n const addColumns = () => {\n setDialog({\n type: 'columns',\n callback: (c) => props.addColumns(c),\n })\n setCount('')\n }\n\n const addColumnsAt = () => {\n setDialog({type: 'columns', callback: (index) => props.addColumnAt(index)})\n setCount('')\n }\n\n const onConfirm = () => {\n const parsedCount = parseInt(count || '0', 10)\n\n if (parsedCount < 100) {\n setDialog(null)\n dialog?.callback(parsedCount)\n setCount('')\n }\n }\n\n return (\n <>\n {dialog && (\n <Dialog\n header={`Add ${dialog.type}`}\n id=\"dialog-add\"\n onClose={() => {\n setDialog(null)\n setCount('')\n }}\n zOffset={1000}\n >\n <Card padding={4}>\n <TextInput\n style={{textAlign: 'left'}}\n fontSize={2}\n padding={3}\n type=\"number\"\n value={count}\n onChange={updateCount}\n />\n <Box marginTop={4}>\n <Inline gap={1} style={{textAlign: 'right'}}>\n <Button\n text=\"Cancel\"\n mode=\"ghost\"\n onClick={() => {\n setDialog(null)\n setCount('')\n }}\n />\n <Button text=\"Confirm\" tone=\"critical\" onClick={onConfirm} />\n </Inline>\n </Box>\n </Card>\n </Dialog>\n )}\n <MenuButton\n button={<Button icon={ControlsIcon} fontSize={1} padding={2} mode=\"ghost\" />}\n id=\"menu-button-example\"\n menu={\n <Menu>\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Row(s)\" onClick={addRows} />\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Row At Index\" onClick={addRowAt} />\n <MenuItem icon={AddIcon} fontSize={1} text=\"Add Column(s)\" onClick={addColumns} />\n <MenuItem\n icon={AddIcon}\n fontSize={1}\n text=\"Add Column At Index\"\n onClick={addColumnsAt}\n />\n <MenuDivider />\n <MenuItem\n icon={WarningOutlineIcon}\n fontSize={1}\n text=\"Remove\"\n tone=\"critical\"\n onClick={handleRemove}\n />\n </Menu>\n }\n popover={{placement: props.placement}}\n />\n </>\n )\n}\n","import {AddIcon} from '@sanity/icons'\nimport {Box, Button, Card, Dialog, Flex, Inline, Text} from '@sanity/ui'\nimport {uuid} from '@sanity/uuid'\nimport {type ChangeEvent, useState} from 'react'\nimport {type ObjectInputProps, set, unset} from 'sanity'\n\nimport {TableInput} from './TableInput'\nimport {TableMenu} from './TableMenu'\n\nconst deepClone: <T>(data: T) => T =\n globalThis.structuredClone ?? ((data) => JSON.parse(JSON.stringify(data)))\n\nexport interface TableValue {\n _type?: 'table'\n rows?: TableRow[]\n}\n\nexport type TableProps = ObjectInputProps<TableValue>\n\nexport type TableRow = {\n _type: string\n _key: string\n cells: string[]\n}\n\n// TODO refactor deeplone stuff to use proper patches\n// TODO use callback all the things\n\nexport const TableComponent = (props: TableProps & {rowType?: string}) => {\n const {rowType = 'tableRow', value, onChange} = props\n const [dialog, setDialog] = useState<{\n type: string\n callback: () => void\n } | null>(null)\n\n const updateValue = (v?: Omit<TableValue, '_type'>) => {\n return onChange(set(v))\n }\n\n const resetValue = () => {\n return onChange(unset())\n }\n\n const createTable = () => {\n const newValue: Omit<TableValue, '_type'> = {\n rows: [\n {\n _type: rowType,\n _key: uuid(),\n cells: ['', ''],\n },\n {\n _type: rowType,\n _key: uuid(),\n cells: ['', ''],\n },\n ],\n }\n return updateValue({...value, ...newValue})\n }\n\n const confirmRemoveTable = () => {\n setDialog({type: 'table', callback: removeTable})\n }\n\n const removeTable = () => {\n resetValue()\n setDialog(null)\n }\n\n const addRows = (count = 1) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Calculate the column count from the first row\n const columnCount = value.rows[0]?.cells.length ?? 0\n for (let i = 0; i < count; i++) {\n // Add as many cells as we have columns\n newRows.push({\n _type: rowType,\n _key: uuid(),\n cells: Array(columnCount).fill(''),\n })\n }\n return updateValue({...value, rows: newRows})\n }\n\n const addRowAt = (index = 0) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Calculate the column count from the first row\n const columnCount = value.rows[0]?.cells.length ?? 0\n\n newRows.splice(index, 0, {\n _type: rowType,\n _key: uuid(),\n cells: Array(columnCount).fill(''),\n })\n\n return updateValue({...value, rows: newRows})\n }\n\n const removeRow = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n newRows.splice(index, 1)\n updateValue({...value, rows: newRows})\n setDialog(null)\n }\n\n const confirmRemoveRow = (index: number) => {\n if (!value?.rows) {\n return\n }\n if (value.rows.length <= 1) return confirmRemoveTable()\n return setDialog({type: 'row', callback: () => removeRow(index)})\n }\n\n const confirmRemoveColumn = (index: number) => {\n if (!value?.rows) {\n return\n }\n if ((value.rows[0]?.cells.length ?? 0) <= 1) return confirmRemoveTable()\n return setDialog({type: 'column', callback: () => removeColumn(index)})\n }\n\n const addColumns = (count: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n // Add a cell to each of the rows\n newRows.forEach((row) => {\n for (let j = 0; j < count; j++) {\n row.cells.push('')\n }\n })\n return updateValue({...value, rows: newRows})\n }\n\n const addColumnAt = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n\n newRows.forEach((row) => {\n row.cells.splice(index, 0, '')\n })\n\n return updateValue({...value, rows: newRows})\n }\n\n const removeColumn = (index: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n newRows.forEach((row) => {\n row.cells.splice(index, 1)\n })\n updateValue({...value, rows: newRows})\n setDialog(null)\n }\n\n const updateCell = (e: ChangeEvent<HTMLInputElement>, rowIndex: number, cellIndex: number) => {\n if (!value?.rows) {\n return\n }\n const newRows = deepClone(value.rows)\n const row = newRows[rowIndex]\n if (!row) {\n return\n }\n row.cells[cellIndex] = e.currentTarget.value\n return updateValue({...value, rows: newRows})\n }\n\n return (\n <div>\n {dialog && (\n <Dialog\n header={`Remove ${dialog.type}`}\n id=\"dialog-remove\"\n onClose={() => setDialog(null)}\n zOffset={1000}\n >\n <Card padding={4}>\n <Text>Are you sure you want to remove this {dialog.type}?</Text>\n <Box marginTop={4}>\n <Inline gap={1} style={{textAlign: 'right'}}>\n <Button text=\"Cancel\" mode=\"ghost\" onClick={() => setDialog(null)} />\n <Button text=\"Confirm\" tone=\"critical\" onClick={() => dialog.callback()} />\n </Inline>\n </Box>\n </Card>\n </Dialog>\n )}\n <Box>\n <Flex justify=\"flex-end\">\n {value?.rows?.length ? (\n <Inline gap={1}>\n <Button\n fontSize={1}\n padding={2}\n icon={AddIcon}\n text=\"Add row\"\n mode=\"ghost\"\n onClick={() => addRows(1)}\n />\n <Button\n fontSize={1}\n padding={2}\n icon={AddIcon}\n text=\"Add column\"\n mode=\"ghost\"\n onClick={() => addColumns(1)}\n />\n <TableMenu\n addColumns={addColumns}\n addColumnAt={addColumnAt}\n addRows={addRows}\n addRowAt={addRowAt}\n remove={confirmRemoveTable}\n placement=\"left\"\n />\n </Inline>\n ) : null}\n </Flex>\n </Box>\n {value?.rows?.length ? (\n <TableInput\n rows={value.rows}\n removeRow={confirmRemoveRow}\n removeColumn={confirmRemoveColumn}\n updateCell={updateCell}\n />\n ) : null}\n {!value || !value?.rows?.length ? (\n <Inline gap={1}>\n <Button\n fontSize={1}\n padding={3}\n icon={AddIcon}\n text=\"Create Table\"\n tone=\"primary\"\n mode=\"ghost\"\n onClick={createTable}\n />\n </Inline>\n ) : null}\n </div>\n )\n}\n\nexport function createTableComponent(rowType: string) {\n return function Table(props: TableProps) {\n return <TableComponent {...props} rowType={rowType} />\n }\n}\n","export function TableIcon() {\n return (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n >\n <path d=\"M3 3h18v18H3zM21 9H3M21 15H3M12 3v18\" />\n </svg>\n )\n}\n","import {Box, Card, Grid, Inline, Label, Text} from '@sanity/ui'\nimport type {PreviewProps} from 'sanity'\n\nimport type {TableRow} from './TableComponent'\nimport {TableIcon} from './TableIcon'\n\ninterface TablePreviewProps extends PreviewProps {\n rows?: TableRow[]\n}\n\nconst Table = ({rows}: {rows: TableRow[]}) => {\n const numCols = rows[0]?.cells.length ?? 0\n\n return (\n <Grid gridTemplateColumns={numCols} padding={2}>\n {rows.map((row) =>\n row.cells.map((cell, i) => (\n // Cells are plain strings; the cell position is the only stable identity\n // eslint-disable-next-line react/no-array-index-key\n <Card key={row._key + i} padding={2} style={{outline: '1px solid #DFE2E9'}}>\n <Text style={{textOverflow: 'elipsis'}}>{cell}</Text>\n </Card>\n )),\n )}\n </Grid>\n )\n}\n\nexport const TablePreview = (props: TablePreviewProps) => {\n const {schemaType, rows = [], title} = props\n const previewTitle = schemaType?.title ?? (typeof title === 'string' ? title : 'Title missing')\n\n return (\n <>\n <Box padding={3}>\n <Inline gap={3}>\n <Card>\n <Label size={4}>\n <TableIcon />\n </Label>\n </Card>\n <Card>\n <Text>{previewTitle}</Text>\n </Card>\n </Inline>\n </Box>\n <Box padding={2}>\n {rows.length === 0 ? <Label muted>Empty Table</Label> : <Table rows={rows} />}\n </Box>\n </>\n )\n}\n","import {definePlugin, defineType} from 'sanity'\n\nimport {createTableComponent, TableComponent} from './components/TableComponent'\nimport {TablePreview} from './components/TablePreview'\nexport type {TableProps, TableRow, TableValue} from './components/TableComponent'\n\nexport {TableComponent, TablePreview}\n\nexport interface TableConfig {\n rowType?: string\n}\n\nexport const table = definePlugin<TableConfig | void>((config) => {\n const tableRowSchema = defineType({\n title: 'Table Row',\n name: config?.rowType || 'tableRow',\n type: 'object',\n fields: [\n {\n name: 'cells',\n type: 'array',\n of: [{type: 'string'}],\n },\n ],\n })\n\n const tableSchema = defineType({\n title: 'Table',\n name: 'table',\n type: 'object',\n fields: [\n {\n name: 'rows',\n type: 'array',\n of: [\n {\n type: tableRowSchema.name,\n },\n ],\n },\n ],\n components: {\n input: createTableComponent(tableRowSchema.name),\n preview: TablePreview,\n },\n preview: {\n select: {\n rows: 'rows',\n title: 'title',\n },\n prepare: ({title, rows = []}) => ({\n title,\n rows,\n }),\n },\n })\n\n return {\n name: 'table',\n schema: {\n types: [tableRowSchema, tableSchema],\n },\n }\n})\n"],"names":["TableInput","props","$","_c","rows","updateCell","removeRow","removeColumn","t0","for","width","t1","t2","row","rowIndex","cells","map","cell","cellIndex","e","_key","textAlign","RemoveIcon","t3","t4","_","i","t5","TableMenu","remove","handleRemove","dialog","setDialog","useState","count","setCount","Symbol","currentTarget","value","updateCount","type","callback","c","addRows","index","addRowAt","c_0","addColumns","index_0","addColumnAt","addColumnsAt","parsedCount","parseInt","onConfirm","t6","t7","ControlsIcon","t8","AddIcon","t9","t10","t11","t12","t13","WarningOutlineIcon","t14","t15","placement","t16","t17","deepClone","globalThis","structuredClone","data","JSON","parse","stringify","TableComponent","rowType","onChange","undefined","v","set","updateValue","unset","resetValue","newValue","_type","uuid","createTable","confirmRemoveTable","removeTable","newRows","columnCount","length","push","Array","fill","newRows_0","columnCount_0","splice","newRows_1","index_1","confirmRemoveRow","confirmRemoveColumn","index_2","count_0","newRows_2","forEach","j","index_3","newRows_3","row_0","index_4","newRows_4","row_1","newRows_5","row_2","createTableComponent","TableIcon","Table","numCols","_temp","TablePreview","schemaType","title","previewTitle","outline","textOverflow","table","definePlugin","config","tableRowSchema","defineType","name","fields","of","tableSchema","components","input","preview","select","prepare","schema","types"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/table",
3
- "version": "3.1.0",
3
+ "version": "3.1.1",
4
4
  "description": "Table schema type and input component for Sanity Studio",
5
5
  "keywords": [
6
6
  "sanity",