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-helm-pagination.mjs","sources":["../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-content.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-ellipsis.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-item.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-link.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-next.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-pagination-previous.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-numbered-pagination.ts","../../../projects/yukit-web/helm/pagination/src/lib/hlm-numbered-pagination-query-params.ts","../../../projects/yukit-web/helm/pagination/src/index.ts","../../../projects/yukit-web/helm/pagination/src/yukit-web-helm-pagination.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPagination],hlm-pagination',\n\thost: {\n\t\t'data-slot': 'pagination',\n\t\trole: 'navigation',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t},\n})\nexport class HlmPagination {\n\t/** The aria-label for the pagination component. */\n\tpublic readonly ariaLabel = input<string>('pagination', { alias: 'aria-label' });\n\n\tconstructor() {\n\t\tclasses(() => 'mx-auto flex w-full justify-center');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: 'ul[hlmPaginationContent]',\n\thost: { 'data-slot': 'pagination-content' },\n})\nexport class HlmPaginationContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-0.5 flex items-center');\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideEllipsis } from '@ng-icons/lucide';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Component({\n\tselector: 'hlm-pagination-ellipsis',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideEllipsis })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'pagination-ellipsis' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideEllipsis\" />\n\t\t<span class=\"sr-only\">{{ srOnlyText() }}</span>\n\t`,\n})\nexport class HlmPaginationEllipsis {\n\t/** Screen reader only text for the ellipsis */\n\tpublic readonly srOnlyText = input<string>('More pages');\n\n\tconstructor() {\n\t\tclasses(() => \"size-8 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] flex items-center justify-center\");\n\t}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n\tselector: 'li[hlmPaginationItem]',\n\thost: { 'data-slot': 'pagination-item' },\n})\nexport class HlmPaginationItem {}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { buttonVariants, type ButtonVariants } from 'yukit-web/helm/button';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPaginationLink]',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: RouterLink,\n\t\t\tinputs: [\n\t\t\t\t'target',\n\t\t\t\t'queryParams',\n\t\t\t\t'fragment',\n\t\t\t\t'queryParamsHandling',\n\t\t\t\t'state',\n\t\t\t\t'info',\n\t\t\t\t'relativeTo',\n\t\t\t\t'preserveFragment',\n\t\t\t\t'skipLocationChange',\n\t\t\t\t'replaceUrl',\n\t\t\t\t'routerLink: link',\n\t\t\t],\n\t\t},\n\t],\n\thost: {\n\t\t'data-slot': 'pagination-link',\n\t\t'[attr.data-active]': 'isActive() ? \"true\" : null',\n\t\t'[attr.aria-current]': 'isActive() ? \"page\" : null',\n\t},\n})\nexport class HlmPaginationLink {\n\t/** Whether the link is active (i.e., the current page). */\n\tpublic readonly isActive = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\t/** The size of the button. */\n\tpublic readonly size = input<ButtonVariants['size']>('icon');\n\t/** The link to navigate to the page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'relative',\n\t\t\tbuttonVariants({\n\t\t\t\tvariant: this.isActive() ? 'outline' : 'ghost',\n\t\t\t\tsize: this.size(),\n\t\t\t}),\n\t\t\tthis.link() === undefined && 'cursor-pointer',\n\t\t]);\n\t}\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { RouterLink } from '@angular/router';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport type { ButtonVariants } from 'yukit-web/helm/button';\nimport { hlm } from 'yukit-web/helm/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmPaginationLink } from './hlm-pagination-link';\n\n@Component({\n\tselector: 'hlm-pagination-next',\n\timports: [HlmPaginationLink, NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<a\n\t\t\thlmPaginationLink\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[link]=\"link()\"\n\t\t\t[queryParams]=\"queryParams()\"\n\t\t\t[queryParamsHandling]=\"queryParamsHandling()\"\n\t\t\t[size]=\"_size()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t>\n\t\t\t<span [class]=\"_labelClass()\">{{ text() }}</span>\n\t\t\t<ng-icon name=\"lucideChevronRight\" class=\"rtl:rotate-180\" />\n\t\t</a>\n\t`,\n})\nexport class HlmPaginationNext {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\t/** The link to navigate to the next page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\t/** The query parameters to pass to the next page. */\n\tpublic readonly queryParams = input<RouterLink['queryParams']>();\n\t/** How to handle query parameters when navigating to the next page. */\n\tpublic readonly queryParamsHandling = input<RouterLink['queryParamsHandling']>();\n\n\t/** The aria-label for the next page link. */\n\tpublic readonly ariaLabel = input<string>('Go to next page', { alias: 'aria-label' });\n\t/** The text to display for the next page link. */\n\tpublic readonly text = input<string>('Next');\n\t/** Whether the button should only display the icon. */\n\tpublic readonly iconOnly = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tprotected readonly _labelClass = computed(() => (this.iconOnly() ? 'sr-only' : 'hidden sm:block'));\n\n\tprotected readonly _size = computed<ButtonVariants['size']>(() => (this.iconOnly() ? 'icon' : 'default'));\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(!this.iconOnly() && 'pe-1.5!', this.userClass()),\n\t);\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { RouterLink } from '@angular/router';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft } from '@ng-icons/lucide';\nimport type { ButtonVariants } from 'yukit-web/helm/button';\nimport { hlm } from 'yukit-web/helm/utils';\nimport type { ClassValue } from 'clsx';\nimport { HlmPaginationLink } from './hlm-pagination-link';\n\n@Component({\n\tselector: 'hlm-pagination-previous',\n\timports: [HlmPaginationLink, NgIcon],\n\tproviders: [provideIcons({ lucideChevronLeft })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<a\n\t\t\thlmPaginationLink\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[link]=\"link()\"\n\t\t\t[queryParams]=\"queryParams()\"\n\t\t\t[queryParamsHandling]=\"queryParamsHandling()\"\n\t\t\t[size]=\"_size()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t>\n\t\t\t<ng-icon name=\"lucideChevronLeft\" class=\"rtl:rotate-180\" />\n\t\t\t<span [class]=\"_labelClass()\">{{ text() }}</span>\n\t\t</a>\n\t`,\n})\nexport class HlmPaginationPrevious {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\t/** The link to navigate to the previous page. */\n\tpublic readonly link = input<RouterLink['routerLink']>();\n\t/** The query parameters to pass to the previous page. */\n\tpublic readonly queryParams = input<RouterLink['queryParams']>();\n\t/** How to handle query parameters when navigating to the previous page. */\n\tpublic readonly queryParamsHandling = input<RouterLink['queryParamsHandling']>();\n\n\t/** The aria-label for the previous page link. */\n\tpublic readonly ariaLabel = input<string>('Go to previous page', { alias: 'aria-label' });\n\t/** The text to display for the previous page link. */\n\tpublic readonly text = input<string>('Previous');\n\t/** Whether the button should only display the icon. */\n\tpublic readonly iconOnly = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tprotected readonly _labelClass = computed(() =>\n\t\thlm(this.iconOnly() ? 'sr-only' : 'hidden sm:block'),\n\t);\n\n\tprotected readonly _size = computed<ButtonVariants['size']>(() => (this.iconOnly() ? 'icon' : 'default'));\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(!this.iconOnly() && 'ps-1.5!', this.userClass()),\n\t);\n}\n","import type { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tuntracked,\n} from '@angular/core';\nimport { HlmSelectImports } from 'yukit-web/helm/select';\nimport { HlmPagination } from './hlm-pagination';\nimport { HlmPaginationContent } from './hlm-pagination-content';\nimport { HlmPaginationEllipsis } from './hlm-pagination-ellipsis';\nimport { HlmPaginationItem } from './hlm-pagination-item';\nimport { HlmPaginationLink } from './hlm-pagination-link';\nimport { HlmPaginationNext } from './hlm-pagination-next';\nimport { HlmPaginationPrevious } from './hlm-pagination-previous';\n\n@Component({\n\tselector: 'hlm-numbered-pagination',\n\timports: [\n\t\tHlmPagination,\n\t\tHlmPaginationContent,\n\t\tHlmPaginationItem,\n\t\tHlmPaginationPrevious,\n\t\tHlmPaginationNext,\n\t\tHlmPaginationLink,\n\t\tHlmPaginationEllipsis,\n\t\tHlmSelectImports,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div class=\"flex items-center justify-between gap-2 px-4 py-2\">\n\t\t\t<div class=\"flex items-center gap-1 text-sm text-nowrap text-gray-600\">\n\t\t\t\t<b>{{ totalItems() }}</b>\n\t\t\t\ttotal items |\n\t\t\t\t<b>{{ _lastPageNumber() }}</b>\n\t\t\t\tpages\n\t\t\t</div>\n\n\t\t\t<nav hlmPagination>\n\t\t\t\t<ul hlmPaginationContent>\n\t\t\t\t\t@if (showEdges() && !_isFirstPageActive()) {\n\t\t\t\t\t\t<li hlmPaginationItem (click)=\"goToPrevious()\">\n\t\t\t\t\t\t\t<hlm-pagination-previous />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\n\t\t\t\t\t@for (page of _pages(); track page) {\n\t\t\t\t\t\t<li hlmPaginationItem>\n\t\t\t\t\t\t\t@if (page === '...') {\n\t\t\t\t\t\t\t\t<hlm-pagination-ellipsis />\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<a hlmPaginationLink [isActive]=\"currentPage() === page\" (click)=\"currentPage.set(page)\">\n\t\t\t\t\t\t\t\t\t{{ page }}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\n\t\t\t\t\t@if (showEdges() && !_isLastPageActive()) {\n\t\t\t\t\t\t<li hlmPaginationItem (click)=\"goToNext()\">\n\t\t\t\t\t\t\t<hlm-pagination-next />\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t</ul>\n\t\t\t</nav>\n\n\t\t\t<!-- Show Page Size selector -->\n\t\t\t<hlm-select [(value)]=\"itemsPerPage\" class=\"ml-auto\">\n\t\t\t\t<hlm-select-trigger class=\"w-fit\">\n\t\t\t\t\t<hlm-select-value />\n\t\t\t\t</hlm-select-trigger>\n\t\t\t\t<hlm-select-content *hlmSelectPortal>\n\t\t\t\t\t<hlm-select-group>\n\t\t\t\t\t\t@for (pageSize of _pageSizesWithCurrent(); track pageSize) {\n\t\t\t\t\t\t\t<hlm-select-item [value]=\"pageSize\">{{ pageSize }}</hlm-select-item>\n\t\t\t\t\t\t}\n\t\t\t\t\t</hlm-select-group>\n\t\t\t\t</hlm-select-content>\n\t\t\t</hlm-select>\n\t\t</div>\n\t`,\n})\nexport class HlmNumberedPagination {\n\t/**\n\t * The current (active) page.\n\t */\n\tpublic readonly currentPage = model.required<number>();\n\n\t/**\n\t * The number of items per paginated page.\n\t */\n\tpublic readonly itemsPerPage = model.required<number>();\n\n\t/**\n\t * The total number of items in the collection. Only useful when\n\t * doing server-side paging, where the collection size is limited\n\t * to a single page returned by the server API.\n\t */\n\tpublic readonly totalItems = input.required<number, NumberInput>({\n\t\ttransform: numberAttribute,\n\t});\n\n\t/**\n\t * The number of page links to show.\n\t */\n\tpublic readonly maxSize = input<number, NumberInput>(7, {\n\t\ttransform: numberAttribute,\n\t});\n\n\t/**\n\t * Show the first and last page buttons.\n\t */\n\tpublic readonly showEdges = input<boolean, BooleanInput>(true, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * The page sizes to show.\n\t * Defaults to [10, 20, 50, 100]\n\t */\n\tpublic readonly pageSizes = input<number[]>([10, 20, 50, 100]);\n\n\tprotected readonly _pageSizesWithCurrent = computed(() => {\n\t\tconst pageSizes = this.pageSizes();\n\t\treturn pageSizes.includes(this.itemsPerPage())\n\t\t\t? pageSizes // if current page size is included, return the same array\n\t\t\t: [...pageSizes, this.itemsPerPage()].sort((a, b) => a - b); // otherwise, add current page size and sort the array\n\t});\n\n\tprotected readonly _isFirstPageActive = computed(() => this.currentPage() === 1);\n\tprotected readonly _isLastPageActive = computed(() => this.currentPage() === this._lastPageNumber());\n\n\tprotected readonly _lastPageNumber = computed(() => {\n\t\tif (this.totalItems() < 1) {\n\t\t\t// when there are 0 or fewer (an error case) items, there are no \"pages\" as such,\n\t\t\t// but it makes sense to consider a single, empty page as the last page.\n\t\t\treturn 1;\n\t\t}\n\t\treturn Math.ceil(this.totalItems() / this.itemsPerPage());\n\t});\n\n\tprotected readonly _pages = computed(() => {\n\t\tconst correctedCurrentPage = outOfBoundCorrection(this.totalItems(), this.itemsPerPage(), this.currentPage());\n\n\t\tif (correctedCurrentPage !== this.currentPage()) {\n\t\t\t// update the current page\n\t\t\tuntracked(() => this.currentPage.set(correctedCurrentPage));\n\t\t}\n\n\t\treturn createPageArray(correctedCurrentPage, this.itemsPerPage(), this.totalItems(), this.maxSize());\n\t});\n\n\tprotected goToPrevious(): void {\n\t\tthis.currentPage.set(this.currentPage() - 1);\n\t}\n\n\tprotected goToNext(): void {\n\t\tthis.currentPage.set(this.currentPage() + 1);\n\t}\n\n\tprotected goToFirst(): void {\n\t\tthis.currentPage.set(1);\n\t}\n\n\tprotected goToLast(): void {\n\t\tthis.currentPage.set(this._lastPageNumber());\n\t}\n}\n\ntype Page = number | '...';\n\n/**\n * Checks that the instance.currentPage property is within bounds for the current page range.\n * If not, return a correct value for currentPage, or the current value if OK.\n *\n * Copied from 'ngx-pagination' package\n */\nexport function outOfBoundCorrection(totalItems: number, itemsPerPage: number, currentPage: number): number {\n\tconst totalPages = Math.ceil(totalItems / itemsPerPage);\n\tif (totalPages < currentPage && 0 < totalPages) {\n\t\treturn totalPages;\n\t}\n\n\tif (currentPage < 1) {\n\t\treturn 1;\n\t}\n\n\treturn currentPage;\n}\n\n/**\n * Returns an array of Page objects to use in the pagination controls.\n *\n * Copied from 'ngx-pagination' package\n */\nexport function createPageArray(\n\tcurrentPage: number,\n\titemsPerPage: number,\n\ttotalItems: number,\n\tpaginationRange: number,\n): Page[] {\n\t// paginationRange could be a string if passed from attribute, so cast to number.\n\tpaginationRange = +paginationRange;\n\tconst pages: Page[] = [];\n\n\t// Return 1 as default page number\n\t// Make sense to show 1 instead of empty when there are no items\n\tconst totalPages = Math.max(Math.ceil(totalItems / itemsPerPage), 1);\n\tconst halfWay = Math.ceil(paginationRange / 2);\n\n\tconst isStart = currentPage <= halfWay;\n\tconst isEnd = totalPages - halfWay < currentPage;\n\tconst isMiddle = !isStart && !isEnd;\n\n\tconst ellipsesNeeded = paginationRange < totalPages;\n\tlet i = 1;\n\n\twhile (i <= totalPages && i <= paginationRange) {\n\t\tlet label: number | '...';\n\t\tconst pageNumber = calculatePageNumber(i, currentPage, paginationRange, totalPages);\n\t\tconst openingEllipsesNeeded = i === 2 && (isMiddle || isEnd);\n\t\tconst closingEllipsesNeeded = i === paginationRange - 1 && (isMiddle || isStart);\n\t\tif (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {\n\t\t\tlabel = '...';\n\t\t} else {\n\t\t\tlabel = pageNumber;\n\t\t}\n\t\tpages.push(label);\n\t\ti++;\n\t}\n\n\treturn pages;\n}\n\n/**\n * Given the position in the sequence of pagination links [i],\n * figure out what page number corresponds to that position.\n *\n * Copied from 'ngx-pagination' package\n */\nfunction calculatePageNumber(i: number, currentPage: number, paginationRange: number, totalPages: number) {\n\tconst halfWay = Math.ceil(paginationRange / 2);\n\tif (i === paginationRange) {\n\t\treturn totalPages;\n\t}\n\n\tif (i === 1) {\n\t\treturn i;\n\t}\n\n\tif (paginationRange < totalPages) {\n\t\tif (totalPages - halfWay < currentPage) {\n\t\t\treturn totalPages - paginationRange + i;\n\t\t}\n\t\tif (halfWay < currentPage) {\n\t\t\treturn currentPage - halfWay + i;\n\t\t}\n\t\treturn i;\n\t}\n\n\treturn i;\n}\n","import type { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tuntracked,\n} from '@angular/core';\nimport { HlmSelectImports } from 'yukit-web/helm/select';\nimport { classes } from 'yukit-web/helm/utils';\nimport { createPageArray, outOfBoundCorrection } from './hlm-numbered-pagination';\nimport { HlmPagination } from './hlm-pagination';\nimport { HlmPaginationContent } from './hlm-pagination-content';\nimport { HlmPaginationEllipsis } from './hlm-pagination-ellipsis';\nimport { HlmPaginationItem } from './hlm-pagination-item';\nimport { HlmPaginationLink } from './hlm-pagination-link';\nimport { HlmPaginationNext } from './hlm-pagination-next';\nimport { HlmPaginationPrevious } from './hlm-pagination-previous';\n\n@Component({\n\tselector: 'hlm-numbered-pagination-query-params',\n\timports: [\n\t\tHlmPagination,\n\t\tHlmPaginationContent,\n\t\tHlmPaginationItem,\n\t\tHlmPaginationPrevious,\n\t\tHlmPaginationNext,\n\t\tHlmPaginationLink,\n\t\tHlmPaginationEllipsis,\n\t\tHlmSelectImports,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div class=\"flex items-center gap-1 text-sm text-nowrap text-gray-600\">\n\t\t\t<b>{{ totalItems() }}</b>\n\t\t\ttotal items |\n\t\t\t<b>{{ _lastPageNumber() }}</b>\n\t\t\tpages\n\t\t</div>\n\n\t\t<nav hlmPagination>\n\t\t\t<ul hlmPaginationContent>\n\t\t\t\t@if (showEdges() && !_isFirstPageActive()) {\n\t\t\t\t\t<li hlmPaginationItem>\n\t\t\t\t\t\t<hlm-pagination-previous\n\t\t\t\t\t\t\t[link]=\"link()\"\n\t\t\t\t\t\t\t[queryParams]=\"{ page: currentPage() - 1 }\"\n\t\t\t\t\t\t\tqueryParamsHandling=\"merge\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\n\t\t\t\t@for (page of _pages(); track page) {\n\t\t\t\t\t<li hlmPaginationItem>\n\t\t\t\t\t\t@if (page === '...') {\n\t\t\t\t\t\t\t<hlm-pagination-ellipsis />\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thlmPaginationLink\n\t\t\t\t\t\t\t\t[link]=\"currentPage() !== page ? link() : undefined\"\n\t\t\t\t\t\t\t\t[queryParams]=\"{ page }\"\n\t\t\t\t\t\t\t\tqueryParamsHandling=\"merge\"\n\t\t\t\t\t\t\t\t[isActive]=\"currentPage() === page\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ page }}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t}\n\t\t\t\t\t</li>\n\t\t\t\t}\n\n\t\t\t\t@if (showEdges() && !_isLastPageActive()) {\n\t\t\t\t\t<li hlmPaginationItem>\n\t\t\t\t\t\t<hlm-pagination-next\n\t\t\t\t\t\t\t[link]=\"link()\"\n\t\t\t\t\t\t\t[queryParams]=\"{ page: currentPage() + 1 }\"\n\t\t\t\t\t\t\tqueryParamsHandling=\"merge\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t</ul>\n\t\t</nav>\n\n\t\t<!-- Show Page Size selector -->\n\t\t<hlm-select [(value)]=\"itemsPerPage\" class=\"ml-auto\">\n\t\t\t<hlm-select-trigger class=\"w-fit\">\n\t\t\t\t<hlm-select-value />\n\t\t\t</hlm-select-trigger>\n\t\t\t<hlm-select-content *hlmSelectPortal>\n\t\t\t\t<hlm-select-group>\n\t\t\t\t\t@for (pageSize of _pageSizesWithCurrent(); track pageSize) {\n\t\t\t\t\t\t<hlm-select-item [value]=\"pageSize\">{{ pageSize }}</hlm-select-item>\n\t\t\t\t\t}\n\t\t\t\t</hlm-select-group>\n\t\t\t</hlm-select-content>\n\t\t</hlm-select>\n\t`,\n})\nexport class HlmNumberedPaginationQueryParams {\n\t/**\n\t * The current (active) page.\n\t */\n\tpublic readonly currentPage = model.required<number>();\n\n\t/**\n\t * The number of items per paginated page.\n\t */\n\tpublic readonly itemsPerPage = model.required<number>();\n\n\t/**\n\t * The total number of items in the collection. Only useful when\n\t * doing server-side paging, where the collection size is limited\n\t * to a single page returned by the server API.\n\t */\n\tpublic readonly totalItems = input.required<number, NumberInput>({\n\t\ttransform: numberAttribute,\n\t});\n\n\t/**\n\t * The URL path to use for the pagination links.\n\t * Defaults to '.' (current path).\n\t */\n\tpublic readonly link = input<string>('.');\n\n\t/**\n\t * The number of page links to show.\n\t */\n\tpublic readonly maxSize = input<number, NumberInput>(7, {\n\t\ttransform: numberAttribute,\n\t});\n\n\t/**\n\t * Show the first and last page buttons.\n\t */\n\tpublic readonly showEdges = input<boolean, BooleanInput>(true, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * The page sizes to show.\n\t * Defaults to [10, 20, 50, 100]\n\t */\n\tpublic readonly pageSizes = input<number[]>([10, 20, 50, 100]);\n\n\tprotected readonly _pageSizesWithCurrent = computed(() => {\n\t\tconst pageSizes = this.pageSizes();\n\t\treturn pageSizes.includes(this.itemsPerPage())\n\t\t\t? pageSizes // if current page size is included, return the same array\n\t\t\t: [...pageSizes, this.itemsPerPage()].sort((a, b) => a - b); // otherwise, add current page size and sort the array\n\t});\n\n\tprotected readonly _isFirstPageActive = computed(() => this.currentPage() === 1);\n\tprotected readonly _isLastPageActive = computed(() => this.currentPage() === this._lastPageNumber());\n\n\tprotected readonly _lastPageNumber = computed(() => {\n\t\tif (this.totalItems() < 1) {\n\t\t\t// when there are 0 or fewer (an error case) items, there are no \"pages\" as such,\n\t\t\t// but it makes sense to consider a single, empty page as the last page.\n\t\t\treturn 1;\n\t\t}\n\t\treturn Math.ceil(this.totalItems() / this.itemsPerPage());\n\t});\n\n\tprotected readonly _pages = computed(() => {\n\t\tconst correctedCurrentPage = outOfBoundCorrection(this.totalItems(), this.itemsPerPage(), this.currentPage());\n\n\t\tif (correctedCurrentPage !== this.currentPage()) {\n\t\t\t// update the current page\n\t\t\tuntracked(() => this.currentPage.set(correctedCurrentPage));\n\t\t}\n\n\t\treturn createPageArray(correctedCurrentPage, this.itemsPerPage(), this.totalItems(), this.maxSize());\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'flex items-center justify-between gap-2 px-4 py-2');\n\t}\n}\n","import { HlmNumberedPagination } from './lib/hlm-numbered-pagination';\nimport { HlmNumberedPaginationQueryParams } from './lib/hlm-numbered-pagination-query-params';\nimport { HlmPagination } from './lib/hlm-pagination';\nimport { HlmPaginationContent } from './lib/hlm-pagination-content';\nimport { HlmPaginationEllipsis } from './lib/hlm-pagination-ellipsis';\nimport { HlmPaginationItem } from './lib/hlm-pagination-item';\nimport { HlmPaginationLink } from './lib/hlm-pagination-link';\nimport { HlmPaginationNext } from './lib/hlm-pagination-next';\nimport { HlmPaginationPrevious } from './lib/hlm-pagination-previous';\n\nexport * from './lib/hlm-numbered-pagination';\nexport * from './lib/hlm-numbered-pagination-query-params';\nexport * from './lib/hlm-pagination';\nexport * from './lib/hlm-pagination-content';\nexport * from './lib/hlm-pagination-ellipsis';\nexport * from './lib/hlm-pagination-item';\nexport * from './lib/hlm-pagination-link';\nexport * from './lib/hlm-pagination-next';\nexport * from './lib/hlm-pagination-previous';\n\nexport const HlmPaginationImports = [\n\tHlmPagination,\n\tHlmPaginationContent,\n\tHlmPaginationItem,\n\tHlmPaginationLink,\n\tHlmPaginationPrevious,\n\tHlmPaginationNext,\n\tHlmPaginationEllipsis,\n\tHlmNumberedPagination,\n\tHlmNumberedPaginationQueryParams,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, signal, inject, Renderer2, ElementRef, effect } from '@angular/core';
3
+ import * as i1 from '@spartan-ng/brain/popover';
4
+ import { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';
5
+ import { injectExposesStateProvider } from '@spartan-ng/brain/core';
6
+ import { classes } from 'yukit-web/helm/utils';
7
+
8
+ class HlmPopover {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopover, isStandalone: true, selector: "[hlmPopover],hlm-popover", host: { attributes: { "data-slot": "popover" } }, hostDirectives: [{ directive: i1.BrnPopover, inputs: ["align", "align", "attachTo", "attachTo", "autoFocus", "autoFocus", "closeOnOutsidePointerEvents", "closeOnOutsidePointerEvents", "offsetX", "offsetX", "sideOffset", "sideOffset", "state", "state"], outputs: ["stateChanged", "stateChanged", "closed", "closed"] }], ngImport: i0 }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopover, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: '[hlmPopover],hlm-popover',
16
+ hostDirectives: [
17
+ {
18
+ directive: BrnPopover,
19
+ inputs: ['align', 'attachTo', 'autoFocus', 'closeOnOutsidePointerEvents', 'offsetX', 'sideOffset', 'state'],
20
+ outputs: ['stateChanged', 'closed'],
21
+ },
22
+ ],
23
+ host: { 'data-slot': 'popover' },
24
+ }]
25
+ }] });
26
+
27
+ class HlmPopoverContent {
28
+ constructor() {
29
+ this._stateProvider = injectExposesStateProvider({ host: true });
30
+ this.state = this._stateProvider.state ?? signal('closed');
31
+ this._renderer = inject(Renderer2);
32
+ this._element = inject(ElementRef);
33
+ effect(() => {
34
+ this._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());
35
+ });
36
+ classes(() => 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 relative flex w-72 flex-col outline-none');
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverContent, isStandalone: true, selector: "[hlmPopoverContent],hlm-popover-content", host: { attributes: { "data-slot": "popover-content" } }, ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverContent, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[hlmPopoverContent],hlm-popover-content',
45
+ host: { 'data-slot': 'popover-content' },
46
+ }]
47
+ }], ctorParameters: () => [] });
48
+
49
+ class HlmPopoverDescription {
50
+ constructor() {
51
+ classes(() => 'text-muted-foreground');
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverDescription, isStandalone: true, selector: "[hlmPopoverDescription]", host: { attributes: { "data-slot": "popover-description" } }, ngImport: i0 }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverDescription, decorators: [{
57
+ type: Directive,
58
+ args: [{
59
+ selector: '[hlmPopoverDescription]',
60
+ host: { 'data-slot': 'popover-description' },
61
+ }]
62
+ }], ctorParameters: () => [] });
63
+
64
+ class HlmPopoverHeader {
65
+ constructor() {
66
+ classes(() => 'flex flex-col gap-0.5 text-sm');
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
69
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverHeader, isStandalone: true, selector: "[hlmPopoverHeader],hlm-popover-header", host: { attributes: { "data-slot": "popover-header" } }, ngImport: i0 }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverHeader, decorators: [{
72
+ type: Directive,
73
+ args: [{
74
+ selector: '[hlmPopoverHeader],hlm-popover-header',
75
+ host: { 'data-slot': 'popover-header' },
76
+ }]
77
+ }], ctorParameters: () => [] });
78
+
79
+ class HlmPopoverPortal {
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
81
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverPortal, isStandalone: true, selector: "[hlmPopoverPortal]", hostDirectives: [{ directive: i1.BrnPopoverContent, inputs: ["context", "context", "class", "class"] }], ngImport: i0 }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverPortal, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ selector: '[hlmPopoverPortal]',
87
+ hostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],
88
+ }]
89
+ }] });
90
+
91
+ class HlmPopoverTitle {
92
+ constructor() {
93
+ classes(() => 'font-medium');
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
96
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverTitle, isStandalone: true, selector: "[hlmPopoverTitle]", host: { attributes: { "data-slot": "popover-title" } }, ngImport: i0 }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverTitle, decorators: [{
99
+ type: Directive,
100
+ args: [{
101
+ selector: '[hlmPopoverTitle]',
102
+ host: { 'data-slot': 'popover-title' },
103
+ }]
104
+ }], ctorParameters: () => [] });
105
+
106
+ class HlmPopoverTrigger {
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
108
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmPopoverTrigger, isStandalone: true, selector: "button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]", host: { attributes: { "data-slot": "popover-trigger" } }, hostDirectives: [{ directive: i1.BrnPopoverTrigger, inputs: ["id", "id", "brnPopoverTriggerFor", "hlmPopoverTriggerFor", "type", "type"] }], ngImport: i0 }); }
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmPopoverTrigger, decorators: [{
111
+ type: Directive,
112
+ args: [{
113
+ selector: 'button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]',
114
+ hostDirectives: [
115
+ { directive: BrnPopoverTrigger, inputs: ['id', 'brnPopoverTriggerFor: hlmPopoverTriggerFor', 'type'] },
116
+ ],
117
+ host: { 'data-slot': 'popover-trigger' },
118
+ }]
119
+ }] });
120
+
121
+ const HlmPopoverImports = [
122
+ HlmPopover,
123
+ HlmPopoverContent,
124
+ HlmPopoverDescription,
125
+ HlmPopoverHeader,
126
+ HlmPopoverPortal,
127
+ HlmPopoverTitle,
128
+ HlmPopoverTrigger,
129
+ ];
130
+
131
+ /**
132
+ * Generated bundle index. Do not edit.
133
+ */
134
+
135
+ export { HlmPopover, HlmPopoverContent, HlmPopoverDescription, HlmPopoverHeader, HlmPopoverImports, HlmPopoverPortal, HlmPopoverTitle, HlmPopoverTrigger };
136
+ //# sourceMappingURL=yukit-web-helm-popover.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yukit-web-helm-popover.mjs","sources":["../../../projects/yukit-web/helm/popover/src/lib/hlm-popover.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-content.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-description.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-header.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-portal.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-title.ts","../../../projects/yukit-web/helm/popover/src/lib/hlm-popover-trigger.ts","../../../projects/yukit-web/helm/popover/src/index.ts","../../../projects/yukit-web/helm/popover/src/yukit-web-helm-popover.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnPopover } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmPopover],hlm-popover',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnPopover,\n\t\t\tinputs: ['align', 'attachTo', 'autoFocus', 'closeOnOutsidePointerEvents', 'offsetX', 'sideOffset', 'state'],\n\t\t\toutputs: ['stateChanged', 'closed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'popover' },\n})\nexport class HlmPopover {}\n","import { Directive, ElementRef, Renderer2, effect, inject, signal } from '@angular/core';\nimport { injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPopoverContent],hlm-popover-content',\n\thost: { 'data-slot': 'popover-content' },\n})\nexport class HlmPopoverContent {\n\tprivate readonly _stateProvider = injectExposesStateProvider({ host: true });\n\tpublic state = this._stateProvider.state ?? signal('closed');\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _element = inject(ElementRef);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());\n\t\t});\n\n\t\tclasses(() => 'bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 gap-2.5 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 relative flex w-72 flex-col outline-none');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPopoverDescription]',\n\thost: { 'data-slot': 'popover-description' },\n})\nexport class HlmPopoverDescription {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPopoverHeader],hlm-popover-header',\n\thost: { 'data-slot': 'popover-header' },\n})\nexport class HlmPopoverHeader {\n\tconstructor() {\n\t\tclasses(() => 'flex flex-col gap-0.5 text-sm');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverContent } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: '[hlmPopoverPortal]',\n\thostDirectives: [{ directive: BrnPopoverContent, inputs: ['context', 'class'] }],\n})\nexport class HlmPopoverPortal {}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmPopoverTitle]',\n\thost: { 'data-slot': 'popover-title' },\n})\nexport class HlmPopoverTitle {\n\tconstructor() {\n\t\tclasses(() => 'font-medium');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnPopoverTrigger } from '@spartan-ng/brain/popover';\n\n@Directive({\n\tselector: 'button[hlmPopoverTrigger],button[hlmPopoverTriggerFor]',\n\thostDirectives: [\n\t\t{ directive: BrnPopoverTrigger, inputs: ['id', 'brnPopoverTriggerFor: hlmPopoverTriggerFor', 'type'] },\n\t],\n\thost: { 'data-slot': 'popover-trigger' },\n})\nexport class HlmPopoverTrigger {}\n","import { HlmPopover } from './lib/hlm-popover';\nimport { HlmPopoverContent } from './lib/hlm-popover-content';\nimport { HlmPopoverDescription } from './lib/hlm-popover-description';\nimport { HlmPopoverHeader } from './lib/hlm-popover-header';\nimport { HlmPopoverPortal } from './lib/hlm-popover-portal';\nimport { HlmPopoverTitle } from './lib/hlm-popover-title';\nimport { HlmPopoverTrigger } from './lib/hlm-popover-trigger';\n\nexport * from './lib/hlm-popover';\nexport * from './lib/hlm-popover-content';\nexport * from './lib/hlm-popover-description';\nexport * from './lib/hlm-popover-header';\nexport * from './lib/hlm-popover-portal';\nexport * from './lib/hlm-popover-title';\nexport * from './lib/hlm-popover-trigger';\n\nexport const HlmPopoverImports = [\n\tHlmPopover,\n\tHlmPopoverContent,\n\tHlmPopoverDescription,\n\tHlmPopoverHeader,\n\tHlmPopoverPortal,\n\tHlmPopoverTitle,\n\tHlmPopoverTrigger,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAca,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,cAAc,EAAE;AACf,wBAAA;AACC,4BAAA,SAAS,EAAE,UAAU;AACrB,4BAAA,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,6BAA6B,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC;AAC3G,4BAAA,OAAO,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;AACnC,yBAAA;AACD,qBAAA;AACD,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;AAChC,iBAAA;;;MCLY,iBAAiB,CAAA;AAM7B,IAAA,WAAA,GAAA;QALiB,IAAA,CAAA,cAAc,GAAG,0BAA0B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACrE,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC3C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QAG7C,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACrF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,CAAC,MAAM,gcAAgc,CAAC;IAChd;8GAZY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;AACxC,iBAAA;;;MCAY,qBAAqB,CAAA;AACjC,IAAA,WAAA,GAAA;AACC,QAAA,OAAO,CAAC,MAAM,uBAAuB,CAAC;IACvC;8GAHY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;AAC5C,iBAAA;;;MCCY,gBAAgB,CAAA;AAC5B,IAAA,WAAA,GAAA;AACC,QAAA,OAAO,CAAC,MAAM,+BAA+B,CAAC;IAC/C;8GAHY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;AACvC,iBAAA;;;MCCY,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;AAChF,iBAAA;;;MCCY,eAAe,CAAA;AAC3B,IAAA,WAAA,GAAA;AACC,QAAA,OAAO,CAAC,MAAM,aAAa,CAAC;IAC7B;8GAHY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;AACtC,iBAAA;;;MCIY,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wDAAwD;AAClE,oBAAA,cAAc,EAAE;AACf,wBAAA,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,4CAA4C,EAAE,MAAM,CAAC,EAAE;AACtG,qBAAA;AACD,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;AACxC,iBAAA;;;ACOM,MAAM,iBAAiB,GAAG;IAChC,UAAU;IACV,iBAAiB;IACjB,qBAAqB;IACrB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,iBAAiB;;;ACvBlB;;AAEG;;;;"}
@@ -0,0 +1,60 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, inject, computed } from '@angular/core';
3
+ import * as i1 from '@spartan-ng/brain/progress';
4
+ import { BrnProgress, injectBrnProgress, BrnProgressIndicator } from '@spartan-ng/brain/progress';
5
+ import { classes } from 'yukit-web/helm/utils';
6
+ import { Directionality } from '@angular/cdk/bidi';
7
+
8
+ class HlmProgress {
9
+ constructor() {
10
+ classes(() => 'bg-muted h-1 rounded-full relative inline-flex w-full overflow-hidden');
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmProgress, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmProgress, isStandalone: true, selector: "hlm-progress,[hlmProgress]", host: { attributes: { "data-slot": "progress" } }, hostDirectives: [{ directive: i1.BrnProgress, inputs: ["value", "value", "max", "max", "getValueLabel", "getValueLabel"] }], ngImport: i0 }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmProgress, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: 'hlm-progress,[hlmProgress]',
19
+ hostDirectives: [{ directive: BrnProgress, inputs: ['value', 'max', 'getValueLabel'] }],
20
+ host: { 'data-slot': 'progress' },
21
+ }]
22
+ }], ctorParameters: () => [] });
23
+
24
+ class HlmProgressIndicator {
25
+ constructor() {
26
+ this._progress = injectBrnProgress();
27
+ this._dir = inject(Directionality);
28
+ // Offset the indicator by the unfilled remainder. In RTL the bar fills from the inline-start
29
+ // (visually the right), so translate the opposite way to keep the fill on the correct side.
30
+ this._transform = computed(() => {
31
+ const offset = 100 - (this._progress.value() ?? 100);
32
+ return `translateX(${this._dir.valueSignal() === 'rtl' ? '' : '-'}${offset}%)`;
33
+ }, ...(ngDevMode ? [{ debugName: "_transform" }] : /* istanbul ignore next */ []));
34
+ this._indeterminate = computed(() => this._progress.value() === null || this._progress.value() === undefined, ...(ngDevMode ? [{ debugName: "_indeterminate" }] : /* istanbul ignore next */ []));
35
+ classes(() => 'bg-primary h-full w-full flex-1 transition-all');
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmProgressIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmProgressIndicator, isStandalone: true, selector: "[hlmProgressIndicator],hlm-progress-indicator", host: { attributes: { "data-slot": "progress-indicator" }, properties: { "class.animate-indeterminate": "_indeterminate()", "style.transform": "_transform()" } }, hostDirectives: [{ directive: i1.BrnProgressIndicator }], ngImport: i0 }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmProgressIndicator, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: '[hlmProgressIndicator],hlm-progress-indicator',
44
+ hostDirectives: [BrnProgressIndicator],
45
+ host: {
46
+ 'data-slot': 'progress-indicator',
47
+ '[class.animate-indeterminate]': '_indeterminate()',
48
+ '[style.transform]': '_transform()',
49
+ },
50
+ }]
51
+ }], ctorParameters: () => [] });
52
+
53
+ const HlmProgressImports = [HlmProgress, HlmProgressIndicator];
54
+
55
+ /**
56
+ * Generated bundle index. Do not edit.
57
+ */
58
+
59
+ export { HlmProgress, HlmProgressImports, HlmProgressIndicator };
60
+ //# sourceMappingURL=yukit-web-helm-progress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yukit-web-helm-progress.mjs","sources":["../../../projects/yukit-web/helm/progress/src/lib/hlm-progress.ts","../../../projects/yukit-web/helm/progress/src/lib/hlm-progress-indicator.ts","../../../projects/yukit-web/helm/progress/src/index.ts","../../../projects/yukit-web/helm/progress/src/yukit-web-helm-progress.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnProgress } from '@spartan-ng/brain/progress';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: 'hlm-progress,[hlmProgress]',\n\thostDirectives: [{ directive: BrnProgress, inputs: ['value', 'max', 'getValueLabel'] }],\n\thost: { 'data-slot': 'progress' },\n})\nexport class HlmProgress {\n\tconstructor() {\n\t\tclasses(() => 'bg-muted h-1 rounded-full relative inline-flex w-full overflow-hidden');\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Directive, computed, inject } from '@angular/core';\nimport { BrnProgressIndicator, injectBrnProgress } from '@spartan-ng/brain/progress';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmProgressIndicator],hlm-progress-indicator',\n\thostDirectives: [BrnProgressIndicator],\n\thost: {\n\t\t'data-slot': 'progress-indicator',\n\t\t'[class.animate-indeterminate]': '_indeterminate()',\n\t\t'[style.transform]': '_transform()',\n\t},\n})\nexport class HlmProgressIndicator {\n\tprivate readonly _progress = injectBrnProgress();\n\tprivate readonly _dir = inject(Directionality);\n\t// Offset the indicator by the unfilled remainder. In RTL the bar fills from the inline-start\n\t// (visually the right), so translate the opposite way to keep the fill on the correct side.\n\tprotected readonly _transform = computed(() => {\n\t\tconst offset = 100 - (this._progress.value() ?? 100);\n\t\treturn `translateX(${this._dir.valueSignal() === 'rtl' ? '' : '-'}${offset}%)`;\n\t});\n\tprotected readonly _indeterminate = computed(\n\t\t() => this._progress.value() === null || this._progress.value() === undefined,\n\t);\n\n\tconstructor() {\n\t\tclasses(() => 'bg-primary h-full w-full flex-1 transition-all');\n\t}\n}\n","import { HlmProgress } from './lib/hlm-progress';\nimport { HlmProgressIndicator } from './lib/hlm-progress-indicator';\n\nexport * from './lib/hlm-progress';\nexport * from './lib/hlm-progress-indicator';\n\nexport const HlmProgressImports = [HlmProgress, HlmProgressIndicator] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MASa,WAAW,CAAA;AACvB,IAAA,WAAA,GAAA;AACC,QAAA,OAAO,CAAC,MAAM,uEAAuE,CAAC;IACvF;8GAHY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,UAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;AACvF,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;AACjC,iBAAA;;;MCMY,oBAAoB,CAAA;AAahC,IAAA,WAAA,GAAA;QAZiB,IAAA,CAAA,SAAS,GAAG,iBAAiB,EAAE;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;;;AAG3B,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC7C,YAAA,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC;YACpD,OAAO,CAAA,WAAA,EAAc,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,GAAG,CAAA,EAAG,MAAM,IAAI;AAC/E,QAAA,CAAC,iFAAC;QACiB,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC7E;AAGA,QAAA,OAAO,CAAC,MAAM,gDAAgD,CAAC;IAChE;8GAfY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,+CAA+C;oBACzD,cAAc,EAAE,CAAC,oBAAoB,CAAC;AACtC,oBAAA,IAAI,EAAE;AACL,wBAAA,WAAW,EAAE,oBAAoB;AACjC,wBAAA,+BAA+B,EAAE,kBAAkB;AACnD,wBAAA,mBAAmB,EAAE,cAAc;AACnC,qBAAA;AACD,iBAAA;;;MCPY,kBAAkB,GAAG,CAAC,WAAW,EAAE,oBAAoB;;ACNpE;;AAEG;;;;"}
@@ -0,0 +1,185 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, DOCUMENT, Renderer2, ElementRef, PLATFORM_ID, computed, input, booleanAttribute, output, effect, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
4
+ import * as i1 from '@spartan-ng/brain/radio-group';
5
+ import { BrnRadioGroup, BrnRadio } from '@spartan-ng/brain/radio-group';
6
+ import { hlm, classes } from 'yukit-web/helm/utils';
7
+ import * as i2 from '@spartan-ng/brain/field';
8
+ import { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';
9
+
10
+ class HlmRadio {
11
+ constructor() {
12
+ this._document = inject(DOCUMENT);
13
+ this._renderer = inject(Renderer2);
14
+ this._elementRef = inject(ElementRef);
15
+ this._isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
16
+ this._radioGroup = inject(BrnRadioGroup, { optional: true });
17
+ this._ariaInvalid = computed(() => this._radioGroup?.controlState?.()?.invalid, ...(ngDevMode ? [{ debugName: "_ariaInvalid" }] : /* istanbul ignore next */ []));
18
+ this._touched = computed(() => this._radioGroup?.controlState?.()?.touched, ...(ngDevMode ? [{ debugName: "_touched" }] : /* istanbul ignore next */ []));
19
+ this._dirty = computed(() => this._radioGroup?.controlState?.()?.dirty, ...(ngDevMode ? [{ debugName: "_dirty" }] : /* istanbul ignore next */ []));
20
+ this._groupSpartanInvalid = computed(() => this._radioGroup?.controlState?.()?.spartanInvalid, ...(ngDevMode ? [{ debugName: "_groupSpartanInvalid" }] : /* istanbul ignore next */ []));
21
+ this._errorStateClass = computed(() => (this._groupSpartanInvalid() ? 'text-destructive' : ''), ...(ngDevMode ? [{ debugName: "_errorStateClass" }] : /* istanbul ignore next */ []));
22
+ this.userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
23
+ this._computedClass = computed(() => hlm('group relative flex items-center gap-x-3', 'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50', this.userClass(), this._errorStateClass()), ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
24
+ /** Used to set the id on the underlying brn element. */
25
+ this.inputId = input(undefined, ...(ngDevMode ? [{ debugName: "inputId" }] : /* istanbul ignore next */ []));
26
+ /** Used to set the aria-label attribute on the underlying brn element. */
27
+ this.ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
28
+ /** Used to set the aria-labelledby attribute on the underlying brn element. */
29
+ this.ariaLabelledby = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
30
+ /** Used to set the aria-describedby attribute on the underlying brn element. */
31
+ this.ariaDescribedby = input(undefined, { ...(ngDevMode ? { debugName: "ariaDescribedby" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
32
+ /**
33
+ * The value this radio button represents.
34
+ */
35
+ this.value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
36
+ /** Whether the checkbox is required. */
37
+ this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
38
+ /** Whether the checkbox is disabled. */
39
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
40
+ /**
41
+ * Event emitted when the checked state of this radio button changes.
42
+ */
43
+ // eslint-disable-next-line @angular-eslint/no-output-native
44
+ this.change = output();
45
+ effect(() => {
46
+ const isDisabled = this.disabled();
47
+ if (!this._elementRef.nativeElement || !this._isBrowser)
48
+ return;
49
+ const labelElement = this._elementRef.nativeElement.closest('label') ??
50
+ this._document.querySelector(`label[for="${this.inputId()}"]`);
51
+ if (!labelElement)
52
+ return;
53
+ this._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');
54
+ });
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadio, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: HlmRadio, isStandalone: true, selector: "hlm-radio", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { attributes: { "data-slot": "radio-group-item" }, properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "attr.data-disabled": "disabled() ? \"\" : null" } }, ngImport: i0, template: `
58
+ <brn-radio
59
+ [id]="inputId()"
60
+ [class]="_computedClass()"
61
+ [value]="value()"
62
+ [required]="required()"
63
+ [disabled]="disabled()"
64
+ [attr.aria-invalid]="_ariaInvalid() ? 'true' : null"
65
+ [attr.data-invalid]="_ariaInvalid() ? 'true' : null"
66
+ [attr.data-dirty]="_dirty() ? 'true' : null"
67
+ [attr.data-touched]="_touched() ? 'true' : null"
68
+ [attr.data-matches-spartan-invalid]="_groupSpartanInvalid() ? 'true' : null"
69
+ [aria-label]="ariaLabel()"
70
+ [aria-labelledby]="ariaLabelledby()"
71
+ [aria-describedby]="ariaDescribedby()"
72
+ (change)="change.emit($event)"
73
+ >
74
+ <ng-content select="[target],[indicator],hlm-radio-indicator" indicator />
75
+ <ng-content />
76
+ </brn-radio>
77
+ `, isInline: true, dependencies: [{ kind: "component", type: BrnRadio, selector: "brn-radio", inputs: ["disabled", "id", "aria-label", "aria-labelledby", "aria-describedby", "value", "inputStyles", "required"], outputs: ["change"], exportAs: ["brnRadio"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadio, decorators: [{
80
+ type: Component,
81
+ args: [{
82
+ selector: 'hlm-radio',
83
+ imports: [BrnRadio],
84
+ changeDetection: ChangeDetectionStrategy.OnPush,
85
+ host: {
86
+ '[attr.aria-label]': 'null',
87
+ '[attr.aria-labelledby]': 'null',
88
+ '[attr.aria-describedby]': 'null',
89
+ '[attr.data-disabled]': 'disabled() ? "" : null',
90
+ 'data-slot': 'radio-group-item',
91
+ },
92
+ template: `
93
+ <brn-radio
94
+ [id]="inputId()"
95
+ [class]="_computedClass()"
96
+ [value]="value()"
97
+ [required]="required()"
98
+ [disabled]="disabled()"
99
+ [attr.aria-invalid]="_ariaInvalid() ? 'true' : null"
100
+ [attr.data-invalid]="_ariaInvalid() ? 'true' : null"
101
+ [attr.data-dirty]="_dirty() ? 'true' : null"
102
+ [attr.data-touched]="_touched() ? 'true' : null"
103
+ [attr.data-matches-spartan-invalid]="_groupSpartanInvalid() ? 'true' : null"
104
+ [aria-label]="ariaLabel()"
105
+ [aria-labelledby]="ariaLabelledby()"
106
+ [aria-describedby]="ariaDescribedby()"
107
+ (change)="change.emit($event)"
108
+ >
109
+ <ng-content select="[target],[indicator],hlm-radio-indicator" indicator />
110
+ <ng-content />
111
+ </brn-radio>
112
+ `,
113
+ }]
114
+ }], ctorParameters: () => [], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], change: [{ type: i0.Output, args: ["change"] }] } });
115
+
116
+ class HlmRadioGroup {
117
+ constructor() {
118
+ this.userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
119
+ this._brnRadioGroup = inject(BrnRadioGroup);
120
+ this._ariaInvalid = computed(() => this._brnRadioGroup.controlState?.()?.invalid, ...(ngDevMode ? [{ debugName: "_ariaInvalid" }] : /* istanbul ignore next */ []));
121
+ this._touched = computed(() => this._brnRadioGroup.controlState?.()?.touched, ...(ngDevMode ? [{ debugName: "_touched" }] : /* istanbul ignore next */ []));
122
+ this._dirty = computed(() => this._brnRadioGroup.controlState?.()?.dirty, ...(ngDevMode ? [{ debugName: "_dirty" }] : /* istanbul ignore next */ []));
123
+ this._errorState = computed(() => this._brnRadioGroup.controlState?.()?.spartanInvalid, ...(ngDevMode ? [{ debugName: "_errorState" }] : /* istanbul ignore next */ []));
124
+ classes(() => [
125
+ 'grid gap-2',
126
+ this.userClass(),
127
+ this._errorState() ? 'data-[invalid=true]:text-destructive' : '',
128
+ ]);
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
131
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.8", type: HlmRadioGroup, isStandalone: true, selector: "[hlmRadioGroup],hlm-radio-group", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "radio-group" }, properties: { "attr.aria-invalid": "_ariaInvalid() ? \"true\" : null", "attr.data-invalid": "_ariaInvalid() ? \"true\" : null", "attr.data-dirty": "_dirty() ? \"true\" : null", "attr.data-touched": "_touched() ? \"true\" : null" } }, hostDirectives: [{ directive: i1.BrnRadioGroup, inputs: ["name", "name", "value", "value", "disabled", "disabled", "required", "required"], outputs: ["valueChange", "valueChange"] }, { directive: i2.BrnFieldControlDescribedBy }], ngImport: i0 }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadioGroup, decorators: [{
134
+ type: Directive,
135
+ args: [{
136
+ selector: '[hlmRadioGroup],hlm-radio-group',
137
+ hostDirectives: [
138
+ {
139
+ directive: BrnRadioGroup,
140
+ inputs: ['name', 'value', 'disabled', 'required'],
141
+ outputs: ['valueChange'],
142
+ },
143
+ BrnFieldControlDescribedBy,
144
+ ],
145
+ host: {
146
+ 'data-slot': 'radio-group',
147
+ '[attr.aria-invalid]': '_ariaInvalid() ? "true" : null',
148
+ '[attr.data-invalid]': '_ariaInvalid() ? "true" : null',
149
+ '[attr.data-dirty]': '_dirty() ? "true" : null',
150
+ '[attr.data-touched]': '_touched() ? "true" : null',
151
+ },
152
+ }]
153
+ }], ctorParameters: () => [], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
154
+
155
+ class HlmRadioIndicator {
156
+ constructor() {
157
+ classes(() => 'border-input text-primary group-has-[:focus-visible]:border-ring group-has-[:focus-visible]:ring-ring/50 dark:bg-input/30 group-data=[disabled=true]:cursor-not-allowed group-data=[disabled=true]:opacity-50 relative flex aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-xs transition-[color,box-shadow] outline-none group-has-[:focus-visible]:ring-[3px]');
158
+ }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadioIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: HlmRadioIndicator, isStandalone: true, selector: "hlm-radio-indicator", host: { attributes: { "data-slot": "radio-group-indicator" } }, ngImport: i0, template: `
161
+ <div class="group-data-[checked=true]:bg-primary size-2 rounded-full bg-transparent"></div>
162
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmRadioIndicator, decorators: [{
165
+ type: Component,
166
+ args: [{
167
+ selector: 'hlm-radio-indicator',
168
+ changeDetection: ChangeDetectionStrategy.OnPush,
169
+ host: {
170
+ 'data-slot': 'radio-group-indicator',
171
+ },
172
+ template: `
173
+ <div class="group-data-[checked=true]:bg-primary size-2 rounded-full bg-transparent"></div>
174
+ `,
175
+ }]
176
+ }], ctorParameters: () => [] });
177
+
178
+ const HlmRadioGroupImports = [HlmRadioGroup, HlmRadio, HlmRadioIndicator];
179
+
180
+ /**
181
+ * Generated bundle index. Do not edit.
182
+ */
183
+
184
+ export { HlmRadio, HlmRadioGroup, HlmRadioGroupImports, HlmRadioIndicator };
185
+ //# sourceMappingURL=yukit-web-helm-radio-group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yukit-web-helm-radio-group.mjs","sources":["../../../projects/yukit-web/helm/radio-group/src/lib/hlm-radio.ts","../../../projects/yukit-web/helm/radio-group/src/lib/hlm-radio-group.ts","../../../projects/yukit-web/helm/radio-group/src/lib/hlm-radio-indicator.ts","../../../projects/yukit-web/helm/radio-group/src/index.ts","../../../projects/yukit-web/helm/radio-group/src/yukit-web-helm-radio-group.ts"],"sourcesContent":["import { type BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tDOCUMENT,\n\teffect,\n\tElementRef,\n\tinject,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n\tRenderer2,\n} from '@angular/core';\nimport { BrnRadio, BrnRadioGroup, type BrnRadioChange } from '@spartan-ng/brain/radio-group';\nimport { hlm } from 'yukit-web/helm/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n\tselector: 'hlm-radio',\n\timports: [BrnRadio],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t\t'data-slot': 'radio-group-item',\n\t},\n\ttemplate: `\n\t\t<brn-radio\n\t\t\t[id]=\"inputId()\"\n\t\t\t[class]=\"_computedClass()\"\n\t\t\t[value]=\"value()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[attr.aria-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-invalid]=\"_ariaInvalid() ? 'true' : null\"\n\t\t\t[attr.data-dirty]=\"_dirty() ? 'true' : null\"\n\t\t\t[attr.data-touched]=\"_touched() ? 'true' : null\"\n\t\t\t[attr.data-matches-spartan-invalid]=\"_groupSpartanInvalid() ? 'true' : null\"\n\t\t\t[aria-label]=\"ariaLabel()\"\n\t\t\t[aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(change)=\"change.emit($event)\"\n\t\t>\n\t\t\t<ng-content select=\"[target],[indicator],hlm-radio-indicator\" indicator />\n\t\t\t<ng-content />\n\t\t</brn-radio>\n\t`,\n})\nexport class HlmRadio<T = unknown> {\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\tprivate readonly _radioGroup = inject(BrnRadioGroup, { optional: true });\n\n\tprotected readonly _ariaInvalid = computed(() => this._radioGroup?.controlState?.()?.invalid);\n\n\tprotected readonly _touched = computed(() => this._radioGroup?.controlState?.()?.touched);\n\tprotected readonly _dirty = computed(() => this._radioGroup?.controlState?.()?.dirty);\n\tprotected readonly _groupSpartanInvalid = computed(() => this._radioGroup?.controlState?.()?.spartanInvalid);\n\n\tprotected readonly _errorStateClass = computed(() => (this._groupSpartanInvalid() ? 'text-destructive' : ''));\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'group relative flex items-center gap-x-3',\n\t\t\t'data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50',\n\t\t\tthis.userClass(),\n\t\t\tthis._errorStateClass(),\n\t\t),\n\t);\n\n\t/** Used to set the id on the underlying brn element. */\n\tpublic readonly inputId = input<string | undefined>(undefined);\n\n\t/** Used to set the aria-label attribute on the underlying brn element. */\n\tpublic readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying brn element. */\n\tpublic readonly ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n\n\t/** Used to set the aria-describedby attribute on the underlying brn element. */\n\tpublic readonly ariaDescribedby = input<string | undefined>(undefined, { alias: 'aria-describedby' });\n\n\t/**\n\t * The value this radio button represents.\n\t */\n\tpublic readonly value = input.required<T>();\n\n\t/** Whether the checkbox is required. */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/** Whether the checkbox is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Event emitted when the checked state of this radio button changes.\n\t */\n\t// eslint-disable-next-line @angular-eslint/no-output-native\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst isDisabled = this.disabled();\n\n\t\t\tif (!this._elementRef.nativeElement || !this._isBrowser) return;\n\n\t\t\tconst labelElement =\n\t\t\t\tthis._elementRef.nativeElement.closest('label') ??\n\t\t\t\tthis._document.querySelector(`label[for=\"${this.inputId()}\"]`);\n\n\t\t\tif (!labelElement) return;\n\t\t\tthis._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n\t\t});\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnFieldControlDescribedBy } from '@spartan-ng/brain/field';\nimport { BrnRadioGroup } from '@spartan-ng/brain/radio-group';\nimport { classes } from 'yukit-web/helm/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmRadioGroup],hlm-radio-group',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: BrnRadioGroup,\n\t\t\tinputs: ['name', 'value', 'disabled', 'required'],\n\t\t\toutputs: ['valueChange'],\n\t\t},\n\t\tBrnFieldControlDescribedBy,\n\t],\n\thost: {\n\t\t'data-slot': 'radio-group',\n\t\t'[attr.aria-invalid]': '_ariaInvalid() ? \"true\" : null',\n\t\t'[attr.data-invalid]': '_ariaInvalid() ? \"true\" : null',\n\t\t'[attr.data-dirty]': '_dirty() ? \"true\" : null',\n\t\t'[attr.data-touched]': '_touched() ? \"true\" : null',\n\t},\n})\nexport class HlmRadioGroup {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprivate readonly _brnRadioGroup = inject(BrnRadioGroup);\n\tprotected readonly _ariaInvalid = computed(() => this._brnRadioGroup.controlState?.()?.invalid);\n\n\tprotected readonly _touched = computed(() => this._brnRadioGroup.controlState?.()?.touched);\n\tprotected readonly _dirty = computed(() => this._brnRadioGroup.controlState?.()?.dirty);\n\n\tprotected readonly _errorState = computed(() => this._brnRadioGroup.controlState?.()?.spartanInvalid);\n\n\tconstructor() {\n\t\tclasses(() => [\n\t\t\t'grid gap-2',\n\t\t\tthis.userClass(),\n\t\t\tthis._errorState() ? 'data-[invalid=true]:text-destructive' : '',\n\t\t]);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Component({\n\tselector: 'hlm-radio-indicator',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'data-slot': 'radio-group-indicator',\n\t},\n\ttemplate: `\n\t\t<div class=\"group-data-[checked=true]:bg-primary size-2 rounded-full bg-transparent\"></div>\n\t`,\n})\nexport class HlmRadioIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'border-input text-primary group-has-[:focus-visible]:border-ring group-has-[:focus-visible]:ring-ring/50 dark:bg-input/30 group-data=[disabled=true]:cursor-not-allowed group-data=[disabled=true]:opacity-50 relative flex aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-xs transition-[color,box-shadow] outline-none group-has-[:focus-visible]:ring-[3px]',\n\t\t);\n\t}\n}\n","import { HlmRadio } from './lib/hlm-radio';\nimport { HlmRadioGroup } from './lib/hlm-radio-group';\nimport { HlmRadioIndicator } from './lib/hlm-radio-indicator';\n\nexport * from './lib/hlm-radio';\nexport * from './lib/hlm-radio-group';\nexport * from './lib/hlm-radio-indicator';\n\nexport const HlmRadioGroupImports = [HlmRadioGroup, HlmRadio, HlmRadioIndicator] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}