@neo4j-ndl/react 4.25.7 → 5.0.0-alpha.0.3d763f7

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 (1185) hide show
  1. package/lib/LICENSES.txt +3453 -9363
  2. package/lib/NOTICE.txt +1385 -1963
  3. package/lib/cjs/_generated/style-rules/index.js +5 -11
  4. package/lib/cjs/_generated/style-rules/index.js.map +1 -1
  5. package/lib/cjs/_generated/style-rules/literal-guards.js +50 -0
  6. package/lib/cjs/_generated/style-rules/literal-guards.js.map +1 -0
  7. package/lib/cjs/_generated/style-rules/literal-schemas.js +6 -21
  8. package/lib/cjs/_generated/style-rules/literal-schemas.js.map +1 -1
  9. package/lib/cjs/{text-overflow/index.js → _generated/style-rules/literal-types.js} +9 -6
  10. package/lib/cjs/_generated/style-rules/literal-types.js.map +1 -0
  11. package/lib/cjs/_generated/style-rules/numeric-utils.js.map +1 -1
  12. package/lib/cjs/_generated/style-rules/range-utils.js.map +1 -1
  13. package/lib/cjs/ai/presence/stories/ai-presence-default.story.js +1 -1
  14. package/lib/cjs/ai/presence/stories/ai-presence-default.story.js.map +1 -1
  15. package/lib/cjs/ai/presence/stories/ai-presence-thinking.story.js +1 -1
  16. package/lib/cjs/ai/presence/stories/ai-presence-thinking.story.js.map +1 -1
  17. package/lib/cjs/ai/reasoning/Reasoning.js +1 -1
  18. package/lib/cjs/ai/reasoning/Reasoning.js.map +1 -1
  19. package/lib/cjs/ai/reasoning/stories/reasoning-full.story.js +1 -1
  20. package/lib/cjs/ai/reasoning/stories/reasoning-full.story.js.map +1 -1
  21. package/lib/cjs/ai/response/Response.js +56 -2
  22. package/lib/cjs/ai/response/Response.js.map +1 -1
  23. package/lib/cjs/ai/response/stories/response-fixtures.js +86 -0
  24. package/lib/cjs/ai/response/stories/response-fixtures.js.map +1 -0
  25. package/lib/cjs/ai/response/stories/response-full-example.story.js +3 -3
  26. package/lib/cjs/ai/response/stories/response-full-example.story.js.map +1 -1
  27. package/lib/cjs/ai/suggestion/stories/suggestion-sizes.story.js +1 -1
  28. package/lib/cjs/ai/suggestion/stories/suggestion-sizes.story.js.map +1 -1
  29. package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
  30. package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
  31. package/lib/cjs/announcement-banner/stories/announcement-banner-custom-icons.story.js +1 -1
  32. package/lib/cjs/announcement-banner/stories/announcement-banner-custom-icons.story.js.map +1 -1
  33. package/lib/cjs/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js +1 -1
  34. package/lib/cjs/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js.map +1 -1
  35. package/lib/cjs/announcement-banner/stories/announcement-banner-injected-urgent.story.js +1 -1
  36. package/lib/cjs/announcement-banner/stories/announcement-banner-injected-urgent.story.js.map +1 -1
  37. package/lib/cjs/announcement-banner/stories/announcement-banner-present-at-page-render.story.js +1 -1
  38. package/lib/cjs/announcement-banner/stories/announcement-banner-present-at-page-render.story.js.map +1 -1
  39. package/lib/cjs/announcement-banner/stories/announcement-banner-variants.story.js +1 -1
  40. package/lib/cjs/announcement-banner/stories/announcement-banner-variants.story.js.map +1 -1
  41. package/lib/cjs/announcement-banner/stories/announcement-banner-with-page-content.story.js +1 -1
  42. package/lib/cjs/announcement-banner/stories/announcement-banner-with-page-content.story.js.map +1 -1
  43. package/lib/cjs/avatar/stories/avatar-custom-icon.story.js +1 -1
  44. package/lib/cjs/avatar/stories/avatar-custom-icon.story.js.map +1 -1
  45. package/lib/cjs/avatar/stories/avatar-shapes.story.js +1 -1
  46. package/lib/cjs/avatar/stories/avatar-shapes.story.js.map +1 -1
  47. package/lib/cjs/avatar/stories/avatar-sizes.story.js +1 -1
  48. package/lib/cjs/avatar/stories/avatar-sizes.story.js.map +1 -1
  49. package/lib/cjs/avatar/stories/avatar-statuses.story.js +1 -1
  50. package/lib/cjs/avatar/stories/avatar-statuses.story.js.map +1 -1
  51. package/lib/cjs/avatar/stories/avatar-types.story.js +1 -1
  52. package/lib/cjs/avatar/stories/avatar-types.story.js.map +1 -1
  53. package/lib/cjs/banner/stories/banner-variants.story.js +1 -1
  54. package/lib/cjs/banner/stories/banner-variants.story.js.map +1 -1
  55. package/lib/cjs/banner/stories/banner-with-icons.story.js +1 -1
  56. package/lib/cjs/banner/stories/banner-with-icons.story.js.map +1 -1
  57. package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js +1 -1
  58. package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
  59. package/lib/cjs/button/ButtonBase.js +1 -3
  60. package/lib/cjs/button/ButtonBase.js.map +1 -1
  61. package/lib/cjs/button/stories/button-sizes.story.js +1 -1
  62. package/lib/cjs/button/stories/button-sizes.story.js.map +1 -1
  63. package/lib/cjs/button/stories/button-variants.story.js +1 -1
  64. package/lib/cjs/button/stories/button-variants.story.js.map +1 -1
  65. package/lib/cjs/checkbox/stories/checkbox-full.story.js +2 -2
  66. package/lib/cjs/checkbox/stories/checkbox-full.story.js.map +1 -1
  67. package/lib/cjs/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js +1 -1
  68. package/lib/cjs/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js.map +1 -1
  69. package/lib/cjs/clean-icon-button/stories/clean-icon-button-sizes.story.js +1 -1
  70. package/lib/cjs/clean-icon-button/stories/clean-icon-button-sizes.story.js.map +1 -1
  71. package/lib/cjs/clean-icon-button/stories/clean-icon-button-tone.story.js +1 -1
  72. package/lib/cjs/clean-icon-button/stories/clean-icon-button-tone.story.js.map +1 -1
  73. package/lib/cjs/clipboard-button/stories/clipboard-button-sizes.story.js +1 -1
  74. package/lib/cjs/clipboard-button/stories/clipboard-button-sizes.story.js.map +1 -1
  75. package/lib/cjs/code-block/CodeBlock.js +3 -7
  76. package/lib/cjs/code-block/CodeBlock.js.map +1 -1
  77. package/lib/cjs/code-block/stories/code-disabled.story.js +2 -2
  78. package/lib/cjs/code-block/stories/code-disabled.story.js.map +1 -1
  79. package/lib/cjs/code-block/stories/code-full.story.js +2 -2
  80. package/lib/cjs/code-block/stories/code-full.story.js.map +1 -1
  81. package/lib/cjs/code-block/stories/code-languages.story.js +1 -1
  82. package/lib/cjs/code-block/stories/code-languages.story.js.map +1 -1
  83. package/lib/cjs/code-block/stories/code-with-actions.story.js +2 -2
  84. package/lib/cjs/code-block/stories/code-with-actions.story.js.map +1 -1
  85. package/lib/cjs/color-picker/ColorPicker.js +0 -3
  86. package/lib/cjs/color-picker/ColorPicker.js.map +1 -1
  87. package/lib/cjs/color-picker/stories/color-picker-dialog.story.js +1 -1
  88. package/lib/cjs/color-picker/stories/color-picker-dialog.story.js.map +1 -1
  89. package/lib/cjs/color-picker/stories/color-picker-popover.story.js +1 -1
  90. package/lib/cjs/color-picker/stories/color-picker-popover.story.js.map +1 -1
  91. package/lib/cjs/combobox/stories/combobox-action-on-select.story.js +1 -1
  92. package/lib/cjs/combobox/stories/combobox-action-on-select.story.js.map +1 -1
  93. package/lib/cjs/combobox/stories/combobox-actions.story.js +1 -1
  94. package/lib/cjs/combobox/stories/combobox-actions.story.js.map +1 -1
  95. package/lib/cjs/combobox/stories/combobox-async.story.js +2 -2
  96. package/lib/cjs/combobox/stories/combobox-async.story.js.map +1 -1
  97. package/lib/cjs/combobox/stories/combobox-disabled.story.js +1 -1
  98. package/lib/cjs/combobox/stories/combobox-disabled.story.js.map +1 -1
  99. package/lib/cjs/combobox/stories/combobox-fluid.story.js +1 -1
  100. package/lib/cjs/combobox/stories/combobox-fluid.story.js.map +1 -1
  101. package/lib/cjs/combobox/stories/combobox-hidden-label.story.js +1 -1
  102. package/lib/cjs/combobox/stories/combobox-hidden-label.story.js.map +1 -1
  103. package/lib/cjs/combobox/stories/combobox-in-popover-dialog.story.js +1 -1
  104. package/lib/cjs/combobox/stories/combobox-in-popover-dialog.story.js.map +1 -1
  105. package/lib/cjs/combobox/stories/combobox-in-popover.story.js +1 -1
  106. package/lib/cjs/combobox/stories/combobox-in-popover.story.js.map +1 -1
  107. package/lib/cjs/combobox/stories/combobox-native-form.story.js +1 -1
  108. package/lib/cjs/combobox/stories/combobox-native-form.story.js.map +1 -1
  109. package/lib/cjs/combobox/stories/combobox-sizes.story.js +1 -1
  110. package/lib/cjs/combobox/stories/combobox-sizes.story.js.map +1 -1
  111. package/lib/cjs/combobox/stories/combobox-validation.story.js +1 -1
  112. package/lib/cjs/combobox/stories/combobox-validation.story.js.map +1 -1
  113. package/lib/cjs/conditional-wrap/stories/conditional-wrap-default.story.js +1 -1
  114. package/lib/cjs/conditional-wrap/stories/conditional-wrap-default.story.js.map +1 -1
  115. package/lib/cjs/data-grid/stories/datagrid-compact-mode.story.js +1 -1
  116. package/lib/cjs/data-grid/stories/datagrid-compact-mode.story.js.map +1 -1
  117. package/lib/cjs/data-grid/stories/datagrid-component-overriding.story.js +2 -2
  118. package/lib/cjs/data-grid/stories/datagrid-component-overriding.story.js.map +1 -1
  119. package/lib/cjs/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js +1 -1
  120. package/lib/cjs/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js.map +1 -1
  121. package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js +2 -2
  122. package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
  123. package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js +1 -1
  124. package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
  125. package/lib/cjs/data-grid/stories/datagrid-kitchen-sink.story.js +1 -1
  126. package/lib/cjs/data-grid/stories/datagrid-kitchen-sink.story.js.map +1 -1
  127. package/lib/cjs/data-grid/stories/datagrid-percentage-width-columns.story.js +1 -1
  128. package/lib/cjs/data-grid/stories/datagrid-percentage-width-columns.story.js.map +1 -1
  129. package/lib/cjs/data-grid/stories/datagrid-pinned-columns.stories.js +3 -3
  130. package/lib/cjs/data-grid/stories/datagrid-pinned-columns.stories.js.map +1 -1
  131. package/lib/cjs/data-grid/stories/datagrid-placeholder-states.story.js +1 -1
  132. package/lib/cjs/data-grid/stories/datagrid-placeholder-states.story.js.map +1 -1
  133. package/lib/cjs/data-grid/stories/datagrid-resizable-column.story.js +1 -1
  134. package/lib/cjs/data-grid/stories/datagrid-resizable-column.story.js.map +1 -1
  135. package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +1 -1
  136. package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
  137. package/lib/cjs/data-grid/stories/datagrid-rule-based-styling.story.js +1 -1
  138. package/lib/cjs/data-grid/stories/datagrid-rule-based-styling.story.js.map +1 -1
  139. package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js +5 -5
  140. package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
  141. package/lib/cjs/data-grid/stories/datagrid-simple.story.js +1 -1
  142. package/lib/cjs/data-grid/stories/datagrid-simple.story.js.map +1 -1
  143. package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js +1 -1
  144. package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
  145. package/lib/cjs/data-grid/stories/datagrid-skeleton-loading.story.js +1 -1
  146. package/lib/cjs/data-grid/stories/datagrid-skeleton-loading.story.js.map +1 -1
  147. package/lib/cjs/data-grid/stories/datagrid-sortable.story.js +1 -1
  148. package/lib/cjs/data-grid/stories/datagrid-sortable.story.js.map +1 -1
  149. package/lib/cjs/data-grid/stories/datagrid-using-editable-cells.story.js +2 -2
  150. package/lib/cjs/data-grid/stories/datagrid-using-editable-cells.story.js.map +1 -1
  151. package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js +3 -3
  152. package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
  153. package/lib/cjs/data-grid/style-rules/guard.js +47 -0
  154. package/lib/cjs/data-grid/style-rules/guard.js.map +1 -0
  155. package/lib/cjs/data-grid/style-rules/index.js +3 -19
  156. package/lib/cjs/data-grid/style-rules/index.js.map +1 -1
  157. package/lib/cjs/data-grid/style-rules/internal/schemas.js +213 -0
  158. package/lib/cjs/data-grid/style-rules/internal/schemas.js.map +1 -0
  159. package/lib/cjs/data-grid/style-rules/types.js +0 -205
  160. package/lib/cjs/data-grid/style-rules/types.js.map +1 -1
  161. package/lib/cjs/date-picker/DatePicker.js +8 -6
  162. package/lib/cjs/date-picker/DatePicker.js.map +1 -1
  163. package/lib/cjs/date-picker/stories/date-picker-in-dialog.story.js +1 -1
  164. package/lib/cjs/date-picker/stories/date-picker-in-dialog.story.js.map +1 -1
  165. package/lib/cjs/date-picker/stories/date-picker-in-popover-dialog.story.js +1 -1
  166. package/lib/cjs/date-picker/stories/date-picker-in-popover-dialog.story.js.map +1 -1
  167. package/lib/cjs/dialog/Dialog.js +1 -2
  168. package/lib/cjs/dialog/Dialog.js.map +1 -1
  169. package/lib/cjs/dialog/stories/dialog-danger.story.js +1 -1
  170. package/lib/cjs/dialog/stories/dialog-danger.story.js.map +1 -1
  171. package/lib/cjs/dialog/stories/dialog-default.story.js +1 -1
  172. package/lib/cjs/dialog/stories/dialog-default.story.js.map +1 -1
  173. package/lib/cjs/dialog/stories/dialog-image.story.js +1 -1
  174. package/lib/cjs/dialog/stories/dialog-image.story.js.map +1 -1
  175. package/lib/cjs/dialog/stories/dialog-info.story.js +1 -1
  176. package/lib/cjs/dialog/stories/dialog-info.story.js.map +1 -1
  177. package/lib/cjs/dialog/stories/dialog-top-aligned.story.js +2 -2
  178. package/lib/cjs/dialog/stories/dialog-top-aligned.story.js.map +1 -1
  179. package/lib/cjs/dialog/stories/dialog-variants.story.js +1 -1
  180. package/lib/cjs/dialog/stories/dialog-variants.story.js.map +1 -1
  181. package/lib/cjs/dialog/stories/dialog-warning.story.js +1 -1
  182. package/lib/cjs/dialog/stories/dialog-warning.story.js.map +1 -1
  183. package/lib/cjs/dismissible-tag/stories/dismissible-tag-colors.story.js +1 -1
  184. package/lib/cjs/dismissible-tag/stories/dismissible-tag-colors.story.js.map +1 -1
  185. package/lib/cjs/dismissible-tag/stories/dismissible-tag-sizes.story.js +1 -1
  186. package/lib/cjs/dismissible-tag/stories/dismissible-tag-sizes.story.js.map +1 -1
  187. package/lib/cjs/drawer/Drawer.js +7 -6
  188. package/lib/cjs/drawer/Drawer.js.map +1 -1
  189. package/lib/cjs/drawer/stories/drawer-full.story.js +2 -2
  190. package/lib/cjs/drawer/stories/drawer-full.story.js.map +1 -1
  191. package/lib/cjs/drawer/stories/drawer-not-closeable.story.js +2 -2
  192. package/lib/cjs/drawer/stories/drawer-not-closeable.story.js.map +1 -1
  193. package/lib/cjs/drawer/stories/drawer-overlay.story.js +1 -1
  194. package/lib/cjs/drawer/stories/drawer-overlay.story.js.map +1 -1
  195. package/lib/cjs/drawer/stories/drawer-portaled.story.js +2 -2
  196. package/lib/cjs/drawer/stories/drawer-portaled.story.js.map +1 -1
  197. package/lib/cjs/drawer/stories/drawer-push.story.js +2 -2
  198. package/lib/cjs/drawer/stories/drawer-push.story.js.map +1 -1
  199. package/lib/cjs/drawer/stories/drawer-resizable.story.js +2 -2
  200. package/lib/cjs/drawer/stories/drawer-resizable.story.js.map +1 -1
  201. package/lib/cjs/drawer/stories/drawer-right-side.story.js +2 -2
  202. package/lib/cjs/drawer/stories/drawer-right-side.story.js.map +1 -1
  203. package/lib/cjs/drawer/stories/drawer-scrollable.story.js +2 -2
  204. package/lib/cjs/drawer/stories/drawer-scrollable.story.js.map +1 -1
  205. package/lib/cjs/dropzone/stories/dropzone-full.story.js +3 -3
  206. package/lib/cjs/dropzone/stories/dropzone-full.story.js.map +1 -1
  207. package/lib/cjs/flex/stories/flex-default.story.js +1 -1
  208. package/lib/cjs/flex/stories/flex-default.story.js.map +1 -1
  209. package/lib/cjs/graph-label/stories/graph-label-color.story.js +1 -1
  210. package/lib/cjs/graph-label/stories/graph-label-color.story.js.map +1 -1
  211. package/lib/cjs/graph-label/stories/graph-label-sizes.story.js +1 -1
  212. package/lib/cjs/graph-label/stories/graph-label-sizes.story.js.map +1 -1
  213. package/lib/cjs/graph-label/stories/graph-label-types.story.js +1 -1
  214. package/lib/cjs/graph-label/stories/graph-label-types.story.js.map +1 -1
  215. package/lib/cjs/hooks/use-debounce-callback/index.js +6 -6
  216. package/lib/cjs/hooks/use-debounce-callback/index.js.map +1 -1
  217. package/lib/cjs/icon-button/stories/icon-button-sizes.story.js +1 -1
  218. package/lib/cjs/icon-button/stories/icon-button-sizes.story.js.map +1 -1
  219. package/lib/cjs/icon-button/stories/icon-button-tone.story.js +1 -1
  220. package/lib/cjs/icon-button/stories/icon-button-tone.story.js.map +1 -1
  221. package/lib/cjs/icon-button-array/stories/icon-button-array-sizes.story.js +1 -1
  222. package/lib/cjs/icon-button-array/stories/icon-button-array-sizes.story.js.map +1 -1
  223. package/lib/cjs/icon-button-base/IconButtonBase.js +1 -3
  224. package/lib/cjs/icon-button-base/IconButtonBase.js.map +1 -1
  225. package/lib/cjs/icons/generated/custom/index.js +3 -17
  226. package/lib/cjs/icons/generated/custom/index.js.map +1 -1
  227. package/lib/cjs/inline-edit/InlineEdit.js +3 -2
  228. package/lib/cjs/inline-edit/InlineEdit.js.map +1 -1
  229. package/lib/cjs/kbd/Kbd.js +0 -1
  230. package/lib/cjs/kbd/Kbd.js.map +1 -1
  231. package/lib/cjs/loading-spinner/stories/loading-spinner-sizes.story.js +1 -1
  232. package/lib/cjs/loading-spinner/stories/loading-spinner-sizes.story.js.map +1 -1
  233. package/lib/cjs/logo/stories/logo-black.story.js +1 -1
  234. package/lib/cjs/logo/stories/logo-black.story.js.map +1 -1
  235. package/lib/cjs/logo/stories/logo-default.story.js +1 -1
  236. package/lib/cjs/logo/stories/logo-default.story.js.map +1 -1
  237. package/lib/cjs/logo/stories/logo-icon.story.js +1 -1
  238. package/lib/cjs/logo/stories/logo-icon.story.js.map +1 -1
  239. package/lib/cjs/menu/Menu.js +2 -2
  240. package/lib/cjs/menu/Menu.js.map +1 -1
  241. package/lib/cjs/menu/menu-types.js.map +1 -1
  242. package/lib/cjs/menu/stories/menu-custom-items.story.js +1 -1
  243. package/lib/cjs/menu/stories/menu-custom-items.story.js.map +1 -1
  244. package/lib/cjs/menu/stories/menu-in-dialog.story.js +2 -2
  245. package/lib/cjs/menu/stories/menu-in-dialog.story.js.map +1 -1
  246. package/lib/cjs/menu/stories/menu-nested.story.js +1 -1
  247. package/lib/cjs/menu/stories/menu-nested.story.js.map +1 -1
  248. package/lib/cjs/menu/stories/menu-radio-and-normal.story.js +1 -1
  249. package/lib/cjs/menu/stories/menu-radio-and-normal.story.js.map +1 -1
  250. package/lib/cjs/menu/stories/menu-radio-items.story.js +1 -1
  251. package/lib/cjs/menu/stories/menu-radio-items.story.js.map +1 -1
  252. package/lib/cjs/menu/stories/menu-with-icon.story.js +1 -1
  253. package/lib/cjs/menu/stories/menu-with-icon.story.js.map +1 -1
  254. package/lib/cjs/next/tree-view/TreeView.js +3 -3
  255. package/lib/cjs/next/tree-view/TreeView.js.map +1 -1
  256. package/lib/cjs/next/tree-view/stories/tree-view-large.story.js +1 -1
  257. package/lib/cjs/next/tree-view/stories/tree-view-large.story.js.map +1 -1
  258. package/lib/cjs/next/tree-view/stories/tree-view-multiple-replace.story.js +1 -1
  259. package/lib/cjs/next/tree-view/stories/tree-view-multiple-replace.story.js.map +1 -1
  260. package/lib/cjs/next/tree-view/stories/tree-view-root-selection.story.js +1 -1
  261. package/lib/cjs/next/tree-view/stories/tree-view-root-selection.story.js.map +1 -1
  262. package/lib/cjs/next/tree-view/stories/tree-view-tooltip.story.js +1 -1
  263. package/lib/cjs/next/tree-view/stories/tree-view-tooltip.story.js.map +1 -1
  264. package/lib/cjs/next/tree-view/stories/tree-view-trailing.story.js +1 -1
  265. package/lib/cjs/next/tree-view/stories/tree-view-trailing.story.js.map +1 -1
  266. package/lib/cjs/next/tree-view/stories/tree-view-uncontrolled.story.js +1 -1
  267. package/lib/cjs/next/tree-view/stories/tree-view-uncontrolled.story.js.map +1 -1
  268. package/lib/cjs/popover/Popover.js +6 -6
  269. package/lib/cjs/popover/Popover.js.map +1 -1
  270. package/lib/cjs/popover/stories/popover-controlled.story.js +1 -1
  271. package/lib/cjs/popover/stories/popover-controlled.story.js.map +1 -1
  272. package/lib/cjs/popover/stories/popover-custom-offset.story.js +1 -1
  273. package/lib/cjs/popover/stories/popover-custom-offset.story.js.map +1 -1
  274. package/lib/cjs/popover/stories/popover-default.story.js +1 -1
  275. package/lib/cjs/popover/stories/popover-default.story.js.map +1 -1
  276. package/lib/cjs/popover/stories/popover-in-dialog.story.js +1 -1
  277. package/lib/cjs/popover/stories/popover-in-dialog.story.js.map +1 -1
  278. package/lib/cjs/popover/stories/popover-no-button-wrapper.story.js +1 -1
  279. package/lib/cjs/popover/stories/popover-no-button-wrapper.story.js.map +1 -1
  280. package/lib/cjs/popover/stories/popover-separate-anchor.story.js +1 -1
  281. package/lib/cjs/popover/stories/popover-separate-anchor.story.js.map +1 -1
  282. package/lib/cjs/popover/use-popover.js +7 -9
  283. package/lib/cjs/popover/use-popover.js.map +1 -1
  284. package/lib/cjs/progress-bar/stories/progress-bar-sizes.story.js +1 -1
  285. package/lib/cjs/progress-bar/stories/progress-bar-sizes.story.js.map +1 -1
  286. package/lib/cjs/radio/stories/radio-disabled.story.js +1 -1
  287. package/lib/cjs/radio/stories/radio-disabled.story.js.map +1 -1
  288. package/lib/cjs/radio/stories/radio-truncated-label.story.js +1 -1
  289. package/lib/cjs/radio/stories/radio-truncated-label.story.js.map +1 -1
  290. package/lib/cjs/read-only-tag/stories/read-only-tag-colors.story.js +1 -1
  291. package/lib/cjs/read-only-tag/stories/read-only-tag-colors.story.js.map +1 -1
  292. package/lib/cjs/read-only-tag/stories/read-only-tag-sizes.story.js +1 -1
  293. package/lib/cjs/read-only-tag/stories/read-only-tag-sizes.story.js.map +1 -1
  294. package/lib/cjs/segmented-control/stories/segmented-control-sizes.story.js +1 -1
  295. package/lib/cjs/segmented-control/stories/segmented-control-sizes.story.js.map +1 -1
  296. package/lib/cjs/select/stories/select-controlled.story.js +1 -1
  297. package/lib/cjs/select/stories/select-controlled.story.js.map +1 -1
  298. package/lib/cjs/select/stories/select-custom-label.story.js +1 -1
  299. package/lib/cjs/select/stories/select-custom-label.story.js.map +1 -1
  300. package/lib/cjs/select/stories/select-inside-dialog.story.js +1 -1
  301. package/lib/cjs/select/stories/select-inside-dialog.story.js.map +1 -1
  302. package/lib/cjs/select/stories/select-menu-positionings.story.js +1 -1
  303. package/lib/cjs/select/stories/select-menu-positionings.story.js.map +1 -1
  304. package/lib/cjs/select/stories/select-required.story.js +1 -1
  305. package/lib/cjs/select/stories/select-required.story.js.map +1 -1
  306. package/lib/cjs/select/stories/select-sizes.story.js +1 -1
  307. package/lib/cjs/select/stories/select-sizes.story.js.map +1 -1
  308. package/lib/cjs/select-icon-button/stories/select-icon-button-sizes.story.js +1 -1
  309. package/lib/cjs/select-icon-button/stories/select-icon-button-sizes.story.js.map +1 -1
  310. package/lib/cjs/select-icon-button/stories/select-icon-button-states.story.js +1 -1
  311. package/lib/cjs/select-icon-button/stories/select-icon-button-states.story.js.map +1 -1
  312. package/lib/cjs/selectable-tag/stories/selectable-tag-disabled.story.js +1 -1
  313. package/lib/cjs/selectable-tag/stories/selectable-tag-disabled.story.js.map +1 -1
  314. package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
  315. package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
  316. package/lib/cjs/side-navigation/SideNavigation.js.map +1 -1
  317. package/lib/cjs/side-navigation/stories/side-nav-badges.story.js +2 -2
  318. package/lib/cjs/side-navigation/stories/side-nav-badges.story.js.map +1 -1
  319. package/lib/cjs/side-navigation/stories/side-nav-compact.story.js +1 -1
  320. package/lib/cjs/side-navigation/stories/side-nav-compact.story.js.map +1 -1
  321. package/lib/cjs/side-navigation/stories/side-nav-default.story.js +1 -1
  322. package/lib/cjs/side-navigation/stories/side-nav-default.story.js.map +1 -1
  323. package/lib/cjs/side-navigation/stories/side-nav-secondary.story.js +1 -1
  324. package/lib/cjs/side-navigation/stories/side-nav-secondary.story.js.map +1 -1
  325. package/lib/cjs/skeleton/stories/skeleton-circular.story.js +1 -1
  326. package/lib/cjs/skeleton/stories/skeleton-circular.story.js.map +1 -1
  327. package/lib/cjs/skeleton/stories/skeleton-default.story.js +1 -1
  328. package/lib/cjs/skeleton/stories/skeleton-default.story.js.map +1 -1
  329. package/lib/cjs/skeleton/stories/skeleton-full-example.story.js +1 -1
  330. package/lib/cjs/skeleton/stories/skeleton-full-example.story.js.map +1 -1
  331. package/lib/cjs/skeleton/stories/skeleton-inherit-height.story.js +1 -1
  332. package/lib/cjs/skeleton/stories/skeleton-inherit-height.story.js.map +1 -1
  333. package/lib/cjs/skeleton/stories/skeleton-inherit-width.story.js +1 -1
  334. package/lib/cjs/skeleton/stories/skeleton-inherit-width.story.js.map +1 -1
  335. package/lib/cjs/slider/Slider.js +3 -3
  336. package/lib/cjs/slider/Slider.js.map +1 -1
  337. package/lib/cjs/slider/stories/slider-custom-step-length.story.js +1 -1
  338. package/lib/cjs/slider/stories/slider-custom-step-length.story.js.map +1 -1
  339. package/lib/cjs/slider/stories/slider-range.story.js +1 -1
  340. package/lib/cjs/slider/stories/slider-range.story.js.map +1 -1
  341. package/lib/cjs/slider/stories/slider-show-steps.story.js +1 -1
  342. package/lib/cjs/slider/stories/slider-show-steps.story.js.map +1 -1
  343. package/lib/cjs/slider/stories/slider-show-values.story.js +1 -1
  344. package/lib/cjs/slider/stories/slider-show-values.story.js.map +1 -1
  345. package/lib/cjs/slider/stories/slider-single-controlled.story.js +2 -2
  346. package/lib/cjs/slider/stories/slider-single-controlled.story.js.map +1 -1
  347. package/lib/cjs/slider/stories/slider-single.story.js +1 -1
  348. package/lib/cjs/slider/stories/slider-single.story.js.map +1 -1
  349. package/lib/cjs/spotlight/Spotlight.js +3 -3
  350. package/lib/cjs/spotlight/Spotlight.js.map +1 -1
  351. package/lib/cjs/spotlight/SpotlightTarget.js +3 -3
  352. package/lib/cjs/spotlight/SpotlightTarget.js.map +1 -1
  353. package/lib/cjs/spotlight/stories/spotlight-fixed-positioning.story.js +1 -1
  354. package/lib/cjs/spotlight/stories/spotlight-fixed-positioning.story.js.map +1 -1
  355. package/lib/cjs/spotlight/stories/spotlight-in-dialog.story.js +1 -1
  356. package/lib/cjs/spotlight/stories/spotlight-in-dialog.story.js.map +1 -1
  357. package/lib/cjs/spotlight/stories/spotlight-in-side-nav.story.js +1 -1
  358. package/lib/cjs/spotlight/stories/spotlight-in-side-nav.story.js.map +1 -1
  359. package/lib/cjs/spotlight/stories/spotlight-on-tabs.story.js +1 -1
  360. package/lib/cjs/spotlight/stories/spotlight-on-tabs.story.js.map +1 -1
  361. package/lib/cjs/spotlight/stories/spotlight-tour.story.js +1 -1
  362. package/lib/cjs/spotlight/stories/spotlight-tour.story.js.map +1 -1
  363. package/lib/cjs/spotlight/stories/spotlight-with-icon.story.js +1 -1
  364. package/lib/cjs/spotlight/stories/spotlight-with-icon.story.js.map +1 -1
  365. package/lib/cjs/spotlight/stories/spotlight-with-image.story.js +1 -1
  366. package/lib/cjs/spotlight/stories/spotlight-with-image.story.js.map +1 -1
  367. package/lib/cjs/spotlight/stories/spotlight-with-label.story.js +1 -1
  368. package/lib/cjs/spotlight/stories/spotlight-with-label.story.js.map +1 -1
  369. package/lib/cjs/spotlight/stories/spotlight-with-pointer.story.js +1 -1
  370. package/lib/cjs/spotlight/stories/spotlight-with-pointer.story.js.map +1 -1
  371. package/lib/cjs/spotlight/use-spotlight.js +5 -5
  372. package/lib/cjs/spotlight/use-spotlight.js.map +1 -1
  373. package/lib/cjs/status-indicator/stories/status-indicator-variants.story.js +1 -1
  374. package/lib/cjs/status-indicator/stories/status-indicator-variants.story.js.map +1 -1
  375. package/lib/cjs/status-label/stories/status-label-colors.story.js +1 -1
  376. package/lib/cjs/status-label/stories/status-label-colors.story.js.map +1 -1
  377. package/lib/cjs/status-label/stories/status-label-fills.story.js +1 -1
  378. package/lib/cjs/status-label/stories/status-label-fills.story.js.map +1 -1
  379. package/lib/cjs/status-label/stories/status-label-with-icons.story.js +1 -1
  380. package/lib/cjs/status-label/stories/status-label-with-icons.story.js.map +1 -1
  381. package/lib/cjs/tabs/Tabs.js +2 -2
  382. package/lib/cjs/tabs/Tabs.js.map +1 -1
  383. package/lib/cjs/tabs/stories/tabs-badge.story.js +1 -1
  384. package/lib/cjs/tabs/stories/tabs-badge.story.js.map +1 -1
  385. package/lib/cjs/tabs/stories/tabs-default.story.js +1 -1
  386. package/lib/cjs/tabs/stories/tabs-default.story.js.map +1 -1
  387. package/lib/cjs/tabs/stories/tabs-disabled.story.js +1 -1
  388. package/lib/cjs/tabs/stories/tabs-disabled.story.js.map +1 -1
  389. package/lib/cjs/tabs/stories/tabs-fill-variants.story.js +1 -1
  390. package/lib/cjs/tabs/stories/tabs-fill-variants.story.js.map +1 -1
  391. package/lib/cjs/tabs/stories/tabs-overflow.story.js +1 -1
  392. package/lib/cjs/tabs/stories/tabs-overflow.story.js.map +1 -1
  393. package/lib/cjs/tabs/stories/tabs-sizes.story.js +1 -1
  394. package/lib/cjs/tabs/stories/tabs-sizes.story.js.map +1 -1
  395. package/lib/cjs/tabs/stories/tabs-with-icons.story.js +1 -1
  396. package/lib/cjs/tabs/stories/tabs-with-icons.story.js.map +1 -1
  397. package/lib/cjs/tag/stories/tag-sizes.story.js +1 -1
  398. package/lib/cjs/tag/stories/tag-sizes.story.js.map +1 -1
  399. package/lib/cjs/tag/stories/tag-types.story.js +1 -1
  400. package/lib/cjs/tag/stories/tag-types.story.js.map +1 -1
  401. package/lib/cjs/tag-base/stories/tag-variants.story.js +1 -1
  402. package/lib/cjs/tag-base/stories/tag-variants.story.js.map +1 -1
  403. package/lib/cjs/text-area/stories/text-area-sizes.story.js +1 -1
  404. package/lib/cjs/text-area/stories/text-area-sizes.story.js.map +1 -1
  405. package/lib/cjs/text-input/TextInput.js.map +1 -1
  406. package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js +1 -1
  407. package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js.map +1 -1
  408. package/lib/cjs/text-input/stories/text-input-optional.story.js +1 -1
  409. package/lib/cjs/text-input/stories/text-input-optional.story.js.map +1 -1
  410. package/lib/cjs/text-input/stories/text-input-sizes.story.js +1 -1
  411. package/lib/cjs/text-input/stories/text-input-sizes.story.js.map +1 -1
  412. package/lib/cjs/text-link/TextLink.js +2 -6
  413. package/lib/cjs/text-link/TextLink.js.map +1 -1
  414. package/lib/cjs/text-link/stories/index.js +5 -17
  415. package/lib/cjs/text-link/stories/index.js.map +1 -1
  416. package/lib/cjs/text-link/stories/text-link-external.story.js +1 -1
  417. package/lib/cjs/text-link/stories/text-link-external.story.js.map +1 -1
  418. package/lib/cjs/text-link/stories/{text-link-internal-underline.story.js → text-link-internal.story.js} +2 -2
  419. package/lib/cjs/text-link/stories/text-link-internal.story.js.map +1 -0
  420. package/lib/cjs/time-picker/stories/time-picker-in-popover-dialog.story.js +1 -1
  421. package/lib/cjs/time-picker/stories/time-picker-in-popover-dialog.story.js.map +1 -1
  422. package/lib/cjs/timezone-picker/stories/timezone-picker-in-dialog.story.js +1 -1
  423. package/lib/cjs/timezone-picker/stories/timezone-picker-in-dialog.story.js.map +1 -1
  424. package/lib/cjs/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js +1 -1
  425. package/lib/cjs/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js.map +1 -1
  426. package/lib/cjs/toast/stories/toast-action-story.js +1 -1
  427. package/lib/cjs/toast/stories/toast-action-story.js.map +1 -1
  428. package/lib/cjs/toast/stories/toast-closeable-story.js +1 -1
  429. package/lib/cjs/toast/stories/toast-closeable-story.js.map +1 -1
  430. package/lib/cjs/toast/stories/toast-controlled-story.js +1 -1
  431. package/lib/cjs/toast/stories/toast-controlled-story.js.map +1 -1
  432. package/lib/cjs/toast/stories/toast-custom-story.js +1 -1
  433. package/lib/cjs/toast/stories/toast-custom-story.js.map +1 -1
  434. package/lib/cjs/toast/stories/toast-danger-story.js +1 -1
  435. package/lib/cjs/toast/stories/toast-danger-story.js.map +1 -1
  436. package/lib/cjs/toast/stories/toast-neutral-story.js +1 -1
  437. package/lib/cjs/toast/stories/toast-neutral-story.js.map +1 -1
  438. package/lib/cjs/toast/stories/toast-progress-bar.js +1 -1
  439. package/lib/cjs/toast/stories/toast-progress-bar.js.map +1 -1
  440. package/lib/cjs/toast/stories/toast-success-story.js +1 -1
  441. package/lib/cjs/toast/stories/toast-success-story.js.map +1 -1
  442. package/lib/cjs/tooltip/Tooltip.js.map +1 -1
  443. package/lib/cjs/tooltip/stories/tooltip-in-dialog.story.js +1 -1
  444. package/lib/cjs/tooltip/stories/tooltip-in-dialog.story.js.map +1 -1
  445. package/lib/cjs/tooltip/stories/tooltip-placements.story.js +1 -1
  446. package/lib/cjs/tooltip/stories/tooltip-placements.story.js.map +1 -1
  447. package/lib/cjs/tooltip/use-tooltip.js.map +1 -1
  448. package/lib/cjs/tree-view/TreeView.js +3 -0
  449. package/lib/cjs/tree-view/TreeView.js.map +1 -1
  450. package/lib/cjs/tree-view/TreeViewItem.js.map +1 -1
  451. package/lib/cjs/tree-view/stories/treeview-custom.story.js +2 -2
  452. package/lib/cjs/tree-view/stories/treeview-custom.story.js.map +1 -1
  453. package/lib/cjs/tree-view/tree-view-utils.js.map +1 -1
  454. package/lib/cjs/typography/Typography.js +7 -1
  455. package/lib/cjs/typography/Typography.js.map +1 -1
  456. package/lib/esm/_generated/style-rules/index.js +1 -1
  457. package/lib/esm/_generated/style-rules/index.js.map +1 -1
  458. package/lib/esm/_generated/style-rules/literal-guards.js +45 -0
  459. package/lib/esm/_generated/style-rules/literal-guards.js.map +1 -0
  460. package/lib/esm/_generated/style-rules/literal-schemas.js +6 -18
  461. package/lib/esm/_generated/style-rules/literal-schemas.js.map +1 -1
  462. package/lib/esm/{text-overflow/index.js → _generated/style-rules/literal-types.js} +8 -2
  463. package/lib/esm/_generated/style-rules/literal-types.js.map +1 -0
  464. package/lib/esm/_generated/style-rules/numeric-utils.js.map +1 -1
  465. package/lib/esm/_generated/style-rules/range-utils.js.map +1 -1
  466. package/lib/esm/ai/presence/stories/ai-presence-default.story.js +1 -1
  467. package/lib/esm/ai/presence/stories/ai-presence-default.story.js.map +1 -1
  468. package/lib/esm/ai/presence/stories/ai-presence-thinking.story.js +1 -1
  469. package/lib/esm/ai/presence/stories/ai-presence-thinking.story.js.map +1 -1
  470. package/lib/esm/ai/reasoning/Reasoning.js +1 -1
  471. package/lib/esm/ai/reasoning/Reasoning.js.map +1 -1
  472. package/lib/esm/ai/reasoning/stories/reasoning-full.story.js +1 -1
  473. package/lib/esm/ai/reasoning/stories/reasoning-full.story.js.map +1 -1
  474. package/lib/esm/ai/response/Response.js +57 -3
  475. package/lib/esm/ai/response/Response.js.map +1 -1
  476. package/lib/esm/ai/response/stories/response-fixtures.js +83 -0
  477. package/lib/esm/ai/response/stories/response-fixtures.js.map +1 -0
  478. package/lib/esm/ai/response/stories/response-full-example.story.js +3 -3
  479. package/lib/esm/ai/response/stories/response-full-example.story.js.map +1 -1
  480. package/lib/esm/ai/suggestion/stories/suggestion-sizes.story.js +1 -1
  481. package/lib/esm/ai/suggestion/stories/suggestion-sizes.story.js.map +1 -1
  482. package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
  483. package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
  484. package/lib/esm/announcement-banner/stories/announcement-banner-custom-icons.story.js +1 -1
  485. package/lib/esm/announcement-banner/stories/announcement-banner-custom-icons.story.js.map +1 -1
  486. package/lib/esm/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js +1 -1
  487. package/lib/esm/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js.map +1 -1
  488. package/lib/esm/announcement-banner/stories/announcement-banner-injected-urgent.story.js +1 -1
  489. package/lib/esm/announcement-banner/stories/announcement-banner-injected-urgent.story.js.map +1 -1
  490. package/lib/esm/announcement-banner/stories/announcement-banner-present-at-page-render.story.js +1 -1
  491. package/lib/esm/announcement-banner/stories/announcement-banner-present-at-page-render.story.js.map +1 -1
  492. package/lib/esm/announcement-banner/stories/announcement-banner-variants.story.js +1 -1
  493. package/lib/esm/announcement-banner/stories/announcement-banner-variants.story.js.map +1 -1
  494. package/lib/esm/announcement-banner/stories/announcement-banner-with-page-content.story.js +1 -1
  495. package/lib/esm/announcement-banner/stories/announcement-banner-with-page-content.story.js.map +1 -1
  496. package/lib/esm/avatar/stories/avatar-custom-icon.story.js +1 -1
  497. package/lib/esm/avatar/stories/avatar-custom-icon.story.js.map +1 -1
  498. package/lib/esm/avatar/stories/avatar-shapes.story.js +1 -1
  499. package/lib/esm/avatar/stories/avatar-shapes.story.js.map +1 -1
  500. package/lib/esm/avatar/stories/avatar-sizes.story.js +1 -1
  501. package/lib/esm/avatar/stories/avatar-sizes.story.js.map +1 -1
  502. package/lib/esm/avatar/stories/avatar-statuses.story.js +1 -1
  503. package/lib/esm/avatar/stories/avatar-statuses.story.js.map +1 -1
  504. package/lib/esm/avatar/stories/avatar-types.story.js +1 -1
  505. package/lib/esm/avatar/stories/avatar-types.story.js.map +1 -1
  506. package/lib/esm/banner/stories/banner-variants.story.js +1 -1
  507. package/lib/esm/banner/stories/banner-variants.story.js.map +1 -1
  508. package/lib/esm/banner/stories/banner-with-icons.story.js +1 -1
  509. package/lib/esm/banner/stories/banner-with-icons.story.js.map +1 -1
  510. package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js +1 -1
  511. package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
  512. package/lib/esm/button/ButtonBase.js +1 -3
  513. package/lib/esm/button/ButtonBase.js.map +1 -1
  514. package/lib/esm/button/stories/button-sizes.story.js +1 -1
  515. package/lib/esm/button/stories/button-sizes.story.js.map +1 -1
  516. package/lib/esm/button/stories/button-variants.story.js +1 -1
  517. package/lib/esm/button/stories/button-variants.story.js.map +1 -1
  518. package/lib/esm/checkbox/stories/checkbox-full.story.js +2 -2
  519. package/lib/esm/checkbox/stories/checkbox-full.story.js.map +1 -1
  520. package/lib/esm/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js +1 -1
  521. package/lib/esm/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js.map +1 -1
  522. package/lib/esm/clean-icon-button/stories/clean-icon-button-sizes.story.js +1 -1
  523. package/lib/esm/clean-icon-button/stories/clean-icon-button-sizes.story.js.map +1 -1
  524. package/lib/esm/clean-icon-button/stories/clean-icon-button-tone.story.js +1 -1
  525. package/lib/esm/clean-icon-button/stories/clean-icon-button-tone.story.js.map +1 -1
  526. package/lib/esm/clipboard-button/stories/clipboard-button-sizes.story.js +1 -1
  527. package/lib/esm/clipboard-button/stories/clipboard-button-sizes.story.js.map +1 -1
  528. package/lib/esm/code-block/CodeBlock.js +3 -7
  529. package/lib/esm/code-block/CodeBlock.js.map +1 -1
  530. package/lib/esm/code-block/stories/code-disabled.story.js +2 -2
  531. package/lib/esm/code-block/stories/code-disabled.story.js.map +1 -1
  532. package/lib/esm/code-block/stories/code-full.story.js +2 -2
  533. package/lib/esm/code-block/stories/code-full.story.js.map +1 -1
  534. package/lib/esm/code-block/stories/code-languages.story.js +1 -1
  535. package/lib/esm/code-block/stories/code-languages.story.js.map +1 -1
  536. package/lib/esm/code-block/stories/code-with-actions.story.js +2 -2
  537. package/lib/esm/code-block/stories/code-with-actions.story.js.map +1 -1
  538. package/lib/esm/color-picker/ColorPicker.js +0 -3
  539. package/lib/esm/color-picker/ColorPicker.js.map +1 -1
  540. package/lib/esm/color-picker/stories/color-picker-dialog.story.js +1 -1
  541. package/lib/esm/color-picker/stories/color-picker-dialog.story.js.map +1 -1
  542. package/lib/esm/color-picker/stories/color-picker-popover.story.js +1 -1
  543. package/lib/esm/color-picker/stories/color-picker-popover.story.js.map +1 -1
  544. package/lib/esm/combobox/stories/combobox-action-on-select.story.js +1 -1
  545. package/lib/esm/combobox/stories/combobox-action-on-select.story.js.map +1 -1
  546. package/lib/esm/combobox/stories/combobox-actions.story.js +1 -1
  547. package/lib/esm/combobox/stories/combobox-actions.story.js.map +1 -1
  548. package/lib/esm/combobox/stories/combobox-async.story.js +2 -2
  549. package/lib/esm/combobox/stories/combobox-async.story.js.map +1 -1
  550. package/lib/esm/combobox/stories/combobox-disabled.story.js +1 -1
  551. package/lib/esm/combobox/stories/combobox-disabled.story.js.map +1 -1
  552. package/lib/esm/combobox/stories/combobox-fluid.story.js +1 -1
  553. package/lib/esm/combobox/stories/combobox-fluid.story.js.map +1 -1
  554. package/lib/esm/combobox/stories/combobox-hidden-label.story.js +1 -1
  555. package/lib/esm/combobox/stories/combobox-hidden-label.story.js.map +1 -1
  556. package/lib/esm/combobox/stories/combobox-in-popover-dialog.story.js +1 -1
  557. package/lib/esm/combobox/stories/combobox-in-popover-dialog.story.js.map +1 -1
  558. package/lib/esm/combobox/stories/combobox-in-popover.story.js +1 -1
  559. package/lib/esm/combobox/stories/combobox-in-popover.story.js.map +1 -1
  560. package/lib/esm/combobox/stories/combobox-native-form.story.js +1 -1
  561. package/lib/esm/combobox/stories/combobox-native-form.story.js.map +1 -1
  562. package/lib/esm/combobox/stories/combobox-sizes.story.js +1 -1
  563. package/lib/esm/combobox/stories/combobox-sizes.story.js.map +1 -1
  564. package/lib/esm/combobox/stories/combobox-validation.story.js +1 -1
  565. package/lib/esm/combobox/stories/combobox-validation.story.js.map +1 -1
  566. package/lib/esm/conditional-wrap/stories/conditional-wrap-default.story.js +1 -1
  567. package/lib/esm/conditional-wrap/stories/conditional-wrap-default.story.js.map +1 -1
  568. package/lib/esm/data-grid/stories/datagrid-compact-mode.story.js +1 -1
  569. package/lib/esm/data-grid/stories/datagrid-compact-mode.story.js.map +1 -1
  570. package/lib/esm/data-grid/stories/datagrid-component-overriding.story.js +2 -2
  571. package/lib/esm/data-grid/stories/datagrid-component-overriding.story.js.map +1 -1
  572. package/lib/esm/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js +1 -1
  573. package/lib/esm/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js.map +1 -1
  574. package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js +2 -2
  575. package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
  576. package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js +1 -1
  577. package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
  578. package/lib/esm/data-grid/stories/datagrid-kitchen-sink.story.js +1 -1
  579. package/lib/esm/data-grid/stories/datagrid-kitchen-sink.story.js.map +1 -1
  580. package/lib/esm/data-grid/stories/datagrid-percentage-width-columns.story.js +1 -1
  581. package/lib/esm/data-grid/stories/datagrid-percentage-width-columns.story.js.map +1 -1
  582. package/lib/esm/data-grid/stories/datagrid-pinned-columns.stories.js +3 -3
  583. package/lib/esm/data-grid/stories/datagrid-pinned-columns.stories.js.map +1 -1
  584. package/lib/esm/data-grid/stories/datagrid-placeholder-states.story.js +1 -1
  585. package/lib/esm/data-grid/stories/datagrid-placeholder-states.story.js.map +1 -1
  586. package/lib/esm/data-grid/stories/datagrid-resizable-column.story.js +1 -1
  587. package/lib/esm/data-grid/stories/datagrid-resizable-column.story.js.map +1 -1
  588. package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +1 -1
  589. package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
  590. package/lib/esm/data-grid/stories/datagrid-rule-based-styling.story.js +1 -1
  591. package/lib/esm/data-grid/stories/datagrid-rule-based-styling.story.js.map +1 -1
  592. package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js +5 -5
  593. package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
  594. package/lib/esm/data-grid/stories/datagrid-simple.story.js +1 -1
  595. package/lib/esm/data-grid/stories/datagrid-simple.story.js.map +1 -1
  596. package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js +1 -1
  597. package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
  598. package/lib/esm/data-grid/stories/datagrid-skeleton-loading.story.js +1 -1
  599. package/lib/esm/data-grid/stories/datagrid-skeleton-loading.story.js.map +1 -1
  600. package/lib/esm/data-grid/stories/datagrid-sortable.story.js +1 -1
  601. package/lib/esm/data-grid/stories/datagrid-sortable.story.js.map +1 -1
  602. package/lib/esm/data-grid/stories/datagrid-using-editable-cells.story.js +2 -2
  603. package/lib/esm/data-grid/stories/datagrid-using-editable-cells.story.js.map +1 -1
  604. package/lib/esm/data-grid/stories/datagrid-virtualization.story.js +3 -3
  605. package/lib/esm/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
  606. package/lib/esm/data-grid/style-rules/guard.js +43 -0
  607. package/lib/esm/data-grid/style-rules/guard.js.map +1 -0
  608. package/lib/esm/data-grid/style-rules/index.js +1 -3
  609. package/lib/esm/data-grid/style-rules/index.js.map +1 -1
  610. package/lib/esm/data-grid/style-rules/internal/schemas.js +210 -0
  611. package/lib/esm/data-grid/style-rules/internal/schemas.js.map +1 -0
  612. package/lib/esm/data-grid/style-rules/types.js +1 -203
  613. package/lib/esm/data-grid/style-rules/types.js.map +1 -1
  614. package/lib/esm/date-picker/DatePicker.js +8 -6
  615. package/lib/esm/date-picker/DatePicker.js.map +1 -1
  616. package/lib/esm/date-picker/stories/date-picker-in-dialog.story.js +1 -1
  617. package/lib/esm/date-picker/stories/date-picker-in-dialog.story.js.map +1 -1
  618. package/lib/esm/date-picker/stories/date-picker-in-popover-dialog.story.js +1 -1
  619. package/lib/esm/date-picker/stories/date-picker-in-popover-dialog.story.js.map +1 -1
  620. package/lib/esm/dialog/Dialog.js +1 -2
  621. package/lib/esm/dialog/Dialog.js.map +1 -1
  622. package/lib/esm/dialog/stories/dialog-danger.story.js +1 -1
  623. package/lib/esm/dialog/stories/dialog-danger.story.js.map +1 -1
  624. package/lib/esm/dialog/stories/dialog-default.story.js +1 -1
  625. package/lib/esm/dialog/stories/dialog-default.story.js.map +1 -1
  626. package/lib/esm/dialog/stories/dialog-image.story.js +1 -1
  627. package/lib/esm/dialog/stories/dialog-image.story.js.map +1 -1
  628. package/lib/esm/dialog/stories/dialog-info.story.js +1 -1
  629. package/lib/esm/dialog/stories/dialog-info.story.js.map +1 -1
  630. package/lib/esm/dialog/stories/dialog-top-aligned.story.js +2 -2
  631. package/lib/esm/dialog/stories/dialog-top-aligned.story.js.map +1 -1
  632. package/lib/esm/dialog/stories/dialog-variants.story.js +1 -1
  633. package/lib/esm/dialog/stories/dialog-variants.story.js.map +1 -1
  634. package/lib/esm/dialog/stories/dialog-warning.story.js +1 -1
  635. package/lib/esm/dialog/stories/dialog-warning.story.js.map +1 -1
  636. package/lib/esm/dismissible-tag/stories/dismissible-tag-colors.story.js +1 -1
  637. package/lib/esm/dismissible-tag/stories/dismissible-tag-colors.story.js.map +1 -1
  638. package/lib/esm/dismissible-tag/stories/dismissible-tag-sizes.story.js +1 -1
  639. package/lib/esm/dismissible-tag/stories/dismissible-tag-sizes.story.js.map +1 -1
  640. package/lib/esm/drawer/Drawer.js +7 -6
  641. package/lib/esm/drawer/Drawer.js.map +1 -1
  642. package/lib/esm/drawer/stories/drawer-full.story.js +2 -2
  643. package/lib/esm/drawer/stories/drawer-full.story.js.map +1 -1
  644. package/lib/esm/drawer/stories/drawer-not-closeable.story.js +2 -2
  645. package/lib/esm/drawer/stories/drawer-not-closeable.story.js.map +1 -1
  646. package/lib/esm/drawer/stories/drawer-overlay.story.js +1 -1
  647. package/lib/esm/drawer/stories/drawer-overlay.story.js.map +1 -1
  648. package/lib/esm/drawer/stories/drawer-portaled.story.js +2 -2
  649. package/lib/esm/drawer/stories/drawer-portaled.story.js.map +1 -1
  650. package/lib/esm/drawer/stories/drawer-push.story.js +2 -2
  651. package/lib/esm/drawer/stories/drawer-push.story.js.map +1 -1
  652. package/lib/esm/drawer/stories/drawer-resizable.story.js +2 -2
  653. package/lib/esm/drawer/stories/drawer-resizable.story.js.map +1 -1
  654. package/lib/esm/drawer/stories/drawer-right-side.story.js +2 -2
  655. package/lib/esm/drawer/stories/drawer-right-side.story.js.map +1 -1
  656. package/lib/esm/drawer/stories/drawer-scrollable.story.js +2 -2
  657. package/lib/esm/drawer/stories/drawer-scrollable.story.js.map +1 -1
  658. package/lib/esm/dropzone/stories/dropzone-full.story.js +3 -3
  659. package/lib/esm/dropzone/stories/dropzone-full.story.js.map +1 -1
  660. package/lib/esm/flex/stories/flex-default.story.js +1 -1
  661. package/lib/esm/flex/stories/flex-default.story.js.map +1 -1
  662. package/lib/esm/graph-label/stories/graph-label-color.story.js +1 -1
  663. package/lib/esm/graph-label/stories/graph-label-color.story.js.map +1 -1
  664. package/lib/esm/graph-label/stories/graph-label-sizes.story.js +1 -1
  665. package/lib/esm/graph-label/stories/graph-label-sizes.story.js.map +1 -1
  666. package/lib/esm/graph-label/stories/graph-label-types.story.js +1 -1
  667. package/lib/esm/graph-label/stories/graph-label-types.story.js.map +1 -1
  668. package/lib/esm/hooks/use-debounce-callback/index.js +6 -6
  669. package/lib/esm/hooks/use-debounce-callback/index.js.map +1 -1
  670. package/lib/esm/icon-button/stories/icon-button-sizes.story.js +1 -1
  671. package/lib/esm/icon-button/stories/icon-button-sizes.story.js.map +1 -1
  672. package/lib/esm/icon-button/stories/icon-button-tone.story.js +1 -1
  673. package/lib/esm/icon-button/stories/icon-button-tone.story.js.map +1 -1
  674. package/lib/esm/icon-button-array/stories/icon-button-array-sizes.story.js +1 -1
  675. package/lib/esm/icon-button-array/stories/icon-button-array-sizes.story.js.map +1 -1
  676. package/lib/esm/icon-button-base/IconButtonBase.js +1 -3
  677. package/lib/esm/icon-button-base/IconButtonBase.js.map +1 -1
  678. package/lib/esm/icons/generated/custom/index.js +0 -7
  679. package/lib/esm/icons/generated/custom/index.js.map +1 -1
  680. package/lib/esm/inline-edit/InlineEdit.js +3 -2
  681. package/lib/esm/inline-edit/InlineEdit.js.map +1 -1
  682. package/lib/esm/kbd/Kbd.js +0 -1
  683. package/lib/esm/kbd/Kbd.js.map +1 -1
  684. package/lib/esm/loading-spinner/stories/loading-spinner-sizes.story.js +1 -1
  685. package/lib/esm/loading-spinner/stories/loading-spinner-sizes.story.js.map +1 -1
  686. package/lib/esm/logo/stories/logo-black.story.js +1 -1
  687. package/lib/esm/logo/stories/logo-black.story.js.map +1 -1
  688. package/lib/esm/logo/stories/logo-default.story.js +1 -1
  689. package/lib/esm/logo/stories/logo-default.story.js.map +1 -1
  690. package/lib/esm/logo/stories/logo-icon.story.js +1 -1
  691. package/lib/esm/logo/stories/logo-icon.story.js.map +1 -1
  692. package/lib/esm/menu/Menu.js +2 -2
  693. package/lib/esm/menu/Menu.js.map +1 -1
  694. package/lib/esm/menu/menu-types.js.map +1 -1
  695. package/lib/esm/menu/stories/menu-custom-items.story.js +1 -1
  696. package/lib/esm/menu/stories/menu-custom-items.story.js.map +1 -1
  697. package/lib/esm/menu/stories/menu-in-dialog.story.js +2 -2
  698. package/lib/esm/menu/stories/menu-in-dialog.story.js.map +1 -1
  699. package/lib/esm/menu/stories/menu-nested.story.js +1 -1
  700. package/lib/esm/menu/stories/menu-nested.story.js.map +1 -1
  701. package/lib/esm/menu/stories/menu-radio-and-normal.story.js +1 -1
  702. package/lib/esm/menu/stories/menu-radio-and-normal.story.js.map +1 -1
  703. package/lib/esm/menu/stories/menu-radio-items.story.js +1 -1
  704. package/lib/esm/menu/stories/menu-radio-items.story.js.map +1 -1
  705. package/lib/esm/menu/stories/menu-with-icon.story.js +1 -1
  706. package/lib/esm/menu/stories/menu-with-icon.story.js.map +1 -1
  707. package/lib/esm/next/tree-view/TreeView.js +3 -3
  708. package/lib/esm/next/tree-view/TreeView.js.map +1 -1
  709. package/lib/esm/next/tree-view/stories/tree-view-large.story.js +1 -1
  710. package/lib/esm/next/tree-view/stories/tree-view-large.story.js.map +1 -1
  711. package/lib/esm/next/tree-view/stories/tree-view-multiple-replace.story.js +1 -1
  712. package/lib/esm/next/tree-view/stories/tree-view-multiple-replace.story.js.map +1 -1
  713. package/lib/esm/next/tree-view/stories/tree-view-root-selection.story.js +1 -1
  714. package/lib/esm/next/tree-view/stories/tree-view-root-selection.story.js.map +1 -1
  715. package/lib/esm/next/tree-view/stories/tree-view-tooltip.story.js +1 -1
  716. package/lib/esm/next/tree-view/stories/tree-view-tooltip.story.js.map +1 -1
  717. package/lib/esm/next/tree-view/stories/tree-view-trailing.story.js +1 -1
  718. package/lib/esm/next/tree-view/stories/tree-view-trailing.story.js.map +1 -1
  719. package/lib/esm/next/tree-view/stories/tree-view-uncontrolled.story.js +1 -1
  720. package/lib/esm/next/tree-view/stories/tree-view-uncontrolled.story.js.map +1 -1
  721. package/lib/esm/popover/Popover.js +6 -6
  722. package/lib/esm/popover/Popover.js.map +1 -1
  723. package/lib/esm/popover/stories/popover-controlled.story.js +1 -1
  724. package/lib/esm/popover/stories/popover-controlled.story.js.map +1 -1
  725. package/lib/esm/popover/stories/popover-custom-offset.story.js +1 -1
  726. package/lib/esm/popover/stories/popover-custom-offset.story.js.map +1 -1
  727. package/lib/esm/popover/stories/popover-default.story.js +1 -1
  728. package/lib/esm/popover/stories/popover-default.story.js.map +1 -1
  729. package/lib/esm/popover/stories/popover-in-dialog.story.js +1 -1
  730. package/lib/esm/popover/stories/popover-in-dialog.story.js.map +1 -1
  731. package/lib/esm/popover/stories/popover-no-button-wrapper.story.js +1 -1
  732. package/lib/esm/popover/stories/popover-no-button-wrapper.story.js.map +1 -1
  733. package/lib/esm/popover/stories/popover-separate-anchor.story.js +1 -1
  734. package/lib/esm/popover/stories/popover-separate-anchor.story.js.map +1 -1
  735. package/lib/esm/popover/use-popover.js +7 -9
  736. package/lib/esm/popover/use-popover.js.map +1 -1
  737. package/lib/esm/progress-bar/stories/progress-bar-sizes.story.js +1 -1
  738. package/lib/esm/progress-bar/stories/progress-bar-sizes.story.js.map +1 -1
  739. package/lib/esm/radio/stories/radio-disabled.story.js +1 -1
  740. package/lib/esm/radio/stories/radio-disabled.story.js.map +1 -1
  741. package/lib/esm/radio/stories/radio-truncated-label.story.js +1 -1
  742. package/lib/esm/radio/stories/radio-truncated-label.story.js.map +1 -1
  743. package/lib/esm/read-only-tag/stories/read-only-tag-colors.story.js +1 -1
  744. package/lib/esm/read-only-tag/stories/read-only-tag-colors.story.js.map +1 -1
  745. package/lib/esm/read-only-tag/stories/read-only-tag-sizes.story.js +1 -1
  746. package/lib/esm/read-only-tag/stories/read-only-tag-sizes.story.js.map +1 -1
  747. package/lib/esm/segmented-control/stories/segmented-control-sizes.story.js +1 -1
  748. package/lib/esm/segmented-control/stories/segmented-control-sizes.story.js.map +1 -1
  749. package/lib/esm/select/stories/select-controlled.story.js +1 -1
  750. package/lib/esm/select/stories/select-controlled.story.js.map +1 -1
  751. package/lib/esm/select/stories/select-custom-label.story.js +1 -1
  752. package/lib/esm/select/stories/select-custom-label.story.js.map +1 -1
  753. package/lib/esm/select/stories/select-inside-dialog.story.js +1 -1
  754. package/lib/esm/select/stories/select-inside-dialog.story.js.map +1 -1
  755. package/lib/esm/select/stories/select-menu-positionings.story.js +1 -1
  756. package/lib/esm/select/stories/select-menu-positionings.story.js.map +1 -1
  757. package/lib/esm/select/stories/select-required.story.js +1 -1
  758. package/lib/esm/select/stories/select-required.story.js.map +1 -1
  759. package/lib/esm/select/stories/select-sizes.story.js +1 -1
  760. package/lib/esm/select/stories/select-sizes.story.js.map +1 -1
  761. package/lib/esm/select-icon-button/stories/select-icon-button-sizes.story.js +1 -1
  762. package/lib/esm/select-icon-button/stories/select-icon-button-sizes.story.js.map +1 -1
  763. package/lib/esm/select-icon-button/stories/select-icon-button-states.story.js +1 -1
  764. package/lib/esm/select-icon-button/stories/select-icon-button-states.story.js.map +1 -1
  765. package/lib/esm/selectable-tag/stories/selectable-tag-disabled.story.js +1 -1
  766. package/lib/esm/selectable-tag/stories/selectable-tag-disabled.story.js.map +1 -1
  767. package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
  768. package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
  769. package/lib/esm/side-navigation/SideNavigation.js.map +1 -1
  770. package/lib/esm/side-navigation/stories/side-nav-badges.story.js +2 -2
  771. package/lib/esm/side-navigation/stories/side-nav-badges.story.js.map +1 -1
  772. package/lib/esm/side-navigation/stories/side-nav-compact.story.js +1 -1
  773. package/lib/esm/side-navigation/stories/side-nav-compact.story.js.map +1 -1
  774. package/lib/esm/side-navigation/stories/side-nav-default.story.js +1 -1
  775. package/lib/esm/side-navigation/stories/side-nav-default.story.js.map +1 -1
  776. package/lib/esm/side-navigation/stories/side-nav-secondary.story.js +1 -1
  777. package/lib/esm/side-navigation/stories/side-nav-secondary.story.js.map +1 -1
  778. package/lib/esm/skeleton/stories/skeleton-circular.story.js +1 -1
  779. package/lib/esm/skeleton/stories/skeleton-circular.story.js.map +1 -1
  780. package/lib/esm/skeleton/stories/skeleton-default.story.js +1 -1
  781. package/lib/esm/skeleton/stories/skeleton-default.story.js.map +1 -1
  782. package/lib/esm/skeleton/stories/skeleton-full-example.story.js +1 -1
  783. package/lib/esm/skeleton/stories/skeleton-full-example.story.js.map +1 -1
  784. package/lib/esm/skeleton/stories/skeleton-inherit-height.story.js +1 -1
  785. package/lib/esm/skeleton/stories/skeleton-inherit-height.story.js.map +1 -1
  786. package/lib/esm/skeleton/stories/skeleton-inherit-width.story.js +1 -1
  787. package/lib/esm/skeleton/stories/skeleton-inherit-width.story.js.map +1 -1
  788. package/lib/esm/slider/Slider.js +3 -3
  789. package/lib/esm/slider/Slider.js.map +1 -1
  790. package/lib/esm/slider/stories/slider-custom-step-length.story.js +1 -1
  791. package/lib/esm/slider/stories/slider-custom-step-length.story.js.map +1 -1
  792. package/lib/esm/slider/stories/slider-range.story.js +1 -1
  793. package/lib/esm/slider/stories/slider-range.story.js.map +1 -1
  794. package/lib/esm/slider/stories/slider-show-steps.story.js +1 -1
  795. package/lib/esm/slider/stories/slider-show-steps.story.js.map +1 -1
  796. package/lib/esm/slider/stories/slider-show-values.story.js +1 -1
  797. package/lib/esm/slider/stories/slider-show-values.story.js.map +1 -1
  798. package/lib/esm/slider/stories/slider-single-controlled.story.js +2 -2
  799. package/lib/esm/slider/stories/slider-single-controlled.story.js.map +1 -1
  800. package/lib/esm/slider/stories/slider-single.story.js +1 -1
  801. package/lib/esm/slider/stories/slider-single.story.js.map +1 -1
  802. package/lib/esm/spotlight/Spotlight.js +3 -3
  803. package/lib/esm/spotlight/Spotlight.js.map +1 -1
  804. package/lib/esm/spotlight/SpotlightTarget.js +3 -3
  805. package/lib/esm/spotlight/SpotlightTarget.js.map +1 -1
  806. package/lib/esm/spotlight/stories/spotlight-fixed-positioning.story.js +1 -1
  807. package/lib/esm/spotlight/stories/spotlight-fixed-positioning.story.js.map +1 -1
  808. package/lib/esm/spotlight/stories/spotlight-in-dialog.story.js +1 -1
  809. package/lib/esm/spotlight/stories/spotlight-in-dialog.story.js.map +1 -1
  810. package/lib/esm/spotlight/stories/spotlight-in-side-nav.story.js +1 -1
  811. package/lib/esm/spotlight/stories/spotlight-in-side-nav.story.js.map +1 -1
  812. package/lib/esm/spotlight/stories/spotlight-on-tabs.story.js +1 -1
  813. package/lib/esm/spotlight/stories/spotlight-on-tabs.story.js.map +1 -1
  814. package/lib/esm/spotlight/stories/spotlight-tour.story.js +1 -1
  815. package/lib/esm/spotlight/stories/spotlight-tour.story.js.map +1 -1
  816. package/lib/esm/spotlight/stories/spotlight-with-icon.story.js +1 -1
  817. package/lib/esm/spotlight/stories/spotlight-with-icon.story.js.map +1 -1
  818. package/lib/esm/spotlight/stories/spotlight-with-image.story.js +1 -1
  819. package/lib/esm/spotlight/stories/spotlight-with-image.story.js.map +1 -1
  820. package/lib/esm/spotlight/stories/spotlight-with-label.story.js +1 -1
  821. package/lib/esm/spotlight/stories/spotlight-with-label.story.js.map +1 -1
  822. package/lib/esm/spotlight/stories/spotlight-with-pointer.story.js +1 -1
  823. package/lib/esm/spotlight/stories/spotlight-with-pointer.story.js.map +1 -1
  824. package/lib/esm/spotlight/use-spotlight.js +5 -5
  825. package/lib/esm/spotlight/use-spotlight.js.map +1 -1
  826. package/lib/esm/status-indicator/stories/status-indicator-variants.story.js +1 -1
  827. package/lib/esm/status-indicator/stories/status-indicator-variants.story.js.map +1 -1
  828. package/lib/esm/status-label/stories/status-label-colors.story.js +1 -1
  829. package/lib/esm/status-label/stories/status-label-colors.story.js.map +1 -1
  830. package/lib/esm/status-label/stories/status-label-fills.story.js +1 -1
  831. package/lib/esm/status-label/stories/status-label-fills.story.js.map +1 -1
  832. package/lib/esm/status-label/stories/status-label-with-icons.story.js +1 -1
  833. package/lib/esm/status-label/stories/status-label-with-icons.story.js.map +1 -1
  834. package/lib/esm/tabs/Tabs.js +2 -2
  835. package/lib/esm/tabs/Tabs.js.map +1 -1
  836. package/lib/esm/tabs/stories/tabs-badge.story.js +1 -1
  837. package/lib/esm/tabs/stories/tabs-badge.story.js.map +1 -1
  838. package/lib/esm/tabs/stories/tabs-default.story.js +1 -1
  839. package/lib/esm/tabs/stories/tabs-default.story.js.map +1 -1
  840. package/lib/esm/tabs/stories/tabs-disabled.story.js +1 -1
  841. package/lib/esm/tabs/stories/tabs-disabled.story.js.map +1 -1
  842. package/lib/esm/tabs/stories/tabs-fill-variants.story.js +1 -1
  843. package/lib/esm/tabs/stories/tabs-fill-variants.story.js.map +1 -1
  844. package/lib/esm/tabs/stories/tabs-overflow.story.js +1 -1
  845. package/lib/esm/tabs/stories/tabs-overflow.story.js.map +1 -1
  846. package/lib/esm/tabs/stories/tabs-sizes.story.js +1 -1
  847. package/lib/esm/tabs/stories/tabs-sizes.story.js.map +1 -1
  848. package/lib/esm/tabs/stories/tabs-with-icons.story.js +1 -1
  849. package/lib/esm/tabs/stories/tabs-with-icons.story.js.map +1 -1
  850. package/lib/esm/tag/stories/tag-sizes.story.js +1 -1
  851. package/lib/esm/tag/stories/tag-sizes.story.js.map +1 -1
  852. package/lib/esm/tag/stories/tag-types.story.js +1 -1
  853. package/lib/esm/tag/stories/tag-types.story.js.map +1 -1
  854. package/lib/esm/tag-base/stories/tag-variants.story.js +1 -1
  855. package/lib/esm/tag-base/stories/tag-variants.story.js.map +1 -1
  856. package/lib/esm/text-area/stories/text-area-sizes.story.js +1 -1
  857. package/lib/esm/text-area/stories/text-area-sizes.story.js.map +1 -1
  858. package/lib/esm/text-input/TextInput.js.map +1 -1
  859. package/lib/esm/text-input/stories/text-input-loading-spinner.story.js +1 -1
  860. package/lib/esm/text-input/stories/text-input-loading-spinner.story.js.map +1 -1
  861. package/lib/esm/text-input/stories/text-input-optional.story.js +1 -1
  862. package/lib/esm/text-input/stories/text-input-optional.story.js.map +1 -1
  863. package/lib/esm/text-input/stories/text-input-sizes.story.js +1 -1
  864. package/lib/esm/text-input/stories/text-input-sizes.story.js.map +1 -1
  865. package/lib/esm/text-link/TextLink.js +2 -6
  866. package/lib/esm/text-link/TextLink.js.map +1 -1
  867. package/lib/esm/text-link/stories/index.js +3 -12
  868. package/lib/esm/text-link/stories/index.js.map +1 -1
  869. package/lib/esm/text-link/stories/text-link-external.story.js +3 -3
  870. package/lib/esm/text-link/stories/text-link-external.story.js.map +1 -1
  871. package/lib/esm/text-link/stories/{text-link-internal-underline.story.js → text-link-internal.story.js} +2 -2
  872. package/lib/esm/text-link/stories/text-link-internal.story.js.map +1 -0
  873. package/lib/esm/time-picker/stories/time-picker-in-popover-dialog.story.js +1 -1
  874. package/lib/esm/time-picker/stories/time-picker-in-popover-dialog.story.js.map +1 -1
  875. package/lib/esm/timezone-picker/stories/timezone-picker-in-dialog.story.js +1 -1
  876. package/lib/esm/timezone-picker/stories/timezone-picker-in-dialog.story.js.map +1 -1
  877. package/lib/esm/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js +1 -1
  878. package/lib/esm/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js.map +1 -1
  879. package/lib/esm/toast/stories/toast-action-story.js +1 -1
  880. package/lib/esm/toast/stories/toast-action-story.js.map +1 -1
  881. package/lib/esm/toast/stories/toast-closeable-story.js +1 -1
  882. package/lib/esm/toast/stories/toast-closeable-story.js.map +1 -1
  883. package/lib/esm/toast/stories/toast-controlled-story.js +1 -1
  884. package/lib/esm/toast/stories/toast-controlled-story.js.map +1 -1
  885. package/lib/esm/toast/stories/toast-custom-story.js +1 -1
  886. package/lib/esm/toast/stories/toast-custom-story.js.map +1 -1
  887. package/lib/esm/toast/stories/toast-danger-story.js +1 -1
  888. package/lib/esm/toast/stories/toast-danger-story.js.map +1 -1
  889. package/lib/esm/toast/stories/toast-neutral-story.js +1 -1
  890. package/lib/esm/toast/stories/toast-neutral-story.js.map +1 -1
  891. package/lib/esm/toast/stories/toast-progress-bar.js +1 -1
  892. package/lib/esm/toast/stories/toast-progress-bar.js.map +1 -1
  893. package/lib/esm/toast/stories/toast-success-story.js +1 -1
  894. package/lib/esm/toast/stories/toast-success-story.js.map +1 -1
  895. package/lib/esm/tooltip/Tooltip.js.map +1 -1
  896. package/lib/esm/tooltip/stories/tooltip-in-dialog.story.js +1 -1
  897. package/lib/esm/tooltip/stories/tooltip-in-dialog.story.js.map +1 -1
  898. package/lib/esm/tooltip/stories/tooltip-placements.story.js +1 -1
  899. package/lib/esm/tooltip/stories/tooltip-placements.story.js.map +1 -1
  900. package/lib/esm/tooltip/use-tooltip.js.map +1 -1
  901. package/lib/esm/tree-view/TreeView.js +3 -0
  902. package/lib/esm/tree-view/TreeView.js.map +1 -1
  903. package/lib/esm/tree-view/TreeViewItem.js.map +1 -1
  904. package/lib/esm/tree-view/stories/treeview-custom.story.js +2 -2
  905. package/lib/esm/tree-view/stories/treeview-custom.story.js.map +1 -1
  906. package/lib/esm/tree-view/tree-view-utils.js.map +1 -1
  907. package/lib/esm/typography/Typography.js +7 -1
  908. package/lib/esm/typography/Typography.js.map +1 -1
  909. package/lib/types/_generated/style-rules/index.d.ts +2 -2
  910. package/lib/types/_generated/style-rules/index.d.ts.map +1 -1
  911. package/lib/{cjs/text-link/stories/text-link-default.story.js → types/_generated/style-rules/literal-guards.d.ts} +8 -10
  912. package/lib/types/_generated/style-rules/literal-guards.d.ts.map +1 -0
  913. package/lib/types/_generated/style-rules/literal-schemas.d.ts +0 -12
  914. package/lib/types/_generated/style-rules/literal-schemas.d.ts.map +1 -1
  915. package/lib/types/_generated/style-rules/literal-types.d.ts +80 -0
  916. package/lib/types/_generated/style-rules/literal-types.d.ts.map +1 -0
  917. package/lib/types/_generated/style-rules/numeric-utils.d.ts +1 -1
  918. package/lib/types/_generated/style-rules/numeric-utils.d.ts.map +1 -1
  919. package/lib/types/_generated/style-rules/range-utils.d.ts +1 -1
  920. package/lib/types/_generated/style-rules/range-utils.d.ts.map +1 -1
  921. package/lib/types/ai/reasoning/Reasoning.d.ts +1 -10
  922. package/lib/types/ai/reasoning/Reasoning.d.ts.map +1 -1
  923. package/lib/types/ai/reasoning/stories/reasoning-full.story.d.ts.map +1 -1
  924. package/lib/types/ai/response/Response.d.ts.map +1 -1
  925. package/lib/types/ai/response/stories/response-fixtures.d.ts +37 -0
  926. package/lib/types/ai/response/stories/response-fixtures.d.ts.map +1 -0
  927. package/lib/types/button/ButtonBase.d.ts.map +1 -1
  928. package/lib/types/code-block/CodeBlock.d.ts +2 -2
  929. package/lib/types/code-block/CodeBlock.d.ts.map +1 -1
  930. package/lib/types/color-picker/ColorPicker.d.ts.map +1 -1
  931. package/lib/types/data-grid/style-rules/guard.d.ts +43 -0
  932. package/lib/types/data-grid/style-rules/guard.d.ts.map +1 -0
  933. package/lib/types/data-grid/style-rules/index.d.ts +1 -2
  934. package/lib/types/data-grid/style-rules/index.d.ts.map +1 -1
  935. package/lib/types/data-grid/style-rules/internal/schemas.d.ts +321 -0
  936. package/lib/types/data-grid/style-rules/internal/schemas.d.ts.map +1 -0
  937. package/lib/types/data-grid/style-rules/types.d.ts +60 -284
  938. package/lib/types/data-grid/style-rules/types.d.ts.map +1 -1
  939. package/lib/types/date-picker/DatePicker.d.ts.map +1 -1
  940. package/lib/types/dialog/Dialog.d.ts.map +1 -1
  941. package/lib/types/drawer/Drawer.d.ts +7 -13
  942. package/lib/types/drawer/Drawer.d.ts.map +1 -1
  943. package/lib/types/drawer/stories/drawer-overlay.story.d.ts.map +1 -1
  944. package/lib/types/dropzone/stories/dropzone-full.story.d.ts.map +1 -1
  945. package/lib/types/hooks/use-debounce-callback/index.d.ts +2 -2
  946. package/lib/types/hooks/use-debounce-callback/index.d.ts.map +1 -1
  947. package/lib/types/icon-button-base/IconButtonBase.d.ts.map +1 -1
  948. package/lib/types/icons/generated/custom/index.d.ts +0 -7
  949. package/lib/types/icons/generated/custom/index.d.ts.map +1 -1
  950. package/lib/types/inline-edit/InlineEdit.d.ts +6 -1
  951. package/lib/types/inline-edit/InlineEdit.d.ts.map +1 -1
  952. package/lib/types/kbd/Kbd.d.ts +1 -1
  953. package/lib/types/kbd/Kbd.d.ts.map +1 -1
  954. package/lib/types/menu/Menu.d.ts +1 -1
  955. package/lib/types/menu/Menu.d.ts.map +1 -1
  956. package/lib/types/menu/menu-types.d.ts +2 -2
  957. package/lib/types/menu/menu-types.d.ts.map +1 -1
  958. package/lib/types/next/tree-view/TreeView.d.ts +2 -2
  959. package/lib/types/next/tree-view/TreeView.d.ts.map +1 -1
  960. package/lib/types/popover/Popover.d.ts +15 -12
  961. package/lib/types/popover/Popover.d.ts.map +1 -1
  962. package/lib/types/popover/stories/popover-controlled.story.d.ts.map +1 -1
  963. package/lib/types/popover/stories/popover-default.story.d.ts.map +1 -1
  964. package/lib/types/popover/stories/popover-no-button-wrapper.story.d.ts.map +1 -1
  965. package/lib/types/popover/use-popover.d.ts +14 -9
  966. package/lib/types/popover/use-popover.d.ts.map +1 -1
  967. package/lib/types/side-navigation/SideNavigation.d.ts.map +1 -1
  968. package/lib/types/slider/Slider.d.ts +3 -3
  969. package/lib/types/slider/Slider.d.ts.map +1 -1
  970. package/lib/types/spotlight/Spotlight.d.ts +2 -2
  971. package/lib/types/spotlight/Spotlight.d.ts.map +1 -1
  972. package/lib/types/spotlight/SpotlightTarget.d.ts +3 -3
  973. package/lib/types/spotlight/SpotlightTarget.d.ts.map +1 -1
  974. package/lib/types/spotlight/stories/spotlight-tour.story.d.ts.map +1 -1
  975. package/lib/types/spotlight/stories/spotlight-with-image.story.d.ts.map +1 -1
  976. package/lib/types/spotlight/use-spotlight.d.ts +4 -4
  977. package/lib/types/spotlight/use-spotlight.d.ts.map +1 -1
  978. package/lib/types/tabs/Tabs.d.ts +3 -1
  979. package/lib/types/tabs/Tabs.d.ts.map +1 -1
  980. package/lib/types/text-link/TextLink.d.ts +2 -13
  981. package/lib/types/text-link/TextLink.d.ts.map +1 -1
  982. package/lib/types/text-link/stories/index.d.ts +2 -8
  983. package/lib/types/text-link/stories/index.d.ts.map +1 -1
  984. package/lib/types/text-link/stories/text-link-external.story.d.ts.map +1 -1
  985. package/lib/types/{text-overflow/stories/character-limit.story.d.ts → text-link/stories/text-link-internal.story.d.ts} +1 -1
  986. package/lib/types/text-link/stories/text-link-internal.story.d.ts.map +1 -0
  987. package/lib/types/tooltip/Tooltip.d.ts +0 -1
  988. package/lib/types/tooltip/Tooltip.d.ts.map +1 -1
  989. package/lib/types/tooltip/use-tooltip.d.ts.map +1 -1
  990. package/lib/types/tree-view/TreeView.d.ts +3 -0
  991. package/lib/types/tree-view/TreeView.d.ts.map +1 -1
  992. package/lib/types/tree-view/TreeViewItem.d.ts.map +1 -1
  993. package/lib/types/tree-view/tree-view-utils.d.ts.map +1 -1
  994. package/lib/types/typography/Typography.d.ts +6 -0
  995. package/lib/types/typography/Typography.d.ts.map +1 -1
  996. package/package.json +5 -4
  997. package/skills/ndl-react/SKILL.md +21 -19
  998. package/skills/ndl-react/components/ai/presence.md +3 -3
  999. package/skills/ndl-react/components/ai/reasoning.md +2 -6
  1000. package/skills/ndl-react/components/ai/response.md +17 -17
  1001. package/skills/ndl-react/components/ai/suggestion.md +1 -1
  1002. package/skills/ndl-react/components/ai/user-bubble.md +2 -2
  1003. package/skills/ndl-react/components/announcement-banner.md +10 -10
  1004. package/skills/ndl-react/components/avatar.md +5 -5
  1005. package/skills/ndl-react/components/banner.md +2 -2
  1006. package/skills/ndl-react/components/breadcrumbs.md +3 -3
  1007. package/skills/ndl-react/components/checkbox.md +4 -4
  1008. package/skills/ndl-react/components/clean-icon-button.md +17 -17
  1009. package/skills/ndl-react/components/clipboard-button.md +1 -1
  1010. package/skills/ndl-react/components/code-block.md +8 -9
  1011. package/skills/ndl-react/components/color-picker.md +3 -3
  1012. package/skills/ndl-react/components/combobox.md +20 -20
  1013. package/skills/ndl-react/components/conditional-wrap.md +1 -1
  1014. package/skills/ndl-react/components/data-grid.md +28 -28
  1015. package/skills/ndl-react/components/date-picker.md +3 -3
  1016. package/skills/ndl-react/components/dialog.md +9 -9
  1017. package/skills/ndl-react/components/dismissible-tag.md +2 -2
  1018. package/skills/ndl-react/components/drawer.md +39 -37
  1019. package/skills/ndl-react/components/dropzone.md +10 -13
  1020. package/skills/ndl-react/components/flex.md +1 -1
  1021. package/skills/ndl-react/components/graph-label.md +3 -3
  1022. package/skills/ndl-react/components/icon-button-array.md +1 -1
  1023. package/skills/ndl-react/components/icon-button.md +7 -7
  1024. package/skills/ndl-react/components/inline-edit.md +4 -1
  1025. package/skills/ndl-react/components/loading-spinner.md +1 -1
  1026. package/skills/ndl-react/components/logo.md +3 -3
  1027. package/skills/ndl-react/components/menu.md +14 -14
  1028. package/skills/ndl-react/components/next/tree-view.md +18 -18
  1029. package/skills/ndl-react/components/popover.md +15 -21
  1030. package/skills/ndl-react/components/progress-bar.md +1 -1
  1031. package/skills/ndl-react/components/radio.md +2 -2
  1032. package/skills/ndl-react/components/read-only-tag.md +2 -2
  1033. package/skills/ndl-react/components/segmented-control.md +1 -1
  1034. package/skills/ndl-react/components/select-icon-button.md +8 -8
  1035. package/skills/ndl-react/components/select.md +8 -8
  1036. package/skills/ndl-react/components/selectable-tag.md +2 -2
  1037. package/skills/ndl-react/components/side-navigation.md +19 -19
  1038. package/skills/ndl-react/components/skeleton.md +13 -13
  1039. package/skills/ndl-react/components/slider.md +13 -13
  1040. package/skills/ndl-react/components/spotlight.md +43 -27
  1041. package/skills/ndl-react/components/status-indicator.md +6 -6
  1042. package/skills/ndl-react/components/status-label.md +3 -3
  1043. package/skills/ndl-react/components/tabs.md +21 -20
  1044. package/skills/ndl-react/components/tag.md +2 -2
  1045. package/skills/ndl-react/components/text-area.md +1 -1
  1046. package/skills/ndl-react/components/text-input.md +3 -3
  1047. package/skills/ndl-react/components/text-link.md +12 -63
  1048. package/skills/ndl-react/components/time-picker.md +2 -2
  1049. package/skills/ndl-react/components/timezone-picker.md +4 -4
  1050. package/skills/ndl-react/components/tooltip.md +3 -3
  1051. package/skills/ndl-react/components/tree-view.md +6 -4
  1052. package/skills/ndl-react/components/typography.md +4 -0
  1053. package/skills/ndl-react/references/styling.md +56 -48
  1054. package/lib/cjs/icons/generated/custom/AddNode.js +0 -31
  1055. package/lib/cjs/icons/generated/custom/AddNode.js.map +0 -1
  1056. package/lib/cjs/icons/generated/custom/PanelBottom.js +0 -31
  1057. package/lib/cjs/icons/generated/custom/PanelBottom.js.map +0 -1
  1058. package/lib/cjs/icons/generated/custom/PanelLeft.js +0 -31
  1059. package/lib/cjs/icons/generated/custom/PanelLeft.js.map +0 -1
  1060. package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js +0 -31
  1061. package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js.map +0 -1
  1062. package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js +0 -31
  1063. package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js.map +0 -1
  1064. package/lib/cjs/icons/generated/custom/PanelRight.js +0 -31
  1065. package/lib/cjs/icons/generated/custom/PanelRight.js.map +0 -1
  1066. package/lib/cjs/icons/generated/custom/ThreePanel.js +0 -31
  1067. package/lib/cjs/icons/generated/custom/ThreePanel.js.map +0 -1
  1068. package/lib/cjs/text-link/stories/text-link-default.story.js.map +0 -1
  1069. package/lib/cjs/text-link/stories/text-link-external-underline.story.js +0 -30
  1070. package/lib/cjs/text-link/stories/text-link-external-underline.story.js.map +0 -1
  1071. package/lib/cjs/text-link/stories/text-link-internal-icon.story.js +0 -30
  1072. package/lib/cjs/text-link/stories/text-link-internal-icon.story.js.map +0 -1
  1073. package/lib/cjs/text-link/stories/text-link-internal-underline.story.js.map +0 -1
  1074. package/lib/cjs/text-overflow/TextOverflow.js +0 -146
  1075. package/lib/cjs/text-overflow/TextOverflow.js.map +0 -1
  1076. package/lib/cjs/text-overflow/constants.js +0 -44
  1077. package/lib/cjs/text-overflow/constants.js.map +0 -1
  1078. package/lib/cjs/text-overflow/index.js.map +0 -1
  1079. package/lib/cjs/text-overflow/stories/character-limit.story.js +0 -32
  1080. package/lib/cjs/text-overflow/stories/character-limit.story.js.map +0 -1
  1081. package/lib/cjs/text-overflow/stories/expand-collapse-buttons.story.js +0 -32
  1082. package/lib/cjs/text-overflow/stories/expand-collapse-buttons.story.js.map +0 -1
  1083. package/lib/cjs/text-overflow/stories/index.js +0 -48
  1084. package/lib/cjs/text-overflow/stories/index.js.map +0 -1
  1085. package/lib/cjs/text-overflow/stories/line-clamp.story.js +0 -32
  1086. package/lib/cjs/text-overflow/stories/line-clamp.story.js.map +0 -1
  1087. package/lib/cjs/text-overflow/stories/mixed-content.story.js +0 -31
  1088. package/lib/cjs/text-overflow/stories/mixed-content.story.js.map +0 -1
  1089. package/lib/cjs/text-overflow/stories/width-based-truncation.story.js +0 -32
  1090. package/lib/cjs/text-overflow/stories/width-based-truncation.story.js.map +0 -1
  1091. package/lib/cjs/text-overflow/text-overflow-utils.js +0 -167
  1092. package/lib/cjs/text-overflow/text-overflow-utils.js.map +0 -1
  1093. package/lib/cjs/text-overflow/use-ellipsis-observer.js +0 -66
  1094. package/lib/cjs/text-overflow/use-ellipsis-observer.js.map +0 -1
  1095. package/lib/cjs/text-overflow/use-truncate-with-button.js +0 -205
  1096. package/lib/cjs/text-overflow/use-truncate-with-button.js.map +0 -1
  1097. package/lib/esm/icons/generated/custom/AddNode.js +0 -29
  1098. package/lib/esm/icons/generated/custom/AddNode.js.map +0 -1
  1099. package/lib/esm/icons/generated/custom/PanelBottom.js +0 -29
  1100. package/lib/esm/icons/generated/custom/PanelBottom.js.map +0 -1
  1101. package/lib/esm/icons/generated/custom/PanelLeft.js +0 -29
  1102. package/lib/esm/icons/generated/custom/PanelLeft.js.map +0 -1
  1103. package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js +0 -29
  1104. package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js.map +0 -1
  1105. package/lib/esm/icons/generated/custom/PanelLeftExpanded.js +0 -29
  1106. package/lib/esm/icons/generated/custom/PanelLeftExpanded.js.map +0 -1
  1107. package/lib/esm/icons/generated/custom/PanelRight.js +0 -29
  1108. package/lib/esm/icons/generated/custom/PanelRight.js.map +0 -1
  1109. package/lib/esm/icons/generated/custom/ThreePanel.js +0 -29
  1110. package/lib/esm/icons/generated/custom/ThreePanel.js.map +0 -1
  1111. package/lib/esm/text-link/stories/text-link-default.story.js +0 -28
  1112. package/lib/esm/text-link/stories/text-link-default.story.js.map +0 -1
  1113. package/lib/esm/text-link/stories/text-link-external-underline.story.js +0 -28
  1114. package/lib/esm/text-link/stories/text-link-external-underline.story.js.map +0 -1
  1115. package/lib/esm/text-link/stories/text-link-internal-icon.story.js +0 -28
  1116. package/lib/esm/text-link/stories/text-link-internal-icon.story.js.map +0 -1
  1117. package/lib/esm/text-link/stories/text-link-internal-underline.story.js.map +0 -1
  1118. package/lib/esm/text-overflow/TextOverflow.js +0 -139
  1119. package/lib/esm/text-overflow/TextOverflow.js.map +0 -1
  1120. package/lib/esm/text-overflow/constants.js +0 -41
  1121. package/lib/esm/text-overflow/constants.js.map +0 -1
  1122. package/lib/esm/text-overflow/index.js.map +0 -1
  1123. package/lib/esm/text-overflow/stories/character-limit.story.js +0 -30
  1124. package/lib/esm/text-overflow/stories/character-limit.story.js.map +0 -1
  1125. package/lib/esm/text-overflow/stories/expand-collapse-buttons.story.js +0 -30
  1126. package/lib/esm/text-overflow/stories/expand-collapse-buttons.story.js.map +0 -1
  1127. package/lib/esm/text-overflow/stories/index.js +0 -37
  1128. package/lib/esm/text-overflow/stories/index.js.map +0 -1
  1129. package/lib/esm/text-overflow/stories/line-clamp.story.js +0 -30
  1130. package/lib/esm/text-overflow/stories/line-clamp.story.js.map +0 -1
  1131. package/lib/esm/text-overflow/stories/mixed-content.story.js +0 -29
  1132. package/lib/esm/text-overflow/stories/mixed-content.story.js.map +0 -1
  1133. package/lib/esm/text-overflow/stories/width-based-truncation.story.js +0 -30
  1134. package/lib/esm/text-overflow/stories/width-based-truncation.story.js.map +0 -1
  1135. package/lib/esm/text-overflow/text-overflow-utils.js +0 -159
  1136. package/lib/esm/text-overflow/text-overflow-utils.js.map +0 -1
  1137. package/lib/esm/text-overflow/use-ellipsis-observer.js +0 -63
  1138. package/lib/esm/text-overflow/use-ellipsis-observer.js.map +0 -1
  1139. package/lib/esm/text-overflow/use-truncate-with-button.js +0 -202
  1140. package/lib/esm/text-overflow/use-truncate-with-button.js.map +0 -1
  1141. package/lib/types/icons/generated/custom/AddNode.d.ts +0 -30
  1142. package/lib/types/icons/generated/custom/AddNode.d.ts.map +0 -1
  1143. package/lib/types/icons/generated/custom/PanelBottom.d.ts +0 -30
  1144. package/lib/types/icons/generated/custom/PanelBottom.d.ts.map +0 -1
  1145. package/lib/types/icons/generated/custom/PanelLeft.d.ts +0 -30
  1146. package/lib/types/icons/generated/custom/PanelLeft.d.ts.map +0 -1
  1147. package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts +0 -30
  1148. package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts.map +0 -1
  1149. package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts +0 -30
  1150. package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts.map +0 -1
  1151. package/lib/types/icons/generated/custom/PanelRight.d.ts +0 -30
  1152. package/lib/types/icons/generated/custom/PanelRight.d.ts.map +0 -1
  1153. package/lib/types/icons/generated/custom/ThreePanel.d.ts +0 -30
  1154. package/lib/types/icons/generated/custom/ThreePanel.d.ts.map +0 -1
  1155. package/lib/types/text-link/stories/text-link-default.story.d.ts +0 -24
  1156. package/lib/types/text-link/stories/text-link-default.story.d.ts.map +0 -1
  1157. package/lib/types/text-link/stories/text-link-external-underline.story.d.ts +0 -24
  1158. package/lib/types/text-link/stories/text-link-external-underline.story.d.ts.map +0 -1
  1159. package/lib/types/text-link/stories/text-link-internal-icon.story.d.ts +0 -24
  1160. package/lib/types/text-link/stories/text-link-internal-icon.story.d.ts.map +0 -1
  1161. package/lib/types/text-link/stories/text-link-internal-underline.story.d.ts +0 -24
  1162. package/lib/types/text-link/stories/text-link-internal-underline.story.d.ts.map +0 -1
  1163. package/lib/types/text-overflow/TextOverflow.d.ts +0 -63
  1164. package/lib/types/text-overflow/TextOverflow.d.ts.map +0 -1
  1165. package/lib/types/text-overflow/constants.d.ts +0 -41
  1166. package/lib/types/text-overflow/constants.d.ts.map +0 -1
  1167. package/lib/types/text-overflow/index.d.ts +0 -22
  1168. package/lib/types/text-overflow/index.d.ts.map +0 -1
  1169. package/lib/types/text-overflow/stories/character-limit.story.d.ts.map +0 -1
  1170. package/lib/types/text-overflow/stories/expand-collapse-buttons.story.d.ts +0 -24
  1171. package/lib/types/text-overflow/stories/expand-collapse-buttons.story.d.ts.map +0 -1
  1172. package/lib/types/text-overflow/stories/index.d.ts +0 -31
  1173. package/lib/types/text-overflow/stories/index.d.ts.map +0 -1
  1174. package/lib/types/text-overflow/stories/line-clamp.story.d.ts +0 -24
  1175. package/lib/types/text-overflow/stories/line-clamp.story.d.ts.map +0 -1
  1176. package/lib/types/text-overflow/stories/mixed-content.story.d.ts +0 -24
  1177. package/lib/types/text-overflow/stories/mixed-content.story.d.ts.map +0 -1
  1178. package/lib/types/text-overflow/stories/width-based-truncation.story.d.ts +0 -24
  1179. package/lib/types/text-overflow/stories/width-based-truncation.story.d.ts.map +0 -1
  1180. package/lib/types/text-overflow/text-overflow-utils.d.ts +0 -35
  1181. package/lib/types/text-overflow/text-overflow-utils.d.ts.map +0 -1
  1182. package/lib/types/text-overflow/use-ellipsis-observer.d.ts +0 -28
  1183. package/lib/types/text-overflow/use-ellipsis-observer.d.ts.map +0 -1
  1184. package/lib/types/text-overflow/use-truncate-with-button.d.ts +0 -45
  1185. package/lib/types/text-overflow/use-truncate-with-button.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../src/slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect } from 'react';\nimport {\n mergeProps,\n useFocusRing,\n useSlider,\n useSliderThumb,\n VisuallyHidden,\n} from 'react-aria';\nimport { type SliderState, useSliderState } from 'react-stately';\n\nimport {\n type HtmlAttributes,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { Tooltip } from '../tooltip';\n\ntype SliderPropsBase = {\n /** Input props of the underlying input element */\n inputProps?: HtmlAttributes<'input'>;\n /** Determines the step size that will be added or removed from the current value when moving the slider button */\n step?: number;\n /** Whether the slider is disabled */\n isDisabled?: boolean;\n /** The minimum value possible to choose */\n minValue?: number;\n /** The maximum value possible to choose */\n maxValue?: number;\n /** Whether to display a tooltip with the current value when the slider is being dragged */\n // TODO v5: decide if this naming is okay, or change it\n // eslint-disable-next-line @typescript-eslint/naming-convention\n showValues?: boolean;\n /** Whether to display visual indicators for each step in the slider */\n // TODO v5: decide if this naming is okay, or change it\n // eslint-disable-next-line @typescript-eslint/naming-convention\n showSteps?: boolean;\n};\n\ntype SingleSlider = SliderPropsBase & {\n /** Type of the slider */\n type?: 'single';\n /** Current value of the single slider. **Only required when the type is 'single'**. */\n value: number;\n /** Callback function triggered when the slider value(s) changes. The function parameter varies depending on the slider type, for single slider, it is a number and for range slider, it is an array of two numbers. */\n onChange: (value: number) => void;\n};\n\ntype RangeSlider = SliderPropsBase & {\n /** Type of the slider */\n type: 'range';\n /** Current values of the range slider as an array of two numbers `[min, max]`. **Only required when the type is 'range'**. */\n values: [number, number];\n /** Callback function triggered when the slider value(s) changes. The function parameter varies depending on the slider type, for single slider, it is a number and for range slider, it is an array of two numbers. */\n onChange: (value: [number, number]) => void;\n};\n\n/**\n * @remarks\n * The `type` prop is used to determine the type of the slider. It can be `single` or `range`. The `value` prop is required when the `type` is `single` and `values` is required when the `type` is `range`. It also affects the `onChange` prop type.\n */\ntype SliderProps = SingleSlider | RangeSlider;\n\nexport const Slider = <T extends React.ElementType = 'div'>({\n as,\n inputProps = {},\n className,\n style,\n minValue = 0,\n maxValue = 100,\n isDisabled = false,\n showSteps = false,\n showValues = false,\n step = 1,\n type = 'single',\n onChange,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SliderProps>) => {\n const trackRef = React.useRef<HTMLDivElement | null>(null);\n\n const castedValue =\n type === 'range'\n ? (restProps as RangeSlider).values\n : (restProps as SingleSlider).value;\n\n const castedOnChange =\n type === 'range'\n ? (onChange as RangeSlider['onChange'])\n : (onChange as SingleSlider['onChange']);\n\n const state = useSliderState<typeof castedValue>({\n defaultValue: castedValue,\n isDisabled,\n maxValue,\n minValue,\n numberFormatter: new Intl.NumberFormat('en-US'),\n // oxlint-disable-next-line no-explicit-any\n onChange: castedOnChange as any,\n step,\n });\n\n const { setThumbValue } = state;\n\n const { groupProps, trackProps } = useSlider(\n { 'aria-label': 'slider' },\n state,\n trackRef,\n );\n\n const updatesSliderValue = useCallback(\n (newValue: number | [number, number]) => {\n if (type === 'single' && typeof newValue === 'number') {\n setThumbValue(0, newValue);\n } else if (type === 'range' && Array.isArray(newValue)) {\n setThumbValue(0, newValue[0]);\n setThumbValue(1, newValue[1]);\n }\n },\n [type, setThumbValue],\n );\n\n useEffect(() => {\n updatesSliderValue(castedValue);\n // Needed to make the slider work with controlled values\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [castedValue]);\n\n const Component: React.ElementType = as ?? 'div';\n\n return (\n <Component\n className={classNames('ndl-slider', className)}\n style={style}\n role=\"presentation\"\n ref={ref}\n {...groupProps}\n {...restProps}\n {...htmlAttributes}\n >\n {/* The track element holds the visible track line, the filled track line and the thumb. */}\n <div\n {...trackProps}\n ref={trackRef as React.RefObject<HTMLDivElement>}\n className={classNames('ndl-track', {\n 'ndl-is-disabled': state.isDisabled,\n })}\n >\n {/* Circular marks, acting as indicators for the steps */}\n {showSteps && (\n <TrackMarks state={state} min={minValue} max={maxValue} />\n )}\n <FilledTrack state={state} />\n <Thumb\n index={0}\n state={state}\n trackRef={trackRef as React.RefObject<HTMLDivElement>}\n showValues={showValues}\n inputForwardedProps={inputProps}\n />\n {type === 'range' && (\n <Thumb\n index={1}\n state={state}\n trackRef={trackRef as React.RefObject<HTMLDivElement>}\n showValues={showValues}\n inputForwardedProps={inputProps}\n />\n )}\n </div>\n </Component>\n );\n};\n\nSlider.displayName = 'Slider';\n\nfunction FilledTrack({ state }: { state: SliderState }) {\n let width: number;\n let left: number;\n if (state.values.length === 1) {\n width = state.getValuePercent(state.values[0]) * 100;\n left = 0;\n } else {\n width =\n state.getValuePercent(state.values[1]) * 100 -\n state.getValuePercent(state.values[0]) * 100;\n left = state.getValuePercent(state.values[0]) * 100;\n }\n\n return (\n <div\n className=\"ndl-filled-track\"\n style={{\n left: `${left}%`,\n width: `${width}%`,\n }}\n />\n );\n}\n\nfunction TrackMarks({\n state,\n max,\n min,\n}: {\n state: SliderState;\n max: number;\n min: number;\n}) {\n const markNo = Math.round((max - min) / state.step);\n\n return (\n <div role=\"presentation\" className=\"ndl-track-marks\">\n {Array.from({ length: markNo - 1 }).map((_unused, index) => {\n const percent = (index / markNo) * 100;\n\n let isFilled;\n if (state.values.length === 1) {\n isFilled = state.getValuePercent(state.values[0]) * 100 > percent;\n } else {\n isFilled =\n state.getValuePercent(state.values[0]) * 100 < percent &&\n state.getValuePercent(state.values[1]) * 100 > percent;\n }\n\n return (\n <div\n key={`track-mark-${index}`}\n className={classNames('ndl-track-mark', {\n 'ndl-on-active-track': isFilled,\n })}\n style={{\n left: `${((index + 1) / markNo) * 100}%`,\n }}\n />\n );\n })}\n </div>\n );\n}\n\nfunction Thumb(props: {\n index: number;\n state: SliderState;\n // TODO v5: decide if this naming is okay, or change it\n // eslint-disable-next-line @typescript-eslint/naming-convention\n showValues?: boolean;\n trackRef: React.RefObject<HTMLDivElement>;\n inputForwardedProps: HtmlAttributes<'input'>;\n}) {\n const { state, trackRef, index, inputForwardedProps } = props;\n const inputRef = React.useRef(null);\n const { thumbProps, inputProps, isDragging } = useSliderThumb(\n {\n index,\n inputRef,\n name: 'slider-thumb',\n trackRef,\n },\n state,\n );\n\n const { focusProps, isFocusVisible } = useFocusRing();\n\n /**\n * Solve issue with:\n * Warning: Received NaN for the `value` attribute. If this is expected, cast the value to a string.\n * Receiving NaN for other attributes also, like `max`. Waiting for a fix in react-aria.\n * @see https://github.com/adobe/react-spectrum/issues/5859\n * @see https://github.com/adobe/react-spectrum/pull/5861\n */\n const mergedProps = mergeProps(\n inputProps,\n focusProps,\n // Omitting aria-valuetext double announcements, unless explicitly provided\n { 'aria-valuetext': '' },\n inputForwardedProps,\n );\n const value =\n mergedProps.value !== undefined || mergedProps.value === 0\n ? mergedProps.value\n : '';\n\n return (\n <Tooltip\n isDisabled={props.showValues !== true}\n isOpen={isDragging || undefined}\n placement=\"top\"\n type=\"simple\"\n >\n <Tooltip.Trigger hasButtonWrapper>\n <div\n {...thumbProps}\n className={classNames('ndl-thumb', {\n 'ndl-focus': isFocusVisible,\n 'ndl-is-dragging': isDragging,\n })}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergedProps} />\n </VisuallyHidden>\n </div>\n </Tooltip.Trigger>\n <Tooltip.Content>{value}</Tooltip.Content>\n </Tooltip>\n );\n}\n"]}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../src/slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect } from 'react';\nimport {\n mergeProps,\n useFocusRing,\n useSlider,\n useSliderThumb,\n VisuallyHidden,\n} from 'react-aria';\nimport { type SliderState, useSliderState } from 'react-stately';\n\nimport {\n type HtmlAttributes,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { Tooltip } from '../tooltip';\n\ntype SliderPropsBase = {\n /** Input props of the underlying input element */\n inputProps?: HtmlAttributes<'input'>;\n /** Determines the step size that will be added or removed from the current value when moving the slider button */\n step?: number;\n /** Whether the slider is disabled */\n isDisabled?: boolean;\n /** The minimum value possible to choose */\n minValue?: number;\n /** The maximum value possible to choose */\n maxValue?: number;\n /** Whether to display a tooltip with the current value when the slider is being dragged */\n shouldShowValues?: boolean;\n /** Whether to display visual indicators for each step in the slider */\n shouldShowSteps?: boolean;\n};\n\ntype SingleSlider = SliderPropsBase & {\n /** Type of the slider */\n type?: 'single';\n /** Current value of the single slider. **Only required when the type is 'single'**. */\n value: number;\n /** Callback function triggered when the slider value(s) changes. The function parameter varies depending on the slider type, for single slider, it is a number and for range slider, it is an array of two numbers. */\n onChange: (value: number) => void;\n};\n\ntype RangeSlider = SliderPropsBase & {\n /** Type of the slider */\n type: 'range';\n /** Current values of the range slider as an array of two numbers `[min, max]`. **Only required when the type is 'range'**. */\n values: [number, number];\n /** Callback function triggered when the slider value(s) changes. The function parameter varies depending on the slider type, for single slider, it is a number and for range slider, it is an array of two numbers. */\n onChange: (value: [number, number]) => void;\n};\n\n/**\n * @remarks\n * The `type` prop is used to determine the type of the slider. It can be `single` or `range`. The `value` prop is required when the `type` is `single` and `values` is required when the `type` is `range`. It also affects the `onChange` prop type.\n */\ntype SliderProps = SingleSlider | RangeSlider;\n\nexport const Slider = <T extends React.ElementType = 'div'>({\n as,\n inputProps = {},\n className,\n style,\n minValue = 0,\n maxValue = 100,\n isDisabled = false,\n shouldShowSteps = false,\n shouldShowValues = false,\n step = 1,\n type = 'single',\n onChange,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SliderProps>) => {\n const trackRef = React.useRef<HTMLDivElement | null>(null);\n\n const castedValue =\n type === 'range'\n ? (restProps as RangeSlider).values\n : (restProps as SingleSlider).value;\n\n const castedOnChange =\n type === 'range'\n ? (onChange as RangeSlider['onChange'])\n : (onChange as SingleSlider['onChange']);\n\n const state = useSliderState<typeof castedValue>({\n defaultValue: castedValue,\n isDisabled,\n maxValue,\n minValue,\n numberFormatter: new Intl.NumberFormat('en-US'),\n // oxlint-disable-next-line no-explicit-any\n onChange: castedOnChange as any,\n step,\n });\n\n const { setThumbValue } = state;\n\n const { groupProps, trackProps } = useSlider(\n { 'aria-label': 'slider' },\n state,\n trackRef,\n );\n\n const updatesSliderValue = useCallback(\n (newValue: number | [number, number]) => {\n if (type === 'single' && typeof newValue === 'number') {\n setThumbValue(0, newValue);\n } else if (type === 'range' && Array.isArray(newValue)) {\n setThumbValue(0, newValue[0]);\n setThumbValue(1, newValue[1]);\n }\n },\n [type, setThumbValue],\n );\n\n useEffect(() => {\n updatesSliderValue(castedValue);\n // Needed to make the slider work with controlled values\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [castedValue]);\n\n const Component: React.ElementType = as ?? 'div';\n\n return (\n <Component\n className={classNames('ndl-slider', className)}\n style={style}\n role=\"presentation\"\n ref={ref}\n {...groupProps}\n {...restProps}\n {...htmlAttributes}\n >\n {/* The track element holds the visible track line, the filled track line and the thumb. */}\n <div\n {...trackProps}\n ref={trackRef as React.RefObject<HTMLDivElement>}\n className={classNames('ndl-track', {\n 'ndl-is-disabled': state.isDisabled,\n })}\n >\n {/* Circular marks, acting as indicators for the steps */}\n {shouldShowSteps && (\n <TrackMarks state={state} min={minValue} max={maxValue} />\n )}\n <FilledTrack state={state} />\n <Thumb\n index={0}\n state={state}\n trackRef={trackRef as React.RefObject<HTMLDivElement>}\n shouldShowValues={shouldShowValues}\n inputForwardedProps={inputProps}\n />\n {type === 'range' && (\n <Thumb\n index={1}\n state={state}\n trackRef={trackRef as React.RefObject<HTMLDivElement>}\n shouldShowValues={shouldShowValues}\n inputForwardedProps={inputProps}\n />\n )}\n </div>\n </Component>\n );\n};\n\nSlider.displayName = 'Slider';\n\nfunction FilledTrack({ state }: { state: SliderState }) {\n let width: number;\n let left: number;\n if (state.values.length === 1) {\n width = state.getValuePercent(state.values[0]) * 100;\n left = 0;\n } else {\n width =\n state.getValuePercent(state.values[1]) * 100 -\n state.getValuePercent(state.values[0]) * 100;\n left = state.getValuePercent(state.values[0]) * 100;\n }\n\n return (\n <div\n className=\"ndl-filled-track\"\n style={{\n left: `${left}%`,\n width: `${width}%`,\n }}\n />\n );\n}\n\nfunction TrackMarks({\n state,\n max,\n min,\n}: {\n state: SliderState;\n max: number;\n min: number;\n}) {\n const markNo = Math.round((max - min) / state.step);\n\n return (\n <div role=\"presentation\" className=\"ndl-track-marks\">\n {Array.from({ length: markNo - 1 }).map((_unused, index) => {\n const percent = (index / markNo) * 100;\n\n let isFilled;\n if (state.values.length === 1) {\n isFilled = state.getValuePercent(state.values[0]) * 100 > percent;\n } else {\n isFilled =\n state.getValuePercent(state.values[0]) * 100 < percent &&\n state.getValuePercent(state.values[1]) * 100 > percent;\n }\n\n return (\n <div\n key={`track-mark-${index}`}\n className={classNames('ndl-track-mark', {\n 'ndl-on-active-track': isFilled,\n })}\n style={{\n left: `${((index + 1) / markNo) * 100}%`,\n }}\n />\n );\n })}\n </div>\n );\n}\n\nfunction Thumb(props: {\n index: number;\n state: SliderState;\n shouldShowValues?: boolean;\n trackRef: React.RefObject<HTMLDivElement>;\n inputForwardedProps: HtmlAttributes<'input'>;\n}) {\n const { state, trackRef, index, inputForwardedProps } = props;\n const inputRef = React.useRef(null);\n const { thumbProps, inputProps, isDragging } = useSliderThumb(\n {\n index,\n inputRef,\n name: 'slider-thumb',\n trackRef,\n },\n state,\n );\n\n const { focusProps, isFocusVisible } = useFocusRing();\n\n /**\n * Solve issue with:\n * Warning: Received NaN for the `value` attribute. If this is expected, cast the value to a string.\n * Receiving NaN for other attributes also, like `max`. Waiting for a fix in react-aria.\n * @see https://github.com/adobe/react-spectrum/issues/5859\n * @see https://github.com/adobe/react-spectrum/pull/5861\n */\n const mergedProps = mergeProps(\n inputProps,\n focusProps,\n // Omitting aria-valuetext double announcements, unless explicitly provided\n { 'aria-valuetext': '' },\n inputForwardedProps,\n );\n const value =\n mergedProps.value !== undefined || mergedProps.value === 0\n ? mergedProps.value\n : '';\n\n return (\n <Tooltip\n isDisabled={props.shouldShowValues !== true}\n isOpen={isDragging || undefined}\n placement=\"top\"\n type=\"simple\"\n >\n <Tooltip.Trigger hasButtonWrapper>\n <div\n {...thumbProps}\n className={classNames('ndl-thumb', {\n 'ndl-focus': isFocusVisible,\n 'ndl-is-dragging': isDragging,\n })}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergedProps} />\n </VisuallyHidden>\n </div>\n </Tooltip.Trigger>\n <Tooltip.Content>{value}</Tooltip.Content>\n </Tooltip>\n );\n}\n"]}
@@ -25,7 +25,7 @@ const react_1 = require("@neo4j-ndl/react");
25
25
  const Component = () => {
26
26
  return ((0, jsx_runtime_1.jsx)(react_1.Slider, { minValue: 0, maxValue: 100, step: 10, value: 50, onChange: (newValue) => {
27
27
  console.info('onChange', newValue);
28
- }, showSteps: true, showValues: true }));
28
+ }, shouldShowSteps: true, shouldShowValues: true }));
29
29
  };
30
30
  exports.default = Component;
31
31
  //# sourceMappingURL=slider-custom-step-length.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-custom-step-length.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-custom-step-length.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,SAAS,QACT,UAAU,SACV,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n step={10}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n showSteps\n showValues\n />\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-custom-step-length.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-custom-step-length.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,eAAe,QACf,gBAAgB,SAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n step={10}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n shouldShowSteps\n shouldShowValues\n />\n );\n};\n\nexport default Component;\n"]}
@@ -25,7 +25,7 @@ const react_1 = require("@neo4j-ndl/react");
25
25
  const Component = () => {
26
26
  return ((0, jsx_runtime_1.jsx)(react_1.Slider, { type: "range", values: [10, 50], onChange: (newValue) => {
27
27
  console.info('onChange', newValue);
28
- }, minValue: 0, maxValue: 200, step: 10, isDisabled: false, showSteps: true, showValues: true }));
28
+ }, minValue: 0, maxValue: 200, step: 10, isDisabled: false, shouldShowSteps: true, shouldShowValues: true }));
29
29
  };
30
30
  exports.default = Component;
31
31
  //# sourceMappingURL=slider-range.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-range.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-range.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,IAAI,GAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n type=\"range\"\n values={[10, 50]}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n minValue={0}\n maxValue={200}\n step={10}\n isDisabled={false}\n showSteps={true}\n showValues={true}\n />\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-range.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-range.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,KAAK,EACjB,eAAe,EAAE,IAAI,EACrB,gBAAgB,EAAE,IAAI,GACtB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n type=\"range\"\n values={[10, 50]}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n minValue={0}\n maxValue={200}\n step={10}\n isDisabled={false}\n shouldShowSteps={true}\n shouldShowValues={true}\n />\n );\n};\n\nexport default Component;\n"]}
@@ -25,7 +25,7 @@ const react_1 = require("@neo4j-ndl/react");
25
25
  const Component = () => {
26
26
  return ((0, jsx_runtime_1.jsx)(react_1.Slider, { minValue: 0, maxValue: 100, value: 50, onChange: (newValue) => {
27
27
  console.info('onChange', newValue);
28
- }, showSteps: true }));
28
+ }, shouldShowSteps: true }));
29
29
  };
30
30
  exports.default = Component;
31
31
  //# sourceMappingURL=slider-show-steps.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-show-steps.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-show-steps.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,SAAS,SACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n showSteps\n />\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-show-steps.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-show-steps.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,eAAe,SACf,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n shouldShowSteps\n />\n );\n};\n\nexport default Component;\n"]}
@@ -25,7 +25,7 @@ const react_1 = require("@neo4j-ndl/react");
25
25
  const Component = () => {
26
26
  return ((0, jsx_runtime_1.jsx)(react_1.Slider, { minValue: 0, maxValue: 100, value: 50, onChange: (newValue) => {
27
27
  console.info('onChange', newValue);
28
- }, showValues: true }));
28
+ }, shouldShowValues: true }));
29
29
  };
30
30
  exports.default = Component;
31
31
  //# sourceMappingURL=slider-show-values.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-show-values.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-show-values.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,UAAU,SACV,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n showValues\n />\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-show-values.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-show-values.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,gBAAgB,SAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n minValue={0}\n maxValue={100}\n value={50}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n shouldShowValues\n />\n );\n};\n\nexport default Component;\n"]}
@@ -63,12 +63,12 @@ const Component = () => {
63
63
  setValue(newValue);
64
64
  setInputValue(String(newValue));
65
65
  }, [setInputValue, setValue]);
66
- return ((0, jsx_runtime_1.jsxs)("div", { className: "n-flex n-flex-col n-gap-token-16", children: [(0, jsx_runtime_1.jsx)(react_1.TextInput, { label: "Slider value", helpText: `Enter a value between ${MIN_VALUE} and ${MAX_VALUE}`, isRequired: true, errorText: error, htmlAttributes: {
66
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-token-16", children: [(0, jsx_runtime_1.jsx)(react_1.TextInput, { label: "Slider value", helpText: `Enter a value between ${MIN_VALUE} and ${MAX_VALUE}`, isRequired: true, errorText: error, htmlAttributes: {
67
67
  max: MAX_VALUE,
68
68
  min: MIN_VALUE,
69
69
  step: STEP,
70
70
  type: 'number',
71
- }, value: inputValue, onChange: handleInputChange }), (0, jsx_runtime_1.jsx)(react_1.Slider, { type: "single", value: value, onChange: handleSliderChange, minValue: MIN_VALUE, maxValue: MAX_VALUE, step: STEP, showSteps: true, showValues: true, isDisabled: hasError, inputProps: {
71
+ }, value: inputValue, onChange: handleInputChange }), (0, jsx_runtime_1.jsx)(react_1.Slider, { type: "single", value: value, onChange: handleSliderChange, minValue: MIN_VALUE, maxValue: MAX_VALUE, step: STEP, shouldShowSteps: true, shouldShowValues: true, isDisabled: hasError, inputProps: {
72
72
  'aria-valuetext': `${value} out of ${MAX_VALUE}`,
73
73
  } })] }));
74
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"slider-single-controlled.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-single-controlled.story.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Slider, TextInput } from '@neo4j-ndl/react';\nimport { useCallback, useState } from 'react';\n\nconst MIN_VALUE = 0;\nconst MAX_VALUE = 100;\nconst STEP = 5;\nconst INITIAL_VALUE = 50;\n\nconst getValidationError = (\n input: string,\n): { error: string; isValid: false } | { error: undefined; isValid: true } => {\n const trimmed = input.trim();\n\n if (!trimmed) {\n return { error: 'Value is required', isValid: false };\n }\n\n const numValue = Number(trimmed);\n if (isNaN(numValue)) {\n return { error: 'Please enter a valid number', isValid: false };\n }\n\n if (!Number.isInteger(numValue)) {\n return { error: 'Please enter a whole number', isValid: false };\n }\n\n if (numValue < MIN_VALUE) {\n return { error: `Value must be at least ${MIN_VALUE}`, isValid: false };\n }\n\n if (numValue > MAX_VALUE) {\n return { error: `Value must be at most ${MAX_VALUE}`, isValid: false };\n }\n\n return { error: undefined, isValid: true };\n};\n\nconst Component = () => {\n const [value, setValue] = useState(INITIAL_VALUE);\n const [inputValue, setInputValue] = useState(String(INITIAL_VALUE));\n const { error, isValid } = getValidationError(inputValue);\n const hasError = !isValid;\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const newInputValue = event.target.value;\n setInputValue(newInputValue);\n\n if (isValid) {\n setValue(Number(newInputValue));\n }\n },\n [setInputValue, setValue, isValid],\n );\n\n const handleSliderChange = useCallback(\n (newValue: number) => {\n setValue(newValue);\n setInputValue(String(newValue));\n },\n [setInputValue, setValue],\n );\n\n return (\n <div className=\"n-flex n-flex-col n-gap-token-16\">\n <TextInput\n label=\"Slider value\"\n helpText={`Enter a value between ${MIN_VALUE} and ${MAX_VALUE}`}\n isRequired\n errorText={error}\n htmlAttributes={{\n max: MAX_VALUE,\n min: MIN_VALUE,\n step: STEP,\n type: 'number',\n }}\n value={inputValue}\n onChange={handleInputChange}\n />\n\n <Slider\n type=\"single\"\n value={value}\n onChange={handleSliderChange}\n minValue={MIN_VALUE}\n maxValue={MAX_VALUE}\n step={STEP}\n showSteps\n showValues\n isDisabled={hasError}\n inputProps={{\n 'aria-valuetext': `${value} out of ${MAX_VALUE}`,\n }}\n />\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-single-controlled.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-single-controlled.story.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Slider, TextInput } from '@neo4j-ndl/react';\nimport { useCallback, useState } from 'react';\n\nconst MIN_VALUE = 0;\nconst MAX_VALUE = 100;\nconst STEP = 5;\nconst INITIAL_VALUE = 50;\n\nconst getValidationError = (\n input: string,\n): { error: string; isValid: false } | { error: undefined; isValid: true } => {\n const trimmed = input.trim();\n\n if (!trimmed) {\n return { error: 'Value is required', isValid: false };\n }\n\n const numValue = Number(trimmed);\n if (isNaN(numValue)) {\n return { error: 'Please enter a valid number', isValid: false };\n }\n\n if (!Number.isInteger(numValue)) {\n return { error: 'Please enter a whole number', isValid: false };\n }\n\n if (numValue < MIN_VALUE) {\n return { error: `Value must be at least ${MIN_VALUE}`, isValid: false };\n }\n\n if (numValue > MAX_VALUE) {\n return { error: `Value must be at most ${MAX_VALUE}`, isValid: false };\n }\n\n return { error: undefined, isValid: true };\n};\n\nconst Component = () => {\n const [value, setValue] = useState(INITIAL_VALUE);\n const [inputValue, setInputValue] = useState(String(INITIAL_VALUE));\n const { error, isValid } = getValidationError(inputValue);\n const hasError = !isValid;\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const newInputValue = event.target.value;\n setInputValue(newInputValue);\n\n if (isValid) {\n setValue(Number(newInputValue));\n }\n },\n [setInputValue, setValue, isValid],\n );\n\n const handleSliderChange = useCallback(\n (newValue: number) => {\n setValue(newValue);\n setInputValue(String(newValue));\n },\n [setInputValue, setValue],\n );\n\n return (\n <div className=\"flex flex-col gap-token-16\">\n <TextInput\n label=\"Slider value\"\n helpText={`Enter a value between ${MIN_VALUE} and ${MAX_VALUE}`}\n isRequired\n errorText={error}\n htmlAttributes={{\n max: MAX_VALUE,\n min: MIN_VALUE,\n step: STEP,\n type: 'number',\n }}\n value={inputValue}\n onChange={handleInputChange}\n />\n\n <Slider\n type=\"single\"\n value={value}\n onChange={handleSliderChange}\n minValue={MIN_VALUE}\n maxValue={MAX_VALUE}\n step={STEP}\n shouldShowSteps\n shouldShowValues\n isDisabled={hasError}\n inputProps={{\n 'aria-valuetext': `${value} out of ${MAX_VALUE}`,\n }}\n />\n </div>\n );\n};\n\nexport default Component;\n"]}
@@ -25,7 +25,7 @@ const react_1 = require("@neo4j-ndl/react");
25
25
  const Component = () => {
26
26
  return ((0, jsx_runtime_1.jsx)(react_1.Slider, { type: "single", value: 100, onChange: (newValue) => {
27
27
  console.info('onChange', newValue);
28
- }, minValue: 0, maxValue: 200, isDisabled: false, step: 10, showSteps: true, showValues: true, inputProps: { 'aria-valuetext': 'percent' } }));
28
+ }, minValue: 0, maxValue: 200, isDisabled: false, step: 10, shouldShowSteps: true, shouldShowValues: true, inputProps: { 'aria-valuetext': 'percent' } }));
29
29
  };
30
30
  exports.default = Component;
31
31
  //# sourceMappingURL=slider-single.story.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slider-single.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-single.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAC3C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n type=\"single\"\n value={100}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n minValue={0}\n maxValue={200}\n isDisabled={false}\n step={10}\n showSteps={true}\n showValues={true}\n inputProps={{ 'aria-valuetext': 'percent' }}\n />\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"slider-single.story.js","sourceRoot":"","sources":["../../../../src/slider/stories/slider-single.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,4CAA0C;AAE1C,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,CACL,uBAAC,cAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,EACD,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,EAAE,EACR,eAAe,EAAE,IAAI,EACrB,gBAAgB,EAAE,IAAI,EACtB,UAAU,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAC3C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { Slider } from '@neo4j-ndl/react';\n\nconst Component = () => {\n return (\n <Slider\n type=\"single\"\n value={100}\n onChange={(newValue) => {\n console.info('onChange', newValue);\n }}\n minValue={0}\n maxValue={200}\n isDisabled={false}\n step={10}\n shouldShowSteps={true}\n shouldShowValues={true}\n inputProps={{ 'aria-valuetext': 'percent' }}\n />\n );\n};\n\nexport default Component;\n"]}
@@ -122,7 +122,7 @@ SpotlightLabel.displayName = 'Spotlight.Label';
122
122
  const SpotlightImage = (_a) => {
123
123
  var { src, alt, className, style, htmlAttributes, ref } = _a, restProps = __rest(_a, ["src", "alt", "className", "style", "htmlAttributes", "ref"]);
124
124
  (0, SpotlightProvider_1.useSpotlightContext)();
125
- const classes = (0, classnames_1.default)('ndl-spotlight-image n-body-medium', className);
125
+ const classes = (0, classnames_1.default)('ndl-spotlight-image ndl-typography-body-medium', className);
126
126
  return ((0, jsx_runtime_1.jsx)("img", Object.assign({ src: src, alt: alt, ref: ref, className: classes, style: style }, restProps, htmlAttributes)));
127
127
  };
128
128
  SpotlightImage.displayName = 'Spotlight.Image';
@@ -136,7 +136,7 @@ const SpotlightIconWrapper = (_a) => {
136
136
  SpotlightIconWrapper.displayName = 'Spotlight.IconWrapper';
137
137
  const SpotlightComponent = (_a) => {
138
138
  var _b, _c;
139
- var { target, beforeActions, actions, initialFocus, onClose, placement, children, className, style, htmlAttributes, closeOnClickOutside = false, onOpen, ref } = _a, restProps = __rest(_a, ["target", "beforeActions", "actions", "initialFocus", "onClose", "placement", "children", "className", "style", "htmlAttributes", "closeOnClickOutside", "onOpen", "ref"]);
139
+ var { target, beforeActions, actions, initialFocus, onClose, placement, children, className, style, htmlAttributes, shouldCloseOnClickOutside = false, onOpen, ref } = _a, restProps = __rest(_a, ["target", "beforeActions", "actions", "initialFocus", "onClose", "placement", "children", "className", "style", "htmlAttributes", "shouldCloseOnClickOutside", "onOpen", "ref"]);
140
140
  const generatedHeaderId = (0, react_2.useId)();
141
141
  const generatedDescriptionId = (0, react_2.useId)();
142
142
  const [targetElement, setTargetElement] = (0, react_2.useState)(null);
@@ -170,11 +170,11 @@ const SpotlightComponent = (_a) => {
170
170
  };
171
171
  const spotlight = (0, use_spotlight_1.useSpotlight)({
172
172
  anchorElement: targetElement,
173
- closeOnClickOutside,
174
173
  initialFocus,
175
174
  isOpen: isActiveSpotlight(target) && isOpen && !!targetElement,
176
175
  onOpenChange,
177
176
  placement: placement ? popover_1.placementTranslation[placement] : undefined,
177
+ shouldCloseOnClickOutside,
178
178
  });
179
179
  const mergedRef = (0, react_1.useMergeRefs)([spotlight.refs.setFloating, ref]);
180
180
  const { themeClassName } = (0, theme_1.useNeedleTheme)();
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.js","sourceRoot":"","sources":["../../../src/spotlight/Spotlight.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useMergeRefs,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport React, {\n createContext,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { placementTranslation, type Popover } from '../popover';\nimport { StatusLabel } from '../status-label';\nimport { useNeedleTheme } from '../theme';\nimport { Typography } from '../typography';\nimport { useSpotlightContext } from './SpotlightProvider';\n\n// Local instance context to pass stable ARIA ids to subcomponents\ntype SpotlightInstanceContextType = {\n headerId?: string;\n descriptionId?: string;\n setHeaderId?: (id: string | undefined) => void;\n setDescriptionId?: (id: string | undefined) => void;\n};\n\nconst SpotlightInstanceContext =\n createContext<SpotlightInstanceContextType | null>(null);\n\nconst useSpotlightInstance = (): SpotlightInstanceContextType => {\n const ctx = useContext(SpotlightInstanceContext);\n if (ctx === null) {\n throw new Error(\n 'Spotlight subcomponents must be used within <Spotlight />',\n );\n }\n return ctx;\n};\nimport { useSpotlight } from './use-spotlight';\n\ntype SpotlightHeaderProps = {\n /** The spotlight header content */\n children?: React.ReactNode;\n};\n\nconst SpotlightHeader = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightHeaderProps>) => {\n const classes = classNames('ndl-spotlight-header', className);\n const { headerId, setHeaderId } = useSpotlightInstance();\n const Component: React.ElementType = as ?? 'div';\n\n useEffect(() => {\n if (Boolean(htmlAttributes?.id) === true) {\n setHeaderId?.(htmlAttributes?.id);\n }\n }, [setHeaderId, htmlAttributes?.id]);\n\n return (\n <Typography\n as={Component}\n className={classes}\n ref={ref}\n style={style}\n variant=\"title-4\"\n {...restProps}\n htmlAttributes={{ ...htmlAttributes, id: headerId }}\n >\n {children}\n </Typography>\n );\n};\n\nSpotlightHeader.displayName = 'Spotlight.Header';\n\ntype SpotlightBodyProps = {\n /** The spotlight body content */\n children?: React.ReactNode;\n};\n\nconst SpotlightBody = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightBodyProps>) => {\n const classes = classNames('ndl-spotlight-body', className);\n const { descriptionId, setDescriptionId } = useSpotlightInstance();\n const Component: React.ElementType = as ?? 'div';\n\n useEffect(() => {\n if (Boolean(htmlAttributes?.id) === true) {\n setDescriptionId?.(htmlAttributes?.id);\n }\n }, [setDescriptionId, htmlAttributes?.id]);\n\n return (\n <Typography\n as={Component}\n className={classes}\n ref={ref}\n style={style}\n variant=\"body-medium\"\n {...restProps}\n htmlAttributes={{ ...htmlAttributes, id: descriptionId }}\n >\n {children}\n </Typography>\n );\n};\n\nSpotlightBody.displayName = 'Spotlight.Body';\n\ntype SpotlightLabelProps = Omit<\n React.ComponentProps<typeof StatusLabel>,\n 'color' | 'fill'\n>;\n\nconst SpotlightLabel = <T extends React.ElementType = 'div'>({\n className,\n children,\n hasIcon,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightLabelProps>) => {\n useSpotlightContext();\n const classes = classNames('ndl-spotlight-label', className);\n\n return (\n <StatusLabel\n fill=\"semi-filled\"\n variant=\"discovery\"\n hasIcon={hasIcon}\n ref={ref}\n as={as}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </StatusLabel>\n );\n};\n\nSpotlightLabel.displayName = 'Spotlight.Label';\n\ntype SpotlightImageProps = {\n /** A string that represents the URL of the image */\n src: string;\n /** A string that represents the alt text of the image */\n alt: string;\n};\n\nconst SpotlightImage = ({\n src,\n alt,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'img', SpotlightImageProps>) => {\n useSpotlightContext();\n const classes = classNames('ndl-spotlight-image n-body-medium', className);\n\n return (\n <img\n src={src}\n alt={alt}\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\nSpotlightImage.displayName = 'Spotlight.Image';\n\ntype SpotlightIconWrapperProps = {\n /** Content displayed in the icon wrapper */\n children?: React.ReactNode;\n};\n\nconst SpotlightIconWrapper = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightIconWrapperProps>) => {\n useSpotlightContext();\n const classes = classNames('ndl-spotlight-icon-wrapper', className);\n const Component = as ?? 'div';\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nSpotlightIconWrapper.displayName = 'Spotlight.IconWrapper';\n\nexport type SpotlightCloseAction = 'clickOutside' | 'escapeKeyDown';\n\nexport type SpotlightProps = {\n /** The id of the `SpotlightTarget` that this `Spotlight` should be rendered next to */\n target: string;\n /** The actions to be displayed in the Spotlight. Should only be TextButton or OutlinedButton components. */\n actions?: React.ReactNode;\n /** A ReactNode that can be put in the left corner of the Spotlight (left of action buttons). It should be used to display the current step if you have a multi-step tour */\n beforeActions?: React.ReactNode;\n /** A callback function that is called if the Spotlight is closed by either clicking outside the Spotlight, or by pressing the Escape key. The function has one argument: action (string that can be either \"clickOutside\" or \"escapeKeyDown\") */\n onClose?: (action: SpotlightCloseAction) => void;\n /** Callback function called when the spotlight is opened */\n onOpen?: () => void;\n /** Children should be Spotlight subcomponents */\n children?: React.ReactNode;\n} & Pick<\n React.ComponentProps<typeof Popover>,\n 'placement' | 'initialFocus' | 'closeOnClickOutside'\n>;\n\nconst SpotlightComponent = ({\n target,\n beforeActions,\n actions,\n initialFocus,\n onClose,\n placement,\n children,\n className,\n style,\n htmlAttributes,\n closeOnClickOutside = false,\n onOpen,\n ref,\n ...restProps\n}: CommonProps<'div', SpotlightProps>) => {\n const generatedHeaderId = useId();\n const generatedDescriptionId = useId();\n const [targetElement, setTargetElement] = useState<HTMLElement | null>(null);\n const actionsRef = useRef<HTMLDivElement | null>(null);\n\n const {\n hasOverlay,\n isActiveSpotlight,\n isOpen,\n registeredTargets,\n setActiveSpotlight,\n setIsOpen,\n } = useSpotlightContext();\n\n const [headerId, setHeaderId] = useState<string | undefined>(\n generatedHeaderId,\n );\n const [descriptionId, setDescriptionId] = useState<string | undefined>(\n generatedDescriptionId,\n );\n\n // Determine if a Header child exists\n const hasHeaderChild = React.useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n return childrenArray.some(\n (child) => React.isValidElement(child) && child.type === SpotlightHeader,\n );\n }, [children]);\n\n // Source ARIA from htmlAttributes\n const ariaLabel = htmlAttributes?.['aria-label'];\n const ariaLabelledBy =\n htmlAttributes?.['aria-labelledby'] ??\n (hasHeaderChild ? headerId : undefined);\n const ariaDescribedBy = htmlAttributes?.['aria-describedby'] ?? descriptionId;\n\n if (ariaLabel === undefined && !ariaLabelledBy) {\n console.warn(\n 'The Spotlight is missing aria-label and Header. Please add one of them for accessibility.',\n );\n }\n\n const onOpenChange = (isOpen: boolean, event?: Event) => {\n if (!isOpen) {\n if (event instanceof PointerEvent) {\n onClose?.('clickOutside');\n } else if (event instanceof KeyboardEvent) {\n onClose?.('escapeKeyDown');\n }\n setActiveSpotlight(null);\n setIsOpen(false);\n }\n };\n\n const spotlight = useSpotlight({\n anchorElement: targetElement,\n closeOnClickOutside,\n initialFocus,\n isOpen: isActiveSpotlight(target) && isOpen && !!targetElement,\n onOpenChange,\n placement: placement ? placementTranslation[placement] : undefined,\n });\n\n const mergedRef = useMergeRefs([spotlight.refs.setFloating, ref]);\n\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-spotlight', themeClassName, className);\n\n useEffect(() => {\n setTargetElement(registeredTargets[target]?.current);\n }, [target, registeredTargets]);\n\n useEffect(() => {\n if (isOpen && isActiveSpotlight(target)) {\n onOpen?.();\n }\n }, [isOpen, onOpen, isActiveSpotlight, target]);\n\n const findInitialFocus = () => {\n if (spotlight.initialFocus !== undefined) {\n return spotlight.initialFocus;\n }\n if (!actionsRef.current) {\n return undefined;\n }\n const focusableEls = actionsRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n return focusableEls.length - 1;\n };\n\n if (!spotlight.context.open) {\n return null;\n }\n\n return (\n <FloatingPortal>\n <FloatingFocusManager\n context={spotlight.context}\n modal={true}\n initialFocus={findInitialFocus()}\n >\n <SpotlightInstanceContext.Provider\n value={{\n descriptionId,\n headerId,\n setDescriptionId,\n setHeaderId,\n }}\n >\n {hasOverlay === true && (\n <FloatingOverlay\n className=\"ndl-spotlight-overlay ndl-spotlight-overlay-top\"\n onPointerDown={(event) => {\n event.stopPropagation();\n event.preventDefault();\n }}\n onTouchStart={(event) => {\n event.stopPropagation();\n event.preventDefault();\n }}\n />\n )}\n <div\n ref={mergedRef}\n className={classes}\n style={{\n ...spotlight.floatingStyles,\n ...spotlight.transitionStyles,\n ...style,\n }}\n {...spotlight.getFloatingProps({\n ...htmlAttributes,\n 'aria-describedby': ariaDescribedBy,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-modal': 'true',\n })}\n {...restProps}\n >\n <div>{children}</div>\n {(Boolean(beforeActions) || Boolean(actions)) && (\n <div className=\"ndl-spotlight-footer\">\n <Typography variant=\"body-medium\">{beforeActions}</Typography>\n {Boolean(actions) && (\n <div className=\"ndl-spotlight-actions\" ref={actionsRef}>\n {actions}\n </div>\n )}\n </div>\n )}\n </div>\n </SpotlightInstanceContext.Provider>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n};\n\nSpotlightComponent.displayName = 'Spotlight';\n\nconst Spotlight = Object.assign(SpotlightComponent, {\n Body: SpotlightBody,\n Header: SpotlightHeader,\n IconWrapper: SpotlightIconWrapper,\n Image: SpotlightImage,\n Label: SpotlightLabel,\n});\n\nexport { Spotlight };\n"]}
1
+ {"version":3,"file":"Spotlight.js","sourceRoot":"","sources":["../../../src/spotlight/Spotlight.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useMergeRefs,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport React, {\n createContext,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { placementTranslation, type Popover } from '../popover';\nimport { StatusLabel } from '../status-label';\nimport { useNeedleTheme } from '../theme';\nimport { Typography } from '../typography';\nimport { useSpotlightContext } from './SpotlightProvider';\n\n// Local instance context to pass stable ARIA ids to subcomponents\ntype SpotlightInstanceContextType = {\n headerId?: string;\n descriptionId?: string;\n setHeaderId?: (id: string | undefined) => void;\n setDescriptionId?: (id: string | undefined) => void;\n};\n\nconst SpotlightInstanceContext =\n createContext<SpotlightInstanceContextType | null>(null);\n\nconst useSpotlightInstance = (): SpotlightInstanceContextType => {\n const ctx = useContext(SpotlightInstanceContext);\n if (ctx === null) {\n throw new Error(\n 'Spotlight subcomponents must be used within <Spotlight />',\n );\n }\n return ctx;\n};\nimport { useSpotlight } from './use-spotlight';\n\ntype SpotlightHeaderProps = {\n /** The spotlight header content */\n children?: React.ReactNode;\n};\n\nconst SpotlightHeader = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightHeaderProps>) => {\n const classes = classNames('ndl-spotlight-header', className);\n const { headerId, setHeaderId } = useSpotlightInstance();\n const Component: React.ElementType = as ?? 'div';\n\n useEffect(() => {\n if (Boolean(htmlAttributes?.id) === true) {\n setHeaderId?.(htmlAttributes?.id);\n }\n }, [setHeaderId, htmlAttributes?.id]);\n\n return (\n <Typography\n as={Component}\n className={classes}\n ref={ref}\n style={style}\n variant=\"title-4\"\n {...restProps}\n htmlAttributes={{ ...htmlAttributes, id: headerId }}\n >\n {children}\n </Typography>\n );\n};\n\nSpotlightHeader.displayName = 'Spotlight.Header';\n\ntype SpotlightBodyProps = {\n /** The spotlight body content */\n children?: React.ReactNode;\n};\n\nconst SpotlightBody = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightBodyProps>) => {\n const classes = classNames('ndl-spotlight-body', className);\n const { descriptionId, setDescriptionId } = useSpotlightInstance();\n const Component: React.ElementType = as ?? 'div';\n\n useEffect(() => {\n if (Boolean(htmlAttributes?.id) === true) {\n setDescriptionId?.(htmlAttributes?.id);\n }\n }, [setDescriptionId, htmlAttributes?.id]);\n\n return (\n <Typography\n as={Component}\n className={classes}\n ref={ref}\n style={style}\n variant=\"body-medium\"\n {...restProps}\n htmlAttributes={{ ...htmlAttributes, id: descriptionId }}\n >\n {children}\n </Typography>\n );\n};\n\nSpotlightBody.displayName = 'Spotlight.Body';\n\ntype SpotlightLabelProps = Omit<\n React.ComponentProps<typeof StatusLabel>,\n 'color' | 'fill'\n>;\n\nconst SpotlightLabel = <T extends React.ElementType = 'div'>({\n className,\n children,\n hasIcon,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightLabelProps>) => {\n useSpotlightContext();\n const classes = classNames('ndl-spotlight-label', className);\n\n return (\n <StatusLabel\n fill=\"semi-filled\"\n variant=\"discovery\"\n hasIcon={hasIcon}\n ref={ref}\n as={as}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </StatusLabel>\n );\n};\n\nSpotlightLabel.displayName = 'Spotlight.Label';\n\ntype SpotlightImageProps = {\n /** A string that represents the URL of the image */\n src: string;\n /** A string that represents the alt text of the image */\n alt: string;\n};\n\nconst SpotlightImage = ({\n src,\n alt,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'img', SpotlightImageProps>) => {\n useSpotlightContext();\n const classes = classNames(\n 'ndl-spotlight-image ndl-typography-body-medium',\n className,\n );\n\n return (\n <img\n src={src}\n alt={alt}\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n />\n );\n};\n\nSpotlightImage.displayName = 'Spotlight.Image';\n\ntype SpotlightIconWrapperProps = {\n /** Content displayed in the icon wrapper */\n children?: React.ReactNode;\n};\n\nconst SpotlightIconWrapper = <T extends React.ElementType = 'div'>({\n children,\n className,\n as,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, SpotlightIconWrapperProps>) => {\n useSpotlightContext();\n const classes = classNames('ndl-spotlight-icon-wrapper', className);\n const Component = as ?? 'div';\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nSpotlightIconWrapper.displayName = 'Spotlight.IconWrapper';\n\nexport type SpotlightCloseAction = 'clickOutside' | 'escapeKeyDown';\n\nexport type SpotlightProps = {\n /** The id of the `SpotlightTarget` that this `Spotlight` should be rendered next to */\n target: string;\n /** The actions to be displayed in the Spotlight. Should only be TextButton or OutlinedButton components. */\n actions?: React.ReactNode;\n /** A ReactNode that can be put in the left corner of the Spotlight (left of action buttons). It should be used to display the current step if you have a multi-step tour */\n beforeActions?: React.ReactNode;\n /** A callback function that is called if the Spotlight is closed by either clicking outside the Spotlight, or by pressing the Escape key. The function has one argument: action (string that can be either \"clickOutside\" or \"escapeKeyDown\") */\n onClose?: (action: SpotlightCloseAction) => void;\n /** Callback function called when the spotlight is opened */\n onOpen?: () => void;\n /** Children should be Spotlight subcomponents */\n children?: React.ReactNode;\n} & Pick<\n React.ComponentProps<typeof Popover>,\n 'placement' | 'initialFocus' | 'shouldCloseOnClickOutside'\n>;\n\nconst SpotlightComponent = ({\n target,\n beforeActions,\n actions,\n initialFocus,\n onClose,\n placement,\n children,\n className,\n style,\n htmlAttributes,\n shouldCloseOnClickOutside = false,\n onOpen,\n ref,\n ...restProps\n}: CommonProps<'div', SpotlightProps>) => {\n const generatedHeaderId = useId();\n const generatedDescriptionId = useId();\n const [targetElement, setTargetElement] = useState<HTMLElement | null>(null);\n const actionsRef = useRef<HTMLDivElement | null>(null);\n\n const {\n hasOverlay,\n isActiveSpotlight,\n isOpen,\n registeredTargets,\n setActiveSpotlight,\n setIsOpen,\n } = useSpotlightContext();\n\n const [headerId, setHeaderId] = useState<string | undefined>(\n generatedHeaderId,\n );\n const [descriptionId, setDescriptionId] = useState<string | undefined>(\n generatedDescriptionId,\n );\n\n // Determine if a Header child exists\n const hasHeaderChild = React.useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n return childrenArray.some(\n (child) => React.isValidElement(child) && child.type === SpotlightHeader,\n );\n }, [children]);\n\n // Source ARIA from htmlAttributes\n const ariaLabel = htmlAttributes?.['aria-label'];\n const ariaLabelledBy =\n htmlAttributes?.['aria-labelledby'] ??\n (hasHeaderChild ? headerId : undefined);\n const ariaDescribedBy = htmlAttributes?.['aria-describedby'] ?? descriptionId;\n\n if (ariaLabel === undefined && !ariaLabelledBy) {\n console.warn(\n 'The Spotlight is missing aria-label and Header. Please add one of them for accessibility.',\n );\n }\n\n const onOpenChange = (isOpen: boolean, event?: Event) => {\n if (!isOpen) {\n if (event instanceof PointerEvent) {\n onClose?.('clickOutside');\n } else if (event instanceof KeyboardEvent) {\n onClose?.('escapeKeyDown');\n }\n setActiveSpotlight(null);\n setIsOpen(false);\n }\n };\n\n const spotlight = useSpotlight({\n anchorElement: targetElement,\n initialFocus,\n isOpen: isActiveSpotlight(target) && isOpen && !!targetElement,\n onOpenChange,\n placement: placement ? placementTranslation[placement] : undefined,\n shouldCloseOnClickOutside,\n });\n\n const mergedRef = useMergeRefs([spotlight.refs.setFloating, ref]);\n\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-spotlight', themeClassName, className);\n\n useEffect(() => {\n setTargetElement(registeredTargets[target]?.current);\n }, [target, registeredTargets]);\n\n useEffect(() => {\n if (isOpen && isActiveSpotlight(target)) {\n onOpen?.();\n }\n }, [isOpen, onOpen, isActiveSpotlight, target]);\n\n const findInitialFocus = () => {\n if (spotlight.initialFocus !== undefined) {\n return spotlight.initialFocus;\n }\n if (!actionsRef.current) {\n return undefined;\n }\n const focusableEls = actionsRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n return focusableEls.length - 1;\n };\n\n if (!spotlight.context.open) {\n return null;\n }\n\n return (\n <FloatingPortal>\n <FloatingFocusManager\n context={spotlight.context}\n modal={true}\n initialFocus={findInitialFocus()}\n >\n <SpotlightInstanceContext.Provider\n value={{\n descriptionId,\n headerId,\n setDescriptionId,\n setHeaderId,\n }}\n >\n {hasOverlay === true && (\n <FloatingOverlay\n className=\"ndl-spotlight-overlay ndl-spotlight-overlay-top\"\n onPointerDown={(event) => {\n event.stopPropagation();\n event.preventDefault();\n }}\n onTouchStart={(event) => {\n event.stopPropagation();\n event.preventDefault();\n }}\n />\n )}\n <div\n ref={mergedRef}\n className={classes}\n style={{\n ...spotlight.floatingStyles,\n ...spotlight.transitionStyles,\n ...style,\n }}\n {...spotlight.getFloatingProps({\n ...htmlAttributes,\n 'aria-describedby': ariaDescribedBy,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-modal': 'true',\n })}\n {...restProps}\n >\n <div>{children}</div>\n {(Boolean(beforeActions) || Boolean(actions)) && (\n <div className=\"ndl-spotlight-footer\">\n <Typography variant=\"body-medium\">{beforeActions}</Typography>\n {Boolean(actions) && (\n <div className=\"ndl-spotlight-actions\" ref={actionsRef}>\n {actions}\n </div>\n )}\n </div>\n )}\n </div>\n </SpotlightInstanceContext.Provider>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n};\n\nSpotlightComponent.displayName = 'Spotlight';\n\nconst Spotlight = Object.assign(SpotlightComponent, {\n Body: SpotlightBody,\n Header: SpotlightHeader,\n IconWrapper: SpotlightIconWrapper,\n Image: SpotlightImage,\n Label: SpotlightLabel,\n});\n\nexport { Spotlight };\n"]}
@@ -76,11 +76,11 @@ const conditional_wrap_1 = require("../conditional-wrap");
76
76
  const SpotlightProvider_1 = require("./SpotlightProvider");
77
77
  const use_indicator_1 = require("./use-indicator");
78
78
  const SpotlightTarget = (_a) => {
79
- var { id, hasPulse = true, indicatorVariant = 'border', indicatorPlacement = 'top-right', borderRadius, shouldFitToChildren = false, children, className, htmlAttributes, style, as, ref, asChild } = _a, restProps = __rest(_a, ["id", "hasPulse", "indicatorVariant", "indicatorPlacement", "borderRadius", "shouldFitToChildren", "children", "className", "htmlAttributes", "style", "as", "ref", "asChild"]);
79
+ var { id, hasPulse = true, indicatorVariant = 'border', indicatorPlacement = 'top-right', borderRadius, shouldFitToChildren = false, children, className, htmlAttributes, style, as, ref, shouldRenderAsChild } = _a, restProps = __rest(_a, ["id", "hasPulse", "indicatorVariant", "indicatorPlacement", "borderRadius", "shouldFitToChildren", "children", "className", "htmlAttributes", "style", "as", "ref", "shouldRenderAsChild"]);
80
80
  const Component = as !== null && as !== void 0 ? as : 'div';
81
81
  const { isActiveSpotlight, isOpen, setIsOpen, registerTarget, unregisterTarget, setActiveSpotlight, } = (0, SpotlightProvider_1.useSpotlightContext)();
82
82
  const internalRef = react_2.default.useRef(null);
83
- const childRef = asChild && react_2.default.isValidElement(children)
83
+ const childRef = shouldRenderAsChild && react_2.default.isValidElement(children)
84
84
  ? children.ref
85
85
  : undefined;
86
86
  const mergedRefs = (0, react_1.useMergeRefs)([
@@ -102,7 +102,7 @@ const SpotlightTarget = (_a) => {
102
102
  isOpen: isActive,
103
103
  targetRef: internalRef,
104
104
  });
105
- if (asChild === true && react_2.default.isValidElement(children)) {
105
+ if (shouldRenderAsChild === true && react_2.default.isValidElement(children)) {
106
106
  const child = children;
107
107
  const onClick = (event) => {
108
108
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightTarget.js","sourceRoot":"","sources":["../../../src/spotlight/SpotlightTarget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { FloatingPortal, useMergeRefs } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport React, { useEffect } from 'react';\n\nimport { type PolymorphicCommonProps } from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useSpotlightContext } from './SpotlightProvider';\nimport {\n type IndicatorPlacement,\n type IndicatorVariant,\n useIndicator,\n} from './use-indicator';\n\ntype SpotlightTargetProps = {\n /** The id of the wrapper. This should match a `target` prop in a `Spotlight`, to indicate that this is where it should be rendered when open */\n id: string;\n /** A boolean that controls if the pulse animation should be used or not */\n hasPulse?: boolean;\n /** A string that controls the style of the indicator. It can be either \"point\" or \"border\" */\n indicatorVariant?: IndicatorVariant;\n /** A string that controls the placement of the indicator. A combination of \"middle\", \"top\", \"right\", \"bottom\" and \"left\" separated by a dash, e.g. \"top-right\" */\n indicatorPlacement?: IndicatorPlacement;\n /** An inline style CSS property to control the border radius of the wrapper */\n borderRadius?: React.CSSProperties['borderRadius'];\n /** The content to wrap */\n children?: React.ReactNode;\n /** Fit the target size to the children. */\n shouldFitToChildren?: boolean;\n /**\n * When true, merges the spotlight target props directly with the child element instead of wrapping it in a div.\n *\n * This is useful for applying spotlight functionality to existing interactive elements (buttons, links, etc.)\n * while preserving their original behavior, styling, and accessibility attributes.\n *\n * @remarks\n * - **Warning:** Only use with interactive elements that can receive focus and handle click events.\n * - **Warning:** The child element's `id` will be overridden with the target's `id`.\n *\n * @example\n * ```tsx\n * <SpotlightTarget id=\"my-button\" asChild>\n * <FilledButton>Click me</FilledButton>\n * </SpotlightTarget>\n * ```\n */\n // TODO v5: decide if this naming is okay, don't see how to follow the rule without a name that is tooo long\n // eslint-disable-next-line @typescript-eslint/naming-convention\n asChild?: boolean;\n};\n\nexport const SpotlightTarget = ({\n id,\n hasPulse = true,\n indicatorVariant = 'border',\n indicatorPlacement = 'top-right',\n borderRadius,\n shouldFitToChildren = false,\n children,\n className,\n htmlAttributes,\n style,\n as,\n ref,\n asChild,\n ...restProps\n}: PolymorphicCommonProps<'div', SpotlightTargetProps>) => {\n const Component = as ?? 'div';\n\n const {\n isActiveSpotlight,\n isOpen,\n setIsOpen,\n registerTarget,\n unregisterTarget,\n setActiveSpotlight,\n } = useSpotlightContext();\n\n const internalRef = React.useRef<HTMLElement>(null);\n const childRef =\n asChild && React.isValidElement(children)\n ? (\n children as React.ReactElement<unknown> & {\n ref?: React.Ref<HTMLElement>;\n }\n ).ref\n : undefined;\n const mergedRefs = useMergeRefs<HTMLElement>([\n ref as React.RefObject<HTMLElement>,\n internalRef as React.RefObject<HTMLElement>,\n childRef as React.Ref<HTMLElement> | undefined,\n ]);\n useEffect(() => {\n if (internalRef.current !== null) {\n registerTarget(id, internalRef as React.RefObject<HTMLElement>);\n }\n return () => unregisterTarget(id);\n }, [id, registerTarget, unregisterTarget]);\n\n const isActive = isActiveSpotlight(id);\n const indicator = useIndicator({\n hasPulse,\n indicatorPlacement,\n indicatorVariant,\n isOpen: isActive,\n targetRef: internalRef,\n });\n\n if (asChild === true && React.isValidElement(children)) {\n const child = children as React.ReactElement<{\n className?: string;\n style?: React.CSSProperties;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n }>;\n\n const onClick = (event: React.MouseEvent<HTMLElement>) => {\n if (isActive) {\n // When spotlight is active, always prevent the child's click handler\n event.preventDefault();\n\n if (!isOpen) {\n setIsOpen(true);\n }\n // Don't call child.props?.onClick when spotlight is active\n return;\n }\n\n // Only call the child's click handler when spotlight is not active\n child.props?.onClick?.(event);\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (\n isActive &&\n !isOpen &&\n (event.code === 'Enter' || event.code === 'Space')\n ) {\n event.preventDefault();\n setIsOpen(true);\n return;\n }\n\n if (isActive && event.code === 'Escape') {\n event.preventDefault();\n setActiveSpotlight(null);\n return;\n }\n\n child.props?.onKeyDown?.(event);\n };\n\n // IMPORTANT: do NOT force role/tabIndex here; preserves Composite semantics for the SideNavigation\n const mergedProps = {\n id,\n onClick,\n onKeyDown,\n ref: mergedRefs,\n style: {\n ...style,\n ...child.props.style,\n },\n // Avoid overriding the child's own role/tabIndex with any passed htmlAttributes\n ...(htmlAttributes\n ? { ...htmlAttributes, role: undefined, tabIndex: undefined }\n : {}),\n };\n\n return (\n <>\n {React.cloneElement(child, mergedProps as Record<string, unknown>)}\n <ConditionalWrap\n shouldWrap={isActive && isOpen}\n wrap={(wrapChildren) => (\n <FloatingPortal>{wrapChildren}</FloatingPortal>\n )}\n >\n {indicator.context.open && (\n <div\n className={indicator.indicatorClasses}\n ref={indicator.context.refs.setFloating}\n style={{ ...indicator.floatingStyles, ...indicator.style }}\n />\n )}\n </ConditionalWrap>\n </>\n );\n }\n\n const classes = classNames(\n 'ndl-spotlight-target',\n {\n 'ndl-spotlight-target-fit-to-children': shouldFitToChildren,\n 'ndl-spotlight-target-open': isOpen && isActive,\n },\n className,\n );\n\n const inertClasses = classNames(\n 'ndl-spotlight-target-inert',\n {\n 'ndl-spotlight-target-inert-fit-to-children': shouldFitToChildren,\n },\n className,\n );\n\n return (\n <>\n <Component\n role={isActive ? 'button' : undefined}\n id={id}\n ref={mergedRefs}\n className={classes}\n onClick={(event) => {\n if (isActive) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n }}\n style={{ borderRadius, ...style }}\n onKeyDown={(event) => {\n if (\n isActive &&\n !isOpen &&\n (event.code === 'Enter' || event.code === 'Space')\n ) {\n setIsOpen(true);\n event.preventDefault();\n } else if (event.code === 'Escape' && isActive) {\n setActiveSpotlight(null);\n }\n }}\n tabIndex={isActive ? 0 : undefined}\n {...(isActive && { 'aria-label': 'Open spotlight' })}\n {...restProps}\n {...htmlAttributes}\n >\n <ConditionalWrap\n shouldWrap={isActive}\n wrap={(children) => (\n <div inert aria-disabled className={inertClasses}>\n {children}\n </div>\n )}\n >\n {children}\n </ConditionalWrap>\n </Component>\n <ConditionalWrap\n shouldWrap={isActive && isOpen}\n wrap={(wrapChildren) => <FloatingPortal>{wrapChildren}</FloatingPortal>}\n >\n {indicator.context.open && (\n <div\n className={indicator.indicatorClasses}\n ref={indicator.context.refs.setFloating}\n style={{ ...indicator.floatingStyles, ...indicator.style }}\n />\n )}\n </ConditionalWrap>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SpotlightTarget.js","sourceRoot":"","sources":["../../../src/spotlight/SpotlightTarget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { FloatingPortal, useMergeRefs } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport React, { useEffect } from 'react';\n\nimport { type PolymorphicCommonProps } from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useSpotlightContext } from './SpotlightProvider';\nimport {\n type IndicatorPlacement,\n type IndicatorVariant,\n useIndicator,\n} from './use-indicator';\n\ntype SpotlightTargetProps = {\n /** The id of the wrapper. This should match a `target` prop in a `Spotlight`, to indicate that this is where it should be rendered when open */\n id: string;\n /** A boolean that controls if the pulse animation should be used or not */\n hasPulse?: boolean;\n /** A string that controls the style of the indicator. It can be either \"point\" or \"border\" */\n indicatorVariant?: IndicatorVariant;\n /** A string that controls the placement of the indicator. A combination of \"middle\", \"top\", \"right\", \"bottom\" and \"left\" separated by a dash, e.g. \"top-right\" */\n indicatorPlacement?: IndicatorPlacement;\n /** An inline style CSS property to control the border radius of the wrapper */\n borderRadius?: React.CSSProperties['borderRadius'];\n /** The content to wrap */\n children?: React.ReactNode;\n /** Fit the target size to the children. */\n shouldFitToChildren?: boolean;\n /**\n * When true, merges the spotlight target props directly with the child element instead of wrapping it in a div.\n *\n * This is useful for applying spotlight functionality to existing interactive elements (buttons, links, etc.)\n * while preserving their original behavior, styling, and accessibility attributes.\n *\n * @remarks\n * - **Warning:** Only use with interactive elements that can receive focus and handle click events.\n * - **Warning:** The child element's `id` will be overridden with the target's `id`.\n *\n * @example\n * ```tsx\n * <SpotlightTarget id=\"my-button\" shouldRenderAsChild>\n * <FilledButton>Click me</FilledButton>\n * </SpotlightTarget>\n * ```\n */\n shouldRenderAsChild?: boolean;\n};\n\nexport const SpotlightTarget = ({\n id,\n hasPulse = true,\n indicatorVariant = 'border',\n indicatorPlacement = 'top-right',\n borderRadius,\n shouldFitToChildren = false,\n children,\n className,\n htmlAttributes,\n style,\n as,\n ref,\n shouldRenderAsChild,\n ...restProps\n}: PolymorphicCommonProps<'div', SpotlightTargetProps>) => {\n const Component = as ?? 'div';\n\n const {\n isActiveSpotlight,\n isOpen,\n setIsOpen,\n registerTarget,\n unregisterTarget,\n setActiveSpotlight,\n } = useSpotlightContext();\n\n const internalRef = React.useRef<HTMLElement>(null);\n const childRef =\n shouldRenderAsChild && React.isValidElement(children)\n ? (\n children as React.ReactElement<unknown> & {\n ref?: React.Ref<HTMLElement>;\n }\n ).ref\n : undefined;\n const mergedRefs = useMergeRefs<HTMLElement>([\n ref as React.RefObject<HTMLElement>,\n internalRef as React.RefObject<HTMLElement>,\n childRef as React.Ref<HTMLElement> | undefined,\n ]);\n useEffect(() => {\n if (internalRef.current !== null) {\n registerTarget(id, internalRef as React.RefObject<HTMLElement>);\n }\n return () => unregisterTarget(id);\n }, [id, registerTarget, unregisterTarget]);\n\n const isActive = isActiveSpotlight(id);\n const indicator = useIndicator({\n hasPulse,\n indicatorPlacement,\n indicatorVariant,\n isOpen: isActive,\n targetRef: internalRef,\n });\n\n if (shouldRenderAsChild === true && React.isValidElement(children)) {\n const child = children as React.ReactElement<{\n className?: string;\n style?: React.CSSProperties;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n }>;\n\n const onClick = (event: React.MouseEvent<HTMLElement>) => {\n if (isActive) {\n // When spotlight is active, always prevent the child's click handler\n event.preventDefault();\n\n if (!isOpen) {\n setIsOpen(true);\n }\n // Don't call child.props?.onClick when spotlight is active\n return;\n }\n\n // Only call the child's click handler when spotlight is not active\n child.props?.onClick?.(event);\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (\n isActive &&\n !isOpen &&\n (event.code === 'Enter' || event.code === 'Space')\n ) {\n event.preventDefault();\n setIsOpen(true);\n return;\n }\n\n if (isActive && event.code === 'Escape') {\n event.preventDefault();\n setActiveSpotlight(null);\n return;\n }\n\n child.props?.onKeyDown?.(event);\n };\n\n // IMPORTANT: do NOT force role/tabIndex here; preserves Composite semantics for the SideNavigation\n const mergedProps = {\n id,\n onClick,\n onKeyDown,\n ref: mergedRefs,\n style: {\n ...style,\n ...child.props.style,\n },\n // Avoid overriding the child's own role/tabIndex with any passed htmlAttributes\n ...(htmlAttributes\n ? { ...htmlAttributes, role: undefined, tabIndex: undefined }\n : {}),\n };\n\n return (\n <>\n {React.cloneElement(child, mergedProps as Record<string, unknown>)}\n <ConditionalWrap\n shouldWrap={isActive && isOpen}\n wrap={(wrapChildren) => (\n <FloatingPortal>{wrapChildren}</FloatingPortal>\n )}\n >\n {indicator.context.open && (\n <div\n className={indicator.indicatorClasses}\n ref={indicator.context.refs.setFloating}\n style={{ ...indicator.floatingStyles, ...indicator.style }}\n />\n )}\n </ConditionalWrap>\n </>\n );\n }\n\n const classes = classNames(\n 'ndl-spotlight-target',\n {\n 'ndl-spotlight-target-fit-to-children': shouldFitToChildren,\n 'ndl-spotlight-target-open': isOpen && isActive,\n },\n className,\n );\n\n const inertClasses = classNames(\n 'ndl-spotlight-target-inert',\n {\n 'ndl-spotlight-target-inert-fit-to-children': shouldFitToChildren,\n },\n className,\n );\n\n return (\n <>\n <Component\n role={isActive ? 'button' : undefined}\n id={id}\n ref={mergedRefs}\n className={classes}\n onClick={(event) => {\n if (isActive) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n }}\n style={{ borderRadius, ...style }}\n onKeyDown={(event) => {\n if (\n isActive &&\n !isOpen &&\n (event.code === 'Enter' || event.code === 'Space')\n ) {\n setIsOpen(true);\n event.preventDefault();\n } else if (event.code === 'Escape' && isActive) {\n setActiveSpotlight(null);\n }\n }}\n tabIndex={isActive ? 0 : undefined}\n {...(isActive && { 'aria-label': 'Open spotlight' })}\n {...restProps}\n {...htmlAttributes}\n >\n <ConditionalWrap\n shouldWrap={isActive}\n wrap={(children) => (\n <div inert aria-disabled className={inertClasses}>\n {children}\n </div>\n )}\n >\n {children}\n </ConditionalWrap>\n </Component>\n <ConditionalWrap\n shouldWrap={isActive && isOpen}\n wrap={(wrapChildren) => <FloatingPortal>{wrapChildren}</FloatingPortal>}\n >\n {indicator.context.open && (\n <div\n className={indicator.indicatorClasses}\n ref={indicator.context.refs.setFloating}\n style={{ ...indicator.floatingStyles, ...indicator.style }}\n />\n )}\n </ConditionalWrap>\n </>\n );\n};\n"]}
@@ -34,7 +34,7 @@ const Component = (props) => {
34
34
  setIsOpen(true);
35
35
  }
36
36
  }, [setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);
37
- return ((0, jsx_runtime_1.jsxs)("div", { className: "n-flex n-justify-center n-gap-token-64 n-h-[100px]", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setActiveSpotlight(targetId), children: "Activate Spotlight" }), (0, jsx_runtime_1.jsx)("div", { className: "n-left-[auto] n-top-[110px] n-fixed", children: (0, jsx_runtime_1.jsx)(react_1.SpotlightTarget, { id: targetId, hasPulse: !props.isChromatic, asChild: true, indicatorVariant: "border", indicatorPlacement: "middle-middle", children: (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => alert('Target button clicked'), children: "Target" }) }) }), (0, jsx_runtime_1.jsxs)(react_1.Spotlight, { placement: "bottom-end-top-end", target: targetId, actions: (0, jsx_runtime_1.jsx)(react_1.OutlinedButton, { onClick: () => {
37
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-center gap-token-64 h-[100px]", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setActiveSpotlight(targetId), children: "Activate Spotlight" }), (0, jsx_runtime_1.jsx)("div", { className: "left-[auto] top-[110px] fixed", children: (0, jsx_runtime_1.jsx)(react_1.SpotlightTarget, { id: targetId, hasPulse: !props.isChromatic, shouldRenderAsChild: true, indicatorVariant: "border", indicatorPlacement: "middle-middle", children: (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => alert('Target button clicked'), children: "Target" }) }) }), (0, jsx_runtime_1.jsxs)(react_1.Spotlight, { placement: "bottom-end-top-end", target: targetId, actions: (0, jsx_runtime_1.jsx)(react_1.OutlinedButton, { onClick: () => {
38
38
  setIsOpen(false);
39
39
  setActiveSpotlight(null);
40
40
  }, children: "Close" }), children: [(0, jsx_runtime_1.jsx)(react_1.Spotlight.Header, { children: "This is a header" }), (0, jsx_runtime_1.jsx)(react_1.Spotlight.Body, { children: "This is content" })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"spotlight-fixed-positioning.story.js","sourceRoot":"","sources":["../../../../src/spotlight/stories/spotlight-fixed-positioning.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAO0B;AAC1B,iCAAkC;AAElC,MAAM,SAAS,GAAG,CAAC,KAA+B,EAAE,EAAE;IACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAEhE,MAAM,QAAQ,GAAG,eAAe,cAAc,EAAE,CAAC;IAEjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjE,OAAO,CACL,iCAAK,SAAS,EAAC,oDAAoD,aACjE,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mCAE1C,EACf,gCAAK,SAAS,EAAC,qCAAqC,YAClD,uBAAC,uBAAe,IACd,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,EAC5B,OAAO,QACP,gBAAgB,EAAC,QAAQ,EACzB,kBAAkB,EAAC,eAAe,YAElC,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,uBAE5C,GACC,GACd,EACN,wBAAC,iBAAS,IACR,SAAS,EAAC,oBAAoB,EAC9B,MAAM,EAAE,QAAQ,EAChB,OAAO,EACL,uBAAC,sBAAc,IACb,OAAO,EAAE,GAAG,EAAE;wBACZ,SAAS,CAAC,KAAK,CAAC,CAAC;wBACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,sBAGc,aAGnB,uBAAC,iBAAS,CAAC,MAAM,mCAAoC,EACrD,uBAAC,iBAAS,CAAC,IAAI,kCAAiC,IACtC,IACR,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport {\n FilledButton,\n OutlinedButton,\n Spotlight,\n SpotlightTarget,\n useNeedleTheme,\n useSpotlightContext,\n} from '@neo4j-ndl/react';\nimport { useEffect } from 'react';\n\nconst Component = (props: { isChromatic: boolean }) => {\n const { themeClassName } = useNeedleTheme();\n const { setIsOpen, setActiveSpotlight } = useSpotlightContext();\n\n const targetId = `test-target-${themeClassName}`;\n\n useEffect(() => {\n if (props.isChromatic) {\n setActiveSpotlight(targetId);\n setIsOpen(true);\n }\n }, [setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);\n\n return (\n <div className=\"n-flex n-justify-center n-gap-token-64 n-h-[100px]\">\n <FilledButton onClick={() => setActiveSpotlight(targetId)}>\n Activate Spotlight\n </FilledButton>\n <div className=\"n-left-[auto] n-top-[110px] n-fixed\">\n <SpotlightTarget\n id={targetId}\n hasPulse={!props.isChromatic}\n asChild\n indicatorVariant=\"border\"\n indicatorPlacement=\"middle-middle\"\n >\n <FilledButton onClick={() => alert('Target button clicked')}>\n Target\n </FilledButton>\n </SpotlightTarget>\n </div>\n <Spotlight\n placement=\"bottom-end-top-end\"\n target={targetId}\n actions={\n <OutlinedButton\n onClick={() => {\n setIsOpen(false);\n setActiveSpotlight(null);\n }}\n >\n Close\n </OutlinedButton>\n }\n >\n <Spotlight.Header>This is a header</Spotlight.Header>\n <Spotlight.Body>This is content</Spotlight.Body>\n </Spotlight>\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"spotlight-fixed-positioning.story.js","sourceRoot":"","sources":["../../../../src/spotlight/stories/spotlight-fixed-positioning.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAO0B;AAC1B,iCAAkC;AAElC,MAAM,SAAS,GAAG,CAAC,KAA+B,EAAE,EAAE;IACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAEhE,MAAM,QAAQ,GAAG,eAAe,cAAc,EAAE,CAAC;IAEjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjE,OAAO,CACL,iCAAK,SAAS,EAAC,4CAA4C,aACzD,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mCAE1C,EACf,gCAAK,SAAS,EAAC,+BAA+B,YAC5C,uBAAC,uBAAe,IACd,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,EAC5B,mBAAmB,QACnB,gBAAgB,EAAC,QAAQ,EACzB,kBAAkB,EAAC,eAAe,YAElC,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,uBAE5C,GACC,GACd,EACN,wBAAC,iBAAS,IACR,SAAS,EAAC,oBAAoB,EAC9B,MAAM,EAAE,QAAQ,EAChB,OAAO,EACL,uBAAC,sBAAc,IACb,OAAO,EAAE,GAAG,EAAE;wBACZ,SAAS,CAAC,KAAK,CAAC,CAAC;wBACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,sBAGc,aAGnB,uBAAC,iBAAS,CAAC,MAAM,mCAAoC,EACrD,uBAAC,iBAAS,CAAC,IAAI,kCAAiC,IACtC,IACR,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport {\n FilledButton,\n OutlinedButton,\n Spotlight,\n SpotlightTarget,\n useNeedleTheme,\n useSpotlightContext,\n} from '@neo4j-ndl/react';\nimport { useEffect } from 'react';\n\nconst Component = (props: { isChromatic: boolean }) => {\n const { themeClassName } = useNeedleTheme();\n const { setIsOpen, setActiveSpotlight } = useSpotlightContext();\n\n const targetId = `test-target-${themeClassName}`;\n\n useEffect(() => {\n if (props.isChromatic) {\n setActiveSpotlight(targetId);\n setIsOpen(true);\n }\n }, [setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);\n\n return (\n <div className=\"flex justify-center gap-token-64 h-[100px]\">\n <FilledButton onClick={() => setActiveSpotlight(targetId)}>\n Activate Spotlight\n </FilledButton>\n <div className=\"left-[auto] top-[110px] fixed\">\n <SpotlightTarget\n id={targetId}\n hasPulse={!props.isChromatic}\n shouldRenderAsChild\n indicatorVariant=\"border\"\n indicatorPlacement=\"middle-middle\"\n >\n <FilledButton onClick={() => alert('Target button clicked')}>\n Target\n </FilledButton>\n </SpotlightTarget>\n </div>\n <Spotlight\n placement=\"bottom-end-top-end\"\n target={targetId}\n actions={\n <OutlinedButton\n onClick={() => {\n setIsOpen(false);\n setActiveSpotlight(null);\n }}\n >\n Close\n </OutlinedButton>\n }\n >\n <Spotlight.Header>This is a header</Spotlight.Header>\n <Spotlight.Body>This is content</Spotlight.Body>\n </Spotlight>\n </div>\n );\n};\n\nexport default Component;\n"]}
@@ -35,7 +35,7 @@ const Component = (props) => {
35
35
  setIsOpen(true);
36
36
  }
37
37
  }, [isModalOpen, setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);
38
- return ((0, jsx_runtime_1.jsxs)("div", { className: "n-flex n-justify-center n-gap-token-64", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsModalOpen(true), children: "Open Dialog" }), (0, jsx_runtime_1.jsxs)(react_1.Dialog, { isOpen: isModalOpen, onClose: () => setIsModalOpen(false), className: themeClassName, children: [(0, jsx_runtime_1.jsx)(react_1.Dialog.Header, { children: "Using Spotlight inside a dialog" }), (0, jsx_runtime_1.jsxs)(react_1.Dialog.Content, { className: "n-flex n-flex-col n-gap-token-32", children: [(0, jsx_runtime_1.jsxs)(react_1.Typography, { variant: "body-medium", children: ["Spotlight and SpotlightTarget should behave automatically correct when used inside a dialog. If positioning is not on top of everything, you might want to override the", (0, jsx_runtime_1.jsx)("code", { children: "--spotlight-z-index" }), " css variable."] }), (0, jsx_runtime_1.jsxs)("div", { className: "n-flex n-justify-center n-gap-token-64", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setActiveSpotlight(targetId), children: "Activate Spotlight" }), (0, jsx_runtime_1.jsx)(react_1.SpotlightTarget, { id: targetId, hasPulse: !props.isChromatic, asChild: true, indicatorVariant: "border", children: (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => alert('Target button clicked'), children: "Target" }) })] })] }), (0, jsx_runtime_1.jsxs)(react_1.Spotlight, { placement: "bottom-end-top-end", target: targetId, actions: (0, jsx_runtime_1.jsx)(react_1.OutlinedButton, { onClick: () => {
38
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-center gap-token-64", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setIsModalOpen(true), children: "Open Dialog" }), (0, jsx_runtime_1.jsxs)(react_1.Dialog, { isOpen: isModalOpen, onClose: () => setIsModalOpen(false), className: themeClassName, children: [(0, jsx_runtime_1.jsx)(react_1.Dialog.Header, { children: "Using Spotlight inside a dialog" }), (0, jsx_runtime_1.jsxs)(react_1.Dialog.Content, { className: "flex flex-col gap-token-32", children: [(0, jsx_runtime_1.jsxs)(react_1.Typography, { variant: "body-medium", children: ["Spotlight and SpotlightTarget should behave automatically correct when used inside a dialog. If positioning is not on top of everything, you might want to override the", (0, jsx_runtime_1.jsx)("code", { children: "--spotlight-z-index" }), " css variable."] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-center gap-token-64", children: [(0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => setActiveSpotlight(targetId), children: "Activate Spotlight" }), (0, jsx_runtime_1.jsx)(react_1.SpotlightTarget, { id: targetId, hasPulse: !props.isChromatic, shouldRenderAsChild: true, indicatorVariant: "border", children: (0, jsx_runtime_1.jsx)(react_1.FilledButton, { onClick: () => alert('Target button clicked'), children: "Target" }) })] })] }), (0, jsx_runtime_1.jsxs)(react_1.Spotlight, { placement: "bottom-end-top-end", target: targetId, actions: (0, jsx_runtime_1.jsx)(react_1.OutlinedButton, { onClick: () => {
39
39
  setIsOpen(false);
40
40
  setActiveSpotlight(null);
41
41
  }, children: "Close" }), children: [(0, jsx_runtime_1.jsx)(react_1.Spotlight.Header, { children: "This is a header" }), (0, jsx_runtime_1.jsx)(react_1.Spotlight.Body, { children: "This is content" })] })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"spotlight-in-dialog.story.js","sourceRoot":"","sources":["../../../../src/spotlight/stories/spotlight-in-dialog.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAS0B;AAC1B,iCAA4C;AAE5C,MAAM,SAAS,GAAG,CAAC,KAA+B,EAAE,EAAE;IACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAEhE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,eAAe,cAAc,EAAE,CAAC;IAEjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;YACrC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,iCAAK,SAAS,EAAC,wCAAwC,aACrD,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,4BAElC,EACf,wBAAC,cAAM,IACL,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,SAAS,EAAE,cAAc,aAEzB,uBAAC,cAAM,CAAC,MAAM,kDAAgD,EAC9D,wBAAC,cAAM,CAAC,OAAO,IAAC,SAAS,EAAC,kCAAkC,aAC1D,wBAAC,kBAAU,IAAC,OAAO,EAAC,aAAa,wLAI/B,mEAAgC,sBACrB,EACb,iCAAK,SAAS,EAAC,wCAAwC,aACrD,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mCAE1C,EACf,uBAAC,uBAAe,IACd,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,EAC5B,OAAO,QACP,gBAAgB,EAAC,QAAQ,YAEzB,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,uBAE5C,GACC,IACd,IACS,EACjB,wBAAC,iBAAS,IACR,SAAS,EAAC,oBAAoB,EAC9B,MAAM,EAAE,QAAQ,EAChB,OAAO,EACL,uBAAC,sBAAc,IACb,OAAO,EAAE,GAAG,EAAE;gCACZ,SAAS,CAAC,KAAK,CAAC,CAAC;gCACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;4BAC3B,CAAC,sBAGc,aAGnB,uBAAC,iBAAS,CAAC,MAAM,mCAAoC,EACrD,uBAAC,iBAAS,CAAC,IAAI,kCAAiC,IACtC,IACL,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport {\n Dialog,\n FilledButton,\n OutlinedButton,\n Spotlight,\n SpotlightTarget,\n Typography,\n useNeedleTheme,\n useSpotlightContext,\n} from '@neo4j-ndl/react';\nimport { useEffect, useState } from 'react';\n\nconst Component = (props: { isChromatic: boolean }) => {\n const { themeClassName } = useNeedleTheme();\n const { setIsOpen, setActiveSpotlight } = useSpotlightContext();\n\n const [isModalOpen, setIsModalOpen] = useState<boolean>(props.isChromatic);\n const targetId = `test-target-${themeClassName}`;\n\n useEffect(() => {\n if (props.isChromatic && isModalOpen) {\n setActiveSpotlight(targetId);\n setIsOpen(true);\n }\n }, [isModalOpen, setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);\n\n return (\n <div className=\"n-flex n-justify-center n-gap-token-64\">\n <FilledButton onClick={() => setIsModalOpen(true)}>\n Open Dialog\n </FilledButton>\n <Dialog\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n className={themeClassName}\n >\n <Dialog.Header>Using Spotlight inside a dialog</Dialog.Header>\n <Dialog.Content className=\"n-flex n-flex-col n-gap-token-32\">\n <Typography variant=\"body-medium\">\n Spotlight and SpotlightTarget should behave automatically correct\n when used inside a dialog. If positioning is not on top of\n everything, you might want to override the\n <code>--spotlight-z-index</code> css variable.\n </Typography>\n <div className=\"n-flex n-justify-center n-gap-token-64\">\n <FilledButton onClick={() => setActiveSpotlight(targetId)}>\n Activate Spotlight\n </FilledButton>\n <SpotlightTarget\n id={targetId}\n hasPulse={!props.isChromatic}\n asChild\n indicatorVariant=\"border\"\n >\n <FilledButton onClick={() => alert('Target button clicked')}>\n Target\n </FilledButton>\n </SpotlightTarget>\n </div>\n </Dialog.Content>\n <Spotlight\n placement=\"bottom-end-top-end\"\n target={targetId}\n actions={\n <OutlinedButton\n onClick={() => {\n setIsOpen(false);\n setActiveSpotlight(null);\n }}\n >\n Close\n </OutlinedButton>\n }\n >\n <Spotlight.Header>This is a header</Spotlight.Header>\n <Spotlight.Body>This is content</Spotlight.Body>\n </Spotlight>\n </Dialog>\n </div>\n );\n};\n\nexport default Component;\n"]}
1
+ {"version":3,"file":"spotlight-in-dialog.story.js","sourceRoot":"","sources":["../../../../src/spotlight/stories/spotlight-in-dialog.story.tsx"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mDAAiD;AAEjD,4CAS0B;AAC1B,iCAA4C;AAE5C,MAAM,SAAS,GAAG,CAAC,KAA+B,EAAE,EAAE;IACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAC5C,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAEhE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,eAAe,cAAc,EAAE,CAAC;IAEjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;YACrC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,iCAAK,SAAS,EAAC,kCAAkC,aAC/C,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,4BAElC,EACf,wBAAC,cAAM,IACL,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EACpC,SAAS,EAAE,cAAc,aAEzB,uBAAC,cAAM,CAAC,MAAM,kDAAgD,EAC9D,wBAAC,cAAM,CAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,aACpD,wBAAC,kBAAU,IAAC,OAAO,EAAC,aAAa,wLAI/B,mEAAgC,sBACrB,EACb,iCAAK,SAAS,EAAC,kCAAkC,aAC/C,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,mCAE1C,EACf,uBAAC,uBAAe,IACd,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,EAC5B,mBAAmB,QACnB,gBAAgB,EAAC,QAAQ,YAEzB,uBAAC,oBAAY,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,uBAE5C,GACC,IACd,IACS,EACjB,wBAAC,iBAAS,IACR,SAAS,EAAC,oBAAoB,EAC9B,MAAM,EAAE,QAAQ,EAChB,OAAO,EACL,uBAAC,sBAAc,IACb,OAAO,EAAE,GAAG,EAAE;gCACZ,SAAS,CAAC,KAAK,CAAC,CAAC;gCACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;4BAC3B,CAAC,sBAGc,aAGnB,uBAAC,iBAAS,CAAC,MAAM,mCAAoC,EACrD,uBAAC,iBAAS,CAAC,IAAI,kCAAiC,IACtC,IACL,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport {\n Dialog,\n FilledButton,\n OutlinedButton,\n Spotlight,\n SpotlightTarget,\n Typography,\n useNeedleTheme,\n useSpotlightContext,\n} from '@neo4j-ndl/react';\nimport { useEffect, useState } from 'react';\n\nconst Component = (props: { isChromatic: boolean }) => {\n const { themeClassName } = useNeedleTheme();\n const { setIsOpen, setActiveSpotlight } = useSpotlightContext();\n\n const [isModalOpen, setIsModalOpen] = useState<boolean>(props.isChromatic);\n const targetId = `test-target-${themeClassName}`;\n\n useEffect(() => {\n if (props.isChromatic && isModalOpen) {\n setActiveSpotlight(targetId);\n setIsOpen(true);\n }\n }, [isModalOpen, setActiveSpotlight, setIsOpen, targetId, props.isChromatic]);\n\n return (\n <div className=\"flex justify-center gap-token-64\">\n <FilledButton onClick={() => setIsModalOpen(true)}>\n Open Dialog\n </FilledButton>\n <Dialog\n isOpen={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n className={themeClassName}\n >\n <Dialog.Header>Using Spotlight inside a dialog</Dialog.Header>\n <Dialog.Content className=\"flex flex-col gap-token-32\">\n <Typography variant=\"body-medium\">\n Spotlight and SpotlightTarget should behave automatically correct\n when used inside a dialog. If positioning is not on top of\n everything, you might want to override the\n <code>--spotlight-z-index</code> css variable.\n </Typography>\n <div className=\"flex justify-center gap-token-64\">\n <FilledButton onClick={() => setActiveSpotlight(targetId)}>\n Activate Spotlight\n </FilledButton>\n <SpotlightTarget\n id={targetId}\n hasPulse={!props.isChromatic}\n shouldRenderAsChild\n indicatorVariant=\"border\"\n >\n <FilledButton onClick={() => alert('Target button clicked')}>\n Target\n </FilledButton>\n </SpotlightTarget>\n </div>\n </Dialog.Content>\n <Spotlight\n placement=\"bottom-end-top-end\"\n target={targetId}\n actions={\n <OutlinedButton\n onClick={() => {\n setIsOpen(false);\n setActiveSpotlight(null);\n }}\n >\n Close\n </OutlinedButton>\n }\n >\n <Spotlight.Header>This is a header</Spotlight.Header>\n <Spotlight.Body>This is content</Spotlight.Body>\n </Spotlight>\n </Dialog>\n </div>\n );\n};\n\nexport default Component;\n"]}