@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-questionnaire.mjs","names":[],"sources":["../../../projects/ui/questionnaire/questionnaire.ts","../../../projects/ui/questionnaire/questionnaire.html","../../../projects/ui/questionnaire/questionnaire-parts.ts","../../../projects/ui/questionnaire/public-api.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ChangeDetectorRef,\r\n afterRenderEffect,\r\n booleanAttribute,\r\n ElementRef,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n isDevMode,\r\n model,\r\n linkedSignal,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { _IdGenerator } from '@angular/cdk/a11y';\r\n\r\nexport interface RaqmQuestionnaireChoice {\r\n value: string;\r\n label: string;\r\n description?: string;\r\n}\r\nexport interface RaqmQuestionnaireItem {\r\n name: string;\r\n title: string;\r\n description?: string;\r\n required?: boolean;\r\n multiple?: boolean;\r\n choices: readonly RaqmQuestionnaireChoice[];\r\n input?: { label: string; placeholder?: string };\r\n visible?: (answers: RaqmQuestionnaireAnswers) => boolean;\r\n validate?: (\r\n answers: readonly string[],\r\n allAnswers: RaqmQuestionnaireAnswers,\r\n ) => string | undefined;\r\n}\r\nexport type RaqmQuestionnaireAnswers = Record<string, string[]>;\r\n\r\n@Component({\r\n selector: 'raqm-questionnaire',\r\n templateUrl: './questionnaire.html',\r\n styleUrl: './questionnaire.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'raqm-questionnaire' },\r\n})\r\nexport class RaqmQuestionnaireComponent {\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly changeDetector = inject(ChangeDetectorRef);\r\n private readonly pendingFocus = signal<'item' | 'invalid' | null>(null);\r\n constructor() {\r\n afterRenderEffect(() => {\r\n const target = this.pendingFocus();\r\n if (!target) return;\r\n this.host.nativeElement\r\n .querySelector<HTMLElement>(\r\n target === 'invalid'\r\n ? '.raqm-questionnaire-item:not([hidden]) input:not(:disabled)'\r\n : '.raqm-questionnaire-item:not([hidden])',\r\n )\r\n ?.focus();\r\n this.pendingFocus.set(null);\r\n });\r\n effect(() => {\r\n if (isDevMode() && !this.composed() && this.current() && !this.progressLabel()) {\r\n console.error(\r\n '[raqm-questionnaire] The progressbar has no accessible name. Provide `progressLabel`.',\r\n );\r\n }\r\n });\r\n }\r\n readonly id = inject(_IdGenerator).getId('raqm-questionnaire-');\r\n readonly items = input.required<readonly RaqmQuestionnaireItem[]>();\r\n readonly submitted = output<RaqmQuestionnaireAnswers>();\r\n readonly answers = model<RaqmQuestionnaireAnswers>({});\r\n readonly currentItem = model<string | undefined>(undefined);\r\n readonly shortcuts = input<'none' | 'letters' | 'numbers'>('none');\r\n readonly composed = input(false, { transform: booleanAttribute });\r\n /** Copy for the built-in navigation; application-supplied. */\r\n readonly labels = input.required<{\r\n previous: string;\r\n skip: string;\r\n next: string;\r\n submit: string;\r\n }>();\r\n /** Required-item error message; application-supplied. */\r\n readonly requiredMessage = input<string | undefined>(undefined);\r\n /** Accessible name of the default mode's progressbar. */\r\n readonly progressLabel = input<string | undefined>(undefined);\r\n protected readonly index = signal(0);\r\n readonly freeformValues = linkedSignal(() => {\r\n const values: Record<string, string> = {};\r\n for (const item of this.items()) {\r\n if (!item.input) continue;\r\n const choices = new Set(item.choices.map((choice) => choice.value));\r\n values[item.name] = this.answers()[item.name]?.find((answer) => !choices.has(answer)) ?? '';\r\n }\r\n return values;\r\n });\r\n readonly error = signal('');\r\n /** Whether the current item failed validation, including a required item with no message. */\r\n readonly invalid = signal(false);\r\n readonly visibleItems = computed(() =>\r\n this.items().filter((item) => item.visible?.(this.answers()) !== false),\r\n );\r\n readonly current = computed(\r\n () =>\r\n this.visibleItems().find((item) => item.name === this.currentItem()) ??\r\n this.visibleItems()[this.index()] ??\r\n this.visibleItems()[0],\r\n );\r\n readonly position = computed(() => Math.max(0, this.visibleItems().indexOf(this.current())));\r\n descriptionId(name: string): string {\r\n return `${this.id}-${this.items().findIndex((item) => item.name === name)}-description`;\r\n }\r\n errorId(name: string): string {\r\n return `${this.id}-${this.items().findIndex((item) => item.name === name)}-error`;\r\n }\r\n describedBy(name: string, hasDescription: boolean, hasError = false): string | null {\r\n const ids = [\r\n hasDescription ? this.descriptionId(name) : '',\r\n hasError ? this.errorId(name) : '',\r\n ].filter(Boolean);\r\n return ids.length ? ids.join(' ') : null;\r\n }\r\n selected(value: string): boolean {\r\n return this.answers()[this.current().name]?.includes(value) ?? false;\r\n }\r\n shortcut(index: number): string {\r\n return this.shortcuts() === 'letters' ? String.fromCharCode(65 + index) : String(index + 1);\r\n }\r\n onKey(event: KeyboardEvent): void {\r\n if (!this.current()) return;\r\n if (\r\n this.shortcuts() === 'none' ||\r\n event.altKey ||\r\n event.ctrlKey ||\r\n event.metaKey ||\r\n event.isComposing\r\n )\r\n return;\r\n const target = event.target as HTMLElement;\r\n if (target.isContentEditable || (target instanceof HTMLInputElement && target.type === 'text'))\r\n return;\r\n const index = this.current().choices.findIndex(\r\n (_, i) => this.shortcut(i).toLowerCase() === event.key.toLowerCase(),\r\n );\r\n if (index < 0) return;\r\n event.preventDefault();\r\n const choice = this.current().choices[index];\r\n this.choose(choice.value, this.current().multiple ? !this.selected(choice.value) : true);\r\n this.host.nativeElement\r\n .querySelectorAll<HTMLInputElement>(\r\n '.raqm-questionnaire-item:not([hidden]) .raqm-questionnaire-choices input[type=radio], .raqm-questionnaire-item:not([hidden]) .raqm-questionnaire-choices input[type=checkbox]',\r\n )\r\n [index]?.focus();\r\n }\r\n choose(value: string, checked: boolean): void {\r\n const item = this.current();\r\n const current = this.answers()[item.name] ?? [];\r\n const next = item.multiple\r\n ? checked\r\n ? [...current, value]\r\n : current.filter((v) => v !== value)\r\n : [value];\r\n this.answers.update((a) => ({ ...a, [item.name]: next }));\r\n if (!item.multiple) this.freeformValues.update((values) => ({ ...values, [item.name]: '' }));\r\n this.error.set('');\r\n this.invalid.set(false);\r\n }\r\n freeform(value: string): void {\r\n const item = this.current();\r\n const previous = this.freeformValues()[item.name];\r\n this.freeformValues.update((values) => ({ ...values, [item.name]: value }));\r\n this.answers.update((answers) => {\r\n const choices = item.multiple\r\n ? (answers[item.name] ?? []).filter((answer) => answer !== previous)\r\n : [];\r\n return { ...answers, [item.name]: value.trim() ? [...choices, value] : choices };\r\n });\r\n this.error.set('');\r\n this.invalid.set(false);\r\n }\r\n previous(): void {\r\n if (!this.visibleItems().length) return;\r\n const index = Math.max(0, this.position() - 1);\r\n this.index.set(index);\r\n this.currentItem.set(this.visibleItems()[index]?.name);\r\n this.error.set('');\r\n this.invalid.set(false);\r\n this.focusCurrent();\r\n }\r\n private focusCurrent(validation = false): void {\r\n this.changeDetector.detectChanges();\r\n if (!validation) {\r\n this.host.nativeElement\r\n .querySelector<HTMLElement>('.raqm-questionnaire-item:not([hidden])')\r\n ?.focus();\r\n }\r\n this.pendingFocus.set(validation ? 'invalid' : 'item');\r\n }\r\n next(skip = false): void {\r\n const item = this.current();\r\n if (!item) return;\r\n const answer = this.answers()[item.name] ?? [];\r\n const required = !!item.required && !answer.length;\r\n let message: string | undefined;\r\n if (!skip || item.required) {\r\n if (required) {\r\n message = this.requiredMessage();\r\n if (!message && isDevMode()) {\r\n console.error(\r\n '[raqm-questionnaire] The required item has no error message. Provide `requiredMessage`.',\r\n );\r\n }\r\n } else {\r\n message = item.validate?.(answer, this.answers());\r\n }\r\n }\r\n if (required || message) {\r\n this.error.set(message ?? '');\r\n this.invalid.set(true);\r\n this.focusCurrent(true);\r\n return;\r\n }\r\n const remaining = this.visibleItems()\r\n .slice(this.position() + 1)\r\n .map((entry) => entry.name);\r\n if (skip && !item.required) {\r\n this.answers.update((a) => ({ ...a, [item.name]: [] }));\r\n this.freeformValues.update((values) => ({ ...values, [item.name]: '' }));\r\n }\r\n const visible = this.visibleItems();\r\n const nextName = remaining.find((name) => visible.some((entry) => entry.name === name));\r\n const index = nextName ? visible.findIndex((entry) => entry.name === nextName) : -1;\r\n if (index < 0) this.submitted.emit(this.answers());\r\n else {\r\n this.index.set(index);\r\n this.currentItem.set(this.visibleItems()[index]?.name);\r\n this.focusCurrent();\r\n }\r\n this.error.set('');\r\n this.invalid.set(false);\r\n }\r\n}\r\n","@if (composed()) {\r\n <ng-content />\r\n} @else if (current(); as item) {\r\n <p\r\n class=\"raqm-questionnaire-progress\"\r\n role=\"progressbar\"\r\n [attr.aria-label]=\"progressLabel()\"\r\n aria-valuemin=\"0\"\r\n [attr.aria-valuemax]=\"visibleItems().length || null\"\r\n [attr.aria-valuenow]=\"visibleItems().length ? position() + 1 : 0\"\r\n >\r\n {{ visibleItems().length ? position() + 1 : 0 }} / {{ visibleItems().length }}\r\n </p>\r\n <fieldset\r\n class=\"raqm-questionnaire-item\"\r\n tabindex=\"-1\"\r\n [attr.aria-describedby]=\"describedBy(item.name, !!item.description, !!error())\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n (keydown)=\"onKey($event)\"\r\n >\r\n <legend>{{ item.title }}</legend>\r\n @if (item.description) {\r\n <p [id]=\"descriptionId(item.name)\">{{ item.description }}</p>\r\n }\r\n <div class=\"raqm-questionnaire-choices\">\r\n @for (choice of item.choices; track choice.value; let index = $index) {\r\n <label\r\n ><input\r\n [type]=\"item.multiple ? 'checkbox' : 'radio'\"\r\n [name]=\"item.name\"\r\n [checked]=\"selected(choice.value)\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n (change)=\"choose(choice.value, $any($event.target).checked)\"\r\n /><span\r\n >{{ choice.label }}\r\n @if (choice.description) {\r\n <small>{{ choice.description }}</small>\r\n }\r\n </span>\r\n @if (shortcuts() !== 'none') {\r\n <kbd aria-hidden=\"true\">{{ shortcut(index) }}</kbd>\r\n }\r\n </label>\r\n }\r\n @if (item.input; as field) {\r\n <input\r\n type=\"text\"\r\n [attr.aria-label]=\"field.label\"\r\n [placeholder]=\"field.placeholder ?? ''\"\r\n [value]=\"freeformValues()[item.name] ?? ''\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n (input)=\"freeform($any($event.target).value)\"\r\n />\r\n }\r\n </div>\r\n @if (error()) {\r\n <p [id]=\"errorId(item.name)\" role=\"alert\">{{ error() }}</p>\r\n }\r\n </fieldset>\r\n <div class=\"raqm-questionnaire-actions\">\r\n <button\r\n type=\"button\"\r\n class=\"raqm-questionnaire-actions__previous\"\r\n (click)=\"previous()\"\r\n [disabled]=\"position() === 0\"\r\n >\r\n {{ labels().previous }}\r\n </button>\r\n @if (!item.required && position() < visibleItems().length - 1) {\r\n <button type=\"button\" (click)=\"next(true)\">{{ labels().skip }}</button>\r\n }\r\n <button type=\"button\" (click)=\"next()\">\r\n {{ position() === visibleItems().length - 1 ? labels().submit : labels().next }}\r\n </button>\r\n </div>\r\n}\r\n","import {\r\n Component,\r\n Directive,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n booleanAttribute,\r\n computed,\r\n inject,\r\n input,\r\n contentChild,\r\n} from '@angular/core';\r\nimport { RaqmQuestionnaireComponent } from './questionnaire';\r\n\r\n/** Progress part; the application names it with `aria-label` on the host. */\r\n@Component({\r\n selector: 'raqm-questionnaire-progress',\r\n template:\r\n '{{ root.visibleItems().length ? root.position() + 1 : 0 }} / {{ root.visibleItems().length }}',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'raqm-questionnaire-progress',\r\n role: 'progressbar',\r\n 'aria-valuemin': '0',\r\n '[attr.aria-valuemax]': 'root.visibleItems().length || null',\r\n '[attr.aria-valuenow]': 'root.visibleItems().length ? root.position() + 1 : 0',\r\n },\r\n})\r\nexport class RaqmQuestionnaireProgressComponent {\r\n protected readonly root = inject(RaqmQuestionnaireComponent);\r\n}\r\n\r\n@Directive({\r\n selector: 'fieldset[raqm-questionnaire-item]',\r\n host: {\r\n class: 'raqm-questionnaire-item',\r\n tabindex: '-1',\r\n '[hidden]': '!active()',\r\n '[attr.inert]': 'active() ? null : \"\"',\r\n '[attr.aria-invalid]': 'active() && (invalid() || root.invalid()) ? \"true\" : null',\r\n '[attr.aria-describedby]':\r\n 'root.describedBy(name(), !!description(), active() && !!errorMessage())',\r\n '(keydown)': 'onKey($event)',\r\n },\r\n})\r\nexport class RaqmQuestionnaireItemDirective {\r\n readonly root = inject(RaqmQuestionnaireComponent);\r\n readonly name = input.required<string>();\r\n /** External cross-field validation state, combined with the root's per-item check. */\r\n readonly invalid = input(false, { transform: booleanAttribute });\r\n readonly active = computed(() => this.root.current()?.name === this.name());\r\n readonly description = contentChild(RaqmQuestionnaireDescriptionDirective, { descendants: true });\r\n readonly errorPart = contentChild(RaqmQuestionnaireErrorComponent);\r\n readonly errorMessage = computed(() => this.root.error() || this.errorPart()?.message());\r\n protected onKey(event: KeyboardEvent): void {\r\n if (this.active()) this.root.onKey(event);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[raqm-questionnaire-title]',\r\n host: { class: 'raqm-questionnaire-title' },\r\n})\r\nexport class RaqmQuestionnaireTitleDirective {}\r\n@Directive({\r\n selector: '[raqm-questionnaire-description]',\r\n host: { '[id]': 'item.root.descriptionId(item.name())' },\r\n})\r\nexport class RaqmQuestionnaireDescriptionDirective {\r\n protected readonly item = inject(RaqmQuestionnaireItemDirective);\r\n}\r\n@Directive({\r\n selector: '[raqm-questionnaire-choices]',\r\n host: { class: 'raqm-questionnaire-choices' },\r\n})\r\nexport class RaqmQuestionnaireChoicesDirective {}\r\n@Directive({\r\n selector: 'input[raqm-questionnaire-choice]',\r\n host: {\r\n '[attr.name]': 'item.name()',\r\n '[attr.type]': 'definition()?.multiple ? \"checkbox\" : \"radio\"',\r\n '[checked]': 'item.root.answers()[item.name()]?.includes(value()) ?? false',\r\n '[attr.aria-invalid]': 'item.active() && item.root.invalid() ? \"true\" : null',\r\n '(change)': 'onChange($event)',\r\n },\r\n})\r\nexport class RaqmQuestionnaireChoiceDirective {\r\n protected readonly item = inject(RaqmQuestionnaireItemDirective);\r\n protected readonly definition = computed(() =>\r\n this.item.root.items().find((entry) => entry.name === this.item.name()),\r\n );\r\n readonly value = input.required<string>();\r\n protected onChange(event: Event): void {\r\n this.item.root.choose(this.value(), (event.target as HTMLInputElement).checked);\r\n }\r\n}\r\n@Directive({\r\n selector: 'input[raqm-questionnaire-input]',\r\n host: {\r\n '[value]': 'item.root.freeformValues()[item.name()] ?? \"\"',\r\n '[attr.aria-invalid]': 'item.active() && item.root.invalid() ? \"true\" : null',\r\n '(input)': 'onInput($event)',\r\n },\r\n})\r\nexport class RaqmQuestionnaireInputDirective {\r\n protected readonly item = inject(RaqmQuestionnaireItemDirective);\r\n protected onInput(event: Event): void {\r\n this.item.root.freeform((event.target as HTMLInputElement).value);\r\n }\r\n}\r\n@Component({\r\n selector: 'raqm-questionnaire-error',\r\n template:\r\n '@if (item.active() && (message() || item.root.error())) { <p [id]=\"item.root.errorId(item.name())\" role=\"alert\">{{ message() || item.root.error() }}</p> }',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RaqmQuestionnaireErrorComponent {\r\n protected readonly item = inject(RaqmQuestionnaireItemDirective);\r\n /** External validation message; falls back to the root's own item error. */\r\n readonly message = input<string>();\r\n}\r\n@Directive({\r\n selector: '[raqm-questionnaire-actions]',\r\n host: { class: 'raqm-questionnaire-actions' },\r\n})\r\nexport class RaqmQuestionnaireActionsDirective {}\r\n@Directive({\r\n selector: 'button[raqm-questionnaire-previous]',\r\n host: { '[disabled]': 'root.position() === 0', '(click)': 'root.previous()' },\r\n})\r\nexport class RaqmQuestionnairePreviousDirective {\r\n protected readonly root = inject(RaqmQuestionnaireComponent);\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n@Directive({\r\n selector: 'button[raqm-questionnaire-skip]',\r\n host: {\r\n '[hidden]': 'root.current()?.required || root.position() === root.visibleItems().length - 1',\r\n '(click)': 'root.next(true)',\r\n },\r\n})\r\nexport class RaqmQuestionnaireSkipDirective {\r\n protected readonly root = inject(RaqmQuestionnaireComponent);\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n@Directive({\r\n selector: 'button[raqm-questionnaire-next]',\r\n host: {\r\n '[hidden]': 'root.position() === root.visibleItems().length - 1',\r\n '(click)': 'root.next()',\r\n },\r\n})\r\nexport class RaqmQuestionnaireNextDirective {\r\n protected readonly root = inject(RaqmQuestionnaireComponent);\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n@Directive({\r\n selector: 'button[raqm-questionnaire-submit]',\r\n host: {\r\n '[hidden]': 'root.position() !== root.visibleItems().length - 1',\r\n '(click)': 'root.next()',\r\n },\r\n})\r\nexport class RaqmQuestionnaireSubmitDirective {\r\n protected readonly root = inject(RaqmQuestionnaireComponent);\r\n constructor() {\r\n const host = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\r\n if (!host.hasAttribute('type')) host.setAttribute('type', 'button');\r\n }\r\n}\r\n","import { RaqmQuestionnaireComponent } from './questionnaire';\r\nimport {\r\n RaqmQuestionnaireProgressComponent,\r\n RaqmQuestionnaireItemDirective,\r\n RaqmQuestionnaireTitleDirective,\r\n RaqmQuestionnaireDescriptionDirective,\r\n RaqmQuestionnaireChoicesDirective,\r\n RaqmQuestionnaireChoiceDirective,\r\n RaqmQuestionnaireInputDirective,\r\n RaqmQuestionnaireErrorComponent,\r\n RaqmQuestionnaireActionsDirective,\r\n RaqmQuestionnairePreviousDirective,\r\n RaqmQuestionnaireSkipDirective,\r\n RaqmQuestionnaireNextDirective,\r\n RaqmQuestionnaireSubmitDirective,\r\n} from './questionnaire-parts';\r\n\r\nexport { RaqmQuestionnaireComponent };\r\nexport * from './questionnaire-parts';\r\nexport type {\r\n RaqmQuestionnaireChoice,\r\n RaqmQuestionnaireItem,\r\n RaqmQuestionnaireAnswers,\r\n} from './questionnaire';\r\n\r\nexport const RaqmQuestionnaire = [\r\n RaqmQuestionnaireComponent,\r\n RaqmQuestionnaireProgressComponent,\r\n RaqmQuestionnaireItemDirective,\r\n RaqmQuestionnaireTitleDirective,\r\n RaqmQuestionnaireDescriptionDirective,\r\n RaqmQuestionnaireChoicesDirective,\r\n RaqmQuestionnaireChoiceDirective,\r\n RaqmQuestionnaireInputDirective,\r\n RaqmQuestionnaireErrorComponent,\r\n RaqmQuestionnaireActionsDirective,\r\n RaqmQuestionnairePreviousDirective,\r\n RaqmQuestionnaireSkipDirective,\r\n RaqmQuestionnaireNextDirective,\r\n RaqmQuestionnaireSubmitDirective,\r\n] as const;\r\n"],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import * as i0 from "@angular/core";
2
+ import { Directive, ElementRef, effect, forwardRef, inject, input } from "@angular/core";
3
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
4
+ var RaqmRadioDirective = class RaqmRadioDirective {
5
+ host = inject(ElementRef);
6
+ onChange = () => {};
7
+ onTouched = () => {};
8
+ model = void 0;
9
+ hasModel = false;
10
+ disabledStateFired = false;
11
+ value = input("on", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
12
+ constructor() {
13
+ const element = this.host.nativeElement;
14
+ if (!element.hasAttribute("type")) element.setAttribute("type", "radio");
15
+ effect(() => {
16
+ const value = this.value();
17
+ if (this.hasModel) element.checked = this.model === value;
18
+ });
19
+ }
20
+ writeValue(value) {
21
+ this.model = value;
22
+ this.hasModel = true;
23
+ this.host.nativeElement.checked = value === this.value();
24
+ }
25
+ registerOnChange(fn) {
26
+ this.onChange = fn;
27
+ }
28
+ registerOnTouched(fn) {
29
+ this.onTouched = fn;
30
+ }
31
+ setDisabledState(isDisabled) {
32
+ if (this.disabledStateFired || isDisabled) this.host.nativeElement.disabled = isDisabled;
33
+ this.disabledStateFired = true;
34
+ }
35
+ handleChange() {
36
+ this.onChange(this.value());
37
+ }
38
+ handleBlur() {
39
+ this.onTouched();
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({
42
+ minVersion: "12.0.0",
43
+ version: "22.2.2",
44
+ ngImport: i0,
45
+ type: RaqmRadioDirective,
46
+ deps: [],
47
+ target: i0.ɵɵFactoryTarget.Directive
48
+ });
49
+ static ɵdir = i0.ɵɵngDeclareDirective({
50
+ minVersion: "17.1.0",
51
+ version: "22.2.2",
52
+ type: RaqmRadioDirective,
53
+ isStandalone: true,
54
+ selector: "input[raqm-radio]",
55
+ inputs: { value: {
56
+ classPropertyName: "value",
57
+ publicName: "value",
58
+ isSignal: true,
59
+ isRequired: false,
60
+ transformFunction: null
61
+ } },
62
+ host: {
63
+ listeners: {
64
+ "change": "handleChange()",
65
+ "blur": "handleBlur()"
66
+ },
67
+ classAttribute: "raqm-radio"
68
+ },
69
+ providers: [{
70
+ provide: NG_VALUE_ACCESSOR,
71
+ useExisting: forwardRef(() => RaqmRadioDirective),
72
+ multi: true
73
+ }],
74
+ ngImport: i0
75
+ });
76
+ };
77
+ i0.ɵɵngDeclareClassMetadata({
78
+ minVersion: "12.0.0",
79
+ version: "22.2.2",
80
+ ngImport: i0,
81
+ type: RaqmRadioDirective,
82
+ decorators: [{
83
+ type: Directive,
84
+ args: [{
85
+ selector: "input[raqm-radio]",
86
+ host: {
87
+ class: "raqm-radio",
88
+ "(change)": "handleChange()",
89
+ "(blur)": "handleBlur()"
90
+ },
91
+ providers: [{
92
+ provide: NG_VALUE_ACCESSOR,
93
+ useExisting: forwardRef(() => RaqmRadioDirective),
94
+ multi: true
95
+ }]
96
+ }]
97
+ }],
98
+ ctorParameters: () => [],
99
+ propDecorators: { value: [{
100
+ type: i0.Input,
101
+ args: [{
102
+ isSignal: true,
103
+ alias: "value",
104
+ required: false
105
+ }]
106
+ }] }
107
+ });
108
+ var RaqmRadioGroupDirective = class RaqmRadioGroupDirective {
109
+ host = inject(ElementRef);
110
+ role = this.host.nativeElement.tagName === "FIELDSET" ? null : "radiogroup";
111
+ static ɵfac = i0.ɵɵngDeclareFactory({
112
+ minVersion: "12.0.0",
113
+ version: "22.2.2",
114
+ ngImport: i0,
115
+ type: RaqmRadioGroupDirective,
116
+ deps: [],
117
+ target: i0.ɵɵFactoryTarget.Directive
118
+ });
119
+ static ɵdir = i0.ɵɵngDeclareDirective({
120
+ minVersion: "14.0.0",
121
+ version: "22.2.2",
122
+ type: RaqmRadioGroupDirective,
123
+ isStandalone: true,
124
+ selector: "[raqm-radio-group]",
125
+ host: {
126
+ properties: { "attr.role": "role" },
127
+ classAttribute: "raqm-radio-group"
128
+ },
129
+ ngImport: i0
130
+ });
131
+ };
132
+ i0.ɵɵngDeclareClassMetadata({
133
+ minVersion: "12.0.0",
134
+ version: "22.2.2",
135
+ ngImport: i0,
136
+ type: RaqmRadioGroupDirective,
137
+ decorators: [{
138
+ type: Directive,
139
+ args: [{
140
+ selector: "[raqm-radio-group]",
141
+ host: {
142
+ class: "raqm-radio-group",
143
+ "[attr.role]": "role"
144
+ }
145
+ }]
146
+ }]
147
+ });
148
+ const RaqmRadioGroup = [RaqmRadioGroupDirective, RaqmRadioDirective];
149
+ export { RaqmRadioDirective, RaqmRadioGroup, RaqmRadioGroupDirective };
150
+
151
+ //# sourceMappingURL=raqm-ui-radio-group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raqm-ui-radio-group.mjs","names":[],"sources":["../../../projects/ui/radio-group/radio-group.ts","../../../projects/ui/radio-group/public-api.ts"],"sourcesContent":["import { Directive, ElementRef, effect, forwardRef, inject, input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n/**\r\n * Attaches the `raqm-radio` class to a native `<input>` and sets `type=\"radio\"` when absent.\r\n *\r\n * @remarks\r\n * `(change)` emits the directive's `value`, so non-string bindings keep working as with Angular's\r\n * built-in radio accessor; native `name` grouping and `required` stay authoritative.\r\n */\r\n@Directive({\r\n selector: 'input[raqm-radio]',\r\n host: {\r\n class: 'raqm-radio',\r\n '(change)': 'handleChange()',\r\n '(blur)': 'handleBlur()',\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RaqmRadioDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RaqmRadioDirective implements ControlValueAccessor {\r\n private readonly host = inject<ElementRef<HTMLInputElement>>(ElementRef);\r\n private onChange: (value: unknown) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n private model: unknown = undefined;\r\n private hasModel = false;\r\n private disabledStateFired = false;\r\n\r\n /** The value this radio contributes to the group; the native default is `on`. */\r\n readonly value = input<unknown>('on');\r\n\r\n constructor() {\r\n const element = this.host.nativeElement;\r\n if (!element.hasAttribute('type')) {\r\n element.setAttribute('type', 'radio');\r\n }\r\n // Mirrors Angular's radio accessor: a changed `value` re-applies the checked state immediately.\r\n effect(() => {\r\n const value = this.value();\r\n if (this.hasModel) {\r\n element.checked = this.model === value;\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n this.model = value;\r\n this.hasModel = true;\r\n this.host.nativeElement.checked = value === this.value();\r\n }\r\n\r\n registerOnChange(fn: (value: unknown) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n // The first Forms pass always reports `false`; a static `disabled` attribute is only erased\r\n // once the control actually becomes disabled.\r\n if (this.disabledStateFired || isDisabled) {\r\n this.host.nativeElement.disabled = isDisabled;\r\n }\r\n this.disabledStateFired = true;\r\n }\r\n\r\n protected handleChange(): void {\r\n this.onChange(this.value());\r\n }\r\n\r\n protected handleBlur(): void {\r\n this.onTouched();\r\n }\r\n}\r\n\r\n/**\r\n * Attaches `raqm-radio-group` and gives non-fieldset hosts `role=\"radiogroup\"`.\r\n *\r\n * @remarks\r\n * A `fieldset` keeps its native grouping and gets no role; grouping, focus and keyboard stay\r\n * browser-owned, and the accessible name is application-owned.\r\n */\r\n@Directive({\r\n selector: '[raqm-radio-group]',\r\n host: {\r\n class: 'raqm-radio-group',\r\n // A fieldset already carries native grouping semantics.\r\n '[attr.role]': 'role',\r\n },\r\n})\r\nexport class RaqmRadioGroupDirective {\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n // Read once from the host tag: a native fieldset needs no `role` imitation.\r\n protected readonly role = this.host.nativeElement.tagName === 'FIELDSET' ? null : 'radiogroup';\r\n}\r\n","// Public API for `@raqm/ui/radio-group`.\r\nimport { RaqmRadioDirective, RaqmRadioGroupDirective } from './radio-group';\r\n\r\nexport { RaqmRadioDirective, RaqmRadioGroupDirective };\r\n\r\n// The family imports as `imports: [RaqmRadioGroup]`.\r\nexport const RaqmRadioGroup = [RaqmRadioGroupDirective, RaqmRadioDirective] as const;\r\n"],"mappings":";;;AAyBA,IAAa,qBAAb,MAAa,mBAAkB;CACZ,OAAO,OAAqC,UAAU;CAC/D,iBAA0C,CAAE;CAC5C,kBAA6B,CAAE;CAC/B,QAAiB;CACjB,WAAW;CACX,qBAAqB;CAGpB,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAErC,cAAA;EACE,MAAM,UAAU,KAAK,KAAK;EAC1B,IAAI,CAAC,QAAQ,aAAa,MAAM,GAC9B,QAAQ,aAAa,QAAQ,OAAO;EAGtC,aAAY;GACV,MAAM,QAAQ,KAAK,MAAK;GACxB,IAAI,KAAK,UACP,QAAQ,UAAU,KAAK,UAAU;EAErC,CAAC;CACH;CAEA,WAAW,OAAc;EACvB,KAAK,QAAQ;EACb,KAAK,WAAW;EAChB,KAAK,KAAK,cAAc,UAAU,UAAU,KAAK,MAAK;CACxD;CAEA,iBAAiB,IAA4B;EAC3C,KAAK,WAAW;CAClB;CAEA,kBAAkB,IAAc;EAC9B,KAAK,YAAY;CACnB;CAEA,iBAAiB,YAAmB;EAGlC,IAAI,KAAK,sBAAsB,YAC7B,KAAK,KAAK,cAAc,WAAW;EAErC,KAAK,qBAAqB;CAC5B;CAEU,eAAY;EACpB,KAAK,SAAS,KAAK,MAAK,CAAE;CAC5B;CAEU,aAAU;EAClB,KAAK,UAAS;CAChB;CAtDW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA,EAAA,OAAA;GAAA,mBAAA;GAAA,YAAA;GAAA,UAAA;GAAA,YAAA;GAAA,mBAAA;EAAA,EAAA;EAAA,MAAA;GAAA,WAAA;IAAA,UAAA;IAAA,QAAA;GAAA;GAAA,gBAAA;EAAA;EAAA,WARlB,CACT;GACE,SAAS;GACT,aAAa,iBAAiB,kBAAkB;GAChD,OAAO;EACR,CACF;EAAA,UAAA;CAAA,CAAA;;AAEU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAf9B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM;IACJ,OAAO;IACP,YAAY;IACZ,UAAU;GACX;GACD,WAAW,CACT;IACE,SAAS;IACT,aAAa,iBAAgB,kBAAmB;IAChD,OAAO;GACR,CACF;EACF,CAAA;;;;;;;;;;;;AAyED,IAAa,0BAAb,MAAa,wBAAuB;CACjB,OAAO,OAAgC,UAAU;CAG/C,OAAO,KAAK,KAAK,cAAc,YAAY,aAAa,OAAO;CAJvE,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAuB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAvB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAuB,cAAA;EAAA,UAAA;EAAA,MAAA;GAAA,YAAA,EAAA,aAAA,OAAA;GAAA,gBAAA;EAAA;EAAA,UAAA;CAAA,CAAA;;AAAvB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAuB,YAAA,CAAA;EARnC,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM;IACJ,OAAO;IAEP,eAAe;GAChB;EACF,CAAA;;;AC1FD,MAAa,iBAAiB,CAAC,yBAAyB,kBAAkB"}