@intentic/extension-ui 1.209.0 → 1.210.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/dist/format.js +1 -0
- package/dist/index.js +4 -0
- package/dist/types/extension-ui/src/format.d.ts +1 -1
- package/dist/types/extension-ui/src/index.d.ts +2 -2
- package/dist/types/ui/src/components/NoteEditor.vue.d.ts +52 -0
- package/dist/types/ui/src/components/RepoRail.vue.d.ts +17 -0
- package/dist/types/ui/src/components/repoRail.d.ts +21 -0
- package/dist/types/ui/src/composables/useNoteDraft.d.ts +23 -0
- package/dist/types/ui/src/index.d.ts +4 -0
- package/names.mjs +4 -0
- package/package.json +1 -1
- package/src/format.ts +1 -0
- package/src/index.ts +22 -0
package/dist/format.js
CHANGED
|
@@ -13,4 +13,5 @@ export const formatTime = m["formatTime"];
|
|
|
13
13
|
export const formatTimestamp = m["formatTimestamp"];
|
|
14
14
|
export const formatTokens = m["formatTokens"];
|
|
15
15
|
export const formatWeekdayTime = m["formatWeekdayTime"];
|
|
16
|
+
export const freshness = m["freshness"];
|
|
16
17
|
export const timeAgo = m["timeAgo"];
|
package/dist/index.js
CHANGED
|
@@ -37,6 +37,7 @@ export const Markdown = m["Markdown"];
|
|
|
37
37
|
export const MarkdownFigure = m["MarkdownFigure"];
|
|
38
38
|
export const Modal = m["Modal"];
|
|
39
39
|
export const NavRail = m["NavRail"];
|
|
40
|
+
export const NoteEditor = m["NoteEditor"];
|
|
40
41
|
export const Notice = m["Notice"];
|
|
41
42
|
export const NoticeStack = m["NoticeStack"];
|
|
42
43
|
export const Page = m["Page"];
|
|
@@ -46,6 +47,7 @@ export const Picker = m["Picker"];
|
|
|
46
47
|
export const Popover = m["Popover"];
|
|
47
48
|
export const ProgressRing = m["ProgressRing"];
|
|
48
49
|
export const ProseField = m["ProseField"];
|
|
50
|
+
export const RepoRail = m["RepoRail"];
|
|
49
51
|
export const ResizeSeam = m["ResizeSeam"];
|
|
50
52
|
export const ResponsiveOverlay = m["ResponsiveOverlay"];
|
|
51
53
|
export const Row = m["Row"];
|
|
@@ -70,6 +72,7 @@ export const formatTime = m["formatTime"];
|
|
|
70
72
|
export const formatTimestamp = m["formatTimestamp"];
|
|
71
73
|
export const formatTokens = m["formatTokens"];
|
|
72
74
|
export const formatWeekdayTime = m["formatWeekdayTime"];
|
|
75
|
+
export const freshness = m["freshness"];
|
|
73
76
|
export const isRenderableImage = m["isRenderableImage"];
|
|
74
77
|
export const noticeFrom = m["noticeFrom"];
|
|
75
78
|
export const noticeOf = m["noticeOf"];
|
|
@@ -84,6 +87,7 @@ export const useCompact = m["useCompact"];
|
|
|
84
87
|
export const useDevice = m["useDevice"];
|
|
85
88
|
export const useListNavigation = m["useListNavigation"];
|
|
86
89
|
export const useNarrow = m["useNarrow"];
|
|
90
|
+
export const useNoteDraft = m["useNoteDraft"];
|
|
87
91
|
export const useNow = m["useNow"];
|
|
88
92
|
export const useRailMemory = m["useRailMemory"];
|
|
89
93
|
export const useTheme = m["useTheme"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { formatBytes, formatDate, formatDateTime, formatDayMonth, formatTime, formatTimestamp, formatTokens, formatWeekdayTime, timeAgo, } from "../../ui/src/format/index.js";
|
|
1
|
+
export { formatBytes, formatDate, formatDateTime, formatDayMonth, formatTime, formatTimestamp, formatTokens, formatWeekdayTime, freshness, timeAgo, } from "../../ui/src/format/index.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { AgentRunButton, type AgentRunChoice, type AgentRunPicker, type ModelPicking, useAgentRunPick, AnchoredOverlay, Avatar, BarChart, BottomSheet, BrandMark, Card, clipboardOf, ChangeStatusMark, type ChangeStatus, ui, Code, CodeField, ConfirmDialog, ContextMenu, CopyButton, StatusTally, type TallyItem, DagEditor, DagGraph, type DagEdge, type DagNode, DiffStat, FilterBar, Icon, type IconName, ImageView, InfoDialog, InfoHint, InfoTable, isRenderableImage, Markdown, MarkdownFigure, Modal, type NavGroup, NavRail, type NoticeModel, type NoticeTone, type NoticeAction, Notice, NoticeStack, Page, PageAction, PageHeader, ScrollFrame, Picker, type PickerGroup, type PickerOption, type PickerOptions, ProgressRing, ProseField, ResizeSeam, ResponsiveOverlay, Row, RowGroup, SearchBar, SegmentedControl, seriesColor, sinceOf, SplitView, StatStrip, StatusBadge, type StatusVariant, StepSection, TIME_WINDOWS, type TimeWindow, timeWindowWords, useCompact, useDevice, useListNavigation, useNow, errorMessage, noticeFrom, noticeOf, useAsyncAction, useNarrow, useRailMemory, useTheme, } from "../../ui/src/index.js";
|
|
2
|
-
export { formatBytes, formatDate, formatDateTime, formatDayMonth, formatTime, formatTimestamp, formatTokens, formatWeekdayTime, timeAgo, } from "./format.js";
|
|
1
|
+
export { AgentRunButton, type AgentRunChoice, type AgentRunPicker, type ModelPicking, useAgentRunPick, AnchoredOverlay, Avatar, BarChart, BottomSheet, BrandMark, Card, clipboardOf, ChangeStatusMark, type ChangeStatus, ui, Code, CodeField, ConfirmDialog, ContextMenu, CopyButton, StatusTally, type TallyItem, DagEditor, DagGraph, type DagEdge, type DagNode, DiffStat, FilterBar, Icon, type IconName, ImageView, InfoDialog, InfoHint, InfoTable, isRenderableImage, Markdown, MarkdownFigure, Modal, type NavGroup, NavRail, NoteEditor, type NoteDraft, type NoteDraftOptions, useNoteDraft, type NoticeModel, type NoticeTone, type NoticeAction, Notice, NoticeStack, Page, PageAction, PageHeader, ScrollFrame, Picker, type PickerGroup, type PickerOption, type PickerOptions, ProgressRing, RepoRail, type RepoRailAll, type RepoRailGroup, type RepoRailRow, ProseField, ResizeSeam, ResponsiveOverlay, Row, RowGroup, SearchBar, SegmentedControl, seriesColor, sinceOf, SplitView, StatStrip, StatusBadge, type StatusVariant, StepSection, TIME_WINDOWS, type TimeWindow, timeWindowWords, useCompact, useDevice, useListNavigation, useNow, errorMessage, noticeFrom, noticeOf, useAsyncAction, useNarrow, useRailMemory, useTheme, } from "../../ui/src/index.js";
|
|
2
|
+
export { formatBytes, formatDate, formatDateTime, formatDayMonth, formatTime, formatTimestamp, formatTokens, formatWeekdayTime, freshness, timeAgo, } from "./format.js";
|
|
3
3
|
export type { BarsFigure, BarsFigureItem, DagFigure, DagFigureEdge, DagFigureNode, Figure, FigureAccent, MermaidFigure, StatsFigure, StatsFigureItem, } from "../../ui/src/markdown/index.js";
|
|
4
4
|
export { default as Button } from "primevue/button";
|
|
5
5
|
export { default as Checkbox } from "primevue/checkbox";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
raw: string;
|
|
4
|
+
editing: boolean;
|
|
5
|
+
showSource?: boolean;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
saving?: boolean;
|
|
8
|
+
removing?: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
verb?: string;
|
|
11
|
+
};
|
|
12
|
+
declare var __VLS_9: {}, __VLS_12: {}, __VLS_20: {}, __VLS_23: {}, __VLS_47: {}, __VLS_65: {}, __VLS_67: {}, __VLS_92: {};
|
|
13
|
+
type __VLS_Slots = {} & {
|
|
14
|
+
lead?: (props: typeof __VLS_9) => any;
|
|
15
|
+
} & {
|
|
16
|
+
badges?: (props: typeof __VLS_12) => any;
|
|
17
|
+
} & {
|
|
18
|
+
description?: (props: typeof __VLS_20) => any;
|
|
19
|
+
} & {
|
|
20
|
+
meta?: (props: typeof __VLS_23) => any;
|
|
21
|
+
} & {
|
|
22
|
+
actions?: (props: typeof __VLS_47) => any;
|
|
23
|
+
} & {
|
|
24
|
+
strips?: (props: typeof __VLS_65) => any;
|
|
25
|
+
} & {
|
|
26
|
+
confirm?: (props: typeof __VLS_67) => any;
|
|
27
|
+
} & {
|
|
28
|
+
default?: (props: typeof __VLS_92) => any;
|
|
29
|
+
};
|
|
30
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
31
|
+
save: () => any;
|
|
32
|
+
cancel: () => any;
|
|
33
|
+
remove: () => any;
|
|
34
|
+
edit: () => any;
|
|
35
|
+
"update:source": (value: string) => any;
|
|
36
|
+
"update:confirming": (value: boolean) => any;
|
|
37
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
38
|
+
onSave?: (() => any) | undefined;
|
|
39
|
+
onCancel?: (() => any) | undefined;
|
|
40
|
+
onRemove?: (() => any) | undefined;
|
|
41
|
+
onEdit?: (() => any) | undefined;
|
|
42
|
+
"onUpdate:source"?: ((value: string) => any) | undefined;
|
|
43
|
+
"onUpdate:confirming"?: ((value: boolean) => any) | undefined;
|
|
44
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
45
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
46
|
+
declare const _default: typeof __VLS_export;
|
|
47
|
+
export default _default;
|
|
48
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
49
|
+
new (): {
|
|
50
|
+
$slots: S;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RepoRailAll, RepoRailGroup } from "./repoRail.js";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
groups: readonly RepoRailGroup[];
|
|
4
|
+
all: RepoRailAll;
|
|
5
|
+
memory: string;
|
|
6
|
+
};
|
|
7
|
+
type __VLS_ModelProps = {
|
|
8
|
+
modelValue?: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
11
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
"update:modelValue": (value: string | undefined) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
|
+
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IconName } from "../icons/iconSets.js";
|
|
2
|
+
export interface RepoRailRow {
|
|
3
|
+
readonly value: string;
|
|
4
|
+
readonly label: string;
|
|
5
|
+
readonly icon: IconName;
|
|
6
|
+
readonly meta: string;
|
|
7
|
+
readonly tone?: string;
|
|
8
|
+
readonly tooltip?: string;
|
|
9
|
+
readonly mono?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface RepoRailGroup {
|
|
12
|
+
readonly key: string;
|
|
13
|
+
readonly label?: string;
|
|
14
|
+
readonly rows: readonly RepoRailRow[];
|
|
15
|
+
}
|
|
16
|
+
export interface RepoRailAll {
|
|
17
|
+
readonly icon: IconName;
|
|
18
|
+
readonly meta: string;
|
|
19
|
+
readonly tone?: string;
|
|
20
|
+
readonly tooltip?: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref, type WritableComputedRef } from "vue";
|
|
2
|
+
export interface NoteDraftOptions {
|
|
3
|
+
readonly draft: Ref<string | undefined>;
|
|
4
|
+
readonly raw: () => string;
|
|
5
|
+
readonly save: (content: string) => Promise<unknown>;
|
|
6
|
+
readonly remove: () => Promise<unknown>;
|
|
7
|
+
readonly note?: () => unknown;
|
|
8
|
+
readonly onLeave?: () => void;
|
|
9
|
+
readonly onRemoved?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface NoteDraft {
|
|
12
|
+
readonly source: WritableComputedRef<string>;
|
|
13
|
+
readonly editing: ComputedRef<boolean>;
|
|
14
|
+
readonly confirming: Ref<boolean>;
|
|
15
|
+
readonly error: Readonly<Ref<string | undefined>>;
|
|
16
|
+
readonly saving: Readonly<Ref<boolean>>;
|
|
17
|
+
readonly removing: Readonly<Ref<boolean>>;
|
|
18
|
+
readonly startEdit: () => void;
|
|
19
|
+
readonly cancelEdit: () => void;
|
|
20
|
+
readonly saveDraft: () => Promise<void>;
|
|
21
|
+
readonly forget: () => Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export declare function useNoteDraft({ draft, raw, save, remove, note, onLeave, onRemoved }: NoteDraftOptions): NoteDraft;
|
|
@@ -32,6 +32,8 @@ export { default as MarkdownFigure } from "./components/MarkdownFigure.vue";
|
|
|
32
32
|
export { default as Modal } from "./components/Modal.vue";
|
|
33
33
|
export { default as NavRail } from "./components/NavRail.vue";
|
|
34
34
|
export { type NavGroup } from "./components/navRail.js";
|
|
35
|
+
export { default as NoteEditor } from "./components/NoteEditor.vue";
|
|
36
|
+
export { type NoteDraft, type NoteDraftOptions, useNoteDraft } from "./composables/useNoteDraft.js";
|
|
35
37
|
export { default as Notice } from "./components/Notice.vue";
|
|
36
38
|
export { default as NoticeStack } from "./components/NoticeStack.vue";
|
|
37
39
|
export { type NoticeAction, type NoticeModel, type NoticeTone } from "./components/notice.js";
|
|
@@ -43,6 +45,8 @@ export { default as Picker } from "./components/Picker.vue";
|
|
|
43
45
|
export { type PickerGroup, type PickerOption, type PickerOptions } from "./components/picker.js";
|
|
44
46
|
export { default as ProgressRing } from "./components/ProgressRing.vue";
|
|
45
47
|
export { default as ProseField } from "./components/ProseField.vue";
|
|
48
|
+
export { default as RepoRail } from "./components/RepoRail.vue";
|
|
49
|
+
export { type RepoRailAll, type RepoRailGroup, type RepoRailRow } from "./components/repoRail.js";
|
|
46
50
|
export { default as ResizeSeam } from "./components/ResizeSeam.vue";
|
|
47
51
|
export { default as ResponsiveOverlay } from "./components/ResponsiveOverlay.vue";
|
|
48
52
|
export { default as Row } from "./components/Row.vue";
|
package/names.mjs
CHANGED
|
@@ -32,6 +32,7 @@ export const extensionUiNames = [
|
|
|
32
32
|
"formatTimestamp",
|
|
33
33
|
"formatTokens",
|
|
34
34
|
"formatWeekdayTime",
|
|
35
|
+
"freshness",
|
|
35
36
|
"Icon",
|
|
36
37
|
"ImageView",
|
|
37
38
|
"InfoDialog",
|
|
@@ -42,6 +43,7 @@ export const extensionUiNames = [
|
|
|
42
43
|
"MarkdownFigure",
|
|
43
44
|
"Modal",
|
|
44
45
|
"NavRail",
|
|
46
|
+
"NoteEditor",
|
|
45
47
|
"Notice",
|
|
46
48
|
"noticeFrom",
|
|
47
49
|
"noticeOf",
|
|
@@ -53,6 +55,7 @@ export const extensionUiNames = [
|
|
|
53
55
|
"Popover",
|
|
54
56
|
"ProgressRing",
|
|
55
57
|
"ProseField",
|
|
58
|
+
"RepoRail",
|
|
56
59
|
"ResizeSeam",
|
|
57
60
|
"ResponsiveOverlay",
|
|
58
61
|
"Row",
|
|
@@ -77,6 +80,7 @@ export const extensionUiNames = [
|
|
|
77
80
|
"useDevice",
|
|
78
81
|
"useListNavigation",
|
|
79
82
|
"useNarrow",
|
|
83
|
+
"useNoteDraft",
|
|
80
84
|
"useNow",
|
|
81
85
|
"useRailMemory",
|
|
82
86
|
"useTheme",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/extension-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.210.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",
|
package/src/format.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -87,6 +87,18 @@ export {
|
|
|
87
87
|
Modal,
|
|
88
88
|
type NavGroup,
|
|
89
89
|
NavRail,
|
|
90
|
+
/* <NoteEditor> and `useNoteDraft` ship because TWO extensions are a pane that reads a markdown file, lets
|
|
91
|
+
* somebody correct it and lets them delete it — knowledge and memory — and they had built the same thing
|
|
92
|
+
* twice: the same Copy/Edit/Delete cluster, the same Cancel/Save pair, the same in-place confirmation, the
|
|
93
|
+
* same draft-or-file binding, the same read-and-write-on-one-surface rule. They had already drifted in the
|
|
94
|
+
* ways a second copy does: one cleared its confirmation when a write failed and the other did not, and
|
|
95
|
+
* NEITHER caught a failing write, so the error strip filled in from the mutation while the click handler's
|
|
96
|
+
* promise rejected into the console. The component is the chrome and the composable is the lifecycle,
|
|
97
|
+
* separately, because what a note LOOKS like past the frame is exactly where the two panes differ. */
|
|
98
|
+
NoteEditor,
|
|
99
|
+
type NoteDraft,
|
|
100
|
+
type NoteDraftOptions,
|
|
101
|
+
useNoteDraft,
|
|
90
102
|
/* <NoticeStack> and its model ship beside <ConfirmDialog> for the same reason <InfoDialog> does: a view
|
|
91
103
|
* with several async actions needs somewhere for their failures to land that isn't one action's own row,
|
|
92
104
|
* and a hand-rolled error strip is the first thing to disagree with the app's about tone and dismissal.
|
|
@@ -115,6 +127,15 @@ export {
|
|
|
115
127
|
type PickerOption,
|
|
116
128
|
type PickerOptions,
|
|
117
129
|
ProgressRing,
|
|
130
|
+
/* <RepoRail> ships for the reason <SplitView> did, one level in: two extensions scope a workspace-wide
|
|
131
|
+
* board to one repository — maintenance and pipelines — and both had written the same column. Same pinned
|
|
132
|
+
* "All repositories" row outside every group, same one-number-per-row rule with the second fact as its
|
|
133
|
+
* colour, same swap to a <Picker> at the width the split folds at. What differs between them is the report
|
|
134
|
+
* behind it, which is why the rows arrive as data. */
|
|
135
|
+
RepoRail,
|
|
136
|
+
type RepoRailAll,
|
|
137
|
+
type RepoRailGroup,
|
|
138
|
+
type RepoRailRow,
|
|
118
139
|
/* The writing field and the drag seam ship for the same reason <SplitView> did: an extension view that
|
|
119
140
|
* wants prose typeset as a document, or a pane the reader can size, would otherwise hand-roll one — and
|
|
120
141
|
* both recipes have a failure mode (a replica that disagrees with its field; a drag bound to the window)
|
|
@@ -177,6 +198,7 @@ export {
|
|
|
177
198
|
formatTimestamp,
|
|
178
199
|
formatTokens,
|
|
179
200
|
formatWeekdayTime,
|
|
201
|
+
freshness,
|
|
180
202
|
timeAgo,
|
|
181
203
|
} from "./format.js";
|
|
182
204
|
/* The figure vocabulary that <Markdown> renders from prose and <MarkdownFigure> renders from data. Types only —
|