@dskripchenko/ui 1.20.0 → 1.22.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
@@ -111,7 +111,7 @@ A short selection — the full catalog is in [Storybook](https://dskripchenko.gi
111
111
 
112
112
  User docs are translated into four languages — pick yours:
113
113
 
114
- - 🇬🇧 **English** (default): [getting-started](./docs/en/getting-started.md), [theming](./docs/en/theming.md), [tokens](./docs/en/tokens.md), [icons](./docs/en/icons.md), [patterns](./docs/en/patterns.md), [validation](./docs/en/validation.md), [charts](./docs/en/charts.md), [markdown](./docs/en/markdown.md), [kanban](./docs/en/kanban.md), [event calendar](./docs/en/event-calendar.md), [video](./docs/en/video.md), [audio](./docs/en/audio.md), [i18n](./docs/en/i18n.md)
114
+ - 🇬🇧 **English** (default): [getting-started](./docs/en/getting-started.md), [theming](./docs/en/theming.md), [tokens](./docs/en/tokens.md), [icons](./docs/en/icons.md), [patterns](./docs/en/patterns.md), [validation](./docs/en/validation.md), [charts](./docs/en/charts.md), [markdown](./docs/en/markdown.md), [board](./docs/en/board.md), [calendar](./docs/en/calendar.md), [kanban](./docs/en/kanban.md), [event calendar](./docs/en/event-calendar.md), [video](./docs/en/video.md), [audio](./docs/en/audio.md), [i18n](./docs/en/i18n.md)
115
115
  - 🇷🇺 **Русский**: [docs/ru/](./docs/ru/)
116
116
  - 🇩🇪 **Deutsch**: [docs/de/](./docs/de/)
117
117
  - 🇨🇳 **中文**: [docs/zh/](./docs/zh/)
@@ -4,11 +4,23 @@ export interface BoardCardTag {
4
4
  label: string;
5
5
  tone?: Tone | 'default';
6
6
  }
7
+ /** Who a card is assigned to: a name, or a name with an avatar picture or colour. */
8
+ export type BoardAssignee = string | {
9
+ name: string;
10
+ avatar?: string;
11
+ color?: string;
12
+ };
7
13
  export interface BoardCard {
8
14
  key: BoardKey;
9
15
  title: string;
10
16
  subtitle?: string;
11
17
  tags?: BoardCardTag[];
18
+ /** Shown in the card's footer as initials or the avatar picture. */
19
+ assignee?: BoardAssignee;
20
+ /** `YYYY-MM-DD`: the due date, shown formatted; before `today` (and not `done`) it is overdue. */
21
+ due?: string;
22
+ /** A finished card: muted, and never overdue. */
23
+ done?: boolean;
12
24
  /** The swimlane the card sits in, when the board has lanes. */
13
25
  lane?: BoardKey;
14
26
  /** Columns the card may move to; omitted — any column. */
@@ -18,6 +30,8 @@ export interface BoardColumn {
18
30
  key: BoardKey;
19
31
  title: string;
20
32
  cards: BoardCard[];
33
+ /** The real number of cards when only some are loaded; the count and WIP check use it. */
34
+ total?: number;
21
35
  /** Work-in-progress limit; the header warns when the column holds more. */
22
36
  wip?: number | null;
23
37
  }
@@ -40,6 +54,8 @@ export interface UidBoardProps {
40
54
  /** Freeze the board while a move is being saved. */
41
55
  busy?: boolean;
42
56
  readonly?: boolean;
57
+ /** `YYYY-MM-DD`: a card `due` before it is overdue. The local date by default. */
58
+ today?: string;
43
59
  }
44
60
  declare function __VLS_template(): {
45
61
  attrs: Partial<{}>;
@@ -53,6 +69,10 @@ declare function __VLS_template(): {
53
69
  count: number;
54
70
  over: boolean;
55
71
  }): unknown;
72
+ /** The bottom of a column, below its cards (with lanes — below the last lane). */
73
+ 'column-footer'?(props: {
74
+ column: BoardColumn;
75
+ }): unknown;
56
76
  }> & {
57
77
  card?(props: {
58
78
  card: BoardCard;
@@ -63,6 +83,10 @@ declare function __VLS_template(): {
63
83
  count: number;
64
84
  over: boolean;
65
85
  }): unknown;
86
+ /** The bottom of a column, below its cards (with lanes — below the last lane). */
87
+ 'column-footer'?(props: {
88
+ column: BoardColumn;
89
+ }): unknown;
66
90
  };
67
91
  refs: {};
68
92
  rootEl: HTMLDivElement;
@@ -78,6 +102,7 @@ declare const __VLS_component: import('vue').DefineComponent<UidBoardProps, {},
78
102
  readonly: boolean;
79
103
  lanes: BoardLane[];
80
104
  busy: boolean;
105
+ today: string;
81
106
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
82
107
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
83
108
  export default _default;
@@ -1,2 +1,2 @@
1
1
  export { default as UidBoard } from './UidBoard.vue';
2
- export type { UidBoardProps, BoardCard, BoardCardTag, BoardColumn, BoardLane, BoardMove, BoardKey } from './UidBoard.vue';
2
+ export type { UidBoardProps, BoardCard, BoardCardTag, BoardColumn, BoardLane, BoardMove, BoardKey, BoardAssignee } from './UidBoard.vue';
@@ -1,5 +1,6 @@
1
1
  import { CalendarEvent, CalendarRange, CalendarView } from './calendarModel';
2
2
  export type { CalendarEvent, CalendarRange, CalendarView } from './calendarModel';
3
+ /** `event-move`: a move gives the new date (and times); a resize gives the new `endTime` (time grid) or inclusive `endDate` (month, all-day row). */
3
4
  export interface CalendarEventMove {
4
5
  event: CalendarEvent;
5
6
  date: string;
@@ -7,6 +8,7 @@ export interface CalendarEventMove {
7
8
  time?: string;
8
9
  endTime?: string;
9
10
  }
11
+ /** The payload of `slot-click`: an empty slot — a time in the day/week grid, a day in the all-day row. */
10
12
  export interface CalendarSlot {
11
13
  date: string;
12
14
  time?: string;
@@ -20,6 +22,8 @@ export interface UidCalendarProps {
20
22
  todayLabel?: string;
21
23
  views?: CalendarView[];
22
24
  editable?: boolean;
25
+ /** Emit `slot-click` for clicks on empty slots. Defaults to `editable`. */
26
+ selectable?: boolean;
23
27
  hourHeight?: number;
24
28
  scrollToHour?: number;
25
29
  }
@@ -57,11 +61,12 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
57
61
  "onUpdate:view"?: ((value: CalendarView) => any) | undefined;
58
62
  "onUpdate:anchor"?: ((value: string | null) => any) | undefined;
59
63
  }>, {
64
+ selectable: boolean;
60
65
  compact: boolean;
66
+ editable: boolean;
61
67
  events: CalendarEvent[];
62
68
  maxEventsPerDay: number;
63
69
  views: CalendarView[];
64
- editable: boolean;
65
70
  hourHeight: number;
66
71
  scrollToHour: number;
67
72
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
@@ -7,6 +7,8 @@ export interface CalendarEvent {
7
7
  endTime?: string;
8
8
  title: string;
9
9
  color?: string;
10
+ /** `false` — never dragged or resized, even in an editable calendar; omitted — follows the calendar. */
11
+ editable?: boolean;
10
12
  }
11
13
  export interface CalendarRange {
12
14
  view: CalendarView;
@@ -37,4 +39,6 @@ export interface TimedBlock {
37
39
  cols: number;
38
40
  }
39
41
  export declare function layoutDay(events: readonly CalendarEvent[], iso: string): TimedBlock[];
42
+ /** The event stretched to end on `end` (inclusive, never before the start), times kept. */
43
+ export declare function resized(e: CalendarEvent, end: string): Pick<CalendarEvent, 'date' | 'endDate' | 'time' | 'endTime'>;
40
44
  export declare function moved(e: CalendarEvent, date: string, time?: string): Pick<CalendarEvent, 'date' | 'endDate' | 'time' | 'endTime'>;
@@ -1,2 +1,2 @@
1
1
  export { default as UidCalendar } from './UidCalendar.vue';
2
- export type { UidCalendarProps, CalendarEvent } from './UidCalendar.vue';
2
+ export type { UidCalendarProps, CalendarEvent, CalendarEventMove, CalendarSlot, CalendarRange, CalendarView } from './UidCalendar.vue';
@@ -35,8 +35,8 @@ declare const _default: import('vue').DefineComponent<UidEventCalendarProps, {},
35
35
  source: string;
36
36
  view: CalendarView | "";
37
37
  date: string;
38
- views: CalendarView[];
39
38
  editable: boolean;
39
+ views: CalendarView[];
40
40
  locked: boolean;
41
41
  lockable: boolean;
42
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -26,9 +26,9 @@ declare const _default: import('vue').DefineComponent<UidKanbanProps, {}, {}, {}
26
26
  onOpen?: ((card: KanbanOpen) => any) | undefined;
27
27
  }>, {
28
28
  source: string;
29
+ today: string;
29
30
  editable: boolean;
30
31
  locked: boolean;
31
32
  lockable: boolean;
32
- today: string;
33
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
34
34
  export default _default;
@@ -40,10 +40,20 @@ export interface UidMarkdownBlockMountHandle {
40
40
  * placeholder until it settles. A thrown error or a rejected promise is
41
41
  * treated like `{ error }`.
42
42
  */
43
- export type UidMarkdownBlockRenderer = (code: string, ctx: {
43
+ export type UidMarkdownBlockRenderer = (code: string, ctx: UidMarkdownBlockRenderContext) => UidMarkdownBlockResult | Promise<UidMarkdownBlockResult>;
44
+ /** What a block renderer knows of the block and of the markdown around it. */
45
+ export interface UidMarkdownBlockRenderContext {
44
46
  language: string;
47
+ /** The block's number among the markdown's code blocks, from 0. */
45
48
  index: number;
46
- }) => UidMarkdownBlockResult | Promise<UidMarkdownBlockResult>;
49
+ /**
50
+ * The markdown's `imageBase` and `linkBase`, when it has them: a block that
51
+ * names files (a ```video with `src: intro.mp4`) resolves relative paths
52
+ * against them, as the markdown's own images and links do.
53
+ */
54
+ imageBase?: string;
55
+ linkBase?: string;
56
+ }
47
57
  /** Block renderers by fence language (lower case). */
48
58
  export type UidMarkdownBlockRenderers = Readonly<Record<string, UidMarkdownBlockRenderer>>;
49
59
  export declare const markdownBlockRenderersKey: InjectionKey<UidMarkdownBlockRenderers>;
@@ -3,4 +3,4 @@ export type { UidMarkdownProps } from './UidMarkdown.vue';
3
3
  export { createSlugger, escapeHtml, renderMarkdown, resolveAgainst, splitMarkdown, } from './markdown.js';
4
4
  export type { MarkdownHeading, MarkdownOptions, MarkdownSegment, Slugger, UidMarkdownCalloutKind, } from './markdown.js';
5
5
  export { markdownBlockRenderersKey, provideMarkdownBlockRenderers, useMarkdownBlockRenderers, } from './blockRenderers.js';
6
- export type { UidMarkdownBlockRenderer, UidMarkdownBlockRenderers, UidMarkdownBlockResult, UidMarkdownBlockMountContext, UidMarkdownBlockMountHandle, } from './blockRenderers.js';
6
+ export type { UidMarkdownBlockRenderer, UidMarkdownBlockRenderContext, UidMarkdownBlockRenderers, UidMarkdownBlockResult, UidMarkdownBlockMountContext, UidMarkdownBlockMountHandle, } from './blockRenderers.js';
@@ -44,6 +44,11 @@ export interface MarkdownOptions {
44
44
  * own links to navigate.
45
45
  */
46
46
  internalLinksInPlace?: boolean;
47
+ /** Read-out names of task checkboxes; English when not given. */
48
+ taskLabels?: {
49
+ done: string;
50
+ open: string;
51
+ };
47
52
  /** Titles of `[!NOTE]`-style callouts; English when not given. */
48
53
  calloutTitles?: Partial<Record<UidMarkdownCalloutKind, string>>;
49
54
  }