@mieweb/ui 0.10.0-dev.11 → 0.10.0-dev.12

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.
Files changed (113) hide show
  1. package/dist/Input-yN516s5_.d.cts +3 -0
  2. package/dist/Input-yN516s5_.d.ts +3 -0
  3. package/dist/ag-grid.d.cts +142 -1
  4. package/dist/ag-grid.d.ts +142 -1
  5. package/dist/components/Alert/index.d.cts +1 -1
  6. package/dist/components/Alert/index.d.ts +1 -1
  7. package/dist/components/AlertDialog/index.d.cts +28 -3
  8. package/dist/components/AlertDialog/index.d.ts +28 -3
  9. package/dist/components/AudioRecorder/index.d.cts +2 -2
  10. package/dist/components/AudioRecorder/index.d.ts +2 -2
  11. package/dist/components/Autocomplete/index.d.cts +8 -2
  12. package/dist/components/Autocomplete/index.d.ts +8 -2
  13. package/dist/components/Avatar/index.d.cts +1 -1
  14. package/dist/components/Avatar/index.d.ts +1 -1
  15. package/dist/components/Badge/index.d.cts +1 -1
  16. package/dist/components/Badge/index.d.ts +1 -1
  17. package/dist/components/BoardView/index.d.cts +91 -4
  18. package/dist/components/BoardView/index.d.ts +91 -4
  19. package/dist/components/Button/index.d.cts +1 -1
  20. package/dist/components/Button/index.d.ts +1 -1
  21. package/dist/components/CalendarView/index.d.cts +1 -2
  22. package/dist/components/CalendarView/index.d.ts +1 -2
  23. package/dist/components/Card/index.d.cts +3 -3
  24. package/dist/components/Card/index.d.ts +3 -3
  25. package/dist/components/Dropdown/index.d.cts +2 -1
  26. package/dist/components/Dropdown/index.d.ts +2 -1
  27. package/dist/components/GanttView/index.d.cts +1 -2
  28. package/dist/components/GanttView/index.d.ts +1 -2
  29. package/dist/components/ListView/index.d.cts +2 -3
  30. package/dist/components/ListView/index.d.ts +2 -3
  31. package/dist/components/MediaEditor/index.d.cts +91 -2
  32. package/dist/components/MediaEditor/index.d.ts +91 -2
  33. package/dist/components/MediaPlayer/index.d.cts +1 -1
  34. package/dist/components/MediaPlayer/index.d.ts +1 -1
  35. package/dist/components/Pagination/index.d.cts +1 -1
  36. package/dist/components/Pagination/index.d.ts +1 -1
  37. package/dist/components/PhoneInput/index.d.cts +36 -3
  38. package/dist/components/PhoneInput/index.d.ts +36 -3
  39. package/dist/components/Progress/index.d.cts +1 -1
  40. package/dist/components/Progress/index.d.ts +1 -1
  41. package/dist/components/Q/index.d.cts +2 -2
  42. package/dist/components/Q/index.d.ts +2 -2
  43. package/dist/components/QuickAction/index.d.cts +1 -1
  44. package/dist/components/QuickAction/index.d.ts +1 -1
  45. package/dist/components/RecordButton/index.d.cts +1 -1
  46. package/dist/components/RecordButton/index.d.ts +1 -1
  47. package/dist/components/RichTextEditor/index.d.cts +7 -2
  48. package/dist/components/RichTextEditor/index.d.ts +7 -2
  49. package/dist/components/ScrollArea/index.d.cts +1 -1
  50. package/dist/components/ScrollArea/index.d.ts +1 -1
  51. package/dist/components/Select/index.d.cts +1 -2
  52. package/dist/components/Select/index.d.ts +1 -2
  53. package/dist/components/Skeleton/index.d.cts +1 -1
  54. package/dist/components/Skeleton/index.d.ts +1 -1
  55. package/dist/components/Slider/index.d.cts +2 -2
  56. package/dist/components/Slider/index.d.ts +2 -2
  57. package/dist/components/Spinner/index.d.cts +2 -2
  58. package/dist/components/Spinner/index.d.ts +2 -2
  59. package/dist/components/SuperChat/index.d.cts +2 -4
  60. package/dist/components/SuperChat/index.d.ts +2 -4
  61. package/dist/components/SuperChat/plugins/index.d.cts +2 -3
  62. package/dist/components/SuperChat/plugins/index.d.ts +2 -3
  63. package/dist/components/Text/index.d.cts +3 -3
  64. package/dist/components/Text/index.d.ts +3 -3
  65. package/dist/components/Textarea/index.d.cts +1 -2
  66. package/dist/components/Textarea/index.d.ts +1 -2
  67. package/dist/components/ThemeProvider/index.d.cts +3 -1
  68. package/dist/components/ThemeProvider/index.d.ts +3 -1
  69. package/dist/components/TranscriptView/index.d.cts +85 -4
  70. package/dist/components/TranscriptView/index.d.ts +85 -4
  71. package/dist/components/ViewSet/index.d.cts +120 -9
  72. package/dist/components/ViewSet/index.d.ts +120 -9
  73. package/dist/components/ViewSwitcher/index.d.cts +4 -40
  74. package/dist/components/ViewSwitcher/index.d.ts +4 -40
  75. package/dist/datavis.d.cts +167 -13
  76. package/dist/datavis.d.ts +167 -13
  77. package/dist/esheet.d.cts +183 -1
  78. package/dist/esheet.d.ts +183 -1
  79. package/dist/hooks/index.d.cts +383 -31
  80. package/dist/hooks/index.d.ts +383 -31
  81. package/dist/index-DoYYWsNc.d.cts +127 -0
  82. package/dist/index-DoYYWsNc.d.ts +127 -0
  83. package/dist/index.d.cts +7592 -414
  84. package/dist/index.d.ts +7592 -414
  85. package/dist/motion.d.cts +186 -2
  86. package/dist/motion.d.ts +186 -2
  87. package/dist/q.d.cts +25 -3
  88. package/dist/q.d.ts +25 -3
  89. package/dist/{types-B97JNRNQ.d.cts → types-DOxdTwmq.d.cts} +170 -2
  90. package/dist/{types-gZXrfLj6.d.ts → types-DOxdTwmq.d.ts} +170 -2
  91. package/dist/{types-CbWXIKbe.d.cts → types-DsdZvEI1.d.cts} +1 -28
  92. package/dist/{types-CbWXIKbe.d.ts → types-DsdZvEI1.d.ts} +1 -28
  93. package/dist/utils/index.d.cts +13 -2
  94. package/dist/utils/index.d.ts +13 -2
  95. package/package.json +3 -2
  96. package/dist/Animated-XmH6k8pZ.d.cts +0 -188
  97. package/dist/Animated-XmH6k8pZ.d.ts +0 -188
  98. package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
  99. package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
  100. package/dist/html-MdxqSzjD.d.cts +0 -13
  101. package/dist/html-MdxqSzjD.d.ts +0 -13
  102. package/dist/orderRows-BUJYgSc7.d.cts +0 -221
  103. package/dist/orderRows-BUJYgSc7.d.ts +0 -221
  104. package/dist/transcript-Cg7uSW-C.d.cts +0 -84
  105. package/dist/transcript-Cg7uSW-C.d.ts +0 -84
  106. package/dist/types-CnPEwzlp.d.cts +0 -254
  107. package/dist/types-CnPEwzlp.d.ts +0 -254
  108. package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
  109. package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
  110. package/dist/useTheme-B9SWu6ui.d.cts +0 -24
  111. package/dist/useTheme-B9SWu6ui.d.ts +0 -24
  112. package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
  113. package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
@@ -1,9 +1,96 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { c as ViewLabels, a as ViewBaseProps, S as Stage } from '../../types-CbWXIKbe.js';
5
- import 'react';
6
- import 'luxon';
4
+ import * as React from 'react';
5
+
6
+ /**
7
+ * The contract every component in the `Modules/Views` family reads through.
8
+ *
9
+ * A page describes its collection once — which field is the id, the title, the
10
+ * status, the start date — and every view understands it. That is the whole
11
+ * reason the family exists: without it each view needs its own adapter and you
12
+ * end up re-implementing the same board per entity.
13
+ *
14
+ * Views are headless. Nothing here fetches, subscribes, or navigates.
15
+ * See CONTRIBUTING → "Modules: headless data components".
16
+ */
17
+
18
+ /**
19
+ * Which layout is on screen. `overview` and `table` are rendered by the host
20
+ * through `ViewSet` slots rather than by a component in this family — a tabular
21
+ * collection is `DataVisNitroGrid`, and an overview is domain content.
22
+ */
23
+ type ViewId = 'overview' | 'list' | 'board' | 'calendar' | 'gantt' | 'roadmap' | 'table';
24
+ /**
25
+ * A semantic colour name, resolved to `--mieweb-*` tokens by each view.
26
+ *
27
+ * Accessors return one of these rather than a class string so a caller cannot
28
+ * hardcode a palette that breaks under another brand or in dark mode.
29
+ */
30
+ type Accent = 'primary' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
31
+ /** A named stage: a board column, and the segments of a stage bar. */
32
+ interface Stage {
33
+ id: string;
34
+ label: string;
35
+ accent?: Accent;
36
+ }
37
+ /**
38
+ * How a view reads one item. Only `getId` and `getTitle` are always required;
39
+ * each view documents which of the rest it needs (a board needs `getStatus`, a
40
+ * Gantt needs `getStart`) and renders an explanatory empty state without them.
41
+ */
42
+ interface ViewAccessors<T> {
43
+ getId: (item: T) => string;
44
+ getTitle: (item: T) => string;
45
+ /** Secondary line under the title. */
46
+ getSubtitle?: (item: T) => string | undefined;
47
+ /** Board column and list group; matched against `Stage['id']`. */
48
+ getStatus?: (item: T) => string;
49
+ /** Gantt bar start, calendar placement. */
50
+ getStart?: (item: T) => Date | string | null | undefined;
51
+ /** Gantt bar end, calendar span. Falls back to the start when absent. */
52
+ getEnd?: (item: T) => Date | string | null | undefined;
53
+ /** Swimlane in a roadmap, row group in a Gantt. */
54
+ getGroup?: (item: T) => string | undefined;
55
+ getAccent?: (item: T) => Accent;
56
+ }
57
+ /** Strings a view renders. Every one is overridable; the defaults are English. */
58
+ interface ViewLabels {
59
+ /** Accessible name of the view switcher group. */
60
+ viewSwitcher: string;
61
+ loading: string;
62
+ empty: string;
63
+ error: string;
64
+ /** Action on the error state. */
65
+ retry: string;
66
+ /** Heading for the group a record with no status or group falls into. */
67
+ ungrouped: string;
68
+ }
69
+ /**
70
+ * Props every view accepts. Views are controlled: selection, the active view and
71
+ * filter state live in the page, and every change is handed back.
72
+ */
73
+ interface ViewBaseProps<T> {
74
+ items: T[];
75
+ accessors: ViewAccessors<T>;
76
+ loading?: boolean;
77
+ error?: Error | null;
78
+ selectedId?: string | null;
79
+ /** Called when the user activates an item. */
80
+ onOpen?: (id: string, item: T) => void;
81
+ /** Return a URL to render each item as a real anchor — middle-clickable and crawlable. */
82
+ getHref?: (id: string, item: T) => string;
83
+ /** Render one item. Receives the active view so one function can serve several. */
84
+ renderItem?: (item: T, context: {
85
+ view: ViewId;
86
+ }) => React.ReactNode;
87
+ /** Replaces the built-in empty state. */
88
+ emptyState?: React.ReactNode;
89
+ labels?: Partial<ViewLabels>;
90
+ /** Pins "today" so stories, tests and visual snapshots stay deterministic. */
91
+ now?: Date;
92
+ className?: string;
93
+ }
7
94
 
8
95
  type BoardViewSlot = 'column' | 'columnHeader' | 'card' | 'selectedCard' | 'state';
9
96
  interface BoardLabels extends ViewLabels {
@@ -32,7 +119,7 @@ interface BoardViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof cardVa
32
119
  headingLevel?: 'h2' | 'h3' | 'h4';
33
120
  }
34
121
  declare const cardVariants: (props?: ({
35
- density?: "compact" | "comfortable" | null | undefined;
122
+ density?: "comfortable" | "compact" | null | undefined;
36
123
  interactive?: boolean | null | undefined;
37
124
  selected?: boolean | null | undefined;
38
125
  pending?: boolean | null | undefined;
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "primary" | "secondary" | "ghost" | "outline" | "danger" | null | undefined;
6
+ variant?: "link" | "secondary" | "danger" | "outline" | "primary" | "ghost" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | "icon" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  effect?: "none" | "sheen" | "orbit" | null | undefined;
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "primary" | "secondary" | "ghost" | "outline" | "danger" | null | undefined;
6
+ variant?: "link" | "secondary" | "danger" | "outline" | "primary" | "ghost" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | "icon" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  effect?: "none" | "sheen" | "orbit" | null | undefined;
@@ -1,7 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { c as ViewLabels, a as ViewBaseProps } from '../../types-CbWXIKbe.cjs';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.cjs';
3
3
  import 'react';
4
- import 'luxon';
5
4
 
6
5
  type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
7
6
  interface CalendarLabels extends ViewLabels {
@@ -1,7 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { c as ViewLabels, a as ViewBaseProps } from '../../types-CbWXIKbe.js';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.js';
3
3
  import 'react';
4
- import 'luxon';
5
4
 
6
5
  type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
7
6
  interface CalendarLabels extends ViewLabels {
@@ -4,13 +4,13 @@ import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const cardVariants: (props?: ({
6
6
  padding?: "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
7
- variant?: "default" | "ghost" | "filled" | "elevated" | "outlined" | null | undefined;
7
+ variant?: "default" | "elevated" | "outlined" | "ghost" | "filled" | null | undefined;
8
8
  interactive?: boolean | null | undefined;
9
9
  selected?: boolean | null | undefined;
10
- orientation?: "horizontal" | "vertical" | null | undefined;
10
+ orientation?: "vertical" | "horizontal" | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;
12
12
  declare const cardAccentVariants: (props?: ({
13
- color?: "primary" | "warning" | "success" | "info" | "destructive" | null | undefined;
13
+ color?: "primary" | "success" | "warning" | "destructive" | "info" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
16
16
  /** Semantic HTML element to render as */
@@ -4,13 +4,13 @@ import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const cardVariants: (props?: ({
6
6
  padding?: "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
7
- variant?: "default" | "ghost" | "filled" | "elevated" | "outlined" | null | undefined;
7
+ variant?: "default" | "elevated" | "outlined" | "ghost" | "filled" | null | undefined;
8
8
  interactive?: boolean | null | undefined;
9
9
  selected?: boolean | null | undefined;
10
- orientation?: "horizontal" | "vertical" | null | undefined;
10
+ orientation?: "vertical" | "horizontal" | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;
12
12
  declare const cardAccentVariants: (props?: ({
13
- color?: "primary" | "warning" | "success" | "info" | "destructive" | null | undefined;
13
+ color?: "primary" | "success" | "warning" | "destructive" | "info" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
16
16
  /** Semantic HTML element to render as */
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { A as AnchoredPlacement } from '../../useAnchoredPosition-CKwLSQW8.cjs';
3
+
4
+ type AnchoredPlacement = 'bottom-start' | 'bottom-end' | 'bottom' | 'top-start' | 'top-end' | 'top' | 'right-start' | 'right-end' | 'right' | 'left-start' | 'left-end' | 'left';
4
5
 
5
6
  type DropdownPlacement = AnchoredPlacement;
6
7
  interface DropdownProps {
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { A as AnchoredPlacement } from '../../useAnchoredPosition-CKwLSQW8.js';
3
+
4
+ type AnchoredPlacement = 'bottom-start' | 'bottom-end' | 'bottom' | 'top-start' | 'top-end' | 'top' | 'right-start' | 'right-end' | 'right' | 'left-start' | 'left-end' | 'left';
4
5
 
5
6
  type DropdownPlacement = AnchoredPlacement;
6
7
  interface DropdownProps {
@@ -1,7 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { c as ViewLabels, a as ViewBaseProps } from '../../types-CbWXIKbe.cjs';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.cjs';
3
3
  import 'react';
4
- import 'luxon';
5
4
 
6
5
  /**
7
6
  * Column width in time. `month` and `quarter` are what a roadmap is — the
@@ -1,7 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { c as ViewLabels, a as ViewBaseProps } from '../../types-CbWXIKbe.js';
2
+ import { V as ViewLabels, a as ViewBaseProps } from '../../types-DsdZvEI1.js';
3
3
  import 'react';
4
- import 'luxon';
5
4
 
6
5
  /**
7
6
  * Column width in time. `month` and `quarter` are what a roadmap is — the
@@ -1,9 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { a as ViewBaseProps, S as Stage } from '../../types-CbWXIKbe.cjs';
4
+ import { a as ViewBaseProps, S as Stage } from '../../types-DsdZvEI1.cjs';
5
5
  import 'react';
6
- import 'luxon';
7
6
 
8
7
  type ListViewSlot = 'group' | 'groupHeader' | 'item' | 'selectedItem' | 'state';
9
8
  interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVariants> {
@@ -24,7 +23,7 @@ interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVar
24
23
  headingLevel?: 'h2' | 'h3' | 'h4';
25
24
  }
26
25
  declare const itemVariants: (props?: ({
27
- density?: "compact" | "comfortable" | null | undefined;
26
+ density?: "comfortable" | "compact" | null | undefined;
28
27
  interactive?: boolean | null | undefined;
29
28
  selected?: boolean | null | undefined;
30
29
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1,9 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { a as ViewBaseProps, S as Stage } from '../../types-CbWXIKbe.js';
4
+ import { a as ViewBaseProps, S as Stage } from '../../types-DsdZvEI1.js';
5
5
  import 'react';
6
- import 'luxon';
7
6
 
8
7
  type ListViewSlot = 'group' | 'groupHeader' | 'item' | 'selectedItem' | 'state';
9
8
  interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVariants> {
@@ -24,7 +23,7 @@ interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVar
24
23
  headingLevel?: 'h2' | 'h3' | 'h4';
25
24
  }
26
25
  declare const itemVariants: (props?: ({
27
- density?: "compact" | "comfortable" | null | undefined;
26
+ density?: "comfortable" | "compact" | null | undefined;
28
27
  interactive?: boolean | null | undefined;
29
28
  selected?: boolean | null | undefined;
30
29
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1,9 +1,78 @@
1
1
  import * as class_variance_authority_types from 'class-variance-authority/types';
2
2
  import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { T as Transcript, E as EditableWord, S as SpeedMarker, P as PlaybackSpeed } from '../../transcript-Cg7uSW-C.cjs';
5
4
  import { MediaKind, MediaPlayerRef } from '../MediaPlayer/index.cjs';
6
- import { S as SilenceThresholdCount } from '../../useTranscriptEdits-CGzlemHT.cjs';
5
+
6
+ /**
7
+ * Transcript schema for @mieweb/ui media components.
8
+ *
9
+ * Provider-agnostic and persistence-agnostic. Canonical time unit is
10
+ * **milliseconds** (consumers with seconds-based data, e.g. osheet, adapt
11
+ * at the boundary).
12
+ *
13
+ * Shared by TranscriptView, MediaEditor, and useTranscriptEdits.
14
+ */
15
+ /** Type of transcript word - 'word' for spoken content, 'silence' for detected gaps, 'silence-newline' for longer pauses */
16
+ type WordType = 'word' | 'silence' | 'silence-newline';
17
+ interface TranscriptWord {
18
+ text: string;
19
+ startMs: number;
20
+ endMs: number;
21
+ /** References Speaker.id when diarization is available */
22
+ speakerId?: string;
23
+ confidence?: number;
24
+ /** Type of word: 'word' for spoken content, 'silence' for detected gaps. Defaults to 'word' */
25
+ wordType?: WordType;
26
+ }
27
+ /** A diarized segment of contiguous speech (osheet-style granularity) */
28
+ interface TranscriptSegment {
29
+ text: string;
30
+ startMs: number;
31
+ endMs: number;
32
+ /** References Speaker.id when diarization is available */
33
+ speakerId?: string;
34
+ words: TranscriptWord[];
35
+ }
36
+ interface Speaker {
37
+ id: string;
38
+ /** Display name (e.g. 'Clinician', 'Patient'). Hosts may remap via speakerLabels props. */
39
+ name?: string;
40
+ }
41
+ interface Transcript {
42
+ durationMs: number;
43
+ speakers?: Speaker[];
44
+ words: TranscriptWord[];
45
+ segments?: TranscriptSegment[];
46
+ }
47
+ /**
48
+ * An editable word that references the original transcript word.
49
+ * Used in the edited timeline to track deletions and reordering.
50
+ */
51
+ interface EditableWord {
52
+ /** Index into the SILENCE-INSERTED baseline timeline (transcript.words
53
+ * with detected silence pseudo-words interleaved) — NOT into
54
+ * transcript.words. -1 for split/inserted entries with no baseline slot.
55
+ * Consumers persisting edits should key by this timeline. */
56
+ originalIndex: number;
57
+ /** The word data (from original transcript) */
58
+ word: TranscriptWord;
59
+ /** Whether this word is marked as deleted */
60
+ deleted: boolean;
61
+ /** Whether this word was inserted (pasted from clipboard) */
62
+ inserted?: boolean;
63
+ }
64
+ /** Available playback speed multipliers */
65
+ type PlaybackSpeed = 0.5 | 0.75 | 1 | 1.25 | 1.5 | 1.75 | 2;
66
+ /**
67
+ * A speed marker applied to a word in the transcript.
68
+ * The speed applies from this word until the next speed marker or end of transcript.
69
+ */
70
+ interface SpeedMarker {
71
+ /** Index in the editedWords array where the speed marker is placed */
72
+ wordIndex: number;
73
+ /** The playback speed multiplier */
74
+ speed: PlaybackSpeed;
75
+ }
7
76
 
8
77
  interface MediaEditorProps extends VariantProps<typeof mediaEditorVariants> {
9
78
  /** Media URL */
@@ -85,6 +154,26 @@ declare const mediaEditorVariants: (props?: ({
85
154
  */
86
155
  declare const MediaEditor: React.ForwardRefExoticComponent<MediaEditorProps & React.RefAttributes<HTMLDivElement>>;
87
156
 
157
+ /**
158
+ * useTranscriptEdits — headless transcript-editing state hook.
159
+ *
160
+ * Extracted from pulseclip's TranscriptViewer for @mieweb/ui. Holds the
161
+ * edited word timeline (deletions, insertions, text edits, silence
162
+ * splitting), a single-level undo stack, an internal clipboard, speed
163
+ * markers, and derived playback/statistics data.
164
+ *
165
+ * Controlled + persistence-agnostic: no DOM, no fetches. Selection lives in
166
+ * the UI layer — mutations take explicit indices. State flows out via
167
+ * `onChange` and back in via `initialEditedWords` / `initialUndoStack`.
168
+ */
169
+
170
+ /** Count and total duration of silences above a given threshold (seconds) */
171
+ interface SilenceThresholdCount {
172
+ threshold: number;
173
+ count: number;
174
+ durationMs: number;
175
+ }
176
+
88
177
  /**
89
178
  * FillerWordsModal — select filler words (and long silences) to mark deleted.
90
179
  *
@@ -1,9 +1,78 @@
1
1
  import * as class_variance_authority_types from 'class-variance-authority/types';
2
2
  import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
- import { T as Transcript, E as EditableWord, S as SpeedMarker, P as PlaybackSpeed } from '../../transcript-Cg7uSW-C.js';
5
4
  import { MediaKind, MediaPlayerRef } from '../MediaPlayer/index.js';
6
- import { S as SilenceThresholdCount } from '../../useTranscriptEdits-D32bLs0l.js';
5
+
6
+ /**
7
+ * Transcript schema for @mieweb/ui media components.
8
+ *
9
+ * Provider-agnostic and persistence-agnostic. Canonical time unit is
10
+ * **milliseconds** (consumers with seconds-based data, e.g. osheet, adapt
11
+ * at the boundary).
12
+ *
13
+ * Shared by TranscriptView, MediaEditor, and useTranscriptEdits.
14
+ */
15
+ /** Type of transcript word - 'word' for spoken content, 'silence' for detected gaps, 'silence-newline' for longer pauses */
16
+ type WordType = 'word' | 'silence' | 'silence-newline';
17
+ interface TranscriptWord {
18
+ text: string;
19
+ startMs: number;
20
+ endMs: number;
21
+ /** References Speaker.id when diarization is available */
22
+ speakerId?: string;
23
+ confidence?: number;
24
+ /** Type of word: 'word' for spoken content, 'silence' for detected gaps. Defaults to 'word' */
25
+ wordType?: WordType;
26
+ }
27
+ /** A diarized segment of contiguous speech (osheet-style granularity) */
28
+ interface TranscriptSegment {
29
+ text: string;
30
+ startMs: number;
31
+ endMs: number;
32
+ /** References Speaker.id when diarization is available */
33
+ speakerId?: string;
34
+ words: TranscriptWord[];
35
+ }
36
+ interface Speaker {
37
+ id: string;
38
+ /** Display name (e.g. 'Clinician', 'Patient'). Hosts may remap via speakerLabels props. */
39
+ name?: string;
40
+ }
41
+ interface Transcript {
42
+ durationMs: number;
43
+ speakers?: Speaker[];
44
+ words: TranscriptWord[];
45
+ segments?: TranscriptSegment[];
46
+ }
47
+ /**
48
+ * An editable word that references the original transcript word.
49
+ * Used in the edited timeline to track deletions and reordering.
50
+ */
51
+ interface EditableWord {
52
+ /** Index into the SILENCE-INSERTED baseline timeline (transcript.words
53
+ * with detected silence pseudo-words interleaved) — NOT into
54
+ * transcript.words. -1 for split/inserted entries with no baseline slot.
55
+ * Consumers persisting edits should key by this timeline. */
56
+ originalIndex: number;
57
+ /** The word data (from original transcript) */
58
+ word: TranscriptWord;
59
+ /** Whether this word is marked as deleted */
60
+ deleted: boolean;
61
+ /** Whether this word was inserted (pasted from clipboard) */
62
+ inserted?: boolean;
63
+ }
64
+ /** Available playback speed multipliers */
65
+ type PlaybackSpeed = 0.5 | 0.75 | 1 | 1.25 | 1.5 | 1.75 | 2;
66
+ /**
67
+ * A speed marker applied to a word in the transcript.
68
+ * The speed applies from this word until the next speed marker or end of transcript.
69
+ */
70
+ interface SpeedMarker {
71
+ /** Index in the editedWords array where the speed marker is placed */
72
+ wordIndex: number;
73
+ /** The playback speed multiplier */
74
+ speed: PlaybackSpeed;
75
+ }
7
76
 
8
77
  interface MediaEditorProps extends VariantProps<typeof mediaEditorVariants> {
9
78
  /** Media URL */
@@ -85,6 +154,26 @@ declare const mediaEditorVariants: (props?: ({
85
154
  */
86
155
  declare const MediaEditor: React.ForwardRefExoticComponent<MediaEditorProps & React.RefAttributes<HTMLDivElement>>;
87
156
 
157
+ /**
158
+ * useTranscriptEdits — headless transcript-editing state hook.
159
+ *
160
+ * Extracted from pulseclip's TranscriptViewer for @mieweb/ui. Holds the
161
+ * edited word timeline (deletions, insertions, text edits, silence
162
+ * splitting), a single-level undo stack, an internal clipboard, speed
163
+ * markers, and derived playback/statistics data.
164
+ *
165
+ * Controlled + persistence-agnostic: no DOM, no fetches. Selection lives in
166
+ * the UI layer — mutations take explicit indices. State flows out via
167
+ * `onChange` and back in via `initialEditedWords` / `initialUndoStack`.
168
+ */
169
+
170
+ /** Count and total duration of silences above a given threshold (seconds) */
171
+ interface SilenceThresholdCount {
172
+ threshold: number;
173
+ count: number;
174
+ durationMs: number;
175
+ }
176
+
88
177
  /**
89
178
  * FillerWordsModal — select filler words (and long silences) to mark deleted.
90
179
  *
@@ -53,7 +53,7 @@ interface MediaPlayerProps extends VariantProps<typeof mediaPlayerVariants> {
53
53
  mediaElementRef?: React.RefObject<HTMLVideoElement | HTMLAudioElement | null>;
54
54
  }
55
55
  declare const mediaPlayerVariants: (props?: ({
56
- variant?: "card" | "plain" | null | undefined;
56
+ variant?: "plain" | "card" | null | undefined;
57
57
  } & class_variance_authority_types.ClassProp) | undefined) => string;
58
58
  /** Infer media kind from a URL's file extension; defaults to audio. */
59
59
  declare function inferMediaKind(src: string): MediaKind;
@@ -53,7 +53,7 @@ interface MediaPlayerProps extends VariantProps<typeof mediaPlayerVariants> {
53
53
  mediaElementRef?: React.RefObject<HTMLVideoElement | HTMLAudioElement | null>;
54
54
  }
55
55
  declare const mediaPlayerVariants: (props?: ({
56
- variant?: "card" | "plain" | null | undefined;
56
+ variant?: "plain" | "card" | null | undefined;
57
57
  } & class_variance_authority_types.ClassProp) | undefined) => string;
58
58
  /** Infer media kind from a URL's file extension; defaults to audio. */
59
59
  declare function inferMediaKind(src: string): MediaKind;
@@ -3,7 +3,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const paginationButtonVariants: (props?: ({
6
- variant?: "default" | "ghost" | "outline" | null | undefined;
6
+ variant?: "default" | "outline" | "ghost" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface PaginationProps extends VariantProps<typeof paginationButtonVariants> {
@@ -3,7 +3,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const paginationButtonVariants: (props?: ({
6
- variant?: "default" | "ghost" | "outline" | null | undefined;
6
+ variant?: "default" | "outline" | "ghost" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface PaginationProps extends VariantProps<typeof paginationButtonVariants> {
@@ -1,8 +1,41 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { InputProps } from '../Input/index.cjs';
4
- import 'class-variance-authority/types';
5
- import 'class-variance-authority';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const inputVariants: (props?: ({
7
+ size?: "sm" | "md" | "lg" | null | undefined;
8
+ hasError?: boolean | null | undefined;
9
+ labelVariant?: "stacked" | "floating" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, Omit<VariantProps<typeof inputVariants>, 'labelVariant'> {
12
+ /** Error message to display below the input */
13
+ error?: string;
14
+ /** Helper text to display below the input */
15
+ helperText?: string;
16
+ /** Label for the input */
17
+ label?: string;
18
+ /**
19
+ * How the label is rendered.
20
+ * - `stacked` (default): label above the input.
21
+ * - `floating`: label rests inside the input like a placeholder and floats
22
+ * to the top of the field (staying inside it) when focused or filled.
23
+ * Ignores `placeholder`; when `hideLabel` is set, falls back to a
24
+ * visually-hidden stacked label.
25
+ */
26
+ labelVariant?: 'stacked' | 'floating';
27
+ /** Whether the label should be visually hidden (still accessible) */
28
+ hideLabel?: boolean;
29
+ /** Whether the input is required */
30
+ required?: boolean;
31
+ /**
32
+ * Color of the required asterisk.
33
+ * - `default`: destructive (hard requirement).
34
+ * - `warning`: warning color (soft requirement / recommended).
35
+ */
36
+ requiredVariant?: RequiredMarkVariant;
37
+ }
38
+ type RequiredMarkVariant = 'default' | 'warning';
6
39
 
7
40
  interface PhoneInputProps extends Omit<InputProps, 'type' | 'onChange' | 'value'> {
8
41
  /** The phone number value (can be formatted or unformatted) */
@@ -1,8 +1,41 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { InputProps } from '../Input/index.js';
4
- import 'class-variance-authority/types';
5
- import 'class-variance-authority';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const inputVariants: (props?: ({
7
+ size?: "sm" | "md" | "lg" | null | undefined;
8
+ hasError?: boolean | null | undefined;
9
+ labelVariant?: "stacked" | "floating" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, Omit<VariantProps<typeof inputVariants>, 'labelVariant'> {
12
+ /** Error message to display below the input */
13
+ error?: string;
14
+ /** Helper text to display below the input */
15
+ helperText?: string;
16
+ /** Label for the input */
17
+ label?: string;
18
+ /**
19
+ * How the label is rendered.
20
+ * - `stacked` (default): label above the input.
21
+ * - `floating`: label rests inside the input like a placeholder and floats
22
+ * to the top of the field (staying inside it) when focused or filled.
23
+ * Ignores `placeholder`; when `hideLabel` is set, falls back to a
24
+ * visually-hidden stacked label.
25
+ */
26
+ labelVariant?: 'stacked' | 'floating';
27
+ /** Whether the label should be visually hidden (still accessible) */
28
+ hideLabel?: boolean;
29
+ /** Whether the input is required */
30
+ required?: boolean;
31
+ /**
32
+ * Color of the required asterisk.
33
+ * - `default`: destructive (hard requirement).
34
+ * - `warning`: warning color (soft requirement / recommended).
35
+ */
36
+ requiredVariant?: RequiredMarkVariant;
37
+ }
38
+ type RequiredMarkVariant = 'default' | 'warning';
6
39
 
7
40
  interface PhoneInputProps extends Omit<InputProps, 'type' | 'onChange' | 'value'> {
8
41
  /** The phone number value (can be formatted or unformatted) */
@@ -6,7 +6,7 @@ declare const progressBarTrackVariants: (props?: ({
6
6
  size?: "sm" | "md" | "lg" | "xl" | null | undefined;
7
7
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
8
  declare const progressBarFillVariants: (props?: ({
9
- variant?: "default" | "danger" | "warning" | "success" | null | undefined;
9
+ variant?: "default" | "success" | "warning" | "danger" | null | undefined;
10
10
  animated?: boolean | null | undefined;
11
11
  striped?: boolean | null | undefined;
12
12
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -6,7 +6,7 @@ declare const progressBarTrackVariants: (props?: ({
6
6
  size?: "sm" | "md" | "lg" | "xl" | null | undefined;
7
7
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
8
  declare const progressBarFillVariants: (props?: ({
9
- variant?: "default" | "danger" | "warning" | "success" | null | undefined;
9
+ variant?: "default" | "success" | "warning" | "danger" | null | undefined;
10
10
  animated?: boolean | null | undefined;
11
11
  striped?: boolean | null | undefined;
12
12
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1,8 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
1
3
  import { AgentConfigGeneratorProps, QConfig, QSchema } from '@mieweb/q';
2
4
  export { AgentConfigGenerator, AgentConfigGeneratorProps, ConfigEditor, ConfigEditorProps, FormBuilder, FormBuilderProps, GENERIC_TOOLS, Header, HeaderProps, QConfig, QDownloadMode, QSchema, TIMEZONES, ToolBuilder, ToolBuilderProps, configToQuestionnaire, configToYaml, copyToClipboard, defaultSchema, deriveDefaultConfig, downloadConfig, questionnaireToConfig, validateConfig, yamlToConfig } from '@mieweb/q';
3
5
  export { UniversalAgentConfigGenerator, UniversalAgentConfigGeneratorOptions, brands, generateBrandCSS } from '@mieweb/q/universal';
4
- import * as react_jsx_runtime from 'react/jsx-runtime';
5
- import * as React from 'react';
6
6
 
7
7
  interface QProps extends AgentConfigGeneratorProps {
8
8
  /** Additional class name for the Q container. */