@intentic/extension-ui 1.247.0 → 1.249.0
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/README.md +14 -9
- package/dist/index.js +1 -0
- package/dist/types/extension-ui/src/format.d.ts +1 -1
- package/dist/types/extension-ui/src/index.d.ts +1 -1
- package/dist/types/ui/src/components/{MarkdownFigure.vue.d.ts → charts/MarkdownFigure.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{StatStrip.vue.d.ts → charts/StatStrip.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{StatusTally.vue.d.ts → charts/StatusTally.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{barChart.d.ts → charts/barChart.d.ts} +1 -1
- package/dist/types/ui/src/components/{seriesAccent.d.ts → charts/seriesAccent.d.ts} +1 -1
- package/dist/types/ui/src/components/{Notice.vue.d.ts → feedback/Notice.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{SkeletonRows.vue.d.ts → feedback/SkeletonRows.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{notice.d.ts → feedback/notice.d.ts} +1 -1
- package/dist/types/ui/src/components/{NoteEditor.vue.d.ts → forms/NoteEditor.vue.d.ts} +2 -3
- package/dist/types/ui/src/components/{Picker.vue.d.ts → forms/Picker.vue.d.ts} +1 -0
- package/dist/types/ui/src/components/{SegmentedControl.vue.d.ts → forms/SegmentedControl.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{picker.d.ts → forms/picker.d.ts} +2 -2
- package/dist/types/ui/src/components/{PageAction.vue.d.ts → layout/PageAction.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{ResizeSeam.vue.d.ts → layout/ResizeSeam.vue.d.ts} +1 -0
- package/dist/types/ui/src/components/{StepSection.vue.d.ts → layout/StepSection.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{navRail.d.ts → layout/navRail.d.ts} +1 -1
- package/dist/types/ui/src/components/{repoRail.d.ts → layout/repoRail.d.ts} +1 -1
- package/dist/types/ui/src/components/{Markdown.vue.d.ts → markdown/Markdown.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/markdown/MarkdownDocument.vue.d.ts +47 -0
- package/dist/types/ui/src/components/markdown/markdownDocument.d.ts +18 -0
- package/dist/types/ui/src/components/{AnchoredOverlay.vue.d.ts → overlays/AnchoredOverlay.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{ConfirmDialog.vue.d.ts → overlays/ConfirmDialog.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{ResponsiveOverlay.vue.d.ts → overlays/ResponsiveOverlay.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{Icon.vue.d.ts → primitives/Icon.vue.d.ts} +1 -1
- package/dist/types/ui/src/components/{DisclosureRow.vue.d.ts → rows/DisclosureRow.vue.d.ts} +2 -2
- package/dist/types/ui/src/components/{Row.vue.d.ts → rows/Row.vue.d.ts} +16 -12
- package/dist/types/ui/src/components/{RowGroup.vue.d.ts → rows/RowGroup.vue.d.ts} +1 -0
- package/dist/types/ui/src/components/{row.d.ts → rows/row.d.ts} +4 -4
- package/dist/types/ui/src/components/{AgentRunButton.vue.d.ts → sandbox/AgentRunButton.vue.d.ts} +3 -6
- package/dist/types/ui/src/composables/useAgentRunPick.d.ts +7 -2
- package/dist/types/ui/src/composables/useAsyncAction.d.ts +1 -1
- package/dist/types/ui/src/icons/iconSets.d.ts +139 -2
- package/dist/types/ui/src/index.d.ts +63 -62
- package/dist/types/ui/src/lib/format.d.ts +15 -0
- package/dist/types/ui/src/markdown/edits.d.ts +15 -0
- package/dist/types/ui/src/markdown/history.d.ts +12 -0
- package/dist/types/ui/src/markdown/index.d.ts +3 -0
- package/dist/types/ui/src/markdown/sourceDom.d.ts +7 -0
- package/names.mjs +1 -0
- package/package.json +2 -2
- package/src/format.ts +4 -12
- package/src/index.ts +50 -159
- /package/dist/types/ui/src/components/{Avatar.vue.d.ts → brand/Avatar.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{BrandMark.vue.d.ts → brand/BrandMark.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{PersonaFace.vue.d.ts → brand/PersonaFace.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{personaFace.d.ts → brand/personaFace.d.ts} +0 -0
- /package/dist/types/ui/src/components/{BarChart.vue.d.ts → charts/BarChart.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{DagEditor.vue.d.ts → charts/DagEditor.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{DagGraph.vue.d.ts → charts/DagGraph.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{DiffStat.vue.d.ts → charts/DiffStat.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ProgressRing.vue.d.ts → charts/ProgressRing.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{dagLayout.d.ts → charts/dagLayout.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ChangeStatusMark.vue.d.ts → feedback/ChangeStatusMark.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{InfoHint.vue.d.ts → feedback/InfoHint.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{InfoTable.vue.d.ts → feedback/InfoTable.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{NoticeStack.vue.d.ts → feedback/NoticeStack.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{StatusBadge.vue.d.ts → feedback/StatusBadge.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{changeStatus.d.ts → feedback/changeStatus.d.ts} +0 -0
- /package/dist/types/ui/src/components/{CodeField.vue.d.ts → forms/CodeField.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{FilterBar.vue.d.ts → forms/FilterBar.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ProseField.vue.d.ts → forms/ProseField.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{SearchBar.vue.d.ts → forms/SearchBar.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{BottomSheet.vue.d.ts → layout/BottomSheet.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{Card.vue.d.ts → layout/Card.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{NavRail.vue.d.ts → layout/NavRail.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{Page.vue.d.ts → layout/Page.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{PageHeader.vue.d.ts → layout/PageHeader.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{RepoRail.vue.d.ts → layout/RepoRail.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ScrollFrame.vue.d.ts → layout/ScrollFrame.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{SplitView.vue.d.ts → layout/SplitView.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{splitView.d.ts → layout/splitView.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ContextMenu.vue.d.ts → overlays/ContextMenu.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{InfoDialog.vue.d.ts → overlays/InfoDialog.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{Modal.vue.d.ts → overlays/Modal.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{Button.vue.d.ts → primitives/Button.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{Code.vue.d.ts → primitives/Code.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{CopyButton.vue.d.ts → primitives/CopyButton.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{ImageView.vue.d.ts → primitives/ImageView.vue.d.ts} +0 -0
- /package/dist/types/ui/src/components/{imageView.d.ts → primitives/imageView.d.ts} +0 -0
|
@@ -2,72 +2,73 @@ export { clipboardOf } from "./lib/clipboard.js";
|
|
|
2
2
|
export { appLink, browserOwnsClick } from "./lib/link.js";
|
|
3
3
|
export { openForwardedPort } from "./lib/portPreview.js";
|
|
4
4
|
export { ui } from "./lib/ui.js";
|
|
5
|
-
export { default as AgentRunButton } from "./components/AgentRunButton.vue";
|
|
5
|
+
export { default as AgentRunButton } from "./components/sandbox/AgentRunButton.vue";
|
|
6
6
|
export { type AgentRunChoice, type AgentRunPicker, type ModelPicking, useAgentRunPick } from "./composables/useAgentRunPick.js";
|
|
7
|
-
export { default as AnchoredOverlay } from "./components/AnchoredOverlay.vue";
|
|
8
|
-
export { default as Avatar } from "./components/Avatar.vue";
|
|
9
|
-
export { default as BarChart } from "./components/BarChart.vue";
|
|
10
|
-
export { default as BottomSheet } from "./components/BottomSheet.vue";
|
|
11
|
-
export { default as BrandMark } from "./components/BrandMark.vue";
|
|
12
|
-
export { default as Button } from "./components/Button.vue";
|
|
7
|
+
export { default as AnchoredOverlay } from "./components/overlays/AnchoredOverlay.vue";
|
|
8
|
+
export { default as Avatar } from "./components/brand/Avatar.vue";
|
|
9
|
+
export { default as BarChart } from "./components/charts/BarChart.vue";
|
|
10
|
+
export { default as BottomSheet } from "./components/layout/BottomSheet.vue";
|
|
11
|
+
export { default as BrandMark } from "./components/brand/BrandMark.vue";
|
|
12
|
+
export { default as Button } from "./components/primitives/Button.vue";
|
|
13
13
|
export { vAction } from "./lib/pressAction.js";
|
|
14
|
-
export { default as Card } from "./components/Card.vue";
|
|
15
|
-
export { default as ChangeStatusMark } from "./components/ChangeStatusMark.vue";
|
|
16
|
-
export { type ChangeStatus } from "./components/changeStatus.js";
|
|
17
|
-
export { default as DiffStat } from "./components/DiffStat.vue";
|
|
18
|
-
export { default as Code } from "./components/Code.vue";
|
|
19
|
-
export { default as CodeField } from "./components/CodeField.vue";
|
|
20
|
-
export { default as ConfirmDialog } from "./components/ConfirmDialog.vue";
|
|
21
|
-
export { default as ContextMenu } from "./components/ContextMenu.vue";
|
|
22
|
-
export { default as CopyButton } from "./components/CopyButton.vue";
|
|
23
|
-
export { type TallyItem, default as StatusTally } from "./components/StatusTally.vue";
|
|
24
|
-
export { default as DagEditor } from "./components/DagEditor.vue";
|
|
25
|
-
export { default as DagGraph } from "./components/DagGraph.vue";
|
|
26
|
-
export { default as DisclosureRow } from "./components/DisclosureRow.vue";
|
|
27
|
-
export { type DagEdge, type DagNode } from "./components/dagLayout.js";
|
|
28
|
-
export { default as FilterBar } from "./components/FilterBar.vue";
|
|
29
|
-
export { default as Icon } from "./components/Icon.vue";
|
|
30
|
-
export { default as ImageView } from "./components/ImageView.vue";
|
|
31
|
-
export { isRenderableImage } from "./components/imageView.js";
|
|
32
|
-
export { default as InfoDialog } from "./components/InfoDialog.vue";
|
|
33
|
-
export { default as InfoHint } from "./components/InfoHint.vue";
|
|
34
|
-
export { default as InfoTable } from "./components/InfoTable.vue";
|
|
35
|
-
export { default as Markdown } from "./components/Markdown.vue";
|
|
36
|
-
export { default as
|
|
37
|
-
export { default as
|
|
38
|
-
export { default as
|
|
39
|
-
export {
|
|
40
|
-
export {
|
|
14
|
+
export { default as Card } from "./components/layout/Card.vue";
|
|
15
|
+
export { default as ChangeStatusMark } from "./components/feedback/ChangeStatusMark.vue";
|
|
16
|
+
export { type ChangeStatus } from "./components/feedback/changeStatus.js";
|
|
17
|
+
export { default as DiffStat } from "./components/charts/DiffStat.vue";
|
|
18
|
+
export { default as Code } from "./components/primitives/Code.vue";
|
|
19
|
+
export { default as CodeField } from "./components/forms/CodeField.vue";
|
|
20
|
+
export { default as ConfirmDialog } from "./components/overlays/ConfirmDialog.vue";
|
|
21
|
+
export { default as ContextMenu } from "./components/overlays/ContextMenu.vue";
|
|
22
|
+
export { default as CopyButton } from "./components/primitives/CopyButton.vue";
|
|
23
|
+
export { type TallyItem, default as StatusTally } from "./components/charts/StatusTally.vue";
|
|
24
|
+
export { default as DagEditor } from "./components/charts/DagEditor.vue";
|
|
25
|
+
export { default as DagGraph } from "./components/charts/DagGraph.vue";
|
|
26
|
+
export { default as DisclosureRow } from "./components/rows/DisclosureRow.vue";
|
|
27
|
+
export { type DagEdge, type DagNode } from "./components/charts/dagLayout.js";
|
|
28
|
+
export { default as FilterBar } from "./components/forms/FilterBar.vue";
|
|
29
|
+
export { default as Icon } from "./components/primitives/Icon.vue";
|
|
30
|
+
export { default as ImageView } from "./components/primitives/ImageView.vue";
|
|
31
|
+
export { isRenderableImage } from "./components/primitives/imageView.js";
|
|
32
|
+
export { default as InfoDialog } from "./components/overlays/InfoDialog.vue";
|
|
33
|
+
export { default as InfoHint } from "./components/feedback/InfoHint.vue";
|
|
34
|
+
export { default as InfoTable } from "./components/feedback/InfoTable.vue";
|
|
35
|
+
export { default as Markdown } from "./components/markdown/Markdown.vue";
|
|
36
|
+
export { default as MarkdownDocument } from "./components/markdown/MarkdownDocument.vue";
|
|
37
|
+
export { default as MarkdownFigure } from "./components/charts/MarkdownFigure.vue";
|
|
38
|
+
export { default as Modal } from "./components/overlays/Modal.vue";
|
|
39
|
+
export { default as NavRail } from "./components/layout/NavRail.vue";
|
|
40
|
+
export { type NavGroup } from "./components/layout/navRail.js";
|
|
41
|
+
export { default as NoteEditor } from "./components/forms/NoteEditor.vue";
|
|
41
42
|
export { type NoteDraft, type NoteDraftOptions, useNoteDraft } from "./composables/useNoteDraft.js";
|
|
42
43
|
export { useKeyedDraft } from "./composables/useKeyedDraft.js";
|
|
43
|
-
export { default as Notice } from "./components/Notice.vue";
|
|
44
|
-
export { default as NoticeStack } from "./components/NoticeStack.vue";
|
|
45
|
-
export { type NoticeAction, type NoticeModel, type NoticeTone } from "./components/notice.js";
|
|
46
|
-
export { default as Page } from "./components/Page.vue";
|
|
47
|
-
export { default as PageAction } from "./components/PageAction.vue";
|
|
48
|
-
export { default as PageHeader } from "./components/PageHeader.vue";
|
|
49
|
-
export { default as PersonaFace } from "./components/PersonaFace.vue";
|
|
50
|
-
export { type PersonaLike } from "./components/personaFace.js";
|
|
51
|
-
export { default as ScrollFrame } from "./components/ScrollFrame.vue";
|
|
52
|
-
export { default as Picker } from "./components/Picker.vue";
|
|
53
|
-
export { type PickerGroup, type PickerOption, type PickerOptions } from "./components/picker.js";
|
|
54
|
-
export { default as ProgressRing } from "./components/ProgressRing.vue";
|
|
55
|
-
export { default as ProseField } from "./components/ProseField.vue";
|
|
56
|
-
export { default as RepoRail } from "./components/RepoRail.vue";
|
|
57
|
-
export { type RepoRailAll, type RepoRailGroup, type RepoRailRow } from "./components/repoRail.js";
|
|
58
|
-
export { default as ResizeSeam } from "./components/ResizeSeam.vue";
|
|
59
|
-
export { default as ResponsiveOverlay } from "./components/ResponsiveOverlay.vue";
|
|
60
|
-
export { default as Row } from "./components/Row.vue";
|
|
61
|
-
export { default as RowGroup } from "./components/RowGroup.vue";
|
|
62
|
-
export { default as SearchBar } from "./components/SearchBar.vue";
|
|
63
|
-
export { default as SegmentedControl } from "./components/SegmentedControl.vue";
|
|
64
|
-
export { seriesColor } from "./components/seriesAccent.js";
|
|
65
|
-
export { default as SkeletonRows } from "./components/SkeletonRows.vue";
|
|
66
|
-
export { default as SplitView } from "./components/SplitView.vue";
|
|
67
|
-
export { useCompact } from "./components/splitView.js";
|
|
68
|
-
export { default as StatStrip } from "./components/StatStrip.vue";
|
|
69
|
-
export { default as StatusBadge, type StatusVariant } from "./components/StatusBadge.vue";
|
|
70
|
-
export { default as StepSection } from "./components/StepSection.vue";
|
|
44
|
+
export { default as Notice } from "./components/feedback/Notice.vue";
|
|
45
|
+
export { default as NoticeStack } from "./components/feedback/NoticeStack.vue";
|
|
46
|
+
export { type NoticeAction, type NoticeModel, type NoticeTone } from "./components/feedback/notice.js";
|
|
47
|
+
export { default as Page } from "./components/layout/Page.vue";
|
|
48
|
+
export { default as PageAction } from "./components/layout/PageAction.vue";
|
|
49
|
+
export { default as PageHeader } from "./components/layout/PageHeader.vue";
|
|
50
|
+
export { default as PersonaFace } from "./components/brand/PersonaFace.vue";
|
|
51
|
+
export { type PersonaLike } from "./components/brand/personaFace.js";
|
|
52
|
+
export { default as ScrollFrame } from "./components/layout/ScrollFrame.vue";
|
|
53
|
+
export { default as Picker } from "./components/forms/Picker.vue";
|
|
54
|
+
export { type PickerGroup, type PickerOption, type PickerOptions } from "./components/forms/picker.js";
|
|
55
|
+
export { default as ProgressRing } from "./components/charts/ProgressRing.vue";
|
|
56
|
+
export { default as ProseField } from "./components/forms/ProseField.vue";
|
|
57
|
+
export { default as RepoRail } from "./components/layout/RepoRail.vue";
|
|
58
|
+
export { type RepoRailAll, type RepoRailGroup, type RepoRailRow } from "./components/layout/repoRail.js";
|
|
59
|
+
export { default as ResizeSeam } from "./components/layout/ResizeSeam.vue";
|
|
60
|
+
export { default as ResponsiveOverlay } from "./components/overlays/ResponsiveOverlay.vue";
|
|
61
|
+
export { default as Row } from "./components/rows/Row.vue";
|
|
62
|
+
export { default as RowGroup } from "./components/rows/RowGroup.vue";
|
|
63
|
+
export { default as SearchBar } from "./components/forms/SearchBar.vue";
|
|
64
|
+
export { default as SegmentedControl } from "./components/forms/SegmentedControl.vue";
|
|
65
|
+
export { seriesColor } from "./components/charts/seriesAccent.js";
|
|
66
|
+
export { default as SkeletonRows } from "./components/feedback/SkeletonRows.vue";
|
|
67
|
+
export { default as SplitView } from "./components/layout/SplitView.vue";
|
|
68
|
+
export { useCompact } from "./components/layout/splitView.js";
|
|
69
|
+
export { default as StatStrip } from "./components/charts/StatStrip.vue";
|
|
70
|
+
export { default as StatusBadge, type StatusVariant } from "./components/feedback/StatusBadge.vue";
|
|
71
|
+
export { default as StepSection } from "./components/layout/StepSection.vue";
|
|
71
72
|
export { sinceOf, TIME_WINDOWS, type TimeWindow, timeWindowWords } from "./lib/timeWindow.js";
|
|
72
73
|
export { type IconName } from "./icons/iconSets.js";
|
|
73
74
|
export { useDevice } from "./composables/useDevice.js";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const formatBytes: (bytes: number | undefined) => string;
|
|
2
|
+
export declare const formatTokens: (tokens: number) => string;
|
|
3
|
+
export declare const initialsOf: (name: string) => string | undefined;
|
|
4
|
+
export declare const formatDate: (at: number) => string;
|
|
5
|
+
export declare const formatDayMonth: (at: number) => string;
|
|
6
|
+
export declare const formatDateTime: (at: number) => string;
|
|
7
|
+
export declare const formatTimestamp: (at: number) => string;
|
|
8
|
+
export declare const formatTime: (at: number) => string;
|
|
9
|
+
export declare const formatClock: (at: number) => string;
|
|
10
|
+
export declare const formatWeekdayTime: (at: number) => string;
|
|
11
|
+
export declare const timeAgo: (at: number, { now, days }?: {
|
|
12
|
+
now?: number;
|
|
13
|
+
days?: boolean;
|
|
14
|
+
}) => string;
|
|
15
|
+
export declare const freshness: (at: number) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface TextEdit {
|
|
2
|
+
readonly text: string;
|
|
3
|
+
readonly start: number;
|
|
4
|
+
readonly end: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const toggleWrap: (text: string, start: number, end: number, marker: string) => TextEdit;
|
|
7
|
+
export declare const insertLink: (text: string, start: number, end: number) => TextEdit;
|
|
8
|
+
export declare const indentLines: (text: string, start: number, end: number) => TextEdit;
|
|
9
|
+
export declare const outdentLines: (text: string, start: number, end: number) => TextEdit;
|
|
10
|
+
export declare const onListLine: (text: string, offset: number) => boolean;
|
|
11
|
+
export interface ListEnter {
|
|
12
|
+
readonly edit: TextEdit;
|
|
13
|
+
readonly ended: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const continueList: (text: string, offset: number) => ListEnter | undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type EditKind = "typing" | "deleting" | "structural";
|
|
2
|
+
export interface DocumentState {
|
|
3
|
+
readonly text: string;
|
|
4
|
+
readonly caret: number;
|
|
5
|
+
}
|
|
6
|
+
export interface MarkdownHistory {
|
|
7
|
+
readonly reset: (state: DocumentState) => void;
|
|
8
|
+
readonly record: (state: DocumentState, kind: EditKind, at: number) => void;
|
|
9
|
+
readonly undo: () => DocumentState | undefined;
|
|
10
|
+
readonly redo: () => DocumentState | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare const createMarkdownHistory: () => MarkdownHistory;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { blockAtOffset, type MarkdownBlock, type MarkdownBlocks, offsetOfLine, splitMarkdownBlocks } from "./blocks.js";
|
|
2
2
|
export { type CodeBlock, codeBlockHtml, copyCodeFromEvent, escapeHtml } from "./code.js";
|
|
3
|
+
export { continueList, indentLines, insertLink, type ListEnter, onListLine, outdentLines, type TextEdit, toggleWrap } from "./edits.js";
|
|
4
|
+
export { createMarkdownHistory, type DocumentState, type EditKind, type MarkdownHistory } from "./history.js";
|
|
5
|
+
export { blockBody, buildBlockElement, caretAtOffset, offsetOfCaret } from "./sourceDom.js";
|
|
3
6
|
export { type BarsFigure, type BarsFigureItem, type DagFigure, type DagFigureEdge, type DagFigureNode, type Figure, FIGURE_ACCENTS, type FigureAccent, FIGURE_LANGS, JSON_FIGURE_LANGS, type MarkdownSegment, MERMAID_LANG, type MermaidFigure, parseFigure, splitFigureSegments, type StatsFigure, type StatsFigureItem, } from "./figures.js";
|
|
4
7
|
export { createStreamingMarkdown, lexBlocks, lexInline, type MarkdownDecorator, type MarkdownPart, markdownParseCount, type MarkdownToken, renderMarkdown, renderMarkdownParts, type RenderedMarkdown, settledEnd, type StreamingMarkdown, } from "./render.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const blockBody: (element: Element) => string;
|
|
2
|
+
export declare const buildBlockElement: (source: string) => HTMLElement;
|
|
3
|
+
export declare const offsetOfCaret: (element: HTMLElement, node: Node, offset: number) => number;
|
|
4
|
+
export declare const caretAtOffset: (element: HTMLElement, offset: number) => {
|
|
5
|
+
readonly node: Node;
|
|
6
|
+
readonly offset: number;
|
|
7
|
+
} | undefined;
|
package/names.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/extension-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.249.0",
|
|
4
4
|
"description": "The UI kit intentic extensions render with, host-provided at runtime (the app's own components via the import map), so extension UI is always native to the shell",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/intentic/intentic.git",
|
|
10
|
-
"directory": "
|
|
10
|
+
"directory": "_shared/extension-ui"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
package/src/format.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* node-environment tests run without a Vue plugin to parse SFCs with. Importing a formatter from the barrel
|
|
6
|
-
* dragged the whole component library into those tests and broke them on the first `<template>` it hit. Same
|
|
7
|
-
* split, and same reason, as `@intentic/ui`'s own `./path` and `./time` entry points.
|
|
8
|
-
*
|
|
9
|
-
* A SOURCE-level door, for in-repo extensions (whose code vite compiles into the app bundle) and their tests.
|
|
10
|
-
* A git-installed bundle resolves its bare specifiers through the import map in index.html, which carries the
|
|
11
|
-
* barrel alone, so nothing is exported here that the barrel does not also export, and a third-party author
|
|
12
|
-
* reaching for `@intentic/extension-ui` is missing none of it. */
|
|
1
|
+
// The kit's formatters, reachable without the component barrel: `index.ts` pulls in every .vue component, which breaks
|
|
2
|
+
// an extension's node-environment tests that have no Vue plugin to parse SFCs with. A source-level door for in-repo
|
|
3
|
+
// extensions and their tests; a git-installed bundle resolves through the import map instead, which carries the same
|
|
4
|
+
// names.
|
|
13
5
|
export {
|
|
14
6
|
formatBytes,
|
|
15
7
|
formatDate,
|
package/src/index.ts
CHANGED
|
@@ -1,82 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* into its import map (extension-host/hostModules.ts), so third-party bundles marking it external get the
|
|
5
|
-
* shell's own component instances and theming; in-repo builtin extension packages bundle this same module and
|
|
6
|
-
* land on the same instances. Export names are mirrored in ../names.mjs (shim generation + drift assertion).
|
|
7
|
-
* Publishing a typed npm artifact for out-of-repo authors is a marketplace-phase task. */
|
|
1
|
+
// The UI kit extensions render with: a curated slice of the app design system (@intentic/ui) plus the PrimeVue
|
|
2
|
+
// primitives extension views use. Host-provided at runtime, mapped into the import map so third-party and in-repo
|
|
3
|
+
// bundles share the same component instances.
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* The comment lives out here rather than beside the name because extensionUiNames.test.ts parses this brace
|
|
12
|
-
* block for names, and reads a comment inside it as exports that do not exist.
|
|
13
|
-
*
|
|
14
|
-
* <SplitView> is here for exactly the same reason one level up: five screens are an index beside a body, and the
|
|
15
|
-
* one implementation that had solved it (HubLayout) sat in the web app where no extension could import it. */
|
|
5
|
+
// Documents `<Row>`/`<RowGroup>`/`<SplitView>` together, here rather than by name: extensionUiNames.test.ts parses
|
|
6
|
+
// this block for names and would misread an attached comment as one.
|
|
16
7
|
export {
|
|
17
|
-
|
|
18
|
-
* deployments, maintenance, acceptance, and each of them had reached a different answer about how you
|
|
19
|
-
* choose what it spends: three had no control at all and named the model in a tooltip, the fourth grew a
|
|
20
|
-
* chip of its own. That is the same divergence <SplitView> and <Row> were shipped to end, arriving on the
|
|
21
|
-
* one control in the app where getting it wrong costs money rather than pixels. `useAgentRunPick` is the
|
|
22
|
-
* half that needs `api.models` and takes it as an argument, so the kit stays free of the extension API. */
|
|
8
|
+
// `useAgentRunPick` takes `api.models` as an argument, so the kit itself stays free of the extension API.
|
|
23
9
|
AgentRunButton,
|
|
24
10
|
type AgentRunChoice,
|
|
25
11
|
type AgentRunPicker,
|
|
26
12
|
type ModelPicking,
|
|
27
13
|
useAgentRunPick,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* popped-out panel it opens off the bottom edge, over its own trigger, and cannot be clicked shut, the
|
|
31
|
-
* failure the kit's own tooltip directive exists to avoid. */
|
|
14
|
+
// Use over PrimeVue's Popover in a popped-out panel: Popover measures against the opener's window and can open
|
|
15
|
+
// off-screen, unclosable.
|
|
32
16
|
AnchoredOverlay,
|
|
33
17
|
Avatar,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* same tick it was pressed and draws the wait if it outlives a beat. Extension actions are the slowest in
|
|
37
|
-
* the app — a deployment, a workflow run, an agent — so they are exactly the ones an impatient second
|
|
38
|
-
* click used to fire twice. `vAction` ships beside it as the same behaviour for a hand-styled control:
|
|
39
|
-
* `<button v-action="run">`. Imported rather than left to the host's global registration on purpose, an
|
|
40
|
-
* unresolved directive is a button that silently does nothing, which is a worse failure than a missing
|
|
41
|
-
* tooltip and not one a reviewer would spot. */
|
|
18
|
+
// A click handler returning a promise auto-locks the button and shows a wait state; `vAction` is the same for a
|
|
19
|
+
// raw `<button v-action="run">`, imported explicitly since an unresolved directive silently does nothing.
|
|
42
20
|
Button,
|
|
43
21
|
vAction,
|
|
44
22
|
BarChart,
|
|
45
23
|
BottomSheet,
|
|
46
|
-
|
|
47
|
-
* capability cards were the first), and because its fallback is the part a hand-roll skips: a platform
|
|
48
|
-
* with no installed connector still has to render as SOMETHING, and the monogram is that something. */
|
|
24
|
+
// Renders a platform's brand; falls back to a monogram when no connector for it is installed.
|
|
49
25
|
BrandMark,
|
|
50
26
|
Card,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
* the module-global navigator belongs to the opener, whose document isn't focused, so the write rejects
|
|
54
|
-
* and every call site swallows it. */
|
|
27
|
+
// Use over raw `navigator.clipboard`: in a popped-out panel it belongs to the unfocused opener, so a direct write
|
|
28
|
+
// rejects.
|
|
55
29
|
clipboardOf,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
Shift or Alt click belong to the browser, and do its own work only on the plain one. Three views had
|
|
59
|
-
hand-rolled a navigate() on a <button>, which is the version of that decision where the modifier keys
|
|
60
|
-
simply do not work. */
|
|
30
|
+
// A row that is both a link and a control: modifier clicks (Ctrl/⌘/Shift/Alt) fall through to the browser, a plain
|
|
31
|
+
// click acts.
|
|
61
32
|
browserOwnsClick,
|
|
62
33
|
appLink,
|
|
63
|
-
|
|
64
|
-
* hostname and the second to open one in a tab, and the two that had solved it (the preview panel's iframe
|
|
65
|
-
* gate, the terminal's Ctrl+click) both sat in the web app where no extension could import them. The
|
|
66
|
-
* duplicate was word-for-word, down to the sentence a user reads while DNS propagates. */
|
|
34
|
+
// Opens a freshly minted preview hostname in a tab once it is ready.
|
|
67
35
|
openForwardedPort,
|
|
68
|
-
|
|
69
|
-
* at all for the reason <SplitView> did: the git-history extension is the seventh surface to draw one, and
|
|
70
|
-
* the six that had solved it all sat in the web app where no extension could import them. <ChangeStatusMark>
|
|
71
|
-
* carries the fixed-width cell that keeps a column of paths aligned whatever letter lands in it, the detail
|
|
72
|
-
* a hand-rolled copy gets subtly wrong. */
|
|
36
|
+
// `ChangeStatusMark` is fixed-width, so a column of paths stays aligned whatever status letter lands in it.
|
|
73
37
|
ChangeStatusMark,
|
|
74
38
|
type ChangeStatus,
|
|
75
39
|
ui,
|
|
76
40
|
Code,
|
|
77
|
-
|
|
78
|
-
* put a bare grey <textarea> next to a coloured block of the very same file: the kit had no way
|
|
79
|
-
* to say "this text, in its own colours, with a caret in it". */
|
|
41
|
+
// The editable counterpart to `Code`: syntax-coloured text with a caret in it.
|
|
80
42
|
CodeField,
|
|
81
43
|
ConfirmDialog,
|
|
82
44
|
ContextMenu,
|
|
@@ -88,79 +50,47 @@ export {
|
|
|
88
50
|
type DagEdge,
|
|
89
51
|
type DagNode,
|
|
90
52
|
DiffStat,
|
|
91
|
-
|
|
92
|
-
* row WITHOUT the expandable row is what made SIX extensions build their own — activity, maintenance,
|
|
93
|
-
* acceptance (twice), automations, deployments, pipelines, preview — and no two of them drew the same
|
|
94
|
-
* chevron, indented the opened block to the same column, or painted an open row the same colour. The
|
|
95
|
-
* preview extension's ports list went furthest and used an `(i)` as the toggle, thirty pixels under a real
|
|
96
|
-
* <InfoHint> whose `(i)` is a hover card: one glyph, two behaviours, one screen. */
|
|
53
|
+
// An expandable row; don't reuse `(i)` as its toggle glyph, `<InfoHint>` already uses `(i)` for a hover card.
|
|
97
54
|
DisclosureRow,
|
|
98
55
|
FilterBar,
|
|
99
56
|
Icon,
|
|
100
57
|
type IconName,
|
|
101
58
|
ImageView,
|
|
102
|
-
|
|
103
|
-
* does: an extension with something to EXPLAIN rather than confirm, or a block of label→value facts to lay
|
|
104
|
-
* out, would otherwise hand-roll a dialog shell and a two-column grid, and the grid is where a hand-roll
|
|
105
|
-
* drifts, because keeping the value column aligned across rows is the whole of it. */
|
|
59
|
+
// For explaining, not confirming, or laying out label→value facts; keeps the value column aligned across rows.
|
|
106
60
|
InfoDialog,
|
|
107
61
|
InfoHint,
|
|
108
62
|
InfoTable,
|
|
109
63
|
isRenderableImage,
|
|
110
64
|
Markdown,
|
|
65
|
+
// An editable markdown document (author-facing), unlike `Markdown`'s read-only render.
|
|
66
|
+
MarkdownDocument,
|
|
111
67
|
MarkdownFigure,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
* but PrimeVue's Dialog and a width typed into a style attribute, which is exactly how the app itself
|
|
115
|
-
* ended up with thirteen widths and one viewport clamp between seventeen dialogs. */
|
|
68
|
+
// For a dialog that is neither a confirm nor an explainer; clamps width to the viewport, unlike a raw PrimeVue
|
|
69
|
+
// Dialog.
|
|
116
70
|
Modal,
|
|
117
71
|
type NavGroup,
|
|
118
72
|
NavRail,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
* built the same thing twice: the same Copy/Edit/Delete cluster, the same Cancel/Save pair, the same
|
|
122
|
-
* in-place confirmation, the same draft-or-file binding, the same read-and-write-on-one-surface rule. They
|
|
123
|
-
* had already drifted in the ways a second copy does: one cleared its confirmation when a write failed and
|
|
124
|
-
* the other did not, and NEITHER caught a failing write, so the error strip filled in from the mutation
|
|
125
|
-
* while the click handler's promise rejected into the console. The component is the chrome and the
|
|
126
|
-
* composable is the lifecycle, separately, because what a note LOOKS like past the frame is exactly where
|
|
127
|
-
* two panes differ. */
|
|
73
|
+
// `NoteEditor` is the chrome, `useNoteDraft` the lifecycle, kept separate since a note's look past the frame
|
|
74
|
+
// differs by pane.
|
|
128
75
|
NoteEditor,
|
|
129
76
|
type NoteDraft,
|
|
130
77
|
type NoteDraftOptions,
|
|
131
78
|
useNoteDraft,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* keyed store above it, down to the `undefined` deletes rule the picker's "Unsaved" reads. */
|
|
79
|
+
// A keyed store of drafts that must outlive the pane showing them; deleting a key (`undefined`) is what a picker's
|
|
80
|
+
// "Unsaved" reads.
|
|
135
81
|
useKeyedDraft,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
* and a hand-rolled error strip is the first thing to disagree with the app's about tone and dismissal.
|
|
139
|
-
*
|
|
140
|
-
* <Notice>. THE SINGLE ONE, was missing from that shipment, and it is the same mistake <Row>/<RowGroup>
|
|
141
|
-
* and <PageAction>/<PageHeader> each record one release earlier: the container went out without the thing
|
|
142
|
-
* that goes in it. Notice.vue's own comment says every view that hand-rolled `ui.alertDanger()` around an
|
|
143
|
-
* interpolated error string renders it instead, "which is what makes the app's failures sound like one
|
|
144
|
-
* product rather than like sixty throw sites", and the app took that sweep, 107 call sites of it. The
|
|
145
|
-
* extensions could not: the kit handed out the stack and kept the row, so thirteen of them went on
|
|
146
|
-
* hand-rolling the strip. Most of a view's failures are ONE at a time; the stack is the rarer case. */
|
|
82
|
+
// `NoticeStack` holds failures from several async actions; `Notice` is the single one, for the common one-at-a-time
|
|
83
|
+
// case.
|
|
147
84
|
type NoticeModel,
|
|
148
85
|
type NoticeTone,
|
|
149
86
|
type NoticeAction,
|
|
150
87
|
Notice,
|
|
151
88
|
NoticeStack,
|
|
152
89
|
Page,
|
|
153
|
-
/* <PageAction> ships beside <PageHeader> for the same reason <Row> ships beside <RowGroup>: handing out the
|
|
154
|
-
* container without the thing that goes in it is what made every view invent one. Five extensions filled
|
|
155
|
-
* `#actions` with a raw PrimeVue <Button> and picked a different cell of its variant matrix each time. */
|
|
156
90
|
PageAction,
|
|
157
91
|
PageHeader,
|
|
158
92
|
ScrollFrame,
|
|
159
|
-
|
|
160
|
-
* here, an automation's "Runs as" and a workflow step's "Acts as", and neither could reach the drawing
|
|
161
|
-
* every surface that merely LISTS a persona already uses. So the one screen where you are picking a person
|
|
162
|
-
* by sight was the one screen showing a line of text. It is exported alongside <Picker>'s own `face` option
|
|
163
|
-
* field, which is what most callers actually want: hand the row a persona and the picker draws it. */
|
|
93
|
+
// Also reachable via `Picker`'s `face` option: hand it a persona and the picker draws it.
|
|
164
94
|
PersonaFace,
|
|
165
95
|
type PersonaLike,
|
|
166
96
|
Picker,
|
|
@@ -168,24 +98,15 @@ export {
|
|
|
168
98
|
type PickerOption,
|
|
169
99
|
type PickerOptions,
|
|
170
100
|
ProgressRing,
|
|
171
|
-
|
|
172
|
-
* board to one repository, maintenance and pipelines, and both had written the same column. Same pinned
|
|
173
|
-
* "All repositories" row outside every group, same one-number-per-row rule with the second fact as its
|
|
174
|
-
* colour, same swap to a <Picker> at the width the split folds at. What differs between them is the report
|
|
175
|
-
* behind it, which is why the rows arrive as data. */
|
|
101
|
+
// A workspace board scoped to one repo; always includes a pinned "All repositories" row outside the groups.
|
|
176
102
|
RepoRail,
|
|
177
103
|
type RepoRailAll,
|
|
178
104
|
type RepoRailGroup,
|
|
179
105
|
type RepoRailRow,
|
|
180
|
-
|
|
181
|
-
* wants prose typeset as a document, or a pane the reader can size, would otherwise hand-roll one, and
|
|
182
|
-
* both recipes have a failure mode (a replica that disagrees with its field; a drag bound to the window)
|
|
183
|
-
* that is invisible until it is in front of somebody. */
|
|
106
|
+
// Prose typeset as a document (`ProseField`) and a pane the reader can resize (`ResizeSeam`).
|
|
184
107
|
ProseField,
|
|
185
108
|
ResizeSeam,
|
|
186
|
-
|
|
187
|
-
* is the same anchored box on desktop and a thumb-reachable sheet on a phone, behind one open flag. Extension
|
|
188
|
-
* views are read on both, and a popover pinned to a 24px trigger is not usable on a touch screen. */
|
|
109
|
+
// Use over `AnchoredOverlay` for a menu: anchored on desktop, a thumb-reachable sheet on a phone, one open flag.
|
|
189
110
|
ResponsiveOverlay,
|
|
190
111
|
Row,
|
|
191
112
|
RowGroup,
|
|
@@ -193,18 +114,10 @@ export {
|
|
|
193
114
|
SegmentedControl,
|
|
194
115
|
seriesColor,
|
|
195
116
|
sinceOf,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
* for 90ms on a warm read is worse than no placeholder at all, and that is not a thing anybody notices in
|
|
199
|
-
* the screenshot they ship. See its note in the kit for the two thresholds. */
|
|
117
|
+
// Gates a skeleton placeholder so a flash on a fast read never shows; see its own note in the kit for the two
|
|
118
|
+
// thresholds.
|
|
200
119
|
useLoadingReveal,
|
|
201
|
-
|
|
202
|
-
* without the WAIT is what made three extensions write their own. Pipelines, deployments and maintenance
|
|
203
|
-
* each hand-rolled a placeholder board, and the row-shaped half of all three is this component, same
|
|
204
|
-
* bars, same widths walked in order, same `aria-hidden` under the caller's one status region. What they
|
|
205
|
-
* could not get right by hand is the part that does not show up in a screenshot: a bar is thinner than the
|
|
206
|
-
* text it replaces, so an outline built out of divs is shorter than the list that lands and the page jumps
|
|
207
|
-
* as it fills. This one renders REAL <Row>s, so it inherits the tier's padding and keeps the height. */
|
|
120
|
+
// Renders real `<Row>`s rather than divs, so its height matches what replaces it and the page doesn't jump.
|
|
208
121
|
SkeletonRows,
|
|
209
122
|
SplitView,
|
|
210
123
|
StatStrip,
|
|
@@ -214,43 +127,29 @@ export {
|
|
|
214
127
|
TIME_WINDOWS,
|
|
215
128
|
type TimeWindow,
|
|
216
129
|
timeWindowWords,
|
|
217
|
-
|
|
218
|
-
* to a compact control, so the two halves of one screen change shape at one width. Outside a split it falls
|
|
219
|
-
* back to the device, which is the only narrow case left. */
|
|
130
|
+
// Whether the enclosing `<SplitView>` has folded to compact; outside a split it falls back to device width.
|
|
220
131
|
useCompact,
|
|
221
132
|
useDevice,
|
|
222
|
-
|
|
223
|
-
* decided. Ships because a keyboard-navigable list is the shape half these views are, and the parts a
|
|
224
|
-
* hand-roll leaves out (wrapping at the ends, keeping the active row in view) are invisible on a mouse. */
|
|
133
|
+
// Arrow/Home/End/Enter navigation over a list, with wrap-around and scroll-into-view handled.
|
|
225
134
|
useListNavigation,
|
|
226
|
-
|
|
227
|
-
* and a page of mutations, the two shapes every such view hand-rolls, one interval and one busy flag at a
|
|
228
|
-
* time, each subtly wrong (a clock that keeps ticking with nothing on screen; a double-click firing twice). */
|
|
135
|
+
// A ticking clock (`useNow`) and a busy/error flag for one mutation at a time (`useAsyncAction`).
|
|
229
136
|
useNow,
|
|
230
137
|
errorMessage,
|
|
231
138
|
noticeFrom,
|
|
232
139
|
noticeOf,
|
|
233
140
|
useAsyncAction,
|
|
234
|
-
|
|
235
|
-
* renders into a pane the reader can drag to half its width, not into the window. */
|
|
141
|
+
// Whether the element itself is narrow, not the window; views render into a resizable pane.
|
|
236
142
|
useNarrow,
|
|
237
|
-
|
|
238
|
-
* the same index column, all three keep the pick in the URL, and all three lost it the moment you clicked the
|
|
239
|
-
* tile again, because a tile opens a view at its bare address. Solving that per extension would be three
|
|
240
|
-
* copies of one rule about what a link means versus what a memory is allowed to guess. */
|
|
143
|
+
// Remembers a rail's last pick across reopening a tile, which otherwise opens at the view's bare address.
|
|
241
144
|
useRailMemory,
|
|
242
|
-
|
|
243
|
-
* page scrollport a position that stops meaning anything the moment the selection moves, and every such
|
|
244
|
-
* view would otherwise re-derive the same answer: find the shell's scroller, put it back at the top. */
|
|
145
|
+
// Resets the page scrollport to top when a rail selection changes; the other half of `scroll="page"`.
|
|
245
146
|
useScrollReset,
|
|
246
|
-
|
|
247
|
-
* over its content is the shape three of these sections now are. */
|
|
147
|
+
// Height the next pinned element must clear, for a page-scrolling view stacking pinned bars.
|
|
248
148
|
type StickyTop,
|
|
249
149
|
useStickyTop,
|
|
250
150
|
useTheme,
|
|
251
151
|
} from "@intentic/ui";
|
|
252
|
-
// Also reachable as `@intentic/extension-ui/format`,
|
|
253
|
-
// wants them without the components attached.
|
|
152
|
+
// Also reachable as `@intentic/extension-ui/format`, without the components attached.
|
|
254
153
|
export {
|
|
255
154
|
formatBytes,
|
|
256
155
|
formatDate,
|
|
@@ -263,10 +162,8 @@ export {
|
|
|
263
162
|
freshness,
|
|
264
163
|
timeAgo,
|
|
265
164
|
} from "./format.js";
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
* tally) rather than round-tripping through markdown to draw one. The parser and the document splitter stay out
|
|
269
|
-
* of the kit: they are the prose surface's job, and <Markdown> already does it. */
|
|
165
|
+
// Types only, so an extension can build a figure straight from facts it holds instead of round-tripping through
|
|
166
|
+
// markdown. The parser and document splitter stay in `<Markdown>`, not here.
|
|
270
167
|
export type {
|
|
271
168
|
BarsFigure,
|
|
272
169
|
BarsFigureItem,
|
|
@@ -279,15 +176,9 @@ export type {
|
|
|
279
176
|
StatsFigure,
|
|
280
177
|
StatsFigureItem,
|
|
281
178
|
} from "@intentic/ui/markdown";
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
* different padding beside `ui.input`. Those two are gone: <Picker> and `ui.input()` are the spellings.
|
|
286
|
-
* <Dialog> was the third, and it is gone for the same reason: it stayed "until the kit has a general dialog
|
|
287
|
-
* shell", six extension views took it, and every one of them typed its own width into a style attribute with
|
|
288
|
-
* no viewport clamp, the exact spread that <Modal> above now exists to end. The shell is here, so the raw one
|
|
289
|
-
* is not. <Popover> stays only because <ResponsiveOverlay>/<AnchoredOverlay> do not yet cover every menu shape,
|
|
290
|
-
* and it is on the same clock: those two are the ones that open in the right window when a panel is popped out. */
|
|
179
|
+
// Raw PrimeVue primitives kept deliberately few: prefer `Picker`/`ui.input()`/`Modal` over
|
|
180
|
+
// `Select`/`InputText`/`Dialog`.
|
|
181
|
+
// `Popover` stays only where `AnchoredOverlay`/`ResponsiveOverlay` don't yet cover a menu shape.
|
|
291
182
|
export { default as Checkbox } from "primevue/checkbox";
|
|
292
183
|
export type { MenuItem } from "primevue/menuitem";
|
|
293
184
|
export { default as Popover } from "primevue/popover";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|