@mt-gloss/ui 0.1.8 → 0.1.9

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.
@@ -4,11 +4,28 @@
4
4
  * Renders `count` buttons inside a `role="tablist"`. Click dispatches
5
5
  * `onSelect(index)`. Keyboard ← → loop forward/backward with wrap semantics
6
6
  * (D-25). Hollow default, filled for the current section.
7
+ *
8
+ * Phase 4 — drag-to-edge-auto-advance — additive extension per D-09/D-10/D-11:
9
+ * - `provisionalIndex` marks an unconfirmed section with hollow-stroke dot
10
+ * (`data-state='provisional-hollow'`) and `aria-label='Unconfirmed section'`.
11
+ * - `pulseIndex` triggers the refuse-pulse animation (`data-state='pulse'`).
12
+ * - `pulseNonce` is composited into the React `key` for the pulsed index so a
13
+ * nonce bump forces a re-mount — which restarts the CSS keyframe animation
14
+ * even if the same index is pulsed twice in a row.
15
+ *
16
+ * All new props are optional; omitting them preserves the Phase 23 two-state
17
+ * `data-state='current'|'hollow'` render exactly (parity contract).
7
18
  */
8
19
  export interface SectionDotsProps {
9
20
  count: number;
10
21
  currentIndex: number;
11
22
  onSelect: (index: number) => void;
12
23
  'aria-label'?: string;
24
+ /** Phase 4 D-09 — index of the unconfirmed ("provisional") section, if any. */
25
+ provisionalIndex?: number;
26
+ /** Phase 4 D-09 — index of the dot currently playing the refuse pulse, if any. */
27
+ pulseIndex?: number;
28
+ /** Phase 4 D-10 — monotonically-increasing nonce; bump to replay the pulse keyframe. */
29
+ pulseNonce?: number;
13
30
  }
14
- export declare function SectionDots({ count, currentIndex, onSelect, 'aria-label': ariaLabel, }: SectionDotsProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function SectionDots({ count, currentIndex, onSelect, 'aria-label': ariaLabel, provisionalIndex, pulseIndex, pulseNonce, }: SectionDotsProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- export type SectionDividerState = 'hidden' | 'revealed' | 'emphasized';
2
+ export type SectionDividerState = 'hidden' | 'revealed' | 'emphasized' | 'provisional';
3
3
  export interface SectionDividerProps extends React.HTMLAttributes<HTMLDivElement> {
4
4
  state: SectionDividerState;
5
5
  /** Left-to-right cascade position (0, 1, 2, ...) multiplied by staggerMs for animation-delay. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mt-gloss/ui",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "restricted"