@economic/taco 11.0.1-EC-71735-react-19-upgrade.0 → 12.0.0-react18-compat.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.
@@ -28,7 +28,7 @@ const getInverseThemeColor = (hexCode) => {
28
28
  if (shade > 500) {
29
29
  return getThemeColor(`${color}-100`);
30
30
  }
31
- if (shade === 500 && (color === "red" || color === "blue" || color === "brown" || color === "purple" || color === "green")) {
31
+ if (shade === 500 && (color === "red" || color === "blue" || color === "purple" || color === "green")) {
32
32
  return "white";
33
33
  }
34
34
  return getThemeColor(`${color}-900`);
@@ -1 +1 @@
1
- {"version":3,"file":"color.cjs","sources":["../../../src/charts/utils/color.ts"],"sourcesContent":["import themeColors from '../../../tailwind.colors.js';\n\nconst mapColor = (palette: any, prefix = ''): any => {\n return Object.keys(palette).reduce((accum, color) => {\n if (color === 'current') {\n return accum;\n }\n\n if (typeof palette[color] === 'string') {\n return {\n ...accum,\n [prefix ? (color === 'DEFAULT' ? prefix : `${prefix}-${color}`) : color]: palette[color],\n };\n }\n\n return {\n ...accum,\n ...mapColor(palette[color], color),\n };\n }, {});\n};\n\nexport const colors: Record<string, string> = mapColor(themeColors);\n\nexport type Color = keyof typeof colors;\n\nexport const getThemeColor = (color: string | Color | undefined, def = '') => colors[color ?? def];\n\nexport const getInverseThemeColor = (hexCode: string) => {\n const themeColor: Color | undefined = Object.keys(colors)[Object.values(colors).indexOf(hexCode)];\n\n const [color, number] = String(themeColor).split('-');\n const shade = Number(number);\n\n if (shade) {\n if (shade > 500) {\n return getThemeColor(`${color}-100`);\n }\n if (\n shade === 500 &&\n (color === 'red' || color === 'blue' || color === 'brown' || color === 'purple' || color === 'green')\n ) {\n return 'white';\n }\n\n return getThemeColor(`${color}-900`);\n }\n\n return color === 'black' ? 'white' : 'black';\n};\n"],"names":["themeColors"],"mappings":";;;AAEA,MAAM,WAAW,CAAC,SAAc,SAAS,OAAY;AACjD,SAAO,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,OAAO,UAAU;AACjD,QAAI,UAAU,WAAW;AACrB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,QAAQ,KAAK,MAAM,UAAU;AACpC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,CAAC,SAAU,UAAU,YAAY,SAAS,GAAG,MAAM,IAAI,KAAK,KAAM,KAAK,GAAG,QAAQ,KAAK;AAAA,MAAA;AAAA,IAE/F;AAEA,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG,SAAS,QAAQ,KAAK,GAAG,KAAK;AAAA,IAAA;AAAA,EAEzC,GAAG,CAAA,CAAE;AACT;AAEO,MAAM,SAAiC,SAASA,eAAW;AAI3D,MAAM,gBAAgB,CAAC,OAAmC,MAAM,OAAO,OAAO,SAAS,GAAG;AAE1F,MAAM,uBAAuB,CAAC,YAAoB;AACrD,QAAM,aAAgC,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,MAAM,EAAE,QAAQ,OAAO,CAAC;AAEhG,QAAM,CAAC,OAAO,MAAM,IAAI,OAAO,UAAU,EAAE,MAAM,GAAG;AACpD,QAAM,QAAQ,OAAO,MAAM;AAE3B,MAAI,OAAO;AACP,QAAI,QAAQ,KAAK;AACb,aAAO,cAAc,GAAG,KAAK,MAAM;AAAA,IACvC;AACA,QACI,UAAU,QACT,UAAU,SAAS,UAAU,UAAU,UAAU,WAAW,UAAU,YAAY,UAAU,UAC/F;AACE,aAAO;AAAA,IACX;AAEA,WAAO,cAAc,GAAG,KAAK,MAAM;AAAA,EACvC;AAEA,SAAO,UAAU,UAAU,UAAU;AACzC;;;;"}
1
+ {"version":3,"file":"color.cjs","sources":["../../../src/charts/utils/color.ts"],"sourcesContent":["import themeColors from '../../../tailwind.colors.js';\n\nconst mapColor = (palette: any, prefix = ''): any => {\n return Object.keys(palette).reduce((accum, color) => {\n if (color === 'current') {\n return accum;\n }\n\n if (typeof palette[color] === 'string') {\n return {\n ...accum,\n [prefix ? (color === 'DEFAULT' ? prefix : `${prefix}-${color}`) : color]: palette[color],\n };\n }\n\n return {\n ...accum,\n ...mapColor(palette[color], color),\n };\n }, {});\n};\n\nexport const colors: Record<string, string> = mapColor(themeColors);\n\nexport type Color = keyof typeof colors;\n\nexport const getThemeColor = (color: string | Color | undefined, def = '') => colors[color ?? def];\n\nexport const getInverseThemeColor = (hexCode: string) => {\n const themeColor: Color | undefined = Object.keys(colors)[Object.values(colors).indexOf(hexCode)];\n\n const [color, number] = String(themeColor).split('-');\n const shade = Number(number);\n\n if (shade) {\n if (shade > 500) {\n return getThemeColor(`${color}-100`);\n }\n if (shade === 500 && (color === 'red' || color === 'blue' || color === 'purple' || color === 'green')) {\n return 'white';\n }\n\n return getThemeColor(`${color}-900`);\n }\n\n return color === 'black' ? 'white' : 'black';\n};\n"],"names":["themeColors"],"mappings":";;;AAEA,MAAM,WAAW,CAAC,SAAc,SAAS,OAAY;AACjD,SAAO,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,OAAO,UAAU;AACjD,QAAI,UAAU,WAAW;AACrB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,QAAQ,KAAK,MAAM,UAAU;AACpC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,CAAC,SAAU,UAAU,YAAY,SAAS,GAAG,MAAM,IAAI,KAAK,KAAM,KAAK,GAAG,QAAQ,KAAK;AAAA,MAAA;AAAA,IAE/F;AAEA,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG,SAAS,QAAQ,KAAK,GAAG,KAAK;AAAA,IAAA;AAAA,EAEzC,GAAG,CAAA,CAAE;AACT;AAEO,MAAM,SAAiC,SAASA,eAAW;AAI3D,MAAM,gBAAgB,CAAC,OAAmC,MAAM,OAAO,OAAO,SAAS,GAAG;AAE1F,MAAM,uBAAuB,CAAC,YAAoB;AACrD,QAAM,aAAgC,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,MAAM,EAAE,QAAQ,OAAO,CAAC;AAEhG,QAAM,CAAC,OAAO,MAAM,IAAI,OAAO,UAAU,EAAE,MAAM,GAAG;AACpD,QAAM,QAAQ,OAAO,MAAM;AAE3B,MAAI,OAAO;AACP,QAAI,QAAQ,KAAK;AACb,aAAO,cAAc,GAAG,KAAK,MAAM;AAAA,IACvC;AACA,QAAI,UAAU,QAAQ,UAAU,SAAS,UAAU,UAAU,UAAU,YAAY,UAAU,UAAU;AACnG,aAAO;AAAA,IACX;AAEA,WAAO,cAAc,GAAG,KAAK,MAAM;AAAA,EACvC;AAEA,SAAO,UAAU,UAAU,UAAU;AACzC;;;;"}
@@ -26,7 +26,7 @@ const getInverseThemeColor = (hexCode) => {
26
26
  if (shade > 500) {
27
27
  return getThemeColor(`${color}-100`);
28
28
  }
29
- if (shade === 500 && (color === "red" || color === "blue" || color === "brown" || color === "purple" || color === "green")) {
29
+ if (shade === 500 && (color === "red" || color === "blue" || color === "purple" || color === "green")) {
30
30
  return "white";
31
31
  }
32
32
  return getThemeColor(`${color}-900`);
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sources":["../../../src/charts/utils/color.ts"],"sourcesContent":["import themeColors from '../../../tailwind.colors.js';\n\nconst mapColor = (palette: any, prefix = ''): any => {\n return Object.keys(palette).reduce((accum, color) => {\n if (color === 'current') {\n return accum;\n }\n\n if (typeof palette[color] === 'string') {\n return {\n ...accum,\n [prefix ? (color === 'DEFAULT' ? prefix : `${prefix}-${color}`) : color]: palette[color],\n };\n }\n\n return {\n ...accum,\n ...mapColor(palette[color], color),\n };\n }, {});\n};\n\nexport const colors: Record<string, string> = mapColor(themeColors);\n\nexport type Color = keyof typeof colors;\n\nexport const getThemeColor = (color: string | Color | undefined, def = '') => colors[color ?? def];\n\nexport const getInverseThemeColor = (hexCode: string) => {\n const themeColor: Color | undefined = Object.keys(colors)[Object.values(colors).indexOf(hexCode)];\n\n const [color, number] = String(themeColor).split('-');\n const shade = Number(number);\n\n if (shade) {\n if (shade > 500) {\n return getThemeColor(`${color}-100`);\n }\n if (\n shade === 500 &&\n (color === 'red' || color === 'blue' || color === 'brown' || color === 'purple' || color === 'green')\n ) {\n return 'white';\n }\n\n return getThemeColor(`${color}-900`);\n }\n\n return color === 'black' ? 'white' : 'black';\n};\n"],"names":["themeColors"],"mappings":";AAEA,MAAM,WAAW,CAAC,SAAc,SAAS,OAAY;AACjD,SAAO,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,OAAO,UAAU;AACjD,QAAI,UAAU,WAAW;AACrB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,QAAQ,KAAK,MAAM,UAAU;AACpC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,CAAC,SAAU,UAAU,YAAY,SAAS,GAAG,MAAM,IAAI,KAAK,KAAM,KAAK,GAAG,QAAQ,KAAK;AAAA,MAAA;AAAA,IAE/F;AAEA,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG,SAAS,QAAQ,KAAK,GAAG,KAAK;AAAA,IAAA;AAAA,EAEzC,GAAG,CAAA,CAAE;AACT;AAEO,MAAM,SAAiC,SAASA,YAAW;AAI3D,MAAM,gBAAgB,CAAC,OAAmC,MAAM,OAAO,OAAO,SAAS,GAAG;AAE1F,MAAM,uBAAuB,CAAC,YAAoB;AACrD,QAAM,aAAgC,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,MAAM,EAAE,QAAQ,OAAO,CAAC;AAEhG,QAAM,CAAC,OAAO,MAAM,IAAI,OAAO,UAAU,EAAE,MAAM,GAAG;AACpD,QAAM,QAAQ,OAAO,MAAM;AAE3B,MAAI,OAAO;AACP,QAAI,QAAQ,KAAK;AACb,aAAO,cAAc,GAAG,KAAK,MAAM;AAAA,IACvC;AACA,QACI,UAAU,QACT,UAAU,SAAS,UAAU,UAAU,UAAU,WAAW,UAAU,YAAY,UAAU,UAC/F;AACE,aAAO;AAAA,IACX;AAEA,WAAO,cAAc,GAAG,KAAK,MAAM;AAAA,EACvC;AAEA,SAAO,UAAU,UAAU,UAAU;AACzC;"}
1
+ {"version":3,"file":"color.js","sources":["../../../src/charts/utils/color.ts"],"sourcesContent":["import themeColors from '../../../tailwind.colors.js';\n\nconst mapColor = (palette: any, prefix = ''): any => {\n return Object.keys(palette).reduce((accum, color) => {\n if (color === 'current') {\n return accum;\n }\n\n if (typeof palette[color] === 'string') {\n return {\n ...accum,\n [prefix ? (color === 'DEFAULT' ? prefix : `${prefix}-${color}`) : color]: palette[color],\n };\n }\n\n return {\n ...accum,\n ...mapColor(palette[color], color),\n };\n }, {});\n};\n\nexport const colors: Record<string, string> = mapColor(themeColors);\n\nexport type Color = keyof typeof colors;\n\nexport const getThemeColor = (color: string | Color | undefined, def = '') => colors[color ?? def];\n\nexport const getInverseThemeColor = (hexCode: string) => {\n const themeColor: Color | undefined = Object.keys(colors)[Object.values(colors).indexOf(hexCode)];\n\n const [color, number] = String(themeColor).split('-');\n const shade = Number(number);\n\n if (shade) {\n if (shade > 500) {\n return getThemeColor(`${color}-100`);\n }\n if (shade === 500 && (color === 'red' || color === 'blue' || color === 'purple' || color === 'green')) {\n return 'white';\n }\n\n return getThemeColor(`${color}-900`);\n }\n\n return color === 'black' ? 'white' : 'black';\n};\n"],"names":["themeColors"],"mappings":";AAEA,MAAM,WAAW,CAAC,SAAc,SAAS,OAAY;AACjD,SAAO,OAAO,KAAK,OAAO,EAAE,OAAO,CAAC,OAAO,UAAU;AACjD,QAAI,UAAU,WAAW;AACrB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,QAAQ,KAAK,MAAM,UAAU;AACpC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,CAAC,SAAU,UAAU,YAAY,SAAS,GAAG,MAAM,IAAI,KAAK,KAAM,KAAK,GAAG,QAAQ,KAAK;AAAA,MAAA;AAAA,IAE/F;AAEA,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG,SAAS,QAAQ,KAAK,GAAG,KAAK;AAAA,IAAA;AAAA,EAEzC,GAAG,CAAA,CAAE;AACT;AAEO,MAAM,SAAiC,SAASA,YAAW;AAI3D,MAAM,gBAAgB,CAAC,OAAmC,MAAM,OAAO,OAAO,SAAS,GAAG;AAE1F,MAAM,uBAAuB,CAAC,YAAoB;AACrD,QAAM,aAAgC,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,MAAM,EAAE,QAAQ,OAAO,CAAC;AAEhG,QAAM,CAAC,OAAO,MAAM,IAAI,OAAO,UAAU,EAAE,MAAM,GAAG;AACpD,QAAM,QAAQ,OAAO,MAAM;AAE3B,MAAI,OAAO;AACP,QAAI,QAAQ,KAAK;AACb,aAAO,cAAc,GAAG,KAAK,MAAM;AAAA,IACvC;AACA,QAAI,UAAU,QAAQ,UAAU,SAAS,UAAU,UAAU,UAAU,YAAY,UAAU,UAAU;AACnG,aAAO;AAAA,IACX;AAEA,WAAO,cAAc,GAAG,KAAK,MAAM;AAAA,EACvC;AAEA,SAAO,UAAU,UAAU,UAAU;AACzC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { MenuItemProps } from '../../components/Menu/components/Item';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '../../types';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement | null> | ((instance: HTMLElement | null | undefined) => void);\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":";;AA0BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { MenuItemProps } from '../../components/Menu/components/Item';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '../../types';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.Ref<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":";;AA0BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;;"}
@@ -61,7 +61,7 @@ export type TableColumnRendererControlProps = {
61
61
  onKeyDown?: React.KeyboardEventHandler;
62
62
  onFocus?: React.FocusEventHandler;
63
63
  readOnly?: boolean;
64
- ref: React.RefObject<HTMLElement | null> | ((instance: HTMLElement | null | undefined) => void);
64
+ ref: React.Ref<HTMLElement>;
65
65
  setValue: (value: any) => void;
66
66
  value: any;
67
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { MenuItemProps } from '../../components/Menu/components/Item';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '../../types';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement | null> | ((instance: HTMLElement | null | undefined) => void);\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":"AA0BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/primitives/Table/types.ts"],"sourcesContent":["import type {\n ColumnFilter as ReactTableColumnFilter,\n ColumnFiltersState as ReactTableColumnFilterState,\n ColumnOrderState as ReactTableColumnOrderState,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSort as ReactTableColumnSort,\n ColumnSizingState as ReactTableColumnSizingState,\n VisibilityState as ReactTableColumnVisibilityState,\n SortingState as ReactTableSortingState,\n BuiltInAggregationFn as ReactTableBuiltInAggregationFn,\n BuiltInSortingFn as ReactTableBuiltInSortingFn,\n} from '@tanstack/react-table';\n\nimport type { MenuItemProps } from '../../components/Menu/components/Item';\nimport type { DotNotationPaths, FontSize, FontSizes, DotNotationPathValue } from '../../types';\n\nexport type TableRef = HTMLTableElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\n// filtering\nexport enum TableFilterComparator {\n Contains = 0,\n DoesNotContain = 1,\n IsEqualTo = 2,\n IsNotEqualTo = 3,\n IsGreaterThan = 4,\n IsLessThan = 5,\n IsBetween = 6,\n IsEmpty = 7,\n IsNotEmpty = 8,\n IsLessThanOrEqualTo = 9,\n IsGreaterThanOrEqualTo = 10,\n HasAnyOf = 11,\n HasAllOf = 12,\n HasNoneOf = 13,\n IsOneOf = 14,\n IsNoneOf = 15,\n}\nexport type TableFilterValue = {\n comparator: TableFilterComparator;\n value: any;\n};\nexport type TableFilter = {\n id: string;\n value: TableFilterValue;\n};\n\n// columns\nexport type TableColumnAlignment = 'left' | 'center' | 'right';\nexport type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type TableColumnDataType =\n // base\n | 'text'\n | 'boolean'\n // dates\n | 'date'\n | 'time'\n | 'datetime'\n // numbers\n | 'number'\n | 'amount'\n | 'percentage';\nexport type TableColumnFilter = ReactTableColumnFilter;\nexport type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];\nexport type TableColumnRendererArgs<TType, TValue> = TValue extends undefined\n ? { formattedValue: undefined; row: TType; value: undefined }\n : { formattedValue: string; row: TType; value: TValue };\nexport type TableColumnRenderer<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererAggregate<TType, TValue = unknown> = (\n args: TableColumnRendererArgs<TType, TValue>\n) => React.JSX.Element | string | number | unknown | null;\nexport type TableColumnRendererControl<TType = unknown> =\n | ((props: TableColumnRendererControlProps, row?: TType, filterState?: TableFilter[]) => React.JSX.Element | null)\n | 'datepicker'\n | 'input'\n | 'switch'\n | 'checkbox'\n | 'textarea';\nexport type TableColumnRendererControlProps = {\n className?: string;\n disabled?: boolean;\n fontSize?: FontSize;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onKeyDown?: React.KeyboardEventHandler;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.Ref<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type TableColumnRendererHeader = string | React.JSX.Element;\nexport type TableColumnRendererFooter<TType> = (rows: TType[]) => React.JSX.Element | string | number | null;\nexport type TableColumnSort = ReactTableColumnSort;\nexport type TableColumnSortDirection = 'asc' | 'desc';\nexport type TableColumnSortFn<TType = unknown> =\n ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1) | ReactTableBuiltInSortingFn | 'auto';\nexport type TableColumnWidth = number | 'grow';\n\n// rows\nexport type TableRowActionRenderer<TType = unknown> = (\n row: TType,\n helpers: {\n editing?: {\n isEditing: boolean;\n removeRowChanges: () => Promise<void>;\n save: () => Promise<boolean>;\n };\n }\n) => React.JSX.Element | null;\n\nexport type TableRowActionGroupRenderer<TType = unknown> = (rows: TType[]) => React.JSX.Element | null;\nexport type TableRowClickHandler<TType = unknown> = (row: TType) => void;\nexport type TableRowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (text: string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type TableRowDropHandler<TType = unknown> = (event: React.DragEvent, row: TType) => void;\nexport type TableRowGotoHandler = (\n column: string,\n query: string,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type TableRowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type TableRowActiveHandler<TType = unknown> = (row: TType | undefined) => void;\nexport type TableRowSelectHandler<TType = unknown> = (rows: TType[], ids: string[]) => void;\nexport type TableRowWithMetaData<TType = unknown> = TType & {\n _meta?: {\n layout?: 'heading' | 'summary' | 'item';\n };\n};\n\n// shortcuts\nexport type TableShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type TableShortcutHandlerObject<TType = unknown> = {\n handler: TableShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\n\n// table\nexport type TableSortHandler = (sorting: TableColumnSort[]) => Promise<void> | void;\nexport type TableFilterHandler = (filters: TableColumnFilter[], hiddenColumns: string[]) => Promise<void> | void;\nexport type TableSearchHandler = (search: string | undefined, hiddenColumns: string[]) => Promise<void> | void;\nexport type TableFontSize = keyof typeof FontSizes;\nexport type TablePreset = 'complex' | 'list' | 'simple';\nexport type TableRowExpansionRenderer<TType = unknown> = (row: TType) => (() => React.JSX.Element) | null;\nexport type TableScrollToIndexHandler = (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\nexport type TableServerLoadPageHandler = (\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableServerLoadAllHandler = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<void>;\nexport type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;\nexport type TablePrintSettings = {\n allRows: boolean;\n orientation: 'portrait' | 'landscape';\n size: 'A3' | 'A4' | 'A5' | 'letter' | 'legal';\n splitGroups: boolean;\n};\nexport type TablePrintHandler = (settings: TableSettings, printSettings: TablePrintSettings) => Promise<void>;\nexport type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;\nexport type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];\nexport type TableEmptyStateReason = 'empty' | 'filtering' | 'searching';\nexport type TableEmptyStateRenderer = (props: { reason: TableEmptyStateReason }) => React.JSX.Element | null;\nexport type TableEvent = 'editing-mode';\nexport type TableEventHandler = (event: TableEvent, data?: object) => void;\n\n// settings\nexport type TableSettings = {\n columnFilters?: ReactTableColumnFilterState;\n columnOrder?: ReactTableColumnOrderState;\n columnPinning?: ReactTableColumnPinningState;\n columnSizing?: ReactTableColumnSizingState;\n columnVisibility?: ReactTableColumnVisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: TableFontSize;\n rowHeight?: TableRowHeight;\n searchQuery?: string;\n sorting?: ReactTableSortingState;\n};\nexport type TableEnableSettingsOptions = {\n columnOrder: boolean;\n columnPinning: boolean;\n columnSizing: boolean;\n columnVisibility: boolean;\n excludeUnmatchedRecordsInSearch: boolean;\n fontSize: boolean;\n grouping: boolean;\n rowHeight: boolean;\n sorting: boolean;\n};\n\n// props\nexport type TableConditionalRowProp<TType = unknown> = boolean | ((row: TType) => boolean);\nexport type TableFeatureProps<TType = unknown> = {\n // react-table built-in\n enableFiltering?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableColumnFreezing?: boolean;\n enableColumnHiding?: boolean;\n enableColumnResizing?: boolean;\n enableRowExpansion?: boolean;\n enableRowExpansionAll?: boolean;\n enableRowSelection?: TableConditionalRowProp<TType>;\n\n // custom -- common between all table types\n enableColumnOrdering?: boolean;\n enableFontSize?: boolean;\n enableFooter?: boolean;\n enablePrinting?: boolean;\n enableRowActions?: boolean;\n enableRowActive?: boolean;\n enableRowClick?: TableConditionalRowProp<TType>;\n enableRowDrag?: boolean;\n enableRowDrop?: boolean;\n enableRowGoto?: boolean;\n enableRowHeight?: boolean;\n enableSaveSettings?: boolean | Partial<TableEnableSettingsOptions>;\n enableSaveSettingsLocally?: boolean;\n};\n\nexport type TableChild = React.JSX.Element | React.JSX.Element[] | boolean | null | undefined;\n\n// Base props\ntype TableCommonBaseProps<TType = unknown> = TableFeatureProps<TType> & {\n children: TableChild | TableChild[];\n data: TType[];\n id: string;\n\n // misc\n customSettings?: TableCustomSettingsRenderer;\n defaultColumnFreezingIndex?: number;\n defaultRowActiveIndex?: number;\n defaultRowGroupColumnId?: keyof TType;\n defaultSettings?: TableSettings;\n emptyState?: TableEmptyStateRenderer;\n enableLocalKeyboardShortcuts?: boolean;\n preset?: TablePreset;\n rowActions?: TableRowActionRenderer<TType>[];\n rowActionsForGroup?: TableRowActionGroupRenderer<TType>[];\n rowActionsLength?: number;\n rowExpansionRenderer?: TableRowExpansionRenderer<TType>;\n shortcuts?: TableShortcuts<TType>;\n toolbarLeft?: React.JSX.Element;\n toolbarRight?: React.JSX.Element;\n toolbarPanel?: React.JSX.Element;\n\n // handlers\n onEvent?: TableEventHandler;\n onRowActive?: TableRowActiveHandler<TType>;\n onRowClick?: TableRowClickHandler<TType>;\n onRowDrag?: TableRowDragHandler<TType>;\n onRowDrop?: TableRowDropHandler<TType>;\n onRowGoto?: TableRowGotoHandler;\n onRowSelect?: TableRowSelectHandler<TType>;\n\n // state change handlers\n onChangeFilter?: TableFilterHandler;\n onChangeSearch?: TableSearchHandler;\n onChangeSettings?: TableSettingsHandler;\n onChangeSort?: TableSortHandler;\n onPrint?: TablePrintHandler;\n};\n\n// Branch 1: Client-side without controlled selection\n// selectedRows is 'never' to force TypeScript to require rowIdentityAccessor when selectedRows is used\ntype TableClientPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 2: Server-side without controlled selection\ntype TableServerPropsBase<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor?: keyof TType; // Optional\n selectedRows?: never; // Forbidden\n};\n\n// Branch 3: Client-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableClientPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length?: never;\n loadAll?: never;\n loadPage?: never;\n pageSize?: never;\n pages?: never;\n _experimentalDataLoader2?: never;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Branch 4: Server-side with controlled selection\n// Both rowIdentityAccessor and selectedRows are required\ntype TableServerPropsWithSelection<TType = unknown> = TableCommonBaseProps<TType> & {\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n pageSize?: number;\n pages?: number[];\n _experimentalDataLoader2?: boolean;\n\n rowIdentityAccessor: keyof TType;\n selectedRows: string[];\n};\n\n// Discriminated union: providing selectedRows forces TypeScript to use branches 3/4, which require rowIdentityAccessor\nexport type TableClientProps<TType = unknown> = TableClientPropsBase<TType> | TableClientPropsWithSelection<TType>;\nexport type TableServerProps<TType = unknown> = TableServerPropsBase<TType> | TableServerPropsWithSelection<TType>;\n\n// For backward compatibility (used by hooks/internals that don't care about the constraint)\nexport type TableCommonProps<TType = unknown> = TableCommonBaseProps<TType> & {\n rowIdentityAccessor?: keyof TType;\n selectedRows?: string[];\n};\n\nexport type TableProps<TType = unknown> = TableClientProps<TType> | TableServerProps<TType>;\n\nexport type TableColumnDataTypeOptions = {\n currency?: string;\n decimals?: number;\n useGrouping?: boolean;\n};\n\nexport type TableColumnDataTypeOptionsHandler<TType = unknown, TOptions = TableColumnDataTypeOptions> =\n TOptions | ((row: TType) => TOptions);\n\nexport type TableColumnDataTypeProps<TType = unknown> =\n // number should allow currency, decimals and useGrouping\n | {\n dataType?: 'number';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'currency' | 'decimals' | 'useGrouping'>\n >;\n }\n // amount should allow currency\n | {\n dataType?: 'amount';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<TType, Pick<TableColumnDataTypeOptions, 'currency'>>;\n }\n // percentage should allow decimals and useGrouping\n | {\n dataType?: 'percentage';\n dataTypeOptions?: TableColumnDataTypeOptionsHandler<\n TType,\n Pick<TableColumnDataTypeOptions, 'decimals' | 'useGrouping'>\n >;\n }\n // others should not allow options\n | {\n dataType?: Omit<TableColumnDataType, 'number' | 'amount' | 'percentage'>;\n dataTypeOptions?: never;\n };\n\nexport type TableColumnIdentifierProps<TType = unknown> =\n // type correctly if an accessor is provided\n | {\n [Key in DotNotationPaths<TType>]: {\n accessor: Key;\n id?: string;\n renderer?: TableColumnRenderer<TType, DotNotationPathValue<TType, Key>> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, DotNotationPathValue<TType, Key>> | undefined;\n };\n }[DotNotationPaths<TType>]\n // otherwise fall back to unknown\n | {\n accessor?: never;\n id: string;\n renderer?: TableColumnRenderer<TType, undefined> | undefined;\n aggregate?: TableColumnRendererAggregate<TType, undefined> | undefined;\n };\n\nexport type TableColumnProps<TType = unknown> = TableColumnIdentifierProps<TType> &\n TableColumnDataTypeProps<TType> & {\n // renderers - some that require Key are below, to ensure correct typing\n control?: TableColumnRendererControl<TType> | undefined;\n footer?: TableColumnRendererFooter<TType> | undefined;\n header: TableColumnRendererHeader;\n // options\n /** Aggregation function to be used when the column is part of a grouped row */\n aggregationFn?: 'auto' | ReactTableBuiltInAggregationFn;\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TType>;\n dataType?: TableColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: TableColumnWidth;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableFiltering?: boolean;\n enableGrouping?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n headerClassName?: string;\n menu?: TableColumnMenu;\n minWidth?: number;\n sort?: TableColumnSortDirection;\n sortFn?: TableColumnSortFn<TType>;\n tooltip?: string;\n };\n\nexport type TableGroupProps = {\n children: (React.JSX.Element | boolean | null | undefined)[];\n header: string;\n id: string;\n};\n\nexport type TableTexts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n editFilter: string;\n filter: string;\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n sorting: string;\n sortingOrder: {\n ascending: string;\n descending: string;\n unsorted: string;\n };\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n cancel: string;\n clear: string;\n apply: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isEmpty: string;\n isNotEmpty: string;\n isBefore: string;\n isAfter: string;\n isLessThanOrEqualTo: string;\n isGreaterThanOrEqualTo: string;\n isOnOrBefore: string;\n isOnOrAfter: string;\n hasAnyOf: string;\n hasAllOf: string;\n hasNoneOf: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n hiddenColumn: string;\n hiddenGroupedColumn: string;\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n settingsDialog: {\n title: string;\n size: string;\n sizeA5: string;\n sizeA4: string;\n sizeA3: string;\n sizeLetter: string;\n sizeLegal: string;\n orientation: string;\n orientationLandscape: string;\n orientationPortrait: string;\n rows: string;\n rowsAll: string;\n rowsSelected: string;\n layout: string;\n layoutSplitGroups: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n otherOptions: {\n tooltip: string;\n };\n};\n"],"names":["TableFilterComparator"],"mappings":"AA0BO,IAAK,0CAAAA,2BAAL;AACHA,yBAAAA,uBAAA,cAAW,CAAA,IAAX;AACAA,yBAAAA,uBAAA,oBAAiB,CAAA,IAAjB;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,kBAAe,CAAA,IAAf;AACAA,yBAAAA,uBAAA,mBAAgB,CAAA,IAAhB;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,eAAY,CAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,CAAA,IAAV;AACAA,yBAAAA,uBAAA,gBAAa,CAAA,IAAb;AACAA,yBAAAA,uBAAA,yBAAsB,CAAA,IAAtB;AACAA,yBAAAA,uBAAA,4BAAyB,EAAA,IAAzB;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AACAA,yBAAAA,uBAAA,eAAY,EAAA,IAAZ;AACAA,yBAAAA,uBAAA,aAAU,EAAA,IAAV;AACAA,yBAAAA,uBAAA,cAAW,EAAA,IAAX;AAhBQ,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;"}
@@ -1,29 +1,5 @@
1
1
  "use strict";
2
2
  const tokens = require("@economic/taco-tokens/tokens");
3
- const LEGACY_BROWN = {
4
- 100: "#EEE0DA",
5
- // Used in Badge component
6
- 300: "#C4AB9E",
7
- // Client: Used in paymentcards
8
- 500: "#93715D",
9
- // Client: Used in paymentcards, invoicing dashboard
10
- 700: "#73503B",
11
- // Client: Used in paymentcards, invoicing dashboard
12
- 900: "#45291F"
13
- // Used in Badge component
14
- };
15
- const LEGACY_ORANGE = {
16
- 100: "#FFE3BB",
17
- // Used in Badge component
18
- 300: "#FAB64D",
19
- // Client: Used in paymentcards, workflows
20
- 500: "#F99702",
21
- // Client: Used in Avatar component
22
- 700: "#EF7D00",
23
- // Client: Used in paymentcards
24
- 900: "#4A2811"
25
- // Used in Badge component
26
- };
27
3
  const BLACK_SUBTLE_ALPHA = 7;
28
4
  const BLACK_SUBTLE = `color-mix(in oklab, ${tokens.neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;
29
5
  const WHITE_SUBTLE_ALPHA = 8;
@@ -157,9 +133,7 @@ const THEME_COLORS = {
157
133
  red: palette.red,
158
134
  green: palette.green,
159
135
  yellow: palette.yellow,
160
- pink: palette.pink,
161
- brown: LEGACY_BROWN,
162
- orange: LEGACY_ORANGE
136
+ pink: palette.pink
163
137
  };
164
138
  module.exports = THEME_COLORS;
165
139
  //# sourceMappingURL=tailwind.colors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind.colors.cjs","sources":["../tailwind.colors.js"],"sourcesContent":["/**\n * Taco Tailwind color theme.\n *\n * Structure:\n * 1. Legacy constants — colors not (yet) in the token pipeline.\n * 2. Semantic constants — non-token UI colors (overlay blends, etc.).\n * 3. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.\n * 4. palette — assembled from all token maps; mutated to add DEFAULT shades.\n * 5. THEME_COLORS — the final export consumed by tailwind.config.js.\n *\n * To add a new token-backed color family: add rows to the relevant *_MAP and a\n * `palette.<family>` entry in THEME_COLORS. Do NOT edit taco-tokens — it is generated.\n */\nimport { primaryColors, secondaryColors, tertiaryColors, neutralColors, brandColors } from '@economic/taco-tokens/tokens';\n\n// ─── 1. Legacy constants ──────────────────────────────────────────────────────\n\n// Not generated in tokens: TODO: Map and remove post color palette update\nconst LEGACY_BROWN = {\n 100: '#EEE0DA', // Used in Badge component\n 300: '#C4AB9E', // Client: Used in paymentcards\n 500: '#93715D', // Client: Used in paymentcards, invoicing dashboard\n 700: '#73503B', // Client: Used in paymentcards, invoicing dashboard\n 900: '#45291F', // Used in Badge component\n};\n\n// Not generated in tokens: TODO: Map and remove post color palette update */\nconst LEGACY_ORANGE = {\n 100: '#FFE3BB', // Used in Badge component\n 300: '#FAB64D', // Client: Used in paymentcards, workflows\n 500: '#F99702', // Client: Used in Avatar component\n 700: '#EF7D00', // Client: Used in paymentcards\n 900: '#4A2811', // Used in Badge component\n};\n\n// ─── 2. Semantic constants ────────────────────────────────────────────────────\n\n/** Not in tokens: 7% tacoNeutralBlack over transparent → `bg-black-subtle`. */\nconst BLACK_SUBTLE_ALPHA = 7;\nconst BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;\n\n/** Not in tokens: 8% tacoNeutralWhite over transparent → `bg-white-subtle`. */\nconst WHITE_SUBTLE_ALPHA = 8;\nconst WHITE_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralWhite} ${WHITE_SUBTLE_ALPHA}%, transparent)`;\n\n// ─── 3. Token maps ────────────────────────────────────────────────────────────\n\n/**\n * Maps token keys from a source object into a `{ [family]: { [shade]: hex } }` structure\n * that Tailwind can consume as a color scale.\n *\n * @param {Record<string, string>} source - A taco-tokens export (e.g. `primaryColors`).\n * @param {ReadonlyArray<readonly [string, string, string | number]>} rows - Each row is\n * [tokenKey, tailwindFamily, tailwindShade], e.g. ['tacoBlue500', 'blue', 500].\n * @returns {Record<string, Record<string | number, string>>}\n */\nconst assignTokenShades = (source, rows) => {\n const out = {};\n for (const [tokenKey, family, shade] of rows) {\n const value = source[tokenKey];\n if (value === undefined) {\n continue;\n }\n if (!out[family]) {\n out[family] = {};\n }\n out[family][shade] = value;\n }\n return out;\n};\n\nconst PRIMARY_MAP = [\n ['tacoBlue50', 'blue', 50],\n ['tacoBlue100', 'blue', 100],\n ['tacoBlue200', 'blue', 200],\n ['tacoBlue300', 'blue', 300],\n ['tacoBlue500', 'blue', 500],\n ['tacoBlue700', 'blue', 700],\n ['tacoBlue900', 'blue', 900],\n ['tacoGray50', 'gray', 50],\n ['tacoGray100', 'gray', 100],\n ['tacoGray200', 'gray', 200],\n ['tacoGray300', 'gray', 300],\n ['tacoGray500', 'gray', 500],\n ['tacoGray700', 'gray', 700],\n ['tacoGray900', 'gray', 900],\n];\n\nconst SECONDARY_MAP = [\n ['tacoRed50', 'red', 50],\n ['tacoRed100', 'red', 100],\n ['tacoRed200', 'red', 200],\n ['tacoRed300', 'red', 300],\n ['tacoRed500', 'red', 500],\n ['tacoRed700', 'red', 700],\n ['tacoRed900', 'red', 900],\n ['tacoYellow50', 'yellow', 50],\n ['tacoYellow100', 'yellow', 100],\n ['tacoYellow200', 'yellow', 200],\n ['tacoYellow300', 'yellow', 300],\n ['tacoYellow500', 'yellow', 500],\n ['tacoYellow700', 'yellow', 700],\n ['tacoYellow900', 'yellow', 900],\n ['tacoGreen50', 'green', 50],\n ['tacoGreen100', 'green', 100],\n ['tacoGreen200', 'green', 200],\n ['tacoGreen300', 'green', 300],\n ['tacoGreen500', 'green', 500],\n ['tacoGreen700', 'green', 700],\n ['tacoGreen900', 'green', 900],\n];\n\nconst TERTIARY_MAP = [\n ['tacoPink50', 'pink', 50],\n ['tacoPink100', 'pink', 100],\n ['tacoPink200', 'pink', 200],\n ['tacoPink300', 'pink', 300],\n ['tacoPink500', 'pink', 500],\n ['tacoPink700', 'pink', 700],\n ['tacoPink900', 'pink', 900],\n ['tacoPurple50', 'purple', 50],\n ['tacoPurple100', 'purple', 100],\n ['tacoPurple200', 'purple', 200],\n ['tacoPurple300', 'purple', 300],\n ['tacoPurple500', 'purple', 500],\n ['tacoPurple700', 'purple', 700],\n ['tacoPurple900', 'purple', 900],\n];\n\n/**\n * Matches --taco-neutral-white / --taco-neutral-black in tokens.css.\n * Note: palette.neutral.white / .black are not exposed in THEME_COLORS — `white` and `black`\n * are set directly from neutralColors instead to keep utilities flat (bg-white, not bg-neutral-white).\n */\nconst NEUTRAL_MAP = [\n ['tacoNeutralWhite', 'neutral', 'white'],\n ['tacoNeutralBlack', 'neutral', 'black'],\n];\n\n// ─── 4. Palette assembly ──────────────────────────────────────────────────────\n\nconst fromPrimary = assignTokenShades(primaryColors, PRIMARY_MAP);\nconst fromSecondary = assignTokenShades(secondaryColors, SECONDARY_MAP);\nconst fromTertiary = assignTokenShades(tertiaryColors, TERTIARY_MAP);\nconst fromNeutral = assignTokenShades(neutralColors, NEUTRAL_MAP);\n\nconst mergeFamilies = (...parts) => {\n const merged = {};\n for (const part of parts) {\n for (const [family, shades] of Object.entries(part)) {\n merged[family] = { ...merged[family], ...shades };\n }\n }\n return merged;\n};\n\nconst palette = mergeFamilies(fromPrimary, fromSecondary, fromTertiary, fromNeutral);\n\n// `DEFAULT` lets Tailwind resolve bare utilities (e.g. `bg-blue` → blue-500, `text-red` → red-500).\npalette.blue = {\n DEFAULT: primaryColors.tacoBlue500,\n ...palette.blue,\n};\n\npalette.red = {\n DEFAULT: secondaryColors.tacoRed500,\n ...palette.red,\n};\n\npalette.green = {\n DEFAULT: secondaryColors.tacoGreen500,\n ...palette.green,\n};\n\npalette.yellow = {\n DEFAULT: secondaryColors.tacoYellow500,\n ...palette.yellow,\n};\n\npalette.gray = {\n DEFAULT: primaryColors.tacoGray50,\n ...palette.gray,\n};\n\n// ─── 5. Theme colors ──────────────────────────────────────────────────────────\n\nconst THEME_COLORS = {\n transparent: 'transparent',\n current: 'currentColor',\n white: neutralColors.tacoNeutralWhite,\n black: neutralColors.tacoNeutralBlack,\n 'black-subtle': BLACK_SUBTLE,\n 'white-subtle': WHITE_SUBTLE,\n brand: {\n morning: brandColors.tacoBrandMorning,\n noon: brandColors.tacoBrandNoon,\n sunset: brandColors.tacoBrandSunset,\n midnight: brandColors.tacoBrandMidnight,\n },\n /** Alias for `gray` — supports both spellings in className strings. */\n grey: { ...palette.gray },\n gray: palette.gray,\n neutral: palette.neutral,\n purple: palette.purple,\n blue: palette.blue,\n red: palette.red,\n green: palette.green,\n yellow: palette.yellow,\n pink: palette.pink,\n brown: LEGACY_BROWN,\n orange: LEGACY_ORANGE,\n};\n\nexport default THEME_COLORS;\n"],"names":["neutralColors","primaryColors","secondaryColors","tertiaryColors","brandColors"],"mappings":"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"}
1
+ {"version":3,"file":"tailwind.colors.cjs","sources":["../tailwind.colors.js"],"sourcesContent":["/**\n * Taco Tailwind color theme.\n *\n * Structure:\n * 1. Semantic constants — non-token UI colors (overlay blends, etc.).\n * 2. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.\n * 3. Palette — assembled from all token maps; mutated to add DEFAULT shades.\n * 4. THEME_COLORS — the final export consumed by tailwind.config.js.\n *\n * To add a new token-backed color family: add rows to the relevant *_MAP and a\n * `palette.<family>` entry in THEME_COLORS. Do NOT edit taco-tokens — it is generated.\n */\nimport { primaryColors, secondaryColors, tertiaryColors, neutralColors, brandColors } from '@economic/taco-tokens/tokens';\n\n// ─── 1. Semantic constants ────────────────────────────────────────────────────\n\n/** Not in tokens: 7% tacoNeutralBlack over transparent → `bg-black-subtle`. */\nconst BLACK_SUBTLE_ALPHA = 7;\nconst BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;\n\n/** Not in tokens: 8% tacoNeutralWhite over transparent → `bg-white-subtle`. */\nconst WHITE_SUBTLE_ALPHA = 8;\nconst WHITE_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralWhite} ${WHITE_SUBTLE_ALPHA}%, transparent)`;\n\n// ─── 2. Token maps ────────────────────────────────────────────────────────────\n\n/**\n * Maps token keys from a source object into a `{ [family]: { [shade]: hex } }` structure\n * that Tailwind can consume as a color scale.\n *\n * @param {Record<string, string>} source - A taco-tokens export (e.g. `primaryColors`).\n * @param {ReadonlyArray<readonly [string, string, string | number]>} rows - Each row is\n * [tokenKey, tailwindFamily, tailwindShade], e.g. ['tacoBlue500', 'blue', 500].\n * @returns {Record<string, Record<string | number, string>>}\n */\nconst assignTokenShades = (source, rows) => {\n const out = {};\n for (const [tokenKey, family, shade] of rows) {\n const value = source[tokenKey];\n if (value === undefined) {\n continue;\n }\n if (!out[family]) {\n out[family] = {};\n }\n out[family][shade] = value;\n }\n return out;\n};\n\nconst PRIMARY_MAP = [\n ['tacoBlue50', 'blue', 50],\n ['tacoBlue100', 'blue', 100],\n ['tacoBlue200', 'blue', 200],\n ['tacoBlue300', 'blue', 300],\n ['tacoBlue500', 'blue', 500],\n ['tacoBlue700', 'blue', 700],\n ['tacoBlue900', 'blue', 900],\n ['tacoGray50', 'gray', 50],\n ['tacoGray100', 'gray', 100],\n ['tacoGray200', 'gray', 200],\n ['tacoGray300', 'gray', 300],\n ['tacoGray500', 'gray', 500],\n ['tacoGray700', 'gray', 700],\n ['tacoGray900', 'gray', 900],\n];\n\nconst SECONDARY_MAP = [\n ['tacoRed50', 'red', 50],\n ['tacoRed100', 'red', 100],\n ['tacoRed200', 'red', 200],\n ['tacoRed300', 'red', 300],\n ['tacoRed500', 'red', 500],\n ['tacoRed700', 'red', 700],\n ['tacoRed900', 'red', 900],\n ['tacoYellow50', 'yellow', 50],\n ['tacoYellow100', 'yellow', 100],\n ['tacoYellow200', 'yellow', 200],\n ['tacoYellow300', 'yellow', 300],\n ['tacoYellow500', 'yellow', 500],\n ['tacoYellow700', 'yellow', 700],\n ['tacoYellow900', 'yellow', 900],\n ['tacoGreen50', 'green', 50],\n ['tacoGreen100', 'green', 100],\n ['tacoGreen200', 'green', 200],\n ['tacoGreen300', 'green', 300],\n ['tacoGreen500', 'green', 500],\n ['tacoGreen700', 'green', 700],\n ['tacoGreen900', 'green', 900],\n];\n\nconst TERTIARY_MAP = [\n ['tacoPink50', 'pink', 50],\n ['tacoPink100', 'pink', 100],\n ['tacoPink200', 'pink', 200],\n ['tacoPink300', 'pink', 300],\n ['tacoPink500', 'pink', 500],\n ['tacoPink700', 'pink', 700],\n ['tacoPink900', 'pink', 900],\n ['tacoPurple50', 'purple', 50],\n ['tacoPurple100', 'purple', 100],\n ['tacoPurple200', 'purple', 200],\n ['tacoPurple300', 'purple', 300],\n ['tacoPurple500', 'purple', 500],\n ['tacoPurple700', 'purple', 700],\n ['tacoPurple900', 'purple', 900],\n];\n\n/**\n * Matches --taco-neutral-white / --taco-neutral-black in tokens.css.\n * Note: palette.neutral.white / .black are not exposed in THEME_COLORS — `white` and `black`\n * are set directly from neutralColors instead to keep utilities flat (bg-white, not bg-neutral-white).\n */\nconst NEUTRAL_MAP = [\n ['tacoNeutralWhite', 'neutral', 'white'],\n ['tacoNeutralBlack', 'neutral', 'black'],\n];\n\n// ─── 3. Palette assembly ──────────────────────────────────────────────────────\n\nconst fromPrimary = assignTokenShades(primaryColors, PRIMARY_MAP);\nconst fromSecondary = assignTokenShades(secondaryColors, SECONDARY_MAP);\nconst fromTertiary = assignTokenShades(tertiaryColors, TERTIARY_MAP);\nconst fromNeutral = assignTokenShades(neutralColors, NEUTRAL_MAP);\n\nconst mergeFamilies = (...parts) => {\n const merged = {};\n for (const part of parts) {\n for (const [family, shades] of Object.entries(part)) {\n merged[family] = { ...merged[family], ...shades };\n }\n }\n return merged;\n};\n\nconst palette = mergeFamilies(fromPrimary, fromSecondary, fromTertiary, fromNeutral);\n\n// `DEFAULT` lets Tailwind resolve bare utilities (e.g. `bg-blue` → blue-500, `text-red` → red-500).\npalette.blue = {\n DEFAULT: primaryColors.tacoBlue500,\n ...palette.blue,\n};\n\npalette.red = {\n DEFAULT: secondaryColors.tacoRed500,\n ...palette.red,\n};\n\npalette.green = {\n DEFAULT: secondaryColors.tacoGreen500,\n ...palette.green,\n};\n\npalette.yellow = {\n DEFAULT: secondaryColors.tacoYellow500,\n ...palette.yellow,\n};\n\npalette.gray = {\n DEFAULT: primaryColors.tacoGray50,\n ...palette.gray,\n};\n\n// ─── 4. Theme colors ──────────────────────────────────────────────────────────\n\nconst THEME_COLORS = {\n transparent: 'transparent',\n current: 'currentColor',\n white: neutralColors.tacoNeutralWhite,\n black: neutralColors.tacoNeutralBlack,\n 'black-subtle': BLACK_SUBTLE,\n 'white-subtle': WHITE_SUBTLE,\n brand: {\n morning: brandColors.tacoBrandMorning,\n noon: brandColors.tacoBrandNoon,\n sunset: brandColors.tacoBrandSunset,\n midnight: brandColors.tacoBrandMidnight,\n },\n /** Alias for `gray` — supports both spellings in className strings. */\n grey: { ...palette.gray },\n gray: palette.gray,\n neutral: palette.neutral,\n purple: palette.purple,\n blue: palette.blue,\n red: palette.red,\n green: palette.green,\n yellow: palette.yellow,\n pink: palette.pink,\n};\n\nexport default THEME_COLORS;\n"],"names":["neutralColors","primaryColors","secondaryColors","tertiaryColors","brandColors"],"mappings":"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"}
@@ -1,28 +1,4 @@
1
1
  import { neutralColors, primaryColors, secondaryColors, brandColors, tertiaryColors } from "@economic/taco-tokens/tokens";
2
- const LEGACY_BROWN = {
3
- 100: "#EEE0DA",
4
- // Used in Badge component
5
- 300: "#C4AB9E",
6
- // Client: Used in paymentcards
7
- 500: "#93715D",
8
- // Client: Used in paymentcards, invoicing dashboard
9
- 700: "#73503B",
10
- // Client: Used in paymentcards, invoicing dashboard
11
- 900: "#45291F"
12
- // Used in Badge component
13
- };
14
- const LEGACY_ORANGE = {
15
- 100: "#FFE3BB",
16
- // Used in Badge component
17
- 300: "#FAB64D",
18
- // Client: Used in paymentcards, workflows
19
- 500: "#F99702",
20
- // Client: Used in Avatar component
21
- 700: "#EF7D00",
22
- // Client: Used in paymentcards
23
- 900: "#4A2811"
24
- // Used in Badge component
25
- };
26
2
  const BLACK_SUBTLE_ALPHA = 7;
27
3
  const BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;
28
4
  const WHITE_SUBTLE_ALPHA = 8;
@@ -156,9 +132,7 @@ const THEME_COLORS = {
156
132
  red: palette.red,
157
133
  green: palette.green,
158
134
  yellow: palette.yellow,
159
- pink: palette.pink,
160
- brown: LEGACY_BROWN,
161
- orange: LEGACY_ORANGE
135
+ pink: palette.pink
162
136
  };
163
137
  export {
164
138
  THEME_COLORS as default
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind.colors.js","sources":["../tailwind.colors.js"],"sourcesContent":["/**\n * Taco Tailwind color theme.\n *\n * Structure:\n * 1. Legacy constants — colors not (yet) in the token pipeline.\n * 2. Semantic constants — non-token UI colors (overlay blends, etc.).\n * 3. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.\n * 4. palette — assembled from all token maps; mutated to add DEFAULT shades.\n * 5. THEME_COLORS — the final export consumed by tailwind.config.js.\n *\n * To add a new token-backed color family: add rows to the relevant *_MAP and a\n * `palette.<family>` entry in THEME_COLORS. Do NOT edit taco-tokens — it is generated.\n */\nimport { primaryColors, secondaryColors, tertiaryColors, neutralColors, brandColors } from '@economic/taco-tokens/tokens';\n\n// ─── 1. Legacy constants ──────────────────────────────────────────────────────\n\n// Not generated in tokens: TODO: Map and remove post color palette update\nconst LEGACY_BROWN = {\n 100: '#EEE0DA', // Used in Badge component\n 300: '#C4AB9E', // Client: Used in paymentcards\n 500: '#93715D', // Client: Used in paymentcards, invoicing dashboard\n 700: '#73503B', // Client: Used in paymentcards, invoicing dashboard\n 900: '#45291F', // Used in Badge component\n};\n\n// Not generated in tokens: TODO: Map and remove post color palette update */\nconst LEGACY_ORANGE = {\n 100: '#FFE3BB', // Used in Badge component\n 300: '#FAB64D', // Client: Used in paymentcards, workflows\n 500: '#F99702', // Client: Used in Avatar component\n 700: '#EF7D00', // Client: Used in paymentcards\n 900: '#4A2811', // Used in Badge component\n};\n\n// ─── 2. Semantic constants ────────────────────────────────────────────────────\n\n/** Not in tokens: 7% tacoNeutralBlack over transparent → `bg-black-subtle`. */\nconst BLACK_SUBTLE_ALPHA = 7;\nconst BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;\n\n/** Not in tokens: 8% tacoNeutralWhite over transparent → `bg-white-subtle`. */\nconst WHITE_SUBTLE_ALPHA = 8;\nconst WHITE_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralWhite} ${WHITE_SUBTLE_ALPHA}%, transparent)`;\n\n// ─── 3. Token maps ────────────────────────────────────────────────────────────\n\n/**\n * Maps token keys from a source object into a `{ [family]: { [shade]: hex } }` structure\n * that Tailwind can consume as a color scale.\n *\n * @param {Record<string, string>} source - A taco-tokens export (e.g. `primaryColors`).\n * @param {ReadonlyArray<readonly [string, string, string | number]>} rows - Each row is\n * [tokenKey, tailwindFamily, tailwindShade], e.g. ['tacoBlue500', 'blue', 500].\n * @returns {Record<string, Record<string | number, string>>}\n */\nconst assignTokenShades = (source, rows) => {\n const out = {};\n for (const [tokenKey, family, shade] of rows) {\n const value = source[tokenKey];\n if (value === undefined) {\n continue;\n }\n if (!out[family]) {\n out[family] = {};\n }\n out[family][shade] = value;\n }\n return out;\n};\n\nconst PRIMARY_MAP = [\n ['tacoBlue50', 'blue', 50],\n ['tacoBlue100', 'blue', 100],\n ['tacoBlue200', 'blue', 200],\n ['tacoBlue300', 'blue', 300],\n ['tacoBlue500', 'blue', 500],\n ['tacoBlue700', 'blue', 700],\n ['tacoBlue900', 'blue', 900],\n ['tacoGray50', 'gray', 50],\n ['tacoGray100', 'gray', 100],\n ['tacoGray200', 'gray', 200],\n ['tacoGray300', 'gray', 300],\n ['tacoGray500', 'gray', 500],\n ['tacoGray700', 'gray', 700],\n ['tacoGray900', 'gray', 900],\n];\n\nconst SECONDARY_MAP = [\n ['tacoRed50', 'red', 50],\n ['tacoRed100', 'red', 100],\n ['tacoRed200', 'red', 200],\n ['tacoRed300', 'red', 300],\n ['tacoRed500', 'red', 500],\n ['tacoRed700', 'red', 700],\n ['tacoRed900', 'red', 900],\n ['tacoYellow50', 'yellow', 50],\n ['tacoYellow100', 'yellow', 100],\n ['tacoYellow200', 'yellow', 200],\n ['tacoYellow300', 'yellow', 300],\n ['tacoYellow500', 'yellow', 500],\n ['tacoYellow700', 'yellow', 700],\n ['tacoYellow900', 'yellow', 900],\n ['tacoGreen50', 'green', 50],\n ['tacoGreen100', 'green', 100],\n ['tacoGreen200', 'green', 200],\n ['tacoGreen300', 'green', 300],\n ['tacoGreen500', 'green', 500],\n ['tacoGreen700', 'green', 700],\n ['tacoGreen900', 'green', 900],\n];\n\nconst TERTIARY_MAP = [\n ['tacoPink50', 'pink', 50],\n ['tacoPink100', 'pink', 100],\n ['tacoPink200', 'pink', 200],\n ['tacoPink300', 'pink', 300],\n ['tacoPink500', 'pink', 500],\n ['tacoPink700', 'pink', 700],\n ['tacoPink900', 'pink', 900],\n ['tacoPurple50', 'purple', 50],\n ['tacoPurple100', 'purple', 100],\n ['tacoPurple200', 'purple', 200],\n ['tacoPurple300', 'purple', 300],\n ['tacoPurple500', 'purple', 500],\n ['tacoPurple700', 'purple', 700],\n ['tacoPurple900', 'purple', 900],\n];\n\n/**\n * Matches --taco-neutral-white / --taco-neutral-black in tokens.css.\n * Note: palette.neutral.white / .black are not exposed in THEME_COLORS — `white` and `black`\n * are set directly from neutralColors instead to keep utilities flat (bg-white, not bg-neutral-white).\n */\nconst NEUTRAL_MAP = [\n ['tacoNeutralWhite', 'neutral', 'white'],\n ['tacoNeutralBlack', 'neutral', 'black'],\n];\n\n// ─── 4. Palette assembly ──────────────────────────────────────────────────────\n\nconst fromPrimary = assignTokenShades(primaryColors, PRIMARY_MAP);\nconst fromSecondary = assignTokenShades(secondaryColors, SECONDARY_MAP);\nconst fromTertiary = assignTokenShades(tertiaryColors, TERTIARY_MAP);\nconst fromNeutral = assignTokenShades(neutralColors, NEUTRAL_MAP);\n\nconst mergeFamilies = (...parts) => {\n const merged = {};\n for (const part of parts) {\n for (const [family, shades] of Object.entries(part)) {\n merged[family] = { ...merged[family], ...shades };\n }\n }\n return merged;\n};\n\nconst palette = mergeFamilies(fromPrimary, fromSecondary, fromTertiary, fromNeutral);\n\n// `DEFAULT` lets Tailwind resolve bare utilities (e.g. `bg-blue` → blue-500, `text-red` → red-500).\npalette.blue = {\n DEFAULT: primaryColors.tacoBlue500,\n ...palette.blue,\n};\n\npalette.red = {\n DEFAULT: secondaryColors.tacoRed500,\n ...palette.red,\n};\n\npalette.green = {\n DEFAULT: secondaryColors.tacoGreen500,\n ...palette.green,\n};\n\npalette.yellow = {\n DEFAULT: secondaryColors.tacoYellow500,\n ...palette.yellow,\n};\n\npalette.gray = {\n DEFAULT: primaryColors.tacoGray50,\n ...palette.gray,\n};\n\n// ─── 5. Theme colors ──────────────────────────────────────────────────────────\n\nconst THEME_COLORS = {\n transparent: 'transparent',\n current: 'currentColor',\n white: neutralColors.tacoNeutralWhite,\n black: neutralColors.tacoNeutralBlack,\n 'black-subtle': BLACK_SUBTLE,\n 'white-subtle': WHITE_SUBTLE,\n brand: {\n morning: brandColors.tacoBrandMorning,\n noon: brandColors.tacoBrandNoon,\n sunset: brandColors.tacoBrandSunset,\n midnight: brandColors.tacoBrandMidnight,\n },\n /** Alias for `gray` — supports both spellings in className strings. */\n grey: { ...palette.gray },\n gray: palette.gray,\n neutral: palette.neutral,\n purple: palette.purple,\n blue: palette.blue,\n red: palette.red,\n green: palette.green,\n yellow: palette.yellow,\n pink: palette.pink,\n brown: LEGACY_BROWN,\n orange: LEGACY_ORANGE,\n};\n\nexport default THEME_COLORS;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailwind.colors.js","sources":["../tailwind.colors.js"],"sourcesContent":["/**\n * Taco Tailwind color theme.\n *\n * Structure:\n * 1. Semantic constants — non-token UI colors (overlay blends, etc.).\n * 2. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.\n * 3. Palette — assembled from all token maps; mutated to add DEFAULT shades.\n * 4. THEME_COLORS — the final export consumed by tailwind.config.js.\n *\n * To add a new token-backed color family: add rows to the relevant *_MAP and a\n * `palette.<family>` entry in THEME_COLORS. Do NOT edit taco-tokens — it is generated.\n */\nimport { primaryColors, secondaryColors, tertiaryColors, neutralColors, brandColors } from '@economic/taco-tokens/tokens';\n\n// ─── 1. Semantic constants ────────────────────────────────────────────────────\n\n/** Not in tokens: 7% tacoNeutralBlack over transparent → `bg-black-subtle`. */\nconst BLACK_SUBTLE_ALPHA = 7;\nconst BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BLACK_SUBTLE_ALPHA}%, transparent)`;\n\n/** Not in tokens: 8% tacoNeutralWhite over transparent → `bg-white-subtle`. */\nconst WHITE_SUBTLE_ALPHA = 8;\nconst WHITE_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralWhite} ${WHITE_SUBTLE_ALPHA}%, transparent)`;\n\n// ─── 2. Token maps ────────────────────────────────────────────────────────────\n\n/**\n * Maps token keys from a source object into a `{ [family]: { [shade]: hex } }` structure\n * that Tailwind can consume as a color scale.\n *\n * @param {Record<string, string>} source - A taco-tokens export (e.g. `primaryColors`).\n * @param {ReadonlyArray<readonly [string, string, string | number]>} rows - Each row is\n * [tokenKey, tailwindFamily, tailwindShade], e.g. ['tacoBlue500', 'blue', 500].\n * @returns {Record<string, Record<string | number, string>>}\n */\nconst assignTokenShades = (source, rows) => {\n const out = {};\n for (const [tokenKey, family, shade] of rows) {\n const value = source[tokenKey];\n if (value === undefined) {\n continue;\n }\n if (!out[family]) {\n out[family] = {};\n }\n out[family][shade] = value;\n }\n return out;\n};\n\nconst PRIMARY_MAP = [\n ['tacoBlue50', 'blue', 50],\n ['tacoBlue100', 'blue', 100],\n ['tacoBlue200', 'blue', 200],\n ['tacoBlue300', 'blue', 300],\n ['tacoBlue500', 'blue', 500],\n ['tacoBlue700', 'blue', 700],\n ['tacoBlue900', 'blue', 900],\n ['tacoGray50', 'gray', 50],\n ['tacoGray100', 'gray', 100],\n ['tacoGray200', 'gray', 200],\n ['tacoGray300', 'gray', 300],\n ['tacoGray500', 'gray', 500],\n ['tacoGray700', 'gray', 700],\n ['tacoGray900', 'gray', 900],\n];\n\nconst SECONDARY_MAP = [\n ['tacoRed50', 'red', 50],\n ['tacoRed100', 'red', 100],\n ['tacoRed200', 'red', 200],\n ['tacoRed300', 'red', 300],\n ['tacoRed500', 'red', 500],\n ['tacoRed700', 'red', 700],\n ['tacoRed900', 'red', 900],\n ['tacoYellow50', 'yellow', 50],\n ['tacoYellow100', 'yellow', 100],\n ['tacoYellow200', 'yellow', 200],\n ['tacoYellow300', 'yellow', 300],\n ['tacoYellow500', 'yellow', 500],\n ['tacoYellow700', 'yellow', 700],\n ['tacoYellow900', 'yellow', 900],\n ['tacoGreen50', 'green', 50],\n ['tacoGreen100', 'green', 100],\n ['tacoGreen200', 'green', 200],\n ['tacoGreen300', 'green', 300],\n ['tacoGreen500', 'green', 500],\n ['tacoGreen700', 'green', 700],\n ['tacoGreen900', 'green', 900],\n];\n\nconst TERTIARY_MAP = [\n ['tacoPink50', 'pink', 50],\n ['tacoPink100', 'pink', 100],\n ['tacoPink200', 'pink', 200],\n ['tacoPink300', 'pink', 300],\n ['tacoPink500', 'pink', 500],\n ['tacoPink700', 'pink', 700],\n ['tacoPink900', 'pink', 900],\n ['tacoPurple50', 'purple', 50],\n ['tacoPurple100', 'purple', 100],\n ['tacoPurple200', 'purple', 200],\n ['tacoPurple300', 'purple', 300],\n ['tacoPurple500', 'purple', 500],\n ['tacoPurple700', 'purple', 700],\n ['tacoPurple900', 'purple', 900],\n];\n\n/**\n * Matches --taco-neutral-white / --taco-neutral-black in tokens.css.\n * Note: palette.neutral.white / .black are not exposed in THEME_COLORS — `white` and `black`\n * are set directly from neutralColors instead to keep utilities flat (bg-white, not bg-neutral-white).\n */\nconst NEUTRAL_MAP = [\n ['tacoNeutralWhite', 'neutral', 'white'],\n ['tacoNeutralBlack', 'neutral', 'black'],\n];\n\n// ─── 3. Palette assembly ──────────────────────────────────────────────────────\n\nconst fromPrimary = assignTokenShades(primaryColors, PRIMARY_MAP);\nconst fromSecondary = assignTokenShades(secondaryColors, SECONDARY_MAP);\nconst fromTertiary = assignTokenShades(tertiaryColors, TERTIARY_MAP);\nconst fromNeutral = assignTokenShades(neutralColors, NEUTRAL_MAP);\n\nconst mergeFamilies = (...parts) => {\n const merged = {};\n for (const part of parts) {\n for (const [family, shades] of Object.entries(part)) {\n merged[family] = { ...merged[family], ...shades };\n }\n }\n return merged;\n};\n\nconst palette = mergeFamilies(fromPrimary, fromSecondary, fromTertiary, fromNeutral);\n\n// `DEFAULT` lets Tailwind resolve bare utilities (e.g. `bg-blue` → blue-500, `text-red` → red-500).\npalette.blue = {\n DEFAULT: primaryColors.tacoBlue500,\n ...palette.blue,\n};\n\npalette.red = {\n DEFAULT: secondaryColors.tacoRed500,\n ...palette.red,\n};\n\npalette.green = {\n DEFAULT: secondaryColors.tacoGreen500,\n ...palette.green,\n};\n\npalette.yellow = {\n DEFAULT: secondaryColors.tacoYellow500,\n ...palette.yellow,\n};\n\npalette.gray = {\n DEFAULT: primaryColors.tacoGray50,\n ...palette.gray,\n};\n\n// ─── 4. Theme colors ──────────────────────────────────────────────────────────\n\nconst THEME_COLORS = {\n transparent: 'transparent',\n current: 'currentColor',\n white: neutralColors.tacoNeutralWhite,\n black: neutralColors.tacoNeutralBlack,\n 'black-subtle': BLACK_SUBTLE,\n 'white-subtle': WHITE_SUBTLE,\n brand: {\n morning: brandColors.tacoBrandMorning,\n noon: brandColors.tacoBrandNoon,\n sunset: brandColors.tacoBrandSunset,\n midnight: brandColors.tacoBrandMidnight,\n },\n /** Alias for `gray` — supports both spellings in className strings. */\n grey: { ...palette.gray },\n gray: palette.gray,\n neutral: palette.neutral,\n purple: palette.purple,\n blue: palette.blue,\n red: palette.red,\n green: palette.green,\n yellow: palette.yellow,\n pink: palette.pink,\n};\n\nexport default THEME_COLORS;\n"],"names":[],"mappings":";AAiBA,MAAM,qBAAqB;AAC3B,MAAM,eAAe,uBAAuB,cAAc,gBAAgB,IAAI,kBAAkB;AAGhG,MAAM,qBAAqB;AAC3B,MAAM,eAAe,uBAAuB,cAAc,gBAAgB,IAAI,kBAAkB;AAahG,MAAM,oBAAoB,CAAC,QAAQ,SAAS;AACxC,QAAM,MAAM,CAAA;AACZ,aAAW,CAAC,UAAU,QAAQ,KAAK,KAAK,MAAM;AAC1C,UAAM,QAAQ,OAAO,QAAQ;AAC7B,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AACA,QAAI,CAAC,IAAI,MAAM,GAAG;AACd,UAAI,MAAM,IAAI,CAAA;AAAA,IAClB;AACA,QAAI,MAAM,EAAE,KAAK,IAAI;AAAA,EACzB;AACA,SAAO;AACX;AAEA,MAAM,cAAc;AAAA,EAChB,CAAC,cAAc,QAAQ,EAAE;AAAA,EACzB,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,cAAc,QAAQ,EAAE;AAAA,EACzB,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAC/B;AAEA,MAAM,gBAAgB;AAAA,EAClB,CAAC,aAAa,OAAO,EAAE;AAAA,EACvB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,cAAc,OAAO,GAAG;AAAA,EACzB,CAAC,gBAAgB,UAAU,EAAE;AAAA,EAC7B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,eAAe,SAAS,EAAE;AAAA,EAC3B,CAAC,gBAAgB,SAAS,GAAG;AAAA,EAC7B,CAAC,gBAAgB,SAAS,GAAG;AAAA,EAC7B,CAAC,gBAAgB,SAAS,GAAG;AAAA,EAC7B,CAAC,gBAAgB,SAAS,GAAG;AAAA,EAC7B,CAAC,gBAAgB,SAAS,GAAG;AAAA,EAC7B,CAAC,gBAAgB,SAAS,GAAG;AACjC;AAEA,MAAM,eAAe;AAAA,EACjB,CAAC,cAAc,QAAQ,EAAE;AAAA,EACzB,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,EAC3B,CAAC,gBAAgB,UAAU,EAAE;AAAA,EAC7B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AAAA,EAC/B,CAAC,iBAAiB,UAAU,GAAG;AACnC;AAOA,MAAM,cAAc;AAAA,EAChB,CAAC,oBAAoB,WAAW,OAAO;AAAA,EACvC,CAAC,oBAAoB,WAAW,OAAO;AAC3C;AAIA,MAAM,cAAc,kBAAkB,eAAe,WAAW;AAChE,MAAM,gBAAgB,kBAAkB,iBAAiB,aAAa;AACtE,MAAM,eAAe,kBAAkB,gBAAgB,YAAY;AACnE,MAAM,cAAc,kBAAkB,eAAe,WAAW;AAEhE,MAAM,gBAAgB,IAAI,UAAU;AAChC,QAAM,SAAS,CAAA;AACf,aAAW,QAAQ,OAAO;AACtB,eAAW,CAAC,QAAQ,MAAM,KAAK,OAAO,QAAQ,IAAI,GAAG;AACjD,aAAO,MAAM,IAAI,EAAE,GAAG,OAAO,MAAM,GAAG,GAAG,OAAM;AAAA,IACnD;AAAA,EACJ;AACA,SAAO;AACX;AAEA,MAAM,UAAU,cAAc,aAAa,eAAe,cAAc,WAAW;AAGnF,QAAQ,OAAO;AAAA,EACX,SAAS,cAAc;AAAA,EACvB,GAAG,QAAQ;AACf;AAEA,QAAQ,MAAM;AAAA,EACV,SAAS,gBAAgB;AAAA,EACzB,GAAG,QAAQ;AACf;AAEA,QAAQ,QAAQ;AAAA,EACZ,SAAS,gBAAgB;AAAA,EACzB,GAAG,QAAQ;AACf;AAEA,QAAQ,SAAS;AAAA,EACb,SAAS,gBAAgB;AAAA,EACzB,GAAG,QAAQ;AACf;AAEA,QAAQ,OAAO;AAAA,EACX,SAAS,cAAc;AAAA,EACvB,GAAG,QAAQ;AACf;AAIK,MAAC,eAAe;AAAA,EACjB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO,cAAc;AAAA,EACrB,OAAO,cAAc;AAAA,EACrB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,OAAO;AAAA,IACH,SAAS,YAAY;AAAA,IACrB,MAAM,YAAY;AAAA,IAClB,QAAQ,YAAY;AAAA,IACpB,UAAU,YAAY;AAAA,EAC9B;AAAA;AAAA,EAEI,MAAM,EAAE,GAAG,QAAQ,KAAI;AAAA,EACvB,MAAM,QAAQ;AAAA,EACd,SAAS,QAAQ;AAAA,EACjB,QAAQ,QAAQ;AAAA,EAChB,MAAM,QAAQ;AAAA,EACd,KAAK,QAAQ;AAAA,EACb,OAAO,QAAQ;AAAA,EACf,QAAQ,QAAQ;AAAA,EAChB,MAAM,QAAQ;AAClB;"}
@@ -1,17 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const AVAILABLE_COLORS = [
4
- "green",
5
- "yellow",
6
- "red",
7
- "blue",
8
- "purple",
9
- "brown",
10
- "pink",
11
- "orange",
12
- "grey",
13
- "transparent"
14
- ];
3
+ const AVAILABLE_COLORS = ["green", "yellow", "red", "blue", "purple", "pink", "grey", "transparent"];
15
4
  const COLOR_BY_STATE = {
16
5
  information: "blue",
17
6
  warning: "yellow",
@@ -26,9 +15,7 @@ const OUTLINE_COLOR_SHADE_CLASSNAME = {
26
15
  red: "border-red-500 text-red-500",
27
16
  blue: "border-blue-500 text-blue-500",
28
17
  purple: "border-purple-500 text-purple-500",
29
- brown: "border-brown-500 text-brown-500",
30
18
  pink: "border-pink-500 text-pink-500",
31
- orange: "border-orange-500 text-orange-500",
32
19
  grey: "border-gray-500 text-gray-500",
33
20
  transparent: "border-gray-500 text-gray-500"
34
21
  };
@@ -38,9 +25,7 @@ const SUBTLE_COLOR_SHADE_CLASSNAME = {
38
25
  red: "bg-red-100 text-red-700",
39
26
  blue: "bg-blue-100 text-blue-700",
40
27
  purple: "bg-purple-100 text-purple-700",
41
- brown: "bg-brown-100 text-brown-700",
42
28
  pink: "bg-pink-100 text-pink-700",
43
- orange: "bg-orange-100 text-orange-700",
44
29
  grey: "bg-gray-100 text-black",
45
30
  transparent: "bg-black-subtle text-black"
46
31
  };
@@ -50,9 +35,7 @@ const COLOR_SHADE_CLASSNAME = {
50
35
  red: "bg-red-500 text-white",
51
36
  blue: "bg-blue-500 text-white",
52
37
  purple: "bg-purple-500 text-white",
53
- brown: "bg-brown-700 text-white",
54
38
  pink: "bg-pink-500 text-white",
55
- orange: "bg-orange-700 text-orange-900",
56
39
  grey: "bg-gray-500 text-white",
57
40
  transparent: "bg-black-subtle text-black"
58
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind.cjs","sources":["../../src/utils/tailwind.ts"],"sourcesContent":["import type { Color, State } from '../types';\n\nexport const AVAILABLE_COLORS = [\n 'green',\n 'yellow',\n 'red',\n 'blue',\n 'purple',\n 'brown',\n 'pink',\n 'orange',\n 'grey',\n 'transparent',\n] as const;\n\nexport const COLOR_BY_STATE: Record<State, Color> = {\n information: 'blue',\n warning: 'yellow',\n error: 'red',\n experiment: 'purple',\n success: 'green',\n default: 'grey',\n};\n\nexport const OUTLINE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'border-green-500 text-green-500',\n yellow: 'border-yellow-500 text-yellow-500',\n red: 'border-red-500 text-red-500',\n blue: 'border-blue-500 text-blue-500',\n purple: 'border-purple-500 text-purple-500',\n brown: 'border-brown-500 text-brown-500',\n pink: 'border-pink-500 text-pink-500',\n orange: 'border-orange-500 text-orange-500',\n grey: 'border-gray-500 text-gray-500',\n transparent: 'border-gray-500 text-gray-500',\n};\n\nexport const SUBTLE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-100 text-green-700',\n yellow: 'bg-yellow-100 text-yellow-700',\n red: 'bg-red-100 text-red-700',\n blue: 'bg-blue-100 text-blue-700',\n purple: 'bg-purple-100 text-purple-700',\n brown: 'bg-brown-100 text-brown-700',\n pink: 'bg-pink-100 text-pink-700',\n orange: 'bg-orange-100 text-orange-700',\n grey: 'bg-gray-100 text-black',\n transparent: 'bg-black-subtle text-black',\n};\n\nexport const COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-500 text-white',\n yellow: 'bg-yellow-200 text-black',\n red: 'bg-red-500 text-white',\n blue: 'bg-blue-500 text-white',\n purple: 'bg-purple-500 text-white',\n brown: 'bg-brown-700 text-white',\n pink: 'bg-pink-500 text-white',\n orange: 'bg-orange-700 text-orange-900',\n grey: 'bg-gray-500 text-white',\n transparent: 'bg-black-subtle text-black',\n};\n"],"names":[],"mappings":";;AAEO,MAAM,mBAAmB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAuC;AAAA,EAChD,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AACb;AAEO,MAAM,gCAAuD;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,+BAAsD;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,wBAA+C;AAAA,EACxD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;;;;;;"}
1
+ {"version":3,"file":"tailwind.cjs","sources":["../../src/utils/tailwind.ts"],"sourcesContent":["import type { Color, State } from '../types';\n\nexport const AVAILABLE_COLORS = ['green', 'yellow', 'red', 'blue', 'purple', 'pink', 'grey', 'transparent'] as const;\n\nexport const COLOR_BY_STATE: Record<State, Color> = {\n information: 'blue',\n warning: 'yellow',\n error: 'red',\n experiment: 'purple',\n success: 'green',\n default: 'grey',\n};\n\nexport const OUTLINE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'border-green-500 text-green-500',\n yellow: 'border-yellow-500 text-yellow-500',\n red: 'border-red-500 text-red-500',\n blue: 'border-blue-500 text-blue-500',\n purple: 'border-purple-500 text-purple-500',\n pink: 'border-pink-500 text-pink-500',\n grey: 'border-gray-500 text-gray-500',\n transparent: 'border-gray-500 text-gray-500',\n};\n\nexport const SUBTLE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-100 text-green-700',\n yellow: 'bg-yellow-100 text-yellow-700',\n red: 'bg-red-100 text-red-700',\n blue: 'bg-blue-100 text-blue-700',\n purple: 'bg-purple-100 text-purple-700',\n pink: 'bg-pink-100 text-pink-700',\n grey: 'bg-gray-100 text-black',\n transparent: 'bg-black-subtle text-black',\n};\n\nexport const COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-500 text-white',\n yellow: 'bg-yellow-200 text-black',\n red: 'bg-red-500 text-white',\n blue: 'bg-blue-500 text-white',\n purple: 'bg-purple-500 text-white',\n pink: 'bg-pink-500 text-white',\n grey: 'bg-gray-500 text-white',\n transparent: 'bg-black-subtle text-black',\n};\n"],"names":[],"mappings":";;AAEO,MAAM,mBAAmB,CAAC,SAAS,UAAU,OAAO,QAAQ,UAAU,QAAQ,QAAQ,aAAa;AAEnG,MAAM,iBAAuC;AAAA,EAChD,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AACb;AAEO,MAAM,gCAAuD;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,+BAAsD;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,wBAA+C;AAAA,EACxD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { Color, State } from '../types';
2
- export declare const AVAILABLE_COLORS: readonly ["green", "yellow", "red", "blue", "purple", "brown", "pink", "orange", "grey", "transparent"];
2
+ export declare const AVAILABLE_COLORS: readonly ["green", "yellow", "red", "blue", "purple", "pink", "grey", "transparent"];
3
3
  export declare const COLOR_BY_STATE: Record<State, Color>;
4
4
  export declare const OUTLINE_COLOR_SHADE_CLASSNAME: Record<Color, string>;
5
5
  export declare const SUBTLE_COLOR_SHADE_CLASSNAME: Record<Color, string>;
@@ -1,15 +1,4 @@
1
- const AVAILABLE_COLORS = [
2
- "green",
3
- "yellow",
4
- "red",
5
- "blue",
6
- "purple",
7
- "brown",
8
- "pink",
9
- "orange",
10
- "grey",
11
- "transparent"
12
- ];
1
+ const AVAILABLE_COLORS = ["green", "yellow", "red", "blue", "purple", "pink", "grey", "transparent"];
13
2
  const COLOR_BY_STATE = {
14
3
  information: "blue",
15
4
  warning: "yellow",
@@ -24,9 +13,7 @@ const OUTLINE_COLOR_SHADE_CLASSNAME = {
24
13
  red: "border-red-500 text-red-500",
25
14
  blue: "border-blue-500 text-blue-500",
26
15
  purple: "border-purple-500 text-purple-500",
27
- brown: "border-brown-500 text-brown-500",
28
16
  pink: "border-pink-500 text-pink-500",
29
- orange: "border-orange-500 text-orange-500",
30
17
  grey: "border-gray-500 text-gray-500",
31
18
  transparent: "border-gray-500 text-gray-500"
32
19
  };
@@ -36,9 +23,7 @@ const SUBTLE_COLOR_SHADE_CLASSNAME = {
36
23
  red: "bg-red-100 text-red-700",
37
24
  blue: "bg-blue-100 text-blue-700",
38
25
  purple: "bg-purple-100 text-purple-700",
39
- brown: "bg-brown-100 text-brown-700",
40
26
  pink: "bg-pink-100 text-pink-700",
41
- orange: "bg-orange-100 text-orange-700",
42
27
  grey: "bg-gray-100 text-black",
43
28
  transparent: "bg-black-subtle text-black"
44
29
  };
@@ -48,9 +33,7 @@ const COLOR_SHADE_CLASSNAME = {
48
33
  red: "bg-red-500 text-white",
49
34
  blue: "bg-blue-500 text-white",
50
35
  purple: "bg-purple-500 text-white",
51
- brown: "bg-brown-700 text-white",
52
36
  pink: "bg-pink-500 text-white",
53
- orange: "bg-orange-700 text-orange-900",
54
37
  grey: "bg-gray-500 text-white",
55
38
  transparent: "bg-black-subtle text-black"
56
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind.js","sources":["../../src/utils/tailwind.ts"],"sourcesContent":["import type { Color, State } from '../types';\n\nexport const AVAILABLE_COLORS = [\n 'green',\n 'yellow',\n 'red',\n 'blue',\n 'purple',\n 'brown',\n 'pink',\n 'orange',\n 'grey',\n 'transparent',\n] as const;\n\nexport const COLOR_BY_STATE: Record<State, Color> = {\n information: 'blue',\n warning: 'yellow',\n error: 'red',\n experiment: 'purple',\n success: 'green',\n default: 'grey',\n};\n\nexport const OUTLINE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'border-green-500 text-green-500',\n yellow: 'border-yellow-500 text-yellow-500',\n red: 'border-red-500 text-red-500',\n blue: 'border-blue-500 text-blue-500',\n purple: 'border-purple-500 text-purple-500',\n brown: 'border-brown-500 text-brown-500',\n pink: 'border-pink-500 text-pink-500',\n orange: 'border-orange-500 text-orange-500',\n grey: 'border-gray-500 text-gray-500',\n transparent: 'border-gray-500 text-gray-500',\n};\n\nexport const SUBTLE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-100 text-green-700',\n yellow: 'bg-yellow-100 text-yellow-700',\n red: 'bg-red-100 text-red-700',\n blue: 'bg-blue-100 text-blue-700',\n purple: 'bg-purple-100 text-purple-700',\n brown: 'bg-brown-100 text-brown-700',\n pink: 'bg-pink-100 text-pink-700',\n orange: 'bg-orange-100 text-orange-700',\n grey: 'bg-gray-100 text-black',\n transparent: 'bg-black-subtle text-black',\n};\n\nexport const COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-500 text-white',\n yellow: 'bg-yellow-200 text-black',\n red: 'bg-red-500 text-white',\n blue: 'bg-blue-500 text-white',\n purple: 'bg-purple-500 text-white',\n brown: 'bg-brown-700 text-white',\n pink: 'bg-pink-500 text-white',\n orange: 'bg-orange-700 text-orange-900',\n grey: 'bg-gray-500 text-white',\n transparent: 'bg-black-subtle text-black',\n};\n"],"names":[],"mappings":"AAEO,MAAM,mBAAmB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAuC;AAAA,EAChD,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AACb;AAEO,MAAM,gCAAuD;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,+BAAsD;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,wBAA+C;AAAA,EACxD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACjB;"}
1
+ {"version":3,"file":"tailwind.js","sources":["../../src/utils/tailwind.ts"],"sourcesContent":["import type { Color, State } from '../types';\n\nexport const AVAILABLE_COLORS = ['green', 'yellow', 'red', 'blue', 'purple', 'pink', 'grey', 'transparent'] as const;\n\nexport const COLOR_BY_STATE: Record<State, Color> = {\n information: 'blue',\n warning: 'yellow',\n error: 'red',\n experiment: 'purple',\n success: 'green',\n default: 'grey',\n};\n\nexport const OUTLINE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'border-green-500 text-green-500',\n yellow: 'border-yellow-500 text-yellow-500',\n red: 'border-red-500 text-red-500',\n blue: 'border-blue-500 text-blue-500',\n purple: 'border-purple-500 text-purple-500',\n pink: 'border-pink-500 text-pink-500',\n grey: 'border-gray-500 text-gray-500',\n transparent: 'border-gray-500 text-gray-500',\n};\n\nexport const SUBTLE_COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-100 text-green-700',\n yellow: 'bg-yellow-100 text-yellow-700',\n red: 'bg-red-100 text-red-700',\n blue: 'bg-blue-100 text-blue-700',\n purple: 'bg-purple-100 text-purple-700',\n pink: 'bg-pink-100 text-pink-700',\n grey: 'bg-gray-100 text-black',\n transparent: 'bg-black-subtle text-black',\n};\n\nexport const COLOR_SHADE_CLASSNAME: Record<Color, string> = {\n green: 'bg-green-500 text-white',\n yellow: 'bg-yellow-200 text-black',\n red: 'bg-red-500 text-white',\n blue: 'bg-blue-500 text-white',\n purple: 'bg-purple-500 text-white',\n pink: 'bg-pink-500 text-white',\n grey: 'bg-gray-500 text-white',\n transparent: 'bg-black-subtle text-black',\n};\n"],"names":[],"mappings":"AAEO,MAAM,mBAAmB,CAAC,SAAS,UAAU,OAAO,QAAQ,UAAU,QAAQ,QAAQ,aAAa;AAEnG,MAAM,iBAAuC;AAAA,EAChD,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AACb;AAEO,MAAM,gCAAuD;AAAA,EAChE,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,+BAAsD;AAAA,EAC/D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;AAEO,MAAM,wBAA+C;AAAA,EACxD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AACjB;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@economic/taco",
3
- "version": "11.0.1-EC-71735-react-19-upgrade.0",
3
+ "version": "12.0.0-react18-compat.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -46,7 +46,7 @@
46
46
  "@dnd-kit/modifiers": "^9.0.0",
47
47
  "@dnd-kit/sortable": "^10.0.0",
48
48
  "@dnd-kit/utilities": "^3.2.2",
49
- "@economic/taco-tokens": "^3.0.1",
49
+ "@economic/taco-tokens": "3.0.2-react18-compat.0",
50
50
  "@radix-ui/react-scroll-area": "1.2.10",
51
51
  "@react-aria/focus": "^3.19.0",
52
52
  "@react-aria/interactions": "^3.12.0",
@@ -68,7 +68,7 @@
68
68
  "tailwindcss": ">=3.4.19"
69
69
  },
70
70
  "devDependencies": {
71
- "@economic/taco-rules": "1.0.2-react-v19.0",
71
+ "@economic/taco-rules": "1.0.2-react18-compat.0",
72
72
  "@oxlint/plugins": "^1.75.0",
73
73
  "@svgr/cli": "^8.1.0",
74
74
  "@testing-library/jest-dom": "^6.9.1",
@@ -81,13 +81,13 @@
81
81
  "clsx": "^2.1.1",
82
82
  "fast-sort": "^2.2.0",
83
83
  "jsdom": "^29.1.1",
84
- "nanoid": "^6.0.0",
84
+ "nanoid": "^6.0.1",
85
85
  "resize-observer-polyfill": "^1.5.1",
86
86
  "rimraf": "^6.1.3",
87
87
  "stylelint": "^17.14.1",
88
88
  "svgo": "^4.0.2",
89
89
  "tailwindcss": "^3.4.19",
90
- "typescript": "^5.9.3",
90
+ "typescript": "^6.0.3",
91
91
  "vite": "^7.3.6",
92
92
  "vite-plugin-dts": "^5.0.3",
93
93
  "vite-plugin-externalize-deps": "^0.10.0",
@@ -96,5 +96,5 @@
96
96
  "optionalDependencies": {
97
97
  "@rollup/rollup-linux-x64-gnu": "^4.62.4"
98
98
  },
99
- "gitHead": "110b4c73d3d8791bcb36769beb8e159e35644fcc"
99
+ "gitHead": "102ac8458611e9a5c37fcfc69711d90df6ebb0b9"
100
100
  }
@@ -2,38 +2,17 @@
2
2
  * Taco Tailwind color theme.
3
3
  *
4
4
  * Structure:
5
- * 1. Legacy constants — colors not (yet) in the token pipeline.
6
- * 2. Semantic constants — non-token UI colors (overlay blends, etc.).
7
- * 3. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.
8
- * 4. palette — assembled from all token maps; mutated to add DEFAULT shades.
9
- * 5. THEME_COLORS — the final export consumed by tailwind.config.js.
5
+ * 1. Semantic constants — non-token UI colors (overlay blends, etc.).
6
+ * 2. Token maps — rename taco-tokens keys to Tailwind family/shade tuples.
7
+ * 3. Palette — assembled from all token maps; mutated to add DEFAULT shades.
8
+ * 4. THEME_COLORS — the final export consumed by tailwind.config.js.
10
9
  *
11
10
  * To add a new token-backed color family: add rows to the relevant *_MAP and a
12
11
  * `palette.<family>` entry in THEME_COLORS. Do NOT edit taco-tokens — it is generated.
13
12
  */
14
13
  import { primaryColors, secondaryColors, tertiaryColors, neutralColors, brandColors } from '@economic/taco-tokens/tokens';
15
14
 
16
- // ─── 1. Legacy constants ──────────────────────────────────────────────────────
17
-
18
- // Not generated in tokens: TODO: Map and remove post color palette update
19
- const LEGACY_BROWN = {
20
- 100: '#EEE0DA', // Used in Badge component
21
- 300: '#C4AB9E', // Client: Used in paymentcards
22
- 500: '#93715D', // Client: Used in paymentcards, invoicing dashboard
23
- 700: '#73503B', // Client: Used in paymentcards, invoicing dashboard
24
- 900: '#45291F', // Used in Badge component
25
- };
26
-
27
- // Not generated in tokens: TODO: Map and remove post color palette update */
28
- const LEGACY_ORANGE = {
29
- 100: '#FFE3BB', // Used in Badge component
30
- 300: '#FAB64D', // Client: Used in paymentcards, workflows
31
- 500: '#F99702', // Client: Used in Avatar component
32
- 700: '#EF7D00', // Client: Used in paymentcards
33
- 900: '#4A2811', // Used in Badge component
34
- };
35
-
36
- // ─── 2. Semantic constants ────────────────────────────────────────────────────
15
+ // ─── 1. Semantic constants ────────────────────────────────────────────────────
37
16
 
38
17
  /** Not in tokens: 7% tacoNeutralBlack over transparent → `bg-black-subtle`. */
39
18
  const BLACK_SUBTLE_ALPHA = 7;
@@ -43,7 +22,7 @@ const BLACK_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralBlack} ${BL
43
22
  const WHITE_SUBTLE_ALPHA = 8;
44
23
  const WHITE_SUBTLE = `color-mix(in oklab, ${neutralColors.tacoNeutralWhite} ${WHITE_SUBTLE_ALPHA}%, transparent)`;
45
24
 
46
- // ─── 3. Token maps ────────────────────────────────────────────────────────────
25
+ // ─── 2. Token maps ────────────────────────────────────────────────────────────
47
26
 
48
27
  /**
49
28
  * Maps token keys from a source object into a `{ [family]: { [shade]: hex } }` structure
@@ -137,7 +116,7 @@ const NEUTRAL_MAP = [
137
116
  ['tacoNeutralBlack', 'neutral', 'black'],
138
117
  ];
139
118
 
140
- // ─── 4. Palette assembly ──────────────────────────────────────────────────────
119
+ // ─── 3. Palette assembly ──────────────────────────────────────────────────────
141
120
 
142
121
  const fromPrimary = assignTokenShades(primaryColors, PRIMARY_MAP);
143
122
  const fromSecondary = assignTokenShades(secondaryColors, SECONDARY_MAP);
@@ -182,7 +161,7 @@ palette.gray = {
182
161
  ...palette.gray,
183
162
  };
184
163
 
185
- // ─── 5. Theme colors ──────────────────────────────────────────────────────────
164
+ // ─── 4. Theme colors ──────────────────────────────────────────────────────────
186
165
 
187
166
  const THEME_COLORS = {
188
167
  transparent: 'transparent',
@@ -207,8 +186,6 @@ const THEME_COLORS = {
207
186
  green: palette.green,
208
187
  yellow: palette.yellow,
209
188
  pink: palette.pink,
210
- brown: LEGACY_BROWN,
211
- orange: LEGACY_ORANGE,
212
189
  };
213
190
 
214
191
  export default THEME_COLORS;