@crowdstrike/glide-core 0.7.0 → 0.9.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 (203) hide show
  1. package/README.md +44 -5
  2. package/dist/accordion.test.basics.js +1 -0
  3. package/dist/accordion.test.events.js +1 -0
  4. package/dist/button-group.button.d.ts +14 -15
  5. package/dist/button-group.button.js +1 -1
  6. package/dist/button-group.button.styles.js +75 -52
  7. package/dist/button-group.button.test.basics.d.ts +1 -1
  8. package/dist/button-group.button.test.basics.js +84 -147
  9. package/dist/button-group.button.test.events.js +9 -67
  10. package/dist/button-group.button.test.focus.js +13 -0
  11. package/dist/button-group.button.test.interactions.d.ts +1 -0
  12. package/dist/button-group.button.test.interactions.js +42 -0
  13. package/dist/button-group.d.ts +7 -10
  14. package/dist/button-group.js +1 -1
  15. package/dist/button-group.stories.d.ts +1 -5
  16. package/dist/button-group.styles.js +18 -6
  17. package/dist/button-group.test.basics.js +114 -234
  18. package/dist/button-group.test.events.js +211 -263
  19. package/dist/button-group.test.focus.d.ts +1 -0
  20. package/dist/button-group.test.focus.js +39 -0
  21. package/dist/button-group.test.interactions.d.ts +1 -0
  22. package/dist/button-group.test.interactions.js +91 -0
  23. package/dist/button.test.basics.js +2 -1
  24. package/dist/button.test.events.js +1 -0
  25. package/dist/button.test.form.js +1 -0
  26. package/dist/checkbox-group.js +1 -1
  27. package/dist/checkbox-group.styles.js +1 -1
  28. package/dist/checkbox-group.test.basics.js +2 -1
  29. package/dist/checkbox-group.test.events.js +5 -4
  30. package/dist/checkbox-group.test.focus.js +5 -3
  31. package/dist/checkbox-group.test.form.js +1 -0
  32. package/dist/checkbox-group.test.validity.js +1 -0
  33. package/dist/checkbox.d.ts +7 -1
  34. package/dist/checkbox.js +1 -1
  35. package/dist/checkbox.styles.js +11 -3
  36. package/dist/checkbox.test.basics.js +1 -0
  37. package/dist/checkbox.test.events.js +5 -4
  38. package/dist/checkbox.test.focus.js +2 -2
  39. package/dist/checkbox.test.form.js +1 -0
  40. package/dist/{checkbox.test.states.js → checkbox.test.interactions.js} +25 -1
  41. package/dist/checkbox.test.validity.js +1 -0
  42. package/dist/drawer.js +1 -1
  43. package/dist/drawer.test.basics.js +1 -0
  44. package/dist/drawer.test.closing.js +1 -0
  45. package/dist/drawer.test.events.js +1 -0
  46. package/dist/drawer.test.methods.js +1 -0
  47. package/dist/dropdown.d.ts +6 -4
  48. package/dist/dropdown.js +1 -1
  49. package/dist/dropdown.option.d.ts +7 -2
  50. package/dist/dropdown.option.js +1 -1
  51. package/dist/dropdown.option.styles.js +13 -0
  52. package/dist/dropdown.option.test.basics.js +7 -3
  53. package/dist/dropdown.option.test.basics.multiple.js +1 -0
  54. package/dist/dropdown.option.test.basics.single.js +1 -0
  55. package/dist/dropdown.option.test.events.js +2 -1
  56. package/dist/dropdown.option.test.focus.js +1 -1
  57. package/dist/dropdown.option.test.interactions.multiple.js +2 -54
  58. package/dist/dropdown.option.test.interactions.single.js +52 -9
  59. package/dist/dropdown.styles.js +20 -19
  60. package/dist/dropdown.test.basics.filterable.js +1 -0
  61. package/dist/dropdown.test.basics.js +144 -2
  62. package/dist/dropdown.test.basics.multiple.js +6 -3
  63. package/dist/dropdown.test.basics.single.js +1 -1
  64. package/dist/dropdown.test.events.filterable.js +74 -0
  65. package/dist/dropdown.test.events.js +50 -160
  66. package/dist/dropdown.test.events.multiple.js +268 -10
  67. package/dist/dropdown.test.events.single.js +202 -4
  68. package/dist/dropdown.test.focus.filterable.js +9 -5
  69. package/dist/dropdown.test.focus.js +2 -1
  70. package/dist/dropdown.test.focus.multiple.js +1 -2
  71. package/dist/dropdown.test.focus.single.js +1 -1
  72. package/dist/dropdown.test.form.js +1 -0
  73. package/dist/dropdown.test.form.multiple.js +1 -0
  74. package/dist/dropdown.test.form.single.js +1 -0
  75. package/dist/dropdown.test.interactions.filterable.js +69 -11
  76. package/dist/dropdown.test.interactions.js +95 -5
  77. package/dist/dropdown.test.interactions.multiple.js +203 -6
  78. package/dist/dropdown.test.interactions.single.js +69 -6
  79. package/dist/dropdown.test.validity.js +1 -0
  80. package/dist/form-controls-layout.test.basics.js +2 -1
  81. package/dist/icon-button.test.basics.js +2 -1
  82. package/dist/icons/checked.d.ts +1 -1
  83. package/dist/icons/checked.js +1 -1
  84. package/dist/icons/magnifying-glass.js +1 -1
  85. package/dist/input.d.ts +0 -6
  86. package/dist/input.js +1 -1
  87. package/dist/input.styles.js +7 -2
  88. package/dist/input.test.basics.js +20 -5
  89. package/dist/input.test.events.js +5 -4
  90. package/dist/input.test.focus.js +5 -4
  91. package/dist/input.test.form.js +1 -0
  92. package/dist/input.test.translations.d.ts +1 -0
  93. package/dist/input.test.translations.js +38 -0
  94. package/dist/input.test.validity.js +134 -4
  95. package/dist/label.d.ts +1 -1
  96. package/dist/label.js +1 -1
  97. package/dist/label.styles.js +29 -20
  98. package/dist/label.test.basics.js +27 -24
  99. package/dist/library/expect-argument-error.js +1 -1
  100. package/dist/library/localize.d.ts +5 -1
  101. package/dist/library/ow.test.d.ts +2 -1
  102. package/dist/library/ow.test.js +8 -3
  103. package/dist/menu.button.test.basics.js +1 -0
  104. package/dist/menu.d.ts +3 -5
  105. package/dist/menu.js +1 -1
  106. package/dist/menu.link.test.basics.js +1 -0
  107. package/dist/menu.options.test.basics.js +3 -2
  108. package/dist/menu.styles.js +1 -15
  109. package/dist/menu.test.basics.d.ts +1 -2
  110. package/dist/menu.test.basics.js +23 -6
  111. package/dist/menu.test.events.d.ts +1 -0
  112. package/dist/menu.test.events.js +2 -1
  113. package/dist/menu.test.focus.d.ts +1 -0
  114. package/dist/menu.test.focus.js +14 -6
  115. package/dist/menu.test.interactions.js +213 -56
  116. package/dist/modal.icon-button.test.basics.js +2 -1
  117. package/dist/modal.js +1 -1
  118. package/dist/modal.styles.js +18 -13
  119. package/dist/modal.tertiary-icon.d.ts +0 -1
  120. package/dist/modal.tertiary-icon.js +1 -1
  121. package/dist/modal.tertiary-icon.test.basics.js +2 -1
  122. package/dist/modal.test.accessibility.js +1 -0
  123. package/dist/modal.test.basics.js +2 -1
  124. package/dist/modal.test.close.js +1 -0
  125. package/dist/modal.test.events.js +11 -10
  126. package/dist/modal.test.lock-scroll.js +1 -0
  127. package/dist/modal.test.methods.js +1 -0
  128. package/dist/modal.test.scrollbars.js +1 -0
  129. package/dist/radio-group.js +1 -1
  130. package/dist/radio-group.styles.js +1 -1
  131. package/dist/radio-group.test.basics.js +1 -0
  132. package/dist/radio-group.test.events.js +1 -0
  133. package/dist/radio-group.test.focus.js +4 -3
  134. package/dist/radio-group.test.form.js +1 -0
  135. package/dist/radio-group.test.validity.js +1 -0
  136. package/dist/radio.d.ts +1 -0
  137. package/dist/radio.js +1 -1
  138. package/dist/radio.styles.js +33 -0
  139. package/dist/split-button.test.basics.js +1 -0
  140. package/dist/split-container.test.basics.js +5 -0
  141. package/dist/split-link.test.basics.js +1 -0
  142. package/dist/split-link.test.interactions.js +2 -1
  143. package/dist/styles/variables.css +1 -1
  144. package/dist/tab.d.ts +1 -3
  145. package/dist/tab.group.d.ts +3 -5
  146. package/dist/tab.group.js +1 -1
  147. package/dist/tab.group.styles.js +27 -13
  148. package/dist/tab.group.test.basics.js +8 -57
  149. package/dist/tab.group.test.interactions.d.ts +3 -0
  150. package/dist/tab.group.test.interactions.js +454 -0
  151. package/dist/tab.js +1 -1
  152. package/dist/tab.panel.d.ts +1 -0
  153. package/dist/tab.panel.js +1 -1
  154. package/dist/tab.panel.styles.js +11 -1
  155. package/dist/tab.styles.js +7 -68
  156. package/dist/tab.test.basics.js +0 -20
  157. package/dist/tabs.stories.d.ts +1 -2
  158. package/dist/tag.test.basics.js +3 -2
  159. package/dist/textarea.d.ts +0 -1
  160. package/dist/textarea.js +2 -2
  161. package/dist/textarea.stories.d.ts +3 -4
  162. package/dist/textarea.styles.js +14 -3
  163. package/dist/textarea.test.basics.js +81 -44
  164. package/dist/textarea.test.events.js +57 -41
  165. package/dist/textarea.test.form.js +1 -0
  166. package/dist/textarea.test.translations.d.ts +1 -0
  167. package/dist/textarea.test.translations.js +34 -0
  168. package/dist/textarea.test.validity.js +105 -20
  169. package/dist/toasts.js +1 -1
  170. package/dist/toasts.styles.js +8 -1
  171. package/dist/toasts.test.basics.js +20 -0
  172. package/dist/toggle.js +1 -1
  173. package/dist/toggle.test.basics.js +1 -0
  174. package/dist/toggle.test.events.js +1 -0
  175. package/dist/toggle.test.focus.js +1 -1
  176. package/dist/toggle.test.interactions.d.ts +1 -0
  177. package/dist/{toggle.test.states.js → toggle.test.interactions.js} +1 -0
  178. package/dist/tooltip.d.ts +7 -5
  179. package/dist/tooltip.js +1 -1
  180. package/dist/tooltip.styles.js +90 -25
  181. package/dist/tooltip.test.basics.js +39 -3
  182. package/dist/tooltip.test.interactions.js +137 -34
  183. package/dist/translations/en.js +1 -1
  184. package/dist/translations/fr.js +1 -1
  185. package/dist/translations/ja.js +1 -1
  186. package/dist/tree.d.ts +0 -1
  187. package/dist/tree.item.d.ts +2 -3
  188. package/dist/tree.item.js +1 -1
  189. package/dist/tree.item.menu.d.ts +0 -1
  190. package/dist/tree.item.menu.js +1 -1
  191. package/dist/tree.item.test.basics.js +1 -0
  192. package/dist/tree.js +1 -1
  193. package/dist/tree.test.basics.js +2 -1
  194. package/dist/tree.test.events.js +1 -1
  195. package/package.json +40 -29
  196. package/dist/drawer.test.floating-components.d.ts +0 -1
  197. package/dist/drawer.test.floating-components.js +0 -51
  198. package/dist/library/set-containing-block.d.ts +0 -15
  199. package/dist/library/set-containing-block.js +0 -1
  200. package/dist/modal.test.floating-components.js +0 -62
  201. /package/dist/{checkbox.test.states.d.ts → button-group.button.test.focus.d.ts} +0 -0
  202. /package/dist/{modal.test.floating-components.d.ts → checkbox.test.interactions.d.ts} +0 -0
  203. /package/dist/{toggle.test.states.d.ts → dropdown.test.events.filterable.d.ts} +0 -0
package/package.json CHANGED
@@ -1,19 +1,18 @@
1
1
  {
2
2
  "name": "@crowdstrike/glide-core",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "CrowdStrike's Glide Design System components package for providing web components",
5
5
  "author": "CrowdStrike UX Team",
6
6
  "license": "Apache-2.0",
7
+ "type": "module",
7
8
  "repository": {
8
9
  "type": "git",
9
- "url": "https://github.com/CrowdStrike/glide-core.git",
10
- "directory": "packages/components"
10
+ "url": "https://github.com/CrowdStrike/glide-core.git"
11
11
  },
12
- "type": "module",
13
12
  "files": [
14
13
  "dist",
14
+ "!dist/eslint",
15
15
  "!dist/icons/storybook.*",
16
- "!dist/src",
17
16
  "!dist/storybook",
18
17
  "!dist/*.test.js",
19
18
  "!dist/*.stories.js"
@@ -29,38 +28,42 @@
29
28
  "./styles/*": null,
30
29
  "./label.js": null,
31
30
  "./toasts.toast.js": null,
32
- "./library/set-containing-block.js": "./dist/library/set-containing-block.js",
33
31
  "./styles/fonts.css": "./dist/styles/fonts.css",
34
32
  "./styles/variables.css": "./dist/styles/variables.css"
35
33
  },
36
- "engines": {
37
- "node": ">= 20",
38
- "pnpm": ">= 8"
39
- },
40
34
  "dependencies": {
41
35
  "@floating-ui/dom": "^1.6.8",
42
36
  "@shoelace-style/localize": "^3.1.2",
43
- "composed-offset-position": "^0.0.6",
44
37
  "nanoid": "^5.0.7",
45
38
  "ow": "^1.1.1"
46
39
  },
40
+ "peerDependencies": {
41
+ "lit": "^3.1.0"
42
+ },
47
43
  "devDependencies": {
44
+ "@changesets/changelog-github": "^0.5.0",
45
+ "@changesets/cli": "^2.27.1",
48
46
  "@crowdstrike/design-tokens": "^2.0.0",
47
+ "@eslint/eslintrc": "^3.0.2",
49
48
  "@eslint/js": "^8.56.0",
50
49
  "@open-wc/testing": "^3.2.2",
51
50
  "@rollup/plugin-commonjs": "^25.0.7",
52
- "@storybook/addon-essentials": "^8.2.1",
53
- "@storybook/addon-links": "^8.2.1",
54
- "@storybook/blocks": "^8.2.1",
55
- "@storybook/core-events": "^8.2.1",
56
- "@storybook/manager-api": "^8.2.1",
57
- "@storybook/preview-api": "^8.2.1",
58
- "@storybook/theming": "^8.2.1",
59
- "@storybook/web-components": "^8.2.1",
60
- "@storybook/web-components-vite": "^8.2.1",
51
+ "@storybook/addon-essentials": "^8.2.7",
52
+ "@storybook/addon-links": "^8.2.7",
53
+ "@storybook/blocks": "^8.2.7",
54
+ "@storybook/core-events": "^8.2.7",
55
+ "@storybook/manager-api": "^8.2.7",
56
+ "@storybook/preview-api": "^8.2.7",
57
+ "@storybook/theming": "^8.2.7",
58
+ "@storybook/web-components": "^8.2.7",
59
+ "@storybook/web-components-vite": "^8.2.7",
61
60
  "@stylistic/eslint-plugin": "^1.7.0",
61
+ "@types/eslint": "^8.56.7",
62
62
  "@types/mocha": "^10.0.6",
63
63
  "@types/sinon": "^17.0.3",
64
+ "@typescript-eslint/rule-tester": "^8.0.1",
65
+ "@typescript-eslint/types": "^8.0.1",
66
+ "@typescript-eslint/utils": "^8.0.1",
64
67
  "@web/dev-server-esbuild": "^0.3.6",
65
68
  "@web/dev-server-rollup": "^0.6.1",
66
69
  "@web/test-runner": "^0.18.0",
@@ -73,12 +76,15 @@
73
76
  "eslint-plugin-lit": "^1.11.0",
74
77
  "eslint-plugin-lit-a11y": "^4.1.2",
75
78
  "eslint-plugin-no-only-tests": "^3.1.0",
79
+ "eslint-plugin-no-skip-tests": "^1.1.0",
76
80
  "eslint-plugin-sort-class-members": "^1.20.0",
77
81
  "eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
78
82
  "eslint-plugin-unicorn": "^50.0.1",
79
83
  "globals": "^13.24.0",
80
84
  "globby": "^14.0.0",
81
85
  "http-server": "^14.1.1",
86
+ "husky": "^8.0.3",
87
+ "is-ci": "^3.0.1",
82
88
  "lint-staged": "^14.0.1",
83
89
  "lit": "^3.1.2",
84
90
  "lit-analyzer": "^2.0.3",
@@ -90,7 +96,7 @@
90
96
  "prettier": "3.1.0",
91
97
  "rimraf": "^5.0.7",
92
98
  "sinon": "^17.0.1",
93
- "storybook": "^8.2.1",
99
+ "storybook": "^8.2.7",
94
100
  "stylelint": "^16.3.1",
95
101
  "stylelint-config-standard": "^36.0.0",
96
102
  "stylelint-order": "^6.0.4",
@@ -100,11 +106,12 @@
100
106
  "terser": "^5.31.1",
101
107
  "ts-lit-plugin": "^2.0.2",
102
108
  "typescript": "^5.3.3",
103
- "typescript-eslint": "^7.8.0",
104
- "@crowdstrike/glide-core-eslint-plugin": "0.0.0"
109
+ "typescript-eslint": "^8.0.1",
110
+ "vitest": "^1.4.0"
105
111
  },
106
- "peerDependencies": {
107
- "lit": "^3.1.0"
112
+ "engines": {
113
+ "node": ">= 20",
114
+ "pnpm": ">= 8"
108
115
  },
109
116
  "scripts": {
110
117
  "start": "per-env",
@@ -120,18 +127,22 @@
120
127
  "format:production": "prettier . --check && stylelint '**/*.styles.ts' --custom-syntax postcss-lit --no-color",
121
128
  "lint": "per-env",
122
129
  "lint:development": "npm-run-all --print-name lint:development:*",
123
- "lint:development:eslint": "eslint . --fix",
130
+ "lint:development:eslint": "tsc --outDir ./dist && eslint . --fix",
124
131
  "lint:development:lit-analyzer": "lit-analyzer **/*.ts",
125
132
  "lint:production": "npm-run-all --parallel --aggregate-output --print-label lint:production:*",
126
- "lint:production:eslint": "eslint .",
133
+ "lint:production:eslint": "tsc --outDir ./dist && eslint .",
127
134
  "lint:production:lit-analyzer": "lit-analyzer **/*.ts",
128
135
  "typecheck": "tsc --noEmit",
129
136
  "test": "per-env",
130
- "test:development": "npm-run-all --parallel test:development:* start:production:stylesheets",
137
+ "test:development": "npm-run-all --parallel test:development:serve test:development:web-test-runner start:production:stylesheets",
131
138
  "test:development:serve": "npx http-server dist/coverage/lcov-report --silent",
132
139
  "test:development:web-test-runner": "web-test-runner --watch",
140
+ "test:development:vitest": "vitest --config ./vitest.config.js",
141
+ "test:development:vitest:comment": "Vitest is excluded from `test:development` because it muddies the console when running alongside Web Test Runner.",
133
142
  "test:production": "npm-run-all --parallel test:production:* start:production:stylesheets --aggregate-output --print-label",
134
143
  "test:production:web-test-runner": "web-test-runner",
135
- "postinstall": "pnpm dlx playwright@1.45.3 install --with-deps"
144
+ "test:production:vitest": "vitest run --config ./vitest.config.js",
145
+ "postinstall": "pnpm dlx playwright@1.45.3 install --with-deps",
146
+ "release": "changeset publish"
136
147
  }
137
148
  }
@@ -1 +0,0 @@
1
- import './drawer.js';
@@ -1,51 +0,0 @@
1
- import './drawer.js';
2
- import { expect, fixture, html } from '@open-wc/testing';
3
- import GlideCoreDrawer from './drawer.js';
4
- import GlideCoreTreeItemMenu from './tree.item.menu.js';
5
- GlideCoreDrawer.shadowRootOptions.mode = 'open';
6
- GlideCoreTreeItemMenu.shadowRootOptions.mode = 'open';
7
- it('sets containing block for tooltips', async () => {
8
- const drawer = await fixture(html `<glide-core-drawer>
9
- <div>Some other element</div>
10
- <glide-core-tooltip>
11
- Tooltip
12
- <span slot="target">Target</span>
13
- </glide-core-tooltip>
14
- </glide-core-drawer>`);
15
- const containingBlock = drawer.shadowRoot?.querySelector('aside');
16
- drawer.open();
17
- const tooltip = drawer.querySelector('glide-core-tooltip');
18
- expect(tooltip?.containingBlock === containingBlock).to.be.true;
19
- });
20
- it('sets containing block for menus', async () => {
21
- const drawer = await fixture(html `<glide-core-drawer>
22
- <glide-core-menu>
23
- <glide-core-menu-options>
24
- <glide-core-menu-link label="One" url="/one"> </glide-core-menu-link>
25
- </glide-core-menu-options>
26
-
27
- <div slot="target">Target</div>
28
- </glide-core-menu>
29
- </glide-core-drawer>`);
30
- const containingBlock = drawer.shadowRoot?.querySelector('aside');
31
- drawer.open();
32
- const menu = drawer.querySelector('glide-core-menu');
33
- expect(menu?.containingBlock === containingBlock).to.be.true;
34
- });
35
- it('sets containing block for tree item menu', async () => {
36
- const drawer = await fixture(html `<glide-core-drawer>
37
- <glide-core-tree>
38
- <glide-core-tree-item label="yup">
39
- <glide-core-tree-item-menu slot="menu">
40
- <glide-core-menu-link label="Edit" url="/edit">
41
- </glide-core-menu-link>
42
- </glide-core-tree-item-menu>
43
- </glide-core-tree-item>
44
- </glide-core-tree>
45
- </glide-core-drawer>`);
46
- const containingBlock = drawer.shadowRoot?.querySelector('aside');
47
- drawer.open();
48
- const treeItemMenu = drawer.querySelector('glide-core-tree-item-menu');
49
- const menu = treeItemMenu?.shadowRoot?.querySelector('glide-core-menu');
50
- expect(menu?.containingBlock === containingBlock).to.be.true;
51
- });
@@ -1,15 +0,0 @@
1
- interface Arguments {
2
- elements: Element[];
3
- containingBlock: Element;
4
- }
5
- /**
6
- * Sets the containing block for all child elements that might contain
7
- * floating-ui components (i.e. tooltips, popovers, or menus),
8
- * for cases where the containing block element is inside a closed shadow DOM,
9
- * and therefore wouldn't be able to be detected by floating-ui's getOffsetParent calculations.
10
- * Necessary when the containing block has something like a backdrop-filter
11
- * https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
12
- * https://github.com/floating-ui/floating-ui/issues/2955
13
- */
14
- export declare function setContainingBlock({ elements, containingBlock }: Arguments): void;
15
- export {};
@@ -1 +0,0 @@
1
- import GlideCoreMenu from"../menu.js";import GlideCoreTooltip from"../tooltip.js";import GlideCoreTree from"../tree.js";export function setContainingBlock({elements:o,containingBlock:e}){const i=o.filter((o=>o instanceof GlideCoreTooltip||o instanceof GlideCoreMenu||o instanceof GlideCoreTree));for(const o of i)o.setContainingBlock(e)}
@@ -1,62 +0,0 @@
1
- import { expect, fixture, html } from '@open-wc/testing';
2
- import GlideCoreModal from './modal.js';
3
- import GlideCoreModalTertiaryIcon from './modal.tertiary-icon.js';
4
- import GlideCoreTreeItemMenu from './tree.item.menu.js';
5
- GlideCoreModal.shadowRootOptions.mode = 'open';
6
- GlideCoreModalTertiaryIcon.shadowRootOptions.mode = 'open';
7
- GlideCoreTreeItemMenu.shadowRootOptions.mode = 'open';
8
- it('sets containing block for tooltips', async () => {
9
- const element = await fixture(html `<glide-core-modal label="Modal title">
10
- <glide-core-tooltip>
11
- Tooltip
12
- <span slot="target">Target</span>
13
- </glide-core-tooltip>
14
- <glide-core-modal-tertiary-icon
15
- slot="tertiary"
16
- label="Information"
17
- tooltip-placement="right"
18
- >
19
- Icon
20
- </glide-core-modal-tertiary-icon>
21
- </glide-core-modal>`);
22
- const containingBlock = element.shadowRoot?.querySelector('dialog');
23
- element.showModal();
24
- const tooltip = element.querySelector('glide-core-tooltip');
25
- expect(tooltip?.containingBlock === containingBlock).to.be.true;
26
- const tertiaryIconTooltip = element
27
- .querySelector('glide-core-modal-tertiary-icon')
28
- ?.shadowRoot?.querySelector('glide-core-tooltip');
29
- expect(tertiaryIconTooltip?.containingBlock === containingBlock).to.be.true;
30
- });
31
- it('sets containing block for menus', async () => {
32
- const element = await fixture(html `<glide-core-modal label="Modal title">
33
- <glide-core-menu>
34
- <glide-core-menu-options>
35
- <glide-core-menu-link label="One" url="/one"> </glide-core-menu-link>
36
- </glide-core-menu-options>
37
-
38
- <div slot="target">Target</div>
39
- </glide-core-menu>
40
- </glide-core-modal>`);
41
- const containingBlock = element.shadowRoot?.querySelector('dialog');
42
- element.showModal();
43
- const menu = element.querySelector('glide-core-menu');
44
- expect(menu?.containingBlock === containingBlock).to.be.true;
45
- });
46
- it('sets containing block for tree item menu', async () => {
47
- const element = await fixture(html `<glide-core-modal label="Modal title">
48
- <glide-core-tree>
49
- <glide-core-tree-item label="yup">
50
- <glide-core-tree-item-menu slot="menu">
51
- <glide-core-menu-link label="Edit" url="/edit">
52
- </glide-core-menu-link>
53
- </glide-core-tree-item-menu>
54
- </glide-core-tree-item>
55
- </glide-core-tree>
56
- </glide-core-modal>`);
57
- const containingBlock = element.shadowRoot?.querySelector('dialog');
58
- element.showModal();
59
- const treeItemMenu = element.querySelector('glide-core-tree-item-menu');
60
- const menu = treeItemMenu?.shadowRoot?.querySelector('glide-core-menu');
61
- expect(menu?.containingBlock === containingBlock).to.be.true;
62
- });