@lamenna/lxp-shared-components 0.0.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/Avatar/__tests__/avatar.test.d.ts +2 -0
- package/dist/components/Avatar/__tests__/avatar.test.d.ts.map +1 -0
- package/dist/components/Avatar/__tests__/avatar.test.js +12 -0
- package/dist/components/Avatar/__tests__/avatar.test.js.map +1 -0
- package/dist/components/Avatar/config.d.ts +24 -0
- package/dist/components/Avatar/config.d.ts.map +1 -0
- package/dist/components/Avatar/config.js +16 -0
- package/dist/components/Avatar/config.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +4 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Avatar/index.js +2 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Avatar/types.d.ts +19 -0
- package/dist/components/Avatar/types.d.ts.map +1 -0
- package/dist/components/Avatar/types.js +2 -0
- package/dist/components/Avatar/types.js.map +1 -0
- package/dist/components/Badge/__tests__/badge.test.d.ts +2 -0
- package/dist/components/Badge/__tests__/badge.test.d.ts.map +1 -0
- package/dist/components/Badge/__tests__/badge.test.js +16 -0
- package/dist/components/Badge/__tests__/badge.test.js.map +1 -0
- package/dist/components/Badge/config.d.ts +39 -0
- package/dist/components/Badge/config.d.ts.map +1 -0
- package/dist/components/Badge/config.js +40 -0
- package/dist/components/Badge/config.js.map +1 -0
- package/dist/components/Badge/index.d.ts +4 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Badge/index.js +2 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Badge/types.d.ts +23 -0
- package/dist/components/Badge/types.d.ts.map +1 -0
- package/dist/components/Badge/types.js +2 -0
- package/dist/components/Badge/types.js.map +1 -0
- package/dist/components/Button/__tests__/button.test.js +76 -31
- package/dist/components/Button/__tests__/button.test.js.map +1 -1
- package/dist/components/Button/config.d.ts +23 -0
- package/dist/components/Button/config.d.ts.map +1 -1
- package/dist/components/Button/config.js +28 -0
- package/dist/components/Button/config.js.map +1 -1
- package/dist/components/Button/index.d.ts +1 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Button/types.d.ts +16 -2
- package/dist/components/Button/types.d.ts.map +1 -1
- package/dist/components/Card/__tests__/card.test.d.ts +2 -0
- package/dist/components/Card/__tests__/card.test.d.ts.map +1 -0
- package/dist/components/Card/__tests__/card.test.js +19 -0
- package/dist/components/Card/__tests__/card.test.js.map +1 -0
- package/dist/components/Card/config.d.ts +22 -0
- package/dist/components/Card/config.d.ts.map +1 -0
- package/dist/components/Card/config.js +23 -0
- package/dist/components/Card/config.js.map +1 -0
- package/dist/components/Card/index.d.ts +4 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Card/index.js +2 -0
- package/dist/components/Card/index.js.map +1 -0
- package/dist/components/Card/types.d.ts +21 -0
- package/dist/components/Card/types.d.ts.map +1 -0
- package/dist/components/Card/types.js +2 -0
- package/dist/components/Card/types.js.map +1 -0
- package/dist/components/Chip/__tests__/chip.test.d.ts +2 -0
- package/dist/components/Chip/__tests__/chip.test.d.ts.map +1 -0
- package/dist/components/Chip/__tests__/chip.test.js +16 -0
- package/dist/components/Chip/__tests__/chip.test.js.map +1 -0
- package/dist/components/Chip/config.d.ts +25 -0
- package/dist/components/Chip/config.d.ts.map +1 -0
- package/dist/components/Chip/config.js +26 -0
- package/dist/components/Chip/config.js.map +1 -0
- package/dist/components/Chip/index.d.ts +4 -0
- package/dist/components/Chip/index.d.ts.map +1 -0
- package/dist/components/Chip/index.js +2 -0
- package/dist/components/Chip/index.js.map +1 -0
- package/dist/components/Chip/types.d.ts +21 -0
- package/dist/components/Chip/types.d.ts.map +1 -0
- package/dist/components/Chip/types.js +2 -0
- package/dist/components/Chip/types.js.map +1 -0
- package/dist/components/QuantityStepper/__tests__/quantity-stepper.test.d.ts +2 -0
- package/dist/components/QuantityStepper/__tests__/quantity-stepper.test.d.ts.map +1 -0
- package/dist/components/QuantityStepper/__tests__/quantity-stepper.test.js +14 -0
- package/dist/components/QuantityStepper/__tests__/quantity-stepper.test.js.map +1 -0
- package/dist/components/QuantityStepper/config.d.ts +18 -0
- package/dist/components/QuantityStepper/config.d.ts.map +1 -0
- package/dist/components/QuantityStepper/config.js +19 -0
- package/dist/components/QuantityStepper/config.js.map +1 -0
- package/dist/components/QuantityStepper/index.d.ts +4 -0
- package/dist/components/QuantityStepper/index.d.ts.map +1 -0
- package/dist/components/QuantityStepper/index.js +2 -0
- package/dist/components/QuantityStepper/index.js.map +1 -0
- package/dist/components/QuantityStepper/types.d.ts +19 -0
- package/dist/components/QuantityStepper/types.d.ts.map +1 -0
- package/dist/components/QuantityStepper/types.js +2 -0
- package/dist/components/QuantityStepper/types.js.map +1 -0
- package/dist/components/Radio/__tests__/radio.test.d.ts +2 -0
- package/dist/components/Radio/__tests__/radio.test.d.ts.map +1 -0
- package/dist/components/Radio/__tests__/radio.test.js +12 -0
- package/dist/components/Radio/__tests__/radio.test.js.map +1 -0
- package/dist/components/Radio/config.d.ts +23 -0
- package/dist/components/Radio/config.d.ts.map +1 -0
- package/dist/components/Radio/config.js +24 -0
- package/dist/components/Radio/config.js.map +1 -0
- package/dist/components/Radio/index.d.ts +4 -0
- package/dist/components/Radio/index.d.ts.map +1 -0
- package/dist/components/Radio/index.js +2 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Radio/types.d.ts +21 -0
- package/dist/components/Radio/types.d.ts.map +1 -0
- package/dist/components/Radio/types.js +2 -0
- package/dist/components/Radio/types.js.map +1 -0
- package/dist/components/SegmentedControl/__tests__/segmented-control.test.d.ts +2 -0
- package/dist/components/SegmentedControl/__tests__/segmented-control.test.d.ts.map +1 -0
- package/dist/components/SegmentedControl/__tests__/segmented-control.test.js +11 -0
- package/dist/components/SegmentedControl/__tests__/segmented-control.test.js.map +1 -0
- package/dist/components/SegmentedControl/config.d.ts +18 -0
- package/dist/components/SegmentedControl/config.d.ts.map +1 -0
- package/dist/components/SegmentedControl/config.js +19 -0
- package/dist/components/SegmentedControl/config.js.map +1 -0
- package/dist/components/SegmentedControl/index.d.ts +4 -0
- package/dist/components/SegmentedControl/index.d.ts.map +1 -0
- package/dist/components/SegmentedControl/index.js +2 -0
- package/dist/components/SegmentedControl/index.js.map +1 -0
- package/dist/components/SegmentedControl/types.d.ts +23 -0
- package/dist/components/SegmentedControl/types.d.ts.map +1 -0
- package/dist/components/SegmentedControl/types.js +2 -0
- package/dist/components/SegmentedControl/types.js.map +1 -0
- package/dist/components/Table/__tests__/table.test.d.ts +2 -0
- package/dist/components/Table/__tests__/table.test.d.ts.map +1 -0
- package/dist/components/Table/__tests__/table.test.js +15 -0
- package/dist/components/Table/__tests__/table.test.js.map +1 -0
- package/dist/components/Table/config.d.ts +30 -0
- package/dist/components/Table/config.d.ts.map +1 -0
- package/dist/components/Table/config.js +33 -0
- package/dist/components/Table/config.js.map +1 -0
- package/dist/components/Table/index.d.ts +4 -0
- package/dist/components/Table/index.d.ts.map +1 -0
- package/dist/components/Table/index.js +2 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Table/types.d.ts +132 -0
- package/dist/components/Table/types.d.ts.map +1 -0
- package/dist/components/Table/types.js +2 -0
- package/dist/components/Table/types.js.map +1 -0
- package/dist/components/TextField/__tests__/text-field.test.d.ts +2 -0
- package/dist/components/TextField/__tests__/text-field.test.d.ts.map +1 -0
- package/dist/components/TextField/__tests__/text-field.test.js +20 -0
- package/dist/components/TextField/__tests__/text-field.test.js.map +1 -0
- package/dist/components/TextField/config.d.ts +38 -0
- package/dist/components/TextField/config.d.ts.map +1 -0
- package/dist/components/TextField/config.js +39 -0
- package/dist/components/TextField/config.js.map +1 -0
- package/dist/components/TextField/index.d.ts +4 -0
- package/dist/components/TextField/index.d.ts.map +1 -0
- package/dist/components/TextField/index.js +2 -0
- package/dist/components/TextField/index.js.map +1 -0
- package/dist/components/TextField/types.d.ts +29 -0
- package/dist/components/TextField/types.d.ts.map +1 -0
- package/dist/components/TextField/types.js +2 -0
- package/dist/components/TextField/types.js.map +1 -0
- package/dist/components/Theme/config.d.ts +43 -0
- package/dist/components/Theme/config.d.ts.map +1 -0
- package/dist/components/Theme/config.js +36 -0
- package/dist/components/Theme/config.js.map +1 -0
- package/dist/components/Theme/index.d.ts +3 -0
- package/dist/components/Theme/index.d.ts.map +1 -0
- package/dist/components/Theme/index.js +2 -0
- package/dist/components/Theme/index.js.map +1 -0
- package/dist/components/Toggle/__tests__/toggle.test.d.ts +2 -0
- package/dist/components/Toggle/__tests__/toggle.test.d.ts.map +1 -0
- package/dist/components/Toggle/__tests__/toggle.test.js +13 -0
- package/dist/components/Toggle/__tests__/toggle.test.js.map +1 -0
- package/dist/components/Toggle/config.d.ts +20 -0
- package/dist/components/Toggle/config.d.ts.map +1 -0
- package/dist/components/Toggle/config.js +21 -0
- package/dist/components/Toggle/config.js.map +1 -0
- package/dist/components/Toggle/index.d.ts +4 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/Toggle/index.js +2 -0
- package/dist/components/Toggle/index.js.map +1 -0
- package/dist/components/Toggle/types.d.ts +18 -0
- package/dist/components/Toggle/types.d.ts.map +1 -0
- package/dist/components/Toggle/types.js +2 -0
- package/dist/components/Toggle/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/components/SegmentedControl/config.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE;QACN,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC1C,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;QACpC,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;QACrC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACtC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;QAC5B,UAAU,EAAE,GAAG;QACf,sBAAsB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;QACzC,wBAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;QAC3C,YAAY,EAAE,+BAA+B;KAC9C;CACO,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { segmentedControlConfig } from "./config";
|
|
2
|
+
export type { SegmentedControlConfig } from "./config";
|
|
3
|
+
export type { SegmentOption, BaseSegmentedControlProps, ReactSegmentedControlProps, ReactNativeSegmentedControlProps, AngularSegmentedControlProps, } from "./types";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,YAAY,EACV,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/SegmentedControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface SegmentOption {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export interface BaseSegmentedControlProps {
|
|
6
|
+
/** Options as strings or {label,value} objects */
|
|
7
|
+
options?: Array<string | SegmentOption>;
|
|
8
|
+
/** Currently selected value */
|
|
9
|
+
value?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
className?: string;
|
|
12
|
+
id?: string;
|
|
13
|
+
testID?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ReactSegmentedControlProps extends BaseSegmentedControlProps {
|
|
16
|
+
onChange?: (value: string) => void;
|
|
17
|
+
}
|
|
18
|
+
export interface ReactNativeSegmentedControlProps extends BaseSegmentedControlProps {
|
|
19
|
+
onChange?: (value: string) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface AngularSegmentedControlProps extends BaseSegmentedControlProps {
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedControl/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,yBAAyB;IACxC,kDAAkD;IAClD,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;IACxC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IAC3E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AACD,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AACD,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/SegmentedControl/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.test.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/__tests__/table.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { tableConfig, tableThemeConfig } from "../config";
|
|
2
|
+
describe("Table shared configuration", () => {
|
|
3
|
+
it("exposes sane defaults for behaviour", () => {
|
|
4
|
+
expect(tableConfig.defaultTitle).toBeDefined();
|
|
5
|
+
expect(tableConfig.defaultPageSize).toBeGreaterThan(0);
|
|
6
|
+
expect(tableConfig.defaultPageSizeOptions.length).toBeGreaterThan(0);
|
|
7
|
+
});
|
|
8
|
+
it("defines theme config for both tera and cynk", () => {
|
|
9
|
+
expect(tableThemeConfig.tera).toBeDefined();
|
|
10
|
+
expect(tableThemeConfig.cynk).toBeDefined();
|
|
11
|
+
expect(tableThemeConfig.tera.fontFamily).toContain("General Sans");
|
|
12
|
+
expect(tableThemeConfig.cynk.fontFamily).toContain("Inter");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=table.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.test.js","sourceRoot":"","sources":["../../../../src/components/Table/__tests__/table.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE1D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CACA,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ThemeKey } from "../Theme";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for the Table component, derived from the active theme.
|
|
4
|
+
* This keeps all visual concerns (colors, typography) in a single place
|
|
5
|
+
* so platform wrappers can stay focused on behavior.
|
|
6
|
+
*/
|
|
7
|
+
export interface TableThemeConfig {
|
|
8
|
+
fontFamily: string;
|
|
9
|
+
borderColor: string;
|
|
10
|
+
headerBackground: string;
|
|
11
|
+
headerTextColor: string;
|
|
12
|
+
rowHoverBackground: string;
|
|
13
|
+
emptyStateTextColor: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const tableThemeConfig: Record<ThemeKey, TableThemeConfig>;
|
|
16
|
+
/**
|
|
17
|
+
* Non-theme-specific configuration for Table behavior.
|
|
18
|
+
*/
|
|
19
|
+
export declare const tableConfig: {
|
|
20
|
+
readonly defaultTitle: "Data Table";
|
|
21
|
+
readonly defaultPageSize: 10;
|
|
22
|
+
readonly defaultPageSizeOptions: readonly [5, 10, 25, 50];
|
|
23
|
+
readonly selectionColumnWidth: "40px";
|
|
24
|
+
readonly headerFontWeight: 500;
|
|
25
|
+
readonly rowMinHeight: "56px";
|
|
26
|
+
readonly loadingMessage: "Loading...";
|
|
27
|
+
readonly emptyMessage: "No records found";
|
|
28
|
+
};
|
|
29
|
+
export type TableThemeKey = ThemeKey;
|
|
30
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/components/Table/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAiB/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { themeConfig } from "../Theme";
|
|
2
|
+
export const tableThemeConfig = {
|
|
3
|
+
tera: {
|
|
4
|
+
fontFamily: themeConfig.tera.fontFamily,
|
|
5
|
+
borderColor: "#EFF1F3",
|
|
6
|
+
headerBackground: "#F9FAFB",
|
|
7
|
+
headerTextColor: "#111827",
|
|
8
|
+
rowHoverBackground: "#F3F4F6",
|
|
9
|
+
emptyStateTextColor: "#6B7280",
|
|
10
|
+
},
|
|
11
|
+
cynk: {
|
|
12
|
+
fontFamily: themeConfig.cynk.fontFamily,
|
|
13
|
+
borderColor: "#E5E7EB",
|
|
14
|
+
headerBackground: "#F3F4F6",
|
|
15
|
+
headerTextColor: "#111827",
|
|
16
|
+
rowHoverBackground: "#E5E7EB",
|
|
17
|
+
emptyStateTextColor: "#6B7280",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Non-theme-specific configuration for Table behavior.
|
|
22
|
+
*/
|
|
23
|
+
export const tableConfig = {
|
|
24
|
+
defaultTitle: "Data Table",
|
|
25
|
+
defaultPageSize: 10,
|
|
26
|
+
defaultPageSizeOptions: [5, 10, 25, 50],
|
|
27
|
+
selectionColumnWidth: "40px",
|
|
28
|
+
headerFontWeight: 500,
|
|
29
|
+
rowMinHeight: "56px",
|
|
30
|
+
loadingMessage: "Loading...",
|
|
31
|
+
emptyMessage: "No records found",
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/components/Table/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAgBtD,MAAM,CAAC,MAAM,gBAAgB,GAAuC;IAClE,IAAI,EAAE;QACJ,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;QACvC,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,SAAS;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,mBAAmB,EAAE,SAAS;KAC/B;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU;QACvC,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,SAAS;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,mBAAmB,EAAE,SAAS;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,YAAY;IAC1B,eAAe,EAAE,EAAE;IACnB,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvC,oBAAoB,EAAE,MAAM;IAC5B,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,YAAY;IAC5B,YAAY,EAAE,kBAAkB;CACxB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { tableConfig, tableThemeConfig } from "./config";
|
|
2
|
+
export type { TableThemeKey } from "./config";
|
|
3
|
+
export type { TableColumn, ImageCellData, TableAction, TableProgressBarSegment, TableSortDirection, TableSort, TablePageChange, TableSearchData, TableFilterData, TableSelectionChange, TableTabChange, TableLegendItem, TableEmptyStateConfig, TableTabsConfigItem, TableProgressBarConfig, BaseTableProps, } from "./types";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { TableThemeKey } from "./config";
|
|
2
|
+
/**
|
|
3
|
+
* Column definition for the Table component. This mirrors the TAMU
|
|
4
|
+
* UI Library API while remaining framework-agnostic.
|
|
5
|
+
*/
|
|
6
|
+
export interface TableColumn {
|
|
7
|
+
key: string;
|
|
8
|
+
label: string;
|
|
9
|
+
/**
|
|
10
|
+
* Optional secondary label used by some layouts (e.g. subtitle).
|
|
11
|
+
*/
|
|
12
|
+
labelSecondary?: string;
|
|
13
|
+
sortable?: boolean;
|
|
14
|
+
filterable?: boolean;
|
|
15
|
+
width?: string;
|
|
16
|
+
align?: "left" | "center" | "right";
|
|
17
|
+
/**
|
|
18
|
+
* Optional custom renderer for a cell. Platform wrappers are
|
|
19
|
+
* responsible for interpreting the return value.
|
|
20
|
+
*/
|
|
21
|
+
render?: (value: any, row: any) => any;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Shape used for rich "image + two-line" cells in TAMU tables.
|
|
25
|
+
*/
|
|
26
|
+
export interface ImageCellData {
|
|
27
|
+
image?: string;
|
|
28
|
+
imageUrl?: string;
|
|
29
|
+
line1?: string;
|
|
30
|
+
line2?: string;
|
|
31
|
+
text?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface TableAction {
|
|
35
|
+
label: string;
|
|
36
|
+
action: (row: any) => void;
|
|
37
|
+
variant?: "primary" | "secondary" | "danger" | "ghost";
|
|
38
|
+
disabled?: (row: any) => boolean;
|
|
39
|
+
icon?: any;
|
|
40
|
+
type?: "view" | "edit" | "add" | "create" | "remove" | "archive" | "retire" | "delete" | "download" | "transfer";
|
|
41
|
+
}
|
|
42
|
+
export interface TableProgressBarSegment {
|
|
43
|
+
value: number;
|
|
44
|
+
color: string;
|
|
45
|
+
label: string;
|
|
46
|
+
}
|
|
47
|
+
export type TableSortDirection = "asc" | "desc";
|
|
48
|
+
export interface TableSort {
|
|
49
|
+
key: string;
|
|
50
|
+
direction: TableSortDirection;
|
|
51
|
+
}
|
|
52
|
+
export interface TablePageChange {
|
|
53
|
+
page: number;
|
|
54
|
+
pageSize: number;
|
|
55
|
+
searchTerm: string;
|
|
56
|
+
filters: Record<string, string>;
|
|
57
|
+
}
|
|
58
|
+
export interface TableSearchData extends TablePageChange {
|
|
59
|
+
}
|
|
60
|
+
export interface TableFilterData extends TablePageChange {
|
|
61
|
+
}
|
|
62
|
+
export interface TableSelectionChange {
|
|
63
|
+
selection: number[];
|
|
64
|
+
}
|
|
65
|
+
export interface TableTabChange {
|
|
66
|
+
tabId: string;
|
|
67
|
+
}
|
|
68
|
+
export interface TableLegendItem {
|
|
69
|
+
key: string;
|
|
70
|
+
value: string;
|
|
71
|
+
color: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface TableEmptyStateConfig {
|
|
75
|
+
icon?: string;
|
|
76
|
+
title?: string;
|
|
77
|
+
message?: string;
|
|
78
|
+
showDefault?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface TableTabsConfigItem {
|
|
81
|
+
id: string;
|
|
82
|
+
label: string;
|
|
83
|
+
active?: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface TableProgressBarConfig {
|
|
86
|
+
show: boolean;
|
|
87
|
+
segments?: TableProgressBarSegment[];
|
|
88
|
+
total: number;
|
|
89
|
+
value?: number;
|
|
90
|
+
showLegend?: boolean;
|
|
91
|
+
max?: number;
|
|
92
|
+
label?: string;
|
|
93
|
+
color?: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Base, framework-agnostic Table props. Platform wrappers may extend this
|
|
97
|
+
* with additional UI-specific props (e.g. custom renderActions functions).
|
|
98
|
+
*/
|
|
99
|
+
export interface BaseTableProps {
|
|
100
|
+
columns: TableColumn[];
|
|
101
|
+
data: any[];
|
|
102
|
+
actions?: TableAction[];
|
|
103
|
+
selectable?: boolean;
|
|
104
|
+
showPagination?: boolean;
|
|
105
|
+
showSearch?: boolean;
|
|
106
|
+
loading?: boolean;
|
|
107
|
+
theme?: TableThemeKey;
|
|
108
|
+
title?: string;
|
|
109
|
+
titleLink?: string;
|
|
110
|
+
serverSide?: boolean;
|
|
111
|
+
totalCount?: number;
|
|
112
|
+
currentPage?: number;
|
|
113
|
+
pageSize?: number;
|
|
114
|
+
pageSizeOptions?: number[];
|
|
115
|
+
showRefreshButton?: boolean;
|
|
116
|
+
isRefreshing?: boolean;
|
|
117
|
+
tabs?: TableTabsConfigItem[];
|
|
118
|
+
legendItems?: TableLegendItem[];
|
|
119
|
+
progressBar?: TableProgressBarConfig;
|
|
120
|
+
emptyState?: TableEmptyStateConfig;
|
|
121
|
+
onSelectionChange?: (selection: number[]) => void;
|
|
122
|
+
onSort?: (sort: TableSort) => void;
|
|
123
|
+
onPageChange?: (pageChange: TablePageChange) => void;
|
|
124
|
+
onPageSizeChange?: (pageChange: TablePageChange) => void;
|
|
125
|
+
onSearch?: (searchData: TableSearchData) => void;
|
|
126
|
+
onFilterChange?: (filterData: TableFilterData) => void;
|
|
127
|
+
onRefresh?: () => void;
|
|
128
|
+
onTabChange?: (tabData: TableTabChange) => void;
|
|
129
|
+
enableRowClick?: boolean;
|
|
130
|
+
onRowClick?: (row: any, index: number) => void;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Table/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/Table/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-field.test.d.ts","sourceRoot":"","sources":["../../../../src/components/TextField/__tests__/text-field.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { textFieldConfig } from "../config";
|
|
2
|
+
describe("TextField (Shared config)", () => {
|
|
3
|
+
it("defines default / focused / error / disabled states", () => {
|
|
4
|
+
["default", "focused", "error", "disabled"].forEach((s) => {
|
|
5
|
+
expect(textFieldConfig.states[s]).toBeDefined();
|
|
6
|
+
expect(textFieldConfig.states[s].borderColor).toMatch(/^#/);
|
|
7
|
+
expect(textFieldConfig.states[s].borderWidth).toBeGreaterThan(0);
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
it("focused/error states use a thicker border than default", () => {
|
|
11
|
+
expect(textFieldConfig.states.focused.borderWidth).toBeGreaterThan(textFieldConfig.states.default.borderWidth);
|
|
12
|
+
expect(textFieldConfig.states.error.borderWidth).toBeGreaterThan(textFieldConfig.states.default.borderWidth);
|
|
13
|
+
});
|
|
14
|
+
it("exposes label / text / error colours", () => {
|
|
15
|
+
expect(textFieldConfig.common.labelColor).toMatch(/^#/);
|
|
16
|
+
expect(textFieldConfig.common.textColor).toMatch(/^#/);
|
|
17
|
+
expect(textFieldConfig.common.errorColor).toMatch(/^#/);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=text-field.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-field.test.js","sourceRoot":"","sources":["../../../../src/components/TextField/__tests__/text-field.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC5D,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/G,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const textFieldConfig: {
|
|
2
|
+
readonly states: {
|
|
3
|
+
readonly default: {
|
|
4
|
+
readonly borderColor: string;
|
|
5
|
+
readonly borderWidth: 1;
|
|
6
|
+
readonly backgroundColor: string;
|
|
7
|
+
};
|
|
8
|
+
readonly focused: {
|
|
9
|
+
readonly borderColor: string;
|
|
10
|
+
readonly borderWidth: 2;
|
|
11
|
+
readonly backgroundColor: string;
|
|
12
|
+
};
|
|
13
|
+
readonly error: {
|
|
14
|
+
readonly borderColor: string;
|
|
15
|
+
readonly borderWidth: 2;
|
|
16
|
+
readonly backgroundColor: string;
|
|
17
|
+
};
|
|
18
|
+
readonly disabled: {
|
|
19
|
+
readonly borderColor: string;
|
|
20
|
+
readonly borderWidth: 1;
|
|
21
|
+
readonly backgroundColor: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
readonly common: {
|
|
25
|
+
readonly borderRadius: string;
|
|
26
|
+
readonly paddingVertical: "12px";
|
|
27
|
+
readonly paddingHorizontal: "14px";
|
|
28
|
+
readonly fontSize: string;
|
|
29
|
+
readonly labelColor: string;
|
|
30
|
+
readonly textColor: string;
|
|
31
|
+
readonly placeholderColor: string;
|
|
32
|
+
readonly helperColor: string;
|
|
33
|
+
readonly errorColor: string;
|
|
34
|
+
readonly gap: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type TextFieldConfig = typeof textFieldConfig;
|
|
38
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Text field / input configuration (platform-agnostic). */
|
|
2
|
+
import { tokens } from "@lamenna/lxp-tokens";
|
|
3
|
+
export const textFieldConfig = {
|
|
4
|
+
states: {
|
|
5
|
+
default: {
|
|
6
|
+
borderColor: tokens.color.neutral[300],
|
|
7
|
+
borderWidth: 1,
|
|
8
|
+
backgroundColor: tokens.color.neutral[0],
|
|
9
|
+
},
|
|
10
|
+
focused: {
|
|
11
|
+
borderColor: tokens.color.primary[500],
|
|
12
|
+
borderWidth: 2,
|
|
13
|
+
backgroundColor: tokens.color.neutral[0],
|
|
14
|
+
},
|
|
15
|
+
error: {
|
|
16
|
+
borderColor: tokens.color.danger[600],
|
|
17
|
+
borderWidth: 2,
|
|
18
|
+
backgroundColor: tokens.color.neutral[0],
|
|
19
|
+
},
|
|
20
|
+
disabled: {
|
|
21
|
+
borderColor: tokens.color.neutral[200],
|
|
22
|
+
borderWidth: 1,
|
|
23
|
+
backgroundColor: tokens.color.neutral[100],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
common: {
|
|
27
|
+
borderRadius: tokens.borderRadius.md,
|
|
28
|
+
paddingVertical: "12px",
|
|
29
|
+
paddingHorizontal: "14px",
|
|
30
|
+
fontSize: tokens.fontSize.md,
|
|
31
|
+
labelColor: tokens.color.neutral[700],
|
|
32
|
+
textColor: tokens.color.neutral[900],
|
|
33
|
+
placeholderColor: tokens.color.neutral[400],
|
|
34
|
+
helperColor: tokens.color.neutral[400],
|
|
35
|
+
errorColor: tokens.color.danger[600],
|
|
36
|
+
gap: tokens.spacing.xs,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/components/TextField/config.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE;QACN,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACtC,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SACzC;QACD,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACtC,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SACzC;QACD,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SACzC;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACtC,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;SAC3C;KACF;IACD,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE;QACpC,eAAe,EAAE,MAAM;QACvB,iBAAiB,EAAE,MAAM;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACpC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;KACvB;CACO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/TextField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { textFieldConfig } from "./config";
|
|
2
|
+
export type TextFieldState = keyof typeof textFieldConfig.states;
|
|
3
|
+
export interface BaseTextFieldProps {
|
|
4
|
+
label?: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
/** Helper text shown under the field */
|
|
8
|
+
helperText?: string;
|
|
9
|
+
/** When set, the field renders in the error state and shows this message */
|
|
10
|
+
error?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
id?: string;
|
|
14
|
+
testID?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ReactTextFieldProps extends BaseTextFieldProps {
|
|
17
|
+
type?: string;
|
|
18
|
+
onChange?: (value: string, e?: any) => void;
|
|
19
|
+
onFocus?: (e?: any) => void;
|
|
20
|
+
onBlur?: (e?: any) => void;
|
|
21
|
+
}
|
|
22
|
+
export interface ReactNativeTextFieldProps extends BaseTextFieldProps {
|
|
23
|
+
onChangeText?: (value: string) => void;
|
|
24
|
+
keyboardType?: any;
|
|
25
|
+
secureTextEntry?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface AngularTextFieldProps extends BaseTextFieldProps {
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/TextField/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,eAAe,CAAC,MAAM,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5B;AACD,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/TextField/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme identifiers supported by the design system.
|
|
3
|
+
*
|
|
4
|
+
* These intentionally mirror the TAMU UI Library company themes
|
|
5
|
+
* while remaining generic so they can be reused across platforms.
|
|
6
|
+
*/
|
|
7
|
+
export type CompanyTheme = "tera" | "cynk";
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for each theme. This is a plain data structure so it can
|
|
10
|
+
* be consumed from any UI framework (React, React Native, Angular, etc.).
|
|
11
|
+
*/
|
|
12
|
+
export declare const themeConfig: {
|
|
13
|
+
readonly tera: {
|
|
14
|
+
readonly key: "tera";
|
|
15
|
+
/**
|
|
16
|
+
* Primary brand color for the theme. Used by components like Table
|
|
17
|
+
* for accents, selection states, and emphasis.
|
|
18
|
+
*/
|
|
19
|
+
readonly primaryColor: string;
|
|
20
|
+
/**
|
|
21
|
+
* Base font stack for the theme. In TAMU UI Library this maps to
|
|
22
|
+
* General Sans; here we keep the same intent while allowing the
|
|
23
|
+
* host app to load the actual font.
|
|
24
|
+
*/
|
|
25
|
+
readonly fontFamily: "General Sans, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif";
|
|
26
|
+
};
|
|
27
|
+
readonly cynk: {
|
|
28
|
+
readonly key: "cynk";
|
|
29
|
+
readonly primaryColor: string;
|
|
30
|
+
/**
|
|
31
|
+
* Cynk uses Inter in the TAMU UI Library; we mirror that here so
|
|
32
|
+
* components can switch typography consistently when the theme
|
|
33
|
+
* changes.
|
|
34
|
+
*/
|
|
35
|
+
readonly fontFamily: "Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif";
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export type ThemeKey = keyof typeof themeConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Default theme used when none is explicitly provided.
|
|
41
|
+
*/
|
|
42
|
+
export declare const defaultTheme: ThemeKey;
|
|
43
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/components/Theme/config.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,WAAW;;;QAGpB;;;WAGG;;QAEH;;;;WAIG;;;;;;QAOH;;;;WAIG;;;CAIG,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,WAAW,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAiB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { tokens } from "@lamenna/lxp-tokens";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for each theme. This is a plain data structure so it can
|
|
4
|
+
* be consumed from any UI framework (React, React Native, Angular, etc.).
|
|
5
|
+
*/
|
|
6
|
+
export const themeConfig = {
|
|
7
|
+
tera: {
|
|
8
|
+
key: "tera",
|
|
9
|
+
/**
|
|
10
|
+
* Primary brand color for the theme. Used by components like Table
|
|
11
|
+
* for accents, selection states, and emphasis.
|
|
12
|
+
*/
|
|
13
|
+
primaryColor: tokens.color.primary[500],
|
|
14
|
+
/**
|
|
15
|
+
* Base font stack for the theme. In TAMU UI Library this maps to
|
|
16
|
+
* General Sans; here we keep the same intent while allowing the
|
|
17
|
+
* host app to load the actual font.
|
|
18
|
+
*/
|
|
19
|
+
fontFamily: 'General Sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
20
|
+
},
|
|
21
|
+
cynk: {
|
|
22
|
+
key: "cynk",
|
|
23
|
+
primaryColor: tokens.color.secondary[500],
|
|
24
|
+
/**
|
|
25
|
+
* Cynk uses Inter in the TAMU UI Library; we mirror that here so
|
|
26
|
+
* components can switch typography consistently when the theme
|
|
27
|
+
* changes.
|
|
28
|
+
*/
|
|
29
|
+
fontFamily: 'Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Default theme used when none is explicitly provided.
|
|
34
|
+
*/
|
|
35
|
+
export const defaultTheme = "tera";
|
|
36
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/components/Theme/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAU7C;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAe;QACpB;;;WAGG;QACH,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACvC;;;;WAIG;QACH,UAAU,EACR,4FAA4F;KAC/F;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,MAAe;QACpB,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QACzC;;;;WAIG;QACH,UAAU,EACR,qFAAqF;KACxF;CACO,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAa,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.test.d.ts","sourceRoot":"","sources":["../../../../src/components/Toggle/__tests__/toggle.test.ts"],"names":[],"mappings":""}
|