@emuanalytics/flow-rdf-ui 4.0.4 → 4.0.6

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 (355) hide show
  1. package/dist/components/alert/alert.component.mjs +202 -0
  2. package/dist/components/alert/alert.mjs +5 -0
  3. package/dist/components/alert/alert.styles.mjs +107 -0
  4. package/dist/components/animation/animation.component.mjs +207 -0
  5. package/dist/components/animation/animation.mjs +5 -0
  6. package/dist/components/animation/animation.styles.mjs +12 -0
  7. package/dist/components/animation/animations.mjs +11 -0
  8. package/dist/components/avatar/avatar.component.mjs +95 -0
  9. package/dist/components/avatar/avatar.mjs +5 -0
  10. package/dist/components/avatar/avatar.styles.mjs +70 -0
  11. package/dist/components/badge/badge.component.mjs +62 -0
  12. package/dist/components/badge/badge.mjs +5 -0
  13. package/dist/components/badge/badge.styles.mjs +105 -0
  14. package/dist/components/breadcrumb/breadcrumb.component.mjs +82 -0
  15. package/dist/components/breadcrumb/breadcrumb.mjs +5 -0
  16. package/dist/components/breadcrumb/breadcrumb.styles.mjs +14 -0
  17. package/dist/components/breadcrumb-item/breadcrumb-item.component.mjs +73 -0
  18. package/dist/components/breadcrumb-item/breadcrumb-item.mjs +5 -0
  19. package/dist/components/breadcrumb-item/breadcrumb-item.styles.mjs +90 -0
  20. package/dist/components/button/button.component.mjs +310 -0
  21. package/dist/components/button/button.mjs +5 -0
  22. package/dist/components/button/button.styles.mjs +690 -0
  23. package/dist/components/button-group/button-group.component.mjs +108 -0
  24. package/dist/components/button-group/button-group.mjs +5 -0
  25. package/dist/components/button-group/button-group.styles.mjs +21 -0
  26. package/dist/components/calendar/calendar.component.mjs +320 -0
  27. package/dist/components/calendar/calendar.mjs +5 -0
  28. package/dist/components/calendar/calendar.styles.mjs +145 -0
  29. package/dist/components/card/card.component.mjs +33 -0
  30. package/dist/components/card/card.mjs +5 -0
  31. package/dist/components/card/card.styles.mjs +73 -0
  32. package/dist/components/carousel/autoplay-controller.mjs +56 -0
  33. package/dist/components/carousel/carousel.component.mjs +406 -0
  34. package/dist/components/carousel/carousel.mjs +5 -0
  35. package/dist/components/carousel/carousel.styles.mjs +162 -0
  36. package/dist/components/carousel/scroll-controller.mjs +148 -0
  37. package/dist/components/carousel-item/carousel-item.component.mjs +22 -0
  38. package/dist/components/carousel-item/carousel-item.mjs +5 -0
  39. package/dist/components/carousel-item/carousel-item.styles.mjs +28 -0
  40. package/dist/components/chart/chart.component.mjs +82 -0
  41. package/dist/components/chart/chart.mjs +5 -0
  42. package/dist/components/chart/chart.styles.mjs +80 -0
  43. package/dist/components/chart/chartjs-plugins/interaction.interpolate.mjs +80 -0
  44. package/dist/components/chart/chartjs-plugins/plugin.flow-ui-colors.mjs +135 -0
  45. package/dist/components/chart/chartjs-plugins/positioner.cursor.mjs +14 -0
  46. package/dist/components/chart/chartjs-plugins/symlog.scale.mjs +42 -0
  47. package/dist/components/chart/chartjs-support.mjs +59 -0
  48. package/dist/components/checkbox/checkbox.component.mjs +246 -0
  49. package/dist/components/checkbox/checkbox.mjs +5 -0
  50. package/dist/components/checkbox/checkbox.styles.mjs +177 -0
  51. package/dist/components/color-mapper/color-mapper.component.mjs +260 -0
  52. package/dist/components/color-mapper/color-mapper.mjs +5 -0
  53. package/dist/components/color-mapper/color-mapper.styles.mjs +92 -0
  54. package/dist/components/color-mapper/helpers.mjs +55 -0
  55. package/dist/components/color-picker/color-picker.component.mjs +919 -0
  56. package/dist/components/color-picker/color-picker.mjs +5 -0
  57. package/dist/components/color-picker/color-picker.styles.mjs +337 -0
  58. package/dist/components/color-stop/color-stop.component.mjs +289 -0
  59. package/dist/components/color-stop/color-stop.mjs +5 -0
  60. package/dist/components/color-stop/color-stop.styles.mjs +103 -0
  61. package/dist/components/date-time-picker/date-time-picker.component.mjs +532 -0
  62. package/dist/components/date-time-picker/date-time-picker.mjs +5 -0
  63. package/dist/components/date-time-picker/date-time-picker.styles.mjs +260 -0
  64. package/dist/components/details/details.component.mjs +194 -0
  65. package/dist/components/details/details.mjs +5 -0
  66. package/dist/components/details/details.styles.mjs +85 -0
  67. package/dist/components/dialog/dialog.component.mjs +256 -0
  68. package/dist/components/dialog/dialog.mjs +5 -0
  69. package/dist/components/dialog/dialog.styles.mjs +125 -0
  70. package/dist/components/divider/divider.component.mjs +45 -0
  71. package/dist/components/divider/divider.mjs +5 -0
  72. package/dist/components/divider/divider.styles.mjs +34 -0
  73. package/dist/components/drawer/drawer.component.mjs +354 -0
  74. package/dist/components/drawer/drawer.mjs +5 -0
  75. package/dist/components/drawer/drawer.styles.mjs +161 -0
  76. package/dist/components/dropdown/dropdown.component.mjs +381 -0
  77. package/dist/components/dropdown/dropdown.mjs +5 -0
  78. package/dist/components/dropdown/dropdown.styles.mjs +56 -0
  79. package/dist/components/gauge/gauge.component.mjs +151 -0
  80. package/dist/components/gauge/gauge.mjs +5 -0
  81. package/dist/components/gauge/gauge.styles.mjs +127 -0
  82. package/dist/components/icon/icon.component.mjs +146 -0
  83. package/dist/components/icon/icon.mjs +5 -0
  84. package/dist/components/icon/icon.styles.mjs +35 -0
  85. package/dist/components/icon/library.default.mjs +38 -0
  86. package/dist/components/icon/library.mjs +38 -0
  87. package/dist/components/icon/library.system.mjs +158 -0
  88. package/dist/components/icon-button/icon-button.component.mjs +239 -0
  89. package/dist/components/icon-button/icon-button.mjs +5 -0
  90. package/dist/components/icon-button/icon-button.styles.mjs +81 -0
  91. package/dist/components/input/input.component.mjs +574 -0
  92. package/dist/components/input/input.mjs +5 -0
  93. package/dist/components/input/input.styles.mjs +310 -0
  94. package/dist/components/map/map.component.mjs +196 -0
  95. package/dist/components/map/map.mjs +5 -0
  96. package/dist/components/map/map.styles.mjs +90 -0
  97. package/dist/components/menu/menu.component.mjs +125 -0
  98. package/dist/components/menu/menu.mjs +5 -0
  99. package/dist/components/menu/menu.styles.mjs +23 -0
  100. package/dist/components/menu-item/menu-item.component.mjs +143 -0
  101. package/dist/components/menu-item/menu-item.mjs +5 -0
  102. package/dist/components/menu-item/menu-item.styles.mjs +103 -0
  103. package/dist/components/menu-label/menu-label.component.mjs +14 -0
  104. package/dist/components/menu-label/menu-label.mjs +5 -0
  105. package/dist/components/menu-label/menu-label.styles.mjs +24 -0
  106. package/dist/components/mutation-observer/mutation-observer.component.mjs +115 -0
  107. package/dist/components/mutation-observer/mutation-observer.mjs +5 -0
  108. package/dist/components/mutation-observer/mutation-observer.styles.mjs +12 -0
  109. package/dist/components/option/option.component.mjs +152 -0
  110. package/dist/components/option/option.mjs +5 -0
  111. package/dist/components/option/option.styles.mjs +102 -0
  112. package/dist/components/panel/panel.component.mjs +90 -0
  113. package/dist/components/panel/panel.mjs +5 -0
  114. package/dist/components/panel/panel.styles.mjs +51 -0
  115. package/dist/components/panel-header/panel-header.component.mjs +131 -0
  116. package/dist/components/panel-header/panel-header.mjs +5 -0
  117. package/dist/components/panel-header/panel-header.styles.mjs +67 -0
  118. package/dist/components/popup/popup.component.mjs +420 -0
  119. package/dist/components/popup/popup.mjs +5 -0
  120. package/dist/components/popup/popup.styles.mjs +63 -0
  121. package/dist/components/progress-bar/progress-bar.component.mjs +70 -0
  122. package/dist/components/progress-bar/progress-bar.mjs +5 -0
  123. package/dist/components/progress-bar/progress-bar.styles.mjs +87 -0
  124. package/dist/components/progress-ring/progress-ring.component.mjs +71 -0
  125. package/dist/components/progress-ring/progress-ring.mjs +5 -0
  126. package/dist/components/progress-ring/progress-ring.styles.mjs +72 -0
  127. package/dist/components/query-builder/converters/flow-query-converters.mjs +111 -0
  128. package/dist/components/query-builder/converters/map-layer-filter-converter.mjs +99 -0
  129. package/dist/components/query-builder/default-value-templates.mjs +151 -0
  130. package/dist/components/query-builder/helpers.mjs +42 -0
  131. package/dist/components/query-builder/query-builder.component.mjs +466 -0
  132. package/dist/components/query-builder/query-builder.mjs +5 -0
  133. package/dist/components/query-builder/query-builder.styles.mjs +261 -0
  134. package/dist/components/radio/radio.component.mjs +144 -0
  135. package/dist/components/radio/radio.mjs +5 -0
  136. package/dist/components/radio/radio.styles.mjs +164 -0
  137. package/dist/components/radio-group/radio-group.component.mjs +310 -0
  138. package/dist/components/radio-group/radio-group.mjs +5 -0
  139. package/dist/components/radio-group/radio-group.styles.mjs +49 -0
  140. package/dist/components/range/range.component.mjs +324 -0
  141. package/dist/components/range/range.mjs +5 -0
  142. package/dist/components/range/range.styles.mjs +233 -0
  143. package/dist/components/resize-observer/resize-observer.component.mjs +80 -0
  144. package/dist/components/resize-observer/resize-observer.mjs +5 -0
  145. package/dist/components/resize-observer/resize-observer.styles.mjs +12 -0
  146. package/dist/components/scroll-view/overlay-scrollbar.styles.mjs +686 -0
  147. package/dist/components/scroll-view/scroll-view.component.mjs +128 -0
  148. package/dist/components/scroll-view/scroll-view.mjs +5 -0
  149. package/dist/components/scroll-view/scroll-view.styles.mjs +57 -0
  150. package/dist/components/select/select.component.mjs +785 -0
  151. package/dist/components/select/select.mjs +5 -0
  152. package/dist/components/select/select.styles.mjs +339 -0
  153. package/dist/components/spinner/spinner.component.mjs +22 -0
  154. package/dist/components/spinner/spinner.mjs +5 -0
  155. package/dist/components/spinner/spinner.styles.mjs +64 -0
  156. package/dist/components/split-view/split-view.component.mjs +500 -0
  157. package/dist/components/split-view/split-view.mjs +5 -0
  158. package/dist/components/split-view/split-view.styles.mjs +33 -0
  159. package/dist/components/split-view-divider/split-view-divider.component.mjs +98 -0
  160. package/dist/components/split-view-divider/split-view-divider.mjs +5 -0
  161. package/dist/components/split-view-divider/split-view-divider.styles.mjs +96 -0
  162. package/dist/components/split-view-pane/split-view-pane.component.mjs +126 -0
  163. package/dist/components/split-view-pane/split-view-pane.mjs +5 -0
  164. package/dist/components/split-view-pane/split-view-pane.styles.mjs +49 -0
  165. package/dist/components/split-view-toggle-button/split-view-toggle-button.component.mjs +76 -0
  166. package/dist/components/split-view-toggle-button/split-view-toggle-button.mjs +5 -0
  167. package/dist/components/split-view-toggle-button/split-view-toggle-button.styles.mjs +40 -0
  168. package/dist/components/stepper/stepper.component.mjs +139 -0
  169. package/dist/components/stepper/stepper.mjs +5 -0
  170. package/dist/components/stepper/stepper.styles.mjs +103 -0
  171. package/dist/components/stepper-panel/stepper-panel.component.mjs +76 -0
  172. package/dist/components/stepper-panel/stepper-panel.mjs +5 -0
  173. package/dist/components/stepper-panel/stepper-panel.styles.mjs +22 -0
  174. package/dist/components/switch/switch.component.mjs +211 -0
  175. package/dist/components/switch/switch.mjs +5 -0
  176. package/dist/components/switch/switch.styles.mjs +166 -0
  177. package/dist/components/tab/tab.component.mjs +159 -0
  178. package/dist/components/tab/tab.mjs +5 -0
  179. package/dist/components/tab/tab.styles.mjs +107 -0
  180. package/dist/components/tab-group/tab-group.component.mjs +402 -0
  181. package/dist/components/tab-group/tab-group.mjs +5 -0
  182. package/dist/components/tab-group/tab-group.styles.mjs +386 -0
  183. package/dist/components/tab-panel/tab-panel.component.mjs +72 -0
  184. package/dist/components/tab-panel/tab-panel.mjs +5 -0
  185. package/dist/components/tab-panel/tab-panel.styles.mjs +55 -0
  186. package/dist/components/tag/tag.component.mjs +94 -0
  187. package/dist/components/tag/tag.mjs +5 -0
  188. package/dist/components/tag/tag.styles.mjs +130 -0
  189. package/dist/components/textarea/textarea.component.mjs +359 -0
  190. package/dist/components/textarea/textarea.mjs +5 -0
  191. package/dist/components/textarea/textarea.styles.mjs +171 -0
  192. package/dist/components/timer/ticker.mjs +78 -0
  193. package/dist/components/timer/timer.component.mjs +293 -0
  194. package/dist/components/timer/timer.mjs +5 -0
  195. package/dist/components/timer/timer.styles.mjs +94 -0
  196. package/dist/components/tool-button/tool-button.component.mjs +208 -0
  197. package/dist/components/tool-button/tool-button.mjs +5 -0
  198. package/dist/components/tool-button/tool-button.styles.mjs +251 -0
  199. package/dist/components/tool-button-group/tool-button-group.component.mjs +347 -0
  200. package/dist/components/tool-button-group/tool-button-group.mjs +5 -0
  201. package/dist/components/tool-button-group/tool-button-group.styles.mjs +59 -0
  202. package/dist/components/tooltip/tooltip.component.mjs +259 -0
  203. package/dist/components/tooltip/tooltip.mjs +5 -0
  204. package/dist/components/tooltip/tooltip.styles.mjs +57 -0
  205. package/dist/components/tree/tree.component.mjs +368 -0
  206. package/dist/components/tree/tree.mjs +5 -0
  207. package/dist/components/tree/tree.styles.mjs +41 -0
  208. package/dist/components/tree-item/tree-item.component.mjs +324 -0
  209. package/dist/components/tree-item/tree-item.mjs +5 -0
  210. package/dist/components/tree-item/tree-item.styles.mjs +178 -0
  211. package/dist/components/visually-hidden/visually-hidden.component.mjs +14 -0
  212. package/dist/components/visually-hidden/visually-hidden.mjs +5 -0
  213. package/dist/components/visually-hidden/visually-hidden.styles.mjs +20 -0
  214. package/dist/custom-elements.json +6494 -6508
  215. package/dist/index.d.mts +141 -132
  216. package/dist/index.d.ts +141 -132
  217. package/dist/index.mjs +78 -25094
  218. package/dist/internal/animate.mjs +47 -0
  219. package/dist/internal/animations/attention_seekers/bounce.mjs +17 -0
  220. package/dist/internal/animations/attention_seekers/flash.mjs +9 -0
  221. package/dist/internal/animations/attention_seekers/headShake.mjs +10 -0
  222. package/dist/internal/animations/attention_seekers/heartBeat.mjs +9 -0
  223. package/dist/internal/animations/attention_seekers/jello.mjs +14 -0
  224. package/dist/internal/animations/attention_seekers/pulse.mjs +7 -0
  225. package/dist/internal/animations/attention_seekers/rubberBand.mjs +11 -0
  226. package/dist/internal/animations/attention_seekers/shake.mjs +15 -0
  227. package/dist/internal/animations/attention_seekers/shakeX.mjs +15 -0
  228. package/dist/internal/animations/attention_seekers/shakeY.mjs +15 -0
  229. package/dist/internal/animations/attention_seekers/swing.mjs +9 -0
  230. package/dist/internal/animations/attention_seekers/tada.mjs +15 -0
  231. package/dist/internal/animations/attention_seekers/wobble.mjs +11 -0
  232. package/dist/internal/animations/back_entrances/backInDown.mjs +7 -0
  233. package/dist/internal/animations/back_entrances/backInLeft.mjs +7 -0
  234. package/dist/internal/animations/back_entrances/backInRight.mjs +7 -0
  235. package/dist/internal/animations/back_entrances/backInUp.mjs +7 -0
  236. package/dist/internal/animations/back_exits/backOutDown.mjs +7 -0
  237. package/dist/internal/animations/back_exits/backOutLeft.mjs +7 -0
  238. package/dist/internal/animations/back_exits/backOutRight.mjs +7 -0
  239. package/dist/internal/animations/back_exits/backOutUp.mjs +7 -0
  240. package/dist/internal/animations/bouncing_entrances/bounceIn.mjs +16 -0
  241. package/dist/internal/animations/bouncing_entrances/bounceInDown.mjs +14 -0
  242. package/dist/internal/animations/bouncing_entrances/bounceInLeft.mjs +14 -0
  243. package/dist/internal/animations/bouncing_entrances/bounceInRight.mjs +14 -0
  244. package/dist/internal/animations/bouncing_entrances/bounceInUp.mjs +14 -0
  245. package/dist/internal/animations/bouncing_exits/bounceOut.mjs +8 -0
  246. package/dist/internal/animations/bouncing_exits/bounceOutDown.mjs +8 -0
  247. package/dist/internal/animations/bouncing_exits/bounceOutLeft.mjs +6 -0
  248. package/dist/internal/animations/bouncing_exits/bounceOutRight.mjs +6 -0
  249. package/dist/internal/animations/bouncing_exits/bounceOutUp.mjs +8 -0
  250. package/dist/internal/animations/easings/easings.mjs +33 -0
  251. package/dist/internal/animations/fading_entrances/fadeIn.mjs +6 -0
  252. package/dist/internal/animations/fading_entrances/fadeInBottomLeft.mjs +6 -0
  253. package/dist/internal/animations/fading_entrances/fadeInBottomRight.mjs +6 -0
  254. package/dist/internal/animations/fading_entrances/fadeInDown.mjs +6 -0
  255. package/dist/internal/animations/fading_entrances/fadeInDownBig.mjs +6 -0
  256. package/dist/internal/animations/fading_entrances/fadeInLeft.mjs +6 -0
  257. package/dist/internal/animations/fading_entrances/fadeInLeftBig.mjs +6 -0
  258. package/dist/internal/animations/fading_entrances/fadeInRight.mjs +6 -0
  259. package/dist/internal/animations/fading_entrances/fadeInRightBig.mjs +6 -0
  260. package/dist/internal/animations/fading_entrances/fadeInTopLeft.mjs +6 -0
  261. package/dist/internal/animations/fading_entrances/fadeInTopRight.mjs +6 -0
  262. package/dist/internal/animations/fading_entrances/fadeInUp.mjs +6 -0
  263. package/dist/internal/animations/fading_entrances/fadeInUpBig.mjs +6 -0
  264. package/dist/internal/animations/fading_exits/fadeOut.mjs +6 -0
  265. package/dist/internal/animations/fading_exits/fadeOutBottomLeft.mjs +6 -0
  266. package/dist/internal/animations/fading_exits/fadeOutBottomRight.mjs +6 -0
  267. package/dist/internal/animations/fading_exits/fadeOutDown.mjs +6 -0
  268. package/dist/internal/animations/fading_exits/fadeOutDownBig.mjs +6 -0
  269. package/dist/internal/animations/fading_exits/fadeOutLeft.mjs +6 -0
  270. package/dist/internal/animations/fading_exits/fadeOutLeftBig.mjs +6 -0
  271. package/dist/internal/animations/fading_exits/fadeOutRight.mjs +6 -0
  272. package/dist/internal/animations/fading_exits/fadeOutRightBig.mjs +6 -0
  273. package/dist/internal/animations/fading_exits/fadeOutTopLeft.mjs +6 -0
  274. package/dist/internal/animations/fading_exits/fadeOutTopRight.mjs +6 -0
  275. package/dist/internal/animations/fading_exits/fadeOutUp.mjs +6 -0
  276. package/dist/internal/animations/fading_exits/fadeOutUpBig.mjs +6 -0
  277. package/dist/internal/animations/flippers/flip.mjs +29 -0
  278. package/dist/internal/animations/flippers/flipInX.mjs +9 -0
  279. package/dist/internal/animations/flippers/flipInY.mjs +9 -0
  280. package/dist/internal/animations/flippers/flipOutX.mjs +7 -0
  281. package/dist/internal/animations/flippers/flipOutY.mjs +7 -0
  282. package/dist/internal/animations/index.mjs +99 -0
  283. package/dist/internal/animations/lightspeed/lightSpeedInLeft.mjs +8 -0
  284. package/dist/internal/animations/lightspeed/lightSpeedInRight.mjs +8 -0
  285. package/dist/internal/animations/lightspeed/lightSpeedOutLeft.mjs +6 -0
  286. package/dist/internal/animations/lightspeed/lightSpeedOutRight.mjs +6 -0
  287. package/dist/internal/animations/rotating_entrances/rotateIn.mjs +6 -0
  288. package/dist/internal/animations/rotating_entrances/rotateInDownLeft.mjs +6 -0
  289. package/dist/internal/animations/rotating_entrances/rotateInDownRight.mjs +6 -0
  290. package/dist/internal/animations/rotating_entrances/rotateInUpLeft.mjs +6 -0
  291. package/dist/internal/animations/rotating_entrances/rotateInUpRight.mjs +6 -0
  292. package/dist/internal/animations/rotating_exits/rotateOut.mjs +6 -0
  293. package/dist/internal/animations/rotating_exits/rotateOutDownLeft.mjs +6 -0
  294. package/dist/internal/animations/rotating_exits/rotateOutDownRight.mjs +6 -0
  295. package/dist/internal/animations/rotating_exits/rotateOutUpLeft.mjs +6 -0
  296. package/dist/internal/animations/rotating_exits/rotateOutUpRight.mjs +6 -0
  297. package/dist/internal/animations/sliding_entrances/slideInDown.mjs +6 -0
  298. package/dist/internal/animations/sliding_entrances/slideInLeft.mjs +6 -0
  299. package/dist/internal/animations/sliding_entrances/slideInRight.mjs +6 -0
  300. package/dist/internal/animations/sliding_entrances/slideInUp.mjs +6 -0
  301. package/dist/internal/animations/sliding_exits/slideOutDown.mjs +6 -0
  302. package/dist/internal/animations/sliding_exits/slideOutLeft.mjs +6 -0
  303. package/dist/internal/animations/sliding_exits/slideOutRight.mjs +6 -0
  304. package/dist/internal/animations/sliding_exits/slideOutUp.mjs +6 -0
  305. package/dist/internal/animations/specials/hinge.mjs +10 -0
  306. package/dist/internal/animations/specials/jackInTheBox.mjs +8 -0
  307. package/dist/internal/animations/specials/rollIn.mjs +6 -0
  308. package/dist/internal/animations/specials/rollOut.mjs +6 -0
  309. package/dist/internal/animations/zooming_entrances/zoomIn.mjs +6 -0
  310. package/dist/internal/animations/zooming_entrances/zoomInDown.mjs +16 -0
  311. package/dist/internal/animations/zooming_entrances/zoomInLeft.mjs +16 -0
  312. package/dist/internal/animations/zooming_entrances/zoomInRight.mjs +16 -0
  313. package/dist/internal/animations/zooming_entrances/zoomInUp.mjs +16 -0
  314. package/dist/internal/animations/zooming_exits/zoomOut.mjs +7 -0
  315. package/dist/internal/animations/zooming_exits/zoomOutDown.mjs +16 -0
  316. package/dist/internal/animations/zooming_exits/zoomOutLeft.mjs +6 -0
  317. package/dist/internal/animations/zooming_exits/zoomOutRight.mjs +6 -0
  318. package/dist/internal/animations/zooming_exits/zoomOutUp.mjs +16 -0
  319. package/dist/internal/boolean.mjs +17 -0
  320. package/dist/internal/datetime.mjs +65 -0
  321. package/dist/internal/debounce.mjs +14 -0
  322. package/dist/internal/default-value.mjs +21 -0
  323. package/dist/internal/drag.mjs +30 -0
  324. package/dist/internal/ensure-array.mjs +16 -0
  325. package/dist/internal/event.mjs +13 -0
  326. package/dist/internal/flow-ui-rdf-element.mjs +61 -0
  327. package/dist/internal/form.mjs +264 -0
  328. package/dist/internal/localize.mjs +124 -0
  329. package/dist/internal/math.mjs +12 -0
  330. package/dist/internal/modal.mjs +52 -0
  331. package/dist/internal/offset.mjs +8 -0
  332. package/dist/internal/orderby.mjs +18 -0
  333. package/dist/internal/scroll.mjs +47 -0
  334. package/dist/internal/slot.mjs +59 -0
  335. package/dist/internal/string.mjs +5 -0
  336. package/dist/internal/tabbable.mjs +49 -0
  337. package/dist/internal/throttle.mjs +28 -0
  338. package/dist/internal/type-checks.mjs +16 -0
  339. package/dist/internal/watch.mjs +27 -0
  340. package/dist/package.json.mjs +3 -0
  341. package/dist/public-api.mjs +10 -0
  342. package/dist/styles/component.styles.mjs +19 -0
  343. package/dist/styles/form-control.styles.mjs +63 -0
  344. package/dist/translations/en.mjs +34 -0
  345. package/dist/utilities/animation-registry.mjs +33 -0
  346. package/dist/utilities/announce.mjs +12 -0
  347. package/dist/utilities/locale.mjs +10 -0
  348. package/dist/utilities/localize.mjs +7 -0
  349. package/dist/utilities/register-components.mjs +203 -0
  350. package/dist/vscode.html-custom-data.json +429 -429
  351. package/package.json +5 -8
  352. package/dist/icons/index.cjs +0 -4053
  353. package/dist/icons/index.d.cts +0 -2027
  354. package/dist/index.cjs +0 -25187
  355. package/dist/index.d.cts +0 -5678
@@ -0,0 +1,785 @@
1
+ import { html } from 'lit';
2
+ import { query, state, property } from 'lit/decorators.js';
3
+ import { classMap } from 'lit/directives/class-map.js';
4
+ import { ifDefined } from 'lit/directives/if-defined.js';
5
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
6
+ import { stopAnimations, animateTo } from '../../internal/animate.mjs';
7
+ import { boolean } from '../../internal/boolean.mjs';
8
+ import { defaultValue } from '../../internal/default-value.mjs';
9
+ import { waitForEvent } from '../../internal/event.mjs';
10
+ import { FlowRdfFormControl } from '../../internal/flow-ui-rdf-element.mjs';
11
+ import { FormControlController } from '../../internal/form.mjs';
12
+ import { scrollIntoView } from '../../internal/scroll.mjs';
13
+ import { HasSlotController } from '../../internal/slot.mjs';
14
+ import { watch } from '../../internal/watch.mjs';
15
+ import componentStyles from '../../styles/component.styles.mjs';
16
+ import formControlStyles from '../../styles/form-control.styles.mjs';
17
+ import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry.mjs';
18
+ import { LocalizeController } from '../../utilities/localize.mjs';
19
+ import FlowUiIcon from '../icon/icon.component.mjs';
20
+ import FlowUiPopup from '../popup/popup.component.mjs';
21
+ import FlowUiTag from '../tag/tag.component.mjs';
22
+ import styles from './select.styles.mjs';
23
+
24
+ var __defProp = Object.defineProperty;
25
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
26
+ var __decorateClass = (decorators, target, key, kind) => {
27
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
28
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
29
+ if (decorator = decorators[i])
30
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31
+ if (kind && result)
32
+ __defProp(target, key, result);
33
+ return result;
34
+ };
35
+ class FlowUiSelect extends FlowRdfFormControl {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.formControlController = new FormControlController(this, {
39
+ assumeInteractionOn: ["flow-ui-blur", "flow-ui-input"]
40
+ });
41
+ this.hasSlotController = new HasSlotController(this, "help-text", "label");
42
+ this.localize = new LocalizeController(this);
43
+ this.typeToSelectString = "";
44
+ this.hasFocus = false;
45
+ this.displayLabel = "";
46
+ this.selectedOptions = [];
47
+ this.name = "";
48
+ this.value = "";
49
+ this.defaultValue = "";
50
+ this.size = "medium";
51
+ this.placeholder = "";
52
+ this.multiple = false;
53
+ this.maxOptionsVisible = 3;
54
+ this.disabled = false;
55
+ this.clearable = false;
56
+ this.open = false;
57
+ this.hoist = false;
58
+ this.filled = false;
59
+ this.pill = false;
60
+ this.label = "";
61
+ this.placement = "bottom";
62
+ this.sync = "width";
63
+ this.helpText = "";
64
+ this.form = "";
65
+ this.required = false;
66
+ this.getTag = (option) => {
67
+ return html`
68
+ <flow-ui-tag
69
+ part="tag"
70
+ exportparts="
71
+ base:tag__base,
72
+ content:tag__content,
73
+ remove-button:tag__remove-button,
74
+ remove-button__base:tag__remove-button__base
75
+ "
76
+ ?pill=${this.pill}
77
+ size=${this.size}
78
+ removable
79
+ @flow-ui-remove=${(event) => this.handleTagRemove(event, option)}
80
+ >
81
+ ${option.getTextLabel()}
82
+ </flow-ui-tag>
83
+ `;
84
+ };
85
+ this.handleDocumentFocusIn = (event) => {
86
+ const path = event.composedPath();
87
+ if (this && !path.includes(this)) {
88
+ this.hide();
89
+ }
90
+ };
91
+ this.handleDocumentKeyDown = (event) => {
92
+ const target = event.target;
93
+ const isClearButton = target.closest(".select__clear") !== null;
94
+ const isIconButton = target.closest("flow-ui-icon-button") !== null;
95
+ if (isClearButton || isIconButton) {
96
+ return;
97
+ }
98
+ if (event.key === "Escape" && this.open && !this.closeWatcher) {
99
+ event.preventDefault();
100
+ event.stopPropagation();
101
+ this.hide();
102
+ this.displayInput.focus({ preventScroll: true });
103
+ }
104
+ if (event.key === "Enter" || event.key === " " && this.typeToSelectString === "") {
105
+ event.preventDefault();
106
+ event.stopImmediatePropagation();
107
+ if (!this.open) {
108
+ this.show();
109
+ return;
110
+ }
111
+ if (this.currentOption && !this.currentOption.disabled) {
112
+ if (this.multiple) {
113
+ this.toggleOptionSelection(this.currentOption);
114
+ } else {
115
+ this.setSelectedOptions(this.currentOption);
116
+ }
117
+ this.updateComplete.then(() => {
118
+ this.emit("flow-ui-input");
119
+ this.emit("flow-ui-change");
120
+ });
121
+ if (!this.multiple) {
122
+ this.hide();
123
+ this.displayInput.focus({ preventScroll: true });
124
+ }
125
+ }
126
+ return;
127
+ }
128
+ if (["ArrowUp", "ArrowDown", "Home", "End"].includes(event.key)) {
129
+ const allOptions = this.getAllOptions();
130
+ const currentIndex = allOptions.indexOf(this.currentOption);
131
+ let newIndex = Math.max(0, currentIndex);
132
+ event.preventDefault();
133
+ if (!this.open) {
134
+ this.show();
135
+ if (this.currentOption) {
136
+ return;
137
+ }
138
+ }
139
+ if (event.key === "ArrowDown") {
140
+ newIndex = currentIndex + 1;
141
+ if (newIndex > allOptions.length - 1)
142
+ newIndex = 0;
143
+ } else if (event.key === "ArrowUp") {
144
+ newIndex = currentIndex - 1;
145
+ if (newIndex < 0)
146
+ newIndex = allOptions.length - 1;
147
+ } else if (event.key === "Home") {
148
+ newIndex = 0;
149
+ } else if (event.key === "End") {
150
+ newIndex = allOptions.length - 1;
151
+ }
152
+ this.setCurrentOption(allOptions[newIndex]);
153
+ }
154
+ if (event.key.length === 1 || event.key === "Backspace") {
155
+ const allOptions = this.getAllOptions();
156
+ if (event.metaKey || event.ctrlKey || event.altKey) {
157
+ return;
158
+ }
159
+ if (!this.open) {
160
+ if (event.key === "Backspace") {
161
+ return;
162
+ }
163
+ this.show();
164
+ }
165
+ event.stopPropagation();
166
+ event.preventDefault();
167
+ clearTimeout(this.typeToSelectTimeout);
168
+ this.typeToSelectTimeout = window.setTimeout(() => this.typeToSelectString = "", 1e3);
169
+ if (event.key === "Backspace") {
170
+ this.typeToSelectString = this.typeToSelectString.slice(0, -1);
171
+ } else {
172
+ this.typeToSelectString += event.key.toLowerCase();
173
+ }
174
+ for (const option of allOptions) {
175
+ const label = option.getTextLabel().toLowerCase();
176
+ if (label.startsWith(this.typeToSelectString)) {
177
+ this.setCurrentOption(option);
178
+ break;
179
+ }
180
+ }
181
+ }
182
+ };
183
+ this.handleDocumentMouseDown = (event) => {
184
+ const path = event.composedPath();
185
+ if (this && !path.includes(this)) {
186
+ this.hide();
187
+ }
188
+ };
189
+ }
190
+ /** Gets the validity state object */
191
+ get validity() {
192
+ return this.valueInput.validity;
193
+ }
194
+ /** Gets the validation message */
195
+ get validationMessage() {
196
+ return this.valueInput.validationMessage;
197
+ }
198
+ connectedCallback() {
199
+ super.connectedCallback();
200
+ this.disabled = boolean(this.disabled, true);
201
+ this.multiple = boolean(this.multiple, true);
202
+ this.clearable = boolean(this.clearable, true);
203
+ this.hoist = boolean(this.hoist, true);
204
+ this.filled = boolean(this.filled, true);
205
+ this.pill = boolean(this.pill, true);
206
+ this.required = boolean(this.required, true);
207
+ this.open = false;
208
+ }
209
+ disconnectedCallback() {
210
+ super.disconnectedCallback();
211
+ this.mutationObserver?.disconnect();
212
+ }
213
+ addOpenListeners() {
214
+ document.addEventListener("focusin", this.handleDocumentFocusIn);
215
+ document.addEventListener("keydown", this.handleDocumentKeyDown);
216
+ document.addEventListener("mousedown", this.handleDocumentMouseDown);
217
+ if (this.getRootNode() !== document) {
218
+ this.getRootNode().addEventListener("focusin", this.handleDocumentFocusIn);
219
+ }
220
+ if ("CloseWatcher" in window) {
221
+ this.closeWatcher?.destroy();
222
+ this.closeWatcher = new CloseWatcher();
223
+ this.closeWatcher.onclose = () => {
224
+ if (this.open) {
225
+ this.hide();
226
+ this.displayInput.focus({ preventScroll: true });
227
+ }
228
+ };
229
+ }
230
+ }
231
+ removeOpenListeners() {
232
+ document.removeEventListener("focusin", this.handleDocumentFocusIn);
233
+ document.removeEventListener("keydown", this.handleDocumentKeyDown);
234
+ document.removeEventListener("mousedown", this.handleDocumentMouseDown);
235
+ if (this.getRootNode() !== document) {
236
+ this.getRootNode().removeEventListener("focusin", this.handleDocumentFocusIn);
237
+ }
238
+ this.closeWatcher?.destroy();
239
+ }
240
+ handleFocus() {
241
+ this.hasFocus = true;
242
+ this.displayInput.setSelectionRange(0, 0);
243
+ this.emit("flow-ui-focus");
244
+ }
245
+ handleBlur() {
246
+ this.hasFocus = false;
247
+ this.emit("flow-ui-blur");
248
+ }
249
+ handleLabelClick() {
250
+ this.displayInput.focus();
251
+ }
252
+ handleComboboxMouseDown(event) {
253
+ const path = event.composedPath();
254
+ const isIconButton = path.some((el) => el instanceof Element && el.tagName.toLowerCase() === "flow-ui-icon-button");
255
+ if (this.disabled || isIconButton) {
256
+ return;
257
+ }
258
+ event.preventDefault();
259
+ this.displayInput.focus({ preventScroll: true });
260
+ this.open = !this.open;
261
+ }
262
+ handleComboboxKeyDown(event) {
263
+ if (event.key === "Tab") {
264
+ return;
265
+ }
266
+ event.stopPropagation();
267
+ this.handleDocumentKeyDown(event);
268
+ }
269
+ handleClearClick(event) {
270
+ event.stopPropagation();
271
+ if (this.value !== "") {
272
+ this.setSelectedOptions([]);
273
+ this.displayInput.focus({ preventScroll: true });
274
+ this.updateComplete.then(() => {
275
+ this.emit("flow-ui-clear");
276
+ this.emit("flow-ui-input");
277
+ this.emit("flow-ui-change");
278
+ });
279
+ }
280
+ }
281
+ handleClearMouseDown(event) {
282
+ event.stopPropagation();
283
+ event.preventDefault();
284
+ }
285
+ handleOptionClick(event) {
286
+ const target = event.target;
287
+ const option = target.closest("flow-ui-option");
288
+ const oldValue = this.value;
289
+ if (option && !option.disabled) {
290
+ if (this.multiple) {
291
+ this.toggleOptionSelection(option);
292
+ } else {
293
+ this.setSelectedOptions(option);
294
+ }
295
+ this.updateComplete.then(() => this.displayInput.focus({ preventScroll: true }));
296
+ if (this.value !== oldValue) {
297
+ this.updateComplete.then(() => {
298
+ this.emit("flow-ui-input");
299
+ this.emit("flow-ui-change");
300
+ });
301
+ }
302
+ if (!this.multiple) {
303
+ this.hide();
304
+ this.displayInput.focus({ preventScroll: true });
305
+ }
306
+ }
307
+ }
308
+ handleDefaultSlotChange() {
309
+ const allOptions = this.getAllOptions();
310
+ const value = Array.isArray(this.value) ? this.value : [this.value];
311
+ const values = [];
312
+ this.syncOptions();
313
+ if (customElements.get("flow-ui-option")) {
314
+ allOptions.forEach((option) => values.push(option.value));
315
+ this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
316
+ } else {
317
+ customElements.whenDefined("flow-ui-option").then(() => this.handleDefaultSlotChange());
318
+ }
319
+ }
320
+ handleTagRemove(event, option) {
321
+ event.stopPropagation();
322
+ if (!this.disabled) {
323
+ this.toggleOptionSelection(option, false);
324
+ this.updateComplete.then(() => {
325
+ this.emit("flow-ui-input");
326
+ this.emit("flow-ui-change");
327
+ });
328
+ }
329
+ }
330
+ // Gets an array of all <flow-ui-option> elements
331
+ getAllOptions() {
332
+ return [...this.querySelectorAll("flow-ui-option")];
333
+ }
334
+ // Gets the first <flow-ui-option> element
335
+ getFirstOption() {
336
+ return this.querySelector("flow-ui-option");
337
+ }
338
+ // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one
339
+ // option may be "current" at a time.
340
+ setCurrentOption(option) {
341
+ const allOptions = this.getAllOptions();
342
+ allOptions.forEach((el) => {
343
+ el.current = false;
344
+ el.tabIndex = -1;
345
+ });
346
+ if (option) {
347
+ this.currentOption = option;
348
+ option.current = true;
349
+ option.tabIndex = 0;
350
+ option.focus();
351
+ }
352
+ }
353
+ // Sets the selected option(s)
354
+ setSelectedOptions(option) {
355
+ const allOptions = this.getAllOptions();
356
+ const newSelectedOptions = Array.isArray(option) ? option : [option];
357
+ allOptions.forEach((el) => el.selected = false);
358
+ if (newSelectedOptions.length) {
359
+ newSelectedOptions.forEach((el) => el.selected = true);
360
+ }
361
+ this.selectionChanged();
362
+ }
363
+ // Toggles an option's selected state
364
+ toggleOptionSelection(option, force) {
365
+ if (force === true || force === false) {
366
+ option.selected = force;
367
+ } else {
368
+ option.selected = !option.selected;
369
+ }
370
+ this.selectionChanged();
371
+ }
372
+ // This method must be called whenever the selection changes. It will update the selected options cache, the current
373
+ // value, and the display value
374
+ selectionChanged() {
375
+ this.selectedOptions = this.getAllOptions().filter((el) => el.selected);
376
+ if (this.multiple) {
377
+ this.value = this.selectedOptions.map((el) => el.value);
378
+ if (this.placeholder && this.value.length === 0) {
379
+ this.displayLabel = "";
380
+ } else {
381
+ this.displayLabel = this.localize.term("numOptionsSelected", this.selectedOptions.length);
382
+ }
383
+ } else {
384
+ this.value = this.selectedOptions[0]?.value ?? "";
385
+ this.displayLabel = this.selectedOptions[0]?.getTextLabel() ?? "";
386
+ }
387
+ this.updateComplete.then(() => {
388
+ this.formControlController.updateValidity();
389
+ });
390
+ }
391
+ get tags() {
392
+ return this.selectedOptions.map((option, index) => {
393
+ if (index < this.maxOptionsVisible || this.maxOptionsVisible <= 0) {
394
+ const tag = this.getTag(option, index);
395
+ return html`
396
+ <div @flow-ui-remove=${(e) => this.handleTagRemove(e, option)}>
397
+ ${typeof tag === "string" ? unsafeHTML(tag) : tag}
398
+ </div>
399
+ `;
400
+ } else if (index === this.maxOptionsVisible) {
401
+ return html`
402
+ <flow-ui-tag size=${this.size}>+${this.selectedOptions.length - index}</flow-ui-tag>
403
+ `;
404
+ }
405
+ return html``;
406
+ });
407
+ }
408
+ handleInvalid(event) {
409
+ this.formControlController.setValidity(false);
410
+ this.formControlController.emitInvalidEvent(event);
411
+ }
412
+ handleDisabledChange() {
413
+ if (this.disabled) {
414
+ this.open = false;
415
+ this.handleOpenChange();
416
+ }
417
+ }
418
+ handleValueChange() {
419
+ const allOptions = this.getAllOptions();
420
+ const value = Array.isArray(this.value) ? this.value : [this.value];
421
+ this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
422
+ }
423
+ handleSizeChange() {
424
+ this.syncOptions();
425
+ }
426
+ async handleOpenChange() {
427
+ if (this.open && !this.disabled) {
428
+ this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
429
+ this.emit("flow-ui-show");
430
+ this.addOpenListeners();
431
+ await stopAnimations(this);
432
+ this.listbox.hidden = false;
433
+ this.popup.active = true;
434
+ requestAnimationFrame(() => {
435
+ this.setCurrentOption(this.currentOption);
436
+ });
437
+ const { keyframes, options } = getAnimation(this, "select.show", { dir: this.localize.dir() });
438
+ await animateTo(this.popup.popup, keyframes, options);
439
+ if (this.currentOption) {
440
+ scrollIntoView(this.currentOption, this.listbox, "vertical", "auto");
441
+ }
442
+ this.emit("flow-ui-after-show");
443
+ } else {
444
+ this.emit("flow-ui-hide");
445
+ this.removeOpenListeners();
446
+ await stopAnimations(this);
447
+ const { keyframes, options } = getAnimation(this, "select.hide", { dir: this.localize.dir() });
448
+ await animateTo(this.popup.popup, keyframes, options);
449
+ this.listbox.hidden = true;
450
+ this.popup.active = false;
451
+ this.emit("flow-ui-after-hide");
452
+ }
453
+ }
454
+ // Sync style options from parent select to child options
455
+ syncOptions() {
456
+ if (customElements.get("flow-ui-option")) {
457
+ const options = this.getAllOptions();
458
+ options.forEach((option) => {
459
+ option.size = this.size;
460
+ });
461
+ } else {
462
+ customElements.whenDefined("flow-ui-option").then(() => this.syncOptions());
463
+ }
464
+ }
465
+ /** Shows the listbox. */
466
+ async show() {
467
+ if (this.open || this.disabled) {
468
+ this.open = false;
469
+ return void 0;
470
+ }
471
+ this.open = true;
472
+ return waitForEvent(this, "flow-ui-after-show");
473
+ }
474
+ /** Hides the listbox. */
475
+ async hide() {
476
+ if (!this.open || this.disabled) {
477
+ this.open = false;
478
+ return void 0;
479
+ }
480
+ this.open = false;
481
+ return waitForEvent(this, "flow-ui-after-hide");
482
+ }
483
+ /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
484
+ checkValidity() {
485
+ return this.valueInput.checkValidity();
486
+ }
487
+ /** Gets the associated form, if one exists. */
488
+ getForm() {
489
+ return this.formControlController.getForm();
490
+ }
491
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
492
+ reportValidity() {
493
+ return this.valueInput.reportValidity();
494
+ }
495
+ /** Sets a custom validation message. Pass an empty string to restore validity. */
496
+ setCustomValidity(message) {
497
+ this.valueInput.setCustomValidity(message);
498
+ this.formControlController.updateValidity();
499
+ }
500
+ /** Sets focus on the control. */
501
+ focus(options) {
502
+ this.displayInput.focus(options);
503
+ }
504
+ /** Removes focus from the control. */
505
+ blur() {
506
+ this.displayInput.blur();
507
+ }
508
+ render() {
509
+ const hasLabelSlot = this.hasSlotController.test("label");
510
+ const hasHelpTextSlot = this.hasSlotController.test("help-text");
511
+ const hasLabel = this.label ? true : !!hasLabelSlot;
512
+ const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;
513
+ const hasClearIcon = this.clearable && !this.disabled && this.value.length > 0;
514
+ const isPlaceholderVisible = this.placeholder && this.value.length === 0;
515
+ return html`
516
+ <div
517
+ part="form-control"
518
+ class=${classMap({
519
+ "form-control": true,
520
+ "form-control--small": this.size === "small",
521
+ "form-control--medium": this.size === "medium",
522
+ "form-control--large": this.size === "large",
523
+ "form-control--has-label": hasLabel,
524
+ "form-control--has-help-text": hasHelpText
525
+ })}
526
+ >
527
+ <label
528
+ id="label"
529
+ part="form-control-label"
530
+ class="form-control__label"
531
+ aria-hidden=${hasLabel ? "false" : "true"}
532
+ @click=${this.handleLabelClick}
533
+ >
534
+ <slot name="label">${this.label}</slot>
535
+ </label>
536
+
537
+ <div part="form-control-input" class="form-control-input">
538
+ <flow-ui-popup
539
+ class=${classMap({
540
+ select: true,
541
+ "select--standard": true,
542
+ "select--filled": this.filled,
543
+ "select--pill": this.pill,
544
+ "select--open": this.open,
545
+ "select--disabled": this.disabled,
546
+ "select--multiple": this.multiple,
547
+ "select--focused": this.hasFocus,
548
+ "select--placeholder-visible": isPlaceholderVisible,
549
+ "select--top": this.placement === "top",
550
+ "select--bottom": this.placement === "bottom",
551
+ "select--small": this.size === "small",
552
+ "select--medium": this.size === "medium",
553
+ "select--large": this.size === "large"
554
+ })}
555
+ placement=${this.placement === "top" ? "top-start" : "bottom-start"}
556
+ strategy=${this.hoist ? "fixed" : "absolute"}
557
+ flip
558
+ shift
559
+ sync=${ifDefined(this.sync === "width" ? "width" : void 0)}
560
+ auto-size="vertical"
561
+ auto-size-padding="10"
562
+ >
563
+ <div
564
+ part="combobox"
565
+ class="select__combobox"
566
+ slot="anchor"
567
+ @keydown=${this.handleComboboxKeyDown}
568
+ @mousedown=${this.handleComboboxMouseDown}
569
+ >
570
+ <slot part="prefix" name="prefix" class="select__prefix"></slot>
571
+
572
+ <input
573
+ part="display-input"
574
+ class="select__display-input"
575
+ type="text"
576
+ placeholder=${this.placeholder}
577
+ .disabled=${this.disabled}
578
+ .value=${this.displayLabel}
579
+ autocomplete="off"
580
+ spellcheck="false"
581
+ autocapitalize="off"
582
+ readonly
583
+ aria-controls="listbox"
584
+ aria-expanded=${this.open ? "true" : "false"}
585
+ aria-haspopup="listbox"
586
+ aria-labelledby="label"
587
+ aria-disabled=${this.disabled ? "true" : "false"}
588
+ aria-describedby="help-text"
589
+ role="combobox"
590
+ tabindex="0"
591
+ @focus=${this.handleFocus}
592
+ @blur=${this.handleBlur}
593
+ />
594
+
595
+ ${this.multiple ? html`
596
+ <div part="tags" class="select__tags">${this.tags}</div>
597
+ ` : ""}
598
+
599
+ <input
600
+ class="select__value-input"
601
+ type="text"
602
+ ?disabled=${this.disabled}
603
+ ?required=${this.required}
604
+ .value=${Array.isArray(this.value) ? this.value.join(", ") : this.value}
605
+ tabindex="-1"
606
+ aria-hidden="true"
607
+ @focus=${() => this.focus()}
608
+ @invalid=${this.handleInvalid}
609
+ />
610
+
611
+ ${hasClearIcon ? html`
612
+ <button
613
+ part="clear-button"
614
+ class="select__clear"
615
+ type="button"
616
+ aria-label=${this.localize.term("clearEntry")}
617
+ @mousedown=${this.handleClearMouseDown}
618
+ @click=${this.handleClearClick}
619
+ tabindex="-1"
620
+ >
621
+ <slot name="clear-icon">
622
+ <flow-ui-icon name="x-circle-fill" library="system"></flow-ui-icon>
623
+ </slot>
624
+ </button>
625
+ ` : ""}
626
+
627
+ <slot name="suffix" part="suffix" class="select__suffix"></slot>
628
+
629
+ <slot name="expand-icon" part="expand-icon" class="select__expand-icon">
630
+ <flow-ui-icon library="system" name="chevron-down"></flow-ui-icon>
631
+ </slot>
632
+ </div>
633
+
634
+ <div
635
+ id="listbox"
636
+ role="listbox"
637
+ aria-expanded=${this.open ? "true" : "false"}
638
+ aria-multiselectable=${this.multiple ? "true" : "false"}
639
+ aria-labelledby="label"
640
+ part="listbox"
641
+ class="select__listbox"
642
+ tabindex="-1"
643
+ @mouseup=${this.handleOptionClick}
644
+ @slotchange=${this.handleDefaultSlotChange}
645
+ >
646
+ <slot></slot>
647
+ </div>
648
+ </flow-ui-popup>
649
+ </div>
650
+
651
+ <div
652
+ part="form-control-help-text"
653
+ id="help-text"
654
+ class="form-control__help-text"
655
+ aria-hidden=${hasHelpText ? "false" : "true"}
656
+ >
657
+ <slot name="help-text">${this.helpText}</slot>
658
+ </div>
659
+ </div>
660
+ `;
661
+ }
662
+ }
663
+ FlowUiSelect.styles = [componentStyles, formControlStyles, styles];
664
+ FlowUiSelect.dependencies = {
665
+ "flow-icon": FlowUiIcon,
666
+ "flow-popup": FlowUiPopup,
667
+ "flow-tag": FlowUiTag
668
+ };
669
+ __decorateClass([
670
+ query(".select")
671
+ ], FlowUiSelect.prototype, "popup", 2);
672
+ __decorateClass([
673
+ query(".select__display-input")
674
+ ], FlowUiSelect.prototype, "displayInput", 2);
675
+ __decorateClass([
676
+ query(".select__value-input")
677
+ ], FlowUiSelect.prototype, "valueInput", 2);
678
+ __decorateClass([
679
+ query(".select__listbox")
680
+ ], FlowUiSelect.prototype, "listbox", 2);
681
+ __decorateClass([
682
+ state()
683
+ ], FlowUiSelect.prototype, "hasFocus", 2);
684
+ __decorateClass([
685
+ state()
686
+ ], FlowUiSelect.prototype, "displayLabel", 2);
687
+ __decorateClass([
688
+ state()
689
+ ], FlowUiSelect.prototype, "currentOption", 2);
690
+ __decorateClass([
691
+ state()
692
+ ], FlowUiSelect.prototype, "selectedOptions", 2);
693
+ __decorateClass([
694
+ property()
695
+ ], FlowUiSelect.prototype, "name", 2);
696
+ __decorateClass([
697
+ property({
698
+ converter: {
699
+ fromAttribute: (value) => value.split(" "),
700
+ toAttribute: (value) => value.join(" ")
701
+ }
702
+ })
703
+ ], FlowUiSelect.prototype, "value", 2);
704
+ __decorateClass([
705
+ defaultValue()
706
+ ], FlowUiSelect.prototype, "defaultValue", 2);
707
+ __decorateClass([
708
+ property({ reflect: true })
709
+ ], FlowUiSelect.prototype, "size", 2);
710
+ __decorateClass([
711
+ property()
712
+ ], FlowUiSelect.prototype, "placeholder", 2);
713
+ __decorateClass([
714
+ property({ type: Boolean, reflect: true })
715
+ ], FlowUiSelect.prototype, "multiple", 2);
716
+ __decorateClass([
717
+ property({ attribute: "max-options-visible", type: Number })
718
+ ], FlowUiSelect.prototype, "maxOptionsVisible", 2);
719
+ __decorateClass([
720
+ property({ type: Boolean, reflect: true })
721
+ ], FlowUiSelect.prototype, "disabled", 2);
722
+ __decorateClass([
723
+ property({ type: Boolean })
724
+ ], FlowUiSelect.prototype, "clearable", 2);
725
+ __decorateClass([
726
+ property({ type: Boolean, reflect: true })
727
+ ], FlowUiSelect.prototype, "open", 2);
728
+ __decorateClass([
729
+ property({ type: Boolean })
730
+ ], FlowUiSelect.prototype, "hoist", 2);
731
+ __decorateClass([
732
+ property({ type: Boolean, reflect: true })
733
+ ], FlowUiSelect.prototype, "filled", 2);
734
+ __decorateClass([
735
+ property({ type: Boolean, reflect: true })
736
+ ], FlowUiSelect.prototype, "pill", 2);
737
+ __decorateClass([
738
+ property()
739
+ ], FlowUiSelect.prototype, "label", 2);
740
+ __decorateClass([
741
+ property({ reflect: true })
742
+ ], FlowUiSelect.prototype, "placement", 2);
743
+ __decorateClass([
744
+ property()
745
+ ], FlowUiSelect.prototype, "sync", 2);
746
+ __decorateClass([
747
+ property({ attribute: "help-text" })
748
+ ], FlowUiSelect.prototype, "helpText", 2);
749
+ __decorateClass([
750
+ property({ reflect: true })
751
+ ], FlowUiSelect.prototype, "form", 2);
752
+ __decorateClass([
753
+ property({ type: Boolean, reflect: true })
754
+ ], FlowUiSelect.prototype, "required", 2);
755
+ __decorateClass([
756
+ property()
757
+ ], FlowUiSelect.prototype, "getTag", 2);
758
+ __decorateClass([
759
+ watch("disabled", { waitUntilFirstUpdate: true })
760
+ ], FlowUiSelect.prototype, "handleDisabledChange", 1);
761
+ __decorateClass([
762
+ watch("value", { waitUntilFirstUpdate: true })
763
+ ], FlowUiSelect.prototype, "handleValueChange", 1);
764
+ __decorateClass([
765
+ watch("size", { waitUntilFirstUpdate: true })
766
+ ], FlowUiSelect.prototype, "handleSizeChange", 1);
767
+ __decorateClass([
768
+ watch("open", { waitUntilFirstUpdate: true })
769
+ ], FlowUiSelect.prototype, "handleOpenChange", 1);
770
+ setDefaultAnimation("select.show", {
771
+ keyframes: [
772
+ { opacity: 0, scale: 0.9 },
773
+ { opacity: 1, scale: 1 }
774
+ ],
775
+ options: { duration: 100, easing: "ease" }
776
+ });
777
+ setDefaultAnimation("select.hide", {
778
+ keyframes: [
779
+ { opacity: 1, scale: 1 },
780
+ { opacity: 0, scale: 0.9 }
781
+ ],
782
+ options: { duration: 100, easing: "ease" }
783
+ });
784
+
785
+ export { FlowUiSelect as default };