@timebraid/vue 1.7.0 → 1.9.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 CHANGED
@@ -41,14 +41,15 @@ Import `@timebraid/tokens/styles.css` once in `main.ts` (or `@timebraid/vue/styl
41
41
  | `TDot` | Status dot with a pulsing ring when running |
42
42
  | `TDur` | Duration readout, mono and tabular |
43
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` |
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`; with several timers its stop control opens the popover, where Stop all sits top right |
45
45
  | `TWsIcon` | Workspace glyph: a coloured initial square, or the app mark when `all` |
46
46
  | `TWsTag` | Small workspace label, the square plus its name; appears only in the All-workspaces scope |
47
47
  | `TWorkspaceSwitcher` | Scope selector: All workspaces or one |
48
48
  | `TWorkspaceMenu` | The workspace list shared by the switcher's popover and the drawer; `embedded` drops its shadow for inline use |
49
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 |
50
+ | `TTimerBar` | Phone bottom timer bar: takes the full `timers` array, count first with the longest leading; with several timers its stop control emits `open` for the running sheet instead of stopping them all |
51
51
  | `TStrokes` | Oversized faded tally strokes behind sign-in and empty states |
52
+ | `TStartHero` | The pill-shaped start field that opens Today: "Start a timer" with "Quick start" chips on desktop when nothing runs, "Start another timer" with a "Runs in parallel" hint (chips kept) when `hasRunning`, the bare pill when `mobile` |
52
53
  | `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 |
53
54
  | `TIOSTabBar` | iOS tab bar |
54
55
  | `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 |
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<__VLS_Props_32, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_32> & Readonly<{}>, {
12
+ declare const __VLS_component_10: DefineComponent<__VLS_Props_33, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_33> & Readonly<{}>, {
13
13
  width: number;
14
14
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
15
15
 
16
- declare const __VLS_component_11: DefineComponent<__VLS_Props_34, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_34> & Readonly<{}>, {
16
+ declare const __VLS_component_11: DefineComponent<__VLS_Props_35, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_35> & Readonly<{}>, {
17
17
  side: "top" | "bottom" | "left" | "right";
18
18
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
19
19
 
@@ -82,9 +82,9 @@ paused: boolean;
82
82
  compact: boolean;
83
83
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
84
84
 
85
- declare const __VLS_component_8: DefineComponent<__VLS_Props_25, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_25> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
85
+ declare const __VLS_component_8: DefineComponent<__VLS_Props_26, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_26> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
86
86
 
87
- declare const __VLS_component_9: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_27> & Readonly<{}>, {
87
+ declare const __VLS_component_9: DefineComponent<__VLS_Props_28, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_28> & Readonly<{}>, {
88
88
  scrolled: boolean;
89
89
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
90
90
 
@@ -212,34 +212,50 @@ declare type __VLS_Props_24 = {
212
212
  };
213
213
 
214
214
  declare type __VLS_Props_25 = {
215
+ recent?: RecentTask[];
216
+ hasRunning?: boolean;
217
+ mobile?: boolean;
218
+ shortcut?: string;
219
+ };
220
+
221
+ declare type __VLS_Props_26 = {
215
222
  title: string;
216
223
  sub?: string;
217
224
  scrolled: boolean;
218
225
  };
219
226
 
220
- declare type __VLS_Props_26 = {
227
+ declare type __VLS_Props_27 = {
221
228
  items: TabItem[];
222
229
  modelValue: string;
223
230
  indicator?: boolean;
224
231
  };
225
232
 
226
- declare type __VLS_Props_27 = {
233
+ declare type __VLS_Props_28 = {
227
234
  title: string;
228
235
  sub?: string;
229
236
  scrolled?: boolean;
230
237
  };
231
238
 
232
- declare type __VLS_Props_28 = {
239
+ declare type __VLS_Props_29 = {
233
240
  items: TabItem[];
234
241
  modelValue: string;
235
242
  indicator?: boolean;
236
243
  };
237
244
 
245
+ declare type __VLS_Props_3 = {
246
+ modelValue: string;
247
+ options: {
248
+ value: string;
249
+ label: string;
250
+ }[];
251
+ size?: 'sm' | 'md';
252
+ };
253
+
238
254
  /**
239
255
  * Lucide glyph rendered inline from the bundled table, so it follows currentColor and fetches nothing.
240
256
  * SUBSTITUTION: Timebraid has no icon set of its own yet; Lucide is the closest match to the mark.
241
257
  */
242
- declare type __VLS_Props_29 = {
258
+ declare type __VLS_Props_30 = {
243
259
  /** Lucide kebab-case name from the bundled table: play, square, plus, folder-kanban... */
244
260
  name: string;
245
261
  /** 16 in the app, 20 in the site header, 24 in marketing rows. */
@@ -249,36 +265,27 @@ declare type __VLS_Props_29 = {
249
265
  base?: string;
250
266
  };
251
267
 
252
- declare type __VLS_Props_3 = {
253
- modelValue: string;
254
- options: {
255
- value: string;
256
- label: string;
257
- }[];
258
- size?: 'sm' | 'md';
259
- };
260
-
261
268
  /** 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. */
262
- declare type __VLS_Props_30 = {
269
+ declare type __VLS_Props_31 = {
263
270
  size?: number;
264
271
  wordmark?: boolean;
265
272
  mono?: boolean;
266
273
  };
267
274
 
268
- declare type __VLS_Props_31 = {
275
+ declare type __VLS_Props_32 = {
269
276
  modelValue?: string;
270
277
  length?: number;
271
278
  error?: string;
272
279
  autofocus?: boolean;
273
280
  };
274
281
 
275
- declare type __VLS_Props_32 = {
282
+ declare type __VLS_Props_33 = {
276
283
  title: string;
277
284
  description?: string;
278
285
  width?: number;
279
286
  };
280
287
 
281
- declare type __VLS_Props_33 = {
288
+ declare type __VLS_Props_34 = {
282
289
  modelValue?: boolean;
283
290
  label: string;
284
291
  description?: string;
@@ -286,7 +293,7 @@ declare type __VLS_Props_33 = {
286
293
  disabled?: boolean;
287
294
  };
288
295
 
289
- declare type __VLS_Props_34 = {
296
+ declare type __VLS_Props_35 = {
290
297
  content: string;
291
298
  /** e.g. ⌘N - mono, muted, at the end. */
292
299
  shortcut?: string;
@@ -616,6 +623,13 @@ export declare interface PillTimer {
616
623
  /** Okabe-Ito, the only palette permitted for projects and charts. */
617
624
  export declare const PROJECT_COLORS: string[];
618
625
 
626
+ export declare interface RecentTask {
627
+ id: string;
628
+ task: string;
629
+ projectId: string;
630
+ color?: string;
631
+ }
632
+
619
633
  export declare type ResolvedTheme = 'light' | 'dark';
620
634
 
621
635
  export declare function resolveTheme(pref: ThemePreference, prefersDark: boolean): ResolvedTheme;
@@ -658,9 +672,9 @@ export declare interface TabItem {
658
672
  icon: string;
659
673
  }
660
674
 
661
- export declare const TAndroidNavBar: DefineComponent<__VLS_Props_28, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
675
+ export declare const TAndroidNavBar: DefineComponent<__VLS_Props_29, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
662
676
  "update:modelValue": (id: string) => any;
663
- }, string, PublicProps, Readonly<__VLS_Props_28> & Readonly<{
677
+ }, string, PublicProps, Readonly<__VLS_Props_29> & Readonly<{
664
678
  "onUpdate:modelValue"?: ((id: string) => any) | undefined;
665
679
  }>, {
666
680
  indicator: boolean;
@@ -688,9 +702,9 @@ h: number;
688
702
 
689
703
  export declare const TBtn: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;
690
704
 
691
- export declare const TCheckbox: DefineComponent<__VLS_Props_33, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
705
+ export declare const TCheckbox: DefineComponent<__VLS_Props_34, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
692
706
  "update:modelValue": (v: boolean) => any;
693
- }, string, PublicProps, Readonly<__VLS_Props_33> & Readonly<{
707
+ }, string, PublicProps, Readonly<__VLS_Props_34> & Readonly<{
694
708
  "onUpdate:modelValue"?: ((v: boolean) => any) | undefined;
695
709
  }>, {
696
710
  modelValue: boolean;
@@ -698,9 +712,9 @@ disabled: boolean;
698
712
  indeterminate: boolean;
699
713
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
700
714
 
701
- export declare const TCodeInput: DefineComponent<__VLS_Props_31, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
715
+ export declare const TCodeInput: DefineComponent<__VLS_Props_32, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
702
716
  "update:modelValue": (v: string) => any;
703
- }, string, PublicProps, Readonly<__VLS_Props_31> & Readonly<{
717
+ }, string, PublicProps, Readonly<__VLS_Props_32> & Readonly<{
704
718
  "onUpdate:modelValue"?: ((v: string) => any) | undefined;
705
719
  }>, {
706
720
  length: number;
@@ -740,7 +754,7 @@ export declare const THEME_PREFERENCES: ThemePreference[];
740
754
 
741
755
  export declare type ThemePreference = 'system' | 'light' | 'dark';
742
756
 
743
- export declare const TIcon: DefineComponent<__VLS_Props_29, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_29> & Readonly<{}>, {
757
+ export declare const TIcon: DefineComponent<__VLS_Props_30, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_30> & Readonly<{}>, {
744
758
  color: string;
745
759
  size: number;
746
760
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
@@ -778,9 +792,9 @@ export declare interface TimerWorkspace {
778
792
 
779
793
  export declare const TIOSNav: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;
780
794
 
781
- export declare const TIOSTabBar: DefineComponent<__VLS_Props_26, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
795
+ export declare const TIOSTabBar: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
782
796
  "update:modelValue": (id: string) => any;
783
- }, string, PublicProps, Readonly<__VLS_Props_26> & Readonly<{
797
+ }, string, PublicProps, Readonly<__VLS_Props_27> & Readonly<{
784
798
  "onUpdate:modelValue"?: ((id: string) => any) | undefined;
785
799
  }>, {
786
800
  indicator: boolean;
@@ -788,7 +802,7 @@ indicator: boolean;
788
802
 
789
803
  export declare const TLargeTitle: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;
790
804
 
791
- export declare const TLogo: DefineComponent<__VLS_Props_30, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_30> & Readonly<{}>, {
805
+ export declare const TLogo: DefineComponent<__VLS_Props_31, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_31> & Readonly<{}>, {
792
806
  size: number;
793
807
  mono: boolean;
794
808
  wordmark: boolean;
@@ -858,6 +872,19 @@ disabled: boolean;
858
872
 
859
873
  export declare const TSheet: __VLS_WithTemplateSlots_6<typeof __VLS_component_6, __VLS_TemplateResult_6["slots"]>;
860
874
 
875
+ export declare const TStartHero: DefineComponent<__VLS_Props_25, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
876
+ open: () => any;
877
+ pick: (taskId: string) => any;
878
+ }, string, PublicProps, Readonly<__VLS_Props_25> & Readonly<{
879
+ onOpen?: (() => any) | undefined;
880
+ onPick?: ((taskId: string) => any) | undefined;
881
+ }>, {
882
+ mobile: boolean;
883
+ recent: RecentTask[];
884
+ hasRunning: boolean;
885
+ shortcut: string;
886
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
887
+
861
888
  export declare const TStrokes: DefineComponent<__VLS_Props_24, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_24> & Readonly<{}>, {
862
889
  opacity: number;
863
890
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;