@loomui-ng/ui 0.0.0-stage → 0.1.1

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 (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -2
  3. package/accordion/README.md +38 -0
  4. package/alert/README.md +32 -0
  5. package/alert-dialog/README.md +37 -0
  6. package/aspect-ratio/README.md +24 -0
  7. package/attachment/README.md +40 -0
  8. package/avatar/README.md +34 -0
  9. package/badge/README.md +29 -0
  10. package/breadcrumb/README.md +33 -0
  11. package/bubble/README.md +32 -0
  12. package/button/README.md +31 -0
  13. package/button-group/README.md +30 -0
  14. package/calendar/README.md +35 -0
  15. package/card/README.md +41 -0
  16. package/carousel/README.md +41 -0
  17. package/chart/README.md +25 -0
  18. package/checkbox/README.md +31 -0
  19. package/collapsible/README.md +31 -0
  20. package/combobox/README.md +47 -0
  21. package/command/README.md +44 -0
  22. package/context-menu/README.md +36 -0
  23. package/data-table/README.md +39 -0
  24. package/date-picker/README.md +23 -0
  25. package/dialog/README.md +52 -0
  26. package/direction/README.md +19 -0
  27. package/drawer/README.md +37 -0
  28. package/dropdown-menu/README.md +46 -0
  29. package/empty/README.md +38 -0
  30. package/fesm2022/loomui-ng-ui-accordion.mjs +555 -0
  31. package/fesm2022/loomui-ng-ui-accordion.mjs.map +1 -0
  32. package/fesm2022/loomui-ng-ui-alert-dialog.mjs +652 -0
  33. package/fesm2022/loomui-ng-ui-alert-dialog.mjs.map +1 -0
  34. package/fesm2022/loomui-ng-ui-alert.mjs +286 -0
  35. package/fesm2022/loomui-ng-ui-alert.mjs.map +1 -0
  36. package/fesm2022/loomui-ng-ui-aspect-ratio.mjs +97 -0
  37. package/fesm2022/loomui-ng-ui-aspect-ratio.mjs.map +1 -0
  38. package/fesm2022/loomui-ng-ui-attachment.mjs +713 -0
  39. package/fesm2022/loomui-ng-ui-attachment.mjs.map +1 -0
  40. package/fesm2022/loomui-ng-ui-avatar.mjs +561 -0
  41. package/fesm2022/loomui-ng-ui-avatar.mjs.map +1 -0
  42. package/fesm2022/loomui-ng-ui-badge.mjs +102 -0
  43. package/fesm2022/loomui-ng-ui-badge.mjs.map +1 -0
  44. package/fesm2022/loomui-ng-ui-breadcrumb.mjs +520 -0
  45. package/fesm2022/loomui-ng-ui-breadcrumb.mjs.map +1 -0
  46. package/fesm2022/loomui-ng-ui-bubble.mjs +386 -0
  47. package/fesm2022/loomui-ng-ui-bubble.mjs.map +1 -0
  48. package/fesm2022/loomui-ng-ui-button-group.mjs +193 -0
  49. package/fesm2022/loomui-ng-ui-button-group.mjs.map +1 -0
  50. package/fesm2022/loomui-ng-ui-button.mjs +162 -0
  51. package/fesm2022/loomui-ng-ui-button.mjs.map +1 -0
  52. package/fesm2022/loomui-ng-ui-calendar.mjs +681 -0
  53. package/fesm2022/loomui-ng-ui-calendar.mjs.map +1 -0
  54. package/fesm2022/loomui-ng-ui-card.mjs +461 -0
  55. package/fesm2022/loomui-ng-ui-card.mjs.map +1 -0
  56. package/fesm2022/loomui-ng-ui-carousel.mjs +532 -0
  57. package/fesm2022/loomui-ng-ui-carousel.mjs.map +1 -0
  58. package/fesm2022/loomui-ng-ui-chart.mjs +373 -0
  59. package/fesm2022/loomui-ng-ui-chart.mjs.map +1 -0
  60. package/fesm2022/loomui-ng-ui-checkbox.mjs +265 -0
  61. package/fesm2022/loomui-ng-ui-checkbox.mjs.map +1 -0
  62. package/fesm2022/loomui-ng-ui-collapsible.mjs +274 -0
  63. package/fesm2022/loomui-ng-ui-collapsible.mjs.map +1 -0
  64. package/fesm2022/loomui-ng-ui-combobox.mjs +971 -0
  65. package/fesm2022/loomui-ng-ui-combobox.mjs.map +1 -0
  66. package/fesm2022/loomui-ng-ui-command.mjs +982 -0
  67. package/fesm2022/loomui-ng-ui-command.mjs.map +1 -0
  68. package/fesm2022/loomui-ng-ui-context-menu.mjs +1359 -0
  69. package/fesm2022/loomui-ng-ui-context-menu.mjs.map +1 -0
  70. package/fesm2022/loomui-ng-ui-data-table.mjs +535 -0
  71. package/fesm2022/loomui-ng-ui-data-table.mjs.map +1 -0
  72. package/fesm2022/loomui-ng-ui-date-picker.mjs +312 -0
  73. package/fesm2022/loomui-ng-ui-date-picker.mjs.map +1 -0
  74. package/fesm2022/loomui-ng-ui-dialog.mjs +508 -0
  75. package/fesm2022/loomui-ng-ui-dialog.mjs.map +1 -0
  76. package/fesm2022/loomui-ng-ui-direction.mjs +112 -0
  77. package/fesm2022/loomui-ng-ui-direction.mjs.map +1 -0
  78. package/fesm2022/loomui-ng-ui-drawer.mjs +590 -0
  79. package/fesm2022/loomui-ng-ui-drawer.mjs.map +1 -0
  80. package/fesm2022/loomui-ng-ui-dropdown-menu.mjs +1322 -0
  81. package/fesm2022/loomui-ng-ui-dropdown-menu.mjs.map +1 -0
  82. package/fesm2022/loomui-ng-ui-empty.mjs +408 -0
  83. package/fesm2022/loomui-ng-ui-empty.mjs.map +1 -0
  84. package/fesm2022/loomui-ng-ui-field.mjs +630 -0
  85. package/fesm2022/loomui-ng-ui-field.mjs.map +1 -0
  86. package/fesm2022/loomui-ng-ui-hover-card.mjs +230 -0
  87. package/fesm2022/loomui-ng-ui-hover-card.mjs.map +1 -0
  88. package/fesm2022/loomui-ng-ui-icon.mjs +498 -0
  89. package/fesm2022/loomui-ng-ui-icon.mjs.map +1 -0
  90. package/fesm2022/loomui-ng-ui-input-group.mjs +463 -0
  91. package/fesm2022/loomui-ng-ui-input-group.mjs.map +1 -0
  92. package/fesm2022/loomui-ng-ui-input-otp.mjs +586 -0
  93. package/fesm2022/loomui-ng-ui-input-otp.mjs.map +1 -0
  94. package/fesm2022/loomui-ng-ui-input.mjs +289 -0
  95. package/fesm2022/loomui-ng-ui-input.mjs.map +1 -0
  96. package/fesm2022/loomui-ng-ui-item.mjs +598 -0
  97. package/fesm2022/loomui-ng-ui-item.mjs.map +1 -0
  98. package/fesm2022/loomui-ng-ui-kbd.mjs +129 -0
  99. package/fesm2022/loomui-ng-ui-kbd.mjs.map +1 -0
  100. package/fesm2022/loomui-ng-ui-label.mjs +68 -0
  101. package/fesm2022/loomui-ng-ui-label.mjs.map +1 -0
  102. package/fesm2022/loomui-ng-ui-marker.mjs +234 -0
  103. package/fesm2022/loomui-ng-ui-marker.mjs.map +1 -0
  104. package/fesm2022/loomui-ng-ui-menubar.mjs +1523 -0
  105. package/fesm2022/loomui-ng-ui-menubar.mjs.map +1 -0
  106. package/fesm2022/loomui-ng-ui-message-scroller.mjs +519 -0
  107. package/fesm2022/loomui-ng-ui-message-scroller.mjs.map +1 -0
  108. package/fesm2022/loomui-ng-ui-message.mjs +408 -0
  109. package/fesm2022/loomui-ng-ui-message.mjs.map +1 -0
  110. package/fesm2022/loomui-ng-ui-native-select.mjs +389 -0
  111. package/fesm2022/loomui-ng-ui-native-select.mjs.map +1 -0
  112. package/fesm2022/loomui-ng-ui-navigation-menu.mjs +609 -0
  113. package/fesm2022/loomui-ng-ui-navigation-menu.mjs.map +1 -0
  114. package/fesm2022/loomui-ng-ui-pagination.mjs +611 -0
  115. package/fesm2022/loomui-ng-ui-pagination.mjs.map +1 -0
  116. package/fesm2022/loomui-ng-ui-popover.mjs +358 -0
  117. package/fesm2022/loomui-ng-ui-popover.mjs.map +1 -0
  118. package/fesm2022/loomui-ng-ui-progress.mjs +159 -0
  119. package/fesm2022/loomui-ng-ui-progress.mjs.map +1 -0
  120. package/fesm2022/loomui-ng-ui-questionnaire.mjs +1012 -0
  121. package/fesm2022/loomui-ng-ui-questionnaire.mjs.map +1 -0
  122. package/fesm2022/loomui-ng-ui-radio-group.mjs +399 -0
  123. package/fesm2022/loomui-ng-ui-radio-group.mjs.map +1 -0
  124. package/fesm2022/loomui-ng-ui-resizable.mjs +518 -0
  125. package/fesm2022/loomui-ng-ui-resizable.mjs.map +1 -0
  126. package/fesm2022/loomui-ng-ui-scroll-area.mjs +135 -0
  127. package/fesm2022/loomui-ng-ui-scroll-area.mjs.map +1 -0
  128. package/fesm2022/loomui-ng-ui-select.mjs +863 -0
  129. package/fesm2022/loomui-ng-ui-select.mjs.map +1 -0
  130. package/fesm2022/loomui-ng-ui-separator.mjs +114 -0
  131. package/fesm2022/loomui-ng-ui-separator.mjs.map +1 -0
  132. package/fesm2022/loomui-ng-ui-sheet.mjs +530 -0
  133. package/fesm2022/loomui-ng-ui-sheet.mjs.map +1 -0
  134. package/fesm2022/loomui-ng-ui-sidebar.mjs +1918 -0
  135. package/fesm2022/loomui-ng-ui-sidebar.mjs.map +1 -0
  136. package/fesm2022/loomui-ng-ui-skeleton.mjs +69 -0
  137. package/fesm2022/loomui-ng-ui-skeleton.mjs.map +1 -0
  138. package/fesm2022/loomui-ng-ui-slider.mjs +390 -0
  139. package/fesm2022/loomui-ng-ui-slider.mjs.map +1 -0
  140. package/fesm2022/loomui-ng-ui-spinner.mjs +85 -0
  141. package/fesm2022/loomui-ng-ui-spinner.mjs.map +1 -0
  142. package/fesm2022/loomui-ng-ui-switch.mjs +212 -0
  143. package/fesm2022/loomui-ng-ui-switch.mjs.map +1 -0
  144. package/fesm2022/loomui-ng-ui-table.mjs +559 -0
  145. package/fesm2022/loomui-ng-ui-table.mjs.map +1 -0
  146. package/fesm2022/loomui-ng-ui-tabs.mjs +544 -0
  147. package/fesm2022/loomui-ng-ui-tabs.mjs.map +1 -0
  148. package/fesm2022/loomui-ng-ui-textarea.mjs +206 -0
  149. package/fesm2022/loomui-ng-ui-textarea.mjs.map +1 -0
  150. package/fesm2022/loomui-ng-ui-toast.mjs +432 -0
  151. package/fesm2022/loomui-ng-ui-toast.mjs.map +1 -0
  152. package/fesm2022/loomui-ng-ui-toggle-group.mjs +477 -0
  153. package/fesm2022/loomui-ng-ui-toggle-group.mjs.map +1 -0
  154. package/fesm2022/loomui-ng-ui-toggle.mjs +219 -0
  155. package/fesm2022/loomui-ng-ui-toggle.mjs.map +1 -0
  156. package/fesm2022/loomui-ng-ui-tooltip.mjs +240 -0
  157. package/fesm2022/loomui-ng-ui-tooltip.mjs.map +1 -0
  158. package/fesm2022/loomui-ng-ui-typography.mjs +129 -0
  159. package/fesm2022/loomui-ng-ui-typography.mjs.map +1 -0
  160. package/fesm2022/loomui-ng-ui-utils.mjs +1533 -0
  161. package/fesm2022/loomui-ng-ui-utils.mjs.map +1 -0
  162. package/fesm2022/loomui-ng-ui.mjs +4 -0
  163. package/fesm2022/loomui-ng-ui.mjs.map +1 -0
  164. package/field/README.md +43 -0
  165. package/hover-card/README.md +31 -0
  166. package/icon/README.md +42 -0
  167. package/input/README.md +26 -0
  168. package/input-group/README.md +40 -0
  169. package/input-otp/README.md +35 -0
  170. package/item/README.md +33 -0
  171. package/kbd/README.md +21 -0
  172. package/label/README.md +24 -0
  173. package/marker/README.md +24 -0
  174. package/menubar/README.md +40 -0
  175. package/message/README.md +32 -0
  176. package/message-scroller/README.md +40 -0
  177. package/native-select/README.md +26 -0
  178. package/navigation-menu/README.md +39 -0
  179. package/package.json +325 -3
  180. package/pagination/README.md +37 -0
  181. package/popover/README.md +37 -0
  182. package/progress/README.md +25 -0
  183. package/questionnaire/README.md +52 -0
  184. package/radio-group/README.md +33 -0
  185. package/resizable/README.md +37 -0
  186. package/scroll-area/README.md +25 -0
  187. package/select/README.md +45 -0
  188. package/separator/README.md +28 -0
  189. package/sheet/README.md +38 -0
  190. package/sidebar/README.md +60 -0
  191. package/skeleton/README.md +21 -0
  192. package/slider/README.md +29 -0
  193. package/spinner/README.md +15 -0
  194. package/styles/loomui.css +330 -0
  195. package/switch/README.md +29 -0
  196. package/table/README.md +31 -0
  197. package/tabs/README.md +42 -0
  198. package/textarea/README.md +28 -0
  199. package/toast/README.md +27 -0
  200. package/toggle/README.md +27 -0
  201. package/toggle-group/README.md +37 -0
  202. package/tooltip/README.md +31 -0
  203. package/types/loomui-ng-ui-accordion.d.ts +141 -0
  204. package/types/loomui-ng-ui-alert-dialog.d.ts +175 -0
  205. package/types/loomui-ng-ui-alert.d.ts +77 -0
  206. package/types/loomui-ng-ui-aspect-ratio.d.ts +31 -0
  207. package/types/loomui-ng-ui-attachment.d.ts +192 -0
  208. package/types/loomui-ng-ui-avatar.d.ts +147 -0
  209. package/types/loomui-ng-ui-badge.d.ts +32 -0
  210. package/types/loomui-ng-ui-breadcrumb.d.ts +118 -0
  211. package/types/loomui-ng-ui-bubble.d.ts +100 -0
  212. package/types/loomui-ng-ui-button-group.d.ts +51 -0
  213. package/types/loomui-ng-ui-button.d.ts +57 -0
  214. package/types/loomui-ng-ui-calendar.d.ts +171 -0
  215. package/types/loomui-ng-ui-card.d.ts +123 -0
  216. package/types/loomui-ng-ui-carousel.d.ts +140 -0
  217. package/types/loomui-ng-ui-chart.d.ts +95 -0
  218. package/types/loomui-ng-ui-checkbox.d.ts +62 -0
  219. package/types/loomui-ng-ui-collapsible.d.ts +74 -0
  220. package/types/loomui-ng-ui-combobox.d.ts +229 -0
  221. package/types/loomui-ng-ui-command.d.ts +231 -0
  222. package/types/loomui-ng-ui-context-menu.d.ts +288 -0
  223. package/types/loomui-ng-ui-data-table.d.ts +111 -0
  224. package/types/loomui-ng-ui-date-picker.d.ts +63 -0
  225. package/types/loomui-ng-ui-dialog.d.ts +127 -0
  226. package/types/loomui-ng-ui-direction.d.ts +42 -0
  227. package/types/loomui-ng-ui-drawer.d.ts +149 -0
  228. package/types/loomui-ng-ui-dropdown-menu.d.ts +258 -0
  229. package/types/loomui-ng-ui-empty.d.ts +109 -0
  230. package/types/loomui-ng-ui-field.d.ts +169 -0
  231. package/types/loomui-ng-ui-hover-card.d.ts +62 -0
  232. package/types/loomui-ng-ui-icon.d.ts +156 -0
  233. package/types/loomui-ng-ui-input-group.d.ts +130 -0
  234. package/types/loomui-ng-ui-input-otp.d.ts +149 -0
  235. package/types/loomui-ng-ui-input.d.ts +89 -0
  236. package/types/loomui-ng-ui-item.d.ts +157 -0
  237. package/types/loomui-ng-ui-kbd.d.ts +36 -0
  238. package/types/loomui-ng-ui-label.d.ts +19 -0
  239. package/types/loomui-ng-ui-marker.d.ts +61 -0
  240. package/types/loomui-ng-ui-menubar.d.ts +321 -0
  241. package/types/loomui-ng-ui-message-scroller.d.ts +138 -0
  242. package/types/loomui-ng-ui-message.d.ts +109 -0
  243. package/types/loomui-ng-ui-native-select.d.ts +84 -0
  244. package/types/loomui-ng-ui-navigation-menu.d.ts +160 -0
  245. package/types/loomui-ng-ui-pagination.d.ts +130 -0
  246. package/types/loomui-ng-ui-popover.d.ts +90 -0
  247. package/types/loomui-ng-ui-progress.d.ts +39 -0
  248. package/types/loomui-ng-ui-questionnaire.d.ts +274 -0
  249. package/types/loomui-ng-ui-radio-group.d.ts +109 -0
  250. package/types/loomui-ng-ui-resizable.d.ts +121 -0
  251. package/types/loomui-ng-ui-scroll-area.d.ts +44 -0
  252. package/types/loomui-ng-ui-select.d.ts +204 -0
  253. package/types/loomui-ng-ui-separator.d.ts +35 -0
  254. package/types/loomui-ng-ui-sheet.d.ts +124 -0
  255. package/types/loomui-ng-ui-sidebar.d.ts +485 -0
  256. package/types/loomui-ng-ui-skeleton.d.ts +20 -0
  257. package/types/loomui-ng-ui-slider.d.ts +103 -0
  258. package/types/loomui-ng-ui-spinner.d.ts +19 -0
  259. package/types/loomui-ng-ui-switch.d.ts +56 -0
  260. package/types/loomui-ng-ui-table.d.ts +148 -0
  261. package/types/loomui-ng-ui-tabs.d.ts +148 -0
  262. package/types/loomui-ng-ui-textarea.d.ts +52 -0
  263. package/types/loomui-ng-ui-toast.d.ts +97 -0
  264. package/types/loomui-ng-ui-toggle-group.d.ts +138 -0
  265. package/types/loomui-ng-ui-toggle.d.ts +63 -0
  266. package/types/loomui-ng-ui-tooltip.d.ts +63 -0
  267. package/types/loomui-ng-ui-typography.d.ts +42 -0
  268. package/types/loomui-ng-ui-utils.d.ts +392 -0
  269. package/types/loomui-ng-ui.d.ts +5 -0
  270. package/typography/README.md +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loomui-ng-ui-combobox.mjs","names":[],"sources":["../../../libs/ui/combobox/combobox.ts","../../../libs/ui/combobox/combobox.manual.ts"],"sourcesContent":["// GENERATED by tools/gen-ui.mjs from docs/evidence/slots/combobox.json.\n// Change tools/ui-specs.mjs and regenerate; hand-written parts live in ./combobox.manual.ts.\nimport { Directive, computed, input } from '@angular/core';\nimport { cn } from '@loomui-ng/ui/utils';\n\nexport const comboboxTriggerClass =\n 'group/button inline-flex shrink-0 items-center rounded-lg border bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2 w-64 justify-between font-normal [&_svg:not([class*=\\'size-\\'])]:size-4';\n\nexport const comboboxContentClass =\n 'group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95';\n\nexport const comboboxListClass =\n 'no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0';\n\nexport const comboboxItemClass =\n 'relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4';\n\nexport const comboboxEmptyClass =\n 'hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex';\n\nexport const comboboxChipsClass =\n 'flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40 w-full max-w-xs';\n\nexport const comboboxChipClass =\n 'flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pe-0';\n\nexport const comboboxChipInputClass =\n 'min-w-16 flex-1 outline-none';\n\nexport const comboboxClearClass =\n 'group/button shrink-0 justify-center border border-transparent bg-clip-padding font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2 flex items-center gap-2 text-sm shadow-none size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0 has-[>ui-icon]:p-0';\n\nexport const UI_COMBOBOX_GENERATED = [] as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { buttonVariants } from '@loomui-ng/ui/button';\nimport { cn } from '@loomui-ng/ui/utils';\nimport { UiLayerRoot } from '@loomui-ng/ui/utils';\nimport { nextId } from '@loomui-ng/ui/utils';\nimport { UiPopperContentBase } from '@loomui-ng/ui/utils';\nimport { comboboxContentClass, comboboxEmptyClass, comboboxItemClass, comboboxListClass } from './combobox';\nimport { UiIconSvg } from '@loomui-ng/ui/icon';\nimport { UiElementHost } from '@loomui-ng/ui/utils';\n\n/**\n * Searchable single-select (shadcn \"Combobox\").\n * <div uiCombobox [(value)]=\"v\" class=\"contents\">\n * <button uiComboboxTrigger><span uiComboboxValue placeholder=\"Select framework…\"></span></button>\n * <div uiComboboxContent>\n * <input uiComboboxInput placeholder=\"Search…\" />\n * <div uiComboboxList>\n * <div uiComboboxEmpty>No results.</div>\n * <div uiComboboxItem value=\"next\">Next.js</div>\n * </div>\n * </div>\n * </div>\n * Observed on the live page (Base UI based): trigger role=\"combobox\" aria-haspopup, list role=\"listbox\", items role=\"option\"\n * aria-selected, empty state role=\"status\" aria-live=\"polite\", content data-side/data-align. Not implemented: multi-select\n * chips (`combobox-chips`, `combobox-chip`, clear button) — classes are generated but no behavior is attached.\n */\n@Directive({\n selector: '[uiCombobox], ui-combobox', hostDirectives: [UiElementHost],\n exportAs: 'uiCombobox',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => UiCombobox), multi: true }],\n})\nexport class UiCombobox extends UiLayerRoot implements ControlValueAccessor {\n readonly value = model<string>('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly listId = nextId('ui-combobox-list');\n readonly search = signal('');\n readonly highlighted = signal<string | null>(null);\n readonly items = contentChildren(forwardRef(() => UiComboboxItem), { descendants: true });\n private readonly cvaDisabled = signal(false);\n readonly isDisabled = computed(() => this.disabled() || this.cvaDisabled());\n readonly selectedLabel = computed(() => this.items().find((i) => i.value() === this.value())?.label() ?? '');\n readonly visible = computed(() => this.items().filter((i) => i.visible()));\n readonly hasResults = computed(() => this.visible().length > 0);\n private onChange: (v: string) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor() {\n super();\n effect(() => {\n // reset search + highlight whenever the popup opens\n if (this.open()) {\n this.search.set('');\n queueMicrotask(() => this.ensureHighlight(true));\n }\n });\n }\n\n ensureHighlight(reset = false): void {\n const enabled = this.visible().filter((i) => !i.disabled);\n const selected = enabled.find((i) => i.value() === this.value());\n if (reset) this.highlighted.set((selected ?? enabled[0])?.id ?? null);\n else if (!enabled.some((i) => i.id === this.highlighted())) this.highlighted.set(enabled[0]?.id ?? null);\n }\n move(delta: 1 | -1 | 'first' | 'last'): void {\n const enabled = this.visible().filter((i) => !i.disabled);\n if (!enabled.length) return;\n let idx = enabled.findIndex((i) => i.id === this.highlighted());\n if (delta === 'first') idx = 0;\n else if (delta === 'last') idx = enabled.length - 1;\n else idx = (idx + delta + enabled.length) % enabled.length;\n this.highlighted.set(enabled[idx].id);\n enabled[idx].scrollIntoView();\n }\n choose(v: string): void {\n this.value.set(v);\n this.onChange(v);\n this.close();\n }\n chooseHighlighted(): void {\n this.items().find((i) => i.id === this.highlighted())?.activate();\n }\n\n writeValue(v: string | null): void {\n this.value.set(v ?? '');\n }\n registerOnChange(fn: (v: string) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(d: boolean): void {\n this.cvaDisabled.set(d);\n }\n}\n\n@Component({\n selector: 'button[uiComboboxTrigger], ui-combobox-trigger', hostDirectives: [UiElementHost],\n imports: [UiIconSvg],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n type: 'button',\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'data-slot': 'combobox-trigger',\n '[attr.aria-expanded]': 'root.open()',\n '[attr.aria-controls]': 'root.open() ? root.listId : null',\n '[attr.data-state]': 'root.open() ? \"open\" : \"closed\"',\n '[attr.data-placeholder]': 'root.value() === \"\" ? \"\" : null',\n '[attr.disabled]': '(root.isDisabled()) ? \"\" : null',\n '[attr.class]': 'classes()',\n '(click)': 'root.toggle()',\n '(keydown)': 'onKeydown($event)',\n '(blur)': 'root.onTouched()',\n },\n template: `<ng-content /><svg uiIcon=\"chevrons-up-down\" class=\"pointer-events-none size-4 shrink-0 text-muted-foreground\"></svg>`,\n})\nexport class UiComboboxTrigger {\n protected readonly root = inject(UiCombobox);\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() =>\n cn(buttonVariants({ variant: 'outline' }), 'w-[200px] justify-between font-normal', this.userClass()),\n );\n constructor() {\n this.root.trigger.set(inject<ElementRef<HTMLElement>>(ElementRef).nativeElement);\n }\n protected onKeydown(e: KeyboardEvent): void {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n this.root.open.set(true);\n }\n }\n}\n\n@Directive({\n selector: '[uiComboboxValue], ui-combobox-value', hostDirectives: [UiElementHost],\n host: { 'data-slot': 'combobox-value', '[textContent]': 'text()', '[class.text-muted-foreground]': '!root.selectedLabel()' },\n})\nexport class UiComboboxValue {\n protected readonly root = inject(UiCombobox);\n readonly placeholder = input('');\n protected readonly text = computed(() => this.root.selectedLabel() || this.placeholder());\n}\n\n@Directive({\n selector: '[uiComboboxContent], ui-combobox-content', hostDirectives: [UiElementHost],\n host: {\n role: 'presentation',\n 'data-slot': 'combobox-content',\n 'data-chips': 'false',\n tabindex: '-1',\n '[attr.data-open]': 'root.state() === \"open\" ? \"\" : null',\n '[attr.data-state]': 'root.state()',\n '[attr.data-empty]': '!root.hasResults() ? \"\" : null',\n '[attr.class]': 'classes()',\n },\n})\nexport class UiComboboxContent extends UiPopperContentBase {\n protected readonly root = inject(UiCombobox);\n protected readonly varPrefix = '--radix-combobox';\n override readonly align = input<'start' | 'center' | 'end'>('start');\n protected readonly classes = computed(() => cn(comboboxContentClass, this.userClass()));\n constructor() {\n super();\n this.matchTriggerWidth = true;\n this.init();\n }\n protected override onAttached(): void {\n // Base UI exposes these as CSS variables; the shadcn classes read them.\n const t = this.root.trigger();\n if (t) {\n const r = t.getBoundingClientRect();\n this.el.style.setProperty('--anchor-width', `${r.width}px`);\n this.el.style.setProperty('--available-height', `${window.innerHeight - 16}px`);\n this.el.style.setProperty('--available-width', `${window.innerWidth - 16}px`);\n this.el.style.setProperty('--transform-origin', 'top');\n }\n queueMicrotask(() => this.el.querySelector<HTMLInputElement>('[data-slot=combobox-input]')?.focus());\n }\n}\n\n@Directive({\n selector: 'input[uiComboboxInput]',\n host: {\n 'data-slot': 'combobox-input',\n type: 'text',\n role: 'combobox',\n autocomplete: 'off',\n spellcheck: 'false',\n 'aria-autocomplete': 'list',\n 'aria-expanded': 'true',\n '[attr.aria-controls]': 'root.listId',\n '[attr.aria-activedescendant]': 'root.highlighted()',\n class: 'w-full border-b border-input bg-transparent px-3 py-2 text-sm outline-hidden placeholder:text-muted-foreground',\n '(input)': 'onInput($event)',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class UiComboboxInput {\n protected readonly root = inject(UiCombobox);\n protected onInput(e: Event): void {\n this.root.search.set((e.target as HTMLInputElement).value);\n queueMicrotask(() => this.root.ensureHighlight());\n }\n protected onKeydown(e: KeyboardEvent): void {\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n return this.root.move(1);\n case 'ArrowUp':\n e.preventDefault();\n return this.root.move(-1);\n case 'Home':\n e.preventDefault();\n return this.root.move('first');\n case 'End':\n e.preventDefault();\n return this.root.move('last');\n case 'Enter':\n e.preventDefault();\n return this.root.chooseHighlighted();\n }\n }\n}\n\n@Directive({\n selector: '[uiComboboxList], ui-combobox-list', hostDirectives: [UiElementHost],\n host: { role: 'listbox', tabindex: '-1', 'aria-orientation': 'vertical', 'data-slot': 'combobox-list', '[id]': 'root.listId', '[attr.class]': 'classes()' },\n})\nexport class UiComboboxList {\n protected readonly root = inject(UiCombobox);\n readonly userClass = input<string>('', { alias: 'class' });\n protected readonly classes = computed(() => cn(comboboxListClass, this.userClass()));\n}\n\n@Directive({\n selector: '[uiComboboxEmpty], ui-combobox-empty', hostDirectives: [UiElementHost],\n host: { role: 'status', 'aria-live': 'polite', 'aria-atomic': 'true', 'data-slot': 'combobox-empty', '[hidden]': 'root.hasResults()', '[attr.class]': 'classes()' },\n})\nexport class UiComboboxEmpty {\n protected readonly root = inject(UiCombobox);\n readonly userClass = input<string>('', { alias: 'class' });\n // Observed base uses `hidden … group-data-empty/combobox-content:flex`; we toggle via [hidden] and force flex when shown.\n protected readonly classes = computed(() => cn(comboboxEmptyClass, 'flex', this.userClass()));\n}\n\n@Component({\n selector: '[uiComboboxItem], ui-combobox-item', hostDirectives: [UiElementHost],\n imports: [UiIconSvg],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'option',\n 'data-slot': 'combobox-item',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected()',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : null',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.aria-disabled]': 'disabled ? \"true\" : null',\n '[hidden]': '!visible()',\n '[attr.class]': 'classes()',\n '(click)': 'activate()',\n '(pointermove)': 'onMove()',\n },\n template: `\n <span><ng-content /></span>\n <span class=\"pointer-events-none absolute end-2 flex size-4 items-center justify-center\">\n @if (selected()) {\n <svg uiIcon=\"check\"></svg>\n }\n </span>\n `,\n})\nexport class UiComboboxItem {\n private readonly root = inject(UiCombobox);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n readonly id = nextId('ui-combobox-item');\n readonly value = input<string>('');\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n readonly userClass = input<string>('', { alias: 'class' });\n readonly label = signal('');\n get disabled(): boolean {\n return this.disabledInput();\n }\n protected readonly selected = computed(() => this.root.value() === this.value());\n protected readonly highlighted = computed(() => this.root.highlighted() === this.id);\n readonly visible = computed(() => {\n const q = this.root.search().trim().toLowerCase();\n return !q || (this.label() || this.value()).toLowerCase().includes(q);\n });\n protected readonly classes = computed(() => cn(comboboxItemClass, this.userClass()));\n\n constructor() {\n effect(() => {\n this.value();\n queueMicrotask(() => this.label.set((this.el.querySelector('span')?.textContent ?? '').trim()));\n });\n }\n activate(): void {\n if (!this.disabled) this.root.choose(this.value());\n }\n scrollIntoView(): void {\n this.el.scrollIntoView({ block: 'nearest' });\n }\n protected onMove(): void {\n if (!this.disabled && this.root.highlighted() !== this.id) this.root.highlighted.set(this.id);\n }\n}\n\n/** <ui-combobox-input placeholder=\"Search…\" /> — custom-element form of `<input uiComboboxInput>`. */\n@Component({\n selector: 'ui-combobox-input',\n imports: [UiComboboxInput],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'contents' },\n template: `<input uiComboboxInput [attr.placeholder]=\"placeholder() || null\" [attr.aria-label]=\"ariaLabel() || null\" />`,\n})\nexport class UiComboboxInputElement {\n readonly placeholder = input<string>('');\n readonly ariaLabel = input<string>('', { alias: 'aria-label' });\n}\n\nexport const UI_COMBOBOX = [\n UiCombobox,\n UiComboboxTrigger,\n UiComboboxValue,\n UiComboboxContent,\n UiComboboxInput,\n UiComboboxList,\n UiComboboxEmpty,\n UiComboboxItem,\n UiComboboxInputElement,\n] as const;\n"],"mappings":";;;;;;;AAKA,MAAa,uBACX;AAEF,MAAa,uBACX;AAEF,MAAa,oBACX;AAEF,MAAa,oBACX;AAEF,MAAa,qBACX;AAEF,MAAa,qBACX;AAEF,MAAa,oBACX;AAEF,MAAa,yBACX;AAEF,MAAa,qBACX;AAEF,MAAa,wBAAwB,CAAA;ACcrC,IAAa,aAAb,MAAa,mBAAmB,YAAW;CAChC,QAAQ,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACzB,WAAW,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,WAAA,+BAAA,CAAA;EAAI,WAAW;CAAgB,CAAA;CACrD,SAAS,OAAO,kBAAkB;CAClC,SAAS,OAAO,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CACnB,cAAc,OAAsB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CACzC,QAAQ,gBAAgB,iBAAiB,cAAc,GAAC;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,+BAAA,CAAA;EAAI,aAAa;CAAI,CAAA;CACrE,cAAc,OAAO,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CACnC,aAAa,eAAe,KAAK,SAAQ,KAAM,KAAK,YAAW,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAClE,gBAAgB,eAAe,KAAK,MAAK,CAAE,CAAC,MAAM,MAAM,EAAE,MAAK,MAAO,KAAK,MAAK,CAAE,CAAC,EAAE,MAAK,KAAM,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,gBAAA,CAAA,+BAAA,CAAA,CAAA;CACnG,UAAU,eAAe,KAAK,MAAK,CAAE,CAAC,QAAQ,MAAM,EAAE,QAAO,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACjE,aAAa,eAAe,KAAK,QAAO,CAAE,CAAC,SAAS,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CACvD,iBAAqC,CAAE;CAC/C,kBAA6B,CAAE;CAE/B,cAAA;EACE,MAAK;EACL,aAAY;GAEV,IAAI,KAAK,KAAI,GAAI;IACf,KAAK,OAAO,IAAI,EAAE;IAClB,qBAAqB,KAAK,gBAAgB,IAAI,CAAC;GACjD;EACF,CAAC;CACH;CAEA,gBAAgB,QAAQ,OAAK;EAC3B,MAAM,UAAU,KAAK,QAAO,CAAE,CAAC,QAAQ,MAAM,CAAC,EAAE,QAAQ;EACxD,MAAM,WAAW,QAAQ,MAAM,MAAM,EAAE,MAAK,MAAO,KAAK,MAAK,CAAE;EAC/D,IAAI,OAAO,KAAK,YAAY,KAAK,YAAY,QAAQ,GAAA,EAAK,MAAM,IAAI;OAC/D,IAAI,CAAC,QAAQ,MAAM,MAAM,EAAE,OAAO,KAAK,YAAW,CAAE,GAAG,KAAK,YAAY,IAAI,QAAQ,EAAE,EAAE,MAAM,IAAI;CACzG;CACA,KAAK,OAAgC;EACnC,MAAM,UAAU,KAAK,QAAO,CAAE,CAAC,QAAQ,MAAM,CAAC,EAAE,QAAQ;EACxD,IAAI,CAAC,QAAQ,QAAQ;EACrB,IAAI,MAAM,QAAQ,WAAW,MAAM,EAAE,OAAO,KAAK,YAAW,CAAE;EAC9D,IAAI,UAAU,SAAS,MAAM;OACxB,IAAI,UAAU,QAAQ,MAAM,QAAQ,SAAS;OAC7C,OAAO,MAAM,QAAQ,QAAQ,UAAU,QAAQ;EACpD,KAAK,YAAY,IAAI,QAAQ,IAAI,CAAC,EAAE;EACpC,QAAQ,IAAI,CAAC,eAAc;CAC7B;CACA,OAAO,GAAS;EACd,KAAK,MAAM,IAAI,CAAC;EAChB,KAAK,SAAS,CAAC;EACf,KAAK,MAAK;CACZ;CACA,oBAAiB;EACf,KAAK,MAAK,CAAE,CAAC,MAAM,MAAM,EAAE,OAAO,KAAK,YAAW,CAAE,CAAC,EAAE,SAAQ;CACjE;CAEA,WAAW,GAAgB;EACzB,KAAK,MAAM,IAAI,KAAK,EAAE;CACxB;CACA,iBAAiB,IAAuB;EACtC,KAAK,WAAW;CAClB;CACA,kBAAkB,IAAc;EAC9B,KAAK,YAAY;CACnB;CACA,iBAAiB,GAAU;EACzB,KAAK,YAAY,IAAI,CAAC;CACxB;CA9DW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAU,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAV,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAU,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,UAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA,EAAA,OAAA,cAAA;EAAA,WAFV,CAAC;GAAE,SAAS;GAAmB,aAAa,iBAAiB,UAAU;GAAG,OAAO;EAAI,CAAE;EAAC,SAAA,CAAA;GAAA,cAAA;GAAA,WAAA,GAAA,iBAQjD,cAAc;GAAA,aAAA;GAAA,UAAA;EAAA,CAAA;EAAA,UAAA,CAAA,YAAA;EAAA,iBAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;CAAA,CAAA;;AANrD,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAU,YAAA,CAAA;EALtB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAA6B,gBAAgB,CAAC,aAAa;GACrE,UAAU;GACV,WAAW,CAAC;IAAE,SAAS;IAAmB,aAAa,iBAAgB,UAAW;IAAG,OAAO;GAAI,CAAE;EACnG,CAAA;CAOkC,CAAA;CAAA,sBAAA,CAAA;CAAA,gBAAA;EAAA,OAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,GAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,aAAA;EAAA,CAAA;EAAA,UAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA;IAAA,UAAA;IAAA,OAAA;IAAA,UAAA;GAAA,CAAA;EAAA,CAAA;EAAA,OAAA,CAAA;GAAA,MAAA,GAAA;GAAA,MAAA,CAAA,iBAAiB,cAAc,GAAC;IAAI,aAAa;IAAM,UAAA;GAAA,CAAA;EAAA,CAAA;CAAA;AAAA,CAAA;AAgF1F,IAAa,oBAAb,MAAa,kBAAiB;CACT,OAAO,OAAO,UAAU;CAClC,YAAY,MAAc,IAAE;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAAI,OAAO;CAAO,CAAA;CACpC,UAAU,eAC3B,GAAG,eAAe,EAAE,SAAS,UAAS,CAAE,GAAG,yCAAyC,KAAK,UAAS,CAAE,GACrG,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACD,cAAA;EACE,KAAK,KAAK,QAAQ,IAAI,OAAgC,UAAU,CAAC,CAAC,aAAa;CACjF;CACU,UAAU,GAAgB;EAClC,IAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW;GAChD,EAAE,eAAc;GAChB,KAAK,KAAK,KAAK,IAAI,IAAI;EACzB;CACF;CAdW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAiB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAjB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAiB,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,WAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA;IAAA,QAAA;IAAA,QAAA;IAAA,iBAAA;IAAA,aAAA;GAAA;GAAA,WAAA;IAAA,SAAA;IAAA,WAAA;IAAA,QAAA;GAAA;GAAA,YAAA;IAAA,sBAAA;IAAA,sBAAA;IAAA,mBAAA;IAAA,yBAAA;IAAA,iBAAA;IAAA,cAAA;GAAA;EAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;EAAA,UAFlB;EAAuH,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAjBvH;GAAS,UAAA;GAAA,QAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;GAAA;EAAA,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAmBR,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EArB7B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAAkD,gBAAgB,CAAC,aAAa;GAC1F,SAAS,CAAC,SAAS;GACnB,iBAAiB,wBAAwB;GACzC,MAAM;IACJ,MAAM;IACN,MAAM;IACN,iBAAiB;IACjB,aAAa;IACb,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,2BAA2B;IAC3B,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,UAAU;GACX;GACD,UAAU;EACX,CAAA;;;;;;;;;;;;AAsBD,IAAa,kBAAb,MAAa,gBAAe;CACP,OAAO,OAAO,UAAU;CAClC,cAAc,MAAM,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CACb,OAAO,eAAe,KAAK,KAAK,cAAa,KAAM,KAAK,YAAW,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAH9E,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAe,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAf,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAe,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,aAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA,EAAA,aAAA,iBAAA;GAAA,YAAA;IAAA,eAAA;IAAA,+BAAA;GAAA;EAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;CAAA,CAAA;;AAAf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAJ3B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAAwC,gBAAgB,CAAC,aAAa;GAChF,MAAM;IAAE,aAAa;IAAkB,iBAAiB;IAAU,iCAAiC;GAAuB;EAC3H,CAAA;;;;;;;;;;;AAoBD,IAAa,oBAAb,MAAa,0BAA0B,oBAAmB;CACrC,OAAO,OAAO,UAAU;CACxB,YAAY;CACb,QAAQ,MAAkC,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACjD,UAAU,eAAe,GAAG,sBAAsB,KAAK,UAAS,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACvF,cAAA;EACE,MAAK;EACL,KAAK,oBAAoB;EACzB,KAAK,KAAI;CACX;CACmB,aAAU;EAE3B,MAAM,IAAI,KAAK,KAAK,QAAO;EAC3B,IAAI,GAAG;GACL,MAAM,IAAI,EAAE,sBAAqB;GACjC,KAAK,GAAG,MAAM,YAAY,kBAAkB,GAAG,EAAE,MAAK,GAAI;GAC1D,KAAK,GAAG,MAAM,YAAY,sBAAsB,GAAG,OAAO,cAAc,GAAE,GAAI;GAC9E,KAAK,GAAG,MAAM,YAAY,qBAAqB,GAAG,OAAO,aAAa,GAAE,GAAI;GAC5E,KAAK,GAAG,MAAM,YAAY,sBAAsB,KAAK;EACvD;EACA,qBAAqB,KAAK,GAAG,cAAgC,4BAA4B,CAAC,EAAE,MAAK,CAAE;CACrG;CArBW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAiB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAjB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAiB,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,OAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA;IAAA,QAAA;IAAA,aAAA;IAAA,cAAA;IAAA,YAAA;GAAA;GAAA,YAAA;IAAA,kBAAA;IAAA,mBAAA;IAAA,mBAAA;IAAA,cAAA;GAAA;EAAA;EAAA,iBAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;CAAA,CAAA;;AAAjB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAb7B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAA4C,gBAAgB,CAAC,aAAa;GACpF,MAAM;IACJ,MAAM;IACN,aAAa;IACb,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;GACjB;EACF,CAAA;;;;;;;;;;;;AA0CD,IAAa,kBAAb,MAAa,gBAAe;CACP,OAAO,OAAO,UAAU;CACjC,QAAQ,GAAQ;EACxB,KAAK,KAAK,OAAO,IAAK,EAAE,OAA4B,KAAK;EACzD,qBAAqB,KAAK,KAAK,gBAAe,CAAE;CAClD;CACU,UAAU,GAAgB;EAClC,QAAQ,EAAE,KAAV;GACE,KAAK;IACH,EAAE,eAAc;IAChB,OAAO,KAAK,KAAK,KAAK,CAAC;GACzB,KAAK;IACH,EAAE,eAAc;IAChB,OAAO,KAAK,KAAK,KAAK,EAAE;GAC1B,KAAK;IACH,EAAE,eAAc;IAChB,OAAO,KAAK,KAAK,KAAK,OAAO;GAC/B,KAAK;IACH,EAAE,eAAc;IAChB,OAAO,KAAK,KAAK,KAAK,MAAM;GAC9B,KAAK;IACH,EAAE,eAAc;IAChB,OAAO,KAAK,KAAK,kBAAiB;EACtC;CACF;CAxBW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAe,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAf,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAe,cAAA;EAAA,UAAA;EAAA,MAAA;GAAA,YAAA;IAAA,aAAA;IAAA,QAAA;IAAA,QAAA;IAAA,gBAAA;IAAA,cAAA;IAAA,qBAAA;IAAA,iBAAA;GAAA;GAAA,WAAA;IAAA,SAAA;IAAA,WAAA;GAAA;GAAA,YAAA;IAAA,sBAAA;IAAA,8BAAA;GAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;CAAA,CAAA;;AAAf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAjB3B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM;IACJ,aAAa;IACb,MAAM;IACN,MAAM;IACN,cAAc;IACd,YAAY;IACZ,qBAAqB;IACrB,iBAAiB;IACjB,wBAAwB;IACxB,gCAAgC;IAChC,OAAO;IACP,WAAW;IACX,aAAa;GACd;EACF,CAAA;;;AAgCD,IAAa,iBAAb,MAAa,eAAc;CACN,OAAO,OAAO,UAAU;CAClC,YAAY,MAAc,IAAE;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAAI,OAAO;CAAO,CAAA;CACpC,UAAU,eAAe,GAAG,mBAAmB,KAAK,UAAS,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAHzE,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAc,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAd,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAc,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,WAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA;IAAA,QAAA;IAAA,YAAA;IAAA,oBAAA;IAAA,aAAA;GAAA;GAAA,YAAA;IAAA,MAAA;IAAA,cAAA;GAAA;EAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;CAAA,CAAA;;AAAd,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAc,YAAA,CAAA;EAJ1B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAAsC,gBAAgB,CAAC,aAAa;GAC9E,MAAM;IAAE,MAAM;IAAW,UAAU;IAAM,oBAAoB;IAAY,aAAa;IAAiB,QAAQ;IAAe,gBAAgB;GAAW;EAC1J,CAAA;;;;;;;;;;;AAWD,IAAa,kBAAb,MAAa,gBAAe;CACP,OAAO,OAAO,UAAU;CAClC,YAAY,MAAc,IAAE;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAAI,OAAO;CAAO,CAAA;CAEpC,UAAU,eAAe,GAAG,oBAAoB,QAAQ,KAAK,UAAS,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAJlF,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAe,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAf,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAe,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,WAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,YAAA;IAAA,QAAA;IAAA,aAAA;IAAA,eAAA;IAAA,aAAA;GAAA;GAAA,YAAA;IAAA,UAAA;IAAA,cAAA;GAAA;EAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;CAAA,CAAA;;AAAf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAe,YAAA,CAAA;EAJ3B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAAwC,gBAAgB,CAAC,aAAa;GAChF,MAAM;IAAE,MAAM;IAAU,aAAa;IAAU,eAAe;IAAQ,aAAa;IAAkB,YAAY;IAAqB,gBAAgB;GAAW;EAClK,CAAA;;;;;;;;;;;AAkCD,IAAa,iBAAb,MAAa,eAAc;CACR,OAAO,OAAO,UAAU;CACxB,KAAK,OAAgC,UAAU,CAAC,CAAC;CACzD,KAAK,OAAO,kBAAkB;CAC9B,QAAQ,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACzB,gBAAgB,MAAM,OAAK;EAAA,GAAA,YAAA,EAAA,WAAA,gBAAA,+BAAA,CAAA;EAAI,OAAO;EAAY,WAAW;CAAgB,CAAA;CAC7E,YAAY,MAAc,IAAE;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAAI,OAAO;CAAO,CAAA;CAC9C,QAAQ,OAAO,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAC3B,IAAI,WAAQ;EACV,OAAO,KAAK,cAAa;CAC3B;CACmB,WAAW,eAAe,KAAK,KAAK,MAAK,MAAO,KAAK,MAAK,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;CAC7D,cAAc,eAAe,KAAK,KAAK,YAAW,MAAO,KAAK,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CAC3E,UAAU,eAAc;EAC/B,MAAM,IAAI,KAAK,KAAK,OAAM,CAAE,CAAC,KAAI,CAAE,CAAC,YAAW;EAC/C,OAAO,CAAC,MAAM,KAAK,MAAK,KAAM,KAAK,MAAK,EAAA,CAAI,YAAW,CAAE,CAAC,SAAS,CAAC;CACtE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CACiB,UAAU,eAAe,GAAG,mBAAmB,KAAK,UAAS,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAEpF,cAAA;EACE,aAAY;GACV,KAAK,MAAK;GACV,qBAAqB,KAAK,MAAM,KAAK,KAAK,GAAG,cAAc,MAAM,CAAC,EAAE,eAAe,GAAA,CAAI,KAAI,CAAE,CAAC;EAChG,CAAC;CACH;CACA,WAAQ;EACN,IAAI,CAAC,KAAK,UAAU,KAAK,KAAK,OAAO,KAAK,MAAK,CAAE;CACnD;CACA,iBAAc;EACZ,KAAK,GAAG,eAAe,EAAE,OAAO,UAAS,CAAE;CAC7C;CACU,SAAM;EACd,IAAI,CAAC,KAAK,YAAY,KAAK,KAAK,YAAW,MAAO,KAAK,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,EAAE;CAC9F;CAjCW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAc,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAd,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAc,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA;GAAA,YAAA;IAAA,QAAA;IAAA,aAAA;GAAA;GAAA,WAAA;IAAA,SAAA;IAAA,eAAA;GAAA;GAAA,YAAA;IAAA,MAAA;IAAA,sBAAA;IAAA,yBAAA;IAAA,sBAAA;IAAA,sBAAA;IAAA,UAAA;IAAA,cAAA;GAAA;EAAA;EAAA,gBAAA,CAAA,EAAA,WAAA,GAAA,cAAA,CAAA;EAAA,UAAA;EAAA,UATf;;;;;;;;EAOT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAtBS;GAAS,UAAA;GAAA,QAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;GAAA;EAAA,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAwBR,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAc,YAAA,CAAA;EA1B1B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GAAsC,gBAAgB,CAAC,aAAa;GAC9E,SAAS,CAAC,SAAS;GACnB,iBAAiB,wBAAwB;GACzC,MAAM;IACJ,MAAM;IACN,aAAa;IACb,QAAQ;IACR,wBAAwB;IACxB,2BAA2B;IAC3B,wBAAwB;IACxB,wBAAwB;IACxB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,iBAAiB;GAClB;GACD,UAAU;;;;;;;;EAQX,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CD,IAAa,yBAAb,MAAa,uBAAsB;CACxB,cAAc,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CAC/B,YAAY,MAAc,IAAE;EAAA,GAAA,YAAA,EAAA,WAAA,YAAA,+BAAA,CAAA;EAAI,OAAO;CAAY,CAAA;CAFjD,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAsB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAtB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAsB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,aAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,WAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA,EAAA,gBAAA,WAAA;EAAA,UAAA;EAAA,UAFvB;EAA8G,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MApH7G;GAAe,UAAA;EAAA,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAsHf,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAsB,YAAA,CAAA;EAPlC,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,eAAe;GACzB,iBAAiB,wBAAwB;GACzC,MAAM,EAAE,OAAO,WAAU;GACzB,UAAU;EACX,CAAA;;;;;;;;;;;;;;;;;;;;;AAMD,MAAa,cAAc;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACQ"}