@timebraid/vue 1.4.0 → 1.6.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 +17 -19
- package/dist/index.d.ts +224 -82
- package/dist/style.css +1 -1
- package/dist/timebraid-vue.js +1460 -825
- package/dist/timebraid-vue.umd.cjs +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ import { TBtn, TPill, TIcon } from '@timebraid/vue'
|
|
|
13
13
|
|
|
14
14
|
<template>
|
|
15
15
|
<TBtn size="xl" icon="download">Download for macOS</TBtn>
|
|
16
|
-
<TPill :running="[{ id: '1', task: 'Logo exploration', project: 'Acme rebrand', color: 'var(--chart-1)', since: '9:12', seconds: 8047 }]" />
|
|
16
|
+
<TPill :running="[{ id: '1', task: 'Logo exploration', project: 'Acme rebrand', projectId: 'acme', color: 'var(--chart-1)', since: '9:12', seconds: 8047 }]" />
|
|
17
17
|
<TIcon name="play" :size="16" />
|
|
18
18
|
</template>
|
|
19
19
|
```
|
|
@@ -34,21 +34,26 @@ Import `@timebraid/tokens/styles.css` once in `main.ts` (or `@timebraid/vue/styl
|
|
|
34
34
|
| `TSelect` | Trailing-value select with `chevrons-up-down`, used inside `TRow`; name the control with `label` (rendered visually hidden) or `ariaLabel` |
|
|
35
35
|
| `TBadge` | Status pill: neutral, running, green, red, soon |
|
|
36
36
|
| `TBar` | Animated value bar |
|
|
37
|
-
| `TAvatar` | Initials avatar |
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
37
|
+
| `TAvatar` | Initials avatar; pass `src` for a photo instead |
|
|
38
|
+
| `TAvatarStack` | Overlapping `TAvatar`s with a `+N` overflow count |
|
|
39
|
+
| `TLargeTitle` | Large collapsing page title; `sticky` pins it above its scrolling content |
|
|
40
|
+
| `TSheet` | Centred sheet on desktop, bottom sheet on phones; on phones drag the grabber, the header or, at the top of its scroll, the content to dismiss - it follows the finger and closes or springs back by release direction |
|
|
40
41
|
| `TDot` | Status dot with a pulsing ring when running |
|
|
41
42
|
| `TDur` | Duration readout, mono and tabular |
|
|
42
|
-
| `TWaterfall` | Parallel-time waterfall timeline for reports |
|
|
43
|
-
| `TPill` | The floating always-visible timer pill; the `popover` slot (scoped with `running`) replaces the popover body, and `open` is consumer-owned through `update:open` |
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
43
|
+
| `TWaterfall` | Parallel-time waterfall timeline for reports, one lane per task grouped under its project; `showWs` adds a workspace tag per project |
|
|
44
|
+
| `TPill` | The floating always-visible timer pill: count first, the longest timer leads; the `popover` slot (scoped with `running`) replaces the popover body, grouped by workspace then project, and `open` is consumer-owned through `update:open` |
|
|
45
|
+
| `TWsIcon` | Workspace glyph: a coloured initial square, or the app mark when `all` |
|
|
46
|
+
| `TWsTag` | Small workspace label, the square plus its name; appears only in the All-workspaces scope |
|
|
47
|
+
| `TWorkspaceSwitcher` | Scope selector: All workspaces or one |
|
|
48
|
+
| `TWorkspaceMenu` | The workspace list shared by the switcher's popover and the drawer; `embedded` drops its shadow for inline use |
|
|
49
|
+
| `TWorkspaceDrawer` | Full-height phone workspace list; drag the panel to dismiss |
|
|
50
|
+
| `TTimerBar` | Phone bottom timer bar: takes the full `timers` array, count first with the longest leading |
|
|
46
51
|
| `TStrokes` | Oversized faded tally strokes behind sign-in and empty states |
|
|
47
|
-
| `TIOSNav` | iOS large
|
|
52
|
+
| `TIOSNav` | iOS nav bar under the status-bar inset (`--inset-top`); the `leading` control, the large title and the `right` actions share one line and the title collapses in place on scroll |
|
|
48
53
|
| `TIOSTabBar` | iOS tab bar |
|
|
49
|
-
| `TAndroidTop` | Android top app bar |
|
|
54
|
+
| `TAndroidTop` | Android top app bar under the status-bar inset (`--inset-top`); `sub` for a subtitle, `scrolled` for its elevated state, `title` slot to replace the text |
|
|
50
55
|
| `TAndroidNavBar` | Android bottom navigation bar |
|
|
51
|
-
| `TIcon` | Lucide glyph
|
|
56
|
+
| `TIcon` | Bundled inline Lucide glyph, follows `currentColor` |
|
|
52
57
|
| `TLogo` | The stopwatch mark, correct artwork per size; `mono` paints it in currentColor |
|
|
53
58
|
| `TCodeInput` | 6-digit code entry |
|
|
54
59
|
| `TAuthCard` | Sign-in layout card |
|
|
@@ -57,14 +62,7 @@ Import `@timebraid/tokens/styles.css` once in `main.ts` (or `@timebraid/vue/styl
|
|
|
57
62
|
|
|
58
63
|
Also exported: `formatDuration(seconds, 'clock' | 'short' | 'compact')`, `PROJECT_COLORS`, `TIMEBRAID_ICON_BASE`, `DEFAULT_ICON_BASE`, `resolveTheme`, `applyTheme`, `watchTheme`, `THEME_PREFERENCES`.
|
|
59
64
|
|
|
60
|
-
`TIcon`
|
|
61
|
-
|
|
62
|
-
```ts
|
|
63
|
-
import { TIMEBRAID_ICON_BASE } from '@timebraid/vue'
|
|
64
|
-
app.provide(TIMEBRAID_ICON_BASE, '/icons/')
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
A `base` prop on a single `TIcon` still wins over the provided value.
|
|
65
|
+
`TIcon` ships its glyphs: `scripts/glyphs.mjs` writes the Lucide paths for every name the products use into `packages/vue/src/icons/glyphs.ts`, and the component renders them inline in `currentColor`. Nothing is fetched at runtime. To add a glyph, add its name to `NAMES` in the script and run `pnpm glyphs`. `ICON_NAMES` and `hasIcon()` are exported so an app can assert every name it uses is bundled. A name missing from the table still masks from `TIMEBRAID_ICON_BASE` (or the `base` prop) with a dev warning, so nothing breaks while the table catches up.
|
|
68
66
|
|
|
69
67
|
## Rules
|
|
70
68
|
|
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ flat: boolean;
|
|
|
9
9
|
plainTitle: boolean;
|
|
10
10
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
|
|
11
11
|
|
|
12
|
-
declare const __VLS_component_10: DefineComponent<
|
|
12
|
+
declare const __VLS_component_10: DefineComponent<__VLS_Props_32, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_32> & Readonly<{}>, {
|
|
13
13
|
width: number;
|
|
14
14
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
15
15
|
|
|
16
|
-
declare const __VLS_component_11: DefineComponent<
|
|
16
|
+
declare const __VLS_component_11: DefineComponent<__VLS_Props_34, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_34> & Readonly<{}>, {
|
|
17
17
|
side: "top" | "bottom" | "left" | "right";
|
|
18
18
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
19
19
|
|
|
@@ -46,28 +46,31 @@ declare const __VLS_component_4: DefineComponent<__VLS_Props_8, {}, {}, {}, {},
|
|
|
46
46
|
tone: keyof typeof TONES_2;
|
|
47
47
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
48
48
|
|
|
49
|
-
declare const __VLS_component_5: DefineComponent<
|
|
49
|
+
declare const __VLS_component_5: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{}>, {
|
|
50
|
+
sticky: boolean;
|
|
51
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
50
52
|
|
|
51
|
-
declare const __VLS_component_6: DefineComponent<
|
|
53
|
+
declare const __VLS_component_6: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
52
54
|
close: () => any;
|
|
53
|
-
}, string, PublicProps, Readonly<
|
|
55
|
+
}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{
|
|
54
56
|
onClose?: (() => any) | undefined;
|
|
55
57
|
}>, {
|
|
56
58
|
inline: boolean;
|
|
57
59
|
width: number;
|
|
58
60
|
mobile: boolean;
|
|
59
61
|
teleport: boolean;
|
|
62
|
+
cancelLabel: string;
|
|
60
63
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
61
64
|
dialog: HTMLDivElement;
|
|
62
65
|
}, any>;
|
|
63
66
|
|
|
64
|
-
declare const __VLS_component_7: DefineComponent<
|
|
67
|
+
declare const __VLS_component_7: DefineComponent<__VLS_Props_19, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
65
68
|
stop: (id: string) => any;
|
|
66
69
|
start: () => any;
|
|
67
70
|
"update:open": (v: boolean) => any;
|
|
68
71
|
stopAll: () => any;
|
|
69
72
|
openApp: () => any;
|
|
70
|
-
}, string, PublicProps, Readonly<
|
|
73
|
+
}, string, PublicProps, Readonly<__VLS_Props_19> & Readonly<{
|
|
71
74
|
onStop?: ((id: string) => any) | undefined;
|
|
72
75
|
onStart?: (() => any) | undefined;
|
|
73
76
|
"onUpdate:open"?: ((v: boolean) => any) | undefined;
|
|
@@ -79,9 +82,11 @@ paused: boolean;
|
|
|
79
82
|
compact: boolean;
|
|
80
83
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
81
84
|
|
|
82
|
-
declare const __VLS_component_8: DefineComponent<
|
|
85
|
+
declare const __VLS_component_8: DefineComponent<__VLS_Props_25, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_25> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
83
86
|
|
|
84
|
-
declare const __VLS_component_9: DefineComponent<
|
|
87
|
+
declare const __VLS_component_9: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_27> & Readonly<{}>, {
|
|
88
|
+
scrolled: boolean;
|
|
89
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
85
90
|
|
|
86
91
|
declare type __VLS_Props = {
|
|
87
92
|
title?: string;
|
|
@@ -94,29 +99,50 @@ declare type __VLS_Props_10 = {
|
|
|
94
99
|
name: string;
|
|
95
100
|
size?: number;
|
|
96
101
|
color?: string;
|
|
102
|
+
src?: string;
|
|
97
103
|
};
|
|
98
104
|
|
|
99
105
|
declare type __VLS_Props_11 = {
|
|
106
|
+
people: Person[];
|
|
107
|
+
size?: number;
|
|
108
|
+
max?: number;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
declare type __VLS_Props_12 = {
|
|
112
|
+
name: string;
|
|
113
|
+
color: string;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
declare type __VLS_Props_13 = {
|
|
117
|
+
name?: string;
|
|
118
|
+
color?: string;
|
|
119
|
+
all?: boolean;
|
|
120
|
+
size?: number;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
declare type __VLS_Props_14 = {
|
|
100
124
|
title: string;
|
|
101
125
|
sub?: string;
|
|
126
|
+
sticky?: boolean;
|
|
102
127
|
};
|
|
103
128
|
|
|
104
|
-
declare type
|
|
129
|
+
declare type __VLS_Props_15 = {
|
|
105
130
|
open: boolean;
|
|
106
131
|
title: string;
|
|
107
132
|
mobile?: boolean;
|
|
108
133
|
width?: number;
|
|
109
134
|
inline?: boolean;
|
|
110
135
|
teleport?: boolean;
|
|
136
|
+
cancelLabel?: string;
|
|
111
137
|
};
|
|
112
138
|
|
|
113
|
-
declare type
|
|
139
|
+
declare type __VLS_Props_16 = {
|
|
114
140
|
color: string;
|
|
115
141
|
size?: number;
|
|
116
142
|
running?: boolean;
|
|
117
143
|
};
|
|
118
144
|
|
|
119
|
-
declare type
|
|
145
|
+
declare type __VLS_Props_17 = {
|
|
120
146
|
seconds: number;
|
|
121
147
|
mode?: DurationFormat;
|
|
122
148
|
size?: number;
|
|
@@ -124,41 +150,23 @@ declare type __VLS_Props_14 = {
|
|
|
124
150
|
tone?: keyof typeof TONES_3;
|
|
125
151
|
};
|
|
126
152
|
|
|
127
|
-
declare type
|
|
128
|
-
rows:
|
|
153
|
+
declare type __VLS_Props_18 = {
|
|
154
|
+
rows: WaterfallProject[];
|
|
129
155
|
start?: number;
|
|
130
156
|
end?: number;
|
|
131
157
|
labelW?: number;
|
|
132
158
|
rowH?: number;
|
|
133
159
|
compact?: boolean;
|
|
160
|
+
showWs?: boolean;
|
|
134
161
|
};
|
|
135
162
|
|
|
136
|
-
declare type
|
|
163
|
+
declare type __VLS_Props_19 = {
|
|
137
164
|
running: PillTimer[];
|
|
138
165
|
compact?: boolean;
|
|
139
166
|
paused?: boolean;
|
|
140
167
|
open?: boolean;
|
|
141
168
|
};
|
|
142
169
|
|
|
143
|
-
declare type __VLS_Props_17 = {
|
|
144
|
-
workspaces: WorkspaceOption[];
|
|
145
|
-
modelValue: string;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
declare type __VLS_Props_18 = {
|
|
149
|
-
task: string;
|
|
150
|
-
project: string;
|
|
151
|
-
color?: string;
|
|
152
|
-
seconds: number;
|
|
153
|
-
more?: number;
|
|
154
|
-
android?: boolean;
|
|
155
|
-
bottom?: number;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
declare type __VLS_Props_19 = {
|
|
159
|
-
opacity?: number;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
170
|
declare type __VLS_Props_2 = {
|
|
163
171
|
icon?: string;
|
|
164
172
|
iconBg?: string;
|
|
@@ -173,62 +181,104 @@ declare type __VLS_Props_2 = {
|
|
|
173
181
|
};
|
|
174
182
|
|
|
175
183
|
declare type __VLS_Props_20 = {
|
|
184
|
+
workspaces: WorkspaceOption[];
|
|
185
|
+
modelValue: string;
|
|
186
|
+
showAll?: boolean;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
declare type __VLS_Props_21 = {
|
|
190
|
+
workspaces: WorkspaceOption[];
|
|
191
|
+
modelValue: string;
|
|
192
|
+
showAll?: boolean;
|
|
193
|
+
embedded?: boolean;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
declare type __VLS_Props_22 = {
|
|
197
|
+
open: boolean;
|
|
198
|
+
workspaces: WorkspaceOption[];
|
|
199
|
+
modelValue: string;
|
|
200
|
+
showAll?: boolean;
|
|
201
|
+
teleport?: boolean;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
declare type __VLS_Props_23 = {
|
|
205
|
+
timers: PillTimer[];
|
|
206
|
+
android?: boolean;
|
|
207
|
+
bottom?: number;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
declare type __VLS_Props_24 = {
|
|
211
|
+
opacity?: number;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
declare type __VLS_Props_25 = {
|
|
176
215
|
title: string;
|
|
177
216
|
sub?: string;
|
|
178
217
|
scrolled: boolean;
|
|
179
218
|
};
|
|
180
219
|
|
|
181
|
-
declare type
|
|
220
|
+
declare type __VLS_Props_26 = {
|
|
182
221
|
items: TabItem[];
|
|
183
222
|
modelValue: string;
|
|
184
223
|
indicator?: boolean;
|
|
185
224
|
};
|
|
186
225
|
|
|
187
|
-
declare type
|
|
226
|
+
declare type __VLS_Props_27 = {
|
|
188
227
|
title: string;
|
|
228
|
+
sub?: string;
|
|
229
|
+
scrolled?: boolean;
|
|
189
230
|
};
|
|
190
231
|
|
|
191
|
-
declare type
|
|
232
|
+
declare type __VLS_Props_28 = {
|
|
192
233
|
items: TabItem[];
|
|
193
234
|
modelValue: string;
|
|
194
235
|
indicator?: boolean;
|
|
195
236
|
};
|
|
196
237
|
|
|
197
238
|
/**
|
|
198
|
-
* Lucide glyph
|
|
239
|
+
* Lucide glyph rendered inline from the bundled table, so it follows currentColor and fetches nothing.
|
|
199
240
|
* SUBSTITUTION: Timebraid has no icon set of its own yet; Lucide is the closest match to the mark.
|
|
200
241
|
*/
|
|
201
|
-
declare type
|
|
202
|
-
/** Lucide kebab-case name: play,
|
|
242
|
+
declare type __VLS_Props_29 = {
|
|
243
|
+
/** Lucide kebab-case name from the bundled table: play, square, plus, folder-kanban... */
|
|
203
244
|
name: string;
|
|
204
245
|
/** 16 in the app, 20 in the site header, 24 in marketing rows. */
|
|
205
246
|
size?: number;
|
|
206
247
|
color?: string;
|
|
207
|
-
/**
|
|
248
|
+
/** Only for a name that is not bundled: where that one glyph is masked from. Wins over the `TIMEBRAID_ICON_BASE` injection key. Bundled names never fetch. */
|
|
208
249
|
base?: string;
|
|
209
250
|
};
|
|
210
251
|
|
|
252
|
+
declare type __VLS_Props_3 = {
|
|
253
|
+
modelValue: string;
|
|
254
|
+
options: {
|
|
255
|
+
value: string;
|
|
256
|
+
label: string;
|
|
257
|
+
}[];
|
|
258
|
+
size?: 'sm' | 'md';
|
|
259
|
+
};
|
|
260
|
+
|
|
211
261
|
/** The Timebraid stopwatch from shipped artwork: the detailed PNG plate at 64px and up, the flat small mark below, the 16px PNG under 24px. `mono` paints the one-colour mark in currentColor. */
|
|
212
|
-
declare type
|
|
262
|
+
declare type __VLS_Props_30 = {
|
|
213
263
|
size?: number;
|
|
214
264
|
wordmark?: boolean;
|
|
215
265
|
mono?: boolean;
|
|
216
266
|
};
|
|
217
267
|
|
|
218
|
-
declare type
|
|
268
|
+
declare type __VLS_Props_31 = {
|
|
219
269
|
modelValue?: string;
|
|
220
270
|
length?: number;
|
|
221
271
|
error?: string;
|
|
222
272
|
autofocus?: boolean;
|
|
223
273
|
};
|
|
224
274
|
|
|
225
|
-
declare type
|
|
275
|
+
declare type __VLS_Props_32 = {
|
|
226
276
|
title: string;
|
|
227
277
|
description?: string;
|
|
228
278
|
width?: number;
|
|
229
279
|
};
|
|
230
280
|
|
|
231
|
-
declare type
|
|
281
|
+
declare type __VLS_Props_33 = {
|
|
232
282
|
modelValue?: boolean;
|
|
233
283
|
label: string;
|
|
234
284
|
description?: string;
|
|
@@ -236,22 +286,13 @@ declare type __VLS_Props_28 = {
|
|
|
236
286
|
disabled?: boolean;
|
|
237
287
|
};
|
|
238
288
|
|
|
239
|
-
declare type
|
|
289
|
+
declare type __VLS_Props_34 = {
|
|
240
290
|
content: string;
|
|
241
291
|
/** e.g. ⌘N - mono, muted, at the end. */
|
|
242
292
|
shortcut?: string;
|
|
243
293
|
side?: 'top' | 'bottom' | 'left' | 'right';
|
|
244
294
|
};
|
|
245
295
|
|
|
246
|
-
declare type __VLS_Props_3 = {
|
|
247
|
-
modelValue: string;
|
|
248
|
-
options: {
|
|
249
|
-
value: string;
|
|
250
|
-
label: string;
|
|
251
|
-
}[];
|
|
252
|
-
size?: 'sm' | 'md';
|
|
253
|
-
};
|
|
254
|
-
|
|
255
296
|
declare type __VLS_Props_4 = {
|
|
256
297
|
kind?: keyof typeof KINDS;
|
|
257
298
|
size?: keyof typeof SIZES;
|
|
@@ -396,6 +437,7 @@ declare function __VLS_template_7(): {
|
|
|
396
437
|
declare function __VLS_template_8(): {
|
|
397
438
|
attrs: Partial<{}>;
|
|
398
439
|
slots: {
|
|
440
|
+
leading?(_: {}): any;
|
|
399
441
|
right?(_: {}): any;
|
|
400
442
|
};
|
|
401
443
|
refs: {};
|
|
@@ -405,6 +447,7 @@ declare function __VLS_template_8(): {
|
|
|
405
447
|
declare function __VLS_template_9(): {
|
|
406
448
|
attrs: Partial<{}>;
|
|
407
449
|
slots: {
|
|
450
|
+
title?(_: {}): any;
|
|
408
451
|
right?(_: {}): any;
|
|
409
452
|
};
|
|
410
453
|
refs: {};
|
|
@@ -499,16 +542,26 @@ declare type __VLS_WithTemplateSlots_9<T, S> = T & {
|
|
|
499
542
|
};
|
|
500
543
|
};
|
|
501
544
|
|
|
545
|
+
export declare const ALL_WORKSPACES = "all";
|
|
546
|
+
|
|
502
547
|
export declare function applyTheme(root: HTMLElement, theme: ResolvedTheme): void;
|
|
503
548
|
|
|
504
549
|
/** Where TIcon masks from when nothing overrides it. */
|
|
505
|
-
export declare const DEFAULT_ICON_BASE = "https://unpkg.com/lucide-static@
|
|
550
|
+
export declare const DEFAULT_ICON_BASE = "https://unpkg.com/lucide-static@0.545.0/icons/";
|
|
506
551
|
|
|
507
552
|
export declare type DurationFormat = 'clock' | 'short' | 'compact';
|
|
508
553
|
|
|
554
|
+
export declare const FILLED_NAMES: ReadonlySet<string>;
|
|
555
|
+
|
|
509
556
|
/** 8047 → "2:14:07" (clock) · "2:14" (short) · "2h 14m" (compact) */
|
|
510
557
|
export declare function formatDuration(seconds: number, format?: DurationFormat): string;
|
|
511
558
|
|
|
559
|
+
export declare function groupTimers(timers: PillTimer[]): TimerGroup[];
|
|
560
|
+
|
|
561
|
+
export declare const hasIcon: (name: string) => boolean;
|
|
562
|
+
|
|
563
|
+
export declare const ICON_NAMES: readonly string[];
|
|
564
|
+
|
|
512
565
|
declare const KINDS: {
|
|
513
566
|
readonly primary: {
|
|
514
567
|
readonly background: "var(--accent)";
|
|
@@ -537,13 +590,27 @@ declare const KINDS: {
|
|
|
537
590
|
};
|
|
538
591
|
};
|
|
539
592
|
|
|
593
|
+
export declare function longestTimer(timers: PillTimer[]): PillTimer | null;
|
|
594
|
+
|
|
595
|
+
export declare interface Person {
|
|
596
|
+
name: string;
|
|
597
|
+
src?: string;
|
|
598
|
+
color?: string;
|
|
599
|
+
}
|
|
600
|
+
|
|
540
601
|
export declare interface PillTimer {
|
|
541
602
|
id: string;
|
|
542
603
|
task: string;
|
|
543
604
|
project: string;
|
|
605
|
+
projectId: string;
|
|
544
606
|
color: string;
|
|
545
607
|
since: string;
|
|
546
608
|
seconds: number;
|
|
609
|
+
workspace?: {
|
|
610
|
+
id: string;
|
|
611
|
+
name: string;
|
|
612
|
+
color: string;
|
|
613
|
+
};
|
|
547
614
|
}
|
|
548
615
|
|
|
549
616
|
/** Okabe-Ito, the only palette permitted for projects and charts. */
|
|
@@ -591,9 +658,9 @@ export declare interface TabItem {
|
|
|
591
658
|
icon: string;
|
|
592
659
|
}
|
|
593
660
|
|
|
594
|
-
export declare const TAndroidNavBar: DefineComponent<
|
|
661
|
+
export declare const TAndroidNavBar: DefineComponent<__VLS_Props_28, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
595
662
|
"update:modelValue": (id: string) => any;
|
|
596
|
-
}, string, PublicProps, Readonly<
|
|
663
|
+
}, string, PublicProps, Readonly<__VLS_Props_28> & Readonly<{
|
|
597
664
|
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
598
665
|
}>, {
|
|
599
666
|
indicator: boolean;
|
|
@@ -605,6 +672,11 @@ export declare const TAuthCard: __VLS_WithTemplateSlots_10<typeof __VLS_componen
|
|
|
605
672
|
|
|
606
673
|
export declare const TAvatar: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {
|
|
607
674
|
size: number;
|
|
675
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
676
|
+
|
|
677
|
+
export declare const TAvatarStack: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{}>, {
|
|
678
|
+
size: number;
|
|
679
|
+
max: number;
|
|
608
680
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
609
681
|
|
|
610
682
|
export declare const TBadge: __VLS_WithTemplateSlots_4<typeof __VLS_component_4, __VLS_TemplateResult_4["slots"]>;
|
|
@@ -616,9 +688,9 @@ h: number;
|
|
|
616
688
|
|
|
617
689
|
export declare const TBtn: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;
|
|
618
690
|
|
|
619
|
-
export declare const TCheckbox: DefineComponent<
|
|
691
|
+
export declare const TCheckbox: DefineComponent<__VLS_Props_33, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
620
692
|
"update:modelValue": (v: boolean) => any;
|
|
621
|
-
}, string, PublicProps, Readonly<
|
|
693
|
+
}, string, PublicProps, Readonly<__VLS_Props_33> & Readonly<{
|
|
622
694
|
"onUpdate:modelValue"?: ((v: boolean) => any) | undefined;
|
|
623
695
|
}>, {
|
|
624
696
|
modelValue: boolean;
|
|
@@ -626,9 +698,9 @@ disabled: boolean;
|
|
|
626
698
|
indeterminate: boolean;
|
|
627
699
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
|
|
628
700
|
|
|
629
|
-
export declare const TCodeInput: DefineComponent<
|
|
701
|
+
export declare const TCodeInput: DefineComponent<__VLS_Props_31, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
630
702
|
"update:modelValue": (v: string) => any;
|
|
631
|
-
}, string, PublicProps, Readonly<
|
|
703
|
+
}, string, PublicProps, Readonly<__VLS_Props_31> & Readonly<{
|
|
632
704
|
"onUpdate:modelValue"?: ((v: string) => any) | undefined;
|
|
633
705
|
}>, {
|
|
634
706
|
length: number;
|
|
@@ -636,12 +708,12 @@ modelValue: string;
|
|
|
636
708
|
autofocus: boolean;
|
|
637
709
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
638
710
|
|
|
639
|
-
export declare const TDot: DefineComponent<
|
|
711
|
+
export declare const TDot: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{}>, {
|
|
640
712
|
size: number;
|
|
641
713
|
running: boolean;
|
|
642
714
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
643
715
|
|
|
644
|
-
export declare const TDur: DefineComponent<
|
|
716
|
+
export declare const TDur: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{}>, {
|
|
645
717
|
size: number;
|
|
646
718
|
tone: keyof typeof TONES_3;
|
|
647
719
|
mode: DurationFormat;
|
|
@@ -668,10 +740,10 @@ export declare const THEME_PREFERENCES: ThemePreference[];
|
|
|
668
740
|
|
|
669
741
|
export declare type ThemePreference = 'system' | 'light' | 'dark';
|
|
670
742
|
|
|
671
|
-
export declare const TIcon: DefineComponent<
|
|
743
|
+
export declare const TIcon: DefineComponent<__VLS_Props_29, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_29> & Readonly<{}>, {
|
|
672
744
|
color: string;
|
|
673
745
|
size: number;
|
|
674
|
-
}, {}, {}, {}, string, ComponentProvideOptions, false, {},
|
|
746
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
675
747
|
|
|
676
748
|
export declare const TIconBtn: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
677
749
|
click: (e: MouseEvent) => any;
|
|
@@ -686,11 +758,29 @@ tone: keyof typeof TONES;
|
|
|
686
758
|
/** App-wide base URL every TIcon masks from: `app.provide(TIMEBRAID_ICON_BASE, '/icons/')`. */
|
|
687
759
|
export declare const TIMEBRAID_ICON_BASE: InjectionKey<string>;
|
|
688
760
|
|
|
761
|
+
export declare interface TimerGroup {
|
|
762
|
+
workspace: TimerWorkspace | null;
|
|
763
|
+
projects: TimerProjectGroup[];
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
export declare interface TimerProjectGroup {
|
|
767
|
+
id: string;
|
|
768
|
+
name: string;
|
|
769
|
+
color: string;
|
|
770
|
+
timers: PillTimer[];
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
export declare interface TimerWorkspace {
|
|
774
|
+
id: string;
|
|
775
|
+
name: string;
|
|
776
|
+
color: string;
|
|
777
|
+
}
|
|
778
|
+
|
|
689
779
|
export declare const TIOSNav: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;
|
|
690
780
|
|
|
691
|
-
export declare const TIOSTabBar: DefineComponent<
|
|
781
|
+
export declare const TIOSTabBar: DefineComponent<__VLS_Props_26, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
692
782
|
"update:modelValue": (id: string) => any;
|
|
693
|
-
}, string, PublicProps, Readonly<
|
|
783
|
+
}, string, PublicProps, Readonly<__VLS_Props_26> & Readonly<{
|
|
694
784
|
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
695
785
|
}>, {
|
|
696
786
|
indicator: boolean;
|
|
@@ -698,7 +788,7 @@ indicator: boolean;
|
|
|
698
788
|
|
|
699
789
|
export declare const TLargeTitle: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;
|
|
700
790
|
|
|
701
|
-
export declare const TLogo: DefineComponent<
|
|
791
|
+
export declare const TLogo: DefineComponent<__VLS_Props_30, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_30> & Readonly<{}>, {
|
|
702
792
|
size: number;
|
|
703
793
|
mono: boolean;
|
|
704
794
|
wordmark: boolean;
|
|
@@ -768,22 +858,22 @@ disabled: boolean;
|
|
|
768
858
|
|
|
769
859
|
export declare const TSheet: __VLS_WithTemplateSlots_6<typeof __VLS_component_6, __VLS_TemplateResult_6["slots"]>;
|
|
770
860
|
|
|
771
|
-
export declare const TStrokes: DefineComponent<
|
|
861
|
+
export declare const TStrokes: DefineComponent<__VLS_Props_24, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_24> & Readonly<{}>, {
|
|
772
862
|
opacity: number;
|
|
773
863
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
774
864
|
|
|
775
|
-
export declare const TTimerBar: DefineComponent<
|
|
776
|
-
stop: () => any;
|
|
865
|
+
export declare const TTimerBar: DefineComponent<__VLS_Props_23, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
866
|
+
stop: (id: string) => any;
|
|
777
867
|
open: () => any;
|
|
778
|
-
|
|
779
|
-
|
|
868
|
+
stopAll: () => any;
|
|
869
|
+
}, string, PublicProps, Readonly<__VLS_Props_23> & Readonly<{
|
|
870
|
+
onStop?: ((id: string) => any) | undefined;
|
|
780
871
|
onOpen?: (() => any) | undefined;
|
|
872
|
+
onStopAll?: (() => any) | undefined;
|
|
781
873
|
}>, {
|
|
782
|
-
color: string;
|
|
783
874
|
bottom: number;
|
|
784
|
-
more: number;
|
|
785
875
|
android: boolean;
|
|
786
|
-
}, {}, {}, {}, string, ComponentProvideOptions, false, {},
|
|
876
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
787
877
|
|
|
788
878
|
export declare const TToggle: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
789
879
|
"update:modelValue": (v: boolean) => any;
|
|
@@ -795,32 +885,83 @@ disabled: boolean;
|
|
|
795
885
|
|
|
796
886
|
export declare const TTooltip: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
|
|
797
887
|
|
|
798
|
-
export declare const TWaterfall: DefineComponent<
|
|
888
|
+
export declare const TWaterfall: DefineComponent<__VLS_Props_18, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_18> & Readonly<{}>, {
|
|
799
889
|
end: number;
|
|
800
890
|
start: number;
|
|
801
891
|
compact: boolean;
|
|
802
892
|
labelW: number;
|
|
803
893
|
rowH: number;
|
|
894
|
+
showWs: boolean;
|
|
804
895
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
805
896
|
|
|
806
|
-
export declare const
|
|
897
|
+
export declare const TWorkspaceDrawer: DefineComponent<__VLS_Props_22, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
898
|
+
help: () => any;
|
|
807
899
|
"update:modelValue": (id: string) => any;
|
|
900
|
+
close: () => any;
|
|
808
901
|
create: () => any;
|
|
809
|
-
|
|
902
|
+
preferences: () => any;
|
|
903
|
+
actions: () => any;
|
|
904
|
+
}, string, PublicProps, Readonly<__VLS_Props_22> & Readonly<{
|
|
905
|
+
onHelp?: (() => any) | undefined;
|
|
810
906
|
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
907
|
+
onClose?: (() => any) | undefined;
|
|
811
908
|
onCreate?: (() => any) | undefined;
|
|
812
|
-
|
|
909
|
+
onPreferences?: (() => any) | undefined;
|
|
910
|
+
onActions?: (() => any) | undefined;
|
|
911
|
+
}>, {
|
|
912
|
+
teleport: boolean;
|
|
913
|
+
showAll: boolean;
|
|
914
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
915
|
+
|
|
916
|
+
export declare const TWorkspaceMenu: DefineComponent<__VLS_Props_21, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
917
|
+
"update:modelValue": (id: string) => any;
|
|
918
|
+
create: () => any;
|
|
919
|
+
}, string, PublicProps, Readonly<__VLS_Props_21> & Readonly<{
|
|
920
|
+
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
921
|
+
onCreate?: (() => any) | undefined;
|
|
922
|
+
}>, {
|
|
923
|
+
showAll: boolean;
|
|
924
|
+
embedded: boolean;
|
|
925
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
926
|
+
|
|
927
|
+
export declare const TWorkspaceSwitcher: DefineComponent<__VLS_Props_20, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
928
|
+
"update:modelValue": (id: string) => any;
|
|
929
|
+
create: () => any;
|
|
930
|
+
}, string, PublicProps, Readonly<__VLS_Props_20> & Readonly<{
|
|
931
|
+
"onUpdate:modelValue"?: ((id: string) => any) | undefined;
|
|
932
|
+
onCreate?: (() => any) | undefined;
|
|
933
|
+
}>, {
|
|
934
|
+
showAll: boolean;
|
|
935
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
813
936
|
root: HTMLDivElement;
|
|
814
937
|
}, HTMLDivElement>;
|
|
815
938
|
|
|
939
|
+
export declare const TWsIcon: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{}>, {
|
|
940
|
+
color: string;
|
|
941
|
+
name: string;
|
|
942
|
+
size: number;
|
|
943
|
+
all: boolean;
|
|
944
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
945
|
+
|
|
946
|
+
export declare const TWsTag: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
947
|
+
|
|
816
948
|
export declare function watchTheme(pref: () => ThemePreference, root: HTMLElement, media?: MediaQueryList | null): {
|
|
817
949
|
refresh(): void;
|
|
818
950
|
stop(): void;
|
|
819
951
|
};
|
|
820
952
|
|
|
953
|
+
export declare interface WaterfallProject {
|
|
954
|
+
project: string;
|
|
955
|
+
color: string;
|
|
956
|
+
ws?: {
|
|
957
|
+
name: string;
|
|
958
|
+
color: string;
|
|
959
|
+
};
|
|
960
|
+
tasks: WaterfallRow[];
|
|
961
|
+
}
|
|
962
|
+
|
|
821
963
|
export declare interface WaterfallRow {
|
|
822
964
|
label: string;
|
|
823
|
-
color: string;
|
|
824
965
|
segments: WaterfallSegment[];
|
|
825
966
|
}
|
|
826
967
|
|
|
@@ -835,6 +976,7 @@ export declare interface WorkspaceOption {
|
|
|
835
976
|
name: string;
|
|
836
977
|
color: string;
|
|
837
978
|
memberCount: number;
|
|
979
|
+
projectCount?: number;
|
|
838
980
|
isDefault: boolean;
|
|
839
981
|
personal: boolean;
|
|
840
982
|
}
|