@geotab/zenith 3.12.0-beta.0 → 3.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,53 +47,11 @@ Zenith library provides components defined in Zenith Design System. It includes
47
47
 
48
48
  Markdown reference for each component (used by AI tooling and IRIS) lives in [`documentation/components/`](./documentation/components/). These are kept in sync with the source via the [`/zenith-doc-sync`](https://git.geotab.com/ai-hub/skill-playground/skill-workflow-zenith-doc-sync) skill when component code changes.
49
49
 
50
- ## Testing
51
-
52
- ### Quarantining Jest Tests
53
-
54
- Sisyphus can quarantine flaky Jest tests and auto-create follow-up tickets. To quarantine a test, the quarantine annotations **must be commented out** (Jest has no native trait attribute support) and placed inside the `describe` block, directly above the `test.skip` or `it.skip`.
55
-
56
- In the case the `test` syntax is used:
57
-
58
- ```typescript
59
- describe("fooTestParent", () => {
60
- // [Trait("QuarantinedReason", "Failed in main")] // This trait must be exactly the same, reason must be non-empty (or use a different reason)
61
- // [Trait("QuarantinedTestTicketLink", "")] // This trait must be exactly the same (or a ticket can be added)
62
- test.skip("fooTest", async () => {
63
- // Insert test code
64
- });
65
- });
66
- ```
67
-
68
- Or, in case the `it` syntax is used instead:
69
-
70
- ```typescript
71
- describe("fooTestParent", () => {
72
- // [Trait("QuarantinedReason", "Failed in main")] // This trait must be exactly the same, reason must be non-empty (or use a different reason)
73
- // [Trait("QuarantinedTestTicketLink", "")] // This trait must be exactly the same (or a ticket can be added)
74
- it.skip("fooTest", async () => {
75
- // Insert test code
76
- });
77
- });
78
- ```
79
-
80
- Or, for parameterized tests (`test.each` / `it.each`):
81
-
82
- ```typescript
83
- describe("fooTestParent", () => {
84
- // [Trait("QuarantinedReason", "Failed in main")] // This trait must be exactly the same, reason must be non-empty (or use a different reason)
85
- // [Trait("QuarantinedTestTicketLink", "")] // This trait must be exactly the same (or a ticket can be added)
86
- test.skip.each([...])("fooTest %s", async (param) => {
87
- // Insert test code
88
- });
89
- });
90
- ```
91
-
92
- NOTE: `.skip` goes between `test`/`it` and `.each` — use `test.skip.each(...)`, not `test.each.skip(...)`.
50
+ ## Change log
93
51
 
94
- NOTE: this will not work in the case of adding quarantine annotations to a `describe` block.
52
+ ### 3.12.1
95
53
 
96
- ## Change log
54
+ - Fix CSS custom properties in `Nav` component
97
55
 
98
56
  ### 3.12.0
99
57
 
@@ -25,33 +25,33 @@ const useLanguage_1 = require("../../utils/localization/useLanguage");
25
25
  // T - type of entity
26
26
  // P - props of wrapped component
27
27
  // eslint-disable-next-line @typescript-eslint/naming-convention
28
- injectString("cs", "Column Settings", "Nastaven\xED sloupc\u016F");
29
- injectString("da-DK", "Column Settings", "Kolonneindstillinger");
30
- injectString("de", "Column Settings", "Spalteneinstellungen");
31
- injectString("en", "Column Settings", "Column Settings");
32
- injectString("es", "Column Settings", "Configuraci\xF3n de columnas");
33
- injectString("fi-FI", "Column Settings", "Sarakkeiden asetukset");
34
- injectString("fr", "Column Settings", "Param\xE8tres des colonnes");
35
- injectString("fr-FR", "Column Settings", "Param\xE8tres des colonnes");
36
- injectString("hu-HU", "Column Settings", "Oszlopbe\xE1ll\xEDt\xE1sok");
37
- injectString("id", "Column Settings", "Pengaturan Kolom");
38
- injectString("it", "Column Settings", "Impostazioni colonna");
39
- injectString("ja", "Column Settings", "\u5217\u306E\u8A2D\u5B9A");
40
- injectString("ko-KR", "Column Settings", "\uC5F4 \uC124\uC815");
41
- injectString("ms", "Column Settings", "Tetapan Lajur");
42
- injectString("nb-NO", "Column Settings", "Kolonneinnstillinger");
43
- injectString("nl", "Column Settings", "Kolominstellingen");
44
- injectString("pl", "Column Settings", "Ustawienia kolumn");
45
- injectString("pt-BR", "Column Settings", "Configura\xE7\xF5es da coluna");
46
- injectString("pt-PT", "Column Settings", "Configura\xE7\xF5es de coluna");
47
- injectString("sk-SK", "Column Settings", "Nastavenia st\u013Apcov");
48
- injectString("sv", "Column Settings", "Kolumninst\xE4llningar");
49
- injectString("th", "Column Settings", "\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C");
50
- injectString("tr", "Column Settings", "S\xFCtun Ayarlar\u0131");
51
- injectString("zh-Hans", "Column Settings", "\u5217\u8BBE\u7F6E");
52
- injectString("zh-TW", "Column Settings", "\u6B04\u8A2D\u5B9A");
53
- injectString("ro-RO", "Column Settings", "Set\u0103ri coloane");
54
- injectString("ar", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0623\u0639\u0645\u062F\u0629");
28
+ injectString("cs", "Select visible columns", "Vyberte viditeln\xE9 sloupce");
29
+ injectString("da-DK", "Select visible columns", "V\xE6lg synlige kolonner");
30
+ injectString("de", "Select visible columns", "Sichtbare Spalten ausw\xE4hlen");
31
+ injectString("en", "Select visible columns", "Select visible columns");
32
+ injectString("es", "Select visible columns", "Seleccionar columnas visibles");
33
+ injectString("fi-FI", "Select visible columns", "Valitse n\xE4kyv\xE4t sarakkeet");
34
+ injectString("fr", "Select visible columns", "S\xE9lectionner les colonnes visibles");
35
+ injectString("fr-FR", "Select visible columns", "S\xE9lectionner les colonnes visibles");
36
+ injectString("hu-HU", "Select visible columns", "L\xE1that\xF3 oszlopok kiv\xE1laszt\xE1sa");
37
+ injectString("id", "Select visible columns", "Pilih kolom yang terlihat");
38
+ injectString("it", "Select visible columns", "Selezionare colonne visibili");
39
+ injectString("ja", "Select visible columns", "\u8868\u793A\u5217\u3092\u9078\u629E");
40
+ injectString("ko-KR", "Select visible columns", "\uD45C\uC2DC\uB418\uB294 \uC5F4 \uC120\uD0DD");
41
+ injectString("ms", "Select visible columns", "Pilih lajur yang boleh dilihat");
42
+ injectString("nb-NO", "Select visible columns", "Velg synlige kolonner");
43
+ injectString("nl", "Select visible columns", "Zichtbare kolommen selecteren");
44
+ injectString("pl", "Select visible columns", "Wybierz widoczne kolumny");
45
+ injectString("pt-BR", "Select visible columns", "Selecionar colunas vis\xEDveis");
46
+ injectString("pt-PT", "Select visible columns", "Selecionar colunas vis\xEDveis");
47
+ injectString("sk-SK", "Select visible columns", "Vybra\u0165 vidite\u013En\xE9 st\u013Apce");
48
+ injectString("sv", "Select visible columns", "V\xE4lj synbara kolumner");
49
+ injectString("th", "Select visible columns", "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E21\u0E2D\u0E07\u0E40\u0E2B\u0E47\u0E19\u0E44\u0E14\u0E49");
50
+ injectString("tr", "Select visible columns", "G\xF6r\xFCn\xFCr s\xFCtunlar\u0131 se\xE7");
51
+ injectString("zh-Hans", "Select visible columns", "\u9009\u62E9\u53EF\u89C1\u5217");
52
+ injectString("zh-TW", "Select visible columns", "\u9078\u53D6\u53EF\u898B\u6B04");
53
+ injectString("ro-RO", "Select visible columns", "Selecta\u021Bi coloanele vizibile");
54
+ injectString("ar", "Select visible columns", "\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u0631\u0626\u064A\u0629");
55
55
  const withFlexibleColumns = DataGridComponent => {
56
56
  const FlexibleColumnsComponent = props => {
57
57
  var _a, _b;
@@ -218,7 +218,7 @@ const withFlexibleColumns = DataGridComponent => {
218
218
  children: listOfColumns
219
219
  })
220
220
  }) : (0, jsx_runtime_1.jsx)(popup_1.Popup, {
221
- ariaLabel: translate("Column Settings"),
221
+ ariaLabel: translate("Select visible columns"),
222
222
  triggerRef: popupTriggerRef,
223
223
  alignment: "bottom-right",
224
224
  children: (0, jsx_runtime_1.jsx)(columnSettings_1.ColumnSettings, {
@@ -238,4 +238,4 @@ const withFlexibleColumns = DataGridComponent => {
238
238
  return FlexibleColumnsComponent;
239
239
  };
240
240
  exports.withFlexibleColumns = withFlexibleColumns;
241
- exports.withFlexibleColumns.translations = ["Column Settings", ...columnSettings_1.ColumnSettings.translations, ...columnSettingsSidePanel_1.ColumnSettingsSidePanel.translations, ...emptySearchList_1.EmptySearchList.translations];
241
+ exports.withFlexibleColumns.translations = ["Select visible columns", ...columnSettings_1.ColumnSettings.translations, ...columnSettingsSidePanel_1.ColumnSettingsSidePanel.translations, ...emptySearchList_1.EmptySearchList.translations];
package/dist/index.css CHANGED
@@ -17764,14 +17764,14 @@ html:lang(ar) .zen-mini-tabs {
17764
17764
  margin: 0;
17765
17765
  }
17766
17766
  .zen-nav {
17767
- --nav-gap: (16 / 16rem);
17768
- --nav-items-gap: (8 / 16rem);
17769
- --nav-bottom-padding: (12 / 16rem);
17770
- --nav-top-padding: (9 / 16rem);
17771
- --nav-left-right-padding: (12 / 16rem);
17772
- --nav-left-right-collapsed-padding: (8 / 16rem);
17773
- --nav-top-collapsed-padding: (20 / 16rem);
17774
- --nav-top-bottom-mobile-padding: (12 / 16rem);
17767
+ --nav-gap: 1rem;
17768
+ --nav-items-gap: 0.5rem;
17769
+ --nav-bottom-padding: 0.75rem;
17770
+ --nav-top-padding: 0.5625rem;
17771
+ --nav-left-right-padding: 0.75rem;
17772
+ --nav-left-right-collapsed-padding: 0.5rem;
17773
+ --nav-top-collapsed-padding: 1.25rem;
17774
+ --nav-top-bottom-mobile-padding: 0.75rem;
17775
17775
  --nav-background-color: var(--backgrounds-content-1);
17776
17776
  box-sizing: border-box;
17777
17777
  display: flex;
@@ -6,16 +6,13 @@ const pathContext_1 = require("../contexts/pathContext");
6
6
  const headerContext_1 = require("../../header/headerContext");
7
7
  const buildMenuContent_1 = require("./buildMenuContent");
8
8
  const useMenuItemKeyboardNav_1 = require("./useMenuItemKeyboardNav");
9
- const directionContext_1 = require("../../utils/localization/directionContext");
10
9
  /**
11
10
  * Core menu item logic shared between MenuItem and createMenuItem.
12
11
  * Consolidates context access, state computation, and callback memoization.
13
12
  */
14
13
  const useMenuItemCore = ({ id, children, className, alignment, isMobile = false, setIsOpen, onClick, onOpenChange }) => {
15
14
  const alignmentContext = (0, react_1.useContext)(headerContext_1.MenuAlignmentContext);
16
- const direction = (0, react_1.useContext)(directionContext_1.directionContext);
17
- const defaultAlignment = direction === "rtl" ? "left-top" : "right-top";
18
- const contentAlignment = alignment || alignmentContext.alignment || defaultAlignment;
15
+ const contentAlignment = alignment || alignmentContext.alignment || "end-top";
19
16
  const { path, onOpenBranch, closeBranch, navigatedViaKeyboardRef } = (0, react_1.useContext)(pathContext_1.PathContext);
20
17
  const ref = (0, react_1.useRef)(null);
21
18
  const content = (0, react_1.useMemo)(() => (0, buildMenuContent_1.buildMenuContent)(children, isMobile, setIsOpen, className), [children, isMobile, setIsOpen, className]);
@@ -19,7 +19,7 @@ export declare enum SummaryTileSize {
19
19
  Small = "small",
20
20
  Medium = "medium"
21
21
  }
22
- export interface ISummaryTile extends IZenComponentProps, IZenGridItem, React.AriaAttributes {
22
+ export interface ISummaryTile extends IZenComponentProps, IZenGridItem, Pick<React.AriaAttributes, "aria-selected" | "aria-label" | "aria-labelledby" | "aria-describedby" | "aria-busy"> {
23
23
  /** ARIA role forwarded to the root element. */
24
24
  role?: React.AriaRole;
25
25
  /**
@@ -17,33 +17,33 @@ import { useLanguage } from "../../utils/localization/useLanguage";
17
17
  // T - type of entity
18
18
  // P - props of wrapped component
19
19
  // eslint-disable-next-line @typescript-eslint/naming-convention
20
- injectString("cs", "Column Settings", "Nastaven\xED sloupc\u016F");
21
- injectString("da-DK", "Column Settings", "Kolonneindstillinger");
22
- injectString("de", "Column Settings", "Spalteneinstellungen");
23
- injectString("en", "Column Settings", "Column Settings");
24
- injectString("es", "Column Settings", "Configuraci\xF3n de columnas");
25
- injectString("fi-FI", "Column Settings", "Sarakkeiden asetukset");
26
- injectString("fr", "Column Settings", "Param\xE8tres des colonnes");
27
- injectString("fr-FR", "Column Settings", "Param\xE8tres des colonnes");
28
- injectString("hu-HU", "Column Settings", "Oszlopbe\xE1ll\xEDt\xE1sok");
29
- injectString("id", "Column Settings", "Pengaturan Kolom");
30
- injectString("it", "Column Settings", "Impostazioni colonna");
31
- injectString("ja", "Column Settings", "\u5217\u306E\u8A2D\u5B9A");
32
- injectString("ko-KR", "Column Settings", "\uC5F4 \uC124\uC815");
33
- injectString("ms", "Column Settings", "Tetapan Lajur");
34
- injectString("nb-NO", "Column Settings", "Kolonneinnstillinger");
35
- injectString("nl", "Column Settings", "Kolominstellingen");
36
- injectString("pl", "Column Settings", "Ustawienia kolumn");
37
- injectString("pt-BR", "Column Settings", "Configura\xE7\xF5es da coluna");
38
- injectString("pt-PT", "Column Settings", "Configura\xE7\xF5es de coluna");
39
- injectString("sk-SK", "Column Settings", "Nastavenia st\u013Apcov");
40
- injectString("sv", "Column Settings", "Kolumninst\xE4llningar");
41
- injectString("th", "Column Settings", "\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C");
42
- injectString("tr", "Column Settings", "S\xFCtun Ayarlar\u0131");
43
- injectString("zh-Hans", "Column Settings", "\u5217\u8BBE\u7F6E");
44
- injectString("zh-TW", "Column Settings", "\u6B04\u8A2D\u5B9A");
45
- injectString("ro-RO", "Column Settings", "Set\u0103ri coloane");
46
- injectString("ar", "Column Settings", "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0623\u0639\u0645\u062F\u0629");
20
+ injectString("cs", "Select visible columns", "Vyberte viditeln\xE9 sloupce");
21
+ injectString("da-DK", "Select visible columns", "V\xE6lg synlige kolonner");
22
+ injectString("de", "Select visible columns", "Sichtbare Spalten ausw\xE4hlen");
23
+ injectString("en", "Select visible columns", "Select visible columns");
24
+ injectString("es", "Select visible columns", "Seleccionar columnas visibles");
25
+ injectString("fi-FI", "Select visible columns", "Valitse n\xE4kyv\xE4t sarakkeet");
26
+ injectString("fr", "Select visible columns", "S\xE9lectionner les colonnes visibles");
27
+ injectString("fr-FR", "Select visible columns", "S\xE9lectionner les colonnes visibles");
28
+ injectString("hu-HU", "Select visible columns", "L\xE1that\xF3 oszlopok kiv\xE1laszt\xE1sa");
29
+ injectString("id", "Select visible columns", "Pilih kolom yang terlihat");
30
+ injectString("it", "Select visible columns", "Selezionare colonne visibili");
31
+ injectString("ja", "Select visible columns", "\u8868\u793A\u5217\u3092\u9078\u629E");
32
+ injectString("ko-KR", "Select visible columns", "\uD45C\uC2DC\uB418\uB294 \uC5F4 \uC120\uD0DD");
33
+ injectString("ms", "Select visible columns", "Pilih lajur yang boleh dilihat");
34
+ injectString("nb-NO", "Select visible columns", "Velg synlige kolonner");
35
+ injectString("nl", "Select visible columns", "Zichtbare kolommen selecteren");
36
+ injectString("pl", "Select visible columns", "Wybierz widoczne kolumny");
37
+ injectString("pt-BR", "Select visible columns", "Selecionar colunas vis\xEDveis");
38
+ injectString("pt-PT", "Select visible columns", "Selecionar colunas vis\xEDveis");
39
+ injectString("sk-SK", "Select visible columns", "Vybra\u0165 vidite\u013En\xE9 st\u013Apce");
40
+ injectString("sv", "Select visible columns", "V\xE4lj synbara kolumner");
41
+ injectString("th", "Select visible columns", "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C\u0E17\u0E35\u0E48\u0E21\u0E2D\u0E07\u0E40\u0E2B\u0E47\u0E19\u0E44\u0E14\u0E49");
42
+ injectString("tr", "Select visible columns", "G\xF6r\xFCn\xFCr s\xFCtunlar\u0131 se\xE7");
43
+ injectString("zh-Hans", "Select visible columns", "\u9009\u62E9\u53EF\u89C1\u5217");
44
+ injectString("zh-TW", "Select visible columns", "\u9078\u53D6\u53EF\u898B\u6B04");
45
+ injectString("ro-RO", "Select visible columns", "Selecta\u021Bi coloanele vizibile");
46
+ injectString("ar", "Select visible columns", "\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0623\u0639\u0645\u062F\u0629 \u0627\u0644\u0645\u0631\u0626\u064A\u0629");
47
47
  export const withFlexibleColumns = DataGridComponent => {
48
48
  const FlexibleColumnsComponent = props => {
49
49
  var _a, _b;
@@ -210,7 +210,7 @@ export const withFlexibleColumns = DataGridComponent => {
210
210
  children: listOfColumns
211
211
  })
212
212
  }) : _jsx(Popup, {
213
- ariaLabel: translate("Column Settings"),
213
+ ariaLabel: translate("Select visible columns"),
214
214
  triggerRef: popupTriggerRef,
215
215
  alignment: "bottom-right",
216
216
  children: _jsx(ColumnSettings, {
@@ -229,4 +229,4 @@ export const withFlexibleColumns = DataGridComponent => {
229
229
  FlexibleColumnsComponent.displayName = `withFlexibleColumns(${DataGridComponent.displayName || DataGridComponent.name || "Component"})`;
230
230
  return FlexibleColumnsComponent;
231
231
  };
232
- withFlexibleColumns.translations = ["Column Settings", ...ColumnSettings.translations, ...ColumnSettingsSidePanel.translations, ...EmptySearchList.translations];
232
+ withFlexibleColumns.translations = ["Select visible columns", ...ColumnSettings.translations, ...ColumnSettingsSidePanel.translations, ...EmptySearchList.translations];
@@ -3,16 +3,13 @@ import { PathContext } from "../contexts/pathContext";
3
3
  import { MenuAlignmentContext } from "../../header/headerContext";
4
4
  import { buildMenuContent } from "./buildMenuContent";
5
5
  import { useMenuItemKeyboardNav } from "./useMenuItemKeyboardNav";
6
- import { directionContext } from "../../utils/localization/directionContext";
7
6
  /**
8
7
  * Core menu item logic shared between MenuItem and createMenuItem.
9
8
  * Consolidates context access, state computation, and callback memoization.
10
9
  */
11
10
  export const useMenuItemCore = ({ id, children, className, alignment, isMobile = false, setIsOpen, onClick, onOpenChange }) => {
12
11
  const alignmentContext = useContext(MenuAlignmentContext);
13
- const direction = useContext(directionContext);
14
- const defaultAlignment = direction === "rtl" ? "left-top" : "right-top";
15
- const contentAlignment = alignment || alignmentContext.alignment || defaultAlignment;
12
+ const contentAlignment = alignment || alignmentContext.alignment || "end-top";
16
13
  const { path, onOpenBranch, closeBranch, navigatedViaKeyboardRef } = useContext(PathContext);
17
14
  const ref = useRef(null);
18
15
  const content = useMemo(() => buildMenuContent(children, isMobile, setIsOpen, className), [children, isMobile, setIsOpen, className]);
@@ -19,7 +19,7 @@ export declare enum SummaryTileSize {
19
19
  Small = "small",
20
20
  Medium = "medium"
21
21
  }
22
- export interface ISummaryTile extends IZenComponentProps, IZenGridItem, React.AriaAttributes {
22
+ export interface ISummaryTile extends IZenComponentProps, IZenGridItem, Pick<React.AriaAttributes, "aria-selected" | "aria-label" | "aria-labelledby" | "aria-describedby" | "aria-busy"> {
23
23
  /** ARIA role forwarded to the root element. */
24
24
  role?: React.AriaRole;
25
25
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geotab/zenith",
3
- "version": "3.12.0-beta.0",
3
+ "version": "3.12.1",
4
4
  "description": "Zenith components library on React",
5
5
  "main": "dist/index.js",
6
6
  "types": "esm/index.d.ts",