@reopt-ai/opt-ui 1.7.0 → 1.9.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.
- package/COMPONENT_CATALOG.md +222 -34
- package/README.md +70 -6
- package/dist/core/index.cjs +170 -155
- package/dist/core/index.d.cts +3 -2
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.js +3 -3
- package/dist/docs/02-components/01-core.md +223 -18
- package/dist/docs/02-components/02-visuals.md +1 -1
- package/dist/docs/02-components/03-shells.md +17 -16
- package/dist/docs/02-components/04-surfaces.md +1 -1
- package/dist/docs/02-components/index.md +4 -4
- package/dist/{field-sidebar-CB8vjvUM.d.ts → field-sidebar-B5vk3luQ.d.cts} +30 -3
- package/dist/{field-sidebar-BTZCBviA.d.cts.map → field-sidebar-B5vk3luQ.d.cts.map} +1 -1
- package/dist/{field-sidebar-Cs-J-5VE.js → field-sidebar-B7QkWvMG.js} +52 -17
- package/dist/{field-sidebar-Cs-J-5VE.js.map → field-sidebar-B7QkWvMG.js.map} +1 -1
- package/dist/{field-sidebar-BTZCBviA.d.cts → field-sidebar-Dk9gJGA_.d.ts} +30 -3
- package/dist/{field-sidebar-CB8vjvUM.d.ts.map → field-sidebar-Dk9gJGA_.d.ts.map} +1 -1
- package/dist/{field-sidebar-CzIQX70-.cjs → field-sidebar-mFHemxBz.cjs} +328 -293
- package/dist/{types-D0FlcYnM.d.ts → field-token-CSOrU5gl.d.cts} +66 -2
- package/dist/field-token-CSOrU5gl.d.cts.map +1 -0
- package/dist/{types-D0FlcYnM.d.cts → field-token-CSOrU5gl.d.ts} +66 -2
- package/dist/field-token-CSOrU5gl.d.ts.map +1 -0
- package/dist/{pagination-DWbvACuN.js → highlight-C2sfnJN8.js} +263 -11
- package/dist/highlight-C2sfnJN8.js.map +1 -0
- package/dist/{pagination-DjfxBcjX.cjs → highlight-CGcrYGMC.cjs} +284 -8
- package/dist/id-registry.cjs +98 -2
- package/dist/id-registry.d.cts.map +1 -1
- package/dist/id-registry.d.ts.map +1 -1
- package/dist/id-registry.js +98 -2
- package/dist/id-registry.js.map +1 -1
- package/dist/id-registry.json +202 -4
- package/dist/index.cjs +664 -643
- package/dist/index.d.cts +5 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/{shader-surface-BUPZ0P-n.js → key-pad-menu-BFd79JoS.js} +855 -19
- package/dist/key-pad-menu-BFd79JoS.js.map +1 -0
- package/dist/{shader-surface-DRrcLrWf.d.cts → key-pad-menu-D8OS_VCT.d.cts} +459 -3
- package/dist/key-pad-menu-D8OS_VCT.d.cts.map +1 -0
- package/dist/{shader-surface-Fav5K9UC.cjs → key-pad-menu-DoGskWbp.cjs} +1103 -201
- package/dist/{shader-surface-BfTP9c1Q.d.ts → key-pad-menu-EEb6Ho5h.d.ts} +459 -3
- package/dist/key-pad-menu-EEb6Ho5h.d.ts.map +1 -0
- package/dist/meta.cjs +641 -0
- package/dist/meta.d.cts.map +1 -1
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +641 -0
- package/dist/meta.js.map +1 -1
- package/dist/shells/index.cjs +1 -1
- package/dist/shells/index.d.cts +1 -1
- package/dist/shells/index.d.ts +1 -1
- package/dist/shells/index.js +1 -1
- package/package.json +2 -2
- package/dist/pagination-DWbvACuN.js.map +0 -1
- package/dist/shader-surface-BUPZ0P-n.js.map +0 -1
- package/dist/shader-surface-BfTP9c1Q.d.ts.map +0 -1
- package/dist/shader-surface-DRrcLrWf.d.cts.map +0 -1
- package/dist/types-D0FlcYnM.d.cts.map +0 -1
- package/dist/types-D0FlcYnM.d.ts.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
|
|
2
|
+
import { LucideIcon } from "lucide-react";
|
|
2
3
|
//#region src/lib/types.d.ts
|
|
3
4
|
/** Defines the command shape (data for command palettes / menus). */
|
|
4
5
|
interface CommandDef {
|
|
@@ -297,5 +298,68 @@ interface ChatStylePresetDef {
|
|
|
297
298
|
systemPrompt?: string;
|
|
298
299
|
}
|
|
299
300
|
//#endregion
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
//#region src/core/field-token.d.ts
|
|
302
|
+
/**
|
|
303
|
+
* The kinds of field an analytics schema actually carries. Two fields of the
|
|
304
|
+
* same shape but different meaning — a `date` you group by and a `duration`
|
|
305
|
+
* you average — get different glyphs, because the reader is scanning for
|
|
306
|
+
* meaning, not for storage class.
|
|
307
|
+
*/
|
|
308
|
+
type FieldDataType = "string" | "number" | "boolean" | "date" | "datetime" | "duration" | "percent" | "currency" | "enum" | "array" | "object" | "json" | "ip" | "geo" | "url" | "email" | "id" | "binary" | "aggregate" | "nested" | "unknown";
|
|
309
|
+
interface TokenAppearance {
|
|
310
|
+
icon: LucideIcon;
|
|
311
|
+
/** Index into the chart palette, so a token inherits the active theme. */
|
|
312
|
+
tone: number;
|
|
313
|
+
/** Fallback `title` when the caller gives none. */
|
|
314
|
+
name: string;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* The glyph and palette slot each field type reads as. Exported so a product
|
|
318
|
+
* can render the same legend the tokens imply.
|
|
319
|
+
*/
|
|
320
|
+
declare const FIELD_TYPE_TOKENS: Record<FieldDataType, TokenAppearance>;
|
|
321
|
+
/**
|
|
322
|
+
* Names a backend type as one of ours. Accepts the spellings Postgres,
|
|
323
|
+
* ClickHouse, DuckDB, and JSON Schema actually emit, so a caller can hand
|
|
324
|
+
* over a column type verbatim instead of maintaining its own table.
|
|
325
|
+
*/
|
|
326
|
+
declare function resolveFieldType(raw: string | null | undefined): FieldDataType;
|
|
327
|
+
/** Props for the field token component. */
|
|
328
|
+
interface FieldTokenProps {
|
|
329
|
+
/** The field's type. Pass a raw backend type through `resolveFieldType`. */
|
|
330
|
+
type: FieldDataType;
|
|
331
|
+
size?: "xs" | "sm" | "md" | "lg";
|
|
332
|
+
/** `subtle` tints the square; `solid` fills it; `none` draws the glyph bare. */
|
|
333
|
+
fill?: "subtle" | "solid" | "none";
|
|
334
|
+
shape?: "square" | "circle";
|
|
335
|
+
/**
|
|
336
|
+
* Accessible name. Defaults to the type's own name — pass the field name
|
|
337
|
+
* when the token stands alone, so a reader hears "user_id, identifier"
|
|
338
|
+
* rather than just "identifier".
|
|
339
|
+
*/
|
|
340
|
+
title?: string;
|
|
341
|
+
/**
|
|
342
|
+
* Hide the token from the accessibility tree. Use when the field's type is
|
|
343
|
+
* already stated in adjacent text, so it is not read twice.
|
|
344
|
+
*/
|
|
345
|
+
decorative?: boolean;
|
|
346
|
+
className?: string;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* FieldToken — the type of a field, as a glyph.
|
|
350
|
+
*
|
|
351
|
+
* A field list, a column header, and a property table all have to answer
|
|
352
|
+
* "what kind of thing is this?" before anything else, and they have to answer
|
|
353
|
+
* it in the width of an icon. This is that answer: one glyph per type, one
|
|
354
|
+
* palette slot per glyph, stable across every surface that shows fields, so a
|
|
355
|
+
* reader learns the vocabulary once.
|
|
356
|
+
*
|
|
357
|
+
* @example
|
|
358
|
+
* ```tsx
|
|
359
|
+
* <FieldToken type={resolveFieldType(column.dataType)} title={column.name} />
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
declare function FieldToken({ type, size, fill, shape, title, decorative, className }: FieldTokenProps): import("react").JSX.Element;
|
|
363
|
+
//#endregion
|
|
364
|
+
export { NavItem as A, TimePreset as B, FailureItem as C, FormFieldDef as D, FilterOption as E, StatCard as F, ToolbarButtonDef as H, TabDef as I, TableColumn as L, ProjectDef as M, QuickActionDef as N, MenuDef as O, SelectOption as P, TaskDef as R, ExportFormat as S, FilterGroupDef as T, ToastOptions as V, DeploymentStep as _, resolveFieldType as a, EnvVarDef as b, ChartConfig as c, ChartSeriesDef as d, ChatConversationDef as f, CommandDef as g, ChatStylePresetDef as h, FieldTokenProps as i, NavItemDef as j, MenuItemDef as k, ChartDataPoint as l, ChatModelDef as m, FieldDataType as n, ActivityDef as o, ChatMessageDef as p, FieldToken as r, BranchDef as s, FIELD_TYPE_TOKENS as t, ChartMargin as u, DomainDef as v, FaqItem as w, ExportColumn as x, EnvGroupDef as y, TeamMemberDef as z };
|
|
365
|
+
//# sourceMappingURL=field-token-CSOrU5gl.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-token-CSOrU5gl.d.cts","names":[],"sources":["../src/lib/types.ts","../src/core/field-token.tsx"],"mappings":";;;;UACiB;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;;;UAIe;EACf;EACA;EACA,OAAO;;;UAIQ;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,MAAM,MAAM;EACZ;;;UAIe;EACf;EACA;EACA,SAAS,MAAM;;;UAIA;EACf;EACA;EACA;EAWA;EACA;EACA;EACA;EACA,YAAY;EACZ;IAAY;IAAe;;;EAE3B;;EAEA;;EAEA;;EAEA;;EAEA,sBAAsB,QAAQ;;;UAMf;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA,MAAM;;;UAIS;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;;;UAMe,YAAY;EAC3B;EACA;EACA,gBAAgB,MAAM,KAAK,MAAM,MAAM;EACvC;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;IAAa;IAAY;IAAe;;;;UAIzB;EACf;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EAQA;EACA;EACA,OAAO;EACP;EACA,WAAW;EACX;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA,UAAU;EACV;;;UAIe;EACf;EACA;EACA;EACA,OAAO,MAAM;EACb;EACA;EACA;;;UAMe;EACf;EACA;;;KAIU;;UAGK;EACf;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;;UAMI;EACf;GACC;;;UAIc;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf,QAAQ;EACR;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;;;;;;;;KCnUU;UAuBF;EACR,MAAM;;EAEN;;EAEA;;;;;;cAOW,mBAAmB,OAAO,eAAe;;;;;;iBA6BtC,iBACd,iCACC;;UA2Cc;;EAEf,MAAM;EACN;;EAEA;EACA;;;;;;EAMA;;;;;EAKA;EACA;;;;;;;;;;;;;;;;iBAiBc,aACd,MACA,MACA,MACA,OACA,OACA,YACA,aACC,kCAAe,IAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
|
|
2
|
+
import { LucideIcon } from "lucide-react";
|
|
2
3
|
//#region src/lib/types.d.ts
|
|
3
4
|
/** Defines the command shape (data for command palettes / menus). */
|
|
4
5
|
interface CommandDef {
|
|
@@ -297,5 +298,68 @@ interface ChatStylePresetDef {
|
|
|
297
298
|
systemPrompt?: string;
|
|
298
299
|
}
|
|
299
300
|
//#endregion
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
//#region src/core/field-token.d.ts
|
|
302
|
+
/**
|
|
303
|
+
* The kinds of field an analytics schema actually carries. Two fields of the
|
|
304
|
+
* same shape but different meaning — a `date` you group by and a `duration`
|
|
305
|
+
* you average — get different glyphs, because the reader is scanning for
|
|
306
|
+
* meaning, not for storage class.
|
|
307
|
+
*/
|
|
308
|
+
type FieldDataType = "string" | "number" | "boolean" | "date" | "datetime" | "duration" | "percent" | "currency" | "enum" | "array" | "object" | "json" | "ip" | "geo" | "url" | "email" | "id" | "binary" | "aggregate" | "nested" | "unknown";
|
|
309
|
+
interface TokenAppearance {
|
|
310
|
+
icon: LucideIcon;
|
|
311
|
+
/** Index into the chart palette, so a token inherits the active theme. */
|
|
312
|
+
tone: number;
|
|
313
|
+
/** Fallback `title` when the caller gives none. */
|
|
314
|
+
name: string;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* The glyph and palette slot each field type reads as. Exported so a product
|
|
318
|
+
* can render the same legend the tokens imply.
|
|
319
|
+
*/
|
|
320
|
+
declare const FIELD_TYPE_TOKENS: Record<FieldDataType, TokenAppearance>;
|
|
321
|
+
/**
|
|
322
|
+
* Names a backend type as one of ours. Accepts the spellings Postgres,
|
|
323
|
+
* ClickHouse, DuckDB, and JSON Schema actually emit, so a caller can hand
|
|
324
|
+
* over a column type verbatim instead of maintaining its own table.
|
|
325
|
+
*/
|
|
326
|
+
declare function resolveFieldType(raw: string | null | undefined): FieldDataType;
|
|
327
|
+
/** Props for the field token component. */
|
|
328
|
+
interface FieldTokenProps {
|
|
329
|
+
/** The field's type. Pass a raw backend type through `resolveFieldType`. */
|
|
330
|
+
type: FieldDataType;
|
|
331
|
+
size?: "xs" | "sm" | "md" | "lg";
|
|
332
|
+
/** `subtle` tints the square; `solid` fills it; `none` draws the glyph bare. */
|
|
333
|
+
fill?: "subtle" | "solid" | "none";
|
|
334
|
+
shape?: "square" | "circle";
|
|
335
|
+
/**
|
|
336
|
+
* Accessible name. Defaults to the type's own name — pass the field name
|
|
337
|
+
* when the token stands alone, so a reader hears "user_id, identifier"
|
|
338
|
+
* rather than just "identifier".
|
|
339
|
+
*/
|
|
340
|
+
title?: string;
|
|
341
|
+
/**
|
|
342
|
+
* Hide the token from the accessibility tree. Use when the field's type is
|
|
343
|
+
* already stated in adjacent text, so it is not read twice.
|
|
344
|
+
*/
|
|
345
|
+
decorative?: boolean;
|
|
346
|
+
className?: string;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* FieldToken — the type of a field, as a glyph.
|
|
350
|
+
*
|
|
351
|
+
* A field list, a column header, and a property table all have to answer
|
|
352
|
+
* "what kind of thing is this?" before anything else, and they have to answer
|
|
353
|
+
* it in the width of an icon. This is that answer: one glyph per type, one
|
|
354
|
+
* palette slot per glyph, stable across every surface that shows fields, so a
|
|
355
|
+
* reader learns the vocabulary once.
|
|
356
|
+
*
|
|
357
|
+
* @example
|
|
358
|
+
* ```tsx
|
|
359
|
+
* <FieldToken type={resolveFieldType(column.dataType)} title={column.name} />
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
declare function FieldToken({ type, size, fill, shape, title, decorative, className }: FieldTokenProps): import("react").JSX.Element;
|
|
363
|
+
//#endregion
|
|
364
|
+
export { NavItem as A, TimePreset as B, FailureItem as C, FormFieldDef as D, FilterOption as E, StatCard as F, ToolbarButtonDef as H, TabDef as I, TableColumn as L, ProjectDef as M, QuickActionDef as N, MenuDef as O, SelectOption as P, TaskDef as R, ExportFormat as S, FilterGroupDef as T, ToastOptions as V, DeploymentStep as _, resolveFieldType as a, EnvVarDef as b, ChartConfig as c, ChartSeriesDef as d, ChatConversationDef as f, CommandDef as g, ChatStylePresetDef as h, FieldTokenProps as i, NavItemDef as j, MenuItemDef as k, ChartDataPoint as l, ChatModelDef as m, FieldDataType as n, ActivityDef as o, ChatMessageDef as p, FieldToken as r, BranchDef as s, FIELD_TYPE_TOKENS as t, ChartMargin as u, DomainDef as v, FaqItem as w, ExportColumn as x, EnvGroupDef as y, TeamMemberDef as z };
|
|
365
|
+
//# sourceMappingURL=field-token-CSOrU5gl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-token-CSOrU5gl.d.ts","names":[],"sources":["../src/lib/types.ts","../src/core/field-token.tsx"],"mappings":";;;;UACiB;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ;;;UAIe;EACf;EACA;EACA,OAAO;;;UAIQ;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,MAAM,MAAM;EACZ;;;UAIe;EACf;EACA;EACA,SAAS,MAAM;;;UAIA;EACf;EACA;EACA;EAWA;EACA;EACA;EACA;EACA,YAAY;EACZ;IAAY;IAAe;;;EAE3B;;EAEA;;EAEA;;EAEA;;EAEA,sBAAsB,QAAQ;;;UAMf;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA,MAAM;;;UAIS;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;;;UAMe,YAAY;EAC3B;EACA;EACA,gBAAgB,MAAM,KAAK,MAAM,MAAM;EACvC;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;IAAa;IAAY;IAAe;;;;UAIzB;EACf;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EAQA;EACA;EACA,OAAO;EACP;EACA,WAAW;EACX;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA,UAAU;EACV;;;UAIe;EACf;EACA;EACA;EACA,OAAO,MAAM;EACb;EACA;EACA;;;UAMe;EACf;EACA;;;KAIU;;UAGK;EACf;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;;UAMI;EACf;GACC;;;UAIc;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf,QAAQ;EACR;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAMe;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;UAIe;EACf;EACA;EACA;;;;;;;;;;KCnUU;UAuBF;EACR,MAAM;;EAEN;;EAEA;;;;;;cAOW,mBAAmB,OAAO,eAAe;;;;;;iBA6BtC,iBACd,iCACC;;UA2Cc;;EAEf,MAAM;EACN;;EAEA;EACA;;;;;;EAMA;;;;;EAKA;EACA;;;;;;;;;;;;;;;;iBAiBc,aACd,MACA,MACA,MACA,OACA,OACA,YACA,aACC,kCAAe,IAAA"}
|
|
@@ -5,7 +5,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { createContext, forwardRef, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
7
7
|
import { AlertDialogPanel, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxPopover, ComboboxRoot, Composite, CompositeItem, CompositeProvider, CompositeRow, DialogDescription, DialogDisclosure, DialogDismiss, DialogHeading, DialogPanel, DialogRoot, DisclosureContent, DisclosureRoot, DisclosureTrigger, FormCheckbox, FormControl, FormDescription, FormError, FormField, FormGroup, FormGroupLabel, FormInput, FormLabel, FormProvider, FormPush, FormRadio, FormRadioGroup, FormRemove, FormReset, FormRoot, FormSubmit, FormSwitch, MenuButtonArrow, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuPopover, MenuRoot, MenuSeparator, MenuTrigger, MenubarContainer, MenubarRoot, PopoverClose, PopoverContent, PopoverRoot, PopoverTrigger, SelectItem, SelectLabel, SelectPopover, SelectRoot, SelectTrigger, Tab, TabList, TabPanel, TabsRoot, ToolbarButton, ToolbarContainer, ToolbarRoot, ToolbarSeparator, Tooltip, TooltipAnchor, TooltipProvider, useFieldValue, useFormContext, useFormStore } from "@reopt-ai/opt-ui-primitives";
|
|
8
|
-
import { Bell, CalendarDays, ChartColumn, Check, ChevronLeft, ChevronRight, CircleAlert, CircleCheck, CreditCard, Download, Eye, FileText, Flag, Folder, Globe, Heart, Info, Link2, LogIn, Mail, MessageCircle, MousePointerClick, Search, Settings, Share2, ShoppingCart, Star, TrendingUp, TriangleAlert, Upload, User, UserPlus, XCircle, Zap } from "lucide-react";
|
|
8
|
+
import { AtSign, Bell, Binary, Braces, Brackets, Calendar, CalendarClock, CalendarDays, ChartColumn, Check, ChevronLeft, ChevronRight, CircleAlert, CircleCheck, CircleDollarSign, CircleHelp, CreditCard, Download, Eye, FileText, Fingerprint, Flag, Folder, Globe, Hash, Heart, Info, Layers, Link2, List, LogIn, Mail, MapPin, MessageCircle, MousePointerClick, Network, Percent, Search, Settings, Share2, ShoppingCart, Sigma, Star, Timer, ToggleLeft, TrendingUp, TriangleAlert, Type, Upload, User, UserPlus, XCircle, Zap } from "lucide-react";
|
|
9
9
|
//#region src/lib/cn.ts
|
|
10
10
|
/** Handles cn. */
|
|
11
11
|
function cn(...inputs) {
|
|
@@ -324,7 +324,7 @@ const variantStyles$2 = {
|
|
|
324
324
|
ghost: "text-text-secondary hover:bg-bg-subtle active:bg-bg-muted focus-visible:ring-offset-1",
|
|
325
325
|
danger: "bg-danger text-danger-fg hover:bg-danger active:bg-danger focus-visible:ring-offset-2"
|
|
326
326
|
};
|
|
327
|
-
const sizeStyles$
|
|
327
|
+
const sizeStyles$4 = {
|
|
328
328
|
sm: "h-[var(--opt-control-sm)] px-[var(--opt-control-padding-sm)] text-xs gap-[var(--opt-space-1-5)]",
|
|
329
329
|
md: "h-[var(--opt-control-md)] px-[var(--opt-control-padding-md)] text-sm gap-[var(--opt-space-2)]",
|
|
330
330
|
lg: "h-[var(--opt-control-lg)] px-[var(--opt-control-padding-lg)] text-base gap-[var(--opt-space-2)]"
|
|
@@ -335,7 +335,7 @@ function Button(_ref) {
|
|
|
335
335
|
const isDisabled = disabled || loading;
|
|
336
336
|
return /* @__PURE__ */ jsxs("button", _objectSpread2(_objectSpread2({
|
|
337
337
|
type: "button",
|
|
338
|
-
className: cn("inline-flex cursor-pointer items-center justify-center rounded-lg font-medium transition-colors", OPT_FOCUS_VISIBLE, variantStyles$2[variant], sizeStyles$
|
|
338
|
+
className: cn("inline-flex cursor-pointer items-center justify-center rounded-lg font-medium transition-colors", OPT_FOCUS_VISIBLE, variantStyles$2[variant], sizeStyles$4[size], isDisabled && "pointer-events-none cursor-not-allowed opacity-50", className),
|
|
339
339
|
disabled: isDisabled
|
|
340
340
|
}, props), {}, {
|
|
341
341
|
"aria-busy": loading ? true : ariaBusy,
|
|
@@ -444,7 +444,7 @@ const progressStroke = {
|
|
|
444
444
|
error: "stroke-danger",
|
|
445
445
|
info: "stroke-info"
|
|
446
446
|
};
|
|
447
|
-
const sizeStyles$
|
|
447
|
+
const sizeStyles$3 = {
|
|
448
448
|
sm: "px-1.5 py-0.5 text-[10px]",
|
|
449
449
|
md: "px-2 py-0.5 text-[11px]"
|
|
450
450
|
};
|
|
@@ -456,7 +456,7 @@ function Badge(_ref) {
|
|
|
456
456
|
const radius = (progressSize - 3) / 2;
|
|
457
457
|
const circumference = 2 * Math.PI * radius;
|
|
458
458
|
const offset = circumference - clampedProgress / 100 * circumference;
|
|
459
|
-
return /* @__PURE__ */ jsxs("span", _objectSpread2(_objectSpread2({ className: cn(OPT_BADGE, variantStyles$1[variant], sizeStyles$
|
|
459
|
+
return /* @__PURE__ */ jsxs("span", _objectSpread2(_objectSpread2({ className: cn(OPT_BADGE, variantStyles$1[variant], sizeStyles$3[size], className) }, props), {}, {
|
|
460
460
|
"data-opt-id": "9GBGZ",
|
|
461
461
|
"data-opt-slug": "badge.Badge",
|
|
462
462
|
children: [
|
|
@@ -503,7 +503,7 @@ const _excluded$13 = [
|
|
|
503
503
|
"aria-hidden",
|
|
504
504
|
"aria-label"
|
|
505
505
|
];
|
|
506
|
-
const sizeStyles$
|
|
506
|
+
const sizeStyles$2 = {
|
|
507
507
|
sm: "h-4 w-4",
|
|
508
508
|
md: "h-6 w-6",
|
|
509
509
|
lg: "h-8 w-8"
|
|
@@ -513,7 +513,7 @@ function Spinner(_ref) {
|
|
|
513
513
|
let { size = "md", className, role, "aria-hidden": ariaHidden, "aria-label": ariaLabel } = _ref, props = _objectWithoutProperties(_ref, _excluded$13);
|
|
514
514
|
const isDecorative = ariaHidden === true || ariaHidden === "true";
|
|
515
515
|
return /* @__PURE__ */ jsxs("svg", _objectSpread2(_objectSpread2({
|
|
516
|
-
className: cn("animate-spin text-current", sizeStyles$
|
|
516
|
+
className: cn("animate-spin text-current", sizeStyles$2[size], className),
|
|
517
517
|
viewBox: "0 0 24 24",
|
|
518
518
|
fill: "none",
|
|
519
519
|
role: isDecorative ? void 0 : role !== null && role !== void 0 ? role : "status",
|
|
@@ -3532,7 +3532,7 @@ function setForwardedRef(ref, value) {
|
|
|
3532
3532
|
if (typeof ref === "function") ref(value);
|
|
3533
3533
|
else if (ref) ref.current = value;
|
|
3534
3534
|
}
|
|
3535
|
-
const sizeStyles = {
|
|
3535
|
+
const sizeStyles$1 = {
|
|
3536
3536
|
sm: {
|
|
3537
3537
|
box: "h-4 w-4",
|
|
3538
3538
|
icon: "h-3 w-3",
|
|
@@ -3598,7 +3598,7 @@ const Checkbox = forwardRef((_ref, ref) => {
|
|
|
3598
3598
|
const checkboxId = (_useInputId = useInputId(id, label, "checkbox")) !== null && _useInputId !== void 0 ? _useInputId : `checkbox-${fallbackId}`;
|
|
3599
3599
|
const hintText = hint !== null && hint !== void 0 ? hint : description;
|
|
3600
3600
|
const hasError = Boolean(error);
|
|
3601
|
-
const styles = sizeStyles[size];
|
|
3601
|
+
const styles = sizeStyles$1[size];
|
|
3602
3602
|
const isIndeterminate = Boolean(indeterminate);
|
|
3603
3603
|
const inputRef = useCallback((node) => {
|
|
3604
3604
|
if (node) node.indeterminate = isIndeterminate;
|
|
@@ -3845,6 +3845,258 @@ function Pagination(_ref) {
|
|
|
3845
3845
|
}));
|
|
3846
3846
|
}
|
|
3847
3847
|
//#endregion
|
|
3848
|
-
|
|
3848
|
+
//#region src/core/field-token.tsx
|
|
3849
|
+
/**
|
|
3850
|
+
* The glyph and palette slot each field type reads as. Exported so a product
|
|
3851
|
+
* can render the same legend the tokens imply.
|
|
3852
|
+
*/
|
|
3853
|
+
const FIELD_TYPE_TOKENS = {
|
|
3854
|
+
string: {
|
|
3855
|
+
icon: Type,
|
|
3856
|
+
tone: 1,
|
|
3857
|
+
name: "String"
|
|
3858
|
+
},
|
|
3859
|
+
number: {
|
|
3860
|
+
icon: Hash,
|
|
3861
|
+
tone: 2,
|
|
3862
|
+
name: "Number"
|
|
3863
|
+
},
|
|
3864
|
+
boolean: {
|
|
3865
|
+
icon: ToggleLeft,
|
|
3866
|
+
tone: 3,
|
|
3867
|
+
name: "Boolean"
|
|
3868
|
+
},
|
|
3869
|
+
date: {
|
|
3870
|
+
icon: Calendar,
|
|
3871
|
+
tone: 4,
|
|
3872
|
+
name: "Date"
|
|
3873
|
+
},
|
|
3874
|
+
datetime: {
|
|
3875
|
+
icon: CalendarClock,
|
|
3876
|
+
tone: 4,
|
|
3877
|
+
name: "Date and time"
|
|
3878
|
+
},
|
|
3879
|
+
duration: {
|
|
3880
|
+
icon: Timer,
|
|
3881
|
+
tone: 5,
|
|
3882
|
+
name: "Duration"
|
|
3883
|
+
},
|
|
3884
|
+
percent: {
|
|
3885
|
+
icon: Percent,
|
|
3886
|
+
tone: 6,
|
|
3887
|
+
name: "Percent"
|
|
3888
|
+
},
|
|
3889
|
+
currency: {
|
|
3890
|
+
icon: CircleDollarSign,
|
|
3891
|
+
tone: 7,
|
|
3892
|
+
name: "Currency"
|
|
3893
|
+
},
|
|
3894
|
+
enum: {
|
|
3895
|
+
icon: List,
|
|
3896
|
+
tone: 8,
|
|
3897
|
+
name: "Enum"
|
|
3898
|
+
},
|
|
3899
|
+
array: {
|
|
3900
|
+
icon: Brackets,
|
|
3901
|
+
tone: 9,
|
|
3902
|
+
name: "Array"
|
|
3903
|
+
},
|
|
3904
|
+
object: {
|
|
3905
|
+
icon: Braces,
|
|
3906
|
+
tone: 10,
|
|
3907
|
+
name: "Object"
|
|
3908
|
+
},
|
|
3909
|
+
json: {
|
|
3910
|
+
icon: Braces,
|
|
3911
|
+
tone: 10,
|
|
3912
|
+
name: "JSON"
|
|
3913
|
+
},
|
|
3914
|
+
ip: {
|
|
3915
|
+
icon: Network,
|
|
3916
|
+
tone: 11,
|
|
3917
|
+
name: "IP address"
|
|
3918
|
+
},
|
|
3919
|
+
geo: {
|
|
3920
|
+
icon: MapPin,
|
|
3921
|
+
tone: 12,
|
|
3922
|
+
name: "Geo point"
|
|
3923
|
+
},
|
|
3924
|
+
url: {
|
|
3925
|
+
icon: Link2,
|
|
3926
|
+
tone: 13,
|
|
3927
|
+
name: "URL"
|
|
3928
|
+
},
|
|
3929
|
+
email: {
|
|
3930
|
+
icon: AtSign,
|
|
3931
|
+
tone: 14,
|
|
3932
|
+
name: "Email"
|
|
3933
|
+
},
|
|
3934
|
+
id: {
|
|
3935
|
+
icon: Fingerprint,
|
|
3936
|
+
tone: 15,
|
|
3937
|
+
name: "Identifier"
|
|
3938
|
+
},
|
|
3939
|
+
binary: {
|
|
3940
|
+
icon: Binary,
|
|
3941
|
+
tone: 16,
|
|
3942
|
+
name: "Binary"
|
|
3943
|
+
},
|
|
3944
|
+
aggregate: {
|
|
3945
|
+
icon: Sigma,
|
|
3946
|
+
tone: 2,
|
|
3947
|
+
name: "Aggregate"
|
|
3948
|
+
},
|
|
3949
|
+
nested: {
|
|
3950
|
+
icon: Layers,
|
|
3951
|
+
tone: 9,
|
|
3952
|
+
name: "Nested"
|
|
3953
|
+
},
|
|
3954
|
+
unknown: {
|
|
3955
|
+
icon: CircleHelp,
|
|
3956
|
+
tone: 0,
|
|
3957
|
+
name: "Unknown"
|
|
3958
|
+
}
|
|
3959
|
+
};
|
|
3960
|
+
/**
|
|
3961
|
+
* Names a backend type as one of ours. Accepts the spellings Postgres,
|
|
3962
|
+
* ClickHouse, DuckDB, and JSON Schema actually emit, so a caller can hand
|
|
3963
|
+
* over a column type verbatim instead of maintaining its own table.
|
|
3964
|
+
*/
|
|
3965
|
+
function resolveFieldType(raw) {
|
|
3966
|
+
if (!raw) return "unknown";
|
|
3967
|
+
const t = raw.trim().toLowerCase();
|
|
3968
|
+
if (t in FIELD_TYPE_TOKENS) return t;
|
|
3969
|
+
if (t.endsWith("[]")) return "array";
|
|
3970
|
+
if (/^(array|list|set|multi)/.test(t)) return "array";
|
|
3971
|
+
if (/^(bytea|blob|binary|fixedstring)/.test(t)) return "binary";
|
|
3972
|
+
if (/^bool/.test(t)) return "boolean";
|
|
3973
|
+
if (/^(timestamp|datetime)/.test(t)) return "datetime";
|
|
3974
|
+
if (/^date/.test(t)) return "date";
|
|
3975
|
+
if (/^interval/.test(t)) return "duration";
|
|
3976
|
+
if (/^(uuid|guid)/.test(t)) return "id";
|
|
3977
|
+
if (/^(inet|cidr|ipv?[46])/.test(t)) return "ip";
|
|
3978
|
+
if (/^(point|geo|geography|geometry|latlon)/.test(t)) return "geo";
|
|
3979
|
+
if (/^(jsonb?|map|struct|record|tuple)/.test(t)) return "json";
|
|
3980
|
+
if (/^(enum|lowcardinality|category|categorical)/.test(t)) return "enum";
|
|
3981
|
+
if (/^(u?int|float|double|decimal|numeric|real|bigint|smallint|tinyint|serial|money)/.test(t)) return "number";
|
|
3982
|
+
if (/^(text|n?varchar|n?char|keyword|str|string)/.test(t)) return "string";
|
|
3983
|
+
return "unknown";
|
|
3984
|
+
}
|
|
3985
|
+
const sizeStyles = {
|
|
3986
|
+
xs: "size-4 rounded-[3px] [&>svg]:size-2.5",
|
|
3987
|
+
sm: "size-5 rounded [&>svg]:size-3",
|
|
3988
|
+
md: "size-6 rounded-md [&>svg]:size-3.5",
|
|
3989
|
+
lg: "size-8 rounded-lg [&>svg]:size-4"
|
|
3990
|
+
};
|
|
3991
|
+
const shapeStyles = {
|
|
3992
|
+
square: "",
|
|
3993
|
+
circle: "rounded-full"
|
|
3994
|
+
};
|
|
3995
|
+
/**
|
|
3996
|
+
* FieldToken — the type of a field, as a glyph.
|
|
3997
|
+
*
|
|
3998
|
+
* A field list, a column header, and a property table all have to answer
|
|
3999
|
+
* "what kind of thing is this?" before anything else, and they have to answer
|
|
4000
|
+
* it in the width of an icon. This is that answer: one glyph per type, one
|
|
4001
|
+
* palette slot per glyph, stable across every surface that shows fields, so a
|
|
4002
|
+
* reader learns the vocabulary once.
|
|
4003
|
+
*
|
|
4004
|
+
* @example
|
|
4005
|
+
* ```tsx
|
|
4006
|
+
* <FieldToken type={resolveFieldType(column.dataType)} title={column.name} />
|
|
4007
|
+
* ```
|
|
4008
|
+
*/
|
|
4009
|
+
function FieldToken({ type, size = "sm", fill = "subtle", shape = "square", title, decorative = false, className }) {
|
|
4010
|
+
var _FIELD_TYPE_TOKENS$ty;
|
|
4011
|
+
const appearance = (_FIELD_TYPE_TOKENS$ty = FIELD_TYPE_TOKENS[type]) !== null && _FIELD_TYPE_TOKENS$ty !== void 0 ? _FIELD_TYPE_TOKENS$ty : FIELD_TYPE_TOKENS.unknown;
|
|
4012
|
+
const Icon = appearance.icon;
|
|
4013
|
+
const label = title !== null && title !== void 0 ? title : appearance.name;
|
|
4014
|
+
const hue = appearance.tone === 0 ? "var(--color-text-tertiary)" : `var(--opt-chart-${appearance.tone})`;
|
|
4015
|
+
const style = fill === "solid" ? {
|
|
4016
|
+
backgroundColor: hue,
|
|
4017
|
+
color: "var(--color-surface)"
|
|
4018
|
+
} : fill === "subtle" ? {
|
|
4019
|
+
backgroundColor: `color-mix(in oklab, ${hue} 14%, transparent)`,
|
|
4020
|
+
color: hue
|
|
4021
|
+
} : { color: hue };
|
|
4022
|
+
return /* @__PURE__ */ jsx("span", {
|
|
4023
|
+
className: cn("inline-flex shrink-0 items-center justify-center", sizeStyles[size], shapeStyles[shape], className),
|
|
4024
|
+
style,
|
|
4025
|
+
role: decorative ? void 0 : "img",
|
|
4026
|
+
"aria-label": decorative ? void 0 : label,
|
|
4027
|
+
"aria-hidden": decorative ? true : void 0,
|
|
4028
|
+
"data-opt-id": "V3AJ4",
|
|
4029
|
+
"data-opt-slug": "field-token.FieldToken",
|
|
4030
|
+
"data-field-type": type,
|
|
4031
|
+
children: /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true" })
|
|
4032
|
+
});
|
|
4033
|
+
}
|
|
4034
|
+
//#endregion
|
|
4035
|
+
//#region src/core/highlight.tsx
|
|
4036
|
+
function escapeForRegExp(value) {
|
|
4037
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4038
|
+
}
|
|
4039
|
+
/**
|
|
4040
|
+
* Splits `text` on every occurrence of every term. Terms are matched longest
|
|
4041
|
+
* first so a search for both "check" and "checkout" marks "checkout" whole
|
|
4042
|
+
* rather than leaving a stray "out".
|
|
4043
|
+
*/
|
|
4044
|
+
function segment(text, terms, caseSensitive, firstOnly) {
|
|
4045
|
+
const usable = terms.filter((term) => term.length > 0).sort((a, b) => b.length - a.length);
|
|
4046
|
+
if (usable.length === 0) return [{
|
|
4047
|
+
text,
|
|
4048
|
+
hit: false
|
|
4049
|
+
}];
|
|
4050
|
+
const pattern = new RegExp(`(${usable.map(escapeForRegExp).join("|")})`, caseSensitive ? "g" : "gi");
|
|
4051
|
+
const out = [];
|
|
4052
|
+
let cursor = 0;
|
|
4053
|
+
let matched = false;
|
|
4054
|
+
for (const match of text.matchAll(pattern)) {
|
|
4055
|
+
var _match$index;
|
|
4056
|
+
if (firstOnly && matched) break;
|
|
4057
|
+
const at = (_match$index = match.index) !== null && _match$index !== void 0 ? _match$index : 0;
|
|
4058
|
+
if (at > cursor) out.push({
|
|
4059
|
+
text: text.slice(cursor, at),
|
|
4060
|
+
hit: false
|
|
4061
|
+
});
|
|
4062
|
+
out.push({
|
|
4063
|
+
text: match[0],
|
|
4064
|
+
hit: true
|
|
4065
|
+
});
|
|
4066
|
+
cursor = at + match[0].length;
|
|
4067
|
+
matched = true;
|
|
4068
|
+
}
|
|
4069
|
+
if (cursor < text.length) out.push({
|
|
4070
|
+
text: text.slice(cursor),
|
|
4071
|
+
hit: false
|
|
4072
|
+
});
|
|
4073
|
+
return out;
|
|
4074
|
+
}
|
|
4075
|
+
/**
|
|
4076
|
+
* Highlight — marks the part of a string the reader searched for.
|
|
4077
|
+
*
|
|
4078
|
+
* Uses a real `<mark>`, so the match is carried by semantics rather than by
|
|
4079
|
+
* colour alone and survives a high-contrast theme. Terms are matched longest
|
|
4080
|
+
* first, so overlapping terms produce whole marks instead of fragments.
|
|
4081
|
+
*
|
|
4082
|
+
* @example
|
|
4083
|
+
* ```tsx
|
|
4084
|
+
* <Highlight text={row.message} search={query} />
|
|
4085
|
+
* ```
|
|
4086
|
+
*/
|
|
4087
|
+
function Highlight({ text, search, caseSensitive = false, firstOnly = false, className, markClassName }) {
|
|
4088
|
+
const segments = segment(text, Array.isArray(search) ? search : [search], caseSensitive, firstOnly);
|
|
4089
|
+
return /* @__PURE__ */ jsx("span", {
|
|
4090
|
+
className,
|
|
4091
|
+
"data-opt-id": "448TR",
|
|
4092
|
+
"data-opt-slug": "highlight.Highlight",
|
|
4093
|
+
children: segments.map((part, index) => part.hit ? /* @__PURE__ */ jsx("mark", {
|
|
4094
|
+
className: cn("bg-warning-subtle text-text-primary rounded-[2px] px-0.5 font-medium", markClassName),
|
|
4095
|
+
children: part.text
|
|
4096
|
+
}, index) : /* @__PURE__ */ jsx("span", { children: part.text }, index))
|
|
4097
|
+
});
|
|
4098
|
+
}
|
|
4099
|
+
//#endregion
|
|
4100
|
+
export { ToolbarContainer$1 as $, Spinner as $t, FormSelectPopover as A, OPT_INPUT as An, DialogPanel$1 as At, DEFAULT_PRESETS as B, OPT_TEXT_PRIMARY as Bn, TabsRoot$1 as Bt, FormRadio$1 as C, OPT_DOT_GRAY as Cn, DialogBody as Ct, FormRoot$1 as D, OPT_FOCUS as Dn, DialogFooter as Dt, FormReset$1 as E, OPT_DOT_YELLOW as En, DialogDismiss$1 as Et, FormTagInput as F, OPT_TABLE_ROW_ACTIVE as Fn, SelectRoot$1 as Ft, ColorPicker as G, _objectWithoutProperties as Gn, CompositeItem as Gt, TagInput as H, OPT_TEXT_TERTIARY as Hn, DisclosureRoot$1 as Ht, FormTextarea as I, OPT_TD as In, SelectTrigger$1 as It, PopoverRoot$1 as J, CompositeZone as Jt, PopoverClose$1 as K, Kbd as Kn, CompositeProvider as Kt, useFieldValue as L, OPT_TD_MUTED as Ln, Tab$1 as Lt, FormStarRating as M, OPT_ITEM_BASE as Mn, SelectItem$1 as Mt, FormSubmit$1 as N, OPT_SURFACE as Nn, SelectLabel$1 as Nt, FormSelect as O, OPT_FOCUS_VISIBLE as On, DialogHeader as Ot, FormSwitch$1 as P, OPT_SURFACE_POPOVER as Pn, SelectPopover$1 as Pt, ToolbarButton$1 as Q, Alert as Qt, useFormContext as R, OPT_TEXTAREA_SIZE as Rn, TabList$1 as Rt, FormPush$1 as S, OPT_DIVIDER as Sn, AlertDialogPanel$1 as St, FormRemove$1 as T, OPT_DOT_RED as Tn, DialogDisclosure$1 as Tt, IconPicker as U, OPT_TH as Un, DisclosureTrigger$1 as Ut, DateRangePicker as V, OPT_TEXT_SECONDARY as Vn, DisclosureContent$1 as Vt, getIconRegistryEntry as W, _objectSpread2 as Wn, Composite as Wt, Slider as X, Input as Xt, PopoverTrigger$1 as Y, StarRating as Yt, NumberInput as Z, useInputId as Zt, FormIconPicker as _, OPT_BADGE_RED as _n, ComboboxGroupLabel$1 as _t, Pagination as a, koStarRatingLabels as an, MenuButtonArrow$1 as at, FormNumberInput as b, OPT_DISCLOSURE_CONTENT as bn, ComboboxPopover$1 as bt, FormCheckbox$1 as c, FieldMessages as cn, MenuItemRadio$1 as ct, FormDateRangePicker as d, OPT_ACTIVE_ITEM as dn, MenuSeparator$1 as dt, Badge as en, ToolbarRoot$1 as et, FormDescription$1 as f, OPT_ANIMATE_DRAWER as fn, MenuTrigger$1 as ft, FormGroupLabel$1 as g, OPT_BADGE_NEUTRAL as gn, ComboboxGroup$1 as gt, FormGroup$1 as h, OPT_BADGE_GREEN as hn, ComboboxEmpty as ht, resolveFieldType as i, koComboboxLabels as in, TooltipProvider$1 as it, FormSlider as j, OPT_INPUT_ERROR as jn, DialogRoot$1 as jt, FormSelectItem as k, OPT_HOVER_ITEM as kn, DialogHeading$1 as kt, FormColorPicker as l, RequiredMark as ln, MenuPopover$1 as lt, FormField$1 as m, OPT_BADGE_BLUE as mn, MenubarRoot$1 as mt, FIELD_TYPE_TOKENS as n, Button as nn, Tooltip$1 as nt, Checkbox as o, StatCard as on, MenuItem$1 as ot, FormError$1 as p, OPT_ANIMATE_ENTER_EXIT as pn, MenubarContainer$1 as pt, PopoverContent$1 as q, cn as qn, CompositeRow as qt, FieldToken as r, koBreadcrumbLabels as rn, TooltipAnchor$1 as rt, CheckboxGroup as s, useControlledState as sn, MenuItemCheckbox$1 as st, Highlight as t, EmptyState as tn, ToolbarSeparator$1 as tt, FormControl$1 as u, getDescribedBy as un, MenuRoot$1 as ut, FormInput$1 as v, OPT_BADGE_YELLOW as vn, ComboboxInput$1 as vt, FormRadioGroup$1 as w, OPT_DOT_GREEN as wn, DialogDescription$1 as wt, FormProvider$1 as x, OPT_DISCLOSURE_TRIGGER as xn, ComboboxRoot$1 as xt, FormLabel$1 as y, OPT_BORDER as yn, ComboboxItem$1 as yt, useFormStore as z, OPT_TEXT_LABEL as zn, TabPanel$1 as zt };
|
|
3849
4101
|
|
|
3850
|
-
//# sourceMappingURL=
|
|
4102
|
+
//# sourceMappingURL=highlight-C2sfnJN8.js.map
|