react-os-shell 3.7.0 → 3.8.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/{Browser-IYC3LJ5P.js → Browser-HHXXLQY5.js} +4 -4
- package/dist/{Browser-IYC3LJ5P.js.map → Browser-HHXXLQY5.js.map} +1 -1
- package/dist/{Documents-YK7FB475.js → Documents-F4JFZGWX.js} +3 -3
- package/dist/{Documents-YK7FB475.js.map → Documents-F4JFZGWX.js.map} +1 -1
- package/dist/Files-DMXTCFVX.js +12 -0
- package/dist/{Files-FKLB5NV2.js.map → Files-DMXTCFVX.js.map} +1 -1
- package/dist/{Notepad-TXUDJ4TG.js → Notepad-AVAB4BFS.js} +3 -3
- package/dist/{Notepad-TXUDJ4TG.js.map → Notepad-AVAB4BFS.js.map} +1 -1
- package/dist/Preview-IDRIJCBV.js +8 -0
- package/dist/{Preview-WIV5TUJU.js.map → Preview-IDRIJCBV.js.map} +1 -1
- package/dist/{Spreadsheet-MUIPMKMH.js → Spreadsheet-YKUVS5XW.js} +4 -4
- package/dist/{Spreadsheet-MUIPMKMH.js.map → Spreadsheet-YKUVS5XW.js.map} +1 -1
- package/dist/apps/index.js +12 -12
- package/dist/{chunk-RTT4QFJ7.js → chunk-BWPJMJR4.js} +4 -4
- package/dist/{chunk-RTT4QFJ7.js.map → chunk-BWPJMJR4.js.map} +1 -1
- package/dist/{chunk-K62Q5WNU.js → chunk-J63SUCG5.js} +4 -4
- package/dist/{chunk-K62Q5WNU.js.map → chunk-J63SUCG5.js.map} +1 -1
- package/dist/{chunk-6FKV2CQK.js → chunk-JSV6S5OL.js} +3 -3
- package/dist/{chunk-6FKV2CQK.js.map → chunk-JSV6S5OL.js.map} +1 -1
- package/dist/{chunk-N3UIMOYF.js → chunk-R2GLJUIY.js} +3 -3
- package/dist/{chunk-N3UIMOYF.js.map → chunk-R2GLJUIY.js.map} +1 -1
- package/dist/{chunk-ACJVFI6M.js → chunk-S2J7QSP6.js} +3 -3
- package/dist/{chunk-ACJVFI6M.js.map → chunk-S2J7QSP6.js.map} +1 -1
- package/dist/{chunk-AUQ74UJM.js → chunk-WKWPQJU6.js} +3 -3
- package/dist/{chunk-AUQ74UJM.js.map → chunk-WKWPQJU6.js.map} +1 -1
- package/dist/index.d.ts +338 -1
- package/dist/index.js +1372 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/Files-FKLB5NV2.js +0 -12
- package/dist/Preview-WIV5TUJU.js +0 -8
package/dist/index.d.ts
CHANGED
|
@@ -1730,6 +1730,343 @@ declare function SidebarNavItem({ label, count, active, onClick }: {
|
|
|
1730
1730
|
onClick: () => void;
|
|
1731
1731
|
}): react_jsx_runtime.JSX.Element;
|
|
1732
1732
|
|
|
1733
|
+
/**
|
|
1734
|
+
* Semantic role of a column, used to auto-map CSV columns to fields and to
|
|
1735
|
+
* format the per-column totals. The first column is always the merge "key"
|
|
1736
|
+
* regardless of its declared kind.
|
|
1737
|
+
* - `key` — the identifier rows are de-duplicated/merged on (text-like).
|
|
1738
|
+
* - `price` — a money column (matched by `$`/decimals; totalled with 2 dp).
|
|
1739
|
+
* - `qty` — a whole-number quantity column.
|
|
1740
|
+
* - `text` — anything else; never auto-mapped, never totalled.
|
|
1741
|
+
*/
|
|
1742
|
+
type BulkColumnKind = 'key' | 'price' | 'qty' | 'text';
|
|
1743
|
+
interface BulkColumn {
|
|
1744
|
+
key: string;
|
|
1745
|
+
title: string;
|
|
1746
|
+
width?: number;
|
|
1747
|
+
required?: boolean;
|
|
1748
|
+
/**
|
|
1749
|
+
* Hint for CSV auto-mapping and totals. Defaults: the first column is `key`,
|
|
1750
|
+
* every other column is `text`. Set `price`/`qty` to opt a column into
|
|
1751
|
+
* auto-detection and the totals strip.
|
|
1752
|
+
*/
|
|
1753
|
+
kind?: BulkColumnKind;
|
|
1754
|
+
}
|
|
1755
|
+
interface BulkImportGridProps {
|
|
1756
|
+
/** Column definitions. The FIRST column is always the merge key. */
|
|
1757
|
+
columns: BulkColumn[];
|
|
1758
|
+
/** Called with the resolved, de-duplicated rows (one object per row, keyed by column key). */
|
|
1759
|
+
onImport: (rows: Record<string, string>[]) => Promise<void>;
|
|
1760
|
+
/** Called when the user cancels an in-progress mapping/duplicate review. */
|
|
1761
|
+
onCancel: () => void;
|
|
1762
|
+
/** Optional override for the help text shown above the grid. */
|
|
1763
|
+
description?: string;
|
|
1764
|
+
/**
|
|
1765
|
+
* When set, duplicate key values are merged into a single row with their
|
|
1766
|
+
* numeric columns summed, instead of offering keep-first / keep-last / skip.
|
|
1767
|
+
* Use for quantity-based imports where two rows of the same key mean "both" —
|
|
1768
|
+
* never for price imports, where summing prices would be nonsensical.
|
|
1769
|
+
*/
|
|
1770
|
+
mergeDuplicates?: boolean;
|
|
1771
|
+
}
|
|
1772
|
+
/**
|
|
1773
|
+
* Spreadsheet-style bulk entry surface: type, paste, or upload a CSV/TSV, with
|
|
1774
|
+
* automatic column auto-mapping (with a manual mapping fallback) and duplicate
|
|
1775
|
+
* de-duplication (keep-first/last/skip, or summed merge in `mergeDuplicates`
|
|
1776
|
+
* mode). Purely presentational — owns local grid/CSV state and reports the
|
|
1777
|
+
* resolved rows via `onImport`; it does no fetching, auth, or persistence.
|
|
1778
|
+
*
|
|
1779
|
+
* Rows are de-duplicated and merged on the FIRST column (the "key"). Declare a
|
|
1780
|
+
* column's `kind` (`price`/`qty`) to opt it into CSV auto-detection and the
|
|
1781
|
+
* totals strip.
|
|
1782
|
+
*/
|
|
1783
|
+
declare function BulkImportGrid({ columns, onImport, description, mergeDuplicates }: BulkImportGridProps): react_jsx_runtime.JSX.Element;
|
|
1784
|
+
|
|
1785
|
+
/**
|
|
1786
|
+
* Pure helpers for reconciling a bulk-import grid (rows of string cells) against
|
|
1787
|
+
* an existing items array, keyed by a designated "key column" (e.g. a part
|
|
1788
|
+
* number, SKU, or code). No app/framework dependencies — usable by any consumer
|
|
1789
|
+
* of {@link BulkImportGrid}.
|
|
1790
|
+
*
|
|
1791
|
+
* Merge rule: a blank cell means "don't touch the original" — only an explicit
|
|
1792
|
+
* value (including "0") replaces what's already there. Existing rows the user
|
|
1793
|
+
* didn't mention in the bulk grid are left untouched. Unknown keys are appended
|
|
1794
|
+
* via the caller-supplied `newItem` factory.
|
|
1795
|
+
*/
|
|
1796
|
+
type BulkRow = Record<string, string | undefined>;
|
|
1797
|
+
interface DuplicateGroup {
|
|
1798
|
+
/** Key value as it appeared in the first occurrence (trimmed, original casing). */
|
|
1799
|
+
key: string;
|
|
1800
|
+
/** Indices into the rows array where this key appears. Length is always >= 2. */
|
|
1801
|
+
rowIndices: number[];
|
|
1802
|
+
}
|
|
1803
|
+
/**
|
|
1804
|
+
* Find key values that appear more than once within a single bulk-import file.
|
|
1805
|
+
* Match is case-insensitive (consistent with {@link mergeBulkItems}). Blank key
|
|
1806
|
+
* cells are ignored. The caller is expected to surface these to the user before
|
|
1807
|
+
* merge so they can pick a per-group resolution.
|
|
1808
|
+
*/
|
|
1809
|
+
declare function findDuplicateKeys(rows: BulkRow[], keyRowKey: string): DuplicateGroup[];
|
|
1810
|
+
interface BaseItem {
|
|
1811
|
+
[key: string]: unknown;
|
|
1812
|
+
}
|
|
1813
|
+
interface MergeBulkResult<T> {
|
|
1814
|
+
merged: T[];
|
|
1815
|
+
importedCount: number;
|
|
1816
|
+
}
|
|
1817
|
+
interface MergeBulkOptions<T extends BaseItem> {
|
|
1818
|
+
/** Raw rows from BulkImportGrid. */
|
|
1819
|
+
rows: BulkRow[];
|
|
1820
|
+
/** Existing items array to merge into. */
|
|
1821
|
+
existing: T[];
|
|
1822
|
+
/**
|
|
1823
|
+
* Mapping from row column key → item field key.
|
|
1824
|
+
* MUST include the key-column mapping (e.g. `{ pn: 'part_number' }`).
|
|
1825
|
+
* Example: `{ pn: 'part_number', qty: 'quantity', price: 'unit_price' }`.
|
|
1826
|
+
*/
|
|
1827
|
+
fieldMap: Record<string, string>;
|
|
1828
|
+
/**
|
|
1829
|
+
* The item field that holds the merge key — the value `fieldMap` maps the
|
|
1830
|
+
* grid's key column onto. Existing items are matched against this field
|
|
1831
|
+
* (case-insensitive). Defaults to `'part_number'`.
|
|
1832
|
+
*/
|
|
1833
|
+
keyField?: string;
|
|
1834
|
+
/**
|
|
1835
|
+
* Build a brand-new item for a row whose key isn't in `existing`.
|
|
1836
|
+
* `filled` contains only the fields the user actually entered (mapped to
|
|
1837
|
+
* item-field keys via `fieldMap`); supply defaults for anything required
|
|
1838
|
+
* by your item shape.
|
|
1839
|
+
*/
|
|
1840
|
+
newItem: (filled: Partial<T>) => T;
|
|
1841
|
+
}
|
|
1842
|
+
declare function mergeBulkItems<T extends BaseItem>(options: MergeBulkOptions<T>): MergeBulkResult<T>;
|
|
1843
|
+
|
|
1844
|
+
/** Default item shape — overridable via the accessor props for any other shape. */
|
|
1845
|
+
interface ContainerFillItem {
|
|
1846
|
+
quantity?: number | null;
|
|
1847
|
+
actual_qty?: number | null;
|
|
1848
|
+
_isNew?: boolean;
|
|
1849
|
+
}
|
|
1850
|
+
interface ContainerFillChartProps<T = ContainerFillItem> {
|
|
1851
|
+
/** Line items to chart. Each contributes `qty * getVolume(item)` to the total. */
|
|
1852
|
+
items: T[];
|
|
1853
|
+
/**
|
|
1854
|
+
* Per-unit volume (m³) for an item. The lifted app concern — return 0 when
|
|
1855
|
+
* unknown. Total volume per item is `quantity * getVolume(item)`.
|
|
1856
|
+
*/
|
|
1857
|
+
getVolume: (item: T) => number;
|
|
1858
|
+
/**
|
|
1859
|
+
* Single-bar quantity source when no actuals are present:
|
|
1860
|
+
* - 'instruction' (default): use the instruction quantity.
|
|
1861
|
+
* - 'actual': use the actual quantity (falling back to instruction).
|
|
1862
|
+
*
|
|
1863
|
+
* When actuals exist on at least one item the chart auto-switches to dual-bar
|
|
1864
|
+
* mode regardless of `qtyField` — instruction (blue) and loaded (green) are
|
|
1865
|
+
* layered into the same bar so both are visible at once.
|
|
1866
|
+
*/
|
|
1867
|
+
qtyField?: 'instruction' | 'actual';
|
|
1868
|
+
/** Show the "new items" indicator next to the row count. */
|
|
1869
|
+
showNewIndicator?: boolean;
|
|
1870
|
+
/** Instruction quantity accessor. Defaults to `item.quantity`. */
|
|
1871
|
+
getInstructionQty?: (item: T) => number | null | undefined;
|
|
1872
|
+
/** Actual/loaded quantity accessor. Defaults to `item.actual_qty`. */
|
|
1873
|
+
getActualQty?: (item: T) => number | null | undefined;
|
|
1874
|
+
/**
|
|
1875
|
+
* Whether an item should count as charted at all. Defaults to "has a non-empty
|
|
1876
|
+
* key" — i.e. items whose volume source identifies a real part. By default
|
|
1877
|
+
* every item is charted; supply this to drop placeholder/empty rows.
|
|
1878
|
+
*/
|
|
1879
|
+
isFilled?: (item: T) => boolean;
|
|
1880
|
+
/** Whether an item is newly added (drives `showNewIndicator`). Defaults to `item._isNew`. */
|
|
1881
|
+
isNew?: (item: T) => boolean;
|
|
1882
|
+
className?: string;
|
|
1883
|
+
style?: CSSProperties;
|
|
1884
|
+
}
|
|
1885
|
+
/**
|
|
1886
|
+
* Container-fill chart for shipping loading lists. Presentational only — pass
|
|
1887
|
+
* `getVolume` to inject per-unit volumes; the chart owns the container math and
|
|
1888
|
+
* the instruction-vs-loaded dual-bar rendering.
|
|
1889
|
+
*/
|
|
1890
|
+
declare function ContainerFillChart<T = ContainerFillItem>({ items, getVolume, qtyField, showNewIndicator, getInstructionQty, getActualQty, isFilled, isNew, className, style, }: ContainerFillChartProps<T>): react_jsx_runtime.JSX.Element | null;
|
|
1891
|
+
|
|
1892
|
+
/** Result of a single health poll. `latencyMs` is optional; when omitted on
|
|
1893
|
+
* an ok result the indicator simply shows no latency for that poll. */
|
|
1894
|
+
interface HealthCheckResult {
|
|
1895
|
+
ok: boolean;
|
|
1896
|
+
latencyMs?: number;
|
|
1897
|
+
}
|
|
1898
|
+
/** Display fields for the signed-in user shown in the popover's Session
|
|
1899
|
+
* section. All optional — the indicator derives a sensible name and hides
|
|
1900
|
+
* the Role row when `role` is empty. Pass `null`/`undefined` for "not
|
|
1901
|
+
* signed in". */
|
|
1902
|
+
interface ServerStatusUser {
|
|
1903
|
+
name?: string;
|
|
1904
|
+
email?: string;
|
|
1905
|
+
/** Secondary label for the Role row (e.g. group names, portal, company).
|
|
1906
|
+
* Hidden when empty. */
|
|
1907
|
+
role?: string;
|
|
1908
|
+
}
|
|
1909
|
+
interface ServerStatusIndicatorProps {
|
|
1910
|
+
/**
|
|
1911
|
+
* Performs one health poll and resolves with the outcome. The shell calls
|
|
1912
|
+
* this on mount and on every interval tick. A custom implementation owns
|
|
1913
|
+
* its own timeout/abort. When omitted, the indicator polls `healthUrl`
|
|
1914
|
+
* (default `/api/health/`) with a `requestTimeoutMs` AbortController.
|
|
1915
|
+
*/
|
|
1916
|
+
healthCheck?: () => Promise<HealthCheckResult>;
|
|
1917
|
+
/** URL used by the built-in fetcher when no `healthCheck` is supplied. */
|
|
1918
|
+
healthUrl?: string;
|
|
1919
|
+
/** Poll interval in ms. Default 15 000. */
|
|
1920
|
+
pollMs?: number;
|
|
1921
|
+
/** Per-request timeout for the built-in fetcher, in ms. Default 5 000. */
|
|
1922
|
+
requestTimeoutMs?: number;
|
|
1923
|
+
/** Signed-in user's display fields for the Session section. */
|
|
1924
|
+
user?: ServerStatusUser | null;
|
|
1925
|
+
/** Build/version label for the Build section. Defaults to the shell's own
|
|
1926
|
+
* package version. Pass the consuming app's version here. */
|
|
1927
|
+
version?: string;
|
|
1928
|
+
}
|
|
1929
|
+
/**
|
|
1930
|
+
* System-tray globe that polls a health check and exposes connection details
|
|
1931
|
+
* in a click-to-open popover. Drop into a taskbar tray alongside the
|
|
1932
|
+
* notification bell; supply `healthCheck` (or `healthUrl`), `user`, and
|
|
1933
|
+
* `version` via a thin per-app wrapper.
|
|
1934
|
+
*/
|
|
1935
|
+
declare function ServerStatusIndicator({ healthCheck, healthUrl, pollMs, requestTimeoutMs, user, version, }: ServerStatusIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
1936
|
+
|
|
1937
|
+
interface ChangePasswordFormProps {
|
|
1938
|
+
/**
|
|
1939
|
+
* Perform the password change. Resolve to indicate success; reject with an
|
|
1940
|
+
* `Error` whose `message` becomes the inline error shown to the user.
|
|
1941
|
+
*/
|
|
1942
|
+
onSubmit: (oldPassword: string, newPassword: string) => Promise<void>;
|
|
1943
|
+
/** Called after a successful change — on Done click, or immediately when
|
|
1944
|
+
* `confirmOnSuccess` is false. */
|
|
1945
|
+
onSuccess?: () => void;
|
|
1946
|
+
/**
|
|
1947
|
+
* Show a success confirmation screen with a Done button after a successful
|
|
1948
|
+
* change. When false, `onSuccess` fires immediately on success. Default true.
|
|
1949
|
+
*/
|
|
1950
|
+
confirmOnSuccess?: boolean;
|
|
1951
|
+
/** Minimum length required for the new password. Default 8. */
|
|
1952
|
+
minLength?: number;
|
|
1953
|
+
/** Label for the submit button. Default 'Change Password'. */
|
|
1954
|
+
submitLabel?: string;
|
|
1955
|
+
/** Label for the Done button on the success screen. Default 'Done'. */
|
|
1956
|
+
doneLabel?: string;
|
|
1957
|
+
}
|
|
1958
|
+
/**
|
|
1959
|
+
* Product-agnostic change-password form. The host supplies `onSubmit` to do the
|
|
1960
|
+
* actual change (e.g. call an API then re-authenticate).
|
|
1961
|
+
*/
|
|
1962
|
+
declare function ChangePasswordForm({ onSubmit, onSuccess, confirmOnSuccess, minLength, submitLabel, doneLabel, }: ChangePasswordFormProps): react_jsx_runtime.JSX.Element;
|
|
1963
|
+
|
|
1964
|
+
interface PdfActionButtonProps {
|
|
1965
|
+
/**
|
|
1966
|
+
* Resolves the PDF bytes. The consumer owns the transport (axios/fetch/etc.)
|
|
1967
|
+
* and any error reporting; returning `null` aborts the action without the
|
|
1968
|
+
* shell surfacing a toast (the consumer is expected to have explained the
|
|
1969
|
+
* failure already).
|
|
1970
|
+
*/
|
|
1971
|
+
fetchPdf: () => Promise<Blob | null>;
|
|
1972
|
+
/** Filename used for download and shown in the Preview window (e.g. "Invoice_CI#1234.pdf"). */
|
|
1973
|
+
filename: string;
|
|
1974
|
+
/** Button label. */
|
|
1975
|
+
label?: string;
|
|
1976
|
+
/** Override the default button styling. */
|
|
1977
|
+
className?: string;
|
|
1978
|
+
/** Disabled state. */
|
|
1979
|
+
disabled?: boolean;
|
|
1980
|
+
/**
|
|
1981
|
+
* Optional email handler. When supplied, a "Send by Email" item (with a
|
|
1982
|
+
* divider above it) is added to the menu and an Email button is wired into
|
|
1983
|
+
* the Preview window — both invoked with the already-fetched blob so the
|
|
1984
|
+
* consumer can hand it to its own composer. Omit it to hide email entirely.
|
|
1985
|
+
*/
|
|
1986
|
+
onEmail?: (blob: Blob) => void;
|
|
1987
|
+
/**
|
|
1988
|
+
* Optional notification fired after a Preview window has been opened with the
|
|
1989
|
+
* resolved PDF (e.g. to drop a Recent Documents shortcut). Receives the
|
|
1990
|
+
* filename so the consumer can label the entry.
|
|
1991
|
+
*/
|
|
1992
|
+
onPreviewOpened?: (filename: string) => void;
|
|
1993
|
+
/** Optional leading icon override for the button (defaults to a document glyph). */
|
|
1994
|
+
icon?: ReactNode;
|
|
1995
|
+
}
|
|
1996
|
+
/**
|
|
1997
|
+
* A dropdown PDF button that can Preview the document in the shell's Preview
|
|
1998
|
+
* window, Download it, or (when `onEmail` is supplied) hand the bytes to a
|
|
1999
|
+
* consumer-provided email composer.
|
|
2000
|
+
*
|
|
2001
|
+
* The shell is transport-agnostic: it never fetches the PDF itself. The
|
|
2002
|
+
* consumer injects a `fetchPdf()` resolver (typically wrapping its own HTTP
|
|
2003
|
+
* client) and the shell handles object-URL lifecycle, download, the loading
|
|
2004
|
+
* placeholder in Preview, and success toasts. App concerns (email composer,
|
|
2005
|
+
* recent-documents logging) are lifted to the optional `onEmail` /
|
|
2006
|
+
* `onPreviewOpened` callbacks.
|
|
2007
|
+
*/
|
|
2008
|
+
declare function PdfActionButton({ fetchPdf, filename, label, className, disabled, onEmail, onPreviewOpened, icon, }: PdfActionButtonProps): react_jsx_runtime.JSX.Element;
|
|
2009
|
+
|
|
2010
|
+
/** Visual category for a milestone. Drives shape + colour so the user can
|
|
2011
|
+
* tell different milestone types apart at a glance. */
|
|
2012
|
+
type MilestoneKind = 'default' | 'dfm' | 'shipment' | 'testing' | 'completion';
|
|
2013
|
+
/** A single point on the timeline. Generic, product-agnostic: the consuming
|
|
2014
|
+
* app maps its domain records to this shape in a thin wrapper. */
|
|
2015
|
+
interface Milestone {
|
|
2016
|
+
/** Stable key — used for React keys and the active-dot lookup. */
|
|
2017
|
+
key: string;
|
|
2018
|
+
/** Short label rendered above the dot when active / hovered. */
|
|
2019
|
+
label: string;
|
|
2020
|
+
/** ISO date string (`YYYY-MM-DD`) for the milestone. Null / undefined =
|
|
2021
|
+
* "not reached yet"; renders as a faded outline dot at the *expected*
|
|
2022
|
+
* position (between its neighbours) instead of a real coordinate. */
|
|
2023
|
+
date: string | null | undefined;
|
|
2024
|
+
/** Optional second line for the hover tooltip. */
|
|
2025
|
+
detail?: string;
|
|
2026
|
+
/** Optional click handler so the caller can open a related entity. */
|
|
2027
|
+
onClick?: () => void;
|
|
2028
|
+
/** Optional visual category — defaults to `'default'` (blue circle). */
|
|
2029
|
+
kind?: MilestoneKind;
|
|
2030
|
+
/** Optional phase grouping — milestones sharing the same `phase` value
|
|
2031
|
+
* render with a bracket below the bar showing they happened in parallel
|
|
2032
|
+
* (e.g. two concurrent QA steps). Lookup the human-readable name from
|
|
2033
|
+
* `MilestoneTimelineProps.phaseLabels`. */
|
|
2034
|
+
phase?: string;
|
|
2035
|
+
}
|
|
2036
|
+
interface MilestoneTimelineProps {
|
|
2037
|
+
/** Title rendered above the bar — e.g. "Mould Development Timeline". */
|
|
2038
|
+
title: string;
|
|
2039
|
+
/** Ordered milestones from earliest expected to latest expected. The order
|
|
2040
|
+
* controls the fallback position for milestones with no date yet. */
|
|
2041
|
+
milestones: Milestone[];
|
|
2042
|
+
/** Optional sub-title to the right of the title (e.g. lead-time summary).
|
|
2043
|
+
* When omitted, an auto lead-time summary is computed from the dates. */
|
|
2044
|
+
summary?: string;
|
|
2045
|
+
/** Optional explicit right edge — when provided, the bar always ends here
|
|
2046
|
+
* rather than padding to today. Used when the axis should stop at a known
|
|
2047
|
+
* final milestone and not run on past it. */
|
|
2048
|
+
endDate?: string | null;
|
|
2049
|
+
/** Maps `Milestone.phase` keys to the human-readable phase label that
|
|
2050
|
+
* appears under the bracket — e.g. `{ qa: 'QA & Sample' }`. Phases
|
|
2051
|
+
* without an entry fall back to the phase key itself. */
|
|
2052
|
+
phaseLabels?: Record<string, string>;
|
|
2053
|
+
}
|
|
2054
|
+
/**
|
|
2055
|
+
* Static date-axis bar showing a sequence of milestones along a single line.
|
|
2056
|
+
*
|
|
2057
|
+
* - No scrubber / playback / interpolation — milestones don't move.
|
|
2058
|
+
* - "Not reached yet" milestones (no date) render as outline dots wedged at
|
|
2059
|
+
* their expected position so the user can see what's still pending.
|
|
2060
|
+
* - First / last milestones render as inline edge labels; middle ones stagger
|
|
2061
|
+
* above/below the bar so adjacent labels never collide.
|
|
2062
|
+
* - Milestones sharing a `phase` (2+ members) get a bracket marking parallel
|
|
2063
|
+
* work. The filled portion of the bar never runs past today.
|
|
2064
|
+
*
|
|
2065
|
+
* Product-agnostic: it takes generic `Milestone` data as props. Map your
|
|
2066
|
+
* domain records to the `Milestone` shape in a thin wrapper at the call site.
|
|
2067
|
+
*/
|
|
2068
|
+
declare function MilestoneTimeline({ title, milestones, summary, endDate, phaseLabels }: MilestoneTimelineProps): react_jsx_runtime.JSX.Element;
|
|
2069
|
+
|
|
1733
2070
|
/**
|
|
1734
2071
|
* Shared chart types. The charts are dependency-free inline SVG/CSS — color
|
|
1735
2072
|
* defaults to `currentColor` so a parent `text-*` class themes them, and
|
|
@@ -1968,4 +2305,4 @@ declare function useNewHotkey(callback: () => void): void;
|
|
|
1968
2305
|
*/
|
|
1969
2306
|
declare function useEditHotkey(callback: (() => void) | null): void;
|
|
1970
2307
|
|
|
1971
|
-
export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, type AccordionItem, type AccordionProps, AuthScreen, type AuthScreenProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Banner, type BannerProps, type BannerTone, BarChart, type BarChartProps, BehaviorPanel, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, CancelButton, Card, type CardProps, type CellStyle, type ChangelogEntry, ChatTemplate, Checkbox, type CheckboxProps, CheckoutTemplate, type ClockCalendarConfig, ColoredBadge, type ColoredBadgeProps, type ColumnDef, ConfirmProvider, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, DonutChart, type DonutChartProps, type DonutSegment, ENTER, EditableGrid, type EditableGridProps, EmailTemplate, EmptyState, type EmptyStateProps, type EntityFetcher, EntityList, type EntityListColumn, type EntityListProps, ErrorPage, type ErrorPageProps, FilterBar, type FilterOption, FormField, type FormFieldProps, FormLayoutPage, GLASS_DIVIDER, GLASS_INPUT_BG, GalleryTemplate, GlobalSearch, type GridColumn, HelpCenter, type HelpCenterDoc, type HelpCenterProps, INPUT_BASE, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, Input, type InputProps, Kanban, type KanbanColumn, type KanbanProps, Label, type LabelProps, Layout, type LayoutProps, ListFooter, LoadingSpinner, type LoadingSpinnerProps, MOD, Markdown, type MarkdownProps, Modal, ModalActions, NotificationBell, type NotificationsConfig, PageHeader, type PageHeaderProps, type PaginatedResponse, Pagination, type PaginationProps, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, Radio, type RadioProps, ResizableTable, SHIFT, type SearchConfig, type SearchProvider, type SearchResult, type SearchableOption, SearchableSelect, type SearchableSelectProps, Select, type SelectOption, type SelectProps, type SemanticGroup, type ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, type ShellPrefsAdapter, ShellPrefsProvider, ShortcutHelp, SidebarGroupLabel, SidebarLayout, type SidebarLayoutProps, SidebarNavItem, type SortState, SoundsPanel, Sparkline, type SparklineProps, StartMenu, StatCard, type StatCardProps, StatusBadge, StatusBadgeProvider, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, type TodoProvider, type TodoTask, Tooltip, type TooltipProps, TopNav, type TopNavItem, type TopNavProps, VERSION, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, WindowTitle, applyDevTitle, commitExposeHighlight, confirm, confirmDestructive, createWindowRegistry, exitExposeMode, formatDate, getActiveWindowRoute, getExposeHighlight, getWindowPosition, glassStyle, inputClasses, isDevEnv, isMac, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
|
|
2308
|
+
export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, type AccordionItem, type AccordionProps, AuthScreen, type AuthScreenProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Banner, type BannerProps, type BannerTone, BarChart, type BarChartProps, BehaviorPanel, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, type BulkColumn, type BulkColumnKind, BulkImportGrid, type BulkImportGridProps, type BulkRow, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, CancelButton, Card, type CardProps, type CellStyle, ChangePasswordForm, type ChangePasswordFormProps, type ChangelogEntry, ChatTemplate, Checkbox, type CheckboxProps, CheckoutTemplate, type ClockCalendarConfig, ColoredBadge, type ColoredBadgeProps, type ColumnDef, ConfirmProvider, ContainerFillChart, type ContainerFillChartProps, type ContainerFillItem, CopyButton, Customization, type CustomizationOmitSection, type CustomizationProps, type CustomizationSection, DEV_BANNER_TEXT, DashboardTemplate, DataTablePage, Desktop, type DesktopContextMenuItem, type DesktopHostConfig, DesktopHostProvider, DevIndicator, DocFavStar, DonutChart, type DonutChartProps, type DonutSegment, type DuplicateGroup, ENTER, EditableGrid, type EditableGridProps, EmailTemplate, EmptyState, type EmptyStateProps, type EntityFetcher, EntityList, type EntityListColumn, type EntityListProps, ErrorPage, type ErrorPageProps, FilterBar, type FilterOption, FormField, type FormFieldProps, FormLayoutPage, GLASS_DIVIDER, GLASS_INPUT_BG, GalleryTemplate, GlobalSearch, type GridColumn, type HealthCheckResult, HelpCenter, type HelpCenterDoc, type HelpCenterProps, INPUT_BASE, ImageAnnotator, type ImageAnnotatorHandle, type ImageAnnotatorProps, Input, type InputProps, Kanban, type KanbanColumn, type KanbanProps, Label, type LabelProps, Layout, type LayoutProps, ListFooter, LoadingSpinner, type LoadingSpinnerProps, MOD, Markdown, type MarkdownProps, type MergeBulkOptions, type MergeBulkResult, type Milestone, type MilestoneKind, MilestoneTimeline, type MilestoneTimelineProps, Modal, ModalActions, NotificationBell, type NotificationsConfig, PageHeader, type PageHeaderProps, type PaginatedResponse, Pagination, type PaginationProps, PdfActionButton, type PdfActionButtonProps, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, Radio, type RadioProps, ResizableTable, SHIFT, type SearchConfig, type SearchProvider, type SearchResult, type SearchableOption, SearchableSelect, type SearchableSelectProps, Select, type SelectOption, type SelectProps, type SemanticGroup, ServerStatusIndicator, type ServerStatusIndicatorProps, type ServerStatusUser, type ShellAuth, ShellAuthProvider, ShellEntityFetcherProvider, type ShellNotification, type ShellPrefsAdapter, ShellPrefsProvider, ShortcutHelp, SidebarGroupLabel, SidebarLayout, type SidebarLayoutProps, SidebarNavItem, type SortState, SoundsPanel, Sparkline, type SparklineProps, StartMenu, StatCard, type StatCardProps, StatusBadge, StatusBadgeProvider, type StickyEntityRef, type StickyResolver, SystemPreferences, type SystemPreferencesProps, type SystemPreferencesSection, type TabItem, Tabs, type TabsProps, Textarea, type TextareaProps, type TodoProvider, type TodoTask, Tooltip, type TooltipProps, TopNav, type TopNavItem, type TopNavProps, VERSION, WidgetManager, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowRegistry, WindowTitle, applyDevTitle, commitExposeHighlight, confirm, confirmDestructive, createWindowRegistry, exitExposeMode, findDuplicateKeys, formatDate, getActiveWindowRoute, getExposeHighlight, getWindowPosition, glassStyle, inputClasses, isDevEnv, isMac, mergeBulkItems, prompt, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellAuthBridge, setShellNavIcons, setShellTodoProvider, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toast, toggleExposeMode, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useFilters, useInfiniteScroll, useLocalStoragePrefs, useModalActive, useNewHotkey, useShellAuth, useShellEntityFetcher, useShellPrefs, useSort, useTableNav, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
|