@nvidia-elements/core 2.12.0 → 2.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/accordion/accordion.examples.json +1 -1
- package/dist/accordion/accordion2.js +4 -4
- package/dist/alert/alert-group2.js +1 -1
- package/dist/alert/alert.examples.json +6 -6
- package/dist/alert/alert2.js +1 -1
- package/dist/avatar/avatar-group2.js +1 -1
- package/dist/avatar/avatar2.js +1 -1
- package/dist/badge/badge2.js +1 -1
- package/dist/breadcrumb/breadcrumb2.js +1 -1
- package/dist/bundles/index.d.ts +467 -467
- package/dist/bundles/index.js +2 -2
- package/dist/button/button.examples.json +3 -3
- package/dist/button/button2.js +1 -1
- package/dist/button-group/button-group2.js +1 -1
- package/dist/card/card.examples.json +2 -2
- package/dist/card/card2.js +4 -4
- package/dist/chat-message/chat-message.examples.json +1 -1
- package/dist/chat-message/chat-message2.js +1 -1
- package/dist/checkbox/checkbox-group2.js +1 -1
- package/dist/checkbox/checkbox.examples.json +5 -5
- package/dist/checkbox/checkbox2.js +1 -1
- package/dist/color/color.examples.json +2 -2
- package/dist/color/color2.js +1 -1
- package/dist/combobox/combobox.examples.json +7 -7
- package/dist/combobox/combobox2.js +55 -53
- package/dist/combobox/combobox2.js.map +1 -1
- package/dist/copy-button/copy-button.examples.json +1 -1
- package/dist/copy-button/copy-button2.js +1 -1
- package/dist/custom-elements.json +28 -14
- package/dist/data.snippets.json +18 -18
- package/dist/date/date.examples.json +3 -3
- package/dist/date/date2.js +1 -1
- package/dist/datetime/datetime.examples.json +2 -2
- package/dist/datetime/datetime2.js +1 -1
- package/dist/dialog/dialog-footer2.js +1 -1
- package/dist/dialog/dialog-header2.js +1 -1
- package/dist/dialog/dialog.examples.json +7 -7
- package/dist/dialog/dialog2.js +1 -1
- package/dist/divider/divider2.js +1 -1
- package/dist/dot/dot2.js +1 -1
- package/dist/drawer/drawer-content2.js +1 -1
- package/dist/drawer/drawer-footer2.js +1 -1
- package/dist/drawer/drawer-header2.js +1 -1
- package/dist/drawer/drawer.examples.json +5 -5
- package/dist/drawer/drawer2.js +1 -1
- package/dist/dropdown/dropdown-footer2.js +1 -1
- package/dist/dropdown/dropdown-header2.js +1 -1
- package/dist/dropdown/dropdown.examples.json +3 -3
- package/dist/dropdown/dropdown2.js +1 -1
- package/dist/dropdown-group/dropdown-group.js +1 -1
- package/dist/dropzone/dropzone.examples.json +2 -2
- package/dist/dropzone/dropzone2.js +1 -1
- package/dist/file/file.examples.json +2 -2
- package/dist/file/file2.js +1 -1
- package/dist/format-bytes/format-bytes2.js +1 -1
- package/dist/format-datetime/format-datetime2.js +1 -1
- package/dist/format-number/format-number2.js +1 -1
- package/dist/format-relative-time/format-relative-time2.js +1 -1
- package/dist/format-truncate/format-truncate2.js +1 -1
- package/dist/forms/control/control.examples.json +3 -3
- package/dist/forms/control/control2.js +1 -1
- package/dist/forms/control-group/control-group2.js +1 -1
- package/dist/forms/control-message/control-message2.js +1 -1
- package/dist/forms/forms.examples.json +7 -7
- package/dist/forms/validation.examples.json +4 -4
- package/dist/gauge/gauge.examples.json +2 -2
- package/dist/gauge/gauge2.js +1 -1
- package/dist/grid/cell/cell2.js +1 -1
- package/dist/grid/column/column2.js +1 -1
- package/dist/grid/footer/footer2.js +1 -1
- package/dist/grid/grid.examples.json +6 -6
- package/dist/grid/grid2.js +1 -1
- package/dist/grid/header/header2.js +1 -1
- package/dist/grid/placeholder/placeholder2.js +1 -1
- package/dist/grid/row/row2.js +1 -1
- package/dist/icon/icon.examples.json +1 -1
- package/dist/icon/icon2.js +2 -2
- package/dist/icon/icons.d.ts +2 -1
- package/dist/icon/icons.js.map +1 -1
- package/dist/icon-button/icon-button2.js +1 -1
- package/dist/index.js +1 -1
- package/dist/input/input-group.examples.json +3 -3
- package/dist/input/input-group2.js +1 -1
- package/dist/input/input.examples.json +2 -2
- package/dist/input/input2.js +1 -1
- package/dist/internal/controllers/gesture.controller.examples.json +1 -1
- package/dist/internal/controllers/popover.examples.json +5 -5
- package/dist/internal/controllers/type-popover.controller.examples.json +1 -1
- package/dist/internal/services/global.service.js +1 -1
- package/dist/internal/types/icons.d.ts +1 -0
- package/dist/internal/types/index.d.ts +1 -1
- package/dist/internal/types/index.js.map +1 -1
- package/dist/internal/utils/dom.js +18 -10
- package/dist/internal/utils/dom.js.map +1 -1
- package/dist/logo/logo2.js +1 -1
- package/dist/menu/menu-group2.js +1 -1
- package/dist/menu/menu-item2.js +1 -1
- package/dist/menu/menu.examples.json +1 -1
- package/dist/menu/menu2.js +1 -1
- package/dist/month/month.examples.json +2 -2
- package/dist/month/month2.js +1 -1
- package/dist/notification/notification-group2.js +1 -1
- package/dist/notification/notification.examples.json +5 -5
- package/dist/notification/notification2.js +1 -1
- package/dist/page/page-panel/page-panel-content2.js +1 -1
- package/dist/page/page-panel/page-panel-footer2.js +1 -1
- package/dist/page/page-panel/page-panel-header2.js +1 -1
- package/dist/page/page-panel/page-panel2.js +1 -1
- package/dist/page/page.examples.json +25 -25
- package/dist/page/page2.js +1 -1
- package/dist/page-header/page-header2.js +1 -1
- package/dist/page-loader/page-loader.examples.json +1 -1
- package/dist/page-loader/page-loader2.js +1 -1
- package/dist/pagination/pagination.examples.json +2 -2
- package/dist/pagination/pagination2.js +1 -1
- package/dist/panel/panel.examples.json +7 -7
- package/dist/panel/panel2.js +4 -4
- package/dist/password/password.examples.json +2 -2
- package/dist/password/password2.js +1 -1
- package/dist/preferences-input/preferences-input.examples.json +1 -1
- package/dist/preferences-input/preferences-input2.js +1 -1
- package/dist/progress-bar/progress-bar2.js +1 -1
- package/dist/progress-ring/progress-ring.examples.json +5 -5
- package/dist/progress-ring/progress-ring2.js +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip.examples.json +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +1 -1
- package/dist/pulse/pulse2.js +1 -1
- package/dist/radio/radio-group2.js +1 -1
- package/dist/radio/radio.examples.json +5 -5
- package/dist/radio/radio2.js +1 -1
- package/dist/range/range.examples.json +2 -2
- package/dist/range/range2.js +1 -1
- package/dist/resize-handle/resize-handle.examples.json +2 -2
- package/dist/resize-handle/resize-handle2.js +1 -1
- package/dist/search/search.examples.json +2 -2
- package/dist/search/search2.js +1 -1
- package/dist/select/select.examples.json +8 -8
- package/dist/select/select2.js +1 -1
- package/dist/skeleton/skeleton2.js +1 -1
- package/dist/sort-button/sort-button2.js +1 -1
- package/dist/sparkline/sparkline2.js +1 -1
- package/dist/star-rating/star-rating2.js +1 -1
- package/dist/steps/steps2.js +2 -2
- package/dist/switch/switch-group2.js +1 -1
- package/dist/switch/switch.examples.json +5 -5
- package/dist/switch/switch2.js +1 -1
- package/dist/tabs/tabs-group2.js +1 -1
- package/dist/tabs/tabs.examples.json +1 -1
- package/dist/tabs/tabs2.js +2 -2
- package/dist/tag/tag2.js +1 -1
- package/dist/textarea/textarea.examples.json +2 -2
- package/dist/textarea/textarea2.js +1 -1
- package/dist/time/time.examples.json +2 -2
- package/dist/time/time2.js +1 -1
- package/dist/toast/toast.examples.json +1 -1
- package/dist/toast/toast2.js +1 -1
- package/dist/toggletip/toggletip-footer2.js +1 -1
- package/dist/toggletip/toggletip-header2.js +1 -1
- package/dist/toggletip/toggletip.examples.json +5 -5
- package/dist/toggletip/toggletip2.js +1 -1
- package/dist/toolbar/toolbar.examples.json +4 -4
- package/dist/toolbar/toolbar2.js +1 -1
- package/dist/tooltip/tooltip.examples.json +6 -6
- package/dist/tooltip/tooltip2.js +1 -1
- package/dist/tree/tree-node2.js +1 -1
- package/dist/tree/tree.examples.json +2 -2
- package/dist/tree/tree2.js +1 -1
- package/dist/viewport/viewport-gridlines2.js +1 -1
- package/dist/viewport/viewport-minimap2.js +1 -1
- package/dist/viewport/viewport.examples.json +9 -9
- package/dist/viewport/viewport2.js +1 -1
- package/dist/week/week.examples.json +3 -3
- package/dist/week/week2.js +1 -1
- package/package.json +2 -1
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
{
|
|
26
26
|
"id": "toggletip-content",
|
|
27
27
|
"name": "Content",
|
|
28
|
-
"template": "<nve-toggletip anchor=\"btn\">\n <nve-toggletip-header>\n <h3 nve-text=\"heading sm\">Toggletip Header</h3>\n </nve-toggletip-header>\n <p nve-text=\"body\">some text content in a toggletip</p>\n <nve-toggletip-footer>\n <p nve-text=\"body\">Toggletip Footer</p>\n </nve-toggletip-footer>\n</nve-toggletip>\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
28
|
+
"template": "<nve-toggletip anchor=\"btn\">\n <nve-toggletip-header>\n <h3 nve-text=\"heading sm\">Toggletip Header</h3>\n </nve-toggletip-header>\n <p nve-text=\"body\">some text content in a toggletip</p>\n <nve-toggletip-footer>\n <p nve-text=\"body\">Toggletip Footer</p>\n </nve-toggletip-footer>\n</nve-toggletip>\n\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
29
29
|
"summary": "Toggletip with complete structure including header, content, and footer sections. Perfect for rich interactive content like quick forms, action menus, or detailed explanations that gain from organized layout.",
|
|
30
30
|
"description": "",
|
|
31
31
|
"composition": false,
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{
|
|
35
35
|
"id": "toggletip-content-with-footer",
|
|
36
36
|
"name": "ContentWithFooter",
|
|
37
|
-
"template": "<nve-toggletip anchor=\"btn\">\n <p nve-text=\"body\">some text content in a toggletip</p>\n <nve-toggletip-footer>\n <p nve-text=\"body\">Toggletip Footer</p>\n </nve-toggletip-footer>\n</nve-toggletip>\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
37
|
+
"template": "<nve-toggletip anchor=\"btn\">\n <p nve-text=\"body\">some text content in a toggletip</p>\n <nve-toggletip-footer>\n <p nve-text=\"body\">Toggletip Footer</p>\n </nve-toggletip-footer>\n</nve-toggletip>\n\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
38
38
|
"summary": "Toggletip with footer for action buttons or supplementary links. Use when toggletip content needs follow-up actions, navigation, or extra context links without requiring a header section.",
|
|
39
39
|
"description": "",
|
|
40
40
|
"composition": false,
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
{
|
|
44
44
|
"id": "toggletip-content-with-header",
|
|
45
45
|
"name": "ContentWithHeader",
|
|
46
|
-
"template": "<nve-toggletip anchor=\"btn\">\n <nve-toggletip-header>\n <h3 nve-text=\"heading sm\">Toggletip Header</h3>\n </nve-toggletip-header>\n <p nve-text=\"body\">some text content in a toggletip</p>\n</nve-toggletip>\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
46
|
+
"template": "<nve-toggletip anchor=\"btn\">\n <nve-toggletip-header>\n <h3 nve-text=\"heading sm\">Toggletip Header</h3>\n </nve-toggletip-header>\n <p nve-text=\"body\">some text content in a toggletip</p>\n</nve-toggletip>\n\n<nve-button id=\"btn\">button</nve-button>\n",
|
|
47
47
|
"summary": "Toggletip with header for titled content sections. Use when toggletip information benefits from a clear title or heading to establish context, improving content scannability and understanding.",
|
|
48
48
|
"description": "",
|
|
49
49
|
"composition": false,
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
{
|
|
97
97
|
"id": "toggletip-alignment",
|
|
98
98
|
"name": "Alignment",
|
|
99
|
-
"template": "<nve-toggletip anchor=\"card\" position=\"top\" alignment=\"start\">top start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"top\">top center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"top\" alignment=\"end\">top end</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"right\" alignment=\"start\">right start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"right\">right center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"right\" alignment=\"end\">right end</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"bottom\" alignment=\"start\">bottom start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"bottom\">bottom center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"bottom\" alignment=\"end\">bottom end</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"left\" alignment=\"start\">left start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"left\">left center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"left\" alignment=\"end\">left end</nve-toggletip>\n<nve-card id=\"card\" style=\"width: 400px; height: 200px\"></nve-card>\n",
|
|
99
|
+
"template": "<nve-toggletip anchor=\"card\" position=\"top\" alignment=\"start\">top start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"top\">top center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"top\" alignment=\"end\">top end</nve-toggletip>\n\n<nve-toggletip anchor=\"card\" position=\"right\" alignment=\"start\">right start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"right\">right center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"right\" alignment=\"end\">right end</nve-toggletip>\n\n<nve-toggletip anchor=\"card\" position=\"bottom\" alignment=\"start\">bottom start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"bottom\">bottom center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"bottom\" alignment=\"end\">bottom end</nve-toggletip>\n\n<nve-toggletip anchor=\"card\" position=\"left\" alignment=\"start\">left start</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"left\">left center</nve-toggletip>\n<nve-toggletip anchor=\"card\" position=\"left\" alignment=\"end\">left end</nve-toggletip>\n\n<nve-card id=\"card\" style=\"width: 400px; height: 200px\"></nve-card>\n",
|
|
100
100
|
"summary": "Precise toggletip alignment combined with positioning for optimal placement control. Use alignment to fine-tune toggletip placement relative to trigger edges, improving visual flow and reducing content overlap in dense layouts.",
|
|
101
101
|
"description": "",
|
|
102
102
|
"composition": false,
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
{
|
|
108
108
|
"id": "toggletip-cross-shadow-root-anchor-position",
|
|
109
109
|
"name": "CrossShadowRootAnchorPosition",
|
|
110
|
-
"template": "<nve-button popovertarget=\"root-toggletip\">document root anchor</nve-button>\n<nve-toggletip id=\"root-toggletip\">document root toggletip</nve-toggletip>\n<demo-shadow-root style=\"visibility: visible !important\">\n <template shadowrootmode=\"open\">\n <nve-toggletip id=\"cross-root-toggletip\" hidden>cross root toggletip</nve-toggletip>\n <slot></slot>\n </template>\n</demo-shadow-root>\n<nve-button popovertarget=\"cross-root-toggletip\">cross root anchor</nve-button>\n",
|
|
110
|
+
"template": "<nve-button popovertarget=\"root-toggletip\">document root anchor</nve-button>\n<nve-toggletip id=\"root-toggletip\">document root toggletip</nve-toggletip>\n\n<demo-shadow-root style=\"visibility: visible !important\">\n <template shadowrootmode=\"open\">\n <nve-toggletip id=\"cross-root-toggletip\" hidden>cross root toggletip</nve-toggletip>\n <slot></slot>\n </template>\n</demo-shadow-root>\n<nve-button popovertarget=\"cross-root-toggletip\">cross root anchor</nve-button>\n",
|
|
111
111
|
"summary": "Toggletip anchored to elements across shadow DOM boundaries.",
|
|
112
112
|
"description": "",
|
|
113
113
|
"composition": false,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{
|
|
42
42
|
"id": "toolbar-groups",
|
|
43
43
|
"name": "Groups",
|
|
44
|
-
"template": "<nve-toolbar>\n <nve-select fit-text>\n <select aria-label=\"element type\">\n <option value=\"1\">Heading 1</option>\n <option value=\"2\">Heading 2</option>\n <option value=\"p\">Paragraph</option>\n </select>\n <div slot=\"option-1\">\n <span nve-text=\"heading\">Heading 1</span>\n </div>\n <div slot=\"option-2\">\n <span nve-text=\"heading sm\">Heading 2</span>\n </div>\n <div slot=\"option-3\">\n <span nve-text=\"body sm\">Paragraph</span>\n </div>\n </nve-select>\n <nve-divider></nve-divider>\n <nve-button-group>\n <nve-icon-button pressed icon-name=\"bars-3-bottom-left\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-3-bottom-right\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-4\"></nve-icon-button>\n </nve-button-group>\n <nve-divider></nve-divider>\n <nve-button-group>\n <nve-icon-button icon-name=\"bold\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"italic\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"strikethrough\" size=\"sm\"></nve-icon-button>\n </nve-button-group>\n <nve-divider></nve-divider>\n <nve-button-group>\n <nve-icon-button icon-name=\"code\"></nve-icon-button>\n <nve-icon-button icon-name=\"fork\"></nve-icon-button>\n <nve-icon-button icon-name=\"merge\"></nve-icon-button>\n </nve-button-group>\n <nve-button slot=\"suffix\" container=\"flat\">Save</nve-button>\n</nve-toolbar>\n",
|
|
44
|
+
"template": "<nve-toolbar>\n <nve-select fit-text>\n <select aria-label=\"element type\">\n <option value=\"1\">Heading 1</option>\n <option value=\"2\">Heading 2</option>\n <option value=\"p\">Paragraph</option>\n </select>\n <div slot=\"option-1\">\n <span nve-text=\"heading\">Heading 1</span>\n </div>\n <div slot=\"option-2\">\n <span nve-text=\"heading sm\">Heading 2</span>\n </div>\n <div slot=\"option-3\">\n <span nve-text=\"body sm\">Paragraph</span>\n </div>\n </nve-select>\n\n <nve-divider></nve-divider>\n\n <nve-button-group>\n <nve-icon-button pressed icon-name=\"bars-3-bottom-left\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-3-bottom-right\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-4\"></nve-icon-button>\n </nve-button-group>\n\n <nve-divider></nve-divider>\n\n <nve-button-group>\n <nve-icon-button icon-name=\"bold\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"italic\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"strikethrough\" size=\"sm\"></nve-icon-button>\n </nve-button-group>\n\n <nve-divider></nve-divider>\n\n <nve-button-group>\n <nve-icon-button icon-name=\"code\"></nve-icon-button>\n <nve-icon-button icon-name=\"fork\"></nve-icon-button>\n <nve-icon-button icon-name=\"merge\"></nve-icon-button>\n </nve-button-group>\n\n <nve-button slot=\"suffix\" container=\"flat\">Save</nve-button>\n</nve-toolbar>\n",
|
|
45
45
|
"summary": "Complex toolbar with grouped controls including select dropdowns, button groups, and dividers for text editing scenarios.",
|
|
46
46
|
"description": "",
|
|
47
47
|
"composition": true,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
{
|
|
51
51
|
"id": "toolbar-vertical",
|
|
52
52
|
"name": "Vertical",
|
|
53
|
-
"template": "<nve-toolbar orientation=\"vertical\">\n <nve-button-group>\n <nve-icon-button pressed icon-name=\"bars-3-bottom-left\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-3-bottom-right\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-4\"></nve-icon-button>\n </nve-button-group>\n <nve-divider></nve-divider>\n <nve-button-group>\n <nve-icon-button icon-name=\"bold\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"italic\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"strikethrough\"></nve-icon-button>\n </nve-button-group>\n</nve-toolbar>\n",
|
|
53
|
+
"template": "<nve-toolbar orientation=\"vertical\">\n <nve-button-group>\n <nve-icon-button pressed icon-name=\"bars-3-bottom-left\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-3-bottom-right\"></nve-icon-button>\n <nve-icon-button icon-name=\"bars-4\"></nve-icon-button>\n </nve-button-group>\n\n <nve-divider></nve-divider>\n\n <nve-button-group>\n <nve-icon-button icon-name=\"bold\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"italic\" size=\"sm\"></nve-icon-button>\n <nve-icon-button icon-name=\"strikethrough\"></nve-icon-button>\n </nve-button-group>\n</nve-toolbar>\n",
|
|
54
54
|
"summary": "Vertical toolbar orientation with button groups and dividers for sidebar layouts.",
|
|
55
55
|
"description": "",
|
|
56
56
|
"composition": true,
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
{
|
|
60
60
|
"id": "toolbar-status",
|
|
61
61
|
"name": "Status",
|
|
62
|
-
"template": "<div nve-layout=\"column gap:lg align:horizontal-stretch full\">\n <nve-toolbar status=\"accent\">\n <nve-icon-button icon-name=\"cancel\" slot=\"prefix\"></nve-icon-button>\n <p nve-text=\"body\">123 selected</p>\n <nve-button slot=\"suffix\">delete</nve-button>\n <nve-icon-button icon-name=\"more-actions\" slot=\"suffix\"></nve-icon-button>\n </nve-toolbar>\n <nve-toolbar>\n <nve-icon-button icon-name=\"cancel\" slot=\"prefix\"></nve-icon-button>\n <p nve-text=\"body\">123 selected</p>\n <nve-button slot=\"suffix\">delete</nve-button>\n <nve-icon-button icon-name=\"more-actions\" slot=\"suffix\"></nve-icon-button>\n </nve-toolbar>\n</div>\n",
|
|
62
|
+
"template": "<div nve-layout=\"column gap:lg align:horizontal-stretch full\">\n <nve-toolbar status=\"accent\">\n <nve-icon-button icon-name=\"cancel\" slot=\"prefix\"></nve-icon-button>\n <p nve-text=\"body\">123 selected</p>\n <nve-button slot=\"suffix\">delete</nve-button>\n <nve-icon-button icon-name=\"more-actions\" slot=\"suffix\"></nve-icon-button>\n </nve-toolbar>\n\n <nve-toolbar>\n <nve-icon-button icon-name=\"cancel\" slot=\"prefix\"></nve-icon-button>\n <p nve-text=\"body\">123 selected</p>\n <nve-button slot=\"suffix\">delete</nve-button>\n <nve-icon-button icon-name=\"more-actions\" slot=\"suffix\"></nve-icon-button>\n </nve-toolbar>\n</div>\n",
|
|
63
63
|
"summary": "Toolbar with status styling showing selection state with accent status and default status variants for bulk actions.",
|
|
64
64
|
"description": "",
|
|
65
65
|
"composition": true,
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
{
|
|
69
69
|
"id": "toolbar-container",
|
|
70
70
|
"name": "Container",
|
|
71
|
-
"template": "<div nve-layout=\"column gap:lg\">\n <nve-toolbar>\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n <nve-toolbar container=\"flat\">\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n <nve-toolbar container=\"inset\">\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n</div>\n",
|
|
71
|
+
"template": "<div nve-layout=\"column gap:lg\">\n <nve-toolbar>\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n\n <nve-toolbar container=\"flat\">\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n\n <nve-toolbar container=\"inset\">\n <nve-button><nve-icon name=\"copy\"></nve-icon> copy</nve-button>\n <nve-button><nve-icon name=\"copy\"></nve-icon></nve-button>\n <nve-icon-button icon-name=\"copy\"></nve-icon-button>\n <nve-copy-button></nve-copy-button>\n <nve-switch prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"switch\" />\n </nve-switch>\n <nve-checkbox prominence=\"muted\">\n <input type=\"checkbox\" checked aria-label=\"checkbox\" />\n </nve-checkbox>\n <nve-input>\n <input aria-label=\"input\" />\n </nve-input>\n </nve-toolbar>\n</div>\n",
|
|
72
72
|
"summary": "Example of toolbar containers and their different appearances with varying prominence levels.",
|
|
73
73
|
"description": "",
|
|
74
74
|
"composition": true,
|
package/dist/toolbar/toolbar2.js
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
{
|
|
37
37
|
"id": "tooltip-alignment",
|
|
38
38
|
"name": "Alignment",
|
|
39
|
-
"template": "<nve-tooltip anchor=\"card\" position=\"top\" alignment=\"start\">top start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"top\">top center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"top\" alignment=\"end\">top end</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"right\" alignment=\"start\">right start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"right\">right center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"right\" alignment=\"end\">right end</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"bottom\" alignment=\"start\">bottom start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"bottom\">bottom center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"bottom\" alignment=\"end\">bottom end</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"left\" alignment=\"start\">left start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"left\">left center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"left\" alignment=\"end\">left end</nve-tooltip>\n<nve-card id=\"card\" style=\"width: 400px; height: 200px\"></nve-card>\n",
|
|
39
|
+
"template": "<nve-tooltip anchor=\"card\" position=\"top\" alignment=\"start\">top start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"top\">top center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"top\" alignment=\"end\">top end</nve-tooltip>\n\n<nve-tooltip anchor=\"card\" position=\"right\" alignment=\"start\">right start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"right\">right center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"right\" alignment=\"end\">right end</nve-tooltip>\n\n<nve-tooltip anchor=\"card\" position=\"bottom\" alignment=\"start\">bottom start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"bottom\">bottom center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"bottom\" alignment=\"end\">bottom end</nve-tooltip>\n\n<nve-tooltip anchor=\"card\" position=\"left\" alignment=\"start\">left start</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"left\">left center</nve-tooltip>\n<nve-tooltip anchor=\"card\" position=\"left\" alignment=\"end\">left end</nve-tooltip>\n\n<nve-card id=\"card\" style=\"width: 400px; height: 200px\"></nve-card>\n",
|
|
40
40
|
"summary": "Fine-grained tooltip alignment combined with positioning for precise placement control. Use to align tooltips to specific edges of trigger elements, improving visual hierarchy and reducing overlap with other UI elements.",
|
|
41
41
|
"description": "",
|
|
42
42
|
"composition": false,
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
{
|
|
66
66
|
"id": "tooltip-dynamic-trigger",
|
|
67
67
|
"name": "DynamicTrigger",
|
|
68
|
-
"template": "<nve-tooltip id=\"dynamic-popover\"></nve-tooltip>\n<div nve-layout=\"row gap:sm align:center\">\n <nve-button interestfor=\"dynamic-popover\">one</nve-button>\n <nve-button interestfor=\"dynamic-popover\">two</nve-button>\n <nve-button interestfor=\"dynamic-popover\">three</nve-button>\n</div>\n<script type=\"module\">\n document.querySelector(\"#dynamic-popover\").addEventListener(\"toggle\", (e) => {\n if (e.newState === \"open\") {\n e.target.textContent = \"tooltip \" + e.source.textContent;\n }\n });\n</script>\n",
|
|
68
|
+
"template": "<nve-tooltip id=\"dynamic-popover\"></nve-tooltip>\n\n<div nve-layout=\"row gap:sm align:center\">\n <nve-button interestfor=\"dynamic-popover\">one</nve-button>\n <nve-button interestfor=\"dynamic-popover\">two</nve-button>\n <nve-button interestfor=\"dynamic-popover\">three</nve-button>\n</div>\n\n<script type=\"module\">\n document.querySelector(\"#dynamic-popover\").addEventListener(\"toggle\", (e) => {\n if (e.newState === \"open\") {\n e.target.textContent = \"tooltip \" + e.source.textContent;\n }\n });\n</script>\n",
|
|
69
69
|
"summary": "Single tooltip shared across many triggers with dynamic content updates. Use to reduce DOM nodes and improve performance when many similar elements need contextual help, updating tooltip content based on which trigger activated it.",
|
|
70
70
|
"description": "",
|
|
71
71
|
"composition": false,
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
{
|
|
104
104
|
"id": "tooltip-async-trigger",
|
|
105
105
|
"name": "AsyncTrigger",
|
|
106
|
-
"template": "
|
|
106
|
+
"template": "<div id=\"async-trigger-demo\">\n <nve-tooltip id=\"tooltip\">hello there</nve-tooltip>\n <template><nve-button interestfor=\"tooltip\">button</nve-button></template>\n</div>\n<script type=\"module\">\n import \"@nvidia-elements/core/button/define.js\";\n import \"@nvidia-elements/core/tooltip/define.js\";\n const template = document.querySelector(\"#async-trigger-demo template\");\n const instance = template.content.cloneNode(true);\n setTimeout(() => {\n document.querySelector(\"#async-trigger-demo\").appendChild(instance);\n }, 1000);\n</script>\n",
|
|
107
107
|
"summary": "Tooltip anchoring to a dynamically created anchor element.",
|
|
108
108
|
"description": "",
|
|
109
109
|
"composition": false,
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
{
|
|
126
126
|
"id": "tooltip-scroll-container",
|
|
127
127
|
"name": "ScrollContainer",
|
|
128
|
-
"template": "<style>\n #scroll-container {\n display: flex;\n flex-direction: column;\n height: 300px;\n width: 200px;\n overflow-y: auto;\n border: 1px solid #ccc;\n margin: 20vh;\n & > button {\n min-height: 50px;\n width: 100%;\n }\n }\n</style>\n<section id=\"scroll-container\">\n <button interestfor=\"tooltip\">1</button>\n <button interestfor=\"tooltip\">2</button>\n <button interestfor=\"tooltip\">3</button>\n <button interestfor=\"tooltip\">4</button>\n <button interestfor=\"tooltip\">5</button>\n <button interestfor=\"tooltip\">6</button>\n <button interestfor=\"tooltip\">7</button>\n <button interestfor=\"tooltip\">8</button>\n <button interestfor=\"tooltip\">9</button>\n <button interestfor=\"tooltip\">10</button>\n</section>\n<nve-tooltip id=\"tooltip\" position=\"left\">hello there</nve-tooltip>\n",
|
|
128
|
+
"template": "<style>\n #scroll-container {\n display: flex;\n flex-direction: column;\n height: 300px;\n width: 200px;\n overflow-y: auto;\n border: 1px solid #ccc;\n margin: 20vh;\n\n & > button {\n min-height: 50px;\n width: 100%;\n }\n }\n</style>\n<section id=\"scroll-container\">\n <button interestfor=\"tooltip\">1</button>\n <button interestfor=\"tooltip\">2</button>\n <button interestfor=\"tooltip\">3</button>\n <button interestfor=\"tooltip\">4</button>\n <button interestfor=\"tooltip\">5</button>\n <button interestfor=\"tooltip\">6</button>\n <button interestfor=\"tooltip\">7</button>\n <button interestfor=\"tooltip\">8</button>\n <button interestfor=\"tooltip\">9</button>\n <button interestfor=\"tooltip\">10</button>\n</section>\n<nve-tooltip id=\"tooltip\" position=\"left\">hello there</nve-tooltip>\n",
|
|
129
129
|
"summary": "Tooltip behavior within scrollable containers with automatic repositioning. Tooltips maintain visibility and proper positioning even when anchor elements scroll, ensuring consistent user experience in scrollable interfaces.",
|
|
130
130
|
"description": "",
|
|
131
131
|
"composition": false,
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
{
|
|
185
185
|
"id": "tooltip-legacy-open-delay",
|
|
186
186
|
"name": "LegacyOpenDelay",
|
|
187
|
-
"template": "<nve-tooltip behavior-trigger anchor=\"delay-tooltip-1\" trigger=\"delay-tooltip-1\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-1\">button</nve-button>\n<nve-tooltip behavior-trigger anchor=\"delay-tooltip-2\" trigger=\"delay-tooltip-2\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-2\">button</nve-button>\n<nve-tooltip behavior-trigger anchor=\"delay-tooltip-3\" trigger=\"delay-tooltip-3\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-3\">button</nve-button>\n",
|
|
187
|
+
"template": "<nve-tooltip behavior-trigger anchor=\"delay-tooltip-1\" trigger=\"delay-tooltip-1\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-1\">button</nve-button>\n\n<nve-tooltip behavior-trigger anchor=\"delay-tooltip-2\" trigger=\"delay-tooltip-2\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-2\">button</nve-button>\n\n<nve-tooltip behavior-trigger anchor=\"delay-tooltip-3\" trigger=\"delay-tooltip-3\" open-delay=\"500\" hidden>delayed tooltip</nve-tooltip>\n<nve-button id=\"delay-tooltip-3\">button</nve-button>\n",
|
|
188
188
|
"summary": "Legacy implementation combining behavior-trigger with open-delay for many tooltips. Older pattern for delayed tooltip appearance; prefer modern popovertarget with open-delay attribute.",
|
|
189
189
|
"description": "",
|
|
190
190
|
"deprecated": true,
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
{
|
|
217
217
|
"id": "tooltip-interest-invokers",
|
|
218
218
|
"name": "InterestInvokers",
|
|
219
|
-
"template": "<section nve-layout=\"row gap:md align:center\">\n <button popovertarget=\"dropdown\" interestfor=\"tooltip\">open</button>\n <nve-button popovertarget=\"dropdown\" interestfor=\"tooltip\">open</nve-button>\n <nve-dropdown id=\"dropdown\">dropdown content</nve-dropdown>\n <nve-tooltip id=\"tooltip\">tooltip content</nve-tooltip>\n <div id=\"div\">static</div>\n <nve-tooltip trigger=\"div\" hidden>static</nve-tooltip>\n</section>\n",
|
|
219
|
+
"template": "<section nve-layout=\"row gap:md align:center\">\n <button popovertarget=\"dropdown\" interestfor=\"tooltip\">open</button>\n <nve-button popovertarget=\"dropdown\" interestfor=\"tooltip\">open</nve-button>\n <nve-dropdown id=\"dropdown\">dropdown content</nve-dropdown>\n <nve-tooltip id=\"tooltip\">tooltip content</nve-tooltip>\n\n <div id=\"div\">static</div>\n <nve-tooltip trigger=\"div\" hidden>static</nve-tooltip>\n</section>\n",
|
|
220
220
|
"summary": "Tooltip functionality using interest invokers to control tooltip visibility on hover and focus.",
|
|
221
221
|
"description": "",
|
|
222
222
|
"composition": true,
|
package/dist/tooltip/tooltip2.js
CHANGED
package/dist/tree/tree-node2.js
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
{
|
|
80
80
|
"id": "tree-node-content",
|
|
81
81
|
"name": "NodeContent",
|
|
82
|
-
"template": "<nve-tree selectable=\"multi\" border behavior-expand behavior-select>\n <nve-tree-node expanded>\n text content\n <nve-tree-node>\n <a href=\".\" nve-text=\"link\">node link</a>\n </nve-tree-node>\n <nve-tree-node> inline content <nve-dot status=\"success\" size=\"sm\"></nve-dot> </nve-tree-node>\n <nve-tree-node>\n <div nve-text=\"body sm muted\" nve-layout=\"pad-bottom:xs\">block</div>\n <p nve-text=\"body sm\">content</p>\n </nve-tree-node>\n <nve-tree-node>\n long form content\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n interactive content\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <p nve-text=\"body sm\">This is some longer content in a tree node.</p>\n <nve-button>hello there</nve-button>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n input control\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <nve-input>\n <label>label</label>\n <input type=\"text\" />\n </nve-input>\n <nve-input>\n <label>label</label>\n <input type=\"text\" />\n </nve-input>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n node content checkbox group\n <nve-checkbox-group slot=\"content\">\n <label>label</label>\n <nve-checkbox>\n <label>checkbox 1</label>\n <input type=\"checkbox\" checked />\n </nve-checkbox>\n <nve-checkbox>\n <label>checkbox 2</label>\n <input type=\"checkbox\" />\n </nve-checkbox>\n <nve-checkbox>\n <label>checkbox 3</label>\n <input type=\"checkbox\" />\n </nve-checkbox>\n </nve-checkbox-group>\n </nve-tree-node>\n <nve-tree-node>\n node content radio group\n <nve-radio-group slot=\"content\">\n <label>label</label>\n <nve-radio>\n <label>radio 1</label>\n <input type=\"radio\" checked />\n </nve-radio>\n <nve-radio>\n <label>radio 2</label>\n <input type=\"radio\" />\n </nve-radio>\n <nve-radio>\n <label>radio 3</label>\n <input type=\"radio\" />\n </nve-radio>\n </nve-radio-group>\n </nve-tree-node>\n </nve-tree-node>\n</nve-tree>\n",
|
|
82
|
+
"template": "<nve-tree selectable=\"multi\" border behavior-expand behavior-select>\n <nve-tree-node expanded>\n text content\n <nve-tree-node>\n <a href=\".\" nve-text=\"link\">node link</a>\n </nve-tree-node>\n <nve-tree-node> inline content <nve-dot status=\"success\" size=\"sm\"></nve-dot> </nve-tree-node>\n <nve-tree-node>\n <div nve-text=\"body sm muted\" nve-layout=\"pad-bottom:xs\">block</div>\n <p nve-text=\"body sm\">content</p>\n </nve-tree-node>\n <nve-tree-node>\n long form content\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n <a href=\"#\" nve-text=\"link\">This is some longer content in a tree node.</a>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n interactive content\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <p nve-text=\"body sm\">This is some longer content in a tree node.</p>\n <nve-button>hello there</nve-button>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n input control\n <div slot=\"content\" nve-layout=\"column gap:sm\">\n <nve-input>\n <label>label</label>\n <input type=\"text\" />\n </nve-input>\n <nve-input>\n <label>label</label>\n <input type=\"text\" />\n </nve-input>\n </div>\n </nve-tree-node>\n <nve-tree-node>\n node content checkbox group\n <nve-checkbox-group slot=\"content\">\n <label>label</label>\n <nve-checkbox>\n <label>checkbox 1</label>\n <input type=\"checkbox\" checked />\n </nve-checkbox>\n\n <nve-checkbox>\n <label>checkbox 2</label>\n <input type=\"checkbox\" />\n </nve-checkbox>\n\n <nve-checkbox>\n <label>checkbox 3</label>\n <input type=\"checkbox\" />\n </nve-checkbox>\n </nve-checkbox-group>\n </nve-tree-node>\n <nve-tree-node>\n node content radio group\n <nve-radio-group slot=\"content\">\n <label>label</label>\n <nve-radio>\n <label>radio 1</label>\n <input type=\"radio\" checked />\n </nve-radio>\n\n <nve-radio>\n <label>radio 2</label>\n <input type=\"radio\" />\n </nve-radio>\n\n <nve-radio>\n <label>radio 3</label>\n <input type=\"radio\" />\n </nve-radio>\n </nve-radio-group>\n </nve-tree-node>\n </nve-tree-node>\n</nve-tree>\n",
|
|
83
83
|
"summary": "Tree with rich node content including forms, controls, and interactive elements, enabling complex data management within hierarchical structures.",
|
|
84
84
|
"description": "",
|
|
85
85
|
"composition": true,
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
{
|
|
111
111
|
"id": "tree-bulk-creation",
|
|
112
112
|
"name": "BulkCreation",
|
|
113
|
-
"template": "<nve-tree>\n <nve-tree-node id=\"root\" expandable>Test</nve-tree-node>\n</nve-tree>\n<script type=\"module\">\n const rootEl = document.querySelector(\"nve-tree-node#root\");\n rootEl.addEventListener(\"open\", () => {\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < 400; i++) {\n rootEl.expanded = true;\n const childEl = document.createElement(\"nve-tree-node\");\n childEl.innerText = \"Child \" + i;\n fragment.append(childEl);\n }\n rootEl.append(fragment);\n });\n rootEl.addEventListener(\"close\", () => {\n rootEl.expanded = false;\n rootEl.replaceChildren(document.createTextNode(\"Test\"));\n });\n</script>\n",
|
|
113
|
+
"template": "<nve-tree>\n <nve-tree-node id=\"root\" expandable>Test</nve-tree-node>\n</nve-tree>\n<script type=\"module\">\n const rootEl = document.querySelector(\"nve-tree-node#root\");\n\n rootEl.addEventListener(\"open\", () => {\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < 400; i++) {\n rootEl.expanded = true;\n const childEl = document.createElement(\"nve-tree-node\");\n childEl.innerText = \"Child \" + i;\n fragment.append(childEl);\n }\n rootEl.append(fragment);\n });\n\n rootEl.addEventListener(\"close\", () => {\n rootEl.expanded = false;\n rootEl.replaceChildren(document.createTextNode(\"Test\"));\n });\n</script>\n",
|
|
114
114
|
"summary": "Tree with bulk node creation for performance testing, verifying efficient handling of large numbers of nodes and dynamic expansion.",
|
|
115
115
|
"description": "",
|
|
116
116
|
"composition": false,
|
package/dist/tree/tree2.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
{
|
|
6
6
|
"id": "viewport",
|
|
7
7
|
"name": "Default",
|
|
8
|
-
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n <nve-viewport-minimap></nve-viewport-minimap>\n</nve-viewport>\n",
|
|
8
|
+
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n\n <nve-viewport-minimap></nve-viewport-minimap>\n</nve-viewport>\n",
|
|
9
9
|
"summary": "Auto-fit a bounded SVG with direct pan and zoom; the minimap represents its single content root as one rectangle.",
|
|
10
10
|
"description": "",
|
|
11
11
|
"composition": false,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{
|
|
15
15
|
"id": "viewport-minimap",
|
|
16
16
|
"name": "Minimap",
|
|
17
|
-
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n <nve-viewport-minimap>\n <svg slot=\"preview\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n </svg>\n </nve-viewport-minimap>\n</nve-viewport>\n",
|
|
17
|
+
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n\n <nve-viewport-minimap>\n <svg slot=\"preview\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n </svg>\n </nve-viewport-minimap>\n</nve-viewport>\n",
|
|
18
18
|
"summary": "Provide custom minimap content to replace the default bounding boxes with a simplified representation of the viewport content.",
|
|
19
19
|
"description": "",
|
|
20
20
|
"composition": false,
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
{
|
|
24
24
|
"id": "viewport-interactive-content",
|
|
25
25
|
"name": "InteractiveContent",
|
|
26
|
-
"template": "<nve-viewport x=\"-20\" y=\"-20\" scale=\"0.9\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines step=\"20\" target-spacing=\"72\"></nve-viewport-gridlines>\n <nve-card style=\"position: absolute; left: 280px; top: 110px; width: 300px\">\n <nve-card-header>\n <h2 nve-text=\"heading sm bold\">Viewport content</h2>\n </nve-card-header>\n <nve-card-content>\n <nve-input>\n <label>Label</label>\n <input value=\"Editable value\" />\n </nve-input>\n </nve-card-content>\n </nve-card>\n</nve-viewport>\n",
|
|
26
|
+
"template": "<nve-viewport x=\"-20\" y=\"-20\" scale=\"0.9\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines step=\"20\" target-spacing=\"72\"></nve-viewport-gridlines>\n\n <nve-card style=\"position: absolute; left: 280px; top: 110px; width: 300px\">\n <nve-card-header>\n <h2 nve-text=\"heading sm bold\">Viewport content</h2>\n </nve-card-header>\n <nve-card-content>\n <nve-input>\n <label>Label</label>\n <input value=\"Editable value\" />\n </nve-input>\n </nve-card-content>\n </nve-card>\n</nve-viewport>\n",
|
|
27
27
|
"summary": "Place native and Elements controls inside a viewport without losing their standard interactions.",
|
|
28
28
|
"description": "",
|
|
29
29
|
"composition": true,
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
{
|
|
33
33
|
"id": "viewport-pan-with-space",
|
|
34
34
|
"name": "PanWithSpace",
|
|
35
|
-
"template": "<style>\n #viewport-space-pan-card {\n cursor: var(--drag-cursor, auto);\n }\n #viewport-space-pan-card:hover {\n --drag-cursor: grab;\n }\n #viewport-space-pan-card[data-dragging] {\n --background: var(--nve-sys-layer-overlay-background);\n --box-shadow: var(--nve-ref-shadow-300);\n --drag-cursor: grabbing;\n }\n</style>\n<div nve-layout=\"column align:horizontal-stretch\" style=\"height: 420px\">\n <nve-alert-group status=\"accent\">\n <nve-alert>\n <p nve-text=\"body sm medium\">Pan the viewport with <kbd nve-text=\"code\">Space</kbd>, or using the middle mouse button.</p>\n </nve-alert>\n </nve-alert-group>\n <nve-viewport id=\"viewport-space-pan-demo\" behavior-pan=\"space\" behavior-zoom style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines step=\"20\"></nve-viewport-gridlines>\n <nve-card id=\"viewport-space-pan-card\" data-draggable-card data-card-drag-handle style=\"position: absolute; left: 290px; top: 120px; width: 300px\">\n <nve-card-header>\n <h2 nve-text=\"heading sm bold\">Drag this card</h2>\n </nve-card-header>\n <nve-card-content>\n <p nve-text=\"body relaxed\" nve-layout=\"pad:md\" style=\"text-align: center\">Application-defined dragging remains independent in this mode.</p>\n </nve-card-content>\n </nve-card>\n </nve-viewport>\n</div>\n<script type=\"module\">\n const viewport = document.querySelector(\"#viewport-space-pan-demo\");\n const handles = viewport.querySelectorAll(\"[data-card-drag-handle]\");\n handles.forEach((handle) => {\n const card = handle.closest(\"[data-draggable-card]\");\n let pointerId;\n let startClientX;\n let startClientY;\n let startLeft;\n let startTop;\n const finishDrag = (event) => {\n if (event.pointerId !== pointerId) return;\n pointerId = undefined;\n card.removeAttribute(\"data-dragging\");\n };\n handle.addEventListener(\"pointerdown\", (event) => {\n if ((event.pointerType !== \"mouse\" && event.pointerType !== \"pen\") || event.button !== 0 || event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n pointerId = event.pointerId;\n startClientX = event.clientX;\n startClientY = event.clientY;\n startLeft = Number.parseFloat(card.style.left);\n startTop = Number.parseFloat(card.style.top);\n card.setAttribute(\"data-dragging\", \"\");\n handle.setPointerCapture(pointerId);\n });\n handle.addEventListener(\"pointermove\", (event) => {\n if (event.pointerId !== pointerId) return;\n card.style.left = startLeft + (event.clientX - startClientX) / viewport.scale + \"px\";\n card.style.top = startTop + (event.clientY - startClientY) / viewport.scale + \"px\";\n event.preventDefault();\n });\n handle.addEventListener(\"pointerup\", finishDrag);\n handle.addEventListener(\"pointercancel\", finishDrag);\n handle.addEventListener(\"lostpointercapture\", finishDrag);\n });\n</script>\n",
|
|
35
|
+
"template": "<style>\n #viewport-space-pan-card {\n cursor: var(--drag-cursor, auto);\n }\n\n #viewport-space-pan-card:hover {\n --drag-cursor: grab;\n }\n\n #viewport-space-pan-card[data-dragging] {\n --background: var(--nve-sys-layer-overlay-background);\n --box-shadow: var(--nve-ref-shadow-300);\n --drag-cursor: grabbing;\n }\n</style>\n\n<div nve-layout=\"column align:horizontal-stretch\" style=\"height: 420px\">\n <nve-alert-group status=\"accent\">\n <nve-alert>\n <p nve-text=\"body sm medium\">Pan the viewport with <kbd nve-text=\"code\">Space</kbd>, or using the middle mouse button.</p>\n </nve-alert>\n </nve-alert-group>\n\n <nve-viewport id=\"viewport-space-pan-demo\" behavior-pan=\"space\" behavior-zoom style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines step=\"20\"></nve-viewport-gridlines>\n\n <nve-card id=\"viewport-space-pan-card\" data-draggable-card data-card-drag-handle style=\"position: absolute; left: 290px; top: 120px; width: 300px\">\n <nve-card-header>\n <h2 nve-text=\"heading sm bold\">Drag this card</h2>\n </nve-card-header>\n <nve-card-content>\n <p nve-text=\"body relaxed\" nve-layout=\"pad:md\" style=\"text-align: center\">Application-defined dragging remains independent in this mode.</p>\n </nve-card-content>\n </nve-card>\n </nve-viewport>\n</div>\n\n<script type=\"module\">\n const viewport = document.querySelector(\"#viewport-space-pan-demo\");\n const handles = viewport.querySelectorAll(\"[data-card-drag-handle]\");\n\n handles.forEach((handle) => {\n const card = handle.closest(\"[data-draggable-card]\");\n let pointerId;\n let startClientX;\n let startClientY;\n let startLeft;\n let startTop;\n\n const finishDrag = (event) => {\n if (event.pointerId !== pointerId) return;\n pointerId = undefined;\n card.removeAttribute(\"data-dragging\");\n };\n\n handle.addEventListener(\"pointerdown\", (event) => {\n if ((event.pointerType !== \"mouse\" && event.pointerType !== \"pen\") || event.button !== 0 || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n pointerId = event.pointerId;\n startClientX = event.clientX;\n startClientY = event.clientY;\n startLeft = Number.parseFloat(card.style.left);\n startTop = Number.parseFloat(card.style.top);\n card.setAttribute(\"data-dragging\", \"\");\n handle.setPointerCapture(pointerId);\n });\n\n handle.addEventListener(\"pointermove\", (event) => {\n if (event.pointerId !== pointerId) return;\n\n card.style.left = startLeft + (event.clientX - startClientX) / viewport.scale + \"px\";\n card.style.top = startTop + (event.clientY - startClientY) / viewport.scale + \"px\";\n event.preventDefault();\n });\n\n handle.addEventListener(\"pointerup\", finishDrag);\n handle.addEventListener(\"pointercancel\", finishDrag);\n handle.addEventListener(\"lostpointercapture\", finishDrag);\n });\n</script>\n",
|
|
36
36
|
"summary": "Configure panning to require Space when application content needs to handle its own drag interactions.",
|
|
37
37
|
"description": "",
|
|
38
38
|
"composition": true,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{
|
|
42
42
|
"id": "viewport-commands",
|
|
43
43
|
"name": "Commands",
|
|
44
|
-
"template": "<div nve-layout=\"column align:horizontal-stretch\" style=\"height: 420px\">\n <nve-toolbar aria-label=\"Viewport navigation controls\">\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-left\" aria-label=\"Pan left\">←</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-up\" aria-label=\"Pan up\">↑</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-down\" aria-label=\"Pan down\">↓</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-right\" aria-label=\"Pan right\">→</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-out\" aria-label=\"Zoom out\">−</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-reset\">100%</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-in\" aria-label=\"Zoom in\">+</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-to-fit\">Fit</nve-button>\n </nve-toolbar>\n <nve-viewport id=\"viewport-command-demo\" autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n </nve-viewport>\n</div>\n",
|
|
44
|
+
"template": "<div nve-layout=\"column align:horizontal-stretch\" style=\"height: 420px\">\n <nve-toolbar aria-label=\"Viewport navigation controls\">\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-left\" aria-label=\"Pan left\">←</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-up\" aria-label=\"Pan up\">↑</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-down\" aria-label=\"Pan down\">↓</nve-button>\n <nve-button commandfor=\"viewport-command-demo\" command=\"--pan-right\" aria-label=\"Pan right\">→</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-out\" aria-label=\"Zoom out\">−</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-reset\">100%</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-in\" aria-label=\"Zoom in\">+</nve-button>\n <nve-button slot=\"suffix\" commandfor=\"viewport-command-demo\" command=\"--zoom-to-fit\">Fit</nve-button>\n </nve-toolbar>\n\n <nve-viewport id=\"viewport-command-demo\" autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines></nve-viewport-gridlines>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n </nve-viewport>\n</div>\n",
|
|
45
45
|
"summary": "Use external controls with `commandfor` to invoke viewport pan, zoom, reset, and fit commands.",
|
|
46
46
|
"description": "",
|
|
47
47
|
"composition": true,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
{
|
|
51
51
|
"id": "viewport-programmatic-navigation",
|
|
52
52
|
"name": "ProgrammaticNavigation",
|
|
53
|
-
"template": "<div nve-layout=\"column gap:sm align:horizontal-stretch\" style=\"height: 420px\">\n <div nve-layout=\"row align:center\">\n <nve-button-group container=\"rounded\" behavior-select=\"single\" aria-label=\"Navigate to workflow region\">\n <nve-button data-viewport-region=\"viewport-region-ingest\">Ingest</nve-button>\n <nve-button data-viewport-region=\"viewport-region-train\">Train</nve-button>\n <nve-button data-viewport-region=\"viewport-region-deploy\">Deploy</nve-button>\n </nve-button-group>\n </div>\n <nve-viewport id=\"viewport-reveal-demo\" autofit fit-inset=\"24\" style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines step=\"40\"></nve-viewport-gridlines>\n <svg aria-hidden=\"true\" width=\"500\" height=\"320\" viewBox=\"0 0 500 320\" style=\"position: absolute; left: 380px; top: 144px\">\n <path d=\"M 0 0 C 50 0 50 160 100 160 M 400 160 C 450 160 450 320 500 320\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"4\"></path>\n </svg>\n <nve-card id=\"viewport-region-ingest\" style=\"position: absolute; left: 80px; top: 80px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Ingest</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Validate and prepare the dataset.</p>\n </nve-card-content>\n </nve-card>\n <nve-card id=\"viewport-region-train\" style=\"position: absolute; left: 480px; top: 240px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Train</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Run and compare model experiments.</p>\n </nve-card-content>\n </nve-card>\n <nve-card id=\"viewport-region-deploy\" style=\"position: absolute; left: 880px; top: 400px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Deploy</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Promote the selected model.</p>\n </nve-card-content>\n </nve-card>\n </nve-viewport>\n</div>\n<script type=\"module\">\n const viewport = document.querySelector(\"#viewport-reveal-demo\");\n const buttons = Array.from(document.querySelectorAll(\"[data-viewport-region]\"));\n const framing = 80;\n buttons.forEach((button) => {\n button.addEventListener(\"click\", () => {\n const region = viewport.querySelector(\"#\" + button.dataset.viewportRegion);\n viewport.reveal(\n {\n x: region.offsetLeft - framing,\n y: region.offsetTop - framing,\n width: region.offsetWidth + framing * 2,\n height: region.offsetHeight + framing * 2,\n },\n { animated: true, duration: 500 },\n );\n });\n });\n</script>\n",
|
|
53
|
+
"template": "<div nve-layout=\"column gap:sm align:horizontal-stretch\" style=\"height: 420px\">\n <div nve-layout=\"row align:center\">\n <nve-button-group container=\"rounded\" behavior-select=\"single\" aria-label=\"Navigate to workflow region\">\n <nve-button data-viewport-region=\"viewport-region-ingest\">Ingest</nve-button>\n <nve-button data-viewport-region=\"viewport-region-train\">Train</nve-button>\n <nve-button data-viewport-region=\"viewport-region-deploy\">Deploy</nve-button>\n </nve-button-group>\n </div>\n\n <nve-viewport id=\"viewport-reveal-demo\" autofit fit-inset=\"24\" style=\"flex: 1; --min-height: 0\">\n <nve-viewport-gridlines step=\"40\"></nve-viewport-gridlines>\n\n <svg aria-hidden=\"true\" width=\"500\" height=\"320\" viewBox=\"0 0 500 320\" style=\"position: absolute; left: 380px; top: 144px\">\n <path d=\"M 0 0 C 50 0 50 160 100 160 M 400 160 C 450 160 450 320 500 320\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"4\"></path>\n </svg>\n\n <nve-card id=\"viewport-region-ingest\" style=\"position: absolute; left: 80px; top: 80px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Ingest</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Validate and prepare the dataset.</p>\n </nve-card-content>\n </nve-card>\n <nve-card id=\"viewport-region-train\" style=\"position: absolute; left: 480px; top: 240px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Train</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Run and compare model experiments.</p>\n </nve-card-content>\n </nve-card>\n <nve-card id=\"viewport-region-deploy\" style=\"position: absolute; left: 880px; top: 400px; width: 320px\">\n <nve-card-header><h2 nve-text=\"heading sm bold\">Deploy</h2></nve-card-header>\n <nve-card-content>\n <p nve-text=\"body\" nve-layout=\"pad:md\" style=\"text-align: center\">Promote the selected model.</p>\n </nve-card-content>\n </nve-card>\n </nve-viewport>\n</div>\n\n<script type=\"module\">\n const viewport = document.querySelector(\"#viewport-reveal-demo\");\n const buttons = Array.from(document.querySelectorAll(\"[data-viewport-region]\"));\n const framing = 80;\n\n buttons.forEach((button) => {\n button.addEventListener(\"click\", () => {\n const region = viewport.querySelector(\"#\" + button.dataset.viewportRegion);\n viewport.reveal(\n {\n x: region.offsetLeft - framing,\n y: region.offsetTop - framing,\n width: region.offsetWidth + framing * 2,\n height: region.offsetHeight + framing * 2,\n },\n { animated: true, duration: 500 },\n );\n });\n });\n</script>\n",
|
|
54
54
|
"summary": "Viewport navigation helpers let application logic animate specific content regions into view.",
|
|
55
55
|
"description": "",
|
|
56
56
|
"composition": true,
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
{
|
|
60
60
|
"id": "viewport-dots",
|
|
61
61
|
"name": "Dots",
|
|
62
|
-
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines pattern=\"dots\"></nve-viewport-gridlines>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
62
|
+
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines pattern=\"dots\"></nve-viewport-gridlines>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
63
63
|
"summary": "Optionally configure viewport grid lines to use dots instead of lines.",
|
|
64
64
|
"description": "",
|
|
65
65
|
"composition": false,
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
{
|
|
69
69
|
"id": "viewport-crosses",
|
|
70
70
|
"name": "Crosses",
|
|
71
|
-
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines pattern=\"crosses\"></nve-viewport-gridlines>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
71
|
+
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <nve-viewport-gridlines pattern=\"crosses\"></nve-viewport-gridlines>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
72
72
|
"summary": "Use crosses as spatial reference points to help users judge positions while keeping the content between them unobstructed.",
|
|
73
73
|
"description": "",
|
|
74
74
|
"composition": false,
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
{
|
|
78
78
|
"id": "viewport-background",
|
|
79
79
|
"name": "Background",
|
|
80
|
-
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <svg slot=\"background\" aria-hidden=\"true\" width=\"20480\" height=\"20480\" viewBox=\"-10240 -10240 20480 20480\" style=\"position: absolute; left: -10240px; top: -10240px\">\n <defs>\n <pattern id=\"viewport-background-triangles\" width=\"200\" height=\"200\" patternUnits=\"userSpaceOnUse\">\n <path d=\"M 0 0 H 200 V 200 M 0 0 L 200 200 M 0 200 L 200 0\" fill=\"none\" stroke=\"var(--nve-ref-border-color-muted)\" stroke-width=\"1.5\" vector-effect=\"non-scaling-stroke\"></path>\n </pattern>\n </defs>\n <rect x=\"-10240\" y=\"-10240\" width=\"20480\" height=\"20480\" fill=\"url(#viewport-background-triangles)\"></rect>\n </svg>\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
80
|
+
"template": "<nve-viewport autofit fit-inset=\"24\" behavior-pan behavior-zoom style=\"height: 420px\">\n <svg slot=\"background\" aria-hidden=\"true\" width=\"20480\" height=\"20480\" viewBox=\"-10240 -10240 20480 20480\" style=\"position: absolute; left: -10240px; top: -10240px\">\n <defs>\n <pattern id=\"viewport-background-triangles\" width=\"200\" height=\"200\" patternUnits=\"userSpaceOnUse\">\n <path d=\"M 0 0 H 200 V 200 M 0 0 L 200 200 M 0 200 L 200 0\" fill=\"none\" stroke=\"var(--nve-ref-border-color-muted)\" stroke-width=\"1.5\" vector-effect=\"non-scaling-stroke\"></path>\n </pattern>\n </defs>\n <rect x=\"-10240\" y=\"-10240\" width=\"20480\" height=\"20480\" fill=\"url(#viewport-background-triangles)\"></rect>\n </svg>\n\n <svg role=\"img\" aria-label=\"Three geometric forms in a spatial field\" width=\"900\" height=\"600\" viewBox=\"0 0 900 600\" style=\"position: absolute; left: 0; top: 0\">\n <circle cx=\"200\" cy=\"400\" r=\"100\" fill=\"var(--nve-ref-color-green-jade-600)\"></circle>\n <rect x=\"350\" y=\"100\" width=\"200\" height=\"200\" rx=\"50\" fill=\"var(--nve-ref-color-blue-cobalt-600)\"></rect>\n <path d=\"M 700 290 L 810 400 L 700 510 L 590 400 Z\" fill=\"var(--nve-ref-color-purple-lavender-600)\"></path>\n <rect x=\"1\" y=\"1\" width=\"898\" height=\"598\" rx=\"24\" fill=\"none\" stroke=\"var(--nve-ref-border-color-emphasis)\" stroke-width=\"2\" stroke-dasharray=\"32 20\" vector-effect=\"non-scaling-stroke\"></rect>\n </svg>\n</nve-viewport>\n",
|
|
81
81
|
"summary": "Place custom content in the background slot to provide a spatial reference without affecting content fitting.",
|
|
82
82
|
"description": "",
|
|
83
83
|
"composition": false,
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
{
|
|
24
24
|
"id": "week-vertical",
|
|
25
25
|
"name": "Vertical",
|
|
26
|
-
"template": "<div nve-layout=\"column gap:lg full\">\n <nve-week>\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n <nve-week>\n <label>disabled</label>\n <input type=\"week\" disabled />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n <nve-week>\n <label>success</label>\n <input type=\"week\" />\n <nve-control-message status=\"success\">message</nve-control-message>\n </nve-week>\n <nve-week>\n <label>error</label>\n <input type=\"week\" />\n <nve-control-message status=\"error\">message</nve-control-message>\n </nve-week>\n</div>\n",
|
|
26
|
+
"template": "<div nve-layout=\"column gap:lg full\">\n <nve-week>\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n\n <nve-week>\n <label>disabled</label>\n <input type=\"week\" disabled />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n\n <nve-week>\n <label>success</label>\n <input type=\"week\" />\n <nve-control-message status=\"success\">message</nve-control-message>\n </nve-week>\n\n <nve-week>\n <label>error</label>\n <input type=\"week\" />\n <nve-control-message status=\"error\">message</nve-control-message>\n </nve-week>\n</div>\n",
|
|
27
27
|
"summary": "Week pickers with vertical layout including validation states for disabled, success, and error.",
|
|
28
28
|
"description": "",
|
|
29
29
|
"composition": false,
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{
|
|
35
35
|
"id": "week-horizontal",
|
|
36
36
|
"name": "Horizontal",
|
|
37
|
-
"template": "<div nve-layout=\"column gap:lg full\">\n <nve-week layout=\"horizontal\">\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n <nve-week layout=\"horizontal\">\n <label>disabled</label>\n <input type=\"week\" disabled />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n <nve-week layout=\"horizontal\">\n <label>success</label>\n <input type=\"week\" />\n <nve-control-message status=\"success\">message</nve-control-message>\n </nve-week>\n <nve-week layout=\"horizontal\">\n <label>error</label>\n <input type=\"week\" />\n <nve-control-message status=\"error\">message</nve-control-message>\n </nve-week>\n</div>\n",
|
|
37
|
+
"template": "<div nve-layout=\"column gap:lg full\">\n <nve-week layout=\"horizontal\">\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n\n <nve-week layout=\"horizontal\">\n <label>disabled</label>\n <input type=\"week\" disabled />\n <nve-control-message>message</nve-control-message>\n </nve-week>\n\n <nve-week layout=\"horizontal\">\n <label>success</label>\n <input type=\"week\" />\n <nve-control-message status=\"success\">message</nve-control-message>\n </nve-week>\n\n <nve-week layout=\"horizontal\">\n <label>error</label>\n <input type=\"week\" />\n <nve-control-message status=\"error\">message</nve-control-message>\n </nve-week>\n</div>\n",
|
|
38
38
|
"summary": "Week pickers with horizontal layout showing validation states for inline forms and compact layouts.",
|
|
39
39
|
"description": "",
|
|
40
40
|
"composition": false,
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
{
|
|
46
46
|
"id": "week-export-parts",
|
|
47
47
|
"name": "ExportParts",
|
|
48
|
-
"template": "<style>\n nve-week::part(icon-button) {\n --background: red;\n }\n nve-week::part(icon-button-icon) {\n --color: blue;\n }\n</style>\n<nve-week>\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n</nve-week>\n",
|
|
48
|
+
"template": "<style>\n nve-week::part(icon-button) {\n --background: red;\n }\n\n nve-week::part(icon-button-icon) {\n --color: blue;\n }\n</style>\n<nve-week>\n <label>label</label>\n <input type=\"week\" />\n <nve-control-message>message</nve-control-message>\n</nve-week>\n",
|
|
49
49
|
"summary": "Use CSS export parts for advanced theming of nested shadow root elements.",
|
|
50
50
|
"description": "",
|
|
51
51
|
"composition": false,
|
package/dist/week/week2.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nvidia-elements/core",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.2",
|
|
4
4
|
"release": {
|
|
5
5
|
"extends": "../../release.config.js"
|
|
6
6
|
},
|
|
@@ -1108,6 +1108,7 @@
|
|
|
1108
1108
|
],
|
|
1109
1109
|
"output": [
|
|
1110
1110
|
"src/icon/icons.ts",
|
|
1111
|
+
"src/internal/types/icons.ts",
|
|
1111
1112
|
"src/icon/server.ts"
|
|
1112
1113
|
]
|
|
1113
1114
|
},
|