@ai-matrx/records-ui 0.115.35 → 0.115.36

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.d.cts CHANGED
@@ -1555,28 +1555,19 @@ declare function RefusalLine({ error, className }: {
1555
1555
  }): react.JSX.Element;
1556
1556
 
1557
1557
  /**
1558
- * HOW A TABLE LOOKS — colors, formats and the frozen column.
1559
- *
1560
- * THE SPLIT, AND WHY IT IS THIS ONE. A Field declares WHAT it holds: a
1561
- * currency, a percent, a date, a person. A VIEW declares HOW that reads and
1562
- * what it is worth looking at: two decimal places or none, tint the row when
1563
- * Status is Blocked, keep Name in place while the rest scrolls. Airtable draws
1564
- * the line in exactly this place, and it has to be here: two people read one
1565
- * table two different ways, and neither reading is a fact about the records.
1566
- *
1567
- * So nothing in this module is a new column on a Field and nothing here needed
1568
- * a migration. A presentation lives on the saved-view record (`views.ts`), which
1569
- * is an ordinary record of an ordinary Table — which means an agent sets it
1570
- * through the same `records` tool it uses for everything else, and it travels
1571
- * with the table the way every other record does.
1572
- *
1573
- * A FIELD STILL GETS ITS MONEY RIGHT WITH NO CONFIGURATION. `formatForField`
1574
- * reads the Field's OWN declaration — a `currency` parity type with unit `$`, a
1575
- * `percent`, a `datetime` with `config.kind` — and returns the format that
1576
- * follows from it. The view's `formats` map only OVERRIDES that. A table nobody
1577
- * has ever styled still shows `$1,250.50` and `45%`.
1558
+ * The Gantt mode of a timeline view, by Field key. `mode` turns the left task list on; `critical` paints the longest
1559
+ * chain; `progress` is a percent/number column; `milestone` a yes/no column; `baselineStart` / `baselineEnd` the two
1560
+ * date columns "Save baseline" writes; `dependency` the link column that dependencies are written to.
1578
1561
  */
1579
-
1562
+ interface GanttLook {
1563
+ mode?: boolean;
1564
+ critical?: boolean;
1565
+ progress?: string;
1566
+ milestone?: string;
1567
+ baselineStart?: string;
1568
+ baselineEnd?: string;
1569
+ dependency?: string;
1570
+ }
1580
1571
  /**
1581
1572
  * SECTIONS BY A FIELD — the view's own grouping.
1582
1573
  *
@@ -1723,6 +1714,8 @@ type GridPresentation = {
1723
1714
  * by `custom.record_aggregate` over the whole table.
1724
1715
  */
1725
1716
  summaries?: Record<string, string>;
1717
+ /** THE TIMELINE'S GANTT MODE (kept as `presentation.gantt`): see `GanttLook`. */
1718
+ gantt?: GanttLook;
1726
1719
  /**
1727
1720
  * WHERE THE FOOTER SITS (lane TABLE-PAGE-CHROME, owner 2026-09-25) — the row count and the
1728
1721
  * pages: `sticky`, pinned to the bottom of the screen while the rows scroll (the older grid's
@@ -1748,7 +1741,7 @@ declare const FROZEN_COLUMN_WIDTH = 200;
1748
1741
  * still draw, which is the tolerant half.
1749
1742
  */
1750
1743
  declare const MIN_ROW_HEIGHT = 24;
1751
- declare const MAX_ROW_HEIGHT = 96;
1744
+ declare const MAX_ROW_HEIGHT = 240;
1752
1745
  /**
1753
1746
  * Read a presentation out of whatever the view record holds — an object, or the
1754
1747
  * JSON string a text field stores.
@@ -1938,6 +1931,8 @@ interface GridViewOrder {
1938
1931
  * `sorts`), which turns the hand order off in the store. Unbound, the control is ABSENT.
1939
1932
  */
1940
1933
  onUseSort?: ((sort: ColumnSort) => void) | undefined;
1934
+ /** "Save to view" on the sort panel: the host writes ALL the sorts (up to three) onto the view. */
1935
+ onUseSorts?: ((sorts: ColumnSort[]) => void) | undefined;
1941
1936
  }
1942
1937
  interface GridProps {
1943
1938
  tableId: Uuid$1;
@@ -3957,12 +3952,16 @@ interface TimelineViewProps {
3957
3952
  /** The day the timeline opens on; today when left out. `YYYY-MM-DD`. */
3958
3953
  initialDate?: string | undefined;
3959
3954
  className?: string | undefined;
3955
+ /** The view's Gantt mode (`presentation.gantt`): left task list, critical path, baseline, diamonds, progress. */
3956
+ gantt?: GanttLook | undefined;
3957
+ /** A Gantt setting changed: the host keeps it on the view. */
3958
+ onGanttChange?: ((patch: Partial<GanttLook>) => void) | undefined;
3960
3959
  }
3961
3960
  /** THE ONE COLUMN THERE IS, or null — a setting picks itself only when nothing else could be meant. */
3962
3961
  declare function onlyCandidate(candidates: readonly Field$1[]): string | null;
3963
3962
  /** The columns a timeline can lay lanes out by: a choice, a person, a link, yes / no, or a worked-out column. */
3964
3963
  declare function groupableFields(all: readonly Field$1[]): Field$1[];
3965
- declare function TimelineView({ cardFields, tableId, rows, fields, farFields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, }: TimelineViewProps): react.JSX.Element;
3964
+ declare function TimelineView({ cardFields, tableId, rows, fields, farFields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, gantt, onGanttChange, }: TimelineViewProps): react.JSX.Element;
3966
3965
 
3967
3966
  /** The colour of each record's card under `colorKey` (null: the table's own decorations only). */
3968
3967
  declare function useRowColorBy(all: readonly Field$1[], colorKey: string | null, style?: TableStyle | undefined): (row: ReadRow$1) => StyleColor | null;
@@ -6712,9 +6711,13 @@ interface ViewActionHost {
6712
6711
  archive?: () => void | Promise<void>;
6713
6712
  /** Lock or unlock the view (lane NOTION-SMALL-2). Left out, no lock verb is listed. */
6714
6713
  toggleLock?: () => void | Promise<void>;
6714
+ /** Turn the view Personal (only its creator lists it) or Collaborative (VIEWS-AIRTABLE). Left out, no such verb. */
6715
+ togglePersonal?: () => void | Promise<void>;
6716
+ /** Move the view to a named section of the list. Left out, no such verb. */
6717
+ moveToSection?: () => void | Promise<void>;
6715
6718
  }
6716
6719
  /** `whyNot`: the person's reason they may not change this table's views, or null when they may. */
6717
- declare function viewActions(whyNot: string | null, host: ViewActionHost, locked?: boolean): ObjectAction[];
6720
+ declare function viewActions(whyNot: string | null, host: ViewActionHost, locked?: boolean, personal?: boolean): ObjectAction[];
6718
6721
 
6719
6722
  interface RecordPanelProps {
6720
6723
  tableId: Uuid$1;
package/dist/index.d.ts CHANGED
@@ -1555,28 +1555,19 @@ declare function RefusalLine({ error, className }: {
1555
1555
  }): react.JSX.Element;
1556
1556
 
1557
1557
  /**
1558
- * HOW A TABLE LOOKS — colors, formats and the frozen column.
1559
- *
1560
- * THE SPLIT, AND WHY IT IS THIS ONE. A Field declares WHAT it holds: a
1561
- * currency, a percent, a date, a person. A VIEW declares HOW that reads and
1562
- * what it is worth looking at: two decimal places or none, tint the row when
1563
- * Status is Blocked, keep Name in place while the rest scrolls. Airtable draws
1564
- * the line in exactly this place, and it has to be here: two people read one
1565
- * table two different ways, and neither reading is a fact about the records.
1566
- *
1567
- * So nothing in this module is a new column on a Field and nothing here needed
1568
- * a migration. A presentation lives on the saved-view record (`views.ts`), which
1569
- * is an ordinary record of an ordinary Table — which means an agent sets it
1570
- * through the same `records` tool it uses for everything else, and it travels
1571
- * with the table the way every other record does.
1572
- *
1573
- * A FIELD STILL GETS ITS MONEY RIGHT WITH NO CONFIGURATION. `formatForField`
1574
- * reads the Field's OWN declaration — a `currency` parity type with unit `$`, a
1575
- * `percent`, a `datetime` with `config.kind` — and returns the format that
1576
- * follows from it. The view's `formats` map only OVERRIDES that. A table nobody
1577
- * has ever styled still shows `$1,250.50` and `45%`.
1558
+ * The Gantt mode of a timeline view, by Field key. `mode` turns the left task list on; `critical` paints the longest
1559
+ * chain; `progress` is a percent/number column; `milestone` a yes/no column; `baselineStart` / `baselineEnd` the two
1560
+ * date columns "Save baseline" writes; `dependency` the link column that dependencies are written to.
1578
1561
  */
1579
-
1562
+ interface GanttLook {
1563
+ mode?: boolean;
1564
+ critical?: boolean;
1565
+ progress?: string;
1566
+ milestone?: string;
1567
+ baselineStart?: string;
1568
+ baselineEnd?: string;
1569
+ dependency?: string;
1570
+ }
1580
1571
  /**
1581
1572
  * SECTIONS BY A FIELD — the view's own grouping.
1582
1573
  *
@@ -1723,6 +1714,8 @@ type GridPresentation = {
1723
1714
  * by `custom.record_aggregate` over the whole table.
1724
1715
  */
1725
1716
  summaries?: Record<string, string>;
1717
+ /** THE TIMELINE'S GANTT MODE (kept as `presentation.gantt`): see `GanttLook`. */
1718
+ gantt?: GanttLook;
1726
1719
  /**
1727
1720
  * WHERE THE FOOTER SITS (lane TABLE-PAGE-CHROME, owner 2026-09-25) — the row count and the
1728
1721
  * pages: `sticky`, pinned to the bottom of the screen while the rows scroll (the older grid's
@@ -1748,7 +1741,7 @@ declare const FROZEN_COLUMN_WIDTH = 200;
1748
1741
  * still draw, which is the tolerant half.
1749
1742
  */
1750
1743
  declare const MIN_ROW_HEIGHT = 24;
1751
- declare const MAX_ROW_HEIGHT = 96;
1744
+ declare const MAX_ROW_HEIGHT = 240;
1752
1745
  /**
1753
1746
  * Read a presentation out of whatever the view record holds — an object, or the
1754
1747
  * JSON string a text field stores.
@@ -1938,6 +1931,8 @@ interface GridViewOrder {
1938
1931
  * `sorts`), which turns the hand order off in the store. Unbound, the control is ABSENT.
1939
1932
  */
1940
1933
  onUseSort?: ((sort: ColumnSort) => void) | undefined;
1934
+ /** "Save to view" on the sort panel: the host writes ALL the sorts (up to three) onto the view. */
1935
+ onUseSorts?: ((sorts: ColumnSort[]) => void) | undefined;
1941
1936
  }
1942
1937
  interface GridProps {
1943
1938
  tableId: Uuid$1;
@@ -3957,12 +3952,16 @@ interface TimelineViewProps {
3957
3952
  /** The day the timeline opens on; today when left out. `YYYY-MM-DD`. */
3958
3953
  initialDate?: string | undefined;
3959
3954
  className?: string | undefined;
3955
+ /** The view's Gantt mode (`presentation.gantt`): left task list, critical path, baseline, diamonds, progress. */
3956
+ gantt?: GanttLook | undefined;
3957
+ /** A Gantt setting changed: the host keeps it on the view. */
3958
+ onGanttChange?: ((patch: Partial<GanttLook>) => void) | undefined;
3960
3959
  }
3961
3960
  /** THE ONE COLUMN THERE IS, or null — a setting picks itself only when nothing else could be meant. */
3962
3961
  declare function onlyCandidate(candidates: readonly Field$1[]): string | null;
3963
3962
  /** The columns a timeline can lay lanes out by: a choice, a person, a link, yes / no, or a worked-out column. */
3964
3963
  declare function groupableFields(all: readonly Field$1[]): Field$1[];
3965
- declare function TimelineView({ cardFields, tableId, rows, fields, farFields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, }: TimelineViewProps): react.JSX.Element;
3964
+ declare function TimelineView({ cardFields, tableId, rows, fields, farFields, titleField, startKey, endKey, groupKey, colorKey, onSettingsChange, layoutKept, onOpenRecord, onMoved, note, style, initialZoom, initialDate, className, gantt, onGanttChange, }: TimelineViewProps): react.JSX.Element;
3966
3965
 
3967
3966
  /** The colour of each record's card under `colorKey` (null: the table's own decorations only). */
3968
3967
  declare function useRowColorBy(all: readonly Field$1[], colorKey: string | null, style?: TableStyle | undefined): (row: ReadRow$1) => StyleColor | null;
@@ -6712,9 +6711,13 @@ interface ViewActionHost {
6712
6711
  archive?: () => void | Promise<void>;
6713
6712
  /** Lock or unlock the view (lane NOTION-SMALL-2). Left out, no lock verb is listed. */
6714
6713
  toggleLock?: () => void | Promise<void>;
6714
+ /** Turn the view Personal (only its creator lists it) or Collaborative (VIEWS-AIRTABLE). Left out, no such verb. */
6715
+ togglePersonal?: () => void | Promise<void>;
6716
+ /** Move the view to a named section of the list. Left out, no such verb. */
6717
+ moveToSection?: () => void | Promise<void>;
6715
6718
  }
6716
6719
  /** `whyNot`: the person's reason they may not change this table's views, or null when they may. */
6717
- declare function viewActions(whyNot: string | null, host: ViewActionHost, locked?: boolean): ObjectAction[];
6720
+ declare function viewActions(whyNot: string | null, host: ViewActionHost, locked?: boolean, personal?: boolean): ObjectAction[];
6718
6721
 
6719
6722
  interface RecordPanelProps {
6720
6723
  tableId: Uuid$1;