@optimum-intelligence/opti-ui 0.3.0 → 0.5.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.
Files changed (131) hide show
  1. package/README.md +28 -7
  2. package/dist/components/accordion/Accordion.d.ts +12 -0
  3. package/dist/components/accordion/Accordion.js +12 -0
  4. package/dist/components/accordion/Accordion.js.map +1 -1
  5. package/dist/components/alert/Alert.d.ts +4 -0
  6. package/dist/components/alert/Alert.js.map +1 -1
  7. package/dist/components/app-shell/AppShell.d.ts +96 -5
  8. package/dist/components/app-shell/AppShell.js +676 -185
  9. package/dist/components/app-shell/AppShell.js.map +1 -1
  10. package/dist/components/avatar/Avatar.d.ts +8 -0
  11. package/dist/components/avatar/Avatar.js +2 -0
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +10 -3
  14. package/dist/components/badge/Badge.js +17 -28
  15. package/dist/components/badge/Badge.js.map +1 -1
  16. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -0
  17. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/components/button/Button.d.ts +8 -0
  19. package/dist/components/button/Button.js +6 -0
  20. package/dist/components/button/Button.js.map +1 -1
  21. package/dist/components/calendar/Calendar.d.ts +21 -7
  22. package/dist/components/calendar/Calendar.js +285 -212
  23. package/dist/components/calendar/Calendar.js.map +1 -1
  24. package/dist/components/calendar/DateConfig.d.ts +37 -0
  25. package/dist/components/calendar/DateConfig.js +75 -0
  26. package/dist/components/calendar/DateConfig.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +41 -6
  28. package/dist/components/calendar/date-utils.js +119 -20
  29. package/dist/components/calendar/date-utils.js.map +1 -1
  30. package/dist/components/card/Card.d.ts +13 -0
  31. package/dist/components/card/Card.js +13 -0
  32. package/dist/components/card/Card.js.map +1 -1
  33. package/dist/components/choice/Choice.d.ts +13 -0
  34. package/dist/components/choice/Choice.js +10 -0
  35. package/dist/components/choice/Choice.js.map +1 -1
  36. package/dist/components/combobox/Combobox.d.ts +12 -0
  37. package/dist/components/combobox/Combobox.js.map +1 -1
  38. package/dist/components/command-palette/CommandPalette.d.ts +10 -0
  39. package/dist/components/command-palette/CommandPalette.js.map +1 -1
  40. package/dist/components/data-table/DataTable.d.ts +4 -0
  41. package/dist/components/data-table/DataTable.js.map +1 -1
  42. package/dist/components/data-table/DataTableContent.d.ts +1 -0
  43. package/dist/components/data-table/DataTableContent.js +3 -3
  44. package/dist/components/data-table/DataTableContent.js.map +1 -1
  45. package/dist/components/data-table/DataTableFilters.d.ts +3 -0
  46. package/dist/components/data-table/DataTableFilters.js.map +1 -1
  47. package/dist/components/data-table/types.d.ts +16 -0
  48. package/dist/components/date-picker/DatePicker.d.ts +33 -10
  49. package/dist/components/date-picker/DatePicker.js +315 -279
  50. package/dist/components/date-picker/DatePicker.js.map +1 -1
  51. package/dist/components/date-picker/DateRangePicker.d.ts +12 -4
  52. package/dist/components/date-picker/DateRangePicker.js +240 -206
  53. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  54. package/dist/components/date-picker/PickerField.d.ts +13 -0
  55. package/dist/components/date-picker/PickerField.js +1 -1
  56. package/dist/components/date-picker/PickerField.js.map +1 -1
  57. package/dist/components/dialog/Dialog.d.ts +5 -0
  58. package/dist/components/dialog/Dialog.js.map +1 -1
  59. package/dist/components/drawer/Drawer.d.ts +10 -0
  60. package/dist/components/drawer/Drawer.js.map +1 -1
  61. package/dist/components/empty-state/EmptyState.d.ts +5 -0
  62. package/dist/components/empty-state/EmptyState.js.map +1 -1
  63. package/dist/components/file-upload/FileUpload.d.ts +21 -0
  64. package/dist/components/file-upload/FileUpload.js.map +1 -1
  65. package/dist/components/input/Input.d.ts +7 -0
  66. package/dist/components/input/Input.js +3 -0
  67. package/dist/components/input/Input.js.map +1 -1
  68. package/dist/components/link/Link.d.ts +1 -0
  69. package/dist/components/link/Link.js.map +1 -1
  70. package/dist/components/menu/Menu.d.ts +6 -0
  71. package/dist/components/menu/Menu.js.map +1 -1
  72. package/dist/components/number-field/NumberField.d.ts +7 -0
  73. package/dist/components/number-field/NumberField.js.map +1 -1
  74. package/dist/components/pagination/Pagination.d.ts +4 -0
  75. package/dist/components/pagination/Pagination.js.map +1 -1
  76. package/dist/components/popover/Popover.d.ts +4 -0
  77. package/dist/components/popover/Popover.js.map +1 -1
  78. package/dist/components/preview-card/PreviewCard.d.ts +4 -0
  79. package/dist/components/preview-card/PreviewCard.js.map +1 -1
  80. package/dist/components/progress/Progress.d.ts +8 -0
  81. package/dist/components/progress/Progress.js.map +1 -1
  82. package/dist/components/scroll-area/ScrollArea.d.ts +1 -0
  83. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  84. package/dist/components/search-input/SearchInput.d.ts +2 -0
  85. package/dist/components/search-input/SearchInput.js.map +1 -1
  86. package/dist/components/select/Select.d.ts +11 -0
  87. package/dist/components/select/Select.js.map +1 -1
  88. package/dist/components/separator/Separator.d.ts +1 -0
  89. package/dist/components/separator/Separator.js +1 -0
  90. package/dist/components/separator/Separator.js.map +1 -1
  91. package/dist/components/skeleton/Skeleton.d.ts +7 -0
  92. package/dist/components/skeleton/Skeleton.js +1 -0
  93. package/dist/components/skeleton/Skeleton.js.map +1 -1
  94. package/dist/components/slider/Slider.d.ts +1 -0
  95. package/dist/components/slider/Slider.js.map +1 -1
  96. package/dist/components/spinner/Spinner.d.ts +2 -0
  97. package/dist/components/spinner/Spinner.js +1 -0
  98. package/dist/components/spinner/Spinner.js.map +1 -1
  99. package/dist/components/stat-card/StatCard.d.ts +4 -0
  100. package/dist/components/stat-card/StatCard.js.map +1 -1
  101. package/dist/components/stepper/Stepper.d.ts +4 -0
  102. package/dist/components/stepper/Stepper.js.map +1 -1
  103. package/dist/components/table/Table.d.ts +24 -1
  104. package/dist/components/table/Table.js +19 -2
  105. package/dist/components/table/Table.js.map +1 -1
  106. package/dist/components/tabs/Tabs.d.ts +1 -0
  107. package/dist/components/tabs/Tabs.js.map +1 -1
  108. package/dist/components/tag/Tag.d.ts +3 -0
  109. package/dist/components/tag/Tag.js.map +1 -1
  110. package/dist/components/toast/Toast.d.ts +2 -0
  111. package/dist/components/toast/Toast.js.map +1 -1
  112. package/dist/components/toggle/Toggle.d.ts +7 -0
  113. package/dist/components/toggle/Toggle.js +1 -0
  114. package/dist/components/toggle/Toggle.js.map +1 -1
  115. package/dist/components/tooltip/Tooltip.d.ts +8 -0
  116. package/dist/components/tooltip/Tooltip.js.map +1 -1
  117. package/dist/components/typography/Typography.d.ts +5 -0
  118. package/dist/components/typography/Typography.js +2 -0
  119. package/dist/components/typography/Typography.js.map +1 -1
  120. package/dist/components.json +5534 -0
  121. package/dist/index.d.ts +1 -0
  122. package/dist/index.js +4 -3
  123. package/dist/llms-full.txt +2707 -0
  124. package/dist/llms.txt +177 -0
  125. package/dist/opti-ui.css +171 -81
  126. package/dist/theme/ThemeProvider.d.ts +1 -0
  127. package/dist/theme/ThemeProvider.js.map +1 -1
  128. package/dist/utils/portal.d.ts +4 -0
  129. package/dist/utils/portal.js +4 -0
  130. package/dist/utils/portal.js.map +1 -1
  131. package/package.json +7 -3
package/dist/llms.txt ADDED
@@ -0,0 +1,177 @@
1
+ # Opti UI (`@optimum-intelligence/opti-ui`)
2
+
3
+ > Optimum's customizable React component library, built on Base UI. React 19, styled with CSS custom properties (`--oui-*`) in cascade layers.
4
+
5
+ ## Read this first
6
+
7
+ - Full API reference (every component, part, prop, type, default): `node_modules/@optimum-intelligence/opti-ui/llms-full.txt`
8
+ - Same data as JSON: `node_modules/@optimum-intelligence/opti-ui/components.json` (also `import manifest from '@optimum-intelligence/opti-ui/components.json'`)
9
+ - Prop types and JSDoc ship in `node_modules/@optimum-intelligence/opti-ui/dist/**/*.d.ts`
10
+
11
+ ## Setup
12
+
13
+ React 19 is a peer dependency; the build is precompiled with React Compiler. `@base-ui/react` is installed with the package.
14
+
15
+ ```tsx
16
+ import '@optimum-intelligence/opti-ui/styles.css';
17
+ import '@optimum-intelligence/opti-ui/fonts.css'; // optional: loads Poppins + Montserrat from Google Fonts
18
+ import { Button, Card, CardTitle, ToastProvider, Tooltip } from '@optimum-intelligence/opti-ui';
19
+
20
+ export function App() {
21
+ return (
22
+ <Tooltip.Provider>
23
+ <ToastProvider>
24
+ <Card>
25
+ <CardTitle>Monthly energy</CardTitle>
26
+ <Button>Export report</Button>
27
+ </Card>
28
+ </ToastProvider>
29
+ </Tooltip.Provider>
30
+ );
31
+ }
32
+ ```
33
+
34
+ Add `class="oui-root"` to `<body>` for the library font, text color and background. Add `oui-isolate`
35
+ to your app root so portalled popups stack above app content. Every module has a `'use client'` banner,
36
+ so the components work in Next.js App Router.
37
+
38
+ ## Theme
39
+
40
+ - `createTheme` — Builds a theme from a base, applying overrides on top.
41
+ - `ThemeProvider` — Scopes a theme to its children. Popups opened inside are portalled into the provider so they pick up the same tokens.
42
+ - `themeToStyle` — Converts a theme object into CSS custom properties for a `style` prop.
43
+
44
+ ## Forms
45
+
46
+ - `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.
47
+ - `Checkbox` — Checkbox with optional `label` and `description`. Supports `indeterminate`.
48
+ - `CheckboxGroup` — Manages the checked values of several `Checkbox` children (`value` / `onValueChange`).
49
+ - `Combobox` — Searchable select. `<Combobox items={…} />` covers single and `multiple` (chips) selection; compose the parts for anything custom. (parts: Root, InputGroup, Input, Trigger, Clear, Value, Chips, Chip, Content, List, Item, Empty, Group, GroupLabel, Collection, useFilter)
50
+ - `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.
51
+ - `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`.
52
+ - `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.
53
+ - `DateTimePicker` — Date and time field. Values are UTC instants (`"2026-03-09T13:30:00Z"`) shown and edited in `timeZone` (the browser's by default) on a 24-hour clock, as `2026-03-09 14:30`. Values without an offset (`"2026-03-09T14:30"`) are read as wall-clock time in `timeZone`.
54
+ - `Dropzone` — Drop target that also opens the file browser on click, Enter or Space.
55
+ - `Field` — Field parts wire up labels, descriptions and validation for any control inside (Input, Select, Checkbox, Switch, NumberField…). (parts: Root, Label, Description, Error, Item, Validity)
56
+ - `Fieldset` — Groups related fields under a legend. (parts: Root, Legend)
57
+ - `FileItem` — One file in a list: name, size, upload progress or error, and a remove button.
58
+ - `FileUpload` — File field: a dropzone plus the list of chosen files. It only collects `File` objects; upload them yourself and report progress through `fileState`.
59
+ - `Form` — Form with Base UI validation wiring and vertical field spacing.
60
+ - `formatDate` — Formats a date or date-time the way the date pickers show it: ISO-style (`2026-03-09 14:30`) on a 24-hour clock by default, or with a custom `format`. Instants (`"2026-03-09T13:30:00Z"`) are shown in `timeZone`. Returns `""` for an invalid value.
61
+ - `formatFileSize` — `1536` → `"1.5 KB"`.
62
+ - `Input` — Text input, optionally with `startAdornment` / `endAdornment` inside the box. Use `TextField` for a labelled one.
63
+ - `NumberField` — Numeric input with stepper buttons, locale formatting and keyboard stepping.
64
+ - `PasswordField` — Labelled password input with description and error message.
65
+ - `PasswordInput` — Password input with a button that reveals the value.
66
+ - `Radio` — Radio button with optional `label` and `description`. Use inside `RadioGroup`; each needs a `value`.
67
+ - `RadioGroup` — Single-choice group for `Radio` children (`value` / `onValueChange`).
68
+ - `RangeCalendar` — Month grid for picking a range of days: the first pick sets one end, the second completes the range (in either order). Same keyboard as Calendar. Disabled days cannot be picked as an end but may fall inside a range.
69
+ - `SearchInput` — Text input with a search icon and a clear button that appears once there is a value.
70
+ - `Select` — `<Select items={…} />` renders a complete labelled select. For full control compose the parts: `Select.Root`, `Select.Trigger`, `Select.Content`, `Select.Item`, `Select.Group`, `Select.GroupLabel`, `Select.Separator`. (parts: Root, Label, Trigger, Value, Content, Item, Group, GroupLabel, Separator)
71
+ - `Slider` — Single value or range (pass an array) slider.
72
+ - `Switch` — On/off switch with optional `label` and `description`.
73
+ - `Textarea` — Multi-line text input. Use `TextareaField` for a labelled one.
74
+ - `TextareaField` — Labelled textarea with description and error message.
75
+ - `TextField` — Labelled input with description and error message.
76
+ - `useDateConfig` — The date settings from the nearest `DateConfigProvider`. Spread it into `formatDate` options to format dates the same way the pickers do.
77
+
78
+ ## Layout
79
+
80
+ - `AppShell` — Full-height layout with a fixed navbar and an internally scrolling main area. Below 900px the navbar moves into a slide-in drawer, and `NavbarItem`s marked `pinned` show in a tab bar (see `mobileNavPosition`). Customize width with `--oui-navbar-width` and `--oui-navbar-collapsed-width`.
81
+ - `Card` — Surface that groups related content. Compose with `CardHeader` (`CardTitle`, `CardDescription`, `CardActions`), `CardContent` and `CardFooter`.
82
+ - `CardActions` — Right-aligned slot inside CardHeader for icon buttons or menus. (parts: displayName)
83
+ - `CardContent` — Styled `<div>` (`.oui-card__content`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
84
+ - `CardDescription` — Styled `<p>` (`.oui-card__description`). Accepts `className`, `style`, the `render` prop and all `<p>` attributes. (parts: displayName)
85
+ - `CardFooter` — Styled `<div>` (`.oui-card__footer`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
86
+ - `CardHeader` — Styled `<div>` (`.oui-card__header`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
87
+ - `CardTitle` — Styled `<h3>` (`.oui-card__title`). Accepts `className`, `style`, the `render` prop and all `<h3>` attributes. (parts: displayName)
88
+ - `Grid` — Responsive dashboard grid.
89
+ - `Navbar` — Collapsible side navigation. Use inside `AppShell`. Compose with `NavbarHeader` (`NavbarBrand`), `NavbarSection` (`NavbarSectionLabel`, `NavbarItem`) and `NavbarFooter`.
90
+ - `NavbarBrand` — Logo, title and subtitle block for the top of a `Navbar`.
91
+ - `NavbarFooter` — Styled `<div>` (`.oui-navbar__footer`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
92
+ - `NavbarGroup` — Expandable parent row in a `Navbar` with nested `NavbarItem` sub-links. Place it in a `NavbarSection` next to other items. On a collapsed rail the sub-links are hidden and the parent shows as active when one of them is; the hover peek shows the full tree.
93
+ - `NavbarHeader` — Styled `<div>` (`.oui-navbar__header`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
94
+ - `NavbarItem` — Navigation link. Renders an `<a>`; use `render={<Link to="…" />}` for a router link or `render={<button />}` for an action. Inside a `NavbarGroup` it becomes an indented sub-link.
95
+ - `NavbarSection` — Styled `<div>` (`.oui-navbar__section`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
96
+ - `NavbarSectionLabel` — Styled `<div>` (`.oui-navbar__section-label`). Accepts `className`, `style`, the `render` prop and all `<div>` attributes. (parts: displayName)
97
+ - `PageHeader` — Page title block with optional breadcrumbs, eyebrow, description and actions.
98
+ - `ScrollArea` — Scroll container with slim, themed overlay scrollbars. Set a height or max-height.
99
+ - `Separator` — Thin divider line. Set `orientation="vertical"` for a vertical rule.
100
+ - `Stack` — Flex container that spaces its children evenly, in a column or a row.
101
+ - `StatCard` — KPI tile: label, large value, optional unit and trend.
102
+
103
+ ## Typography
104
+
105
+ - `Eyebrow` — Small uppercase label used above titles, in filter bars and table headers.
106
+ - `Heading` — Heading element. `level` sets the tag (`h1`–`h6`) and the default size; `size` overrides only the look.
107
+ - `Link` — Text link. Pass a router link through `render`: `<Link render={<NavLink to="/fleet" />}>`.
108
+ - `Text` — Body text paragraph. Use `render={<span />}` for inline text.
109
+
110
+ ## Actions
111
+
112
+ - `Button` — Action button. Use `render={<a href="…" />}` with `nativeButton={false}` to style a link as a button.
113
+ - `ContextMenu` — Menu opened by right click or long press on `ContextMenu.Trigger`, which wraps the target area. The item parts are the same as `Menu`'s. (parts: Root, Trigger, Content, Item, LinkItem, CheckboxItem, RadioGroup, RadioItem, Group, GroupLabel, Separator, SubmenuRoot, SubmenuTrigger)
114
+ - `IconButton` — Square button for a single icon. Defaults to the compact ghost style.
115
+ - `Menu` — Dropdown menu of actions. Compose `Menu.Root` › `Menu.Trigger` + `Menu.Content` › items. For nested menus use `Menu.SubmenuRoot` › `Menu.SubmenuTrigger` + `Menu.Content`. (parts: Root, Trigger, Content, Item, LinkItem, CheckboxItem, RadioGroup, RadioItem, Group, GroupLabel, Separator, SubmenuRoot, SubmenuTrigger)
116
+ - `SegmentedControl` — Single-choice switcher (e.g. Day / Week / Month). Always keeps one value selected.
117
+ - `Toggle` — Two-state button (bold, pin, favourite…). Inside a ToggleGroup it acts as a segment.
118
+ - `ToggleGroup` — Group of `Toggle` buttons that share selection state (single or multiple).
119
+ - `Toolbar` — Row of controls that is a single tab stop; arrow keys move between them. Other controls join through `render`: `<Toolbar.Button render={<Toggle />} />`, `<Toolbar.Button render={<Menu.Trigger />} />`. (parts: Root, Button, Link, Group, Separator, Input)
120
+
121
+ ## Overlays
122
+
123
+ - `AlertDialog` — Confirmation dialog that requires an explicit choice (no outside-click dismissal). (parts: Root, Trigger, Content, Header, Title, Description, Body, Footer, Close)
124
+ - `CommandPalette` — Searchable command menu in a dialog (Ctrl / ⌘ + K) for navigation and quick actions. Keyboard: arrows move, Enter chooses, Esc closes.
125
+ - `createToastManager` — Base UI `Toast.createToastManager` re-exported unchanged. See https://base-ui.com/react/components/toast.
126
+ - `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)
127
+ - `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`.
128
+ - `Popover` — Floating panel anchored to a trigger, for small forms, filters and details. (parts: Root, Trigger, Content, Title, Description, Close)
129
+ - `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)
130
+ - `ToastProvider` — Mount once near the app root. Then call `useToast()` anywhere below, or pass a `toastManager` from `createToastManager()` to trigger toasts outside React.
131
+ - `Tooltip` — `<Tooltip content="Export"><IconButton … /></Tooltip>`. Wrap the app in `Tooltip.Provider` so adjacent tooltips open instantly. (parts: Provider, Root, Trigger, Content)
132
+ - `useToast` — Toast API with tone shortcuts: `toast.success({ title })`.
133
+
134
+ ## Disclosure & navigation
135
+
136
+ - `Accordion` — Expandable sections. Compose `Accordion.Root` › `Accordion.Item` (give each a `value`) › `Accordion.Trigger` + `Accordion.Panel`. Pass `multiple` to `Root` to allow several open at once. (parts: Root, Item, Trigger, Panel)
137
+ - `Breadcrumb` — One step of a breadcrumb trail. Pass a router link through `render`.
138
+ - `Breadcrumbs` — Trail of links to the pages above the current one. Each child becomes one step.
139
+ - `Collapsible` — A single section that shows and hides: advanced options, "show more", filter groups. (parts: Root, Trigger, Panel)
140
+ - `getPageItems` — Page numbers to render, with `'gap'` where pages are skipped.
141
+ - `Pagination` — Controlled page navigation with an optional rows-per-page select.
142
+ - `Stepper` — Progress through an ordered sequence: a wizard, a checkout, a background job's phases.
143
+ - `Tabs` — `Tabs.Root` › `Tabs.List` › `Tabs.Tab`, then one `Tabs.Panel` per value. (parts: Root, List, Tab, Panel)
144
+
145
+ ## Feedback & data display
146
+
147
+ - `Alert` — Inline message for page- or section-level feedback.
148
+ - `Avatar` — User or entity picture with initials fallback.
149
+ - `AvatarGroup` — Overlapping row of `Avatar` children, with an optional "+N" overflow counter.
150
+ - `Badge` — Small status label.
151
+ - `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)
152
+ - `EmptyState` — Placeholder for empty lists, searches without results and first-run screens.
153
+ - `Meter` — A measurement within a known range (quota, capacity, score).
154
+ - `Progress` — Task completion. Pass `value={null}` for an indeterminate bar.
155
+ - `Skeleton` — Pulsing placeholder for content that is still loading.
156
+ - `SkeletonText` — Skeleton placeholder shaped like a paragraph; the last line is shorter.
157
+ - `Spinner` — Indeterminate loading indicator that follows `currentColor`.
158
+ - `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.
159
+ - `TableBody` — Styled `<tbody>` (`.oui-table__body`). Accepts `className`, `style`, the `render` prop and all `<tbody>` attributes. (parts: displayName)
160
+ - `TableCaption` — Styled `<caption>` (`.oui-table__caption`). Accepts `className`, `style`, the `render` prop and all `<caption>` attributes. (parts: displayName)
161
+ - `TableCell` — Body cell (`<td>`). `numeric` right-aligns and uses tabular figures.
162
+ - `TableFooter` — Styled `<tfoot>` (`.oui-table__footer`). Accepts `className`, `style`, the `render` prop and all `<tfoot>` attributes. (parts: displayName)
163
+ - `TableHead` — Column header cell (`<th>`), optionally a sort button.
164
+ - `TableHeader` — Styled `<thead>` (`.oui-table__header`). Accepts `className`, `style`, the `render` prop and all `<thead>` attributes. (parts: displayName)
165
+ - `TableRow` — Styled `<tr>` (`.oui-table__row`). Accepts `className`, `style`, the `render` prop and all `<tr>` attributes. (parts: displayName)
166
+ - `Tag` — Label for a value the user can take away again: an active filter, a recipient, a keyword.
167
+ - `useDataTable` — State and row processing of a `DataTable`, without any markup. Pass the result to `DataTable.Root` to lay the parts out yourself, or read `rows`, `filterValues` and the rest to drive something else (an export, a chart).
168
+ - `useDataTableContext` — The table of the surrounding `DataTable.Root`, for building custom parts.
169
+
170
+ ## Icons & utilities
171
+
172
+ - `cx` — Joins truthy class names.
173
+ - `Icons` — Small built-in stroke icon set. Every icon renders an `<svg>` that follows the font size and `currentColor`.
174
+ - `matchesQuery` — True when every whitespace-separated term of `query` occurs in `text`. An empty query matches.
175
+ - `normalizeText` — Lower-cases and strips diacritics, so "gyor" matches "Győr".
176
+ - `usePortalContainer` — Returns the element popups should portal into: the nearest `ThemeProvider`, or `undefined` for the document body. Pass it as `container` when building a custom portalled popup.
177
+ - `withClass` — Prepends a library class to a Base UI `className` prop, preserving the function form so consumers can still derive classes from component state.