xmlui 0.11.3 → 0.11.4

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.
Files changed (55) hide show
  1. package/dist/lib/{index-DSUDwtWN.js → index-Cq0EMm3L.js} +329 -315
  2. package/dist/lib/index.css +1 -1
  3. package/dist/lib/{initMock-DdH1iCH-.js → initMock-DCigV4Zh.js} +1 -1
  4. package/dist/lib/language-server-web-worker.js +1 -1
  5. package/dist/lib/language-server.js +1 -1
  6. package/dist/lib/{metadata-utils-D27cn-XB.js → metadata-utils-BiolWMg9.js} +5 -6
  7. package/dist/lib/{server-common-hq0poDwA.js → server-common-DyCHOk-z.js} +2674 -2642
  8. package/dist/lib/testing.js +1 -1
  9. package/dist/lib/{transform-Tooy42EB.js → transform-DHf9tQF7.js} +15 -1
  10. package/dist/lib/vite-xmlui-plugin/index.js +19 -2
  11. package/dist/lib/{xmlui-parser-BZZ430Wm.js → xmlui-parser-CHN3mADy.js} +1 -1
  12. package/dist/lib/xmlui-parser.d.ts +2 -0
  13. package/dist/lib/xmlui-parser.js +2 -2
  14. package/dist/lib/{xmlui-serializer-D9D2mQ8m.js → xmlui-serializer-CYNSHAlP.js} +1 -1
  15. package/dist/lib/xmlui.d.ts +2 -1
  16. package/dist/lib/xmlui.js +3 -3
  17. package/dist/metadata/{collectedComponentMetadata-C8Lr9TFe.js → collectedComponentMetadata-CLaDZhmc.js} +340 -311
  18. package/dist/metadata/{initMock-CWwgOjW_.js → initMock-Buqah4JF.js} +1 -1
  19. package/dist/metadata/style.css +1 -1
  20. package/dist/metadata/xmlui-metadata.js +1 -1
  21. package/dist/metadata/xmlui-metadata.umd.cjs +3 -3
  22. package/dist/scripts/package.json +1 -1
  23. package/dist/scripts/src/components/AutoComplete/AutoComplete.spec.js +113 -0
  24. package/dist/scripts/src/components/Charts/LabelList/LabelList.js +2 -2
  25. package/dist/scripts/src/components/Charts/LabelList/LabelListNative.js +2 -2
  26. package/dist/scripts/src/components/Checkbox/Checkbox.js +6 -6
  27. package/dist/scripts/src/components/Checkbox/Checkbox.spec.js +30 -99
  28. package/dist/scripts/src/components/ColorPicker/ColorPicker.spec.js +57 -14
  29. package/dist/scripts/src/components/DateInput/DateInput.spec.js +88 -17
  30. package/dist/scripts/src/components/DatePicker/DatePicker.spec.js +9 -9
  31. package/dist/scripts/src/components/NumberBox/NumberBox.spec.js +111 -86
  32. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +6 -6
  33. package/dist/scripts/src/components/RadioGroup/RadioGroup.spec.js +30 -28
  34. package/dist/scripts/src/components/RadioGroup/RadioItemNative.js +1 -1
  35. package/dist/scripts/src/components/Select/Select.js +1 -1
  36. package/dist/scripts/src/components/Select/Select.spec.js +92 -0
  37. package/dist/scripts/src/components/Slider/Slider.js +5 -5
  38. package/dist/scripts/src/components/Slider/Slider.spec.js +63 -29
  39. package/dist/scripts/src/components/Splitter/Splitter.js +51 -2
  40. package/dist/scripts/src/components/Splitter/Splitter.spec.js +225 -0
  41. package/dist/scripts/src/components/Splitter/SplitterNative.js +14 -12
  42. package/dist/scripts/src/components/Switch/Switch.js +6 -6
  43. package/dist/scripts/src/components/Switch/Switch.spec.js +44 -46
  44. package/dist/scripts/src/components/TextArea/TextArea.spec.js +94 -2
  45. package/dist/scripts/src/components/TextBox/TextBox.js +5 -3
  46. package/dist/scripts/src/components/TextBox/TextBox.spec.js +92 -59
  47. package/dist/scripts/src/components/TimeInput/TimeInput.spec.js +101 -25
  48. package/dist/scripts/src/components-core/behaviors/CoreBehaviors.js +5 -4
  49. package/dist/scripts/src/language-server/services/common/syntax-node-utilities.js +23 -31
  50. package/dist/scripts/src/language-server/services/format.js +223 -84
  51. package/dist/scripts/src/parsers/xmlui-parser/parser.js +3 -2
  52. package/dist/scripts/src/parsers/xmlui-parser/syntax-node.js +16 -0
  53. package/dist/standalone/xmlui-standalone.es.d.ts +4 -2
  54. package/dist/standalone/xmlui-standalone.umd.js +36 -36
  55. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xmlui",
3
- "version": "0.11.3",
3
+ "version": "0.11.4",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const component_test_helpers_1 = require("../../testing/component-test-helpers");
12
13
  const fixtures_1 = require("../../testing/fixtures");
13
14
  // =============================================================================
14
15
  // BASIC FUNCTIONALITY TESTS
@@ -431,3 +432,115 @@ const fixtures_1 = require("../../testing/fixtures");
431
432
  const { width } = yield input.boundingBox();
432
433
  (0, fixtures_1.expect)(width).toBe(200);
433
434
  }));
435
+ // =============================================================================
436
+ // THEME VARIABLE TESTS
437
+ // =============================================================================
438
+ fixtures_1.test.describe("Theme Variables", () => {
439
+ [
440
+ { value: "--default", prop: "" },
441
+ { value: "--warning", prop: 'validationStatus="warning"' },
442
+ { value: "--error", prop: 'validationStatus="error"' },
443
+ { value: "--success", prop: 'validationStatus="valid"' },
444
+ ].forEach((variant) => {
445
+ (0, fixtures_1.test)(`applies correct borderRadius ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
446
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
447
+ testThemeVars: { [`borderRadius-AutoComplete${variant.value}`]: "12px" },
448
+ });
449
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-radius", "12px");
450
+ }));
451
+ (0, fixtures_1.test)(`applies correct borderColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
452
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
453
+ testThemeVars: { [`borderColor-AutoComplete${variant.value}`]: "rgb(255, 0, 0)" },
454
+ });
455
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(255, 0, 0)");
456
+ }));
457
+ (0, fixtures_1.test)(`applies correct borderWidth ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
458
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
459
+ testThemeVars: { [`borderWidth-AutoComplete${variant.value}`]: "1px" },
460
+ });
461
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-width", "1px");
462
+ }));
463
+ (0, fixtures_1.test)(`applies correct borderStyle ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
464
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
465
+ testThemeVars: { [`borderStyle-AutoComplete${variant.value}`]: "dashed" },
466
+ });
467
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-style", "dashed");
468
+ }));
469
+ (0, fixtures_1.test)(`applies correct fontSize ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
470
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
471
+ testThemeVars: { [`fontSize-AutoComplete${variant.value}`]: "14px" },
472
+ });
473
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("font-size", "14px");
474
+ }));
475
+ (0, fixtures_1.test)(`applies correct backgroundColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
476
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
477
+ testThemeVars: { [`backgroundColor-AutoComplete${variant.value}`]: "rgb(240, 240, 240)" },
478
+ });
479
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("background-color", "rgb(240, 240, 240)");
480
+ }));
481
+ (0, fixtures_1.test)(`applies correct boxShadow ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
482
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
483
+ testThemeVars: {
484
+ [`boxShadow-AutoComplete${variant.value}`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
485
+ },
486
+ });
487
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
488
+ }));
489
+ (0, fixtures_1.test)(`applies correct textColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
490
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
491
+ testThemeVars: { [`textColor-AutoComplete${variant.value}`]: "rgb(0, 0, 0)" },
492
+ });
493
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("color", "rgb(0, 0, 0)");
494
+ }));
495
+ (0, fixtures_1.test)(`applies correct borderColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
496
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
497
+ testThemeVars: { [`borderColor-AutoComplete${variant.value}--hover`]: "rgb(0, 0, 0)" },
498
+ });
499
+ yield page.getByTestId("test").hover();
500
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(0, 0, 0)");
501
+ }));
502
+ (0, fixtures_1.test)(`applies correct backgroundColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
503
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
504
+ testThemeVars: { [`backgroundColor-AutoComplete${variant.value}--hover`]: "rgb(0, 0, 0)" },
505
+ });
506
+ yield page.getByTestId("test").hover();
507
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("background-color", "rgb(0, 0, 0)");
508
+ }));
509
+ (0, fixtures_1.test)(`applies correct boxShadow on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
510
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
511
+ testThemeVars: {
512
+ [`boxShadow-AutoComplete${variant.value}--hover`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
513
+ },
514
+ });
515
+ yield page.getByTestId("test").hover();
516
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
517
+ }));
518
+ (0, fixtures_1.test)(`applies correct textColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
519
+ yield initTestBed(`<AutoComplete testId="test" ${variant.prop} />`, {
520
+ testThemeVars: { [`textColor-AutoComplete${variant.value}--hover`]: "rgb(0, 0, 0)" },
521
+ });
522
+ yield page.getByTestId("test").hover();
523
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("color", "rgb(0, 0, 0)");
524
+ }));
525
+ });
526
+ (0, fixtures_1.test)("applies correct textColor to placeholder", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
527
+ yield initTestBed(`<AutoComplete testId="test" placeholder="Search..." />`, {
528
+ testThemeVars: { "textColor-placeholder-AutoComplete": "rgb(0, 0, 0)" },
529
+ });
530
+ const placeholderColor = yield page.evaluate(() => {
531
+ const input = document.querySelector("input");
532
+ return window.getComputedStyle(input, "::placeholder").color;
533
+ });
534
+ (0, fixtures_1.expect)(placeholderColor).toBe("rgb(0, 0, 0)");
535
+ }));
536
+ fixtures_1.test.fixme("applies correct fontSize to placeholder", component_test_helpers_1.SKIP_REASON.UNSURE("Does AutoComplete applies the correct css for the placeholder?"), (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
537
+ yield initTestBed(`<AutoComplete testId="test" placeholder="Search..." />`, {
538
+ testThemeVars: { "fontSize-placeholder-AutoComplete--default": "20px" },
539
+ });
540
+ const placeholderFontSize = yield page.evaluate(() => {
541
+ const input = document.querySelector("input");
542
+ return window.getComputedStyle(input, "::placeholder").fontSize;
543
+ });
544
+ (0, fixtures_1.expect)(placeholderFontSize).toBe("20px");
545
+ }));
546
+ });
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.labelListComponentRenderer = exports.LabelListMd = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const LabelListNative_module_scss_1 = __importDefault(require("./LabelListNative.module.scss"));
8
+ const LabelList_module_scss_1 = __importDefault(require("./LabelList.module.scss"));
9
9
  const LabelListNative_1 = require("./LabelListNative");
10
10
  const abstractions_1 = require("../utils/abstractions");
11
11
  const themeVars_1 = require("../../../components-core/theming/themeVars");
@@ -30,7 +30,7 @@ exports.LabelListMd = (0, metadata_helpers_1.createMetadata)({
30
30
  defaultValue: LabelListNative_1.defaultProps.position,
31
31
  },
32
32
  },
33
- themeVars: (0, themeVars_1.parseScssVar)(LabelListNative_module_scss_1.default.themeVars),
33
+ themeVars: (0, themeVars_1.parseScssVar)(LabelList_module_scss_1.default.themeVars),
34
34
  defaultThemeVars: {
35
35
  "textColor-LabelList": "$textColor-primary",
36
36
  },
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LabelList = exports.defaultProps = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const LabelListNative_module_scss_1 = __importDefault(require("./LabelListNative.module.scss"));
8
+ const LabelList_module_scss_1 = __importDefault(require("./LabelList.module.scss"));
9
9
  const react_1 = require("react");
10
10
  const recharts_1 = require("recharts");
11
11
  const ChartProvider_1 = require("../utils/ChartProvider");
@@ -16,7 +16,7 @@ exports.defaultProps = {
16
16
  const LabelList = ({ position = exports.defaultProps.position, nameKey: key, style, className }) => {
17
17
  const { nameKey } = (0, ChartProvider_1.useChart)();
18
18
  const { setLabelList } = (0, ChartProvider_1.useLabelList)();
19
- const content = (0, react_1.useMemo)(() => ((0, jsx_runtime_1.jsx)(recharts_1.LabelList, { position: position, className: (0, classnames_1.default)(LabelListNative_module_scss_1.default.labelList, className), dataKey: key || nameKey, stroke: "none", style: style }, "labelList")), [key, nameKey, position, style, className]);
19
+ const content = (0, react_1.useMemo)(() => ((0, jsx_runtime_1.jsx)(recharts_1.LabelList, { position: position, className: (0, classnames_1.default)(LabelList_module_scss_1.default.labelList, className), dataKey: key || nameKey, stroke: "none", style: style }, "labelList")), [key, nameKey, position, style, className]);
20
20
  (0, react_1.useEffect)(() => {
21
21
  setLabelList(content);
22
22
  }, [content, setLabelList]);
@@ -61,12 +61,12 @@ exports.CheckboxMd = (0, metadata_helpers_1.createMetadata)({
61
61
  themeVars: (0, themeVars_1.parseScssVar)(Toggle_module_scss_1.default.themeVars),
62
62
  limitThemeVarsToComponent: true,
63
63
  defaultThemeVars: {
64
- [`borderColor-checked-${COMP}-error`]: `$borderColor-${COMP}-error`,
65
- [`backgroundColor-checked-${COMP}-error`]: `$borderColor-${COMP}-error`,
66
- [`borderColor-checked-${COMP}-warning`]: `$borderColor-${COMP}-warning`,
67
- [`backgroundColor-checked-${COMP}-warning`]: `$borderColor-${COMP}-warning`,
68
- [`borderColor-checked-${COMP}-success`]: `$borderColor-${COMP}-success`,
69
- [`backgroundColor-checked-${COMP}-success`]: `$borderColor-${COMP}-success`,
64
+ [`borderColor-checked-${COMP}--error`]: `$borderColor-${COMP}--error`,
65
+ [`backgroundColor-checked-${COMP}--error`]: `$borderColor-${COMP}--error`,
66
+ [`borderColor-checked-${COMP}--warning`]: `$borderColor-${COMP}--warning`,
67
+ [`backgroundColor-checked-${COMP}--warning`]: `$borderColor-${COMP}--warning`,
68
+ [`borderColor-checked-${COMP}--success`]: `$borderColor-${COMP}--success`,
69
+ [`backgroundColor-checked-${COMP}--success`]: `$borderColor-${COMP}--success`,
70
70
  [`backgroundColor-indicator-${COMP}`]: "$backgroundColor-primary",
71
71
  [`borderColor-checked-${COMP}`]: "$color-primary-500",
72
72
  [`backgroundColor-checked-${COMP}`]: "$color-primary-500",
@@ -811,60 +811,6 @@ fixtures_1.test.describe("Theme Vars", () => {
811
811
  });
812
812
  yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
813
813
  }));
814
- (0, fixtures_1.test)("valid borderColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
815
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
816
- yield initTestBed(`<Checkbox validationStatus="valid" />`, {
817
- testThemeVars: {
818
- "borderColor-Checkbox-success": EXPECTED_COLOR,
819
- },
820
- });
821
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
822
- }));
823
- (0, fixtures_1.test)("valid backgroundColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
824
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
825
- yield initTestBed(`<Checkbox validationStatus="valid" />`, {
826
- testThemeVars: {
827
- "backgroundColor-Checkbox-success": EXPECTED_COLOR,
828
- },
829
- });
830
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
831
- }));
832
- (0, fixtures_1.test)("warning borderColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
833
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
834
- yield initTestBed(`<Checkbox validationStatus="warning" />`, {
835
- testThemeVars: {
836
- "borderColor-Checkbox-warning": EXPECTED_COLOR,
837
- },
838
- });
839
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
840
- }));
841
- (0, fixtures_1.test)("warning backgroundColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
842
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
843
- yield initTestBed(`<Checkbox validationStatus="warning" />`, {
844
- testThemeVars: {
845
- "backgroundColor-Checkbox-warning": EXPECTED_COLOR,
846
- },
847
- });
848
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
849
- }));
850
- (0, fixtures_1.test)("error borderColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
851
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
852
- yield initTestBed(`<Checkbox validationStatus="error" />`, {
853
- testThemeVars: {
854
- "borderColor-Checkbox-error": EXPECTED_COLOR,
855
- },
856
- });
857
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
858
- }));
859
- (0, fixtures_1.test)("error backgroundColor", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
860
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
861
- yield initTestBed(`<Checkbox validationStatus="error" />`, {
862
- testThemeVars: {
863
- "backgroundColor-Checkbox-error": EXPECTED_COLOR,
864
- },
865
- });
866
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
867
- }));
868
814
  (0, fixtures_1.test)("borderRadius", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
869
815
  const CUSTOM_BORDER_RADIUS = "10px";
870
816
  yield initTestBed(`<Checkbox />`, {
@@ -919,51 +865,36 @@ fixtures_1.test.describe("Theme Vars", () => {
919
865
  // VALIDATION STATUS TESTS
920
866
  // =============================================================================
921
867
  fixtures_1.test.describe("Validation", () => {
922
- (0, fixtures_1.test)(`validationStatus=error correctly displayed`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
923
- const validationLevel = "error";
924
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
925
- yield initTestBed(`<Checkbox validationStatus="${validationLevel}" />`, {
926
- testThemeVars: {
927
- [`backgroundColor-Checkbox-${validationLevel}`]: EXPECTED_COLOR,
928
- [`borderColor-Checkbox-${validationLevel}`]: EXPECTED_COLOR,
929
- },
930
- });
931
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
932
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
933
- }));
934
- (0, fixtures_1.test)(`validationStatus=warning correctly displayed`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
935
- const validationLevel = "warning";
936
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
937
- yield initTestBed(`<Checkbox validationStatus="${validationLevel}" />`, {
938
- testThemeVars: {
939
- [`backgroundColor-Checkbox-${validationLevel}`]: EXPECTED_COLOR,
940
- [`borderColor-Checkbox-${validationLevel}`]: EXPECTED_COLOR,
941
- },
942
- });
943
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
944
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
945
- }));
946
- (0, fixtures_1.test)(`validationStatus=valid correctly displayed`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
947
- const EXPECTED_COLOR = "rgb(255, 0, 0)";
948
- yield initTestBed(`<Checkbox validationStatus="valid" />`, {
949
- testThemeVars: {
950
- [`backgroundColor-Checkbox-success`]: EXPECTED_COLOR,
951
- [`borderColor-Checkbox-success`]: EXPECTED_COLOR,
952
- },
953
- });
954
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("background-color", EXPECTED_COLOR);
955
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).toHaveCSS("border-color", EXPECTED_COLOR);
956
- }));
957
- (0, fixtures_1.test)("handles invalid validationStatus gracefully", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
958
- const validationLevel = "invalid";
959
- const NOT_EXPECTED_COLOR = "rgb(255, 0, 0)";
960
- yield initTestBed(`<Checkbox validationStatus="${validationLevel}" />`, {
961
- testThemeVars: {
962
- [`backgroundColor-Checkbox-${validationLevel}`]: NOT_EXPECTED_COLOR,
963
- [`borderColor-Checkbox-${validationLevel}`]: NOT_EXPECTED_COLOR,
964
- },
868
+ [
869
+ { value: "--default", prop: "" },
870
+ { value: "--warning", prop: 'validationStatus="warning"' },
871
+ { value: "--error", prop: 'validationStatus="error"' },
872
+ { value: "--success", prop: 'validationStatus="valid"' },
873
+ ].forEach((variant) => {
874
+ (0, fixtures_1.test)(`applies correct borderRadius ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
875
+ yield initTestBed(`<Checkbox testId="test" ${variant.prop} />`, {
876
+ testThemeVars: { [`borderRadius-Checkbox${variant.value}`]: "12px" },
877
+ });
878
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-radius", "12px");
879
+ }));
880
+ (0, fixtures_1.test)(`applies correct borderColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
881
+ yield initTestBed(`<Checkbox testId="test" ${variant.prop} />`, {
882
+ testThemeVars: { [`borderColor-Checkbox${variant.value}`]: "rgb(255, 0, 0)" },
883
+ });
884
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(255, 0, 0)");
885
+ }));
886
+ (0, fixtures_1.test)(`applies correct backgroundColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
887
+ yield initTestBed(`<Checkbox testId="test" ${variant.prop} />`, {
888
+ testThemeVars: { [`backgroundColor-Checkbox${variant.value}`]: "rgb(240, 240, 240)" },
889
+ });
890
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("background-color", "rgb(240, 240, 240)");
891
+ }));
892
+ });
893
+ (0, fixtures_1.test)(`applies correct borderColor on hover`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
894
+ yield initTestBed(`<Checkbox testId="test" />`, {
895
+ testThemeVars: { [`borderColor-Checkbox--default--hover`]: "rgb(0, 0, 0)" },
965
896
  });
966
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).not.toHaveCSS("background-color", NOT_EXPECTED_COLOR);
967
- yield (0, fixtures_1.expect)(page.getByRole("checkbox")).not.toHaveCSS("border-color", NOT_EXPECTED_COLOR);
897
+ yield page.getByTestId("test").hover();
898
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(0, 0, 0)");
968
899
  }));
969
900
  });
@@ -100,20 +100,63 @@ const fixtures_1 = require("../../testing/fixtures");
100
100
  // =============================================================================
101
101
  // VISUAL STATE TESTS
102
102
  // =============================================================================
103
- (0, fixtures_1.test)("component shows different validation states correctly", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
104
- // Error state
105
- yield initTestBed(`<ColorPicker validationStatus="error" />`, {});
106
- let colorInput = page.locator("input[type='color']");
107
- yield (0, fixtures_1.expect)(colorInput).toHaveClass(/error/);
108
- // Warning state
109
- yield initTestBed(`<ColorPicker validationStatus="warning" />`, {});
110
- colorInput = page.locator("input[type='color']");
111
- yield (0, fixtures_1.expect)(colorInput).toHaveClass(/warning/);
112
- // Valid state
113
- yield initTestBed(`<ColorPicker validationStatus="valid" />`, {});
114
- colorInput = page.locator("input[type='color']");
115
- yield (0, fixtures_1.expect)(colorInput).toHaveClass(/valid/);
116
- }));
103
+ fixtures_1.test.describe("Validation", () => {
104
+ [
105
+ { value: "--default", prop: "" },
106
+ { value: "--warning", prop: 'validationStatus="warning"' },
107
+ { value: "--error", prop: 'validationStatus="error"' },
108
+ { value: "--success", prop: 'validationStatus="valid"' },
109
+ ].forEach((variant) => {
110
+ (0, fixtures_1.test)(`applies correct borderRadius ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
111
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
112
+ testThemeVars: { [`borderRadius-ColorPicker${variant.value}`]: "12px" },
113
+ });
114
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-radius", "12px");
115
+ }));
116
+ (0, fixtures_1.test)(`applies correct borderColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
117
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
118
+ testThemeVars: { [`borderColor-ColorPicker${variant.value}`]: "rgb(255, 0, 0)" },
119
+ });
120
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(255, 0, 0)");
121
+ }));
122
+ (0, fixtures_1.test)(`applies correct borderWidth ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
123
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
124
+ testThemeVars: { [`borderWidth-ColorPicker${variant.value}`]: "1px" },
125
+ });
126
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-width", "1px");
127
+ }));
128
+ (0, fixtures_1.test)(`applies correct borderStyle ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
129
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
130
+ testThemeVars: { [`borderStyle-ColorPicker${variant.value}`]: "dashed" },
131
+ });
132
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-style", "dashed");
133
+ }));
134
+ (0, fixtures_1.test)(`applies correct boxShadow ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
135
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
136
+ testThemeVars: {
137
+ [`boxShadow-ColorPicker${variant.value}`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
138
+ },
139
+ });
140
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
141
+ }));
142
+ (0, fixtures_1.test)(`applies correct borderColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
143
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
144
+ testThemeVars: { [`borderColor-ColorPicker${variant.value}--hover`]: "rgb(0, 0, 0)" },
145
+ });
146
+ yield page.getByTestId("test").hover();
147
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(0, 0, 0)");
148
+ }));
149
+ (0, fixtures_1.test)(`applies correct boxShadow on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
150
+ yield initTestBed(`<ColorPicker testId="test" ${variant.prop} />`, {
151
+ testThemeVars: {
152
+ [`boxShadow-ColorPicker${variant.value}--hover`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
153
+ },
154
+ });
155
+ yield page.getByTestId("test").hover();
156
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
157
+ }));
158
+ });
159
+ });
117
160
  (0, fixtures_1.test)("component applies backgroundColor-ColorPicker theme variable", (_a) => __awaiter(void 0, [_a], void 0, function* ({ page, initTestBed }) {
118
161
  yield initTestBed(`<ColorPicker />`, {
119
162
  testThemeVars: {
@@ -279,23 +279,94 @@ fixtures_1.test.describe("initialValue property", () => {
279
279
  yield (0, fixtures_1.expect)(driver.dayInput).toHaveValue("30");
280
280
  }));
281
281
  });
282
- fixtures_1.test.describe("validationStatus property", () => {
283
- (0, fixtures_1.test)("applies valid status styling", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createDateInputDriver }) {
284
- yield initTestBed(`<DateInput testId="dateInput" validationStatus="valid" initialValue="05/25/2024" />`);
285
- const driver = yield createDateInputDriver("dateInput");
286
- yield (0, fixtures_1.expect)(driver.component).toBeVisible();
287
- // Note: validation status may be applied via CSS classes rather than data attributes
288
- }));
289
- (0, fixtures_1.test)("applies warning status styling", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createDateInputDriver }) {
290
- yield initTestBed(`<DateInput testId="dateInput" validationStatus="warning" initialValue="05/25/2024" />`);
291
- const driver = yield createDateInputDriver("dateInput");
292
- yield (0, fixtures_1.expect)(driver.component).toBeVisible();
293
- }));
294
- (0, fixtures_1.test)("applies error status styling", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createDateInputDriver }) {
295
- yield initTestBed(`<DateInput testId="dateInput" validationStatus="error" initialValue="05/25/2024" />`);
296
- const driver = yield createDateInputDriver("dateInput");
297
- yield (0, fixtures_1.expect)(driver.component).toBeVisible();
298
- }));
282
+ fixtures_1.test.describe("Validation", () => {
283
+ [
284
+ { value: "--default", prop: "" },
285
+ { value: "--warning", prop: 'validationStatus="warning"' },
286
+ { value: "--error", prop: 'validationStatus="error"' },
287
+ { value: "--success", prop: 'validationStatus="valid"' },
288
+ ].forEach((variant) => {
289
+ (0, fixtures_1.test)(`applies correct borderRadius ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
290
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
291
+ testThemeVars: { [`borderRadius-DateInput${variant.value}`]: "12px" },
292
+ });
293
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-radius", "12px");
294
+ }));
295
+ (0, fixtures_1.test)(`applies correct borderColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
296
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
297
+ testThemeVars: { [`borderColor-DateInput${variant.value}`]: "rgb(255, 0, 0)" },
298
+ });
299
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(255, 0, 0)");
300
+ }));
301
+ (0, fixtures_1.test)(`applies correct borderWidth ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
302
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
303
+ testThemeVars: { [`borderWidth-DateInput${variant.value}`]: "1px" },
304
+ });
305
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-width", "1px");
306
+ }));
307
+ (0, fixtures_1.test)(`applies correct borderStyle ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
308
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
309
+ testThemeVars: { [`borderStyle-DateInput${variant.value}`]: "dashed" },
310
+ });
311
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-style", "dashed");
312
+ }));
313
+ (0, fixtures_1.test)(`applies correct fontSize ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
314
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
315
+ testThemeVars: { [`fontSize-DateInput${variant.value}`]: "14px" },
316
+ });
317
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("font-size", "14px");
318
+ }));
319
+ (0, fixtures_1.test)(`applies correct backgroundColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
320
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
321
+ testThemeVars: { [`backgroundColor-DateInput${variant.value}`]: "rgb(240, 240, 240)" },
322
+ });
323
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("background-color", "rgb(240, 240, 240)");
324
+ }));
325
+ (0, fixtures_1.test)(`applies correct boxShadow ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
326
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
327
+ testThemeVars: {
328
+ [`boxShadow-DateInput${variant.value}`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
329
+ },
330
+ });
331
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
332
+ }));
333
+ (0, fixtures_1.test)(`applies correct textColor ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
334
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
335
+ testThemeVars: { [`textColor-DateInput${variant.value}`]: "rgb(0, 0, 0)" },
336
+ });
337
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("color", "rgb(0, 0, 0)");
338
+ }));
339
+ (0, fixtures_1.test)(`applies correct borderColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
340
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
341
+ testThemeVars: { [`borderColor-DateInput${variant.value}--hover`]: "rgb(0, 0, 0)" },
342
+ });
343
+ yield page.getByTestId("test").hover();
344
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("border-color", "rgb(0, 0, 0)");
345
+ }));
346
+ (0, fixtures_1.test)(`applies correct backgroundColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page, }) {
347
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
348
+ testThemeVars: { [`backgroundColor-DateInput${variant.value}--hover`]: "rgb(0, 0, 0)" },
349
+ });
350
+ yield page.getByTestId("test").hover();
351
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("background-color", "rgb(0, 0, 0)");
352
+ }));
353
+ (0, fixtures_1.test)(`applies correct boxShadow on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
354
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
355
+ testThemeVars: {
356
+ [`boxShadow-DateInput${variant.value}--hover`]: "0 2px 8px rgba(0, 0, 0, 0.1)",
357
+ },
358
+ });
359
+ yield page.getByTestId("test").hover();
360
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("box-shadow", "rgba(0, 0, 0, 0.1) 0px 2px 8px 0px");
361
+ }));
362
+ (0, fixtures_1.test)(`applies correct textColor on hover ${variant.value}`, (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, page }) {
363
+ yield initTestBed(`<DateInput testId="test" ${variant.prop} />`, {
364
+ testThemeVars: { [`textColor-DateInput${variant.value}--hover`]: "rgb(0, 0, 0)" },
365
+ });
366
+ yield page.getByTestId("test").hover();
367
+ yield (0, fixtures_1.expect)(page.getByTestId("test")).toHaveCSS("color", "rgb(0, 0, 0)");
368
+ }));
369
+ });
299
370
  });
300
371
  fixtures_1.test.describe("autoFocus property", () => {
301
372
  (0, fixtures_1.test)("focuses component when autoFocus is true", (_a) => __awaiter(void 0, [_a], void 0, function* ({ initTestBed, createDateInputDriver, }) {
@@ -200,9 +200,9 @@ const date_fns_1 = require("date-fns");
200
200
  // Error state
201
201
  yield initTestBed(`<DatePicker testId="datePicker" validationStatus="error" />`, {
202
202
  testThemeVars: {
203
- "borderColor-DatePicker-error": "rgb(220, 38, 38)",
204
- "backgroundColor-DatePicker-error": "rgb(254, 202, 202)",
205
- "textColor-DatePicker-error": "rgb(127, 29, 29)",
203
+ "borderColor-DatePicker--error": "rgb(220, 38, 38)",
204
+ "backgroundColor-DatePicker--error": "rgb(254, 202, 202)",
205
+ "textColor-DatePicker--error": "rgb(127, 29, 29)",
206
206
  },
207
207
  });
208
208
  yield (0, fixtures_1.expect)(page.getByTestId("datePicker")).toHaveCSS("border-color", "rgb(220, 38, 38)");
@@ -213,9 +213,9 @@ const date_fns_1 = require("date-fns");
213
213
  // Warning state
214
214
  yield initTestBed(`<DatePicker testId="datePicker" validationStatus="warning" />`, {
215
215
  testThemeVars: {
216
- "borderColor-DatePicker-warning": "rgb(255, 165, 0)",
217
- "backgroundColor-DatePicker-warning": "rgb(255, 235, 156)",
218
- "textColor-DatePicker-warning": "rgb(127, 29, 29)",
216
+ "borderColor-DatePicker--warning": "rgb(255, 165, 0)",
217
+ "backgroundColor-DatePicker--warning": "rgb(255, 235, 156)",
218
+ "textColor-DatePicker--warning": "rgb(127, 29, 29)",
219
219
  },
220
220
  });
221
221
  yield (0, fixtures_1.expect)(page.getByTestId("datePicker")).toHaveCSS("border-color", "rgb(255, 165, 0)");
@@ -226,9 +226,9 @@ const date_fns_1 = require("date-fns");
226
226
  // Valid state
227
227
  yield initTestBed(`<DatePicker testId="datePicker" validationStatus="valid" />`, {
228
228
  testThemeVars: {
229
- "borderColor-DatePicker-success": "rgb(0, 128, 0)",
230
- "backgroundColor-DatePicker-success": "rgb(220, 255, 220)",
231
- "textColor-DatePicker-success": "rgb(0, 100, 0)",
229
+ "borderColor-DatePicker--success": "rgb(0, 128, 0)",
230
+ "backgroundColor-DatePicker--success": "rgb(220, 255, 220)",
231
+ "textColor-DatePicker--success": "rgb(0, 100, 0)",
232
232
  },
233
233
  });
234
234
  yield (0, fixtures_1.expect)(page.getByTestId("datePicker")).toHaveCSS("border-color", "rgb(0, 128, 0)");