@raqm/ui 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +28 -0
  4. package/README.md +126 -3
  5. package/combobox/README.md +17 -0
  6. package/fesm2022/raqm-ui-accordion.mjs +414 -0
  7. package/fesm2022/raqm-ui-accordion.mjs.map +1 -0
  8. package/fesm2022/raqm-ui-alert-dialog.mjs +457 -0
  9. package/fesm2022/raqm-ui-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/raqm-ui-alert.mjs +195 -0
  11. package/fesm2022/raqm-ui-alert.mjs.map +1 -0
  12. package/fesm2022/raqm-ui-aspect-ratio.mjs +66 -0
  13. package/fesm2022/raqm-ui-aspect-ratio.mjs.map +1 -0
  14. package/fesm2022/raqm-ui-attachment.mjs +435 -0
  15. package/fesm2022/raqm-ui-attachment.mjs.map +1 -0
  16. package/fesm2022/raqm-ui-avatar.mjs +337 -0
  17. package/fesm2022/raqm-ui-avatar.mjs.map +1 -0
  18. package/fesm2022/raqm-ui-badge.mjs +68 -0
  19. package/fesm2022/raqm-ui-badge.mjs.map +1 -0
  20. package/fesm2022/raqm-ui-breadcrumb.mjs +309 -0
  21. package/fesm2022/raqm-ui-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/raqm-ui-button-group.mjs +138 -0
  23. package/fesm2022/raqm-ui-button-group.mjs.map +1 -0
  24. package/fesm2022/raqm-ui-button.mjs +295 -0
  25. package/fesm2022/raqm-ui-button.mjs.map +1 -0
  26. package/fesm2022/raqm-ui-calendar.mjs +1394 -0
  27. package/fesm2022/raqm-ui-calendar.mjs.map +1 -0
  28. package/fesm2022/raqm-ui-card.mjs +331 -0
  29. package/fesm2022/raqm-ui-card.mjs.map +1 -0
  30. package/fesm2022/raqm-ui-carousel.mjs +410 -0
  31. package/fesm2022/raqm-ui-carousel.mjs.map +1 -0
  32. package/fesm2022/raqm-ui-checkbox.mjs +86 -0
  33. package/fesm2022/raqm-ui-checkbox.mjs.map +1 -0
  34. package/fesm2022/raqm-ui-collapsible.mjs +266 -0
  35. package/fesm2022/raqm-ui-collapsible.mjs.map +1 -0
  36. package/fesm2022/raqm-ui-combobox.mjs +1584 -0
  37. package/fesm2022/raqm-ui-combobox.mjs.map +1 -0
  38. package/fesm2022/raqm-ui-command.mjs +1210 -0
  39. package/fesm2022/raqm-ui-command.mjs.map +1 -0
  40. package/fesm2022/raqm-ui-context-menu.mjs +723 -0
  41. package/fesm2022/raqm-ui-context-menu.mjs.map +1 -0
  42. package/fesm2022/raqm-ui-dialog.mjs +1214 -0
  43. package/fesm2022/raqm-ui-dialog.mjs.map +1 -0
  44. package/fesm2022/raqm-ui-drawer.mjs +687 -0
  45. package/fesm2022/raqm-ui-drawer.mjs.map +1 -0
  46. package/fesm2022/raqm-ui-dropdown-menu.mjs +1168 -0
  47. package/fesm2022/raqm-ui-dropdown-menu.mjs.map +1 -0
  48. package/fesm2022/raqm-ui-empty.mjs +272 -0
  49. package/fesm2022/raqm-ui-empty.mjs.map +1 -0
  50. package/fesm2022/raqm-ui-field.mjs +517 -0
  51. package/fesm2022/raqm-ui-field.mjs.map +1 -0
  52. package/fesm2022/raqm-ui-hover-card.mjs +828 -0
  53. package/fesm2022/raqm-ui-hover-card.mjs.map +1 -0
  54. package/fesm2022/raqm-ui-input-group.mjs +270 -0
  55. package/fesm2022/raqm-ui-input-group.mjs.map +1 -0
  56. package/fesm2022/raqm-ui-input-otp.mjs +788 -0
  57. package/fesm2022/raqm-ui-input-otp.mjs.map +1 -0
  58. package/fesm2022/raqm-ui-input.mjs +73 -0
  59. package/fesm2022/raqm-ui-input.mjs.map +1 -0
  60. package/fesm2022/raqm-ui-item.mjs +495 -0
  61. package/fesm2022/raqm-ui-item.mjs.map +1 -0
  62. package/fesm2022/raqm-ui-kbd.mjs +80 -0
  63. package/fesm2022/raqm-ui-kbd.mjs.map +1 -0
  64. package/fesm2022/raqm-ui-label.mjs +44 -0
  65. package/fesm2022/raqm-ui-label.mjs.map +1 -0
  66. package/fesm2022/raqm-ui-menubar.mjs +536 -0
  67. package/fesm2022/raqm-ui-menubar.mjs.map +1 -0
  68. package/fesm2022/raqm-ui-native-select.mjs +131 -0
  69. package/fesm2022/raqm-ui-native-select.mjs.map +1 -0
  70. package/fesm2022/raqm-ui-navigation-menu.mjs +1399 -0
  71. package/fesm2022/raqm-ui-navigation-menu.mjs.map +1 -0
  72. package/fesm2022/raqm-ui-overlay-internal.mjs +185 -0
  73. package/fesm2022/raqm-ui-overlay-internal.mjs.map +1 -0
  74. package/fesm2022/raqm-ui-pagination.mjs +440 -0
  75. package/fesm2022/raqm-ui-pagination.mjs.map +1 -0
  76. package/fesm2022/raqm-ui-popover.mjs +1495 -0
  77. package/fesm2022/raqm-ui-popover.mjs.map +1 -0
  78. package/fesm2022/raqm-ui-progress.mjs +369 -0
  79. package/fesm2022/raqm-ui-progress.mjs.map +1 -0
  80. package/fesm2022/raqm-ui-questionnaire.mjs +1005 -0
  81. package/fesm2022/raqm-ui-questionnaire.mjs.map +1 -0
  82. package/fesm2022/raqm-ui-radio-group.mjs +151 -0
  83. package/fesm2022/raqm-ui-radio-group.mjs.map +1 -0
  84. package/fesm2022/raqm-ui-resizable.mjs +439 -0
  85. package/fesm2022/raqm-ui-resizable.mjs.map +1 -0
  86. package/fesm2022/raqm-ui-scroll-area.mjs +510 -0
  87. package/fesm2022/raqm-ui-scroll-area.mjs.map +1 -0
  88. package/fesm2022/raqm-ui-select.mjs +1073 -0
  89. package/fesm2022/raqm-ui-select.mjs.map +1 -0
  90. package/fesm2022/raqm-ui-separator.mjs +103 -0
  91. package/fesm2022/raqm-ui-separator.mjs.map +1 -0
  92. package/fesm2022/raqm-ui-sheet.mjs +411 -0
  93. package/fesm2022/raqm-ui-sheet.mjs.map +1 -0
  94. package/fesm2022/raqm-ui-sidebar.mjs +1784 -0
  95. package/fesm2022/raqm-ui-sidebar.mjs.map +1 -0
  96. package/fesm2022/raqm-ui-skeleton.mjs +50 -0
  97. package/fesm2022/raqm-ui-skeleton.mjs.map +1 -0
  98. package/fesm2022/raqm-ui-slider.mjs +609 -0
  99. package/fesm2022/raqm-ui-slider.mjs.map +1 -0
  100. package/fesm2022/raqm-ui-spinner.mjs +137 -0
  101. package/fesm2022/raqm-ui-spinner.mjs.map +1 -0
  102. package/fesm2022/raqm-ui-switch.mjs +109 -0
  103. package/fesm2022/raqm-ui-switch.mjs.map +1 -0
  104. package/fesm2022/raqm-ui-table.mjs +271 -0
  105. package/fesm2022/raqm-ui-table.mjs.map +1 -0
  106. package/fesm2022/raqm-ui-tabs.mjs +536 -0
  107. package/fesm2022/raqm-ui-tabs.mjs.map +1 -0
  108. package/fesm2022/raqm-ui-textarea.mjs +37 -0
  109. package/fesm2022/raqm-ui-textarea.mjs.map +1 -0
  110. package/fesm2022/raqm-ui-toast.mjs +918 -0
  111. package/fesm2022/raqm-ui-toast.mjs.map +1 -0
  112. package/fesm2022/raqm-ui-toggle-group.mjs +462 -0
  113. package/fesm2022/raqm-ui-toggle-group.mjs.map +1 -0
  114. package/fesm2022/raqm-ui-toggle.mjs +158 -0
  115. package/fesm2022/raqm-ui-toggle.mjs.map +1 -0
  116. package/fesm2022/raqm-ui-tooltip.mjs +1226 -0
  117. package/fesm2022/raqm-ui-tooltip.mjs.map +1 -0
  118. package/fesm2022/raqm-ui.mjs +50 -0
  119. package/input-otp/README.md +12 -0
  120. package/package.json +275 -3
  121. package/styles/theme.css +4324 -0
  122. package/types/raqm-ui-accordion.d.ts +124 -0
  123. package/types/raqm-ui-alert-dialog.d.ts +81 -0
  124. package/types/raqm-ui-alert.d.ts +29 -0
  125. package/types/raqm-ui-aspect-ratio.d.ts +13 -0
  126. package/types/raqm-ui-attachment.d.ts +72 -0
  127. package/types/raqm-ui-avatar.d.ts +67 -0
  128. package/types/raqm-ui-badge.d.ts +20 -0
  129. package/types/raqm-ui-breadcrumb.d.ts +35 -0
  130. package/types/raqm-ui-button-group.d.ts +27 -0
  131. package/types/raqm-ui-button.d.ts +80 -0
  132. package/types/raqm-ui-calendar.d.ts +359 -0
  133. package/types/raqm-ui-card.d.ts +34 -0
  134. package/types/raqm-ui-carousel.d.ts +81 -0
  135. package/types/raqm-ui-checkbox.d.ts +24 -0
  136. package/types/raqm-ui-collapsible.d.ts +72 -0
  137. package/types/raqm-ui-combobox.d.ts +405 -0
  138. package/types/raqm-ui-command.d.ts +256 -0
  139. package/types/raqm-ui-context-menu.d.ts +196 -0
  140. package/types/raqm-ui-dialog.d.ts +232 -0
  141. package/types/raqm-ui-drawer.d.ts +121 -0
  142. package/types/raqm-ui-dropdown-menu.d.ts +319 -0
  143. package/types/raqm-ui-empty.d.ts +35 -0
  144. package/types/raqm-ui-field.d.ts +88 -0
  145. package/types/raqm-ui-hover-card.d.ts +139 -0
  146. package/types/raqm-ui-input-group.d.ts +45 -0
  147. package/types/raqm-ui-input-otp.d.ts +197 -0
  148. package/types/raqm-ui-input.d.ts +16 -0
  149. package/types/raqm-ui-item.d.ts +71 -0
  150. package/types/raqm-ui-kbd.d.ts +12 -0
  151. package/types/raqm-ui-label.d.ts +6 -0
  152. package/types/raqm-ui-menubar.d.ts +159 -0
  153. package/types/raqm-ui-native-select.d.ts +23 -0
  154. package/types/raqm-ui-navigation-menu.d.ts +230 -0
  155. package/types/raqm-ui-overlay-internal.d.ts +5 -0
  156. package/types/raqm-ui-pagination.d.ts +84 -0
  157. package/types/raqm-ui-popover.d.ts +235 -0
  158. package/types/raqm-ui-progress.d.ts +79 -0
  159. package/types/raqm-ui-questionnaire.d.ts +217 -0
  160. package/types/raqm-ui-radio-group.d.ts +48 -0
  161. package/types/raqm-ui-resizable.d.ts +98 -0
  162. package/types/raqm-ui-scroll-area.d.ts +132 -0
  163. package/types/raqm-ui-select.d.ts +205 -0
  164. package/types/raqm-ui-separator.d.ts +21 -0
  165. package/types/raqm-ui-sheet.d.ts +79 -0
  166. package/types/raqm-ui-sidebar.d.ts +285 -0
  167. package/types/raqm-ui-skeleton.d.ts +6 -0
  168. package/types/raqm-ui-slider.d.ts +129 -0
  169. package/types/raqm-ui-spinner.d.ts +32 -0
  170. package/types/raqm-ui-switch.d.ts +32 -0
  171. package/types/raqm-ui-table.d.ts +36 -0
  172. package/types/raqm-ui-tabs.d.ts +154 -0
  173. package/types/raqm-ui-textarea.d.ts +6 -0
  174. package/types/raqm-ui-toast.d.ts +190 -0
  175. package/types/raqm-ui-toggle-group.d.ts +167 -0
  176. package/types/raqm-ui-toggle.d.ts +42 -0
  177. package/types/raqm-ui-tooltip.d.ts +207 -0
  178. package/types/raqm-ui.d.ts +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raqm-ui-command.mjs","names":[],"sources":["../../../projects/ui/command/command-context.ts","../../../projects/ui/command/command-score.ts","../../../projects/ui/command/command.component.ts","../../../projects/ui/command/command.component.html","../../../projects/ui/command/command-dialog.component.ts","../../../projects/ui/command/command-dialog.component.html","../../../projects/ui/command/command-input.component.ts","../../../projects/ui/command/command-input.component.html","../../../projects/ui/command/command-parts.component.ts","../../../projects/ui/command/public-api.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\r\nimport type { RaqmCommandComponent } from './command.component';\r\n\r\nexport interface RaqmCommandOption {\r\n readonly id: string;\r\n readonly element: HTMLElement;\r\n readonly disabled: boolean;\r\n readonly checked: Signal<boolean>;\r\n readonly group: string | null;\r\n readonly value: Signal<string>;\r\n readonly title: Signal<string>;\r\n readonly keywords: Signal<readonly string[]>;\r\n setActiveStyles(): void;\r\n setInactiveStyles(): void;\r\n select(): void;\r\n scrollIntoView(): void;\r\n}\r\nexport const RAQM_COMMAND = new InjectionToken<RaqmCommandComponent>('RaqmCommand');\r\nexport const RAQM_COMMAND_GROUP = new InjectionToken<string>('RaqmCommandGroup');\r\n","/** @license\r\n * Typed translation of cmdk/src/command-score.ts:\r\n * https://github.com/dip/cmdk/blob/main/cmdk/src/command-score.ts\r\n *\r\n * MIT License\r\n * Copyright (c) 2022 Paco Coursey\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\nconst SCORE_CONTINUE_MATCH = 1;\r\nconst SCORE_SPACE_WORD_JUMP = 0.9;\r\nconst SCORE_NON_SPACE_WORD_JUMP = 0.8;\r\nconst SCORE_CHARACTER_JUMP = 0.17;\r\nconst SCORE_TRANSPOSITION = 0.1;\r\nconst PENALTY_SKIPPED = 0.999;\r\nconst PENALTY_CASE_MISMATCH = 0.9999;\r\nconst PENALTY_NOT_COMPLETE = 0.99;\r\nconst IS_GAP_REGEXP = /[\\\\/_+.#\"@\\[({&]/;\r\nconst COUNT_GAPS_REGEXP = /[\\\\/_+.#\"@\\[({&]/g;\r\nconst IS_SPACE_REGEXP = /[\\s-]/;\r\nconst COUNT_SPACE_REGEXP = /[\\s-]/g;\r\n\r\nfunction commandScoreInner(\r\n string: string,\r\n abbreviation: string,\r\n lowerString: string,\r\n lowerAbbreviation: string,\r\n stringIndex: number,\r\n abbreviationIndex: number,\r\n memoizedResults: Record<string, number>,\r\n): number {\r\n if (abbreviationIndex === abbreviation.length) {\r\n return stringIndex === string.length ? SCORE_CONTINUE_MATCH : PENALTY_NOT_COMPLETE;\r\n }\r\n const memoizeKey = `${stringIndex},${abbreviationIndex}`;\r\n if (memoizedResults[memoizeKey] !== undefined) return memoizedResults[memoizeKey];\r\n const abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex);\r\n let index = lowerString.indexOf(abbreviationChar, stringIndex);\r\n let highScore = 0;\r\n while (index >= 0) {\r\n let score = commandScoreInner(\r\n string,\r\n abbreviation,\r\n lowerString,\r\n lowerAbbreviation,\r\n index + 1,\r\n abbreviationIndex + 1,\r\n memoizedResults,\r\n );\r\n if (score > highScore) {\r\n if (index === stringIndex) {\r\n score *= SCORE_CONTINUE_MATCH;\r\n } else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) {\r\n score *= SCORE_NON_SPACE_WORD_JUMP;\r\n const wordBreaks = string.slice(stringIndex, index - 1).match(COUNT_GAPS_REGEXP);\r\n if (wordBreaks && stringIndex > 0) score *= Math.pow(PENALTY_SKIPPED, wordBreaks.length);\r\n } else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) {\r\n score *= SCORE_SPACE_WORD_JUMP;\r\n const spaceBreaks = string.slice(stringIndex, index - 1).match(COUNT_SPACE_REGEXP);\r\n if (spaceBreaks && stringIndex > 0) score *= Math.pow(PENALTY_SKIPPED, spaceBreaks.length);\r\n } else {\r\n score *= SCORE_CHARACTER_JUMP;\r\n if (stringIndex > 0) score *= Math.pow(PENALTY_SKIPPED, index - stringIndex);\r\n }\r\n if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex))\r\n score *= PENALTY_CASE_MISMATCH;\r\n }\r\n if (\r\n (score < SCORE_TRANSPOSITION &&\r\n lowerString.charAt(index - 1) === lowerAbbreviation.charAt(abbreviationIndex + 1)) ||\r\n (lowerAbbreviation.charAt(abbreviationIndex + 1) ===\r\n lowerAbbreviation.charAt(abbreviationIndex) &&\r\n lowerString.charAt(index - 1) !== lowerAbbreviation.charAt(abbreviationIndex))\r\n ) {\r\n const transposedScore = commandScoreInner(\r\n string,\r\n abbreviation,\r\n lowerString,\r\n lowerAbbreviation,\r\n index + 1,\r\n abbreviationIndex + 2,\r\n memoizedResults,\r\n );\r\n if (transposedScore * SCORE_TRANSPOSITION > score)\r\n score = transposedScore * SCORE_TRANSPOSITION;\r\n }\r\n if (score > highScore) highScore = score;\r\n index = lowerString.indexOf(abbreviationChar, index + 1);\r\n }\r\n memoizedResults[memoizeKey] = highScore;\r\n return highScore;\r\n}\r\n\r\nexport function commandScore(value: string, search: string, aliases: readonly string[]): number {\r\n const string = aliases.length > 0 ? `${value} ${aliases.join(' ')}` : value;\r\n const format = (input: string): string => input.toLowerCase().replace(COUNT_SPACE_REGEXP, ' ');\r\n return commandScoreInner(string, search, format(string), format(search), 0, 0, {});\r\n}\r\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n afterRenderEffect,\r\n Injector,\r\n booleanAttribute,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n signal,\r\n untracked,\r\n} from '@angular/core';\r\nimport { RAQM_COMMAND, RaqmCommandOption } from './command-context';\r\nimport { commandScore } from './command-score';\r\n\r\nlet nextCommandId = 0;\r\n\r\n/** Inline command palette. Focus stays on its input; active options never receive DOM focus. */\r\n@Component({\r\n selector: 'raqm-command',\r\n templateUrl: './command.component.html',\r\n styleUrl: './command.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-command' },\r\n providers: [{ provide: RAQM_COMMAND, useExisting: RaqmCommandComponent }],\r\n})\r\nexport class RaqmCommandComponent {\r\n /** The application-authored accessible name for the listbox. */\r\n readonly label = input.required<string>();\r\n readonly search = model('');\r\n /** Whether keyboard navigation wraps at the ends; defaults to `false`. */\r\n readonly loop = input(false, { transform: booleanAttribute });\r\n /** Whether search filters and ranks rows; defaults to `true`. */\r\n readonly shouldFilter = input(true, { transform: booleanAttribute });\r\n readonly listId = `raqm-command-${++nextCommandId}-list`;\r\n readonly inputId = `${this.listId}-input`;\r\n readonly items = signal<readonly RaqmCommandOption[]>([]);\r\n readonly activeId = signal<string | null>(null);\r\n readonly listPresent = signal(false);\r\n readonly visibleItems = computed(() => this.items().filter((item) => this.matches(item)));\r\n /** Whether any registered row is checked; switches the list to multi-select. */\r\n readonly hasChecked = computed(() => this.items().some((item) => item.checked()));\r\n private readonly scores = computed(\r\n () =>\r\n new Map(\r\n this.items().map((item) => [\r\n item,\r\n commandScore(\r\n item.value().trim(),\r\n this.search(),\r\n [item.title(), ...item.keywords()].filter(Boolean).map((alias) => alias.trim()),\r\n ),\r\n ]),\r\n ),\r\n );\r\n private readonly rankedItems = computed(() => {\r\n const items = [...this.items()];\r\n if (!this.shouldFilter() || !this.search()) return items;\r\n const scores = this.scores();\r\n const groups = new Map<string, number>();\r\n for (const item of items) {\r\n if (item.group !== null)\r\n groups.set(item.group, Math.max(groups.get(item.group) ?? 0, scores.get(item) ?? 0));\r\n }\r\n const groupOrder = [...groups.keys()].sort((a, b) => groups.get(b)! - groups.get(a)!);\r\n return items.sort((a, b) => {\r\n if (a.group !== b.group) {\r\n if (a.group === null) return -1;\r\n if (b.group === null) return 1;\r\n return groupOrder.indexOf(a.group) - groupOrder.indexOf(b.group);\r\n }\r\n // cmdk re-appends only enabled options when sorting; disabled rows stay\r\n // before those moved options within their original group.\r\n if (a.disabled !== b.disabled) return a.disabled ? -1 : 1;\r\n return (scores.get(b) ?? 0) - (scores.get(a) ?? 0);\r\n });\r\n });\r\n private readonly injector = inject(Injector);\r\n readonly contentInjector = Injector.create({\r\n providers: [{ provide: RAQM_COMMAND, useValue: this }],\r\n parent: this.injector,\r\n });\r\n private readonly manager = new ActiveDescendantKeyManager(this.rankedItems, this.injector)\r\n .withVerticalOrientation()\r\n .withHomeAndEnd()\r\n .skipPredicate((item) => item.disabled || !this.matches(item));\r\n private sequence = 0;\r\n private focusInput: (() => void) | undefined;\r\n private readonly originalChildren = new Map<HTMLElement, readonly ChildNode[]>();\r\n\r\n constructor() {\r\n // Mirror cmdk's DOM sorting so assistive reading order and the key manager\r\n // consume one sequence; restore declaration order when the query clears or filtering is off.\r\n afterRenderEffect(() => {\r\n const items = this.rankedItems();\r\n if (!this.shouldFilter() || !this.search()) {\r\n for (const [parent, children] of this.originalChildren) {\r\n for (const child of children) if (child.parentNode === parent) parent.appendChild(child);\r\n }\r\n this.originalChildren.clear();\r\n return;\r\n }\r\n const remember = (parent: HTMLElement | null): void => {\r\n if (parent && !this.originalChildren.has(parent))\r\n this.originalChildren.set(parent, Array.from(parent.childNodes));\r\n };\r\n const groups = new Set<HTMLElement>();\r\n for (const item of items) {\r\n const parent = item.element.parentElement;\r\n remember(parent);\r\n parent?.appendChild(item.element);\r\n const group = item.element.closest<HTMLElement>('.raqm-command-group');\r\n if (group) {\r\n remember(group.parentElement);\r\n groups.add(group);\r\n }\r\n }\r\n for (const group of groups) group.parentElement?.appendChild(group);\r\n });\r\n effect(() => {\r\n const items = this.rankedItems().filter((item) => this.matches(item) && !item.disabled);\r\n const search = this.search();\r\n untracked(() => {\r\n if (search !== this.lastSearch || !items.some((item) => item.id === this.activeId())) {\r\n this.manager.setActiveItem(items[0] ?? -1);\r\n this.activeId.set(items[0]?.id ?? null);\r\n }\r\n this.lastSearch = search;\r\n });\r\n });\r\n inject(DestroyRef).onDestroy(() => {\r\n this.manager.destroy();\r\n this.contentInjector.destroy();\r\n });\r\n }\r\n private lastSearch = '';\r\n\r\n register(item: RaqmCommandOption): void {\r\n this.items.update((items) => [...items, item]);\r\n }\r\n unregister(item: RaqmCommandOption): void {\r\n this.items.update((items) => items.filter((candidate) => candidate !== item));\r\n }\r\n mintId(): string {\r\n return `${this.listId}-option-${++this.sequence}`;\r\n }\r\n registerInput(focus: () => void): void {\r\n this.focusInput = focus;\r\n }\r\n unregisterInput(): void {\r\n this.focusInput = undefined;\r\n }\r\n matches(item: RaqmCommandOption): boolean {\r\n return !this.shouldFilter() || !this.search() || (this.scores().get(item) ?? 0) > 0;\r\n }\r\n activate(item: RaqmCommandOption): void {\r\n if (item.disabled || !this.matches(item)) return;\r\n this.manager.setActiveItem(item);\r\n this.activeId.set(item.id);\r\n }\r\n select(item: RaqmCommandOption): void {\r\n if (item.disabled || !this.matches(item)) return;\r\n this.activate(item);\r\n this.focusInput?.();\r\n item.select();\r\n }\r\n keydown(event: KeyboardEvent): void {\r\n if (event.isComposing || event.altKey || event.ctrlKey || event.metaKey) return;\r\n if (event.key === 'Enter') {\r\n const item = this.items().find((item) => item.id === this.activeId());\r\n if (item) {\r\n event.preventDefault();\r\n this.select(item);\r\n }\r\n return;\r\n }\r\n if (!['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) return;\r\n this.manager.withWrap(this.loop()).onKeydown(event);\r\n const item = this.manager.activeItem;\r\n this.activeId.set(item?.id ?? null);\r\n item?.scrollIntoView();\r\n }\r\n}\r\n","<ng-content />\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Signal,\r\n booleanAttribute,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RaqmButton } from '@raqm/ui/button';\r\nimport { RaqmDialogBaseComponent } from '@raqm/ui/dialog';\r\nimport { RaqmDialogTitleDirective, RaqmDialogDescriptionDirective } from '@raqm/ui/dialog';\r\nimport { RAQM_DIALOG, RAQM_DIALOG_POLICY, RaqmDialogPolicy } from '@raqm/ui/dialog';\r\nimport { RaqmCommandComponent } from './command.component';\r\n\r\n/** Command modal using Dialog's lifecycle. Project an ng-template[raqm-dialog-content]; a trigger is optional. */\r\n@Component({\r\n selector: 'raqm-command-dialog',\r\n imports: [\r\n NgTemplateOutlet,\r\n RaqmButton,\r\n RaqmCommandComponent,\r\n RaqmDialogTitleDirective,\r\n RaqmDialogDescriptionDirective,\r\n ],\r\n templateUrl: './command-dialog.component.html',\r\n styleUrls: ['../dialog/dialog.component.scss', './command-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: RAQM_DIALOG, useExisting: RaqmCommandDialogComponent },\r\n {\r\n provide: RAQM_DIALOG_POLICY,\r\n useFactory: (): RaqmDialogPolicy => ({\r\n role: 'dialog',\r\n contentClass: 'raqm-command-dialog-content',\r\n paneClass: 'raqm-command-dialog-pane',\r\n touchOpening: signal(false),\r\n dismissOnBackdrop: true,\r\n allowWithoutTrigger: true,\r\n }),\r\n },\r\n ],\r\n})\r\nexport class RaqmCommandDialogComponent extends RaqmDialogBaseComponent {\r\n /** Whether the root renders its own close control; defaults to `false`. */\r\n readonly showCloseButton = input(false, { transform: booleanAttribute });\r\n\r\n readonly closeLabel = input<string | undefined>(undefined);\r\n\r\n readonly title = input.required<string>();\r\n\r\n /** Optional supporting copy under the title. */\r\n readonly description = input('');\r\n\r\n protected readonly closeButtonVisible = this.showCloseButton;\r\n protected readonly closeLabelText: Signal<string | undefined> = this.closeLabel;\r\n}\r\n","<ng-content />\r\n<ng-template #panel>\r\n <div\r\n class=\"raqm-dialog-content raqm-command-dialog-content\"\r\n [attr.dir]=\"panelDir()\"\r\n [class.raqm-dialog-content--entering]=\"entering()\"\r\n [class.raqm-dialog-content--closing]=\"closing()\"\r\n >\r\n <header class=\"raqm-command-dialog-header\">\r\n <h2 raqm-dialog-title>{{ title() }}</h2>\r\n @if (description()) {\r\n <p raqm-dialog-description>{{ description() }}</p>\r\n }\r\n </header>\r\n <raqm-command #command [label]=\"title()\"\r\n ><ng-container\r\n [ngTemplateOutlet]=\"contentTemplate()\"\r\n [ngTemplateOutletInjector]=\"command.contentInjector\"\r\n /></raqm-command>\r\n @if (closeButtonVisible()) {\r\n <button\r\n raqm-button=\"ghost\"\r\n icon-small\r\n class=\"raqm-dialog-close\"\r\n [attr.aria-label]=\"closeLabelText()\"\r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n >\r\n <path d=\"m18 6-12 12M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n }\r\n </div>\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n viewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { RaqmInputGroup } from '@raqm/ui/input-group';\r\nimport { RAQM_COMMAND } from './command-context';\r\n\r\n/** Native search input composed with Input Group, owning the palette's single tab stop. */\r\n@Component({\r\n selector: 'raqm-command-input',\r\n imports: [RaqmInputGroup],\r\n templateUrl: './command-input.component.html',\r\n styleUrl: './command-input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-command-input-wrapper' },\r\n})\r\nexport class RaqmCommandInputComponent {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n readonly placeholder = input('');\r\n readonly label = input.required<string>();\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n private readonly control = viewChild<ElementRef<HTMLInputElement>>('control');\r\n constructor() {\r\n this.command.registerInput(() => this.control()?.nativeElement.focus());\r\n inject(DestroyRef).onDestroy(() => this.command.unregisterInput());\r\n }\r\n protected onInput(event: Event): void {\r\n this.command.search.set((event.target as HTMLInputElement).value);\r\n }\r\n}\r\n","<raqm-input-group class=\"raqm-command-input-group\">\r\n <input\r\n #control\r\n raqm-input-group-control\r\n class=\"raqm-command-input\"\r\n type=\"text\"\r\n role=\"combobox\"\r\n autocomplete=\"off\"\r\n spellcheck=\"false\"\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n [id]=\"command.inputId\"\r\n [attr.aria-label]=\"label()\"\r\n [attr.aria-expanded]=\"command.listPresent()\"\r\n [attr.aria-controls]=\"command.listPresent() ? command.listId : null\"\r\n [attr.aria-activedescendant]=\"command.listPresent() ? command.activeId() : null\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled()\"\r\n [value]=\"command.search()\"\r\n (input)=\"onInput($event)\"\r\n (keydown)=\"command.keydown($event)\"\r\n />\r\n <raqm-input-group-addon>\r\n <svg\r\n class=\"raqm-command-input-icon\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n focusable=\"false\"\r\n >\r\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\r\n <path d=\"m21 21-4.3-4.3\" />\r\n </svg>\r\n </raqm-input-group-addon>\r\n</raqm-input-group>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n OnInit,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n isDevMode,\r\n output,\r\n} from '@angular/core';\r\nimport { RAQM_COMMAND, RAQM_COMMAND_GROUP, RaqmCommandOption } from './command-context';\r\n\r\n/** Scrollable, named result list for the input's combobox. */\r\n@Component({\r\n selector: 'raqm-command-list',\r\n template: '<ng-content />',\r\n styleUrl: './command-parts.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-command-list',\r\n role: 'listbox',\r\n '[id]': 'command.listId',\r\n '[attr.aria-label]': 'label() || command.label()',\r\n '[attr.aria-multiselectable]': 'command.hasChecked() ? \"true\" : null',\r\n },\r\n})\r\nexport class RaqmCommandListComponent {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n readonly label = input('');\r\n constructor() {\r\n this.command.listPresent.set(true);\r\n inject(DestroyRef).onDestroy(() => this.command.listPresent.set(false));\r\n }\r\n}\r\n\r\n/** Empty-results message, including when filtering removes every group. */\r\n@Component({\r\n selector: 'raqm-command-empty',\r\n template: '<ng-content />',\r\n styleUrl: './command-parts.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-command-empty',\r\n role: 'presentation',\r\n '[hidden]': 'command.visibleItems().length !== 0',\r\n },\r\n})\r\nexport class RaqmCommandEmptyComponent {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n}\r\n\r\nlet nextGroupId = 0;\r\n/** Named option group; hides its heading with its last filtered-out item. */\r\n@Component({\r\n selector: 'raqm-command-group',\r\n template:\r\n '@if (heading()) { <div class=\"raqm-command-group-heading\" [id]=\"headingId\">{{ heading() }}</div> }<ng-content />',\r\n styleUrl: './command-parts.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: RAQM_COMMAND_GROUP, useFactory: () => inject(RaqmCommandGroupComponent).id },\r\n ],\r\n host: {\r\n class: 'raqm-command-group',\r\n role: 'group',\r\n '[attr.aria-labelledby]': 'heading() ? headingId : null',\r\n '[attr.aria-label]': 'heading() ? null : label()',\r\n '[hidden]': '!visible()',\r\n },\r\n})\r\nexport class RaqmCommandGroupComponent implements OnInit {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n readonly id = `raqm-command-group-${++nextGroupId}`;\r\n readonly headingId = `${this.id}-heading`;\r\n readonly heading = input('');\r\n readonly label = input('');\r\n protected readonly visible = computed(() =>\r\n this.command.visibleItems().some((item) => item.group === this.id),\r\n );\r\n\r\n ngOnInit(): void {\r\n if (isDevMode() && !this.heading() && !this.label()) {\r\n console.error(\r\n '[raqm-command-group] The group has no accessible name. Provide a `heading` or a `label`.',\r\n );\r\n }\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[raqm-command-separator]',\r\n host: {\r\n class: 'raqm-command-separator',\r\n role: 'presentation',\r\n '[hidden]': '!alwaysRender() && command.search().trim().length > 0',\r\n },\r\n})\r\nexport class RaqmCommandSeparatorDirective {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n readonly alwaysRender = input(false, { transform: booleanAttribute });\r\n}\r\n\r\n@Component({\r\n selector: 'raqm-command-item',\r\n template:\r\n '<ng-content /><svg class=\"raqm-command-item-indicator\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m20 6-11 11-5-5\"/></svg>',\r\n styleUrl: './command-parts.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-command-item',\r\n role: 'option',\r\n '[id]': 'id',\r\n '[hidden]': '!command.matches(this)',\r\n '[attr.aria-label]': 'title() || value()',\r\n '[attr.aria-checked]': 'command.hasChecked() ? (checked() ? \"true\" : \"false\") : null',\r\n '[attr.aria-disabled]': 'disabled ? \"true\" : null',\r\n '[attr.data-raqm-selected]': 'command.activeId() === id ? \"true\" : null',\r\n '[attr.data-raqm-disabled]': 'disabled ? \"true\" : null',\r\n '[attr.data-raqm-checked]': 'checked() ? \"true\" : null',\r\n '(pointermove)': 'onPointerMove($event)',\r\n '(mousedown)': '$event.preventDefault()',\r\n '(click)': 'command.select(this)',\r\n },\r\n})\r\nexport class RaqmCommandItemComponent implements RaqmCommandOption, OnInit {\r\n protected readonly command = inject(RAQM_COMMAND);\r\n private readonly host = inject(ElementRef<HTMLElement>);\r\n readonly group = inject(RAQM_COMMAND_GROUP, { optional: true });\r\n readonly id = this.command.mintId();\r\n readonly value = input.required<string>();\r\n readonly title = input('');\r\n readonly keywords = input<readonly string[]>([]);\r\n readonly disabledValue = input(false, {\r\n alias: 'disabled',\r\n transform: booleanAttribute,\r\n });\r\n readonly checked = input(false, { transform: booleanAttribute });\r\n readonly selected = output<string>();\r\n get disabled(): boolean {\r\n return this.disabledValue();\r\n }\r\n get element(): HTMLElement {\r\n return this.host.nativeElement;\r\n }\r\n constructor() {\r\n inject(DestroyRef).onDestroy(() => this.command.unregister(this));\r\n }\r\n ngOnInit(): void {\r\n this.command.register(this);\r\n }\r\n setActiveStyles(): void {\r\n this.command.activeId.set(this.id);\r\n }\r\n setInactiveStyles(): void {\r\n if (this.command.activeId() === this.id) this.command.activeId.set(null);\r\n }\r\n select(): void {\r\n this.selected.emit(this.value());\r\n }\r\n scrollIntoView(): void {\r\n this.host.nativeElement.scrollIntoView({ block: 'nearest' });\r\n }\r\n protected onPointerMove(event: PointerEvent): void {\r\n if (event.pointerType !== 'touch') this.command.activate(this);\r\n }\r\n}\r\n\r\n/** Display-only shortcut. This never registers a global keyboard binding. */\r\n@Directive({\r\n selector: '[raqm-command-shortcut]',\r\n host: { class: 'raqm-command-shortcut', 'aria-hidden': 'true' },\r\n})\r\nexport class RaqmCommandShortcutDirective {}\r\n","// Public API for `@raqm/ui/command`; the root entry point re-exports these symbols.\r\nimport { RaqmCommandComponent } from './command.component';\r\nimport { RaqmCommandDialogComponent } from './command-dialog.component';\r\nimport { RaqmCommandInputComponent } from './command-input.component';\r\nimport {\r\n RaqmCommandEmptyComponent,\r\n RaqmCommandGroupComponent,\r\n RaqmCommandItemComponent,\r\n RaqmCommandListComponent,\r\n RaqmCommandSeparatorDirective,\r\n RaqmCommandShortcutDirective,\r\n} from './command-parts.component';\r\n\r\nexport {\r\n RaqmCommandComponent,\r\n RaqmCommandDialogComponent,\r\n RaqmCommandInputComponent,\r\n RaqmCommandListComponent,\r\n RaqmCommandEmptyComponent,\r\n RaqmCommandGroupComponent,\r\n RaqmCommandSeparatorDirective,\r\n RaqmCommandItemComponent,\r\n RaqmCommandShortcutDirective,\r\n};\r\n\r\nexport const RaqmCommand = [\r\n RaqmCommandComponent,\r\n RaqmCommandDialogComponent,\r\n RaqmCommandInputComponent,\r\n RaqmCommandListComponent,\r\n RaqmCommandEmptyComponent,\r\n RaqmCommandGroupComponent,\r\n RaqmCommandSeparatorDirective,\r\n RaqmCommandItemComponent,\r\n RaqmCommandShortcutDirective,\r\n] as const;\r\n"],"mappings":"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"}