@notis_ai/cli 0.2.0-beta.1792672091689.1 → 0.2.0-beta.1792679782834.1

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.
@@ -1 +1 @@
1
- {"schema":1,"stamp":1792670559,"commit":"222517004989f177180cc07c91cbf1694a2cafa4"}
1
+ {"schema":1,"stamp":1792677351,"commit":"771883529c1d8ea5c48ead21c09b868da2362b87"}
@@ -19,6 +19,7 @@ Space's data, and change only what the Space needs (the four rungs in
19
19
  | One record as the page | `DocumentPage` (see [SDK](sdk.md#first-party-record-components)). Pick its `width` for the page: `standard` (the default) is a centred 900 px reading column for a page read as text, `wide` (1200 px) or `full` for a record that is a working surface such as a wide table or board |
20
20
  | A form or settings page | `Section kind="form"`, `Button`, `NativeSelect`, `SegmentedControl`, `Notice`, `EmptyState` |
21
21
  | A list on your own layout | `useListKeys`, `useSelection`, `Row`, `SelectionBar`, `Panels` |
22
+ | Files or pictures attached to an item, or a picture to open full screen | `AttachmentGallery` (opens `ImageViewer` on its images); `ImageViewer` alone for one picture ([SDK](sdk.md#toolkit-pieces)) |
22
23
 
23
24
  Floating UI comes from `Menu`, `Popover` and `Tooltip`; they open inside the
24
25
  Space and pick up its theme. Open as Side, Center or Full belongs to the list
@@ -114,6 +114,15 @@ rather than from a copy.
114
114
  sparkline `null` is a gap. `PeriodPicker` without the `custom` preset offers
115
115
  presets only.
116
116
  - **Floating**: `Menu`, `Popover`, `Tooltip`.
117
+ - **Files and pictures**: `AttachmentGallery` and `ImageViewer`, the ones
118
+ Notis conversations use. `AttachmentGallery` draws a row of file cards
119
+ (`items`: `url`, `name`, `type` or `kind`, `size`, `thumbnailUrl`); an
120
+ image card opens `ImageViewer` on the gallery's images (zoom, pan, arrows,
121
+ copy, download, Escape), and any other card goes to `onOpen` (a new tab by
122
+ default). `renderOpener` swaps a card's opener, `itemAction` adds a corner
123
+ button, `viewerActions` adds viewer buttons (class `nui-viewer-btn`) and
124
+ `onNotice` hears copy and download results. Use `ImageViewer` alone for a
125
+ picture that opens full screen. Do not build your own lightbox.
117
126
  - **Blocks**: `Section`, `Badge`, `Button`, `ToggleGroup`, `SegmentedControl`,
118
127
  `NativeSelect`, `EmptyState`, `Notice`, `Metric`. A page is a stack of
119
128
  `Section`s, full width and without boxes: `kind` is `bar` (period and
@@ -55,6 +55,14 @@ const SHAPES: Record<string, Shape> = {
55
55
  'check-circle-fill': <g><circle {...F} cx="8" cy="8" r="6.5" /><path d="M5 8.2l2 2 4-4" fill="none" stroke="hsl(var(--background))" strokeWidth={1.5} strokeLinecap="round" strokeLinejoin="round" /></g>,
56
56
  'minus-circle': <g {...S}><circle cx="8" cy="8" r="6" /><path d="M5.5 8h5" /></g>,
57
57
  'x-circle-fill': <g><circle {...F} cx="8" cy="8" r="6.5" /><path d="M5.8 5.8l4.4 4.4M10.2 5.8l-4.4 4.4" fill="none" stroke="hsl(var(--background))" strokeWidth={1.5} strokeLinecap="round" /></g>,
58
+ 'magnifying-glass-plus': <path {...S} d="M7 12A5 5 0 107 2a5 5 0 000 10zM10.6 10.6L14 14M5 7h4M7 5v4" />,
59
+ 'magnifying-glass-minus': <path {...S} d="M7 12A5 5 0 107 2a5 5 0 000 10zM10.6 10.6L14 14M5 7h4" />,
60
+ 'download-simple': <path {...S} d="M8 2.5v7.5M4.5 6.5L8 10l3.5-3.5M2.5 10v3a.5.5 0 00.5.5h10a.5.5 0 00.5-.5v-3" />,
61
+ link: <path {...S} d="M6.8 9.2l2.4-2.4M7.6 4.6l1.2-1.2a2.8 2.8 0 014 4l-1.2 1.2M8.4 11.4l-1.2 1.2a2.8 2.8 0 01-4-4l1.2-1.2" />,
62
+ file: <path {...S} d="M9.5 2H4a.5.5 0 00-.5.5v11a.5.5 0 00.5.5h8a.5.5 0 00.5-.5V5zM9.5 2v3h3" />,
63
+ 'file-image': <g {...S}><path d="M9.5 2H4a.5.5 0 00-.5.5v11a.5.5 0 00.5.5h8a.5.5 0 00.5-.5V5zM9.5 2v3h3" /><path d="M3.5 12l3-3 2 2 1.5-1.5 2.5 2.5" /><circle cx="6.5" cy="6.75" r=".75" /></g>,
64
+ 'file-video': <g {...S}><path d="M9.5 2H4a.5.5 0 00-.5.5v11a.5.5 0 00.5.5h8a.5.5 0 00.5-.5V5zM9.5 2v3h3" /><path d="M6.5 8v3.5L9.5 9.75z" /></g>,
65
+ 'file-audio': <g {...S}><path d="M9.5 2H4a.5.5 0 00-.5.5v11a.5.5 0 00.5.5h8a.5.5 0 00.5-.5V5zM9.5 2v3h3" /><path d="M6 9.5v1.5h1.25L9 12.25v-4.5L7.25 9H6M10.5 8.5a1.8 1.8 0 010 2.5" /></g>,
58
66
  };
59
67
 
60
68
  export function hasIcon(name: string): boolean {