@optimum-intelligence/opti-ui 0.7.1 → 0.7.3
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/CHANGELOG.md +49 -0
- package/dist/components/app-shell/AppShell.d.ts +12 -3
- package/dist/components/app-shell/AppShell.js +45 -26
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +11 -2
- package/dist/components/combobox/Combobox.js +155 -118
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/data-table/DataTable.d.ts +25 -4
- package/dist/components/data-table/DataTable.js +238 -90
- package/dist/components/data-table/DataTable.js.map +1 -1
- package/dist/components/data-table/DataTableContent.d.ts +6 -1
- package/dist/components/data-table/DataTableContent.js +306 -409
- package/dist/components/data-table/DataTableContent.js.map +1 -1
- package/dist/components/data-table/DataTableFilters.d.ts +6 -1
- package/dist/components/data-table/DataTableFilters.js +65 -45
- package/dist/components/data-table/DataTableFilters.js.map +1 -1
- package/dist/components/data-table/DataTableRow.js +2 -0
- package/dist/components/data-table/DataTableRow.js.map +1 -1
- package/dist/components/data-table/types.d.ts +14 -1
- package/dist/components/data-table/useDataTable.js +2 -0
- package/dist/components/data-table/useDataTable.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +7 -4
- package/dist/components/drawer/Drawer.js +2 -1
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/map/Map.d.ts +30 -6
- package/dist/components/map/Map.js +387 -271
- package/dist/components/map/Map.js.map +1 -1
- package/dist/components/stat-card/StatCard.d.ts +2 -2
- package/dist/components/stat-card/StatCard.js +1 -1
- package/dist/components/stat-card/StatCard.js.map +1 -1
- package/dist/components/stepper/Stepper.d.ts +7 -1
- package/dist/components/stepper/Stepper.js +46 -27
- package/dist/components/stepper/Stepper.js.map +1 -1
- package/dist/components/table/Table.d.ts +1 -1
- package/dist/components/table/Table.js +3 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +4 -1
- package/dist/components/tabs/Tabs.js +33 -23
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/toggle/Toggle.d.ts +1 -1
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components.json +109 -30
- package/dist/icons/index.d.ts +8 -0
- package/dist/icons/index.js +11 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/llms-full.txt +55 -20
- package/dist/llms.txt +8 -8
- package/dist/opti-ui.css +394 -29
- package/dist/utils/media.d.ts +4 -0
- package/dist/utils/media.js +34 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/utils/scroll-fade.d.ts +9 -0
- package/dist/utils/scroll-fade.js +45 -0
- package/dist/utils/scroll-fade.js.map +1 -0
- package/package.json +1 -1
package/dist/llms-full.txt
CHANGED
|
@@ -186,12 +186,17 @@ Also accepts all props of: `BaseCheckboxGroup.Props`.
|
|
|
186
186
|
compound · Forms
|
|
187
187
|
|
|
188
188
|
Searchable select. `<Combobox items={…} />` covers single and `multiple`
|
|
189
|
-
(chips) selection;
|
|
189
|
+
(chips) selection; `maxChips` keeps a multi-select on one line. Compose the
|
|
190
|
+
parts for anything custom.
|
|
190
191
|
|
|
191
192
|
```tsx
|
|
192
193
|
import { Combobox } from '@optimum-intelligence/opti-ui';
|
|
193
194
|
```
|
|
194
195
|
|
|
196
|
+
```tsx
|
|
197
|
+
<Combobox label="Vehicles" items={vehicles} multiple maxChips={1} placeholder="All vehicles" />
|
|
198
|
+
```
|
|
199
|
+
|
|
195
200
|
| Prop | Type | Default | Description |
|
|
196
201
|
| --- | --- | --- | --- |
|
|
197
202
|
| `items` | `ComboboxOption[]` | | Options to choose from. |
|
|
@@ -202,6 +207,7 @@ import { Combobox } from '@optimum-intelligence/opti-ui';
|
|
|
202
207
|
| `emptyText?` | `React.ReactNode` | `'No results found.'` | Shown when the filter matches nothing. |
|
|
203
208
|
| `size?` | `'sm' \| 'md' \| 'lg'` | `'md'` | Control height. |
|
|
204
209
|
| `hideClear?` | `boolean` | | Hide the clear button. |
|
|
210
|
+
| `maxChips?` | `number` | | With `multiple`, show at most this many chips and a `+N` chip for the rest, keeping the field on one line (long labels are truncated). Leave unset to wrap all chips onto new lines. |
|
|
205
211
|
| `inputProps?` | `BaseCombobox.Input.Props` | | Props for the text input. |
|
|
206
212
|
|
|
207
213
|
Also accepts all props of: `RootProps`.
|
|
@@ -1035,7 +1041,7 @@ import { CardTitle } from '@optimum-intelligence/opti-ui';
|
|
|
1035
1041
|
|
|
1036
1042
|
component · Layout
|
|
1037
1043
|
|
|
1038
|
-
Responsive dashboard grid.
|
|
1044
|
+
Responsive dashboard grid: up to `columns` equal columns, fewer when its own width cannot fit them.
|
|
1039
1045
|
|
|
1040
1046
|
```tsx
|
|
1041
1047
|
import { Grid } from '@optimum-intelligence/opti-ui';
|
|
@@ -1044,7 +1050,8 @@ import { Grid } from '@optimum-intelligence/opti-ui';
|
|
|
1044
1050
|
| Prop | Type | Default | Description |
|
|
1045
1051
|
| --- | --- | --- | --- |
|
|
1046
1052
|
| `ref?` | `React.Ref<HTMLDivElement>` | | Ref to the grid element. |
|
|
1047
|
-
| `columns?` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | `3` |
|
|
1053
|
+
| `columns?` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | `3` | Most columns, shown while each can be at least `minItemWidth` wide. As the grid's own width runs out it steps down to half the columns (4 → 2, 6 → 3), then to as many as fit. With the defaults a 4–6 column KPI row keeps 2 columns on a phone. |
|
|
1054
|
+
| `minItemWidth?` | `string` | | Narrowest a column may get before the grid drops columns: any CSS length. Defaults to `12rem`; for 4–6 columns `11rem`, or `9rem` below 640px. Same as setting `--oui-grid-min-item-width`. |
|
|
1048
1055
|
| `gap?` | `'sm' \| 'md' \| 'lg'` | `'md'` | Space between grid cells. |
|
|
1049
1056
|
|
|
1050
1057
|
Also accepts all props of: `React.HTMLAttributes<HTMLDivElement>`.
|
|
@@ -1268,7 +1275,7 @@ Also accepts all props of: `useRender.ComponentProps<'div', StackState>`.
|
|
|
1268
1275
|
|
|
1269
1276
|
component · Layout
|
|
1270
1277
|
|
|
1271
|
-
KPI tile: label, large value, optional unit and trend.
|
|
1278
|
+
KPI tile: label, large value, optional unit and trend. Below 640px it turns compact (smaller value, no icon) to sit two to a row.
|
|
1272
1279
|
|
|
1273
1280
|
```tsx
|
|
1274
1281
|
import { StatCard } from '@optimum-intelligence/opti-ui';
|
|
@@ -1286,7 +1293,7 @@ import { StatCard } from '@optimum-intelligence/opti-ui';
|
|
|
1286
1293
|
| `trend?` | `'up' \| 'down' \| 'flat'` | | Arrow direction shown next to `delta`. |
|
|
1287
1294
|
| `tone?` | `'positive' \| 'negative' \| 'neutral'` | | Color of the delta. Defaults to positive for `up`, negative for `down`. |
|
|
1288
1295
|
| `hint?` | `React.ReactNode` | | Supporting text under the value. |
|
|
1289
|
-
| `icon?` | `React.ReactNode` | | Icon tile shown in the top-right corner. |
|
|
1296
|
+
| `icon?` | `React.ReactNode` | | Icon tile shown in the top-right corner. Hidden below 640px, where the tile is compact. |
|
|
1290
1297
|
| `loading?` | `boolean` | | Replaces the value with a skeleton while data loads. |
|
|
1291
1298
|
|
|
1292
1299
|
Also accepts all props of: `useRender.ComponentProps<'div', CardState>`.
|
|
@@ -1539,7 +1546,7 @@ import { SegmentedControl } from '@optimum-intelligence/opti-ui';
|
|
|
1539
1546
|
| Prop | Type | Default | Description |
|
|
1540
1547
|
| --- | --- | --- | --- |
|
|
1541
1548
|
| `size?` | `'sm' \| 'md'` | `'md'` | Segment height. |
|
|
1542
|
-
| `variant?` | `'segmented' \| 'outline'` | | `segmented` renders a pill track like a tab switcher; `outline` separate buttons. |
|
|
1549
|
+
| `variant?` | `'segmented' \| 'outline'` | | `segmented` renders a pill track like a tab switcher, kept on one line; `outline` separate buttons, which wrap onto more rows when they do not fit. |
|
|
1543
1550
|
| `fullWidth?` | `boolean` | | Stretch segments to fill the width. |
|
|
1544
1551
|
| `options` | `SegmentedControlOption[]` | | Segments to show. |
|
|
1545
1552
|
| `value?` | `string` | | Selected option `value` (controlled). |
|
|
@@ -1577,7 +1584,7 @@ import { ToggleGroup } from '@optimum-intelligence/opti-ui';
|
|
|
1577
1584
|
| Prop | Type | Default | Description |
|
|
1578
1585
|
| --- | --- | --- | --- |
|
|
1579
1586
|
| `size?` | `'sm' \| 'md'` | `'md'` | Segment height. |
|
|
1580
|
-
| `variant?` | `'segmented' \| 'outline'` | `'segmented'` | `segmented` renders a pill track like a tab switcher; `outline` separate buttons. |
|
|
1587
|
+
| `variant?` | `'segmented' \| 'outline'` | `'segmented'` | `segmented` renders a pill track like a tab switcher, kept on one line; `outline` separate buttons, which wrap onto more rows when they do not fit. |
|
|
1581
1588
|
| `fullWidth?` | `boolean` | | Stretch segments to fill the width. |
|
|
1582
1589
|
|
|
1583
1590
|
Also accepts all props of: `BaseToggleGroup.Props`.
|
|
@@ -1810,7 +1817,8 @@ Base UI `Dialog.createHandle` re-exported unchanged. See https://base-ui.com/rea
|
|
|
1810
1817
|
component · Overlays
|
|
1811
1818
|
|
|
1812
1819
|
Side panel for inspecting or editing a record without leaving the page:
|
|
1813
|
-
pinned header, scrolling body, optional pinned footer.
|
|
1820
|
+
pinned header, scrolling body, optional pinned footer. `side="bottom"` makes
|
|
1821
|
+
it a bottom sheet, for filters and actions on phones. For a free-form
|
|
1814
1822
|
sheet use `Dialog.Content` with `placement`.
|
|
1815
1823
|
|
|
1816
1824
|
```tsx
|
|
@@ -1830,8 +1838,8 @@ import { Drawer } from '@optimum-intelligence/opti-ui';
|
|
|
1830
1838
|
| `description?` | `React.ReactNode` | | Supporting text under the title. |
|
|
1831
1839
|
| `actions?` | `React.ReactNode` | | Header content next to the close button (edit, delete, a menu…). |
|
|
1832
1840
|
| `footer?` | `React.ReactNode` | | Pinned to the bottom, for form buttons. |
|
|
1833
|
-
| `side?` | `'right' \| 'left'` | `'right'` | Edge the drawer slides in from. |
|
|
1834
|
-
| `size?` | `'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Width: sm 24rem, md 32rem (default), lg 48rem, xl 60rem. Override with `--oui-drawer-width`. |
|
|
1841
|
+
| `side?` | `'right' \| 'left' \| 'bottom'` | `'right'` | Edge the drawer slides in from. A `bottom` sheet is full width, as tall as its content, up to 85% of the screen. |
|
|
1842
|
+
| `size?` | `'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Width of a side drawer: sm 24rem, md 32rem (default), lg 48rem, xl 60rem. Override with `--oui-drawer-width`. Ignored by `bottom`. |
|
|
1835
1843
|
| `dismissible?` | `boolean` | `true` | Set to `false` to block Esc, outside clicks and the close button, e.g. while a form inside is saving. |
|
|
1836
1844
|
| `modal?` | `boolean` | `true` | `false` leaves the page behind interactive and drops the backdrop. |
|
|
1837
1845
|
| `backdropBlur?` | `'none' \| 'sm' \| 'md' \| 'lg'` | `'md'` | How strongly the page behind a modal drawer is blurred. Override the radius with `--oui-backdrop-blur`. |
|
|
@@ -2121,12 +2129,17 @@ Also accepts all props of: `Omit<React.HTMLAttributes<HTMLElement>, 'onChange'>`
|
|
|
2121
2129
|
|
|
2122
2130
|
component · Disclosure & navigation
|
|
2123
2131
|
|
|
2124
|
-
Progress through an ordered sequence: a wizard, a checkout, a background job's phases.
|
|
2132
|
+
Progress through an ordered sequence: a wizard, a checkout, a background job's phases. Below 640px a
|
|
2133
|
+
horizontal stepper turns compact: a segmented progress bar under the current step ("2/4 · Date").
|
|
2125
2134
|
|
|
2126
2135
|
```tsx
|
|
2127
2136
|
import { Stepper } from '@optimum-intelligence/opti-ui';
|
|
2128
2137
|
```
|
|
2129
2138
|
|
|
2139
|
+
```tsx
|
|
2140
|
+
<Stepper current={1} steps={[{ label: 'Vehicle' }, { label: 'Date' }, { label: 'Route' }, { label: 'Summary' }]} />
|
|
2141
|
+
```
|
|
2142
|
+
|
|
2130
2143
|
| Prop | Type | Default | Description |
|
|
2131
2144
|
| --- | --- | --- | --- |
|
|
2132
2145
|
| `ref?` | `React.Ref<HTMLOListElement>` | | Ref to the `<ol>` element. |
|
|
@@ -2142,7 +2155,8 @@ Also accepts all props of: `React.OlHTMLAttributes<HTMLOListElement>`.
|
|
|
2142
2155
|
|
|
2143
2156
|
compound · Disclosure & navigation
|
|
2144
2157
|
|
|
2145
|
-
`Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value.
|
|
2158
|
+
`Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. A list wider than its
|
|
2159
|
+
container scrolls sideways, with its cut-off edge faded.
|
|
2146
2160
|
|
|
2147
2161
|
```tsx
|
|
2148
2162
|
import { Tabs } from '@optimum-intelligence/opti-ui';
|
|
@@ -2261,8 +2275,12 @@ uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /
|
|
|
2261
2275
|
|
|
2262
2276
|
For another layout, create the table with `useDataTable` and compose the
|
|
2263
2277
|
parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,
|
|
2264
|
-
`DataTable.Filters`, `DataTable.Filter`, `DataTable.
|
|
2265
|
-
`DataTable.
|
|
2278
|
+
`DataTable.Filters`, `DataTable.Filter`, `DataTable.FilterSheet` (the
|
|
2279
|
+
phone filter button and sheet), `DataTable.Actions`, `DataTable.Summary`,
|
|
2280
|
+
`DataTable.Content`, `DataTable.Pagination`.
|
|
2281
|
+
|
|
2282
|
+
On phones (below 640px) columns with `priority: 'low'` are hidden, and
|
|
2283
|
+
`stickyFirstColumn` keeps each row's name in view while the rest scrolls.
|
|
2266
2284
|
|
|
2267
2285
|
```tsx
|
|
2268
2286
|
import { DataTable } from '@optimum-intelligence/opti-ui';
|
|
@@ -2274,12 +2292,13 @@ import { DataTable } from '@optimum-intelligence/opti-ui';
|
|
|
2274
2292
|
| `maxHeight?` | `number \| string` | | Scrolls the rows inside this height and keeps the header in view. |
|
|
2275
2293
|
| `virtualized?` | `boolean \| DataTableVirtualOptions` | | Renders only the rows in view, for thousands of rows without pagination. Rows are one line high: columns fit their longest value, so mark those with long text `truncate`. Scrolls inside `maxHeight` (default `32rem`). |
|
|
2276
2294
|
| `onEndReached?` | `() => void` | | Called when the rows are scrolled near their end, once per row count: load and append the next rows. Needs `maxHeight` or `virtualized`. |
|
|
2295
|
+
| `stickyFirstColumn?` | `boolean` | | Keeps the first column (and the selection checkboxes) in place while the table scrolls sideways, so each row stays identifiable on narrow screens. |
|
|
2277
2296
|
| `empty?` | `React.ReactNode` | | Replaces the default empty state. |
|
|
2278
2297
|
| `tableProps?` | `Omit<TableProps, 'children'>` | | Props for the underlying `Table` (className, wrapperProps, aria-*). |
|
|
2279
2298
|
| `pageSizeOptions?` | `number[]` | | Choices in the rows-per-page select. |
|
|
2280
2299
|
| `controlSize?` | `'sm' \| 'md'` | | Size of the search box and the filters. |
|
|
2281
2300
|
| `toolbar?` | `React.ReactNode \| ((context: DataTableToolbarContext<T>) => React.ReactNode)` | | Extra toolbar content (add, bulk actions…). A function receives the processed rows. |
|
|
2282
|
-
| `showToolbar?` | `boolean` | `true` | `false` drops the search, filters, summary and toolbar content: rows only, for short tables under their own heading. |
|
|
2301
|
+
| `showToolbar?` | `boolean` | `true` | `false` drops the search, filters, summary and toolbar content: rows only, for short tables under their own heading. Below 640px the toolbar is the search and a "Filters (n)" button, whose bottom sheet holds the filters and the `toolbar` content, over a line with the row count and export. |
|
|
2283
2302
|
| `exportName?` | `string` | | Adds an export button that saves the filtered, sorted rows as `<exportName>.csv`. Columns choose their text with `exportValue`. |
|
|
2284
2303
|
| `fill?` | `boolean` | `false` | Grow to fill the height of a flex column container (a page, or a `Card` whose content holds the table); only the rows scroll. `maxHeight` still caps it. |
|
|
2285
2304
|
| `className?` | `string` | | Class name for the table's root element. |
|
|
@@ -2321,6 +2340,7 @@ Every filter of the table, with a clear button while any is active. Children are
|
|
|
2321
2340
|
| Prop | Type | Default | Description |
|
|
2322
2341
|
| --- | --- | --- | --- |
|
|
2323
2342
|
| `size?` | `'sm' \| 'md'` | | Control height of every filter. |
|
|
2343
|
+
| `stacked?` | `boolean` | | One filter per row at full width, chip rows and date ranges under their name: the layout of the filter sheet on phones. Leaves out the clear button, which the sheet keeps in its footer. |
|
|
2324
2344
|
|
|
2325
2345
|
Also accepts all props of: `React.HTMLAttributes<HTMLDivElement>`.
|
|
2326
2346
|
|
|
@@ -2334,6 +2354,17 @@ The control of one filter: a dropdown, a toggle chip, a row of chips or a date r
|
|
|
2334
2354
|
| `size?` | `'sm' \| 'md'` | | Control height. |
|
|
2335
2355
|
| `className?` | `string` | | Class name for the filter control. |
|
|
2336
2356
|
|
|
2357
|
+
### DataTable.FilterSheet
|
|
2358
|
+
|
|
2359
|
+
The phone toolbar's "Filters (n)" button, which opens a bottom sheet holding every filter and the
|
|
2360
|
+
`children`. Filters apply as they change. The footer keeps a clear button (disabled while no filter
|
|
2361
|
+
is set, so nothing moves when one is) and a button that closes the sheet on the result count.
|
|
2362
|
+
|
|
2363
|
+
| Prop | Type | Default | Description |
|
|
2364
|
+
| --- | --- | --- | --- |
|
|
2365
|
+
| `size?` | `'sm' \| 'md'` | `'md'` | Height of the filter button; the filters in the sheet are full size. |
|
|
2366
|
+
| `children?` | `React.ReactNode` | | Extra content placed under the filters (add, bulk actions…). |
|
|
2367
|
+
|
|
2337
2368
|
### DataTable.Actions
|
|
2338
2369
|
|
|
2339
2370
|
Styled `<div>` (`.oui-data-table__actions`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes.
|
|
@@ -2352,6 +2383,7 @@ The table itself, with its loading, empty and error states.
|
|
|
2352
2383
|
| `maxHeight?` | `number \| string` | | Scrolls the rows inside this height and keeps the header in view. |
|
|
2353
2384
|
| `virtualized?` | `boolean \| DataTableVirtualOptions` | | Renders only the rows in view, for thousands of rows without pagination. Rows are one line high: columns fit their longest value, so mark those with long text `truncate`. Scrolls inside `maxHeight` (default `32rem`). |
|
|
2354
2385
|
| `onEndReached?` | `() => void` | | Called when the rows are scrolled near their end, once per row count: load and append the next rows. Needs `maxHeight` or `virtualized`. |
|
|
2386
|
+
| `stickyFirstColumn?` | `boolean` | | Keeps the first column (and the selection checkboxes) in place while the table scrolls sideways, so each row stays identifiable on narrow screens. |
|
|
2355
2387
|
| `empty?` | `React.ReactNode` | | Replaces the default empty state. |
|
|
2356
2388
|
| `tableProps?` | `Omit<TableProps, 'children'>` | | Props for the underlying `Table` (className, wrapperProps, aria-*). |
|
|
2357
2389
|
|
|
@@ -2532,7 +2564,7 @@ Also accepts all props of: `React.HTMLAttributes<HTMLSpanElement>`.
|
|
|
2532
2564
|
|
|
2533
2565
|
component · Feedback & data display
|
|
2534
2566
|
|
|
2535
|
-
Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,
|
|
2567
|
+
Styled HTML table inside a horizontally scrolling wrapper, whose cut-off edge fades. Compose with `TableHeader`, `TableBody`,
|
|
2536
2568
|
`TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting
|
|
2537
2569
|
and pagination use `DataTable` instead.
|
|
2538
2570
|
|
|
@@ -2769,7 +2801,7 @@ Small built-in stroke icon set. Every icon renders an `<svg>` that follows the f
|
|
|
2769
2801
|
import { ArrowDownIcon } from '@optimum-intelligence/opti-ui';
|
|
2770
2802
|
```
|
|
2771
2803
|
|
|
2772
|
-
Icons: `ArrowDownIcon`, `ArrowUpIcon`, `CalendarIcon`, `CheckIcon`, `ChevronDownIcon`, `ChevronLeftIcon`, `ChevronRightIcon`, `ChevronUpIcon`, `ChevronsLeftIcon`, `ChevronsRightIcon`, `ChevronsUpDownIcon`, `CircleCheckIcon`, `CircleIcon`, `CircleXIcon`, `ClockIcon`, `DownloadIcon`, `ExternalLinkIcon`, `EyeIcon`, `EyeOffIcon`, `FileIcon`, `InfoIcon`, `MenuIcon`, `MinusIcon`, `MoreHorizontalIcon`, `PencilIcon`, `PlusIcon`, `SearchIcon`, `TrashIcon`, `TrendingDownIcon`, `TrendingUpIcon`, `TriangleAlertIcon`, `UploadIcon`, `XIcon`
|
|
2804
|
+
Icons: `ArrowDownIcon`, `ArrowUpIcon`, `CalendarIcon`, `CheckIcon`, `ChevronDownIcon`, `ChevronLeftIcon`, `ChevronRightIcon`, `ChevronUpIcon`, `ChevronsLeftIcon`, `ChevronsRightIcon`, `ChevronsUpDownIcon`, `CircleCheckIcon`, `CircleIcon`, `CircleXIcon`, `ClockIcon`, `DownloadIcon`, `ExternalLinkIcon`, `EyeIcon`, `EyeOffIcon`, `FileIcon`, `FilterIcon`, `InfoIcon`, `LayersIcon`, `MenuIcon`, `MinusIcon`, `MoreHorizontalIcon`, `PencilIcon`, `PlusIcon`, `SearchIcon`, `TrashIcon`, `TrendingDownIcon`, `TrendingUpIcon`, `TriangleAlertIcon`, `UploadIcon`, `XIcon`
|
|
2773
2805
|
|
|
2774
2806
|
| Prop | Type | Default | Description |
|
|
2775
2807
|
| --- | --- | --- | --- |
|
|
@@ -2887,6 +2919,7 @@ strict Content-Security-Policy needs `worker-src blob:`.
|
|
|
2887
2919
|
| `labels?` | `Partial<MapLabels>` | | Translations of the built-in texts; also passed to MapLibre's control strings. |
|
|
2888
2920
|
| `controlsPosition?` | `ControlPosition \| false` | `'top-right'` | Corner of the zoom buttons, or `false` to hide them. |
|
|
2889
2921
|
| `expandable?` | `boolean` | `false` | Adds a button, next to the zoom buttons, that expands the map over the whole window (not browser fullscreen) above the page, at the dialog z-index. Escape or the button returns it. |
|
|
2922
|
+
| `attributionCollapsed?` | `boolean` | `false` | Starts the attribution as the small info button, opened with a tap, instead of showing the full text until the map is first dragged. For small maps and phones; check the tile provider's terms first. |
|
|
2890
2923
|
| `className?` | `string` | | Classes for the map container. Set its height in CSS (`--oui-map-height`, default 24rem). |
|
|
2891
2924
|
| `style?` | `React.CSSProperties` | | Inline styles for the map container. |
|
|
2892
2925
|
| `children?` | `React.ReactNode` | | Data parts (`Map.Routes`, `Map.Areas`, …), markers, popups and overlays. |
|
|
@@ -3010,7 +3043,7 @@ Content floating over a corner of the map: stat cards, selects, a legend or `Map
|
|
|
3010
3043
|
| Prop | Type | Default | Description |
|
|
3011
3044
|
| --- | --- | --- | --- |
|
|
3012
3045
|
| `ref?` | `React.Ref<HTMLDivElement>` | | Ref to the overlay element. |
|
|
3013
|
-
| `position?` | `'top-left' \| 'top-right' \| 'bottom-left' \| 'bottom-right'` | `'top-left'` | Corner the overlay sits in.
|
|
3046
|
+
| `position?` | `'top-left' \| 'top-right' \| 'bottom-left' \| 'bottom-right'` | `'top-left'` | Corner the overlay sits in. Its empty area lets clicks through to the map and controls under it. |
|
|
3014
3047
|
|
|
3015
3048
|
Also accepts all props of: `React.HTMLAttributes<HTMLDivElement>`.
|
|
3016
3049
|
|
|
@@ -3039,18 +3072,20 @@ works outside the map; inside `Map.Root` it takes the root's labels. Put it in a
|
|
|
3039
3072
|
| `onSelectedIdsChange?` | `(ids: string[]) => void` | | Called with the new selected ids. |
|
|
3040
3073
|
| `onVisibilityChange?` | `(ids: string[], visible: boolean) => void` | | Called with the ids to show or hide. Adds an eye button to every entry. |
|
|
3041
3074
|
| `showAllToggle?` | `boolean` | `false` | Adds a show all / hide all button when `onVisibilityChange` is set. |
|
|
3075
|
+
| `size?` | `'sm' \| 'md'` | `'md'` | `sm` packs the entries tighter, with smaller swatches and text, for small maps and phones. Either size scrolls past `--oui-map-legend-max-height` (`sm`: 10rem, `md`: none). |
|
|
3042
3076
|
|
|
3043
3077
|
Also accepts all props of: `Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>`.
|
|
3044
3078
|
|
|
3045
3079
|
### Map.BaseLayerSwitch
|
|
3046
3080
|
|
|
3047
|
-
|
|
3081
|
+
Switch between the root's `baseLayers` (e.g. streets and satellite): a segmented switch, or with
|
|
3082
|
+
`variant="icon"` a single button that cycles them. Put it in a `Map.Overlay`.
|
|
3048
3083
|
|
|
3049
3084
|
| Prop | Type | Default | Description |
|
|
3050
3085
|
| --- | --- | --- | --- |
|
|
3051
3086
|
| `size?` | `'sm' \| 'md'` | `'sm'` | Segment height. |
|
|
3052
|
-
| `variant?` | `'segmented' \| 'outline'` | | `segmented` renders a pill track like a tab switcher; `outline` separate buttons. |
|
|
3053
3087
|
| `fullWidth?` | `boolean` | | Stretch segments to fill the width. |
|
|
3088
|
+
| `variant?` | `'segmented' \| 'outline' \| 'icon'` | `'segmented'` | `segmented` (or `outline`) shows every base map by name. `icon` is one small layers button that moves to the next base map on each press, for small maps and phones; its name says which one is shown. |
|
|
3054
3089
|
|
|
3055
3090
|
Also accepts all props of: `BaseToggleGroup.Props`.
|
|
3056
3091
|
|
package/dist/llms.txt
CHANGED
|
@@ -47,7 +47,7 @@ so the components work in Next.js App Router.
|
|
|
47
47
|
- `Calendar` — Month grid for picking one day. Keyboard: arrows move by day / week, Home / End jump within the week, PageUp / PageDown change month (with Shift: year). The month and year in the title open a list to jump straight to another one. With `granularity="month"` or `"year"` it shows a month or year grid instead.
|
|
48
48
|
- `Checkbox` — Checkbox with optional `label` and `description`. Supports `indeterminate`.
|
|
49
49
|
- `CheckboxGroup` — Manages the checked values of several `Checkbox` children (`value` / `onValueChange`).
|
|
50
|
-
- `Combobox` — Searchable select. `<Combobox items={…} />` covers single and `multiple` (chips) selection;
|
|
50
|
+
- `Combobox` — Searchable select. `<Combobox items={…} />` covers single and `multiple` (chips) selection; `maxChips` keeps a multi-select on one line. Compose the parts for anything custom. (parts: Root, InputGroup, Input, Trigger, Clear, Value, Chips, Chip, Content, List, Item, Empty, Group, GroupLabel, Collection, useFilter)
|
|
51
51
|
- `DateConfigProvider` — Sets default locale, time zone, week start and display formats for every date picker and calendar inside it. Props on a component still win. Nested providers override only the settings they pass.
|
|
52
52
|
- `DatePicker` — Date field with a calendar popover. Day values are ISO dates (`"2026-03-09"`), the same format as `<input type="date">`. `granularity="month"` or `"year"` opens a month or year grid and stores the period's first day (`"2026-03-01"`); a time granularity behaves like `DateTimePicker`.
|
|
53
53
|
- `DateRangePicker` — Date range field with a calendar popover and optional presets. Values are `{ start, end }` ISO dates (`"2026-03-09"`), both inclusive. With `granularity="month"` or `"year"` it picks whole months or years, and each end is the first day of its period.
|
|
@@ -86,7 +86,7 @@ so the components work in Next.js App Router.
|
|
|
86
86
|
- `CardFooter` — Styled `<div>` (`.oui-card__footer`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
|
|
87
87
|
- `CardHeader` — Styled `<div>` (`.oui-card__header`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
|
|
88
88
|
- `CardTitle` — Styled `<h3>` (`.oui-card__title`). Accepts `className`, `style`, the `render` prop and all `<h3>` attributes. (parts: displayName)
|
|
89
|
-
- `Grid` — Responsive dashboard grid.
|
|
89
|
+
- `Grid` — Responsive dashboard grid: up to `columns` equal columns, fewer when its own width cannot fit them.
|
|
90
90
|
- `Navbar` — Collapsible side navigation. Use inside `AppShell`. Compose with `NavbarHeader` (`NavbarBrand`), `NavbarSection` (`NavbarSectionLabel`, `NavbarItem`) and `NavbarFooter`.
|
|
91
91
|
- `NavbarBrand` — Logo, title and subtitle block for the top of a `Navbar`.
|
|
92
92
|
- `NavbarFooter` — Styled `<div>` (`.oui-navbar__footer`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
|
|
@@ -99,7 +99,7 @@ so the components work in Next.js App Router.
|
|
|
99
99
|
- `ScrollArea` — Scroll container with slim, themed overlay scrollbars. Set a height or max-height.
|
|
100
100
|
- `Separator` — Thin divider line. Set `orientation="vertical"` for a vertical rule.
|
|
101
101
|
- `Stack` — Flex container that spaces its children evenly, in a column or a row.
|
|
102
|
-
- `StatCard` — KPI tile: label, large value, optional unit and trend.
|
|
102
|
+
- `StatCard` — KPI tile: label, large value, optional unit and trend. Below 640px it turns compact (smaller value, no icon) to sit two to a row.
|
|
103
103
|
|
|
104
104
|
## Typography
|
|
105
105
|
|
|
@@ -126,7 +126,7 @@ so the components work in Next.js App Router.
|
|
|
126
126
|
- `ConfirmDialog` — Asks before an action runs: title, description, cancel and confirm buttons, a pending state that keeps the dialog open, and room for the error. For other layouts compose `AlertDialog`.
|
|
127
127
|
- `createToastManager` — Base UI `Toast.createToastManager` re-exported unchanged. See https://base-ui.com/react/components/toast.
|
|
128
128
|
- `Dialog` — Modal dialog and side sheet. Compose: `Dialog.Root` › `Dialog.Trigger` + `Dialog.Content` › `Dialog.Header` (`Title`, `Description`), `Dialog.Body`, `Dialog.Footer`. Use `render={<Button />}` on `Dialog.Trigger` / `Dialog.Close` to style them as buttons. (parts: Root, Trigger, Content, Header, Title, Description, Body, Footer, Close, createHandle)
|
|
129
|
-
- `Drawer` — Side panel for inspecting or editing a record without leaving the page: pinned header, scrolling body, optional pinned footer. For a free-form sheet use `Dialog.Content` with `placement`.
|
|
129
|
+
- `Drawer` — Side panel for inspecting or editing a record without leaving the page: pinned header, scrolling body, optional pinned footer. `side="bottom"` makes it a bottom sheet, for filters and actions on phones. For a free-form sheet use `Dialog.Content` with `placement`.
|
|
130
130
|
- `Popover` — Floating panel anchored to a trigger, for small forms, filters and details. (parts: Root, Trigger, Content, Title, Description, Close)
|
|
131
131
|
- `PreviewCard` — Card that appears when a link is hovered or focused, previewing what is behind it. `PreviewCard.Trigger` is the link itself. Keep the content supplementary: touch users never see it. (parts: Root, Trigger, Content)
|
|
132
132
|
- `ToastProvider` — Mount once near the app root. Then call `useToast()` anywhere below, or pass a `toastManager` from `createToastManager()` to trigger toasts outside React.
|
|
@@ -141,8 +141,8 @@ so the components work in Next.js App Router.
|
|
|
141
141
|
- `Collapsible` — A single section that shows and hides: advanced options, "show more", filter groups. (parts: Root, Trigger, Panel)
|
|
142
142
|
- `getPageItems` — Page numbers to render, with `'gap'` where pages are skipped.
|
|
143
143
|
- `Pagination` — Controlled page navigation with an optional rows-per-page select.
|
|
144
|
-
- `Stepper` — Progress through an ordered sequence: a wizard, a checkout, a background job's phases.
|
|
145
|
-
- `Tabs` — `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. (parts: Root, List, Tab, Panel)
|
|
144
|
+
- `Stepper` — Progress through an ordered sequence: a wizard, a checkout, a background job's phases. Below 640px a horizontal stepper turns compact: a segmented progress bar under the current step ("2/4 · Date").
|
|
145
|
+
- `Tabs` — `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. A list wider than its container scrolls sideways, with its cut-off edge faded. (parts: Root, List, Tab, Panel)
|
|
146
146
|
|
|
147
147
|
## Feedback & data display
|
|
148
148
|
|
|
@@ -150,7 +150,7 @@ so the components work in Next.js App Router.
|
|
|
150
150
|
- `Avatar` — User or entity picture with initials fallback.
|
|
151
151
|
- `AvatarGroup` — Overlapping row of `Avatar` children, with an optional "+N" overflow counter.
|
|
152
152
|
- `Badge` — Small status label.
|
|
153
|
-
- `DataTable` — `<DataTable data={…} columns={…} />` renders a complete table with search, filters, sorting, pagination, row selection, row actions and inline editing; columns declare what they take part in. Every piece of state works uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` / `selection`), and with `mode="server"` the same state drives an API. (parts: Root, Toolbar, Search, Filters, Filter, Actions, Summary, Content, Pagination)
|
|
153
|
+
- `DataTable` — `<DataTable data={…} columns={…} />` renders a complete table with search, filters, sorting, pagination, row selection, row actions and inline editing; columns declare what they take part in. Every piece of state works uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` / `selection`), and with `mode="server"` the same state drives an API. (parts: Root, Toolbar, Search, Filters, Filter, FilterSheet, Actions, Summary, Content, Pagination)
|
|
154
154
|
- `DescriptionItem` — One label and value pair inside a `DescriptionList`.
|
|
155
155
|
- `DescriptionList` — Label and value pairs, such as a record's details. Holds `DescriptionItem`s.
|
|
156
156
|
- `EmptyState` — Placeholder for empty lists, searches without results and first-run screens.
|
|
@@ -159,7 +159,7 @@ so the components work in Next.js App Router.
|
|
|
159
159
|
- `Skeleton` — Pulsing placeholder for content that is still loading.
|
|
160
160
|
- `SkeletonText` — Skeleton placeholder shaped like a paragraph; the last line is shorter.
|
|
161
161
|
- `Spinner` — Indeterminate loading indicator that follows `currentColor`.
|
|
162
|
-
- `Table` — Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`, `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting and pagination use `DataTable` instead.
|
|
162
|
+
- `Table` — Styled HTML table inside a horizontally scrolling wrapper, whose cut-off edge fades. Compose with `TableHeader`, `TableBody`, `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting and pagination use `DataTable` instead.
|
|
163
163
|
- `TableBody` — Styled `<tbody>` (`.oui-table__body`). Accepts `className`, `style`, the `render` prop and all `<tbody>` attributes. (parts: displayName)
|
|
164
164
|
- `TableCaption` — Styled `<caption>` (`.oui-table__caption`). Accepts `className`, `style`, the `render` prop and all `<caption>` attributes. (parts: displayName)
|
|
165
165
|
- `TableCell` — Body cell (`<td>`). `numeric` right-aligns and uses tabular figures.
|