@telicent-oss/ds 4.3.0 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/export.d.ts CHANGED
@@ -6,6 +6,7 @@ import { AccordionProps } from '@mui/material/Accordion';
6
6
  import { AccordionSummaryClasses } from '@mui/material';
7
7
  import { AccordionSummaryProps } from '@mui/material/AccordionSummary';
8
8
  import { AccordionSummaryProps as AccordionSummaryProps_2 } from '@mui/material';
9
+ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
9
10
  import { default as Alert } from '@mui/material/Alert';
10
11
  import { AlertClasses } from '@mui/material';
11
12
  import { AlertColor } from '@mui/material/Alert';
@@ -67,11 +68,13 @@ import { closeSnackbar } from 'notistack';
67
68
  import { CollapseClasses } from '@mui/material';
68
69
  import { CollapseProps } from '@mui/material';
69
70
  import { CommonProps } from '@mui/material/OverridableComponent';
71
+ import { ComponentProps } from 'react';
70
72
  import { ComponentsProps } from '@mui/material';
71
73
  import { ContainerClasses } from '@mui/material';
72
74
  import { ContainerProps } from '@mui/material';
73
75
  import { Context } from 'react';
74
76
  import { Coordinate } from 'ol/coordinate';
77
+ import { DataGrid as DataGrid_2 } from '@mui/x-data-grid';
75
78
  import { DatePickerProps as DatePickerProps_2 } from '@mui/x-date-pickers/DatePicker';
76
79
  import { DateTimePickerProps as DateTimePickerProps_2 } from '@mui/x-date-pickers/DateTimePicker';
77
80
  import { Dayjs } from 'dayjs';
@@ -130,8 +133,13 @@ import { ForwardRefExoticComponent } from 'react';
130
133
  import type * as GeoJSON_2 from 'geojson';
131
134
  import { Grid2Props } from '@mui/material';
132
135
  import { GridClasses } from '@mui/material';
136
+ import { GridClasses as GridClasses_2 } from '@mui/x-data-grid';
137
+ import { GridColDef } from '@mui/x-data-grid';
133
138
  import { GridProps } from '@mui/material';
134
139
  import { GridProps as GridProps_2 } from '@mui/material/Grid';
140
+ import { GridRenderCellParams } from '@mui/x-data-grid';
141
+ import { GridRowParams } from '@mui/x-data-grid';
142
+ import { GridSortModel } from '@mui/x-data-grid';
135
143
  import { HTMLAttributes } from 'react';
136
144
  import { IconButtonProps } from '@mui/material/IconButton';
137
145
  import { IconButtonTypeMap } from '@mui/material';
@@ -184,6 +192,7 @@ import { ListProps } from '@mui/material';
184
192
  import { ListProps as ListProps_2 } from '@mui/material/List';
185
193
  import { ListSubheaderClasses } from '@mui/material';
186
194
  import { ListSubheaderProps } from '@mui/material';
195
+ import { LocalizationProvider as LocalizationProvider_2 } from '@mui/x-date-pickers/LocalizationProvider';
187
196
  import { LocationOn as LocationOnIcon } from '@telicent-oss/mui-icons-material';
188
197
  import { Map as Map_2 } from 'ol';
189
198
  import { MenuClasses } from '@mui/material';
@@ -224,8 +233,10 @@ import { PropsWithChildren } from 'react';
224
233
  import { QueryClient } from '@tanstack/react-query';
225
234
  import { QueryKey } from '@tanstack/react-query';
226
235
  import { RadioClasses } from '@mui/material';
227
- import { RadioGroupProps } from '@mui/material';
228
- import { RadioProps } from '@mui/material';
236
+ import { RadioGroupProps } from '@mui/material/RadioGroup';
237
+ import { RadioGroupProps as RadioGroupProps_2 } from '@mui/material';
238
+ import { RadioProps as RadioProps_2 } from '@mui/material';
239
+ import { RadioProps as RadioProps_3 } from '@mui/material/Radio';
229
240
  import { RatingClasses } from '@mui/material';
230
241
  import { RatingProps } from '@mui/material';
231
242
  import * as React_2 from 'react';
@@ -283,7 +294,6 @@ import { SwitchProps } from '@mui/material';
283
294
  import { SwitchProps as SwitchProps_3 } from '@mui/material/Switch';
284
295
  import { SxProps } from '@mui/material';
285
296
  import { SxProps as SxProps_2 } from '@mui/material/styles';
286
- import { TabClasses } from '@mui/material';
287
297
  import { TableBodyProps } from '@mui/material/TableBody';
288
298
  import { TableBodyProps as TableBodyProps_2 } from '@mui/material';
289
299
  import { TableCellClasses } from '@mui/material';
@@ -303,8 +313,8 @@ import { TableRowProps } from '@mui/material/TableRow';
303
313
  import { TableRowProps as TableRowProps_2 } from '@mui/material';
304
314
  import { TableSortLabelClasses } from '@mui/material';
305
315
  import { TableSortLabelProps } from '@mui/material';
306
- import { TabProps as TabProps_2 } from '@mui/material';
307
- import { TabProps as TabProps_3 } from '@mui/material/Tab';
316
+ import { TabOwnProps } from '@mui/material';
317
+ import { TabProps as TabProps_2 } from '@mui/material/Tab';
308
318
  import { TabsOwnProps } from '@mui/material';
309
319
  import { TabsProps as TabsProps_2 } from '@mui/material/Tabs';
310
320
  import { TextFieldProps } from '@mui/material';
@@ -312,8 +322,8 @@ import { Theme } from '@mui/material';
312
322
  import { Theme as Theme_2 } from '@mui/material/styles';
313
323
  import { Theme as Theme_3 } from '@emotion/react';
314
324
  import { ToggleButtonClasses } from '@mui/material';
315
- import { ToggleButtonGroupClasses } from '@mui/material';
316
- import { ToggleButtonGroupProps } from '@mui/material';
325
+ import { ToggleButtonGroupProps as ToggleButtonGroupProps_2 } from '@mui/material';
326
+ import { ToggleButtonGroupProps as ToggleButtonGroupProps_3 } from '@mui/material/ToggleButtonGroup';
317
327
  import { ToggleButtonProps } from '@mui/material/ToggleButton';
318
328
  import { ToggleButtonProps as ToggleButtonProps_2 } from '@mui/material';
319
329
  import { ToolbarClasses } from '@mui/material';
@@ -341,6 +351,14 @@ declare type AccessibleName = {
341
351
  "aria-label"?: never;
342
352
  };
343
353
 
354
+ declare type AccessibleName_2 = {
355
+ "aria-label": string;
356
+ "aria-labelledby"?: never;
357
+ } | {
358
+ "aria-labelledby": string;
359
+ "aria-label"?: never;
360
+ };
361
+
344
362
  export declare const Accordion: default_3.FC<AccordionProps>;
345
363
 
346
364
  export declare const AccordionDetails: default_3.FC<AccordionDetailsProps>;
@@ -353,6 +371,8 @@ export declare const AccordionSummary: default_3.FC<AccordionSummaryProps>;
353
371
 
354
372
  export { AccordionSummaryProps }
355
373
 
374
+ export { AdapterDayjs }
375
+
356
376
  export { Alert }
357
377
 
358
378
  export { AlertColor }
@@ -800,6 +820,33 @@ declare interface CustomCheckboxProps extends CheckboxProps {
800
820
  required?: boolean;
801
821
  }
802
822
 
823
+ /**
824
+ * Telicent-themed `DataGrid` — a MUI `x-data-grid` wrapped in a nested
825
+ * `ThemeProvider` that extends the outer DS theme with Telicent's grid
826
+ * styling. Palette-token-driven, so light/dark theme switching Just Works.
827
+ *
828
+ * Telicent defaults baked in: `autoHeight`, `disableColumnResize`,
829
+ * `disableRowSelectionOnClick`, `disableColumnMenu`, `pagination: true`,
830
+ * `pageSizeOptions: [10, 25, 50]`, initial page size 10.
831
+ *
832
+ * When `onRowClick` is set, DS opts row hover (`palette.action.hover`) and
833
+ * the pointer cursor back in — the baked theme suppresses row hover by
834
+ * default so non-interactive grids don't flicker, so interactive grids need
835
+ * the opt-in. Callsite `sx` wins (spread last) if a consumer wants a
836
+ * different hover colour or no hover.
837
+ *
838
+ * Uses `useTheme()` rather than the function form `theme={(outer) => ...}`
839
+ * so the component tolerates being rendered without an outer `ThemeProvider`
840
+ * — `useTheme()` falls back to MUI's `defaultTheme`, which has a full
841
+ * palette. The function form would receive `{}` and crash on
842
+ * `palette.background.default`.
843
+ */
844
+ export declare const DataGrid: FC<DataGridProps>;
845
+
846
+ export declare type DataGridProps = {
847
+ initialSort?: GridSortModel;
848
+ } & ComponentProps<typeof DataGrid_2>;
849
+
803
850
  export declare const DataServiceIcon: default_3.FC<SvgIconProps_2>;
804
851
 
805
852
  export declare const DataSetIcon: default_3.FC<SvgIconProps_2>;
@@ -1119,10 +1166,10 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
1119
1166
  };
1120
1167
  MuiMenuItem: {
1121
1168
  styleOverrides: {
1122
- root: ({ theme }: MenuItemOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "className" | "style" | "classes" | "children" | "sx" | "autoFocus" | "tabIndex" | "disableGutters" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "dense" | "divider" | "selected"> & {
1169
+ root: ({ theme }: MenuItemOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "className" | "style" | "classes" | "children" | "sx" | "autoFocus" | "tabIndex" | "disableGutters" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "selected" | "dense" | "divider"> & {
1123
1170
  component?: ElementType;
1124
1171
  } & Record<string, unknown> & {
1125
- ownerState: MenuItemOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "className" | "style" | "classes" | "children" | "sx" | "autoFocus" | "tabIndex" | "disableGutters" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "dense" | "divider" | "selected"> & {
1172
+ ownerState: MenuItemOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "disabled" | "className" | "style" | "classes" | "children" | "sx" | "autoFocus" | "tabIndex" | "disableGutters" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "selected" | "dense" | "divider"> & {
1126
1173
  component?: ElementType;
1127
1174
  } & Record<string, unknown>;
1128
1175
  } & {
@@ -1225,6 +1272,64 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
1225
1272
  MuiCssBaseline: {
1226
1273
  styleOverrides: (theme: Omit<Theme, "components">) => string;
1227
1274
  };
1275
+ MuiToggleButtonGroup: {
1276
+ styleOverrides: {
1277
+ root: ({ theme }: ToggleButtonGroupProps_2 & Record<string, unknown> & {
1278
+ ownerState: ToggleButtonGroupProps_2 & Record<string, unknown>;
1279
+ } & {
1280
+ theme: Omit<Theme, "components">;
1281
+ }) => {
1282
+ [x: string]: {
1283
+ width: string;
1284
+ border: string;
1285
+ borderRadius: number;
1286
+ backgroundColor: string;
1287
+ padding: string;
1288
+ gap: string;
1289
+ margin?: undefined;
1290
+ minHeight?: undefined;
1291
+ height?: undefined;
1292
+ minWidth?: undefined;
1293
+ textTransform?: undefined;
1294
+ whiteSpace?: undefined;
1295
+ fontSize?: undefined;
1296
+ color?: undefined;
1297
+ "&.Mui-selected, &.Mui-selected:hover"?: undefined;
1298
+ "& .MuiTouchRipple-root"?: undefined;
1299
+ } | {
1300
+ border: number;
1301
+ borderRadius: number;
1302
+ margin: number;
1303
+ minHeight: number;
1304
+ height: number;
1305
+ minWidth: string;
1306
+ padding: string;
1307
+ textTransform: string;
1308
+ whiteSpace: string;
1309
+ fontSize: number;
1310
+ color: string;
1311
+ "&.Mui-selected, &.Mui-selected:hover": {
1312
+ backgroundColor: string;
1313
+ color: string;
1314
+ };
1315
+ "& .MuiTouchRipple-root": {
1316
+ display: string;
1317
+ };
1318
+ width?: undefined;
1319
+ backgroundColor?: undefined;
1320
+ gap?: undefined;
1321
+ };
1322
+ "&.TelicentPillGroup": {
1323
+ width: string;
1324
+ border: string;
1325
+ borderRadius: number;
1326
+ backgroundColor: string;
1327
+ padding: string;
1328
+ gap: string;
1329
+ };
1330
+ };
1331
+ };
1332
+ };
1228
1333
  MuiTabs: {
1229
1334
  styleOverrides: {
1230
1335
  root: ({ theme }: TabsOwnProps & CommonProps & Omit<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "value" | "className" | "style" | "classes" | "children" | "sx" | "variant" | "slots" | "slotProps" | "aria-label" | "aria-labelledby" | "onChange" | "action" | "centered" | "scrollButtons" | "allowScrollButtonsMobile" | "indicatorColor" | "orientation" | "ScrollButtonComponent" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
@@ -1241,6 +1346,52 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
1241
1346
  borderBottom: string;
1242
1347
  borderInlineEnd: string;
1243
1348
  };
1349
+ "&.TelicentPillGroup": {
1350
+ width: string;
1351
+ minHeight: string;
1352
+ border: string;
1353
+ borderRadius: number;
1354
+ backgroundColor: string;
1355
+ padding: string;
1356
+ "& .MuiTabs-indicator": {
1357
+ display: string;
1358
+ };
1359
+ "& .MuiTabs-flexContainer": {
1360
+ gap: string;
1361
+ };
1362
+ };
1363
+ };
1364
+ };
1365
+ };
1366
+ MuiTab: {
1367
+ styleOverrides: {
1368
+ root: ({ theme }: TabOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "value" | "disabled" | "className" | "style" | "classes" | "children" | "sx" | "label" | "tabIndex" | "icon" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
1369
+ component?: ElementType;
1370
+ } & Record<string, unknown> & {
1371
+ ownerState: TabOwnProps & Omit<ButtonBaseOwnProps, "classes"> & CommonProps & Omit<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "value" | "disabled" | "className" | "style" | "classes" | "children" | "sx" | "label" | "tabIndex" | "icon" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
1372
+ component?: ElementType;
1373
+ } & Record<string, unknown>;
1374
+ } & {
1375
+ theme: Omit<Theme, "components">;
1376
+ }) => {
1377
+ ".TelicentPillGroup &": {
1378
+ minHeight: number;
1379
+ height: number;
1380
+ minWidth: string;
1381
+ padding: string;
1382
+ textTransform: string;
1383
+ borderRadius: number;
1384
+ whiteSpace: string;
1385
+ fontSize: number;
1386
+ color: string;
1387
+ "&.Mui-selected": {
1388
+ backgroundColor: string;
1389
+ color: string;
1390
+ };
1391
+ "& .MuiTouchRipple-root": {
1392
+ display: string;
1393
+ };
1394
+ };
1244
1395
  };
1245
1396
  };
1246
1397
  };
@@ -2155,8 +2306,8 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2155
2306
  defaultProps?: ComponentsProps["MuiRadio"];
2156
2307
  styleOverrides?: Partial<OverridesStyleRules<keyof RadioClasses, "MuiRadio", Omit<Theme, "components">>> | undefined;
2157
2308
  variants?: {
2158
- props: Partial<RadioProps> | ((props: Partial<RadioProps> & {
2159
- ownerState: Partial<RadioProps>;
2309
+ props: Partial<RadioProps_2> | ((props: Partial<RadioProps_2> & {
2310
+ ownerState: Partial<RadioProps_2>;
2160
2311
  }) => boolean);
2161
2312
  style: Interpolation< {
2162
2313
  theme: Omit<Theme, "components">;
@@ -2167,8 +2318,8 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2167
2318
  defaultProps?: ComponentsProps["MuiRadioGroup"];
2168
2319
  styleOverrides?: Partial<OverridesStyleRules<keyof FormGroupClasses, "MuiRadioGroup", Omit<Theme, "components">>> | undefined;
2169
2320
  variants?: {
2170
- props: Partial<RadioGroupProps> | ((props: Partial<RadioGroupProps> & {
2171
- ownerState: Partial<RadioGroupProps>;
2321
+ props: Partial<RadioGroupProps_2> | ((props: Partial<RadioGroupProps_2> & {
2322
+ ownerState: Partial<RadioGroupProps_2>;
2172
2323
  }) => boolean);
2173
2324
  style: Interpolation< {
2174
2325
  theme: Omit<Theme, "components">;
@@ -2405,7 +2556,7 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2405
2556
  } | undefined;
2406
2557
  MuiSwipeableDrawer?: {
2407
2558
  defaultProps?: ComponentsProps["MuiSwipeableDrawer"];
2408
- };
2559
+ } | undefined;
2409
2560
  MuiSwitch?: {
2410
2561
  defaultProps?: ComponentsProps["MuiSwitch"];
2411
2562
  styleOverrides?: Partial<OverridesStyleRules<keyof SwitchClasses, "MuiSwitch", Omit<Theme, "components">>> | undefined;
@@ -2418,18 +2569,6 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2418
2569
  }>;
2419
2570
  }[] | undefined;
2420
2571
  } | undefined;
2421
- MuiTab?: {
2422
- defaultProps?: ComponentsProps["MuiTab"];
2423
- styleOverrides?: Partial<OverridesStyleRules<keyof TabClasses, "MuiTab", Omit<Theme, "components">>> | undefined;
2424
- variants?: {
2425
- props: Partial<TabProps_2> | ((props: Partial<TabProps_2> & {
2426
- ownerState: Partial<TabProps_2>;
2427
- }) => boolean);
2428
- style: Interpolation< {
2429
- theme: Omit<Theme, "components">;
2430
- }>;
2431
- }[] | undefined;
2432
- } | undefined;
2433
2572
  MuiTable?: {
2434
2573
  defaultProps?: ComponentsProps["MuiTable"];
2435
2574
  styleOverrides?: Partial<OverridesStyleRules<keyof TableClasses, "MuiTable", Omit<Theme, "components">>> | undefined;
@@ -2562,18 +2701,6 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2562
2701
  }>;
2563
2702
  }[] | undefined;
2564
2703
  } | undefined;
2565
- MuiToggleButtonGroup?: {
2566
- defaultProps?: ComponentsProps["MuiToggleButtonGroup"];
2567
- styleOverrides?: Partial<OverridesStyleRules<keyof ToggleButtonGroupClasses, "MuiToggleButtonGroup", Omit<Theme, "components">>> | undefined;
2568
- variants?: {
2569
- props: Partial<ToggleButtonGroupProps> | ((props: Partial<ToggleButtonGroupProps> & {
2570
- ownerState: Partial<ToggleButtonGroupProps>;
2571
- }) => boolean);
2572
- style: Interpolation< {
2573
- theme: Omit<Theme, "components">;
2574
- }>;
2575
- }[] | undefined;
2576
- } | undefined;
2577
2704
  MuiToolbar?: {
2578
2705
  defaultProps?: ComponentsProps["MuiToolbar"];
2579
2706
  styleOverrides?: Partial<OverridesStyleRules<keyof ToolbarClasses, "MuiToolbar", Omit<Theme, "components">>> | undefined;
@@ -2624,7 +2751,11 @@ declare const generateComponentOverrides: (uiTheme: UITheme) => {
2624
2751
  } | undefined;
2625
2752
  MuiUseMediaQuery?: {
2626
2753
  defaultProps?: ComponentsProps["MuiUseMediaQuery"];
2627
- };
2754
+ } | undefined;
2755
+ MuiDataGrid?: {
2756
+ defaultProps?: ComponentsProps["MuiDataGrid"];
2757
+ styleOverrides?: Partial<OverridesStyleRules<keyof GridClasses_2, "MuiDataGrid", Omit<Theme, "components">>> | undefined;
2758
+ } | undefined;
2628
2759
  };
2629
2760
 
2630
2761
  export declare const getCodec: (mode?: ENCODE_SEARCH_PARAMS_MODES_Type) => Codec;
@@ -2637,8 +2768,16 @@ export declare const GRAPH_APP: {
2637
2768
  };
2638
2769
  };
2639
2770
 
2771
+ export { GridColDef }
2772
+
2640
2773
  export declare const GridIcon: default_3.FC<SvgIconProps>;
2641
2774
 
2775
+ export { GridRenderCellParams }
2776
+
2777
+ export { GridRowParams }
2778
+
2779
+ export { GridSortModel }
2780
+
2642
2781
  export declare const H1: default_3.FC<HeadingProps>;
2643
2782
 
2644
2783
  export declare const H2: default_3.FC<HeadingProps>;
@@ -2771,6 +2910,12 @@ export declare const ListItemText: default_3.FC<ListItemTextProps_2>;
2771
2910
  declare interface ListItemTextProps_2 extends Omit<ListItemTextProps_3, "primaryTypographyProps" | "secondaryTypographyProps" | "sx"> {
2772
2911
  }
2773
2912
 
2913
+ export declare const LocalizationProvider: default_3.FC<LocalizationProviderProps>;
2914
+
2915
+ export declare type LocalizationProviderProps = Omit<MuiProps, "dateAdapter"> & {
2916
+ dateAdapter?: MuiProps["dateAdapter"];
2917
+ };
2918
+
2774
2919
  export { LocationOnIcon }
2775
2920
 
2776
2921
  /**
@@ -3031,6 +3176,8 @@ declare type MUIAutocompleteProps<Option> = AutocompleteProps<Option, false, fal
3031
3176
 
3032
3177
  declare type MuiMultiplePassthrough = Omit<AutocompleteProps_2<Option_2, true, false, false>, "options" | "value" | "onChange" | "renderInput" | "multiple" | "disabled" | "size">;
3033
3178
 
3179
+ declare type MuiProps = ComponentProps<typeof LocalizationProvider_2>;
3180
+
3034
3181
  declare type MuiSinglePassthrough = Omit<AutocompleteProps_2<Option_2, false, false, false>, "options" | "value" | "onChange" | "renderInput" | "multiple" | "disabled" | "size">;
3035
3182
 
3036
3183
  declare type MultipleAutoCompleteProps = MultipleProps & MuiMultiplePassthrough;
@@ -3254,6 +3401,17 @@ declare interface ProgressProps extends Omit<CircularProgressProps_2, "classes"
3254
3401
 
3255
3402
  export declare const QuestionIcon: default_3.FC<SvgIconProps>;
3256
3403
 
3404
+ export declare const Radio: ForwardRefExoticComponent<Omit<RadioProps, "ref"> & RefAttributes<HTMLButtonElement>>;
3405
+
3406
+ export declare const RadioGroup: default_3.FC<RadioGroupProps>;
3407
+
3408
+ export { RadioGroupProps }
3409
+
3410
+ export declare type RadioProps = Omit<RadioProps_3, "color"> & {
3411
+ label?: React.ReactNode;
3412
+ labelPlacement?: "end" | "start" | "top" | "bottom";
3413
+ };
3414
+
3257
3415
  export declare const RecentSearches: default_3.FC<RecentSearchProps>;
3258
3416
 
3259
3417
  declare type RecentSearchProps = Partial<{
@@ -3753,7 +3911,7 @@ export declare type TabPanelProps = Omit<default_3.HTMLAttributes<HTMLDivElement
3753
3911
  keepMounted?: boolean;
3754
3912
  };
3755
3913
 
3756
- export declare type TabProps = Omit<TabProps_3, "value"> & {
3914
+ export declare type TabProps = Omit<TabProps_2, "value"> & {
3757
3915
  /**
3758
3916
  * Required, where MUI falls back to the child's index, and narrowed to
3759
3917
  * `string | number` because it becomes part of a DOM id.
@@ -3771,6 +3929,15 @@ export declare const Tabs: default_3.ForwardRefExoticComponent<(Omit<Omit<TabsPr
3771
3929
  * page, and repeated on this group's `TabPanel`s.
3772
3930
  */
3773
3931
  idPrefix: string;
3932
+ /**
3933
+ * Render as a pill group: a bordered well hugging its tabs, the
3934
+ * selected tab filled, and no underline indicator.
3935
+ *
3936
+ * A boolean rather than a `variant` value — MUI's `Tabs` already owns
3937
+ * `variant` for `standard | scrollable | fullWidth`, and MUI v5's
3938
+ * theme `variants` support does not cover `MuiTabs`.
3939
+ */
3940
+ pill?: boolean;
3774
3941
  }, "ref"> | Omit<Omit<TabsProps_2, "aria-label" | "aria-labelledby"> & {
3775
3942
  "aria-labelledby": string;
3776
3943
  "aria-label"?: never;
@@ -3781,15 +3948,33 @@ export declare const Tabs: default_3.ForwardRefExoticComponent<(Omit<Omit<TabsPr
3781
3948
  * page, and repeated on this group's `TabPanel`s.
3782
3949
  */
3783
3950
  idPrefix: string;
3951
+ /**
3952
+ * Render as a pill group: a bordered well hugging its tabs, the
3953
+ * selected tab filled, and no underline indicator.
3954
+ *
3955
+ * A boolean rather than a `variant` value — MUI's `Tabs` already owns
3956
+ * `variant` for `standard | scrollable | fullWidth`, and MUI v5's
3957
+ * theme `variants` support does not cover `MuiTabs`.
3958
+ */
3959
+ pill?: boolean;
3784
3960
  }, "ref">) & default_3.RefAttributes<HTMLDivElement>>;
3785
3961
 
3786
- export declare type TabsProps = Omit<TabsProps_2, "aria-label" | "aria-labelledby"> & AccessibleName & {
3962
+ export declare type TabsProps = Omit<TabsProps_2, "aria-label" | "aria-labelledby"> & AccessibleName_2 & {
3787
3963
  /**
3788
3964
  * Namespace for the `id` / `aria-controls` / `aria-labelledby` triple the
3789
3965
  * DS wires between each `Tab` and its `TabPanel`. Unique per tab set on the
3790
3966
  * page, and repeated on this group's `TabPanel`s.
3791
3967
  */
3792
3968
  idPrefix: string;
3969
+ /**
3970
+ * Render as a pill group: a bordered well hugging its tabs, the
3971
+ * selected tab filled, and no underline indicator.
3972
+ *
3973
+ * A boolean rather than a `variant` value — MUI's `Tabs` already owns
3974
+ * `variant` for `standard | scrollable | fullWidth`, and MUI v5's
3975
+ * theme `variants` support does not cover `MuiTabs`.
3976
+ */
3977
+ pill?: boolean;
3793
3978
  };
3794
3979
 
3795
3980
  declare type TabValue = string | number;
@@ -3858,6 +4043,37 @@ declare interface TitleAndContentProps {
3858
4043
 
3859
4044
  export declare const ToggleButton: default_3.FC<ToggleButtonProps>;
3860
4045
 
4046
+ export declare const ToggleButtonGroup: default_3.ForwardRefExoticComponent<(Omit<Omit<ToggleButtonGroupProps_3, "aria-label" | "aria-labelledby"> & {
4047
+ "aria-label": string;
4048
+ "aria-labelledby"?: never;
4049
+ } & {
4050
+ /**
4051
+ * Render as a pill group: a bordered well hugging its buttons, with
4052
+ * the selected one filled. Without it the group renders MUI's
4053
+ * default squared-off segments.
4054
+ */
4055
+ pill?: boolean;
4056
+ }, "ref"> | Omit<Omit<ToggleButtonGroupProps_3, "aria-label" | "aria-labelledby"> & {
4057
+ "aria-labelledby": string;
4058
+ "aria-label"?: never;
4059
+ } & {
4060
+ /**
4061
+ * Render as a pill group: a bordered well hugging its buttons, with
4062
+ * the selected one filled. Without it the group renders MUI's
4063
+ * default squared-off segments.
4064
+ */
4065
+ pill?: boolean;
4066
+ }, "ref">) & default_3.RefAttributes<HTMLDivElement>>;
4067
+
4068
+ export declare type ToggleButtonGroupProps = Omit<ToggleButtonGroupProps_3, "aria-label" | "aria-labelledby"> & AccessibleName & {
4069
+ /**
4070
+ * Render as a pill group: a bordered well hugging its buttons, with
4071
+ * the selected one filled. Without it the group renders MUI's
4072
+ * default squared-off segments.
4073
+ */
4074
+ pill?: boolean;
4075
+ };
4076
+
3861
4077
  export { ToggleButtonProps }
3862
4078
 
3863
4079
  export declare type ToggleFn = (id: string) => void;
package/dist/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Telicent DS Component Manifest
2
2
 
3
- **VERSION:** This file documents @telicent-oss/ds v4.3.0. It shipped inside that package, so it matches the version installed in your project. If that package was built locally rather than installed from npm, the code may be newer than v4.3.0.
3
+ **VERSION:** This file documents @telicent-oss/ds v4.4.1. It shipped inside that package, so it matches the version installed in your project. If that package was built locally rather than installed from npm, the code may be newer than v4.4.1.
4
4
 
5
5
  > `@telicent-oss/ds` is Telicent's MUI-based React component library. This file is the complete, self-contained reference: setup, theming, every exported component, and copy-paste recipes. An agent that fetches it has what it needs to build a Telicent app UI without reading the source.
6
6
 
@@ -310,12 +310,13 @@ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/surf
310
310
  Demonstrated states:
311
311
  - Example
312
312
 
313
- * **`Tabs` / `Tab` / `TabPanel`**: Switch between views of the same region. Give `Tabs` an `idPrefix` and an accessible name (the type requires one of `aria-label` / `aria-labelledby`), give each `Tab` an explicit `value`, and repeat the same `idPrefix` on each `TabPanel` — the DS derives every `id`, `aria-controls`, and `aria-labelledby` from those two things, so there is no `a11yProps` helper to write. Panels unmount their children when hidden; pass `keepMounted` to preserve form state across switches. The divider under the tab bar comes from the theme — do not wrap `Tabs` in a bordered `Box`. Padding inside a panel is yours to set.
313
+ * **`Tabs` / `Tab` / `TabPanel`**: Switch between views of the same region. Give `Tabs` an `idPrefix` and an accessible name (the type requires one of `aria-label` / `aria-labelledby`), give each `Tab` an explicit `value`, and repeat the same `idPrefix` on each `TabPanel` — the DS derives every `id`, `aria-controls`, and `aria-labelledby` from those two things, so there is no `a11yProps` helper to write. Panels unmount their children when hidden; pass `keepMounted` to preserve form state across switches. The divider under the tab bar comes from the theme — do not wrap `Tabs` in a bordered `Box`. Padding inside a panel is yours to set. Pass `pill` for the Telicent pill treatment (same shape as `ToggleButtonGroup`'s pill); the tablist role, roving tabindex and derived ids are unchanged.
314
314
  ```yaml
315
315
  Tabs:
316
316
  'aria-label': {type: 'string', required: false}
317
317
  'aria-labelledby': {type: 'string', required: false}
318
318
  idPrefix: {type: 'string', required: true}
319
+ pill: {type: 'boolean', required: false}
319
320
  ```
320
321
  ```yaml
321
322
  Tab:
@@ -338,6 +339,7 @@ Demonstrated states:
338
339
  - Scrollable
339
340
  - WithIcons
340
341
  - KeepMounted
342
+ - Pill
341
343
 
342
344
  ## 3. Inputs & Forms
343
345
  *Use these instead of standard `<input>`, `<select>`, or `<textarea>` tags. Ensure accessibility labels are passed.*
@@ -514,6 +516,41 @@ Demonstrated states:
514
516
  - Required — checked=false, id="switch-required", label="Required setting", required=true
515
517
  - NoLabel — checked=true, id="switch-no-label"
516
518
  - ExampleWithOnChange — disabled=false
519
+ * **`Radio` / `RadioGroup`**: Mutually-exclusive choice between several options (wraps MUI Radio / RadioGroup). `label` on `Radio` collapses the `FormControlLabel` wrap; `color="primary"` is baked (not overridable). Use `RadioGroup` with `value`/`onChange` to own the selection; use standalone `Radio` only when a `Switch` would be semantically wrong.
520
+ ```yaml
521
+ Radio:
522
+ label: {type: 'React.ReactNode', required: false}
523
+ labelPlacement: {type: '"bottom" | "top" | "end" | "start"', required: false}
524
+ ```
525
+ Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/inputs-radio--docs
526
+ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/inputs/Radio/Radio.stories.tsx
527
+
528
+ Demonstrated states:
529
+ - Default — id="radio-default", value="option-a"
530
+ - WithLabel — id="radio-with-label", value="option-a", label="Full backup", defaultChecked=true
531
+ - Disabled — id="radio-disabled", value="option-a", label="Not available", disabled=true
532
+ - InsideRadioGroup
533
+ Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/inputs-radiogroup--docs
534
+ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/inputs/RadioGroup/RadioGroup.stories.tsx
535
+
536
+ Demonstrated states:
537
+ - Column
538
+ - Row
539
+ * **`ToggleButtonGroup`**: Use for a small set of mutually exclusive views or modes where both options should stay visible. Pass `pill` for the Telicent pill treatment. Reach for `Tabs` instead when the buttons select a panel.
540
+ ```yaml
541
+ ToggleButtonGroup:
542
+ 'aria-label': {type: 'string', required: false}
543
+ 'aria-labelledby': {type: 'string', required: false}
544
+ pill: {type: 'boolean', required: false}
545
+ ```
546
+ Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/inputs-togglebuttongroup--docs
547
+ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/inputs/ToggleButtonGroup/ToggleButtonGroup.stories.tsx
548
+
549
+ Demonstrated states:
550
+ - Pill
551
+ - Default
552
+ - WithLabelledBy
553
+ - DeselectHazard
517
554
  * **`DatePicker` / `DateTimePicker`**: Use for any temporal inputs.
518
555
  ```yaml
519
556
  DatePicker:
@@ -522,10 +559,10 @@ DatePicker:
522
559
  fullWidth: {type: 'boolean', required: false}
523
560
  helperText: {type: 'string', required: false}
524
561
  label: {type: 'ReactNode & string', required: false}
525
- maxDate: {type: 'PickerValidDate', required: false}
526
- minDate: {type: 'PickerValidDate', required: false}
562
+ maxDate: {type: 'Dayjs', required: false}
563
+ minDate: {type: 'Dayjs', required: false}
527
564
  textFieldProps: {type: 'TextFieldProps', required: false}
528
- value: {type: 'Dayjs | null', required: true}
565
+ value: {type: 'Dayjs', required: true}
529
566
  ```
530
567
  ```yaml
531
568
  DateTimePicker:
@@ -533,8 +570,8 @@ DateTimePicker:
533
570
  errorMsg: {type: 'string', required: false}
534
571
  fullWidth: {type: 'boolean', required: false}
535
572
  helperText: {type: 'string', required: false}
536
- maxDateTime: {type: 'PickerValidDate', required: false}
537
- minDateTime: {type: 'PickerValidDate', required: false}
573
+ maxDateTime: {type: 'Dayjs', required: false}
574
+ minDateTime: {type: 'Dayjs', required: false}
538
575
  textFieldProps: {type: 'TextFieldProps', required: false}
539
576
  ```
540
577
  Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/inputs-datepicker--docs
@@ -551,6 +588,16 @@ Demonstrated states:
551
588
  - Default — label="Pick date & time"
552
589
  - ErrorState — label="Required field", error=true, errorMsg="Something went wrong", helperText="Date and time are required"
553
590
  - WithDateRestrictions — label="Restricted time range", helperText="Only available within the next 48 hours"
591
+ * **`LocalizationProvider` / `AdapterDayjs`**: Root-level provider for `DatePicker` / `DateTimePicker`. Mount once at the app root — the dayjs adapter is pre-wired, so a bare `<LocalizationProvider>` is enough. `AdapterDayjs` is re-exported for apps that want to pass it explicitly or use it outside the provider.
592
+ ```yaml
593
+ LocalizationProvider:
594
+ dateAdapter: {type: 'new (...args: any) => MuiPickersAdapter<unknown>', required: false}
595
+ ```
596
+ Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/inputs-localizationprovider--docs
597
+ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/inputs/LocalizationProvider/LocalizationProvider.stories.tsx
598
+
599
+ Demonstrated states:
600
+ - WrappingADatePicker
554
601
 
555
602
  ## 4. Data Display & Typography
556
603
  *Use these to render text and structured data.*
@@ -610,6 +657,21 @@ Demonstrated states:
610
657
  - Outlined — variant="outlined"
611
658
  - ClickableChips
612
659
  - DeletableChips
660
+ * **`DataGrid`**: Tabular data with pagination, sorting, and themed styling (wraps MUI X `DataGrid`). DS bakes `autoHeight`, `disableColumnResize`, `disableRowSelectionOnClick`, `disableColumnMenu`, `pagination`, `pageSizeOptions=[10, 25, 50]`, and initial `pageSize=10`. Row hover is suppressed by default; when `onRowClick` is set, the DS auto-opts `cursor: "pointer"` + `palette.action.hover` back in so interactive grids read as interactive with zero `sx` at the callsite. A nested `ThemeProvider` scopes the palette-driven grid overrides so Paper / MenuItem / IconButton / TablePagination styling inside the grid doesn't leak globally. DS re-exports `GridColDef`, `GridRenderCellParams`, `GridRowParams`, `GridSortModel`. `initialSort` is a DS convenience prop that maps to `initialState.sorting.sortModel`.
661
+ ```yaml
662
+ DataGrid:
663
+ initialSort: {type: 'GridSortModel', required: false}
664
+ ```
665
+ Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/data-display-datagrid--docs
666
+ Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/data-display/DataGrid/DataGrid.stories.tsx
667
+
668
+ Demonstrated states:
669
+ - Default — columns=basicColumns
670
+ - WithInitialSort — columns=basicColumns, initialSort=[…]
671
+ - WithCustomCellRenderer
672
+ - ClickableRows
673
+ - Loading — columns=basicColumns, loading=true
674
+ - Empty — rows=[…], columns=basicColumns
613
675
  * **`Divider`**: Use to separate content sections instead of `<hr>`.
614
676
  Live: https://telicent-oss.github.io/telicent-ds/?path=/docs/data-display-divider--docs
615
677
  Usage: https://github.com/telicent-oss/telicent-ds/blob/main/src/components/data-display/Divider/Divider.stories.tsx
@@ -944,4 +1006,4 @@ ThemeSwitchRow:
944
1006
  - Live examples (Storybook): https://telicent-oss.github.io/telicent-ds/
945
1007
  - Source and issues: https://github.com/telicent-oss/telicent-ds
946
1008
 
947
- This reference documents @telicent-oss/ds v4.3.0.
1009
+ This reference documents @telicent-oss/ds v4.4.1.