yukit-web 0.0.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 (196) hide show
  1. package/.npm/_logs/2026-08-20T08_40_55_706Z-debug-0.log +38 -0
  2. package/.npm/_logs/2026-08-20T08_40_56_280Z-debug-0.log +14 -0
  3. package/README.md +1465 -0
  4. package/fesm2022/yukit-web-helm-accordion.mjs +141 -0
  5. package/fesm2022/yukit-web-helm-accordion.mjs.map +1 -0
  6. package/fesm2022/yukit-web-helm-alert-dialog.mjs +250 -0
  7. package/fesm2022/yukit-web-helm-alert-dialog.mjs.map +1 -0
  8. package/fesm2022/yukit-web-helm-alert.mjs +94 -0
  9. package/fesm2022/yukit-web-helm-alert.mjs.map +1 -0
  10. package/fesm2022/yukit-web-helm-aspect-ratio.mjs +47 -0
  11. package/fesm2022/yukit-web-helm-aspect-ratio.mjs.map +1 -0
  12. package/fesm2022/yukit-web-helm-attachment.mjs +211 -0
  13. package/fesm2022/yukit-web-helm-attachment.mjs.map +1 -0
  14. package/fesm2022/yukit-web-helm-autocomplete.mjs +361 -0
  15. package/fesm2022/yukit-web-helm-autocomplete.mjs.map +1 -0
  16. package/fesm2022/yukit-web-helm-avatar.mjs +152 -0
  17. package/fesm2022/yukit-web-helm-avatar.mjs.map +1 -0
  18. package/fesm2022/yukit-web-helm-badge.mjs +47 -0
  19. package/fesm2022/yukit-web-helm-badge.mjs.map +1 -0
  20. package/fesm2022/yukit-web-helm-breadcrumb.mjs +196 -0
  21. package/fesm2022/yukit-web-helm-breadcrumb.mjs.map +1 -0
  22. package/fesm2022/yukit-web-helm-bubble.mjs +121 -0
  23. package/fesm2022/yukit-web-helm-bubble.mjs.map +1 -0
  24. package/fesm2022/yukit-web-helm-button-group.mjs +86 -0
  25. package/fesm2022/yukit-web-helm-button-group.mjs.map +1 -0
  26. package/fesm2022/yukit-web-helm-button.mjs +77 -0
  27. package/fesm2022/yukit-web-helm-button.mjs.map +1 -0
  28. package/fesm2022/yukit-web-helm-calendar.mjs +937 -0
  29. package/fesm2022/yukit-web-helm-calendar.mjs.map +1 -0
  30. package/fesm2022/yukit-web-helm-card.mjs +141 -0
  31. package/fesm2022/yukit-web-helm-card.mjs.map +1 -0
  32. package/fesm2022/yukit-web-helm-carousel.mjs +270 -0
  33. package/fesm2022/yukit-web-helm-carousel.mjs.map +1 -0
  34. package/fesm2022/yukit-web-helm-checkbox.mjs +147 -0
  35. package/fesm2022/yukit-web-helm-checkbox.mjs.map +1 -0
  36. package/fesm2022/yukit-web-helm-collapsible.mjs +62 -0
  37. package/fesm2022/yukit-web-helm-collapsible.mjs.map +1 -0
  38. package/fesm2022/yukit-web-helm-combobox.mjs +624 -0
  39. package/fesm2022/yukit-web-helm-combobox.mjs.map +1 -0
  40. package/fesm2022/yukit-web-helm-command.mjs +315 -0
  41. package/fesm2022/yukit-web-helm-command.mjs.map +1 -0
  42. package/fesm2022/yukit-web-helm-context-menu.mjs +71 -0
  43. package/fesm2022/yukit-web-helm-context-menu.mjs.map +1 -0
  44. package/fesm2022/yukit-web-helm-date-picker.mjs +1517 -0
  45. package/fesm2022/yukit-web-helm-date-picker.mjs.map +1 -0
  46. package/fesm2022/yukit-web-helm-dialog.mjs +271 -0
  47. package/fesm2022/yukit-web-helm-dialog.mjs.map +1 -0
  48. package/fesm2022/yukit-web-helm-drawer.mjs +233 -0
  49. package/fesm2022/yukit-web-helm-drawer.mjs.map +1 -0
  50. package/fesm2022/yukit-web-helm-dropdown-menu.mjs +508 -0
  51. package/fesm2022/yukit-web-helm-dropdown-menu.mjs.map +1 -0
  52. package/fesm2022/yukit-web-helm-empty.mjs +125 -0
  53. package/fesm2022/yukit-web-helm-empty.mjs.map +1 -0
  54. package/fesm2022/yukit-web-helm-field.mjs +325 -0
  55. package/fesm2022/yukit-web-helm-field.mjs.map +1 -0
  56. package/fesm2022/yukit-web-helm-hover-card.mjs +102 -0
  57. package/fesm2022/yukit-web-helm-hover-card.mjs.map +1 -0
  58. package/fesm2022/yukit-web-helm-input-group.mjs +171 -0
  59. package/fesm2022/yukit-web-helm-input-group.mjs.map +1 -0
  60. package/fesm2022/yukit-web-helm-input-otp.mjs +127 -0
  61. package/fesm2022/yukit-web-helm-input-otp.mjs.map +1 -0
  62. package/fesm2022/yukit-web-helm-input.mjs +32 -0
  63. package/fesm2022/yukit-web-helm-input.mjs.map +1 -0
  64. package/fesm2022/yukit-web-helm-item.mjs +242 -0
  65. package/fesm2022/yukit-web-helm-item.mjs.map +1 -0
  66. package/fesm2022/yukit-web-helm-kbd.mjs +46 -0
  67. package/fesm2022/yukit-web-helm-kbd.mjs.map +1 -0
  68. package/fesm2022/yukit-web-helm-label.mjs +30 -0
  69. package/fesm2022/yukit-web-helm-label.mjs.map +1 -0
  70. package/fesm2022/yukit-web-helm-marker.mjs +77 -0
  71. package/fesm2022/yukit-web-helm-marker.mjs.map +1 -0
  72. package/fesm2022/yukit-web-helm-menubar.mjs +90 -0
  73. package/fesm2022/yukit-web-helm-menubar.mjs.map +1 -0
  74. package/fesm2022/yukit-web-helm-message.mjs +115 -0
  75. package/fesm2022/yukit-web-helm-message.mjs.map +1 -0
  76. package/fesm2022/yukit-web-helm-native-select.mjs +180 -0
  77. package/fesm2022/yukit-web-helm-native-select.mjs.map +1 -0
  78. package/fesm2022/yukit-web-helm-navigation-menu.mjs +173 -0
  79. package/fesm2022/yukit-web-helm-navigation-menu.mjs.map +1 -0
  80. package/fesm2022/yukit-web-helm-pagination.mjs +745 -0
  81. package/fesm2022/yukit-web-helm-pagination.mjs.map +1 -0
  82. package/fesm2022/yukit-web-helm-popover.mjs +136 -0
  83. package/fesm2022/yukit-web-helm-popover.mjs.map +1 -0
  84. package/fesm2022/yukit-web-helm-progress.mjs +60 -0
  85. package/fesm2022/yukit-web-helm-progress.mjs.map +1 -0
  86. package/fesm2022/yukit-web-helm-radio-group.mjs +185 -0
  87. package/fesm2022/yukit-web-helm-radio-group.mjs.map +1 -0
  88. package/fesm2022/yukit-web-helm-resizable.mjs +98 -0
  89. package/fesm2022/yukit-web-helm-resizable.mjs.map +1 -0
  90. package/fesm2022/yukit-web-helm-scroll-area.mjs +36 -0
  91. package/fesm2022/yukit-web-helm-scroll-area.mjs.map +1 -0
  92. package/fesm2022/yukit-web-helm-select.mjs +412 -0
  93. package/fesm2022/yukit-web-helm-select.mjs.map +1 -0
  94. package/fesm2022/yukit-web-helm-separator.mjs +33 -0
  95. package/fesm2022/yukit-web-helm-separator.mjs.map +1 -0
  96. package/fesm2022/yukit-web-helm-sheet.mjs +254 -0
  97. package/fesm2022/yukit-web-helm-sheet.mjs.map +1 -0
  98. package/fesm2022/yukit-web-helm-sidebar.mjs +857 -0
  99. package/fesm2022/yukit-web-helm-sidebar.mjs.map +1 -0
  100. package/fesm2022/yukit-web-helm-skeleton.mjs +29 -0
  101. package/fesm2022/yukit-web-helm-skeleton.mjs.map +1 -0
  102. package/fesm2022/yukit-web-helm-slider.mjs +123 -0
  103. package/fesm2022/yukit-web-helm-slider.mjs.map +1 -0
  104. package/fesm2022/yukit-web-helm-sonner.mjs +126 -0
  105. package/fesm2022/yukit-web-helm-sonner.mjs.map +1 -0
  106. package/fesm2022/yukit-web-helm-spinner.mjs +48 -0
  107. package/fesm2022/yukit-web-helm-spinner.mjs.map +1 -0
  108. package/fesm2022/yukit-web-helm-switch.mjs +126 -0
  109. package/fesm2022/yukit-web-helm-switch.mjs.map +1 -0
  110. package/fesm2022/yukit-web-helm-table.mjs +180 -0
  111. package/fesm2022/yukit-web-helm-table.mjs.map +1 -0
  112. package/fesm2022/yukit-web-helm-tabs.mjs +251 -0
  113. package/fesm2022/yukit-web-helm-tabs.mjs.map +1 -0
  114. package/fesm2022/yukit-web-helm-textarea.mjs +32 -0
  115. package/fesm2022/yukit-web-helm-textarea.mjs.map +1 -0
  116. package/fesm2022/yukit-web-helm-toggle-group.mjs +95 -0
  117. package/fesm2022/yukit-web-helm-toggle-group.mjs.map +1 -0
  118. package/fesm2022/yukit-web-helm-toggle.mjs +61 -0
  119. package/fesm2022/yukit-web-helm-toggle.mjs.map +1 -0
  120. package/fesm2022/yukit-web-helm-tooltip.mjs +57 -0
  121. package/fesm2022/yukit-web-helm-tooltip.mjs.map +1 -0
  122. package/fesm2022/yukit-web-helm-typography.mjs +205 -0
  123. package/fesm2022/yukit-web-helm-typography.mjs.map +1 -0
  124. package/fesm2022/yukit-web-helm-utils.mjs +272 -0
  125. package/fesm2022/yukit-web-helm-utils.mjs.map +1 -0
  126. package/fesm2022/yukit-web.mjs +3592 -0
  127. package/fesm2022/yukit-web.mjs.map +1 -0
  128. package/package.json +291 -0
  129. package/src/lib/theme/spartan-overwrites/accordion.css +4 -0
  130. package/src/lib/theme/theme.css +161 -0
  131. package/src/lib/theme/tokens/color.css +356 -0
  132. package/src/lib/theme/tokens/component-colors.css +167 -0
  133. package/src/lib/theme/tokens/radius.css +18 -0
  134. package/src/lib/theme/tokens/typography.css +201 -0
  135. package/types/yukit-web-helm-accordion.d.ts +32 -0
  136. package/types/yukit-web-helm-alert-dialog.d.ts +85 -0
  137. package/types/yukit-web-helm-alert.d.ts +37 -0
  138. package/types/yukit-web-helm-aspect-ratio.d.ts +16 -0
  139. package/types/yukit-web-helm-attachment.d.ts +80 -0
  140. package/types/yukit-web-helm-autocomplete.d.ts +91 -0
  141. package/types/yukit-web-helm-avatar.d.ts +45 -0
  142. package/types/yukit-web-helm-badge.d.ts +19 -0
  143. package/types/yukit-web-helm-breadcrumb.d.ts +52 -0
  144. package/types/yukit-web-helm-bubble.d.ts +46 -0
  145. package/types/yukit-web-helm-button-group.d.ts +25 -0
  146. package/types/yukit-web-helm-button.d.ts +33 -0
  147. package/types/yukit-web-helm-calendar.d.ts +89 -0
  148. package/types/yukit-web-helm-card.d.ts +49 -0
  149. package/types/yukit-web-helm-carousel.d.ts +79 -0
  150. package/types/yukit-web-helm-checkbox.d.ts +60 -0
  151. package/types/yukit-web-helm-collapsible.d.ts +22 -0
  152. package/types/yukit-web-helm-combobox.d.ts +150 -0
  153. package/types/yukit-web-helm-command.d.ts +84 -0
  154. package/types/yukit-web-helm-context-menu.d.ts +29 -0
  155. package/types/yukit-web-helm-date-picker.d.ts +574 -0
  156. package/types/yukit-web-helm-dialog.d.ts +90 -0
  157. package/types/yukit-web-helm-drawer.d.ts +71 -0
  158. package/types/yukit-web-helm-dropdown-menu.d.ts +171 -0
  159. package/types/yukit-web-helm-empty.d.ts +49 -0
  160. package/types/yukit-web-helm-field.d.ts +102 -0
  161. package/types/yukit-web-helm-hover-card.d.ts +31 -0
  162. package/types/yukit-web-helm-input-group.d.ts +47 -0
  163. package/types/yukit-web-helm-input-otp.d.ts +40 -0
  164. package/types/yukit-web-helm-input.d.ts +13 -0
  165. package/types/yukit-web-helm-item.d.ts +96 -0
  166. package/types/yukit-web-helm-kbd.d.ts +17 -0
  167. package/types/yukit-web-helm-label.d.ts +12 -0
  168. package/types/yukit-web-helm-marker.d.ts +31 -0
  169. package/types/yukit-web-helm-menubar.d.ts +35 -0
  170. package/types/yukit-web-helm-message.d.ts +44 -0
  171. package/types/yukit-web-helm-native-select.d.ts +65 -0
  172. package/types/yukit-web-helm-navigation-menu.d.ts +49 -0
  173. package/types/yukit-web-helm-pagination.d.ts +187 -0
  174. package/types/yukit-web-helm-popover.d.ts +49 -0
  175. package/types/yukit-web-helm-progress.d.ts +22 -0
  176. package/types/yukit-web-helm-radio-group.d.ts +66 -0
  177. package/types/yukit-web-helm-resizable.d.ts +27 -0
  178. package/types/yukit-web-helm-scroll-area.d.ts +11 -0
  179. package/types/yukit-web-helm-select.d.ts +114 -0
  180. package/types/yukit-web-helm-separator.d.ts +13 -0
  181. package/types/yukit-web-helm-sheet.d.ts +75 -0
  182. package/types/yukit-web-helm-sidebar.d.ts +232 -0
  183. package/types/yukit-web-helm-skeleton.d.ts +11 -0
  184. package/types/yukit-web-helm-slider.d.ts +14 -0
  185. package/types/yukit-web-helm-sonner.d.ts +52 -0
  186. package/types/yukit-web-helm-spinner.d.ts +18 -0
  187. package/types/yukit-web-helm-switch.d.ts +54 -0
  188. package/types/yukit-web-helm-table.d.ts +82 -0
  189. package/types/yukit-web-helm-tabs.d.ts +66 -0
  190. package/types/yukit-web-helm-textarea.d.ts +13 -0
  191. package/types/yukit-web-helm-toggle-group.d.ts +34 -0
  192. package/types/yukit-web-helm-toggle.d.ts +22 -0
  193. package/types/yukit-web-helm-tooltip.d.ts +17 -0
  194. package/types/yukit-web-helm-typography.d.ts +89 -0
  195. package/types/yukit-web-helm-utils.d.ts +44 -0
  196. package/types/yukit-web.d.ts +2426 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yukit-web.mjs","sources":["../../../projects/yukit-web/src/lib/utils/cn.ts","../../../projects/yukit-web/src/lib/utils/value-accessor.ts","../../../projects/yukit-web/src/lib/components/button/button.variants.ts","../../../projects/yukit-web/src/lib/components/button/button.component.ts","../../../projects/yukit-web/src/lib/components/button/button.component.html","../../../projects/yukit-web/src/lib/components/badge/badge.component.ts","../../../projects/yukit-web/src/lib/components/badge/badge.component.html","../../../projects/yukit-web/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/yukit-web/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/yukit-web/src/lib/components/pagination/pagination.util.ts","../../../projects/yukit-web/src/lib/components/pagination/pagination.component.ts","../../../projects/yukit-web/src/lib/components/pagination/pagination.component.html","../../../projects/yukit-web/src/lib/components/combobox/combobox-item.directive.ts","../../../projects/yukit-web/src/lib/components/combobox/combobox.component.ts","../../../projects/yukit-web/src/lib/components/combobox/combobox.component.html","../../../projects/yukit-web/src/lib/components/accordion/accordion.directive.ts","../../../projects/yukit-web/src/lib/components/accordion/accordion-item.directive.ts","../../../projects/yukit-web/src/lib/components/accordion/accordion-trigger.component.ts","../../../projects/yukit-web/src/lib/components/accordion/accordion-trigger.component.html","../../../projects/yukit-web/src/lib/components/accordion/accordion-content.component.ts","../../../projects/yukit-web/src/lib/components/accordion/accordion-content.component.html","../../../projects/yukit-web/src/lib/components/accordion/accordion.imports.ts","../../../projects/yukit-web/src/lib/components/input/input-addon.directive.ts","../../../projects/yukit-web/src/lib/components/input/input.component.ts","../../../projects/yukit-web/src/lib/components/input/input.component.html","../../../projects/yukit-web/src/lib/components/textarea/textarea.component.ts","../../../projects/yukit-web/src/lib/components/textarea/textarea.component.html","../../../projects/yukit-web/src/lib/components/search-input/search-input.component.ts","../../../projects/yukit-web/src/lib/components/search-input/search-input.component.html","../../../projects/yukit-web/src/lib/components/password-input/password-input.reveal.ts","../../../projects/yukit-web/src/lib/components/password-input/password-input.component.ts","../../../projects/yukit-web/src/lib/components/password-input/password-input.component.html","../../../projects/yukit-web/src/lib/components/input-otp/input-otp.layout.ts","../../../projects/yukit-web/src/lib/components/input-otp/input-otp.component.ts","../../../projects/yukit-web/src/lib/components/input-otp/input-otp.component.html","../../../projects/yukit-web/src/lib/components/label/label.directive.ts","../../../projects/yukit-web/src/lib/components/checkbox/checkbox.variants.ts","../../../projects/yukit-web/src/lib/components/checkbox/checkbox.component.ts","../../../projects/yukit-web/src/lib/components/checkbox/checkbox.component.html","../../../projects/yukit-web/src/lib/components/switch/switch.component.ts","../../../projects/yukit-web/src/lib/components/switch/switch.component.html","../../../projects/yukit-web/src/lib/components/radio-group/radio-group.component.ts","../../../projects/yukit-web/src/lib/components/radio-group/radio-group.component.html","../../../projects/yukit-web/src/lib/components/skeleton/skeleton.directive.ts","../../../projects/yukit-web/src/lib/components/card/card.directives.ts","../../../projects/yukit-web/src/lib/components/empty/empty.directives.ts","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-checkbox-indicator.component.ts","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-checkbox-indicator.component.html","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-radio-indicator.component.ts","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-radio-indicator.component.html","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-sub-indicator.component.ts","../../../projects/yukit-web/src/lib/components/context-menu/context-menu-sub-indicator.component.html","../../../projects/yukit-web/src/lib/components/context-menu/context-menu.directives.ts","../../../projects/yukit-web/src/lib/components/datepicker/datepicker.component.ts","../../../projects/yukit-web/src/lib/components/datepicker/datepicker.component.html","../../../projects/yukit-web/src/lib/components/table/table.directives.ts","../../../projects/yukit-web/src/lib/components/table/datatable.component.ts","../../../projects/yukit-web/src/lib/components/table/datatable.component.html","../../../projects/yukit-web/src/lib/components/avatar/avatar.component.ts","../../../projects/yukit-web/src/lib/components/avatar/avatar.component.html","../../../projects/yukit-web/src/lib/components/item/item.directives.ts","../../../projects/yukit-web/src/lib/components/sheet/sheet-footer.directive.ts","../../../projects/yukit-web/src/lib/components/sheet/sheet.component.ts","../../../projects/yukit-web/src/lib/components/sheet/sheet.component.html","../../../projects/yukit-web/src/lib/components/popover/popover.component.ts","../../../projects/yukit-web/src/lib/components/popover/popover.component.html","../../../projects/yukit-web/src/lib/components/tooltip/tooltip.directive.ts","../../../projects/yukit-web/src/lib/components/spinner/spinner.component.ts","../../../projects/yukit-web/src/lib/components/spinner/spinner.component.html","../../../projects/yukit-web/src/lib/components/toaster/toaster.component.ts","../../../projects/yukit-web/src/lib/components/toaster/toaster.component.html","../../../projects/yukit-web/src/lib/components/alert/alert-action.directive.ts","../../../projects/yukit-web/src/lib/components/alert/alert-description.directive.ts","../../../projects/yukit-web/src/lib/components/alert/alert-title.directive.ts","../../../projects/yukit-web/src/lib/components/alert/alert.component.ts","../../../projects/yukit-web/src/lib/components/alert/alert.component.html","../../../projects/yukit-web/src/lib/components/dialog/dialog-footer.directive.ts","../../../projects/yukit-web/src/lib/components/dialog/dialog.component.ts","../../../projects/yukit-web/src/lib/components/dialog/dialog.component.html","../../../projects/yukit-web/src/lib/components/alert-dialog/alert-dialog-media.directive.ts","../../../projects/yukit-web/src/lib/components/alert-dialog/alert-dialog.component.ts","../../../projects/yukit-web/src/lib/components/alert-dialog/alert-dialog.component.html","../../../projects/yukit-web/src/lib/components/tabs/tab-panel.directive.ts","../../../projects/yukit-web/src/lib/components/tabs/tabs.component.ts","../../../projects/yukit-web/src/lib/components/tabs/tabs.component.html","../../../projects/yukit-web/src/lib/components/attachment/attachment.directives.ts","../../../projects/yukit-web/src/lib/components/sidebar/sidebar.component.ts","../../../projects/yukit-web/src/lib/components/sidebar/sidebar.component.html","../../../projects/yukit-web/src/lib/components/sidebar/sidebar-trigger.component.ts","../../../projects/yukit-web/src/lib/components/sidebar/sidebar-trigger.component.html","../../../projects/yukit-web/src/lib/components/sidebar/sidebar.directives.ts","../../../projects/yukit-web/src/public-api.ts","../../../projects/yukit-web/src/yukit-web.ts"],"sourcesContent":["import {type ClassValue, clsx} from 'clsx';\nimport {twMerge} from 'tailwind-merge';\n\n/**\n * Merges class lists the shadcn/Spartan way: `clsx` resolves conditionals/arrays, `twMerge`\n * then drops earlier Tailwind classes that a later one overrides (e.g. `px-3 ... px-4` keeps\n * only `px-4`) instead of shipping both to the DOM.\n *\n * Every yukit-web component's variant classes are combined through this, so a consumer's own\n * `class` input always wins over the component's defaults without fighting specificity.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import {Directive, forwardRef, type ModelSignal, type Provider, signal, type Type} from '@angular/core';\nimport {type ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n/**\n * Registers a component as a form control, so `formControlName`/`formControl`/`ngModel` bind to it.\n *\n * Spartan's own controls mostly don't need this: `hlmInput` and `hlmTextarea` are *directives on a\n * native element*, so Angular's built-in `DefaultValueAccessor` already applies to the same host.\n * The moment we wrap that native element inside a component template, the host a consumer writes\n * `formControlName` on is no longer the `<input>` — Angular finds no accessor there and throws\n * `NG01203`. This restores what the wrapping cost us.\n *\n * Kept as a `useExisting` + `forwardRef` provider because the class is referenced in its own\n * decorator metadata, before the class binding is initialized.\n */\nexport function provideValueAccessor(component: Type<unknown>): Provider {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => component),\n multi: true,\n };\n}\n\n/**\n * Shared `ControlValueAccessor` for the library's text-entry controls.\n *\n * Exists so the five text components don't each carry a near-identical copy of the same CVA\n * plumbing — the single-responsibility and DRY concerns in `agents.md`. Subclasses supply nothing;\n * they just extend it, add the provider, and bind `value`/`_onBlur()` in their template.\n *\n * ## Why `disabled` needs care\n *\n * `disabled` has two sources that don't know about each other: our own `disabled` input, and the\n * forms API calling `setDisabledState()` (which is what `new FormControl({value, disabled: true})`\n * and `control.disable()` go through). Letting either one own a single signal means the last\n * writer wins and the other is silently ignored — the classic bug in hand-rolled accessors.\n *\n * They're kept as two separate signals and OR'd together in `disabledState`: disabled by *either*\n * source means disabled. That's the only combination that never drops a caller's intent.\n */\n@Directive({})\nexport abstract class YuwValueAccessorBase<T> implements ControlValueAccessor {\n abstract readonly value: ModelSignal<T>;\n\n protected abstract _emptyValue(): T;\n\n protected readonly _formDisabled = signal(false);\n\n private _onChange: (value: T) => void = () => undefined;\n private _onTouched: () => void = () => undefined;\n\n protected _isDisabled(ownDisabled: boolean): boolean {\n return ownDisabled || this._formDisabled();\n }\n\n protected _commit(next: T): void {\n this.value.set(next);\n this._onChange(next);\n }\n\n protected _onBlur(): void {\n this._onTouched();\n }\n\n writeValue(value: T | null | undefined): void {\n this.value.set(value ?? this._emptyValue());\n }\n\n registerOnChange(fn: (value: T) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._formDisabled.set(isDisabled);\n }\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * yukit-web's own class layer for `<yuw-button>`, applied on top of the helm `buttonVariants()`\n * output. The result lands on the `[class]` binding of the inner `[hlmBtn]` element; the helm\n * `classes()` utility registers it as base classes and merges it last through `twMerge`, so every\n * class here beats the helm default of the same Tailwind group *and* modifier stack without\n * needing `!important`.\n */\nexport const yuwButtonVariants = cva('', {\n variants: {\n /**\n * Mirrors the helm `variant` input. Only `outline` needs correcting: helm paints it with\n * `bg-background` (+ `dark:bg-input/30`) and a muted text color, while ours is transparent at\n * rest and uses the foreground color (which `[data-yuw-color]` remaps to the accent). The\n * helm `hover:`/`aria-expanded:` backgrounds are intentionally left in place.\n */\n variant: {\n default: '',\n secondary: '',\n outline: 'bg-transparent text-foreground dark:bg-transparent',\n ghost: '',\n destructive: '',\n link: '',\n },\n /**\n * Strips every background/border the helm variants set, covering each modifier stack they\n * use (`hover:`, `aria-expanded:`, `dark:`, `dark:hover:`, `[a]:hover:`) so `twMerge` drops\n * the helm counterpart in every state. The `component-colors.css` gradients key off the\n * `.bg-primary` class, which this merge removes from the element, so they never match a\n * transparent button and no `!important` is needed here either.\n */\n transparent: {\n true: 'border-transparent bg-transparent text-foreground hover:bg-transparent aria-expanded:bg-transparent aria-expanded:text-foreground dark:border-transparent dark:bg-transparent dark:hover:bg-transparent [a]:hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n transparent: false,\n },\n});\n\nexport type YuwButtonVariants = VariantProps<typeof yuwButtonVariants>;\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, computed, input, output } from '@angular/core';\nimport { HlmButton, type ButtonVariants } from 'yukit-web/helm/button';\nimport { HlmButtonGroup } from 'yukit-web/helm/button-group';\nimport { HlmDropdownMenuTrigger } from 'yukit-web/helm/dropdown-menu';\nimport type { YuwColorDto } from '../../interface/color.interface';\nimport { cn } from '../../utils/cn';\nimport type { YuwButtonGroupClickDto, YuwButtonGroupItemDto } from './button-group-item.interface';\nimport { yuwButtonVariants } from './button.variants';\n\n/**\n * Button component supporting single action button or grouped button options.\n *\n * Inputs:\n * - `variant`: Button style variant (`'default'`, `'secondary'`, `'outline'`, `'destructive'`, `'ghost'`, `'link'`). Default is `'default'`.\n * - `size`: Button size (`'default'`, `'sm'`, `'lg'`, `'icon'`, etc.). Default is `'default'`.\n * - `color`: Brand color theme (any `YuwColorDto` value). Default is `'secondary'`.\n * - `disabled`: Disables button interactions.\n * - `type`: HTML button type (`'button'`, `'submit'`, `'reset'`). Default is `'button'`.\n * - `href`: Renders button as an anchor tag navigating to specified URL.\n * - `target`: Target attribute for link button (e.g. `'_blank'`).\n * - `transparent`: Removes background and border styling.\n * - `class`: Extra CSS classes merged onto the inner button/anchor (single and link mode); merged last, so they win over the component's own classes.\n * - `yuwDropdownMenuTrigger`: Optional dropdown menu template reference to trigger.\n * - `ariaLabel`: Accessible label for screen readers.\n * - `buttons`: Array of button items (`YuwButtonGroupItemDto[]`) to render as a welded button group.\n * - `orientation`: Group layout orientation (`'horizontal'` or `'vertical'`). Default is `'horizontal'`.\n * - `groupAriaLabel`: Accessible name for button group container.\n *\n * Outputs:\n * - `clicked`: Emits MouseEvent on single button click.\n * - `buttonClicked`: Emits object containing clicked button `id` and `event` in group mode.\n *\n * Single Button Usage:\n * ```html\n * <yuw-button variant=\"outline\" color=\"primary\" (clicked)=\"onSave()\">Save</yuw-button>\n * <yuw-button href=\"/dashboard\">Navigate</yuw-button>\n * ```\n *\n * Button Group Usage:\n * ```html\n * <yuw-button [buttons]=\"actionList\" (buttonClicked)=\"onAction($event)\" />\n * ```\n */\n@Component({\n selector: 'yuw-button',\n imports: [HlmButton, HlmButtonGroup, HlmDropdownMenuTrigger],\n host: {\n '[class.cursor-not-allowed]': 'disabled()',\n '[attr.data-yuw-color]': 'color()',\n },\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwButtonComponent {\n readonly variant = input<ButtonVariants['variant']>('default');\n readonly size = input<ButtonVariants['size']>('default');\n readonly color = input<YuwColorDto>('secondary');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly href = input<string | undefined>(undefined);\n readonly target = input<string | undefined>(undefined);\n readonly transparent = input(false, { transform: booleanAttribute });\n readonly yuwDropdownMenuTrigger = input<TemplateRef<unknown> | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly buttons = input<YuwButtonGroupItemDto[] | undefined>(undefined);\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n readonly groupAriaLabel = input<string | undefined>(undefined);\n\n /**\n * Consumer CSS classes for the inner button/anchor (single and link mode). Merged last with\n * `cn`, so they win over the component's own variant/transparent classes.\n */\n readonly userClass = input<string>('', { alias: 'class' });\n\n readonly clicked = output<MouseEvent>();\n readonly buttonClicked = output<YuwButtonGroupClickDto>();\n\n protected readonly _isGroup = computed(() => (this.buttons()?.length ?? 0) > 0);\n\n /** Classes for the single-mode button/anchor: our variant layer + the consumer's `class`, which goes last so it wins. */\n protected readonly _btnClass = computed(() =>\n cn(yuwButtonVariants({ variant: this.variant(), transparent: this.transparent() }), this.userClass()),\n );\n\n protected readonly _resolved = computed(() =>\n (this.buttons() ?? []).map((button) => {\n const variant = button.variant ?? this.variant();\n return {\n ...button,\n variant,\n size: button.size ?? this.size(),\n color: button.color ?? this.color(),\n disabled: button.disabled ?? false,\n type: button.type ?? ('button' as const),\n class: yuwButtonVariants({ variant, transparent: button.transparent ?? false }),\n };\n }),\n );\n\n protected onClick(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n this.clicked.emit(event);\n }\n\n protected onGroupClick(button: YuwButtonGroupItemDto, event: MouseEvent): void {\n if (button.disabled) {\n return;\n }\n this.buttonClicked.emit({ id: button.id, event });\n }\n}\n","@if (_isGroup()) {\n <div hlmButtonGroup [orientation]=\"orientation()\" [attr.aria-label]=\"groupAriaLabel()\">\n @for (button of _resolved(); track button.id) {\n @if (button.href && !button.disabled) {\n <a hlmBtn [variant]=\"button.variant\" [size]=\"button.size\" [href]=\"button.href\" [target]=\"button.target\"\n [attr.data-yuw-color]=\"button.color\" [attr.aria-label]=\"button.ariaLabel\"\n (click)=\"onGroupClick(button, $event)\" [hlmDropdownMenuTrigger]=\"button.yuwDropdownMenuTrigger\"\n [class]=\"button.class\">\n {{ button.label }}\n </a>\n } @else {\n <button hlmBtn [variant]=\"button.variant\" [size]=\"button.size\" [type]=\"button.type\" [disabled]=\"button.disabled\"\n [attr.data-yuw-color]=\"button.color\" [attr.aria-label]=\"button.ariaLabel\"\n (click)=\"onGroupClick(button, $event)\" [hlmDropdownMenuTrigger]=\"button.yuwDropdownMenuTrigger\"\n [class]=\"button.class\">\n {{ button.label }}\n </button>\n }\n }\n </div>\n} @else if (href(); as hrefValue) {\n <a hlmBtn [variant]=\"variant()\" [size]=\"size()\" [disabled]=\"disabled()\" [href]=\"disabled() ? null : hrefValue\"\n [target]=\"target()\" [attr.aria-label]=\"ariaLabel()\" (click)=\"onClick($event)\"\n [hlmDropdownMenuTrigger]=\"yuwDropdownMenuTrigger()\" [class]=\"_btnClass()\">\n <ng-content select=\"[yuwButtonIcon]\"/>\n <ng-content/>\n </a>\n} @else {\n <button hlmBtn [variant]=\"variant()\" [size]=\"size()\" [type]=\"type()\" [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\" (click)=\"onClick($event)\" [hlmDropdownMenuTrigger]=\"yuwDropdownMenuTrigger()\"\n [class]=\"_btnClass()\">\n <ng-content select=\"[yuwButtonIcon]\"/>\n <ng-content/>\n </button>\n}\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, output} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideX} from '@ng-icons/lucide';\nimport {HlmBadge} from 'yukit-web/helm/badge';\nimport {HlmButton} from 'yukit-web/helm/button';\nimport type {YuwColorDto} from '../../interface/color.interface';\n\n/**\n * Renders a small badge or tag component for status indicators, counts, and category labels.\n *\n * Supports the shared color vocabulary (`color`, any `YuwColorDto` value), variant styles\n * (`variant`), dismissible action (`removeLabel` / `removed`), and a compact dot mode (`dot`)\n * that renders no content at all.\n *\n * Usage:\n * ```html\n * <yuw-badge color=\"primary\">New</yuw-badge>\n * <yuw-badge removeLabel=\"Remove tag\" (removed)=\"onRemove()\">Category</yuw-badge>\n * <yuw-badge dot color=\"success\" />\n * ```\n */\n@Component({\n selector: 'yuw-badge',\n hostDirectives: [{directive: HlmBadge, inputs: ['variant']}],\n imports: [HlmButton, NgIcon],\n providers: [provideIcons({lucideX})],\n host: {\n '[class]': 'dotClass()',\n '[attr.data-yuw-color]': 'color()',\n },\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwBadgeComponent {\n readonly color = input<YuwColorDto>('primary');\n readonly removeLabel = input<string | undefined>(undefined);\n readonly dot = input(false, {transform: booleanAttribute});\n\n readonly removed = output<void>();\n\n protected readonly dotClass = computed(() => (this.dot() ? 'size-4 p-0' : ''));\n\n protected onRemoveClick(event: Event): void {\n event.stopPropagation();\n this.removed.emit();\n }\n}\n","@if (!dot()) {\n <ng-content select=\"[yuwBadgeIcon]\"/>\n <span class=\"truncate\"><ng-content/></span>\n\n @if (removeLabel()) {\n <button type=\"button\" hlmBtn variant=\"ghost\" size=\"icon-xs\" [attr.aria-label]=\"removeLabel()\"\n (click)=\"onRemoveClick($event)\">\n <ng-icon name=\"lucideX\"/>\n </button>\n }\n}\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {HlmBreadcrumbImports} from 'yukit-web/helm/breadcrumb';\nimport type {YuwBreadcrumbItemDto} from './breadcrumb-item.interface';\n\n/**\n * Navigation breadcrumb bar displaying page hierarchy and links.\n *\n * Accepts an array of item objects (`items`), custom separator text (`separator`), and a required\n * accessible label (`ariaLabel`). The last item is announced as the current page\n * (`aria-current=\"page\"`); intermediate items render as links when they have an `href` and as\n * plain text otherwise.\n *\n * Usage:\n * ```html\n * <yuw-breadcrumb\n * [items]=\"[{ label: 'Inicio', href: '/' }, { label: 'Ajustes' }]\"\n * ariaLabel=\"Ruta de navegación\"\n * />\n * ```\n */\n@Component({\n selector: 'yuw-breadcrumb',\n imports: [...HlmBreadcrumbImports],\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwBreadcrumbComponent {\n readonly items = input.required<YuwBreadcrumbItemDto[]>();\n readonly separator = input('/');\n readonly ariaLabel = input.required<string>();\n}\n","<nav hlmBreadcrumb [aria-label]=\"ariaLabel()\">\n <ol hlmBreadcrumbList>\n @for (item of items(); track $index; let last = $last) {\n <li hlmBreadcrumbItem>\n @if (last) {\n <span hlmBreadcrumbPage>{{ item.label }}</span>\n } @else if (item.href) {\n <a hlmBreadcrumbLink [link]=\"item.href\">{{ item.label }}</a>\n } @else {\n <span class=\"text-foreground font-normal\">{{ item.label }}</span>\n }\n </li>\n @if (!last) {\n <li hlmBreadcrumbSeparator>{{ separator() }}</li>\n }\n }\n </ol>\n</nav>\n","export type YuwPaginationRangeItem = number | 'ellipsis';\n\n/**\n * Pure function on purpose: the page-range math has nothing to do with Angular, so it's testable\n * in isolation and keeps `pagination.component.ts` limited to wiring inputs/outputs.\n *\n * Always shows page 1 and the last page, plus the current page and its immediate neighbors,\n * collapsing any gap into a single `'ellipsis'` entry.\n */\nexport function getPaginationRange(page: number, totalPages: number): YuwPaginationRangeItem[] {\n if (totalPages <= 7) {\n return Array.from({length: totalPages}, (_, i) => i + 1);\n }\n\n const range: YuwPaginationRangeItem[] = [1];\n const start = Math.max(2, page - 1);\n const end = Math.min(totalPages - 1, page + 1);\n\n if (start > 2) {\n range.push('ellipsis');\n }\n\n for (let i = start; i <= end; i++) {\n range.push(i);\n }\n\n if (end < totalPages - 1) {\n range.push('ellipsis');\n }\n\n range.push(totalPages);\n\n return range;\n}\n","import {ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideChevronLeft, lucideChevronRight} from '@ng-icons/lucide';\nimport {\n HlmPagination,\n HlmPaginationContent,\n HlmPaginationEllipsis,\n HlmPaginationItem,\n HlmPaginationLink,\n} from 'yukit-web/helm/pagination';\nimport type {YuwColorDto} from '../../interface/color.interface';\nimport {getPaginationRange} from './pagination.util';\n\n/**\n * Sizes accepted by `<yuw-pagination>`'s `size` input. Mirrors the helm button sizes so the\n * public API doesn't leak the helm's `ButtonVariants` type.\n */\nexport type YuwPaginationSizeDto = 'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg';\n\n/**\n * Pagination navigation bar for navigating multi-page content datasets.\n *\n * Controls two-way active page state `[(page)]`, accepts total pages (`totalPages`), accessible\n * previous/next/ellipsis labels, size and color theme.\n *\n * Usage:\n * ```html\n * <yuw-pagination\n * [(page)]=\"currentPage\"\n * [totalPages]=\"10\"\n * previousLabel=\"Página anterior\"\n * nextLabel=\"Página siguiente\"\n * ellipsisSrText=\"Más páginas\"\n * />\n * ```\n */\n@Component({\n selector: 'yuw-pagination',\n imports: [HlmPagination, HlmPaginationContent, HlmPaginationItem, HlmPaginationLink, HlmPaginationEllipsis, NgIcon],\n providers: [provideIcons({lucideChevronLeft, lucideChevronRight})],\n host: {\n class: 'contents',\n '[attr.data-yuw-color]': 'color()',\n },\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwPaginationComponent {\n readonly page = model.required<number>();\n readonly totalPages = input.required<number>();\n readonly previousLabel = input.required<string>();\n readonly nextLabel = input.required<string>();\n\n readonly ellipsisSrText = input.required<string>();\n\n readonly size = input<YuwPaginationSizeDto>('icon');\n readonly color = input<YuwColorDto>('primary');\n\n readonly ariaLabel = input.required<string>();\n\n protected readonly range = computed(() => getPaginationRange(this.page(), this.totalPages()));\n\n protected goTo(target: number): void {\n\n if (target < 1 || target > this.totalPages() || target === this.page()) {\n return;\n }\n\n this.page.set(target);\n }\n}\n","<nav hlmPagination [aria-label]=\"ariaLabel()\">\n <ul hlmPaginationContent>\n <li hlmPaginationItem>\n <button\n type=\"button\"\n hlmPaginationLink\n [size]=\"size()\"\n [disabled]=\"page() <= 1\"\n [attr.aria-label]=\"previousLabel()\"\n (click)=\"goTo(page() - 1)\"\n >\n <ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\"/>\n </button>\n </li>\n\n @for (entry of range(); track $index) {\n <li hlmPaginationItem>\n @if (entry === 'ellipsis') {\n <hlm-pagination-ellipsis [srOnlyText]=\"ellipsisSrText()\"/>\n\n } @else if (entry === page()) {\n <button\n type=\"button\"\n hlmPaginationLink\n isActive\n [size]=\"size()\"\n class=\"border-transparent bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground dark:border-transparent dark:bg-primary dark:hover:bg-primary\"\n (click)=\"goTo(entry)\"\n >\n {{ entry }}\n </button>\n } @else {\n <button type=\"button\" hlmPaginationLink [size]=\"size()\" (click)=\"goTo(entry)\">\n {{ entry }}\n </button>\n }\n </li>\n }\n\n <li hlmPaginationItem>\n <button\n type=\"button\"\n hlmPaginationLink\n [size]=\"size()\"\n [disabled]=\"page() >= totalPages()\"\n [attr.aria-label]=\"nextLabel()\"\n (click)=\"goTo(page() + 1)\"\n >\n <ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\"/>\n </button>\n </li>\n </ul>\n</nav>\n","import {Directive, inject, input, TemplateRef} from '@angular/core';\nimport type {YuwComboboxOptionDto} from './combobox-option.interface';\n\n/** The `let-` context of a `*yuwComboboxItem` template. `$implicit` is the option itself, so\n * `let-option` works; `selected` is passed alongside because an item that renders its own\n * markup loses the default check glyph and often needs to show that state some other way. */\nexport interface YuwComboboxItemContext<TData = unknown> {\n $implicit: YuwComboboxOptionDto<TData>;\n option: YuwComboboxOptionDto<TData>;\n selected: boolean;\n}\n\n/**\n * Structural directive for custom option item templates in `yuw-combobox`.\n *\n * Exposes the option object (`let-option`) and selection state (`let-selected=\"selected\"`).\n *\n * Usage:\n * ```html\n * <yuw-combobox [options]=\"users\" [(value)]=\"userId\">\n * <ng-template yuwComboboxItem let-option let-selected=\"selected\">\n * <img [src]=\"option.data.avatar\" /> {{ option.label }}\n * </ng-template>\n * </yuw-combobox>\n * ```\n */\n@Directive({\n selector: '[yuwComboboxItem]',\n})\nexport class YuwComboboxItemDirective<TData = unknown> {\n readonly templateRef = inject<TemplateRef<YuwComboboxItemContext<TData>>>(TemplateRef);\n\n readonly typeOf = input<YuwComboboxOptionDto<TData>[] | undefined>(undefined, {\n alias: 'yuwComboboxItemTypeOf',\n });\n\n static ngTemplateContextGuard<TData>(\n _directive: YuwComboboxItemDirective<TData>,\n _context: unknown,\n ): _context is YuwComboboxItemContext<TData> {\n return true;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n contentChild,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { HlmComboboxContent, HlmComboboxImports } from 'yukit-web/helm/combobox';\nimport { YuwValueAccessorBase, provideValueAccessor } from '../../utils/value-accessor';\nimport { YuwComboboxItemDirective } from './combobox-item.directive';\nimport type { YuwComboboxOptionDto } from './combobox-option.interface';\n\nexport type YuwComboboxValue = string | string[] | undefined;\n\n/** Module-level counter for the fallback control id, so external labels always have a stable,\n * unique target even when the consumer doesn't pass `inputId`. */\nlet nextUniqueId = 0;\n\n/**\n * Searchable select combobox component supporting single or multiple selections, search filtering, and custom option rendering.\n *\n * Inputs / Models:\n * - `options`: Required array of option items (`YuwComboboxOptionDto<TData>[]`).\n * - `value`: Two-way selected value(s) (`string` for single mode, `string[]` for multiple mode).\n * Emits `valueChange` on every selection change.\n * - `multiple`: Enables multi-selection mode with removable tags/chips.\n * - `disabled`: Disables combobox interaction.\n * - `placeholder`: Placeholder text when no option is selected.\n * - `searchPlaceholder`: Placeholder text inside the search field popover.\n * - `emptyText`: Message text displayed when search yields no matching options.\n * - `search`: Two-way search filter query string.\n * - `triggerAriaLabel`: Required accessible name for the icon-only popover trigger (the chevron\n * button). User-facing text — the consuming app is responsible for providing it translated.\n * Only rendered by the single-select input shape, but required in every mode so switching\n * modes never silently drops the label.\n * - `clearAriaLabel`: When set, the clear button is shown on the single-selection control and\n * this is its accessible name; when absent, there is no clear button. One input, one source of\n * truth. User-facing text — the consuming app is responsible for providing it translated.\n * - `inputId`: HTML `id` for the focusable control (the search input, or the trigger button when\n * `readonlyTrigger` is set), enabling external `<label for=\"...\">` association.\n * - `readonlyTrigger`: Renders control as a button showing selected label, placing search input inside popover.\n * - `invalid`: Forces invalid styling.\n *\n * `multiple` takes precedence over `readonlyTrigger`: when both are set the multi-select\n * chips shape renders and `readonlyTrigger` is ignored.\n *\n * Usage:\n * ```html\n * <yuw-combobox [options]=\"userOptions\" [(value)]=\"selectedUser\" placeholder=\"Select user...\"\n * triggerAriaLabel=\"Toggle options\" clearAriaLabel=\"Clear selection\" />\n * <yuw-combobox [options]=\"categoryOptions\" [(value)]=\"selectedCategories\" multiple\n * triggerAriaLabel=\"Toggle options\" />\n * ```\n */\n@Component({\n selector: 'yuw-combobox',\n imports: [...HlmComboboxImports, NgTemplateOutlet],\n providers: [provideValueAccessor(YuwComboboxComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './combobox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwComboboxComponent<TData = unknown> extends YuwValueAccessorBase<YuwComboboxValue> {\n readonly options = input.required<YuwComboboxOptionDto<TData>[]>();\n readonly value = model<YuwComboboxValue>(undefined);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string | undefined>(undefined);\n readonly searchPlaceholder = input<string | undefined>(undefined);\n readonly emptyText = input<string | undefined>(undefined);\n readonly search = model<string>('');\n readonly triggerAriaLabel = input.required<string>();\n readonly clearAriaLabel = input<string | undefined>(undefined);\n readonly inputId = input<string | undefined>(undefined);\n readonly readonlyTrigger = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n\n protected readonly itemTemplate = contentChild<YuwComboboxItemDirective<TData>>(YuwComboboxItemDirective);\n\n private readonly _panel = viewChild(HlmComboboxContent, { read: ElementRef });\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected readonly _clearVisible = computed(() => this.clearAriaLabel() !== undefined);\n\n private readonly _generatedId = `yuw-combobox-${++nextUniqueId}`;\n\n protected readonly _controlId = computed(() => this.inputId() ?? this._generatedId);\n\n protected readonly _singleValue = computed(() => {\n const value = this.value();\n return Array.isArray(value) ? value[0] : value;\n });\n\n protected readonly _multipleValue = computed(() => {\n const value = this.value();\n if (value === undefined) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n });\n\n private readonly _labelByValue = computed(\n () => new Map(this.options().map((option) => [option.value, option.label] as const)),\n );\n\n protected readonly _selectedChips = computed(() => {\n const labels = this._labelByValue();\n return this._multipleValue().map((value) => ({ value, label: labels.get(value) ?? value }));\n });\n\n protected readonly _selectedValues = computed(() => new Set(this._multipleValue()));\n\n protected readonly _itemToString = (value: string): string => this._labelByValue().get(value) ?? value;\n\n protected _emptyValue(): YuwComboboxValue {\n return this.multiple() ? [] : undefined;\n }\n\n protected onValueChange(next: YuwComboboxValue | null): void {\n this._commit(next ?? this._emptyValue());\n }\n\n protected _onFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget;\n\n if (next instanceof Node) {\n if (event.currentTarget instanceof Node && event.currentTarget.contains(next)) {\n return;\n }\n\n const panel = this._panel()?.nativeElement as HTMLElement | undefined;\n\n if (panel?.contains(next)) {\n return;\n }\n }\n\n this._onBlur();\n }\n}\n","<ng-template #itemContent let-option>\n @if (itemTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: option,\n option: option,\n selected: _selectedValues().has(option.value),\n }\"\n />\n } @else {\n {{ option.label }}\n }\n</ng-template>\n\n@if (multiple()) {\n <hlm-combobox-multiple [disabled]=\"_disabled()\" [value]=\"_multipleValue()\" (valueChange)=\"onValueChange($event)\"\n [(search)]=\"search\" [itemToString]=\"_itemToString\" (focusout)=\"_onFocusOut($event)\">\n <hlm-combobox-chips [forceInvalid]=\"invalid()\">\n @for (chip of _selectedChips(); track chip.value) {\n <hlm-combobox-chip [value]=\"chip.value\">{{ chip.label }}</hlm-combobox-chip>\n }\n <input hlmComboboxChipInput [id]=\"_controlId()\" [placeholder]=\"placeholder() ?? ''\"/>\n </hlm-combobox-chips>\n\n <hlm-combobox-content *hlmComboboxPortal>\n <div hlmComboboxList>\n @for (option of options(); track option.value) {\n <hlm-combobox-item [value]=\"option.value\" [disabled]=\"option.disabled ?? false\">\n <ng-container [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: option }\"/>\n </hlm-combobox-item>\n }\n </div>\n <hlm-combobox-empty>{{ emptyText() ?? '' }}</hlm-combobox-empty>\n </hlm-combobox-content>\n </hlm-combobox-multiple>\n} @else {\n <hlm-combobox [disabled]=\"_disabled()\" [value]=\"_singleValue()\" (valueChange)=\"onValueChange($event)\"\n [(search)]=\"search\" [itemToString]=\"_itemToString\" (focusout)=\"_onFocusOut($event)\">\n @if (readonlyTrigger()) {\n <hlm-combobox-trigger [buttonId]=\"_controlId()\" [forceInvalid]=\"invalid()\">\n <hlm-combobox-value [placeholder]=\"placeholder() ?? ''\"/>\n </hlm-combobox-trigger>\n } @else {\n <hlm-combobox-input [inputId]=\"_controlId()\" [placeholder]=\"placeholder() ?? ''\"\n [showClear]=\"_clearVisible()\" [clearAriaLabel]=\"clearAriaLabel() ?? ''\"\n [triggerAriaLabel]=\"triggerAriaLabel()\" [forceInvalid]=\"invalid()\"/>\n }\n\n <hlm-combobox-content *hlmComboboxPortal>\n @if (readonlyTrigger()) {\n <hlm-combobox-input [placeholder]=\"searchPlaceholder() ?? ''\" [showClear]=\"_clearVisible()\"\n [clearAriaLabel]=\"clearAriaLabel() ?? ''\" [triggerAriaLabel]=\"triggerAriaLabel()\"\n [showTrigger]=\"false\"/>\n }\n <div hlmComboboxList>\n @for (option of options(); track option.value) {\n <hlm-combobox-item [value]=\"option.value\" [disabled]=\"option.disabled ?? false\">\n <ng-container [ngTemplateOutlet]=\"itemContent\" [ngTemplateOutletContext]=\"{ $implicit: option }\"/>\n </hlm-combobox-item>\n }\n </div>\n <hlm-combobox-empty>{{ emptyText() ?? '' }}</hlm-combobox-empty>\n </hlm-combobox-content>\n </hlm-combobox>\n}\n","import {Directive} from '@angular/core';\nimport {HlmAccordion} from 'yukit-web/helm/accordion';\n\n/**\n * Container directive for collapsible accordion items.\n *\n * Renders a full-width flexible vertical container for `yuw-accordion-item` elements.\n * Supports single (`type=\"single\"`) or multiple (`type=\"multiple\"`) expandable items,\n * as well as vertical or horizontal orientation (`orientation`).\n *\n * Direct child items (`yuw-accordion-item`) can be declared statically or rendered dynamically\n * using `@for`.\n *\n * Extends `HlmAccordion` (instead of re-applying `BrnAccordion` and copying the helm's classes\n * by hand) so the helm's `data-slot`, classes and its `BrnAccordion` host directive — including\n * the forwarded `type`/`orientation` inputs — are all inherited. Forwarding those inputs through\n * a `hostDirectives` entry on `HlmAccordion` is not possible: Angular only allows exposing\n * inputs a host directive declares itself, and the helm exposes them transitively from\n * `BrnAccordion`.\n */\n@Directive({\n selector: 'yuw-accordion',\n})\nexport class YuwAccordion extends HlmAccordion {\n}\n","import {Directive} from '@angular/core';\nimport {HlmAccordionItem} from 'yukit-web/helm/accordion';\n\n/**\n * Directive representing an individual section/item within a `yuw-accordion`.\n *\n * Encloses a `yuw-accordion-trigger` button and a `yuw-accordion-content` panel.\n * Accepts `isOpened` (boolean) to control open state and `disabled` (boolean) to disable\n * interaction. Emits `openedChange` when the item is expanded or collapsed.\n *\n * Extends `HlmAccordionItem` (instead of re-applying `BrnAccordionItem` and copying the helm's\n * classes by hand) so the helm's `data-slot`, classes and its `BrnAccordionItem` host directive —\n * including the forwarded `isOpened`/`disabled` inputs and `openedChange` output — are all\n * inherited. Forwarding those through a `hostDirectives` entry on `HlmAccordionItem` is not\n * possible: Angular only allows exposing inputs/outputs a host directive declares itself, and\n * the helm exposes them transitively from `BrnAccordionItem`.\n */\n@Directive({\n selector: 'yuw-accordion-item',\n})\nexport class YuwAccordionItem extends HlmAccordionItem {\n}\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {HlmAccordionTrigger} from 'yukit-web/helm/accordion';\n\n/**\n * Interactive header button for expanding or collapsing a `yuw-accordion-item`.\n *\n * Project content inside to serve as the trigger label (text, icons, badges, or custom markup).\n *\n * Inputs:\n * - `triggerClass`: Extra classes for the inner trigger `<button>`; the helm merges them last\n * (via tailwind-merge), so they win over its defaults.\n */\n@Component({\n selector: 'yuw-accordion-trigger',\n imports: [HlmAccordionTrigger],\n host: {\n class: 'contents',\n },\n templateUrl: './accordion-trigger.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwAccordionTriggerComponent {\n readonly triggerClass = input<string>('');\n}\n","<hlm-accordion-trigger [triggerClass]=\"triggerClass()\">\n <ng-content/>\n</hlm-accordion-trigger>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {HlmAccordionContent} from 'yukit-web/helm/accordion';\n\n/**\n * Collapsible panel container for a `yuw-accordion-item`.\n *\n * Projects body content revealed when the item is expanded (supports text, custom markup, or nested components).\n */\n@Component({\n selector: 'yuw-accordion-content',\n imports: [HlmAccordionContent],\n host: {\n class: 'contents',\n },\n templateUrl: './accordion-content.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwAccordionContentComponent {\n}\n","<hlm-accordion-content>\n <ng-content/>\n</hlm-accordion-content>\n","import {YuwAccordion} from './accordion.directive';\nimport {YuwAccordionContentComponent} from './accordion-content.component';\nimport {YuwAccordionItem} from './accordion-item.directive';\nimport {YuwAccordionTriggerComponent} from './accordion-trigger.component';\n\n/** Bundle for consumers who want every `yuw-accordion-*` piece in one `imports: [...]` entry —\n * same shape as Spartan's own `HlmAccordionImports`. Each piece is still exported and importable\n * on its own for consumers who only need a subset. */\nexport const YuwAccordionImports = [\n YuwAccordion,\n YuwAccordionItem,\n YuwAccordionTriggerComponent,\n YuwAccordionContentComponent,\n] as const;\n","import {Directive} from '@angular/core';\n\n/**\n * Slot directive for adding content (icons, text prefixes) on the left side of a `yuw-input` or `yuw-textarea`.\n */\n@Directive({\n selector: 'yuw-left-addon',\n})\nexport class YuwLeftAddonDirective {\n}\n\n/**\n * Slot directive for adding content (icons, text suffixes, action buttons) on the right side of a `yuw-input` or `yuw-textarea`.\n */\n@Directive({\n selector: 'yuw-right-addon',\n})\nexport class YuwRightAddonDirective {\n}\n\nexport const YuwInputAddonImports = [YuwLeftAddonDirective, YuwRightAddonDirective] as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n input,\n model,\n output,\n} from '@angular/core';\nimport {HlmInput} from 'yukit-web/helm/input';\nimport {HlmInputGroup, HlmInputGroupAddon, HlmInputGroupInput} from 'yukit-web/helm/input-group';\nimport {YuwLeftAddonDirective, YuwRightAddonDirective} from './input-addon.directive';\nimport type {YuwInputModeDto, YuwInputTypeDto, YuwTextFieldContract} from '../../interface/text-field.interface';\nimport {cn} from '../../utils/cn';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\n\n/** Module-level counter backing each instance's stable fallback `id`. */\nlet nextYuwInputId = 0;\n\n/**\n * Single-line text input control supporting two-way value binding, form controls (`formControlName`, `ngModel`),\n * validation styling, and left/right addon slots.\n *\n * Inputs / Models:\n * - `value`: Two-way text string.\n * - `inputId`: `id` applied to the native input, for external `<label for>` association.\n * - `type`: HTML input type (`'text'`, `'email'`, `'number'`, etc.). Default is `'text'`.\n * - `inputmode`: Virtual keyboard hint (e.g. `'numeric'`).\n * - `disabled`: Disables input interaction.\n * - `readonly`: Makes the field read-only.\n * - `required`: Marks the field as required.\n * - `invalid`: Forces invalid styling.\n * - `name`: HTML `name` attribute.\n * - `autocomplete`: Native `autocomplete` attribute.\n * - `maxlength`: Hard cap on character count, enforced natively by the browser.\n * - `placeholder`: Hint text shown inside the empty field.\n * - `class`: Extra classes merged onto the visual root (the input, or the input group when addons are present).\n *\n * Outputs:\n * - `committed`: Emits the current value on the native `change` event (blur/enter).\n *\n * Usage:\n * ```html\n * <yuw-input [(value)]=\"username\" placeholder=\"Enter username...\" />\n *\n * <yuw-input formControlName=\"email\" type=\"email\">\n * <yuw-left-addon><ng-icon name=\"lucideMail\" /></yuw-left-addon>\n * </yuw-input>\n * ```\n */\n@Component({\n selector: 'yuw-input',\n imports: [HlmInput, HlmInputGroup, HlmInputGroupInput, HlmInputGroupAddon],\n providers: [provideValueAccessor(YuwInputComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwInputComponent extends YuwValueAccessorBase<string> implements YuwTextFieldContract {\n readonly value = model<string>('');\n\n readonly inputId = input<string | undefined>(undefined);\n readonly type = input<YuwInputTypeDto>('text');\n readonly inputmode = input<YuwInputModeDto | undefined>(undefined);\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly readonly = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly autocomplete = input<string | undefined>(undefined);\n readonly maxlength = input<number | undefined>(undefined);\n readonly placeholder = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly committed = output<string>();\n\n protected readonly _autoId = `yuw-input-${++nextYuwInputId}`;\n\n protected readonly _inputId = computed(() => this.inputId() ?? this._autoId);\n\n protected readonly _classes = computed(() => cn(this.userClass()));\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n private readonly _leftAddons = contentChildren(YuwLeftAddonDirective);\n private readonly _rightAddons = contentChildren(YuwRightAddonDirective);\n\n protected readonly _hasLeftAddon = computed(() => this._leftAddons().length > 0);\n protected readonly _hasRightAddon = computed(() => this._rightAddons().length > 0);\n\n protected readonly _hasAddons = computed(() => this._hasLeftAddon() || this._hasRightAddon());\n\n protected onInput(event: Event): void {\n this._commit((event.target as HTMLInputElement).value);\n }\n \n protected _emptyValue(): string {\n return '';\n }\n\n protected onChange(): void {\n this.committed.emit(this.value());\n }\n}\n","@if (_hasAddons()) {\n <hlm-input-group [class]=\"_classes()\">\n @if (_hasLeftAddon()) {\n <hlm-input-group-addon align=\"inline-start\">\n <ng-content select=\"yuw-left-addon\"/>\n </hlm-input-group-addon>\n }\n\n <input hlmInputGroupInput [id]=\"_inputId()\" [type]=\"type()\" [attr.inputmode]=\"inputmode()\" [value]=\"value()\"\n [disabled]=\"_disabled()\"\n [readOnly]=\"readonly()\" [required]=\"required()\" [forceInvalid]=\"invalid()\" [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete()\" [attr.maxlength]=\"maxlength()\" [attr.placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (change)=\"onChange()\" (blur)=\"_onBlur()\"/>\n\n @if (_hasRightAddon()) {\n <hlm-input-group-addon align=\"inline-end\">\n <ng-content select=\"yuw-right-addon\"/>\n </hlm-input-group-addon>\n }\n </hlm-input-group>\n} @else {\n <input hlmInput [class]=\"_classes()\" [id]=\"_inputId()\" [type]=\"type()\" [attr.inputmode]=\"inputmode()\"\n [value]=\"value()\" [disabled]=\"_disabled()\"\n [readOnly]=\"readonly()\" [required]=\"required()\" [forceInvalid]=\"invalid()\" [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete()\" [attr.maxlength]=\"maxlength()\" [attr.placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (change)=\"onChange()\" (blur)=\"_onBlur()\"/>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n input,\n model,\n output,\n} from '@angular/core';\nimport {HlmInputGroup, HlmInputGroupAddon, HlmInputGroupTextarea} from 'yukit-web/helm/input-group';\nimport {HlmTextarea} from 'yukit-web/helm/textarea';\nimport {YuwLeftAddonDirective, YuwRightAddonDirective} from '../input/input-addon.directive';\nimport type {YuwTextFieldContract} from '../../interface/text-field.interface';\nimport {cn} from '../../utils/cn';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\n\nlet nextYuwTextareaId = 0;\n\n/**\n * Multi-line text input control supporting auto-growing content, character limits, row count, and form integration (`ngModel`, `formControlName`).\n *\n * Inputs / Models:\n * - `value`: Two-way text string.\n * - `inputId`: `id` applied to the native textarea, for external `<label for>` association.\n * - `disabled`: Disables input interaction.\n * - `readonly`: Makes the field read-only.\n * - `required`: Marks the field as required.\n * - `invalid`: Forces invalid styling.\n * - `name`: HTML `name` attribute.\n * - `autocomplete`: Native `autocomplete` attribute.\n * - `rows`: Fallback visible height in lines where `field-sizing` is unsupported; ignored otherwise.\n * - `maxlength`: Hard cap on character count, enforced natively by the browser.\n * - `placeholder`: Hint text shown inside the empty field.\n * - `class`: Extra classes merged onto the visual root (the textarea, or the input group when addons are present).\n *\n * Outputs:\n * - `committed`: Emits the current value on the native `change` event (blur/enter).\n *\n * Usage:\n * ```html\n * <yuw-textarea [(value)]=\"bio\" placeholder=\"Write your biography...\" [rows]=\"4\" />\n * <yuw-textarea formControlName=\"comments\" [maxlength]=\"500\" />\n * ```\n */\n@Component({\n selector: 'yuw-textarea',\n imports: [HlmTextarea, HlmInputGroup, HlmInputGroupTextarea, HlmInputGroupAddon],\n providers: [provideValueAccessor(YuwTextareaComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwTextareaComponent extends YuwValueAccessorBase<string> implements YuwTextFieldContract {\n readonly value = model<string>('');\n\n readonly inputId = input<string | undefined>(undefined);\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly readonly = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly autocomplete = input<string | undefined>(undefined);\n readonly rows = input<number | undefined>(undefined);\n readonly maxlength = input<number | undefined>(undefined);\n readonly placeholder = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly committed = output<string>();\n\n protected readonly _autoId = `yuw-textarea-${++nextYuwTextareaId}`;\n\n protected readonly _inputId = computed(() => this.inputId() ?? this._autoId);\n\n protected readonly _classes = computed(() => cn(this.userClass()));\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n private readonly _leftAddons = contentChildren(YuwLeftAddonDirective);\n private readonly _rightAddons = contentChildren(YuwRightAddonDirective);\n\n protected readonly _hasLeftAddon = computed(() => this._leftAddons().length > 0);\n protected readonly _hasRightAddon = computed(() => this._rightAddons().length > 0);\n\n protected readonly _hasAddons = computed(() => this._hasLeftAddon() || this._hasRightAddon());\n\n protected onInput(event: Event): void {\n this._commit((event.target as HTMLTextAreaElement).value);\n }\n\n protected _emptyValue(): string {\n return '';\n }\n\n protected onChange(): void {\n this.committed.emit(this.value());\n }\n}\n","<!-- The control is repeated in both branches on purpose: a shared ng-template cannot express it,\n because the two variants differ in a statically-matched directive (hlmInputGroupTextarea vs\n hlmTextarea) and Angular resolves directives at compile time — a single template would drag the\n group's reset classes into the bare case (or vice versa). Keep the binding lists in sync. -->\n@if (_hasAddons()) {\n<hlm-input-group [class]=\"_classes()\">\n @if (_hasLeftAddon()) {\n <hlm-input-group-addon align=\"block-start\">\n <ng-content select=\"yuw-left-addon\" />\n </hlm-input-group-addon>\n }\n\n <textarea hlmInputGroupTextarea [id]=\"_inputId()\" [value]=\"value()\" [disabled]=\"_disabled()\" [readOnly]=\"readonly()\"\n [required]=\"required()\" [forceInvalid]=\"invalid()\" [attr.rows]=\"rows()\" [attr.maxlength]=\"maxlength()\"\n [attr.name]=\"name()\" [attr.autocomplete]=\"autocomplete()\" [attr.placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\" (change)=\"onChange()\" (blur)=\"_onBlur()\"></textarea>\n\n @if (_hasRightAddon()) {\n <hlm-input-group-addon align=\"block-end\">\n <ng-content select=\"yuw-right-addon\" />\n </hlm-input-group-addon>\n }\n</hlm-input-group>\n} @else {\n<textarea hlmTextarea [class]=\"_classes()\" [id]=\"_inputId()\" [value]=\"value()\" [disabled]=\"_disabled()\" [readOnly]=\"readonly()\" [required]=\"required()\"\n [forceInvalid]=\"invalid()\" [attr.rows]=\"rows()\" [attr.maxlength]=\"maxlength()\" [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete()\" [attr.placeholder]=\"placeholder()\" (input)=\"onInput($event)\"\n (change)=\"onChange()\" (blur)=\"_onBlur()\"></textarea>\n}","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideSearch, lucideX} from '@ng-icons/lucide';\nimport {HlmInputGroupImports} from 'yukit-web/helm/input-group';\nimport type {YuwTextFieldContract} from '../../interface/text-field.interface';\nimport {cn} from '../../utils/cn';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\n\n/** Module-level counter backing each instance's stable fallback `id`. */\nlet nextYuwSearchInputId = 0;\n\n/**\n * Search input control featuring a leading search icon, optional clear button, and form integration (`ngModel`, `formControlName`).\n *\n * Inputs / Models:\n * - `value`: Two-way search query string.\n * - `inputId`: `id` applied to the native input, for external `<label for>` association.\n * - `disabled`: Disables input interaction.\n * - `readonly`: Makes the field read-only.\n * - `required`: Marks the field as required.\n * - `invalid`: Forces invalid styling.\n * - `name`: HTML `name` attribute.\n * - `autocomplete`: Native `autocomplete` attribute.\n * - `placeholder`: Hint text shown inside the empty field.\n * - `clearAriaLabel`: Accessible name for the clear button. Supplying it enables the clear button; omit to hide it.\n * - `class`: Extra classes merged onto the input group.\n *\n * Outputs:\n * - `searched`: Emits the current query string on every keystroke.\n * - `committed`: Emits the current query string when the user presses Enter — for searches that\n * hit a server on explicit submit rather than on every keystroke.\n *\n * Usage:\n * ```html\n * <yuw-search-input [(value)]=\"query\" placeholder=\"Search items...\" clearAriaLabel=\"Clear search\" (searched)=\"onSearch($event)\" />\n * ```\n */\n@Component({\n selector: 'yuw-search-input',\n imports: [...HlmInputGroupImports, NgIcon],\n providers: [provideValueAccessor(YuwSearchInputComponent), provideIcons({lucideSearch, lucideX})],\n host: {\n class: 'contents',\n },\n templateUrl: './search-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSearchInputComponent extends YuwValueAccessorBase<string> implements YuwTextFieldContract {\n readonly value = model<string>('');\n\n readonly inputId = input<string | undefined>(undefined);\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly readonly = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly autocomplete = input<string | undefined>(undefined);\n readonly placeholder = input<string | undefined>(undefined);\n readonly clearAriaLabel = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly searched = output<string>();\n\n readonly committed = output<string>();\n\n protected readonly _autoId = `yuw-search-input-${++nextYuwSearchInputId}`;\n\n protected readonly _inputId = computed(() => this.inputId() ?? this._autoId);\n\n protected readonly _classes = computed(() => cn(this.userClass()));\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected readonly _showClear = computed(\n () => this.clearAriaLabel() !== undefined && this.value().length > 0 && !this._disabled() && !this.readonly(),\n );\n\n private readonly _input = viewChild.required<ElementRef<HTMLInputElement>>('searchInput');\n\n protected _emptyValue(): string {\n return '';\n }\n\n protected onInput(event: Event): void {\n const next = (event.target as HTMLInputElement).value;\n this._commit(next);\n this.searched.emit(next);\n }\n\n protected onEnter(): void {\n this.committed.emit(this.value());\n }\n\n protected onClear(): void {\n this._commit('');\n this.searched.emit('');\n this._input().nativeElement.focus();\n }\n}\n","<hlm-input-group [class]=\"_classes()\">\n <hlm-input-group-addon align=\"inline-start\">\n <ng-icon name=\"lucideSearch\"/>\n </hlm-input-group-addon>\n\n <input\n #searchInput\n hlmInputGroupInput\n [id]=\"_inputId()\"\n type=\"text\"\n inputmode=\"search\"\n [value]=\"value()\"\n [disabled]=\"_disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [forceInvalid]=\"invalid()\"\n [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (keydown.enter)=\"onEnter()\"\n (blur)=\"_onBlur()\"\n />\n\n @if (_showClear()) {\n <hlm-input-group-addon align=\"inline-end\">\n <button hlmInputGroupButton size=\"icon-xs\" [attr.aria-label]=\"clearAriaLabel()\" (click)=\"onClear()\">\n <ng-icon name=\"lucideX\"/>\n </button>\n </hlm-input-group-addon>\n }\n</hlm-input-group>\n","/**\n * The reveal toggle's two states, as data rather than control flow — `agents.md` bans `switch`\n * over a mode, and a `[type]=\"masked() ? 'password' : 'text'\"` chain in the template would be the\n * same branch smeared across three separate bindings that can drift out of sync.\n *\n * Keyed by \"is the value currently masked\", so the component reads one boolean signal and gets\n * the matching input type and icon together, always consistent.\n */\nexport interface YuwPasswordRevealStateDto {\n inputType: 'password' | 'text';\n icon: 'lucideEye' | 'lucideEyeOff';\n struck: boolean;\n}\n\n/** Lookup replacing the branch, keyed by `` `${boolean}` `` so a boolean signal indexes it\n * directly (`STATES[`${masked()}`]`) with no ternary. Adding a third state (a \"peek while held\"\n * mode, say) means adding an entry here — open for extension, closed for modification. */\nexport const YUW_PASSWORD_REVEAL_STATES: Record<`${boolean}`, YuwPasswordRevealStateDto> = {\n true: {inputType: 'password', icon: 'lucideEyeOff', struck: true},\n false: {inputType: 'text', icon: 'lucideEye', struck: false},\n};\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model, output} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideEye, lucideEyeOff} from '@ng-icons/lucide';\nimport {HlmInputGroupImports} from 'yukit-web/helm/input-group';\nimport type {YuwTextFieldContract} from '../../interface/text-field.interface';\nimport {cn} from '../../utils/cn';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\nimport {YUW_PASSWORD_REVEAL_STATES} from './password-input.reveal';\n\n/** Module-level counter backing each instance's stable fallback `id`. */\nlet nextYuwPasswordInputId = 0;\n\n/**\n * Password input field with optional visibility toggle button and form integration (`ngModel`, `formControlName`).\n *\n * Inputs / Models:\n * - `value`: Two-way password string.\n * - `inputId`: `id` applied to the native input, for external `<label for>` association.\n * - `disabled`: Disables input interaction.\n * - `readonly`: Makes the field read-only.\n * - `required`: Marks the field as required.\n * - `invalid`: Forces invalid styling.\n * - `name`: HTML `name` attribute.\n * - `autocomplete`: Native `autocomplete` attribute (e.g. `'current-password'`, `'new-password'`).\n * - `placeholder`: Hint text shown inside the empty field.\n * - `revealAriaLabel`: Accessible name for the reveal toggle button. Supplying it enables the toggle; omit to hide it.\n * - `masked`: Two-way boolean controlling whether the value is masked. Default is `true` (masked). A parent can reset it (e.g. re-mask after a failed submit).\n * - `class`: Extra classes merged onto the input group.\n *\n * Outputs:\n * - `committed`: Emits the current value on the native `change` event (blur/enter).\n *\n * Usage:\n * ```html\n * <yuw-password-input [(value)]=\"password\" revealAriaLabel=\"Toggle password visibility\" />\n * <yuw-password-input formControlName=\"password\" autocomplete=\"current-password\" />\n * ```\n */\n@Component({\n selector: 'yuw-password-input',\n imports: [...HlmInputGroupImports, NgIcon],\n providers: [provideValueAccessor(YuwPasswordInputComponent), provideIcons({lucideEye, lucideEyeOff})],\n host: {\n class: 'contents',\n },\n templateUrl: './password-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwPasswordInputComponent extends YuwValueAccessorBase<string> implements YuwTextFieldContract {\n readonly value = model<string>('');\n\n readonly inputId = input<string | undefined>(undefined);\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly readonly = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly autocomplete = input<string | undefined>(undefined);\n readonly placeholder = input<string | undefined>(undefined);\n readonly revealAriaLabel = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly committed = output<string>();\n\n readonly masked = model<boolean>(true);\n\n protected readonly _autoId = `yuw-password-input-${++nextYuwPasswordInputId}`;\n\n protected readonly _inputId = computed(() => this.inputId() ?? this._autoId);\n\n protected readonly _classes = computed(() => cn(this.userClass()));\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected readonly _reveal = computed(() => YUW_PASSWORD_REVEAL_STATES[`${this.masked()}`]);\n\n protected _emptyValue(): string {\n return '';\n }\n \n protected onInput(event: Event): void {\n this._commit((event.target as HTMLInputElement).value);\n }\n\n protected onChange(): void {\n this.committed.emit(this.value());\n }\n\n protected onToggleReveal(): void {\n this.masked.update((masked) => !masked);\n }\n}\n","<hlm-input-group [class]=\"_classes()\">\n <input\n hlmInputGroupInput\n [id]=\"_inputId()\"\n [type]=\"_reveal().inputType\"\n [value]=\"value()\"\n [disabled]=\"_disabled()\"\n [readOnly]=\"readonly()\"\n [required]=\"required()\"\n [forceInvalid]=\"invalid()\"\n [attr.name]=\"name()\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (change)=\"onChange()\"\n (blur)=\"_onBlur()\"\n />\n\n @if (revealAriaLabel(); as label) {\n <hlm-input-group-addon align=\"inline-end\">\n <button\n hlmInputGroupButton\n size=\"icon-xs\"\n [disabled]=\"_disabled()\"\n [attr.aria-label]=\"label\"\n [attr.aria-pressed]=\"!_reveal().struck\"\n (click)=\"onToggleReveal()\"\n >\n <ng-icon [name]=\"_reveal().icon\"/>\n </button>\n </hlm-input-group-addon>\n }\n</hlm-input-group>\n","/**\n * One rendered group of OTP slots, with the absolute slot indices it contains.\n *\n * `HlmInputOtpSlot` needs an explicit `[index]` per slot, and those indices are absolute across\n * the whole input — the second group of a `3-3` layout holds slots 3,4,5, not 0,1,2. Precomputing\n * them here keeps the template to two plain `@for`s with no arithmetic and no method calls.\n */\nexport interface YuwInputOtpGroupDto {\n indices: number[];\n precededBySeparator: boolean;\n}\n\n/**\n * Expands a list of group sizes (`[3, 3]`) into the groups the template renders, assigning\n * absolute indices as it goes.\n *\n * Lives in its own file rather than inline in the component because `agents.md` wants the\n * component file to read as inputs, outputs, a couple of `computed()`s, done — and because this\n * is the one piece of real logic here, so it's the piece worth being able to test on its own.\n *\n * Sizes that are zero or negative are dropped: they'd contribute no slots but would still emit a\n * stray separator, so a typo like `[3, 0, 3]` would render a dangling dash between two groups.\n */\nexport function buildInputOtpGroups(groupSizes: readonly number[]): YuwInputOtpGroupDto[] {\n let nextIndex = 0;\n\n return groupSizes\n .filter((size) => size > 0)\n .map((size, groupPosition) => {\n const indices = Array.from({length: size}, (_, offset) => nextIndex + offset);\n nextIndex += size;\n return {indices, precededBySeparator: groupPosition > 0};\n });\n}\n\n/** Total slot count across every group — what `BrnInputOtp`'s own `length` input expects. Derived\n * from the same source as the groups so the two can never disagree, which is the bug you get from\n * accepting `length` and `groupSizes` as two independent inputs. */\nexport function totalInputOtpLength(groupSizes: readonly number[]): number {\n return groupSizes.filter((size) => size > 0).reduce((total, size) => total + size, 0);\n}\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model, output} from '@angular/core';\nimport {BrnInputOtp} from '@spartan-ng/brain/input-otp';\nimport {HlmInputOtpImports} from 'yukit-web/helm/input-otp';\nimport {cn} from '../../utils/cn';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\nimport {buildInputOtpGroups, totalInputOtpLength} from './input-otp.layout';\n\nexport type YuwInputOtpModeDto = 'numeric' | 'text';\n\n/** Module-level counter backing each instance's stable fallback `id`. */\nlet nextYuwInputOtpId = 0;\n\n/**\n * One-time password / verification code input component rendering grouped digit or text slots.\n *\n * Inputs / Models:\n * - `value`: Two-way OTP code string.\n * - `inputId`: `id` applied to the hidden native input, for external `<label for>` association.\n * - `groupSizes`: Slot counts per visual group (`number[]`). A separator renders between groups, e.g. `[3, 3]` gives `000-000`. Default is `[6]`.\n * - `mode`: Virtual-keyboard hint (`'numeric'`, `'text'`). Default is `'numeric'`.\n * - `disabled`: Disables input interaction.\n * - `invalid`: Forces invalid styling.\n * - `autofocus`: Focuses the field on init. Appropriate on dedicated verification screens.\n * - `transformPaste`: Normalizes pasted text before it fills the slots.\n * - `class`: Extra classes merged onto the OTP container.\n *\n * Outputs:\n * - `completed`: Emits the full code string once the final slot is filled (by typing or paste).\n *\n * Usage:\n * ```html\n * <yuw-input-otp [(value)]=\"code\" [groupSizes]=\"[3, 3]\" (completed)=\"verifyCode($event)\" />\n * <yuw-input-otp formControlName=\"otpCode\" [groupSizes]=\"[6]\" mode=\"numeric\" />\n * ```\n */\n@Component({\n selector: 'yuw-input-otp',\n imports: [BrnInputOtp, ...HlmInputOtpImports],\n providers: [provideValueAccessor(YuwInputOtpComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './input-otp.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwInputOtpComponent extends YuwValueAccessorBase<string> {\n readonly value = model<string>('');\n\n readonly inputId = input<string | undefined>(undefined);\n readonly groupSizes = input<readonly number[]>([6]);\n readonly mode = input<YuwInputOtpModeDto>('numeric');\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly autofocus = input(false, {transform: booleanAttribute});\n\n readonly transformPaste = input<(pastedText: string, length: number) => string>((pastedText) => pastedText);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly completed = output<string>();\n\n protected readonly _autoId = `yuw-input-otp-${++nextYuwInputOtpId}`;\n\n protected readonly _inputId = computed(() => this.inputId() ?? this._autoId);\n\n protected readonly _classes = computed(() => cn(this.userClass()));\n\n protected readonly _groups = computed(() => buildInputOtpGroups(this.groupSizes()));\n protected readonly _length = computed(() => totalInputOtpLength(this.groupSizes()));\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected _emptyValue(): string {\n return '';\n }\n\n protected onValueChange(next: string): void {\n this._commit(next);\n }\n}\n","<brn-input-otp\n hlmInputOtp\n [class]=\"_classes()\"\n [inputId]=\"_inputId()\"\n [length]=\"_length()\"\n [value]=\"value()\"\n [inputMode]=\"mode()\"\n [disabled]=\"_disabled()\"\n [autofocus]=\"autofocus()\"\n [transformPaste]=\"transformPaste()\"\n inputAutocomplete=\"one-time-code\"\n (valueChange)=\"onValueChange($event)\"\n (focusout)=\"_onBlur()\"\n (completed)=\"completed.emit($event)\"\n>\n @for (group of _groups(); track $index) {\n @if (group.precededBySeparator) {\n <hlm-input-otp-separator/>\n }\n\n <hlm-input-otp-group>\n @for (index of group.indices; track index) {\n <hlm-input-otp-slot [index]=\"index\" [forceInvalid]=\"invalid()\"/>\n }\n </hlm-input-otp-group>\n }\n</brn-input-otp>\n","import {Directive} from '@angular/core';\nimport {HlmLabel} from 'yukit-web/helm/label';\n\n/**\n * Form label directive applied directly to a native `<label>` element.\n *\n * Provides label styling and pairs with form controls using standard `for` attribute.\n *\n * Extends `HlmLabel` (instead of composing it via `hostDirectives`) because `id`/`for` are\n * inputs `HlmLabel` itself re-exposes from `BrnLabel` through its own `hostDirectives`, and\n * Angular's host-directive forwarding is not transitive (NG2017) — they can't be re-listed at\n * this level. Class inheritance carries the whole surface over unchanged: a static `for`/`id`\n * on the `<label>` reaches `BrnLabel` as an initial input, whose `[attr.for]` host binding then\n * re-writes the same value.\n *\n * Usage:\n * ```html\n * <label yuwLabel for=\"username\">Username</label>\n * <yuw-input inputId=\"username\" [(value)]=\"username\" />\n * ```\n */\n@Directive({\n selector: 'label[yuwLabel]',\n})\nexport class YuwLabel extends HlmLabel {\n}\n","import {cva} from 'class-variance-authority';\n\n/**\n * Class map for `yuw-checkbox`, layered on top of `HlmCheckbox`'s own classes.\n *\n * The base indeterminate treatment is unconditional — it's how *every* `yuw-checkbox` renders\n * that state, not a variant — so it lives in the cva base, while `secondary` is an opt-in\n * boolean variant layered on top.\n *\n * Order is load-bearing: the secondary classes override the base's `bg-primary`/`border-primary`,\n * and cva emits base classes before variant classes, so the component must pass the result\n * through `cn()` for `tailwind-merge` to keep the later (secondary) ones instead of shipping both\n * to the DOM and leaving it to specificity.\n */\nexport const checkboxVariants = cva(\n [\n 'data-[state=indeterminate]:bg-primary',\n 'dark:data-[state=indeterminate]:bg-primary',\n 'data-[state=indeterminate]:text-primary-foreground',\n 'data-[state=indeterminate]:[&>span]:hidden',\n 'data-[state=indeterminate]:after:h-0.5',\n 'data-[state=indeterminate]:after:w-2.5',\n 'data-[state=indeterminate]:after:rounded-full',\n 'data-[state=indeterminate]:after:bg-current',\n ],\n {\n variants: {\n secondary: {\n true: [\n 'data-[state=checked]:bg-(color:--neutrals-element-high)',\n 'data-[state=checked]:bg-(image:--neutrals-element-high-gradient)',\n 'data-[state=checked]:text-(--neutrals-overlay)',\n 'data-[state=checked]:border-(--neutrals-element-high)',\n 'data-[state=indeterminate]:bg-(color:--neutrals-element-high)',\n 'data-[state=indeterminate]:bg-(image:--neutrals-element-high-gradient)',\n 'data-[state=indeterminate]:text-(--neutrals-white)',\n 'data-[state=indeterminate]:border-(--neutrals-element-high)',\n 'dark:data-[state=indeterminate]:text-(--neutrals-black)',\n ],\n false: 'data-[state=indeterminate]:border-primary',\n },\n },\n defaultVariants: {\n secondary: false,\n },\n },\n);\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {HlmCheckbox} from 'yukit-web/helm/checkbox';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\nimport {YuwLabel} from '../label/label.directive';\nimport {cn} from '../../utils/cn';\nimport {checkboxVariants} from './checkbox.variants';\n\n/**\n * Checkbox control supporting two-way boolean binding, form integration (`ngModel`, `formControlName`),\n * indeterminate state, and secondary styling variant.\n *\n * Projected content becomes the checkbox's clickable label: the control is wrapped in a `<label>`,\n * so clicking the text toggles it and the text is announced as the accessible name. Without\n * projected content, pair it with an external `<label [for]>` via `inputId` or set `ariaLabel`.\n *\n * Inputs / Models:\n * - `value` / `checked`: Two-way boolean state of the checkbox. Default is `false`.\n * - `indeterminate`: Two-way boolean state for mixed/indeterminate checkbox appearance. Default is `false`.\n * - `disabled`: Disables checkbox interaction.\n * - `required`: Marks checkbox as required.\n * - `invalid`: Forces invalid styling.\n * - `name`: Form input name attribute.\n * - `inputId`: ID set on the native input element for `<label [for]>` matching.\n * - `ariaLabel`: Accessible name for screen readers when there's no visible label.\n * - `ariaLabelledby`: ID of an external element that labels the checkbox.\n * - `ariaDescribedby`: ID of an external element that describes the checkbox (hints, errors).\n * - `secondary`: Enables secondary color variant styling.\n *\n * Usage:\n * ```html\n * <yuw-checkbox [(checked)]=\"acceptedTerms\">Accept terms</yuw-checkbox>\n * <yuw-checkbox [(indeterminate)]=\"isMixed\" [(checked)]=\"allSelected\" />\n * <yuw-checkbox formControlName=\"rememberMe\" />\n * ```\n */\n@Component({\n selector: 'yuw-checkbox',\n imports: [HlmCheckbox, YuwLabel],\n providers: [provideValueAccessor(YuwCheckboxComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class YuwCheckboxComponent extends YuwValueAccessorBase<boolean> {\n readonly value = model<boolean>(false, {alias: 'checked'});\n readonly indeterminate = model(false);\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly invalid = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly inputId = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly ariaDescribedby = input<string | undefined>(undefined);\n readonly secondary = input(false, {transform: booleanAttribute});\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected readonly _class = computed(() => cn(checkboxVariants({secondary: this.secondary()})));\n\n protected _emptyValue(): boolean {\n return false;\n }\n\n protected onCheckedChange(checked: boolean): void {\n this._commit(checked);\n }\n}\n","<label yuwLabel class=\"gap-3\" (focusout)=\"_onBlur()\">\n <hlm-checkbox [class]=\"_class()\" [checked]=\"value()\" [(indeterminate)]=\"indeterminate\" [disabled]=\"_disabled()\"\n [required]=\"required()\" [forceInvalid]=\"invalid()\" [name]=\"name() ?? null\" [inputId]=\"inputId() ?? null\"\n [aria-label]=\"ariaLabel() ?? null\" [aria-labelledby]=\"ariaLabelledby() ?? null\"\n [aria-describedby]=\"ariaDescribedby() ?? null\" (checkedChange)=\"onCheckedChange($event)\"/>\n <ng-content/>\n</label>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {HlmSwitchImports} from 'yukit-web/helm/switch';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\nimport {YuwLabel} from '../label/label.directive';\n\nexport type YuwSwitchSizeDto = 'default' | 'sm';\n\n/**\n * Toggle switch control for binary settings and immediate state changes.\n *\n * Projected content becomes the switch's clickable label: the control is wrapped in a `<label>`,\n * so clicking the text toggles it and the text is announced as the accessible name. Without\n * projected content, pair it with an external `<label [for]>` via `inputId` or set `ariaLabel`.\n *\n * Inputs / Models:\n * - `checked` (alias for `value`): Two-way boolean on/off state. Bind as `[(checked)]`.\n * - `size`: Track size variant (`'default'`, `'sm'`). Default is `'default'`.\n * - `disabled`: Disables switch interaction.\n * - `inputId`: HTML `id` for the underlying control, enabling external `<label for=\"...\">` association.\n * - `ariaLabel`: Accessible name for switches with no visible adjacent label.\n *\n * Usage:\n * ```html\n * <yuw-switch [(checked)]=\"notificationsEnabled\">Enable Notifications</yuw-switch>\n * <yuw-switch formControlName=\"darkMode\" size=\"sm\" />\n * ```\n */\n@Component({\n selector: 'yuw-switch',\n imports: [...HlmSwitchImports, YuwLabel],\n providers: [provideValueAccessor(YuwSwitchComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './switch.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSwitchComponent extends YuwValueAccessorBase<boolean> {\n readonly value = model<boolean>(false, {alias: 'checked'});\n\n readonly size = input<YuwSwitchSizeDto>('default');\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly inputId = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n protected _emptyValue(): boolean {\n return false;\n }\n\n protected onCheckedChange(checked: boolean): void {\n this._commit(checked);\n }\n}\n","<label yuwLabel class=\"gap-3\" (focusout)=\"_onBlur()\">\n <hlm-switch\n [checked]=\"value()\"\n [size]=\"size()\"\n [disabled]=\"_disabled()\"\n [inputId]=\"inputId() ?? null\"\n [aria-label]=\"ariaLabel() ?? null\"\n [aria-labelledby]=\"ariaLabelledby() ?? null\"\n [aria-describedby]=\"ariaDescribedby() ?? null\"\n (checkedChange)=\"onCheckedChange($event)\"\n />\n <ng-content/>\n</label>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {HlmRadioGroupImports} from 'yukit-web/helm/radio-group';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\nimport {cn} from '../../utils/cn';\nimport {YuwLabel} from '../label/label.directive';\nimport type {YuwRadioOptionDto} from './radio-option.interface';\n\n/** Module-level counter so every unnamed group gets its own radio `name`. Binding `[name]`\n * unconditionally overrides Brain's autogenerated unique name, and an empty-string fallback\n * would make two unnamed groups on the same page share `name=\"\"` — i.e. act as one group. */\nlet nextUniqueId = 0;\n\n/**\n * Radio button group component for selecting a single option from a list.\n *\n * Inputs / Models:\n * - `value`: Two-way selected option value (`string | undefined`). `undefined` means nothing is selected.\n * - `options`: Required array of radio options (`YuwRadioOptionDto[]`).\n * - `disabled`: Disables all radio options.\n * - `required`: Marks the group as required.\n * - `name`: Shared HTML `name` attribute for all radios, making them mutually exclusive in native\n * form submission. When omitted, a unique per-instance name is generated.\n * - `ariaLabel`: Accessible name for the `role=\"radiogroup\"` element. User-facing text — the\n * consuming app is responsible for providing it translated.\n * - `ariaLabelledby`: ID of an external element (e.g. a visible heading) that labels the group.\n * - `class`: Extra classes merged onto the group container (layout tweaks like\n * `grid-cols-2` or `flex-row`). The `gap-3` base stays unless overridden.\n *\n * Usage:\n * ```html\n * <yuw-radio-group [options]=\"planOptions\" [(value)]=\"selectedPlan\" ariaLabel=\"Plan\" />\n * <yuw-radio-group [options]=\"genderOptions\" formControlName=\"gender\" ariaLabelledby=\"gender-heading\" />\n * ```\n */\n@Component({\n selector: 'yuw-radio-group',\n imports: [...HlmRadioGroupImports, YuwLabel],\n providers: [provideValueAccessor(YuwRadioGroupComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './radio-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwRadioGroupComponent extends YuwValueAccessorBase<string | undefined> {\n readonly value = model<string | undefined>(undefined);\n\n readonly options = input.required<readonly YuwRadioOptionDto[]>();\n readonly disabled = input(false, {transform: booleanAttribute});\n readonly required = input(false, {transform: booleanAttribute});\n readonly name = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly userClass = input<string>('', {alias: 'class'});\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n private readonly _generatedName = `yuw-radio-group-${++nextUniqueId}`;\n\n protected readonly _name = computed(() => this.name() ?? this._generatedName);\n\n protected readonly _groupClass = computed(() => cn('gap-3', this.userClass()));\n\n protected _emptyValue(): string | undefined {\n return undefined;\n }\n\n protected onValueChange(next: string): void {\n this._commit(next);\n }\n}\n","<hlm-radio-group\n [class]=\"_groupClass()\"\n [value]=\"value() ?? ''\"\n [disabled]=\"_disabled()\"\n [required]=\"required()\"\n [name]=\"_name()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-labelledby]=\"ariaLabelledby() ?? null\"\n (valueChange)=\"onValueChange($event)\"\n (focusout)=\"_onBlur()\"\n>\n @for (option of options(); track option.value) {\n <label yuwLabel class=\"gap-3\">\n <hlm-radio [value]=\"option.value\" [disabled]=\"option.disabled ?? false\">\n <hlm-radio-indicator indicator/>\n </hlm-radio>\n\n {{ option.label }}\n </label>\n }\n</hlm-radio-group>\n","import {Directive} from '@angular/core';\nimport {HlmSkeleton} from 'yukit-web/helm/skeleton';\n\n/**\n * Loading skeleton placeholder directive with pulse animation effect.\n *\n * Sized using standard CSS height and width classes on the host element.\n *\n * Usage:\n * ```html\n * <div yuwSkeleton class=\"h-4 w-32 rounded\"></div>\n * <div yuwSkeleton class=\"size-10 rounded-full\"></div>\n * ```\n */\n@Directive({\n selector: '[yuwSkeleton]',\n hostDirectives: [HlmSkeleton],\n host: {\n 'aria-hidden': 'true',\n },\n})\nexport class YuwSkeletonDirective {\n}\n","import {Directive} from '@angular/core';\nimport {\n HlmCard,\n HlmCardAction,\n HlmCardContent,\n HlmCardDescription,\n HlmCardFooter,\n HlmCardHeader,\n HlmCardTitle,\n} from 'yukit-web/helm/card';\n\n/**\n * Container directive for card components.\n * Accepts optional `size` input (e.g. `'default'` or `'sm'`).\n *\n * Usage:\n * ```html\n * <div yuwCard>\n * <div yuwCardHeader>\n * <h3 yuwCardTitle>Title</h3>\n * <p yuwCardDescription>Description text</p>\n * </div>\n * <div yuwCardContent>Main content</div>\n * <div yuwCardFooter>Footer content</div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwCard]',\n hostDirectives: [{directive: HlmCard, inputs: ['size']}],\n})\nexport class YuwCardDirective {\n}\n\n/** Header container directive for a card. */\n@Directive({\n selector: '[yuwCardHeader]',\n hostDirectives: [HlmCardHeader],\n})\nexport class YuwCardHeaderDirective {\n}\n\n/** Heading directive for card title text. */\n@Directive({\n selector: '[yuwCardTitle]',\n hostDirectives: [HlmCardTitle],\n})\nexport class YuwCardTitleDirective {\n}\n\n/** Subtitle or description directive for card text. */\n@Directive({\n selector: '[yuwCardDescription]',\n hostDirectives: [HlmCardDescription],\n})\nexport class YuwCardDescriptionDirective {\n}\n\n/** Header action directive for placing top-right controls (e.g. menu button or status badge). */\n@Directive({\n selector: '[yuwCardAction]',\n hostDirectives: [HlmCardAction],\n})\nexport class YuwCardActionDirective {\n}\n\n/** Main body container directive for card content. */\n@Directive({\n selector: '[yuwCardContent]',\n hostDirectives: [HlmCardContent],\n})\nexport class YuwCardContentDirective {\n}\n\n/** Footer container directive for card action buttons or summary info. */\n@Directive({\n selector: '[yuwCardFooter]',\n hostDirectives: [HlmCardFooter],\n})\nexport class YuwCardFooterDirective {\n}\n\n/** Every card part, for a consumer's `imports`. */\nexport const YuwCardImports = [\n YuwCardDirective,\n YuwCardHeaderDirective,\n YuwCardTitleDirective,\n YuwCardDescriptionDirective,\n YuwCardActionDirective,\n YuwCardContentDirective,\n YuwCardFooterDirective,\n] as const;\n","import {Directive} from '@angular/core';\nimport {\n HlmEmpty,\n HlmEmptyContent,\n HlmEmptyDescription,\n HlmEmptyHeader,\n HlmEmptyMedia,\n HlmEmptyTitle,\n} from 'yukit-web/helm/empty';\n\n/**\n * Container directive for empty-state layout panels (e.g., \"No search results\", \"Inbox empty\").\n *\n * Usage:\n * ```html\n * <div yuwEmpty>\n * <div yuwEmptyHeader>\n * <div yuwEmptyMedia>\n * <ng-icon name=\"lucideFolderOpen\" />\n * </div>\n * <h3 yuwEmptyTitle>No files found</h3>\n * <p yuwEmptyDescription>Try uploading a file or changing your query.</p>\n * </div>\n * <div yuwEmptyContent>\n * <yuw-button>Upload File</yuw-button>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwEmpty]',\n hostDirectives: [HlmEmpty],\n})\nexport class YuwEmptyDirective {\n}\n\n/** Header container directive for empty-state title and media. */\n@Directive({\n selector: '[yuwEmptyHeader]',\n hostDirectives: [HlmEmptyHeader],\n})\nexport class YuwEmptyHeaderDirective {\n}\n\n/** Slot directive for empty-state icons or illustrations. Supports `variant` input. */\n@Directive({\n selector: '[yuwEmptyMedia]',\n hostDirectives: [{directive: HlmEmptyMedia, inputs: ['variant']}],\n})\nexport class YuwEmptyMediaDirective {\n}\n\n/** Title heading directive for empty state message. */\n@Directive({\n selector: '[yuwEmptyTitle]',\n hostDirectives: [HlmEmptyTitle],\n})\nexport class YuwEmptyTitleDirective {\n}\n\n/** Description paragraph directive explaining the empty state. */\n@Directive({\n selector: '[yuwEmptyDescription]',\n hostDirectives: [HlmEmptyDescription],\n})\nexport class YuwEmptyDescriptionDirective {\n}\n\n/** Content slot directive for action buttons or call-to-action controls in an empty state. */\n@Directive({\n selector: '[yuwEmptyContent]',\n hostDirectives: [HlmEmptyContent],\n})\nexport class YuwEmptyContentDirective {\n}\n\n/** Every empty-state part, for a consumer's `imports`. */\nexport const YuwEmptyImports = [\n YuwEmptyDirective,\n YuwEmptyHeaderDirective,\n YuwEmptyMediaDirective,\n YuwEmptyTitleDirective,\n YuwEmptyDescriptionDirective,\n YuwEmptyContentDirective,\n] as const;\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {HlmDropdownMenuCheckboxIndicator} from 'yukit-web/helm/dropdown-menu';\n\n/**\n * Checkmark shown at the trailing edge of a `[yuwContextMenuCheckbox]` item while it is checked.\n *\n * Place it inside the checkbox item; the helm indicator positions itself absolutely against the\n * item and only becomes visible when the item carries `data-checked`.\n *\n * Usage:\n * ```html\n * <button yuwContextMenuCheckbox [checked]=\"showArchived()\" (triggered)=\"toggleArchived()\">\n * Show archived\n * <yuw-context-menu-checkbox-indicator />\n * </button>\n * ```\n */\n@Component({\n selector: 'yuw-context-menu-checkbox-indicator',\n imports: [HlmDropdownMenuCheckboxIndicator],\n host: {\n class: 'contents',\n },\n templateUrl: './context-menu-checkbox-indicator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwContextMenuCheckboxIndicatorComponent {\n}\n","<hlm-dropdown-menu-checkbox-indicator/>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {HlmDropdownMenuRadioIndicator} from 'yukit-web/helm/dropdown-menu';\n\n/**\n * Mark shown at the trailing edge of a `[yuwContextMenuRadio]` item while it is selected.\n *\n * Place it inside the radio item; the helm indicator positions itself absolutely against the\n * item and only becomes visible when the item carries `data-checked`.\n *\n * Usage:\n * ```html\n * <button yuwContextMenuRadio [checked]=\"order() === 'asc'\" (triggered)=\"setOrder('asc')\">\n * Ascending\n * <yuw-context-menu-radio-indicator />\n * </button>\n * ```\n */\n@Component({\n selector: 'yuw-context-menu-radio-indicator',\n imports: [HlmDropdownMenuRadioIndicator],\n host: {\n class: 'contents',\n },\n templateUrl: './context-menu-radio-indicator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwContextMenuRadioIndicatorComponent {\n}\n","<hlm-dropdown-menu-radio-indicator/>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {HlmDropdownMenuItemSubIndicator} from 'yukit-web/helm/dropdown-menu';\n\n/**\n * Trailing chevron for a `[yuwContextMenuSubTrigger]` item, signalling that it opens a nested\n * sub-menu. Flips automatically in RTL layouts.\n *\n * Usage:\n * ```html\n * <button [yuwContextMenuSubTrigger]=\"subMenu\">\n * More tools\n * <yuw-context-menu-sub-indicator />\n * </button>\n * ```\n */\n@Component({\n selector: 'yuw-context-menu-sub-indicator',\n imports: [HlmDropdownMenuItemSubIndicator],\n host: {\n class: 'contents',\n },\n templateUrl: './context-menu-sub-indicator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwContextMenuSubIndicatorComponent {\n}\n","<hlm-dropdown-menu-item-sub-indicator/>\n","import {\n CdkContextMenuTrigger,\n CdkMenuItem,\n CdkMenuItemCheckbox,\n CdkMenuItemRadio,\n CdkMenuTrigger\n} from '@angular/cdk/menu';\nimport {booleanAttribute, Directive, effect, inject, input, TemplateRef} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {HlmContextMenuTrigger} from 'yukit-web/helm/context-menu';\nimport {\n HlmDropdownMenu,\n HlmDropdownMenuCheckbox,\n HlmDropdownMenuGroup,\n HlmDropdownMenuItem,\n HlmDropdownMenuLabel,\n HlmDropdownMenuRadio,\n HlmDropdownMenuSeparator,\n HlmDropdownMenuShortcut,\n HlmDropdownMenuSub,\n HlmDropdownMenuSubTrigger,\n} from 'yukit-web/helm/dropdown-menu';\nimport {YuwContextMenuCheckboxIndicatorComponent} from './context-menu-checkbox-indicator.component';\nimport {YuwContextMenuRadioIndicatorComponent} from './context-menu-radio-indicator.component';\nimport {YuwContextMenuSubIndicatorComponent} from './context-menu-sub-indicator.component';\n\n/**\n * Context menu directives suite based on right-click actions and panel controls.\n *\n * Why some inputs/outputs below are bridged imperatively instead of forwarded via\n * `hostDirectives`: Angular only lets a wrapper re-expose a host directive's *own* (or\n * class-inherited) inputs/outputs. Names the helm layer itself only *exposes* from its own host\n * directives (`hlmContextMenuTrigger`, `hlmContextMenuOpened`/`hlmContextMenuClosed`, the items'\n * `checked`/`disabled`/`keepOpen`/`triggered`) are not re-exposable one level further — the\n * compiler rejects the mapping with NG2017 (\"does not have an input with a public name of …\"),\n * and the runtime's `validateMappings` enforces the same rule. Verified against Angular 21.2\n * (`validateHostDirectiveMappings` in the compiler, `validateMappings` in core) and reproduced\n * with an isolated `ngc` compile. Own inputs of the helm classes (`disabled`/`align`/`side` on\n * the trigger, `inset`/`variant` on items, `sideOffset` on the panel) *are* forwarded\n * declaratively.\n */\n/**\n * Attach to an element to open a context menu upon right-clicking.\n *\n * Usage:\n * ```html\n * <div [yuwContextMenuTrigger]=\"menu\">Right-click me</div>\n *\n * <ng-template #menu>\n * <div yuwContextMenu>\n * <button yuwContextMenuItem (triggered)=\"onEdit()\">Edit</button>\n * <button yuwContextMenuItem variant=\"destructive\" (triggered)=\"onDelete()\">Delete</button>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[yuwContextMenuTrigger]',\n hostDirectives: [\n {\n directive: HlmContextMenuTrigger,\n inputs: ['disabled', 'align', 'side'],\n },\n ],\n})\nexport class YuwContextMenuTriggerDirective {\n private readonly _trigger = inject(CdkContextMenuTrigger, {host: true});\n\n readonly menu = input.required<TemplateRef<unknown>>({alias: 'yuwContextMenuTrigger'});\n readonly menuData = input<unknown>(undefined, {alias: 'yuwContextMenuTriggerData'});\n\n readonly opened = outputFromObservable<void>(this._trigger.opened);\n readonly closed = outputFromObservable<void>(this._trigger.closed);\n\n constructor() {\n effect(() => {\n this._trigger.menuTemplateRef = this.menu();\n this._trigger.menuData = this.menuData();\n });\n }\n}\n\n/** Container directive for context menu options, placed inside the context menu template. */\n@Directive({\n selector: '[yuwContextMenu]',\n hostDirectives: [{directive: HlmDropdownMenu, inputs: ['sideOffset']}],\n})\nexport class YuwContextMenuDirective {\n}\n\n/** Interactive action item within a context menu. Place on a `<button>` element. */\n@Directive({\n selector: '[yuwContextMenuItem]',\n hostDirectives: [{directive: HlmDropdownMenuItem, inputs: ['disabled', 'variant', 'inset']}],\n})\nexport class YuwContextMenuItemDirective {\n private readonly _item = inject(CdkMenuItem, {host: true});\n readonly triggered = outputFromObservable<void>(this._item.triggered);\n}\n\n/**\n * Checkable action item within a context menu. Place on a `<button>` element and project a\n * `<yuw-context-menu-checkbox-indicator />` to show the checkmark while checked.\n *\n * Toggling keeps the menu open (the helm default). The `checked` input drives the state; listen\n * to `triggered` to flip it in the consumer.\n *\n * Usage:\n * ```html\n * <button yuwContextMenuCheckbox [checked]=\"showArchived()\" (triggered)=\"toggleArchived()\">\n * Show archived\n * <yuw-context-menu-checkbox-indicator />\n * </button>\n * ```\n */\n@Directive({\n selector: '[yuwContextMenuCheckbox]',\n hostDirectives: [{directive: HlmDropdownMenuCheckbox, inputs: ['inset']}],\n})\nexport class YuwContextMenuCheckboxDirective {\n private readonly _item = inject(CdkMenuItemCheckbox, {host: true});\n\n readonly checked = input(false, {transform: booleanAttribute});\n readonly disabled = input(false, {transform: booleanAttribute});\n\n readonly triggered = outputFromObservable<void>(this._item.triggered);\n\n constructor() {\n effect(() => {\n this._item.checked = this.checked();\n this._item.disabled = this.disabled();\n });\n }\n}\n\n/**\n * Single-select (radio) item within a context menu. Place on a `<button>` element inside a\n * `[yuwContextMenuGroup]` and project a `<yuw-context-menu-radio-indicator />` to show the mark\n * while selected.\n *\n * Selecting keeps the menu open (the helm default). The `checked` input drives the state; listen\n * to `triggered` to set it in the consumer.\n *\n * Usage:\n * ```html\n * <div yuwContextMenuGroup>\n * <button yuwContextMenuRadio [checked]=\"order() === 'asc'\" (triggered)=\"setOrder('asc')\">\n * Ascending\n * <yuw-context-menu-radio-indicator />\n * </button>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwContextMenuRadio]',\n hostDirectives: [HlmDropdownMenuRadio],\n})\nexport class YuwContextMenuRadioDirective {\n private readonly _item = inject(CdkMenuItemRadio, {host: true});\n\n readonly checked = input(false, {transform: booleanAttribute});\n readonly disabled = input(false, {transform: booleanAttribute});\n\n readonly triggered = outputFromObservable<void>(this._item.triggered);\n\n constructor() {\n effect(() => {\n this._item.checked = this.checked();\n this._item.disabled = this.disabled();\n });\n }\n}\n\n/** Section heading/label within a context menu. */\n@Directive({\n selector: '[yuwContextMenuLabel]',\n hostDirectives: [{directive: HlmDropdownMenuLabel, inputs: ['inset']}],\n})\nexport class YuwContextMenuLabelDirective {\n}\n\n/** Group container for grouping context menu items (required around `[yuwContextMenuRadio]` sets). */\n@Directive({\n selector: '[yuwContextMenuGroup]',\n hostDirectives: [HlmDropdownMenuGroup],\n})\nexport class YuwContextMenuGroupDirective {\n}\n\n/** Visual divider line between context menu items. */\n@Directive({\n selector: '[yuwContextMenuSeparator]',\n hostDirectives: [HlmDropdownMenuSeparator],\n})\nexport class YuwContextMenuSeparatorDirective {\n}\n\n/** Text hint for a keyboard shortcut displayed alongside a context menu item. */\n@Directive({\n selector: '[yuwContextMenuShortcut]',\n hostDirectives: [HlmDropdownMenuShortcut],\n})\nexport class YuwContextMenuShortcutDirective {\n}\n\n/** Container directive for nesting a sub-level context menu. */\n@Directive({\n selector: '[yuwContextMenuSub]',\n hostDirectives: [HlmDropdownMenuSub],\n})\nexport class YuwContextMenuSubDirective {\n}\n\n/**\n * Trigger item for expanding a nested sub-context menu.\n *\n * Usage:\n * ```html\n * <button [yuwContextMenuSubTrigger]=\"subMenu\">\n * More tools\n * <yuw-context-menu-sub-indicator />\n * </button>\n * ```\n */\n@Directive({\n selector: '[yuwContextMenuSubTrigger]',\n hostDirectives: [{directive: HlmDropdownMenuSubTrigger, inputs: ['align', 'side']}],\n})\nexport class YuwContextMenuSubTriggerDirective {\n private readonly _trigger = inject(CdkMenuTrigger, {host: true});\n\n readonly menu = input.required<TemplateRef<unknown>>({alias: 'yuwContextMenuSubTrigger'});\n\n constructor() {\n effect(() => {\n this._trigger.menuTemplateRef = this.menu();\n });\n }\n}\n\n/** Every context-menu part, for a consumer's `imports`. */\nexport const YuwContextMenuImports = [\n YuwContextMenuTriggerDirective,\n YuwContextMenuDirective,\n YuwContextMenuItemDirective,\n YuwContextMenuCheckboxDirective,\n YuwContextMenuCheckboxIndicatorComponent,\n YuwContextMenuRadioDirective,\n YuwContextMenuRadioIndicatorComponent,\n YuwContextMenuLabelDirective,\n YuwContextMenuGroupDirective,\n YuwContextMenuSeparatorDirective,\n YuwContextMenuShortcutDirective,\n YuwContextMenuSubDirective,\n YuwContextMenuSubTriggerDirective,\n YuwContextMenuSubIndicatorComponent,\n] as const;\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {\n HlmDatePickerImports,\n injectHlmDatePickerConfig,\n injectHlmDatePickerMultiConfig,\n injectHlmDateRangePickerConfig,\n injectHlmMonthYearPickerConfig,\n} from 'yukit-web/helm/date-picker';\nimport {provideValueAccessor, YuwValueAccessorBase} from '../../utils/value-accessor';\n\nexport type YuwDatepickerValue = Date | [Date, Date] | Date[] | null;\nexport type YuwDatepickerModeDto = 'single' | 'range' | 'multiple' | 'monthYear';\n\n/** Module-level counter for the fallback trigger id, so external labels always have a stable,\n * unique target even when the consumer doesn't pass `buttonId`. */\nlet nextUniqueId = 0;\n\n/**\n * Date picker control supporting single date, date range, multiple dates, or month/year pick modes.\n *\n * Inputs / Models:\n * - `mode`: Selection mode (`'single'`, `'range'`, `'multiple'`, `'monthYear'`). Default is `'single'`.\n * - `value`: Two-way selected date(s) (`YuwDatepickerValue`). Shape follows `mode`. Emits\n * `valueChange` on every selection change.\n * - `disabled`: Disables the control.\n * - `placeholder`: Text shown on the trigger while nothing is selected.\n * - `minDate`: Earliest selectable date.\n * - `maxDate`: Latest selectable date.\n * - `captionLayout`: Calendar caption mode — `'dropdown'` adds month/year dropdowns for faster year navigation. Default is `'label'`.\n * Ignored in `monthYear` mode: that picker renders its own month/year grid and has no calendar caption.\n * - `align`: Popover alignment relative to trigger (`'start'`, `'center'`, `'end'`). Default is `'start'`.\n * - `buttonId`: HTML `id` for the trigger button, enabling external `<label for=\"...\">`\n * association. When omitted, a unique per-instance id is generated.\n * - `class`: Extra classes merged onto the trigger button (e.g. a width), consumer classes win.\n * - `invalid`: Forces invalid styling.\n * - `formatDate`: Custom date formatter function `(date: Date) => string` for the trigger label.\n * In `range`/`multiple` modes it formats each date, joined with `' - '` / `', '`.\n *\n * Usage:\n * ```html\n * <yuw-datepicker [(value)]=\"selectedDate\" placeholder=\"Select date...\" />\n * <yuw-datepicker mode=\"range\" [(value)]=\"dateRange\" />\n * <yuw-datepicker mode=\"monthYear\" [(value)]=\"selectedMonth\" />\n * ```\n */\n@Component({\n selector: 'yuw-datepicker',\n imports: [...HlmDatePickerImports],\n providers: [provideValueAccessor(YuwDatepickerComponent)],\n host: {\n class: 'contents',\n },\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwDatepickerComponent extends YuwValueAccessorBase<YuwDatepickerValue> {\n readonly mode = input<YuwDatepickerModeDto>('single');\n\n readonly value = model<YuwDatepickerValue>(null);\n\n readonly disabled = input(false, {transform: booleanAttribute});\n\n readonly placeholder = input<string | undefined>(undefined);\n\n readonly minDate = input<Date | undefined>(undefined);\n readonly maxDate = input<Date | undefined>(undefined);\n\n readonly captionLayout = input<'dropdown' | 'label' | 'dropdown-months' | 'dropdown-years'>('label');\n\n readonly align = input<'start' | 'center' | 'end'>('start');\n\n readonly buttonId = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n readonly invalid = input(false, {transform: booleanAttribute});\n\n readonly formatDate = input<((date: Date) => string) | undefined>(undefined);\n\n protected readonly _disabled = computed(() => this._isDisabled(this.disabled()));\n\n private readonly _generatedButtonId = `yuw-datepicker-${++nextUniqueId}`;\n\n protected readonly _buttonId = computed(() => this.buttonId() ?? this._generatedButtonId);\n\n private readonly _singleConfig = injectHlmDatePickerConfig<Date>();\n private readonly _rangeConfig = injectHlmDateRangePickerConfig<Date>();\n private readonly _multiConfig = injectHlmDatePickerMultiConfig<Date>();\n private readonly _monthYearConfig = injectHlmMonthYearPickerConfig<Date>();\n\n protected readonly _formatSingle = computed(() => this.formatDate() ?? this._singleConfig.formatDate);\n\n protected readonly _formatMonthYear = computed(() => this.formatDate() ?? this._monthYearConfig.formatDate);\n\n protected readonly _formatRange = computed(() => {\n const format = this.formatDate();\n if (!format) {\n return this._rangeConfig.formatDates;\n }\n return ([start, end]: [Date | null, Date | null]) =>\n [start, end]\n .filter((date): date is Date => date !== null)\n .map(format)\n .join(' - ');\n });\n\n protected readonly _formatMulti = computed(() => {\n const format = this.formatDate();\n if (!format) {\n return this._multiConfig.formatDates;\n }\n return (dates: Date[]) => dates.map(format).join(', ');\n });\n\n protected readonly _singleValue = computed(() => {\n const value = this.value();\n return Array.isArray(value) ? undefined : (value ?? undefined);\n });\n\n protected readonly _rangeValue = computed(() => {\n const value = this.value();\n return Array.isArray(value) && value.length === 2 ? (value as [Date, Date]) : undefined;\n });\n\n protected readonly _multipleValue = computed(() => {\n const value = this.value();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? (value as Date[]) : [value];\n });\n\n protected _emptyValue(): YuwDatepickerValue {\n return this.mode() === 'multiple' ? [] : null;\n }\n\n protected onValueChange(next: YuwDatepickerValue): void {\n this._commit(next);\n }\n}\n","@switch (mode()) {\n @case ('range') {\n <hlm-date-range-picker [date]=\"_rangeValue()\" [disabled]=\"_disabled()\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\"\n [captionLayout]=\"captionLayout()\" [align]=\"align()\" [formatDates]=\"_formatRange()\"\n (dateChange)=\"onValueChange($event)\" (focusout)=\"_onBlur()\">\n <hlm-date-picker-trigger [buttonId]=\"_buttonId()\" [class]=\"userClass()\"\n [forceInvalid]=\"invalid()\">{{ placeholder() ?? '' }}\n </hlm-date-picker-trigger>\n </hlm-date-range-picker>\n }\n @case ('multiple') {\n <hlm-date-picker-multi [date]=\"_multipleValue()\" [disabled]=\"_disabled()\" [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [captionLayout]=\"captionLayout()\" [align]=\"align()\" [formatDates]=\"_formatMulti()\"\n (dateChange)=\"onValueChange($event)\" (focusout)=\"_onBlur()\">\n <hlm-date-picker-trigger [buttonId]=\"_buttonId()\" [class]=\"userClass()\"\n [forceInvalid]=\"invalid()\">{{ placeholder() ?? '' }}\n </hlm-date-picker-trigger>\n </hlm-date-picker-multi>\n }\n @case ('monthYear') {\n <hlm-month-year-picker [date]=\"_singleValue()\" [disabled]=\"_disabled()\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\"\n [align]=\"align()\" [formatDate]=\"_formatMonthYear()\" (dateChange)=\"onValueChange($event)\"\n (focusout)=\"_onBlur()\">\n <hlm-date-picker-trigger [buttonId]=\"_buttonId()\" [class]=\"userClass()\"\n [forceInvalid]=\"invalid()\">{{ placeholder() ?? '' }}\n </hlm-date-picker-trigger>\n </hlm-month-year-picker>\n }\n @default {\n <hlm-date-picker [date]=\"_singleValue()\" [disabled]=\"_disabled()\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\"\n [captionLayout]=\"captionLayout()\" [align]=\"align()\" [formatDate]=\"_formatSingle()\"\n (dateChange)=\"onValueChange($event)\" (focusout)=\"_onBlur()\">\n <hlm-date-picker-trigger [buttonId]=\"_buttonId()\" [class]=\"userClass()\"\n [forceInvalid]=\"invalid()\">{{ placeholder() ?? '' }}\n </hlm-date-picker-trigger>\n </hlm-date-picker>\n }\n}\n","import {Directive} from '@angular/core';\nimport {\n HlmCaption,\n HlmTable,\n HlmTableContainer,\n HlmTBody,\n HlmTd,\n HlmTFoot,\n HlmTh,\n HlmTHead,\n HlmTr,\n} from 'yukit-web/helm/table';\n\n/**\n * Outer wrapper container directive for responsive HTML table scroll container.\n *\n * Usage:\n * ```html\n * <div yuwTableContainer>\n * <table yuwTable>\n * <thead yuwTHead>\n * <tr yuwTr><th yuwTh>Header</th></tr>\n * </thead>\n * <tbody yuwTBody>\n * <tr yuwTr><td yuwTd>Data cell</td></tr>\n * </tbody>\n * </table>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwTableContainer]',\n hostDirectives: [HlmTableContainer],\n})\nexport class YuwTableContainerDirective {\n}\n\n/** Table element styling directive applied to native `<table>`. */\n@Directive({\n selector: '[yuwTable]',\n hostDirectives: [HlmTable],\n})\nexport class YuwTableDirective {\n}\n\n/** Table header container directive applied to native `<thead>`. */\n@Directive({\n selector: '[yuwTHead]',\n hostDirectives: [HlmTHead],\n})\nexport class YuwTHeadDirective {\n}\n\n/** Table body container directive applied to native `<tbody>`. */\n@Directive({\n selector: '[yuwTBody]',\n hostDirectives: [HlmTBody],\n})\nexport class YuwTBodyDirective {\n}\n\n/** Table footer container directive applied to native `<tfoot>`. */\n@Directive({\n selector: '[yuwTFoot]',\n hostDirectives: [HlmTFoot],\n})\nexport class YuwTFootDirective {\n}\n\n/** Table row directive applied to native `<tr>`. */\n@Directive({\n selector: '[yuwTr]',\n hostDirectives: [HlmTr],\n})\nexport class YuwTrDirective {\n}\n\n/** Table header cell directive applied to native `<th>`. */\n@Directive({\n selector: '[yuwTh]',\n hostDirectives: [HlmTh],\n})\nexport class YuwThDirective {\n}\n\n/** Table data cell directive applied to native `<td>`. */\n@Directive({\n selector: '[yuwTd]',\n hostDirectives: [HlmTd],\n})\nexport class YuwTdDirective {\n}\n\n/** Table caption directive applied to native `<caption>`. */\n@Directive({\n selector: '[yuwCaption]',\n hostDirectives: [HlmCaption],\n})\nexport class YuwCaptionDirective {\n}\n\n/** Every table part, for a consumer's `imports`. */\nexport const YuwTableImports = [\n YuwTableContainerDirective,\n YuwTableDirective,\n YuwTHeadDirective,\n YuwTBodyDirective,\n YuwTFootDirective,\n YuwTrDirective,\n YuwThDirective,\n YuwTdDirective,\n YuwCaptionDirective,\n] as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n numberAttribute,\n type OnInit,\n} from '@angular/core';\nimport {outputFromObservable, toObservable} from '@angular/core/rxjs-interop';\nimport {FlexRenderDirective, injectTable,} from '@tanstack/angular-table';\nimport {\n type ColumnDef,\n columnFilteringFeature,\n type ColumnFiltersState,\n columnVisibilityFeature,\n type ColumnVisibilityState,\n createCoreRowModel,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n type PaginationState,\n type RowData,\n rowPaginationFeature,\n rowSelectionFeature,\n type RowSelectionState,\n rowSortingFeature,\n sortFns,\n type SortingState,\n type TableOptions,\n} from '@tanstack/table-core';\nimport {skip} from 'rxjs';\nimport {cn} from '../../utils/cn';\nimport {YuwButtonComponent} from '../button/button.component';\nimport {YuwSkeletonDirective} from '../skeleton/skeleton.directive';\nimport {YuwTableImports} from './table.directives';\n\n/**\n * The feature set `yuw-datatable` enables.\n *\n * Declared as an interface keyed by feature name rather than `typeof` an object literal: TanStack\n * v9 types every feature constant as a bare `TableFeature`, and carries the *capabilities* on the\n * key names instead (see its own `StockFeatures`). A `typeof` would therefore widen every entry to\n * `TableFeature` and lose which features are actually on, leaving the table's own methods\n * (`getState`, `getCanNextPage`, …) missing from the instance type.\n */\nexport interface YuwDatatableFeatures {\n columnFilteringFeature: typeof columnFilteringFeature;\n columnVisibilityFeature: typeof columnVisibilityFeature;\n rowPaginationFeature: typeof rowPaginationFeature;\n rowSelectionFeature: typeof rowSelectionFeature;\n rowSortingFeature: typeof rowSortingFeature;\n}\n\nexport const YUW_DATATABLE_FEATURES: YuwDatatableFeatures = {\n columnFilteringFeature,\n columnVisibilityFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n};\n\nexport type YuwDatatableColumnDef<TData extends RowData> = ColumnDef<YuwDatatableFeatures, TData>;\n\n/**\n * Full-featured data table component supporting sorting, filtering, pagination, row selection,\n * loading skeleton state, and column visibility.\n *\n * Inputs / Models:\n * - `columns`: Column definitions array (`YuwDatatableColumnDef<TData>[]`). Default is `[]`.\n * - `data`: Row data array (`TData[]`). Default is `[]`.\n * - `sortable`: Enables click-to-sort on headers whose column allows it.\n * - `paginated`: Enables the pagination row model and renders footer controls.\n * - `selectable`: Enables the row-selection state. The checkbox column itself is *not* rendered\n * by the datatable — the consumer provides it as a display column (`id: 'select'`,\n * `flexRenderComponent(...)` header/cell that call TanStack's own toggle handlers), as in the\n * demo's data page.\n * - `emptyText`: Message shown when data is empty or filtered to nothing. User-facing text the\n * consuming app is responsible for translating.\n * - `loading`: Renders skeleton rows instead of data. The pagination footer stays visible (with\n * its buttons disabled) so the layout doesn't jump.\n * - `loadingRows`: Number of skeleton rows to show while `loading`. Default is `5`.\n * - `previousPageLabel` (required): Accessible name for the footer's previous-page button.\n * User-facing text the consuming app is responsible for translating.\n * - `nextPageLabel` (required): Accessible name for the footer's next-page button. User-facing\n * text the consuming app is responsible for translating.\n * - `caption`: Optional `<caption>` text for the table. User-facing text the consuming app is\n * responsible for translating; when absent, no caption is rendered.\n * - `tableClass`: Extra classes merged onto the inner `<table>` element. The host is\n * `display: contents`, so a plain `class` on `<yuw-datatable>` would never reach the table.\n * - `sorting`: Two-way sorting state (`SortingState`).\n * - `columnFilters`: Two-way column filters state (`ColumnFiltersState`).\n * - `columnVisibility`: Two-way column visibility state (`ColumnVisibilityState`).\n * - `rowSelection`: Two-way row selection state (`RowSelectionState`).\n * - `pagination`: Two-way pagination state (`PaginationState`). Default is `{ pageIndex: 0, pageSize: 10 }`.\n *\n * Outputs:\n * - `selectedRowsChange`: Emits the selected row objects (`TData[]`) on selection changes. The\n * initial state does not emit — only actual changes after mount.\n *\n * Usage:\n * ```html\n * <yuw-datatable\n * [columns]=\"columns\"\n * [data]=\"users\"\n * [(sorting)]=\"sorting\"\n * paginated\n * selectable\n * previousPageLabel=\"Página anterior\"\n * nextPageLabel=\"Página siguiente\"\n * (selectedRowsChange)=\"onSelect($event)\"\n * />\n * ```\n */\n@Component({\n selector: 'yuw-datatable',\n imports: [...YuwTableImports, YuwButtonComponent, YuwSkeletonDirective, FlexRenderDirective],\n host: {\n class: 'contents',\n },\n templateUrl: './datatable.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwDatatableComponent<TData extends RowData> implements OnInit {\n readonly columns = input<YuwDatatableColumnDef<TData>[]>([]);\n readonly data = input<TData[]>([]);\n\n readonly sortable = input(false, {transform: booleanAttribute});\n\n readonly paginated = input(false, {transform: booleanAttribute});\n\n readonly selectable = input(false, {transform: booleanAttribute});\n\n readonly emptyText = input<string | undefined>(undefined);\n\n readonly loading = input(false, {transform: booleanAttribute});\n\n readonly loadingRows = input(5, {transform: numberAttribute});\n\n readonly previousPageLabel = input.required<string>();\n\n readonly nextPageLabel = input.required<string>();\n\n readonly caption = input<string | undefined>(undefined);\n\n readonly tableClass = input<string | undefined>(undefined);\n\n readonly sorting = model<SortingState>([]);\n readonly columnFilters = model<ColumnFiltersState>([]);\n readonly columnVisibility = model<ColumnVisibilityState>({});\n readonly rowSelection = model<RowSelectionState>({});\n readonly pagination = model<PaginationState>({pageIndex: 0, pageSize: 10});\n\n private readonly _options = (): Omit<TableOptions<YuwDatatableFeatures, TData>, 'features'> & {\n features: YuwDatatableFeatures & Record<string, unknown>;\n } => ({\n features: {\n ...YUW_DATATABLE_FEATURES,\n coreRowModel: createCoreRowModel<YuwDatatableFeatures, TData>(),\n filteredRowModel: createFilteredRowModel<YuwDatatableFeatures, TData>(),\n ...(this.sortable()\n ? {sortedRowModel: createSortedRowModel<YuwDatatableFeatures, TData>(), sortFns}\n : {}),\n ...(this.paginated() ? {paginatedRowModel: createPaginatedRowModel<YuwDatatableFeatures, TData>()} : {}),\n },\n data: this.data(),\n columns: this.columns(),\n enableRowSelection: this.selectable(),\n state: {\n sorting: this.sorting(),\n columnFilters: this.columnFilters(),\n columnVisibility: this.columnVisibility(),\n rowSelection: this.rowSelection(),\n pagination: this.pagination(),\n },\n onSortingChange: (updater) =>\n this.sorting.update((current) => (typeof updater === 'function' ? updater(current) : updater)),\n onColumnFiltersChange: (updater) =>\n this.columnFilters.update((current) => (typeof updater === 'function' ? updater(current) : updater)),\n onColumnVisibilityChange: (updater) =>\n this.columnVisibility.update((current) => (typeof updater === 'function' ? updater(current) : updater)),\n onPaginationChange: (updater) =>\n this.pagination.update((current) => (typeof updater === 'function' ? updater(current) : updater)),\n onRowSelectionChange: (updater) =>\n this.rowSelection.update((current) => (typeof updater === 'function' ? updater(current) : updater)),\n });\n\n protected readonly table = injectTable<YuwDatatableFeatures, TData>(this._options);\n\n private readonly _selectedRows = computed(() => {\n this.rowSelection();\n return this.table.getSelectedRowModel().rows.map((row) => row.original);\n });\n\n readonly selectedRowsChange = outputFromObservable<TData[]>(toObservable(this._selectedRows).pipe(skip(1)));\n\n /**\n * Applies the real options once, after inputs are set.\n *\n * `injectTable` constructs the table from a `queueMicrotask` that can fire before Angular has\n * assigned any input, so it captures `columns: []`/`data: []`. Its own options effect then\n * *skips its first run* (an `isMount` guard inside the library) — and that skipped run is\n * exactly the one carrying the real values. Without this the table stays permanently empty no\n * matter what is bound.\n *\n * This runs in `ngOnInit` rather than a constructor `effect` because the effect fires in the\n * same too-early window and re-applies the same empty options; `ngOnInit` is the first point\n * where inputs are guaranteed present. Later changes are handled by the library's own effect,\n * which by then is past its mount guard.\n */\n ngOnInit(): void {\n const options = this._options();\n this.table.setOptions((previous) => ({...previous, ...options}));\n }\n\n protected readonly _isEmpty = computed(() => !this.loading() && this.table.getRowModel().rows.length === 0);\n\n protected readonly _columnCount = computed(() => this.table.getVisibleLeafColumns().length);\n\n protected readonly _skeletonRows = computed(() => Array.from({length: this.loadingRows()}, (_, i) => i));\n\n protected readonly _tableClass = computed(() => cn(this.tableClass()));\n\n protected readonly _ariaSort: Record<'asc' | 'desc', 'ascending' | 'descending'> = {\n asc: 'ascending',\n desc: 'descending',\n };\n}\n","<div yuwTableContainer>\n <table yuwTable [class]=\"_tableClass()\">\n @if (caption()) {\n <caption yuwCaption>{{ caption() }}</caption>\n }\n\n <thead yuwTHead>\n @for (headerGroup of table.getHeaderGroups(); track headerGroup.id) {\n <tr yuwTr>\n @for (header of headerGroup.headers; track header.id) {\n @let sorted = header.column.getIsSorted();\n <th yuwTh scope=\"col\" [attr.colspan]=\"header.colSpan\" [attr.aria-sort]=\"sorted ? _ariaSort[sorted] : null\">\n @if (!header.isPlaceholder) {\n @if (sortable() && header.column.getCanSort()) {\n <button type=\"button\" class=\"inline-flex items-center gap-1 select-none hover:text-foreground/80\"\n (click)=\"header.column.toggleSorting()\">\n <ng-container\n *flexRender=\"header.column.columnDef.header; props: header.getContext(); let rendered\">\n {{ rendered }}\n </ng-container>\n\n @if (sorted === 'asc') {\n <span aria-hidden=\"true\">↑</span>\n } @else if (sorted === 'desc') {\n <span aria-hidden=\"true\">↓</span>\n } @else {\n <span aria-hidden=\"true\">↕</span>\n }\n </button>\n } @else {\n <ng-container *flexRender=\"header.column.columnDef.header; props: header.getContext(); let rendered\">\n {{ rendered }}\n </ng-container>\n }\n }\n </th>\n }\n </tr>\n }\n </thead>\n\n <tbody yuwTBody>\n @if (loading()) {\n @for (row of _skeletonRows(); track row) {\n <tr yuwTr>\n @for (column of table.getVisibleLeafColumns(); track column.id) {\n <td yuwTd><span yuwSkeleton class=\"block h-4 w-full\"></span></td>\n }\n </tr>\n }\n } @else if (_isEmpty()) {\n <tr yuwTr>\n <td yuwTd [attr.colspan]=\"_columnCount()\" class=\"h-24 text-center text-muted-foreground\">\n {{ emptyText() ?? '' }}\n </td>\n </tr>\n } @else {\n @for (row of table.getRowModel().rows; track row.id) {\n <tr yuwTr [attr.data-state]=\"row.getIsSelected() ? 'selected' : null\">\n @for (cell of row.getVisibleCells(); track cell.id) {\n <td yuwTd>\n <ng-container *flexRender=\"cell.column.columnDef.cell; props: cell.getContext(); let rendered\">\n {{ rendered }}\n </ng-container>\n </td>\n }\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n\n@if (paginated()) {\n <div class=\"flex items-center justify-between gap-4 py-3\">\n @if (selectable()) {\n <p class=\"text-sm text-muted-foreground\">\n {{ table.getSelectedRowModel().rows.length }} / {{ table.getFilteredRowModel().rows.length }}\n </p>\n } @else {\n <span></span>\n }\n\n <div class=\"flex items-center gap-2\">\n <yuw-button variant=\"ghost\" size=\"sm\" [disabled]=\"loading() || !table.getCanPreviousPage()\"\n [ariaLabel]=\"previousPageLabel()\" (clicked)=\"table.previousPage()\">\n <span aria-hidden=\"true\">&larr;</span>\n </yuw-button>\n <span class=\"text-sm text-muted-foreground\">\n {{ pagination().pageIndex + 1 }} / {{ table.getPageCount() || 1 }}\n </span>\n <yuw-button variant=\"ghost\" size=\"sm\" [disabled]=\"loading() || !table.getCanNextPage()\"\n [ariaLabel]=\"nextPageLabel()\" (clicked)=\"table.nextPage()\">\n <span aria-hidden=\"true\">&rarr;</span>\n </yuw-button>\n </div>\n </div>\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {booleanAttribute, ChangeDetectionStrategy, Component, computed, input} from '@angular/core';\nimport {HlmAvatarImports} from 'yukit-web/helm/avatar';\nimport type {YuwAvatarGroupItemDto} from './avatar-group-item.interface';\n\n/** The size vocabulary of `<yuw-avatar>`. */\nexport type YuwAvatarSizeDto = 'default' | 'sm' | 'lg';\n\n/**\n * Displays a user or entity avatar with optional image, fallback text/initials, status badge, or overlapping group layout.\n *\n * Inputs:\n * - `size`: Avatar size (`'default'`, `'sm'`, `'lg'`). Default is `'default'`.\n * - `src`: Image URL for single-avatar mode. Omit to display fallback text.\n * - `alt`: Required. Accessible label for single-avatar mode and fallback text. User-facing text —\n * the consuming app is responsible for providing (and translating) it.\n * - `fallback`: Fallback text or initials shown when image is loading, unprovided, or fails to load.\n * - `badge`: Renders a status badge marker on the bottom-right corner (single-avatar mode).\n * - `group`: Array of item DTOs (`YuwAvatarGroupItemDto[]`) to render as an overlapping avatar group stack.\n * - `groupCount`: Overflow label string (e.g. `\"+5\"`) displayed at the end of an avatar group stack.\n * - `class`: Extra CSS classes merged onto the inner `hlm-avatar` element(s); merged last, so they win.\n *\n * Single Avatar Usage:\n * ```html\n * <yuw-avatar src=\"/path/to/user.png\" alt=\"Jane Doe\" fallback=\"JD\" />\n * <yuw-avatar alt=\"Jane Doe\" fallback=\"JD\" badge />\n * ```\n *\n * Avatar Group Usage:\n * ```html\n * <yuw-avatar [group]=\"teamMembers\" alt=\"Team\" groupCount=\"+5\" />\n * ```\n */\n@Component({\n selector: 'yuw-avatar',\n imports: [NgTemplateOutlet, ...HlmAvatarImports],\n host: {\n class: 'contents',\n },\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwAvatarComponent {\n readonly size = input<YuwAvatarSizeDto>('default');\n readonly src = input<string | undefined>(undefined);\n\n readonly alt = input.required<string>();\n\n readonly fallback = input<string | undefined>(undefined);\n readonly badge = input(false, {transform: booleanAttribute});\n readonly group = input<YuwAvatarGroupItemDto[] | undefined>(undefined);\n readonly groupCount = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n protected readonly _isGroup = computed(() => (this.group()?.length ?? 0) > 0);\n}\n","<ng-template #avatarBox let-src=\"src\" let-alt=\"alt\" let-fallback=\"fallback\" let-showBadge=\"showBadge\">\n <hlm-avatar [size]=\"size()\" [class]=\"userClass()\">\n @if (src) {\n <img hlmAvatarImage [src]=\"src\" [alt]=\"alt ?? ''\"/>\n }\n <span hlmAvatarFallback>{{ fallback }}</span>\n\n @if (showBadge) {\n <span hlmAvatarBadge>\n <ng-content select=\"[yuwAvatarBadgeIcon]\"/>\n </span>\n }\n </hlm-avatar>\n</ng-template>\n\n@if (_isGroup()) {\n <div hlmAvatarGroup>\n @for (entry of group(); track entry.alt + '|' + (entry.src ?? '')) {\n <ng-container [ngTemplateOutlet]=\"avatarBox\"\n [ngTemplateOutletContext]=\"{ src: entry.src, alt: entry.alt, fallback: entry.fallback, showBadge: false }\"/>\n }\n\n @if (groupCount()) {\n <span hlmAvatarGroupCount>{{ groupCount() }}</span>\n }\n </div>\n} @else {\n <ng-container [ngTemplateOutlet]=\"avatarBox\"\n [ngTemplateOutletContext]=\"{ src: src(), alt: alt(), fallback: fallback(), showBadge: badge() }\"/>\n}\n","import {Directive} from '@angular/core';\nimport {\n HlmItem,\n HlmItemActions,\n HlmItemContent,\n HlmItemDescription,\n HlmItemFooter,\n HlmItemGroup,\n HlmItemHeader,\n HlmItemMedia,\n HlmItemSeparator,\n HlmItemTitle,\n} from 'yukit-web/helm/item';\n\n/**\n * Container directive for list/row item layout structures.\n * Accepts optional `variant` and `size` inputs.\n *\n * Usage:\n * ```html\n * <div yuwItem>\n * <div yuwItemMedia><yuw-avatar fallback=\"JD\" alt=\"John Doe\" /></div>\n * <div yuwItemContent>\n * <h4 yuwItemTitle>John Doe</h4>\n * <p yuwItemDescription>Software Engineer</p>\n * </div>\n * <div yuwItemActions><yuw-button size=\"sm\">Follow</yuw-button></div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwItem], yuw-item',\n hostDirectives: [{directive: HlmItem, inputs: ['variant', 'size']}],\n})\nexport class YuwItemDirective {\n}\n\n/** Header slot directive for an item container. */\n@Directive({\n selector: '[yuwItemHeader], yuw-item-header',\n hostDirectives: [HlmItemHeader],\n})\nexport class YuwItemHeaderDirective {\n}\n\n/** Leading media slot directive (for icons, avatars, or images) at the start of an item. Supports `variant` (`'default'`, `'icon'`, `'image'`). */\n@Directive({\n selector: '[yuwItemMedia], yuw-item-media',\n hostDirectives: [{directive: HlmItemMedia, inputs: ['variant']}],\n})\nexport class YuwItemMediaDirective {\n}\n\n/** Main text content container directive for an item. */\n@Directive({\n selector: '[yuwItemContent], yuw-item-content',\n hostDirectives: [HlmItemContent],\n})\nexport class YuwItemContentDirective {\n}\n\n/** Title heading directive for an item. */\n@Directive({\n selector: '[yuwItemTitle], yuw-item-title',\n hostDirectives: [HlmItemTitle],\n})\nexport class YuwItemTitleDirective {\n}\n\n/** Subtitle or description paragraph directive for an item. */\n@Directive({\n selector: '[yuwItemDescription], yuw-item-description',\n hostDirectives: [HlmItemDescription],\n})\nexport class YuwItemDescriptionDirective {\n}\n\n/** Trailing action controls slot directive (for buttons, switches, or menu triggers) at the end of an item. */\n@Directive({\n selector: '[yuwItemActions], yuw-item-actions',\n hostDirectives: [HlmItemActions],\n})\nexport class YuwItemActionsDirective {\n}\n\n/** Footer slot directive for an item. */\n@Directive({\n selector: '[yuwItemFooter], yuw-item-footer',\n hostDirectives: [HlmItemFooter],\n})\nexport class YuwItemFooterDirective {\n}\n\n/** Container directive for grouping multiple item rows together into a list card or bordered group. */\n@Directive({\n selector: '[yuwItemGroup], yuw-item-group',\n hostDirectives: [HlmItemGroup],\n})\nexport class YuwItemGroupDirective {\n}\n\n/**\n * Visual separator line between items inside a group. Accepts `orientation` (`'horizontal'` or\n * `'vertical'`), reaching the underlying `BrnSeparator`, which owns the `role`,\n * `aria-orientation` and `data-orientation` attributes. Extends `HlmItemSeparator` (instead of\n * composing it via `hostDirectives`) because `orientation` is re-exposed by the helm from\n * `BrnSeparator` through its own `hostDirectives`, and host-directive forwarding is not\n * transitive (NG2017).\n */\n@Directive({\n selector: '[yuwItemSeparator], yuw-item-separator',\n})\nexport class YuwItemSeparatorDirective extends HlmItemSeparator {\n}\n\n/** Every item part, for a consumer's `imports`. */\nexport const YuwItemImports = [\n YuwItemDirective,\n YuwItemHeaderDirective,\n YuwItemMediaDirective,\n YuwItemContentDirective,\n YuwItemTitleDirective,\n YuwItemDescriptionDirective,\n YuwItemActionsDirective,\n YuwItemFooterDirective,\n YuwItemGroupDirective,\n YuwItemSeparatorDirective,\n] as const;\n","import {Directive} from '@angular/core';\n\n/**\n * Marks an element as the sheet's footer content, projected into the footer slot.\n * Its presence is also what makes the footer render at all — without it the sheet\n * shows no empty footer strip.\n */\n@Directive({\n selector: '[yuwSheetFooter]',\n})\nexport class YuwSheetFooterDirective {\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n model\n} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideX} from '@ng-icons/lucide';\nimport {type ButtonVariants, HlmButton} from 'yukit-web/helm/button';\nimport {HlmSheetImports} from 'yukit-web/helm/sheet';\nimport {YuwSheetFooterDirective} from './sheet-footer.directive';\n\nexport type YuwSheetSideDto = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Slide-in sheet overlay panel component for side drawers, dialogs, and detail views.\n *\n * Accessibility: provide either `title` or `ariaLabel` — a modal panel without an accessible name\n * is announced as an anonymous dialog by screen readers.\n *\n * Inputs / Models:\n * - `open`: Two-way open/closed state (`boolean`). Drive directly via `[(open)]` to open/close programmatically.\n * - `showTrigger`: Whether to render the trigger button. Set `false` when opening only via `[(open)]`.\n * - `side`: Edge of the screen the panel slides in from (`'top'`, `'bottom'`, `'left'`, `'right'`). Default is `'right'`.\n * - `title`: Optional header title text. User-facing text the consuming app is responsible for translating.\n * - `description`: Optional header description text. User-facing text the consuming app is responsible for translating.\n * - `ariaLabel`: Accessible name for the sheet when no visible `title` is rendered. User-facing\n * text the consuming app is responsible for translating.\n * - `closeLabel`: Accessible label of the corner close (×) button. When set, the close button\n * renders and screen readers read this label; when absent there is no close button. User-facing\n * text the consuming app is responsible for translating.\n * - `panelClass`: Extra classes merged onto the sheet panel (e.g. `sm:max-w-lg` to widen it).\n * They win over the library defaults via `twMerge`.\n * - `triggerVariant`: Button style variant for the trigger button.\n * - `triggerSize`: Button size for the trigger button.\n *\n * Usage:\n * ```html\n * <yuw-sheet [(open)]=\"isOpen\" side=\"right\" title=\"Edit Profile\" description=\"Update your account details.\" closeLabel=\"Close\">\n * <ng-container yuwSheetTrigger>Edit Profile</ng-container>\n *\n * <p>Sheet form content goes here.</p>\n *\n * <div yuwSheetFooter>\n * <yuw-button (clicked)=\"save()\">Save Changes</yuw-button>\n * </div>\n * </yuw-sheet>\n * ```\n */\n@Component({\n selector: 'yuw-sheet',\n imports: [...HlmSheetImports, HlmButton, NgIcon],\n providers: [provideIcons({lucideX})],\n host: {\n class: 'contents',\n },\n templateUrl: './sheet.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSheetComponent {\n readonly open = model(false);\n\n readonly showTrigger = input(true, {transform: booleanAttribute});\n\n readonly side = input<YuwSheetSideDto>('right');\n\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n\n readonly closeLabel = input<string | undefined>(undefined);\n\n readonly panelClass = input<string | undefined>(undefined);\n\n readonly triggerVariant = input<ButtonVariants['variant']>('outline');\n readonly triggerSize = input<ButtonVariants['size']>('default');\n\n protected readonly hasFooter = contentChild(YuwSheetFooterDirective);\n\n protected readonly _sheetState = computed(() => (this.open() ? 'open' : 'closed') as 'open' | 'closed');\n\n protected onStateChanged(state: 'open' | 'closed'): void {\n this.open.set(state === 'open');\n }\n}\n\nexport const YuwSheetImports = [YuwSheetComponent, YuwSheetFooterDirective] as const;\n","<hlm-sheet [side]=\"side()\" [state]=\"_sheetState()\" [aria-label]=\"ariaLabel()\" (stateChanged)=\"onStateChanged($event)\">\n @if (showTrigger()) {\n <button hlmSheetTrigger hlmBtn [variant]=\"triggerVariant()\" [size]=\"triggerSize()\">\n <ng-content select=\"[yuwSheetTrigger]\"/>\n </button>\n }\n\n <hlm-sheet-content *hlmSheetPortal [showCloseButton]=\"false\" [class]=\"panelClass()\">\n @if (title() || description()) {\n <div hlmSheetHeader>\n @if (title()) {\n <h2 hlmSheetTitle>{{ title() }}</h2>\n }\n @if (description()) {\n <p hlmSheetDescription>{{ description() }}</p>\n }\n </div>\n }\n\n <div class=\"flex-1 overflow-y-auto px-4\">\n <ng-content/>\n </div>\n\n @if (hasFooter()) {\n <div hlmSheetFooter>\n <ng-content select=\"[yuwSheetFooter]\"/>\n </div>\n }\n\n @if (closeLabel()) {\n <button hlmBtn variant=\"ghost\" size=\"icon-sm\" class=\"absolute inset-e-3 top-3\" hlmSheetClose>\n <ng-icon name=\"lucideX\"/>\n <span class=\"sr-only\">{{ closeLabel() }}</span>\n </button>\n }\n </hlm-sheet-content>\n</hlm-sheet>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, computed, input, model} from '@angular/core';\nimport {type ButtonVariants, HlmButton} from 'yukit-web/helm/button';\nimport {HlmPopoverImports} from 'yukit-web/helm/popover';\n\nexport type YuwPopoverAlignDto = 'start' | 'center' | 'end';\n\n/**\n * Popover component for displaying anchored floating overlay panels.\n *\n * Inputs / Models:\n * - `open`: Two-way open/closed state (`boolean`). Drive directly via `[(open)]` to open/close programmatically.\n * - `showTrigger`: Whether to render the trigger button. Set `false` when opening only via `[(open)]`.\n * - `align`: Panel alignment relative to trigger (`'start'`, `'center'`, `'end'`). Default is `'center'`.\n * - `sideOffset`: Pixel offset between the trigger and the panel. Default is `4`.\n * - `title`: Optional header title text. User-facing text the consuming app is responsible for translating.\n * - `description`: Optional header description text. User-facing text the consuming app is responsible for translating.\n * - `panelClass`: Extra classes merged onto the popover panel (e.g. `w-80` to widen it). They win\n * over the library defaults via `twMerge`.\n * - `triggerVariant`: Button style variant for the trigger button.\n * - `triggerSize`: Button size for the trigger button.\n *\n * Usage:\n * ```html\n * <yuw-popover [(open)]=\"isOpen\" title=\"Notifications\" description=\"You're all caught up.\">\n * <ng-container yuwPopoverTrigger>View Notifications</ng-container>\n *\n * <p>Popover content body goes here.</p>\n * </yuw-popover>\n * ```\n */\n@Component({\n selector: 'yuw-popover',\n imports: [...HlmPopoverImports, HlmButton],\n host: {\n class: 'contents',\n },\n templateUrl: './popover.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwPopoverComponent {\n readonly open = model(false);\n\n readonly showTrigger = input(true, {transform: booleanAttribute});\n\n readonly align = input<YuwPopoverAlignDto>('center');\n readonly sideOffset = input(4);\n\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n\n readonly panelClass = input<string | undefined>(undefined);\n\n readonly triggerVariant = input<ButtonVariants['variant']>('outline');\n readonly triggerSize = input<ButtonVariants['size']>('default');\n\n protected readonly _popoverState = computed(() => (this.open() ? 'open' : 'closed') as 'open' | 'closed');\n\n protected onOpenChange(state: 'open' | 'closed'): void {\n this.open.set(state === 'open');\n }\n}\n","<div hlmPopover [state]=\"_popoverState()\" [align]=\"align()\" [sideOffset]=\"sideOffset()\"\n (stateChanged)=\"onOpenChange($event)\">\n @if (showTrigger()) {\n <button hlmBtn hlmPopoverTrigger [variant]=\"triggerVariant()\" [size]=\"triggerSize()\">\n <ng-content select=\"[yuwPopoverTrigger]\"/>\n </button>\n }\n\n <hlm-popover-content *hlmPopoverPortal [class]=\"panelClass()\">\n @if (title() || description()) {\n <div hlmPopoverHeader>\n @if (title()) {\n <p hlmPopoverTitle>{{ title() }}</p>\n }\n @if (description()) {\n <p hlmPopoverDescription>{{ description() }}</p>\n }\n </div>\n }\n\n <ng-content/>\n </hlm-popover-content>\n</div>\n","import {Directive} from '@angular/core';\nimport {BrnTooltip, type BrnTooltipPosition, provideBrnTooltipDefaultOptions} from '@spartan-ng/brain/tooltip';\nimport {\n DEFAULT_TOOLTIP_CONTENT_CLASSES,\n DEFAULT_TOOLTIP_SVG_CLASS,\n tooltipPositionVariants,\n} from 'yukit-web/helm/tooltip';\nimport {hlm} from 'yukit-web/helm/utils';\n\nexport type YuwTooltipPositionDto = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Tooltip directive applied directly to the element that should show a hint on hover/focus.\n *\n * Inputs:\n * - `yuwTooltip`: Tooltip text (or `TemplateRef`) to display. User-facing text the consuming app\n * is responsible for translating.\n * - `position`: Side the tooltip opens on (`'top'`, `'bottom'`, `'left'`, `'right'`). Default is `'top'`.\n * - `showDelay`: Milliseconds before the tooltip opens on hover. Defaults to the Brain tooltip\n * config default (`150`).\n * - `hideDelay`: Milliseconds before the tooltip closes after the pointer leaves. Defaults to the\n * Brain tooltip config default (`100`).\n * - `tooltipDisabled`: Disables the tooltip entirely.\n *\n * Usage:\n * ```html\n * <button yuwTooltip=\"Save changes\" hlmBtn>Save</button>\n * <yuw-button [yuwTooltip]=\"helpText\" position=\"right\">Help</yuw-button>\n * ```\n */\n@Directive({\n selector: '[yuwTooltip]',\n providers: [\n provideBrnTooltipDefaultOptions({\n svgClasses: DEFAULT_TOOLTIP_SVG_CLASS,\n tooltipContentClasses: DEFAULT_TOOLTIP_CONTENT_CLASSES,\n arrowClasses: (position: BrnTooltipPosition) => hlm(tooltipPositionVariants({position})),\n }),\n ],\n hostDirectives: [\n {\n directive: BrnTooltip,\n inputs: ['brnTooltip: yuwTooltip', 'position', 'hideDelay', 'showDelay', 'tooltipDisabled'],\n },\n ],\n})\nexport class YuwTooltipDirective {\n}\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {HlmSpinner} from 'yukit-web/helm/spinner';\n\n/**\n * Indeterminate loading spinner.\n *\n * Inputs:\n * - `label`: Accessible label announced by screen readers. User-facing text the consuming app is\n * responsible for translating.\n * - `icon`: Name of a registered icon to spin instead of the default loader.\n *\n * Usage:\n * ```html\n * <yuw-spinner label=\"Cargando\" />\n * ```\n */\n@Component({\n selector: 'yuw-spinner',\n imports: [HlmSpinner],\n host: {\n class: 'contents',\n },\n templateUrl: './spinner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSpinnerComponent {\n readonly label = input.required<string>();\n readonly icon = input<string>('lucideLoader2');\n}\n","<hlm-spinner [icon]=\"icon()\" [aria-label]=\"label()\"/>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, input, numberAttribute} from '@angular/core';\nimport type {ToastOptions} from '@spartan-ng/brain/sonner';\nimport {HlmToaster} from 'yukit-web/helm/sonner';\n\nexport type YuwToasterPositionDto =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport type YuwToasterThemeDto = 'light' | 'dark' | 'system';\n\n/**\n * Global toast host. Mount once near the application root; individual toasts are dispatched\n * through the `toast` API from `@spartan-ng/brain/sonner`.\n *\n * Inputs:\n * - `richColors`: Enables per-type colored toasts (success, error, warning, info). Enabled by\n * default — a deliberate deviation from the spartan default (`false`).\n * - `theme`: Toast color theme (`'light'`, `'dark'`, `'system'`). Default is `'light'` (the helm\n * default) — apps rendering in dark mode must pass `'dark'` (or `'system'`) explicitly.\n * - `toastOptions`: Default options applied to every toast (classes, styles, etc.), passed\n * through to the underlying sonner toaster.\n * - `position`: Screen corner the stack renders in. Default is `'bottom-right'`.\n * - `duration`: Milliseconds a toast stays visible. Default is `4000`.\n * - `visibleToasts`: Maximum simultaneously visible toasts. Default is `3`.\n * - `closeButton`: Renders a dismiss button on each toast.\n * - `expand`: Keeps the stack expanded instead of collapsed.\n *\n * Usage:\n * ```html\n * <yuw-toaster />\n * ```\n */\n@Component({\n selector: 'yuw-toaster',\n imports: [HlmToaster],\n host: {\n class: 'contents',\n },\n templateUrl: './toaster.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwToasterComponent {\n readonly richColors = input(true, {transform: booleanAttribute});\n readonly theme = input<YuwToasterThemeDto>('light');\n readonly toastOptions = input<ToastOptions>({});\n readonly position = input<YuwToasterPositionDto>('bottom-right');\n readonly duration = input(4000, {transform: numberAttribute});\n readonly visibleToasts = input(3, {transform: numberAttribute});\n readonly closeButton = input(false, {transform: booleanAttribute});\n readonly expand = input(false, {transform: booleanAttribute});\n}\n","<hlm-toaster\n [richColors]=\"richColors()\"\n [theme]=\"theme()\"\n [toastOptions]=\"toastOptions()\"\n [position]=\"position()\"\n [duration]=\"duration()\"\n [visibleToasts]=\"visibleToasts()\"\n [closeButton]=\"closeButton()\"\n [expand]=\"expand()\"/>\n","import {Directive} from '@angular/core';\n\n/**\n * Marks a projected element as the trailing action of a `<yuw-alert>`, which pins it to the\n * top-right corner of the alert.\n */\n@Directive({\n selector: '[yuwAlertAction]',\n})\nexport class YuwAlertActionDirective {\n}\n","import {Directive} from '@angular/core';\n\n/**\n * Marks projected rich content (links, `<strong>`, …) as the description of a `<yuw-alert>`.\n *\n * When present, the alert projects this content into its description slot instead of rendering\n * the `description` string input. The content lands inside the element carrying the helm\n * `alert-description` data-slot, so the alert's grid keeps positioning it correctly.\n */\n@Directive({\n selector: '[yuwAlertDescription]',\n})\nexport class YuwAlertDescriptionDirective {\n}\n","import {Directive} from '@angular/core';\n\n/**\n * Marks projected rich content (links, `<strong>`, …) as the title of a `<yuw-alert>`.\n *\n * When present, the alert projects this content into its title slot instead of rendering the\n * `title` string input. The content lands inside the element carrying the helm `alert-title`\n * data-slot, so the alert's grid keeps positioning it correctly.\n */\n@Directive({\n selector: '[yuwAlertTitle]',\n})\nexport class YuwAlertTitleDirective {\n}\n","import {ChangeDetectionStrategy, Component, contentChild, input} from '@angular/core';\nimport {HlmAlert, HlmAlertAction, HlmAlertDescription, HlmAlertTitle} from 'yukit-web/helm/alert';\nimport {YuwAlertActionDirective} from './alert-action.directive';\nimport {YuwAlertDescriptionDirective} from './alert-description.directive';\nimport {YuwAlertTitleDirective} from './alert-title.directive';\n\nexport type YuwAlertVariantDto = 'default' | 'destructive';\n\n/**\n * Inline, non-blocking message panel for status and validation feedback.\n *\n * Inputs:\n * - `variant`: Visual tone (`'default'`, `'destructive'`). Default is `'default'`.\n * - `title`: Heading text. User-facing text the consuming app is responsible for translating.\n * Ignored when a `[yuwAlertTitle]` slot is projected.\n * - `description`: Body text. User-facing text the consuming app is responsible for translating.\n * Ignored when a `[yuwAlertDescription]` slot is projected.\n * - `class`: Classes forwarded to the inner `hlm-alert` panel (the host is `display: contents`,\n * so they would otherwise never reach the rendered element). The consumer's classes win over\n * the alert's own styling.\n *\n * Content slots:\n * - `[yuwAlertIcon]`: Leading icon.\n * - `[yuwAlertTitle]`: Rich title content (links, `<strong>`, …). Replaces the `title` input.\n * - `[yuwAlertDescription]`: Rich description content. Replaces the `description` input.\n * - `[yuwAlertAction]`: Trailing action control, pinned to the top-right corner.\n *\n * Usage:\n * ```html\n * <yuw-alert variant=\"destructive\" title=\"Pago rechazado\" description=\"Revisa los datos de la tarjeta.\">\n * <ng-icon yuwAlertIcon name=\"lucideTriangleAlert\" />\n * <yuw-button yuwAlertAction size=\"sm\" variant=\"ghost\">Reintentar</yuw-button>\n * </yuw-alert>\n *\n * <yuw-alert>\n * <span yuwAlertTitle>Condiciones <strong>actualizadas</strong></span>\n * <span yuwAlertDescription>Consulta los <a href=\"/cambios\">cambios</a> antes de continuar.</span>\n * </yuw-alert>\n * ```\n */\n@Component({\n selector: 'yuw-alert',\n imports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertAction],\n host: {\n class: 'contents',\n },\n templateUrl: './alert.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwAlertComponent {\n readonly variant = input<YuwAlertVariantDto>('default');\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n\n readonly userClass = input<string>('', {alias: 'class'});\n\n protected readonly hasAction = contentChild(YuwAlertActionDirective);\n protected readonly titleSlot = contentChild(YuwAlertTitleDirective);\n protected readonly descriptionSlot = contentChild(YuwAlertDescriptionDirective);\n}\n\nexport const YuwAlertImports = [\n YuwAlertComponent,\n YuwAlertActionDirective,\n YuwAlertTitleDirective,\n YuwAlertDescriptionDirective,\n] as const;\n","<hlm-alert [variant]=\"variant()\" [class]=\"userClass()\">\n <ng-content select=\"[yuwAlertIcon]\"/>\n\n @if (titleSlot()) {\n <div hlmAlertTitle>\n <ng-content select=\"[yuwAlertTitle]\"/>\n </div>\n } @else if (title()) {\n <div hlmAlertTitle>{{ title() }}</div>\n }\n\n @if (descriptionSlot()) {\n <div hlmAlertDescription>\n <ng-content select=\"[yuwAlertDescription]\"/>\n </div>\n } @else if (description()) {\n <div hlmAlertDescription>{{ description() }}</div>\n }\n\n <ng-content/>\n\n @if (hasAction()) {\n <div hlmAlertAction>\n <ng-content select=\"[yuwAlertAction]\"/>\n </div>\n }\n</hlm-alert>\n","import {Directive} from '@angular/core';\n\n/**\n * Marks an element as the dialog's footer content, projected into the footer slot.\n * Its presence is also what makes the footer render at all — without it the dialog\n * shows no empty footer strip.\n */\n@Directive({\n selector: '[yuwDialogFooter]',\n})\nexport class YuwDialogFooterDirective {\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n model\n} from '@angular/core';\nimport {NgIcon, provideIcons} from '@ng-icons/core';\nimport {lucideX} from '@ng-icons/lucide';\nimport {type ButtonVariants, HlmButton} from 'yukit-web/helm/button';\nimport {HlmDialogImports} from 'yukit-web/helm/dialog';\nimport {YuwDialogFooterDirective} from './dialog-footer.directive';\n\n/**\n * Modal dialog overlay for focused tasks and forms.\n *\n * Accessibility: provide either `title` or `ariaLabel` — a modal without an accessible name is\n * announced as an anonymous dialog by screen readers.\n *\n * Inputs / Models:\n * - `open`: Two-way open/closed state. Drive via `[(open)]` to control it programmatically.\n * - `showTrigger`: Whether to render the trigger button. Set `false` when opening only via `[(open)]`.\n * - `title`: Header title text. User-facing text the consuming app is responsible for translating.\n * - `description`: Header description text. User-facing text the consuming app is responsible for translating.\n * - `ariaLabel`: Accessible name for the dialog when no visible `title` is rendered. User-facing\n * text the consuming app is responsible for translating.\n * - `closeLabel`: Accessible label of the corner close (×) button. When set, the close button\n * renders and screen readers read this label; when absent there is no close button. User-facing\n * text the consuming app is responsible for translating.\n * - `panelClass`: Extra classes merged onto the dialog panel (e.g. `sm:max-w-lg` to widen it).\n * They win over the library defaults via `twMerge`.\n * - `triggerVariant`: Button style variant for the trigger button. Default is `'outline'`.\n * - `triggerSize`: Button size for the trigger button.\n *\n * Content slots:\n * - `[yuwDialogTrigger]`: Trigger button content.\n * - `[yuwDialogFooter]`: Footer actions (`YuwDialogFooterDirective`). The footer only renders when\n * this slot is filled.\n *\n * The projected body scrolls internally when it is taller than the viewport, like `<yuw-sheet>`.\n *\n * Usage:\n * ```html\n * <yuw-dialog [(open)]=\"isOpen\" title=\"Crear proyecto\" description=\"Asigna un nombre para empezar.\" closeLabel=\"Cerrar\">\n * <ng-container yuwDialogTrigger>Crear proyecto</ng-container>\n *\n * <yuw-input [(value)]=\"name\" label=\"Nombre\" />\n *\n * <div yuwDialogFooter>\n * <yuw-button (clicked)=\"save()\">Guardar</yuw-button>\n * </div>\n * </yuw-dialog>\n * ```\n */\n@Component({\n selector: 'yuw-dialog',\n imports: [...HlmDialogImports, HlmButton, NgIcon],\n providers: [provideIcons({lucideX})],\n host: {\n class: 'contents',\n },\n templateUrl: './dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwDialogComponent {\n readonly open = model(false);\n\n readonly showTrigger = input(true, {transform: booleanAttribute});\n\n readonly title = input<string | undefined>(undefined);\n readonly description = input<string | undefined>(undefined);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly closeLabel = input<string | undefined>(undefined);\n\n readonly panelClass = input<string | undefined>(undefined);\n\n readonly triggerVariant = input<ButtonVariants['variant']>('outline');\n readonly triggerSize = input<ButtonVariants['size']>('default');\n\n protected readonly hasFooter = contentChild(YuwDialogFooterDirective);\n\n protected readonly _dialogState = computed(() => (this.open() ? 'open' : 'closed') as 'open' | 'closed');\n\n protected onStateChanged(state: 'open' | 'closed'): void {\n this.open.set(state === 'open');\n }\n}\n\nexport const YuwDialogImports = [YuwDialogComponent, YuwDialogFooterDirective] as const;\n","<hlm-dialog [state]=\"_dialogState()\" [aria-label]=\"ariaLabel()\" (stateChanged)=\"onStateChanged($event)\">\n @if (showTrigger()) {\n <button hlmDialogTrigger hlmBtn [variant]=\"triggerVariant()\" [size]=\"triggerSize()\">\n <ng-content select=\"[yuwDialogTrigger]\"/>\n </button>\n }\n\n <hlm-dialog-content *hlmDialogPortal [showCloseButton]=\"false\" class=\"flex max-h-[calc(100dvh-2rem)] flex-col\"\n [class]=\"panelClass()\">\n @if (title() || description()) {\n <div hlmDialogHeader>\n @if (title()) {\n <h2 hlmDialogTitle>{{ title() }}</h2>\n }\n @if (description()) {\n <p hlmDialogDescription>{{ description() }}</p>\n }\n </div>\n }\n\n <div class=\"flex-1 overflow-y-auto\">\n <ng-content/>\n </div>\n\n @if (hasFooter()) {\n <div hlmDialogFooter>\n <ng-content select=\"[yuwDialogFooter]\"/>\n </div>\n }\n\n @if (closeLabel()) {\n <button hlmBtn variant=\"ghost\" size=\"icon-sm\" class=\"absolute inset-e-2 inset-t-2\" hlmDialogClose>\n <ng-icon name=\"lucideX\"/>\n <span class=\"sr-only\">{{ closeLabel() }}</span>\n </button>\n }\n </hlm-dialog-content>\n</hlm-dialog>\n","import {Directive} from '@angular/core';\n\n/**\n * Marks a projected element as the leading media of a `<yuw-alert-dialog>`, rendered in a\n * highlighted square above or beside the title.\n */\n@Directive({\n selector: '[yuwAlertDialogMedia]',\n})\nexport class YuwAlertDialogMediaDirective {\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n input,\n model,\n output,\n} from '@angular/core';\nimport {HlmAlertDialogImports} from 'yukit-web/helm/alert-dialog';\nimport {type ButtonVariants, HlmButton} from 'yukit-web/helm/button';\nimport {YuwAlertDialogMediaDirective} from './alert-dialog-media.directive';\n\nexport type YuwAlertDialogSizeDto = 'sm' | 'default';\n\n/**\n * Blocking confirmation dialog for destructive or irreversible actions. Unlike `<yuw-dialog>` it\n * cannot be dismissed by clicking the backdrop, so the user must pick one of the two actions.\n *\n * Inputs / Models:\n * - `open`: Two-way open/closed state. Drive via `[(open)]` to control it programmatically.\n * - `showTrigger`: Whether to render the trigger button. Set `false` when opening only via `[(open)]`.\n * - `title`: Header title text. User-facing text the consuming app is responsible for translating.\n * - `description`: Header description text. User-facing text the consuming app is responsible for translating.\n * - `confirmLabel`: Label of the confirm action. User-facing text the consuming app is responsible for translating.\n * - `cancelLabel`: Label of the cancel action. User-facing text the consuming app is responsible for translating.\n * - `confirmVariant`: Button style variant for the confirm action. Use `'destructive'` for deletions.\n * - `size`: Content width (`'sm'`, `'default'`). Default is `'default'`.\n * - `triggerVariant`: Button style variant for the trigger button.\n * - `triggerSize`: Button size for the trigger button.\n *\n * Outputs:\n * - `confirmed`: Emitted when the confirm action is activated.\n * - `cancelled`: Emitted only when the cancel button is activated — programmatic closes (setting\n * `open` to `false`) do not emit it.\n *\n * Content slots:\n * - `[yuwAlertDialogTrigger]`: Trigger button content.\n * - `[yuwAlertDialogMedia]`: Leading media/icon shown above or beside the title.\n *\n * Usage:\n * ```html\n * <yuw-alert-dialog\n * [(open)]=\"isOpen\"\n * title=\"¿Eliminar factura?\"\n * description=\"Esta acción no se puede deshacer.\"\n * confirmLabel=\"Eliminar\"\n * cancelLabel=\"Cancelar\"\n * confirmVariant=\"destructive\"\n * (confirmed)=\"delete()\" />\n * ```\n */\n@Component({\n selector: 'yuw-alert-dialog',\n imports: [...HlmAlertDialogImports, HlmButton],\n host: {\n class: 'contents',\n },\n templateUrl: './alert-dialog.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwAlertDialogComponent {\n readonly open = model(false);\n\n readonly showTrigger = input(true, {transform: booleanAttribute});\n\n readonly title = input.required<string>();\n readonly description = input<string | undefined>(undefined);\n\n readonly confirmLabel = input.required<string>();\n readonly cancelLabel = input.required<string>();\n\n readonly confirmVariant = input<ButtonVariants['variant']>('default');\n readonly size = input<YuwAlertDialogSizeDto>('default');\n\n readonly triggerVariant = input<ButtonVariants['variant']>('outline');\n readonly triggerSize = input<ButtonVariants['size']>('default');\n\n readonly confirmed = output<void>();\n readonly cancelled = output<void>();\n\n protected readonly hasMedia = contentChild(YuwAlertDialogMediaDirective);\n\n protected readonly _dialogState = computed(() => (this.open() ? 'open' : 'closed') as 'open' | 'closed');\n\n protected onStateChanged(state: 'open' | 'closed'): void {\n this.open.set(state === 'open');\n }\n}\n","<hlm-alert-dialog [state]=\"_dialogState()\" (stateChanged)=\"onStateChanged($event)\">\n @if (showTrigger()) {\n <button hlmAlertDialogTrigger hlmBtn [variant]=\"triggerVariant()\" [size]=\"triggerSize()\">\n <ng-content select=\"[yuwAlertDialogTrigger]\"/>\n </button>\n }\n\n <hlm-alert-dialog-content *hlmAlertDialogPortal [size]=\"size()\">\n <div hlmAlertDialogHeader>\n @if (hasMedia()) {\n <div hlmAlertDialogMedia>\n <ng-content select=\"[yuwAlertDialogMedia]\"/>\n </div>\n }\n\n <h2 hlmAlertDialogTitle>{{ title() }}</h2>\n\n @if (description()) {\n <p hlmAlertDialogDescription>{{ description() }}</p>\n }\n </div>\n\n <ng-content/>\n\n <div hlmAlertDialogFooter>\n <button hlmAlertDialogCancel (click)=\"cancelled.emit()\">{{ cancelLabel() }}</button>\n <button hlmAlertDialogAction [variant]=\"confirmVariant()\" (click)=\"confirmed.emit()\">\n {{ confirmLabel() }}\n </button>\n </div>\n </hlm-alert-dialog-content>\n</hlm-alert-dialog>\n","import {Directive, inject, input, TemplateRef} from '@angular/core';\n\n/**\n * Declares the content of a single `<yuw-tabs>` panel. Apply it to an `<ng-template>` and pass the\n * id of the tab it belongs to, matching an entry in the `tabs` input.\n *\n * Usage:\n * ```html\n * <ng-template yuwTabPanel=\"billing\">Contenido de facturación</ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[yuwTabPanel]',\n})\nexport class YuwTabPanelDirective {\n readonly tabId = input.required<string>({alias: 'yuwTabPanel'});\n\n readonly templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, contentChildren, input, model} from '@angular/core';\nimport {HlmTabsImports} from 'yukit-web/helm/tabs';\nimport type {YuwTabItemDto} from './tab-item.interface';\nimport {YuwTabPanelDirective} from './tab-panel.directive';\n\nexport type YuwTabsVariantDto = 'default' | 'line';\nexport type YuwTabsOrientationDto = 'horizontal' | 'vertical';\nexport type YuwTabsActivationModeDto = 'automatic' | 'manual';\n\n/**\n * Tabbed navigation between sibling panels.\n *\n * Triggers come from the `tabs` input; each panel's content is declared by the consumer as an\n * `<ng-template yuwTabPanel=\"<id>\">` whose id matches a tab. Panels are lazy: a panel's content\n * is only instantiated the first time its tab becomes active (and stays alive, hidden, after\n * switching away).\n *\n * Inputs / Models:\n * - `tabs`: The tab definitions (`YuwTabItemDto[]`) rendered as triggers, in order.\n * - `activeTab`: Two-way id of the selected tab. Drive via `[(activeTab)]` to control it\n * programmatically; listen to `activeTabChange` to react to activations.\n * - `variant`: Trigger list style (`'default'` filled, `'line'` underlined). Default is `'default'`.\n * - `orientation`: Layout direction (`'horizontal'`, `'vertical'`). Default is `'horizontal'`.\n * - `activationMode`: How keyboard focus activates tabs (`'automatic'` activates on focus,\n * `'manual'` requires Enter/Space). Default is `'automatic'`.\n *\n * Usage:\n * ```html\n * <yuw-tabs [tabs]=\"tabs\" [(activeTab)]=\"selected\">\n * <ng-template yuwTabPanel=\"general\">Contenido general</ng-template>\n * <ng-template yuwTabPanel=\"billing\">Contenido de facturación</ng-template>\n * </yuw-tabs>\n * ```\n */\n@Component({\n selector: 'yuw-tabs',\n imports: [NgTemplateOutlet, ...HlmTabsImports],\n host: {\n class: 'contents',\n },\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwTabsComponent {\n readonly tabs = input.required<YuwTabItemDto[]>();\n readonly activeTab = model.required<string>();\n\n readonly variant = input<YuwTabsVariantDto>('default');\n readonly orientation = input<YuwTabsOrientationDto>('horizontal');\n readonly activationMode = input<YuwTabsActivationModeDto>('automatic');\n\n protected readonly panels = contentChildren(YuwTabPanelDirective);\n\n protected onTabActivated(tabId: string): void {\n this.activeTab.set(tabId);\n }\n}\n","<hlm-tabs\n [tab]=\"activeTab()\"\n [orientation]=\"orientation()\"\n [activationMode]=\"activationMode()\"\n (tabActivated)=\"onTabActivated($event)\"\n>\n <hlm-tabs-list [variant]=\"variant()\">\n @for (tab of tabs(); track tab.id) {\n <button [hlmTabsTrigger]=\"tab.id\" [disabled]=\"tab.disabled ?? false\">{{ tab.label }}</button>\n }\n </hlm-tabs-list>\n\n @for (panel of panels(); track panel.tabId()) {\n <div [hlmTabsContent]=\"panel.tabId()\">\n <ng-template hlmTabsContentLazy>\n <ng-container [ngTemplateOutlet]=\"panel.templateRef\"/>\n </ng-template>\n </div>\n }\n</hlm-tabs>\n","import {Directive} from '@angular/core';\nimport {provideBrnButtonConfig} from 'yukit-web/helm/button';\nimport {\n HlmAttachment,\n HlmAttachmentAction,\n HlmAttachmentActions,\n HlmAttachmentContent,\n HlmAttachmentDescription,\n HlmAttachmentGroup,\n HlmAttachmentMedia,\n HlmAttachmentTitle,\n HlmAttachmentTrigger,\n} from 'yukit-web/helm/attachment';\n\n/**\n * Container directive for a single file attachment card.\n *\n * Accepts `state` (`'idle'`, `'uploading'`, `'processing'`, `'error'`, `'done'`), `size`\n * (`'default'`, `'sm'`, `'xs'`) and `orientation` (`'horizontal'`, `'vertical'`), which drive the\n * styling of every nested slot.\n *\n * Usage:\n * ```html\n * <div yuwAttachment state=\"uploading\">\n * <div yuwAttachmentMedia><ng-icon name=\"lucideFileText\" /></div>\n * <div yuwAttachmentContent>\n * <span yuwAttachmentTitle>informe.pdf</span>\n * <span yuwAttachmentDescription>2,4 MB</span>\n * </div>\n * <div yuwAttachmentActions>\n * <button yuwAttachmentAction><ng-icon name=\"lucideX\" /></button>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwAttachment], yuw-attachment',\n hostDirectives: [{directive: HlmAttachment, inputs: ['state', 'size', 'orientation']}],\n})\nexport class YuwAttachmentDirective {\n}\n\n/** Scrollable, snapping row that lays out several attachment cards. */\n@Directive({\n selector: '[yuwAttachmentGroup], yuw-attachment-group',\n hostDirectives: [HlmAttachmentGroup],\n})\nexport class YuwAttachmentGroupDirective {\n}\n\n/** Leading media slot of an attachment, for a file-type icon or an image preview. Supports `variant` (`'icon'`, `'image'`). */\n@Directive({\n selector: '[yuwAttachmentMedia], yuw-attachment-media',\n hostDirectives: [{directive: HlmAttachmentMedia, inputs: ['variant']}],\n})\nexport class YuwAttachmentMediaDirective {\n}\n\n/** Text content container of an attachment, holding its title and description. */\n@Directive({\n selector: '[yuwAttachmentContent], yuw-attachment-content',\n hostDirectives: [HlmAttachmentContent],\n})\nexport class YuwAttachmentContentDirective {\n}\n\n/** File name of an attachment. Truncates and shimmers while the attachment is uploading or processing. */\n@Directive({\n selector: '[yuwAttachmentTitle], yuw-attachment-title',\n hostDirectives: [HlmAttachmentTitle],\n})\nexport class YuwAttachmentTitleDirective {\n}\n\n/** Secondary line of an attachment, for file size, progress, or an error message. */\n@Directive({\n selector: '[yuwAttachmentDescription], yuw-attachment-description',\n hostDirectives: [HlmAttachmentDescription],\n})\nexport class YuwAttachmentDescriptionDirective {\n}\n\n/** Trailing container for an attachment's action buttons. */\n@Directive({\n selector: '[yuwAttachmentActions], yuw-attachment-actions',\n hostDirectives: [HlmAttachmentActions],\n})\nexport class YuwAttachmentActionsDirective {\n}\n\n/**\n * Icon-sized action button inside an attachment, such as remove or retry.\n *\n * Besides `type`, accepts the button `variant` and `size` (defaults `'ghost'` / `'icon-xs'`).\n * Extends `HlmAttachmentAction` (instead of composing it via `hostDirectives`) because\n * `variant`/`size` are inputs the helm only exposes from its own `HlmButton` host directive, and\n * host-directive forwarding is not transitive (NG2017) — inheritance carries the whole surface\n * over as real `HlmButton` inputs, so the cva variants resolve natively instead of being layered\n * on top of the defaults. Angular does not inherit `providers`, so the helm's\n * `provideBrnButtonConfig` defaults are mirrored here; keep them in sync with\n * `helm/attachment/src/lib/hlm-attachment-action.ts` if the helm is regenerated.\n */\n@Directive({\n selector: 'button[yuwAttachmentAction]',\n providers: [provideBrnButtonConfig({variant: 'ghost', size: 'icon-xs'})],\n})\nexport class YuwAttachmentActionDirective extends HlmAttachmentAction {\n}\n\n/** Turns the whole attachment card into a single clickable target, layered under its actions. */\n@Directive({\n selector: 'button[yuwAttachmentTrigger], a[yuwAttachmentTrigger]',\n hostDirectives: [{directive: HlmAttachmentTrigger, inputs: ['type']}],\n})\nexport class YuwAttachmentTriggerDirective {\n}\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {HlmSidebar, injectHlmSidebarConfig} from 'yukit-web/helm/sidebar';\n\nexport type YuwSidebarSideDto = 'left' | 'right';\nexport type YuwSidebarVariantDto = 'sidebar' | 'floating' | 'inset';\nexport type YuwSidebarCollapsibleDto = 'offcanvas' | 'icon' | 'none';\n\n/**\n * Collapsible navigation sidebar. Renders as a fixed panel on desktop and as a slide-in sheet on\n * mobile, and reads its colors from the `--sidebar-*` theme tokens.\n *\n * Place it inside a `[yuwSidebarWrapper]` alongside a `<main yuwSidebarInset>`, and compose its\n * inner structure with the `yuwSidebar*` directives. Open state is shared through\n * `YuwSidebarService`, so `<yuw-sidebar-trigger>` works from anywhere in the page.\n *\n * Inputs:\n * - `side`: Edge the sidebar is docked to (`'left'`, `'right'`). Default is `'left'`.\n * - `variant`: Panel treatment (`'sidebar'` flush, `'floating'` card, `'inset'` inset page). Default is `'sidebar'`.\n * - `collapsible`: Collapse behaviour (`'offcanvas'` slides away, `'icon'` shrinks to icons, `'none'` always open). Default is `'offcanvas'`.\n * - `sidebarWidthMobile`: Width of the mobile slide-in sheet (any CSS length). Defaults to the helm sidebar config (`18rem`).\n * - `sidebarContainerClass`: Extra classes merged onto the desktop fixed container (the helm merges them last, so they win).\n *\n * Deliberately not exposed from the helm sidebar (add a wrapper only when a real consumer needs\n * them): `HlmSidebarMenuAction`, `HlmSidebarMenuSkeleton`, `HlmSidebarInput` and\n * `HlmSidebarGroupAction`.\n *\n * Usage:\n * ```html\n * <yuw-sidebar collapsible=\"icon\">\n * <div yuwSidebarHeader>Yurest</div>\n * <div yuwSidebarContent>\n * <ul yuwSidebarMenu>\n * <li yuwSidebarMenuItem><a yuwSidebarMenuButton isActive tooltip=\"Pedidos\">Pedidos</a></li>\n * </ul>\n * </div>\n * </yuw-sidebar>\n * ```\n */\n@Component({\n selector: 'yuw-sidebar',\n imports: [HlmSidebar],\n host: {\n class: 'contents',\n },\n templateUrl: './sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSidebarComponent {\n private readonly config = injectHlmSidebarConfig();\n\n readonly side = input<YuwSidebarSideDto>('left');\n readonly variant = input<YuwSidebarVariantDto>('sidebar');\n readonly collapsible = input<YuwSidebarCollapsibleDto>('offcanvas');\n\n readonly sidebarWidthMobile = input<string>(this.config.sidebarWidthMobile);\n readonly sidebarContainerClass = input<string>('');\n}\n","<hlm-sidebar\n [side]=\"side()\"\n [variant]=\"variant()\"\n [collapsible]=\"collapsible()\"\n [sidebarWidthMobile]=\"sidebarWidthMobile()\"\n [sidebarContainerClass]=\"sidebarContainerClass()\"\n>\n <ng-content/>\n</hlm-sidebar>\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {HlmSidebarTrigger} from 'yukit-web/helm/sidebar';\n\n/**\n * Icon button that toggles the sidebar open or collapsed. Works anywhere on the page, including\n * inside `<main yuwSidebarInset>`, since the open state lives in `YuwSidebarService`.\n *\n * Inputs:\n * - `label`: Screen-reader-only label for the button. User-facing text the consuming app is\n * responsible for translating.\n *\n * Usage:\n * ```html\n * <yuw-sidebar-trigger label=\"Alternar menú\" />\n * ```\n */\n@Component({\n selector: 'yuw-sidebar-trigger',\n imports: [HlmSidebarTrigger],\n host: {\n class: 'contents',\n },\n templateUrl: './sidebar-trigger.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class YuwSidebarTriggerComponent {\n readonly label = input.required<string>();\n}\n","<button hlmSidebarTrigger [srOnlyText]=\"label()\"></button>\n","import {Directive, input} from '@angular/core';\nimport {\n HlmSidebarContent,\n HlmSidebarFooter,\n HlmSidebarGroup,\n HlmSidebarGroupContent,\n HlmSidebarGroupLabel,\n HlmSidebarHeader,\n HlmSidebarInset,\n HlmSidebarMenu,\n HlmSidebarMenuBadge,\n HlmSidebarMenuButton,\n HlmSidebarMenuItem,\n HlmSidebarMenuSub,\n HlmSidebarMenuSubButton,\n HlmSidebarMenuSubItem,\n HlmSidebarRail,\n HlmSidebarSeparator,\n HlmSidebarWrapper,\n} from 'yukit-web/helm/sidebar';\n\n/**\n * Outermost layout directive for a sidebar page. Wraps the sidebar and the main content, and owns\n * the `--sidebar-width` / `--sidebar-width-icon` custom properties via its `sidebarWidth` and\n * `sidebarWidthIcon` inputs.\n *\n * Usage:\n * ```html\n * <div yuwSidebarWrapper>\n * <yuw-sidebar collapsible=\"icon\">\n * <div yuwSidebarHeader>Yurest</div>\n * <div yuwSidebarContent>\n * <div yuwSidebarGroup>\n * <div yuwSidebarGroupLabel>Gestión</div>\n * <div yuwSidebarGroupContent>\n * <ul yuwSidebarMenu>\n * <li yuwSidebarMenuItem>\n * <a yuwSidebarMenuButton isActive tooltip=\"Pedidos\">Pedidos</a>\n * </li>\n * </ul>\n * </div>\n * </div>\n * </div>\n * </yuw-sidebar>\n *\n * <main yuwSidebarInset>\n * <button yuw-sidebar-trigger></button>\n * </main>\n * </div>\n * ```\n */\n@Directive({\n selector: '[yuwSidebarWrapper], yuw-sidebar-wrapper',\n hostDirectives: [{directive: HlmSidebarWrapper, inputs: ['sidebarWidth', 'sidebarWidthIcon']}],\n})\nexport class YuwSidebarWrapperDirective {\n}\n\n/** Top area of the sidebar, above the scrollable content. */\n@Directive({\n selector: '[yuwSidebarHeader], yuw-sidebar-header',\n hostDirectives: [HlmSidebarHeader],\n})\nexport class YuwSidebarHeaderDirective {\n}\n\n/** Scrollable middle area of the sidebar that holds the navigation groups. */\n@Directive({\n selector: '[yuwSidebarContent], yuw-sidebar-content',\n hostDirectives: [HlmSidebarContent],\n})\nexport class YuwSidebarContentDirective {\n}\n\n/** Bottom area of the sidebar, below the scrollable content. */\n@Directive({\n selector: '[yuwSidebarFooter], yuw-sidebar-footer',\n hostDirectives: [HlmSidebarFooter],\n})\nexport class YuwSidebarFooterDirective {\n}\n\n/** A titled section of the sidebar. */\n@Directive({\n selector: '[yuwSidebarGroup], yuw-sidebar-group',\n hostDirectives: [HlmSidebarGroup],\n})\nexport class YuwSidebarGroupDirective {\n}\n\n/** Heading of a sidebar group. Fades out when the sidebar collapses to icons. */\n@Directive({\n selector: 'div[yuwSidebarGroupLabel], button[yuwSidebarGroupLabel]',\n hostDirectives: [HlmSidebarGroupLabel],\n})\nexport class YuwSidebarGroupLabelDirective {\n}\n\n/** Body of a sidebar group, wrapping its menu. */\n@Directive({\n selector: 'div[yuwSidebarGroupContent]',\n hostDirectives: [HlmSidebarGroupContent],\n})\nexport class YuwSidebarGroupContentDirective {\n}\n\n/** Navigation list of a sidebar group. Apply to a `<ul>`. */\n@Directive({\n selector: 'ul[yuwSidebarMenu]',\n hostDirectives: [HlmSidebarMenu],\n})\nexport class YuwSidebarMenuDirective {\n}\n\n/** A single entry of a sidebar menu. Apply to an `<li>`. */\n@Directive({\n selector: 'li[yuwSidebarMenuItem]',\n hostDirectives: [HlmSidebarMenuItem],\n})\nexport class YuwSidebarMenuItemDirective {\n}\n\n/**\n * Interactive control of a sidebar menu item. Accepts `variant` (`'default'`, `'outline'`), `size`\n * (`'default'`, `'sm'`, `'lg'`) and `isActive`.\n *\n * To label the item while the sidebar is collapsed to icons, add Spartan's `tooltip` input\n * alongside this directive — it comes from the underlying menu-button primitive and is only shown\n * in the collapsed state.\n */\n@Directive({\n selector: 'button[yuwSidebarMenuButton], a[yuwSidebarMenuButton]',\n hostDirectives: [\n {\n directive: HlmSidebarMenuButton,\n inputs: ['variant', 'size', 'isActive', 'closeMobileSidebarOnClick'],\n },\n ],\n})\nexport class YuwSidebarMenuButtonDirective {\n}\n\n/** Trailing count or status badge of a sidebar menu item. */\n@Directive({\n selector: '[yuwSidebarMenuBadge], yuw-sidebar-menu-badge',\n hostDirectives: [HlmSidebarMenuBadge],\n})\nexport class YuwSidebarMenuBadgeDirective {\n}\n\n/** Nested submenu list of a sidebar menu item. Apply to a `<ul>`. */\n@Directive({\n selector: 'ul[yuwSidebarMenuSub]',\n hostDirectives: [HlmSidebarMenuSub],\n})\nexport class YuwSidebarMenuSubDirective {\n}\n\n/** A single entry of a sidebar submenu. Apply to an `<li>`. */\n@Directive({\n selector: 'li[yuwSidebarMenuSubItem]',\n hostDirectives: [HlmSidebarMenuSubItem],\n})\nexport class YuwSidebarMenuSubItemDirective {\n}\n\n/** Interactive control of a sidebar submenu item. Accepts `size` (`'sm'`, `'md'`) and `isActive`. */\n@Directive({\n selector: 'a[yuwSidebarMenuSubButton], button[yuwSidebarMenuSubButton]',\n hostDirectives: [\n {directive: HlmSidebarMenuSubButton, inputs: ['size', 'isActive', 'closeMobileSidebarOnClick']},\n ],\n})\nexport class YuwSidebarMenuSubButtonDirective {\n}\n\n/** Divider between sidebar sections. */\n@Directive({\n selector: '[yuwSidebarSeparator], yuw-sidebar-separator',\n hostDirectives: [HlmSidebarSeparator],\n})\nexport class YuwSidebarSeparatorDirective {\n}\n\n/** Thin draggable edge that toggles the sidebar. Apply to a `<button>`. */\n@Directive({\n selector: 'button[yuwSidebarRail]',\n hostDirectives: [HlmSidebarRail],\n host: {\n '[attr.aria-label]': 'label()',\n },\n})\nexport class YuwSidebarRailDirective {\n /**\n * Accessible label of the rail button (it has no visible text). User-facing text — the\n * consuming app is responsible for providing it already translated.\n */\n readonly label = input.required<string>();\n}\n\n/** Main content region beside the sidebar. Apply to a `<main>`. */\n@Directive({\n selector: 'main[yuwSidebarInset]',\n hostDirectives: [HlmSidebarInset],\n})\nexport class YuwSidebarInsetDirective {\n}\n","/*\n * Public API Surface of yukit-web\n */\n\nexport * from './lib/utils/cn';\nexport * from './lib/utils/value-accessor';\n\nexport * from './lib/interface/text-field.interface';\nexport * from './lib/interface/color.interface';\n\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/button/button-group-item.interface';\nexport * from './lib/components/badge/badge.component';\nexport * from './lib/components/breadcrumb/breadcrumb.component';\nexport * from './lib/components/breadcrumb/breadcrumb-item.interface';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/pagination/pagination.util';\nexport * from './lib/components/combobox/combobox.component';\nexport * from './lib/components/combobox/combobox-option.interface';\nexport * from './lib/components/combobox/combobox-item.directive';\nexport * from './lib/components/accordion/accordion.directive';\nexport * from './lib/components/accordion/accordion-item.directive';\nexport * from './lib/components/accordion/accordion-trigger.component';\nexport * from './lib/components/accordion/accordion-content.component';\nexport * from './lib/components/accordion/accordion.imports';\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/input/input-addon.directive';\nexport * from './lib/components/textarea/textarea.component';\nexport * from './lib/components/search-input/search-input.component';\nexport * from './lib/components/password-input/password-input.component';\nexport * from './lib/components/password-input/password-input.reveal';\nexport * from './lib/components/input-otp/input-otp.component';\nexport * from './lib/components/input-otp/input-otp.layout';\nexport * from './lib/components/label/label.directive';\nexport * from './lib/components/checkbox/checkbox.component';\nexport * from './lib/components/switch/switch.component';\nexport * from './lib/components/radio-group/radio-group.component';\nexport * from './lib/components/radio-group/radio-option.interface';\nexport * from './lib/components/skeleton/skeleton.directive';\nexport * from './lib/components/card/card.directives';\nexport * from './lib/components/empty/empty.directives';\nexport * from './lib/components/context-menu/context-menu.directives';\nexport * from './lib/components/context-menu/context-menu-checkbox-indicator.component';\nexport * from './lib/components/context-menu/context-menu-radio-indicator.component';\nexport * from './lib/components/context-menu/context-menu-sub-indicator.component';\nexport * from './lib/components/datepicker/datepicker.component';\nexport * from './lib/components/table/table.directives';\nexport * from './lib/components/table/datatable.component';\n\nexport * from './lib/components/avatar/avatar.component';\nexport * from './lib/components/avatar/avatar-group-item.interface';\n\nexport * from './lib/components/item/item.directives';\n\nexport * from './lib/components/sheet/sheet.component';\nexport * from './lib/components/sheet/sheet-footer.directive';\nexport * from './lib/components/popover/popover.component';\nexport * from './lib/components/tooltip/tooltip.directive';\n\nexport * from './lib/components/spinner/spinner.component';\n\nexport * from './lib/components/toaster/toaster.component';\nexport * from './lib/components/toaster/toast';\n\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/alert/alert-action.directive';\nexport * from './lib/components/alert/alert-title.directive';\nexport * from './lib/components/alert/alert-description.directive';\n\nexport * from './lib/components/dialog/dialog.component';\nexport * from './lib/components/dialog/dialog-footer.directive';\n\nexport * from './lib/components/alert-dialog/alert-dialog.component';\nexport * from './lib/components/alert-dialog/alert-dialog-media.directive';\n\nexport * from './lib/components/tabs/tabs.component';\nexport * from './lib/components/tabs/tab-item.interface';\nexport * from './lib/components/tabs/tab-panel.directive';\n\nexport * from './lib/components/attachment/attachment.directives';\n\nexport * from './lib/components/sidebar/sidebar.component';\nexport * from './lib/components/sidebar/sidebar-trigger.component';\nexport * from './lib/components/sidebar/sidebar.directives';\nexport * from './lib/components/sidebar/sidebar.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","nextUniqueId","i1.YuwTableContainerDirective","i1.YuwTableDirective","i1.YuwTHeadDirective","i1.YuwTBodyDirective","i1.YuwTrDirective","i1.YuwThDirective","i1.YuwTdDirective","i1.YuwCaptionDirective"],"mappings":"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"}