@nordhealth/components 4.26.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (583) hide show
  1. package/custom-elements.json +51620 -18552
  2. package/lib/Accordion.js +2 -0
  3. package/lib/Accordion.js.map +1 -0
  4. package/lib/AccordionHeader.js +2 -0
  5. package/lib/AccordionHeader.js.map +1 -0
  6. package/lib/AccordionItem.js +2 -0
  7. package/lib/AccordionItem.js.map +1 -0
  8. package/lib/AccordionPanel.js +2 -0
  9. package/lib/AccordionPanel.js.map +1 -0
  10. package/lib/AccordionTrigger.js +2 -0
  11. package/lib/AccordionTrigger.js.map +1 -0
  12. package/lib/ActiveDescendantController-BnMqM79O.js +2 -0
  13. package/lib/ActiveDescendantController-BnMqM79O.js.map +1 -0
  14. package/lib/Aside.js +5 -7
  15. package/lib/Aside.js.map +1 -1
  16. package/lib/AsideDrawer.js +7 -11
  17. package/lib/AsideDrawer.js.map +1 -1
  18. package/lib/AsideTrigger.js +3 -4
  19. package/lib/AsideTrigger.js.map +1 -1
  20. package/lib/Autocomplete.js +2 -0
  21. package/lib/Autocomplete.js.map +1 -0
  22. package/lib/Avatar.js +1 -1
  23. package/lib/Avatar.js.map +1 -1
  24. package/lib/Badge.js +1 -1
  25. package/lib/Badge.js.map +1 -1
  26. package/lib/Banner.js +1 -1
  27. package/lib/Banner.js.map +1 -1
  28. package/lib/Button.js +7 -12
  29. package/lib/Button.js.map +1 -1
  30. package/lib/ButtonGroup.js +1 -1
  31. package/lib/ButtonGroup.js.map +1 -1
  32. package/lib/Calendar-D47b20IT.js +2 -0
  33. package/lib/Calendar-D47b20IT.js.map +1 -0
  34. package/lib/Calendar.js +1 -1
  35. package/lib/Card.js +1 -1
  36. package/lib/Card.js.map +1 -1
  37. package/lib/Checkbox.js +1 -1
  38. package/lib/Checkbox.js.map +1 -1
  39. package/lib/CollapseController-BtKNFNyJ.js +2 -0
  40. package/lib/CollapseController-BtKNFNyJ.js.map +1 -0
  41. package/lib/Collapsible.js +2 -0
  42. package/lib/Collapsible.js.map +1 -0
  43. package/lib/CollapsiblePanel.js +2 -0
  44. package/lib/CollapsiblePanel.js.map +1 -0
  45. package/lib/CollapsibleTrigger.js +2 -0
  46. package/lib/CollapsibleTrigger.js.map +1 -0
  47. package/lib/Combobox-DBxXlbY7.js +2 -0
  48. package/lib/Combobox-DBxXlbY7.js.map +1 -0
  49. package/lib/Combobox.js +2 -0
  50. package/lib/Combobox.js.map +1 -0
  51. package/lib/ComboboxBase.js +2 -0
  52. package/lib/ComboboxBase.js.map +1 -0
  53. package/lib/ComboboxEvents.js +2 -0
  54. package/lib/ComboboxEvents.js.map +1 -0
  55. package/lib/ComboboxGroup.js +2 -0
  56. package/lib/ComboboxGroup.js.map +1 -0
  57. package/lib/ComboboxOption.js +2 -0
  58. package/lib/ComboboxOption.js.map +1 -0
  59. package/lib/CommandMenu.js +1 -1
  60. package/lib/CommandMenu.js.map +1 -1
  61. package/lib/CommandMenuAction.js +1 -1
  62. package/lib/CommandMenuAction.js.map +1 -1
  63. package/lib/Component-BJ5O5n8k.js +2 -0
  64. package/lib/Component-BJ5O5n8k.js.map +1 -0
  65. package/lib/DatePicker.js +1 -1
  66. package/lib/DatePicker.js.map +1 -1
  67. package/lib/DateRangeChangeEvent.js +2 -0
  68. package/lib/DateRangeChangeEvent.js.map +1 -0
  69. package/lib/DateRangePicker.js +2 -0
  70. package/lib/DateRangePicker.js.map +1 -0
  71. package/lib/DateRangeSelectEvent.js +2 -0
  72. package/lib/DateRangeSelectEvent.js.map +1 -0
  73. package/lib/Divider.js +1 -1
  74. package/lib/Divider.js.map +1 -1
  75. package/lib/DraftComponentMixin-4qug5Rky.js +2 -0
  76. package/lib/DraftComponentMixin-4qug5Rky.js.map +1 -0
  77. package/lib/Drawer.js +1 -1
  78. package/lib/Drawer.js.map +1 -1
  79. package/lib/Dropdown.js +1 -1
  80. package/lib/Dropdown.js.map +1 -1
  81. package/lib/DropdownGroup.js +1 -1
  82. package/lib/DropdownGroup.js.map +1 -1
  83. package/lib/DropdownItem-BYbOLth6.js +2 -0
  84. package/lib/DropdownItem-BYbOLth6.js.map +1 -0
  85. package/lib/DropdownItem.js +1 -1
  86. package/lib/DropdownItem.js.map +1 -1
  87. package/lib/DropdownSubmenu.js +1 -1
  88. package/lib/DropdownSubmenu.js.map +1 -1
  89. package/lib/EmptyState.js +1 -1
  90. package/lib/EmptyState.js.map +1 -1
  91. package/lib/Field.js +2 -0
  92. package/lib/Field.js.map +1 -0
  93. package/lib/FieldContent.js +2 -0
  94. package/lib/FieldContent.js.map +1 -0
  95. package/lib/FieldControlMixin-BXNZJXu9.js +2 -0
  96. package/lib/FieldControlMixin-BXNZJXu9.js.map +1 -0
  97. package/lib/FieldDescription.js +2 -0
  98. package/lib/FieldDescription.js.map +1 -0
  99. package/lib/FieldError.js +2 -0
  100. package/lib/FieldError.js.map +1 -0
  101. package/lib/FieldGroup.js +2 -0
  102. package/lib/FieldGroup.js.map +1 -0
  103. package/lib/FieldLabel.js +2 -0
  104. package/lib/FieldLabel.js.map +1 -0
  105. package/lib/FieldLegend.js +2 -0
  106. package/lib/FieldLegend.js.map +1 -0
  107. package/lib/FieldSeparator.js +2 -0
  108. package/lib/FieldSeparator.js.map +1 -0
  109. package/lib/FieldSet.js +2 -0
  110. package/lib/FieldSet.js.map +1 -0
  111. package/lib/FieldTitle.js +2 -0
  112. package/lib/FieldTitle.js.map +1 -0
  113. package/lib/Fieldset2.js +2 -0
  114. package/lib/Fieldset2.js.map +1 -0
  115. package/lib/FilterAddButton.js +2 -0
  116. package/lib/FilterAddButton.js.map +1 -0
  117. package/lib/FilterAddButtonEvents.js +2 -0
  118. package/lib/FilterAddButtonEvents.js.map +1 -0
  119. package/lib/FilterBar.js +2 -0
  120. package/lib/FilterBar.js.map +1 -0
  121. package/lib/FilterDateRange.js +2 -0
  122. package/lib/FilterDateRange.js.map +1 -0
  123. package/lib/FilterDateRangeEvents.js +2 -0
  124. package/lib/FilterDateRangeEvents.js.map +1 -0
  125. package/lib/FilterDropdown.js +2 -0
  126. package/lib/FilterDropdown.js.map +1 -0
  127. package/lib/FilterDropdownEvents.js +2 -0
  128. package/lib/FilterDropdownEvents.js.map +1 -0
  129. package/lib/FilterField.js +2 -0
  130. package/lib/FilterField.js.map +1 -0
  131. package/lib/FilterFieldEvents.js +2 -0
  132. package/lib/FilterFieldEvents.js.map +1 -0
  133. package/lib/FilterInput.js +2 -0
  134. package/lib/FilterInput.js.map +1 -0
  135. package/lib/FilterResetButton.js +2 -0
  136. package/lib/FilterResetButton.js.map +1 -0
  137. package/lib/FocusableWhenDisabledController-C_Mn1mfN.js +2 -0
  138. package/lib/FocusableWhenDisabledController-C_Mn1mfN.js.map +1 -0
  139. package/lib/Footer.js +1 -1
  140. package/lib/Footer.js.map +1 -1
  141. package/lib/FormAssociatedMixin-D9aPREgv.js +2 -0
  142. package/lib/FormAssociatedMixin-D9aPREgv.js.map +1 -0
  143. package/lib/FormField-CMgEFZCK.js +2 -0
  144. package/lib/FormField-CMgEFZCK.js.map +1 -0
  145. package/lib/Header.js +1 -1
  146. package/lib/Header.js.map +1 -1
  147. package/lib/Icon.js +1 -1
  148. package/lib/Icon.js.map +1 -1
  149. package/lib/Input.js +1 -1
  150. package/lib/Input.js.map +1 -1
  151. package/lib/Item.js +2 -0
  152. package/lib/Item.js.map +1 -0
  153. package/lib/ItemActions.js +2 -0
  154. package/lib/ItemActions.js.map +1 -0
  155. package/lib/ItemContent.js +2 -0
  156. package/lib/ItemContent.js.map +1 -0
  157. package/lib/ItemDescription.js +2 -0
  158. package/lib/ItemDescription.js.map +1 -0
  159. package/lib/ItemFooter.js +2 -0
  160. package/lib/ItemFooter.js.map +1 -0
  161. package/lib/ItemGroup.js +2 -0
  162. package/lib/ItemGroup.js.map +1 -0
  163. package/lib/ItemHeader.js +2 -0
  164. package/lib/ItemHeader.js.map +1 -0
  165. package/lib/ItemMedia.js +2 -0
  166. package/lib/ItemMedia.js.map +1 -0
  167. package/lib/ItemSeparator.js +2 -0
  168. package/lib/ItemSeparator.js.map +1 -0
  169. package/lib/ItemTitle.js +2 -0
  170. package/lib/ItemTitle.js.map +1 -0
  171. package/lib/Kbd.js +2 -0
  172. package/lib/Kbd.js.map +1 -0
  173. package/lib/KbdGroup.js +2 -0
  174. package/lib/KbdGroup.js.map +1 -0
  175. package/lib/KeyboardController.js +1 -1
  176. package/lib/KeyboardController.js.map +1 -1
  177. package/lib/Layout.js +1 -3
  178. package/lib/Layout.js.map +1 -1
  179. package/lib/{LightDismissController-4pH8cdko.js → LightDismissController-wcL1ziJa.js} +2 -2
  180. package/lib/{LightDismissController-4pH8cdko.js.map → LightDismissController-wcL1ziJa.js.map} +1 -1
  181. package/lib/LocalizeController.js +1 -1
  182. package/lib/LocalizeController.js.map +1 -1
  183. package/lib/Message.js +1 -1
  184. package/lib/Message.js.map +1 -1
  185. package/lib/Meter.js +2 -0
  186. package/lib/Meter.js.map +1 -0
  187. package/lib/Modal.js +1 -1
  188. package/lib/Modal.js.map +1 -1
  189. package/lib/ModalController.js +1 -1
  190. package/lib/ModalController.js.map +1 -1
  191. package/lib/NavGroup.js +1 -1
  192. package/lib/NavGroup.js.map +1 -1
  193. package/lib/NavItem.js +1 -1
  194. package/lib/NavItem.js.map +1 -1
  195. package/lib/NavToggle-BY83xpx0.js +2 -0
  196. package/lib/NavToggle-BY83xpx0.js.map +1 -0
  197. package/lib/NavToggle.js +1 -1
  198. package/lib/Navigation.js +1 -1
  199. package/lib/Navigation.js.map +1 -1
  200. package/lib/Notification.js +1 -1
  201. package/lib/Notification.js.map +1 -1
  202. package/lib/NotificationGroup.js +1 -1
  203. package/lib/NotificationGroup.js.map +1 -1
  204. package/lib/NumberField.js +2 -0
  205. package/lib/NumberField.js.map +1 -0
  206. package/lib/NumberFieldEvents.js +2 -0
  207. package/lib/NumberFieldEvents.js.map +1 -0
  208. package/lib/OpenStateController-CCnZ7up6.js +2 -0
  209. package/lib/OpenStateController-CCnZ7up6.js.map +1 -0
  210. package/lib/OtpField.js +2 -0
  211. package/lib/OtpField.js.map +1 -0
  212. package/lib/OtpFieldEvents.js +2 -0
  213. package/lib/OtpFieldEvents.js.map +1 -0
  214. package/lib/Outline.js +2 -0
  215. package/lib/Outline.js.map +1 -0
  216. package/lib/OutlineItem.js +2 -0
  217. package/lib/OutlineItem.js.map +1 -0
  218. package/lib/Pagination.js +2 -0
  219. package/lib/Pagination.js.map +1 -0
  220. package/lib/PaginationContent.js +2 -0
  221. package/lib/PaginationContent.js.map +1 -0
  222. package/lib/PaginationEllipsis.js +2 -0
  223. package/lib/PaginationEllipsis.js.map +1 -0
  224. package/lib/PaginationItem.js +2 -0
  225. package/lib/PaginationItem.js.map +1 -0
  226. package/lib/PaginationLink.js +2 -0
  227. package/lib/PaginationLink.js.map +1 -0
  228. package/lib/PaginationNext.js +2 -0
  229. package/lib/PaginationNext.js.map +1 -0
  230. package/lib/PaginationPrevious.js +2 -0
  231. package/lib/PaginationPrevious.js.map +1 -0
  232. package/lib/Popout-CFtFoCaA.js +2 -0
  233. package/lib/Popout-CFtFoCaA.js.map +1 -0
  234. package/lib/Popout.js +1 -1
  235. package/lib/Progress.js +1 -1
  236. package/lib/Progress.js.map +1 -1
  237. package/lib/ProgressBar.js +1 -1
  238. package/lib/ProgressBar.js.map +1 -1
  239. package/lib/Qrcode.js +2 -2
  240. package/lib/Qrcode.js.map +1 -1
  241. package/lib/Radio.js +1 -1
  242. package/lib/Radio.js.map +1 -1
  243. package/lib/Range.js +1 -1
  244. package/lib/Range.js.map +1 -1
  245. package/lib/ReadonlyMixin-BdJPGtQ3.js +2 -0
  246. package/lib/ReadonlyMixin-BdJPGtQ3.js.map +1 -0
  247. package/lib/ResizeController-14PUwRQy.js +2 -0
  248. package/lib/ResizeController-14PUwRQy.js.map +1 -0
  249. package/lib/ScrollArea.js +2 -0
  250. package/lib/ScrollArea.js.map +1 -0
  251. package/lib/SegmentedControl.js +1 -1
  252. package/lib/SegmentedControl.js.map +1 -1
  253. package/lib/SegmentedControlItem.js +23 -40
  254. package/lib/SegmentedControlItem.js.map +1 -1
  255. package/lib/Select.js +1 -1
  256. package/lib/Select.js.map +1 -1
  257. package/lib/ShortcutController-CV5b0BZl.js +2 -0
  258. package/lib/ShortcutController-CV5b0BZl.js.map +1 -0
  259. package/lib/Skeleton.js +1 -1
  260. package/lib/Skeleton.js.map +1 -1
  261. package/lib/Spinner.js +1 -1
  262. package/lib/Spinner.js.map +1 -1
  263. package/lib/Stack.js +1 -1
  264. package/lib/Stack.js.map +1 -1
  265. package/lib/StateAttributesController-BIh96sXZ.js +2 -0
  266. package/lib/StateAttributesController-BIh96sXZ.js.map +1 -0
  267. package/lib/Sticky-CZImMrGj.js +2 -0
  268. package/lib/Sticky-CZImMrGj.js.map +1 -0
  269. package/lib/Tab.js +1 -1
  270. package/lib/Tab.js.map +1 -1
  271. package/lib/TabGroup.js +1 -1
  272. package/lib/TabGroup.js.map +1 -1
  273. package/lib/TabPanel.js +1 -1
  274. package/lib/TabPanel.js.map +1 -1
  275. package/lib/Table.js +1 -1
  276. package/lib/Table.js.map +1 -1
  277. package/lib/Tag.js +1 -1
  278. package/lib/Tag.js.map +1 -1
  279. package/lib/TagGroup.js +1 -1
  280. package/lib/TagGroup.js.map +1 -1
  281. package/lib/TextField-CSKvieoG.js +2 -0
  282. package/lib/TextField-CSKvieoG.js.map +1 -0
  283. package/lib/TextSelectableMixin-Cfv__lHS.js.map +1 -1
  284. package/lib/Textarea.js +1 -1
  285. package/lib/Textarea.js.map +1 -1
  286. package/lib/TimePicker.js +2 -0
  287. package/lib/TimePicker.js.map +1 -0
  288. package/lib/Toast.js +1 -1
  289. package/lib/Toast.js.map +1 -1
  290. package/lib/ToastGroup.js +1 -1
  291. package/lib/ToastGroup.js.map +1 -1
  292. package/lib/Toggle.js +1 -1
  293. package/lib/Toggle.js.map +1 -1
  294. package/lib/Tooltip.js +1 -1
  295. package/lib/Tooltip.js.map +1 -1
  296. package/lib/TopBar.js +1 -1
  297. package/lib/TopBar.js.map +1 -1
  298. package/lib/Truncate.js +1 -1
  299. package/lib/Truncate.js.map +1 -1
  300. package/lib/VisuallyHidden.js +1 -1
  301. package/lib/VisuallyHidden.js.map +1 -1
  302. package/lib/bundle.js +91 -91
  303. package/lib/bundle.js.map +1 -1
  304. package/lib/combobox-context.js +2 -0
  305. package/lib/combobox-context.js.map +1 -0
  306. package/lib/context-consumer-BJVUulGf.js +7 -0
  307. package/lib/context-consumer-BJVUulGf.js.map +1 -0
  308. package/lib/context-provider-D8lrPLVi.js +12 -0
  309. package/lib/context-provider-D8lrPLVi.js.map +1 -0
  310. package/lib/context-request-event-CCRlXoeR.js +7 -0
  311. package/lib/context-request-event-CCRlXoeR.js.map +1 -0
  312. package/lib/create-context-CJ69ntlY.js +7 -0
  313. package/lib/create-context-CJ69ntlY.js.map +1 -0
  314. package/lib/currency.js +2 -0
  315. package/lib/currency.js.map +1 -0
  316. package/lib/date-adapter.js +1 -1
  317. package/lib/dates-C-ZvzXaC.js +2 -0
  318. package/lib/dates-C-ZvzXaC.js.map +1 -0
  319. package/lib/dates.js +2 -0
  320. package/lib/dates.js.map +1 -0
  321. package/lib/dismiss.js +2 -0
  322. package/lib/dismiss.js.map +1 -0
  323. package/lib/en-us.js +1 -1
  324. package/lib/en-us.js.map +1 -1
  325. package/lib/fi-fi.js +1 -1
  326. package/lib/fi-fi.js.map +1 -1
  327. package/lib/field-context.js +2 -0
  328. package/lib/field-context.js.map +1 -0
  329. package/lib/filter-chip-C97zd4PT.js +2 -0
  330. package/lib/filter-chip-C97zd4PT.js.map +1 -0
  331. package/lib/format.js +2 -0
  332. package/lib/format.js.map +1 -0
  333. package/lib/index.js +1 -1
  334. package/lib/interface-add-small-B-hv2v9J.js +2 -0
  335. package/lib/interface-add-small-B-hv2v9J.js.map +1 -0
  336. package/lib/interface-calendar-Cw2bJfbS.js +2 -0
  337. package/lib/interface-calendar-Cw2bJfbS.js.map +1 -0
  338. package/lib/interface-close-BvKnv9eh.js +2 -0
  339. package/lib/interface-close-BvKnv9eh.js.map +1 -0
  340. package/lib/interface-dropdown-small-CYvgxudU.js +2 -0
  341. package/lib/interface-dropdown-small-CYvgxudU.js.map +1 -0
  342. package/lib/interface-filter-CCsx9-u6.js +2 -0
  343. package/lib/interface-filter-CCsx9-u6.js.map +1 -0
  344. package/lib/interface-remove-small-DUaWSs90.js +2 -0
  345. package/lib/interface-remove-small-DUaWSs90.js.map +1 -0
  346. package/lib/light-dom-styles-DXsbiKU9.js +2 -0
  347. package/lib/light-dom-styles-DXsbiKU9.js.map +1 -0
  348. package/lib/localization.js +1 -1
  349. package/lib/localization.js.map +1 -1
  350. package/lib/localization10.js +2 -0
  351. package/lib/localization10.js.map +1 -0
  352. package/lib/localization11.js +2 -0
  353. package/lib/localization11.js.map +1 -0
  354. package/lib/localization12.js +2 -0
  355. package/lib/localization12.js.map +1 -0
  356. package/lib/localization13.js +2 -0
  357. package/lib/localization13.js.map +1 -0
  358. package/lib/localization14.js +2 -0
  359. package/lib/localization14.js.map +1 -0
  360. package/lib/localization15.js +2 -0
  361. package/lib/localization15.js.map +1 -0
  362. package/lib/localization16.js +2 -0
  363. package/lib/localization16.js.map +1 -0
  364. package/lib/localization17.js +2 -0
  365. package/lib/localization17.js.map +1 -0
  366. package/lib/localization18.js +2 -0
  367. package/lib/localization18.js.map +1 -0
  368. package/lib/localization19.js +2 -0
  369. package/lib/localization19.js.map +1 -0
  370. package/lib/localization2.js +1 -1
  371. package/lib/localization2.js.map +1 -1
  372. package/lib/localization20.js +2 -0
  373. package/lib/localization20.js.map +1 -0
  374. package/lib/localization21.js +2 -0
  375. package/lib/localization21.js.map +1 -0
  376. package/lib/localization22.js +2 -0
  377. package/lib/localization22.js.map +1 -0
  378. package/lib/localization23.js +2 -0
  379. package/lib/localization23.js.map +1 -0
  380. package/lib/localization3.js +1 -1
  381. package/lib/localization3.js.map +1 -1
  382. package/lib/localization4.js +1 -1
  383. package/lib/localization4.js.map +1 -1
  384. package/lib/localization5.js +1 -1
  385. package/lib/localization5.js.map +1 -1
  386. package/lib/localization6.js +1 -1
  387. package/lib/localization6.js.map +1 -1
  388. package/lib/localization7.js +1 -1
  389. package/lib/localization7.js.map +1 -1
  390. package/lib/localization8.js +1 -1
  391. package/lib/localization8.js.map +1 -1
  392. package/lib/localization9.js +1 -1
  393. package/lib/localization9.js.map +1 -1
  394. package/lib/navigation-search-CBbIGzo2.js +2 -0
  395. package/lib/navigation-search-CBbIGzo2.js.map +1 -0
  396. package/lib/paginate.js +2 -0
  397. package/lib/paginate.js.map +1 -0
  398. package/lib/parse.js +2 -0
  399. package/lib/parse.js.map +1 -0
  400. package/lib/primitives-Dj0vyf1-.js +2 -0
  401. package/lib/primitives-Dj0vyf1-.js.map +1 -0
  402. package/lib/react.d.ts +520 -0
  403. package/lib/src/accordion/Accordion.d.ts +121 -0
  404. package/lib/src/accordion/AccordionHeader.d.ts +28 -0
  405. package/lib/src/accordion/AccordionItem.d.ts +68 -0
  406. package/lib/src/accordion/AccordionPanel.d.ts +35 -0
  407. package/lib/src/accordion/AccordionTrigger.d.ts +48 -0
  408. package/lib/src/aside/Aside.d.ts +1 -1
  409. package/lib/src/aside-drawer/AsideDrawer.d.ts +3 -1
  410. package/lib/src/aside-trigger/AsideTrigger.d.ts +2 -0
  411. package/lib/src/autocomplete/Autocomplete.d.ts +190 -0
  412. package/lib/src/autocomplete/localization.d.ts +5 -0
  413. package/lib/src/avatar/Avatar.d.ts +1 -1
  414. package/lib/src/badge/Badge.d.ts +1 -1
  415. package/lib/src/banner/Banner.d.ts +3 -0
  416. package/lib/src/button-group/ButtonGroup.d.ts +1 -1
  417. package/lib/src/calendar/Calendar.d.ts +45 -1
  418. package/lib/src/calendar/DateRangeSelectEvent.d.ts +16 -0
  419. package/lib/src/card/Card.d.ts +1 -1
  420. package/lib/src/collapsible/Collapsible.d.ts +69 -0
  421. package/lib/src/collapsible/CollapsiblePanel.d.ts +35 -0
  422. package/lib/src/collapsible/CollapsibleTrigger.d.ts +38 -0
  423. package/lib/src/combobox/Combobox.d.ts +131 -0
  424. package/lib/src/combobox/ComboboxBase.d.ts +421 -0
  425. package/lib/src/combobox/ComboboxEvents.d.ts +25 -0
  426. package/lib/src/combobox/ComboboxGroup.d.ts +34 -0
  427. package/lib/src/combobox/ComboboxOption.d.ts +47 -0
  428. package/lib/src/combobox/combobox-context.d.ts +18 -0
  429. package/lib/src/combobox/localization.d.ts +6 -0
  430. package/lib/src/common/controllers/ActiveDescendantController.d.ts +45 -0
  431. package/lib/src/common/controllers/CollapseController.d.ts +50 -0
  432. package/lib/src/common/controllers/FocusableWhenDisabledController.d.ts +29 -0
  433. package/lib/src/common/controllers/OpenStateController.d.ts +58 -0
  434. package/lib/src/common/controllers/RovingFocusController.d.ts +40 -0
  435. package/lib/src/common/controllers/ShortcutController.d.ts +5 -5
  436. package/lib/src/common/controllers/StateAttributesController.d.ts +47 -0
  437. package/lib/src/common/controllers/TransitionStatusController.d.ts +48 -0
  438. package/lib/src/common/dates.d.ts +13 -0
  439. package/lib/src/common/light-dom-styles.d.ts +17 -0
  440. package/lib/src/common/mixins/FieldControlMixin.d.ts +60 -0
  441. package/lib/src/common/mixins/FormAssociatedMixin.d.ts +8 -25
  442. package/lib/src/common/mixins/TextSelectableMixin.d.ts +1 -0
  443. package/lib/src/common/prefers-reduced-motion.d.ts +7 -0
  444. package/lib/src/date-picker/DatePicker.d.ts +2 -0
  445. package/lib/src/date-range-picker/DateRangeChangeEvent.d.ts +27 -0
  446. package/lib/src/date-range-picker/DateRangePicker.d.ts +307 -0
  447. package/lib/src/date-range-picker/localization.d.ts +42 -0
  448. package/lib/src/divider/Divider.d.ts +1 -1
  449. package/lib/src/drawer/Drawer.d.ts +1 -1
  450. package/lib/src/dropdown/Dropdown.d.ts +1 -1
  451. package/lib/src/dropdown-group/DropdownGroup.d.ts +3 -1
  452. package/lib/src/dropdown-item/DropdownItem.d.ts +3 -1
  453. package/lib/src/dropdown-submenu/DropdownSubmenu.d.ts +2 -0
  454. package/lib/src/field/Field.d.ts +102 -0
  455. package/lib/src/field/FieldContent.d.ts +22 -0
  456. package/lib/src/field/FieldDescription.d.ts +21 -0
  457. package/lib/src/field/FieldError.d.ts +25 -0
  458. package/lib/src/field/FieldGroup.d.ts +25 -0
  459. package/lib/src/field/FieldLabel.d.ts +41 -0
  460. package/lib/src/field/FieldLegend.d.ts +20 -0
  461. package/lib/src/field/FieldSeparator.d.ts +21 -0
  462. package/lib/src/field/FieldSet.d.ts +28 -0
  463. package/lib/src/field/FieldTitle.d.ts +21 -0
  464. package/lib/src/field/field-context.d.ts +47 -0
  465. package/lib/src/fieldset/Fieldset.d.ts +12 -4
  466. package/lib/src/filter-add-button/FilterAddButton.d.ts +91 -0
  467. package/lib/src/filter-add-button/FilterAddButtonEvents.d.ts +17 -0
  468. package/lib/src/filter-add-button/localization.d.ts +4 -0
  469. package/lib/src/filter-bar/FilterBar.d.ts +37 -0
  470. package/lib/src/filter-date-range/FilterDateRange.d.ts +96 -0
  471. package/lib/src/filter-date-range/FilterDateRangeEvents.d.ts +37 -0
  472. package/lib/src/filter-date-range/localization.d.ts +11 -0
  473. package/lib/src/filter-dropdown/FilterDropdown.d.ts +247 -0
  474. package/lib/src/filter-dropdown/FilterDropdownEvents.d.ts +57 -0
  475. package/lib/src/filter-dropdown/localization.d.ts +14 -0
  476. package/lib/src/filter-field/FilterField.d.ts +89 -0
  477. package/lib/src/filter-field/FilterFieldEvents.d.ts +18 -0
  478. package/lib/src/filter-field/localization.d.ts +8 -0
  479. package/lib/src/filter-input/FilterInput.d.ts +102 -0
  480. package/lib/src/filter-input/localization.d.ts +5 -0
  481. package/lib/src/filter-reset-button/FilterResetButton.d.ts +50 -0
  482. package/lib/src/filter-reset-button/localization.d.ts +4 -0
  483. package/lib/src/footer/Footer.d.ts +1 -1
  484. package/lib/src/header/Header.d.ts +1 -1
  485. package/lib/src/icon/Icon.d.ts +1 -1
  486. package/lib/src/index.d.ts +61 -0
  487. package/lib/src/input/Input.d.ts +2 -1
  488. package/lib/src/item/Item.d.ts +44 -0
  489. package/lib/src/item/ItemActions.d.ts +20 -0
  490. package/lib/src/item/ItemContent.d.ts +22 -0
  491. package/lib/src/item/ItemDescription.d.ts +20 -0
  492. package/lib/src/item/ItemFooter.d.ts +20 -0
  493. package/lib/src/item/ItemGroup.d.ts +22 -0
  494. package/lib/src/item/ItemHeader.d.ts +20 -0
  495. package/lib/src/item/ItemMedia.d.ts +28 -0
  496. package/lib/src/item/ItemSeparator.d.ts +21 -0
  497. package/lib/src/item/ItemTitle.d.ts +19 -0
  498. package/lib/src/kbd/Kbd.d.ts +54 -0
  499. package/lib/src/kbd/KbdGroup.d.ts +22 -0
  500. package/lib/src/layout/Layout.d.ts +3 -3
  501. package/lib/src/localization/en-us.d.ts +88 -0
  502. package/lib/src/localization/translation.d.ts +88 -0
  503. package/lib/src/meter/Meter.d.ts +76 -0
  504. package/lib/src/nav-group/NavGroup.d.ts +2 -0
  505. package/lib/src/nav-item/NavItem.d.ts +2 -0
  506. package/lib/src/nav-toggle/NavToggle.d.ts +3 -1
  507. package/lib/src/notification-group/NotificationGroup.d.ts +2 -0
  508. package/lib/src/number-field/NumberField.d.ts +377 -0
  509. package/lib/src/number-field/NumberFieldEvents.d.ts +37 -0
  510. package/lib/src/number-field/currency.d.ts +24 -0
  511. package/lib/src/number-field/format.d.ts +8 -0
  512. package/lib/src/number-field/localization.d.ts +6 -0
  513. package/lib/src/number-field/parse.d.ts +44 -0
  514. package/lib/src/number-field/validate.d.ts +24 -0
  515. package/lib/src/otp-field/OtpField.d.ts +188 -0
  516. package/lib/src/otp-field/OtpFieldEvents.d.ts +38 -0
  517. package/lib/src/otp-field/localization.d.ts +4 -0
  518. package/lib/src/outline/Outline.d.ts +111 -0
  519. package/lib/src/outline/OutlineItem.d.ts +42 -0
  520. package/lib/src/outline/localization.d.ts +4 -0
  521. package/lib/src/pagination/Pagination.d.ts +51 -0
  522. package/lib/src/pagination/PaginationContent.d.ts +27 -0
  523. package/lib/src/pagination/PaginationEllipsis.d.ts +27 -0
  524. package/lib/src/pagination/PaginationItem.d.ts +24 -0
  525. package/lib/src/pagination/PaginationLink.d.ts +30 -0
  526. package/lib/src/pagination/PaginationNext.d.ts +24 -0
  527. package/lib/src/pagination/PaginationPrevious.d.ts +24 -0
  528. package/lib/src/pagination/localization.d.ts +4 -0
  529. package/lib/src/pagination/paginate.d.ts +20 -0
  530. package/lib/src/popout/Popout.d.ts +9 -0
  531. package/lib/src/qrcode/Qrcode.d.ts +1 -1
  532. package/lib/src/scroll-area/ScrollArea.d.ts +101 -0
  533. package/lib/src/segmented-control-item/SegmentedControlItem.d.ts +2 -0
  534. package/lib/src/stack/Stack.d.ts +1 -1
  535. package/lib/src/storybook-utils/dates.d.ts +2 -0
  536. package/lib/src/storybook-utils/dismiss.d.ts +1 -0
  537. package/lib/src/storybook-utils/story-descriptions.d.ts +2 -0
  538. package/lib/src/tab-group/TabGroup.d.ts +2 -0
  539. package/lib/src/tab-panel/TabPanel.d.ts +2 -0
  540. package/lib/src/tag/Tag.d.ts +1 -1
  541. package/lib/src/tag-group/TagGroup.d.ts +3 -1
  542. package/lib/src/time-picker/TimePicker.d.ts +105 -0
  543. package/lib/src/time-picker/localization.d.ts +4 -0
  544. package/lib/src/toast-group/ToastGroup.d.ts +11 -0
  545. package/lib/src/top-bar/TopBar.d.ts +1 -1
  546. package/lib/src/truncate/Truncate.d.ts +1 -1
  547. package/lib/src/visually-hidden/VisuallyHidden.d.ts +1 -1
  548. package/lib/story-descriptions.js +2 -0
  549. package/lib/story-descriptions.js.map +1 -0
  550. package/lib/tinykeys-DwvDXsEb.js +2 -0
  551. package/lib/tinykeys-DwvDXsEb.js.map +1 -0
  552. package/lib/translation.js +1 -1
  553. package/lib/translation.js.map +1 -1
  554. package/lib/validate.js +2 -0
  555. package/lib/validate.js.map +1 -0
  556. package/lib/vue.d.ts +418 -0
  557. package/package.json +10 -13
  558. package/lib/Calendar-ChNZdVRO.js +0 -2
  559. package/lib/Calendar-ChNZdVRO.js.map +0 -1
  560. package/lib/Component-DSU3Qp0O.js +0 -2
  561. package/lib/Component-DSU3Qp0O.js.map +0 -1
  562. package/lib/DropdownItem-Cb-7cHMg.js +0 -2
  563. package/lib/DropdownItem-Cb-7cHMg.js.map +0 -1
  564. package/lib/Fieldset.js +0 -2
  565. package/lib/Fieldset.js.map +0 -1
  566. package/lib/FormAssociatedMixin-B4Qj-CQN.js +0 -2
  567. package/lib/FormAssociatedMixin-B4Qj-CQN.js.map +0 -1
  568. package/lib/FormField-BFaVzUjk.js +0 -2
  569. package/lib/FormField-BFaVzUjk.js.map +0 -1
  570. package/lib/NavToggle-DzKbd-El.js +0 -2
  571. package/lib/NavToggle-DzKbd-El.js.map +0 -1
  572. package/lib/Popout-CYqn_dZu.js +0 -2
  573. package/lib/Popout-CYqn_dZu.js.map +0 -1
  574. package/lib/ShortcutController-BIb3WGzH.js +0 -2
  575. package/lib/ShortcutController-BIb3WGzH.js.map +0 -1
  576. package/lib/Sticky-DqnqENYN.js +0 -2
  577. package/lib/Sticky-DqnqENYN.js.map +0 -1
  578. package/lib/TextField-B955GOhe.js +0 -2
  579. package/lib/TextField-B955GOhe.js.map +0 -1
  580. package/lib/dates-CAAlPKZi.js +0 -2
  581. package/lib/dates-CAAlPKZi.js.map +0 -1
  582. package/lib/tinykeys.module-_6MZt7MP.js +0 -2
  583. package/lib/tinykeys.module-_6MZt7MP.js.map +0 -1
@@ -56,6 +56,15 @@ export declare function resolveTranslation(langCode: string): {
56
56
  tip: string;
57
57
  placeholder: string;
58
58
  };
59
+ 'nord-combobox': {
60
+ clearLabel: string;
61
+ createLabel: (query: string) => string;
62
+ noResults: string;
63
+ };
64
+ 'nord-autocomplete': {
65
+ clearLabel: string;
66
+ noResults: string;
67
+ };
59
68
  'nord-calendar': {
60
69
  prevMonthLabel: string;
61
70
  nextMonthLabel: string;
@@ -70,6 +79,34 @@ export declare function resolveTranslation(langCode: string): {
70
79
  dateOutOfMinBound: (minDate: string) => string;
71
80
  dateOutOfMaxBound: (maxDate: string) => string;
72
81
  };
82
+ 'nord-date-range-picker': {
83
+ buttonLabel: string;
84
+ placeholder: string;
85
+ modalHeading: string;
86
+ closeLabel: string;
87
+ applyLabel: string;
88
+ cancelLabel: string;
89
+ clearLabel: string;
90
+ presetsLabel: string;
91
+ presetsCollapsedLabel: string;
92
+ rangeSeparator: string;
93
+ dateOutOfMinBound: (minDate: string) => string;
94
+ dateOutOfMaxBound: (maxDate: string) => string;
95
+ presetToday: string;
96
+ presetYesterday: string;
97
+ presetLastDays: (days: number) => string;
98
+ presetLastMonths: (months: number) => string;
99
+ presetThisMonth: string;
100
+ presetLastWeek: string;
101
+ presetLastMonth: string;
102
+ presetLastQuarter: string;
103
+ presetLastYear: string;
104
+ presetCurrentWeek: string;
105
+ presetCurrentMonth: string;
106
+ presetCurrentQuarter: string;
107
+ presetCurrentYear: string;
108
+ presetQuarter: (quarter: number, year: number) => string;
109
+ };
73
110
  'nord-modal': {
74
111
  closeLabel: string;
75
112
  };
@@ -79,12 +116,63 @@ export declare function resolveTranslation(langCode: string): {
79
116
  'nord-textarea': {
80
117
  remainingCharacters: (remainder: number) => string;
81
118
  };
119
+ 'nord-time-picker': {
120
+ chooseTime: string;
121
+ };
82
122
  'nord-notification': {
83
123
  dismissLabel: string;
84
124
  };
85
125
  'nord-message': {
86
126
  unreadLabel: string;
87
127
  };
128
+ 'nord-number-field': {
129
+ increaseLabel: string;
130
+ decreaseLabel: string;
131
+ roleDescription: string;
132
+ };
133
+ 'nord-otp-field': {
134
+ characterLabel: (position: number, total: number) => string;
135
+ };
136
+ 'nord-outline': {
137
+ label: string;
138
+ };
139
+ 'nord-pagination': {
140
+ label: string;
141
+ };
142
+ 'nord-filter-input': {
143
+ searchLabel: string;
144
+ clearLabel: string;
145
+ };
146
+ 'nord-filter-field': {
147
+ filterIconLabel: string;
148
+ selectionLabel: (label: string) => string;
149
+ clearLabel: string;
150
+ removeLabel: string;
151
+ };
152
+ 'nord-filter-date-range': {
153
+ filterIconLabel: string;
154
+ clearLabel: string;
155
+ removeLabel: string;
156
+ rangeSeparator: string;
157
+ };
158
+ 'nord-filter-add-button': {
159
+ label: string;
160
+ };
161
+ 'nord-filter-dropdown': {
162
+ filterIconLabel: string;
163
+ selectionLabel: (label: string) => string;
164
+ searchLabel: string;
165
+ clearLabel: string;
166
+ removeLabel: string;
167
+ selectAll: string;
168
+ deselectAll: string;
169
+ noResults: string;
170
+ unknown: string;
171
+ countSuffix: (extra: number) => string;
172
+ };
173
+ 'nord-filter-reset-button': {
174
+ label: string;
175
+ };
88
176
  'nord-tag': {
89
177
  removeLabel: string;
90
178
  };
@@ -0,0 +1,76 @@
1
+ import { LitElement } from 'lit';
2
+ declare const Meter_base: typeof LitElement;
3
+ /**
4
+ * Meter is a graphical display of a numeric value within a known range,
5
+ * such as disk usage, a battery level or a score. Unlike Progress Bar, it
6
+ * represents a static measurement rather than the completion of a task.
7
+ *
8
+ * @status draft
9
+ * @category feedback
10
+ * @lightDom true
11
+ *
12
+ * @part track - The track which holds the indicator.
13
+ * @part indicator - The filled portion of the track representing the value.
14
+ *
15
+ * @cssprop [--n-meter-size=var(--n-space-s)] - Controls the thickness of the meter, using our [spacing tokens](/tokens/#space).
16
+ * @cssprop [--n-meter-border-radius=var(--n-border-radius-s)] - Controls how rounded the corners are, using [border radius tokens](/tokens/#border-radius).
17
+ * @cssprop [--n-meter-color=var(--n-color-accent)] - Controls the color of the indicator, using [color tokens](/tokens/#color).
18
+ */
19
+ export default class Meter extends Meter_base {
20
+ /**
21
+ * The current value. Must be between `min` and `max`.
22
+ */
23
+ value: number;
24
+ /**
25
+ * The minimum value. If `min` is greater than `max`, the two are swapped so
26
+ * the range is always well-formed.
27
+ */
28
+ min: number;
29
+ /**
30
+ * The maximum value. If `min` is greater than `max`, the two are swapped so
31
+ * the range is always well-formed.
32
+ */
33
+ max: number;
34
+ /**
35
+ * A label describing what the meter represents. Shown above the meter and
36
+ * exposed to assistive technology.
37
+ */
38
+ label: string;
39
+ /**
40
+ * Options used to format the displayed and announced value with
41
+ * `Intl.NumberFormat`. When omitted, the value is shown as a percentage of
42
+ * the range so the text stays in sync with the indicator fill.
43
+ */
44
+ format?: Intl.NumberFormatOptions;
45
+ /**
46
+ * The locale used by `Intl.NumberFormat` when formatting the value.
47
+ * Defaults to the runtime locale.
48
+ */
49
+ locale?: string;
50
+ /**
51
+ * The effective range bounds, normalised so `min <= max` even if the
52
+ * properties are set the other way round (a degenerate `min > max` would
53
+ * otherwise produce NaN/negative fills).
54
+ */
55
+ private get bounds();
56
+ /** The value clamped to the `min`/`max` range. */
57
+ private get clampedValue();
58
+ /** The value as a percentage (0–100) of the range, clamped. */
59
+ private get percentage();
60
+ /**
61
+ * The human-readable value used for display and `aria-valuetext`. Always
62
+ * derived from the clamped value so the announced/displayed text stays in
63
+ * sync with the indicator fill (never raw or NaN).
64
+ */
65
+ private get formattedValue();
66
+ connectedCallback(): void;
67
+ protected createRenderRoot(): this;
68
+ protected updated(): void;
69
+ render(): import("lit").TemplateResult<1>;
70
+ }
71
+ declare global {
72
+ interface HTMLElementTagNameMap {
73
+ 'nord-meter': Meter;
74
+ }
75
+ }
76
+ export {};
@@ -12,6 +12,8 @@ import '../icon/Icon.js';
12
12
  * @fires {NordEvent} activate - Dispatched whenever a nav item has been marked as active
13
13
  *
14
14
  * @cssprop [--n-nav-group-heading-display=block] - Controls the `display` of the group's heading. Set to `none` to hide it — useful for a `slot="subnav"` group whose heading repeats the parent item's label inline; the heading is still shown in the rail flyout where it titles the projected list.
15
+ *
16
+ * @parent Navigation
15
17
  */
16
18
  export default class NavGroup extends LitElement {
17
19
  static styles: import("lit").CSSResult[];
@@ -52,6 +52,8 @@ declare const NavItem_base: (new (...args: any[]) => import("../common/mixins/Fo
52
52
  * @cssprop [--n-nav-badge-min-inline-size=20px] - Minimum inline size (width in LTR) of the built-in `badge` attribute pill — sets a visual floor for single-digit counts.
53
53
  * @cssprop [--n-nav-badge-margin-inline-start=var(--n-space-xs)] - Inline-start margin separating the badge from the preceding label inside the nav-item's flex row.
54
54
  * @cssprop [--n-rail-badge-size=5px] - Diameter of the rail-mode dot the badge collapses into when the layout is in `collapse-mode="rail"` and not `nav-open`.
55
+ *
56
+ * @parent Navigation
55
57
  */
56
58
  export default class NavItem extends NavItem_base {
57
59
  static styles: import("lit").CSSResult[];
@@ -6,9 +6,11 @@ declare const NavToggle_base: (new (...args: any[]) => import("../common/mixins/
6
6
  * Nav toggle hides and shows the primary navigation inside `<nord-layout>`.
7
7
  *
8
8
  * @status ready
9
- * @category action
9
+ * @category navigation
10
10
  *
11
11
  * @localization label - Accessible label for the nav toggle button.
12
+ *
13
+ * @parent Navigation
12
14
  */
13
15
  export default class NavToggle extends NavToggle_base {
14
16
  static styles: import("lit").CSSResult[];
@@ -7,6 +7,8 @@ import { LitElement } from 'lit';
7
7
  * @slot - Default slot in which to place notifications.
8
8
  *
9
9
  * @fires {NordEvent} dismiss - Fired when a notification is dismissed, and its exit animation has completed. This event should be used to remove the dismissed notification from the DOM.
10
+ *
11
+ * @parent Notification
10
12
  */
11
13
  export default class NotificationGroup extends LitElement {
12
14
  static styles: import("lit").CSSResult[];
@@ -0,0 +1,377 @@
1
+ import type { PropertyValues } from 'lit';
2
+ import { LitElement } from 'lit';
3
+ export { getCurrencySymbol, resolveCurrencyPlacement } from './currency.js';
4
+ export { NumberFieldChangeEvent } from './NumberFieldEvents.js';
5
+ export type { NumberFieldChangeReason } from './NumberFieldEvents.js';
6
+ /**
7
+ * The editable state of the inner input handed to (and returned from) a custom
8
+ * `mask` function: the current text and the caret/selection offsets. The shape
9
+ * mirrors a mask library's element state (e.g. Maskito's `ElementState`), so a
10
+ * mask transformer can be adapted with a thin wrapper.
11
+ */
12
+ export interface NumberFieldMaskState {
13
+ value: string;
14
+ selectionStart: number;
15
+ selectionEnd: number;
16
+ }
17
+ /** Contextual info passed to a custom `mask` function alongside the editable state. */
18
+ export interface NumberFieldMaskContext {
19
+ locale?: string | string[];
20
+ format?: Intl.NumberFormatOptions;
21
+ }
22
+ /** Signature of a custom `mask` transformer function. */
23
+ export type NumberFieldMaskInput = (state: NumberFieldMaskState, context: NumberFieldMaskContext) => NumberFieldMaskState;
24
+ declare const NumberField_base: (new (...args: any[]) => import("../common/mixins/SizeMixin.js").SizeMixinInterface) & (new (...args: any[]) => import("../common/mixins/FieldControlMixin.js").FieldControlMixinInterface) & typeof LitElement;
25
+ /**
26
+ * Number Field is a control for entering a numeric value, with decrement and
27
+ * increment stepper buttons, optional drag-to-scrub, and locale-aware
28
+ * formatting. It ports the behaviour of Base UI's Number Field: arrow/Page
29
+ * stepping, Home/End to the bounds, press-and-hold auto-repeat, optional
30
+ * wheel/scrub, clamping, and `Intl.NumberFormat` formatting.
31
+ *
32
+ * Number Field is a control only — it has no built-in label, hint or error.
33
+ * Compose it inside a [Field](/components/field/) with a
34
+ * [Field Label](/components/field-label/) to give it a label, hint and error,
35
+ * the same way you would a native input.
36
+ *
37
+ * FORM PARTICIPATION: the value is submitted as the raw numeric string under the
38
+ * host `name` via `FormDataController` (the inner input has no `name`, avoiding a
39
+ * double submit). Unlike Base UI there is no hidden native number input, and —
40
+ * like the other new Nord controls — Number Field does NOT use
41
+ * `ElementInternals`, so it performs no native constraint validation: `required`,
42
+ * `min`, `max` and `step` are NOT enforced as form-blocking validity. `min`/`max`
43
+ * govern interactive stepping and (unless `allow-out-of-range` is set) clamp the
44
+ * value; `required` only surfaces as `required`/`aria-required` on the inner input
45
+ * for assistive technology. Authors must validate constraints themselves and
46
+ * reflect failures via `invalid` and a `nord-field-error`.
47
+ *
48
+ * ACCESSIBILITY NOTE: the inner control is a text input (with `inputmode`) and
49
+ * `aria-roledescription="Number field"`, NOT `role="spinbutton"` and NOT a
50
+ * native `type="number"`. A text input lets us show locale-formatted text
51
+ * (currency, percent, grouping) while keeping full text editing — assistive tech
52
+ * reads the formatted value from the input's text. We do NOT add
53
+ * `aria-valuenow`/`valuemin`/`valuemax`/`valuetext`: those are only valid on a
54
+ * range role (e.g. `spinbutton`/`slider`) and would fail `aria-allowed-attr`
55
+ * validation on a text input. This mirrors what Base UI's `NumberFieldInput`
56
+ * actually ships (only `aria-roledescription`).
57
+ *
58
+ * @status draft
59
+ * @category form
60
+ * @lightDom true
61
+ *
62
+ * @fires {NumberFieldChangeEvent} change - Dispatched when the value is committed (on blur, keyboard step, or pointer-up after a button hold or scrub). Carries the numeric value and a `reason`.
63
+ * @fires {NordEvent} input - Dispatched as the value changes during interaction (typing a parseable value, clearing, each step, each button tick, each wheel notch, each scrub increment).
64
+ *
65
+ * @slot start - Leading content inside the control, before the input (e.g. a unit or currency symbol). Sits after the decrement stepper button.
66
+ * @slot end - Trailing content inside the control, after the input (e.g. a unit label or `%`). Sits before the increment stepper button.
67
+ *
68
+ * @localization increaseLabel - Accessible label for the increment stepper button.
69
+ * @localization decreaseLabel - Accessible label for the decrement stepper button.
70
+ * @localization roleDescription - Role description announced for the input (aria-roledescription).
71
+ *
72
+ * @cssprop [--n-number-field-control-min-inline-size=8ch] - Minimum inline size (width) of the numeric input portion of the control.
73
+ * @cssprop [--n-number-field-step-inline-size=var(--n-space-xl)] - Inline size (width) of each increment/decrement stepper button.
74
+ * @cssprop [--n-number-field-background=var(--n-input-background, var(--n-color-surface))] - Background of the control.
75
+ * @cssprop [--n-number-field-border-color=var(--n-input-border-color, var(--n-color-border-strong))] - Border color of the control.
76
+ * @cssprop [--n-number-field-border-radius=var(--n-input-border-radius, var(--n-border-radius-s))] - Corner radius of the control.
77
+ *
78
+ * @attr {boolean} data-invalid - Present while the field is invalid (mirrors the `invalid` property). Style hook for the whole control.
79
+ * @attr {boolean} data-focused - Present while the control has focus. Style hook for focus-within treatments.
80
+ */
81
+ export default class NumberField extends NumberField_base {
82
+ /** Stable, unique id base for this instance's light-DOM ARIA wiring. */
83
+ private numberFieldId;
84
+ protected inputId: string;
85
+ private localize;
86
+ private inputRef;
87
+ private formData;
88
+ /** Reflects state to Base-UI-style `data-*` attributes (data-invalid, data-focused). */
89
+ private stateAttributes;
90
+ protected get ownInvalid(): boolean;
91
+ /** Re-renders when the host's forwarded ARIA labelling attributes change. */
92
+ private ariaObserver?;
93
+ private startZone?;
94
+ private endZone?;
95
+ private slotObserver?;
96
+ private formAncestor;
97
+ private _formId?;
98
+ /**
99
+ * The raw numeric value of the field, or `null` when empty.
100
+ *
101
+ * The `value` attribute may be set as a numeric string in HTML; it is coerced
102
+ * with a custom converter (`Number(v)`, `NaN -> null`).
103
+ */
104
+ value: number | null;
105
+ /**
106
+ * The minimum allowed value. Step interactions and blur-clamping clamp to it,
107
+ * and the decrement button disables at/below it. Home jumps to it only when it
108
+ * is finite.
109
+ */
110
+ min?: number;
111
+ /**
112
+ * The maximum allowed value. Step interactions and blur-clamping clamp to it,
113
+ * and the increment button disables at/above it. End jumps to it only when it
114
+ * is finite.
115
+ */
116
+ max?: number;
117
+ /**
118
+ * Amount each arrow press / button click / wheel notch changes the value.
119
+ * `'any'` disables step semantics (treated as `1` internally for stepping).
120
+ */
121
+ step: number | 'any';
122
+ /** Step used for PageUp/PageDown and Shift+Arrow. */
123
+ largeStep: number;
124
+ /** Step used when Alt/Option is held with Arrow keys. */
125
+ smallStep: number;
126
+ /** When `true`, stepping snaps the value to the nearest multiple of the step. */
127
+ snapOnStep: boolean;
128
+ /**
129
+ * When `true`, direct text entry may go outside `min`/`max` without clamping
130
+ * (so range validation can flag it); step interactions still clamp.
131
+ */
132
+ allowOutOfRange: boolean;
133
+ /**
134
+ * Restricts the field to whole numbers. The decimal separator can no longer be
135
+ * typed, pasted or programmatic fractional values are rounded to the nearest
136
+ * integer, and the built-in `mask` caps the fraction to zero. The soft keyboard
137
+ * shows the plain numeric keypad.
138
+ */
139
+ integer: boolean;
140
+ /** When `true`, scrolling the mouse wheel while focused changes the value. */
141
+ allowWheelScrub: boolean;
142
+ /** When `true`, renders a drag handle so the user can click-drag to change the value. */
143
+ scrub: boolean;
144
+ /**
145
+ * `Intl.NumberFormat` options used to format the displayed text. Set as a
146
+ * property only (e.g. `{ style: 'currency', currency: 'EUR' }`).
147
+ */
148
+ format?: Intl.NumberFormatOptions;
149
+ /**
150
+ * Overrides the default `Intl.NumberFormat`-based formatting of the displayed
151
+ * text. Receives the current numeric value (`null` when the field is empty),
152
+ * the active `locale`, and the `format` options, and must return the string to
153
+ * display. Following the default behaviour, a `null` value should map to an
154
+ * empty string. Set as a property only.
155
+ */
156
+ formatValue?: (value: number | null, locale?: string | string[], options?: Intl.NumberFormatOptions) => string;
157
+ /**
158
+ * Overrides the default locale-aware parsing of the typed text. Receives the
159
+ * raw input text, the active `locale`, and the `format` options, and must
160
+ * return the parsed number, or `null` when the text is empty or cannot be
161
+ * parsed. Set as a property only.
162
+ */
163
+ parseValue?: (text: string, locale?: string | string[], options?: Intl.NumberFormatOptions) => number | null;
164
+ /**
165
+ * An optional custom edit-time mask: a function that reshapes the input text on
166
+ * every insertion, deletion, and paste, and reports where the caret should
167
+ * land. This is the live-typing counterpart to `formatValue` (which formats an
168
+ * already-committed value). Use it to insert grouping separators, localise the
169
+ * decimal, or cap fraction digits as the user types — typically by wrapping a
170
+ * mask library (e.g. Maskito's `maskitoTransform(elementState, options)`).
171
+ *
172
+ * The field does NOT format live on its own: without a mask, the text is kept
173
+ * as typed and the auto (`Intl`) formatting is applied only on blur and on
174
+ * paste. When a mask is set it becomes the source of truth for the text — the
175
+ * per-character guard is bypassed (the mask decides validity) and paste lands
176
+ * natively so it flows through the mask. Keep the mask output parseable in, and
177
+ * consistent with, the active `locale`/`format`. Set as a property.
178
+ */
179
+ mask?: NumberFieldMaskInput;
180
+ /** BCP-47 locale(s) for `Intl` formatting/parsing. Defaults to the runtime locale. */
181
+ locale?: string | string[];
182
+ /** Placeholder text shown when the field is empty. */
183
+ placeholder?: string;
184
+ /** Form field name. The value is submitted under this name via FormDataController. */
185
+ name?: string;
186
+ /** Disables the control. */
187
+ disabled: boolean;
188
+ /** Read-only: the user cannot change the value, but the value is still submitted. */
189
+ readonly: boolean;
190
+ /** Applies error styling and sets `aria-invalid="true"` on the inner input. */
191
+ invalid: boolean;
192
+ /** Hides the increment/decrement stepper buttons (still steppable via keyboard). */
193
+ hideControls: boolean;
194
+ /**
195
+ * ISO 4217 currency code (e.g. `USD`, `EUR`, `SEK`). Setting it enables the
196
+ * currency convenience: a decorative, locale-aware symbol is rendered into the
197
+ * `start`/`end` slot resolved from `currencyPlacement`, and the currency is
198
+ * folded into the input's accessible description so assistive tech announces it.
199
+ *
200
+ * This is layered on top of the generic `start`/`end` slots — for a fully
201
+ * custom symbol, omit `currency` and slot your own content instead. It is
202
+ * independent of `format`: the symbol lives beside the number rather than in
203
+ * the formatted text, so it composes cleanly with `mask`.
204
+ */
205
+ currency?: string;
206
+ /**
207
+ * Which side the `currency` symbol is placed on. `'auto'` (the default)
208
+ * derives the side from the `locale`/`currency` pair via `Intl` (symbol-first
209
+ * locales like en-US → `start`, symbol-last locales like de-DE → `end`);
210
+ * `'start'`/`'end'` force the side. Has no effect unless `currency` is set.
211
+ */
212
+ currencyPlacement: 'start' | 'end' | 'auto';
213
+ /** The text shown in the input — formatted, unless the user is mid-edit. */
214
+ private inputText;
215
+ /** Whether the user is scrubbing (adds an `is-scrubbing` cursor). */
216
+ private scrubbing;
217
+ /**
218
+ * While the user is actively typing this is `false`, so we don't reformat
219
+ * mid-keystroke. Reset to `true` on blur / keydown-step / button / wheel / scrub.
220
+ */
221
+ private allowInputSync;
222
+ /** Set after the first focus so we only move the caret to the end once. */
223
+ private hasTouchedInput;
224
+ /**
225
+ * Caret/selection a mask asked us to place after it rewrote the text. Applied
226
+ * in `updated()` once Lit has committed the new `.value` (which resets the
227
+ * caret to the end).
228
+ */
229
+ private pendingSelection?;
230
+ private holdStartTimer?;
231
+ private holdTickTimer?;
232
+ private activePointerId?;
233
+ /** When a mouse pointerdown handled the change, suppress the synthetic click. */
234
+ private skipNextClick;
235
+ private scrubAccumulator;
236
+ private scrubMoved;
237
+ private scrubPointerDownTarget;
238
+ private onScrubMove;
239
+ private onScrubUp;
240
+ /** Bound non-passive wheel listener (attached only while wheel scrub is enabled). */
241
+ private onWheel;
242
+ private wheelAttached;
243
+ set form(id: string);
244
+ get form(): HTMLFormElement | null;
245
+ /** The effective lower bound for clamping, mirroring Base UI `minWithDefault`. */
246
+ private get minWithDefault();
247
+ /** The effective upper bound for clamping, mirroring Base UI `maxWithDefault`. */
248
+ private get maxWithDefault();
249
+ /** The base used by `incrementValue` when stepping from empty. */
250
+ private get minWithZeroDefault();
251
+ /**
252
+ * Whether a negative value is allowed, gating the minus sign in the input. A
253
+ * `min` of `0` or higher forbids negatives; an unset or negative `min` allows
254
+ * them (mirroring `minWithDefault`, which backs unset `min` with a value < 0).
255
+ */
256
+ private get allowsNegative();
257
+ /**
258
+ * The numeric step used for stepping; `'any'` behaves as `1`. Guards against a
259
+ * non-positive / NaN `step` set directly as a property (which bypasses the
260
+ * attribute converter) by falling back to `1`.
261
+ */
262
+ private get numericStep();
263
+ /** The PageUp/PageDown + Shift step, guarded against non-positive / NaN values. */
264
+ private get effectiveLargeStep();
265
+ /** The Alt/Option step, guarded against non-positive / NaN values. */
266
+ private get effectiveSmallStep();
267
+ /**
268
+ * The canonical displayed text for a value: the `formatValue` override if set,
269
+ * otherwise the locale `Intl` format. Applied on blur and on paste.
270
+ */
271
+ private formatDisplay;
272
+ connectedCallback(): void;
273
+ disconnectedCallback(): void;
274
+ protected createRenderRoot(): HTMLDivElement | this;
275
+ /**
276
+ * Relocates the host's `slot="start"`/`slot="end"` children into the matching
277
+ * landing zone inside the control. Only direct host children are considered,
278
+ * and a child already sitting in its zone is left untouched, so repeated
279
+ * updates are idempotent and don't disturb focus, caret or pointer state.
280
+ */
281
+ private relocateSlots;
282
+ protected willUpdate(changed: PropertyValues<this>): void;
283
+ protected updated(changed: PropertyValues): void;
284
+ /** Focus the inner input (mirrors combobox `focus`). */
285
+ focus(options?: FocusOptions): void;
286
+ /** The reasons that DON'T clamp when `allowOutOfRange` is set (direct text entry). */
287
+ private isTextReason;
288
+ /**
289
+ * The amount a single step changes the value, mirroring Base UI `getStepAmount`:
290
+ * Alt -> smallStep, Shift -> largeStep, otherwise step.
291
+ */
292
+ private getStepAmount;
293
+ /**
294
+ * Validate, store, format and announce a new value.
295
+ *
296
+ * Returns whether a `change`/value update fired so callers can mirror Base UI's
297
+ * commit semantics.
298
+ */
299
+ private setValue;
300
+ /**
301
+ * Step the value by `amount * direction`, mirroring Base UI `incrementValue`.
302
+ * Stepping from empty starts at `max(0, min ?? 0)`.
303
+ */
304
+ private incrementValue;
305
+ /** Dispatch the committed `change` event with the current value + reason. */
306
+ private commit;
307
+ /**
308
+ * The set of non-numeric keys allowed in the input, mirroring Base UI's
309
+ * `getAllowedNonNumericKeys` (locale decimal/group/currency/percent + signs).
310
+ */
311
+ private getAllowedNonNumericKeys;
312
+ private handleKeydown;
313
+ /**
314
+ * Whether every character in `text` could legitimately be part of a number in
315
+ * the current locale/format, mirroring Base UI `NumberFieldInput.onChange`'s
316
+ * `isValidCharacterString`. The keydown guard only sees physical keystrokes;
317
+ * this catches disallowed characters arriving via IME composition,
318
+ * drag-and-drop, or a programmatic `input.value` set, so they never land in
319
+ * the bound value.
320
+ */
321
+ private isValidCharacterString;
322
+ private handleInput;
323
+ private handlePaste;
324
+ private handleFocus;
325
+ private handleBlur;
326
+ /** Sync the (possibly dirty) input text into `value` before a button press. */
327
+ private commitDirtyInput;
328
+ private handleStepPointerDown;
329
+ private handleStepPointerStop;
330
+ private handleStepClick;
331
+ private stopHold;
332
+ /** Whether the increment button should be disabled. */
333
+ private get incrementDisabled();
334
+ /** Whether the decrement button should be disabled. */
335
+ private get decrementDisabled();
336
+ private attachWheel;
337
+ private detachWheel;
338
+ private handleWheel;
339
+ /** The active element within this node's root (document or shadow root). */
340
+ private getActiveElement;
341
+ private handleScrubPointerDown;
342
+ private handleScrubMove;
343
+ private handleScrubUp;
344
+ private removeScrubListeners;
345
+ private handleScrubTouchStart;
346
+ private ownerWindow;
347
+ /**
348
+ * The `inputmode` for the inner input.
349
+ *
350
+ * Mirrors Base UI's `setDynamicInputModeForIOS` intent: the iOS numeric and
351
+ * decimal soft keyboards have no minus key, so when negatives are explicitly
352
+ * allowed (an explicit `min < 0`) we yield `text` so the user can type a
353
+ * minus sign on iOS. Otherwise the base mode is `numeric` when step/min/max
354
+ * are all integers and min >= 0, and `decimal` when fractional values are in
355
+ * play (so the iOS keyboard exposes a decimal point).
356
+ *
357
+ * Base UI swaps to `text`/`decimal` at runtime only on iOS; we compute the
358
+ * mode statically, and `text`/`decimal` are harmless supersets on platforms
359
+ * whose numeric keyboard already has the relevant keys. We gate the `text`
360
+ * mode on the explicit `min` prop (not the `Number.MIN_SAFE_INTEGER`-backed
361
+ * `minWithDefault`) so an unconstrained field keeps the friendlier `numeric`
362
+ * keypad, matching Base UI's default of `numeric`.
363
+ */
364
+ private get computedInputMode();
365
+ /**
366
+ * The resolved side for the `currency` symbol: the explicit `currencyPlacement`
367
+ * when it is `'start'`/`'end'`, otherwise derived from the locale/currency via
368
+ * `Intl`. Only meaningful when `currency` is set.
369
+ */
370
+ private get resolvedCurrencyPlacement();
371
+ render(): import("lit").TemplateResult<1>;
372
+ }
373
+ declare global {
374
+ interface HTMLElementTagNameMap {
375
+ 'nord-number-field': NumberField;
376
+ }
377
+ }
@@ -0,0 +1,37 @@
1
+ import { NordEvent } from '../common/events.js';
2
+ /**
3
+ * The reason a number field value changed, mirroring Base UI's reason union.
4
+ *
5
+ * - `input-change` — a parseable value was typed (or set programmatically as text)
6
+ * - `input-clear` — the field was emptied
7
+ * - `input-blur` — the value was reformatted (and clamped, if enabled) on blur
8
+ * - `input-paste` — a value was pasted
9
+ * - `keyboard` — an Arrow / Page / Home / End key stepped the value
10
+ * - `increment-press` / `decrement-press` — a stepper button changed the value
11
+ * - `wheel` — the mouse wheel scrubbed the value
12
+ * - `scrub` — the scrub area was dragged
13
+ * - `none` — a programmatic / autofill change with no specific reason
14
+ */
15
+ export type NumberFieldChangeReason = 'input-change' | 'input-clear' | 'input-blur' | 'input-paste' | 'keyboard' | 'increment-press' | 'decrement-press' | 'wheel' | 'scrub' | 'none';
16
+ /**
17
+ * Dispatched when the number field value is committed (on blur, on keyboard
18
+ * step, or on pointer-up after a button hold or scrub drag). Carries the raw
19
+ * numeric value and the reason it changed, mirroring Base UI `onValueCommitted`.
20
+ *
21
+ * The bare event name is `change`, so it composes with native form expectations
22
+ * exactly like the combobox's `change`.
23
+ */
24
+ export declare class NumberFieldChangeEvent extends NordEvent {
25
+ /** The committed numeric value, or `null` when the field is empty. */
26
+ readonly value: number | null;
27
+ /** What triggered the commit. */
28
+ readonly reason: NumberFieldChangeReason;
29
+ static eventName: string;
30
+ constructor(
31
+ /** The committed numeric value, or `null` when the field is empty. */
32
+ value: number | null,
33
+ /** What triggered the commit. */
34
+ reason: NumberFieldChangeReason);
35
+ /** Convenience accessor mirroring `CustomEvent.detail`. */
36
+ get detail(): number | null;
37
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Currency helpers for Number Field's declarative `currency` convenience.
3
+ *
4
+ * Both functions are pure and depend only on `Intl` — no data files, no
5
+ * dependencies — so they are trivially unit-testable. They port NFE's currency
6
+ * logic (`useCurrency.getSuggestedCurrencyPlacement` / `getCurrencySymbol`),
7
+ * with the symbol derived from `Intl` instead of a static currency table.
8
+ */
9
+ /**
10
+ * Resolves which side a currency symbol belongs on for a locale/currency pair,
11
+ * mirroring NFE's `getSuggestedCurrencyPlacement`: format a sample amount and
12
+ * inspect the emitted parts. When the first part is the currency the symbol
13
+ * leads (`'start'`, e.g. en-US `$1,111.10`); otherwise it trails (`'end'`, e.g.
14
+ * de-DE `1.111,10 €`). Falls back to `'start'` if `Intl` throws on the inputs.
15
+ */
16
+ export declare function resolveCurrencyPlacement(locale: string | string[] | undefined, currency: string): 'start' | 'end';
17
+ /**
18
+ * Derives the locale-aware currency symbol from `Intl`, replacing NFE's static
19
+ * `supportedCurrencies.json` lookup. Formats zero with
20
+ * `currencyDisplay: 'narrowSymbol'` and returns the `currency` part (e.g. `$`,
21
+ * `€`, `kr`). Falls back to the raw ISO code when no symbol part is emitted or
22
+ * `Intl` throws on the inputs.
23
+ */
24
+ export declare function getCurrencySymbol(locale: string | string[] | undefined, currency: string): string;