@saltcorn/markup 1.6.0 → 1.7.0-alpha.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.
Files changed (89) hide show
  1. package/cjs/builder.cjs +10 -0
  2. package/cjs/layout.cjs +10 -0
  3. package/cjs/mktag.cjs +10 -0
  4. package/cjs/table.cjs +10 -0
  5. package/cjs/tabs.cjs +10 -0
  6. package/cjs/workflow.cjs +10 -0
  7. package/dist/builder.d.ts +1 -1
  8. package/dist/builder.d.ts.map +1 -1
  9. package/dist/builder.js +13 -3
  10. package/dist/builder.js.map +1 -1
  11. package/dist/emergency_layout.d.ts +30 -3
  12. package/dist/emergency_layout.d.ts.map +1 -1
  13. package/dist/emergency_layout.js +5 -6
  14. package/dist/emergency_layout.js.map +1 -1
  15. package/dist/extra_tags.d.ts +31 -0
  16. package/dist/extra_tags.d.ts.map +1 -0
  17. package/dist/extra_tags.js +54 -0
  18. package/dist/extra_tags.js.map +1 -0
  19. package/dist/form.d.ts +21 -1
  20. package/dist/form.d.ts.map +1 -1
  21. package/dist/form.js +13 -14
  22. package/dist/form.js.map +1 -1
  23. package/dist/form.test.js +48 -84
  24. package/dist/form.test.js.map +1 -1
  25. package/dist/generated_tags.d.ts +127 -0
  26. package/dist/generated_tags.d.ts.map +1 -0
  27. package/dist/generated_tags.js +253 -0
  28. package/dist/generated_tags.js.map +1 -0
  29. package/dist/helpers.d.ts +95 -53
  30. package/dist/helpers.d.ts.map +1 -1
  31. package/dist/helpers.js +3 -3
  32. package/dist/helpers.js.map +1 -1
  33. package/dist/helpers.test.js +123 -127
  34. package/dist/helpers.test.js.map +1 -1
  35. package/dist/index.d.ts +95 -17
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +10 -10
  38. package/dist/index.js.map +1 -1
  39. package/dist/internal.d.ts +29 -2
  40. package/dist/internal.d.ts.map +1 -1
  41. package/dist/internal.js +24 -10
  42. package/dist/internal.js.map +1 -1
  43. package/dist/layout.d.ts +1 -1
  44. package/dist/layout.d.ts.map +1 -1
  45. package/dist/layout.js +125 -98
  46. package/dist/layout.js.map +1 -1
  47. package/dist/layout.test.js +130 -167
  48. package/dist/layout.test.js.map +1 -1
  49. package/dist/layout_utils.d.ts +142 -2
  50. package/dist/layout_utils.d.ts.map +1 -1
  51. package/dist/layout_utils.js +7 -4
  52. package/dist/layout_utils.js.map +1 -1
  53. package/dist/layout_utils.test.js +49 -53
  54. package/dist/layout_utils.test.js.map +1 -1
  55. package/dist/markup.test.js +227 -264
  56. package/dist/markup.test.js.map +1 -1
  57. package/dist/mjml-layout.d.ts +31 -1
  58. package/dist/mjml-layout.d.ts.map +1 -1
  59. package/dist/mjml-layout.js +4 -4
  60. package/dist/mjml-layout.js.map +1 -1
  61. package/dist/mjml-tags.d.ts +40 -4
  62. package/dist/mjml-tags.d.ts.map +1 -1
  63. package/dist/mjml-tags.js +31 -21
  64. package/dist/mjml-tags.js.map +1 -1
  65. package/dist/mktag.d.ts +2 -2
  66. package/dist/mktag.d.ts.map +1 -1
  67. package/dist/mktag.js +1 -2
  68. package/dist/mktag.js.map +1 -1
  69. package/dist/table.d.ts +3 -1
  70. package/dist/table.d.ts.map +1 -1
  71. package/dist/table.js +63 -16
  72. package/dist/table.js.map +1 -1
  73. package/dist/tabs.d.ts +1 -1
  74. package/dist/tabs.d.ts.map +1 -1
  75. package/dist/tabs.js +2 -3
  76. package/dist/tabs.js.map +1 -1
  77. package/dist/tags.d.ts +7 -2
  78. package/dist/tags.d.ts.map +1 -1
  79. package/dist/tags.js +16 -94
  80. package/dist/tags.js.map +1 -1
  81. package/dist/types.d.ts +2 -1
  82. package/dist/types.d.ts.map +1 -1
  83. package/dist/types.js +1 -2
  84. package/dist/workflow.d.ts +1 -1
  85. package/dist/workflow.d.ts.map +1 -1
  86. package/dist/workflow.js +2 -3
  87. package/dist/workflow.js.map +1 -1
  88. package/package.json +46 -12
  89. /package/{webpack.config.js → webpack.config.cjs} +0 -0
@@ -1,33 +1,29 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const globals_1 = require("@jest/globals");
7
- const layout_utils_1 = __importDefault(require("./layout_utils"));
8
- const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar, innerSections, } = layout_utils_1.default;
9
- (0, globals_1.describe)("alert", () => {
10
- (0, globals_1.it)("renders a success alert", () => {
1
+ import { describe, it } from "node:test";
2
+ import { expect } from "@saltcorn/db-common/test_expect";
3
+ import layoutUtils from "./layout_utils.js";
4
+ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar, innerSections, } = layoutUtils;
5
+ describe("alert", () => {
6
+ it("renders a success alert", () => {
11
7
  const result = alert("success", "Operation completed successfully.");
12
- (0, globals_1.expect)(result).toBe(`<div class="alert alert-success alert-dismissible fade show" role="alert"><i class="fas fa-check-circle me-1"></i>Operation completed successfully.<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>`);
8
+ expect(result).toBe(`<div class="alert alert-success alert-dismissible fade show" role="alert"><i class="fas fa-check-circle me-1"></i>Operation completed successfully.<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>`);
13
9
  });
14
- (0, globals_1.it)("renders an error alert", () => {
10
+ it("renders an error alert", () => {
15
11
  const result = alert("error", "An error occurred.");
16
- (0, globals_1.expect)(result).toBe(`<div class="alert alert-danger alert-dismissible fade show" role="alert"><i class="fas fa-times-circle me-1"></i>An error occurred.<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>`);
12
+ expect(result).toBe(`<div class="alert alert-danger alert-dismissible fade show" role="alert"><i class="fas fa-times-circle me-1"></i>An error occurred.<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>`);
17
13
  });
18
14
  });
19
- (0, globals_1.describe)("toast", () => {
20
- (0, globals_1.it)("renders a success toast", () => {
15
+ describe("toast", () => {
16
+ it("renders a success toast", () => {
21
17
  const result = toast("success", "Data saved successfully.");
22
- (0, globals_1.expect)(result).toBe(`<div class="toast show" rendered="server-side" type="success" role="alert" ariaLive="assertive" ariaAtomic="true" style="min-width: 350px; max-width: 50vw; width: auto; "><div class="toast-header bg-success text-white py-1"><i class="fas fa-check-circle me-2"></i><strong class="me-auto">success</strong><button type="button" class="btn-close btn-close-white" data-bs-dismiss="toast" aria-label="Close" style="font-size: 12px;"></button></div><div class="toast-body py-2 fs-6 fw-bold"><strong>Data saved successfully.</strong></div></div>`);
18
+ expect(result).toBe(`<div class="toast show" rendered="server-side" type="success" role="alert" ariaLive="assertive" ariaAtomic="true" style="min-width: 350px; max-width: 50vw; width: auto; "><div class="toast-header bg-success text-white py-1"><i class="fas fa-check-circle me-2"></i><strong class="me-auto">success</strong><button type="button" class="btn-close btn-close-white" data-bs-dismiss="toast" aria-label="Close" style="font-size: 12px;"></button></div><div class="toast-body py-2 fs-6 fw-bold"><strong>Data saved successfully.</strong></div></div>`);
23
19
  });
24
- (0, globals_1.it)("renders an error toast", () => {
20
+ it("renders an error toast", () => {
25
21
  const result = toast("error", "Failed to save data.");
26
- (0, globals_1.expect)(result).toBe(`<div class="toast show" rendered="server-side" type="error" role="alert" ariaLive="assertive" ariaAtomic="true" style="min-width: 350px; max-width: 50vw; width: auto; "><div class="toast-header bg-danger text-white py-1"><i class="fas fa-times-circle me-2"></i><strong class="me-auto">error</strong><button type="button" class="btn-close btn-close-white" data-bs-dismiss="toast" aria-label="Close" style="font-size: 12px;"></button></div><div class="toast-body py-2 fs-6 fw-bold"><strong>Failed to save data.</strong></div></div>`);
22
+ expect(result).toBe(`<div class="toast show" rendered="server-side" type="error" role="alert" ariaLive="assertive" ariaAtomic="true" style="min-width: 350px; max-width: 50vw; width: auto; "><div class="toast-header bg-danger text-white py-1"><i class="fas fa-times-circle me-2"></i><strong class="me-auto">error</strong><button type="button" class="btn-close btn-close-white" data-bs-dismiss="toast" aria-label="Close" style="font-size: 12px;"></button></div><div class="toast-body py-2 fs-6 fw-bold"><strong>Failed to save data.</strong></div></div>`);
27
23
  });
28
24
  });
29
- (0, globals_1.describe)("renderTabs", () => {
30
- (0, globals_1.it)("renders tabs with content", () => {
25
+ describe("renderTabs", () => {
26
+ it("renders tabs with content", () => {
31
27
  const opts = {
32
28
  contents: ["Tab 1 Content", "Tab 2 Content"],
33
29
  titles: ["Tab 1", "Tab 2"],
@@ -35,9 +31,9 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
35
31
  independent: true,
36
32
  };
37
33
  const result = renderTabs(opts, (content) => content);
38
- (0, globals_1.expect)(result).toMatch(/^<ul role="tablist" id="tab[a-f0-9]+" class="nav nav-tabs"><li class="nav-item" role="presentation"><a class="nav-link active" id="tab[a-f0-9]+link0" data-bs-toggle="tab" href="#Tab1" role="tab" aria-controls="tab[a-f0-9]+tab0" aria-selected="true">Tab 1<\/a><\/li><li class="nav-item" role="presentation"><a class="nav-link" id="tab[a-f0-9]+link1" data-bs-toggle="tab" href="#Tab2" role="tab" aria-controls="tab[a-f0-9]+tab1" aria-selected="false">Tab 2<\/a><\/li><\/ul><div class="tab-content" id="tab[a-f0-9]+content"><div class="tab-pane fade show active" role="tabpanel" id="Tab1" aria-labelledby="tab[a-f0-9]+link0">Tab 1 Content<\/div><div class="tab-pane fade" role="tabpanel" id="Tab2" aria-labelledby="tab[a-f0-9]+link1">Tab 2 Content<\/div><\/div>$/);
34
+ expect(result).toMatch(/^<ul role="tablist" id="tab[a-f0-9]+" class="nav nav-tabs"><li class="nav-item" role="presentation"><a class="nav-link active" id="tab[a-f0-9]+link0" data-bs-toggle="tab" href="#Tab1" role="tab" aria-controls="tab[a-f0-9]+tab0" aria-selected="true">Tab 1<\/a><\/li><li class="nav-item" role="presentation"><a class="nav-link" id="tab[a-f0-9]+link1" data-bs-toggle="tab" href="#Tab2" role="tab" aria-controls="tab[a-f0-9]+tab1" aria-selected="false">Tab 2<\/a><\/li><\/ul><div class="tab-content" id="tab[a-f0-9]+content"><div class="tab-pane fade show active" role="tabpanel" id="Tab1" aria-labelledby="tab[a-f0-9]+link0">Tab 1 Content<\/div><div class="tab-pane fade" role="tabpanel" id="Tab2" aria-labelledby="tab[a-f0-9]+link1">Tab 2 Content<\/div><\/div>$/);
39
35
  });
40
- (0, globals_1.it)("renders accordion-style tabs", () => {
36
+ it("renders accordion-style tabs", () => {
41
37
  const opts = {
42
38
  contents: ["Accordion 1 Content", "Accordion 2 Content"],
43
39
  titles: ["Accordion 1", "Accordion 2"],
@@ -45,11 +41,11 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
45
41
  independent: true,
46
42
  };
47
43
  const result = renderTabs(opts, (content) => content);
48
- (0, globals_1.expect)(result).toMatch(/^<div class="accordion" id="tab[a-f0-9]+top"><div class="accordion-item"><h2 class="accordion-header" id="tab[a-f0-9]+head0"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#tab[a-f0-9]+tab0" aria-expanded="true" aria-controls="tab[a-f0-9]+tab0">Accordion 1<\/button><\/h2><div class="accordion-collapse collapse show" id="tab[a-f0-9]+tab0" aria-labelledby="tab[a-f0-9]+head0"><div class="accordion-body">Accordion 1 Content<\/div><\/div><\/div><div class="accordion-item"><h2 class="accordion-header" id="tab[a-f0-9]+head1"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#tab[a-f0-9]+tab1" aria-expanded="false" aria-controls="tab[a-f0-9]+tab1">Accordion 2<\/button><\/h2><div class="accordion-collapse collapse" id="tab[a-f0-9]+tab1" aria-labelledby="tab[a-f0-9]+head1"><div class="accordion-body">Accordion 2 Content<\/div><\/div><\/div><\/div>$/);
44
+ expect(result).toMatch(/^<div class="accordion" id="tab[a-f0-9]+top"><div class="accordion-item"><h2 class="accordion-header" id="tab[a-f0-9]+head0"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#tab[a-f0-9]+tab0" aria-expanded="true" aria-controls="tab[a-f0-9]+tab0">Accordion 1<\/button><\/h2><div class="accordion-collapse collapse show" id="tab[a-f0-9]+tab0" aria-labelledby="tab[a-f0-9]+head0"><div class="accordion-body">Accordion 1 Content<\/div><\/div><\/div><div class="accordion-item"><h2 class="accordion-header" id="tab[a-f0-9]+head1"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#tab[a-f0-9]+tab1" aria-expanded="false" aria-controls="tab[a-f0-9]+tab1">Accordion 2<\/button><\/h2><div class="accordion-collapse collapse" id="tab[a-f0-9]+tab1" aria-labelledby="tab[a-f0-9]+head1"><div class="accordion-body">Accordion 2 Content<\/div><\/div><\/div><\/div>$/);
49
45
  });
50
46
  });
51
- (0, globals_1.describe)("navSubItemsIterator", () => {
52
- (0, globals_1.it)("renders a separator item", () => {
47
+ describe("navSubItemsIterator", () => {
48
+ it("renders a separator item", () => {
53
49
  const item = {
54
50
  type: "Separator",
55
51
  label: "Separator",
@@ -58,9 +54,9 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
58
54
  link: "/",
59
55
  };
60
56
  const result = navSubItemsIterator(item);
61
- (0, globals_1.expect)(result).toBe('<hr class="mx-3 my-1">');
57
+ expect(result).toBe('<hr class="mx-3 my-1">');
62
58
  });
63
- (0, globals_1.it)("renders a dropdown with subitems", () => {
59
+ it("renders a dropdown with subitems", () => {
64
60
  const item = {
65
61
  label: "Dropdown",
66
62
  subitems: [
@@ -81,9 +77,9 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
81
77
  link: "/dropdown",
82
78
  };
83
79
  const result = navSubItemsIterator(item);
84
- (0, globals_1.expect)(result).toBe(`<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</a><ul class="dropdown-menu"><li><div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Subitem 1</a><ul class="dropdown-menu"></ul></div></li><li><div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Subitem 2</a><ul class="dropdown-menu"></ul></div></li></ul></div>`);
80
+ expect(result).toBe(`<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</a><ul class="dropdown-menu"><li><div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Subitem 1</a><ul class="dropdown-menu"></ul></div></li><li><div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Subitem 2</a><ul class="dropdown-menu"></ul></div></li></ul></div>`);
85
81
  });
86
- (0, globals_1.it)("renders a single link item", () => {
82
+ it("renders a single link item", () => {
87
83
  const item = {
88
84
  label: "Link",
89
85
  link: "/link",
@@ -91,9 +87,9 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
91
87
  subitems: [],
92
88
  };
93
89
  const result = navSubItemsIterator(item);
94
- (0, globals_1.expect)(result).toBe('<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>');
90
+ expect(result).toBe('<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>');
95
91
  });
96
- (0, globals_1.it)("renders a link item with an icon", () => {
92
+ it("renders a link item with an icon", () => {
97
93
  const item = {
98
94
  label: "Link",
99
95
  link: "/link",
@@ -102,9 +98,9 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
102
98
  subitems: [],
103
99
  };
104
100
  const result = navSubItemsIterator(item);
105
- (0, globals_1.expect)(result).toBe(`<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>`);
101
+ expect(result).toBe(`<div class="dropdown-item btn-group dropstart"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>`);
106
102
  });
107
- (0, globals_1.it)("renders a link item with a tooltip", () => {
103
+ it("renders a link item with a tooltip", () => {
108
104
  const item = {
109
105
  label: "Link",
110
106
  link: "/link",
@@ -113,27 +109,27 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
113
109
  subitems: [],
114
110
  };
115
111
  const result = navSubItemsIterator(item);
116
- (0, globals_1.expect)(result).toBe(`<div class="dropdown-item btn-group dropstart" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip text"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>`);
112
+ expect(result).toBe(`<div class="dropdown-item btn-group dropstart" data-bs-toggle="tooltip" data-bs-placement="top" title="Tooltip text"><a type="button" class="dropdown-item dropdown-toggle p-0" data-bs-toggle="dropdown" aria-expanded="false">Link</a><ul class="dropdown-menu"></ul></div>`);
117
113
  });
118
114
  });
119
- (0, globals_1.describe)("rightNavBar", () => {
120
- (0, globals_1.it)("renders a right navbar with sections", () => {
115
+ describe("rightNavBar", () => {
116
+ it("renders a right navbar with sections", () => {
121
117
  const sections = [
122
118
  { label: "Home", link: "/", location: "Top", subitems: [] },
123
119
  { label: "About", link: "/about", location: "Top", subitems: [] },
124
120
  ];
125
121
  const result = rightNavBar("/", sections);
126
- (0, globals_1.expect)(result).toBe(`<div class="collapse navbar-collapse" id="navbarResponsive"><ul class="navbar-nav ms-auto my-2 my-lg-0"></ul></div>`);
122
+ expect(result).toBe(`<div class="collapse navbar-collapse" id="navbarResponsive"><ul class="navbar-nav ms-auto my-2 my-lg-0"></ul></div>`);
127
123
  });
128
- (0, globals_1.it)("renders a right navbar with active section", () => {
124
+ it("renders a right navbar with active section", () => {
129
125
  const sections = [
130
126
  { label: "Home", link: "/", location: "Top", subitems: [] },
131
127
  { label: "About", link: "/about", location: "Top", subitems: [] },
132
128
  ];
133
129
  const result = rightNavBar("/about", sections);
134
- (0, globals_1.expect)(result).toBe(`<div class="collapse navbar-collapse" id="navbarResponsive"><ul class="navbar-nav ms-auto my-2 my-lg-0"></ul></div>`);
130
+ expect(result).toBe(`<div class="collapse navbar-collapse" id="navbarResponsive"><ul class="navbar-nav ms-auto my-2 my-lg-0"></ul></div>`);
135
131
  });
136
- (0, globals_1.it)("skips sections with 'Mobile Bottom' location", () => {
132
+ it("skips sections with 'Mobile Bottom' location", () => {
137
133
  const sections = [
138
134
  { label: "Home", link: "/", location: "Top", subitems: [] },
139
135
  {
@@ -144,14 +140,14 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
144
140
  },
145
141
  ];
146
142
  const result = rightNavBar("/", sections);
147
- (0, globals_1.expect)(result).not.toContain('<a class="nav-link js-scroll-trigger" href="/mobile">Mobile</a>');
143
+ expect(result).not.toContain('<a class="nav-link js-scroll-trigger" href="/mobile">Mobile</a>');
148
144
  });
149
145
  });
150
- (0, globals_1.describe)("leftNavBar", () => {
151
- (0, globals_1.it)("renders a left navbar with brand name and logo", () => {
146
+ describe("leftNavBar", () => {
147
+ it("renders a left navbar with brand name and logo", () => {
152
148
  const brand = { name: "TestApp", logo: "/logo.png" };
153
149
  const result = leftNavBar(brand);
154
- (0, globals_1.expect)(result).toEqual([
150
+ expect(result).toEqual([
155
151
  '<a class="navbar-brand js-scroll-trigger" href="/">' +
156
152
  '<img src="/logo.png" width="30" height="30" class="mx-1 d-inline-block align-top" alt="Logo" loading="lazy">' +
157
153
  "TestApp</a>",
@@ -160,27 +156,27 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
160
156
  'aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>',
161
157
  ]);
162
158
  });
163
- (0, globals_1.it)("renders a left navbar without a logo", () => {
159
+ it("renders a left navbar without a logo", () => {
164
160
  const brand = { name: "TestApp", logo: "" };
165
161
  const result = leftNavBar(brand);
166
- (0, globals_1.expect)(result).toEqual([
162
+ expect(result).toEqual([
167
163
  '<a class="navbar-brand js-scroll-trigger" href="/">TestApp</a>',
168
164
  '<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" ' +
169
165
  'data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" ' +
170
166
  'aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>',
171
167
  ]);
172
168
  });
173
- (0, globals_1.it)("returns an empty array when no brand is provided", () => {
169
+ it("returns an empty array when no brand is provided", () => {
174
170
  const result = leftNavBar(undefined);
175
- (0, globals_1.expect)(result).toEqual([]);
171
+ expect(result).toEqual([]);
176
172
  });
177
173
  });
178
- (0, globals_1.describe)("innerSections", () => {
179
- (0, globals_1.it)("returns an empty array when no sections are provided", () => {
174
+ describe("innerSections", () => {
175
+ it("returns an empty array when no sections are provided", () => {
180
176
  const result = innerSections([]);
181
- (0, globals_1.expect)(result).toEqual([]);
177
+ expect(result).toEqual([]);
182
178
  });
183
- (0, globals_1.it)("handles sections without items gracefully", () => {
179
+ it("handles sections without items gracefully", () => {
184
180
  const sections = [
185
181
  {
186
182
  label: "Section 1",
@@ -198,7 +194,7 @@ const { alert, toast, renderTabs, navSubItemsIterator, rightNavBar, leftNavBar,
198
194
  },
199
195
  ];
200
196
  const result = innerSections(sections);
201
- (0, globals_1.expect)(result).toEqual([]);
197
+ expect(result).toEqual([]);
202
198
  });
203
199
  });
204
200
  //# sourceMappingURL=layout_utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout_utils.test.js","sourceRoot":"","sources":["../layout_utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout_utils.test.js","sourceRoot":"","sources":["../layout_utils.test.ts"],"names":[],"mappings":"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"}