@nvidia-elements/core 0.0.10 → 0.0.12

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 (200) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/accordion/accordion.examples.json +11 -11
  3. package/dist/accordion/accordion2.js +4 -4
  4. package/dist/alert/alert-group2.js +1 -1
  5. package/dist/alert/alert.examples.json +12 -12
  6. package/dist/alert/alert2.js +1 -1
  7. package/dist/avatar/avatar-group2.js +1 -1
  8. package/dist/avatar/avatar.examples.json +6 -6
  9. package/dist/avatar/avatar2.js +1 -1
  10. package/dist/badge/badge.examples.json +12 -12
  11. package/dist/badge/badge2.js +1 -1
  12. package/dist/breadcrumb/breadcrumb.examples.json +3 -3
  13. package/dist/breadcrumb/breadcrumb2.js +1 -1
  14. package/dist/bundles/index.js +4 -4
  15. package/dist/button/button.examples.json +24 -24
  16. package/dist/button/button2.js +1 -1
  17. package/dist/button-group/button-group.d.ts +1 -1
  18. package/dist/button-group/button-group.examples.json +11 -11
  19. package/dist/button-group/button-group2.js +1 -1
  20. package/dist/button-group/button-group2.js.map +1 -1
  21. package/dist/card/card.examples.json +10 -10
  22. package/dist/card/card2.js +4 -4
  23. package/dist/chat-message/chat-message.examples.json +7 -7
  24. package/dist/chat-message/chat-message2.js +1 -1
  25. package/dist/checkbox/checkbox-group2.js +1 -1
  26. package/dist/checkbox/checkbox.examples.json +7 -7
  27. package/dist/checkbox/checkbox2.js +1 -1
  28. package/dist/color/color.examples.json +4 -4
  29. package/dist/color/color2.js +1 -1
  30. package/dist/combobox/combobox.examples.json +24 -24
  31. package/dist/combobox/combobox2.js +1 -1
  32. package/dist/copy-button/copy-button.examples.json +9 -9
  33. package/dist/copy-button/copy-button2.js +1 -1
  34. package/dist/custom-elements-jsx.d.ts +1 -1
  35. package/dist/custom-elements-vue.d.ts +1 -1
  36. package/dist/custom-elements.json +15 -73
  37. package/dist/data.html.json +2 -2
  38. package/dist/date/date.examples.json +7 -7
  39. package/dist/date/date2.js +1 -1
  40. package/dist/datetime/datetime.examples.json +4 -4
  41. package/dist/datetime/datetime2.js +1 -1
  42. package/dist/dialog/dialog-footer2.js +1 -1
  43. package/dist/dialog/dialog-header2.js +1 -1
  44. package/dist/dialog/dialog.examples.json +21 -21
  45. package/dist/dialog/dialog2.js +1 -1
  46. package/dist/divider/divider.examples.json +5 -5
  47. package/dist/divider/divider2.js +1 -1
  48. package/dist/dot/dot.examples.json +5 -5
  49. package/dist/dot/dot2.js +1 -1
  50. package/dist/drawer/drawer-content2.js +1 -1
  51. package/dist/drawer/drawer-footer2.js +1 -1
  52. package/dist/drawer/drawer-header2.js +1 -1
  53. package/dist/drawer/drawer.examples.json +13 -13
  54. package/dist/drawer/drawer2.js +1 -1
  55. package/dist/dropdown/dropdown-footer2.js +1 -1
  56. package/dist/dropdown/dropdown-header2.js +1 -1
  57. package/dist/dropdown/dropdown.examples.json +14 -14
  58. package/dist/dropdown/dropdown2.js +1 -1
  59. package/dist/dropdown-group/dropdown-group.examples.json +4 -4
  60. package/dist/dropdown-group/dropdown-group.js +1 -1
  61. package/dist/dropzone/dropzone.examples.json +3 -3
  62. package/dist/dropzone/dropzone2.js +1 -1
  63. package/dist/file/file.examples.json +3 -3
  64. package/dist/file/file2.js +1 -1
  65. package/dist/format-datetime/format-datetime.examples.json +9 -9
  66. package/dist/format-datetime/format-datetime2.js +1 -1
  67. package/dist/format-relative-time/format-relative-time.examples.json +7 -7
  68. package/dist/format-relative-time/format-relative-time2.js +73 -53
  69. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  70. package/dist/forms/actions.examples.json +3 -3
  71. package/dist/forms/control/control.examples.json +11 -11
  72. package/dist/forms/control/control2.js +1 -1
  73. package/dist/forms/control-group/control-group2.js +1 -1
  74. package/dist/forms/control-message/control-message2.js +1 -1
  75. package/dist/forms/forms.examples.json +8 -8
  76. package/dist/forms/validation.examples.js.map +1 -1
  77. package/dist/forms/validation.examples.json +5 -5
  78. package/dist/grid/cell/cell2.js +1 -1
  79. package/dist/grid/column/column2.js +1 -1
  80. package/dist/grid/footer/footer2.js +1 -1
  81. package/dist/grid/grid.examples.json +43 -43
  82. package/dist/grid/grid2.js +1 -1
  83. package/dist/grid/header/header2.js +2 -2
  84. package/dist/grid/header/header2.js.map +1 -1
  85. package/dist/grid/placeholder/placeholder2.js +1 -1
  86. package/dist/grid/row/row2.js +1 -1
  87. package/dist/icon/icon.examples.json +8 -8
  88. package/dist/icon/icon2.js +2 -2
  89. package/dist/icon-button/icon-button.examples.json +13 -13
  90. package/dist/icon-button/icon-button2.js +1 -1
  91. package/dist/index.js +1 -1
  92. package/dist/input/input-group.examples.json +2 -2
  93. package/dist/input/input-group2.js +1 -1
  94. package/dist/input/input.examples.json +8 -8
  95. package/dist/input/input2.js +1 -1
  96. package/dist/internal/controllers/i18n.controller.examples.json +1 -1
  97. package/dist/internal/controllers/keynav-grid.controller.examples.json +2 -2
  98. package/dist/internal/controllers/keynav-grid.controller.js +15 -7
  99. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  100. package/dist/internal/controllers/keynav-list.controller.examples.json +4 -4
  101. package/dist/internal/controllers/keynav-list.controller.js +11 -5
  102. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  103. package/dist/internal/controllers/popover.examples.json +8 -8
  104. package/dist/internal/controllers/type-button.controller.examples.json +1 -1
  105. package/dist/internal/controllers/type-popover.controller.examples.json +2 -2
  106. package/dist/internal/controllers/type-touch.controller.examples.json +1 -1
  107. package/dist/internal/services/global.service.js +1 -1
  108. package/dist/internal/utils/objects.js +17 -9
  109. package/dist/internal/utils/objects.js.map +1 -1
  110. package/dist/logo/logo.examples.json +6 -6
  111. package/dist/logo/logo2.js +1 -1
  112. package/dist/menu/menu-item2.js +1 -1
  113. package/dist/menu/menu.examples.json +15 -15
  114. package/dist/menu/menu2.js +1 -1
  115. package/dist/month/month.examples.json +4 -4
  116. package/dist/month/month2.js +1 -1
  117. package/dist/notification/notification-group2.js +1 -1
  118. package/dist/notification/notification.examples.json +15 -15
  119. package/dist/notification/notification2.js +1 -1
  120. package/dist/page/page-panel/page-panel-content2.js +1 -1
  121. package/dist/page/page-panel/page-panel-footer2.js +1 -1
  122. package/dist/page/page-panel/page-panel-header2.js +1 -1
  123. package/dist/page/page-panel/page-panel2.js +1 -1
  124. package/dist/page/page.examples.js.map +1 -1
  125. package/dist/page/page.examples.json +37 -35
  126. package/dist/page/page2.js +1 -1
  127. package/dist/page-header/page-header.examples.json +9 -9
  128. package/dist/page-header/page-header2.js +1 -1
  129. package/dist/page-loader/page-loader.examples.json +2 -2
  130. package/dist/page-loader/page-loader2.js +1 -1
  131. package/dist/pagination/pagination.examples.json +16 -16
  132. package/dist/pagination/pagination2.js +1 -1
  133. package/dist/panel/panel.examples.json +7 -7
  134. package/dist/panel/panel2.js +4 -4
  135. package/dist/password/password.examples.json +3 -3
  136. package/dist/password/password2.js +1 -1
  137. package/dist/preferences-input/preferences-input.examples.json +3 -3
  138. package/dist/preferences-input/preferences-input2.js +1 -1
  139. package/dist/progress-bar/progress-bar.examples.json +8 -8
  140. package/dist/progress-bar/progress-bar2.js +1 -1
  141. package/dist/progress-ring/progress-ring.examples.json +8 -8
  142. package/dist/progress-ring/progress-ring2.js +1 -1
  143. package/dist/progressive-filter-chip/progressive-filter-chip.examples.json +7 -7
  144. package/dist/progressive-filter-chip/progressive-filter-chip2.js +1 -1
  145. package/dist/pulse/pulse.examples.json +4 -4
  146. package/dist/pulse/pulse2.js +1 -1
  147. package/dist/radio/radio-group2.js +1 -1
  148. package/dist/radio/radio.examples.json +5 -5
  149. package/dist/radio/radio2.js +1 -1
  150. package/dist/range/range.examples.json +9 -9
  151. package/dist/range/range2.js +1 -1
  152. package/dist/resize-handle/resize-handle.examples.json +7 -7
  153. package/dist/resize-handle/resize-handle2.js +1 -1
  154. package/dist/search/search.examples.json +5 -5
  155. package/dist/search/search2.js +1 -1
  156. package/dist/select/select.examples.json +18 -18
  157. package/dist/select/select2.js +1 -1
  158. package/dist/skeleton/skeleton.examples.json +4 -4
  159. package/dist/skeleton/skeleton2.js +1 -1
  160. package/dist/sort-button/sort-button.examples.json +3 -3
  161. package/dist/sort-button/sort-button2.js +1 -1
  162. package/dist/sparkline/sparkline.examples.json +13 -13
  163. package/dist/sparkline/sparkline.utils.d.ts +26 -5
  164. package/dist/sparkline/sparkline.utils.js +30 -30
  165. package/dist/sparkline/sparkline.utils.js.map +1 -1
  166. package/dist/sparkline/sparkline2.js +21 -6
  167. package/dist/sparkline/sparkline2.js.map +1 -1
  168. package/dist/star-rating/star-rating.examples.json +4 -4
  169. package/dist/star-rating/star-rating2.js +1 -1
  170. package/dist/steps/steps.examples.json +5 -5
  171. package/dist/steps/steps2.js +2 -2
  172. package/dist/switch/switch-group2.js +1 -1
  173. package/dist/switch/switch.examples.json +7 -7
  174. package/dist/switch/switch2.js +1 -1
  175. package/dist/tabs/tabs-group2.js +9 -6
  176. package/dist/tabs/tabs-group2.js.map +1 -1
  177. package/dist/tabs/tabs.examples.json +14 -14
  178. package/dist/tabs/tabs2.js +2 -2
  179. package/dist/tag/tag.examples.json +8 -8
  180. package/dist/tag/tag2.js +1 -1
  181. package/dist/textarea/textarea.examples.json +5 -5
  182. package/dist/textarea/textarea2.js +1 -1
  183. package/dist/time/time.examples.json +4 -4
  184. package/dist/time/time2.js +1 -1
  185. package/dist/toast/toast.examples.json +11 -11
  186. package/dist/toast/toast2.js +1 -1
  187. package/dist/toggletip/toggletip-footer2.js +1 -1
  188. package/dist/toggletip/toggletip-header2.js +1 -1
  189. package/dist/toggletip/toggletip.examples.json +12 -12
  190. package/dist/toggletip/toggletip2.js +1 -1
  191. package/dist/toolbar/toolbar.examples.json +8 -8
  192. package/dist/toolbar/toolbar2.js +1 -1
  193. package/dist/tooltip/tooltip.examples.json +22 -22
  194. package/dist/tooltip/tooltip2.js +1 -1
  195. package/dist/tree/tree-node2.js +1 -1
  196. package/dist/tree/tree.examples.json +13 -13
  197. package/dist/tree/tree2.js +1 -1
  198. package/dist/week/week.examples.json +5 -5
  199. package/dist/week/week2.js +1 -1
  200. package/package.json +5 -5
@@ -3,7 +3,7 @@
3
3
  "entrypoint": "@nvidia-elements/core/format-datetime/format-datetime.examples.json",
4
4
  "items": [
5
5
  {
6
- "id": "core-format-datetime_default",
6
+ "id": "format-datetime",
7
7
  "name": "Default",
8
8
  "template": "<nve-format-datetime date-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n",
9
9
  "summary": "Basic date formatting with the long date style preset. Use for displaying human-readable dates in content areas, tables, or metadata.",
@@ -12,7 +12,7 @@
12
12
  "tags": []
13
13
  },
14
14
  {
15
- "id": "core-format-datetime_date-style",
15
+ "id": "format-datetime-date-style",
16
16
  "name": "DateStyle",
17
17
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime date-style=\"full\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime date-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime date-style=\"medium\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime date-style=\"short\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n</div>\n",
18
18
  "summary": "Date style presets for controlling output density. Use full or long for detail-rich contexts and medium or short for compact layouts like data tables or cards.",
@@ -21,7 +21,7 @@
21
21
  "tags": []
22
22
  },
23
23
  {
24
- "id": "core-format-datetime_time-style",
24
+ "id": "format-datetime-time-style",
25
25
  "name": "TimeStyle",
26
26
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime date-style=\"long\" time-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime date-style=\"short\" time-style=\"short\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n</div>\n",
27
27
  "summary": "Combined date and time style presets for full timestamps. Use for audit logs, event schedules, or activity feeds that need both date and time. Preset styles take precedence over granular formatting options when both appear.",
@@ -30,7 +30,7 @@
30
30
  "tags": []
31
31
  },
32
32
  {
33
- "id": "core-format-datetime_granular",
33
+ "id": "format-datetime-granular",
34
34
  "name": "Granular",
35
35
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime weekday=\"long\" month=\"short\" day=\"numeric\" year=\"numeric\"\n >2023-07-28T04:20:17.434Z</nve-format-datetime\n >\n <nve-format-datetime month=\"long\" year=\"numeric\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n</div>\n",
36
36
  "summary": "Granular date part options for precise formatting control. Use when presets don't match your layout, such as weekday and month only. Do not combine with date-style or time-style; style presets take priority if both appear.",
@@ -39,7 +39,7 @@
39
39
  "tags": []
40
40
  },
41
41
  {
42
- "id": "core-format-datetime_time-only",
42
+ "id": "format-datetime-time-only",
43
43
  "name": "TimeOnly",
44
44
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime hour=\"numeric\" minute=\"2-digit\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime hour=\"2-digit\" minute=\"2-digit\" second=\"2-digit\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n</div>\n",
45
45
  "summary": "Time-only formatting with granular hour, minute, and second options. Use for clocks, time labels, or timestamps where the date is unnecessary.",
@@ -48,7 +48,7 @@
48
48
  "tags": []
49
49
  },
50
50
  {
51
- "id": "core-format-datetime_locale",
51
+ "id": "format-datetime-locale",
52
52
  "name": "Locale",
53
53
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime locale=\"de-DE\" date-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime locale=\"ja\" date-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n <nve-format-datetime locale=\"fr-FR\" date-style=\"long\">2023-07-28T04:20:17.434Z</nve-format-datetime>\n</div>\n",
54
54
  "summary": "Explicit locale settings for internationalized date output. Use when the target audience locale differs from the browser default, such as multilingual dashboards or region-specific reports.",
@@ -57,7 +57,7 @@
57
57
  "tags": []
58
58
  },
59
59
  {
60
- "id": "core-format-datetime_date-attribute",
60
+ "id": "format-datetime-date-attribute",
61
61
  "name": "DateAttribute",
62
62
  "template": "<nve-format-datetime date=\"2023-07-28T04:20:17.434Z\" date-style=\"long\"></nve-format-datetime>\n",
63
63
  "summary": "Date attribute input for values supplied by JavaScript or bound data. By default, the component formats text content, which also serves as the SSR fallback, and `date` wins when both are present.",
@@ -66,7 +66,7 @@
66
66
  "tags": []
67
67
  },
68
68
  {
69
- "id": "core-format-datetime_time-zone",
69
+ "id": "format-datetime-time-zone",
70
70
  "name": "TimeZone",
71
71
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime date-style=\"long\" time-style=\"long\" time-zone=\"America/New_York\"\n >2023-07-28T04:20:17.434Z</nve-format-datetime\n >\n <nve-format-datetime date-style=\"long\" time-style=\"long\" time-zone=\"Asia/Tokyo\"\n >2023-07-28T04:20:17.434Z</nve-format-datetime\n >\n</div>\n",
72
72
  "summary": "Time zone conversion for displaying dates in a specific region. Use for global teams, scheduling interfaces, or when UTC or server timestamps need a fixed time zone.",
@@ -75,7 +75,7 @@
75
75
  "tags": []
76
76
  },
77
77
  {
78
- "id": "core-format-datetime_time-zone-name",
78
+ "id": "format-datetime-time-zone-name",
79
79
  "name": "TimeZoneName",
80
80
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-datetime\n locale=\"en-US\"\n month=\"long\"\n day=\"numeric\"\n year=\"numeric\"\n hour=\"numeric\"\n minute=\"2-digit\"\n time-zone=\"America/New_York\"\n time-zone-name=\"short\"\n >2023-07-28T04:20:17.434Z</nve-format-datetime\n >\n <nve-format-datetime\n locale=\"en-US\"\n month=\"long\"\n day=\"numeric\"\n year=\"numeric\"\n hour=\"numeric\"\n minute=\"2-digit\"\n time-zone=\"America/New_York\"\n time-zone-name=\"long\"\n >2023-07-28T04:20:17.434Z</nve-format-datetime\n >\n</div>\n",
81
81
  "summary": "Time zone name labels in short and long form alongside the formatted date. Use with granular options when the viewer needs to know which time zone applies, such as meeting schedulers or cross-region dashboards.",
@@ -13,7 +13,7 @@ var c = class extends a {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-format-datetime",
16
- version: "0.0.10"
16
+ version: "0.0.12"
17
17
  };
18
18
  }
19
19
  get #e() {
@@ -3,7 +3,7 @@
3
3
  "entrypoint": "@nvidia-elements/core/format-relative-time/format-relative-time.examples.json",
4
4
  "items": [
5
5
  {
6
- "id": "core-format-relative-time_default",
6
+ "id": "format-relative-time",
7
7
  "name": "Default",
8
8
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-relative-time>2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time>2024-06-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time>2025-12-01T12:00:00.000Z</nve-format-relative-time>\n</div>\n",
9
9
  "summary": "Basic relative time formatting with auto unit selection. Use for displaying human-readable relative timestamps in content areas, feeds, or metadata.",
@@ -12,7 +12,7 @@
12
12
  "tags": []
13
13
  },
14
14
  {
15
- "id": "core-format-relative-time_numeric",
15
+ "id": "format-relative-time-numeric",
16
16
  "name": "Numeric",
17
17
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-relative-time numeric=\"always\" unit=\"year\">2025-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time numeric=\"auto\" unit=\"year\">2025-01-15T12:00:00.000Z</nve-format-relative-time>\n</div>\n",
18
18
  "summary": "Numeric formatting control for natural language output. Use 'auto' to display natural forms such as 'yesterday' instead of '1 day ago'.",
@@ -21,7 +21,7 @@
21
21
  "tags": []
22
22
  },
23
23
  {
24
- "id": "core-format-relative-time_format-style",
24
+ "id": "format-relative-time-format-style",
25
25
  "name": "FormatStyle",
26
26
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-relative-time format-style=\"long\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time format-style=\"short\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time format-style=\"narrow\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n</div>\n",
27
27
  "summary": "Format style presets for controlling output verbosity. Use 'short' or 'narrow' for compact layouts such as data tables or timelines.",
@@ -30,7 +30,7 @@
30
30
  "tags": []
31
31
  },
32
32
  {
33
- "id": "core-format-relative-time_unit",
33
+ "id": "format-relative-time-unit",
34
34
  "name": "Unit",
35
35
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-relative-time unit=\"day\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time unit=\"month\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time unit=\"year\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n</div>\n",
36
36
  "summary": "Explicit time unit selection for keeping relative time in a fixed unit. Use when you always want output in days, months, or years instead of letting the component auto-select the unit.",
@@ -39,7 +39,7 @@
39
39
  "tags": []
40
40
  },
41
41
  {
42
- "id": "core-format-relative-time_locale",
42
+ "id": "format-relative-time-locale",
43
43
  "name": "Locale",
44
44
  "template": "<div nve-layout=\"column gap:sm\">\n <nve-format-relative-time locale=\"de-DE\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time locale=\"ja\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n <nve-format-relative-time locale=\"fr-FR\">2020-01-15T12:00:00.000Z</nve-format-relative-time>\n</div>\n",
45
45
  "summary": "Explicit locale settings for internationalized relative time output. Use when the target audience locale differs from the document language or browser default.",
@@ -48,7 +48,7 @@
48
48
  "tags": []
49
49
  },
50
50
  {
51
- "id": "core-format-relative-time_date-attribute",
51
+ "id": "format-relative-time-date-attribute",
52
52
  "name": "DateAttribute",
53
53
  "template": "<nve-format-relative-time date=\"2020-01-15T12:00:00.000Z\"></nve-format-relative-time>\n",
54
54
  "summary": "Date attribute input for values supplied by JavaScript or bound data. By default, the component formats text content, which also serves as the SSR fallback, and `date` wins when both are present.",
@@ -57,7 +57,7 @@
57
57
  "tags": []
58
58
  },
59
59
  {
60
- "id": "core-format-relative-time_sync",
60
+ "id": "format-relative-time-sync",
61
61
  "name": "Sync",
62
62
  "template": "<nve-format-relative-time sync>2020-01-15T12:00:00.000Z</nve-format-relative-time>\n",
63
63
  "summary": "Auto-updating relative time with the sync attribute. Use for live feeds, notifications, or dashboards where freshness matters.",
@@ -6,7 +6,44 @@ import i from "./format-relative-time.js";
6
6
  import { LitElement as a, html as o } from "lit";
7
7
  import { property as s } from "lit/decorators/property.js";
8
8
  //#region src/format-relative-time/format-relative-time.ts
9
- var c = class extends a {
9
+ var c = {
10
+ second: 1e3,
11
+ minute: 6e4,
12
+ hour: 36e5,
13
+ day: 864e5,
14
+ week: 6048e5,
15
+ month: 2592e6,
16
+ year: 31536e6
17
+ }, l = [
18
+ {
19
+ unit: "second",
20
+ max: 60
21
+ },
22
+ {
23
+ unit: "minute",
24
+ max: 60
25
+ },
26
+ {
27
+ unit: "hour",
28
+ max: 24
29
+ },
30
+ {
31
+ unit: "day",
32
+ max: 7
33
+ },
34
+ {
35
+ unit: "week",
36
+ max: 4
37
+ },
38
+ {
39
+ unit: "month",
40
+ max: 12
41
+ },
42
+ {
43
+ unit: "year",
44
+ max: Infinity
45
+ }
46
+ ], u = class extends a {
10
47
  constructor(...e) {
11
48
  super(...e), this.numeric = "always", this.formatStyle = "long", this.unit = "auto", this.sync = !1;
12
49
  }
@@ -16,7 +53,7 @@ var c = class extends a {
16
53
  static {
17
54
  this.metadata = {
18
55
  tag: "nve-format-relative-time",
19
- version: "0.0.10"
56
+ version: "0.0.12"
20
57
  };
21
58
  }
22
59
  #e;
@@ -27,92 +64,75 @@ var c = class extends a {
27
64
  return this.locale ?? (globalThis.document?.documentElement?.lang || void 0);
28
65
  }
29
66
  #r(e) {
30
- let t = Math.abs(e), n = e < 0 ? -1 : 1, r = Math.round(t / 1e3), i = Math.round(t / 6e4), a = Math.round(t / 36e5), o = Math.round(t / 864e5), s = Math.round(t / 6048e5), c = Math.round(t / 2592e6), l = Math.round(t / 31536e6);
31
- return r < 60 ? {
32
- value: n * r,
33
- unit: "second"
34
- } : i < 60 ? {
35
- value: n * i,
36
- unit: "minute"
37
- } : a < 24 ? {
38
- value: n * a,
39
- unit: "hour"
40
- } : o < 7 ? {
41
- value: n * o,
42
- unit: "day"
43
- } : s < 4 ? {
44
- value: n * s,
45
- unit: "week"
46
- } : c < 12 ? {
47
- value: n * c,
48
- unit: "month"
49
- } : {
50
- value: n * l,
51
- unit: "year"
52
- };
67
+ let t = Math.abs(e), n = e < 0 ? -1 : 1;
68
+ for (let { unit: e, max: r } of l) {
69
+ let i = Math.round(t / c[e]);
70
+ if (i < r) return {
71
+ value: n * i,
72
+ unit: e
73
+ };
74
+ }
75
+ throw Error("format-relative-time: no relative time threshold matched");
53
76
  }
54
77
  #i(e, t) {
55
- return Math.round(e / ({
56
- second: 1e3,
57
- minute: 6e4,
58
- hour: 36e5,
59
- day: 864e5,
60
- week: 6048e5,
61
- month: 2592e6,
62
- year: 31536e6
63
- }[t] ?? 1));
64
- }
65
- get #a() {
78
+ return Math.round(e / c[t]);
79
+ }
80
+ #a(e) {
81
+ return this.unit === "auto" ? this.#r(e) : {
82
+ unit: this.unit,
83
+ value: this.#i(e, this.unit)
84
+ };
85
+ }
86
+ get #o() {
66
87
  let t = this.#t;
67
88
  if (!t) return "";
68
89
  let n = new Date(t);
69
90
  if (isNaN(n.getTime())) return e.warn(`format-relative-time: invalid date value "${t}"`), t;
70
- let r = n.getTime() - Date.now(), i, a;
71
- this.unit === "auto" ? {value: i, unit: a} = this.#r(r) : (a = this.unit, i = this.#i(r, a));
91
+ let { value: r, unit: i } = this.#a(n.getTime() - Date.now());
72
92
  try {
73
93
  return new Intl.RelativeTimeFormat(this.#n, {
74
94
  numeric: this.numeric,
75
95
  style: this.formatStyle
76
- }).format(i, a);
96
+ }).format(r, i);
77
97
  } catch (n) {
78
98
  return e.warn(`format-relative-time: ${n.message}`), t;
79
99
  }
80
100
  }
81
- #o() {
101
+ #s() {
82
102
  let e = this.#t;
83
103
  if (!e) return 6e4;
84
104
  let t = Math.abs(new Date(e).getTime() - Date.now());
85
105
  return t < 6e4 ? 1e4 : t < 36e5 ? 3e4 : t < 864e5 ? 3e5 : 36e5;
86
106
  }
87
- #s() {
88
- this.#c(), this.sync && (this.#e = setTimeout(() => {
89
- this.requestUpdate(), this.#s();
90
- }, this.#o()));
91
- }
92
107
  #c() {
108
+ this.#l(), this.sync && (this.#e = setTimeout(() => {
109
+ this.requestUpdate(), this.#c();
110
+ }, this.#s()));
111
+ }
112
+ #l() {
93
113
  this.#e !== void 0 && (clearTimeout(this.#e), this.#e = void 0);
94
114
  }
95
115
  connectedCallback() {
96
- super.connectedCallback(), this.sync && this.#s();
116
+ super.connectedCallback(), this.sync && this.#c();
97
117
  }
98
118
  disconnectedCallback() {
99
- this.#c(), super.disconnectedCallback();
119
+ this.#l(), super.disconnectedCallback();
100
120
  }
101
121
  updated(e) {
102
- e.has("sync") && (this.sync ? this.#s() : this.#c());
122
+ e.has("sync") && (this.sync ? this.#c() : this.#l());
103
123
  }
104
124
  render() {
105
- return o`<time internal-host datetime="${this.#t}">${this.#a}<slot @slotchange="${this.#l}" hidden></slot></time>`;
125
+ return o`<time internal-host datetime="${this.#t}">${this.#o}<slot @slotchange="${this.#u}" hidden></slot></time>`;
106
126
  }
107
- #l() {
127
+ #u() {
108
128
  this.requestUpdate();
109
129
  }
110
130
  };
111
- t([s({ type: String })], c.prototype, "date", void 0), t([s({ type: String })], c.prototype, "locale", void 0), t([s({ type: String })], c.prototype, "numeric", void 0), t([s({
131
+ t([s({ type: String })], u.prototype, "date", void 0), t([s({ type: String })], u.prototype, "locale", void 0), t([s({ type: String })], u.prototype, "numeric", void 0), t([s({
112
132
  type: String,
113
133
  attribute: "format-style"
114
- })], c.prototype, "formatStyle", void 0), t([s({ type: String })], c.prototype, "unit", void 0), t([s({ type: Boolean })], c.prototype, "sync", void 0), c = t([n()], c);
134
+ })], u.prototype, "formatStyle", void 0), t([s({ type: String })], u.prototype, "unit", void 0), t([s({ type: Boolean })], u.prototype, "sync", void 0), u = t([n()], u);
115
135
  //#endregion
116
- export { c as FormatRelativeTime };
136
+ export { u as FormatRelativeTime };
117
137
 
118
138
  //# sourceMappingURL=format-relative-time2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-relative-time2.js","names":["#dateValue","#resolvedLocale","#formattedRelativeTime","#computeUnit","#computeExplicitUnit","#stopSync","#timer","#startSync","#getSyncInterval","#onSlotChange"],"sources":["../../src/format-relative-time/format-relative-time.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 { useStyles, typeSSR, LogService } from '@nvidia-elements/core/internal';\nimport styles from './format-relative-time.css?inline';\n\ntype TimeUnitOption = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';\n\n/**\n * @element nve-format-relative-time\n * @description Formats a date/time value as localized relative text using the Intl.RelativeTimeFormat API. Renders inside a semantic time element.\n * Options mirror the Intl.RelativeTimeFormat API. When unit is 'auto', the component selects the best unit based on the time difference.\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/format-relative-time\n * @slot - Date string to format (such as 2023-07-28T04:20:17.434Z). Serves as fallback before hydration.\n */\n@typeSSR()\nexport class FormatRelativeTime extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-format-relative-time',\n version: '0.0.0'\n };\n\n /**\n * Optional date string for values supplied by JavaScript or bound data.\n * By default, the component formats the element's text content, which also serves as the SSR fallback.\n * When both are present, this property takes precedence.\n */\n @property({ type: String }) date?: string;\n\n /**\n * Language tag (such as en-US, de-DE). Defaults to document.documentElement.lang or browser default.\n */\n @property({ type: String }) locale?: string;\n\n /**\n * Numeric formatting: 'always' | 'auto'. When 'auto', enables natural language forms such as 'yesterday' instead of '1 day ago'.\n */\n @property({ type: String }) numeric: 'always' | 'auto' = 'always';\n\n /**\n * Formatting length: 'long' | 'short' | 'narrow'. Controls verbosity (such as '3 days ago' vs '3d ago'). Maps to Intl.RelativeTimeFormat style option.\n */\n @property({ type: String, attribute: 'format-style' }) formatStyle: 'long' | 'short' | 'narrow' = 'long';\n\n /**\n * Time unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year' | 'auto'. Use 'auto' to let the component select the most appropriate unit based on the time difference.\n */\n @property({ type: String }) unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year' | 'auto' = 'auto';\n\n /**\n * When present, auto-updates the displayed relative time at appropriate intervals.\n */\n @property({ type: Boolean }) sync = false;\n\n #timer?: ReturnType<typeof setTimeout>;\n\n get #dateValue(): string {\n return this.date ?? this.textContent?.trim() ?? '';\n }\n\n get #resolvedLocale(): string | undefined {\n return this.locale ?? (globalThis.document?.documentElement?.lang || undefined);\n }\n\n #computeUnit(diffMs: number): { value: number; unit: Intl.RelativeTimeFormatUnit } {\n const absDiff = Math.abs(diffMs);\n const sign = diffMs < 0 ? -1 : 1;\n\n const seconds = Math.round(absDiff / 1000);\n const minutes = Math.round(absDiff / 60000);\n const hours = Math.round(absDiff / 3600000);\n const days = Math.round(absDiff / 86400000);\n const weeks = Math.round(absDiff / 604800000);\n const months = Math.round(absDiff / 2592000000);\n const years = Math.round(absDiff / 31536000000);\n\n if (seconds < 60) return { value: sign * seconds, unit: 'second' };\n if (minutes < 60) return { value: sign * minutes, unit: 'minute' };\n if (hours < 24) return { value: sign * hours, unit: 'hour' };\n if (days < 7) return { value: sign * days, unit: 'day' };\n if (weeks < 4) return { value: sign * weeks, unit: 'week' };\n if (months < 12) return { value: sign * months, unit: 'month' };\n return { value: sign * years, unit: 'year' };\n }\n\n #computeExplicitUnit(diffMs: number, unit: TimeUnitOption): number {\n const divisors: Record<string, number> = {\n second: 1000,\n minute: 60000,\n hour: 3600000,\n day: 86400000,\n week: 604800000,\n month: 2592000000,\n year: 31536000000\n };\n return Math.round(diffMs / (divisors[unit] ?? 1));\n }\n\n get #formattedRelativeTime(): string {\n const iso = this.#dateValue;\n if (!iso) return '';\n\n const target = new Date(iso);\n if (isNaN(target.getTime())) {\n LogService.warn(`format-relative-time: invalid date value \"${iso}\"`);\n return iso;\n }\n\n const diffMs = target.getTime() - Date.now();\n let value: number;\n let resolvedUnit: Intl.RelativeTimeFormatUnit;\n\n if (this.unit === 'auto') {\n ({ value, unit: resolvedUnit } = this.#computeUnit(diffMs));\n } else {\n resolvedUnit = this.unit;\n value = this.#computeExplicitUnit(diffMs, resolvedUnit);\n }\n\n try {\n return new Intl.RelativeTimeFormat(this.#resolvedLocale, {\n numeric: this.numeric,\n style: this.formatStyle\n }).format(value, resolvedUnit);\n } catch (e) {\n LogService.warn(`format-relative-time: ${(e as Error).message}`);\n return iso;\n }\n }\n\n #getSyncInterval(): number {\n const iso = this.#dateValue;\n if (!iso) return 60000;\n\n const absDiff = Math.abs(new Date(iso).getTime() - Date.now());\n if (absDiff < 60000) return 10000;\n if (absDiff < 3600000) return 30000;\n if (absDiff < 86400000) return 300000;\n return 3600000;\n }\n\n #startSync() {\n this.#stopSync();\n if (!this.sync) return;\n\n this.#timer = setTimeout(() => {\n this.requestUpdate();\n this.#startSync();\n }, this.#getSyncInterval());\n }\n\n #stopSync() {\n if (this.#timer !== undefined) {\n clearTimeout(this.#timer);\n this.#timer = undefined;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.sync) this.#startSync();\n }\n\n disconnectedCallback() {\n this.#stopSync();\n super.disconnectedCallback();\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('sync')) {\n if (this.sync) {\n this.#startSync();\n } else {\n this.#stopSync();\n }\n }\n }\n\n render() {\n return html`<time internal-host datetime=${this.#dateValue}>${this.#formattedRelativeTime}<slot @slotchange=${this.#onSlotChange} hidden></slot></time>`;\n }\n\n #onSlotChange() {\n this.requestUpdate();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"format-relative-time2.js","names":["#dateValue","#resolvedLocale","#computeUnit","#computeExplicitUnit","#formattedRelativeTime","#resolveValueAndUnit","#stopSync","#timer","#startSync","#getSyncInterval","#onSlotChange"],"sources":["../../src/format-relative-time/format-relative-time.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 { useStyles, typeSSR, LogService } from '@nvidia-elements/core/internal';\nimport styles from './format-relative-time.css?inline';\n\ntype TimeUnitOption = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';\n\nconst UNIT_DIVISORS: Record<TimeUnitOption, number> = {\n second: 1000,\n minute: 60000,\n hour: 3600000,\n day: 86400000,\n week: 604800000,\n month: 2592000000,\n year: 31536000000\n};\n\nconst THRESHOLDS: { unit: TimeUnitOption; max: number }[] = [\n { unit: 'second', max: 60 },\n { unit: 'minute', max: 60 },\n { unit: 'hour', max: 24 },\n { unit: 'day', max: 7 },\n { unit: 'week', max: 4 },\n { unit: 'month', max: 12 },\n { unit: 'year', max: Number.POSITIVE_INFINITY }\n];\n\n/**\n * @element nve-format-relative-time\n * @description Formats a date/time value as localized relative text using the Intl.RelativeTimeFormat API. Renders inside a semantic time element.\n * Options mirror the Intl.RelativeTimeFormat API. When unit is 'auto', the component selects the best unit based on the time difference.\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/format-relative-time\n * @slot - Date string to format (such as 2023-07-28T04:20:17.434Z). Serves as fallback before hydration.\n */\n@typeSSR()\nexport class FormatRelativeTime extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-format-relative-time',\n version: '0.0.0'\n };\n\n /**\n * Optional date string for values supplied by JavaScript or bound data.\n * By default, the component formats the element's text content, which also serves as the SSR fallback.\n * When both are present, this property takes precedence.\n */\n @property({ type: String }) date?: string;\n\n /**\n * Language tag (such as en-US, de-DE). Defaults to document.documentElement.lang or browser default.\n */\n @property({ type: String }) locale?: string;\n\n /**\n * Numeric formatting: 'always' | 'auto'. When 'auto', enables natural language forms such as 'yesterday' instead of '1 day ago'.\n */\n @property({ type: String }) numeric: 'always' | 'auto' = 'always';\n\n /**\n * Formatting length: 'long' | 'short' | 'narrow'. Controls verbosity (such as '3 days ago' vs '3d ago'). Maps to Intl.RelativeTimeFormat style option.\n */\n @property({ type: String, attribute: 'format-style' }) formatStyle: 'long' | 'short' | 'narrow' = 'long';\n\n /**\n * Time unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year' | 'auto'. Use 'auto' to let the component select the most appropriate unit based on the time difference.\n */\n @property({ type: String }) unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year' | 'auto' = 'auto';\n\n /**\n * When present, auto-updates the displayed relative time at appropriate intervals.\n */\n @property({ type: Boolean }) sync = false;\n\n #timer?: ReturnType<typeof setTimeout>;\n\n get #dateValue(): string {\n return this.date ?? this.textContent?.trim() ?? '';\n }\n\n get #resolvedLocale(): string | undefined {\n return this.locale ?? (globalThis.document?.documentElement?.lang || undefined);\n }\n\n #computeUnit(diffMs: number): { value: number; unit: Intl.RelativeTimeFormatUnit } {\n const absDiff = Math.abs(diffMs);\n const sign = diffMs < 0 ? -1 : 1;\n\n for (const { unit, max } of THRESHOLDS) {\n const value = Math.round(absDiff / UNIT_DIVISORS[unit]);\n if (value < max) return { value: sign * value, unit };\n }\n throw new Error('format-relative-time: no relative time threshold matched');\n }\n\n #computeExplicitUnit(diffMs: number, unit: TimeUnitOption): number {\n return Math.round(diffMs / UNIT_DIVISORS[unit]);\n }\n\n #resolveValueAndUnit(diffMs: number): { value: number; unit: Intl.RelativeTimeFormatUnit } {\n if (this.unit === 'auto') {\n return this.#computeUnit(diffMs);\n }\n return { unit: this.unit, value: this.#computeExplicitUnit(diffMs, this.unit) };\n }\n\n get #formattedRelativeTime(): string {\n const iso = this.#dateValue;\n if (!iso) return '';\n\n const target = new Date(iso);\n if (isNaN(target.getTime())) {\n LogService.warn(`format-relative-time: invalid date value \"${iso}\"`);\n return iso;\n }\n\n const { value, unit: resolvedUnit } = this.#resolveValueAndUnit(target.getTime() - Date.now());\n\n try {\n return new Intl.RelativeTimeFormat(this.#resolvedLocale, {\n numeric: this.numeric,\n style: this.formatStyle\n }).format(value, resolvedUnit);\n } catch (e) {\n LogService.warn(`format-relative-time: ${(e as Error).message}`);\n return iso;\n }\n }\n\n #getSyncInterval(): number {\n const iso = this.#dateValue;\n if (!iso) return 60000;\n\n const absDiff = Math.abs(new Date(iso).getTime() - Date.now());\n if (absDiff < 60000) return 10000;\n if (absDiff < 3600000) return 30000;\n if (absDiff < 86400000) return 300000;\n return 3600000;\n }\n\n #startSync() {\n this.#stopSync();\n if (!this.sync) return;\n\n this.#timer = setTimeout(() => {\n this.requestUpdate();\n this.#startSync();\n }, this.#getSyncInterval());\n }\n\n #stopSync() {\n if (this.#timer !== undefined) {\n clearTimeout(this.#timer);\n this.#timer = undefined;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.sync) this.#startSync();\n }\n\n disconnectedCallback() {\n this.#stopSync();\n super.disconnectedCallback();\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('sync')) {\n if (this.sync) {\n this.#startSync();\n } else {\n this.#stopSync();\n }\n }\n }\n\n render() {\n return html`<time internal-host datetime=${this.#dateValue}>${this.#formattedRelativeTime}<slot @slotchange=${this.#onSlotChange} hidden></slot></time>`;\n }\n\n #onSlotChange() {\n this.requestUpdate();\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  "entrypoint": "@nvidia-elements/core/forms/actions.examples.json",
4
4
  "items": [
5
5
  {
6
- "id": "core-forms-actions_search-clear",
6
+ "id": "forms-actions-search-clear",
7
7
  "name": "SearchClear",
8
8
  "template": "<nve-input>\n <label>label</label>\n <nve-icon-button icon-name=\"search\" container=\"flat\" readonly></nve-icon-button>\n <input type=\"text\" />\n <nve-icon-button icon-name=\"cancel\" container=\"flat\" aria-label=\"clear\"></nve-icon-button>\n <nve-control-message>message</nve-control-message>\n</nve-input>\n",
9
9
  "summary": "Input with action buttons for search and clear, providing quick access to common operations.",
@@ -12,7 +12,7 @@
12
12
  "tags": []
13
13
  },
14
14
  {
15
- "id": "core-forms-actions_label-action",
15
+ "id": "forms-actions-label-action",
16
16
  "name": "LabelAction",
17
17
  "template": "<nve-input>\n <label>label</label>\n <nve-icon-button\n icon-name=\"information-circle-stroke\"\n container=\"flat\"\n aria-label=\"more details\"\n slot=\"label\"\n ></nve-icon-button>\n <input type=\"text\" />\n <nve-control-message>message</nve-control-message>\n</nve-input>\n",
18
18
  "summary": "Label with an information button to provide contextual help or more details about the field.",
@@ -21,7 +21,7 @@
21
21
  "tags": []
22
22
  },
23
23
  {
24
- "id": "core-forms-actions_prefix-suffix",
24
+ "id": "forms-actions-prefix-suffix",
25
25
  "name": "PrefixSuffix",
26
26
  "template": "<nve-input>\n <label>label</label>\n <nve-button container=\"flat\" readonly>https://</nve-button>\n <input type=\"text\" />\n <nve-button container=\"flat\" readonly>.com</nve-button>\n <nve-control-message>message</nve-control-message>\n</nve-input>\n",
27
27
  "summary": "Input with prefix and suffix buttons to show fixed text elements like URL protocols and domains.",
@@ -3,7 +3,7 @@
3
3
  "entrypoint": "@nvidia-elements/core/forms/control/control.examples.json",
4
4
  "items": [
5
5
  {
6
- "id": "core-forms-control_default",
6
+ "id": "forms-control",
7
7
  "name": "Default",
8
8
  "template": "<nve-control>\n <label>label</label>\n <input />\n <nve-control-message>message</nve-control-message>\n</nve-control>\n",
9
9
  "summary": "Basic form control wrapper with label, input, and validation message structure.",
@@ -14,7 +14,7 @@
14
14
  ]
15
15
  },
16
16
  {
17
- "id": "core-forms-control_responsive",
17
+ "id": "forms-control-responsive",
18
18
  "name": "Responsive",
19
19
  "template": "<div\n nve-layout=\"column gap:lg\"\n style=\"padding: 12px; border: 1px solid #ccc; overflow-y: auto; resize: horizontal; max-width: 600px\"\n>\n <nve-input layout=\"horizontal\">\n <label>text label</label>\n <input />\n <nve-control-message>message</nve-control-message>\n </nve-input>\n <nve-select layout=\"horizontal\">\n <label>select label</label>\n <select>\n <option value=\"1\">Option 1</option>\n <option value=\"2\">Option 2</option>\n <option value=\"3\">Option 3</option>\n </select>\n <nve-control-message>message</nve-control-message>\n </nve-select>\n <nve-search layout=\"horizontal-inline\">\n <label>search label</label>\n <input type=\"search\" placeholder=\"search\" />\n </nve-search>\n <nve-checkbox-group layout=\"horizontal-inline\">\n <label>checkbox label</label>\n <nve-checkbox>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-checkbox>\n <nve-checkbox>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-checkbox>\n <nve-checkbox>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-checkbox>\n <nve-control-message>message</nve-control-message>\n </nve-checkbox-group>\n <nve-range layout=\"horizontal-inline\">\n <label>label</label>\n <input type=\"range\" />\n <nve-control-message>message</nve-control-message>\n </nve-range>\n <nve-textarea layout=\"horizontal-inline\">\n <label>label</label>\n <textarea></textarea>\n </nve-textarea>\n</div>\n",
20
20
  "summary": "Responsive form controls with layout adaptation in resizable containers.",
@@ -25,7 +25,7 @@
25
25
  ]
26
26
  },
27
27
  {
28
- "id": "core-forms-control_layout",
28
+ "id": "forms-control-layout",
29
29
  "name": "Layout",
30
30
  "template": "<style>\n #control-layout {\n display: flex;\n gap: 48px;\n flex-direction: column;\n min-width: 300px;\n nve-control {\n outline: 1px solid red;\n }\n nve-control-group {\n outline: 1px solid blue;\n }\n }\n</style>\n<div id=\"control-layout\">\n <nve-control>\n <label>vertical</label>\n <input />\n </nve-control>\n <nve-control>\n <label>vertical</label>\n <input />\n <nve-control-message>message</nve-control-message>\n </nve-control>\n <nve-control layout=\"horizontal\">\n <label>horizontal</label>\n <input />\n </nve-control>\n <nve-control layout=\"horizontal\">\n <label>horizontal</label>\n <input />\n <nve-control-message>message</nve-control-message>\n </nve-control>\n <nve-control-group layout=\"vertical\">\n <label>vertical</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n </nve-control-group>\n <nve-control-group layout=\"vertical\">\n <label>vertical</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n </nve-control-group>\n <nve-control-group layout=\"vertical-inline\">\n <label>vertical-inline</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n </nve-control-group>\n <nve-control-group layout=\"vertical-inline\">\n <label>vertical-inline</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n </nve-control-group>\n <nve-control-group layout=\"horizontal\">\n <label>horizontal</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n </nve-control-group>\n <nve-control-group layout=\"horizontal\">\n <label>horizontal</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n </nve-control-group>\n <nve-control-group layout=\"horizontal-inline\">\n <label>horizontal-inline</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n </nve-control-group>\n <nve-control-group layout=\"horizontal-inline\">\n <label>horizontal-inline</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n </nve-control-group>\n</div>\n",
31
31
  "summary": "All control and control-group layout variations (vertical, horizontal, inline) with visual debugging.",
@@ -36,7 +36,7 @@
36
36
  ]
37
37
  },
38
38
  {
39
- "id": "core-forms-control_required-field",
39
+ "id": "forms-control-required-field",
40
40
  "name": "RequiredField",
41
41
  "template": "<nve-control>\n <label>validation</label>\n <input required />\n <nve-control-message>message</nve-control-message>\n <nve-control-message error=\"valueMissing\">required</nve-control-message>\n</nve-control>\n",
42
42
  "summary": "Form control with HTML5 validation showing required field error messaging.",
@@ -47,7 +47,7 @@
47
47
  ]
48
48
  },
49
49
  {
50
- "id": "core-forms-control_no-label-control",
50
+ "id": "forms-control-no-label-control",
51
51
  "name": "NoLabelControl",
52
52
  "template": "<nve-control>\n <input type=\"search\" aria-label=\"search\" placeholder=\"search\" />\n</nve-control>\n",
53
53
  "summary": "Form control without visible label using aria-label for accessibility in compact layouts.",
@@ -58,7 +58,7 @@
58
58
  ]
59
59
  },
60
60
  {
61
- "id": "core-forms-control_inline-control",
61
+ "id": "forms-control-inline-control",
62
62
  "name": "InlineControl",
63
63
  "template": "<nve-control>\n <label>enable logging</label>\n <input type=\"checkbox\" checked />\n</nve-control>\n",
64
64
  "summary": "Inline control layout with checkbox positioned before its label for toggle-style inputs.",
@@ -69,7 +69,7 @@
69
69
  ]
70
70
  },
71
71
  {
72
- "id": "core-forms-control_group",
72
+ "id": "forms-control-group",
73
73
  "name": "Group",
74
74
  "template": "<nve-control-group>\n <label>environment</label>\n <nve-control>\n <label>local</label>\n <input type=\"radio\" name=\"radio-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"radio\" name=\"radio-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"radio\" name=\"radio-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n</nve-control-group>\n<br />\n<nve-control-group>\n <label>environment</label>\n <nve-control>\n <label>local</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"1\" checked />\n </nve-control>\n <nve-control>\n <label>staging</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"2\" />\n </nve-control>\n <nve-control>\n <label>production</label>\n <input type=\"checkbox\" name=\"checkbox-group\" value=\"3\" />\n </nve-control>\n <nve-control-message>message</nve-control-message>\n</nve-control-group>\n",
75
75
  "summary": "Control group organizing related radio buttons and checkboxes with shared label and messaging.",
@@ -80,7 +80,7 @@
80
80
  ]
81
81
  },
82
82
  {
83
- "id": "core-forms-control_date-control",
83
+ "id": "forms-control-date-control",
84
84
  "name": "DateControl",
85
85
  "template": "<nve-control>\n <label>date</label>\n <input type=\"date\" />\n <nve-control-message>message</nve-control-message>\n</nve-control>\n",
86
86
  "summary": "Form control wrapping a native date input with label and message support.",
@@ -91,7 +91,7 @@
91
91
  ]
92
92
  },
93
93
  {
94
- "id": "core-forms-control_textarea-control",
94
+ "id": "forms-control-textarea-control",
95
95
  "name": "TextareaControl",
96
96
  "template": "<nve-control>\n <label>about</label>\n <textarea></textarea>\n <nve-control-message>message</nve-control-message>\n</nve-control>\n",
97
97
  "summary": "Form control wrapping a textarea element for multi-line text input.",
@@ -102,7 +102,7 @@
102
102
  ]
103
103
  },
104
104
  {
105
- "id": "core-forms-control_datalist",
105
+ "id": "forms-control-datalist",
106
106
  "name": "Datalist",
107
107
  "template": "<nve-control>\n <label>search</label>\n <input type=\"search\" />\n <datalist>\n <option value=\"option 1\"></option>\n <option value=\"option 2\"></option>\n <option value=\"option 3\"></option>\n </datalist>\n</nve-control>\n",
108
108
  "summary": "Form control with datalist providing autocomplete suggestions for search input.",
@@ -113,7 +113,7 @@
113
113
  ]
114
114
  },
115
115
  {
116
- "id": "core-forms-control_status",
116
+ "id": "forms-control-status",
117
117
  "name": "Status",
118
118
  "template": "<div nve-layout=\"column gap:md\">\n <nve-control>\n <label>label</label>\n <input />\n <nve-control-message>message</nve-control-message>\n </nve-control>\n <nve-control>\n <label>disabled</label>\n <input disabled />\n <nve-control-message>message</nve-control-message>\n </nve-control>\n <nve-control>\n <label>success</label>\n <input />\n <nve-control-message status=\"success\">message</nve-control-message>\n </nve-control>\n <nve-control>\n <label>error</label>\n <input />\n <nve-control-message status=\"error\">message</nve-control-message>\n </nve-control>\n</div>\n",
119
119
  "summary": "Form controls showing all status states (default, disabled, success, error) for validation feedback.",
@@ -40,7 +40,7 @@ var C = class extends v {
40
40
  static {
41
41
  this.metadata = {
42
42
  tag: "nve-control",
43
- version: "0.0.10"
43
+ version: "0.0.12"
44
44
  };
45
45
  }
46
46
  render() {
@@ -24,7 +24,7 @@ var m = class extends d {
24
24
  static {
25
25
  this.metadata = {
26
26
  tag: "nve-control-group",
27
- version: "0.0.10"
27
+ version: "0.0.12"
28
28
  };
29
29
  }
30
30
  render() {
@@ -23,7 +23,7 @@ var l = {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-control-message",
26
- version: "0.0.10"
26
+ version: "0.0.12"
27
27
  };
28
28
  }
29
29
  static {