@gobolt/genesis 0.5.1 → 0.6.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.
@@ -1,7 +1,7 @@
1
1
  import { default as React, MouseEvent } from 'react';
2
2
  import { ButtonProps as AntButtonProperties } from 'antd/es/button';
3
3
  import { STATE } from '../../constants';
4
- type ButtonThemeType = "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon";
4
+ type ButtonThemeType = "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon" | "password";
5
5
  export interface ButtonProps extends Omit<AntButtonProperties, "type" | "size"> {
6
6
  onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
7
7
  children?: React.ReactNode;
@@ -1,7 +1,7 @@
1
1
  import { GenesisTheme } from '../../styles/theme/genesis-theme.types';
2
2
  interface StyledIconButtonProperties {
3
3
  theme?: GenesisTheme;
4
- $themeType?: "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon";
4
+ $themeType?: "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon" | "password";
5
5
  $state?: "active" | "hover" | "pressed" | "focus" | "disabled" | "selected";
6
6
  children?: React.ReactNode;
7
7
  $isIconButton?: boolean;
@@ -2,7 +2,7 @@ import { ButtonProps as AntButtonProperties } from 'antd/es/button';
2
2
  import { GenesisTheme } from '../../styles/theme/genesis-theme.types';
3
3
  interface StyledButtonProperties extends Omit<AntButtonProperties, "type" | "size"> {
4
4
  theme?: GenesisTheme;
5
- $themeType?: "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon";
5
+ $themeType?: "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon" | "password";
6
6
  $state?: "active" | "hover" | "pressed" | "focus" | "disabled" | "selected";
7
7
  children?: React.ReactNode;
8
8
  $isIconButton?: boolean;
@@ -8,6 +8,8 @@ export interface InputProps extends BaseInputProps {
8
8
  size?: "normal" | "small" | "large";
9
9
  onChange?: (actionEvent: InputEvent) => void;
10
10
  value?: string;
11
+ rest?: HTMLInputElement;
12
+ isPassword?: boolean;
11
13
  }
12
14
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<InputRef>>;
13
15
  export default Input;
@@ -0,0 +1,3 @@
1
+ export declare const StyledFormInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<Omit<import('..').InputProps & import('react').RefAttributes<import('rc-input').InputRef>, "ref"> & {
2
+ ref?: ((instance: import('rc-input').InputRef | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<import('rc-input').InputRef> | null | undefined;
3
+ }, never>> & string & Omit<import('react').ForwardRefExoticComponent<import('..').InputProps & import('react').RefAttributes<import('rc-input').InputRef>>, keyof import('react').Component<any, {}, any>>;
@@ -1,7 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { STATE } from '../../constants';
3
3
  import { GenesisTheme } from '../../styles/theme/genesis-theme.types';
4
- type ThemeType = "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon";
4
+ type ThemeType = "primary" | "secondary" | "tertiary" | "destructive" | "utility" | "icon" | "password";
5
5
  type Variant = "none" | "simple";
6
6
  interface SelectTriggerProperties {
7
7
  type?: ThemeType;
@@ -1,8 +1,12 @@
1
1
  import { Change } from '../Table';
2
2
  import { InfiniteScrollChangeEvent } from '../InfiniteScrollTable/types';
3
3
  import * as React from "react";
4
+ type Item = {
5
+ label: string;
6
+ value: unknown;
7
+ };
4
8
  export type Groups = {
5
- [key: string]: string[];
9
+ [key: string]: string[] | Item[];
6
10
  };
7
11
  export interface SecondaryTableControlsRowProps {
8
12
  groups: Groups | null;
@@ -1,6 +1,12 @@
1
1
  import { PrimaryTableControlsRowProps } from './PrimaryTableControlsRow';
2
2
  import { SecondaryTableControlsRowProps } from './SecondaryTableControlsRow';
3
3
  import { ActionEvent, TableEventPayload } from '../../../types/events';
4
+ export declare const TABLE_CONTROLS_EVENTS: {
5
+ GROUP_ITEM_CLICK: string;
6
+ ORDER_CLICK: string;
7
+ PRIMARY_SORT_CHANGE: string;
8
+ INPUT_CHANGE: string;
9
+ };
4
10
  export type TableControlsData = {
5
11
  primaryTableRowData: PrimaryTableControlsRowProps;
6
12
  secondaryTableRowData?: SecondaryTableControlsRowProps;
@@ -1,2 +1,2 @@
1
- export { default } from './TableControls';
1
+ export { default, TABLE_CONTROLS_EVENTS } from './TableControls';
2
2
  export type { TableControlsProps } from './TableControls';
@@ -12,8 +12,6 @@ export interface TypographyProps {
12
12
  isFullWidth?: boolean;
13
13
  style?: CSSProperties;
14
14
  isDisabled?: boolean;
15
- fontWeight?: number;
16
- fontSize?: string;
17
15
  }
18
- declare const Typography: ({ children, themeType, variant, state, color, isText, isFullWidth, style, fontSize, fontWeight, isDisabled, ...rest }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
16
+ declare const Typography: ({ children, themeType, variant, state, color, isText, isFullWidth, style, isDisabled, ...rest }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
19
17
  export default Typography;
@@ -5,10 +5,8 @@ interface TypographyStyledProperties {
5
5
  $themeType?: keyof typeof TYPE;
6
6
  variant?: string;
7
7
  state?: keyof typeof STATE;
8
- breakpoint?: string;
8
+ breakpoint?: keyof GenesisTheme["typography"];
9
9
  color?: string;
10
- fontWeight?: number;
11
- fontSize?: string;
12
10
  $isFullWidth?: boolean;
13
11
  }
14
12
  export declare const Headline: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<Omit<import('antd/es/typography/Title').TitleProps & import('react').RefAttributes<HTMLElement>, "ref"> & {
@@ -68,6 +68,7 @@ export type { TableWithControlsProps } from './TableWithControls';
68
68
  export { useTable } from './Table';
69
69
  export { useTableWithControls } from './TableWithControls';
70
70
  export type { UseTableConfig } from './Table';
71
+ export { TABLE_CONTROLS_EVENTS } from './Table/TableControls';
71
72
  export { default as Tabs } from './Tabs';
72
73
  export type { TabsProps } from './Tabs';
73
74
  export { default as Tile } from './Tile';
@@ -5,6 +5,7 @@ export declare const TYPE: {
5
5
  destructive: string;
6
6
  utility: string;
7
7
  icon: string;
8
+ password: string;
8
9
  };
9
10
  export declare const BREAKPOINTS: {
10
11
  wide: string;
@@ -86,6 +87,7 @@ declare const _default: {
86
87
  destructive: string;
87
88
  utility: string;
88
89
  icon: string;
90
+ password: string;
89
91
  };
90
92
  BREAKPOINTS: {
91
93
  wide: string;
package/dist/index.cjs CHANGED
@@ -59296,39 +59296,37 @@ const Avatar$1 = styled(Avatar$2)`
59296
59296
  return getGenesisClass$d(theme, type4, state);
59297
59297
  }}
59298
59298
  `;
59299
- const getBreakpoint = (breakpoint) => {
59300
- {
59301
- return "medium";
59302
- }
59303
- };
59304
59299
  const getVariant$2 = (typography2, variant, breakpoint) => {
59300
+ const typeClass = typography2["medium"];
59305
59301
  return `
59306
- font-size: ${typography2[getBreakpoint()][variant].fontSize}px !important;
59307
- line-height: ${typography2[getBreakpoint()][variant].lineHeight};
59308
- letter-spacing: ${typography2[getBreakpoint()][variant].letterSpacing}px;
59309
- font-weight: ${typography2[getBreakpoint()][variant].fontWeight};
59302
+ font-size: ${typeClass}.fontSize}px !important;
59303
+ line-height: ${typeClass.lineHeight};
59304
+ letter-spacing: ${typeClass.letterSpacing}px;
59305
+ font-weight: ${typeClass.fontWeight};
59310
59306
  `;
59311
59307
  };
59312
59308
  const getColor = (color2, colors2, $themeType) => {
59313
59309
  if (color2) {
59314
59310
  return color2;
59315
59311
  }
59316
- return colors2[$themeType].active.color;
59312
+ const themeColor = colors2[$themeType];
59313
+ if (themeColor?.active?.default) {
59314
+ return themeColor.active.default;
59315
+ }
59316
+ return colors2?.secondary?.active?.default || "#000000";
59317
59317
  };
59318
59318
  const getFontFamily = (variant) => {
59319
59319
  return `
59320
59320
  ${variant.includes("digits") ? "'Roboto Mono', sans-serif" : "'Inter', sans-serif"} !important;
59321
59321
  `;
59322
59322
  };
59323
- const getGenesisTypographyClass = ({ colors: colors2, typography: typography2 }, $themeType, variant, state, breakpoint, color2, fontSize, fontWeight, $isFullWidth) => `
59323
+ const getGenesisTypographyClass = ({ colors: colors2, typography: typography2 }, $themeType, variant, state, breakpoint, color2, $isFullWidth) => `
59324
59324
  &.ant-typography {
59325
59325
  font-family: ${getFontFamily(variant)};
59326
59326
  color: ${getColor(color2, colors2, $themeType)} !important;
59327
- ${getVariant$2(typography2, variant)}
59327
+ ${getVariant$2(typography2)}
59328
59328
  margin-bottom: 0 !important;
59329
- width: ${"auto"};
59330
- font-weight: ${fontWeight};
59331
- font-size: ${fontSize};
59329
+ width: ${$isFullWidth ? "100%" : "auto"};
59332
59330
  line-height: 1;
59333
59331
  -webkit-font-smoothing: antialiased;
59334
59332
 
@@ -59370,9 +59368,7 @@ const Paragraph = styled(
59370
59368
  state,
59371
59369
  breakpoint,
59372
59370
  color: color2,
59373
- $isFullWidth,
59374
- fontSize,
59375
- fontWeight
59371
+ $isFullWidth
59376
59372
  }) => {
59377
59373
  return getGenesisTypographyClass(
59378
59374
  theme,
@@ -59832,7 +59828,8 @@ const TYPE = {
59832
59828
  tertiary: "tertiary",
59833
59829
  destructive: "destructive",
59834
59830
  utility: "utility",
59835
- icon: "icon"
59831
+ icon: "icon",
59832
+ password: "primary"
59836
59833
  };
59837
59834
  const BREAKPOINTS = {
59838
59835
  wide: "wide",
@@ -60371,8 +60368,6 @@ const Typography = ({
60371
60368
  isText = false,
60372
60369
  isFullWidth,
60373
60370
  style: style2,
60374
- fontSize,
60375
- fontWeight,
60376
60371
  isDisabled,
60377
60372
  ...rest
60378
60373
  }) => {
@@ -60390,8 +60385,6 @@ const Typography = ({
60390
60385
  level: Number.parseInt(level),
60391
60386
  $isFullWidth: isFullWidth,
60392
60387
  style: style2,
60393
- fontSize,
60394
- fontWeight,
60395
60388
  disabled: isDisabled,
60396
60389
  ...rest,
60397
60390
  children: children2
@@ -60411,8 +60404,6 @@ const Typography = ({
60411
60404
  $isFullWidth: isFullWidth,
60412
60405
  style: style2,
60413
60406
  disabled: isDisabled,
60414
- fontSize,
60415
- fontWeight,
60416
60407
  ...rest,
60417
60408
  children: children2
60418
60409
  }
@@ -60429,8 +60420,6 @@ const Typography = ({
60429
60420
  $isFullWidth: isFullWidth,
60430
60421
  style: style2,
60431
60422
  disabled: isDisabled,
60432
- fontSize,
60433
- fontWeight,
60434
60423
  ...rest,
60435
60424
  children: children2
60436
60425
  }
@@ -74110,11 +74099,11 @@ const Message$1 = ({ message: message2, handle, isThinking = false }) => {
74110
74099
  /* @__PURE__ */ jsxRuntime.jsx(TextContainer, { $isBot: isBot, children: isThinking ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, {}) : handle === "bot" ? /* @__PURE__ */ jsxRuntime.jsx(Markdown, { children: message2 }) : /* @__PURE__ */ jsxRuntime.jsx(MessageText, { children: message2 }) })
74111
74100
  ] });
74112
74101
  };
74113
- const getStateColors = (colors2, type4, state) => {
74102
+ const getStateColors = (colors2, variant, state = "themeState") => {
74114
74103
  const filled = {
74115
74104
  color: colors2.inputs.onsurface.active,
74116
74105
  borderColor: colors2[TYPE.secondary].active.borderColor,
74117
- ringColor: colors2[type4]?.focussed?.ringColor
74106
+ ringColor: colors2[variant]?.focussed?.ringColor
74118
74107
  };
74119
74108
  const success = {
74120
74109
  color: colors2.status.success.default,
@@ -74130,7 +74119,7 @@ const getStateColors = (colors2, type4, state) => {
74130
74119
  color: colors2.inputs.onsurface.active,
74131
74120
  backgroundColor: colors2.inputs.surface.active,
74132
74121
  borderColor: colors2.inputs.surface.border,
74133
- ringColor: type4 && state ? colors2[type4]?.[state]?.ringColor : void 0
74122
+ ringColor: variant && state ? colors2[variant]?.[state]?.ringColor : void 0
74134
74123
  } : null;
74135
74124
  const stateMap = {
74136
74125
  filled,
@@ -74145,8 +74134,8 @@ const getStateColors = (colors2, type4, state) => {
74145
74134
  const css = stateMap[getValidKey(state)];
74146
74135
  return css;
74147
74136
  };
74148
- const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, components: components2, shadows: shadows2 }, type4, state, hasBeforeAddon, hasAfterAddon, size) => {
74149
- const stateColors = getStateColors(colors2, type4, state);
74137
+ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, components: components2, shadows: shadows2 }, type4, state, hasBeforeAddon, hasAfterAddon, size, variant) => {
74138
+ const stateColors = getStateColors(colors2, variant, state);
74150
74139
  const getBorderRadius = (hasBeforeAddon2, hasAfterAddon2) => {
74151
74140
  if (hasAfterAddon2 && !hasBeforeAddon2) {
74152
74141
  return `${borderRadius2.BorderRadiusMd}px 0px 0px ${borderRadius2.BorderRadiusMd}px`;
@@ -74170,8 +74159,8 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74170
74159
  &.ant-input.ant-input:focus-visible,
74171
74160
  &.ant-input.ant-input-focused {
74172
74161
  outline: none !important;
74173
- border-color: ${colors2[type4].focussed.borderColor} !important;
74174
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor} !important;
74162
+ border-color: ${colors2[variant].focussed.borderColor} !important;
74163
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor} !important;
74175
74164
  }
74176
74165
 
74177
74166
  &.ant-input-outlined {
@@ -74187,13 +74176,13 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74187
74176
  outline: none;
74188
74177
  color: ${stateColors.color};
74189
74178
  box-shadow: none;
74190
- border-color: ${colors2[type4].focussed.borderColor};
74179
+ border-color: ${colors2[variant].focussed.borderColor};
74191
74180
  }
74192
74181
  }
74193
74182
 
74194
74183
  .ant-input-group:focus-within {
74195
74184
  outline: none;
74196
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74185
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74197
74186
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74198
74187
  transition: box-shadow 0.2s ease-in-out;
74199
74188
 
@@ -74201,7 +74190,7 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74201
74190
  .ant-input:focus-within {
74202
74191
  box-shadow: none;
74203
74192
  border-radius: 0;
74204
- border-radius: ${getBorderRadius(hasBeforeAddon, hasAfterAddon)};
74193
+ border-radius: ${getBorderRadius(hasBeforeAddon || false, hasAfterAddon || false)};
74205
74194
  border-color: #ddd;
74206
74195
  }
74207
74196
  }
@@ -74212,13 +74201,13 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74212
74201
  .ant-input-group .ant-input:focus-within {
74213
74202
  outline: none;
74214
74203
  box-shadow: none;
74215
- border-color: ${colors2[type4].focussed.borderColor};
74204
+ border-color: ${colors2[variant].focussed.borderColor};
74216
74205
  }
74217
74206
 
74218
74207
  /* Single focus ring on group */
74219
74208
  .ant-input-group:focus-within {
74220
74209
  outline: none;
74221
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74210
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74222
74211
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74223
74212
  transition: box-shadow 0.2s ease-in-out;
74224
74213
  }
@@ -74227,18 +74216,18 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74227
74216
  &:not(.ant-input-group):focus-visible {
74228
74217
  outline: none;
74229
74218
  color: ${stateColors.color};
74230
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74219
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74231
74220
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74232
- border-color: ${colors2[type4].focussed.borderColor};
74221
+ border-color: ${colors2[variant].focussed.borderColor};
74233
74222
  transition: box-shadow 0.2s ease-in-out;
74234
74223
  }
74235
74224
 
74236
74225
  &:not(.ant-input-group .ant-input):focus-visible {
74237
74226
  outline: none;
74238
74227
  color: ${stateColors.color};
74239
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74228
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74240
74229
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74241
- border-color: ${colors2[type4].focussed.borderColor};
74230
+ border-color: ${colors2[variant].focussed.borderColor};
74242
74231
  transition: box-shadow 0.2s ease-in-out;
74243
74232
  }
74244
74233
 
@@ -74279,7 +74268,7 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74279
74268
  `;
74280
74269
  };
74281
74270
  const Input$1 = styled(Input$2)`
74282
- ${({ theme, state, type: type4 = TYPE.primary, size = "normal", ...rest }) => {
74271
+ ${({ theme, state, type: type4, size = "normal", ...rest }) => {
74283
74272
  const hasBeforeAddon = !!rest.addonBefore;
74284
74273
  const hasAfterAddon = !!rest.addonAfter;
74285
74274
  return getGenesisInputClass(
@@ -74288,7 +74277,8 @@ const Input$1 = styled(Input$2)`
74288
74277
  state,
74289
74278
  hasBeforeAddon,
74290
74279
  hasAfterAddon,
74291
- size
74280
+ size,
74281
+ TYPE.primary
74292
74282
  );
74293
74283
  }}
74294
74284
  `;
@@ -74320,9 +74310,9 @@ const Input2 = React.forwardRef(
74320
74310
  size = "normal",
74321
74311
  onChange,
74322
74312
  value: value2,
74313
+ isPassword,
74323
74314
  ...rest
74324
74315
  }, ref) => {
74325
- const { type: type4, ...validRest } = rest;
74326
74316
  const addonAfter = React.isValidElement(rest.addonAfter) && rest.addonAfter.type === Select$1 ? React.cloneElement(
74327
74317
  rest.addonAfter,
74328
74318
  {
@@ -74345,7 +74335,7 @@ const Input2 = React.forwardRef(
74345
74335
  return /* @__PURE__ */ jsxRuntime.jsx(
74346
74336
  Input$1,
74347
74337
  {
74348
- ...validRest,
74338
+ ...rest,
74349
74339
  ref,
74350
74340
  size,
74351
74341
  state,
@@ -74780,6 +74770,53 @@ const Solid = (properties) => /* @__PURE__ */ jsxRuntime.jsx(
74780
74770
  const UnitNumber = ({ variant }) => {
74781
74771
  return variant === "outline" ? /* @__PURE__ */ jsxRuntime.jsx(Outline, {}) : /* @__PURE__ */ jsxRuntime.jsx(Solid, {});
74782
74772
  };
74773
+ const StyledFormInput = styled(Input2)`
74774
+ /* Ensure the border color matches regular Input using Genesis theme token */
74775
+ &.ant-input,
74776
+ .ant-input-group .ant-input {
74777
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74778
+ }
74779
+
74780
+ /* Input group wrapper styling - most specific selector for addon scenarios */
74781
+ &.ant-input-group-wrapper .ant-input-group {
74782
+ .ant-input {
74783
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74784
+ }
74785
+
74786
+ .ant-input-group-addon {
74787
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74788
+ background-color: #f5f5f5;
74789
+ }
74790
+ }
74791
+
74792
+ /* When input is in a group wrapper */
74793
+ .ant-input-group-wrapper & {
74794
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74795
+ }
74796
+
74797
+ /* Direct targeting of input group elements */
74798
+ .ant-input-group .ant-input {
74799
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74800
+ }
74801
+
74802
+ .ant-input-group-addon {
74803
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74804
+ }
74805
+
74806
+ /* Hover and focus states should maintain the correct colors */
74807
+ &.ant-input:hover,
74808
+ &.ant-input:focus,
74809
+ .ant-input-group .ant-input:hover,
74810
+ .ant-input-group .ant-input:focus,
74811
+ .ant-input-group-wrapper .ant-input-group:hover .ant-input,
74812
+ .ant-input-group-wrapper .ant-input-group:focus-within .ant-input,
74813
+ .ant-input-group-wrapper .ant-input-group:hover .ant-input-group-addon,
74814
+ .ant-input-group-wrapper
74815
+ .ant-input-group:focus-within
74816
+ .ant-input-group-addon {
74817
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74818
+ }
74819
+ `;
74783
74820
  const defaultValidator = (_rule, value2) => {
74784
74821
  console.log(`Validating value: ${value2}, Type: ${typeof value2}`);
74785
74822
  if (!value2 || /^\d+$/.test(value2)) {
@@ -74800,7 +74837,7 @@ const FormInput = React.forwardRef((props, ref) => {
74800
74837
  const { addonBefore, addonAfter, placeholder } = inputProps;
74801
74838
  if (addonBefore && !addonAfter) {
74802
74839
  return /* @__PURE__ */ jsxRuntime.jsx(
74803
- Input2,
74840
+ StyledFormInput,
74804
74841
  {
74805
74842
  ...inputProps,
74806
74843
  ref,
@@ -74814,7 +74851,7 @@ const FormInput = React.forwardRef((props, ref) => {
74814
74851
  }
74815
74852
  if (addonAfter && !addonBefore) {
74816
74853
  return /* @__PURE__ */ jsxRuntime.jsx(
74817
- Input2,
74854
+ StyledFormInput,
74818
74855
  {
74819
74856
  ...inputProps,
74820
74857
  ref,
@@ -74827,7 +74864,7 @@ const FormInput = React.forwardRef((props, ref) => {
74827
74864
  );
74828
74865
  }
74829
74866
  return /* @__PURE__ */ jsxRuntime.jsx(
74830
- Input2,
74867
+ StyledFormInput,
74831
74868
  {
74832
74869
  ...inputProps,
74833
74870
  ref,
@@ -82536,6 +82573,7 @@ const TypographyWideFontSizeBody1 = 16;
82536
82573
  const TypographyMediumFontSizeBody1 = 16;
82537
82574
  const TypographyWideFontSizeHeading3 = Size4;
82538
82575
  const TypographyWideFontSizeSubHeading1 = 20;
82576
+ const TypographyWideFontSizeSubHeading2 = 16;
82539
82577
  const TypographyWideFontSizeSubHeading3 = 14;
82540
82578
  const TypographyWideFontSizeBody2 = 14;
82541
82579
  const TypographyWideFontSizeBody3 = 12;
@@ -82734,9 +82772,9 @@ const wideTypography = {
82734
82772
  letterSpacing: "0"
82735
82773
  },
82736
82774
  subHeading2: {
82737
- fontSize: "24px",
82738
- lineHeight: "32px",
82739
- fontWeight: 400,
82775
+ fontSize: TypographyWideFontSizeSubHeading2,
82776
+ lineHeight: "1.25rem",
82777
+ fontWeight: 600,
82740
82778
  letterSpacing: "0"
82741
82779
  },
82742
82780
  subHeading3: {
@@ -85756,7 +85794,7 @@ const GroupItem = ({
85756
85794
  onGroupItemClick,
85757
85795
  getCustomIcon
85758
85796
  }) => {
85759
- if (items.length === 0) return null;
85797
+ if (!items || items?.length === 0) return null;
85760
85798
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
85761
85799
  /* @__PURE__ */ jsxRuntime.jsx(Tooltip2, { tip: title, isAbsolutePositioned: false, children: /* @__PURE__ */ jsxRuntime.jsx(
85762
85800
  "div",
@@ -85771,18 +85809,21 @@ const GroupItem = ({
85771
85809
  children: getCustomIcon ? getCustomIcon(title) : getIcon$1(title)
85772
85810
  }
85773
85811
  ) }),
85774
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: 4 }, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
85775
- Badge$1,
85776
- {
85777
- label: item,
85778
- hasClose: true,
85779
- hasIcon: false,
85780
- state: "generic",
85781
- size: "small",
85782
- onClick: () => onGroupItemClick(title, item)
85783
- },
85784
- item.toString()
85785
- )) })
85812
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "flex", gap: 4 }, children: items?.map((item) => {
85813
+ const isObjectItem = typeof item === "object" && item !== null && "label" in item && "value" in item;
85814
+ return /* @__PURE__ */ jsxRuntime.jsx(
85815
+ Badge$1,
85816
+ {
85817
+ label: isObjectItem ? item.label : item?.toString() || "Undefined",
85818
+ hasClose: true,
85819
+ hasIcon: false,
85820
+ state: "generic",
85821
+ size: "small",
85822
+ onClick: () => onGroupItemClick(title, item)
85823
+ },
85824
+ !item ? "Undefined" : item?.toString()
85825
+ );
85826
+ }) })
85786
85827
  ] });
85787
85828
  };
85788
85829
  const GroupsRow = ({
@@ -85799,7 +85840,7 @@ const GroupsRow = ({
85799
85840
  GroupItem,
85800
85841
  {
85801
85842
  title: group.title,
85802
- items: group.items,
85843
+ items: group?.items,
85803
85844
  onGroupItemClick,
85804
85845
  getCustomIcon
85805
85846
  },
@@ -85900,6 +85941,12 @@ const SecondaryTableControlsRow = ({
85900
85941
  }
85901
85942
  );
85902
85943
  };
85944
+ const TABLE_CONTROLS_EVENTS = {
85945
+ GROUP_ITEM_CLICK: "groupItemClick",
85946
+ ORDER_CLICK: "orderClick",
85947
+ PRIMARY_SORT_CHANGE: "primarySortChange",
85948
+ INPUT_CHANGE: "inputChange"
85949
+ };
85903
85950
  const TableControls = ({
85904
85951
  primaryTableRowData,
85905
85952
  secondaryTableRowData,
@@ -87399,6 +87446,7 @@ exports.SegmentedControls = SegmentedControls;
87399
87446
  exports.Select = Select;
87400
87447
  exports.Shapes = Shapes;
87401
87448
  exports.Switch = Switch;
87449
+ exports.TABLE_CONTROLS_EVENTS = TABLE_CONTROLS_EVENTS;
87402
87450
  exports.Table = TablePagination;
87403
87451
  exports.TableWithControls = TableWithControls;
87404
87452
  exports.Tabs = Tabs;
package/dist/index.js CHANGED
@@ -59278,39 +59278,37 @@ const Avatar$1 = styled(Avatar$2)`
59278
59278
  return getGenesisClass$d(theme, type4, state);
59279
59279
  }}
59280
59280
  `;
59281
- const getBreakpoint = (breakpoint) => {
59282
- {
59283
- return "medium";
59284
- }
59285
- };
59286
59281
  const getVariant$2 = (typography2, variant, breakpoint) => {
59282
+ const typeClass = typography2["medium"];
59287
59283
  return `
59288
- font-size: ${typography2[getBreakpoint()][variant].fontSize}px !important;
59289
- line-height: ${typography2[getBreakpoint()][variant].lineHeight};
59290
- letter-spacing: ${typography2[getBreakpoint()][variant].letterSpacing}px;
59291
- font-weight: ${typography2[getBreakpoint()][variant].fontWeight};
59284
+ font-size: ${typeClass}.fontSize}px !important;
59285
+ line-height: ${typeClass.lineHeight};
59286
+ letter-spacing: ${typeClass.letterSpacing}px;
59287
+ font-weight: ${typeClass.fontWeight};
59292
59288
  `;
59293
59289
  };
59294
59290
  const getColor = (color2, colors2, $themeType) => {
59295
59291
  if (color2) {
59296
59292
  return color2;
59297
59293
  }
59298
- return colors2[$themeType].active.color;
59294
+ const themeColor = colors2[$themeType];
59295
+ if (themeColor?.active?.default) {
59296
+ return themeColor.active.default;
59297
+ }
59298
+ return colors2?.secondary?.active?.default || "#000000";
59299
59299
  };
59300
59300
  const getFontFamily = (variant) => {
59301
59301
  return `
59302
59302
  ${variant.includes("digits") ? "'Roboto Mono', sans-serif" : "'Inter', sans-serif"} !important;
59303
59303
  `;
59304
59304
  };
59305
- const getGenesisTypographyClass = ({ colors: colors2, typography: typography2 }, $themeType, variant, state, breakpoint, color2, fontSize, fontWeight, $isFullWidth) => `
59305
+ const getGenesisTypographyClass = ({ colors: colors2, typography: typography2 }, $themeType, variant, state, breakpoint, color2, $isFullWidth) => `
59306
59306
  &.ant-typography {
59307
59307
  font-family: ${getFontFamily(variant)};
59308
59308
  color: ${getColor(color2, colors2, $themeType)} !important;
59309
- ${getVariant$2(typography2, variant)}
59309
+ ${getVariant$2(typography2)}
59310
59310
  margin-bottom: 0 !important;
59311
- width: ${"auto"};
59312
- font-weight: ${fontWeight};
59313
- font-size: ${fontSize};
59311
+ width: ${$isFullWidth ? "100%" : "auto"};
59314
59312
  line-height: 1;
59315
59313
  -webkit-font-smoothing: antialiased;
59316
59314
 
@@ -59352,9 +59350,7 @@ const Paragraph = styled(
59352
59350
  state,
59353
59351
  breakpoint,
59354
59352
  color: color2,
59355
- $isFullWidth,
59356
- fontSize,
59357
- fontWeight
59353
+ $isFullWidth
59358
59354
  }) => {
59359
59355
  return getGenesisTypographyClass(
59360
59356
  theme,
@@ -59814,7 +59810,8 @@ const TYPE = {
59814
59810
  tertiary: "tertiary",
59815
59811
  destructive: "destructive",
59816
59812
  utility: "utility",
59817
- icon: "icon"
59813
+ icon: "icon",
59814
+ password: "primary"
59818
59815
  };
59819
59816
  const BREAKPOINTS = {
59820
59817
  wide: "wide",
@@ -60353,8 +60350,6 @@ const Typography = ({
60353
60350
  isText = false,
60354
60351
  isFullWidth,
60355
60352
  style: style2,
60356
- fontSize,
60357
- fontWeight,
60358
60353
  isDisabled,
60359
60354
  ...rest
60360
60355
  }) => {
@@ -60372,8 +60367,6 @@ const Typography = ({
60372
60367
  level: Number.parseInt(level),
60373
60368
  $isFullWidth: isFullWidth,
60374
60369
  style: style2,
60375
- fontSize,
60376
- fontWeight,
60377
60370
  disabled: isDisabled,
60378
60371
  ...rest,
60379
60372
  children: children2
@@ -60393,8 +60386,6 @@ const Typography = ({
60393
60386
  $isFullWidth: isFullWidth,
60394
60387
  style: style2,
60395
60388
  disabled: isDisabled,
60396
- fontSize,
60397
- fontWeight,
60398
60389
  ...rest,
60399
60390
  children: children2
60400
60391
  }
@@ -60411,8 +60402,6 @@ const Typography = ({
60411
60402
  $isFullWidth: isFullWidth,
60412
60403
  style: style2,
60413
60404
  disabled: isDisabled,
60414
- fontSize,
60415
- fontWeight,
60416
60405
  ...rest,
60417
60406
  children: children2
60418
60407
  }
@@ -74092,11 +74081,11 @@ const Message$1 = ({ message: message2, handle, isThinking = false }) => {
74092
74081
  /* @__PURE__ */ jsx(TextContainer, { $isBot: isBot, children: isThinking ? /* @__PURE__ */ jsx(ThinkingIndicator, {}) : handle === "bot" ? /* @__PURE__ */ jsx(Markdown, { children: message2 }) : /* @__PURE__ */ jsx(MessageText, { children: message2 }) })
74093
74082
  ] });
74094
74083
  };
74095
- const getStateColors = (colors2, type4, state) => {
74084
+ const getStateColors = (colors2, variant, state = "themeState") => {
74096
74085
  const filled = {
74097
74086
  color: colors2.inputs.onsurface.active,
74098
74087
  borderColor: colors2[TYPE.secondary].active.borderColor,
74099
- ringColor: colors2[type4]?.focussed?.ringColor
74088
+ ringColor: colors2[variant]?.focussed?.ringColor
74100
74089
  };
74101
74090
  const success = {
74102
74091
  color: colors2.status.success.default,
@@ -74112,7 +74101,7 @@ const getStateColors = (colors2, type4, state) => {
74112
74101
  color: colors2.inputs.onsurface.active,
74113
74102
  backgroundColor: colors2.inputs.surface.active,
74114
74103
  borderColor: colors2.inputs.surface.border,
74115
- ringColor: type4 && state ? colors2[type4]?.[state]?.ringColor : void 0
74104
+ ringColor: variant && state ? colors2[variant]?.[state]?.ringColor : void 0
74116
74105
  } : null;
74117
74106
  const stateMap = {
74118
74107
  filled,
@@ -74127,8 +74116,8 @@ const getStateColors = (colors2, type4, state) => {
74127
74116
  const css = stateMap[getValidKey(state)];
74128
74117
  return css;
74129
74118
  };
74130
- const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, components: components2, shadows: shadows2 }, type4, state, hasBeforeAddon, hasAfterAddon, size) => {
74131
- const stateColors = getStateColors(colors2, type4, state);
74119
+ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, components: components2, shadows: shadows2 }, type4, state, hasBeforeAddon, hasAfterAddon, size, variant) => {
74120
+ const stateColors = getStateColors(colors2, variant, state);
74132
74121
  const getBorderRadius = (hasBeforeAddon2, hasAfterAddon2) => {
74133
74122
  if (hasAfterAddon2 && !hasBeforeAddon2) {
74134
74123
  return `${borderRadius2.BorderRadiusMd}px 0px 0px ${borderRadius2.BorderRadiusMd}px`;
@@ -74152,8 +74141,8 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74152
74141
  &.ant-input.ant-input:focus-visible,
74153
74142
  &.ant-input.ant-input-focused {
74154
74143
  outline: none !important;
74155
- border-color: ${colors2[type4].focussed.borderColor} !important;
74156
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor} !important;
74144
+ border-color: ${colors2[variant].focussed.borderColor} !important;
74145
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor} !important;
74157
74146
  }
74158
74147
 
74159
74148
  &.ant-input-outlined {
@@ -74169,13 +74158,13 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74169
74158
  outline: none;
74170
74159
  color: ${stateColors.color};
74171
74160
  box-shadow: none;
74172
- border-color: ${colors2[type4].focussed.borderColor};
74161
+ border-color: ${colors2[variant].focussed.borderColor};
74173
74162
  }
74174
74163
  }
74175
74164
 
74176
74165
  .ant-input-group:focus-within {
74177
74166
  outline: none;
74178
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74167
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74179
74168
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74180
74169
  transition: box-shadow 0.2s ease-in-out;
74181
74170
 
@@ -74183,7 +74172,7 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74183
74172
  .ant-input:focus-within {
74184
74173
  box-shadow: none;
74185
74174
  border-radius: 0;
74186
- border-radius: ${getBorderRadius(hasBeforeAddon, hasAfterAddon)};
74175
+ border-radius: ${getBorderRadius(hasBeforeAddon || false, hasAfterAddon || false)};
74187
74176
  border-color: #ddd;
74188
74177
  }
74189
74178
  }
@@ -74194,13 +74183,13 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74194
74183
  .ant-input-group .ant-input:focus-within {
74195
74184
  outline: none;
74196
74185
  box-shadow: none;
74197
- border-color: ${colors2[type4].focussed.borderColor};
74186
+ border-color: ${colors2[variant].focussed.borderColor};
74198
74187
  }
74199
74188
 
74200
74189
  /* Single focus ring on group */
74201
74190
  .ant-input-group:focus-within {
74202
74191
  outline: none;
74203
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74192
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74204
74193
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74205
74194
  transition: box-shadow 0.2s ease-in-out;
74206
74195
  }
@@ -74209,18 +74198,18 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74209
74198
  &:not(.ant-input-group):focus-visible {
74210
74199
  outline: none;
74211
74200
  color: ${stateColors.color};
74212
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74201
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74213
74202
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74214
- border-color: ${colors2[type4].focussed.borderColor};
74203
+ border-color: ${colors2[variant].focussed.borderColor};
74215
74204
  transition: box-shadow 0.2s ease-in-out;
74216
74205
  }
74217
74206
 
74218
74207
  &:not(.ant-input-group .ant-input):focus-visible {
74219
74208
  outline: none;
74220
74209
  color: ${stateColors.color};
74221
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[type4].focussed.ringColor};
74210
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px ${colors2[variant].focussed.ringColor};
74222
74211
  border-radius: ${borderRadius2.BorderRadiusMd}px;
74223
- border-color: ${colors2[type4].focussed.borderColor};
74212
+ border-color: ${colors2[variant].focussed.borderColor};
74224
74213
  transition: box-shadow 0.2s ease-in-out;
74225
74214
  }
74226
74215
 
@@ -74261,7 +74250,7 @@ const getGenesisInputClass = ({ colors: colors2, borderRadius: borderRadius2, co
74261
74250
  `;
74262
74251
  };
74263
74252
  const Input$1 = styled(Input$2)`
74264
- ${({ theme, state, type: type4 = TYPE.primary, size = "normal", ...rest }) => {
74253
+ ${({ theme, state, type: type4, size = "normal", ...rest }) => {
74265
74254
  const hasBeforeAddon = !!rest.addonBefore;
74266
74255
  const hasAfterAddon = !!rest.addonAfter;
74267
74256
  return getGenesisInputClass(
@@ -74270,7 +74259,8 @@ const Input$1 = styled(Input$2)`
74270
74259
  state,
74271
74260
  hasBeforeAddon,
74272
74261
  hasAfterAddon,
74273
- size
74262
+ size,
74263
+ TYPE.primary
74274
74264
  );
74275
74265
  }}
74276
74266
  `;
@@ -74302,9 +74292,9 @@ const Input2 = React__default.forwardRef(
74302
74292
  size = "normal",
74303
74293
  onChange,
74304
74294
  value: value2,
74295
+ isPassword,
74305
74296
  ...rest
74306
74297
  }, ref) => {
74307
- const { type: type4, ...validRest } = rest;
74308
74298
  const addonAfter = React__default.isValidElement(rest.addonAfter) && rest.addonAfter.type === Select$1 ? React__default.cloneElement(
74309
74299
  rest.addonAfter,
74310
74300
  {
@@ -74327,7 +74317,7 @@ const Input2 = React__default.forwardRef(
74327
74317
  return /* @__PURE__ */ jsx(
74328
74318
  Input$1,
74329
74319
  {
74330
- ...validRest,
74320
+ ...rest,
74331
74321
  ref,
74332
74322
  size,
74333
74323
  state,
@@ -74762,6 +74752,53 @@ const Solid = (properties) => /* @__PURE__ */ jsx(
74762
74752
  const UnitNumber = ({ variant }) => {
74763
74753
  return variant === "outline" ? /* @__PURE__ */ jsx(Outline, {}) : /* @__PURE__ */ jsx(Solid, {});
74764
74754
  };
74755
+ const StyledFormInput = styled(Input2)`
74756
+ /* Ensure the border color matches regular Input using Genesis theme token */
74757
+ &.ant-input,
74758
+ .ant-input-group .ant-input {
74759
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74760
+ }
74761
+
74762
+ /* Input group wrapper styling - most specific selector for addon scenarios */
74763
+ &.ant-input-group-wrapper .ant-input-group {
74764
+ .ant-input {
74765
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74766
+ }
74767
+
74768
+ .ant-input-group-addon {
74769
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74770
+ background-color: #f5f5f5;
74771
+ }
74772
+ }
74773
+
74774
+ /* When input is in a group wrapper */
74775
+ .ant-input-group-wrapper & {
74776
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74777
+ }
74778
+
74779
+ /* Direct targeting of input group elements */
74780
+ .ant-input-group .ant-input {
74781
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74782
+ }
74783
+
74784
+ .ant-input-group-addon {
74785
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74786
+ }
74787
+
74788
+ /* Hover and focus states should maintain the correct colors */
74789
+ &.ant-input:hover,
74790
+ &.ant-input:focus,
74791
+ .ant-input-group .ant-input:hover,
74792
+ .ant-input-group .ant-input:focus,
74793
+ .ant-input-group-wrapper .ant-input-group:hover .ant-input,
74794
+ .ant-input-group-wrapper .ant-input-group:focus-within .ant-input,
74795
+ .ant-input-group-wrapper .ant-input-group:hover .ant-input-group-addon,
74796
+ .ant-input-group-wrapper
74797
+ .ant-input-group:focus-within
74798
+ .ant-input-group-addon {
74799
+ border-color: ${({ theme }) => theme.colors.inputs.surface.border} !important;
74800
+ }
74801
+ `;
74765
74802
  const defaultValidator = (_rule, value2) => {
74766
74803
  console.log(`Validating value: ${value2}, Type: ${typeof value2}`);
74767
74804
  if (!value2 || /^\d+$/.test(value2)) {
@@ -74782,7 +74819,7 @@ const FormInput = React__default.forwardRef((props, ref) => {
74782
74819
  const { addonBefore, addonAfter, placeholder } = inputProps;
74783
74820
  if (addonBefore && !addonAfter) {
74784
74821
  return /* @__PURE__ */ jsx(
74785
- Input2,
74822
+ StyledFormInput,
74786
74823
  {
74787
74824
  ...inputProps,
74788
74825
  ref,
@@ -74796,7 +74833,7 @@ const FormInput = React__default.forwardRef((props, ref) => {
74796
74833
  }
74797
74834
  if (addonAfter && !addonBefore) {
74798
74835
  return /* @__PURE__ */ jsx(
74799
- Input2,
74836
+ StyledFormInput,
74800
74837
  {
74801
74838
  ...inputProps,
74802
74839
  ref,
@@ -74809,7 +74846,7 @@ const FormInput = React__default.forwardRef((props, ref) => {
74809
74846
  );
74810
74847
  }
74811
74848
  return /* @__PURE__ */ jsx(
74812
- Input2,
74849
+ StyledFormInput,
74813
74850
  {
74814
74851
  ...inputProps,
74815
74852
  ref,
@@ -82518,6 +82555,7 @@ const TypographyWideFontSizeBody1 = 16;
82518
82555
  const TypographyMediumFontSizeBody1 = 16;
82519
82556
  const TypographyWideFontSizeHeading3 = Size4;
82520
82557
  const TypographyWideFontSizeSubHeading1 = 20;
82558
+ const TypographyWideFontSizeSubHeading2 = 16;
82521
82559
  const TypographyWideFontSizeSubHeading3 = 14;
82522
82560
  const TypographyWideFontSizeBody2 = 14;
82523
82561
  const TypographyWideFontSizeBody3 = 12;
@@ -82716,9 +82754,9 @@ const wideTypography = {
82716
82754
  letterSpacing: "0"
82717
82755
  },
82718
82756
  subHeading2: {
82719
- fontSize: "24px",
82720
- lineHeight: "32px",
82721
- fontWeight: 400,
82757
+ fontSize: TypographyWideFontSizeSubHeading2,
82758
+ lineHeight: "1.25rem",
82759
+ fontWeight: 600,
82722
82760
  letterSpacing: "0"
82723
82761
  },
82724
82762
  subHeading3: {
@@ -85738,7 +85776,7 @@ const GroupItem = ({
85738
85776
  onGroupItemClick,
85739
85777
  getCustomIcon
85740
85778
  }) => {
85741
- if (items.length === 0) return null;
85779
+ if (!items || items?.length === 0) return null;
85742
85780
  return /* @__PURE__ */ jsxs(Fragment, { children: [
85743
85781
  /* @__PURE__ */ jsx(Tooltip2, { tip: title, isAbsolutePositioned: false, children: /* @__PURE__ */ jsx(
85744
85782
  "div",
@@ -85753,18 +85791,21 @@ const GroupItem = ({
85753
85791
  children: getCustomIcon ? getCustomIcon(title) : getIcon$1(title)
85754
85792
  }
85755
85793
  ) }),
85756
- /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: 4 }, children: items.map((item) => /* @__PURE__ */ jsx(
85757
- Badge$1,
85758
- {
85759
- label: item,
85760
- hasClose: true,
85761
- hasIcon: false,
85762
- state: "generic",
85763
- size: "small",
85764
- onClick: () => onGroupItemClick(title, item)
85765
- },
85766
- item.toString()
85767
- )) })
85794
+ /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: 4 }, children: items?.map((item) => {
85795
+ const isObjectItem = typeof item === "object" && item !== null && "label" in item && "value" in item;
85796
+ return /* @__PURE__ */ jsx(
85797
+ Badge$1,
85798
+ {
85799
+ label: isObjectItem ? item.label : item?.toString() || "Undefined",
85800
+ hasClose: true,
85801
+ hasIcon: false,
85802
+ state: "generic",
85803
+ size: "small",
85804
+ onClick: () => onGroupItemClick(title, item)
85805
+ },
85806
+ !item ? "Undefined" : item?.toString()
85807
+ );
85808
+ }) })
85768
85809
  ] });
85769
85810
  };
85770
85811
  const GroupsRow = ({
@@ -85781,7 +85822,7 @@ const GroupsRow = ({
85781
85822
  GroupItem,
85782
85823
  {
85783
85824
  title: group.title,
85784
- items: group.items,
85825
+ items: group?.items,
85785
85826
  onGroupItemClick,
85786
85827
  getCustomIcon
85787
85828
  },
@@ -85882,6 +85923,12 @@ const SecondaryTableControlsRow = ({
85882
85923
  }
85883
85924
  );
85884
85925
  };
85926
+ const TABLE_CONTROLS_EVENTS = {
85927
+ GROUP_ITEM_CLICK: "groupItemClick",
85928
+ ORDER_CLICK: "orderClick",
85929
+ PRIMARY_SORT_CHANGE: "primarySortChange",
85930
+ INPUT_CHANGE: "inputChange"
85931
+ };
85885
85932
  const TableControls = ({
85886
85933
  primaryTableRowData,
85887
85934
  secondaryTableRowData,
@@ -87382,6 +87429,7 @@ export {
87382
87429
  Select,
87383
87430
  Shapes,
87384
87431
  Switch,
87432
+ TABLE_CONTROLS_EVENTS,
87385
87433
  TablePagination as Table,
87386
87434
  TableWithControls,
87387
87435
  Tabs,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobolt/genesis",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "genesis design system",
5
5
  "author": "gobolt",
6
6
  "license": "MIT",
@@ -150,7 +150,7 @@
150
150
  },
151
151
  "dependencies": {
152
152
  "@ant-design/icons": "^5.5.2",
153
- "@gobolt/genesis-tokens": "^0.0.10",
153
+ "@gobolt/genesis-tokens": "^0.0.9",
154
154
  "@mdx-js/react": "^3.0.1",
155
155
  "@secondcloset/types": "^3.4.6",
156
156
  "@types/d3": "^7.4.3",