@nvidia-elements/core 0.2.2 → 0.2.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 (287) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/NOTICE.md +4 -4
  3. package/dist/_virtual/{_@oxc-project_runtime@0.130.0 → _@oxc-project_runtime@0.132.0}/helpers/decorate.js +1 -1
  4. package/dist/accordion/accordion-header.js +1 -1
  5. package/dist/accordion/accordion-header.js.map +1 -1
  6. package/dist/accordion/accordion.d.ts +4 -7
  7. package/dist/accordion/accordion.examples.js.map +1 -1
  8. package/dist/accordion/accordion.examples.json +1 -12
  9. package/dist/accordion/accordion.js +1 -1
  10. package/dist/accordion/accordion.js.map +1 -1
  11. package/dist/accordion/accordion2.js +41 -44
  12. package/dist/accordion/accordion2.js.map +1 -1
  13. package/dist/alert/alert-group.d.ts +1 -1
  14. package/dist/alert/alert-group2.js +14 -14
  15. package/dist/alert/alert.d.ts +1 -1
  16. package/dist/alert/alert.js +1 -1
  17. package/dist/alert/alert.js.map +1 -1
  18. package/dist/alert/alert2.js +20 -20
  19. package/dist/avatar/avatar-group.d.ts +1 -1
  20. package/dist/avatar/avatar-group2.js +1 -1
  21. package/dist/avatar/avatar.d.ts +1 -1
  22. package/dist/avatar/avatar2.js +6 -6
  23. package/dist/badge/badge.d.ts +3 -3
  24. package/dist/badge/badge.js +1 -1
  25. package/dist/badge/badge.js.map +1 -1
  26. package/dist/badge/badge2.js +22 -23
  27. package/dist/badge/badge2.js.map +1 -1
  28. package/dist/breadcrumb/breadcrumb.d.ts +1 -6
  29. package/dist/breadcrumb/breadcrumb.js +1 -1
  30. package/dist/breadcrumb/breadcrumb.js.map +1 -1
  31. package/dist/breadcrumb/breadcrumb2.js +12 -12
  32. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  33. package/dist/bundle.d.ts +14 -0
  34. package/dist/bundles/index.d.ts +1229 -1877
  35. package/dist/bundles/index.js +6 -6
  36. package/dist/button/button.d.ts +7 -4
  37. package/dist/button/button.js +1 -1
  38. package/dist/button/button.js.map +1 -1
  39. package/dist/button/button2.js +13 -13
  40. package/dist/button/button2.js.map +1 -1
  41. package/dist/button-group/button-group.d.ts +1 -1
  42. package/dist/button-group/button-group2.js +15 -15
  43. package/dist/card/card-header.js +1 -1
  44. package/dist/card/card-header.js.map +1 -1
  45. package/dist/card/card.d.ts +4 -7
  46. package/dist/card/card2.js +18 -18
  47. package/dist/card/card2.js.map +1 -1
  48. package/dist/chat-message/chat-message.d.ts +1 -1
  49. package/dist/chat-message/chat-message2.js +7 -7
  50. package/dist/checkbox/checkbox-group2.js +7 -7
  51. package/dist/checkbox/checkbox2.js +7 -7
  52. package/dist/color/color.d.ts +1 -1
  53. package/dist/color/color2.js +7 -7
  54. package/dist/combobox/combobox.d.ts +2 -8
  55. package/dist/combobox/combobox.examples.js.map +1 -1
  56. package/dist/combobox/combobox2.js +10 -13
  57. package/dist/combobox/combobox2.js.map +1 -1
  58. package/dist/copy-button/copy-button.d.ts +1 -1
  59. package/dist/copy-button/copy-button2.js +11 -11
  60. package/dist/copy-button/copy-button2.js.map +1 -1
  61. package/dist/custom-elements-jsx.d.ts +374 -646
  62. package/dist/custom-elements-vue.d.ts +374 -646
  63. package/dist/custom-elements.json +5999 -15468
  64. package/dist/data.html.json +322 -191
  65. package/dist/data.snippets.json +30 -30
  66. package/dist/date/date.d.ts +1 -1
  67. package/dist/date/date2.js +7 -7
  68. package/dist/datetime/datetime.d.ts +1 -1
  69. package/dist/datetime/datetime2.js +7 -7
  70. package/dist/dialog/dialog-footer.d.ts +1 -1
  71. package/dist/dialog/dialog-footer2.js +6 -6
  72. package/dist/dialog/dialog-header.d.ts +1 -1
  73. package/dist/dialog/dialog-header2.js +6 -6
  74. package/dist/dialog/dialog.d.ts +1 -1
  75. package/dist/dialog/dialog.examples.js.map +1 -1
  76. package/dist/dialog/dialog2.js +19 -19
  77. package/dist/divider/divider.d.ts +1 -1
  78. package/dist/divider/divider2.js +5 -5
  79. package/dist/dot/dot.d.ts +1 -1
  80. package/dist/dot/dot2.js +8 -8
  81. package/dist/drawer/drawer-content.d.ts +1 -1
  82. package/dist/drawer/drawer-content2.js +6 -6
  83. package/dist/drawer/drawer-footer.d.ts +1 -1
  84. package/dist/drawer/drawer-footer2.js +6 -6
  85. package/dist/drawer/drawer-header.d.ts +1 -1
  86. package/dist/drawer/drawer-header2.js +6 -6
  87. package/dist/drawer/drawer.d.ts +1 -1
  88. package/dist/drawer/drawer2.js +19 -19
  89. package/dist/dropdown/dropdown-footer.d.ts +1 -1
  90. package/dist/dropdown/dropdown-footer2.js +6 -6
  91. package/dist/dropdown/dropdown-header.d.ts +1 -1
  92. package/dist/dropdown/dropdown-header2.js +6 -6
  93. package/dist/dropdown/dropdown.d.ts +1 -1
  94. package/dist/dropdown/dropdown2.js +16 -16
  95. package/dist/dropdown-group/dropdown-group.d.ts +1 -1
  96. package/dist/dropdown-group/dropdown-group.js +16 -16
  97. package/dist/dropzone/dropzone.d.ts +2 -405
  98. package/dist/dropzone/dropzone2.js +14 -14
  99. package/dist/dropzone/dropzone2.js.map +1 -1
  100. package/dist/file/file2.js +1 -1
  101. package/dist/format-datetime/format-datetime.d.ts +1 -1
  102. package/dist/format-datetime/format-datetime2.js +10 -10
  103. package/dist/format-number/format-number.d.ts +1 -1
  104. package/dist/format-number/format-number2.js +16 -16
  105. package/dist/format-relative-time/format-relative-time.d.ts +1 -1
  106. package/dist/format-relative-time/format-relative-time2.js +7 -7
  107. package/dist/forms/control/control2.js +19 -19
  108. package/dist/forms/control-group/control-group.d.ts +1 -1
  109. package/dist/forms/control-group/control-group.js +1 -1
  110. package/dist/forms/control-group/control-group.js.map +1 -1
  111. package/dist/forms/control-group/control-group2.js +6 -6
  112. package/dist/forms/control-message/control-message.d.ts +1 -1
  113. package/dist/forms/control-message/control-message2.js +9 -9
  114. package/dist/grid/cell/cell.d.ts +1 -1
  115. package/dist/grid/cell/cell2.js +1 -1
  116. package/dist/grid/column/column.d.ts +1 -1
  117. package/dist/grid/column/column2.js +10 -10
  118. package/dist/grid/footer/footer.d.ts +1 -1
  119. package/dist/grid/footer/footer2.js +6 -6
  120. package/dist/grid/grid.d.ts +3 -2
  121. package/dist/grid/grid.examples.js.map +1 -1
  122. package/dist/grid/grid2.js +38 -30
  123. package/dist/grid/grid2.js.map +1 -1
  124. package/dist/grid/header/header.d.ts +1 -1
  125. package/dist/grid/header/header2.js +9 -9
  126. package/dist/grid/placeholder/placeholder.d.ts +1 -1
  127. package/dist/grid/placeholder/placeholder2.js +1 -1
  128. package/dist/grid/row/row.d.ts +1 -1
  129. package/dist/grid/row/row2.js +9 -9
  130. package/dist/icon/icon.d.ts +1 -1
  131. package/dist/icon/icon2.js +29 -21
  132. package/dist/icon/icon2.js.map +1 -1
  133. package/dist/icon/icons.d.ts +0 -2
  134. package/dist/icon/icons.js.map +1 -1
  135. package/dist/icon-button/icon-button.d.ts +1 -1
  136. package/dist/icon-button/icon-button.js +1 -1
  137. package/dist/icon-button/icon-button.js.map +1 -1
  138. package/dist/icon-button/icon-button2.js +9 -9
  139. package/dist/index.js +4 -4
  140. package/dist/input/input-group.examples.js.map +1 -1
  141. package/dist/input/input-group.examples.json +11 -0
  142. package/dist/input/input-group.js +1 -1
  143. package/dist/input/input-group.js.map +1 -1
  144. package/dist/input/input-group2.js +1 -1
  145. package/dist/input/input2.js +6 -6
  146. package/dist/internal/controllers/keynav-grid.controller.js +39 -39
  147. package/dist/internal/controllers/state-scroll.controller.d.ts +1 -0
  148. package/dist/internal/controllers/state-scroll.controller.js +25 -8
  149. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  150. package/dist/internal/controllers/type-button.controller.examples.js.map +1 -1
  151. package/dist/internal/controllers/type-button.controller.examples.json +1 -1
  152. package/dist/internal/controllers/type-command.controller.d.ts +6 -1
  153. package/dist/internal/controllers/type-command.controller.js +20 -14
  154. package/dist/internal/controllers/type-command.controller.js.map +1 -1
  155. package/dist/internal/controllers/type-native-popover.controller.js +28 -21
  156. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  157. package/dist/internal/controllers/type-native-popover.utils.js +7 -7
  158. package/dist/internal/index.d.ts +0 -1
  159. package/dist/internal/index.js +40 -41
  160. package/dist/internal/services/global.service.js +1 -1
  161. package/dist/internal/types/index.d.ts +0 -10
  162. package/dist/internal/types/index.js +0 -3
  163. package/dist/internal/types/index.js.map +1 -1
  164. package/dist/logo/logo.d.ts +1 -1
  165. package/dist/logo/logo2.js +6 -6
  166. package/dist/menu/menu-item.d.ts +5 -3
  167. package/dist/menu/menu-item2.js +12 -12
  168. package/dist/menu/menu-item2.js.map +1 -1
  169. package/dist/menu/menu.d.ts +1 -1
  170. package/dist/menu/menu.examples.js.map +1 -1
  171. package/dist/menu/menu.examples.json +1 -1
  172. package/dist/menu/menu2.js +10 -10
  173. package/dist/month/month.d.ts +1 -1
  174. package/dist/month/month2.js +7 -7
  175. package/dist/notification/notification-group.d.ts +1 -1
  176. package/dist/notification/notification-group2.js +11 -11
  177. package/dist/notification/notification.d.ts +2 -1
  178. package/dist/notification/notification.examples.js.map +1 -1
  179. package/dist/notification/notification.examples.json +0 -11
  180. package/dist/notification/notification2.js +36 -28
  181. package/dist/notification/notification2.js.map +1 -1
  182. package/dist/page/page-panel/page-panel-content.d.ts +1 -1
  183. package/dist/page/page-panel/page-panel-content2.js +1 -1
  184. package/dist/page/page-panel/page-panel-footer.d.ts +1 -1
  185. package/dist/page/page-panel/page-panel-footer2.js +6 -6
  186. package/dist/page/page-panel/page-panel-header.d.ts +1 -1
  187. package/dist/page/page-panel/page-panel-header2.js +6 -6
  188. package/dist/page/page-panel/page-panel.d.ts +2 -17
  189. package/dist/page/page-panel/page-panel.global.js +1 -1
  190. package/dist/page/page-panel/page-panel.global.js.map +1 -1
  191. package/dist/page/page-panel/page-panel2.js +21 -44
  192. package/dist/page/page-panel/page-panel2.js.map +1 -1
  193. package/dist/page/page.d.ts +1 -1
  194. package/dist/page/page.examples.js.map +1 -1
  195. package/dist/page/page.examples.json +0 -32
  196. package/dist/page/page2.js +9 -9
  197. package/dist/page-header/page-header.d.ts +1 -1
  198. package/dist/page-header/page-header2.js +1 -1
  199. package/dist/page-loader/page-loader.d.ts +1 -1
  200. package/dist/page-loader/page-loader2.js +10 -10
  201. package/dist/pagination/pagination.d.ts +2 -405
  202. package/dist/pagination/pagination2.js +17 -17
  203. package/dist/pagination/pagination2.js.map +1 -1
  204. package/dist/panel/panel.d.ts +8 -5
  205. package/dist/panel/panel.examples.js.map +1 -1
  206. package/dist/panel/panel2.js +21 -21
  207. package/dist/panel/panel2.js.map +1 -1
  208. package/dist/password/password.d.ts +1 -1
  209. package/dist/password/password2.js +7 -7
  210. package/dist/preferences-input/preferences-input.d.ts +2 -405
  211. package/dist/preferences-input/preferences-input2.js +9 -9
  212. package/dist/preferences-input/preferences-input2.js.map +1 -1
  213. package/dist/progress-bar/progress-bar.d.ts +1 -1
  214. package/dist/progress-bar/progress-bar2.js +8 -8
  215. package/dist/progress-ring/progress-ring.d.ts +1 -3
  216. package/dist/progress-ring/progress-ring2.js +17 -22
  217. package/dist/progress-ring/progress-ring2.js.map +1 -1
  218. package/dist/progressive-filter-chip/progressive-filter-chip.d.ts +1 -1
  219. package/dist/progressive-filter-chip/progressive-filter-chip2.js +15 -15
  220. package/dist/pulse/pulse.d.ts +1 -1
  221. package/dist/pulse/pulse2.js +6 -6
  222. package/dist/radio/radio-group2.js +7 -7
  223. package/dist/radio/radio2.js +7 -7
  224. package/dist/range/range.d.ts +1 -1
  225. package/dist/range/range2.js +5 -5
  226. package/dist/resize-handle/resize-handle.d.ts +2 -405
  227. package/dist/resize-handle/resize-handle2.js +16 -16
  228. package/dist/resize-handle/resize-handle2.js.map +1 -1
  229. package/dist/search/search.d.ts +1 -1
  230. package/dist/search/search2.js +8 -8
  231. package/dist/select/select.d.ts +2 -2
  232. package/dist/select/select2.js +18 -18
  233. package/dist/skeleton/skeleton.d.ts +1 -1
  234. package/dist/skeleton/skeleton2.js +7 -7
  235. package/dist/sort-button/sort-button.d.ts +5 -3
  236. package/dist/sort-button/sort-button2.js +19 -19
  237. package/dist/sort-button/sort-button2.js.map +1 -1
  238. package/dist/sparkline/sparkline.d.ts +1 -1
  239. package/dist/sparkline/sparkline2.js +14 -14
  240. package/dist/star-rating/star-rating.d.ts +1 -1
  241. package/dist/star-rating/star-rating2.js +6 -6
  242. package/dist/steps/steps.d.ts +6 -4
  243. package/dist/steps/steps2.js +36 -36
  244. package/dist/steps/steps2.js.map +1 -1
  245. package/dist/switch/switch-group2.js +6 -6
  246. package/dist/switch/switch2.js +7 -7
  247. package/dist/tabs/tabs-group.d.ts +1 -1
  248. package/dist/tabs/tabs-group2.js +21 -21
  249. package/dist/tabs/tabs-item.js +1 -1
  250. package/dist/tabs/tabs-item.js.map +1 -1
  251. package/dist/tabs/tabs.d.ts +6 -8
  252. package/dist/tabs/tabs.global.js +1 -1
  253. package/dist/tabs/tabs.global.js.map +1 -1
  254. package/dist/tabs/tabs.js +1 -1
  255. package/dist/tabs/tabs.js.map +1 -1
  256. package/dist/tabs/tabs2.js +30 -30
  257. package/dist/tabs/tabs2.js.map +1 -1
  258. package/dist/tag/tag.d.ts +6 -3
  259. package/dist/tag/tag2.js +20 -20
  260. package/dist/tag/tag2.js.map +1 -1
  261. package/dist/textarea/textarea2.js +1 -1
  262. package/dist/time/time.d.ts +1 -1
  263. package/dist/time/time2.js +7 -7
  264. package/dist/toast/toast.d.ts +3 -4
  265. package/dist/toast/toast2.js +21 -21
  266. package/dist/toast/toast2.js.map +1 -1
  267. package/dist/toggletip/toggletip-footer.d.ts +1 -1
  268. package/dist/toggletip/toggletip-footer2.js +6 -6
  269. package/dist/toggletip/toggletip-header.d.ts +1 -1
  270. package/dist/toggletip/toggletip-header2.js +6 -6
  271. package/dist/toggletip/toggletip.d.ts +1 -1
  272. package/dist/toggletip/toggletip.examples.js.map +1 -1
  273. package/dist/toggletip/toggletip2.js +17 -17
  274. package/dist/toolbar/toolbar.d.ts +1 -1
  275. package/dist/toolbar/toolbar2.js +11 -11
  276. package/dist/tooltip/tooltip.d.ts +1 -1
  277. package/dist/tooltip/tooltip2.js +16 -16
  278. package/dist/tree/tree-node.d.ts +1 -1
  279. package/dist/tree/tree-node2.js +30 -30
  280. package/dist/tree/tree.d.ts +1 -1
  281. package/dist/tree/tree2.js +14 -14
  282. package/dist/week/week.d.ts +1 -1
  283. package/dist/week/week2.js +7 -7
  284. package/package.json +15 -15
  285. package/dist/internal/base/button.d.ts +0 -114
  286. package/dist/internal/base/button.js +0 -117
  287. package/dist/internal/base/button.js.map +0 -1
@@ -12,7 +12,7 @@ import { IconButton } from '../icon-button';
12
12
  * @cssprop --padding
13
13
  * @cssprop --border-bottom
14
14
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/
15
- * @deprecated use `nve-page-panel` with `nve-page` instead
15
+ * @deprecated use `nve-page-panel-header` with `nve-page-panel` instead
16
16
  */
17
17
  export declare class PanelHeader extends LitElement {
18
18
  static styles: import('lit').CSSResult[];
@@ -20,7 +20,7 @@ export declare class PanelHeader extends LitElement {
20
20
  tag: string;
21
21
  version: string;
22
22
  };
23
- render(): import('lit-html').TemplateResult<1>;
23
+ render(): import('lit').TemplateResult<1>;
24
24
  connectedCallback(): void;
25
25
  }
26
26
  /**
@@ -31,6 +31,7 @@ export declare class PanelHeader extends LitElement {
31
31
  * @slot - This is a default/unnamed slot for panel content
32
32
  * @cssprop --padding
33
33
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/
34
+ * @deprecated use `nve-page-panel-content` with `nve-page-panel` instead
34
35
  */
35
36
  export declare class PanelContent extends LitElement {
36
37
  static styles: import('lit').CSSResult[];
@@ -38,7 +39,7 @@ export declare class PanelContent extends LitElement {
38
39
  tag: string;
39
40
  version: string;
40
41
  };
41
- render(): import('lit-html').TemplateResult<1>;
42
+ render(): import('lit').TemplateResult<1>;
42
43
  }
43
44
  /**
44
45
  * @element nve-panel-footer
@@ -50,6 +51,7 @@ export declare class PanelContent extends LitElement {
50
51
  * @cssprop --border-top
51
52
  * @cssprop --gap
52
53
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/
54
+ * @deprecated use `nve-page-panel-footer` with `nve-page-panel` instead
53
55
  */
54
56
  export declare class PanelFooter extends LitElement {
55
57
  static styles: import('lit').CSSResult[];
@@ -57,7 +59,7 @@ export declare class PanelFooter extends LitElement {
57
59
  tag: string;
58
60
  version: string;
59
61
  };
60
- render(): import('lit-html').TemplateResult<1>;
62
+ render(): import('lit').TemplateResult<1>;
61
63
  connectedCallback(): void;
62
64
  }
63
65
  /**
@@ -77,6 +79,7 @@ export declare class PanelFooter extends LitElement {
77
79
  * @cssprop --panel-button-border-radius - Border radius of the panel expand/collapse button
78
80
  * @csspart icon-button - The expand/collapse icon button element
79
81
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/
82
+ * @deprecated use `nve-page-panel` with `nve-page` instead
80
83
  */
81
84
  export declare class Panel extends LitElement {
82
85
  #private;
@@ -112,6 +115,6 @@ export declare class Panel extends LitElement {
112
115
  i18n: Partial<import('../internal').I18nStrings & {
113
116
  __set: boolean;
114
117
  }>;
115
- render(): import('lit-html').TemplateResult<1>;
118
+ render(): import('lit').TemplateResult<1>;
116
119
  connectedCallback(): void;
117
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"panel.examples.js","names":[],"sources":["../../src/panel/panel.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport '@nvidia-elements/core/panel/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/icon-button/define.js';\nimport '@nvidia-elements/core/icon/define.js';\nimport '@nvidia-elements/core/notification/define.js';\n\n/* eslint-disable @nvidia-elements/lint/no-restricted-attributes */\n\nexport default {\n title: 'Elements/Panel',\n component: 'nve-panel'\n};\n\n/**\n * @summary Basic panel layout with header showing session details and metadata in a collapsible side panel.\n */\nexport const Default = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-header>\n <div slot=\"title\">Title</div>\n <div slot=\"subtitle\"></div>\n </nve-panel-header>\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Left-positioned collapsible panel for sidebar navigation and content details.\n * @tags test-case\n */\nexport const LeftSidePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Right-positioned collapsible panel for supplementary content and property inspectors.\n * @tags test-case\n */\nexport const RightSidePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"right\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Closable panel with external toggle button for programmatic show/hide control.\n * @tags test-case\n */\nexport const ClosablePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm full\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand id=\"trigger-closable-false\" expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n\n <nve-button interaction=\"emphasis\">Toggle Panel</nve-button>\n </section>\n\n <script type=\"module\">\n const button = document.querySelector('nve-button');\n button.addEventListener('click', () => {\n const panel = document.querySelector('nve-panel');\n panel.expanded = !panel.expanded;\n });\n </script>\n `\n};\n\n/**\n * @summary Collapsible panel with built-in close button and external toggle for flexible expand/collapse behavior.\n * @tags test-case\n */\nexport const WithTrigger = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm full\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded closable side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n\n <nve-button interaction=\"emphasis\">Toggle Panel</nve-button>\n </section>\n\n <script type=\"module\">\n const button = document.querySelector('nve-button');\n\n button.addEventListener('click', () => {\n const panel = document.querySelector('nve-panel');\n panel.expanded = !panel.expanded;\n });\n </script>\n `\n};\n\n/**\n * @summary Panel with complete header including title, subtitle, and action icon slots for rich header content.\n * @tags test-case\n */\nexport const WithFullHeader = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-header>\n <div slot=\"title\">Title</div>\n <div slot=\"subtitle\">Subtitle</div>\n\n <nve-icon-button container=\"flat\" slot=\"action-icon\" icon-name=\"more-actions\"></nve-icon-button>\n </nve-panel-header>\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Panel with footer containing action buttons for form submissions and destructive actions.\n * @tags test-case\n */\nexport const WithFooter = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:600px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n\n <nve-panel-footer>\n <nve-button interaction=\"destructive\" container=\"flat\">Destructive</nve-button>\n <nve-button>Default</nve-button>\n </nve-panel-footer>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/* eslint-enable @nvidia-elements/lint/no-restricted-attributes */"],"mappings":";AAGA,IAAA,IAAS"}
1
+ {"version":3,"file":"panel.examples.js","names":[],"sources":["../../src/panel/panel.examples.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport '@nvidia-elements/core/panel/define.js';\nimport '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/icon-button/define.js';\nimport '@nvidia-elements/core/icon/define.js';\nimport '@nvidia-elements/core/notification/define.js';\n\n/* eslint-disable @nvidia-elements/lint/no-restricted-attributes, @nvidia-elements/lint/no-deprecated-tags -- panel examples intentionally cover deprecated panel tags. */\n\nexport default {\n title: 'Elements/Panel',\n component: 'nve-panel'\n};\n\n/**\n * @summary Basic panel layout with header showing session details and metadata in a collapsible side panel.\n */\nexport const Default = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-header>\n <div slot=\"title\">Title</div>\n <div slot=\"subtitle\"></div>\n </nve-panel-header>\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Left-positioned collapsible panel for sidebar navigation and content details.\n * @tags test-case\n */\nexport const LeftSidePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Right-positioned collapsible panel for supplementary content and property inspectors.\n * @tags test-case\n */\nexport const RightSidePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"right\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Closable panel with external toggle button for programmatic show/hide control.\n * @tags test-case\n */\nexport const ClosablePanel = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm full\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand id=\"trigger-closable-false\" expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n\n <nve-button interaction=\"emphasis\">Toggle Panel</nve-button>\n </section>\n\n <script type=\"module\">\n const button = document.querySelector('nve-button');\n button.addEventListener('click', () => {\n const panel = document.querySelector('nve-panel');\n panel.expanded = !panel.expanded;\n });\n </script>\n `\n};\n\n/**\n * @summary Collapsible panel with built-in close button and external toggle for flexible expand/collapse behavior.\n * @tags test-case\n */\nexport const WithTrigger = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm full\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded closable side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n\n <nve-button interaction=\"emphasis\">Toggle Panel</nve-button>\n </section>\n\n <script type=\"module\">\n const button = document.querySelector('nve-button');\n\n button.addEventListener('click', () => {\n const panel = document.querySelector('nve-panel');\n panel.expanded = !panel.expanded;\n });\n </script>\n `\n};\n\n/**\n * @summary Panel with complete header including title, subtitle, and action icon slots for rich header content.\n * @tags test-case\n */\nexport const WithFullHeader = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:550px\">\n\n <nve-panel-header>\n <div slot=\"title\">Title</div>\n <div slot=\"subtitle\">Subtitle</div>\n\n <nve-icon-button container=\"flat\" slot=\"action-icon\" icon-name=\"more-actions\"></nve-icon-button>\n </nve-panel-header>\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/**\n * @summary Panel with footer containing action buttons for form submissions and destructive actions.\n * @tags test-case\n */\nexport const WithFooter = {\n render: () => html`\n <section nve-layout=\"row align:space-between pad:sm\">\n <div nve-theme=\"root\">\n <nve-panel behavior-expand expanded side=\"left\" style=\"width:280px; height:600px\">\n\n <nve-panel-content nve-layout=\"column gap:md\">\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Release</label>\n <p nve-text=\"label semibold sm\">RainbowBridge/08-18-2021AM/A2A</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Date</label>\n <p nve-text=\"label semibold sm\">2021-08-18</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">State</label>\n <nve-badge status=\"finished\">Indexed</nve-badge>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Driver</label>\n <p nve-text=\"label semibold sm\">Kenjiro Ono</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Copilot</label>\n <p nve-text=\"label semibold sm\">Kenichi Yoshii</p>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">GVS</label>\n <a href=\"#\" nve-text=\"link body sm\">http://testbot/testbot/view/content...</a>\n </div>\n\n <div nve-layout=\"column gap:xs\">\n <label nve-text=\"body sm medium muted\">Session ID</label>\n <a href=\"#\" nve-text=\"link body sm\">Experiment 12345</a>\n </div>\n </nve-panel-content>\n\n <nve-panel-footer>\n <nve-button interaction=\"destructive\" container=\"flat\">Destructive</nve-button>\n <nve-button>Default</nve-button>\n </nve-panel-footer>\n </nve-panel>\n </div>\n </section>\n `\n};\n\n/* eslint-enable @nvidia-elements/lint/no-restricted-attributes */\n"],"mappings":";AAGA,IAAA,IAAS"}
@@ -1,10 +1,10 @@
1
- import { attachInternals as e } from "../internal/utils/a11y.js";
2
- import { stateExpanded as t } from "../internal/controllers/state-expanded.controller.js";
3
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
4
- import { I18nController as r } from "../internal/controllers/i18n.controller.js";
5
- import { TypeExpandableController as i } from "../internal/controllers/type-expandable.controller.js";
6
- import { scopedRegistry as a } from "../internal/decorators/scoped-registry.js";
7
- import { useStyles as o } from "../internal/styles/index.js";
1
+ import { I18nController as e } from "../internal/controllers/i18n.controller.js";
2
+ import { attachInternals as t } from "../internal/utils/a11y.js";
3
+ import { stateExpanded as n } from "../internal/controllers/state-expanded.controller.js";
4
+ import { TypeExpandableController as r } from "../internal/controllers/type-expandable.controller.js";
5
+ import { scopedRegistry as i } from "../internal/decorators/scoped-registry.js";
6
+ import { useStyles as a } from "../internal/styles/index.js";
7
+ import { __decorate as o } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.js";
8
8
  import { IconButton as s } from "../icon-button/icon-button2.js";
9
9
  import c from "./panel.js";
10
10
  import l from "./panel-header.js";
@@ -16,12 +16,12 @@ import { when as h } from "lit/directives/when.js";
16
16
  //#region src/panel/panel.ts
17
17
  var g = class extends f {
18
18
  static {
19
- this.styles = o([l]);
19
+ this.styles = a([l]);
20
20
  }
21
21
  static {
22
22
  this.metadata = {
23
23
  tag: "nve-panel-header",
24
- version: "0.2.2"
24
+ version: "0.2.4"
25
25
  };
26
26
  }
27
27
  render() {
@@ -32,12 +32,12 @@ var g = class extends f {
32
32
  }
33
33
  }, _ = class extends f {
34
34
  static {
35
- this.styles = o([u]);
35
+ this.styles = a([u]);
36
36
  }
37
37
  static {
38
38
  this.metadata = {
39
39
  tag: "nve-panel-content",
40
- version: "0.2.2"
40
+ version: "0.2.4"
41
41
  };
42
42
  }
43
43
  render() {
@@ -45,12 +45,12 @@ var g = class extends f {
45
45
  }
46
46
  }, v = class extends f {
47
47
  static {
48
- this.styles = o([d]);
48
+ this.styles = a([d]);
49
49
  }
50
50
  static {
51
51
  this.metadata = {
52
52
  tag: "nve-panel-footer",
53
- version: "0.2.2"
53
+ version: "0.2.4"
54
54
  };
55
55
  }
56
56
  render() {
@@ -60,16 +60,16 @@ var g = class extends f {
60
60
  super.connectedCallback(), this.slot = "footer";
61
61
  }
62
62
  }, y = class extends f {
63
- constructor(...e) {
64
- super(...e), this.expanded = !1, this.closable = !1, this.behaviorExpand = !1, this.side = "left", this.#e = new r(this), this.#t = new i(this), this.i18n = this.#e.i18n;
63
+ constructor(...t) {
64
+ super(...t), this.expanded = !1, this.closable = !1, this.behaviorExpand = !1, this.side = "left", this.#e = new e(this), this.#t = new r(this), this.i18n = this.#e.i18n;
65
65
  }
66
66
  static {
67
- this.styles = o([c]);
67
+ this.styles = a([c]);
68
68
  }
69
69
  static {
70
70
  this.metadata = {
71
71
  tag: "nve-panel",
72
- version: "0.2.2"
72
+ version: "0.2.4"
73
73
  };
74
74
  }
75
75
  static {
@@ -84,16 +84,16 @@ var g = class extends f {
84
84
  return p`<div internal-host><div class="header"><slot name="header"></slot>${h(!this.closable, () => p`<nve-icon-button part="icon-button" exportparts="icon:icon-button-icon" .container="${this.expanded ? "flat" : void 0}" icon-name="double-chevron" @click="${() => this.#t.toggle()}" .direction="${this.#n}" .expanded="${this.expanded}" .ariaLabel="${this.expanded ? this.i18n.close : this.i18n.expand}"></nve-icon-button>`, () => p`<nve-icon-button part="icon-button" exportparts="icon:icon-button-icon" container="flat" icon-name="cancel" @click="${() => this.#t.close()}" .expanded="${this.expanded}" .ariaLabel="${this.expanded ? this.i18n.hide : this.i18n.show}"></nve-icon-button>`)}</div><div class="content"><slot></slot></div><slot name="footer"></slot></div>`;
85
85
  }
86
86
  connectedCallback() {
87
- super.connectedCallback(), e(this), this._internals.role = "region";
87
+ super.connectedCallback(), t(this), this._internals.role = "region";
88
88
  }
89
89
  };
90
- n([m({
90
+ o([m({
91
91
  type: Boolean,
92
92
  reflect: !0
93
- })], y.prototype, "expanded", void 0), n([m({ type: Boolean })], y.prototype, "closable", void 0), n([m({
93
+ })], y.prototype, "expanded", void 0), o([m({ type: Boolean })], y.prototype, "closable", void 0), o([m({
94
94
  type: Boolean,
95
95
  attribute: "behavior-expand"
96
- })], y.prototype, "behaviorExpand", void 0), n([m({ type: String })], y.prototype, "side", void 0), n([m({ type: Object })], y.prototype, "i18n", void 0), y = n([a(), t()], y);
96
+ })], y.prototype, "behaviorExpand", void 0), o([m({ type: String })], y.prototype, "side", void 0), o([m({ type: Object })], y.prototype, "i18n", void 0), y = o([i(), n()], y);
97
97
  //#endregion
98
98
  export { y as Panel, _ as PanelContent, v as PanelFooter, g as PanelHeader };
99
99
 
@@ -1 +1 @@
1
- {"version":3,"file":"panel2.js","names":["#i18nController","#direction","#typeExpandableController"],"sources":["../../src/panel/panel.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { when } from 'lit/directives/when.js';\nimport {\n stateExpanded,\n I18nController,\n TypeExpandableController,\n useStyles,\n attachInternals,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport panelStyleSheet from './panel.css?inline';\nimport panelHeaderStyleSheet from './panel-header.css?inline';\nimport panelContentStyleSheet from './panel-content.css?inline';\nimport panelFooterStyleSheet from './panel-footer.css?inline';\n\n/**\n * @element nve-panel-header\n * @description Displays the title, subtitle, and optional action controls at the top of a panel.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - default content slot\n * @slot title - Title Text\n * @slot subtitle - Subtitle Text\n * @slot action-icon - Extra Action Button\n * @cssprop --padding\n * @cssprop --border-bottom\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n * @deprecated use `nve-page-panel` with `nve-page` instead\n */\nexport class PanelHeader extends LitElement {\n static styles = useStyles([panelHeaderStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-header',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <div internal-host>\n <div id=\"titles\">\n <slot name=\"title\"></slot>\n <slot name=\"subtitle\"></slot>\n <slot></slot>\n </div>\n\n <slot name=\"action-icon\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback(); // Do not override connectedCallback w/out supering\n this.slot = 'header';\n }\n}\n\n/**\n * @element nve-panel-content\n * @description Contains the main body content within a panel, providing a structured region for detailed information.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - This is a default/unnamed slot for panel content\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n */\nexport class PanelContent extends LitElement {\n static styles = useStyles([panelContentStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-content',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n}\n\n/**\n * @element nve-panel-footer\n * @description Provides a designated area at the bottom of a panel for actions or supplementary controls.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - This is a default/unnamed slot for panel footer content\n * @cssprop --padding\n * @cssprop --border-top\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n */\nexport class PanelFooter extends LitElement {\n static styles = useStyles([panelFooterStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-footer',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <footer internal-host>\n <slot></slot>\n </footer>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback(); // Do not override connectedCallback w/out supering\n this.slot = 'footer';\n }\n}\n\n/**\n * @element nve-panel\n * @description Panel is inline container for content that couples to the content on the page (details, extra actions/options). Or [Drawer](./docs/elements/drawer/) is out of context of the rest of the page (notifications, navigations, settings).\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @event open - Dispatched when the panel opens.\n * @event close - Dispatched when the panel closes.\n * @slot - This is a default/unnamed slot for panel content\n * @slot header - header element (Use `panel-header` or custom content)\n * @slot content - content element (Use `panel-content` or custom content)\n * @slot footer - footer element (Use `panel-footer` or custom content)\n * @cssprop --background\n * @cssprop --color\n * @cssprop --box-shadow\n * @cssprop --panel-button-border-radius - Border radius of the panel expand/collapse button\n * @csspart icon-button - The expand/collapse icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n */\n\n@scopedRegistry()\n@stateExpanded<Panel>()\nexport class Panel extends LitElement {\n /**\n * Determines whether the panel is fully expanded, displaying its contents, or not.\n */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /**\n * Determines whether the panel collapses down to an expand icon, or fully hides.\n */\n @property({ type: Boolean }) closable = false;\n\n /**\n * Determines whether the panel should handle auto-closing behavior vs. defaults to off.\n */\n @property({ type: Boolean, attribute: 'behavior-expand' }) behaviorExpand = false;\n\n /**\n * Sets the proper collapse icon and collapse animation, based on which side of the page the panel occupies.\n */\n @property({ type: String }) side: 'left' | 'right' = 'left';\n\n static styles = useStyles([panelStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n #typeExpandableController = new TypeExpandableController(this);\n\n /**\n * Enables updating internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #direction() {\n if (this.side === 'left') {\n return this.expanded ? 'left' : 'right';\n } else {\n return this.expanded ? 'right' : 'left';\n }\n }\n\n render() {\n return html`\n <div internal-host>\n <div class=\"header\">\n <slot name=\"header\"></slot>\n\n ${when(\n !this.closable,\n () => html`\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" .container=${this.expanded ? 'flat' : undefined} icon-name=\"double-chevron\"\n @click=${() => this.#typeExpandableController.toggle()}\n .direction=${this.#direction}\n .expanded=${this.expanded}\n .ariaLabel=${this.expanded ? this.i18n.close : this.i18n.expand}\n ></nve-icon-button>\n `,\n () => html`\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" container=\"flat\" icon-name=\"cancel\"\n @click=${() => this.#typeExpandableController.close()}\n .expanded=${this.expanded}\n .ariaLabel=${this.expanded ? this.i18n.hide : this.i18n.show}\n ></nve-icon-button>\n `\n )}\n </div>\n\n <div class=\"content\">\n <slot></slot>\n </div>\n\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'region';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,IAAa,IAAb,cAAiC,EAAW;;gBAC1B,EAAU,CAAC,CAAqB,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAWb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF,GAWa,IAAb,cAAkC,EAAW;;gBAC3B,EAAU,CAAC,CAAsB,CAAC;;;kBAEvB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAGb;AACF,GAaa,IAAb,cAAiC,EAAW;;gBAC1B,EAAU,CAAC,CAAqB,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF,GAuBO,IAAA,cAAoB,EAAW;;+BAImB,oBAKf,0BAKoC,gBAKvB,kBAgBb,IAAI,EAAqB,IAAI,aACzC,IAAI,EAAyB,IAAI,eAK1B,KAAKA,GAAgB;;;gBApBxC,EAAU,CAAC,CAAe,CAAC;;;kBAEhB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAKA;CACA;CAOA,IAAIC,KAAa;EAIb,OAHE,KAAK,SAAS,SACT,KAAK,WAAW,SAAS,UAEzB,KAAK,WAAW,UAAU;CAErC;CAEA,SAAS;EACP,OAAO,CAAI,qEAKH,EACA,CAAC,KAAK,gBACA,CAAI,uFAC6E,KAAK,WAAW,SAAS,KAAA,EAAU,6CACvG,KAAKC,GAA0B,OAAO,EAAE,gBAC1C,KAAKD,GAAW,eACjB,KAAK,SAAS,gBACb,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,OAAO,6BAG9D,CAAI,6HAES,KAAKC,GAA0B,MAAM,EAAE,eAC1C,KAAK,SAAS,gBACb,KAAK,WAAW,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,qBAGnE,EAAE;CAUV;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;GAvFG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAKzC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS;CAAE,MAAM;CAAS,WAAW;AAAkB,CAAC,CAAA,GAAA,EAAA,WAAA,kBAAA,KAAA,CAAA,MAKxD,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAsBzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA3C3B,EAAe,GACf,EAAqB,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"panel2.js","names":["#i18nController","#direction","#typeExpandableController"],"sources":["../../src/panel/panel.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { when } from 'lit/directives/when.js';\nimport {\n stateExpanded,\n I18nController,\n TypeExpandableController,\n useStyles,\n attachInternals,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport panelStyleSheet from './panel.css?inline';\nimport panelHeaderStyleSheet from './panel-header.css?inline';\nimport panelContentStyleSheet from './panel-content.css?inline';\nimport panelFooterStyleSheet from './panel-footer.css?inline';\n\n/**\n * @element nve-panel-header\n * @description Displays the title, subtitle, and optional action controls at the top of a panel.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - default content slot\n * @slot title - Title Text\n * @slot subtitle - Subtitle Text\n * @slot action-icon - Extra Action Button\n * @cssprop --padding\n * @cssprop --border-bottom\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n * @deprecated use `nve-page-panel-header` with `nve-page-panel` instead\n */\nexport class PanelHeader extends LitElement {\n static styles = useStyles([panelHeaderStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-header',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <div internal-host>\n <div id=\"titles\">\n <slot name=\"title\"></slot>\n <slot name=\"subtitle\"></slot>\n <slot></slot>\n </div>\n\n <slot name=\"action-icon\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback(); // Do not override connectedCallback w/out supering\n this.slot = 'header';\n }\n}\n\n/**\n * @element nve-panel-content\n * @description Contains the main body content within a panel, providing a structured region for detailed information.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - This is a default/unnamed slot for panel content\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n * @deprecated use `nve-page-panel-content` with `nve-page-panel` instead\n */\nexport class PanelContent extends LitElement {\n static styles = useStyles([panelContentStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-content',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n}\n\n/**\n * @element nve-panel-footer\n * @description Provides a designated area at the bottom of a panel for actions or supplementary controls.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @slot - This is a default/unnamed slot for panel footer content\n * @cssprop --padding\n * @cssprop --border-top\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n * @deprecated use `nve-page-panel-footer` with `nve-page-panel` instead\n */\nexport class PanelFooter extends LitElement {\n static styles = useStyles([panelFooterStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel-footer',\n version: '0.0.0'\n };\n\n render() {\n return html`\n <footer internal-host>\n <slot></slot>\n </footer>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback(); // Do not override connectedCallback w/out supering\n this.slot = 'footer';\n }\n}\n\n/**\n * @element nve-panel\n * @description Panel is inline container for content that couples to the content on the page (details, extra actions/options). Or [Drawer](./docs/elements/drawer/) is out of context of the rest of the page (notifications, navigations, settings).\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/panel\n * @event open - Dispatched when the panel opens.\n * @event close - Dispatched when the panel closes.\n * @slot - This is a default/unnamed slot for panel content\n * @slot header - header element (Use `panel-header` or custom content)\n * @slot content - content element (Use `panel-content` or custom content)\n * @slot footer - footer element (Use `panel-footer` or custom content)\n * @cssprop --background\n * @cssprop --color\n * @cssprop --box-shadow\n * @cssprop --panel-button-border-radius - Border radius of the panel expand/collapse button\n * @csspart icon-button - The expand/collapse icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/\n * @deprecated use `nve-page-panel` with `nve-page` instead\n */\n\n@scopedRegistry()\n@stateExpanded<Panel>()\nexport class Panel extends LitElement {\n /**\n * Determines whether the panel is fully expanded, displaying its contents, or not.\n */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /**\n * Determines whether the panel collapses down to an expand icon, or fully hides.\n */\n @property({ type: Boolean }) closable = false;\n\n /**\n * Determines whether the panel should handle auto-closing behavior vs. defaults to off.\n */\n @property({ type: Boolean, attribute: 'behavior-expand' }) behaviorExpand = false;\n\n /**\n * Sets the proper collapse icon and collapse animation, based on which side of the page the panel occupies.\n */\n @property({ type: String }) side: 'left' | 'right' = 'left';\n\n static styles = useStyles([panelStyleSheet]);\n\n static readonly metadata = {\n tag: 'nve-panel',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n #typeExpandableController = new TypeExpandableController(this);\n\n /**\n * Enables updating internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #direction() {\n if (this.side === 'left') {\n return this.expanded ? 'left' : 'right';\n } else {\n return this.expanded ? 'right' : 'left';\n }\n }\n\n render() {\n return html`\n <div internal-host>\n <div class=\"header\">\n <slot name=\"header\"></slot>\n\n ${when(\n !this.closable,\n () => html`\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" .container=${this.expanded ? 'flat' : undefined} icon-name=\"double-chevron\"\n @click=${() => this.#typeExpandableController.toggle()}\n .direction=${this.#direction}\n .expanded=${this.expanded}\n .ariaLabel=${this.expanded ? this.i18n.close : this.i18n.expand}\n ></nve-icon-button>\n `,\n () => html`\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" container=\"flat\" icon-name=\"cancel\"\n @click=${() => this.#typeExpandableController.close()}\n .expanded=${this.expanded}\n .ariaLabel=${this.expanded ? this.i18n.hide : this.i18n.show}\n ></nve-icon-button>\n `\n )}\n </div>\n\n <div class=\"content\">\n <slot></slot>\n </div>\n\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'region';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAkCA,IAAa,IAAb,cAAiC,EAAW;;gBAC1B,EAAU,CAAC,CAAqB,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAWb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF,GAYa,IAAb,cAAkC,EAAW;;gBAC3B,EAAU,CAAC,CAAsB,CAAC;;;kBAEvB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAGb;AACF,GAca,IAAb,cAAiC,EAAW;;gBAC1B,EAAU,CAAC,CAAqB,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF,GAwBO,IAAA,cAAoB,EAAW;;+BAImB,oBAKf,0BAKoC,gBAKvB,kBAgBb,IAAI,EAAqB,IAAI,aACzC,IAAI,EAAyB,IAAI,eAK1B,KAAKA,GAAgB;;;gBApBxC,EAAU,CAAC,CAAe,CAAC;;;kBAEhB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAKA;CACA;CAOA,IAAIC,KAAa;EAIb,OAHE,KAAK,SAAS,SACT,KAAK,WAAW,SAAS,UAEzB,KAAK,WAAW,UAAU;CAErC;CAEA,SAAS;EACP,OAAO,CAAI,qEAKH,EACA,CAAC,KAAK,gBACA,CAAI,uFAC6E,KAAK,WAAW,SAAS,KAAA,EAAU,6CACvG,KAAKC,GAA0B,OAAO,EAAE,gBAC1C,KAAKD,GAAW,eACjB,KAAK,SAAS,gBACb,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,OAAO,6BAG9D,CAAI,6HAES,KAAKC,GAA0B,MAAM,EAAE,eAC1C,KAAK,SAAS,gBACb,KAAK,WAAW,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,qBAGnE,EAAE;CAUV;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;GAvFG,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAKzC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS;CAAE,MAAM;CAAS,WAAW;AAAkB,CAAC,CAAA,GAAA,EAAA,WAAA,kBAAA,KAAA,CAAA,MAKxD,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAsBzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA3C3B,EAAe,GACf,EAAqB,CAAA,GAAA,CAAA"}
@@ -32,5 +32,5 @@ export declare class Password extends Control implements ContainerElement {
32
32
  static elementDefinitions: {
33
33
  [IconButton.metadata.tag]: typeof IconButton;
34
34
  };
35
- protected get suffixContent(): import('lit-html').TemplateResult<1>;
35
+ protected get suffixContent(): import('lit').TemplateResult<1>;
36
36
  }
@@ -1,6 +1,6 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.js";
2
- import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
- import { useStyles as n } from "../internal/styles/index.js";
1
+ import { scopedRegistry as e } from "../internal/decorators/scoped-registry.js";
2
+ import { useStyles as t } from "../internal/styles/index.js";
3
+ import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.js";
4
4
  import { Control as r } from "../forms/control/control2.js";
5
5
  import { IconButton as i } from "../icon-button/icon-button2.js";
6
6
  import { inputStyles as a } from "../input/input2.js";
@@ -14,7 +14,7 @@ var u = class extends r {
14
14
  super(...e), this.pressed = !1;
15
15
  }
16
16
  static {
17
- this.styles = n([
17
+ this.styles = t([
18
18
  ...r.styles,
19
19
  a,
20
20
  o
@@ -23,7 +23,7 @@ var u = class extends r {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-password",
26
- version: "0.2.2"
26
+ version: "0.2.4"
27
27
  };
28
28
  }
29
29
  static {
@@ -36,10 +36,10 @@ var u = class extends r {
36
36
  this.pressed = !this.pressed, this.input.type = this.pressed ? "text" : "password";
37
37
  }
38
38
  };
39
- e([c({
39
+ n([c({
40
40
  type: String,
41
41
  reflect: !0
42
- })], u.prototype, "container", void 0), e([l()], u.prototype, "pressed", void 0), u = e([t()], u);
42
+ })], u.prototype, "container", void 0), n([l()], u.prototype, "pressed", void 0), u = n([e()], u);
43
43
  //#endregion
44
44
  export { u as Password };
45
45