@ni/fast-foundation 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +58 -0
  2. package/dist/dts/accordion/accordion.d.ts +65 -0
  3. package/dist/dts/accordion/accordion.template.d.ts +8 -0
  4. package/dist/dts/accordion/index.d.ts +2 -0
  5. package/dist/dts/accordion-item/accordion-item.d.ts +76 -0
  6. package/dist/dts/accordion-item/accordion-item.template.d.ts +8 -0
  7. package/dist/dts/accordion-item/index.d.ts +2 -0
  8. package/dist/dts/anchor/anchor.d.ts +128 -0
  9. package/dist/dts/anchor/anchor.template.d.ts +8 -0
  10. package/dist/dts/anchor/index.d.ts +2 -0
  11. package/dist/dts/anchored-region/anchored-region-config.d.ts +117 -0
  12. package/dist/dts/anchored-region/anchored-region.d.ts +389 -0
  13. package/dist/dts/anchored-region/anchored-region.template.d.ts +8 -0
  14. package/dist/dts/anchored-region/index.d.ts +3 -0
  15. package/dist/dts/avatar/avatar.d.ts +62 -0
  16. package/dist/dts/avatar/avatar.template.d.ts +8 -0
  17. package/dist/dts/avatar/index.d.ts +2 -0
  18. package/dist/dts/badge/badge.d.ts +36 -0
  19. package/dist/dts/badge/badge.template.d.ts +8 -0
  20. package/dist/dts/badge/index.d.ts +2 -0
  21. package/dist/dts/breadcrumb/breadcrumb.d.ts +27 -0
  22. package/dist/dts/breadcrumb/breadcrumb.template.d.ts +8 -0
  23. package/dist/dts/breadcrumb/index.d.ts +2 -0
  24. package/dist/dts/breadcrumb-item/breadcrumb-item.d.ts +36 -0
  25. package/dist/dts/breadcrumb-item/breadcrumb-item.template.d.ts +8 -0
  26. package/dist/dts/breadcrumb-item/index.d.ts +2 -0
  27. package/dist/dts/button/button.d.ts +167 -0
  28. package/dist/dts/button/button.form-associated.d.ts +16 -0
  29. package/dist/dts/button/button.template.d.ts +8 -0
  30. package/dist/dts/button/index.d.ts +2 -0
  31. package/dist/dts/calendar/calendar.d.ts +178 -0
  32. package/dist/dts/calendar/calendar.template.d.ts +58 -0
  33. package/dist/dts/calendar/date-formatter.d.ts +124 -0
  34. package/dist/dts/calendar/index.d.ts +3 -0
  35. package/dist/dts/card/card.d.ts +10 -0
  36. package/dist/dts/card/card.template.d.ts +8 -0
  37. package/dist/dts/card/index.d.ts +2 -0
  38. package/dist/dts/checkbox/checkbox.d.ts +58 -0
  39. package/dist/dts/checkbox/checkbox.form-associated.d.ts +16 -0
  40. package/dist/dts/checkbox/checkbox.template.d.ts +8 -0
  41. package/dist/dts/checkbox/index.d.ts +2 -0
  42. package/dist/dts/combobox/combobox.d.ts +341 -0
  43. package/dist/dts/combobox/combobox.form-associated.d.ts +16 -0
  44. package/dist/dts/combobox/combobox.options.d.ts +15 -0
  45. package/dist/dts/combobox/combobox.template.d.ts +8 -0
  46. package/dist/dts/combobox/index.d.ts +3 -0
  47. package/dist/dts/data-grid/data-grid-cell.d.ts +62 -0
  48. package/dist/dts/data-grid/data-grid-cell.template.d.ts +9 -0
  49. package/dist/dts/data-grid/data-grid-row.d.ts +119 -0
  50. package/dist/dts/data-grid/data-grid-row.template.d.ts +10 -0
  51. package/dist/dts/data-grid/data-grid.d.ts +218 -0
  52. package/dist/dts/data-grid/data-grid.options.d.ts +49 -0
  53. package/dist/dts/data-grid/data-grid.template.d.ts +10 -0
  54. package/dist/dts/data-grid/index.d.ts +6 -0
  55. package/dist/dts/design-system/component-presentation.d.ts +66 -0
  56. package/dist/dts/design-system/design-system.d.ts +104 -0
  57. package/dist/dts/design-system/index.d.ts +3 -0
  58. package/dist/dts/design-system/registration-context.d.ts +106 -0
  59. package/dist/dts/design-token/custom-property-manager.d.ts +35 -0
  60. package/dist/dts/design-token/design-token.d.ts +139 -0
  61. package/dist/dts/design-token/interfaces.d.ts +31 -0
  62. package/dist/dts/di/di.d.ts +858 -0
  63. package/dist/dts/di/index.d.ts +1 -0
  64. package/dist/dts/dialog/dialog.d.ts +153 -0
  65. package/dist/dts/dialog/dialog.template.d.ts +8 -0
  66. package/dist/dts/dialog/index.d.ts +2 -0
  67. package/dist/dts/directives/reflect-attributes.d.ts +18 -0
  68. package/dist/dts/disclosure/disclosure.d.ts +59 -0
  69. package/dist/dts/disclosure/disclosure.template.d.ts +8 -0
  70. package/dist/dts/disclosure/index.d.ts +2 -0
  71. package/dist/dts/divider/divider.d.ts +28 -0
  72. package/dist/dts/divider/divider.options.d.ts +19 -0
  73. package/dist/dts/divider/divider.template.d.ts +8 -0
  74. package/dist/dts/divider/index.d.ts +2 -0
  75. package/dist/dts/flipper/flipper.d.ts +57 -0
  76. package/dist/dts/flipper/flipper.options.d.ts +13 -0
  77. package/dist/dts/flipper/flipper.template.d.ts +8 -0
  78. package/dist/dts/flipper/index.d.ts +2 -0
  79. package/dist/dts/form-associated/form-associated.d.ts +177 -0
  80. package/dist/dts/form-associated/index.d.ts +1 -0
  81. package/dist/dts/foundation-element/foundation-element.d.ts +120 -0
  82. package/dist/dts/foundation-element/index.d.ts +1 -0
  83. package/dist/dts/horizontal-scroll/horizontal-scroll.d.ts +242 -0
  84. package/dist/dts/horizontal-scroll/horizontal-scroll.template.d.ts +7 -0
  85. package/dist/dts/horizontal-scroll/index.d.ts +2 -0
  86. package/dist/dts/index-rollup.d.ts +2 -0
  87. package/dist/dts/index.d.ts +53 -0
  88. package/dist/dts/interfaces.d.ts +4 -0
  89. package/dist/dts/listbox/index.d.ts +3 -0
  90. package/dist/dts/listbox/listbox.d.ts +314 -0
  91. package/dist/dts/listbox/listbox.element.d.ts +223 -0
  92. package/dist/dts/listbox/listbox.template.d.ts +8 -0
  93. package/dist/dts/listbox-option/index.d.ts +2 -0
  94. package/dist/dts/listbox-option/listbox-option.d.ts +176 -0
  95. package/dist/dts/listbox-option/listbox-option.template.d.ts +8 -0
  96. package/dist/dts/menu/index.d.ts +2 -0
  97. package/dist/dts/menu/menu.d.ts +78 -0
  98. package/dist/dts/menu/menu.template.d.ts +8 -0
  99. package/dist/dts/menu-item/index.d.ts +2 -0
  100. package/dist/dts/menu-item/menu-item.d.ts +160 -0
  101. package/dist/dts/menu-item/menu-item.options.d.ts +29 -0
  102. package/dist/dts/menu-item/menu-item.template.d.ts +10 -0
  103. package/dist/dts/number-field/index.d.ts +2 -0
  104. package/dist/dts/number-field/number-field.d.ts +227 -0
  105. package/dist/dts/number-field/number-field.form-associated.d.ts +16 -0
  106. package/dist/dts/number-field/number-field.template.d.ts +8 -0
  107. package/dist/dts/patterns/aria-global.d.ts +189 -0
  108. package/dist/dts/patterns/index.d.ts +2 -0
  109. package/dist/dts/patterns/start-end.d.ts +65 -0
  110. package/dist/dts/picker/index.d.ts +10 -0
  111. package/dist/dts/picker/picker-list-item.d.ts +38 -0
  112. package/dist/dts/picker/picker-list-item.template.d.ts +8 -0
  113. package/dist/dts/picker/picker-list.d.ts +8 -0
  114. package/dist/dts/picker/picker-list.template.d.ts +8 -0
  115. package/dist/dts/picker/picker-menu-option.d.ts +37 -0
  116. package/dist/dts/picker/picker-menu-option.template.d.ts +8 -0
  117. package/dist/dts/picker/picker-menu.d.ts +46 -0
  118. package/dist/dts/picker/picker-menu.template.d.ts +8 -0
  119. package/dist/dts/picker/picker.d.ts +390 -0
  120. package/dist/dts/picker/picker.form-associated.d.ts +16 -0
  121. package/dist/dts/picker/picker.template.d.ts +8 -0
  122. package/dist/dts/progress/base-progress.d.ts +71 -0
  123. package/dist/dts/progress/index.d.ts +2 -0
  124. package/dist/dts/progress/progress.template.d.ts +8 -0
  125. package/dist/dts/progress-ring/index.d.ts +1 -0
  126. package/dist/dts/progress-ring/progress-ring.template.d.ts +8 -0
  127. package/dist/dts/radio/index.d.ts +2 -0
  128. package/dist/dts/radio/radio.d.ts +70 -0
  129. package/dist/dts/radio/radio.form-associated.d.ts +16 -0
  130. package/dist/dts/radio/radio.template.d.ts +8 -0
  131. package/dist/dts/radio-group/index.d.ts +2 -0
  132. package/dist/dts/radio-group/radio-group.d.ts +101 -0
  133. package/dist/dts/radio-group/radio-group.template.d.ts +8 -0
  134. package/dist/dts/search/index.d.ts +2 -0
  135. package/dist/dts/search/search.d.ts +162 -0
  136. package/dist/dts/search/search.form-associated.d.ts +16 -0
  137. package/dist/dts/search/search.template.d.ts +8 -0
  138. package/dist/dts/select/index.d.ts +3 -0
  139. package/dist/dts/select/select.d.ts +289 -0
  140. package/dist/dts/select/select.form-associated.d.ts +16 -0
  141. package/dist/dts/select/select.options.d.ts +13 -0
  142. package/dist/dts/select/select.template.d.ts +8 -0
  143. package/dist/dts/skeleton/index.d.ts +2 -0
  144. package/dist/dts/skeleton/skeleton.d.ts +47 -0
  145. package/dist/dts/skeleton/skeleton.template.d.ts +8 -0
  146. package/dist/dts/slider/index.d.ts +2 -0
  147. package/dist/dts/slider/slider-utilities.d.ts +5 -0
  148. package/dist/dts/slider/slider.d.ts +230 -0
  149. package/dist/dts/slider/slider.form-associated.d.ts +16 -0
  150. package/dist/dts/slider/slider.template.d.ts +8 -0
  151. package/dist/dts/slider-label/index.d.ts +2 -0
  152. package/dist/dts/slider-label/slider-label.d.ts +81 -0
  153. package/dist/dts/slider-label/slider-label.template.d.ts +8 -0
  154. package/dist/dts/switch/index.d.ts +2 -0
  155. package/dist/dts/switch/switch.d.ts +60 -0
  156. package/dist/dts/switch/switch.form-associated.d.ts +16 -0
  157. package/dist/dts/switch/switch.template.d.ts +8 -0
  158. package/dist/dts/tab/index.d.ts +2 -0
  159. package/dist/dts/tab/tab.d.ts +17 -0
  160. package/dist/dts/tab/tab.template.d.ts +8 -0
  161. package/dist/dts/tab-panel/index.d.ts +2 -0
  162. package/dist/dts/tab-panel/tab-panel.d.ts +10 -0
  163. package/dist/dts/tab-panel/tab-panel.template.d.ts +8 -0
  164. package/dist/dts/tabs/index.d.ts +2 -0
  165. package/dist/dts/tabs/tabs.d.ts +140 -0
  166. package/dist/dts/tabs/tabs.template.d.ts +8 -0
  167. package/dist/dts/test-utilities/fixture.d.ts +89 -0
  168. package/dist/dts/test-utilities/timeout.d.ts +4 -0
  169. package/dist/dts/text-area/index.d.ts +2 -0
  170. package/dist/dts/text-area/text-area.d.ts +149 -0
  171. package/dist/dts/text-area/text-area.form-associated.d.ts +16 -0
  172. package/dist/dts/text-area/text-area.options.d.ts +27 -0
  173. package/dist/dts/text-area/text-area.template.d.ts +8 -0
  174. package/dist/dts/text-field/index.d.ts +2 -0
  175. package/dist/dts/text-field/text-field.d.ts +166 -0
  176. package/dist/dts/text-field/text-field.form-associated.d.ts +16 -0
  177. package/dist/dts/text-field/text-field.options.d.ts +31 -0
  178. package/dist/dts/text-field/text-field.template.d.ts +8 -0
  179. package/dist/dts/toolbar/index.d.ts +2 -0
  180. package/dist/dts/toolbar/toolbar.d.ts +167 -0
  181. package/dist/dts/toolbar/toolbar.template.d.ts +9 -0
  182. package/dist/dts/tooltip/index.d.ts +2 -0
  183. package/dist/dts/tooltip/tooltip.d.ts +239 -0
  184. package/dist/dts/tooltip/tooltip.options.d.ts +69 -0
  185. package/dist/dts/tooltip/tooltip.template.d.ts +8 -0
  186. package/dist/dts/tree-item/index.d.ts +2 -0
  187. package/dist/dts/tree-item/tree-item.d.ts +141 -0
  188. package/dist/dts/tree-item/tree-item.template.d.ts +8 -0
  189. package/dist/dts/tree-view/index.d.ts +2 -0
  190. package/dist/dts/tree-view/tree-view.d.ts +99 -0
  191. package/dist/dts/tree-view/tree-view.template.d.ts +8 -0
  192. package/dist/dts/utilities/apply-mixins.d.ts +6 -0
  193. package/dist/dts/utilities/composed-contains.d.ts +12 -0
  194. package/dist/dts/utilities/composed-parent.d.ts +10 -0
  195. package/dist/dts/utilities/direction.d.ts +7 -0
  196. package/dist/dts/utilities/index.d.ts +8 -0
  197. package/dist/dts/utilities/intersection-service.d.ts +30 -0
  198. package/dist/dts/utilities/match-media-stylesheet-behavior.d.ts +124 -0
  199. package/dist/dts/utilities/property-stylesheet-behavior.d.ts +38 -0
  200. package/dist/dts/utilities/resize-observer.d.ts +31 -0
  201. package/dist/dts/utilities/root-active-element.d.ts +1 -0
  202. package/dist/dts/utilities/style/disabled.d.ts +5 -0
  203. package/dist/dts/utilities/style/display.d.ts +17 -0
  204. package/dist/dts/utilities/style/focus.d.ts +8 -0
  205. package/dist/dts/utilities/style/index.d.ts +3 -0
  206. package/dist/dts/utilities/whitespace-filter.d.ts +9 -0
  207. package/dist/esm/accordion/accordion.js +185 -0
  208. package/dist/esm/accordion/accordion.template.js +11 -0
  209. package/dist/esm/accordion/index.js +2 -0
  210. package/dist/esm/accordion-item/accordion-item.js +72 -0
  211. package/dist/esm/accordion-item/accordion-item.template.js +49 -0
  212. package/dist/esm/accordion-item/index.js +2 -0
  213. package/dist/esm/anchor/anchor.js +85 -0
  214. package/dist/esm/anchor/anchor.template.js +47 -0
  215. package/dist/esm/anchor/index.js +2 -0
  216. package/dist/esm/anchored-region/anchored-region-config.js +59 -0
  217. package/dist/esm/anchored-region/anchored-region.js +964 -0
  218. package/dist/esm/anchored-region/anchored-region.template.js +12 -0
  219. package/dist/esm/anchored-region/index.js +3 -0
  220. package/dist/esm/avatar/avatar.js +39 -0
  221. package/dist/esm/avatar/avatar.template.js +23 -0
  222. package/dist/esm/avatar/index.js +2 -0
  223. package/dist/esm/badge/badge.js +40 -0
  224. package/dist/esm/badge/badge.template.js +12 -0
  225. package/dist/esm/badge/index.js +2 -0
  226. package/dist/esm/breadcrumb/breadcrumb.js +70 -0
  227. package/dist/esm/breadcrumb/breadcrumb.template.js +14 -0
  228. package/dist/esm/breadcrumb/index.js +2 -0
  229. package/dist/esm/breadcrumb-item/breadcrumb-item.js +23 -0
  230. package/dist/esm/breadcrumb-item/breadcrumb-item.template.js +24 -0
  231. package/dist/esm/breadcrumb-item/index.js +2 -0
  232. package/dist/esm/button/button.form-associated.js +15 -0
  233. package/dist/esm/button/button.js +183 -0
  234. package/dist/esm/button/button.template.js +51 -0
  235. package/dist/esm/button/index.js +2 -0
  236. package/dist/esm/calendar/calendar.js +280 -0
  237. package/dist/esm/calendar/calendar.template.js +191 -0
  238. package/dist/esm/calendar/date-formatter.js +144 -0
  239. package/dist/esm/calendar/index.js +3 -0
  240. package/dist/esm/card/card.js +10 -0
  241. package/dist/esm/card/card.template.js +8 -0
  242. package/dist/esm/card/index.js +2 -0
  243. package/dist/esm/checkbox/checkbox.form-associated.js +15 -0
  244. package/dist/esm/checkbox/checkbox.js +75 -0
  245. package/dist/esm/checkbox/checkbox.template.js +35 -0
  246. package/dist/esm/checkbox/index.js +2 -0
  247. package/dist/esm/combobox/combobox.form-associated.js +15 -0
  248. package/dist/esm/combobox/combobox.js +587 -0
  249. package/dist/esm/combobox/combobox.options.js +10 -0
  250. package/dist/esm/combobox/combobox.template.js +66 -0
  251. package/dist/esm/combobox/index.js +3 -0
  252. package/dist/esm/data-grid/data-grid-cell.js +229 -0
  253. package/dist/esm/data-grid/data-grid-cell.template.js +23 -0
  254. package/dist/esm/data-grid/data-grid-row.js +203 -0
  255. package/dist/esm/data-grid/data-grid-row.template.js +47 -0
  256. package/dist/esm/data-grid/data-grid.js +440 -0
  257. package/dist/esm/data-grid/data-grid.options.js +31 -0
  258. package/dist/esm/data-grid/data-grid.template.js +36 -0
  259. package/dist/esm/data-grid/index.js +6 -0
  260. package/dist/esm/design-system/component-presentation.js +86 -0
  261. package/dist/esm/design-system/design-system.js +207 -0
  262. package/dist/esm/design-system/index.js +3 -0
  263. package/dist/esm/design-system/registration-context.js +1 -0
  264. package/dist/esm/design-token/custom-property-manager.js +216 -0
  265. package/dist/esm/design-token/design-token.js +657 -0
  266. package/dist/esm/design-token/interfaces.js +1 -0
  267. package/dist/esm/di/di.js +1341 -0
  268. package/dist/esm/di/index.js +1 -0
  269. package/dist/esm/dialog/dialog.js +280 -0
  270. package/dist/esm/dialog/dialog.template.js +30 -0
  271. package/dist/esm/dialog/index.js +2 -0
  272. package/dist/esm/directives/reflect-attributes.js +88 -0
  273. package/dist/esm/disclosure/disclosure.js +72 -0
  274. package/dist/esm/disclosure/disclosure.template.js +20 -0
  275. package/dist/esm/disclosure/index.js +2 -0
  276. package/dist/esm/divider/divider.js +39 -0
  277. package/dist/esm/divider/divider.options.js +14 -0
  278. package/dist/esm/divider/divider.template.js +8 -0
  279. package/dist/esm/divider/index.js +2 -0
  280. package/dist/esm/flipper/flipper.js +65 -0
  281. package/dist/esm/flipper/flipper.options.js +8 -0
  282. package/dist/esm/flipper/flipper.template.js +30 -0
  283. package/dist/esm/flipper/index.js +2 -0
  284. package/dist/esm/form-associated/form-associated.js +464 -0
  285. package/dist/esm/form-associated/index.js +1 -0
  286. package/dist/esm/foundation-element/foundation-element.js +132 -0
  287. package/dist/esm/foundation-element/index.js +1 -0
  288. package/dist/esm/horizontal-scroll/horizontal-scroll.js +380 -0
  289. package/dist/esm/horizontal-scroll/horizontal-scroll.template.js +62 -0
  290. package/dist/esm/horizontal-scroll/index.js +2 -0
  291. package/dist/esm/index-rollup.js +2 -0
  292. package/dist/esm/index.js +54 -0
  293. package/dist/esm/interfaces.js +1 -0
  294. package/dist/esm/listbox/index.js +3 -0
  295. package/dist/esm/listbox/listbox.element.js +448 -0
  296. package/dist/esm/listbox/listbox.js +528 -0
  297. package/dist/esm/listbox/listbox.template.js +27 -0
  298. package/dist/esm/listbox-option/index.js +2 -0
  299. package/dist/esm/listbox-option/listbox-option.js +200 -0
  300. package/dist/esm/listbox-option/listbox-option.template.js +25 -0
  301. package/dist/esm/menu/index.js +2 -0
  302. package/dist/esm/menu/menu.js +290 -0
  303. package/dist/esm/menu/menu.template.js +15 -0
  304. package/dist/esm/menu-item/index.js +2 -0
  305. package/dist/esm/menu-item/menu-item.js +251 -0
  306. package/dist/esm/menu-item/menu-item.options.js +26 -0
  307. package/dist/esm/menu-item/menu-item.template.js +78 -0
  308. package/dist/esm/number-field/index.js +2 -0
  309. package/dist/esm/number-field/number-field.form-associated.js +15 -0
  310. package/dist/esm/number-field/number-field.js +288 -0
  311. package/dist/esm/number-field/number-field.template.js +84 -0
  312. package/dist/esm/patterns/aria-global.js +70 -0
  313. package/dist/esm/patterns/index.js +2 -0
  314. package/dist/esm/patterns/start-end.js +84 -0
  315. package/dist/esm/picker/index.js +10 -0
  316. package/dist/esm/picker/picker-list-item.js +71 -0
  317. package/dist/esm/picker/picker-list-item.template.js +17 -0
  318. package/dist/esm/picker/picker-list.js +8 -0
  319. package/dist/esm/picker/picker-list.template.js +13 -0
  320. package/dist/esm/picker/picker-menu-option.js +61 -0
  321. package/dist/esm/picker/picker-menu-option.template.js +16 -0
  322. package/dist/esm/picker/picker-menu.js +59 -0
  323. package/dist/esm/picker/picker-menu.template.js +29 -0
  324. package/dist/esm/picker/picker.form-associated.js +15 -0
  325. package/dist/esm/picker/picker.js +759 -0
  326. package/dist/esm/picker/picker.template.js +97 -0
  327. package/dist/esm/progress/base-progress.js +69 -0
  328. package/dist/esm/progress/index.js +2 -0
  329. package/dist/esm/progress/progress.template.js +31 -0
  330. package/dist/esm/progress-ring/index.js +1 -0
  331. package/dist/esm/progress-ring/progress-ring.template.js +45 -0
  332. package/dist/esm/radio/index.js +2 -0
  333. package/dist/esm/radio/radio.form-associated.js +15 -0
  334. package/dist/esm/radio/radio.js +108 -0
  335. package/dist/esm/radio/radio.template.js +31 -0
  336. package/dist/esm/radio-group/index.js +2 -0
  337. package/dist/esm/radio-group/radio-group.js +390 -0
  338. package/dist/esm/radio-group/radio-group.template.js +29 -0
  339. package/dist/esm/search/index.js +2 -0
  340. package/dist/esm/search/search.form-associated.js +15 -0
  341. package/dist/esm/search/search.js +157 -0
  342. package/dist/esm/search/search.template.js +93 -0
  343. package/dist/esm/select/index.js +3 -0
  344. package/dist/esm/select/select.form-associated.js +15 -0
  345. package/dist/esm/select/select.js +490 -0
  346. package/dist/esm/select/select.options.js +8 -0
  347. package/dist/esm/select/select.template.js +72 -0
  348. package/dist/esm/skeleton/index.js +2 -0
  349. package/dist/esm/skeleton/skeleton.js +35 -0
  350. package/dist/esm/skeleton/skeleton.template.js +20 -0
  351. package/dist/esm/slider/index.js +2 -0
  352. package/dist/esm/slider/slider-utilities.js +11 -0
  353. package/dist/esm/slider/slider.form-associated.js +15 -0
  354. package/dist/esm/slider/slider.js +452 -0
  355. package/dist/esm/slider/slider.template.js +40 -0
  356. package/dist/esm/slider-label/index.js +2 -0
  357. package/dist/esm/slider-label/slider-label.js +158 -0
  358. package/dist/esm/slider-label/slider-label.template.js +24 -0
  359. package/dist/esm/switch/index.js +2 -0
  360. package/dist/esm/switch/switch.form-associated.js +15 -0
  361. package/dist/esm/switch/switch.js +79 -0
  362. package/dist/esm/switch/switch.template.js +37 -0
  363. package/dist/esm/tab/index.js +2 -0
  364. package/dist/esm/tab/tab.js +15 -0
  365. package/dist/esm/tab/tab.template.js +10 -0
  366. package/dist/esm/tab-panel/index.js +2 -0
  367. package/dist/esm/tab-panel/tab-panel.js +10 -0
  368. package/dist/esm/tab-panel/tab-panel.template.js +10 -0
  369. package/dist/esm/tabs/index.js +2 -0
  370. package/dist/esm/tabs/tabs.js +375 -0
  371. package/dist/esm/tabs/tabs.template.js +26 -0
  372. package/dist/esm/test-utilities/fixture.js +90 -0
  373. package/dist/esm/test-utilities/timeout.js +13 -0
  374. package/dist/esm/text-area/index.js +2 -0
  375. package/dist/esm/text-area/text-area.form-associated.js +15 -0
  376. package/dist/esm/text-area/text-area.js +146 -0
  377. package/dist/esm/text-area/text-area.options.js +22 -0
  378. package/dist/esm/text-area/text-area.template.js +64 -0
  379. package/dist/esm/text-field/index.js +2 -0
  380. package/dist/esm/text-field/text-field.form-associated.js +15 -0
  381. package/dist/esm/text-field/text-field.js +183 -0
  382. package/dist/esm/text-field/text-field.options.js +26 -0
  383. package/dist/esm/text-field/text-field.template.js +70 -0
  384. package/dist/esm/toolbar/index.js +2 -0
  385. package/dist/esm/toolbar/toolbar.js +271 -0
  386. package/dist/esm/toolbar/toolbar.template.js +37 -0
  387. package/dist/esm/tooltip/index.js +2 -0
  388. package/dist/esm/tooltip/tooltip.js +512 -0
  389. package/dist/esm/tooltip/tooltip.options.js +63 -0
  390. package/dist/esm/tooltip/tooltip.template.js +32 -0
  391. package/dist/esm/tree-item/index.js +2 -0
  392. package/dist/esm/tree-item/tree-item.js +150 -0
  393. package/dist/esm/tree-item/tree-item.template.js +52 -0
  394. package/dist/esm/tree-view/index.js +2 -0
  395. package/dist/esm/tree-view/tree-view.js +268 -0
  396. package/dist/esm/tree-view/tree-view.template.js +18 -0
  397. package/dist/esm/utilities/apply-mixins.js +20 -0
  398. package/dist/esm/utilities/composed-contains.js +22 -0
  399. package/dist/esm/utilities/composed-parent.js +23 -0
  400. package/dist/esm/utilities/direction.js +10 -0
  401. package/dist/esm/utilities/index.js +8 -0
  402. package/dist/esm/utilities/intersection-service.js +91 -0
  403. package/dist/esm/utilities/match-media-stylesheet-behavior.js +140 -0
  404. package/dist/esm/utilities/property-stylesheet-behavior.js +52 -0
  405. package/dist/esm/utilities/resize-observer.js +5 -0
  406. package/dist/esm/utilities/root-active-element.js +8 -0
  407. package/dist/esm/utilities/style/disabled.js +5 -0
  408. package/dist/esm/utilities/style/display.js +14 -0
  409. package/dist/esm/utilities/style/focus.js +9 -0
  410. package/dist/esm/utilities/style/index.js +3 -0
  411. package/dist/esm/utilities/whitespace-filter.js +13 -0
  412. package/dist/fast-foundation.d.ts +9744 -0
  413. package/dist/fast-foundation.js +19097 -0
  414. package/dist/fast-foundation.min.js +19 -0
  415. package/dist/tsdoc-metadata.json +11 -0
  416. package/package.json +101 -0
@@ -0,0 +1,207 @@
1
+ import { FASTElementDefinition } from "@ni/fast-element";
2
+ import { FoundationElement } from "../foundation-element/foundation-element.js";
3
+ import { DI, Registration } from "../di/di.js";
4
+ import { DesignToken } from "../design-token/design-token.js";
5
+ import { ComponentPresentation } from "./component-presentation.js";
6
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
7
+ /**
8
+ * Indicates what to do with an ambiguous (duplicate) element.
9
+ * @public
10
+ */
11
+ export const ElementDisambiguation = Object.freeze({
12
+ /**
13
+ * Skip defining the element but still call the provided callback passed
14
+ * to DesignSystemRegistrationContext.tryDefineElement
15
+ */
16
+ definitionCallbackOnly: null,
17
+ /**
18
+ * Ignore the duplicate element entirely.
19
+ */
20
+ ignoreDuplicate: Symbol(),
21
+ });
22
+ const elementTypesByTag = new Map();
23
+ const elementTagsByType = new Map();
24
+ let rootDesignSystem = null;
25
+ const designSystemKey = DI.createInterface(x => x.cachedCallback(handler => {
26
+ if (rootDesignSystem === null) {
27
+ rootDesignSystem = new DefaultDesignSystem(null, handler);
28
+ }
29
+ return rootDesignSystem;
30
+ }));
31
+ /**
32
+ * An API gateway to design system features.
33
+ * @public
34
+ */
35
+ export const DesignSystem = Object.freeze({
36
+ /**
37
+ * Returns the HTML element name that the type is defined as.
38
+ * @param type - The type to lookup.
39
+ * @public
40
+ */
41
+ tagFor(type) {
42
+ return elementTagsByType.get(type);
43
+ },
44
+ /**
45
+ * Searches the DOM hierarchy for the design system that is responsible
46
+ * for the provided element.
47
+ * @param element - The element to locate the design system for.
48
+ * @returns The located design system.
49
+ * @public
50
+ */
51
+ responsibleFor(element) {
52
+ const owned = element.$$designSystem$$;
53
+ if (owned) {
54
+ return owned;
55
+ }
56
+ const container = DI.findResponsibleContainer(element);
57
+ return container.get(designSystemKey);
58
+ },
59
+ /**
60
+ * Gets the DesignSystem if one is explicitly defined on the provided element;
61
+ * otherwise creates a design system defined directly on the element.
62
+ * @param element - The element to get or create a design system for.
63
+ * @returns The design system.
64
+ * @public
65
+ */
66
+ getOrCreate(node) {
67
+ if (!node) {
68
+ if (rootDesignSystem === null) {
69
+ rootDesignSystem = DI.getOrCreateDOMContainer().get(designSystemKey);
70
+ }
71
+ return rootDesignSystem;
72
+ }
73
+ const owned = node.$$designSystem$$;
74
+ if (owned) {
75
+ return owned;
76
+ }
77
+ const container = DI.getOrCreateDOMContainer(node);
78
+ if (container.has(designSystemKey, false)) {
79
+ return container.get(designSystemKey);
80
+ }
81
+ else {
82
+ const system = new DefaultDesignSystem(node, container);
83
+ container.register(Registration.instance(designSystemKey, system));
84
+ return system;
85
+ }
86
+ },
87
+ });
88
+ function extractTryDefineElementParams(params, elementDefinitionType, elementDefinitionCallback) {
89
+ if (typeof params === "string") {
90
+ return {
91
+ name: params,
92
+ type: elementDefinitionType,
93
+ callback: elementDefinitionCallback,
94
+ };
95
+ }
96
+ else {
97
+ return params;
98
+ }
99
+ }
100
+ class DefaultDesignSystem {
101
+ constructor(owner, container) {
102
+ this.owner = owner;
103
+ this.container = container;
104
+ this.designTokensInitialized = false;
105
+ this.prefix = "fast";
106
+ this.shadowRootMode = undefined;
107
+ this.disambiguate = () => ElementDisambiguation.definitionCallbackOnly;
108
+ if (owner !== null) {
109
+ owner.$$designSystem$$ = this;
110
+ }
111
+ }
112
+ withPrefix(prefix) {
113
+ this.prefix = prefix;
114
+ return this;
115
+ }
116
+ withShadowRootMode(mode) {
117
+ this.shadowRootMode = mode;
118
+ return this;
119
+ }
120
+ withElementDisambiguation(callback) {
121
+ this.disambiguate = callback;
122
+ return this;
123
+ }
124
+ withDesignTokenRoot(root) {
125
+ this.designTokenRoot = root;
126
+ return this;
127
+ }
128
+ register(...registrations) {
129
+ const container = this.container;
130
+ const elementDefinitionEntries = [];
131
+ const disambiguate = this.disambiguate;
132
+ const shadowRootMode = this.shadowRootMode;
133
+ const context = {
134
+ elementPrefix: this.prefix,
135
+ tryDefineElement(params, elementDefinitionType, elementDefinitionCallback) {
136
+ const extractedParams = extractTryDefineElementParams(params, elementDefinitionType, elementDefinitionCallback);
137
+ const { name, callback, baseClass } = extractedParams;
138
+ let { type } = extractedParams;
139
+ let elementName = name;
140
+ let typeFoundByName = elementTypesByTag.get(elementName);
141
+ let needsDefine = true;
142
+ while (typeFoundByName) {
143
+ const result = disambiguate(elementName, type, typeFoundByName);
144
+ switch (result) {
145
+ case ElementDisambiguation.ignoreDuplicate:
146
+ return;
147
+ case ElementDisambiguation.definitionCallbackOnly:
148
+ needsDefine = false;
149
+ typeFoundByName = void 0;
150
+ break;
151
+ default:
152
+ elementName = result;
153
+ typeFoundByName = elementTypesByTag.get(elementName);
154
+ break;
155
+ }
156
+ }
157
+ if (needsDefine) {
158
+ if (elementTagsByType.has(type) || type === FoundationElement) {
159
+ type = class extends type {
160
+ };
161
+ }
162
+ elementTypesByTag.set(elementName, type);
163
+ elementTagsByType.set(type, elementName);
164
+ if (baseClass) {
165
+ elementTagsByType.set(baseClass, elementName);
166
+ }
167
+ }
168
+ elementDefinitionEntries.push(new ElementDefinitionEntry(container, elementName, type, shadowRootMode, callback, needsDefine));
169
+ },
170
+ };
171
+ if (!this.designTokensInitialized) {
172
+ this.designTokensInitialized = true;
173
+ if (this.designTokenRoot !== null) {
174
+ DesignToken.registerRoot(this.designTokenRoot);
175
+ }
176
+ }
177
+ container.registerWithContext(context, ...registrations);
178
+ for (const entry of elementDefinitionEntries) {
179
+ entry.callback(entry);
180
+ if (entry.willDefine && entry.definition !== null) {
181
+ entry.definition.define();
182
+ }
183
+ }
184
+ return this;
185
+ }
186
+ }
187
+ class ElementDefinitionEntry {
188
+ constructor(container, name, type, shadowRootMode, callback, willDefine) {
189
+ this.container = container;
190
+ this.name = name;
191
+ this.type = type;
192
+ this.shadowRootMode = shadowRootMode;
193
+ this.callback = callback;
194
+ this.willDefine = willDefine;
195
+ this.definition = null;
196
+ }
197
+ definePresentation(presentation) {
198
+ ComponentPresentation.define(this.name, presentation, this.container);
199
+ }
200
+ defineElement(definition) {
201
+ this.definition = new FASTElementDefinition(this.type, Object.assign(Object.assign({}, definition), { name: this.name }));
202
+ }
203
+ tagFor(type) {
204
+ return DesignSystem.tagFor(type);
205
+ }
206
+ }
207
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
@@ -0,0 +1,3 @@
1
+ export * from "./design-system.js";
2
+ export * from "./component-presentation.js";
3
+ export * from "./registration-context.js";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,216 @@
1
+ import { __decorate } from "tslib";
2
+ import { DOM, ElementStyles, FASTElement, observable, Observable, prependToAdoptedStyleSheetsSymbol, } from "@ni/fast-element";
3
+ export const defaultElement = document.createElement("div");
4
+ function isFastElement(element) {
5
+ return element instanceof FASTElement;
6
+ }
7
+ class QueuedStyleSheetTarget {
8
+ setProperty(name, value) {
9
+ DOM.queueUpdate(() => this.target.setProperty(name, value));
10
+ }
11
+ removeProperty(name) {
12
+ DOM.queueUpdate(() => this.target.removeProperty(name));
13
+ }
14
+ }
15
+ /**
16
+ * Handles setting properties for a FASTElement using Constructable Stylesheets
17
+ */
18
+ class ConstructableStyleSheetTarget extends QueuedStyleSheetTarget {
19
+ constructor(source) {
20
+ super();
21
+ const sheet = new CSSStyleSheet();
22
+ sheet[prependToAdoptedStyleSheetsSymbol] = true;
23
+ this.target = sheet.cssRules[sheet.insertRule(":host{}")].style;
24
+ source.$fastController.addStyles(ElementStyles.create([sheet]));
25
+ }
26
+ }
27
+ class DocumentStyleSheetTarget extends QueuedStyleSheetTarget {
28
+ constructor() {
29
+ super();
30
+ const sheet = new CSSStyleSheet();
31
+ this.target = sheet.cssRules[sheet.insertRule(":root{}")].style;
32
+ document.adoptedStyleSheets = [
33
+ ...document.adoptedStyleSheets,
34
+ sheet,
35
+ ];
36
+ }
37
+ }
38
+ class HeadStyleElementStyleSheetTarget extends QueuedStyleSheetTarget {
39
+ constructor() {
40
+ super();
41
+ this.style = document.createElement("style");
42
+ document.head.appendChild(this.style);
43
+ const { sheet } = this.style;
44
+ // Because the HTMLStyleElement has been appended,
45
+ // there shouldn't exist a case where `sheet` is null,
46
+ // but if-check it just in case.
47
+ if (sheet) {
48
+ // https://github.com/jsdom/jsdom uses https://github.com/NV/CSSOM for it's CSSOM implementation,
49
+ // which implements the DOM Level 2 spec for CSSStyleSheet where insertRule() requires an index argument.
50
+ const index = sheet.insertRule(":root{}", sheet.cssRules.length);
51
+ this.target = sheet.cssRules[index].style;
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * Handles setting properties for a FASTElement using an HTMLStyleElement
57
+ */
58
+ class StyleElementStyleSheetTarget {
59
+ targetChanged() {
60
+ if (this.target !== null) {
61
+ for (const [key, value] of this.store.entries()) {
62
+ this.target.setProperty(key, value);
63
+ }
64
+ }
65
+ }
66
+ constructor(target) {
67
+ this.store = new Map();
68
+ this.target = null;
69
+ const controller = target.$fastController;
70
+ this.style = document.createElement("style");
71
+ controller.addStyles(this.style);
72
+ Observable.getNotifier(controller).subscribe(this, "isConnected");
73
+ this.handleChange(controller, "isConnected");
74
+ }
75
+ setProperty(name, value) {
76
+ this.store.set(name, value);
77
+ DOM.queueUpdate(() => {
78
+ if (this.target !== null) {
79
+ this.target.setProperty(name, value);
80
+ }
81
+ });
82
+ }
83
+ removeProperty(name) {
84
+ this.store.delete(name);
85
+ DOM.queueUpdate(() => {
86
+ if (this.target !== null) {
87
+ this.target.removeProperty(name);
88
+ }
89
+ });
90
+ }
91
+ handleChange(source, key) {
92
+ // HTMLStyleElement.sheet is null if the element isn't connected to the DOM,
93
+ // so this method reacts to changes in DOM connection for the element hosting
94
+ // the HTMLStyleElement.
95
+ //
96
+ // All rules applied via the CSSOM also get cleared when the element disconnects,
97
+ // so we need to add a new rule each time and populate it with the stored properties
98
+ const { sheet } = this.style;
99
+ if (sheet) {
100
+ // Safari will throw if we try to use the return result of insertRule()
101
+ // to index the rule inline, so store as a const prior to indexing.
102
+ // https://github.com/jsdom/jsdom uses https://github.com/NV/CSSOM for it's CSSOM implementation,
103
+ // which implements the DOM Level 2 spec for CSSStyleSheet where insertRule() requires an index argument.
104
+ const index = sheet.insertRule(":host{}", sheet.cssRules.length);
105
+ this.target = sheet.cssRules[index].style;
106
+ }
107
+ else {
108
+ this.target = null;
109
+ }
110
+ }
111
+ }
112
+ __decorate([
113
+ observable
114
+ ], StyleElementStyleSheetTarget.prototype, "target", void 0);
115
+ /**
116
+ * Handles setting properties for a normal HTMLElement
117
+ */
118
+ class ElementStyleSheetTarget {
119
+ constructor(source) {
120
+ this.target = source.style;
121
+ }
122
+ setProperty(name, value) {
123
+ DOM.queueUpdate(() => this.target.setProperty(name, value));
124
+ }
125
+ removeProperty(name) {
126
+ DOM.queueUpdate(() => this.target.removeProperty(name));
127
+ }
128
+ }
129
+ /**
130
+ * Controls emission for default values. This control is capable
131
+ * of emitting to multiple {@link PropertyTarget | PropertyTargets},
132
+ * and only emits if it has at least one root.
133
+ *
134
+ * @internal
135
+ */
136
+ export class RootStyleSheetTarget {
137
+ setProperty(name, value) {
138
+ RootStyleSheetTarget.properties[name] = value;
139
+ for (const target of RootStyleSheetTarget.roots.values()) {
140
+ PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(target)).setProperty(name, value);
141
+ }
142
+ }
143
+ removeProperty(name) {
144
+ delete RootStyleSheetTarget.properties[name];
145
+ for (const target of RootStyleSheetTarget.roots.values()) {
146
+ PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(target)).removeProperty(name);
147
+ }
148
+ }
149
+ static registerRoot(root) {
150
+ const { roots } = RootStyleSheetTarget;
151
+ if (!roots.has(root)) {
152
+ roots.add(root);
153
+ const target = PropertyTargetManager.getOrCreate(this.normalizeRoot(root));
154
+ for (const key in RootStyleSheetTarget.properties) {
155
+ target.setProperty(key, RootStyleSheetTarget.properties[key]);
156
+ }
157
+ }
158
+ }
159
+ static unregisterRoot(root) {
160
+ const { roots } = RootStyleSheetTarget;
161
+ if (roots.has(root)) {
162
+ roots.delete(root);
163
+ const target = PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(root));
164
+ for (const key in RootStyleSheetTarget.properties) {
165
+ target.removeProperty(key);
166
+ }
167
+ }
168
+ }
169
+ /**
170
+ * Returns the document when provided the default element,
171
+ * otherwise is a no-op
172
+ * @param root - the root to normalize
173
+ */
174
+ static normalizeRoot(root) {
175
+ return root === defaultElement ? document : root;
176
+ }
177
+ }
178
+ RootStyleSheetTarget.roots = new Set();
179
+ RootStyleSheetTarget.properties = {};
180
+ // Caches PropertyTarget instances
181
+ const propertyTargetCache = new WeakMap();
182
+ // Use Constructable StyleSheets for FAST elements when supported, otherwise use
183
+ // HTMLStyleElement instances
184
+ const propertyTargetCtor = DOM.supportsAdoptedStyleSheets
185
+ ? ConstructableStyleSheetTarget
186
+ : StyleElementStyleSheetTarget;
187
+ /**
188
+ * Manages creation and caching of PropertyTarget instances.
189
+ *
190
+ * @internal
191
+ */
192
+ export const PropertyTargetManager = Object.freeze({
193
+ getOrCreate(source) {
194
+ if (propertyTargetCache.has(source)) {
195
+ /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
196
+ return propertyTargetCache.get(source);
197
+ }
198
+ let target;
199
+ if (source === defaultElement) {
200
+ target = new RootStyleSheetTarget();
201
+ }
202
+ else if (source instanceof Document) {
203
+ target = DOM.supportsAdoptedStyleSheets
204
+ ? new DocumentStyleSheetTarget()
205
+ : new HeadStyleElementStyleSheetTarget();
206
+ }
207
+ else if (isFastElement(source)) {
208
+ target = new propertyTargetCtor(source);
209
+ }
210
+ else {
211
+ target = new ElementStyleSheetTarget(source);
212
+ }
213
+ propertyTargetCache.set(source, target);
214
+ return target;
215
+ },
216
+ });