@agent-ui-kit/web-components 0.0.8 → 0.0.15

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 (563) hide show
  1. package/README.md +67 -4
  2. package/dist/agent-ui.css +1 -1
  3. package/dist/api.colors.json +2 -2
  4. package/dist/api.colors.yaml +2 -2
  5. package/dist/api.components.json +8214 -2794
  6. package/dist/api.tokens.json +35 -3
  7. package/dist/api.tokens.yaml +27 -3
  8. package/dist/blocks/agent-chat/agent-chat.d.ts +0 -0
  9. package/dist/blocks/announcement-card/announcement-card.d.ts +0 -0
  10. package/dist/blocks/bpm-process/bpm-process.d.ts +0 -0
  11. package/dist/blocks/chart-activity/chart-activity.d.ts +0 -0
  12. package/dist/blocks/chart-card/chart-card.d.ts +0 -0
  13. package/dist/blocks/chart-donut/chart-donut.d.ts +0 -0
  14. package/dist/blocks/chart-grouped/chart-grouped.d.ts +0 -0
  15. package/dist/blocks/chart-horizontal/chart-horizontal.d.ts +0 -0
  16. package/dist/blocks/chart-interactive/chart-interactive.d.ts +0 -0
  17. package/dist/blocks/chart-labeled/chart-labeled.d.ts +0 -0
  18. package/dist/blocks/checkout-form/checkout-form.d.ts +0 -0
  19. package/dist/blocks/clinical-trial/clinical-trial.d.ts +0 -0
  20. package/dist/blocks/contributors/contributors.d.ts +0 -0
  21. package/dist/blocks/cyber-threat/cyber-threat.d.ts +0 -0
  22. package/dist/blocks/dashboard-layout/dashboard-layout.d.ts +0 -0
  23. package/dist/blocks/data-eng-dag/data-eng-dag.d.ts +0 -0
  24. package/dist/blocks/date-picker/date-picker.d.ts +0 -0
  25. package/dist/blocks/ddx-workflow/ddx-workflow.d.ts +0 -0
  26. package/dist/blocks/empty-state/empty-state.d.ts +0 -0
  27. package/dist/blocks/env-variables/env-variables.d.ts +0 -0
  28. package/dist/blocks/feature-upgrade/feature-upgrade.d.ts +0 -0
  29. package/dist/blocks/financial-risk/financial-risk.d.ts +0 -0
  30. package/dist/blocks/flow-editor/flow-editor.d.ts +0 -0
  31. package/dist/blocks/gen-ai-pipeline/gen-ai-pipeline.d.ts +0 -0
  32. package/dist/blocks/index.d.ts +0 -0
  33. package/dist/blocks/issue-assign/issue-assign.d.ts +0 -0
  34. package/dist/blocks/keyboard-shortcuts/keyboard-shortcuts.d.ts +0 -0
  35. package/dist/blocks/login-branded/login-branded.d.ts +0 -0
  36. package/dist/blocks/login-email-only/login-email-only.d.ts +0 -0
  37. package/dist/blocks/login-form/login-form.d.ts +0 -0
  38. package/dist/blocks/login-simple/login-simple.d.ts +0 -0
  39. package/dist/blocks/login-social/login-social.d.ts +0 -0
  40. package/dist/blocks/login-two-column/login-two-column.d.ts +0 -0
  41. package/dist/blocks/marketing-automation/marketing-automation.d.ts +0 -0
  42. package/dist/blocks/member-list/member-list.d.ts +0 -0
  43. package/dist/blocks/ml-pipeline/ml-pipeline.d.ts +0 -0
  44. package/dist/blocks/nav-card/nav-card.d.ts +0 -0
  45. package/dist/blocks/notification-list/notification-list.d.ts +0 -0
  46. package/dist/blocks/oncology-pathway/oncology-pathway.d.ts +0 -0
  47. package/dist/blocks/pricing-card/pricing-card.d.ts +0 -0
  48. package/dist/blocks/processing-state/processing-state.d.ts +0 -0
  49. package/dist/blocks/profile-card/profile-card.d.ts +0 -0
  50. package/dist/blocks/saas-onboarding/saas-onboarding.d.ts +0 -0
  51. package/dist/blocks/settings-form/settings-form.d.ts +0 -0
  52. package/dist/blocks/settings-panel/settings-panel.d.ts +0 -0
  53. package/dist/blocks/sidebar-nav/sidebar-nav.d.ts +0 -0
  54. package/dist/blocks/signup-form/signup-form.d.ts +0 -0
  55. package/dist/blocks/stat-cards/stat-cards.d.ts +0 -0
  56. package/dist/blocks/status-card/status-card.d.ts +0 -0
  57. package/dist/blocks/suggested-labs/suggested-labs.d.ts +0 -0
  58. package/dist/blocks/supply-chain/supply-chain.d.ts +0 -0
  59. package/dist/blocks/survey-card/survey-card.d.ts +0 -0
  60. package/dist/blocks/tabbed-panel/tabbed-panel.d.ts +0 -0
  61. package/dist/blocks/team-empty/team-empty.d.ts +0 -0
  62. package/dist/blocks/usage-billing/usage-billing.d.ts +0 -0
  63. package/dist/blocks-incoming/action-toolbar/action-toolbar.d.ts +0 -0
  64. package/dist/blocks-incoming/agent-artifact-card/agent-artifact-card.d.ts +0 -0
  65. package/dist/blocks-incoming/agent-chat-response/agent-chat-response.d.ts +0 -0
  66. package/dist/blocks-incoming/agent-code-result/agent-code-result.d.ts +0 -0
  67. package/dist/blocks-incoming/agent-context-panel/agent-context-panel.d.ts +0 -0
  68. package/dist/blocks-incoming/agent-feedback-controls/agent-feedback-controls.d.ts +0 -0
  69. package/dist/blocks-incoming/agent-follow-up-chips/agent-follow-up-chips.d.ts +0 -0
  70. package/dist/blocks-incoming/agent-model-selector/agent-model-selector.d.ts +0 -0
  71. package/dist/blocks-incoming/agent-prompt-input/agent-prompt-input.d.ts +0 -0
  72. package/dist/blocks-incoming/agent-streaming-message/agent-streaming-message.d.ts +0 -0
  73. package/dist/blocks-incoming/agent-suggestion-card/agent-suggestion-card.d.ts +0 -0
  74. package/dist/blocks-incoming/agent-task-card/agent-task-card.d.ts +0 -0
  75. package/dist/blocks-incoming/agent-thinking-state/agent-thinking-state.d.ts +0 -0
  76. package/dist/blocks-incoming/agent-tool-use-card/agent-tool-use-card.d.ts +0 -0
  77. package/dist/blocks-incoming/auth-card/auth-card.d.ts +0 -0
  78. package/dist/blocks-incoming/commerce-pricing-table/commerce-pricing-table.d.ts +0 -0
  79. package/dist/blocks-incoming/comms-chat-thread/comms-chat-thread.d.ts +0 -0
  80. package/dist/blocks-incoming/comms-notification-list/comms-notification-list.d.ts +0 -0
  81. package/dist/blocks-incoming/content-article-card/content-article-card.d.ts +0 -0
  82. package/dist/blocks-incoming/dashboard-kpi-grid/dashboard-kpi-grid.d.ts +0 -0
  83. package/dist/blocks-incoming/data-activity-log/data-activity-log.d.ts +0 -0
  84. package/dist/blocks-incoming/data-metric-card/data-metric-card.d.ts +0 -0
  85. package/dist/blocks-incoming/data-table/data-table.d.ts +0 -0
  86. package/dist/blocks-incoming/data-timeline/data-timeline.d.ts +0 -0
  87. package/dist/blocks-incoming/feedback-alert-banner/feedback-alert-banner.d.ts +0 -0
  88. package/dist/blocks-incoming/feedback-empty-state/feedback-empty-state.d.ts +0 -0
  89. package/dist/blocks-incoming/feedback-progress-stepper/feedback-progress-stepper.d.ts +0 -0
  90. package/dist/blocks-incoming/form-settings-section/form-settings-section.d.ts +0 -0
  91. package/dist/blocks-incoming/game-battleship/game-battleship.d.ts +0 -0
  92. package/dist/blocks-incoming/game-chess/game-chess.d.ts +0 -0
  93. package/dist/blocks-incoming/game-connect-four/game-connect-four.d.ts +0 -0
  94. package/dist/blocks-incoming/game-tic-tac-toe/game-tic-tac-toe.d.ts +0 -0
  95. package/dist/blocks-incoming/list-kanban-board/list-kanban-board.d.ts +0 -0
  96. package/dist/blocks-incoming/media-image-gallery/media-image-gallery.d.ts +0 -0
  97. package/dist/blocks-incoming/nav-sidebar/nav-sidebar.d.ts +0 -0
  98. package/dist/blocks-incoming/onboard-stepper/onboard-stepper.d.ts +0 -0
  99. package/dist/blocks-incoming/overlay-confirmation-modal/overlay-confirmation-modal.d.ts +0 -0
  100. package/dist/blocks-incoming/overlay-dropdown-menu/overlay-dropdown-menu.d.ts +0 -0
  101. package/dist/blocks-incoming/user-profile-card/user-profile-card.d.ts +0 -0
  102. package/dist/blocks-incoming/user-team-list/user-team-list.d.ts +0 -0
  103. package/dist/chunks/{agent-ciCayeod.js → agent-BF_R_HJk.js} +68 -64
  104. package/dist/chunks/{agent-ciCayeod.js.map → agent-BF_R_HJk.js.map} +1 -1
  105. package/dist/chunks/meter-Dju8ik6C.js +5395 -0
  106. package/dist/chunks/meter-Dju8ik6C.js.map +1 -0
  107. package/dist/components/accordion/accordion-item.d.ts +9 -0
  108. package/dist/components/accordion/accordion.d.ts +9 -0
  109. package/dist/components/accordion/index.d.ts +2 -0
  110. package/dist/components/agent/agent-activity.d.ts +13 -0
  111. package/dist/components/agent/agent-feed.d.ts +13 -0
  112. package/dist/components/agent/agent-input.d.ts +18 -0
  113. package/dist/components/agent/agent-message.d.ts +22 -0
  114. package/dist/components/agent/agent-panel.d.ts +16 -0
  115. package/dist/components/agent/agent-prompt.d.ts +7 -0
  116. package/dist/components/agent/agent-seeds.d.ts +15 -0
  117. package/dist/components/agent/agent-text.d.ts +14 -0
  118. package/dist/components/agent/agent-thread.d.ts +11 -0
  119. package/dist/components/agent/index.d.ts +9 -0
  120. package/dist/components/agent.js +6 -6
  121. package/dist/components/alert/alert.d.ts +3 -0
  122. package/dist/components/alert/index.d.ts +1 -0
  123. package/dist/components/app-shell/app-shell.d.ts +4 -0
  124. package/dist/components/app-shell/index.d.ts +1 -0
  125. package/dist/components/avatar/avatar.d.ts +0 -0
  126. package/dist/components/avatar-group/avatar-group.d.ts +10 -0
  127. package/dist/components/avatar-group/index.d.ts +1 -0
  128. package/dist/components/badge/badge.d.ts +0 -0
  129. package/dist/components/bar/bar.d.ts +0 -0
  130. package/dist/components/breadcrumb/breadcrumb-item.d.ts +8 -0
  131. package/dist/components/breadcrumb/breadcrumb.d.ts +9 -0
  132. package/dist/components/breadcrumb/index.d.ts +2 -0
  133. package/dist/components/button/button.d.ts +17 -0
  134. package/dist/components/button/index.d.ts +1 -0
  135. package/dist/components/button-group/button-group.d.ts +0 -0
  136. package/dist/components/calendar/calendar.d.ts +26 -0
  137. package/dist/components/calendar/index.d.ts +3 -0
  138. package/dist/components/calendar/store/calendar-store.d.ts +60 -0
  139. package/dist/components/calendar-picker/calendar-picker.d.ts +14 -0
  140. package/dist/components/calendar-picker/index.d.ts +1 -0
  141. package/dist/components/calendar-range-picker/calendar-range-picker.d.ts +14 -0
  142. package/dist/components/calendar-range-picker/index.d.ts +1 -0
  143. package/dist/components/canvas/canvas.d.ts +19 -0
  144. package/dist/components/canvas/index.d.ts +1 -0
  145. package/dist/components/carousel/carousel.d.ts +13 -0
  146. package/dist/components/carousel/index.d.ts +1 -0
  147. package/dist/components/checkbox/checkbox.d.ts +18 -0
  148. package/dist/components/checkbox/index.d.ts +1 -0
  149. package/dist/components/chip/chip.d.ts +8 -0
  150. package/dist/components/chip/index.d.ts +1 -0
  151. package/dist/components/code/code.d.ts +0 -0
  152. package/dist/components/code-block/code-block.d.ts +10 -0
  153. package/dist/components/code-block/index.d.ts +1 -0
  154. package/dist/components/color-area/color-area.d.ts +12 -0
  155. package/dist/components/color-area/index.d.ts +1 -0
  156. package/dist/components/color-field/color-field.d.ts +10 -0
  157. package/dist/components/color-field/index.d.ts +1 -0
  158. package/dist/components/color-picker/color-picker.d.ts +11 -0
  159. package/dist/components/color-picker/index.d.ts +1 -0
  160. package/dist/components/color-picker/oklch-utils.d.ts +18 -0
  161. package/dist/components/color-slider/color-slider.d.ts +15 -0
  162. package/dist/components/color-slider/index.d.ts +1 -0
  163. package/dist/components/color-swatch/color-swatch.d.ts +0 -0
  164. package/dist/components/command/command-empty.d.ts +4 -0
  165. package/dist/components/command/command-group.d.ts +6 -0
  166. package/dist/components/command/command-input.d.ts +12 -0
  167. package/dist/components/command/command-item.d.ts +10 -0
  168. package/dist/components/command/command-list.d.ts +4 -0
  169. package/dist/components/command/command.d.ts +6 -0
  170. package/dist/components/command/index.d.ts +6 -0
  171. package/dist/components/container/container.d.ts +11 -0
  172. package/dist/components/container/index.d.ts +1 -0
  173. package/dist/components/content/content.d.ts +0 -0
  174. package/dist/components/context-menu/context-menu.d.ts +12 -0
  175. package/dist/components/context-menu/index.d.ts +1 -0
  176. package/dist/components/copy-button/copy-button.d.ts +10 -0
  177. package/dist/components/copy-button/index.d.ts +1 -0
  178. package/dist/components/date-field/date-field.d.ts +13 -0
  179. package/dist/components/date-field/index.d.ts +1 -0
  180. package/dist/components/description-list/description-list.d.ts +0 -0
  181. package/dist/components/dialog/dialog.d.ts +12 -0
  182. package/dist/components/dialog/index.d.ts +1 -0
  183. package/dist/components/disclosure/disclosure.d.ts +10 -0
  184. package/dist/components/disclosure/index.d.ts +1 -0
  185. package/dist/components/disclosure-group/disclosure-group.d.ts +8 -0
  186. package/dist/components/disclosure-group/index.d.ts +1 -0
  187. package/dist/components/divider/divider.d.ts +0 -0
  188. package/dist/components/drawer/drawer.d.ts +13 -0
  189. package/dist/components/drawer/index.d.ts +1 -0
  190. package/dist/components/dropdown-menu/dropdown-menu.d.ts +12 -0
  191. package/dist/components/dropdown-menu/index.d.ts +1 -0
  192. package/dist/components/editor/context.d.ts +15 -0
  193. package/dist/components/editor/editor-layer.d.ts +11 -0
  194. package/dist/components/editor/editor.d.ts +32 -0
  195. package/dist/components/editor/index.d.ts +4 -0
  196. package/dist/components/editor.js +1 -1
  197. package/dist/components/empty-state/empty-state.d.ts +10 -0
  198. package/dist/components/empty-state/index.d.ts +1 -0
  199. package/dist/components/feed/feed.d.ts +11 -0
  200. package/dist/components/feed/index.d.ts +1 -0
  201. package/dist/components/field/index.d.ts +0 -0
  202. package/dist/components/fieldset/fieldset.d.ts +0 -0
  203. package/dist/components/file-upload/file-upload.d.ts +13 -0
  204. package/dist/components/file-upload/index.d.ts +1 -0
  205. package/dist/components/footer/footer.d.ts +0 -0
  206. package/dist/components/graph/graph-layer.d.ts +3 -0
  207. package/dist/components/graph/graph-node.d.ts +13 -0
  208. package/dist/components/graph/graph-noodle.d.ts +19 -0
  209. package/dist/components/graph/graph-port.d.ts +17 -0
  210. package/dist/components/graph/graph-ui.d.ts +10 -0
  211. package/dist/components/graph/index.d.ts +5 -0
  212. package/dist/components/graph.js +1 -1
  213. package/dist/components/grid/grid.d.ts +0 -0
  214. package/dist/components/gripper/gripper.d.ts +9 -0
  215. package/dist/components/gripper/index.d.ts +1 -0
  216. package/dist/components/header/header.d.ts +0 -0
  217. package/dist/components/heading/heading.d.ts +0 -0
  218. package/dist/components/hover-card/hover-card.d.ts +11 -0
  219. package/dist/components/hover-card/index.d.ts +1 -0
  220. package/dist/components/icon/icon.d.ts +12 -0
  221. package/dist/components/icon/index.d.ts +2 -0
  222. package/dist/components/icon/registry.d.ts +8 -0
  223. package/dist/components/image/image.d.ts +13 -0
  224. package/dist/components/image/index.d.ts +1 -0
  225. package/dist/components/index.d.ts +72 -0
  226. package/dist/components/input/index.d.ts +2 -0
  227. package/dist/components/input/input-otp.d.ts +17 -0
  228. package/dist/components/input/input.d.ts +29 -0
  229. package/dist/components/input-group/input-group.d.ts +0 -0
  230. package/dist/components/inset/inset.d.ts +0 -0
  231. package/dist/components/kbd/kbd.d.ts +0 -0
  232. package/dist/components/link/index.d.ts +1 -0
  233. package/dist/components/link/link.d.ts +3 -0
  234. package/dist/components/meter/index.d.ts +1 -0
  235. package/dist/components/meter/meter.d.ts +8 -0
  236. package/dist/components/nav-item/index.d.ts +1 -0
  237. package/dist/components/nav-item/nav-item.d.ts +3 -0
  238. package/dist/components/noodles/datasets.d.ts +16 -0
  239. package/dist/components/noodles/index.d.ts +3 -0
  240. package/dist/components/noodles/noodle-controller.d.ts +71 -0
  241. package/dist/components/noodles/noodles.d.ts +30 -0
  242. package/dist/components/notification-center/index.d.ts +2 -0
  243. package/dist/components/notification-center/notification-center.d.ts +27 -0
  244. package/dist/components/optgroup/index.d.ts +1 -0
  245. package/dist/components/optgroup/optgroup.d.ts +9 -0
  246. package/dist/components/option/index.d.ts +1 -0
  247. package/dist/components/option/option.d.ts +11 -0
  248. package/dist/components/page/index.d.ts +3 -0
  249. package/dist/components/page/page-context.d.ts +4 -0
  250. package/dist/components/page/page-main.d.ts +3 -0
  251. package/dist/components/page/page.d.ts +4 -0
  252. package/dist/components/pagination/index.d.ts +1 -0
  253. package/dist/components/pagination/pagination.d.ts +10 -0
  254. package/dist/components/pane/index.d.ts +2 -0
  255. package/dist/components/pane/pane.d.ts +27 -0
  256. package/dist/components/pane/panes.d.ts +10 -0
  257. package/dist/components/preview-app/index.d.ts +1 -0
  258. package/dist/components/preview-app/preview-app.d.ts +8 -0
  259. package/dist/components/progress/index.d.ts +1 -0
  260. package/dist/components/progress/progress.d.ts +6 -0
  261. package/dist/components/progress-circle/index.d.ts +1 -0
  262. package/dist/components/progress-circle/progress-circle.d.ts +9 -0
  263. package/dist/components/radio/index.d.ts +2 -0
  264. package/dist/components/radio/radio-group.d.ts +10 -0
  265. package/dist/components/radio/radio.d.ts +17 -0
  266. package/dist/components/range/index.d.ts +1 -0
  267. package/dist/components/range/range.d.ts +18 -0
  268. package/dist/components/root/index.d.ts +1 -0
  269. package/dist/components/root/root.d.ts +4 -0
  270. package/dist/components/segmented-control/index.d.ts +2 -0
  271. package/dist/components/segmented-control/segment.d.ts +8 -0
  272. package/dist/components/segmented-control/segmented-control.d.ts +13 -0
  273. package/dist/components/select/index.d.ts +1 -0
  274. package/dist/components/select/select.d.ts +37 -0
  275. package/dist/components/sidebar/index.d.ts +4 -0
  276. package/dist/components/sidebar/sidebar-content.d.ts +4 -0
  277. package/dist/components/sidebar/sidebar-footer.d.ts +4 -0
  278. package/dist/components/sidebar/sidebar-header.d.ts +4 -0
  279. package/dist/components/sidebar/sidebar.d.ts +14 -0
  280. package/dist/components/skeleton/index.d.ts +1 -0
  281. package/dist/components/skeleton/skeleton.d.ts +3 -0
  282. package/dist/components/sparkline/index.d.ts +1 -0
  283. package/dist/components/sparkline/sparkline.d.ts +8 -0
  284. package/dist/components/spinner/index.d.ts +1 -0
  285. package/dist/components/spinner/spinner.d.ts +3 -0
  286. package/dist/components/stack/stack.d.ts +0 -0
  287. package/dist/components/stat/index.d.ts +1 -0
  288. package/dist/components/stat/stat.d.ts +15 -0
  289. package/dist/components/stepper/index.d.ts +2 -0
  290. package/dist/components/stepper/step.d.ts +3 -0
  291. package/dist/components/stepper/stepper.d.ts +3 -0
  292. package/dist/components/switch/index.d.ts +1 -0
  293. package/dist/components/switch/switch.d.ts +16 -0
  294. package/dist/components/tab/index.d.ts +3 -0
  295. package/dist/components/tab/tab-panel.d.ts +7 -0
  296. package/dist/components/tab/tab.d.ts +8 -0
  297. package/dist/components/tab/tabs.d.ts +9 -0
  298. package/dist/components/table/index.d.ts +7 -0
  299. package/dist/components/table/table-body.d.ts +3 -0
  300. package/dist/components/table/table-cell.d.ts +3 -0
  301. package/dist/components/table/table-column.d.ts +11 -0
  302. package/dist/components/table/table-head.d.ts +3 -0
  303. package/dist/components/table/table-header.d.ts +3 -0
  304. package/dist/components/table/table-row.d.ts +3 -0
  305. package/dist/components/table/table.d.ts +16 -0
  306. package/dist/components/tag-group/index.d.ts +1 -0
  307. package/dist/components/tag-group/tag-group.d.ts +10 -0
  308. package/dist/components/text/text.d.ts +0 -0
  309. package/dist/components/textarea/index.d.ts +1 -0
  310. package/dist/components/textarea/textarea.d.ts +23 -0
  311. package/dist/components/time-field/index.d.ts +1 -0
  312. package/dist/components/time-field/time-field.d.ts +15 -0
  313. package/dist/components/toast/index.d.ts +2 -0
  314. package/dist/components/toast/toast.d.ts +19 -0
  315. package/dist/components/tooltip/index.d.ts +1 -0
  316. package/dist/components/tooltip/tooltip.d.ts +9 -0
  317. package/dist/components/tree/index.d.ts +2 -0
  318. package/dist/components/tree/tree-item.d.ts +11 -0
  319. package/dist/components/tree/tree.d.ts +6 -0
  320. package/dist/components/wrap/wrap.d.ts +0 -0
  321. package/dist/components.js +117 -3127
  322. package/dist/components.js.map +1 -1
  323. package/dist/docs/blocks/chart-interactive.yaml +4 -10
  324. package/dist/docs/blocks/checkout-form.yaml +13 -13
  325. package/dist/docs/blocks/contributors.yaml +25 -26
  326. package/dist/docs/blocks/dashboard-layout.yaml +24 -42
  327. package/dist/docs/blocks/empty-state.yaml +4 -9
  328. package/dist/docs/blocks/env-variables.yaml +2 -2
  329. package/dist/docs/blocks/feature-upgrade.yaml +4 -4
  330. package/dist/docs/blocks/issue-assign.yaml +7 -7
  331. package/dist/docs/blocks/login-two-column.yaml +6 -6
  332. package/dist/docs/blocks/profile-card.yaml +12 -21
  333. package/dist/docs/blocks/settings-form.yaml +4 -4
  334. package/dist/docs/blocks/sidebar-nav.yaml +19 -19
  335. package/dist/docs/blocks/stat-cards.yaml +9 -26
  336. package/dist/docs/blocks/status-card.yaml +3 -3
  337. package/dist/docs/blocks/suggested-labs.yaml +4 -4
  338. package/dist/docs/blocks/survey-card.yaml +9 -9
  339. package/dist/docs/blocks/tabbed-panel.yaml +1 -1
  340. package/dist/docs/blocks/team-empty.yaml +6 -14
  341. package/dist/docs/blocks/usage-billing.yaml +12 -37
  342. package/dist/docs/components/accordion-item.yaml +13 -21
  343. package/dist/docs/components/accordion.yaml +23 -29
  344. package/dist/docs/components/agent-activity.yaml +27 -39
  345. package/dist/docs/components/agent-feed.yaml +15 -22
  346. package/dist/docs/components/agent-input.yaml +238 -0
  347. package/dist/docs/components/agent-message.yaml +29 -48
  348. package/dist/docs/components/agent-panel.yaml +21 -24
  349. package/dist/docs/components/agent-prompt.yaml +28 -46
  350. package/dist/docs/components/agent-seeds.yaml +15 -23
  351. package/dist/docs/components/agent-text.yaml +14 -24
  352. package/dist/docs/components/agent-thread.yaml +15 -24
  353. package/dist/docs/components/alert.yaml +81 -0
  354. package/dist/docs/components/avatar-group.yaml +113 -0
  355. package/dist/docs/components/avatar.yaml +99 -0
  356. package/dist/docs/components/badge.yaml +110 -0
  357. package/dist/docs/components/bar.yaml +84 -0
  358. package/dist/docs/components/breadcrumb-item.yaml +8 -17
  359. package/dist/docs/components/breadcrumb.yaml +60 -25
  360. package/dist/docs/components/button-group.yaml +93 -0
  361. package/dist/docs/components/button.yaml +177 -261
  362. package/dist/docs/components/calendar-picker.yaml +122 -0
  363. package/dist/docs/components/calendar-range-picker.yaml +121 -0
  364. package/dist/docs/components/calendar.yaml +11 -29
  365. package/dist/docs/components/canvas.yaml +44 -61
  366. package/dist/docs/components/checkbox.yaml +37 -49
  367. package/dist/docs/components/chip.yaml +125 -0
  368. package/dist/docs/components/code-block.yaml +127 -0
  369. package/dist/docs/components/code.yaml +37 -0
  370. package/dist/docs/components/color-area.yaml +119 -0
  371. package/dist/docs/components/color-field.yaml +121 -0
  372. package/dist/docs/components/color-picker.yaml +104 -0
  373. package/dist/docs/components/color-slider.yaml +153 -0
  374. package/dist/docs/components/color-swatch.yaml +98 -0
  375. package/dist/docs/components/command.yaml +13 -18
  376. package/dist/docs/components/container.yaml +83 -73
  377. package/dist/docs/components/content.yaml +100 -0
  378. package/dist/docs/components/context-menu.yaml +93 -0
  379. package/dist/docs/components/date-field.yaml +163 -0
  380. package/dist/docs/components/description-list.yaml +81 -0
  381. package/dist/docs/components/disclosure-group.yaml +88 -0
  382. package/dist/docs/components/disclosure.yaml +95 -0
  383. package/dist/docs/components/divider.yaml +63 -0
  384. package/dist/docs/components/dropdown-menu.yaml +137 -0
  385. package/dist/docs/components/feed.yaml +15 -24
  386. package/dist/docs/components/field.yaml +50 -71
  387. package/dist/docs/components/fieldset.yaml +92 -0
  388. package/dist/docs/components/footer.yaml +147 -0
  389. package/dist/docs/components/grid.yaml +87 -0
  390. package/dist/docs/components/gripper.yaml +11 -23
  391. package/dist/docs/components/header.yaml +168 -0
  392. package/dist/docs/components/heading.yaml +54 -0
  393. package/dist/docs/components/hover-card.yaml +77 -0
  394. package/dist/docs/components/icon.yaml +32 -65
  395. package/dist/docs/components/index.yaml +168 -0
  396. package/dist/docs/components/input-group.yaml +102 -0
  397. package/dist/docs/components/input-otp.yaml +20 -19
  398. package/dist/docs/components/input.yaml +103 -118
  399. package/dist/docs/components/inset.yaml +59 -0
  400. package/dist/docs/components/kbd.yaml +57 -0
  401. package/dist/docs/components/link.yaml +76 -0
  402. package/dist/docs/components/meter.yaml +78 -0
  403. package/dist/docs/components/nav-item.yaml +104 -0
  404. package/dist/docs/components/noodles.yaml +72 -104
  405. package/dist/docs/components/option.yaml +12 -23
  406. package/dist/docs/components/pagination.yaml +21 -18
  407. package/dist/docs/components/pane.yaml +18 -32
  408. package/dist/docs/components/panes.yaml +19 -27
  409. package/dist/docs/components/progress-circle.yaml +114 -0
  410. package/dist/docs/components/progress.yaml +88 -0
  411. package/dist/docs/components/radio-group.yaml +99 -40
  412. package/dist/docs/components/radio.yaml +40 -41
  413. package/dist/docs/components/range.yaml +24 -27
  414. package/dist/docs/components/segmented-control.yaml +58 -17
  415. package/dist/docs/components/select.yaml +80 -100
  416. package/dist/docs/components/skeleton.yaml +81 -0
  417. package/dist/docs/components/sparkline.yaml +71 -0
  418. package/dist/docs/components/spinner.yaml +74 -0
  419. package/dist/docs/components/stack.yaml +126 -0
  420. package/dist/docs/components/step.yaml +91 -0
  421. package/dist/docs/components/stepper.yaml +84 -0
  422. package/dist/docs/components/switch.yaml +36 -47
  423. package/dist/docs/components/tab-panel.yaml +27 -18
  424. package/dist/docs/components/tab.yaml +25 -22
  425. package/dist/docs/components/table-header.yaml +22 -12
  426. package/dist/docs/components/tabs.yaml +103 -20
  427. package/dist/docs/components/tag-group.yaml +106 -0
  428. package/dist/docs/components/text.yaml +67 -0
  429. package/dist/docs/components/textarea.yaml +43 -60
  430. package/dist/docs/components/time-field.yaml +161 -0
  431. package/dist/docs/components/toast.yaml +13 -30
  432. package/dist/docs/components/tooltip.yaml +56 -49
  433. package/dist/docs/components/tree-item.yaml +9 -10
  434. package/dist/docs/components/tree.yaml +127 -10
  435. package/dist/docs/components/wrap.yaml +60 -0
  436. package/dist/docs/traits/toggle-theme.yaml +34 -0
  437. package/dist/element/agent-element.d.ts +29 -0
  438. package/dist/element/context.d.ts +20 -0
  439. package/dist/element/define.d.ts +2 -0
  440. package/dist/element/index.d.ts +4 -0
  441. package/dist/element/types.d.ts +23 -0
  442. package/dist/element.js +1 -1
  443. package/dist/icons.d.ts +1 -0
  444. package/dist/icons.js +85 -59
  445. package/dist/icons.js.map +1 -1
  446. package/dist/reactivity.js +2 -2
  447. package/dist/register.d.ts +0 -0
  448. package/dist/register.js +417 -376
  449. package/dist/register.js.map +1 -1
  450. package/dist/store.js +1 -1
  451. package/dist/styles-entry.d.ts +0 -0
  452. package/dist/traits/attach.d.ts +12 -0
  453. package/dist/traits/auto-dismiss/auto-dismiss.d.ts +0 -0
  454. package/dist/traits/auto-dismiss/auto-dismiss.trait.d.ts +2 -0
  455. package/dist/traits/backtick-wrap/backtick-wrap.d.ts +0 -0
  456. package/dist/traits/backtick-wrap/backtick-wrap.trait.d.ts +2 -0
  457. package/dist/traits/clipboard/clipboard.d.ts +0 -0
  458. package/dist/traits/clipboard/clipboard.trait.d.ts +2 -0
  459. package/dist/traits/collapsible/collapsible.d.ts +0 -0
  460. package/dist/traits/collapsible/collapsible.trait.d.ts +2 -0
  461. package/dist/traits/confetti/confetti.d.ts +0 -0
  462. package/dist/traits/confetti/confetti.trait.d.ts +2 -0
  463. package/dist/traits/copy/copy.d.ts +0 -0
  464. package/dist/traits/copy/copy.trait.d.ts +2 -0
  465. package/dist/traits/css-inspect/css-inspect-controller.d.ts +38 -0
  466. package/dist/traits/css-inspect/css-inspect.d.ts +0 -0
  467. package/dist/traits/css-inspect/css-inspect.trait.d.ts +2 -0
  468. package/dist/traits/dismiss/dismiss.d.ts +0 -0
  469. package/dist/traits/dismiss/dismiss.trait.d.ts +2 -0
  470. package/dist/traits/drag/drag.d.ts +0 -0
  471. package/dist/traits/drag/drag.trait.d.ts +2 -0
  472. package/dist/traits/drop-zone/drop-zone.d.ts +0 -0
  473. package/dist/traits/drop-zone/drop-zone.trait.d.ts +2 -0
  474. package/dist/traits/edit/edit.d.ts +0 -0
  475. package/dist/traits/edit/edit.trait.d.ts +2 -0
  476. package/dist/traits/flip/flip.d.ts +0 -0
  477. package/dist/traits/flip/flip.trait.d.ts +2 -0
  478. package/dist/traits/gateway/gateway.d.ts +0 -0
  479. package/dist/traits/gateway/gateway.trait.d.ts +2 -0
  480. package/dist/traits/hover/hover.d.ts +0 -0
  481. package/dist/traits/hover/hover.trait.d.ts +2 -0
  482. package/dist/traits/index.d.ts +6 -0
  483. package/dist/traits/intersect/intersect.d.ts +0 -0
  484. package/dist/traits/intersect/intersect.trait.d.ts +2 -0
  485. package/dist/traits/link-paste/link-paste.d.ts +0 -0
  486. package/dist/traits/link-paste/link-paste.trait.d.ts +2 -0
  487. package/dist/traits/linked-scroll/linked-scroll.d.ts +0 -0
  488. package/dist/traits/linked-scroll/linked-scroll.trait.d.ts +2 -0
  489. package/dist/traits/list-navigate/list-navigate.d.ts +0 -0
  490. package/dist/traits/list-navigate/list-navigate.trait.d.ts +2 -0
  491. package/dist/traits/magnet/magnet.d.ts +0 -0
  492. package/dist/traits/magnet/magnet.trait.d.ts +2 -0
  493. package/dist/traits/mention/mention.d.ts +0 -0
  494. package/dist/traits/mention/mention.trait.d.ts +2 -0
  495. package/dist/traits/modal/modal.d.ts +0 -0
  496. package/dist/traits/modal/modal.trait.d.ts +2 -0
  497. package/dist/traits/noodle/noodle.d.ts +0 -0
  498. package/dist/traits/noodle/noodle.trait.d.ts +2 -0
  499. package/dist/traits/overlay/overlay.d.ts +0 -0
  500. package/dist/traits/overlay/overlay.trait.d.ts +3 -0
  501. package/dist/traits/pan-zoom/pan-zoom.d.ts +0 -0
  502. package/dist/traits/pan-zoom/pan-zoom.trait.d.ts +2 -0
  503. package/dist/traits/parallax/parallax.d.ts +0 -0
  504. package/dist/traits/parallax/parallax.trait.d.ts +2 -0
  505. package/dist/traits/parse.d.ts +3 -0
  506. package/dist/traits/persist/persist.d.ts +0 -0
  507. package/dist/traits/persist/persist.trait.d.ts +2 -0
  508. package/dist/traits/popover/overlay.d.ts +2 -0
  509. package/dist/traits/popover/popover.d.ts +0 -0
  510. package/dist/traits/popover/popover.trait.d.ts +2 -0
  511. package/dist/traits/present/present.d.ts +0 -0
  512. package/dist/traits/present/present.trait.d.ts +2 -0
  513. package/dist/traits/press-hold/press-hold.d.ts +0 -0
  514. package/dist/traits/press-hold/press-hold.trait.d.ts +2 -0
  515. package/dist/traits/range-select/range-select.d.ts +0 -0
  516. package/dist/traits/range-select/range-select.trait.d.ts +2 -0
  517. package/dist/traits/registry.d.ts +17 -0
  518. package/dist/traits/resize/resize.d.ts +0 -0
  519. package/dist/traits/resize/resize.trait.d.ts +2 -0
  520. package/dist/traits/ripple/ripple.d.ts +0 -0
  521. package/dist/traits/ripple/ripple.trait.d.ts +2 -0
  522. package/dist/traits/roving-focus/roving-focus.d.ts +0 -0
  523. package/dist/traits/roving-focus/roving-focus.trait.d.ts +2 -0
  524. package/dist/traits/search/search.d.ts +0 -0
  525. package/dist/traits/search/search.trait.d.ts +2 -0
  526. package/dist/traits/selection/selection.d.ts +0 -0
  527. package/dist/traits/selection/selection.trait.d.ts +2 -0
  528. package/dist/traits/shortcut/shortcut.d.ts +0 -0
  529. package/dist/traits/shortcut/shortcut.trait.d.ts +2 -0
  530. package/dist/traits/slash-command/slash-command.d.ts +0 -0
  531. package/dist/traits/slash-command/slash-command.trait.d.ts +2 -0
  532. package/dist/traits/snap-resize/snap-resize.d.ts +0 -0
  533. package/dist/traits/snap-resize/snap-resize.trait.d.ts +2 -0
  534. package/dist/traits/sort/sort.d.ts +0 -0
  535. package/dist/traits/sort/sort.trait.d.ts +2 -0
  536. package/dist/traits/store/store.d.ts +0 -0
  537. package/dist/traits/store/store.trait.d.ts +2 -0
  538. package/dist/traits/swipe/swipe.d.ts +0 -0
  539. package/dist/traits/swipe/swipe.trait.d.ts +2 -0
  540. package/dist/traits/text-trigger/text-trigger.d.ts +0 -0
  541. package/dist/traits/text-trigger/text-trigger.trait.d.ts +2 -0
  542. package/dist/traits/toast/toast.d.ts +0 -0
  543. package/dist/traits/toast/toast.trait.d.ts +2 -0
  544. package/dist/traits/toggle-scheme/toggle-scheme.d.ts +0 -0
  545. package/dist/traits/toggle-scheme/toggle-scheme.trait.d.ts +2 -0
  546. package/dist/traits/toggle-state/toggle-state.d.ts +0 -0
  547. package/dist/traits/toggle-state/toggle-state.trait.d.ts +2 -0
  548. package/dist/traits/toggle-theme/toggle-theme.d.ts +0 -0
  549. package/dist/traits/toggle-theme/toggle-theme.trait.d.ts +2 -0
  550. package/dist/traits/tooltip/tooltip.d.ts +0 -0
  551. package/dist/traits/tooltip/tooltip.trait.d.ts +2 -0
  552. package/dist/traits/toss/toss.d.ts +0 -0
  553. package/dist/traits/toss/toss.trait.d.ts +2 -0
  554. package/dist/traits/trap-focus/trap-focus.d.ts +0 -0
  555. package/dist/traits/trap-focus/trap-focus.trait.d.ts +2 -0
  556. package/dist/traits/types.d.ts +45 -0
  557. package/dist/traits/validate/validate.d.ts +0 -0
  558. package/dist/traits/validate/validate.trait.d.ts +2 -0
  559. package/dist/traits/virtual-scroll/virtual-scroll.d.ts +0 -0
  560. package/dist/traits/virtual-scroll/virtual-scroll.trait.d.ts +2 -0
  561. package/dist/traits.js +553 -510
  562. package/dist/traits.js.map +1 -1
  563. package/package.json +52 -13
@@ -1,3137 +1,127 @@
1
- import { A as h, s as H, u as D } from "./chunks/agent-ciCayeod.js";
2
- import { w as ee, j as ie, f as se, m as ne, h as ae, l as re, n as le, k as he, i as oe, g as de, R as ce, x as ue, y as be } from "./chunks/agent-ciCayeod.js";
3
- import { o as N, g as U } from "./chunks/registry-BNb5ABBs.js";
4
- import { a as pe, r as me } from "./chunks/registry-BNb5ABBs.js";
5
- class Q extends h {
6
- static attributes = {
7
- disabled: { type: "boolean", default: !1 },
8
- loading: { type: "boolean", default: !1 },
9
- type: { type: "enum", values: ["button", "submit", "reset"], default: "button" },
10
- label: { type: "string", default: "" },
11
- icon: { type: "string", default: "" },
12
- "icon-leading": { type: "string", default: "" },
13
- "icon-trailing": { type: "string", default: "" },
14
- "text-leading": { type: "string", default: "" },
15
- "text-trailing": { type: "string", default: "" },
16
- href: { type: "string", default: "" }
17
- };
18
- #t = null;
19
- #e = null;
20
- #i = null;
21
- #s = null;
22
- activate() {
23
- this.addEventListener("click", this.#n), this.addEventListener("keydown", this.#a), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.setAttribute("role", "button"), Array.from(this.childNodes).some(
24
- (e) => e.nodeType === 3 && e.textContent.trim()
25
- ) && this.setAttribute("data-has-text", ""), this.addEffect(() => {
26
- this.setAttribute("aria-disabled", String(this.disabled)), this.setAttribute("tabindex", this.disabled ? "-1" : "0");
27
- }), this.addEffect(() => {
28
- this.label ? this.setAttribute("aria-label", this.label) : this.removeAttribute("aria-label");
29
- }), this.addEffect(() => {
30
- const e = this["icon-leading"] || this.icon, i = this["text-leading"];
31
- if (e && !this.#t && (this.#t = document.createElement("aui-icon"), this.#t.setAttribute("slot", "leading"), this.prepend(this.#t)), this.#t && (e ? this.#t.setAttribute("name", e) : (this.#t.remove(), this.#t = null)), i && !this.#e) {
32
- this.#e = document.createElement("span"), this.#e.setAttribute("slot", "leading-text");
33
- const s = this.#t;
34
- s ? s.after(this.#e) : this.prepend(this.#e);
35
- }
36
- this.#e && (i ? this.#e.textContent = i : (this.#e.remove(), this.#e = null));
37
- }), this.addEffect(() => {
38
- const e = this["icon-trailing"], i = this["text-trailing"];
39
- if (e && !this.#i && (this.#i = document.createElement("aui-icon"), this.#i.setAttribute("slot", "trailing"), this.append(this.#i)), this.#i && (e ? this.#i.setAttribute("name", e) : (this.#i.remove(), this.#i = null)), i && !this.#s) {
40
- this.#s = document.createElement("span"), this.#s.setAttribute("slot", "trailing-text");
41
- const s = this.#i;
42
- s ? s.before(this.#s) : this.append(this.#s);
43
- }
44
- this.#s && (i ? this.#s.textContent = i : (this.#s.remove(), this.#s = null));
45
- });
46
- }
47
- dispose() {
48
- this.removeEventListener("click", this.#n), this.removeEventListener("keydown", this.#a);
49
- }
50
- #n = (t) => {
51
- if (this.disabled || this.loading) {
52
- t.preventDefault(), t.stopPropagation();
53
- return;
54
- }
55
- const e = this.href;
56
- if (e) {
57
- window.location.href = e;
58
- return;
59
- }
60
- const i = this.type;
61
- if (i === "submit" || i === "reset") {
62
- const s = this.closest("form");
63
- s && (i === "submit" ? s.requestSubmit() : s.reset());
64
- }
65
- };
66
- #a = (t) => {
67
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.click());
68
- };
1
+ import { A as a } from "./chunks/agent-BF_R_HJk.js";
2
+ import { a as p, b as m, d as g, e as c, f as C, g as T, h as S, i as b, j as x, k as I, R as P, r as k, s as R } from "./chunks/agent-BF_R_HJk.js";
3
+ import { A as f, a as h, b as D, c as G, d as B, e as E, f as M, g as w, h as y, i as H, j as O, k as v, l as L, m as N, n as j, o as U, p as _, q, r as z, s as Y, t as J, u as K, v as Q, w as V, x as W, y as X, z as Z, B as $, C as aa, D as ia, E as sa, F as ea, G as Aa, H as ua, I as ta, J as oa, K as ra, L as na, M as da, N as la, O as pa, P as ma, Q as ga, R as ca, S as Ca, T as Ta, U as Sa, V as ba, W as xa, X as Ia, Y as Pa, Z as ka, _ as Ra, $ as Fa, a0 as fa, a1 as ha, a2 as Da, a3 as Ga, a4 as Ba, a5 as Ea, a6 as Ma, a7 as wa, a8 as ya, a9 as Ha, aa as Oa, ab as va, ac as La, ad as Na, ae as ja, af as Ua, ag as _a, ah as qa, ai as za, aj as Ya, ak as Ja, al as Ka, am as Qa, an as Va, ao as Wa, ap as Xa, aq as Za, ar as $a, as as ai } from "./chunks/meter-Dju8ik6C.js";
4
+ import { g as si, a as ei, r as Ai } from "./chunks/registry-BNb5ABBs.js";
5
+ class e extends a {
69
6
  }
70
- class Z extends h {
71
- static formAssociated = !0;
72
- static attributes = {
73
- disabled: { type: "boolean", default: !1 },
74
- readonly: { type: "boolean", default: !1 },
75
- required: { type: "boolean", default: !1 },
76
- clearable: { type: "boolean", default: !1 },
77
- autofocus: { type: "boolean", default: !1 },
78
- type: { type: "enum", values: ["text", "email", "password", "search", "url", "tel", "number"], default: "text" },
79
- placeholder: { type: "string", default: "" },
80
- value: { type: "string", default: "" },
81
- name: { type: "string", default: "" },
82
- pattern: { type: "string", default: "" },
83
- maxlength: { type: "string", default: "" },
84
- font: { type: "string", default: "sans" }
85
- };
86
- #t;
87
- #e = null;
88
- #i = null;
89
- #s = !1;
90
- constructor() {
91
- super(), this.#t = this.attachInternals(), this.#t.role = "textbox";
92
- }
93
- activate() {
94
- if (this.#e = this.querySelector("[data-surface]"), !this.#e) {
95
- this.#e = document.createElement("span"), this.#e.setAttribute("data-surface", ""), this.#e.setAttribute("contenteditable", "plaintext-only"), this.#e.setAttribute("spellcheck", "false"), this.#e.setAttribute("tabindex", "0");
96
- const t = this.querySelector('[slot="trailing"]');
97
- t ? this.insertBefore(this.#e, t) : this.appendChild(this.#e);
98
- }
99
- if (this.clearable && !this.querySelector("[data-clear]")) {
100
- this.#i = document.createElement("span"), this.#i.setAttribute("data-clear", ""), this.#i.setAttribute("role", "button"), this.#i.setAttribute("tabindex", "-1"), this.#i.setAttribute("aria-label", "Clear"), this.#i.textContent = "✕";
101
- const t = this.querySelector('[slot="trailing"]');
102
- t ? this.insertBefore(this.#i, t) : this.appendChild(this.#i);
103
- } else
104
- this.#i = this.querySelector("[data-clear]");
105
- this.value && this.#e && (this.#e.textContent = this.value), this.addEffect(() => {
106
- const t = this.disabled || this.readonly;
107
- this.#e?.setAttribute("contenteditable", t ? "false" : "plaintext-only"), this.disabled ? this.#e?.setAttribute("tabindex", "-1") : this.#e?.setAttribute("tabindex", "0"), this.#e?.setAttribute("data-placeholder", this.placeholder || ""), this.#t.setFormValue(this.value || null), this.#n(), this.#a();
108
- }), this.addEffect(() => {
109
- const t = this.value;
110
- !this.#s && this.#e && this.#e.textContent !== t && (this.#e.textContent = t, this.#n());
111
- }), this.#e.addEventListener("input", this.#l), this.#e.addEventListener("keydown", this.#h), this.#e.addEventListener("focus", this.#d), this.#e.addEventListener("blur", this.#u), this.#e.addEventListener("paste", this.#c), this.addEventListener("click", this.#b), this.#i?.addEventListener("click", this.#p), this.autofocus && requestAnimationFrame(() => this.#e?.focus());
112
- }
113
- dispose() {
114
- this.#e?.removeEventListener("input", this.#l), this.#e?.removeEventListener("keydown", this.#h), this.#e?.removeEventListener("focus", this.#d), this.#e?.removeEventListener("blur", this.#u), this.#e?.removeEventListener("paste", this.#c), this.removeEventListener("click", this.#b), this.#i?.removeEventListener("click", this.#p);
115
- }
116
- // ── Public API ──────────────────────────────────────────
117
- focus(t) {
118
- this.#e?.focus(t);
119
- }
120
- blur() {
121
- this.#e?.blur();
122
- }
123
- select() {
124
- if (!this.#e) return;
125
- const t = document.createRange();
126
- t.selectNodeContents(this.#e);
127
- const e = window.getSelection();
128
- e?.removeAllRanges(), e?.addRange(t);
129
- }
130
- // ── Form callbacks ────────────────────────────────────
131
- formDisabledCallback(t) {
132
- this.disabled = t;
133
- }
134
- formResetCallback() {
135
- this.value = "", this.#e && (this.#e.textContent = ""), this.#n();
136
- }
137
- formStateRestoreCallback(t) {
138
- this.value = t ?? "", this.#e && (this.#e.textContent = this.value);
139
- }
140
- // ── Internal ──────────────────────────────────────────
141
- #n() {
142
- const t = !this.#e?.textContent?.trim();
143
- try {
144
- t ? this.#t.states?.add("empty") : this.#t.states?.delete("empty");
145
- } catch {
146
- }
147
- this.toggleAttribute("data-input-empty", t);
148
- }
149
- #a() {
150
- if (this.required && !this.value?.trim())
151
- this.#t.setValidity(
152
- { valueMissing: !0 },
153
- "This field is required",
154
- this.#e ?? void 0
155
- );
156
- else if (this.pattern && this.value) {
157
- try {
158
- if (!new RegExp(`^(?:${this.pattern})$`).test(this.value)) {
159
- this.#t.setValidity(
160
- { patternMismatch: !0 },
161
- "Please match the requested format",
162
- this.#e ?? void 0
163
- );
164
- return;
165
- }
166
- } catch {
167
- }
168
- this.#t.setValidity({});
169
- } else
170
- this.#t.setValidity({});
171
- }
172
- #r() {
173
- if (!this.#e || this.#e.textContent?.trim()) return;
174
- const t = window.getSelection();
175
- t && t.setPosition(this.#e, 0);
176
- }
177
- // ── Event handlers ────────────────────────────────────
178
- #l = () => {
179
- this.#s = !0, this.value = this.#e?.textContent ?? "", this.#t.setFormValue(this.value || null), this.#n(), this.#s = !1, this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 }));
180
- };
181
- #h = (t) => {
182
- if (t.key === "Enter") {
183
- t.preventDefault(), this.#t.form?.requestSubmit();
184
- return;
185
- }
186
- if (this.maxlength) {
187
- const e = parseInt(this.maxlength, 10);
188
- (this.#e?.textContent?.length ?? 0) >= e && t.key.length === 1 && !t.ctrlKey && !t.metaKey && (window.getSelection()?.toString() || t.preventDefault());
189
- }
190
- };
191
- #d = () => {
192
- this.#r();
193
- };
194
- #u = () => {
195
- this.dispatchEvent(new Event("change", { bubbles: !0 }));
196
- };
197
- #c = (t) => {
198
- t.preventDefault();
199
- let e = t.clipboardData?.getData("text/plain") ?? "";
200
- if (e = e.replace(/[\r\n]+/g, " "), this.maxlength) {
201
- const i = parseInt(this.maxlength, 10), s = this.#e?.textContent?.length ?? 0, a = window.getSelection()?.toString().length ?? 0, r = i - s + a;
202
- e = e.slice(0, Math.max(0, r));
203
- }
204
- document.execCommand("insertText", !1, e);
205
- };
206
- #b = (t) => {
207
- const e = t.target;
208
- e === this || e.getAttribute("slot") === "leading" ? (this.#e?.focus(), this.#r()) : e === this.#e && this.#r();
209
- };
210
- #p = (t) => {
211
- t.stopPropagation(), this.#e && (this.#e.textContent = ""), this.value = "", this.#t.setFormValue(null), this.#n(), this.#e?.focus(), this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
212
- };
7
+ class A extends a {
213
8
  }
214
- class tt extends h {
215
- static formAssociated = !0;
216
- static attributes = {
217
- length: { type: "string", default: "6" },
218
- disabled: { type: "boolean", default: !1 },
219
- value: { type: "string", default: "" },
220
- name: { type: "string", default: "" }
221
- };
222
- #t;
223
- #e = [];
224
- constructor() {
225
- super(), this.#t = this.attachInternals();
226
- }
227
- activate() {
228
- const t = parseInt(this.length, 10) || 6;
229
- this.setAttribute("role", "group"), this.setAttribute("aria-label", "One-time code");
230
- for (let e = 0; e < t; e++) {
231
- const i = document.createElement("span");
232
- i.setAttribute("data-cell", String(e)), i.setAttribute("contenteditable", "plaintext-only"), i.setAttribute("inputmode", "numeric"), i.setAttribute("tabindex", "0"), i.setAttribute("aria-label", `Digit ${e + 1} of ${t}`), this.appendChild(i), this.#e.push(i);
233
- }
234
- this.addEffect(() => {
235
- for (const e of this.#e)
236
- e.setAttribute("contenteditable", this.disabled ? "false" : "plaintext-only"), e.setAttribute("tabindex", this.disabled ? "-1" : "0");
237
- this.#t.setFormValue(this.value || null);
238
- }), this.value && this.#i(this.value);
239
- for (const e of this.#e)
240
- e.addEventListener("input", this.#a), e.addEventListener("keydown", this.#r), e.addEventListener("paste", this.#l), e.addEventListener("focus", this.#h);
241
- }
242
- dispose() {
243
- for (const t of this.#e)
244
- t.removeEventListener("input", this.#a), t.removeEventListener("keydown", this.#r), t.removeEventListener("paste", this.#l), t.removeEventListener("focus", this.#h);
245
- this.#e = [];
246
- }
247
- formDisabledCallback(t) {
248
- this.disabled = t;
249
- }
250
- formResetCallback() {
251
- this.clear();
252
- }
253
- focus(t) {
254
- (this.#e.find((i) => !i.textContent) ?? this.#e[0])?.focus(t);
255
- }
256
- clear() {
257
- for (const t of this.#e) t.textContent = "";
258
- this.#s(), this.#e[0]?.focus();
259
- }
260
- #i(t) {
261
- for (let e = 0; e < this.#e.length; e++)
262
- this.#e[e].textContent = t[e] ?? "";
263
- }
264
- #s() {
265
- const t = this.#e.map((e) => e.textContent ?? "").join("");
266
- this.value = t, this.#t.setFormValue(t || null), t.length === this.#e.length && this.dispatchEvent(new CustomEvent("aui:complete", { bubbles: !0, detail: { value: t } }));
267
- }
268
- #n(t) {
269
- return this.#e.indexOf(t);
270
- }
271
- #a = (t) => {
272
- const e = t.target, i = this.#n(e), s = e.textContent ?? "";
273
- s.length > 1 && (e.textContent = s.slice(-1)), this.#s(), e.textContent && i < this.#e.length - 1 && this.#e[i + 1].focus();
274
- };
275
- #r = (t) => {
276
- const e = t.target, i = this.#n(e);
277
- t.key === "Backspace" ? !e.textContent && i > 0 && (t.preventDefault(), this.#e[i - 1].textContent = "", this.#e[i - 1].focus(), this.#s()) : t.key === "ArrowLeft" && i > 0 ? (t.preventDefault(), this.#e[i - 1].focus()) : t.key === "ArrowRight" && i < this.#e.length - 1 ? (t.preventDefault(), this.#e[i + 1].focus()) : t.key === "Enter" && t.preventDefault();
278
- };
279
- #l = (t) => {
280
- t.preventDefault();
281
- const i = (t.clipboardData?.getData("text") ?? "").replace(/\D/g, "").slice(0, this.#e.length);
282
- this.#i(i), this.#s();
283
- const s = Math.min(i.length, this.#e.length - 1);
284
- this.#e[s]?.focus();
285
- };
286
- #h = (t) => {
287
- const e = t.target, i = document.createRange();
288
- i.selectNodeContents(e);
289
- const s = window.getSelection();
290
- s?.removeAllRanges(), s?.addRange(i);
291
- };
9
+ class u extends a {
292
10
  }
293
- class et extends h {
294
- static formAssociated = !0;
295
- static attributes = {
296
- disabled: { type: "boolean", default: !1 },
297
- checked: { type: "boolean", default: !1 },
298
- indeterminate: { type: "boolean", default: !1 },
299
- required: { type: "boolean", default: !1 },
300
- label: { type: "string", default: "" },
301
- name: { type: "string", default: "" },
302
- value: { type: "string", default: "on" }
303
- };
304
- #t;
305
- constructor() {
306
- super(), this.#t = this.attachInternals(), this.#t.role = "checkbox";
307
- }
308
- activate() {
309
- if (!this.querySelector("[data-box]")) {
310
- const t = document.createElement("span");
311
- t.setAttribute("data-box", ""), this.prepend(t);
312
- }
313
- this.addEffect(() => {
314
- this.setAttribute("aria-checked", this.indeterminate ? "mixed" : String(this.checked)), this.setAttribute("aria-disabled", String(this.disabled)), this.#t.setFormValue(this.checked ? this.value || "on" : null), this.required && !this.checked ? this.#t.setValidity({ valueMissing: !0 }, "Please check this box") : this.#t.setValidity({});
315
- }), this.addEffect(() => {
316
- this.label ? this.setAttribute("aria-label", this.label) : this.removeAttribute("aria-label");
317
- }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("click", this.#i), this.addEventListener("keydown", this.#s);
318
- }
319
- dispose() {
320
- this.removeEventListener("click", this.#i), this.removeEventListener("keydown", this.#s);
321
- }
322
- formDisabledCallback(t) {
323
- this.disabled = t;
324
- }
325
- formResetCallback() {
326
- this.checked = !1, this.indeterminate = !1;
327
- }
328
- #e() {
329
- this.disabled || (this.indeterminate = !1, this.checked = !this.checked, this.dispatchEvent(new Event("change", { bubbles: !0 })));
330
- }
331
- #i = (t) => {
332
- t.preventDefault(), this.#e();
333
- };
334
- #s = (t) => {
335
- (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#e());
336
- };
11
+ class t extends a {
337
12
  }
338
- class it extends h {
339
- static formAssociated = !0;
340
- static attributes = {
341
- disabled: { type: "boolean", default: !1 },
342
- checked: { type: "boolean", default: !1 },
343
- label: { type: "string", default: "" },
344
- name: { type: "string", default: "" },
345
- value: { type: "string", default: "on" }
346
- };
347
- #t;
348
- constructor() {
349
- super(), this.#t = this.attachInternals(), this.#t.role = "switch";
350
- }
351
- activate() {
352
- if (!this.querySelector("[data-track]")) {
353
- const t = document.createElement("span");
354
- t.setAttribute("data-track", ""), this.prepend(t);
355
- }
356
- this.addEffect(() => {
357
- this.setAttribute("aria-checked", String(this.checked)), this.setAttribute("aria-disabled", String(this.disabled)), this.#t.setFormValue(this.checked ? this.value || "on" : null);
358
- }), this.addEffect(() => {
359
- this.label ? this.setAttribute("aria-label", this.label) : this.removeAttribute("aria-label");
360
- }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("click", this.#i), this.addEventListener("keydown", this.#s);
361
- }
362
- dispose() {
363
- this.removeEventListener("click", this.#i), this.removeEventListener("keydown", this.#s);
364
- }
365
- formDisabledCallback(t) {
366
- this.disabled = t;
367
- }
368
- formResetCallback() {
369
- this.checked = !1;
370
- }
371
- #e() {
372
- this.disabled || (this.checked = !this.checked, this.dispatchEvent(new Event("change", { bubbles: !0 })));
373
- }
374
- #i = (t) => {
375
- t.preventDefault(), this.#e();
376
- };
377
- #s = (t) => {
378
- (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#e());
379
- };
13
+ class o extends a {
380
14
  }
381
- class st extends h {
382
- static formAssociated = !0;
383
- static attributes = {
384
- disabled: { type: "boolean", default: !1 },
385
- checked: { type: "boolean", default: !1 },
386
- required: { type: "boolean", default: !1 },
387
- label: { type: "string", default: "" },
388
- name: { type: "string", default: "" },
389
- value: { type: "string", default: "" }
390
- };
391
- #t;
392
- constructor() {
393
- super(), this.#t = this.attachInternals(), this.#t.role = "radio";
394
- }
395
- activate() {
396
- if (!this.querySelector("[data-circle]")) {
397
- const t = document.createElement("span");
398
- t.setAttribute("data-circle", ""), this.prepend(t);
399
- }
400
- this.addEffect(() => {
401
- this.setAttribute("aria-checked", String(this.checked)), this.setAttribute("aria-disabled", String(this.disabled)), this.#t.setFormValue(this.checked ? this.value || "" : null);
402
- }), this.addEffect(() => {
403
- this.label ? this.setAttribute("aria-label", this.label) : this.removeAttribute("aria-label");
404
- }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("click", this.#i), this.addEventListener("keydown", this.#s);
405
- }
406
- dispose() {
407
- this.removeEventListener("click", this.#i), this.removeEventListener("keydown", this.#s);
408
- }
409
- formDisabledCallback(t) {
410
- this.disabled = t;
411
- }
412
- formResetCallback() {
413
- this.checked = !1;
414
- }
415
- #e() {
416
- this.disabled || this.checked || (this.checked = !0, this.dispatchEvent(new Event("change", { bubbles: !0 })));
417
- }
418
- #i = (t) => {
419
- t.preventDefault(), this.#e();
420
- };
421
- #s = (t) => {
422
- (t.key === " " || t.key === "Enter") && (t.preventDefault(), this.#e());
423
- };
15
+ class r extends a {
424
16
  }
425
- class nt extends h {
426
- static attributes = {
427
- disabled: { type: "boolean", default: !1 },
428
- name: { type: "string", default: "" },
429
- value: { type: "string", default: "" }
430
- };
431
- activate() {
432
- this.setAttribute("role", "radiogroup"), this.addEffect(() => {
433
- for (const t of this.#t())
434
- this.name && t.setAttribute("name", this.name), this.disabled && t.setAttribute("disabled", "");
435
- }), this.addEffect(() => {
436
- if (this.value)
437
- for (const t of this.#t()) {
438
- const e = t.getAttribute("value") === this.value;
439
- e && !t.hasAttribute("checked") ? t.setAttribute("checked", "") : !e && t.hasAttribute("checked") && t.removeAttribute("checked");
440
- }
441
- }), this.addEventListener("change", this.#e), this.addEventListener("keydown", this.#i);
442
- }
443
- dispose() {
444
- this.removeEventListener("change", this.#e), this.removeEventListener("keydown", this.#i);
445
- }
446
- #t() {
447
- return Array.from(this.querySelectorAll("aui-radio"));
448
- }
449
- #e = (t) => {
450
- const e = t.target;
451
- if (e.tagName !== "AUI-RADIO") return;
452
- const i = e.getAttribute("value") || "";
453
- this.value = i;
454
- for (const s of this.#t())
455
- s !== e && s.hasAttribute("checked") && s.removeAttribute("checked");
456
- };
457
- #i = (t) => {
458
- const e = this.#t().filter((n) => !n.hasAttribute("disabled"));
459
- if (e.length === 0) return;
460
- const i = e.findIndex((n) => n.hasAttribute("checked"));
461
- let s = -1;
462
- switch (t.key) {
463
- case "ArrowDown":
464
- case "ArrowRight":
465
- t.preventDefault(), s = i < e.length - 1 ? i + 1 : 0;
466
- break;
467
- case "ArrowUp":
468
- case "ArrowLeft":
469
- t.preventDefault(), s = i > 0 ? i - 1 : e.length - 1;
470
- break;
471
- default:
472
- return;
473
- }
474
- s >= 0 && (e[s].click(), e[s].focus());
475
- };
476
- }
477
- class at extends h {
478
- static formAssociated = !0;
479
- static attributes = {
480
- disabled: { type: "boolean", default: !1 },
481
- readonly: { type: "boolean", default: !1 },
482
- required: { type: "boolean", default: !1 },
483
- autogrow: { type: "boolean", default: !1 },
484
- autofocus: { type: "boolean", default: !1 },
485
- placeholder: { type: "string", default: "" },
486
- value: { type: "string", default: "" },
487
- name: { type: "string", default: "" },
488
- rows: { type: "string", default: "3" },
489
- maxlength: { type: "string", default: "" }
490
- };
491
- #t;
492
- #e = null;
493
- #i = !1;
494
- #s = null;
495
- constructor() {
496
- super(), this.#t = this.attachInternals(), this.#t.role = "textbox", this.#t.ariaMultiLine = "true";
497
- }
498
- activate() {
499
- this.#e = this.querySelector("[data-surface]"), this.#e || (this.#e = document.createElement("div"), this.#e.setAttribute("data-surface", ""), this.#e.setAttribute("contenteditable", "plaintext-only"), this.#e.setAttribute("spellcheck", "false"), this.#e.setAttribute("tabindex", "0"), this.appendChild(this.#e)), this.value && this.#e && (this.#e.textContent = this.value), this.addEffect(() => {
500
- const t = this.disabled || this.readonly;
501
- this.#e?.setAttribute("contenteditable", t ? "false" : "plaintext-only"), this.#e?.setAttribute("tabindex", this.disabled ? "-1" : "0"), this.#e?.setAttribute("data-placeholder", this.placeholder || "");
502
- const e = parseInt(this.rows, 10) || 3;
503
- this.style.setProperty("--_rows", String(e)), this.#t.setFormValue(this.value || null), this.#n();
504
- }), this.addEffect(() => {
505
- const t = this.value;
506
- !this.#i && this.#e && this.#e.textContent !== t && (this.#e.textContent = t, this.#n(), this.autogrow && this.#a());
507
- }), this.#e.addEventListener("input", this.#r), this.#e.addEventListener("blur", this.#l), this.addEventListener("click", this.#h), this.autofocus && requestAnimationFrame(() => this.#e?.focus());
508
- }
509
- dispose() {
510
- this.#e?.removeEventListener("input", this.#r), this.#e?.removeEventListener("blur", this.#l), this.removeEventListener("click", this.#h), this.#s !== null && cancelAnimationFrame(this.#s);
511
- }
512
- focus(t) {
513
- this.#e?.focus(t);
514
- }
515
- blur() {
516
- this.#e?.blur();
517
- }
518
- formDisabledCallback(t) {
519
- this.disabled = t;
520
- }
521
- formResetCallback() {
522
- this.value = "", this.#e && (this.#e.textContent = ""), this.#n();
523
- }
524
- #n() {
525
- const t = !this.#e?.textContent?.trim();
526
- try {
527
- t ? this.#t.states?.add("empty") : this.#t.states?.delete("empty");
528
- } catch {
529
- }
530
- this.toggleAttribute("data-input-empty", t);
531
- }
532
- #a() {
533
- this.#s !== null && cancelAnimationFrame(this.#s), this.#s = requestAnimationFrame(() => {
534
- this.#e && (this.#e.style.height = "auto", this.#e.style.height = this.#e.scrollHeight + "px");
535
- });
536
- }
537
- #r = () => {
538
- this.#i = !0, this.value = this.#e?.textContent ?? "", this.#t.setFormValue(this.value || null), this.#n(), this.autogrow && this.#a(), this.#i = !1, this.dispatchEvent(new Event("input", { bubbles: !0, composed: !0 }));
539
- };
540
- #l = () => {
541
- this.dispatchEvent(new Event("change", { bubbles: !0 }));
542
- };
543
- #h = (t) => {
544
- t.target === this && this.#e?.focus();
545
- };
546
- }
547
- class rt extends h {
548
- static attributes = {
549
- bordered: { type: "boolean", default: !1 },
550
- elevation: { type: "string", default: "" },
551
- interactive: { type: "boolean", default: !1 },
552
- href: { type: "string", default: "" }
553
- };
554
- activate() {
555
- this.interactive && (this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.setAttribute("role", "button"), this.addEventListener("click", this.#t), this.addEventListener("keydown", this.#e));
556
- }
557
- dispose() {
558
- this.removeEventListener("click", this.#t), this.removeEventListener("keydown", this.#e);
559
- }
560
- #t = () => {
561
- this.href && (window.location.href = this.href);
562
- };
563
- #e = (t) => {
564
- (t.key === "Enter" || t.key === " ") && this.href && (t.preventDefault(), window.location.href = this.href);
565
- };
566
- }
567
- function F(l) {
568
- const t = getComputedStyle(l).getPropertyValue("--aui-duration").trim();
569
- return parseFloat(t) || 200;
570
- }
571
- class lt extends h {
572
- static attributes = {
573
- open: { type: "boolean", default: !1 },
574
- size: { type: "enum", values: ["sm", "lg", "xl", "full"], default: "" }
575
- };
576
- #t = null;
577
- #e = null;
578
- #i = !1;
579
- get dialogElement() {
580
- return this.#t;
581
- }
582
- #s() {
583
- if (this.#t) return this.#t;
584
- if (this.#t = this.querySelector("dialog"), this.#t)
585
- this.#e = this.#t.querySelector("[data-dialog-content]");
586
- else {
587
- for (this.#t = document.createElement("dialog"), this.#e = document.createElement("div"), this.#e.setAttribute("data-dialog-content", ""); this.firstChild && this.firstChild !== this.#t; )
588
- this.#e.appendChild(this.firstChild);
589
- this.#t.appendChild(this.#e), this.appendChild(this.#t);
590
- }
591
- return this.#t.addEventListener("cancel", this.#n), this.#t.addEventListener("close", this.#a), this.#t.addEventListener("click", this.#r), this.#t;
592
- }
593
- activate() {
594
- this.#s(), this.addEffect(() => {
595
- this.open ? this.show() : this.hide();
596
- });
597
- }
598
- dispose() {
599
- this.#t?.removeEventListener("cancel", this.#n), this.#t?.removeEventListener("close", this.#a), this.#t?.removeEventListener("click", this.#r);
600
- }
601
- // ── Public API ──────────────────────────────────────────
602
- show() {
603
- const t = this.#s();
604
- t.open || (t.showModal(), requestAnimationFrame(() => {
605
- t.setAttribute("data-dialog-open", "");
606
- }), this.hasAttribute("open") || this.setAttribute("open", ""));
607
- }
608
- hide() {
609
- !this.#t || !this.#t.open || this.#i || (this.#i = !0, this.#t.removeAttribute("data-dialog-open"), this.#t.setAttribute("data-dialog-closing", ""), setTimeout(() => {
610
- this.#i = !1, this.#t?.removeAttribute("data-dialog-closing"), this.#t?.close();
611
- }, F(this)));
612
- }
613
- // ── Internal ────────────────────────────────────────────
614
- #n = (t) => {
615
- t.preventDefault(), this.hide();
616
- };
617
- #a = () => {
618
- this.removeAttribute("open"), this.dispatchEvent(new Event("close", { bubbles: !0 }));
619
- };
620
- #r = (t) => {
621
- t.target === this.#t && this.hide();
622
- };
623
- }
624
- function V(l) {
625
- const t = getComputedStyle(l).getPropertyValue("--aui-duration").trim();
626
- return parseFloat(t) || 200;
627
- }
628
- class ht extends h {
629
- static attributes = {
630
- open: { type: "boolean", default: !1 },
631
- side: { type: "enum", values: ["left", "right", "top", "bottom"], default: "right" },
632
- "scroll-lock": { type: "boolean", default: !1 }
633
- };
634
- #t = null;
635
- #e = null;
636
- #i = !1;
637
- get dialogElement() {
638
- return this.#t;
639
- }
640
- #s() {
641
- if (this.#t) return this.#t;
642
- if (this.#t = this.querySelector("dialog"), this.#t)
643
- this.#e = this.#t.querySelector("[data-drawer-content]");
644
- else {
645
- for (this.#t = document.createElement("dialog"), this.#e = document.createElement("div"), this.#e.setAttribute("data-drawer-content", ""); this.firstChild && this.firstChild !== this.#t; )
646
- this.#e.appendChild(this.firstChild);
647
- this.#t.appendChild(this.#e), this.appendChild(this.#t);
648
- }
649
- return this.#t.addEventListener("cancel", this.#n), this.#t.addEventListener("close", this.#a), this.#t.addEventListener("click", this.#r), this.#t;
650
- }
651
- activate() {
652
- this.#s(), this.addEffect(() => {
653
- this.open ? this.show() : this.hide();
654
- });
655
- }
656
- dispose() {
657
- this.#t && (this.#t.removeEventListener("cancel", this.#n), this.#t.removeEventListener("close", this.#a), this.#t.removeEventListener("click", this.#r));
658
- }
659
- show() {
660
- const t = this.#s();
661
- t.open || (this["scroll-lock"] && (document.documentElement.style.overflow = "hidden"), t.showModal(), requestAnimationFrame(() => {
662
- t.setAttribute("data-drawer-open", "");
663
- }), this.hasAttribute("open") || this.setAttribute("open", ""));
664
- }
665
- hide() {
666
- !this.#t || !this.#t.open || this.#i || (this.#i = !0, this.#t.removeAttribute("data-drawer-open"), this.#t.setAttribute("data-drawer-closing", ""), setTimeout(() => {
667
- this.#i = !1, this.#t?.removeAttribute("data-drawer-closing"), this.#t?.close(), this["scroll-lock"] && !document.querySelector("dialog[open]") && (document.documentElement.style.overflow = "");
668
- }, V(this)));
669
- }
670
- #n = (t) => {
671
- t.preventDefault(), this.hide();
672
- };
673
- #a = () => {
674
- this["scroll-lock"] && !document.querySelector("dialog[open]") && (document.documentElement.style.overflow = ""), this.removeAttribute("open"), this.dispatchEvent(new Event("close", { bubbles: !0 }));
675
- };
676
- #r = (t) => {
677
- t.target === this.#t && this.hide();
678
- };
679
- }
680
- const T = /* @__PURE__ */ new Map();
681
- class ot extends h {
682
- static attributes = {
683
- name: { type: "string", default: "" },
684
- src: { type: "string", default: "" },
685
- label: { type: "string", default: "" },
686
- "text-leading": { type: "string", default: "" },
687
- "text-trailing": { type: "string", default: "" }
688
- };
689
- #t = null;
690
- #e = !1;
691
- activate() {
692
- this.#e = this.querySelector("svg") !== null, this.addEffect(() => {
693
- const t = this.label || this["text-leading"] || this["text-trailing"];
694
- t ? (this.setAttribute("role", "img"), this.setAttribute("aria-label", t)) : (this.setAttribute("role", "presentation"), this.setAttribute("aria-hidden", "true"), this.removeAttribute("aria-label"));
695
- }), this.addEffect(() => {
696
- if (this.#e) return;
697
- const t = this.name;
698
- t ? this.#i(t) : this.src && this.#s(this.src);
699
- }), this.#t = N(() => {
700
- if (this.#e) return;
701
- const t = this.name;
702
- t && !this.querySelector("svg") && this.#i(t);
703
- });
704
- }
705
- dispose() {
706
- this.#t?.(), this.#t = null;
707
- }
708
- #i(t) {
709
- const e = U(t);
710
- e && this.#n(e);
711
- }
712
- async #s(t) {
713
- const e = T.get(t);
714
- if (e) {
715
- this.#n(e);
716
- return;
717
- }
718
- try {
719
- const i = await fetch(t);
720
- if (!i.ok) return;
721
- const s = await i.text();
722
- if (!s.includes("<svg")) return;
723
- T.set(t, s), this.src === t && this.#n(s);
724
- } catch {
725
- }
726
- }
727
- #n(t) {
728
- const e = this.querySelector("svg");
729
- e && e.remove();
730
- const i = document.createElement("template");
731
- i.innerHTML = t;
732
- const s = i.content.firstElementChild;
733
- s && this.prepend(s);
734
- }
735
- }
736
- class dt extends h {
737
- static attributes = {
738
- content: { type: "string", default: "" },
739
- position: { type: "enum", values: ["top", "bottom", "left", "right"], default: "top" }
740
- };
741
- #t = null;
742
- #e = null;
743
- #i = "";
744
- activate() {
745
- this.#e = this.previousElementSibling ?? this.parentElement;
746
- const t = `tooltip-${crypto.randomUUID().slice(0, 8)}`;
747
- this.#i = `--${t}`, this.#t = document.createElement("div"), this.#t.setAttribute("popover", "manual"), this.#t.setAttribute("role", "tooltip"), this.#t.id = t, this.appendChild(this.#t), this.#e && (this.#e.style.anchorName = this.#i, this.#e.setAttribute("aria-describedby", t)), this.style.setProperty("--_anchor", this.#i), this.addEffect(() => {
748
- this.#t && (this.#t.textContent = this.content);
749
- }), this.#e && (this.#e.addEventListener("mouseenter", this.#s), this.#e.addEventListener("mouseleave", this.#n), this.#e.addEventListener("focusin", this.#s), this.#e.addEventListener("focusout", this.#n)), this.addEventListener("keydown", this.#a);
750
- }
751
- dispose() {
752
- this.#e && (this.#e.removeEventListener("mouseenter", this.#s), this.#e.removeEventListener("mouseleave", this.#n), this.#e.removeEventListener("focusin", this.#s), this.#e.removeEventListener("focusout", this.#n), this.#e.removeAttribute("aria-describedby"), this.#e.style.anchorName = ""), this.#t?.hidePopover(), this.#t?.remove(), this.#t = null, this.#e = null;
753
- }
754
- #s = () => {
755
- try {
756
- this.#t?.showPopover();
757
- } catch {
758
- }
759
- };
760
- #n = () => {
761
- try {
762
- this.#t?.hidePopover();
763
- } catch {
764
- }
765
- };
766
- #a = (t) => {
767
- t.key === "Escape" && this.#n();
768
- };
769
- }
770
- class ct extends h {
771
- static formAssociated = !0;
772
- static attributes = {
773
- disabled: { type: "boolean", default: !1 },
774
- min: { type: "string", default: "0" },
775
- max: { type: "string", default: "100" },
776
- step: { type: "string", default: "1" },
777
- value: { type: "string", default: "50" },
778
- label: { type: "string", default: "" },
779
- name: { type: "string", default: "" }
780
- };
781
- #t;
782
- #e = null;
783
- constructor() {
784
- super(), this.#t = this.attachInternals(), this.#t.role = "slider";
785
- }
786
- activate() {
787
- this.#e = this.querySelector("[data-thumb]"), this.#e || (this.#e = document.createElement("span"), this.#e.setAttribute("data-thumb", ""), this.appendChild(this.#e)), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEffect(() => {
788
- const t = parseFloat(this.min) || 0, e = parseFloat(this.max) || 100, i = parseFloat(this.value) || 0;
789
- this.setAttribute("aria-valuemin", String(t)), this.setAttribute("aria-valuemax", String(e)), this.setAttribute("aria-valuenow", String(i)), this.setAttribute("aria-disabled", String(this.disabled)), this.label && this.setAttribute("aria-label", this.label);
790
- const s = e - t > 0 ? (i - t) / (e - t) : 0;
791
- this.style.setProperty("--_pct", String(Math.max(0, Math.min(1, s)))), this.#t.setFormValue(this.value || null);
792
- }), this.addEventListener("pointerdown", this.#i), this.addEventListener("keydown", this.#r);
793
- }
794
- dispose() {
795
- this.removeEventListener("pointerdown", this.#i), this.removeEventListener("keydown", this.#r);
796
- }
797
- formDisabledCallback(t) {
798
- this.disabled = t;
799
- }
800
- formResetCallback() {
801
- this.value = "50";
802
- }
803
- // ── Pointer interaction ───────────────────────────────
804
- #i = (t) => {
805
- this.disabled || (t.preventDefault(), this.setPointerCapture(t.pointerId), this.setAttribute("data-range-pressed", ""), this.#a(t), this.addEventListener("pointermove", this.#s), this.addEventListener("pointerup", this.#n));
806
- };
807
- #s = (t) => {
808
- this.#a(t);
809
- };
810
- #n = (t) => {
811
- this.removeAttribute("data-range-pressed"), this.removeEventListener("pointermove", this.#s), this.removeEventListener("pointerup", this.#n), this.dispatchEvent(new Event("change", { bubbles: !0 }));
812
- };
813
- #a(t) {
814
- const e = this.getBoundingClientRect(), i = Math.max(0, Math.min(1, (t.clientX - e.left) / e.width)), s = parseFloat(this.min) || 0, n = parseFloat(this.max) || 100, a = parseFloat(this.step) || 1, r = s + i * (n - s), o = Math.round(r / a) * a, d = Math.max(s, Math.min(n, o));
815
- this.value = String(d), this.dispatchEvent(new Event("input", { bubbles: !0 }));
816
- }
817
- // ── Keyboard interaction ──────────────────────────────
818
- #r = (t) => {
819
- if (this.disabled) return;
820
- const e = parseFloat(this.min) || 0, i = parseFloat(this.max) || 100, s = parseFloat(this.step) || 1, n = parseFloat(this.value) || 0, a = (i - e) / 10;
821
- let r;
822
- switch (t.key) {
823
- case "ArrowRight":
824
- case "ArrowUp":
825
- r = Math.min(i, n + s);
826
- break;
827
- case "ArrowLeft":
828
- case "ArrowDown":
829
- r = Math.max(e, n - s);
830
- break;
831
- case "PageUp":
832
- r = Math.min(i, n + a);
833
- break;
834
- case "PageDown":
835
- r = Math.max(e, n - a);
836
- break;
837
- case "Home":
838
- r = e;
839
- break;
840
- case "End":
841
- r = i;
842
- break;
843
- default:
844
- return;
845
- }
846
- t.preventDefault(), this.value = String(r), this.dispatchEvent(new Event("input", { bubbles: !0 })), this.dispatchEvent(new Event("change", { bubbles: !0 }));
847
- };
848
- }
849
- class ut extends h {
850
- static attributes = {
851
- orientation: { type: "enum", values: ["horizontal", "vertical"], default: "horizontal" },
852
- disabled: { type: "boolean", default: !1 }
853
- };
854
- #t = 0;
855
- #e = 0;
856
- #i = !1;
857
- activate() {
858
- this.setAttribute("role", "separator"), this.addEffect(() => {
859
- this.setAttribute("aria-orientation", this.orientation || "horizontal"), this.setAttribute("aria-disabled", String(this.disabled));
860
- }), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0"), this.addEventListener("pointerdown", this.#s), this.addEventListener("keydown", this.#l);
861
- }
862
- dispose() {
863
- this.removeEventListener("pointerdown", this.#s), this.removeEventListener("keydown", this.#l), this.#r();
864
- }
865
- #s = (t) => {
866
- this.disabled || (t.preventDefault(), this.#t = t.clientX, this.#e = t.clientY, this.#i = !0, this.setPointerCapture(t.pointerId), this.setAttribute("data-gripper-dragging", ""), this.addEventListener("pointermove", this.#n), this.addEventListener("pointerup", this.#a), this.addEventListener("pointercancel", this.#a), this.dispatchEvent(new CustomEvent("aui:resize-start", { bubbles: !0 })));
867
- };
868
- #n = (t) => {
869
- if (!this.#i) return;
870
- const e = t.clientX - this.#t, i = t.clientY - this.#e;
871
- this.#t = t.clientX, this.#e = t.clientY;
872
- const s = this.orientation !== "vertical";
873
- this.dispatchEvent(new CustomEvent("aui:resize-move", {
874
- bubbles: !0,
875
- detail: { dx: e, dy: i, delta: s ? e : i }
876
- }));
877
- };
878
- #a = () => {
879
- this.#i && (this.#r(), this.dispatchEvent(new CustomEvent("aui:resize-end", { bubbles: !0 })));
880
- };
881
- #r() {
882
- this.#i = !1, this.removeAttribute("data-gripper-dragging"), this.removeEventListener("pointermove", this.#n), this.removeEventListener("pointerup", this.#a), this.removeEventListener("pointercancel", this.#a);
883
- }
884
- #l = (t) => {
885
- if (this.disabled) return;
886
- const e = this.orientation !== "vertical", i = t.shiftKey ? 10 : 1;
887
- let s = 0;
888
- if (e)
889
- if (t.key === "ArrowLeft") s = -i;
890
- else if (t.key === "ArrowRight") s = i;
891
- else return;
892
- else if (t.key === "ArrowUp") s = -i;
893
- else if (t.key === "ArrowDown") s = i;
894
- else return;
895
- t.preventDefault(), this.dispatchEvent(new CustomEvent("aui:resize-move", {
896
- bubbles: !0,
897
- detail: { dx: e ? s : 0, dy: e ? 0 : s, delta: s }
898
- }));
899
- };
900
- }
901
- class bt extends h {
902
- static attributes = {
903
- value: { type: "string", default: "" },
904
- disabled: { type: "boolean", default: !1 },
905
- selected: { type: "boolean", default: !1 },
906
- label: { type: "string", default: "" }
907
- };
908
- /** The display text for this option. */
909
- get displayLabel() {
910
- return this.label || this.textContent?.trim() || this.value;
911
- }
912
- activate() {
913
- this.setAttribute("role", "option"), this.addEffect(() => {
914
- this.setAttribute("aria-selected", String(this.selected)), this.setAttribute("aria-disabled", String(this.disabled));
915
- });
916
- }
917
- }
918
- class ft extends h {
919
- static attributes = {
920
- label: { type: "string", default: "" },
921
- disabled: { type: "boolean", default: !1 },
922
- divider: { type: "boolean", default: !1 }
923
- };
924
- #t = null;
925
- activate() {
926
- this.setAttribute("role", "group"), this.#t = this.querySelector("[data-group-label]"), !this.#t && this.label && (this.#t = document.createElement("div"), this.#t.setAttribute("data-group-label", ""), this.#t.setAttribute("role", "presentation"), this.#t.id = `optgroup-${crypto.randomUUID().slice(0, 8)}`, this.prepend(this.#t)), this.addEffect(() => {
927
- this.#t && (this.#t.textContent = this.label, this.setAttribute("aria-labelledby", this.#t.id)), this.setAttribute("aria-disabled", String(this.disabled));
928
- for (const t of this.querySelectorAll("aui-option"))
929
- this.disabled && t.setAttribute("disabled", "");
930
- });
931
- }
932
- }
933
- const B = '<svg viewBox="0 0 256 256" fill="currentColor" width="100%" height="100%"><polyline points="48,80 128,160 208,80" fill="none" stroke="currentColor" stroke-width="24" stroke-linecap="round" stroke-linejoin="round"/></svg>', $ = '<svg viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em"><circle cx="128" cy="128" r="16"/><circle cx="64" cy="128" r="16"/><circle cx="192" cy="128" r="16"/></svg>', P = { 0: 0, low: 0, 1: 1, normal: 1, 2: 2, high: 2, pin: 999 }, K = ":is(aui-option, aui-button, button, [tabindex]):not([disabled]):not([data-overflow-trigger])", _ = ":is(aui-option, aui-button, button, [tabindex]):not([disabled])";
934
- function q(l) {
935
- return l === "AUI-OPTION";
936
- }
937
- function G(l) {
938
- return l === "AUI-OPTGROUP";
939
- }
940
- function M(l) {
941
- return q(l.tagName) || G(l.tagName);
942
- }
943
- class pt extends h {
944
- static formAssociated = !0;
945
- static attributes = {
946
- mode: { type: "enum", values: ["bar", "list", "combobox"], default: "" },
947
- disabled: { type: "boolean", default: !1 },
948
- required: { type: "boolean", default: !1 },
949
- placeholder: { type: "string", default: "Select…" },
950
- value: { type: "string", default: "" },
951
- name: { type: "string", default: "" },
952
- open: { type: "boolean", default: !1 },
953
- multiple: { type: "boolean", default: !1 },
954
- // Bar mode
955
- orientation: { type: "enum", values: ["vertical"], default: "" },
956
- transparent: { type: "boolean", default: !1 },
957
- fill: { type: "boolean", default: !1 },
958
- padding: { type: "string", default: "" }
959
- };
960
- #t;
961
- // ── Shared state ─────────────────────────────────────────
962
- #e = "";
963
- // ── Dropdown mode state ──────────────────────────────────
964
- #i = null;
965
- #s = null;
966
- #n = null;
967
- #a = null;
968
- #r = null;
969
- // ── Bar mode state ───────────────────────────────────────
970
- #l = null;
971
- #h = null;
972
- #d = null;
973
- #u = null;
974
- #c = null;
975
- #b = null;
976
- // ── List mode state ──────────────────────────────────────
977
- #p = -1;
978
- #E = "";
979
- #g = null;
980
- // ── Combobox mode state ──────────────────────────────────
981
- #o = null;
982
- #v = null;
983
- #f = null;
984
- #y = [];
985
- constructor() {
986
- super(), this.#t = this.attachInternals();
987
- }
988
- // ════════════════════════════════════════════════════════════
989
- // Lifecycle
990
- // ════════════════════════════════════════════════════════════
991
- activate() {
992
- switch (this.mode) {
993
- case "bar":
994
- this.#N();
995
- break;
996
- case "list":
997
- this.#ht();
998
- break;
999
- case "combobox":
1000
- this.#bt();
1001
- break;
1002
- default:
1003
- this.#C();
1004
- break;
1005
- }
1006
- }
1007
- dispose() {
1008
- switch (this.mode) {
1009
- case "bar":
1010
- this.#q();
1011
- break;
1012
- case "list":
1013
- this.#ot();
1014
- break;
1015
- case "combobox":
1016
- this.#ft();
1017
- break;
1018
- default:
1019
- this.#L();
1020
- break;
1021
- }
1022
- }
1023
- formDisabledCallback(t) {
1024
- this.disabled = t;
1025
- }
1026
- formResetCallback() {
1027
- this.value = "", this.#o && (this.#o.textContent = "");
1028
- }
1029
- // ════════════════════════════════════════════════════════════
1030
- // Public API
1031
- // ════════════════════════════════════════════════════════════
1032
- /** Get all option elements (including inside groups). */
1033
- get options() {
1034
- return this.mode === "" || this.mode === void 0 ? Array.from(this.#r?.querySelectorAll("aui-option") ?? []) : this.mode === "combobox" ? Array.from(this.#f?.querySelectorAll("aui-option") ?? []) : Array.from(this.querySelectorAll("aui-option"));
1035
- }
1036
- /** Get enabled options. */
1037
- get enabledOptions() {
1038
- return this.options.filter((t) => !t.hasAttribute("disabled"));
1039
- }
1040
- /** Get the currently active (highlighted) option. */
1041
- get activeOption() {
1042
- return this.mode === "list" ? this.enabledOptions[this.#p] ?? null : (this.#r ?? this.#f)?.activeOption ?? null;
1043
- }
1044
- /** Internal listbox element (for dropdown mode). */
1045
- get listboxElement() {
1046
- return this.#r;
1047
- }
1048
- /** Programmatically select an option by value. */
1049
- selectValue(t) {
1050
- if (this.mode === "list") {
1051
- const e = this.options.find(
1052
- (i) => (i.getAttribute("value") ?? i.textContent?.trim()) === t
1053
- );
1054
- e && !e.hasAttribute("disabled") && this.#U(e);
1055
- } else
1056
- (this.#r ?? this.#f)?.selectValue?.(t);
1057
- }
1058
- /** Highlight a specific option by index (for external control). */
1059
- highlightIndex(t) {
1060
- this.mode === "list" ? this.#S(t) : (this.#r ?? this.#f)?.highlightIndex?.(t);
1061
- }
1062
- /** Reset the active highlight. */
1063
- clearHighlight() {
1064
- this.mode === "list" ? this.#W() : (this.#r ?? this.#f)?.clearHighlight?.();
1065
- }
1066
- // ════════════════════════════════════════════════════════════
1067
- // Shared popover helpers (dropdown + combobox)
1068
- // ════════════════════════════════════════════════════════════
1069
- #x() {
1070
- const t = this.#a ?? this.#v;
1071
- if (!(!t || this.disabled)) {
1072
- try {
1073
- t.showPopover();
1074
- } catch {
1075
- }
1076
- if (this.open = !0, this.mode !== "combobox") {
1077
- const e = this.#r;
1078
- if (e?.enabledOptions && e.value) {
1079
- const i = e.enabledOptions.findIndex(
1080
- (s) => (s.getAttribute("value") ?? s.textContent?.trim()) === e.value
1081
- );
1082
- i >= 0 && e.highlightIndex(i);
1083
- }
1084
- this.#r?.focus();
1085
- }
1086
- }
1087
- }
1088
- #m() {
1089
- const t = this.#a ?? this.#v;
1090
- if (!t) return;
1091
- try {
1092
- t.hidePopover();
1093
- } catch {
1094
- }
1095
- this.open = !1, (this.#r ?? this.#f)?.clearHighlight?.();
1096
- }
1097
- // ════════════════════════════════════════════════════════════
1098
- // MODE: Dropdown (default)
1099
- // ════════════════════════════════════════════════════════════
1100
- #C() {
1101
- const t = `select-${crypto.randomUUID().slice(0, 8)}`;
1102
- this.#e = `--${t}`, this.#i = document.createElement("span"), this.#i.setAttribute("data-trigger", ""), this.#i.setAttribute("role", "combobox"), this.#i.setAttribute("aria-haspopup", "listbox"), this.#i.setAttribute("tabindex", "0"), this.#i.id = t, this.#s = document.createElement("span"), this.#s.setAttribute("data-label", ""), this.#i.appendChild(this.#s), this.#n = document.createElement("span"), this.#n.setAttribute("data-chevron", ""), this.#n.innerHTML = B, this.#i.appendChild(this.#n), this.#a = document.createElement("div"), this.#a.setAttribute("popover", "manual"), this.#a.setAttribute("data-dropdown", ""), this.#r = document.createElement("aui-listbox"), this.#a.appendChild(this.#r);
1103
- const e = Array.from(this.children);
1104
- for (const i of e)
1105
- M(i) && this.#r.appendChild(i);
1106
- this.appendChild(this.#i), this.appendChild(this.#a), this.#i.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
1107
- this.disabled ? this.#i.setAttribute("tabindex", "-1") : this.#i.setAttribute("tabindex", "0"), this.#i.setAttribute("aria-expanded", String(this.open)), this.#i.setAttribute("aria-disabled", String(this.disabled)), this.#t.setFormValue(this.value || null), this.#A();
1108
- }), this.#i.addEventListener("click", this.#k), this.#i.addEventListener("keydown", this.#T), this.#r.addEventListener("click", this.#w), this.#r.addEventListener("change", this.#P), this.#r.addEventListener("keydown", this.#M), document.addEventListener("click", this.#I), this.value && (this.#r.value = this.value);
1109
- }
1110
- #w = (t) => {
1111
- const e = t.target.closest("aui-option");
1112
- if (!(!e || e.hasAttribute("disabled"))) {
1113
- for (const i of this.#r.querySelectorAll("aui-option"))
1114
- i.selected = !1;
1115
- e.selected = !0, this.value = e.value ?? e.getAttribute("value") ?? "", this.#r.dispatchEvent(new CustomEvent("change", {
1116
- bubbles: !0,
1117
- detail: { value: this.value, option: e }
1118
- })), this.#m();
1119
- }
1120
- };
1121
- #L() {
1122
- this.#i?.removeEventListener("click", this.#k), this.#i?.removeEventListener("keydown", this.#T), this.#r?.removeEventListener("click", this.#w), this.#r?.removeEventListener("change", this.#P), this.#r?.removeEventListener("keydown", this.#M), document.removeEventListener("click", this.#I), this.#m();
1123
- }
1124
- #A() {
1125
- if (!this.#s) return;
1126
- const t = this.#r?.querySelector("aui-option[selected]");
1127
- t ? (this.#s.textContent = t.displayLabel ?? t.textContent?.trim() ?? "", this.#s.removeAttribute("data-placeholder")) : (this.#s.textContent = this.placeholder, this.#s.setAttribute("data-placeholder", ""));
1128
- }
1129
- #k = () => {
1130
- this.disabled || (this.open ? this.#m() : this.#x());
1131
- };
1132
- #T = (t) => {
1133
- t.key === "ArrowDown" || t.key === "ArrowUp" || t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.open || this.#x()) : t.key === "Escape" && this.#m();
1134
- };
1135
- #P = (t) => {
1136
- t.stopPropagation(), this.value = t.detail.value, this.#t.setFormValue(this.value || null), this.#A(), this.#m(), this.#i?.focus(), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1137
- };
1138
- #M = (t) => {
1139
- t.key === "Escape" ? (t.preventDefault(), this.#m(), this.#i?.focus()) : t.key === "Tab" && this.#m();
1140
- };
1141
- #I = (t) => {
1142
- this.open && !this.contains(t.target) && this.#m();
1143
- };
1144
- // ════════════════════════════════════════════════════════════
1145
- // MODE: Bar (toolbar)
1146
- // ════════════════════════════════════════════════════════════
1147
- #N() {
1148
- this.setAttribute("role", "toolbar"), this.hasAttribute("aria-label") || this.setAttribute("aria-label", "Toolbar"), this.orientation && this.setAttribute("aria-orientation", this.orientation || "horizontal"), this.#l = document.createElement("span"), this.#l.setAttribute("data-overflow-trigger", ""), this.#l.setAttribute("role", "button"), this.#l.setAttribute("tabindex", "0"), this.#l.setAttribute("aria-label", "More actions"), this.#l.setAttribute("aria-haspopup", "true"), this.#l.innerHTML = $, this.appendChild(this.#l), this.#h = document.createElement("div"), this.#h.setAttribute("data-overflow-popover", ""), this.#h.setAttribute("popover", "auto"), this.#h.setAttribute("role", "menu"), this.appendChild(this.#h), this.#d = document.createElement("div"), this.#d.setAttribute("data-overflow-list", ""), this.#h.appendChild(this.#d), this.#l.addEventListener("click", this.#B), this.#l.addEventListener("keydown", this.#$), this.#d.addEventListener("click", this.#_), this.addEventListener("keydown", this.#G), this.#R(), this.#u = new ResizeObserver(() => this.#z()), this.#u.observe(this), this.#c = new MutationObserver((t) => {
1149
- for (const e of t)
1150
- if (!this.#h?.contains(e.target)) {
1151
- this.#z();
1152
- return;
1153
- }
1154
- }), this.#c.observe(this, { childList: !0, subtree: !0 }), this.#z();
1155
- }
1156
- #q() {
1157
- this.#b !== null && cancelAnimationFrame(this.#b), this.#u?.disconnect(), this.#c?.disconnect(), this.removeEventListener("keydown", this.#G), this.#l?.removeEventListener("click", this.#B), this.#l?.removeEventListener("keydown", this.#$), this.#d?.removeEventListener("click", this.#_);
1158
- }
1159
- // ── Bar: Group dividers ───────────────────────────────
1160
- #R() {
1161
- const t = Array.from(this.children);
1162
- let e = !1;
1163
- for (const i of t) {
1164
- if (!(i instanceof HTMLElement) || i.hasAttribute("data-overflow-trigger") || i.hasAttribute("data-overflow-popover")) continue;
1165
- const s = i.tagName === "AUI-OPTGROUP";
1166
- if (s && e) {
1167
- const n = document.createElement("hr");
1168
- n.setAttribute("data-group-divider", ""), this.insertBefore(n, i);
1169
- }
1170
- (s || q(i.tagName)) && (e = s);
1171
- }
1172
- }
1173
- // ── Bar: Measurement ───────────────────────────────────
1174
- #z() {
1175
- this.#b === null && (this.#b = requestAnimationFrame(() => {
1176
- this.#b = null, this.#it();
1177
- }));
1178
- }
1179
- #O() {
1180
- return Array.from(this.children).filter(
1181
- (t) => t instanceof HTMLElement && !t.hasAttribute("data-overflow-trigger") && !t.hasAttribute("data-overflow-popover")
1182
- );
1183
- }
1184
- #it() {
1185
- if (this.orientation === "vertical") {
1186
- this.#nt();
1187
- return;
1188
- }
1189
- this.#c?.disconnect(), this.#l && this.#l.nextElementSibling !== this.#h && this.appendChild(this.#l), this.#h && this.#h !== this.lastElementChild && this.appendChild(this.#h);
1190
- const t = this.#O();
1191
- if (t.length === 0) {
1192
- this.#D();
1193
- return;
1194
- }
1195
- for (const c of t)
1196
- c.removeAttribute("data-select-overflow");
1197
- this.removeAttribute("data-select-overflowing"), this.setAttribute("data-select-measuring", "");
1198
- const e = getComputedStyle(this), i = parseFloat(e.gap) || 0, s = this.clientWidth - (parseFloat(e.paddingInlineStart) || 0) - (parseFloat(e.paddingInlineEnd) || 0);
1199
- if (s <= 0) {
1200
- this.removeAttribute("data-select-measuring"), this.#D();
1201
- return;
1202
- }
1203
- const n = this.#st(t);
1204
- let a = 0, r = 0;
1205
- for (const c of n)
1206
- for (const p of c.flexItems)
1207
- r > 0 && (a += i), a += p.offsetWidth, r++;
1208
- if (a <= s + 1) {
1209
- this.removeAttribute("data-select-measuring"), this.#H(), this.#D();
1210
- return;
1211
- }
1212
- this.setAttribute("data-select-overflowing", "");
1213
- for (const c of n) {
1214
- let p = 0;
1215
- for (let v = 0; v < c.flexItems.length; v++)
1216
- v > 0 && (p += i), p += c.flexItems[v].offsetWidth;
1217
- c.width = p;
1218
- }
1219
- this.removeAttribute("data-select-measuring");
1220
- const o = this.#l?.offsetWidth ?? 0, d = n.filter((c) => !c.pinned);
1221
- if (d.length === 0) {
1222
- this.#H(), this.#D();
1223
- return;
1224
- }
1225
- d.sort((c, p) => {
1226
- const v = P[c.priority] ?? 1, k = P[p.priority] ?? 1;
1227
- return v !== k ? v - k : p.index - c.index;
1228
- });
1229
- const b = /* @__PURE__ */ new Set();
1230
- let f = a;
1231
- const m = s - o - i;
1232
- for (const c of d) {
1233
- if (f <= m) break;
1234
- b.add(c.el), f -= c.width + i;
1235
- }
1236
- if (b.size === 0) {
1237
- this.removeAttribute("data-select-overflowing"), this.#H(), this.#D();
1238
- return;
1239
- }
1240
- for (const c of b) {
1241
- c.setAttribute("data-select-overflow", "");
1242
- const p = c.previousElementSibling;
1243
- p?.hasAttribute("data-group-divider") && p.setAttribute("data-select-overflow", "");
1244
- const v = c.nextElementSibling;
1245
- v?.hasAttribute("data-group-divider") && v.setAttribute("data-select-overflow", "");
1246
- }
1247
- this.#at(), this.#D();
1248
- }
1249
- #st(t) {
1250
- const e = [];
1251
- for (let i = 0; i < t.length; i++) {
1252
- const s = t[i];
1253
- if (s.tagName === "HR" || s.tagName === "AUI-DIVIDER") continue;
1254
- const n = s.getAttribute("data-priority") ?? s.getAttribute("overflow-priority") ?? "normal", a = n, r = n === "pin" || s.hasAttribute("overflow-pin");
1255
- if (s.tagName === "AUI-OPTGROUP") {
1256
- const o = [];
1257
- for (const d of s.children)
1258
- d instanceof HTMLElement && d.tagName !== "HR" && d.tagName !== "AUI-DIVIDER" && o.push(d);
1259
- e.push({ el: s, flexItems: o, priority: a, pinned: r, index: i, width: 0 });
1260
- } else
1261
- e.push({ el: s, flexItems: [s], priority: a, pinned: r, index: i, width: 0 });
1262
- }
1263
- return e;
1264
- }
1265
- // ── Bar: Overflow menu ─────────────────────────────────
1266
- #nt() {
1267
- for (const t of this.#O())
1268
- t.removeAttribute("data-select-overflow");
1269
- this.removeAttribute("data-select-overflowing"), this.removeAttribute("data-select-measuring"), this.#H();
1270
- }
1271
- #H() {
1272
- this.#d && (this.#d.innerHTML = "");
1273
- }
1274
- #at() {
1275
- if (this.#H(), !this.#d) return;
1276
- const t = this.#O();
1277
- let e = 0;
1278
- for (const i of t)
1279
- if (i.hasAttribute("data-select-overflow")) {
1280
- if (i.tagName === "AUI-OPTGROUP") {
1281
- const s = document.createElement("aui-optgroup"), n = i.getAttribute("label");
1282
- n && s.setAttribute("label", n), s.setAttribute("divider", "");
1283
- for (const a of i.children) {
1284
- if (!(a instanceof HTMLElement) || a.tagName === "HR" || a.tagName === "AUI-DIVIDER" || a.hasAttribute("data-group-label")) continue;
1285
- const r = document.createElement("aui-option");
1286
- r.textContent = this.#V(a), r.setAttribute("data-overflow-index", String(e)), s.appendChild(r), e++;
1287
- }
1288
- this.#d.appendChild(s);
1289
- } else if (i.tagName !== "HR" && i.tagName !== "AUI-DIVIDER") {
1290
- const s = document.createElement("aui-option");
1291
- s.textContent = this.#V(i), s.setAttribute("data-overflow-index", String(e)), this.#d.appendChild(s), e++;
1292
- }
1293
- }
1294
- }
1295
- /** Flat list of overflowed source elements, in DOM order (for click dispatch). */
1296
- #rt() {
1297
- const t = [];
1298
- for (const e of this.#O())
1299
- if (e.hasAttribute("data-select-overflow"))
1300
- if (e.tagName === "AUI-OPTGROUP")
1301
- for (const i of e.children)
1302
- i instanceof HTMLElement && i.tagName !== "HR" && i.tagName !== "AUI-DIVIDER" && !i.hasAttribute("data-group-label") && t.push(i);
1303
- else e.tagName !== "HR" && e.tagName !== "AUI-DIVIDER" && t.push(e);
1304
- return t;
1305
- }
1306
- #V(t) {
1307
- const e = t.getAttribute("aria-label");
1308
- if (e) return e;
1309
- const i = t.getAttribute("label");
1310
- if (i) return i;
1311
- const s = t.textContent?.trim();
1312
- if (s) return s;
1313
- const n = t.getAttribute("icon");
1314
- return n ? n.charAt(0).toUpperCase() + n.slice(1).replace(/-/g, " ") : "Action";
1315
- }
1316
- #D() {
1317
- this.#c?.observe(this, { childList: !0, subtree: !0 });
1318
- }
1319
- // ── Bar: Event handlers ────────────────────────────────
1320
- #B = (t) => {
1321
- t.stopPropagation(), this.#K(), this.#h?.togglePopover();
1322
- };
1323
- #$ = (t) => {
1324
- const e = t;
1325
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.#K(), this.#h?.togglePopover());
1326
- };
1327
- #K() {
1328
- if (!this.#l || !this.#h) return;
1329
- const t = this.#l.getBoundingClientRect();
1330
- this.#h.style.top = `${t.bottom + 2}px`, this.#h.style.right = `${window.innerWidth - t.right}px`;
1331
- }
1332
- #_ = (t) => {
1333
- const e = t.target.closest("[data-overflow-index]");
1334
- if (!e) return;
1335
- const i = parseInt(e.getAttribute("data-overflow-index"), 10), s = this.#rt()[i];
1336
- s && s.click(), this.#h?.hidePopover();
1337
- };
1338
- // ── Bar: Keyboard navigation ───────────────────────────
1339
- #lt() {
1340
- const t = [], e = this.hasAttribute("data-select-overflowing") ? _ : K;
1341
- for (const i of this.#O())
1342
- if (!i.hasAttribute("data-select-overflow"))
1343
- if (i.tagName === "AUI-OPTGROUP")
1344
- for (const s of i.children)
1345
- s instanceof HTMLElement && s.matches(e) && t.push(s);
1346
- else i.matches(e) && t.push(i);
1347
- return this.#l && this.hasAttribute("data-select-overflowing") && t.push(this.#l), t;
1348
- }
1349
- #G = (t) => {
1350
- const e = this.orientation === "vertical", i = e ? "ArrowDown" : "ArrowRight", s = e ? "ArrowUp" : "ArrowLeft";
1351
- if (t.key !== i && t.key !== s && t.key !== "Home" && t.key !== "End") return;
1352
- const n = this.#lt();
1353
- if (n.length === 0) return;
1354
- const a = n.indexOf(document.activeElement);
1355
- let r;
1356
- switch (t.key) {
1357
- case i:
1358
- r = a < n.length - 1 ? a + 1 : 0;
1359
- break;
1360
- case s:
1361
- r = a > 0 ? a - 1 : n.length - 1;
1362
- break;
1363
- case "Home":
1364
- r = 0;
1365
- break;
1366
- case "End":
1367
- r = n.length - 1;
1368
- break;
1369
- }
1370
- r !== void 0 && (t.preventDefault(), n[r].setAttribute("tabindex", "0"), n[r].focus(), a >= 0 && a !== r && n[a].setAttribute("tabindex", "-1"));
1371
- };
1372
- // ════════════════════════════════════════════════════════════
1373
- // MODE: List (standalone listbox)
1374
- // ════════════════════════════════════════════════════════════
1375
- #ht() {
1376
- this.setAttribute("role", "listbox"), this.addEffect(() => {
1377
- this.multiple ? this.setAttribute("aria-multiselectable", "true") : this.removeAttribute("aria-multiselectable");
1378
- }), this.value && this.#ct(), this.addEventListener("click", this.#X), this.addEventListener("keydown", this.#j), this.hasAttribute("tabindex") || this.setAttribute("tabindex", "0");
1379
- }
1380
- #ot() {
1381
- this.removeEventListener("click", this.#X), this.removeEventListener("keydown", this.#j), this.#g && clearTimeout(this.#g);
1382
- }
1383
- // ── List: Selection ────────────────────────────────────
1384
- #U(t) {
1385
- if (!this.multiple)
1386
- for (const i of this.options)
1387
- i.removeAttribute("selected");
1388
- const e = t.hasAttribute("selected");
1389
- this.multiple && e ? t.removeAttribute("selected") : t.setAttribute("selected", ""), this.#dt(), this.dispatchEvent(new CustomEvent("change", {
1390
- bubbles: !0,
1391
- detail: {
1392
- value: this.value,
1393
- option: t,
1394
- label: t.displayLabel ?? t.textContent?.trim() ?? ""
1395
- }
1396
- }));
1397
- }
1398
- #dt() {
1399
- const t = this.options.filter((e) => e.hasAttribute("selected"));
1400
- if (this.multiple)
1401
- this.value = t.map((e) => e.getAttribute("value") ?? e.textContent?.trim() ?? "").join(",");
1402
- else {
1403
- const e = t[0];
1404
- this.value = e?.getAttribute("value") ?? e?.textContent?.trim() ?? "";
1405
- }
1406
- this.#t.setFormValue(this.value || null);
1407
- }
1408
- #ct() {
1409
- const t = this.value.split(",").map((e) => e.trim()).filter(Boolean);
1410
- for (const e of this.options) {
1411
- const i = e.getAttribute("value") ?? e.textContent?.trim() ?? "";
1412
- t.includes(i) ? e.setAttribute("selected", "") : e.removeAttribute("selected");
1413
- }
1414
- }
1415
- // ── List: Active (keyboard highlight) ──────────────────
1416
- #S(t) {
1417
- const e = this.enabledOptions;
1418
- if (e.length === 0) return;
1419
- this.#W(), this.#p = Math.max(0, Math.min(t, e.length - 1));
1420
- const i = e[this.#p];
1421
- i.setAttribute("data-navigate-active", ""), i.scrollIntoView({ block: "nearest" }), i.id && this.setAttribute("aria-activedescendant", i.id);
1422
- }
1423
- #W() {
1424
- for (const t of this.options)
1425
- t.removeAttribute("data-navigate-active");
1426
- this.removeAttribute("aria-activedescendant");
1427
- }
1428
- // ── List: Event handlers ───────────────────────────────
1429
- #X = (t) => {
1430
- const e = t.target.closest("aui-option");
1431
- if (!e || e.hasAttribute("disabled")) return;
1432
- this.#U(e);
1433
- const i = this.enabledOptions.indexOf(e);
1434
- i >= 0 && this.#S(i);
1435
- };
1436
- #j = (t) => {
1437
- const e = this.enabledOptions;
1438
- if (e.length !== 0)
1439
- switch (t.key) {
1440
- case "ArrowDown": {
1441
- t.preventDefault();
1442
- const i = this.#p < e.length - 1 ? this.#p + 1 : 0;
1443
- this.#S(i);
1444
- break;
1445
- }
1446
- case "ArrowUp": {
1447
- t.preventDefault();
1448
- const i = this.#p > 0 ? this.#p - 1 : e.length - 1;
1449
- this.#S(i);
1450
- break;
1451
- }
1452
- case "Home": {
1453
- t.preventDefault(), this.#S(0);
1454
- break;
1455
- }
1456
- case "End": {
1457
- t.preventDefault(), this.#S(e.length - 1);
1458
- break;
1459
- }
1460
- case "Enter":
1461
- case " ": {
1462
- t.preventDefault();
1463
- const i = e[this.#p];
1464
- i && this.#U(i);
1465
- break;
1466
- }
1467
- default:
1468
- t.key.length === 1 && !t.ctrlKey && !t.metaKey && this.#ut(t.key);
1469
- }
1470
- };
1471
- #ut(t) {
1472
- this.#E += t.toLowerCase(), this.#g && clearTimeout(this.#g), this.#g = setTimeout(() => {
1473
- this.#E = "";
1474
- }, 500);
1475
- const i = this.enabledOptions.findIndex((s) => (s.displayLabel?.toLowerCase() ?? s.textContent?.trim().toLowerCase() ?? "").startsWith(this.#E));
1476
- i >= 0 && this.#S(i);
1477
- }
1478
- // ════════════════════════════════════════════════════════════
1479
- // MODE: Combobox (searchable dropdown)
1480
- // ════════════════════════════════════════════════════════════
1481
- #bt() {
1482
- const t = `combobox-${crypto.randomUUID().slice(0, 8)}`;
1483
- this.#e = `--${t}`, this.#o = document.createElement("span"), this.#o.setAttribute("data-input", ""), this.#o.setAttribute("contenteditable", "plaintext-only"), this.#o.setAttribute("role", "combobox"), this.#o.setAttribute("aria-haspopup", "listbox"), this.#o.setAttribute("aria-autocomplete", "list"), this.#o.setAttribute("tabindex", "0"), this.#o.id = t, this.#v = document.createElement("div"), this.#v.setAttribute("popover", "manual"), this.#v.setAttribute("data-dropdown", ""), this.#f = document.createElement("aui-listbox"), this.#f.id = `${t}-listbox`, this.#o.setAttribute("aria-controls", this.#f.id), this.#v.appendChild(this.#f);
1484
- const e = Array.from(this.children);
1485
- for (const i of e)
1486
- M(i) && this.#f.appendChild(i);
1487
- if (this.#y = Array.from(this.#f.querySelectorAll("aui-option")), this.appendChild(this.#o), this.appendChild(this.#v), this.#o.style.anchorName = this.#e, this.style.setProperty("--_anchor", this.#e), this.addEffect(() => {
1488
- const i = this.disabled;
1489
- this.#o.setAttribute("contenteditable", i ? "false" : "plaintext-only"), this.#o.setAttribute("tabindex", i ? "-1" : "0"), this.#o.setAttribute("aria-expanded", String(this.open)), this.#o.setAttribute("data-placeholder", this.placeholder || ""), this.#t.setFormValue(this.value || null);
1490
- const s = !this.#o.textContent?.trim();
1491
- this.toggleAttribute("data-input-empty", s);
1492
- }), this.value) {
1493
- const i = this.#y.find(
1494
- (s) => (s.getAttribute("value") ?? s.textContent?.trim()) === this.value
1495
- );
1496
- i && this.#o && (this.#o.textContent = i.displayLabel ?? i.textContent?.trim() ?? "");
1497
- }
1498
- this.#o.addEventListener("input", this.#Y), this.#o.addEventListener("focus", this.#J), this.#o.addEventListener("keydown", this.#Q), this.#f.addEventListener("change", this.#Z), this.#f.addEventListener("keydown", this.#tt), document.addEventListener("click", this.#et);
1499
- }
1500
- #ft() {
1501
- this.#o?.removeEventListener("input", this.#Y), this.#o?.removeEventListener("focus", this.#J), this.#o?.removeEventListener("keydown", this.#Q), this.#f?.removeEventListener("change", this.#Z), this.#f?.removeEventListener("keydown", this.#tt), document.removeEventListener("click", this.#et), this.#m();
1502
- }
1503
- #F(t) {
1504
- const e = t.toLowerCase();
1505
- for (const s of this.#y) {
1506
- const n = s.displayLabel?.toLowerCase() ?? s.textContent?.trim().toLowerCase() ?? "";
1507
- s.style.display = !e || n.includes(e) ? "" : "none";
1508
- }
1509
- const i = this.#f?.querySelectorAll("aui-optgroup") ?? [];
1510
- for (const s of i) {
1511
- const n = s.querySelector('aui-option:not([style*="display: none"])');
1512
- s.style.display = n ? "" : "none";
1513
- }
1514
- }
1515
- #Y = () => {
1516
- this.open || this.#x(), this.#F(this.#o?.textContent ?? ""), this.toggleAttribute("data-input-empty", !this.#o?.textContent?.trim());
1517
- };
1518
- #J = () => {
1519
- this.#x(), this.#F(this.#o?.textContent ?? "");
1520
- };
1521
- #Q = (t) => {
1522
- if (t.key === "Enter") {
1523
- t.preventDefault();
1524
- const i = this.#f?.activeOption;
1525
- i && this.open && i.click();
1526
- } else t.key === "ArrowDown" ? (t.preventDefault(), this.open || this.#x(), this.#f?.focus()) : t.key === "Escape" && this.#m();
1527
- };
1528
- #Z = (t) => {
1529
- t.stopPropagation(), this.value = t.detail.value, this.#t.setFormValue(this.value || null), this.#o && (this.#o.textContent = t.detail.label ?? ""), this.toggleAttribute("data-input-empty", !this.value), this.#m(), this.#o?.focus(), this.#F(""), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: t.detail }));
1530
- };
1531
- #tt = (t) => {
1532
- t.key === "Escape" ? (t.preventDefault(), this.#m(), this.#o?.focus()) : t.key === "Tab" && this.#m();
1533
- };
1534
- #et = (t) => {
1535
- this.open && !this.contains(t.target) && this.#m();
1536
- };
1537
- }
1538
- let A = null;
1539
- function W() {
1540
- return A && A.isConnected || (A = document.querySelector("aui-toast-container"), A || (A = document.createElement("aui-toast-container"), document.body.appendChild(A))), A;
1541
- }
1542
- class mt extends h {
1543
- static attributes = {
1544
- open: { type: "boolean", default: !1 },
1545
- message: { type: "string", default: "" },
1546
- duration: { type: "string", default: "4000" },
1547
- closeable: { type: "boolean", default: !0 }
1548
- };
1549
- #t = null;
1550
- #e = null;
1551
- #i = null;
1552
- static show(t) {
1553
- const e = document.createElement("aui-toast");
1554
- return e.setAttribute("message", t.message), t.intent && e.setAttribute(t.intent, ""), t.duration !== void 0 && e.setAttribute("duration", String(t.duration)), t.closeable === !1 ? e.removeAttribute("closeable") : e.setAttribute("closeable", ""), W().appendChild(e), requestAnimationFrame(() => e.setAttribute("open", "")), e;
1555
- }
1556
- activate() {
1557
- this.setAttribute("role", "status"), this.setAttribute("aria-live", "polite"), this.#i = document.createElement("span"), this.#i.setAttribute("data-message", ""), this.appendChild(this.#i), this.#e = document.createElement("span"), this.#e.setAttribute("data-close", ""), this.#e.setAttribute("role", "button"), this.#e.setAttribute("tabindex", "0"), this.#e.setAttribute("aria-label", "Dismiss"), this.#e.textContent = "✕", this.appendChild(this.#e), this.addEffect(() => {
1558
- this.#i && (this.#i.textContent = this.message);
1559
- }), this.addEffect(() => {
1560
- this.#e && (this.#e.style.display = this.closeable ? "" : "none");
1561
- }), this.addEffect(() => {
1562
- if (this.#t && clearTimeout(this.#t), this.open) {
1563
- const t = parseInt(this.duration, 10) || 4e3;
1564
- t > 0 && (this.#t = setTimeout(() => this.dismiss(), t));
1565
- }
1566
- }), this.#e.addEventListener("click", this.#s), this.#e.addEventListener("keydown", this.#n);
1567
- }
1568
- dispose() {
1569
- this.#t && clearTimeout(this.#t), this.#e?.removeEventListener("click", this.#s), this.#e?.removeEventListener("keydown", this.#n);
1570
- }
1571
- dismiss() {
1572
- this.open = !1, this.dispatchEvent(new Event("dismiss", { bubbles: !0 })), setTimeout(() => this.remove(), 200);
1573
- }
1574
- #s = (t) => {
1575
- t.stopPropagation(), this.dismiss();
1576
- };
1577
- #n = (t) => {
1578
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.dismiss());
1579
- };
1580
- }
1581
- class vt extends h {
1582
- static attributes = {
1583
- value: { type: "string", default: "" },
1584
- orientation: { type: "enum", values: ["vertical"], default: "" }
1585
- };
1586
- activate() {
1587
- if (this.setAttribute("role", "tablist"), this.addEffect(() => {
1588
- this.orientation ? this.setAttribute("aria-orientation", this.orientation) : this.removeAttribute("aria-orientation");
1589
- }), this.#s(), this.style.setProperty("--_tab-count", String(this.#t.length)), this.addEffect(() => {
1590
- this.#n();
1591
- }), !this.value) {
1592
- const t = this.querySelector("aui-tab:not([disabled])");
1593
- t && (this.value = t.getAttribute("value") ?? "");
1594
- }
1595
- this.addEventListener("click", this.#r), this.addEventListener("keydown", this.#l);
1596
- }
1597
- dispose() {
1598
- this.removeEventListener("click", this.#r), this.removeEventListener("keydown", this.#l);
1599
- }
1600
- // ── Internal ──────────────────────────────────────────
1601
- get #t() {
1602
- return Array.from(this.querySelectorAll("aui-tab"));
1603
- }
1604
- get #e() {
1605
- return this.#t.filter((t) => !t.hasAttribute("disabled"));
1606
- }
1607
- get #i() {
1608
- return Array.from(this.querySelectorAll("aui-tab-panel"));
1609
- }
1610
- #s() {
1611
- const t = this.#t, e = this.#i;
1612
- for (const i of t) {
1613
- const s = i.getAttribute("value") ?? "";
1614
- i.id || (i.id = `tab-${s}-${crypto.randomUUID().slice(0, 4)}`);
1615
- const n = e.find((a) => a.getAttribute("value") === s);
1616
- n && (n.id || (n.id = `panel-${s}-${crypto.randomUUID().slice(0, 4)}`), i.setAttribute("aria-controls", n.id), n.setAttribute("aria-labelledby", i.id));
1617
- }
1618
- }
1619
- #n() {
1620
- const t = this.value, e = this.#t;
1621
- let i = -1;
1622
- for (let s = 0; s < e.length; s++)
1623
- e[s].getAttribute("value") === t ? (e[s].setAttribute("selected", ""), i = s) : e[s].removeAttribute("selected");
1624
- for (const s of this.#i)
1625
- s.getAttribute("value") === t ? s.setAttribute("active", "") : s.removeAttribute("active");
1626
- this.style.setProperty("--_tab-count", String(e.length)), i >= 0 ? (this.style.setProperty("--_indicator-index", String(i)), this.setAttribute("data-indicator-ready", "")) : this.removeAttribute("data-indicator-ready");
1627
- }
1628
- #a(t) {
1629
- if (t.hasAttribute("disabled")) return;
1630
- const e = t.getAttribute("value") ?? "";
1631
- this.value = e, this.dispatchEvent(new CustomEvent("change", {
1632
- bubbles: !0,
1633
- detail: { value: e }
1634
- }));
1635
- }
1636
- #r = (t) => {
1637
- const e = t.target.closest("aui-tab");
1638
- e && this.contains(e) && this.#a(e);
1639
- };
1640
- #l = (t) => {
1641
- const e = t.target;
1642
- if (e.tagName !== "AUI-TAB") return;
1643
- const i = this.orientation === "vertical", s = i ? "ArrowDown" : "ArrowRight", n = i ? "ArrowUp" : "ArrowLeft", a = this.#e, r = a.indexOf(e);
1644
- if (r < 0) return;
1645
- let o;
1646
- switch (t.key) {
1647
- case s:
1648
- o = r < a.length - 1 ? r + 1 : 0;
1649
- break;
1650
- case n:
1651
- o = r > 0 ? r - 1 : a.length - 1;
1652
- break;
1653
- case "Home":
1654
- o = 0;
1655
- break;
1656
- case "End":
1657
- o = a.length - 1;
1658
- break;
1659
- default:
1660
- return;
1661
- }
1662
- t.preventDefault();
1663
- const d = a[o];
1664
- d.focus(), this.#a(d);
1665
- };
1666
- }
1667
- class gt extends h {
1668
- static attributes = {
1669
- value: { type: "string", default: "" },
1670
- disabled: { type: "boolean", default: !1 },
1671
- selected: { type: "boolean", default: !1 }
1672
- };
1673
- activate() {
1674
- this.setAttribute("role", "tab"), this.hasAttribute("tabindex") || this.setAttribute("tabindex", this.selected ? "0" : "-1"), this.addEffect(() => {
1675
- this.setAttribute("aria-selected", String(this.selected)), this.setAttribute("aria-disabled", String(this.disabled)), this.setAttribute("tabindex", this.selected ? "0" : "-1");
1676
- });
1677
- }
1678
- }
1679
- class At extends h {
1680
- static attributes = {
1681
- value: { type: "string", default: "" },
1682
- active: { type: "boolean", default: !1 }
1683
- };
1684
- activate() {
1685
- this.setAttribute("role", "tabpanel"), this.addEffect(() => {
1686
- this.setAttribute("aria-hidden", String(!this.active)), this.active ? this.setAttribute("tabindex", "0") : this.setAttribute("tabindex", "-1");
1687
- });
1688
- }
1689
- }
1690
- class yt extends h {
1691
- static attributes = {
1692
- multiple: { type: "boolean", default: !1 },
1693
- caret: { type: "enum", values: ["leading", "trailing"], default: "leading" }
1694
- };
1695
- activate() {
1696
- this.addEventListener("toggle", this.#t);
1697
- }
1698
- dispose() {
1699
- this.removeEventListener("toggle", this.#t);
1700
- }
1701
- #t = (t) => {
1702
- if (this.multiple) return;
1703
- const e = t.target;
1704
- if (e.tagName !== "AUI-ACCORDION-ITEM" || !e.hasAttribute("open")) return;
1705
- const i = this.querySelectorAll("aui-accordion-item[open]");
1706
- for (const s of i)
1707
- s !== e && s.removeAttribute("open");
1708
- };
1709
- }
1710
- class Et extends h {
1711
- static attributes = {
1712
- open: { type: "boolean", default: !1 },
1713
- disabled: { type: "boolean", default: !1 }
1714
- };
1715
- #t = null;
1716
- #e = null;
1717
- activate() {
1718
- if (this.#t = this.querySelector("[data-header]"), this.#t)
1719
- this.#e = this.querySelector("[data-content]");
1720
- else {
1721
- this.#t = document.createElement("div"), this.#t.setAttribute("data-header", ""), this.#t.setAttribute("role", "button"), this.#t.setAttribute("tabindex", "0");
1722
- const i = document.createElement("aui-icon");
1723
- i.setAttribute("name", "caret-right"), i.setAttribute("data-chevron", ""), this.#t.appendChild(i);
1724
- const s = this.querySelector("[data-trigger]");
1725
- if (s)
1726
- this.#t.appendChild(s);
1727
- else {
1728
- const n = Array.from(this.childNodes).find(
1729
- (a) => a.nodeType === Node.ELEMENT_NODE
1730
- );
1731
- n && this.#t.appendChild(n);
1732
- }
1733
- for (this.#e = document.createElement("div"), this.#e.setAttribute("data-content", ""); this.firstChild && this.firstChild !== this.#t; )
1734
- this.#e.appendChild(this.firstChild);
1735
- this.appendChild(this.#t), this.appendChild(this.#e);
1736
- }
1737
- const t = `acc-h-${crypto.randomUUID().slice(0, 6)}`, e = `acc-c-${crypto.randomUUID().slice(0, 6)}`;
1738
- this.#t.id = t, this.#e && (this.#e.id = e, this.#e.setAttribute("role", "region"), this.#e.setAttribute("aria-labelledby", t)), this.#t.setAttribute("aria-controls", e), this.addEffect(() => {
1739
- this.#t.setAttribute("aria-expanded", String(this.open)), this.#t.setAttribute("aria-disabled", String(this.disabled));
1740
- }), this.#t.addEventListener("click", this.#s), this.#t.addEventListener("keydown", this.#n);
1741
- }
1742
- dispose() {
1743
- this.#t?.removeEventListener("click", this.#s), this.#t?.removeEventListener("keydown", this.#n);
1744
- }
1745
- #i() {
1746
- this.disabled || (this.open = !this.open, this.dispatchEvent(new CustomEvent("toggle", { bubbles: !0, detail: { open: this.open } })));
1747
- }
1748
- #s = () => {
1749
- this.#i();
1750
- };
1751
- #n = (t) => {
1752
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), this.#i());
1753
- };
1754
- }
1755
- class xt extends h {
1756
- static attributes = {
1757
- label: { type: "string", default: "Breadcrumb" },
1758
- joiner: { type: "string", default: "/" }
1759
- };
1760
- activate() {
1761
- this.setAttribute("role", "navigation"), this.addEffect(() => {
1762
- this.setAttribute("aria-label", this.label || "Breadcrumb"), this.style.setProperty("--_joiner", `"${this.joiner || "/"}"`);
1763
- });
1764
- }
1765
- }
1766
- class wt extends h {
1767
- static attributes = {
1768
- href: { type: "string", default: "" },
1769
- current: { type: "boolean", default: !1 }
1770
- };
1771
- #t = null;
1772
- activate() {
1773
- this.addEffect(() => {
1774
- this.current ? this.setAttribute("aria-current", "page") : this.removeAttribute("aria-current");
1775
- }), this.addEffect(() => {
1776
- if (this.href && !this.current) {
1777
- if (!this.#t) {
1778
- for (this.#t = document.createElement("a"); this.firstChild && this.firstChild !== this.#t; )
1779
- this.#t.appendChild(this.firstChild);
1780
- this.appendChild(this.#t);
1781
- }
1782
- this.#t.href = this.href;
1783
- }
1784
- });
1785
- }
1786
- }
1787
- class kt extends h {
1788
- static formAssociated = !0;
1789
- static attributes = {
1790
- value: { type: "string", default: "" },
1791
- name: { type: "string", default: "" }
1792
- };
1793
- #t;
1794
- #e = null;
1795
- constructor() {
1796
- super(), this.#t = this.attachInternals(), this.#t.role = "radiogroup";
1797
- }
1798
- activate() {
1799
- if (this.addEffect(() => {
1800
- this.#t.setFormValue(this.value || null), this.#n(), this.#a();
1801
- }), !this.value) {
1802
- const t = this.querySelector("aui-segment:not([disabled])");
1803
- t && (this.value = t.getAttribute("value") ?? "");
1804
- }
1805
- this.addEventListener("click", this.#l), this.addEventListener("keydown", this.#h);
1806
- }
1807
- dispose() {
1808
- this.removeEventListener("click", this.#l), this.removeEventListener("keydown", this.#h);
1809
- }
1810
- formDisabledCallback(t) {
1811
- for (const e of this.#i) e.toggleAttribute("disabled", t);
1812
- }
1813
- formResetCallback() {
1814
- const t = this.querySelector("aui-segment:not([disabled])");
1815
- this.value = t?.getAttribute("value") ?? "";
1816
- }
1817
- get #i() {
1818
- return Array.from(this.querySelectorAll("aui-segment"));
1819
- }
1820
- get #s() {
1821
- return this.#i.filter((t) => !t.hasAttribute("disabled"));
1822
- }
1823
- #n() {
1824
- for (const t of this.#i)
1825
- t.getAttribute("value") === this.value ? t.setAttribute("selected", "") : t.removeAttribute("selected");
1826
- }
1827
- #a() {
1828
- const t = this.#i, e = t.findIndex((i) => i.getAttribute("value") === this.value);
1829
- if (e < 0) {
1830
- this.removeAttribute("data-indicator-ready");
1831
- return;
1832
- }
1833
- this.#e || (this.#e = document.createElement("div"), this.#e.setAttribute("data-indicator", ""), this.prepend(this.#e)), this.style.setProperty("--_segment-count", `${t.length}`), this.#e.style.transform = `translateX(${e * 100}%)`, this.setAttribute("data-indicator-ready", "");
1834
- }
1835
- #r(t) {
1836
- t.hasAttribute("disabled") || (this.value = t.getAttribute("value") ?? "", this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: { value: this.value } })));
1837
- }
1838
- #l = (t) => {
1839
- const e = t.target.closest("aui-segment");
1840
- e && this.contains(e) && this.#r(e);
1841
- };
1842
- #h = (t) => {
1843
- const e = t.target;
1844
- if (e.tagName !== "AUI-SEGMENT") return;
1845
- const i = this.#s, s = i.indexOf(e);
1846
- if (s < 0) return;
1847
- let n;
1848
- switch (t.key) {
1849
- case "ArrowRight":
1850
- case "ArrowDown":
1851
- n = s < i.length - 1 ? s + 1 : 0;
1852
- break;
1853
- case "ArrowLeft":
1854
- case "ArrowUp":
1855
- n = s > 0 ? s - 1 : i.length - 1;
1856
- break;
1857
- case "Home":
1858
- n = 0;
1859
- break;
1860
- case "End":
1861
- n = i.length - 1;
1862
- break;
1863
- default:
1864
- return;
1865
- }
1866
- t.preventDefault(), i[n].focus(), this.#r(i[n]);
1867
- };
1868
- }
1869
- class Ct extends h {
1870
- static attributes = {
1871
- value: { type: "string", default: "" },
1872
- disabled: { type: "boolean", default: !1 },
1873
- selected: { type: "boolean", default: !1 }
1874
- };
1875
- activate() {
1876
- this.setAttribute("role", "radio"), this.hasAttribute("tabindex") || this.setAttribute("tabindex", this.selected ? "0" : "-1"), this.addEffect(() => {
1877
- this.setAttribute("aria-checked", String(this.selected)), this.setAttribute("aria-disabled", String(this.disabled)), this.setAttribute("tabindex", this.selected ? "0" : "-1");
1878
- });
1879
- }
1880
- }
1881
- class Lt extends h {
1882
- static attributes = {
1883
- page: { type: "string", default: "1" },
1884
- total: { type: "string", default: "1" },
1885
- siblings: { type: "string", default: "1" }
1886
- };
1887
- activate() {
1888
- this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Pagination"), this.addEffect(() => {
1889
- this.#t();
1890
- }), this.addEventListener("click", this.#s), this.addEventListener("keydown", this.#n);
1891
- }
1892
- dispose() {
1893
- this.removeEventListener("click", this.#s), this.removeEventListener("keydown", this.#n);
1894
- }
1895
- #t() {
1896
- const t = parseInt(this.page, 10) || 1, e = parseInt(this.total, 10) || 1, i = parseInt(this.siblings, 10) || 1, s = this.#i(t, e, i);
1897
- this.innerHTML = "";
1898
- const n = this.#e("‹", t - 1, t <= 1);
1899
- n.setAttribute("aria-label", "Previous page"), n.setAttribute("data-pagination-prev", ""), this.appendChild(n);
1900
- for (const r of s)
1901
- if (r === "…") {
1902
- const o = document.createElement("span");
1903
- o.setAttribute("data-pagination-ellipsis", ""), o.textContent = "…", this.appendChild(o);
1904
- } else {
1905
- const o = r, d = this.#e(String(o), o, !1);
1906
- o === t && (d.setAttribute("aria-current", "page"), d.setAttribute("data-pagination-current", "")), this.appendChild(d);
1907
- }
1908
- const a = this.#e("›", t + 1, t >= e);
1909
- a.setAttribute("aria-label", "Next page"), a.setAttribute("data-pagination-next", ""), this.appendChild(a);
1910
- }
1911
- #e(t, e, i) {
1912
- const s = document.createElement("span");
1913
- return s.setAttribute("role", "button"), s.setAttribute("tabindex", i ? "-1" : "0"), s.setAttribute("data-pagination-page", String(e)), s.textContent = t, i && s.setAttribute("aria-disabled", "true"), s;
1914
- }
1915
- #i(t, e, i) {
1916
- if (e <= i * 2 + 5)
1917
- return Array.from({ length: e }, (r, o) => o + 1);
1918
- const s = [], n = Math.max(t - i, 2), a = Math.min(t + i, e - 1);
1919
- if (s.push(1), n > 2) s.push("…");
1920
- else for (let r = 2; r < n; r++) s.push(r);
1921
- for (let r = n; r <= a; r++) s.push(r);
1922
- if (a < e - 1) s.push("…");
1923
- else for (let r = a + 1; r < e; r++) s.push(r);
1924
- return s.push(e), s;
1925
- }
1926
- #s = (t) => {
1927
- const e = t.target.closest("[data-pagination-page]");
1928
- if (!e || e.getAttribute("aria-disabled") === "true") return;
1929
- const i = parseInt(e.getAttribute("data-pagination-page") ?? "", 10);
1930
- isNaN(i) || (this.page = String(i), this.dispatchEvent(new CustomEvent("change", { bubbles: !0, detail: { page: i } })));
1931
- };
1932
- #n = (t) => {
1933
- if (t.key === "Enter" || t.key === " ") {
1934
- const e = t.target;
1935
- e.hasAttribute("data-pagination-page") && (t.preventDefault(), e.click());
1936
- }
1937
- };
1938
- }
1939
- class St extends h {
1940
- #t = -1;
1941
- activate() {
1942
- this.setAttribute("role", "search"), this.addEventListener("input", this.#d), this.addEventListener("keydown", this.#u), this.addEventListener("click", this.#c), requestAnimationFrame(() => {
1943
- this.#l(0);
1944
- });
1945
- }
1946
- dispose() {
1947
- this.removeEventListener("input", this.#d), this.removeEventListener("keydown", this.#u), this.removeEventListener("click", this.#c);
1948
- }
1949
- // ── Queries ───────────────────────────────────────────
1950
- get #e() {
1951
- return Array.from(this.querySelectorAll("aui-command-item"));
1952
- }
1953
- get #i() {
1954
- return this.#e.filter((t) => !t.hasAttribute("hidden") && !t.hasAttribute("disabled"));
1955
- }
1956
- get #s() {
1957
- return this.querySelector("aui-command-input");
1958
- }
1959
- get #n() {
1960
- return this.querySelector("aui-command-empty");
1961
- }
1962
- get #a() {
1963
- return this.querySelector("aui-command-list");
1964
- }
1965
- // ── Filtering ─────────────────────────────────────────
1966
- #r(t) {
1967
- const e = t.toLowerCase().trim();
1968
- for (const s of this.#e) {
1969
- const n = s.searchText ?? s.textContent?.toLowerCase() ?? "", a = !e || n.includes(e);
1970
- s.toggleAttribute("hidden", !a);
1971
- }
1972
- const i = this.#i;
1973
- this.#n && this.#n.toggleAttribute("hidden", i.length > 0), this.#l(0);
1974
- }
1975
- // ── Active item tracking ──────────────────────────────
1976
- #l(t) {
1977
- const e = this.#i;
1978
- if (e.length === 0) {
1979
- this.#t = -1, this.#h();
1980
- return;
1981
- }
1982
- this.#h(), this.#t = Math.max(0, Math.min(t, e.length - 1));
1983
- const i = e[this.#t];
1984
- i.setAttribute("data-navigate-active", ""), i.scrollIntoView({ block: "nearest" }), i.id && this.#a && this.#a.setAttribute("aria-activedescendant", i.id);
1985
- }
1986
- #h() {
1987
- for (const t of this.#e)
1988
- t.removeAttribute("data-navigate-active");
1989
- this.#a?.removeAttribute("aria-activedescendant");
1990
- }
1991
- // ── Event handlers ────────────────────────────────────
1992
- #d = () => {
1993
- const t = this.#s?.query ?? "";
1994
- this.#r(t);
1995
- };
1996
- #u = (t) => {
1997
- const e = this.#i;
1998
- if (!(e.length === 0 && t.key !== "Escape"))
1999
- switch (t.key) {
2000
- case "ArrowDown": {
2001
- t.preventDefault();
2002
- const i = this.#t < e.length - 1 ? this.#t + 1 : 0;
2003
- this.#l(i);
2004
- break;
2005
- }
2006
- case "ArrowUp": {
2007
- t.preventDefault();
2008
- const i = this.#t > 0 ? this.#t - 1 : e.length - 1;
2009
- this.#l(i);
2010
- break;
2011
- }
2012
- case "Home": {
2013
- t.preventDefault(), this.#l(0);
2014
- break;
2015
- }
2016
- case "End": {
2017
- t.preventDefault(), this.#l(e.length - 1);
2018
- break;
2019
- }
2020
- case "Enter": {
2021
- t.preventDefault();
2022
- const i = e[this.#t];
2023
- i && this.#b(i);
2024
- break;
2025
- }
2026
- case "Escape": {
2027
- this.dispatchEvent(new Event("dismiss", { bubbles: !0 }));
2028
- break;
2029
- }
2030
- }
2031
- };
2032
- #c = (t) => {
2033
- const e = t.target.closest("aui-command-item");
2034
- !e || e.hasAttribute("disabled") || e.hasAttribute("hidden") || this.#b(e);
2035
- };
2036
- #b(t) {
2037
- const e = t.getAttribute("value") ?? t.textContent?.trim() ?? "", i = t.textContent?.trim() ?? "";
2038
- this.dispatchEvent(new CustomEvent("select", {
2039
- bubbles: !0,
2040
- detail: { value: e, label: i, item: t }
2041
- }));
2042
- }
2043
- }
2044
- class It extends h {
2045
- activate() {
2046
- this.setAttribute("role", "status"), this.hasAttribute("hidden") || this.setAttribute("hidden", "");
2047
- }
2048
- }
2049
- class Dt extends h {
2050
- static attributes = {
2051
- label: { type: "string", default: "" }
2052
- };
2053
- activate() {
2054
- this.setAttribute("role", "group");
2055
- let t = this.querySelector("[data-heading]");
2056
- !t && this.label && (t = document.createElement("span"), t.setAttribute("data-heading", ""), t.id = `cmdg-${crypto.randomUUID().slice(0, 6)}`, this.prepend(t)), this.addEffect(() => {
2057
- const e = this.querySelector("[data-heading]");
2058
- e && (e.textContent = this.label, this.setAttribute("aria-labelledby", e.id));
2059
- });
2060
- }
2061
- }
2062
- class Tt extends h {
2063
- static attributes = {
2064
- placeholder: { type: "string", default: "Search…" }
2065
- };
2066
- #t = null;
2067
- get query() {
2068
- return this.#t?.textContent?.trim() ?? "";
2069
- }
2070
- set query(t) {
2071
- this.#t && (this.#t.textContent = t), this.#e();
2072
- }
2073
- activate() {
2074
- this.#t = this.querySelector("[data-surface]"), this.#t || (this.#t = document.createElement("span"), this.#t.setAttribute("data-surface", ""), this.#t.setAttribute("contenteditable", "plaintext-only"), this.#t.setAttribute("tabindex", "0"), this.#t.setAttribute("role", "searchbox"), this.#t.setAttribute("aria-label", "Search commands"), this.appendChild(this.#t)), this.addEffect(() => {
2075
- this.#t?.setAttribute("data-placeholder", this.placeholder || "Search…");
2076
- }), this.#e(), this.#t.addEventListener("input", this.#i), this.#t.addEventListener("keydown", this.#s), this.#t.addEventListener("focus", this.#n);
2077
- }
2078
- dispose() {
2079
- this.#t?.removeEventListener("input", this.#i), this.#t?.removeEventListener("keydown", this.#s), this.#t?.removeEventListener("focus", this.#n);
2080
- }
2081
- focus(t) {
2082
- this.#t?.focus(t);
2083
- }
2084
- clear() {
2085
- this.#t && (this.#t.textContent = ""), this.#e(), this.dispatchEvent(new Event("input", { bubbles: !0 }));
2086
- }
2087
- #e() {
2088
- this.toggleAttribute("data-input-empty", !this.#t?.textContent?.trim());
2089
- }
2090
- #i = () => {
2091
- this.#e(), this.dispatchEvent(new Event("input", { bubbles: !0 }));
2092
- };
2093
- #s = (t) => {
2094
- t.key === "Enter" && t.preventDefault();
2095
- };
2096
- #n = () => {
2097
- this.#t?.textContent?.trim() || window.getSelection()?.setPosition(this.#t, 0);
2098
- };
2099
- }
2100
- class Pt extends h {
2101
- static attributes = {
2102
- value: { type: "string", default: "" },
2103
- disabled: { type: "boolean", default: !1 },
2104
- keywords: { type: "string", default: "" }
2105
- };
2106
- /** Combined search text for filtering. */
2107
- get searchText() {
2108
- return `${this.textContent?.trim() ?? ""} ${this.value} ${this.keywords}`.toLowerCase();
2109
- }
2110
- activate() {
2111
- this.setAttribute("role", "option"), this.addEffect(() => {
2112
- this.setAttribute("aria-disabled", String(this.disabled));
2113
- });
2114
- }
2115
- }
2116
- class Mt extends h {
2117
- activate() {
2118
- this.setAttribute("role", "listbox");
2119
- }
2120
- }
2121
- const y = { High: 0, Normal: 1, Low: 2 }, w = (l, t, e) => Math.min(e, Math.max(t, l));
2122
- let L = null;
2123
- function X(l) {
2124
- if (L !== null) return L;
2125
- const t = document.createElement("div");
2126
- return t.style.cssText = "position:absolute;visibility:hidden;width:var(--aui-sidebar-width-collapsed,2.75rem)", l.appendChild(t), L = t.offsetWidth || 44, t.remove(), L;
2127
- }
2128
- class qt extends h {
2129
- static attributes = {
2130
- direction: { type: "enum", values: ["vertical"], default: "" }
2131
- };
2132
- static deferChildren = !0;
2133
- #t = null;
2134
- #e = null;
2135
- // Hover state
2136
- #i = null;
2137
- // Resize state
2138
- #s = -1;
2139
- #n = [];
2140
- #a = [];
2141
- #r = 0;
2142
- #l = 0;
2143
- // Drag pointer ID (for releasing capture)
2144
- #h = -1;
2145
- // Pixel-based sizes — source of truth during/after resize
2146
- #d = [];
2147
- // Proportional layout
2148
- #u = null;
2149
- get isVertical() {
2150
- return this.direction === "vertical";
2151
- }
2152
- activate() {
2153
- this.addEventListener("pointermove", this.#L), this.addEventListener("pointerleave", this.#A), this.addEventListener("pointerdown", this.#T, !0), this.#g(), this.#t = new MutationObserver(this.#z), this.#t.observe(this, {
2154
- childList: !0,
2155
- attributes: !0,
2156
- attributeFilter: ["hidden", "minimized", "priority"],
2157
- subtree: !0
2158
- }), this.#e = new ResizeObserver(this.#C), this.#e.observe(this), this.addEffect(() => {
2159
- this.direction, this.#g();
2160
- });
2161
- }
2162
- dispose() {
2163
- this.#k(), this.#q(), this.#t?.disconnect(), this.#t = null, this.#e?.disconnect(), this.#e = null, this.removeEventListener("pointermove", this.#L), this.removeEventListener("pointerleave", this.#A), this.removeEventListener("pointerdown", this.#T, !0);
2164
- }
2165
- // ── Pane queries ──
2166
- #c() {
2167
- return Array.from(this.children).filter(
2168
- (t) => t instanceof HTMLElement && !t.hidden
2169
- );
2170
- }
2171
- #b(t) {
2172
- const e = t.getAttribute("size-min");
2173
- return e ? Number(e) : X(t);
2174
- }
2175
- #p(t) {
2176
- const e = t.getAttribute("size-max");
2177
- return e ? Number(e) : 1 / 0;
2178
- }
2179
- #E(t) {
2180
- const e = t.getAttribute("priority");
2181
- return e === "high" ? y.High : e === "low" ? y.Low : y.Normal;
2182
- }
2183
- // ── Size management ──
2184
- /** Read current pixel sizes from layout and establish initial state. */
2185
- #g() {
2186
- const t = this.#c(), e = this.isVertical;
2187
- for (const s of t) {
2188
- if (s.hasAttribute("minimized")) continue;
2189
- const n = s.getAttribute("fixed-size"), a = s.getAttribute("basis");
2190
- n && n !== "auto" ? s.style.flex = `0 1 ${n}` : a ? s.style.flex = `1 1 ${a}` : (s.style.removeProperty("flex"), s.style.removeProperty("flex-basis"));
2191
- }
2192
- const i = t.map((s) => {
2193
- const n = s.getBoundingClientRect();
2194
- return e ? n.height : n.width;
2195
- });
2196
- this.#d = i, this.#a = t, this.#v(), this.#o();
2197
- }
2198
- /** Apply pixel sizes as flex values. */
2199
- #o() {
2200
- const t = this.#c();
2201
- if (!(this.#d.reduce((i, s) => i + s, 0) <= 0))
2202
- for (let i = 0; i < t.length; i++) {
2203
- if (t[i].hasAttribute("minimized")) continue;
2204
- const s = this.#d[i] ?? 0;
2205
- t[i].style.flex = `${s} 1 0px`;
2206
- }
2207
- }
2208
- /** Save current proportions for proportional container resize. */
2209
- #v() {
2210
- const t = this.#d.reduce((e, i) => e + i, 0);
2211
- if (t <= 0) {
2212
- this.#u = null;
2213
- return;
2214
- }
2215
- this.#u = this.#d.map((e) => e / t);
2216
- }
2217
- // ── Cascade resize algorithm ──
2218
- /**
2219
- * Resize panes at the given sash index by delta pixels.
2220
- * Delta cascades through "before" panes (index -> 0) and
2221
- * "after" panes (index+1 -> end), respecting min/max constraints
2222
- * and priority ordering.
2223
- */
2224
- #f(t, e, i) {
2225
- const s = this.#a, n = [...i], a = [];
2226
- for (let u = t; u >= 0; u--) a.push(u);
2227
- const r = [];
2228
- for (let u = t + 1; u < s.length; u++) r.push(u);
2229
- const o = (u) => {
2230
- const g = [], E = [], S = [];
2231
- for (const C of u) {
2232
- const I = this.#E(s[C]);
2233
- I === y.High ? g.push(C) : I === y.Low ? S.push(C) : E.push(C);
2234
- }
2235
- return [...g, ...E, ...S];
2236
- }, d = o(a), b = o(r);
2237
- let f = 0, m = 0;
2238
- for (const u of d)
2239
- f += this.#b(s[u]) - i[u], m += this.#p(s[u]) - i[u];
2240
- let c = 0, p = 0;
2241
- for (const u of b)
2242
- c += i[u] - this.#p(s[u]), p += i[u] - this.#b(s[u]);
2243
- const v = Math.max(f, c), k = Math.min(m, p);
2244
- e = w(e, v, k);
2245
- let x = e;
2246
- for (const u of d) {
2247
- const g = w(
2248
- i[u] + x,
2249
- this.#b(s[u]),
2250
- this.#p(s[u])
2251
- ), E = g - i[u];
2252
- x -= E, n[u] = g;
2253
- }
2254
- x = e;
2255
- for (const u of b) {
2256
- const g = w(
2257
- i[u] - x,
2258
- this.#b(s[u]),
2259
- this.#p(s[u])
2260
- ), E = i[u] - g;
2261
- x -= E, n[u] = g;
2262
- }
2263
- return n;
2264
- }
2265
- /**
2266
- * After any size change, distribute leftover space (positive or negative)
2267
- * across all panes in priority order.
2268
- */
2269
- #y(t) {
2270
- const e = this.#a, i = [...t];
2271
- let n = this.#x() - i.reduce((b, f) => b + f, 0);
2272
- if (Math.abs(n) < 0.5) return i;
2273
- const a = [], r = [], o = [];
2274
- for (let b = 0; b < e.length; b++) {
2275
- const f = this.#E(e[b]);
2276
- f === y.High ? a.push(b) : f === y.Low ? o.push(b) : r.push(b);
2277
- }
2278
- const d = [...a, ...r, ...o];
2279
- for (let b = 0; Math.abs(n) >= 0.5 && b < d.length; b++) {
2280
- const f = d[b], m = e[f], c = w(
2281
- i[f] + n,
2282
- this.#b(m),
2283
- this.#p(m)
2284
- ), p = c - i[f];
2285
- n -= p, i[f] = c;
2286
- }
2287
- return i;
2288
- }
2289
- #x() {
2290
- const t = this.getBoundingClientRect();
2291
- return this.isVertical ? t.height : t.width;
2292
- }
2293
- // ── Proportional container resize ──
2294
- #m = 0;
2295
- #C = () => {
2296
- if (this.#s >= 0) return;
2297
- const t = this.#x();
2298
- if (t <= 0) return;
2299
- if (this.#m === 0) {
2300
- this.#m = t;
2301
- return;
2302
- }
2303
- if (Math.abs(t - this.#m) < 1) return;
2304
- this.#m = t;
2305
- const e = this.#c();
2306
- if (e.length !== 0) {
2307
- if (this.#a = e, this.#u && this.#u.length === e.length) {
2308
- const i = this.#u.map(
2309
- (s, n) => w(
2310
- Math.round(s * t),
2311
- this.#b(e[n]),
2312
- this.#p(e[n])
2313
- )
2314
- );
2315
- this.#d = this.#y(i);
2316
- } else
2317
- this.#d = this.#y(this.#d);
2318
- this.#o();
2319
- }
2320
- };
2321
- // ── Boundary hit-testing ──
2322
- #w(t, e) {
2323
- const i = this.#c();
2324
- if (i.length < 2) return -1;
2325
- const s = this.isVertical, n = 8;
2326
- for (let a = 0; a < i.length - 1; a++) {
2327
- const r = i[a].getBoundingClientRect(), o = s ? r.bottom : r.right;
2328
- if (Math.abs((s ? e : t) - o) <= n) return a;
2329
- }
2330
- return -1;
2331
- }
2332
- // ── Hover ──
2333
- #L = (t) => {
2334
- if (this.#s >= 0) return;
2335
- const e = this.#w(t.clientX, t.clientY), i = this.#c();
2336
- if (e >= 0) {
2337
- const s = i[e];
2338
- if (this.#i !== s) {
2339
- this.#k();
2340
- const n = this.isVertical ? "bottom" : "right";
2341
- s.setAttribute("data-panes-edge-near", n), this.#i = s;
2342
- }
2343
- } else
2344
- this.#k();
2345
- };
2346
- #A = () => {
2347
- this.#s >= 0 || this.#k();
2348
- };
2349
- #k() {
2350
- this.#i && (this.#i.removeAttribute("data-panes-edge-near"), this.#i = null);
2351
- }
2352
- // ── Drag resize ──
2353
- #T = (t) => {
2354
- if (t.button !== 0) return;
2355
- const e = this.#w(t.clientX, t.clientY);
2356
- if (e < 0) return;
2357
- t.preventDefault(), t.stopPropagation(), this.#k(), this.#s = e, this.#a = this.#c(), this.#r = t.clientX, this.#l = t.clientY;
2358
- const i = this.isVertical;
2359
- this.#n = this.#a.map((n) => {
2360
- const a = n.getBoundingClientRect();
2361
- return i ? a.height : a.width;
2362
- }), this.#d = [...this.#n], this.setAttribute("data-panes-resizing", "");
2363
- const s = i ? "bottom" : "right";
2364
- this.#a[e].setAttribute("data-panes-edge-active", s), this.#h = t.pointerId, this.setPointerCapture(t.pointerId), document.addEventListener("pointermove", this.#P), document.addEventListener("pointerup", this.#M), document.addEventListener("pointercancel", this.#I), document.addEventListener("keydown", this.#N);
2365
- };
2366
- #P = (t) => {
2367
- if (this.#s < 0) return;
2368
- const e = this.isVertical ? t.clientY - this.#l : t.clientX - this.#r;
2369
- this.#d = this.#f(this.#s, e, this.#n), this.#o();
2370
- };
2371
- #M = () => {
2372
- if (this.#s < 0) return;
2373
- const t = this.isVertical;
2374
- this.#d = this.#a.map((e) => {
2375
- const i = e.getBoundingClientRect();
2376
- return t ? i.height : i.width;
2377
- }), this.#v(), this.dispatchEvent(new CustomEvent("aui:panes-resize", {
2378
- bubbles: !0,
2379
- composed: !0,
2380
- detail: {
2381
- sizes: this.#d,
2382
- index: this.#s
2383
- }
2384
- })), this.#q();
2385
- };
2386
- #I = () => {
2387
- this.#s < 0 || (this.#d = [...this.#n], this.#o(), this.#q());
2388
- };
2389
- #N = (t) => {
2390
- t.key === "Escape" && this.#s >= 0 && (t.preventDefault(), this.#I());
2391
- };
2392
- #q() {
2393
- if (this.#s >= 0 && this.#a[this.#s]?.removeAttribute("data-panes-edge-active"), this.#h >= 0) {
2394
- try {
2395
- this.releasePointerCapture(this.#h);
2396
- } catch {
2397
- }
2398
- this.#h = -1;
2399
- }
2400
- this.#s = -1, this.#n = [], this.removeAttribute("data-panes-resizing"), document.removeEventListener("pointermove", this.#P), document.removeEventListener("pointerup", this.#M), document.removeEventListener("pointercancel", this.#I), document.removeEventListener("keydown", this.#N);
2401
- }
2402
- // ── Child mutation observer (debounced) ──
2403
- #R = 0;
2404
- #z = (t) => {
2405
- let e = !1;
2406
- for (const i of t) {
2407
- const s = i.target;
2408
- if (i.type === "childList" && s === this) {
2409
- e = !0;
2410
- break;
2411
- }
2412
- if (i.type === "attributes" && s.parentElement === this) {
2413
- e = !0;
2414
- break;
2415
- }
2416
- }
2417
- e && (this.#R || (this.#R = requestAnimationFrame(() => {
2418
- this.#R = 0, this.#g();
2419
- })));
2420
- };
2421
- }
2422
- const R = document.createElement("template");
2423
- R.innerHTML = `
2424
- <aui-header data-pane-header>
2425
- <aui-pane-label></aui-pane-label>
2426
- </aui-header>
2427
- `;
2428
- const z = document.createElement("template");
2429
- z.innerHTML = "<aui-button ghost></aui-button>";
2430
- class Rt extends h {
2431
- static attributes = {
2432
- label: { type: "string", default: "" },
2433
- icon: { type: "string", default: "" },
2434
- closeable: { type: "boolean", default: !1 },
2435
- minimizable: { type: "boolean", default: !1 },
2436
- minimized: { type: "boolean", default: !1 },
2437
- "fixed-size": { type: "string", default: "" },
2438
- basis: { type: "string", default: "" },
2439
- priority: { type: "enum", values: ["high", "normal", "low"], default: "normal" },
2440
- tabs: { type: "boolean", default: !1 },
2441
- collapse: { type: "string", default: "" }
2442
- };
2443
- // Stamped header references
2444
- #t = null;
2445
- #e = null;
2446
- #i = null;
2447
- #s = null;
2448
- #n = null;
2449
- // Tabs
2450
- #a = null;
2451
- // Collapse state (internal)
2452
- #r = !1;
2453
- activate() {
2454
- this.#d(), this.#h(), this.#l(), this.addEffect(() => {
2455
- const t = this.label;
2456
- this.#e && (this.#e.textContent = t), t && !this.#t ? this.#d() : !t && this.#t && this.#u();
2457
- }), this.addEffect(() => {
2458
- const t = this.minimized;
2459
- if (this.#s) {
2460
- const e = this.#s.querySelector("aui-icon");
2461
- e && e.setAttribute("icon", t ? "caret-up" : "minus");
2462
- }
2463
- }), this.addEffect(() => {
2464
- this["fixed-size"], this.#l();
2465
- }), this.addEffect(() => {
2466
- const t = this.basis;
2467
- t ? this.style.flexBasis = t : this.style.removeProperty("flex-basis");
2468
- }), this.addEffect(() => {
2469
- const t = this.icon;
2470
- this.#b(t || null);
2471
- }), this.addEffect(() => {
2472
- this.#p(this.closeable);
2473
- }), this.addEffect(() => {
2474
- this.#E(this.minimizable);
2475
- }), this.addEffect(() => {
2476
- this.tabs && !this.#a ? this.#g() : !this.tabs && this.#a && this.#o();
2477
- }), this.addEffect(() => {
2478
- this.collapse;
2479
- });
2480
- }
2481
- // ── Public methods ──
2482
- /** Collapse the pane to a thin strip. */
2483
- collapsePane() {
2484
- this.#r = !0, this.setAttribute("collapsed", ""), this.dispatchEvent(new CustomEvent("aui:pane-collapse", {
2485
- bubbles: !0,
2486
- composed: !0,
2487
- detail: { pane: this }
2488
- }));
2489
- }
2490
- /** Restore from collapsed state. */
2491
- expand() {
2492
- this.#r = !1, this.removeAttribute("collapsed"), this.dispatchEvent(new CustomEvent("aui:pane-expand", {
2493
- bubbles: !0,
2494
- composed: !0,
2495
- detail: { pane: this }
2496
- }));
2497
- }
2498
- /** Close the pane. Dispatches cancelable `aui:pane-close`. */
2499
- close() {
2500
- const t = new CustomEvent("aui:pane-close", {
2501
- bubbles: !0,
2502
- composed: !0,
2503
- cancelable: !0,
2504
- detail: { pane: this }
2505
- });
2506
- this.dispatchEvent(t) && (this.hidden = !0);
2507
- }
2508
- /** Minimize the pane to header-only. */
2509
- minimize() {
2510
- this.minimized = !0, this.dispatchEvent(new CustomEvent("aui:pane-minimize", {
2511
- bubbles: !0,
2512
- composed: !0,
2513
- detail: { pane: this }
2514
- }));
2515
- }
2516
- /** Restore from minimized state. */
2517
- restore() {
2518
- this.minimized = !1, this.dispatchEvent(new CustomEvent("aui:pane-restore", {
2519
- bubbles: !0,
2520
- composed: !0,
2521
- detail: { pane: this }
2522
- }));
2523
- }
2524
- // ── Size sync ──
2525
- #l() {
2526
- const t = this["fixed-size"];
2527
- t && t !== "auto" ? this.style.flex = `0 1 ${t}` : this.style.removeProperty("flex");
2528
- }
2529
- // ── Content wrapping ──
2530
- /** Wrap non-structural children in <aui-content>. */
2531
- #h() {
2532
- if (this.querySelector(":scope > aui-content")) return;
2533
- const t = document.createElement("aui-content"), e = [];
2534
- for (const i of Array.from(this.childNodes))
2535
- i instanceof HTMLElement && (i.tagName === "AUI-HEADER" || i.hasAttribute("data-pane-header") || i.hasAttribute("slot") || i.tagName === "AUI-CANVAS") || e.push(i);
2536
- if (e.length !== 0) {
2537
- for (const i of e) t.appendChild(i);
2538
- this.appendChild(t);
2539
- }
2540
- }
2541
- // ── Header stamping ──
2542
- #d() {
2543
- if (this.querySelector(":scope > aui-header")) return;
2544
- const t = this.label;
2545
- if (!t) return;
2546
- const i = R.content.cloneNode(!0).firstElementChild, s = i.querySelector("aui-pane-label");
2547
- s.textContent = t, this.#e = s;
2548
- const n = this.icon;
2549
- if (n) {
2550
- const a = document.createElement("aui-icon");
2551
- a.setAttribute("icon", n), i.insertBefore(a, s), this.#i = a;
2552
- }
2553
- this.minimizable && (this.#s = this.#c(
2554
- this.minimized ? "caret-up" : "minus",
2555
- () => {
2556
- this.minimized ? this.restore() : this.minimize();
2557
- }
2558
- ), i.appendChild(this.#s)), this.closeable && (this.#n = this.#c("x", () => this.close()), i.appendChild(this.#n)), this.prepend(i), this.#t = i;
2559
- }
2560
- #u() {
2561
- this.#t && (this.#t.remove(), this.#t = null, this.#e = null, this.#i = null, this.#s = null, this.#n = null);
2562
- }
2563
- #c(t, e) {
2564
- const i = z.content.firstElementChild.cloneNode(!0);
2565
- return i.setAttribute("icon", t), i.setAttribute("slot", "trailing"), i.addEventListener("click", e), i;
2566
- }
2567
- #b(t) {
2568
- if (this.#t)
2569
- if (t && this.#i)
2570
- this.#i.setAttribute("icon", t);
2571
- else if (t && !this.#i) {
2572
- const e = document.createElement("aui-icon");
2573
- e.setAttribute("icon", t), this.#t.prepend(e), this.#i = e;
2574
- } else !t && this.#i && (this.#i.remove(), this.#i = null);
2575
- }
2576
- #p(t) {
2577
- this.#t && (t && !this.#n ? (this.#n = this.#c("x", () => this.close()), this.#t.appendChild(this.#n)) : !t && this.#n && (this.#n.remove(), this.#n = null));
2578
- }
2579
- #E(t) {
2580
- this.#t && (t && !this.#s ? (this.#s = this.#c(
2581
- this.minimized ? "caret-up" : "minus",
2582
- () => {
2583
- this.minimized ? this.restore() : this.minimize();
2584
- }
2585
- ), this.#n ? this.#t.insertBefore(this.#s, this.#n) : this.#t.appendChild(this.#s)) : !t && this.#s && (this.#s.remove(), this.#s = null));
2586
- }
2587
- // ── Tabs ──
2588
- #g() {
2589
- if (this.#a) return;
2590
- this.#a = document.createElement("aui-tabs");
2591
- for (const e of this.children) {
2592
- if (!(e instanceof HTMLElement)) continue;
2593
- const i = e.getAttribute("data-tab-id"), s = e.getAttribute("data-tab-label");
2594
- if (!i || !s) continue;
2595
- const n = document.createElement("aui-tab");
2596
- n.setAttribute("label", s), n.setAttribute("data-for", i), this.#a.appendChild(n);
2597
- }
2598
- this.#a.addEventListener("change", (e) => {
2599
- const s = e.detail.tab?.getAttribute("data-for");
2600
- s && this.#v(s);
2601
- });
2602
- const t = this.querySelector(":scope > aui-header, :scope > [data-pane-header]");
2603
- t ? t.after(this.#a) : this.prepend(this.#a), queueMicrotask(() => {
2604
- const i = this.#a?.querySelector("aui-tab")?.getAttribute("data-for");
2605
- i && this.#v(i);
2606
- });
2607
- }
2608
- #o() {
2609
- this.#a?.remove(), this.#a = null;
2610
- for (const t of this.children)
2611
- t instanceof HTMLElement && t.hasAttribute("data-tab-id") && t.removeAttribute("hidden");
2612
- }
2613
- #v(t) {
2614
- for (const e of this.children) {
2615
- if (!(e instanceof HTMLElement)) continue;
2616
- const i = e.getAttribute("data-tab-id");
2617
- i && (i === t ? e.removeAttribute("hidden") : e.setAttribute("hidden", ""));
2618
- }
2619
- }
2620
- dispose() {
2621
- this.#u(), this.#o();
2622
- }
2623
- }
2624
- class zt extends h {
2625
- static attributes = {
2626
- cols: { type: "string", default: "" },
2627
- src: { type: "string", default: "" },
2628
- selectable: { type: "boolean", default: !1 },
2629
- sortable: { type: "boolean", default: !1 },
2630
- searchable: { type: "boolean", default: !1 },
2631
- paginate: { type: "string", default: "0" }
2632
- };
2633
- #t = [];
2634
- #e = [];
2635
- #i = "";
2636
- #s = "none";
2637
- #n = "";
2638
- #a = 1;
2639
- #r = /* @__PURE__ */ new Set();
2640
- #l = !1;
2641
- // Stable DOM refs (created once, never destroyed)
2642
- #h = null;
2643
- #d = null;
2644
- #u = null;
2645
- #c = null;
2646
- #b = null;
2647
- get selectedIds() {
2648
- return new Set(this.#r);
2649
- }
2650
- get dataMode() {
2651
- return this.#l;
2652
- }
2653
- setData(t) {
2654
- this.#e = [...t], this.#a = 1, this.#r.clear(), this.#A();
2655
- }
2656
- activate() {
2657
- if (this.setAttribute("role", "table"), this.#t = this.#p(), this.#l = this.#t.length > 0, !this.#l) {
2658
- this.addEffect(() => {
2659
- this.cols && (this.style.gridTemplateColumns = this.cols);
2660
- });
2661
- return;
2662
- }
2663
- this.#E(), this.#o(), this.#A(), this.addEventListener("click", this.#v), this.addEffect(() => {
2664
- this.src && this.#g(this.src);
2665
- });
2666
- }
2667
- dispose() {
2668
- this.removeEventListener("click", this.#v), this.#b && clearTimeout(this.#b);
2669
- }
2670
- // ── Column parsing ─────────────────────────────────────────
2671
- #p() {
2672
- return Array.from(this.querySelectorAll("aui-table-column")).map((t) => ({
2673
- key: t.getAttribute("key") || "",
2674
- label: t.getAttribute("label") || t.getAttribute("key") || "",
2675
- sortable: t.hasAttribute("sortable"),
2676
- filterable: t.hasAttribute("filterable"),
2677
- width: t.getAttribute("width") || "1fr",
2678
- type: t.getAttribute("type") || "string",
2679
- align: t.getAttribute("align") || "start"
2680
- })).filter((t) => t.key);
2681
- }
2682
- // ── Data loading ───────────────────────────────────────────
2683
- #E() {
2684
- const t = this.querySelector('script[type="application/json"]');
2685
- if (t?.textContent) {
2686
- try {
2687
- const e = JSON.parse(t.textContent);
2688
- Array.isArray(e) && (this.#e = e);
2689
- } catch {
2690
- }
2691
- return;
2692
- }
2693
- this.src && this.#g(this.src);
2694
- }
2695
- async #g(t) {
2696
- try {
2697
- const e = await fetch(t);
2698
- if (!e.ok) return;
2699
- const i = await e.json();
2700
- this.#e = Array.isArray(i) ? i : i?.data ?? [], this.#a = 1, this.#r.clear(), this.#A();
2701
- } catch {
2702
- }
2703
- }
2704
- // ── Structure (built once) ─────────────────────────────────
2705
- #o() {
2706
- for (const e of [...this.children]) {
2707
- const i = e.tagName?.toLowerCase();
2708
- i !== "aui-table-column" && i !== "script" && e.remove();
2709
- }
2710
- const t = this.#t.map((e) => e.width);
2711
- if (this.selectable && t.unshift("2.5rem"), this.style.gridTemplateColumns = t.join(" "), this.searchable) {
2712
- const e = document.createElement("div");
2713
- e.setAttribute("data-table-toolbar", "");
2714
- const i = document.createElement("aui-input");
2715
- i.setAttribute("placeholder", "Search..."), i.setAttribute("type", "search"), i.setAttribute("width", "full"), e.appendChild(i), this.#h = e, this.appendChild(e);
2716
- const s = () => {
2717
- this.#b && clearTimeout(this.#b), this.#b = setTimeout(() => {
2718
- this.#n = (i.value || "").trim(), this.#a = 1, this.#A();
2719
- }, 200);
2720
- };
2721
- i.addEventListener("input", s);
2722
- }
2723
- this.#d = document.createElement("aui-table-head"), this.appendChild(this.#d), this.#u = document.createElement("aui-table-body"), this.appendChild(this.#u), this.#C > 0 && (this.#c = document.createElement("div"), this.#c.setAttribute("data-table-footer", ""), this.appendChild(this.#c));
2724
- }
2725
- // ── Event delegation ───────────────────────────────────────
2726
- #v = (t) => {
2727
- const e = t.target, i = e.closest("aui-table-header[data-table-sortable]");
2728
- if (i) {
2729
- const a = i.dataset.key;
2730
- if (a) {
2731
- this.#f(a);
2732
- return;
2733
- }
2734
- }
2735
- const s = e.closest("aui-checkbox[data-table-check]");
2736
- if (s) {
2737
- const a = s.dataset.rowId;
2738
- a === "__all__" ? this.#m() : a && this.#x(a);
2739
- return;
2740
- }
2741
- const n = e.closest("[data-table-page]");
2742
- if (n) {
2743
- const a = parseInt(n.dataset.tablePage, 10);
2744
- !isNaN(a) && a !== this.#a && (this.#a = a, this.dispatchEvent(new CustomEvent("aui:page-change", { bubbles: !0, detail: { page: a } })), this.#A());
2745
- }
2746
- };
2747
- // ── Sort ───────────────────────────────────────────────────
2748
- #f(t) {
2749
- if (this.#i === t) {
2750
- const e = ["asc", "desc", "none"];
2751
- this.#s = e[(e.indexOf(this.#s) + 1) % 3], this.#s === "none" && (this.#i = "");
2752
- } else
2753
- this.#i = t, this.#s = "asc";
2754
- this.#a = 1, this.dispatchEvent(new CustomEvent("aui:sort-change", { bubbles: !0, detail: { key: this.#i, dir: this.#s } })), this.#A();
2755
- }
2756
- // ── Selection ──────────────────────────────────────────────
2757
- #y(t) {
2758
- return t.id != null ? String(t.id) : JSON.stringify(t);
2759
- }
2760
- #x(t) {
2761
- this.#r.has(t) ? this.#r.delete(t) : this.#r.add(t), this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#A();
2762
- }
2763
- #m() {
2764
- const t = this.#L(this.#w()), e = t.length > 0 && t.every((i) => this.#r.has(this.#y(i)));
2765
- for (const i of t) {
2766
- const s = this.#y(i);
2767
- e ? this.#r.delete(s) : this.#r.add(s);
2768
- }
2769
- this.dispatchEvent(new CustomEvent("aui:selection-change", { bubbles: !0, detail: { selectedIds: [...this.#r] } })), this.#A();
2770
- }
2771
- // ── Derived data ───────────────────────────────────────────
2772
- get #C() {
2773
- return parseInt(this.paginate, 10) || 0;
2774
- }
2775
- #w() {
2776
- let t = [...this.#e];
2777
- if (this.#n) {
2778
- const e = this.#n.toLowerCase(), i = this.#t.map((s) => s.key);
2779
- t = t.filter((s) => i.some((n) => {
2780
- const a = s[n];
2781
- return a != null && String(a).toLowerCase().includes(e);
2782
- }));
2783
- }
2784
- if (this.#i && this.#s !== "none") {
2785
- const i = this.#t.find((a) => a.key === this.#i)?.type || "string", s = this.#s === "desc" ? -1 : 1, n = this.#i;
2786
- t.sort((a, r) => {
2787
- const o = a[n], d = r[n];
2788
- return o == null && d == null ? 0 : o == null ? 1 : d == null ? -1 : i === "number" ? (Number(o) - Number(d)) * s : i === "date" ? (new Date(String(o)).getTime() - new Date(String(d)).getTime()) * s : String(o).localeCompare(String(d)) * s;
2789
- });
2790
- }
2791
- return t;
2792
- }
2793
- #L(t) {
2794
- const e = this.#C;
2795
- if (e <= 0) return t;
2796
- const i = (this.#a - 1) * e;
2797
- return t.slice(i, i + e);
2798
- }
2799
- // ── Render (updates innerHTML of stable containers) ────────
2800
- #A() {
2801
- if (!this.#l || !this.#d || !this.#u) return;
2802
- const t = this.#w(), e = this.#L(t);
2803
- this.#d.innerHTML = "";
2804
- const i = document.createElement("aui-table-row");
2805
- if (this.selectable) {
2806
- const s = document.createElement("aui-table-header"), n = e.length > 0 && e.every((r) => this.#r.has(this.#y(r))), a = document.createElement("aui-checkbox");
2807
- a.setAttribute("data-table-check", ""), a.setAttribute("data-row-id", "__all__"), n && a.setAttribute("checked", ""), s.appendChild(a), i.appendChild(s);
2808
- }
2809
- for (const s of this.#t) {
2810
- const n = document.createElement("aui-table-header"), a = s.sortable || this.sortable;
2811
- n.textContent = s.label, s.align !== "start" && (n.style.justifyContent = s.align), a && (n.setAttribute("data-table-sortable", ""), n.dataset.key = s.key, n.style.cursor = "pointer", this.#i === s.key && this.#s !== "none" && n.setAttribute("data-table-sort", this.#s)), i.appendChild(n);
2812
- }
2813
- this.#d.appendChild(i), this.#u.innerHTML = "";
2814
- for (const s of e) {
2815
- const n = document.createElement("aui-table-row"), a = this.#y(s), r = this.#r.has(a);
2816
- if (r && n.setAttribute("data-table-selected", ""), this.selectable) {
2817
- const o = document.createElement("aui-table-cell"), d = document.createElement("aui-checkbox");
2818
- d.setAttribute("data-table-check", ""), d.setAttribute("data-row-id", a), r && d.setAttribute("checked", ""), o.appendChild(d), n.appendChild(o);
2819
- }
2820
- for (const o of this.#t) {
2821
- const d = document.createElement("aui-table-cell"), b = s[o.key];
2822
- d.textContent = b != null ? String(b) : "", o.align !== "start" && (d.style.justifyContent = o.align), n.appendChild(d);
2823
- }
2824
- this.#u.appendChild(n);
2825
- }
2826
- if (this.#c) {
2827
- this.#c.innerHTML = "";
2828
- const s = this.#C, n = t.length, a = Math.max(1, Math.ceil(n / s));
2829
- this.#a > a && (this.#a = a);
2830
- const r = n === 0 ? 0 : (this.#a - 1) * s + 1, o = Math.min(this.#a * s, n), d = document.createElement("span");
2831
- d.setAttribute("data-table-page-info", ""), d.textContent = `${r}–${o} of ${n}`, this.#c.appendChild(d);
2832
- const b = document.createElement("span");
2833
- b.setAttribute("data-table-page-controls", ""), b.style.cssText = "display:inline-flex;gap:0.25rem;align-items:center;";
2834
- const f = document.createElement("button");
2835
- f.setAttribute("data-table-page", String(this.#a - 1)), f.disabled = this.#a <= 1, f.textContent = "‹", f.style.cssText = "all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);color:var(--aui-ink-muted);", f.disabled && (f.style.opacity = "0.4"), b.appendChild(f);
2836
- for (let c = 1; c <= a; c++) {
2837
- const p = document.createElement("button");
2838
- p.setAttribute("data-table-page", String(c)), p.textContent = String(c), p.style.cssText = `all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);${c === this.#a ? "background:var(--aui-accent);color:white;" : "color:var(--aui-ink-muted);"}`, b.appendChild(p);
2839
- }
2840
- const m = document.createElement("button");
2841
- m.setAttribute("data-table-page", String(this.#a + 1)), m.disabled = this.#a >= a, m.textContent = "›", m.style.cssText = "all:unset;cursor:pointer;padding:0.25rem 0.5rem;border-radius:var(--aui-radius);font-size:var(--aui-font-sm);color:var(--aui-ink-muted);", m.disabled && (m.style.opacity = "0.4"), b.appendChild(m), this.#c.appendChild(b);
2842
- }
2843
- }
2844
- }
2845
- class Ot extends h {
2846
- }
2847
- class Ht extends h {
2848
- }
2849
- class Nt extends h {
2850
- }
2851
- class Ut extends h {
2852
- }
2853
- class Ft extends h {
2854
- }
2855
- class Vt extends h {
2856
- activate() {
2857
- this.setAttribute("role", "tree"), this.addEventListener("keydown", this.#e);
2858
- }
2859
- dispose() {
2860
- this.removeEventListener("keydown", this.#e);
2861
- }
2862
- get #t() {
2863
- const t = [];
2864
- for (const e of this.querySelectorAll("[data-label]")) {
2865
- const i = e.closest("aui-tree-item");
2866
- if (!i) continue;
2867
- const s = i.parentElement?.closest("aui-tree-item");
2868
- s && !s.hasAttribute("expanded") && i.parentElement?.hasAttribute("data-children") || t.push(e);
2869
- }
2870
- return t;
2871
- }
2872
- #e = (t) => {
2873
- if (t.key !== "ArrowDown" && t.key !== "ArrowUp") return;
2874
- const e = this.#t, i = e.indexOf(document.activeElement);
2875
- if (i < 0) return;
2876
- t.preventDefault();
2877
- let s;
2878
- t.key === "ArrowDown" ? s = i < e.length - 1 ? i + 1 : 0 : s = i > 0 ? i - 1 : e.length - 1, e[s].focus();
2879
- };
2880
- }
2881
- const j = '<aui-icon name="caret-right" size="sm"></aui-icon>';
2882
- class Bt extends h {
2883
- static attributes = {
2884
- expanded: { type: "boolean", default: !1 },
2885
- selected: { type: "boolean", default: !1 },
2886
- disabled: { type: "boolean", default: !1 }
2887
- };
2888
- #t = null;
2889
- #e = null;
2890
- #i = null;
2891
- get expandable() {
2892
- return !!this.querySelector(":scope > [data-children] > aui-tree-item");
2893
- }
2894
- activate() {
2895
- if (this.setAttribute("role", "treeitem"), this.#t = this.querySelector(":scope > [data-label]"), this.#t)
2896
- this.#i = this.querySelector(":scope > [data-label] > [data-caret]"), this.#e = this.querySelector(":scope > [data-children]");
2897
- else {
2898
- this.#t = document.createElement("div"), this.#t.setAttribute("data-label", ""), this.#t.setAttribute("tabindex", "0"), this.#i = document.createElement("span"), this.#i.setAttribute("data-caret", ""), this.#i.innerHTML = j, this.#t.appendChild(this.#i);
2899
- const i = this.querySelector(":scope > [data-trigger]");
2900
- if (i)
2901
- this.#t.appendChild(i);
2902
- else {
2903
- const n = [];
2904
- for (const a of Array.from(this.childNodes))
2905
- a instanceof HTMLElement && (a.tagName === "AUI-TREE-ITEM" || a.hasAttribute("data-children")) || n.push(a);
2906
- for (const a of n) this.#t.appendChild(a);
2907
- }
2908
- const s = Array.from(this.querySelectorAll(":scope > aui-tree-item"));
2909
- if (s.length > 0) {
2910
- this.#e = document.createElement("div"), this.#e.setAttribute("data-children", ""), this.#e.setAttribute("role", "group");
2911
- for (const n of s)
2912
- this.#e.appendChild(n);
2913
- this.prepend(this.#t), this.appendChild(this.#e);
2914
- } else
2915
- this.prepend(this.#t);
2916
- }
2917
- let t = 0, e = this.parentElement;
2918
- for (; e && (e.tagName === "AUI-TREE-ITEM" && t++, e.tagName !== "AUI-TREE"); )
2919
- e = e.parentElement;
2920
- this.#t?.style.setProperty("--_depth", String(t)), this.addEffect(() => {
2921
- this.setAttribute("aria-expanded", this.expandable ? String(this.expanded) : ""), this.setAttribute("aria-selected", String(this.selected)), this.setAttribute("aria-disabled", String(this.disabled)), this.#i && (this.#i.style.visibility = this.expandable ? "visible" : "hidden");
2922
- }), this.#t?.addEventListener("click", this.#s), this.#t?.addEventListener("keydown", this.#n);
2923
- }
2924
- dispose() {
2925
- this.#t?.removeEventListener("click", this.#s), this.#t?.removeEventListener("keydown", this.#n);
2926
- }
2927
- #s = () => {
2928
- this.disabled || (this.expandable && (this.expanded = !this.expanded), this.selected = !0, this.dispatchEvent(new CustomEvent("select", { bubbles: !0, detail: { item: this } })));
2929
- };
2930
- #n = (t) => {
2931
- this.disabled || (t.key === "Enter" || t.key === " " ? (t.preventDefault(), this.#s()) : t.key === "ArrowRight" && this.expandable && !this.expanded ? (t.preventDefault(), this.expanded = !0) : t.key === "ArrowLeft" && this.expanded && (t.preventDefault(), this.expanded = !1));
2932
- };
2933
- }
2934
- class $t extends h {
2935
- static attributes = {
2936
- align: { type: "enum", values: ["end"], default: "" },
2937
- scrollable: { type: "boolean", default: !1 },
2938
- autoscroll: { type: "boolean", default: !1 }
2939
- };
2940
- #t = null;
2941
- activate() {
2942
- this.setAttribute("role", "feed"), this.autoscroll && (this.#t = new MutationObserver(() => {
2943
- this.#e() && this.#i();
2944
- }), this.#t.observe(this, { childList: !0, subtree: !0 }));
2945
- }
2946
- dispose() {
2947
- this.#t?.disconnect();
2948
- }
2949
- #e() {
2950
- return this.scrollHeight - this.scrollTop - this.clientHeight < 40;
2951
- }
2952
- #i() {
2953
- requestAnimationFrame(() => {
2954
- this.scrollTop = this.scrollHeight;
2955
- });
2956
- }
2957
- scrollToEnd() {
2958
- this.#i();
2959
- }
2960
- }
2961
- class Kt extends h {
2962
- activate() {
2963
- }
2964
- }
2965
- class _t extends h {
2966
- activate() {
2967
- this.setAttribute("role", "application");
2968
- }
2969
- }
2970
- class Gt extends h {
2971
- activate() {
2972
- this.setAttribute("role", "main");
2973
- }
2974
- }
2975
- class Wt extends h {
2976
- }
2977
- class Xt extends h {
2978
- activate() {
2979
- this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Breadcrumb");
2980
- }
2981
- }
2982
- const O = document.createElement("template");
2983
- O.innerHTML = "<aui-sidebar-resize-handle></aui-sidebar-resize-handle>";
2984
- class jt extends h {
2985
- static attributes = {
2986
- width: { type: "string", default: "240" },
2987
- "min-width": { type: "string", default: "56" },
2988
- "max-width": { type: "string", default: "480" },
2989
- collapsed: { type: "boolean", default: !1 },
2990
- collapsible: { type: "boolean", default: !1 },
2991
- side: { type: "enum", values: ["left", "right"], default: "left" },
2992
- disabled: { type: "boolean", default: !1 }
2993
- };
2994
- #t = H(240);
2995
- #e = 56;
2996
- #i = 480;
2997
- // Resize state
2998
- #s = null;
2999
- #n = !1;
3000
- #a = 0;
3001
- #r = 0;
3002
- #l = -1;
3003
- activate() {
3004
- this.setAttribute("role", "complementary");
3005
- const t = parseInt(this.getAttribute("width") ?? "", 10);
3006
- t > 0 && (this.#t.value = t), this.#e = parseInt(this.getAttribute("min-width") ?? "", 10) || 56, this.#i = parseInt(this.getAttribute("max-width") ?? "", 10) || 480;
3007
- const e = O.content.cloneNode(!0);
3008
- this.#s = e.querySelector("aui-sidebar-resize-handle"), this.appendChild(e), this.#s.addEventListener("pointerdown", this.#h), this.addEffect(() => {
3009
- const i = this.#t.value;
3010
- this.style.setProperty("--aui-sidebar-width", `${i}px`);
3011
- });
3012
- }
3013
- // ── Public API ──
3014
- collapse() {
3015
- this.setAttribute("collapsed", ""), this.dispatchEvent(new CustomEvent("aui:sidebar-collapse", {
3016
- bubbles: !0,
3017
- detail: { collapsed: !0 }
3018
- }));
3019
- }
3020
- expand() {
3021
- this.removeAttribute("collapsed"), this.dispatchEvent(new CustomEvent("aui:sidebar-collapse", {
3022
- bubbles: !0,
3023
- detail: { collapsed: !1 }
3024
- }));
3025
- }
3026
- toggle() {
3027
- this.collapsed ? this.expand() : this.collapse();
3028
- }
3029
- // ── Resize ──
3030
- #h = (t) => {
3031
- this.disabled || this.collapsed || (t.preventDefault(), this.#n = !0, this.#a = t.clientX, this.#r = D(() => this.#t.value), this.#l = t.pointerId, this.setAttribute("data-sidebar-resizing", ""), this.#s.setPointerCapture(t.pointerId), document.documentElement.setAttribute("data-sidebar-resizing", ""), this.#s.addEventListener("pointermove", this.#d), this.#s.addEventListener("pointerup", this.#u), this.#s.addEventListener("pointercancel", this.#u));
3032
- };
3033
- #d = (t) => {
3034
- if (!this.#n) return;
3035
- const i = this.getAttribute("side") === "right" ? this.#a - t.clientX : t.clientX - this.#a, s = Math.round(Math.max(this.#e, Math.min(this.#i, this.#r + i)));
3036
- this.#t.value = s;
3037
- };
3038
- #u = () => {
3039
- this.#n && (this.#n = !1, this.removeAttribute("data-sidebar-resizing"), document.documentElement.removeAttribute("data-sidebar-resizing"), this.#l >= 0 && this.#s && this.#s.releasePointerCapture(this.#l), this.#l = -1, this.#s?.removeEventListener("pointermove", this.#d), this.#s?.removeEventListener("pointerup", this.#u), this.#s?.removeEventListener("pointercancel", this.#u), this.dispatchEvent(new CustomEvent("aui:sidebar-resize", {
3040
- bubbles: !0,
3041
- detail: { width: D(() => this.#t.value) }
3042
- })));
3043
- };
3044
- // ── Cleanup ──
3045
- dispose() {
3046
- this.#s?.removeEventListener("pointerdown", this.#h), this.#s?.remove(), this.#s = null, document.documentElement.removeAttribute("data-sidebar-resizing");
3047
- }
3048
- }
3049
- class Yt extends h {
3050
- activate() {
3051
- this.setAttribute("role", "none");
3052
- }
3053
- }
3054
- class Jt extends h {
3055
- activate() {
3056
- this.setAttribute("role", "none");
3057
- }
3058
- }
3059
- class Qt extends h {
3060
- activate() {
3061
- this.setAttribute("role", "none");
3062
- }
17
+ class n extends a {
3063
18
  }
3064
19
  export {
3065
- ee as ACTION_REGISTRY,
3066
- yt as AuiAccordion,
3067
- Et as AuiAccordionItem,
3068
- ie as AuiAgentActivity,
3069
- se as AuiAgentFeed,
3070
- ne as AuiAgentInput,
3071
- ae as AuiAgentMessage,
3072
- re as AuiAgentPanel,
3073
- le as AuiAgentPrompt,
3074
- he as AuiAgentSeeds,
3075
- oe as AuiAgentText,
3076
- de as AuiAgentThread,
3077
- _t as AuiAppShell,
3078
- xt as AuiBreadcrumb,
3079
- wt as AuiBreadcrumbItem,
3080
- Q as AuiButton,
3081
- et as AuiCheckbox,
3082
- St as AuiCommand,
3083
- It as AuiCommandEmpty,
3084
- Dt as AuiCommandGroup,
3085
- Tt as AuiCommandInput,
3086
- Pt as AuiCommandItem,
3087
- Mt as AuiCommandList,
3088
- rt as AuiContainer,
3089
- lt as AuiDialog,
3090
- ht as AuiDrawer,
3091
- $t as AuiFeed,
3092
- ut as AuiGripper,
3093
- ot as AuiIcon,
3094
- Z as AuiInput,
3095
- tt as AuiInputOtp,
3096
- ft as AuiOptgroup,
3097
- bt as AuiOption,
3098
- Gt as AuiPage,
3099
- Xt as AuiPageContext,
3100
- Wt as AuiPageMain,
3101
- Lt as AuiPagination,
3102
- Rt as AuiPane,
3103
- qt as AuiPanes,
3104
- st as AuiRadio,
3105
- nt as AuiRadioGroup,
3106
- ct as AuiRange,
3107
- Kt as AuiRoot,
3108
- Ct as AuiSegment,
3109
- kt as AuiSegmentedControl,
3110
- pt as AuiSelect,
3111
- jt as AuiSidebar,
3112
- Jt as AuiSidebarContent,
3113
- Qt as AuiSidebarFooter,
3114
- Yt as AuiSidebarHeader,
3115
- it as AuiSwitch,
3116
- gt as AuiTab,
3117
- At as AuiTabPanel,
3118
- zt as AuiTable,
3119
- Ot as AuiTableBody,
3120
- Ht as AuiTableCell,
3121
- Nt as AuiTableHead,
3122
- Ut as AuiTableHeader,
3123
- Ft as AuiTableRow,
3124
- vt as AuiTabs,
3125
- at as AuiTextarea,
3126
- mt as AuiToast,
3127
- dt as AuiTooltip,
3128
- Vt as AuiTree,
3129
- Bt as AuiTreeItem,
3130
- ce as ROLE_DEFAULTS,
3131
- U as getIcon,
3132
- pe as registerIcon,
3133
- me as registerIcons,
3134
- ue as renderMarkdown,
3135
- be as sanitizeHtml
20
+ p as ACTION_REGISTRY,
21
+ f as AuiAccordion,
22
+ h as AuiAccordionItem,
23
+ m as AuiAgentActivity,
24
+ g as AuiAgentFeed,
25
+ c as AuiAgentInput,
26
+ C as AuiAgentMessage,
27
+ T as AuiAgentPanel,
28
+ S as AuiAgentPrompt,
29
+ b as AuiAgentSeeds,
30
+ x as AuiAgentText,
31
+ I as AuiAgentThread,
32
+ A as AuiAlert,
33
+ D as AuiAppShell,
34
+ G as AuiAvatarGroup,
35
+ B as AuiBreadcrumb,
36
+ E as AuiBreadcrumbItem,
37
+ M as AuiButton,
38
+ w as AuiCalendarPicker,
39
+ y as AuiCalendarRangePicker,
40
+ H as AuiCarousel,
41
+ O as AuiCheckbox,
42
+ v as AuiChip,
43
+ L as AuiCodeBlock,
44
+ N as AuiColorArea,
45
+ j as AuiColorField,
46
+ U as AuiColorPicker,
47
+ _ as AuiColorSlider,
48
+ q as AuiCommand,
49
+ z as AuiCommandEmpty,
50
+ Y as AuiCommandGroup,
51
+ J as AuiCommandInput,
52
+ K as AuiCommandItem,
53
+ Q as AuiCommandList,
54
+ V as AuiContainer,
55
+ W as AuiContextMenu,
56
+ X as AuiCopyButton,
57
+ Z as AuiDateField,
58
+ $ as AuiDialog,
59
+ aa as AuiDisclosure,
60
+ ia as AuiDisclosureGroup,
61
+ sa as AuiDrawer,
62
+ ea as AuiDropdownMenu,
63
+ Aa as AuiEmptyState,
64
+ ua as AuiFeed,
65
+ ta as AuiFileUpload,
66
+ oa as AuiGripper,
67
+ ra as AuiHoverCard,
68
+ na as AuiIcon,
69
+ da as AuiImage,
70
+ la as AuiInput,
71
+ pa as AuiInputOtp,
72
+ u as AuiLink,
73
+ ma as AuiMeter,
74
+ o as AuiNavItem,
75
+ ga as AuiNotificationCenter,
76
+ ca as AuiOptgroup,
77
+ Ca as AuiOption,
78
+ Ta as AuiPage,
79
+ Sa as AuiPageContext,
80
+ ba as AuiPageMain,
81
+ xa as AuiPagination,
82
+ Ia as AuiPane,
83
+ Pa as AuiPanes,
84
+ ka as AuiProgress,
85
+ Ra as AuiProgressCircle,
86
+ Fa as AuiRadio,
87
+ fa as AuiRadioGroup,
88
+ ha as AuiRange,
89
+ Da as AuiRoot,
90
+ Ga as AuiSegment,
91
+ Ba as AuiSegmentedControl,
92
+ Ea as AuiSelect,
93
+ Ma as AuiSidebar,
94
+ wa as AuiSidebarContent,
95
+ ya as AuiSidebarFooter,
96
+ Ha as AuiSidebarHeader,
97
+ e as AuiSkeleton,
98
+ Oa as AuiSparkline,
99
+ t as AuiSpinner,
100
+ va as AuiStat,
101
+ n as AuiStep,
102
+ r as AuiStepper,
103
+ La as AuiSwitch,
104
+ Na as AuiTab,
105
+ ja as AuiTabPanel,
106
+ Ua as AuiTable,
107
+ _a as AuiTableBody,
108
+ qa as AuiTableCell,
109
+ za as AuiTableHead,
110
+ Ya as AuiTableHeader,
111
+ Ja as AuiTableRow,
112
+ Ka as AuiTabs,
113
+ Qa as AuiTagGroup,
114
+ Va as AuiTextarea,
115
+ Wa as AuiTimeField,
116
+ Xa as AuiToast,
117
+ Za as AuiTooltip,
118
+ $a as AuiTree,
119
+ ai as AuiTreeItem,
120
+ P as ROLE_DEFAULTS,
121
+ si as getIcon,
122
+ ei as registerIcon,
123
+ Ai as registerIcons,
124
+ k as renderMarkdown,
125
+ R as sanitizeHtml
3136
126
  };
3137
127
  //# sourceMappingURL=components.js.map